X-Git-Url: https://ruin.nu/git/?p=proglang.git;a=blobdiff_plain;f=Abssyntax.hs;h=ec85c8d619730b34e85d5e00a39f4a562e995d06;hp=7c95d5324e1a58ef1a8f32b099d16fb0babcac42;hb=565fbd61dca527c23888e08783d0d91cee458524;hpb=b33c4977fff6bad375551eaf4fed0aa06daf1c88 diff --git a/Abssyntax.hs b/Abssyntax.hs index 7c95d53..ec85c8d 100644 --- a/Abssyntax.hs +++ b/Abssyntax.hs @@ -4,54 +4,48 @@ 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 | SWhile Exp Stm + | SIf Exp Stm Stm | SPrint Exp | SNoop + | SDecl Type Ident Exp deriving (Eq,Ord,Show) data Exp = - BExp Exp BOp Exp + EAss Ident Exp | EVar Ident - | EAss Ident Exp | EInt Integer - | ENeg Exp | EBool Bool + | ENeg Exp + | ENot Exp | EReadI | EReadB - | ExpT Type Exp - | EDefault - | OpExp Exp Op Exp + | BiOpExp Exp Op Exp | EPost Ident Op deriving (Eq,Ord,Show) -data Stms = - Program [Stm] - deriving (Eq,Ord,Show) - -data BOp = +data Op = Lt | ELt | Gt | EGt | Eq | NEq - deriving (Eq,Ord,Show) - -data Op = - Plus + | Plus | Minus | Times | Div deriving (Eq,Ord,Show) -data Type = - TInt - | TBool - | NoType - deriving (Eq,Ord,Show) -