12

PHP で Flex/Bison (または Lex/Yacc など) をサポートする方法を探しています。具体的には、Web UI にブール値クエリ パーサーを実装しており、(C パーサーを呼び出したり、Python に渡したりするのではなく) すべての操作を PHP 内に保持したいと考えています。

4

3 に答える 3

12

PHP 用のLIMEパーサー ジェネレーター:

完全な LALR(1) パーサー ジェネレーターとエンジン (BISON や YACC など) を備えていますが、すべて PHP で行われ、入力文法はより簡単で保守しやすくなっています。アクションを PHP で記述します。PHP 出力コードを生成します。パーサーを PHP で動かします。言語を作りたいですか?


アップデート:

上記を書いたので、ここで発表されたパーサー生成用のツールが他にもいくつかあることがわかりました。

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

2014 年の現在、これらがより適切に維持されているかどうかはわかりませんが、私は Wez Furlong を知っています。彼は PDO の最初の開発者であり、非常に優れた開発者です。

于 2009-06-16T21:09:29.690 に答える
3

PEAR ライブラリには、クラスLexerGeneratorおよびParserGeneratorがあります。LexerGenerator 構文はre2cと互換性があり、ParserGenerator 構文はLemon パーサー ジェネレーターと互換性があります。

于 2010-07-02T15:43:44.867 に答える
0

PHP で PEG パーサー ジェネレーターを調べてみました: https://github.com/maetl/php-peg ?

または、パーサー コンビネーター アプローチ: http://qntm.org/locoparser ?

于 2012-05-26T11:48:24.467 に答える