From 49f1eb3d08caf7605046373b7b3a001f28aa8aab Mon Sep 17 00:00:00 2001 From: Bruce Hill Date: Thu, 14 Jun 2018 22:17:26 -0700 Subject: Reshuffling some files. --- core/errors.nom | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 core/errors.nom (limited to 'core/errors.nom') diff --git a/core/errors.nom b/core/errors.nom new file mode 100644 index 0000000..dc585be --- /dev/null +++ b/core/errors.nom @@ -0,0 +1,22 @@ +# + This file contains basic error reporting code + +use "core/metaprogramming.nom" + +compile [traceback] to: Lua value "debug.traceback()" +compile [traceback %] to: Lua value "debug.traceback('', \(% as lua expr))" +compile [barf] to: Lua "error(nil, 0);" +compile [barf %msg] to: Lua "error(\(%msg as lua expr), 0);" +compile [assume %condition] to + lua> "local \%assumption = 'Assumption failed: '..tostring(nomsu:tree_to_nomsu(\%condition));" + return + Lua ".." + if not \(%condition as lua expr) then + error(\(quote "\%assumption"), 0); + end + +compile [assume %condition or barf %message] to + Lua ".." + if not \(%condition as lua expr) then + error(\(%message as lua expr), 0); + end -- cgit v1.2.3