2009-09-10 14 views

Respuesta

0

por qué no dar antlr un ir - que parece que tiene una gramática hecha para ECMAScript:

http://www.antlr.org/grammar/list

Antlr al parecer tiene un C# tiempo de ejecución, así, a pesar de que sólo se han utilizado desde Java.

2

Creo que tendrías que construirlo tú mismo, pero hay pistas en el camino.

La gramática de JavaScript completa debe estar disponible en alguna parte; una búsqueda rápida me mostró un JavaScript LL(1) Grammar. (También hay un esquema BNF para JavaScript en RPA Toolkit: Parse JavaScript.)

Dado que solo está preguntando por un analizador sintáctico, supongo que ya tiene un lexer.

Convertir esa gramática en un archivo Yacc realmente no se ve tan terrible. Como ejemplo, hay un C grammar for Yacc.

+1

¿Has hecho * esto *? Crear un analizador * working * es más difícil de lo que parece para un lenguaje real. La gente parece pensar que es fácil armar una gramática y listo. Buena suerte con eso. (Sí, lo he hecho, para varios idiomas completos). –

0

¿Realmente necesita implementarlo desde cero? Algunas bibliotecas como Jint harían el mismo trabajo, más rápido y más seguro. Jint es un intérprete de JavaScript en .NET: obtuve mi propia aprobación.

0

Escribo mis analizadores con COCO/R para C# http://ssw.jku.at/coco/ porque simplemente funciona sin necesidad de configuración. Pero, no es compatible a nivel de fuente con Yacc, Flex, Bison, etc. Sin embargo, su sintaxis es más simple. Además COCO/R es compatible con algunos lenguajes .NET diferentes de C#. ANTLR funciona para C# tiene más funciones, pero necesita más tiempo en la lectura de documentación y configuración de herramientas.

Cuestiones relacionadas