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 = { PositA a = {
s = \\aform,_ => a.s ! aform ; s = \\aform,_ => a.s ! aform ;
adv = a.adv ; adv = a.adv ;
isPre = True isPre = a.isPre
} ; } ;
ComparA a np = { 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} ; V3 = Verb ** {c2, c3 : Preposition} ;
VV = Verb ** {typ : VVType}; 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} ; A2 = {s : AForm => Str; adv : Str; c2 : Str} ;
N = {s : NForm => Str; rel : AForm => Str; relPost : Bool; g : AGender} ; 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}}; V3 = \s -> {s = \\_,_ => s; vtype = VNormal; c2,c3 = {s=""; c=Acc}};
VV = \s -> {s = \\_,_ => s; vtype = VNormal; typ = VVInf Perf}; 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 = ""}; A2 = \s -> {s = \\_ => s; adv = s; c2 = ""};
CAdv = \s -> {s=[]; sn=s} ;
N = \s -> {s = \\_ => s; rel = \\_ => s; relPost = False; g = AMasc NonHuman}; 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}}; 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}}; 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; A = \a -> a.s ! ASg Masc Indef;
A2 = \a -> a.s ! ASg Masc Indef ++ a.c2; A2 = \a -> a.s ! ASg Masc Indef ++ a.c2;
CAdv = \adv -> adv.s ++ adv.sn ;
N = \n -> n.s ! NF Sg Indef; N = \n -> n.s ! NF Sg Indef;
N2 = \n -> n.s ! NF Sg Indef ++ linPrep n.c2; N2 = \n -> n.s ! NF Sg Indef ++ linPrep n.c2;
N3 = \n -> n.s ! NF Sg Indef ++ linPrep n.c2 ++ linPrep n.c3; N3 = \n -> n.s ! NF Sg Indef ++ linPrep n.c2 ++ linPrep n.c3;

View File

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

View File

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

View File

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

View File

@@ -21,13 +21,13 @@ oper
-- Adverbs modifying adjectives and sentences can also be formed. -- 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 --2 Adjectives
-- --
AS, A2S, AV : Type = A ; AS, A2S, AV : Type = {s : AForm => Str; adv : Str} ;
A2V : Type = A2 ; A2V : Type = A2 ;
mkA2 : A -> Prep -> A2 ; mkA2 : A -> Prep -> A2 ;

View File

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

View File

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