% 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
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
