From 01b11fde0bbd48b1d910b2720d1563a0a10a8e04 Mon Sep 17 00:00:00 2001 From: Greg Shuflin Date: Sat, 11 Sep 2021 20:14:59 -0700 Subject: [PATCH] Auto-declension improvements --- App.jsx | 12 ++++++++++-- saimiar_morphology.js | 34 +++++++++++++++++++++++++++------- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/App.jsx b/App.jsx index 2d8fbde..ffbf018 100644 --- a/App.jsx +++ b/App.jsx @@ -64,7 +64,15 @@ function formatMorphology(entry) { if (!decl) { return ''; } - return `Abs: ${decl.abs}, Erg: ${decl.erg}, Adp: ${decl.adp}`; + return ( + Abs: {decl.abs}, Erg: {decl.erg}, + Adp: {decl.adp}, + All: {decl.all}, + Loc: {decl.loc}, + Ell: {decl.ell}, + Inst: {decl.inst}, + Rel: {decl.rel} + ); } class Results extends Component { @@ -92,7 +100,7 @@ class Results extends Component { const results = this.props.searchResults; return(
- { results ? this.content() : "No search" } + { results ? this.content() : "No search" }
); } diff --git a/saimiar_morphology.js b/saimiar_morphology.js index e5d8767..9582949 100644 --- a/saimiar_morphology.js +++ b/saimiar_morphology.js @@ -24,10 +24,17 @@ function declineSaimiar(entry) { function vowelDeclension(sai) { const { root, ending } = rootEndingPair(sai); + const adpEnding = ending == "u" ? "ys" : `${ending}s`; + return { "abs": `${root}${ending}`, "erg": `${root}${ending}na`, - "adp": `${root}${ending}s`, + "adp": `${root}${adpEnding}`, + "all": `so${root}${adpEnding}`, + "loc": `${root}${ending}xa`, + "ell": `tlê${root}${adpEnding}`, + "inst": `${root}${ending}ŕa`, + "rel": `${root}${ending}źi` }; } @@ -35,17 +42,30 @@ function aiDeclension(sai) { const { root, ending } = rootEndingPair(sai); return { "abs": `${root}${ending}`, - "erg": `${root}${ending}na`, - "adp": `${root}${ending}s`, + "erg": `${root}iad`, + "adp": `${root}i`, + "all": `so${root}i`, + "loc": `${root}iath`, + "ell": `tlê${root}i`, + "inst": `${root}iar`, + "rel": `${root}iai` }; } function consonantDeclension(sai) { - const { root, ending } = rootEndingPair(sai); + const split = rootEndingPair(sai); + const root = split.ending == 'ø' ? split.root : sai; + const absFinal = split.ending == 'ø' ? 'ø' : ''; + return { - "abs": `${root}${ending}`, - "erg": `${root}${ending}na`, - "adp": `${root}${ending}s`, + "abs": `${root}${absFinal}`, + "erg": `${root}ad`, + "adp": `${root}e`, + "all": `so${root}i`, + "loc": `${root}ak`, + "ell": `tlê${root}i`, + "inst": `${root}ar`, + "rel": `${root}ai` }; }