N:"0"-"9"
A:^ "A"-"Z"
#:\ { {N} | {"."} | {"-"} | {"/" } | {" "} }
NUM:N | <"0">
$:\ <"$"> ["-"] NUM [{N}] <"."> NUM NUM
ZIP:N N N N N <-> N N N N | N N N N N
SSNUM:N N N <-> N N <-> N N N N
ALNUM:{ {A} | {N} | {" "} }
ASCII:{ " "-"~" }
CHR:"!"-"~"
SEX:^~ "M" | "F"
YESNO:^~ "Y" | "N"
PHONE:\ <"("> N N N <")"> <" "> N N N <"-"> N N N N | N N N <"-"> N N N N
ALLUP:~ ASCII
STATE:~ "AL"|"AK"|"AS"|"AZ"|"AR"|"CA"|"CZ"|"CO"|"CT"|"DE"|"DC"|"FL"|state2
state2:~ "GA"|"GU"|"HI"|"ID"|"IL"|"IN"|"IA"|"KS"|"KY"|"LA"|"ME"|"MD"|state3
state3:~ "MA"|"MI"|"MN"|"MS"|"MO"|"MT"|"NE"|"NV"|"NH"|"NJ"|"NM"|"NY"|state4
state4:~ "NC"|"ND"|"OH"|"OK"|"OR"|"PA"|"PR"|"RI"|"SC"|"SD"|"TN"|"TX"|state5
state5:~ "UT"|"VT"|"VA"|"VI"|"WA"|"WV"|"WI"|"WY"
CHEQUE:[{!" "!}](zero| <*** >(tt|thou|hun|tens|ones) cents | <*** zero> cents)
tt:N N N N N & (!00! | ( !0! ones | tens ) < thousand > ) (hun|tens|ones)
thou:N N N N & (!0! | ones < thousand >)(hun | tens | ones)
hun:N N N & (!0! | ones < hundred >) (tens | ones)
ones:!0!|!1!<one>|!2!<two>|!3!<three>|!4!<four>|!5!<five>|!6!<six>|one2
one2:!7!<seven>|!8!<eight>|!9!<nine>
tens:!10!<ten>|!11!<eleven>|!12!<twelve>|!13!<thirteen>|!14!<fourteen>|ten2
ten2:!15!<fifteen>|!16!<sixteen>|!17!<seventeen>|!18!<eighteen>|ten3
ten3:!19!<nineteen>|!20!<twenty>|!30!<thirty>|!40!<forty>|!50!<fifty>|ten4
ten4:!60!<sixty>|!70!<seventy>|!80!<eighty>|!90!<ninety>|ten5
ten5:(!0!|ten6 <"-">) ones
ten6:!2!<twenty>|!3!<thirty>|!4!<forty>|!5!<fifty>|!6!<sixty>|ten7
ten7:!7!<seventy>|!8!<eighty>|!9!<ninety>
cents:< and > [!.!] num num </100 dollars ***>
zero:zer1 <*** zero> !.! cents
zer1:(N N N N N & !00000!) | (N N N N & !0000!) | zer2
zer2:(N N N & !000!) | (N N & !00!) | (N & !0!)
