// ***************************************************************************
// *
// *   Copyright (C) 2004, International Business Machines
// *   Corporation and others.  All Rights Reserved.
// *
// ***************************************************************************
// 

eo {
    //------------------------------------------------------------
    // Rule Based Number Format Support
    //------------------------------------------------------------

// data from 'Esperanto-programita 1' courtesy of Markus Scherer

    SpelloutRules {
        "-x: minus >>;\n"
        "x.x: << komo >>;\n"
        "nulo; unu; du; tri; kvar; kvin; ses; sep; ok; na\u016d;\n"
        "10: dek[ >>];\n"
        "20: <<dek[ >>];\n"
        "100: cent[ >>];\n"
        "200: <<cent[ >>];\n"
        "1000: mil[ >>];\n"
        "2000: <<mil[ >>];\n"
        "10000: dekmil[ >>];\n"
        "11000>: << mil[ >>];\n"
        "1,000,000: miliono[ >>];\n"
        "2,000,000: << milionoj[ >>];\n"
        "1,000,000,000: miliardo[ >>];\n"
        "2,000,000,000: << miliardoj[ >>];\n"
        "1,000,000,000,000: biliono[ >>];\n"
        "2,000,000,000,000: << bilionoj[ >>];\n"
        "1,000,000,000,000,000: =#,##0=;\n"
    }
}
