toString method
A string representation of this object.
Some classes have a default textual representation,
often paired with a static parse
function (like int.parse).
These classes will provide the textual representation as
their string representation.
Other classes have no meaningful textual representation
that a program will care about.
Such classes will typically override toString
to provide
useful information when inspecting the object,
mainly for debugging or logging.
Implementation
@override
String toString({
List<String>? ruleNames,
Recognizer? recog,
RuleContext? stop,
}) {
ruleNames = ruleNames ?? recog?.ruleNames;
final buf = StringBuffer();
RuleContext? p = this;
buf.write('[');
while (p != null && p != stop) {
if (ruleNames == null) {
if (!p.isEmpty) {
buf.write(p.invokingState);
}
} else {
final ruleIndex = p.ruleIndex;
final ruleName = ruleIndex >= 0 && ruleIndex < ruleNames.length
? ruleNames[ruleIndex]
: ruleIndex.toString();
buf.write(ruleName);
}
if (p.parent != null && (ruleNames != null || !p.parent!.isEmpty)) {
buf.write(' ');
}
p = p.parent;
}
buf.write(']');
return buf.toString();
}