44 lines
1.2 KiB
Lua
44 lines
1.2 KiB
Lua
|
-- local names = {}
|
||
|
local setters = {
|
||
|
}
|
||
|
local getters = {
|
||
|
}
|
||
|
local value_values = token.values'value'
|
||
|
for i=0,#value_values do
|
||
|
value_values[value_values[i]] = i
|
||
|
end
|
||
|
function tex.gettextdir() return tex.textdirection end
|
||
|
function tex.getlinedir() return tex.linedirection end
|
||
|
function tex.getmathdir() return tex.mathdirection end
|
||
|
function tex.getpardir() return tex.pardirection end
|
||
|
-- local integer_code = value_values.none
|
||
|
local integer_code = value_values.integer
|
||
|
local functions = lua.get_functions_table()
|
||
|
local lua_call_cmd = token.command_id'lua_call'
|
||
|
local function set_xdir(id, scanning)
|
||
|
-- local name = names[id]
|
||
|
if scanning then
|
||
|
return integer_code, getters[id]()
|
||
|
-- return integer_code, tex[name .. 'ection']
|
||
|
end
|
||
|
local value
|
||
|
if token.scan_keyword'tlt' then
|
||
|
value = 0
|
||
|
elseif token.scan_keyword'trt' then
|
||
|
value = 1
|
||
|
else
|
||
|
value = token.scan_int()
|
||
|
end
|
||
|
setters[id](value)
|
||
|
-- tex["set" .. name](value)
|
||
|
end
|
||
|
return function(name)
|
||
|
local getter = tex["get" .. name]
|
||
|
local setter = tex["set" .. name]
|
||
|
assert(getter and setter, "direction parameter undefined")
|
||
|
local idx = token.luacmd(name, set_xdir, "protected", "global", "value")
|
||
|
getters[idx] = getter
|
||
|
setters[idx] = setter
|
||
|
return idx
|
||
|
end
|