Sophie

Sophie

distrib > Mandriva > 2010.1 > x86_64 > media > contrib-release > by-pkgid > 51057bcd013d992f61ce4c2b0a4565e3 > files > 228

haskell-hxt-8.3.2-1mdv2010.1.x86_64.rpm

<!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.HXT.RelaxNG.XmlSchema.RegexMatch</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-HXT-RelaxNG-XmlSchema-RegexMatch.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"
>hxt-8.3.2: A collection of tools for processing XML with Haskell.</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.HXT.RelaxNG.XmlSchema.RegexMatch</FONT
></TD
><TD ALIGN="right"
><TABLE CLASS="narrow" CELLSPACING="0" CELLPADDING="0"
><TR
><TD CLASS="infohead"
>Portability</TD
><TD CLASS="infoval"
>portable</TD
></TR
><TR
><TD CLASS="infohead"
>Stability</TD
><TD CLASS="infoval"
>experimental</TD
></TR
><TR
><TD CLASS="infohead"
>Maintainer</TD
><TD CLASS="infoval"
>Uwe Schmidt (uwe@fh-wedel.de)</TD
></TR
></TABLE
></TD
></TR
></TABLE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="section1"
>Description</TD
></TR
><TR
><TD CLASS="doc"
><P
>Convenient functions for W3C XML Schema Regular Expression Matcher.
   For internals see Text.XML.HXT.RelaxNG.XmlSchema.Regex
