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