uk.sor 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240
  1. ^0 нуль
  2. 1 один
  3. 2 два
  4. 3 три
  5. 4 чотири
  6. 5$ пʼять
  7. 5 пʼят
  8. 6$ шість
  9. 6 шіст
  10. 7 сім
  11. 8 вісім
  12. 9$ девʼять
  13. 9 девʼят
  14. 10 десять
  15. 11 одинадцять
  16. 12 дванадцять
  17. 13 тринадцять
  18. 14 чотирнадцять
  19. 15 пʼятнадцять
  20. 16 шістнадцять
  21. 17 сімнадцять
  22. 18 вісімнадцять
  23. 19 девʼятнадцять
  24. ([23])(\d) $1|дцять[ $2]
  25. 4(\d) сорок[ $1]
  26. 9(\d) девʼяносто[ $1]
  27. (\d)(\d) $1десят[ $2]
  28. 1(\d\d) сто[ $1]
  29. 2(\d\d) двісті[ $1]
  30. ([34])(\d\d) $1ста[ $2]
  31. (\d)(\d\d) $1сот[ $2]
  32. (1|\d?[02-9]1)(\d{3}) $(f:$1) тисяча[ $2]
  33. ([234]|\d?[02-9][234])(\d{3}) $(f:$1) тисячі[ $2]
  34. (\d{1,3})(\d{3}) $1| тисяч[ $2]
  35. (1|\d?[02-9]1)(\d{6}) $1 мільйон[ $2]
  36. ([234]|\d?[02-9][234])(\d{6}) $1 мільйона[ $2]
  37. (\d{1,3})(\d{6}) $1| мільйонів[ $2]
  38. (1|\d?[02-9]1)(\d{9}) $1 мільярд[ $2]
  39. ([234]|\d?[02-9][234])(\d{9}) $1 мільярда[ $2]
  40. (\d{1,3})(\d{9}) $1| мільярдів[ $2]
  41. (1|\d?[02-9]1)(\d{12}) $1 трильйон[ $2]
  42. ([234]|\d?[02-9][234])(\d{12}) $1 трильйона[ $2]
  43. (\d{1,3})(\d{12}) $1| трильйонів[ $2]
  44. (1|\d?[02-9]1)(\d{15}) $1 квадрильйон[ $2]
  45. ([234]|\d?[02-9][234])(\d{15}) $1 квадрильйона[ $2]
  46. (\d{1,3})(\d{15}) $1| квадрильйонів[ $2]
  47. (1|\d?[02-9]1)(\d{18}) $1 квінтильйон[ $2]
  48. ([234]|\d?[02-9][234])(\d{18}) $1 квінтильйона[ $2]
  49. (\d{1,3})(\d{18}) $1| квінтильйонів[ $2]
  50. (1|\d?[02-9]1)(\d{21}) $1 секстильйон[ $2]
  51. ([234]|\d?[02-9][234])(\d{21}) $1 секстильйона[ $2]
  52. (\d{1,3})(\d{21}) $1| секстильйонів[ $2]
  53. (1|\d?[02-9]1)(\d{24}) $1 септильйон[ $2]
  54. ([234]|\d?[02-9][234])(\d{24}) $1 септильйона[ $2]
  55. (\d{1,3})(\d{24}) $1| септильйонів[ $2]
  56. (1|\d?[02-9]1)(\d{27}) $1 октильйон[ $2]
  57. ([234]|\d?[02-9][234])(\d{27}) $1 октильйона[ $2]
  58. (\d{1,3})(\d{27}) $1| октильйонів[ $2]
  59. (1|\d?[02-9]1)(\d{30}) $1 нонільйон[ $2]
  60. ([234]|\d?[02-9][234])(\d{30}) $1 нонільйона[ $2]
  61. (\d{1,3})(\d{30}) $1| нонільйонів[ $2]
  62. (1|\d?[02-9]1)(\d{33}) $1 децильйон[ $2]
  63. ([234]|\d?[02-9][234])(\d{33}) $1 децильйона[ $2]
  64. (\d{1,3})(\d{33}) $1| децильйонів[ $2]
  65. (1|\d?[02-9]1)(\d{36}) $1 ундецильйон[ $2]
  66. ([234]|\d?[02-9][234])(\d{36}) $1 ундецильйона[ $2]
  67. (\d{1,3})(\d{36}) $1| ундецильйонів[ $2]
  68. (1|\d?[02-9]1)(\d{39}) $1 дуодецильйон[ $2]
  69. ([234]|\d?[02-9][234])(\d{39}) $1 дуодецильйона[ $2]
  70. (\d{1,3})(\d{39}) $1| дуодецильйонів[ $2]
  71. (1|\d?[02-9]1)(\d{42}) $1 тредецильйон[ $2]
  72. ([234]|\d?[02-9][234])(\d{42}) $1 тредецильйона[ $2]
  73. (\d{1,3})(\d{42}) $1| тредецильйонів[ $2]
  74. # negative numbers
  75. [-−]1 мінус один
  76. [-−](\d+) мінус |$1
  77. # decimals
  78. "([-−]?)[.,](\d+)" $(\10.\2)
  79. "[-−]1[.,]" мінус одна ціла
  80. "([-−]?\d+[02-9]1|1)[.,]" $(f:|$1) ціла
  81. "([-−]?\d+)[.,]" $(f:|$1) цілих
  82. "([-−]?\d+[.,])1" $1| й одна десята
  83. "([-−]?\d+[.,])(\d)" $1| й $(f:|$2)| десятих
  84. "([-−]?\d+[.,])([02-9]1)" $1| й $(f:|$2) сота
  85. "([-−]?\d+[.,])(\d\d)" $1| й $(f:|$2)| сотих
  86. "([-−]?\d+[.,])(\d[02-9]1)" $1| й $(f:|$2) тисячна
  87. "([-−]?\d+[.,])(\d{3})" $1| й $(f:|$2)| тисячних
  88. "([-−]?\d+[.,])(\d)(\d)(\d)(\d)" $1| |$2 |$3 |$4 |$5
  89. "([-−]?\d+[.,]\d*)(\d)" $1| |$2
  90. # female conversion
  91. f:(.*)один \1одна
  92. f:(.*)два \1дві
  93. f:(.*) \1
  94. # neuter conversion
  95. n:(.*)один \1одне
  96. n:(.*) \1
  97. # possessive (1-999) - used in ordinals
  98. "pos:(.* )?од(ин|на) ?" [$(pos:\1)]одного
  99. "pos:(.* )?дв[аі] ?" [$(pos:\1)]двох
  100. "pos:(.* )?три ?" [$(pos:\1)]трьох
  101. "pos:(.* )?чотири ?" [$(pos:\1)]чотирьох
  102. "pos:(.* )?вісім ?" [$(pos:\1)]восьми
  103. "pos:(.* )?([а-я]+)ь ?" [$(pos:\1)]\2и
  104. "pos:(.* )?сорок ?" [$(pos:\1)]сорока
  105. "pos:(.* )?([а-я]+)десят ?" [$(pos:\1)]\2десяти
  106. "pos:(.* )?([а-я]*)сто ?" [$(pos:\1)]\2ста
  107. "pos:(.*)двісті ?" \1двохсот
  108. "pos:(.*)иста ?" \1ьохсот
  109. "pos:(.*)ісімсот ?" \1осьмисот
  110. "pos:(.*[^и])сот ?" \1исот
  111. pos:(.*) \1
  112. # currency
  113. # unit/subunit
  114. us:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \1
  115. up:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \2
  116. ug:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \3
  117. ss:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \4
  118. sp:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \5
  119. sg:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) \6
  120. EUR:(\D+) $(\1: євро, євро, євро, цент, цента, центів)
  121. GBP:(\D+) $(\1: фунт стерлінгів, фунта стерлінгів, фунтів стерлінгів, пенні, пенса, пенсів)
  122. RUB:(\D+) $(\1: рубль, рубля, рублів, копійка, копійки, копійок)
  123. UAH:(\D+) $(\1: гривня, гривні, гривень, копійка, копійки, копійок)
  124. USD:(\D+) $(\1: долар США, долара США, доларів США, цент, цента, центів)
  125. "(UAH) ([-−]?1)([.,]00?)?" $(f:$2)|$(\1:us)
  126. "(UAH) ([-−]?\d*[02-9]1)([.,]00?)?" $(f:$2)|$(\1:us)
  127. "(UAH) ([-−]?[234])([.,]00?)?" $(f:$2)|$(\1:up)
  128. "(UAH) ([-−]?\d*[02-9][234])([.,]00?)?" $(f:$2)|$(\1:up)
  129. "(UAH) ([-−]?[0])([.,]0?)?" $2$(\1:ug)
  130. "(UAH) ([-−]?\d+)([.,]00?)?" $(f:$2)|$(\1:ug)
  131. "([A-Z]{3}) ([-−]?1)([.,]00?)?" $2|$(\1:us)
  132. "([A-Z]{3}) ([-−]?\d*[02-9]1)([.,]00?)?" $2|$(\1:us)
  133. "([A-Z]{3}) ([-−]?[234])([.,]00?)?" $2|$(\1:up)
  134. "([A-Z]{3}) ([-−]?\d*[02-9][234])([.,]00?)?" $2|$(\1:up)
  135. "([A-Z]{3}) ([-−]?\d+)([.,]00?)?" $2|$(\1:ug)
  136. "((RUB) [-−]?\d+)[.,]([02-9])1" $1 [$(\30) ]одна$(\2:ss)
  137. "((RUB) [-−]?\d+)[.,]([02-9])2" $1 [$(\30) ]двi$(\2:sp)
  138. "((UAH) [-−]?\d+)[.,]([02-9])1" $1 [$(\30) ]одна$(\2:ss)
  139. "((UAH) [-−]?\d+)[.,]([02-9])2" $1 [$(\30) ]двi$(\2:sp)
  140. "(([A-Z]{3}) [-−]?\d+)[.,](01)" $1 |$(1)$(\2:ss)
  141. "((EUR|GBP|USD) [-−]?\d+)[.,]([02-9]1)" $1 $3|$(\2:ss)
  142. "((EUR|GBP|USD) [-−]?\d+)[.,]([02-9]2)" $1 $3|$(\2:sp)
  143. "(([A-Z]{3}) [-−]?\d+)[.,]([02-9][234])" $1 |$3$(\2:sp)
  144. "(([A-Z]{3}) [-−]?\d+)[.,](\d)" $1 |$(\30)$(\2:sg)
  145. "(([A-Z]{3}) [-−]?\d+)[.,](\d\d)" $1 |$3$(\2:sg)
  146. == cardinal(-masculine)? ==
  147. ([-−]?[0-9]+) $2
  148. == cardinal-feminine ==
  149. 0 нуль
  150. ([-−]?[0-9]+) $(f:$1)
  151. == cardinal-neuter ==
  152. 0 нуль
  153. ([-−]?[0-9]+) $(n:$1)
  154. == ordinal-feminine ==
  155. 0 нульова
  156. ([-−]?\d+) $(ordinal-feminine |$1)
  157. (.*)один \1перша
  158. (.*)два \1друга
  159. (.*)три \1третя
  160. (.*)чотири \1четверта
  161. (.*)шість \1шоста
  162. (.*)ть \1та
  163. (.*)вісім \1восьма
  164. (.*)сім \1сьома
  165. (.*)к \1кова
  166. (.*)осто \1оста
  167. (.*)сто \1сота
  168. (.*)двісті \1двохсота
  169. (.*)иста \1ьохсота
  170. (.*)шістсот \2шестисота
  171. (.*)вісімсот \1восьмисота
  172. (.*)сімсот \2семисота
  173. (.*)сот \1исота
  174. "одна тисяча" тисячна
  175. "(.* )тисяч[аі]?" $(pos:\1)тисячна
  176. "один (\w+ль\w+)" \1на
  177. "(.* )([а-я]+ль[а-я]+)(а|ов)" $(pos:\1)\2на
  178. "(.* )([а-я]+ль[а-я]+)" $(pos:\1)\2на
  179. (.*) \1а
  180. == ordinal-neuter ==
  181. ([-−]?\d+) $(ordinal-neuter |$(ordinal-feminine \1))
  182. (.*)а \1е
  183. (.*)я \1є
  184. (.*) \1
  185. == ordinal(-masculine)? ==
  186. ([-−]?\d+) $(ordinal-masculine |$(ordinal-feminine \2))
  187. (.*)а \2ий
  188. (.*)я \2ій
  189. (.*) \2
  190. == ordinal-number-feminine ==
  191. (\d+) \1-$(ordinal-number-neuter |$(ordinal-feminine \1))
  192. == ordinal-number-neuter ==
  193. (\d+) \1-$(ordinal-number-neuter |$(ordinal-neuter \1))
  194. # use last two letters to get a consonant
  195. .*(..) \1
  196. == ordinal-number(-masculine)? ==
  197. (\d+) \2-й
  198. == help ==
  199. "" |$(1)|, |$(2)|, |$(3)|\n$(help cardinal-feminine)$(help cardinal-masculine)$(help cardinal-neuter)$(help ordinal-feminine)$(help ordinal-masculine)$(help ordinal-neuter)$(help ordinal-number-feminine)$(help ordinal-number-masculine)$(help ordinal-number-neuter)currency \(наприклад, UAH\): $(UAH 2.5)
  200. (.*) \1: |$(\1 1)|, |$(\1 2)|, |$(\1 3)|\n