From 6dbacd9892eb3b42bc3a8eda91141092dd1c8348 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Thu, 25 Apr 2019 16:11:28 +0200 Subject: [PATCH] (Pes) Add relative pronoun type in Subj --- src/persian/AdverbPes.gf | 7 ++++++- src/persian/CatPes.gf | 6 +++++- src/persian/ParadigmsPes.gf | 11 +++++++++-- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/persian/AdverbPes.gf b/src/persian/AdverbPes.gf index 026d2dd1..3d6df3b6 100644 --- a/src/persian/AdverbPes.gf +++ b/src/persian/AdverbPes.gf @@ -16,7 +16,12 @@ concrete AdverbPes of Adverb = CatPes ** open ResPes, Prelude in { AdAdv ada adv = { s = ada.s ++ adv.s} ; -- SubjS = cc2 ; - SubjS sub snt = {s = sub.s ++ conjThat ++ snt.s ! sub.compl} ; + SubjS sub snt = { + s = case sub.relpron of { + Ke => sub.s ++ conjThat ++ snt.s ! sub.compl ; + Ance => "آنچه" ++ snt.s ! sub.compl } + } ; + AdnCAdv cadv = {s = cadv.s ++ "از"} ; } diff --git a/src/persian/CatPes.gf b/src/persian/CatPes.gf index 3a2da997..87436ec8 100644 --- a/src/persian/CatPes.gf +++ b/src/persian/CatPes.gf @@ -71,7 +71,11 @@ concrete CatPes of Cat = CommonX ** open ResPes, Prelude in { Conj = {s1,s2 : Str ; n : Number} ; -----b Conj = {s : Str ; n : Number} ; -----b DConj = {s1,s2 : Str ; n : Number} ; - Subj = {s : Str ; compl : VVForm} ; -- subjunctive or indicative + Subj = { + s : Str ; + compl : VVForm ; -- subjunctive or indicative + relpron : RelPron -- choose between که and آنچه + } ; VS = ResPes.Verb ** {compl : VVForm} ; -- subjunctive or indicative Prep = Compl ; ---- Open lexical classes, e.g. Lexicon diff --git a/src/persian/ParadigmsPes.gf b/src/persian/ParadigmsPes.gf index 472fa2bf..c65e8f96 100644 --- a/src/persian/ParadigmsPes.gf +++ b/src/persian/ParadigmsPes.gf @@ -216,9 +216,9 @@ oper mkSubj = overload { mkSubj : Str -> Subj -- Takes its verbal complement in indicative. - = \s -> lin Subj {s=s ; compl=indicative} ; + = \s -> mkSubj' s ; mkSubj : VVForm -> Str -> Subj -- Specify whether it takes complement in subjunctive or indicative. - = \vvf,s -> lin Subj {s=s ; compl=vvf} + = \vvf,s -> mkSubj' s ** {compl=vvf} } ; mkInterj : Str -> Interj @@ -248,6 +248,13 @@ oper Mod = ResPes.Mod ; ezafe = ResPes.Ezafe ; + + mkSubj' : Str -> Subj ; + mkSubj' s = lin Subj (case s of { + "آن" => {s = [] ; relpron = Ance ; compl = indicative} ; + _ => {s = s ; relpron = Ke ; compl = indicative} + }) ; + -- Removed mkV_1, mkV_2, mkN01 and mkN02 from public API, still available for -- any applications that open ParadigmsPes. /IL 2019-02-08 mkV_1 : Str -> V