根据布尔值跳过一些标记
Skip some tokens depending on boolean value
我有一个 ANTLR4 的语法文件。
我有一些 '('
和 ')'
标记,我希望 ANTLR4 跳过它取决于静态 boolean
是否等于 true
。
示例:
example
: '(' IDENTIFIER ')'
IDENTIFIER: [a-z]+;
如果某个静态 boolean
为“真”,我希望跳过 (
和 )
标记。
`有什么办法吗?
试试这个:
grammar T;
@parser::members {
boolean skipParens = true;
}
example
: {skipParens}? IDENTIFIER
| '(' IDENTIFIER ')'
;
IDENTIFIER
: [a-z]+
;
请注意,这样做会使您的语法与特定语言相关联(Java,在本例中)。
我有一个 ANTLR4 的语法文件。
我有一些 '('
和 ')'
标记,我希望 ANTLR4 跳过它取决于静态 boolean
是否等于 true
。
示例:
example
: '(' IDENTIFIER ')'
IDENTIFIER: [a-z]+;
如果某个静态 boolean
为“真”,我希望跳过 (
和 )
标记。
`有什么办法吗?
试试这个:
grammar T;
@parser::members {
boolean skipParens = true;
}
example
: {skipParens}? IDENTIFIER
| '(' IDENTIFIER ')'
;
IDENTIFIER
: [a-z]+
;
请注意,这样做会使您的语法与特定语言相关联(Java,在本例中)。