2013-05-06 22 views
2

我有這樣的代碼:ANTLR 4:如何知道分部的存在,在規則

varDeclaration 
    : type ID ('=' expression)? ';' 
    ; 

所以,並不總是存在('=' expression)。但是,有時候,我想要處理這部分,但不知道它存在與否。我使用的是ANTLR 4(並且經常使用Listener),我怎麼知道這一點。

謝謝:)

回答

3

在你的聽衆(exitVarDeclaration)或訪客(visitVarDeclaration)檢查是否ctx.expression() == null。如果爲空,則('=' expression)不存在。如果非空,那麼它確實存在。