#ABNF 1.0 UTF-8; language en-US; mode voice; tag-format ; root $request; $request = {$="*"} $infotype {$ += $$} $threedigitstring {$ +=$$}; $infotype = facilities {$ = "20"} | emergency {$ = "30"} | administration {$ = "40"}; $threedigitstring = {$ = ''} ($hundreds {$ += $$} | $ohbase {$+=$$} $tens {$+=$$} | ($ohbase {$ += $$})<3>); $base = one {$=1} | two {$=2} | three {$=3} | four {$=4} | five {$=5} | six {$=6} | seven {$=7} | eight {$=8} | nine {$=9} ; $teen = ten {$=10} | eleven {$=11} | twelve {$=12} | thirteen {$=13} | fourteen {$=14} | fifteen {$=15} | sixteen {$=16} | seventeen {$=17}| eighteen {$=18} | nineteen {$=19}; $twenty = twenty {$=20} (/0.9/ $base {$+=$$} | /0.1/ $NULL);//rationale for weights: 9 out of 10 times twenty is followed by two or three or... $thirty = thirty {$=30} (/0.9/ $base {$+=$$} | /0.1/ $NULL); $forty = forty {$=40} (/0.9/ $base {$+=$$} | /0.1/ $NULL); $fifty = fifty {$=50} (/0.9/ $base {$+=$$} | /0.1/ $NULL); $sixty = sixty {$=60} (/0.9/ $base {$+=$$} | /0.1/ $NULL); $seventy = seventy {$=70} (/0.9/ $base {$+=$$} | /0.1/ $NULL); $eighty = eighty {$=80} (/0.9/ $base {$+=$$} | /0.1/ $NULL); $ninety = ninety {$=90} (/0.9/ $base {$+=$$} | /0.1/ $NULL); $tens = ($teen | $twenty | $thirty | $forty | $fifty | $sixty | $seventy | $eighty | $ninety) {$=$$}; $zero = (oh|zero) {$=0}; $ohbase = (/0.1/ $zero| /0.9/ $base) {$=$$}; $and = and|an; $hundred = (/0.05/[a] hundred {$=100}| /0.95/ $base hundred {$=$$*100}); $hundreds = $hundred {$=$$} (/0.9/ [$and] ($tens | $base) {$+=$$}|$NULL);