X-Git-Url: https://ruin.nu/git/?p=proglang.git;a=blobdiff_plain;f=Abssyntax.hs;h=d9fc3445b15970a66b0ac32ce0d1ca796c5648a8;hp=4cc8d19eb8e0dea898b8239177d6c32e73e7fee9;hb=d553df8dfdffca78342d6fae142ceded9cd64415;hpb=6103c0359b95557566aa9154efa5bcd4d9c996f6 diff --git a/Abssyntax.hs b/Abssyntax.hs index 4cc8d19..d9fc344 100644 --- a/Abssyntax.hs +++ b/Abssyntax.hs @@ -4,12 +4,22 @@ module Abssyntax where newtype Ident = Ident String deriving (Eq,Ord,Show) +data Type = + TInt + | TBool + deriving (Eq,Ord,Show) + +data Stms = + Program [Stm] + deriving (Eq,Ord,Show) + data Stm = - SDecl Type Ident Exp - | SExp Exp + SExp Exp | SBlock [Stm] - | SIf Exp Stm Stm + | SDecl Type Ident Exp + | SDeclD Type Ident | SWhile Exp Stm + | SIf Exp Stm Stm | SPrint Exp | SNoop deriving (Eq,Ord,Show) @@ -18,20 +28,15 @@ data Exp = EAss Ident Exp | EVar Ident | EInt Integer - | ENeg Exp | EBool Bool + | ENeg Exp + | ENot Exp | EReadI | EReadB - | ExpT Type Exp - | EDefault | BiOpExp Exp Op Exp | EPost Ident Op deriving (Eq,Ord,Show) -data Stms = - Program [Stm] - deriving (Eq,Ord,Show) - data Op = Lt | ELt @@ -45,9 +50,3 @@ data Op = | Div deriving (Eq,Ord,Show) -data Type = - TInt - | TBool - | NoType - deriving (Eq,Ord,Show) -