<!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: messagepattern.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">messagepattern.h</div> </div> </div><!--header--> <div class="contents"> <a href="messagepattern_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) 2011-2013, International Business Machines</span></div> <div class="line"><a name="l00004"></a><span class="lineno"> 4</span> <span class="comment">* Corporation 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">* file name: messagepattern.h</span></div> <div class="line"><a name="l00007"></a><span class="lineno"> 7</span> <span class="comment">* encoding: US-ASCII</span></div> <div class="line"><a name="l00008"></a><span class="lineno"> 8</span> <span class="comment">* tab size: 8 (not used)</span></div> <div class="line"><a name="l00009"></a><span class="lineno"> 9</span> <span class="comment">* indentation:4</span></div> <div class="line"><a name="l00010"></a><span class="lineno"> 10</span> <span class="comment">*</span></div> <div class="line"><a name="l00011"></a><span class="lineno"> 11</span> <span class="comment">* created on: 2011mar14</span></div> <div class="line"><a name="l00012"></a><span class="lineno"> 12</span> <span class="comment">* created by: Markus W. Scherer</span></div> <div class="line"><a name="l00013"></a><span class="lineno"> 13</span> <span class="comment">*/</span></div> <div class="line"><a name="l00014"></a><span class="lineno"> 14</span> </div> <div class="line"><a name="l00015"></a><span class="lineno"> 15</span> <span class="preprocessor">#ifndef __MESSAGEPATTERN_H__</span></div> <div class="line"><a name="l00016"></a><span class="lineno"> 16</span> <span class="preprocessor"></span><span class="preprocessor">#define __MESSAGEPATTERN_H__</span></div> <div class="line"><a name="l00017"></a><span class="lineno"> 17</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00023"></a><span class="lineno"> 23</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="l00024"></a><span class="lineno"> 24</span> </div> <div class="line"><a name="l00025"></a><span class="lineno"> 25</span> <span class="preprocessor">#if !UCONFIG_NO_FORMATTING</span></div> <div class="line"><a name="l00026"></a><span class="lineno"> 26</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00027"></a><span class="lineno"> 27</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="l00028"></a><span class="lineno"> 28</span> <span class="preprocessor">#include "<a class="code" href="unistr_8h.html" title="C++ API: Unicode String.">unicode/unistr.h</a>"</span></div> <div class="line"><a name="l00029"></a><span class="lineno"> 29</span> </div> <div class="line"><a name="l00066"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b"> 66</a></span> <span class="keyword">enum</span> <a class="code" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b" title="Mode for when an apostrophe starts quoted literal text for MessageFormat output.">UMessagePatternApostropheMode</a> {</div> <div class="line"><a name="l00078"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978ba67b6ac40cab95b17ecd559d24f1066c7"> 78</a></span>  <a class="code" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978ba67b6ac40cab95b17ecd559d24f1066c7" title="A literal apostrophe is represented by either a single or a double apostrophe pattern character...">UMSGPAT_APOS_DOUBLE_OPTIONAL</a>,</div> <div class="line"><a name="l00087"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978ba947d8779e9c59baf35a5eb82d8327d78"> 87</a></span>  <a class="code" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978ba947d8779e9c59baf35a5eb82d8327d78" title="A literal apostrophe must be represented by a double apostrophe pattern character.">UMSGPAT_APOS_DOUBLE_REQUIRED</a></div> <div class="line"><a name="l00088"></a><span class="lineno"> 88</span> };</div> <div class="line"><a name="l00092"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a56aa1f898bc4cb898a0cb2facb19b258"> 92</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b" title="Mode for when an apostrophe starts quoted literal text for MessageFormat output.">UMessagePatternApostropheMode</a> <a class="code" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b" title="Mode for when an apostrophe starts quoted literal text for MessageFormat output.">UMessagePatternApostropheMode</a>;</div> <div class="line"><a name="l00093"></a><span class="lineno"> 93</span> </div> <div class="line"><a name="l00098"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42"> 98</a></span> <span class="keyword">enum</span> <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42" title="MessagePattern::Part type constants.">UMessagePatternPartType</a> {</div> <div class="line"><a name="l00108"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a4bd3165108d25c0aabaaa3715105efff"> 108</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a4bd3165108d25c0aabaaa3715105efff" title="Start of a message pattern (main or nested).">UMSGPAT_PART_TYPE_MSG_START</a>,</div> <div class="line"><a name="l00117"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a981fcd6e08cc32f6844f1ebebe735add"> 117</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a981fcd6e08cc32f6844f1ebebe735add" title="End of a message pattern (main or nested).">UMSGPAT_PART_TYPE_MSG_LIMIT</a>,</div> <div class="line"><a name="l00125"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ae8bd3978e3b14fa1b6918946420a262d"> 125</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ae8bd3978e3b14fa1b6918946420a262d" title="Indicates a substring of the pattern string which is to be skipped when formatting.">UMSGPAT_PART_TYPE_SKIP_SYNTAX</a>,</div> <div class="line"><a name="l00132"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a0c93d5325ec8fbf16b4084e262d27c9c"> 132</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a0c93d5325ec8fbf16b4084e262d27c9c" title="Indicates that a syntax character needs to be inserted for auto-quoting.">UMSGPAT_PART_TYPE_INSERT_CHAR</a>,</div> <div class="line"><a name="l00140"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ac4387c3e4c2f1ccf8ba85c4c7ebf607f"> 140</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ac4387c3e4c2f1ccf8ba85c4c7ebf607f" title="Indicates a syntactic (non-escaped) # symbol in a plural variant.">UMSGPAT_PART_TYPE_REPLACE_NUMBER</a>,</div> <div class="line"><a name="l00151"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42aa628d48a636ed1f2e919fbbf40ef973c"> 151</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42aa628d48a636ed1f2e919fbbf40ef973c" title="Start of an argument.">UMSGPAT_PART_TYPE_ARG_START</a>,</div> <div class="line"><a name="l00158"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a6a3ee80a2a43880edda7c8e0ef40a37d"> 158</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a6a3ee80a2a43880edda7c8e0ef40a37d" title="End of an argument.">UMSGPAT_PART_TYPE_ARG_LIMIT</a>,</div> <div class="line"><a name="l00163"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a8af70d71e2c979c8d4e961681a4810de"> 163</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a8af70d71e2c979c8d4e961681a4810de" title="The argument number, provided by the value.">UMSGPAT_PART_TYPE_ARG_NUMBER</a>,</div> <div class="line"><a name="l00169"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42aa43b050de6dc11607370eced59f633cf"> 169</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42aa43b050de6dc11607370eced59f633cf" title="The argument name.">UMSGPAT_PART_TYPE_ARG_NAME</a>,</div> <div class="line"><a name="l00175"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a242bbe84918cbae58ebb7d092d547d6b"> 175</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a242bbe84918cbae58ebb7d092d547d6b" title="The argument type.">UMSGPAT_PART_TYPE_ARG_TYPE</a>,</div> <div class="line"><a name="l00181"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ad33534e042bb62a80863ce5d4e3bfbbe"> 181</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ad33534e042bb62a80863ce5d4e3bfbbe" title="The argument style text.">UMSGPAT_PART_TYPE_ARG_STYLE</a>,</div> <div class="line"><a name="l00187"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a4c5bcf896e840fe14ab96ec6883fe413"> 187</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a4c5bcf896e840fe14ab96ec6883fe413" title="A selector substring in a "complex" argument style.">UMSGPAT_PART_TYPE_ARG_SELECTOR</a>,</div> <div class="line"><a name="l00194"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ad850e66569eff3e9ffef20759d93b1da"> 194</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ad850e66569eff3e9ffef20759d93b1da" title="An integer value, for example the offset or an explicit selector value in a PluralFormat style...">UMSGPAT_PART_TYPE_ARG_INT</a>,</div> <div class="line"><a name="l00202"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a98883b70d5ed087231e24e92fbe8c574"> 202</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a98883b70d5ed087231e24e92fbe8c574" title="A numeric value, for example the offset or an explicit selector value in a PluralFormat style...">UMSGPAT_PART_TYPE_ARG_DOUBLE</a></div> <div class="line"><a name="l00203"></a><span class="lineno"> 203</span> };</div> <div class="line"><a name="l00207"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a26bb77f47a6057af80c25d97bf2a2595"> 207</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42" title="MessagePattern::Part type constants.">UMessagePatternPartType</a> <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42" title="MessagePattern::Part type constants.">UMessagePatternPartType</a>;</div> <div class="line"><a name="l00208"></a><span class="lineno"> 208</span> </div> <div class="line"><a name="l00217"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103"> 217</a></span> <span class="keyword">enum</span> <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103" title="Argument type constants.">UMessagePatternArgType</a> {</div> <div class="line"><a name="l00222"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a419f02d51dc27433115e3b6715fbe3cd"> 222</a></span>  <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a419f02d51dc27433115e3b6715fbe3cd" title="The argument has no specified type.">UMSGPAT_ARG_TYPE_NONE</a>,</div> <div class="line"><a name="l00228"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a83d34af9ec6acd74a3e44b32b46c760e"> 228</a></span>  <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a83d34af9ec6acd74a3e44b32b46c760e" title="The argument has a "simple" type which is provided by the ARG_TYPE part.">UMSGPAT_ARG_TYPE_SIMPLE</a>,</div> <div class="line"><a name="l00234"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103ae9806dab1d5f2143ad7df93025173095"> 234</a></span>  <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103ae9806dab1d5f2143ad7df93025173095" title="The argument is a ChoiceFormat with one or more ((ARG_INT | ARG_DOUBLE), ARG_SELECTOR, message) tuples.">UMSGPAT_ARG_TYPE_CHOICE</a>,</div> <div class="line"><a name="l00244"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a7066f3f8f4176fb06e6fab5c95869ec0"> 244</a></span>  <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a7066f3f8f4176fb06e6fab5c95869ec0" title="The argument is a cardinal-number PluralFormat with an optional ARG_INT or ARG_DOUBLE offset (e...">UMSGPAT_ARG_TYPE_PLURAL</a>,</div> <div class="line"><a name="l00249"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a37134f17547a6466760b723e45a2f20a"> 249</a></span>  <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a37134f17547a6466760b723e45a2f20a" title="The argument is a SelectFormat with one or more (ARG_SELECTOR, message) pairs.">UMSGPAT_ARG_TYPE_SELECT</a>,</div> <div class="line"><a name="l00255"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103aaa1f61c11a6c343edc5d6b4a8d75661f"> 255</a></span>  <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103aaa1f61c11a6c343edc5d6b4a8d75661f" title="The argument is an ordinal-number PluralFormat with the same style parts sequence and semantics as UM...">UMSGPAT_ARG_TYPE_SELECTORDINAL</a></div> <div class="line"><a name="l00256"></a><span class="lineno"> 256</span> };</div> <div class="line"><a name="l00260"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a3f22f44bff63324c2a6591e7a7dde523"> 260</a></span> <span class="keyword">typedef</span> <span class="keyword">enum</span> <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103" title="Argument type constants.">UMessagePatternArgType</a> <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103" title="Argument type constants.">UMessagePatternArgType</a>;</div> <div class="line"><a name="l00261"></a><span class="lineno"> 261</span> </div> <div class="line"><a name="l00268"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a1c4e21bee1892fbd050e55e85ac1a5c4"> 268</a></span> <span class="preprocessor">#define UMSGPAT_ARG_TYPE_HAS_PLURAL_STYLE(argType) \</span></div> <div class="line"><a name="l00269"></a><span class="lineno"> 269</span> <span class="preprocessor"> ((argType)==UMSGPAT_ARG_TYPE_PLURAL || (argType)==UMSGPAT_ARG_TYPE_SELECTORDINAL)</span></div> <div class="line"><a name="l00270"></a><span class="lineno"> 270</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00271"></a><span class="lineno"> 271</span> <span class="keyword">enum</span> {</div> <div class="line"><a name="l00277"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a99fb83031ce9923c84392b4e92f956b5a7b6fc83818b6e89ef39f116bfd0d9dda"> 277</a></span>  <a class="code" href="messagepattern_8h.html#a99fb83031ce9923c84392b4e92f956b5a7b6fc83818b6e89ef39f116bfd0d9dda" title="Return value from MessagePattern.validateArgumentName() for when the string is a valid "pattern ident...">UMSGPAT_ARG_NAME_NOT_NUMBER</a>=-1,</div> <div class="line"><a name="l00278"></a><span class="lineno"> 278</span> </div> <div class="line"><a name="l00286"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#a99fb83031ce9923c84392b4e92f956b5a7086b0b8fe7c4867c8df719f45928a50"> 286</a></span>  <a class="code" href="messagepattern_8h.html#a99fb83031ce9923c84392b4e92f956b5a7086b0b8fe7c4867c8df719f45928a50" title="Return value from MessagePattern.validateArgumentName() for when the string is invalid.">UMSGPAT_ARG_NAME_NOT_VALID</a>=-2</div> <div class="line"><a name="l00287"></a><span class="lineno"> 287</span> };</div> <div class="line"><a name="l00288"></a><span class="lineno"> 288</span> </div> <div class="line"><a name="l00295"></a><span class="lineno"><a class="code" href="messagepattern_8h.html#af8a7d74f8813a30c41f063dde64e3c12"> 295</a></span> <span class="preprocessor">#define UMSGPAT_NO_NUMERIC_VALUE ((double)(-123456789))</span></div> <div class="line"><a name="l00296"></a><span class="lineno"> 296</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00297"></a><span class="lineno"> 297</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="l00298"></a><span class="lineno"> 298</span> </div> <div class="line"><a name="l00299"></a><span class="lineno"> 299</span> <span class="keyword">class </span>MessagePatternDoubleList;</div> <div class="line"><a name="l00300"></a><span class="lineno"> 300</span> <span class="keyword">class </span>MessagePatternPartsList;</div> <div class="line"><a name="l00301"></a><span class="lineno"> 301</span> </div> <div class="line"><a name="l00358"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html"> 358</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_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a> : <span class="keyword">public</span> <a class="code" href="classicu_1_1UObject.html" title="UObject is the common ICU "boilerplate" class.">UObject</a> {</div> <div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="keyword">public</span>:</div> <div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a>(<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> &errorCode);</div> <div class="line"><a name="l00369"></a><span class="lineno"> 369</span> </div> <div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a>(<a class="code" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b" title="Mode for when an apostrophe starts quoted literal text for MessageFormat output.">UMessagePatternApostropheMode</a> mode, <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> &errorCode);</div> <div class="line"><a name="l00380"></a><span class="lineno"> 380</span> </div> <div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</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> &pattern, <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, <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> &errorCode);</div> <div class="line"><a name="l00400"></a><span class="lineno"> 400</span> </div> <div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a>(<span class="keyword">const</span> <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a> &other);</div> <div class="line"><a name="l00407"></a><span class="lineno"> 407</span> </div> <div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a> &operator=(<span class="keyword">const</span> <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a> &other);</div> <div class="line"><a name="l00415"></a><span class="lineno"> 415</span> </div> <div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keyword">virtual</span> ~<a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a>();</div> <div class="line"><a name="l00421"></a><span class="lineno"> 421</span> </div> <div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a> &parse(<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> &pattern,</div> <div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, <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> &errorCode);</div> <div class="line"><a name="l00441"></a><span class="lineno"> 441</span> </div> <div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a> &parseChoiceStyle(<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> &pattern,</div> <div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, <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> &errorCode);</div> <div class="line"><a name="l00461"></a><span class="lineno"> 461</span> </div> <div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a> &parsePluralStyle(<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> &pattern,</div> <div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, <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> &errorCode);</div> <div class="line"><a name="l00481"></a><span class="lineno"> 481</span> </div> <div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a> &parseSelectStyle(<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> &pattern,</div> <div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, <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> &errorCode);</div> <div class="line"><a name="l00501"></a><span class="lineno"> 501</span> </div> <div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  <span class="keywordtype">void</span> clear();</div> <div class="line"><a name="l00508"></a><span class="lineno"> 508</span> </div> <div class="line"><a name="l00515"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#a7e7d539e8f97c4ad607661e78bad2839"> 515</a></span>  <span class="keywordtype">void</span> <a class="code" href="classicu_1_1MessagePattern.html#a7e7d539e8f97c4ad607661e78bad2839" title="Clears this MessagePattern and sets the UMessagePatternApostropheMode.">clearPatternAndSetApostropheMode</a>(<a class="code" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b" title="Mode for when an apostrophe starts quoted literal text for MessageFormat output.">UMessagePatternApostropheMode</a> mode) {</div> <div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  clear();</div> <div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  aposMode=mode;</div> <div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  }</div> <div class="line"><a name="l00519"></a><span class="lineno"> 519</span> </div> <div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="namespaceicu.html#a1c2f6ca43e636f38d1a3291eb851e9f0" title="Global operator == for StringPiece.">operator==</a>(<span class="keyword">const</span> <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a> &other) <span class="keyword">const</span>;</div> <div class="line"><a name="l00526"></a><span class="lineno"> 526</span> </div> <div class="line"><a name="l00532"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#a21e0740af1bae2300b3734488a5fe138"> 532</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="classicu_1_1MessagePattern.html#a21e0740af1bae2300b3734488a5fe138">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a> &other)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  <span class="keywordflow">return</span> !<a class="code" href="namespaceicu.html#a1c2f6ca43e636f38d1a3291eb851e9f0" title="Global operator == for StringPiece.">operator==</a>(other);</div> <div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  }</div> <div class="line"><a name="l00535"></a><span class="lineno"> 535</span> </div> <div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  int32_t hashCode() <span class="keyword">const</span>;</div> <div class="line"><a name="l00541"></a><span class="lineno"> 541</span> </div> <div class="line"><a name="l00546"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#a04aa036147c53efb73d6068f4ab0ca3b"> 546</a></span>  <a class="code" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b" title="Mode for when an apostrophe starts quoted literal text for MessageFormat output.">UMessagePatternApostropheMode</a> <a class="code" href="classicu_1_1MessagePattern.html#a04aa036147c53efb73d6068f4ab0ca3b">getApostropheMode</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">return</span> aposMode;</div> <div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  }</div> <div class="line"><a name="l00549"></a><span class="lineno"> 549</span> </div> <div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="comment">// Java has package-private jdkAposMode() here.</span></div> <div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="comment">// In C++, this is declared in the MessageImpl class.</span></div> <div class="line"><a name="l00552"></a><span class="lineno"> 552</span> </div> <div class="line"><a name="l00557"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#aa962d7f8e62a77935f6dc574a58f7452"> 557</a></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> &<a class="code" href="classicu_1_1MessagePattern.html#aa962d7f8e62a77935f6dc574a58f7452">getPatternString</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordflow">return</span> msg;</div> <div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  }</div> <div class="line"><a name="l00560"></a><span class="lineno"> 560</span> </div> <div class="line"><a name="l00566"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#a36ad0b520c254066a970e5581a796c7f"> 566</a></span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classicu_1_1MessagePattern.html#a36ad0b520c254066a970e5581a796c7f" title="Does the parsed pattern have named arguments like {first_name}?">hasNamedArguments</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  <span class="keywordflow">return</span> hasArgNames;</div> <div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  }</div> <div class="line"><a name="l00569"></a><span class="lineno"> 569</span> </div> <div class="line"><a name="l00575"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#a9d3cf9d08f6698e5c67bc8a656aa2106"> 575</a></span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classicu_1_1MessagePattern.html#a9d3cf9d08f6698e5c67bc8a656aa2106" title="Does the parsed pattern have numbered arguments like {2}?">hasNumberedArguments</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keywordflow">return</span> hasArgNumbers;</div> <div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  }</div> <div class="line"><a name="l00578"></a><span class="lineno"> 578</span> </div> <div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keyword">static</span> int32_t validateArgumentName(<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> &name);</div> <div class="line"><a name="l00591"></a><span class="lineno"> 591</span> </div> <div class="line"><a name="l00602"></a><span class="lineno"> 602</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> autoQuoteApostropheDeep() <span class="keyword">const</span>;</div> <div class="line"><a name="l00603"></a><span class="lineno"> 603</span> </div> <div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keyword">class </span>Part;</div> <div class="line"><a name="l00605"></a><span class="lineno"> 605</span> </div> <div class="line"><a name="l00612"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#a1b937d90fe99c83c2248c374055e7827"> 612</a></span>  int32_t <a class="code" href="classicu_1_1MessagePattern.html#a1b937d90fe99c83c2248c374055e7827" title="Returns the number of "parts" created by parsing the pattern string.">countParts</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  <span class="keywordflow">return</span> partsLength;</div> <div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  }</div> <div class="line"><a name="l00615"></a><span class="lineno"> 615</span> </div> <div class="line"><a name="l00622"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#afdde90a04871a5d8820b14972af36c40"> 622</a></span>  <span class="keyword">const</span> <a class="code" href="classicu_1_1MessagePattern_1_1Part.html" title="A message pattern "part", representing a pattern parsing event.">Part</a> &<a class="code" href="classicu_1_1MessagePattern.html#afdde90a04871a5d8820b14972af36c40" title="Gets the i-th pattern "part".">getPart</a>(int32_t i)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keywordflow">return</span> parts[i];</div> <div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  }</div> <div class="line"><a name="l00625"></a><span class="lineno"> 625</span> </div> <div class="line"><a name="l00633"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#ac0028705c9e95c699bd7cbb6819652bc"> 633</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42" title="MessagePattern::Part type constants.">UMessagePatternPartType</a> <a class="code" href="classicu_1_1MessagePattern.html#ac0028705c9e95c699bd7cbb6819652bc" title="Returns the UMessagePatternPartType of the i-th pattern "part".">getPartType</a>(int32_t i)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordflow">return</span> getPart(i).type;</div> <div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  }</div> <div class="line"><a name="l00636"></a><span class="lineno"> 636</span> </div> <div class="line"><a name="l00644"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#aa3fd08e8bc4db439b0094290687b4bde"> 644</a></span>  int32_t <a class="code" href="classicu_1_1MessagePattern.html#aa3fd08e8bc4db439b0094290687b4bde" title="Returns the pattern index of the specified pattern "part".">getPatternIndex</a>(int32_t partIndex)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  <span class="keywordflow">return</span> getPart(partIndex).index;</div> <div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  }</div> <div class="line"><a name="l00647"></a><span class="lineno"> 647</span> </div> <div class="line"><a name="l00655"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#aa3d2bde4b5c21b1660e562db8d87deb6"> 655</a></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> <a class="code" href="classicu_1_1MessagePattern.html#aa3d2bde4b5c21b1660e562db8d87deb6" title="Returns the substring of the pattern string indicated by the Part.">getSubstring</a>(<span class="keyword">const</span> <a class="code" href="classicu_1_1MessagePattern_1_1Part.html" title="A message pattern "part", representing a pattern parsing event.">Part</a> &part)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  <span class="keywordflow">return</span> msg.<a class="code" href="classicu_1_1UnicodeString.html#a99f5fd0abf6c8e53f21865bf0b737669" title="Create a temporary substring for the specified range.">tempSubString</a>(part.index, part.length);</div> <div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  }</div> <div class="line"><a name="l00658"></a><span class="lineno"> 658</span> </div> <div class="line"><a name="l00666"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#acf231660a77b49b67e3bbf8c2ebdfdd1"> 666</a></span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classicu_1_1MessagePattern.html#acf231660a77b49b67e3bbf8c2ebdfdd1" title="Compares the part's substring with the input string s.">partSubstringMatches</a>(<span class="keyword">const</span> <a class="code" href="classicu_1_1MessagePattern_1_1Part.html" title="A message pattern "part", representing a pattern parsing event.">Part</a> &part, <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> &s)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  <span class="keywordflow">return</span> 0==msg.compare(part.index, part.length, s);</div> <div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  }</div> <div class="line"><a name="l00669"></a><span class="lineno"> 669</span> </div> <div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  <span class="keywordtype">double</span> getNumericValue(<span class="keyword">const</span> Part &part) <span class="keyword">const</span>;</div> <div class="line"><a name="l00677"></a><span class="lineno"> 677</span> </div> <div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordtype">double</span> getPluralOffset(int32_t pluralStart) <span class="keyword">const</span>;</div> <div class="line"><a name="l00685"></a><span class="lineno"> 685</span> </div> <div class="line"><a name="l00694"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern.html#a80fbef3078aee0827a4001b095eabf0a"> 694</a></span>  int32_t <a class="code" href="classicu_1_1MessagePattern.html#a80fbef3078aee0827a4001b095eabf0a" title="Returns the index of the ARG|MSG_LIMIT part corresponding to the ARG|MSG_START at start...">getLimitPartIndex</a>(int32_t start)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  int32_t limit=getPart(start).limitPartIndex;</div> <div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keywordflow">if</span>(limit<start) {</div> <div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  <span class="keywordflow">return</span> start;</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="keywordflow">return</span> limit;</div> <div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  }</div> <div class="line"><a name="l00701"></a><span class="lineno"> 701</span> </div> <div class="line"><a name="l00709"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern_1_1Part.html"> 709</a></span>  <span class="keyword">class </span><a class="code" href="classicu_1_1MessagePattern_1_1Part.html" title="A message pattern "part", representing a pattern parsing event.">Part</a> : <span class="keyword">public</span> <a class="code" href="classicu_1_1UMemory.html" title="UMemory is the common ICU base class.">UMemory</a> {</div> <div class="line"><a name="l00710"></a><span class="lineno"> 710</span>  <span class="keyword">public</span>:</div> <div class="line"><a name="l00715"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern_1_1Part.html#aff7c0108068568d54065ac196c1a7908"> 715</a></span>  <a class="code" href="classicu_1_1MessagePattern_1_1Part.html#aff7c0108068568d54065ac196c1a7908" title="Default constructor, do not use.">Part</a>() {}</div> <div class="line"><a name="l00716"></a><span class="lineno"> 716</span> </div> <div class="line"><a name="l00722"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern_1_1Part.html#a943f7fd6901d12754cf38ed006f7725d"> 722</a></span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42" title="MessagePattern::Part type constants.">UMessagePatternPartType</a> <a class="code" href="classicu_1_1MessagePattern_1_1Part.html#a943f7fd6901d12754cf38ed006f7725d" title="Returns the type of this part.">getType</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <span class="keywordflow">return</span> type;</div> <div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  }</div> <div class="line"><a name="l00725"></a><span class="lineno"> 725</span> </div> <div class="line"><a name="l00731"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern_1_1Part.html#acdffe3987cbddbbf1b9398198fae5e9d"> 731</a></span>  int32_t <a class="code" href="classicu_1_1MessagePattern_1_1Part.html#acdffe3987cbddbbf1b9398198fae5e9d" title="Returns the pattern string index associated with this Part.">getIndex</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">return</span> index;</div> <div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  }</div> <div class="line"><a name="l00734"></a><span class="lineno"> 734</span> </div> <div class="line"><a name="l00741"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern_1_1Part.html#a326a9455e45f222357d5e76efe90ccae"> 741</a></span>  int32_t <a class="code" href="classicu_1_1MessagePattern_1_1Part.html#a326a9455e45f222357d5e76efe90ccae" title="Returns the length of the pattern substring associated with this Part.">getLength</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">return</span> length;</div> <div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  }</div> <div class="line"><a name="l00744"></a><span class="lineno"> 744</span> </div> <div class="line"><a name="l00751"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern_1_1Part.html#a00960d6407fa5d6d8c93bd20e9339000"> 751</a></span>  int32_t <a class="code" href="classicu_1_1MessagePattern_1_1Part.html#a00960d6407fa5d6d8c93bd20e9339000" title="Returns the pattern string limit (exclusive-end) index associated with this Part.">getLimit</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="keywordflow">return</span> index+length;</div> <div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  }</div> <div class="line"><a name="l00754"></a><span class="lineno"> 754</span> </div> <div class="line"><a name="l00761"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern_1_1Part.html#a8203f71c45206c2d83dbe957c669ba61"> 761</a></span>  int32_t <a class="code" href="classicu_1_1MessagePattern_1_1Part.html#a8203f71c45206c2d83dbe957c669ba61" title="Returns a value associated with this part.">getValue</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  <span class="keywordflow">return</span> value;</div> <div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  }</div> <div class="line"><a name="l00764"></a><span class="lineno"> 764</span> </div> <div class="line"><a name="l00771"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern_1_1Part.html#a3b8dadff166c7bb9e1327f090851b4e2"> 771</a></span>  <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103" title="Argument type constants.">UMessagePatternArgType</a> <a class="code" href="classicu_1_1MessagePattern_1_1Part.html#a3b8dadff166c7bb9e1327f090851b4e2" title="Returns the argument type if this part is of type ARG_START or ARG_LIMIT, otherwise UMSGPAT_ARG_TYPE_...">getArgType</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42" title="MessagePattern::Part type constants.">UMessagePatternPartType</a> type=getType();</div> <div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keywordflow">if</span>(type==<a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42aa628d48a636ed1f2e919fbbf40ef973c" title="Start of an argument.">UMSGPAT_PART_TYPE_ARG_START</a> || type==<a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a6a3ee80a2a43880edda7c8e0ef40a37d" title="End of an argument.">UMSGPAT_PART_TYPE_ARG_LIMIT</a>) {</div> <div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="keywordflow">return</span> (<a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103" title="Argument type constants.">UMessagePatternArgType</a>)value;</div> <div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  } <span class="keywordflow">else</span> {</div> <div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordflow">return</span> <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a419f02d51dc27433115e3b6715fbe3cd" title="The argument has no specified type.">UMSGPAT_ARG_TYPE_NONE</a>;</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>  }</div> <div class="line"><a name="l00779"></a><span class="lineno"> 779</span> </div> <div class="line"><a name="l00787"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern_1_1Part.html#afddc999512a58cfce452a418d357d197"> 787</a></span>  <span class="keyword">static</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="classicu_1_1MessagePattern_1_1Part.html#afddc999512a58cfce452a418d357d197" title="Indicates whether the Part type has a numeric value.">hasNumericValue</a>(<a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42" title="MessagePattern::Part type constants.">UMessagePatternPartType</a> type) {</div> <div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordflow">return</span> type==<a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ad850e66569eff3e9ffef20759d93b1da" title="An integer value, for example the offset or an explicit selector value in a PluralFormat style...">UMSGPAT_PART_TYPE_ARG_INT</a> || type==<a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a98883b70d5ed087231e24e92fbe8c574" title="A numeric value, for example the offset or an explicit selector value in a PluralFormat style...">UMSGPAT_PART_TYPE_ARG_DOUBLE</a>;</div> <div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  }</div> <div class="line"><a name="l00790"></a><span class="lineno"> 790</span> </div> <div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> <a class="code" href="namespaceicu.html#a1c2f6ca43e636f38d1a3291eb851e9f0" title="Global operator == for StringPiece.">operator==</a>(<span class="keyword">const</span> <a class="code" href="classicu_1_1MessagePattern_1_1Part.html" title="A message pattern "part", representing a pattern parsing event.">Part</a> &other) <span class="keyword">const</span>;</div> <div class="line"><a name="l00797"></a><span class="lineno"> 797</span> </div> <div class="line"><a name="l00803"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern_1_1Part.html#a8184afef101dc2d879da74c3b18586d9"> 803</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="classicu_1_1MessagePattern_1_1Part.html#a8184afef101dc2d879da74c3b18586d9">operator!=</a>(<span class="keyword">const</span> <a class="code" href="classicu_1_1MessagePattern_1_1Part.html" title="A message pattern "part", representing a pattern parsing event.">Part</a> &other)<span class="keyword"> const </span>{</div> <div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keywordflow">return</span> !<a class="code" href="namespaceicu.html#a1c2f6ca43e636f38d1a3291eb851e9f0" title="Global operator == for StringPiece.">operator==</a>(other);</div> <div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  }</div> <div class="line"><a name="l00806"></a><span class="lineno"> 806</span> </div> <div class="line"><a name="l00811"></a><span class="lineno"><a class="code" href="classicu_1_1MessagePattern_1_1Part.html#ad71d15c68657df404c58f56a63c16782"> 811</a></span>  int32_t <a class="code" href="classicu_1_1MessagePattern_1_1Part.html#ad71d15c68657df404c58f56a63c16782">hashCode</a>()<span class="keyword"> const </span>{</div> <div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="keywordflow">return</span> ((type*37+index)*37+length)*37+value;</div> <div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  }</div> <div class="line"><a name="l00814"></a><span class="lineno"> 814</span> </div> <div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  <span class="keyword">private</span>:</div> <div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classicu_1_1MessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a>;</div> <div class="line"><a name="l00817"></a><span class="lineno"> 817</span> </div> <div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keyword">static</span> <span class="keyword">const</span> int32_t MAX_LENGTH=0xffff;</div> <div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <span class="keyword">static</span> <span class="keyword">const</span> int32_t MAX_VALUE=0x7fff;</div> <div class="line"><a name="l00820"></a><span class="lineno"> 820</span> </div> <div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="comment">// Some fields are not final because they are modified during pattern parsing.</span></div> <div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  <span class="comment">// After pattern parsing, the parts are effectively immutable.</span></div> <div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42" title="MessagePattern::Part type constants.">UMessagePatternPartType</a> type;</div> <div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  int32_t index;</div> <div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  uint16_t length;</div> <div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  int16_t value;</div> <div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  int32_t limitPartIndex;</div> <div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  };</div> <div class="line"><a name="l00829"></a><span class="lineno"> 829</span> </div> <div class="line"><a name="l00830"></a><span class="lineno"> 830</span> <span class="keyword">private</span>:</div> <div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  <span class="keywordtype">void</span> preParse(<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> &pattern, <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, <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> &errorCode);</div> <div class="line"><a name="l00832"></a><span class="lineno"> 832</span> </div> <div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  <span class="keywordtype">void</span> postParse();</div> <div class="line"><a name="l00834"></a><span class="lineno"> 834</span> </div> <div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  int32_t parseMessage(int32_t index, int32_t msgStartLength,</div> <div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  int32_t nestingLevel, <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103" title="Argument type constants.">UMessagePatternArgType</a> parentType,</div> <div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, <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> &errorCode);</div> <div class="line"><a name="l00838"></a><span class="lineno"> 838</span> </div> <div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  int32_t parseArg(int32_t index, int32_t argStartLength, int32_t nestingLevel,</div> <div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, <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> &errorCode);</div> <div class="line"><a name="l00841"></a><span class="lineno"> 841</span> </div> <div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  int32_t parseSimpleStyle(int32_t index, <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, <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> &errorCode);</div> <div class="line"><a name="l00843"></a><span class="lineno"> 843</span> </div> <div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  int32_t parseChoiceStyle(int32_t index, int32_t nestingLevel,</div> <div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, <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> &errorCode);</div> <div class="line"><a name="l00846"></a><span class="lineno"> 846</span> </div> <div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  int32_t parsePluralOrSelectStyle(<a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103" title="Argument type constants.">UMessagePatternArgType</a> argType, int32_t index, int32_t nestingLevel,</div> <div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, <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> &errorCode);</div> <div class="line"><a name="l00849"></a><span class="lineno"> 849</span> </div> <div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  <span class="keyword">static</span> int32_t parseArgNumber(<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> &s, int32_t start, int32_t limit);</div> <div class="line"><a name="l00859"></a><span class="lineno"> 859</span> </div> <div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  int32_t parseArgNumber(int32_t start, int32_t limit) {</div> <div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keywordflow">return</span> parseArgNumber(msg, start, limit);</div> <div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  }</div> <div class="line"><a name="l00863"></a><span class="lineno"> 863</span> </div> <div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <span class="keywordtype">void</span> parseDouble(int32_t start, int32_t limit, <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> allowInfinity,</div> <div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, <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> &errorCode);</div> <div class="line"><a name="l00874"></a><span class="lineno"> 874</span> </div> <div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  <span class="comment">// Java has package-private appendReducedApostrophes() here.</span></div> <div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  <span class="comment">// In C++, this is declared in the MessageImpl class.</span></div> <div class="line"><a name="l00877"></a><span class="lineno"> 877</span> </div> <div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  int32_t skipWhiteSpace(int32_t index);</div> <div class="line"><a name="l00879"></a><span class="lineno"> 879</span> </div> <div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  int32_t skipIdentifier(int32_t index);</div> <div class="line"><a name="l00881"></a><span class="lineno"> 881</span> </div> <div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  int32_t skipDouble(int32_t index);</div> <div class="line"><a name="l00887"></a><span class="lineno"> 887</span> </div> <div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  <span class="keyword">static</span> <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isArgTypeChar(<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="l00889"></a><span class="lineno"> 889</span> </div> <div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isChoice(int32_t index);</div> <div class="line"><a name="l00891"></a><span class="lineno"> 891</span> </div> <div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isPlural(int32_t index);</div> <div class="line"><a name="l00893"></a><span class="lineno"> 893</span> </div> <div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isSelect(int32_t index);</div> <div class="line"><a name="l00895"></a><span class="lineno"> 895</span> </div> <div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> isOrdinal(int32_t index);</div> <div class="line"><a name="l00897"></a><span class="lineno"> 897</span> </div> <div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> inMessageFormatPattern(int32_t nestingLevel);</div> <div class="line"><a name="l00903"></a><span class="lineno"> 903</span> </div> <div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> inTopLevelChoiceMessage(int32_t nestingLevel, <a class="code" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103" title="Argument type constants.">UMessagePatternArgType</a> parentType);</div> <div class="line"><a name="l00909"></a><span class="lineno"> 909</span> </div> <div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  <span class="keywordtype">void</span> addPart(<a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42" title="MessagePattern::Part type constants.">UMessagePatternPartType</a> type, int32_t index, int32_t length,</div> <div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  int32_t value, <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> &errorCode);</div> <div class="line"><a name="l00912"></a><span class="lineno"> 912</span> </div> <div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <span class="keywordtype">void</span> addLimitPart(int32_t start,</div> <div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <a class="code" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42" title="MessagePattern::Part type constants.">UMessagePatternPartType</a> type, int32_t index, int32_t length,</div> <div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  int32_t value, <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> &errorCode);</div> <div class="line"><a name="l00916"></a><span class="lineno"> 916</span> </div> <div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keywordtype">void</span> addArgDoublePart(<span class="keywordtype">double</span> numericValue, int32_t start, int32_t length, <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> &errorCode);</div> <div class="line"><a name="l00918"></a><span class="lineno"> 918</span> </div> <div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  <span class="keywordtype">void</span> setParseError(<a class="code" href="structUParseError.html" title="A UParseError struct is used to returned detailed information about parsing errors.">UParseError</a> *parseError, int32_t index);</div> <div class="line"><a name="l00920"></a><span class="lineno"> 920</span> </div> <div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> init(<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> &errorCode);</div> <div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> copyStorage(<span class="keyword">const</span> MessagePattern &other, <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> &errorCode);</div> <div class="line"><a name="l00923"></a><span class="lineno"> 923</span> </div> <div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  <a class="code" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b" title="Mode for when an apostrophe starts quoted literal text for MessageFormat output.">UMessagePatternApostropheMode</a> aposMode;</div> <div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  UnicodeString msg;</div> <div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  <span class="comment">// ArrayList<Part> parts=new ArrayList<Part>();</span></div> <div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  MessagePatternPartsList *partsList;</div> <div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  Part *parts;</div> <div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  int32_t partsLength;</div> <div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  <span class="comment">// ArrayList<Double> numericValues;</span></div> <div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  MessagePatternDoubleList *numericValuesList;</div> <div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <span class="keywordtype">double</span> *numericValues;</div> <div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  int32_t numericValuesLength;</div> <div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> hasArgNames;</div> <div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> hasArgNumbers;</div> <div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <a class="code" href="umachine_8h.html#a349ef00011f20ccd1d3b424445681aa5" title="The ICU boolean type.">UBool</a> needsAutoQuoting;</div> <div class="line"><a name="l00937"></a><span class="lineno"> 937</span> };</div> <div class="line"><a name="l00938"></a><span class="lineno"> 938</span> </div> <div class="line"><a name="l00939"></a><span class="lineno"> 939</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="l00940"></a><span class="lineno"> 940</span> </div> <div class="line"><a name="l00941"></a><span class="lineno"> 941</span> <span class="preprocessor">#endif // !UCONFIG_NO_FORMATTING</span></div> <div class="line"><a name="l00942"></a><span class="lineno"> 942</span> <span class="preprocessor"></span></div> <div class="line"><a name="l00943"></a><span class="lineno"> 943</span> <span class="preprocessor">#endif // __MESSAGEPATTERN_H__</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>