diff --git a/src/arabic/AdjectiveAra.gf b/src/arabic/AdjectiveAra.gf index 49d300c3b..ed897a8cb 100644 --- a/src/arabic/AdjectiveAra.gf +++ b/src/arabic/AdjectiveAra.gf @@ -29,11 +29,10 @@ concrete AdjectiveAra of Adjective = CatAra ** open ResAra, Prelude in { -- isPre = False -- } ; -- --- SentAP ap sc = { --- s = \\a => ap.s ! a ++ sc.s ; --- isPre = False --- } ; --- + SentAP ap sc = ap ** { + s = \\sp,g,n,st,c => ap.s ! sp ! g ! n ! st ! c ++ sc.s ; + } ; + AdAP ada ap = { s = \\sp,g,n,st,c => ap.s ! sp ! g ! n ! st ! c ++ ada.s } ; diff --git a/src/arabic/CatAra.gf b/src/arabic/CatAra.gf index 6cb7ccdb3..e4cfd520a 100644 --- a/src/arabic/CatAra.gf +++ b/src/arabic/CatAra.gf @@ -77,10 +77,11 @@ concrete CatAra of Cat = CommonX - [Utt] ** open ResAra, Prelude, ParamX in { -- Open lexical classes, e.g. Lexicon - V, VS, VQ, VA = ResAra.Verb ; -- = {s : VForm => Str} ; + V, VQ, VA = ResAra.Verb ; -- = {s : VForm => Str} ; V2, V2A = ResAra.Verb2 ; VV = ResAra.Verb2 ** {sc : Preposition} ; -- c2 is for verb V2S, V2Q = ResAra.Verb2 ; + VS = ResAra.Verb ** {o : Order} ; V3 = ResAra.Verb3 ; V2V = ResAra.Verb3 ** {sc : Preposition} ; -- c3 is for verb, c2 is for dir.obj diff --git a/src/arabic/MissingAra.gf b/src/arabic/MissingAra.gf index fa52d74a5..9dfe21b1d 100644 --- a/src/arabic/MissingAra.gf +++ b/src/arabic/MissingAra.gf @@ -22,7 +22,6 @@ oper PredSCVP : SC -> VP -> Cl = notYet "PredSCVP" ; oper ProgrVP : VP -> VP = notYet "ProgrVP" ; oper ReflA2 : A2 -> AP = notYet "ReflA2" ; oper ReflVP : VPSlash -> VP = notYet "ReflVP" ; -oper SentAP : AP -> SC -> AP = notYet "SentAP" ; oper SentCN : CN -> SC -> CN = notYet "SentCN" ; oper SlashPrep : Cl -> Prep -> ClSlash = notYet "SlashPrep" ; oper Slash2V3 : V3 -> NP -> VPSlash = notYet "Slash2V3" ; diff --git a/src/arabic/MorphoAra.gf b/src/arabic/MorphoAra.gf index 981534d0b..553fbbd25 100644 --- a/src/arabic/MorphoAra.gf +++ b/src/arabic/MorphoAra.gf @@ -6,8 +6,11 @@ flags optimize = all ;--noexpand; oper mkDet : Str -> Number -> State -> Det - = \word,num,state -> baseQuant ** - { s = \\_,_,c => word + caseTbl ! c ; + = mkDetDecl True ; + + mkDetDecl : Bool -> Str -> Number -> State -> Det + = \decl,word,num,state -> baseQuant ** + { s = \\_,_,c => word + if_then_Str decl (caseTbl ! c) [] ; n = numberToSize num; d = state; --only Const is used now. check StructuralAra } ; diff --git a/src/arabic/ParadigmsAra.gf b/src/arabic/ParadigmsAra.gf index 988e19286..6c0e69e81 100644 --- a/src/arabic/ParadigmsAra.gf +++ b/src/arabic/ParadigmsAra.gf @@ -362,7 +362,7 @@ resource ParadigmsAra = open mkN : (root,sgPatt,brokenPlPatt : Str) -> Gender -> Species -> N -- broken plural = brkN ; mkN : N -> (attr : Str) -> N -- Compound nouns with noninflecting attribute - = \n,attr -> n ** {s2 = \\n,s,c => attr} ; + = \n,attr -> n ** {s2 = \\num,s,c => n.s2 ! num ! s ! c ++ attr} ; mkN : N -> N -> N -- Compound nouns where attribute inflects in state and case but not number = attrN Sg ; mkN : Number -> N -> N -> N -- Compound nouns where attribute inflects in state, case and number @@ -723,8 +723,8 @@ resource ParadigmsAra = open dirdirV3 v = dirV3 v (casePrep acc) ; - mkVS v = v ** {lock_VS = <>} ; - mkVQ v = v ** {lock_VQ = <>} ; + mkVS v = lin VS (v ** {o = Subord}) ; + mkVQ v = lin VQ v ; regVV : V -> VV = \v -> lin VV v ** {c2 = mkPreposition "أَنْ" ; sc = noPrep} ; c2VV : V -> Str -> VV = \v,prep -> regVV v ** {c2 = mkPreposition prep ; sc = noPrep} ; diff --git a/src/arabic/ResAra.gf b/src/arabic/ResAra.gf index dfec9a11a..d807d3bf8 100644 --- a/src/arabic/ResAra.gf +++ b/src/arabic/ResAra.gf @@ -1759,6 +1759,7 @@ patHollowImp : (_,_ :Str) -> Gender => Number => Str =\xaf,xAf -> s = \\_pgn,vf => v.s ! np.a.pgn ! vf -- so we can throw away subject's pgn } ; + -- TODO: what to do with vp.c2 if there is no object /IL complClSlash = overload { complClSlash : NP -> ClSlash -> Cl = \obj,cls -> predVP (subj2np cls.subj) (insertObj obj cls) ; diff --git a/src/arabic/VerbAra.gf b/src/arabic/VerbAra.gf index 8d29c074d..63c483f2a 100644 --- a/src/arabic/VerbAra.gf +++ b/src/arabic/VerbAra.gf @@ -51,7 +51,7 @@ 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 = s.s ! Subord} + obj = emptyObj ** {s = s.s ! vs.o} } ; -- : VQ -> QS -> VP ; -- wonder who runs