HaXml-1.20.1: docs/HaXml/Text-XML-HaXml-Parse.html
<!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.XML.HaXml.Parse</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-XML-HaXml-Parse.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"
>HaXml</TD
><TD CLASS="topbut"
><A HREF="src/Text/XML/HaXml/Parse.html"
>Source code</A
></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.XML.HaXml.Parse</FONT
></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"
>Parse a whole document
</A
></DT
><DT
><A HREF="#2"
>Parse just a DTD
</A
></DT
><DT
><A HREF="#3"
>Parse a partial document
</A
></DT
><DT
><A HREF="#4"
>Individual parsers for use with <EM
>xmlParseWith</EM
> and module SAX
</A
></DT
><DT
><A HREF="#5"
>These general utility functions don't belong here
</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"
>A non-validating XML parser. For the input grammar, see
<A HREF="http://www.w3.org/TR/REC-xml"
>http://www.w3.org/TR/REC-xml</A
>.
</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"
><A HREF="#v%3AxmlParse"
>xmlParse</A
> :: String -> String -> <A HREF="Text-XML-HaXml-Types.html#t%3ADocument"
>Document</A
> <A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AxmlParse%27"
>xmlParse'</A
> :: String -> String -> Either String (<A HREF="Text-XML-HaXml-Types.html#t%3ADocument"
>Document</A
> <A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdtdParse"
>dtdParse</A
> :: String -> String -> Maybe <A HREF="Text-XML-HaXml-Types.html#t%3ADocTypeDecl"
>DocTypeDecl</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AdtdParse%27"
>dtdParse'</A
> :: String -> String -> Either String (Maybe <A HREF="Text-XML-HaXml-Types.html#t%3ADocTypeDecl"
>DocTypeDecl</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AxmlParseWith"
>xmlParseWith</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> a -> [(<A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>, <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT"
>TokenT</A
>)] -> (Either String a, [(<A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>, <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT"
>TokenT</A
>)])</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Adocument"
>document</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> (<A HREF="Text-XML-HaXml-Types.html#t%3ADocument"
>Document</A
> <A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aelement"
>element</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> (<A HREF="Text-XML-HaXml-Types.html#t%3AElement"
>Element</A
> <A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Acontent"
>content</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> (<A HREF="Text-XML-HaXml-Types.html#t%3AContent"
>Content</A
> <A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Acomment"
>comment</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3AComment"
>Comment</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Acdsect"
>cdsect</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3ACDSect"
>CDSect</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Achardata"
>chardata</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3ACharData"
>CharData</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Areference"
>reference</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3AReference"
>Reference</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Adoctypedecl"
>doctypedecl</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3ADocTypeDecl"
>DocTypeDecl</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aprocessinginstruction"
>processinginstruction</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3AProcessingInstruction"
>ProcessingInstruction</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aelemtag"
>elemtag</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3AElemTag"
>ElemTag</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Aname"
>name</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3AName"
>Name</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atok"
>tok</A
> :: <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT"
>TokenT</A
> -> <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT"
>TokenT</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AelemOpenTag"
>elemOpenTag</A
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3AElemTag"
>ElemTag</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AelemCloseTag"
>elemCloseTag</A
> :: <A HREF="Text-XML-HaXml-Types.html#t%3AName"
>Name</A
> -> <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> ()</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AemptySTs"
>emptySTs</A
> :: SymTabs</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><SPAN CLASS="keyword"
>type</SPAN
> <A HREF="#t%3AXParser"
>XParser</A
> a = Parser SymTabs (<A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>, <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT"
>TokenT</A
>) a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Afst3"
>fst3</A
> :: (a, b, c) -> a</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asnd3"
>snd3</A
> :: (a, b, c) -> b</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Athd3"
>thd3</A
> :: (a, b, c) -> c</TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="1"
><A NAME="1"
>Parse a whole document
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:xmlParse"
><A NAME="v%3AxmlParse"
></A
></A
><B
>xmlParse</B
> :: String -> String -> <A HREF="Text-XML-HaXml-Types.html#t%3ADocument"
>Document</A
> <A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#xmlParse"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>To parse a whole document, <TT
>xmlParse file content</TT
> takes a filename
(for generating error reports) and the string content of that file.
A parse error causes program failure, with message to stderr.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:xmlParse'"
><A NAME="v%3AxmlParse%27"
></A
></A
><B
>xmlParse'</B
> :: String -> String -> Either String (<A HREF="Text-XML-HaXml-Types.html#t%3ADocument"
>Document</A
> <A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>)</TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#xmlParse%27"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>To parse a whole document, <TT
>xmlParse' file content</TT
> takes a filename
(for generating error reports) and the string content of that file.
Any parse error message is passed back to the caller through the
<TT
>Either</TT
> type.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="2"
><A NAME="2"
>Parse just a DTD
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:dtdParse"
><A NAME="v%3AdtdParse"
></A
></A
><B
>dtdParse</B
> :: String -> String -> Maybe <A HREF="Text-XML-HaXml-Types.html#t%3ADocTypeDecl"
>DocTypeDecl</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#dtdParse"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>To parse just a DTD, <TT
>dtdParse file content</TT
> takes a filename
(for generating error reports) and the string content of that
file. If no DTD was found, you get <TT
>Nothing</TT
> rather than an error.
However, if a DTD is found but contains errors, the program crashes.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:dtdParse'"
><A NAME="v%3AdtdParse%27"
></A
></A
><B
>dtdParse'</B
> :: String -> String -> Either String (Maybe <A HREF="Text-XML-HaXml-Types.html#t%3ADocTypeDecl"
>DocTypeDecl</A
>)</TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#dtdParse%27"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>To parse just a DTD, <TT
>dtdParse' file content</TT
> takes a filename
(for generating error reports) and the string content of that
file. If no DTD was found, you get <TT
>Right Nothing</TT
>.
If a DTD was found but contains errors, you get a <TT
>Left message</TT
>.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="3"
><A NAME="3"
>Parse a partial document
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:xmlParseWith"
><A NAME="v%3AxmlParseWith"
></A
></A
><B
>xmlParseWith</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> a -> [(<A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>, <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT"
>TokenT</A
>)] -> (Either String a, [(<A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>, <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT"
>TokenT</A
>)])</TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#xmlParseWith"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>To parse a partial document, e.g. from an XML-based stream protocol,
where you may later want to get more document elements from the same
stream. Arguments are: a parser for the item you want, and the
already-lexed input to parse from. Returns the item you wanted
(or an error message), plus the remainder of the input.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="4"
><A NAME="4"
>Individual parsers for use with <EM
>xmlParseWith</EM
> and module SAX
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:document"
><A NAME="v%3Adocument"
></A
></A
><B
>document</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> (<A HREF="Text-XML-HaXml-Types.html#t%3ADocument"
>Document</A
> <A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>)</TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#document"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Return an entire XML document including prolog and trailing junk.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:element"
><A NAME="v%3Aelement"
></A
></A
><B
>element</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> (<A HREF="Text-XML-HaXml-Types.html#t%3AElement"
>Element</A
> <A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>)</TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#element"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Return a complete element including all its inner content.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:content"
><A NAME="v%3Acontent"
></A
></A
><B
>content</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> (<A HREF="Text-XML-HaXml-Types.html#t%3AContent"
>Content</A
> <A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>)</TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#content"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Return a content particle, e.g. text, element, reference, etc
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:comment"
><A NAME="v%3Acomment"
></A
></A
><B
>comment</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3AComment"
>Comment</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#comment"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Return an XML comment.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:cdsect"
><A NAME="v%3Acdsect"
></A
></A
><B
>cdsect</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3ACDSect"
>CDSect</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#cdsect"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:chardata"
><A NAME="v%3Achardata"
></A
></A
><B
>chardata</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3ACharData"
>CharData</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#chardata"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Return parsed freetext (i.e. until the next markup)
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:reference"
><A NAME="v%3Areference"
></A
></A
><B
>reference</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3AReference"
>Reference</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#reference"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Return either a general entity reference, or a character reference.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:doctypedecl"
><A NAME="v%3Adoctypedecl"
></A
></A
><B
>doctypedecl</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3ADocTypeDecl"
>DocTypeDecl</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#doctypedecl"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Return a DOCTYPE decl, indicating a DTD.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:processinginstruction"
><A NAME="v%3Aprocessinginstruction"
></A
></A
><B
>processinginstruction</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3AProcessingInstruction"
>ProcessingInstruction</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#processinginstruction"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Parse a processing instruction.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:elemtag"
><A NAME="v%3Aelemtag"
></A
></A
><B
>elemtag</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3AElemTag"
>ElemTag</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#elemtag"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Parse only the parts between angle brackets in an element tag.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:name"
><A NAME="v%3Aname"
></A
></A
><B
>name</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3AName"
>Name</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#name"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Return just a name, e.g. element name, attribute name.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:tok"
><A NAME="v%3Atok"
></A
></A
><B
>tok</B
> :: <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT"
>TokenT</A
> -> <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT"
>TokenT</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#tok"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Return the next token from the input only if it matches the given token.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:elemOpenTag"
><A NAME="v%3AelemOpenTag"
></A
></A
><B
>elemOpenTag</B
> :: <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> <A HREF="Text-XML-HaXml-Types.html#t%3AElemTag"
>ElemTag</A
></TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#elemOpenTag"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>For use with stream parsers - returns the complete opening element tag.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:elemCloseTag"
><A NAME="v%3AelemCloseTag"
></A
></A
><B
>elemCloseTag</B
> :: <A HREF="Text-XML-HaXml-Types.html#t%3AName"
>Name</A
> -> <A HREF="Text-XML-HaXml-Parse.html#t%3AXParser"
>XParser</A
> ()</TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#elemCloseTag"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>For use with stream parsers - accepts a closing tag, provided it
matches the given element name.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:emptySTs"
><A NAME="v%3AemptySTs"
></A
></A
><B
>emptySTs</B
> :: SymTabs</TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#emptySTs"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>Some empty symbol tables for GE and PE references.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><SPAN CLASS="keyword"
>type</SPAN
> <A NAME="t:XParser"
><A NAME="t%3AXParser"
></A
></A
><B
>XParser</B
> a = Parser SymTabs (<A HREF="Text-XML-HaXml-Posn.html#t%3APosn"
>Posn</A
>, <A HREF="Text-XML-HaXml-Lex.html#t%3ATokenT"
>TokenT</A
>) a</TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#XParser"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="doc"
>XParser is just a specialisation of the PolyState parser.
</TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
><A NAME="5"
><A NAME="5"
>These general utility functions don't belong here
</A
></A
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:fst3"
><A NAME="v%3Afst3"
></A
></A
><B
>fst3</B
> :: (a, b, c) -> a</TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#fst3"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:snd3"
><A NAME="v%3Asnd3"
></A
></A
><B
>snd3</B
> :: (a, b, c) -> b</TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#snd3"
>Source</A
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="topdecl"
><TABLE CLASS="declbar"
><TR
><TD CLASS="declname"
><A NAME="v:thd3"
><A NAME="v%3Athd3"
></A
></A
><B
>thd3</B
> :: (a, b, c) -> c</TD
><TD CLASS="declbut"
><A HREF="src/Text/XML/HaXml/Parse.html#thd3"
>Source</A
></TD
></TR
></TABLE
></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.4.2</TD
></TR
></TABLE
></BODY
></HTML
>