2009-09-26 11 views
1

Existe-t-il un analyseur (E) BNF capable de générer des arborescences XML de l'AST? Reformulation: quel est le moyen le plus rapide de compiler un langage (E) BNF défini en un langage XML?(E) Analyse BNF en XML

Bonus: L'utilisation de JavaScript :-)

+0

Pouvez-vous clarifier? Quel genre de XML voulez-vous en sortie? –

+0

J'ai écrit un récemment, mais c'est une source fermée;) Il y a beaucoup de générateurs d'analyseurs libres/ouverts là-bas. L'un d'eux est lié à la sortie XML. – Joren

+0

L'arbre d'analyse résultant. Snip Exemple: :: = céderais: ... ... ...

Répondre

1

Il semble que mon meilleur pari jusqu'à présent est d'utiliser AntLR et l'interface StringTemplate. Il prend également en charge un JavaScript target.

0

pas libre, mais génère XML: DMS Software Reengineering Toolkit. Disponible avec une variété de définitions de langages prédéfinies (C, C++, C#, Java, COBOL, Javascript, XML, ...). La question est, que ferez-vous avec cela? Si vous traitez sérieusement une langue, vous avez besoin de beaucoup plus que de l'AST (vous avez presque toujours besoin d'une table de symboles).

+0

Le problème est que j'essaie d'interopérer avec un système qui a un XML DSL, avec beaucoup de redondances, et à peine lisible par l'homme. Je suppose que si je peux obtenir un XML AST, un XSLT résoudra mon problème (bien que je n'ai pas pensé à la table de symboles: - \\) –

+0

Le but d'un DSL est de le rendre lisible pour les gens. J'ai presque envie de pleurer quand j'entends les gens dire "DSL" et "XML" dans le même souffle. Le but des parseurs est de lire ce que les gens écrivent et d'en faire quelque chose que la machine peut traiter. Les DSL XML sont des raccourcis pour "Je suis trop paresseux pour écrire un analyseur". –

+0

Vous avez mal compris mon point. Le DSL n'est pas XML, mais le moteur d'interprétation n'accepte que du XML. J'essaye de faire un DSL lisible par l'homme qui, après la compilation, produit un XML détaillé que le moteur peut lire. –