scansion/error.lua

Mon, 10 Sep 2018 09:52:08 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Mon, 10 Sep 2018 09:52:08 +0100
changeset 104
fb915f3a9c89
parent 64
f0a1f82b8e04
child 111
25530dccf696
permissions
-rw-r--r--

scansion.error: Add __name and is() for identifying scansion errors

local error_mt = {
	__tostring = function (e)
		return tostring(e.message or ("<Scansion error: "..tostring(self)..">"));
	end;
	__name = "scansion error";
};

return {
	new_error = function (message, data)
		return setmetatable({ message = message, data = data }, error_mt);
	end;
	is = function (err)
		return getmetatable(err) == error_mt;
	end;
};

mercurial