diff options
Diffstat (limited to 'tex/context/base/toks-ini.mkiv')
-rw-r--r-- | tex/context/base/toks-ini.mkiv | 40 |
1 files changed, 16 insertions, 24 deletions
diff --git a/tex/context/base/toks-ini.mkiv b/tex/context/base/toks-ini.mkiv index 70c4940e3..e8b296210 100644 --- a/tex/context/base/toks-ini.mkiv +++ b/tex/context/base/toks-ini.mkiv @@ -20,11 +20,11 @@ %D Handy for manuals \unknown \unexpanded\def\starttokens [#1]{\ctxlua{tokens.collectors.install("#1","stoptokens")}} -\let\stoptokens \relax -\def\flushtokens [#1]{\ctxlua{tokens.collectors.flush("#1")}} -\def\showtokens [#1]{\ctxlua{tokens.collectors.show("#1")}} -\def\testtokens [#1]{\ctxlua{tokens.collectors.with_words("#1")}} -\def\registertoken #1{\ctxlua{tokens.collectors.register("#1")}} + \let\stoptokens \relax + \def\flushtokens [#1]{\ctxlua{tokens.collectors.flush("#1")}} + \def\showtokens [#1]{\ctxlua{tokens.collectors.show("#1")}} + \def\testtokens [#1]{\ctxlua{tokens.collectors.with_words("#1")}} + \def\registertoken #1{\ctxlua{tokens.collectors.register("#1")}} %D Inspired by a prototype by Taco for Thomas cum suis. @@ -45,33 +45,25 @@ % % \stoptext -% incompatible with mkii ! ! ! ! so we need other names here -% -% \def\dograbuntil#1#2% -% {\long\def\next##1#1{#2##1}\next} -% -% \def\grabuntil#1% -% {\expandafter\dograbuntil\expandafter{\csname#1\endcsname}} +\unexpanded\def\defineremapper[#1]% + {\setuevalue{\e!start#1}{\tokens_start_remapper{#1}}% + \setuevalue{\e!stop #1}{\tokens_stop_remapper {#1}}% + \letvalue{#1}\relax + \normalexpanded{\expandafter\def\csname#1\endcsname##1{\csname\e!start#1\endcsname##1\csname\e!stop#1\endcsname}}} -\def\dostartremapper#1% +\unexpanded\def\tokens_start_remapper#1% {\ctxlua{tokens.collectors.install("#1", "\e!stop#1")}} -\def\dostopremapper#1% +\unexpanded\def\tokens_stop_remapper#1% {\ctxlua{tokens.collectors.handle("#1",function(str) return tokens.collectors.remapper.convert("#1",str) end, true)}} -\def\remaptokens#1% +\unexpanded\def\remaptokens#1% {\ctxlua{tokens.collectors.handle("#1",function(str) return tokens.collectors.remapper.convert("#1",str) end)}} -\unexpanded\def\defineremapper[#1]% - {\setvalue{\e!start#1}{\dostartremapper{#1}}% - \setvalue{\e!stop #1}{\dostopremapper {#1}}% - \def\next##1{\setvalue{#1}####1{\getvalue{\e!start#1}####1##1}}% - \expandafter\next\csname\e!stop#1\endcsname} - -\def\remapcharacter - {\dodoubleempty\doremapcharacter} +\unexpanded\def\remapcharacter + {\dodoubleempty\tokens_remap_character} -\def\doremapcharacter[#1][#2]#3% +\def\tokens_remap_character[#1][#2]#3% {\ctxlua{tokens.collectors.install("store", "ctxlua")}#3% \ctxlua{tokens.collectors.remapper.store("store","#1",\number#2)}} |