とりあえず、10分で出来ると書いたので 書き方を
こういう場合、先に パース部分を書く

begin
if getChar<>'(' then MyAssart;
while getChar in ['0'..'9'] do begin
var1:=var1*10+ IntToStr(NowChar);
end;
if NowChar<>',' then Myassart;
while getChar in ['0'..'9'] do begin
var2:=var2*10+ IntToStr(NowChar);
end;
if NowChar<>')' then Myassart;

end;

その後、関数名と、関数内関数を書く
getCharで1文字送り、NowCharは常に現在位置 とする
そして、エラーならMyAssartという手続きで例外を投げる