LLVM IR コード (できればアセンブリ形式) を、後で処理するために使用できる内部 Haskell データ型に解析する方法を探しています。これを行うためのHaskellパッケージがいくつかあると思いますが、見つけられないようです。
助言がありますか?
Haskell の最新の LLVM パッケージはllvm-general ライブラリです。LLVM バイトコード モジュールを文字列から AST 用の Haskell ADT に変換するバインディングがあります。
import LLVM.General
import LLVM.General.Analysis
import LLVM.General.Context
import Control.Monad.Error
main :: String -> IO ()
main src = do
_ <- withContext $ \context -> do
runErrorT $ withModuleFromString context src $ \mod -> do
ast <- moduleAST mod
-- Your logic here.
return ()