1
0
forked from GitHub/gf-rgl
Files
gf-rgl/src/bulgarian/ConjunctionBul.gf
T
2020-06-17 09:17:56 +02:00

100 lines
3.4 KiB
Plaintext

--# -coding=utf8
concrete ConjunctionBul of Conjunction =
CatBul ** open ResBul, Coordination, Prelude, Predef in {
flags coding=utf8 ;
flags optimize=all_subs ;
lin
ConjS conj ss = {
s = linCoord []!conj.sep ++ ss.s!conj.sep ++ conj.s ++ ss.s!4;
} ;
ConjAdv conj ss = {
s = linCoord []!conj.sep ++ ss.s!conj.sep ++ conj.s ++ ss.s!4;
} ;
ConjAdV conj ss = {
s = linCoord []!conj.sep ++ ss.s!conj.sep ++ conj.s ++ ss.s!4;
p = Pos
} ;
ConjIAdv conj ss = {
s = \\qform => linCoord []!conj.sep ++ ss.s!qform!conj.sep ++ conj.s ++ ss.s!qform!4;
} ;
ConjNP conj ss = {
s = \\role => linCoord []!conj.sep ++ ss.s!role!conj.sep ++ conj.s ++ ss.s!role!4;
gn = conjGenNum (gennum (AMasc NonHuman) conj.n) ss.gn;
p = ss.p
} ;
ConjAP conj ss = {
s = \\aform,p => linCoord []!conj.sep ++ ss.s!aform!p!conj.sep ++ conj.s ++ ss.s!aform!p!4;
adv = ss.adv!conj.conj ++ conj.s ++ ss.adv!4;
isPre = ss.isPre
} ;
ConjRS conj ss = {
s = \\role => linCoord []!conj.sep ++ ss.s!role!conj.sep ++ conj.s ++ ss.s!role!4;
} ;
ConjCN conj ss = {
s = \\nform => linCoord []!conj.sep ++ ss.s!nform!conj.sep ++ conj.s ++ ss.s!nform!4;
g = ss.g
} ;
-- These fun's are generated from the list cat's.
BaseS x y = {s = table {4 => y.s; _ => x.s}} ;
ConsS x xs = {s = table {4 => xs.s!4; t => x.s++linCoord bindComma!t++xs.s!t}} ;
BaseAdv x y = {s = table {4 => y.s; _ => x.s}} ;
ConsAdv x xs = {s = table {4 => xs.s!4; t => x.s++linCoord bindComma!t++xs.s!t}} ;
BaseAdV x y = {s = table {4 => y.s; _ => x.s}} ;
ConsAdV x xs = {s = table {4 => xs.s!4; t => x.s++linCoord bindComma!t++xs.s!t}} ;
BaseIAdv x y = {s = \\qform=>table {4 => y.s!qform; _ => x.s!qform}} ;
ConsIAdv x xs = {s = \\qform=>table {4 => xs.s!qform!4; t => x.s!qform++linCoord bindComma!t++xs.s!qform!t}} ;
BaseNP x y =
{s = \\role=>table {4 => y.s!role; _ => x.s!role};
gn = conjGenNum x.gn y.gn;
p = x.p} ;
ConsNP x xs =
{s = \\role=>table {4 => xs.s!role!4; t => x.s!role++linCoord bindComma!t++xs.s!role!t};
gn = conjGenNum xs.gn x.gn;
p = x.p} ;
BaseAP x y =
{s = \\aform,p => table {4 => y.s!aform!p; _ => x.s!aform!p} ;
isPre = andB x.isPre y.isPre} ;
ConsAP x xs =
{s = \\aform,p=>table {4 => xs.s!aform!p!4; t => x.s!aform!p++linCoord bindComma!t++xs.s!aform!p!t};
isPre = andB x.isPre xs.isPre} ;
BaseRS x y =
{s = \\role=>table {4 => y.s!role; _ => x.s!role}} ;
ConsRS x xs =
{s = \\role=>table {4 => xs.s!role!4; t => x.s!role++linCoord bindComma!t++xs.s!role!t}} ;
BaseCN x y =
{s = \\nform=>table {4 => y.s!nform; _ => x.s!nform};
g = x.g} ;
ConsCN x xs =
{s = \\nform=>table {4 => xs.s!nform!4; t => x.s!nform++linCoord bindComma!t++xs.s!nform!t};
g = x.g} ;
lincat
[S] = {s : Ints 4 => Str} ;
[Adv] = {s : Ints 4 => Str} ;
[AdV] = {s : Ints 4 => Str} ;
[IAdv] = {s : QForm => Ints 4 => Str} ;
[NP] = {s : Role => Ints 4 => Str; gn : GenNum; p : PronPerson} ;
[AP] = {s : AForm => Person => Ints 4 => Str; isPre : Bool} ;
[RS] = {s : Agr => Ints 4 => Str} ;
[CN] = {s : NForm => Ints 4 => Str; g : AGender} ;
}