我正在尝试解析这段 C 代码:
void foo(const int *bar, int * const baz);
使用GnuCParser
, 部分pycparserext。
基于这个答案,我希望看到一些PtrDecl
s,但这是我从ast.show()
生成的解析树中得到的:
FileAST:
Decl: foo, [], [], []
FuncDecl:
ParamList:
Decl: bar, ['const'], [], []
TypeDeclExt: bar, ['const']
IdentifierType: ['int']
Decl: baz, [], [], []
TypeDeclExt: baz, []
IdentifierType: ['int']
TypeDecl: foo, []
IdentifierType: ['void']
请注意baz
,“指向的常量指针int
”如何const
在由ast.show()
. 这种差异是因为GnuCParser
?
如何baz
从 AST 中找出类型?我的实际 C 代码需要 GNU 解析器。我正在使用 pycparserext 版本 2016.1。