diff options
author | Karl Berry <karl@freefriends.org> | 2022-04-22 22:41:49 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2022-04-22 22:41:49 +0000 |
commit | 1055f70a4fab1e38d5f0693727d283446966598b (patch) | |
tree | de6d9092488634bc65289bc38f1609c88b70eaca /Master/texmf-dist/tex/luatex | |
parent | 4e17fc479cce2c2550c7729ebe60c47e9023701d (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.tex | 62 |
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 |