UNPKG

@yar.ua/numerals

Version:

Number to text - Inflector for Ukrainian numerals

73 lines (72 loc) 2.41 kB
import { Case, GrammaticalNumber } from "../grammar.js"; export var Relation; (function (Relation) { Relation["num"] = "num"; Relation["nmod"] = "nmod"; Relation["amod"] = "amod"; Relation["nummod"] = "nummod"; Relation["nummod_govsg"] = "nummod:govsg"; Relation["nummod_govpc"] = "nummod:govpc"; Relation["nummod_govpl"] = "nummod:govpl"; })(Relation || (Relation = {})); export const RelationDef = { [Relation.num]: { modifier: (src, dst) => ({}), governing: (src, dst) => ({}), }, [Relation.amod]: { modifier: (src, dst) => src.form(), governing: (src, dst) => ({}), }, [Relation.nmod]: { modifier: (src, dst) => ({ ["case"]: Case.genitive, gender: src.form().gender, ["number"]: src.form()["number"], animacy: src.form().animacy, }), governing: (src, dst) => ({}), }, [Relation.nummod]: { modifier: (src, dst) => ({ ["case"]: src.form()["case"], gender: src.form().gender, ["number"]: src.form()["number"], animacy: src.form().animacy, }), governing: (src, dst) => ({}), }, [Relation.nummod_govsg]: { modifier: (src, dst) => ({ ["case"]: src.form()["case"], gender: src.form().gender, ["number"]: src.form()["number"], animacy: src.form().animacy, }), governing: (src, dst) => ({ ["number"]: GrammaticalNumber.singular }), }, [Relation.nummod_govpc]: { modifier: (src, dst) => ({ ["case"]: src.form()["case"], gender: src.form().gender, ["number"]: src.form()["number"], animacy: src.form().animacy, }), governing: (src, dst) => ({ ["number"]: GrammaticalNumber.plural }), }, [Relation.nummod_govpl]: { modifier: (src, dst) => ({ ["case"]: src.form()["case"], gender: src.form().gender, ["number"]: src.form()["number"], animacy: src.form().animacy, }), governing: (src, dst) => { const form = { ["number"]: GrammaticalNumber.plural }; if ([Case.nominative, Case.accusative].includes(dst.form()["case"])) { form["case"] = Case.genitive; } return form; }, }, };