1
0
forked from GitHub/gf-rgl

Merge remote-tracking branch 'upstream/master'

This commit is contained in:
odanoburu
2018-09-06 22:33:17 +00:00
8 changed files with 32 additions and 29 deletions

View File

@@ -89,6 +89,7 @@ concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in {
V2, V2A = ResAra.Verb ** {c2 : Str} ; V2, V2A = ResAra.Verb ** {c2 : Str} ;
V2V, V2S, V2Q = ResAra.Verb ** {c2 : Str} ; --- AR V2V, V2S, V2Q = ResAra.Verb ** {c2 : Str} ; --- AR
V3 = ResAra.Verb ** {c2, c3 : Str} ; V3 = ResAra.Verb ** {c2, c3 : Str} ;
VV = ResAra.Verb ** {isAux : Bool} ; --- IL
-- VV = {s : VVForm => Str ; isAux : Bool} ; -- VV = {s : VVForm => Str ; isAux : Bool} ;
A = ResAra.Adj ; A = ResAra.Adj ;

View File

@@ -30,7 +30,6 @@ oper ComplN3 : N3 -> NP -> N2 = notYet "ComplN3" ;
oper ComplVA : VA -> AP -> VP = notYet "ComplVA" ; oper ComplVA : VA -> AP -> VP = notYet "ComplVA" ;
oper ComplVQ : VQ -> QS -> VP = notYet "ComplVQ" ; oper ComplVQ : VQ -> QS -> VP = notYet "ComplVQ" ;
oper ComplVS : VS -> S -> VP = notYet "ComplVS" ; oper ComplVS : VS -> S -> VP = notYet "ComplVS" ;
oper ComplVV : VV -> VP -> VP = notYet "ComplVV" ;
oper ConjAP : Conj -> ListAP -> AP = notYet "ConjAP" ; oper ConjAP : Conj -> ListAP -> AP = notYet "ConjAP" ;
oper ConjAdv : Conj -> ListAdv -> Adv = notYet "ConjAdv" ; oper ConjAdv : Conj -> ListAdv -> Adv = notYet "ConjAdv" ;
oper ConjNP : Conj -> ListNP -> NP = notYet "ConjNP" ; oper ConjNP : Conj -> ListNP -> NP = notYet "ConjNP" ;
@@ -94,7 +93,6 @@ oper UttImpPl : Pol -> Imp -> Utt = notYet "UttImpPl" ;
oper UttImpPol : Pol -> Imp -> Utt = notYet "UttImpPol" ; oper UttImpPol : Pol -> Imp -> Utt = notYet "UttImpPol" ;
oper UttVP : VP -> Utt = notYet "UttVP" ; oper UttVP : VP -> Utt = notYet "UttVP" ;
oper VocNP : NP -> Voc = notYet "VocNP" ; oper VocNP : NP -> Voc = notYet "VocNP" ;
oper it_Pron : Pron = notYet "it_Pron" ;
oper pot3plus : Sub1000 -> Sub1000 -> Sub1000000 = notYet "pot3plus" ; oper pot3plus : Sub1000 -> Sub1000 -> Sub1000000 = notYet "pot3plus" ;
oper which_IQuant : IQuant = notYet "which_IQuant" ; oper which_IQuant : IQuant = notYet "which_IQuant" ;

View File

@@ -215,7 +215,7 @@ resource ParadigmsAra = open
mkV0 : V -> V0 ; mkV0 : V -> V0 ;
mkVS : V -> VS ; mkVS : V -> VS ;
mkV2S : V -> Str -> V2S ; mkV2S : V -> Str -> V2S ;
-- mkVV : V -> VV ; mkVV : V -> VV ;
mkV2V : V -> Str -> Str -> V2V ; mkV2V : V -> Str -> Str -> V2V ;
mkVA : V -> VA ; mkVA : V -> VA ;
mkV2A : V -> Str -> V2A ; mkV2A : V -> Str -> V2A ;
@@ -507,6 +507,8 @@ resource ParadigmsAra = open
mkVS v = v ** {lock_VS = <>} ; mkVS v = v ** {lock_VS = <>} ;
mkVQ v = v ** {lock_VQ = <>} ; mkVQ v = v ** {lock_VQ = <>} ;
mkVV v = lin VV v ** {isAux = False} ;
V0 : Type = V ; V0 : Type = V ;
---- V2S, V2V, V2Q, V2A : Type = V2 ; ---- V2S, V2V, V2Q, V2A : Type = V2 ;
AS, A2S, AV : Type = A ; AS, A2S, AV : Type = A ;

View File

@@ -12,10 +12,14 @@ concrete PhraseAra of Phrase = CatAra ** open
UttIAdv s = {s = \\g => s.s} ; ---- OK? AR UttIAdv s = {s = \\g => s.s} ; ---- OK? AR
UttQS qs = {s = \\g => qs.s ! QDir} ; UttQS qs = {s = \\g => qs.s ! QDir} ;
UttImpSg pol imp = {s = \\g => imp.s ! pol.p ! g ! ResAra.Sg} ; UttImpSg pol imp = {s = \\g => imp.s ! pol.p ! g ! ResAra.Sg ++ pol.s} ;
-- UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! Pl} ; UttImpPl,UttImpPol = \pol,imp -> {s = \\g => imp.s ! pol.p ! g ! ResAra.Pl ++ pol.s} ;
-- --
UttIP ip = {s = \\_ => ip.s} ; ---- AR UttIP ip = {s = \\_ => ip.s} ; ---- AR
-- AP = { s : Species => Gender => Number => State => Case => Str } ;
UttAP ap = {s = \\g => ap.s ! NoHum ! g ! Sg ! Def ! Nom } ; ---- OK? IL
-- UttIAdv iadv = iadv ; -- UttIAdv iadv = iadv ;
UttNP np = {s = \\_ => np.s ! Nom} ; UttNP np = {s = \\_ => np.s ! Nom} ;
-- UttVP vp = {s = infVP False vp (agrP3 Sg)} ; -- UttVP vp = {s = infVP False vp (agrP3 Sg)} ;

