L'analyseur générateur de sorties C# donnée une grammaire BNF?
Je suis à la recherche d'un outil qui sera capable de construire un analyseur syntaxique (en C#) si je lui donne une grammaire BNF (eg. http://savage.net.au/SQL/sql-2003-2.bnf)
Un générateur d'exister?
OriginalL'auteur ilitirit | 2008-09-30
Vous devez vous connecter pour publier un commentaire.
Normalement BNF grammaires sont trop ambigus. ANTLR sera probablement bon pour ce que vous cherchez.
OriginalL'auteur leppie
La Visual Studio SDK en fait livré avec analyseur lexical et l'analyseur outils de génération. Ceux-ci sont appelés MPPG et MPLex et font partie de la Géré Babel paquet. Tandis que l'intention de grouper avec le kit de développement est de développer des extensions de langage pour Visual Studio, ils sont parfaitement utilisables pour la création d'général de l'AST émettant des analyseurs.
MPLex et MPPG sont basés sur GPLEX et GPPG (projets de l'Université de Technologie du Queensland) et sont utilisés d'une manière similaire à Lex et Yacc. Le SDK contient également MSBuild actions pour faire de l'analyseur de génération d'une partie de l'ordinaire processus de construction.
Voici une vidéo montrant MPLex et MPPG en action:
http://msdn.microsoft.com/en-us/vstudio/cc837016.aspx
Semble que Microsoft a abandonné Géré Babel il y a si longtemps. À ce point, je serais probablement aller avec FsLex et FsYacc (fsprojects.github.io/FsLexYacc). Il est basé sur le F#, mais il compile régulièrement .NET de l'assemblée et peut être consommé par un projet C# si vous le souhaitez.
Je vous recommande d'enquêter sur cet arrêt et profondément retravailler votre réponse, en disant qu'à partir de cette année VS SDK contenus et maintenant ce qui est le cas. Les gens vont regarder votre réponse à de multiples reprises dans les années à venir.
OriginalL'auteur Tormod Fjeldskår
Vous allez avoir à modifier la BNF un peu, mais TinyPG est un outil formidable.
OriginalL'auteur Jonathan C Dickinson
Également prendre un coup d'oeil à l'Ironie:
http://irony.codeplex.com/
semble très prometteur
OriginalL'auteur Gian Marco Gherardi
IronMeta C# de la mise en œuvre d'Alex Warth est OMeta; c'est un packrat PEG (l'analyse de l'expression de la grammaire; utilise biaisée choix), de sorte que les grammaires peuvent être plus propre que lors de l'utilisation d'un yacc-comme LALR système.
OriginalL'auteur Kevin Kelley