forked from GitHub/gf-core
The case of the topic part of a clause (~subject) can now depend on the verb, allowing for less frequent agreement.
E.g. "man[Dat] garšo pica[Nom]" ("I like pizza").
The default case for the topic/subject remains the nominative case.
56 lines
1.2 KiB
Plaintext
56 lines
1.2 KiB
Plaintext
--# -path=.:../abstract:../common:../prelude
|
|
|
|
concrete RelativeLav of Relative = CatLav ** open
|
|
ResLav,
|
|
VerbLav
|
|
in {
|
|
|
|
flags
|
|
optimize = all_subs ;
|
|
coding = utf8 ;
|
|
|
|
lin
|
|
RelCl cl = { s = \\m,p,_ => "ka" ++ cl.s ! m ! p } ;
|
|
|
|
RelVP rp vp = {
|
|
s = \\m,p,ag =>
|
|
rp.s ! Masc ! Nom ++
|
|
buildVerb vp.v m p (toAgr (fromAgr ag).n P3 (fromAgr ag).g) ++
|
|
vp.focus ! ag
|
|
} ;
|
|
|
|
-- FIXME: vārdu secība - nevis 'kas mīl viņu' bet 'kas viņu mīl' (?)
|
|
-- FIXME: Masc varētu nebūt labi
|
|
RelSlash rp slash = {
|
|
s = \\m,p,ag => slash.p.s ++ rp.s ! Masc ! (slash.p.c ! Sg) ++ slash.s ! m ! p
|
|
} ;
|
|
|
|
-- FIXME: placeholder
|
|
-- TODO: jātestē, kautkas nav labi ar testpiemēru
|
|
FunRP p np rp = {
|
|
s = \\g,c => p.s ++ rp.s ! g ! c ++ np.s ! (p.c ! (fromAgr np.a).n)
|
|
} ;
|
|
|
|
IdRP = {
|
|
s = table {
|
|
Masc => table {
|
|
Nom => "kurš" ;
|
|
Gen => "kura" ;
|
|
Dat => "kuram" ;
|
|
Acc => "kuru" ;
|
|
Loc => "kurā" ;
|
|
ResLav.Voc => NON_EXISTENT
|
|
} ;
|
|
Fem => table {
|
|
Nom => "kura" ;
|
|
Gen => "kuras" ;
|
|
Dat => "kurai" ;
|
|
Acc => "kuru" ;
|
|
Loc => "kurā" ;
|
|
ResLav.Voc => NON_EXISTENT
|
|
}
|
|
}
|
|
} ;
|
|
|
|
}
|