![]() |
Home | Libraries | People | FAQ | More |
Binary big endian parsers are designed to parse binary byte streams that are laid out in big endian.
// forwards to <boost/spirit/home/qi/binary.hpp> #include <boost/spirit/include/qi_binary.hpp>
Also, see Include Structure.
|
Name |
|---|
|
|
|
|
|
|
|
|
|
|
![]() |
Note |
|---|---|
|
Notation
wA 16 bit binary value or a Lazy Argument that evaluates to a 16 bit binary value. This value is always in native endian.
dwA 32 bit binary value or a Lazy Argument that evaluates to a 32 bit binary value. This value is always in native endian.
qwA 64 bit binary value or a Lazy Argument that evaluates to a 64 bit binary value. This value is always in native endian.
fA float binary value or a Lazy Argument that evaluates to a float binary value. This value is always in native endian.
dA double binary value or a Lazy Argument that evaluates to a double binary value. This value is always in native endian.
Semantics of an expression is defined only where it differs from, or
is not defined in PrimitiveParser.
|
Expression |
Description |
|---|---|
|
|
Matches any 16 bit big endian binary. |
|
|
Matches any 32 bit big endian binary. |
|
|
Matches any 64 bit big endian binary. |
|
|
Matches any float big endian binary. |
|
|
Matches any double big endian binary. |
|
|
Matches an exact 16 bit big endian binary. |
|
|
Matches an exact 32 bit big endian binary. |
|
|
Matches an exact 32 bit big endian binary. |
|
|
Matches an exact float big endian binary. |
|
|
Matches an exact double big endian binary. |
|
Expression |
Attribute |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
O(N), where N is the number of bytes parsed
![]() |
Note |
|---|---|
The test harness for the example(s) below is presented in the Basics Examples section. |
Using declarations and variables:
using boost::spirit::qi::big_word; using boost::spirit::qi::big_dword; using boost::spirit::qi::big_qword; boost::uint16_t us; boost::uint32_t ui; boost::uint64_t ul;
Basic usage of the big endian binary parsers:
test_parser_attr("\x01\x02", big_word, us); assert(us == 0x0102); test_parser_attr("\x01\x02\x03\x04", big_dword, ui); assert(ui == 0x01020304); test_parser_attr("\x01\x02\x03\x04\x05\x06\x07\x08", big_qword, ul); assert(0x0102030405060708LL); test_parser("\x01\x02", big_word(0x0102)); test_parser("\x01\x02\x03\x04", big_dword(0x01020304)); test_parser("\x01\x02\x03\x04\x05\x06\x07\x08", big_qword(0x0102030405060708LL));