</P
><P
>Grammar can be found under <A HREF="http://www.w3.org/TR/xmlschema11-2/#regexs"
>http://www.w3.org/TR/xmlschema11-2/#regexs</A
>
</P
></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%3AmatchRE"
>matchRE</A
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="/usr/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsplitRE"
>splitRE</A
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>, <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>)</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AsedRE"
>sedRE</A
> :: (<A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>) -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtokenizeRE"
>tokenizeRE</A
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> [<A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3AtokenizeRE%27"
>tokenizeRE'</A
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> [<A HREF="/usr/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"
>Either</A
> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Amatch"
>match</A
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atokenize"
>tokenize</A
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; [<A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Atokenize%27"
>tokenize'</A
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; [<A HREF="/usr/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"
>Either</A
> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Ased"
>sed</A
> :: (<A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>) -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="s8"
></TD
></TR
><TR
><TD CLASS="decl"
><A HREF="#v%3Asplit"
>split</A
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; (<A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>, <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</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"
><A NAME="v:matchRE"
><A NAME="v%3AmatchRE"
></A
></A
><B
>matchRE</B
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="/usr/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>match a string with a regular expression
</P
><P
>First argument is the regex, second the input string,
 if the regex is not well formed, <TT
>Nothing</TT
> is returned,
 else <TT
>Just</TT
> the match result
</P
><P
>Examples:
</P
><PRE
> matchRE &quot;x*&quot; &quot;xxx&quot; = Just True
 matchRE &quot;x&quot; &quot;xxx&quot;  = Just False
 matchRE &quot;[&quot; &quot;xxx&quot;  = Nothing
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:splitRE"
><A NAME="v%3AsplitRE"
></A
></A
><B
>splitRE</B
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> (<A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>, <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>)</TD
></TR
><TR
><TD CLASS="doc"
><P
>split a string by taking the longest prefix matching a regular expression
</P
><P
><TT
>Nothing</TT
> is returned in case of a syntactically wrong regex string
 or in case there is no matching prefix, else the pair of prefix and rest is returned
</P
><P
>examples:
</P
><PRE
> splitRE &quot;a*b&quot; &quot;abc&quot; = Just (&quot;ab&quot;,&quot;c&quot;)
 splitRE &quot;a*&quot;  &quot;bc&quot;  = Just (&quot;&quot;, &quot;bc&quot;)
 splitRE &quot;a+&quot;  &quot;bc&quot;  = Nothing
 splitRE &quot;[&quot;   &quot;abc&quot; = Nothing
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:sedRE"
><A NAME="v%3AsedRE"
></A
></A
><B
>sedRE</B
> :: (<A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>) -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>sed like editing function
</P
><P
>All matching tokens are edited by the 1. argument, the editing function,
 all other chars remain as they are
</P
><P
>examples:
</P
><PRE
> sedRE (const &quot;b&quot;) &quot;a&quot; &quot;xaxax&quot;       = Just &quot;xbxbx&quot;
 sedRE (\ x -&gt; x ++ x) &quot;a&quot; &quot;xax&quot;     = Just &quot;xaax&quot;
 sedRE undefined       &quot;[&quot; undefined = Nothing
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tokenizeRE"
><A NAME="v%3AtokenizeRE"
></A
></A
><B
>tokenizeRE</B
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> [<A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="doc"
><P
>split a string into tokens (words) by giving a regular expression
 which all tokens must match
</P
><P
>This can be used for simple tokenizers.
 The words in the result list contain at least one char.
 All none matching chars are discarded. If the given regex contains syntax errors,
 <TT
>Nothing</TT
> is returned
</P
><P
>examples:
</P
><PRE
> tokenizeRE &quot;a*b&quot; &quot;&quot;         = Just []
 tokenizeRE &quot;a*b&quot; &quot;abc&quot;      = Just [&quot;ab&quot;]
 tokenizeRE &quot;a*b&quot; &quot;abaab ab&quot; = Just [&quot;ab&quot;,&quot;aab&quot;,&quot;ab&quot;]

 tokenizeRE &quot;[a-z]{2,}|[0-9]{2,}|[0-9]+[.][0-9]+&quot; &quot;ab123 456.7abc&quot;
                                = Just [&quot;ab&quot;,&quot;123&quot;,&quot;456.7&quot;,&quot;abc&quot;]

 tokenizeRE &quot;[a-z]*|[0-9]{2,}|[0-9]+[.][0-9]+&quot; &quot;cab123 456.7abc&quot;
                                = Just [&quot;cab&quot;,&quot;123&quot;,&quot;456.7&quot;,&quot;abc&quot;]

 tokenizeRE &quot;[^ \t\n\r]*&quot; &quot;abc def\t\n\rxyz&quot;
                                = Just [&quot;abc&quot;,&quot;def&quot;,&quot;xyz&quot;]

 tokenizeRE &quot;[^ \t\n\r]*&quot;    = words
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tokenizeRE'"
><A NAME="v%3AtokenizeRE%27"
></A
></A
><B
>tokenizeRE'</B
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Maybe.html#t%3AMaybe"
>Maybe</A
> [<A HREF="/usr/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"
>Either</A
> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="doc"
><P
>split a string into tokens and delimierter by giving a regular expression
 wich all tokens must match
</P
><P
>This is a generalisation of the above <TT
><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AtokenizeRE"
>tokenizeRE</A
></TT
> functions.
 The none matching char sequences are marked with <TT
>Left</TT
>, the matching ones are marked with <TT
>Right</TT
>
</P
><P
>If the regular expression contains syntax errors <TT
>Nothing</TT
> is returned
</P
><P
>The following Law holds:
</P
><PRE
> concat . map (either id id) . fromJust . tokenizeRE' re == id
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:match"
><A NAME="v%3Amatch"
></A
></A
><B
>match</B
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/ghc-prim/GHC-Bool.html#t%3ABool"
>Bool</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>convenient function for matchRE
</P
><P
>syntax errors in R.E. are interpreted as no match found
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tokenize"
><A NAME="v%3Atokenize"
></A
></A
><B
>tokenize</B
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; [<A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="doc"
><P
>convenient function for tokenizeRE a string
</P
><P
>syntax errors in R.E. result in an empty list
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:tokenize'"
><A NAME="v%3Atokenize%27"
></A
></A
><B
>tokenize'</B
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; [<A HREF="/usr/share/doc/ghc/libraries/base/Data-Either.html#t%3AEither"
>Either</A
> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>]</TD
></TR
><TR
><TD CLASS="doc"
><P
>convenient function for tokenizeRE'
</P
><P
>When the regular expression contains errors <TT
>[Left input]</TT
> is returned, that means tokens are found
</P
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:sed"
><A NAME="v%3Ased"
></A
></A
><B
>sed</B
> :: (<A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>) -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
></TD
></TR
><TR
><TD CLASS="doc"
><P
>convenient function for sedRE
</P
><P
>When the regular expression contains errors, sed is the identity, else
 the funtionality is like <TT
><A HREF="Text-XML-HXT-RelaxNG-XmlSchema-RegexMatch.html#v%3AsedRE"
>sedRE</A
></TT
>
</P
><PRE
> sed undefined &quot;[&quot;  == id
</PRE
></TD
></TR
><TR
><TD CLASS="s15"
></TD
></TR
><TR
><TD CLASS="decl"
><A NAME="v:split"
><A NAME="v%3Asplit"
></A
></A
><B
>split</B
> :: <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
> -&gt; (<A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>, <A HREF="/usr/share/doc/ghc/libraries/base/Data-Char.html#t%3AString"
>String</A
>)</TD
></TR
><TR
><TD CLASS="doc"
><P
>convenient function for splitRE
</P
><P
>syntax errors in R.E. are interpreted as no matching prefix found
</P
></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.5.0</TD
></TR
></TABLE
></BODY
></HTML
>