fixes in finnish

This commit is contained in:
aarne
2008-06-21 20:15:56 +00:00
parent 2ee2d8d29e
commit 7a227a136c
18 changed files with 60 additions and 46 deletions

View File

@@ -199,7 +199,7 @@ PredVP (UsePron i_Pron) (UseComp (CompAdv here_Adv))
RelCN (UseN car_N) (UseRCl TPres ASimul PPos (RelSlash IdRP (SlashVP (UsePron they_Pron) (SlashV2VNP beg_V2V (UsePron i_Pron) (SlashVV want_VV (SlashV2A paint_V2A (PositA red_A))))))) RelCN (UseN car_N) (UseRCl TPres ASimul PPos (RelSlash IdRP (SlashVP (UsePron they_Pron) (SlashV2VNP beg_V2V (UsePron i_Pron) (SlashVV want_VV (SlashV2A paint_V2A (PositA red_A)))))))
PhrUtt NoPConj (UttImpSg PPos (ImpVP (AdVVP always_AdV (ComplSlash (SlashV2a listen_V2) (DetArtSg DefArt (UseN sea_N)))))) NoVoc PhrUtt NoPConj (UttImpSg PPos (ImpVP (AdVVP always_AdV (ComplSlash (SlashV2a listen_V2) (DetArtSg DefArt (UseN sea_N)))))) NoVoc
PhrUtt NoPConj (UttS (UseCl TPres ASimul PPos (ExistNP (PredetNP only_Predet (DetCN (DetArtCard IndefArt (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))) (AdvCN (SentCN (UseN woman_N) (EmbedQS (UseQCl TCond ASimul PPos (QuestSlash (IdetIP (IdetQuant which_IQuant NumPl)) (SlashPrep (PredVP (UsePron i_Pron) (ComplVV want_VV (PassV2 see_V2))) with_Prep))))) (PrepNP in_Prep (DetArtSg DefArt (UseN rain_N))))))))) NoVoc PhrUtt NoPConj (UttS (UseCl TPres ASimul PPos (ExistNP (PredetNP only_Predet (DetCN (DetArtCard IndefArt (NumNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))))) (AdvCN (RelCN (UseN woman_N) (UseRCl TCond ASimul PPos (RelSlash IdRP (SlashPrep (PredVP (UsePron i_Pron) (ComplVV want_VV (PassV2 see_V2))) with_Prep)))) (PrepNP in_Prep (DetArtSg DefArt (UseN rain_N))))))))) NoVoc
PhrUtt NoPConj (UttImpSg PPos (ImpVP (ComplSlash (SlashV2A paint_V2A (ConjAP both7and_DConj (BaseAP (ComparA small_A (DetArtSg DefArt (UseN sun_N))) (ComparA big_A (DetArtSg DefArt (UseN moon_N)))))) (DetArtSg DefArt (UseN earth_N))))) NoVoc PhrUtt NoPConj (UttImpSg PPos (ImpVP (ComplSlash (SlashV2A paint_V2A (ConjAP both7and_DConj (BaseAP (ComparA small_A (DetArtSg DefArt (UseN sun_N))) (ComparA big_A (DetArtSg DefArt (UseN moon_N)))))) (DetArtSg DefArt (UseN earth_N))))) NoVoc
PhrUtt NoPConj (ImpPl1 (ComplVS hope_VS (ConjS either7or_DConj (BaseS (UseCl TPres ASimul PPos (PredVP (DetArtSg DefArt (ComplN2 father_N2 (DetArtSg DefArt (UseN baby_N)))) (UseV run_V))) (UseCl TPres ASimul PPos (PredVP (DetArtSg DefArt (UseN2 (Use2N3 distance_N3))) (UseComp (CompAP (PositA small_A))))))))) NoVoc PhrUtt NoPConj (ImpPl1 (ComplVS hope_VS (ConjS either7or_DConj (BaseS (UseCl TPres ASimul PPos (PredVP (DetArtSg DefArt (ComplN2 father_N2 (DetArtSg DefArt (UseN baby_N)))) (UseV run_V))) (UseCl TPres ASimul PPos (PredVP (DetArtSg DefArt (UseN2 (Use2N3 distance_N3))) (UseComp (CompAP (PositA small_A))))))))) NoVoc
PhrUtt NoPConj (UttS (UseCl TPres ASimul PPos (PredVP (DetCN every_Det (UseN baby_N)) (UseComp (CompNP (ConjNP either7or_DConj (BaseNP (DetArtSg IndefArt (UseN boy_N)) (DetArtSg IndefArt (UseN girl_N))))))))) NoVoc PhrUtt NoPConj (UttS (UseCl TPres ASimul PPos (PredVP (DetCN every_Det (UseN baby_N)) (UseComp (CompNP (ConjNP either7or_DConj (BaseNP (DetArtSg IndefArt (UseN boy_N)) (DetArtSg IndefArt (UseN girl_N))))))))) NoVoc

