【问题标题】:Antlr 4 - Java grammar rule "Explicit Generic Invocation" never gets visitedAntlr 4 - Java 语法规则“显式通用调用”永远不会被访问
【发布时间】:2014-08-09 12:26:42
【问题描述】:

我正在构建一个侦听器来将所有 java 方法调用 A.Foo(args) 转换为 A.Bar(args)。在我看来,规则是:

expression '.' explicitGenericInvocation

是最适合听的规则。但是,在对树进行目视检查后,我意识到所有 java 方法调用都被识别为规则

expression '(' expressionList? ')'

而表达式 term 进一步匹配到

expression '.' Identifier

似乎表达式规则一直覆盖explicitGenericInvocation 规则。这是有意的还是java语法有缺陷?如果是有意的,那么规则explicitGenericInvocation 的正确解释是什么?

【问题讨论】:

    标签: antlr antlr4 code-translation


    【解决方案1】:

    explicitGenericInvocation 必须以 <...> 的 nonWildcardTypeArguments 开头。因此,a.Foo(args) 匹配通用规则而不是通用类型的专用规则。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-27
      • 2013-10-12
      相关资源
      最近更新 更多