質問

私はプロジェクトに取り組んでい解析ウコードです。を用いることにしたGHC構文解析の源推定の種類ではなく自分でコードされました。今、私に辿のHaddock docsでは遅い。なんだろうけど、日本人のチュートリアル?

編集:を明確にしてしまったんですhlint.書い自分を解析するツール実行時の特性ウコードでは、このように書い別のhlint.私が求めていたものがありますが、基本的には拡大のページをwikiページ GHCとしての図書館.

役に立ちましたか?

解決

アダムは、これはかなり厳しいそり滑りです。これまで2006年の発売以来、GHC APIがややunderdocumentedされています。私がお勧めすることはGHCのAPIを使用して書かれているいくつかの小さなアプリケーションを見つけようとすることです。依頼する適切な場所は、おそらくGHCユーザーのメーリングリストをrel="noreferrer"> href="http://www.haskell.org/mailman/listinfo/glasgow-haskell-users"

そのようなプログラムはghctags、GHCソースツリーに同梱されます。私は、元のバージョンを書きましたが、私はそれを、そこにお勧めすることはできません、私はもはやそれに従うことはできませんコードのように多くの足跡があります。私が言うことができる最高のは、それが従うのは難しいが、それは、少なくとものの小さなとフォローくらいするGHCの全てよりも簡単には難しいということです。

他のヒント

ああ!ドキュメントへのより良いエントリポイントが見つかりました:    http://www.haskell.org /ghc/docs/latest/html/libraries/ghc-6.12.1/GHC.htmlする

私はこの例で wikipage に更新されます:

ここではparseModule、typecheckModule、desugarModule、getNamesInScope、およびgetModuleGraphを呼び出す示しています。これは、Haskellのプラットフォーム、GHC-6.12.1で動作します。

バグ:LIBDIRはハードコードされています。上記GHC-パスを参照。

--A.hs
--invoke: ghci -package ghc A.hs
import GHC
import Outputable

--import GHC.Paths ( libdir )
import DynFlags ( defaultDynFlags )
libdir = "/usr/local/lib/ghc-6.12.1"
targetFile = "B.hs"

main = do
   res <- example
   print $ showSDoc ( ppr res )

example = 
    defaultErrorHandler defaultDynFlags $ do
      runGhc (Just libdir) $ do
        dflags <- getSessionDynFlags
        setSessionDynFlags dflags
        target <- guessTarget targetFile Nothing
        setTargets [target]
        load LoadAllTargets
        modSum <- getModSummary $ mkModuleName "B"
        p <- parseModule modSum
        t <- typecheckModule p
        d <- desugarModule t
        l <- loadModule d
        n <- getNamesInScope
        c <- return $ coreModule d

        g <- getModuleGraph
        mapM showModule g     
        return $ (parsedSource d,"/n-----/n",  typecheckedSource d)

--B.hs
module B where

main = print "Hello, World!"

解析が最も重要なことであるならば、私はHaskellの-SRC-extsをお勧めします。それはHaskell98、拡張子の全体杭のすべてを解析し、非常に使いやすいです。

ウwikiGHC書 おそらく何かを探していま検索します。またツールだが hlint, をチェックするための構文やその他のものにつソースコード。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top