diff --git a/lib/src/latvian/CatLav.gf b/lib/src/latvian/CatLav.gf index 23b0612de..a6021b6a6 100644 --- a/lib/src/latvian/CatLav.gf +++ b/lib/src/latvian/CatLav.gf @@ -27,7 +27,7 @@ lincat -- Question QCl = { s : VerbMood => Polarity => Str } ; - IP = { s : Case => Str ; n: Number } ; + IP = { s : Case => Str ; n : Number } ; IDet = { s : Gender => Str ; n : Number } ; IQuant = { s : Gender => Number => Str } ; -- TODO: IComp = { s : Str ; a : ResLav.Agr } ; diff --git a/lib/src/latvian/ExtraLav.gf b/lib/src/latvian/ExtraLav.gf index 9859ab3a9..a9fa27ac0 100644 --- a/lib/src/latvian/ExtraLav.gf +++ b/lib/src/latvian/ExtraLav.gf @@ -3,7 +3,9 @@ concrete ExtraLav of ExtraLavAbs = CatLav ** open ParadigmsLav, ParadigmsPronounsLav, + VerbLav, ResLav, + Coordination, Prelude in { @@ -47,11 +49,44 @@ lin -- Zemāk esošās f-cijas nav ExtraLavAbs, tās ir abstract/Extra.gf - GenNP np = {s = \\_,_,_ => np.s ! Gen ; d = Def ; isNeg = np.isNeg} ; + GenNP np = { + s = \\_,_,_ => np.s ! Gen ; + d = Def ; + isNeg = np.isNeg + } ; --ICompAP ap = {s = \\g,n => "cik" ++ ap.s ! Indef ! g ! n ! Nom } ; IAdvAdv adv = {s = "cik" ++ adv.s} ; have_V3 = mkV3 (mkV "būt") nom_Prep dat_Prep Dat ; + + -- for VP conjunction + + lincat + VPS = {s : Agr => Str} ; + [VPS] = {s1,s2 : Agr => Str} ; + + lin + BaseVPS = twoTable Agr ; + ConsVPS = consrTable Agr comma ; + + -- NP -> VPS -> S + -- NP = { s : Case => Str ; a : Agr ; isNeg : Bool } ; + PredVPS np vps = {s = np.s ! Nom ++ vps.s ! np.a} ; -- TODO: vps.s ! np.a ! np.isNeg + + -- Temp -> Pol -> VP -> VPS + MkVPS temp pol vp = { + s = \\subjAgr => + -- VP = { v : Verb ; compl : Agr => Str ; agr : ClAgr ; objNeg : Bool } ; + -- Verb = { s : Polarity => VerbForm => Str } ; + -- TODO: other VerbForm-s (moods) + -- TODO: subj-dependent double negation + -- TODO: subj/obj isNeg jāpārceļ uz Agr (?) + --let verb = vp.v.s ! pol.p ! Indicative (fromAgr agr).pers (fromAgr agr).num temp.t in + temp.s ++ buildVerb vp.v (Ind temp.a temp.t) pol.p subjAgr False vp.objNeg ++ vp.compl ! subjAgr + } ; + + -- Conj -> [VPS] -> VPS + ConjVPS = conjunctDistrTable Agr ; } diff --git a/lib/src/latvian/ExtraLavAbs.gf b/lib/src/latvian/ExtraLavAbs.gf index 7ec2086f2..c9f91bbc2 100644 --- a/lib/src/latvian/ExtraLavAbs.gf +++ b/lib/src/latvian/ExtraLavAbs.gf @@ -1,6 +1,9 @@ --# -path=.:../abstract:../common:../prelude -abstract ExtraLavAbs = Extra ** open ResLav, Prelude in { +abstract ExtraLavAbs = Extra ** +--open ResLav, Prelude in +{ + fun GenCN : NP -> CN -> CN ;