如何从F#编译器服务获取类型化抽象合成树

时间:2017-04-11 10:55:11

标签: f# f#-compiler-services

如何按照"analysing a whole project"中的描述顺序访问f#项目中所有源文件的类型化抽象语法树。所以,我需要的是项目中所有文件的特定Microsoft.FSharp.Compiler.Tast。

访问无类型语法树非常简单,如walking an untyped ast中所述。所以,我希望有一个相应的接口。

目的是将代码从F#转换为另一种类型语言,在本例中为scala,需要类型注释。整个项目应该立即翻译。

1 个答案:

答案 0 :(得分:2)

您链接的第一个网址显示了如何获取FSharpAssemblySignature,但并未解释如何处理此类值。该类型及其包含的直接类型FSharpEntity& FSharpMemberOrFunctionOrValue中定义了user_123。输入的AST本身在Symbols.fs中定义。除了这两个文件中的注释之外,我不知道任何解释各种类型的文档。