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 ]