packages feed

ruler-core-1.0: dist/build/ruler-core/ruler-core-tmp/Ast.hs


-- UUAGC 0.9.32 (src/Ast.ag)
module Ast where

{-# LINE 8 "src/Ast.ag" #-}

import Common
{-# LINE 10 "dist/src/sdist.34564/ruler-core-1.0/dist/build/ruler-core/ruler-core-tmp/Ast.hs" #-}
-- AliasType ---------------------------------------------------
data AliasType  = AliasType_List !(Ident) 
                | AliasType_Maybe !(Ident) 
                | AliasType_Prod !(([Ident])) 
-- Attr --------------------------------------------------------
data Attr  = Attr_Inh !(Ident) !(String) 
           | Attr_Syn !(Ident) !(String) 
-- AttrTypeCode ------------------------------------------------
data AttrTypeCode  = AttrTypeCode_Child 
                   | AttrTypeCode_Lhs 
                   | AttrTypeCode_ProdLocal 
                   | AttrTypeCode_VisLocal 
                   | AttrTypeCode_Visit 
-- AttrTypePat -------------------------------------------------
data AttrTypePat  = AttrTypePat_Child 
                  | AttrTypePat_Lhs 
                  | AttrTypePat_ProdLocal 
                  | AttrTypePat_VisLocal 
                  | AttrTypePat_Visit 
-- Attrs -------------------------------------------------------
type Attrs  = [Attr ]
-- Bind --------------------------------------------------------
data Bind  = Bind_Fun 
           | Bind_Monadic 
-- Block -------------------------------------------------------
data Block  = Block_Data !(Data ) 
            | Block_DataSem !(DataSem ) 
            | Block_Item !(Ident) !(Item ) 
            | Block_Itf !(Itf ) 
            | Block_Section !(Code ) 
            | Block_Type !(Type ) 
-- Blocks ------------------------------------------------------
type Blocks  = [Block ]
-- BlocksTop ---------------------------------------------------
data BlocksTop  = BlocksTop_None 
                | BlocksTop_Top !(Blocks ) 
-- BoundCode ---------------------------------------------------
data BoundCode  = BoundCode_Code !(Bind ) !(Pos) !(Code ) 
-- Clause ------------------------------------------------------
data Clause  = Clause_Clause !(Pos) !(Ident) !(Stmts ) !(SemVisit ) 
-- Clauses -----------------------------------------------------
type Clauses  = [Clause ]
-- ClausesTop --------------------------------------------------
data ClausesTop  = ClausesTop_Impl !(Clauses) 
                 | ClausesTop_Top !(Clauses ) 
-- Code --------------------------------------------------------
data Code  = Code_Code !(Items ) 
-- Con ---------------------------------------------------------
data Con  = Con_Con !(Pos) !(Ident) !(Vars ) !(Fields ) 
-- Cons --------------------------------------------------------
type Cons  = [Con ]
-- Data --------------------------------------------------------
data Data  = Data_Data !(Pos) !(Ident) !(Vars ) !(Cons ) !(Exts ) 
-- DataSem -----------------------------------------------------
data DataSem  = DataSem_Sem !(Pos) !(Ident) !(Vars ) !((Maybe String)) !(Bool) !(Stmts) !(ClausesTop ) 
-- ExprField ---------------------------------------------------
data ExprField  = ExprField_Field !(Ident) !(Code ) 
-- ExprFields --------------------------------------------------
type ExprFields  = [ExprField ]
-- Ext ---------------------------------------------------------
data Ext  = Ext_Ext !(Ident) 
-- Exts --------------------------------------------------------
type Exts  = [Ext ]
-- Field -------------------------------------------------------
data Field  = Field_Field !(Ident) !(FieldType ) 
-- FieldType ---------------------------------------------------
data FieldType  = FieldType_Nonterm !(Ident) 
                | FieldType_Term !(String) 
-- Fields ------------------------------------------------------
type Fields  = [Field ]
-- ImplStmt ----------------------------------------------------
data ImplStmt  = ImplStmt_DefaultChild !(Pos) !(Bool) !(Ident) !(Ident) !((Maybe Int)) 
               | ImplStmt_DefaultSyn !(Pos) !(Bool) !(Ident) !((Maybe Int)) 
               | ImplStmt_DefaultVisLocal !(Pos) !(Ident) 
               | ImplStmt_Invoke !(Pos) !(Ident) !(Ident) !(Ident) 
-- ImplStmts ---------------------------------------------------
type ImplStmts  = [ImplStmt ]
-- Item --------------------------------------------------------
data Item  = Item_Attr !(Pos) !(Ident) !(Ident) 
           | Item_Brackets !(Pos) !(Items ) !(Pos) 
           | Item_CoSem !(Pos) !(Ident) !(Ident) !(Ident) !(Vars ) !((Maybe String)) !(SemVisit ) 
           | Item_Construct !(Pos) !(Ident) !(Ident) !(ExprFields ) 
           | Item_DataSem !(DataSem ) 
           | Item_Detach !(Pos) !(Ident) !(Ident) 
           | Item_Plain !(Pos) !(String) 
           | Item_Sem !(Pos) !(Ident) !(Ident) !(Vars ) !((Maybe String)) !(SemVisit ) 
-- Items -------------------------------------------------------
type Items  = [Item ]
-- Itf ---------------------------------------------------------
data Itf  = Itf_Itf !(Pos) !(Ident) !(Vars ) !(ItfVisits ) 
-- ItfVisit ----------------------------------------------------
data ItfVisit  = ItfVisit_Visit !(Pos) !(Ident) !(Bool) !(Vars ) !(Attrs ) 
-- ItfVisits ---------------------------------------------------
type ItfVisits  = [ItfVisit ]
-- MaybeBoundCode ----------------------------------------------
type MaybeBoundCode  = Maybe BoundCode 
-- Mode --------------------------------------------------------
data Mode  = Mode_Assert 
           | Mode_Match 
-- Pat ---------------------------------------------------------
data Pat  = Pat_Attr !(Ident) !(Ident) 
          | Pat_AttrCon !(Ident) !(Ident) !(Ident) 
          | Pat_Con !(Ident) !(Pats ) 
          | Pat_Cons !(Pat ) !(Pat ) 
          | Pat_List !(Pats ) 
          | Pat_Tup !(Pats ) 
          | Pat_Underscore !(Pos) 
-- Pats --------------------------------------------------------
type Pats  = [Pat ]
-- Program -----------------------------------------------------
data Program  = Program_Program !(BlocksTop ) 
-- Rename ------------------------------------------------------
data Rename  = Rename_Rename !(Ident) !(Ident) 
-- Renames -----------------------------------------------------
type Renames  = [Rename ]
-- SemCon ------------------------------------------------------
data SemCon  = SemCon_Con !(Pos) !(Ident) !(SemFields ) 
-- SemCons -----------------------------------------------------
type SemCons  = [SemCon ]
-- SemField ----------------------------------------------------
data SemField  = SemField_Field !(Pos) !(Ident) !((Either Ident String)) 
-- SemFields ---------------------------------------------------
type SemFields  = [SemField ]
-- SemVisit ----------------------------------------------------
data SemVisit  = SemVisit_End 
               | SemVisit_Impl 
               | SemVisit_Internal !(Pos) !(Ident) !(Bool) !(Stmts ) !(ClausesTop ) 
               | SemVisit_Prependable !(Pos) !(Ident) !(SemVisit) 
               | SemVisit_Visit !(Pos) !(Ident) !(Bool) !(VisitAttrs ) !(Stmts ) !(ClausesTop ) 
-- Stmt --------------------------------------------------------
data Stmt  = Stmt_Attach !(Pos) !((Maybe Ident)) !(Ident) !(Ident) !(MaybeBoundCode ) 
           | Stmt_Default !(Bool) !(Pos) !(Ident) !(MaybeBoundCode ) 
           | Stmt_Eval !(Mode ) !(Pat ) !(BoundCode ) 
           | Stmt_Invoke !(Pos) !(Ident) !(Ident) !(MaybeBoundCode ) 
           | Stmt_Rename !(Pos) !(Ident) !(Renames ) 
-- Stmts -------------------------------------------------------
type Stmts  = [Stmt ]
-- Type --------------------------------------------------------
data Type  = Type_Alias !(Pos) !(Ident) !(AliasType ) !(Vars ) 
-- Var ---------------------------------------------------------
data Var  = Var_Var !(Ident) 
-- Vars --------------------------------------------------------
type Vars  = [Var ]
-- VisitAttr ---------------------------------------------------
data VisitAttr  = VisitAttr_Chn !(Ident) !(String) 
-- VisitAttrs --------------------------------------------------
type VisitAttrs  = [VisitAttr ]