Portál AbcLinuxu, 31. října 2025 19:40
Ako semestrálny projekt z algoritmizácie som si vybral konvertor cčka do html+ zvyraznovač syntaxe. Trošku som sa však zasekol. Súbor s čkovským kodom chcem načitavat po riadkoch a po riadkoch to aj prevádzat. S čim mám však problem je ako čo najvhodnejšie implementovat slovnik klučových slov.
Totiž ked bude už riadok načitaný do nejakého bufferu budem potrebovat načitavat po jednotlivých znakoch vytvárať slova a potom ich porovnat zo slovami v slovníku. Kvôli zvýraznovaniu je asi potrebné mať rozličné slovniky na datove typy, operatory .... Preto by som pri hladaní či je slovo klučové prehladat všetky tieto "polia", čo by trvalo asi pomerne dlho. Napadlo ma ešte to uložit do hashovacej tabulky ale pre +- 50 slov neviem či sa mi to oplatí. Nejaký napad? Pravdou je aj to že nie som s hash tabulkou moc kamarát, preto hladám nejaké iné riešenie. Ďakujem
 29.4.2010 08:33
AraxoN             | skóre: 47
             | blog: slon_v_porcelane
             | Košice
        29.4.2010 08:33
AraxoN             | skóre: 47
             | blog: slon_v_porcelane
             | Košice
        Pro lexikální analýzu určitě použij konečný automat (ať už realizovaný řídící strukturou nebo tabulkou přechodů).
Nicméně lexikální analýza není všechno, pokuď chceš zdrojáky skutečně parsovat (například už jenom vědět, že na vstupu je skutečně zdroják C a ne jenom libovolná sekvence lexikálních elementů), budeš muset udělat i syntaktickou analýzu. Zkus se podívat na "rekurzivní sestup", to je asi nejjednodušší metoda (která ti na LL1 gramatiku tvé podmnožiny C bude stačit) asi ta nejjednodušší metoda.
Pak už ti stačí jenom doplnit implementovanou gramatiku o výstupní symboly a "obarvovač" je hotovej.
Ještě doplním odkaz na skripta  na programovací jazyky z ČVUT FEL, která by ti měla odpovědět na všechny zvídavé otázky  .
.
 , Budem rád keď zvládnem tu lexikálnu analyzu:) Určite sa pozriem na ten rekurzívny zostup.. Ďakujem
, Budem rád keď zvládnem tu lexikálnu analyzu:) Určite sa pozriem na ten rekurzívny zostup.. Ďakujem
             3.5.2010 02:45
Josef Kufner             | skóre: 70
        3.5.2010 02:45
Josef Kufner             | skóre: 70
            
            
        
        Tiskni
            
                Sdílej:
                 
                 
                 
                 
                 
                 
            
    
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.