a new abstract syntax in Documentation.gf which allows a more compact definition of the corresponding concrete syntax. The new strategy is so far used only in DocumentationEng and the new DocumentationBul.

This commit is contained in:
kr.angelov
2014-02-17 08:45:57 +00:00
parent 769fd9af69
commit a6747eac6b
10 changed files with 444 additions and 212 deletions

View File

@@ -162,129 +162,4 @@ lin
UttAdV adv = adv;
lincat
Feat = Str;
lin FeatN2, FeatN = \n ->
case n.g of {
AMasc Human => "(м.р.л.)" ;
AMasc NonHuman => "(м.р.)" ;
AFem => "(ж.р.)" ;
ANeut => "(ср.р.)"
} ;
FeatV = \v ->
"<подлог>" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
} ++
v.s ! Imperf ! VPres Sg P3 ;
FeatV2 = \v ->
"<подлог>" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
} ++
v.s ! Imperf ! VPres Sg P3 ++
v.c2.s ++
"<допълнение>";
FeatV3 = \v ->
"<подлог>" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
} ++
v.s ! Imperf ! VPres Sg P3 ++
v.c2.s ++
"<арг1>"++
v.c3.s ++
"<арг2>";
FeatV2V = \v ->
"<подлог>" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
} ++
v.s ! Imperf ! VPres Sg P3 ++
v.c2.s ++
"<допълнение>"++
v.c3.s ++
"да" ++ "<глагол>";
FeatV2S = \v ->
"<подлог>" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
} ++
v.s ! Imperf ! VPres Sg P3 ++
v.c2.s ++
"<допълнение>"++
v.c3.s ++
"че" ++ "<изречение>";
FeatV2Q = \v ->
"<подлог>" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
} ++
v.s ! Imperf ! VPres Sg P3 ++
v.c2.s ++
"<допълнение>"++
v.c3.s ++
"<въпрос>";
FeatV2A = \v ->
"<подлог>" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
} ++
v.s ! Imperf ! VPres Sg P3 ++
v.c2.s ++
"<допълнение>"++
"<прилагателно>";
FeatVV = \v ->
"<подлог>" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
} ++
v.s ! Imperf ! VPres Sg P3 ++
case v.typ of {
VVInf => "да" ++ "<глагол>";
VVGerund => "<деепричастие>"
};
FeatVS = \v ->
"<подлог>" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
} ++
v.s ! Imperf ! VPres Sg P3 ++
"че" ++ "<изречение>";
FeatVQ = \v ->
"<подлог>" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
} ++
v.s ! Imperf ! VPres Sg P3 ++
"<въпрос>";
FeatVA = \v ->
"<подлог>" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
} ++
v.s ! Imperf ! VPres Sg P3 ++
"<прилагателно>";
}