Comment construire un analyseur syntaxique de la machine d'état LR?
-
08-07-2019 - |
Question
Je veux jouer avec la création d’un générateur d’analyseur LR. Est-ce que quelqu'un connaît une bonne ressource (gratuite) décrivant comment créer une table de machine à états à partir d'une grammaire?
La solution
Pour une ressource gratuite, considérez le code source Python de la PLY - une implémentation complète de Lex. et Yacc en Python.
Je recommanderais cependant un livre et vous ne pouvez pas faire mieux que d'obtenir La Livre de dragon .
Autres conseils
La meilleure ressource que j'ai rencontrée est:
La réponse évidente est le texte standard du compilateur de Aho / Ullman / Ravi, Compilateurs: Principes, techniques et outils
Il contient des chapitres complets sur l'analyse. Ce n'est pas gratuit, mais cela en vaut la peine, et si vous voulez construire des analyseurs syntaxiques ou d'autres outils similaires à ceux d'un compilateur, vous êtes tout simplement fou si vous n'avez pas ce livre.
Peut-être trouvez-vous Grammatica utile. C'est un générateur gratuit de Parser pour .NET. J'ai un peu d'expérience avec ça et c'était bien. Vous pouvez l'essayer et étudier son code. http://grammatica.percederberg.net/