0

Left recursion对于构建在递归下降解析基础上的许多解析器生成器似乎是一个大问题。我正在寻找一种基于PEG的解析器生成器来支持它 - 无论使用何种语言。是否有支持左递归的基于PEG的解析器生成器?

+0

PEGs不支持左递归,正如维基百科所说 - “PEG无法在规则引用自身而不在字符串中向前移动的情况下表达左递归规则。”虽然可能有一些尝试去除左递归。 – delnan 2011-04-28 13:10:45

+0

好吧,我打开PEG转换或删除左侧递归没有用户干预。 – 2011-04-28 13:13:28

+1

[可以处理左递归的任何PEG分析器?]的可能重复(http://stackoverflow.com/questions/4397039/any-peg-parser-capable-to-handle-left-recursion) – bummi 2015-01-03 18:45:27

回答

0

我的语法分析器生成器AustenX(scratchy.nz/austen.php)支持左递归(包括间接),其中选项顺序很重要(尽管我从来没有想过写出这个工作原理)。它的核心是Packrat解析器,但记忆可以被丢弃,并没有什么区别。

相关问题