(Pes) add ZWNJ + remove some repetition for pronouns

This commit is contained in:
Inari Listenmaa
2019-03-05 15:18:57 +01:00
parent 2f8e4dfad6
commit 9aa34ac2b6
4 changed files with 31 additions and 15 deletions

View File

@@ -56,7 +56,7 @@ concrete CatPes of Cat = CommonX - [Adv] ** open ResPes, Prelude in {
CN = ResPes.CN ; CN = ResPes.CN ;
NP = ResPes.NP ; NP = ResPes.NP ;
Pron = {s : Str ; ps : Str ; a : Agr}; Pron = ResPes.Pron ;
Det = ResPes.Determiner ; Det = ResPes.Determiner ;
Predet = {s : Str} ; Predet = {s : Str} ;
Num = {s : Str ; n : Number ; isNum : Bool} ; Num = {s : Str ; n : Number ; isNum : Bool} ;

View File

@@ -281,9 +281,6 @@ oper
} ; } ;
-- Personal Pronouns
personalPron : (nom:Str) -> (poss:Str) -> Number -> Person -> Pron -- Hidden from public API, confusing naming. /IL
= \nom,poss,nn,p -> lin Pron {s = nom ; a = Ag nn p ; ps = poss};
{- {-
-- Demonstrative Pronouns -- Demonstrative Pronouns
demoPN : Str -> Str -> Str -> Quant = demoPN : Str -> Str -> Str -> Quant =

View File

@@ -253,13 +253,13 @@ oper
taryn = "ترین" ; taryn = "ترین" ;
----------------------------- -----------------------------
-- Noun Phrase -- Noun phrase
----------------------------- -----------------------------
partNP : Verb -> Str = \v -> v.prefix ++ v.s ! PerfStem ++ "شده" ; partNP : Verb -> Str = \v -> v.prefix ++ v.s ! PerfStem ++ "شده" ;
----------------------------------- -----------------------------------
-- Reflexive Pronouns -- Reflexive pronouns
----------------------------------- -----------------------------------
reflPron : Agr => Str = table { reflPron : Agr => Str = table {
@@ -280,4 +280,23 @@ oper
<Inanimate,Pl> => zwnj "آن" "ها" <Inanimate,Pl> => zwnj "آن" "ها"
}; };
-----------------------------------
-- Personal pronouns
-----------------------------------
Pron : Type = {s : Str ; ps : Str ; a : Agr} ;
mkPron : (nom:Str) -> (poss:Str) -> Number -> Person -> Pron -- Hidden from public API, confusing naming. /IL
= \nom,poss,nn,p -> lin Pron {s = nom ; a = Ag nn p ; ps = poss};
agr2pron : Agr => Pron = table {
Ag Sg P1 => mkPron "من" "م" Sg P1 ;
Ag Sg P2 => mkPron "تو" "ت" Sg P2 ;
Ag Sg P3 => mkPron "او" "ش" Sg P3 ;
Ag Pl P1 => mkPron "ما" "مان" Pl P1 ;
Ag Pl P2 => mkPron "شما" "تان" Pl P2 ;
Ag Pl P3 => mkPron (zwnj "آن" "ها") "شان" Pl P3
} ;
} }

View File

