forked from GitHub/gf-core
120 lines
3.1 KiB
Haskell
120 lines
3.1 KiB
Haskell
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
|
|
|