On 11/16/2021 9:09 PM, Jairo A. del Rio via ntg-context wrote:
> If I understand it correctly, you may need something like this...?
>
> % Protection is key
> \protected\def\inner[#1]{\empty}
> % \outer is (or was) already defined in \CONTEXT
> % Please use another name
> \def\Outer{\inner[123] and \inner[some text] etc.}
> \startluacode
> local implement = interfaces.implement
> local argument = tokens.scanners.argument
> local function parseinner()
> local r = {}
> local str = argument()
> str = str:gsub("\\inner%s*(%b[])",function(s)r[#r+1] = s:sub(2,#s-1)end)
> context(table.concat(r," ")) -- Change " " by another spacer if needed
> end
> implement{name = "parseinner", public = true, actions = parseinner}
> \stopluacode
> \starttext
> \parseinner{\Outer}
> \stoptext
>
> However, this will only work with very simple cases (no nesting, etc.).
> Hope this helps.
well, if we start talking weird code ...
\starttext
\tolerant\def\MyInnerOuter#1\MyInner[#2]#3\MyDone\ignorearguments{#2}
\def\MyOuter#1{\MyInnerOuter#1\MyDone\ignorearguments}
whatever: \MyOuter{\MyInner[oeps]}\par
whatever: \MyOuter{\InnerMy[oeps]}\par
\edef\ItWorksA{\MyOuter{\MyInner[oeps]}}
\edef\ItWorksB{\MyOuter{\InnerMy[oeps]}}
whatever: \meaningless\ItWorksA\par
whatever: \meaningless\ItWorksB\par
\stoptext
(1) we're tolerant so no problem when no match
(2) the ignore hack quits scanning because tex will keep looking
it's pretty fast and needs no lua magic, only a twisted mind
Hans
-----------------------------------------------------------------
Hans Hagen | PRAGMA ADE
Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
tel: 038 477 53 69 | www.pragma-ade.nl | www.pragma-pod.nl
-----------------------------------------------------------------
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!
maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage : http://www.pragma-ade.nl / http://context.aanhet.net
archive : https://bitbucket.org/phg/context-mirror/commits/
wiki : http://contextgarden.net
___________________________________________________________________________________