forked from GitHub/gf-rgl
allow post-position adjectives. added as_CAdv
This commit is contained in:
@@ -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 = {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -11,17 +11,14 @@ lin
|
||||
} ;
|
||||
|
||||
CompoundN n1 n2 =
|
||||
let aform = ASg (case n2.g of {
|
||||
AMasc _ => Masc ;
|
||||
AFem => Fem ;
|
||||
ANeut => Neut
|
||||
}) Indef
|
||||
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
|
||||
}
|
||||
in {
|
||||
s = \\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 ;
|
||||
s = comp ;
|
||||
rel = \\af => "на" ++ comp ! NF Sg Def ; relPost = True ;
|
||||
g = n2.g
|
||||
} ;
|
||||
|
||||
|
||||
@@ -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 "âàëè")) ;
|
||||
|
||||
@@ -235,6 +235,7 @@ oper
|
||||
APl Def => dobrite
|
||||
} ;
|
||||
adv = dobro ;
|
||||
isPre = True ;
|
||||
lock_A = <>
|
||||
} ;
|
||||
}
|
||||
|
||||
@@ -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 ;
|
||||
|
||||
@@ -2081,5 +2081,5 @@ oper
|
||||
(v0+"ŕé")
|
||||
(v0+"ŕíĺ") ;
|
||||
|
||||
adjAdv : A -> Str -> A =
|
||||
adjAdv : A -> Str -> A =
|
||||
\a,adv -> a ** {adv = adv} ;
|
||||
|
||||
@@ -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 "Áúëãàðñêè" ;
|
||||
|
||||
Reference in New Issue
Block a user