ANTLR 获取所有函数参数

ANTLR get all function args

我有如下功能,

int foo(int i, int i2, int i3)
{
   return 0;
}

我使用 visitDeclaration 访问所有函数声明,然后从那里我来到 parameterdeclarationlist(),我可以看到里面有多个 parameterdeclaration 满足我的所有需要​​。

我可以通过类似的方式获得第一个参数,

...
    paramclaus = paramsqual.parameterdeclarationclause()
    if paramclaus is not None:
        paramdeclst = paramclaus.parameterdeclarationlist()
        paramdecltn = paramdeclst.parameterdeclaration()
        print(paramdecltn.getText())

但我无法遍历所有其他参数声明对象。 我还实现了 visitParameterdeclarationlist,它给了我函数参数,但我不知道如何获取这些参数的函数名称。

提前致谢。

如果你改变:

parameterdeclarationlist
   : parameterdeclaration
   | parameterdeclarationlist ',' parameterdeclaration
   ;

进入:

parameterdeclarationlist
   : parameterdeclaration (',' parameterdeclaration)*
   ;

你可以这样做:

paramdeclst = paramclaus.parameterdeclarationlist()

for paramdecltn in paramdeclst.parameterdeclaration():
    print(paramdecltn.getText())