1
0
Fork 0
mirror of https://github.com/Reuh/anselme.git synced 2025-10-27 16:49:31 +00:00
anselme/stdlib/text.lua

35 lines
846 B
Lua

local ast = require("ast")
local Nil, Choice, AttachBlock = ast.Nil, ast.Choice, ast.AttachBlock
local event_manager = require("state.event_manager")
local translation_manager = require("state.translation_manager")
local tag_manager = require("state.tag_manager")
return {
-- text
{
"_!", "(txt::text)",
function(state, text)
event_manager:write(state, text)
return Nil:new()
end
},
-- choice
{
"_|>_", "(txt::text, fn)",
function(state, text, func)
event_manager:write(state, Choice:new(text, func))
return Nil:new()
end
},
-- translation
{
"_->_", "(original::is(\"quote\"), translated::is(\"quote\"))",
function(state, original, translated)
translation_manager:set(state, tag_manager:get(state), original.expression, AttachBlock:preserve(state, translated.expression))
return Nil:new()
end
}
}