[NTG-context] Using lua to define a macro with one optional parameter in brackets

Jaroslav Hajtmar hajtmar at gyza.cz
Wed Jul 8 11:05:07 CEST 2015

Hello ConTeXist.

Within the one very complex problem I need to solve the following case.
I want using lua code to define a macro with one optional parameter in
brackets. I tried it using commands context.setgvalue, or find something
on the wiki
(http://wiki.contextgarden.net/System_Macros/Definitions_and_Assignments),
but each time I broke a tooth on it.

Can you, please, someone advise  how something can be it done? Suffice
some reference to solve a similar problem.

Thanks Jaroslav Hajtmar

Here is my minimal example:

\starttext

\def\lastname{\dosingleempty\dolastname}
\def\dolastname[#1]{\iffirstargument #1\else nothing\fi}

\lastname

\lastname[Smith]

% Not working
% \ctxlua{
% context([[\def\firstname{\dosingleempty\dofirstname}]])
% context([[\def\dofirstname[#1]{\iffirstargument #1\else {nothing}\fi}]])
% }
%
% \firstname
%
% \firstname['Peter']

\stoptext