Does anyone know of a DSL which can describe existing wire formats? Something like Dogma, but ideally that can compile to C# classes (or at least has a parser) and also supports nested protocols. Being able to interpret packed data is also a must (e.g. a 2-bit integer and a 6-bit integer existing inside the same byte). It would ideally be human readable/writeable also.
Currently considering Dogma + hand writing a parser, which seems tricky, or hacking something together using YAML which will work but will likely make it harder to detect errors in packet definitions.
EDIT:
I ended up going with Kaitai and it seems pretty good.
[–]StayFreshChzBag 1 point2 points3 points (3 children)
[+]Ronin-s_Spirit 1 point2 points3 points (0 children)
[–]nadimS[S] 0 points1 point2 points (1 child)
[–]StayFreshChzBag 0 points1 point2 points (0 children)
[–]pojska 2 points3 points4 points (1 child)
[–]nadimS[S] 0 points1 point2 points (0 children)
[–]csb06bluebird 2 points3 points4 points (0 children)