php - 用 PHP 编写的语言解析器库

标签 php parsing parser-generator abstract-syntax-tree

我正在寻找一个语言解析器用 PHP 编写

目标是阅读自定义语言,而不是阅读 PHP 代码。

基本上,我想指定一种语言语法,提供一个代码片段并取回表示它的结构。然后我可以遍历该结构来执行代码片段。我相信该结构将是 AST,但我不知道这是否是唯一的选择(我对解析器及其词汇表并不熟悉)。

我查看了 Doctrine DQL parser但它看起来不像是通用语言解析器。

最佳答案

这不是完整的列表,如果您正在寻找 PHP 运行时词法分析器/解析器,一个特别的项目是 Phlexy由 NikiC 提供。

您可以在 PHP-Parser 中找到一个用例也是他写的。这是 PHP 语言的解析器,具有抽象语法树 (AST),部分从语法文件生成。

我还没有做到这一点,从我自己多年来的研究来看,PHP 用户空间中这样的项目并不多,NikiC 的这两个库就是一个很好的例子。

如果您正在寻找一个更遵循 flex 规则的词法分析器,我在 XDOM 中写了一个它对 CSS 选择器语法进行词法分析,它也与解析器一起使用,但解析器并不基于语法文件,即使它存在于 CSS 规范中。词法分析器基于 .lex 文件。

关于php - 用 PHP 编写的语言解析器库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16387277/

相关文章:

c++ - AX 解析器生成器和 mingw gcc 4.6 运算符 &

c++ - 是否有免费的解析器生成器可以生成 C++ 代码并正确处理 Unicode?

PHP:套接字监听问题

java - 通过 Java 解析 JSON - 具有键->值格式的数组

java - 具有以下要求的 Java 解析器、生成器

javascript - 在 Javascript 中获取查询参数的最佳方式

java - 在 Java 中从 HTTP 响应解析 JSON 数组

php - 如何从表中获取3个最高值并将其打印出来?

php - 获取多行,但只更新一个 php

php - html 抓取和 css 查询