(Pes) Add VVForm as a field to V2S

This commit is contained in:
Inari Listenmaa
2019-04-29 11:36:37 +02:00
parent 516d4444d3
commit 8f965e8556
3 changed files with 18 additions and 4 deletions

View File

@@ -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} ;

View File

@@ -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;

View File

@@ -150,9 +150,9 @@ 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
mkVS : V -> VS -- VS out of a verb, sentence complement in subjunctive.
= \v -> lin VS (v ** {compl=subjunctive})
} ;
@@ -169,6 +169,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 : V -> Prep -> VVForm -> V2S -- direct object and mood for sentence complement as arguments.
= \v,prep,vvf -> 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