File size: 15,058 Bytes
04b0dd9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
^0 zero
1$ u
1 un
2 dos
3 tres
4 quatre
5 cinc
6 sis
7 set
8 huit # [:ca-valencia:] [:ca-ES-valencia:]
8 vuit
9 nou
#10-19
10 deu
11 onze
12 dotze
13 tretze
14 catorze
15 quinze
16 setze
17 dèsset # [:ca-valencia:] [:ca-ES-valencia:]
17 desset # [:ca-balear:] [:ca-ES-balear:]
17 disset
18 devuit # [:ca-balear:] [:ca-ES-balear:]
18 díhuit # [:ca-valencia:] [:ca-ES-valencia:]
19 denou # [:ca-balear:] [:ca-ES-balear:]
19 dènou # [:ca-valencia:] [:ca-ES-valencia:]
1(\d) di$1
# 20-29
20 vint
2(\d) vint-i-$1
# 30, 40, 50, 60, 70, 80, 90
30 trenta
40 quaranta
50 cinquanta
60 seixanta
70 setanta
80 huitanta # [:ca-valencia:] [:ca-ES-valencia:]
80 vuitanta
90 noranta
(\d)(\d) $(\10)-$2

#100-199
100 cent
1(\d\d) cent $1
#200-999
(\d)00 $1-cents
(\d)(\d\d) $1-cents $2

#1000-1999
1000 mil
1(\d{3}) mil $1

#2000-999999
(\d{1,3})000 $1 mil
(\d{1,3})(\d{3}) $1 mil $2

# our limit is number <10^606
(\d{606,}) ""

# x-lions
# 10000000=10^6 -> un milió
1((0{6})+) un $(pre:$(count:\1))lió
1((\d{6})+) un $(pre:$(count:\1))lió $1
# 2000000=2·10^6 -> dos milions
(\d{1,6})((0{6})+) $1 $(pre:$(count:\2))lions
(\d{1,6})((\d{6})+) $1 $(pre:$(count:\2))lions $2


# count number of 10^6, usefull for x-lions, and x-liards prefixes.
count:.{0,5}? 0
count:.{6}.{0,5} 1
count:(.{12}).{0,5} 2
count:(.{18}).{0,5} 3
count:(.{24}).{0,5} 4
count:(.{30}).{0,5} 5
count:(.{36}).{0,5} 6
count:(.{42}).{0,5} 7
count:(.{48}).{0,5} 8
count:(.{54}).{0,5} 9
count:(.{60})(.{0,59}) 1|$(count:\2)
count:(.{120})(.{0,59}) 2|$(count:\2)
count:(.{180})(.{0,59}) 3|$(count:\2)
count:(.{240})(.{0,59}) 4|$(count:\2)
count:(.{300})(.{0,59}) 5|$(count:\2)
count:(.{360})(.{0,59}) 6|$(count:\2)
count:(.{420})(.{0,59}) 7|$(count:\2)
count:(.{480})(.{0,59}) 8|$(count:\2)
count:(.{540})(.{0,59}) 9|$(count:\2)
count:(.{600})(.{0,5}) 10|$(count:\2) # our limit is 10^606-1

# prefixes needed for x-lions and x-liards, up to 10^606-1
pre:1 mi
pre:2 bi
pre:3 tri
pre:4 quadri
pre:5 quinti
pre:6 sexti
pre:7 septi
pre:8 octi
pre:9 noni
pre:10 deci
pre:1(\d) $(pre2:\1)|deci
pre:(\d)0 $(pre3:\1)
pre:(\d)(\d) $(pre2:\2)|$(pre3:\1)
pre:100 centi

pre2:1 uno
pre2:2 duo
pre2:3 tre
pre2:4 quattour
pre2:5 quin
pre2:6 sex
pre2:7 septen
pre2:8 octo
pre2:9 novem

