]> ruin.nu Git - proglang.git/blob - Skelsyntax.hs
Interpreter works
[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 transType :: Type -> Result
24 transType x = case x of
25   TInt  -> failure x
26   TBool  -> failure x
27
28
29 transProgram :: Program -> Result
30 transProgram x = case x of
31   Program funcstms  -> failure x
32
33
34 transStm :: Stm -> Result
35 transStm x = case x of
36   SExp exp  -> failure x
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
44   SNoop  -> failure x
45
46
47 transExp :: Exp -> Result
48 transExp x = case x of
49   EAss id exp  -> failure x
50   EVar id  -> failure x
51   EInt n  -> failure x
52   EBool bool  -> failure x
53   ENeg exp  -> failure x
54   ENot exp  -> failure x
55   EReadI  -> failure x
56   EReadB  -> failure x
57   EFunc id exps  -> failure x
58   BiOpExp exp0 op exp  -> failure x
59   EPost id op  -> failure x
60
61
62 transDecl :: Decl -> Result
63 transDecl x = case x of
64   Decl type' id  -> failure x
65
66
67 transFunc :: Func -> Result
68 transFunc x = case x of
69   Func type' id decls stms  -> failure x
70
71
72 transFuncStm :: FuncStm -> Result
73 transFuncStm x = case x of
74   S stm  -> failure x
75   F func  -> failure x
76
77
78 transOp :: Op -> Result
79 transOp x = case x of
80   Lt  -> failure x
81   ELt  -> failure x
82   Gt  -> failure x
83   EGt  -> failure x
84   Eq  -> failure x
85   NEq  -> failure x
86   Plus  -> failure x
87   Minus  -> failure x
88   Times  -> failure x
89   Div  -> failure x
90
91
92