Frage

Ich bin für einen Weg suchen, Flex / Bison zu bekommen (oder Lex / Yacc, et. Al.) Unterstützung in PHP. Insbesondere bin ich ein boolean Abfrageparser in einer Web-UI Implementierung und würde lieber alle Vorgänge halten innerhalb von PHP (wie ein C-Parser Aufruf Gegensatz oder auf Reisen, die Dinge aus zu Python, etc.).

War es hilfreich?

Lösung

LIME Parser-Generator für PHP:

  

Komplette LALR (1) Parser-Generator und   Motor (wie BISON oder YACC), aber es ist   alle in PHP, und die Eingabegrammatik getan   ist einfacher und besser wartbar. Schreiben   Ihre Aktionen in PHP. generieren Sie PHP   Ausgangscode. Fahren Sie Ihren Parser mit   PHP. Möchten Sie eine Sprache machen?


Update:

Da ich die oben geschrieben habe, ich sehe, dass einige andere Werkzeuge für Parsergenerierung es gab hier:

http://wezfurlong.org/ Blog / 2006 / November / Parser-and-Lexer-Generatoren-for-php /

Nicht sicher, ob diese besser im Jahr 2014 jetzt beibehalten, aber ich weiß, Wez Furlong, er war der ursprüngliche Entwickler von PDO, und er ist ein sehr guter Entwickler.

Andere Tipps

Die PEAR-Bibliothek hat die Klassen LexerGenerator und parsergenerator . Die LexerGenerator Syntax ist kompatibel mit re2c ist parsergenerator Syntax kompatibel mit dem Lemon Parser-Generator .

Haben Sie versucht, an PEG Parser-Generatoren in PHP suchen: https://github.com/maetl/php -PEG ?

oder ein Parser combinator Ansatz: http://qntm.org/locoparser

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top