获取 pycparser 生成的 ast 中 C 构造的列号
Get column number of C construct in ast generated by pycparser
我知道 AST 节点的 "coord" 属性给出了行号,但默认情况下它的列号设置为 None。有没有办法将其设置为真实的列号?
Github 上的 master
分支版本尚未正式发布,但在 AST 节点的 coord
属性中包含一列。
examples/explore_ast.py
示例可以显示这一点,如果您取消注释带有 showcoord=True
的行。这是一个转储的 AST 片段:
FileAST: (at None)
Typedef: Node, [], ['typedef'] (at <none>:2:17)
TypeDecl: Node, [] (at <none>:2:17)
IdentifierType: ['int'] (at <none>:2:13)
Typedef: Hash, [], ['typedef'] (at <none>:2:23)
TypeDecl: Hash, [] (at <none>:2:23)
IdentifierType: ['int'] (at <none>:2:13)
FuncDef: (at <none>:4:10)
Decl: HashPrint, [], [], [] (at <none>:4:10)
FuncDecl: (at <none>:4:10)
ParamList: (at <none>:4:24)
Decl: hash, [], [], [] (at <none>:4:24)
PtrDecl: [] (at <none>:4:24)
TypeDecl: hash, [] (at <none>:4:26)
(at <none>:2:17)
部分表示 "at file <none>
, line 2, column 17" (文件是 <none>
因为示例只是从字符串解析)。
我知道 AST 节点的 "coord" 属性给出了行号,但默认情况下它的列号设置为 None。有没有办法将其设置为真实的列号?
Github 上的 master
分支版本尚未正式发布,但在 AST 节点的 coord
属性中包含一列。
examples/explore_ast.py
示例可以显示这一点,如果您取消注释带有 showcoord=True
的行。这是一个转储的 AST 片段:
FileAST: (at None)
Typedef: Node, [], ['typedef'] (at <none>:2:17)
TypeDecl: Node, [] (at <none>:2:17)
IdentifierType: ['int'] (at <none>:2:13)
Typedef: Hash, [], ['typedef'] (at <none>:2:23)
TypeDecl: Hash, [] (at <none>:2:23)
IdentifierType: ['int'] (at <none>:2:13)
FuncDef: (at <none>:4:10)
Decl: HashPrint, [], [], [] (at <none>:4:10)
FuncDecl: (at <none>:4:10)
ParamList: (at <none>:4:24)
Decl: hash, [], [], [] (at <none>:4:24)
PtrDecl: [] (at <none>:4:24)
TypeDecl: hash, [] (at <none>:4:26)
(at <none>:2:17)
部分表示 "at file <none>
, line 2, column 17" (文件是 <none>
因为示例只是从字符串解析)。