byteOrdering :: little-endian; format struct SomeFile{ magicnumber :: ascii("BIN"); tablesize :: short; offsettable :: Chunk[tablesize]; skip data :: byte[tablesize * sizeof(Chunk)]; age :: Age; author :: byte[] until "\0" or EOF; } rel_offset Chunk :: short{ somedata :: byte[8]; } enum Age :: ubyte{ local diff :: int; [0..18]: Underage [diff = value, warning("This age is not allowed") ]; [19..65]: WorkerAge [diff = value-19]; [66..255]: Senior [diff = value-66]; }