config { type RegisterAddressType = u8; type CommandAddressType = u16; type BufferAddressType = u32; type DefaultByteOrder = LE; type NameWordBoundaries = [ Hyphen, Underscore ]; type DefmtFeature = "blah"; } block Bar { const ADDRESS_OFFSET = 10; const REPEAT = { count: 2, stride: 20, }; ///This is the Foo register register Foo { const ADDRESS = 0; const SIZE_BITS = 24; ///This is a bool! value0: bool = 0..1, value1: uint = 1..16, value2: int = 16..24, }, }, ///A command with inputs and outputs command InOut { const ADDRESS = 3; const SIZE_BITS_IN = 16; const SIZE_BITS_OUT = 8; in { ///The value! val: uint = 0..16, } out { ///The value! val: uint = 0..8, } }, buffer WoBuf: WO = 1, ///This is the Foo ref ref FooRef = register Foo { const ADDRESS = 3; const RESET_VALUE = 0x000002; }