aboutsummaryrefslogtreecommitdiff
path: root/core/operators.nom
diff options
context:
space:
mode:
Diffstat (limited to 'core/operators.nom')
-rw-r--r--core/operators.nom40
1 files changed, 20 insertions, 20 deletions
diff --git a/core/operators.nom b/core/operators.nom
index e3b41e1..adfeeb5 100644
--- a/core/operators.nom
+++ b/core/operators.nom
@@ -28,18 +28,18 @@ immediately
local safe = {Text=true, Number=true};
local a_lua, b_lua = \%a:as_lua(nomsu), \%b:as_lua(nomsu);
if safe[\%a.type] or safe[\%b.type] then
- return Lua.Value(tree.source, "(", a_lua, " == ", b_lua, ")");
+ return Lua.Value(nil, "(", a_lua, " == ", b_lua, ")");
else
- return Lua.Value(tree.source, "utils.equivalent(", a_lua, ", ", b_lua, ")");
+ return Lua.Value(nil, "utils.equivalent(", a_lua, ", ", b_lua, ")");
end
compile [%a isn't %b, %a is not %b, %a not= %b, %a != %b] to
lua> ".."
local safe = {Text=true, Number=true};
local a_lua, b_lua = \%a:as_lua(nomsu), \%b:as_lua(nomsu);
if safe[\%a.type] or safe[\%b.type] then
- return Lua.Value(tree.source, "(", a_lua, " ~= ", b_lua, ")");
+ return Lua.Value(nil, "(", a_lua, " ~= ", b_lua, ")");
else
- return Lua.Value(tree.source, "(not utils.equivalent(", a_lua, ", ", b_lua, "))");
+ return Lua.Value(nil, "(not utils.equivalent(", a_lua, ", ", b_lua, "))");
end
# For strict identity checking, use (%x's id) is (%y's id)
compile [%'s id, id of %] to: Lua value "nomsu.ids[\(% as lua expr)]"
@@ -48,11 +48,11 @@ immediately
immediately
compile [%var <- %value] to
lua> "local \%var_lua = \%var:as_lua(nomsu);"
- assume %var_lua.is_value or barf "Invalid target for assignment: \(%var's source code)"
+ assume %var_lua.is_value or barf "Invalid target for assignment: \%var"
lua> "local \%value_lua = \%value:as_lua(nomsu);"
- assume %value_lua.is_value or barf "Invalid value for assignment: \(%value's source code)"
+ assume %value_lua.is_value or barf "Invalid value for assignment: \%value"
lua> ".."
- local lua = Lua(tree.source, \%var_lua, ' = ', \%value_lua, ';');
+ local lua = Lua(nil, \%var_lua, ' = ', \%value_lua, ';');
if \%var.type == 'Var' then
lua:add_free_vars({\%var});
end
@@ -62,11 +62,11 @@ immediately
# Simultaneous mutli-assignments like: x,y,z = 1,x,3;
compile [<- %assignments] to
assume ((%assignments' "type") is "Dict") or barf ".."
- Expected a Dict for the assignments part of '<- %' statement, not \(%assignments' source code)
+ Expected a Dict for the assignments part of '<- %' statement, not \%assignments
lua> ".."
- local lhs, rhs = Lua(tree.source), Lua(\%assignments.source);
- for i, item in ipairs(\%assignments.value) do
- local target, value = item.value[1], item.value[2];
+ local lhs, rhs = Lua(), Lua();
+ for i, item in ipairs(\%assignments) do
+ local target, value = item[1], item[2];
local target_lua = target:as_lua(nomsu);
if not target_lua.is_value then error("Invalid target for assignment: "..target:get_src()); end
local value_lua = value:as_lua(nomsu);
@@ -81,35 +81,35 @@ immediately
lhs:append(target_lua);
rhs:append(value_lua);
end
- return Lua(tree.source, lhs, " = ", rhs, ";");
+ return Lua(nil, lhs, " = ", rhs, ";");
immediately
compile [external %var <- %value] to
%var_lua <- (%var as lua)
- assume %var_lua.is_value or barf "Invalid target for assignment: \(%var's source code)"
+ assume %var_lua.is_value or barf "Invalid target for assignment: \%var"
%value_lua <- (%value as lua)
- assume %value_lua.is_value or barf "Invalid value for assignment: \(%value's source code)"
+ assume %value_lua.is_value or barf "Invalid value for assignment: \%value"
return: Lua "\(%var_lua) = \(%value_lua);"
compile [with external %externs %body] to
%body_lua <- (%body as lua statements)
- lua> "\%body_lua:remove_free_vars(\(%externs.value));"
+ lua> "\%body_lua:remove_free_vars(\(%externs));"
return %body_lua
compile [with %assignments %body] to
%lua <- (%body as lua statements)
lua> ".."
- local lhs, rhs = Lua(tree.source), Lua(\%assignments.source);
+ local lhs, rhs = Lua(), Lua();
local vars = {};
- for i, item in ipairs(\%assignments.value) do
- local target, value = item.value[1], item.value[2];
+ for i, item in ipairs(\%assignments) do
+ local target, value = item[1], item[2];
if not target.type == "Var" then
- error("Invalid target for 'with' assignment: "..tostring(target.source:get_text()));
+ error("Invalid target for 'with' assignment: "..tostring(target));
end
local target_lua = target:as_lua(nomsu);
local value_lua = value:as_lua(nomsu);
if not value_lua.is_value then
- error("Invalid value for assignment: "..tostring(value.source:get_text()));
+ error("Invalid value for assignment: "..tostring(value));
end
if target.type == "Var" then
lhs:add_free_vars({target});