Instrumente de parsare De foarte multe ori programatorii s-au intalnit cu probleme de parsare, fie ca vor sa interpreteze un fisier cu date (ex. fisier de configurare), fie ca vor sa inteleaga limbaje deja existente (html, c) sau create de ei insisi. Exista mai multe unelte care sa asiste dezvoltatorul in aceste task-uri destul de complicate. Cele mai cunoscute aplicatii sunt: lex (Lexical Analyzer) pentru UNIX: pentru GNU/Linux echivalentul este aplicatia flex yacc (Yet Another Compiler Compiler) pentru UNIX: pentru GNU/Linux echivalentul este aplicatia bison lex si yacc indeplinesc roluri diferite in misiunea de parsare. Cele 2 aplicatii sunt complementare si se folosesc de obicei impreuna. Motivele pentru care exista doua variante pentru fiecare din cele 2 tipuri de tool-uri sunt de natura legala (flex si bison sunt in totalitate free software). lex primeste un sir de caractere pe care il transforma in token-i dupa regulile specificate de programator (sub forma unor expresii regulate). yacc primeste token-ii de la lex si ii parseaza (ii interpreteaza, le ofera o semnificatie) dupa un set de reguli exprimate in limbaj BNF (Backus Naur Form, o sintaxa foarte simpla: http://en.wikipedia.org/wiki/Backus-Naur_form ). Ambele programe pot include cod C pe langa expresiile regulate (in lex) sau regulile BNF (in yacc). O introducere usoara in lex si yacc (mai mult yacc): http://www.codeproject.com/KB/recipes/introlexyacc.aspx Exista si partea 2, in care se pune accentul pe facilitatile de lex: http://www.codeproject.com/KB/recipes/lexyacc2.aspx Un tutorial foarte simplificat de lex si yacc: http://ds9a.nl/lex-yacc/cvs/lex-yacc-howto.html