first commit
This commit is contained in:
commit
063194f8be
349 changed files with 36508 additions and 0 deletions
110
SkelJavalette.hs
Normal file
110
SkelJavalette.hs
Normal file
|
@ -0,0 +1,110 @@
|
|||
module SkelJavalette where
|
||||
|
||||
-- Haskell module generated by the BNF converter
|
||||
|
||||
import AbsJavalette
|
||||
import ErrM
|
||||
type Result = Err String
|
||||
|
||||
failure :: Show a => a -> Result
|
||||
failure x = Bad $ "Undefined case: " ++ show x
|
||||
|
||||
transIdent :: Ident -> Result
|
||||
transIdent x = case x of
|
||||
Ident str -> failure x
|
||||
|
||||
|
||||
transProgram :: Program -> Result
|
||||
transProgram x = case x of
|
||||
Program topdefs -> failure x
|
||||
|
||||
|
||||
transTopDef :: TopDef -> Result
|
||||
transTopDef x = case x of
|
||||
FnDef type' id args block -> failure x
|
||||
|
||||
|
||||
transArg :: Arg -> Result
|
||||
transArg x = case x of
|
||||
Arg type' id -> failure x
|
||||
|
||||
|
||||
transBlock :: Block -> Result
|
||||
transBlock x = case x of
|
||||
Block stmts -> failure x
|
||||
|
||||
|
||||
transStmt :: Stmt -> Result
|
||||
transStmt x = case x of
|
||||
Empty -> failure x
|
||||
BStmt block -> failure x
|
||||
Decl type' items -> failure x
|
||||
Ass id expr -> failure x
|
||||
Incr id -> failure x
|
||||
Decr id -> failure x
|
||||
Ret expr -> failure x
|
||||
VRet -> failure x
|
||||
Cond expr stmt -> failure x
|
||||
CondElse expr stmt0 stmt -> failure x
|
||||
While expr stmt -> failure x
|
||||
SExp expr -> failure x
|
||||
|
||||
|
||||
transItem :: Item -> Result
|
||||
transItem x = case x of
|
||||
NoInit id -> failure x
|
||||
Init id expr -> failure x
|
||||
|
||||
|
||||
transType :: Type -> Result
|
||||
transType x = case x of
|
||||
Int -> failure x
|
||||
Doub -> failure x
|
||||
Bool -> failure x
|
||||
Void -> failure x
|
||||
Fun type' types -> failure x
|
||||
|
||||
|
||||
transExpr :: Expr -> Result
|
||||
transExpr x = case x of
|
||||
EVar id -> failure x
|
||||
ELitInt n -> failure x
|
||||
ELitDoub d -> failure x
|
||||
ELitTrue -> failure x
|
||||
ELitFalse -> failure x
|
||||
EApp id exprs -> failure x
|
||||
EString str -> failure x
|
||||
Neg expr -> failure x
|
||||
Not expr -> failure x
|
||||
EMul expr0 mulop expr -> failure x
|
||||
EAdd expr0 addop expr -> failure x
|
||||
ERel expr0 relop expr -> failure x
|
||||
EAnd expr0 expr -> failure x
|
||||
EOr expr0 expr -> failure x
|
||||
TAnot type' expr -> failure x
|
||||
|
||||
|
||||
transAddOp :: AddOp -> Result
|
||||
transAddOp x = case x of
|
||||
Plus -> failure x
|
||||
Minus -> failure x
|
||||
|
||||
|
||||
transMulOp :: MulOp -> Result
|
||||
transMulOp x = case x of
|
||||
Times -> failure x
|
||||
Div -> failure x
|
||||
Mod -> failure x
|
||||
|
||||
|
||||
transRelOp :: RelOp -> Result
|
||||
transRelOp x = case x of
|
||||
LTH -> failure x
|
||||
LE -> failure x
|
||||
GTH -> failure x
|
||||
GE -> failure x
|
||||
EQU -> failure x
|
||||
NE -> failure x
|
||||
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue