我知道问题Lex and Yacc in PHP之前被问过但是1年前。
现在有没有新的成熟PHP解析器生成器? 我的搜索将我带到了下面的那些,你对他们有什么看法,还有其他什么?
[答案:] 有人给了我一个古老问题的精彩链接: Is there an alternative for flex/bison that is usable on 8-bit embedded systems?
这篇文章让我了解了大部分生成的ANTLR代码。所以我的选择保持不变:ANTLR虽然项目似乎已经死了。我希望我不必改变代码,因为我希望保持它的可维护性。
我会等一下,看看是否有另一个答案,否则我会接受你的建议继续使用ANTLR
答案 0 :(得分:6)
我建议尝试一下ANTLR。 ANTLRWorks可能会有所帮助。
我自己用纯PHP写了一个LL(1)解析器生成器,因为我不知道其他基于PHP的解决方案。
答案 1 :(得分:6)
我已将jison(javascript中的Bison克隆)移植到php。结果是一个杀手解析器,能够处理非常简单和非常复杂的lexing /解析。它现在是Jison的一部分,但my fork中有一些更新。
文件为here。请参阅该页面中的自述文件,您可以同时创建一个能够执行相同或不同操作的javascript和php解析器。
它使用稳定,快速,简单和有趣。
答案 2 :(得分:2)
答案 3 :(得分:0)
有最新的PHP 7.4语法文件:https://github.com/php/php-src/blob/af12aa8124232b8fb6e96736e1232f6e0d2554e8/Zend/zend_language_parser.y
PHP使用re2c解析器生成器,但是据我所知,其语法与ANTLR兼容。