1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>Binary Native Endianness Parsers</title> 5<link rel="stylesheet" href="../../../../../../../../doc/src/boostbook.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../../../../index.html" title="Spirit 2.5.8"> 8<link rel="up" href="../binary.html" title="Binary Parsers"> 9<link rel="prev" href="../binary.html" title="Binary Parsers"> 10<link rel="next" href="binary_little.html" title="Binary Little Endianness Parser"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr> 14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../../../boost.png"></td> 15<td align="center"><a href="../../../../../../../../index.html">Home</a></td> 16<td align="center"><a href="../../../../../../../../libs/libraries.htm">Libraries</a></td> 17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td> 18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td> 19<td align="center"><a href="../../../../../../../../more/index.htm">More</a></td> 20</tr></table> 21<hr> 22<div class="spirit-nav"> 23<a accesskey="p" href="../binary.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binary.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_little.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> 24</div> 25<div class="section"> 26<div class="titlepage"><div><div><h5 class="title"> 27<a name="spirit.qi.reference.binary.binary_native"></a><a class="link" href="binary_native.html" title="Binary Native Endianness Parsers">Binary 28 Native Endianness Parsers</a> 29</h5></div></div></div> 30<h6> 31<a name="spirit.qi.reference.binary.binary_native.h0"></a> 32 <span class="phrase"><a name="spirit.qi.reference.binary.binary_native.description"></a></span><a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.description">Description</a> 33 </h6> 34<p> 35 Binary native endian parsers are designed to parse binary byte streams 36 that are laid out in the native <a href="http://en.wikipedia.org/wiki/Endianness" target="_top">endianness</a> 37 of the target architecture. 38 </p> 39<h6> 40<a name="spirit.qi.reference.binary.binary_native.h1"></a> 41 <span class="phrase"><a name="spirit.qi.reference.binary.binary_native.header"></a></span><a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.header">Header</a> 42 </h6> 43<pre class="programlisting"><span class="comment">// forwards to <boost/spirit/home/qi/binary.hpp></span> 44<span class="preprocessor">#include</span> <span class="special"><</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">spirit</span><span class="special">/</span><span class="identifier">include</span><span class="special">/</span><span class="identifier">qi_binary</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">></span> 45</pre> 46<p> 47 Also, see <a class="link" href="../../../structure/include.html" title="Include">Include Structure</a>. 48 </p> 49<h6> 50<a name="spirit.qi.reference.binary.binary_native.h2"></a> 51 <span class="phrase"><a name="spirit.qi.reference.binary.binary_native.namespace"></a></span><a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.namespace">Namespace</a> 52 </h6> 53<div class="informaltable"><table class="table"> 54<colgroup><col></colgroup> 55<thead><tr><th> 56 <p> 57 Name 58 </p> 59 </th></tr></thead> 60<tbody> 61<tr><td> 62 <p> 63 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">byte_</span> <span class="comment">// 64 alias: boost::spirit::qi::byte_</span></code> 65 </p> 66 </td></tr> 67<tr><td> 68 <p> 69 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">word</span> <span class="comment">// alias: 70 boost::spirit::qi::word</span></code> 71 </p> 72 </td></tr> 73<tr><td> 74 <p> 75 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">dword</span> <span class="comment">// 76 alias: boost::spirit::qi::dword</span></code> 77 </p> 78 </td></tr> 79<tr><td> 80 <p> 81 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qword</span> <span class="comment">// 82 alias: boost::spirit::qi::qword</span></code> 83 </p> 84 </td></tr> 85<tr><td> 86 <p> 87 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">bin_float</span> <span class="comment">// 88 alias: boost::spirit::qi::bin_float</span></code> 89 </p> 90 </td></tr> 91<tr><td> 92 <p> 93 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">bin_double</span> <span class="comment">// 94 alias: boost::spirit::qi::bin_double</span></code> 95 </p> 96 </td></tr> 97</tbody> 98</table></div> 99<div class="note"><table border="0" summary="Note"> 100<tr> 101<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td> 102<th align="left">Note</th> 103</tr> 104<tr><td align="left" valign="top"><p> 105 <code class="computeroutput"><span class="identifier">qword</span></code> is only available 106 on platforms where the preprocessor constant <code class="computeroutput"><span class="identifier">BOOST_HAS_LONG_LONG</span></code> 107 is defined (i.e. on platforms having native support for <code class="computeroutput"><span class="keyword">unsigned</span> <span class="keyword">long</span> 108 <span class="keyword">long</span></code> (64 bit) integer types). 109 </p></td></tr> 110</table></div> 111<h6> 112<a name="spirit.qi.reference.binary.binary_native.h3"></a> 113 <span class="phrase"><a name="spirit.qi.reference.binary.binary_native.model_of"></a></span><a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.model_of">Model of</a> 114 </h6> 115<div class="blockquote"><blockquote class="blockquote"><p> 116 <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a> 117 </p></blockquote></div> 118<div class="variablelist"> 119<p class="title"><b>Notation</b></p> 120<dl class="variablelist"> 121<dt><span class="term"><code class="computeroutput"><span class="identifier">b</span></code></span></dt> 122<dd><p> 123 A single byte (8 bit binary value) or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy 124 Argument</a> that evaluates to a single byte. This value is 125 always in native endian. 126 </p></dd> 127<dt><span class="term"><code class="computeroutput"><span class="identifier">w</span></code></span></dt> 128<dd><p> 129 A 16 bit binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy 130 Argument</a> that evaluates to a 16 bit binary value. This value 131 is always in native endian. 132 </p></dd> 133<dt><span class="term"><code class="computeroutput"><span class="identifier">dw</span></code></span></dt> 134<dd><p> 135 A 32 bit binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy 136 Argument</a> that evaluates to a 32 bit binary value. This value 137 is always in native endian. 138 </p></dd> 139<dt><span class="term"><code class="computeroutput"><span class="identifier">qw</span></code></span></dt> 140<dd><p> 141 A 64 bit binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy 142 Argument</a> that evaluates to a 64 bit binary value. This value 143 is always in native endian. 144 </p></dd> 145<dt><span class="term"><code class="computeroutput"><span class="identifier">f</span></code></span></dt> 146<dd><p> 147 A float binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy 148 Argument</a> that evaluates to a float binary value. This value 149 is always in native endian. 150 </p></dd> 151<dt><span class="term"><code class="computeroutput"><span class="identifier">d</span></code></span></dt> 152<dd><p> 153 A double binary value or a <a class="link" href="../basics.html#spirit.qi.reference.basics.lazy_argument">Lazy 154 Argument</a> that evaluates to a double binary value. This value 155 is always in native endian. 156 </p></dd> 157</dl> 158</div> 159<h6> 160<a name="spirit.qi.reference.binary.binary_native.h4"></a> 161 <span class="phrase"><a name="spirit.qi.reference.binary.binary_native.expression_semantics"></a></span><a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.expression_semantics">Expression 162 Semantics</a> 163 </h6> 164<p> 165 Semantics of an expression is defined only where it differs from, or 166 is not defined in <a class="link" href="../parser_concepts/primitiveparser.html" title="PrimitiveParser"><code class="computeroutput"><span class="identifier">PrimitiveParser</span></code></a>. 167 </p> 168<div class="informaltable"><table class="table"> 169<colgroup> 170<col> 171<col> 172</colgroup> 173<thead><tr> 174<th> 175 <p> 176 Expression 177 </p> 178 </th> 179<th> 180 <p> 181 Description 182 </p> 183 </th> 184</tr></thead> 185<tbody> 186<tr> 187<td> 188 <p> 189 <code class="computeroutput"><span class="identifier">byte_</span></code> 190 </p> 191 </td> 192<td> 193 <p> 194 Matches any 8 bit native endian binary. 195 </p> 196 </td> 197</tr> 198<tr> 199<td> 200 <p> 201 <code class="computeroutput"><span class="identifier">word</span></code> 202 </p> 203 </td> 204<td> 205 <p> 206 Matches any 16 bit native endian binary. 207 </p> 208 </td> 209</tr> 210<tr> 211<td> 212 <p> 213 <code class="computeroutput"><span class="identifier">dword</span></code> 214 </p> 215 </td> 216<td> 217 <p> 218 Matches any 32 bit native endian binary. 219 </p> 220 </td> 221</tr> 222<tr> 223<td> 224 <p> 225 <code class="computeroutput"><span class="identifier">qword</span></code> 226 </p> 227 </td> 228<td> 229 <p> 230 Matches any 64 bit native endian binary. 231 </p> 232 </td> 233</tr> 234<tr> 235<td> 236 <p> 237 <code class="computeroutput"><span class="identifier">bin_float</span></code> 238 </p> 239 </td> 240<td> 241 <p> 242 Matches any float native endian binary. 243 </p> 244 </td> 245</tr> 246<tr> 247<td> 248 <p> 249 <code class="computeroutput"><span class="identifier">bin_double</span></code> 250 </p> 251 </td> 252<td> 253 <p> 254 Matches any double native endian binary. 255 </p> 256 </td> 257</tr> 258<tr> 259<td> 260 <p> 261 <code class="computeroutput"><span class="identifier">byte_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code> 262 </p> 263 </td> 264<td> 265 <p> 266 Matches an exact 8 bit native endian binary. 267 </p> 268 </td> 269</tr> 270<tr> 271<td> 272 <p> 273 <code class="computeroutput"><span class="identifier">word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code> 274 </p> 275 </td> 276<td> 277 <p> 278 Matches an exact 16 bit native endian binary. 279 </p> 280 </td> 281</tr> 282<tr> 283<td> 284 <p> 285 <code class="computeroutput"><span class="identifier">dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code> 286 </p> 287 </td> 288<td> 289 <p> 290 Matches an exact 32 bit native endian binary. 291 </p> 292 </td> 293</tr> 294<tr> 295<td> 296 <p> 297 <code class="computeroutput"><span class="identifier">qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code> 298 </p> 299 </td> 300<td> 301 <p> 302 Matches an exact 64 bit native endian binary. 303 </p> 304 </td> 305</tr> 306<tr> 307<td> 308 <p> 309 <code class="computeroutput"><span class="identifier">bin_float</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></code> 310 </p> 311 </td> 312<td> 313 <p> 314 Matches an exact float native endian binary. 315 </p> 316 </td> 317</tr> 318<tr> 319<td> 320 <p> 321 <code class="computeroutput"><span class="identifier">bin_double</span><span class="special">(</span><span class="identifier">d</span><span class="special">)</span></code> 322 </p> 323 </td> 324<td> 325 <p> 326 Matches an exact double native endian binary. 327 </p> 328 </td> 329</tr> 330</tbody> 331</table></div> 332<h6> 333<a name="spirit.qi.reference.binary.binary_native.h5"></a> 334 <span class="phrase"><a name="spirit.qi.reference.binary.binary_native.attributes"></a></span><a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.attributes">Attributes</a> 335 </h6> 336<div class="informaltable"><table class="table"> 337<colgroup> 338<col> 339<col> 340</colgroup> 341<thead><tr> 342<th> 343 <p> 344 Expression 345 </p> 346 </th> 347<th> 348 <p> 349 Attribute 350 </p> 351 </th> 352</tr></thead> 353<tbody> 354<tr> 355<td> 356 <p> 357 <code class="computeroutput"><span class="identifier">byte_</span></code> 358 </p> 359 </td> 360<td> 361 <p> 362 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least8_t</span></code> 363 </p> 364 </td> 365</tr> 366<tr> 367<td> 368 <p> 369 <code class="computeroutput"><span class="identifier">word</span></code> 370 </p> 371 </td> 372<td> 373 <p> 374 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least16_t</span></code> 375 </p> 376 </td> 377</tr> 378<tr> 379<td> 380 <p> 381 <code class="computeroutput"><span class="identifier">dword</span></code> 382 </p> 383 </td> 384<td> 385 <p> 386 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least32_t</span></code> 387 </p> 388 </td> 389</tr> 390<tr> 391<td> 392 <p> 393 <code class="computeroutput"><span class="identifier">qword</span></code> 394 </p> 395 </td> 396<td> 397 <p> 398 <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint_least64_t</span></code> 399 </p> 400 </td> 401</tr> 402<tr> 403<td> 404 <p> 405 <code class="computeroutput"><span class="identifier">bin_float</span></code> 406 </p> 407 </td> 408<td> 409 <p> 410 <code class="computeroutput"><span class="keyword">float</span></code> 411 </p> 412 </td> 413</tr> 414<tr> 415<td> 416 <p> 417 <code class="computeroutput"><span class="identifier">bin_double</span></code> 418 </p> 419 </td> 420<td> 421 <p> 422 <code class="computeroutput"><span class="keyword">double</span></code> 423 </p> 424 </td> 425</tr> 426<tr> 427<td> 428 <p> 429 <code class="computeroutput"><span class="identifier">byte_</span><span class="special">(</span><span class="identifier">b</span><span class="special">)</span></code> 430 </p> 431 </td> 432<td> 433 <p> 434 <code class="computeroutput"><span class="identifier">unused</span></code> 435 </p> 436 </td> 437</tr> 438<tr> 439<td> 440 <p> 441 <code class="computeroutput"><span class="identifier">word</span><span class="special">(</span><span class="identifier">w</span><span class="special">)</span></code> 442 </p> 443 </td> 444<td> 445 <p> 446 <code class="computeroutput"><span class="identifier">unused</span></code> 447 </p> 448 </td> 449</tr> 450<tr> 451<td> 452 <p> 453 <code class="computeroutput"><span class="identifier">dword</span><span class="special">(</span><span class="identifier">dw</span><span class="special">)</span></code> 454 </p> 455 </td> 456<td> 457 <p> 458 <code class="computeroutput"><span class="identifier">unused</span></code> 459 </p> 460 </td> 461</tr> 462<tr> 463<td> 464 <p> 465 <code class="computeroutput"><span class="identifier">qword</span><span class="special">(</span><span class="identifier">qw</span><span class="special">)</span></code> 466 </p> 467 </td> 468<td> 469 <p> 470 <code class="computeroutput"><span class="identifier">unused</span></code> 471 </p> 472 </td> 473</tr> 474<tr> 475<td> 476 <p> 477 <code class="computeroutput"><span class="identifier">bin_float</span><span class="special">(</span><span class="identifier">f</span><span class="special">)</span></code> 478 </p> 479 </td> 480<td> 481 <p> 482 <code class="computeroutput"><span class="identifier">unused</span></code> 483 </p> 484 </td> 485</tr> 486<tr> 487<td> 488 <p> 489 <code class="computeroutput"><span class="identifier">bin_double</span><span class="special">(</span><span class="identifier">d</span><span class="special">)</span></code> 490 </p> 491 </td> 492<td> 493 <p> 494 <code class="computeroutput"><span class="identifier">unused</span></code> 495 </p> 496 </td> 497</tr> 498</tbody> 499</table></div> 500<h6> 501<a name="spirit.qi.reference.binary.binary_native.h6"></a> 502 <span class="phrase"><a name="spirit.qi.reference.binary.binary_native.complexity"></a></span><a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.complexity">Complexity</a> 503 </h6> 504<div class="blockquote"><blockquote class="blockquote"><p> 505 O(N), where N is the number of bytes parsed 506 </p></blockquote></div> 507<h6> 508<a name="spirit.qi.reference.binary.binary_native.h7"></a> 509 <span class="phrase"><a name="spirit.qi.reference.binary.binary_native.example"></a></span><a class="link" href="binary_native.html#spirit.qi.reference.binary.binary_native.example">Example</a> 510 </h6> 511<div class="note"><table border="0" summary="Note"> 512<tr> 513<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="../../../../images/note.png"></td> 514<th align="left">Note</th> 515</tr> 516<tr><td align="left" valign="top"><p> 517 The test harness for the example(s) below is presented in the <a class="link" href="../basics.html#spirit.qi.reference.basics.examples">Basics Examples</a> 518 section. 519 </p></td></tr> 520</table></div> 521<p> 522 Using declarations and variables: 523 </p> 524<p> 525</p> 526<pre class="programlisting"><span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">byte_</span><span class="special">;</span> 527<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">word</span><span class="special">;</span> 528<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">dword</span><span class="special">;</span> 529<span class="keyword">using</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">spirit</span><span class="special">::</span><span class="identifier">qi</span><span class="special">::</span><span class="identifier">qword</span><span class="special">;</span> 530 531<span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint8_t</span> <span class="identifier">uc</span><span class="special">;</span> 532<span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint16_t</span> <span class="identifier">us</span><span class="special">;</span> 533<span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint32_t</span> <span class="identifier">ui</span><span class="special">;</span> 534<span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint64_t</span> <span class="identifier">ul</span><span class="special">;</span> 535</pre> 536<p> 537 </p> 538<p> 539 Basic usage of the native binary parsers for little endian platforms: 540 </p> 541<p> 542</p> 543<pre class="programlisting"><span class="identifier">test_parser_attr</span><span class="special">(</span><span class="string">"\x01"</span><span class="special">,</span> <span class="identifier">byte_</span><span class="special">,</span> <span class="identifier">uc</span><span class="special">);</span> <span class="identifier">assert</span><span class="special">(</span><span class="identifier">uc</span> <span class="special">==</span> <span class="number">0x01</span><span class="special">);</span> 544<span class="identifier">test_parser_attr</span><span class="special">(</span><span class="string">"\x01\x02"</span><span class="special">,</span> <span class="identifier">word</span><span class="special">,</span> <span class="identifier">us</span><span class="special">);</span> <span class="identifier">assert</span><span class="special">(</span><span class="identifier">us</span> <span class="special">==</span> <span class="number">0x0201</span><span class="special">);</span> 545<span class="identifier">test_parser_attr</span><span class="special">(</span><span class="string">"\x01\x02\x03\x04"</span><span class="special">,</span> <span class="identifier">dword</span><span class="special">,</span> <span class="identifier">ui</span><span class="special">);</span> <span class="identifier">assert</span><span class="special">(</span><span class="identifier">ui</span> <span class="special">==</span> <span class="number">0x04030201</span><span class="special">);</span> 546<span class="identifier">test_parser_attr</span><span class="special">(</span><span class="string">"\x01\x02\x03\x04\x05\x06\x07\x08"</span><span class="special">,</span> <span class="identifier">qword</span><span class="special">,</span> <span class="identifier">ul</span><span class="special">);</span> 547<span class="identifier">assert</span><span class="special">(</span><span class="identifier">ul</span> <span class="special">==</span> <span class="number">0</span><span class="identifier">x0807060504030201LL</span><span class="special">);</span> 548 549<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"\x01"</span><span class="special">,</span> <span class="identifier">byte_</span><span class="special">(</span><span class="number">0x01</span><span class="special">));</span> 550<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"\x01\x02"</span><span class="special">,</span> <span class="identifier">word</span><span class="special">(</span><span class="number">0x0201</span><span class="special">));</span> 551<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"\x01\x02\x03\x04"</span><span class="special">,</span> <span class="identifier">dword</span><span class="special">(</span><span class="number">0x04030201</span><span class="special">));</span> 552<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"\x01\x02\x03\x04\x05\x06\x07\x08"</span><span class="special">,</span> 553 <span class="identifier">qword</span><span class="special">(</span><span class="number">0</span><span class="identifier">x0807060504030201LL</span><span class="special">));</span> 554</pre> 555<p> 556 </p> 557<p> 558 Basic usage of the native binary parsers for big endian platforms: 559 </p> 560<p> 561</p> 562<pre class="programlisting"><span class="identifier">test_parser_attr</span><span class="special">(</span><span class="string">"\x01"</span><span class="special">,</span> <span class="identifier">byte_</span><span class="special">,</span> <span class="identifier">uc</span><span class="special">);</span> <span class="identifier">assert</span><span class="special">(</span><span class="identifier">uc</span> <span class="special">==</span> <span class="number">0x01</span><span class="special">);</span> 563<span class="identifier">test_parser_attr</span><span class="special">(</span><span class="string">"\x01\x02"</span><span class="special">,</span> <span class="identifier">word</span><span class="special">,</span> <span class="identifier">us</span><span class="special">);</span> <span class="identifier">assert</span><span class="special">(</span><span class="identifier">us</span> <span class="special">==</span> <span class="number">0x0102</span><span class="special">);</span> 564<span class="identifier">test_parser_attr</span><span class="special">(</span><span class="string">"\x01\x02\x03\x04"</span><span class="special">,</span> <span class="identifier">dword</span><span class="special">,</span> <span class="identifier">ui</span><span class="special">);</span> <span class="identifier">assert</span><span class="special">(</span><span class="identifier">ui</span> <span class="special">==</span> <span class="number">0x01020304</span><span class="special">);</span> 565<span class="identifier">test_parser_attr</span><span class="special">(</span><span class="string">"\x01\x02\x03\x04\x05\x06\x07\x08"</span><span class="special">,</span> <span class="identifier">qword</span><span class="special">,</span> <span class="identifier">ul</span><span class="special">);</span> 566<span class="identifier">assert</span><span class="special">(</span><span class="number">0</span><span class="identifier">x0102030405060708LL</span><span class="special">);</span> 567 568<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"\x01"</span><span class="special">,</span> <span class="identifier">byte_</span><span class="special">(</span><span class="number">0x01</span><span class="special">));</span> 569<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"\x01\x02"</span><span class="special">,</span> <span class="identifier">word</span><span class="special">(</span><span class="number">0x0102</span><span class="special">));</span> 570<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"\x01\x02\x03\x04"</span><span class="special">,</span> <span class="identifier">dword</span><span class="special">(</span><span class="number">0x01020304</span><span class="special">));</span> 571<span class="identifier">test_parser</span><span class="special">(</span><span class="string">"\x01\x02\x03\x04\x05\x06\x07\x08"</span><span class="special">,</span> 572 <span class="identifier">qword</span><span class="special">(</span><span class="number">0</span><span class="identifier">x0102030405060708LL</span><span class="special">));</span> 573</pre> 574<p> 575 </p> 576</div> 577<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 578<td align="left"></td> 579<td align="right"><div class="copyright-footer">Copyright © 2001-2011 Joel de Guzman, Hartmut Kaiser<p> 580 Distributed under the Boost Software License, Version 1.0. (See accompanying 581 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>) 582 </p> 583</div></td> 584</tr></table> 585<hr> 586<div class="spirit-nav"> 587<a accesskey="p" href="../binary.html"><img src="../../../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../binary.html"><img src="../../../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../../../index.html"><img src="../../../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_little.html"><img src="../../../../../../../../doc/src/images/next.png" alt="Next"></a> 588</div> 589</body> 590</html> 591