PHP中的Flex /野牛一样的功能(Flex/Bison-like functionality w

2019-07-28 20:20发布

我正在寻找一种方式来获得的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