Files
gf-core/lib/src/latvian/ConjunctionLav.gf

61 lines
1.5 KiB
Plaintext

--# -path=.:../abstract:../common:../prelude
concrete ConjunctionLav of Conjunction = CatLav ** open
Coordination,
ResLav,
Prelude
in {
flags
optimize = all_subs ;
coding = utf8 ;
lin
ConjS = conjunctDistrSS ;
ConjRS conj ss = conjunctDistrTable Agreement conj ss ;
ConjAP conj ss = conjunctDistrTable4 Definiteness Gender Number Case conj ss ;
-- Conj -> [NP] -> NP
-- e.g. "she or we"
ConjNP conj ss = conjunctDistrTable Case conj ss ** {
agr = toAgr (fromAgr ss.agr).pers (conjNumber (fromAgr ss.agr).num conj.num) (fromAgr ss.agr).gend;
pol = Pos ;
isRel = False ;
isPron = False
} ;
-- Conj -> [Adv] -> Adv
-- e.g. "here or there"
ConjAdv or xs = (conjunctDistrSS or xs) ** {isPron = False};
-- These fun's are generated from the list cat's:
BaseS = twoSS ;
ConsS = consrSS comma ;
BaseAdv = twoSS ;
ConsAdv = consrSS comma ;
BaseNP x y = twoTable Case x y ** { agr = conjAgr x.agr y.agr } ;
ConsNP xs x = consrTable Case comma xs x ** { agr = conjAgr xs.agr x.agr } ;
BaseAP x y = twoTable4 Definiteness Gender Number Case x y ;
ConsAP xs x = consrTable4 Definiteness Gender Number Case comma xs x ;
BaseRS x y = twoTable Agreement x y ;
ConsRS xs x = consrTable Agreement comma xs x ;
lincat
[S] = {s1, s2 : Str} ;
[RS] = {s1, s2 : Agreement => Str} ;
[NP] = {s1, s2 : Case => Str ; agr : Agreement} ;
[AP] = {s1, s2 : Definiteness => Gender => Number => Case => Str} ;
[Adv] = {s1, s2 : Str} ;
-- TODO: [AdV]{2}
-- TODO: [IAdv]{2}
-- TODO: [CN] {2}
}