h&      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefgCC0-1.0mordae@anilinux.orgunstablenon-portable (ghc) Safe-Inferred,  snackFails if the value returned by the parser does not conform to the predicate. Generalized form of .Example: pInput = takeWhile isLetter  (odd . length) snack-Tries various parsers, one by one. Alias for h.Example: pExpression = choice [ pConstant , pVariable , pBinaryOperation , pFunctionApplication ] snackReplicates the parser given number of times, collecting the results in a list. Fails if any instance of the parser fails.Example: pFourWords = (:) <$> word <*> count 3 (blank *> word) where word = takeWhile1 isLetter blank = takeWhile1 isSpace snackCaptures first parser as Left or the second as Right.snack Shortcut for  with a default value.Example: data Contact = Contact { contactName :: Text , contactEmail :: Maybe Text } pContact = Contact <$> pFullName <*> option pEmail snackLike ", but requires at least one match.snackLike ;, but stops once the second parser matches the input ahead.Example: pBodyLines = pLine  pEnd where pLine = takeTill (== 'n') pEnd = string "n.n" snack Similar to 3, but interleaves the first parser with the second.Example: pLines = pLine  char 'n' snackLike ", but requires at least one match.snack!Wraps the parser from both sides.Example: +pToken = takeWhile1 (inClass "A-Za-z0-9_")  takeWhile isSpace snack4Tests whether the character lies within given range. Definition: *inRange lo hi = c -> (lo <= c && c <= hi) snack Negation of . Definition: -notInRange lo hi = c -> (c <= lo || hi <= c) CC0-1.0mordae@anilinux.orgunstablenon-portable (ghc) Safe-Inferred, MsnackLike L+, but also returns the final scanner state.2 HIJKLMNOPQRSTUVWXYZ[\]^_`a2 HVYZIWX[J\KLMNOPQ]^_`aRSTUCC0-1.0mordae@anilinux.orgunstablenon-portable (ghc) Safe-Inferred,3snack+Accepts a single, matching ASCII character.4snack,Accepts a single, differing ASCII character.5snackAccepts a single character.6snack2Accepts a single character matching the predicate.7snack3Accepts a single ASCII white space character. See 9 for details.8snack4Accepts multiple ASCII white space characters. See 9 for details.9snackTrue for any of the #[' ', '\t', '\n', '\v', '\f', '\r'] characters.Please note that Data.Text.Parser re-exports , that considers more unicode codepoints, making it significantly slower.:snack"Peeks ahead, but does not consume.Be careful, peeking behind end of the input fails. You might want to check using , beforehand.;snackAccepts a matching string. Matching is performed in a case-insensitive manner under ASCII.isnack"Perform simple ASCII case folding.<snackAccepts given number of characters. Fails when not enough characters are available.=snackScans ahead statefully and then accepts whatever bytes the scanner liked. Scanner returns j& to mark end of the acceptable extent.>snackLike =+, but also returns the final scanner state.?snackEfficiently consume as long as the input characters match the predicate. An inverse of A.@snackLike ?+, but requires at least a single character.AsnackEfficiently consume until a character matching the predicate is found. An inverse of ?.BsnackSame as A+, but requires at least a single character.CsnackAccepts optional '+' or '-'? character and then applies it to the following parser result.Dsnack1Accepts an integral number in the decimal format.EsnackAccepts an integral number in the hexadecimal format in either case. Does not look for 0x or similar prefixes.Fsnack/Accepts an integral number in the octal format.GsnackAccepts a fractional number as a decimal optinally followed by a colon and the fractional part. Does not support exponentiation.2 !)*+,3456789:;<=>?@ABCDEFG2 3456798:!;<=>?@ABCDEFG)*+,CC0-1.0mordae@anilinux.orgunstablenon-portable (ghc) Safe-Inferred,1snackDiscards the remaining input and returns just the parse result. You might want to combine it with + for the best effect.Example: )parseOnly (pContacts <* endOfInput) bstr snack Accepts a single, matching byte.snack!Accepts a single, differing byte.snackAccepts a single byte.snack-Accepts a single byte matching the predicate. snack"Peeks ahead, but does not consume.Be careful, peeking behind end of the input fails. You might want to check using , beforehand.!snackAccepts a matching string."snackAccepts given number of bytes. Fails when not enough bytes are available.#snackScans ahead statefully and then accepts whatever bytes the scanner liked. Scanner returns j& to mark end of the acceptable extent.$snackLike #+, but also returns the final scanner state.%snackEfficiently consume as long as the input bytes match the predicate. An inverse of '.&snackLike %&, but requires at least a single byte.'snackEfficiently consume until a byte matching the predicate is found. An inverse of %.(snackSame as '&, but requires at least a single byte.)snackMakes the parser not only return the result, but also the original matched extent.*snackAccept whatever input remains.+snack7Accepts end of input and fails if we are not there yet.,snack3Returns whether we are at the end of the input yet.'  !"#$%&'()*+,'  !"#$%&'()*+,       !"#$%&'()*+,-./0123456789:;<=>)?@AB+,-./01CDEFG%)+,-./012H45<?@=>ABCDEFG6789:;IJKLMsnack-0.1.0.0-inplaceData.Text.ParserData.ByteString.Parser.Char8Data.ByteString.ParserSnack.Combinatorsstring Data.CharisStringbase Control.MonadguardGHC.BasepureunlessControl.Applicativeoptional GHC.UnicodeisSpace Data.FunctorvoidmanyemptywhenParser runParserprovidedchoicecounteitherPoptionmany1manyTillsepBysepBy1wrapinRange notInRange parseOnlybytenotByteanyBytesatisfypeekBytetakescan runScanner takeWhile takeWhile1takeTill takeTill1matchtakeByteString endOfInputatEnd$fMonadFailParser$fMonadPlusParser $fMonadParser$fAlternativeParser$fApplicativeParser$fFunctorParsercharnotCharanyCharspace skipSpacepeekCharstringCIsigneddecimal hexadecimaloctal fractionaltakeText Data.Foldableasum toCaseFold GHC.MaybeNothing