On Tue, Dec 10, 2019 at 10:36 PM Ulrike Fischer <news3@nililand.de> wrote:

Commands that should be use in token.set_macro must already exist.
But while it is easy to predefine a command like \blub it seems not
to be possible to do it with commands consisting of a \ with a
non-letter.

perhaps

--[==[ luatest.lua ]==]
token.set_macro("foo",[==[\blub\csname !\endcsname]==])


%%test.tex
\tracingall
\def\!{[hallo!]}
\def\blub{[hallo]}
\directlua{require"luatest"}
\show\foo
\foo
\bye

(untested)

--
luigi