PDA

View Full Version : [C++] Parser e grammatica


macrig
27-08-2008, 16:40
Salve a tutti,
dovrei realizzare un PARSER, di un linguaggio XDL di cui ho la grammatica, il programma che riconosce il linguaggio dev'essere in c++. Ho la grammatica, una BNF, e gli strumenti a mia disposizione sono flex e bison. Potete consigliarmi qualche link con delle guide o darmi qualche aiuto.
Un grazie a tutti in anticipo per l'aiuto.

Giuseppe

P.S. prima della modifica forse non si capiva bene.

cdimauro
27-08-2008, 17:32
Io ti consiglio di lasciar perdere Flex e Bison, e di utilizzare questo: http://www.antlr.org/

C'è già una grammatica per il C++ che puoi scaricare dal sito, se non erro, ma per sviluppare tutto ciò che serve per realizzare un parser ANTLR non ha paragoni: ti sbrighi MOLTO prima, e l'aggiornamento / mantenimento del codice è MOLTO più semplice.

Figurati che basta specificare un'opzione nella grammatica per generare automaticamente gli AST (Abstract Syntax Tree) del codice parserizzato (oltre, ovviamente, a diversi strumenti per la loro analisi, manipolazione ed eventuale emissione di "codice oggetto").

EDIT: come non detto, la grammatica la trovi qui (http://hg.netbeans.org/main/file/tip/cnd.modelimpl/src/org/netbeans/modules/cnd/modelimpl/parser/cppparser.g). ;)

EDIT2: sì, avevo capito che avevi già una grammatica, ma io ti stavo semplicemente consigliando uno strumento migliore di Flex e Bison. Poi se sei costretto a usare per forza questi due... come non detto.