antlr4 - ANTLR 4 中 $type 属性的替代品是什么?

标签 antlr4

这是例子。这个 ($type) 不能被 ANTLR4 识别。

Number //options { backtrack=true; }
  :  IntegerLiteral { $type = IntegerLiteral; }
  |  FloatLiteral { $type = FloatLiteral; }
  | IntegerLiteral { $type = IntegerLiteral; }
  ;

这可以用什么代替?

谢谢。

最佳答案

在 ANTLR 4 中,这是新语法:

Foo
  : Bar -> type(SomeType)
  | ...
  ;

但是,对于上面的规则,您应该只删除 Number 规则并确保 FloatLiteralIntegerLiteral 规则不是片段规则。

关于antlr4 - ANTLR 4 中 $type 属性的替代品是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13663525/

相关文章:

javascript - antlr语法: Lexer matches "impossible" rule

java - 如何在 Antlr 中使用访问者创建自定义 AST

java - 在 eclipse 插件中使用 ANTLR v4 运行时

antlr4 - 检查词法分析器中的上一个/左侧标记

antlr4 - ANTLR4 语法中第一个解析器规则的返回声明问题

java - ANTLR:有一个简单的例子吗?

java - 对主代码和测试代码使用antlr4-maven-plugin

java - antlr4 规则不忽略独立的开括号

parsing - ANTLR4:无关输入错误

java - 在 Antlr 中使用访问者编辑 AST