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