1
0
forked from GitHub/gf-rgl

Merge pull request #219 from inariksit/spanish

Spanish/Romance: imperative, A2
This commit is contained in:
Inari Listenmaa
2019-04-08 15:30:35 +02:00
committed by GitHub
4 changed files with 43 additions and 25 deletions

View File

@@ -34,7 +34,7 @@ incomplete concrete AdjectiveRomance of Adjective =
ComplA2 adj np = { ComplA2 adj np = {
s = \\af => adj.s ! Posit ! af ++ appCompl adj.c2 np ; s = \\af => adj.s ! Posit ! af ++ appCompl adj.c2 np ;
isPre = False ; isPre = False ;
copTyp = serCopula copTyp = adj.copTyp
} ; } ;
ReflA2 adj = { ReflA2 adj = {
@@ -42,7 +42,7 @@ incomplete concrete AdjectiveRomance of Adjective =
adj.s ! Posit ! af ++ adj.s ! Posit ! af ++
adj.c2.s ++ prepCase adj.c2.c ++ reflPron Sg P3 Nom ; --- agr adj.c2.s ++ prepCase adj.c2.c ++ reflPron Sg P3 Nom ; --- agr
isPre = False ; isPre = False ;
copTyp = serCopula copTyp = adj.copTyp
} ; } ;
SentAP ap sc = { SentAP ap sc = {
@@ -60,7 +60,7 @@ incomplete concrete AdjectiveRomance of Adjective =
UseA2 a = { UseA2 a = {
s = a.s ! Posit ; s = a.s ! Posit ;
isPre = False ; ---- A2 has no isPre isPre = False ; ---- A2 has no isPre
copTyp = serCopula ---- A2 has no copTyp (yet) copTyp = a.copTyp
} ; } ;
AdvAP ap adv = { AdvAP ap adv = {

View File

@@ -106,7 +106,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol]
VS = Verb ** {m : RPolarity => Mood} ; VS = Verb ** {m : RPolarity => Mood} ;
A = {s : Degree => AForm => Str ; isPre : Bool ; copTyp : CopulaType} ; A = {s : Degree => AForm => Str ; isPre : Bool ; copTyp : CopulaType} ;
A2 = {s : Degree => AForm => Str ; c2 : Compl} ; A2 = {s : Degree => AForm => Str ; c2 : Compl ; copTyp : CopulaType} ;
N = Noun ; N = Noun ;
N2 = Noun ** {c2 : Compl} ; N2 = Noun ** {c2 : Compl} ;

View File

@@ -116,14 +116,15 @@ instance DiffSpa of DiffRomance - [iAdvQuestionInv,otherInv,partAgr,stare_V,vpAg
mkImperative isPol p vp = mkImperative isPol p vp =
\\pol,g,n => case pol of { \\pol,g,n => case pol of {
RPos => neg.p1 ++ imper ++ bindIf refl.isRefl ++ refl.pron RPos => neg.p1 ++ imper ++ bindIf refl.isRefl ++ refl.pron
++ bindIf hasClit ++ clit ++ compl ; ++ bindIf hasClit ++ clit ++ particle ++ compl ;
RNeg _ => neg.p1 ++ refl.pron ++ clit ++ subj ++ compl RNeg _ => neg.p1 ++ refl.pron ++ clit ++ subj ++ particle ++ compl
} where { } where {
pe = case isPol of {True => P3 ; _ => p} ; pe = case isPol of {True => P3 ; _ => p} ;
refl = case vp.s.vtyp of { refl = case vp.s.vtyp of {
VRefl => {pron = reflPron n pe Acc ; isRefl = True} ; VRefl => {pron = reflPron n pe Acc ; isRefl = True} ;
_ => {pron = [] ; isRefl = False} _ => {pron = [] ; isRefl = False}
} ; } ;
particle = vp.s.p ;
clit = vp.clit1 ++ vp.clit2 ; clit = vp.clit1 ++ vp.clit2 ;
hasClit = vp.clit3.hasClit ; hasClit = vp.clit3.hasClit ;
imper = vp.s.s ! vImper n pe ; imper = vp.s.s ! vImper n pe ;

View File

@@ -436,6 +436,23 @@ oper
_ => verboV (regAlternVEr x y) _ => verboV (regAlternVEr x y)
} ; } ;
-- hack for verbs like parecer.
-- NB. doesn't work properly for gustar, which agrees with the object.
dativeV : V -> V = \parecer -> parecer ** {
s = table {
VFin m n p => case <n,p> of {
<Sg,P1> => "me" ;
<Sg,P2> => "te" ;
<Sg,P3> => "le" ;
<Pl,P1> => "nos" ;
<Pl,P2> => "os" ;
<Pl,P3> => "les" } ++ parecer.s ! VFin m Sg P3 ;
VImper n => case n of {
SgP2 => "que te" ;
PlP1 => "que nos" ;
PlP2 => "que os" } ++ parecer.s ! VFin (VPres Conjunct) Sg P3 ;
x => parecer.s ! x }
} ;
mk2V2 v p = lin V2 (v ** {c2 = p}) ; mk2V2 v p = lin V2 (v ** {c2 = p}) ;