我正在寻找一种方式来获得的Flex /野牛(或莱克斯/ Yacc的,等人)的PHP支持。 具体来说,我实现了在Web UI的布尔查询分析器,宁愿保持PHP内部的所有操作(而不是调用C解析器,或路过的事情了对Python等)。
Answer 1:
LIME解析器发生器PHP:
完成LALR(1)语法分析器发电机和发动机(如野牛或YACC),但它在PHP中全部完成,并且输入的语法更容易和更容易维护。 用PHP编写你的行动。 PHP生成输出代码。 驱动用PHP解析器。 想要让一门语言?
更新:
自从我写了上面,我看到有一些其他的工具分析器一代,在这里宣布:
http://wezfurlong.org/blog/2006/nov/parser-and-lexer-generators-for-php/
不知道这些都是什么更好的维持现在在2014年,但我知道WEZ弗朗,他是PDO的原始开发商,他是一个很好的开发。
Answer 2:
该PEAR库具有类LexerGenerator和ParserGenerator 。 该LexerGenerator语法兼容re2c ,ParserGenerator语法与兼容柠檬分析器发电机 。
Answer 3:
您是否尝试过寻找在PHP解析器PEG发电机: https://github.com/maetl/php-peg ?
或解析器组合方法: http://qntm.org/locoparser ?
文章来源: Flex/Bison-like functionality within PHP