-- UUAGC 0.9.42.2 (Helium/Syntax/UHA_Syntax.ag) module Helium.Syntax.UHA_Syntax where -- Alternative ------------------------------------------------- data Alternative = Alternative_Hole (Range) (Integer) | Alternative_Feedback (Range) (String) (Alternative) | Alternative_Alternative (Range) (Pattern) (RightHandSide) | Alternative_Empty (Range) -- Alternatives ------------------------------------------------ type Alternatives = [Alternative] -- AnnotatedType ----------------------------------------------- data AnnotatedType = AnnotatedType_AnnotatedType (Range) (Bool) (Type) -- AnnotatedTypes ---------------------------------------------- type AnnotatedTypes = [AnnotatedType] -- Body -------------------------------------------------------- data Body = Body_Hole (Range) (Integer) | Body_Body (Range) (ImportDeclarations) (Declarations) -- Constructor ------------------------------------------------- data Constructor = Constructor_Constructor (Range) (Name) (AnnotatedTypes) | Constructor_Infix (Range) (AnnotatedType) (Name) (AnnotatedType) | Constructor_Record (Range) (Name) (FieldDeclarations) -- Constructors ------------------------------------------------ type Constructors = [Constructor] -- ContextItem ------------------------------------------------- data ContextItem = ContextItem_ContextItem (Range) (Name) (Types) -- ContextItems ------------------------------------------------ type ContextItems = [ContextItem] -- Declaration ------------------------------------------------- data Declaration = Declaration_Hole (Range) (Integer) | Declaration_Type (Range) (SimpleType) (Type) | Declaration_Data (Range) (ContextItems) (SimpleType) (Constructors) (Names) | Declaration_Newtype (Range) (ContextItems) (SimpleType) (Constructor) (Names) | Declaration_Class (Range) (ContextItems) (SimpleType) (MaybeDeclarations) | Declaration_Instance (Range) (ContextItems) (Name) (Types) (MaybeDeclarations) | Declaration_Default (Range) (Types) | Declaration_FunctionBindings (Range) (FunctionBindings) | Declaration_PatternBinding (Range) (Pattern) (RightHandSide) | Declaration_TypeSignature (Range) (Names) (Type) | Declaration_Fixity (Range) (Fixity) (MaybeInt) (Names) | Declaration_Empty (Range) -- Declarations ------------------------------------------------ type Declarations = [Declaration] -- Export ------------------------------------------------------ data Export = Export_Variable (Range) (Name) | Export_TypeOrClass (Range) (Name) (MaybeNames) | Export_TypeOrClassComplete (Range) (Name) | Export_Module (Range) (Name) -- Exports ----------------------------------------------------- type Exports = [Export] -- Expression -------------------------------------------------- data Expression = Expression_Hole (Range) (Integer) | Expression_Feedback (Range) (String) (Expression) | Expression_MustUse (Range) (Expression) | Expression_Literal (Range) (Literal) | Expression_Variable (Range) (Name) | Expression_Constructor (Range) (Name) | Expression_Parenthesized (Range) (Expression) | Expression_NormalApplication (Range) (Expression) (Expressions) | Expression_InfixApplication (Range) (MaybeExpression) (Expression) (MaybeExpression) | Expression_If (Range) (Expression) (Expression) (Expression) | Expression_Lambda (Range) (Patterns) (Expression) | Expression_Case (Range) (Expression) (Alternatives) | Expression_Let (Range) (Declarations) (Expression) | Expression_Do (Range) (Statements) | Expression_List (Range) (Expressions) | Expression_Tuple (Range) (Expressions) | Expression_Comprehension (Range) (Expression) (Qualifiers) | Expression_Typed (Range) (Expression) (Type) | Expression_RecordConstruction (Range) (Name) (RecordExpressionBindings) | Expression_RecordUpdate (Range) (Expression) (RecordExpressionBindings) | Expression_Enum (Range) (Expression) (MaybeExpression) (MaybeExpression) | Expression_Negate (Range) (Expression) | Expression_NegateFloat (Range) (Expression) -- Expressions ------------------------------------------------- type Expressions = [Expression] -- FieldDeclaration -------------------------------------------- data FieldDeclaration = FieldDeclaration_FieldDeclaration (Range) (Names) (AnnotatedType) -- FieldDeclarations ------------------------------------------- type FieldDeclarations = [FieldDeclaration] -- Fixity ------------------------------------------------------ data Fixity = Fixity_Infixl (Range) | Fixity_Infixr (Range) | Fixity_Infix (Range) -- FunctionBinding --------------------------------------------- data FunctionBinding = FunctionBinding_Hole (Range) (Integer) | FunctionBinding_Feedback (Range) (String) (FunctionBinding) | FunctionBinding_FunctionBinding (Range) (LeftHandSide) (RightHandSide) -- FunctionBindings -------------------------------------------- type FunctionBindings = [FunctionBinding] -- GuardedExpression ------------------------------------------- data GuardedExpression = GuardedExpression_GuardedExpression (Range) (Expression) (Expression) -- GuardedExpressions ------------------------------------------ type GuardedExpressions = [GuardedExpression] -- Import ------------------------------------------------------ data Import = Import_Variable (Range) (Name) | Import_TypeOrClass (Range) (Name) (MaybeNames) | Import_TypeOrClassComplete (Range) (Name) -- ImportDeclaration ------------------------------------------- data ImportDeclaration = ImportDeclaration_Import (Range) (Bool) (Name) (MaybeName) (MaybeImportSpecification) | ImportDeclaration_Empty (Range) -- ImportDeclarations ------------------------------------------ type ImportDeclarations = [ImportDeclaration] -- ImportSpecification ----------------------------------------- data ImportSpecification = ImportSpecification_Import (Range) (Bool) (Imports) -- Imports ----------------------------------------------------- type Imports = [Import] -- LeftHandSide ------------------------------------------------ data LeftHandSide = LeftHandSide_Function (Range) (Name) (Patterns) | LeftHandSide_Infix (Range) (Pattern) (Name) (Pattern) | LeftHandSide_Parenthesized (Range) (LeftHandSide) (Patterns) -- Literal ----------------------------------------------------- data Literal = Literal_Int (Range) (String) | Literal_Char (Range) (String) | Literal_Float (Range) (String) | Literal_String (Range) (String) -- MaybeDeclarations ------------------------------------------- data MaybeDeclarations = MaybeDeclarations_Nothing | MaybeDeclarations_Just (Declarations) -- MaybeExports ------------------------------------------------ data MaybeExports = MaybeExports_Nothing | MaybeExports_Just (Exports) -- MaybeExpression --------------------------------------------- data MaybeExpression = MaybeExpression_Nothing | MaybeExpression_Just (Expression) -- MaybeImportSpecification ------------------------------------ data MaybeImportSpecification = MaybeImportSpecification_Nothing | MaybeImportSpecification_Just (ImportSpecification) -- MaybeInt ---------------------------------------------------- data MaybeInt = MaybeInt_Nothing | MaybeInt_Just (Int) -- MaybeName --------------------------------------------------- data MaybeName = MaybeName_Nothing | MaybeName_Just (Name) -- MaybeNames -------------------------------------------------- data MaybeNames = MaybeNames_Nothing | MaybeNames_Just (Names) -- Module ------------------------------------------------------ data Module = Module_Module (Range) (MaybeName) (MaybeExports) (Body) -- Name -------------------------------------------------------- data Name = Name_Identifier (Range) (Strings) (String) | Name_Operator (Range) (Strings) (String) | Name_Special (Range) (Strings) (String) -- Names ------------------------------------------------------- type Names = [Name] -- Pattern ----------------------------------------------------- data Pattern = Pattern_Hole (Range) (Integer) | Pattern_Literal (Range) (Literal) | Pattern_Variable (Range) (Name) | Pattern_Constructor (Range) (Name) (Patterns) | Pattern_Parenthesized (Range) (Pattern) | Pattern_InfixConstructor (Range) (Pattern) (Name) (Pattern) | Pattern_List (Range) (Patterns) | Pattern_Tuple (Range) (Patterns) | Pattern_Record (Range) (Name) (RecordPatternBindings) | Pattern_Negate (Range) (Literal) | Pattern_As (Range) (Name) (Pattern) | Pattern_Wildcard (Range) | Pattern_Irrefutable (Range) (Pattern) | Pattern_Successor (Range) (Name) (Literal) | Pattern_NegateFloat (Range) (Literal) -- Patterns ---------------------------------------------------- type Patterns = [Pattern] -- Position ---------------------------------------------------- data Position = Position_Position (String) (Int) (Int) | Position_Unknown -- Qualifier --------------------------------------------------- data Qualifier = Qualifier_Guard (Range) (Expression) | Qualifier_Let (Range) (Declarations) | Qualifier_Generator (Range) (Pattern) (Expression) | Qualifier_Empty (Range) -- Qualifiers -------------------------------------------------- type Qualifiers = [Qualifier] -- Range ------------------------------------------------------- data Range = Range_Range (Position) (Position) -- RecordExpressionBinding ------------------------------------- data RecordExpressionBinding = RecordExpressionBinding_RecordExpressionBinding (Range) (Name) (Expression) -- RecordExpressionBindings ------------------------------------ type RecordExpressionBindings = [RecordExpressionBinding] -- RecordPatternBinding ---------------------------------------- data RecordPatternBinding = RecordPatternBinding_RecordPatternBinding (Range) (Name) (Pattern) -- RecordPatternBindings --------------------------------------- type RecordPatternBindings = [RecordPatternBinding] -- RightHandSide ----------------------------------------------- data RightHandSide = RightHandSide_Expression (Range) (Expression) (MaybeDeclarations) | RightHandSide_Guarded (Range) (GuardedExpressions) (MaybeDeclarations) -- SimpleType -------------------------------------------------- data SimpleType = SimpleType_SimpleType (Range) (Name) (Names) -- Statement --------------------------------------------------- data Statement = Statement_Expression (Range) (Expression) | Statement_Let (Range) (Declarations) | Statement_Generator (Range) (Pattern) (Expression) | Statement_Empty (Range) -- Statements -------------------------------------------------- type Statements = [Statement] -- Strings ----------------------------------------------------- type Strings = [(String)] -- Type -------------------------------------------------------- data Type = Type_Application (Range) (Bool) (Type) (Types) | Type_Variable (Range) (Name) | Type_Constructor (Range) (Name) | Type_Qualified (Range) (ContextItems) (Type) | Type_Forall (Range) (Names) (Type) | Type_Exists (Range) (Names) (Type) | Type_Parenthesized (Range) (Type) -- Types ------------------------------------------------------- type Types = [Type]