mirror of
https://github.com/Reuh/anselme.git
synced 2025-10-27 16:49:31 +00:00
Commit on script end
This commit is contained in:
parent
977aa5dadd
commit
b7f38a16fd
1 changed files with 5 additions and 0 deletions
|
|
@ -14,6 +14,7 @@ local expression = require((...):gsub("anselme$", "parser.expression"))
|
||||||
local eval = require((...):gsub("anselme$", "interpreter.expression"))
|
local eval = require((...):gsub("anselme$", "interpreter.expression"))
|
||||||
local run_line = require((...):gsub("anselme$", "interpreter.interpreter")).run_line
|
local run_line = require((...):gsub("anselme$", "interpreter.interpreter")).run_line
|
||||||
local to_lua = require((...):gsub("anselme$", "interpreter.common")).to_lua
|
local to_lua = require((...):gsub("anselme$", "interpreter.common")).to_lua
|
||||||
|
local flush_state = require((...):gsub("anselme$", "interpreter.common")).flush_state
|
||||||
local stdfuncs = require((...):gsub("anselme$", "stdlib.functions"))
|
local stdfuncs = require((...):gsub("anselme$", "stdlib.functions"))
|
||||||
|
|
||||||
-- wrappers for love.filesystem / luafilesystem
|
-- wrappers for love.filesystem / luafilesystem
|
||||||
|
|
@ -48,10 +49,13 @@ end
|
||||||
|
|
||||||
--- interpreter methods
|
--- interpreter methods
|
||||||
local interpreter_methods = {
|
local interpreter_methods = {
|
||||||
|
-- interpreter state
|
||||||
|
state = nil,
|
||||||
-- VM this interpreter belongs to
|
-- VM this interpreter belongs to
|
||||||
vm = nil,
|
vm = nil,
|
||||||
|
|
||||||
--- run the VM until the next event
|
--- run the VM until the next event
|
||||||
|
-- will commit changed variables on successful script end
|
||||||
-- returns event, data; if event is "return" or "error", the interpreter must not be stepped further
|
-- returns event, data; if event is "return" or "error", the interpreter must not be stepped further
|
||||||
step = function(self)
|
step = function(self)
|
||||||
-- check status
|
-- check status
|
||||||
|
|
@ -80,6 +84,7 @@ local interpreter_methods = {
|
||||||
local success, event, data = coroutine.resume(self.state.interpreter.coroutine)
|
local success, event, data = coroutine.resume(self.state.interpreter.coroutine)
|
||||||
anselme.running = previous
|
anselme.running = previous
|
||||||
if not success then return "error", event end
|
if not success then return "error", event end
|
||||||
|
if event == "return" then flush_state(self.state) end
|
||||||
return event, data
|
return event, data
|
||||||
end,
|
end,
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue