%%% Bernd Raichle: \relax ex machina II
{\bf Question:} Is the following \TeX{} input correct, i.e, will \TeX{} abort with
an error message or not?

\beginverbatim
\hbox \relax \relax {haha}
\hbox to \hsize \relax \relax {hehe}
\moveright .25\hsize \relax \relax \hbox{hihi}

\toks0 = \relax \relax {hoho}
\toksdef\tlist = 2  \tlist = \relax \relax {huhu}

\setbox0 = \relax \hbox \relax {haha}

\global \relax \global \relax \long \relax \def\foo{oh!}

$$ \halign{\kern 20pt #\cr
           \noalign \relax \relax {aha}\cr
           oho\cr} \relax $$

$ \left \relax ( 1 \mathord \relax {+} 2 ^ \relax {3} \right \relax ) $

a\leaders \hbox \relax {\TeX} \relax \hskip .5\hsize b

bla \vadjust \relax \relax {foo} bla.

B\accent 127\relax \relax \relax \relax a%
\discretionary \relax {k-} \relax {k} \relax {ck}%
er.
\endverbatim

{\bf Answer:} Every \relax token above is not needed.  Nonetheless these
\relax tokens do not cause any error, they are allowed and ignored at the
shown places.\medskip

If you browse through the \TeX{} source code file {\tt tex.web} you will propably have
seen the web chunk named {\tt @<Get the next non-blank non-relax non-call token@>}.
This web chunk is used in the procedure \verbatim|scan_left_brace|, in \verbatim|box_end| 
for leaders, in \verbatim|scan_box|, in \verbatim|scan_math|, in 
\verbatim|scan_delimiter|, in \verbatim|prefixed_command|,
in assignments of \type{\toks} or \type{\toksdef} tokens after the equal sign, in
\verbatim|do_assignments|. These procedures are used to scan the input for some 
\TeX{}
primitive constructs.  The effect is that spaces and \type{\relax} tokens can be
inserted at various places without harm because they are ignored.


