1 {-# LANGUAGE OverloadedStrings #-}
6 import qualified Data.Text.Lazy.IO as Text
8 import LLVM.AST.Constant
10 import LLVM.AST.Operand
16 ast <- read <$> getContents
17 let mdl = buildModule "main" $
18 function "expr" [] float $ \_ -> do
21 Text.putStrLn (ppllvm mdl)
23 build :: AST.Expr -> IRBuilderT ModuleBuilder Operand
24 build (AST.Num a) = pure $ ConstantOperand (Float (Single a))
25 build (AST.Add a b) = do