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

\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.

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

\end
