Files
bindx2/src/bindx/Error.hx
T
Dima Granetchi b1bcd3b034 minor updates
2014-11-28 18:37:36 +02:00

50 lines
1.1 KiB
Haxe

package bindx;
#if macro
import haxe.macro.Context;
import haxe.macro.Expr.Position;
@:enum abstract WarnPriority(Int) to Int from Int {
var ALL = 2;
var INFO = 1;
var LOW = 0;
}
class Warn {
static var level:WarnPriority = null;
public static function w(msg:String, pos:Position, level:WarnPriority) {
if (Warn.level == null) {
Warn.level = Context.defined("bindx_log") ? Std.parseInt(Context.definedValue("bindx_log")) : LOW;
}
if ((Warn.level : Int) >= (level : Int))
Context.warning(msg, pos);
}
}
class FatalError extends Error {}
class Error {
public var pos(default, null):Position;
public var message(default, null):String;
public function new(message:String, pos:Position) {
this.message = message;
this.pos = pos;
}
public function contextError():Void {
Context.error(message, pos);
}
public function contextWarning():Void {
Context.warning(message, pos);
}
public function contextFatal():Void {
Context.fatalError(message, pos);
}
}
#end