问题
Here is the example. This ($type) is not recognised by ANTLR4.
Number //options { backtrack=true; }
: IntegerLiteral { $type = IntegerLiteral; }
| FloatLiteral { $type = FloatLiteral; }
| IntegerLiteral { $type = IntegerLiteral; }
;
What could this be replaced by?
Thank you.
回答1:
In ANTLR v4, do:
Number
: IntegerLiteral {setType(IntegerLiteral);}
| ...
回答2:
In ANTLR 4, this is the new syntax:
Foo
: Bar -> type(SomeType)
| ...
;
However, for the rule you have above you should just remove the Number rule and make sure the FloatLiteral and IntegerLiteral rules are not fragment rules.
来源:https://stackoverflow.com/questions/13663525/what-is-the-replacement-for-type-attribute-in-antlr-4