All notable changes to this project will be documented in this file.
The changelog format is based on Keep a Changelog.
3.2.0 - CURRENT
- add 'is_bitwise' enum attribute to indicate than an enumeration contains flags and should support bitwise operations
- generators module providing utility functions for generator authors
- struct attribute: is_aligned
- added back one-pass code generation support and deprecated YAML generation
- rename 'implicit_size' attribute to 'is_size_implicit'
- added 'pad_last' and 'not pad_last' qualifiers to 'alignment' attribute
- serialization of signed integers (#7)
- YAML generation
3.1.0 - 22-Dec-2021
- struct attribute: implicit_size
- struct field sizeof directive
- struct discriminator attribute supports multiple values
3.0.2 - 17-Dec-2021
- struct attributes: {size, initializes, discriminator}
- struct field attributes: {is_byte_constrained, alignment, sort_key}
- struct "abstract" modifier
- AST object model
- CATS DSL documentation
- rewrite entire parser using Lark grammar
- array(...) syntax
- deprecated YAML output format
- actually generate proper YAML files
- one pass code generation
- YAML export option
- 'inline struct' directive to express macro-like expansion
- conditional support for array types
- enforce strict pythonic naming
- parser output to YAML instead of python objects
- first class support for reserved fields with 'make_reserved' keyword
- allow enum value names to be used as constant values
- add 'not' keyword and support for negative conditions
- allow numeric conditionals as well as enum conditionals
- add support for numeric arrays
- replace
const
keyword withmake_const
to preserve a unified left to right flow - rename keyword 'has' to 'in'
- deprecate explicit use of 'byte' type
1.0.0 - 19-Apr-2021
- initial code release