readRules method
void
readRules(
- ATN atn
)
Implementation
void readRules(ATN atn) {
final nrules = readInt();
if (atn.grammarType == ATNType.LEXER) {
atn.ruleToTokenType = <int>[];
}
for (var i = 0; i < nrules; i++) {
final s = readInt();
final startState = atn.states[s] as RuleStartState;
atn.ruleToStartState.add(startState);
if (atn.grammarType == ATNType.LEXER) {
var tokenType = readInt();
atn.ruleToTokenType.add(tokenType);
}
}
atn.ruleToStopState = List<RuleStopState>.generate(
nrules, (int index) => RuleStopState(index));
for (var state in atn.states) {
if (state is! RuleStopState) {
continue;
}
atn.ruleToStopState[state.ruleIndex] = state;
atn.ruleToStartState[state.ruleIndex].stopState = state;
}
}