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