[cfe-commits] r59885 - /cfe/trunk/docs/InternalsManual.html

Sebastian Redl sebastian.redl at getdesigned.at
Sat Nov 22 14:16:47 PST 2008

Author: cornedbee
Date: Sat Nov 22 16:16:45 2008
New Revision: 59885

URL: http://llvm.org/viewvc/llvm-project?rev=59885&view=rev
Documentation for the plural modifier.


Modified: cfe/trunk/docs/InternalsManual.html
URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/docs/InternalsManual.html?rev=59885&r1=59884&r2=59885&view=diff

--- cfe/trunk/docs/InternalsManual.html (original)
+++ cfe/trunk/docs/InternalsManual.html Sat Nov 22 16:16:45 2008
@@ -3,6 +3,11 @@
 <title>"clang" CFE Internals Manual</title>
 <link type="text/css" rel="stylesheet" href="../menu.css" />
 <link type="text/css" rel="stylesheet" href="../content.css" />
+<style type="text/css">
+td {
+	vertical-align: top;
@@ -253,9 +258,33 @@
 <tr><td colspan="2"><b>"plural" format</b></td></tr>
+<tr><td>Example:</td><td><tt>"you have %1 %plural{1:mouse|:mice}1 connected to
+    your computer"</tt></td></tr>
+<tr><td>Description:</td><td><p>This is a formatter for complex plural forms.
+    It is designed to handle even the requirements of languages with very
+	complex plural forms, as many Baltic languages have. The argument consists
+	of a series of expression/form pairs, separated by ':', where the first form
+	whose expression evaluates to true is the result of the modifier.</p>
+	<p>An expression can be empty, in which case it is always true. See the
+	example at the top. Otherwise, it is a series of one or more numeric
+	conditions, separated by ','. If any condition matches, the expression
+	matches. Each numeric condition can take one of three forms.</p>
+	<ul>
+	    <li>number: A simple decimal number matches if the argument is the same
+		as the number. Example: <tt>"{1:mouse|:mice}"</tt></li>
+		<li>range: A range in square brackets matches if the argument is within
+		the range. Then range is inclusive both ends. Example:
+		<tt>"{0:none|1:one|[2,5]:some|:many}"</tt></li>
+		<li>modulo: A modulo operator is followed by a number, and equals sign
+		and either a number or a range. The tests are the same as for plain
+		numbers and ranges, but the argument is taken modulo the number first.
+		Example: <tt>"{%100=0:even hundred|%100=[1,50]:lower half|:everything
+		else}"</tt></li>
+	</ul>
+	<p>The parser is very unforgiving. A syntax error, even whitespace, will
+	abort, as will a failure to match the argument against any
+	expression.</p></td></tr>

More information about the cfe-commits mailing list