mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
Merge pull request #219 from inariksit/spanish
Spanish/Romance: imperative, A2
This commit is contained in:
@@ -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 = {
|
||||||
|
|||||||
@@ -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} ;
|
||||||
|
|||||||
@@ -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 ;
|
||||||
|
|||||||
@@ -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}) ;
|
||||||
|
|||||||
Reference in New Issue
Block a user