]> ruin.nu Git - proglang.git/blobdiff - Abssyntax.hs
removed NoType and EDefault and added assert
[proglang.git] / Abssyntax.hs
index d8ef904d06766fd3ccab71ee41d1ed9e9ceb319b..ec85c8d619730b34e85d5e00a39f4a562e995d06 100644 (file)
@@ -4,35 +4,38 @@ 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 =
    EAss Ident Exp
  | EVar Ident
  | EInt Integer
+ | EBool Bool
  | ENeg Exp
  | ENot Exp
- | EBool Bool
  | 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
@@ -46,9 +49,3 @@ data Op =
  | Div
   deriving (Eq,Ord,Show)
 
-data Type =
-   TInt
- | TBool
- | NoType
-  deriving (Eq,Ord,Show)
-