]> ruin.nu Git - proglang.git/blobdiff - Abssyntax.hs
removed NoType and EDefault and added assert
[proglang.git] / Abssyntax.hs
index 7c95d5324e1a58ef1a8f32b099d16fb0babcac42..ec85c8d619730b34e85d5e00a39f4a562e995d06 100644 (file)
@@ -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)
-