0

我确实知道 AST 节点的“坐标”属性给出了行号,但默认情况下它的列号设置为无。有没有办法将其设置为真实的列号?

4

1 回答 1

0

Github 上的master分支版本尚未正式发布,但在coordAST 节点的属性中确实包含一列。

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)部分的意思是“在文件<none>,第 2 行,第 17 列”(文件是<none>因为该示例只是从字符串解析)。

于 2017-05-24T03:21:53.437 回答