我正在寻找一种在PHP中获得Flex / Bison(或Lex / Yacc等人)支持的方法。具体来说,我正在Web UI中实现一个布尔查询解析器,而宁愿将所有操作保留在PHP中(而不是调用C解析器,或者将事物传递给Python等)。
我正在寻找一种在PHP中获得Flex / Bison(或Lex / Yacc等人)支持的方法。具体来说,我正在Web UI中实现一个布尔查询解析器,而宁愿将所有操作保留在PHP中(而不是调用C解析器,或者将事物传递给Python等)。
青柠 适用于PHP的分析器生成器:
完成LALR(1)解析器生成器和 引擎(比如BISON或YACC)但是它 全部用PHP完成,输入语法 更容易,更易于维护。写 你在PHP中的行为。生成PHP 输出代码。使用驱动解析器 PHP。想做一门语言?
更新:
自从我写了上面的内容后,我发现还有一些其他的解析器生成工具,在这里宣布:
http://wezfurlong.org/blog/2006/nov/parser-and-lexer-generators-for-php/
不确定这些在2014年是否有更好的维护,但我知道Wez Furlong,他是PDO的原始开发人员,他是一个非常好的开发人员。
青柠 适用于PHP的分析器生成器:
完成LALR(1)解析器生成器和 引擎(比如BISON或YACC)但是它 全部用PHP完成,输入语法 更容易,更易于维护。写 你在PHP中的行为。生成PHP 输出代码。使用驱动解析器 PHP。想做一门语言?
更新:
自从我写了上面的内容后,我发现还有一些其他的解析器生成工具,在这里宣布:
http://wezfurlong.org/blog/2006/nov/parser-and-lexer-generators-for-php/
不确定这些在2014年是否有更好的维护,但我知道Wez Furlong,他是PDO的原始开发人员,他是一个非常好的开发人员。
PEAR库有类 LexerGenerator 和 ParserGenerator。 LexerGenerator语法兼容 re2c,ParserGenerator语法兼容 柠檬解析器发电机。
您是否尝试在PHP中查看PEG解析器生成器: https://github.com/maetl/php-peg ?
或解析器组合方法: http://qntm.org/locoparser ?