% vim: ts=8 sw=8
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%        File: mlstrans.tex
%      Author: Oliver Corff
%        Date: Novemer 10th, 1999
%     Version: \VersionRelease
%   Copyright: Ulaanbaatar, Beijing, Berlin
%
% Description: The mls retransliteration engine
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Umlaut definitions
%
\let\a@mlaut=E%
\let\o@mlaut=O%
\let\u@mlaut=U%
%
% Top-level definition of `myfunction'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
\long\def\my@galig#1{%
    \t@kenbuffer={}%
    \loopcount=0%
    \previousisboundarytrue%
    \thisisboundarytrue%
    \do@galiglist#1\ \end@galiglist\the\t@kenbuffer}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \do@galiglist, \dodo@galiglist 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@galiglist{\afterassignment\dodo@galiglist\let\next= }

\def\dodo@galiglist{\ifx\next\end@galiglist \let\next\relax
\else \evaluate@galig\let\next\do@galiglist\fi
\next}

\def\end@galiglist{\end@galiglist}

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% The following variables and counters are used in the retrans-
% literation engine.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\let\previouschar\empty % general char var initialization
\let\followingchar\empty % ditto
\let\thischar\empty   % ditto
%
\newtoks\t@kenbuffer    % token buffer collects output
\newif\iffvs    % if FVS then loop once
\newcount\thisfvs   % the fvs value of this character
\newcount\previousfvs  % the fvs value of the previous char
\newcount\followingfvs  % the fvs value of the following char
\newcount\loopcount   % loop count
\newcount\syllablecount  % syllable count; needed
      % for front vowels
\newcount\raisel   % takes care of longer l
%
\newif\iffollowingisvowel % if following is vowel then ...
\newif\ifthisisvowel  % if this is vowel then ...
\newif\ifpreviousisvowel % if previous is vowel then ...
%
\newif\iffollowingisround % if following is round then ...
\newif\ifthisisround  % if this is round then ...
\newif\ifpreviousisround % if previous is round then ...
%
\newif\iffollowingforcesround % if following forces successor
      % to be round then ...
\newif\ifthisforcesround % if this forces successor to be round then ...
\newif\ifpreviousforcesround% if previous forces successor to be round then ...
%
\newif\iffollowingisboundary % if following is boundary then ...
\newif\ifthisisboundary  % if this is boundary then ...
\newif\ifpreviousisboundary % if previous is boundary then ...
%
\newif\iffollowingispseudoboundary % needed for xoriy=a, Gar-aca
\newif\ifthisispseudoboundary  % and friends
\newif\ifpreviousispseudoboundary %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The \evaluate construct appears in the TeXbook, disguised
% as \\; see above for sources of inspiration.
%
\def\evaluate@galig{\expandafter\if\space \next % <- Watch space and `%'!
 \let\followingchar\space %
 \followingisboundarytrue %
 \syllablecount=0 %
 \the\t@kenbuffer%
 \t@kenbuffer={}%
\else%
 \let\followingchar\next %
 \followingisboundaryfalse %
