2014-03-03 71 views
2

我想從antlr4中的分析樹中排除某些標記。從分析樹中排除特定標記

說我有這樣的定義:

assignStatement: assignable EQ expression EOS; 

EQ: '='; 
EOS: ';'; 

產生的解析樹包含assignableEQexpressionEOSassignStatement孩子。有沒有什麼辦法擺脫EQEOS在這裏,因爲我只需要他們在分析時間匹配的目的?

回答

2

ANTLR 4不會從分析樹中忽略匹配的終端。雖然您的應用程序不需要訪問這些令牌,但我們的經驗是,使用以前編寫的語法的新應用程序經常需要訪問早期應用程序沒有的元素。通過在解析樹中包含所有元素,我們預先考慮了這種情況,以提高使用ANTLR 4的應用程序的長期可維護性。