diff --git a/examples/phrasebook/WordsFin.gf b/examples/phrasebook/WordsFin.gf index 6644d87d2..70e7a0ebc 100644 --- a/examples/phrasebook/WordsFin.gf +++ b/examples/phrasebook/WordsFin.gf @@ -279,7 +279,7 @@ concrete WordsFin of Words = SentencesFin ** by = SyntaxFin.mkAdv (casePrep adessive) (mkNP n) } ; - mkSuperl : A -> Det = \a -> mkDet the_Quant (mkOrd a) ; + mkSuperl : A -> Det = \a -> SyntaxFin.mkDet the_Quant (mkOrd a) ; far_IAdv = E.IAdvAdv L.far_Adv ; diff --git a/lib/src/finnish/NumeralFin.gf b/lib/src/finnish/NumeralFin.gf index 7f052c8fb..84d294a62 100644 --- a/lib/src/finnish/NumeralFin.gf +++ b/lib/src/finnish/NumeralFin.gf @@ -12,10 +12,7 @@ lincat lin num x = x ; - n2 = co - (nhn (mkSubst "a" "kaksi" "kahde" "kahte" "kahta" "kahteen" "kaksi" "kaksi" - "kaksien" "kaksia" "kaksiin")) - (ordN "a" "kahdes") ; --- toinen + n2 = kaksi_toinenN ; n3 = co (nhn (mkSubst "a" "kolme" "kolme" "kolme" "kolmea" "kolmeen" "kolmi" "kolmi" "kolmien" "kolmia" "kolmiin")) @@ -109,6 +106,10 @@ oper (nhn (mkSubst "ä" "yksi" "yhde" "yhte" "yhtä" "yhteen" "yksi" "yksi" "yksien" "yksiä" "yksiin")) (snoun2nounBind (mkN "ensimmäinen")) ; -- ensimmäinen ---- sadasensimmäinentuhannes + kaksi_toinenN = co + (nhn (mkSubst "a" "kaksi" "kahde" "kahte" "kahta" "kahteen" "kaksi" "kaksi" + "kaksien" "kaksia" "kaksiin")) + (snoun2nounBind (mkN "toinen")) ; kymmenenN = co (nhn (mkSubst "ä" "kymmenen" "kymmene" "kymmene" "kymmentä" "kymmeneen" "kymmeni" "kymmeni" "kymmenien" "kymmeniä" "kymmeniin")) diff --git a/lib/src/finnish/ParadigmsFin.gf b/lib/src/finnish/ParadigmsFin.gf index 668b4b49b..ecdcc8227 100644 --- a/lib/src/finnish/ParadigmsFin.gf +++ b/lib/src/finnish/ParadigmsFin.gf @@ -701,7 +701,7 @@ mkVS = overload { caseV c v = {s = v.s ; sc = NPCase c ; h = v.h ; lock_V = <> ; p = v.p} ; vOlla = { - s = table SVForm ["olla";"ole";"on";"o";"olk";"olla";"oli";"oli";"olisi";"oll";"oltu";"ollu";"liene";"ole"] ; + s = ollaSVerbForms ; sc = NPCase Nom ; h = Back ; lock_V = <> ; p = []} ; ---- lieneekö mk2V2 : V -> Prep -> V2 = \v,c -> v ** {c2 = c ; lock_V2 = <>} ; diff --git a/lib/src/finnish/ResFin.gf b/lib/src/finnish/ResFin.gf index e51ee19cc..42274ed24 100644 --- a/lib/src/finnish/ResFin.gf +++ b/lib/src/finnish/ResFin.gf @@ -454,7 +454,7 @@ oper infVP : NPForm -> Polarity -> Agr -> VP -> InfForm -> Str = infVPGen Pos ; --- The definitions below were moved here from $MorphoFin$ so that we the +-- The definitions below were moved here from $MorphoFin$ so that the -- auxiliary of predication can be defined. verbOlla : Verb = diff --git a/lib/src/finnish/VerbFin.gf b/lib/src/finnish/VerbFin.gf index 3e8560b9f..69bb63ee1 100644 --- a/lib/src/finnish/VerbFin.gf +++ b/lib/src/finnish/VerbFin.gf @@ -67,13 +67,8 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin, StemFin in { h = v.h ; p = v.p } ) ** {c2 = vp.c2} ; ---- correct ?? --- { ---- 153543936 (210912,312) - SlashV2VNP v np vp = - insertObjPre np.isNeg - (\fin,b,a -> appCompl fin b v.c2 np ++ ---- compilation to pgf takes too long 6/8/2013 - infVP v.sc b a vp v.vi) - (predSV v) ** {c2 = vp.c2} ; ----- } + + SlashV2VNP = StemFin.slashV2VNP ; ---- compilation to pgf takes too long 6/8/2013 hence a simplified version in stemmed/ AdvVP vp adv = insertAdv (\\_ => adv.s) vp ; diff --git a/lib/src/finnish/stemmed/StemFin.gf b/lib/src/finnish/stemmed/StemFin.gf index 70a66c94b..ad60abf46 100644 --- a/lib/src/finnish/stemmed/StemFin.gf +++ b/lib/src/finnish/stemmed/StemFin.gf @@ -174,6 +174,8 @@ oper SVForm : Type = Predef.Ints 13 ; SVerb : Type = {s : SVForm => Str ; h : Harmony} ; + ollaSVerbForms : SVForm => Str = table SVForm ["olla";"ole";"on";"o";"olk";"olla";"oli";"oli";"olisi";"oll";"oltu";"ollu";"liene";"ole"] ; + -- used in Cat SVerb1 = {s : SVForm => Str ; sc : NPForm ; h : Harmony ; p : Str} ; @@ -407,4 +409,22 @@ oper _ => BIND ++ ":" ++ BIND } ; + +----------------------------------------------------------------------- +---- a hack to make VerbFin compile accurately for library (in ../), +---- and in a simplified way for ParseFin (here) + + slashV2VNP : (SVerb1 ** {c2 : Compl ; vi : InfForm}) -> (NP ** {isNeg : Bool}) -> + (VP ** {c2 : Compl}) -> (VP ** {c2 : Compl}) + = \v, np, vp -> + insertObjPre False ---- ignoring np.isNeg + (\fin,b,a -> np.s ! v.c2.c ++ vp.c2.s ++ + ---- appCompl fin b v.c2 np ++ -- ignoring Acc variation and pre/postposition + (let verb = vp.s ! VIInf v.vi ! Simul ! Pos ! a + in verb.fin ++ verb.inf ++ vp.s2 ! fin ! b ! a ++ vp.adv ! b ++ vp.ext) + ---- infVP v.sc b a vp v.vi -- ignoring neg vp's and possessive suffix of inf + ) + (predSV v) ** {c2 = vp.c2} ; + + } \ No newline at end of file