]> ruin.nu Git - proglang.git/blobdiff - Abssyntax.hs
minor change
[proglang.git] / Abssyntax.hs
index ec85c8d619730b34e85d5e00a39f4a562e995d06..881c1723bcc4fa5021eb17ef6d9503edfc6ffd3c 100644 (file)
@@ -9,18 +9,20 @@ data Type =
  | TBool
   deriving (Eq,Ord,Show)
 
-data Stms =
-   Program [Stm]
+data Program =
+   Program [FuncStm]
   deriving (Eq,Ord,Show)
 
 data Stm =
    SExp Exp
  | SBlock [Stm]
+ | SDecl Type Ident Exp
+ | SDeclD Type Ident
  | SWhile Exp Stm
  | SIf Exp Stm Stm
  | SPrint Exp
+ | SReturn Exp
  | SNoop
- | SDecl Type Ident Exp
   deriving (Eq,Ord,Show)
 
 data Exp =
@@ -32,10 +34,24 @@ data Exp =
  | ENot Exp
  | EReadI
  | EReadB
+ | EFunc Ident [Exp]
  | BiOpExp Exp Op Exp
  | EPost Ident Op
   deriving (Eq,Ord,Show)
 
+data Decl =
+   Decl Type Ident
+  deriving (Eq,Ord,Show)
+
+data Func =
+   Func Type Ident [Decl] [Stm]
+  deriving (Eq,Ord,Show)
+
+data FuncStm =
+   S Stm
+ | F Func
+  deriving (Eq,Ord,Show)
+
 data Op =
    Lt
  | ELt