Mat*_*oli 8 php parsing abstract-syntax-tree parser-generator
我正在寻找一个用PHP编写的语言解析器.
目标是阅读自定义语言,而不是阅读PHP代码.
基本上,我想指定语言语法,给出代码片段并返回表示它的结构.然后我可以遍历该结构来执行代码片段.我相信结构将是一个AST,但我不知道这是否是唯一的选择(我与解析器及其词汇不相关).
我看了一下Doctrine DQL解析器,但它看起来不像通用语言解析器.
这不是一个完整的列表,如果你正在寻找PHP运行时词法分析器/解析器,一个特殊的项目是NikiC的Phlexy.
你可以在他编写的PHP-Parser中找到一个用例.这是PHP语言的解析器,带有抽象语法树(AST),部分是从语法文件生成的.
我从来没有把它做到这么远,从我自己多年来的研究来看,PHP用户空间中没有很多这样的项目,而这两个来自NikiC的库真的是一个非常好的例子.
如果你正在寻找一个遵循更多flex规则的词法分析器,我在XDOM中写了一个lexes CSS选择器语法,它也是一个解析器但是解析器不是基于语法文件,即使它存在于CSS规范中.词法分析器基于.lex文件.