@@ -31,7 +31,7 @@ concrete StructuralPes of Structural = CatPes **
few_Det = mkDet ["تعداد کمی"] Pl True; -- check few_Det = mkDet ["تعداد کمی"] Pl True; -- check
for_Prep = mkPrep "برای" ; for_Prep = mkPrep "برای" ;
from_Prep = mkPrep "از" ; from_Prep = mkPrep "از" ;
he_Pron = personalPron "او" "ش" Sg P3 ; he_Pron = R.agr2pron ! Ag Sg P3 ;
here_Adv = ss "اینجا" ; here_Adv = ss "اینجا" ;
here7to_Adv = ss "اینجا" ; here7to_Adv = ss "اینجا" ;
here7from_Adv = ss "اینجا" ; here7from_Adv = ss "اینجا" ;
@@ -40,9 +40,9 @@ concrete StructuralPes of Structural = CatPes **
how8much_IAdv = ss "چقدر" ; how8much_IAdv = ss "چقدر" ;
if_Subj = mkSubj subjunctive "اگر" ; if_Subj = mkSubj subjunctive "اگر" ;
in8front_Prep = mkPrep "جلوی" ; in8front_Prep = mkPrep "جلوی" ;
i_Pron = personalPron "من" "م" Sg P1; i_Pron = R.agr2pron ! Ag Sg P1;
in_Prep = mkPrep "در" ; in_Prep = mkPrep "در" ;
it_Pron = personalPron "آن" "ش" Sg P3; it_Pron = R.agr2pron ! Ag Sg P3;
less_CAdv = {s = "کمتر" ; p = ""} ; less_CAdv = {s = "کمتر" ; p = ""} ;
many_Det = mkDet ["تعداد زیادی"] Pl True; -- check many_Det = mkDet ["تعداد زیادی"] Pl True; -- check
more_CAdv = {s = "بیشتر" ; p = "" } ; more_CAdv = {s = "بیشتر" ; p = "" } ;
@@ -61,7 +61,7 @@ concrete StructuralPes of Structural = CatPes **
please_Voc = ss "لطفاً" ; please_Voc = ss "لطفاً" ;
possess_Prep = mkPrep "" ; -- will be handeled in Ezafeh possess_Prep = mkPrep "" ; -- will be handeled in Ezafeh
quite_Adv = ss "کاملاً" ; quite_Adv = ss "کاملاً" ;
she_Pron = personalPron "او" "ش" Sg P3 ; she_Pron = R.agr2pron ! Ag Sg P3 ;
so_AdA = ss "بسیار" ; so_AdA = ss "بسیار" ;
somebody_NP = R.indeclNP "کwی" ; somebody_NP = R.indeclNP "کwی" ;
someSg_Det = mkDet "مقداری" Sg True ; someSg_Det = mkDet "مقداری" Sg True ;
@@ -74,7 +74,7 @@ concrete StructuralPes of Structural = CatPes **
there7to_Adv = ss "آنجا" ; there7to_Adv = ss "آنجا" ;
there7from_Adv = ss "آنجا" ; there7from_Adv = ss "آنجا" ;
therefore_PConj = ss ["به همین دلیل"] ; therefore_PConj = ss ["به همین دلیل"] ;
they_Pron = personalPron "آن ها" "شان" Pl P3 ; they_Pron = R.agr2pron ! Ag Pl P3 ;
this_Quant = mkQuant "این" "این" ; this_Quant = mkQuant "این" "این" ;
through_Prep = mkPrep ["از طریق"] ; through_Prep = mkPrep ["از طریق"] ;
too_AdA = ss "خیلی" ; too_AdA = ss "خیلی" ;
@@ -82,7 +82,7 @@ concrete StructuralPes of Structural = CatPes **
under_Prep = mkPrep "زیر" ** {lock_Prep = <>}; under_Prep = mkPrep "زیر" ** {lock_Prep = <>};
very_AdA = ss "خیلی" ; very_AdA = ss "خیلی" ;
want_VV = mkVV False subjunctive (mkV "خواستن" "خواه") ; --not aux want_VV = mkVV False subjunctive (mkV "خواستن" "خواه") ; --not aux
we_Pron = personalPron "ما" "مان" Pl P1 ; we_Pron = R.agr2pron ! Ag Pl P1 ;
whatSg_IP = {s = ["چه چیزی"] ; n = Sg } ; whatSg_IP = {s = ["چه چیزی"] ; n = Sg } ;
whatPl_IP = {s = ["چه چیزهایی"] ; n = Pl } ; whatPl_IP = {s = ["چه چیزهایی"] ; n = Pl } ;
when_IAdv = ss "کی" ; when_IAdv = ss "کی" ;
@@ -98,9 +98,9 @@ concrete StructuralPes of Structural = CatPes **
with_Prep = mkPrep "با"; with_Prep = mkPrep "با";
-- yes_Phr = ss "بله" ; -- yes_Phr = ss "بله" ;
yes_Utt = ss "بله" ; yes_Utt = ss "بله" ;
youSg_Pron = personalPron "تو" "ت" Sg P2 ; youSg_Pron = R.agr2pron ! Ag Sg P2 ;
youPl_Pron = personalPron "شما" "تان" Pl P2 ; youPl_Pron = R.agr2pron ! Ag Pl P2 ;
youPol_Pron = personalPron "شما" "تان" Pl P2 ; youPol_Pron = R.agr2pron ! Ag Pl P2 ;
-- no_Quant = demoPN "هیچ" ; -- no_Quant = demoPN "هیچ" ;
not_Predet = {s="نه"} ; not_Predet = {s="نه"} ;
if_then_Conj = sd2 "اگر" "آنگاه" ** {n = Sg} ; if_then_Conj = sd2 "اگر" "آنگاه" ** {n = Sg} ;