lang/src/Language/Lang/SkelGrammer.hs

58 lines
2.7 KiB
Haskell

-- Haskell module generated by the BNF converter
module Language.Lang.SkelGrammer where
import qualified Language.Lang.AbsGrammer
type Err = Either String
type Result = Err String
failure :: Show a => a -> Result
failure x = Left $ "Undefined case: " ++ show x
transName :: Language.Lang.AbsGrammer.Name -> Result
transName x = case x of
Language.Lang.AbsGrammer.Name string -> failure x
transNumericLiteral :: Language.Lang.AbsGrammer.NumericLiteral -> Result
transNumericLiteral x = case x of
Language.Lang.AbsGrammer.NumericLiteral string -> failure x
transModule :: Language.Lang.AbsGrammer.Module -> Result
transModule x = case x of
Language.Lang.AbsGrammer.Module bindings -> failure x
transBinding :: Language.Lang.AbsGrammer.Binding -> Result
transBinding x = case x of
Language.Lang.AbsGrammer.BindingDeclaration declaration -> failure x
Language.Lang.AbsGrammer.BindingDefinition definition -> failure x
Language.Lang.AbsGrammer.BindingPragma pragma -> failure x
transDeclaration :: Language.Lang.AbsGrammer.Declaration -> Result
transDeclaration x = case x of
Language.Lang.AbsGrammer.DeclarationNamed name type_ -> failure x
Language.Lang.AbsGrammer.DeclarationAnonymous type_ -> failure x
transDefinition :: Language.Lang.AbsGrammer.Definition -> Result
transDefinition x = case x of
Language.Lang.AbsGrammer.DefinitionNamed name expression -> failure x
Language.Lang.AbsGrammer.DefinitionAnonymous expression -> failure x
transType :: Language.Lang.AbsGrammer.Type -> Result
transType x = case x of
Language.Lang.AbsGrammer.TypeName name -> failure x
Language.Lang.AbsGrammer.TypeApplication type_1 type_2 -> failure x
Language.Lang.AbsGrammer.TypeAbstraction type_1 type_2 -> failure x
Language.Lang.AbsGrammer.TypeImplicit declarations -> failure x
Language.Lang.AbsGrammer.TypeRecord declarations -> failure x
Language.Lang.AbsGrammer.TypeAlternative declarations -> failure x
Language.Lang.AbsGrammer.TypeParens type_ -> failure x
transPragma :: Language.Lang.AbsGrammer.Pragma -> Result
transPragma x = case x of
Language.Lang.AbsGrammer.Pragma names -> failure x
transExpression :: Language.Lang.AbsGrammer.Expression -> Result
transExpression x = case x of
Language.Lang.AbsGrammer.ExpressionName name -> failure x
Language.Lang.AbsGrammer.ExpressionLiteral numericliteral -> failure x
Language.Lang.AbsGrammer.ExpressionApplication expression1 expression2 -> failure x
Language.Lang.AbsGrammer.ExpressionAbstraction expression1 expression2 -> failure x
Language.Lang.AbsGrammer.ExpressionImplicit module_ -> failure x
Language.Lang.AbsGrammer.ExpressionRecord module_ -> failure x
Language.Lang.AbsGrammer.ExpressionAlternative module_ -> failure x
Language.Lang.AbsGrammer.ExpressionParens expression -> failure x