blob: 49fd6d1a1b33e3fa1d391ae86983c4d98205579b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
require "lib/core.nom"
# Plurals
using:
<%endings> = (chain {x="es",c="es",s="es"} to "s")
<%plurals> = (chain {} to (: "\%\((<%endings>)->(%| -1|))"))
<%singulars> = (..)
chain {} to:
when:
* (((%| -2|) == "es") and (=lua"rawget(\(<%endings>), \(%| -3|))")):
%|1 - -3|
* (%| -1| == "s"):
%|1 - -2|
else: %
..do:
rule [the plural of %singular is %plural] =:
(<%plurals>)->%singular = %plural
(<%singulars>)->%plural = %singular
rule [singular %plural] =:
(<%singulars>)->%plural
rule [plural %singular] =:
(<%plurals>)->%singular
|