update fst build struct

This commit is contained in:
yihaoDeng 2021-11-23 14:15:23 +08:00
parent dc9163a29a
commit 93c102e294
1 changed files with 7 additions and 12 deletions

View File

@ -156,27 +156,22 @@ uint64_t fstUnFinishedNodesFindCommPrefixAndSetOutput(FstUnFinishedNodes *node,
} }
FstState fstStateCreate(FstSlice* date, CompiledAddr addr) { FstState fstStateCreate(FstSlice* slice, CompiledAddr addr) {
FstState fs = {.state = EmptyFinal, .val = 0}; FstState fs = {.state = EmptyFinal, .val = 0};
if (addr == EMPTY_ADDRESS) { if (addr == EMPTY_ADDRESS) {
fs.state = EmptyFinal;
fs.val = 0;
return fs; return fs;
} }
FstSlice *s = date; uint8_t v = slice->data[addr];
uint8_t v = s->data[addr];
uint8_t t = (v & 0b11000000) >> 6; uint8_t t = (v & 0b11000000) >> 6;
if (t == 0b11) { if (t == 0b11) {
fs.state = OneTransNext; fs.state = OneTransNext;
fs.val = v;
} else if (t == 0b10) { } else if (t == 0b10) {
fs.state = OneTrans; fs.state = OneTrans;
fs.val = v;
} else { } else {
fs.state = AnyTrans; fs.state = AnyTrans;
fs.val = v;
} }
fs.val = v;
return fs; return fs;
} }