1 + 5 + 2 * 5 / 2; enum foo { foo: 0x1; bar: 0x2; eaf: 0x3; eaf: 0xDEADBEEF; bar; }; struct elf64 { e_entry: u64 hex; e_phoff: u64; e_shoff: u64; }; struct elf { ei_magic: u8[4] | matches('\x7fELF') str; ei_class: u8 hex; // word size ei_data: u8 hex; // endianess ei_version: u8; ei_osabi: u8; ei_abi_version: u8; padding: u8[7] nul; e_type: u16 hex; e_machine: u16 hex; e_version: u32; elf64: struct elf64; // fspec needs union to parse ei_class != 2 type e_flags: u32 hex; e_ehsz: u16; e_phentsize: u16; e_phnum: u16; e_shentsize: u16; e_shnum: u16; e_shstrndx: u16; };