1 module Skelsyntax where
3 -- Haskell module generated by the BNF converter
7 type Result = Err String
9 failure :: Show a => a -> Result
10 failure x = Bad $ "Undefined case: " ++ show x
12 transIdent :: Ident -> Result
13 transIdent x = case x of
14 Ident str -> failure x
17 transBool :: Bool -> Result
18 transBool x = case x of
23 transType :: Type -> Result
24 transType x = case x of
29 transProgram :: Program -> Result
30 transProgram x = case x of
31 Program funcstms -> failure x
34 transStm :: Stm -> Result
35 transStm x = case x of
37 SBlock stms -> failure x
38 SDecl type' id exp -> failure x
39 SDeclD type' id -> failure x
40 SWhile exp stm -> failure x
41 SIf exp stm0 stm -> failure x
42 SPrint exp -> failure x
43 SReturn exp -> failure x
47 transExp :: Exp -> Result
48 transExp x = case x of
49 EAss id exp -> failure x
52 EBool bool -> failure x
57 EFunc id exps -> failure x
58 BiOpExp exp0 op exp -> failure x
59 EPost id op -> failure x
62 transDecl :: Decl -> Result
63 transDecl x = case x of
64 Decl type' id -> failure x
67 transFunc :: Func -> Result
68 transFunc x = case x of
69 Func type' id decls stms -> failure x
72 transFuncStm :: FuncStm -> Result
73 transFuncStm x = case x of
78 transOp :: Op -> Result