# This script constructs a transducer that relates the # English numerals "one", "two", ..., "ninety-nine", # to the corresponding numbers "1", 2 ... "99". define OneToNine [1:{one} | 2:{two} | 3:{three} | 4:{four} |5:{five} | 6:{six} | 7:{seven} | 8:{eight} | 9:{nine}]; define TeenTyStem [3:{thir} | 5:{fif} | 6:{six}| 7:{seven} | 8:{eigh} | 9:{nine}]; define Teens [1:0 [{0}:{ten} | 1:{eleven} | 2:{twelve}| [TeenTyStem | 4:{four}] 0:{teen}]]; define TyStem [2:{twen} | TeenTyStem | 4:{for}]; # TyStem is followed either by "ty" paired with a zero # or by "ty-" mapped to an epsilon and folowed by a # number. Note that {0} means zero and not epsilon define Tens [TyStem [{0}:{ty} | 0:{ty-} OneToNine]]; define OneToNinetyNine [ OneToNine | Teens | Tens ]; push OneToNinetyNine