first commit

This commit is contained in:
Jeena Paradies 2011-04-19 11:37:05 +02:00
commit 063194f8be
349 changed files with 36508 additions and 0 deletions

86
AbsJavalette.hs.bak Normal file
View file

@ -0,0 +1,86 @@
module AbsJavalette where
-- Haskell module generated by the BNF converter
newtype Ident = Ident String deriving (Eq,Ord,Show)
data Program =
Program [TopDef]
deriving (Eq,Ord,Show)
data TopDef =
FnDef Type Ident [Arg] Block
deriving (Eq,Ord,Show)
data Arg =
Arg Type Ident
deriving (Eq,Ord,Show)
data Block =
Block [Stmt]
deriving (Eq,Ord,Show)
data Stmt =
Empty
| BStmt Block
| Decl Type [Item]
| Ass Ident Expr
| Incr Ident
| Decr Ident
| Ret Expr
| VRet
| Cond Expr Stmt
| CondElse Expr Stmt Stmt
| While Expr Stmt
| SExp Expr
deriving (Eq,Ord,Show)
data Item =
NoInit Ident
| Init Ident Expr
deriving (Eq,Ord,Show)
data Type =
Int
| Doub
| Bool
| Void
| Fun Type [Type]
deriving (Eq,Ord,Show)
data Expr =
EVar Ident
| ELitInt Integer
| ELitDoub Double
| ELitTrue
| ELitFalse
| EApp Ident [Expr]
| EString String
| Neg Expr
| Not Expr
| EMul Expr MulOp Expr
| EAdd Expr AddOp Expr
| ERel Expr RelOp Expr
| EAnd Expr Expr
| EOr Expr Expr
deriving (Eq,Ord,Show)
data AddOp =
Plus
| Minus
deriving (Eq,Ord,Show)
data MulOp =
Times
| Div
| Mod
deriving (Eq,Ord,Show)
data RelOp =
LTH
| LE
| GTH
| GE
| EQU
| NE
deriving (Eq,Ord,Show)