pre3:1 deci
pre3:2 viginti
pre3:3 triginti
pre3:4 quadraginti
pre3:5 quinquaginti
pre3:6 sexaginti
pre3:7 septuaginti
pre3:8 octoginti
pre3:9 nonoginti
pre3:10 centi

# negative number
[--](\d+) menys |$1

# decimals
"([^,]*\d)[.]((\d{3})+)([,][^,.]*)?" $(\1\2\4)
"([--]?\d+)([,]0*)?" $1
"([--]?\d+)[,](\d*)" $(\1·\2)
"([--]?\d+·0*)([^0]00?)0*" $1| |$2
"([--]?\d+·0*)([^0])" $1| |$2
"([--]?\d+·0*)([^0]\d)" $1| |$2
"([--]?\d+·0*)([^0]\d\d)" $1| |$2
"([--]?\d+·0*)([^0]\d\d)0*" $1| |$2

"([--]?\d+·0*)(([^0]|[^0]\d*[^0]))0*" $1| $(read:\2)
"([--]?\d+)·(\d*)(\d)" $(\1·\2)| |$3
"([--]?\d+)·" $1| coma

# used for decimal part
#read:(\d*[^0])0*$ $(read:\1)
read:(\d*[1-9])(00+)([1-9]\d*) $(read:\1)| |$(read:\2) |$(read:\3)
read:(\d$) $1
read:0(\d+) $(read:0)| |$(read:\1)
read:([1-9]\d) $1
read:([1-9]\d\d) $1
read:(\d\d\d) $1
read:(\d\d)((\d\d)+) $(read:\1)| |$(read:\2)
read:(\d\d)((\d\d)*)(\d\d\d) $(read:\1)| |$(read:\2)| |$(read:\4)


# convert masculine forms to feminine forms
# it can be run after: standard number conversion; and after ordinal, partitive functions.
## runned with feminine function.
f:(.*iliard)(.*) \1$(f:\2) # convert only <1,000,000,000
f:(.*ili)(.*) \1$(f:\2) # convert only <100,0000
f:(.*d)o(s[^èé]*) $(f:\1ue\2) # 2 -> dos -> dues
f:(.*cent)(s.*) $(f:\1e\2) # cents -> centes
f:(((.*)[^a-zèé]|))u$ \1una # vint-i-u -> vint-i-una
## runned after ord function.
f:(.*[^0-9])n$ \1na # segon -> segona
f:(.*[^0-9]r)$ \1a # tercer -> tercera
f:(.*[^0-9]r)t$ \1ta # quart -> quarta
f:(.*[^0-9])è$ \1ena # sisè -> sisena
f:(.*[^0-9])é$ \1ena # sisé -> sisena
## runned after ord2 function.
f:(.*[0-9])[nrtè]$ \1a # 2n -> 2a
## runnded after part function.
f:(.*ter)ç$ \1cera # terç -> tercera
f:(.*è[sc]i)m$ \1ma # milionèsim -> milionèsima
f:(.*[^0-9]i)g$ \1tja # mig -> mitja


no-centes:(.*)centes(.*) \1cents\2
no-centes:(.*) \1

# convert ordinal numbers (1st, 2nd, 3rd,... nth) to partitive (1, 1/2, 1/3, .... 1/n)
p:(.*)primer$ \1unitat
p:(.*)segon$ \1mig
p:(.*)tercer$ \1terç
p:(.*quart)$ \1
p:(.*)des[èé]$ \1dècim
p:((.*)cent)[èé]$ \1èsim
p:((.*)mil)[èé]$ \1·lèsim
p:((.*)ilion)[èé]$ \1èsim
p:((.*)iliard)[èé]$ \1èsim


# fallback, ignore 1-letter not-defined fuctions
.:(.*) \1

