Latvian: if ~object~ is a Pron and is not modified by a RCl, it is more natural/neutral if it precedes the verb. For this, the lin types of NP and Adv are extended with a boolean field isPron (in addition to the previously introduced isRel field that indicates whether a CN or NP is modified by a RCl).

This commit is contained in:
normundsg
2013-12-16 19:08:38 +00:00
parent 27bd7bbb15
commit 120e616a28
12 changed files with 261 additions and 166 deletions

View File

@@ -32,12 +32,13 @@ lin
SlashVS np vs sslash = mkClause
np
(lin VP {
v = vs ;
compl = \\_ => "," ++ vs.conj.s ++ sslash.s ;
voice = Act ;
leftVal = vs.leftVal ;
v = vs ;
compl = \\_ => "," ++ vs.conj.s ++ sslash.s ;
voice = Act ;
leftVal = vs.leftVal ;
rightAgr = AgrP3 Sg Masc ;
rightPol = Pos ;
objPron = False
}) ** { prep = sslash.prep } ;
-- ComplVS v s = { v = v ; compl = \\_ => "," ++ v.subj.s ++ s.s } ;
@@ -74,13 +75,25 @@ oper
}
in lin Cl {
s = \\mood,pol =>
case mood of { -- subject
case mood of { -- subject
Deb _ _ => np.s ! Dat ; --# notpresent
_ => np.s ! vp.leftVal
} ++
closeRelCl np.isRel ++
buildVerb vp.v mood pol agr np.pol vp.rightPol ++ -- verb
vp.compl ! np.agr -- object(s), complements, adverbial modifiers
closeRelCl np.isRel ++ -- comma, if necessary
case vp.objPron of {
False =>
buildVerb vp.v mood pol agr np.pol vp.rightPol ++ -- verb
vp.compl ! np.agr ; -- object(s), modifiers and other complements
True =>
-- FIXME: the object should be separated from other complements that should remain on the right side
(
vp.compl ! np.agr ++ -- object(s), modifiers and other complements
buildVerb vp.v mood pol agr np.pol vp.rightPol -- verb
) --| (
--buildVerb vp.v mood pol agr np.pol vp.rightPol ++ -- verb
--vp.compl ! np.agr -- object(s), modifiers and other complements
--)
}
} ;
-- FIXME: quick&dirty - lai kompilētos pret RGL API