diff --git a/src/czech/ParadigmsCze.gf b/src/czech/ParadigmsCze.gf index a8cb96789..e6e60582f 100644 --- a/src/czech/ParadigmsCze.gf +++ b/src/czech/ParadigmsCze.gf @@ -92,13 +92,7 @@ oper mkA = overload { mkA : Str -> A - = \s -> lin A (case s of { - _ + "ý" => mladyAdjForms s ; - _ + "í" => jarniAdjForms s ; - _ + "ův" => otcuvAdjForms s ; - _ + "in" => matcinAdjForms s ; - _ => matcinAdjForms ("??" + s) -- Predef.error ("no mkA for" ++ s) - }) ; + = \s -> lin A (guessAdjForms s) ; } ; mladyA : Str -> A @@ -110,6 +104,9 @@ oper matcinA : Str -> A = \s -> lin A (matcinAdjForms s) ; + invarA : Str -> A + = \s -> lin A (invarAdjForms s) ; + mkA2 : A -> Prep -> A2 = \a,p -> lin A2 (a ** {c = p}) ; diff --git a/src/czech/ResCze.gf b/src/czech/ResCze.gf index 3b77e73df..df92c24c0 100644 --- a/src/czech/ResCze.gf +++ b/src/czech/ResCze.gf @@ -441,6 +441,11 @@ oper pins : Str ; } ; +invarAdjForms : Str -> AdjForms = \s -> { + msnom, fsnom, nsnom, msgen, fsgen, msdat, fsdat, fsacc, + msloc, msins, fsins, mpnom, fpnom, pgen, pins = s ; + } ; + -- used in PositA but will also work in Compar and Superl by calling their record fields adjFormsAdjective : AdjForms -> Adjective = \afs -> { @@ -477,6 +482,14 @@ adjFormsAdjective : AdjForms -> Adjective = \afs -> { } ; + guessAdjForms : Str -> AdjForms = \s -> case s of { + _ + "ý" => mladyAdjForms s ; + _ + "í" => jarniAdjForms s ; + _ + "ův" => otcuvAdjForms s ; + _ + "in" => matcinAdjForms s ; + _ => matcinAdjForms ("??" + s) -- Predef.error ("no mkA for" ++ s) + } ; + -- hard declension mladyAdjForms : Str -> AdjForms = \mlady -> diff --git a/src/slovak/ParadigmsSlo.gf b/src/slovak/ParadigmsSlo.gf index 3df1fdc53..e82e2cd69 100644 --- a/src/slovak/ParadigmsSlo.gf +++ b/src/slovak/ParadigmsSlo.gf @@ -108,6 +108,8 @@ oper paviA : Str -> A = \s -> lin A (R.paviA s) ; + invarA : Str -> A + = \s -> lin A (invarAdjForms s) ; mkA2 : A -> Prep -> A2 = \a,p -> lin A2 (a ** {c = p}) ; diff --git a/src/slovak/ResSlo.gf b/src/slovak/ResSlo.gf index ee808a24c..46519e1ac 100644 --- a/src/slovak/ResSlo.gf +++ b/src/slovak/ResSlo.gf @@ -477,6 +477,11 @@ palatal : Str -> Str = \s -> case s of { pins : Str ; } ; +invarAdjForms : Str -> AdjForms = \s -> { + msnom, fsnom, nsnom, msgen, fsgen, msdat, fsacc, + msloc, msins, fsins, ampnom, pgen, pins = s ; + } ; + -- used in PositA but will also work in Compar and Superl by calling their record fields adjFormsAdjective : AdjForms -> Adjective = \afs -> {