这是一个例子。 ANTLR4无法识别此($ type)。
Number //options { backtrack=true; }
: IntegerLiteral { $type = IntegerLiteral; }
| FloatLiteral { $type = FloatLiteral; }
| IntegerLiteral { $type = IntegerLiteral; }
;
可以用什么代替?
谢谢。
答案 0 :(得分:5)
在ANTLR 4中,这是新语法:
Foo
: Bar -> type(SomeType)
| ...
;
但是,对于上面的规则,您应该删除Number
规则,并确保FloatLiteral
和IntegerLiteral
规则不是片段规则。
答案 1 :(得分:2)
在ANTLR v4中,执行:
Number
: IntegerLiteral {setType(IntegerLiteral);}
| ...