formatError method
dynamic
formatError(
- dynamic token,
- dynamic message
Implementation
formatError(token, message) {
pad(n, length) {
var s = (n).toString();
return List.generate(length - s.length + 1, (index) => '').join(" ") + s;
}
var buffer = this.buffer;
if (buffer is String) {
var lines = buffer.split("\n").sublist(max(0, this.line - 5), this.line);
var nextLineBreak = buffer.indexOf('\n', this.index);
if (nextLineBreak == -1) nextLineBreak = buffer.length;
var col = this.index - this.lastLineBreak;
var lastLineDigits = (this.line).toString().length;
message += " at line " +
this.line.toString() +
" col " +
col.toString() +
":\n\n";
var msg = [];
for (var i = 0; i < lines.length; i++) {
var line = lines[i];
msg.add(
pad(this.line - lines.length + i + 1, lastLineDigits) + " " + line);
}
message += msg.join("\n");
message += "\n" + pad("", lastLineDigits + col) + "^\n";
return message;
} else {
return message + " at index " + (this.index - 1);
}
}