diff --git a/lib/src/abstract/Extra.gf b/lib/src/abstract/Extra.gf index 885c9bf62..d30423665 100644 --- a/lib/src/abstract/Extra.gf +++ b/lib/src/abstract/Extra.gf @@ -111,5 +111,32 @@ abstract Extra = Cat ** { AdjAsCN : AP -> CN ; -- a green one ; en grön (Swe) +-- AR 7/6/2016 +-- reflexive noun phrases: a generalization of Verb.ReflVP, which covers just reflexive pronouns +-- This is necessary in languages like Swedish, which have special reflexive possessives. +-- However, it is also needed in application grammars that want to treat "brush one's teeth" as a one-place predicate. + + cat + RNP ; -- reflexive noun phrase, e.g. "my family and myself" + RNPList ; -- list of reflexives to be coordinated, e.g. "my family, myself, everyone" + +-- Notice that it is enough for one NP in RNPList to be RNP. + + fun + ReflRNP : VPSlash -> RNP -> VP ; -- support my family and myself + + ReflPron : RNP ; -- myself + ReflPoss : Num -> CN -> RNP ; -- my family + + PredetRNP : Predet -> RNP -> RNP ; -- all my brothers + + ConjRNP : Conj -> RNPList -> RNP ; -- my family, John and myself + + Base_rr_RNP : RNP -> RNP -> RNPList ; -- my family, myself + Base_nr_RNP : NP -> RNP -> RNPList ; -- John, myself + Base_rn_RNP : RNP -> NP -> RNPList ; -- myself, John + Cons_rr_RNP : RNP -> RNPList -> RNPList ; -- my family, myself, John + Cons_nr_RNP : NP -> RNPList -> RNPList ; -- John, my family, myself +---- Cons_rn_RNP : RNP -> ListNP -> RNPList ; -- myself, John, Mary } diff --git a/lib/src/ancient_greek.tar.gz b/lib/src/ancient_greek.tar.gz new file mode 100644 index 000000000..bead5f4cb Binary files /dev/null and b/lib/src/ancient_greek.tar.gz differ diff --git a/lib/src/english/ExtraEng.gf b/lib/src/english/ExtraEng.gf index 3b7b2c1dc..9551d2edf 100644 --- a/lib/src/english/ExtraEng.gf +++ b/lib/src/english/ExtraEng.gf @@ -281,6 +281,21 @@ lin g = cn.g } ; + lincat + RNP = {s : Agr => Str} ; + RNPList = {s1,s2 : Agr => Str} ; + + lin + ReflRNP vps rnp = insertObjPre (\\a => vps.c2 ++ rnp.s ! a) vps ; + ReflPron = {s = reflPron} ; + ReflPoss num cn = {s = \\a => possPron ! a ++ num.s ! Nom ++ cn.s ! num.n ! Nom} ; + PredetRNP predet rnp = {s = \\a => predet.s ++ rnp.s ! a} ; + +---- TODO: RNPList construction + + +------ English-only part + that_RP = { s = table { RC _ (NCase Gen) | RC _ NPNomPoss => "whose" ; diff --git a/lib/src/english/ResEng.gf b/lib/src/english/ResEng.gf index 14ca5361e..88fc774d0 100644 --- a/lib/src/english/ResEng.gf +++ b/lib/src/english/ResEng.gf @@ -525,6 +525,17 @@ param AgP2 Pl => "yourselves" ; AgP3Pl _ => "themselves" } ; + + possPron : Agr => Str = table { + AgP1 Sg => "my" ; + AgP2 Sg => "your" ; + AgP3Sg Masc => "his" ; + AgP3Sg Fem => "her" ; + AgP3Sg Neutr => "its" ; + AgP1 Pl => "our" ; + AgP2 Pl => "your" ; + AgP3Pl _ => "their" + } ; -- For $Sentence$.