Question

Je cherche un moyen d'obtenir le support Flex / Bison (ou Lex / Yacc, et autres) en PHP. Plus précisément, j'implémente un analyseur de requête booléen dans une interface Web et préfère conserver toutes les opérations dans PHP (au lieu d'appeler un analyseur C ou de transmettre des éléments à Python, etc.).

Était-ce utile?

La solution

LIME Générateur d'analyseurs syntaxiques pour PHP:

  

Complétez le générateur d’analyseur LALR (1) et   moteur (comme BISON ou YACC) mais il est   tout se fait en PHP, et la grammaire de saisie   est plus facile et plus facile à maintenir. Écrire   vos actions en PHP. Générer PHP   code de sortie. Conduisez votre analyseur avec   PHP. Tu veux faire une langue?

mettre à jour:

Depuis que j'ai écrit ce qui précède, je constate qu'il existe d'autres outils pour la génération de l'analyseur, annoncés ici:

http://wezfurlong.org/ blog / 2006 / nov / parser-et-lexer-generators-for-php /

Je ne sais pas si elles sont mieux entretenues en 2014, mais je connais Wez Furlong, il était le développeur original de PDO et il est un très bon développeur.

Autres conseils

La bibliothèque PEAR contient les classes LexerGenerator et ParserGenerator . La syntaxe LexerGenerator est compatible avec la re2c . La syntaxe ParserGenerator est compatible avec la Générateur Lemon Parser .

Avez-vous essayé de regarder les générateurs d’analyseurs PEG en PHP: https://github.com/maetl/php -peg ?

Ou une approche combinant un analyseur syntaxique: http://qntm.org/locoparser ?

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