【发布时间】:2013-05-05 17:45:09
【问题描述】:
我正在寻找一种语言解析器用 PHP 编写。
目标是阅读自定义语言,而不是阅读 PHP 代码。
基本上,我想指定一种语言语法,给出一个代码 sn-p 并返回一个表示它的结构。然后我可以遍历那个结构来执行代码sn-p。我相信结构将是一个AST,但我不知道这是否是唯一的选择(我对解析器及其词汇并不熟悉)。
我查看了Doctrine DQL parser,但它看起来不像是通用语言解析器。
【问题讨论】:
-
wezfurlong.org/blog/2006/nov/… - sourceforge 上也有一个,但懒得为您搜索链接。你可以从柠檬开始,它通常很容易上手,但当你看到生成的 PHP 类的文件大小时不要死。
-
想要结束这个问题的人,请解释一下
-
@hakre 有意思,所以 Lemon 生成了一个用 PHP 编写的解析器?我会调查的。不过,我宁愿有一个通用的解析 PHP 库(如果语言发展,它会避免与 Lemon 来回切换)。
-
如果我没记错的话,是的。这里是 sourceforge 链接:sourceforge.net/projects/lime-php - 如果你正在寻找一些 PHP 的东西,有一个 PHP 词法分析器的 Phlexy 它是由 NikiC 在PHP-Parser 中使用它。
-
我真的搜索过了,真的什么也没找到。我发现的唯一东西(在 PHP 中)是 Doctrine 的解析器(太具体)和 NikiC 的 PHP 解析器(但我没有费心去读它,因为我认为它像真正的 PHP 解析器一样实现,即没有 AST :|) ...我意识到我应该有:)
标签: php parsing parser-generator abstract-syntax-tree