2016-01-02 99 views
1

這是我的形象結構ANTLR 4解析樹貴:如何從子規則上下文ANTLR 4中獲取令牌?

enter image description here

這是我的聽衆規則enterDeclaration:

public void enterDeclaration(ADTCParser.DeclarationContext ctx) { 

    TokenStream tokens = parser.getTokenStream(); 
    String initDeclarationList = tokens.getText(ctx.initDeclarationList()); 
    } 

擺脫initDeclarationList令牌如:

String initDeclarationList = tokens.getText(ctx.initDeclarationList()); 
String parameterDeclaration = ??? 

我的問題是「如何從子規則中獲取標記」parameterDeclaration「from」基於結構的o上面的圖像?

BTW,使用語法下,在ANTLR 4 IM這是鏈接語法:https://github.com/antlr/grammars-v4/blob/master/c/C.g4

+0

需要顯示相關的解析器規則。 – GRosenberg

+0

即時通訊使用語法C EBNF在ANTLR 4 –

回答

1

像這樣:

ADTCParser.ParameterDeclarationContext context = parser.declaration() 
     .initDeclaratorList() 
     .initDeclarator() 
     .declarator() 
     .directDeclarator() 
     .parameterTypeList() 
     .parameterList() 
     .parameterDeclaration(); 

其中parser.declaration()是你ADTCParser.DeclarationContext ctx參數。

+0

非常感謝Bart Kiers先生,它在我的項目中工作 –

+0

不客氣。 –