protected internal virtual ATNState StateFactory(StateType type, int ruleIndex) { ATNState s; switch (type) { case StateType.InvalidType: { return(null); } case StateType.Basic: { s = new BasicState(); break; } case StateType.RuleStart: { s = new RuleStartState(); break; } case StateType.BlockStart: { s = new BasicBlockStartState(); break; } case StateType.PlusBlockStart: { s = new PlusBlockStartState(); break; } case StateType.StarBlockStart: { s = new StarBlockStartState(); break; } case StateType.TokenStart: { s = new TokensStartState(); break; } case StateType.RuleStop: { s = new RuleStopState(); break; } case StateType.BlockEnd: { s = new BlockEndState(); break; } case StateType.StarLoopBack: { s = new StarLoopbackState(); break; } case StateType.StarLoopEntry: { s = new StarLoopEntryState(); break; } case StateType.PlusLoopBack: { s = new PlusLoopbackState(); break; } case StateType.LoopEnd: { s = new LoopEndState(); break; } default: { string message = string.Format(CultureInfo.CurrentCulture, "The specified state type {0} is not valid.", type); throw new ArgumentException(message); } } s.ruleIndex = ruleIndex; return(s); }
protected internal virtual ATNState StateFactory(StateType type, int ruleIndex) { ATNState s; switch (type) { case StateType.InvalidType: { return null; } case StateType.Basic: { s = new BasicState(); break; } case StateType.RuleStart: { s = new RuleStartState(); break; } case StateType.BlockStart: { s = new BasicBlockStartState(); break; } case StateType.PlusBlockStart: { s = new PlusBlockStartState(); break; } case StateType.StarBlockStart: { s = new StarBlockStartState(); break; } case StateType.TokenStart: { s = new TokensStartState(); break; } case StateType.RuleStop: { s = new RuleStopState(); break; } case StateType.BlockEnd: { s = new BlockEndState(); break; } case StateType.StarLoopBack: { s = new StarLoopbackState(); break; } case StateType.StarLoopEntry: { s = new StarLoopEntryState(); break; } case StateType.PlusLoopBack: { s = new PlusLoopbackState(); break; } case StateType.LoopEnd: { s = new LoopEndState(); break; } default: { string message = string.Format(CultureInfo.CurrentCulture, "The specified state type {0} is not valid.", type); throw new ArgumentException(message); } } s.ruleIndex = ruleIndex; return s; }