我不知道有哪些用PHP编写的维护的解析器生成器。但是有一些用其他语言编写的解析器生成器,可以将PHP作为目标语言。我个人使用过的一个是kmyacc。它有一个兼容PHP和Windows的分支。它的语法是用yacc格式编写的,可以使用以下命令将其编译为PHP: kmyacc -l -m %PARSER_PROTOTYPE_FILE% -p %NAME% %GRAMMAR_FILE% Kmyacc已经自带了一个PHP过程解析器原型文件,但我个人使用的是基于面向对象的原型的修改版。例如:这个语法被编译成这个解析器。(请注意,该语法非常庞大,因此生成的解析器有两千五百行。"普通"语法显然会小得多。)
如果您只需要解析“自定义表达式”,并且已经编写了语法规则,那么您可以很容易地手工编写递归下降解析器。详情请参见此SO答案:Is there an alternative for flex/bison that is usable on 8-bit embedded systems?。请保留HTML标签,但不添加解释。