Antlr4 ANTLR 4中$type属性的替换是什么?
这是一个例子。ANTLR4无法识别此($类型)Antlr4 ANTLR 4中$type属性的替换是什么?,antlr4,Antlr4,这是一个例子。ANTLR4无法识别此($类型) Number //options { backtrack=true; } : IntegerLiteral { $type = IntegerLiteral; } | FloatLiteral { $type = FloatLiteral; } | IntegerLiteral { $type = IntegerLiteral; } ; 这可以用什么来代替 谢谢。在ANTLR v4中,请执行以下操作: Number : In
Number //options { backtrack=true; }
: IntegerLiteral { $type = IntegerLiteral; }
| FloatLiteral { $type = FloatLiteral; }
| IntegerLiteral { $type = IntegerLiteral; }
;
这可以用什么来代替
谢谢。在ANTLR v4中,请执行以下操作:
Number
: IntegerLiteral {setType(IntegerLiteral);}
| ...
在ANTLR 4中,这是新语法:
Foo
: Bar -> type(SomeType)
| ...
;
但是,对于上面的规则,您应该删除
数字
规则,并确保FloatLiteral
和IntegerLiteral
规则不是片段规则。啊,是的,我知道我在特伦斯的新书中浏览了一些较短的内容!可能需要提到的是,->
不是旧v3用户的AST重写操作符:)@280Z28您所说的“删除编号规则”和非碎片规则是什么意思?你能为我澄清一下吗?因为这是我问题的答案。你能接受280Z28的答案吗?这是首选方式(不依赖于目标)。