Is Quackle's GADDAG file format documented anywhere?
AFAICT, looking in the declarations in "gaddag.h", and hex dumping the
file "twl06.gaddag", the deal seems to be:
1. The file is a string of "nodes", each of which is a 4-byte sequence.
2. Each node has the following structure:
2.1. Three most significant bytes: offset to first child node, in
4-byte units: i.e., if these three bytes together have the vaule
"2017", then the first child is 2017 nodes after this one.
2.2. Least significant byte:
2.2.1. Bit 7: not used
2.2.2. Bit 6: if set, next node is right sibling of this one
2.2.3. Bit 5: if set, this node is terminal
2.2.4. Bits 4,3,2,1,0: letter at this node (0 = A, 1 = B, etc.)
Correct so far?
I'm hoping that the way to interpret the nodes is: any sequence of
"child links" from the root node (number 0) that leads to a terminal
node corresponds to a valid word. Reading off the letters in the nodes
while following these links should spell the word. A "word" itself may
be a concatenation of two strings with a "\" separator in-between that
need to be properly put together to arrive at a lexicon word.
Is this correct, too?
If so, I wonder why a little program I'm trying out is breaking...
-AC