module Text.Papillon.Parser (
Peg,
Definition,
Selection,
ExpressionHs,
NameLeaf(..),
NameLeaf_(..),
ReadFrom(..),
parse,
showNameLeaf,
nameFromRF,
ParseError(..),
Derivs(peg, pegFile, derivsChars),
Pos(..),
ListPos(..),
pePositionS,
Source(..),
SourceList(..),
PPragma(..),
ModuleName
) where
import "monads-tf" Control.Monad.State
import "monads-tf" Control.Monad.Error
import Text.Papillon.Papillon
import Control.Applicative
import Data.Char
import Language.Haskell.TH
import Text.Papillon.SyntaxTree
data Derivs
= Derivs {pegFile :: (Either (ParseError (Pos String) Derivs)
((PegFile, Derivs))),
pragmas :: (Either (ParseError (Pos String) Derivs)
(([PPragma], Derivs))),
pragma :: (Either (ParseError (Pos String) Derivs)
((PPragma, Derivs))),
pragmaStr2 :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
pragmaItems :: (Either (ParseError (Pos String) Derivs)
(([String], Derivs))),
pragmaEnd :: (Either (ParseError (Pos String) Derivs)
(((), Derivs))),
moduleDec :: (Either (ParseError (Pos String) Derivs)
((Maybe (([String], String)), Derivs))),
moduleName :: (Either (ParseError (Pos String) Derivs)
(([String], Derivs))),
moduleDecStr :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
whr :: (Either (ParseError (Pos String) Derivs) (((), Derivs))),
preImpPap :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
prePeg :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
afterPeg :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
importPapillon :: (Either (ParseError (Pos String) Derivs)
(((), Derivs))),
varToken :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
typToken :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
pap :: (Either (ParseError (Pos String) Derivs) (((), Derivs))),
peg :: (Either (ParseError (Pos String) Derivs) ((TTPeg, Derivs))),
sourceType :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
peg_ :: (Either (ParseError (Pos String) Derivs) ((Peg, Derivs))),
definition :: (Either (ParseError (Pos String) Derivs)
((Definition, Derivs))),
selection :: (Either (ParseError (Pos String) Derivs)
((Selection, Derivs))),
expressionHs :: (Either (ParseError (Pos String) Derivs)
((ExpressionHs, Derivs))),
expression :: (Either (ParseError (Pos String) Derivs)
((Expression, Derivs))),
nameLeaf_ :: (Either (ParseError (Pos String) Derivs)
((NameLeaf_, Derivs))),
nameLeaf :: (Either (ParseError (Pos String) Derivs)
((NameLeaf, Derivs))),
nameLeafNoCom :: (Either (ParseError (Pos String) Derivs)
((NameLeaf, Derivs))),
comForErr :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
leaf :: (Either (ParseError (Pos String) Derivs)
(((ReadFrom, Maybe ((ExpQ, String))), Derivs))),
patOp :: (Either (ParseError (Pos String) Derivs)
((PatQ, Derivs))),
pat :: (Either (ParseError (Pos String) Derivs) ((PatQ, Derivs))),
pat1 :: (Either (ParseError (Pos String) Derivs) ((PatQ, Derivs))),
patList :: (Either (ParseError (Pos String) Derivs)
(([PatQ], Derivs))),
opConName :: (Either (ParseError (Pos String) Derivs)
((Name, Derivs))),
charLit :: (Either (ParseError (Pos String) Derivs)
((Char, Derivs))),
stringLit :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
escapeC :: (Either (ParseError (Pos String) Derivs)
((Char, Derivs))),
pats :: (Either (ParseError (Pos String) Derivs)
((PatQs, Derivs))),
readFromLs :: (Either (ParseError (Pos String) Derivs)
((ReadFrom, Derivs))),
readFrom :: (Either (ParseError (Pos String) Derivs)
((ReadFrom, Derivs))),
test :: (Either (ParseError (Pos String) Derivs)
(((ExR, String), Derivs))),
hsExpLam :: (Either (ParseError (Pos String) Derivs)
((ExR, Derivs))),
hsExpTyp :: (Either (ParseError (Pos String) Derivs)
((ExR, Derivs))),
hsExpOp :: (Either (ParseError (Pos String) Derivs)
((ExR, Derivs))),
hsOp :: (Either (ParseError (Pos String) Derivs) ((ExR, Derivs))),
opTail :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
hsExp :: (Either (ParseError (Pos String) Derivs) ((Ex, Derivs))),
hsExp1 :: (Either (ParseError (Pos String) Derivs)
((ExR, Derivs))),
hsExpTpl :: (Either (ParseError (Pos String) Derivs)
((ExRL, Derivs))),
hsTypeArr :: (Either (ParseError (Pos String) Derivs)
((TypeQ, Derivs))),
hsType :: (Either (ParseError (Pos String) Derivs)
((Typ, Derivs))),
hsType1 :: (Either (ParseError (Pos String) Derivs)
((TypeQ, Derivs))),
hsTypeTpl :: (Either (ParseError (Pos String) Derivs)
((TypeQL, Derivs))),
typ :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
variable :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
tvtail :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
integer :: (Either (ParseError (Pos String) Derivs)
((Integer, Derivs))),
alpha :: (Either (ParseError (Pos String) Derivs)
((Char, Derivs))),
upper :: (Either (ParseError (Pos String) Derivs)
((Char, Derivs))),
lower :: (Either (ParseError (Pos String) Derivs)
((Char, Derivs))),
digit :: (Either (ParseError (Pos String) Derivs)
((Char, Derivs))),
spaces :: (Either (ParseError (Pos String) Derivs) (((), Derivs))),
space :: (Either (ParseError (Pos String) Derivs) (((), Derivs))),
notNLString :: (Either (ParseError (Pos String) Derivs)
((String, Derivs))),
newLine :: (Either (ParseError (Pos String) Derivs)
(((), Derivs))),
comment :: (Either (ParseError (Pos String) Derivs)
(((), Derivs))),
comments :: (Either (ParseError (Pos String) Derivs)
(((), Derivs))),
notComStr :: (Either (ParseError (Pos String) Derivs)
(((), Derivs))),
comEnd :: (Either (ParseError (Pos String) Derivs) (((), Derivs))),
derivsChars :: (Either (ParseError (Pos String) Derivs)
((Token String, Derivs))),
derivsPosition :: (Pos String)}
parse :: String -> Derivs
parse = parse0_0 initialPos
where parse0_0 pos s = d
where d = Derivs pegFile73_1 pragmas74_2 pragma75_3 pragmaStr276_4 pragmaItems77_5 pragmaEnd78_6 moduleDec79_7 moduleName80_8 moduleDecStr81_9 whr82_10 preImpPap83_11 prePeg84_12 afterPeg85_13 importPapillon86_14 varToken87_15 typToken88_16 pap89_17 peg90_18 sourceType91_19 peg_92_20 definition93_21 selection94_22 expressionHs95_23 expression96_24 nameLeaf_97_25 nameLeaf98_26 nameLeafNoCom99_27 comForErr100_28 leaf101_29 patOp102_30 pat103_31 pat1104_32 patList105_33 opConName106_34 charLit107_35 stringLit108_36 escapeC109_37 pats110_38 readFromLs111_39 readFrom112_40 test113_41 hsExpLam114_42 hsExpTyp115_43 hsExpOp116_44 hsOp117_45 opTail118_46 hsExp119_47 hsExp1120_48 hsExpTpl121_49 hsTypeArr122_50 hsType123_51 hsType1124_52 hsTypeTpl125_53 typ126_54 variable127_55 tvtail128_56 integer129_57 alpha130_58 upper131_59 lower132_60 digit133_61 spaces134_62 space135_63 notNLString136_64 newLine137_65 comment138_66 comments139_67 notComStr140_68 comEnd141_69 chars142_70 pos
pegFile73_1 = runStateT pegFile4_71 d
pragmas74_2 = runStateT pragmas5_72 d
pragma75_3 = runStateT pragma6_73 d
pragmaStr276_4 = runStateT pragmaStr27_74 d
pragmaItems77_5 = runStateT pragmaItems8_75 d
pragmaEnd78_6 = runStateT pragmaEnd9_76 d
moduleDec79_7 = runStateT moduleDec10_77 d
moduleName80_8 = runStateT moduleName11_78 d
moduleDecStr81_9 = runStateT moduleDecStr12_79 d
whr82_10 = runStateT whr13_80 d
preImpPap83_11 = runStateT preImpPap14_81 d
prePeg84_12 = runStateT prePeg15_82 d
afterPeg85_13 = runStateT afterPeg16_83 d
importPapillon86_14 = runStateT importPapillon17_84 d
varToken87_15 = runStateT varToken18_85 d
typToken88_16 = runStateT typToken19_86 d
pap89_17 = runStateT pap20_87 d
peg90_18 = runStateT peg21_88 d
sourceType91_19 = runStateT sourceType22_89 d
peg_92_20 = runStateT peg_23_90 d
definition93_21 = runStateT definition24_91 d
selection94_22 = runStateT selection25_92 d
expressionHs95_23 = runStateT expressionHs26_93 d
expression96_24 = runStateT expression27_94 d
nameLeaf_97_25 = runStateT nameLeaf_28_95 d
nameLeaf98_26 = runStateT nameLeaf29_96 d
nameLeafNoCom99_27 = runStateT nameLeafNoCom30_97 d
comForErr100_28 = runStateT comForErr31_98 d
leaf101_29 = runStateT leaf32_99 d
patOp102_30 = runStateT patOp33_100 d
pat103_31 = runStateT pat34_101 d
pat1104_32 = runStateT pat135_102 d
patList105_33 = runStateT patList36_103 d
opConName106_34 = runStateT opConName37_104 d
charLit107_35 = runStateT charLit38_105 d
stringLit108_36 = runStateT stringLit39_106 d
escapeC109_37 = runStateT escapeC40_107 d
pats110_38 = runStateT pats41_108 d
readFromLs111_39 = runStateT readFromLs42_109 d
readFrom112_40 = runStateT readFrom43_110 d
test113_41 = runStateT test44_111 d
hsExpLam114_42 = runStateT hsExpLam45_112 d
hsExpTyp115_43 = runStateT hsExpTyp46_113 d
hsExpOp116_44 = runStateT hsExpOp47_114 d
hsOp117_45 = runStateT hsOp48_115 d
opTail118_46 = runStateT opTail49_116 d
hsExp119_47 = runStateT hsExp50_117 d
hsExp1120_48 = runStateT hsExp151_118 d
hsExpTpl121_49 = runStateT hsExpTpl52_119 d
hsTypeArr122_50 = runStateT hsTypeArr53_120 d
hsType123_51 = runStateT hsType54_121 d
hsType1124_52 = runStateT hsType155_122 d
hsTypeTpl125_53 = runStateT hsTypeTpl56_123 d
typ126_54 = runStateT typ57_124 d
variable127_55 = runStateT variable58_125 d
tvtail128_56 = runStateT tvtail59_126 d
integer129_57 = runStateT integer60_127 d
alpha130_58 = runStateT alpha61_128 d
upper131_59 = runStateT upper62_129 d
lower132_60 = runStateT lower63_130 d
digit133_61 = runStateT digit64_131 d
spaces134_62 = runStateT spaces65_132 d
space135_63 = runStateT space66_133 d
notNLString136_64 = runStateT notNLString67_134 d
newLine137_65 = runStateT newLine68_135 d
comment138_66 = runStateT comment69_136 d
comments139_67 = runStateT comments70_137 d
notComStr140_68 = runStateT notComStr71_138 d
comEnd141_69 = runStateT comEnd72_139 d
chars142_70 = runStateT (case getToken s of
Just (c,
s') -> do put (parse0_0 (updatePos c pos) s')
return c
_ -> gets derivsPosition >>= (throwError . ParseError "" "end of input" "" undefined [])) d
pegFile4_71 = foldl1 mplus [do pr <- StateT pragmas
md <- StateT moduleDec
pip <- StateT preImpPap
_ <- StateT importPapillon
return ()
pp <- StateT prePeg
_ <- StateT pap
return ()
p <- StateT peg
_ <- StateT spaces
return ()
d160_140 <- get
xx159_141 <- StateT derivsChars
case xx159_141 of
'|' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'|'" "not match pattern: " "" d160_140 ["derivsChars"])
let '|' = xx159_141
return ()
d162_142 <- get
xx161_143 <- StateT derivsChars
case xx161_143 of
']' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "']'" "not match pattern: " "" d162_142 ["derivsChars"])
let ']' = xx161_143
return ()
d164_144 <- get
xx163_145 <- StateT derivsChars
case xx163_145 of
'\n' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\n'" "not match pattern: " "" d164_144 ["derivsChars"])
let '\n' = xx163_145
return ()
atp <- StateT afterPeg
return (mkPegFile pr md pip pp p atp),
do pr <- StateT pragmas
md <- StateT moduleDec
pp <- StateT prePeg
_ <- StateT pap
return ()
p <- StateT peg
_ <- StateT spaces
return ()
d180_146 <- get
xx179_147 <- StateT derivsChars
case xx179_147 of
'|' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'|'" "not match pattern: " "" d180_146 ["derivsChars"])
let '|' = xx179_147
return ()
d182_148 <- get
xx181_149 <- StateT derivsChars
case xx181_149 of
']' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "']'" "not match pattern: " "" d182_148 ["derivsChars"])
let ']' = xx181_149
return ()
d184_150 <- get
xx183_151 <- StateT derivsChars
case xx183_151 of
'\n' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\n'" "not match pattern: " "" d184_150 ["derivsChars"])
let '\n' = xx183_151
return ()
atp <- StateT afterPeg
return (mkPegFile pr md emp pp p atp)]
pragmas5_72 = foldl1 mplus [do _ <- StateT spaces
return ()
pr <- StateT pragma
prs <- StateT pragmas
return (pr : prs),
do _ <- StateT spaces
return ()
return []]
pragma6_73 = foldl1 mplus [do d196_152 <- get
xx195_153 <- StateT derivsChars
case xx195_153 of
'{' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'{'" "not match pattern: " "" d196_152 ["derivsChars"])
let '{' = xx195_153
return ()
d198_154 <- get
xx197_155 <- StateT derivsChars
case xx197_155 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d198_154 ["derivsChars"])
let '-' = xx197_155
return ()
d200_156 <- get
xx199_157 <- StateT derivsChars
case xx199_157 of
'#' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'#'" "not match pattern: " "" d200_156 ["derivsChars"])
let '#' = xx199_157
return ()
_ <- StateT spaces
return ()
d204_158 <- get
xx203_159 <- StateT derivsChars
case xx203_159 of
'L' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'L'" "not match pattern: " "" d204_158 ["derivsChars"])
let 'L' = xx203_159
return ()
d206_160 <- get
xx205_161 <- StateT derivsChars
case xx205_161 of
'A' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'A'" "not match pattern: " "" d206_160 ["derivsChars"])
let 'A' = xx205_161
return ()
d208_162 <- get
xx207_163 <- StateT derivsChars
case xx207_163 of
'N' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'N'" "not match pattern: " "" d208_162 ["derivsChars"])
let 'N' = xx207_163
return ()
d210_164 <- get
xx209_165 <- StateT derivsChars
case xx209_165 of
'G' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'G'" "not match pattern: " "" d210_164 ["derivsChars"])
let 'G' = xx209_165
return ()
d212_166 <- get
xx211_167 <- StateT derivsChars
case xx211_167 of
'U' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'U'" "not match pattern: " "" d212_166 ["derivsChars"])
let 'U' = xx211_167
return ()
d214_168 <- get
xx213_169 <- StateT derivsChars
case xx213_169 of
'A' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'A'" "not match pattern: " "" d214_168 ["derivsChars"])
let 'A' = xx213_169
return ()
d216_170 <- get
xx215_171 <- StateT derivsChars
case xx215_171 of
'G' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'G'" "not match pattern: " "" d216_170 ["derivsChars"])
let 'G' = xx215_171
return ()
d218_172 <- get
xx217_173 <- StateT derivsChars
case xx217_173 of
'E' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'E'" "not match pattern: " "" d218_172 ["derivsChars"])
let 'E' = xx217_173
return ()
_ <- StateT spaces
return ()
s <- StateT pragmaItems
_ <- StateT pragmaEnd
return ()
_ <- StateT spaces
return ()
return (LanguagePragma s),
do d228_174 <- get
xx227_175 <- StateT derivsChars
case xx227_175 of
'{' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'{'" "not match pattern: " "" d228_174 ["derivsChars"])
let '{' = xx227_175
return ()
d230_176 <- get
xx229_177 <- StateT derivsChars
case xx229_177 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d230_176 ["derivsChars"])
let '-' = xx229_177
return ()
d232_178 <- get
xx231_179 <- StateT derivsChars
case xx231_179 of
'#' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'#'" "not match pattern: " "" d232_178 ["derivsChars"])
let '#' = xx231_179
return ()
_ <- StateT spaces
return ()
s <- StateT pragmaStr2
_ <- StateT pragmaEnd
return ()
return (OtherPragma s)]
pragmaStr27_74 = foldl1 mplus [do ddd239_180 <- get
do err <- ((do _ <- StateT pragmaEnd
return ()) >> return False) `catchError` const (return True)
unless err (gets derivsPosition >>= (throwError . ParseError ('!' : "_:pragmaEnd") "not match: " "" ddd239_180 ["pragmaEnd"]))
put ddd239_180
c <- StateT derivsChars
s <- StateT pragmaStr2
return (c : s),
return ""]
pragmaItems8_75 = foldl1 mplus [do t <- StateT typToken
d249_181 <- get
xx248_182 <- StateT derivsChars
case xx248_182 of
',' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "','" "not match pattern: " "" d249_181 ["derivsChars"])
let ',' = xx248_182
return ()
_ <- StateT spaces
return ()
i <- StateT pragmaItems
return (t : i),
do t <- StateT typToken
return [t]]
pragmaEnd9_76 = foldl1 mplus [do _ <- StateT spaces
return ()
d259_183 <- get
xx258_184 <- StateT derivsChars
case xx258_184 of
'#' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'#'" "not match pattern: " "" d259_183 ["derivsChars"])
let '#' = xx258_184
return ()
d261_185 <- get
xx260_186 <- StateT derivsChars
case xx260_186 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d261_185 ["derivsChars"])
let '-' = xx260_186
return ()
d263_187 <- get
xx262_188 <- StateT derivsChars
case xx262_188 of
'}' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'}'" "not match pattern: " "" d263_187 ["derivsChars"])
let '}' = xx262_188
return ()
return ()]
moduleDec10_77 = foldl1 mplus [do d265_189 <- get
xx264_190 <- StateT derivsChars
case xx264_190 of
'm' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'m'" "not match pattern: " "" d265_189 ["derivsChars"])
let 'm' = xx264_190
return ()
d267_191 <- get
xx266_192 <- StateT derivsChars
case xx266_192 of
'o' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'o'" "not match pattern: " "" d267_191 ["derivsChars"])
let 'o' = xx266_192
return ()
d269_193 <- get
xx268_194 <- StateT derivsChars
case xx268_194 of
'd' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'d'" "not match pattern: " "" d269_193 ["derivsChars"])
let 'd' = xx268_194
return ()
d271_195 <- get
xx270_196 <- StateT derivsChars
case xx270_196 of
'u' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'u'" "not match pattern: " "" d271_195 ["derivsChars"])
let 'u' = xx270_196
return ()
d273_197 <- get
xx272_198 <- StateT derivsChars
case xx272_198 of
'l' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'l'" "not match pattern: " "" d273_197 ["derivsChars"])
let 'l' = xx272_198
return ()
d275_199 <- get
xx274_200 <- StateT derivsChars
case xx274_200 of
'e' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'e'" "not match pattern: " "" d275_199 ["derivsChars"])
let 'e' = xx274_200
return ()
_ <- StateT spaces
return ()
n <- StateT moduleName
s <- StateT moduleDecStr
_ <- StateT whr
return ()
return (Just (n, s)),
return Nothing]
moduleName11_78 = foldl1 mplus [do t <- StateT typ
d287_201 <- get
xx286_202 <- StateT derivsChars
case xx286_202 of
'.' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'.'" "not match pattern: " "" d287_201 ["derivsChars"])
let '.' = xx286_202
return ()
n <- StateT moduleName
return (t : n),
do t <- StateT typ
return [t]]
moduleDecStr12_79 = foldl1 mplus [do ddd292_203 <- get
do err <- ((do _ <- StateT whr
return ()) >> return False) `catchError` const (return True)
unless err (gets derivsPosition >>= (throwError . ParseError ('!' : "_:whr") "not match: " "" ddd292_203 ["whr"]))
put ddd292_203
c <- StateT derivsChars
s <- StateT moduleDecStr
return (c : s),
return ""]
whr13_80 = foldl1 mplus [do d300_204 <- get
xx299_205 <- StateT derivsChars
case xx299_205 of
'w' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'w'" "not match pattern: " "" d300_204 ["derivsChars"])
let 'w' = xx299_205
return ()
d302_206 <- get
xx301_207 <- StateT derivsChars
case xx301_207 of
'h' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'h'" "not match pattern: " "" d302_206 ["derivsChars"])
let 'h' = xx301_207
return ()
d304_208 <- get
xx303_209 <- StateT derivsChars
case xx303_209 of
'e' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'e'" "not match pattern: " "" d304_208 ["derivsChars"])
let 'e' = xx303_209
return ()
d306_210 <- get
xx305_211 <- StateT derivsChars
case xx305_211 of
'r' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'r'" "not match pattern: " "" d306_210 ["derivsChars"])
let 'r' = xx305_211
return ()
d308_212 <- get
xx307_213 <- StateT derivsChars
case xx307_213 of
'e' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'e'" "not match pattern: " "" d308_212 ["derivsChars"])
let 'e' = xx307_213
return ()
return ()]
preImpPap14_81 = foldl1 mplus [do ddd309_214 <- get
do err <- ((do _ <- StateT importPapillon
return ()) >> return False) `catchError` const (return True)
unless err (gets derivsPosition >>= (throwError . ParseError ('!' : "_:importPapillon") "not match: " "" ddd309_214 ["importPapillon"]))
put ddd309_214
ddd312_215 <- get
do err <- ((do _ <- StateT pap
return ()) >> return False) `catchError` const (return True)
unless err (gets derivsPosition >>= (throwError . ParseError ('!' : "_:pap") "not match: " "" ddd312_215 ["pap"]))
put ddd312_215
c <- StateT derivsChars
pip <- StateT preImpPap
return (cons c pip),
return emp]
prePeg15_82 = foldl1 mplus [do ddd319_216 <- get
do err <- ((do _ <- StateT pap
return ()) >> return False) `catchError` const (return True)
unless err (gets derivsPosition >>= (throwError . ParseError ('!' : "_:pap") "not match: " "" ddd319_216 ["pap"]))
put ddd319_216
c <- StateT derivsChars
pp <- StateT prePeg
return (cons c pp),
return emp]
afterPeg16_83 = foldl1 mplus [do c <- StateT derivsChars
atp <- StateT afterPeg
return (cons c atp),
return emp]
importPapillon17_84 = foldl1 mplus [do d331_217 <- get
xx330_218 <- StateT varToken
case xx330_218 of
"import" -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "\"import\"" "not match pattern: " "" d331_217 ["varToken"])
let "import" = xx330_218
return ()
d333_219 <- get
xx332_220 <- StateT typToken
case xx332_220 of
"Text" -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "\"Text\"" "not match pattern: " "" d333_219 ["typToken"])
let "Text" = xx332_220
return ()
d335_221 <- get
xx334_222 <- StateT derivsChars
case xx334_222 of
'.' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'.'" "not match pattern: " "" d335_221 ["derivsChars"])
let '.' = xx334_222
return ()
_ <- StateT spaces
return ()
d339_223 <- get
xx338_224 <- StateT typToken
case xx338_224 of
"Papillon" -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "\"Papillon\"" "not match pattern: " "" d339_223 ["typToken"])
let "Papillon" = xx338_224
return ()
ddd340_225 <- get
do err <- ((do d342_226 <- get
xx341_227 <- StateT derivsChars
case xx341_227 of
'.' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'.'" "not match pattern: " "" d342_226 ["derivsChars"])
let '.' = xx341_227
return ()) >> return False) `catchError` const (return True)
unless err (gets derivsPosition >>= (throwError . ParseError ('!' : "'.':") "not match: " "" ddd340_225 ["derivsChars"]))
put ddd340_225
return ()]
varToken18_85 = foldl1 mplus [do v <- StateT variable
_ <- StateT spaces
return ()
return v]
typToken19_86 = foldl1 mplus [do t <- StateT typ
_ <- StateT spaces
return ()
return t]
pap20_87 = foldl1 mplus [do d352_228 <- get
xx351_229 <- StateT derivsChars
case xx351_229 of
'\n' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\n'" "not match pattern: " "" d352_228 ["derivsChars"])
let '\n' = xx351_229
return ()
d354_230 <- get
xx353_231 <- StateT derivsChars
case xx353_231 of
'[' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'['" "not match pattern: " "" d354_230 ["derivsChars"])
let '[' = xx353_231
return ()
d356_232 <- get
xx355_233 <- StateT derivsChars
case xx355_233 of
'p' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'p'" "not match pattern: " "" d356_232 ["derivsChars"])
let 'p' = xx355_233
return ()
d358_234 <- get
xx357_235 <- StateT derivsChars
case xx357_235 of
'a' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'a'" "not match pattern: " "" d358_234 ["derivsChars"])
let 'a' = xx357_235
return ()
d360_236 <- get
xx359_237 <- StateT derivsChars
case xx359_237 of
'p' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'p'" "not match pattern: " "" d360_236 ["derivsChars"])
let 'p' = xx359_237
return ()
d362_238 <- get
xx361_239 <- StateT derivsChars
case xx361_239 of
'i' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'i'" "not match pattern: " "" d362_238 ["derivsChars"])
let 'i' = xx361_239
return ()
d364_240 <- get
xx363_241 <- StateT derivsChars
case xx363_241 of
'l' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'l'" "not match pattern: " "" d364_240 ["derivsChars"])
let 'l' = xx363_241
return ()
d366_242 <- get
xx365_243 <- StateT derivsChars
case xx365_243 of
'l' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'l'" "not match pattern: " "" d366_242 ["derivsChars"])
let 'l' = xx365_243
return ()
d368_244 <- get
xx367_245 <- StateT derivsChars
case xx367_245 of
'o' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'o'" "not match pattern: " "" d368_244 ["derivsChars"])
let 'o' = xx367_245
return ()
d370_246 <- get
xx369_247 <- StateT derivsChars
case xx369_247 of
'n' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'n'" "not match pattern: " "" d370_246 ["derivsChars"])
let 'n' = xx369_247
return ()
d372_248 <- get
xx371_249 <- StateT derivsChars
case xx371_249 of
'|' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'|'" "not match pattern: " "" d372_248 ["derivsChars"])
let '|' = xx371_249
return ()
d374_250 <- get
xx373_251 <- StateT derivsChars
case xx373_251 of
'\n' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\n'" "not match pattern: " "" d374_250 ["derivsChars"])
let '\n' = xx373_251
return ()
return ()]
peg21_88 = foldl1 mplus [do _ <- StateT spaces
return ()
s <- StateT sourceType
p <- StateT peg_
return (mkTTPeg s p),
do p <- StateT peg_
return (mkTTPeg tString p)]
sourceType22_89 = foldl1 mplus [do d384_252 <- get
xx383_253 <- StateT varToken
case xx383_253 of
"source" -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "\"source\"" "not match pattern: " "" d384_252 ["varToken"])
let "source" = xx383_253
return ()
d386_254 <- get
xx385_255 <- StateT derivsChars
case xx385_255 of
':' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "':'" "not match pattern: " "" d386_254 ["derivsChars"])
let ':' = xx385_255
return ()
_ <- StateT spaces
return ()
v <- StateT typToken
return v]
peg_23_90 = foldl1 mplus [do _ <- StateT spaces
return ()
d <- StateT definition
p <- StateT peg_
return (cons d p),
return emp]
definition24_91 = foldl1 mplus [do v <- StateT variable
_ <- StateT spaces
return ()
d402_256 <- get
xx401_257 <- StateT derivsChars
case xx401_257 of
':' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "':'" "not match pattern: " "" d402_256 ["derivsChars"])
let ':' = xx401_257
return ()
d404_258 <- get
xx403_259 <- StateT derivsChars
case xx403_259 of
':' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "':'" "not match pattern: " "" d404_258 ["derivsChars"])
let ':' = xx403_259
return ()
_ <- StateT spaces
return ()
t <- StateT hsTypeArr
_ <- StateT spaces
return ()
d412_260 <- get
xx411_261 <- StateT derivsChars
case xx411_261 of
'=' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'='" "not match pattern: " "" d412_260 ["derivsChars"])
let '=' = xx411_261
return ()
_ <- StateT spaces
return ()
sel <- StateT selection
_ <- StateT spaces
return ()
d420_262 <- get
xx419_263 <- StateT derivsChars
case xx419_263 of
';' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "';'" "not match pattern: " "" d420_262 ["derivsChars"])
let ';' = xx419_263
return ()
return (mkDef v t sel)]
selection25_92 = foldl1 mplus [do ex <- StateT expressionHs
_ <- StateT spaces
return ()
d426_264 <- get
xx425_265 <- StateT derivsChars
case xx425_265 of
'/' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'/'" "not match pattern: " "" d426_264 ["derivsChars"])
let '/' = xx425_265
return ()
_ <- StateT spaces
return ()
sel <- StateT selection
return (cons ex sel),
do ex <- StateT expressionHs
return (cons ex emp)]
expressionHs26_93 = foldl1 mplus [do e <- StateT expression
_ <- StateT spaces
return ()
d438_266 <- get
xx437_267 <- StateT derivsChars
case xx437_267 of
'{' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'{'" "not match pattern: " "" d438_266 ["derivsChars"])
let '{' = xx437_267
return ()
_ <- StateT spaces
return ()
h <- StateT hsExpLam
_ <- StateT spaces
return ()
d446_268 <- get
xx445_269 <- StateT derivsChars
case xx445_269 of
'}' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'}'" "not match pattern: " "" d446_268 ["derivsChars"])
let '}' = xx445_269
return ()
return (mkExpressionHs e h)]
expression27_94 = foldl1 mplus [do l <- StateT nameLeaf_
_ <- StateT spaces
return ()
e <- StateT expression
return (cons l e),
return emp]
nameLeaf_28_95 = foldl1 mplus [do d454_270 <- get
xx453_271 <- StateT derivsChars
case xx453_271 of
'!' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'!'" "not match pattern: " "" d454_270 ["derivsChars"])
let '!' = xx453_271
return ()
nl <- StateT nameLeafNoCom
_ <- StateT spaces
return ()
com <- optional3_272 (StateT comForErr)
return (NotAfter nl $ maybe "" id com),
do d462_273 <- get
xx461_274 <- StateT derivsChars
let c = xx461_274
unless (isAmp c) (gets derivsPosition >>= (throwError . ParseError "isAmp c" "not match: " "" d462_273 ["derivsChars"]))
nl <- StateT nameLeaf
return (After nl),
do nl <- StateT nameLeaf
return (Here nl)]
nameLeaf29_96 = foldl1 mplus [do n <- StateT pat1
_ <- StateT spaces
return ()
com <- optional3_272 (StateT comForErr)
d474_275 <- get
xx473_276 <- StateT derivsChars
case xx473_276 of
':' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "':'" "not match pattern: " "" d474_275 ["derivsChars"])
let ':' = xx473_276
return ()
(rf, p) <- StateT leaf
return (NameLeaf (n, maybe "" id com) rf p),
do n <- StateT pat1
_ <- StateT spaces
return ()
com <- optional3_272 (StateT comForErr)
return (NameLeaf (n,
maybe "" id com) FromToken Nothing)]
nameLeafNoCom30_97 = foldl1 mplus [do n <- StateT pat1
_ <- StateT spaces
return ()
com <- optional3_272 (StateT comForErr)
d490_277 <- get
xx489_278 <- StateT derivsChars
case xx489_278 of
':' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "':'" "not match pattern: " "" d490_277 ["derivsChars"])
let ':' = xx489_278
return ()
(rf, p) <- StateT leaf
return (NameLeaf (n, maybe "" id com) rf p),
do n <- StateT pat1
_ <- StateT spaces
return ()
return (NameLeaf (n, "") FromToken Nothing)]
comForErr31_98 = foldl1 mplus [do d498_279 <- get
xx497_280 <- StateT derivsChars
case xx497_280 of
'{' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'{'" "not match pattern: " "" d498_279 ["derivsChars"])
let '{' = xx497_280
return ()
d500_281 <- get
xx499_282 <- StateT derivsChars
case xx499_282 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d500_281 ["derivsChars"])
let '-' = xx499_282
return ()
d502_283 <- get
xx501_284 <- StateT derivsChars
case xx501_284 of
'#' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'#'" "not match pattern: " "" d502_283 ["derivsChars"])
let '#' = xx501_284
return ()
_ <- StateT spaces
return ()
d506_285 <- get
xx505_286 <- StateT derivsChars
case xx505_286 of
'"' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\"'" "not match pattern: " "" d506_285 ["derivsChars"])
let '"' = xx505_286
return ()
s <- StateT stringLit
d510_287 <- get
xx509_288 <- StateT derivsChars
case xx509_288 of
'"' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\"'" "not match pattern: " "" d510_287 ["derivsChars"])
let '"' = xx509_288
return ()
_ <- StateT spaces
return ()
d514_289 <- get
xx513_290 <- StateT derivsChars
case xx513_290 of
'#' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'#'" "not match pattern: " "" d514_289 ["derivsChars"])
let '#' = xx513_290
return ()
d516_291 <- get
xx515_292 <- StateT derivsChars
case xx515_292 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d516_291 ["derivsChars"])
let '-' = xx515_292
return ()
d518_293 <- get
xx517_294 <- StateT derivsChars
case xx517_294 of
'}' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'}'" "not match pattern: " "" d518_293 ["derivsChars"])
let '}' = xx517_294
return ()
_ <- StateT spaces
return ()
return s]
leaf32_99 = foldl1 mplus [do rf <- StateT readFromLs
t <- StateT test
return (rf, Just t),
do rf <- StateT readFromLs
return (rf, Nothing),
do t <- StateT test
return (FromToken, Just t)]
patOp33_100 = foldl1 mplus [do p <- StateT pat
o <- StateT opConName
po <- StateT patOp
return (uInfixP p o po),
do p <- StateT pat
_ <- StateT spaces
return ()
d540_295 <- get
xx539_296 <- StateT derivsChars
let q = xx539_296
unless (isBQ q) (gets derivsPosition >>= (throwError . ParseError "isBQ q" "not match: " "" d540_295 ["derivsChars"]))
t <- StateT typ
d544_297 <- get
xx543_298 <- StateT derivsChars
let q_ = xx543_298
unless (isBQ q_) (gets derivsPosition >>= (throwError . ParseError "isBQ q_" "not match: " "" d544_297 ["derivsChars"]))
_ <- StateT spaces
return ()
po <- StateT patOp
return (uInfixP p (mkName t) po),
do p <- StateT pat
return p]
pat34_101 = foldl1 mplus [do t <- StateT typ
_ <- StateT spaces
return ()
ps <- StateT pats
return (conToPatQ t ps),
do d558_299 <- get
xx557_300 <- StateT derivsChars
case xx557_300 of
'(' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'('" "not match pattern: " "" d558_299 ["derivsChars"])
let '(' = xx557_300
return ()
o <- StateT opConName
d562_301 <- get
xx561_302 <- StateT derivsChars
case xx561_302 of
')' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "')'" "not match pattern: " "" d562_301 ["derivsChars"])
let ')' = xx561_302
return ()
_ <- StateT spaces
return ()
ps <- StateT pats
return (conP o ps),
do p <- StateT pat1
return p]
pat135_102 = foldl1 mplus [do t <- StateT typ
return (conToPatQ t emp),
do d572_303 <- get
xx571_304 <- StateT variable
case xx571_304 of
"_" -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "\"_\"" "not match pattern: " "" d572_303 ["variable"])
let "_" = xx571_304
return ()
return wildP,
do n <- StateT variable
return (strToPatQ n),
do i <- StateT integer
return (litP (integerL i)),
do d578_305 <- get
xx577_306 <- StateT derivsChars
case xx577_306 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d578_305 ["derivsChars"])
let '-' = xx577_306
return ()
_ <- StateT spaces
return ()
i <- StateT integer
return (litP (integerL $ negate i)),
do d584_307 <- get
xx583_308 <- StateT derivsChars
case xx583_308 of
'\'' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\''" "not match pattern: " "" d584_307 ["derivsChars"])
let '\'' = xx583_308
return ()
c <- StateT charLit
d588_309 <- get
xx587_310 <- StateT derivsChars
case xx587_310 of
'\'' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\''" "not match pattern: " "" d588_309 ["derivsChars"])
let '\'' = xx587_310
return ()
return (charP c),
do d590_311 <- get
xx589_312 <- StateT derivsChars
case xx589_312 of
'"' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\"'" "not match pattern: " "" d590_311 ["derivsChars"])
let '"' = xx589_312
return ()
s <- StateT stringLit
d594_313 <- get
xx593_314 <- StateT derivsChars
case xx593_314 of
'"' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\"'" "not match pattern: " "" d594_313 ["derivsChars"])
let '"' = xx593_314
return ()
return (stringP s),
do d596_315 <- get
xx595_316 <- StateT derivsChars
case xx595_316 of
'(' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'('" "not match pattern: " "" d596_315 ["derivsChars"])
let '(' = xx595_316
return ()
p <- StateT patList
d600_317 <- get
xx599_318 <- StateT derivsChars
case xx599_318 of
')' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "')'" "not match pattern: " "" d600_317 ["derivsChars"])
let ')' = xx599_318
return ()
return (tupP p),
do d602_319 <- get
xx601_320 <- StateT derivsChars
case xx601_320 of
'[' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'['" "not match pattern: " "" d602_319 ["derivsChars"])
let '[' = xx601_320
return ()
p <- StateT patList
d606_321 <- get
xx605_322 <- StateT derivsChars
case xx605_322 of
']' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "']'" "not match pattern: " "" d606_321 ["derivsChars"])
let ']' = xx605_322
return ()
return (listP p)]
patList36_103 = foldl1 mplus [do p <- StateT patOp
_ <- StateT spaces
return ()
d612_323 <- get
xx611_324 <- StateT derivsChars
case xx611_324 of
',' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "','" "not match pattern: " "" d612_323 ["derivsChars"])
let ',' = xx611_324
return ()
_ <- StateT spaces
return ()
ps <- StateT patList
return (p : ps),
do p <- StateT patOp
return [p],
return []]
opConName37_104 = foldl1 mplus [do d620_325 <- get
xx619_326 <- StateT derivsChars
case xx619_326 of
':' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "':'" "not match pattern: " "" d620_325 ["derivsChars"])
let ':' = xx619_326
return ()
ot <- StateT opTail
return (mkName $ colon : ot)]
charLit38_105 = foldl1 mplus [do d624_327 <- get
xx623_328 <- StateT derivsChars
let c = xx623_328
unless (isAlphaNumOt c) (gets derivsPosition >>= (throwError . ParseError "isAlphaNumOt c" "not match: " "" d624_327 ["derivsChars"]))
return c,
do d626_329 <- get
xx625_330 <- StateT derivsChars
case xx625_330 of
'\\' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\\\'" "not match pattern: " "" d626_329 ["derivsChars"])
let '\\' = xx625_330
return ()
c <- StateT escapeC
return c]
stringLit39_106 = foldl1 mplus [do d630_331 <- get
xx629_332 <- StateT derivsChars
let c = xx629_332
unless (isStrLitC c) (gets derivsPosition >>= (throwError . ParseError "isStrLitC c" "not match: " "" d630_331 ["derivsChars"]))
s <- StateT stringLit
return (cons c s),
do d634_333 <- get
xx633_334 <- StateT derivsChars
case xx633_334 of
'\\' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\\\'" "not match pattern: " "" d634_333 ["derivsChars"])
let '\\' = xx633_334
return ()
c <- StateT escapeC
s <- StateT stringLit
return (c : s),
return emp]
escapeC40_107 = foldl1 mplus [do d640_335 <- get
xx639_336 <- StateT derivsChars
case xx639_336 of
'"' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\"'" "not match pattern: " "" d640_335 ["derivsChars"])
let '"' = xx639_336
return ()
return '"',
do d642_337 <- get
xx641_338 <- StateT derivsChars
case xx641_338 of
'\'' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\''" "not match pattern: " "" d642_337 ["derivsChars"])
let '\'' = xx641_338
return ()
return '\'',
do d644_339 <- get
xx643_340 <- StateT derivsChars
case xx643_340 of
'\\' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\\\'" "not match pattern: " "" d644_339 ["derivsChars"])
let '\\' = xx643_340
return ()
return '\\',
do d646_341 <- get
xx645_342 <- StateT derivsChars
case xx645_342 of
'n' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'n'" "not match pattern: " "" d646_341 ["derivsChars"])
let 'n' = xx645_342
return ()
return '\n',
do d648_343 <- get
xx647_344 <- StateT derivsChars
case xx647_344 of
't' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'t'" "not match pattern: " "" d648_343 ["derivsChars"])
let 't' = xx647_344
return ()
return tab]
pats41_108 = foldl1 mplus [do p <- StateT pat
_ <- StateT spaces
return ()
ps <- StateT pats
return (cons p ps),
return emp]
readFromLs42_109 = foldl1 mplus [do rf <- StateT readFrom
d658_345 <- get
xx657_346 <- StateT derivsChars
case xx657_346 of
'*' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'*'" "not match pattern: " "" d658_345 ["derivsChars"])
let '*' = xx657_346
return ()
return (FromList rf),
do rf <- StateT readFrom
d662_347 <- get
xx661_348 <- StateT derivsChars
case xx661_348 of
'+' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'+'" "not match pattern: " "" d662_347 ["derivsChars"])
let '+' = xx661_348
return ()
return (FromList1 rf),
do rf <- StateT readFrom
d666_349 <- get
xx665_350 <- StateT derivsChars
case xx665_350 of
'?' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'?'" "not match pattern: " "" d666_349 ["derivsChars"])
let '?' = xx665_350
return ()
return (FromOptional rf),
do rf <- StateT readFrom
return rf]
readFrom43_110 = foldl1 mplus [do v <- StateT variable
return (FromVariable v),
do d672_351 <- get
xx671_352 <- StateT derivsChars
case xx671_352 of
'(' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'('" "not match pattern: " "" d672_351 ["derivsChars"])
let '(' = xx671_352
return ()
s <- StateT selection
d676_353 <- get
xx675_354 <- StateT derivsChars
case xx675_354 of
')' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "')'" "not match pattern: " "" d676_353 ["derivsChars"])
let ')' = xx675_354
return ()
return (FromSelection s)]
test44_111 = foldl1 mplus [do d678_355 <- get
xx677_356 <- StateT derivsChars
case xx677_356 of
'[' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'['" "not match pattern: " "" d678_355 ["derivsChars"])
let '[' = xx677_356
return ()
h <- StateT hsExpLam
_ <- StateT spaces
return ()
com <- optional3_272 (StateT comForErr)
d686_357 <- get
xx685_358 <- StateT derivsChars
case xx685_358 of
']' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "']'" "not match pattern: " "" d686_357 ["derivsChars"])
let ']' = xx685_358
return ()
return (h, maybe "" id com)]
hsExpLam45_112 = foldl1 mplus [do d688_359 <- get
xx687_360 <- StateT derivsChars
case xx687_360 of
'\\' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\\\'" "not match pattern: " "" d688_359 ["derivsChars"])
let '\\' = xx687_360
return ()
_ <- StateT spaces
return ()
ps <- StateT pats
_ <- StateT spaces
return ()
d696_361 <- get
xx695_362 <- StateT derivsChars
case xx695_362 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d696_361 ["derivsChars"])
let '-' = xx695_362
return ()
d698_363 <- get
xx697_364 <- StateT derivsChars
let c = xx697_364
unless (isGt c) (gets derivsPosition >>= (throwError . ParseError "isGt c" "not match: " "" d698_363 ["derivsChars"]))
_ <- StateT spaces
return ()
e <- StateT hsExpTyp
return (lamE ps e),
do e <- StateT hsExpTyp
return e]
hsExpTyp46_113 = foldl1 mplus [do eo <- StateT hsExpOp
d708_365 <- get
xx707_366 <- StateT derivsChars
case xx707_366 of
':' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "':'" "not match pattern: " "" d708_365 ["derivsChars"])
let ':' = xx707_366
return ()
d710_367 <- get
xx709_368 <- StateT derivsChars
case xx709_368 of
':' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "':'" "not match pattern: " "" d710_367 ["derivsChars"])
let ':' = xx709_368
return ()
_ <- StateT spaces
return ()
t <- StateT hsTypeArr
return (sigE eo t),
do eo <- StateT hsExpOp
return eo]
hsExpOp47_114 = foldl1 mplus [do l <- StateT hsExp
_ <- StateT spaces
return ()
o <- StateT hsOp
_ <- StateT spaces
return ()
r <- StateT hsExpOp
return (uInfixE (getEx l) o r),
do e <- StateT hsExp
return (getEx e)]
hsOp48_115 = foldl1 mplus [do d730_369 <- get
xx729_370 <- StateT derivsChars
let c = xx729_370
unless (isOpHeadChar c) (gets derivsPosition >>= (throwError . ParseError "isOpHeadChar c" "not match: " "" d730_369 ["derivsChars"]))
o <- StateT opTail
return (varE (mkName (cons c o))),
do d734_371 <- get
xx733_372 <- StateT derivsChars
case xx733_372 of
':' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "':'" "not match pattern: " "" d734_371 ["derivsChars"])
let ':' = xx733_372
return ()
ddd735_373 <- get
do err <- ((do d737_374 <- get
xx736_375 <- StateT derivsChars
case xx736_375 of
':' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "':'" "not match pattern: " "" d737_374 ["derivsChars"])
let ':' = xx736_375
return ()) >> return False) `catchError` const (return True)
unless err (gets derivsPosition >>= (throwError . ParseError ('!' : "':':") "not match: " "" ddd735_373 ["derivsChars"]))
put ddd735_373
o <- StateT opTail
return (conE (mkName (':' : o))),
do d741_376 <- get
xx740_377 <- StateT derivsChars
let c = xx740_377
unless (isBQ c) (gets derivsPosition >>= (throwError . ParseError "isBQ c" "not match: " "" d741_376 ["derivsChars"]))
v <- StateT variable
d745_378 <- get
xx744_379 <- StateT derivsChars
let c_ = xx744_379
unless (isBQ c_) (gets derivsPosition >>= (throwError . ParseError "isBQ c_" "not match: " "" d745_378 ["derivsChars"]))
return (varE (mkName v)),
do d747_380 <- get
xx746_381 <- StateT derivsChars
let c = xx746_381
unless (isBQ c) (gets derivsPosition >>= (throwError . ParseError "isBQ c" "not match: " "" d747_380 ["derivsChars"]))
t <- StateT typ
d751_382 <- get
xx750_383 <- StateT derivsChars
let c_ = xx750_383
unless (isBQ c_) (gets derivsPosition >>= (throwError . ParseError "isBQ c_" "not match: " "" d751_382 ["derivsChars"]))
return (conE (mkName t))]
opTail49_116 = foldl1 mplus [do d753_384 <- get
xx752_385 <- StateT derivsChars
let c = xx752_385
unless (isOpTailChar c) (gets derivsPosition >>= (throwError . ParseError "isOpTailChar c" "not match: " "" d753_384 ["derivsChars"]))
s <- StateT opTail
return (cons c s),
return emp]
hsExp50_117 = foldl1 mplus [do e <- StateT hsExp1
_ <- StateT spaces
return ()
h <- StateT hsExp
return (applyExR e h),
do e <- StateT hsExp1
return (toEx e)]
hsExp151_118 = foldl1 mplus [do d765_386 <- get
xx764_387 <- StateT derivsChars
case xx764_387 of
'(' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'('" "not match pattern: " "" d765_386 ["derivsChars"])
let '(' = xx764_387
return ()
l <- optional3_272 (foldl1 mplus [do e <- StateT hsExpTyp
return e])
_ <- StateT spaces
return ()
o <- StateT hsOp
_ <- StateT spaces
return ()
r <- optional3_272 (foldl1 mplus [do e <- StateT hsExpTyp
return e])
d781_388 <- get
xx780_389 <- StateT derivsChars
case xx780_389 of
')' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "')'" "not match pattern: " "" d781_388 ["derivsChars"])
let ')' = xx780_389
return ()
return (infixE l o r),
do d783_390 <- get
xx782_391 <- StateT derivsChars
case xx782_391 of
'(' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'('" "not match pattern: " "" d783_390 ["derivsChars"])
let '(' = xx782_391
return ()
et <- StateT hsExpTpl
d787_392 <- get
xx786_393 <- StateT derivsChars
case xx786_393 of
')' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "')'" "not match pattern: " "" d787_392 ["derivsChars"])
let ')' = xx786_393
return ()
return (tupE et),
do d789_394 <- get
xx788_395 <- StateT derivsChars
case xx788_395 of
'[' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'['" "not match pattern: " "" d789_394 ["derivsChars"])
let '[' = xx788_395
return ()
et <- StateT hsExpTpl
d793_396 <- get
xx792_397 <- StateT derivsChars
case xx792_397 of
']' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "']'" "not match pattern: " "" d793_396 ["derivsChars"])
let ']' = xx792_397
return ()
return (listE et),
do v <- StateT variable
return (varE (mkName v)),
do t <- StateT typ
return (conE (mkName t)),
do i <- StateT integer
_ <- StateT spaces
return ()
return (litE (integerL i)),
do d803_398 <- get
xx802_399 <- StateT derivsChars
case xx802_399 of
'\'' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\''" "not match pattern: " "" d803_398 ["derivsChars"])
let '\'' = xx802_399
return ()
c <- StateT charLit
d807_400 <- get
xx806_401 <- StateT derivsChars
case xx806_401 of
'\'' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\''" "not match pattern: " "" d807_400 ["derivsChars"])
let '\'' = xx806_401
return ()
return (litE (charL c)),
do d809_402 <- get
xx808_403 <- StateT derivsChars
case xx808_403 of
'"' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\"'" "not match pattern: " "" d809_402 ["derivsChars"])
let '"' = xx808_403
return ()
s <- StateT stringLit
d813_404 <- get
xx812_405 <- StateT derivsChars
case xx812_405 of
'"' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\"'" "not match pattern: " "" d813_404 ["derivsChars"])
let '"' = xx812_405
return ()
return (litE (stringL s)),
do d815_406 <- get
xx814_407 <- StateT derivsChars
case xx814_407 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d815_406 ["derivsChars"])
let '-' = xx814_407
return ()
_ <- StateT spaces
return ()
e <- StateT hsExp1
return (appE (varE $ mkName "negate") e)]
hsExpTpl52_119 = foldl1 mplus [do e <- StateT hsExpLam
_ <- StateT spaces
return ()
d825_408 <- get
xx824_409 <- StateT derivsChars
let c = xx824_409
unless (isComma c) (gets derivsPosition >>= (throwError . ParseError "isComma c" "not match: " "" d825_408 ["derivsChars"]))
_ <- StateT spaces
return ()
et <- StateT hsExpTpl
return (cons e et),
do e <- StateT hsExpLam
return (cons e emp),
return emp]
hsTypeArr53_120 = foldl1 mplus [do l <- StateT hsType
d835_410 <- get
xx834_411 <- StateT derivsChars
case xx834_411 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d835_410 ["derivsChars"])
let '-' = xx834_411
return ()
d837_412 <- get
xx836_413 <- StateT derivsChars
let c = xx836_413
unless (isGt c) (gets derivsPosition >>= (throwError . ParseError "isGt c" "not match: " "" d837_412 ["derivsChars"]))
_ <- StateT spaces
return ()
r <- StateT hsTypeArr
return (appT (appT arrowT (getTyp l)) r),
do t <- StateT hsType
return (getTyp t)]
hsType54_121 = foldl1 mplus [do t <- StateT hsType1
ts <- StateT hsType
return (applyTyp (toTyp t) ts),
do t <- StateT hsType1
return (toTyp t)]
hsType155_122 = foldl1 mplus [do d851_414 <- get
xx850_415 <- StateT derivsChars
case xx850_415 of
'[' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'['" "not match pattern: " "" d851_414 ["derivsChars"])
let '[' = xx850_415
return ()
d853_416 <- get
xx852_417 <- StateT derivsChars
case xx852_417 of
']' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "']'" "not match pattern: " "" d853_416 ["derivsChars"])
let ']' = xx852_417
return ()
_ <- StateT spaces
return ()
return listT,
do d857_418 <- get
xx856_419 <- StateT derivsChars
case xx856_419 of
'[' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'['" "not match pattern: " "" d857_418 ["derivsChars"])
let '[' = xx856_419
return ()
t <- StateT hsTypeArr
d861_420 <- get
xx860_421 <- StateT derivsChars
case xx860_421 of
']' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "']'" "not match pattern: " "" d861_420 ["derivsChars"])
let ']' = xx860_421
return ()
_ <- StateT spaces
return ()
return (appT listT t),
do d865_422 <- get
xx864_423 <- StateT derivsChars
case xx864_423 of
'(' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'('" "not match pattern: " "" d865_422 ["derivsChars"])
let '(' = xx864_423
return ()
_ <- StateT spaces
return ()
tt <- StateT hsTypeTpl
d871_424 <- get
xx870_425 <- StateT derivsChars
case xx870_425 of
')' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "')'" "not match pattern: " "" d871_424 ["derivsChars"])
let ')' = xx870_425
return ()
return (tupT tt),
do t <- StateT typToken
return (conT (mkName t)),
do d875_426 <- get
xx874_427 <- StateT derivsChars
case xx874_427 of
'(' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'('" "not match pattern: " "" d875_426 ["derivsChars"])
let '(' = xx874_427
return ()
d877_428 <- get
xx876_429 <- StateT derivsChars
case xx876_429 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d877_428 ["derivsChars"])
let '-' = xx876_429
return ()
d879_430 <- get
xx878_431 <- StateT derivsChars
let c = xx878_431
unless (isGt c) (gets derivsPosition >>= (throwError . ParseError "isGt c" "not match: " "" d879_430 ["derivsChars"]))
d881_432 <- get
xx880_433 <- StateT derivsChars
case xx880_433 of
')' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "')'" "not match pattern: " "" d881_432 ["derivsChars"])
let ')' = xx880_433
return ()
_ <- StateT spaces
return ()
return arrowT]
hsTypeTpl56_123 = foldl1 mplus [do t <- StateT hsTypeArr
d887_434 <- get
xx886_435 <- StateT derivsChars
let c = xx886_435
unless (isComma c) (gets derivsPosition >>= (throwError . ParseError "isComma c" "not match: " "" d887_434 ["derivsChars"]))
_ <- StateT spaces
return ()
tt <- StateT hsTypeTpl
return (cons t tt),
do t <- StateT hsTypeArr
return (cons t emp),
return emp]
typ57_124 = foldl1 mplus [do u <- StateT upper
t <- StateT tvtail
return (cons u t)]
variable58_125 = foldl1 mplus [do l <- StateT lower
t <- StateT tvtail
return (cons l t)]
tvtail59_126 = foldl1 mplus [do a <- StateT alpha
t <- StateT tvtail
return (cons a t),
return emp]
integer60_127 = foldl1 mplus [do dh <- StateT digit
ds <- list1_436 (foldl1 mplus [do d <- StateT digit
return d])
return (read (cons dh ds))]
alpha61_128 = foldl1 mplus [do u <- StateT upper
return u,
do l <- StateT lower
return l,
do d <- StateT digit
return d,
do d919_437 <- get
xx918_438 <- StateT derivsChars
case xx918_438 of
'\'' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\''" "not match pattern: " "" d919_437 ["derivsChars"])
let '\'' = xx918_438
return ()
return '\'']
upper62_129 = foldl1 mplus [do d921_439 <- get
xx920_440 <- StateT derivsChars
let u = xx920_440
unless (isUpper u) (gets derivsPosition >>= (throwError . ParseError "isUpper u" "not match: " "" d921_439 ["derivsChars"]))
return u]
lower63_130 = foldl1 mplus [do d923_441 <- get
xx922_442 <- StateT derivsChars
let l = xx922_442
unless (isLowerU l) (gets derivsPosition >>= (throwError . ParseError "isLowerU l" "not match: " "" d923_441 ["derivsChars"]))
return l]
digit64_131 = foldl1 mplus [do d925_443 <- get
xx924_444 <- StateT derivsChars
let d = xx924_444
unless (isDigit d) (gets derivsPosition >>= (throwError . ParseError "isDigit d" "not match: " "" d925_443 ["derivsChars"]))
return d]
spaces65_132 = foldl1 mplus [do _ <- StateT space
return ()
_ <- StateT spaces
return ()
return (),
return ()]
space66_133 = foldl1 mplus [do d931_445 <- get
xx930_446 <- StateT derivsChars
let s = xx930_446
unless (isSpace s) (gets derivsPosition >>= (throwError . ParseError "isSpace s" "not match: " "" d931_445 ["derivsChars"]))
return (),
do d933_447 <- get
xx932_448 <- StateT derivsChars
case xx932_448 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d933_447 ["derivsChars"])
let '-' = xx932_448
return ()
d935_449 <- get
xx934_450 <- StateT derivsChars
case xx934_450 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d935_449 ["derivsChars"])
let '-' = xx934_450
return ()
_ <- StateT notNLString
return ()
_ <- StateT newLine
return ()
return (),
do _ <- StateT comment
return ()
return ()]
notNLString67_134 = foldl1 mplus [do ddd942_451 <- get
do err <- ((do _ <- StateT newLine
return ()) >> return False) `catchError` const (return True)
unless err (gets derivsPosition >>= (throwError . ParseError ('!' : "_:newLine") "not match: " "" ddd942_451 ["newLine"]))
put ddd942_451
c <- StateT derivsChars
s <- StateT notNLString
return (cons c s),
return emp]
newLine68_135 = foldl1 mplus [do d950_452 <- get
xx949_453 <- StateT derivsChars
case xx949_453 of
'\n' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'\\n'" "not match pattern: " "" d950_452 ["derivsChars"])
let '\n' = xx949_453
return ()
return ()]
comment69_136 = foldl1 mplus [do d952_454 <- get
xx951_455 <- StateT derivsChars
case xx951_455 of
'{' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'{'" "not match pattern: " "" d952_454 ["derivsChars"])
let '{' = xx951_455
return ()
d954_456 <- get
xx953_457 <- StateT derivsChars
case xx953_457 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d954_456 ["derivsChars"])
let '-' = xx953_457
return ()
ddd955_458 <- get
do err <- ((do d957_459 <- get
xx956_460 <- StateT derivsChars
case xx956_460 of
'#' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'#'" "not match pattern: " "" d957_459 ["derivsChars"])
let '#' = xx956_460
return ()) >> return False) `catchError` const (return True)
unless err (gets derivsPosition >>= (throwError . ParseError ('!' : "'#':") "not match: " "" ddd955_458 ["derivsChars"]))
put ddd955_458
_ <- StateT comments
return ()
_ <- StateT comEnd
return ()
return ()]
comments70_137 = foldl1 mplus [do _ <- StateT notComStr
return ()
_ <- StateT comment
return ()
_ <- StateT comments
return ()
return (),
do _ <- StateT notComStr
return ()
return ()]
notComStr71_138 = foldl1 mplus [do ddd970_461 <- get
do err <- ((do _ <- StateT comment
return ()) >> return False) `catchError` const (return True)
unless err (gets derivsPosition >>= (throwError . ParseError ('!' : "_:comment") "not match: " "" ddd970_461 ["comment"]))
put ddd970_461
ddd973_462 <- get
do err <- ((do _ <- StateT comEnd
return ()) >> return False) `catchError` const (return True)
unless err (gets derivsPosition >>= (throwError . ParseError ('!' : "_:comEnd") "not match: " "" ddd973_462 ["comEnd"]))
put ddd973_462
_ <- StateT derivsChars
return ()
_ <- StateT notComStr
return ()
return (),
return ()]
comEnd72_139 = foldl1 mplus [do d981_463 <- get
xx980_464 <- StateT derivsChars
case xx980_464 of
'-' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'-'" "not match pattern: " "" d981_463 ["derivsChars"])
let '-' = xx980_464
return ()
d983_465 <- get
xx982_466 <- StateT derivsChars
case xx982_466 of
'}' -> return ()
_ -> gets derivsPosition >>= (throwError . ParseError "'}'" "not match pattern: " "" d983_465 ["derivsChars"])
let '}' = xx982_466
return ()
return ()]
list1_436 :: forall m a . (MonadPlus m, Applicative m) =>
m a -> m ([a])
list12_467 :: forall m a . (MonadPlus m, Applicative m) =>
m a -> m ([a])
list1_436 p = list12_467 p `mplus` return []
list12_467 p = ((:) <$> p) <*> list1_436 p
optional3_272 :: forall m a . (MonadPlus m, Applicative m) =>
m a -> m (Maybe a)
optional3_272 p = (Just <$> p) `mplus` return Nothing