mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
(Pes) Add passive construction
This commit is contained in:
@@ -369,7 +369,6 @@ concrete LexiconPes of Lexicon = CatPes **
|
|||||||
uncertain_A = mkA "نامعلوم" ["با تردید"];
|
uncertain_A = mkA "نامعلوم" ["با تردید"];
|
||||||
|
|
||||||
oper
|
oper
|
||||||
doVerb = mkV "کردن" "کن" ;
|
|
||||||
takeVerb = mkV "گرفتن" "گیر" ;
|
takeVerb = mkV "گرفتن" "گیر" ;
|
||||||
hitVerb = mkV "زدن" "زن" ;
|
hitVerb = mkV "زدن" "زن" ;
|
||||||
giveVerb = mkV "دادن" "ده" ;
|
giveVerb = mkV "دادن" "ده" ;
|
||||||
|
|||||||
@@ -179,6 +179,8 @@ param
|
|||||||
| VImp Polarity Number -- bekon,bekonid/nakon,nakonid
|
| VImp Polarity Number -- bekon,bekonid/nakon,nakonid
|
||||||
;
|
;
|
||||||
|
|
||||||
|
Passive = Add -- ateš zadan -> ateš zade šodan
|
||||||
|
| Replace ; -- gom kardan -> gom ∅ šodan
|
||||||
oper
|
oper
|
||||||
impRoot : Str -> Str = \root -> case root of {
|
impRoot : Str -> Str = \root -> case root of {
|
||||||
st + "ی" => st ;
|
st + "ی" => st ;
|
||||||
@@ -203,7 +205,8 @@ oper
|
|||||||
VImp Pos Pl => addBh imp + "ید" ;
|
VImp Pos Pl => addBh imp + "ید" ;
|
||||||
VImp Neg Sg => addN imp ;
|
VImp Neg Sg => addN imp ;
|
||||||
VImp Neg Pl => addN imp + "ید" } ;
|
VImp Neg Pl => addN imp + "ید" } ;
|
||||||
prefix = [] -- For compound verbs
|
prefix = [] ;-- For compound verbs
|
||||||
|
passive = Add ;
|
||||||
} where {
|
} where {
|
||||||
kard = tk 1 kardan ;
|
kard = tk 1 kardan ;
|
||||||
kardeh = kard + "ه" ;
|
kardeh = kard + "ه" ;
|
||||||
@@ -227,7 +230,7 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
--
|
--
|
||||||
oper
|
oper
|
||||||
Verb = {s : VerbForm => Str ; prefix : Str} ;
|
Verb = {s : VerbForm => Str ; prefix : Str ; passive : Passive} ;
|
||||||
|
|
||||||
-- Verbs that end in یدن, ادن or ودن
|
-- Verbs that end in یدن, ادن or ودن
|
||||||
-- Also some verbs that don't: دانستن with stem دان
|
-- Also some verbs that don't: دانستن with stem دان
|
||||||
@@ -329,4 +332,8 @@ oper
|
|||||||
vf => beRegV.s ! vf }
|
vf => beRegV.s ! vf }
|
||||||
} where { beRegV = mkVerb "بودن" "باش" } ;
|
} where { beRegV = mkVerb "بودن" "باش" } ;
|
||||||
|
|
||||||
|
doVerb = mkVerb "کردن" "کن" ** {passive=Replace} ;
|
||||||
|
|
||||||
|
becomeVerb : Verb = mkVerb "شدن" "شو" ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,6 +112,8 @@ oper
|
|||||||
= lin V M.haveVerb ;
|
= lin V M.haveVerb ;
|
||||||
beVerb : V -- The verb "be", to be used for light verb constructions: e.g. compoundV "عاشق" beVerb.
|
beVerb : V -- The verb "be", to be used for light verb constructions: e.g. compoundV "عاشق" beVerb.
|
||||||
= lin V M.beVerb ;
|
= lin V M.beVerb ;
|
||||||
|
doVerb : V -- The verb "do", to be used for light verb constructions. In passive, is replaced by شدن.
|
||||||
|
= lin V M.doVerb ;
|
||||||
|
|
||||||
mkV2 : overload {
|
mkV2 : overload {
|
||||||
mkV2 : Str -> V2 ; -- Predictable V2 out of string. No preposition, را for direct object.
|
mkV2 : Str -> V2 ; -- Predictable V2 out of string. No preposition, را for direct object.
|
||||||
|
|||||||
@@ -131,7 +131,20 @@ oper
|
|||||||
predVc : (Verb ** {c2 : Compl}) -> VPHSlash = \verb ->
|
predVc : (Verb ** {c2 : Compl}) -> VPHSlash = \verb ->
|
||||||
predV verb ** vs verb.c2 ;
|
predV verb ** vs verb.c2 ;
|
||||||
|
|
||||||
---------------------
|
passV : Verb -> VPH = \v -> predV v ** {
|
||||||
|
s = becomeVerb.s ;
|
||||||
|
prefix = case v.passive of {
|
||||||
|
Add => v.s ! PerfStem ++ v.prefix ;
|
||||||
|
Replace => v.prefix
|
||||||
|
} ;
|
||||||
|
-- s = table {
|
||||||
|
-- ImpPrefix p => becomeVerb.s ! ImpPrefix p ;
|
||||||
|
-- x => case verb.passive of {
|
||||||
|
-- Add => verb.s ! PerfStem ;
|
||||||
|
-- Replace => []}
|
||||||
|
-- ++ becomeVerb.s ! x }
|
||||||
|
} ;
|
||||||
|
-- ---------------------
|
||||||
-- VP complementation
|
-- VP complementation
|
||||||
---------------------
|
---------------------
|
||||||
appComp : Compl -> (Mod=>Str) -> Str = \c2,obj ->
|
appComp : Compl -> (Mod=>Str) -> Str = \c2,obj ->
|
||||||
|
|||||||
@@ -52,8 +52,8 @@ concrete VerbPes of Verb = CatPes ** open ResPes,Prelude in {
|
|||||||
|
|
||||||
AdvVP vp adv = insertAdV adv.s vp ;
|
AdvVP vp adv = insertAdV adv.s vp ;
|
||||||
AdVVP adv vp = insertAdV adv.s vp ;
|
AdVVP adv vp = insertAdV adv.s vp ;
|
||||||
ReflVP v = insertCompPre reflPron v ;
|
ReflVP = insertCompPre reflPron ;
|
||||||
PassV2 v = predV v ; -- need to be fixed
|
PassV2 = passV ;
|
||||||
|
|
||||||
UseComp comp = insertComp comp.s (predV beVerb) ;
|
UseComp comp = insertComp comp.s (predV beVerb) ;
|
||||||
CompAP ap = {s = \\_ => ap.s ! Bare} ; -- check form of adjective
|
CompAP ap = {s = \\_ => ap.s ! Bare} ; -- check form of adjective
|
||||||
|
|||||||
Reference in New Issue
Block a user