diff --git a/src/persian/AdjectivePes.gf b/src/persian/AdjectivePes.gf index ca7bed159..685279e0f 100644 --- a/src/persian/AdjectivePes.gf +++ b/src/persian/AdjectivePes.gf @@ -14,7 +14,7 @@ concrete AdjectivePes of Adjective = CatPes ** open ResPes, Prelude in { ---- $SuperlA$ belongs to determiner syntax in $Noun$. ComplA2 a np = a ** { - s = \\m => np2str np ++ a.c2 ++ a.s ! m ; + s = \\m => a.c2 ++ np2str np ++ a.s ! m ; adv = np2str np ++ a.c2 ++ a.adv } ; diff --git a/src/persian/CatPes.gf b/src/persian/CatPes.gf index 87436ec83..34ad75310 100644 --- a/src/persian/CatPes.gf +++ b/src/persian/CatPes.gf @@ -77,11 +77,12 @@ concrete CatPes of Cat = CommonX ** open ResPes, Prelude in { relpron : RelPron -- choose between که and آنچه } ; VS = ResPes.Verb ** {compl : VVForm} ; -- subjunctive or indicative + V2S = ResPes.Verb ** {c2 : Compl ; compl : VVForm} ; Prep = Compl ; ---- Open lexical classes, e.g. Lexicon V, VQ = ResPes.Verb ; - V2, VA, V2A, V2Q, V2S = ResPes.Verb ** {c2 : Compl} ; + V2, VA, V2A, V2Q = ResPes.Verb ** {c2 : Compl} ; V3 = ResPes.Verb ** {c2, c3 : Compl} ; VV = ResPes.VV ; V2V = ResPes.VV ** {c2 : Compl} ; diff --git a/src/persian/LexiconPes.gf b/src/persian/LexiconPes.gf index c9e6cff1c..9f84da834 100644 --- a/src/persian/LexiconPes.gf +++ b/src/persian/LexiconPes.gf @@ -10,7 +10,7 @@ concrete LexiconPes of Lexicon = CatPes ** lin airplane_N = mkN01 "هواپیما" inanimate ; - answer_V2S = mkV2 (compoundV "جواب" giveVerb) "به" False; + answer_V2S = mkV2S (mkV2 (compoundV "جواب" giveVerb) "به" False) ; apartment_N = mkN01 "آپارتمان" inanimate; apple_N = mkN01 "سیب" inanimate; art_N = mkN01 "هنر" inanimate; diff --git a/src/persian/ParadigmsPes.gf b/src/persian/ParadigmsPes.gf index c65e8f96e..96eb4a154 100644 --- a/src/persian/ParadigmsPes.gf +++ b/src/persian/ParadigmsPes.gf @@ -150,10 +150,12 @@ oper } ; mkVS = overload { - mkVS : Str -> VS -- predictable verb with sentence complement + mkVS : Str -> VS -- predictable verb with sentence complement in subjunctive. = \s -> lin VS (regV s ** {compl=subjunctive}) ; - mkVS : V -> VS -- VS out of a verb - = \v -> lin VS (v ** {compl=subjunctive}) + mkVS : V -> VS -- VS out of a verb, sentence complement in subjunctive. + = \v -> lin VS (v ** {compl=subjunctive}) ; + mkVS : VVForm -> V -> VS -- sentence complement given as argument + = \vvf,v -> lin VS (v ** {compl=vvf}) ; } ; mkVV = overload { @@ -169,6 +171,19 @@ oper defVV : VV -> VV = \vv -> vv ** {isDef=True} ; + mkV2S = overload { + mkV2S : Str -> V2S -- predictable morphology, direct object with را, sentence complement in subjunctive. + = \s -> lin V2S (regV s ** {compl=subjunctive ; c2 = prepOrRa "را"}) ; + mkV2S : V -> V2S -- direct object with را, sentence complement in subjunctive. + = \v -> lin V2S (v ** {compl=subjunctive ; c2 = prepOrRa "را"}) ; + mkV2S : Prep -> VVForm -> V -> V2S -- direct object and mood for sentence complement as arguments. + = \prep,vvf,v -> lin V2S (v ** {compl=vvf ; c2 = prep}) ; + mkV2S : V2 -> V2S -- direct object given by V2, sentence complement in subjunctive. + = \v2 -> lin V2S (v2 ** {compl=subjunctive}) ; + mkV2S : VS -> V2S -- direct object with را, sentence complement given by VS. + = \vs -> lin V2S (vs ** {c2 = prepOrRa "را"}) + } ; + mkV2V = overload { mkV2V : V -> (cN : Str) -> (isAux : Bool) -> V2V -- Verb, complementiser for the noun, whether it's auxiliary. = \v,s,b -> let vv : VV = mkVV b subjunctive v in