Compiler construction 救命啊。。。LL语法与递归下降解析器
我用的是ANTR,这是我的一些语法错误Compiler construction 救命啊。。。LL语法与递归下降解析器,compiler-construction,antlr,grammar,context-free-grammar,recursive-descent,Compiler Construction,Antlr,Grammar,Context Free Grammar,Recursive Descent,我用的是ANTR,这是我的一些语法错误 statement : (name)( | BECOMES expression | LPAREN (expression (COMMA expression)*)? RPAREN | SHIFTLEFT name LPAREN (expression ( COMMA expression )*)? RPAREN ) | OUTPUT LPAREN expression ( COMMA expression)
statement
: (name)(
| BECOMES expression
| LPAREN (expression (COMMA expression)*)? RPAREN
| SHIFTLEFT name LPAREN (expression ( COMMA expression )*)? RPAREN
)
| OUTPUT LPAREN expression ( COMMA expression)* RPAREN
| IF expression THEN statement (ELSE statement)?
| FOR name BECOMES expression TO expression DO statement
| REPEAT statement UNTIL expression
| WHILE expression DO statement
| body
|
;
这是一个错误,“决策可以使用多个选项匹配输入,如“ELSE”
如何修复它?尝试使用
说明
新功能(大功能)是
backtrack=true语法选项,
规则和允许您键入的块
任何旧的垃圾和ANTLR都将返回轨道
如果它不能理解你的意思。
antlr在运行期间未报告任何错误
分析它隐式地添加了一个syn
在每次生产之前,
仅当静态语法为LL时才使用它们*
分析失败。Syn pred代码不正确
如果未在中使用pred,则生成
决定。这基本上是一个快速的过程
原型模式。这就是我所拥有的
在java.g上使用。哦,没有
记忆部分解析(即规则
回溯过程中的解析结果)
现在自动。你还必须说
memoize=true。可以做出巨大的贡献
要打开的差异
@Atom-我可以假设你的意思是“backtrack做什么?”?是的,我的英语很差。@Atom-不需要道歉,我只会说一种语言。:)
options {
backtrack = true;
}