]> ruin.nu Git - proglang.git/blobdiff - Skelsyntax.hs
hopefully compiles properly
[proglang.git] / Skelsyntax.hs
diff --git a/Skelsyntax.hs b/Skelsyntax.hs
new file mode 100644 (file)
index 0000000..c1af307
--- /dev/null
@@ -0,0 +1,80 @@
+module Skelsyntax where
+
+-- Haskell module generated by the BNF converter
+
+import Abssyntax
+import ErrM
+type Result = Err String
+
+failure :: Show a => a -> Result
+failure x = Bad $ "Undefined case: " ++ show x
+
+transIdent :: Ident -> Result
+transIdent x = case x of
+  Ident str  -> failure x
+
+
+transBool :: Bool -> Result
+transBool x = case x of
+  True  -> failure x
+  False  -> failure x
+
+
+transStm :: Stm -> Result
+transStm x = case x of
+  SDecl type' id exp  -> failure x
+  SExp exp  -> failure x
+  SBlock stms  -> failure x
+  SIf exp stm0 stm  -> failure x
+  SWhile exp stm  -> failure x
+  SPrint exp  -> failure x
+  SNoop  -> failure x
+
+
+transExp :: Exp -> Result
+transExp x = case x of
+  BExp exp0 bop exp  -> failure x
+  EVar id  -> failure x
+  EAss id exp  -> failure x
+  EInt n  -> failure x
+  ENeg exp  -> failure x
+  EBool bool  -> failure x
+  EReadI  -> failure x
+  EReadB  -> failure x
+  ExpT type' exp  -> failure x
+  EDefault  -> failure x
+  OpExp exp0 op exp  -> failure x
+  EPost id op  -> failure x
+
+
+transStms :: Stms -> Result
+transStms x = case x of
+  Program stms  -> failure x
+
+
+transBOp :: BOp -> Result
+transBOp x = case x of
+  Lt  -> failure x
+  ELt  -> failure x
+  Gt  -> failure x
+  EGt  -> failure x
+  Eq  -> failure x
+  NEq  -> failure x
+
+
+transOp :: Op -> Result
+transOp x = case x of
+  Plus  -> failure x
+  Minus  -> failure x
+  Times  -> failure x
+  Div  -> failure x
+
+
+transType :: Type -> Result
+transType x = case x of
+  TInt  -> failure x
+  TBool  -> failure x
+  NoType  -> failure x
+
+
+