Analizador-generador que emite C#dada una gramática BNF?
parsing (5)
Estoy buscando una herramienta que pueda construir un analizador sintáctico (en C #) si le doy una gramática BNF (por ejemplo, http://savage.net.au/SQL/sql-2003-2.bnf )
¿Existe tal generador?
El SDK de Visual Studio realmente viene con herramientas de generación de lexer y analizador. Estos se llaman MPPG y MPLex y son parte del paquete Managed Babel . Si bien la intención de agruparlos con el SDK es desarrollar extensiones de lenguaje para Visual Studio, son perfectamente utilizables para crear analizadores de emisiones AST generales.
MPLex y MPPG se basan en GPLEX y GPPG (proyectos de la Universidad de Tecnología de Queensland) y se utilizan de manera similar a Lex y Yacc. El SDK también contiene acciones de MSBuild para hacer que la generación del analizador sea parte del proceso de compilación normal.
Aquí hay un screencast que muestra MPLex y MPPG en acción:
http://msdn.microsoft.com/en-us/vstudio/cc837016.aspx
Normalmente, las gramáticas BNF son demasiado ambiguas. ANTLR probablemente sea bueno para lo que estás buscando.
Tendrás que ajustar un poco el BNF, pero TinyPG es una gran herramienta.