\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
}
{\let\amp&
\catcode`\@=4\relax
\halign{[#]&\foo{#}&[#]\cr
a\amp b\amp 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}