库像pyparsing for PHP

时间:2011-09-15 13:42:36

标签: php parsing

我想知道:PHP有pyparsing(递归下降解析器)吗? 我已经找了它,但似乎还没有人做过。我希望我错了。

提前谢谢。

3 个答案:

答案 0 :(得分:5)

我不知道用PHP编写的任何维护的解析器生成器。但是有一些解析器生成器用其他语言编写,用PHP作为目标语言。我个人使用的是kmyacc。有一个PHP and Windows compatible fork。它的语法以yacc格式编写,可以使用以下命令编译为PHP:

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

Kmyacc已经附带了PHP的过程解析器原型文件,但我个人使用了a modified versionOOP based prototype

举个例子:This grammar get编译成this parser。 (请注意,语法很大,这就是生成的解析器有两千五百行的原因。“正常”语法显然要小得多。)

答案 1 :(得分:2)

如果你需要解析的只是“自定义表达式”,如果你已经写下你的语法,你可以很容易地手工编写递归下降解析器。

有关详细信息,请参阅此SO答案:Is there an alternative for flex/bison that is usable on 8-bit embedded systems?

答案 2 :(得分:0)