java - 根据 boolean 值跳过一些标记

标签 java antlr4

我有 ANTLR4 的语法文件。
我其中有一些 '('')' 标记,我希望 ANTLR4 跳过它,具体取决于静态 boolean 是否为等于true

示例:

example
   :    '(' IDENTIFIER ')'

IDENTIFIER: [a-z]+;

如果某个静态 boolean 为“true”,我希望跳过 () 标记。

`有什么方法可以做到这一点吗?

最佳答案

试试这个:

grammar T;

@parser::members {
  boolean skipParens = true;
}

example
 : {skipParens}? IDENTIFIER
 |               '(' IDENTIFIER ')'
 ;

IDENTIFIER
 : [a-z]+
 ;

请注意,通过这样做,您的语法将与特定语言(在本例中为 Java)相关联。

关于java - 根据 boolean 值跳过一些标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40952307/

相关文章:

java - 在 LineBreakMeasurer 中处理\n

antlr4 - Xtext Grammars 的集合作为一个库?

javascript - 我的 antlr 4 左递归表达式不保留表达式优先顺序

go - 我正在使用 Antlr4 创建一种语言,然后我想用它生成 LLVM IR。我是否需要手写 LLVM IR 来响应我的访问者事件?

java - 将 ANTLRInputStream 转换为 CharStream

来自 Github 的 ANTLR4 和 C# 目标的 Java 语法

java - Eclipse 生成的 Web 服务客户端非常慢

Java无法在eclipse中导入普通库

java - 关于 varargs 参数的困惑

java - 将 Java WebView 添加到纯 Android NDK 应用程序