This file is indexed.

/usr/share/doc/libghc-polyparse-doc/html/Text-ParserCombinators-Poly-Text.html is in libghc-polyparse-doc 1.12-3build2.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Text.ParserCombinators.Poly.Text</title><link href="ocean.css" rel="stylesheet" type="text/css" title="Ocean" /><script src="haddock-util.js" type="text/javascript"></script><script src="file:///usr/share/javascript/mathjax/MathJax.js" type="text/javascript"></script><script type="text/javascript">//<![CDATA[
window.onload = function () {pageLoad();setSynopsis("mini_Text-ParserCombinators-Poly-Text.html");};
//]]>
</script></head><body><div id="package-header"><ul class="links" id="page-menu"><li><a href="src/Text-ParserCombinators-Poly-Text.html">Source</a></li><li><a href="index.html">Contents</a></li><li><a href="doc-index.html">Index</a></li></ul><p class="caption">polyparse-1.12: A variety of alternative parser combinator libraries.</p></div><div id="content"><div id="module-header"><table class="info"><tr><th>Safe Haskell</th><td>Safe</td></tr><tr><th>Language</th><td>Haskell98</td></tr></table><p class="caption">Text.ParserCombinators.Poly.Text</p></div><div id="table-of-contents"><p class="caption">Contents</p><ul><li><a href="#g:1">The Parser datatype</a><ul><li><a href="#g:2">Basic parsers</a></li><li><a href="#g:3">Derived parsers (but implemented more efficiently)</a></li><li><a href="#g:4">Re-parsing</a></li></ul></li><li><a href="#g:5">Re-export all more general combinators</a></li></ul></div><div id="synopsis"><p id="control.syn" class="caption expander" onclick="toggleSection('syn')">Synopsis</p><ul id="section.syn" class="hide" onclick="toggleSection('syn')"><li class="src short"><span class="keyword">newtype</span> <a href="#t:Parser">Parser</a> a = <a href="#v:P">P</a> (<a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Result">Result</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> a)</li><li class="src short"><span class="keyword">data</span> <a href="#t:Result">Result</a> z a<ul class="subs"><li>= <a href="#v:Success">Success</a> z a</li><li>| <a href="#v:Failure">Failure</a> z <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></li><li>| <a href="#v:Committed">Committed</a> (<a href="Text-ParserCombinators-Poly-Text.html#t:Result">Result</a> z a)</li></ul></li><li class="src short"><a href="#v:runParser">runParser</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> a, <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a>)</li><li class="src short"><a href="#v:next">next</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a></li><li class="src short"><a href="#v:eof">eof</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> ()</li><li class="src short"><a href="#v:satisfy">satisfy</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a></li><li class="src short"><a href="#v:onFail">onFail</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a</li><li class="src short"><a href="#v:manySatisfy">manySatisfy</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a></li><li class="src short"><a href="#v:many1Satisfy">many1Satisfy</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a></li><li class="src short"><a href="#v:reparse">reparse</a> :: <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> ()</li><li class="src short">module <a href="Text-ParserCombinators-Poly-Base.html">Text.ParserCombinators.Poly.Base</a></li><li class="src short">module <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html">Control.Applicative</a></li></ul></div><div id="interface"><h1 id="g:1">The Parser datatype</h1><div class="top"><p class="src"><span class="keyword">newtype</span> <a id="t:Parser" class="def">Parser</a> a <a href="src/Text-ParserCombinators-Poly-Text.html#Parser" class="link">Source</a> <a href="#t:Parser" class="selflink">#</a></p><div class="doc"><p>This <code>Parser</code> datatype is a specialised parsing monad with error
   reporting.  Whereas the standard version can be used for arbitrary
   token types, this version is specialised to Text input only.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:P" class="def">P</a> (<a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Result">Result</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> a)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Parser" class="caption collapser" onclick="toggleSection('i:Parser')">Instances</p><div id="section.i:Parser" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Parser:Monad:1" class="instance expander" onclick="toggleSection('i:id:Parser:Monad:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Monad.html#t:Monad">Monad</a> <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a></span> <a href="src/Text-ParserCombinators-Poly-Text.html#line-40" class="link">Source</a> <a href="#t:Parser" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Parser:Monad:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:-62--62--61-">(&gt;&gt;=)</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; (a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> b) -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> b <a href="#v:-62--62--61-" class="selflink">#</a></p><p class="src"><a href="#v:-62--62-">(&gt;&gt;)</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> b -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> b <a href="#v:-62--62-" class="selflink">#</a></p><p class="src"><a href="#v:return">return</a> :: a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a <a href="#v:return" class="selflink">#</a></p><p class="src"><a href="#v:fail">fail</a> :: <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a <a href="#v:fail" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Parser:Functor:2" class="instance expander" onclick="toggleSection('i:id:Parser:Functor:2')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a></span> <a href="src/Text-ParserCombinators-Poly-Text.html#line-37" class="link">Source</a> <a href="#t:Parser" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Parser:Functor:2" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> b -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Parser:Applicative:3" class="instance expander" onclick="toggleSection('i:id:Parser:Applicative:3')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Applicative">Applicative</a> <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a></span> <a href="src/Text-ParserCombinators-Poly-Text.html#line-73" class="link">Source</a> <a href="#t:Parser" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Parser:Applicative:3" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:pure">pure</a> :: a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a <a href="#v:pure" class="selflink">#</a></p><p class="src"><a href="#v:-60--42--62-">(&lt;*&gt;)</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> (a -&gt; b) -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> b <a href="#v:-60--42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-42--62-">(*&gt;)</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> b -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> b <a href="#v:-42--62-" class="selflink">#</a></p><p class="src"><a href="#v:-60--42-">(&lt;*)</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> b -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a <a href="#v:-60--42-" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Parser:Alternative:4" class="instance expander" onclick="toggleSection('i:id:Parser:Alternative:4')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html#t:Alternative">Alternative</a> <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a></span> <a href="src/Text-ParserCombinators-Poly-Text.html#line-80" class="link">Source</a> <a href="#t:Parser" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Parser:Alternative:4" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:empty">empty</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a <a href="#v:empty" class="selflink">#</a></p><p class="src"><a href="#v:-60--124--62-">(&lt;|&gt;)</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a <a href="#v:-60--124--62-" class="selflink">#</a></p><p class="src"><a href="#v:some">some</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> [a] <a href="#v:some" class="selflink">#</a></p><p class="src"><a href="#v:many">many</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> [a] <a href="#v:many" class="selflink">#</a></p></div></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Parser:PolyParse:5" class="instance expander" onclick="toggleSection('i:id:Parser:PolyParse:5')"></span> <a href="Text-ParserCombinators-Poly-Base.html#t:PolyParse">PolyParse</a> <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a></span> <a href="src/Text-ParserCombinators-Poly-Text.html#line-84" class="link">Source</a> <a href="#t:Parser" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Parser:PolyParse:5" class="inst-details hide"></div></td></tr><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Parser:Commitment:6" class="instance expander" onclick="toggleSection('i:id:Parser:Commitment:6')"></span> <a href="Text-ParserCombinators-Poly-Base.html#t:Commitment">Commitment</a> <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a></span> <a href="src/Text-ParserCombinators-Poly-Text.html#line-49" class="link">Source</a> <a href="#t:Parser" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Parser:Commitment:6" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:commit">commit</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a <a href="src/Text-ParserCombinators-Poly-Base.html#commit" class="link">Source</a> <a href="#v:commit" class="selflink">#</a></p><p class="src"><a href="#v:adjustErr">adjustErr</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a>) -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a <a href="src/Text-ParserCombinators-Poly-Base.html#adjustErr" class="link">Source</a> <a href="#v:adjustErr" class="selflink">#</a></p><p class="src"><a href="#v:oneOf-39-">oneOf'</a> :: [(<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a>, <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a)] -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a <a href="src/Text-ParserCombinators-Poly-Base.html#oneOf%27" class="link">Source</a> <a href="#v:oneOf-39-" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><span class="keyword">data</span> <a id="t:Result" class="def">Result</a> z a <a href="src/Text-ParserCombinators-Poly-Result.html#Result" class="link">Source</a> <a href="#t:Result" class="selflink">#</a></p><div class="doc"><p>A return type like Either, that distinguishes not only between
   right and wrong answers, but also has commitment, so that a failure
   cannot be undone.  This should only be used for writing very primitive
   parsers - really it is an internal detail of the library.
   The z type is the remaining unconsumed input.</p></div><div class="subs constructors"><p class="caption">Constructors</p><table><tr><td class="src"><a id="v:Success" class="def">Success</a> z a</td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Failure" class="def">Failure</a> z <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a></td><td class="doc empty">&nbsp;</td></tr><tr><td class="src"><a id="v:Committed" class="def">Committed</a> (<a href="Text-ParserCombinators-Poly-Text.html#t:Result">Result</a> z a)</td><td class="doc empty">&nbsp;</td></tr></table></div><div class="subs instances"><p id="control.i:Result" class="caption collapser" onclick="toggleSection('i:Result')">Instances</p><div id="section.i:Result" class="show"><table><tr><td class="src clearfix"><span class="inst-left"><span id="control.i:id:Result:Functor:1" class="instance expander" onclick="toggleSection('i:id:Result:Functor:1')"></span> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Functor.html#t:Functor">Functor</a> (<a href="Text-ParserCombinators-Poly-Text.html#t:Result">Result</a> z)</span> <a href="src/Text-ParserCombinators-Poly-Result.html#line-17" class="link">Source</a> <a href="#t:Result" class="selflink">#</a></td><td class="doc empty">&nbsp;</td></tr><tr><td colspan="2"><div id="section.i:id:Result:Functor:1" class="inst-details hide"><div class="subs methods"><p class="caption">Methods</p><p class="src"><a href="#v:fmap">fmap</a> :: (a -&gt; b) -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Result">Result</a> z a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Result">Result</a> z b <a href="#v:fmap" class="selflink">#</a></p><p class="src"><a href="#v:-60--36-">(&lt;$)</a> :: a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Result">Result</a> z b -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Result">Result</a> z a <a href="#v:-60--36-" class="selflink">#</a></p></div></div></td></tr></table></div></div></div><div class="top"><p class="src"><a id="v:runParser" class="def">runParser</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> -&gt; (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Either.html#t:Either">Either</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-String.html#t:String">String</a> a, <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a>) <a href="src/Text-ParserCombinators-Poly-Text.html#runParser" class="link">Source</a> <a href="#v:runParser" class="selflink">#</a></p><div class="doc"><p>Apply a parser to an input token sequence.</p></div></div><h2 id="g:2">Basic parsers</h2><div class="top"><p class="src"><a id="v:next" class="def">next</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> <a href="src/Text-ParserCombinators-Poly-Text.html#next" class="link">Source</a> <a href="#v:next" class="selflink">#</a></p><div class="doc"><p>Simply return the next token in the input tokenstream.</p></div></div><div class="top"><p class="src"><a id="v:eof" class="def">eof</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> () <a href="src/Text-ParserCombinators-Poly-Text.html#eof" class="link">Source</a> <a href="#v:eof" class="selflink">#</a></p><div class="doc"><p>Succeed if the end of file/input has been reached, fail otherwise.</p></div></div><div class="top"><p class="src"><a id="v:satisfy" class="def">satisfy</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> <a href="src/Text-ParserCombinators-Poly-Text.html#satisfy" class="link">Source</a> <a href="#v:satisfy" class="selflink">#</a></p><div class="doc"><p>Return the next token if it satisfies the given predicate.</p></div></div><div class="top"><p class="src"><a id="v:onFail" class="def">onFail</a> :: <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> a <a href="src/Text-ParserCombinators-Poly-Text.html#onFail" class="link">Source</a> <a href="#v:onFail" class="selflink">#</a></p><div class="doc"><p><code>p <code><a href="Text-ParserCombinators-Poly-Text.html#v:onFail">onFail</a></code> q</code> means parse p, unless p fails, in which case
   parse q instead.
   Can be chained together to give multiple attempts to parse something.
   (Note that q could itself be a failing parser, e.g. to change the error
   message from that defined in p to something different.)
   However, a severe failure in p cannot be ignored.</p></div></div><h2 id="g:3">Derived parsers (but implemented more efficiently)</h2><div class="top"><p class="src"><a id="v:manySatisfy" class="def">manySatisfy</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> <a href="src/Text-ParserCombinators-Poly-Text.html#manySatisfy" class="link">Source</a> <a href="#v:manySatisfy" class="selflink">#</a></p><div class="doc"><p><code>manySatisfy p</code> is a more efficient fused version of <code>many (satisfy p)</code></p></div></div><div class="top"><p class="src"><a id="v:many1Satisfy" class="def">many1Satisfy</a> :: (<a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Char.html#t:Char">Char</a> -&gt; <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Data-Bool.html#t:Bool">Bool</a>) -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> <a href="src/Text-ParserCombinators-Poly-Text.html#many1Satisfy" class="link">Source</a> <a href="#v:many1Satisfy" class="selflink">#</a></p><div class="doc"><p><code>many1Satisfy p</code> is a more efficient fused version of <code>many1 (satisfy p)</code></p></div></div><h2 id="g:4">Re-parsing</h2><div class="top"><p class="src"><a id="v:reparse" class="def">reparse</a> :: <a href="file:///usr/share/doc/libghc-text-doc/html/Data-Text-Lazy.html#t:Text">Text</a> -&gt; <a href="Text-ParserCombinators-Poly-Text.html#t:Parser">Parser</a> () <a href="src/Text-ParserCombinators-Poly-Text.html#reparse" class="link">Source</a> <a href="#v:reparse" class="selflink">#</a></p><div class="doc"><p>Push some tokens back onto the front of the input stream and reparse.
   This is useful e.g. for recursively expanding macros.  When the
   user-parser recognises a macro use, it can lookup the macro
   expansion from the parse state, lex it, and then stuff the
   lexed expansion back down into the parser.</p></div></div><h1 id="g:5">Re-export all more general combinators</h1><div class="top"><p class="src">module <a href="Text-ParserCombinators-Poly-Base.html">Text.ParserCombinators.Poly.Base</a></p></div><div class="top"><p class="src">module <a href="file:///usr/share/doc/ghc-doc/html/libraries/base-4.9.1.0/Control-Applicative.html">Control.Applicative</a></p></div></div></div><div id="footer"><p>Produced by <a href="http://www.haskell.org/haddock/">Haddock</a> version 2.17.3</p></div></body></html>