X-Git-Url: https://ruin.nu/git/?p=proglang.git;a=blobdiff_plain;f=Abssyntax.hs;h=881c1723bcc4fa5021eb17ef6d9503edfc6ffd3c;hp=d9fc3445b15970a66b0ac32ce0d1ca796c5648a8;hb=d606bc7eda59e30fbb75555b4d4c5da91b7327b9;hpb=99548e772decde168669179c0da03109a9df5356 diff --git a/Abssyntax.hs b/Abssyntax.hs index d9fc344..881c172 100644 --- a/Abssyntax.hs +++ b/Abssyntax.hs @@ -9,8 +9,8 @@ data Type = | TBool deriving (Eq,Ord,Show) -data Stms = - Program [Stm] +data Program = + Program [FuncStm] deriving (Eq,Ord,Show) data Stm = @@ -21,6 +21,7 @@ data Stm = | SWhile Exp Stm | SIf Exp Stm Stm | SPrint Exp + | SReturn Exp | SNoop deriving (Eq,Ord,Show) @@ -33,10 +34,24 @@ data Exp = | ENot Exp | EReadI | EReadB + | EFunc Ident [Exp] | BiOpExp Exp Op Exp | EPost Ident Op deriving (Eq,Ord,Show) +data Decl = + Decl Type Ident + deriving (Eq,Ord,Show) + +data Func = + Func Type Ident [Decl] [Stm] + deriving (Eq,Ord,Show) + +data FuncStm = + S Stm + | F Func + deriving (Eq,Ord,Show) + data Op = Lt | ELt