diff options
Diffstat (limited to 'tex/context/base/toks-ini.mkiv')
-rw-r--r-- | tex/context/base/toks-ini.mkiv | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/tex/context/base/toks-ini.mkiv b/tex/context/base/toks-ini.mkiv new file mode 100644 index 000000000..932c05f32 --- /dev/null +++ b/tex/context/base/toks-ini.mkiv @@ -0,0 +1,78 @@ +%D \module +%D [ file=toks-ini, +%D version=2007.03.03, +%D title=\CONTEXT\ Token Support, +%D subtitle=Initialization, +%D author=Hans Hagen, +%D date=\currentdate, +%D copyright=PRAGMA] +%C +%C This module is part of the \CONTEXT\ macro||package and is +%C therefore copyrighted by \PRAGMA. See mreadme.pdf for +%C details. + +\writestatus{loading}{ConTeXt Token Support / Initialization} + +\registerctxluafile{toks-ini}{1.001} + +\unprotect + +%D Handy for manuals \unknown + +\def\starttokens [#1]{\ctxlua{collectors.install("#1", "stoptokens")}} +\let\stoptokens \relax +\def\flushtokens [#1]{\ctxlua{collectors.flush("#1")}} +\def\showtokens [#1]{\ctxlua{collectors.show("#1")}} +\def\testtokens [#1]{\ctxlua{collectors.with_words("#1")}} +\def\registertoken #1{\ctxlua{collectors.register("#1")}} + +%D Inspired by a prototype by Taco for Thomas cum suis. + +% \defineremapper[babelgreek] +% +% \remapcharacter[babelgreek][`a]{\alpha} +% \remapcharacter[babelgreek][`b]{\beta} +% \remapcharacter[babelgreek][`c]{\gamma} +% \remapcharacter[babelgreek][`d]{OEPS} +% +% \starttext +% +% [\startbabelgreek +% a b c some stuff here \blank[big] oeps b d +% \stopbabelgreek] +% +% [\babelgreek{some stuff here}] +% +% \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}} + +\def\dostartremapper#1% + {\ctxlua{collectors.install("#1", "\e!stop#1")}} + +\def\dostopremapper#1% + {\ctxlua{collectors.handle("#1",function(str) return collectors.remapper.convert("#1",str) end, true)}} + +\def\remaptokens#1% + {\ctxlua{collectors.handle("#1",function(str) return collectors.remapper.convert("#1",str) end)}} + +\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} + +\def\doremapcharacter[#1][#2]#3% + {\ctxlua{collectors.install("store", "ctxlua")}#3% + \ctxlua{collectors.remapper.store("store","#1",\number#2)}} + +\protect \endinput |