\fi% <- end of evaluate else branch
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Detect and treat FVSs
%
\iffvs%(
 \fvsfalse%
 \let\thisfvs\followingfvs%
\else
 \if\followingchar '%
  \fvstrue\followingfvs=1 %
 \else
  \if\followingchar "%
   \fvstrue\followingfvs=2 %
  \else
   \followingfvs=0 %
  \fi
 \fi
\fi%)
%
\iffvs%(<- vi jump tag for detected FVS
\else%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Analysis of incoming characters
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \followingispseudoboundaryfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \if\followingchar a%
  \followingforcesroundtrue
  \followingisroundfalse
  \followingisvoweltrue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar \a@mlaut%
  \followingforcesroundtrue
  \followingisroundfalse
  \followingisvoweltrue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar e%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvoweltrue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar i%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvoweltrue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar u%
  \followingforcesroundtrue
  \followingisroundfalse
  \followingisvoweltrue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar \u@mlaut%
  \followingforcesroundtrue
  \followingisroundfalse
  \followingisvoweltrue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar o%
  \followingforcesroundtrue
  \followingisroundfalse
  \followingisvoweltrue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar \o@mlaut%
  \followingforcesroundtrue
  \followingisroundfalse
  \followingisvoweltrue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar n%
  \followingforcesroundtrue
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar l%
  \followingforcesroundtrue
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar r%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar g%
  \followingforcesroundfalse
  \followingisroundtrue
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar -%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
  \followingispseudoboundarytrue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar G%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar b%
  \followingforcesroundfalse
  \followingisroundtrue
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar d%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar t%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar s%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar y%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar z%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar k%
  \followingforcesroundfalse
  \followingisroundtrue
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar x%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar m%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar S%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar c%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar =%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
  \followingispseudoboundarytrue
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar v%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar h%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar p%
  \followingforcesroundfalse
  \followingisroundtrue
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar K%
  \followingforcesroundfalse
  \followingisroundtrue
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar f%
  \followingforcesroundfalse
  \followingisroundtrue
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar Q%
  \followingforcesroundfalse
  \followingisroundtrue
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar Z%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar C%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar j%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar |%
  % evaluate | (niruGu)
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\followingchar *%
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else
  \followingisboundarytrue
  \followingforcesroundfalse
  \followingisroundfalse
  \followingisvowelfalse
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                                           \fi % 37 * EnvMark
                                          \fi  % 36 | (niruGu)
                                         \fi   % 35 j
                                        \fi    % 34 C
                                       \fi     % 33 Z
                                      \fi      % 32 Q
                                     \fi       % 31 f
                                    \fi        % 30 K
                                   \fi         % 29 p
                                  \fi          % 28 h
                                 \fi           % 27 v
                                \fi            % 26 =
                               \fi             % 25 c
                              \fi              % 24 S (sh)
                             \fi               % 23 m
                            \fi                % 22 x
                           \fi                 % 21 k
                          \fi                  % 20 z
                         \fi                   % 19 y
                        \fi                    % 18 s
                       \fi                     % 17 t
                      \fi                      % 16 d
                     \fi                       % 15 b
                    \fi                        % 14 G
                   \fi                         % 13 - (MSP)
                  \fi                          % 12 g
                 \fi                           % 11 r
                \fi                            % 10 l
               \fi                             %  9 n
              \fi                              %  8 o@mlaut
             \fi                               %  7 o
            \fi                                %  6 u@mlaut
           \fi                                 %  5 u
          \fi                                  %  4 i
         \fi                                   %  3 e
        \fi                                    %  2 a@mlaut
       \fi                                     %  1 a
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Evaluate current character
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \ifnum\loopcount>0 %(<- vi jump tag for loopcount
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \if\thischar a%          % 01
  \iffollowingisboundary%(
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @ae}%
   \else     % Final Form
    \ifpreviousisround %
     \t@kenbuffer=\expandafter{\the\t@kenbuffer AE}%
    \else
     \ifpreviousispseudoboundary %
      \t@kenbuffer=\expandafter{\the\t@kenbuffer E}%
     \else
      \ifcase\thisfvs
       \t@kenbuffer=\expandafter{\the\t@kenbuffer e}%
      \or
       \t@kenbuffer=\expandafter{\the\t@kenbuffer E}%
      \fi
     \fi
    \fi
   \fi
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @aa}%
   \else%     % Medial Form
    \ifpreviousisround %
     \iffollowingispseudoboundary %
      \t@kenbuffer=\expandafter{\the\t@kenbuffer AE}%
     \else%
      \t@kenbuffer=\expandafter{\the\t@kenbuffer A}%
     \fi
    \else%
     \ifpreviousispseudoboundary %
      \t@kenbuffer=\expandafter{\the\t@kenbuffer |a}%
     \else%
      \t@kenbuffer=\expandafter{\the\t@kenbuffer a}%
     \fi
    \fi
   \fi
  \fi%)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar \a@mlaut%      % 02
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @aE}%
   \else     % Final Form
    \ifpreviousisround
     \t@kenbuffer=\expandafter{\the\t@kenbuffer AE}%
    \else%
     \ifpreviousispseudoboundary
      \t@kenbuffer=\expandafter{\the\t@kenbuffer E}%
     \else%
      \t@kenbuffer=\expandafter{\the\t@kenbuffer e}%
     \fi
    \fi
   \fi
  \else
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @a}%
   \else%     % Medial Form
    \ifpreviousisround
     \iffollowingispseudoboundary
      \t@kenbuffer=\expandafter{\the\t@kenbuffer AE}%
     \else
      \t@kenbuffer=\expandafter{\the\t@kenbuffer A}%
     \fi
    \else%
     \ifpreviousispseudoboundary
      \t@kenbuffer=\expandafter{\the\t@kenbuffer |a}%
     \else%
      \iffollowingispseudoboundary
       \t@kenbuffer=\expandafter{\the\t@kenbuffer e}%
      \else
       \t@kenbuffer=\expandafter{\the\t@kenbuffer a}%
      \fi
     \fi
    \fi
   \fi
  \fi
  \advance\syllablecount by 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar e%        % 03
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @av}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer vY}%
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @av}%
   \else%     % Medial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer v}%
   \fi
  \fi
  \advance\syllablecount by 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar i%        % 04
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @aI}%
   \else%     % Final Form
    \if\previouschar b%
     \t@kenbuffer=\expandafter{\the\t@kenbuffer iY}%
    \else
     \t@kenbuffer=\expandafter{\the\t@kenbuffer I}%
    \fi
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @ai}%
   \else%     % Medial Form
    \iffollowingispseudoboundary
     \t@kenbuffer=\expandafter{\the\t@kenbuffer I}%
    \else
     \t@kenbuffer=\expandafter{\the\t@kenbuffer i}%
    \fi
   \fi
  \fi
  \advance\syllablecount by 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar u%        % 05
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @ao|}%
   \else%     % Final Form
    \ifpreviousisround
     \t@kenbuffer=\expandafter{\the\t@kenbuffer O}%
    \else
     \t@kenbuffer=\expandafter{\the\t@kenbuffer b}%
    \fi
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @ao}%
   \else%     % Medial Form
    \ifpreviousisround
     \t@kenbuffer=\expandafter{\the\t@kenbuffer O}%
    \else
     \iffollowingispseudoboundary
      \t@kenbuffer=\expandafter{\the\t@kenbuffer b}%
     \else
      \t@kenbuffer=\expandafter{\the\t@kenbuffer o}%
     \fi
    \fi
   \fi
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar\u@mlaut%       % 06
  \iffollowingisboundary%(
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @ab}%
   \else%     % Final Form
    \ifpreviousisround
     \t@kenbuffer=\expandafter{\the\t@kenbuffer O}%
    \else
     \t@kenbuffer=\expandafter{\the\t@kenbuffer b}%
    \fi
   \fi%
  \else%
   \ifpreviousisboundary%( % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @aoi}%
   \else%     % Medial Form
    \ifnum\syllablecount>0
     \ifpreviousisround
      \t@kenbuffer=\expandafter{\the\t@kenbuffer O}%
     \else
      \iffollowingispseudoboundary
       \t@kenbuffer=\expandafter{\the\t@kenbuffer b}%
      \else
       \t@kenbuffer=\expandafter{\the\t@kenbuffer o}%
      \fi
     \fi
    \else
     \ifpreviousisround
      \t@kenbuffer=\expandafter{\the\t@kenbuffer O}%
     \else
      \t@kenbuffer=\expandafter{\the\t@kenbuffer o}%
     \fi
     \ifcase\thisfvs
      \t@kenbuffer=\expandafter{\the\t@kenbuffer i}%
     \or
      %\t@kenbuffer=\expandafter{\the\t@kenbuffer i}%
     \fi
    \fi
   \fi%)
  \fi%)
  \advance\syllablecount by 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar o%        % 07
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @ao}%
   \else%     % Final Form
    \ifpreviousisround
     \t@kenbuffer=\expandafter{\the\t@kenbuffer O}%
    \else
     \t@kenbuffer=\expandafter{\the\t@kenbuffer b}%
    \fi
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @ao}%
   \else%     % Medial Form
    \ifpreviousisround
     \t@kenbuffer=\expandafter{\the\t@kenbuffer O}%
    \else
     \iffollowingispseudoboundary
      \t@kenbuffer=\expandafter{\the\t@kenbuffer b}%
     \else
      \t@kenbuffer=\expandafter{\the\t@kenbuffer o}%
     \fi
    \fi
   \fi
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar\o@mlaut%       % 08
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @aoY}%
   \else%     % Final Form
    \ifpreviousisround
     \t@kenbuffer=\expandafter{\the\t@kenbuffer O}%
    \else
     \t@kenbuffer=\expandafter{\the\t@kenbuffer b}%
    \fi
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @aoi}%
   \else%     % Medial Form
    \ifnum\syllablecount>0
     \ifpreviousisround
      \t@kenbuffer=\expandafter{\the\t@kenbuffer O}%
     \else
      \iffollowingispseudoboundary
       \t@kenbuffer=\expandafter{\the\t@kenbuffer b}%
      \else
       \t@kenbuffer=\expandafter{\the\t@kenbuffer o}%
      \fi
     \fi
    \else
     \ifpreviousisround
      \t@kenbuffer=\expandafter{\the\t@kenbuffer Oi}%
     \else
      \t@kenbuffer=\expandafter{\the\t@kenbuffer oi}%
     \fi
    \fi
   \fi
  \fi
 \advance\syllablecount by 1
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar n%        % 09
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @n}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer e}%
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \ifcase\thisfvs
     \t@kenbuffer=\expandafter{\the\t@kenbuffer @n}%
    \or
     \t@kenbuffer=\expandafter{\the\t@kenbuffer @a}%
    \fi
   \else%     % Medial Form
    \iffollowingisvowel
     \ifcase\thisfvs
      \ifpreviousisround
       \t@kenbuffer=\expandafter{\the\t@kenbuffer V}%
      \else
       \t@kenbuffer=\expandafter{\the\t@kenbuffer n}%
      \fi
     \or
      \t@kenbuffer=\expandafter{\the\t@kenbuffer a}%
     \fi
    \else
     \iffollowingispseudoboundary
      \if\followingchar -%
       \t@kenbuffer=\expandafter{\the\t@kenbuffer e}%
      \else
       \t@kenbuffer=\expandafter{\the\t@kenbuffer e-}%
      \fi
     \else
     \ifcase\thisfvs
      \t@kenbuffer=\expandafter{\the\t@kenbuffer a}%
     \or
      \t@kenbuffer=\expandafter{\the\t@kenbuffer n}%
     \fi
     \fi
    \fi
   \fi
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar l%        % 10
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @l}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer L}%
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @l}%
   \else%     % Medial Form
    \ifpreviousisround
     \t@kenbuffer=\expandafter{\the\t@kenbuffer Q}%
    \else
     \ifnum\raisel>0
      \t@kenbuffer=\expandafter{\the\t@kenbuffer \char152}%
     \else
      \iffollowingispseudoboundary
       \t@kenbuffer=\expandafter{\the\t@kenbuffer L}%
      \else
       \t@kenbuffer=\expandafter{\the\t@kenbuffer l}%
      \fi
     \fi
    \fi
   \fi
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar r%        % 11
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer r}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer R}%
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer r}%
   \else%     % Medial Form
    \iffollowingispseudoboundary
     \t@kenbuffer=\expandafter{\the\t@kenbuffer R}%
    \else
     \t@kenbuffer=\expandafter{\the\t@kenbuffer r}%
    \fi
   \fi
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar g%        % 12
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer ga}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer iE}%
   \fi%
  \else%
   \iffollowingforcesround % Initial and Medial Forms
    \t@kenbuffer=\expandafter{\the\t@kenbuffer g}%
   \else
    \iffollowingispseudoboundary
     \t@kenbuffer=\expandafter{\the\t@kenbuffer iE}%
    \else
     \iffollowingisvowel
      \t@kenbuffer=\expandafter{\the\t@kenbuffer I}%
     \else
      \t@kenbuffer=\expandafter{\the\t@kenbuffer N}%
     \fi
    \fi
   \fi
  \fi
  \raisel=3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar -%        % 13
  \iffollowingisboundary
   \ifpreviousisboundary % Isolated Form
    \char32 %
   \else
    \t@kenbuffer=\expandafter{\the\t@kenbuffer \hskip0.33ex}%
   \fi
  \else
   \t@kenbuffer=\expandafter{\the\t@kenbuffer \hskip0.33ex}%
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar G%         % 14
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer XY}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer aG}%
   \fi%
  \else%
   \ifpreviousisboundary%                      % Initial Form
    \ifcase\thisfvs
     \t@kenbuffer=\expandafter{\the\t@kenbuffer X}%
    \or
     \t@kenbuffer=\expandafter{\the\t@kenbuffer x}%
    \or
     \t@kenbuffer=\expandafter{\the\t@kenbuffer g}%
    \fi
    \raisel=3 %
   \else%                                      % Medial Form
    \iffollowingispseudoboundary
      \if\followingchar -%
       \t@kenbuffer=\expandafter{\the\t@kenbuffer aG}%
      \else
       \t@kenbuffer=\expandafter{\the\t@kenbuffer aG=}%
      \fi
    \else
     \iffollowingisvowel
      \ifcase\thisfvs
       \t@kenbuffer=\expandafter{\the\t@kenbuffer nn}%
      \or
       \t@kenbuffer=\expandafter{\the\t@kenbuffer aa}%
      \or
       \t@kenbuffer=\expandafter{\the\t@kenbuffer g}%
      \fi
     \else
      \ifcase\thisfvs
       \t@kenbuffer=\expandafter{\the\t@kenbuffer aa}%
      \or
       \t@kenbuffer=\expandafter{\the\t@kenbuffer nn}%
      \fi
     \fi
    \fi
   \fi
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar b%        % 15
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer b}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer oE}%
   \fi%
  \else%
   \iffollowingforcesround % Medial Forms
    \t@kenbuffer=\expandafter{\the\t@kenbuffer B}%
   \else%
    \iffollowingispseudoboundary
     \t@kenbuffer=\expandafter{\the\t@kenbuffer oE}%
    \else
     \t@kenbuffer=\expandafter{\the\t@kenbuffer b}%
    \fi
   \fi%
  \fi%
  \raisel=3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar d%        % 16
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \ifcase\thisfvs
     \t@kenbuffer=\expandafter{\the\t@kenbuffer dY}%
    \or
     \t@kenbuffer=\expandafter{\the\t@kenbuffer tY}%
    \else \t@kenbuffer=\expandafter{\the\t@kenbuffer dY}%
    \fi%
   \else%              % Final Form
    \ifcase\thisfvs
     \t@kenbuffer=\expandafter{\the\t@kenbuffer oe}%
    \or
     \t@kenbuffer=\expandafter{\the\t@kenbuffer dY}%
    \else \t@kenbuffer=\expandafter{\the\t@kenbuffer dY}%
    \fi%
   \fi
  \else
   \ifpreviousisboundary% % Initial Form
    \ifcase\thisfvs
     \t@kenbuffer=\expandafter{\the\t@kenbuffer t}%
    \or
     \t@kenbuffer=\expandafter{\the\t@kenbuffer d}%
    \else \t@kenbuffer=\expandafter{\the\t@kenbuffer d}%
    \fi%
   \else%              % Medial Form
    \iffollowingispseudoboundary
         \ifcase\thisfvs
      \t@kenbuffer=\expandafter{\the\t@kenbuffer oe}%
     \or
      \t@kenbuffer=\expandafter{\the\t@kenbuffer dY}%
     \else \t@kenbuffer=\expandafter{\the\t@kenbuffer dY}%
     \fi%
    \else
     \iffollowingisvowel
      \t@kenbuffer=\expandafter{\the\t@kenbuffer d}%
     \else
      \t@kenbuffer=\expandafter{\the\t@kenbuffer oa}%
     \fi
    \fi
   \fi
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar t%        % 17
  \iffollowingisboundary%(
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer tY}%
   \else%     % Final Form
    \ifcase\thisfvs
     \t@kenbuffer=\expandafter{\the\t@kenbuffer dY}%
    \or
     \t@kenbuffer=\expandafter{\the\t@kenbuffer tY}%
    \fi%
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer t}%
   \else%     % Medial Form
    \ifcase\thisfvs
     \t@kenbuffer=\expandafter{\the\t@kenbuffer d}%
    \or
     \t@kenbuffer=\expandafter{\the\t@kenbuffer t}%
    \fi%
   \fi
  \fi%)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar s%        % 18
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @s}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer S}%
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @s}%
   \else%     % Medial Form
    \iffollowingispseudoboundary
     \t@kenbuffer=\expandafter{\the\t@kenbuffer S}%
    \else
     \t@kenbuffer=\expandafter{\the\t@kenbuffer s}%
    \fi
   \fi
  \fi
  \raisel=3 %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar y%        % 19
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer y}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer yY}%
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer y}%
   \else%     % Medial Form
    \iffollowingispseudoboundary
     \t@kenbuffer=\expandafter{\the\t@kenbuffer I}%
    \else
     \if\followingchar i%
      \ifcase\thisfvs
       \t@kenbuffer=\expandafter{\the\t@kenbuffer i}%
      \or
       \t@kenbuffer=\expandafter{\the\t@kenbuffer y}%
      \fi%
     \else
      \if\previouschar i%
       \ifcase\thisfvs
        \t@kenbuffer=\expandafter{\the\t@kenbuffer i}%
       \or
        \t@kenbuffer=\expandafter{\the\t@kenbuffer y}%
       \fi
      \else
       \ifcase\thisfvs
        \t@kenbuffer=\expandafter{\the\t@kenbuffer y}%
       \or
        \t@kenbuffer=\expandafter{\the\t@kenbuffer i}%
       \fi
      \fi
     \fi
    \fi
   \fi
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar z%        % 20
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer i}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer zY}%
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer i}%
   \else%     % Medial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer z}%
   \fi
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar k%        % 21
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer ga}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer iE}%
   \fi%
  \else%
   \iffollowingforcesround % Initial and Medial Forms
    \t@kenbuffer=\expandafter{\the\t@kenbuffer g}%
   \else
    \t@kenbuffer=\expandafter{\the\t@kenbuffer I}%
   \fi
  \fi
  \raisel=3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar x%        % 22
  \iffollowingisboundary%(
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer xY}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer aG}%
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer x}%
   \else%     % Medial Form
    \iffollowingispseudoboundary
     \t@kenbuffer=\expandafter{\the\t@kenbuffer aG}%
    \else
     \t@kenbuffer=\expandafter{\the\t@kenbuffer aa}%
    \fi
   \fi
  \fi%)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar m%        % 23
  \iffollowingisboundary%(
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @m}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer M}%
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @m}%
   \else%     % Medial Form
    \iffollowingispseudoboundary
     \t@kenbuffer=\expandafter{\the\t@kenbuffer M}%
    \else
     \t@kenbuffer=\expandafter{\the\t@kenbuffer m}%
    \fi
   \fi
  \fi%)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar S%        % 24
  \iffollowingisboundary%(
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @q}%
   \else%     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer T}%
   \fi%
  \else%
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @q}%
   \else%     % Medial Form
    \iffollowingispseudoboundary
     \t@kenbuffer=\expandafter{\the\t@kenbuffer T}%
    \else
     \t@kenbuffer=\expandafter{\the\t@kenbuffer q}%
    \fi
   \fi
  \fi%)
  \raisel=3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar c%        % 25
  \iffollowingisboundary
   \t@kenbuffer=\expandafter{\the\t@kenbuffer cY}%
  \else
   \t@kenbuffer=\expandafter{\the\t@kenbuffer c}%
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar =%        % 26
  \iffollowingisboundary
   \ifpreviousisboundary % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer =}%
   \else
    %\t@kenbuffer=\expandafter{\the\t@kenbuffer \hskip0.33ex}%
    %\hskip0.33ex
   \fi
  \else
   \t@kenbuffer=\expandafter{\the\t@kenbuffer \hskip0.33ex}%
   %\hskip0.33ex
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar v%        % 27
  \iffollowingisboundary
   \t@kenbuffer=\expandafter{\the\t@kenbuffer vY}%
  \else
   \t@kenbuffer=\expandafter{\the\t@kenbuffer v}%
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar h%        % 28
  \iffollowingisboundary%(
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @ahY}%
   \else     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer hY}%
   \fi%
  \else
   \ifpreviousisboundary% % Initial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer @ah}%
   \else     % Medial Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer h}%
   \fi
  \fi%)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar p%        % 29
  \iffollowingisboundary%(
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer p}%
   \else     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer pE}%
   \fi%
  \else%
   \iffollowingforcesround%% Medial Forms
    \t@kenbuffer=\expandafter{\the\t@kenbuffer P}%
   \else
    \t@kenbuffer=\expandafter{\the\t@kenbuffer p}%
   \fi
  \fi%)
  \raisel=3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar K%        % 30
  \iffollowingisboundary%(
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer k}%
   \else     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer kE}%
   \fi%
  \else%
   \iffollowingforcesround%% Medial Forms
    \t@kenbuffer=\expandafter{\the\t@kenbuffer K}%
   \else
    \t@kenbuffer=\expandafter{\the\t@kenbuffer k}%
   \fi
  \fi%)
  \raisel=3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar f%        % 31
  \iffollowingisboundary%(
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer f}%
   \else     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer fE}%
   \fi%
  \else%
   \iffollowingforcesround%% Medial Forms
    \t@kenbuffer=\expandafter{\the\t@kenbuffer F}%
   \else
    \t@kenbuffer=\expandafter{\the\t@kenbuffer f}%
   \fi
  \fi%)
  \raisel=3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar Q%        % 32
  \iffollowingisboundary%
   \ifpreviousisboundary% % Isolated Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer w}%
   \else     % Final Form
    \t@kenbuffer=\expandafter{\the\t@kenbuffer wE}%
   \fi%
  \else%
   \iffollowingforcesround%% Medial Forms
    \t@kenbuffer=\expandafter{\the\t@kenbuffer W}%
   \else
    \t@kenbuffer=\expandafter{\the\t@kenbuffer w}%
   \fi
  \fi
  \raisel=3
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar Z%        % 33
  \iffollowingisboundary
   \t@kenbuffer=\expandafter{\the\t@kenbuffer ZY}%
  \else
   \t@kenbuffer=\expandafter{\the\t@kenbuffer Z}%
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar C%        % 34
  \iffollowingisboundary
   \t@kenbuffer=\expandafter{\the\t@kenbuffer CY}%
  \else
   \t@kenbuffer=\expandafter{\the\t@kenbuffer C}%
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar j%        % 35
  \iffollowingisboundary
   \t@kenbuffer=\expandafter{\the\t@kenbuffer jY}%
  \else
   \t@kenbuffer=\expandafter{\the\t@kenbuffer j}%
  \fi
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar |%        % 36
  \t@kenbuffer=\expandafter{\the\t@kenbuffer |}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else \if\thischar *%        % 37
  \t@kenbuffer=\expandafter{\the\t@kenbuffer *}%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \else%
  \the\t@kenbuffer\thischar\t@kenbuffer={}%
     % Output anything else which
     % is not a mongolian character.
     %
 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
 \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi%
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
  %\showtriple%
 \fi%)<- vi jump tag for loopcount
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
 \advance\loopcount by 1
 %
 \ifnum\raisel>0\advance\raisel by -1 \fi
 %
 \let\previousfvs\thisfvs     % downcycle FVS
 %
 \let\previouschar\thischar     % downcycle
 \let\thischar\followingchar     % character
 %
 \ifthisisround\previousisroundtrue   % downcycle
  \else\previousisroundfalse\fi   % is round
 \iffollowingisround\thisisroundtrue
  \else\thisisroundfalse\fi%
 %
 \ifthisforcesround\previousforcesroundtrue % downcycle
  \else\previousforcesroundfalse\fi  % forces round
 \iffollowingforcesround\thisforcesroundtrue
  \else\thisforcesroundfalse\fi%
 %
 \ifthisisboundary\previousisboundarytrue % downcycle
  \else\previousisboundaryfalse\fi  % boundary
 \iffollowingisboundary\thisisboundarytrue
  \else\thisisboundaryfalse\fi%
 %
 \ifthisispseudoboundary\previousispseudoboundarytrue % downcycle
  \else\previousispseudoboundaryfalse\fi    % pseudo-
 \iffollowingispseudoboundary\thisispseudoboundarytrue% boundaries
  \else\thisispseudoboundaryfalse\fi%
 %
\fi%)<- vi jump tag for detected FVS
%
}% End of evaluate definition
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% \showtriple is used for debugging purposes. It shows every
% letter surrounded by predecessor and follower, with Form
% Variant Selector number indicated if present.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\def\showtriple{%
   % show predecessor
   \if\thischar\space\let\thischar *\fi%
   \ifpreviousisboundary [\else (\fi%
   \number\loopcount:
    $_{\previouschar}%
    ^{\ifnum\previousfvs>0 \number\previousfvs\fi}$%
   %
   % show present char and FVS
   \thischar%
    $^{\ifnum\thisfvs>0 \number\thisfvs\fi}$%
   %
   % show successor
   $_{\followingchar}%
    ^{\ifnum\followingfvs>0 \number\followingfvs\fi}$%
    %
   \iffollowingisboundary ]\else )\fi%
   \ifthisisboundary\par\else\space\fi%
   }
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% We're done!
%
\endinput
\def\mlsloaded{\yeshere}
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% The file mlstrans.tex ends here.
%
% O. Corff, (c) 1999, Ulaanbaatar, Beijing, Berlin
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%