Here is my 569

function cif($a,$p)
dim $r,$c,$i,$,$d,$z
$z=@crlf
$p=split($p,$z)
$r=ubound($p)
$c=ubound(split($p[0],"&"))
dim $y[$r,$c] , $l[$c], $t[$c]
for $i=0 to $r
for $=0 to $c
$d=split($p[$i],"&")[$]
$y[$i,$]=$d
if ($d^) > $l[$]
$l[$]=0^$d
endif
next
next
for $i=0 to $r
for $=0 to $c
$p=substr($a,$+1,1)
while ($y[$i,$]^)<$l[$]
$d=$y[$i,$]
$y[$i,$]=iif($p="<",$d + " ",iif($p=">"," " + $d,right(" " + $d + " ",$l[$])))
loop
while ($t[$]^)< $l[$]+2
$t[$]=$t[$]+"-"
loop
next
next
$p="@" + join($t,"-") + "@"
$d=$p+$z
for $i=0 to $r
for $=0 to $c
$d=$d+ iif($i=1 & $=0,"|" + join($t,"+") + "|" + $z,"") + "| " + $y[$i,$] + " " + iif($=$c,"|" + $z,"")
$cif=$d + $p
endfunction