The alignments, and whether borders are to be employed, are decided from the ‘(|c|@{...}l|r|...)’ like parameter. A border is set if the parameter request a drawing of a line.
<..html private array/tabular array.sty..>+
\def\:tempc{\@chclass
\ifnum \@lastchclass=6 \@ne \@chnum \@ne \else
\ifnum \@lastchclass=7 5 \else
\ifnum \@lastchclass=8 \tw@ \else
\ifnum \@lastchclass=9 \thr@@
\else \z@
\ifnum \@lastchclass = 10
\global <.tabular col width.>%
\else
\edef\@nextchar{\expandafter\string\@nextchar}%
\@chnum
\if \@nextchar c\z@ \add:ar-\else
\if \@nextchar l\@ne \add:ar<\else
\if \@nextchar r\tw@ \add:ar>\else
\z@ \@chclass
\if\@nextchar |\@ne \b:VBorder\else
\if \@nextchar !6 \else
\if \@nextchar @7 \d:VBorder\else
\if \@nextchar <8 \else
\if \@nextchar >9 \else
10
\@chnum
\if \@nextchar m\thr@@ \add:ar m\else
\if \@nextchar p4 \add:ar p\else
\if \@nextchar b5 \add:ar b\else
\z@ \@chclass \z@ \@preamerr \z@ \fi \fi \fi \fi
\fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi \fi}
\HLet\@testpach=\:tempc
-_-_-
Note that in latex \VBorder and the internals of \add:ar are defined as locals and not globals. Make sure that we have no problems with the new way. Don’t globalize ar:cnt!!!!
<..html private array/tabular array.sty..>+
<.alignment utilities for VBorder.>%
-_-_-
<..alignment utilities for VBorder..>
\def\add:ar#1{\HAdvance\ar:cnt by 1
<.record alignment type.>\c:VBorder
\edef\HAlign{\HAlign 0 \ar:cnt\space #1 }}
<.access col alignment.>
-_-_-
<..html private array/tabular array.sty..>+
\long\def\:temp#1#2#3{%
\multispan{#1}\a:multicolumn \begingroup
\def\@addamp{\if@firstamp \@firstampfalse \else
\@preamerr 5\fi}%
<.add Row.Col<-> to new:span.>\@addtopreamble\@empty
\global\let\ch:class=\ch:class
<.globalize ar:cnt for array.sty.>%
\endgroup
\def\@sharp{\c:multicolumn#3\d:multicolumn}%
\@arstrut \@preamble
\null
\b:multicolumn
\ignorespaces}
\HLet\multicolumn=\:temp
-_-_-
<..shared html latex array/tabular..>+
\NewConfigure{multicolumn}{4}
-_-_-