forward method
Implementation
ContextStep forward(ContextState state, int token) {
ContextState node;
double score;
final direct = state.next[token];
if (direct != null) {
node = direct;
score = node.tokenScore;
} else {
node = state.fail;
while (!node.next.containsKey(token)) {
node = node.fail;
if (node.token == -1) {
break;
}
}
node = node.next[token] ?? node;
score = node.nodeScore - state.nodeScore;
}
final matched = node.isEnd ? node : node.output;
return ContextStep(score + node.outputScore, node, matched);
}