N:"0"-"9"
A:^ "A"-"Z"
#:\ { {N} | {"."} | {"-"} | {"/" } | {" "} }
jerry:"0"-"9"
NUM:N | <"0">
$:\ <"$"> ["-"] NUM [{N}] <"."> NUM NUM
ZIP:N N N N N <-> N N N N | N N N N N
SSNUM:'Enter social sec no.'  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!)
ROMAN:~ (N N N N & rom4) | (N N N & rom3) | (N N & rom2) | (N & rom1)
Rom4:( !0! | !1!<M> | !2!<MM> | !3!<MMM> ) rom3
Rom3:( Rom3a | Rom3b ) rom2
Rom3a:!0! | !1!<C> | !2! <CC> | !3!<CCC> | !4!<CD>
Rom3b:!5!<D> | !6!<DC> | !7!<DCC> | !8!<DCCC> | !9!<CM>
Rom2:( Rom2a | Rom2b ) rom1
Rom2a:!0! | !1!<X> | !2!<XX> | !3!<XXX> | !4!<XL>
Rom2b:!5!<L> | !6!<LX> | !7!<LXX> | !8!<LXXX> | !9!<XC>
Rom1:( Rom1a | Rom1b )
Rom1a:!0! | !1!<I> | !2!<II> | !3!<III> | !4!<IV>
Rom1b:!5!<V> | !6!<VI> | !7!<VII> | !8!<VIII> | !9!<IX>
SOUNDEX:~ A N N N
RJ:\ ascii
RJNUM:\ { # }
RJ0:[{ <0>!" "! }]  [{ # }]
RMINUS:!" "! [{" "}] ( ( !"-"!<" "> { * } <"-"> ) | ( { * } ) )
PARENEG:!" "! [{" "}] ( ( !"-"!<"("> { * } <")"> ) | ( { * } ) )
MMM_YY:~ ( mthabrv <" "> N N [ N N ] ) | ( repnum [!/!] delnum delnum [!/!] <" "> N N [ N N ]  )
repnum:(        (!01! <JAN>) | (!02! <FEB>) | (!03! <MAR>) | (!04! <APR>) | (!05! <MAY>) | (!06! <JUN>) | (!07! <JUL>) | repnum2 )
repnum2:( (!08! <AUG>) | (!09! <SEP>) | (!10! <OCT>) | (!11! <NOV>) | (!12! <DEC>) )
mthabrv:"JAN"|"FEB"|"MAR"|"APR"|"MAY"|"JUN"|"JUL"|"AUG"|"SEP"|"OCT"|"NOV"|"DEC"
delnum:( !0! | !1! | !2! | !3! | !4! | !5! | !6! | !7! | !8! | !9! )
unphone:{ !"("! | !")"! | !" "! | !"-"! | * }
