Fixed prelude and codegen

This commit is contained in:
sebastianselander 2023-05-08 11:23:06 +02:00
parent dbc1dc4982
commit 5af9509a5f
2 changed files with 3 additions and 4 deletions

View file

@ -367,9 +367,8 @@ emitApp rt e1 e2 = do
Global <$ Map.lookup name consts
<|> Global <$ Map.lookup (name, t) funcs
-- this piece of code could probably be improved, i.e remove the double `const Global`
call <- case name of
Ident ('l' : 't' : '$' : _) ->
Ident ('$' : 'l' : 'a' : 'n' : 'g' : 'l' : 'e' : '$' : _) ->
pure $ Icmp LLSlt I64 (snd (head args)) (snd (args !! 1))
Ident ('$' : 'm' : 'i' : 'n' : 'u' : 's' : '$' : '$' : _) ->
pure $ Sub I64 (snd (head args)) (snd (args !! 1))

View file

@ -175,8 +175,8 @@ prelude =
, " False : Bool"
, " True : Bool"
, -- The function body of lt is replaced during code gen. It exists here for type checking purposes.
"lt : Int -> Int -> Bool"
, "lt x y = case x of"
".< : Int -> Int -> Bool"
, ".< x y = case x of"
, " _ => True"
, " _ => False"
, "\n"