将swiftc AST输出发送到stderr的替代方法

时间:2017-01-08 03:32:24

标签: swift abstract-syntax-tree

我正在使用swiftc编译器生成抽象语法树,我正在寻找将所有输出发送到stderr的默认-dump-ast行为的替代方法。有一个-output-file-map选项,但我找不到任何文档,搜索github存储库没有透露任何内容。 -o选项似乎没有任何效果。

2 个答案:

答案 0 :(得分:0)

有一个选项可以将AST输出到文件中:

image_2 = four_point_transform(image, biggest_contour)

例如xcrun swiftc -frontend -emit-syntax #{file} > #{output}

它将用AST的最小JSON表示填充xcrun swiftc -frontend -emit-syntax Test.swift > Test_ast.json

您还可以使用python的功能来美化它:

Test_ast.json

但是会增加文件大小

答案 1 :(得分:0)

替代1

swiftc -dump-ast foo.swift [...] -o foo.ast会将AST转储到文件foo.ast。

替代2

swiftc -dump-ast -output-file-map=outputFileMap.json *.swift [...],给定一个outputFileMap.json文件,其中包含格式为“ ast-dump”的条目:“ foo.ast”,它将把输入文件的AST转储到文件映射中的相应输出文件中

可以找到相关的拉取请求here,可以找到讨论here