<!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"/> <meta http-equiv="X-UA-Compatible" content="IE=9"/> <title>ICU 52.1: rbbi.h Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="dynsections.js"></script> <link href="doxygen.css" rel="stylesheet" type="text/css" /> </head> <body> <div id="top"><!-- do not remove this div, it is closed by doxygen! --> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">ICU 52.1  <span id="projectnumber">52.1</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.1.2 --> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="modules.html"><span>Modules</span></a></li> <li><a href="namespaces.html"><span>Namespaces</span></a></li> <li><a href="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>Globals</span></a></li> </ul> </div> <div id="nav-path" class="navpath"> <ul> <li class="navelem"><a class="el" href="dir_bdd9a5d540de89e9fe90efdfc6973a4f.html">common</a></li><li class="navelem"><a class="el" href="dir_f59c6450ff718ff1b085cfd1c36acbd7.html">unicode</a></li> </ul> </div> </div><!-- top --> <div class="header"> <div class="headertitle"> <div class="title">rbbi.h</div> </div> </div><!--header--> <div class="contents"> <a href="rbbi_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span> <span class="comment">/*</span></div> <div class="line"><a name="l00002"></a><span class="lineno"> 2</span> <span class="comment">***************************************************************************</span></div> <div class="line"><a name="l00003"></a><span class="lineno"> 3</span> <span class="comment">* Copyright (C) 1999-2013 International Business Machines Corporation *</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">* and others. All rights reserved. *</span></div> <div class="line"><a name="l00005"></a><span class="lineno"> 5</span> <span class="comment">***************************************************************************</span></div> <div class="line"><a name="l00006"></a><span class="lineno"> 6</span> <span class="comment"></span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">**********************************************************************</span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">* Date Name Description</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">* 10/22/99 alan Creation.</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">* 11/11/99 rgillam Complete port from Java.</span></div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">**********************************************************************</span></div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">*/</span></div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> </div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> <span class="preprocessor">#ifndef RBBI_H</span></div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor"></span><span class="preprocessor">#define RBBI_H</span></div> <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor">#include "<a class="code" href="utypes_8h.html" title="Basic definitions for ICU, for both C and C++ APIs.">unicode/utypes.h</a>"</span></div> <div class="line"><a name="l00018"></a><span class="lineno"> 18</span> </div> <div class="line"><a name="l00024"></a><span class="lineno"> 24</span> <span class="preprocessor">#if !UCONFIG_NO_BREAK_ITERATION</span></div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor">#include "<a class="code" href="brkiter_8h.html" title="C++ API: Break Iterator.">unicode/brkiter.h</a>"</span></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</span> <span class="preprocessor">#include "<a class="code" href="udata_8h.html" title="C API: Data loading interface.">unicode/udata.h</a>"</span></div> <div class="line"><a name="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="parseerr_8h.html" title="C API: Parse Error Information.">unicode/parseerr.h</a>"</span></div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> <span class="preprocessor">#include "<a class="code" href="schriter_8h.html" title="C++ API: String Character Iterator.">unicode/schriter.h</a>"</span></div> <div class="line"><a name="l00030"></a><span class="lineno"> 30</span> <span class="preprocessor">#include "<a class="code" href="uchriter_8h.html" title="C++ API: UChar Character Iterator.">unicode/uchriter.h</a>"</span></div> <div class="line"><a name="l00031"></a><span class="lineno"> 31</span> </div> <div class="line"><a name="l00032"></a><span class="lineno"> 32</span> </div> <div class="line"><a name="l00033"></a><span class="lineno"> 33</span> <span class="keyword">struct </span>UTrie;</div> <div class="line"><a name="l00034"></a><span class="lineno"> 34</span> </div> <div class="line"><a name="l00035"></a><span class="lineno"> 35</span> <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></div> <div class="line"><a name="l00036"></a><span class="lineno"> 36</span> </div> <div class="line"><a name="l00038"></a><span class="lineno"> 38</span> <span class="keyword">struct </span>RBBIDataHeader;</div> <div class="line"><a name="l00039"></a><span class="lineno"> 39</span> <span class="keyword">class </span>RuleBasedBreakIteratorTables;</div> <div class="line"><a name="l00040"></a><span class="lineno"> 40</span> <span class="keyword">class </span>BreakIterator;</div> <div class="line"><a name="l00041"></a><span class="lineno"> 41</span> <span class="keyword">class </span>RBBIDataWrapper;</div> <div class="line"><a name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">class </span>UStack;</div> <div class="line"><a name="l00043"></a><span class="lineno"> 43</span> <span class="keyword">class </span>LanguageBreakEngine;</div> <div class="line"><a name="l00044"></a><span class="lineno"> 44</span> <span class="keyword">class </span>UnhandledEngine;</div> <div class="line"><a name="l00045"></a><span class="lineno"> 45</span> <span class="keyword">struct </span>RBBIStateTable;</div> <div class="line"><a name="l00046"></a><span class="lineno"> 46</span> </div> <div class="line"><a name="l00047"></a><span class="lineno"> 47</span> </div> <div class="line"><a name="l00048"></a><span class="lineno"> 48</span> </div> <div class="line"><a name="l00049"></a><span class="lineno"> 49</span> </div> <div class="line"><a name="l00065"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html"> 65</a></span> <span class="keyword">class </span><a class="code" href="utypes_8h.html#a559955ec3bc692657c5d8b1c6de8e334" title="Set to export library symbols from inside the common library, and to import them from outside...">U_COMMON_API</a> <a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a> : <span class="keyword">public</span> <a class="code" href="classicu_1_1BreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries in text...">BreakIterator</a> {</div> <div class="line"><a name="l00066"></a><span class="lineno"> 66</span> </div> <div class="line"><a name="l00067"></a><span class="lineno"> 67</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l00072"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#ab69ffd18328d4d75c40fa336f600144c"> 72</a></span>  <a class="code" href="structUText.html" title="UText struct.">UText</a> *<a class="code" href="classicu_1_1RuleBasedBreakIterator.html#ab69ffd18328d4d75c40fa336f600144c" title="The UText through which this BreakIterator accesses the text.">fText</a>;</div> <div class="line"><a name="l00073"></a><span class="lineno"> 73</span> </div> <div class="line"><a name="l00079"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a4757f8dfbe36a25063b47a063fb8edda"> 79</a></span>  <a class="code" href="classicu_1_1CharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a> *<a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a4757f8dfbe36a25063b47a063fb8edda" title="A character iterator that refers to the same text as the UText, above.">fCharIter</a>;</div> <div class="line"><a name="l00080"></a><span class="lineno"> 80</span> </div> <div class="line"><a name="l00086"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a0934b4ebb9ceba54f45daf1585cc11ad"> 86</a></span>  <a class="code" href="classicu_1_1StringCharacterIterator.html" title="A concrete subclass of CharacterIterator that iterates over the characters (code units or code points...">StringCharacterIterator</a> *<a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a0934b4ebb9ceba54f45daf1585cc11ad" title="When the input text is provided by a UnicodeString, this will point to a characterIterator that wraps...">fSCharIter</a>;</div> <div class="line"><a name="l00087"></a><span class="lineno"> 87</span> </div> <div class="line"><a name="l00093"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a96d61cdf86c1f21353880165903b3a21"> 93</a></span>  <a class="code" href="classicu_1_1UCharCharacterIterator.html" title="A concrete subclass of CharacterIterator that iterates over the characters (code units or code points...">UCharCharacterIterator</a> *<a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a96d61cdf86c1f21353880165903b3a21" title="When the input text is provided by a UText, this dummy CharacterIterator over an empty string will be...">fDCharIter</a>;</div> <div class="line"><a name="l00094"></a><span class="lineno"> 94</span> </div> <div class="line"><a name="l00099"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a2ad6052587787523f902a4503693dbe6"> 99</a></span>  RBBIDataWrapper *<a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a2ad6052587787523f902a4503693dbe6" title="The rule data for this BreakIterator instance.">fData</a>;</div> <div class="line"><a name="l00100"></a><span class="lineno"> 100</span> </div> <div class="line"><a name="l00104"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a0cf9cb3e9d3a469da07e5769084a92ba"> 104</a></span>  int32_t <a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a0cf9cb3e9d3a469da07e5769084a92ba" title="Index of the Rule {tag} values for the most recent match.">fLastRuleStatusIndex</a>;</div> <div class="line"><a name="l00105"></a><span class="lineno"> 105</span> </div> <div class="line"><a name="l00112"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#ad7b36fce120d4815545fb8c64ee212e4"> 112</a></span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classicu_1_1RuleBasedBreakIterator.html#ad7b36fce120d4815545fb8c64ee212e4" title="Rule tag value valid flag.">fLastStatusIndexValid</a>;</div> <div class="line"><a name="l00113"></a><span class="lineno"> 113</span> </div> <div class="line"><a name="l00119"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#ab7254c56ca601ee201ddb04818c799ea"> 119</a></span>  uint32_t <a class="code" href="classicu_1_1RuleBasedBreakIterator.html#ab7254c56ca601ee201ddb04818c799ea" title="Counter for the number of characters encountered with the "dictionary" flag set.">fDictionaryCharCount</a>;</div> <div class="line"><a name="l00120"></a><span class="lineno"> 120</span> </div> <div class="line"><a name="l00128"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a604883e51bb50efd1aa2837e5ecc04a2"> 128</a></span>  int32_t* <a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a604883e51bb50efd1aa2837e5ecc04a2" title="When a range of characters is divided up using the dictionary, the break positions that are discovere...">fCachedBreakPositions</a>;</div> <div class="line"><a name="l00129"></a><span class="lineno"> 129</span> </div> <div class="line"><a name="l00134"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a6fbe91a02f14c07700748e7b403538c8"> 134</a></span>  int32_t <a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a6fbe91a02f14c07700748e7b403538c8" title="The number of elements in fCachedBreakPositions.">fNumCachedBreakPositions</a>;</div> <div class="line"><a name="l00135"></a><span class="lineno"> 135</span> </div> <div class="line"><a name="l00141"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#ac08cf5b5025b44871c2b2ed3e5bd07da"> 141</a></span>  int32_t <a class="code" href="classicu_1_1RuleBasedBreakIterator.html#ac08cf5b5025b44871c2b2ed3e5bd07da" title="if fCachedBreakPositions is not null, this indicates which item in the cache the current iteration po...">fPositionInCache</a>;</div> <div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  </div> <div class="line"><a name="l00150"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#aeec423a73b3ecd87b70bc9889dd06ec3"> 150</a></span>  UStack *<a class="code" href="classicu_1_1RuleBasedBreakIterator.html#aeec423a73b3ecd87b70bc9889dd06ec3" title="If present, UStack of LanguageBreakEngine objects that might handle dictionary characters.">fLanguageBreakEngines</a>;</div> <div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div> <div class="line"><a name="l00159"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#ae89884305fdf8157fdb78fc7d9cad3bf"> 159</a></span>  UnhandledEngine *<a class="code" href="classicu_1_1RuleBasedBreakIterator.html#ae89884305fdf8157fdb78fc7d9cad3bf" title="If present, the special LanguageBreakEngine used for handling characters that are in the dictionary s...">fUnhandledBreakEngine</a>;</div> <div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  </div> <div class="line"><a name="l00166"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#ab03fdbed2815f8bfc956360c44a1042c"> 166</a></span>  int32_t <a class="code" href="classicu_1_1RuleBasedBreakIterator.html#ab03fdbed2815f8bfc956360c44a1042c" title="The type of the break iterator, or -1 if it has not been set.">fBreakType</a>;</div> <div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </div> <div class="line"><a name="l00168"></a><span class="lineno"> 168</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="comment">//=======================================================================</span></div> <div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="comment">// constructors</span></div> <div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="comment">//=======================================================================</span></div> <div class="line"><a name="l00172"></a><span class="lineno"> 172</span> </div> <div class="line"><a name="l00173"></a><span class="lineno"> 173</span> <span class="preprocessor">#ifndef U_HIDE_INTERNAL_API</span></div> <div class="line"><a name="l00174"></a><span class="lineno"> 174</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00182"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a971af0f22ca0eb48160f69e9895bcccd"> 182</a></span>  <span class="keyword">enum</span> <a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a971af0f22ca0eb48160f69e9895bcccd" title="Constant to be used in the constructor RuleBasedBreakIterator(RBBIDataHeader*, EDontAdopt, UErrorCode &); which does not adopt the memory indicated by the RBBIDataHeader* parameter.">EDontAdopt</a> {</div> <div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  kDontAdopt</div> <div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  };</div> <div class="line"><a name="l00185"></a><span class="lineno"> 185</span> </div> <div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>(RBBIDataHeader* data, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all C++ compilers...">UErrorCode</a> &status);</div> <div class="line"><a name="l00197"></a><span class="lineno"> 197</span> </div> <div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>(<span class="keyword">const</span> RBBIDataHeader* data, <span class="keyword">enum</span> EDontAdopt dontAdopt, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all C++ compilers...">UErrorCode</a> &status);</div> <div class="line"><a name="l00207"></a><span class="lineno"> 207</span> <span class="preprocessor">#endif </span><span class="comment">/* U_HIDE_INTERNAL_API */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00208"></a><span class="lineno"> 208</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00209"></a><span class="lineno"> 209</span> </div> <div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keyword">friend</span> <span class="keyword">class </span>RBBIRuleBuilder;</div> <div class="line"><a name="l00212"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a5fbb7407696454879cf016b20a0380f0"> 212</a></span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classicu_1_1BreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries in text...">BreakIterator</a>;</div> <div class="line"><a name="l00213"></a><span class="lineno"> 213</span> </div> <div class="line"><a name="l00214"></a><span class="lineno"> 214</span> </div> <div class="line"><a name="l00215"></a><span class="lineno"> 215</span> </div> <div class="line"><a name="l00216"></a><span class="lineno"> 216</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00217"></a><span class="lineno"> 217</span> </div> <div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  <a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>();</div> <div class="line"><a name="l00223"></a><span class="lineno"> 223</span> </div> <div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>(<span class="keyword">const</span> <a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>& that);</div> <div class="line"><a name="l00231"></a><span class="lineno"> 231</span> </div> <div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  <a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>( <span class="keyword">const</span> <a class="code" href="classicu_1_1UnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides similar function...">UnicodeString</a> &rules,</div> <div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> &parseError,</div> <div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all C++ compilers...">UErrorCode</a> &status);</div> <div class="line"><a name="l00243"></a><span class="lineno"> 243</span> </div> <div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>(<span class="keyword">const</span> uint8_t *compiledRules,</div> <div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  uint32_t ruleLength,</div> <div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all C++ compilers...">UErrorCode</a> &status);</div> <div class="line"><a name="l00270"></a><span class="lineno"> 270</span> </div> <div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>(<a class="code" href="udata_8h.html#acffec83601fda29bd4750b24f829f56b" title="Forward declaration of the data memory type.">UDataMemory</a>* image, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all C++ compilers...">UErrorCode</a> &status);</div> <div class="line"><a name="l00284"></a><span class="lineno"> 284</span> </div> <div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  <span class="keyword">virtual</span> ~<a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>();</div> <div class="line"><a name="l00290"></a><span class="lineno"> 290</span> </div> <div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  <a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>& operator=(<span class="keyword">const</span> <a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a>& that);</div> <div class="line"><a name="l00299"></a><span class="lineno"> 299</span> </div> <div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classicu_1_1BreakIterator.html#a5e65e03f2e505ff1dc01311b01790abc" title="Return true if another object is semantically equal to this one.">operator==</a>(<span class="keyword">const</span> <a class="code" href="classicu_1_1BreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries in text...">BreakIterator</a>& that) <span class="keyword">const</span>;</div> <div class="line"><a name="l00309"></a><span class="lineno"> 309</span> </div> <div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classicu_1_1BreakIterator.html#a612d1f537c854399c788c0d250623eff" title="Returns the complement of the result of operator==.">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classicu_1_1BreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries in text...">BreakIterator</a>& that) <span class="keyword">const</span>;</div> <div class="line"><a name="l00318"></a><span class="lineno"> 318</span> </div> <div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keyword">virtual</span> <a class="code" href="classicu_1_1BreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries in text...">BreakIterator</a>* <a class="code" href="classicu_1_1BreakIterator.html#a015c6d751d24f35b1f4339ea86f83c62" title="Return a polymorphic copy of this object.">clone</a>() <span class="keyword">const</span>;</div> <div class="line"><a name="l00330"></a><span class="lineno"> 330</span> </div> <div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keyword">virtual</span> int32_t hashCode(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div> <div class="line"><a name="l00337"></a><span class="lineno"> 337</span> </div> <div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> <a class="code" href="classicu_1_1UnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides similar function...">UnicodeString</a>& getRules(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div> <div class="line"><a name="l00344"></a><span class="lineno"> 344</span> </div> <div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="comment">//=======================================================================</span></div> <div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  <span class="comment">// BreakIterator overrides</span></div> <div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  <span class="comment">//=======================================================================</span></div> <div class="line"><a name="l00348"></a><span class="lineno"> 348</span> </div> <div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keyword">virtual</span> <a class="code" href="classicu_1_1CharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a>& <a class="code" href="classicu_1_1BreakIterator.html#a290f5be64b2dffdfd707b4cdb602379b" title="Return a CharacterIterator over the text being analyzed.">getText</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div> <div class="line"><a name="l00375"></a><span class="lineno"> 375</span> </div> <div class="line"><a name="l00376"></a><span class="lineno"> 376</span> </div> <div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keyword">virtual</span> <a class="code" href="structUText.html" title="UText struct.">UText</a> *<a class="code" href="classicu_1_1BreakIterator.html#af57b33540abfb9c41e9f1e54974d0559" title="Get a UText for the text being analyzed.">getUText</a>(<a class="code" href="structUText.html" title="UText struct.">UText</a> *fillIn, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all C++ compilers...">UErrorCode</a> &status) <span class="keyword">const</span>;</div> <div class="line"><a name="l00392"></a><span class="lineno"> 392</span> </div> <div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classicu_1_1BreakIterator.html#a1fd72184b59936bb62b07af071e2b0c1" title="Change the text over which this operates.">adoptText</a>(<a class="code" href="classicu_1_1CharacterIterator.html" title="Abstract class that defines an API for iteration on text objects.">CharacterIterator</a>* newText);</div> <div class="line"><a name="l00401"></a><span class="lineno"> 401</span> </div> <div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classicu_1_1BreakIterator.html#a8b894129fb567fded3ed85a7e8ead942" title="Change the text over which this operates.">setText</a>(<span class="keyword">const</span> <a class="code" href="classicu_1_1UnicodeString.html" title="UnicodeString is a string class that stores Unicode characters directly and provides similar function...">UnicodeString</a>& newText);</div> <div class="line"><a name="l00409"></a><span class="lineno"> 409</span> </div> <div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classicu_1_1BreakIterator.html#a8b894129fb567fded3ed85a7e8ead942" title="Change the text over which this operates.">setText</a>(<a class="code" href="structUText.html" title="UText struct.">UText</a> *text, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all C++ compilers...">UErrorCode</a> &status);</div> <div class="line"><a name="l00424"></a><span class="lineno"> 424</span> </div> <div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keyword">virtual</span> int32_t <a class="code" href="classicu_1_1BreakIterator.html#abc6bb155a2ec664f63df79a80f8b43e5" title="Set the iterator position to the index of the first character in the text being scanned.">first</a>(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00431"></a><span class="lineno"> 431</span> </div> <div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <span class="keyword">virtual</span> int32_t <a class="code" href="classicu_1_1BreakIterator.html#a2ecbdcabef74105eb7f0747011d05e01" title="Set the iterator position to the index immediately BEYOND the last character in the text being scanne...">last</a>(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00438"></a><span class="lineno"> 438</span> </div> <div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keyword">virtual</span> int32_t <a class="code" href="classicu_1_1BreakIterator.html#a13468dd341e9f0eb92c61f25e88a5154" title="Advance the iterator to the boundary following the current boundary.">next</a>(int32_t n);</div> <div class="line"><a name="l00450"></a><span class="lineno"> 450</span> </div> <div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keyword">virtual</span> int32_t <a class="code" href="classicu_1_1BreakIterator.html#a13468dd341e9f0eb92c61f25e88a5154" title="Advance the iterator to the boundary following the current boundary.">next</a>(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00457"></a><span class="lineno"> 457</span> </div> <div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keyword">virtual</span> int32_t <a class="code" href="classicu_1_1BreakIterator.html#aeede95a59db8408760b106724dfb7a4d" title="Set the iterator position to the boundary preceding the current boundary.">previous</a>(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00464"></a><span class="lineno"> 464</span> </div> <div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  <span class="keyword">virtual</span> int32_t <a class="code" href="classicu_1_1BreakIterator.html#ae4178f880af4875ae5e30a716331fbaf" title="Advance the iterator to the first boundary following the specified offset.">following</a>(int32_t offset);</div> <div class="line"><a name="l00473"></a><span class="lineno"> 473</span> </div> <div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  <span class="keyword">virtual</span> int32_t <a class="code" href="classicu_1_1BreakIterator.html#a980f8e8fbe1d37827cacc24f9606399f" title="Set the iterator position to the first boundary preceding the specified offset.">preceding</a>(int32_t offset);</div> <div class="line"><a name="l00482"></a><span class="lineno"> 482</span> </div> <div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classicu_1_1BreakIterator.html#aaf997425386eae9c50cd5c208dbef214" title="Return true if the specfied position is a boundary position.">isBoundary</a>(int32_t offset);</div> <div class="line"><a name="l00492"></a><span class="lineno"> 492</span> </div> <div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keyword">virtual</span> int32_t <a class="code" href="classicu_1_1BreakIterator.html#af6ad53a2e16b52b8d746f81d2ffdf231" title="Return character index of the current interator position within the text.">current</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div> <div class="line"><a name="l00499"></a><span class="lineno"> 499</span> </div> <div class="line"><a name="l00500"></a><span class="lineno"> 500</span> </div> <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keyword">virtual</span> int32_t <a class="code" href="classicu_1_1BreakIterator.html#ae6ccdc933c069e2b13b2022eefa3ac54" title="For RuleBasedBreakIterators, return the status tag from the break rule that determined the most recen...">getRuleStatus</a>() <span class="keyword">const</span>;</div> <div class="line"><a name="l00534"></a><span class="lineno"> 534</span> </div> <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keyword">virtual</span> int32_t <a class="code" href="classicu_1_1BreakIterator.html#af3bf12df7434e65041447bef51264e13" title="For RuleBasedBreakIterators, get the status (tag) values from the break rule(s) that determined the m...">getRuleStatusVec</a>(int32_t *fillInVec, int32_t capacity, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all C++ compilers...">UErrorCode</a> &status);</div> <div class="line"><a name="l00559"></a><span class="lineno"> 559</span> </div> <div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keyword">virtual</span> <a class="code" href="uobject_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using the compiler's RTTI.">UClassID</a> <a class="code" href="classicu_1_1BreakIterator.html#a5515a96ff2f8ade4e3c2ce581ffe839b" title="Return a polymorphic class ID for this object.">getDynamicClassID</a>(<span class="keywordtype">void</span>) <span class="keyword">const</span>;</div> <div class="line"><a name="l00572"></a><span class="lineno"> 572</span> </div> <div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  <span class="keyword">static</span> <a class="code" href="uobject_8h.html#a22af10545208a455a6e884008df48e9f" title="UClassID is used to identify classes without using the compiler's RTTI.">UClassID</a> U_EXPORT2 getStaticClassID(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00585"></a><span class="lineno"> 585</span> </div> <div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keyword">virtual</span> <a class="code" href="classicu_1_1BreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries in text...">BreakIterator</a> * <a class="code" href="classicu_1_1BreakIterator.html#ac0b126946521a209ec2c6d490b7db86e" title="Deprecated functionality.">createBufferClone</a>(<span class="keywordtype">void</span> *stackBuffer,</div> <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  int32_t &BufferSize,</div> <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all C++ compilers...">UErrorCode</a> &status);</div> <div class="line"><a name="l00615"></a><span class="lineno"> 615</span> </div> <div class="line"><a name="l00616"></a><span class="lineno"> 616</span> </div> <div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keyword">virtual</span> <span class="keyword">const</span> uint8_t *getBinaryRules(uint32_t &length);</div> <div class="line"><a name="l00635"></a><span class="lineno"> 635</span> </div> <div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  <span class="keyword">virtual</span> <a class="code" href="classicu_1_1RuleBasedBreakIterator.html" title="A subclass of BreakIterator whose behavior is specified using a list of rules.">RuleBasedBreakIterator</a> &<a class="code" href="classicu_1_1BreakIterator.html#a88ac5ff907f98e814783267b7fe082a5" title="Set the subject text string upon which the break iterator is operating without changing any other asp...">refreshInputText</a>(<a class="code" href="structUText.html" title="UText struct.">UText</a> *input, <a class="code" href="utypes_8h.html#a3343c1c8a8377277046774691c98d78c" title="Error code to replace exception handling, so that the code is compatible with all C++ compilers...">UErrorCode</a> &status);</div> <div class="line"><a name="l00662"></a><span class="lineno"> 662</span> </div> <div class="line"><a name="l00663"></a><span class="lineno"> 663</span> </div> <div class="line"><a name="l00664"></a><span class="lineno"> 664</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  <span class="comment">//=======================================================================</span></div> <div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <span class="comment">// implementation</span></div> <div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="comment">//=======================================================================</span></div> <div class="line"><a name="l00673"></a><span class="lineno"> 673</span> <span class="comment"></span> <span class="keyword">virtual</span> <span class="keywordtype">void</span> reset(<span class="keywordtype">void</span>);</div> <div class="line"><a name="l00674"></a><span class="lineno"> 674</span> </div> <div class="line"><a name="l00675"></a><span class="lineno"> 675</span> <span class="preprocessor">#if 0</span></div> <div class="line"><a name="l00676"></a><span class="lineno"> 676</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keyword">virtual</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isDictionaryChar(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a>);</div> <div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div> <div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  <span class="keyword">virtual</span> int32_t getBreakType() <span class="keyword">const</span>;</div> <div class="line"><a name="l00691"></a><span class="lineno"> 691</span> <span class="preprocessor">#endif</span></div> <div class="line"><a name="l00692"></a><span class="lineno"> 692</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keyword">virtual</span> <span class="keywordtype">void</span> setBreakType(int32_t type);</div> <div class="line"><a name="l00698"></a><span class="lineno"> 698</span> </div> <div class="line"><a name="l00699"></a><span class="lineno"> 699</span> <span class="preprocessor">#ifndef U_HIDE_INTERNAL_API</span></div> <div class="line"><a name="l00700"></a><span class="lineno"> 700</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  <span class="keywordtype">void</span> init();</div> <div class="line"><a name="l00705"></a><span class="lineno"> 705</span> <span class="preprocessor">#endif </span><span class="comment">/* U_HIDE_INTERNAL_API */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00706"></a><span class="lineno"> 706</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00707"></a><span class="lineno"> 707</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00708"></a><span class="lineno"> 708</span> </div> <div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  int32_t handlePrevious(<span class="keyword">const</span> RBBIStateTable *statetable);</div> <div class="line"><a name="l00719"></a><span class="lineno"> 719</span> </div> <div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  int32_t handleNext(<span class="keyword">const</span> RBBIStateTable *statetable);</div> <div class="line"><a name="l00730"></a><span class="lineno"> 730</span> </div> <div class="line"><a name="l00731"></a><span class="lineno"> 731</span> <span class="keyword">protected</span>:</div> <div class="line"><a name="l00732"></a><span class="lineno"> 732</span> </div> <div class="line"><a name="l00733"></a><span class="lineno"> 733</span> <span class="preprocessor">#ifndef U_HIDE_INTERNAL_API</span></div> <div class="line"><a name="l00734"></a><span class="lineno"> 734</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  int32_t checkDictionary(int32_t startPos, int32_t endPos, <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> reverse);</div> <div class="line"><a name="l00749"></a><span class="lineno"> 749</span> <span class="preprocessor">#endif </span><span class="comment">/* U_HIDE_INTERNAL_API */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00750"></a><span class="lineno"> 750</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00751"></a><span class="lineno"> 751</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00752"></a><span class="lineno"> 752</span> </div> <div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <span class="keyword">const</span> LanguageBreakEngine *getLanguageBreakEngine(<a class="code" href="umachine_8h.html#a09fff5c3b5a5b015324dc3ec3cf92809" title="Define UChar32 as a type for single Unicode code points.">UChar32</a> c);</div> <div class="line"><a name="l00760"></a><span class="lineno"> 760</span> </div> <div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <span class="keywordtype">void</span> makeRuleStatusValid();</div> <div class="line"><a name="l00765"></a><span class="lineno"> 765</span> </div> <div class="line"><a name="l00766"></a><span class="lineno"> 766</span> };</div> <div class="line"><a name="l00767"></a><span class="lineno"> 767</span> </div> <div class="line"><a name="l00768"></a><span class="lineno"> 768</span> <span class="comment">//------------------------------------------------------------------------------</span></div> <div class="line"><a name="l00769"></a><span class="lineno"> 769</span> <span class="comment">//</span></div> <div class="line"><a name="l00770"></a><span class="lineno"> 770</span> <span class="comment">// Inline Functions Definitions ...</span></div> <div class="line"><a name="l00771"></a><span class="lineno"> 771</span> <span class="comment">//</span></div> <div class="line"><a name="l00772"></a><span class="lineno"> 772</span> <span class="comment">//------------------------------------------------------------------------------</span></div> <div class="line"><a name="l00773"></a><span class="lineno"> 773</span> </div> <div class="line"><a name="l00774"></a><span class="lineno"><a class="code" href="classicu_1_1RuleBasedBreakIterator.html#a130e3a1966553917d702dd2bc0614f44"> 774</a></span> <span class="keyword">inline</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="namespaceicu.html#ae44c6e373e08014d12f6a4d51ca96b0e" title="Global operator != for StringPiece.">RuleBasedBreakIterator::operator!=</a>(<span class="keyword">const</span> <a class="code" href="classicu_1_1BreakIterator.html" title="The BreakIterator class implements methods for finding the location of boundaries in text...">BreakIterator</a>& that)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="keywordflow">return</span> !<a class="code" href="namespaceicu.html#a1c2f6ca43e636f38d1a3291eb851e9f0" title="Global operator == for StringPiece.">operator==</a>(that);</div> <div class="line"><a name="l00776"></a><span class="lineno"> 776</span> }</div> <div class="line"><a name="l00777"></a><span class="lineno"> 777</span> </div> <div class="line"><a name="l00778"></a><span class="lineno"> 778</span> <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></div> <div class="line"><a name="l00779"></a><span class="lineno"> 779</span> </div> <div class="line"><a name="l00780"></a><span class="lineno"> 780</span> <span class="preprocessor">#endif </span><span class="comment">/* #if !UCONFIG_NO_BREAK_ITERATION */</span><span class="preprocessor"></span></div> <div class="line"><a name="l00781"></a><span class="lineno"> 781</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00782"></a><span class="lineno"> 782</span> <span class="preprocessor">#endif</span></div> </div><!-- fragment --></div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated on Fri Oct 4 2013 14:10:21 for ICU 52.1 by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.1.2 </small></address> </body> </html>