关于 antlr4:如何从子规则上下文 ANTLR 4 中获取令牌?

How to get token from sub rule context ANTLR 4?

这是我的图像结构 ANTLR 4 解析树 gui:

enter

1
2
3
4
5
   public void enterDeclaration(ADTCParser.DeclarationContext ctx) {

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

从 initDeclarationList 中获取令牌,例如 :

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

我的问题是"如何从基于上图的结构中的子规则"parameterDeclaration"获取令牌?

顺便说一句,我在 ANTLR 4 中使用语法 C
这是语法链接:https://github.com/antlr/grammars-v4/blob/master/c/C.g4


像这样:

1
2
3
4
5
6
7
8
ADTCParser.ParameterDeclarationContext context = parser.declaration()
        .initDeclaratorList()
        .initDeclarator()
        .declarator()
        .directDeclarator()
        .parameterTypeList()
        .parameterList()
        .parameterDeclaration();

其中 parser.declaration() 是您的 ADTCParser.DeclarationContext ctx 参数。