forward method

ContextStep forward(
  1. ContextState state,
  2. int token
)

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);
}