On Mon, Sep 30, 2013 at 6:00 PM, luigi scarso <luigi.scarso@gmail.com> wrote:



On Mon, Sep 30, 2013 at 5:38 PM, Lars Huttar <lars_huttar@sil.org> wrote:
I found \start and \stop referenced in the context reference manual
(e.g. section 5.5).
While \startXYZ - \stopXYZ pairs are discussed earlier, I can't find any
place that \start and \stop (with no suffix) are described.
They seem to be used like \bgroup and \egroup. Is that right?
They are defined in core-sys.mkiv, but I can't figure out from there
what they actually do.

I'll contribute documentation for them if someone can tell me what they
mean.

Thanks,
Lars




core-sys.mkiv :


\unexpanded\def\start
  {\dosingleempty\syst_start}

\def\syst_start
  {\bgroup
   \iffirstargument
     \expandafter\syst_start_yes
   \else
     \expandafter\syst_start_nop
   \fi}

\def\syst_start_yes[#1]%
 {\edef\m_syst_start_stop{#1}%
  \ifx\m_syst_start_stop\empty
    \let\syst_stop_indeed\donothing
  \else\ifcsname\e!start\m_syst_start_stop\endcsname
    \expandafter\let\expandafter\syst_stop_indeed\csname\e!stop\m_syst_start_stop\endcsname
    \csname\e!start\m_syst_start_stop\expandafter\expandafter\expandafter\endcsname
  \else
    \let\syst_stop_indeed\donothing
  \fi\fi}

\def\syst_start_nop[#1]%
  {\let\syst_stop_indeed\donothing}

\unexpanded\def\stop
  {\syst_stop_indeed
   \egroup}


(it should be \let\donothing\empty)

sorry, hit return too early.
\start <...> \stop without argument is

\bgroup % from\def\syst_start
\expandafter\syst_start_nop

\syst_start_nop is
{\let\syst_stop_indeed\donothing}

and \stop is hence
\syst_stop_indeed 
\egroup
i.e.
\donothing
\egroup


are like \bgroup <...> \egroup

It seems that there are no examples of \start[]<..>\stop .

--
luigi