View File

@@ -83,8 +83,8 @@ concrete CatFin of Cat = CommonX ** open ResFin, Prelude in {
V, VS, VQ = Verb1 ; -- = {s : VForm => Str ; sc : Case} ; V, VS, VQ = Verb1 ; -- = {s : VForm => Str ; sc : Case} ;
V2, VA, V2Q, V2S = Verb1 ** {c2 : Compl} ; V2, VA, V2Q, V2S = Verb1 ** {c2 : Compl} ;
V2A = Verb1 ** {c2, c3 : Compl} ; V2A = Verb1 ** {c2, c3 : Compl} ;
VV = Verb1 ; ---- infinitive form VV = Verb1 ** {vi : InfForm} ; ---- infinitive form
V2V = Verb1 ** {c2 : Compl} ; ---- infinitive form V2V = Verb1 ** {c2 : Compl ; vi : InfForm} ; ---- infinitive form
V3 = Verb1 ** {c2, c3 : Compl} ; V3 = Verb1 ** {c2, c3 : Compl} ;
A = {s : Degree => AForm => Str} ; A = {s : Degree => AForm => Str} ;

View File

@@ -19,7 +19,7 @@ lin
beautiful_A = mkA (mkN "kaunis") "kauniimpi" "kaunein" ; beautiful_A = mkA (mkN "kaunis") "kauniimpi" "kaunein" ;
become_VA = mkVA (mkV "tulla") (casePrep translative) ; become_VA = mkVA (mkV "tulla") (casePrep translative) ;
beer_N = mkN "olut" "oluita" ; beer_N = mkN "olut" "oluita" ;
beg_V2V = mkV2 (mk2V "pyytää" "pyysi") (casePrep partitive) ; beg_V2V = mkV2V (mk2V "pyytää" "pyysi") (casePrep partitive) ;
big_A = mkA (mkN "suuri" "suuria") "suurempi" "suurin" ; big_A = mkA (mkN "suuri" "suuria") "suurempi" "suurin" ;
bike_N = mkN "polkupyörä" ; --- for correct vowel harmony bike_N = mkN "polkupyörä" ; --- for correct vowel harmony
bird_N = mkN "lintu" ; bird_N = mkN "lintu" ;

View File

@@ -14,7 +14,7 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
_ => det.n _ => det.n
} ; } ;
ncase : Case -> NForm = \c -> ncase : Case -> NForm = \c ->
case <n,c,det.isNum,det.isPoss, det.isDef> of { case <n, c, det.isNum, det.isPoss, det.isDef> of {
<_, Nom, True,_,_> => NCase Sg Part ; -- kolme kytkintä(ni) <_, Nom, True,_,_> => NCase Sg Part ; -- kolme kytkintä(ni)
<_, _, True,False,_> => NCase Sg c ; -- kolmeksi kytkimeksi <_, _, True,False,_> => NCase Sg c ; -- kolmeksi kytkimeksi
<Pl,Nom, _,_,False> => NCase Pl Part ; -- kytkimiä <Pl,Nom, _,_,False> => NCase Pl Part ; -- kytkimiä
@@ -107,7 +107,7 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
s1 = \\c => quant.s1 ! num.n ! c ++ num.s ! Sg ! c ; s1 = \\c => quant.s1 ! num.n ! c ++ num.s ! Sg ! c ;
s2 = [] ; s2 = [] ;
n = num.n ; n = num.n ;
isNum = True ; isNum = case num.n of {Sg => False ; _ => True} ;
isPoss = False ; isPoss = False ;
isDef = True isDef = True
} ; } ;
@@ -152,25 +152,22 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
NumSg = {s = \\_,_ => [] ; isNum = False ; n = Sg} ; NumSg = {s = \\_,_ => [] ; isNum = False ; n = Sg} ;
NumPl = {s = \\_,_ => [] ; isNum = False ; n = Pl} ; NumPl = {s = \\_,_ => [] ; isNum = False ; n = Pl} ;
NumCard n = n ** {isNum = True} ; NumCard n = n ** {isNum = case n.n of {Sg => False ; _ => True}} ; -- yksi talo/kaksi taloa
NumDigits numeral = { NumDigits numeral = {
s = \\n,c => numeral.s ! NCard (NCase n c) ; s = \\n,c => numeral.s ! NCard (NCase n c) ;
n = numeral.n ; n = numeral.n
isNum = True
} ; } ;
OrdDigits numeral = {s = \\n,c => numeral.s ! NOrd (NCase n c)} ; OrdDigits numeral = {s = \\n,c => numeral.s ! NOrd (NCase n c)} ;
NumNumeral numeral = { NumNumeral numeral = {
s = \\n,c => numeral.s ! NCard (NCase n c) ; s = \\n,c => numeral.s ! NCard (NCase n c) ;
n = numeral.n ; n = numeral.n
isNum = True
} ; } ;
OrdNumeral numeral = {s = \\n,c => numeral.s ! NOrd (NCase n c)} ; OrdNumeral numeral = {s = \\n,c => numeral.s ! NOrd (NCase n c)} ;
AdNum adn num = { AdNum adn num = {
s = \\n,c => adn.s ++ num.s ! n ! c ; s = \\n,c => adn.s ++ num.s ! n ! c ;
isNum = num.isNum ;
n = num.n n = num.n
} ; } ;
@@ -217,10 +214,10 @@ concrete NounFin of Noun = CatFin ** open ResFin, Prelude in {
--- If a possessive suffix is added here it goes after the complements... --- If a possessive suffix is added here it goes after the complements...
ComplN2 f x = { ComplN2 f x = {
s = \\nf => appCompl True Pos f.c2 x ++ f.s ! nf s = \\nf => f.s ! nf ++ appCompl True Pos f.c2 x
} ; } ;
ComplN3 f x = { ComplN3 f x = {
s = \\nf => appCompl True Pos f.c2 x ++ f.s ! nf ; s = \\nf => f.s ! nf ++ appCompl True Pos f.c2 x ;
c2 = f.c3 c2 = f.c3
} ; } ;

View File

@@ -55,6 +55,8 @@ oper
ablative : Case ; ablative : Case ;
allative : Case ; allative : Case ;
infFirst, infElat, infIllat : InfForm ;
-- The following type is used for defining *rection*, i.e. complements -- The following type is used for defining *rection*, i.e. complements
-- of many-place verbs and adjective. A complement can be defined by -- of many-place verbs and adjective. A complement can be defined by
-- just a case, or a pre/postposition and a case. -- just a case, or a pre/postposition and a case.
@@ -194,7 +196,9 @@ oper
mkVS : V -> VS ; mkVS : V -> VS ;
mkV2S : V -> Prep -> V2S ; mkV2S : V -> Prep -> V2S ;
mkVV : V -> VV ; mkVV : V -> VV ;
mkVVf : V -> InfForm -> VV ;
mkV2V : V -> Prep -> V2V ; mkV2V : V -> Prep -> V2V ;
mkV2Vf : V -> Prep -> InfForm -> V2V ;
mkVA : V -> Prep -> VA ; mkVA : V -> Prep -> VA ;
mkV2A : V -> Prep -> Prep -> V2A ; mkV2A : V -> Prep -> Prep -> V2A ;
mkVQ : V -> VQ ; mkVQ : V -> VQ ;
@@ -234,6 +238,8 @@ oper
ablative = Ablat ; ablative = Ablat ;
allative = Allat ; allative = Allat ;
infFirst = Inf1 ; infElat = Inf3Elat ; infIllat = Inf3Illat ;
prePrep : Case -> Str -> Prep = prePrep : Case -> Str -> Prep =
\c,p -> {c = NPCase c ; s = p ; isPre = True ; lock_Prep = <>} ; \c,p -> {c = NPCase c ; s = p ; isPre = True ; lock_Prep = <>} ;
postPrep : Case -> Str -> Prep = postPrep : Case -> Str -> Prep =
@@ -563,7 +569,8 @@ oper
dirdirV3 v = dirV3 v allative ; dirdirV3 v = dirV3 v allative ;
mkVS v = v ** {lock_VS = <>} ; mkVS v = v ** {lock_VS = <>} ;
mkVV v = v ** {lock_VV = <>} ; mkVV v = mkVVf v infFirst ;
mkVVf v f = v ** {vi = f ; lock_VV = <>} ;
mkVQ v = v ** {lock_VQ = <>} ; mkVQ v = v ** {lock_VQ = <>} ;
V0 : Type = V ; V0 : Type = V ;
@@ -572,7 +579,9 @@ oper
mkV0 v = v ** {lock_V = <>} ; mkV0 v = v ** {lock_V = <>} ;
mkV2S v p = mk2V2 v p ** {lock_V2S = <>} ; mkV2S v p = mk2V2 v p ** {lock_V2S = <>} ;
mkV2V v p = mk2V2 v p ** {lock_V2V = <>} ; mkV2V v p = mkV2Vf v p infIllat ;
mkV2Vf v p f = mk2V2 v p ** {vi = f ; lock_V2V = <>} ;
mkVA v p = v ** {c2 = p ; lock_VA = <>} ; mkVA v p = v ** {c2 = p ; lock_VA = <>} ;
mkV2A v p q = v ** {c2 = p ; c3 = q ; lock_V2A = <>} ; mkV2A v p q = v ** {c2 = p ; c3 = q ; lock_V2A = <>} ;
mkV2Q v p = mk2V2 v p ** {lock_V2Q = <>} ; mkV2Q v p = mk2V2 v p ** {lock_V2Q = <>} ;

View File

@@ -12,7 +12,7 @@ concrete PhraseFin of Phrase = CatFin ** open ResFin in {
UttIP ip = {s = ip.s ! NPCase Nom} ; UttIP ip = {s = ip.s ! NPCase Nom} ;
UttIAdv iadv = iadv ; UttIAdv iadv = iadv ;
UttNP np = {s = np.s ! NPCase Nom} ; UttNP np = {s = np.s ! NPCase Nom} ;
UttVP vp = {s = infVP (NPCase Nom) Pos (agrP3 Sg) vp} ; UttVP vp = {s = infVP (NPCase Nom) Pos (agrP3 Sg) vp Inf1} ;
UttAdv adv = adv ; UttAdv adv = adv ;
NoPConj = {s = []} ; NoPConj = {s = []} ;

View File

@@ -223,10 +223,9 @@ oper
sc = verb.sc sc = verb.sc
} ; } ;
insertObj : (Bool => Polarity => Agr => Str) -> VP -> VP = \obj,vp -> { insertObj : (Bool => Polarity => Agr => Str) -> VP -> VP = \obj,vp -> {
s = vp.s ; s = vp.s ;
s2 = \\fin,b,a => vp.s2 ! fin ! b ! a ++ obj ! fin ! b ! a ; s2 = \\fin,b,a => obj ! fin ! b ! a ++ vp.s2 ! fin ! b ! a ;
ext = vp.ext ; ext = vp.ext ;
sc = vp.sc sc = vp.sc
} ; } ;
@@ -269,14 +268,14 @@ oper
questPart : Str -> Str = \on -> on ++ BIND ++ "ko" ; ---- questPart : Str -> Str = \on -> on ++ BIND ++ "ko" ; ----
infVP : NPForm -> Polarity -> Agr -> VP -> Str = infVP : NPForm -> Polarity -> Agr -> VP -> InfForm -> Str =
\sc,pol,agr,vp -> \sc,pol,agr,vp,vi ->
let let
fin = case sc of { -- subject case fin = case sc of { -- subject case
NPCase Nom => True ; -- minä tahdon nähdä auton NPCase Nom => True ; -- minä tahdon nähdä auton
_ => False -- minun täytyy nähdä auto _ => False -- minun täytyy nähdä auto
} ; } ;
verb = vp.s ! VIInf Inf1 ! Simul ! Pos ! agr ; -- no "ei" verb = vp.s ! VIInf vi ! Simul ! Pos ! agr ; -- no "ei"
compl = vp.s2 ! fin ! pol ! agr ++ vp.ext -- but compl. case propagated compl = vp.s2 ! fin ! pol ! agr ++ vp.ext -- but compl. case propagated
in in
verb.fin ++ verb.inf ++ compl ; verb.fin ++ verb.inf ++ compl ;
@@ -551,7 +550,7 @@ oper
reflPron : Agr -> NP = \agr -> reflPron : Agr -> NP = \agr ->
let let
itse = (nhn (sKukko "itse" "itsen" "itsejä")).s ; itse = (nhn (sKukko "itse" "itsen" "itsejä")).s ;
nsa = possSuffix agr nsa = possSuffixFront agr
in { in {
s = table { s = table {
NPCase (Nom | Gen) | NPAcc => itse ! NPossNom Sg + nsa ; NPCase (Nom | Gen) | NPAcc => itse ! NPossNom Sg + nsa ;
@@ -563,6 +562,8 @@ oper
isPron = False -- no special acc form isPron = False -- no special acc form
} ; } ;
possSuffixFront : Agr -> Str = \agr ->
table Agr ["ni" ; "si" ; "nsä" ; "mme" ; "nne" ; "nsä"] ! agr ;
possSuffix : Agr -> Str = \agr -> possSuffix : Agr -> Str = \agr ->
table Agr ["ni" ; "si" ; "nsa" ; "mme" ; "nne" ; "nsa"] ! agr ; table Agr ["ni" ; "si" ; "nsa" ; "mme" ; "nne" ; "nsa"] ! agr ;

View File

@@ -47,7 +47,7 @@ concrete SentenceFin of Sentence = CatFin ** open Prelude, ResFin in {
EmbedS s = {s = etta_Conj ++ s.s} ; EmbedS s = {s = etta_Conj ++ s.s} ;
EmbedQS qs = {s = qs.s} ; EmbedQS qs = {s = qs.s} ;
EmbedVP vp = {s = infVP (NPCase Nom) Pos (agrP3 Sg) vp} ; --- case,pol,agr EmbedVP vp = {s = infVP (NPCase Nom) Pos (agrP3 Sg) vp Inf1} ; --- case,pol,agr,infform
UseCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! SDecl} ; UseCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! SDecl} ;
UseQCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p} ; UseQCl t a p cl = {s = t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p} ;

