From 213e505e9ae90c2f8b719d61737e6b438579d640 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 26 Dec 2018 14:32:43 +0100 Subject: [PATCH 1/3] (Ara) add SentAP --- src/arabic/AdjectiveAra.gf | 9 ++++----- src/arabic/MissingAra.gf | 1 - 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/arabic/AdjectiveAra.gf b/src/arabic/AdjectiveAra.gf index 49d300c3..ed897a8c 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/MissingAra.gf b/src/arabic/MissingAra.gf index fa52d74a..9dfe21b1 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" ; From 8b016f35bc18001b638bf2269e4d45bac123d89e Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 26 Dec 2018 14:33:54 +0100 Subject: [PATCH 2/3] (Ara) Add field for word order in VS --- src/arabic/CatAra.gf | 3 ++- src/arabic/ParadigmsAra.gf | 4 ++-- src/arabic/VerbAra.gf | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/arabic/CatAra.gf b/src/arabic/CatAra.gf index 6cb7ccdb..e4cfd520 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/ParadigmsAra.gf b/src/arabic/ParadigmsAra.gf index 988e1928..611fc402 100644 --- a/src/arabic/ParadigmsAra.gf +++ b/src/arabic/ParadigmsAra.gf @@ -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/VerbAra.gf b/src/arabic/VerbAra.gf index 8d29c074..63c483f2 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 From f85e64a90dfbeb8fff31f2d89dfbaa72027194e9 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Wed, 26 Dec 2018 14:34:15 +0100 Subject: [PATCH 3/3] (Ara) misc small fixes/comments --- src/arabic/MorphoAra.gf | 7 +++++-- src/arabic/ParadigmsAra.gf | 2 +- src/arabic/ResAra.gf | 1 + 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/arabic/MorphoAra.gf b/src/arabic/MorphoAra.gf index 981534d0..553fbbd2 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 611fc402..6c0e69e8 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 diff --git a/src/arabic/ResAra.gf b/src/arabic/ResAra.gf index dfec9a11..d807d3bf 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) ;