move error formating to Printer

This commit is contained in:
Nicolas Cannasse
2017-08-11 11:03:29 +02:00
parent 261e6ee78e
commit 931f79dacb
2 changed files with 21 additions and 33 deletions
+1 -32
View File
@@ -95,39 +95,8 @@ class Error {
this.origin = origin;
this.line = line;
}
private function errorDefToString(): String {
switch (e) {
case EInvalidChar(c):
return "Invalid character: '"+String.fromCharCode(c)+"' ("+c+")";
case EUnexpected(s):
return "Unexpected token: \""+s+"\"";
case EUnterminatedString:
return "Unterminated string";
case EUnterminatedComment:
return "Unterminated comment";
case EUnknownVariable(v):
return "Unknown variable: "+v;
case EInvalidIterator(v):
return "Invalid iterator: "+v;
case EInvalidOp(op):
return "Invalid operator: "+op;
case EInvalidAccess(f):
return "Invalid access to field "+f;
}
}
public function toString(): String {
var message = errorDefToString();
message = origin + ":" + line + ": " + message;
return message;
return Printer.errorToString(this);
}
}
enum ErrorDef {
+20 -1
View File
@@ -300,4 +300,23 @@ class Printer {
return new Printer().exprToString(e);
}
}
public static function errorToString( e : Expr.Error ) {
var message = switch( #if hscriptPos e.e #else e #end ) {
case EInvalidChar(c): "Invalid character: '"+String.fromCharCode(c)+"' ("+c+")";
case EUnexpected(s): "Unexpected token: \""+s+"\"";
case EUnterminatedString: "Unterminated string";
case EUnterminatedComment: "Unterminated comment";
case EUnknownVariable(v): "Unknown variable: "+v;
case EInvalidIterator(v): "Invalid iterator: "+v;
case EInvalidOp(op): "Invalid operator: "+op;
case EInvalidAccess(f): "Invalid access to field "+f;
};
#if hscriptPos
return e.origin + ":" + e.line + ": " + message;
#else
return message;
#end
}
}