vstruct icon indicating copy to clipboard operation
vstruct copied to clipboard

[feature] Inter-format-string splicing

Open ToxicFrog opened this issue 12 years ago • 1 comments

It is often convenient to incrementally build a format string, creating format strings describing individual sub-records before combining them into something larger. This is currently unwieldy and must be done with .. or string.format.

It would be nice to be able to do something like, say:

vstruct.register("toc_entry", "path:c4 size:u4")
vstruct.register("toc", "count:u4 toc:{ $count * <toc_entry> }")
vstruct.unpack("<toc>", buffer)

Syntax is still a work in progress, and this can be considered an intermediate step towards format string combinators (which I need to open an issue for).

ToxicFrog avatar Jul 05 '13 17:07 ToxicFrog

848fd7204706b133552f2cd69c1fac2e7db9215b implements this, although the syntax and API are still a work in progress; I'm not ready to mark this closed (or cut a new release) until I'm happy with them.

Syntax uses &name, since $name is reserved for future expansion (backreferences).

ToxicFrog avatar Feb 06 '14 16:02 ToxicFrog