From 4214fafc6845402538f70632252af3b4132164ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Reuh=20Fildadut?= Date: Fri, 14 Jan 2022 21:31:56 +0100 Subject: [PATCH] Fix default tags --- anselme.lua | 6 ++++-- interpreter/common.lua | 8 +++++++- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/anselme.lua b/anselme.lua index 6ee4e85..1acf69c 100644 --- a/anselme.lua +++ b/anselme.lua @@ -116,7 +116,7 @@ local interpreter_methods = { return self end, - --- interrupt the vm on the next step, executing an expression is specified + --- interrupt the vm on the next step, executing an expression if specified -- returns self interrupt = function(self, expr) self.state.interpreter.interrupt = expr or true @@ -511,7 +511,9 @@ local vm_mt = { -- interrupt interrupt = nil, -- tag stack - tags = tags or {}, + tags = {}, + -- default tags for everything in this interpreter (Lua values) + base_lua_tags = tags, }, }, vm = self diff --git a/interpreter/common.lua b/interpreter/common.lua index 0a3a261..72136f3 100644 --- a/interpreter/common.lua +++ b/interpreter/common.lua @@ -9,9 +9,15 @@ local function post_process_text(state, text) local r = {} -- copy into r & convert tags to lua for _, t in ipairs(text) do + local tags = common.to_lua(t.tags) + if state.interpreter.base_lua_tags then + for k, v in pairs(state.interpreter.base_lua_tags) do + if tags[k] == nil then tags[k] = v end + end + end table.insert(r, { text = t.text, - tags = common.to_lua(t.tags) + tags = tags }) end -- remove trailing spaces