reportLexicalError method
void
reportLexicalError(
- int left_loc,
- int right_loc, [
- int? errorCode,
- int? error_left_loc_arg,
- int? error_right_loc_arg,
- List<
String> ? errorInfo_arg,
override
Implementation
@override
void reportLexicalError(int left_loc, int right_loc,
[int? errorCode,
int? error_left_loc_arg,
int? error_right_loc_arg,
List<String>? errorInfo_arg]) {
// TODO: implement reportLexicalError
var error_left_loc = 0;
if (error_left_loc_arg != null) {
error_left_loc = error_left_loc_arg;
}
var error_right_loc = 0;
if (error_right_loc_arg != null) {
error_right_loc = error_right_loc_arg;
}
var errorInfo = <String>[];
if (errorInfo_arg != null) {
errorInfo = errorInfo_arg;
}
if (null == errorCode) {
errorCode = (right_loc >= streamLength
? EOF_CODE
: left_loc == right_loc
? LEX_ERROR_CODE
: INVALID_TOKEN_CODE);
var tokenText = (errorCode == EOF_CODE
? 'End-of-file '
: errorCode == INVALID_TOKEN_CODE
? '\"' + inputChars.substring(left_loc, right_loc + 1) + '\" '
: '\"' + getCharValue(left_loc) + '\" ');
error_left_loc = 0;
error_right_loc = 0;
errorInfo = [tokenText];
}
if (null == errMsg) {
var locationInfo = getFileName() +
':' +
getLineNumberOfCharAt(left_loc).toString() +
':' +
getColumnOfCharAt(left_loc).toString() +
':' +
getLineNumberOfCharAt(right_loc).toString() +
':' +
getColumnOfCharAt(right_loc).toString() +
':' +
error_left_loc.toString() +
':' +
error_right_loc.toString() +
':' +
errorCode.toString() +
': ';
stdout.write('****Error: ' + locationInfo);
for (var i = 0; i < errorInfo.length; i++) {
stdout.write(errorInfo[i] + ' ');
}
stdout.writeln(errorMsgText[errorCode]);
} else {
errMsg!.handleMessage(
errorCode,
getLocation(left_loc, right_loc),
getLocation(error_left_loc, error_right_loc),
getFileName(),
errorInfo);
}
}