获取 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> 因为示例只是从字符串解析)。