这是我的图像结构ANTLR 4解析树gui:
这是我的听众规则enterEclaration:
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"来自"基于上图的结构?
BTW,即时通讯在ANTLR 4中使用语法C. 这是语法的链接:https://github.com/antlr/grammars-v4/blob/master/c/C.g4
答案 0 :(得分:1)
像这样:
ADTCParser.ParameterDeclarationContext context = parser.declaration()
.initDeclaratorList()
.initDeclarator()
.declarator()
.directDeclarator()
.parameterTypeList()
.parameterList()
.parameterDeclaration();
其中parser.declaration()
是您的ADTCParser.DeclarationContext ctx
参数。