diff --git a/examples/discourse/Discourse.gf b/examples/discourse/Discourse.gf index 2ff18037c..1172032c5 100644 --- a/examples/discourse/Discourse.gf +++ b/examples/discourse/Discourse.gf @@ -9,16 +9,17 @@ abstract Discourse = flags startcat = S ; cat - Clause ; -- clause with subject, verb, object - Part ; -- discource particle + Marker ; -- discourse marker fun - ClauseS : Part -> Temp -> Pol -> Clause -> S ; -- Jussihan juo nyt maitoa - SubjKinS : Part -> Temp -> Pol -> Clause -> S ; -- Jussikinhan juo nyt maitoa - VerbKinS : Part -> Temp -> Pol -> Clause -> S ; -- Jussihan juokin nyt maitoa - AdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- Jussihan juo nytkin maitoa - ObjKinS : Part -> Temp -> Pol -> Clause -> S ; -- Jussihan juo nyt maitoakin + ClauseS : Marker -> Temp -> Pol -> NP -> VP -> S ; -- Jussihan juo maitoa nyt + FocSubjS : Marker -> Temp -> Pol -> NP -> VP -> S ; -- Jussikinhan juo maitoa nyt + FocVerbS : Marker -> Temp -> Pol -> NP -> VP -> S ; -- Jussihan juokin maitoa nyt + FocObjS : Marker -> Temp -> Pol -> NP -> VPSlash -> NP -> S ; -- Jussihan juo maitoakin nyt + FocAdvS : Marker -> Temp -> Pol -> NP -> VP -> Adv -> S ; -- Jussihan juo maitoa nytkin + +{- PreAdvS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän Jussi juo maitoa PreAdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nytkinhän Jussi juo maitoa PreAdvSubjKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- nythän Jussikin juo maitoa @@ -29,14 +30,12 @@ fun PreObjSubjKinS : Part -> Temp -> Pol -> Clause -> S ; -- maitoahan Jussikin juo nyt PreObjVerbKinS : Part -> Temp -> Pol -> Clause -> S ; -- maitoahan Jussi juokin nyt - PreVerbS : Part -> Temp -> Pol -> Clause -> S ; -- juohan Jussi nyt maitoa - PreVerbSubKinS : Part -> Temp -> Pol -> Clause -> S ; -- juohan Jussikin nyt maitoa + PreVerbS : Part -> Temp -> Pol -> Clause -> S ; -- juohan Jussi maitoa nyt + PreVerbSubKinS : Part -> Temp -> Pol -> Clause -> S ; -- juohan Jussikin maitoa nyt PreVerbAdvKinS : Part -> Temp -> Pol -> Adv -> Clause -> S ; -- juohan Jussi nytkin maitoa - PreVerbObjKinS : Part -> Temp -> Pol -> NP -> Clause -> S ; -- juohan Jussi nyt maitoakin + PreVerbObjKinS : Part -> Temp -> Pol -> NP -> Clause -> S ; -- juohan Jussi maitoa nytkin +-} - - PredClause : NP -> VP -> Clause ; - - noPart, han_Part, pas_Part : Part ; + neutralMarker, remindMarker, contrastMarker : Marker ; } diff --git a/examples/discourse/DiscourseFin.gf b/examples/discourse/DiscourseFin.gf index 4fa1062b6..c9fc0c6d2 100644 --- a/examples/discourse/DiscourseFin.gf +++ b/examples/discourse/DiscourseFin.gf @@ -2,49 +2,29 @@ concrete DiscourseFin of Discourse = LexiconFin, - NounFin, VerbFin - [SlashV2VNP,SlashVV], + NounFin, VerbFin - [SlashV2VNP,SlashVV, Slash2V3, Slash3V3], AdjectiveFin, AdverbFin, StructuralFin - [nobody_NP,nothing_NP], TenseX ** open SyntaxFin, (P = ParadigmsFin), (R = ParamX), (E = ExtraFin), Prelude in { lincat - Clause = {subj : NP ; vp : VP} ; - OClause = {subj : NP ; v : V2 ; obj : NP} ; - Part = Adv ; + Marker = E.Part ; lin - ClauseS part temp pol cl = - mkS temp pol (mkCl (mkNP cl.subj part) cl.vp) ; - SubjKinS part temp pol cl = - mkS temp pol (mkCl (mkNP (mkNP cl.subj (kin.s ! pol.p)) part) cl.vp) ; - VerbKinS part temp pol cl = - mkS temp pol (mkCl (mkNP cl.subj part) (mkVP cl.vp (kin.s ! pol.p))) ; - AdvKinS part temp pol adv cl = - mkS temp pol (mkCl (mkNP cl.subj part) (mkVP (mkVP cl.vp adv) (kin.s ! pol.p))) ; + ClauseS marker temp pol np vp = + E.S_SVO marker temp pol (E.PredClPlus np vp) ; + FocSubjS marker temp pol np vp = + E.S_SVO marker temp pol (E.PredClPlusFocSubj np vp) ; + FocVerbS marker temp pol np vp = + E.S_SVO marker temp pol (E.PredClPlusFocVerb np vp) ; + FocObjS marker temp pol np vp obj = + E.S_SVO marker temp pol (E.PredClPlusFocObj np vp obj) ; + FocAdvS marker temp pol np vp adv = + E.S_SVO marker temp pol (E.PredClPlusFocAdv np vp adv) ; - PreAdvS part temp pol adv cl = - mkS adv (mkS part (mkS temp pol (mkCl cl.subj cl.vp))) ; - PreAdvKinS part temp pol adv cl = - mkS adv (mkS part (mkS (kin.s ! pol.p) (mkS temp pol (mkCl cl.subj cl.vp)))) ; - PreAdvSubjKinS part temp pol adv cl = - mkS adv (mkS part (mkS temp pol (mkCl (mkNP cl.subj (kin.s ! pol.p)) cl.vp))) ; - PreAdvVerbKinS part temp pol adv cl = - mkS adv (mkS part (mkS temp pol (mkCl cl.subj (mkVP cl.vp (kin.s ! pol.p))))) ; - - PredClause subj v = {subj = subj ; vp = v} ; - PredOClause subj v obj = {subj = subj ; v = v ; obj = obj} ; - UseOClause oc = {subj = oc.subj ; vp = mkVP oc.v oc.obj} ; - - noPart = P.mkAdv [] ; - han_Part = P.mkAdv (glueTok "han") ; - pa_Part = P.mkAdv (glueTok "pa") ; - pas_Part = P.mkAdv (glueTok "pas") ; - -oper - kin : {s : R.Polarity => Adv} = - {s = table {R.Pos => P.mkAdv (glueTok "kin") ; R.Neg => P.mkAdv (glueTok "kaan")}} ; - - glueTok : Str -> Str = \s -> "&+" ++ s ; + neutralMarker = E.noPart ; + remindMarker = E.han_Part ; + contrastMarker = E.pas_Part ; } diff --git a/lib/src/finnish/AllFin.gf b/lib/src/finnish/AllFin.gf index b79a50b30..0d3f47011 100644 --- a/lib/src/finnish/AllFin.gf +++ b/lib/src/finnish/AllFin.gf @@ -1,6 +1,6 @@ --# -path=.:../abstract:../common:prelude concrete AllFin of AllFinAbs = - LangFin, - ExtraFin + LangFin - [SlashV2VNP,SlashVV, TFut], ---- to speed up linking; to remove spurious parses + ExtraFin - [ProDrop, ProDropPoss, S_OSV, S_VSO, S_ASV] -- to exclude spurious parses ** {} ; diff --git a/lib/src/finnish/ExtraFin.gf b/lib/src/finnish/ExtraFin.gf index 5d4760d51..52cf7af64 100644 --- a/lib/src/finnish/ExtraFin.gf +++ b/lib/src/finnish/ExtraFin.gf @@ -1,7 +1,7 @@ --# -path=.:abstract:common:prelude concrete ExtraFin of ExtraFinAbs = CatFin ** - open ResFin, MorphoFin, Coordination, Prelude, NounFin, StructuralFin in { + open ResFin, MorphoFin, Coordination, Prelude, NounFin, StructuralFin, (R = ParamX) in { lin GenNP np = { @@ -48,7 +48,7 @@ concrete ExtraFin of ExtraFinAbs = CatFin ** mkClause (\_ -> adv.s) np.a (insertObj (\\_,b,_ => np.s ! NPCase Nom) (predV v)) ; - i_implicPron = mkPronoun [] "minun" "minua" "minuna" "minuun" Sg P1 ; +-- i_implicPron = mkPronoun [] "minun" "minua" "minuna" "minuun" Sg P1 ; whatPart_IP = { s = table { NPCase Nom | NPAcc => "mitä" ; @@ -104,35 +104,58 @@ concrete ExtraFin of ExtraFinAbs = CatFin ** isDef = True --- "minun kolme autoani ovat" ; thus "...on" is missing } ; - lincat ClPlus = ClausePlus ; + lincat + ClPlus, ClPlusObj, ClPlusAdv = ClausePlus ; + Part = {s : Bool => Str} ; lin - S_SVO t p clp = - let cl = clp.s ! t.t ! t.a ! p.p + S_SVO part t p clp = + let + cl = clp.s ! t.t ! t.a ! p.p ; + pa = part.s ! True ---- in - {s = t.s ++ p.s ++ cl.subj ++ cl.fin ++ cl.inf ++ cl.compl ++ cl.ext} ; - S_SOV t p clp = - let cl = clp.s ! t.t ! t.a ! p.p + {s = t.s ++ p.s ++ cl.subj ++ pa ++ cl.fin ++ cl.inf ++ cl.compl ++ cl.adv ++ cl.ext} ; + S_OSV part t p clp = + let + cl = clp.s ! t.t ! t.a ! p.p ; + pa = part.s ! True ---- in - {s = t.s ++ p.s ++ cl.subj ++ cl.compl ++ cl.fin ++ cl.inf ++ cl.ext} ; - S_OSV t p clp = - let cl = clp.s ! t.t ! t.a ! p.p + {s = t.s ++ p.s ++ cl.compl ++ pa ++ cl.subj ++ cl.fin ++ cl.inf ++ cl.adv ++ cl.ext} ; + S_VSO part t p clp = + let + cl = clp.s ! t.t ! t.a ! p.p ; + pa = part.s ! cl.qp in - {s = t.s ++ p.s ++ cl.compl ++ cl.subj ++ cl.fin ++ cl.inf ++ cl.ext} ; - S_OVS t p clp = - let cl = clp.s ! t.t ! t.a ! p.p + {s = t.s ++ p.s ++ cl.fin ++ pa ++ cl.subj ++ cl.inf ++ cl.compl ++ cl.adv ++ cl.ext} ; + S_ASV part t p clp = + let + cl = clp.s ! t.t ! t.a ! p.p ; + pa = part.s ! cl.qp in - {s = t.s ++ p.s ++ cl.compl ++ cl.fin ++ cl.inf ++ cl.subj ++ cl.ext} ; - S_VSO t p clp = - let cl = clp.s ! t.t ! t.a ! p.p - in - {s = t.s ++ p.s ++ cl.fin ++ cl.subj ++ cl.inf ++ cl.compl ++ cl.ext} ; - S_VOS t p clp = - let cl = clp.s ! t.t ! t.a ! p.p - in - {s = t.s ++ p.s ++ cl.fin ++ cl.inf ++ cl.compl ++ cl.subj ++ cl.ext} ; + {s = t.s ++ p.s ++ cl.adv ++ pa ++ cl.subj ++ cl.fin ++ cl.inf ++ cl.compl ++ cl.ext} ; PredClPlus np vp = mkClausePlus (subjForm np vp.sc) np.a vp ; + PredClPlusFocSubj np vp = insertKinClausePlus 0 (mkClausePlus (subjForm np vp.sc) np.a vp) ; + PredClPlusFocVerb np vp = insertKinClausePlus 1 (mkClausePlus (subjForm np vp.sc) np.a vp) ; + PredClPlusObj np vps obj = + insertObjClausePlus 0 False (\\b => appCompl True b vps.c2 obj) (mkClausePlus (subjForm np vps.sc) np.a vps) ; + PredClPlusFocObj np vps obj = + insertObjClausePlus 0 True (\\b => appCompl True b vps.c2 obj) (mkClausePlus (subjForm np vps.sc) np.a vps) ; + PredClPlusAdv np vp adv = + insertObjClausePlus 1 False (\\_ => adv.s) (mkClausePlus (subjForm np vp.sc) np.a vp) ; + PredClPlusFocAdv np vp adv = + insertObjClausePlus 1 True (\\_ => adv.s) (mkClausePlus (subjForm np vp.sc) np.a vp) ; + ClPlusWithObj c = c ; + ClPlusWithAdv c = c ; + + noPart = {s = \\_ => []} ; + han_Part = mkPart "han" "hän" ; + pa_Part = mkPart "pa" "pä" ; + pas_Part = mkPart "pas" "päs" ; + ko_Part = mkPart "ko" "kö" ; + kos_Part = mkPart "kos" "kös" ; + kohan_Part = mkPart "kohan" "köhän" ; + pahan_Part = mkPart "pahan" "pähän" ; } diff --git a/lib/src/finnish/ExtraFinAbs.gf b/lib/src/finnish/ExtraFinAbs.gf index ea7798f75..386c0a99b 100644 --- a/lib/src/finnish/ExtraFinAbs.gf +++ b/lib/src/finnish/ExtraFinAbs.gf @@ -8,7 +8,7 @@ abstract ExtraFinAbs = Extra [ RelExistNP : Prep -> RP -> NP -> RCl ; -- jossa on jazzia - i_implicPron : Pron ; -- (minä), minut, ... +-- i_implicPron : Pron ; -- (minä), minut, ... whatPart_IP : IP ; PartCN : CN -> NP ; -- olutta @@ -21,19 +21,33 @@ abstract ExtraFinAbs = Extra [ cat ClPlus ; -- clause with more variation + ClPlusObj ; -- which has a focusable object + ClPlusAdv ; -- which has a focusable adverb Part ; -- discourse particle fun - S_SVO : Temp -> Pol -> ClPlus -> S ; -- mepäs juomme maitoa - S_SOV : Temp -> Pol -> ClPlus -> S ; -- mepäs maitoa juomme - S_OSV : Temp -> Pol -> ClPlus -> S ; -- maitoapas me juomme - S_OVS : Temp -> Pol -> ClPlus -> S ; -- maitoapas juomme me - S_VSO : Temp -> Pol -> ClPlus -> S ; -- juommepas me maitoa - S_VOS : Temp -> Pol -> ClPlus -> S ; -- juommepas maitoa me + S_SVO : Part -> Temp -> Pol -> ClPlus -> S ; -- mepäs juomme maitoa nyt + S_OSV : Part -> Temp -> Pol -> ClPlusObj -> S ; -- maitoapas me juomme nyt + S_VSO : Part -> Temp -> Pol -> ClPlus -> S ; -- juommepas me maitoa nyt + S_ASV : Part -> Temp -> Pol -> ClPlusAdv -> S ; -- nytpäs me juomme maitoa - PredClPlus : NP -> VP -> ClPlus ; +-- S_SOV : Part -> Temp -> Pol -> ClPlus -> S ; -- mepäs maitoa juomme +-- S_OVS : Part -> Temp -> Pol -> ClPlus -> S ; -- maitoapas juomme me +-- S_VOS : Part -> Temp -> Pol -> ClPlus -> S ; -- juommepas maitoa me ----- noPart, han_Part, pa_Part, pas_Part, ko_Part, kos_Part, ----- kohan_Part, pahan_Part : Part ; + + PredClPlus : NP -> VP -> ClPlus ; -- me nukumme + PredClPlusFocSubj : NP -> VP -> ClPlus ; -- mekin nukumme + PredClPlusFocVerb : NP -> VP -> ClPlus ; -- me nukummekin + PredClPlusObj : NP -> VPSlash -> NP -> ClPlusObj ; -- maitoa me juomme + PredClPlusFocObj : NP -> VPSlash -> NP -> ClPlusObj ; -- maitoakin me juomme + PredClPlusAdv : NP -> VP -> Adv -> ClPlusAdv ; -- nyt me nukumme + PredClPlusFocAdv : NP -> VP -> Adv -> ClPlusAdv ; -- nytkin me nukumme + + ClPlusWithObj : ClPlusObj -> ClPlus ; -- to make non-fronted obj focusable + ClPlusWithAdv : ClPlusAdv -> ClPlus ; -- to make non-fronted adv focusable + + noPart, han_Part, pa_Part, pas_Part, ko_Part, kos_Part, + kohan_Part, pahan_Part : Part ; } diff --git a/lib/src/finnish/IdiomFin.gf b/lib/src/finnish/IdiomFin.gf index 90c8e3d58..373f76317 100644 --- a/lib/src/finnish/IdiomFin.gf +++ b/lib/src/finnish/IdiomFin.gf @@ -40,6 +40,7 @@ concrete IdiomFin of Idiom = CatFin ** GenericCl vp = mkClause noSubj (agrP3 Sg) { s = \\_ => vp.s ! VIPass ; s2 = vp.s2 ; + adv = vp.adv ; ext = vp.ext ; sc = vp.sc ; qp = vp.qp @@ -52,6 +53,7 @@ concrete IdiomFin of Idiom = CatFin ** in { s = on.s ; s2 = \\b,p,a => inf ++ vp.s2 ! b ! p ! a ; + adv = vp.adv ; ext = vp.ext ; sc = vp.sc ; qp = vp.qp diff --git a/lib/src/finnish/LangFin.gf b/lib/src/finnish/LangFin.gf index 53eca61e4..3d95b1ef7 100644 --- a/lib/src/finnish/LangFin.gf +++ b/lib/src/finnish/LangFin.gf @@ -1,8 +1,8 @@ --# -path=.:../abstract:../common:../prelude concrete LangFin of Lang = - GrammarFin - [SlashV2VNP,SlashVV], ---- to speed up compilation --- GrammarFin, +-- GrammarFin - [SlashV2VNP,SlashVV], ---- to speed up compilation + GrammarFin, LexiconFin ** { diff --git a/lib/src/finnish/LexiconFin.gf b/lib/src/finnish/LexiconFin.gf index 484bb3969..6f5973825 100644 --- a/lib/src/finnish/LexiconFin.gf +++ b/lib/src/finnish/LexiconFin.gf @@ -67,10 +67,10 @@ lin doctor_N = mk2N "tohtori" "tohtoreita" ; dog_N = mkN "koira" ; door_N = mkN "ovi" "ovia" ; - drink_V2 = mkV2 (mkV "juoda") ; + drink_V2 = mkV2 (mkV "juoda") (casePrep partitive) ; easy_A2V = mkA2 (mkA (mkN "helppo") "helpompi" "helpoin") (casePrep allative) ; - eat_V2 = mkV2 (mkV "syödä") ; + eat_V2 = mkV2 (mkV "syödä") (casePrep partitive) ; empty_A = mkA (mkN "tyhjä") "tyhjempi" "tyhjin" ; enemy_N = mkN "vihollinen" ; factory_N = mkN "tehdas" ; diff --git a/lib/src/finnish/ResFin.gf b/lib/src/finnish/ResFin.gf index 15cc038ce..5176d2433 100644 --- a/lib/src/finnish/ResFin.gf +++ b/lib/src/finnish/ResFin.gf @@ -185,6 +185,7 @@ oper VP = { s : VIForm => Anteriority => Polarity => Agr => {fin, inf : Str} ; s2 : Bool => Polarity => Agr => Str ; -- talo/talon/taloa + adv : Polarity => Str ; -- ainakin/ainakaan ext : Str ; sc : NPForm ; qp : Bool -- True = back vowel @@ -248,6 +249,7 @@ oper } ; s2 = \\_,_,_ => [] ; + adv = \\_ => [] ; ext = [] ; sc = verb.sc ; qp = verb.qp @@ -256,6 +258,7 @@ oper insertObj : (Bool => Polarity => Agr => Str) -> VP -> VP = \obj,vp -> { s = vp.s ; s2 = \\fin,b,a => vp.s2 ! fin ! b ! a ++ obj ! fin ! b ! a ; + adv = vp.adv ; ext = vp.ext ; sc = vp.sc ; qp = vp.qp @@ -264,15 +267,26 @@ oper insertObjPre : (Bool => Polarity => Agr => Str) -> VP -> VP = \obj,vp -> { s = vp.s ; s2 = \\fin,b,a => obj ! fin ! b ! a ++ vp.s2 ! fin ! b ! a ; + adv = vp.adv ; ext = vp.ext ; sc = vp.sc ; qp = vp.qp } ; + insertAdv : (Polarity => Str) -> VP -> VP = \adv,vp -> { + s = vp.s ; + s2 = vp.s2 ; + ext = vp.ext ; + adv = \\b => vp.adv ! b ++ adv ! b ; + sc = vp.sc ; + qp = vp.qp + } ; + insertExtrapos : Str -> VP -> VP = \obj,vp -> { s = vp.s ; s2 = vp.s2 ; ext = vp.ext ++ obj ; + adv = vp.adv ; sc = vp.sc ; qp = vp.qp } ; @@ -284,15 +298,15 @@ oper } ; ClausePlus : Type = { - s : Tense => Anteriority => Polarity => {subj,fin,inf,compl,ext : Str ; qp : Bool} + s : Tense => Anteriority => Polarity => {subj,fin,inf,compl,adv,ext : Str ; qp : Bool} } ; mkClause : (Polarity -> Str) -> Agr -> VP -> Clause = \sub,agr,vp -> { s = \\t,a,b => let c = (mkClausePlus sub agr vp).s ! t ! a ! b in table { - SDecl => c.subj ++ c.fin ++ c.inf ++ c.compl ++ c.ext ; - SQuest => c.fin ++ BIND ++ questPart c.qp ++ c.subj ++ c.inf ++ c.compl ++ c.ext + SDecl => c.subj ++ c.fin ++ c.inf ++ c.compl ++ c.adv ++ c.ext ; + SQuest => c.fin ++ BIND ++ questPart c.qp ++ c.subj ++ c.inf ++ c.compl ++ c.adv ++ c.ext } } ; @@ -308,12 +322,49 @@ oper in {subj = sub b ; fin = verb.fin ; inf = verb.inf ; - compl = vp.s2 ! agrfin.p2 ! b ! agr ; + compl = vp.s2 ! agrfin.p2 ! b ! agr ; + adv = vp.adv ! b ; ext = vp.ext ; qp = selectPart vp a b } } ; + insertKinClausePlus : Predef.Ints 1 -> ClausePlus -> ClausePlus = \p,cl -> { + s = \\t,a,b => + let + c = cl.s ! t ! a ! b + in + case p of { + 0 => {subj = c.subj ++ kin b True ; fin = c.fin ; inf = c.inf ; -- Jussikin nukkuu + compl = c.compl ; adv = c.adv ; ext = c.ext ; qp = c.qp} ; + 1 => {subj = c.subj ; fin = c.fin ++ kin b c.qp ; inf = c.inf ; -- Jussi nukkuukin + compl = c.compl ; adv = c.adv ; ext = c.ext ; qp = c.qp} + } + } ; + + insertObjClausePlus : Predef.Ints 1 -> Bool -> (Polarity => Str) -> ClausePlus -> ClausePlus = + \p,ifKin,obj,cl -> { + s = \\t,a,b => + let + c = cl.s ! t ! a ! b ; + co = obj ! b ++ if_then_Str ifKin (kin b True) [] ; + in case p of { + 0 => {subj = c.subj ; fin = c.fin ; inf = c.inf ; + compl = co ; adv = c.compl ++ c.adv ; ext = c.ext ; qp = c.qp} ; -- Jussi juo maitoakin + 1 => {subj = c.subj ; fin = c.fin ; inf = c.inf ; + compl = c.compl ; adv = co ; ext = c.adv ++ c.ext ; qp = c.qp} -- Jussi nukkuu nytkin + } + } ; + + kin : Polarity -> Bool -> Str = + \p,b -> case p of {Pos => (mkPart "kin" "kin").s ! b ; Neg => (mkPart "kaan" "kään").s ! b} ; + + mkPart : Str -> Str -> {s : Bool => Str} = \ko,koe -> + {s = table {True => glueTok ko ; False => glueTok koe}} ; + + glueTok : Str -> Str = \s -> "&+" ++ s ; + + -- This is used for subjects of passives: therefore isFin in False. subjForm : NP -> NPForm -> Polarity -> Str = \np,sc,b -> diff --git a/lib/src/finnish/VerbFin.gf b/lib/src/finnish/VerbFin.gf index 3e96327bf..04b973a5b 100644 --- a/lib/src/finnish/VerbFin.gf +++ b/lib/src/finnish/VerbFin.gf @@ -73,15 +73,16 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in { infVP v.sc b a vp v.vi) (predV v) ** {c2 = vp.c2} ; - AdvVP vp adv = insertObj (\\_,_,_ => adv.s) vp ; + AdvVP vp adv = insertAdv (\\_ => adv.s) vp ; - AdVVP adv vp = insertObj (\\_,_,_ => adv.s) vp ; + AdVVP adv vp = insertAdv (\\_ => adv.s) vp ; ReflVP v = insertObjPre (\\fin,b,agr => appCompl fin b v.c2 (reflPron agr)) v ; PassV2 v = let vp = predV v in { s = \\_ => vp.s ! VIPass ; s2 = \\_,_,_ => [] ; + adv = \\_ => [] ; ext = [] ; qp = v.qp ; sc = v.c2.c -- minut valitaan ; minua rakastetaan ; minulle kuiskataan