%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 \unexpanded\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)}} \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} \def\doremapcharacter[#1][#2]#3% {\ctxlua{collectors.install("store", "ctxlua")}#3% \ctxlua{collectors.remapper.store("store","#1",\number#2)}} \protect \endinput