+++ /dev/null
-module TigerAS where
-
-type VarIdent = String
-type TypeIdent = String
-
-data Declaration = TypeDec TypeIdent Type | VarDec VarIdent TypeIdent Expr | FunDec VarIdent [TypedVar] TypeIdent Expr
- deriving (Eq, Show)
-
-data TypedVar
- = TypedVar VarIdent TypeIdent
- deriving (Eq, Show)
-
-data Type
- = Var TypeIdent
- | Array TypeIdent
- | Record [TypedVar]
- deriving (Eq, Show)
-
-data Expr
- = Sub Expr Expr
- | Dot Expr Expr
- | Apply VarIdent [Expr]
- | Ident TypeIdent
- | RecordVal TypeIdent [AssignField]
- | ArrayVal TypeIdent Expr Expr
- | IntLit Integer
- | StringLit String
- | While Expr Expr
- | For VarIdent Expr Expr Expr
- | If Expr Expr Expr
- | Let [Declaration] [Expr]
- | Assign Expr Expr
- | Op String Expr Expr
- | UnOp String Expr
- | Skip
- | Nil
- | Break
- | Seq [Expr]
- deriving (Show, Eq)
-
-data AssignField
- = AssignField VarIdent Expr
- deriving (Eq, Show)