From 6e52edd6ff84b088ab19f6ace9b99427d726d57f Mon Sep 17 00:00:00 2001 From: Hans Leiss Date: Fri, 19 Jan 2024 12:15:47 +0100 Subject: [PATCH] (Ger) Changed Adv and CAdv to have adverbs with separable comparison NP or S ; Conjunction of Adv and AdV added --- src/german/AdverbGer.gf | 20 +++++++++++------- src/german/CatGer.gf | 7 ++++++- src/german/ConjunctionGer.gf | 35 +++++++++++++++++++++---------- src/german/ConstructionGer.gf | 10 +++++---- src/german/ExtendGer.gf | 12 +++++++++-- src/german/GrammarGer.gf | 4 ++-- src/german/MarkupGer.gf | 2 +- src/german/NamesGer.gf | 3 ++- src/german/NumeralGer.gf | 4 ++-- src/german/ParadigmsGer.gf | 17 +++++++++++---- src/german/StructuralGer.gf | 25 +++++++++++----------- src/german/VerbGer.gf | 2 +- tests/german/TestLexiconEng.gf | 5 +++++ tests/german/TestLexiconGer.gf | 3 +++ tests/german/TestLexiconGerAbs.gf | 4 ++++ 15 files changed, 104 insertions(+), 49 deletions(-) diff --git a/src/german/AdverbGer.gf b/src/german/AdverbGer.gf index 6cf2673df..829f1f4d5 100644 --- a/src/german/AdverbGer.gf +++ b/src/german/AdverbGer.gf @@ -1,24 +1,28 @@ concrete AdverbGer of Adverb = CatGer ** open ResGer, Prelude in { lin - PositAdvAdj a = {s = a.s ! Posit ! APred} ; + PositAdvAdj a = {s = a.s ! Posit ! APred ; cp,rc = []} ; ComparAdvAdj cadv a np = { - s = cadv.s ++ a.s ! Posit ! APred ++ cadv.p ++ np.s ! False ! Nom ++ bigNP np + s = cadv.s ++ a.s ! cadv.deg ! APred ; + cp = cadv.p ++ np.s ! False ! Nom ++ bigNP np ; + rc = [] } ; ComparAdvAdjS cadv a s = { - s = cadv.s ++ a.s ! Posit ! APred ++ cadv.p ++ s.s ! Sub + s = cadv.s ++ a.s ! Posit ! APred ; + cp = cadv.p ++ s.s ! Sub ; + rc = [] } ; - PrepNP prep np = {s = appPrepNP prep np} ; + PrepNP prep np = {s = appPrepNP prep np ; cp,rc = []} ; - AdAdv = cc2 ; + AdAdv ada adv = adv ** {s = ada.s ++ adv.s} ; - PositAdAAdj a = {s = a.s ! Posit ! APred} ; + PositAdAAdj a = {s = a.s ! Posit ! APred ; cp,rc = []} ; - SubjS subj s = {s = subj.s ++ s.s ! Sub} ; + SubjS subj s = {s = subj.s ++ s.s ! Sub ; cp,rc = []} ; - AdnCAdv cadv = {s = cadv.s ++ conjThan} ; + AdnCAdv cadv = {s = cadv.s ++ conjThan} ; ---- HL: ebenso als ? } diff --git a/src/german/CatGer.gf b/src/german/CatGer.gf index be5a5b3a9..fc9dd1fc6 100644 --- a/src/german/CatGer.gf +++ b/src/german/CatGer.gf @@ -1,6 +1,6 @@ --# -path=.:../abstract:../common:../prelude concrete CatGer of Cat = - CommonX - [Tense,Temp] ** + CommonX - [Tense,Temp,Adv,CAdv] ** open ResGer, Prelude in { flags optimize=all_subs ; @@ -42,6 +42,11 @@ concrete CatGer of Cat = VPSlash = ResGer.VPSlash ; Comp = {s : Agr => Str ; ext : Str} ; + -- Adverb + + Adv = {s : Str ; cp : Str ; rc : Str} ; + CAdv = {s : Str ; p : Str ; deg : Degree} ; + -- Adjective (HL 7/23: we need c : Agr => Str * Str to handle reflexive objects, cf ReflA2) AP = { diff --git a/src/german/ConjunctionGer.gf b/src/german/ConjunctionGer.gf index a8bc7b097..5efce5192 100644 --- a/src/german/ConjunctionGer.gf +++ b/src/german/ConjunctionGer.gf @@ -7,7 +7,7 @@ concrete ConjunctionGer of Conjunction = ConjS conj ss = conjunctDistrTable Order conj ss ; - ConjAdv conj ss = conjunctDistrSS conj ss ; + ConjAdv conj ss = {s = conj.s1 ++ ss.s1 ++ conj.s2 ++ ss.s2 ; cp,rc = []} ; ConjNP conj ss = heavyNP ( {s = \\_ => (conjunctDistrTable Case conj ss).s ; @@ -43,8 +43,18 @@ concrete ConjunctionGer of Conjunction = s2 = xs.s2 } ; - BaseAdv = twoSS ; - ConsAdv = consrSS comma ; + BaseAdv x y = { + s1 = bigAdv (lin Adv x) ; + s2 = bigAdv (lin Adv y) ; + rc,cp = [] ; lock_Adv = <>} ; + ConsAdv xs x = { + s1 = xs.s ++ comma ++ x.s1 ; + s2 = x.s2 ; + } ; + BaseAdV = twoSS ; + ConsAdV = consrSS comma ; + BaseIAdv = twoSS ; + ConsIAdv = consrSS comma ; BaseNP x y = { s1 = \\c => x.s ! False ! c ++ bigNP x ; s2 = \\c => y.s ! False ! c ++ bigNP y ; @@ -54,26 +64,26 @@ concrete ConjunctionGer of Conjunction = s2 = x.s2 ; a = conjAgr xs.a x.a } ; BaseAP x y = lin AP { - s1 = bigAP x ; - s2 = bigAP y ; + s1 = bigAP (lin AP x) ; + s2 = bigAP (lin AP y) ; isPre = andB x.isPre y.isPre ; c = <[],[]> ; ext = []} ; ConsAP xs x = lin AP { - s1 = \\a => (bigAP xs) ! a ++ comma ++ x.s1 ! a ; + s1 = \\a => (bigAP (lin AP xs)) ! a ++ comma ++ x.s1 ! a ; s2 = x.s2 ; isPre = andB x.isPre xs.isPre ; c = <[],[]> ; ext = []} ; BaseRS x y = twoTable RelGenNum x y ** {c = y.c} ; ConsRS xs x = consrTable RelGenNum comma xs x ** {c = xs.c} ; - BaseCN x y = lin CN { - s1 = bigCN x ; - s2 = bigCN y ; + BaseCN x y = { + s1 = bigCN (lin CN x) ; + s2 = bigCN (lin CN y) ; g = x.g ; --- gender of first CN, used e.g. in articles } ; - ConsCN x xs = lin CN { - s1 = \\a,n,c => bigCN x ! a ! n ! c ++ comma ++ xs.s1 ! a ! n ! c ; + ConsCN x xs = { + s1 = \\a,n,c => bigCN (lin CN x) ! a ! n ! c ++ comma ++ xs.s1 ! a ! n ! c ; s2 = xs.s2 ; g = x.g ; --- gender of first CN, used e.g. in articles } ; @@ -82,6 +92,8 @@ concrete ConjunctionGer of Conjunction = lincat [S] = {s1,s2 : Order => Str} ; [Adv] = {s1,s2 : Str} ; + [AdV] = {s1,s2 : Str} ; + [IAdv] = {s1,s2 : Str} ; [NP] = {s1,s2 : Case => Str ; a : Agr} ; [AP] = {s1,s2 : AForm => Str ; isPre : Bool; c : Str * Str ; ext : Str} ; [RS] = {s1,s2 : RelGenNum => Str ; c : Case} ; @@ -93,4 +105,5 @@ concrete ConjunctionGer of Conjunction = bigCN : CN -> Adjf => Number => Case => Str = \cn -> \\a,n,c => cn.s ! a ! n ! c ++ cn.adv ++ cn.ext ++ cn.rc ! n ; + bigAdv : CatGer.Adv -> Str = \adv -> adv.s ++ adv.cp ++ adv.rc ; } diff --git a/src/german/ConstructionGer.gf b/src/german/ConstructionGer.gf index be80e6815..fc3ee65e2 100644 --- a/src/german/ConstructionGer.gf +++ b/src/german/ConstructionGer.gf @@ -34,7 +34,7 @@ lin married_Cl x y = ----mkCl (lin NP x) L.married_A2 (lin NP y) | mkCl (mkNP and_Conj (lin NP x) (lin NP y)) (P.mkA "verheiratet") ; - what_name_QCl x = mkQCl how_IAdv (mkCl (lin NP x) I.heißen_V) ; + what_name_QCl x = mkQCl how_IAdv (mkCl x I.heißen_V) ; ---- how_old_QCl x = mkQCl (E.ICompAP (mkAP L.old_A)) (lin NP x) ; ---- compilation slow how_old_QCl x = mkQCl (E.IAdvAdv (P.mkAdv "alt")) (mkCl (lin NP x) G.UseCopula) ; ---- how_far_QCl x = mkQCl (E.IAdvAdv L.far_Adv) (mkCl (mkVP (SyntaxGer.mkAdv to_Prep (lin NP x)))) ; @@ -75,7 +75,7 @@ lin lincat Timeunit = N ; - Hour = {short:Str ; long:Str ; adv:Adv} ; + Hour = {short:Str ; long:Str ; adv:CatGer.Adv} ; Weekday = N ; Monthday = NP ; Month = N ; @@ -89,7 +89,9 @@ lin in SyntaxGer.mkAdv (for_Prep | accPrep) n_hours_NP ; timeunitRange l u time = - {s = l.s ! R.AMod (R.gennum R.Masc l.n) R.Nom ++ "bis" ++ u.s ! R.AMod (R.gennum R.Masc u.n) R.Nom ++ time.s ! R.Pl ! R.Nom} ; + {s = l.s ! R.AMod (R.gennum R.Masc l.n) R.Nom ++ "bis" + ++ u.s ! R.AMod (R.gennum R.Masc u.n) R.Nom ++ time.s ! R.Pl ! R.Nom ; + cp,rc = []} ; oper mkHour : Str -> Str -> Str -> Hour @@ -195,7 +197,7 @@ lin languageNP l = mkNP l ; languageCN l = mkCN l ; -oper mkLanguage : Str -> N = \s -> P.mkN s neuter ; ---- produces Neuter +oper mkLanguage : Str -> N = \s -> P.mkN s neuter ; ---- need mkN : A -> N for "das Arabische" etc. ---------------------------------------------- ---- lexicon of special names diff --git a/src/german/ExtendGer.gf b/src/german/ExtendGer.gf index ac2246799..c30f31f9a 100644 --- a/src/german/ExtendGer.gf +++ b/src/german/ExtendGer.gf @@ -10,6 +10,7 @@ concrete ExtendGer of Extend = PastPartAP, PastPartAgentAP, PassVPSlash, PassAgentVPSlash, AdvIsNP, + ComplDirectVS, ComplDirectVQ, RNP, RNPList, Base_rr_RNP, Base_nr_RNP, Base_rn_RNP, Cons_rr_RNP, Cons_nr_RNP, Conj_RNP, ReflRNP, ReflPron, ReflPoss, PredetRNP, AdvRNP, ReflA2RNP, PossPronRNP, CompoundN, DetNPMasc, DetNPFem, UseDAP, UseDAPMasc, UseDAPFem, @@ -157,7 +158,8 @@ concrete ExtendGer of Extend = } ; PrepCN prep cn = { - s = prep.s ! GPl ++ cn.s ! Strong ! Sg ! prep.c ++ cn.adv ++ cn.rc ! Sg ++ cn.ext} ; + s = prep.s ! GPl ++ cn.s ! Strong ! Sg ! prep.c ++ cn.adv ++ cn.rc ! Sg ++ cn.ext ; + cp, rc = []} ; -- fronted/focal constructions, only for main clauses @@ -217,6 +219,11 @@ concrete ExtendGer of Extend = -- object S without "that" + ComplDirectVS vs utt = + AdvVP (UseV ) (lin Adv {s = ":" ++ quoted utt.s ; cp,rc=[]}) ; + ComplDirectVQ vq utt = + AdvVP (UseV ) (lin Adv {s = ":" ++ quoted utt.s ; cp,rc=[]}) ; + -- front the extraposed part -- proper structure of "it is AP to VP" @@ -390,7 +397,8 @@ concrete ExtendGer of Extend = } ; - InOrderToVP vp = {s = "um" ++ useInfVP False vp} ; + InOrderToVP vp = {s = "um" ++ useInfVP False vp ; + cp, rc = []} ; oper insertObjReflNP : RNP -> ResGer.VPSlash -> ResGer.VP = -- HL 5/2022 diff --git a/src/german/GrammarGer.gf b/src/german/GrammarGer.gf index 5e2a85c28..40611bc53 100644 --- a/src/german/GrammarGer.gf +++ b/src/german/GrammarGer.gf @@ -1,4 +1,4 @@ ---# -path=.:../abstract:../common:prelude +--# -path=.:../abstract:../common:../prelude concrete GrammarGer of Grammar = NounGer, @@ -11,7 +11,7 @@ concrete GrammarGer of Grammar = RelativeGer, ConjunctionGer, PhraseGer, - TextX - [Tense,Temp], + TextX - [Tense,Temp,Adv,CAdv], IdiomGer, StructuralGer, TenseGer, diff --git a/src/german/MarkupGer.gf b/src/german/MarkupGer.gf index b3e410cd0..434ce870d 100644 --- a/src/german/MarkupGer.gf +++ b/src/german/MarkupGer.gf @@ -6,7 +6,7 @@ lin MarkupCN m cn = cn ** {s = \\a,n,c => appMark m (cn.s ! a ! n ! c)} ; --- other fields e.g ext intact MarkupNP m np = np ** {s = \\b,c => appMark m (np.s ! b ! c)} ; MarkupAP m ap = ap ** {s = \\a => appMark m (ap.s ! a)} ; - MarkupAdv m adv = {s = appMark m adv.s} ; + MarkupAdv m adv = adv ** {s = appMark m adv.s} ; MarkupS m s = {s = \\o => appMark m (s.s ! o)} ; MarkupUtt m utt = {s = appMark m utt.s} ; MarkupPhr m phr = {s = appMark m phr.s} ; diff --git a/src/german/NamesGer.gf b/src/german/NamesGer.gf index 43c17cda9..9b03ed3e3 100644 --- a/src/german/NamesGer.gf +++ b/src/german/NamesGer.gf @@ -72,7 +72,8 @@ lin InLN ln = { a = agrgP3 ln.g ln.n ; w = WLight ; rc, ext = [] - } + } ; + cp,rc = [] } ; -- AdjLN : AP -> LN -> LN ; diff --git a/src/german/NumeralGer.gf b/src/german/NumeralGer.gf index d2b7963d8..e949c2dd7 100644 --- a/src/german/NumeralGer.gf +++ b/src/german/NumeralGer.gf @@ -82,8 +82,8 @@ oper IIDig d i = let isPld : Bool = case d.n of {Sg => False ; _ => True} ; b : Bool = case i.isDig of {True => isPld ; _ => notB i.tail1to19} ; - i' : Digits = case b of {True => IDig (mkDig (i.s ! invNum ++ BIND ++ "s")) ; - _ => i } + i' : Digits = lin Digits (case b of {True => IDig (mkDig (i.s ! invNum ++ BIND ++ "s")) ; + _ => i}) in {s = table {NCard af => d.s ! invNum ++ BIND ++ i.s ! NCard af ; NOrd af => d.s ! invNum ++ BIND ++ i'.s ! NOrd af} ; n = Pl ; diff --git a/src/german/ParadigmsGer.gf b/src/german/ParadigmsGer.gf index 7493d326d..5f39dfbee 100644 --- a/src/german/ParadigmsGer.gf +++ b/src/german/ParadigmsGer.gf @@ -225,6 +225,10 @@ mkN : overload { mkAdv : Str -> Adv ; -- adverbs have just one form anyway + mkCAdv : overload { + mkCAdv : Str -> Str -> CAdv ; -- comparative adverb (with positive degree) + mkCAdv : Str -> Str -> Degree -> CAdv -- comparative adverb with degree + } ; --2 Prepositions @@ -234,9 +238,7 @@ mkN : overload { mkPrep : Str -> Case -> Prep ; -- e.g. "durch" + accusative mkPrep : Case -> Str -> Prep ; -- postposition mkPrep : Str -> Case -> Str -> Prep ; -- both sides - -- for prepositions glued with DefArt in singular - -- e.g. "auf" "auf den" "auf die" "aufs" + accusative - mkPrep : Str -> Str -> Str -> Str -> Case -> Prep ; + mkPrep : Str -> Str -> Str -> Str -> Case -> Prep ; -- prep contracted with defArtSg, e.g. "auf" "auf den" "auf die" "aufs" + accusative mkPrep : Case -> Prep ; -- convert case to preposition } ; @@ -575,7 +577,14 @@ mkV2 : overload { mkA2 = \a,p -> a ** {c2 = p ; lock_A2 = <>} ; - mkAdv s = {s = s ; lock_Adv = <>} ; + mkAdv s = {s = s ; cp,rc = [] ; lock_Adv = <>} ; + + mkCAdv = overload { + mkCAdv : Str -> Str -> CAdv = + \s1,s2 -> {s = s1 ; p = s2 ; deg = Posit ; lock_CAdv = <>} ; + mkCAdv : Str -> Str -> Degree -> CAdv = + \s1,s2,d -> {s = s1 ; p = s2 ; deg = d ; lock_CAdv = <>} + } ; mkPrep = overload { mkPrep : Str -> Case -> Prep = \s,c -> diff --git a/src/german/StructuralGer.gf b/src/german/StructuralGer.gf index e54a65dd3..af8391a4d 100644 --- a/src/german/StructuralGer.gf +++ b/src/german/StructuralGer.gf @@ -37,7 +37,7 @@ concrete StructuralGer of Structural = CatGer ** s,sp = \\_,g,c => "jed" + detEnding ! (gennum g Sg) ! c ; n = Sg ; a = Weak ; isDef = False ; hasDefArt = False} ; everything_NP = nameNounPhrase Neutr {s = caselist "alles" "alles" "allem" "alles"} ; - everywhere_Adv = ss "überall" ; + everywhere_Adv = P.mkAdv "überall" ; few_Det = { s,sp = \\_,g,c => "wenig" + adjEnding ! (gennum g Pl) ! c ; n = Pl ; a = Strong ; isDef = False ; hasDefArt = False} ; @@ -45,9 +45,9 @@ concrete StructuralGer of Structural = CatGer ** for_Prep = mkPrep "für" P.accusative ; from_Prep = mkPrep "aus" P.dative ; he_Pron = mkPronPers "er" "ihn" "ihm" "seiner" "sein" Masc Sg P3 ; - here7to_Adv = ss ["hierher"] ; - here7from_Adv = ss ["hieraus"] ; - here_Adv = ss "hier" ; + here7to_Adv = P.mkAdv "hierher" ; + here7from_Adv = P.mkAdv "hieraus" ; + here_Adv = P.mkAdv "hier" ; how_IAdv = ss "wie" ; how8much_IAdv = ss "wieviel" ; how8many_IDet = {s = \\g,c => "wie viel" + detEnding ! (gennum g Pl) ! c ; n = Pl} ; @@ -56,11 +56,11 @@ concrete StructuralGer of Structural = CatGer ** i_Pron = mkPronPers "ich" "mich" "mir" "meiner" "mein" Masc Sg P1 ; in_Prep = P.inDat_Prep ; it_Pron = mkPronPers "es" "es" "ihm" "seiner" "sein" Neutr Sg P3 ; - less_CAdv = X.mkCAdv "weniger" "als" ; + less_CAdv = P.mkCAdv "weniger" "als" ; many_Det = { s,sp = \\_,g,c => "viel" + adjEnding ! (gennum g Pl) ! c ; n = Pl ; a = Strong ; isDef = False ; hasDefArt = False} ; - more_CAdv = X.mkCAdv "mehr" "als" ; + more_CAdv = P.mkCAdv "" "als" Compar ; -- most_Predet = {s = appAdj (regA "meist") ; c = noCase ; a = PAgNone} ; most_Predet = { -- HL 5/2022 s = \\n,g,c => let gn = R.gennum g n ; @@ -89,7 +89,7 @@ concrete StructuralGer of Structural = CatGer ** part_Prep = P.von_Prep ; -- obsolete, better use PartNP cn np please_Voc = ss "bitte" ; possess_Prep = P.von_Prep ; -- obsolete, better use PossNP cn np - quite_Adv = ss "ziemlich" ; + quite_Adv = P.mkAdv "ziemlich" ; she_Pron = mkPronPers "sie" "sie" "ihr" "ihrer" "ihr" Fem Sg P3 ; so_AdA = ss "so" ; somebody_NP = nameNounPhrase Masc {s = caselist "jemand" "jemanden" "jemandem" "jemands"} ; @@ -102,13 +102,13 @@ concrete StructuralGer of Structural = CatGer ** n = Sg ; a = Mixed ; isDef = False ; hasDefArt = False } ; something_NP = nameNounPhrase Neutr {s = \\_ => "etwas"} ; - somewhere_Adv = ss "irgendwo" ; + somewhere_Adv = P.mkAdv "irgendwo" ; that_Quant = let jener : GenNum => Case => Str = \\gn,c => "jen" + detEnding ! gn ! c in {s = \\_ => jener ; sp = jener ; a = Weak ; isDefArt,delCardOne = False} ; ---b that_NP = nameNounPhrase Neutr {s = caselist "das" "das" "dem" "dessen"} ; ---- - there_Adv = ss "da" ; --- no variants in the rgl | ss "dort" ; - there7to_Adv = ss "dahin" ; - there7from_Adv = ss ["daher"] ; + there_Adv = P.mkAdv "da" ; --- no variants in the rgl | ss "dort" ; + there7to_Adv = P.mkAdv "dahin" ; + there7from_Adv = P.mkAdv "daher" ; therefore_PConj = ss "deshalb" ; ---b these_NP = {s = caselist "diese" "diese" "diesen" "dieser" ; a = agrP3 Pl} ; @@ -162,7 +162,7 @@ concrete StructuralGer of Structural = CatGer ** at_most_AdN = ss "höchstens" ; except_Prep = mkPrep "außer" P.dative ; - as_CAdv = X.mkCAdv "ebenso" "wie" ; + as_CAdv = P.mkCAdv "ebenso" "wie" ; have_V2 = P.dirV2 IrregGer.haben_V ; that_Subj = ss "dass" ; @@ -178,4 +178,5 @@ oper -- (detLikeAdj b n str).s = \\g,c => str + adjEnding ! (gennum g n) ! c -- (detUnLikeAdj b n str).s = \\g,c => str + detEnding ! (gennum g n) ! c + } diff --git a/src/german/VerbGer.gf b/src/german/VerbGer.gf index d5688a3be..95c0da941 100644 --- a/src/german/VerbGer.gf +++ b/src/german/VerbGer.gf @@ -120,7 +120,7 @@ concrete VerbGer of Verb = CatGer ** open Prelude, ResGer, Coordination in { ext = cn.adv ++ cn.ext } ; - AdvVP vp adv = insertAdv adv.s vp ; + AdvVP vp adv = insertAdv (adv.s ++ adv.cp ++ adv.rc) vp ; ExtAdvVP vp adv = insertAdv (embedInCommas adv.s) vp ; AdVVP adv vp = insertAdv adv.s vp ; -- not AdV 27/5/2012: nicht immer diff --git a/tests/german/TestLexiconEng.gf b/tests/german/TestLexiconEng.gf index e7c222932..0160ca0fb 100644 --- a/tests/german/TestLexiconEng.gf +++ b/tests/german/TestLexiconEng.gf @@ -66,4 +66,9 @@ lin neugierig_auf_A2 = mkA2 (regA "curious") (mkPrep "about") ; treu_A2 = mkA2 (compoundA (mkA "faithful")) (mkPrep "to") ; stolz_A2 = mkA2 (mkA "proud" "prouder") (mkPrep "of") ; + + -- Adverbs + + anders_CAdv = mkCAdv "other" "than" Posit ; -- (nicht) anders bewertet als + } diff --git a/tests/german/TestLexiconGer.gf b/tests/german/TestLexiconGer.gf index 40bdbb221..3a806a1db 100644 --- a/tests/german/TestLexiconGer.gf +++ b/tests/german/TestLexiconGer.gf @@ -77,4 +77,7 @@ lin treu_A2 = mkA2 (mk3A "treu" "treuer" "treueste") datPrep ; stolz_A2 = mkA2 (mk3A "stolz" "stolzer" "stolzeste") (mkPrep "auf" accusative) ; + -- Adverbs + + anders_CAdv = mkCAdv "anders" "als" Posit ; -- (nicht) anders bewertet als } diff --git a/tests/german/TestLexiconGerAbs.gf b/tests/german/TestLexiconGerAbs.gf index c475c3ec8..ffcec2ec4 100644 --- a/tests/german/TestLexiconGerAbs.gf +++ b/tests/german/TestLexiconGerAbs.gf @@ -47,4 +47,8 @@ fun treu_A2 : A2 ; -- Ger: dative complement stolz_A2 : A2 ; + -- Adverbs + + anders_CAdv : CAdv ; + }