From 22a168198b433ab7c8eb15f4e044fed13efd8bf8 Mon Sep 17 00:00:00 2001 From: Krasimir Angelov Date: Tue, 25 Jul 2023 19:38:43 +0200 Subject: [PATCH] support for measurement units --- src/abstract/Common.gf | 4 ++++ src/abstract/Noun.gf | 5 +++++ src/afrikaans/NounAfr.gf | 12 ++++++++++++ src/afrikaans/ParadigmsAfr.gf | 2 ++ src/bulgarian/NounBul.gf | 13 +++++++++++++ src/bulgarian/ParadigmsBul.gf | 3 +++ src/catalan/ParadigmsCat.gf | 2 +- src/chinese/ParadigmsChi.gf | 2 ++ src/common/CommonX.gf | 4 +++- src/dutch/NounDut.gf | 12 ++++++++++++ src/dutch/ParadigmsDut.gf | 2 ++ src/english/NounEng.gf | 10 ++++++++++ src/english/ParadigmsEng.gf | 2 ++ src/estonian/NounEst.gf | 12 ++++++++++++ src/estonian/ParadigmsEst.gf | 2 ++ src/finnish/NounFin.gf | 14 ++++++++++++++ src/finnish/ParadigmsFin.gf | 2 ++ src/french/ParadigmsFre.gf | 1 + src/german/NounGer.gf | 16 ++++++++++++++++ src/german/ParadigmsGer.gf | 2 ++ src/italian/ParadigmsIta.gf | 2 ++ src/korean/ParadigmsKor.gf | 2 ++ src/maltese/ParadigmsMlt.gf | 2 ++ src/polish/NounPol.gf | 14 ++++++++++++++ src/polish/ParadigmsPol.gf | 4 +++- src/portuguese/ParadigmsPor.gf | 2 ++ src/romance/NounRomance.gf | 12 ++++++++++++ src/romanian/NounRon.gf | 1 - src/romanian/ParadigmsRon.gf | 1 + src/russian/NounRus.gf | 12 ++++++++++++ src/russian/ParadigmsRus.gf | 3 +++ src/scandinavian/NounScand.gf | 12 ++++++++++++ src/slovenian/ParadigmsSlv.gf | 3 +++ src/somali/ParadigmsSom.gf | 2 ++ src/spanish/ParadigmsSpa.gf | 2 ++ src/swahili/ParadigmsSwa.gf | 1 + src/swedish/ParadigmsSwe.gf | 1 + src/thai/ParadigmsTha.gf | 1 + src/turkish/ParadigmsTur.gf | 3 +++ 39 files changed, 198 insertions(+), 4 deletions(-) diff --git a/src/abstract/Common.gf b/src/abstract/Common.gf index 3e852978e..c56f73bf8 100644 --- a/src/abstract/Common.gf +++ b/src/abstract/Common.gf @@ -44,4 +44,8 @@ abstract Common = { Pol ; -- polarity e.g. positive, negative Ant ; -- anteriority e.g. simultaneous, anterior +--2 Measures + + MU ; -- unit of measurement e.g. "km", "cm", "%" + } diff --git a/src/abstract/Noun.gf b/src/abstract/Noun.gf index e6298dbc4..ee4fc0cb7 100644 --- a/src/abstract/Noun.gf +++ b/src/abstract/Noun.gf @@ -156,4 +156,9 @@ abstract Noun = Cat ** { AdjDAP : DAP -> AP -> DAP ; -- the large (one) DetDAP : Det -> DAP ; -- this (or that) +--2 Quantities + + QuantityNP : Digits -> MU -> NP ; + QuantityFloatNP : Digits -> Digits -> MU -> NP ; + } diff --git a/src/afrikaans/NounAfr.gf b/src/afrikaans/NounAfr.gf index 147672be4..a1667f700 100644 --- a/src/afrikaans/NounAfr.gf +++ b/src/afrikaans/NounAfr.gf @@ -179,4 +179,16 @@ concrete NounAfr of Noun = CatAfr ** open ResAfr, Prelude in { isMod = cn.isMod } ; + QuantityNP n m = { + s = \\c => preOrPost m.isPre m.s (n.s ! NCard Neutr Nom) ; + a = agrP3 n.n ; + isPron = False + } ; + + QuantityFloatNP n1 n2 m = { + s = \\c => preOrPost m.isPre m.s (n1.s ! NCard Neutr Nom ++ BIND ++ "." ++ BIND ++ n1.s ! NCard Neutr Nom) ; + a = agrP3 Pl ; + isPron = False + } ; + } diff --git a/src/afrikaans/ParadigmsAfr.gf b/src/afrikaans/ParadigmsAfr.gf index 49f52b4c0..c7ae8b337 100644 --- a/src/afrikaans/ParadigmsAfr.gf +++ b/src/afrikaans/ParadigmsAfr.gf @@ -494,4 +494,6 @@ oper -- --} + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } diff --git a/src/bulgarian/NounBul.gf b/src/bulgarian/NounBul.gf index 99476be6f..bab085476 100644 --- a/src/bulgarian/NounBul.gf +++ b/src/bulgarian/NounBul.gf @@ -240,4 +240,17 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in { p = dap.p } ; DetDAP det = det ; + + QuantityNP n m = { + s = \\role => preOrPost m.isPre m.s (n.s ! NCard (CFMasc Indef NonHuman)) ; + gn = gennum (AMasc NonHuman) n.n ; + p = NounP3 Pos + } ; + + QuantityFloatNP n1 n2 m = { + s = \\role => preOrPost m.isPre m.s (n1.s ! NCard (CFMasc Indef NonHuman) ++ BIND ++ "." ++ BIND ++ n2.s ! NCard (CFMasc Indef NonHuman)) ; + gn = gennum (AMasc NonHuman) Pl ; + p = NounP3 Pos + } ; + } diff --git a/src/bulgarian/ParadigmsBul.gf b/src/bulgarian/ParadigmsBul.gf index 1c6d19ecd..474494106 100644 --- a/src/bulgarian/ParadigmsBul.gf +++ b/src/bulgarian/ParadigmsBul.gf @@ -2116,4 +2116,7 @@ oper adjAdv : A -> Str -> A = \a,adv -> a ** {adv = adv} ; + + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } diff --git a/src/catalan/ParadigmsCat.gf b/src/catalan/ParadigmsCat.gf index da1488720..eb6627655 100644 --- a/src/catalan/ParadigmsCat.gf +++ b/src/catalan/ParadigmsCat.gf @@ -553,6 +553,6 @@ oper mk2V2 : V -> Prep -> V2 ; dirV2 : V -> V2 ; - + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; } ; diff --git a/src/chinese/ParadigmsChi.gf b/src/chinese/ParadigmsChi.gf index a130bd08e..ec0568d08 100644 --- a/src/chinese/ParadigmsChi.gf +++ b/src/chinese/ParadigmsChi.gf @@ -215,6 +215,8 @@ oper = \s -> lin RP {s = table {True => [] ; False => word s}} ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + --. auxiliary oper diff --git a/src/common/CommonX.gf b/src/common/CommonX.gf index 3052a0649..bc1fd23b4 100644 --- a/src/common/CommonX.gf +++ b/src/common/CommonX.gf @@ -1,4 +1,4 @@ -concrete CommonX of Common = open (R = ParamX) in { +concrete CommonX of Common = open (R = ParamX), Prelude in { lincat Text = {s : Str} ; @@ -20,4 +20,6 @@ concrete CommonX of Common = open (R = ParamX) in { Ant = {s : Str ; a : R.Anteriority} ; Pol = {s : Str ; p : R.Polarity} ; + MU = {s : Str ; isPre : Bool} ; + } diff --git a/src/dutch/NounDut.gf b/src/dutch/NounDut.gf index 3abcab0e8..c8242b4ce 100644 --- a/src/dutch/NounDut.gf +++ b/src/dutch/NounDut.gf @@ -201,4 +201,16 @@ concrete NounDut of Noun = CatDut ** open ResDut, Prelude in { DetDAP det = det ; + QuantityNP n m = noMerge ** { + s = \\c => preOrPost m.isPre m.s (n.s ! NCard Utr Nom) ; + a = agrP3 n.n ; + isPron = False + } ; + + QuantityFloatNP n1 n2 m = noMerge ** { + s = \\role => preOrPost m.isPre m.s (n1.s ! NCard Utr Nom ++ BIND ++ "." ++ BIND ++ n2.s ! NCard Utr Nom) ; + a = agrP3 Pl ; + isPron = False + } ; + } diff --git a/src/dutch/ParadigmsDut.gf b/src/dutch/ParadigmsDut.gf index f5e3b84e9..a797b65bd 100644 --- a/src/dutch/ParadigmsDut.gf +++ b/src/dutch/ParadigmsDut.gf @@ -439,4 +439,6 @@ oper -- --} + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } diff --git a/src/english/NounEng.gf b/src/english/NounEng.gf index 2e0b03fe4..c95f9a85f 100644 --- a/src/english/NounEng.gf +++ b/src/english/NounEng.gf @@ -176,4 +176,14 @@ concrete NounEng of Noun = CatEng ** open MorphoEng, ResEng, Prelude in { DetDAP d = d ; + QuantityNP n m = { + s = \\c => preOrPost m.isPre m.s (n.s ! NCard ! Nom) ; + a = agrgP3 n.n Neutr + } ; + + QuantityFloatNP n1 n2 m = { + s = \\c => preOrPost m.isPre m.s (n1.s ! NCard ! Nom ++ BIND ++ "." ++ BIND ++ n2.s ! NCard ! Nom) ; + a = agrgP3 Pl Neutr + } ; + } diff --git a/src/english/ParadigmsEng.gf b/src/english/ParadigmsEng.gf index 01f73acfb..ff601155f 100644 --- a/src/english/ParadigmsEng.gf +++ b/src/english/ParadigmsEng.gf @@ -795,6 +795,8 @@ mkVoc s = lin Voc (ss s) ; mk2Conj : Str -> Str -> Number -> Conj = \x,y,n -> lin Conj (sd2 x y ** {n = n}) ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + ---- obsolete -- Comparison adjectives may two more forms. diff --git a/src/estonian/NounEst.gf b/src/estonian/NounEst.gf index fc1219e6f..68bff0c85 100644 --- a/src/estonian/NounEst.gf +++ b/src/estonian/NounEst.gf @@ -219,6 +219,18 @@ concrete NounEst of Noun = CatEst ** open ResEst, HjkEst, MorphoEst, Prelude in ApposCN cn np = cn ** {postmod = cn.postmod ++ linNP (NPCase Nom) np} ; --- luvun x + QuantityNP n m = emptyNP ** { + s = \\c => preOrPost m.isPre m.s (n.s ! NCard (NCase Sg Nom)) ; + a = agrP3 n.n ; + isPron = False + } ; + + QuantityFloatNP n1 n2 m = emptyNP ** { + s = \\role => preOrPost m.isPre m.s (n1.s ! NCard (NCase Sg Nom) ++ BIND ++ "." ++ BIND ++ n2.s ! NCard (NCase Sg Nom)) ; + a = agrP3 Pl ; + isPron = False + } ; + oper numN : NForm -> Number = \nf -> case nf of { NCase n _ => n diff --git a/src/estonian/ParadigmsEst.gf b/src/estonian/ParadigmsEst.gf index 8a2369b91..6d0b7620b 100644 --- a/src/estonian/ParadigmsEst.gf +++ b/src/estonian/ParadigmsEst.gf @@ -922,4 +922,6 @@ oper mkAV a = a ; mkA2V a p = mkA2 a p ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } ; diff --git a/src/finnish/NounFin.gf b/src/finnish/NounFin.gf index bbb9bf0d0..3aeb46d11 100644 --- a/src/finnish/NounFin.gf +++ b/src/finnish/NounFin.gf @@ -296,6 +296,20 @@ concrete NounFin of Noun = CatFin ** open ResFin, MorphoFin, StemFin, Prelude in DetDAP d = d ; + QuantityNP n m = { + s = \\c => preOrPost m.isPre m.s (n.s ! NCard (NCase Sg Nom)) ; + a = agrP3 n.n ; + isPron = False ; + isNeg = False + } ; + + QuantityFloatNP n1 n2 m = { + s = \\role => preOrPost m.isPre m.s (n1.s ! NCard (NCase Sg Nom) ++ BIND ++ "." ++ BIND ++ n2.s ! NCard (NCase Sg Nom)) ; + a = agrP3 Pl ; + isPron = False ; + isNeg = False + } ; + oper numN : NForm -> Number = \nf -> case nf of { NCase n _ => n ; diff --git a/src/finnish/ParadigmsFin.gf b/src/finnish/ParadigmsFin.gf index 5555b0155..53e921da2 100644 --- a/src/finnish/ParadigmsFin.gf +++ b/src/finnish/ParadigmsFin.gf @@ -1050,4 +1050,6 @@ mkVS = overload { mkAV v = v ** {lock_A = <>} ; --- mkA2V v p = mkA2 p ** {lock_A2 = <>} ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } ; diff --git a/src/french/ParadigmsFre.gf b/src/french/ParadigmsFre.gf index e4d97828f..c0ead4dc1 100644 --- a/src/french/ParadigmsFre.gf +++ b/src/french/ParadigmsFre.gf @@ -574,5 +574,6 @@ oper _ => VFalse -- prend-il } ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; } ; diff --git a/src/german/NounGer.gf b/src/german/NounGer.gf index a29cafbb9..8f4bcabc2 100644 --- a/src/german/NounGer.gf +++ b/src/german/NounGer.gf @@ -240,4 +240,20 @@ concrete NounGer of Noun = CatGer ** open ResGer, MorphoGer, Prelude in { DetDAP det = det ; + QuantityNP dig m = { + s = \\c => preOrPost m.isPre m.s (dig.s ! invNum) ; + a = agrP3 Pl ; + w = WLight ; + rc = "" ; + ext = "" ; + } ; + + QuantityFloatNP dig1 dig2 m = { + s = \\c => preOrPost m.isPre m.s (dig1.s ! invNum ++ BIND ++ "." ++ BIND ++ dig2.s ! invNum) ; + a = agrP3 Pl ; + w = WLight ; + rc = "" ; + ext = "" ; + } ; + } diff --git a/src/german/ParadigmsGer.gf b/src/german/ParadigmsGer.gf index 098e44a72..65a87d85e 100644 --- a/src/german/ParadigmsGer.gf +++ b/src/german/ParadigmsGer.gf @@ -771,4 +771,6 @@ mkV2 : overload { mkV2 : V -> Case -> V2 = \v,c -> prepV2 v (lin Prep {s,s2 = [] ; c = c ; isPrep = False}) ; } ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } diff --git a/src/italian/ParadigmsIta.gf b/src/italian/ParadigmsIta.gf index 78b09a54d..759f10ad6 100644 --- a/src/italian/ParadigmsIta.gf +++ b/src/italian/ParadigmsIta.gf @@ -558,4 +558,6 @@ oper mk2V2 : V -> Prep -> V2 ; dirV2 : V -> V2 ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } ; diff --git a/src/korean/ParadigmsKor.gf b/src/korean/ParadigmsKor.gf index aab5f2a59..e3ffd3340 100644 --- a/src/korean/ParadigmsKor.gf +++ b/src/korean/ParadigmsKor.gf @@ -198,4 +198,6 @@ oper } ; -------------------------------------------------------------------------------- + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } diff --git a/src/maltese/ParadigmsMlt.gf b/src/maltese/ParadigmsMlt.gf index 78afebc93..88d13a44e 100644 --- a/src/maltese/ParadigmsMlt.gf +++ b/src/maltese/ParadigmsMlt.gf @@ -1423,4 +1423,6 @@ resource ParadigmsMlt = open mkOrd : Str -> Ord = \x -> lin Ord { s = \\c => x }; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } diff --git a/src/polish/NounPol.gf b/src/polish/NounPol.gf index edeeed02b..f0138063e 100644 --- a/src/polish/NounPol.gf +++ b/src/polish/NounPol.gf @@ -210,4 +210,18 @@ concrete NounPol of Noun = CatPol ** open ResPol, Prelude, PronounMorphoPol, Mor DetDAP d = d ; + QuantityNP n m = { + nom,voc = preOrPost m.isPre m.s n.s; + dep = \\cc => preOrPost m.isPre m.s n.s ; + gn = OthersPl; + p = P3 + } ; + + QuantityFloatNP n1 n2 m = { + nom,voc = preOrPost m.isPre m.s (n1.s ++ BIND ++ "." ++ BIND ++ n2.s) ; + dep = \\cc => preOrPost m.isPre m.s (n1.s ++ BIND ++ "." ++ BIND ++ n2.s) ; + gn = OthersPl; + p = P3 + } ; + } diff --git a/src/polish/ParadigmsPol.gf b/src/polish/ParadigmsPol.gf index daea8a45c..062ff07d3 100644 --- a/src/polish/ParadigmsPol.gf +++ b/src/polish/ParadigmsPol.gf @@ -4,7 +4,7 @@ -- Inari Listenmaa, 2020 resource ParadigmsPol = open - CatPol, MorphoPol, ResPol, (NM=NounMorphoPol) + CatPol, MorphoPol, ResPol, (NM=NounMorphoPol), Prelude in { flags coding=utf8; @@ -383,4 +383,6 @@ _ => NM.mkNTable0171 sgnom -- Alternatives: mkNTable0000,mkNTable0001,mkNTable0002,mkNTable0003,mkNTable0010,mkNTable0015,mkNTable0028,mkNTable0037,mkNTable0043,mkNTable0044,mkNTable0053,mkNTable0064,mkNTable0067,mkNTable0075,mkNTable0091,mkNTable0096,mkNTable0111,mkNTable0117,mkNTable0118,mkNTable0129,mkNTable0131,mkNTable0168,mkNTable0171,mkNTable0173,mkNTable0176,mkNTable0181,mkNTable0191,mkNTable0197,mkNTable0213,mkNTable0243,mkNTable0244,mkNTable0247,mkNTable0248,mkNTable0271,mkNTable0281,mkNTable0282,mkNTable0286,mkNTable0304,mkNTable0309,mkNTable0312,mkNTable0315,mkNTable0324,mkNTable0333,mkNTable0338,mkNTable0348,mkNTable0350,mkNTable0365,mkNTable0373,mkNTable0375,mkNTable0428,mkNTable0444,mkNTable0467,mkNTable0495,mkNTable0497,mkNTable0500,mkNTable0503,mkNTable0514,mkNTable0516,mkNTable0518,mkNTable0519,mkNTable0523,mkNTable0539,mkNTable0542,mkNTable0550,mkNTable0552,mkNTable0570,mkNTable0578,mkNTable0583,mkNTable0589,mkNTable0648,mkNTable0662,mkNTable0691,mkNTable0696,mkNTable0717,mkNTable0773,mkNTable0803,mkNTable0826,mkNTable0828,mkNTable0859,mkNTable0868,mkNTable0869,mkNTable0944,mkNTable0964,mkNTable0965,mkNTable0966,mkNTable0970,mkNTable0981,mkNTable0991,mkNTable0995 } ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } diff --git a/src/portuguese/ParadigmsPor.gf b/src/portuguese/ParadigmsPor.gf index a3472920c..e46ad496e 100644 --- a/src/portuguese/ParadigmsPor.gf +++ b/src/portuguese/ParadigmsPor.gf @@ -564,5 +564,7 @@ oper reflVerboV : Verbum -> V = \ve -> reflV (lin V (verboV ve)) ; --% + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } ; diff --git a/src/romance/NounRomance.gf b/src/romance/NounRomance.gf index e70a5a204..56bc6776b 100644 --- a/src/romance/NounRomance.gf +++ b/src/romance/NounRomance.gf @@ -207,4 +207,16 @@ incomplete concrete NounRomance of Noun = DetDAP det = det ; + QuantityNP n m = heavyNPpol False { + s = \\c => preOrPost m.isPre m.s (n.s ! NCard Masc); + a = agrP3 Masc n.n ; + hasClit = False + } ; + + QuantityFloatNP n1 n2 m = heavyNPpol False { + s = \\c => preOrPost m.isPre m.s (n1.s ! NCard Masc ++ BIND ++ "." ++ BIND ++ n2.s ! NCard Masc) ; + a = agrP3 Masc Pl ; + hasClit = False + } ; + } diff --git a/src/romanian/NounRon.gf b/src/romanian/NounRon.gf index 67a59e840..13af4df64 100644 --- a/src/romanian/NounRon.gf +++ b/src/romanian/NounRon.gf @@ -308,5 +308,4 @@ in { isComp = True } ; - }; diff --git a/src/romanian/ParadigmsRon.gf b/src/romanian/ParadigmsRon.gf index ad1407dbe..186671d55 100644 --- a/src/romanian/ParadigmsRon.gf +++ b/src/romanian/ParadigmsRon.gf @@ -559,6 +559,7 @@ mkPronoun :(_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Number -> Person -> Pron =\eu, -- in this case we add a case to the complement, so that the right gender is chosen. + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; } ; diff --git a/src/russian/NounRus.gf b/src/russian/NounRus.gf index 2e00e4a1c..6ea0cd484 100644 --- a/src/russian/NounRus.gf +++ b/src/russian/NounRus.gf @@ -241,4 +241,16 @@ lin preferShort=PreferFull } ; + QuantityNP n m = { + s = \\cas => preOrPost m.isPre m.s n.s; + pron=False ; + a=Ag (gennum Masc (numSizeNumber n.size)) P3 + } ; + + QuantityFloatNP n1 n2 m = { + s = \\cas => preOrPost m.isPre m.s (n1.s ++ BIND ++ "." ++ BIND ++ n2.s) ; + pron=False ; + a=Ag GPl P3 + } ; + } diff --git a/src/russian/ParadigmsRus.gf b/src/russian/ParadigmsRus.gf index 922410169..044f8e49c 100644 --- a/src/russian/ParadigmsRus.gf +++ b/src/russian/ParadigmsRus.gf @@ -597,4 +597,7 @@ oper Second | SecondA => (Z.sg1StemFromVerb sg1) + "ит" ; _ => (Z.sg1StemFromVerb sg1) + "ет" } in (guessVerbForms asp Transitive inf sg1 sg3) ** {lock_V=<>} ; + + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } diff --git a/src/scandinavian/NounScand.gf b/src/scandinavian/NounScand.gf index ace0b2825..b6cfa775b 100644 --- a/src/scandinavian/NounScand.gf +++ b/src/scandinavian/NounScand.gf @@ -263,4 +263,16 @@ incomplete concrete NounScand of Noun = DetDAP d = d ; + QuantityNP n m = { + s = \\c => preOrPost m.isPre m.s (n.s ! NCard neutrum); + a = agrP3 Utr n.n ; + isPron = False + } ; + + QuantityFloatNP n1 n2 m = { + s = \\c => preOrPost m.isPre m.s (n1.s ! NCard neutrum ++ BIND ++ "." ++ BIND ++ n2.s ! NCard neutrum) ; + a = agrP3 Utr Pl ; + isPron = False + } ; + } diff --git a/src/slovenian/ParadigmsSlv.gf b/src/slovenian/ParadigmsSlv.gf index 6773b767e..db45033ee 100644 --- a/src/slovenian/ParadigmsSlv.gf +++ b/src/slovenian/ParadigmsSlv.gf @@ -850,4 +850,7 @@ oper vowel : pattern Str = #("a"|"e"|"i"|"o"|"u") ; consonant : pattern Str = #("b"|"c"|"d"|"f"|"g"|"h"|"j"|"k"|"l"|"m"|"n"|"p"|"r"|"s"|"t"|"v"|"x"|"z") ; + + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } diff --git a/src/somali/ParadigmsSom.gf b/src/somali/ParadigmsSom.gf index 490e582b6..deed7226a 100644 --- a/src/somali/ParadigmsSom.gf +++ b/src/somali/ParadigmsSom.gf @@ -286,4 +286,6 @@ oper } ; -------------------------------------------------------------------------------- + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } diff --git a/src/spanish/ParadigmsSpa.gf b/src/spanish/ParadigmsSpa.gf index a0080fb5d..7ecba539a 100644 --- a/src/spanish/ParadigmsSpa.gf +++ b/src/spanish/ParadigmsSpa.gf @@ -604,4 +604,6 @@ oper mk2V2 : V -> Prep -> V2 ; dirV2 : V -> V2 ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + } ; diff --git a/src/swahili/ParadigmsSwa.gf b/src/swahili/ParadigmsSwa.gf index e1b780de1..0e53099f3 100644 --- a/src/swahili/ParadigmsSwa.gf +++ b/src/swahili/ParadigmsSwa.gf @@ -431,6 +431,7 @@ mkN2 = overload { regPN : Str ->Gender -> PN ; nounPN : N -> PN ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; } diff --git a/src/swedish/ParadigmsSwe.gf b/src/swedish/ParadigmsSwe.gf index 5528442e8..4436915d2 100644 --- a/src/swedish/ParadigmsSwe.gf +++ b/src/swedish/ParadigmsSwe.gf @@ -821,5 +821,6 @@ oper dirV2 : V -> V2 ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; } ; diff --git a/src/thai/ParadigmsTha.gf b/src/thai/ParadigmsTha.gf index be48d67eb..a5d0cd9be 100644 --- a/src/thai/ParadigmsTha.gf +++ b/src/thai/ParadigmsTha.gf @@ -100,5 +100,6 @@ oper mkPrep : Str -> Prep = \s -> lin Prep (ss s) ; + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; } diff --git a/src/turkish/ParadigmsTur.gf b/src/turkish/ParadigmsTur.gf index 9b9ad2c8a..b8dd6ba8c 100644 --- a/src/turkish/ParadigmsTur.gf +++ b/src/turkish/ParadigmsTur.gf @@ -632,4 +632,7 @@ resource ParadigmsTur = open -- kal-, ol-, öl-, var-, ver-, vur-, san- ) | SgSylConReg ; -- one syllable ending with consonant, takes -er + oper + mkMU : Str -> MU = \s -> lin MU {s=s; isPre=False} ; + }