任何人都可以提出一个很好的PHP解析类吗?

问题描述:

我需要一个类,最好用PHP,C#或Python编写,它可以解析PHP并返回一个令牌树。任何人都可以提出一个好的,准确的吗?任何人都可以提出一个很好的PHP解析类吗?

+0

你说的“令牌树”的意思(这不是一个标准术语,我知道)?你的意思是一个匹配PHP语法的具体解析树吗?你的意思是抽象语法树吗? – 2010-08-15 04:22:05

交给PHP有一个本地函数来做到这一点:http://php.net/token_get_all

+1

我不认为它做了一棵树,只是一个令牌流。原始请求是针对树的。 另一方面,我不确定解析器是否有内部树。可能只是一个状态机。当然,在一个php块中打开一个括号并关闭另一个不会帮助树生成。我猜可以使用跳过令牌。 – 2010-08-15 02:23:21

+0

构建一个接收令牌数组并将其转换为对象树的OO树并不难(基本上,在块的开始处创建一个新对象并将其解析为该对象,然后将该对象的树一旦块完成解析)... – ircmaxell 2010-08-15 04:06:54

+0

@ircmaxwell:是的,你可以得到一棵树,那种方式使用了令牌。您可以定义大量具有任意内部节点的树,其树叶恰好是来自token_get_all的令牌。但是拥有这样一棵树的意义是什么(如果它不是某种解析树)? – 2010-08-15 04:24:18