getNodeText static method
Implementation
static String getNodeText(
Tree t, {
Parser? recog,
List<String>? ruleNames,
}) {
ruleNames ??= recog?.ruleNames;
if (ruleNames != null) {
if (t is RuleContext) {
final ruleIndex = t.ruleContext.ruleIndex;
final ruleName = ruleNames[ruleIndex];
final altNumber = t.altNumber;
if (altNumber != ATN.INVALID_ALT_NUMBER) {
return ruleName + ':$altNumber';
}
return ruleName;
} else if (t is ErrorNode) {
return t.toString();
} else if (t is TerminalNode) {
final symbol = (t).symbol;
final s = symbol.text;
return s ?? '';
}
}
// no recog for rule names
Object payload = t.payload;
if (payload is Token) {
return payload.text ?? '';
}
return t.payload.toString();
}