úÎTîL¤R      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQNone &'DEKLOQV;U%Return a value, always succeedsMatch a specified characterMatch some textgImmediately consume and return the rest of the input equivalent to (many anyChar), but more efficient.!Match any character, fails on EOFFMatch first argument, then match the second, returning both in a tuple*Match a pair of lists and concatenate them RMatch first argument, then match the second, returning only the value on the left. x <<- y = x <> y ## fst SMatch first argument, then match the second, returning only the value on the right. x ->> y = x <> y ## snd wOrdered choice, try left argument, if it fails try the right one. This does not introduce any backtracking or penalty. JOrdered choice, try left argument, if it fails then return right argument. 4Map a parser through a function. a fancy version of R.2Parse left argument and return the right argument.$Succeeds when the argument does not.\Succeeds when the argument does, but consumes no input. Equivalant to p -> discard (peek p)DParse something and return it, but do not advance the input stream.0Succeed only if thing parsed passes a predicate.…Parse many of something. Behaves like * in regexes. This eats as much as it possibly can, if you want a minimal much rule, then use  which stops when a.uParse many of something via the minimal munch rule. behaves like *? in perl regexes. The final item is not consumed.6First matching parse wins, a simple iteration of (//).IGet current position in file as number of characters since the beginning. Equivalent to 3between open close thing = open ->> thing <<- close3Parse something if you can, else return first value option a p = p // unit a*Parse something if you can, discarding it. !option a p = discard p // unit ()#Throw away the result of something. discard p = p ->> unit ()am at the end of string."am at the beginning of the string.6Match one or more of something via maximal munch rule.#Match one of the set of characters.4Match any character other than the ones in the list. ,Fails, is identity of (//) and unit of (<>).!Run a PEG grammar. Takes the rank-2 argument in order to ensure a rule created in one PM session isn't returned and used in another PEG parser.SThere is no need for special error handling, as it can be trivially implemented via i -- parse complete file, returning 'Nothing' if parse fails fmap Just (myParser <<- eof) // unit Nothing^There is also no need for the parser to return its unused input, as that can be retrieved via . U-- Now this returns (a,String) where String is the unconsumed input. myParser <> rest"HCreate a new rule, which may be used recursively and caches its results.!This is intended to be use in an 'mdo' block. such as the following. ˙Uadditive = mdo additive <- newRule $ multitive <> char '+' ->> additive ## uncurry (+) // multitive multitive <- newRule $ primary <> char '*' ->> multitive ## uncurry (*) // primary primary <- newRule $ char '(' ->> additive <<- char ')' // decimal decimal <- newRule $ many1 (oneOf ['0' .. '9']) ## read return additiveOAll recursive calls must be bound via a rule. Left recursion should be avoided.#9always succeeds, returning true if it consumed something.$™Create a new regular expression matching parser. it returns something in a possibly failing monad to indicate an error in the regular expression itself.%@Show a representation of the parsed regex, mainly for debugging.&BMake a new regex but abort on an error in the regex string itself.BSTUVWXYZ[\]^_`abcdefghijklm  !"#$%&'"!   #$&%nopqrstuvwxyz{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–33 4 4 1 1 22NoneKū>Match a control character.?3Match a white-space character in the Latin-1 range.@0Match a lower-case alphabetic Unicode character.A?Match an upper-case or title-case alphabetic Unicode character.B5Match an alphabetic Unicode character. Equivalent to H.C7Match an alphabetic or numeric digit Unicode character.D$Match a printable Unicode character.EMatch an ASCII digit.FMatch an ASCII octal digit.G!Match an ASCII hexadecimal digit.H5Match an alphabetic Unicode character. Equivalent to B.IMatch a Unicode mark character.J"Match a Unicode numeric character.K&Match a Unicode punctuation character.L!Match a Unicode symbol character.M-Match a Unicode space or separator character.N-Match a character of the ASCII character set.O<Match a character of the ISO 8859-1 (Latin-1) character set.P!Match an ASCII upper-case letter.Q!Match an ASCII lower-case letter.>?@ABCDEFGHIJKLMNOPQ>?@ABCDEFGHIJKLMNOPQ—      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWUVXUVYUVZUV[UV\UV]UV^U_`U_aU_bU_cU_dU_eU_fU_fU_gUhiUhiUhjUklUVmUVnUVoUVpUVqUVrUVstuvwxyz{|}~€€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜˜™#frisby-0.2.2-23PtJqzU6S0GThmqh785c5Text.Parsers.FrisbyText.Parsers.Frisby.CharPPMunitchartextrestanyChar<><++><<-->>////>####> doesNotMatchmatchespeekonlyIfmany manyUntilchoicegetPosbetweenoptionoptionaldiscardeofbofmany1oneOfnoneOf parseFailurerunPegnewRuleisMatchnewRegex showRegexregex$fApplicativePM $fMonoidPE $fSemigroupPE$fAlternativePE$fApplicativePE $fFunctorPE$fFunctorResults $fEqToken $fOrdToken $fNumToken $fShowToken $fIxToken $fMonadPM $fMonadFixPM $fFunctorPM $fFunctorP$fApplicativeP$fAlternativeP $fSemigroupP $fMonoidP $fShowRegex $fEqRegex $fOrdRegexcontrolspacelowerupperalphaalphaNum printabledigitoctDigithexDigitlettermarknumber punctuationsymbol separatorasciilatin1 asciiUpper asciiLowerbaseGHC.Basefmap<$ Applicativepure<*>*>liftA2<*Control.Applicative WrappedMonad WrapMonad unwrapMonad WrappedArrow WrapArrow unwrapArrowZipList getZipListData.Functor.ConstConstgetConst Data.Functor<$>liftA3liftA<**> Alternativeempty<|>someRegex RegexCharsRegexAny RegexManyRegexCat regexWhatregexMinregexMax regexMunchResultsParsedNoParseDerivs derivChar derivIndex derivArray derivRestPECharAnyFailureNamedNotPMapSlashThenCatStar StarUntilStarMaxThenGetPosUnitWhenRestPeekfromPToken