2009-09-10 20 views

Répondre

0

Pourquoi ne pas donner antlr un coup - on dirait qu'il a une grammaire faite pour ECMAScript:

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

Antlr a apparemment obtenu un C# exécution aussi bien, même si je ne l'ai utilisé à partir de Java.

2

Je pense que vous devrez le construire vous-même, mais il y a des indices en cours de route.

La grammaire complète de JavaScript devrait être disponible quelque part; une recherche rapide m'a montré un JavaScript LL(1) Grammar. (Il ya aussi un schéma BNF pour JavaScript au RPA Toolkit: Parse JavaScript.)

Puisque vous ne demandez qu'un analyseur, je vais supposer que vous avez déjà un lexer. Transformer cette grammaire en un fichier Yacc n'a vraiment pas l'air si terrible. À titre d'exemple, il y a un C grammar for Yacc.

+1

Avez-vous réellement * fait * cela? Construire un * working * parser est plus difficile que de chercher un vrai langage. Les gens semblent penser qu'il est facile de gifler une grammaire et c'est parti. Bonne chance avec ça. (Oui, je l'ai fait, pour plusieurs langues complètes). –

0

Avez-vous vraiment besoin de l'implémenter à partir de zéro? Certaines bibliothèques comme Jint font le même travail, plus rapide et plus sécurisé. Jint est un interpréteur javascript dans .NET - a obtenu ma propre approbation.

0

J'écris mes parseurs avec COCO/R pour C# http://ssw.jku.at/coco/ parce que cela fonctionne sans aucun besoin de configuration. Mais, il n'est pas compatible avec Yacc, Flex, Bison, etc., mais sa syntaxe est plus simple. De plus, COCO/R supporte quelques langages .NET différents de C#. ANTLR fonctionne pour C# a plus de fonctionnalités, mais il a besoin de plus de temps sur la lecture de la documentation et le réglage de l'outil.

Questions connexes