diff options
Diffstat (limited to 'src/GF/Source')
| -rw-r--r-- | src/GF/Source/AbsGF.hs | 306 | ||||
| -rw-r--r-- | src/GF/Source/ErrM.hs | 26 | ||||
| -rw-r--r-- | src/GF/Source/GF.cf | 370 | ||||
| -rw-r--r-- | src/GF/Source/GrammarToSource.hs | 259 | ||||
| -rw-r--r-- | src/GF/Source/LexGF.hs | 345 | ||||
| -rw-r--r-- | src/GF/Source/LexGF.x | 137 | ||||
| -rw-r--r-- | src/GF/Source/ParGF.hs | 7845 | ||||
| -rw-r--r-- | src/GF/Source/ParGF.y | 642 | ||||
| -rw-r--r-- | src/GF/Source/PrintGF.hs | 532 | ||||
| -rw-r--r-- | src/GF/Source/SkelGF.hs | 364 | ||||
| -rw-r--r-- | src/GF/Source/SourceToGrammar.hs | 755 | ||||
| -rw-r--r-- | src/GF/Source/TestGF.hs | 58 |
12 files changed, 0 insertions, 11639 deletions
diff --git a/src/GF/Source/AbsGF.hs b/src/GF/Source/AbsGF.hs deleted file mode 100644 index 63cc43006..000000000 --- a/src/GF/Source/AbsGF.hs +++ /dev/null @@ -1,306 +0,0 @@ -module GF.Source.AbsGF where - --- Haskell module generated by the BNF converter - -newtype LString = LString String deriving (Eq,Ord,Show) -newtype PIdent = PIdent ((Int,Int),String) deriving (Eq,Ord,Show) -data Grammar = - Gr [ModDef] - deriving (Eq,Ord,Show) - -data ModDef = - MMain PIdent PIdent [ConcSpec] - | MModule ComplMod ModType ModBody - deriving (Eq,Ord,Show) - -data ConcSpec = - ConcSpec PIdent ConcExp - deriving (Eq,Ord,Show) - -data ConcExp = - ConcExp PIdent [Transfer] - deriving (Eq,Ord,Show) - -data Transfer = - TransferIn Open - | TransferOut Open - deriving (Eq,Ord,Show) - -data ModType = - MTAbstract PIdent - | MTResource PIdent - | MTInterface PIdent - | MTConcrete PIdent PIdent - | MTInstance PIdent PIdent - | MTTransfer PIdent Open Open - 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 - | OQualQO QualOpen PIdent - | OQual QualOpen PIdent PIdent - deriving (Eq,Ord,Show) - -data ComplMod = - CMCompl - | CMIncompl - deriving (Eq,Ord,Show) - -data QualOpen = - QOCompl - | QOIncompl - | QOInterface - deriving (Eq,Ord,Show) - -data Included = - IAll PIdent - | ISome PIdent [PIdent] - | IMinus PIdent [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 TopDef = - DefCat [CatDef] - | DefFun [FunDef] - | DefFunData [FunDef] - | DefDef [Def] - | DefData [DataDef] - | DefTrans [Def] - | DefPar [ParDef] - | DefOper [Def] - | DefLincat [PrintDef] - | DefLindef [Def] - | DefLin [Def] - | DefPrintCat [PrintDef] - | DefPrintFun [PrintDef] - | DefFlag [FlagDef] - | DefPrintOld [PrintDef] - | DefLintype [Def] - | DefPattern [Def] - | DefPackage PIdent [TopDef] - | DefVars [Def] - | DefTokenizer PIdent - deriving (Eq,Ord,Show) - -data CatDef = - SimpleCatDef PIdent [DDecl] - | ListCatDef PIdent [DDecl] - | ListSizeCatDef PIdent [DDecl] Integer - deriving (Eq,Ord,Show) - -data FunDef = - FunDef [PIdent] Exp - deriving (Eq,Ord,Show) - -data DataDef = - DataDef PIdent [DataConstr] - deriving (Eq,Ord,Show) - -data DataConstr = - DataId PIdent - | DataQId PIdent PIdent - deriving (Eq,Ord,Show) - -data ParDef = - ParDefDir PIdent [ParConstr] - | ParDefIndir PIdent PIdent - | ParDefAbs PIdent - deriving (Eq,Ord,Show) - -data ParConstr = - ParConstr PIdent [DDecl] - deriving (Eq,Ord,Show) - -data PrintDef = - PrintDef [Name] Exp - deriving (Eq,Ord,Show) - -data FlagDef = - FlagDef PIdent PIdent - deriving (Eq,Ord,Show) - -data Name = - IdentName 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 = - EIdent 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] - | EConAt PIdent 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 = - LIdent 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 = - BIdent 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 - | FIdent PIdent - | FSlash FileName - | FDot FileName - | FMinus FileName - | FAddId PIdent FileName - deriving (Eq,Ord,Show) - diff --git a/src/GF/Source/ErrM.hs b/src/GF/Source/ErrM.hs deleted file mode 100644 index 63840758e..000000000 --- a/src/GF/Source/ErrM.hs +++ /dev/null @@ -1,26 +0,0 @@ --- BNF Converter: Error Monad --- Copyright (C) 2004 Author: Aarne Ranta - --- This file comes with NO WARRANTY and may be used FOR ANY PURPOSE. -module GF.Source.ErrM where - --- the Error monad: like Maybe type with error msgs - -import Control.Monad (MonadPlus(..), liftM) - -data Err a = Ok a | Bad String - deriving (Read, Show, Eq, Ord) - -instance Monad Err where - return = Ok - fail = Bad - Ok a >>= f = f a - Bad s >>= f = Bad s - -instance Functor Err where - fmap = liftM - -instance MonadPlus Err where - mzero = Bad "Err.mzero" - mplus (Bad _) y = y - mplus x _ = x diff --git a/src/GF/Source/GF.cf b/src/GF/Source/GF.cf deleted file mode 100644 index 364550e6f..000000000 --- a/src/GF/Source/GF.cf +++ /dev/null @@ -1,370 +0,0 @@ --- AR 2/5/2003, 14-16 o'clock, Torino - --- 17/6/2007: marked with suffix --% those lines that are obsolete and --- should not be included in documentation - -entrypoints Grammar, ModDef, - OldGrammar, --% - Exp ; -- let's see if more are needed - -comment "--" ; -comment "{-" "-}" ; - --- the top-level grammar - -Gr. Grammar ::= [ModDef] ; - --- semicolon after module is permitted but not obligatory - -terminator ModDef "" ; -_. ModDef ::= ModDef ";" ; - --- The $main$ multilingual grammar structure --% - -MMain. ModDef ::= "grammar" PIdent "=" "{" "abstract" "=" PIdent ";" [ConcSpec] "}" ;--% - -ConcSpec. ConcSpec ::= PIdent "=" ConcExp ;--% -separator ConcSpec ";" ;--% - -ConcExp. ConcExp ::= PIdent [Transfer] ;--% - -separator Transfer "" ;--% -TransferIn. Transfer ::= "(" "transfer" "in" Open ")" ; --% -TransferOut. Transfer ::= "(" "transfer" "out" Open ")" ; --% - --- the module header - -MModule2. ModHeader ::= ComplMod ModType "=" ModHeaderBody ; - -MBody2. ModHeaderBody ::= Extend Opens ; -MNoBody2. ModHeaderBody ::= [Included] ; -MWith2. ModHeaderBody ::= Included "with" [Open] ; -MWithBody2. ModHeaderBody ::= Included "with" [Open] "**" Opens ; -MWithE2. ModHeaderBody ::= [Included] "**" Included "with" [Open] ; -MWithEBody2. ModHeaderBody ::= [Included] "**" Included "with" [Open] "**" Opens ; - -MReuse2. ModHeaderBody ::= "reuse" PIdent ; --% -MUnion2. ModHeaderBody ::= "union" [Included] ;--% - --- the individual modules - -MModule. ModDef ::= ComplMod ModType "=" ModBody ; - -MTAbstract. ModType ::= "abstract" PIdent ; -MTResource. ModType ::= "resource" PIdent ; -MTInterface. ModType ::= "interface" PIdent ; -MTConcrete. ModType ::= "concrete" PIdent "of" PIdent ; -MTInstance. ModType ::= "instance" PIdent "of" PIdent ; -MTTransfer. ModType ::= "transfer" PIdent ":" Open "->" Open ; - - -MBody. ModBody ::= Extend Opens "{" [TopDef] "}" ; -MNoBody. ModBody ::= [Included] ; -MWith. ModBody ::= Included "with" [Open] ; -MWithBody. ModBody ::= Included "with" [Open] "**" Opens "{" [TopDef] "}" ; -MWithE. ModBody ::= [Included] "**" Included "with" [Open] ; -MWithEBody. ModBody ::= [Included] "**" Included "with" [Open] "**" Opens "{" [TopDef] "}" ; - -MReuse. ModBody ::= "reuse" PIdent ; --% -MUnion. ModBody ::= "union" [Included] ;--% - -separator TopDef "" ; - -Ext. Extend ::= [Included] "**" ; -NoExt. Extend ::= ; - -separator Open "," ; -NoOpens. Opens ::= ; -OpenIn. Opens ::= "open" [Open] "in" ; - -OName. Open ::= PIdent ; -OQualQO. Open ::= "(" QualOpen PIdent ")" ; -OQual. Open ::= "(" QualOpen PIdent "=" PIdent ")" ; - -CMCompl. ComplMod ::= ; -CMIncompl. ComplMod ::= "incomplete" ; - -QOCompl. QualOpen ::= ; -QOIncompl. QualOpen ::= "incomplete" ;--% -QOInterface. QualOpen ::= "interface" ;--% - -separator Included "," ; - -IAll. Included ::= PIdent ; -ISome. Included ::= PIdent "[" [PIdent] "]" ; -IMinus. Included ::= PIdent "-" "[" [PIdent] "]" ; - --- definitions after the $oper$ keywords - -DDecl. Def ::= [Name] ":" Exp ; -DDef. Def ::= [Name] "=" Exp ; -DPatt. Def ::= Name [Patt] "=" Exp ; -- non-empty pattern list -DFull. Def ::= [Name] ":" Exp "=" Exp ; - --- top-level definitions - -DefCat. TopDef ::= "cat" [CatDef] ; -DefFun. TopDef ::= "fun" [FunDef] ; -DefFunData.TopDef ::= "data" [FunDef] ; -DefDef. TopDef ::= "def" [Def] ; -DefData. TopDef ::= "data" [DataDef] ; - -DefTrans. TopDef ::= "transfer" [Def] ;--% - -DefPar. TopDef ::= "param" [ParDef] ; -DefOper. TopDef ::= "oper" [Def] ; - -DefLincat. TopDef ::= "lincat" [PrintDef] ; -DefLindef. TopDef ::= "lindef" [Def] ; -DefLin. TopDef ::= "lin" [Def] ; - -DefPrintCat. TopDef ::= "printname" "cat" [PrintDef] ; -DefPrintFun. TopDef ::= "printname" "fun" [PrintDef] ; -DefFlag. TopDef ::= "flags" [FlagDef] ; - -SimpleCatDef. CatDef ::= PIdent [DDecl] ; -ListCatDef. CatDef ::= "[" PIdent [DDecl] "]" ; -ListSizeCatDef. CatDef ::= "[" PIdent [DDecl] "]" "{" Integer "}" ; - -FunDef. FunDef ::= [PIdent] ":" Exp ; - -DataDef. DataDef ::= PIdent "=" [DataConstr] ; -DataId. DataConstr ::= PIdent ; -DataQId. DataConstr ::= PIdent "." PIdent ; -separator DataConstr "|" ; - - -ParDefDir. ParDef ::= PIdent "=" [ParConstr] ; -ParDefIndir. ParDef ::= PIdent "=" "(" "in" PIdent ")" ; -ParDefAbs. ParDef ::= PIdent ; - -ParConstr. ParConstr ::= PIdent [DDecl] ; - -PrintDef. PrintDef ::= [Name] "=" Exp ; - -FlagDef. FlagDef ::= PIdent "=" PIdent ; - -terminator nonempty Def ";" ; -terminator nonempty CatDef ";" ; -terminator nonempty FunDef ";" ; -terminator nonempty DataDef ";" ; -terminator nonempty ParDef ";" ; - -terminator nonempty PrintDef ";" ; -terminator nonempty FlagDef ";" ; - -separator ParConstr "|" ; - -separator nonempty PIdent "," ; - --- names of categories and functions in definition LHS - -IdentName. Name ::= PIdent ; -ListName. Name ::= "[" PIdent "]" ; - -separator nonempty Name "," ; - --- definitions in records and $let$ expressions - -LDDecl. LocDef ::= [PIdent] ":" Exp ; -LDDef. LocDef ::= [PIdent] "=" Exp ; -LDFull. LocDef ::= [PIdent] ":" Exp "=" Exp ; - -separator LocDef ";" ; - --- terms and types - -EIdent. Exp6 ::= PIdent ; -EConstr. Exp6 ::= "{" PIdent "}" ;--% -ECons. Exp6 ::= "%" PIdent "%" ;--% -ESort. Exp6 ::= Sort ; -EString. Exp6 ::= String ; -EInt. Exp6 ::= Integer ; -EFloat. Exp6 ::= Double ; -EMeta. Exp6 ::= "?" ; -EEmpty. Exp6 ::= "[" "]" ; -EData. Exp6 ::= "data" ; -EList. Exp6 ::= "[" PIdent Exps "]" ; -EStrings. Exp6 ::= "[" String "]" ; -ERecord. Exp6 ::= "{" [LocDef] "}" ; -- ! -ETuple. Exp6 ::= "<" [TupleComp] ">" ; --- needed for separator "," -EIndir. Exp6 ::= "(" "in" PIdent ")" ; -- indirection, used in judgements --% -ETyped. Exp6 ::= "<" Exp ":" Exp ">" ; -- typing, used for annotations - -EProj. Exp5 ::= Exp5 "." Label ; -EQConstr. Exp5 ::= "{" PIdent "." PIdent "}" ; -- qualified constructor --% -EQCons. Exp5 ::= "%" PIdent "." PIdent ; -- qualified constant --% - -EApp. Exp4 ::= Exp4 Exp5 ; -ETable. Exp4 ::= "table" "{" [Case] "}" ; -ETTable. Exp4 ::= "table" Exp6 "{" [Case] "}" ; -EVTable. Exp4 ::= "table" Exp6 "[" [Exp] "]" ; -ECase. Exp4 ::= "case" Exp "of" "{" [Case] "}" ; -EVariants. Exp4 ::= "variants" "{" [Exp] "}" ; ---- EPreCase. Exp4 ::= "pre" "{" [Case] "}" ; -EPre. Exp4 ::= "pre" "{" Exp ";" [Altern] "}" ; -EStrs. Exp4 ::= "strs" "{" [Exp] "}" ; -EConAt. Exp4 ::= PIdent "@" Exp6 ; --% - -EPatt. Exp4 ::= "#" Patt2 ; -EPattType. Exp4 ::= "pattern" Exp5 ; - -ESelect. Exp3 ::= Exp3 "!" Exp4 ; -ETupTyp. Exp3 ::= Exp3 "*" Exp4 ; -EExtend. Exp3 ::= Exp3 "**" Exp4 ; - -EGlue. Exp1 ::= Exp2 "+" Exp1 ; - -EConcat. Exp ::= Exp1 "++" Exp ; - -EAbstr. Exp ::= "\\" [Bind] "->" Exp ; -ECTable. Exp ::= "\\""\\" [Bind] "=>" Exp ; -EProd. Exp ::= Decl "->" Exp ; -ETType. Exp ::= Exp3 "=>" Exp ; -- these are thus right associative -ELet. Exp ::= "let" "{" [LocDef] "}" "in" Exp ; -ELetb. Exp ::= "let" [LocDef] "in" Exp ; -EWhere. Exp ::= Exp3 "where" "{" [LocDef] "}" ; -EEqs. Exp ::= "fn" "{" [Equation] "}" ; --% - -EExample. Exp ::= "in" Exp5 String ; - -coercions Exp 6 ; - -separator Exp ";" ; -- in variants - --- list of arguments to category -NilExp. Exps ::= ; -ConsExp. Exps ::= Exp6 Exps ; -- Exp6 to force parantheses - --- patterns - -PChar. Patt2 ::= "?" ; -PChars. Patt2 ::= "[" String "]" ; -PMacro. Patt2 ::= "#" PIdent ; -PM. Patt2 ::= "#" PIdent "." PIdent ; -PW. Patt2 ::= "_" ; -PV. Patt2 ::= PIdent ; -PCon. Patt2 ::= "{" PIdent "}" ; --% -PQ. Patt2 ::= PIdent "." PIdent ; -PInt. Patt2 ::= Integer ; -PFloat. Patt2 ::= Double ; -PStr. Patt2 ::= String ; -PR. Patt2 ::= "{" [PattAss] "}" ; -PTup. Patt2 ::= "<" [PattTupleComp] ">" ; -PC. Patt1 ::= PIdent [Patt] ; -PQC. Patt1 ::= PIdent "." PIdent [Patt] ; -PDisj. Patt ::= Patt "|" Patt1 ; -PSeq. Patt ::= Patt "+" Patt1 ; -PRep. Patt1 ::= Patt2 "*" ; -PAs. Patt1 ::= PIdent "@" Patt2 ; -PNeg. Patt1 ::= "-" Patt2 ; - -coercions Patt 2 ; - -PA. PattAss ::= [PIdent] "=" Patt ; - --- labels - -LIdent. Label ::= PIdent ; -LVar. Label ::= "$" Integer ; - --- basic types - -rules Sort ::= - "Type" - | "PType" - | "Tok" --% - | "Str" - | "Strs" ; - -separator PattAss ";" ; - --- this is explicit to force higher precedence level on rhs -(:[]). [Patt] ::= Patt2 ; -(:). [Patt] ::= Patt2 [Patt] ; - - --- binds in lambdas and lin rules - -BIdent. Bind ::= PIdent ; -BWild. Bind ::= "_" ; - -separator Bind "," ; - - --- declarations in function types - -DDec. Decl ::= "(" [Bind] ":" Exp ")" ; -DExp. Decl ::= Exp4 ; -- can thus be an application - --- tuple component (term or pattern) - -TComp. TupleComp ::= Exp ; -PTComp. PattTupleComp ::= Patt ; - -separator TupleComp "," ; -separator PattTupleComp "," ; - --- case branches - -Case. Case ::= Patt "=>" Exp ; - -separator nonempty Case ";" ; - --- cases in abstract syntax --% - -Equ. Equation ::= [Patt] "->" Exp ; --% - -separator Equation ";" ; --% - --- prefix alternatives - -Alt. Altern ::= Exp "/" Exp ; - -separator Altern ";" ; - --- in a context, higher precedence is required than in function types - -DDDec. DDecl ::= "(" [Bind] ":" Exp ")" ; -DDExp. DDecl ::= Exp6 ; -- can thus *not* be an application - -separator DDecl "" ; - - --------------------------------------- --% - --- for backward compatibility --% - -OldGr. OldGrammar ::= Include [TopDef] ; --% - -NoIncl. Include ::= ; --% -Incl. Include ::= "include" [FileName] ; --% - -FString. FileName ::= String ; --% - -terminator nonempty FileName ";" ; --% - -FIdent. FileName ::= PIdent ; --% -FSlash. FileName ::= "/" FileName ; --% -FDot. FileName ::= "." FileName ; --% -FMinus. FileName ::= "-" FileName ; --% -FAddId. FileName ::= PIdent FileName ; --% - -token LString '\'' (char - '\'')* '\'' ; --% -ELString. Exp6 ::= LString ; --% -ELin. Exp4 ::= "Lin" PIdent ; --% - -DefPrintOld. TopDef ::= "printname" [PrintDef] ; --% -DefLintype. TopDef ::= "lintype" [Def] ; --% -DefPattern. TopDef ::= "pattern" [Def] ; --% - --- deprecated packages are attempted to be interpreted --% -DefPackage. TopDef ::= "package" PIdent "=" "{" [TopDef] "}" ";" ; --% - --- these two are just ignored after parsing --% -DefVars. TopDef ::= "var" [Def] ; --% -DefTokenizer. TopDef ::= "tokenizer" PIdent ";" ; --% - --- identifiers - -position token PIdent ('_' | letter) (letter | digit | '_' | '\'')* ; diff --git a/src/GF/Source/GrammarToSource.hs b/src/GF/Source/GrammarToSource.hs deleted file mode 100644 index 6d48e4ced..000000000 --- a/src/GF/Source/GrammarToSource.hs +++ /dev/null @@ -1,259 +0,0 @@ ----------------------------------------------------------------------- --- | --- Module : GrammarToSource --- Maintainer : AR --- Stability : (stable) --- Portability : (portable) --- --- > CVS $Date: 2005/10/04 11:05:07 $ --- > CVS $Author: aarne $ --- > CVS $Revision: 1.23 $ --- --- From internal source syntax to BNFC-generated (used for printing). ------------------------------------------------------------------------------ - -module GF.Source.GrammarToSource ( trGrammar, - trModule, - trAnyDef, - trLabel, - trt, tri, trp - ) where - -import GF.Data.Operations -import GF.Grammar.Grammar -import GF.Infra.Modules -import GF.Infra.Option -import qualified GF.Source.AbsGF as P -import GF.Infra.Ident - --- | AR 13\/5\/2003 --- --- translate internal to parsable and printable source -trGrammar :: SourceGrammar -> P.Grammar -trGrammar (MGrammar ms) = P.Gr (map trModule ms) -- no includes - -trModule :: (Ident,SourceModInfo) -> P.ModDef -trModule (i,mo) = case mo of - ModMod m -> P.MModule compl typ body where - compl = case mstatus m of - MSIncomplete -> P.CMIncompl - _ -> P.CMCompl - i' = tri i - typ = case typeOfModule mo of - MTResource -> P.MTResource i' - MTAbstract -> P.MTAbstract i' - MTConcrete a -> P.MTConcrete i' (tri a) - MTTransfer a b -> P.MTTransfer i' (trOpen a) (trOpen b) - MTInstance a -> P.MTInstance i' (tri a) - MTInterface -> P.MTInterface i' - body = P.MBody - (trExtends (extend m)) - (mkOpens (map trOpen (opens m))) - (mkTopDefs (concatMap trAnyDef (tree2list (jments m)) ++ map trFlag (flags m))) - -trExtends :: [(Ident,MInclude Ident)] -> P.Extend -trExtends [] = P.NoExt -trExtends es = (P.Ext $ map tre es) where - tre (i,c) = case c of - MIAll -> P.IAll (tri i) - MIOnly is -> P.ISome (tri i) (map tri is) - MIExcept is -> P.IMinus (tri i) (map tri is) - ----- this has to be completed with other mtys -forName (MTConcrete a) = tri a - -trOpen :: OpenSpec Ident -> P.Open -trOpen o = case o of - OSimple OQNormal i -> P.OName (tri i) - OSimple q i -> P.OQualQO (trQualOpen q) (tri i) - OQualif q i j -> P.OQual (trQualOpen q) (tri i) (tri j) - -trQualOpen q = case q of - OQNormal -> P.QOCompl - OQIncomplete -> P.QOIncompl - OQInterface -> P.QOInterface - - -mkOpens ds = if null ds then P.NoOpens else P.OpenIn ds -mkTopDefs ds = ds - -trAnyDef :: (Ident,Info) -> [P.TopDef] -trAnyDef (i,info) = let i' = tri i in case info of - AbsCat (Yes co) pd -> [P.DefCat [P.SimpleCatDef i' (map trDecl co)]] - AbsFun (Yes ty) (Yes EData) -> [P.DefFunData [P.FunDef [i'] (trt ty)]] - AbsFun (Yes ty) pt -> [P.DefFun [P.FunDef [i'] (trt ty)]] ++ case pt of - Yes t -> [P.DefDef [P.DDef [mkName i'] (trt t)]] - _ -> [] - AbsFun (May b) _ -> [P.DefFun [P.FunDef [i'] (P.EIndir (tri b))]] - ---- don't destroy definitions! - AbsTrans f -> [P.DefTrans [P.DDef [mkName i'] (trt f)]] - - ResOper pty ptr -> [P.DefOper [trDef i' pty ptr]] - ResParam pp -> [P.DefPar [case pp of - Yes (ps,_) -> P.ParDefDir i' [P.ParConstr (tri c) (map trDecl co) | (c,co) <- ps] - May b -> P.ParDefIndir i' $ tri b - _ -> P.ParDefAbs i']] - - ResOverload tysts -> - [P.DefOper [P.DDef [mkName i'] ( - P.EApp (P.EIdent $ tri $ identC "overload") - (P.ERecord [P.LDFull [i'] (trt ty) (trt fu) | (ty,fu) <- tysts]))]] - - CncCat (Yes ty) Nope _ -> - [P.DefLincat [P.PrintDef [mkName i'] (trt ty)]] - CncCat pty ptr ppr -> - [P.DefLindef [trDef i' pty ptr]] ++ - [P.DefPrintCat [P.PrintDef [mkName i'] (trt pr)] | Yes pr <- [ppr]] - CncFun _ ptr ppr -> - [P.DefLin [trDef i' nope ptr]] ++ - [P.DefPrintFun [P.PrintDef [mkName i'] (trt pr)] | Yes pr <- [ppr]] -{- - ---- encoding of AnyInd without changing syntax. AR 20/9/2007 - AnyInd s b -> - [P.DefOper [P.DDef [mkName i] - (P.EApp (P.EInt (if s then 1 else 0)) (P.EIdent (tri b)))]] --} - _ -> [] - - -trDef :: P.PIdent -> Perh Type -> Perh Term -> P.Def -trDef i pty ptr = case (pty,ptr) of - (Nope, Nope) -> P.DDef [mkName i] (P.EMeta) --- - (_, Nope) -> P.DDecl [mkName i] (trPerh pty) - (Nope, _ ) -> P.DDef [mkName i] (trPerh ptr) - (_, _ ) -> P.DFull [mkName i] (trPerh pty) (trPerh ptr) - -trPerh p = case p of - Yes t -> trt t - May b -> P.EIndir $ tri b - _ -> P.EMeta --- - - -trFlag :: Option -> P.TopDef -trFlag o = case o of - Opt (f,[x]) -> P.DefFlag [P.FlagDef (tri $ identC f) (tri $ identC x)] - _ -> P.DefFlag [] --- warning? - -trt :: Term -> P.Exp -trt trm = case trm of - Vr s -> P.EIdent $ tri s - Cn s -> P.ECons $ tri s - Con s -> P.EConstr $ tri s - Sort s -> P.ESort $ case s of - "Type" -> P.Sort_Type - "PType" -> P.Sort_PType - "Tok" -> P.Sort_Tok - "Str" -> P.Sort_Str - "Strs" -> P.Sort_Strs - _ -> error $ "not yet sort " +++ show trm ---- - - App c a -> P.EApp (trt c) (trt a) - Abs x b -> P.EAbstr [trb x] (trt b) - Eqs pts -> P.EEqs [P.Equ (map trp ps) (trt t) | (ps,t) <- pts] - Meta m -> P.EMeta - Prod x a b | isWildIdent x -> P.EProd (P.DExp (trt a)) (trt b) - Prod x a b -> P.EProd (P.DDec [trb x] (trt a)) (trt b) - - Example t s -> P.EExample (trt t) s - R [] -> P.ETuple [] --- to get correct parsing when read back - R r -> P.ERecord $ map trAssign r - RecType r -> P.ERecord $ map trLabelling r - ExtR x y -> P.EExtend (trt x) (trt y) - P t l -> P.EProj (trt t) (trLabel l) - PI t l _ -> P.EProj (trt t) (trLabel l) - Q t l -> P.EQCons (tri t) (tri l) - QC t l -> P.EQConstr (tri t) (tri l) - TSh (TComp ty) cc -> P.ETTable (trt ty) (map trCases cc) - TSh (TTyped ty) cc -> P.ETTable (trt ty) (map trCases cc) - TSh (TWild ty) cc -> P.ETTable (trt ty) (map trCases cc) - T (TTyped ty) cc -> P.ETTable (trt ty) (map trCase cc) - T (TComp ty) cc -> P.ETTable (trt ty) (map trCase cc) - T (TWild ty) cc -> P.ETTable (trt ty) (map trCase cc) - T _ cc -> P.ETable (map trCase cc) - V ty cc -> P.EVTable (trt ty) (map trt cc) - - Table x v -> P.ETType (trt x) (trt v) - S f x -> P.ESelect (trt f) (trt x) ----- Alias c a t -> "{-" +++ prt c +++ "=" +++ "-}" +++ prt t --- Alias c a t -> prt (Let (c,(Just a,t)) (Vr c)) -- thus Alias is only internal - - Let (x,(ma,b)) t -> - P.ELet [maybe (P.LDDef x' b') (\ty -> P.LDFull x' (trt ty) b') ma] (trt t) - where - b' = trt b - x' = [tri x] - - Empty -> P.EEmpty - K [] -> P.EEmpty - K a -> P.EString a - C a b -> P.EConcat (trt a) (trt b) - - EInt i -> P.EInt i - EFloat i -> P.EFloat i - - EPatt p -> P.EPatt (trp p) - EPattType t -> P.EPattType (trt t) - - Glue a b -> P.EGlue (trt a) (trt b) - Alts (t, tt) -> P.EPre (trt t) [P.Alt (trt v) (trt c) | (v,c) <- tt] - FV ts -> P.EVariants $ map trt ts - Strs tt -> P.EStrs $ map trt tt - EData -> P.EData - _ -> error $ "not yet" +++ show trm ---- - -trp :: Patt -> P.Patt -trp p = case p of - PW -> P.PW - PV s | isWildIdent s -> P.PW - PV s -> P.PV $ tri s - PC c [] -> P.PCon $ tri c - PC c a -> P.PC (tri c) (map trp a) - PP p c [] -> P.PQ (tri p) (tri c) - PP p c a -> P.PQC (tri p) (tri c) (map trp a) - PR r -> P.PR [P.PA [tri $ trLabelIdent l] (trp p) | (l,p) <- r] - PString s -> P.PStr s - PInt i -> P.PInt i - PFloat i -> P.PFloat i - PT t p -> trp p ---- prParenth (prt p +++ ":" +++ prt t) - - PAs x p -> P.PAs (tri x) (trp p) - - PAlt p q -> P.PDisj (trp p) (trp q) - PSeq p q -> P.PSeq (trp p) (trp q) - PRep p -> P.PRep (trp p) - PNeg p -> P.PNeg (trp p) - PChar -> P.PChar - PChars s -> P.PChars s - PM m c -> P.PM (tri m) (tri c) - - -trAssign (lab, (mty, t)) = maybe (P.LDDef x t') (\ty -> P.LDFull x (trt ty) t') mty - where - t' = trt t - x = [tri $ trLabelIdent lab] - -trLabelling (lab,ty) = P.LDDecl [tri $ trLabelIdent lab] (trt ty) - -trCase (patt, trm) = P.Case (trp patt) (trt trm) -trCases (patts,trm) = P.Case (foldl1 P.PDisj (map trp patts)) (trt trm) - -trDecl (x,ty) = P.DDDec [trb x] (trt ty) - -tri :: Ident -> P.PIdent -tri = ppIdent . prIdent - -ppIdent i = P.PIdent ((0,0),i) - -trb i = if isWildIdent i then P.BWild else P.BIdent (tri i) - -trLabel :: Label -> P.Label -trLabel i = case i of - LIdent s -> P.LIdent $ ppIdent s - LVar i -> P.LVar $ toInteger i - -trLabelIdent i = identC $ case i of - LIdent s -> s - LVar i -> "v" ++ show i --- should not happen - -mkName :: P.PIdent -> P.Name -mkName = P.IdentName diff --git a/src/GF/Source/LexGF.hs b/src/GF/Source/LexGF.hs deleted file mode 100644 index 89067b6b6..000000000 --- a/src/GF/Source/LexGF.hs +++ /dev/null @@ -1,345 +0,0 @@ -{-# OPTIONS -fglasgow-exts -cpp #-} -{-# LINE 3 "GF/Source/LexGF.x" #-} -{-# OPTIONS -fno-warn-incomplete-patterns #-} -module GF.Source.LexGF where - - -import qualified Data.ByteString.Char8 as BS - -#if __GLASGOW_HASKELL__ >= 603 -#include "ghcconfig.h" -#else -#include "config.h" -#endif -#if __GLASGOW_HASKELL__ >= 503 -import Data.Array -import Data.Char (ord) -import Data.Array.Base (unsafeAt) -#else -import Array -import Char (ord) -#endif -#if __GLASGOW_HASKELL__ >= 503 -import GHC.Exts -#else -import GlaExts -#endif -alex_base :: AlexAddr -alex_base = AlexA# "\x01\x00\x00\x00\x15\x00\x00\x00\x39\x00\x00\x00\x3a\x00\x00\x00\x18\x00\x00\x00\x19\x00\x00\x00\x1a\x00\x00\x00\x00\x00\x00\x00\x44\x00\x00\x00\x45\x00\x00\x00\x1b\x00\x00\x00\x1c\x00\x00\x00\x1d\x00\x00\x00\x42\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x27\x00\x00\x00\x13\x00\x00\x00\x9c\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x00\x00\x2d\x00\x00\x00\x6c\x01\x00\x00\x3c\x02\x00\x00\x0c\x03\x00\x00\x00\x00\x00\x00\x17\x01\x00\x00\xe7\x01\x00\x00\xd5\x00\x00\x00\x35\x00\x00\x00\xe7\x00\x00\x00\xf2\x00\x00\x00\x1d\x01\x00\x00\xc2\x01\x00\x00\xcc\x01\x00\x00"# - -alex_table :: AlexAddr -alex_table = AlexA# "\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0d\x00\x0d\x00\x0d\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x0e\x00\x1a\x00\x0e\x00\x0e\x00\x0e\x00\xff\xff\x14\x00\x0e\x00\x0e\x00\x0f\x00\x10\x00\x0e\x00\x05\x00\x0e\x00\x0e\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x0e\x00\x0e\x00\x0e\x00\x11\x00\x0e\x00\x0e\x00\x0e\x00\x04\x00\xff\xff\xff\xff\x02\x00\x02\x00\x09\x00\x09\x00\x09\x00\x0a\x00\x0d\x00\x0d\x00\x0d\x00\x0d\x00\x0d\x00\x0e\x00\x0e\x00\x0e\x00\x13\x00\x13\x00\x00\x00\x00\x00\x0e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x00\x0e\x00\x0e\x00\xff\xff\x12\x00\xff\xff\x0d\x00\x20\x00\x00\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x1d\x00\x00\x00\x00\x00\x09\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0c\x00\x0e\x00\x0e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x06\x00\x07\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x00\x00\x00\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x1b\x00\xff\xff\x00\x00\x00\x00\x17\x00\x1b\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\xff\xff\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x00\x00\x00\x00\x00\x21\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x1c\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x18\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\xff\xff\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x1f\x00\x00\x00\x00\x00\x00\x00\x19\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x1c\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x17\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x00\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x00\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x18\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x00\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x00\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00\x18\x00"# - -alex_check :: AlexAddr -alex_check = AlexA# "\xff\xff\x00\x00\x01\x00\x02\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x0e\x00\x0f\x00\x10\x00\x11\x00\x12\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1d\x00\x1e\x00\x1f\x00\x20\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x3d\x00\x3e\x00\x3f\x00\x40\x00\x2d\x00\x0a\x00\x0a\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x2d\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x2a\x00\x3e\x00\x2b\x00\x27\x00\x27\x00\xff\xff\xff\xff\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5b\x00\x5c\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x20\x00\x2e\x00\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x2d\x00\x2d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7b\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x80\x00\x81\x00\x82\x00\x83\x00\x84\x00\x85\x00\x86\x00\x87\x00\x88\x00\x89\x00\x8a\x00\x8b\x00\x8c\x00\x8d\x00\x8e\x00\x8f\x00\x90\x00\x91\x00\x92\x00\x93\x00\x94\x00\x95\x00\x96\x00\x97\x00\x98\x00\x99\x00\x9a\x00\x9b\x00\x9c\x00\x9d\x00\x9e\x00\x9f\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa5\x00\xa6\x00\xa7\x00\xa8\x00\xa9\x00\xaa\x00\xab\x00\xac\x00\xad\x00\xae\x00\xaf\x00\xb0\x00\xb1\x00\xb2\x00\xb3\x00\xb4\x00\xb5\x00\xb6\x00\xb7\x00\xb8\x00\xb9\x00\xba\x00\xbb\x00\xbc\x00\xbd\x00\xbe\x00\xbf\x00\x7d\x00\x7d\x00\x27\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xd7\x00\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x22\x00\xf7\x00\xff\xff\xff\xff\x5f\x00\x27\x00\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5c\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x6e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x74\x00\xff\xff\xff\xff\x65\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\x5c\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\x27\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\xff\xff\x0a\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\x5c\x00\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\x27\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\x27\x00\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x41\x00\x42\x00\x43\x00\x44\x00\x45\x00\x46\x00\x47\x00\x48\x00\x49\x00\x4a\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\xff\xff\x61\x00\x62\x00\x63\x00\x64\x00\x65\x00\x66\x00\x67\x00\x68\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x6d\x00\x6e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x74\x00\x75\x00\x76\x00\x77\x00\x78\x00\x79\x00\x7a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\x00\xc1\x00\xc2\x00\xc3\x00\xc4\x00\xc5\x00\xc6\x00\xc7\x00\xc8\x00\xc9\x00\xca\x00\xcb\x00\xcc\x00\xcd\x00\xce\x00\xcf\x00\xd0\x00\xd1\x00\xd2\x00\xd3\x00\xd4\x00\xd5\x00\xd6\x00\xff\xff\xd8\x00\xd9\x00\xda\x00\xdb\x00\xdc\x00\xdd\x00\xde\x00\xdf\x00\xe0\x00\xe1\x00\xe2\x00\xe3\x00\xe4\x00\xe5\x00\xe6\x00\xe7\x00\xe8\x00\xe9\x00\xea\x00\xeb\x00\xec\x00\xed\x00\xee\x00\xef\x00\xf0\x00\xf1\x00\xf2\x00\xf3\x00\xf4\x00\xf5\x00\xf6\x00\xff\xff\xf8\x00\xf9\x00\xfa\x00\xfb\x00\xfc\x00\xfd\x00\xfe\x00\xff\x00"# - -alex_deflt :: AlexAddr -alex_deflt = AlexA# "\x16\x00\xff\xff\x03\x00\x03\x00\xff\xff\xff\xff\x0b\x00\xff\xff\x0b\x00\x0b\x00\x0b\x00\x0b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x15\x00\x15\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1b\x00\x1b\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"# - -alex_accept = listArray (0::Int,34) [[],[],[(AlexAccSkip)],[(AlexAccSkip)],[],[(AlexAcc (alex_action_3))],[(AlexAccSkip)],[(AlexAccSkip)],[],[],[],[],[(AlexAcc (alex_action_3))],[(AlexAccSkip)],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_3))],[(AlexAcc (alex_action_4))],[],[],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_5))],[(AlexAcc (alex_action_7))],[],[],[],[(AlexAcc (alex_action_8))],[(AlexAcc (alex_action_9))],[(AlexAcc (alex_action_9))],[],[],[]] -{-# LINE 36 "GF/Source/LexGF.x" #-} - -tok f p s = f p s - -share :: String -> String -share = id - -data Tok = - TS !String -- reserved words and symbols - | TL !String -- string literals - | TI !String -- integer literals - | TV !String -- identifiers - | TD !String -- double precision float literals - | TC !String -- character literals - | T_LString !String - | T_PIdent !String - - deriving (Eq,Show,Ord) - -data Token = - PT Posn Tok - | Err Posn - deriving (Eq,Show,Ord) - -tokenPos (PT (Pn _ l _) _ :_) = "line " ++ show l -tokenPos (Err (Pn _ l _) :_) = "line " ++ show l -tokenPos _ = "end of file" - -posLineCol (Pn _ l c) = (l,c) -mkPosToken t@(PT p _) = (posLineCol p, prToken t) - -prToken t = case t of - PT _ (TS s) -> s - PT _ (TI s) -> s - PT _ (TV s) -> s - PT _ (TD s) -> s - PT _ (TC s) -> s - PT _ (T_LString s) -> s - PT _ (T_PIdent s) -> s - - _ -> show t - -data BTree = N | B String Tok BTree BTree deriving (Show) - -eitherResIdent :: (String -> Tok) -> String -> Tok -eitherResIdent tv s = treeFind resWords - where - treeFind N = tv s - treeFind (B a t left right) | s < a = treeFind left - | s > a = treeFind right - | s == a = t - -resWords = b "lincat" (b "def" (b "Type" (b "Str" (b "PType" (b "Lin" N N) N) (b "Tok" (b "Strs" N N) N)) (b "cat" (b "case" (b "abstract" N N) N) (b "data" (b "concrete" N N) N))) (b "include" (b "fun" (b "fn" (b "flags" N N) N) (b "in" (b "grammar" N N) N)) (b "interface" (b "instance" (b "incomplete" N N) N) (b "lin" (b "let" N N) N)))) (b "resource" (b "out" (b "of" (b "lintype" (b "lindef" N N) N) (b "oper" (b "open" N N) N)) (b "pattern" (b "param" (b "package" N N) N) (b "printname" (b "pre" N N) N))) (b "union" (b "table" (b "strs" (b "reuse" N N) N) (b "transfer" (b "tokenizer" N N) N)) (b "where" (b "variants" (b "var" N N) N) (b "with" N N)))) - where b s = B s (TS s) - -unescapeInitTail :: String -> String -unescapeInitTail = unesc . tail where - unesc s = case s of - '\\':c:cs | elem c ['\"', '\\', '\''] -> c : unesc cs - '\\':'n':cs -> '\n' : unesc cs - '\\':'t':cs -> '\t' : unesc cs - '"':[] -> [] - c:cs -> c : unesc cs - _ -> [] - -------------------------------------------------------------------- --- Alex wrapper code. --- A modified "posn" wrapper. -------------------------------------------------------------------- - -data Posn = Pn !Int !Int !Int - deriving (Eq, Show,Ord) - -alexStartPos :: Posn -alexStartPos = Pn 0 1 1 - -alexMove :: Posn -> Char -> Posn -alexMove (Pn a l c) '\t' = Pn (a+1) l (((c+7) `div` 8)*8+1) -alexMove (Pn a l c) '\n' = Pn (a+1) (l+1) 1 -alexMove (Pn a l c) _ = Pn (a+1) l (c+1) - -type AlexInput = (Posn, -- current position, - Char, -- previous char - BS.ByteString) -- current input string - -tokens :: BS.ByteString -> [Token] -tokens str = go (alexStartPos, '\n', str) - where - go :: AlexInput -> [Token] - go inp@(pos, _, str) = - case alexScan inp 0 of - AlexEOF -> [] - AlexError (pos, _, _) -> [Err pos] - AlexSkip inp' len -> go inp' - AlexToken inp' len act -> act pos (BS.unpack (BS.take len str)) : (go inp') - -alexGetChar :: AlexInput -> Maybe (Char,AlexInput) -alexGetChar (p,_,cs) | BS.null cs = Nothing - | otherwise = let c = BS.head cs - cs' = BS.tail cs - p' = alexMove p c - in p' `seq` cs' `seq` Just (c, (p', c, cs')) - -alexInputPrevChar :: AlexInput -> Char -alexInputPrevChar (p, c, s) = c - -alex_action_3 = tok (\p s -> PT p (TS $ share s)) -alex_action_4 = tok (\p s -> PT p (eitherResIdent (T_LString . share) s)) -alex_action_5 = tok (\p s -> PT p (eitherResIdent (T_PIdent . share) s)) -alex_action_6 = tok (\p s -> PT p (eitherResIdent (TV . share) s)) -alex_action_7 = tok (\p s -> PT p (TL $ share $ unescapeInitTail s)) -alex_action_8 = tok (\p s -> PT p (TI $ share s)) -alex_action_9 = tok (\p s -> PT p (TD $ share s)) -{-# LINE 1 "GenericTemplate.hs" #-} -{-# LINE 1 "<built-in>" #-} -{-# LINE 1 "<command line>" #-} -{-# LINE 1 "GenericTemplate.hs" #-} --- ----------------------------------------------------------------------------- --- ALEX TEMPLATE --- --- This code is in the PUBLIC DOMAIN; you may copy it freely and use --- it for any purpose whatsoever. - --- ----------------------------------------------------------------------------- --- INTERNALS and main scanner engine - -{-# LINE 35 "GenericTemplate.hs" #-} - -{-# LINE 45 "GenericTemplate.hs" #-} - - -data AlexAddr = AlexA# Addr# - -#if __GLASGOW_HASKELL__ < 503 -uncheckedShiftL# = shiftL# -#endif - -{-# INLINE alexIndexInt16OffAddr #-} -alexIndexInt16OffAddr (AlexA# arr) off = -#ifdef WORDS_BIGENDIAN - narrow16Int# i - where - i = word2Int# ((high `uncheckedShiftL#` 8#) `or#` low) - high = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#))) - low = int2Word# (ord# (indexCharOffAddr# arr off')) - off' = off *# 2# -#else - indexInt16OffAddr# arr off -#endif - - - - - -{-# INLINE alexIndexInt32OffAddr #-} -alexIndexInt32OffAddr (AlexA# arr) off = -#ifdef WORDS_BIGENDIAN - narrow32Int# i - where - i = word2Int# ((b3 `uncheckedShiftL#` 24#) `or#` - (b2 `uncheckedShiftL#` 16#) `or#` - (b1 `uncheckedShiftL#` 8#) `or#` b0) - b3 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 3#))) - b2 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 2#))) - b1 = int2Word# (ord# (indexCharOffAddr# arr (off' +# 1#))) - b0 = int2Word# (ord# (indexCharOffAddr# arr off')) - off' = off *# 4# -#else - indexInt32OffAddr# arr off -#endif - - - - - -#if __GLASGOW_HASKELL__ < 503 -quickIndex arr i = arr ! i -#else --- GHC >= 503, unsafeAt is available from Data.Array.Base. -quickIndex = unsafeAt -#endif - - - - --- ----------------------------------------------------------------------------- --- Main lexing routines - -data AlexReturn a - = AlexEOF - | AlexError !AlexInput - | AlexSkip !AlexInput !Int - | AlexToken !AlexInput !Int a - --- alexScan :: AlexInput -> StartCode -> AlexReturn a -alexScan input (I# (sc)) - = alexScanUser undefined input (I# (sc)) - -alexScanUser user input (I# (sc)) - = case alex_scan_tkn user input 0# input sc AlexNone of - (AlexNone, input') -> - case alexGetChar input of - Nothing -> - - - - AlexEOF - Just _ -> - - - - AlexError input' - - (AlexLastSkip input len, _) -> - - - - AlexSkip input len - - (AlexLastAcc k input len, _) -> - - - - AlexToken input len k - - --- Push the input through the DFA, remembering the most recent accepting --- state it encountered. - -alex_scan_tkn user orig_input len input s last_acc = - input `seq` -- strict in the input - let - new_acc = check_accs (alex_accept `quickIndex` (I# (s))) - in - new_acc `seq` - case alexGetChar input of - Nothing -> (new_acc, input) - Just (c, new_input) -> - - - - let - base = alexIndexInt32OffAddr alex_base s - (I# (ord_c)) = ord c - offset = (base +# ord_c) - check = alexIndexInt16OffAddr alex_check offset - - new_s = if (offset >=# 0#) && (check ==# ord_c) - then alexIndexInt16OffAddr alex_table offset - else alexIndexInt16OffAddr alex_deflt s - in - case new_s of - -1# -> (new_acc, input) - -- on an error, we want to keep the input *before* the - -- character that failed, not after. - _ -> alex_scan_tkn user orig_input (len +# 1#) - new_input new_s new_acc - - where - check_accs [] = last_acc - check_accs (AlexAcc a : _) = AlexLastAcc a input (I# (len)) - check_accs (AlexAccSkip : _) = AlexLastSkip input (I# (len)) - check_accs (AlexAccPred a pred : rest) - | pred user orig_input (I# (len)) input - = AlexLastAcc a input (I# (len)) - check_accs (AlexAccSkipPred pred : rest) - | pred user orig_input (I# (len)) input - = AlexLastSkip input (I# (len)) - check_accs (_ : rest) = check_accs rest - -data AlexLastAcc a - = AlexNone - | AlexLastAcc a !AlexInput !Int - | AlexLastSkip !AlexInput !Int - -data AlexAcc a user - = AlexAcc a - | AlexAccSkip - | AlexAccPred a (AlexAccPred user) - | AlexAccSkipPred (AlexAccPred user) - -type AlexAccPred user = user -> AlexInput -> Int -> AlexInput -> Bool - --- ----------------------------------------------------------------------------- --- Predicates on a rule - -alexAndPred p1 p2 user in1 len in2 - = p1 user in1 len in2 && p2 user in1 len in2 - ---alexPrevCharIsPred :: Char -> AlexAccPred _ -alexPrevCharIs c _ input _ _ = c == alexInputPrevChar input - ---alexPrevCharIsOneOfPred :: Array Char Bool -> AlexAccPred _ -alexPrevCharIsOneOf arr _ input _ _ = arr ! alexInputPrevChar input - ---alexRightContext :: Int -> AlexAccPred _ -alexRightContext (I# (sc)) user _ _ input = - case alex_scan_tkn user input 0# input sc AlexNone of - (AlexNone, _) -> False - _ -> True - -- TODO: there's no need to find the longest - -- match when checking the right context, just - -- the first match will do. - --- used by wrappers -iUnbox (I# (i)) = i diff --git a/src/GF/Source/LexGF.x b/src/GF/Source/LexGF.x deleted file mode 100644 index 7ea768e75..000000000 --- a/src/GF/Source/LexGF.x +++ /dev/null @@ -1,137 +0,0 @@ --- -*- haskell -*- --- This Alex file was machine-generated by the BNF converter -{ -module LexGF where - -import ErrM -import SharedString -} - - -$l = [a-zA-Z\192 - \255] # [\215 \247] -- isolatin1 letter FIXME -$c = [A-Z\192-\221] # [\215] -- capital isolatin1 letter FIXME -$s = [a-z\222-\255] # [\247] -- small isolatin1 letter FIXME -$d = [0-9] -- digit -$i = [$l $d _ '] -- identifier character -$u = [\0-\255] -- universal: any character - -@rsyms = -- reserved words consisting of special symbols - \; | \= | \{ | \} | \( | \) | \: | \- \> | \* \* | \, | \[ | \] | \- | \. | \| | \% | \? | \< | \> | \@ | \! | \* | \+ | \+ \+ | \\ | \= \> | \_ | \$ | \/ - -:- -"--" [.]* ; -- Toss single line comments -"{-" ([$u # \-] | \- [$u # \}])* ("-")+ "}" ; - -$white+ ; -@rsyms { tok (\p s -> PT p (TS $ share s)) } -\' ($u # \')* \' { tok (\p s -> PT p (eitherResIdent (T_LString . share) s)) } - -$l $i* { tok (\p s -> PT p (eitherResIdent (TV . share) s)) } -\" ([$u # [\" \\ \n]] | (\\ (\" | \\ | \' | n | t)))* \"{ tok (\p s -> PT p (TL $ share $ unescapeInitTail s)) } - -$d+ { tok (\p s -> PT p (TI $ share s)) } -$d+ \. $d+ (e (\-)? $d+)? { tok (\p s -> PT p (TD $ share s)) } - -{ - -tok f p s = f p s - -share :: String -> String -share = shareString - -data Tok = - TS !String -- reserved words - | TL !String -- string literals - | TI !String -- integer literals - | TV !String -- identifiers - | TD !String -- double precision float literals - | TC !String -- character literals - | T_LString !String - - deriving (Eq,Show,Ord) - -data Token = - PT Posn Tok - | Err Posn - deriving (Eq,Show,Ord) - -tokenPos (PT (Pn _ l _) _ :_) = "line " ++ show l -tokenPos (Err (Pn _ l _) :_) = "line " ++ show l -tokenPos _ = "end of file" - -posLineCol (Pn _ l c) = (l,c) -mkPosToken t@(PT p _) = (posLineCol p, prToken t) - -prToken t = case t of - PT _ (TS s) -> s - PT _ (TI s) -> s - PT _ (TV s) -> s - PT _ (TD s) -> s - PT _ (TC s) -> s - PT _ (T_LString s) -> s - - _ -> show t - -data BTree = N | B String Tok BTree BTree deriving (Show) - -eitherResIdent :: (String -> Tok) -> String -> Tok -eitherResIdent tv s = treeFind resWords - where - treeFind N = tv s - treeFind (B a t left right) | s < a = treeFind left - | s > a = treeFind right - | s == a = t - -resWords = b "lincat" (b "def" (b "Type" (b "Str" (b "PType" (b "Lin" N N) N) (b "Tok" (b "Strs" N N) N)) (b "cat" (b "case" (b "abstract" N N) N) (b "data" (b "concrete" N N) N))) (b "include" (b "fun" (b "fn" (b "flags" N N) N) (b "in" (b "grammar" N N) N)) (b "interface" (b "instance" (b "incomplete" N N) N) (b "lin" (b "let" N N) N)))) (b "resource" (b "out" (b "of" (b "lintype" (b "lindef" N N) N) (b "oper" (b "open" N N) N)) (b "pattern" (b "param" (b "package" N N) N) (b "printname" (b "pre" N N) N))) (b "union" (b "table" (b "strs" (b "reuse" N N) N) (b "transfer" (b "tokenizer" N N) N)) (b "where" (b "variants" (b "var" N N) N) (b "with" N N)))) - where b s = B s (TS s) - -unescapeInitTail :: String -> String -unescapeInitTail = unesc . tail where - unesc s = case s of - '\\':c:cs | elem c ['\"', '\\', '\''] -> c : unesc cs - '\\':'n':cs -> '\n' : unesc cs - '\\':'t':cs -> '\t' : unesc cs - '"':[] -> [] - c:cs -> c : unesc cs - _ -> [] - -------------------------------------------------------------------- --- Alex wrapper code. --- A modified "posn" wrapper. -------------------------------------------------------------------- - -data Posn = Pn !Int !Int !Int - deriving (Eq, Show,Ord) - -alexStartPos :: Posn -alexStartPos = Pn 0 1 1 - -alexMove :: Posn -> Char -> Posn -alexMove (Pn a l c) '\t' = Pn (a+1) l (((c+7) `div` 8)*8+1) -alexMove (Pn a l c) '\n' = Pn (a+1) (l+1) 1 -alexMove (Pn a l c) _ = Pn (a+1) l (c+1) - -type AlexInput = (Posn, -- current position, - Char, -- previous char - String) -- current input string - -tokens :: String -> [Token] -tokens str = go (alexStartPos, '\n', str) - where - go :: (Posn, Char, String) -> [Token] - go inp@(pos, _, str) = - case alexScan inp 0 of - AlexEOF -> [] - AlexError (pos, _, _) -> fail $ show pos ++ ": lexical error" - AlexSkip inp' len -> go inp' - AlexToken inp' len act -> act pos (take len str) : (go inp') - -alexGetChar :: AlexInput -> Maybe (Char,AlexInput) -alexGetChar (p, c, []) = Nothing -alexGetChar (p, _, (c:s)) = - let p' = alexMove p c - in p' `seq` Just (c, (p', c, s)) - -alexInputPrevChar :: AlexInput -> Char -alexInputPrevChar (p, c, s) = c -} diff --git a/src/GF/Source/ParGF.hs b/src/GF/Source/ParGF.hs deleted file mode 100644 index 30f83eef6..000000000 --- a/src/GF/Source/ParGF.hs +++ /dev/null @@ -1,7845 +0,0 @@ -{-# OPTIONS -fglasgow-exts -cpp #-}
-{-# OPTIONS -fno-warn-incomplete-patterns -fno-warn-overlapping-patterns #-}
- module GF.Source.ParGF (pGrammar, pModDef, pOldGrammar, pExp, pModHeader, myLexer) where --H
-import GF.Source.AbsGF --H
-import GF.Source.LexGF --H
-import GF.Infra.Ident --H
-import GF.Data.ErrM --H
-#if __GLASGOW_HASKELL__ >= 503
-import GHC.Exts
-#else
-import GlaExts
-#endif
-
--- parser produced by Happy Version 1.17
-
-data HappyAbsSyn
- = HappyTerminal Token
- | HappyErrorToken Int
- | HappyAbsSyn8 (Integer)
- | HappyAbsSyn9 (String)
- | HappyAbsSyn10 (Double)
- | HappyAbsSyn11 (LString)
- | HappyAbsSyn12 (PIdent)
- | HappyAbsSyn13 (Grammar)
- | HappyAbsSyn14 ([ModDef])
- | HappyAbsSyn15 (ModDef)
- | HappyAbsSyn16 (ConcSpec)
- | HappyAbsSyn17 ([ConcSpec])
- | HappyAbsSyn18 (ConcExp)
- | HappyAbsSyn19 ([Transfer])
- | HappyAbsSyn20 (Transfer)
- | HappyAbsSyn22 (ModBody)
- | HappyAbsSyn23 (ModType)
- | HappyAbsSyn25 ([TopDef])
- | HappyAbsSyn26 (Extend)
- | HappyAbsSyn27 ([Open])
- | HappyAbsSyn28 (Opens)
- | HappyAbsSyn29 (Open)
- | HappyAbsSyn30 (ComplMod)
- | HappyAbsSyn31 (QualOpen)
- | HappyAbsSyn32 ([Included])
- | HappyAbsSyn33 (Included)
- | HappyAbsSyn34 (Def)
- | HappyAbsSyn35 (TopDef)
- | HappyAbsSyn36 (CatDef)
- | HappyAbsSyn37 (FunDef)
- | HappyAbsSyn38 (DataDef)
- | HappyAbsSyn39 (DataConstr)
- | HappyAbsSyn40 ([DataConstr])
- | HappyAbsSyn41 (ParDef)
- | HappyAbsSyn42 (ParConstr)
- | HappyAbsSyn43 (PrintDef)
- | HappyAbsSyn44 (FlagDef)
- | HappyAbsSyn45 ([Def])
- | HappyAbsSyn46 ([CatDef])
- | HappyAbsSyn47 ([FunDef])
- | HappyAbsSyn48 ([DataDef])
- | HappyAbsSyn49 ([ParDef])
- | HappyAbsSyn50 ([PrintDef])
- | HappyAbsSyn51 ([FlagDef])
- | HappyAbsSyn52 ([ParConstr])
- | HappyAbsSyn53 ([PIdent])
- | HappyAbsSyn54 (Name)
- | HappyAbsSyn55 ([Name])
- | HappyAbsSyn56 (LocDef)
- | HappyAbsSyn57 ([LocDef])
- | HappyAbsSyn58 (Exp)
- | HappyAbsSyn65 ([Exp])
- | HappyAbsSyn66 (Exps)
- | HappyAbsSyn67 (Patt)
- | HappyAbsSyn70 (PattAss)
- | HappyAbsSyn71 (Label)
- | HappyAbsSyn72 (Sort)
- | HappyAbsSyn73 ([PattAss])
- | HappyAbsSyn74 ([Patt])
- | HappyAbsSyn75 (Bind)
- | HappyAbsSyn76 ([Bind])
- | HappyAbsSyn77 (Decl)
- | HappyAbsSyn78 (TupleComp)
- | HappyAbsSyn79 (PattTupleComp)
- | HappyAbsSyn80 ([TupleComp])
- | HappyAbsSyn81 ([PattTupleComp])
- | HappyAbsSyn82 (Case)
- | HappyAbsSyn83 ([Case])
- | HappyAbsSyn84 (Equation)
- | HappyAbsSyn85 ([Equation])
- | HappyAbsSyn86 (Altern)
- | HappyAbsSyn87 ([Altern])
- | HappyAbsSyn88 (DDecl)
- | HappyAbsSyn89 ([DDecl])
- | HappyAbsSyn90 (OldGrammar)
- | HappyAbsSyn91 (Include)
- | HappyAbsSyn92 (FileName)
- | HappyAbsSyn93 ([FileName])
-
-type HappyReduction m =
- Int#
- -> (Token)
- -> HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> m HappyAbsSyn)
- -> [HappyState (Token) (HappyStk HappyAbsSyn -> [(Token)] -> m HappyAbsSyn)]
- -> HappyStk HappyAbsSyn
- -> [(Token)] -> m HappyAbsSyn
-
-action_0,
- action_1,
- action_2,
- action_3,
- action_4,
- action_5,
- action_6,
- action_7,
- action_8,
- action_9,
- action_10,
- action_11,
- action_12,
- action_13,
- action_14,
- action_15,
- action_16,
- action_17,
- action_18,
- action_19,
- action_20,
- action_21,
- action_22,
- action_23,
- action_24,
- action_25,
- action_26,
- action_27,
- action_28,
- action_29,
- action_30,
- action_31,
- action_32,
- action_33,
- action_34,
- action_35,
- action_36,
- action_37,
- action_38,
- action_39,
- action_40,
- action_41,
- action_42,
- action_43,
- action_44,
- action_45,
- action_46,
- action_47,
- action_48,
- action_49,
- action_50,
- action_51,
- action_52,
- action_53,
- action_54,
- action_55,
- action_56,
- action_57,
- action_58,
- action_59,
- action_60,
- action_61,
- action_62,
- action_63,
- action_64,
- action_65,
- action_66,
- action_67,
- action_68,
- action_69,
- action_70,
- action_71,
- action_72,
- action_73,
- action_74,
- action_75,
- action_76,
- action_77,
- action_78,
- action_79,
- action_80,
- action_81,
- action_82,
- action_83,
- action_84,
- action_85,
- action_86,
- action_87,
- action_88,
- action_89,
- action_90,
- action_91,
- action_92,
- action_93,
- action_94,
- action_95,
- action_96,
- action_97,
- action_98,
- action_99,
- action_100,
- action_101,
- action_102,
- action_103,
- action_104,
- action_105,
- action_106,
- action_107,
- action_108,
- action_109,
- action_110,
- action_111,
- action_112,
- action_113,
- action_114,
- action_115,
- action_116,
- action_117,
- action_118,
- action_119,
- action_120,
- action_121,
- action_122,
- action_123,
- action_124,
- action_125,
- action_126,
- action_127,
- action_128,
- action_129,
- action_130,
- action_131,
- action_132,
- action_133,
- action_134,
- action_135,
- action_136,
- action_137,
- action_138,
- action_139,
- action_140,
- action_141,
- action_142,
- action_143,
- action_144,
- action_145,
- action_146,
- action_147,
- action_148,
- action_149,
- action_150,
- action_151,
- action_152,
- action_153,
- action_154,
- action_155,
- action_156,
- action_157,
- action_158,
- action_159,
- action_160,
- action_161,
- action_162,
- action_163,
- action_164,
- action_165,
- action_166,
- action_167,
- action_168,
- action_169,
- action_170,
- action_171,
- action_172,
- action_173,
- action_174,
- action_175,
- action_176,
- action_177,
- action_178,
- action_179,
- action_180,
- action_181,
- action_182,
- action_183,
- action_184,
- action_185,
- action_186,
- action_187,
- action_188,
- action_189,
- action_190,
- action_191,
- action_192,
- action_193,
- action_194,
- action_195,
- action_196,
- action_197,
- action_198,
- action_199,
- action_200,
- action_201,
- action_202,
- action_203,
- action_204,
- action_205,
- action_206,
- action_207,
- action_208,
- action_209,
- action_210,
- action_211,
- action_212,
- action_213,
- action_214,
- action_215,
- action_216,
- action_217,
- action_218,
- action_219,
- action_220,
- action_221,
- action_222,
- action_223,
- action_224,
- action_225,
- action_226,
- action_227,
- action_228,
- action_229,
- action_230,
- action_231,
- action_232,
- action_233,
- action_234,
- action_235,
- action_236,
- action_237,
- action_238,
- action_239,
- action_240,
- action_241,
- action_242,
- action_243,
- action_244,
- action_245,
- action_246,
- action_247,
- action_248,
- action_249,
- action_250,
- action_251,
- action_252,
- action_253,
- action_254,
- action_255,
- action_256,
- action_257,
- action_258,
- action_259,
- action_260,
- action_261,
- action_262,
- action_263,
- action_264,
- action_265,
- action_266,
- action_267,
- action_268,
- action_269,
- action_270,
- action_271,
- action_272,
- action_273,
- action_274,
- action_275,
- action_276,
- action_277,
- action_278,
- action_279,
- action_280,
- action_281,
- action_282,
- action_283,
- action_284,
- action_285,
- action_286,
- action_287,
- action_288,
- action_289,
- action_290,
- action_291,
- action_292,
- action_293,
- action_294,
- action_295,
- action_296,
- action_297,
- action_298,
- action_299,
- action_300,
- action_301,
- action_302,
- action_303,
- action_304,
- action_305,
- action_306,
- action_307,
- action_308,
- action_309,
- action_310,
- action_311,
- action_312,
- action_313,
- action_314,
- action_315,
- action_316,
- action_317,
- action_318,
- action_319,
- action_320,
- action_321,
- action_322,
- action_323,
- action_324,
- action_325,
- action_326,
- action_327,
- action_328,
- action_329,
- action_330,
- action_331,
- action_332,
- action_333,
- action_334,
- action_335,
- action_336,
- action_337,
- action_338,
- action_339,
- action_340,
- action_341,
- action_342,
- action_343,
- action_344,
- action_345,
- action_346,
- action_347,
- action_348,
- action_349,
- action_350,
- action_351,
- action_352,
- action_353,
- action_354,
- action_355,
- action_356,
- action_357,
- action_358,
- action_359,
- action_360,
- action_361,
- action_362,
- action_363,
- action_364,
- action_365,
- action_366,
- action_367,
- action_368,
- action_369,
- action_370,
- action_371,
- action_372,
- action_373,
- action_374,
- action_375,
- action_376,
- action_377,
- action_378,
- action_379,
- action_380,
- action_381,
- action_382,
- action_383,
- action_384,
- action_385,
- action_386,
- action_387,
- action_388,
- action_389,
- action_390,
- action_391,
- action_392,
- action_393,
- action_394,
- action_395,
- action_396,
- action_397,
- action_398,
- action_399,
- action_400,
- action_401,
- action_402,
- action_403,
- action_404,
- action_405,
- action_406,
- action_407,
- action_408,
- action_409,
- action_410,
- action_411,
- action_412,
- action_413,
- action_414,
- action_415,
- action_416,
- action_417,
- action_418,
- action_419,
- action_420,
- action_421,
- action_422,
- action_423,
- action_424,
- action_425,
- action_426,
- action_427,
- action_428,
- action_429,
- action_430,
- action_431,
- action_432,
- action_433,
- action_434,
- action_435,
- action_436,
- action_437,
- action_438,
- action_439,
- action_440,
- action_441,
- action_442,
- action_443,
- action_444,
- action_445,
- action_446,
- action_447,
- action_448,
- action_449,
- action_450,
- action_451,
- action_452,
- action_453,
- action_454,
- action_455,
- action_456,
- action_457,
- action_458,
- action_459,
- action_460,
- action_461,
- action_462,
- action_463,
- action_464,
- action_465,
- action_466,
- action_467,
- action_468,
- action_469,
- action_470,
- action_471,
- action_472,
- action_473,
- action_474,
- action_475,
- action_476,
- action_477,
- action_478,
- action_479,
- action_480,
- action_481,
- action_482,
- action_483,
- action_484,
- action_485,
- action_486,
- action_487,
- action_488,
- action_489,
- action_490,
- action_491,
- action_492,
- action_493,
- action_494,
- action_495,
- action_496,
- action_497,
- action_498,
- action_499,
- action_500,
- action_501,
- action_502,
- action_503,
- action_504,
- action_505,
- action_506,
- action_507,
- action_508,
- action_509,
- action_510,
- action_511,
- action_512,
- action_513,
- action_514,
- action_515,
- action_516,
- action_517,
- action_518,
- action_519,
- action_520,
- action_521,
- action_522,
- action_523,
- action_524,
- action_525,
- action_526,
- action_527,
- action_528,
- action_529,
- action_530,
- action_531,
- action_532,
- action_533,
- action_534,
- action_535,
- action_536,
- action_537,
- action_538,
- action_539,
- action_540,
- action_541,
- action_542,
- action_543,
- action_544,
- action_545,
- action_546,
- action_547 :: () => Int# -> HappyReduction (Err)
-
-happyReduce_5,
- happyReduce_6,
- happyReduce_7,
- happyReduce_8,
- happyReduce_9,
- happyReduce_10,
- happyReduce_11,
- happyReduce_12,
- happyReduce_13,
- happyReduce_14,
- happyReduce_15,
- happyReduce_16,
- happyReduce_17,
- happyReduce_18,
- happyReduce_19,
- happyReduce_20,
- happyReduce_21,
- happyReduce_22,
- happyReduce_23,
- happyReduce_24,
- happyReduce_25,
- happyReduce_26,
- happyReduce_27,
- happyReduce_28,
- happyReduce_29,
- happyReduce_30,
- happyReduce_31,
- happyReduce_32,
- happyReduce_33,
- happyReduce_34,
- happyReduce_35,
- happyReduce_36,
- happyReduce_37,
- happyReduce_38,
- happyReduce_39,
- happyReduce_40,
- happyReduce_41,
- happyReduce_42,
- happyReduce_43,
- happyReduce_44,
- happyReduce_45,
- happyReduce_46,
- happyReduce_47,
- happyReduce_48,
- happyReduce_49,
- happyReduce_50,
- happyReduce_51,
- happyReduce_52,
- happyReduce_53,
- happyReduce_54,
- happyReduce_55,
- happyReduce_56,
- happyReduce_57,
- happyReduce_58,
- happyReduce_59,
- happyReduce_60,
- happyReduce_61,
- happyReduce_62,
- happyReduce_63,
- happyReduce_64,
- happyReduce_65,
- happyReduce_66,
- happyReduce_67,
- happyReduce_68,
- happyReduce_69,
- happyReduce_70,
- happyReduce_71,
- happyReduce_72,
- happyReduce_73,
- happyReduce_74,
- happyReduce_75,
- happyReduce_76,
- happyReduce_77,
- happyReduce_78,
- happyReduce_79,
- happyReduce_80,
- happyReduce_81,
- happyReduce_82,
- happyReduce_83,
- happyReduce_84,
- happyReduce_85,
- happyReduce_86,
- happyReduce_87,
- happyReduce_88,
- happyReduce_89,
- happyReduce_90,
- happyReduce_91,
- happyReduce_92,
- happyReduce_93,
- happyReduce_94,
- happyReduce_95,
- happyReduce_96,
- happyReduce_97,
- happyReduce_98,
- happyReduce_99,
- happyReduce_100,
- happyReduce_101,
- happyReduce_102,
- happyReduce_103,
- happyReduce_104,
- happyReduce_105,
- happyReduce_106,
- happyReduce_107,
- happyReduce_108,
- happyReduce_109,
- happyReduce_110,
- happyReduce_111,
- happyReduce_112,
- happyReduce_113,
- happyReduce_114,
- happyReduce_115,
- happyReduce_116,
- happyReduce_117,
- happyReduce_118,
- happyReduce_119,
- happyReduce_120,
- happyReduce_121,
- happyReduce_122,
- happyReduce_123,
- happyReduce_124,
- happyReduce_125,
- happyReduce_126,
- happyReduce_127,
- happyReduce_128,
- happyReduce_129,
- happyReduce_130,
- happyReduce_131,
- happyReduce_132,
- happyReduce_133,
- happyReduce_134,
- happyReduce_135,
- happyReduce_136,
- happyReduce_137,
- happyReduce_138,
- happyReduce_139,
- happyReduce_140,
- happyReduce_141,
- happyReduce_142,
- happyReduce_143,
- happyReduce_144,
- happyReduce_145,
- happyReduce_146,
- happyReduce_147,
- happyReduce_148,
- happyReduce_149,
- happyReduce_150,
- happyReduce_151,
- happyReduce_152,
- happyReduce_153,
- happyReduce_154,
- happyReduce_155,
- happyReduce_156,
- happyReduce_157,
- happyReduce_158,
- happyReduce_159,
- happyReduce_160,
- happyReduce_161,
- happyReduce_162,
- happyReduce_163,
- happyReduce_164,
- happyReduce_165,
- happyReduce_166,
- happyReduce_167,
- happyReduce_168,
- happyReduce_169,
- happyReduce_170,
- happyReduce_171,
- happyReduce_172,
- happyReduce_173,
- happyReduce_174,
- happyReduce_175,
- happyReduce_176,
- happyReduce_177,
- happyReduce_178,
- happyReduce_179,
- happyReduce_180,
- happyReduce_181,
- happyReduce_182,
- happyReduce_183,
- happyReduce_184,
- happyReduce_185,
- happyReduce_186,
- happyReduce_187,
- happyReduce_188,
- happyReduce_189,
- happyReduce_190,
- happyReduce_191,
- happyReduce_192,
- happyReduce_193,
- happyReduce_194,
- happyReduce_195,
- happyReduce_196,
- happyReduce_197,
- happyReduce_198,
- happyReduce_199,
- happyReduce_200,
- happyReduce_201,
- happyReduce_202,
- happyReduce_203,
- happyReduce_204,
- happyReduce_205,
- happyReduce_206,
- happyReduce_207,
- happyReduce_208,
- happyReduce_209,
- happyReduce_210,
- happyReduce_211,
- happyReduce_212,
- happyReduce_213,
- happyReduce_214,
- happyReduce_215,
- happyReduce_216,
- happyReduce_217,
- happyReduce_218,
- happyReduce_219,
- happyReduce_220,
- happyReduce_221,
- happyReduce_222,
- happyReduce_223,
- happyReduce_224,
- happyReduce_225,
- happyReduce_226,
- happyReduce_227,
- happyReduce_228,
- happyReduce_229,
- happyReduce_230,
- happyReduce_231,
- happyReduce_232,
- happyReduce_233,
- happyReduce_234,
- happyReduce_235,
- happyReduce_236,
- happyReduce_237,
- happyReduce_238,
- happyReduce_239,
- happyReduce_240,
- happyReduce_241,
- happyReduce_242,
- happyReduce_243,
- happyReduce_244,
- happyReduce_245,
- happyReduce_246,
- happyReduce_247,
- happyReduce_248,
- happyReduce_249,
- happyReduce_250,
- happyReduce_251,
- happyReduce_252,
- happyReduce_253,
- happyReduce_254,
- happyReduce_255,
- happyReduce_256,
- happyReduce_257,
- happyReduce_258,
- happyReduce_259,
- happyReduce_260,
- happyReduce_261,
- happyReduce_262,
- happyReduce_263,
- happyReduce_264,
- happyReduce_265,
- happyReduce_266,
- happyReduce_267,
- happyReduce_268,
- happyReduce_269,
- happyReduce_270,
- happyReduce_271,
- happyReduce_272,
- happyReduce_273,
- happyReduce_274 :: () => HappyReduction (Err)
-
-action_0 (13#) = happyGoto action_58
-action_0 (14#) = happyGoto action_59
-action_0 x = happyTcHack x happyReduce_11
-
-action_1 (139#) = happyShift action_57
-action_1 (142#) = happyShift action_9
-action_1 (15#) = happyGoto action_55
-action_1 (30#) = happyGoto action_56
-action_1 x = happyTcHack x happyReduce_60
-
-action_2 (141#) = happyShift action_54
-action_2 (90#) = happyGoto action_52
-action_2 (91#) = happyGoto action_53
-action_2 x = happyTcHack x happyReduce_265
-
-action_3 (96#) = happyShift action_24
-action_3 (98#) = happyShift action_25
-action_3 (104#) = happyShift action_26
-action_3 (109#) = happyShift action_27
-action_3 (110#) = happyShift action_28
-action_3 (111#) = happyShift action_29
-action_3 (114#) = happyShift action_30
-action_3 (119#) = happyShift action_31
-action_3 (124#) = happyShift action_32
-action_3 (125#) = happyShift action_33
-action_3 (126#) = happyShift action_34
-action_3 (127#) = happyShift action_35
-action_3 (128#) = happyShift action_36
-action_3 (129#) = happyShift action_37
-action_3 (131#) = happyShift action_38
-action_3 (134#) = happyShift action_39
-action_3 (137#) = happyShift action_40
-action_3 (140#) = happyShift action_41
-action_3 (145#) = happyShift action_42
-action_3 (156#) = happyShift action_43
-action_3 (157#) = happyShift action_44
-action_3 (161#) = happyShift action_45
-action_3 (162#) = happyShift action_46
-action_3 (167#) = happyShift action_47
-action_3 (170#) = happyShift action_6
-action_3 (171#) = happyShift action_48
-action_3 (172#) = happyShift action_49
-action_3 (173#) = happyShift action_50
-action_3 (174#) = happyShift action_51
-action_3 (8#) = happyGoto action_10
-action_3 (9#) = happyGoto action_11
-action_3 (10#) = happyGoto action_12
-action_3 (11#) = happyGoto action_13
-action_3 (12#) = happyGoto action_14
-action_3 (58#) = happyGoto action_15
-action_3 (59#) = happyGoto action_16
-action_3 (60#) = happyGoto action_17
-action_3 (61#) = happyGoto action_18
-action_3 (62#) = happyGoto action_19
-action_3 (63#) = happyGoto action_20
-action_3 (64#) = happyGoto action_21
-action_3 (72#) = happyGoto action_22
-action_3 (77#) = happyGoto action_23
-action_3 x = happyTcHack x happyFail
-
-action_4 (142#) = happyShift action_9
-action_4 (21#) = happyGoto action_7
-action_4 (30#) = happyGoto action_8
-action_4 x = happyTcHack x happyReduce_60
-
-action_5 (170#) = happyShift action_6
-action_5 x = happyTcHack x happyFail
-
-action_6 x = happyTcHack x happyReduce_5
-
-action_7 (1#) = happyAccept
-action_7 x = happyTcHack x happyFail
-
-action_8 (130#) = happyShift action_63
-action_8 (133#) = happyShift action_64
-action_8 (143#) = happyShift action_65
-action_8 (144#) = happyShift action_66
-action_8 (159#) = happyShift action_67
-action_8 (164#) = happyShift action_68
-action_8 (23#) = happyGoto action_137
-action_8 x = happyTcHack x happyFail
-
-action_9 x = happyTcHack x happyReduce_61
-
-action_10 x = happyTcHack x happyReduce_145
-
-action_11 x = happyTcHack x happyReduce_144
-
-action_12 x = happyTcHack x happyReduce_146
-
-action_13 x = happyTcHack x happyReduce_157
-
-action_14 (113#) = happyShift action_136
-action_14 x = happyTcHack x happyReduce_140
-
-action_15 x = happyTcHack x happyReduce_161
-
-action_16 (107#) = happyShift action_135
-action_16 x = happyTcHack x happyReduce_173
-
-action_17 (96#) = happyShift action_24
-action_17 (98#) = happyShift action_82
-action_17 (101#) = happyReduce_240
-action_17 (104#) = happyShift action_26
-action_17 (109#) = happyShift action_27
-action_17 (110#) = happyShift action_28
-action_17 (111#) = happyShift action_29
-action_17 (125#) = happyShift action_33
-action_17 (126#) = happyShift action_34
-action_17 (127#) = happyShift action_35
-action_17 (128#) = happyShift action_36
-action_17 (129#) = happyShift action_37
-action_17 (134#) = happyShift action_39
-action_17 (170#) = happyShift action_6
-action_17 (171#) = happyShift action_48
-action_17 (172#) = happyShift action_49
-action_17 (173#) = happyShift action_50
-action_17 (174#) = happyShift action_51
-action_17 (8#) = happyGoto action_10
-action_17 (9#) = happyGoto action_11
-action_17 (10#) = happyGoto action_12
-action_17 (11#) = happyGoto action_13
-action_17 (12#) = happyGoto action_79
-action_17 (58#) = happyGoto action_15
-action_17 (59#) = happyGoto action_134
-action_17 (72#) = happyGoto action_22
-action_17 x = happyTcHack x happyReduce_178
-
-action_18 (102#) = happyShift action_129
-action_18 (115#) = happyShift action_130
-action_18 (116#) = happyShift action_131
-action_18 (120#) = happyShift action_132
-action_18 (168#) = happyShift action_133
-action_18 x = happyTcHack x happyReduce_192
-
-action_19 (118#) = happyShift action_128
-action_19 x = happyTcHack x happyReduce_191
-
-action_20 (176#) = happyAccept
-action_20 x = happyTcHack x happyFail
-
-action_21 (117#) = happyShift action_127
-action_21 x = happyTcHack x happyReduce_180
-
-action_22 x = happyTcHack x happyReduce_143
-
-action_23 (101#) = happyShift action_126
-action_23 x = happyTcHack x happyFail
-
-action_24 (174#) = happyShift action_51
-action_24 (12#) = happyGoto action_124
-action_24 (53#) = happyGoto action_88
-action_24 (56#) = happyGoto action_89
-action_24 (57#) = happyGoto action_125
-action_24 x = happyTcHack x happyReduce_137
-
-action_25 (96#) = happyShift action_24
-action_25 (98#) = happyShift action_25
-action_25 (104#) = happyShift action_26
-action_25 (109#) = happyShift action_27
-action_25 (110#) = happyShift action_28
-action_25 (111#) = happyShift action_29
-action_25 (114#) = happyShift action_30
-action_25 (119#) = happyShift action_31
-action_25 (121#) = happyShift action_100
-action_25 (124#) = happyShift action_32
-action_25 (125#) = happyShift action_33
-action_25 (126#) = happyShift action_34
-action_25 (127#) = happyShift action_35
-action_25 (128#) = happyShift action_36
-action_25 (129#) = happyShift action_37
-action_25 (131#) = happyShift action_38
-action_25 (134#) = happyShift action_39
-action_25 (137#) = happyShift action_40
-action_25 (140#) = happyShift action_123
-action_25 (145#) = happyShift action_42
-action_25 (156#) = happyShift action_43
-action_25 (157#) = happyShift action_44
-action_25 (161#) = happyShift action_45
-action_25 (162#) = happyShift action_46
-action_25 (167#) = happyShift action_47
-action_25 (170#) = happyShift action_6
-action_25 (171#) = happyShift action_48
-action_25 (172#) = happyShift action_49
-action_25 (173#) = happyShift action_50
-action_25 (174#) = happyShift action_51
-action_25 (8#) = happyGoto action_10
-action_25 (9#) = happyGoto action_11
-action_25 (10#) = happyGoto action_12
-action_25 (11#) = happyGoto action_13
-action_25 (12#) = happyGoto action_120
-action_25 (58#) = happyGoto action_15
-action_25 (59#) = happyGoto action_16
-action_25 (60#) = happyGoto action_17
-action_25 (61#) = happyGoto action_18
-action_25 (62#) = happyGoto action_19
-action_25 (63#) = happyGoto action_121
-action_25 (64#) = happyGoto action_21
-action_25 (72#) = happyGoto action_22
-action_25 (75#) = happyGoto action_97
-action_25 (76#) = happyGoto action_122
-action_25 (77#) = happyGoto action_23
-action_25 x = happyTcHack x happyReduce_236
-
-action_26 (105#) = happyShift action_119
-action_26 (171#) = happyShift action_48
-action_26 (174#) = happyShift action_51
-action_26 (9#) = happyGoto action_117
-action_26 (12#) = happyGoto action_118
-action_26 x = happyTcHack x happyFail
-
-action_27 (174#) = happyShift action_51
-action_27 (12#) = happyGoto action_116
-action_27 x = happyTcHack x happyFail
-
-action_28 x = happyTcHack x happyReduce_147
-
-action_29 (96#) = happyShift action_24
-action_29 (98#) = happyShift action_25
-action_29 (104#) = happyShift action_26
-action_29 (109#) = happyShift action_27
-action_29 (110#) = happyShift action_28
-action_29 (111#) = happyShift action_29
-action_29 (114#) = happyShift action_30
-action_29 (119#) = happyShift action_31
-action_29 (124#) = happyShift action_32
-action_29 (125#) = happyShift action_33
-action_29 (126#) = happyShift action_34
-action_29 (127#) = happyShift action_35
-action_29 (128#) = happyShift action_36
-action_29 (129#) = happyShift action_37
-action_29 (131#) = happyShift action_38
-action_29 (134#) = happyShift action_39
-action_29 (137#) = happyShift action_40
-action_29 (140#) = happyShift action_41
-action_29 (145#) = happyShift action_42
-action_29 (156#) = happyShift action_43
-action_29 (157#) = happyShift action_44
-action_29 (161#) = happyShift action_45
-action_29 (162#) = happyShift action_46
-action_29 (167#) = happyShift action_47
-action_29 (170#) = happyShift action_6
-action_29 (171#) = happyShift action_48
-action_29 (172#) = happyShift action_49
-action_29 (173#) = happyShift action_50
-action_29 (174#) = happyShift action_51
-action_29 (8#) = happyGoto action_10
-action_29 (9#) = happyGoto action_11
-action_29 (10#) = happyGoto action_12
-action_29 (11#) = happyGoto action_13
-action_29 (12#) = happyGoto action_14
-action_29 (58#) = happyGoto action_15
-action_29 (59#) = happyGoto action_16
-action_29 (60#) = happyGoto action_17
-action_29 (61#) = happyGoto action_18
-action_29 (62#) = happyGoto action_19
-action_29 (63#) = happyGoto action_113
-action_29 (64#) = happyGoto action_21
-action_29 (72#) = happyGoto action_22
-action_29 (77#) = happyGoto action_23
-action_29 (78#) = happyGoto action_114
-action_29 (80#) = happyGoto action_115
-action_29 x = happyTcHack x happyReduce_243
-
-action_30 (96#) = happyShift action_106
-action_30 (98#) = happyShift action_107
-action_30 (104#) = happyShift action_108
-action_30 (110#) = happyShift action_109
-action_30 (111#) = happyShift action_110
-action_30 (114#) = happyShift action_111
-action_30 (121#) = happyShift action_112
-action_30 (170#) = happyShift action_6
-action_30 (171#) = happyShift action_48
-action_30 (172#) = happyShift action_49
-action_30 (174#) = happyShift action_51
-action_30 (8#) = happyGoto action_101
-action_30 (9#) = happyGoto action_102
-action_30 (10#) = happyGoto action_103
-action_30 (12#) = happyGoto action_104
-action_30 (67#) = happyGoto action_105
-action_30 x = happyTcHack x happyFail
-
-action_31 (119#) = happyShift action_99
-action_31 (121#) = happyShift action_100
-action_31 (174#) = happyShift action_51
-action_31 (12#) = happyGoto action_96
-action_31 (75#) = happyGoto action_97
-action_31 (76#) = happyGoto action_98
-action_31 x = happyTcHack x happyReduce_236
-
-action_32 (174#) = happyShift action_51
-action_32 (12#) = happyGoto action_95
-action_32 x = happyTcHack x happyFail
-
-action_33 x = happyTcHack x happyReduce_225
-
-action_34 x = happyTcHack x happyReduce_227
-
-action_35 x = happyTcHack x happyReduce_228
-
-action_36 x = happyTcHack x happyReduce_226
-
-action_37 x = happyTcHack x happyReduce_224
-
-action_38 (96#) = happyShift action_24
-action_38 (98#) = happyShift action_25
-action_38 (104#) = happyShift action_26
-action_38 (109#) = happyShift action_27
-action_38 (110#) = happyShift action_28
-action_38 (111#) = happyShift action_29
-action_38 (114#) = happyShift action_30
-action_38 (119#) = happyShift action_31
-action_38 (124#) = happyShift action_32
-action_38 (125#) = happyShift action_33
-action_38 (126#) = happyShift action_34
-action_38 (127#) = happyShift action_35
-action_38 (128#) = happyShift action_36
-action_38 (129#) = happyShift action_37
-action_38 (131#) = happyShift action_38
-action_38 (134#) = happyShift action_39
-action_38 (137#) = happyShift action_40
-action_38 (140#) = happyShift action_41
-action_38 (145#) = happyShift action_42
-action_38 (156#) = happyShift action_43
-action_38 (157#) = happyShift action_44
-action_38 (161#) = happyShift action_45
-action_38 (162#) = happyShift action_46
-action_38 (167#) = happyShift action_47
-action_38 (170#) = happyShift action_6
-action_38 (171#) = happyShift action_48
-action_38 (172#) = happyShift action_49
-action_38 (173#) = happyShift action_50
-action_38 (174#) = happyShift action_51
-action_38 (8#) = happyGoto action_10
-action_38 (9#) = happyGoto action_11
-action_38 (10#) = happyGoto action_12
-action_38 (11#) = happyGoto action_13
-action_38 (12#) = happyGoto action_14
-action_38 (58#) = happyGoto action_15
-action_38 (59#) = happyGoto action_16
-action_38 (60#) = happyGoto action_17
-action_38 (61#) = happyGoto action_18
-action_38 (62#) = happyGoto action_19
-action_38 (63#) = happyGoto action_94
-action_38 (64#) = happyGoto action_21
-action_38 (72#) = happyGoto action_22
-action_38 (77#) = happyGoto action_23
-action_38 x = happyTcHack x happyFail
-
-action_39 x = happyTcHack x happyReduce_149
-
-action_40 (96#) = happyShift action_93
-action_40 x = happyTcHack x happyFail
-
-action_41 (96#) = happyShift action_24
-action_41 (98#) = happyShift action_82
-action_41 (104#) = happyShift action_26
-action_41 (109#) = happyShift action_27
-action_41 (110#) = happyShift action_28
-action_41 (111#) = happyShift action_29
-action_41 (125#) = happyShift action_33
-action_41 (126#) = happyShift action_34
-action_41 (127#) = happyShift action_35
-action_41 (128#) = happyShift action_36
-action_41 (129#) = happyShift action_37
-action_41 (134#) = happyShift action_39
-action_41 (170#) = happyShift action_6
-action_41 (171#) = happyShift action_48
-action_41 (172#) = happyShift action_49
-action_41 (173#) = happyShift action_50
-action_41 (174#) = happyShift action_51
-action_41 (8#) = happyGoto action_10
-action_41 (9#) = happyGoto action_11
-action_41 (10#) = happyGoto action_12
-action_41 (11#) = happyGoto action_13
-action_41 (12#) = happyGoto action_79
-action_41 (58#) = happyGoto action_15
-action_41 (59#) = happyGoto action_92
-action_41 (72#) = happyGoto action_22
-action_41 x = happyTcHack x happyFail
-
-action_42 (96#) = happyShift action_91
-action_42 (174#) = happyShift action_51
-action_42 (12#) = happyGoto action_87
-action_42 (53#) = happyGoto action_88
-action_42 (56#) = happyGoto action_89
-action_42 (57#) = happyGoto action_90
-action_42 x = happyTcHack x happyReduce_137
-
-action_43 (96#) = happyShift action_24
-action_43 (98#) = happyShift action_82
-action_43 (104#) = happyShift action_26
-action_43 (109#) = happyShift action_27
-action_43 (110#) = happyShift action_28
-action_43 (111#) = happyShift action_29
-action_43 (125#) = happyShift action_33
-action_43 (126#) = happyShift action_34
-action_43 (127#) = happyShift action_35
-action_43 (128#) = happyShift action_36
-action_43 (129#) = happyShift action_37
-action_43 (134#) = happyShift action_39
-action_43 (170#) = happyShift action_6
-action_43 (171#) = happyShift action_48
-action_43 (172#) = happyShift action_49
-action_43 (173#) = happyShift action_50
-action_43 (174#) = happyShift action_51
-action_43 (8#) = happyGoto action_10
-action_43 (9#) = happyGoto action_11
-action_43 (10#) = happyGoto action_12
-action_43 (11#) = happyGoto action_13
-action_43 (12#) = happyGoto action_79
-action_43 (58#) = happyGoto action_15
-action_43 (59#) = happyGoto action_86
-action_43 (72#) = happyGoto action_22
-action_43 x = happyTcHack x happyFail
-
-action_44 (96#) = happyShift action_85
-action_44 x = happyTcHack x happyFail
-
-action_45 (96#) = happyShift action_84
-action_45 x = happyTcHack x happyFail
-
-action_46 (96#) = happyShift action_81
-action_46 (98#) = happyShift action_82
-action_46 (104#) = happyShift action_26
-action_46 (109#) = happyShift action_83
-action_46 (110#) = happyShift action_28
-action_46 (111#) = happyShift action_29
-action_46 (125#) = happyShift action_33
-action_46 (126#) = happyShift action_34
-action_46 (127#) = happyShift action_35
-action_46 (128#) = happyShift action_36
-action_46 (129#) = happyShift action_37
-action_46 (134#) = happyShift action_39
-action_46 (170#) = happyShift action_6
-action_46 (171#) = happyShift action_48
-action_46 (172#) = happyShift action_49
-action_46 (173#) = happyShift action_50
-action_46 (174#) = happyShift action_51
-action_46 (8#) = happyGoto action_10
-action_46 (9#) = happyGoto action_11
-action_46 (10#) = happyGoto action_12
-action_46 (11#) = happyGoto action_13
-action_46 (12#) = happyGoto action_79
-action_46 (58#) = happyGoto action_80
-action_46 (72#) = happyGoto action_22
-action_46 x = happyTcHack x happyFail
-
-action_47 (96#) = happyShift action_78
-action_47 x = happyTcHack x happyFail
-
-action_48 x = happyTcHack x happyReduce_6
-
-action_49 x = happyTcHack x happyReduce_7
-
-action_50 x = happyTcHack x happyReduce_8
-
-action_51 x = happyTcHack x happyReduce_9
-
-action_52 (176#) = happyAccept
-action_52 x = happyTcHack x happyFail
-
-action_53 (25#) = happyGoto action_77
-action_53 x = happyTcHack x happyReduce_48
-
-action_54 (106#) = happyShift action_74
-action_54 (107#) = happyShift action_75
-action_54 (123#) = happyShift action_76
-action_54 (171#) = happyShift action_48
-action_54 (174#) = happyShift action_51
-action_54 (9#) = happyGoto action_70
-action_54 (12#) = happyGoto action_71
-action_54 (92#) = happyGoto action_72
-action_54 (93#) = happyGoto action_73
-action_54 x = happyTcHack x happyFail
-
-action_55 (94#) = happyShift action_69
-action_55 (176#) = happyAccept
-action_55 x = happyTcHack x happyFail
-
-action_56 (130#) = happyShift action_63
-action_56 (133#) = happyShift action_64
-action_56 (143#) = happyShift action_65
-action_56 (144#) = happyShift action_66
-action_56 (159#) = happyShift action_67
-action_56 (164#) = happyShift action_68
-action_56 (23#) = happyGoto action_62
-action_56 x = happyTcHack x happyFail
-
-action_57 (174#) = happyShift action_51
-action_57 (12#) = happyGoto action_61
-action_57 x = happyTcHack x happyFail
-
-action_58 (176#) = happyAccept
-action_58 x = happyTcHack x happyFail
-
-action_59 (139#) = happyShift action_57
-action_59 (142#) = happyShift action_9
-action_59 (176#) = happyReduce_10
-action_59 (15#) = happyGoto action_60
-action_59 (30#) = happyGoto action_56
-action_59 x = happyTcHack x happyReduce_60
-
-action_60 (94#) = happyShift action_69
-action_60 x = happyTcHack x happyReduce_12
-
-action_61 (95#) = happyShift action_239
-action_61 x = happyTcHack x happyFail
-
-action_62 (95#) = happyShift action_238
-action_62 x = happyTcHack x happyFail
-
-action_63 (174#) = happyShift action_51
-action_63 (12#) = happyGoto action_237
-action_63 x = happyTcHack x happyFail
-
-action_64 (174#) = happyShift action_51
-action_64 (12#) = happyGoto action_236
-action_64 x = happyTcHack x happyFail
-
-action_65 (174#) = happyShift action_51
-action_65 (12#) = happyGoto action_235
-action_65 x = happyTcHack x happyFail
-
-action_66 (174#) = happyShift action_51
-action_66 (12#) = happyGoto action_234
-action_66 x = happyTcHack x happyFail
-
-action_67 (174#) = happyShift action_51
-action_67 (12#) = happyGoto action_233
-action_67 x = happyTcHack x happyFail
-
-action_68 (174#) = happyShift action_51
-action_68 (12#) = happyGoto action_232
-action_68 x = happyTcHack x happyFail
-
-action_69 x = happyTcHack x happyReduce_13
-
-action_70 x = happyTcHack x happyReduce_267
-
-action_71 (106#) = happyShift action_74
-action_71 (107#) = happyShift action_75
-action_71 (123#) = happyShift action_76
-action_71 (171#) = happyShift action_48
-action_71 (174#) = happyShift action_51
-action_71 (9#) = happyGoto action_70
-action_71 (12#) = happyGoto action_71
-action_71 (92#) = happyGoto action_231
-action_71 x = happyTcHack x happyReduce_268
-
-action_72 (94#) = happyShift action_230
-action_72 x = happyTcHack x happyFail
-
-action_73 x = happyTcHack x happyReduce_266
-
-action_74 (106#) = happyShift action_74
-action_74 (107#) = happyShift action_75
-action_74 (123#) = happyShift action_76
-action_74 (171#) = happyShift action_48
-action_74 (174#) = happyShift action_51
-action_74 (9#) = happyGoto action_70
-action_74 (12#) = happyGoto action_71
-action_74 (92#) = happyGoto action_229
-action_74 x = happyTcHack x happyFail
-
-action_75 (106#) = happyShift action_74
-action_75 (107#) = happyShift action_75
-action_75 (123#) = happyShift action_76
-action_75 (171#) = happyShift action_48
-action_75 (174#) = happyShift action_51
-action_75 (9#) = happyGoto action_70
-action_75 (12#) = happyGoto action_71
-action_75 (92#) = happyGoto action_228
-action_75 x = happyTcHack x happyFail
-
-action_76 (106#) = happyShift action_74
-action_76 (107#) = happyShift action_75
-action_76 (123#) = happyShift action_76
-action_76 (171#) = happyShift action_48
-action_76 (174#) = happyShift action_51
-action_76 (9#) = happyGoto action_70
-action_76 (12#) = happyGoto action_71
-action_76 (92#) = happyGoto action_227
-action_76 x = happyTcHack x happyFail
-
-action_77 (132#) = happyShift action_210
-action_77 (134#) = happyShift action_211
-action_77 (135#) = happyShift action_212
-action_77 (136#) = happyShift action_213
-action_77 (138#) = happyShift action_214
-action_77 (146#) = happyShift action_215
-action_77 (147#) = happyShift action_216
-action_77 (148#) = happyShift action_217
-action_77 (149#) = happyShift action_218
-action_77 (152#) = happyShift action_219
-action_77 (154#) = happyShift action_220
-action_77 (155#) = happyShift action_221
-action_77 (156#) = happyShift action_222
-action_77 (158#) = happyShift action_223
-action_77 (163#) = happyShift action_224
-action_77 (164#) = happyShift action_225
-action_77 (166#) = happyShift action_226
-action_77 (35#) = happyGoto action_209
-action_77 x = happyTcHack x happyReduce_264
-
-action_78 (96#) = happyShift action_24
-action_78 (98#) = happyShift action_25
-action_78 (104#) = happyShift action_26
-action_78 (109#) = happyShift action_27
-action_78 (110#) = happyShift action_28
-action_78 (111#) = happyShift action_29
-action_78 (114#) = happyShift action_30
-action_78 (119#) = happyShift action_31
-action_78 (124#) = happyShift action_32
-action_78 (125#) = happyShift action_33
-action_78 (126#) = happyShift action_34
-action_78 (127#) = happyShift action_35
-action_78 (128#) = happyShift action_36
-action_78 (129#) = happyShift action_37
-action_78 (131#) = happyShift action_38
-action_78 (134#) = happyShift action_39
-action_78 (137#) = happyShift action_40
-action_78 (140#) = happyShift action_41
-action_78 (145#) = happyShift action_42
-action_78 (156#) = happyShift action_43
-action_78 (157#) = happyShift action_44
-action_78 (161#) = happyShift action_45
-action_78 (162#) = happyShift action_46
-action_78 (167#) = happyShift action_47
-action_78 (170#) = happyShift action_6
-action_78 (171#) = happyShift action_48
-action_78 (172#) = happyShift action_49
-action_78 (173#) = happyShift action_50
-action_78 (174#) = happyShift action_51
-action_78 (8#) = happyGoto action_10
-action_78 (9#) = happyGoto action_11
-action_78 (10#) = happyGoto action_12
-action_78 (11#) = happyGoto action_13
-action_78 (12#) = happyGoto action_14
-action_78 (58#) = happyGoto action_15
-action_78 (59#) = happyGoto action_16
-action_78 (60#) = happyGoto action_17
-action_78 (61#) = happyGoto action_18
-action_78 (62#) = happyGoto action_19
-action_78 (63#) = happyGoto action_199
-action_78 (64#) = happyGoto action_21
-action_78 (65#) = happyGoto action_208
-action_78 (72#) = happyGoto action_22
-action_78 (77#) = happyGoto action_23
-action_78 x = happyTcHack x happyReduce_193
-
-action_79 x = happyTcHack x happyReduce_140
-
-action_80 (96#) = happyShift action_206
-action_80 (104#) = happyShift action_207
-action_80 x = happyTcHack x happyFail
-
-action_81 (96#) = happyShift action_106
-action_81 (98#) = happyShift action_107
-action_81 (104#) = happyShift action_108
-action_81 (106#) = happyShift action_176
-action_81 (110#) = happyShift action_109
-action_81 (111#) = happyShift action_110
-action_81 (114#) = happyShift action_111
-action_81 (121#) = happyShift action_112
-action_81 (170#) = happyShift action_6
-action_81 (171#) = happyShift action_48
-action_81 (172#) = happyShift action_49
-action_81 (174#) = happyShift action_51
-action_81 (8#) = happyGoto action_101
-action_81 (9#) = happyGoto action_102
-action_81 (10#) = happyGoto action_103
-action_81 (12#) = happyGoto action_202
-action_81 (53#) = happyGoto action_88
-action_81 (56#) = happyGoto action_89
-action_81 (57#) = happyGoto action_125
-action_81 (67#) = happyGoto action_171
-action_81 (68#) = happyGoto action_172
-action_81 (69#) = happyGoto action_203
-action_81 (82#) = happyGoto action_204
-action_81 (83#) = happyGoto action_205
-action_81 x = happyTcHack x happyReduce_137
-
-action_82 (96#) = happyShift action_24
-action_82 (98#) = happyShift action_25
-action_82 (104#) = happyShift action_26
-action_82 (109#) = happyShift action_27
-action_82 (110#) = happyShift action_28
-action_82 (111#) = happyShift action_29
-action_82 (114#) = happyShift action_30
-action_82 (119#) = happyShift action_31
-action_82 (124#) = happyShift action_32
-action_82 (125#) = happyShift action_33
-action_82 (126#) = happyShift action_34
-action_82 (127#) = happyShift action_35
-action_82 (128#) = happyShift action_36
-action_82 (129#) = happyShift action_37
-action_82 (131#) = happyShift action_38
-action_82 (134#) = happyShift action_39
-action_82 (137#) = happyShift action_40
-action_82 (140#) = happyShift action_123
-action_82 (145#) = happyShift action_42
-action_82 (156#) = happyShift action_43
-action_82 (157#) = happyShift action_44
-action_82 (161#) = happyShift action_45
-action_82 (162#) = happyShift action_46
-action_82 (167#) = happyShift action_47
-action_82 (170#) = happyShift action_6
-action_82 (171#) = happyShift action_48
-action_82 (172#) = happyShift action_49
-action_82 (173#) = happyShift action_50
-action_82 (174#) = happyShift action_51
-action_82 (8#) = happyGoto action_10
-action_82 (9#) = happyGoto action_11
-action_82 (10#) = happyGoto action_12
-action_82 (11#) = happyGoto action_13
-action_82 (12#) = happyGoto action_14
-action_82 (58#) = happyGoto action_15
-action_82 (59#) = happyGoto action_16
-action_82 (60#) = happyGoto action_17
-action_82 (61#) = happyGoto action_18
-action_82 (62#) = happyGoto action_19
-action_82 (63#) = happyGoto action_121
-action_82 (64#) = happyGoto action_21
-action_82 (72#) = happyGoto action_22
-action_82 (77#) = happyGoto action_23
-action_82 x = happyTcHack x happyFail
-
-action_83 (174#) = happyShift action_51
-action_83 (12#) = happyGoto action_201
-action_83 x = happyTcHack x happyFail
-
-action_84 (96#) = happyShift action_24
-action_84 (98#) = happyShift action_25
-action_84 (104#) = happyShift action_26
-action_84 (109#) = happyShift action_27
-action_84 (110#) = happyShift action_28
-action_84 (111#) = happyShift action_29
-action_84 (114#) = happyShift action_30
-action_84 (119#) = happyShift action_31
-action_84 (124#) = happyShift action_32
-action_84 (125#) = happyShift action_33
-action_84 (126#) = happyShift action_34
-action_84 (127#) = happyShift action_35
-action_84 (128#) = happyShift action_36
-action_84 (129#) = happyShift action_37
-action_84 (131#) = happyShift action_38
-action_84 (134#) = happyShift action_39
-action_84 (137#) = happyShift action_40
-action_84 (140#) = happyShift action_41
-action_84 (145#) = happyShift action_42
-action_84 (156#) = happyShift action_43
-action_84 (157#) = happyShift action_44
-action_84 (161#) = happyShift action_45
-action_84 (162#) = happyShift action_46
-action_84 (167#) = happyShift action_47
-action_84 (170#) = happyShift action_6
-action_84 (171#) = happyShift action_48
-action_84 (172#) = happyShift action_49
-action_84 (173#) = happyShift action_50
-action_84 (174#) = happyShift action_51
-action_84 (8#) = happyGoto action_10
-action_84 (9#) = happyGoto action_11
-action_84 (10#) = happyGoto action_12
-action_84 (11#) = happyGoto action_13
-action_84 (12#) = happyGoto action_14
-action_84 (58#) = happyGoto action_15
-action_84 (59#) = happyGoto action_16
-action_84 (60#) = happyGoto action_17
-action_84 (61#) = happyGoto action_18
-action_84 (62#) = happyGoto action_19
-action_84 (63#) = happyGoto action_199
-action_84 (64#) = happyGoto action_21
-action_84 (65#) = happyGoto action_200
-action_84 (72#) = happyGoto action_22
-action_84 (77#) = happyGoto action_23
-action_84 x = happyTcHack x happyReduce_193
-
-action_85 (96#) = happyShift action_24
-action_85 (98#) = happyShift action_25
-action_85 (104#) = happyShift action_26
-action_85 (109#) = happyShift action_27
-action_85 (110#) = happyShift action_28
-action_85 (111#) = happyShift action_29
-action_85 (114#) = happyShift action_30
-action_85 (119#) = happyShift action_31
-action_85 (124#) = happyShift action_32
-action_85 (125#) = happyShift action_33
-action_85 (126#) = happyShift action_34
-action_85 (127#) = happyShift action_35
-action_85 (128#) = happyShift action_36
-action_85 (129#) = happyShift action_37
-action_85 (131#) = happyShift action_38
-action_85 (134#) = happyShift action_39
-action_85 (137#) = happyShift action_40
-action_85 (140#) = happyShift action_41
-action_85 (145#) = happyShift action_42
-action_85 (156#) = happyShift action_43
-action_85 (157#) = happyShift action_44
-action_85 (161#) = happyShift action_45
-action_85 (162#) = happyShift action_46
-action_85 (167#) = happyShift action_47
-action_85 (170#) = happyShift action_6
-action_85 (171#) = happyShift action_48
-action_85 (172#) = happyShift action_49
-action_85 (173#) = happyShift action_50
-action_85 (174#) = happyShift action_51
-action_85 (8#) = happyGoto action_10
-action_85 (9#) = happyGoto action_11
-action_85 (10#) = happyGoto action_12
-action_85 (11#) = happyGoto action_13
-action_85 (12#) = happyGoto action_14
-action_85 (58#) = happyGoto action_15
-action_85 (59#) = happyGoto action_16
-action_85 (60#) = happyGoto action_17
-action_85 (61#) = happyGoto action_18
-action_85 (62#) = happyGoto action_19
-action_85 (63#) = happyGoto action_198
-action_85 (64#) = happyGoto action_21
-action_85 (72#) = happyGoto action_22
-action_85 (77#) = happyGoto action_23
-action_85 x = happyTcHack x happyFail
-
-action_86 (107#) = happyShift action_135
-action_86 x = happyTcHack x happyReduce_172
-
-action_87 (103#) = happyShift action_156
-action_87 x = happyTcHack x happyReduce_128
-
-action_88 (95#) = happyShift action_196
-action_88 (100#) = happyShift action_197
-action_88 x = happyTcHack x happyFail
-
-action_89 (94#) = happyShift action_195
-action_89 x = happyTcHack x happyReduce_138
-
-action_90 (140#) = happyShift action_194
-action_90 x = happyTcHack x happyFail
-
-action_91 (174#) = happyShift action_51
-action_91 (12#) = happyGoto action_87
-action_91 (53#) = happyGoto action_88
-action_91 (56#) = happyGoto action_89
-action_91 (57#) = happyGoto action_193
-action_91 x = happyTcHack x happyReduce_137
-
-action_92 (107#) = happyShift action_135
-action_92 (171#) = happyShift action_48
-action_92 (9#) = happyGoto action_192
-action_92 x = happyTcHack x happyFail
-
-action_93 (96#) = happyShift action_106
-action_93 (98#) = happyShift action_107
-action_93 (104#) = happyShift action_108
-action_93 (110#) = happyShift action_109
-action_93 (111#) = happyShift action_110
-action_93 (114#) = happyShift action_111
-action_93 (121#) = happyShift action_112
-action_93 (170#) = happyShift action_6
-action_93 (171#) = happyShift action_48
-action_93 (172#) = happyShift action_49
-action_93 (174#) = happyShift action_51
-action_93 (8#) = happyGoto action_101
-action_93 (9#) = happyGoto action_102
-action_93 (10#) = happyGoto action_103
-action_93 (12#) = happyGoto action_104
-action_93 (67#) = happyGoto action_188
-action_93 (74#) = happyGoto action_189
-action_93 (84#) = happyGoto action_190
-action_93 (85#) = happyGoto action_191
-action_93 x = happyTcHack x happyReduce_253
-
-action_94 (150#) = happyShift action_187
-action_94 x = happyTcHack x happyFail
-
-action_95 x = happyTcHack x happyReduce_174
-
-action_96 x = happyTcHack x happyReduce_234
-
-action_97 (103#) = happyShift action_186
-action_97 x = happyTcHack x happyReduce_237
-
-action_98 (101#) = happyShift action_185
-action_98 x = happyTcHack x happyFail
-
-action_99 (121#) = happyShift action_100
-action_99 (174#) = happyShift action_51
-action_99 (12#) = happyGoto action_96
-action_99 (75#) = happyGoto action_97
-action_99 (76#) = happyGoto action_184
-action_99 x = happyTcHack x happyReduce_236
-
-action_100 x = happyTcHack x happyReduce_235
-
-action_101 x = happyTcHack x happyReduce_206
-
-action_102 x = happyTcHack x happyReduce_208
-
-action_103 x = happyTcHack x happyReduce_207
-
-action_104 (107#) = happyShift action_183
-action_104 x = happyTcHack x happyReduce_203
-
-action_105 x = happyTcHack x happyReduce_171
-
-action_106 (174#) = happyShift action_51
-action_106 (12#) = happyGoto action_179
-action_106 (53#) = happyGoto action_180
-action_106 (70#) = happyGoto action_181
-action_106 (73#) = happyGoto action_182
-action_106 x = happyTcHack x happyReduce_229
-
-action_107 (96#) = happyShift action_106
-action_107 (98#) = happyShift action_107
-action_107 (104#) = happyShift action_108
-action_107 (106#) = happyShift action_176
-action_107 (110#) = happyShift action_109
-action_107 (111#) = happyShift action_110
-action_107 (114#) = happyShift action_111
-action_107 (121#) = happyShift action_112
-action_107 (170#) = happyShift action_6
-action_107 (171#) = happyShift action_48
-action_107 (172#) = happyShift action_49
-action_107 (174#) = happyShift action_51
-action_107 (8#) = happyGoto action_101
-action_107 (9#) = happyGoto action_102
-action_107 (10#) = happyGoto action_103
-action_107 (12#) = happyGoto action_170
-action_107 (67#) = happyGoto action_171
-action_107 (68#) = happyGoto action_172
-action_107 (69#) = happyGoto action_178
-action_107 x = happyTcHack x happyFail
-
-action_108 (171#) = happyShift action_48
-action_108 (9#) = happyGoto action_177
-action_108 x = happyTcHack x happyFail
-
-action_109 x = happyTcHack x happyReduce_198
-
-action_110 (96#) = happyShift action_106
-action_110 (98#) = happyShift action_107
-action_110 (104#) = happyShift action_108
-action_110 (106#) = happyShift action_176
-action_110 (110#) = happyShift action_109
-action_110 (111#) = happyShift action_110
-action_110 (114#) = happyShift action_111
-action_110 (121#) = happyShift action_112
-action_110 (170#) = happyShift action_6
-action_110 (171#) = happyShift action_48
-action_110 (172#) = happyShift action_49
-action_110 (174#) = happyShift action_51
-action_110 (8#) = happyGoto action_101
-action_110 (9#) = happyGoto action_102
-action_110 (10#) = happyGoto action_103
-action_110 (12#) = happyGoto action_170
-action_110 (67#) = happyGoto action_171
-action_110 (68#) = happyGoto action_172
-action_110 (69#) = happyGoto action_173
-action_110 (79#) = happyGoto action_174
-action_110 (81#) = happyGoto action_175
-action_110 x = happyTcHack x happyReduce_246
-
-action_111 (174#) = happyShift action_51
-action_111 (12#) = happyGoto action_169
-action_111 x = happyTcHack x happyFail
-
-action_112 x = happyTcHack x happyReduce_202
-
-action_113 (100#) = happyShift action_168
-action_113 x = happyTcHack x happyReduce_241
-
-action_114 (103#) = happyShift action_167
-action_114 x = happyTcHack x happyReduce_244
-
-action_115 (112#) = happyShift action_166
-action_115 x = happyTcHack x happyFail
-
-action_116 (107#) = happyShift action_164
-action_116 (109#) = happyShift action_165
-action_116 x = happyTcHack x happyFail
-
-action_117 (105#) = happyShift action_163
-action_117 x = happyTcHack x happyFail
-
-action_118 (96#) = happyShift action_140
-action_118 (98#) = happyShift action_82
-action_118 (104#) = happyShift action_26
-action_118 (109#) = happyShift action_83
-action_118 (110#) = happyShift action_28
-action_118 (111#) = happyShift action_29
-action_118 (125#) = happyShift action_33
-action_118 (126#) = happyShift action_34
-action_118 (127#) = happyShift action_35
-action_118 (128#) = happyShift action_36
-action_118 (129#) = happyShift action_37
-action_118 (134#) = happyShift action_39
-action_118 (170#) = happyShift action_6
-action_118 (171#) = happyShift action_48
-action_118 (172#) = happyShift action_49
-action_118 (173#) = happyShift action_50
-action_118 (174#) = happyShift action_51
-action_118 (8#) = happyGoto action_10
-action_118 (9#) = happyGoto action_11
-action_118 (10#) = happyGoto action_12
-action_118 (11#) = happyGoto action_13
-action_118 (12#) = happyGoto action_79
-action_118 (58#) = happyGoto action_161
-action_118 (66#) = happyGoto action_162
-action_118 (72#) = happyGoto action_22
-action_118 x = happyTcHack x happyReduce_196
-
-action_119 x = happyTcHack x happyReduce_148
-
-action_120 (100#) = happyReduce_234
-action_120 (103#) = happyReduce_234
-action_120 (113#) = happyShift action_136
-action_120 x = happyTcHack x happyReduce_140
-
-action_121 (99#) = happyShift action_160
-action_121 x = happyTcHack x happyFail
-
-action_122 (100#) = happyShift action_159
-action_122 x = happyTcHack x happyFail
-
-action_123 (96#) = happyShift action_24
-action_123 (98#) = happyShift action_82
-action_123 (104#) = happyShift action_26
-action_123 (109#) = happyShift action_27
-action_123 (110#) = happyShift action_28
-action_123 (111#) = happyShift action_29
-action_123 (125#) = happyShift action_33
-action_123 (126#) = happyShift action_34
-action_123 (127#) = happyShift action_35
-action_123 (128#) = happyShift action_36
-action_123 (129#) = happyShift action_37
-action_123 (134#) = happyShift action_39
-action_123 (170#) = happyShift action_6
-action_123 (171#) = happyShift action_48
-action_123 (172#) = happyShift action_49
-action_123 (173#) = happyShift action_50
-action_123 (174#) = happyShift action_51
-action_123 (8#) = happyGoto action_10
-action_123 (9#) = happyGoto action_11
-action_123 (10#) = happyGoto action_12
-action_123 (11#) = happyGoto action_13
-action_123 (12#) = happyGoto action_158
-action_123 (58#) = happyGoto action_15
-action_123 (59#) = happyGoto action_92
-action_123 (72#) = happyGoto action_22
-action_123 x = happyTcHack x happyFail
-
-action_124 (97#) = happyShift action_155
-action_124 (103#) = happyShift action_156
-action_124 (107#) = happyShift action_157
-action_124 x = happyTcHack x happyReduce_128
-
-action_125 (97#) = happyShift action_154
-action_125 x = happyTcHack x happyFail
-
-action_126 (96#) = happyShift action_24
-action_126 (98#) = happyShift action_25
-action_126 (104#) = happyShift action_26
-action_126 (109#) = happyShift action_27
-action_126 (110#) = happyShift action_28
-action_126 (111#) = happyShift action_29
-action_126 (114#) = happyShift action_30
-action_126 (119#) = happyShift action_31
-action_126 (124#) = happyShift action_32
-action_126 (125#) = happyShift action_33
-action_126 (126#) = happyShift action_34
-action_126 (127#) = happyShift action_35
-action_126 (128#) = happyShift action_36
-action_126 (129#) = happyShift action_37
-action_126 (131#) = happyShift action_38
-action_126 (134#) = happyShift action_39
-action_126 (137#) = happyShift action_40
-action_126 (140#) = happyShift action_41
-action_126 (145#) = happyShift action_42
-action_126 (156#) = happyShift action_43
-action_126 (157#) = happyShift action_44
-action_126 (161#) = happyShift action_45
-action_126 (162#) = happyShift action_46
-action_126 (167#) = happyShift action_47
-action_126 (170#) = happyShift action_6
-action_126 (171#) = happyShift action_48
-action_126 (172#) = happyShift action_49
-action_126 (173#) = happyShift action_50
-action_126 (174#) = happyShift action_51
-action_126 (8#) = happyGoto action_10
-action_126 (9#) = happyGoto action_11
-action_126 (10#) = happyGoto action_12
-action_126 (11#) = happyGoto action_13
-action_126 (12#) = happyGoto action_14
-action_126 (58#) = happyGoto action_15
-action_126 (59#) = happyGoto action_16
-action_126 (60#) = happyGoto action_17
-action_126 (61#) = happyGoto action_18
-action_126 (62#) = happyGoto action_19
-action_126 (63#) = happyGoto action_153
-action_126 (64#) = happyGoto action_21
-action_126 (72#) = happyGoto action_22
-action_126 (77#) = happyGoto action_23
-action_126 x = happyTcHack x happyFail
-
-action_127 (96#) = happyShift action_24
-action_127 (98#) = happyShift action_82
-action_127 (104#) = happyShift action_26
-action_127 (109#) = happyShift action_27
-action_127 (110#) = happyShift action_28
-action_127 (111#) = happyShift action_29
-action_127 (114#) = happyShift action_30
-action_127 (124#) = happyShift action_32
-action_127 (125#) = happyShift action_33
-action_127 (126#) = happyShift action_34
-action_127 (127#) = happyShift action_35
-action_127 (128#) = happyShift action_36
-action_127 (129#) = happyShift action_37
-action_127 (131#) = happyShift action_38
-action_127 (134#) = happyShift action_39
-action_127 (156#) = happyShift action_43
-action_127 (157#) = happyShift action_44
-action_127 (161#) = happyShift action_45
-action_127 (162#) = happyShift action_46
-action_127 (167#) = happyShift action_47
-action_127 (170#) = happyShift action_6
-action_127 (171#) = happyShift action_48
-action_127 (172#) = happyShift action_49
-action_127 (173#) = happyShift action_50
-action_127 (174#) = happyShift action_51
-action_127 (8#) = happyGoto action_10
-action_127 (9#) = happyGoto action_11
-action_127 (10#) = happyGoto action_12
-action_127 (11#) = happyGoto action_13
-action_127 (12#) = happyGoto action_14
-action_127 (58#) = happyGoto action_15
-action_127 (59#) = happyGoto action_16
-action_127 (60#) = happyGoto action_150
-action_127 (61#) = happyGoto action_151
-action_127 (62#) = happyGoto action_152
-action_127 (64#) = happyGoto action_21
-action_127 (72#) = happyGoto action_22
-action_127 x = happyTcHack x happyFail
-
-action_128 (96#) = happyShift action_24
-action_128 (98#) = happyShift action_25
-action_128 (104#) = happyShift action_26
-action_128 (109#) = happyShift action_27
-action_128 (110#) = happyShift action_28
-action_128 (111#) = happyShift action_29
-action_128 (114#) = happyShift action_30
-action_128 (119#) = happyShift action_31
-action_128 (124#) = happyShift action_32
-action_128 (125#) = happyShift action_33
-action_128 (126#) = happyShift action_34
-action_128 (127#) = happyShift action_35
-action_128 (128#) = happyShift action_36
-action_128 (129#) = happyShift action_37
-action_128 (131#) = happyShift action_38
-action_128 (134#) = happyShift action_39
-action_128 (137#) = happyShift action_40
-action_128 (140#) = happyShift action_41
-action_128 (145#) = happyShift action_42
-action_128 (156#) = happyShift action_43
-action_128 (157#) = happyShift action_44
-action_128 (161#) = happyShift action_45
-action_128 (162#) = happyShift action_46
-action_128 (167#) = happyShift action_47
-action_128 (170#) = happyShift action_6
-action_128 (171#) = happyShift action_48
-action_128 (172#) = happyShift action_49
-action_128 (173#) = happyShift action_50
-action_128 (174#) = happyShift action_51
-action_128 (8#) = happyGoto action_10
-action_128 (9#) = happyGoto action_11
-action_128 (10#) = happyGoto action_12
-action_128 (11#) = happyGoto action_13
-action_128 (12#) = happyGoto action_14
-action_128 (58#) = happyGoto action_15
-action_128 (59#) = happyGoto action_16
-action_128 (60#) = happyGoto action_17
-action_128 (61#) = happyGoto action_18
-action_128 (62#) = happyGoto action_19
-action_128 (63#) = happyGoto action_149
-action_128 (64#) = happyGoto action_21
-action_128 (72#) = happyGoto action_22
-action_128 (77#) = happyGoto action_23
-action_128 x = happyTcHack x happyFail
-
-action_129 (96#) = happyShift action_24
-action_129 (98#) = happyShift action_82
-action_129 (104#) = happyShift action_26
-action_129 (109#) = happyShift action_27
-action_129 (110#) = happyShift action_28
-action_129 (111#) = happyShift action_29
-action_129 (114#) = happyShift action_30
-action_129 (124#) = happyShift action_32
-action_129 (125#) = happyShift action_33
-action_129 (126#) = happyShift action_34
-action_129 (127#) = happyShift action_35
-action_129 (128#) = happyShift action_36
-action_129 (129#) = happyShift action_37
-action_129 (131#) = happyShift action_38
-action_129 (134#) = happyShift action_39
-action_129 (156#) = happyShift action_43
-action_129 (157#) = happyShift action_44
-action_129 (161#) = happyShift action_45
-action_129 (162#) = happyShift action_46
-action_129 (167#) = happyShift action_47
-action_129 (170#) = happyShift action_6
-action_129 (171#) = happyShift action_48
-action_129 (172#) = happyShift action_49
-action_129 (173#) = happyShift action_50
-action_129 (174#) = happyShift action_51
-action_129 (8#) = happyGoto action_10
-action_129 (9#) = happyGoto action_11
-action_129 (10#) = happyGoto action_12
-action_129 (11#) = happyGoto action_13
-action_129 (12#) = happyGoto action_14
-action_129 (58#) = happyGoto action_15
-action_129 (59#) = happyGoto action_16
-action_129 (60#) = happyGoto action_148
-action_129 (72#) = happyGoto action_22
-action_129 x = happyTcHack x happyFail
-
-action_130 (96#) = happyShift action_24
-action_130 (98#) = happyShift action_82
-action_130 (104#) = happyShift action_26
-action_130 (109#) = happyShift action_27
-action_130 (110#) = happyShift action_28
-action_130 (111#) = happyShift action_29
-action_130 (114#) = happyShift action_30
-action_130 (124#) = happyShift action_32
-action_130 (125#) = happyShift action_33
-action_130 (126#) = happyShift action_34
-action_130 (127#) = happyShift action_35
-action_130 (128#) = happyShift action_36
-action_130 (129#) = happyShift action_37
-action_130 (131#) = happyShift action_38
-action_130 (134#) = happyShift action_39
-action_130 (156#) = happyShift action_43
-action_130 (157#) = happyShift action_44
-action_130 (161#) = happyShift action_45
-action_130 (162#) = happyShift action_46
-action_130 (167#) = happyShift action_47
-action_130 (170#) = happyShift action_6
-action_130 (171#) = happyShift action_48
-action_130 (172#) = happyShift action_49
-action_130 (173#) = happyShift action_50
-action_130 (174#) = happyShift action_51
-action_130 (8#) = happyGoto action_10
-action_130 (9#) = happyGoto action_11
-action_130 (10#) = happyGoto action_12
-action_130 (11#) = happyGoto action_13
-action_130 (12#) = happyGoto action_14
-action_130 (58#) = happyGoto action_15
-action_130 (59#) = happyGoto action_16
-action_130 (60#) = happyGoto action_147
-action_130 (72#) = happyGoto action_22
-action_130 x = happyTcHack x happyFail
-
-action_131 (96#) = happyShift action_24
-action_131 (98#) = happyShift action_82
-action_131 (104#) = happyShift action_26
-action_131 (109#) = happyShift action_27
-action_131 (110#) = happyShift action_28
-action_131 (111#) = happyShift action_29
-action_131 (114#) = happyShift action_30
-action_131 (124#) = happyShift action_32
-action_131 (125#) = happyShift action_33
-action_131 (126#) = happyShift action_34
-action_131 (127#) = happyShift action_35
-action_131 (128#) = happyShift action_36
-action_131 (129#) = happyShift action_37
-action_131 (131#) = happyShift action_38
-action_131 (134#) = happyShift action_39
-action_131 (156#) = happyShift action_43
-action_131 (157#) = happyShift action_44
-action_131 (161#) = happyShift action_45
-action_131 (162#) = happyShift action_46
-action_131 (167#) = happyShift action_47
-action_131 (170#) = happyShift action_6
-action_131 (171#) = happyShift action_48
-action_131 (172#) = happyShift action_49
-action_131 (173#) = happyShift action_50
-action_131 (174#) = happyShift action_51
-action_131 (8#) = happyGoto action_10
-action_131 (9#) = happyGoto action_11
-action_131 (10#) = happyGoto action_12
-action_131 (11#) = happyGoto action_13
-action_131 (12#) = happyGoto action_14
-action_131 (58#) = happyGoto action_15
-action_131 (59#) = happyGoto action_16
-action_131 (60#) = happyGoto action_146
-action_131 (72#) = happyGoto action_22
-action_131 x = happyTcHack x happyFail
-
-action_132 (96#) = happyShift action_24
-action_132 (98#) = happyShift action_25
-action_132 (104#) = happyShift action_26
-action_132 (109#) = happyShift action_27
-action_132 (110#) = happyShift action_28
-action_132 (111#) = happyShift action_29
-action_132 (114#) = happyShift action_30
-action_132 (119#) = happyShift action_31
-action_132 (124#) = happyShift action_32
-action_132 (125#) = happyShift action_33
-action_132 (126#) = happyShift action_34
-action_132 (127#) = happyShift action_35
-action_132 (128#) = happyShift action_36
-action_132 (129#) = happyShift action_37
-action_132 (131#) = happyShift action_38
-action_132 (134#) = happyShift action_39
-action_132 (137#) = happyShift action_40
-action_132 (140#) = happyShift action_41
-action_132 (145#) = happyShift action_42
-action_132 (156#) = happyShift action_43
-action_132 (157#) = happyShift action_44
-action_132 (161#) = happyShift action_45
-action_132 (162#) = happyShift action_46
-action_132 (167#) = happyShift action_47
-action_132 (170#) = happyShift action_6
-action_132 (171#) = happyShift action_48
-action_132 (172#) = happyShift action_49
-action_132 (173#) = happyShift action_50
-action_132 (174#) = happyShift action_51
-action_132 (8#) = happyGoto action_10
-action_132 (9#) = happyGoto action_11
-action_132 (10#) = happyGoto action_12
-action_132 (11#) = happyGoto action_13
-action_132 (12#) = happyGoto action_14
-action_132 (58#) = happyGoto action_15
-action_132 (59#) = happyGoto action_16
-action_132 (60#) = happyGoto action_17
-action_132 (61#) = happyGoto action_18
-action_132 (62#) = happyGoto action_19
-action_132 (63#) = happyGoto action_145
-action_132 (64#) = happyGoto action_21
-action_132 (72#) = happyGoto action_22
-action_132 (77#) = happyGoto action_23
-action_132 x = happyTcHack x happyFail
-
-action_133 (96#) = happyShift action_144
-action_133 x = happyTcHack x happyFail
-
-action_134 (107#) = happyShift action_135
-action_134 x = happyTcHack x happyReduce_162
-
-action_135 (122#) = happyShift action_143
-action_135 (174#) = happyShift action_51
-action_135 (12#) = happyGoto action_141
-action_135 (71#) = happyGoto action_142
-action_135 x = happyTcHack x happyFail
-
-action_136 (96#) = happyShift action_140
-action_136 (98#) = happyShift action_82
-action_136 (104#) = happyShift action_26
-action_136 (109#) = happyShift action_83
-action_136 (110#) = happyShift action_28
-action_136 (111#) = happyShift action_29
-action_136 (125#) = happyShift action_33
-action_136 (126#) = happyShift action_34
-action_136 (127#) = happyShift action_35
-action_136 (128#) = happyShift action_36
-action_136 (129#) = happyShift action_37
-action_136 (134#) = happyShift action_39
-action_136 (170#) = happyShift action_6
-action_136 (171#) = happyShift action_48
-action_136 (172#) = happyShift action_49
-action_136 (173#) = happyShift action_50
-action_136 (174#) = happyShift action_51
-action_136 (8#) = happyGoto action_10
-action_136 (9#) = happyGoto action_11
-action_136 (10#) = happyGoto action_12
-action_136 (11#) = happyGoto action_13
-action_136 (12#) = happyGoto action_79
-action_136 (58#) = happyGoto action_139
-action_136 (72#) = happyGoto action_22
-action_136 x = happyTcHack x happyFail
-
-action_137 (95#) = happyShift action_138
-action_137 x = happyTcHack x happyFail
-
-action_138 (1#) = happyReduce_65
-action_138 (102#) = happyReduce_65
-action_138 (151#) = happyReduce_51
-action_138 (160#) = happyShift action_347
-action_138 (165#) = happyShift action_348
-action_138 (174#) = happyShift action_51
-action_138 (12#) = happyGoto action_241
-action_138 (22#) = happyGoto action_343
-action_138 (26#) = happyGoto action_344
-action_138 (32#) = happyGoto action_345
-action_138 (33#) = happyGoto action_346
-action_138 x = happyTcHack x happyReduce_65
-
-action_139 x = happyTcHack x happyReduce_170
-
-action_140 (174#) = happyShift action_51
-action_140 (12#) = happyGoto action_342
-action_140 (53#) = happyGoto action_88
-action_140 (56#) = happyGoto action_89
-action_140 (57#) = happyGoto action_125
-action_140 x = happyTcHack x happyReduce_137
-
-action_141 x = happyTcHack x happyReduce_222
-
-action_142 x = happyTcHack x happyReduce_158
-
-action_143 (170#) = happyShift action_6
-action_143 (8#) = happyGoto action_341
-action_143 x = happyTcHack x happyFail
-
-action_144 (174#) = happyShift action_51
-action_144 (12#) = happyGoto action_87
-action_144 (53#) = happyGoto action_88
-action_144 (56#) = happyGoto action_89
-action_144 (57#) = happyGoto action_340
-action_144 x = happyTcHack x happyReduce_137
-
-action_145 x = happyTcHack x happyReduce_185
-
-action_146 (96#) = happyShift action_24
-action_146 (98#) = happyShift action_82
-action_146 (104#) = happyShift action_26
-action_146 (109#) = happyShift action_27
-action_146 (110#) = happyShift action_28
-action_146 (111#) = happyShift action_29
-action_146 (125#) = happyShift action_33
-action_146 (126#) = happyShift action_34
-action_146 (127#) = happyShift action_35
-action_146 (128#) = happyShift action_36
-action_146 (129#) = happyShift action_37
-action_146 (134#) = happyShift action_39
-action_146 (170#) = happyShift action_6
-action_146 (171#) = happyShift action_48
-action_146 (172#) = happyShift action_49
-action_146 (173#) = happyShift action_50
-action_146 (174#) = happyShift action_51
-action_146 (8#) = happyGoto action_10
-action_146 (9#) = happyGoto action_11
-action_146 (10#) = happyGoto action_12
-action_146 (11#) = happyGoto action_13
-action_146 (12#) = happyGoto action_79
-action_146 (58#) = happyGoto action_15
-action_146 (59#) = happyGoto action_134
-action_146 (72#) = happyGoto action_22
-action_146 x = happyTcHack x happyReduce_176
-
-action_147 (96#) = happyShift action_24
-action_147 (98#) = happyShift action_82
-action_147 (104#) = happyShift action_26
-action_147 (109#) = happyShift action_27
-action_147 (110#) = happyShift action_28
-action_147 (111#) = happyShift action_29
-action_147 (125#) = happyShift action_33
-action_147 (126#) = happyShift action_34
-action_147 (127#) = happyShift action_35
-action_147 (128#) = happyShift action_36
-action_147 (129#) = happyShift action_37
-action_147 (134#) = happyShift action_39
-action_147 (170#) = happyShift action_6
-action_147 (171#) = happyShift action_48
-action_147 (172#) = happyShift action_49
-action_147 (173#) = happyShift action_50
-action_147 (174#) = happyShift action_51
-action_147 (8#) = happyGoto action_10
-action_147 (9#) = happyGoto action_11
-action_147 (10#) = happyGoto action_12
-action_147 (11#) = happyGoto action_13
-action_147 (12#) = happyGoto action_79
-action_147 (58#) = happyGoto action_15
-action_147 (59#) = happyGoto action_134
-action_147 (72#) = happyGoto action_22
-action_147 x = happyTcHack x happyReduce_175
-
-action_148 (96#) = happyShift action_24
-action_148 (98#) = happyShift action_82
-action_148 (104#) = happyShift action_26
-action_148 (109#) = happyShift action_27
-action_148 (110#) = happyShift action_28
-action_148 (111#) = happyShift action_29
-action_148 (125#) = happyShift action_33
-action_148 (126#) = happyShift action_34
-action_148 (127#) = happyShift action_35
-action_148 (128#) = happyShift action_36
-action_148 (129#) = happyShift action_37
-action_148 (134#) = happyShift action_39
-action_148 (170#) = happyShift action_6
-action_148 (171#) = happyShift action_48
-action_148 (172#) = happyShift action_49
-action_148 (173#) = happyShift action_50
-action_148 (174#) = happyShift action_51
-action_148 (8#) = happyGoto action_10
-action_148 (9#) = happyGoto action_11
-action_148 (10#) = happyGoto action_12
-action_148 (11#) = happyGoto action_13
-action_148 (12#) = happyGoto action_79
-action_148 (58#) = happyGoto action_15
-action_148 (59#) = happyGoto action_134
-action_148 (72#) = happyGoto action_22
-action_148 x = happyTcHack x happyReduce_177
-
-action_149 x = happyTcHack x happyReduce_181
-
-action_150 (96#) = happyShift action_24
-action_150 (98#) = happyShift action_82
-action_150 (104#) = happyShift action_26
-action_150 (109#) = happyShift action_27
-action_150 (110#) = happyShift action_28
-action_150 (111#) = happyShift action_29
-action_150 (125#) = happyShift action_33
-action_150 (126#) = happyShift action_34
-action_150 (127#) = happyShift action_35
-action_150 (128#) = happyShift action_36
-action_150 (129#) = happyShift action_37
-action_150 (134#) = happyShift action_39
-action_150 (170#) = happyShift action_6
-action_150 (171#) = happyShift action_48
-action_150 (172#) = happyShift action_49
-action_150 (173#) = happyShift action_50
-action_150 (174#) = happyShift action_51
-action_150 (8#) = happyGoto action_10
-action_150 (9#) = happyGoto action_11
-action_150 (10#) = happyGoto action_12
-action_150 (11#) = happyGoto action_13
-action_150 (12#) = happyGoto action_79
-action_150 (58#) = happyGoto action_15
-action_150 (59#) = happyGoto action_134
-action_150 (72#) = happyGoto action_22
-action_150 x = happyTcHack x happyReduce_178
-
-action_151 (102#) = happyShift action_129
-action_151 (115#) = happyShift action_130
-action_151 (116#) = happyShift action_131
-action_151 x = happyTcHack x happyReduce_192
-
-action_152 x = happyTcHack x happyReduce_179
-
-action_153 x = happyTcHack x happyReduce_184
-
-action_154 x = happyTcHack x happyReduce_152
-
-action_155 x = happyTcHack x happyReduce_141
-
-action_156 (174#) = happyShift action_51
-action_156 (12#) = happyGoto action_87
-action_156 (53#) = happyGoto action_339
-action_156 x = happyTcHack x happyFail
-
-action_157 (174#) = happyShift action_51
-action_157 (12#) = happyGoto action_338
-action_157 x = happyTcHack x happyFail
-
-action_158 (99#) = happyShift action_337
-action_158 x = happyTcHack x happyReduce_140
-
-action_159 (96#) = happyShift action_24
-action_159 (98#) = happyShift action_25
-action_159 (104#) = happyShift action_26
-action_159 (109#) = happyShift action_27
-action_159 (110#) = happyShift action_28
-action_159 (111#) = happyShift action_29
-action_159 (114#) = happyShift action_30
-action_159 (119#) = happyShift action_31
-action_159 (124#) = happyShift action_32
-action_159 (125#) = happyShift action_33
-action_159 (126#) = happyShift action_34
-action_159 (127#) = happyShift action_35
-action_159 (128#) = happyShift action_36
-action_159 (129#) = happyShift action_37
-action_159 (131#) = happyShift action_38
-action_159 (134#) = happyShift action_39
-action_159 (137#) = happyShift action_40
-action_159 (140#) = happyShift action_41
-action_159 (145#) = happyShift action_42
-action_159 (156#) = happyShift action_43
-action_159 (157#) = happyShift action_44
-action_159 (161#) = happyShift action_45
-action_159 (162#) = happyShift action_46
-action_159 (167#) = happyShift action_47
-action_159 (170#) = happyShift action_6
-action_159 (171#) = happyShift action_48
-action_159 (172#) = happyShift action_49
-action_159 (173#) = happyShift action_50
-action_159 (174#) = happyShift action_51
-action_159 (8#) = happyGoto action_10
-action_159 (9#) = happyGoto action_11
-action_159 (10#) = happyGoto action_12
-action_159 (11#) = happyGoto action_13
-action_159 (12#) = happyGoto action_14
-action_159 (58#) = happyGoto action_15
-action_159 (59#) = happyGoto action_16
-action_159 (60#) = happyGoto action_17
-action_159 (61#) = happyGoto action_18
-action_159 (62#) = happyGoto action_19
-action_159 (63#) = happyGoto action_336
-action_159 (64#) = happyGoto action_21
-action_159 (72#) = happyGoto action_22
-action_159 (77#) = happyGoto action_23
-action_159 x = happyTcHack x happyFail
-
-action_160 x = happyTcHack x happyReduce_156
-
-action_161 (96#) = happyShift action_140
-action_161 (98#) = happyShift action_82
-action_161 (104#) = happyShift action_26
-action_161 (109#) = happyShift action_83
-action_161 (110#) = happyShift action_28
-action_161 (111#) = happyShift action_29
-action_161 (125#) = happyShift action_33
-action_161 (126#) = happyShift action_34
-action_161 (127#) = happyShift action_35
-action_161 (128#) = happyShift action_36
-action_161 (129#) = happyShift action_37
-action_161 (134#) = happyShift action_39
-action_161 (170#) = happyShift action_6
-action_161 (171#) = happyShift action_48
-action_161 (172#) = happyShift action_49
-action_161 (173#) = happyShift action_50
-action_161 (174#) = happyShift action_51
-action_161 (8#) = happyGoto action_10
-action_161 (9#) = happyGoto action_11
-action_161 (10#) = happyGoto action_12
-action_161 (11#) = happyGoto action_13
-action_161 (12#) = happyGoto action_79
-action_161 (58#) = happyGoto action_161
-action_161 (66#) = happyGoto action_335
-action_161 (72#) = happyGoto action_22
-action_161 x = happyTcHack x happyReduce_196
-
-action_162 (105#) = happyShift action_334
-action_162 x = happyTcHack x happyFail
-
-action_163 x = happyTcHack x happyReduce_151
-
-action_164 (174#) = happyShift action_51
-action_164 (12#) = happyGoto action_333
-action_164 x = happyTcHack x happyFail
-
-action_165 x = happyTcHack x happyReduce_142
-
-action_166 x = happyTcHack x happyReduce_153
-
-action_167 (96#) = happyShift action_24
-action_167 (98#) = happyShift action_25
-action_167 (104#) = happyShift action_26
-action_167 (109#) = happyShift action_27
-action_167 (110#) = happyShift action_28
-action_167 (111#) = happyShift action_29
-action_167 (114#) = happyShift action_30
-action_167 (119#) = happyShift action_31
-action_167 (124#) = happyShift action_32
-action_167 (125#) = happyShift action_33
-action_167 (126#) = happyShift action_34
-action_167 (127#) = happyShift action_35
-action_167 (128#) = happyShift action_36
-action_167 (129#) = happyShift action_37
-action_167 (131#) = happyShift action_38
-action_167 (134#) = happyShift action_39
-action_167 (137#) = happyShift action_40
-action_167 (140#) = happyShift action_41
-action_167 (145#) = happyShift action_42
-action_167 (156#) = happyShift action_43
-action_167 (157#) = happyShift action_44
-action_167 (161#) = happyShift action_45
-action_167 (162#) = happyShift action_46
-action_167 (167#) = happyShift action_47
-action_167 (170#) = happyShift action_6
-action_167 (171#) = happyShift action_48
-action_167 (172#) = happyShift action_49
-action_167 (173#) = happyShift action_50
-action_167 (174#) = happyShift action_51
-action_167 (8#) = happyGoto action_10
-action_167 (9#) = happyGoto action_11
-action_167 (10#) = happyGoto action_12
-action_167 (11#) = happyGoto action_13
-action_167 (12#) = happyGoto action_14
-action_167 (58#) = happyGoto action_15
-action_167 (59#) = happyGoto action_16
-action_167 (60#) = happyGoto action_17
-action_167 (61#) = happyGoto action_18
-action_167 (62#) = happyGoto action_19
-action_167 (63#) = happyGoto action_331
-action_167 (64#) = happyGoto action_21
-action_167 (72#) = happyGoto action_22
-action_167 (77#) = happyGoto action_23
-action_167 (78#) = happyGoto action_114
-action_167 (80#) = happyGoto action_332
-action_167 x = happyTcHack x happyReduce_243
-
-action_168 (96#) = happyShift action_24
-action_168 (98#) = happyShift action_25
-action_168 (104#) = happyShift action_26
-action_168 (109#) = happyShift action_27
-action_168 (110#) = happyShift action_28
-action_168 (111#) = happyShift action_29
-action_168 (114#) = happyShift action_30
-action_168 (119#) = happyShift action_31
-action_168 (124#) = happyShift action_32
-action_168 (125#) = happyShift action_33
-action_168 (126#) = happyShift action_34
-action_168 (127#) = happyShift action_35
-action_168 (128#) = happyShift action_36
-action_168 (129#) = happyShift action_37
-action_168 (131#) = happyShift action_38
-action_168 (134#) = happyShift action_39
-action_168 (137#) = happyShift action_40
-action_168 (140#) = happyShift action_41
-action_168 (145#) = happyShift action_42
-action_168 (156#) = happyShift action_43
-action_168 (157#) = happyShift action_44
-action_168 (161#) = happyShift action_45
-action_168 (162#) = happyShift action_46
-action_168 (167#) = happyShift action_47
-action_168 (170#) = happyShift action_6
-action_168 (171#) = happyShift action_48
-action_168 (172#) = happyShift action_49
-action_168 (173#) = happyShift action_50
-action_168 (174#) = happyShift action_51
-action_168 (8#) = happyGoto action_10
-action_168 (9#) = happyGoto action_11
-action_168 (10#) = happyGoto action_12
-action_168 (11#) = happyGoto action_13
-action_168 (12#) = happyGoto action_14
-action_168 (58#) = happyGoto action_15
-action_168 (59#) = happyGoto action_16
-action_168 (60#) = happyGoto action_17
-action_168 (61#) = happyGoto action_18
-action_168 (62#) = happyGoto action_19
-action_168 (63#) = happyGoto action_330
-action_168 (64#) = happyGoto action_21
-action_168 (72#) = happyGoto action_22
-action_168 (77#) = happyGoto action_23
-action_168 x = happyTcHack x happyFail
-
-action_169 (107#) = happyShift action_329
-action_169 x = happyTcHack x happyReduce_200
-
-action_170 (96#) = happyShift action_106
-action_170 (98#) = happyShift action_107
-action_170 (104#) = happyShift action_108
-action_170 (107#) = happyShift action_300
-action_170 (110#) = happyShift action_109
-action_170 (111#) = happyShift action_110
-action_170 (113#) = happyShift action_301
-action_170 (114#) = happyShift action_111
-action_170 (121#) = happyShift action_112
-action_170 (170#) = happyShift action_6
-action_170 (171#) = happyShift action_48
-action_170 (172#) = happyShift action_49
-action_170 (174#) = happyShift action_51
-action_170 (8#) = happyGoto action_101
-action_170 (9#) = happyGoto action_102
-action_170 (10#) = happyGoto action_103
-action_170 (12#) = happyGoto action_104
-action_170 (67#) = happyGoto action_188
-action_170 (74#) = happyGoto action_299
-action_170 x = happyTcHack x happyReduce_203
-
-action_171 (116#) = happyShift action_328
-action_171 x = happyTcHack x happyReduce_217
-
-action_172 x = happyTcHack x happyReduce_220
-
-action_173 (108#) = happyShift action_296
-action_173 (117#) = happyShift action_297
-action_173 x = happyTcHack x happyReduce_242
-
-action_174 (103#) = happyShift action_327
-action_174 x = happyTcHack x happyReduce_247
-
-action_175 (112#) = happyShift action_326
-action_175 x = happyTcHack x happyFail
-
-action_176 (96#) = happyShift action_106
-action_176 (98#) = happyShift action_107
-action_176 (104#) = happyShift action_108
-action_176 (110#) = happyShift action_109
-action_176 (111#) = happyShift action_110
-action_176 (114#) = happyShift action_111
-action_176 (121#) = happyShift action_112
-action_176 (170#) = happyShift action_6
-action_176 (171#) = happyShift action_48
-action_176 (172#) = happyShift action_49
-action_176 (174#) = happyShift action_51
-action_176 (8#) = happyGoto action_101
-action_176 (9#) = happyGoto action_102
-action_176 (10#) = happyGoto action_103
-action_176 (12#) = happyGoto action_104
-action_176 (67#) = happyGoto action_325
-action_176 x = happyTcHack x happyFail
-
-action_177 (105#) = happyShift action_324
-action_177 x = happyTcHack x happyFail
-
-action_178 (99#) = happyShift action_323
-action_178 (108#) = happyShift action_296
-action_178 (117#) = happyShift action_297
-action_178 x = happyTcHack x happyFail
-
-action_179 (97#) = happyShift action_322
-action_179 (103#) = happyShift action_156
-action_179 x = happyTcHack x happyReduce_128
-
-action_180 (95#) = happyShift action_321
-action_180 x = happyTcHack x happyFail
-
-action_181 (94#) = happyShift action_320
-action_181 x = happyTcHack x happyReduce_230
-
-action_182 (97#) = happyShift action_319
-action_182 x = happyTcHack x happyFail
-
-action_183 (174#) = happyShift action_51
-action_183 (12#) = happyGoto action_318
-action_183 x = happyTcHack x happyFail
-
-action_184 (120#) = happyShift action_317
-action_184 x = happyTcHack x happyFail
-
-action_185 (96#) = happyShift action_24
-action_185 (98#) = happyShift action_25
-action_185 (104#) = happyShift action_26
-action_185 (109#) = happyShift action_27
-action_185 (110#) = happyShift action_28
-action_185 (111#) = happyShift action_29
-action_185 (114#) = happyShift action_30
-action_185 (119#) = happyShift action_31
-action_185 (124#) = happyShift action_32
-action_185 (125#) = happyShift action_33
-action_185 (126#) = happyShift action_34
-action_185 (127#) = happyShift action_35
-action_185 (128#) = happyShift action_36
-action_185 (129#) = happyShift action_37
-action_185 (131#) = happyShift action_38
-action_185 (134#) = happyShift action_39
-action_185 (137#) = happyShift action_40
-action_185 (140#) = happyShift action_41
-action_185 (145#) = happyShift action_42
-action_185 (156#) = happyShift action_43
-action_185 (157#) = happyShift action_44
-action_185 (161#) = happyShift action_45
-action_185 (162#) = happyShift action_46
-action_185 (167#) = happyShift action_47
-action_185 (170#) = happyShift action_6
-action_185 (171#) = happyShift action_48
-action_185 (172#) = happyShift action_49
-action_185 (173#) = happyShift action_50
-action_185 (174#) = happyShift action_51
-action_185 (8#) = happyGoto action_10
-action_185 (9#) = happyGoto action_11
-action_185 (10#) = happyGoto action_12
-action_185 (11#) = happyGoto action_13
-action_185 (12#) = happyGoto action_14
-action_185 (58#) = happyGoto action_15
-action_185 (59#) = happyGoto action_16
-action_185 (60#) = happyGoto action_17
-action_185 (61#) = happyGoto action_18
-action_185 (62#) = happyGoto action_19
-action_185 (63#) = happyGoto action_316
-action_185 (64#) = happyGoto action_21
-action_185 (72#) = happyGoto action_22
-action_185 (77#) = happyGoto action_23
-action_185 x = happyTcHack x happyFail
-
-action_186 (121#) = happyShift action_100
-action_186 (174#) = happyShift action_51
-action_186 (12#) = happyGoto action_96
-action_186 (75#) = happyGoto action_97
-action_186 (76#) = happyGoto action_315
-action_186 x = happyTcHack x happyReduce_236
-
-action_187 (96#) = happyShift action_314
-action_187 x = happyTcHack x happyFail
-
-action_188 (96#) = happyShift action_106
-action_188 (98#) = happyShift action_107
-action_188 (104#) = happyShift action_108
-action_188 (110#) = happyShift action_109
-action_188 (111#) = happyShift action_110
-action_188 (114#) = happyShift action_111
-action_188 (121#) = happyShift action_112
-action_188 (170#) = happyShift action_6
-action_188 (171#) = happyShift action_48
-action_188 (172#) = happyShift action_49
-action_188 (174#) = happyShift action_51
-action_188 (8#) = happyGoto action_101
-action_188 (9#) = happyGoto action_102
-action_188 (10#) = happyGoto action_103
-action_188 (12#) = happyGoto action_104
-action_188 (67#) = happyGoto action_188
-action_188 (74#) = happyGoto action_313
-action_188 x = happyTcHack x happyReduce_232
-
-action_189 (101#) = happyShift action_312
-action_189 x = happyTcHack x happyFail
-
-action_190 (94#) = happyShift action_311
-action_190 x = happyTcHack x happyReduce_254
-
-action_191 (97#) = happyShift action_310
-action_191 x = happyTcHack x happyFail
-
-action_192 x = happyTcHack x happyReduce_190
-
-action_193 (97#) = happyShift action_309
-action_193 x = happyTcHack x happyFail
-
-action_194 (96#) = happyShift action_24
-action_194 (98#) = happyShift action_25
-action_194 (104#) = happyShift action_26
-action_194 (109#) = happyShift action_27
-action_194 (110#) = happyShift action_28
-action_194 (111#) = happyShift action_29
-action_194 (114#) = happyShift action_30
-action_194 (119#) = happyShift action_31
-action_194 (124#) = happyShift action_32
-action_194 (125#) = happyShift action_33
-action_194 (126#) = happyShift action_34
-action_194 (127#) = happyShift action_35
-action_194 (128#) = happyShift action_36
-action_194 (129#) = happyShift action_37
-action_194 (131#) = happyShift action_38
-action_194 (134#) = happyShift action_39
-action_194 (137#) = happyShift action_40
-action_194 (140#) = happyShift action_41
-action_194 (145#) = happyShift action_42
-action_194 (156#) = happyShift action_43
-action_194 (157#) = happyShift action_44
-action_194 (161#) = happyShift action_45
-action_194 (162#) = happyShift action_46
-action_194 (167#) = happyShift action_47
-action_194 (170#) = happyShift action_6
-action_194 (171#) = happyShift action_48
-action_194 (172#) = happyShift action_49
-action_194 (173#) = happyShift action_50
-action_194 (174#) = happyShift action_51
-action_194 (8#) = happyGoto action_10
-action_194 (9#) = happyGoto action_11
-action_194 (10#) = happyGoto action_12
-action_194 (11#) = happyGoto action_13
-action_194 (12#) = happyGoto action_14
-action_194 (58#) = happyGoto action_15
-action_194 (59#) = happyGoto action_16
-action_194 (60#) = happyGoto action_17
-action_194 (61#) = happyGoto action_18
-action_194 (62#) = happyGoto action_19
-action_194 (63#) = happyGoto action_308
-action_194 (64#) = happyGoto action_21
-action_194 (72#) = happyGoto action_22
-action_194 (77#) = happyGoto action_23
-action_194 x = happyTcHack x happyFail
-
-action_195 (174#) = happyShift action_51
-action_195 (12#) = happyGoto action_87
-action_195 (53#) = happyGoto action_88
-action_195 (56#) = happyGoto action_89
-action_195 (57#) = happyGoto action_307
-action_195 x = happyTcHack x happyReduce_137
-
-action_196 (96#) = happyShift action_24
-action_196 (98#) = happyShift action_25
-action_196 (104#) = happyShift action_26
-action_196 (109#) = happyShift action_27
-action_196 (110#) = happyShift action_28
-action_196 (111#) = happyShift action_29
-action_196 (114#) = happyShift action_30
-action_196 (119#) = happyShift action_31
-action_196 (124#) = happyShift action_32
-action_196 (125#) = happyShift action_33
-action_196 (126#) = happyShift action_34
-action_196 (127#) = happyShift action_35
-action_196 (128#) = happyShift action_36
-action_196 (129#) = happyShift action_37
-action_196 (131#) = happyShift action_38
-action_196 (134#) = happyShift action_39
-action_196 (137#) = happyShift action_40
-action_196 (140#) = happyShift action_41
-action_196 (145#) = happyShift action_42
-action_196 (156#) = happyShift action_43
-action_196 (157#) = happyShift action_44
-action_196 (161#) = happyShift action_45
-action_196 (162#) = happyShift action_46
-action_196 (167#) = happyShift action_47
-action_196 (170#) = happyShift action_6
-action_196 (171#) = happyShift action_48
-action_196 (172#) = happyShift action_49
-action_196 (173#) = happyShift action_50
-action_196 (174#) = happyShift action_51
-action_196 (8#) = happyGoto action_10
-action_196 (9#) = happyGoto action_11
-action_196 (10#) = happyGoto action_12
-action_196 (11#) = happyGoto action_13
-action_196 (12#) = happyGoto action_14
-action_196 (58#) = happyGoto action_15
-action_196 (59#) = happyGoto action_16
-action_196 (60#) = happyGoto action_17
-action_196 (61#) = happyGoto action_18
-action_196 (62#) = happyGoto action_19
-action_196 (63#) = happyGoto action_306
-action_196 (64#) = happyGoto action_21
-action_196 (72#) = happyGoto action_22
-action_196 (77#) = happyGoto action_23
-action_196 x = happyTcHack x happyFail
-
-action_197 (96#) = happyShift action_24
-action_197 (98#) = happyShift action_25
-action_197 (104#) = happyShift action_26
-action_197 (109#) = happyShift action_27
-action_197 (110#) = happyShift action_28
-action_197 (111#) = happyShift action_29
-action_197 (114#) = happyShift action_30
-action_197 (119#) = happyShift action_31
-action_197 (124#) = happyShift action_32
-action_197 (125#) = happyShift action_33
-action_197 (126#) = happyShift action_34
-action_197 (127#) = happyShift action_35
-action_197 (128#) = happyShift action_36
-action_197 (129#) = happyShift action_37
-action_197 (131#) = happyShift action_38
-action_197 (134#) = happyShift action_39
-action_197 (137#) = happyShift action_40
-action_197 (140#) = happyShift action_41
-action_197 (145#) = happyShift action_42
-action_197 (156#) = happyShift action_43
-action_197 (157#) = happyShift action_44
-action_197 (161#) = happyShift action_45
-action_197 (162#) = happyShift action_46
-action_197 (167#) = happyShift action_47
-action_197 (170#) = happyShift action_6
-action_197 (171#) = happyShift action_48
-action_197 (172#) = happyShift action_49
-action_197 (173#) = happyShift action_50
-action_197 (174#) = happyShift action_51
-action_197 (8#) = happyGoto action_10
-action_197 (9#) = happyGoto action_11
-action_197 (10#) = happyGoto action_12
-action_197 (11#) = happyGoto action_13
-action_197 (12#) = happyGoto action_14
-action_197 (58#) = happyGoto action_15
-action_197 (59#) = happyGoto action_16
-action_197 (60#) = happyGoto action_17
-action_197 (61#) = happyGoto action_18
-action_197 (62#) = happyGoto action_19
-action_197 (63#) = happyGoto action_305
-action_197 (64#) = happyGoto action_21
-action_197 (72#) = happyGoto action_22
-action_197 (77#) = happyGoto action_23
-action_197 x = happyTcHack x happyFail
-
-action_198 (94#) = happyShift action_304
-action_198 x = happyTcHack x happyFail
-
-action_199 (94#) = happyShift action_303
-action_199 x = happyTcHack x happyReduce_194
-
-action_200 (97#) = happyShift action_302
-action_200 x = happyTcHack x happyFail
-
-action_201 (109#) = happyShift action_165
-action_201 x = happyTcHack x happyFail
-
-action_202 (96#) = happyShift action_106
-action_202 (97#) = happyShift action_155
-action_202 (98#) = happyShift action_107
-action_202 (103#) = happyShift action_156
-action_202 (104#) = happyShift action_108
-action_202 (107#) = happyShift action_300
-action_202 (108#) = happyReduce_203
-action_202 (110#) = happyShift action_109
-action_202 (111#) = happyShift action_110
-action_202 (113#) = happyShift action_301
-action_202 (114#) = happyShift action_111
-action_202 (116#) = happyReduce_203
-action_202 (117#) = happyReduce_203
-action_202 (120#) = happyReduce_203
-action_202 (121#) = happyShift action_112
-action_202 (170#) = happyShift action_6
-action_202 (171#) = happyShift action_48
-action_202 (172#) = happyShift action_49
-action_202 (174#) = happyShift action_51
-action_202 (8#) = happyGoto action_101
-action_202 (9#) = happyGoto action_102
-action_202 (10#) = happyGoto action_103
-action_202 (12#) = happyGoto action_104
-action_202 (67#) = happyGoto action_188
-action_202 (74#) = happyGoto action_299
-action_202 x = happyTcHack x happyReduce_128
-
-action_203 (108#) = happyShift action_296
-action_203 (117#) = happyShift action_297
-action_203 (120#) = happyShift action_298
-action_203 x = happyTcHack x happyFail
-
-action_204 (94#) = happyShift action_295
-action_204 x = happyTcHack x happyReduce_250
-
-action_205 (97#) = happyShift action_294
-action_205 x = happyTcHack x happyFail
-
-action_206 (96#) = happyShift action_106
-action_206 (98#) = happyShift action_107
-action_206 (104#) = happyShift action_108
-action_206 (106#) = happyShift action_176
-action_206 (110#) = happyShift action_109
-action_206 (111#) = happyShift action_110
-action_206 (114#) = happyShift action_111
-action_206 (121#) = happyShift action_112
-action_206 (170#) = happyShift action_6
-action_206 (171#) = happyShift action_48
-action_206 (172#) = happyShift action_49
-action_206 (174#) = happyShift action_51
-action_206 (8#) = happyGoto action_101
-action_206 (9#) = happyGoto action_102
-action_206 (10#) = happyGoto action_103
-action_206 (12#) = happyGoto action_170
-action_206 (67#) = happyGoto action_171
-action_206 (68#) = happyGoto action_172
-action_206 (69#) = happyGoto action_203
-action_206 (82#) = happyGoto action_204
-action_206 (83#) = happyGoto action_293
-action_206 x = happyTcHack x happyFail
-
-action_207 (96#) = happyShift action_24
-action_207 (98#) = happyShift action_25
-action_207 (104#) = happyShift action_26
-action_207 (109#) = happyShift action_27
-action_207 (110#) = happyShift action_28
-action_207 (111#) = happyShift action_29
-action_207 (114#) = happyShift action_30
-action_207 (119#) = happyShift action_31
-action_207 (124#) = happyShift action_32
-action_207 (125#) = happyShift action_33
-action_207 (126#) = happyShift action_34
-action_207 (127#) = happyShift action_35
-action_207 (128#) = happyShift action_36
-action_207 (129#) = happyShift action_37
-action_207 (131#) = happyShift action_38
-action_207 (134#) = happyShift action_39
-action_207 (137#) = happyShift action_40
-action_207 (140#) = happyShift action_41
-action_207 (145#) = happyShift action_42
-action_207 (156#) = happyShift action_43
-action_207 (157#) = happyShift action_44
-action_207 (161#) = happyShift action_45
-action_207 (162#) = happyShift action_46
-action_207 (167#) = happyShift action_47
-action_207 (170#) = happyShift action_6
-action_207 (171#) = happyShift action_48
-action_207 (172#) = happyShift action_49
-action_207 (173#) = happyShift action_50
-action_207 (174#) = happyShift action_51
-action_207 (8#) = happyGoto action_10
-action_207 (9#) = happyGoto action_11
-action_207 (10#) = happyGoto action_12
-action_207 (11#) = happyGoto action_13
-action_207 (12#) = happyGoto action_14
-action_207 (58#) = happyGoto action_15
-action_207 (59#) = happyGoto action_16
-action_207 (60#) = happyGoto action_17
-action_207 (61#) = happyGoto action_18
-action_207 (62#) = happyGoto action_19
-action_207 (63#) = happyGoto action_199
-action_207 (64#) = happyGoto action_21
-action_207 (65#) = happyGoto action_292
-action_207 (72#) = happyGoto action_22
-action_207 (77#) = happyGoto action_23
-action_207 x = happyTcHack x happyReduce_193
-
-action_208 (97#) = happyShift action_291
-action_208 x = happyTcHack x happyFail
-
-action_209 x = happyTcHack x happyReduce_49
-
-action_210 (104#) = happyShift action_290
-action_210 (174#) = happyShift action_51
-action_210 (12#) = happyGoto action_287
-action_210 (36#) = happyGoto action_288
-action_210 (46#) = happyGoto action_289
-action_210 x = happyTcHack x happyFail
-
-action_211 (174#) = happyShift action_51
-action_211 (12#) = happyGoto action_283
-action_211 (37#) = happyGoto action_276
-action_211 (38#) = happyGoto action_284
-action_211 (47#) = happyGoto action_285
-action_211 (48#) = happyGoto action_286
-action_211 (53#) = happyGoto action_278
-action_211 x = happyTcHack x happyFail
-
-action_212 (104#) = happyShift action_257
-action_212 (174#) = happyShift action_51
-action_212 (12#) = happyGoto action_252
-action_212 (34#) = happyGoto action_253
-action_212 (45#) = happyGoto action_282
-action_212 (54#) = happyGoto action_255
-action_212 (55#) = happyGoto action_256
-action_212 x = happyTcHack x happyFail
-
-action_213 (174#) = happyShift action_51
-action_213 (12#) = happyGoto action_279
-action_213 (44#) = happyGoto action_280
-action_213 (51#) = happyGoto action_281
-action_213 x = happyTcHack x happyFail
-
-action_214 (174#) = happyShift action_51
-action_214 (12#) = happyGoto action_87
-action_214 (37#) = happyGoto action_276
-action_214 (47#) = happyGoto action_277
-action_214 (53#) = happyGoto action_278
-action_214 x = happyTcHack x happyFail
-
-action_215 (104#) = happyShift action_257
-action_215 (174#) = happyShift action_51
-action_215 (12#) = happyGoto action_252
-action_215 (34#) = happyGoto action_253
-action_215 (45#) = happyGoto action_275
-action_215 (54#) = happyGoto action_255
-action_215 (55#) = happyGoto action_256
-action_215 x = happyTcHack x happyFail
-
-action_216 (104#) = happyShift action_257
-action_216 (174#) = happyShift action_51
-action_216 (12#) = happyGoto action_252
-action_216 (43#) = happyGoto action_260
-action_216 (50#) = happyGoto action_274
-action_216 (54#) = happyGoto action_262
-action_216 (55#) = happyGoto action_263
-action_216 x = happyTcHack x happyFail
-
-action_217 (104#) = happyShift action_257
-action_217 (174#) = happyShift action_51
-action_217 (12#) = happyGoto action_252
-action_217 (34#) = happyGoto action_253
-action_217 (45#) = happyGoto action_273
-action_217 (54#) = happyGoto action_255
-action_217 (55#) = happyGoto action_256
-action_217 x = happyTcHack x happyFail
-
-action_218 (104#) = happyShift action_257
-action_218 (174#) = happyShift action_51
-action_218 (12#) = happyGoto action_252
-action_218 (34#) = happyGoto action_253
-action_218 (45#) = happyGoto action_272
-action_218 (54#) = happyGoto action_255
-action_218 (55#) = happyGoto action_256
-action_218 x = happyTcHack x happyFail
-
-action_219 (104#) = happyShift action_257
-action_219 (174#) = happyShift action_51
-action_219 (12#) = happyGoto action_252
-action_219 (34#) = happyGoto action_253
-action_219 (45#) = happyGoto action_271
-action_219 (54#) = happyGoto action_255
-action_219 (55#) = happyGoto action_256
-action_219 x = happyTcHack x happyFail
-
-action_220 (174#) = happyShift action_51
-action_220 (12#) = happyGoto action_270
-action_220 x = happyTcHack x happyFail
-
-action_221 (174#) = happyShift action_51
-action_221 (12#) = happyGoto action_267
-action_221 (41#) = happyGoto action_268
-action_221 (49#) = happyGoto action_269
-action_221 x = happyTcHack x happyFail
-
-action_222 (104#) = happyShift action_257
-action_222 (174#) = happyShift action_51
-action_222 (12#) = happyGoto action_252
-action_222 (34#) = happyGoto action_253
-action_222 (45#) = happyGoto action_266
-action_222 (54#) = happyGoto action_255
-action_222 (55#) = happyGoto action_256
-action_222 x = happyTcHack x happyFail
-
-action_223 (104#) = happyShift action_257
-action_223 (132#) = happyShift action_264
-action_223 (138#) = happyShift action_265
-action_223 (174#) = happyShift action_51
-action_223 (12#) = happyGoto action_252
-action_223 (43#) = happyGoto action_260
-action_223 (50#) = happyGoto action_261
-action_223 (54#) = happyGoto action_262
-action_223 (55#) = happyGoto action_263
-action_223 x = happyTcHack x happyFail
-
-action_224 (174#) = happyShift action_51
-action_224 (12#) = happyGoto action_259
-action_224 x = happyTcHack x happyFail
-
-action_225 (104#) = happyShift action_257
-action_225 (174#) = happyShift action_51
-action_225 (12#) = happyGoto action_252
-action_225 (34#) = happyGoto action_253
-action_225 (45#) = happyGoto action_258
-action_225 (54#) = happyGoto action_255
-action_225 (55#) = happyGoto action_256
-action_225 x = happyTcHack x happyFail
-
-action_226 (104#) = happyShift action_257
-action_226 (174#) = happyShift action_51
-action_226 (12#) = happyGoto action_252
-action_226 (34#) = happyGoto action_253
-action_226 (45#) = happyGoto action_254
-action_226 (54#) = happyGoto action_255
-action_226 (55#) = happyGoto action_256
-action_226 x = happyTcHack x happyFail
-
-action_227 x = happyTcHack x happyReduce_269
-
-action_228 x = happyTcHack x happyReduce_270
-
-action_229 x = happyTcHack x happyReduce_271
-
-action_230 (106#) = happyShift action_74
-action_230 (107#) = happyShift action_75
-action_230 (123#) = happyShift action_76
-action_230 (171#) = happyShift action_48
-action_230 (174#) = happyShift action_51
-action_230 (9#) = happyGoto action_70
-action_230 (12#) = happyGoto action_71
-action_230 (92#) = happyGoto action_72
-action_230 (93#) = happyGoto action_251
-action_230 x = happyTcHack x happyReduce_273
-
-action_231 x = happyTcHack x happyReduce_272
-
-action_232 (100#) = happyShift action_250
-action_232 x = happyTcHack x happyFail
-
-action_233 x = happyTcHack x happyReduce_35
-
-action_234 x = happyTcHack x happyReduce_36
-
-action_235 (150#) = happyShift action_249
-action_235 x = happyTcHack x happyFail
-
-action_236 (150#) = happyShift action_248
-action_236 x = happyTcHack x happyFail
-
-action_237 x = happyTcHack x happyReduce_34
-
-action_238 (96#) = happyReduce_51
-action_238 (151#) = happyReduce_51
-action_238 (160#) = happyShift action_246
-action_238 (165#) = happyShift action_247
-action_238 (174#) = happyShift action_51
-action_238 (12#) = happyGoto action_241
-action_238 (24#) = happyGoto action_242
-action_238 (26#) = happyGoto action_243
-action_238 (32#) = happyGoto action_244
-action_238 (33#) = happyGoto action_245
-action_238 x = happyTcHack x happyReduce_65
-
-action_239 (96#) = happyShift action_240
-action_239 x = happyTcHack x happyFail
-
-action_240 (130#) = happyShift action_418
-action_240 x = happyTcHack x happyFail
-
-action_241 (104#) = happyShift action_416
-action_241 (106#) = happyShift action_417
-action_241 x = happyTcHack x happyReduce_68
-
-action_242 x = happyTcHack x happyReduce_15
-
-action_243 (151#) = happyShift action_356
-action_243 (28#) = happyGoto action_415
-action_243 x = happyTcHack x happyReduce_55
-
-action_244 (102#) = happyShift action_414
-action_244 x = happyTcHack x happyReduce_41
-
-action_245 (103#) = happyShift action_352
-action_245 (169#) = happyShift action_413
-action_245 x = happyTcHack x happyReduce_66
-
-action_246 (174#) = happyShift action_51
-action_246 (12#) = happyGoto action_412
-action_246 x = happyTcHack x happyFail
-
-action_247 (174#) = happyShift action_51
-action_247 (12#) = happyGoto action_241
-action_247 (32#) = happyGoto action_411
-action_247 (33#) = happyGoto action_350
-action_247 x = happyTcHack x happyReduce_65
-
-action_248 (174#) = happyShift action_51
-action_248 (12#) = happyGoto action_410
-action_248 x = happyTcHack x happyFail
-
-action_249 (174#) = happyShift action_51
-action_249 (12#) = happyGoto action_409
-action_249 x = happyTcHack x happyFail
-
-action_250 (98#) = happyShift action_408
-action_250 (174#) = happyShift action_51
-action_250 (12#) = happyGoto action_406
-action_250 (29#) = happyGoto action_407
-action_250 x = happyTcHack x happyFail
-
-action_251 x = happyTcHack x happyReduce_274
-
-action_252 x = happyTcHack x happyReduce_130
-
-action_253 (94#) = happyShift action_405
-action_253 x = happyTcHack x happyFail
-
-action_254 x = happyTcHack x happyReduce_93
-
-action_255 (96#) = happyShift action_106
-action_255 (98#) = happyShift action_107
-action_255 (103#) = happyShift action_398
-action_255 (104#) = happyShift action_108
-action_255 (110#) = happyShift action_109
-action_255 (111#) = happyShift action_110
-action_255 (114#) = happyShift action_111
-action_255 (121#) = happyShift action_112
-action_255 (170#) = happyShift action_6
-action_255 (171#) = happyShift action_48
-action_255 (172#) = happyShift action_49
-action_255 (174#) = happyShift action_51
-action_255 (8#) = happyGoto action_101
-action_255 (9#) = happyGoto action_102
-action_255 (10#) = happyGoto action_103
-action_255 (12#) = happyGoto action_104
-action_255 (67#) = happyGoto action_188
-action_255 (74#) = happyGoto action_404
-action_255 x = happyTcHack x happyReduce_132
-
-action_256 (95#) = happyShift action_402
-action_256 (100#) = happyShift action_403
-action_256 x = happyTcHack x happyFail
-
-action_257 (174#) = happyShift action_51
-action_257 (12#) = happyGoto action_401
-action_257 x = happyTcHack x happyFail
-
-action_258 x = happyTcHack x happyReduce_80
-
-action_259 (94#) = happyShift action_400
-action_259 x = happyTcHack x happyFail
-
-action_260 (94#) = happyShift action_399
-action_260 x = happyTcHack x happyFail
-
-action_261 x = happyTcHack x happyReduce_89
-
-action_262 (103#) = happyShift action_398
-action_262 x = happyTcHack x happyReduce_132
-
-action_263 (95#) = happyShift action_397
-action_263 x = happyTcHack x happyFail
-
-action_264 (104#) = happyShift action_257
-action_264 (174#) = happyShift action_51
-action_264 (12#) = happyGoto action_252
-action_264 (43#) = happyGoto action_260
-action_264 (50#) = happyGoto action_396
-action_264 (54#) = happyGoto action_262
-action_264 (55#) = happyGoto action_263
-action_264 x = happyTcHack x happyFail
-
-action_265 (104#) = happyShift action_257
-action_265 (174#) = happyShift action_51
-action_265 (12#) = happyGoto action_252
-action_265 (43#) = happyGoto action_260
-action_265 (50#) = happyGoto action_395
-action_265 (54#) = happyGoto action_262
-action_265 (55#) = happyGoto action_263
-action_265 x = happyTcHack x happyFail
-
-action_266 x = happyTcHack x happyReduce_91
-
-action_267 (95#) = happyShift action_394
-action_267 x = happyTcHack x happyReduce_107
-
-action_268 (94#) = happyShift action_393
-action_268 x = happyTcHack x happyFail
-
-action_269 x = happyTcHack x happyReduce_81
-
-action_270 (95#) = happyShift action_392
-action_270 x = happyTcHack x happyFail
-
-action_271 x = happyTcHack x happyReduce_82
-
-action_272 x = happyTcHack x happyReduce_90
-
-action_273 x = happyTcHack x happyReduce_84
-
-action_274 x = happyTcHack x happyReduce_83
-
-action_275 x = happyTcHack x happyReduce_85
-
-action_276 (94#) = happyShift action_391
-action_276 x = happyTcHack x happyFail
-
-action_277 x = happyTcHack x happyReduce_76
-
-action_278 (100#) = happyShift action_390
-action_278 x = happyTcHack x happyFail
-
-action_279 (95#) = happyShift action_389
-action_279 x = happyTcHack x happyFail
-
-action_280 (94#) = happyShift action_388
-action_280 x = happyTcHack x happyFail
-
-action_281 x = happyTcHack x happyReduce_88
-
-action_282 x = happyTcHack x happyReduce_78
-
-action_283 (95#) = happyShift action_387
-action_283 (103#) = happyShift action_156
-action_283 x = happyTcHack x happyReduce_128
-
-action_284 (94#) = happyShift action_386
-action_284 x = happyTcHack x happyFail
-
-action_285 x = happyTcHack x happyReduce_77
-
-action_286 x = happyTcHack x happyReduce_79
-
-action_287 (89#) = happyGoto action_385
-action_287 x = happyTcHack x happyReduce_262
-
-action_288 (94#) = happyShift action_384
-action_288 x = happyTcHack x happyFail
-
-action_289 x = happyTcHack x happyReduce_75
-
-action_290 (174#) = happyShift action_51
-action_290 (12#) = happyGoto action_383
-action_290 x = happyTcHack x happyFail
-
-action_291 x = happyTcHack x happyReduce_167
-
-action_292 (105#) = happyShift action_382
-action_292 x = happyTcHack x happyFail
-
-action_293 (97#) = happyShift action_381
-action_293 x = happyTcHack x happyFail
-
-action_294 x = happyTcHack x happyReduce_163
-
-action_295 (96#) = happyShift action_106
-action_295 (98#) = happyShift action_107
-action_295 (104#) = happyShift action_108
-action_295 (106#) = happyShift action_176
-action_295 (110#) = happyShift action_109
-action_295 (111#) = happyShift action_110
-action_295 (114#) = happyShift action_111
-action_295 (121#) = happyShift action_112
-action_295 (170#) = happyShift action_6
-action_295 (171#) = happyShift action_48
-action_295 (172#) = happyShift action_49
-action_295 (174#) = happyShift action_51
-action_295 (8#) = happyGoto action_101
-action_295 (9#) = happyGoto action_102
-action_295 (10#) = happyGoto action_103
-action_295 (12#) = happyGoto action_170
-action_295 (67#) = happyGoto action_171
-action_295 (68#) = happyGoto action_172
-action_295 (69#) = happyGoto action_203
-action_295 (82#) = happyGoto action_204
-action_295 (83#) = happyGoto action_380
-action_295 x = happyTcHack x happyFail
-
-action_296 (96#) = happyShift action_106
-action_296 (98#) = happyShift action_107
-action_296 (104#) = happyShift action_108
-action_296 (106#) = happyShift action_176
-action_296 (110#) = happyShift action_109
-action_296 (111#) = happyShift action_110
-action_296 (114#) = happyShift action_111
-action_296 (121#) = happyShift action_112
-action_296 (170#) = happyShift action_6
-action_296 (171#) = happyShift action_48
-action_296 (172#) = happyShift action_49
-action_296 (174#) = happyShift action_51
-action_296 (8#) = happyGoto action_101
-action_296 (9#) = happyGoto action_102
-action_296 (10#) = happyGoto action_103
-action_296 (12#) = happyGoto action_170
-action_296 (67#) = happyGoto action_171
-action_296 (68#) = happyGoto action_379
-action_296 x = happyTcHack x happyFail
-
-action_297 (96#) = happyShift action_106
-action_297 (98#) = happyShift action_107
-action_297 (104#) = happyShift action_108
-action_297 (106#) = happyShift action_176
-action_297 (110#) = happyShift action_109
-action_297 (111#) = happyShift action_110
-action_297 (114#) = happyShift action_111
-action_297 (121#) = happyShift action_112
-action_297 (170#) = happyShift action_6
-action_297 (171#) = happyShift action_48
-action_297 (172#) = happyShift action_49
-action_297 (174#) = happyShift action_51
-action_297 (8#) = happyGoto action_101
-action_297 (9#) = happyGoto action_102
-action_297 (10#) = happyGoto action_103
-action_297 (12#) = happyGoto action_170
-action_297 (67#) = happyGoto action_171
-action_297 (68#) = happyGoto action_378
-action_297 x = happyTcHack x happyFail
-
-action_298 (96#) = happyShift action_24
-action_298 (98#) = happyShift action_25
-action_298 (104#) = happyShift action_26
-action_298 (109#) = happyShift action_27
-action_298 (110#) = happyShift action_28
-action_298 (111#) = happyShift action_29
-action_298 (114#) = happyShift action_30
-action_298 (119#) = happyShift action_31
-action_298 (124#) = happyShift action_32
-action_298 (125#) = happyShift action_33
-action_298 (126#) = happyShift action_34
-action_298 (127#) = happyShift action_35
-action_298 (128#) = happyShift action_36
-action_298 (129#) = happyShift action_37
-action_298 (131#) = happyShift action_38
-action_298 (134#) = happyShift action_39
-action_298 (137#) = happyShift action_40
-action_298 (140#) = happyShift action_41
-action_298 (145#) = happyShift action_42
-action_298 (156#) = happyShift action_43
-action_298 (157#) = happyShift action_44
-action_298 (161#) = happyShift action_45
-action_298 (162#) = happyShift action_46
-action_298 (167#) = happyShift action_47
-action_298 (170#) = happyShift action_6
-action_298 (171#) = happyShift action_48
-action_298 (172#) = happyShift action_49
-action_298 (173#) = happyShift action_50
-action_298 (174#) = happyShift action_51
-action_298 (8#) = happyGoto action_10
-action_298 (9#) = happyGoto action_11
-action_298 (10#) = happyGoto action_12
-action_298 (11#) = happyGoto action_13
-action_298 (12#) = happyGoto action_14
-action_298 (58#) = happyGoto action_15
-action_298 (59#) = happyGoto action_16
-action_298 (60#) = happyGoto action_17
-action_298 (61#) = happyGoto action_18
-action_298 (62#) = happyGoto action_19
-action_298 (63#) = happyGoto action_377
-action_298 (64#) = happyGoto action_21
-action_298 (72#) = happyGoto action_22
-action_298 (77#) = happyGoto action_23
-action_298 x = happyTcHack x happyFail
-
-action_299 x = happyTcHack x happyReduce_212
-
-action_300 (174#) = happyShift action_51
-action_300 (12#) = happyGoto action_376
-action_300 x = happyTcHack x happyFail
-
-action_301 (96#) = happyShift action_106
-action_301 (98#) = happyShift action_107
-action_301 (104#) = happyShift action_108
-action_301 (110#) = happyShift action_109
-action_301 (111#) = happyShift action_110
-action_301 (114#) = happyShift action_111
-action_301 (121#) = happyShift action_112
-action_301 (170#) = happyShift action_6
-action_301 (171#) = happyShift action_48
-action_301 (172#) = happyShift action_49
-action_301 (174#) = happyShift action_51
-action_301 (8#) = happyGoto action_101
-action_301 (9#) = happyGoto action_102
-action_301 (10#) = happyGoto action_103
-action_301 (12#) = happyGoto action_104
-action_301 (67#) = happyGoto action_375
-action_301 x = happyTcHack x happyFail
-
-action_302 x = happyTcHack x happyReduce_169
-
-action_303 (96#) = happyShift action_24
-action_303 (98#) = happyShift action_25
-action_303 (104#) = happyShift action_26
-action_303 (109#) = happyShift action_27
-action_303 (110#) = happyShift action_28
-action_303 (111#) = happyShift action_29
-action_303 (114#) = happyShift action_30
-action_303 (119#) = happyShift action_31
-action_303 (124#) = happyShift action_32
-action_303 (125#) = happyShift action_33
-action_303 (126#) = happyShift action_34
-action_303 (127#) = happyShift action_35
-action_303 (128#) = happyShift action_36
-action_303 (129#) = happyShift action_37
-action_303 (131#) = happyShift action_38
-action_303 (134#) = happyShift action_39
-action_303 (137#) = happyShift action_40
-action_303 (140#) = happyShift action_41
-action_303 (145#) = happyShift action_42
-action_303 (156#) = happyShift action_43
-action_303 (157#) = happyShift action_44
-action_303 (161#) = happyShift action_45
-action_303 (162#) = happyShift action_46
-action_303 (167#) = happyShift action_47
-action_303 (170#) = happyShift action_6
-action_303 (171#) = happyShift action_48
-action_303 (172#) = happyShift action_49
-action_303 (173#) = happyShift action_50
-action_303 (174#) = happyShift action_51
-action_303 (8#) = happyGoto action_10
-action_303 (9#) = happyGoto action_11
-action_303 (10#) = happyGoto action_12
-action_303 (11#) = happyGoto action_13
-action_303 (12#) = happyGoto action_14
-action_303 (58#) = happyGoto action_15
-action_303 (59#) = happyGoto action_16
-action_303 (60#) = happyGoto action_17
-action_303 (61#) = happyGoto action_18
-action_303 (62#) = happyGoto action_19
-action_303 (63#) = happyGoto action_199
-action_303 (64#) = happyGoto action_21
-action_303 (65#) = happyGoto action_374
-action_303 (72#) = happyGoto action_22
-action_303 (77#) = happyGoto action_23
-action_303 x = happyTcHack x happyReduce_193
-
-action_304 (96#) = happyShift action_24
-action_304 (98#) = happyShift action_25
-action_304 (104#) = happyShift action_26
-action_304 (109#) = happyShift action_27
-action_304 (110#) = happyShift action_28
-action_304 (111#) = happyShift action_29
-action_304 (114#) = happyShift action_30
-action_304 (119#) = happyShift action_31
-action_304 (124#) = happyShift action_32
-action_304 (125#) = happyShift action_33
-action_304 (126#) = happyShift action_34
-action_304 (127#) = happyShift action_35
-action_304 (128#) = happyShift action_36
-action_304 (129#) = happyShift action_37
-action_304 (131#) = happyShift action_38
-action_304 (134#) = happyShift action_39
-action_304 (137#) = happyShift action_40
-action_304 (140#) = happyShift action_41
-action_304 (145#) = happyShift action_42
-action_304 (156#) = happyShift action_43
-action_304 (157#) = happyShift action_44
-action_304 (161#) = happyShift action_45
-action_304 (162#) = happyShift action_46
-action_304 (167#) = happyShift action_47
-action_304 (170#) = happyShift action_6
-action_304 (171#) = happyShift action_48
-action_304 (172#) = happyShift action_49
-action_304 (173#) = happyShift action_50
-action_304 (174#) = happyShift action_51
-action_304 (8#) = happyGoto action_10
-action_304 (9#) = happyGoto action_11
-action_304 (10#) = happyGoto action_12
-action_304 (11#) = happyGoto action_13
-action_304 (12#) = happyGoto action_14
-action_304 (58#) = happyGoto action_15
-action_304 (59#) = happyGoto action_16
-action_304 (60#) = happyGoto action_17
-action_304 (61#) = happyGoto action_18
-action_304 (62#) = happyGoto action_19
-action_304 (63#) = happyGoto action_371
-action_304 (64#) = happyGoto action_21
-action_304 (72#) = happyGoto action_22
-action_304 (77#) = happyGoto action_23
-action_304 (86#) = happyGoto action_372
-action_304 (87#) = happyGoto action_373
-action_304 x = happyTcHack x happyReduce_257
-
-action_305 (95#) = happyShift action_370
-action_305 x = happyTcHack x happyReduce_134
-
-action_306 x = happyTcHack x happyReduce_135
-
-action_307 x = happyTcHack x happyReduce_139
-
-action_308 x = happyTcHack x happyReduce_187
-
-action_309 (140#) = happyShift action_369
-action_309 x = happyTcHack x happyFail
-
-action_310 x = happyTcHack x happyReduce_189
-
-action_311 (96#) = happyShift action_106
-action_311 (98#) = happyShift action_107
-action_311 (104#) = happyShift action_108
-action_311 (110#) = happyShift action_109
-action_311 (111#) = happyShift action_110
-action_311 (114#) = happyShift action_111
-action_311 (121#) = happyShift action_112
-action_311 (170#) = happyShift action_6
-action_311 (171#) = happyShift action_48
-action_311 (172#) = happyShift action_49
-action_311 (174#) = happyShift action_51
-action_311 (8#) = happyGoto action_101
-action_311 (9#) = happyGoto action_102
-action_311 (10#) = happyGoto action_103
-action_311 (12#) = happyGoto action_104
-action_311 (67#) = happyGoto action_188
-action_311 (74#) = happyGoto action_189
-action_311 (84#) = happyGoto action_190
-action_311 (85#) = happyGoto action_368
-action_311 x = happyTcHack x happyReduce_253
-
-action_312 (96#) = happyShift action_24
-action_312 (98#) = happyShift action_25
-action_312 (104#) = happyShift action_26
-action_312 (109#) = happyShift action_27
-action_312 (110#) = happyShift action_28
-action_312 (111#) = happyShift action_29
-action_312 (114#) = happyShift action_30
-action_312 (119#) = happyShift action_31
-action_312 (124#) = happyShift action_32
-action_312 (125#) = happyShift action_33
-action_312 (126#) = happyShift action_34
-action_312 (127#) = happyShift action_35
-action_312 (128#) = happyShift action_36
-action_312 (129#) = happyShift action_37
-action_312 (131#) = happyShift action_38
-action_312 (134#) = happyShift action_39
-action_312 (137#) = happyShift action_40
-action_312 (140#) = happyShift action_41
-action_312 (145#) = happyShift action_42
-action_312 (156#) = happyShift action_43
-action_312 (157#) = happyShift action_44
-action_312 (161#) = happyShift action_45
-action_312 (162#) = happyShift action_46
-action_312 (167#) = happyShift action_47
-action_312 (170#) = happyShift action_6
-action_312 (171#) = happyShift action_48
-action_312 (172#) = happyShift action_49
-action_312 (173#) = happyShift action_50
-action_312 (174#) = happyShift action_51
-action_312 (8#) = happyGoto action_10
-action_312 (9#) = happyGoto action_11
-action_312 (10#) = happyGoto action_12
-action_312 (11#) = happyGoto action_13
-action_312 (12#) = happyGoto action_14
-action_312 (58#) = happyGoto action_15
-action_312 (59#) = happyGoto action_16
-action_312 (60#) = happyGoto action_17
-action_312 (61#) = happyGoto action_18
-action_312 (62#) = happyGoto action_19
-action_312 (63#) = happyGoto action_367
-action_312 (64#) = happyGoto action_21
-action_312 (72#) = happyGoto action_22
-action_312 (77#) = happyGoto action_23
-action_312 x = happyTcHack x happyFail
-
-action_313 x = happyTcHack x happyReduce_233
-
-action_314 (96#) = happyShift action_106
-action_314 (98#) = happyShift action_107
-action_314 (104#) = happyShift action_108
-action_314 (106#) = happyShift action_176
-action_314 (110#) = happyShift action_109
-action_314 (111#) = happyShift action_110
-action_314 (114#) = happyShift action_111
-action_314 (121#) = happyShift action_112
-action_314 (170#) = happyShift action_6
-action_314 (171#) = happyShift action_48
-action_314 (172#) = happyShift action_49
-action_314 (174#) = happyShift action_51
-action_314 (8#) = happyGoto action_101
-action_314 (9#) = happyGoto action_102
-action_314 (10#) = happyGoto action_103
-action_314 (12#) = happyGoto action_170
-action_314 (67#) = happyGoto action_171
-action_314 (68#) = happyGoto action_172
-action_314 (69#) = happyGoto action_203
-action_314 (82#) = happyGoto action_204
-action_314 (83#) = happyGoto action_366
-action_314 x = happyTcHack x happyFail
-
-action_315 x = happyTcHack x happyReduce_238
-
-action_316 x = happyTcHack x happyReduce_182
-
-action_317 (96#) = happyShift action_24
-action_317 (98#) = happyShift action_25
-action_317 (104#) = happyShift action_26
-action_317 (109#) = happyShift action_27
-action_317 (110#) = happyShift action_28
-action_317 (111#) = happyShift action_29
-action_317 (114#) = happyShift action_30
-action_317 (119#) = happyShift action_31
-action_317 (124#) = happyShift action_32
-action_317 (125#) = happyShift action_33
-action_317 (126#) = happyShift action_34
-action_317 (127#) = happyShift action_35
-action_317 (128#) = happyShift action_36
-action_317 (129#) = happyShift action_37
-action_317 (131#) = happyShift action_38
-action_317 (134#) = happyShift action_39
-action_317 (137#) = happyShift action_40
-action_317 (140#) = happyShift action_41
-action_317 (145#) = happyShift action_42
-action_317 (156#) = happyShift action_43
-action_317 (157#) = happyShift action_44
-action_317 (161#) = happyShift action_45
-action_317 (162#) = happyShift action_46
-action_317 (167#) = happyShift action_47
-action_317 (170#) = happyShift action_6
-action_317 (171#) = happyShift action_48
-action_317 (172#) = happyShift action_49
-action_317 (173#) = happyShift action_50
-action_317 (174#) = happyShift action_51
-action_317 (8#) = happyGoto action_10
-action_317 (9#) = happyGoto action_11
-action_317 (10#) = happyGoto action_12
-action_317 (11#) = happyGoto action_13
-action_317 (12#) = happyGoto action_14
-action_317 (58#) = happyGoto action_15
-action_317 (59#) = happyGoto action_16
-action_317 (60#) = happyGoto action_17
-action_317 (61#) = happyGoto action_18
-action_317 (62#) = happyGoto action_19
-action_317 (63#) = happyGoto action_365
-action_317 (64#) = happyGoto action_21
-action_317 (72#) = happyGoto action_22
-action_317 (77#) = happyGoto action_23
-action_317 x = happyTcHack x happyFail
-
-action_318 x = happyTcHack x happyReduce_205
-
-action_319 x = happyTcHack x happyReduce_209
-
-action_320 (174#) = happyShift action_51
-action_320 (12#) = happyGoto action_87
-action_320 (53#) = happyGoto action_180
-action_320 (70#) = happyGoto action_181
-action_320 (73#) = happyGoto action_364
-action_320 x = happyTcHack x happyReduce_229
-
-action_321 (96#) = happyShift action_106
-action_321 (98#) = happyShift action_107
-action_321 (104#) = happyShift action_108
-action_321 (106#) = happyShift action_176
-action_321 (110#) = happyShift action_109
-action_321 (111#) = happyShift action_110
-action_321 (114#) = happyShift action_111
-action_321 (121#) = happyShift action_112
-action_321 (170#) = happyShift action_6
-action_321 (171#) = happyShift action_48
-action_321 (172#) = happyShift action_49
-action_321 (174#) = happyShift action_51
-action_321 (8#) = happyGoto action_101
-action_321 (9#) = happyGoto action_102
-action_321 (10#) = happyGoto action_103
-action_321 (12#) = happyGoto action_170
-action_321 (67#) = happyGoto action_171
-action_321 (68#) = happyGoto action_172
-action_321 (69#) = happyGoto action_363
-action_321 x = happyTcHack x happyFail
-
-action_322 x = happyTcHack x happyReduce_204
-
-action_323 x = happyTcHack x happyReduce_211
-
-action_324 x = happyTcHack x happyReduce_199
-
-action_325 x = happyTcHack x happyReduce_216
-
-action_326 x = happyTcHack x happyReduce_210
-
-action_327 (96#) = happyShift action_106
-action_327 (98#) = happyShift action_107
-action_327 (104#) = happyShift action_108
-action_327 (106#) = happyShift action_176
-action_327 (110#) = happyShift action_109
-action_327 (111#) = happyShift action_110
-action_327 (114#) = happyShift action_111
-action_327 (121#) = happyShift action_112
-action_327 (170#) = happyShift action_6
-action_327 (171#) = happyShift action_48
-action_327 (172#) = happyShift action_49
-action_327 (174#) = happyShift action_51
-action_327 (8#) = happyGoto action_101
-action_327 (9#) = happyGoto action_102
-action_327 (10#) = happyGoto action_103
-action_327 (12#) = happyGoto action_170
-action_327 (67#) = happyGoto action_171
-action_327 (68#) = happyGoto action_172
-action_327 (69#) = happyGoto action_173
-action_327 (79#) = happyGoto action_174
-action_327 (81#) = happyGoto action_362
-action_327 x = happyTcHack x happyReduce_246
-
-action_328 x = happyTcHack x happyReduce_214
-
-action_329 (174#) = happyShift action_51
-action_329 (12#) = happyGoto action_361
-action_329 x = happyTcHack x happyFail
-
-action_330 (112#) = happyShift action_360
-action_330 x = happyTcHack x happyFail
-
-action_331 x = happyTcHack x happyReduce_241
-
-action_332 x = happyTcHack x happyReduce_245
-
-action_333 x = happyTcHack x happyReduce_160
-
-action_334 x = happyTcHack x happyReduce_150
-
-action_335 x = happyTcHack x happyReduce_197
-
-action_336 (99#) = happyShift action_359
-action_336 x = happyTcHack x happyFail
-
-action_337 x = happyTcHack x happyReduce_154
-
-action_338 (97#) = happyShift action_358
-action_338 x = happyTcHack x happyFail
-
-action_339 x = happyTcHack x happyReduce_129
-
-action_340 (97#) = happyShift action_357
-action_340 x = happyTcHack x happyFail
-
-action_341 x = happyTcHack x happyReduce_223
-
-action_342 (97#) = happyShift action_155
-action_342 (103#) = happyShift action_156
-action_342 x = happyTcHack x happyReduce_128
-
-action_343 x = happyTcHack x happyReduce_25
-
-action_344 (151#) = happyShift action_356
-action_344 (28#) = happyGoto action_355
-action_344 x = happyTcHack x happyReduce_55
-
-action_345 (102#) = happyShift action_354
-action_345 x = happyTcHack x happyReduce_27
-
-action_346 (103#) = happyShift action_352
-action_346 (169#) = happyShift action_353
-action_346 x = happyTcHack x happyReduce_66
-
-action_347 (174#) = happyShift action_51
-action_347 (12#) = happyGoto action_351
-action_347 x = happyTcHack x happyFail
-
-action_348 (174#) = happyShift action_51
-action_348 (12#) = happyGoto action_241
-action_348 (32#) = happyGoto action_349
-action_348 (33#) = happyGoto action_350
-action_348 x = happyTcHack x happyReduce_65
-
-action_349 x = happyTcHack x happyReduce_33
-
-action_350 (103#) = happyShift action_352
-action_350 x = happyTcHack x happyReduce_66
-
-action_351 x = happyTcHack x happyReduce_32
-
-action_352 (174#) = happyShift action_51
-action_352 (12#) = happyGoto action_241
-action_352 (32#) = happyGoto action_468
-action_352 (33#) = happyGoto action_350
-action_352 x = happyTcHack x happyReduce_65
-
-action_353 (98#) = happyShift action_408
-action_353 (174#) = happyShift action_51
-action_353 (12#) = happyGoto action_406
-action_353 (27#) = happyGoto action_467
-action_353 (29#) = happyGoto action_425
-action_353 x = happyTcHack x happyReduce_52
-
-action_354 (174#) = happyShift action_51
-action_354 (12#) = happyGoto action_241
-action_354 (33#) = happyGoto action_466
-action_354 x = happyTcHack x happyReduce_50
-
-action_355 x = happyTcHack x happyReduce_26
-
-action_356 (98#) = happyShift action_408
-action_356 (174#) = happyShift action_51
-action_356 (12#) = happyGoto action_406
-action_356 (27#) = happyGoto action_465
-action_356 (29#) = happyGoto action_425
-action_356 x = happyTcHack x happyReduce_52
-
-action_357 x = happyTcHack x happyReduce_188
-
-action_358 x = happyTcHack x happyReduce_159
-
-action_359 x = happyTcHack x happyReduce_239
-
-action_360 x = happyTcHack x happyReduce_155
-
-action_361 x = happyTcHack x happyReduce_201
-
-action_362 x = happyTcHack x happyReduce_248
-
-action_363 (108#) = happyShift action_296
-action_363 (117#) = happyShift action_297
-action_363 x = happyTcHack x happyReduce_221
-
-action_364 x = happyTcHack x happyReduce_231
-
-action_365 x = happyTcHack x happyReduce_183
-
-action_366 (97#) = happyShift action_464
-action_366 x = happyTcHack x happyFail
-
-action_367 x = happyTcHack x happyReduce_252
-
-action_368 x = happyTcHack x happyReduce_255
-
-action_369 (96#) = happyShift action_24
-action_369 (98#) = happyShift action_25
-action_369 (104#) = happyShift action_26
-action_369 (109#) = happyShift action_27
-action_369 (110#) = happyShift action_28
-action_369 (111#) = happyShift action_29
-action_369 (114#) = happyShift action_30
-action_369 (119#) = happyShift action_31
-action_369 (124#) = happyShift action_32
-action_369 (125#) = happyShift action_33
-action_369 (126#) = happyShift action_34
-action_369 (127#) = happyShift action_35
-action_369 (128#) = happyShift action_36
-action_369 (129#) = happyShift action_37
-action_369 (131#) = happyShift action_38
-action_369 (134#) = happyShift action_39
-action_369 (137#) = happyShift action_40
-action_369 (140#) = happyShift action_41
-action_369 (145#) = happyShift action_42
-action_369 (156#) = happyShift action_43
-action_369 (157#) = happyShift action_44
-action_369 (161#) = happyShift action_45
-action_369 (162#) = happyShift action_46
-action_369 (167#) = happyShift action_47
-action_369 (170#) = happyShift action_6
-action_369 (171#) = happyShift action_48
-action_369 (172#) = happyShift action_49
-action_369 (173#) = happyShift action_50
-action_369 (174#) = happyShift action_51
-action_369 (8#) = happyGoto action_10
-action_369 (9#) = happyGoto action_11
-action_369 (10#) = happyGoto action_12
-action_369 (11#) = happyGoto action_13
-action_369 (12#) = happyGoto action_14
-action_369 (58#) = happyGoto action_15
-action_369 (59#) = happyGoto action_16
-action_369 (60#) = happyGoto action_17
-action_369 (61#) = happyGoto action_18
-action_369 (62#) = happyGoto action_19
-action_369 (63#) = happyGoto action_463
-action_369 (64#) = happyGoto action_21
-action_369 (72#) = happyGoto action_22
-action_369 (77#) = happyGoto action_23
-action_369 x = happyTcHack x happyFail
-
-action_370 (96#) = happyShift action_24
-action_370 (98#) = happyShift action_25
-action_370 (104#) = happyShift action_26
-action_370 (109#) = happyShift action_27
-action_370 (110#) = happyShift action_28
-action_370 (111#) = happyShift action_29
-action_370 (114#) = happyShift action_30
-action_370 (119#) = happyShift action_31
-action_370 (124#) = happyShift action_32
-action_370 (125#) = happyShift action_33
-action_370 (126#) = happyShift action_34
-action_370 (127#) = happyShift action_35
-action_370 (128#) = happyShift action_36
-action_370 (129#) = happyShift action_37
-action_370 (131#) = happyShift action_38
-action_370 (134#) = happyShift action_39
-action_370 (137#) = happyShift action_40
-action_370 (140#) = happyShift action_41
-action_370 (145#) = happyShift action_42
-action_370 (156#) = happyShift action_43
-action_370 (157#) = happyShift action_44
-action_370 (161#) = happyShift action_45
-action_370 (162#) = happyShift action_46
-action_370 (167#) = happyShift action_47
-action_370 (170#) = happyShift action_6
-action_370 (171#) = happyShift action_48
-action_370 (172#) = happyShift action_49
-action_370 (173#) = happyShift action_50
-action_370 (174#) = happyShift action_51
-action_370 (8#) = happyGoto action_10
-action_370 (9#) = happyGoto action_11
-action_370 (10#) = happyGoto action_12
-action_370 (11#) = happyGoto action_13
-action_370 (12#) = happyGoto action_14
-action_370 (58#) = happyGoto action_15
-action_370 (59#) = happyGoto action_16
-action_370 (60#) = happyGoto action_17
-action_370 (61#) = happyGoto action_18
-action_370 (62#) = happyGoto action_19
-action_370 (63#) = happyGoto action_462
-action_370 (64#) = happyGoto action_21
-action_370 (72#) = happyGoto action_22
-action_370 (77#) = happyGoto action_23
-action_370 x = happyTcHack x happyFail
-
-action_371 (123#) = happyShift action_461
-action_371 x = happyTcHack x happyFail
-
-action_372 (94#) = happyShift action_460
-action_372 x = happyTcHack x happyReduce_258
-
-action_373 (97#) = happyShift action_459
-action_373 x = happyTcHack x happyFail
-
-action_374 x = happyTcHack x happyReduce_195
-
-action_375 x = happyTcHack x happyReduce_215
-
-action_376 (96#) = happyShift action_106
-action_376 (98#) = happyShift action_107
-action_376 (104#) = happyShift action_108
-action_376 (110#) = happyShift action_109
-action_376 (111#) = happyShift action_110
-action_376 (114#) = happyShift action_111
-action_376 (121#) = happyShift action_112
-action_376 (170#) = happyShift action_6
-action_376 (171#) = happyShift action_48
-action_376 (172#) = happyShift action_49
-action_376 (174#) = happyShift action_51
-action_376 (8#) = happyGoto action_101
-action_376 (9#) = happyGoto action_102
-action_376 (10#) = happyGoto action_103
-action_376 (12#) = happyGoto action_104
-action_376 (67#) = happyGoto action_188
-action_376 (74#) = happyGoto action_458
-action_376 x = happyTcHack x happyReduce_205
-
-action_377 x = happyTcHack x happyReduce_249
-
-action_378 x = happyTcHack x happyReduce_219
-
-action_379 x = happyTcHack x happyReduce_218
-
-action_380 x = happyTcHack x happyReduce_251
-
-action_381 x = happyTcHack x happyReduce_164
-
-action_382 x = happyTcHack x happyReduce_165
-
-action_383 (89#) = happyGoto action_457
-action_383 x = happyTcHack x happyReduce_262
-
-action_384 (104#) = happyShift action_290
-action_384 (174#) = happyShift action_51
-action_384 (12#) = happyGoto action_287
-action_384 (36#) = happyGoto action_288
-action_384 (46#) = happyGoto action_456
-action_384 x = happyTcHack x happyReduce_113
-
-action_385 (96#) = happyShift action_140
-action_385 (98#) = happyShift action_455
-action_385 (104#) = happyShift action_26
-action_385 (109#) = happyShift action_83
-action_385 (110#) = happyShift action_28
-action_385 (111#) = happyShift action_29
-action_385 (125#) = happyShift action_33
-action_385 (126#) = happyShift action_34
-action_385 (127#) = happyShift action_35
-action_385 (128#) = happyShift action_36
-action_385 (129#) = happyShift action_37
-action_385 (134#) = happyShift action_39
-action_385 (170#) = happyShift action_6
-action_385 (171#) = happyShift action_48
-action_385 (172#) = happyShift action_49
-action_385 (173#) = happyShift action_50
-action_385 (174#) = happyShift action_51
-action_385 (8#) = happyGoto action_10
-action_385 (9#) = happyGoto action_11
-action_385 (10#) = happyGoto action_12
-action_385 (11#) = happyGoto action_13
-action_385 (12#) = happyGoto action_79
-action_385 (58#) = happyGoto action_453
-action_385 (72#) = happyGoto action_22
-action_385 (88#) = happyGoto action_454
-action_385 x = happyTcHack x happyReduce_95
-
-action_386 (174#) = happyShift action_51
-action_386 (12#) = happyGoto action_451
-action_386 (38#) = happyGoto action_284
-action_386 (48#) = happyGoto action_452
-action_386 x = happyTcHack x happyReduce_117
-
-action_387 (174#) = happyShift action_51
-action_387 (12#) = happyGoto action_448
-action_387 (39#) = happyGoto action_449
-action_387 (40#) = happyGoto action_450
-action_387 x = happyTcHack x happyReduce_102
-
-action_388 (174#) = happyShift action_51
-action_388 (12#) = happyGoto action_279
-action_388 (44#) = happyGoto action_280
-action_388 (51#) = happyGoto action_447
-action_388 x = happyTcHack x happyReduce_123
-
-action_389 (174#) = happyShift action_51
-action_389 (12#) = happyGoto action_446
-action_389 x = happyTcHack x happyFail
-
-action_390 (96#) = happyShift action_24
-action_390 (98#) = happyShift action_25
-action_390 (104#) = happyShift action_26
-action_390 (109#) = happyShift action_27
-action_390 (110#) = happyShift action_28
-action_390 (111#) = happyShift action_29
-action_390 (114#) = happyShift action_30
-action_390 (119#) = happyShift action_31
-action_390 (124#) = happyShift action_32
-action_390 (125#) = happyShift action_33
-action_390 (126#) = happyShift action_34
-action_390 (127#) = happyShift action_35
-action_390 (128#) = happyShift action_36
-action_390 (129#) = happyShift action_37
-action_390 (131#) = happyShift action_38
-action_390 (134#) = happyShift action_39
-action_390 (137#) = happyShift action_40
-action_390 (140#) = happyShift action_41
-action_390 (145#) = happyShift action_42
-action_390 (156#) = happyShift action_43
-action_390 (157#) = happyShift action_44
-action_390 (161#) = happyShift action_45
-action_390 (162#) = happyShift action_46
-action_390 (167#) = happyShift action_47
-action_390 (170#) = happyShift action_6
-action_390 (171#) = happyShift action_48
-action_390 (172#) = happyShift action_49
-action_390 (173#) = happyShift action_50
-action_390 (174#) = happyShift action_51
-action_390 (8#) = happyGoto action_10
-action_390 (9#) = happyGoto action_11
-action_390 (10#) = happyGoto action_12
-action_390 (11#) = happyGoto action_13
-action_390 (12#) = happyGoto action_14
-action_390 (58#) = happyGoto action_15
-action_390 (59#) = happyGoto action_16
-action_390 (60#) = happyGoto action_17
-action_390 (61#) = happyGoto action_18
-action_390 (62#) = happyGoto action_19
-action_390 (63#) = happyGoto action_445
-action_390 (64#) = happyGoto action_21
-action_390 (72#) = happyGoto action_22
-action_390 (77#) = happyGoto action_23
-action_390 x = happyTcHack x happyFail
-
-action_391 (174#) = happyShift action_51
-action_391 (12#) = happyGoto action_87
-action_391 (37#) = happyGoto action_276
-action_391 (47#) = happyGoto action_444
-action_391 (53#) = happyGoto action_278
-action_391 x = happyTcHack x happyReduce_115
-
-action_392 (96#) = happyShift action_443
-action_392 x = happyTcHack x happyFail
-
-action_393 (174#) = happyShift action_51
-action_393 (12#) = happyGoto action_267
-action_393 (41#) = happyGoto action_268
-action_393 (49#) = happyGoto action_442
-action_393 x = happyTcHack x happyReduce_119
-
-action_394 (98#) = happyShift action_441
-action_394 (174#) = happyShift action_51
-action_394 (12#) = happyGoto action_438
-action_394 (42#) = happyGoto action_439
-action_394 (52#) = happyGoto action_440
-action_394 x = happyTcHack x happyReduce_125
-
-action_395 x = happyTcHack x happyReduce_87
-
-action_396 x = happyTcHack x happyReduce_86
-
-action_397 (96#) = happyShift action_24
-action_397 (98#) = happyShift action_25
-action_397 (104#) = happyShift action_26
-action_397 (109#) = happyShift action_27
-action_397 (110#) = happyShift action_28
-action_397 (111#) = happyShift action_29
-action_397 (114#) = happyShift action_30
-action_397 (119#) = happyShift action_31
-action_397 (124#) = happyShift action_32
-action_397 (125#) = happyShift action_33
-action_397 (126#) = happyShift action_34
-action_397 (127#) = happyShift action_35
-action_397 (128#) = happyShift action_36
-action_397 (129#) = happyShift action_37
-action_397 (131#) = happyShift action_38
-action_397 (134#) = happyShift action_39
-action_397 (137#) = happyShift action_40
-action_397 (140#) = happyShift action_41
-action_397 (145#) = happyShift action_42
-action_397 (156#) = happyShift action_43
-action_397 (157#) = happyShift action_44
-action_397 (161#) = happyShift action_45
-action_397 (162#) = happyShift action_46
-action_397 (167#) = happyShift action_47
-action_397 (170#) = happyShift action_6
-action_397 (171#) = happyShift action_48
-action_397 (172#) = happyShift action_49
-action_397 (173#) = happyShift action_50
-action_397 (174#) = happyShift action_51
-action_397 (8#) = happyGoto action_10
-action_397 (9#) = happyGoto action_11
-action_397 (10#) = happyGoto action_12
-action_397 (11#) = happyGoto action_13
-action_397 (12#) = happyGoto action_14
-action_397 (58#) = happyGoto action_15
-action_397 (59#) = happyGoto action_16
-action_397 (60#) = happyGoto action_17
-action_397 (61#) = happyGoto action_18
-action_397 (62#) = happyGoto action_19
-action_397 (63#) = happyGoto action_437
-action_397 (64#) = happyGoto action_21
-action_397 (72#) = happyGoto action_22
-action_397 (77#) = happyGoto action_23
-action_397 x = happyTcHack x happyFail
-
-action_398 (104#) = happyShift action_257
-action_398 (174#) = happyShift action_51
-action_398 (12#) = happyGoto action_252
-action_398 (54#) = happyGoto action_262
-action_398 (55#) = happyGoto action_436
-action_398 x = happyTcHack x happyFail
-
-action_399 (104#) = happyShift action_257
-action_399 (174#) = happyShift action_51
-action_399 (12#) = happyGoto action_252
-action_399 (43#) = happyGoto action_260
-action_399 (50#) = happyGoto action_435
-action_399 (54#) = happyGoto action_262
-action_399 (55#) = happyGoto action_263
-action_399 x = happyTcHack x happyReduce_121
-
-action_400 x = happyTcHack x happyReduce_94
-
-action_401 (105#) = happyShift action_434
-action_401 x = happyTcHack x happyFail
-
-action_402 (96#) = happyShift action_24
-action_402 (98#) = happyShift action_25
-action_402 (104#) = happyShift action_26
-action_402 (109#) = happyShift action_27
-action_402 (110#) = happyShift action_28
-action_402 (111#) = happyShift action_29
-action_402 (114#) = happyShift action_30
-action_402 (119#) = happyShift action_31
-action_402 (124#) = happyShift action_32
-action_402 (125#) = happyShift action_33
-action_402 (126#) = happyShift action_34
-action_402 (127#) = happyShift action_35
-action_402 (128#) = happyShift action_36
-action_402 (129#) = happyShift action_37
-action_402 (131#) = happyShift action_38
-action_402 (134#) = happyShift action_39
-action_402 (137#) = happyShift action_40
-action_402 (140#) = happyShift action_41
-action_402 (145#) = happyShift action_42
-action_402 (156#) = happyShift action_43
-action_402 (157#) = happyShift action_44
-action_402 (161#) = happyShift action_45
-action_402 (162#) = happyShift action_46
-action_402 (167#) = happyShift action_47
-action_402 (170#) = happyShift action_6
-action_402 (171#) = happyShift action_48
-action_402 (172#) = happyShift action_49
-action_402 (173#) = happyShift action_50
-action_402 (174#) = happyShift action_51
-action_402 (8#) = happyGoto action_10
-action_402 (9#) = happyGoto action_11
-action_402 (10#) = happyGoto action_12
-action_402 (11#) = happyGoto action_13
-action_402 (12#) = happyGoto action_14
-action_402 (58#) = happyGoto action_15
-action_402 (59#) = happyGoto action_16
-action_402 (60#) = happyGoto action_17
-action_402 (61#) = happyGoto action_18
-action_402 (62#) = happyGoto action_19
-action_402 (63#) = happyGoto action_433
-action_402 (64#) = happyGoto action_21
-action_402 (72#) = happyGoto action_22
-action_402 (77#) = happyGoto action_23
-action_402 x = happyTcHack x happyFail
-
-action_403 (96#) = happyShift action_24
-action_403 (98#) = happyShift action_25
-action_403 (104#) = happyShift action_26
-action_403 (109#) = happyShift action_27
-action_403 (110#) = happyShift action_28
-action_403 (111#) = happyShift action_29
-action_403 (114#) = happyShift action_30
-action_403 (119#) = happyShift action_31
-action_403 (124#) = happyShift action_32
-action_403 (125#) = happyShift action_33
-action_403 (126#) = happyShift action_34
-action_403 (127#) = happyShift action_35
-action_403 (128#) = happyShift action_36
-action_403 (129#) = happyShift action_37
-action_403 (131#) = happyShift action_38
-action_403 (134#) = happyShift action_39
-action_403 (137#) = happyShift action_40
-action_403 (140#) = happyShift action_41
-action_403 (145#) = happyShift action_42
-action_403 (156#) = happyShift action_43
-action_403 (157#) = happyShift action_44
-action_403 (161#) = happyShift action_45
-action_403 (162#) = happyShift action_46
-action_403 (167#) = happyShift action_47
-action_403 (170#) = happyShift action_6
-action_403 (171#) = happyShift action_48
-action_403 (172#) = happyShift action_49
-action_403 (173#) = happyShift action_50
-action_403 (174#) = happyShift action_51
-action_403 (8#) = happyGoto action_10
-action_403 (9#) = happyGoto action_11
-action_403 (10#) = happyGoto action_12
-action_403 (11#) = happyGoto action_13
-action_403 (12#) = happyGoto action_14
-action_403 (58#) = happyGoto action_15
-action_403 (59#) = happyGoto action_16
-action_403 (60#) = happyGoto action_17
-action_403 (61#) = happyGoto action_18
-action_403 (62#) = happyGoto action_19
-action_403 (63#) = happyGoto action_432
-action_403 (64#) = happyGoto action_21
-action_403 (72#) = happyGoto action_22
-action_403 (77#) = happyGoto action_23
-action_403 x = happyTcHack x happyFail
-
-action_404 (95#) = happyShift action_431
-action_404 x = happyTcHack x happyFail
-
-action_405 (104#) = happyShift action_257
-action_405 (174#) = happyShift action_51
-action_405 (12#) = happyGoto action_252
-action_405 (34#) = happyGoto action_253
-action_405 (45#) = happyGoto action_430
-action_405 (54#) = happyGoto action_255
-action_405 (55#) = happyGoto action_256
-action_405 x = happyTcHack x happyReduce_111
-
-action_406 x = happyTcHack x happyReduce_57
-
-action_407 (101#) = happyShift action_429
-action_407 x = happyTcHack x happyFail
-
-action_408 (142#) = happyShift action_427
-action_408 (144#) = happyShift action_428
-action_408 (31#) = happyGoto action_426
-action_408 x = happyTcHack x happyReduce_62
-
-action_409 x = happyTcHack x happyReduce_38
-
-action_410 x = happyTcHack x happyReduce_37
-
-action_411 x = happyTcHack x happyReduce_47
-
-action_412 x = happyTcHack x happyReduce_46
-
-action_413 (98#) = happyShift action_408
-action_413 (174#) = happyShift action_51
-action_413 (12#) = happyGoto action_406
-action_413 (27#) = happyGoto action_424
-action_413 (29#) = happyGoto action_425
-action_413 x = happyTcHack x happyReduce_52
-
-action_414 (174#) = happyShift action_51
-action_414 (12#) = happyGoto action_241
-action_414 (33#) = happyGoto action_423
-action_414 x = happyTcHack x happyReduce_50
-
-action_415 (96#) = happyShift action_422
-action_415 x = happyTcHack x happyFail
-
-action_416 (174#) = happyShift action_51
-action_416 (12#) = happyGoto action_87
-action_416 (53#) = happyGoto action_421
-action_416 x = happyTcHack x happyFail
-
-action_417 (104#) = happyShift action_420
-action_417 x = happyTcHack x happyFail
-
-action_418 (95#) = happyShift action_419
-action_418 x = happyTcHack x happyFail
-
-action_419 (174#) = happyShift action_51
-action_419 (12#) = happyGoto action_492
-action_419 x = happyTcHack x happyFail
-
-action_420 (174#) = happyShift action_51
-action_420 (12#) = happyGoto action_87
-action_420 (53#) = happyGoto action_491
-action_420 x = happyTcHack x happyFail
-
-action_421 (105#) = happyShift action_490
-action_421 x = happyTcHack x happyFail
-
-action_422 (25#) = happyGoto action_489
-action_422 x = happyTcHack x happyReduce_48
-
-action_423 (169#) = happyShift action_488
-action_423 x = happyTcHack x happyFail
-
-action_424 (102#) = happyShift action_487
-action_424 x = happyTcHack x happyReduce_42
-
-action_425 (103#) = happyShift action_486
-action_425 x = happyTcHack x happyReduce_53
-
-action_426 (174#) = happyShift action_51
-action_426 (12#) = happyGoto action_485
-action_426 x = happyTcHack x happyFail
-
-action_427 x = happyTcHack x happyReduce_63
-
-action_428 x = happyTcHack x happyReduce_64
-
-action_429 (98#) = happyShift action_408
-action_429 (174#) = happyShift action_51
-action_429 (12#) = happyGoto action_406
-action_429 (29#) = happyGoto action_484
-action_429 x = happyTcHack x happyFail
-
-action_430 x = happyTcHack x happyReduce_112
-
-action_431 (96#) = happyShift action_24
-action_431 (98#) = happyShift action_25
-action_431 (104#) = happyShift action_26
-action_431 (109#) = happyShift action_27
-action_431 (110#) = happyShift action_28
-action_431 (111#) = happyShift action_29
-action_431 (114#) = happyShift action_30
-action_431 (119#) = happyShift action_31
-action_431 (124#) = happyShift action_32
-action_431 (125#) = happyShift action_33
-action_431 (126#) = happyShift action_34
-action_431 (127#) = happyShift action_35
-action_431 (128#) = happyShift action_36
-action_431 (129#) = happyShift action_37
-action_431 (131#) = happyShift action_38
-action_431 (134#) = happyShift action_39
-action_431 (137#) = happyShift action_40
-action_431 (140#) = happyShift action_41
-action_431 (145#) = happyShift action_42
-action_431 (156#) = happyShift action_43
-action_431 (157#) = happyShift action_44
-action_431 (161#) = happyShift action_45
-action_431 (162#) = happyShift action_46
-action_431 (167#) = happyShift action_47
-action_431 (170#) = happyShift action_6
-action_431 (171#) = happyShift action_48
-action_431 (172#) = happyShift action_49
-action_431 (173#) = happyShift action_50
-action_431 (174#) = happyShift action_51
-action_431 (8#) = happyGoto action_10
-action_431 (9#) = happyGoto action_11
-action_431 (10#) = happyGoto action_12
-action_431 (11#) = happyGoto action_13
-action_431 (12#) = happyGoto action_14
-action_431 (58#) = happyGoto action_15
-action_431 (59#) = happyGoto action_16
-action_431 (60#) = happyGoto action_17
-action_431 (61#) = happyGoto action_18
-action_431 (62#) = happyGoto action_19
-action_431 (63#) = happyGoto action_483
-action_431 (64#) = happyGoto action_21
-action_431 (72#) = happyGoto action_22
-action_431 (77#) = happyGoto action_23
-action_431 x = happyTcHack x happyFail
-
-action_432 (95#) = happyShift action_482
-action_432 x = happyTcHack x happyReduce_71
-
-action_433 x = happyTcHack x happyReduce_72
-
-action_434 x = happyTcHack x happyReduce_131
-
-action_435 x = happyTcHack x happyReduce_122
-
-action_436 x = happyTcHack x happyReduce_133
-
-action_437 x = happyTcHack x happyReduce_109
-
-action_438 (89#) = happyGoto action_481
-action_438 x = happyTcHack x happyReduce_262
-
-action_439 (108#) = happyShift action_480
-action_439 x = happyTcHack x happyReduce_126
-
-action_440 x = happyTcHack x happyReduce_105
-
-action_441 (140#) = happyShift action_479
-action_441 x = happyTcHack x happyFail
-
-action_442 x = happyTcHack x happyReduce_120
-
-action_443 (25#) = happyGoto action_478
-action_443 x = happyTcHack x happyReduce_48
-
-action_444 x = happyTcHack x happyReduce_116
-
-action_445 x = happyTcHack x happyReduce_98
-
-action_446 x = happyTcHack x happyReduce_110
-
-action_447 x = happyTcHack x happyReduce_124
-
-action_448 (107#) = happyShift action_477
-action_448 x = happyTcHack x happyReduce_100
-
-action_449 (108#) = happyShift action_476
-action_449 x = happyTcHack x happyReduce_103
-
-action_450 x = happyTcHack x happyReduce_99
-
-action_451 (95#) = happyShift action_387
-action_451 x = happyTcHack x happyFail
-
-action_452 x = happyTcHack x happyReduce_118
-
-action_453 x = happyTcHack x happyReduce_261
-
-action_454 x = happyTcHack x happyReduce_263
-
-action_455 (96#) = happyShift action_24
-action_455 (98#) = happyShift action_25
-action_455 (104#) = happyShift action_26
-action_455 (109#) = happyShift action_27
-action_455 (110#) = happyShift action_28
-action_455 (111#) = happyShift action_29
-action_455 (114#) = happyShift action_30
-action_455 (119#) = happyShift action_31
-action_455 (121#) = happyShift action_100
-action_455 (124#) = happyShift action_32
-action_455 (125#) = happyShift action_33
-action_455 (126#) = happyShift action_34
-action_455 (127#) = happyShift action_35
-action_455 (128#) = happyShift action_36
-action_455 (129#) = happyShift action_37
-action_455 (131#) = happyShift action_38
-action_455 (134#) = happyShift action_39
-action_455 (137#) = happyShift action_40
-action_455 (140#) = happyShift action_123
-action_455 (145#) = happyShift action_42
-action_455 (156#) = happyShift action_43
-action_455 (157#) = happyShift action_44
-action_455 (161#) = happyShift action_45
-action_455 (162#) = happyShift action_46
-action_455 (167#) = happyShift action_47
-action_455 (170#) = happyShift action_6
-action_455 (171#) = happyShift action_48
-action_455 (172#) = happyShift action_49
-action_455 (173#) = happyShift action_50
-action_455 (174#) = happyShift action_51
-action_455 (8#) = happyGoto action_10
-action_455 (9#) = happyGoto action_11
-action_455 (10#) = happyGoto action_12
-action_455 (11#) = happyGoto action_13
-action_455 (12#) = happyGoto action_120
-action_455 (58#) = happyGoto action_15
-action_455 (59#) = happyGoto action_16
-action_455 (60#) = happyGoto action_17
-action_455 (61#) = happyGoto action_18
-action_455 (62#) = happyGoto action_19
-action_455 (63#) = happyGoto action_121
-action_455 (64#) = happyGoto action_21
-action_455 (72#) = happyGoto action_22
-action_455 (75#) = happyGoto action_97
-action_455 (76#) = happyGoto action_475
-action_455 (77#) = happyGoto action_23
-action_455 x = happyTcHack x happyReduce_236
-
-action_456 x = happyTcHack x happyReduce_114
-
-action_457 (96#) = happyShift action_140
-action_457 (98#) = happyShift action_455
-action_457 (104#) = happyShift action_26
-action_457 (105#) = happyShift action_474
-action_457 (109#) = happyShift action_83
-action_457 (110#) = happyShift action_28
-action_457 (111#) = happyShift action_29
-action_457 (125#) = happyShift action_33
-action_457 (126#) = happyShift action_34
-action_457 (127#) = happyShift action_35
-action_457 (128#) = happyShift action_36
-action_457 (129#) = happyShift action_37
-action_457 (134#) = happyShift action_39
-action_457 (170#) = happyShift action_6
-action_457 (171#) = happyShift action_48
-action_457 (172#) = happyShift action_49
-action_457 (173#) = happyShift action_50
-action_457 (174#) = happyShift action_51
-action_457 (8#) = happyGoto action_10
-action_457 (9#) = happyGoto action_11
-action_457 (10#) = happyGoto action_12
-action_457 (11#) = happyGoto action_13
-action_457 (12#) = happyGoto action_79
-action_457 (58#) = happyGoto action_453
-action_457 (72#) = happyGoto action_22
-action_457 (88#) = happyGoto action_454
-action_457 x = happyTcHack x happyFail
-
-action_458 x = happyTcHack x happyReduce_213
-
-action_459 x = happyTcHack x happyReduce_168
-
-action_460 (96#) = happyShift action_24
-action_460 (98#) = happyShift action_25
-action_460 (104#) = happyShift action_26
-action_460 (109#) = happyShift action_27
-action_460 (110#) = happyShift action_28
-action_460 (111#) = happyShift action_29
-action_460 (114#) = happyShift action_30
-action_460 (119#) = happyShift action_31
-action_460 (124#) = happyShift action_32
-action_460 (125#) = happyShift action_33
-action_460 (126#) = happyShift action_34
-action_460 (127#) = happyShift action_35
-action_460 (128#) = happyShift action_36
-action_460 (129#) = happyShift action_37
-action_460 (131#) = happyShift action_38
-action_460 (134#) = happyShift action_39
-action_460 (137#) = happyShift action_40
-action_460 (140#) = happyShift action_41
-action_460 (145#) = happyShift action_42
-action_460 (156#) = happyShift action_43
-action_460 (157#) = happyShift action_44
-action_460 (161#) = happyShift action_45
-action_460 (162#) = happyShift action_46
-action_460 (167#) = happyShift action_47
-action_460 (170#) = happyShift action_6
-action_460 (171#) = happyShift action_48
-action_460 (172#) = happyShift action_49
-action_460 (173#) = happyShift action_50
-action_460 (174#) = happyShift action_51
-action_460 (8#) = happyGoto action_10
-action_460 (9#) = happyGoto action_11
-action_460 (10#) = happyGoto action_12
-action_460 (11#) = happyGoto action_13
-action_460 (12#) = happyGoto action_14
-action_460 (58#) = happyGoto action_15
-action_460 (59#) = happyGoto action_16
-action_460 (60#) = happyGoto action_17
-action_460 (61#) = happyGoto action_18
-action_460 (62#) = happyGoto action_19
-action_460 (63#) = happyGoto action_371
-action_460 (64#) = happyGoto action_21
-action_460 (72#) = happyGoto action_22
-action_460 (77#) = happyGoto action_23
-action_460 (86#) = happyGoto action_372
-action_460 (87#) = happyGoto action_473
-action_460 x = happyTcHack x happyReduce_257
-
-action_461 (96#) = happyShift action_24
-action_461 (98#) = happyShift action_25
-action_461 (104#) = happyShift action_26
-action_461 (109#) = happyShift action_27
-action_461 (110#) = happyShift action_28
-action_461 (111#) = happyShift action_29
-action_461 (114#) = happyShift action_30
-action_461 (119#) = happyShift action_31
-action_461 (124#) = happyShift action_32
-action_461 (125#) = happyShift action_33
-action_461 (126#) = happyShift action_34
-action_461 (127#) = happyShift action_35
-action_461 (128#) = happyShift action_36
-action_461 (129#) = happyShift action_37
-action_461 (131#) = happyShift action_38
-action_461 (134#) = happyShift action_39
-action_461 (137#) = happyShift action_40
-action_461 (140#) = happyShift action_41
-action_461 (145#) = happyShift action_42
-action_461 (156#) = happyShift action_43
-action_461 (157#) = happyShift action_44
-action_461 (161#) = happyShift action_45
-action_461 (162#) = happyShift action_46
-action_461 (167#) = happyShift action_47
-action_461 (170#) = happyShift action_6
-action_461 (171#) = happyShift action_48
-action_461 (172#) = happyShift action_49
-action_461 (173#) = happyShift action_50
-action_461 (174#) = happyShift action_51
-action_461 (8#) = happyGoto action_10
-action_461 (9#) = happyGoto action_11
-action_461 (10#) = happyGoto action_12
-action_461 (11#) = happyGoto action_13
-action_461 (12#) = happyGoto action_14
-action_461 (58#) = happyGoto action_15
-action_461 (59#) = happyGoto action_16
-action_461 (60#) = happyGoto action_17
-action_461 (61#) = happyGoto action_18
-action_461 (62#) = happyGoto action_19
-action_461 (63#) = happyGoto action_472
-action_461 (64#) = happyGoto action_21
-action_461 (72#) = happyGoto action_22
-action_461 (77#) = happyGoto action_23
-action_461 x = happyTcHack x happyFail
-
-action_462 x = happyTcHack x happyReduce_136
-
-action_463 x = happyTcHack x happyReduce_186
-
-action_464 x = happyTcHack x happyReduce_166
-
-action_465 (140#) = happyShift action_471
-action_465 x = happyTcHack x happyFail
-
-action_466 (169#) = happyShift action_470
-action_466 x = happyTcHack x happyFail
-
-action_467 (102#) = happyShift action_469
-action_467 x = happyTcHack x happyReduce_28
-
-action_468 x = happyTcHack x happyReduce_67
-
-action_469 (151#) = happyShift action_356
-action_469 (28#) = happyGoto action_510
-action_469 x = happyTcHack x happyReduce_55
-
-action_470 (98#) = happyShift action_408
-action_470 (174#) = happyShift action_51
-action_470 (12#) = happyGoto action_406
-action_470 (27#) = happyGoto action_509
-action_470 (29#) = happyGoto action_425
-action_470 x = happyTcHack x happyReduce_52
-
-action_471 x = happyTcHack x happyReduce_56
-
-action_472 x = happyTcHack x happyReduce_256
-
-action_473 x = happyTcHack x happyReduce_259
-
-action_474 (96#) = happyShift action_508
-action_474 x = happyTcHack x happyReduce_96
-
-action_475 (100#) = happyShift action_507
-action_475 x = happyTcHack x happyFail
-
-action_476 (174#) = happyShift action_51
-action_476 (12#) = happyGoto action_448
-action_476 (39#) = happyGoto action_449
-action_476 (40#) = happyGoto action_506
-action_476 x = happyTcHack x happyReduce_102
-
-action_477 (174#) = happyShift action_51
-action_477 (12#) = happyGoto action_505
-action_477 x = happyTcHack x happyFail
-
-action_478 (97#) = happyShift action_504
-action_478 (132#) = happyShift action_210
-action_478 (134#) = happyShift action_211
-action_478 (135#) = happyShift action_212
-action_478 (136#) = happyShift action_213
-action_478 (138#) = happyShift action_214
-action_478 (146#) = happyShift action_215
-action_478 (147#) = happyShift action_216
-action_478 (148#) = happyShift action_217
-action_478 (149#) = happyShift action_218
-action_478 (152#) = happyShift action_219
-action_478 (154#) = happyShift action_220
-action_478 (155#) = happyShift action_221
-action_478 (156#) = happyShift action_222
-action_478 (158#) = happyShift action_223
-action_478 (163#) = happyShift action_224
-action_478 (164#) = happyShift action_225
-action_478 (166#) = happyShift action_226
-action_478 (35#) = happyGoto action_209
-action_478 x = happyTcHack x happyFail
-
-action_479 (174#) = happyShift action_51
-action_479 (12#) = happyGoto action_503
-action_479 x = happyTcHack x happyFail
-
-action_480 (174#) = happyShift action_51
-action_480 (12#) = happyGoto action_438
-action_480 (42#) = happyGoto action_439
-action_480 (52#) = happyGoto action_502
-action_480 x = happyTcHack x happyReduce_125
-
-action_481 (96#) = happyShift action_140
-action_481 (98#) = happyShift action_455
-action_481 (104#) = happyShift action_26
-action_481 (109#) = happyShift action_83
-action_481 (110#) = happyShift action_28
-action_481 (111#) = happyShift action_29
-action_481 (125#) = happyShift action_33
-action_481 (126#) = happyShift action_34
-action_481 (127#) = happyShift action_35
-action_481 (128#) = happyShift action_36
-action_481 (129#) = happyShift action_37
-action_481 (134#) = happyShift action_39
-action_481 (170#) = happyShift action_6
-action_481 (171#) = happyShift action_48
-action_481 (172#) = happyShift action_49
-action_481 (173#) = happyShift action_50
-action_481 (174#) = happyShift action_51
-action_481 (8#) = happyGoto action_10
-action_481 (9#) = happyGoto action_11
-action_481 (10#) = happyGoto action_12
-action_481 (11#) = happyGoto action_13
-action_481 (12#) = happyGoto action_79
-action_481 (58#) = happyGoto action_453
-action_481 (72#) = happyGoto action_22
-action_481 (88#) = happyGoto action_454
-action_481 x = happyTcHack x happyReduce_108
-
-action_482 (96#) = happyShift action_24
-action_482 (98#) = happyShift action_25
-action_482 (104#) = happyShift action_26
-action_482 (109#) = happyShift action_27
-action_482 (110#) = happyShift action_28
-action_482 (111#) = happyShift action_29
-action_482 (114#) = happyShift action_30
-action_482 (119#) = happyShift action_31
-action_482 (124#) = happyShift action_32
-action_482 (125#) = happyShift action_33
-action_482 (126#) = happyShift action_34
-action_482 (127#) = happyShift action_35
-action_482 (128#) = happyShift action_36
-action_482 (129#) = happyShift action_37
-action_482 (131#) = happyShift action_38
-action_482 (134#) = happyShift action_39
-action_482 (137#) = happyShift action_40
-action_482 (140#) = happyShift action_41
-action_482 (145#) = happyShift action_42
-action_482 (156#) = happyShift action_43
-action_482 (157#) = happyShift action_44
-action_482 (161#) = happyShift action_45
-action_482 (162#) = happyShift action_46
-action_482 (167#) = happyShift action_47
-action_482 (170#) = happyShift action_6
-action_482 (171#) = happyShift action_48
-action_482 (172#) = happyShift action_49
-action_482 (173#) = happyShift action_50
-action_482 (174#) = happyShift action_51
-action_482 (8#) = happyGoto action_10
-action_482 (9#) = happyGoto action_11
-action_482 (10#) = happyGoto action_12
-action_482 (11#) = happyGoto action_13
-action_482 (12#) = happyGoto action_14
-action_482 (58#) = happyGoto action_15
-action_482 (59#) = happyGoto action_16
-action_482 (60#) = happyGoto action_17
-action_482 (61#) = happyGoto action_18
-action_482 (62#) = happyGoto action_19
-action_482 (63#) = happyGoto action_501
-action_482 (64#) = happyGoto action_21
-action_482 (72#) = happyGoto action_22
-action_482 (77#) = happyGoto action_23
-action_482 x = happyTcHack x happyFail
-
-action_483 x = happyTcHack x happyReduce_73
-
-action_484 x = happyTcHack x happyReduce_39
-
-action_485 (95#) = happyShift action_499
-action_485 (99#) = happyShift action_500
-action_485 x = happyTcHack x happyFail
-
-action_486 (98#) = happyShift action_408
-action_486 (174#) = happyShift action_51
-action_486 (12#) = happyGoto action_406
-action_486 (27#) = happyGoto action_498
-action_486 (29#) = happyGoto action_425
-action_486 x = happyTcHack x happyReduce_52
-
-action_487 (151#) = happyShift action_356
-action_487 (28#) = happyGoto action_497
-action_487 x = happyTcHack x happyReduce_55
-
-action_488 (98#) = happyShift action_408
-action_488 (174#) = happyShift action_51
-action_488 (12#) = happyGoto action_406
-action_488 (27#) = happyGoto action_496
-action_488 (29#) = happyGoto action_425
-action_488 x = happyTcHack x happyReduce_52
-
-action_489 (97#) = happyShift action_495
-action_489 (132#) = happyShift action_210
-action_489 (134#) = happyShift action_211
-action_489 (135#) = happyShift action_212
-action_489 (136#) = happyShift action_213
-action_489 (138#) = happyShift action_214
-action_489 (146#) = happyShift action_215
-action_489 (147#) = happyShift action_216
-action_489 (148#) = happyShift action_217
-action_489 (149#) = happyShift action_218
-action_489 (152#) = happyShift action_219
-action_489 (154#) = happyShift action_220
-action_489 (155#) = happyShift action_221
-action_489 (156#) = happyShift action_222
-action_489 (158#) = happyShift action_223
-action_489 (163#) = happyShift action_224
-action_489 (164#) = happyShift action_225
-action_489 (166#) = happyShift action_226
-action_489 (35#) = happyGoto action_209
-action_489 x = happyTcHack x happyFail
-
-action_490 x = happyTcHack x happyReduce_69
-
-action_491 (105#) = happyShift action_494
-action_491 x = happyTcHack x happyFail
-
-action_492 (94#) = happyShift action_493
-action_492 x = happyTcHack x happyFail
-
-action_493 (174#) = happyShift action_51
-action_493 (12#) = happyGoto action_519
-action_493 (16#) = happyGoto action_520
-action_493 (17#) = happyGoto action_521
-action_493 x = happyTcHack x happyReduce_17
-
-action_494 x = happyTcHack x happyReduce_70
-
-action_495 x = happyTcHack x happyReduce_40
-
-action_496 (102#) = happyShift action_518
-action_496 x = happyTcHack x happyReduce_44
-
-action_497 (96#) = happyShift action_517
-action_497 x = happyTcHack x happyFail
-
-action_498 x = happyTcHack x happyReduce_54
-
-action_499 (174#) = happyShift action_51
-action_499 (12#) = happyGoto action_516
-action_499 x = happyTcHack x happyFail
-
-action_500 x = happyTcHack x happyReduce_58
-
-action_501 x = happyTcHack x happyReduce_74
-
-action_502 x = happyTcHack x happyReduce_127
-
-action_503 (99#) = happyShift action_515
-action_503 x = happyTcHack x happyFail
-
-action_504 (94#) = happyShift action_514
-action_504 x = happyTcHack x happyFail
-
-action_505 x = happyTcHack x happyReduce_101
-
-action_506 x = happyTcHack x happyReduce_104
-
-action_507 (96#) = happyShift action_24
-action_507 (98#) = happyShift action_25
-action_507 (104#) = happyShift action_26
-action_507 (109#) = happyShift action_27
-action_507 (110#) = happyShift action_28
-action_507 (111#) = happyShift action_29
-action_507 (114#) = happyShift action_30
-action_507 (119#) = happyShift action_31
-action_507 (124#) = happyShift action_32
-action_507 (125#) = happyShift action_33
-action_507 (126#) = happyShift action_34
-action_507 (127#) = happyShift action_35
-action_507 (128#) = happyShift action_36
-action_507 (129#) = happyShift action_37
-action_507 (131#) = happyShift action_38
-action_507 (134#) = happyShift action_39
-action_507 (137#) = happyShift action_40
-action_507 (140#) = happyShift action_41
-action_507 (145#) = happyShift action_42
-action_507 (156#) = happyShift action_43
-action_507 (157#) = happyShift action_44
-action_507 (161#) = happyShift action_45
-action_507 (162#) = happyShift action_46
-action_507 (167#) = happyShift action_47
-action_507 (170#) = happyShift action_6
-action_507 (171#) = happyShift action_48
-action_507 (172#) = happyShift action_49
-action_507 (173#) = happyShift action_50
-action_507 (174#) = happyShift action_51
-action_507 (8#) = happyGoto action_10
-action_507 (9#) = happyGoto action_11
-action_507 (10#) = happyGoto action_12
-action_507 (11#) = happyGoto action_13
-action_507 (12#) = happyGoto action_14
-action_507 (58#) = happyGoto action_15
-action_507 (59#) = happyGoto action_16
-action_507 (60#) = happyGoto action_17
-action_507 (61#) = happyGoto action_18
-action_507 (62#) = happyGoto action_19
-action_507 (63#) = happyGoto action_513
-action_507 (64#) = happyGoto action_21
-action_507 (72#) = happyGoto action_22
-action_507 (77#) = happyGoto action_23
-action_507 x = happyTcHack x happyFail
-
-action_508 (170#) = happyShift action_6
-action_508 (8#) = happyGoto action_512
-action_508 x = happyTcHack x happyFail
-
-action_509 (102#) = happyShift action_511
-action_509 x = happyTcHack x happyReduce_30
-
-action_510 x = happyTcHack x happyReduce_29
-
-action_511 (151#) = happyShift action_356
-action_511 (28#) = happyGoto action_530
-action_511 x = happyTcHack x happyReduce_55
-
-action_512 (97#) = happyShift action_529
-action_512 x = happyTcHack x happyFail
-
-action_513 (99#) = happyShift action_528
-action_513 x = happyTcHack x happyFail
-
-action_514 x = happyTcHack x happyReduce_92
-
-action_515 x = happyTcHack x happyReduce_106
-
-action_516 (99#) = happyShift action_527
-action_516 x = happyTcHack x happyFail
-
-action_517 (25#) = happyGoto action_526
-action_517 x = happyTcHack x happyReduce_48
-
-action_518 (151#) = happyShift action_356
-action_518 (28#) = happyGoto action_525
-action_518 x = happyTcHack x happyReduce_55
-
-action_519 (95#) = happyShift action_524
-action_519 x = happyTcHack x happyFail
-
-action_520 (94#) = happyShift action_523
-action_520 x = happyTcHack x happyReduce_18
-
-action_521 (97#) = happyShift action_522
-action_521 x = happyTcHack x happyFail
-
-action_522 x = happyTcHack x happyReduce_14
-
-action_523 (174#) = happyShift action_51
-action_523 (12#) = happyGoto action_519
-action_523 (16#) = happyGoto action_520
-action_523 (17#) = happyGoto action_535
-action_523 x = happyTcHack x happyReduce_17
-
-action_524 (174#) = happyShift action_51
-action_524 (12#) = happyGoto action_533
-action_524 (18#) = happyGoto action_534
-action_524 x = happyTcHack x happyFail
-
-action_525 (96#) = happyShift action_532
-action_525 x = happyTcHack x happyFail
-
-action_526 (97#) = happyShift action_531
-action_526 (132#) = happyShift action_210
-action_526 (134#) = happyShift action_211
-action_526 (135#) = happyShift action_212
-action_526 (136#) = happyShift action_213
-action_526 (138#) = happyShift action_214
-action_526 (146#) = happyShift action_215
-action_526 (147#) = happyShift action_216
-action_526 (148#) = happyShift action_217
-action_526 (149#) = happyShift action_218
-action_526 (152#) = happyShift action_219
-action_526 (154#) = happyShift action_220
-action_526 (155#) = happyShift action_221
-action_526 (156#) = happyShift action_222
-action_526 (158#) = happyShift action_223
-action_526 (163#) = happyShift action_224
-action_526 (164#) = happyShift action_225
-action_526 (166#) = happyShift action_226
-action_526 (35#) = happyGoto action_209
-action_526 x = happyTcHack x happyFail
-
-action_527 x = happyTcHack x happyReduce_59
-
-action_528 x = happyTcHack x happyReduce_260
-
-action_529 x = happyTcHack x happyReduce_97
-
-action_530 x = happyTcHack x happyReduce_31
-
-action_531 x = happyTcHack x happyReduce_43
-
-action_532 (25#) = happyGoto action_537
-action_532 x = happyTcHack x happyReduce_48
-
-action_533 (19#) = happyGoto action_536
-action_533 x = happyTcHack x happyReduce_21
-
-action_534 x = happyTcHack x happyReduce_16
-
-action_535 x = happyTcHack x happyReduce_19
-
-action_536 (98#) = happyShift action_540
-action_536 (20#) = happyGoto action_539
-action_536 x = happyTcHack x happyReduce_20
-
-action_537 (97#) = happyShift action_538
-action_537 (132#) = happyShift action_210
-action_537 (134#) = happyShift action_211
-action_537 (135#) = happyShift action_212
-action_537 (136#) = happyShift action_213
-action_537 (138#) = happyShift action_214
-action_537 (146#) = happyShift action_215
-action_537 (147#) = happyShift action_216
-action_537 (148#) = happyShift action_217
-action_537 (149#) = happyShift action_218
-action_537 (152#) = happyShift action_219
-action_537 (154#) = happyShift action_220
-action_537 (155#) = happyShift action_221
-action_537 (156#) = happyShift action_222
-action_537 (158#) = happyShift action_223
-action_537 (163#) = happyShift action_224
-action_537 (164#) = happyShift action_225
-action_537 (166#) = happyShift action_226
-action_537 (35#) = happyGoto action_209
-action_537 x = happyTcHack x happyFail
-
-action_538 x = happyTcHack x happyReduce_45
-
-action_539 x = happyTcHack x happyReduce_22
-
-action_540 (164#) = happyShift action_541
-action_540 x = happyTcHack x happyFail
-
-action_541 (140#) = happyShift action_542
-action_541 (153#) = happyShift action_543
-action_541 x = happyTcHack x happyFail
-
-action_542 (98#) = happyShift action_408
-action_542 (174#) = happyShift action_51
-action_542 (12#) = happyGoto action_406
-action_542 (29#) = happyGoto action_545
-action_542 x = happyTcHack x happyFail
-
-action_543 (98#) = happyShift action_408
-action_543 (174#) = happyShift action_51
-action_543 (12#) = happyGoto action_406
-action_543 (29#) = happyGoto action_544
-action_543 x = happyTcHack x happyFail
-
-action_544 (99#) = happyShift action_547
-action_544 x = happyTcHack x happyFail
-
-action_545 (99#) = happyShift action_546
-action_545 x = happyTcHack x happyFail
-
-action_546 x = happyTcHack x happyReduce_23
-
-action_547 x = happyTcHack x happyReduce_24
-
-happyReduce_5 = happySpecReduce_1 8# happyReduction_5
-happyReduction_5 (HappyTerminal (PT _ (TI happy_var_1)))
- = HappyAbsSyn8
- ((read happy_var_1) :: Integer
- )
-happyReduction_5 _ = notHappyAtAll
-
-happyReduce_6 = happySpecReduce_1 9# happyReduction_6
-happyReduction_6 (HappyTerminal (PT _ (TL happy_var_1)))
- = HappyAbsSyn9
- (happy_var_1
- )
-happyReduction_6 _ = notHappyAtAll
-
-happyReduce_7 = happySpecReduce_1 10# happyReduction_7
-happyReduction_7 (HappyTerminal (PT _ (TD happy_var_1)))
- = HappyAbsSyn10
- ((read happy_var_1) :: Double
- )
-happyReduction_7 _ = notHappyAtAll
-
-happyReduce_8 = happySpecReduce_1 11# happyReduction_8
-happyReduction_8 (HappyTerminal (PT _ (T_LString happy_var_1)))
- = HappyAbsSyn11
- (LString (happy_var_1)
- )
-happyReduction_8 _ = notHappyAtAll
-
-happyReduce_9 = happySpecReduce_1 12# happyReduction_9
-happyReduction_9 (HappyTerminal happy_var_1)
- = HappyAbsSyn12
- (PIdent (mkPosToken happy_var_1)
- )
-happyReduction_9 _ = notHappyAtAll
-
-happyReduce_10 = happySpecReduce_1 13# happyReduction_10
-happyReduction_10 (HappyAbsSyn14 happy_var_1)
- = HappyAbsSyn13
- (Gr (reverse happy_var_1)
- )
-happyReduction_10 _ = notHappyAtAll
-
-happyReduce_11 = happySpecReduce_0 14# happyReduction_11
-happyReduction_11 = HappyAbsSyn14
- ([]
- )
-
-happyReduce_12 = happySpecReduce_2 14# happyReduction_12
-happyReduction_12 (HappyAbsSyn15 happy_var_2)
- (HappyAbsSyn14 happy_var_1)
- = HappyAbsSyn14
- (flip (:) happy_var_1 happy_var_2
- )
-happyReduction_12 _ _ = notHappyAtAll
-
-happyReduce_13 = happySpecReduce_2 15# happyReduction_13
-happyReduction_13 _
- (HappyAbsSyn15 happy_var_1)
- = HappyAbsSyn15
- (happy_var_1
- )
-happyReduction_13 _ _ = notHappyAtAll
-
-happyReduce_14 = happyReduce 10# 15# happyReduction_14
-happyReduction_14 (_ `HappyStk`
- (HappyAbsSyn17 happy_var_9) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_7) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn15
- (MMain happy_var_2 happy_var_7 happy_var_9
- ) `HappyStk` happyRest
-
-happyReduce_15 = happyReduce 4# 15# happyReduction_15
-happyReduction_15 ((HappyAbsSyn22 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn23 happy_var_2) `HappyStk`
- (HappyAbsSyn30 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn15
- (MModule happy_var_1 happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_16 = happySpecReduce_3 16# happyReduction_16
-happyReduction_16 (HappyAbsSyn18 happy_var_3)
- _
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn16
- (ConcSpec happy_var_1 happy_var_3
- )
-happyReduction_16 _ _ _ = notHappyAtAll
-
-happyReduce_17 = happySpecReduce_0 17# happyReduction_17
-happyReduction_17 = HappyAbsSyn17
- ([]
- )
-
-happyReduce_18 = happySpecReduce_1 17# happyReduction_18
-happyReduction_18 (HappyAbsSyn16 happy_var_1)
- = HappyAbsSyn17
- ((:[]) happy_var_1
- )
-happyReduction_18 _ = notHappyAtAll
-
-happyReduce_19 = happySpecReduce_3 17# happyReduction_19
-happyReduction_19 (HappyAbsSyn17 happy_var_3)
- _
- (HappyAbsSyn16 happy_var_1)
- = HappyAbsSyn17
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_19 _ _ _ = notHappyAtAll
-
-happyReduce_20 = happySpecReduce_2 18# happyReduction_20
-happyReduction_20 (HappyAbsSyn19 happy_var_2)
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn18
- (ConcExp happy_var_1 (reverse happy_var_2)
- )
-happyReduction_20 _ _ = notHappyAtAll
-
-happyReduce_21 = happySpecReduce_0 19# happyReduction_21
-happyReduction_21 = HappyAbsSyn19
- ([]
- )
-
-happyReduce_22 = happySpecReduce_2 19# happyReduction_22
-happyReduction_22 (HappyAbsSyn20 happy_var_2)
- (HappyAbsSyn19 happy_var_1)
- = HappyAbsSyn19
- (flip (:) happy_var_1 happy_var_2
- )
-happyReduction_22 _ _ = notHappyAtAll
-
-happyReduce_23 = happyReduce 5# 20# happyReduction_23
-happyReduction_23 (_ `HappyStk`
- (HappyAbsSyn29 happy_var_4) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn20
- (TransferIn happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_24 = happyReduce 5# 20# happyReduction_24
-happyReduction_24 (_ `HappyStk`
- (HappyAbsSyn29 happy_var_4) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn20
- (TransferOut happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_25 = happyReduce 4# 21# happyReduction_25
-happyReduction_25 ((HappyAbsSyn22 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn23 happy_var_2) `HappyStk`
- (HappyAbsSyn30 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn15
- (MModule happy_var_1 happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_26 = happySpecReduce_2 22# happyReduction_26
-happyReduction_26 (HappyAbsSyn28 happy_var_2)
- (HappyAbsSyn26 happy_var_1)
- = HappyAbsSyn22
- (MBody happy_var_1 happy_var_2 []
- )
-happyReduction_26 _ _ = notHappyAtAll
-
-happyReduce_27 = happySpecReduce_1 22# happyReduction_27
-happyReduction_27 (HappyAbsSyn32 happy_var_1)
- = HappyAbsSyn22
- (MNoBody happy_var_1
- )
-happyReduction_27 _ = notHappyAtAll
-
-happyReduce_28 = happySpecReduce_3 22# happyReduction_28
-happyReduction_28 (HappyAbsSyn27 happy_var_3)
- _
- (HappyAbsSyn33 happy_var_1)
- = HappyAbsSyn22
- (MWith happy_var_1 happy_var_3
- )
-happyReduction_28 _ _ _ = notHappyAtAll
-
-happyReduce_29 = happyReduce 5# 22# happyReduction_29
-happyReduction_29 ((HappyAbsSyn28 happy_var_5) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn27 happy_var_3) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn33 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn22
- (MWithBody happy_var_1 happy_var_3 happy_var_5 []
- ) `HappyStk` happyRest
-
-happyReduce_30 = happyReduce 5# 22# happyReduction_30
-happyReduction_30 ((HappyAbsSyn27 happy_var_5) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn33 happy_var_3) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn32 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn22
- (MWithE happy_var_1 happy_var_3 happy_var_5
- ) `HappyStk` happyRest
-
-happyReduce_31 = happyReduce 7# 22# happyReduction_31
-happyReduction_31 ((HappyAbsSyn28 happy_var_7) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn27 happy_var_5) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn33 happy_var_3) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn32 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn22
- (MWithEBody happy_var_1 happy_var_3 happy_var_5 happy_var_7 []
- ) `HappyStk` happyRest
-
-happyReduce_32 = happySpecReduce_2 22# happyReduction_32
-happyReduction_32 (HappyAbsSyn12 happy_var_2)
- _
- = HappyAbsSyn22
- (MReuse happy_var_2
- )
-happyReduction_32 _ _ = notHappyAtAll
-
-happyReduce_33 = happySpecReduce_2 22# happyReduction_33
-happyReduction_33 (HappyAbsSyn32 happy_var_2)
- _
- = HappyAbsSyn22
- (MUnion happy_var_2
- )
-happyReduction_33 _ _ = notHappyAtAll
-
-happyReduce_34 = happySpecReduce_2 23# happyReduction_34
-happyReduction_34 (HappyAbsSyn12 happy_var_2)
- _
- = HappyAbsSyn23
- (MTAbstract happy_var_2
- )
-happyReduction_34 _ _ = notHappyAtAll
-
-happyReduce_35 = happySpecReduce_2 23# happyReduction_35
-happyReduction_35 (HappyAbsSyn12 happy_var_2)
- _
- = HappyAbsSyn23
- (MTResource happy_var_2
- )
-happyReduction_35 _ _ = notHappyAtAll
-
-happyReduce_36 = happySpecReduce_2 23# happyReduction_36
-happyReduction_36 (HappyAbsSyn12 happy_var_2)
- _
- = HappyAbsSyn23
- (MTInterface happy_var_2
- )
-happyReduction_36 _ _ = notHappyAtAll
-
-happyReduce_37 = happyReduce 4# 23# happyReduction_37
-happyReduction_37 ((HappyAbsSyn12 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn23
- (MTConcrete happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_38 = happyReduce 4# 23# happyReduction_38
-happyReduction_38 ((HappyAbsSyn12 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn23
- (MTInstance happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_39 = happyReduce 6# 23# happyReduction_39
-happyReduction_39 ((HappyAbsSyn29 happy_var_6) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn29 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn23
- (MTTransfer happy_var_2 happy_var_4 happy_var_6
- ) `HappyStk` happyRest
-
-happyReduce_40 = happyReduce 5# 24# happyReduction_40
-happyReduction_40 (_ `HappyStk`
- (HappyAbsSyn25 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn28 happy_var_2) `HappyStk`
- (HappyAbsSyn26 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn22
- (MBody happy_var_1 happy_var_2 (reverse happy_var_4)
- ) `HappyStk` happyRest
-
-happyReduce_41 = happySpecReduce_1 24# happyReduction_41
-happyReduction_41 (HappyAbsSyn32 happy_var_1)
- = HappyAbsSyn22
- (MNoBody happy_var_1
- )
-happyReduction_41 _ = notHappyAtAll
-
-happyReduce_42 = happySpecReduce_3 24# happyReduction_42
-happyReduction_42 (HappyAbsSyn27 happy_var_3)
- _
- (HappyAbsSyn33 happy_var_1)
- = HappyAbsSyn22
- (MWith happy_var_1 happy_var_3
- )
-happyReduction_42 _ _ _ = notHappyAtAll
-
-happyReduce_43 = happyReduce 8# 24# happyReduction_43
-happyReduction_43 (_ `HappyStk`
- (HappyAbsSyn25 happy_var_7) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn28 happy_var_5) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn27 happy_var_3) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn33 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn22
- (MWithBody happy_var_1 happy_var_3 happy_var_5 (reverse happy_var_7)
- ) `HappyStk` happyRest
-
-happyReduce_44 = happyReduce 5# 24# happyReduction_44
-happyReduction_44 ((HappyAbsSyn27 happy_var_5) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn33 happy_var_3) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn32 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn22
- (MWithE happy_var_1 happy_var_3 happy_var_5
- ) `HappyStk` happyRest
-
-happyReduce_45 = happyReduce 10# 24# happyReduction_45
-happyReduction_45 (_ `HappyStk`
- (HappyAbsSyn25 happy_var_9) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn28 happy_var_7) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn27 happy_var_5) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn33 happy_var_3) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn32 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn22
- (MWithEBody happy_var_1 happy_var_3 happy_var_5 happy_var_7 (reverse happy_var_9)
- ) `HappyStk` happyRest
-
-happyReduce_46 = happySpecReduce_2 24# happyReduction_46
-happyReduction_46 (HappyAbsSyn12 happy_var_2)
- _
- = HappyAbsSyn22
- (MReuse happy_var_2
- )
-happyReduction_46 _ _ = notHappyAtAll
-
-happyReduce_47 = happySpecReduce_2 24# happyReduction_47
-happyReduction_47 (HappyAbsSyn32 happy_var_2)
- _
- = HappyAbsSyn22
- (MUnion happy_var_2
- )
-happyReduction_47 _ _ = notHappyAtAll
-
-happyReduce_48 = happySpecReduce_0 25# happyReduction_48
-happyReduction_48 = HappyAbsSyn25
- ([]
- )
-
-happyReduce_49 = happySpecReduce_2 25# happyReduction_49
-happyReduction_49 (HappyAbsSyn35 happy_var_2)
- (HappyAbsSyn25 happy_var_1)
- = HappyAbsSyn25
- (flip (:) happy_var_1 happy_var_2
- )
-happyReduction_49 _ _ = notHappyAtAll
-
-happyReduce_50 = happySpecReduce_2 26# happyReduction_50
-happyReduction_50 _
- (HappyAbsSyn32 happy_var_1)
- = HappyAbsSyn26
- (Ext happy_var_1
- )
-happyReduction_50 _ _ = notHappyAtAll
-
-happyReduce_51 = happySpecReduce_0 26# happyReduction_51
-happyReduction_51 = HappyAbsSyn26
- (NoExt
- )
-
-happyReduce_52 = happySpecReduce_0 27# happyReduction_52
-happyReduction_52 = HappyAbsSyn27
- ([]
- )
-
-happyReduce_53 = happySpecReduce_1 27# happyReduction_53
-happyReduction_53 (HappyAbsSyn29 happy_var_1)
- = HappyAbsSyn27
- ((:[]) happy_var_1
- )
-happyReduction_53 _ = notHappyAtAll
-
-happyReduce_54 = happySpecReduce_3 27# happyReduction_54
-happyReduction_54 (HappyAbsSyn27 happy_var_3)
- _
- (HappyAbsSyn29 happy_var_1)
- = HappyAbsSyn27
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_54 _ _ _ = notHappyAtAll
-
-happyReduce_55 = happySpecReduce_0 28# happyReduction_55
-happyReduction_55 = HappyAbsSyn28
- (NoOpens
- )
-
-happyReduce_56 = happySpecReduce_3 28# happyReduction_56
-happyReduction_56 _
- (HappyAbsSyn27 happy_var_2)
- _
- = HappyAbsSyn28
- (OpenIn happy_var_2
- )
-happyReduction_56 _ _ _ = notHappyAtAll
-
-happyReduce_57 = happySpecReduce_1 29# happyReduction_57
-happyReduction_57 (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn29
- (OName happy_var_1
- )
-happyReduction_57 _ = notHappyAtAll
-
-happyReduce_58 = happyReduce 4# 29# happyReduction_58
-happyReduction_58 (_ `HappyStk`
- (HappyAbsSyn12 happy_var_3) `HappyStk`
- (HappyAbsSyn31 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn29
- (OQualQO happy_var_2 happy_var_3
- ) `HappyStk` happyRest
-
-happyReduce_59 = happyReduce 6# 29# happyReduction_59
-happyReduction_59 (_ `HappyStk`
- (HappyAbsSyn12 happy_var_5) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_3) `HappyStk`
- (HappyAbsSyn31 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn29
- (OQual happy_var_2 happy_var_3 happy_var_5
- ) `HappyStk` happyRest
-
-happyReduce_60 = happySpecReduce_0 30# happyReduction_60
-happyReduction_60 = HappyAbsSyn30
- (CMCompl
- )
-
-happyReduce_61 = happySpecReduce_1 30# happyReduction_61
-happyReduction_61 _
- = HappyAbsSyn30
- (CMIncompl
- )
-
-happyReduce_62 = happySpecReduce_0 31# happyReduction_62
-happyReduction_62 = HappyAbsSyn31
- (QOCompl
- )
-
-happyReduce_63 = happySpecReduce_1 31# happyReduction_63
-happyReduction_63 _
- = HappyAbsSyn31
- (QOIncompl
- )
-
-happyReduce_64 = happySpecReduce_1 31# happyReduction_64
-happyReduction_64 _
- = HappyAbsSyn31
- (QOInterface
- )
-
-happyReduce_65 = happySpecReduce_0 32# happyReduction_65
-happyReduction_65 = HappyAbsSyn32
- ([]
- )
-
-happyReduce_66 = happySpecReduce_1 32# happyReduction_66
-happyReduction_66 (HappyAbsSyn33 happy_var_1)
- = HappyAbsSyn32
- ((:[]) happy_var_1
- )
-happyReduction_66 _ = notHappyAtAll
-
-happyReduce_67 = happySpecReduce_3 32# happyReduction_67
-happyReduction_67 (HappyAbsSyn32 happy_var_3)
- _
- (HappyAbsSyn33 happy_var_1)
- = HappyAbsSyn32
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_67 _ _ _ = notHappyAtAll
-
-happyReduce_68 = happySpecReduce_1 33# happyReduction_68
-happyReduction_68 (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn33
- (IAll happy_var_1
- )
-happyReduction_68 _ = notHappyAtAll
-
-happyReduce_69 = happyReduce 4# 33# happyReduction_69
-happyReduction_69 (_ `HappyStk`
- (HappyAbsSyn53 happy_var_3) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn33
- (ISome happy_var_1 happy_var_3
- ) `HappyStk` happyRest
-
-happyReduce_70 = happyReduce 5# 33# happyReduction_70
-happyReduction_70 (_ `HappyStk`
- (HappyAbsSyn53 happy_var_4) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn33
- (IMinus happy_var_1 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_71 = happySpecReduce_3 34# happyReduction_71
-happyReduction_71 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn55 happy_var_1)
- = HappyAbsSyn34
- (DDecl happy_var_1 happy_var_3
- )
-happyReduction_71 _ _ _ = notHappyAtAll
-
-happyReduce_72 = happySpecReduce_3 34# happyReduction_72
-happyReduction_72 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn55 happy_var_1)
- = HappyAbsSyn34
- (DDef happy_var_1 happy_var_3
- )
-happyReduction_72 _ _ _ = notHappyAtAll
-
-happyReduce_73 = happyReduce 4# 34# happyReduction_73
-happyReduction_73 ((HappyAbsSyn58 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn74 happy_var_2) `HappyStk`
- (HappyAbsSyn54 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn34
- (DPatt happy_var_1 happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_74 = happyReduce 5# 34# happyReduction_74
-happyReduction_74 ((HappyAbsSyn58 happy_var_5) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn58 happy_var_3) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn55 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn34
- (DFull happy_var_1 happy_var_3 happy_var_5
- ) `HappyStk` happyRest
-
-happyReduce_75 = happySpecReduce_2 35# happyReduction_75
-happyReduction_75 (HappyAbsSyn46 happy_var_2)
- _
- = HappyAbsSyn35
- (DefCat happy_var_2
- )
-happyReduction_75 _ _ = notHappyAtAll
-
-happyReduce_76 = happySpecReduce_2 35# happyReduction_76
-happyReduction_76 (HappyAbsSyn47 happy_var_2)
- _
- = HappyAbsSyn35
- (DefFun happy_var_2
- )
-happyReduction_76 _ _ = notHappyAtAll
-
-happyReduce_77 = happySpecReduce_2 35# happyReduction_77
-happyReduction_77 (HappyAbsSyn47 happy_var_2)
- _
- = HappyAbsSyn35
- (DefFunData happy_var_2
- )
-happyReduction_77 _ _ = notHappyAtAll
-
-happyReduce_78 = happySpecReduce_2 35# happyReduction_78
-happyReduction_78 (HappyAbsSyn45 happy_var_2)
- _
- = HappyAbsSyn35
- (DefDef happy_var_2
- )
-happyReduction_78 _ _ = notHappyAtAll
-
-happyReduce_79 = happySpecReduce_2 35# happyReduction_79
-happyReduction_79 (HappyAbsSyn48 happy_var_2)
- _
- = HappyAbsSyn35
- (DefData happy_var_2
- )
-happyReduction_79 _ _ = notHappyAtAll
-
-happyReduce_80 = happySpecReduce_2 35# happyReduction_80
-happyReduction_80 (HappyAbsSyn45 happy_var_2)
- _
- = HappyAbsSyn35
- (DefTrans happy_var_2
- )
-happyReduction_80 _ _ = notHappyAtAll
-
-happyReduce_81 = happySpecReduce_2 35# happyReduction_81
-happyReduction_81 (HappyAbsSyn49 happy_var_2)
- _
- = HappyAbsSyn35
- (DefPar happy_var_2
- )
-happyReduction_81 _ _ = notHappyAtAll
-
-happyReduce_82 = happySpecReduce_2 35# happyReduction_82
-happyReduction_82 (HappyAbsSyn45 happy_var_2)
- _
- = HappyAbsSyn35
- (DefOper happy_var_2
- )
-happyReduction_82 _ _ = notHappyAtAll
-
-happyReduce_83 = happySpecReduce_2 35# happyReduction_83
-happyReduction_83 (HappyAbsSyn50 happy_var_2)
- _
- = HappyAbsSyn35
- (DefLincat happy_var_2
- )
-happyReduction_83 _ _ = notHappyAtAll
-
-happyReduce_84 = happySpecReduce_2 35# happyReduction_84
-happyReduction_84 (HappyAbsSyn45 happy_var_2)
- _
- = HappyAbsSyn35
- (DefLindef happy_var_2
- )
-happyReduction_84 _ _ = notHappyAtAll
-
-happyReduce_85 = happySpecReduce_2 35# happyReduction_85
-happyReduction_85 (HappyAbsSyn45 happy_var_2)
- _
- = HappyAbsSyn35
- (DefLin happy_var_2
- )
-happyReduction_85 _ _ = notHappyAtAll
-
-happyReduce_86 = happySpecReduce_3 35# happyReduction_86
-happyReduction_86 (HappyAbsSyn50 happy_var_3)
- _
- _
- = HappyAbsSyn35
- (DefPrintCat happy_var_3
- )
-happyReduction_86 _ _ _ = notHappyAtAll
-
-happyReduce_87 = happySpecReduce_3 35# happyReduction_87
-happyReduction_87 (HappyAbsSyn50 happy_var_3)
- _
- _
- = HappyAbsSyn35
- (DefPrintFun happy_var_3
- )
-happyReduction_87 _ _ _ = notHappyAtAll
-
-happyReduce_88 = happySpecReduce_2 35# happyReduction_88
-happyReduction_88 (HappyAbsSyn51 happy_var_2)
- _
- = HappyAbsSyn35
- (DefFlag happy_var_2
- )
-happyReduction_88 _ _ = notHappyAtAll
-
-happyReduce_89 = happySpecReduce_2 35# happyReduction_89
-happyReduction_89 (HappyAbsSyn50 happy_var_2)
- _
- = HappyAbsSyn35
- (DefPrintOld happy_var_2
- )
-happyReduction_89 _ _ = notHappyAtAll
-
-happyReduce_90 = happySpecReduce_2 35# happyReduction_90
-happyReduction_90 (HappyAbsSyn45 happy_var_2)
- _
- = HappyAbsSyn35
- (DefLintype happy_var_2
- )
-happyReduction_90 _ _ = notHappyAtAll
-
-happyReduce_91 = happySpecReduce_2 35# happyReduction_91
-happyReduction_91 (HappyAbsSyn45 happy_var_2)
- _
- = HappyAbsSyn35
- (DefPattern happy_var_2
- )
-happyReduction_91 _ _ = notHappyAtAll
-
-happyReduce_92 = happyReduce 7# 35# happyReduction_92
-happyReduction_92 (_ `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn25 happy_var_5) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn35
- (DefPackage happy_var_2 (reverse happy_var_5)
- ) `HappyStk` happyRest
-
-happyReduce_93 = happySpecReduce_2 35# happyReduction_93
-happyReduction_93 (HappyAbsSyn45 happy_var_2)
- _
- = HappyAbsSyn35
- (DefVars happy_var_2
- )
-happyReduction_93 _ _ = notHappyAtAll
-
-happyReduce_94 = happySpecReduce_3 35# happyReduction_94
-happyReduction_94 _
- (HappyAbsSyn12 happy_var_2)
- _
- = HappyAbsSyn35
- (DefTokenizer happy_var_2
- )
-happyReduction_94 _ _ _ = notHappyAtAll
-
-happyReduce_95 = happySpecReduce_2 36# happyReduction_95
-happyReduction_95 (HappyAbsSyn89 happy_var_2)
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn36
- (SimpleCatDef happy_var_1 (reverse happy_var_2)
- )
-happyReduction_95 _ _ = notHappyAtAll
-
-happyReduce_96 = happyReduce 4# 36# happyReduction_96
-happyReduction_96 (_ `HappyStk`
- (HappyAbsSyn89 happy_var_3) `HappyStk`
- (HappyAbsSyn12 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn36
- (ListCatDef happy_var_2 (reverse happy_var_3)
- ) `HappyStk` happyRest
-
-happyReduce_97 = happyReduce 7# 36# happyReduction_97
-happyReduction_97 (_ `HappyStk`
- (HappyAbsSyn8 happy_var_6) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn89 happy_var_3) `HappyStk`
- (HappyAbsSyn12 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn36
- (ListSizeCatDef happy_var_2 (reverse happy_var_3) happy_var_6
- ) `HappyStk` happyRest
-
-happyReduce_98 = happySpecReduce_3 37# happyReduction_98
-happyReduction_98 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn53 happy_var_1)
- = HappyAbsSyn37
- (FunDef happy_var_1 happy_var_3
- )
-happyReduction_98 _ _ _ = notHappyAtAll
-
-happyReduce_99 = happySpecReduce_3 38# happyReduction_99
-happyReduction_99 (HappyAbsSyn40 happy_var_3)
- _
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn38
- (DataDef happy_var_1 happy_var_3
- )
-happyReduction_99 _ _ _ = notHappyAtAll
-
-happyReduce_100 = happySpecReduce_1 39# happyReduction_100
-happyReduction_100 (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn39
- (DataId happy_var_1
- )
-happyReduction_100 _ = notHappyAtAll
-
-happyReduce_101 = happySpecReduce_3 39# happyReduction_101
-happyReduction_101 (HappyAbsSyn12 happy_var_3)
- _
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn39
- (DataQId happy_var_1 happy_var_3
- )
-happyReduction_101 _ _ _ = notHappyAtAll
-
-happyReduce_102 = happySpecReduce_0 40# happyReduction_102
-happyReduction_102 = HappyAbsSyn40
- ([]
- )
-
-happyReduce_103 = happySpecReduce_1 40# happyReduction_103
-happyReduction_103 (HappyAbsSyn39 happy_var_1)
- = HappyAbsSyn40
- ((:[]) happy_var_1
- )
-happyReduction_103 _ = notHappyAtAll
-
-happyReduce_104 = happySpecReduce_3 40# happyReduction_104
-happyReduction_104 (HappyAbsSyn40 happy_var_3)
- _
- (HappyAbsSyn39 happy_var_1)
- = HappyAbsSyn40
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_104 _ _ _ = notHappyAtAll
-
-happyReduce_105 = happySpecReduce_3 41# happyReduction_105
-happyReduction_105 (HappyAbsSyn52 happy_var_3)
- _
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn41
- (ParDefDir happy_var_1 happy_var_3
- )
-happyReduction_105 _ _ _ = notHappyAtAll
-
-happyReduce_106 = happyReduce 6# 41# happyReduction_106
-happyReduction_106 (_ `HappyStk`
- (HappyAbsSyn12 happy_var_5) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn41
- (ParDefIndir happy_var_1 happy_var_5
- ) `HappyStk` happyRest
-
-happyReduce_107 = happySpecReduce_1 41# happyReduction_107
-happyReduction_107 (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn41
- (ParDefAbs happy_var_1
- )
-happyReduction_107 _ = notHappyAtAll
-
-happyReduce_108 = happySpecReduce_2 42# happyReduction_108
-happyReduction_108 (HappyAbsSyn89 happy_var_2)
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn42
- (ParConstr happy_var_1 (reverse happy_var_2)
- )
-happyReduction_108 _ _ = notHappyAtAll
-
-happyReduce_109 = happySpecReduce_3 43# happyReduction_109
-happyReduction_109 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn55 happy_var_1)
- = HappyAbsSyn43
- (PrintDef happy_var_1 happy_var_3
- )
-happyReduction_109 _ _ _ = notHappyAtAll
-
-happyReduce_110 = happySpecReduce_3 44# happyReduction_110
-happyReduction_110 (HappyAbsSyn12 happy_var_3)
- _
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn44
- (FlagDef happy_var_1 happy_var_3
- )
-happyReduction_110 _ _ _ = notHappyAtAll
-
-happyReduce_111 = happySpecReduce_2 45# happyReduction_111
-happyReduction_111 _
- (HappyAbsSyn34 happy_var_1)
- = HappyAbsSyn45
- ((:[]) happy_var_1
- )
-happyReduction_111 _ _ = notHappyAtAll
-
-happyReduce_112 = happySpecReduce_3 45# happyReduction_112
-happyReduction_112 (HappyAbsSyn45 happy_var_3)
- _
- (HappyAbsSyn34 happy_var_1)
- = HappyAbsSyn45
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_112 _ _ _ = notHappyAtAll
-
-happyReduce_113 = happySpecReduce_2 46# happyReduction_113
-happyReduction_113 _
- (HappyAbsSyn36 happy_var_1)
- = HappyAbsSyn46
- ((:[]) happy_var_1
- )
-happyReduction_113 _ _ = notHappyAtAll
-
-happyReduce_114 = happySpecReduce_3 46# happyReduction_114
-happyReduction_114 (HappyAbsSyn46 happy_var_3)
- _
- (HappyAbsSyn36 happy_var_1)
- = HappyAbsSyn46
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_114 _ _ _ = notHappyAtAll
-
-happyReduce_115 = happySpecReduce_2 47# happyReduction_115
-happyReduction_115 _
- (HappyAbsSyn37 happy_var_1)
- = HappyAbsSyn47
- ((:[]) happy_var_1
- )
-happyReduction_115 _ _ = notHappyAtAll
-
-happyReduce_116 = happySpecReduce_3 47# happyReduction_116
-happyReduction_116 (HappyAbsSyn47 happy_var_3)
- _
- (HappyAbsSyn37 happy_var_1)
- = HappyAbsSyn47
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_116 _ _ _ = notHappyAtAll
-
-happyReduce_117 = happySpecReduce_2 48# happyReduction_117
-happyReduction_117 _
- (HappyAbsSyn38 happy_var_1)
- = HappyAbsSyn48
- ((:[]) happy_var_1
- )
-happyReduction_117 _ _ = notHappyAtAll
-
-happyReduce_118 = happySpecReduce_3 48# happyReduction_118
-happyReduction_118 (HappyAbsSyn48 happy_var_3)
- _
- (HappyAbsSyn38 happy_var_1)
- = HappyAbsSyn48
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_118 _ _ _ = notHappyAtAll
-
-happyReduce_119 = happySpecReduce_2 49# happyReduction_119
-happyReduction_119 _
- (HappyAbsSyn41 happy_var_1)
- = HappyAbsSyn49
- ((:[]) happy_var_1
- )
-happyReduction_119 _ _ = notHappyAtAll
-
-happyReduce_120 = happySpecReduce_3 49# happyReduction_120
-happyReduction_120 (HappyAbsSyn49 happy_var_3)
- _
- (HappyAbsSyn41 happy_var_1)
- = HappyAbsSyn49
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_120 _ _ _ = notHappyAtAll
-
-happyReduce_121 = happySpecReduce_2 50# happyReduction_121
-happyReduction_121 _
- (HappyAbsSyn43 happy_var_1)
- = HappyAbsSyn50
- ((:[]) happy_var_1
- )
-happyReduction_121 _ _ = notHappyAtAll
-
-happyReduce_122 = happySpecReduce_3 50# happyReduction_122
-happyReduction_122 (HappyAbsSyn50 happy_var_3)
- _
- (HappyAbsSyn43 happy_var_1)
- = HappyAbsSyn50
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_122 _ _ _ = notHappyAtAll
-
-happyReduce_123 = happySpecReduce_2 51# happyReduction_123
-happyReduction_123 _
- (HappyAbsSyn44 happy_var_1)
- = HappyAbsSyn51
- ((:[]) happy_var_1
- )
-happyReduction_123 _ _ = notHappyAtAll
-
-happyReduce_124 = happySpecReduce_3 51# happyReduction_124
-happyReduction_124 (HappyAbsSyn51 happy_var_3)
- _
- (HappyAbsSyn44 happy_var_1)
- = HappyAbsSyn51
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_124 _ _ _ = notHappyAtAll
-
-happyReduce_125 = happySpecReduce_0 52# happyReduction_125
-happyReduction_125 = HappyAbsSyn52
- ([]
- )
-
-happyReduce_126 = happySpecReduce_1 52# happyReduction_126
-happyReduction_126 (HappyAbsSyn42 happy_var_1)
- = HappyAbsSyn52
- ((:[]) happy_var_1
- )
-happyReduction_126 _ = notHappyAtAll
-
-happyReduce_127 = happySpecReduce_3 52# happyReduction_127
-happyReduction_127 (HappyAbsSyn52 happy_var_3)
- _
- (HappyAbsSyn42 happy_var_1)
- = HappyAbsSyn52
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_127 _ _ _ = notHappyAtAll
-
-happyReduce_128 = happySpecReduce_1 53# happyReduction_128
-happyReduction_128 (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn53
- ((:[]) happy_var_1
- )
-happyReduction_128 _ = notHappyAtAll
-
-happyReduce_129 = happySpecReduce_3 53# happyReduction_129
-happyReduction_129 (HappyAbsSyn53 happy_var_3)
- _
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn53
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_129 _ _ _ = notHappyAtAll
-
-happyReduce_130 = happySpecReduce_1 54# happyReduction_130
-happyReduction_130 (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn54
- (IdentName happy_var_1
- )
-happyReduction_130 _ = notHappyAtAll
-
-happyReduce_131 = happySpecReduce_3 54# happyReduction_131
-happyReduction_131 _
- (HappyAbsSyn12 happy_var_2)
- _
- = HappyAbsSyn54
- (ListName happy_var_2
- )
-happyReduction_131 _ _ _ = notHappyAtAll
-
-happyReduce_132 = happySpecReduce_1 55# happyReduction_132
-happyReduction_132 (HappyAbsSyn54 happy_var_1)
- = HappyAbsSyn55
- ((:[]) happy_var_1
- )
-happyReduction_132 _ = notHappyAtAll
-
-happyReduce_133 = happySpecReduce_3 55# happyReduction_133
-happyReduction_133 (HappyAbsSyn55 happy_var_3)
- _
- (HappyAbsSyn54 happy_var_1)
- = HappyAbsSyn55
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_133 _ _ _ = notHappyAtAll
-
-happyReduce_134 = happySpecReduce_3 56# happyReduction_134
-happyReduction_134 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn53 happy_var_1)
- = HappyAbsSyn56
- (LDDecl happy_var_1 happy_var_3
- )
-happyReduction_134 _ _ _ = notHappyAtAll
-
-happyReduce_135 = happySpecReduce_3 56# happyReduction_135
-happyReduction_135 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn53 happy_var_1)
- = HappyAbsSyn56
- (LDDef happy_var_1 happy_var_3
- )
-happyReduction_135 _ _ _ = notHappyAtAll
-
-happyReduce_136 = happyReduce 5# 56# happyReduction_136
-happyReduction_136 ((HappyAbsSyn58 happy_var_5) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn58 happy_var_3) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn53 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn56
- (LDFull happy_var_1 happy_var_3 happy_var_5
- ) `HappyStk` happyRest
-
-happyReduce_137 = happySpecReduce_0 57# happyReduction_137
-happyReduction_137 = HappyAbsSyn57
- ([]
- )
-
-happyReduce_138 = happySpecReduce_1 57# happyReduction_138
-happyReduction_138 (HappyAbsSyn56 happy_var_1)
- = HappyAbsSyn57
- ((:[]) happy_var_1
- )
-happyReduction_138 _ = notHappyAtAll
-
-happyReduce_139 = happySpecReduce_3 57# happyReduction_139
-happyReduction_139 (HappyAbsSyn57 happy_var_3)
- _
- (HappyAbsSyn56 happy_var_1)
- = HappyAbsSyn57
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_139 _ _ _ = notHappyAtAll
-
-happyReduce_140 = happySpecReduce_1 58# happyReduction_140
-happyReduction_140 (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn58
- (EIdent happy_var_1
- )
-happyReduction_140 _ = notHappyAtAll
-
-happyReduce_141 = happySpecReduce_3 58# happyReduction_141
-happyReduction_141 _
- (HappyAbsSyn12 happy_var_2)
- _
- = HappyAbsSyn58
- (EConstr happy_var_2
- )
-happyReduction_141 _ _ _ = notHappyAtAll
-
-happyReduce_142 = happySpecReduce_3 58# happyReduction_142
-happyReduction_142 _
- (HappyAbsSyn12 happy_var_2)
- _
- = HappyAbsSyn58
- (ECons happy_var_2
- )
-happyReduction_142 _ _ _ = notHappyAtAll
-
-happyReduce_143 = happySpecReduce_1 58# happyReduction_143
-happyReduction_143 (HappyAbsSyn72 happy_var_1)
- = HappyAbsSyn58
- (ESort happy_var_1
- )
-happyReduction_143 _ = notHappyAtAll
-
-happyReduce_144 = happySpecReduce_1 58# happyReduction_144
-happyReduction_144 (HappyAbsSyn9 happy_var_1)
- = HappyAbsSyn58
- (EString happy_var_1
- )
-happyReduction_144 _ = notHappyAtAll
-
-happyReduce_145 = happySpecReduce_1 58# happyReduction_145
-happyReduction_145 (HappyAbsSyn8 happy_var_1)
- = HappyAbsSyn58
- (EInt happy_var_1
- )
-happyReduction_145 _ = notHappyAtAll
-
-happyReduce_146 = happySpecReduce_1 58# happyReduction_146
-happyReduction_146 (HappyAbsSyn10 happy_var_1)
- = HappyAbsSyn58
- (EFloat happy_var_1
- )
-happyReduction_146 _ = notHappyAtAll
-
-happyReduce_147 = happySpecReduce_1 58# happyReduction_147
-happyReduction_147 _
- = HappyAbsSyn58
- (EMeta
- )
-
-happyReduce_148 = happySpecReduce_2 58# happyReduction_148
-happyReduction_148 _
- _
- = HappyAbsSyn58
- (EEmpty
- )
-
-happyReduce_149 = happySpecReduce_1 58# happyReduction_149
-happyReduction_149 _
- = HappyAbsSyn58
- (EData
- )
-
-happyReduce_150 = happyReduce 4# 58# happyReduction_150
-happyReduction_150 (_ `HappyStk`
- (HappyAbsSyn66 happy_var_3) `HappyStk`
- (HappyAbsSyn12 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (EList happy_var_2 happy_var_3
- ) `HappyStk` happyRest
-
-happyReduce_151 = happySpecReduce_3 58# happyReduction_151
-happyReduction_151 _
- (HappyAbsSyn9 happy_var_2)
- _
- = HappyAbsSyn58
- (EStrings happy_var_2
- )
-happyReduction_151 _ _ _ = notHappyAtAll
-
-happyReduce_152 = happySpecReduce_3 58# happyReduction_152
-happyReduction_152 _
- (HappyAbsSyn57 happy_var_2)
- _
- = HappyAbsSyn58
- (ERecord happy_var_2
- )
-happyReduction_152 _ _ _ = notHappyAtAll
-
-happyReduce_153 = happySpecReduce_3 58# happyReduction_153
-happyReduction_153 _
- (HappyAbsSyn80 happy_var_2)
- _
- = HappyAbsSyn58
- (ETuple happy_var_2
- )
-happyReduction_153 _ _ _ = notHappyAtAll
-
-happyReduce_154 = happyReduce 4# 58# happyReduction_154
-happyReduction_154 (_ `HappyStk`
- (HappyAbsSyn12 happy_var_3) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (EIndir happy_var_3
- ) `HappyStk` happyRest
-
-happyReduce_155 = happyReduce 5# 58# happyReduction_155
-happyReduction_155 (_ `HappyStk`
- (HappyAbsSyn58 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn58 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (ETyped happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_156 = happySpecReduce_3 58# happyReduction_156
-happyReduction_156 _
- (HappyAbsSyn58 happy_var_2)
- _
- = HappyAbsSyn58
- (happy_var_2
- )
-happyReduction_156 _ _ _ = notHappyAtAll
-
-happyReduce_157 = happySpecReduce_1 58# happyReduction_157
-happyReduction_157 (HappyAbsSyn11 happy_var_1)
- = HappyAbsSyn58
- (ELString happy_var_1
- )
-happyReduction_157 _ = notHappyAtAll
-
-happyReduce_158 = happySpecReduce_3 59# happyReduction_158
-happyReduction_158 (HappyAbsSyn71 happy_var_3)
- _
- (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (EProj happy_var_1 happy_var_3
- )
-happyReduction_158 _ _ _ = notHappyAtAll
-
-happyReduce_159 = happyReduce 5# 59# happyReduction_159
-happyReduction_159 (_ `HappyStk`
- (HappyAbsSyn12 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (EQConstr happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_160 = happyReduce 4# 59# happyReduction_160
-happyReduction_160 ((HappyAbsSyn12 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (EQCons happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_161 = happySpecReduce_1 59# happyReduction_161
-happyReduction_161 (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (happy_var_1
- )
-happyReduction_161 _ = notHappyAtAll
-
-happyReduce_162 = happySpecReduce_2 60# happyReduction_162
-happyReduction_162 (HappyAbsSyn58 happy_var_2)
- (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (EApp happy_var_1 happy_var_2
- )
-happyReduction_162 _ _ = notHappyAtAll
-
-happyReduce_163 = happyReduce 4# 60# happyReduction_163
-happyReduction_163 (_ `HappyStk`
- (HappyAbsSyn83 happy_var_3) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (ETable happy_var_3
- ) `HappyStk` happyRest
-
-happyReduce_164 = happyReduce 5# 60# happyReduction_164
-happyReduction_164 (_ `HappyStk`
- (HappyAbsSyn83 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn58 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (ETTable happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_165 = happyReduce 5# 60# happyReduction_165
-happyReduction_165 (_ `HappyStk`
- (HappyAbsSyn65 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn58 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (EVTable happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_166 = happyReduce 6# 60# happyReduction_166
-happyReduction_166 (_ `HappyStk`
- (HappyAbsSyn83 happy_var_5) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn58 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (ECase happy_var_2 happy_var_5
- ) `HappyStk` happyRest
-
-happyReduce_167 = happyReduce 4# 60# happyReduction_167
-happyReduction_167 (_ `HappyStk`
- (HappyAbsSyn65 happy_var_3) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (EVariants happy_var_3
- ) `HappyStk` happyRest
-
-happyReduce_168 = happyReduce 6# 60# happyReduction_168
-happyReduction_168 (_ `HappyStk`
- (HappyAbsSyn87 happy_var_5) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn58 happy_var_3) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (EPre happy_var_3 happy_var_5
- ) `HappyStk` happyRest
-
-happyReduce_169 = happyReduce 4# 60# happyReduction_169
-happyReduction_169 (_ `HappyStk`
- (HappyAbsSyn65 happy_var_3) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (EStrs happy_var_3
- ) `HappyStk` happyRest
-
-happyReduce_170 = happySpecReduce_3 60# happyReduction_170
-happyReduction_170 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn58
- (EConAt happy_var_1 happy_var_3
- )
-happyReduction_170 _ _ _ = notHappyAtAll
-
-happyReduce_171 = happySpecReduce_2 60# happyReduction_171
-happyReduction_171 (HappyAbsSyn67 happy_var_2)
- _
- = HappyAbsSyn58
- (EPatt happy_var_2
- )
-happyReduction_171 _ _ = notHappyAtAll
-
-happyReduce_172 = happySpecReduce_2 60# happyReduction_172
-happyReduction_172 (HappyAbsSyn58 happy_var_2)
- _
- = HappyAbsSyn58
- (EPattType happy_var_2
- )
-happyReduction_172 _ _ = notHappyAtAll
-
-happyReduce_173 = happySpecReduce_1 60# happyReduction_173
-happyReduction_173 (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (happy_var_1
- )
-happyReduction_173 _ = notHappyAtAll
-
-happyReduce_174 = happySpecReduce_2 60# happyReduction_174
-happyReduction_174 (HappyAbsSyn12 happy_var_2)
- _
- = HappyAbsSyn58
- (ELin happy_var_2
- )
-happyReduction_174 _ _ = notHappyAtAll
-
-happyReduce_175 = happySpecReduce_3 61# happyReduction_175
-happyReduction_175 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (ESelect happy_var_1 happy_var_3
- )
-happyReduction_175 _ _ _ = notHappyAtAll
-
-happyReduce_176 = happySpecReduce_3 61# happyReduction_176
-happyReduction_176 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (ETupTyp happy_var_1 happy_var_3
- )
-happyReduction_176 _ _ _ = notHappyAtAll
-
-happyReduce_177 = happySpecReduce_3 61# happyReduction_177
-happyReduction_177 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (EExtend happy_var_1 happy_var_3
- )
-happyReduction_177 _ _ _ = notHappyAtAll
-
-happyReduce_178 = happySpecReduce_1 61# happyReduction_178
-happyReduction_178 (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (happy_var_1
- )
-happyReduction_178 _ = notHappyAtAll
-
-happyReduce_179 = happySpecReduce_3 62# happyReduction_179
-happyReduction_179 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (EGlue happy_var_1 happy_var_3
- )
-happyReduction_179 _ _ _ = notHappyAtAll
-
-happyReduce_180 = happySpecReduce_1 62# happyReduction_180
-happyReduction_180 (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (happy_var_1
- )
-happyReduction_180 _ = notHappyAtAll
-
-happyReduce_181 = happySpecReduce_3 63# happyReduction_181
-happyReduction_181 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (EConcat happy_var_1 happy_var_3
- )
-happyReduction_181 _ _ _ = notHappyAtAll
-
-happyReduce_182 = happyReduce 4# 63# happyReduction_182
-happyReduction_182 ((HappyAbsSyn58 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn76 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (EAbstr happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_183 = happyReduce 5# 63# happyReduction_183
-happyReduction_183 ((HappyAbsSyn58 happy_var_5) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn76 happy_var_3) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (ECTable happy_var_3 happy_var_5
- ) `HappyStk` happyRest
-
-happyReduce_184 = happySpecReduce_3 63# happyReduction_184
-happyReduction_184 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn77 happy_var_1)
- = HappyAbsSyn58
- (EProd happy_var_1 happy_var_3
- )
-happyReduction_184 _ _ _ = notHappyAtAll
-
-happyReduce_185 = happySpecReduce_3 63# happyReduction_185
-happyReduction_185 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (ETType happy_var_1 happy_var_3
- )
-happyReduction_185 _ _ _ = notHappyAtAll
-
-happyReduce_186 = happyReduce 6# 63# happyReduction_186
-happyReduction_186 ((HappyAbsSyn58 happy_var_6) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn57 happy_var_3) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (ELet happy_var_3 happy_var_6
- ) `HappyStk` happyRest
-
-happyReduce_187 = happyReduce 4# 63# happyReduction_187
-happyReduction_187 ((HappyAbsSyn58 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn57 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (ELetb happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_188 = happyReduce 5# 63# happyReduction_188
-happyReduction_188 (_ `HappyStk`
- (HappyAbsSyn57 happy_var_4) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn58 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (EWhere happy_var_1 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_189 = happyReduce 4# 63# happyReduction_189
-happyReduction_189 (_ `HappyStk`
- (HappyAbsSyn85 happy_var_3) `HappyStk`
- _ `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn58
- (EEqs happy_var_3
- ) `HappyStk` happyRest
-
-happyReduce_190 = happySpecReduce_3 63# happyReduction_190
-happyReduction_190 (HappyAbsSyn9 happy_var_3)
- (HappyAbsSyn58 happy_var_2)
- _
- = HappyAbsSyn58
- (EExample happy_var_2 happy_var_3
- )
-happyReduction_190 _ _ _ = notHappyAtAll
-
-happyReduce_191 = happySpecReduce_1 63# happyReduction_191
-happyReduction_191 (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (happy_var_1
- )
-happyReduction_191 _ = notHappyAtAll
-
-happyReduce_192 = happySpecReduce_1 64# happyReduction_192
-happyReduction_192 (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn58
- (happy_var_1
- )
-happyReduction_192 _ = notHappyAtAll
-
-happyReduce_193 = happySpecReduce_0 65# happyReduction_193
-happyReduction_193 = HappyAbsSyn65
- ([]
- )
-
-happyReduce_194 = happySpecReduce_1 65# happyReduction_194
-happyReduction_194 (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn65
- ((:[]) happy_var_1
- )
-happyReduction_194 _ = notHappyAtAll
-
-happyReduce_195 = happySpecReduce_3 65# happyReduction_195
-happyReduction_195 (HappyAbsSyn65 happy_var_3)
- _
- (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn65
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_195 _ _ _ = notHappyAtAll
-
-happyReduce_196 = happySpecReduce_0 66# happyReduction_196
-happyReduction_196 = HappyAbsSyn66
- (NilExp
- )
-
-happyReduce_197 = happySpecReduce_2 66# happyReduction_197
-happyReduction_197 (HappyAbsSyn66 happy_var_2)
- (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn66
- (ConsExp happy_var_1 happy_var_2
- )
-happyReduction_197 _ _ = notHappyAtAll
-
-happyReduce_198 = happySpecReduce_1 67# happyReduction_198
-happyReduction_198 _
- = HappyAbsSyn67
- (PChar
- )
-
-happyReduce_199 = happySpecReduce_3 67# happyReduction_199
-happyReduction_199 _
- (HappyAbsSyn9 happy_var_2)
- _
- = HappyAbsSyn67
- (PChars happy_var_2
- )
-happyReduction_199 _ _ _ = notHappyAtAll
-
-happyReduce_200 = happySpecReduce_2 67# happyReduction_200
-happyReduction_200 (HappyAbsSyn12 happy_var_2)
- _
- = HappyAbsSyn67
- (PMacro happy_var_2
- )
-happyReduction_200 _ _ = notHappyAtAll
-
-happyReduce_201 = happyReduce 4# 67# happyReduction_201
-happyReduction_201 ((HappyAbsSyn12 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn67
- (PM happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_202 = happySpecReduce_1 67# happyReduction_202
-happyReduction_202 _
- = HappyAbsSyn67
- (PW
- )
-
-happyReduce_203 = happySpecReduce_1 67# happyReduction_203
-happyReduction_203 (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn67
- (PV happy_var_1
- )
-happyReduction_203 _ = notHappyAtAll
-
-happyReduce_204 = happySpecReduce_3 67# happyReduction_204
-happyReduction_204 _
- (HappyAbsSyn12 happy_var_2)
- _
- = HappyAbsSyn67
- (PCon happy_var_2
- )
-happyReduction_204 _ _ _ = notHappyAtAll
-
-happyReduce_205 = happySpecReduce_3 67# happyReduction_205
-happyReduction_205 (HappyAbsSyn12 happy_var_3)
- _
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn67
- (PQ happy_var_1 happy_var_3
- )
-happyReduction_205 _ _ _ = notHappyAtAll
-
-happyReduce_206 = happySpecReduce_1 67# happyReduction_206
-happyReduction_206 (HappyAbsSyn8 happy_var_1)
- = HappyAbsSyn67
- (PInt happy_var_1
- )
-happyReduction_206 _ = notHappyAtAll
-
-happyReduce_207 = happySpecReduce_1 67# happyReduction_207
-happyReduction_207 (HappyAbsSyn10 happy_var_1)
- = HappyAbsSyn67
- (PFloat happy_var_1
- )
-happyReduction_207 _ = notHappyAtAll
-
-happyReduce_208 = happySpecReduce_1 67# happyReduction_208
-happyReduction_208 (HappyAbsSyn9 happy_var_1)
- = HappyAbsSyn67
- (PStr happy_var_1
- )
-happyReduction_208 _ = notHappyAtAll
-
-happyReduce_209 = happySpecReduce_3 67# happyReduction_209
-happyReduction_209 _
- (HappyAbsSyn73 happy_var_2)
- _
- = HappyAbsSyn67
- (PR happy_var_2
- )
-happyReduction_209 _ _ _ = notHappyAtAll
-
-happyReduce_210 = happySpecReduce_3 67# happyReduction_210
-happyReduction_210 _
- (HappyAbsSyn81 happy_var_2)
- _
- = HappyAbsSyn67
- (PTup happy_var_2
- )
-happyReduction_210 _ _ _ = notHappyAtAll
-
-happyReduce_211 = happySpecReduce_3 67# happyReduction_211
-happyReduction_211 _
- (HappyAbsSyn67 happy_var_2)
- _
- = HappyAbsSyn67
- (happy_var_2
- )
-happyReduction_211 _ _ _ = notHappyAtAll
-
-happyReduce_212 = happySpecReduce_2 68# happyReduction_212
-happyReduction_212 (HappyAbsSyn74 happy_var_2)
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn67
- (PC happy_var_1 happy_var_2
- )
-happyReduction_212 _ _ = notHappyAtAll
-
-happyReduce_213 = happyReduce 4# 68# happyReduction_213
-happyReduction_213 ((HappyAbsSyn74 happy_var_4) `HappyStk`
- (HappyAbsSyn12 happy_var_3) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn12 happy_var_1) `HappyStk`
- happyRest)
- = HappyAbsSyn67
- (PQC happy_var_1 happy_var_3 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_214 = happySpecReduce_2 68# happyReduction_214
-happyReduction_214 _
- (HappyAbsSyn67 happy_var_1)
- = HappyAbsSyn67
- (PRep happy_var_1
- )
-happyReduction_214 _ _ = notHappyAtAll
-
-happyReduce_215 = happySpecReduce_3 68# happyReduction_215
-happyReduction_215 (HappyAbsSyn67 happy_var_3)
- _
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn67
- (PAs happy_var_1 happy_var_3
- )
-happyReduction_215 _ _ _ = notHappyAtAll
-
-happyReduce_216 = happySpecReduce_2 68# happyReduction_216
-happyReduction_216 (HappyAbsSyn67 happy_var_2)
- _
- = HappyAbsSyn67
- (PNeg happy_var_2
- )
-happyReduction_216 _ _ = notHappyAtAll
-
-happyReduce_217 = happySpecReduce_1 68# happyReduction_217
-happyReduction_217 (HappyAbsSyn67 happy_var_1)
- = HappyAbsSyn67
- (happy_var_1
- )
-happyReduction_217 _ = notHappyAtAll
-
-happyReduce_218 = happySpecReduce_3 69# happyReduction_218
-happyReduction_218 (HappyAbsSyn67 happy_var_3)
- _
- (HappyAbsSyn67 happy_var_1)
- = HappyAbsSyn67
- (PDisj happy_var_1 happy_var_3
- )
-happyReduction_218 _ _ _ = notHappyAtAll
-
-happyReduce_219 = happySpecReduce_3 69# happyReduction_219
-happyReduction_219 (HappyAbsSyn67 happy_var_3)
- _
- (HappyAbsSyn67 happy_var_1)
- = HappyAbsSyn67
- (PSeq happy_var_1 happy_var_3
- )
-happyReduction_219 _ _ _ = notHappyAtAll
-
-happyReduce_220 = happySpecReduce_1 69# happyReduction_220
-happyReduction_220 (HappyAbsSyn67 happy_var_1)
- = HappyAbsSyn67
- (happy_var_1
- )
-happyReduction_220 _ = notHappyAtAll
-
-happyReduce_221 = happySpecReduce_3 70# happyReduction_221
-happyReduction_221 (HappyAbsSyn67 happy_var_3)
- _
- (HappyAbsSyn53 happy_var_1)
- = HappyAbsSyn70
- (PA happy_var_1 happy_var_3
- )
-happyReduction_221 _ _ _ = notHappyAtAll
-
-happyReduce_222 = happySpecReduce_1 71# happyReduction_222
-happyReduction_222 (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn71
- (LIdent happy_var_1
- )
-happyReduction_222 _ = notHappyAtAll
-
-happyReduce_223 = happySpecReduce_2 71# happyReduction_223
-happyReduction_223 (HappyAbsSyn8 happy_var_2)
- _
- = HappyAbsSyn71
- (LVar happy_var_2
- )
-happyReduction_223 _ _ = notHappyAtAll
-
-happyReduce_224 = happySpecReduce_1 72# happyReduction_224
-happyReduction_224 _
- = HappyAbsSyn72
- (Sort_Type
- )
-
-happyReduce_225 = happySpecReduce_1 72# happyReduction_225
-happyReduction_225 _
- = HappyAbsSyn72
- (Sort_PType
- )
-
-happyReduce_226 = happySpecReduce_1 72# happyReduction_226
-happyReduction_226 _
- = HappyAbsSyn72
- (Sort_Tok
- )
-
-happyReduce_227 = happySpecReduce_1 72# happyReduction_227
-happyReduction_227 _
- = HappyAbsSyn72
- (Sort_Str
- )
-
-happyReduce_228 = happySpecReduce_1 72# happyReduction_228
-happyReduction_228 _
- = HappyAbsSyn72
- (Sort_Strs
- )
-
-happyReduce_229 = happySpecReduce_0 73# happyReduction_229
-happyReduction_229 = HappyAbsSyn73
- ([]
- )
-
-happyReduce_230 = happySpecReduce_1 73# happyReduction_230
-happyReduction_230 (HappyAbsSyn70 happy_var_1)
- = HappyAbsSyn73
- ((:[]) happy_var_1
- )
-happyReduction_230 _ = notHappyAtAll
-
-happyReduce_231 = happySpecReduce_3 73# happyReduction_231
-happyReduction_231 (HappyAbsSyn73 happy_var_3)
- _
- (HappyAbsSyn70 happy_var_1)
- = HappyAbsSyn73
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_231 _ _ _ = notHappyAtAll
-
-happyReduce_232 = happySpecReduce_1 74# happyReduction_232
-happyReduction_232 (HappyAbsSyn67 happy_var_1)
- = HappyAbsSyn74
- ((:[]) happy_var_1
- )
-happyReduction_232 _ = notHappyAtAll
-
-happyReduce_233 = happySpecReduce_2 74# happyReduction_233
-happyReduction_233 (HappyAbsSyn74 happy_var_2)
- (HappyAbsSyn67 happy_var_1)
- = HappyAbsSyn74
- ((:) happy_var_1 happy_var_2
- )
-happyReduction_233 _ _ = notHappyAtAll
-
-happyReduce_234 = happySpecReduce_1 75# happyReduction_234
-happyReduction_234 (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn75
- (BIdent happy_var_1
- )
-happyReduction_234 _ = notHappyAtAll
-
-happyReduce_235 = happySpecReduce_1 75# happyReduction_235
-happyReduction_235 _
- = HappyAbsSyn75
- (BWild
- )
-
-happyReduce_236 = happySpecReduce_0 76# happyReduction_236
-happyReduction_236 = HappyAbsSyn76
- ([]
- )
-
-happyReduce_237 = happySpecReduce_1 76# happyReduction_237
-happyReduction_237 (HappyAbsSyn75 happy_var_1)
- = HappyAbsSyn76
- ((:[]) happy_var_1
- )
-happyReduction_237 _ = notHappyAtAll
-
-happyReduce_238 = happySpecReduce_3 76# happyReduction_238
-happyReduction_238 (HappyAbsSyn76 happy_var_3)
- _
- (HappyAbsSyn75 happy_var_1)
- = HappyAbsSyn76
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_238 _ _ _ = notHappyAtAll
-
-happyReduce_239 = happyReduce 5# 77# happyReduction_239
-happyReduction_239 (_ `HappyStk`
- (HappyAbsSyn58 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn76 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn77
- (DDec happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_240 = happySpecReduce_1 77# happyReduction_240
-happyReduction_240 (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn77
- (DExp happy_var_1
- )
-happyReduction_240 _ = notHappyAtAll
-
-happyReduce_241 = happySpecReduce_1 78# happyReduction_241
-happyReduction_241 (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn78
- (TComp happy_var_1
- )
-happyReduction_241 _ = notHappyAtAll
-
-happyReduce_242 = happySpecReduce_1 79# happyReduction_242
-happyReduction_242 (HappyAbsSyn67 happy_var_1)
- = HappyAbsSyn79
- (PTComp happy_var_1
- )
-happyReduction_242 _ = notHappyAtAll
-
-happyReduce_243 = happySpecReduce_0 80# happyReduction_243
-happyReduction_243 = HappyAbsSyn80
- ([]
- )
-
-happyReduce_244 = happySpecReduce_1 80# happyReduction_244
-happyReduction_244 (HappyAbsSyn78 happy_var_1)
- = HappyAbsSyn80
- ((:[]) happy_var_1
- )
-happyReduction_244 _ = notHappyAtAll
-
-happyReduce_245 = happySpecReduce_3 80# happyReduction_245
-happyReduction_245 (HappyAbsSyn80 happy_var_3)
- _
- (HappyAbsSyn78 happy_var_1)
- = HappyAbsSyn80
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_245 _ _ _ = notHappyAtAll
-
-happyReduce_246 = happySpecReduce_0 81# happyReduction_246
-happyReduction_246 = HappyAbsSyn81
- ([]
- )
-
-happyReduce_247 = happySpecReduce_1 81# happyReduction_247
-happyReduction_247 (HappyAbsSyn79 happy_var_1)
- = HappyAbsSyn81
- ((:[]) happy_var_1
- )
-happyReduction_247 _ = notHappyAtAll
-
-happyReduce_248 = happySpecReduce_3 81# happyReduction_248
-happyReduction_248 (HappyAbsSyn81 happy_var_3)
- _
- (HappyAbsSyn79 happy_var_1)
- = HappyAbsSyn81
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_248 _ _ _ = notHappyAtAll
-
-happyReduce_249 = happySpecReduce_3 82# happyReduction_249
-happyReduction_249 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn67 happy_var_1)
- = HappyAbsSyn82
- (Case happy_var_1 happy_var_3
- )
-happyReduction_249 _ _ _ = notHappyAtAll
-
-happyReduce_250 = happySpecReduce_1 83# happyReduction_250
-happyReduction_250 (HappyAbsSyn82 happy_var_1)
- = HappyAbsSyn83
- ((:[]) happy_var_1
- )
-happyReduction_250 _ = notHappyAtAll
-
-happyReduce_251 = happySpecReduce_3 83# happyReduction_251
-happyReduction_251 (HappyAbsSyn83 happy_var_3)
- _
- (HappyAbsSyn82 happy_var_1)
- = HappyAbsSyn83
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_251 _ _ _ = notHappyAtAll
-
-happyReduce_252 = happySpecReduce_3 84# happyReduction_252
-happyReduction_252 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn74 happy_var_1)
- = HappyAbsSyn84
- (Equ happy_var_1 happy_var_3
- )
-happyReduction_252 _ _ _ = notHappyAtAll
-
-happyReduce_253 = happySpecReduce_0 85# happyReduction_253
-happyReduction_253 = HappyAbsSyn85
- ([]
- )
-
-happyReduce_254 = happySpecReduce_1 85# happyReduction_254
-happyReduction_254 (HappyAbsSyn84 happy_var_1)
- = HappyAbsSyn85
- ((:[]) happy_var_1
- )
-happyReduction_254 _ = notHappyAtAll
-
-happyReduce_255 = happySpecReduce_3 85# happyReduction_255
-happyReduction_255 (HappyAbsSyn85 happy_var_3)
- _
- (HappyAbsSyn84 happy_var_1)
- = HappyAbsSyn85
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_255 _ _ _ = notHappyAtAll
-
-happyReduce_256 = happySpecReduce_3 86# happyReduction_256
-happyReduction_256 (HappyAbsSyn58 happy_var_3)
- _
- (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn86
- (Alt happy_var_1 happy_var_3
- )
-happyReduction_256 _ _ _ = notHappyAtAll
-
-happyReduce_257 = happySpecReduce_0 87# happyReduction_257
-happyReduction_257 = HappyAbsSyn87
- ([]
- )
-
-happyReduce_258 = happySpecReduce_1 87# happyReduction_258
-happyReduction_258 (HappyAbsSyn86 happy_var_1)
- = HappyAbsSyn87
- ((:[]) happy_var_1
- )
-happyReduction_258 _ = notHappyAtAll
-
-happyReduce_259 = happySpecReduce_3 87# happyReduction_259
-happyReduction_259 (HappyAbsSyn87 happy_var_3)
- _
- (HappyAbsSyn86 happy_var_1)
- = HappyAbsSyn87
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_259 _ _ _ = notHappyAtAll
-
-happyReduce_260 = happyReduce 5# 88# happyReduction_260
-happyReduction_260 (_ `HappyStk`
- (HappyAbsSyn58 happy_var_4) `HappyStk`
- _ `HappyStk`
- (HappyAbsSyn76 happy_var_2) `HappyStk`
- _ `HappyStk`
- happyRest)
- = HappyAbsSyn88
- (DDDec happy_var_2 happy_var_4
- ) `HappyStk` happyRest
-
-happyReduce_261 = happySpecReduce_1 88# happyReduction_261
-happyReduction_261 (HappyAbsSyn58 happy_var_1)
- = HappyAbsSyn88
- (DDExp happy_var_1
- )
-happyReduction_261 _ = notHappyAtAll
-
-happyReduce_262 = happySpecReduce_0 89# happyReduction_262
-happyReduction_262 = HappyAbsSyn89
- ([]
- )
-
-happyReduce_263 = happySpecReduce_2 89# happyReduction_263
-happyReduction_263 (HappyAbsSyn88 happy_var_2)
- (HappyAbsSyn89 happy_var_1)
- = HappyAbsSyn89
- (flip (:) happy_var_1 happy_var_2
- )
-happyReduction_263 _ _ = notHappyAtAll
-
-happyReduce_264 = happySpecReduce_2 90# happyReduction_264
-happyReduction_264 (HappyAbsSyn25 happy_var_2)
- (HappyAbsSyn91 happy_var_1)
- = HappyAbsSyn90
- (OldGr happy_var_1 (reverse happy_var_2)
- )
-happyReduction_264 _ _ = notHappyAtAll
-
-happyReduce_265 = happySpecReduce_0 91# happyReduction_265
-happyReduction_265 = HappyAbsSyn91
- (NoIncl
- )
-
-happyReduce_266 = happySpecReduce_2 91# happyReduction_266
-happyReduction_266 (HappyAbsSyn93 happy_var_2)
- _
- = HappyAbsSyn91
- (Incl happy_var_2
- )
-happyReduction_266 _ _ = notHappyAtAll
-
-happyReduce_267 = happySpecReduce_1 92# happyReduction_267
-happyReduction_267 (HappyAbsSyn9 happy_var_1)
- = HappyAbsSyn92
- (FString happy_var_1
- )
-happyReduction_267 _ = notHappyAtAll
-
-happyReduce_268 = happySpecReduce_1 92# happyReduction_268
-happyReduction_268 (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn92
- (FIdent happy_var_1
- )
-happyReduction_268 _ = notHappyAtAll
-
-happyReduce_269 = happySpecReduce_2 92# happyReduction_269
-happyReduction_269 (HappyAbsSyn92 happy_var_2)
- _
- = HappyAbsSyn92
- (FSlash happy_var_2
- )
-happyReduction_269 _ _ = notHappyAtAll
-
-happyReduce_270 = happySpecReduce_2 92# happyReduction_270
-happyReduction_270 (HappyAbsSyn92 happy_var_2)
- _
- = HappyAbsSyn92
- (FDot happy_var_2
- )
-happyReduction_270 _ _ = notHappyAtAll
-
-happyReduce_271 = happySpecReduce_2 92# happyReduction_271
-happyReduction_271 (HappyAbsSyn92 happy_var_2)
- _
- = HappyAbsSyn92
- (FMinus happy_var_2
- )
-happyReduction_271 _ _ = notHappyAtAll
-
-happyReduce_272 = happySpecReduce_2 92# happyReduction_272
-happyReduction_272 (HappyAbsSyn92 happy_var_2)
- (HappyAbsSyn12 happy_var_1)
- = HappyAbsSyn92
- (FAddId happy_var_1 happy_var_2
- )
-happyReduction_272 _ _ = notHappyAtAll
-
-happyReduce_273 = happySpecReduce_2 93# happyReduction_273
-happyReduction_273 _
- (HappyAbsSyn92 happy_var_1)
- = HappyAbsSyn93
- ((:[]) happy_var_1
- )
-happyReduction_273 _ _ = notHappyAtAll
-
-happyReduce_274 = happySpecReduce_3 93# happyReduction_274
-happyReduction_274 (HappyAbsSyn93 happy_var_3)
- _
- (HappyAbsSyn92 happy_var_1)
- = HappyAbsSyn93
- ((:) happy_var_1 happy_var_3
- )
-happyReduction_274 _ _ _ = notHappyAtAll
-
-happyNewToken action sts stk [] =
- action 176# 176# notHappyAtAll (HappyState action) sts stk []
-
-happyNewToken action sts stk (tk:tks) =
- let cont i = action i i tk (HappyState action) sts stk tks in
- case tk of {
- PT _ (TS ";") -> cont 94#;
- PT _ (TS "=") -> cont 95#;
- PT _ (TS "{") -> cont 96#;
- PT _ (TS "}") -> cont 97#;
- PT _ (TS "(") -> cont 98#;
- PT _ (TS ")") -> cont 99#;
- PT _ (TS ":") -> cont 100#;
- PT _ (TS "->") -> cont 101#;
- PT _ (TS "**") -> cont 102#;
- PT _ (TS ",") -> cont 103#;
- PT _ (TS "[") -> cont 104#;
- PT _ (TS "]") -> cont 105#;
- PT _ (TS "-") -> cont 106#;
- PT _ (TS ".") -> cont 107#;
- PT _ (TS "|") -> cont 108#;
- PT _ (TS "%") -> cont 109#;
- PT _ (TS "?") -> cont 110#;
- PT _ (TS "<") -> cont 111#;
- PT _ (TS ">") -> cont 112#;
- PT _ (TS "@") -> cont 113#;
- PT _ (TS "#") -> cont 114#;
- PT _ (TS "!") -> cont 115#;
- PT _ (TS "*") -> cont 116#;
- PT _ (TS "+") -> cont 117#;
- PT _ (TS "++") -> cont 118#;
- PT _ (TS "\\") -> cont 119#;
- PT _ (TS "=>") -> cont 120#;
- PT _ (TS "_") -> cont 121#;
- PT _ (TS "$") -> cont 122#;
- PT _ (TS "/") -> cont 123#;
- PT _ (TS "Lin") -> cont 124#;
- PT _ (TS "PType") -> cont 125#;
- PT _ (TS "Str") -> cont 126#;
- PT _ (TS "Strs") -> cont 127#;
- PT _ (TS "Tok") -> cont 128#;
- PT _ (TS "Type") -> cont 129#;
- PT _ (TS "abstract") -> cont 130#;
- PT _ (TS "case") -> cont 131#;
- PT _ (TS "cat") -> cont 132#;
- PT _ (TS "concrete") -> cont 133#;
- PT _ (TS "data") -> cont 134#;
- PT _ (TS "def") -> cont 135#;
- PT _ (TS "flags") -> cont 136#;
- PT _ (TS "fn") -> cont 137#;
- PT _ (TS "fun") -> cont 138#;
- PT _ (TS "grammar") -> cont 139#;
- PT _ (TS "in") -> cont 140#;
- PT _ (TS "include") -> cont 141#;
- PT _ (TS "incomplete") -> cont 142#;
- PT _ (TS "instance") -> cont 143#;
- PT _ (TS "interface") -> cont 144#;
- PT _ (TS "let") -> cont 145#;
- PT _ (TS "lin") -> cont 146#;
- PT _ (TS "lincat") -> cont 147#;
- PT _ (TS "lindef") -> cont 148#;
- PT _ (TS "lintype") -> cont 149#;
- PT _ (TS "of") -> cont 150#;
- PT _ (TS "open") -> cont 151#;
- PT _ (TS "oper") -> cont 152#;
- PT _ (TS "out") -> cont 153#;
- PT _ (TS "package") -> cont 154#;
- PT _ (TS "param") -> cont 155#;
- PT _ (TS "pattern") -> cont 156#;
- PT _ (TS "pre") -> cont 157#;
- PT _ (TS "printname") -> cont 158#;
- PT _ (TS "resource") -> cont 159#;
- PT _ (TS "reuse") -> cont 160#;
- PT _ (TS "strs") -> cont 161#;
- PT _ (TS "table") -> cont 162#;
- PT _ (TS "tokenizer") -> cont 163#;
- PT _ (TS "transfer") -> cont 164#;
- PT _ (TS "union") -> cont 165#;
- PT _ (TS "var") -> cont 166#;
- PT _ (TS "variants") -> cont 167#;
- PT _ (TS "where") -> cont 168#;
- PT _ (TS "with") -> cont 169#;
- PT _ (TI happy_dollar_dollar) -> cont 170#;
- PT _ (TL happy_dollar_dollar) -> cont 171#;
- PT _ (TD happy_dollar_dollar) -> cont 172#;
- PT _ (T_LString happy_dollar_dollar) -> cont 173#;
- PT _ (T_PIdent _) -> cont 174#;
- _ -> cont 175#;
- _ -> happyError' (tk:tks)
- }
-
-happyError_ tk tks = happyError' (tk:tks)
-
-happyThen :: () => Err a -> (a -> Err b) -> Err b
-happyThen = (thenM)
-happyReturn :: () => a -> Err a
-happyReturn = (returnM)
-happyThen1 m k tks = (thenM) m (\a -> k a tks)
-happyReturn1 :: () => a -> b -> Err a
-happyReturn1 = \a tks -> (returnM) a
-happyError' :: () => [Token] -> Err a
-happyError' = happyError
-
-pGrammar tks = happySomeParser where
- happySomeParser = happyThen (happyParse action_0 tks) (\x -> case x of {HappyAbsSyn13 z -> happyReturn z; _other -> notHappyAtAll })
-
-pModDef tks = happySomeParser where
- happySomeParser = happyThen (happyParse action_1 tks) (\x -> case x of {HappyAbsSyn15 z -> happyReturn z; _other -> notHappyAtAll })
-
-pOldGrammar tks = happySomeParser where
- happySomeParser = happyThen (happyParse action_2 tks) (\x -> case x of {HappyAbsSyn90 z -> happyReturn z; _other -> notHappyAtAll })
-
-pExp tks = happySomeParser where
- happySomeParser = happyThen (happyParse action_3 tks) (\x -> case x of {HappyAbsSyn58 z -> happyReturn z; _other -> notHappyAtAll })
-
-pModHeader tks = happySomeParser where
- happySomeParser = happyThen (happyParse action_4 tks) (\x -> case x of {HappyAbsSyn15 z -> happyReturn z; _other -> notHappyAtAll })
-
-happySeq = happyDontSeq
-
-
-returnM :: a -> Err a
-returnM = return
-
-thenM :: Err a -> (a -> Err b) -> Err b
-thenM = (>>=)
-
-happyError :: [Token] -> Err a
-happyError ts =
- Bad $ "syntax error at " ++ tokenPos ts ++
- case ts of
- [] -> []
- [Err _] -> " due to lexer error"
- _ -> " before " ++ unwords (map prToken (take 4 ts))
-
-myLexer = tokens
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
-{-# LINE 1 "<built-in>" #-}
-{-# LINE 1 "<command line>" #-}
-{-# LINE 1 "templates/GenericTemplate.hs" #-}
--- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp
-
-{-# LINE 28 "templates/GenericTemplate.hs" #-}
-
-
-
-
-
-
-
-
-{-# LINE 49 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 59 "templates/GenericTemplate.hs" #-}
-
-{-# LINE 68 "templates/GenericTemplate.hs" #-}
-
-infixr 9 `HappyStk`
-data HappyStk a = HappyStk a (HappyStk a)
-
------------------------------------------------------------------------------
--- starting the parse
-
-happyParse start_state = happyNewToken start_state notHappyAtAll notHappyAtAll
-
------------------------------------------------------------------------------
--- Accepting the parse
-
--- If the current token is 1#, it means we've just accepted a partial
--- parse (a %partial parser). We must ignore the saved token on the top of
--- the stack in this case.
-happyAccept 1# tk st sts (_ `HappyStk` ans `HappyStk` _) =
- happyReturn1 ans
-happyAccept j tk st sts (HappyStk ans _) =
- (happyTcHack j ) (happyReturn1 ans)
-
------------------------------------------------------------------------------
--- Arrays only: do the next action
-
-{-# LINE 155 "templates/GenericTemplate.hs" #-}
-
------------------------------------------------------------------------------
--- HappyState data type (not arrays)
-
-
-
-newtype HappyState b c = HappyState
- (Int# -> -- token number
- Int# -> -- token number (yes, again)
- b -> -- token semantic value
- HappyState b c -> -- current state
- [HappyState b c] -> -- state stack
- c)
-
-
-
------------------------------------------------------------------------------
--- Shifting a token
-
-happyShift new_state 1# tk st sts stk@(x `HappyStk` _) =
- let i = (case x of { HappyErrorToken (I# (i)) -> i }) in
--- trace "shifting the error token" $
- new_state i i tk (HappyState (new_state)) ((st):(sts)) (stk)
-
-happyShift new_state i tk st sts stk =
- happyNewToken new_state ((st):(sts)) ((HappyTerminal (tk))`HappyStk`stk)
-
--- happyReduce is specialised for the common cases.
-
-happySpecReduce_0 i fn 1# tk st sts stk
- = happyFail 1# tk st sts stk
-happySpecReduce_0 nt fn j tk st@((HappyState (action))) sts stk
- = action nt j tk st ((st):(sts)) (fn `HappyStk` stk)
-
-happySpecReduce_1 i fn 1# tk st sts stk
- = happyFail 1# tk st sts stk
-happySpecReduce_1 nt fn j tk _ sts@(((st@(HappyState (action))):(_))) (v1`HappyStk`stk')
- = let r = fn v1 in
- happySeq r (action nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_2 i fn 1# tk st sts stk
- = happyFail 1# tk st sts stk
-happySpecReduce_2 nt fn j tk _ ((_):(sts@(((st@(HappyState (action))):(_))))) (v1`HappyStk`v2`HappyStk`stk')
- = let r = fn v1 v2 in
- happySeq r (action nt j tk st sts (r `HappyStk` stk'))
-
-happySpecReduce_3 i fn 1# tk st sts stk
- = happyFail 1# tk st sts stk
-happySpecReduce_3 nt fn j tk _ ((_):(((_):(sts@(((st@(HappyState (action))):(_))))))) (v1`HappyStk`v2`HappyStk`v3`HappyStk`stk')
- = let r = fn v1 v2 v3 in
- happySeq r (action nt j tk st sts (r `HappyStk` stk'))
-
-happyReduce k i fn 1# tk st sts stk
- = happyFail 1# tk st sts stk
-happyReduce k nt fn j tk st sts stk
- = case happyDrop (k -# (1# :: Int#)) sts of
- sts1@(((st1@(HappyState (action))):(_))) ->
- let r = fn stk in -- it doesn't hurt to always seq here...
- happyDoSeq r (action nt j tk st1 sts1 r)
-
-happyMonadReduce k nt fn 1# tk st sts stk
- = happyFail 1# tk st sts stk
-happyMonadReduce k nt fn j tk st sts stk =
- happyThen1 (fn stk tk) (\r -> action nt j tk st1 sts1 (r `HappyStk` drop_stk))
- where sts1@(((st1@(HappyState (action))):(_))) = happyDrop k ((st):(sts))
- drop_stk = happyDropStk k stk
-
-happyMonad2Reduce k nt fn 1# tk st sts stk
- = happyFail 1# tk st sts stk
-happyMonad2Reduce k nt fn j tk st sts stk =
- happyThen1 (fn stk tk) (\r -> happyNewToken new_state sts1 (r `HappyStk` drop_stk))
- where sts1@(((st1@(HappyState (action))):(_))) = happyDrop k ((st):(sts))
- drop_stk = happyDropStk k stk
-
-
-
-
-
- new_state = action
-
-
-happyDrop 0# l = l
-happyDrop n ((_):(t)) = happyDrop (n -# (1# :: Int#)) t
-
-happyDropStk 0# l = l
-happyDropStk n (x `HappyStk` xs) = happyDropStk (n -# (1#::Int#)) xs
-
------------------------------------------------------------------------------
--- Moving to a new state after a reduction
-
-{-# LINE 253 "templates/GenericTemplate.hs" #-}
-happyGoto action j tk st = action j j tk (HappyState action)
-
-
------------------------------------------------------------------------------
--- Error recovery (1# is the error token)
-
--- parse error if we are in recovery and we fail again
-happyFail 1# tk old_st _ stk =
--- trace "failing" $
- happyError_ tk
-
-{- We don't need state discarding for our restricted implementation of
- "error". In fact, it can cause some bogus parses, so I've disabled it
- for now --SDM
-
--- discard a state
-happyFail 1# tk old_st (((HappyState (action))):(sts))
- (saved_tok `HappyStk` _ `HappyStk` stk) =
--- trace ("discarding state, depth " ++ show (length stk)) $
- action 1# 1# tk (HappyState (action)) sts ((saved_tok`HappyStk`stk))
--}
-
--- Enter error recovery: generate an error token,
--- save the old token and carry on.
-happyFail i tk (HappyState (action)) sts stk =
--- trace "entering error recovery" $
- action 1# 1# tk (HappyState (action)) sts ( (HappyErrorToken (I# (i))) `HappyStk` stk)
-
--- Internal happy errors:
-
-notHappyAtAll = error "Internal Happy error\n"
-
------------------------------------------------------------------------------
--- Hack to get the typechecker to accept our action functions
-
-
-happyTcHack :: Int# -> a -> a
-happyTcHack x y = y
-{-# INLINE happyTcHack #-}
-
-
------------------------------------------------------------------------------
--- Seq-ing. If the --strict flag is given, then Happy emits
--- happySeq = happyDoSeq
--- otherwise it emits
--- happySeq = happyDontSeq
-
-happyDoSeq, happyDontSeq :: a -> b -> b
-happyDoSeq a b = a `seq` b
-happyDontSeq a b = b
-
------------------------------------------------------------------------------
--- Don't inline any functions from the template. GHC has a nasty habit
--- of deciding to inline happyGoto everywhere, which increases the size of
--- the generated parser quite a bit.
-
-{-# LINE 317 "templates/GenericTemplate.hs" #-}
-{-# NOINLINE happyShift #-}
-{-# NOINLINE happySpecReduce_0 #-}
-{-# NOINLINE happySpecReduce_1 #-}
-{-# NOINLINE happySpecReduce_2 #-}
-{-# NOINLINE happySpecReduce_3 #-}
-{-# NOINLINE happyReduce #-}
-{-# NOINLINE happyMonadReduce #-}
-{-# NOINLINE happyGoto #-}
-{-# NOINLINE happyFail #-}
-
--- end of Happy Template.
diff --git a/src/GF/Source/ParGF.y b/src/GF/Source/ParGF.y deleted file mode 100644 index 2109434e5..000000000 --- a/src/GF/Source/ParGF.y +++ /dev/null @@ -1,642 +0,0 @@ --- This Happy file was machine-generated by the BNF converter -{ -{-# OPTIONS -fno-warn-incomplete-patterns -fno-warn-overlapping-patterns #-} - module GF.Source.ParGF (pGrammar, pModDef, pOldGrammar, pExp, pModHeader, myLexer) where --H -import GF.Source.AbsGF --H -import GF.Source.LexGF --H -import GF.Infra.Ident --H -import GF.Data.ErrM --H -} - -%name pGrammar Grammar -%name pModDef ModDef -%name pOldGrammar OldGrammar -%name pExp Exp -%partial pModHeader ModHeader - --- no lexer declaration -%monad { Err } { thenM } { returnM } -%tokentype { Token } - -%token - ';' { PT _ (TS ";") } - '=' { PT _ (TS "=") } - '{' { PT _ (TS "{") } - '}' { PT _ (TS "}") } - '(' { PT _ (TS "(") } - ')' { PT _ (TS ")") } - ':' { PT _ (TS ":") } - '->' { PT _ (TS "->") } - '**' { PT _ (TS "**") } - ',' { PT _ (TS ",") } - '[' { PT _ (TS "[") } - ']' { PT _ (TS "]") } - '-' { PT _ (TS "-") } - '.' { PT _ (TS ".") } - '|' { PT _ (TS "|") } - '%' { PT _ (TS "%") } - '?' { PT _ (TS "?") } - '<' { PT _ (TS "<") } - '>' { PT _ (TS ">") } - '@' { PT _ (TS "@") } - '#' { PT _ (TS "#") } - '!' { PT _ (TS "!") } - '*' { PT _ (TS "*") } - '+' { PT _ (TS "+") } - '++' { PT _ (TS "++") } - '\\' { PT _ (TS "\\") } - '=>' { PT _ (TS "=>") } - '_' { PT _ (TS "_") } - '$' { PT _ (TS "$") } - '/' { PT _ (TS "/") } - 'Lin' { PT _ (TS "Lin") } - 'PType' { PT _ (TS "PType") } - 'Str' { PT _ (TS "Str") } - 'Strs' { PT _ (TS "Strs") } - 'Tok' { PT _ (TS "Tok") } - 'Type' { PT _ (TS "Type") } - 'abstract' { PT _ (TS "abstract") } - 'case' { PT _ (TS "case") } - 'cat' { PT _ (TS "cat") } - 'concrete' { PT _ (TS "concrete") } - 'data' { PT _ (TS "data") } - 'def' { PT _ (TS "def") } - 'flags' { PT _ (TS "flags") } - 'fn' { PT _ (TS "fn") } - 'fun' { PT _ (TS "fun") } - 'grammar' { PT _ (TS "grammar") } - 'in' { PT _ (TS "in") } - 'include' { PT _ (TS "include") } - 'incomplete' { PT _ (TS "incomplete") } - 'instance' { PT _ (TS "instance") } - 'interface' { PT _ (TS "interface") } - 'let' { PT _ (TS "let") } - 'lin' { PT _ (TS "lin") } - 'lincat' { PT _ (TS "lincat") } - 'lindef' { PT _ (TS "lindef") } - 'lintype' { PT _ (TS "lintype") } - 'of' { PT _ (TS "of") } - 'open' { PT _ (TS "open") } - 'oper' { PT _ (TS "oper") } - 'out' { PT _ (TS "out") } - 'package' { PT _ (TS "package") } - 'param' { PT _ (TS "param") } - 'pattern' { PT _ (TS "pattern") } - 'pre' { PT _ (TS "pre") } - 'printname' { PT _ (TS "printname") } - 'resource' { PT _ (TS "resource") } - 'reuse' { PT _ (TS "reuse") } - 'strs' { PT _ (TS "strs") } - 'table' { PT _ (TS "table") } - 'tokenizer' { PT _ (TS "tokenizer") } - 'transfer' { PT _ (TS "transfer") } - 'union' { PT _ (TS "union") } - 'var' { PT _ (TS "var") } - 'variants' { PT _ (TS "variants") } - 'where' { PT _ (TS "where") } - 'with' { PT _ (TS "with") } - -L_integ { PT _ (TI $$) } -L_quoted { PT _ (TL $$) } -L_doubl { PT _ (TD $$) } -L_LString { PT _ (T_LString $$) } -L_PIdent { PT _ (T_PIdent _) } -L_err { _ } - - -%% - -Integer :: { Integer } : L_integ { (read $1) :: Integer } -String :: { String } : L_quoted { $1 } -Double :: { Double } : L_doubl { (read $1) :: Double } -LString :: { LString} : L_LString { LString ($1)} -PIdent :: { PIdent} : L_PIdent { PIdent (mkPosToken $1)} - -Grammar :: { Grammar } -Grammar : ListModDef { Gr (reverse $1) } - - -ListModDef :: { [ModDef] } -ListModDef : {- empty -} { [] } - | ListModDef ModDef { flip (:) $1 $2 } - - -ModDef :: { ModDef } -ModDef : ModDef ';' { $1 } - | 'grammar' PIdent '=' '{' 'abstract' '=' PIdent ';' ListConcSpec '}' { MMain $2 $7 $9 } - | ComplMod ModType '=' ModBody { MModule $1 $2 $4 } - - -ConcSpec :: { ConcSpec } -ConcSpec : PIdent '=' ConcExp { ConcSpec $1 $3 } - - -ListConcSpec :: { [ConcSpec] } -ListConcSpec : {- empty -} { [] } - | ConcSpec { (:[]) $1 } - | ConcSpec ';' ListConcSpec { (:) $1 $3 } - - -ConcExp :: { ConcExp } -ConcExp : PIdent ListTransfer { ConcExp $1 (reverse $2) } - - -ListTransfer :: { [Transfer] } -ListTransfer : {- empty -} { [] } - | ListTransfer Transfer { flip (:) $1 $2 } - - -Transfer :: { Transfer } -Transfer : '(' 'transfer' 'in' Open ')' { TransferIn $4 } - | '(' 'transfer' 'out' Open ')' { TransferOut $4 } - - -ModHeader :: { ModDef } -ModHeader : ComplMod ModType '=' ModHeaderBody { MModule $1 $2 $4 } - - -ModHeaderBody :: { ModBody } -ModHeaderBody : Extend Opens { MBody $1 $2 [] } - | ListIncluded { MNoBody $1 } - | Included 'with' ListOpen { MWith $1 $3 } - | Included 'with' ListOpen '**' Opens { MWithBody $1 $3 $5 [] } - | ListIncluded '**' Included 'with' ListOpen { MWithE $1 $3 $5 } - | ListIncluded '**' Included 'with' ListOpen '**' Opens { MWithEBody $1 $3 $5 $7 [] } - | 'reuse' PIdent { MReuse $2 } - | 'union' ListIncluded { MUnion $2 } - - -ModType :: { ModType } -ModType : 'abstract' PIdent { MTAbstract $2 } - | 'resource' PIdent { MTResource $2 } - | 'interface' PIdent { MTInterface $2 } - | 'concrete' PIdent 'of' PIdent { MTConcrete $2 $4 } - | 'instance' PIdent 'of' PIdent { MTInstance $2 $4 } - | 'transfer' PIdent ':' Open '->' Open { MTTransfer $2 $4 $6 } - - -ModBody :: { ModBody } -ModBody : Extend Opens '{' ListTopDef '}' { MBody $1 $2 (reverse $4) } - | ListIncluded { MNoBody $1 } - | Included 'with' ListOpen { MWith $1 $3 } - | Included 'with' ListOpen '**' Opens '{' ListTopDef '}' { MWithBody $1 $3 $5 (reverse $7) } - | ListIncluded '**' Included 'with' ListOpen { MWithE $1 $3 $5 } - | ListIncluded '**' Included 'with' ListOpen '**' Opens '{' ListTopDef '}' { MWithEBody $1 $3 $5 $7 (reverse $9) } - | 'reuse' PIdent { MReuse $2 } - | 'union' ListIncluded { MUnion $2 } - - -ListTopDef :: { [TopDef] } -ListTopDef : {- empty -} { [] } - | ListTopDef TopDef { flip (:) $1 $2 } - - -Extend :: { Extend } -Extend : ListIncluded '**' { Ext $1 } - | {- empty -} { NoExt } - - -ListOpen :: { [Open] } -ListOpen : {- empty -} { [] } - | Open { (:[]) $1 } - | Open ',' ListOpen { (:) $1 $3 } - - -Opens :: { Opens } -Opens : {- empty -} { NoOpens } - | 'open' ListOpen 'in' { OpenIn $2 } - - -Open :: { Open } -Open : PIdent { OName $1 } - | '(' QualOpen PIdent ')' { OQualQO $2 $3 } - | '(' QualOpen PIdent '=' PIdent ')' { OQual $2 $3 $5 } - - -ComplMod :: { ComplMod } -ComplMod : {- empty -} { CMCompl } - | 'incomplete' { CMIncompl } - - -QualOpen :: { QualOpen } -QualOpen : {- empty -} { QOCompl } - | 'incomplete' { QOIncompl } - | 'interface' { QOInterface } - - -ListIncluded :: { [Included] } -ListIncluded : {- empty -} { [] } - | Included { (:[]) $1 } - | Included ',' ListIncluded { (:) $1 $3 } - - -Included :: { Included } -Included : PIdent { IAll $1 } - | PIdent '[' ListPIdent ']' { ISome $1 $3 } - | PIdent '-' '[' ListPIdent ']' { IMinus $1 $4 } - - -Def :: { Def } -Def : ListName ':' Exp { DDecl $1 $3 } - | ListName '=' Exp { DDef $1 $3 } - | Name ListPatt '=' Exp { DPatt $1 $2 $4 } - | ListName ':' Exp '=' Exp { DFull $1 $3 $5 } - - -TopDef :: { TopDef } -TopDef : 'cat' ListCatDef { DefCat $2 } - | 'fun' ListFunDef { DefFun $2 } - | 'data' ListFunDef { DefFunData $2 } - | 'def' ListDef { DefDef $2 } - | 'data' ListDataDef { DefData $2 } - | 'transfer' ListDef { DefTrans $2 } - | 'param' ListParDef { DefPar $2 } - | 'oper' ListDef { DefOper $2 } - | 'lincat' ListPrintDef { DefLincat $2 } - | 'lindef' ListDef { DefLindef $2 } - | 'lin' ListDef { DefLin $2 } - | 'printname' 'cat' ListPrintDef { DefPrintCat $3 } - | 'printname' 'fun' ListPrintDef { DefPrintFun $3 } - | 'flags' ListFlagDef { DefFlag $2 } - | 'printname' ListPrintDef { DefPrintOld $2 } - | 'lintype' ListDef { DefLintype $2 } - | 'pattern' ListDef { DefPattern $2 } - | 'package' PIdent '=' '{' ListTopDef '}' ';' { DefPackage $2 (reverse $5) } - | 'var' ListDef { DefVars $2 } - | 'tokenizer' PIdent ';' { DefTokenizer $2 } - - -CatDef :: { CatDef } -CatDef : PIdent ListDDecl { SimpleCatDef $1 (reverse $2) } - | '[' PIdent ListDDecl ']' { ListCatDef $2 (reverse $3) } - | '[' PIdent ListDDecl ']' '{' Integer '}' { ListSizeCatDef $2 (reverse $3) $6 } - - -FunDef :: { FunDef } -FunDef : ListPIdent ':' Exp { FunDef $1 $3 } - - -DataDef :: { DataDef } -DataDef : PIdent '=' ListDataConstr { DataDef $1 $3 } - - -DataConstr :: { DataConstr } -DataConstr : PIdent { DataId $1 } - | PIdent '.' PIdent { DataQId $1 $3 } - - -ListDataConstr :: { [DataConstr] } -ListDataConstr : {- empty -} { [] } - | DataConstr { (:[]) $1 } - | DataConstr '|' ListDataConstr { (:) $1 $3 } - - -ParDef :: { ParDef } -ParDef : PIdent '=' ListParConstr { ParDefDir $1 $3 } - | PIdent '=' '(' 'in' PIdent ')' { ParDefIndir $1 $5 } - | PIdent { ParDefAbs $1 } - - -ParConstr :: { ParConstr } -ParConstr : PIdent ListDDecl { ParConstr $1 (reverse $2) } - - -PrintDef :: { PrintDef } -PrintDef : ListName '=' Exp { PrintDef $1 $3 } - - -FlagDef :: { FlagDef } -FlagDef : PIdent '=' PIdent { FlagDef $1 $3 } - - -ListDef :: { [Def] } -ListDef : Def ';' { (:[]) $1 } - | Def ';' ListDef { (:) $1 $3 } - - -ListCatDef :: { [CatDef] } -ListCatDef : CatDef ';' { (:[]) $1 } - | CatDef ';' ListCatDef { (:) $1 $3 } - - -ListFunDef :: { [FunDef] } -ListFunDef : FunDef ';' { (:[]) $1 } - | FunDef ';' ListFunDef { (:) $1 $3 } - - -ListDataDef :: { [DataDef] } -ListDataDef : DataDef ';' { (:[]) $1 } - | DataDef ';' ListDataDef { (:) $1 $3 } - - -ListParDef :: { [ParDef] } -ListParDef : ParDef ';' { (:[]) $1 } - | ParDef ';' ListParDef { (:) $1 $3 } - - -ListPrintDef :: { [PrintDef] } -ListPrintDef : PrintDef ';' { (:[]) $1 } - | PrintDef ';' ListPrintDef { (:) $1 $3 } - - -ListFlagDef :: { [FlagDef] } -ListFlagDef : FlagDef ';' { (:[]) $1 } - | FlagDef ';' ListFlagDef { (:) $1 $3 } - - -ListParConstr :: { [ParConstr] } -ListParConstr : {- empty -} { [] } - | ParConstr { (:[]) $1 } - | ParConstr '|' ListParConstr { (:) $1 $3 } - - -ListPIdent :: { [PIdent] } -ListPIdent : PIdent { (:[]) $1 } - | PIdent ',' ListPIdent { (:) $1 $3 } - - -Name :: { Name } -Name : PIdent { IdentName $1 } - | '[' PIdent ']' { ListName $2 } - - -ListName :: { [Name] } -ListName : Name { (:[]) $1 } - | Name ',' ListName { (:) $1 $3 } - - -LocDef :: { LocDef } -LocDef : ListPIdent ':' Exp { LDDecl $1 $3 } - | ListPIdent '=' Exp { LDDef $1 $3 } - | ListPIdent ':' Exp '=' Exp { LDFull $1 $3 $5 } - - -ListLocDef :: { [LocDef] } -ListLocDef : {- empty -} { [] } - | LocDef { (:[]) $1 } - | LocDef ';' ListLocDef { (:) $1 $3 } - - -Exp6 :: { Exp } -Exp6 : PIdent { EIdent $1 } - | '{' PIdent '}' { EConstr $2 } - | '%' PIdent '%' { ECons $2 } - | Sort { ESort $1 } - | String { EString $1 } - | Integer { EInt $1 } - | Double { EFloat $1 } - | '?' { EMeta } - | '[' ']' { EEmpty } - | 'data' { EData } - | '[' PIdent Exps ']' { EList $2 $3 } - | '[' String ']' { EStrings $2 } - | '{' ListLocDef '}' { ERecord $2 } - | '<' ListTupleComp '>' { ETuple $2 } - | '(' 'in' PIdent ')' { EIndir $3 } - | '<' Exp ':' Exp '>' { ETyped $2 $4 } - | '(' Exp ')' { $2 } - | LString { ELString $1 } - - -Exp5 :: { Exp } -Exp5 : Exp5 '.' Label { EProj $1 $3 } - | '{' PIdent '.' PIdent '}' { EQConstr $2 $4 } - | '%' PIdent '.' PIdent { EQCons $2 $4 } - | Exp6 { $1 } - - -Exp4 :: { Exp } -Exp4 : Exp4 Exp5 { EApp $1 $2 } - | 'table' '{' ListCase '}' { ETable $3 } - | 'table' Exp6 '{' ListCase '}' { ETTable $2 $4 } - | 'table' Exp6 '[' ListExp ']' { EVTable $2 $4 } - | 'case' Exp 'of' '{' ListCase '}' { ECase $2 $5 } - | 'variants' '{' ListExp '}' { EVariants $3 } - | 'pre' '{' Exp ';' ListAltern '}' { EPre $3 $5 } - | 'strs' '{' ListExp '}' { EStrs $3 } - | PIdent '@' Exp6 { EConAt $1 $3 } - | '#' Patt2 { EPatt $2 } - | 'pattern' Exp5 { EPattType $2 } - | Exp5 { $1 } - | 'Lin' PIdent { ELin $2 } - - -Exp3 :: { Exp } -Exp3 : Exp3 '!' Exp4 { ESelect $1 $3 } - | Exp3 '*' Exp4 { ETupTyp $1 $3 } - | Exp3 '**' Exp4 { EExtend $1 $3 } - | Exp4 { $1 } - - -Exp1 :: { Exp } -Exp1 : Exp2 '+' Exp1 { EGlue $1 $3 } - | Exp2 { $1 } - - -Exp :: { Exp } -Exp : Exp1 '++' Exp { EConcat $1 $3 } - | '\\' ListBind '->' Exp { EAbstr $2 $4 } - | '\\' '\\' ListBind '=>' Exp { ECTable $3 $5 } - | Decl '->' Exp { EProd $1 $3 } - | Exp3 '=>' Exp { ETType $1 $3 } - | 'let' '{' ListLocDef '}' 'in' Exp { ELet $3 $6 } - | 'let' ListLocDef 'in' Exp { ELetb $2 $4 } - | Exp3 'where' '{' ListLocDef '}' { EWhere $1 $4 } - | 'fn' '{' ListEquation '}' { EEqs $3 } - | 'in' Exp5 String { EExample $2 $3 } - | Exp1 { $1 } - - -Exp2 :: { Exp } -Exp2 : Exp3 { $1 } - - -ListExp :: { [Exp] } -ListExp : {- empty -} { [] } - | Exp { (:[]) $1 } - | Exp ';' ListExp { (:) $1 $3 } - - -Exps :: { Exps } -Exps : {- empty -} { NilExp } - | Exp6 Exps { ConsExp $1 $2 } - - -Patt2 :: { Patt } -Patt2 : '?' { PChar } - | '[' String ']' { PChars $2 } - | '#' PIdent { PMacro $2 } - | '#' PIdent '.' PIdent { PM $2 $4 } - | '_' { PW } - | PIdent { PV $1 } - | '{' PIdent '}' { PCon $2 } - | PIdent '.' PIdent { PQ $1 $3 } - | Integer { PInt $1 } - | Double { PFloat $1 } - | String { PStr $1 } - | '{' ListPattAss '}' { PR $2 } - | '<' ListPattTupleComp '>' { PTup $2 } - | '(' Patt ')' { $2 } - - -Patt1 :: { Patt } -Patt1 : PIdent ListPatt { PC $1 $2 } - | PIdent '.' PIdent ListPatt { PQC $1 $3 $4 } - | Patt2 '*' { PRep $1 } - | PIdent '@' Patt2 { PAs $1 $3 } - | '-' Patt2 { PNeg $2 } - | Patt2 { $1 } - - -Patt :: { Patt } -Patt : Patt '|' Patt1 { PDisj $1 $3 } - | Patt '+' Patt1 { PSeq $1 $3 } - | Patt1 { $1 } - - -PattAss :: { PattAss } -PattAss : ListPIdent '=' Patt { PA $1 $3 } - - -Label :: { Label } -Label : PIdent { LIdent $1 } - | '$' Integer { LVar $2 } - - -Sort :: { Sort } -Sort : 'Type' { Sort_Type } - | 'PType' { Sort_PType } - | 'Tok' { Sort_Tok } - | 'Str' { Sort_Str } - | 'Strs' { Sort_Strs } - - -ListPattAss :: { [PattAss] } -ListPattAss : {- empty -} { [] } - | PattAss { (:[]) $1 } - | PattAss ';' ListPattAss { (:) $1 $3 } - - -ListPatt :: { [Patt] } -ListPatt : Patt2 { (:[]) $1 } - | Patt2 ListPatt { (:) $1 $2 } - - -Bind :: { Bind } -Bind : PIdent { BIdent $1 } - | '_' { BWild } - - -ListBind :: { [Bind] } -ListBind : {- empty -} { [] } - | Bind { (:[]) $1 } - | Bind ',' ListBind { (:) $1 $3 } - - -Decl :: { Decl } -Decl : '(' ListBind ':' Exp ')' { DDec $2 $4 } - | Exp4 { DExp $1 } - - -TupleComp :: { TupleComp } -TupleComp : Exp { TComp $1 } - - -PattTupleComp :: { PattTupleComp } -PattTupleComp : Patt { PTComp $1 } - - -ListTupleComp :: { [TupleComp] } -ListTupleComp : {- empty -} { [] } - | TupleComp { (:[]) $1 } - | TupleComp ',' ListTupleComp { (:) $1 $3 } - - -ListPattTupleComp :: { [PattTupleComp] } -ListPattTupleComp : {- empty -} { [] } - | PattTupleComp { (:[]) $1 } - | PattTupleComp ',' ListPattTupleComp { (:) $1 $3 } - - -Case :: { Case } -Case : Patt '=>' Exp { Case $1 $3 } - - -ListCase :: { [Case] } -ListCase : Case { (:[]) $1 } - | Case ';' ListCase { (:) $1 $3 } - - -Equation :: { Equation } -Equation : ListPatt '->' Exp { Equ $1 $3 } - - -ListEquation :: { [Equation] } -ListEquation : {- empty -} { [] } - | Equation { (:[]) $1 } - | Equation ';' ListEquation { (:) $1 $3 } - - -Altern :: { Altern } -Altern : Exp '/' Exp { Alt $1 $3 } - - -ListAltern :: { [Altern] } -ListAltern : {- empty -} { [] } - | Altern { (:[]) $1 } - | Altern ';' ListAltern { (:) $1 $3 } - - -DDecl :: { DDecl } -DDecl : '(' ListBind ':' Exp ')' { DDDec $2 $4 } - | Exp6 { DDExp $1 } - - -ListDDecl :: { [DDecl] } -ListDDecl : {- empty -} { [] } - | ListDDecl DDecl { flip (:) $1 $2 } - - -OldGrammar :: { OldGrammar } -OldGrammar : Include ListTopDef { OldGr $1 (reverse $2) } - - -Include :: { Include } -Include : {- empty -} { NoIncl } - | 'include' ListFileName { Incl $2 } - - -FileName :: { FileName } -FileName : String { FString $1 } - | PIdent { FIdent $1 } - | '/' FileName { FSlash $2 } - | '.' FileName { FDot $2 } - | '-' FileName { FMinus $2 } - | PIdent FileName { FAddId $1 $2 } - - -ListFileName :: { [FileName] } -ListFileName : FileName ';' { (:[]) $1 } - | FileName ';' ListFileName { (:) $1 $3 } - - - -{ - -returnM :: a -> Err a -returnM = return - -thenM :: Err a -> (a -> Err b) -> Err b -thenM = (>>=) - -happyError :: [Token] -> Err a -happyError ts = - Bad $ "syntax error at " ++ tokenPos ts ++ - case ts of - [] -> [] - [Err _] -> " due to lexer error" - _ -> " before " ++ unwords (map prToken (take 4 ts)) - -myLexer = tokens -} - diff --git a/src/GF/Source/PrintGF.hs b/src/GF/Source/PrintGF.hs deleted file mode 100644 index 0a260f5bf..000000000 --- a/src/GF/Source/PrintGF.hs +++ /dev/null @@ -1,532 +0,0 @@ -{-# OPTIONS -fno-warn-incomplete-patterns #-} -module GF.Source.PrintGF where - --- pretty-printer generated by the BNF converter - -import GF.Source.AbsGF -import Char - --- the top-level printing method -printTree :: Print a => a -> String -printTree = render . prt 0 - -type Doc = [ShowS] -> [ShowS] - -doc :: ShowS -> Doc -doc = (:) - -render :: Doc -> String -render d = rend 0 (map ($ "") $ d []) "" where - rend i ss = case ss of - "[" :ts -> showChar '[' . rend i ts - "(" :ts -> showChar '(' . rend i ts - "{" :ts -> showChar '{' . new (i+1) . rend (i+1) ts - "}" : ";":ts -> new (i-1) . space "}" . showChar ';' . new (i-1) . rend (i-1) ts - "}" :ts -> new (i-1) . showChar '}' . new (i-1) . rend (i-1) ts - ";" :ts -> showChar ';' . new i . rend i ts - t : "," :ts -> showString t . space "," . rend i ts - t : ")" :ts -> showString t . showChar ')' . rend i ts - t : "]" :ts -> showString t . showChar ']' . rend i ts - t :ts -> space t . rend i ts - _ -> id - new i = showChar '\n' . replicateS (2*i) (showChar ' ') . dropWhile isSpace - space t = showString t . (\s -> if null s then "" else (' ':s)) - -parenth :: Doc -> Doc -parenth ss = doc (showChar '(') . ss . doc (showChar ')') - -concatS :: [ShowS] -> ShowS -concatS = foldr (.) id - -concatD :: [Doc] -> Doc -concatD = foldr (.) id - -replicateS :: Int -> ShowS -> ShowS -replicateS n f = concatS (replicate n f) - --- the printer class does the job -class Print a where - prt :: Int -> a -> Doc - prtList :: [a] -> Doc - prtList = concatD . map (prt 0) - -instance Print a => Print [a] where - prt _ = prtList - -instance Print Char where - prt _ s = doc (showChar '\'' . mkEsc '\'' s . showChar '\'') - prtList s = doc (showChar '"' . concatS (map (mkEsc '"') s) . showChar '"') - -mkEsc :: Char -> Char -> ShowS -mkEsc q s = case s of - _ | s == q -> showChar '\\' . showChar s - '\\'-> showString "\\\\" - '\n' -> showString "\\n" - '\t' -> showString "\\t" - _ -> showChar s - -prPrec :: Int -> Int -> Doc -> Doc -prPrec i j = if j<i then parenth else id - - -instance Print Integer where - prt _ x = doc (shows x) - - -instance Print Double where - prt _ x = doc (shows x) - - - -instance Print LString where - prt _ (LString i) = doc (showString i) - - -instance Print PIdent where - prt _ (PIdent (_,i)) = doc (showString i) - prtList es = case es of - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ",") , prt 0 xs]) - - - -instance Print Grammar where - prt i e = case e of - Gr moddefs -> prPrec i 0 (concatD [prt 0 moddefs]) - - -instance Print ModDef where - prt i e = case e of - MMain pident0 pident concspecs -> prPrec i 0 (concatD [doc (showString "grammar") , prt 0 pident0 , doc (showString "=") , doc (showString "{") , doc (showString "abstract") , doc (showString "=") , prt 0 pident , doc (showString ";") , prt 0 concspecs , doc (showString "}")]) - MModule complmod modtype modbody -> prPrec i 0 (concatD [prt 0 complmod , prt 0 modtype , doc (showString "=") , prt 0 modbody]) - - prtList es = case es of - [] -> (concatD []) - x:xs -> (concatD [prt 0 x , prt 0 xs]) - -instance Print ConcSpec where - prt i e = case e of - ConcSpec pident concexp -> prPrec i 0 (concatD [prt 0 pident , doc (showString "=") , prt 0 concexp]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print ConcExp where - prt i e = case e of - ConcExp pident transfers -> prPrec i 0 (concatD [prt 0 pident , prt 0 transfers]) - - -instance Print Transfer where - prt i e = case e of - TransferIn open -> prPrec i 0 (concatD [doc (showString "(") , doc (showString "transfer") , doc (showString "in") , prt 0 open , doc (showString ")")]) - TransferOut open -> prPrec i 0 (concatD [doc (showString "(") , doc (showString "transfer") , doc (showString "out") , prt 0 open , doc (showString ")")]) - - prtList es = case es of - [] -> (concatD []) - x:xs -> (concatD [prt 0 x , prt 0 xs]) - -instance Print ModType where - prt i e = case e of - MTAbstract pident -> prPrec i 0 (concatD [doc (showString "abstract") , prt 0 pident]) - MTResource pident -> prPrec i 0 (concatD [doc (showString "resource") , prt 0 pident]) - MTInterface pident -> prPrec i 0 (concatD [doc (showString "interface") , prt 0 pident]) - MTConcrete pident0 pident -> prPrec i 0 (concatD [doc (showString "concrete") , prt 0 pident0 , doc (showString "of") , prt 0 pident]) - MTInstance pident0 pident -> prPrec i 0 (concatD [doc (showString "instance") , prt 0 pident0 , doc (showString "of") , prt 0 pident]) - MTTransfer pident open0 open -> prPrec i 0 (concatD [doc (showString "transfer") , prt 0 pident , doc (showString ":") , prt 0 open0 , doc (showString "->") , prt 0 open]) - - -instance Print ModBody where - prt i e = case e of - MBody extend opens topdefs -> prPrec i 0 (concatD [prt 0 extend , prt 0 opens , doc (showString "{") , prt 0 topdefs , doc (showString "}")]) - MNoBody includeds -> prPrec i 0 (concatD [prt 0 includeds]) - MWith included opens -> prPrec i 0 (concatD [prt 0 included , doc (showString "with") , prt 0 opens]) - MWithBody included opens0 opens topdefs -> prPrec i 0 (concatD [prt 0 included , doc (showString "with") , prt 0 opens0 , doc (showString "**") , prt 0 opens , doc (showString "{") , prt 0 topdefs , doc (showString "}")]) - MWithE includeds included opens -> prPrec i 0 (concatD [prt 0 includeds , doc (showString "**") , prt 0 included , doc (showString "with") , prt 0 opens]) - MWithEBody includeds included opens0 opens topdefs -> prPrec i 0 (concatD [prt 0 includeds , doc (showString "**") , prt 0 included , doc (showString "with") , prt 0 opens0 , doc (showString "**") , prt 0 opens , doc (showString "{") , prt 0 topdefs , doc (showString "}")]) - MReuse pident -> prPrec i 0 (concatD [doc (showString "reuse") , prt 0 pident]) - MUnion includeds -> prPrec i 0 (concatD [doc (showString "union") , prt 0 includeds]) - - -instance Print Extend where - prt i e = case e of - Ext includeds -> prPrec i 0 (concatD [prt 0 includeds , doc (showString "**")]) - NoExt -> prPrec i 0 (concatD []) - - -instance Print Opens where - prt i e = case e of - NoOpens -> prPrec i 0 (concatD []) - OpenIn opens -> prPrec i 0 (concatD [doc (showString "open") , prt 0 opens , doc (showString "in")]) - - -instance Print Open where - prt i e = case e of - OName pident -> prPrec i 0 (concatD [prt 0 pident]) - OQualQO qualopen pident -> prPrec i 0 (concatD [doc (showString "(") , prt 0 qualopen , prt 0 pident , doc (showString ")")]) - OQual qualopen pident0 pident -> prPrec i 0 (concatD [doc (showString "(") , prt 0 qualopen , prt 0 pident0 , doc (showString "=") , prt 0 pident , doc (showString ")")]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ",") , prt 0 xs]) - -instance Print ComplMod where - prt i e = case e of - CMCompl -> prPrec i 0 (concatD []) - CMIncompl -> prPrec i 0 (concatD [doc (showString "incomplete")]) - - -instance Print QualOpen where - prt i e = case e of - QOCompl -> prPrec i 0 (concatD []) - QOIncompl -> prPrec i 0 (concatD [doc (showString "incomplete")]) - QOInterface -> prPrec i 0 (concatD [doc (showString "interface")]) - - -instance Print Included where - prt i e = case e of - IAll pident -> prPrec i 0 (concatD [prt 0 pident]) - ISome pident pidents -> prPrec i 0 (concatD [prt 0 pident , doc (showString "[") , prt 0 pidents , doc (showString "]")]) - IMinus pident pidents -> prPrec i 0 (concatD [prt 0 pident , doc (showString "-") , doc (showString "[") , prt 0 pidents , doc (showString "]")]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ",") , prt 0 xs]) - -instance Print Def where - prt i e = case e of - DDecl names exp -> prPrec i 0 (concatD [prt 0 names , doc (showString ":") , prt 0 exp]) - DDef names exp -> prPrec i 0 (concatD [prt 0 names , doc (showString "=") , prt 0 exp]) - DPatt name patts exp -> prPrec i 0 (concatD [prt 0 name , prt 0 patts , doc (showString "=") , prt 0 exp]) - DFull names exp0 exp -> prPrec i 0 (concatD [prt 0 names , doc (showString ":") , prt 0 exp0 , doc (showString "=") , prt 0 exp]) - - prtList es = case es of - [x] -> (concatD [prt 0 x , doc (showString ";")]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print TopDef where - prt i e = case e of - DefCat catdefs -> prPrec i 0 (concatD [doc (showString "cat") , prt 0 catdefs]) - DefFun fundefs -> prPrec i 0 (concatD [doc (showString "fun") , prt 0 fundefs]) - DefFunData fundefs -> prPrec i 0 (concatD [doc (showString "data") , prt 0 fundefs]) - DefDef defs -> prPrec i 0 (concatD [doc (showString "def") , prt 0 defs]) - DefData datadefs -> prPrec i 0 (concatD [doc (showString "data") , prt 0 datadefs]) - DefTrans defs -> prPrec i 0 (concatD [doc (showString "transfer") , prt 0 defs]) - DefPar pardefs -> prPrec i 0 (concatD [doc (showString "param") , prt 0 pardefs]) - DefOper defs -> prPrec i 0 (concatD [doc (showString "oper") , prt 0 defs]) - DefLincat printdefs -> prPrec i 0 (concatD [doc (showString "lincat") , prt 0 printdefs]) - DefLindef defs -> prPrec i 0 (concatD [doc (showString "lindef") , prt 0 defs]) - DefLin defs -> prPrec i 0 (concatD [doc (showString "lin") , prt 0 defs]) - DefPrintCat printdefs -> prPrec i 0 (concatD [doc (showString "printname") , doc (showString "cat") , prt 0 printdefs]) - DefPrintFun printdefs -> prPrec i 0 (concatD [doc (showString "printname") , doc (showString "fun") , prt 0 printdefs]) - DefFlag flagdefs -> prPrec i 0 (concatD [doc (showString "flags") , prt 0 flagdefs]) - DefPrintOld printdefs -> prPrec i 0 (concatD [doc (showString "printname") , prt 0 printdefs]) - DefLintype defs -> prPrec i 0 (concatD [doc (showString "lintype") , prt 0 defs]) - DefPattern defs -> prPrec i 0 (concatD [doc (showString "pattern") , prt 0 defs]) - DefPackage pident topdefs -> prPrec i 0 (concatD [doc (showString "package") , prt 0 pident , doc (showString "=") , doc (showString "{") , prt 0 topdefs , doc (showString "}") , doc (showString ";")]) - DefVars defs -> prPrec i 0 (concatD [doc (showString "var") , prt 0 defs]) - DefTokenizer pident -> prPrec i 0 (concatD [doc (showString "tokenizer") , prt 0 pident , doc (showString ";")]) - - prtList es = case es of - [] -> (concatD []) - x:xs -> (concatD [prt 0 x , prt 0 xs]) - -instance Print CatDef where - prt i e = case e of - SimpleCatDef pident ddecls -> prPrec i 0 (concatD [prt 0 pident , prt 0 ddecls]) - ListCatDef pident ddecls -> prPrec i 0 (concatD [doc (showString "[") , prt 0 pident , prt 0 ddecls , doc (showString "]")]) - ListSizeCatDef pident ddecls n -> prPrec i 0 (concatD [doc (showString "[") , prt 0 pident , prt 0 ddecls , doc (showString "]") , doc (showString "{") , prt 0 n , doc (showString "}")]) - - prtList es = case es of - [x] -> (concatD [prt 0 x , doc (showString ";")]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print FunDef where - prt i e = case e of - FunDef pidents exp -> prPrec i 0 (concatD [prt 0 pidents , doc (showString ":") , prt 0 exp]) - - prtList es = case es of - [x] -> (concatD [prt 0 x , doc (showString ";")]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print DataDef where - prt i e = case e of - DataDef pident dataconstrs -> prPrec i 0 (concatD [prt 0 pident , doc (showString "=") , prt 0 dataconstrs]) - - prtList es = case es of - [x] -> (concatD [prt 0 x , doc (showString ";")]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print DataConstr where - prt i e = case e of - DataId pident -> prPrec i 0 (concatD [prt 0 pident]) - DataQId pident0 pident -> prPrec i 0 (concatD [prt 0 pident0 , doc (showString ".") , prt 0 pident]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString "|") , prt 0 xs]) - -instance Print ParDef where - prt i e = case e of - ParDefDir pident parconstrs -> prPrec i 0 (concatD [prt 0 pident , doc (showString "=") , prt 0 parconstrs]) - ParDefIndir pident0 pident -> prPrec i 0 (concatD [prt 0 pident0 , doc (showString "=") , doc (showString "(") , doc (showString "in") , prt 0 pident , doc (showString ")")]) - ParDefAbs pident -> prPrec i 0 (concatD [prt 0 pident]) - - prtList es = case es of - [x] -> (concatD [prt 0 x , doc (showString ";")]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print ParConstr where - prt i e = case e of - ParConstr pident ddecls -> prPrec i 0 (concatD [prt 0 pident , prt 0 ddecls]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString "|") , prt 0 xs]) - -instance Print PrintDef where - prt i e = case e of - PrintDef names exp -> prPrec i 0 (concatD [prt 0 names , doc (showString "=") , prt 0 exp]) - - prtList es = case es of - [x] -> (concatD [prt 0 x , doc (showString ";")]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print FlagDef where - prt i e = case e of - FlagDef pident0 pident -> prPrec i 0 (concatD [prt 0 pident0 , doc (showString "=") , prt 0 pident]) - - prtList es = case es of - [x] -> (concatD [prt 0 x , doc (showString ";")]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print Name where - prt i e = case e of - IdentName pident -> prPrec i 0 (concatD [prt 0 pident]) - ListName pident -> prPrec i 0 (concatD [doc (showString "[") , prt 0 pident , doc (showString "]")]) - - prtList es = case es of - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ",") , prt 0 xs]) - -instance Print LocDef where - prt i e = case e of - LDDecl pidents exp -> prPrec i 0 (concatD [prt 0 pidents , doc (showString ":") , prt 0 exp]) - LDDef pidents exp -> prPrec i 0 (concatD [prt 0 pidents , doc (showString "=") , prt 0 exp]) - LDFull pidents exp0 exp -> prPrec i 0 (concatD [prt 0 pidents , doc (showString ":") , prt 0 exp0 , doc (showString "=") , prt 0 exp]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print Exp where - prt i e = case e of - EIdent pident -> prPrec i 6 (concatD [prt 0 pident]) - EConstr pident -> prPrec i 6 (concatD [doc (showString "{") , prt 0 pident , doc (showString "}")]) - ECons pident -> prPrec i 6 (concatD [doc (showString "%") , prt 0 pident , doc (showString "%")]) - ESort sort -> prPrec i 6 (concatD [prt 0 sort]) - EString str -> prPrec i 6 (concatD [prt 0 str]) - EInt n -> prPrec i 6 (concatD [prt 0 n]) - EFloat d -> prPrec i 6 (concatD [prt 0 d]) - EMeta -> prPrec i 6 (concatD [doc (showString "?")]) - EEmpty -> prPrec i 6 (concatD [doc (showString "[") , doc (showString "]")]) - EData -> prPrec i 6 (concatD [doc (showString "data")]) - EList pident exps -> prPrec i 6 (concatD [doc (showString "[") , prt 0 pident , prt 0 exps , doc (showString "]")]) - EStrings str -> prPrec i 6 (concatD [doc (showString "[") , prt 0 str , doc (showString "]")]) - ERecord locdefs -> prPrec i 6 (concatD [doc (showString "{") , prt 0 locdefs , doc (showString "}")]) - ETuple tuplecomps -> prPrec i 6 (concatD [doc (showString "<") , prt 0 tuplecomps , doc (showString ">")]) - EIndir pident -> prPrec i 6 (concatD [doc (showString "(") , doc (showString "in") , prt 0 pident , doc (showString ")")]) - ETyped exp0 exp -> prPrec i 6 (concatD [doc (showString "<") , prt 0 exp0 , doc (showString ":") , prt 0 exp , doc (showString ">")]) - EProj exp label -> prPrec i 5 (concatD [prt 5 exp , doc (showString ".") , prt 0 label]) - EQConstr pident0 pident -> prPrec i 5 (concatD [doc (showString "{") , prt 0 pident0 , doc (showString ".") , prt 0 pident , doc (showString "}")]) - EQCons pident0 pident -> prPrec i 5 (concatD [doc (showString "%") , prt 0 pident0 , doc (showString ".") , prt 0 pident]) - EApp exp0 exp -> prPrec i 4 (concatD [prt 4 exp0 , prt 5 exp]) - ETable cases -> prPrec i 4 (concatD [doc (showString "table") , doc (showString "{") , prt 0 cases , doc (showString "}")]) - ETTable exp cases -> prPrec i 4 (concatD [doc (showString "table") , prt 6 exp , doc (showString "{") , prt 0 cases , doc (showString "}")]) - EVTable exp exps -> prPrec i 4 (concatD [doc (showString "table") , prt 6 exp , doc (showString "[") , prt 0 exps , doc (showString "]")]) - ECase exp cases -> prPrec i 4 (concatD [doc (showString "case") , prt 0 exp , doc (showString "of") , doc (showString "{") , prt 0 cases , doc (showString "}")]) - EVariants exps -> prPrec i 4 (concatD [doc (showString "variants") , doc (showString "{") , prt 0 exps , doc (showString "}")]) - EPre exp alterns -> prPrec i 4 (concatD [doc (showString "pre") , doc (showString "{") , prt 0 exp , doc (showString ";") , prt 0 alterns , doc (showString "}")]) - EStrs exps -> prPrec i 4 (concatD [doc (showString "strs") , doc (showString "{") , prt 0 exps , doc (showString "}")]) - EConAt pident exp -> prPrec i 4 (concatD [prt 0 pident , doc (showString "@") , prt 6 exp]) - EPatt patt -> prPrec i 4 (concatD [doc (showString "#") , prt 2 patt]) - EPattType exp -> prPrec i 4 (concatD [doc (showString "pattern") , prt 5 exp]) - ESelect exp0 exp -> prPrec i 3 (concatD [prt 3 exp0 , doc (showString "!") , prt 4 exp]) - ETupTyp exp0 exp -> prPrec i 3 (concatD [prt 3 exp0 , doc (showString "*") , prt 4 exp]) - EExtend exp0 exp -> prPrec i 3 (concatD [prt 3 exp0 , doc (showString "**") , prt 4 exp]) - EGlue exp0 exp -> prPrec i 1 (concatD [prt 2 exp0 , doc (showString "+") , prt 1 exp]) - EConcat exp0 exp -> prPrec i 0 (concatD [prt 1 exp0 , doc (showString "++") , prt 0 exp]) - EAbstr binds exp -> prPrec i 0 (concatD [doc (showString "\\") , prt 0 binds , doc (showString "->") , prt 0 exp]) - ECTable binds exp -> prPrec i 0 (concatD [doc (showString "\\") , doc (showString "\\") , prt 0 binds , doc (showString "=>") , prt 0 exp]) - EProd decl exp -> prPrec i 0 (concatD [prt 0 decl , doc (showString "->") , prt 0 exp]) - ETType exp0 exp -> prPrec i 0 (concatD [prt 3 exp0 , doc (showString "=>") , prt 0 exp]) - ELet locdefs exp -> prPrec i 0 (concatD [doc (showString "let") , doc (showString "{") , prt 0 locdefs , doc (showString "}") , doc (showString "in") , prt 0 exp]) - ELetb locdefs exp -> prPrec i 0 (concatD [doc (showString "let") , prt 0 locdefs , doc (showString "in") , prt 0 exp]) - EWhere exp locdefs -> prPrec i 0 (concatD [prt 3 exp , doc (showString "where") , doc (showString "{") , prt 0 locdefs , doc (showString "}")]) - EEqs equations -> prPrec i 0 (concatD [doc (showString "fn") , doc (showString "{") , prt 0 equations , doc (showString "}")]) - EExample exp str -> prPrec i 0 (concatD [doc (showString "in") , prt 5 exp , prt 0 str]) - ELString lstring -> prPrec i 6 (concatD [prt 0 lstring]) - ELin pident -> prPrec i 4 (concatD [doc (showString "Lin") , prt 0 pident]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print Exps where - prt i e = case e of - NilExp -> prPrec i 0 (concatD []) - ConsExp exp exps -> prPrec i 0 (concatD [prt 6 exp , prt 0 exps]) - - -instance Print Patt where - prt i e = case e of - PChar -> prPrec i 2 (concatD [doc (showString "?")]) - PChars str -> prPrec i 2 (concatD [doc (showString "[") , prt 0 str , doc (showString "]")]) - PMacro pident -> prPrec i 2 (concatD [doc (showString "#") , prt 0 pident]) - PM pident0 pident -> prPrec i 2 (concatD [doc (showString "#") , prt 0 pident0 , doc (showString ".") , prt 0 pident]) - PW -> prPrec i 2 (concatD [doc (showString "_")]) - PV pident -> prPrec i 2 (concatD [prt 0 pident]) - PCon pident -> prPrec i 2 (concatD [doc (showString "{") , prt 0 pident , doc (showString "}")]) - PQ pident0 pident -> prPrec i 2 (concatD [prt 0 pident0 , doc (showString ".") , prt 0 pident]) - PInt n -> prPrec i 2 (concatD [prt 0 n]) - PFloat d -> prPrec i 2 (concatD [prt 0 d]) - PStr str -> prPrec i 2 (concatD [prt 0 str]) - PR pattasss -> prPrec i 2 (concatD [doc (showString "{") , prt 0 pattasss , doc (showString "}")]) - PTup patttuplecomps -> prPrec i 2 (concatD [doc (showString "<") , prt 0 patttuplecomps , doc (showString ">")]) - PC pident patts -> prPrec i 1 (concatD [prt 0 pident , prt 0 patts]) - PQC pident0 pident patts -> prPrec i 1 (concatD [prt 0 pident0 , doc (showString ".") , prt 0 pident , prt 0 patts]) - PDisj patt0 patt -> prPrec i 0 (concatD [prt 0 patt0 , doc (showString "|") , prt 1 patt]) - PSeq patt0 patt -> prPrec i 0 (concatD [prt 0 patt0 , doc (showString "+") , prt 1 patt]) - PRep patt -> prPrec i 1 (concatD [prt 2 patt , doc (showString "*")]) - PAs pident patt -> prPrec i 1 (concatD [prt 0 pident , doc (showString "@") , prt 2 patt]) - PNeg patt -> prPrec i 1 (concatD [doc (showString "-") , prt 2 patt]) - - prtList es = case es of - [x] -> (concatD [prt 2 x]) - x:xs -> (concatD [prt 2 x , prt 0 xs]) - -instance Print PattAss where - prt i e = case e of - PA pidents patt -> prPrec i 0 (concatD [prt 0 pidents , doc (showString "=") , prt 0 patt]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print Label where - prt i e = case e of - LIdent pident -> prPrec i 0 (concatD [prt 0 pident]) - LVar n -> prPrec i 0 (concatD [doc (showString "$") , prt 0 n]) - - -instance Print Sort where - prt i e = case e of - Sort_Type -> prPrec i 0 (concatD [doc (showString "Type")]) - Sort_PType -> prPrec i 0 (concatD [doc (showString "PType")]) - Sort_Tok -> prPrec i 0 (concatD [doc (showString "Tok")]) - Sort_Str -> prPrec i 0 (concatD [doc (showString "Str")]) - Sort_Strs -> prPrec i 0 (concatD [doc (showString "Strs")]) - - -instance Print Bind where - prt i e = case e of - BIdent pident -> prPrec i 0 (concatD [prt 0 pident]) - BWild -> prPrec i 0 (concatD [doc (showString "_")]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ",") , prt 0 xs]) - -instance Print Decl where - prt i e = case e of - DDec binds exp -> prPrec i 0 (concatD [doc (showString "(") , prt 0 binds , doc (showString ":") , prt 0 exp , doc (showString ")")]) - DExp exp -> prPrec i 0 (concatD [prt 4 exp]) - - -instance Print TupleComp where - prt i e = case e of - TComp exp -> prPrec i 0 (concatD [prt 0 exp]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ",") , prt 0 xs]) - -instance Print PattTupleComp where - prt i e = case e of - PTComp patt -> prPrec i 0 (concatD [prt 0 patt]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ",") , prt 0 xs]) - -instance Print Case where - prt i e = case e of - Case patt exp -> prPrec i 0 (concatD [prt 0 patt , doc (showString "=>") , prt 0 exp]) - - prtList es = case es of - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print Equation where - prt i e = case e of - Equ patts exp -> prPrec i 0 (concatD [prt 0 patts , doc (showString "->") , prt 0 exp]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print Altern where - prt i e = case e of - Alt exp0 exp -> prPrec i 0 (concatD [prt 0 exp0 , doc (showString "/") , prt 0 exp]) - - prtList es = case es of - [] -> (concatD []) - [x] -> (concatD [prt 0 x]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - -instance Print DDecl where - prt i e = case e of - DDDec binds exp -> prPrec i 0 (concatD [doc (showString "(") , prt 0 binds , doc (showString ":") , prt 0 exp , doc (showString ")")]) - DDExp exp -> prPrec i 0 (concatD [prt 6 exp]) - - prtList es = case es of - [] -> (concatD []) - x:xs -> (concatD [prt 0 x , prt 0 xs]) - -instance Print OldGrammar where - prt i e = case e of - OldGr include topdefs -> prPrec i 0 (concatD [prt 0 include , prt 0 topdefs]) - - -instance Print Include where - prt i e = case e of - NoIncl -> prPrec i 0 (concatD []) - Incl filenames -> prPrec i 0 (concatD [doc (showString "include") , prt 0 filenames]) - - -instance Print FileName where - prt i e = case e of - FString str -> prPrec i 0 (concatD [prt 0 str]) - FIdent pident -> prPrec i 0 (concatD [prt 0 pident]) - FSlash filename -> prPrec i 0 (concatD [doc (showString "/") , prt 0 filename]) - FDot filename -> prPrec i 0 (concatD [doc (showString ".") , prt 0 filename]) - FMinus filename -> prPrec i 0 (concatD [doc (showString "-") , prt 0 filename]) - FAddId pident filename -> prPrec i 0 (concatD [prt 0 pident , prt 0 filename]) - - prtList es = case es of - [x] -> (concatD [prt 0 x , doc (showString ";")]) - x:xs -> (concatD [prt 0 x , doc (showString ";") , prt 0 xs]) - - diff --git a/src/GF/Source/SkelGF.hs b/src/GF/Source/SkelGF.hs deleted file mode 100644 index 3bd192f9d..000000000 --- a/src/GF/Source/SkelGF.hs +++ /dev/null @@ -1,364 +0,0 @@ -module GF.Source.SkelGF where - --- Haskell module generated by the BNF converter - -import GF.Source.AbsGF -import GF.Source.ErrM -type Result = Err String - -failure :: Show a => a -> Result -failure x = Bad $ "Undefined case: " ++ show x - -transLString :: LString -> Result -transLString x = case x of - LString str -> failure x - - -transPIdent :: PIdent -> Result -transPIdent x = case x of - PIdent str -> failure x - - -transGrammar :: Grammar -> Result -transGrammar x = case x of - Gr moddefs -> failure x - - -transModDef :: ModDef -> Result -transModDef x = case x of - MMain pident0 pident concspecs -> failure x - MModule complmod modtype modbody -> failure x - - -transConcSpec :: ConcSpec -> Result -transConcSpec x = case x of - ConcSpec pident concexp -> failure x - - -transConcExp :: ConcExp -> Result -transConcExp x = case x of - ConcExp pident transfers -> failure x - - -transTransfer :: Transfer -> Result -transTransfer x = case x of - TransferIn open -> failure x - TransferOut open -> failure x - - -transModType :: ModType -> Result -transModType x = case x of - MTAbstract pident -> failure x - MTResource pident -> failure x - MTInterface pident -> failure x - MTConcrete pident0 pident -> failure x - MTInstance pident0 pident -> failure x - MTTransfer pident open0 open -> failure x - - -transModBody :: ModBody -> Result -transModBody x = case x of - MBody extend opens topdefs -> failure x - MNoBody includeds -> failure x - MWith included opens -> failure x - MWithBody included opens0 opens topdefs -> failure x - MWithE includeds included opens -> failure x - MWithEBody includeds included opens0 opens topdefs -> failure x - MReuse pident -> failure x - MUnion includeds -> failure x - - -transExtend :: Extend -> Result -transExtend x = case x of - Ext includeds -> failure x - NoExt -> failure x - - -transOpens :: Opens -> Result -transOpens x = case x of - NoOpens -> failure x - OpenIn opens -> failure x - - -transOpen :: Open -> Result -transOpen x = case x of - OName pident -> failure x - OQualQO qualopen pident -> failure x - OQual qualopen pident0 pident -> failure x - - -transComplMod :: ComplMod -> Result -transComplMod x = case x of - CMCompl -> failure x - CMIncompl -> failure x - - -transQualOpen :: QualOpen -> Result -transQualOpen x = case x of - QOCompl -> failure x - QOIncompl -> failure x - QOInterface -> failure x - - -transIncluded :: Included -> Result -transIncluded x = case x of - IAll pident -> failure x - ISome pident pidents -> failure x - IMinus pident pidents -> failure x - - -transDef :: Def -> Result -transDef x = case x of - DDecl names exp -> failure x - DDef names exp -> failure x - DPatt name patts exp -> failure x - DFull names exp0 exp -> failure x - - -transTopDef :: TopDef -> Result -transTopDef x = case x of - DefCat catdefs -> failure x - DefFun fundefs -> failure x - DefFunData fundefs -> failure x - DefDef defs -> failure x - DefData datadefs -> failure x - DefTrans defs -> failure x - DefPar pardefs -> failure x - DefOper defs -> failure x - DefLincat printdefs -> failure x - DefLindef defs -> failure x - DefLin defs -> failure x - DefPrintCat printdefs -> failure x - DefPrintFun printdefs -> failure x - DefFlag flagdefs -> failure x - DefPrintOld printdefs -> failure x - DefLintype defs -> failure x - DefPattern defs -> failure x - DefPackage pident topdefs -> failure x - DefVars defs -> failure x - DefTokenizer pident -> failure x - - -transCatDef :: CatDef -> Result -transCatDef x = case x of - SimpleCatDef pident ddecls -> failure x - ListCatDef pident ddecls -> failure x - ListSizeCatDef pident ddecls n -> failure x - - -transFunDef :: FunDef -> Result -transFunDef x = case x of - FunDef pidents exp -> failure x - - -transDataDef :: DataDef -> Result -transDataDef x = case x of - DataDef pident dataconstrs -> failure x - - -transDataConstr :: DataConstr -> Result -transDataConstr x = case x of - DataId pident -> failure x - DataQId pident0 pident -> failure x - - -transParDef :: ParDef -> Result -transParDef x = case x of - ParDefDir pident parconstrs -> failure x - ParDefIndir pident0 pident -> failure x - ParDefAbs pident -> failure x - - -transParConstr :: ParConstr -> Result -transParConstr x = case x of - ParConstr pident ddecls -> failure x - - -transPrintDef :: PrintDef -> Result -transPrintDef x = case x of - PrintDef names exp -> failure x - - -transFlagDef :: FlagDef -> Result -transFlagDef x = case x of - FlagDef pident0 pident -> failure x - - -transName :: Name -> Result -transName x = case x of - IdentName pident -> failure x - ListName pident -> failure x - - -transLocDef :: LocDef -> Result -transLocDef x = case x of - LDDecl pidents exp -> failure x - LDDef pidents exp -> failure x - LDFull pidents exp0 exp -> failure x - - -transExp :: Exp -> Result -transExp x = case x of - EIdent pident -> failure x - EConstr pident -> failure x - ECons pident -> failure x - ESort sort -> failure x - EString str -> failure x - EInt n -> failure x - EFloat d -> failure x - EMeta -> failure x - EEmpty -> failure x - EData -> failure x - EList pident exps -> failure x - EStrings str -> failure x - ERecord locdefs -> failure x - ETuple tuplecomps -> failure x - EIndir pident -> failure x - ETyped exp0 exp -> failure x - EProj exp label -> failure x - EQConstr pident0 pident -> failure x - EQCons pident0 pident -> failure x - EApp exp0 exp -> failure x - ETable cases -> failure x - ETTable exp cases -> failure x - EVTable exp exps -> failure x - ECase exp cases -> failure x - EVariants exps -> failure x - EPre exp alterns -> failure x - EStrs exps -> failure x - EConAt pident exp -> failure x - EPatt patt -> failure x - EPattType exp -> failure x - ESelect exp0 exp -> failure x - ETupTyp exp0 exp -> failure x - EExtend exp0 exp -> failure x - EGlue exp0 exp -> failure x - EConcat exp0 exp -> failure x - EAbstr binds exp -> failure x - ECTable binds exp -> failure x - EProd decl exp -> failure x - ETType exp0 exp -> failure x - ELet locdefs exp -> failure x - ELetb locdefs exp -> failure x - EWhere exp locdefs -> failure x - EEqs equations -> failure x - EExample exp str -> failure x - ELString lstring -> failure x - ELin pident -> failure x - - -transExps :: Exps -> Result -transExps x = case x of - NilExp -> failure x - ConsExp exp exps -> failure x - - -transPatt :: Patt -> Result -transPatt x = case x of - PChar -> failure x - PChars str -> failure x - PMacro pident -> failure x - PM pident0 pident -> failure x - PW -> failure x - PV pident -> failure x - PCon pident -> failure x - PQ pident0 pident -> failure x - PInt n -> failure x - PFloat d -> failure x - PStr str -> failure x - PR pattasss -> failure x - PTup patttuplecomps -> failure x - PC pident patts -> failure x - PQC pident0 pident patts -> failure x - PDisj patt0 patt -> failure x - PSeq patt0 patt -> failure x - PRep patt -> failure x - PAs pident patt -> failure x - PNeg patt -> failure x - - -transPattAss :: PattAss -> Result -transPattAss x = case x of - PA pidents patt -> failure x - - -transLabel :: Label -> Result -transLabel x = case x of - LIdent pident -> failure x - LVar n -> failure x - - -transSort :: Sort -> Result -transSort x = case x of - Sort_Type -> failure x - Sort_PType -> failure x - Sort_Tok -> failure x - Sort_Str -> failure x - Sort_Strs -> failure x - - -transBind :: Bind -> Result -transBind x = case x of - BIdent pident -> failure x - BWild -> failure x - - -transDecl :: Decl -> Result -transDecl x = case x of - DDec binds exp -> failure x - DExp exp -> failure x - - -transTupleComp :: TupleComp -> Result -transTupleComp x = case x of - TComp exp -> failure x - - -transPattTupleComp :: PattTupleComp -> Result -transPattTupleComp x = case x of - PTComp patt -> failure x - - -transCase :: Case -> Result -transCase x = case x of - Case patt exp -> failure x - - -transEquation :: Equation -> Result -transEquation x = case x of - Equ patts exp -> failure x - - -transAltern :: Altern -> Result -transAltern x = case x of - Alt exp0 exp -> failure x - - -transDDecl :: DDecl -> Result -transDDecl x = case x of - DDDec binds exp -> failure x - DDExp exp -> failure x - - -transOldGrammar :: OldGrammar -> Result -transOldGrammar x = case x of - OldGr include topdefs -> failure x - - -transInclude :: Include -> Result -transInclude x = case x of - NoIncl -> failure x - Incl filenames -> failure x - - -transFileName :: FileName -> Result -transFileName x = case x of - FString str -> failure x - FIdent pident -> failure x - FSlash filename -> failure x - FDot filename -> failure x - FMinus filename -> failure x - FAddId pident filename -> failure x - - - diff --git a/src/GF/Source/SourceToGrammar.hs b/src/GF/Source/SourceToGrammar.hs deleted file mode 100644 index 132bd4704..000000000 --- a/src/GF/Source/SourceToGrammar.hs +++ /dev/null @@ -1,755 +0,0 @@ ----------------------------------------------------------------------- --- | --- Module : SourceToGrammar --- Maintainer : AR --- Stability : (stable) --- Portability : (portable) --- --- > CVS $Date: 2005/10/04 11:05:07 $ --- > CVS $Author: aarne $ --- > CVS $Revision: 1.28 $ --- --- based on the skeleton Haskell module generated by the BNF converter ------------------------------------------------------------------------------ - -module GF.Source.SourceToGrammar ( transGrammar, - transInclude, - transModDef, - transOldGrammar, - transExp, - newReservedWords - ) where - -import qualified GF.Grammar.Grammar as G -import qualified GF.Grammar.PrGrammar as GP -import qualified GF.Infra.Modules as GM -import qualified GF.Grammar.Macros as M -import qualified GF.Compile.Update as U -import qualified GF.Infra.Option as GO -import qualified GF.Compile.ModDeps as GD -import GF.Infra.Ident -import GF.Source.AbsGF -import GF.Source.PrintGF -import GF.Compile.RemoveLiT --- for bw compat -import GF.Data.Operations -import GF.Infra.Option - -import Control.Monad -import Data.Char -import Data.List (genericReplicate) - --- based on the skeleton Haskell module generated by the BNF converter - -type Result = Err String - -failure :: Show a => a -> Err b -failure x = Bad $ "Undefined case: " ++ show x - -prPIdent :: PIdent -> String -prPIdent (PIdent (_,c)) = c - -getIdentPos :: PIdent -> Err (Ident,Int) -getIdentPos x = case x of - PIdent ((line,_),c) -> return (IC c,line) - -transIdent :: PIdent -> Err Ident -transIdent = liftM fst . getIdentPos - -transName :: Name -> Err Ident -transName n = case n of - IdentName i -> transIdent i - ListName i -> liftM mkListId (transIdent i) - -transGrammar :: Grammar -> Err G.SourceGrammar -transGrammar x = case x of - Gr moddefs -> do - moddefs' <- mapM transModDef moddefs - GD.mkSourceGrammar moddefs' - -transModDef :: ModDef -> Err (Ident, G.SourceModInfo) -transModDef x = case x of - - MMain id0 id concspecs -> do - id0' <- transIdent id0 - id' <- transIdent id - concspecs' <- mapM transConcSpec concspecs - return $ (id0', GM.ModMainGrammar (GM.MainGrammar id' concspecs')) - - MModule compl mtyp body -> do - - let mstat' = transComplMod compl - - (trDef, mtyp', id') <- case mtyp of - MTAbstract id -> do - id' <- transIdent id - return (transAbsDef, GM.MTAbstract, id') - MTResource id -> mkModRes id GM.MTResource body - MTConcrete id open -> do - id' <- transIdent id - open' <- transIdent open - return (transCncDef, GM.MTConcrete open', id') - MTTransfer id a b -> do - id' <- transIdent id - a' <- transOpen a - b' <- transOpen a - return (transAbsDef, GM.MTTransfer a' b', id') - MTInterface id -> mkModRes id GM.MTInterface body - MTInstance id open -> do - open' <- transIdent open - mkModRes id (GM.MTInstance open') body - - mkBody (mstat', trDef, mtyp', id') body - where - mkBody xx@(mstat', trDef, mtyp', id') bod = case bod of - MNoBody incls -> do - mkBody xx $ MBody (Ext incls) NoOpens [] - MBody extends opens defs -> do - extends' <- transExtend extends - opens' <- transOpens opens - defs0 <- mapM trDef $ getTopDefs defs - defs' <- U.buildAnyTree [d | Left ds <- defs0, d <- ds] - flags' <- return [f | Right fs <- defs0, f <- fs] - return (id',GM.ModMod (GM.Module mtyp' mstat' flags' extends' opens' defs')) - MReuse _ -> do - return (id', GM.ModMod (GM.Module mtyp' mstat' [] [] [] emptyBinTree)) - MUnion imps -> do - imps' <- mapM transIncluded imps - return (id', - GM.ModMod (GM.Module (GM.MTUnion mtyp' imps') mstat' [] [] [] emptyBinTree)) - - MWith m insts -> mkBody xx $ MWithEBody [] m insts NoOpens [] - MWithBody m insts opens defs -> mkBody xx $ MWithEBody [] m insts opens defs - MWithE extends m insts -> mkBody xx $ MWithEBody extends m insts NoOpens [] - MWithEBody extends m insts opens defs -> do - extends' <- mapM transIncludedExt extends - m' <- transIncludedExt m - insts' <- mapM transOpen insts - opens' <- transOpens opens - defs0 <- mapM trDef $ getTopDefs defs - defs' <- U.buildAnyTree [d | Left ds <- defs0, d <- ds] - flags' <- return [f | Right fs <- defs0, f <- fs] - return (id', - GM.ModWith (GM.Module mtyp' mstat' flags' extends' opens' defs') m' insts') - - mkModRes id mtyp body = do - id' <- transIdent id - case body of - MReuse c -> do - c' <- transIdent c - mtyp' <- trMReuseType mtyp c' - return (transResDef, GM.MTReuse mtyp', id') - _ -> return (transResDef, mtyp, id') - trMReuseType mtyp c = case mtyp of - GM.MTInterface -> return $ GM.MRInterface c - GM.MTInstance op -> return $ GM.MRInstance c op - GM.MTResource -> return $ GM.MRResource c - - -transComplMod :: ComplMod -> GM.ModuleStatus -transComplMod x = case x of - CMCompl -> GM.MSComplete - CMIncompl -> GM.MSIncomplete - -getTopDefs :: [TopDef] -> [TopDef] -getTopDefs x = x - -transConcSpec :: ConcSpec -> Err (GM.MainConcreteSpec Ident) -transConcSpec x = case x of - ConcSpec id concexp -> do - id' <- transIdent id - (m,mi,mo) <- transConcExp concexp - return $ GM.MainConcreteSpec id' m mi mo - -transConcExp :: ConcExp -> - Err (Ident, Maybe (GM.OpenSpec Ident),Maybe (GM.OpenSpec Ident)) -transConcExp x = case x of - ConcExp id transfers -> do - id' <- transIdent id - trs <- mapM transTransfer transfers - tin <- case [o | Left o <- trs] of - [o] -> return $ Just o - [] -> return $ Nothing - _ -> Bad "ambiguous transfer in" - tout <- case [o | Right o <- trs] of - [o] -> return $ Just o - [] -> return $ Nothing - _ -> Bad "ambiguous transfer out" - return (id',tin,tout) - -transTransfer :: Transfer -> - Err (Either (GM.OpenSpec Ident)(GM.OpenSpec Ident)) -transTransfer x = case x of - TransferIn open -> liftM Left $ transOpen open - TransferOut open -> liftM Right $ transOpen open - -transExtend :: Extend -> Err [(Ident,GM.MInclude Ident)] -transExtend x = case x of - Ext ids -> mapM transIncludedExt ids - NoExt -> return [] - -transOpens :: Opens -> Err [GM.OpenSpec Ident] -transOpens x = case x of - NoOpens -> return [] - OpenIn opens -> mapM transOpen opens - -transOpen :: Open -> Err (GM.OpenSpec Ident) -transOpen x = case x of - OName id -> liftM (GM.OSimple GM.OQNormal) $ transIdent id - OQualQO q id -> liftM2 GM.OSimple (transQualOpen q) (transIdent id) - OQual q id m -> liftM3 GM.OQualif (transQualOpen q) (transIdent id) (transIdent m) - -transQualOpen :: QualOpen -> Err GM.OpenQualif -transQualOpen x = case x of - QOCompl -> return GM.OQNormal - QOInterface -> return GM.OQInterface - QOIncompl -> return GM.OQIncomplete - -transIncluded :: Included -> Err (Ident,[Ident]) -transIncluded x = case x of - IAll i -> liftM (flip (curry id) []) $ transIdent i - ISome i ids -> liftM2 (curry id) (transIdent i) (mapM transIdent ids) - IMinus i ids -> liftM2 (curry id) (transIdent i) (mapM transIdent ids) ---- - -transIncludedExt :: Included -> Err (Ident, GM.MInclude Ident) -transIncludedExt x = case x of - IAll i -> liftM2 (,) (transIdent i) (return GM.MIAll) - ISome i ids -> liftM2 (,) (transIdent i) (liftM GM.MIOnly $ mapM transIdent ids) - IMinus i ids -> liftM2 (,) (transIdent i) (liftM GM.MIExcept $ mapM transIdent ids) - -transAbsDef :: TopDef -> Err (Either [(Ident, G.Info)] [GO.Option]) -transAbsDef x = case x of - DefCat catdefs -> liftM (Left . concat) $ mapM transCatDef catdefs - DefFun fundefs -> do - fundefs' <- mapM transFunDef fundefs - returnl [(fun, G.AbsFun (yes typ) nope) | (funs,typ) <- fundefs', fun <- funs] - DefFunData fundefs -> do - fundefs' <- mapM transFunDef fundefs - returnl $ - [(cat, G.AbsCat nope (yes [M.cn fun])) | (funs,typ) <- fundefs', - fun <- funs, - Ok (_,cat) <- [M.valCat typ] - ] ++ - [(fun, G.AbsFun (yes typ) (yes G.EData)) | (funs,typ) <- fundefs', fun <- funs] - DefDef defs -> do - defs' <- liftM concat $ mapM getDefsGen defs - returnl [(c, G.AbsFun nope pe) | (c,(_,pe)) <- defs'] - DefData ds -> do - ds' <- mapM transDataDef ds - returnl $ - [(c, G.AbsCat nope (yes ps)) | (c,ps) <- ds'] ++ - [(f, G.AbsFun nope (yes G.EData)) | (_,fs) <- ds', tf <- fs, f <- funs tf] - DefTrans defs -> do - defs' <- liftM concat $ mapM getDefsGen defs - returnl [(c, G.AbsTrans f) | (c,(_,Yes f)) <- defs'] - DefFlag defs -> liftM Right $ mapM transFlagDef defs - _ -> Bad $ "illegal definition in abstract module:" ++++ printTree x - where - -- to get data constructors as terms - funs t = case t of - G.Cn f -> [f] - G.Q _ f -> [f] - G.QC _ f -> [f] - _ -> [] - -returnl :: a -> Err (Either a b) -returnl = return . Left - -transFlagDef :: FlagDef -> Err GO.Option -transFlagDef x = case x of - FlagDef f x -> return $ GO.Opt (prPIdent f,[prPIdent x]) - --- | Cat definitions can also return some fun defs --- if it is a list category definition -transCatDef :: CatDef -> Err [(Ident, G.Info)] -transCatDef x = case x of - SimpleCatDef id ddecls -> do - id' <- transIdent id - liftM (:[]) $ cat id' ddecls - ListCatDef id ddecls -> listCat id ddecls 0 - ListSizeCatDef id ddecls size -> listCat id ddecls size - where - cat i ddecls = do - -- i <- transIdent id - cont <- liftM concat $ mapM transDDecl ddecls - return (i, G.AbsCat (yes cont) nope) - listCat id ddecls size = do - id' <- transIdent id - let - li = mkListId id' - baseId = mkBaseId id' - consId = mkConsId id' - catd0@(c,G.AbsCat (Yes cont0) _) <- cat li ddecls - let - catd = (c,G.AbsCat (Yes cont0) (Yes [M.cn baseId,M.cn consId])) - cont = [(mkId x i,ty) | (i,(x,ty)) <- zip [0..] cont0] - xs = map (G.Vr . fst) cont - cd = M.mkDecl (M.mkApp (G.Vr id') xs) - lc = M.mkApp (G.Vr li) xs - niltyp = M.mkProdSimple (cont ++ genericReplicate size cd) lc - nilfund = (baseId, G.AbsFun (yes niltyp) (yes G.EData)) - constyp = M.mkProdSimple (cont ++ [cd, M.mkDecl lc]) lc - consfund = (consId, G.AbsFun (yes constyp) (yes G.EData)) - return [catd,nilfund,consfund] - mkId x i = if isWildIdent x then (mkIdent "x" i) else x - -transFunDef :: FunDef -> Err ([Ident], G.Type) -transFunDef x = case x of - FunDef ids typ -> liftM2 (,) (mapM transIdent ids) (transExp typ) - -transDataDef :: DataDef -> Err (Ident,[G.Term]) -transDataDef x = case x of - DataDef id ds -> liftM2 (,) (transIdent id) (mapM transData ds) - where - transData d = case d of - DataId id -> liftM G.Cn $ transIdent id - DataQId id0 id -> liftM2 G.QC (transIdent id0) (transIdent id) - -transResDef :: TopDef -> Err (Either [(Ident, G.Info)] [GO.Option]) -transResDef x = case x of - DefPar pardefs -> do - pardefs' <- mapM transParDef pardefs - returnl $ [(p, G.ResParam (if null pars - then nope -- abstract param type - else (yes (pars,Nothing)))) - | (p,pars) <- pardefs'] - ++ [(f, G.ResValue (yes (M.mkProdSimple co (G.Cn p),Nothing))) | - (p,pars) <- pardefs', (f,co) <- pars] - -{- - ---- encoding of AnyInd without changing syntax. AR 20/9/2007 - DefOper [DDef [c] (EApp (EInt status) (EIdent mo))] -> do - c' <- transName c - mo' <- transIdent mo - return $ Left [(c',G.AnyInd (status==1) mo')] --} - DefOper defs -> do - defs' <- liftM concat $ mapM getDefs defs - returnl $ concatMap mkOverload [(f, G.ResOper pt pe) | (f,(pt,pe)) <- defs'] - - DefLintype defs -> do - defs' <- liftM concat $ mapM getDefs defs - returnl [(f, G.ResOper pt pe) | (f,(pt,pe)) <- defs'] - - DefFlag defs -> liftM Right $ mapM transFlagDef defs - _ -> Bad $ "illegal definition form in resource" +++ printTree x - where - mkOverload (c,j) = case j of - G.ResOper _ (Yes (G.App keyw (G.R fs@(_:_:_)))) | - isOverloading keyw c fs -> - [(c,G.ResOverload [(ty,fu) | (_,(Just ty,fu)) <- fs])] - - -- to enable separare type signature --- not type-checked - G.ResOper (Yes (G.App keyw (G.RecType fs@(_:_:_)))) _ | - isOverloading keyw c fs -> [] - _ -> [(c,j)] - isOverloading keyw c fs = - GP.prt keyw == "overload" && -- overload is a "soft keyword" - all (== GP.prt c) (map (GP.prt . fst) fs) - -transParDef :: ParDef -> Err (Ident, [G.Param]) -transParDef x = case x of - ParDefDir id params -> liftM2 (,) (transIdent id) (mapM transParConstr params) - ParDefAbs id -> liftM2 (,) (transIdent id) (return []) - _ -> Bad $ "illegal definition in resource:" ++++ printTree x - -transCncDef :: TopDef -> Err (Either [(Ident, G.Info)] [GO.Option]) -transCncDef x = case x of - DefLincat defs -> do - defs' <- liftM concat $ mapM transPrintDef defs - returnl [(f, G.CncCat (yes t) nope nope) | (f,t) <- defs'] - DefLindef defs -> do - defs' <- liftM concat $ mapM getDefs defs - returnl [(f, G.CncCat pt pe nope) | (f,(pt,pe)) <- defs'] - DefLin defs -> do - defs' <- liftM concat $ mapM getDefs defs - returnl [(f, G.CncFun Nothing pe nope) | (f,(_,pe)) <- defs'] - DefPrintCat defs -> do - defs' <- liftM concat $ mapM transPrintDef defs - returnl [(f, G.CncCat nope nope (yes e)) | (f,e) <- defs'] - DefPrintFun defs -> do - defs' <- liftM concat $ mapM transPrintDef defs - returnl [(f, G.CncFun Nothing nope (yes e)) | (f,e) <- defs'] - DefPrintOld defs -> do --- a guess, for backward compatibility - defs' <- liftM concat $ mapM transPrintDef defs - returnl [(f, G.CncFun Nothing nope (yes e)) | (f,e) <- defs'] - DefFlag defs -> liftM Right $ mapM transFlagDef defs - DefPattern defs -> do - defs' <- liftM concat $ mapM getDefs defs - let defs2 = [(f, termInPattern t) | (f,(_,Yes t)) <- defs'] - returnl [(f, G.CncFun Nothing (yes t) nope) | (f,t) <- defs2] - - _ -> errIn ("illegal definition in concrete syntax:") $ transResDef x - -transPrintDef :: PrintDef -> Err [(Ident,G.Term)] -transPrintDef x = case x of - PrintDef ids exp -> do - (ids,e) <- liftM2 (,) (mapM transName ids) (transExp exp) - return $ [(i,e) | i <- ids] - -getDefsGen :: Def -> Err [(Ident, (G.Perh G.Type, G.Perh G.Term))] -getDefsGen d = case d of - DDecl ids t -> do - ids' <- mapM transName ids - t' <- transExp t - return [(i,(yes t', nope)) | i <- ids'] - DDef ids e -> do - ids' <- mapM transName ids - e' <- transExp e - return [(i,(nope, yes e')) | i <- ids'] - DFull ids t e -> do - ids' <- mapM transName ids - t' <- transExp t - e' <- transExp e - return [(i,(yes t', yes e')) | i <- ids'] - DPatt id patts e -> do - id' <- transName id - ps' <- mapM transPatt patts - e' <- transExp e - return [(id',(nope, yes (G.Eqs [(ps',e')])))] - --- | sometimes you need this special case, e.g. in linearization rules -getDefs :: Def -> Err [(Ident, (G.Perh G.Type, G.Perh G.Term))] -getDefs d = case d of - DPatt id patts e -> do - id' <- transName id - xs <- mapM tryMakeVar patts - e' <- transExp e - return [(id',(nope, yes (M.mkAbs xs e')))] - _ -> getDefsGen d - --- | accepts a pattern that is either a variable or a wild card -tryMakeVar :: Patt -> Err Ident -tryMakeVar p = do - p' <- transPatt p - case p' of - G.PV i -> return i - G.PW -> return identW - _ -> Bad $ "not a legal pattern in lambda binding" +++ GP.prt p' - -transExp :: Exp -> Err G.Term -transExp x = case x of - EIdent id -> liftM G.Vr $ transIdent id - EConstr id -> liftM G.Con $ transIdent id - ECons id -> liftM G.Cn $ transIdent id - EQConstr m c -> liftM2 G.QC (transIdent m) (transIdent c) - EQCons m c -> liftM2 G.Q (transIdent m) (transIdent c) - EString str -> return $ G.K str - ESort sort -> liftM G.Sort $ transSort sort - EInt n -> return $ G.EInt n - EFloat n -> return $ G.EFloat n - EMeta -> return $ M.meta $ M.int2meta 0 - EEmpty -> return G.Empty - -- [ C x_1 ... x_n ] becomes (ListC x_1 ... x_n) - EList i es -> do - i' <- transIdent i - es' <- mapM transExp (exps2list es) - return $ foldl G.App (G.Vr (mkListId i')) es' - EStrings [] -> return G.Empty - EStrings str -> return $ foldr1 G.C $ map G.K $ words str - ERecord defs -> erecord2term defs - ETupTyp _ _ -> do - let tups t = case t of - ETupTyp x y -> tups x ++ [y] -- right-associative parsing - _ -> [t] - es <- mapM transExp $ tups x - return $ G.RecType $ M.tuple2recordType es - ETuple tuplecomps -> do - es <- mapM transExp [e | TComp e <- tuplecomps] - return $ G.R $ M.tuple2record es - EProj exp id -> liftM2 G.P (transExp exp) (trLabel id) - EApp exp0 exp -> liftM2 G.App (transExp exp0) (transExp exp) - ETable cases -> liftM (G.T G.TRaw) (transCases cases) - ETTable exp cases -> - liftM2 (\t c -> G.T (G.TTyped t) c) (transExp exp) (transCases cases) - EVTable exp cases -> - liftM2 (\t c -> G.V t c) (transExp exp) (mapM transExp cases) - ECase exp cases -> do - exp' <- transExp exp - cases' <- transCases cases - let annot = case exp' of - G.Typed _ t -> G.TTyped t - _ -> G.TRaw - return $ G.S (G.T annot cases') exp' - ECTable binds exp -> liftM2 M.mkCTable (mapM transBind binds) (transExp exp) - - EVariants exps -> liftM G.FV $ mapM transExp exps - EPre exp alts -> liftM2 (curry G.Alts) (transExp exp) (mapM transAltern alts) - EStrs exps -> liftM G.Strs $ mapM transExp exps - ESelect exp0 exp -> liftM2 G.S (transExp exp0) (transExp exp) - EExtend exp0 exp -> liftM2 G.ExtR (transExp exp0) (transExp exp) - EAbstr binds exp -> liftM2 M.mkAbs (mapM transBind binds) (transExp exp) - ETyped exp0 exp -> liftM2 G.Typed (transExp exp0) (transExp exp) - EExample exp str -> liftM2 G.Example (transExp exp) (return str) - - EProd decl exp -> liftM2 M.mkProdSimple (transDecl decl) (transExp exp) - ETType exp0 exp -> liftM2 G.Table (transExp exp0) (transExp exp) - EConcat exp0 exp -> liftM2 G.C (transExp exp0) (transExp exp) - EGlue exp0 exp -> liftM2 G.Glue (transExp exp0) (transExp exp) - ELet defs exp -> do - exp' <- transExp exp - defs0 <- mapM locdef2fields defs - defs' <- mapM tryLoc $ concat defs0 - return $ M.mkLet defs' exp' - where - tryLoc (c,(mty,Just e)) = return (c,(mty,e)) - tryLoc (c,_) = Bad $ "local definition of" +++ GP.prt c +++ "without value" - ELetb defs exp -> transExp $ ELet defs exp - EWhere exp defs -> transExp $ ELet defs exp - - EPattType typ -> liftM G.EPattType (transExp typ) - EPatt patt -> liftM G.EPatt (transPatt patt) - - ELString (LString str) -> return $ G.K str - ELin id -> liftM G.LiT $ transIdent id - - EEqs eqs -> liftM G.Eqs $ mapM transEquation eqs - - _ -> Bad $ "translation not yet defined for" +++ printTree x ---- - -exps2list :: Exps -> [Exp] -exps2list NilExp = [] -exps2list (ConsExp e es) = e : exps2list es - ---- this is complicated: should we change Exp or G.Term ? - -erecord2term :: [LocDef] -> Err G.Term -erecord2term ds = do - ds' <- mapM locdef2fields ds - mkR $ concat ds' - where - mkR fs = do - fs' <- transF fs - return $ case fs' of - Left ts -> G.RecType ts - Right ds -> G.R ds - transF [] = return $ Left [] --- empty record always interpreted as record type - transF fs@(f:_) = case f of - (lab,(Just ty,Nothing)) -> mapM tryRT fs >>= return . Left - _ -> mapM tryR fs >>= return . Right - tryRT f = case f of - (lab,(Just ty,Nothing)) -> return (M.ident2label lab,ty) - _ -> Bad $ "illegal record type field" +++ GP.prt (fst f) --- manifest fields ?! - tryR f = case f of - (lab,(mty, Just t)) -> return (M.ident2label lab,(mty,t)) - _ -> Bad $ "illegal record field" +++ GP.prt (fst f) - - -locdef2fields :: LocDef -> Err [(Ident, (Maybe G.Type, Maybe G.Type))] -locdef2fields d = case d of - LDDecl ids t -> do - labs <- mapM transIdent ids - t' <- transExp t - return [(lab,(Just t',Nothing)) | lab <- labs] - LDDef ids e -> do - labs <- mapM transIdent ids - e' <- transExp e - return [(lab,(Nothing, Just e')) | lab <- labs] - LDFull ids t e -> do - labs <- mapM transIdent ids - t' <- transExp t - e' <- transExp e - return [(lab,(Just t', Just e')) | lab <- labs] - -trLabel :: Label -> Err G.Label -trLabel x = case x of - - -- this case is for bward compatibility and should be removed - LIdent (PIdent (_,'v':ds@(_:_))) | all isDigit ds -> return $ G.LVar $ readIntArg ds - - LIdent (PIdent (_, s)) -> return $ G.LIdent s - LVar x -> return $ G.LVar $ fromInteger x - -transSort :: Sort -> Err String -transSort x = case x of - _ -> return $ printTree x - -{- ---- no more used 7/1/2006 AR -transPatts :: Patt -> Err [G.Patt] -transPatts p = case p of - PDisj p1 p2 -> liftM2 (++) (transPatts p1) (transPatts p2) - PC id patts -> liftM (map (G.PC id) . combinations) $ mapM transPatts patts - PQC q id patts -> liftM (map (G.PP q id) . combinations) (mapM transPatts patts) - - PR pattasss -> do - let (lss,ps) = unzip [(ls,p) | PA ls p <- pattasss] - ls = map LIdent $ concat lss - ps0 <- mapM transPatts ps - let ps' = combinations ps0 - lss' <- mapM trLabel ls - let rss = map (zip lss') ps' - return $ map G.PR rss - PTup pcs -> do - ps0 <- mapM transPatts [e | PTComp e <- pcs] - let ps' = combinations ps0 - return $ map (G.PR . M.tuple2recordPatt) ps' - _ -> liftM singleton $ transPatt p --} - -transPatt :: Patt -> Err G.Patt -transPatt x = case x of - PW -> return G.wildPatt - PV id -> liftM G.PV $ transIdent id - PC id patts -> liftM2 G.PC (transIdent id) (mapM transPatt patts) - PCon id -> liftM2 G.PC (transIdent id) (return []) - PInt n -> return $ G.PInt n - PFloat n -> return $ G.PFloat n - PStr str -> return $ G.PString str - PR pattasss -> do - let (lss,ps) = unzip [(ls,p) | PA ls p <- pattasss] - ls = map LIdent $ concat lss - liftM G.PR $ liftM2 zip (mapM trLabel ls) (mapM transPatt ps) - PTup pcs -> - liftM (G.PR . M.tuple2recordPatt) (mapM transPatt [e | PTComp e <- pcs]) - PQ id0 id -> liftM3 G.PP (transIdent id0) (transIdent id) (return []) - PQC id0 id patts -> - liftM3 G.PP (transIdent id0) (transIdent id) (mapM transPatt patts) - PDisj p1 p2 -> liftM2 G.PAlt (transPatt p1) (transPatt p2) - PSeq p1 p2 -> liftM2 G.PSeq (transPatt p1) (transPatt p2) - PRep p -> liftM G.PRep (transPatt p) - PNeg p -> liftM G.PNeg (transPatt p) - PAs x p -> liftM2 G.PAs (transIdent x) (transPatt p) - PChar -> return G.PChar - PChars s -> return $ G.PChars s - PMacro c -> liftM G.PMacro $ transIdent c - PM m c -> liftM2 G.PM (transIdent m) (transIdent c) - -transBind :: Bind -> Err Ident -transBind x = case x of - BIdent id -> transIdent id - BWild -> return identW - -transDecl :: Decl -> Err [G.Decl] -transDecl x = case x of - DDec binds exp -> do - xs <- mapM transBind binds - exp' <- transExp exp - return [(x,exp') | x <- xs] - DExp exp -> liftM (return . M.mkDecl) $ transExp exp - -transCases :: [Case] -> Err [G.Case] -transCases = mapM transCase - -transCase :: Case -> Err G.Case -transCase (Case p exp) = do - patt <- transPatt p - exp' <- transExp exp - return (patt,exp') - -transEquation :: Equation -> Err G.Equation -transEquation x = case x of - Equ apatts exp -> liftM2 (,) (mapM transPatt apatts) (transExp exp) - -transAltern :: Altern -> Err (G.Term, G.Term) -transAltern x = case x of - Alt exp0 exp -> liftM2 (,) (transExp exp0) (transExp exp) - -transParConstr :: ParConstr -> Err G.Param -transParConstr x = case x of - ParConstr id ddecls -> do - id' <- transIdent id - ddecls' <- mapM transDDecl ddecls - return (id',concat ddecls') - -transDDecl :: DDecl -> Err [G.Decl] -transDDecl x = case x of - DDDec binds exp -> transDecl $ DDec binds exp - DDExp exp -> transDecl $ DExp exp - --- | to deal with the old format, sort judgements in three modules, forming --- their names from a given string, e.g. file name or overriding user-given string -transOldGrammar :: Options -> FilePath -> OldGrammar -> Err G.SourceGrammar -transOldGrammar opts name0 x = case x of - OldGr includes topdefs -> do --- includes must be collected separately - let moddefs = sortTopDefs topdefs - g1 <- transGrammar $ Gr moddefs - removeLiT g1 --- needed for bw compatibility with an obsolete feature - where - sortTopDefs ds = [mkAbs a,mkRes ops r,mkCnc ops c] ++ map mkPack ps - where - ops = map fst ps - (a,r,c,ps) = foldr srt ([],[],[],[]) ds - srt d (a,r,c,ps) = case d of - DefCat catdefs -> (d:a,r,c,ps) - DefFun fundefs -> (d:a,r,c,ps) - DefFunData fundefs -> (d:a,r,c,ps) - DefDef defs -> (d:a,r,c,ps) - DefData pardefs -> (d:a,r,c,ps) - DefPar pardefs -> (a,d:r,c,ps) - DefOper defs -> (a,d:r,c,ps) - DefLintype defs -> (a,d:r,c,ps) - DefLincat defs -> (a,r,d:c,ps) - DefLindef defs -> (a,r,d:c,ps) - DefLin defs -> (a,r,d:c,ps) - DefPattern defs -> (a,r,d:c,ps) - DefFlag defs -> (a,r,d:c,ps) --- a guess - DefPrintCat printdefs -> (a,r,d:c,ps) - DefPrintFun printdefs -> (a,r,d:c,ps) - DefPrintOld printdefs -> (a,r,d:c,ps) - DefPackage m ds -> (a,r,c,(m,ds):ps) - _ -> (a,r,c,ps) - mkAbs a = MModule q (MTAbstract absName) (MBody ne (OpenIn []) (topDefs a)) - mkRes ps r = MModule q (MTResource resName) (MBody ne (OpenIn ops) (topDefs r)) - where ops = map OName ps - mkCnc ps r = MModule q (MTConcrete cncName absName) - (MBody ne (OpenIn (map OName (resName:ps))) (topDefs r)) - mkPack (m, ds) = MModule q (MTResource m) (MBody ne (OpenIn []) (topDefs ds)) - topDefs t = t - ne = NoExt - q = CMCompl - - name = maybe name0 (++ ".gf") $ getOptVal opts useName - absName = identPI $ maybe topic id $ getOptVal opts useAbsName - resName = identPI $ maybe ("Res" ++ lang) id $ getOptVal opts useResName - cncName = identPI $ maybe lang id $ getOptVal opts useCncName - - identPI s = PIdent ((0,0),s) - - (beg,rest) = span (/='.') name - (topic,lang) = case rest of -- to avoid overwriting old files - ".gf" -> ("Abs" ++ beg,"Cnc" ++ beg) - ".cf" -> ("Abs" ++ beg,"Cnc" ++ beg) - ".ebnf" -> ("Abs" ++ beg,"Cnc" ++ beg) - [] -> ("Abs" ++ beg,"Cnc" ++ beg) - _:s -> (beg, takeWhile (/='.') s) - -transInclude :: Include -> Err [FilePath] -transInclude x = case x of - NoIncl -> return [] - Incl filenames -> return $ map trans filenames - where - trans f = case f of - FString s -> s - FIdent (PIdent (_, s)) -> modif s - FSlash filename -> '/' : trans filename - FDot filename -> '.' : trans filename - FMinus filename -> '-' : trans filename - FAddId (PIdent (_, s)) filename -> modif s ++ trans filename - modif s = let s' = init s ++ [toLower (last s)] in - if elem s' newReservedWords then s' else s - --- unsafe hack ; cf. GetGrammar.oldLexer - - -newReservedWords :: [String] -newReservedWords = - words $ "abstract concrete interface incomplete " ++ - "instance out open resource reuse transfer union with where" - -termInPattern :: G.Term -> G.Term -termInPattern t = M.mkAbs xx $ G.R [(s, (Nothing, toP body))] where - toP t = case t of - G.Vr x -> G.P t s - _ -> M.composSafeOp toP t - s = G.LIdent "s" - (xx,body) = abss [] t - abss xs t = case t of - G.Abs x b -> abss (x:xs) b - _ -> (reverse xs,t) - -mkListId,mkConsId,mkBaseId :: Ident -> Ident -mkListId = prefixId "List" -mkConsId = prefixId "Cons" -mkBaseId = prefixId "Base" - -prefixId :: String -> Ident -> Ident -prefixId pref id = IC (pref ++ prIdent id) diff --git a/src/GF/Source/TestGF.hs b/src/GF/Source/TestGF.hs deleted file mode 100644 index e4c072467..000000000 --- a/src/GF/Source/TestGF.hs +++ /dev/null @@ -1,58 +0,0 @@ --- automatically generated by BNF Converter -module Main where - - -import IO ( stdin, hGetContents ) -import System ( getArgs, getProgName ) - -import GF.Source.LexGF -import GF.Source.ParGF -import GF.Source.SkelGF -import GF.Source.PrintGF -import GF.Source.AbsGF - - - - -import GF.Source.ErrM - -type ParseFun a = [Token] -> Err a - -myLLexer = myLexer - -type Verbosity = Int - -putStrV :: Verbosity -> String -> IO () -putStrV v s = if v > 1 then putStrLn s else return () - -runFile :: (Print a, Show a) => Verbosity -> ParseFun a -> FilePath -> IO () -runFile v p f = putStrLn f >> readFile f >>= run v p - -run :: (Print a, Show a) => Verbosity -> ParseFun a -> String -> IO () -run v p s = let ts = myLLexer s in case p ts of - Bad s -> do putStrLn "\nParse Failed...\n" - putStrV v "Tokens:" - putStrV v $ show ts - putStrLn s - Ok tree -> do putStrLn "\nParse Successful!" - showTree v tree - - - -showTree :: (Show a, Print a) => Int -> a -> IO () -showTree v tree - = do - putStrV v $ "\n[Abstract Syntax]\n\n" ++ show tree - putStrV v $ "\n[Linearized tree]\n\n" ++ printTree tree - -main :: IO () -main = do args <- getArgs - case args of - [] -> hGetContents stdin >>= run 2 pGrammar - "-s":fs -> mapM_ (runFile 0 pGrammar) fs - fs -> mapM_ (runFile 2 pGrammar) fs - - - - - |
