% vim: ts=8 sw=8
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%        File: mlsgalig.tex
%      Author: Oliver Corff
%        Date: November 1st, 1999
%     Version: \VersionRelease
%   Copyright: Ulaanbaatar, Beijing, Berlin
%
% Description: The mls pretty-spell subroutine
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\long\def\my@mls@galig#1{%
     \t@kenbuffer={}%
     \do@mlsgalig#1\ \end@mlsgalig\the\t@kenbuffer}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \do@mlsgalig, \dodo@mlsgalig and the outer loop of \evaluate
% are shamelessly stolen from or modelled after Knuth's token
% scanners demonstrated in the TeXbook, exercise 11.5, chapter
% 20 and, most notoriously,  appendix D.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\do@mlsgalig{\afterassignment\dodo@mlsgalig\let\next= }

\def\dodo@mlsgalig{\ifx\next\end@mlsgalig \let\next\relax
 \else \prettify@mls\let\next\do@mlsgalig\fi
 \next}

\def\end@mlsgalig{\end@mlsgalig}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\let\following@char\empty % ditto
\let\this@char\empty % general char var initialization
%
\newtoks\t@kenbuffer	% token buffer collects output
%
\newif\ifShowSpecialMLS	% Used for toggling token status
\def\double@quote{''}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The \evaluate construct appears in the TeXbook, disguised
% as \\; see above for sources of inspiration.
%
\def\prettify@mls{\expandafter\if\space \next\ % <- Watch space and `%'!
  \let\this@char\space%
  \the\t@kenbuffer%
  \t@kenbuffer={}%
  \this@char%
 \else%
  \let\this@char\next%
%  [[\expandafter\string\this@char]] % <- used for diagnostics only.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \if\this@char E%
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer \"a}%
  \else%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \if\this@char O%
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer \"o}%
  \else%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \if\this@char U%
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer \"u}%
  \else%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \if\this@char S%
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer \sh}%
  \else%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \if\this@char G%
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer \g}%
  \else%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \if\this@char '%
    \ifShowSpecialMLS
      \t@kenbuffer=\expandafter{\the\t@kenbuffer \fbox{\textsf{FVS1}}}%
    \else%
      \t@kenbuffer=\expandafter{\the\t@kenbuffer '}%
    \fi
  \else%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \if\this@char "%
      \ifShowSpecialMLS
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer \fbox{\textsf{FVS2}}}%
      \else%
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer ''}%
      \fi
  \else%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \if\this@char *%
      \ifShowSpecialMLS
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer \fbox{\textsf{*}}}%
      \else
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer *}%
      \fi
  \else%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \if\this@char -%
      \ifShowSpecialMLS
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer \fbox{\textsf{MSP}}}%
      \else
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer -}%
      \fi
  \else%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \if\this@char =%
      \ifShowSpecialMLS
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer \fbox{\textsf{MVS}}}%
      \else
  	\t@kenbuffer=\expandafter{\the\t@kenbuffer =}%
      \fi
  \else%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
	\the\t@kenbuffer\this@char\t@kenbuffer={}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \fi% <- end of evaluate else branch
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
 %
 }% End of evaluate definition
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\endinput
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The file mlsgalig.tex ends here.
%
% O. Corff, (c) 1999, Ulaanbaatar, Beijing, Berlin
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%