X-Git-Url: https://git.lukelau.me/?p=kaleidoscope-hs-old.git;a=blobdiff_plain;f=Main.hs;fp=Main.hs;h=8f4610af8b249920f0b03e67091804ad70c34faa;hp=2d838d339da3d1a04c5354fc8e920085aa565d0e;hb=51aeade75d5289fff417414b04bae5be0862fd8f;hpb=73933773ed314b8958752ca628ae54c2de4dae7f diff --git a/Main.hs b/Main.hs index 2d838d3..8f4610a 100644 --- a/Main.hs +++ b/Main.hs @@ -35,7 +35,11 @@ main = do build :: AST.Expr -> IRBuilderT ModuleBuilder Operand build (AST.Num a) = pure $ ConstantOperand (Float (Single a)) -build (AST.Add a b) = do +build (AST.BinOp op a b) = do va <- build a vb <- build b - fadd va vb + let instr = case op of + AST.Add -> fadd + AST.Sub -> fsub + AST.Mul -> fmul + instr va vb