2012/1/23 Olaf Meeuwissen <olaf.meeuwissen@avasys.jp>
Hi all,

While I had no trouble getting the parsing part for this to work, I'm
stuck on the generator part.  Specifically, I'm stuck on getting the
size into the output.

The goal is a rule that takes a std::vector<byte> and outputs it in such
a way that it is preceded by its size (in a custom encoding) and padded
by zeroes to align on a four byte boundary.

I want to reuse this rule in several other rules and prefer to break it
up into smaller pieces.  A minimalistic example of what I have come up
with so far is attached.  What I can't seem figure out how to get at and
store the vector's size in pascal_string_size_.  There also seem to be
problems with refering to the stored size_ in pascal_string_payload_ and
pascal_string_padding_ that I don't understand.

o Use phoenix::size to extrac the size
o Use karma::embed(*) to feed in the size
o Use local variable to store the size
o Use inherited attribute to pass the size

Full code attached.

(*) A component made by me, you can find it here: https://github.com/jamboree/boost-jamboree-spirit. As an alternative, you can search "no_attr" on Spirit ML.