diff --git a/lib/src/finnish/CatFin.gf b/lib/src/finnish/CatFin.gf index 92a843023..63daffe0a 100644 --- a/lib/src/finnish/CatFin.gf +++ b/lib/src/finnish/CatFin.gf @@ -96,6 +96,6 @@ concrete CatFin of Cat = CommonX ** open ResFin, Prelude in { N3 = {s : NForm => Str ; h: Harmony} ** {c2,c3 : Compl ; isPre,isPre2 : Bool} ; PN = {s : Case => Str} ; -oper Verb1 = {s : VForm => Str ; sc : NPForm ; qp : Bool} ; +oper Verb1 = {s : VForm => Str ; sc : NPForm ; qp : Bool ; p : Str} ; } diff --git a/lib/src/finnish/ExtraFin.gf b/lib/src/finnish/ExtraFin.gf index e65aed465..21fc27bac 100644 --- a/lib/src/finnish/ExtraFin.gf +++ b/lib/src/finnish/ExtraFin.gf @@ -69,7 +69,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin ** AdvExistNP adv np = mkClause (\_ -> adv.s) np.a (insertObj - (\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom ; qp = True}))) ; + (\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom ; qp = True ; p = []}))) ; RelExistNP prep rp np = { s = \\t,ant,bo,ag => @@ -80,7 +80,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin ** np.a (insertObj (\\_,b,_ => np.s ! NPCase Nom) - (predV (verbOlla ** {sc = NPCase Nom ; qp = True}))) ; + (predV (verbOlla ** {sc = NPCase Nom ; qp = True ; p = []}))) ; in cl.s ! t ! ant ! bo ! SDecl ; c = NPCase Nom @@ -92,7 +92,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin ** ICompExistNP adv np = let cl = mkClause (\_ -> adv.s ! np.a) np.a (insertObj - (\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom ; qp = True}))) ; + (\\_,b,_ => np.s ! NPCase Nom) (predV (verbOlla ** {sc = NPCase Nom ; qp = True ; p = []}))) ; in { s = \\t,a,p => cl.s ! t ! a ! p ! SDecl } ; diff --git a/lib/src/finnish/IdiomFin.gf b/lib/src/finnish/IdiomFin.gf index 9e4ebcf1e..c9e0fe45a 100644 --- a/lib/src/finnish/IdiomFin.gf +++ b/lib/src/finnish/IdiomFin.gf @@ -71,7 +71,7 @@ concrete IdiomFin of Idiom = CatFin ** } ; oper - olla = verbOlla ** {sc = NPCase Nom ; qp = True} ; + olla = verbOlla ** {sc = NPCase Nom ; qp = True ; p = []} ; noSubj : Polarity -> Str = \_ -> [] ; } diff --git a/lib/src/finnish/ParadigmsFin.gf b/lib/src/finnish/ParadigmsFin.gf index 3da750262..af4c43c99 100644 --- a/lib/src/finnish/ParadigmsFin.gf +++ b/lib/src/finnish/ParadigmsFin.gf @@ -164,6 +164,7 @@ oper mkV : (huutaa,huudan,huusi : Str) -> V ; -- also deviating pres. 1sg mkV : (huutaa,dan,taa,tavat,takaa,detaan,sin,si,sisi,tanut,dettu,tanee : Str) -> V ; -- worst-case verb mkV : VK -> V ; -- verb from DictFin (Kotus) + mkV : V -> Str -> V ; -- hakata päälle (particle verb) } ; -- All the patterns above have $nominative$ as subject case. @@ -519,20 +520,21 @@ oper mkV : ( huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan, huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V = mk12V ; - mkV : (sana : VK) -> V = \w -> vforms2V w.s ** {sc = NPCase Nom ; lock_V = <>} ; + mkV : (sana : VK) -> V = \w -> vforms2V w.s ** {sc = NPCase Nom ; lock_V = <> ; p = []} ; + mkV : V -> Str -> V = \w,p -> vforms2V w.s ** {sc = NPCase Nom ; lock_V = <> ; p = p} ; } ; mk1V : Str -> V = \s -> let vfs = vforms2V (vForms1 s) in - vfs ** {sc = NPCase Nom ; lock_V = <>} ; + vfs ** {sc = NPCase Nom ; lock_V = <> ; p = []} ; mk2V : (_,_ : Str) -> V = \x,y -> - let vfs = vforms2V (vForms2 x y) in vfs ** {sc = NPCase Nom ; lock_V = <>} ; + let vfs = vforms2V (vForms2 x y) in vfs ** {sc = NPCase Nom ; lock_V = <> ; p = []} ; mk3V : (huutaa,huudan,huusi : Str) -> V = \x,_,y -> mk2V x y ; ---- mk12V : ( huutaa,huudan,huutaa,huutavat,huutakaa,huudetaan, huusin,huusi,huusisi,huutanut,huudettu,huutanee : Str) -> V = \a,b,c,d,e,f,g,h,i,j,k,l -> - vforms2V (vForms12 a b c d e f g h i j k l) ** {sc = NPCase Nom ; lock_V = <>} ; + vforms2V (vForms12 a b c d e f g h i j k l) ** {sc = NPCase Nom ; lock_V = <> ; p = []} ; vForms1 : Str -> VForms = \ottaa -> let @@ -595,9 +597,9 @@ oper - caseV c v = {s = v.s ; sc = NPCase c ; qp = v.qp ; lock_V = <>} ; + caseV c v = {s = v.s ; sc = NPCase c ; qp = v.qp ; lock_V = <> ; p = v.p} ; - vOlla = verbOlla ** {sc = NPCase Nom ; qp = True ; lock_V = <>} ; ---- lieneekö + vOlla = verbOlla ** {sc = NPCase Nom ; qp = True ; lock_V = <> ; p = []} ; ---- lieneekö mk2V2 : V -> Prep -> V2 = \v,c -> v ** {c2 = c ; lock_V2 = <>} ; caseV2 : V -> Case -> V2 = \v,c -> mk2V2 v (casePrep c) ; @@ -613,7 +615,7 @@ oper mkV2 : V -> V2 = dirV2 ; mkV2 : V -> Case -> V2 = caseV2 ; mkV2 : V -> Prep -> V2 = mk2V2 ; - mkV2 : VK -> V2 = \w -> dirV2 (vforms2V w.s ** {sc = NPCase Nom ; lock_V = <>}) ; + mkV2 : VK -> V2 = \w -> dirV2 (vforms2V w.s ** {sc = NPCase Nom ; lock_V = <> ; p = []}) ; } ; mk2V2 : V -> Prep -> V2 ; diff --git a/lib/src/finnish/QuestionFin.gf b/lib/src/finnish/QuestionFin.gf index 07ea5602e..fa35a37c2 100644 --- a/lib/src/finnish/QuestionFin.gf +++ b/lib/src/finnish/QuestionFin.gf @@ -31,7 +31,7 @@ concrete QuestionFin of Question = CatFin ** open ResFin, Prelude in { QuestIComp icomp np = { s = \\t,a,p => let - vp = predV (verbOlla ** {sc = NPCase Nom ; qp = True}) ; + vp = predV (verbOlla ** {sc = NPCase Nom ; qp = True ; p = []}) ; cl = mkClause (subjForm np vp.sc) np.a vp ; in icomp.s ! np.a ++ cl.s ! t ! a ! p ! SDecl diff --git a/lib/src/finnish/ResFin.gf b/lib/src/finnish/ResFin.gf index 0d79abf04..19811d516 100644 --- a/lib/src/finnish/ResFin.gf +++ b/lib/src/finnish/ResFin.gf @@ -198,7 +198,7 @@ oper qp : Bool -- True = back vowel } ; - predV : (Verb ** {sc : NPForm ; qp : Bool}) -> VP = \verb -> { + predV : (Verb ** {sc : NPForm ; qp : Bool ; p : Str}) -> VP = \verb -> { s = \\vi,ant,b,agr0 => let @@ -256,7 +256,7 @@ oper } ; s2 = \\_,_,_ => [] ; - adv = \\_ => [] ; + adv = \\_ => verb.p ; -- the particle of the verb ext = [] ; sc = verb.sc ; qp = verb.qp ; diff --git a/lib/src/finnish/VerbFin.gf b/lib/src/finnish/VerbFin.gf index 56680539f..5fde2fbd6 100644 --- a/lib/src/finnish/VerbFin.gf +++ b/lib/src/finnish/VerbFin.gf @@ -24,7 +24,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in { NPCase Nom => v.sc ; -- minun täytyy pestä auto c => c -- minulla täytyy olla auto } ; - qp = v.qp + qp = v.qp ; p = v.p } ) ; @@ -53,9 +53,9 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in { ComplSlash vp np = insertObjPre np.isNeg (\\fin,b,_ => appCompl fin b vp.c2 np) vp ; UseComp comp = - insertObj (\\_,_ => comp.s) (predV (verbOlla ** {sc = NPCase Nom ; qp = True})) ; + insertObj (\\_,_ => comp.s) (predV (verbOlla ** {sc = NPCase Nom ; qp = True ; p = []})) ; - UseCopula = predV (verbOlla ** {sc = NPCase Nom ; qp = True}) ; + UseCopula = predV (verbOlla ** {sc = NPCase Nom ; qp = True ; p = []}) ; SlashVV v vp = insertObj @@ -65,7 +65,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in { NPCase Nom => v.sc ; -- minun täytyy pestä auto c => c -- minulla täytyy olla auto } ; - qp = v.qp + qp = v.qp ; p = v.p } ) ** {c2 = vp.c2} ; ---- correct ??