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 transStms :: Stms -> Result
30 transStms x = case x of
31 Program stms -> failure x
34 transStm :: Stm -> Result
35 transStm x = case x of
37 SBlock stms -> failure x
38 SWhile exp stm -> failure x
39 SIf exp stm0 stm -> failure x
40 SPrint exp -> failure x
42 SDecl type' id exp -> failure x
45 transExp :: Exp -> Result
46 transExp x = case x of
47 EAss id exp -> failure x
50 EBool bool -> failure x
55 BiOpExp exp0 op exp -> failure x
56 EPost id op -> failure x
59 transOp :: Op -> Result