24 lines
553 B
Dart
24 lines
553 B
Dart
![]() |
import 'package:source_span/source_span.dart';
|
||
|
|
||
|
class SyntaxError implements Exception {
|
||
|
final SyntaxErrorSeverity severity;
|
||
|
final String? message;
|
||
|
final FileSpan? span;
|
||
|
String? _toolString;
|
||
|
|
||
|
SyntaxError(this.severity, this.message, this.span);
|
||
|
|
||
|
String? get toolString {
|
||
|
if (_toolString != null) return _toolString;
|
||
|
var type = severity == SyntaxErrorSeverity.warning ? 'warning' : 'error';
|
||
|
return _toolString = '$type: ${span!.start.toolString}: $message';
|
||
|
}
|
||
|
}
|
||
|
|
||
|
enum SyntaxErrorSeverity {
|
||
|
warning,
|
||
|
error,
|
||
|
info,
|
||
|
hint,
|
||
|
}
|