1
0
forked from GitHub/gf-rgl

added DocumentationPol.gf

This commit is contained in:
Krasimir Angelov
2022-08-09 11:23:36 +02:00
parent 4beacc0f64
commit 3bcb34559e
2 changed files with 181 additions and 1 deletions

View File

@@ -0,0 +1,179 @@
--# -path=.:../abstract:../common
concrete DocumentationPol of Documentation = CatPol ** open
ResPol,
HTML in {
lincat
Inflection = {t : Str; s1,s2 : Str} ;
Definition = {s : Str} ;
Document = {s : Str} ;
Tag = {s : Str} ;
lin
InflectionN, InflectionN2, InflectionN3 = \noun -> {
t = "rz" ;
s1 = heading1 ("rzeczownik" ++ case noun.g of {
Masc Animate => "(męskozwierzęcy)";
Masc Inanimate => "(męskorzeczowy)";
Masc Personal => "(męskoosobowy)";
Fem => "(żeński)";
NeutGr => "(nijaki)";
Neut => "(nijaki)";
Plur => ""
}) ;
s2 = frameTable (
tr (th "" ++ th "liczba pojedyncza" ++ th "liczba mnoga") ++
tr (th "mianownik" ++ td (noun.s ! SF Sg Nom) ++ td (noun.s ! SF Pl Nom)) ++
tr (th "dopełniacz" ++ td (noun.s ! SF Sg Gen) ++ td (noun.s ! SF Pl Gen)) ++
tr (th "celownik" ++ td (noun.s ! SF Sg Dat) ++ td (noun.s ! SF Pl Dat)) ++
tr (th "biernik" ++ td (noun.s ! SF Sg Acc) ++ td (noun.s ! SF Pl Acc)) ++
tr (th "narzędnik" ++ td (noun.s ! SF Sg Instr) ++ td (noun.s ! SF Pl Instr)) ++
tr (th "miejscownik" ++ td (noun.s ! SF Sg Loc) ++ td (noun.s ! SF Pl Loc)) ++
tr (th "wołacz" ++ td (noun.s ! SF Sg VocP) ++ td (noun.s ! SF Pl VocP))
)
} ;
InflectionPN = \pn -> {
t = "im" ;
s1 = heading1 ("Imię" ++ case pn.gn of {
MascPersSg|MascAniSg|MascInaniSg|MascPersPl => "(męskorzeczowy)";
FemSg => "(żeński)";
NeutSg => "(nijaki)";
_ => ""
}) ;
s2 = frameTable (
tr (th "mianownik" ++ td (pn.nom)) ++
tr (th "dopełniacz" ++ td (pn.dep ! GenPrep)) ++
tr (th "celownik" ++ td (pn.dep ! DatPrep)) ++
tr (th "biernik" ++ td (pn.dep ! AccPrep)) ++
tr (th "narzędnik" ++ td (pn.dep ! InstrC)) ++
tr (th "miejscownik" ++ td (pn.dep ! LocPrep)) ++
tr (th "wołacz" ++ td (pn.voc))
)
} ;
InflectionA, InflectionA2 = \adj -> {
t = "a" ;
s1 = heading1 "Przymiotnik" ;
s2 = inflAdj (mkAtable adj.pos) ++
heading1 "Stopień wyższy" ++
inflAdj (mkAtable adj.comp) ++
heading1 "Stopień najwyższy" ++
inflAdj (mkAtable adj.super)
} ;
InflectionAdv, InflectionAdV, InflectionAdA, InflectionAdN = \adv -> {
t = "prs" ;
s1= heading1 "Przysłówek" ;
s2= paragraph (adv.s) ;
s3= ""
} ;
InflectionPrep = \prep -> {
t = "pri" ;
s1= heading1 "Przyimek" ;
s2= paragraph (prep.s) ;
s3= ""
} ;
InflectionV, InflectionV2, InflectionV3, InflectionV2V,
InflectionV2S, InflectionV2Q, InflectionV2A, InflectionVV,
InflectionVS, InflectionVQ, InflectionVA = \v -> {
t = "cz" ;
s1= heading1 "Czasownik" ;
s2= heading2 "Niedokonany"++
inflVerb v.si (mkAtable (table2record v.pparti))++
heading2 "Dokonany"++
inflVerb v.sp (mkAtable (table2record v.ppartp))
} ;
lin
NoDefinition t = {s=t.s};
MkDefinition t d = {s="<p><b>Definicja:</b>"++t.s++d.s++"</p>"};
MkDefinitionEx t d e = {s="<p><b>Definicja:</b>"++t.s++d.s++"</p><p><b>Przykład:</b>"++e.s++"</p>"};
lin
MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ paragraph e.s} ;
MkTag i = {s = i.t} ;
oper
inflAdj : (AForm => Str) -> Str = \forms ->
frameTable (
tr (th "" ++ th "męskorzeczowy" ++ th "żeński" ++ th "nijaki") ++
tr (intagAttr "th" "colspan=\"4\"" "liczba pojedyncza") ++
tr (th "mianownik" ++ td (forms ! AF MascInaniSg Nom) ++ td (forms ! AF FemSg Nom) ++ td (forms ! AF NeutSg Nom)) ++
tr (th "dopełniacz" ++ td (forms ! AF MascInaniSg Gen) ++ td (forms ! AF FemSg Gen) ++ td (forms ! AF NeutSg Gen)) ++
tr (th "celownik" ++ td (forms ! AF MascInaniSg Dat) ++ td (forms ! AF FemSg Dat) ++ td (forms ! AF NeutSg Dat)) ++
tr (th "biernik" ++ td (forms ! AF MascInaniSg Acc ++ "/" ++
forms ! AF MascAniSg Acc) ++ td (forms ! AF FemSg Acc) ++ td (forms ! AF NeutSg Acc)) ++
tr (th "narzędnik" ++ td (forms ! AF MascInaniSg Instr) ++ td (forms ! AF FemSg Instr) ++ td (forms ! AF NeutSg Instr)) ++
tr (th "miejscownik" ++ td (forms ! AF MascInaniSg Loc) ++ td (forms ! AF FemSg Loc) ++ td (forms ! AF NeutSg Loc)) ++
tr (th "wołacz" ++ td (forms ! AF MascInaniSg VocP) ++ td (forms ! AF FemSg VocP) ++ td (forms ! AF NeutSg VocP)) ++
tr (intagAttr "th" "colspan=\"4\"" "liczba mnoga") ++
tr (th "mianownik" ++ td (forms ! AF MascPersPl Nom) ++ intagAttr "td" "colspan=\"2\"" (forms ! AF OthersPl Nom)) ++
tr (th "dopełniacz" ++ intagAttr "td" "colspan=\"3\"" (forms ! AF OthersPl Gen)) ++
tr (th "celownik" ++ intagAttr "td" "colspan=\"3\"" (forms ! AF OthersPl Dat)) ++
tr (th "biernik" ++ td (forms ! AF MascPersPl Acc) ++ intagAttr "td" "colspan=\"2\"" (forms ! AF OthersPl Acc)) ++
tr (th "narzędnik" ++ intagAttr "td" "colspan=\"3\"" (forms ! AF OthersPl Instr)) ++
tr (th "miejscownik" ++ intagAttr "td" "colspan=\"3\"" (forms ! AF OthersPl Loc)) ++
tr (th "wołacz" ++ td (forms ! AF MascPersPl VocP) ++ intagAttr "td" "colspan=\"2\"" (forms ! AF OthersPl VocP))
) ;
inflVerb : (VFormM => Str) -> (AForm => Str) -> Str = \forms,part ->
heading3 "Bezokolicznik"++
paragraph(forms ! VInfM)++
heading3 "Czas Teraźniejszy"++
frameTable (
tr (th "" ++ th "liczba pojedyncza" ++ th "liczba mnoga") ++
tr (th "1 o." ++ td (forms ! VFinM Sg P1) ++ td (forms ! VFinM Pl P1)) ++
tr (th "2 o." ++ td (forms ! VFinM Sg P2) ++ td (forms ! VFinM Pl P2)) ++
tr (th "3 o." ++ td (forms ! VFinM Sg P3) ++ td (forms ! VFinM Pl P3))
) ++
heading3 "Czas Przeszły"++
frameTable (
tr (intagAttr "th" "colspan=\"2\"" "" ++th "liczba pojedyncza"++ th "liczba mnoga") ++
tr (intagAttr "th" "rowspan=\"5\"" "1 o."++th "męskoosobowy" ++ td (forms ! VPraetM MascPersSg P1) ++ td (forms ! VPraetM MascPersPl P1)) ++
tr ( th "męskozwierzęcy" ++ td (forms ! VPraetM MascAniSg P1) ++ intagAttr "td" "rowspan=\"4\"" (forms ! VPraetM OthersPl P1)) ++
tr ( th "męskorzeczowy" ++ td (forms ! VPraetM MascInaniSg P1)) ++
tr ( th "żeński" ++ td (forms ! VPraetM FemSg P1)) ++
tr ( th "nijaki" ++ td (forms ! VPraetM NeutSg P1)) ++
tr (intagAttr "th" "rowspan=\"5\"" "2 o."++th "męskoosobowy" ++ td (forms ! VPraetM MascPersSg P2) ++ td (forms ! VPraetM MascPersPl P2)) ++
tr ( th "męskozwierzęcy" ++ td (forms ! VPraetM MascAniSg P2) ++ intagAttr "td" "rowspan=\"4\"" (forms ! VPraetM OthersPl P2)) ++
tr ( th "męskorzeczowy" ++ td (forms ! VPraetM MascInaniSg P2)) ++
tr ( th "żeński" ++ td (forms ! VPraetM FemSg P2)) ++
tr ( th "nijaki" ++ td (forms ! VPraetM NeutSg P2)) ++
tr (intagAttr "th" "rowspan=\"5\"" "3 o."++th "męskoosobowy" ++ td (forms ! VPraetM MascPersSg P3) ++ td (forms ! VPraetM MascPersPl P3)) ++
tr ( th "męskozwierzęcy" ++ td (forms ! VPraetM MascAniSg P3) ++ intagAttr "td" "rowspan=\"4\"" (forms ! VPraetM OthersPl P3)) ++
tr ( th "męskorzeczowy" ++ td (forms ! VPraetM MascInaniSg P3)) ++
tr ( th "żeński" ++ td (forms ! VPraetM FemSg P3)) ++
tr ( th "nijaki" ++ td (forms ! VPraetM NeutSg P3))
) ++
heading3 "Tryb Przypuszczający"++
frameTable (
tr (intagAttr "th" "colspan=\"2\"" "" ++th "liczba pojedyncza"++ th "liczba mnoga") ++
tr (intagAttr "th" "rowspan=\"5\"" "1 o."++th "męskoosobowy" ++ td (forms ! VCondM MascPersSg P1) ++ td (forms ! VCondM MascPersPl P1)) ++
tr ( th "męskozwierzęcy" ++ td (forms ! VCondM MascAniSg P1) ++ intagAttr "td" "rowspan=\"4\"" (forms ! VCondM OthersPl P1)) ++
tr ( th "męskorzeczowy" ++ td (forms ! VCondM MascInaniSg P1)) ++
tr ( th "żeński" ++ td (forms ! VCondM FemSg P1)) ++
tr ( th "nijaki" ++ td (forms ! VCondM NeutSg P1)) ++
tr (intagAttr "th" "rowspan=\"5\"" "2 o."++th "męskoosobowy" ++ td (forms ! VCondM MascPersSg P2) ++ td (forms ! VPraetM MascPersPl P2)) ++
tr ( th "męskozwierzęcy" ++ td (forms ! VCondM MascAniSg P2) ++ intagAttr "td" "rowspan=\"4\"" (forms ! VCondM OthersPl P2)) ++
tr ( th "męskorzeczowy" ++ td (forms ! VCondM MascInaniSg P2)) ++
tr ( th "żeński" ++ td (forms ! VCondM FemSg P2)) ++
tr ( th "nijaki" ++ td (forms ! VCondM NeutSg P2)) ++
tr (intagAttr "th" "rowspan=\"5\"" "3 o."++th "męskoosobowy" ++ td (forms ! VCondM MascPersSg P3) ++ td (forms ! VPraetM MascPersPl P3)) ++
tr ( th "męskozwierzęcy" ++ td (forms ! VCondM MascAniSg P3) ++ intagAttr "td" "rowspan=\"4\"" (forms ! VCondM OthersPl P3)) ++
tr ( th "męskorzeczowy" ++ td (forms ! VCondM MascInaniSg P3)) ++
tr ( th "żeński" ++ td (forms ! VCondM FemSg P3)) ++
tr ( th "nijaki" ++ td (forms ! VCondM NeutSg P3))
) ++
heading3 "Bezokolicznik"++
frameTable (
tr (th "" ++ th "liczba pojedyncza" ++ th "liczba mnoga") ++
tr (th "1 o." ++ td ("") ++ td (forms ! VImperPl1M)) ++
tr (th "2 o." ++ td (forms ! VImperSg2M) ++ td (forms ! VImperPl2M))
)++
heading3 "Imiesłów"++
inflAdj part ;
}

View File

@@ -4,5 +4,6 @@
concrete LangPol of Lang =
GrammarPol,
LexiconPol
LexiconPol,
DocumentationPol --# notpresent
** { flags startcat = Phr ; unlexer = text ; lexer = text; } ;