1
0
forked from GitHub/gf-rgl

automatic negation of with_Prep

This commit is contained in:
Krasimir Angelov
2018-06-07 14:58:03 +02:00
parent fe72ccdec1
commit 2869eaf6e9
4 changed files with 81 additions and 54 deletions

View File

@@ -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

View File

@@ -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 = {

View File

@@ -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 ;

View File

@@ -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 ;