1
0
forked from GitHub/gf-rgl

allow post-position adjectives. added as_CAdv

This commit is contained in:
Krasimir Angelov
2018-07-10 11:25:06 +02:00
parent e5c523e480
commit 8c2a6f6118
8 changed files with 24 additions and 20 deletions

View File

@@ -6,7 +6,7 @@ concrete AdjectiveBul of Adjective = CatBul ** open ResBul, Prelude in {
PositA a = {
s = \\aform,_ => a.s ! aform ;
adv = a.adv ;
isPre = True
isPre = a.isPre
} ;
ComparA a np = {

View File

@@ -81,7 +81,7 @@ concrete CatBul of Cat = CommonX - [IAdv,CAdv,AdV,SC] ** open ResBul, Prelude, P
V3 = Verb ** {c2, c3 : Preposition} ;
VV = Verb ** {typ : VVType};
A = {s : AForm => Str; adv : Str} ;
A = {s : AForm => Str; adv : Str; isPre : Bool} ;
A2 = {s : AForm => Str; adv : Str; c2 : Str} ;
N = {s : NForm => Str; rel : AForm => Str; relPost : Bool; g : AGender} ;
@@ -103,9 +103,11 @@ concrete CatBul of Cat = CommonX - [IAdv,CAdv,AdV,SC] ** open ResBul, Prelude, P
V3 = \s -> {s = \\_,_ => s; vtype = VNormal; c2,c3 = {s=""; c=Acc}};
VV = \s -> {s = \\_,_ => s; vtype = VNormal; typ = VVInf Perf};
A = \s -> {s = \\_ => s; adv = s};
A = \s -> {s = \\_ => s; adv = s; isPre = True};
A2 = \s -> {s = \\_ => s; adv = s; c2 = ""};
CAdv = \s -> {s=[]; sn=s} ;
N = \s -> {s = \\_ => s; rel = \\_ => s; relPost = False; g = AMasc NonHuman};
N2 = \s -> {s = \\_ => s; rel = \\_ => s; relPost = False; g = AMasc NonHuman; c2 = {s=""; c=Acc}};
N3 = \s -> {s = \\_ => s; rel = \\_ => s; relPost = False; g = AMasc NonHuman; c2,c3 = {s=""; c=Acc}};
@@ -144,6 +146,8 @@ concrete CatBul of Cat = CommonX - [IAdv,CAdv,AdV,SC] ** open ResBul, Prelude, P
A = \a -> a.s ! ASg Masc Indef;
A2 = \a -> a.s ! ASg Masc Indef ++ a.c2;
CAdv = \adv -> adv.s ++ adv.sn ;
N = \n -> n.s ! NF Sg Indef;
N2 = \n -> n.s ! NF Sg Indef ++ linPrep n.c2;
N3 = \n -> n.s ! NF Sg Indef ++ linPrep n.c2 ++ linPrep n.c3;

View File

@@ -11,17 +11,14 @@ lin
} ;
CompoundN n1 n2 =
let aform = ASg (case n2.g of {
AMasc _ => Masc ;
AFem => Fem ;
ANeut => Neut
}) Indef
in {
s = \\nf => case n1.relPost of {
let comp : NForm => Str
= \\nf => case n1.relPost of {
True => n2.s ! nf ++ n1.rel ! nform2aform nf n2.g ;
False => n1.rel ! nform2aform nf n2.g ++ n2.s ! indefNForm nf
} ;
rel = \\af => n1.rel ! aform ++ n2.s ! NF Sg Indef ; relPost = n1.relPost ;
}
in {
s = comp ;
rel = \\af => "на" ++ comp ! NF Sg Def ; relPost = True ;
g = n2.g
} ;

View File

@@ -84,7 +84,7 @@ lin
fridge_N = mkN007 "ôðèçåð" ;
friend_N = mkN031a "ïðèÿòåë" ;
fruit_N = mkN001 "ïëîä" ;
fun_AV = mkAV (mkA079 "çàáàâåí") ;
fun_AV = mkA079 "çàáàâåí" ;
forget_V2 = dirV2 (actionV (mkV187 "çàáðàâÿì") (mkV173 "çàáðàâÿ")) ;
garden_N = mkN041 "ãðàäèíà" ;
girl_N = mkN065 "ìîìè÷å" ;
@@ -152,7 +152,7 @@ lin
play_V2 = dirV2 (stateV (mkV161 "èãðàÿ")) ;
policeman_N = mkN032a "ïîëèöàé" ;
priest_N = mkN014 "ñâåùåíèê" ;
probable_AS = mkAS (mkA079 "âåðîÿòåí") ;
probable_AS = mkA079 "âåðîÿòåí" ;
queen_N = mkN041 "êðàëèöà" ;
radio_N = mkN054 "ðàäèî" ;
rain_V0 = mkV0 (stateV (mkV174 "âàëè")) ;

View File

@@ -235,6 +235,7 @@ oper
APl Def => dobrite
} ;
adv = dobro ;
isPre = True ;
lock_A = <>
} ;
}

View File

@@ -21,13 +21,13 @@ oper
-- Adverbs modifying adjectives and sentences can also be formed.
mkAdA : Str -> AdA = \x -> ss x ** {lock_AdA = <>} ;
mkAdA : Str -> AdA = \x -> lin AdA (ss x) ;
mkCAdv : Str -> Str -> CAdv = \s,sn -> lin CAdv {s = s; sn = sn} ;
--2 Adjectives
--
AS, A2S, AV : Type = A ;
AS, A2S, AV : Type = {s : AForm => Str; adv : Str} ;
A2V : Type = A2 ;
mkA2 : A -> Prep -> A2 ;

View File

@@ -2081,5 +2081,5 @@ oper
(v0+"ŕé")
(v0+"ŕíĺ") ;
adjAdv : A -> Str -> A =
adjAdv : A -> Str -> A =
\a,adv -> a ** {adv = adv} ;

View File

@@ -122,6 +122,8 @@ concrete StructuralBul of Structural = CatBul **
youPl_Pron = mkPron "âèå" "âàø" "âàøèÿ" "âàøèÿò" "âàøà" "âàøàòà" "âàøå" "âàøåòî" "âàøè" "âàøèòå" GPl PronP2 ;
youPol_Pron = mkPron "âèå" "âàø" "âàøèÿ" "âàøèÿò" "âàøà" "âàøàòà" "âàøå" "âàøåòî" "âàøè" "âàøèòå" GPl PronP2 ;
as_CAdv = mkCAdv "" "êîëêîòî" ;
have_V2 = dirV2 (stateV (mkV186 "èìàì")) ;
lin language_title_Utt = ss "Áúëãàðñêè" ;