Sophie

Sophie

distrib > Mandriva > current > i586 > media > main-updates > by-pkgid > f51238514e2abe817779ad2fe01b0759 > files > 452

icu-doc-4.4-2.1mdv2010.2.i586.rpm

<!-- This comment will put IE 6, 7 and 8 in quirks mode -->
<!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/xhtml;charset=UTF-8"/>
<title>ICU 4.4: regex.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javaScript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body onload='searchBox.OnSelectItem(0);'>
<!-- Generated by Doxygen 1.6.1 -->
<script type="text/javascript"><!--
var searchBox = new SearchBox("searchBox", "search",false,'Search');
--></script>
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="pages.html"><span>Related&nbsp;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <img id="MSearchSelect" src="search/search.png"
             onmouseover="return searchBox.OnSearchSelectShow()"
             onmouseout="return searchBox.OnSearchSelectHide()"
             alt=""/>
        <input type="text" id="MSearchField" value="Search" accesskey="S"
             onfocus="searchBox.OnSearchFieldFocus(true)" 
             onblur="searchBox.OnSearchFieldFocus(false)" 
             onkeyup="searchBox.OnSearchFieldChange(event)"/>
        <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
        </div>
      </li>
    </ul>
  </div>
  <div class="tabs">
    <ul>
      <li><a href="files.html"><span>File&nbsp;List</span></a></li>
      <li><a href="globals.html"><span>Globals</span></a></li>
    </ul>
  </div>
