From 352a2686282e95b2869728f8f321688f7e216d80 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Thu, 7 May 2020 11:47:12 +0200 Subject: 2020-05-07 11:00:00 --- tex/context/base/mkiv/toks-scn.lua | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'tex/context/base/mkiv/toks-scn.lua') diff --git a/tex/context/base/mkiv/toks-scn.lua b/tex/context/base/mkiv/toks-scn.lua index 2d20d5a8b..fcbdec5a0 100644 --- a/tex/context/base/mkiv/toks-scn.lua +++ b/tex/context/base/mkiv/toks-scn.lua @@ -262,6 +262,7 @@ local f_any_all_c= formatters[" local key = scanword() if key then data[key] = local f_table = formatters["%\nt\nreturn function()\n local data = { }\n%s\n return %s\nend\n"] local f_sequence = formatters["%\nt\n%\nt\n%\nt\nreturn function()\n return %s\nend\n"] +local f_singular = formatters["%\nt\n%\nt\n\nreturn function(%s)\n return %s\nend\n"] local f_simple = formatters["%\nt\nreturn function()\n return %s\nend\n"] local f_string = formatters["%q"] local f_action_f = formatters["action%s(%s)"] @@ -331,6 +332,7 @@ function tokens.compile(specification) a = { a } end local code + local args local function compile(t,nested) local done = s_done local r = { } @@ -437,6 +439,23 @@ function tokens.compile(specification) else return scanners[ti] end + elseif #t == 0 then + if specification.valuetype then + code = "b" + args = "_,b" + else + code = "" + args = "" + end + if a then + tokens._action = a + for i=1,#a do + code = f_action_f(i,code) + n = n + 1 + f[n] = f_action_s(i,i) + end + end + code = f_singular(c,f,args,code) else local r = { } local p = { } -- cgit v1.2.3