From e7a5daa17f105451e146e3dc6acc5778d4b7174f Mon Sep 17 00:00:00 2001 From: Aarne Ranta Date: Thu, 22 Sep 2022 11:31:58 +0200 Subject: [PATCH] Hrv: started adjectives --- src/croatian/ResHrv.gf | 89 ++++++++++++++++++-------------------- src/croatian/aw-needed.txt | 57 ++++++++++++++++++++++++ src/croatian/gold-test.txt | 56 ++++++++++++++++++++++++ src/croatian/testHrv.gfs | 2 + 4 files changed, 156 insertions(+), 48 deletions(-) create mode 100644 src/croatian/aw-needed.txt diff --git a/src/croatian/ResHrv.gf b/src/croatian/ResHrv.gf index 2e6c4c4bd..f534cab11 100644 --- a/src/croatian/ResHrv.gf +++ b/src/croatian/ResHrv.gf @@ -312,7 +312,6 @@ palatalize : Str -> Str = \s -> case s of { pgen = zen + "a" ; } ; -{- --------------------------- @@ -328,19 +327,17 @@ palatalize : Str -> Str = \s -> case s of { msnom, fsnom, nsnom : Str ; msgen, fsgen : Str ; -- nsgen = msgen msdat : Str ; -- nsdat = msdat - fsacc : Str ; -- amsacc = msgen, imsacc = msnom, nsacc = nsnom - msloc : Str ; -- fsloc = fsdat, nsloc = msloc - msins, fsins : Str ; -- nsins = msins, pdat = msins - - ampnom : Str ; -- *pnom = nsnom + fsdat : Str ; -- fsloc = fsdat + fsacc : Str ; -- + msloc : Str ; -- nsloc, fsins = msloc + msins : Str ; -- nsins, pdat, ploc, pins = msins + mpnom : Str ; -- mpvoc = mpnom pgen : Str ; -- - -- pdat = msins, ampacc = pgen, *pacc = nsnom, ploc = pgen - pins : Str ; } ; invarAdjForms : Str -> AdjForms = \s -> { - msnom, fsnom, nsnom, msgen, fsgen, msdat, fsacc, - msloc, msins, fsins, ampnom, pgen, pins = s ; + msnom, fsnom, nsnom, msgen, fsgen, msdat, + fsdat, fsacc, msloc, msins, fsins, mpnom, pgen = s ; } ; -- used in PositA but will also work in Compar and Superl by calling their record fields @@ -348,30 +345,29 @@ invarAdjForms : Str -> AdjForms = \s -> { adjFormsAdjective : AdjForms -> Adjective = \afs -> { s = \\g,n,c => case of { - - | => afs.msnom ; - => afs.fsnom ; - - | => afs.nsnom ; + + | => afs.msnom ; + + | => afs.fsnom ; + => afs.nsnom ; - | => afs.msgen ; - => afs.fsgen ; - => afs.msdat ; - - => afs.fsacc ; - => afs.msloc ; + | => afs.msgen ; + + | + | => afs.fsgen ; + => afs.msdat ; + => afs.fsdat ; + => afs.fsacc ; + + | => afs.msloc ; - | => afs.msins ; - => afs.fsins ; - - => afs.ampnom ; - - | => afs.pgen ; - => afs.pins + | => afs.msins ; + => afs.mpnom ; + => afs.pgen } - } ; +{- guessAdjForms : Str -> AdjForms = \s -> case s of { _ + "ý" => peknyA s ; @@ -381,28 +377,25 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> { _ + ("ov"|"in") => otcovA s ; _ => otcovA (""+s) ---- Predef.error ("no mkA for" ++ s) } ; +-} - --- hard consonant + y - - peknyA : Str -> AdjForms = \pekny -> - let pekn = init pekny - in { - msnom = pekn + "ý" ; - fsnom = pekn + "á" ; - nsnom = pekn + "é" ; - msgen = pekn + "ého" ; - fsgen = pekn + "ej" ; - msdat = pekn + "ému" ; - fsacc = pekn + "ú" ; - msloc = pekn + "om" ; - msins = pekn + "ým" ; - fsins = pekn + "ou" ; - ampnom = pekn + "í" ; - pgen = pekn + "ých" ; - pins = pekn + "ými" ; + velikA : Str -> AdjForms = \velik -> + { + msnom = velik ; + fsnom = velik + "a" ; + nsnom = velik + "o" ; + msgen = velik + "og" ; + fsgen = velik + "e" ; + msdat = velik + "omu" ; + fsdat = velik + "oj" ; + fsacc = velik + "u" ; + msloc = velik + "om" ; + msins = velik + "im" ; + mpnom = velik + "i" ; + pgen = velik + "ih" ; } ; +{- -- if the penultimate has accent, e.g. krásny, the last accent disappears krasnyA : Str -> AdjForms = \krasny -> let diff --git a/src/croatian/aw-needed.txt b/src/croatian/aw-needed.txt new file mode 100644 index 000000000..53c345af7 --- /dev/null +++ b/src/croatian/aw-needed.txt @@ -0,0 +1,57 @@ +AdverbEng.PrepNP +ConstructorsEng.ComplV2 +ConstructorsEng.DetArtCard +ConstructorsEng.the_Det +NounEng.AdvCN +NounEng.DetCN +NounEng.IndefArt +NounEng.UseN +NounEng.UsePN +ParadigmsEng.regN +ParadigmsEng.regPN +SentenceEng.PredVP +StructuralEng.have_V2 +StructuralEng.in_Prep +StructuralEng.possess_Prep +SymbolEng.IntPN +SymbolEng.SymbNum +SymbolicEng.mkSymb +VerbEng.CompAdv +VerbEng.CompNP +VerbEng.UseComp + +AdjectiveEng.AdjOrd +AdjectiveEng.PositA +ConjunctionEng.BaseNP +ConjunctionEng.BaseS +ConjunctionEng.ConjNP +ConjunctionEng.ConjS +ConjunctionEng.ConsNP +ConjunctionEng.ListNP, +ExtendEng.CardCNCard +IdiomEng.ExistNP +IdiomEng.ExistNPAdv +NounEng.AdNum +NounEng.AdjCN +NounEng.DetNP +NounEng.DetQuant +NounEng.NumSg +NounEng.OrdSuperl +NounEng.PossPron +NounEng.RelCN +NounEng.UsePron +ParadigmsEng.mkAdN +aradigmsEng.mkAdv +ParadigmsEng.mkOrd +ParadigmsEng.regA +PhraseEng.NoPConj +PhraseEng.NoVoc +PhraseEng.PhrUtt +PhraseEng.UttS +RelativeEng.RelVP +StructuralEng.and_Conj +StructuralEng.it_Pron +StructuralEng.somewhere_Adv; +StructuralEng.they_Pron +StructuralEng.with_Prep +VerbEng.CompAP diff --git a/src/croatian/gold-test.txt b/src/croatian/gold-test.txt index 00055963d..de5e795c9 100644 --- a/src/croatian/gold-test.txt +++ b/src/croatian/gold-test.txt @@ -328,3 +328,59 @@ s . Pl => Voc => žene s . Pl => Loc => ženama s . Pl => Ins => ženama g . Fem +s . Masc Anim => Sg => Nom => velik +s . Masc Anim => Sg => Gen => velikog +s . Masc Anim => Sg => Dat => velikomu +s . Masc Anim => Sg => Acc => velikog +s . Masc Anim => Sg => Voc => velik +s . Masc Anim => Sg => Loc => velikom +s . Masc Anim => Sg => Ins => velikim +s . Masc Anim => Pl => Nom => veliki +s . Masc Anim => Pl => Gen => velikih +s . Masc Anim => Pl => Dat => velikim +s . Masc Anim => Pl => Acc => velike +s . Masc Anim => Pl => Voc => veliki +s . Masc Anim => Pl => Loc => velikim +s . Masc Anim => Pl => Ins => velikim +s . Masc Inanim => Sg => Nom => velik +s . Masc Inanim => Sg => Gen => velikog +s . Masc Inanim => Sg => Dat => velikomu +s . Masc Inanim => Sg => Acc => velik +s . Masc Inanim => Sg => Voc => velik +s . Masc Inanim => Sg => Loc => velikom +s . Masc Inanim => Sg => Ins => velikim +s . Masc Inanim => Pl => Nom => veliki +s . Masc Inanim => Pl => Gen => velikih +s . Masc Inanim => Pl => Dat => velikim +s . Masc Inanim => Pl => Acc => velike +s . Masc Inanim => Pl => Voc => veliki +s . Masc Inanim => Pl => Loc => velikim +s . Masc Inanim => Pl => Ins => velikim +s . Fem => Sg => Nom => velika +s . Fem => Sg => Gen => velike +s . Fem => Sg => Dat => velikoj +s . Fem => Sg => Acc => veliku +s . Fem => Sg => Voc => velika +s . Fem => Sg => Loc => velikoj +s . Fem => Sg => Ins => velikom +s . Fem => Pl => Nom => velike +s . Fem => Pl => Gen => velikih +s . Fem => Pl => Dat => velikim +s . Fem => Pl => Acc => velike +s . Fem => Pl => Voc => velike +s . Fem => Pl => Loc => velikim +s . Fem => Pl => Ins => velikim +s . Neutr => Sg => Nom => veliko +s . Neutr => Sg => Gen => velikog +s . Neutr => Sg => Dat => velikomu +s . Neutr => Sg => Acc => veliko +s . Neutr => Sg => Voc => veliko +s . Neutr => Sg => Loc => velikom +s . Neutr => Sg => Ins => velikim +s . Neutr => Pl => Nom => velika +s . Neutr => Pl => Gen => velikih +s . Neutr => Pl => Dat => velikim +s . Neutr => Pl => Acc => velika +s . Neutr => Pl => Voc => velika +s . Neutr => Pl => Loc => velikim +s . Neutr => Pl => Ins => velikim diff --git a/src/croatian/testHrv.gfs b/src/croatian/testHrv.gfs index 481a657f1..de43042f0 100644 --- a/src/croatian/testHrv.gfs +++ b/src/croatian/testHrv.gfs @@ -23,3 +23,5 @@ cc -table -unqual nounFormsNoun (poljeN "polje") neuter cc -table -unqual nounFormsNoun (zenaN "žena") feminine +cc -table -unqual adjFormsAdjective (velikA "velik") +