stateFactory method

ATNState? stateFactory(
  1. StateType type,
  2. int ruleIndex
)

Implementation

ATNState? stateFactory(StateType type, int ruleIndex) {
  ATNState s;
  switch (type) {
    case StateType.INVALID_TYPE:
      return null;
    case StateType.BASIC:
      s = BasicState(ruleIndex);
      break;
    case StateType.RULE_START:
      s = RuleStartState(ruleIndex);
      break;
    case StateType.BLOCK_START:
      s = BasicBlockStartState(ruleIndex);
      break;
    case StateType.PLUS_BLOCK_START:
      s = PlusBlockStartState(ruleIndex);
      break;
    case StateType.STAR_BLOCK_START:
      s = StarBlockStartState(ruleIndex);
      break;
    case StateType.TOKEN_START:
      s = TokensStartState(ruleIndex);
      break;
    case StateType.RULE_STOP:
      s = RuleStopState(ruleIndex);
      break;
    case StateType.BLOCK_END:
      s = BlockEndState(ruleIndex);
      break;
    case StateType.STAR_LOOP_BACK:
      s = StarLoopbackState(ruleIndex);
      break;
    case StateType.STAR_LOOP_ENTRY:
      s = StarLoopEntryState(ruleIndex);
      break;
    case StateType.PLUS_LOOP_BACK:
      s = PlusLoopbackState(ruleIndex);
      break;
    case StateType.LOOP_END:
      s = LoopEndState(ruleIndex);
      break;
    default:
      throw ArgumentError.value(type, 'state type', 'not valid.');
  }

  return s;
}