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())
我有如下功能,
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())