View File

@@ -1035,6 +1035,12 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
s2 : Str s2 : Str
}; };
linVP : VP -> Str = \vp -> --used for the first dummy implementation of ComplVV --IL
vp.s ! Per3 Masc Sg ! VPPerf ++ vp.s2 ++
case vp.isPred of {
True => vp.pred.s ! {g=Masc ; n=Sg} ! Acc ;
False => vp.obj.s } ;
predV : Verb -> VP = \v -> predV : Verb -> VP = \v ->
{ s = \\pgn,vf => { s = \\pgn,vf =>
let gn = pgn2gn pgn in let gn = pgn2gn pgn in
@@ -1061,29 +1067,16 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
_ => pgn _ => pgn
}; };
insertObj : NP -> VP -> VP = \np,vp -> insertObj : NP -> VP -> VP = \np,vp -> vp **
{ s = vp.s; { obj = {s = np.s ! Acc ; a = np.a} };
obj = {s = np.s ! Acc ; a = np.a};
s2 = vp.s2;
pred = vp.pred;
isPred = vp.isPred
};
insertPred : {s : AAgr => Case => Str} -> VP -> VP = \p,vp -> insertPred : {s : AAgr => Case => Str} -> VP -> VP = \p,vp -> vp **
{ s = vp.s; { pred = p;
obj = vp.obj;
s2 = vp.s2;
pred = p;
isPred = True isPred = True
}; };
insertStr : Str -> VP -> VP = \str,vp -> insertStr : Str -> VP -> VP = \str,vp -> vp **
{ s = vp.s; { s2 = str };
obj = vp.obj;
s2 = str;
pred = vp.pred;
isPred = vp.isPred
};
kaan : {s : AAgr => Case => Str} -> VP = \xabar -> kaan : {s : AAgr => Case => Str} -> VP = \xabar ->
insertPred xabar (predV (v1hollow {f = "ك"; c = "و" ; l = "ن"} u) ); insertPred xabar (predV (v1hollow {f = "ك"; c = "و" ; l = "ن"} u) );

View File

@@ -44,7 +44,7 @@ concrete StructuralAra of Structural = CatAra **
in8front_Prep = ss "مُقَابِلَ" ; in8front_Prep = ss "مُقَابِلَ" ;
i_Pron = mkPron "أَنَا" "نِي" "ِي" (Per1 Sing); i_Pron = mkPron "أَنَا" "نِي" "ِي" (Per1 Sing);
in_Prep = ss "فِي" ; in_Prep = ss "فِي" ;
-- it_Pron = mkPron "ِت" "ِت" "ِتس" Sg P3 ; it_Pron = mkPron "ِت" "ِت" "ِتس" (Per3 Masc Sg); -- IL: check
-- less_CAdv = ss "لسّ" ; -- less_CAdv = ss "لسّ" ;
many_Det = mkDet "جَمِيع" Pl Const ; many_Det = mkDet "جَمِيع" Pl Const ;
-- more_CAdv = ss "مْري" ; -- more_CAdv = ss "مْري" ;

View File

@@ -5,18 +5,20 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra in {
lin lin
UseV = predV ; UseV = predV ;
SlashVV vv vps = vps ** predV vv ; ---- totally wrong /IL
SlashV2a v = predV v ** {c2 = v.c2}; SlashV2a v = predV v ** {c2 = v.c2};
Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2}; Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2};
ComplSlash vp np = insertObj np vp ; ComplSlash vp np = insertObj np vp ;
-- ComplV3 v np np2 = insertObj np2 (insertObj np (predV v)) ; -- Complv3 v np np2 = insertObj np2 (insertObj np (predV v)) ;
{-{s = \\_ => v.c2 ++ np.s ! Acc ++ v.c3 ++ np2.s ! Acc ; {-{s = \\_ => v.c2 ++ np.s ! Acc ++ v.c3 ++ np2.s ! Acc ;
a = {pgn = Per3 Masc Sg ; isPron = False} } --FIXME a = {pgn = Per3 Masc Sg ; isPron = False} } --FIXME
(predV v) ;-} (predV v) ;-}
--
-- ComplVV v vp = insertObj (\\a => infVP v.isAux vp a) (predVV v) ; -- First dummy implementation / IL 2018-09-06
ComplVV v vp = insertStr (linVP vp) (predV v) ;
-- --
-- ComplVS v s = insertObj (\\_ => conjThat ++ s.s) (predV v) ; -- ComplVS v s = insertObj (\\_ => conjThat ++ s.s) (predV v) ;
-- ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ; -- ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;

View File

@@ -6,4 +6,7 @@ concrete AllEng of AllEngAbs =
blow_V,burn_V,come_V,dig_V,fall_V,fly_V,freeze_V,go_V,lie_V,run_V, blow_V,burn_V,come_V,dig_V,fall_V,fly_V,freeze_V,go_V,lie_V,run_V,
sew_V,sing_V,sit_V,sleep_V,spit_V,stand_V,swell_V,swim_V,think_V], sew_V,sing_V,sit_V,sleep_V,spit_V,stand_V,swell_V,swim_V,think_V],
ExtendEng ExtendEng
** {} ; **
open ExtraEng --- to force compilation since this module is used in many places
in
{} ;