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:
parent
b0d7a0bfb5
commit
51e8c82181
6 changed files with 165 additions and 40 deletions
29
anselme.lua
29
anselme.lua
|
|
@ -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 = {
|
||||
-- [":="] = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue