diff options
Diffstat (limited to 'src/Transfer/Core/Skel.hs')
| -rw-r--r-- | src/Transfer/Core/Skel.hs | 119 |
1 files changed, 119 insertions, 0 deletions
diff --git a/src/Transfer/Core/Skel.hs b/src/Transfer/Core/Skel.hs new file mode 100644 index 000000000..005ae92b1 --- /dev/null +++ b/src/Transfer/Core/Skel.hs @@ -0,0 +1,119 @@ +module Transfer.Core.Skel where + +-- Haskell module generated by the BNF converter + +import Transfer.Core.Abs +import Transfer.ErrM +type Result = Err String + +failure :: Show a => a -> Result +failure x = Bad $ "Undefined case: " ++ show x + +transTree :: Tree c -> Result +transTree t = case t of + Module decls -> failure t + DataDecl cident exp consdecls -> failure t + TypeDecl cident exp -> failure t + ValueDecl cident exp -> failure t + ConsDecl cident exp -> failure t + PCons cident patterns -> failure t + PVar patternvariable -> failure t + PRec fieldpatterns -> failure t + PStr str -> failure t + PInt n -> failure t + FieldPattern cident pattern -> failure t + PVVar cident -> failure t + PVWild -> failure t + ELet letdefs exp -> failure t + ECase exp cases -> failure t + EAbs patternvariable exp -> failure t + EPi patternvariable exp0 exp1 -> failure t + EApp exp0 exp1 -> failure t + EProj exp cident -> failure t + ERecType fieldtypes -> failure t + ERec fieldvalues -> failure t + EVar cident -> failure t + EType -> failure t + EStr str -> failure t + EInteger n -> failure t + EDouble d -> failure t + EMeta tmeta -> failure t + LetDef cident exp -> failure t + Case pattern exp0 exp1 -> failure t + FieldType cident exp -> failure t + FieldValue cident exp -> failure t + TMeta str -> failure t + CIdent str -> failure t + +transModule :: Module -> Result +transModule t = case t of + Module decls -> failure t + +transDecl :: Decl -> Result +transDecl t = case t of + DataDecl cident exp consdecls -> failure t + TypeDecl cident exp -> failure t + ValueDecl cident exp -> failure t + +transConsDecl :: ConsDecl -> Result +transConsDecl t = case t of + ConsDecl cident exp -> failure t + +transPattern :: Pattern -> Result +transPattern t = case t of + PCons cident patterns -> failure t + PVar patternvariable -> failure t + PRec fieldpatterns -> failure t + PStr str -> failure t + PInt n -> failure t + +transFieldPattern :: FieldPattern -> Result +transFieldPattern t = case t of + FieldPattern cident pattern -> failure t + +transPatternVariable :: PatternVariable -> Result +transPatternVariable t = case t of + PVVar cident -> failure t + PVWild -> failure t + +transExp :: Exp -> Result +transExp t = case t of + ELet letdefs exp -> failure t + ECase exp cases -> failure t + EAbs patternvariable exp -> failure t + EPi patternvariable exp0 exp1 -> failure t + EApp exp0 exp1 -> failure t + EProj exp cident -> failure t + ERecType fieldtypes -> failure t + ERec fieldvalues -> failure t + EVar cident -> failure t + EType -> failure t + EStr str -> failure t + EInteger n -> failure t + EDouble d -> failure t + EMeta tmeta -> failure t + +transLetDef :: LetDef -> Result +transLetDef t = case t of + LetDef cident exp -> failure t + +transCase :: Case -> Result +transCase t = case t of + Case pattern exp0 exp1 -> failure t + +transFieldType :: FieldType -> Result +transFieldType t = case t of + FieldType cident exp -> failure t + +transFieldValue :: FieldValue -> Result +transFieldValue t = case t of + FieldValue cident exp -> failure t + +transTMeta :: TMeta -> Result +transTMeta t = case t of + TMeta str -> failure t + +transCIdent :: CIdent -> Result +transCIdent t = case t of + CIdent str -> failure t + |
