\documentclass{article}
\begin{document}
\tabskip=1em\relax
\section{Templates}
\par\noindent
\halign{[#]&(#)&\{#\}\cr
a&b&c\cr
}
\par\noindent
\halign{[#]&(#)&\{#\}\cr
a&b&c\crcr
}
\subsection{Ex-Span-d}
\par\noindent
\def\bracketA{&(}
\def\bracketB{)&}
\halign{[#]\span\bracketA#\span\bracketB\{#\}\cr
a&b&c\cr
}

\subsection{Tabskip}
\par\noindent
\def\twoem{2em}
\halign{\tabskip=1em[#]&\tabskip=\twoem(#)&\tabskip=3em\{#\}\cr
a&b&c\cr
}

\par\noindent
\def\twoem{2em}
\halign{[#]&\tabskip=10em(#)&\{#\}&[#]\cr
a&b&c&d\cr
}
\par\noindent
\def\twoem{2em}
\halign{[#]&(#)\tabskip=10em&\{#\}&[#]\cr
a&b&c&d\cr
}

\subsection{Repeated Columns}
\par\noindent
\halign{[#]&(#)&&\{#\}\cr
a&b&c\cr
a&b&c& a&b&c\cr
a&b&c& a&b&c& a&b&c&b&c\cr
}

\par\noindent
\halign{&[#]&(#)&\{#\}\cr
a&b&c\cr
a&b&c& a&b&c\cr
a&b&c& a&b&c& a&b&c&b&c\cr
}

%\end{document}

\section{Body}
% &, \omit, \noalign,, \cr
% \span

\subsection{Empty cells}
\par\noindent
\halign{[#]&[#]&[#]\cr
a&b&c\cr
d&e&f\cr
\cr
a\cr
a&\cr
a&b\cr
a&b&\cr
a&b&c\cr
&\cr
&&\cr
a&b&c\cr
\cr
a&b&c\cr
\crcr
e&f&g\cr}

\subsection{Omit}
\par\noindent
\halign{[#]&(#)&\{#\}\cr
a&b&c\cr
\omit a&b&c\cr
\omit a&\omit b&c\cr
 a&\omit b& \omit c\cr
a&b&c\cr
 }
\subsection{Span}
\par\noindent
\halign{[#]&(#)&\{#\}\cr
a&b&c\cr
a\span b&c\cr
a&b\span c\cr
a\span b\span c\cr
a&b&c\cr
 }

\subsection{Multispan}
\par\noindent
\halign{[#]&(#)&\{#\}\cr
a&b&c\cr
a&\omit\span\omit c\cr
a&\multispan2 c\cr
a&b&c\cr
 }
 
\subsection{Noalign}
\par\noindent
 \halign{[#]&[#]\cr
a&b\cr
\noalign{X} a&b \cr
\noalign{Y}\noalign{Z} a&b \cr
%a &\noalign{X} b \cr
}

\par\noindent
 \halign{[#]&[#]\cr
a&b\cr
\noalign{\hrule}
c&d\cr
}

\par\noindent
 \halign{[#]&[#]\cr
a&b\cr
\noalign{\vskip 10ex}
c&d\cr
}

\section{Nested}

\halign{[#]&[#]\cr
  a&b\cr
  \vbox{\halign{(#)&(#)\cr
  a&b\cr}}
  &
  \vbox{\halign{\{#\}&\{#\}\cr  
  a&b\cr}}
\cr}

\section{Complex}

\def\foo#1{[[#1]]}
\halign{[#]&\foo{#}&[#]\cr
a&b&c\cr
d&e&f\cr
}

\end{document}

\halign{[#]&\hbox to 1in {#}&[#]\cr
a&b&c\cr
d&e&f\cr
}

\def\ignore#1{}
\def\amp{&}
\def\return{\cr}

%  a & b\cr

\halign{[[#]]&((#))\cr
  a \ignore& b\cr
  a \ignore{&} b\cr
}
\halign{[[#]]&((#))\cr
  a \amp b\cr
  a \ignore\amp b\cr
  a \ignore{\amp} b\cr
}

% 2nd line gives error: Runaway argument
\halign{\ignore#&((#))\cr
 a & b\cr
% & b\cr
}

\halign{[[#]]&((#))\cr
 a \amp b\return
}


\end{document}