# runned after ordinal and partitive fuctions
pl:(.*[^\d][nrtnec])$ \1s
pl:(.*[^\d])ig$ \1igs # mig -> mitjos
pl:(.*[^\d])ja$ \1ges
pl:(.*[^\d])a$ \1es
pl:(.*[^\d])[èé]$ \1ens
# after ord2: 1r->1rs, 2n->2ns, 5è->5ns, ...
pl:(\d+[rnrt])$ \1s # 1r -> 1rs, 2n -> 2ns, 4t -> 4ts
pl:(\d+)[èé]$ \1ns # 5è -> 5ns
pl:(\d+)a$ \1es # 2a -> 2es
# after partitive
pl:([^[0-9]*[sç])$ \1os # dos -> dosos, terç > terços
pl:([^[0-9]*è[sc]im)$ \1s # dècim -> dècims
#fallback
pl:(.*) \1


# unit/subunit singular/plural
# million or greater part of the number name separated by "ili" pattern
# before masculine to feminine conversion
us(.).:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\7)| \2
up(.).:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\7)| \3
ud(.).:([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\7)| \4
ss.(.):([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\7)| \5
sp.(.):([^,]*),([^,]*),([^,]*),([^,]*),([^,]*),([^,]*) $(\1:\7)| \6

# "mm" means masculine unit and masculine subunit
# Usually used by Catalan users
CHF:(.+),(.+) $(\2mm: franc suís, francs suïssos, de francs suïssos, cèntim, cèntims, \1)
EUR:(.+),(.+) $(\2mm: euro, euros, d'euros, cèntim, cèntims, \1)
GBP:(.+),(.+) $(\2fm: lliura esterlina, lliures esterlines, de lliures esterlines, penic, penics, \1)
JPY:(.+),(.+) $(\2mm: ien, iens, de iens, sen, sen, \1)
USD:(.+),(.+) $(\2mm: dòlar dels EUA, dòlars dels EUA, de dòlars dels EUA, centau, centaus, \1)
# ACTIVE ISO 4217 CODES--A--
AED:(.+),(.+) $(\2mm: dírham dels Emirats Àrabs Units, dírhams dels Emirats Àrabs Units, de dírhams dels Emirats Àrabs Units, fils, fulús, \1)
AFN:(.+),(.+) $(\2mm: afgani, afganis, d'afganis, puli, puli, \1)
ALL:(.+),(.+) $(\2mm: lek, lekë, de lekë, qindarka, qindarka, \1)
AMD:(.+),(.+) $(\2mm: dram, drams, de drams, luma, luma, \1)
ANG:(.+),(.+) $(\2mm: florí de les Antilles Neerlandeses, florins de les Antilles Neerlandeses, de florins de les Antilles Neerlandeses, cèntim, cèntims, \1)
AOA:(.+),(.+) $(\2fm: kwanza, kwanzes, de kwanzes, cèntim cèntims, \1)
ARS:(.+),(.+) $(\2mm: peso argentí, pesos argentins, de pesos argentins, centau, centaus, \1)
AUD(.+),(.+) $(\2mm: dòlar australià, dòlars australians, de dòlars australians, centau, centaus, \1)
AWG:(.+),(.+) $(\2mm: florí d'Aruba, florins d'Aruba, de florins d'Aruba, cèntim, cèntims, \1)
AZN:(.+),(.+) $(\2mm: manat azerbaidjanès, manats azerbaidjanesos, de manats azerbaidjanesos, qəpik, qəpik, \1)
# ACTIVE ISO 4217 CODES --X--
#XAF Franc CFA emès pel BEAC (Banc dels Estats de l'Àfrica Central)
XAG:(.+),(.+) $(\2fm: unça de plata, unces de plata, d'unces de plata, cèntim, cèntims, \1)
XAU:(.+),(.+) $(\2fm: unça d'or, unces d'or, d'unces d'or, cèntim, cèntims, \1)
#XBA Unitat compensatòria europea (EURCO) (unitat per al mercat d'obligacions)
#XBB Unitat monetària europea (EMU-6) (unitat per al mercat d'obligacions)
#XBC Unitat de compte europea 9 (EUA-9) (unitat per al mercat d'obligacions)
#XBD Unitat de compte europea 17 (EUA-17) (unitat per al mercat d'obligacions)
#XCD Dòlar del Carib Oriental
#XDR Drets especials de gir (del Fons Monetari Internacional)
#XFU Franc UIC (divisa especial)
#XOF Franc CFA emès pel BCEAO (Banc Central dels Estats de l'Àfrica Occidental)
XPD:(.+),(.+) $(\2fm: unça de pal·ladi, unces de pal·ladi, d'unces de pal·ladi, cèntim, cèntims, \1)
#XPF Franc CFP (per als territoris francesos del Pacífic)
XPT:(.+),(.+) $(\2fm: unça de platí, unces de platí, d'unces de platí, cèntim, cèntims, \1)
#XTS Codi reservat per a proves
#XXX Sense moneda, sense transacció monetària
# OBSOLETE ISO 4217 CODES --Replaced by EUR--
ADF:(.+),(.+) $(\2mm: franc andorrà, francs andorrans, de francs andorrans, cèntim, cèntims, \1)
ADP:(.+),(.+) $(\2fm: pesseta andorrana, pessetes andorranes, de pessetes andorranes, cèntim, cèntims, \1)
ATS:(.+),(.+) $(\2mm: xíling austríac, xílings austríacs, de xílings austríacs, groschen, groschen, \1)
BEF:(.+),(.+) $(\2mm: franc belga, francs belgues, de francs belgues, cèntim, cèntims, \1)
CYP:(.+),(.+) $(\2mm: lliura xipriota, lliures xipriotes, de lliures xipriotes, cèntim, cèntims, \1)
DEM:(.+),(.+) $(\2mm: marc alemany, marcs alemanys, de marcs alemanys, penic, penics, \1)
ESP:(.+),(.+) $(\2fm: pesseta, pessetes, de pessetes, cèntim, cèntims, \1)
FIM:(.+),(.+) $(\2mm: marc finlandès, marcs finlandesos, de marcs finlandesos, penic, penics, \1)
FRF:(.+),(.+) $(\2mm: franc francès, francs francesos, de francs francesos, cèntim, cèntims, \1)
GRD:(.+),(.+) $(\2fm: dracma grega, dracmes gregues, leptó, leptà, \1)
IEP:(.+),(.+) $(\2fm: lliura irlandesa, lliures irlandeses, de lliures irlandeses, penic, penics, \1)
ITL:(.+),(.+) $(\2fm: lira italiana, lires italianes, de lires italianes, cèntim, cèntims, \1)
LUF:(.+),(.+) $(\2mm: franc luxemburguès, francs luxemburguesos, de francs luxemburguesos, cèntim, cèntims, \1)
MCF:(.+),(.+) $(\2mm: franc monegasc, francs monegascs, de francs monegascs, cèntim, cèntims, \1)
MTL:(.+),(.+) $(\2fm: lira maltesa, lires malteses, de lires malteses, cèntim, cèntims, \1)
NLG:(.+),(.+) $(\2mm: florí neerlandès, florins neerlandesos, de florins neerlandesos, cèntim, cèntims, \1)
PTE:(.+),(.+) $(\2mm: escut portuguès, escuts portuguesos, de escuts portuguesos, centau, centaus, \1)
SIT:(.+),(.+) $(\2mm: tolar eslovè, tolars eslovens, de tolars eslovens, stotin, stotinov, \1)
SKK:(.+),(.+) $(\2fm: corona eslovaca, corones eslovaques, de corones eslovaques, halier, halierov, \1)
SML:(.+),(.+) $(\2fm: lira de San Marino, lires de San Marino, de lires de San Marino, cèntim, cèntims, \1)
VAL:(.+),(.+) $(\2fm: lira vaticana, lires vaticanes, de lires vaticanes, cèntim, cèntims, \1)
XEU:(.+),(.+) $(\2mm: ecu, ecus, d'ecus, cèntim, cèntims, \1)

#crypto-currencies
XMR:(.+),(.+) $(\2mm: monero, moneros, de moneros, piconero, piconeros, \1) #TODO: 1,000,000,000,000 piconeros = 1 monero
XBT:(.+),(.+) $(\2mm: bitcoin, bitcoins, de bitcoins, satoshi, satoshis, \1) # TODO: 10,000,000 satoshis = 1,000 millibitcoin = 1 bitcoin

# unknow currency
[A-Z]{3}:.* ""


"([A-Z]{3}) ([-−]?1)([.,]00?)?"$(\1:|$2,us)
"([A-Z]{3}) ([-−]?\d+0{6,})([.,]00?)?"$(\1:|$2,ud)
"([A-Z]{3}) ([-−]?\d+)([.,]00?)?"$(\1:|$2,up)
"(([A-Z]{3}) [-−]?\d+)[.,](01)" $1 amb$(\2:un,ss)
"(([A-Z]{3}) [-−]?\d+)[.,](\d)" $1 amb$(\2:|$(\30),sp)
"(([A-Z]{3}) [-−]?\d+)[.,](\d\d)" $1 amb$(\2:|$3,sp)


# detects number followed by currency code
"([-−]?\d+)([.,]\d+)? ([A-Z]{3})" $(\3 \1\2)


# currency symbols
"€[ ]?([^ ]*)" $(EUR \1)
"£[ ]?([^ ]*)" $(GBP \1)
"\$[ ]?([^ ]*)" $(USD \1)
"¥[ ]?([^ ]*)" $(JPY \1)
"₩[ ]?([^ ]*)" $(KRW \1)
"₽[ ]?([^ ]*)" $(RUB \1)
"ɱ[ ]?([^ ]*)" $(XMR \1)
"₿[ ]?([^ ]*)" $(XBT \1)

"([^ ]+)[ ]?€$" $(EUR \1)
"([^ ]+)[ ]?£$" $(GBP \1)
"([^ ]+)[ ]?\$$" $(USD \1)
"([^ ]+)[ ]?¥$" $(JPY \1)
"([^ ]+)[ ]?₩$" $(KRW \1)
"([^ ]+)[ ]?₽$" $(RUB \1)
"([^ ]+)[ ]?ɱ$" $(XMR \1)
"([^ ]+)[ ]?₿$" $(XBT \1)

== feminine ==

1 una
(.*) $(f:|$1)

== masculine ==

1 un
(.*) $1

== ordinal(-masculine)? ==

([-−]\d+) ""
\d+[,.] ""
0 zeroé # [:ca-valencia:] [:ca-ES-valencia:]
0 zeroè
1 primer
2 segon
3 tercer
4 quart
(\d+)$ $(ordinal $2)
"un ([^ ]*(ilió|iliard))$" $(ordinal \2)
(.*li)ó$ \2oné # [:ca-valencia:] [:ca-ES-valencia:]
(.*li)ó$ \2onè
(.*(cent|mil|ion|iliard))s?$ \2é # [:ca-valencia:] [:ca-ES-valencia:]
(.*(cent|mil|ion|iliard))s?$ \2è 
"(.* )u$" \2uné # [:ca-valencia:] [:ca-ES-valencia:]
"(.* )u$" \2unè
(.*-)u$ \2uné # [:ca-valencia:] [:ca-ES-valencia:]
(.*-)u$ \2unè
"u" primer
"un" primer
"dos" segon
"tres" terç
"quatre" quart
(.*)cinc$ \2cinqué # [:ca-valencia:] [:ca-ES-valencia:]
(.*)cinc$ \2cinquè
(.*)dènou$ \2denové # [:ca-valencia:] [:ca-ES-valencia:]
(.*)nou$ \2nové # [:ca-valencia:] [:ca-ES-valencia:]
(.*)nou$ \2novè
(.*)deu$ \2desé # [:ca-valencia:] [:ca-ES-valencia:]
(.*)deu$ \2desè
(.*)dèsset$ \2desseté # [:ca-valencia:] [:ca-ES-valencia:]
(.*)díhuit$ \2dihuité # [:ca-valencia:] [:ca-ES-valencia:]
(.*)[ae]$ \2é # [:ca-valencia:] [:ca-ES-valencia:]
(.*)[ae]$ \2è
(.*\D)$ \2é # [:ca-valencia:] [:ca-ES-valencia:]
(.*\D)$ \2è

== ordinal-feminine ==
([-−]\d+) ""
\d+[,.] ""
(\d+)$ $(no-centes:$(f:$(ordinal \1)))

== ordinal-masculine-plural ==

([-−]?\d+) $(ordinal-masculine-plural $(ordinal \1))
primer primers
segon segons
(.*)è  \1ens
(.*)er   \1ers

== ordinal-feminine-plural ==

([-−]?\d+) $(ordinal-feminine-plural $(ordinal-feminine \1))
(.*)a  \1es

== ordinal-number(-masculine)? ==

#(\d+) $(o:\2)
1$ 1r
2$ 2n
3$ 3r
4$ 4t
(\d+)$ \2é # [:ca-valencia:] [:ca-ES-valencia:]
(\d+)$ \2è

== ordinal-number-feminine ==
(\d+)$ \1a

== partitive(-masculine)? ==
([--]?\d+) $(p:$(ordinal \2))

== partitive-feminine ==
([--]?\d+) $(no-centes:$(f:$(p:$(ordinal \1))))


== partitive(-masculine)?-plural ==
([--]?\d+) $(pl:$(p:$(ordinal $2)))

== partitive-feminine-plural ==
([--]?\d+) $(no-centes:$(pl:$(f:$(p:$(ordinal $1)))))

== fraction(-masculine)? ==
([--]?1)(/1)? $2
([--]?1)/2 mig
([--]?1)/([3-9]\d*) $(masculine \2)| $(partitive \3)
([--]?\d+)(/1)? $2
([--]?\d+)/([1-9]\d*) $2| $(partitive-plural \3)

== fraction-feminine ==
([--]?1)(/1)? $(f:$1)| unitat
([--]?1)/([1-9]\d*) $(f:$1)| $(partitive-feminine \2)| part
([--]?\d+)(/1)? $(f:$1)| unitats
([--]?\d+)/([1-9]\d*) $(f:$1)| $(partitive-feminine-plural \2)| parts

== collective ==
2 parell, parella o duo
3 tern, terna, tercet, trio, tríada o treset
4 qüern, tètrada, quartet, quarteta o quàdruple
5 quintern, quintet, cinquet o quíntuple
6 sextet, siset o sèxtuple
7 septet, setet o sèptuple
8 octet o òctuple
9 nònuple
10 dècada o dècuple
12 dotzena
100 centenar
144 grossa
1000 miler
10000 miríada

== years ==
2 bienni
3 trienni
4 quadrienni
5 quinquenni o lustre
6 sesenni
7 septenni
10 dècada o decenni
12 duodecenni
15 quindecenni
20 vintenni o vicenni
30 trentenni o tricenni
40 quarantenni
50 cinquantenni
60 seixantenni
70 setantenni
80 huitantenni [:ca-valencia:] [:ca-ES-valencia:]
80 vuitantenni
90 norantenni
100 segle o centenni
1000 mil·lenni

== multiplicative ==
2 doble o duple
3 triple
4 quàdruple
5 quíntuple
6 sèxtuple
7 sèptuple
8 òctuple
9 nònuple
10 dècuple
12 duodècuple
100 cèntuple
1/10 subdècuple
1/2 súbduple

== help ==

"" $(1)|, $(2), $(3)\n$(help feminine)$(help masculine)$(help ordinal-number-masculine)$(help ordinal-number-feminine)$(help ordinal-feminine)$(help ordinal-masculine)
(feminine|masculine|ordinal(-number)?(-feminine|-masculine)?) \1: $(\1 1), $(\1 2), $(\1 3)\n