--- /dev/null
+module Abssyntax where
+
+-- Haskell module generated by the BNF converter
+
+newtype Ident = Ident String deriving (Eq,Ord,Show)
+
+data Stm =
+ SDecl Type Ident Exp
+ | SExp Exp
+ | SBlock [Stm]
+ | SIf Exp Stm Stm
+ | SWhile Exp Stm
+ | SPrint Exp
+ | SNoop
+ deriving (Eq,Ord,Show)
+
+data Exp =
+ BExp Exp BOp Exp
+ | EVar Ident
+ | EAss Ident Exp
+ | EInt Integer
+ | ENeg Exp
+ | EBool Bool
+ | EReadI
+ | EReadB
+ | ExpT Type Exp
+ | EDefault
+ | OpExp Exp Op Exp
+ | EPost Ident Op
+ deriving (Eq,Ord,Show)
+
+data Stms =
+ Program [Stm]
+ deriving (Eq,Ord,Show)
+
+data BOp =
+ Lt
+ | ELt
+ | Gt
+ | EGt
+ | Eq
+ | NEq
+ deriving (Eq,Ord,Show)
+
+data Op =
+ Plus
+ | Minus
+ | Times
+ | Div
+ deriving (Eq,Ord,Show)
+
+data Type =
+ TInt
+ | TBool
+ | NoType
+ deriving (Eq,Ord,Show)
+