From eac7a296bab497a390de63cde6c9ea58ba42ca90 Mon Sep 17 00:00:00 2001 From: Al Date: Thu, 4 Jun 2015 11:55:07 -0400 Subject: [PATCH] [numex] New numex data file including top 15 languages in OSM --- src/numex_data.c | 263 +++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 231 insertions(+), 32 deletions(-) diff --git a/src/numex_data.c b/src/numex_data.c index 0e553984..452b1d22 100644 --- a/src/numex_data.c +++ b/src/numex_data.c @@ -1,5 +1,146 @@ numex_rule_source_t numex_rules[] = { + {"zero", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 0LL}}, + {"un", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1LL}}, + {"una", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 1LL}}, + {"dos", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 2LL}}, + {"dues", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 2LL}}, + {"tres", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 3LL}}, + {"quatre", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 4LL}}, + {"cinc", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 5LL}}, + {"sis", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 6LL}}, + {"set", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 7LL}}, + {"vuit", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 8LL}}, + {"nou", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 9LL}}, + {"deu", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10LL}}, + {"onze", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 11LL}}, + {"dotze", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 12LL}}, + {"tretze", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 13LL}}, + {"catorze", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 14LL}}, + {"quinze", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 15LL}}, + {"setze", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 16LL}}, + {"disset", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 17LL}}, + {"divuit", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 18LL}}, + {"dinou", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 19LL}}, + {"vint", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 20LL}}, + {"trenta", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 30LL}}, + {"quaranta", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 40LL}}, + {"cinquanta", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 50LL}}, + {"seixanta", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 60LL}}, + {"setanta", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 70LL}}, + {"vuitanta", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 80LL}}, + {"noranta", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 90LL}}, + {"cent", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100LL}}, + {"cents", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100LL}}, + {"mil", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000LL}}, + {"milió", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000LL}}, + {"milio", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000LL}}, + {"milions", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000LL}}, + {"miliard", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000LL}}, + {"miliards", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000LL}}, + {"bilió", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000LL}}, + {"bilions", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000LL}}, + {"biliard", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000000LL}}, + {"biliards", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000000LL}}, + {"zeroè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 0LL}}, + {"zeroe", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 0LL}}, + {"primer", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1LL}}, + {"segon", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 2LL}}, + {"tercer", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 3LL}}, + {"quart", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 4LL}}, + {"cinquè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 5LL}}, + {"cinque", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 5LL}}, + {"sisè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 6LL}}, + {"sise", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 6LL}}, + {"setè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 7LL}}, + {"sete", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 7LL}}, + {"vuitè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 8LL}}, + {"vuite", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 8LL}}, + {"novè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 9LL}}, + {"nove", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 9LL}}, + {"desè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10LL}}, + {"dese", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10LL}}, + {"onzè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 11LL}}, + {"onze", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 11LL}}, + {"dotzè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 12LL}}, + {"dotze", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 12LL}}, + {"tretzè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 13LL}}, + {"tretze", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 13LL}}, + {"catorzè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 14LL}}, + {"catorze", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 14LL}}, + {"quinzè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 15LL}}, + {"quinze", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 15LL}}, + {"setzè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 16LL}}, + {"setze", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 16LL}}, + {"dissetè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 17LL}}, + {"dissete", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 17LL}}, + {"divuitè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 18LL}}, + {"divuite", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 18LL}}, + {"dinovè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 19LL}}, + {"dinove", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 19LL}}, + {"vintè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 20LL}}, + {"vinte", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 20LL}}, + {"trentè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 30LL}}, + {"trente", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 30LL}}, + {"quarantè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 40LL}}, + {"quarante", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 40LL}}, + {"cinquantè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 50LL}}, + {"cinquante", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 50LL}}, + {"seixantè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 60LL}}, + {"seixante", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 60LL}}, + {"setantè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 70LL}}, + {"setante", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 70LL}}, + {"vuitantè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 80LL}}, + {"vuitante", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 80LL}}, + {"norantè", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 90LL}}, + {"norante", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 90LL}}, + {"centè", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100LL}}, + {"cente", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100LL}}, + {"milè", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000LL}}, + {"mile", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000LL}}, + {"milionè", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000LL}}, + {"milione", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000LL}}, + {"miliardè", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000LL}}, + {"miliarde", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000LL}}, + {"bilionè", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000LL}}, + {"bilione", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000LL}}, + {"biliardè", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000000LL}}, + {"biliarde", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000000LL}}, + {"zerona", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 0LL}}, + {"primera", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 1LL}}, + {"segona", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 2LL}}, + {"tercera", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 3LL}}, + {"quarta", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 4LL}}, + {"cinquena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 5LL}}, + {"sisena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 6LL}}, + {"setena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 7LL}}, + {"vuitena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 8LL}}, + {"novena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 9LL}}, + {"desena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 10LL}}, + {"onzena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 11LL}}, + {"dotzena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 12LL}}, + {"tretzena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 13LL}}, + {"catorzena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 14LL}}, + {"quinzena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 15LL}}, + {"setzena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 16LL}}, + {"dissetena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 17LL}}, + {"divuitena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 18LL}}, + {"dinovena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 19LL}}, + {"vintena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 20LL}}, + {"trentena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 30LL}}, + {"quarantena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 40LL}}, + {"cinquantena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 50LL}}, + {"seixantena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 60LL}}, + {"setantena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 70LL}}, + {"vuitantena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 80LL}}, + {"norantena", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 90LL}}, + {"centena", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 100LL}}, + {"milena", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 1000LL}}, + {"milionena", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 1000000LL}}, + {"miliardena", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 1000000000LL}}, + {"bilionena", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 1000000000000LL}}, + {"biliardena", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_FEMININE, CATEGORY_DEFAULT, 10, 1000000000000000LL}}, + {"i", NUMEX_STOPWORD_RULE}, {"nul", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 0LL}}, {"en", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1LL}}, {"et", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NEUTER, CATEGORY_DEFAULT, 10, 1LL}}, @@ -918,23 +1059,7 @@ numex_rule_source_t numex_rules[] = { {"億", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100000000LL}}, {"兆", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000LL}}, {"京", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10000000000000000LL}}, - {"第〇", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 0LL}}, - {"第一", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1LL}}, - {"第二", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 2LL}}, - {"第三", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 3LL}}, - {"第四", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 4LL}}, - {"第五", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 5LL}}, - {"第六", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 6LL}}, - {"第七", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 7LL}}, - {"第八", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 8LL}}, - {"第九", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 9LL}}, - {"第十", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10LL}}, - {"第百", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100LL}}, - {"第千", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000LL}}, - {"第万", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10000LL}}, - {"第億", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100000000LL}}, - {"第兆", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000LL}}, - {"第京", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10000000000000000LL}}, + {"第", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_ORDINAL_INDICATOR_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 0LL}}, {"i", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1LL}}, {"ii", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 2LL}}, {"iii", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 3LL}}, @@ -1571,10 +1696,81 @@ numex_rule_source_t numex_rules[] = { {"miljardte", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000LL}}, {"biljonte", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000LL}}, {"biljardte", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_ORDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000000LL}}, - {"och", NUMEX_STOPWORD_RULE} + {"och", NUMEX_STOPWORD_RULE}, + {"〇", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 0LL}}, + {"零", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 0LL}}, + {"一", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1LL}}, + {"二", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 2LL}}, + {"两", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 2LL}}, + {"三", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 3LL}}, + {"四", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 4LL}}, + {"五", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 5LL}}, + {"六", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 6LL}}, + {"七", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 7LL}}, + {"八", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 8LL}}, + {"九", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_NONE, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 9LL}}, + {"十", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10LL}}, + {"百", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100LL}}, + {"百〇", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100LL}}, + {"百零", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100LL}}, + {"千", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000LL}}, + {"千〇", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000LL}}, + {"千零", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000LL}}, + {"万", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10000LL}}, + {"万〇", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10000LL}}, + {"万零", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10000LL}}, + {"亿", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100000000LL}}, + {"亿〇", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100000000LL}}, + {"亿零", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100000000LL}}, + {"兆", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000LL}}, + {"兆〇", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000LL}}, + {"兆零", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 1000000000000LL}}, + {"亿零", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 100000000LL}}, + {"京", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10000000000000000LL}}, + {"京〇", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10000000000000000LL}}, + {"京零", (numex_rule_t){NUMEX_LEFT_CONTEXT_MULTIPLY, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_CARDINAL_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 10000000000000000LL}}, + {"第", (numex_rule_t){NUMEX_LEFT_CONTEXT_NONE, NUMEX_RIGHT_CONTEXT_ADD, NUMEX_ORDINAL_INDICATOR_RULE, GENDER_NONE, CATEGORY_DEFAULT, 10, 0LL}} }; ordinal_indicator_t ordinal_indicator_rules[] = { + {"11", GENDER_NONE, CATEGORY_DEFAULT, "è"}, + {"11", GENDER_NONE, CATEGORY_DEFAULT, "e"}, + {"13", GENDER_NONE, CATEGORY_DEFAULT, "è"}, + {"13", GENDER_NONE, CATEGORY_DEFAULT, "e"}, + {"12", GENDER_NONE, CATEGORY_DEFAULT, "è"}, + {"12", GENDER_NONE, CATEGORY_DEFAULT, "e"}, + {"14", GENDER_NONE, CATEGORY_DEFAULT, "è"}, + {"14", GENDER_NONE, CATEGORY_DEFAULT, "e"}, + {"1", GENDER_NONE, CATEGORY_DEFAULT, "r"}, + {"1", GENDER_NONE, CATEGORY_DEFAULT, "er"}, + {"0", GENDER_NONE, CATEGORY_DEFAULT, "è"}, + {"0", GENDER_NONE, CATEGORY_DEFAULT, "e"}, + {"3", GENDER_NONE, CATEGORY_DEFAULT, "r"}, + {"3", GENDER_NONE, CATEGORY_DEFAULT, "er"}, + {"2", GENDER_NONE, CATEGORY_DEFAULT, "n"}, + {"5", GENDER_NONE, CATEGORY_DEFAULT, "è"}, + {"5", GENDER_NONE, CATEGORY_DEFAULT, "e"}, + {"4", GENDER_NONE, CATEGORY_DEFAULT, "t"}, + {"7", GENDER_NONE, CATEGORY_DEFAULT, "è"}, + {"7", GENDER_NONE, CATEGORY_DEFAULT, "e"}, + {"6", GENDER_NONE, CATEGORY_DEFAULT, "è"}, + {"6", GENDER_NONE, CATEGORY_DEFAULT, "e"}, + {"9", GENDER_NONE, CATEGORY_DEFAULT, "è"}, + {"9", GENDER_NONE, CATEGORY_DEFAULT, "e"}, + {"8", GENDER_NONE, CATEGORY_DEFAULT, "è"}, + {"8", GENDER_NONE, CATEGORY_DEFAULT, "e"}, + {"1", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, + {"1", GENDER_FEMININE, CATEGORY_DEFAULT, "ra"}, + {"1", GENDER_FEMININE, CATEGORY_DEFAULT, "era"}, + {"0", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, + {"3", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, + {"2", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, + {"5", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, + {"4", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, + {"7", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, + {"6", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, + {"9", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, + {"8", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, {"11", GENDER_NONE, CATEGORY_DEFAULT, "th"}, {"13", GENDER_NONE, CATEGORY_DEFAULT, "th"}, {"12", GENDER_NONE, CATEGORY_DEFAULT, "th"}, @@ -1606,6 +1802,7 @@ ordinal_indicator_t ordinal_indicator_rules[] = { {"8", GENDER_NONE, CATEGORY_DEFAULT, "o"}, {"1", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, {"1", GENDER_FEMININE, CATEGORY_DEFAULT, "ra"}, + {"1", GENDER_FEMININE, CATEGORY_DEFAULT, "era"}, {"0", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, {"3", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, {"2", GENDER_FEMININE, CATEGORY_DEFAULT, "a"}, @@ -1981,18 +2178,20 @@ ordinal_indicator_t ordinal_indicator_rules[] = { }; numex_language_source_t numex_languages[] = { - {"da", 0, 42, 0, 0}, - {"de", 42, 194, 0, 0}, - {"en", 236, 70, 0, 13}, - {"es", 306, 133, 13, 27}, - {"fi", 439, 107, 40, 19}, - {"fr", 546, 192, 59, 80}, - {"it", 738, 163, 139, 20}, - {"ja", 901, 34, 159, 0}, - {"la", 935, 31, 159, 0}, - {"nl", 966, 68, 159, 184}, - {"pl", 1034, 82, 343, 0}, - {"pt", 1116, 170, 343, 20}, - {"ru", 1286, 192, 363, 20}, - {"sv", 1478, 94, 383, 20} + {"ca", 0, 141, 0, 38}, + {"da", 141, 42, 38, 0}, + {"de", 183, 194, 38, 0}, + {"en", 377, 70, 38, 13}, + {"es", 447, 133, 51, 28}, + {"fi", 580, 107, 79, 19}, + {"fr", 687, 192, 98, 80}, + {"it", 879, 163, 178, 20}, + {"ja", 1042, 18, 198, 0}, + {"la", 1060, 31, 198, 0}, + {"nl", 1091, 68, 198, 184}, + {"pl", 1159, 82, 382, 0}, + {"pt", 1241, 170, 382, 20}, + {"ru", 1411, 192, 402, 20}, + {"sv", 1603, 94, 422, 20}, + {"zh", 1697, 33, 442, 0} };