-
- i = 0
- while (latest = mem[latest]) > 0
- lenAndFlags = mem[latest+1]
- len = lenAndFlags & F_LENMASK
- hidden = (lenAndFlags & F_HIDDEN) == F_HIDDEN
-
- if hidden || len != wordLen
- continue
+ lfa = 0
+
+ for vocabCFA in reverse(context)
+ callPrim(mem[vocabCFA])
+ lfa = popPS()
+
+ while lfa > 0
+ lenAndFlags = mem[lfa+1]
+ len = lenAndFlags & F_LENMASK
+ hidden = (lenAndFlags & F_HIDDEN) == F_HIDDEN
+
+ if hidden || len != wordLen
+ continue
+ end
+
+ thisAddr = latest+2
+ thisWord = lowercase(getString(thisAddr, len))
+
+ if lowercase(thisWord) == lowercase(word)
+ break
+ end
+
+ lfa = mem[lfa]