58 lines
2.7 KiB
Haskell
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
|
|
|