动态加载Haskell抽象语法表达式

时间:2012-01-16 14:18:25

标签: haskell dynamic-loading ghc-api

我们可以使用GHC API或其他东西加载非文本源模块,但是AST表达式,类似于haskell-src-exts Exp type吗?这样我们就可以节省代码生成和解析的时间。

1 个答案:

答案 0 :(得分:3)

我不认为GHC API暴露了AST接口(虽然可能是错误的),但模板Haskell确实如此。如果使用Language.Haskell.TH Exp结构构建表达式,则可以创建函数/声明并通过$(someTHFunction)语法使用它们。

一个相当重要的警告是TH只在编译时运行,因此您需要预先生成所有内容。如果你想在运行时使用TH,我认为你需要漂亮打印模板haskell AST,然后在结果字符串上使用GHC API。