Hi Steffen,
Yes, thanks! That is much clearer.
An NCX entry can never have more than one parent, can only have one position, one class, one length, and although it could have many children, the children are actually indicated by two different values which provide a range - the first of which is the record number of the first child of this ncx entry and the second of which is the record number of the last child of this ncx entry (as a range).
So it appears that 1 bit is only ever needed. I would guess your inflection dictionaries are much much more complicated than the ncx entries.
So because of the structure of the fields, I believe that multi-bit masks as you describe below are never used.
And I agree we should at least run a test and warn if multi-bit masks are ever found in the NCX code.
Thanks!
Kevin
Quote:
Let's say you have 3 tags with one bit and one tag with two bits than you should see the following masks:
0b00000001 = 0x01 for tag1
0b00000010 = 0x02 for tag2
0b00000100 = 0x04 for tag3
0b00011000 = 0x18 for tag4
A control byte of 0x15 would then decode as:
0b00010101
1 * tag 1
0 * tag 2
1 * tag 3
2 * tag 4
I hope it's now clear what I mean.
|