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

@@ -9,21 +9,37 @@ flags
coding = utf8 ;
lin
PositAdvAdj a = { s = a.s ! (AAdv Posit) } ;
-- A -> Adv
-- e.g. "warmly"
PositAdvAdj a = {s = a.s ! (AAdv Posit) ; isPron = False} ;
-- Prep -> NP -> Adv
-- e.g. "in the house"
-- FIXME: postpozīcijas prievārdi
PrepNP prep np = {s = prep.s ++ np.s ! (prep.c ! (fromAgr np.agr).num) ; isPron = np.isPron} ;
-- CAdv -> A -> NP -> Adv
-- e.g. "more warmly than John"
-- TODO: vajag arī 'ātrāks par Jāni' un 'ātrāks nekā Jānis' pie more_CAdv
-- TODO: vai te tiešām veido 'ātrāk par Jāni'? kurš ir pareizais adverbs? nevis 'ātrāks par Jāni'?
ComparAdvAdj cadv a np = { s = cadv.s ++ a.s ! (AAdv cadv.deg) ++ cadv.prep ++ np.s ! Nom } ;
ComparAdvAdj cadv a np = {s = cadv.s ++ a.s ! (AAdv cadv.deg) ++ cadv.prep ++ np.s ! Nom ; isPron = False} ;
ComparAdvAdjS cadv a s = { s = cadv.s ++ a.s ! (AAdv cadv.deg) ++ cadv.prep ++ s.s } ;
-- CAdv -> A -> S -> Adv
-- e.g. "more warmly than he runs"
ComparAdvAdjS cadv a s = {s = cadv.s ++ a.s ! (AAdv cadv.deg) ++ cadv.prep ++ s.s ; isPron = False} ;
-- FIXME: postpozīcijas prievārdi
PrepNP prep np = { s = prep.s ++ np.s ! (prep.c ! (fromAgr np.agr).num) } ;
-- AdA -> Adv -> Adv
-- e.g. "very quickly"
AdAdv ada adv = {s = ada.s ++ adv.s ; isPron = False} ;
AdAdv = cc2 ;
-- TODO: PositAdAAdj : A -> AdA
SubjS = cc2 ;
-- Subj -> S -> Adv
-- e.g. "when she sleeps"
SubjS subj s = {s = subj.s ++ s.s ; isPron = False} ;
-- CAdv -> AdN
-- e.g. "less (than five)"
AdnCAdv cadv = {
s = case cadv.deg of {
Posit => cadv.s ++ cadv.prep ;