import AST
import RWST
-//Instruction is an instruction, with possible arguments and a possible comment
-//Or is a label
TRUE :== -1
FALSE :== 0
:: Instr = Instr String [Arg] String
Right (_, p) = Right $ toString p
where
prog = tell [Instr "bra" [L "main"] ""] >>| mapM_ g fds
-//gen _ = prog
-// where
-// expr = (Op2Expr zero (Op1Expr zero UnMinus (IntExpr zero 4)) BiPlus (IntExpr zero 7))
-// expr2 = (FunExpr zero "test" [IntExpr zero 4] [])
-// stmt = (IfStmt (BoolExpr zero True) [] [])
-// prog = case evalRWST (g stmt) 0 ('Map'.newMap, labelStream) of
-// Left (Error e) = abort e
-// Right (_, prog) = toString prog
-//gen _ = toString [Lab "Test"
-// ,Instr "ldc" [Lit 1] "Eerste instructie"
-// ,Instr "ldc" [Lit 2] "Tweede instructie"]
//Current issues:
//All VarDecls are added as function, how to deal with assignments?