<h1>regex.h</h1><a href="regex_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment">**********************************************************************</span>
<a name="l00003"></a>00003 <span class="comment">*   Copyright (C) 2002-2010, International Business Machines</span>
<a name="l00004"></a>00004 <span class="comment">*   Corporation and others.  All Rights Reserved.</span>
<a name="l00005"></a>00005 <span class="comment">**********************************************************************</span>
<a name="l00006"></a>00006 <span class="comment">*   file name:  regex.h</span>
<a name="l00007"></a>00007 <span class="comment">*   encoding:   US-ASCII</span>
<a name="l00008"></a>00008 <span class="comment">*   indentation:4</span>
<a name="l00009"></a>00009 <span class="comment">*</span>
<a name="l00010"></a>00010 <span class="comment">*   created on: 2002oct22</span>
<a name="l00011"></a>00011 <span class="comment">*   created by: Andy Heninger</span>
<a name="l00012"></a>00012 <span class="comment">*</span>
<a name="l00013"></a>00013 <span class="comment">*   ICU Regular Expressions, API for C++</span>
<a name="l00014"></a>00014 <span class="comment">*/</span>
<a name="l00015"></a>00015 
<a name="l00016"></a>00016 <span class="preprocessor">#ifndef REGEX_H</span>
<a name="l00017"></a>00017 <span class="preprocessor"></span><span class="preprocessor">#define REGEX_H</span>
<a name="l00018"></a>00018 <span class="preprocessor"></span>
<a name="l00019"></a>00019 <span class="comment">//#define REGEX_DEBUG</span>
<a name="l00020"></a>00020 
<a name="l00045"></a>00045 <span class="preprocessor">#include &quot;<a class="code" href="utypes_8h.html" title="Basic definitions for ICU, for both C and C++ APIs.">unicode/utypes.h</a>&quot;</span>
<a name="l00046"></a>00046 
<a name="l00047"></a>00047 <span class="preprocessor">#if !UCONFIG_NO_REGULAR_EXPRESSIONS</span>
<a name="l00048"></a>00048 <span class="preprocessor"></span>
<a name="l00049"></a>00049 <span class="preprocessor">#include &quot;<a class="code" href="uobject_8h.html" title="C++ API: Common ICU base class UObject.">unicode/uobject.h</a>&quot;</span>
<a name="l00050"></a>00050 <span class="preprocessor">#include &quot;<a class="code" href="unistr_8h.html" title="C++ API: Unicode String.">unicode/unistr.h</a>&quot;</span>
<a name="l00051"></a>00051 <span class="preprocessor">#include &quot;<a class="code" href="utext_8h.html" title="C API: Abstract Unicode Text API.">unicode/utext.h</a>&quot;</span>
<a name="l00052"></a>00052 <span class="preprocessor">#include &quot;<a class="code" href="parseerr_8h.html" title="C API: Parse Error Information.">unicode/parseerr.h</a>&quot;</span>
<a name="l00053"></a>00053 
<a name="l00054"></a>00054 <span class="preprocessor">#include &quot;<a class="code" href="uregex_8h.html" title="C API: Regular Expressions.">unicode/uregex.h</a>&quot;</span>
<a name="l00055"></a>00055 
<a name="l00056"></a>00056 <a class="code" href="uversion_8h.html#a7d9374e037299886d4192b763b4c5e8b" title="This is used to begin a declaration of a public ICU C++ API.">U_NAMESPACE_BEGIN</a>
<a name="l00057"></a>00057 
<a name="l00058"></a>00058 
<a name="l00059"></a>00059 <span class="comment">// Forward Declarations...</span>
<a name="l00060"></a>00060 
<a name="l00061"></a>00061 <span class="keyword">class </span><a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a>;
<a name="l00062"></a>00062 <span class="keyword">class </span><a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a>;
<a name="l00063"></a>00063 <span class="keyword">class </span>UVector;
<a name="l00064"></a>00064 <span class="keyword">class </span>UVector32;
<a name="l00065"></a>00065 <span class="keyword">class </span>UVector64;
<a name="l00066"></a>00066 <span class="keyword">class </span><a class="code" href="classUnicodeSet.html" title="A mutable set of Unicode characters and multicharacter strings.">UnicodeSet</a>;
<a name="l00067"></a>00067 <span class="keyword">struct </span>REStackFrame;
<a name="l00068"></a>00068 <span class="keyword">struct </span>Regex8BitSet;
<a name="l00069"></a>00069 <span class="keyword">class  </span><a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>;
<a name="l00070"></a>00070 <span class="keyword">class  </span>RegexCImpl;
<a name="l00071"></a>00071 
<a name="l00072"></a>00072 
<a name="l00073"></a>00073 
<a name="l00074"></a>00074 
<a name="l00079"></a>00079 <span class="preprocessor">#ifdef REGEX_DEBUG</span>
<a name="l00080"></a>00080 <span class="preprocessor"></span><a class="code" href="umachine_8h.html#a161dba69f4e479c3626793efc42f94ba" title="This is used to declare a function as an internal ICU C API.">U_INTERNAL</a> <span class="keywordtype">void</span> <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a>
<a name="l00081"></a>00081     <a class="code" href="regex_8h.html#adb99cedafe6d353311aac44514f846be" title="RBBIPatternDump Debug function, displays the compiled form of a pattern.">RegexPatternDump</a>(<span class="keyword">const</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a> *pat);
<a name="l00082"></a>00082 <span class="preprocessor">#else</span>
<a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor">    #undef RegexPatternDump</span>
<a name="l00084"></a><a class="code" href="regex_8h.html#adb99cedafe6d353311aac44514f846be">00084</a> <span class="preprocessor"></span><span class="preprocessor">    #define RegexPatternDump(pat)</span>
<a name="l00085"></a>00085 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00086"></a>00086 <span class="preprocessor"></span>
<a name="l00087"></a>00087 
<a name="l00088"></a>00088 
<a name="l00100"></a><a class="code" href="classRegexPattern.html">00100</a> <span class="keyword">class </span><a class="code" href="utypes_8h.html#ab9d90a30137b6ec046fe59e79b09745a" title="Set to export library symbols from inside the i18n library, and to import them from...">U_I18N_API</a> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a>: <span class="keyword">public</span> <a class="code" href="classUObject.html" title="UObject is the common ICU &amp;quot;boilerplate&amp;quot; class.">UObject</a> {
<a name="l00101"></a>00101 <span class="keyword">public</span>:
<a name="l00102"></a>00102 
<a name="l00110"></a>00110     <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a>();
<a name="l00111"></a>00111 
<a name="l00118"></a>00118     <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a>(<span class="keyword">const</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a> &amp;source);
<a name="l00119"></a>00119 
<a name="l00125"></a>00125     <span class="keyword">virtual</span> ~<a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a>();
<a name="l00126"></a>00126 
<a name="l00135"></a>00135     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>           <a class="code" href="stringpiece_8h.html#a7652049cbac0bfeae2cd2aa4514a3352" title="Global operator == for StringPiece.">operator==</a>(<span class="keyword">const</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a>&amp; that) <span class="keyword">const</span>;
<a name="l00136"></a>00136 
<a name="l00145"></a><a class="code" href="classRegexPattern.html#a881d8d89c3c5859420874e5a62d21be6">00145</a>     <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>    <a class="code" href="classRegexPattern.html#a881d8d89c3c5859420874e5a62d21be6" title="Comparison operator.">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a>&amp; that)<span class="keyword"> const </span>{<span class="keywordflow">return</span> ! <a class="code" href="stringpiece_8h.html#a7652049cbac0bfeae2cd2aa4514a3352" title="Global operator == for StringPiece.">operator ==</a>(that);};
<a name="l00146"></a>00146 
<a name="l00152"></a>00152     <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a>  &amp;operator =(<span class="keyword">const</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a> &amp;source);
<a name="l00153"></a>00153 
<a name="l00161"></a>00161     <span class="keyword">virtual</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a>  *clone() <span class="keyword">const</span>;
<a name="l00162"></a>00162 
<a name="l00163"></a>00163 
<a name="l00188"></a>00188     <span class="keyword">static</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a> * <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> compile( <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;regex,
<a name="l00189"></a>00189         <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors...">UParseError</a>          &amp;pe,
<a name="l00190"></a>00190         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>           &amp;status);
<a name="l00191"></a>00191 
<a name="l00192"></a>00192 
<a name="l00219"></a>00219     <span class="keyword">static</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a> * <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> compile( <a class="code" href="structUText.html" title="UText struct.">UText</a> *regex,
<a name="l00220"></a>00220         <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors...">UParseError</a>          &amp;pe,
<a name="l00221"></a>00221         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>           &amp;status);
<a name="l00222"></a>00222 
<a name="l00247"></a>00247     <span class="keyword">static</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a> * <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> compile( <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;regex,
<a name="l00248"></a>00248         uint32_t             flags,
<a name="l00249"></a>00249         <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors...">UParseError</a>          &amp;pe,
<a name="l00250"></a>00250         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>           &amp;status);
<a name="l00251"></a>00251         
<a name="l00252"></a>00252         
<a name="l00279"></a>00279     <span class="keyword">static</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a> * <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> compile( <a class="code" href="structUText.html" title="UText struct.">UText</a> *regex,
<a name="l00280"></a>00280         uint32_t             flags,
<a name="l00281"></a>00281         <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors...">UParseError</a>          &amp;pe,
<a name="l00282"></a>00282         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>           &amp;status);
<a name="l00283"></a>00283     
<a name="l00284"></a>00284 
<a name="l00307"></a>00307     <span class="keyword">static</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a> * <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> compile( <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;regex,
<a name="l00308"></a>00308         uint32_t             flags,
<a name="l00309"></a>00309         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>           &amp;status);
<a name="l00310"></a>00310 
<a name="l00311"></a>00311 
<a name="l00336"></a>00336     <span class="keyword">static</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a> * <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> compile( <a class="code" href="structUText.html" title="UText struct.">UText</a> *regex,
<a name="l00337"></a>00337         uint32_t             flags,
<a name="l00338"></a>00338         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>           &amp;status);
<a name="l00339"></a>00339     
<a name="l00340"></a>00340 
<a name="l00346"></a>00346     <span class="keyword">virtual</span> uint32_t flags() <span class="keyword">const</span>;
<a name="l00347"></a>00347 
<a name="l00365"></a>00365     <span class="keyword">virtual</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> *matcher(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;input,
<a name="l00366"></a>00366         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>          &amp;status) <span class="keyword">const</span>;
<a name="l00367"></a>00367         
<a name="l00368"></a>00368         
<a name="l00373"></a><a class="code" href="classRegexPattern.html#a74d7f491f0cf52e2bfc179db86b7bc9e">00373</a>     <span class="keyword">enum</span> <a class="code" href="classRegexPattern.html#a74d7f491f0cf52e2bfc179db86b7bc9e" title="Flag to disambiguate RegexPattern::matcher signature.">PatternIsUTextFlag</a> { PATTERN_IS_UTEXT };
<a name="l00374"></a>00374 
<a name="l00394"></a>00394     <span class="keyword">virtual</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> *matcher(<a class="code" href="structUText.html" title="UText struct.">UText</a> *input,
<a name="l00395"></a>00395         PatternIsUTextFlag      flag, 
<a name="l00396"></a>00396         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>          &amp;status) <span class="keyword">const</span>;
<a name="l00397"></a>00397 
<a name="l00398"></a>00398 <span class="keyword">private</span>:
<a name="l00412"></a>00412     <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> *matcher(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *input,
<a name="l00413"></a>00413         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>          &amp;status) <span class="keyword">const</span>;
<a name="l00414"></a>00414 <span class="keyword">public</span>:
<a name="l00415"></a>00415 
<a name="l00416"></a>00416 
<a name="l00428"></a>00428     <span class="keyword">virtual</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> *matcher(<a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>  &amp;status) <span class="keyword">const</span>;
<a name="l00429"></a>00429 
<a name="l00430"></a>00430 
<a name="l00445"></a>00445     <span class="keyword">static</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> matches(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>   &amp;regex,
<a name="l00446"></a>00446         <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>   &amp;input,
<a name="l00447"></a>00447               <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors...">UParseError</a>     &amp;pe,
<a name="l00448"></a>00448               <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>      &amp;status);
<a name="l00449"></a>00449 
<a name="l00450"></a>00450 
<a name="l00465"></a>00465     <span class="keyword">static</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> matches(<a class="code" href="structUText.html" title="UText struct.">UText</a> *regex,
<a name="l00466"></a>00466         <a class="code" href="structUText.html" title="UText struct.">UText</a>           *input,
<a name="l00467"></a>00467         <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors...">UParseError</a>     &amp;pe,
<a name="l00468"></a>00468         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>      &amp;status);
<a name="l00469"></a>00469 
<a name="l00470"></a>00470 
<a name="l00479"></a>00479     <span class="keyword">virtual</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> pattern() <span class="keyword">const</span>;
<a name="l00480"></a>00480     
<a name="l00481"></a>00481     
<a name="l00492"></a>00492     <span class="keyword">virtual</span> <a class="code" href="structUText.html" title="UText struct.">UText</a> *patternText() <span class="keyword">const</span>;
<a name="l00493"></a>00493 
<a name="l00494"></a>00494 
<a name="l00520"></a>00520     <span class="keyword">virtual</span> int32_t  split(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;input,
<a name="l00521"></a>00521         <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>    dest[],
<a name="l00522"></a>00522         int32_t          destCapacity,
<a name="l00523"></a>00523         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>       &amp;status) <span class="keyword">const</span>;
<a name="l00524"></a>00524 
<a name="l00525"></a>00525 
<a name="l00551"></a>00551     <span class="keyword">virtual</span> int32_t  split(<a class="code" href="structUText.html" title="UText struct.">UText</a> *input,
<a name="l00552"></a>00552         <a class="code" href="structUText.html" title="UText struct.">UText</a>            *dest[],
<a name="l00553"></a>00553         int32_t          destCapacity,
<a name="l00554"></a>00554         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>       &amp;status) <span class="keyword">const</span>;
<a name="l00555"></a>00555 
<a name="l00556"></a>00556 
<a name="l00562"></a>00562     <span class="keyword">virtual</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="classUObject.html#a9b1acc95efd89cb86ec31f2dc947a262" title="ICU4C &amp;quot;poor man&amp;#39;s RTTI&amp;quot;, returns a UClassID for the actual ICU class...">getDynamicClassID</a>() <span class="keyword">const</span>;
<a name="l00563"></a>00563 
<a name="l00569"></a>00569     <span class="keyword">static</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> getStaticClassID();
<a name="l00570"></a>00570 
<a name="l00571"></a>00571 <span class="keyword">private</span>:
<a name="l00572"></a>00572     <span class="comment">//</span>
<a name="l00573"></a>00573     <span class="comment">//  Implementation Data</span>
<a name="l00574"></a>00574     <span class="comment">//</span>
<a name="l00575"></a>00575     <a class="code" href="structUText.html" title="UText struct.">UText</a>          *fPattern;      <span class="comment">// The original pattern string.</span>
<a name="l00576"></a>00576     <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>  *fPatternString; <span class="comment">// The original pattern UncodeString if relevant</span>
<a name="l00577"></a>00577     uint32_t        fFlags;        <span class="comment">// The flags used when compiling the pattern.</span>
<a name="l00578"></a>00578                                    <span class="comment">//</span>
<a name="l00579"></a>00579     UVector64       *fCompiledPat; <span class="comment">// The compiled pattern p-code.</span>
<a name="l00580"></a>00580     <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>   fLiteralText;  <span class="comment">// Any literal string data from the pattern,</span>
<a name="l00581"></a>00581                                    <span class="comment">//   after un-escaping, for use during the match.</span>
<a name="l00582"></a>00582 
<a name="l00583"></a>00583     UVector         *fSets;        <span class="comment">// Any UnicodeSets referenced from the pattern.</span>
<a name="l00584"></a>00584     Regex8BitSet    *fSets8;       <span class="comment">//      (and fast sets for latin-1 range.)</span>
<a name="l00585"></a>00585 
<a name="l00586"></a>00586 
<a name="l00587"></a>00587     <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>      fDeferredStatus; <span class="comment">// status if some prior error has left this</span>
<a name="l00588"></a>00588                                    <span class="comment">//  RegexPattern in an unusable state.</span>
<a name="l00589"></a>00589 
<a name="l00590"></a>00590     int32_t         fMinMatchLen;  <span class="comment">// Minimum Match Length.  All matches will have length</span>
<a name="l00591"></a>00591                                    <span class="comment">//   &gt;= this value.  For some patterns, this calculated</span>
<a name="l00592"></a>00592                                    <span class="comment">//   value may be less than the true shortest</span>
<a name="l00593"></a>00593                                    <span class="comment">//   possible match.</span>
<a name="l00594"></a>00594     
<a name="l00595"></a>00595     int32_t         fFrameSize;    <span class="comment">// Size of a state stack frame in the</span>
<a name="l00596"></a>00596                                    <span class="comment">//   execution engine.</span>
<a name="l00597"></a>00597 
<a name="l00598"></a>00598     int32_t         fDataSize;     <span class="comment">// The size of the data needed by the pattern that</span>
<a name="l00599"></a>00599                                    <span class="comment">//   does not go on the state stack, but has just</span>
<a name="l00600"></a>00600                                    <span class="comment">//   a single copy per matcher.</span>
<a name="l00601"></a>00601 
<a name="l00602"></a>00602     UVector32       *fGroupMap;    <span class="comment">// Map from capture group number to position of</span>
<a name="l00603"></a>00603                                    <span class="comment">//   the group&apos;s variables in the matcher stack frame.</span>
<a name="l00604"></a>00604 
<a name="l00605"></a>00605     int32_t         fMaxCaptureDigits;
<a name="l00606"></a>00606 
<a name="l00607"></a>00607     <a class="code" href="classUnicodeSet.html" title="A mutable set of Unicode characters and multicharacter strings.">UnicodeSet</a>     **fStaticSets;  <span class="comment">// Ptr to static (shared) sets for predefined</span>
<a name="l00608"></a>00608                                    <span class="comment">//   regex character classes, e.g. Word.</span>
<a name="l00609"></a>00609 
<a name="l00610"></a>00610     Regex8BitSet   *fStaticSets8;  <span class="comment">// Ptr to the static (shared) latin-1 only</span>
<a name="l00611"></a>00611                                    <span class="comment">//  sets for predefined regex classes.</span>
<a name="l00612"></a>00612 
<a name="l00613"></a>00613     int32_t         fStartType;    <span class="comment">// Info on how a match must start.</span>
<a name="l00614"></a>00614     int32_t         fInitialStringIdx;     <span class="comment">//</span>
<a name="l00615"></a>00615     int32_t         fInitialStringLen;
<a name="l00616"></a>00616     <a class="code" href="classUnicodeSet.html" title="A mutable set of Unicode characters and multicharacter strings.">UnicodeSet</a>     *fInitialChars;
<a name="l00617"></a>00617     <a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a>         fInitialChar;
<a name="l00618"></a>00618     Regex8BitSet   *fInitialChars8;
<a name="l00619"></a>00619     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>           fNeedsAltInput;
<a name="l00620"></a>00620 
<a name="l00621"></a>00621     <span class="keyword">friend</span> <span class="keyword">class </span>RegexCompile;
<a name="l00622"></a>00622     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a>;
<a name="l00623"></a>00623     <span class="keyword">friend</span> <span class="keyword">class </span>RegexCImpl;
<a name="l00624"></a>00624 
<a name="l00625"></a>00625     <span class="comment">//</span>
<a name="l00626"></a>00626     <span class="comment">//  Implementation Methods</span>
<a name="l00627"></a>00627     <span class="comment">//</span>
<a name="l00628"></a>00628     <span class="keywordtype">void</span>        init();            <span class="comment">// Common initialization, for use by constructors.</span>
<a name="l00629"></a>00629     <span class="keywordtype">void</span>        zap();             <span class="comment">// Common cleanup</span>
<a name="l00630"></a>00630 <span class="preprocessor">#ifdef REGEX_DEBUG</span>
<a name="l00631"></a>00631 <span class="preprocessor"></span>    <span class="keywordtype">void</span>        dumpOp(int32_t index) <span class="keyword">const</span>;
<a name="l00632"></a>00632     <span class="keyword">friend</span>     <span class="keywordtype">void</span> <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> <a class="code" href="regex_8h.html#adb99cedafe6d353311aac44514f846be" title="RBBIPatternDump Debug function, displays the compiled form of a pattern.">RegexPatternDump</a>(<span class="keyword">const</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a> *);
<a name="l00633"></a>00633 <span class="preprocessor">#endif</span>
<a name="l00634"></a>00634 <span class="preprocessor"></span>
<a name="l00635"></a>00635 };
<a name="l00636"></a>00636 
<a name="l00637"></a>00637 
<a name="l00638"></a>00638 
<a name="l00648"></a><a class="code" href="classRegexMatcher.html">00648</a> <span class="keyword">class </span><a class="code" href="utypes_8h.html#ab9d90a30137b6ec046fe59e79b09745a" title="Set to export library symbols from inside the i18n library, and to import them from...">U_I18N_API</a> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a>: <span class="keyword">public</span> <a class="code" href="classUObject.html" title="UObject is the common ICU &amp;quot;boilerplate&amp;quot; class.">UObject</a> {
<a name="l00649"></a>00649 <span class="keyword">public</span>:
<a name="l00650"></a>00650 
<a name="l00665"></a>00665     <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;regexp, uint32_t flags, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l00666"></a>00666 
<a name="l00682"></a>00682     <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a>(<a class="code" href="structUText.html" title="UText struct.">UText</a> *regexp, uint32_t flags, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l00683"></a>00683     
<a name="l00705"></a>00705     <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;regexp, <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;input,
<a name="l00706"></a>00706         uint32_t flags, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l00707"></a>00707 
<a name="l00729"></a>00729     <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a>(<a class="code" href="structUText.html" title="UText struct.">UText</a> *regexp, <a class="code" href="structUText.html" title="UText struct.">UText</a> *input,
<a name="l00730"></a>00730         uint32_t flags, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l00731"></a>00731 
<a name="l00732"></a>00732 <span class="keyword">private</span>:
<a name="l00746"></a>00746     <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a>(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;regexp, <span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *input,
<a name="l00747"></a>00747         uint32_t flags, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l00748"></a>00748 <span class="keyword">public</span>:
<a name="l00749"></a>00749 
<a name="l00750"></a>00750 
<a name="l00756"></a>00756     <span class="keyword">virtual</span> ~<a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a>();
<a name="l00757"></a>00757 
<a name="l00758"></a>00758 
<a name="l00765"></a>00765     <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> matches(<a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l00766"></a>00766 
<a name="l00767"></a>00767 
<a name="l00778"></a>00778     <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> matches(int32_t startIndex, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l00779"></a>00779 
<a name="l00780"></a>00780 
<a name="l00794"></a>00794     <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> lookingAt(<a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l00795"></a>00795 
<a name="l00796"></a>00796 
<a name="l00810"></a>00810     <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> lookingAt(int32_t startIndex, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l00811"></a>00811 
<a name="l00812"></a>00812 
<a name="l00825"></a>00825     <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> find();
<a name="l00826"></a>00826 
<a name="l00827"></a>00827 
<a name="l00837"></a>00837     <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> find(int32_t start, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l00838"></a>00838 
<a name="l00839"></a>00839 
<a name="l00849"></a>00849     <span class="keyword">virtual</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> group(<a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status) <span class="keyword">const</span>;
<a name="l00850"></a>00850 
<a name="l00851"></a>00851 
<a name="l00856"></a><a class="code" href="classRegexMatcher.html#a208a25b619c2d1451a0ffaae72f5277d">00856</a>     <span class="keyword">enum</span> <a class="code" href="classRegexMatcher.html#a208a25b619c2d1451a0ffaae72f5277d" title="Flag to disambiguate RegexMatcher::group signature.">MatcherDestIsUTextFlag</a> { MATCHER_DEST_IS_UTEXT };
<a name="l00857"></a>00857 
<a name="l00873"></a>00873     <span class="keyword">virtual</span> <a class="code" href="structUText.html" title="UText struct.">UText</a> *group(<a class="code" href="structUText.html" title="UText struct.">UText</a> *dest, MatcherDestIsUTextFlag flag, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status) <span class="keyword">const</span>;
<a name="l00874"></a>00874 
<a name="l00875"></a>00875 
<a name="l00888"></a>00888     <span class="keyword">virtual</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> group(int32_t groupNum, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status) <span class="keyword">const</span>;
<a name="l00889"></a>00889 
<a name="l00890"></a>00890 
<a name="l00906"></a>00906     <span class="keyword">virtual</span> <a class="code" href="structUText.html" title="UText struct.">UText</a> *group(int32_t groupNum, <a class="code" href="structUText.html" title="UText struct.">UText</a> *dest, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status) <span class="keyword">const</span>;
<a name="l00907"></a>00907 
<a name="l00908"></a>00908 
<a name="l00914"></a>00914     <span class="keyword">virtual</span> int32_t groupCount() <span class="keyword">const</span>;
<a name="l00915"></a>00915 
<a name="l00916"></a>00916 
<a name="l00924"></a>00924     <span class="keyword">virtual</span> int32_t start(<a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status) <span class="keyword">const</span>;
<a name="l00925"></a>00925 
<a name="l00926"></a>00926 
<a name="l00940"></a>00940     <span class="keyword">virtual</span> int32_t start(int32_t group, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status) <span class="keyword">const</span>;
<a name="l00941"></a>00941 
<a name="l00942"></a>00942 
<a name="l00952"></a>00952     <span class="keyword">virtual</span> int32_t end(<a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status) <span class="keyword">const</span>;
<a name="l00953"></a>00953 
<a name="l00954"></a>00954 
<a name="l00968"></a>00968     <span class="keyword">virtual</span> int32_t end(int32_t group, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status) <span class="keyword">const</span>;
<a name="l00969"></a>00969 
<a name="l00970"></a>00970 
<a name="l00979"></a>00979     <span class="keyword">virtual</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;reset();
<a name="l00980"></a>00980 
<a name="l00981"></a>00981 
<a name="l00997"></a>00997     <span class="keyword">virtual</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;reset(int32_t index, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l00998"></a>00998 
<a name="l00999"></a>00999 
<a name="l01017"></a>01017     <span class="keyword">virtual</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;reset(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;input);
<a name="l01018"></a>01018 
<a name="l01019"></a>01019 
<a name="l01033"></a>01033     <span class="keyword">virtual</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;reset(<a class="code" href="structUText.html" title="UText struct.">UText</a> *input);
<a name="l01034"></a>01034 
<a name="l01035"></a>01035 <span class="keyword">private</span>:
<a name="l01049"></a>01049     <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;reset(<span class="keyword">const</span> <a class="code" href="umachine_8h.html#a6bb9fad572d65b305324ef288165e2ac" title="Define UChar to be wchar_t if that is 16 bits wide; always assumed to be unsigned...">UChar</a> *input);
<a name="l01050"></a>01050 <span class="keyword">public</span>:
<a name="l01051"></a>01051 
<a name="l01059"></a>01059     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;input() <span class="keyword">const</span>;
<a name="l01060"></a>01060     
<a name="l01069"></a>01069     <span class="keyword">virtual</span> <a class="code" href="structUText.html" title="UText struct.">UText</a> *inputText() <span class="keyword">const</span>;
<a name="l01070"></a>01070     
<a name="l01080"></a>01080     <span class="keyword">virtual</span> <a class="code" href="structUText.html" title="UText struct.">UText</a> *getInput(<a class="code" href="structUText.html" title="UText struct.">UText</a> *dest) <span class="keyword">const</span>;
<a name="l01081"></a>01081     
<a name="l01082"></a>01082 
<a name="l01101"></a>01101      <span class="keyword">virtual</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;region(int32_t start, int32_t limit, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01102"></a>01102 
<a name="l01103"></a>01103 
<a name="l01112"></a>01112      <span class="keyword">virtual</span> int32_t regionStart() <span class="keyword">const</span>;
<a name="l01113"></a>01113 
<a name="l01114"></a>01114 
<a name="l01123"></a>01123       <span class="keyword">virtual</span> int32_t regionEnd() <span class="keyword">const</span>;
<a name="l01124"></a>01124 
<a name="l01133"></a>01133       <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> hasTransparentBounds() <span class="keyword">const</span>;
<a name="l01134"></a>01134 
<a name="l01153"></a>01153       <span class="keyword">virtual</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;useTransparentBounds(<a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> b);
<a name="l01154"></a>01154 
<a name="l01155"></a>01155      
<a name="l01163"></a>01163       <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> hasAnchoringBounds() <span class="keyword">const</span>;
<a name="l01164"></a>01164 
<a name="l01165"></a>01165 
<a name="l01178"></a>01178       <span class="keyword">virtual</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;useAnchoringBounds(<a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> b);
<a name="l01179"></a>01179 
<a name="l01180"></a>01180 
<a name="l01193"></a>01193       <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> hitEnd() <span class="keyword">const</span>;
<a name="l01194"></a>01194 
<a name="l01204"></a>01204       <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> requireEnd() <span class="keyword">const</span>;
<a name="l01205"></a>01205 
<a name="l01206"></a>01206 
<a name="l01212"></a>01212     <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a> &amp;pattern() <span class="keyword">const</span>;
<a name="l01213"></a>01213 
<a name="l01214"></a>01214 
<a name="l01231"></a>01231     <span class="keyword">virtual</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> replaceAll(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;replacement, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01232"></a>01232 
<a name="l01233"></a>01233 
<a name="l01254"></a>01254     <span class="keyword">virtual</span> <a class="code" href="structUText.html" title="UText struct.">UText</a> *replaceAll(<a class="code" href="structUText.html" title="UText struct.">UText</a> *replacement, <a class="code" href="structUText.html" title="UText struct.">UText</a> *dest, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01255"></a>01255     
<a name="l01256"></a>01256 
<a name="l01277"></a>01277     <span class="keyword">virtual</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> replaceFirst(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;replacement, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01278"></a>01278     
<a name="l01279"></a>01279 
<a name="l01304"></a>01304     <span class="keyword">virtual</span> <a class="code" href="structUText.html" title="UText struct.">UText</a> *replaceFirst(<a class="code" href="structUText.html" title="UText struct.">UText</a> *replacement, <a class="code" href="structUText.html" title="UText struct.">UText</a> *dest, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01305"></a>01305     
<a name="l01306"></a>01306     
<a name="l01334"></a>01334     <span class="keyword">virtual</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;appendReplacement(<a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;dest,
<a name="l01335"></a>01335         <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;replacement, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01336"></a>01336     
<a name="l01337"></a>01337     
<a name="l01365"></a>01365     <span class="keyword">virtual</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;appendReplacement(<a class="code" href="structUText.html" title="UText struct.">UText</a> *dest,
<a name="l01366"></a>01366         <a class="code" href="structUText.html" title="UText struct.">UText</a> *replacement, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01367"></a>01367 
<a name="l01368"></a>01368 
<a name="l01379"></a>01379     <span class="keyword">virtual</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;appendTail(<a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;dest);
<a name="l01380"></a>01380 
<a name="l01381"></a>01381 
<a name="l01394"></a>01394     <span class="keyword">virtual</span> <a class="code" href="structUText.html" title="UText struct.">UText</a> *appendTail(<a class="code" href="structUText.html" title="UText struct.">UText</a> *dest);
<a name="l01395"></a>01395 
<a name="l01396"></a>01396 
<a name="l01420"></a>01420     <span class="keyword">virtual</span> int32_t  split(<span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> &amp;input,
<a name="l01421"></a>01421         <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a>    dest[],
<a name="l01422"></a>01422         int32_t          destCapacity,
<a name="l01423"></a>01423         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>       &amp;status);
<a name="l01424"></a>01424 
<a name="l01425"></a>01425 
<a name="l01449"></a>01449     <span class="keyword">virtual</span> int32_t  split(<a class="code" href="structUText.html" title="UText struct.">UText</a> *input,
<a name="l01450"></a>01450         <a class="code" href="structUText.html" title="UText struct.">UText</a>           *dest[],
<a name="l01451"></a>01451         int32_t          destCapacity,
<a name="l01452"></a>01452         <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>       &amp;status);
<a name="l01453"></a>01453     
<a name="l01475"></a>01475     <span class="keyword">virtual</span> <span class="keywordtype">void</span> setTimeLimit(int32_t limit, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01476"></a>01476 
<a name="l01483"></a>01483     <span class="keyword">virtual</span> int32_t getTimeLimit() <span class="keyword">const</span>;
<a name="l01484"></a>01484 
<a name="l01506"></a>01506     <span class="keyword">virtual</span> <span class="keywordtype">void</span> setStackLimit(int32_t  limit, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01507"></a>01507     
<a name="l01515"></a>01515     <span class="keyword">virtual</span> int32_t  getStackLimit() <span class="keyword">const</span>;
<a name="l01516"></a>01516 
<a name="l01517"></a>01517 
<a name="l01531"></a>01531     <span class="keyword">virtual</span> <span class="keywordtype">void</span> setMatchCallback(<a class="code" href="uregex_8h.html#a0a86299b51ab447fdefa00f6763b44bb" title="Function pointer for a regular expression matching callback function.">URegexMatchCallback</a>     *callback,
<a name="l01532"></a>01532                                   <span class="keyword">const</span> <span class="keywordtype">void</span>              *context,
<a name="l01533"></a>01533                                   <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>              &amp;status);
<a name="l01534"></a>01534 
<a name="l01535"></a>01535 
<a name="l01546"></a>01546     <span class="keyword">virtual</span> <span class="keywordtype">void</span> getMatchCallback(<a class="code" href="uregex_8h.html#a0a86299b51ab447fdefa00f6763b44bb" title="Function pointer for a regular expression matching callback function.">URegexMatchCallback</a>     *&amp;callback,
<a name="l01547"></a>01547                                   <span class="keyword">const</span> <span class="keywordtype">void</span>              *&amp;context,
<a name="l01548"></a>01548                                   <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>              &amp;status);
<a name="l01549"></a>01549 
<a name="l01550"></a>01550 
<a name="l01556"></a>01556     <span class="keywordtype">void</span> setTrace(<a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> state);
<a name="l01557"></a>01557 
<a name="l01558"></a>01558 
<a name="l01564"></a>01564     <span class="keyword">static</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="platform_8h.html#a72bf6d8ec0640a37b1915e5d853b2016">U_EXPORT2</a> getStaticClassID();
<a name="l01565"></a>01565 
<a name="l01571"></a>01571     <span class="keyword">virtual</span> <a class="code" href="utypes_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using RTTI, since RTTI is not yet supported...">UClassID</a> <a class="code" href="classUObject.html#a9b1acc95efd89cb86ec31f2dc947a262" title="ICU4C &amp;quot;poor man&amp;#39;s RTTI&amp;quot;, returns a UClassID for the actual ICU class...">getDynamicClassID</a>() <span class="keyword">const</span>;
<a name="l01572"></a>01572 
<a name="l01573"></a>01573 <span class="keyword">private</span>:
<a name="l01574"></a>01574     <span class="comment">// Constructors and other object boilerplate are private.</span>
<a name="l01575"></a>01575     <span class="comment">// Instances of RegexMatcher can not be assigned, copied, cloned, etc.</span>
<a name="l01576"></a>01576     <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a>();                  <span class="comment">// default constructor not implemented</span>
<a name="l01577"></a>01577     <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a>(<span class="keyword">const</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a> *pat);
<a name="l01578"></a>01578     <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a>(<span class="keyword">const</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;other);
<a name="l01579"></a>01579     <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;operator =(<span class="keyword">const</span> <a class="code" href="classRegexMatcher.html" title="class RegexMatcher bundles together a reular expression pattern and input text to...">RegexMatcher</a> &amp;rhs);
<a name="l01580"></a>01580     <span class="keywordtype">void</span> init(<a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);                      <span class="comment">// Common initialization</span>
<a name="l01581"></a>01581     <span class="keywordtype">void</span> init2(<a class="code" href="structUText.html" title="UText struct.">UText</a> *t, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;e);  <span class="comment">// Common initialization, part 2.</span>
<a name="l01582"></a>01582 
<a name="l01583"></a>01583     <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a>;
<a name="l01584"></a>01584     <span class="keyword">friend</span> <span class="keyword">class </span>RegexCImpl;
<a name="l01585"></a>01585 <span class="keyword">public</span>:
<a name="l01587"></a>01587     <span class="keywordtype">void</span> resetPreserveRegion();  <span class="comment">// Reset matcher state, but preserve any region.</span>
<a name="l01588"></a>01588 <span class="keyword">private</span>:
<a name="l01589"></a>01589 
<a name="l01590"></a>01590     <span class="comment">//</span>
<a name="l01591"></a>01591     <span class="comment">//  MatchAt   This is the internal interface to the match engine itself.</span>
<a name="l01592"></a>01592     <span class="comment">//            Match status comes back in matcher member variables.</span>
<a name="l01593"></a>01593     <span class="comment">//</span>
<a name="l01594"></a>01594     <span class="keywordtype">void</span>                 MatchAt(int64_t startIdx, <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> toEnd, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01595"></a>01595     <span class="keyword">inline</span> <span class="keywordtype">void</span>          backTrack(int64_t &amp;inputIdx, int32_t &amp;patIdx);
<a name="l01596"></a>01596     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>                isWordBoundary(int64_t pos);         <span class="comment">// perform Perl-like  \b test</span>
<a name="l01597"></a>01597     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>                isUWordBoundary(int64_t pos);        <span class="comment">// perform RBBI based \b test</span>
<a name="l01598"></a>01598     REStackFrame        *resetStack();
<a name="l01599"></a>01599     <span class="keyword">inline</span> REStackFrame *StateSave(REStackFrame *fp, int64_t savePatIdx, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01600"></a>01600     <span class="keywordtype">void</span>                 IncrementTime(<a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01601"></a>01601     
<a name="l01602"></a>01602     int64_t              appendGroup(int32_t groupNum, <a class="code" href="structUText.html" title="UText struct.">UText</a> *dest, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status) <span class="keyword">const</span>;
<a name="l01603"></a>01603     
<a name="l01604"></a>01604     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>                findUsingChunk();
<a name="l01605"></a>01605     <span class="keywordtype">void</span>                 MatchChunkAt(int32_t startIdx, <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> toEnd, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a> &amp;status);
<a name="l01606"></a>01606     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>                isChunkWordBoundary(int32_t pos);
<a name="l01607"></a>01607 
<a name="l01608"></a>01608     <span class="keyword">const</span> <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a>  *fPattern;
<a name="l01609"></a>01609     <a class="code" href="classRegexPattern.html" title="Class RegexPattern represents a compiled regular expression.">RegexPattern</a>        *fPatternOwned;    <span class="comment">// Non-NULL if this matcher owns the pattern, and</span>
<a name="l01610"></a>01610                                            <span class="comment">//   should delete it when through.</span>
<a name="l01611"></a>01611 
<a name="l01612"></a>01612     <span class="keyword">const</span> <a class="code" href="classUnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides...">UnicodeString</a> *fInput;           <span class="comment">// The string being matched. Only used for input()</span>
<a name="l01613"></a>01613     <a class="code" href="structUText.html" title="UText struct.">UText</a>               *fInputText;       <span class="comment">// The text being matched. Is never NULL.</span>
<a name="l01614"></a>01614     <a class="code" href="structUText.html" title="UText struct.">UText</a>               *fAltInputText;    <span class="comment">// A shallow copy of the text being matched.</span>
<a name="l01615"></a>01615                                            <span class="comment">//   Only created if the pattern contains backreferences.</span>
<a name="l01616"></a>01616     int64_t              fInputLength;     <span class="comment">// Full length of the input text.</span>
<a name="l01617"></a>01617     int32_t              fFrameSize;       <span class="comment">// The size of a frame in the backtrack stack.</span>
<a name="l01618"></a>01618     
<a name="l01619"></a>01619     int64_t              fRegionStart;     <span class="comment">// Start of the input region, default = 0.</span>
<a name="l01620"></a>01620     int64_t              fRegionLimit;     <span class="comment">// End of input region, default to input.length.</span>
<a name="l01621"></a>01621     
<a name="l01622"></a>01622     int64_t              fAnchorStart;     <span class="comment">// Region bounds for anchoring operations (^ or $).</span>
<a name="l01623"></a>01623     int64_t              fAnchorLimit;     <span class="comment">//   See useAnchoringBounds</span>
<a name="l01624"></a>01624     
<a name="l01625"></a>01625     int64_t              fLookStart;       <span class="comment">// Region bounds for look-ahead/behind and</span>
<a name="l01626"></a>01626     int64_t              fLookLimit;       <span class="comment">//   and other boundary tests.  See</span>
<a name="l01627"></a>01627                                            <span class="comment">//   useTransparentBounds</span>
<a name="l01628"></a>01628 
<a name="l01629"></a>01629     int64_t              fActiveStart;     <span class="comment">// Currently active bounds for matching.</span>
<a name="l01630"></a>01630     int64_t              fActiveLimit;     <span class="comment">//   Usually is the same as region, but</span>
<a name="l01631"></a>01631                                            <span class="comment">//   is changed to fLookStart/Limit when</span>
<a name="l01632"></a>01632                                            <span class="comment">//   entering look around regions.</span>
<a name="l01633"></a>01633 
<a name="l01634"></a>01634     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>                fTransparentBounds;  <span class="comment">// True if using transparent bounds.</span>
<a name="l01635"></a>01635     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>                fAnchoringBounds; <span class="comment">// True if using anchoring bounds.</span>
<a name="l01636"></a>01636 
<a name="l01637"></a>01637     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>                fMatch;           <span class="comment">// True if the last attempted match was successful.</span>
<a name="l01638"></a>01638     int64_t              fMatchStart;      <span class="comment">// Position of the start of the most recent match</span>
<a name="l01639"></a>01639     int64_t              fMatchEnd;        <span class="comment">// First position after the end of the most recent match</span>
<a name="l01640"></a>01640                                            <span class="comment">//   Zero if no previous match, even when a region</span>
<a name="l01641"></a>01641                                            <span class="comment">//   is active.</span>
<a name="l01642"></a>01642     int64_t              fLastMatchEnd;    <span class="comment">// First position after the end of the previous match,</span>
<a name="l01643"></a>01643                                            <span class="comment">//   or -1 if there was no previous match.</span>
<a name="l01644"></a>01644     int64_t              fAppendPosition;  <span class="comment">// First position after the end of the previous</span>
<a name="l01645"></a>01645                                            <span class="comment">//   appendReplacement().  As described by the</span>
<a name="l01646"></a>01646                                            <span class="comment">//   JavaDoc for Java Matcher, where it is called </span>
<a name="l01647"></a>01647                                            <span class="comment">//   &quot;append position&quot;</span>
<a name="l01648"></a>01648     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>                fHitEnd;          <span class="comment">// True if the last match touched the end of input.</span>
<a name="l01649"></a>01649     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>                fRequireEnd;      <span class="comment">// True if the last match required end-of-input</span>
<a name="l01650"></a>01650                                            <span class="comment">//    (matched $ or Z)</span>
<a name="l01651"></a>01651 
<a name="l01652"></a>01652     UVector64           *fStack;
<a name="l01653"></a>01653     REStackFrame        *fFrame;           <span class="comment">// After finding a match, the last active stack frame,</span>
<a name="l01654"></a>01654                                            <span class="comment">//   which will contain the capture group results.</span>
<a name="l01655"></a>01655                                            <span class="comment">//   NOT valid while match engine is running.</span>
<a name="l01656"></a>01656 
<a name="l01657"></a>01657     int64_t             *fData;            <span class="comment">// Data area for use by the compiled pattern.</span>
<a name="l01658"></a>01658     int64_t             fSmallData[8];     <span class="comment">//   Use this for data if it&apos;s enough.</span>
<a name="l01659"></a>01659 
<a name="l01660"></a>01660     int32_t             fTimeLimit;        <span class="comment">// Max time (in arbitrary steps) to let the</span>
<a name="l01661"></a>01661                                            <span class="comment">//   match engine run.  Zero for unlimited.</span>
<a name="l01662"></a>01662     
<a name="l01663"></a>01663     int32_t             fTime;             <span class="comment">// Match time, accumulates while matching.</span>
<a name="l01664"></a>01664     int32_t             fTickCounter;      <span class="comment">// Low bits counter for time.  Counts down StateSaves.</span>
<a name="l01665"></a>01665                                            <span class="comment">//   Kept separately from fTime to keep as much</span>
<a name="l01666"></a>01666                                            <span class="comment">//   code as possible out of the inline</span>
<a name="l01667"></a>01667                                            <span class="comment">//   StateSave function.</span>
<a name="l01668"></a>01668 
<a name="l01669"></a>01669     int32_t             fStackLimit;       <span class="comment">// Maximum memory size to use for the backtrack</span>
<a name="l01670"></a>01670                                            <span class="comment">//   stack, in bytes.  Zero for unlimited.</span>
<a name="l01671"></a>01671 
<a name="l01672"></a>01672     <a class="code" href="uregex_8h.html#a0a86299b51ab447fdefa00f6763b44bb" title="Function pointer for a regular expression matching callback function.">URegexMatchCallback</a> *fCallbackFn;       <span class="comment">// Pointer to match progress callback funct.</span>
<a name="l01673"></a>01673                                            <span class="comment">//   NULL if there is no callback.</span>
<a name="l01674"></a>01674     <span class="keyword">const</span> <span class="keywordtype">void</span>         *fCallbackContext;  <span class="comment">// User Context ptr for callback function.</span>
<a name="l01675"></a>01675 
<a name="l01676"></a>01676     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>               fInputUniStrMaybeMutable;  <span class="comment">// Set when fInputText wraps a UnicodeString that may be mutable - compatibility.</span>
<a name="l01677"></a>01677 
<a name="l01678"></a>01678     <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a>               fTraceDebug;       <span class="comment">// Set true for debug tracing of match engine.</span>
<a name="l01679"></a>01679 
<a name="l01680"></a>01680     <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all...">UErrorCode</a>          fDeferredStatus;   <span class="comment">// Save error state that cannot be immediately</span>
<a name="l01681"></a>01681                                            <span class="comment">//   reported, or that permanently disables this matcher.</span>
<a name="l01682"></a>01682 
<a name="l01683"></a>01683     <a class="code" href="classRuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>  *fWordBreakItr;
<a name="l01684"></a>01684 
<a name="l01685"></a>01685 
<a name="l01686"></a>01686 };
<a name="l01687"></a>01687 
<a name="l01688"></a>01688 <a class="code" href="uversion_8h.html#a3da1f00f3b02976ac53c014a3e4c0933" title="This is used to end a declaration of a public ICU C++ API.">U_NAMESPACE_END</a>
<a name="l01689"></a>01689 <span class="preprocessor">#endif  // UCONFIG_NO_REGULAR_EXPRESSIONS</span>
<a name="l01690"></a>01690 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
</pre></div></div>
<!--- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&nbsp;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&nbsp;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&nbsp;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&nbsp;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&nbsp;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&nbsp;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&nbsp;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&nbsp;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&nbsp;</span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&nbsp;</span>Defines</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr size="1"/><address style="text-align: right;"><small>Generated on 16 Mar 2010 for ICU 4.4 by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>
</body>
</html>