Générateur d’parsingur syntaxique qui produit en C # une grammaire BNF?

Je cherche un outil capable de construire un parsingur syntaxique (en C #) si je lui donne une grammaire BNF (par exemple, http://savage.net.au/SQL/sql-2003-2.bnf )

Un tel générateur existe-t-il?

Normalement, les grammaires BNF sont trop ambiguës. ANTLR sera probablement bon pour ce que vous recherchez.

Le Kit de développement logiciel de Visual Studio est livré avec les outils de génération de lexer et d’parsingur. Celles-ci s’appellent MPPG et MPLex et font partie du paquet Managed Babel . Bien que l’intention de les regrouper avec le SDK soit de développer des extensions de langage pour Visual Studio, elles sont parfaitement utilisables pour créer des parsingurs syntaxiques émetteurs AST généraux.

MPLex et MPPG sont basés sur GPLEX et GPPG (projets de la Queensland University of Technology) et sont utilisés de la même manière que Lex et Yacc. Le SDK contient également des actions MSBuild pour que la génération de l’parsingur fasse partie du processus de construction normal.

Voici un screencast montrant MPLex et MPPG en action:
http://msdn.microsoft.com/en-us/vstudio/cc837016.aspx

Vous devrez modifier un peu la BNF, mais TinyPG est un excellent outil.

Jetez également un coup d’œil à Irony:

http://irony.codeplex.com/

semble très prometteur

IronMeta est une implémentation C # d’ OMeta d’Alex Warth; c’est un packrat PEG (parsing syntaxique de grammaire d’expression; choix biaisé), de sorte que les grammaires peuvent être plus propres que lorsque vous utilisez un système LALR de type yacc.