summaryrefslogtreecommitdiff
path: root/lib/lace/builtin.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lib/lace/builtin.lua')
-rw-r--r--lib/lace/builtin.lua11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/lace/builtin.lua b/lib/lace/builtin.lua
index 5f32811..dfa4c04 100644
--- a/lib/lace/builtin.lua
+++ b/lib/lace/builtin.lua
@@ -409,6 +409,17 @@ function builtin.include(comp_context, cmd, file, ...)
return err.error("No ruleset named for inclusion", {1})
end
+ -- Check the conditions are defined
+ comp_context._lace.defined = (comp_context._lace.defined or {})
+ for i, dname in ipairs(conds) do
+ if dname:sub(1,1) == "!" then
+ dname = dname:sub(2)
+ end
+ if not comp_context._lace.defined[dname] then
+ return err.error("Undefined name used in include condition ("..dname..")", {i+1})
+ end
+ end
+
local loader = compiler().internal_loader(comp_context)
local real, content = loader(comp_context, file)