platform/packages/combinator/lib/src/error.dart

24 lines
548 B
Dart
Raw Normal View History

2021-03-17 23:04:36 +00:00
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,
}