module GF.Devel.Compile.AbsGF where -- Haskell module generated by the BNF converter newtype PIdent = PIdent ((Int,Int),String) deriving (Eq,Ord,Show) newtype LString = LString String deriving (Eq,Ord,Show) data Grammar = Gr [ModDef] deriving (Eq,Ord,Show) data ModDef = MModule ComplMod ModType ModBody deriving (Eq,Ord,Show) data ModType = MAbstract PIdent | MResource PIdent | MGrammar PIdent | MInterface PIdent | MConcrete PIdent PIdent | MInstance PIdent PIdent deriving (Eq,Ord,Show) data ModBody = MBody Extend Opens [TopDef] | MNoBody [Included] | MWith Included [Open] | MWithBody Included [Open] Opens [TopDef] | MWithE [Included] Included [Open] | MWithEBody [Included] Included [Open] Opens [TopDef] | MReuse PIdent | MUnion [Included] deriving (Eq,Ord,Show) data Extend = Ext [Included] | NoExt deriving (Eq,Ord,Show) data Opens = NoOpens | OpenIn [Open] deriving (Eq,Ord,Show) data Open = OName PIdent | OQual PIdent PIdent deriving (Eq,Ord,Show) data ComplMod = CMCompl | CMIncompl deriving (Eq,Ord,Show) data Included = IAll PIdent | ISome PIdent [PIdent] | IMinus PIdent [PIdent] deriving (Eq,Ord,Show) data TopDef = DefCat [CatDef] | DefFun [FunDef] | DefFunData [FunDef] | DefDef [Def] | DefData [DataDef] | DefPar [ParDef] | DefOper [Def] | DefLincat [Def] | DefLindef [Def] | DefLin [Def] | DefPrintCat [Def] | DefPrintFun [Def] | DefFlag [Def] | DefPrintOld [Def] | DefLintype [Def] | DefPattern [Def] | DefPackage PIdent [TopDef] | DefVars [Def] | DefTokenizer PIdent deriving (Eq,Ord,Show) data Def = DDecl [Name] Exp | DDef [Name] Exp | DPatt Name [Patt] Exp | DFull [Name] Exp Exp deriving (Eq,Ord,Show) data FunDef = FDecl [Name] Exp deriving (Eq,Ord,Show) data CatDef = SimpleCatDef PIdent [DDecl] | ListCatDef PIdent [DDecl] | ListSizeCatDef PIdent [DDecl] Integer deriving (Eq,Ord,Show) data DataDef = DataDef Name [DataConstr] deriving (Eq,Ord,Show) data DataConstr = DataId PIdent | DataQId PIdent PIdent deriving (Eq,Ord,Show) data ParDef = ParDefDir PIdent [ParConstr] | ParDefAbs PIdent deriving (Eq,Ord,Show) data ParConstr = ParConstr PIdent [DDecl] deriving (Eq,Ord,Show) data Name = PIdentName PIdent | ListName PIdent deriving (Eq,Ord,Show) data LocDef = LDDecl [PIdent] Exp | LDDef [PIdent] Exp | LDFull [PIdent] Exp Exp deriving (Eq,Ord,Show) data Exp = EPIdent PIdent | EConstr PIdent | ECons PIdent | ESort Sort | EString String | EInt Integer | EFloat Double | EMeta | EEmpty | EData | EList PIdent Exps | EStrings String | ERecord [LocDef] | ETuple [TupleComp] | EIndir PIdent | ETyped Exp Exp | EProj Exp Label | EQConstr PIdent PIdent | EQCons PIdent PIdent | EApp Exp Exp | ETable [Case] | ETTable Exp [Case] | EVTable Exp [Exp] | ECase Exp [Case] | EVariants [Exp] | EPre Exp [Altern] | EStrs [Exp] | EPatt Patt | EPattType Exp | ESelect Exp Exp | ETupTyp Exp Exp | EExtend Exp Exp | EGlue Exp Exp | EConcat Exp Exp | EAbstr [Bind] Exp | ECTable [Bind] Exp | EProd Decl Exp | ETType Exp Exp | ELet [LocDef] Exp | ELetb [LocDef] Exp | EWhere Exp [LocDef] | EEqs [Equation] | EExample Exp String | ELString LString | ELin PIdent deriving (Eq,Ord,Show) data Exps = NilExp | ConsExp Exp Exps deriving (Eq,Ord,Show) data Patt = PChar | PChars String | PMacro PIdent | PM PIdent PIdent | PW | PV PIdent | PCon PIdent | PQ PIdent PIdent | PInt Integer | PFloat Double | PStr String | PR [PattAss] | PTup [PattTupleComp] | PC PIdent [Patt] | PQC PIdent PIdent [Patt] | PDisj Patt Patt | PSeq Patt Patt | PRep Patt | PAs PIdent Patt | PNeg Patt deriving (Eq,Ord,Show) data PattAss = PA [PIdent] Patt deriving (Eq,Ord,Show) data Label = LPIdent PIdent | LVar Integer deriving (Eq,Ord,Show) data Sort = Sort_Type | Sort_PType | Sort_Tok | Sort_Str | Sort_Strs deriving (Eq,Ord,Show) data Bind = BPIdent PIdent | BWild deriving (Eq,Ord,Show) data Decl = DDec [Bind] Exp | DExp Exp deriving (Eq,Ord,Show) data TupleComp = TComp Exp deriving (Eq,Ord,Show) data PattTupleComp = PTComp Patt deriving (Eq,Ord,Show) data Case = Case Patt Exp deriving (Eq,Ord,Show) data Equation = Equ [Patt] Exp deriving (Eq,Ord,Show) data Altern = Alt Exp Exp deriving (Eq,Ord,Show) data DDecl = DDDec [Bind] Exp | DDExp Exp deriving (Eq,Ord,Show) data OldGrammar = OldGr Include [TopDef] deriving (Eq,Ord,Show) data Include = NoIncl | Incl [FileName] deriving (Eq,Ord,Show) data FileName = FString String | FPIdent PIdent | FSlash FileName | FDot FileName | FMinus FileName | FAddId PIdent FileName deriving (Eq,Ord,Show)