From b2ea7a5497f587b9ed65ee31f5202ae7a002c07a Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sat, 5 Jan 2019 21:30:57 +0200 Subject: [PATCH 1/2] (Ara) Add ReflA2 and ReflVP --- src/arabic/AdjectiveAra.gf | 12 ++++-------- src/arabic/MissingAra.gf | 2 -- src/arabic/VerbAra.gf | 9 ++++++--- 3 files changed, 10 insertions(+), 13 deletions(-) diff --git a/src/arabic/AdjectiveAra.gf b/src/arabic/AdjectiveAra.gf index b731100f..223aafbd 100644 --- a/src/arabic/AdjectiveAra.gf +++ b/src/arabic/AdjectiveAra.gf @@ -23,14 +23,10 @@ concrete AdjectiveAra of Adjective = CatAra ** open ResAra, Prelude in { ComplA2 a np = { s = \\sp,g,n,st,c => a.s ! APosit g n st c ++ a.c2.s ++ bindIf a.c2.binds ++ np.s ! a.c2.c ; } ; --- --- ReflA2 a = { --- s = \\ag => a.s ! AAdj Posit ++ a.c2 ++ reflPron ! ag ; --- isPre = False --- } ; --- - SentAP ap sc = ap ** { - s = \\sp,g,n,st,c => ap.s ! sp ! g ! n ! st ! c ++ sc.s ; + + -- full PerGenNum should be added to make this work properly + ReflA2 a = { + s = \\sp,g,n,st,c => a.s ! APosit g n st c ++ a.c2.s ++ reflPron c (gn2pgn {g=g;n=n}) } ; AdAP ada ap = { diff --git a/src/arabic/MissingAra.gf b/src/arabic/MissingAra.gf index b1981f58..eb4b2e6f 100644 --- a/src/arabic/MissingAra.gf +++ b/src/arabic/MissingAra.gf @@ -19,8 +19,6 @@ oper PConjConj : Conj -> PConj = notYet "PConjConj" ; oper PPartNP : NP -> V2 -> NP = notYet "PPartNP" ; 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 SentCN : CN -> SC -> CN = notYet "SentCN" ; oper SlashPrep : Cl -> Prep -> ClSlash = notYet "SlashPrep" ; oper SlashV2A : V2A -> AP -> VPSlash = notYet "SlashV2A" ; diff --git a/src/arabic/VerbAra.gf b/src/arabic/VerbAra.gf index f4cc9282..f72e2370 100644 --- a/src/arabic/VerbAra.gf +++ b/src/arabic/VerbAra.gf @@ -99,9 +99,12 @@ concrete VerbAra of Verb = CatAra ** open Prelude, ResAra, ParamX in { AdVVP adv = insertStr adv.s ; AdVVPSlash adv vps = vps ** insertStr adv.s vps ; --- --- ReflV2 v = insertObj (\\a => v.c2 ++ reflPron ! a) (predV v) ; --- + + -- : VPSlash -> VP ; -- love himself + ReflVP vps = vps ** { + s = \\pgn,vf => vps.s ! pgn ! vf ++ reflPron Acc pgn + } ; + PassV2 = passPredV ; -- -- UseVS, UseVQ = \vv -> {s = vv.s ; c2 = [] ; isRefl = vv.isRefl} ; -- no From 98b5cf9ab9d90f399737cfeaf4fca417bc20c0b4 Mon Sep 17 00:00:00 2001 From: Inari Listenmaa Date: Sat, 5 Jan 2019 21:32:27 +0200 Subject: [PATCH 2/2] (Ara) misc small additions/tweaks AdvAP: reuse implementation of AdAP BaseNP, ConsNP, ConjNP: don't make NP by default heavy. --- src/arabic/AdjectiveAra.gf | 4 +++- src/arabic/ConjunctionAra.gf | 18 ++++++------------ 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/src/arabic/AdjectiveAra.gf b/src/arabic/AdjectiveAra.gf index 223aafbd..0d2f1b1f 100644 --- a/src/arabic/AdjectiveAra.gf +++ b/src/arabic/AdjectiveAra.gf @@ -3,7 +3,6 @@ concrete AdjectiveAra of Adjective = CatAra ** open ResAra, Prelude in { flags coding = utf8 ; lin - PositA a = { s = \\h,g,n,d,c => case h of { Hum => a.s ! APosit g n d c; @@ -33,6 +32,9 @@ concrete AdjectiveAra of Adjective = CatAra ** open ResAra, Prelude in { s = \\sp,g,n,st,c => ap.s ! sp ! g ! n ! st ! c ++ ada.s } ; + AdvAP, + SentAP = \ap,ss -> AdAP ss ap ; + UseA2 = PositA ; UseComparA a = { diff --git a/src/arabic/ConjunctionAra.gf b/src/arabic/ConjunctionAra.gf index 025a68d4..dc330d1a 100644 --- a/src/arabic/ConjunctionAra.gf +++ b/src/arabic/ConjunctionAra.gf @@ -19,21 +19,15 @@ lin ConsS = consrTable Order comma ; ConjS = conjunctDistrTable Order ; - BaseNP x y = twoTable Case x y ** { - a = conjAgr x.a y.a ; - empty = [] ; - isHeavy = True ; + BaseNP x y = emptyNP ** twoTable Case x y ** { + a = conjAgr x.a y.a } ; - ConsNP xs x = consrTable Case comma xs x ** { - a = conjAgr xs.a x.a ; - empty = [] ; - isHeavy = True ; + ConsNP xs x = emptyNP ** consrTable Case comma xs x ** { + a = conjAgr xs.a x.a } ; - ConjNP conj ss = conjunctDistrTable Case conj ss ** { + ConjNP conj ss = emptyNP ** conjunctDistrTable Case conj ss ** { a = let gn = pgn2gn ss.a.pgn in - {pgn = Per3 gn.g (conjNumber conj.n gn.n) ; isPron = False} ; - empty = [] ; - isHeavy = True ; + {pgn = Per3 gn.g (conjNumber conj.n gn.n) ; isPron = False} } ; BaseAP = twoTable5 Species Gender Number State Case ;