View File

@@ -28,8 +28,8 @@ concrete StructuralFin of Structural = CatFin **
but_PConj = ss "mutta" ; but_PConj = ss "mutta" ;
by8agent_Prep = postGenPrep "toimesta" ; by8agent_Prep = postGenPrep "toimesta" ;
by8means_Prep = casePrep adessive ; by8means_Prep = casePrep adessive ;
can8know_VV = mkV "osata" "osasi" ; can8know_VV = mkVV (mkV "osata" "osasi") ;
can_VV = mkV "voida" "voi" ; can_VV = mkVV (mkV "voida" "voi") ;
during_Prep = postGenPrep "aikana" ; during_Prep = postGenPrep "aikana" ;
either7or_DConj = sd2 "joko" "tai" ** {n = Sg} ; either7or_DConj = sd2 "joko" "tai" ** {n = Sg} ;
everybody_NP = makeNP (mkN "jokainen") Sg ; everybody_NP = makeNP (mkN "jokainen") Sg ;
@@ -62,7 +62,7 @@ concrete StructuralFin of Structural = CatFin **
more_CAdv = ss "enemmän" ; more_CAdv = ss "enemmän" ;
most_Predet = {s = \\n,c => (nForms2N (dSuurin "useinta")).s ! NCase n (npform2case n c)} ; most_Predet = {s = \\n,c => (nForms2N (dSuurin "useinta")).s ! NCase n (npform2case n c)} ;
much_Det = mkDet Sg {s = \\_ => "paljon"} ; much_Det = mkDet Sg {s = \\_ => "paljon"} ;
must_VV = caseV genitive (mkV "täytyä") ; must_VV = mkVV (caseV genitive (mkV "täytyä")) ;
no_Utt = ss "ei" ; no_Utt = ss "ei" ;
on_Prep = casePrep adessive ; on_Prep = casePrep adessive ;
--- one_Quant = mkDet Sg DEPREC --- one_Quant = mkDet Sg DEPREC
@@ -128,7 +128,7 @@ concrete StructuralFin of Structural = CatFin **
to_Prep = casePrep illative ; --- allative to_Prep = casePrep illative ; --- allative
under_Prep = postGenPrep "alla" ; under_Prep = postGenPrep "alla" ;
very_AdA = ss "erittäin" ; very_AdA = ss "erittäin" ;
want_VV = mkV "tahtoa" ; want_VV = mkVV (mkV "tahtoa") ;
we_Pron = mkPronoun "me" "meidän" "meitä" "meinä" "meihin" Pl P1 ; we_Pron = mkPronoun "me" "meidän" "meitä" "meinä" "meihin" Pl P1 ;
whatPl_IP = { whatPl_IP = {
s = table {NPAcc => "mitkä" ; c => mikaInt ! Pl ! npform2case Pl c} ; s = table {NPAcc => "mitkä" ; c => mikaInt ! Pl ! npform2case Pl c} ;
@@ -200,11 +200,13 @@ oper
Sg => table { Sg => table {
Nom => "mikä" ; Nom => "mikä" ;
Gen => "minkä" ; Gen => "minkä" ;
Part => "mitä" ;
c => mi.s ! NCase Sg c c => mi.s ! NCase Sg c
} ; } ;
Pl => table { Pl => table {
Nom => "mitkä" ; Nom => "mitkä" ;
Gen => "mittenkä" ; Gen => "minkä" ;
Part => "mitä" ;
c => mi.s ! NCase Sg c c => mi.s ! NCase Sg c
} }
} ; } ;
@@ -282,7 +284,7 @@ oper
oper oper
makeNP : N -> Number -> CatFin.NP ; makeNP : N -> MorphoFin.Number -> CatFin.NP ;
makeNP noun num = { makeNP noun num = {
s = \\c => noun.s ! NCase num (npform2case num c) ; s = \\c => noun.s ! NCase num (npform2case num c) ;
a = agrP3 num ; a = agrP3 num ;

View File

@@ -18,7 +18,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
ComplVV v vp = ComplVV v vp =
insertObj insertObj
(\\_,b,a => infVP v.sc b a vp) (\\_,b,a => infVP v.sc b a vp v.vi)
(predV {s = v.s ; (predV {s = v.s ;
sc = case vp.sc of { sc = case vp.sc of {
NPCase Nom => v.sc ; -- minun täytyy pestä auto NPCase Nom => v.sc ; -- minun täytyy pestä auto
@@ -40,7 +40,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
SlashV2Q v q = SlashV2Q v q =
insertExtrapos (q.s) (predV v) ** {c2 = v.c2} ; insertExtrapos (q.s) (predV v) ** {c2 = v.c2} ;
SlashV2V v vp = SlashV2V v vp =
insertObj (\\_,b,a => infVP v.sc b a vp) (predV v) ** {c2 = v.c2} ; insertObj (\\_,b,a => infVP v.sc b a vp v.vi) (predV v) ** {c2 = v.c2} ;
---- different infinitives ---- different infinitives
SlashV2A v ap = SlashV2A v ap =
insertObj insertObj
@@ -55,7 +55,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
SlashVV v vp = SlashVV v vp =
insertObj insertObj
(\\_,b,a => infVP v.sc b a vp) (\\_,b,a => infVP v.sc b a vp v.vi)
(predV {s = v.s ; (predV {s = v.s ;
sc = case vp.sc of { sc = case vp.sc of {
NPCase Nom => v.sc ; -- minun täytyy pestä auto NPCase Nom => v.sc ; -- minun täytyy pestä auto
@@ -66,7 +66,7 @@ concrete VerbFin of Verb = CatFin ** open Prelude, ResFin in {
SlashV2VNP v np vp = SlashV2VNP v np vp =
insertObj insertObj
(\\fin,b,a => appCompl fin b v.c2 np ++ infVP v.sc b a vp) (\\fin,b,a => appCompl fin b v.c2 np ++ infVP v.sc b a vp v.vi)
(predV v) ** {c2 = vp.c2} ; (predV v) ** {c2 = vp.c2} ;
AdvVP vp adv = insertObj (\\_,_,_ => adv.s) vp ; AdvVP vp adv = insertObj (\\_,_,_ => adv.s) vp ;

View File

@@ -6,7 +6,7 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
-- flags optimize=all ; -- flags optimize=all ;
param param
Prepos = P_de | P_a ; Prepos = P_de | P_a | PNul ;
VType = VHabere | VEsse | VRefl ; VType = VHabere | VEsse | VRefl ;
oper oper
@@ -17,7 +17,8 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
Nom => [] ; Nom => [] ;
Acc => [] ; Acc => [] ;
CPrep P_a => "à" ; CPrep P_a => "à" ;
CPrep P_de => elisDe CPrep P_de => elisDe ;
CPrep PNul => []
} ; } ;
artDef : Gender -> Number -> Case -> Str = \g,n,c -> artDef : Gender -> Number -> Case -> Str = \g,n,c ->
@@ -163,7 +164,7 @@ instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
quelPron : AAgr => Str = aagrForms "quel" "quelle" "quels" "quelles" ; quelPron : AAgr => Str = aagrForms "quel" "quelle" "quels" "quelles" ;
partQIndir = [] ; --- only for qui,que: elision "c" ; partQIndir = "ce" ; --- only for qui,que: elision "c" ;
reflPron : Number -> Person -> Case -> Str = \n,p,c -> reflPron : Number -> Person -> Case -> Str = \n,p,c ->
let pron = argPron Fem n p c in let pron = argPron Fem n p c in

View File

@@ -168,7 +168,7 @@ oper
Aton Nom => il ; Aton Nom => il ;
Aton Acc => le ; Aton Acc => le ;
Aton (CPrep P_de) => "en" ; --- hmm Aton (CPrep P_de) => "en" ; --- hmm
Aton (CPrep P_a) => lui ; Aton (CPrep _) => lui ;
Poss {n = Sg ; g = Masc} => son ; Poss {n = Sg ; g = Masc} => son ;
Poss {n = Sg ; g = Fem} => sa ; Poss {n = Sg ; g = Fem} => sa ;
Poss {n = Pl} => ses Poss {n = Pl} => ses

View File

@@ -300,7 +300,7 @@ oper
accusative = complAcc ** {lock_Prep = <>} ; accusative = complAcc ** {lock_Prep = <>} ;
genitive = complGen ** {lock_Prep = <>} ; genitive = complGen ** {lock_Prep = <>} ;
dative = complDat ** {lock_Prep = <>} ; dative = complDat ** {lock_Prep = <>} ;
mkPrep p = {s = p ; c = Acc ; isDir = False ; lock_Prep = <>} ; mkPrep p = {s = p ; c = CPrep PNul ; isDir = False ; lock_Prep = <>} ;
--- obsolete --- obsolete
Preposition : Type ; Preposition : Type ;

View File

@@ -144,7 +144,7 @@ instance DiffIta of DiffRomance = open CommonRomance, PhonoIta, BeschIta, Prelud
quelPron : AAgr => Str = aagrForms "quale" "quale" "quali" "quali" ; quelPron : AAgr => Str = aagrForms "quale" "quale" "quali" "quali" ;
partQIndir = [] ; --- "ciò" ; partQIndir = "ciò" ;
reflPron : Number -> Person -> Case -> Str = reflPron : Number -> Person -> Case -> Str =
let let

View File

@@ -12,7 +12,7 @@ lin
apartment_N = regN "apartamento" ; apartment_N = regN "apartamento" ;
apple_N = regN "mela" ; apple_N = regN "mela" ;
art_N = femN (regN "arte") ; art_N = femN (regN "arte") ;
ask_V2Q = mkV2Q (verboV (rispondere_76 "chiedere")) ParadigmsIta.dative ; ask_V2Q = mkV2Q (verboV (chiedere_29 "chiedere")) ParadigmsIta.dative ;
baby_N = regN "bambino" ; baby_N = regN "bambino" ;
bad_A = prefA (mkADeg (regA "cattivo") (regA "peggio")) ; bad_A = prefA (mkADeg (regA "cattivo") (regA "peggio")) ;
bank_N = regN "banca" ; bank_N = regN "banca" ;

View File

@@ -25,7 +25,7 @@ lin pot01 =
ental pred => [] ; ental pred => [] ;
_ => uno ! f ! g _ => uno ! f ! g
} ; } ;
n = Pl} ; n = Sg} ;
lin pot0 d = {s = d.s ; n = Pl} ; lin pot0 d = {s = d.s ; n = Pl} ;
lin pot110 = spl ((mkTal "dieci" [] [] "decimo").s ! ental indip) ; lin pot110 = spl ((mkTal "dieci" [] [] "decimo").s ! ental indip) ;

View File

@@ -30,14 +30,18 @@ incomplete concrete QuestionRomance of Question =
who = slash.c2.s ++ ip.s ! slash.c2.c who = slash.c2.s ++ ip.s ! slash.c2.c
in table { in table {
QDir => who ++ cls DInv ; QDir => who ++ cls DInv ;
QIndir => partQIndir ++ who ++ cls DDir QIndir => who ++ cls DDir
} }
} ; } ;
QuestIAdv iadv cl = { QuestIAdv iadv cl = {
s = \\t,a,p,_ => s = \\t,a,p,q =>
let let
cls = cl.s ! DInv ! t ! a ! p ! Indic ; ord = case q of {
QDir => DInv ;
QIndir => DDir
} ;
cls = cl.s ! ord ! t ! a ! p ! Indic ;
why = iadv.s why = iadv.s
in why ++ cls in why ++ cls
} ; } ;

View File

@@ -27,7 +27,7 @@ incomplete concrete VerbRomance of Verb =
SlashV2S v s = SlashV2S v s =
mkVPSlash v.c2 mkVPSlash v.c2
(insertExtrapos (insertExtrapos
(\\b => s.s ! Indic) ---- mood (\\b => conjThat ++ s.s ! Indic) ---- mood
(predV v)) ; (predV v)) ;
SlashV2Q v q = SlashV2Q v q =