mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
(Ara) Add Slash2V3 + fix Slash3V3
This commit is contained in:
@@ -23,7 +23,6 @@ oper ReflA2 : A2 -> AP = notYet "ReflA2" ;
|
|||||||
oper ReflVP : VPSlash -> VP = notYet "ReflVP" ;
|
oper ReflVP : VPSlash -> VP = notYet "ReflVP" ;
|
||||||
oper SentCN : CN -> SC -> CN = notYet "SentCN" ;
|
oper SentCN : CN -> SC -> CN = notYet "SentCN" ;
|
||||||
oper SlashPrep : Cl -> Prep -> ClSlash = notYet "SlashPrep" ;
|
oper SlashPrep : Cl -> Prep -> ClSlash = notYet "SlashPrep" ;
|
||||||
oper Slash2V3 : V3 -> NP -> VPSlash = notYet "Slash2V3" ;
|
|
||||||
oper SlashV2A : V2A -> AP -> VPSlash = notYet "SlashV2A" ;
|
oper SlashV2A : V2A -> AP -> VPSlash = notYet "SlashV2A" ;
|
||||||
oper SlashV2Q : V2Q -> QS -> VPSlash = notYet "SlashV2Q" ;
|
oper SlashV2Q : V2Q -> QS -> VPSlash = notYet "SlashV2Q" ;
|
||||||
oper SlashV2S : V2S -> S -> VPSlash = notYet "SlashV2S" ;
|
oper SlashV2S : V2S -> S -> VPSlash = notYet "SlashV2S" ;
|
||||||
|
|||||||
@@ -1721,8 +1721,9 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
insertObj : NP -> VPSlash -> VP = \np,vp -> vp ** {
|
insertObj : NP -> VPSlash -> VP = \np,vp -> vp ** {
|
||||||
obj = {s = vp.obj.s -- old object, if there was one
|
obj = {s = vp.obj.s -- old object, if there was one
|
||||||
++ bindIfPron np vp -- new object, bind if pronoun and not pred
|
++ bindIfPron np vp -- new object, bind if pronoun and not pred
|
||||||
++ vp.agrObj ! np.a.pgn ; -- only used for SlashV2V
|
++ vp.agrObj ! np.a.pgn ; -- only used for SlashV2V and Slash3V3
|
||||||
a = agrLite np.a}
|
a = agrLite np.a} ;
|
||||||
|
agrObj = \\_ => []
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
bindIf : Bool -> Str = \b -> if_then_Str b BIND [] ;
|
bindIf : Bool -> Str = \b -> if_then_Str b BIND [] ;
|
||||||
|
|||||||
@@ -35,7 +35,22 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra, ParamX in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
SlashV2a = slashV2 ;
|
SlashV2a = slashV2 ;
|
||||||
Slash3V3 v np = insertObj np (slashV2 v) ** {c2 = v.c3 ; agrObj = \\_ => []};
|
Slash2V3 v np = insertObj np (slashV2 v) ** {c2 = v.c3 ; agrObj = \\_ => []};
|
||||||
|
|
||||||
|
Slash3V3 v np =
|
||||||
|
let vp = slashV2 v ** {c2 =
|
||||||
|
v.c2 ** {
|
||||||
|
s = case np.a.isPron of {
|
||||||
|
True => case v.c2.binds of {
|
||||||
|
True => v.c2.s ; -- to make sure there's something for the object to attach to
|
||||||
|
False => v.c2.s ++ "إِيَّا" } ; -- see https://en.wiktionary.org/wiki/%D8%A5%D9%8A%D8%A7#Particle /IL
|
||||||
|
False => v.c2.s }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
in vp ** {
|
||||||
|
c2 = v.c3 ;
|
||||||
|
agrObj = \\_ => bindIfPron np vp -- will be emptied when insertObj is called /IL
|
||||||
|
} ;
|
||||||
|
|
||||||
ComplSlash vp np = insertObj np vp ;
|
ComplSlash vp np = insertObj np vp ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user