<!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 4.8.1.1: messagepattern.h File Reference</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="search/search.css" rel="stylesheet" type="text/css"/> <script type="text/javascript" src="search/search.js"></script> <script type="text/javascript"> $(document).ready(function() { searchBox.OnSelectItem(0); }); </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 4.8.1.1  <span id="projectnumber">4.8.1.1</span> </div> </td> </tr> </tbody> </table> </div> <!-- end header part --> <!-- Generated by Doxygen 1.8.1.1 --> <script type="text/javascript"> var searchBox = new SearchBox("searchBox", "search",false,'Search'); </script> <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="annotated.html"><span>Data Structures</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> <li> <div id="MSearchBox" class="MSearchBoxInactive"> <span class="left"> <img id="MSearchSelect" src="search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/> <input type="text" id="MSearchField" value="Search" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/> </span><span class="right"> <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a> </span> </div> </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> <!-- window showing the filter options --> <div id="MSearchSelectWindow" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" onkeydown="return searchBox.OnSearchSelectKey(event)"> <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Friends</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark"> </span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark"> </span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(11)"><span class="SelectionMark"> </span>Pages</a></div> <!-- iframe showing the search results (closed by default) --> <div id="MSearchResultsWindow"> <iframe src="javascript:void(0)" frameborder="0" name="MSearchResults" id="MSearchResults"> </iframe> </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="summary"> <a href="#nested-classes">Data Structures</a> | <a href="#define-members">Macros</a> | <a href="#typedef-members">Typedefs</a> | <a href="#enum-members">Enumerations</a> </div> <div class="headertitle"> <div class="title">messagepattern.h File Reference</div> </div> </div><!--header--> <div class="contents"> <p>C++ API: <a class="el" href="classMessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a> class: Parses and represents ICU <a class="el" href="classMessageFormat.html">MessageFormat</a> patterns. <a href="#details">More...</a></p> <div class="textblock"><code>#include "<a class="el" href="utypes_8h_source.html">unicode/utypes.h</a>"</code><br/> <code>#include "<a class="el" href="parseerr_8h_source.html">unicode/parseerr.h</a>"</code><br/> <code>#include "<a class="el" href="unistr_8h_source.html">unicode/unistr.h</a>"</code><br/> </div> <p><a href="messagepattern_8h_source.html">Go to the source code of this file.</a></p> <table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="nested-classes"></a> Data Structures</h2></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classMessagePattern.html">MessagePattern</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">Parses and represents ICU <a class="el" href="classMessageFormat.html">MessageFormat</a> patterns. <a href="classMessagePattern.html#details">More...</a><br/></td></tr> <tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class  </td><td class="memItemRight" valign="bottom"><a class="el" href="classMessagePattern_1_1Part.html">MessagePattern::Part</a></td></tr> <tr class="memdesc:"><td class="mdescLeft"> </td><td class="mdescRight">A message pattern "part", representing a pattern parsing event. <a href="classMessagePattern_1_1Part.html#details">More...</a><br/></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="define-members"></a> Macros</h2></td></tr> <tr class="memitem:af8a7d74f8813a30c41f063dde64e3c12"><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#af8a7d74f8813a30c41f063dde64e3c12">UMSGPAT_NO_NUMERIC_VALUE</a>   ((double)(-123456789))</td></tr> <tr class="memdesc:af8a7d74f8813a30c41f063dde64e3c12"><td class="mdescLeft"> </td><td class="mdescRight">Special value that is returned by getNumericValue(Part) when no numeric value is defined for a part. <a href="#af8a7d74f8813a30c41f063dde64e3c12"></a><br/></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="typedef-members"></a> Typedefs</h2></td></tr> <tr class="memitem:a56aa1f898bc4cb898a0cb2facb19b258"><td class="memItemLeft" align="right" valign="top">typedef enum <br class="typebreak"/> <a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b">UMessagePatternApostropheMode</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#a56aa1f898bc4cb898a0cb2facb19b258">UMessagePatternApostropheMode</a></td></tr> <tr class="memitem:a26bb77f47a6057af80c25d97bf2a2595"><td class="memItemLeft" align="right" valign="top">typedef enum <br class="typebreak"/> <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42">UMessagePatternPartType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#a26bb77f47a6057af80c25d97bf2a2595">UMessagePatternPartType</a></td></tr> <tr class="memitem:a3f22f44bff63324c2a6591e7a7dde523"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103">UMessagePatternArgType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#a3f22f44bff63324c2a6591e7a7dde523">UMessagePatternArgType</a></td></tr> </table><table class="memberdecls"> <tr class="heading"><td colspan="2"><h2><a name="enum-members"></a> Enumerations</h2></td></tr> <tr class="memitem:af6e0757e0eb81c980b01ee5d68a9978b"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b">UMessagePatternApostropheMode</a> { <a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978ba67b6ac40cab95b17ecd559d24f1066c7">UMSGPAT_APOS_DOUBLE_OPTIONAL</a>, <a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978ba947d8779e9c59baf35a5eb82d8327d78">UMSGPAT_APOS_DOUBLE_REQUIRED</a> }</td></tr> <tr class="memdesc:af6e0757e0eb81c980b01ee5d68a9978b"><td class="mdescLeft"> </td><td class="mdescRight">Mode for when an apostrophe starts quoted literal text for <a class="el" href="classMessageFormat.html">MessageFormat</a> output. <a href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b">More...</a><br/></td></tr> <tr class="memitem:a020e83c308fc5d1b2b4a7029cc3d9b42"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42">UMessagePatternPartType</a> { <br/>   <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a4bd3165108d25c0aabaaa3715105efff">UMSGPAT_PART_TYPE_MSG_START</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a981fcd6e08cc32f6844f1ebebe735add">UMSGPAT_PART_TYPE_MSG_LIMIT</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ae8bd3978e3b14fa1b6918946420a262d">UMSGPAT_PART_TYPE_SKIP_SYNTAX</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a0c93d5325ec8fbf16b4084e262d27c9c">UMSGPAT_PART_TYPE_INSERT_CHAR</a>, <br/>   <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ac4387c3e4c2f1ccf8ba85c4c7ebf607f">UMSGPAT_PART_TYPE_REPLACE_NUMBER</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42aa628d48a636ed1f2e919fbbf40ef973c">UMSGPAT_PART_TYPE_ARG_START</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a6a3ee80a2a43880edda7c8e0ef40a37d">UMSGPAT_PART_TYPE_ARG_LIMIT</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a8af70d71e2c979c8d4e961681a4810de">UMSGPAT_PART_TYPE_ARG_NUMBER</a>, <br/>   <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42aa43b050de6dc11607370eced59f633cf">UMSGPAT_PART_TYPE_ARG_NAME</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a242bbe84918cbae58ebb7d092d547d6b">UMSGPAT_PART_TYPE_ARG_TYPE</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ad33534e042bb62a80863ce5d4e3bfbbe">UMSGPAT_PART_TYPE_ARG_STYLE</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a4c5bcf896e840fe14ab96ec6883fe413">UMSGPAT_PART_TYPE_ARG_SELECTOR</a>, <br/>   <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42ad850e66569eff3e9ffef20759d93b1da">UMSGPAT_PART_TYPE_ARG_INT</a>, <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42a98883b70d5ed087231e24e92fbe8c574">UMSGPAT_PART_TYPE_ARG_DOUBLE</a> <br/> }</td></tr> <tr class="memdesc:a020e83c308fc5d1b2b4a7029cc3d9b42"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classMessagePattern_1_1Part.html" title="A message pattern "part", representing a pattern parsing event.">MessagePattern::Part</a> type constants. <a href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42">More...</a><br/></td></tr> <tr class="memitem:a2929f87500a04fd66021e3fda6c1f103"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom"><a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103">UMessagePatternArgType</a> { <br/>   <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a419f02d51dc27433115e3b6715fbe3cd">UMSGPAT_ARG_TYPE_NONE</a>, <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a83d34af9ec6acd74a3e44b32b46c760e">UMSGPAT_ARG_TYPE_SIMPLE</a>, <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103ae9806dab1d5f2143ad7df93025173095">UMSGPAT_ARG_TYPE_CHOICE</a>, <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a7066f3f8f4176fb06e6fab5c95869ec0">UMSGPAT_ARG_TYPE_PLURAL</a>, <br/>   <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103a37134f17547a6466760b723e45a2f20a">UMSGPAT_ARG_TYPE_SELECT</a> <br/> }</td></tr> <tr class="memdesc:a2929f87500a04fd66021e3fda6c1f103"><td class="mdescLeft"> </td><td class="mdescRight">Argument type constants. <a href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103">More...</a><br/></td></tr> <tr class="memitem:a99fb83031ce9923c84392b4e92f956b5"><td class="memItemLeft" align="right" valign="top">enum  </td><td class="memItemRight" valign="bottom">{ <a class="el" href="messagepattern_8h.html#a99fb83031ce9923c84392b4e92f956b5a7b6fc83818b6e89ef39f116bfd0d9dda">UMSGPAT_ARG_NAME_NOT_NUMBER</a> = -1, <a class="el" href="messagepattern_8h.html#a99fb83031ce9923c84392b4e92f956b5a7086b0b8fe7c4867c8df719f45928a50">UMSGPAT_ARG_NAME_NOT_VALID</a> = -2 }</td></tr> </table> <hr/><a name="details" id="details"></a><h2>Detailed Description</h2> <div class="textblock"><p>C++ API: <a class="el" href="classMessagePattern.html" title="Parses and represents ICU MessageFormat patterns.">MessagePattern</a> class: Parses and represents ICU <a class="el" href="classMessageFormat.html">MessageFormat</a> patterns. </p> <p>Definition in file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div><hr/><h2>Macro Definition Documentation</h2> <a class="anchor" id="af8a7d74f8813a30c41f063dde64e3c12"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">#define UMSGPAT_NO_NUMERIC_VALUE   ((double)(-123456789))</td> </tr> </table> </div><div class="memdoc"> <p>Special value that is returned by getNumericValue(Part) when no numeric value is defined for a part. </p> <dl class="section see"><dt>See also:</dt><dd><a class="el" href="classMessagePattern.html#ab90c71f5e0ec9383e50b263d3b8124c1" title="Returns the numeric value associated with an ARG_INT or ARG_DOUBLE.">MessagePattern.getNumericValue()</a> </dd></dl> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000070">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00283">283</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <hr/><h2>Typedef Documentation</h2> <a class="anchor" id="a56aa1f898bc4cb898a0cb2facb19b258"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef enum <a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b">UMessagePatternApostropheMode</a> <a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b">UMessagePatternApostropheMode</a></td> </tr> </table> </div><div class="memdoc"> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000064">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00092">92</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <a class="anchor" id="a3f22f44bff63324c2a6591e7a7dde523"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef enum <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103">UMessagePatternArgType</a> <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103">UMessagePatternArgType</a></td> </tr> </table> </div><div class="memdoc"> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000068">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00254">254</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <a class="anchor" id="a26bb77f47a6057af80c25d97bf2a2595"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">typedef enum <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42">UMessagePatternPartType</a> <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42">UMessagePatternPartType</a></td> </tr> </table> </div><div class="memdoc"> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000066">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00207">207</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <hr/><h2>Enumeration Type Documentation</h2> <a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">anonymous enum</td> </tr> </table> </div><div class="memdoc"> <dl class="draft"><dt><b>Draft:</b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a7b6fc83818b6e89ef39f116bfd0d9dda"></a>UMSGPAT_ARG_NAME_NOT_NUMBER</em> </td><td> <p>Return value from <a class="el" href="classMessagePattern.html#a93fcae9851f3d953cf7c57d3d2592ae7" title="Validates and parses an argument name or argument number string.">MessagePattern.validateArgumentName()</a> for when the string is a valid "pattern identifier" but not a number. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000093">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a99fb83031ce9923c84392b4e92f956b5a7086b0b8fe7c4867c8df719f45928a50"></a>UMSGPAT_ARG_NAME_NOT_VALID</em> </td><td> <p>Return value from <a class="el" href="classMessagePattern.html#a93fcae9851f3d953cf7c57d3d2592ae7" title="Validates and parses an argument name or argument number string.">MessagePattern.validateArgumentName()</a> for when the string is invalid. </p> <p>It might not be a valid "pattern identifier", or it have only ASCII digits but there is a leading zero or the number is too large. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000094">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00259">259</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <a class="anchor" id="af6e0757e0eb81c980b01ee5d68a9978b"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="messagepattern_8h.html#af6e0757e0eb81c980b01ee5d68a9978b">UMessagePatternApostropheMode</a></td> </tr> </table> </div><div class="memdoc"> <p>Mode for when an apostrophe starts quoted literal text for <a class="el" href="classMessageFormat.html">MessageFormat</a> output. </p> <p>The default is DOUBLE_OPTIONAL unless overridden via <a class="el" href="uconfig_8h.html" title="Switches for excluding parts of ICU library code modules.">uconfig.h</a> (UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE). </p> <p>A pair of adjacent apostrophes always results in a single apostrophe in the output, even when the pair is between two single, text-quoting apostrophes. </p> <p>The following table shows examples of desired <a class="el" href="classMessageFormat.html#ac984e47d8f99db7f623bd60f856f8666" title="Formats the given array of arguments into a user-readable string.">MessageFormat.format()</a> output with the pattern strings that yield that output. </p> <table class="doxtable"> <tr> <th>Desired output </th><th>DOUBLE_OPTIONAL </th><th>DOUBLE_REQUIRED </th></tr> <tr> <td>I see {many} </td><td>I see '{many}' </td><td>(same) </td></tr> <tr> <td>I said {'Wow!'} </td><td>I said '{''Wow!''}' </td><td>(same) </td></tr> <tr> <td>I don't know </td><td>I don't know OR<br/> I don''t know </td><td>I don''t know </td></tr> </table> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000063">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> <dl class="section see"><dt>See also:</dt><dd><a class="el" href="uconfig_8h.html#aec0a2473ec4ff7108b8bb6d0eee8188f" title="Determines the default UMessagePatternApostropheMode.">UCONFIG_MSGPAT_DEFAULT_APOSTROPHE_MODE</a> </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="af6e0757e0eb81c980b01ee5d68a9978ba67b6ac40cab95b17ecd559d24f1066c7"></a>UMSGPAT_APOS_DOUBLE_OPTIONAL</em> </td><td> <p>A literal apostrophe is represented by either a single or a double apostrophe pattern character. </p> <p>Within a <a class="el" href="classMessageFormat.html">MessageFormat</a> pattern, a single apostrophe only starts quoted literal text if it immediately precedes a curly brace {}, or a pipe symbol | if inside a choice format, or a pound symbol # if inside a plural format. </p> <p>This is the default behavior starting with ICU 4.8. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000072">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="af6e0757e0eb81c980b01ee5d68a9978ba947d8779e9c59baf35a5eb82d8327d78"></a>UMSGPAT_APOS_DOUBLE_REQUIRED</em> </td><td> <p>A literal apostrophe must be represented by a double apostrophe pattern character. </p> <p>A single apostrophe always starts quoted literal text. </p> <p>This is the behavior of ICU 4.6 and earlier, and of the JDK. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000073">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00066">66</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="messagepattern_8h.html#a2929f87500a04fd66021e3fda6c1f103">UMessagePatternArgType</a></td> </tr> </table> </div><div class="memdoc"> <p>Argument type constants. </p> <p>Returned by Part.getArgType() for ARG_START and ARG_LIMIT parts.</p> <p>Messages nested inside an argument are each delimited by MSG_START and MSG_LIMIT, with a nesting level one greater than the surrounding message. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000067">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103a419f02d51dc27433115e3b6715fbe3cd"></a>UMSGPAT_ARG_TYPE_NONE</em> </td><td> <p>The argument has no specified type. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000088">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103a83d34af9ec6acd74a3e44b32b46c760e"></a>UMSGPAT_ARG_TYPE_SIMPLE</em> </td><td> <p>The argument has a "simple" type which is provided by the ARG_TYPE part. </p> <p>An ARG_STYLE part might follow that. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000089">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103ae9806dab1d5f2143ad7df93025173095"></a>UMSGPAT_ARG_TYPE_CHOICE</em> </td><td> <p>The argument is a <a class="el" href="classChoiceFormat.html" title="ChoiceFormat converts between ranges of numeric values and strings for those ranges.">ChoiceFormat</a> with one or more ((ARG_INT | ARG_DOUBLE), ARG_SELECTOR, message) tuples. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000090">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103a7066f3f8f4176fb06e6fab5c95869ec0"></a>UMSGPAT_ARG_TYPE_PLURAL</em> </td><td> <p>The argument is a <a class="el" href="classPluralFormat.html">PluralFormat</a> with an optional ARG_INT or ARG_DOUBLE offset (e.g., offset:1) and one or more (ARG_SELECTOR [explicit-value] message) tuples. </p> <p>If the selector has an explicit value (e.g., =2), then that value is provided by the ARG_INT or ARG_DOUBLE part preceding the message. Otherwise the message immediately follows the ARG_SELECTOR. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000091">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a2929f87500a04fd66021e3fda6c1f103a37134f17547a6466760b723e45a2f20a"></a>UMSGPAT_ARG_TYPE_SELECT</em> </td><td> <p>The argument is a <a class="el" href="classSelectFormat.html">SelectFormat</a> with one or more (ARG_SELECTOR, message) pairs. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000092">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00217">217</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> <a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42"></a> <div class="memitem"> <div class="memproto"> <table class="memname"> <tr> <td class="memname">enum <a class="el" href="messagepattern_8h.html#a020e83c308fc5d1b2b4a7029cc3d9b42">UMessagePatternPartType</a></td> </tr> </table> </div><div class="memdoc"> <p><a class="el" href="classMessagePattern_1_1Part.html" title="A message pattern "part", representing a pattern parsing event.">MessagePattern::Part</a> type constants. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000065">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> <dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0"> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a4bd3165108d25c0aabaaa3715105efff"></a>UMSGPAT_PART_TYPE_MSG_START</em> </td><td> <p>Start of a message pattern (main or nested). </p> <p>The length is 0 for the top-level message and for a choice argument sub-message, otherwise 1 for the '{'. The value indicates the nesting level, starting with 0 for the main message. </p> <p>There is always a later MSG_LIMIT part. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000074">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a981fcd6e08cc32f6844f1ebebe735add"></a>UMSGPAT_PART_TYPE_MSG_LIMIT</em> </td><td> <p>End of a message pattern (main or nested). </p> <p>The length is 0 for the top-level message and the last sub-message of a choice argument, otherwise 1 for the '}' or (in a choice argument style) the '|'. The value indicates the nesting level, starting with 0 for the main message. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000075">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42ae8bd3978e3b14fa1b6918946420a262d"></a>UMSGPAT_PART_TYPE_SKIP_SYNTAX</em> </td><td> <p>Indicates a substring of the pattern string which is to be skipped when formatting. </p> <p>For example, an apostrophe that begins or ends quoted text would be indicated with such a part. The value is undefined and currently always 0. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000076">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a0c93d5325ec8fbf16b4084e262d27c9c"></a>UMSGPAT_PART_TYPE_INSERT_CHAR</em> </td><td> <p>Indicates that a syntax character needs to be inserted for auto-quoting. </p> <p>The length is 0. The value is the character code of the insertion character. (U+0027=APOSTROPHE) </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000077">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42ac4387c3e4c2f1ccf8ba85c4c7ebf607f"></a>UMSGPAT_PART_TYPE_REPLACE_NUMBER</em> </td><td> <p>Indicates a syntactic (non-escaped) # symbol in a plural variant. </p> <p>When formatting, replace this part's substring with the (value-offset) for the plural argument value. The value is undefined and currently always 0. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000078">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42aa628d48a636ed1f2e919fbbf40ef973c"></a>UMSGPAT_PART_TYPE_ARG_START</em> </td><td> <p>Start of an argument. </p> <p>The length is 1 for the '{'. The value is the ordinal value of the ArgType. Use getArgType(). </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000079">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a6a3ee80a2a43880edda7c8e0ef40a37d"></a>UMSGPAT_PART_TYPE_ARG_LIMIT</em> </td><td> <p>End of an argument. </p> <p>The length is 1 for the '}'. The value is the ordinal value of the ArgType. Use getArgType(). </p> <p>This part is followed by either an ARG_NUMBER or ARG_NAME, followed by optional argument sub-parts (see UMessagePatternArgType constants) and finally an ARG_LIMIT part. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000080">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a8af70d71e2c979c8d4e961681a4810de"></a>UMSGPAT_PART_TYPE_ARG_NUMBER</em> </td><td> <p>The argument number, provided by the value. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000081">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42aa43b050de6dc11607370eced59f633cf"></a>UMSGPAT_PART_TYPE_ARG_NAME</em> </td><td> <p>The argument name. </p> <p>The value is undefined and currently always 0. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000082">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a242bbe84918cbae58ebb7d092d547d6b"></a>UMSGPAT_PART_TYPE_ARG_TYPE</em> </td><td> <p>The argument type. </p> <p>The value is undefined and currently always 0. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000083">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42ad33534e042bb62a80863ce5d4e3bfbbe"></a>UMSGPAT_PART_TYPE_ARG_STYLE</em> </td><td> <p>The argument style text. </p> <p>The value is undefined and currently always 0. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000084">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a4c5bcf896e840fe14ab96ec6883fe413"></a>UMSGPAT_PART_TYPE_ARG_SELECTOR</em> </td><td> <p>A selector substring in a "complex" argument style. </p> <p>The value is undefined and currently always 0. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000085">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42ad850e66569eff3e9ffef20759d93b1da"></a>UMSGPAT_PART_TYPE_ARG_INT</em> </td><td> <p>An integer value, for example the offset or an explicit selector value in a <a class="el" href="classPluralFormat.html">PluralFormat</a> style. </p> <p>The part value is the integer value. </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000086">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> <tr><td valign="top"><em><a class="anchor" id="a020e83c308fc5d1b2b4a7029cc3d9b42a98883b70d5ed087231e24e92fbe8c574"></a>UMSGPAT_PART_TYPE_ARG_DOUBLE</em> </td><td> <p>A numeric value, for example the offset or an explicit selector value in a <a class="el" href="classPluralFormat.html">PluralFormat</a> style. </p> <p>The part value is an index into an internal array of numeric values; use getNumericValue(). </p> <dl class="draft"><dt><b><a class="el" href="draft.html#_draft000087">Draft:</a></b></dt><dd>This API may be changed in the future versions and was introduced in ICU 4.8 </dd></dl> </td></tr> </table> </dd> </dl> <p>Definition at line <a class="el" href="messagepattern_8h_source.html#l00098">98</a> of file <a class="el" href="messagepattern_8h_source.html">messagepattern.h</a>.</p> </div> </div> </div><!-- contents --> <!-- start footer part --> <hr class="footer"/><address class="footer"><small> Generated by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/> </a> 1.8.1.1 </small></address> </body> </html>