antlr4.7.2,右递归和二义性
antlr4.7.2, right recursion and ambiguity
Antlr 4.7.2 解析器使用以下不明确的右递归上下文无关文法无法解析 fed:
grammar ambrd7;
s : c s | b s | 'd' | 'e' 'd'; // fails on 'fed'
c : 'f' 'e' ;
b : 'f' ;
WS: [ \t\r\n]+ -> skip ;
用于测试 antlr 解析器的 TestRig 工具发出一条错误消息:no viable alternative at input 'fed',而数学上此语法生成 fed 从 s 通过几个推导:
s --> c s --> 'f' 'e' s --> 'f' 'e' 'd'
s --> b s --> 'f' s --> 'f' 'e' 'd'
有谁知道为什么解析器无法解析 fed?
谢谢,
埃里克
真奇怪。在 vscode 中,此语法按预期工作:
对于您看到的失败,我唯一的想法是您使用了过时的测试装置。
Antlr 4.7.2 解析器使用以下不明确的右递归上下文无关文法无法解析 fed:
grammar ambrd7;
s : c s | b s | 'd' | 'e' 'd'; // fails on 'fed'
c : 'f' 'e' ;
b : 'f' ;
WS: [ \t\r\n]+ -> skip ;
用于测试 antlr 解析器的 TestRig 工具发出一条错误消息:no viable alternative at input 'fed',而数学上此语法生成 fed 从 s 通过几个推导:
s --> c s --> 'f' 'e' s --> 'f' 'e' 'd'
s --> b s --> 'f' s --> 'f' 'e' 'd'
有谁知道为什么解析器无法解析 fed?
谢谢,
埃里克
真奇怪。在 vscode 中,此语法按预期工作:
对于您看到的失败,我唯一的想法是您使用了过时的测试装置。