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 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
46 transExp :: Exp -> Result
47 transExp x = case x of
48 EAss id exp -> failure x
51 EBool bool -> failure x
56 BiOpExp exp0 op exp -> failure x
57 EPost id op -> failure x
60 transOp :: Op -> Result