Files
gf-rgl/src/bulgarian/DocumentationBul.gf
T

581 lines
23 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
concrete DocumentationBul of Documentation = CatBul ** open
ResBul, Prelude, ParamX, HTML in {
flags coding=utf8 ;
lincat
Inflection = {t : Str; s1,s2,s3 : Str} ;
Definition = {s : Str} ;
Document = {s : Str} ;
Tag = {s : Str} ;
lin
InflectionN n = {
t = "същ" ;
s1= heading1 ("Съществително"++
case n.g of {
AMasc Human => "(м.р.л.)" ;
AMasc NonHuman => "(м.р.)" ;
AFem => "(ж.р.)" ;
ANeut => "(ср.р.)"
}) ;
s2= frameTable (
tr (intagAttr "th" "rowspan=\"3\"" "ед.ч." ++
th "нечленувано" ++ td (n.s ! (NF Sg Indef))) ++
tr (th "членувано" ++ td (n.s ! (NF Sg Def))) ++
tr (th "пълен член" ++ td (n.s ! NFSgDefNom)) ++
tr (intagAttr "th" "rowspan=\"2\"" "мн.ч." ++
th "нечленувано" ++ td (n.s ! (NF Pl Indef))) ++
tr (th "членувано" ++ td (n.s ! (NF Pl Def))) ++
tr (intagAttr "th" "colspan=\"2\"" "звателна форма" ++ td (n.s ! NFVocative)) ++
tr (intagAttr "th" "colspan=\"2\"" "бройна форма" ++ td (n.s ! NFPlCount))
) ;
s3= case n.relType of {
Pref => [] ;
AdjMod => heading1 ("Прилагателно") ++
frameTable (
tr (intagAttr "th" "rowspan=\"7\"" "ед.ч." ++
intagAttr "th" "rowspan=\"3\"" "мн.ч." ++
th "нечленувано" ++
td (n.rel ! (ASg Masc Indef))) ++
tr (th "непълен член" ++ td (n.rel ! (ASg Masc Def))) ++
tr (th "пълен член" ++ td (n.rel ! ASgMascDefNom)) ++
tr (intagAttr "th" "rowspan=\"2\"" "ж.р." ++
th "нечленувано" ++ td (n.rel ! (ASg Fem Indef))) ++
tr (th "членувано" ++ td (n.rel ! (ASg Fem Def))) ++
tr (intagAttr "th" "rowspan=\"2\"" "ср.р." ++
th "нечленувано" ++ td (n.rel ! (ASg Neut Indef))) ++
tr (th "членувано" ++ td (n.rel ! (ASg Neut Def))) ++
tr (intagAttr "th" "colspan=\"2\" rowspan=\"2\"" "мн.ч." ++
th "нечленувано" ++ td (n.rel ! (APl Indef))) ++
tr (th "членувано" ++ td (n.rel ! (APl Def)))
) ;
AdvMod => heading1 ("Наречие") ++
paragraph (n.rel ! (ASg Masc Def))
}
} ;
InflectionN2,InflectionN3 = \n -> {
t = "същ" ;
s1= heading1 ("Съществително "++
case n.g of {
AMasc Human => "(м.р.л.)" ;
AMasc NonHuman => "(м.р.)" ;
AFem => "(ж.р.)" ;
ANeut => "(ср.р.)"
}) ;
s2= frameTable (
tr (intagAttr "th" "rowspan=\"3\"" "ед.ч." ++
th "нечленувано" ++ td (n.s ! (NF Sg Indef))) ++
tr (th "членувано" ++ td (n.s ! (NF Sg Def))) ++
(case n.g of {
AMasc _ => tr (th "пълен член" ++ td (n.s ! NFSgDefNom)) ;
_ => ""
}) ++
tr (intagAttr "th" "rowspan=\"2\"" "мн.ч." ++
th "нечленувано" ++ td (n.s ! (NF Pl Indef))) ++
tr (th "членувано" ++ td (n.s ! (NF Pl Def))) ++
tr (intagAttr "th" "colspan=\"2\"" "звателна форма" ++ td (n.s ! NFVocative)) ++
tr (intagAttr "th" "colspan=\"2\"" "бройна форма" ++ td (n.s ! NFPlCount))
) ;
s3 = ""
} ;
InflectionPN = \pn -> {
t = "същ.с." ;
s1= heading1 ("Съществително Собствено"++
case pn.gn of {
GSg Masc => "(м.р.)" ;
GSg Fem => "(ж.р.)" ;
GSg Neut => "(ср.р.)" ;
GPl => "(мн.ч.)"
}) ;
s2 = pn.s ;
s3 = ""
} ;
InflectionLN = \n -> {
t = "същ.с." ;
s1= heading1 ("Име за Място"++
case n.gn of {
GSg Masc => "(м.р.)" ;
GSg Fem => "(ж.р.)" ;
GSg Neut => "(ср.р.)" ;
GPl => "(мн.ч.)"
}) ;
s2 = paragraph (case n.hasArt of {
True => frameTable (
tr (th "нечленувано" ++ td (n.s ! Indef)) ++
tr (th "членувано" ++ td (n.s ! Def)) ++
(case n.gn of {
GSg Masc => tr (th "пълен член" ++ td n.defNom) ;
_ => ""
})) ;
False => n.s ! Indef
}) ++
heading1 ("Наречие") ++
paragraph (case n.onPrep of {
True => linCase Dat Pos ;
False => vyv_Str
} ++
n.s ! Def) ;
s3 = ""
} ;
InflectionGN = \gn -> {
t = "същ.с.л." ;
s1= heading1 (case gn.g of {
Male => "Мъжко Име" ;
Female => "Женско Име"
}) ;
s2 = gn.s ;
s3 = ""
} ;
InflectionSN = \sn -> {
t = "същ.с.ф." ;
s1= heading1 ("Фамилно Име") ;
s2 = frameTable (
tr (th "мъжко" ++ td (sn.s ! Male)) ++
tr (th "женско" ++ td (sn.s ! Female)) ++
tr (th "семейно" ++ td sn.pl)) ;
s3 = ""
} ;
InflectionA, InflectionA2 = \a -> {
t = "пр" ;
s1= heading1 ("Прилагателно") ;
s2= frameTable (
tr (intagAttr "th" "rowspan=\"7\"" "ед.ч." ++
intagAttr "th" "rowspan=\"3\"" "м.р." ++
th "нечленувано" ++
td (a.s ! (ASg Masc Indef))) ++
tr (th "непълен член" ++ td (a.s ! (ASg Masc Def))) ++
tr (th "пълен член" ++ td (a.s ! ASgMascDefNom)) ++
tr (intagAttr "th" "rowspan=\"2\"" "ж.р." ++
th "нечленувано" ++ td (a.s ! (ASg Fem Indef))) ++
tr (th "членувано" ++ td (a.s ! (ASg Fem Def))) ++
tr (intagAttr "th" "rowspan=\"2\"" "ср.р." ++
th "нечленувано" ++ td (a.s ! (ASg Neut Indef))) ++
tr (th "членувано" ++ td (a.s ! (ASg Neut Def))) ++
tr (intagAttr "th" "colspan=\"2\" rowspan=\"2\"" "мн.ч." ++
th "нечленувано" ++ td (a.s ! (APl Indef))) ++
tr (th "членувано" ++ td (a.s ! (APl Def)))
) ++
heading1 ("Наречие") ++
paragraph (a.adv) ;
s3= ""
} ;
InflectionAdv, InflectionAdV, InflectionAdA, InflectionAdN = \adv -> {
t = "нар" ;
s1= heading1 ("Наречие") ;
s2= paragraph (adv.s) ;
s3= ""
} ;
InflectionPrep = \prep -> {
t = "пред" ;
s1= heading1 ("Предлог") ;
s2= paragraph (prep.s) ;
s3= ""
} ;
{-
-} --# notpresent
InflectionCl = \cl -> {
t = "изр" ;
s1 = heading1 ("Изречение") ;
s2 =
heading2 "Изявително Наклонение" ++
frameTable (
tr (intagAttr "th" "colspan=\"3\"" "Акционни времена" ++
intagAttr "th" "colspan=\"3\"" "Резултативни времена") ++
tr (th "" ++ th "съобщително" ++ th "въпросително" ++
th "" ++ th "съобщително" ++ th "въпросително") ++
tr (intagAttr "th" "rowspan=\"2\"" "сегашно" ++
td (cl.s ! VPresent ! Simul ! Pos ! Main) ++
td (cl.s ! VPresent ! Simul ! Pos ! Quest) ++
intagAttr "th" "rowspan=\"2\"" "минало неопределено" ++
td (cl.s ! VPresent ! Anter ! Pos ! Main) ++
td (cl.s ! VPresent ! Anter ! Pos ! Quest)) ++
tr (td (cl.s ! VPresent ! Simul ! Neg ! Main) ++
td (cl.s ! VPresent ! Simul ! Neg ! Quest) ++
td (cl.s ! VPresent ! Anter ! Neg ! Main) ++
td (cl.s ! VPresent ! Anter ! Neg ! Quest)) ++
tr (intagAttr "th" "rowspan=\"2\"" "минало несвършено" ++
td (cl.s ! (VPastImperfect Indicative) ! Simul ! Pos ! Main) ++
td (cl.s ! (VPastImperfect Indicative) ! Simul ! Pos ! Quest) ++
intagAttr "th" "rowspan=\"2\"" "минало предварително" ++
td (cl.s ! (VPastImperfect Indicative) ! Anter ! Pos ! Main) ++
td (cl.s ! (VPastImperfect Indicative) ! Anter ! Pos ! Quest)) ++
tr (td (cl.s ! (VPastImperfect Indicative) ! Simul ! Neg ! Main) ++
td (cl.s ! (VPastImperfect Indicative) ! Simul ! Neg ! Quest) ++
td (cl.s ! (VPastImperfect Indicative) ! Anter ! Neg ! Main) ++
td (cl.s ! (VPastImperfect Indicative) ! Anter ! Neg ! Quest)) ++
tr (intagAttr "th" "rowspan=\"2\"" "минало свършено" ++
td (cl.s ! (VPastSimple Indicative) ! Simul ! Pos ! Main) ++
td (cl.s ! (VPastSimple Indicative) ! Simul ! Pos ! Quest) ++
intagAttr "th" "rowspan=\"2\" colspan=\"3\"" "") ++
tr (td (cl.s ! (VPastSimple Indicative) ! Simul ! Neg ! Main) ++
td (cl.s ! (VPastSimple Indicative) ! Simul ! Neg ! Quest)) ++
tr (intagAttr "th" "rowspan=\"2\"" "бъдеще" ++
td (cl.s ! (VFut Indicative) ! Simul ! Pos ! Main) ++
td (cl.s ! (VFut Indicative) ! Simul ! Pos ! Quest) ++
intagAttr "th" "rowspan=\"2\"" "бъдеще предварително" ++
td (cl.s ! (VFut Indicative) ! Anter ! Pos ! Main) ++
td (cl.s ! (VFut Indicative) ! Anter ! Pos ! Quest)) ++
tr (td (cl.s ! (VFut Indicative) ! Simul ! Neg ! Main) ++
td (cl.s ! (VFut Indicative) ! Simul ! Neg ! Quest) ++
td (cl.s ! (VFut Indicative) ! Anter ! Neg ! Main) ++
td (cl.s ! (VFut Indicative) ! Anter ! Neg ! Quest)) ++
tr (intagAttr "th" "rowspan=\"2\"" "бъдеще в миналото" ++
td (cl.s ! (VPastFut) ! Simul ! Pos ! Main) ++
td (cl.s ! (VPastFut) ! Simul ! Pos ! Quest) ++
intagAttr "th" "rowspan=\"2\"" "бъдеще предв. в миналото" ++
td (cl.s ! VPastFut ! Anter ! Pos ! Main) ++
td (cl.s ! VPastFut ! Anter ! Pos ! Quest)) ++
tr (td (cl.s ! VPastFut ! Simul ! Neg ! Main) ++
td (cl.s ! VPastFut ! Simul ! Neg ! Quest) ++
td (cl.s ! VPastFut ! Anter ! Neg ! Main) ++
td (cl.s ! VPastFut ! Anter ! Neg ! Quest))) ++
heading3 "Условно Наклонение" ++
frameTable (
tr (th "съобщително" ++ th "въпросително") ++
tr (td (cl.s ! (VCond Indicative) ! Simul ! Pos ! Main) ++
td (cl.s ! (VCond Indicative) ! Simul ! Pos ! Quest)) ++
tr (td (cl.s ! (VCond Indicative) ! Simul ! Neg ! Main) ++
td (cl.s ! (VCond Indicative) ! Simul ! Neg ! Quest))) ++
heading2 "Преизказни Форми" ++
frameTable (
tr (intagAttr "th" "colspan=\"3\"" "Акционни времена" ++
intagAttr "th" "colspan=\"3\"" "Резултативни времена") ++
tr (th "" ++ th "съобщително" ++ th "въпросително" ++
th "" ++ th "съобщително" ++ th "въпросително") ++
tr (intagAttr "th" "rowspan=\"2\"" "сегашно / минало несвършено" ++
td (cl.s ! (VPastImperfect Renarrative) ! Simul ! Pos ! Main) ++
td (cl.s ! (VPastImperfect Renarrative) ! Simul ! Pos ! Quest) ++
intagAttr "th" "rowspan=\"2\"" "минало неопределено/предварително" ++
td (cl.s ! (VPastImperfect Renarrative) ! Anter ! Pos ! Main) ++
td (cl.s ! (VPastImperfect Renarrative) ! Anter ! Pos ! Quest)) ++
tr (td (cl.s ! (VPastImperfect Renarrative) ! Simul ! Neg ! Main) ++
td (cl.s ! (VPastImperfect Renarrative) ! Simul ! Neg ! Quest) ++
td (cl.s ! (VPastImperfect Renarrative) ! Anter ! Neg ! Main) ++
td (cl.s ! (VPastImperfect Renarrative) ! Anter ! Neg ! Quest)) ++
tr (intagAttr "th" "rowspan=\"2\"" "минало свършено" ++
td (cl.s ! (VPastSimple Renarrative) ! Simul ! Pos ! Main) ++
td (cl.s ! (VPastSimple Renarrative) ! Simul ! Pos ! Quest) ++
intagAttr "th" "rowspan=\"2\" colspan=\"3\"" "") ++
tr (td (cl.s ! (VPastSimple Renarrative) ! Simul ! Neg ! Main) ++
td (cl.s ! (VPastSimple Renarrative) ! Simul ! Neg ! Quest)) ++
tr (intagAttr "th" "rowspan=\"2\"" "бъдеще / бъдеще в миналото" ++
td (cl.s ! (VFut Renarrative) ! Simul ! Pos ! Main) ++
td (cl.s ! (VFut Renarrative) ! Simul ! Pos ! Quest) ++
intagAttr "th" "rowspan=\"2\"" "бъдеще предв. / бъдеще предв. в миналото" ++
td (cl.s ! (VFut Renarrative) ! Anter ! Pos ! Main) ++
td (cl.s ! (VFut Renarrative) ! Anter ! Pos ! Quest)) ++
tr (td (cl.s ! (VFut Renarrative) ! Simul ! Neg ! Main) ++
td (cl.s ! (VFut Renarrative) ! Simul ! Neg ! Quest) ++
td (cl.s ! (VFut Renarrative) ! Anter ! Neg ! Main) ++
td (cl.s ! (VFut Renarrative) ! Anter ! Neg ! Quest))) ++
heading3 "Условно Наклонение" ++
frameTable (
tr (th "съобщително" ++ th "въпросително") ++
tr (td (cl.s ! (VCond Renarrative) ! Simul ! Pos ! Main) ++
td (cl.s ! (VCond Renarrative) ! Simul ! Pos ! Quest)) ++
tr (td (cl.s ! (VCond Renarrative) ! Simul ! Neg ! Main) ++
td (cl.s ! (VCond Renarrative) ! Simul ! Neg ! Quest))) ;
s3 = ""
} ;
{- --# notpresent
-}
InflectionV v = {
t = "гл" ;
s1= heading1 ("Глагол") ++
pp "подлог" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics (agrP3 (GSg Masc)) ! c
} ++ v.s ! Imperf ! VPres Sg P3 ;
s2= inflVerb v ;
s3= ""
} ;
InflectionV2 v = {
t = "гл" ;
s1= heading1 ("Глагол") ++
pp "подлог" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics (agrP3 (GSg Masc)) ! c
} ++
v.s ! Imperf ! VPres Sg P3 ++
linPrep v.c2 ++
pp "допълнение";
s2= inflVerb v ;
s3= ""
} ;
InflectionV3 v = {
t = "гл" ;
s1= heading1 ("Глагол") ++
pp "подлог" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics (agrP3 (GSg Masc)) ! c
} ++
v.s ! Imperf ! VPres Sg P3 ++
linPrep v.c2 ++
pp "арг1"++
linPrep v.c3 ++
pp "арг2";
s2= inflVerb v ;
s3= ""
} ;
InflectionV2V v = {
t = "гл" ;
s1= pp "подлог" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics (agrP3 (GSg Masc)) ! c
} ++
v.s ! Imperf ! VPres Sg P3 ++
linPrep v.c2 ++
pp "допълнение"++
linPrep v.c3 ++
"да" ++ pp "глагол";
s2= inflVerb v ;
s3= ""
} ;
InflectionV2S v = {
t = "гл" ;
s1= pp "подлог" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics (agrP3 (GSg Masc)) ! c
} ++
v.s ! Imperf ! VPres Sg P3 ++
linPrep v.c2 ++
pp "допълнение"++
linPrep v.c3 ++
"че" ++ pp "изречение";
s2= inflVerb v ;
s3= ""
} ;
InflectionV2Q v = {
t = "гл" ;
s1= pp "подлог" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics (agrP3 (GSg Masc)) ! c
} ++
v.s ! Imperf ! VPres Sg P3 ++
linPrep v.c2 ++
pp "допълнение"++
linPrep v.c3 ++
pp "въпрос";
s2= inflVerb v ;
s3= ""
} ;
InflectionV2A v = {
t = "гл" ;
s1= pp "подлог" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics (agrP3 (GSg Masc)) ! c
} ++
v.s ! Imperf ! VPres Sg P3 ++
linPrep v.c2 ++
pp "допълнение"++
pp "прилагателно";
s2= inflVerb v ;
s3= ""
} ;
InflectionVV = \v -> {
t = "гл" ;
s1= pp "подлог" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics (agrP3 (GSg Masc)) ! c
} ++
v.s ! Imperf ! VPres Sg P3 ++
case v.typ of {
VVInf Perf => "да" ++ pp "свършен глагол";
VVInf Imperf => "да" ++ pp "несвършен глагол";
VVGerund => pp "деепричастие"
};
s2= inflVerb v ;
s3= ""
} ;
InflectionVS = \v -> {
t = "гл" ;
s1= pp "подлог" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics (agrP3 (GSg Masc)) ! c
} ++
v.s ! Imperf ! VPres Sg P3 ++
"че" ++ pp "изречение";
s2= inflVerb v ;
s3= ""
} ;
InflectionVQ = \v -> {
t = "гл" ;
s1= pp "подлог" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics (agrP3 (GSg Masc)) ! c
} ++
v.s ! Imperf ! VPres Sg P3 ++
pp "въпрос";
s2= inflVerb v ;
s3= ""
} ;
InflectionVA = \v -> {
t = "гл" ;
s1= pp "подлог" ++
case v.vtype of {
VNormal => "" ;
VMedial c => reflClitics ! c ;
VPhrasal c => personalClitics (agrP3 (GSg Masc)) ! c
} ++
v.s ! Imperf ! VPres Sg P3 ++
pp "прилагателно";
s2= inflVerb v ;
s3= ""
} ;
oper
inflVerb : Verb -> Str = \v ->
(heading2 ("Несвършен вид") ++
heading3 ("Изявително наклонение") ++
heading4 ("Сегашно време") ++
finite Imperf VPres ++
heading4 ("Минало свършено време (аорист)") ++
finite Imperf VAorist ++
heading4 ("Минало несвършено време (имперфект)") ++
finite Imperf VImperfect ++
heading3 ("Повелително наклонение") ++
imperative Imperf ++
heading3 ("Причастия (отглаголни прилагателни)") ++
heading4 ("Минало страдателно причастие") ++
participle Imperf VPassive ++
heading4 ("Минало свършено деятелно причастие") ++
participle Imperf VPerfect ++
heading4 ("Минало несвършено деятелно причастие") ++
participle Imperf VPluPerfect ++
heading4 ("Сегашно деятелно причастие") ++
participle Imperf VPresPart ++
heading2 ("Свършен вид") ++
heading3 ("Изявително наклонение") ++
heading4 ("Сегашно време") ++
finite Perf VPres ++
heading4 ("Минало свършено време (аорист)") ++
finite Perf VAorist ++
heading4 ("Минало несвършено време (имперфект)") ++
finite Perf VImperfect ++
heading3 ("Повелително наклонение") ++
imperative Perf ++
heading3 ("Причастия (отглаголни прилагателни)") ++
heading4 ("Минало страдателно причастие") ++
participle Perf VPassive ++
heading4 ("Минало свършено деятелно причастие") ++
participle Perf VPerfect ++
heading4 ("Минало несвършено деятелно причастие") ++
participle Perf VPluPerfect ++
heading1 ("Отглаголно съществително") ++
frameTable (
tr (intagAttr "th" "rowspan=\"2\"" "ед.ч." ++
th "нечленувано" ++ td (v.s ! Imperf ! VNoun (NF Sg Indef))) ++
tr (th "членувано" ++ td (v.s ! Imperf ! VNoun (NF Sg Def))) ++
tr (intagAttr "th" "rowspan=\"2\"" "мн.ч." ++
th "нечленувано" ++ td (v.s ! Imperf ! VNoun (NF Pl Indef))) ++
tr (th "членувано" ++ td (v.s ! Imperf ! VNoun (NF Pl Def)))
) ++
heading1 ("Деепричастие (отглаголно наречие)") ++
paragraph (v.s ! Imperf ! VGerund))
where {
finite : Aspect -> (Number -> Person -> VForm) -> Str = \aspect,f ->
frameTable (
tr (th "" ++
th "ед.ч." ++
th "мн.ч.") ++
tr (th "1 л." ++
td (v.s ! aspect ! f Sg P1) ++
td (v.s ! aspect ! f Pl P1)) ++
tr (th "2 л." ++
td (v.s ! aspect ! f Sg P2) ++
td (v.s ! aspect ! f Pl P2)) ++
tr (th "3 л." ++
td (v.s ! aspect ! f Sg P3) ++
td (v.s ! aspect ! f Pl P3))
) ;
imperative : Aspect -> Str = \aspect ->
frameTable (
tr (th "ед.ч." ++
th "мн.ч.") ++
tr (td (v.s ! aspect ! VImperative Sg) ++
td (v.s ! aspect ! VImperative Pl))
) ;
participle : Aspect -> (AForm -> VForm) -> Str = \aspect,f ->
frameTable (
tr (intagAttr "th" "rowspan=\"7\"" "ед.ч." ++
intagAttr "th" "rowspan=\"3\"" "м.р." ++
th "нечленувано" ++
td (v.s ! aspect ! f (ASg Masc Indef))) ++
tr (th "непълен член" ++
td (v.s ! aspect ! f (ASg Masc Def))) ++
tr (th "пълен член" ++
td (v.s ! aspect ! f ASgMascDefNom)) ++
tr (intagAttr "th" "rowspan=\"2\"" "ж.р." ++
th "нечленувано" ++
td (v.s ! aspect ! f (ASg Fem Indef))) ++
tr (th "членувано" ++
td (v.s ! aspect ! f (ASg Fem Def))) ++
tr (intagAttr "th" "rowspan=\"2\"" "ср.р." ++
th "нечленувано" ++
td (v.s ! aspect ! f (ASg Neut Indef))) ++
tr (th "членувано" ++
td (v.s ! aspect ! f (ASg Neut Def))) ++
tr (intagAttr "th" "rowspan=\"2\" colspan=\"2\"" "мн.ч." ++
th "нечленувано" ++
td (v.s ! aspect ! f (APl Indef))) ++
tr (th "членувано" ++
td (v.s ! aspect ! f (APl Def)))
) ;
} ;
pp : Str -> Str = \s -> "<"+s+">";
lin
NoDefinition t = {s=t.s};
MkDefinition t d = {s="<p><b>Дефиниция:</b>"++t.s++d.s++"</p>"};
MkDefinitionEx t d e = {s="<p><b>Дефиниция:</b>"++t.s++d.s++"</p><p><b>Пример:</b>"++e.s++"</p>"};
lin
MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ i.s3 ++ e.s} ;
MkTag i = {s = i.t} ;
}