确定已加载目标的ModuleName

时间:2012-08-20 14:36:44

标签: haskell ghc ghc-api

我想知道如何使用API​​确定您刚刚在ghc中加载的文件的ModuleName

如果您查看API的Documentation,他们总是假设您在加载文件之前知道模块名称。

我尝试过排序依赖关系图并在那里选择最后一个模块,但这似乎并不总是返回加载的文件。

我之前能够做到的方法是修改GHC源代码以将此信息存储在HscEnv中。

如果对load的调用会返回它会很好,但是由于GHCi在加载文件时知道这一点,因此肯定必须有办法。

1 个答案:

答案 0 :(得分:1)

haskell-src-exts包具有parseFile函数,类型为parseFile :: FilePath -> IO (ParseResult Module)Module类型有一个模块名称的字段。