2013-03-19 13 views
13

Sto lavorando su un parser per C. Sto cercando di trovare un elenco di tutte le derivazioni context-free per C. Idealmente sarebbe in BNF o simile. Sono sicuro che una cosa del genere è là fuori, ma googling in giro non mi ha dato molto.Grammatica context-free per C

La lettura del codice sorgente per i parser/compilatori esistenti si è dimostrata molto più confusa che utile, poiché la maggior parte di quelli che ho trovato sono molto più ambiziosi e complicati di quello che sto costruendo.

+5

grammatica yacc per C: http://www.lysator.liu.se/c/ANSI-C-grammar-y.html – congusbongus

+0

Posso confermare che questo è buono. Ho costruito un parser flex/bison dalle grammatiche LEX/YACC da quella pagina, solo l'altra settimana. –

+0

@ CongXu, sembra buono, l'unico svantaggio che ha che vedo che è solo storico C e né C99 né C11. –

risposta

0

La grammatica ANSI per C99 ha un bug in esterna dichiarazione: funzione di definizione.

Potete usarlo e anche l'Appendice A.13 di Kernighan - Il linguaggio di programmazione C, edizione ANSI C.

Problemi correlati