diff --git a/src/arabic/CatAra.gf b/src/arabic/CatAra.gf index 2fda445f..95a53b92 100644 --- a/src/arabic/CatAra.gf +++ b/src/arabic/CatAra.gf @@ -11,7 +11,7 @@ concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in { -- Tensed/Untensed SSlash, - S = {s : Str} ; + S = {s : Order => Str} ; -- subordinate clause has nominal word order and subject in acc QS = {s : QForm => Str} ; RS = {s : Agr => Case => Str} ; -- case because the relative pronoun inflects in case diff --git a/src/arabic/ConjunctionAra.gf b/src/arabic/ConjunctionAra.gf index c57f029d..0db6abd1 100644 --- a/src/arabic/ConjunctionAra.gf +++ b/src/arabic/ConjunctionAra.gf @@ -3,20 +3,22 @@ concrete ConjunctionAra of Conjunction = lincat - [S], + [S] = {s1,s2 : Order => Str} ; [Adv] = {s1,s2 : Str} ; [NP] = {s1,s2 : Case => Str ; a : Agr ; empty : Str} ; [AP] = {s1,s2 : Species => Gender => Number => State => Case => Str} ; lin - BaseS, + BaseAdv = twoSS ; - ConsS, ConsAdv = consrSS comma ; - ConjS, ConjAdv = conjunctSS ; + BaseS = twoTable Order ; + ConsS = consrTable Order comma ; + ConjS = conjunctTable Order ; + BaseNP x y = twoTable Case x y ** { a = conjAgr x.a y.a ; empty = [] @@ -31,9 +33,9 @@ lin empty = [] } ; - BaseAP x y = twoTable5 Species Gender Number State Case x y ; - ConsAP xs x = consrTable5 Species Gender Number State Case comma xs x ; - ConjAP conj ss = conjunctTable5 Species Gender Number State Case conj ss ; + BaseAP = twoTable5 Species Gender Number State Case ; + ConsAP = consrTable5 Species Gender Number State Case comma ; + ConjAP = conjunctTable5 Species Gender Number State Case ; oper diff --git a/src/arabic/PhraseAra.gf b/src/arabic/PhraseAra.gf index 9bc36fa6..40482e3a 100644 --- a/src/arabic/PhraseAra.gf +++ b/src/arabic/PhraseAra.gf @@ -19,7 +19,7 @@ concrete PhraseAra of Phrase = CatAra ** open UttCN cn = {s = ResAra.uttCN cn } ; --IL UttNP np = {s = \\_ => np.s ! Nom} ; UttVP vp = {s = uttVP vp} ; --IL - UttS, + UttS s = {s = \\_ => s.s ! Verbal} ; UttAdv, UttIAdv = \s -> {s = \\_ => s.s} ; ---- OK? AR -- diff --git a/src/arabic/ResAra.gf b/src/arabic/ResAra.gf index 3c3afade..870d8402 100644 --- a/src/arabic/ResAra.gf +++ b/src/arabic/ResAra.gf @@ -27,7 +27,8 @@ resource ResAra = PatternsAra ** open Prelude, Predef, OrthoAra, ParamX in { Mood = Ind | Cnj | Jus ; Voice = Act | Pas ; Order = Verbal | Nominal - | VOS ; -- Relative clauses with resumptive pronouns + | VOS -- Relative clauses with resumptive pronouns + | Subord ; -- Nominal word order but subject in accusative oper @@ -1293,7 +1294,7 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf -> proDrop : NP -> NP = \np -> case np.a.isPron of { - True => np ** {s = \\_ => []}; + True => np ** {s = table {Nom => [] ; x => np.s ! x}}; _ => np } ; @@ -1474,10 +1475,11 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf -> => vp.pred.s ! gn ! Nom; --xabar marfooc _ => vp.pred.s ! gn ! Acc --xabar kaana wa laysa manSoob }; - subj = np.empty - ++ case of { - => [] ; -- prodrop if it's not predicative - _ => vp.sc.s ++ np.s ! vp.sc.c + sc : Preposition = case o of {Subord => {s=[]; c=Acc} ; Dir => vp.sc} ; + subj = np.empty ++ sc.s + ++ case vp.isPred of { + False => (proDrop np).s ! sc.c ; -- prodrop if it's not predicative + True => np.s ! sc.c } ; } in @@ -1486,9 +1488,8 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf -> True => vp.obj.s ++ subj ; -- obj. clitic attaches directly to the verb False => subj ++ vp.obj.s } ++ vp.s2 ++ pred t p ; - Nominal => subj ++ vStr t p ++ vp.obj.s ++ vp.s2 ++ pred t p ; - VOS => vStr t p ++ vp.obj.s ++ vp.s2 ++ pred t p ++ subj - + VOS => vStr t p ++ vp.obj.s ++ vp.s2 ++ pred t p ++ subj ; + Nominal|Subord => subj ++ vStr t p ++ vp.obj.s ++ vp.s2 ++ pred t p } } ; diff --git a/src/arabic/SentenceAra.gf b/src/arabic/SentenceAra.gf index 408b3468..34267a0f 100644 --- a/src/arabic/SentenceAra.gf +++ b/src/arabic/SentenceAra.gf @@ -66,11 +66,11 @@ concrete SentenceAra of Sentence = CatAra ** open -- UseCl t p cl = - {s = t.s ++ p.s ++ + {s = \\o => t.s ++ p.s ++ case of { --- IL guessed tenses - => cl.s ! Pres ! p.p ! Nominal ; - => cl.s ! Past ! p.p ! Nominal ; - => cl.s ! x ! p.p ! Nominal + => cl.s ! Pres ! p.p ! o ; + => cl.s ! Past ! p.p ! o ; + => cl.s ! x ! p.p ! o } }; diff --git a/src/arabic/StructuralAra.gf b/src/arabic/StructuralAra.gf index bc7d40c2..030e8b45 100644 --- a/src/arabic/StructuralAra.gf +++ b/src/arabic/StructuralAra.gf @@ -44,7 +44,7 @@ concrete StructuralAra of Structural = CatAra ** s = \\g,s,c => "كَمْ عَدَد" + caseTbl ! c ; n = Pl ; d = Def } ; -- IL - + -- if_Subj = ss "ِف" ; in8front_Prep = mkPrep "مُقَابِلَ" ; i_Pron = ResAra.i_Pron ; @@ -78,6 +78,7 @@ concrete StructuralAra of Structural = CatAra ** something_NP = regNP "شَيْء" Sg ; -- somewhere_Adv = ss "سْموهري" ; that_Quant = mkQuant3 "ذَلِكَ" "تِلكَ" "أُلٱِكَ" Def; + that_Subj = ss "أنَّ" ; ----b that_NP = indeclNP "ذَلِكَ" Sg ; there_Adv = ss "هُناك" ; -- there7to_Adv = ss "تهري" ; diff --git a/src/arabic/SymbolAra.gf b/src/arabic/SymbolAra.gf index fd1a95cd..10e2b7bb 100644 --- a/src/arabic/SymbolAra.gf +++ b/src/arabic/SymbolAra.gf @@ -25,7 +25,7 @@ lin empty = [] } ; - SymbS sy = sy ; + SymbS sy = {s = \\_ => sy.s} ; SymbOrd n = {s = \\_,_,_ => n.s ; n = One ; isNum = False } ; diff --git a/src/arabic/VerbAra.gf b/src/arabic/VerbAra.gf index 8e82368d..e07ff791 100644 --- a/src/arabic/VerbAra.gf +++ b/src/arabic/VerbAra.gf @@ -28,7 +28,8 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra, ParamX in { -- : VS -> S -> VP ; -- say that she runs ComplVS vs s = predV vs ** { -- IL - obj = emptyObj ** s } ; + obj = emptyObj ** {s = s.s ! Subord} + } ; -- : VQ -> QS -> VP ; -- wonder who runs ComplVQ vq qs = predV vq ** { -- IL