Question

J'essaie d'écrire une grammaire en EBNF (sauf une très bonne raison, ce doit être EBNF) et je cherche quelques utilitaires pour le faire. S'il y a une interface graphique qui peut en créer une, ce serait génial. , mais ce que je recherche le plus, c’est quelque chose qui puisse vérifier la grammaire, par exemple pour savoir s’il s’agit de LALR ( n ), et si oui, quelle est la valeur de n est. Ces utilitaires existent-ils? Existe-t-il d’autres outils d’écriture grammaticale utiles que je devrais connaître (je ne cherche pas de générateurs d’analyseur).

Était-ce utile?

La solution

Pour aller encore plus loin dans la suggestion de Steven Dee, vous pouvez consulter ANTLRWorks . , outil de développement d'interface graphique interactif pour les grammaires ANTLR.

Autres conseils

Utilisez TinyPG ! C'est un compilateur compilateur tout-en-un étonnant avec une interface graphique légère, dans lequel vous construisez votre analyseur avec RegEx , EBNF , et écrivez Code C # / VB permettant de faire quelque chose avec arbre d'analyse !

Voici un résumé bref et informatif que j'ai rédigé précédemment, qui vous relie également aux téléchargements.

Mes compréhensions de TinyPG:

TinyPG vous permet d'écrire & amp; développer:

Il possède un IDE intégré, Windows uniquement (créé en C # .NET, open source) .

Il vous permet d’essayer & amp; prévisualiser Expressions régulières à l'aide de outil RegEx intégré . La syntaxe RegEx est prise en charge dans .NET, ce qui signifie que même votre code de l'analyseur généré utilise les expressions régulières de .NET. .

Vous écrivez EBNF pour décrire la langue de votre choix (voici quelques exemples disponibles gratuitement BNF Grammers décrivant les langages de programmation modernes (C, Java, JavaScript, C #, VB.NET, SQL-89)

Grâce à TinyPG, votre RegEx ainsi que votre EBNF génèrent un arbre d'analyse syntaxique (voir ce diagramme) .

Maintenant, que faites-vous avec l'arbre d'analyse? Vous écrivez code C # / VB (dans TinyPG, selon la règle de grammage BNF) pour votre compilateur / interprète / traducteur. (dans TinyPG , ouvrez le fichier "simple expression2.tpg" dans les exemples fournis pour voir une démonstration d'un calculateur 'compilateur')

TinyPG vous permet de compiler et de tester votre tokenizer + analyseur + complément , au sein de l'EDI TinyPG, et il génère finalement le code source de l'analyseur en C # .NET ou VB.NET (votre choix) , avec des classes prêtes à l’utilisation .

Un excellent compilateur tout-en-un pour les masses. Profitez!

PS: corrigez-moi si je me trompe.

Pour vérifier si une grammaire autorise un algorithme d'analyse particulier, il suffit de l'insérer dans le générateur d'analyse. Dans le cas de LALR (1), transmettez la grammaire à YACC pour voir si elle détecte les conflits.

CoCo / R C # est manquant dans la liste. Il est simple à utiliser, très polyvalent et particulièrement utile avec des générateurs de code pour une grande variété de langues

Coco / R pour C #, Java, C ++, F #, VB.Net, Oberon, autres langages

[1] http://www.ssw.uni-linz.ac. à / Coco /

ANTLR est un générateur d'analyseur syntaxique d'interface graphique en Java doté de fonctionnalités étendues d'analyse et de factorisation de la grammaire. Consultez la FAQ. cela peut correspondre à ce que vous recherchez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top