diff --git a/lib/src/abstract/Documentation.gf b/lib/src/abstract/Documentation.gf index 4ad406ff0..9277a058a 100644 --- a/lib/src/abstract/Documentation.gf +++ b/lib/src/abstract/Documentation.gf @@ -15,6 +15,7 @@ fun noun_Category : Category ; adjective_Category : Category ; verb_Category : Category ; + adverb_Category : Category ; number_ParameterType : ParameterType ; gender_ParameterType : ParameterType ; @@ -44,13 +45,15 @@ fun past_Parameter : Parameter ; future_Parameter : Parameter ; conditional_Parameter : Parameter ; + perfect_Parameter : Parameter ; participle_Parameter : Parameter ; - participle_Parameter : Parameter ; + aux_verb_Parameter : Parameter ; positive_Parameter : Parameter ; comparative_Parameter : Parameter ; superlative_Parameter : Parameter ; + predicative_Parameter : Parameter ; person1_Parameter : Parameter ; person2_Parameter : Parameter ; diff --git a/lib/src/english/AllEng.gf b/lib/src/english/AllEng.gf index 76249deb0..e52f7af71 100644 --- a/lib/src/english/AllEng.gf +++ b/lib/src/english/AllEng.gf @@ -1,7 +1,7 @@ --# -path=.:../abstract:../common:prelude concrete AllEng of AllEngAbs = - LangEng, ConstructionEng, + LangEng, IrregEng-[ blow_V,burn_V,come_V,dig_V,fall_V,fly_V,freeze_V,go_V,lie_V,run_V, sew_V,sing_V,sit_V,sleep_V,spit_V,stand_V,swell_V,swim_V,think_V], diff --git a/lib/src/english/AllEngAbs.gf b/lib/src/english/AllEngAbs.gf index 0d584a0c4..8c8690a35 100644 --- a/lib/src/english/AllEngAbs.gf +++ b/lib/src/english/AllEngAbs.gf @@ -1,7 +1,7 @@ --# -path=.:../abstract:../common:prelude abstract AllEngAbs = - Lang, Construction, + Lang, IrregEngAbs-[ blow_V,burn_V,come_V,dig_V,fall_V,fly_V,freeze_V,go_V,lie_V,run_V, sew_V,sing_V,sit_V,sleep_V,spit_V,stand_V,swell_V,swim_V,think_V], diff --git a/lib/src/english/DocumentationEng.gf b/lib/src/english/DocumentationEng.gf new file mode 100644 index 000000000..449bc5bfd --- /dev/null +++ b/lib/src/english/DocumentationEng.gf @@ -0,0 +1,96 @@ +--# -path=.:../abstract:../common + +concrete DocumentationEng of Documentation = CatEng ** open + ResEng, + ParadigmsEng, + (G = GrammarEng), + Prelude, + HTML +in { + + +lincat + Category = G.N ; + ParameterType = G.N ; + Parameter = G.N ; + + Heading = {s : Str} ; + Inflection = {s : Str} ; + + +lin + noun_Category = mkN "noun" ; + adjective_Category = mkN "adjektive" ; + verb_Category = mkN "verb" ; + adverb_Category = mkN "adverb" ; + + singular_Parameter = mkN "singular" ; + plural_Parameter = mkN "plural" ; + + masculine_Parameter = mkN "maskuline" ; + feminine_Parameter = mkN "feminine" ; + neuter_Parameter = mkN "neuter" ; + + nominative_Parameter = mkN "nominative" ; + genitive_Parameter = mkN "genitive" ; + dative_Parameter = mkN "dative" ; + accusative_Parameter = mkN "accusative" ; + + imperative_Parameter = mkN "imperative" ; + indicative_Parameter = mkN "indicative" ; + conjunctive_Parameter = mkN "konjunctive" ; + infinitive_Parameter = mkN "infinitive" ; + + present_Parameter = mkN "present" ; + past_Parameter = mkN "past" ; + future_Parameter = mkN "future" ; + conditional_Parameter = mkN "conditional" ; + perfect_Parameter = mkN "perfect" ; + + participle_Parameter = mkN "participle" ; + aux_verb_Parameter = mkN "auxiliary" ; + + positive_Parameter = mkN "positive" ; + comparative_Parameter = mkN "comparative" ; + superlative_Parameter = mkN "superlative" ; + predicative_Parameter = mkN "predicative" ; + + nounHeading n = ss (n.s ! Sg ! Nom) ; + +oper + tdf : Str -> Str = \s -> td (intag "i" s) ; + heading : N -> Str = \n -> (nounHeading n).s ; +lin + InflectionN noun = { + s = heading1 (heading noun_Category) ++ frameTable ( + tr (th "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter) ) ++ + tr (th (heading nominative_Parameter) ++ tdf (noun.s ! Sg ! Nom) ++ tdf (noun.s ! Pl ! Nom)) ++ + tr (th (heading genitive_Parameter) ++ tdf (noun.s ! Sg ! Gen) ++ tdf (noun.s ! Pl ! Gen)) + ) + } ; + + InflectionA adj = { + s = heading1 (heading adjective_Category) ++ + frameTable ( + tr (th (heading positive_Parameter) ++ tdf (adj.s ! AAdj Posit Nom)) ++ + tr (th (heading comparative_Parameter) ++ tdf (adj.s ! AAdj Compar Nom)) ++ + tr (th (heading superlative_Parameter) ++ tdf (adj.s ! AAdj Superl Nom)) ++ + tr (th (heading adverb_Category) ++ tdf (adj.s ! AAdv)) + ) + } ; + + + + InflectionV, InflectionV2 = \verb -> { + s = heading1 (heading verb_Category) ++ + frameTable ( + tr (th (heading infinitive_Parameter) ++ tdf (verb.s ! VInf)) ++ + tr (th (heading present_Parameter) ++ tdf (verb.s ! VPres)) ++ + tr (th (heading past_Parameter) ++ tdf (verb.s ! VPast)) ++ --# notpresent + tr (th (heading past_Parameter ++ heading participle_Parameter) ++ tdf (verb.s ! VPPart)) ++ + tr (th (heading present_Parameter ++ heading participle_Parameter) ++ tdf (verb.s ! VPresPart)) + ) + } ; + + +} \ No newline at end of file diff --git a/lib/src/english/LangEng.gf b/lib/src/english/LangEng.gf index c033b80c4..0805937a9 100644 --- a/lib/src/english/LangEng.gf +++ b/lib/src/english/LangEng.gf @@ -2,7 +2,9 @@ concrete LangEng of Lang = GrammarEng, - LexiconEng + LexiconEng, + ConstructionEng, + DocumentationEng ** { flags startcat = Phr ; unlexer = text ; lexer = text ; diff --git a/lib/src/german/DocumentationGer.gf b/lib/src/german/DocumentationGer.gf index fbff72b95..18a8f479a 100644 --- a/lib/src/german/DocumentationGer.gf +++ b/lib/src/german/DocumentationGer.gf @@ -26,12 +26,33 @@ lin singular_Parameter = mkN "Singular" ; plural_Parameter = mkN "Plural" ; + masculine_Parameter = mkN "Maskulinum" ; + feminine_Parameter = mkN "Femininum" ; + neuter_Parameter = mkN "Neutrum" ; + nominative_Parameter = mkN "Nominativ" ; genitive_Parameter = mkN "Genitiv" ; dative_Parameter = mkN "Dativ" ; accusative_Parameter = mkN "Akkusativ" ; + imperative_Parameter = mkN "Imperativ" ; + indicative_Parameter = mkN "Indikativ" ; + conjunctive_Parameter = mkN "Konjunktiv" ; + infinitive_Parameter = mkN "Infinitiv" ; + present_Parameter = mkN "Präsens" ; + past_Parameter = mkN "Präteritum" ; + future_Parameter = mkN "Futur" ; + conditional_Parameter = mkN "Konditional" ; + perfect_Parameter = mkN "Perfekt" ; + + participle_Parameter = mkN "Partizip" ; + aux_verb_Parameter = mkN "Hilfsverb" ; + + positive_Parameter = mkN "Positiv" ; + comparative_Parameter = mkN "Komparativ" ; + superlative_Parameter = mkN "Superlativ" ; + predicative_Parameter = mkN "Prädikativ" ; nounHeading n = ss (n.s ! Sg ! Nom) ; @@ -56,18 +77,19 @@ lin tdf (adj.s ! d ! (AMod (GSg Fem) c)) ++ tdf (adj.s ! d ! (AMod (GSg Neutr) c)) ++ tdf (adj.s ! d ! (AMod GPl c)) ; - dtable : Str -> Degree -> Str = \s,d -> - paragraph (heading2 s ++ frameTable ( - tr (th [] ++ th "Maskulinum" ++ th "Femininum" ++ th "Neutrum" ++ th "Plural") ++ - tr (th "Nominativ" ++ gforms d Nom) ++ - tr (th "Genitiv" ++ gforms d Gen) ++ - tr (th "Dativ" ++ gforms d Dat) ++ - tr (th "Akkusativ" ++ gforms d Acc) ++ - tr (th "Prädikativ" ++ intagAttr "td" "colspan=4" (adj.s ! d ! APred)) + dtable : Parameter -> Degree -> Str = \s,d -> + paragraph (heading2 (heading s) ++ frameTable ( + tr (th [] ++ th (heading masculine_Parameter) ++ th (heading feminine_Parameter) ++ th (heading neuter_Parameter) ++ + th (heading plural_Parameter)) ++ + tr (th (heading nominative_Parameter) ++ gforms d Nom) ++ + tr (th (heading genitive_Parameter) ++ gforms d Gen) ++ + tr (th (heading dative_Parameter) ++ gforms d Dat) ++ + tr (th (heading accusative_Parameter) ++ gforms d Acc) ++ + tr (th (heading predicative_Parameter) ++ intagAttr "td" "colspan=4" (intag "i" (adj.s ! d ! APred))) )) in { s = heading1 (nounHeading adjective_Category).s ++ - dtable "Positiv" Posit ++ dtable "Komparativ" Compar ++ dtable "Superlativ" Superl ; + dtable positive_Parameter Posit ++ dtable comparative_Parameter Compar ++ dtable superlative_Parameter Superl ; } ; InflectionV, InflectionV2 = \verb -> @@ -82,10 +104,11 @@ lin ; in { s = - heading1 (nounHeading verb_Category).s ++ + heading1 (heading verb_Category) ++ paragraph (frameTable ( - tr (th "" ++ intagAttr "th" "colspan=2" "Präsens" ++ intagAttr "th" "colspan=2" "Präteritum") ++ - tr (th "" ++ th "Indikativ" ++ th "Konjunktiv I" ++ th "Indikativ" ++ th "Konjunktiv II") ++ + tr (th "" ++ intagAttr "th" "colspan=2" (heading present_Parameter) ++ intagAttr "th" "colspan=2" (heading past_Parameter)) ++ + tr (th "" ++ th (heading indicative_Parameter) ++ th (heading conjunctive_Parameter ++ "I") ++ + th (heading indicative_Parameter) ++ th (heading conjunctive_Parameter ++ "II")) ++ tr (th "Sg.1" ++ gforms Sg P1) ++ tr (th "Sg.2" ++ gforms Sg P2) ++ tr (th "Sg.3" ++ gforms Sg P3) ++ @@ -95,12 +118,12 @@ lin )) ++ paragraph ( frameTable ( - tr (th "Imperativ Sg.2" ++ tdf (vfin (VImper Sg))) ++ - tr (th "Imperativ Pl.2" ++ tdf (vfin (VImper Pl))) ++ - tr (th "Infinitiv" ++ tdf (verb.s ! (VInf False))) ++ - tr (th "Präsespartizip" ++ tdf (verb.s ! (VPresPart APred))) ++ - tr (th "Perfektpartizip" ++ tdf (verb.s ! (VPastPart APred))) ++ - tr (th "Hilfsverb" ++ td (case verb.aux of {VHaben => "haben" ; VSein => "sein"})) + tr (th (heading imperative_Parameter ++ "Sg.2") ++ tdf (vfin (VImper Sg))) ++ + tr (th (heading imperative_Parameter ++ "Pl.2") ++ tdf (vfin (VImper Pl))) ++ + tr (th (heading infinitive_Parameter) ++ tdf (verb.s ! (VInf False))) ++ + tr (th (heading present_Parameter ++ heading participle_Parameter) ++ tdf (verb.s ! (VPresPart APred))) ++ + tr (th (heading perfect_Parameter ++ heading participle_Parameter) ++ tdf (verb.s ! (VPastPart APred))) ++ + tr (th (heading aux_verb_Parameter) ++ td (intag "i" (case verb.aux of {VHaben => "haben" ; VSein => "sein"}))) )) } ;