first commit
This commit is contained in:
commit
063194f8be
349 changed files with 36508 additions and 0 deletions
86
AbsJavalette.hs.bak
Normal file
86
AbsJavalette.hs.bak
Normal 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)
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue