visitTerminalSymbol<E> method
Implementation
@override
Parser visitTerminalSymbol<E>(TerminalSymbol<E> node) {
final expression = node.expression;
final rule = expression.rule!;
final name = rule.name;
TerminalParser<E> getParser() {
final parser = DummyParser<E>();
if (options.debug) {
return TerminalDebugParser<E>(parser, name, source: '$node');
} else {
return TerminalParser<E>(parser, name, source: '$node');
}
}
var parser = rules[node] as TerminalParser<E>?;
if (parser == null) {
parser = getParser();
rules[node] = parser;
parser.parser = visitOrderedChoice(expression) as Parser<E>;
}
return parser;
}