summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/luatex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2022-04-22 22:41:49 +0000
committerKarl Berry <karl@freefriends.org>2022-04-22 22:41:49 +0000
commit1055f70a4fab1e38d5f0693727d283446966598b (patch)
treede6d9092488634bc65289bc38f1609c88b70eaca /Master/texmf-dist/tex/luatex
parent4e17fc479cce2c2550c7729ebe60c47e9023701d (diff)
luakeys-debug.tex in runtime (werner fink, tlbuild 22 Apr 2022 11:32:10)
git-svn-id: svn://tug.org/texlive/trunk@63106 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/tex/luatex')
-rw-r--r--Master/texmf-dist/tex/luatex/luakeys/luakeys-debug.tex62
1 files changed, 62 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/luatex/luakeys/luakeys-debug.tex b/Master/texmf-dist/tex/luatex/luakeys/luakeys-debug.tex
new file mode 100644
index 00000000000..ffc449ac9b9
--- /dev/null
+++ b/Master/texmf-dist/tex/luatex/luakeys/luakeys-debug.tex
@@ -0,0 +1,62 @@
+%% luakeys-debug.tex
+%% Copyright 2021-2022 Josef Friedrich
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3c or later is part of all distributions of LaTeX
+% version 2008/05/04 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Josef Friedrich.
+%
+% This work consists of the files luakeys.lua, luakeys.sty, luakeys.tex
+% luakeys-debug.sty and luakeys-debug.tex.
+
+\directlua{
+ luakeys = require('luakeys')
+}
+
+% https://tex.stackexchange.com/a/418401/42311
+\catcode`\@=11
+\long\def\LuaKeysIfNextChar#1#2#3{%
+ \let\@tmpa=#1%
+ \def\@tmpb{#2}%
+ \def\@tmpc{#3}%
+ \futurelet\@future\LuaKeysIfNextChar@i%
+}%
+\def\LuaKeysIfNextChar@i{%
+ \ifx\@tmpa\@future%
+ \expandafter\@tmpb
+ \else
+ \expandafter\@tmpc
+ \fi
+}%
+\def\luakeysdebug@parse@options#1{
+ \directlua{
+ luakeys.save('debug_options', luakeys.parse('#1'))
+ }
+}%
+\def\luakeysdebug@output#1{
+ {
+ \tt
+ \parindent=0pt
+ \directlua{
+ local result = luakeys.parse('\luaescapestring{\unexpanded{#1}}', luakeys.get('debug_options'))
+ tex.print(luakeys.stringify(result, true))
+ luakeys.print(result)
+ }
+ }
+}%
+\def\luakeysdebug@oarg[#1]#2{%
+ \luakeysdebug@parse@options{#1}%
+ \luakeysdebug@output{#2}%
+}%
+\def\luakeysdebug@marg#1{%
+ \luakeysdebug@output{#1}%
+}%
+\def\luakeysdebug{\LuaKeysIfNextChar[{\luakeysdebug@oarg}{\luakeysdebug@marg}}%
+\catcode`\@=12