<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <!--Rendered using the Haskell Html Library v0.2--> <HTML ><HEAD ><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=UTF-8" ><TITLE >Text.ParserCombinators.ReadPrec</TITLE ><LINK HREF="haddock.css" REL="stylesheet" TYPE="text/css" ><SCRIPT SRC="haddock-util.js" TYPE="text/javascript" ></SCRIPT ><SCRIPT TYPE="text/javascript" >window.onload = function () {setSynopsis("mini_Text-ParserCombinators-ReadPrec.html")};</SCRIPT ></HEAD ><BODY ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="topbar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><IMG SRC="haskell_icon.gif" WIDTH="16" HEIGHT="16" ALT=" " ></TD ><TD CLASS="title" >base-4.2.0.2: Basic libraries</TD ><TD CLASS="topbut" ><A HREF="index.html" >Contents</A ></TD ><TD CLASS="topbut" ><A HREF="doc-index.html" >Index</A ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="modulebar" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD ><FONT SIZE="6" >Text.ParserCombinators.ReadPrec</FONT ></TD ><TD ALIGN="right" ><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="infohead" >Portability</TD ><TD CLASS="infoval" >non-portable (uses Text.ParserCombinators.ReadP)</TD ></TR ><TR ><TD CLASS="infohead" >Stability</TD ><TD CLASS="infoval" >provisional</TD ></TR ><TR ><TD CLASS="infohead" >Maintainer</TD ><TD CLASS="infoval" >libraries@haskell.org</TD ></TR ></TABLE ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><B >Contents</B ></TD ></TR ><TR ><TD ><DL ><DT ><A HREF="#1" >Precedences </A ></DT ><DT ><A HREF="#2" >Precedence operations </A ></DT ><DT ><A HREF="#3" >Other operations </A ></DT ><DT ><A HREF="#4" >Converters </A ></DT ></DL ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Description</TD ></TR ><TR ><TD CLASS="doc" >This library defines parser combinators for precedence parsing. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Synopsis</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A HREF="#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A HREF="#t%3APrec" >Prec</A > = <A HREF="Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AminPrec" >minPrec</A > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3APrec" >Prec</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Alift" >lift</A > :: <A HREF="Text-ParserCombinators-ReadP.html#t%3AReadP" >ReadP</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aprec" >prec</A > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3APrec" >Prec</A > -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Astep" >step</A > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Areset" >reset</A > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Aget" >get</A > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > <A HREF="Data-Char.html#t%3AChar" >Char</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Alook" >look</A > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > <A HREF="Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%2B%2B%2B" >(+++)</A > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3A%3C%2B%2B" >(<++)</A > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Apfail" >pfail</A > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3Achoice" >choice</A > :: [<A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a] -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AreadPrec_to_P" >readPrec_to_P</A > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Text-ParserCombinators-ReadP.html#t%3AReadP" >ReadP</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AreadP_to_Prec" >readP_to_Prec</A > :: (<A HREF="Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Text-ParserCombinators-ReadP.html#t%3AReadP" >ReadP</A > a) -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AreadPrec_to_S" >readPrec_to_S</A > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Text-ParserCombinators-ReadP.html#t%3AReadS" >ReadS</A > a</TD ></TR ><TR ><TD CLASS="s8" ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="#v%3AreadS_to_Prec" >readS_to_Prec</A > :: (<A HREF="Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Text-ParserCombinators-ReadP.html#t%3AReadS" >ReadS</A > a) -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" >Documentation</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >data</SPAN > <A NAME="t:ReadPrec" ><A NAME="t%3AReadPrec" ></A ></A ><B >ReadPrec</B > a </TD ></TR ><TR ><TD CLASS="body" ><TABLE CLASS="vanilla" CELLSPACING="0" CELLPADDING="0" ><TR ><TD CLASS="section4" ><IMG SRC="minus.gif" CLASS="coll" ONCLICK="toggle(this,'i:ReadPrec')" ALT="show/hide" > Instances</TD ></TR ><TR ><TD CLASS="body" ><DIV ID="i:ReadPrec" STYLE="display:block;" ><TABLE CLASS="vanilla" CELLSPACING="1" CELLPADDING="0" ><TR ><TD CLASS="decl" ><A HREF="Control-Monad.html#t%3AMonad" >Monad</A > <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Control-Monad.html#t%3AFunctor" >Functor</A > <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A ></TD ></TR ><TR ><TD CLASS="decl" ><A HREF="Control-Monad.html#t%3AMonadPlus" >MonadPlus</A > <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A ></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="1" ><A NAME="1" >Precedences </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><SPAN CLASS="keyword" >type</SPAN > <A NAME="t:Prec" ><A NAME="t%3APrec" ></A ></A ><B >Prec</B > = <A HREF="Data-Int.html#t%3AInt" >Int</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:minPrec" ><A NAME="v%3AminPrec" ></A ></A ><B >minPrec</B > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3APrec" >Prec</A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="2" ><A NAME="2" >Precedence operations </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:lift" ><A NAME="v%3Alift" ></A ></A ><B >lift</B > :: <A HREF="Text-ParserCombinators-ReadP.html#t%3AReadP" >ReadP</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="doc" >Lift a precedence-insensitive <TT ><A HREF="Text-ParserCombinators-ReadP.html#t%3AReadP" >ReadP</A ></TT > to a <TT ><A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A ></TT >. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:prec" ><A NAME="v%3Aprec" ></A ></A ><B >prec</B > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3APrec" >Prec</A > -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="doc" ><P ><TT >(prec n p)</TT > checks whether the precedence context is less than or equal to <TT >n</TT >, and </P ><UL ><LI > if not, fails </LI ><LI > if so, parses <TT >p</TT > in context <TT >n</TT >. </LI ></UL ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:step" ><A NAME="v%3Astep" ></A ></A ><B >step</B > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="doc" >Increases the precedence context by one. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:reset" ><A NAME="v%3Areset" ></A ></A ><B >reset</B > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="doc" >Resets the precedence context to zero. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="3" ><A NAME="3" >Other operations </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="doc" >All are based directly on their similarly-named <TT ><A HREF="Text-ParserCombinators-ReadP.html#t%3AReadP" >ReadP</A ></TT > counterparts. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:get" ><A NAME="v%3Aget" ></A ></A ><B >get</B > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > <A HREF="Data-Char.html#t%3AChar" >Char</A ></TD ></TR ><TR ><TD CLASS="doc" >Consumes and returns the next character. Fails if there is no input left. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:look" ><A NAME="v%3Alook" ></A ></A ><B >look</B > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > <A HREF="Data-Char.html#t%3AString" >String</A ></TD ></TR ><TR ><TD CLASS="doc" >Look-ahead: returns the part of the input that is left, without consuming it. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:+++" ><A NAME="v%3A%2B%2B%2B" ></A ></A ><B >(+++)</B > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="doc" >Symmetric choice. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:<++" ><A NAME="v%3A%3C%2B%2B" ></A ></A ><B >(<++)</B > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="doc" >Local, exclusive, left-biased choice: If left parser locally produces any result at all, then right parser is not used. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:pfail" ><A NAME="v%3Apfail" ></A ></A ><B >pfail</B > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="doc" >Always fails. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:choice" ><A NAME="v%3Achoice" ></A ></A ><B >choice</B > :: [<A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a] -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="doc" >Combines all parsers in the specified list. </TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="section1" ><A NAME="4" ><A NAME="4" >Converters </A ></A ></TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:readPrec_to_P" ><A NAME="v%3AreadPrec_to_P" ></A ></A ><B >readPrec_to_P</B > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Text-ParserCombinators-ReadP.html#t%3AReadP" >ReadP</A > a</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:readP_to_Prec" ><A NAME="v%3AreadP_to_Prec" ></A ></A ><B >readP_to_Prec</B > :: (<A HREF="Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Text-ParserCombinators-ReadP.html#t%3AReadP" >ReadP</A > a) -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:readPrec_to_S" ><A NAME="v%3AreadPrec_to_S" ></A ></A ><B >readPrec_to_S</B > :: <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a -> <A HREF="Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Text-ParserCombinators-ReadP.html#t%3AReadS" >ReadS</A > a</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="decl" ><A NAME="v:readS_to_Prec" ><A NAME="v%3AreadS_to_Prec" ></A ></A ><B >readS_to_Prec</B > :: (<A HREF="Data-Int.html#t%3AInt" >Int</A > -> <A HREF="Text-ParserCombinators-ReadP.html#t%3AReadS" >ReadS</A > a) -> <A HREF="Text-ParserCombinators-ReadPrec.html#t%3AReadPrec" >ReadPrec</A > a</TD ></TR ><TR ><TD CLASS="s15" ></TD ></TR ><TR ><TD CLASS="botbar" >Produced by <A HREF="http://www.haskell.org/haddock/" >Haddock</A > version 2.6.1</TD ></TR ></TABLE ></BODY ></HTML >