Generatore di parser che genera C # con una grammatica BNF? [chiuso]
Domanda
Sto cercando uno strumento che sarà in grado di costruire un parser (in C #) se gli do una grammatica BNF (es. http://savage.net.au/SQL/sql-2003-2.bnf )
Esiste un tale generatore?
Soluzione
Normalmente le grammatiche BNF sono troppo ambigue. ANTLR sarà probabilmente buono per quello che stai cercando.
Altri suggerimenti
Il Visual Studio SDK viene effettivamente fornito con lexer e strumenti di generazione parser. Questi sono chiamati MPPG e MPLex e fanno parte del Managed Babel pacchetto. Mentre l'intenzione di raggrupparli con l'SDK è di sviluppare estensioni di linguaggio per Visual Studio, sono perfettamente utilizzabili per la creazione di parser generici che emettono AST.
MPLex e MPPG sono basati su GPLEX e GPPG (progetti della Queensland University of Technology) e sono usati in modo simile a Lex e Yacc. L'SDK contiene anche azioni MSBuild per rendere la generazione del parser una parte del normale processo di compilazione.
Ecco uno screencast che mostra MPLex e MPPG in azione:
http://msdn.microsoft.com/en-us/vstudio/cc837016.aspx
Dovrai modificare un po 'il BNF, ma TinyPG è un ottimo strumento.