1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<TITLE>Ada95 - Edited Output Generation</TITLE>
<META NAME="Author" CONTENT="JTC1/SC22/WG9/ARG, by Randall Brukardt, ARG Editor">
<META NAME="GENERATOR" CONTENT="Arm_Form.Exe, Ada Reference Manual generator">
<STYLE type="text/css">
DIV.paranum {position: absolute; font-family: Arial, Helvetica, sans-serif; left: 0.5 em; top: auto}
TT {font-family: "Courier New", monospace}
DT {display: compact}
DIV.Normal {font-family: "Times New Roman", Times, serif; margin-bottom: 0.6em}
DIV.Wide {font-family: "Times New Roman", Times, serif; margin-top: 0.6em; margin-bottom: 0.6em}
DIV.Annotations {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-bottom: 0.6em}
DIV.WideAnnotations {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0.6em; margin-bottom: 0.6em}
DIV.Index {font-family: "Times New Roman", Times, serif}
DIV.SyntaxSummary {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.4em}
DIV.Notes {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.6em}
DIV.NotesHeader {font-family: "Times New Roman", Times, serif; margin-left: 2.0em}
DIV.SyntaxIndented {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-bottom: 0.4em}
DIV.Indented {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-bottom: 0.6em}
DIV.CodeIndented {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-bottom: 0.6em}
DIV.SmallIndented {font-family: "Times New Roman", Times, serif; margin-left: 10.0em; margin-bottom: 0.6em}
DIV.SmallCodeIndented {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-bottom: 0.6em}
DIV.Examples {font-family: "Courier New", monospace; margin-left: 2.0em; margin-bottom: 0.6em}
DIV.SmallExamples {font-family: "Courier New", monospace; font-size: 80%; margin-left: 7.5em; margin-bottom: 0.6em}
DIV.IndentedExamples {font-family: "Courier New", monospace; margin-left: 8.0em; margin-bottom: 0.6em}
DIV.SmallIndentedExamples {font-family: "Courier New", monospace; font-size: 80%; margin-left: 15.0em; margin-bottom: 0.6em}
UL.Bulleted {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.SmallBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.NestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.SmallNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.IndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.CodeIndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.CodeIndentedNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-right: 8.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.SyntaxIndentedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.NotesBulleted {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
UL.NotesNestedBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
DL.Hanging {font-family: "Times New Roman", Times, serif; margin-top: 0em; margin-bottom: 0.6em}
DD.Hanging {margin-left: 6.0em}
DL.IndentedHanging {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0em; margin-bottom: 0.6em}
DD.IndentedHanging {margin-left: 2.0em}
DL.HangingInBulleted {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.HangingInBulleted {margin-left: 4.0em}
DL.SmallHanging {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-top: 0em; margin-bottom: 0.6em}
DD.SmallHanging {margin-left: 7.5em}
DL.SmallIndentedHanging {font-family: "Times New Roman", Times, serif; margin-left: 8.0em; margin-top: 0em; margin-bottom: 0.6em}
DD.SmallIndentedHanging {margin-left: 2.0em}
DL.SmallHangingInBulleted {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.SmallHangingInBulleted {margin-left: 5.0em}
DL.Enumerated {font-family: "Times New Roman", Times, serif; margin-right: 0.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.Enumerated {margin-left: 2.0em}
DL.SmallEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 4.0em; margin-right: 4.0em; margin-top: 0em; margin-bottom: 0.5em}
DD.SmallEnumerated {margin-left: 2.5em}
DL.NestedEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 2.0em; margin-right: 2.0em; margin-top: 0em; margin-bottom: 0.5em}
DL.SmallNestedEnumerated {font-family: "Times New Roman", Times, serif; margin-left: 6.0em; margin-right: 6.0em; margin-top: 0em; margin-bottom: 0.5em}
</STYLE>
</HEAD>
<BODY TEXT="#000000" BGCOLOR="#FFFFF0" LINK="#0000FF" VLINK="#800080" ALINK="#FF0000">
<P><A HREF="RM-TOC.html">Contents</A> <A HREF="RM-0-29.html">Index</A> <A HREF="RM-F-3-1.html">Previous</A> <A HREF="RM-F-3-3.html">Next</A></P>
<HR>
<H1> F.3.2 Edited Output Generation</H1>
<H4 ALIGN=CENTER>Dynamic Semantics</H4>
<DIV Class="Paranum"><FONT SIZE=-2>1</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> The contents of
an edited output string are based on: </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>2</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>A value, Item, of some decimal type Num,</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>3</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>An expanded picture String Pic_String,</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>4</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>A Boolean value, Blank_When_Zero,</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>5</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>A Currency string,</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>6</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>A Fill character,</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>7</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>A Separator character, and</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>8</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>A Radix_Mark character. </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>9</FONT></DIV>
<DIV Class="Normal"> The combination of a True value for Blank_When_Zero
and a '*' character in Pic_String is inconsistent; no edited output string
is defined.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>10</FONT></DIV>
<DIV Class="Normal"> A layout error is identified in the rules below
if leading non-zero digits of Item, character values of the Currency
string, or a negative sign would be truncated; in such cases no edited
output string is defined.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>11</FONT></DIV>
<DIV Class="Normal"> The edited output string has lower bound 1 and
upper bound N where N = Pic_String'Length + Currency_Length_Adjustment
- Radix_Adjustment, and </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>12</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>Currency_Length_Adjustment = Currency'Length - 1 if there
is some occurrence of '$' in Pic_String, and 0 otherwise.</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>13</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>Radix_Adjustment = 1 if there is an occurrence of 'V' or
'v' in Pic_Str, and 0 otherwise. </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>14</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> <A NAME="I6796"></A>Let
the magnitude of Item be expressed as a base-10 number I<SUB><FONT SIZE=+1><FONT SIZE=-2>p</FONT></FONT></SUB>···I<SUB><FONT SIZE=+1><FONT SIZE=-2>1</FONT></FONT></SUB>.F<SUB><FONT SIZE=+1><FONT SIZE=-2>1</FONT></FONT></SUB>···F<SUB><FONT SIZE=+1><FONT SIZE=-2>q</FONT></FONT></SUB>,
called the <I>displayed</I> <I>magnitude</I> of Item, where: </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>15</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>q = Min(Max(Num'Scale, 0), n) where n is 0 if Pic_String
has no <FONT FACE="Arial, Helvetica">radix</FONT> and is otherwise the
number of digit positions following <FONT FACE="Arial, Helvetica">radix</FONT>
in Pic_String, where a digit position corresponds to an occurrence of
'9', a <FONT FACE="Arial, Helvetica">zero_suppression_char</FONT> (for
an <FONT FACE="Arial, Helvetica">all_zero_suppression_number</FONT>),
a <FONT FACE="Arial, Helvetica">currency_char</FONT> (for an <FONT FACE="Arial, Helvetica">all_currency_number</FONT>),
or a <FONT FACE="Arial, Helvetica">sign_char</FONT> (for an <FONT FACE="Arial, Helvetica">all_sign_number</FONT>).</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>16</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>I<SUB><FONT SIZE=+1><FONT SIZE=-2>p</FONT></FONT></SUB>
/= 0 if p>0. </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>17</FONT></DIV>
<DIV Class="Normal"> If n < Num'Scale, then the above number is
the result of rounding (away from 0 if exactly midway between values).</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>18</FONT></DIV>
<DIV Class="Normal"> If Blank_When_Zero = True and the displayed magnitude
of Item is zero, then the edited output string comprises all space character
values. Otherwise, the picture String is treated as a sequence of instances
of syntactic categories based on the rules in <A HREF="RM-F-3-1.html">F.3.1</A>,
and the edited output string is the concatenation of string values derived
from these categories according to the following mapping rules.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>19</FONT></DIV>
<DIV Class="Normal"> Table F-1 shows the mapping from a sign control
symbol to a corresponding character or string in the edited output. In
the columns showing the edited output, a lower-case 'b' represents the
space character. If there is no sign control symbol but the value of
Item is negative, a layout error occurs and no edited output string is
produced.</DIV>
<DIV Class="SyntaxIndented"><TABLE frame="border" rules="all" border="2"><CAPTION><B>Table F-1: Edited Output for Sign Control Symbols</B></CAPTION>
<TR><TH align="center"><B>Sign Control Symbol</B><TH align="center"><B>Edited
Output for <BR>
Non-Negative Number</B><TH align="center"><B>Edited Output for <BR>
Negative Number</B>
<TR><TD align="center">'+'<TD align="center">'+'<TD align="center">'-'
<TR><TD align="center">'-'<TD align="center">'b'<TD align="center">'-'
<TR><TD align="center">'<'<TD align="center">'b'<TD align="center">'('
<TR><TD align="center">'>'<TD align="center">'b'<TD align="center">')'
<TR><TD align="center">"CR"<TD align="center">"bb"<TD align="center">"CR"
<TR><TD align="center">"DB"<TD align="center">"bb"<TD align="center">"DB"
</TABLE>
</TABLE></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>20</FONT></DIV>
<DIV Class="Normal"> An instance of <FONT FACE="Arial, Helvetica">fixed_LHS_sign</FONT>
maps to a character as shown in Table F-1.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>21</FONT></DIV>
<DIV Class="Normal"> An instance of <FONT FACE="Arial, Helvetica">fixed_$_char</FONT>
maps to Currency.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>22</FONT></DIV>
<DIV Class="Normal"> An instance of <FONT FACE="Arial, Helvetica">direct_insertion</FONT>
maps to Separator if <FONT FACE="Arial, Helvetica">direct_insertion</FONT>
= '_', and to the <FONT FACE="Arial, Helvetica">direct_insertion</FONT>
Character otherwise.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>23</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> An instance of
<FONT FACE="Arial, Helvetica">number</FONT> maps to a string <I>integer_part</I>
& <I>radix_part</I> & <I>fraction_part</I> where: </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>24</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>The string for <I>integer_part</I> is obtained as follows:
</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>25</FONT></DIV>
<DL Class="NestedEnumerated"><DT>1.<DD Class="Enumerated">
Occurrences of '9' in <FONT FACE="Arial, Helvetica">fore_digits</FONT>
of <FONT FACE="Arial, Helvetica">number</FONT> are replaced from right
to left with the decimal digit character values for I<SUB><FONT SIZE=+1><FONT SIZE=-2>1</FONT></FONT></SUB>,
..., I<SUB><FONT SIZE=+1><FONT SIZE=-2>p</FONT></FONT></SUB>, respectively.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>26</FONT></DIV>
<DL Class="NestedEnumerated"><DT>2.<DD Class="Enumerated">
Each occurrence of '9' in <FONT FACE="Arial, Helvetica">fore_digits</FONT>
to the left of the leftmost '9' replaced according to rule 1 is replaced
with '0'.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>27</FONT></DIV>
<DL Class="NestedEnumerated"><DT>3.<DD Class="Enumerated">
If p exceeds the number of occurrences of '9' in <FONT FACE="Arial, Helvetica">fore_digits</FONT>
of <FONT FACE="Arial, Helvetica">number</FONT>, then the excess leftmost
digits are eligible for use in the mapping of an instance of <FONT FACE="Arial, Helvetica">zero_suppression</FONT>,
<FONT FACE="Arial, Helvetica">floating_LHS_sign</FONT>, <FONT FACE="Arial, Helvetica">floating_$_currency</FONT>,
or <FONT FACE="Arial, Helvetica">floating_#_currency</FONT> to the left
of <FONT FACE="Arial, Helvetica">number</FONT>; if there is no such instance,
then a layout error occurs and no edited output string is produced. </DL>
<DIV Class="Paranum"><FONT SIZE=-2>28</FONT></DIV>
<UL Class="Bulleted" Style="margin-bottom: 0.3em"><LI TYPE=DISC>The <I>radix_part</I> is: </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>29</FONT></DIV>
<UL Class="NestedBulleted"><LI TYPE=DISC>"" if <FONT FACE="Arial, Helvetica">number</FONT>
does not include a <FONT FACE="Arial, Helvetica">radix</FONT>, if <FONT FACE="Arial, Helvetica">radix</FONT>
= 'V', or if <FONT FACE="Arial, Helvetica">radix</FONT> = 'v'</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>30</FONT></DIV>
<UL Class="NestedBulleted"><LI TYPE=DISC>Radix_Mark if <FONT FACE="Arial, Helvetica">number</FONT>
includes '.' as <FONT FACE="Arial, Helvetica">radix</FONT> </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>31</FONT></DIV>
<UL Class="Bulleted" Style="margin-bottom: 0.3em"><LI TYPE=DISC>The string for <I>fraction_part</I> is obtained as follows:
</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>32</FONT></DIV>
<DL Class="NestedEnumerated"><DT>1.<DD Class="Enumerated">
Occurrences of '9' in <FONT FACE="Arial, Helvetica">aft_digits</FONT>
of <FONT FACE="Arial, Helvetica">number</FONT> are replaced from left
to right with the decimal digit character values for F<SUB><FONT SIZE=+1><FONT SIZE=-2>1</FONT></FONT></SUB>,
... F<SUB><FONT SIZE=+1><FONT SIZE=-2>q</FONT></FONT></SUB>.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>33</FONT></DIV>
<DL Class="NestedEnumerated"><DT>2.<DD Class="Enumerated">
Each occurrence of '9' in <FONT FACE="Arial, Helvetica">aft_digits</FONT>
to the right of the rightmost '9' replaced according to rule 1 is replaced
by '0'. </DL>
<DIV Class="Paranum"><FONT SIZE=-2>34</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> An instance of
<FONT FACE="Arial, Helvetica">zero_suppression</FONT> maps to the string
obtained as follows: </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>35</FONT></DIV>
<DL Class="Enumerated"><DT> 1.<DD Class="Enumerated">
The rightmost 'Z', 'z', or '*' Character values are replaced with the
excess digits (if any) from the <I>integer_part</I> of the mapping of
the <FONT FACE="Arial, Helvetica">number</FONT> to the right of the <FONT FACE="Arial, Helvetica">zero_suppression</FONT>
instance,</DL>
<DIV Class="Paranum"><FONT SIZE=-2>36</FONT></DIV>
<DL Class="Enumerated"><DT> 2.<DD Class="Enumerated">
A <FONT FACE="Arial, Helvetica">context_sensitive_insertion</FONT> Character
is replaced as though it were a <FONT FACE="Arial, Helvetica">direct_insertion</FONT>
Character, if it occurs to the right of some 'Z', 'z', or '*' in <FONT FACE="Arial, Helvetica">zero_suppression</FONT>
that has been mapped to an excess digit,</DL>
<DIV Class="Paranum"><FONT SIZE=-2>37</FONT></DIV>
<DL Class="Enumerated" Style="margin-bottom: 0.3em"><DT> 3.<DD Class="Enumerated">
Each Character to the left of the leftmost Character replaced according
to rule 1 above is replaced by: </DL>
<DIV Class="Paranum"><FONT SIZE=-2>38</FONT></DIV>
<UL Class="NestedBulleted"><LI TYPE=DISC>the space character if the zero suppression Character is
'Z' or 'z', or</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>39</FONT></DIV>
<UL Class="NestedBulleted"><LI TYPE=DISC>the Fill character if the zero suppression Character is
'*'. </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>40</FONT></DIV>
<DL Class="Enumerated"><DT> 4.<DD Class="Enumerated">
A layout error occurs if some excess digits remain after all 'Z', 'z',
and '*' Character values in <FONT FACE="Arial, Helvetica">zero_suppression</FONT>
have been replaced via rule 1; no edited output string is produced. </DL>
<DIV Class="Paranum"><FONT SIZE=-2>41</FONT></DIV>
<DIV Class="Normal"> An instance of <FONT FACE="Arial, Helvetica">RHS_sign</FONT>
maps to a character or string as shown in Table F-1.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>42</FONT></DIV>
<DIV Class="Normal"> An instance of <FONT FACE="Arial, Helvetica">floating_LHS_sign</FONT>
maps to the string obtained as follows. </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>43</FONT></DIV>
<DL Class="Enumerated"><DT> 1.<DD Class="Enumerated">
Up to all but one of the rightmost <FONT FACE="Arial, Helvetica">LHS_Sign</FONT>
Character values are replaced by the excess digits (if any) from the
<I>integer_part</I> of the mapping of the <FONT FACE="Arial, Helvetica">number</FONT>
to the right of the <FONT FACE="Arial, Helvetica">floating_LHS_sign</FONT>
instance.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>44</FONT></DIV>
<DL Class="Enumerated"><DT> 2.<DD Class="Enumerated">
The next Character to the left is replaced with the character given by
the entry in Table F-1 corresponding to the <FONT FACE="Arial, Helvetica">LHS_Sign</FONT>
Character.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>45</FONT></DIV>
<DL Class="Enumerated"><DT> 3.<DD Class="Enumerated">
A <FONT FACE="Arial, Helvetica">context_sensitive_insertion</FONT> Character
is replaced as though it were a <FONT FACE="Arial, Helvetica">direct_insertion</FONT>
Character, if it occurs to the right of the leftmost <FONT FACE="Arial, Helvetica">LHS_Sign</FONT>
character replaced according to rule 1.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>46</FONT></DIV>
<DL Class="Enumerated"><DT> 4.<DD Class="Enumerated">
Any other Character is replaced by the space character..</DL>
<DIV Class="Paranum"><FONT SIZE=-2>47</FONT></DIV>
<DL Class="Enumerated"><DT> 5.<DD Class="Enumerated">
A layout error occurs if some excess digits remain after replacement
via rule 1; no edited output string is produced. </DL>
<DIV Class="Paranum"><FONT SIZE=-2>48</FONT></DIV>
<DIV Class="Normal"> An instance of <FONT FACE="Arial, Helvetica">fixed_#_currency</FONT>
maps to the Currency string with n space character values concatenated
on the left (if the instance does not follow a <FONT FACE="Arial, Helvetica">radix</FONT>)
or on the right (if the instance does follow a <FONT FACE="Arial, Helvetica">radix</FONT>),
where n is the difference between the length of the <FONT FACE="Arial, Helvetica">fixed_#_currency</FONT>
instance and Currency'Length. A layout error occurs if Currency'Length
exceeds the length of the <FONT FACE="Arial, Helvetica">fixed_#_currency</FONT>
instance; no edited output string is produced.</DIV>
<DIV Class="Paranum"><FONT SIZE=-2>49</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> An instance of
<FONT FACE="Arial, Helvetica">floating_$_currency</FONT> maps to the
string obtained as follows: </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>50</FONT></DIV>
<DL Class="Enumerated"><DT> 1.<DD Class="Enumerated">
Up to all but one of the rightmost '$' Character values are replaced
with the excess digits (if any) from the <I>integer_part</I> of the mapping
of the <FONT FACE="Arial, Helvetica">number</FONT> to the right of the
<FONT FACE="Arial, Helvetica">floating_$_currency</FONT> instance.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>51</FONT></DIV>
<DL Class="Enumerated"><DT> 2.<DD Class="Enumerated">
The next Character to the left is replaced by the Currency string.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>52</FONT></DIV>
<DL Class="Enumerated"><DT> 3.<DD Class="Enumerated">
A <FONT FACE="Arial, Helvetica">context_sensitive_insertion</FONT> Character
is replaced as though it were a <FONT FACE="Arial, Helvetica">direct_insertion</FONT>
Character, if it occurs to the right of the leftmost '$' Character replaced
via rule 1.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>53</FONT></DIV>
<DL Class="Enumerated"><DT> 4.<DD Class="Enumerated">
Each other Character is replaced by the space character.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>54</FONT></DIV>
<DL Class="Enumerated"><DT> 5.<DD Class="Enumerated">
A layout error occurs if some excess digits remain after replacement
by rule 1; no edited output string is produced. </DL>
<DIV Class="Paranum"><FONT SIZE=-2>55</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> An instance of
<FONT FACE="Arial, Helvetica">floating_#_currency</FONT> maps to the
string obtained as follows: </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>56</FONT></DIV>
<DL Class="Enumerated"><DT> 1.<DD Class="Enumerated">
Up to all but one of the rightmost '#' Character values are replaced
with the excess digits (if any) from the <I>integer_part</I> of the mapping
of the <FONT FACE="Arial, Helvetica">number</FONT> to the right of the
<FONT FACE="Arial, Helvetica">floating_#_currency</FONT> instance.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>57</FONT></DIV>
<DL Class="Enumerated"><DT> 2.<DD Class="Enumerated">
The substring whose last Character occurs at the position immediately
preceding the leftmost Character replaced via rule 1, and whose length
is Currency'Length, is replaced by the Currency string.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>58</FONT></DIV>
<DL Class="Enumerated"><DT> 3.<DD Class="Enumerated">
A <FONT FACE="Arial, Helvetica">context_sensitive_insertion</FONT> Character
is replaced as though it were a <FONT FACE="Arial, Helvetica">direct_insertion</FONT>
Character, if it occurs to the right of the leftmost '#' replaced via
rule 1.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>59</FONT></DIV>
<DL Class="Enumerated"><DT> 4.<DD Class="Enumerated">
Any other Character is replaced by the space character.</DL>
<DIV Class="Paranum"><FONT SIZE=-2>60</FONT></DIV>
<DL Class="Enumerated"><DT> 5.<DD Class="Enumerated">
A layout error occurs if some excess digits remain after replacement
rule 1, or if there is no substring with the required length for replacement
rule 2; no edited output string is produced. </DL>
<DIV Class="Paranum"><FONT SIZE=-2>61</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> An instance of
<FONT FACE="Arial, Helvetica">all_zero_suppression_number</FONT> maps
to: </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>62</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>a string of all spaces if the displayed magnitude of Item
is zero, the <FONT FACE="Arial, Helvetica">zero_suppression_char</FONT>
is 'Z' or 'z', and the instance of <FONT FACE="Arial, Helvetica">all_zero_suppression_number</FONT>
does not have a <FONT FACE="Arial, Helvetica">radix</FONT> at its last
character position;</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>63</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>a string containing the Fill character in each position
except for the character (if any) corresponding to <FONT FACE="Arial, Helvetica">radix</FONT>,
if <FONT FACE="Arial, Helvetica">zero_suppression_char</FONT> = '*' and
the displayed magnitude of Item is zero;</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>64</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>otherwise, the same result as if each <FONT FACE="Arial, Helvetica">zero_suppression_char</FONT>
in <FONT FACE="Arial, Helvetica">all_zero_suppression_aft</FONT> were
'9', interpreting the instance of <FONT FACE="Arial, Helvetica">all_zero_suppression_number</FONT>
as either <FONT FACE="Arial, Helvetica">zero_suppression</FONT> <FONT FACE="Arial, Helvetica">number</FONT>
(if a <FONT FACE="Arial, Helvetica">radix</FONT> and <FONT FACE="Arial, Helvetica">all_zero_suppression_aft</FONT>
are present), or as <FONT FACE="Arial, Helvetica">zero_suppression</FONT>
otherwise. </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>65</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> An instance of
<FONT FACE="Arial, Helvetica">all_sign_number</FONT> maps to: </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>66</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>a string of all spaces if the displayed magnitude of Item
is zero and the instance of <FONT FACE="Arial, Helvetica">all_sign_number</FONT>
does not have a <FONT FACE="Arial, Helvetica">radix</FONT> at its last
character position;</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>67</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>otherwise, the same result as if each <FONT FACE="Arial, Helvetica">sign_char</FONT>
in <FONT FACE="Arial, Helvetica">all_sign_number_aft</FONT> were '9',
interpreting the instance of <FONT FACE="Arial, Helvetica">all_sign_number</FONT>
as either <FONT FACE="Arial, Helvetica">floating_LHS_sign</FONT> <FONT FACE="Arial, Helvetica">number</FONT>
(if a <FONT FACE="Arial, Helvetica">radix</FONT> and <FONT FACE="Arial, Helvetica">all_sign_number_aft</FONT>
are present), or as <FONT FACE="Arial, Helvetica">floating_LHS_sign</FONT>
otherwise. </LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>68</FONT></DIV>
<DIV Class="Normal" Style="margin-bottom: 0.4em"> An instance of
<FONT FACE="Arial, Helvetica">all_currency_number</FONT> maps to: </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>69</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>a string of all spaces if the displayed magnitude of Item
is zero and the instance of <FONT FACE="Arial, Helvetica">all_currency_number</FONT>
does not have a <FONT FACE="Arial, Helvetica">radix</FONT> at its last
character position;</LI></UL>
<DIV Class="Paranum"><FONT SIZE=-2>70</FONT></DIV>
<UL Class="Bulleted"><LI TYPE=DISC>otherwise, the same result as if each <FONT FACE="Arial, Helvetica">currency_char</FONT>
in <FONT FACE="Arial, Helvetica">all_currency_number_aft</FONT> were
'9', interpreting the instance of <FONT FACE="Arial, Helvetica">all_currency_number</FONT>
as <FONT FACE="Arial, Helvetica">floating_$_currency</FONT> <FONT FACE="Arial, Helvetica">number</FONT>
or <FONT FACE="Arial, Helvetica">floating_#_currency</FONT> <FONT FACE="Arial, Helvetica">number</FONT>
(if a <FONT FACE="Arial, Helvetica">radix</FONT> and <FONT FACE="Arial, Helvetica">all_currency_number_aft</FONT>
are present), or as <FONT FACE="Arial, Helvetica">floating_$_currency</FONT>
or <FONT FACE="Arial, Helvetica">floating_#_currency</FONT> otherwise.
</LI></UL>
<H4 ALIGN=CENTER>Examples</H4>
<DIV Class="Paranum"><FONT SIZE=-2>71</FONT></DIV>
<DIV Class="Normal"> In the result string values shown below, 'b'
represents the space character. </DIV>
<DIV Class="Paranum"><FONT SIZE=-2>72</FONT></DIV>
<DIV Class="Examples"><TT>Item: Picture and Result Strings:</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>73</FONT></DIV>
<DIV Class="Examples"><TT>123456.78 Picture: "-###**_***_**9.99"<BR>
"bbb$***123,456.78"<BR>
"bbFF***123.456,78" (currency = "FF",<BR>
separator = '.',<BR>
radix mark = ',')</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>74/1</FONT></DIV>
<DIV Class="Examples"><TT>123456.78 Picture: "-$**_***_**9.99"<BR>
Result: "b$***123,456.78"<BR>
"bFF***123.456,78" (currency = "FF",<BR>
separator = '.',<BR>
radix mark = ',')</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>75</FONT></DIV>
<DIV Class="Examples"><TT>0.0 Picture: "-$$$$$$.$$"<BR>
Result: "bbbbbbbbbb"</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>76</FONT></DIV>
<DIV Class="Examples"><TT>0.20 Picture: "-$$$$$$.$$"<BR>
Result: "bbbbbb$.20"</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>77</FONT></DIV>
<DIV Class="Examples"><TT>-1234.565 Picture: "<<<<_<<<.<<###>"<BR>
Result: "bb(1,234.57DMb)" (currency = "DM")</TT></DIV>
<DIV Class="Paranum"><FONT SIZE=-2>78</FONT></DIV>
<DIV Class="Examples"><TT>12345.67 Picture: "###_###_##9.99"<BR>
Result: "bbCHF12,345.67" (currency = "CHF")</TT></DIV>
<HR>
<P><A HREF="RM-TOC.html">Contents</A> <A HREF="RM-0-29.html">Index</A> <A HREF="RM-F-3-1.html">Previous</A> <A HREF="RM-F-3-3.html">Next</A> <A HREF="RM-TTL.html">Legal</A></P>
</BODY>
</HTML>
|