2016-12-03 57 views
1

我有一個ANTLR4的語法文件。
我有一些'('')'令牌,我想讓ANTLR4跳過它,這取決於靜態boolean是否等於true根據布爾值跳過一些標記

示例:如果某一靜態boolean是`真

example 
    : '(' IDENTIFIER ')' 

IDENTIFIER: [a-z]+; 

我想爲()令牌被跳過。

`這樣做的任何方式?

+0

「跳過它」是什麼意思? –

+0

不再需要它,就好像它沒有放在語法中一樣。 – user3535030

+0

在解析器規則?在詞法分析規則中?這將大大有助於你想要實現的一些例子 –

回答

1

試試這個:

grammar T; 

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

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

IDENTIFIER 
: [a-z]+ 
; 

注意,通過這樣做,你的語法是依賴於特定的語言(Java的,在這種情況下)。