1
0
Fork 0
mirror of https://github.com/Reuh/anselme.git synced 2025-10-28 00:59:31 +00:00

Improve alias system

This commit is contained in:
Étienne Fildadut 2021-04-08 16:34:33 +02:00
parent b0d7a0bfb5
commit 51e8c82181
6 changed files with 165 additions and 40 deletions

View file

@ -194,19 +194,6 @@ local vm_mt = {
return self
end,
--- set aliases
-- return self
loadalias = function(self, name, dest)
if type(name) == "table" then
for k, v in pairs(name) do
self:loadalias(k, v)
end
else
self.state.aliases[name] = dest
end
return self
end,
--- define functions
-- return self
loadfunction = function(self, name, fn)
@ -237,6 +224,14 @@ local vm_mt = {
return self
end,
--- set aliases for built-in variables 👁️ and 🏁 that will be defined on every new paragraph and function
-- return self
setaliases = function(self, seen, checkpoint)
self.state.builtin_aliases["👁️"] = seen
self.state.builtin_aliases["🏁"] = checkpoint
return self
end,
--- save/load
load = function(self, data)
assert(data.anselme_version == anselme.version, ("trying to load a save from Anselme %s but current Anselme version is %s"):format(data.anselme_version, anselme.version))
@ -268,6 +263,7 @@ local vm_mt = {
local interpreter
interpreter = {
state = {
builtin_aliases = self.builtin_aliases,
aliases = self.state.aliases,
functions = self.state.functions,
variables = setmetatable({}, { __index = self.state.variables }),
@ -310,9 +306,12 @@ return setmetatable(anselme, {
__call = function()
-- global state
local state = {
builtin_aliases = {
-- ["👁️"] = "seen",
-- ["🏁"] = "checkpoint"
},
aliases = {
-- seen = "👁️",
-- checkpoint = "🏁"
-- ["bonjour.salutation"] = "hello.greeting",
},
functions = {
-- [":="] = {