Chr*_*ith 6 haskell ghc ghc-api
我需要对现有的Haskell源文件进行一些更改,并写出修改后的源代码。我想为此使用GHC API,以便结果与当前的Haskell一致。我当前的方法在这里,类似于:
mod <- parseTheSource -- omitted, but I'm sure this works
printForUser dynFlags outHandle neverQualify $ ppr (transform mod)
Run Code Online (Sandbox Code Playgroud)
这行得通...差不多!它去除了LANGUAGE和OPTIONS_GHC编译指示,因此有时较早编译的文件在往返之后将失败。
有一个更好的方法吗?
我注意到这ghc-exactprint看起来很相关,但是我不知道如何使它正常工作。看起来它与GHC会话相关,该会话很可能DynFlags是从命令行初始化的,还有很多其他我不想要的垃圾。如果这是正确的方向,我可以使用一些帮助提炼出要做什么的方法,尤其是使用我自己DynFlags已经可以构造的方法,并且不会将GHC命令行处理等泄漏到代码中。