PHP的类库是否有类似于pyparsing的功能?

7
我想知道:是否有类似于pyparsing(一种递归下降解析器)的PHP解析器?
我已经搜索过了,但似乎还没有人做过。希望我是错的。
谢谢您提前的帮助。

使用不同的封闭字符创建自定义嵌套表达式,这对于正则表达式来说并不是一件简单的事情 :-( - Donovan
@stereofrog:那个项目似乎已经停了,不过我会看一下。谢谢。 - Donovan
@Alberteddu:你能给一个例子或者一个正式的语法吗?根据具体情况,最好使用递归正则表达式(可以在正则表达式中进行递归,而且很容易)或手写正则表达式词法分析器和解析器或解析器生成器。这取决于语法的复杂性。 - NikiC
3个回答

6

我不知道有哪些用PHP编写的维护的解析器生成器。但是有一些用其他语言编写的解析器生成器,可以将PHP作为目标语言。我个人使用过的一个是kmyacc。它有一个兼容PHP和Windows的分支。它的语法是用yacc格式编写的,可以使用以下命令将其编译为PHP:

kmyacc -l -m %PARSER_PROTOTYPE_FILE% -p %NAME% %GRAMMAR_FILE%

Kmyacc已经自带了一个PHP过程解析器原型文件,但我个人使用的是基于面向对象的原型的修改版
例如:这个语法被编译成这个解析器。(请注意,该语法非常庞大,因此生成的解析器有两千五百行。"普通"语法显然会小得多。)

这非常有趣。我会去看一下。非常感谢(显然如果这是我需要的,我会标记为已回答)。 - Donovan

2

哈哈,总是在解析问题上碰到你 :) - NikiC
@NikiC:这是做了40年的职业带来的副作用之一 :-} - Ira Baxter

0

谢谢。我找到了这个,但不是我需要的。我将不得不解析复杂的字符串。 - Donovan
1
Pyparsing不再托管在wikispaces.com上。请访问https://github.com/pyparsing/pyparsing。 - PaulMcG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接