parle 扩展提供通用的词法分析和解析功能。该实现基于 » Ben Hanson 的库,需要支持 » C++14 的编译器。词法分析器基于正则表达式匹配,解析器为 LALR(1)。词法分析器和解析器在运行时生成,可以在完成定义后立即使用。Parle 处理解析和词法分析,合适的数据结构表示和处理是实现者的任务。序列化和代码生成尚未被此扩展支持。
词法分析是将字符序列拆分成词素列表的过程。词素列表然后可以用于根据形式语法进行语法分析。这些操作也被称为词法分析和解析。本文档并非旨在提供有关词法分析和解析的详尽信息。有关这方面的良好信息可在网络上的大量资源中找到。其中包含几个使用示例,以展示其功能。对于想要学习或使用解析和词法分析的 PHP 程序员来说,此扩展非常有用。不需要手动实现状态机和语法解析,这些复杂的任务由 parle 代替。因此,开发可以专注于实际的解决问题。
parle 的常见用例是,当数据格式过于复杂而无法通过 PCRE 的正则表达式匹配来处理时。其实际应用范围很广。无论是特定的数据格式,现有函数的行为修改,甚至是一种自己的编程语言,以及更多。诸如 Parle\Lexer::dump() 用于检查生成的有限状态机,或 Parle\Parser::dump() 用于检查生成的语法等辅助方法非常有用。该方法 Parle\Parser::trace() 也可以用于跟踪解析操作。