]> ruin.nu Git - proglang.git/blob - Skelsyntax.hs
8a3605383704b6bf4c3a36e6e4936be53876cfec
[proglang.git] / Skelsyntax.hs
1 module Skelsyntax where
2
3 -- Haskell module generated by the BNF converter
4
5 import Abssyntax
6 import ErrM
7 type Result = Err String
8
9 failure :: Show a => a -> Result
10 failure x = Bad $ "Undefined case: " ++ show x
11
12 transIdent :: Ident -> Result
13 transIdent x = case x of
14   Ident str  -> failure x
15
16
17 transBool :: Bool -> Result
18 transBool x = case x of
19   True  -> failure x
20   False  -> failure x
21
22
23 transStm :: Stm -> Result
24 transStm x = case x of
25   SDecl type' id exp  -> failure x
26   SExp exp  -> failure x
27   SBlock stms  -> failure x
28   SIf exp stm0 stm  -> failure x
29   SWhile exp stm  -> failure x
30   SPrint exp  -> failure x
31   SNoop  -> failure x
32
33
34 transExp :: Exp -> Result
35 transExp x = case x of
36   EAss id exp  -> failure x
37   BExp exp0 bop exp  -> failure x
38   EVar id  -> failure x
39   EInt n  -> failure x
40   ENeg exp  -> failure x
41   EBool bool  -> failure x
42   EReadI  -> failure x
43   EReadB  -> failure x
44   ExpT type' exp  -> failure x
45   EDefault  -> failure x
46   OpExp exp0 op exp  -> failure x
47   EPost id op  -> failure x
48
49
50 transStms :: Stms -> Result
51 transStms x = case x of
52   Program stms  -> failure x
53
54
55 transBOp :: BOp -> Result
56 transBOp x = case x of
57   Lt  -> failure x
58   ELt  -> failure x
59   Gt  -> failure x
60   EGt  -> failure x
61   Eq  -> failure x
62   NEq  -> failure x
63
64
65 transOp :: Op -> Result
66 transOp x = case x of
67   Plus  -> failure x
68   Minus  -> failure x
69   Times  -> failure x
70   Div  -> failure x
71
72
73 transType :: Type -> Result
74 transType x = case x of
75   TInt  -> failure x
76   TBool  -> failure x
77   NoType  -> failure x
78
79
80