As there were some major improvements for the layout language I decided to jump from 0.1.3.1 straight up to 0.2.0.
New features include ability to assign enum values with a constant expression (enum { Foo = 1 << 3 }) and reflection for struct types. Also some improvements for the GUI including how members are displayed (not yet fully ported to the command line version).
I decided the most appropriate syntax for reflection was
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | struct(Messages, "Hi") MessageHello { ... }; struct Message { u(4) type; if (has_type(Messages, type)) { Messages[type] content; } else { print("I don't know this message, ignoring"); } }; |
You can see it in action from the examples folder (now also included in the zipped package) for png bet.
As per usual you can find the new Windows release of command line version here on the main page, and the GUI version at itch io
Next step, something I've been putting off for quite some time now, is battle with the penguin - a Linux version.