alias numconv { var %r %n = onetwothreefourfivesix78t9teneleventwelvethir+four+fif+six+7+8+9+twen^thir^for^fif^six^7^8^9^@thousandm*b*tr*quadr*quint*sext*sept*oct*non*&*un&*duo&*tre&*quattuor&*quin&*sex&*septen&*octo&*novem&*vigint* %c = $g($remove($1,$chr(44)),1,32) if %c !isnum || ($regex(%c,^[-+])) return $iif(%c,Invalid) if %c < 1 return zero %c = $g(%c,1,46) if $len(%c) > 66 return Invalid %d = 1 while %d <= $len(%c) { if (. !isin $calc((%d -1)/3)) %r = $+($h($g($iif($m(1) == 1,$g(%n,10-,2),%n),$iif($m(0),$calc($m(0) + $iif($m(1) == 1,1)),$iif($m(1) == 1,$m(1))),2)), ,$iif($+($m(0),$m(1),$m(2)) > 0,$+($h($g($g(%n,29-,2),$iif($calc((%d -1)/3),$ifmatch),2)), )),%r) if (. !isin $calc((%d -2)/3)) %r = $iif($m(0) != 0 && $m(0) != 1,$h($g($g(%n,20-,2),$calc($m(0) -1),2))) $+ %r if (!$calc(%d % 3)) if ($m(0)) %r = $h($+($g(%n,$m(0),2), @ ,%r)) inc %d } return $replace(%r, ,$chr(32)) } alias g return $token($1,$2,$3) alias m return $mid(%c,- $+ $calc(%d + $1),1) alias h return $replace($1-,+,teen,^,ty $+ $iif($m(-1),-),*,illion,&,dec,7,seven,8,eigh,9,nine,@,hundred)