\documentclass{article}
\def\testencoding{OML}
%
\newcount\linenum\linenum=0\relax
\newcount\colnum\colnum=0\relax
\newcount\n
\newtoks\tabtoks
\def\addtabtoks#1{\tabtoks\expandafter{\the\tabtoks#1}}
%
% GACK! nested loops!?!?!
\def\colloop#1\colrepeat{\def\coliterate{#1\relax\expandafter\coliterate\fi}%
\coliterate \let\coliterate\relax}
\let\colrepeat\fi
\def\rowloop#1\rowrepeat{\def\rowiterate{#1\relax\expandafter\rowiterate\fi}%
\rowiterate \let\rowiterate\relax}
\let\rowrepeat\fi
%
\def\oct#1{\'{}#1}
\def\col{
\fontencoding{\testencoding}\selectfont
\setbox0=\hbox{\char\n}\global\advance\n1\relax\box0}
\def\dorow{
& \col & \col & \col & \col & \col & \col & \col & \col }
\def\dotable#1{
\global\n=0\relax
\def\testencoding{#1}
\begin{tabular}{r|cccccccc}
& \oct{0} & \oct{1} & \oct{2} & \oct{3} & \oct{4} & \oct{5} & \oct{6} & \oct{7} \\ \hline
\oct{0} \dorow \\
\oct{1} \dorow \\
\oct{2} \dorow \\
\oct{3} \dorow \\
\oct{4} \dorow \\
\oct{5} \dorow \\
\oct{6} \dorow \\
\oct{7} \dorow \\
\oct{10} \dorow \\
\oct{11} \dorow \\
\oct{12} \dorow \\
\oct{13} \dorow \\
\oct{14} \dorow \\
\oct{15} \dorow \\
\oct{16} \dorow \\
\oct{17} \dorow \\
\end{tabular}
}
\begin{document}
\dotable{OML}
\dotable{OMS}
\dotable{OMX}
\end{document}