forked from GitHub/gf-rgl
automatic negation of with_Prep
This commit is contained in:
@@ -24,8 +24,12 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
||||
} ;
|
||||
s = det.s ! True ! cn.g ! role ++ cn.s ! nf
|
||||
in case role of {
|
||||
RObj Dat => "íà" ++ s;
|
||||
_ => s
|
||||
RObj Dat => "íà" ++ s;
|
||||
RObj WithPrep => case det.p of {
|
||||
Pos => with_Word ++ s ;
|
||||
Neg => "áåç" ++ s
|
||||
} ;
|
||||
_ => s
|
||||
} ;
|
||||
a = {gn = gennum cn.g (numnnum det.nn); p = P3} ;
|
||||
p = det.p
|
||||
|
||||
@@ -26,7 +26,7 @@ concrete RelativeBul of Relative = CatBul ** open ResBul in {
|
||||
} ;
|
||||
|
||||
FunRP p np rp = {
|
||||
s = \\gn => np.s ! RObj Acc ++ p.s ++ (case p.c of {Acc => []; Dat => "íà"}) ++ rp.s ! gn ;
|
||||
s = \\gn => np.s ! RObj Acc ++ p.s ++ (case p.c of {Acc => []; Dat => "íà"; WithPrep => with_Word}) ++ rp.s ! gn ;
|
||||
} ;
|
||||
|
||||
IdRP = {
|
||||
|
||||
@@ -22,7 +22,7 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
||||
|
||||
param
|
||||
Role = RSubj | RObj Case | RVoc ;
|
||||
Case = Acc | Dat;
|
||||
Case = Acc | Dat | WithPrep ;
|
||||
|
||||
NForm =
|
||||
NF Number Species
|
||||
@@ -361,42 +361,58 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
||||
verbBe : Verb = {s=\\_=>auxBe ; vtype=VNormal} ;
|
||||
verbWould : Verb = {s=\\_=>auxWould ; vtype=VNormal} ;
|
||||
|
||||
reflClitics : Case => Str = table {Acc => "ñå"; Dat => "ñè"} ;
|
||||
reflClitics : Case => Str = table {Acc => "ñå"; Dat => "ñè"; WithPrep => with_Word ++ "ñåáå ñè"} ;
|
||||
|
||||
personalClitics : Case => GenNum => Person => Str =
|
||||
table {
|
||||
Acc => table {
|
||||
GSg g => table {
|
||||
P1 => "ìå" ;
|
||||
P2 => "òå" ;
|
||||
P3 => case g of {
|
||||
Masc => "ãî" ;
|
||||
Fem => "ÿ" ;
|
||||
Neut => "ãî"
|
||||
}
|
||||
} ;
|
||||
GPl => table {
|
||||
P1 => "íè" ;
|
||||
P2 => "âè" ;
|
||||
P3 => "ãè"
|
||||
}
|
||||
} ;
|
||||
Dat => table {
|
||||
GSg g => table {
|
||||
P1 => "ìè" ;
|
||||
P2 => "òè" ;
|
||||
P3 => case g of {
|
||||
Masc => "ìó" ;
|
||||
Fem => "é" ;
|
||||
Neut => "ìó"
|
||||
}
|
||||
} ;
|
||||
GPl => table {
|
||||
P1 => "íè" ;
|
||||
P2 => "âè" ;
|
||||
P3 => "èì"
|
||||
}
|
||||
}
|
||||
Acc => table {
|
||||
GSg g => table {
|
||||
P1 => "ìå" ;
|
||||
P2 => "òå" ;
|
||||
P3 => case g of {
|
||||
Masc => "ãî" ;
|
||||
Fem => "ÿ" ;
|
||||
Neut => "ãî"
|
||||
}
|
||||
} ;
|
||||
GPl => table {
|
||||
P1 => "íè" ;
|
||||
P2 => "âè" ;
|
||||
P3 => "ãè"
|
||||
}
|
||||
} ;
|
||||
Dat => table {
|
||||
GSg g => table {
|
||||
P1 => "ìè" ;
|
||||
P2 => "òè" ;
|
||||
P3 => case g of {
|
||||
Masc => "ìó" ;
|
||||
Fem => "é" ;
|
||||
Neut => "ìó"
|
||||
}
|
||||
} ;
|
||||
GPl => table {
|
||||
P1 => "íè" ;
|
||||
P2 => "âè" ;
|
||||
P3 => "èì"
|
||||
}
|
||||
} ;
|
||||
WithPrep => table {
|
||||
GSg g => table {
|
||||
P1 => with_Word ++ "ìåí" ;
|
||||
P2 => with_Word ++ "òåá" ;
|
||||
P3 => case g of {
|
||||
Masc => with_Word ++ "íåãî" ;
|
||||
Fem => with_Word ++ "íåÿ" ;
|
||||
Neut => with_Word ++ "íåãî"
|
||||
}
|
||||
} ;
|
||||
GPl => table {
|
||||
P1 => with_Word ++ "íàñ" ;
|
||||
P2 => with_Word ++ "âàñ" ;
|
||||
P3 => with_Word ++ "òÿõ"
|
||||
}
|
||||
}
|
||||
} ;
|
||||
|
||||
ia2e : Str -> Str = -- to be used when the next syllable has vowel different from "à","ú","î" or "ó"
|
||||
@@ -647,14 +663,20 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
||||
mkIP : Str -> Str -> GenNum -> {s : Role => QForm => Str ; gn : GenNum} =
|
||||
\koi,kogo,gn -> {
|
||||
s = table {
|
||||
RSubj => table QForm [koi; koi+"òî"] ;
|
||||
RObj Acc => table QForm [kogo; kogo+"òî"] ;
|
||||
RObj Dat => table QForm ["íà" ++ kogo; kogo+"òî"] ;
|
||||
RVoc => table QForm [koi; koi+"òî"]
|
||||
RSubj => table QForm [koi; koi+"òî"] ;
|
||||
RObj Acc => table QForm [kogo; kogo+"òî"] ;
|
||||
RObj Dat => table QForm ["íà" ++ kogo; "íà" ++ kogo+"òî"] ;
|
||||
RObj WithPrep => table QForm [with_Word ++ kogo; with_Word ++ kogo+"òî"] ;
|
||||
RVoc => table QForm [koi; koi+"òî"]
|
||||
} ;
|
||||
gn = gn
|
||||
} ;
|
||||
|
||||
with_Word : Str
|
||||
= pre { "ñ" ;
|
||||
"ñúñ" / strs {"ñ" ; "ç" ; "Ñ" ; "Ç"}
|
||||
} ;
|
||||
|
||||
mkPron : (az,men,me,mi,moj,moia,moiat,moia_,moiata,moe,moeto,moi,moite : Str) ->
|
||||
GenNum -> Person -> {s : Role => Str;
|
||||
clit : Case => Str;
|
||||
@@ -663,14 +685,16 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
||||
} =
|
||||
\az,men,me,mi,moj,moia,moiat,moia_,moiata,moe,moeto,moi,moite,gn,p -> {
|
||||
s = table {
|
||||
RSubj => az ;
|
||||
RObj Acc => men ;
|
||||
RObj Dat => "íà" ++ men ;
|
||||
RVoc => az
|
||||
RSubj => az ;
|
||||
RObj Acc => men ;
|
||||
RObj Dat => "íà" ++ men ;
|
||||
RObj WithPrep => with_Word ++ men ;
|
||||
RVoc => az
|
||||
} ;
|
||||
clit = table {
|
||||
Acc => me;
|
||||
Dat => mi
|
||||
Acc => me;
|
||||
Dat => mi;
|
||||
WithPrep => with_Word ++ men
|
||||
} ;
|
||||
gen = table {
|
||||
ASg Masc Indef => moj ;
|
||||
@@ -692,10 +716,11 @@ resource ResBul = ParamX ** open Prelude, Predef in {
|
||||
mkNP : Str -> GenNum -> Person -> Polarity -> {s : Role => Str; a : Agr; p : Polarity} =
|
||||
\s,gn,p,pol -> {
|
||||
s = table {
|
||||
RSubj => s ;
|
||||
RObj Acc => s ;
|
||||
RObj Dat => "íà" ++ s ;
|
||||
RVoc => s
|
||||
RSubj => s ;
|
||||
RObj Acc => s ;
|
||||
RObj Dat => "íà" ++ s ;
|
||||
RObj WithPrep => with_Word ++ s ;
|
||||
RVoc => s
|
||||
} ;
|
||||
a = {
|
||||
gn = gn ;
|
||||
|
||||
@@ -116,9 +116,7 @@ concrete StructuralBul of Structural = CatBul **
|
||||
whoPl_IP = mkIP "êîè" "êîè" GPl ;
|
||||
why_IAdv = mkIAdv "çàùî" ;
|
||||
without_Prep = mkPrep "áåç" Acc ;
|
||||
with_Prep = mkPrep (pre { "ñ" ;
|
||||
"ñúñ" / strs {"ñ" ; "ç" ; "Ñ" ; "Ç"}
|
||||
}) Acc ;
|
||||
with_Prep = mkPrep "" WithPrep ;
|
||||
yes_Utt = ss "äà" ;
|
||||
youSg_Pron = mkPron "òè" "òåá" "òå" "òè" "òâîé" "òâîÿ" "òâîÿò" "òâîÿ" "òâîÿòà" "òâîå" "òâîåòî" "òâîè" "òâîèòå" (GSg Masc) P2 ;
|
||||
youPl_Pron = mkPron "âèå" "âàñ" "âè" "âè" "âàø" "âàøèÿ" "âàøèÿò" "âàøà" "âàøàòà" "âàøå" "âàøåòî" "âàøè" "âàøèòå" GPl P2 ;
|
||||
|
||||
Reference in New Issue
Block a user