home *** CD-ROM | disk | FTP | other *** search
- [Space]
- "\n" "" ""
- "\r" "" ""
- "\t" "" ""
-
- "" "\n" ""
- "" "\r" ""
- "" "\t" ""
-
- "" "." ""
- "" "," ""
- "" "\\" ""
- "" ":" ""
- "" ";" ""
- "" "%" ""
- "" "?" ""
- "" "!" ""
-
- "\" " "" ""
- "" "\"" " " {E"\""}
- "" "\"" "" {O"\""}
-
- "' " "" ""
- "" "'" " " {E"'"}
- "" "'" "" {O"'"}
-
- "\"." "" " " {1}
- "\"." "" " " {!1}
-
- "\"?" "" " " {1}
- "\"?" "" " " {!1}
-
- "\"!" "" " " {1}
- "\"!" "" " " {!1}
-
- "'." "" " " {1}
- "'." "" " " {!1}
-
- "'?" "" " " {1}
- "'?" "" " " {!1}
-
- "'!" "" " " {1}
- "'!" "" " " {!1}
-
- ")." "" " " {1}
- ")." "" " " {!1}
-
- ")?" "" " " {1}
- ")?" "" " " {!1}
-
- ")!" "" " " {1}
- ")!" "" " " {!1}
-
- "* " "" ""
- "" "*" " " {E"*"}
- "" "*" "" {O"*"}
-
- "(" "" ""
- "A" ")" ""
-
- "[" "" ""
- "A" "]" ""
-
- "{" "" ""
- "A" "}" ""
-
- "<" "" ""
- "A" ">" ""
-
- .\period "" " " {1}
- .\period "" " " {!1}
-
- "?" "" " " {1}
- "?" "" " " {!1}
-
- "!" "" " " {1}
- "!" "" " " {!1}
-
-
- "" "/" ""
- "/A" "" ""
-
- "-" "-" ""
- "--" "" " "
- "" "--" " "
- "-A" "" ""
- "" "-" ""
-
-
- [Capital]
- .\period
- !\exclamation-point
- ?\question-mark
-
- Mr.
- Mrs.
- Ms.
- Dr.
- Mme.
-
- "\n"
- "\r"
- "\t"
-
- "\"\n"
- "\"\r"
- "\"\t"
-
- "\"."
- "\"?"
- "\"!"
- " \"."
- " \"?"
- " \"!"
- " \"."
- " \"?"
- " \"!"
-
- "\" ."
- "\" ?"
- "\" !"
- "\" ."
- "\" ?"
- "\" !"
-
- "'."
- "'?"
- "'!"
- " '."
- " '?"
- " '!"
- " '."
- " '?"
- " '!"
-
- "' ."
- "' ?"
- "' !"
- "' ."
- "' ?"
- "' !"
-
- "( ."
- "( ?"
- "( !"
- "( ."
- "( ?"
- "( !"
-
- ")?"
- ")!"
- ")."
- " )."
- " )?"
- " )!"
- " )."
- " )?"
- " )!"
-
-
- [Switch]
- 1= 1 "Spaces Between Sentences" "Places two spaces between sentences ending with a period, question mark, and exclamation point."
-
- [Rules]
- // Start
- <Start> = <Integer19>
-
- // Natural Numbers
- <Natural> = <Less1000000000000000Not>
- <Natural> = <Less1000000000000Not>
- <Natural> = <Less1000000000Not>
- <Natural> = <Less1000000Not>
- <Natural> = <Less1000Not>
- <Natural> = <Less100Not>
-
- // Natural Numbers, zero through 19 are written out whole
- <Natural19> = <Less1000000000000000Not>
- <Natural19> = <Less1000000000000Not>
- <Natural19> = <Less1000000000Not>
- <Natural19> = <Less1000000Not>
- <Natural19> = <Less1000Not>
- <Natural19> = <Less100Not19>
-
- // Integer, 0..19 not included
- <Integer19> = <Natural19>
- <Integer19> = <MinusNegative> "-" <Natural>
-
- // 1..9
- <1..9> = one "1"
- <1..9> = two "2"
- <1..9> = three "3"
- <1..9> = four "4"
- <1..9> = five "5"
- <1..9> = six "6"
- <1..9> = seven "7"
- <1..9> = eight "8"
- <1..9> = nine "9"
-
-
- // Zero through nine
- <0..9> = zero "0"
- <0..9> = oh "0"
- <0..9> = <1..9>
-
- // 10..19
- <10.19> = ten "10"
- <10.19> = eleven "11"
- <10.19> = twelve "12"
- <10.19> = thirteen "13"
- <10.19> = fourteen "14"
- <10.19> = fifteen "15"
- <10.19> = sixteen "16"
- <10.19> = seventeen "17"
- <10.19> = eighteen "18"
- <10.19> = nineteen "19"
-
- // 20..99
- <20.99> = twenty "20"
- <20.99> = twenty-one "21"
- <20.99> = twenty-two "22"
- <20.99> = twenty-three "23"
- <20.99> = twenty-four "24"
- <20.99> = twenty-five "25"
- <20.99> = twenty-six "26"
- <20.99> = twenty-seven "27"
- <20.99> = twenty-eight "28"
- <20.99> = twenty-nine "29"
- <20.99> = twenty "2" <1..9>
- <20.99> = thirty "30"
- <20.99> = thirty-one "31"
- <20.99> = thirty-two "32"
- <20.99> = thirty-three "33"
- <20.99> = thirty-four "34"
- <20.99> = thirty-five "35"
- <20.99> = thirty-six "36"
- <20.99> = thirty-seven "37"
- <20.99> = thirty-eight "38"
- <20.99> = thirty-nine "39"
- <20.99> = thirty "3" <1..9>
- <20.99> = forty "40"
- <20.99> = forty-one "41"
- <20.99> = forty-two "42"
- <20.99> = forty-three "43"
- <20.99> = forty-four "44"
- <20.99> = forty-five "45"
- <20.99> = forty-six "46"
- <20.99> = forty-seven "47"
- <20.99> = forty-eight "48"
- <20.99> = forty-nine "49"
- <20.99> = forty "4" <1..9>
- <20.99> = fifty "50"
- <20.99> = fifty-one "51"
- <20.99> = fifty-two "52"
- <20.99> = fifty-three "53"
- <20.99> = fifty-four "54"
- <20.99> = fifty-five "55"
- <20.99> = fifty-six "56"
- <20.99> = fifty-seven "57"
- <20.99> = fifty-eight "58"
- <20.99> = fifty-nine "59"
- <20.99> = fifty "5" <1..9>
- <20.99> = sixty "60"
- <20.99> = sixty-one "61"
- <20.99> = sixty-two "62"
- <20.99> = sixty-three "63"
- <20.99> = sixty-four "64"
- <20.99> = sixty-five "65"
- <20.99> = sixty-six "66"
- <20.99> = sixty-seven "67"
- <20.99> = sixty-eight "68"
- <20.99> = sixty-nine "69"
- <20.99> = sixty "6" <1..9>
- <20.99> = seventy "70"
- <20.99> = seventy-one "71"
- <20.99> = seventy-two "72"
- <20.99> = seventy-three "73"
- <20.99> = seventy-four "74"
- <20.99> = seventy-five "75"
- <20.99> = seventy-six "76"
- <20.99> = seventy-seven "77"
- <20.99> = seventy-eight "78"
- <20.99> = seventy-nine "79"
- <20.99> = seventy "7" <1..9>
- <20.99> = eighty "80"
- <20.99> = eighty-one "81"
- <20.99> = eighty-two "82"
- <20.99> = eighty-three "83"
- <20.99> = eighty-four "84"
- <20.99> = eighty-five "85"
- <20.99> = eighty-six "86"
- <20.99> = eighty-seven "87"
- <20.99> = eighty-eight "88"
- <20.99> = eighty-nine "89"
- <20.99> = eighty "8" <1..9>
- <20.99> = ninety "90"
- <20.99> = ninety-one "91"
- <20.99> = ninety-two "92"
- <20.99> = ninety-three "93"
- <20.99> = ninety-four "94"
- <20.99> = ninety-five "95"
- <20.99> = ninety-six "96"
- <20.99> = ninety-seven "97"
- <20.99> = ninety-eight "98"
- <20.99> = ninety-nine "99"
- <20.99> = ninety "9" <1..9>
-
- // Double digit
- <DoubleDigit> = <20.99>
- <DoubleDigit> = <10.19>
-
- // Three digit number
- <TripleDigit> = hundred "1" <Less100Pad>
- <TripleDigit> = <1..9> hundred [opt] and <Less100Pad>
- <TripleDigit> = <1..9> hundred "00"
-
- // Less that 100, not padded with zeros
- <Less100Not> = <1..9>
- <Less100Not> = <DoubleDigit>
- <Less100Not> = zero "0"
-
- // Less that 100, not padded with zeros, don't do 0..19
- <Less100Not19> = <20.99>
-
- // Less that 100, padded with zeros
- <Less100Pad> = "0" <1..9>
- <Less100Pad> = <DoubleDigit>
- <Less100Pad> = zero "00"
-
- // Less than 1000, not padded with zeros
- <Less1000Not> = <TripleDigit>
-
- // Less than 1000, padded with zeros
- //<Less1000Pad> = "000"
- <Less1000Pad> = "0" <Less100Pad>
- <Less1000Pad> = <TripleDigit>
-
- // Less than 1,000,000, not padded with zeros
- <Less1000000Not> = <1..9> thousand ",000"
- <Less1000000Not> = <1..9> thousand [opt] and "," <Less1000Pad>
- <Less1000000Not> = <DoubleDigit> thousand ",000"
- <Less1000000Not> = <DoubleDigit> thousand [opt] and "," <Less1000Pad>
- <Less1000000Not> = <TripleDigit> thousand ",000"
- <Less1000000Not> = <TripleDigit> thousand [opt] and "," <Less1000Pad>
-
- // Less than 1,000,000, padded with zeros
- <Less1000000Pad> = "000," <Less1000Pad>
- <Less1000000Pad> = thousand [opt] and "001," <Less1000Pad>
- <Less1000000Pad> = <Less1000Pad> thousand ",000"
- <Less1000000Pad> = <Less1000Pad> thousand [opt] and "," <Less1000Pad>
-
- // Less than 1,000,000,000, not padded with zeros
- // Disable cause revamp natural: <Less1000000000Not> = <Less1000000Not>
- // "million" by itself is not converted - <Less1000000000Not> = million "1,000,000"
- // "million" by itself is not converted - <Less1000000000Not> = million [opt] and "1," <Less1000000Pad>
- <Less1000000000Not> = <Less100Not> million ",000,000"
- <Less1000000000Not> = <Less100Not> million [opt] and "," <Less1000000Pad>
- <Less1000000000Not> = <Less1000Not> million ",000,000"
- <Less1000000000Not> = <Less1000Not> million [opt] and "," <Less1000000Pad>
-
- // Less than 1,000,000,000, padded with zeros
- <Less1000000000Pad> = "000," <Less1000000Pad>
- <Less1000000000Pad> = million [opt] and "001," <Less1000000Pad>
- <Less1000000000Pad> = <Less1000Pad> million ",000,000"
- <Less1000000000Pad> = <Less1000Pad> million [opt] and "," <Less1000000Pad>
-
- // Less than 1,000,000,000,000, not padded with zeros
- // Disable cause revamp natural: <Less1000000000000Not> = <Less1000000000Not>
- // "billion" by itself is not converted - <Less1000000000000Not> = billion "1,000,000,000"
- // "billion" by itself is not converted - <Less1000000000000Not> = billion [opt] and "1," <Less1000000000Pad>
- <Less1000000000000Not> = <Less100Not> billion ",000,000,000"
- <Less1000000000000Not> = <Less100Not> billion [opt] and "," <Less1000000000Pad>
- <Less1000000000000Not> = <Less1000Not> billion ",000,000,000"
- <Less1000000000000Not> = <Less1000Not> billion [opt] and "," <Less1000000000Pad>
-
- // Less than 1,000,000,000,000, padded with zeros
- <Less1000000000000Pad> = "000," <Less1000000000Pad>
- <Less1000000000000Pad> = billion [opt] and "001," <Less1000000000Pad>
- <Less1000000000000Pad> = <Less1000Pad> billion ",000,000,000"
- <Less1000000000000Pad> = <Less1000Pad> billion [opt] and "," <Less1000000000Pad>
-
- // Less than 1,000,000,000,000,000, not padded with zeros
- // Disable cause revamp natural: <Less1000000000000000Not> = <Less1000000000000Not>
- // "trillion" by itself is not converted - <Less1000000000000000Not> = trillion "1,000,000,000,000"
- // "trillion" by itself is not converted - <Less1000000000000000Not> = trillion [opt] and "1," <Less1000000000000Pad>
- <Less1000000000000000Not> = <Less100Not> trillion ",000,000,000,000"
- <Less1000000000000000Not> = <Less100Not> trillion [opt] and "," <Less1000000000000Pad>
- <Less1000000000000000Not> = <Less1000Not> trillion ",000,000,000,000"
- <Less1000000000000000Not> = <Less1000Not> trillion [opt] and "," <Less1000000000000Pad>
-
- // Less than 1,000,000,000,000,000, padded with zeros
- <Less1000000000000000Pad> = "000," <Less1000000000000Pad>
- <Less1000000000000000Pad> = trillion [opt] and "001," <Less1000000000000Pad>
- <Less1000000000000000Pad> = <Less1000Pad> trillion ",000,000,000,000"
- <Less1000000000000000Pad> = <Less1000Pad> trillion [opt] and "," <Less1000000000000Pad>
-
-