解析器组合器
通过解析器对象的组合创建自上而下的解析器。
尽管我们的前提是 解析器生成器 并不像人们认为的那样难于使用,但如果可能,仍然有一些正当理由可以避免使用它们。最明显的问题是构建过程中需要额外的步骤,首先生成解析器,然后构建它。虽然 解析器生成器 仍然是更复杂上下文无关语法的正确选择,特别是如果语法是模棱两可的或性能至关重要的,但直接在通用语言中实现解析器是一个可行的选择。
解析器组合器使用解析器对象的结构来实现语法。生产规则中符号的识别器使用组合器进行组合,组合器被称为组合器。实际上,解析器组合器代表了语法的 语义模型。
有关更多详细信息,请参见 DSL 书籍 的 第 22 章。