forked from GitHub/gf-rgl
@@ -330,7 +330,7 @@ flags
|
|||||||
wind_N = brkN "ريح" "فِعل" "فِعال" Fem NoHum;
|
wind_N = brkN "ريح" "فِعل" "فِعال" Fem NoHum;
|
||||||
wing_N = brkN "جنح" "فَعال" "أَفعِلة" Masc NoHum ;
|
wing_N = brkN "جنح" "فَعال" "أَفعِلة" Masc NoHum ;
|
||||||
worm_N = brkN "دود" "فُعلة" "فِيعان" Fem NoHum ;
|
worm_N = brkN "دود" "فُعلة" "فِيعان" Fem NoHum ;
|
||||||
year_N = sdfN "سن" "فَعة" Fem NoHum ;
|
year_N = mkN "سَنَة" "سَنَوَات" Fem NoHum ;
|
||||||
|
|
||||||
blow_V = regV "يَنفُخ" ;
|
blow_V = regV "يَنفُخ" ;
|
||||||
breathe_V = dirV2 (v5 "نفس") ;
|
breathe_V = dirV2 (v5 "نفس") ;
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ resource ParadigmsAra = open
|
|||||||
= regV ;
|
= regV ;
|
||||||
mkV : (root : Str) -> (perf,impf : Vowel) -> V -- verb form I ; vowel = a|i|u
|
mkV : (root : Str) -> (perf,impf : Vowel) -> V -- verb form I ; vowel = a|i|u
|
||||||
= v1 ;
|
= v1 ;
|
||||||
mkV : (root : Str) -> VerbForm -> V -- FormI .. FormVIII (no VII) ; default vowels a u for I
|
mkV : (root : Str) -> VerbForm -> V -- FormI .. FormX (no VII, IX) ; default vowels a u for I
|
||||||
= formV ;
|
= formV ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -195,6 +195,8 @@ resource ParadigmsAra = open
|
|||||||
|
|
||||||
v8 : Str -> V ;
|
v8 : Str -> V ;
|
||||||
|
|
||||||
|
-- Verb Form X 'istaf`ala
|
||||||
|
|
||||||
v10 : Str -> V ;
|
v10 : Str -> V ;
|
||||||
|
|
||||||
--3 Two-place verbs
|
--3 Two-place verbs
|
||||||
@@ -536,7 +538,7 @@ resource ParadigmsAra = open
|
|||||||
mkVS v = v ** {lock_VS = <>} ;
|
mkVS v = v ** {lock_VS = <>} ;
|
||||||
mkVQ v = v ** {lock_VQ = <>} ;
|
mkVQ v = v ** {lock_VQ = <>} ;
|
||||||
|
|
||||||
regVV : V -> VV = \v -> lin VV v ** {c2 = []} ;
|
regVV : V -> VV = \v -> lin VV v ** {c2 = "أَنْ"} ;
|
||||||
c2VV : V -> Str -> VV = \v,prep -> regVV v ** {c2 = prep} ;
|
c2VV : V -> Str -> VV = \v,prep -> regVV v ** {c2 = prep} ;
|
||||||
|
|
||||||
V0 : Type = V ;
|
V0 : Type = V ;
|
||||||
@@ -557,8 +559,9 @@ resource ParadigmsAra = open
|
|||||||
mkA2V v p = mkA2 v p ** {lock_A2 = <>} ;
|
mkA2V v p = mkA2 v p ** {lock_A2 = <>} ;
|
||||||
|
|
||||||
|
|
||||||
smartN : Str -> N = \s -> case last s of {
|
smartN : Str -> N = \s -> case s of {
|
||||||
"ة" => mkFullN (sndf s) Fem NoHum ;
|
_ + "ة" => mkFullN (sndf s) Fem NoHum ;
|
||||||
|
_ + "ة" + #vow => mkFullN (sndf s) Fem NoHum ;
|
||||||
_ => mkFullN (sndm s) Masc NoHum
|
_ => mkFullN (sndm s) Masc NoHum
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -856,6 +856,8 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
\caSaA ->
|
\caSaA ->
|
||||||
case caSaA of {
|
case caSaA of {
|
||||||
lemma + ("ا"|"ى") => \\s,c => defArt s lemma + "ي" + dl ! s ! c ;
|
lemma + ("ا"|"ى") => \\s,c => defArt s lemma + "ي" + dl ! s ! c ;
|
||||||
|
lemma + "ة" =>
|
||||||
|
\\s,c => defArt s (lemma + "ت") + dl ! s ! c ;
|
||||||
_ => \\s,c => defArt s caSaA + dl ! s ! c
|
_ => \\s,c => defArt s caSaA + dl ! s ! c
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -953,12 +955,12 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
Const =>
|
Const =>
|
||||||
table {
|
table {
|
||||||
Nom => "َا";
|
Nom => "َا";
|
||||||
_ => "َي"
|
_ => "َيْ"
|
||||||
};
|
};
|
||||||
_ =>
|
_ =>
|
||||||
table {
|
table {
|
||||||
Nom => "َانِ";
|
Nom => "َانِ";
|
||||||
_ => "َينِ"
|
_ => "َيْنِ"
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -1189,6 +1191,8 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
isPred = False
|
isPred = False
|
||||||
};
|
};
|
||||||
|
|
||||||
|
predVSlash : Verb ** {c2 : Str} -> VPSlash = \v ->
|
||||||
|
predV v ** {c2 = v.c2} ;
|
||||||
|
|
||||||
-- in verbal sentences, the verb agrees with the subject
|
-- in verbal sentences, the verb agrees with the subject
|
||||||
-- in Gender but not in number
|
-- in Gender but not in number
|
||||||
@@ -1198,8 +1202,8 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf ->
|
|||||||
_ => pgn
|
_ => pgn
|
||||||
};
|
};
|
||||||
|
|
||||||
insertObj : NP -> VP -> VP = \np,vp -> vp **
|
insertObj : NP -> VPSlash -> VP = \np,vp -> vp **
|
||||||
{ obj = {s = np.s ! Acc ; a = np.a} };
|
{ obj = {s = vp.obj.s ++ vp.c2 ++ np.s ! Acc ; a = np.a} };
|
||||||
|
|
||||||
insertPred : {s : AAgr => Case => Str} -> VP -> VP = \p,vp -> vp **
|
insertPred : {s : AAgr => Case => Str} -> VP -> VP = \p,vp -> vp **
|
||||||
{ pred = p;
|
{ pred = p;
|
||||||
|
|||||||
@@ -20,7 +20,8 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
-- but_PConj = ss "بُت" ;
|
-- but_PConj = ss "بُت" ;
|
||||||
by8agent_Prep = ss "بِ" ;
|
by8agent_Prep = ss "بِ" ;
|
||||||
by8means_Prep = ss "بِ" ;
|
by8means_Prep = ss "بِ" ;
|
||||||
-- can8know_VV, can_VV = {
|
can_VV = mkVV (mkV "طوع" FormX) ;
|
||||||
|
-- can8know_VV = {
|
||||||
-- s = table VVForm [["بي َبلي تْ"] ; "عَن" ; "عُْلد" ;
|
-- s = table VVForm [["بي َبلي تْ"] ; "عَن" ; "عُْلد" ;
|
||||||
-- ["بّن َبلي تْ"] ; ["بِنغ َبلي تْ"] ; "عَنءت" ; "عُْلدنءت"] ;
|
-- ["بّن َبلي تْ"] ; ["بِنغ َبلي تْ"] ; "عَنءت" ; "عُْلدنءت"] ;
|
||||||
-- isAux = True
|
-- isAux = True
|
||||||
@@ -50,7 +51,7 @@ concrete StructuralAra of Structural = CatAra **
|
|||||||
-- more_CAdv = ss "مْري" ;
|
-- more_CAdv = ss "مْري" ;
|
||||||
most_Predet = mkPredet "أَكثَر" True ;
|
most_Predet = mkPredet "أَكثَر" True ;
|
||||||
much_Det = mkDet "الكَثِير مِنَ" Pl Const ;
|
much_Det = mkDet "الكَثِير مِنَ" Pl Const ;
|
||||||
must_VV = mkVV (v1 "وجب" a i) "أن" ;
|
must_VV = mkVV (v1 "وجب" a i) ;
|
||||||
-- s = table VVForm [["بي هَثي تْ"] ; "مُست" ; ["هَد تْ"] ;
|
-- s = table VVForm [["بي هَثي تْ"] ; "مُست" ; ["هَد تْ"] ;
|
||||||
-- ["هَد تْ"] ; ["هَثِنغ تْ"] ; "مُستنءت" ; ["هَدنءت تْ"]] ; ----
|
-- ["هَد تْ"] ; ["هَثِنغ تْ"] ; "مُستنءت" ; ["هَدنءت تْ"]] ; ----
|
||||||
-- isAux = True
|
-- isAux = True
|
||||||
|
|||||||
@@ -6,8 +6,8 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra in {
|
|||||||
UseV = predV ;
|
UseV = predV ;
|
||||||
|
|
||||||
SlashVV vv vps = vps ** predV vv ; ----IL
|
SlashVV vv vps = vps ** predV vv ; ----IL
|
||||||
SlashV2a v = predV v ** {c2 = v.c2};
|
SlashV2a v = predVSlash v ;
|
||||||
Slash3V3 v np = insertObj np (predV v) ** {c2 = v.c2};
|
Slash3V3 v np = insertObj np (predVSlash v) ** {c2 = v.c3};
|
||||||
|
|
||||||
ComplSlash vp np = insertObj np vp ;
|
ComplSlash vp np = insertObj np vp ;
|
||||||
|
|
||||||
@@ -17,12 +17,12 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra in {
|
|||||||
a = {pgn = Per3 Masc Sg ; isPron = False} } --FIXME
|
a = {pgn = Per3 Masc Sg ; isPron = False} } --FIXME
|
||||||
(predV v) ;-}
|
(predV v) ;-}
|
||||||
|
|
||||||
ComplVV vv vp = --- IL
|
ComplVV vv vp = let vvVP = predV vv in --- IL
|
||||||
predV vv ** {
|
vp ** {
|
||||||
s2 = vv.c2 ; -- add the preposition of the VV. TODO: do we need a separate field in the VP?
|
s = \\pgn,vpf => vvVP.s ! pgn ! vpf
|
||||||
pred = compVP vp ; -- add VP complement in pred. TODO: what agreement features are needed?
|
++ vv.c2 -- أَنْ
|
||||||
isPred = False } ; {- Despite verb complement being in pred, it's not predicative.
|
++ vp.s ! pgn ! VPImpf Cnj
|
||||||
Changing this to True causes PredVP to not include the verb. -}
|
} ;
|
||||||
|
|
||||||
-- 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) ;
|
||||||
|
|||||||
Reference in New Issue
Block a user