forked from GitHub/gf-rgl
functorized Documentation for Fin, Fre, Ger
This commit is contained in:
@@ -24,6 +24,8 @@ fun
|
|||||||
person_ParameterType : ParameterType ;
|
person_ParameterType : ParameterType ;
|
||||||
tense_ParameterType : ParameterType ;
|
tense_ParameterType : ParameterType ;
|
||||||
degree_ParameterType : ParameterType ;
|
degree_ParameterType : ParameterType ;
|
||||||
|
finite_form_ParameterType : ParameterType ; -- needed in Fin V
|
||||||
|
nominal_form_ParameterType : ParameterType ;
|
||||||
|
|
||||||
singular_Parameter : Parameter ;
|
singular_Parameter : Parameter ;
|
||||||
plural_Parameter : Parameter ;
|
plural_Parameter : Parameter ;
|
||||||
@@ -70,15 +72,18 @@ fun
|
|||||||
imperfect_Parameter : Parameter ;
|
imperfect_Parameter : Parameter ;
|
||||||
potential_Parameter : Parameter ; -- Fin V
|
potential_Parameter : Parameter ; -- Fin V
|
||||||
supine_Parameter : Parameter ; -- Swe V
|
supine_Parameter : Parameter ; -- Swe V
|
||||||
|
simple_past_Parameter : Parameter ; -- Fre V
|
||||||
|
|
||||||
participle_Parameter : Parameter ;
|
participle_Parameter : Parameter ;
|
||||||
aux_verb_Parameter : Parameter ;
|
aux_verb_Parameter : Parameter ;
|
||||||
agent_Parameter : Parameter ;
|
agent_Parameter : Parameter ;
|
||||||
|
|
||||||
positive_Parameter : Parameter ;
|
positive_Parameter : Parameter ; -- as degree of verbs
|
||||||
comparative_Parameter : Parameter ;
|
comparative_Parameter : Parameter ;
|
||||||
superlative_Parameter : Parameter ;
|
superlative_Parameter : Parameter ;
|
||||||
predicative_Parameter : Parameter ;
|
predicative_Parameter : Parameter ;
|
||||||
|
negative_Parameter : Parameter ;
|
||||||
|
positivePol_Parameter : Parameter ; -- as opposed to negative, e.g. for verbs
|
||||||
|
|
||||||
subject_Parameter : Parameter ;
|
subject_Parameter : Parameter ;
|
||||||
object_Parameter : Parameter ;
|
object_Parameter : Parameter ;
|
||||||
@@ -87,17 +92,21 @@ fun
|
|||||||
person2_Parameter : Parameter ;
|
person2_Parameter : Parameter ;
|
||||||
person3_Parameter : Parameter ;
|
person3_Parameter : Parameter ;
|
||||||
|
|
||||||
|
short_Parameter : Parameter ; -- short form of e.g. a Fin infinitive
|
||||||
|
long_Parameter : Parameter ;
|
||||||
|
|
||||||
finite_Modifier : Modifier ;
|
finite_Modifier : Modifier ;
|
||||||
transitive_Modifier : Modifier ;
|
transitive_Modifier : Modifier ;
|
||||||
|
nominal_Modifier : Modifier ;
|
||||||
|
|
||||||
nounHeading : N -> Heading ;
|
nounHeading : N -> Heading ; -- e.g. verb
|
||||||
|
nounPluralHeading : N -> Heading ; -- e.g. verbs
|
||||||
|
modNounHeading : A -> N -> Heading ; -- e.g. transitive verb
|
||||||
|
|
||||||
|
|
||||||
-- generic grammar terms
|
-- generic grammar terms
|
||||||
|
|
||||||
exampleGr_N : N ; -- example of a rule, category, etc
|
exampleGr_N : N ; -- example of a rule, category, etc
|
||||||
formGr_N : N ; -- inflectional form
|
formGr_N : N ; -- inflectional form
|
||||||
shortGr_A : A ; -- short form of e.g. a Fin infinitive, or short vowel (may have to be split)
|
|
||||||
longGr_A : A ; -- long form of e.g. a Fin infinitive, or long vowel (may have to be split)
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -21,8 +21,11 @@ lin
|
|||||||
adjective_Category = mkN "adjective" ;
|
adjective_Category = mkN "adjective" ;
|
||||||
verb_Category = mkN "verb" ;
|
verb_Category = mkN "verb" ;
|
||||||
adverb_Category = mkN "adverb" ;
|
adverb_Category = mkN "adverb" ;
|
||||||
|
preposition_Category = mkN "preposition" ;
|
||||||
|
|
||||||
gender_ParameterType = mkN "Gender" ;
|
gender_ParameterType = mkN "Gender" ;
|
||||||
|
finite_form_ParameterType = mkN "finite form" ;
|
||||||
|
nominal_form_ParameterType = mkN "nominal form" ;
|
||||||
|
|
||||||
singular_Parameter = mkN "singular" ;
|
singular_Parameter = mkN "singular" ;
|
||||||
plural_Parameter = mkN "plural" ;
|
plural_Parameter = mkN "plural" ;
|
||||||
@@ -37,9 +40,25 @@ lin
|
|||||||
dative_Parameter = mkN "dative" ;
|
dative_Parameter = mkN "dative" ;
|
||||||
accusative_Parameter = mkN "accusative" ;
|
accusative_Parameter = mkN "accusative" ;
|
||||||
|
|
||||||
|
partitive_Parameter = mkN "partitive" ;
|
||||||
|
translative_Parameter = mkN "translative" ;
|
||||||
|
essive_Parameter = mkN "essive" ;
|
||||||
|
inessive_Parameter = mkN "inessive" ;
|
||||||
|
elative_Parameter = mkN "elative" ;
|
||||||
|
illative_Parameter = mkN "illative" ;
|
||||||
|
adessive_Parameter = mkN "adessive" ;
|
||||||
|
ablative_Parameter = mkN "ablative" ;
|
||||||
|
allative_Parameter = mkN "allative" ;
|
||||||
|
abessive_Parameter = mkN "abessive" ;
|
||||||
|
comitative_Parameter = mkN "comitative" ;
|
||||||
|
instructive_Parameter = mkN "instructive" ;
|
||||||
|
|
||||||
|
active_Parameter = mkN "active" ;
|
||||||
|
passive_Parameter = mkN "passive" ;
|
||||||
|
|
||||||
imperative_Parameter = mkN "imperative" ;
|
imperative_Parameter = mkN "imperative" ;
|
||||||
indicative_Parameter = mkN "indicative" ;
|
indicative_Parameter = mkN "indicative" ;
|
||||||
conjunctive_Parameter = mkN "konjunctive" ;
|
conjunctive_Parameter = mkN "conjunctive" ;
|
||||||
infinitive_Parameter = mkN "infinitive" ;
|
infinitive_Parameter = mkN "infinitive" ;
|
||||||
|
|
||||||
definite_Parameter = mkN "definite" ;
|
definite_Parameter = mkN "definite" ;
|
||||||
@@ -49,8 +68,12 @@ lin
|
|||||||
past_Parameter = mkN "past" ;
|
past_Parameter = mkN "past" ;
|
||||||
future_Parameter = mkN "future" ;
|
future_Parameter = mkN "future" ;
|
||||||
conditional_Parameter = mkN "conditional" ;
|
conditional_Parameter = mkN "conditional" ;
|
||||||
|
potential_Parameter = mkN "potential" ;
|
||||||
perfect_Parameter = mkN "perfect" ;
|
perfect_Parameter = mkN "perfect" ;
|
||||||
|
imperfect_Parameter = mkN "imperfect" ;
|
||||||
supine_Parameter = mkN "supine" ;
|
supine_Parameter = mkN "supine" ;
|
||||||
|
agent_Parameter = mkN "agent" ;
|
||||||
|
simple_past_Parameter = mkN "simple past" ;
|
||||||
|
|
||||||
participle_Parameter = mkN "participle" ;
|
participle_Parameter = mkN "participle" ;
|
||||||
aux_verb_Parameter = mkN "auxiliary" ;
|
aux_verb_Parameter = mkN "auxiliary" ;
|
||||||
@@ -59,8 +82,13 @@ lin
|
|||||||
comparative_Parameter = mkN "comparative" ;
|
comparative_Parameter = mkN "comparative" ;
|
||||||
superlative_Parameter = mkN "superlative" ;
|
superlative_Parameter = mkN "superlative" ;
|
||||||
predicative_Parameter = mkN "predicative" ;
|
predicative_Parameter = mkN "predicative" ;
|
||||||
|
negative_Parameter = mkN "negative" ;
|
||||||
|
|
||||||
|
short_Parameter = mkN "short" ;
|
||||||
|
long_Parameter = mkN "long" ;
|
||||||
|
|
||||||
nounHeading n = ss (n.s ! Sg ! Nom) ;
|
nounHeading n = ss (n.s ! Sg ! Nom) ;
|
||||||
|
nounPluralHeading n = ss (n.s ! Pl ! Nom) ;
|
||||||
|
|
||||||
exampleGr_N = mkN "example" ;
|
exampleGr_N = mkN "example" ;
|
||||||
formGr_N = mkN "form" ;
|
formGr_N = mkN "form" ;
|
||||||
|
|||||||
@@ -1,170 +1,6 @@
|
|||||||
--# -path=.:../abstract:../common
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
concrete DocumentationFin of Documentation = CatFin ** open
|
-- documentation of Finnish in Finnish: the default introduced in LangFin
|
||||||
TerminologyFin,
|
|
||||||
ResFin,
|
|
||||||
StemFin,
|
|
||||||
ParadigmsFin,
|
|
||||||
(G = GrammarFin),
|
|
||||||
(S = SyntaxFin),
|
|
||||||
(L = LexiconFin),
|
|
||||||
Prelude,
|
|
||||||
HTML
|
|
||||||
in {
|
|
||||||
|
|
||||||
|
concrete DocumentationFin of Documentation = CatFin **
|
||||||
lincat
|
DocumentationFinFunctor with (Terminology = TerminologyFin) ;
|
||||||
Inflection = {s : Str} ;
|
|
||||||
|
|
||||||
oper
|
|
||||||
tdf : Str -> Str = \s -> td (intag "i" s) ;
|
|
||||||
tdf2 : Str -> Str = \s -> intagAttr "td" "rowspan=2" (intag "i" s) ;
|
|
||||||
heading : CatFin.N -> Str = \n -> (nounHeading n).s ;
|
|
||||||
|
|
||||||
inflectionN : (NForm -> Str) -> Str = \nouns ->
|
|
||||||
frameTable (
|
|
||||||
tr (th "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter) ) ++
|
|
||||||
tr (th (heading nominative_Parameter) ++ tdf (nouns (NCase Sg Nom)) ++ tdf (nouns (NCase Pl Nom))) ++
|
|
||||||
tr (th (heading genitive_Parameter) ++ tdf (nouns (NCase Sg Gen)) ++ tdf (nouns (NCase Pl Gen))) ++
|
|
||||||
tr (th (heading partitive_Parameter) ++ tdf (nouns (NCase Sg Part)) ++ tdf (nouns (NCase Pl Part))) ++
|
|
||||||
tr (th (heading translative_Parameter) ++ tdf (nouns (NCase Sg Transl)) ++ tdf (nouns (NCase Pl Transl))) ++
|
|
||||||
tr (th (heading essive_Parameter) ++ tdf (nouns (NCase Sg Ess)) ++ tdf (nouns (NCase Pl Ess))) ++
|
|
||||||
tr (th (heading inessive_Parameter) ++ tdf (nouns (NCase Sg Iness)) ++ tdf (nouns (NCase Pl Iness))) ++
|
|
||||||
tr (th (heading elative_Parameter) ++ tdf (nouns (NCase Sg Elat)) ++ tdf (nouns (NCase Pl Elat))) ++
|
|
||||||
tr (th (heading illative_Parameter) ++ tdf (nouns (NCase Sg Illat)) ++ tdf (nouns (NCase Pl Illat))) ++
|
|
||||||
tr (th (heading adessive_Parameter) ++ tdf (nouns (NCase Sg Adess)) ++ tdf (nouns (NCase Pl Adess))) ++
|
|
||||||
tr (th (heading ablative_Parameter) ++ tdf (nouns (NCase Sg Ablat)) ++ tdf (nouns (NCase Pl Ablat))) ++
|
|
||||||
tr (th (heading allative_Parameter) ++ tdf (nouns (NCase Sg Allat)) ++ tdf (nouns (NCase Pl Allat))) ++
|
|
||||||
tr (th (heading abessive_Parameter) ++ tdf (nouns (NCase Sg Abess)) ++ tdf (nouns (NCase Pl Abess))) ++
|
|
||||||
tr (th (heading comitative_Parameter) ++ tdf "" ++ tdf (nouns (NComit))) ++
|
|
||||||
tr (th (heading instructive_Parameter) ++ tdf "" ++ tdf (nouns (NInstruct)))
|
|
||||||
) ;
|
|
||||||
|
|
||||||
lin
|
|
||||||
InflectionN noun = {
|
|
||||||
s = heading1 (heading noun_Category) ++
|
|
||||||
inflectionN (\nf -> (snoun2nounSep noun).s ! nf)
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionA adj = {
|
|
||||||
s = heading1 (heading adjective_Category) ++
|
|
||||||
inflectionN (\nf -> (snoun2nounSep {s = \\f => adj.s ! Posit ! sAN f ; h = adj.h}).s ! nf) ++
|
|
||||||
heading2 (heading comparative_Parameter) ++
|
|
||||||
inflectionN (\nf -> (snoun2nounSep {s = \\f => adj.s ! Compar ! sAN f ; h = adj.h}).s ! nf) ++
|
|
||||||
heading2 (heading superlative_Parameter) ++
|
|
||||||
inflectionN (\nf -> (snoun2nounSep {s = \\f => adj.s ! Superl ! sAN f ; h = adj.h}).s ! nf)
|
|
||||||
} ;
|
|
||||||
|
|
||||||
|
|
||||||
InflectionV v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V v))) v ;
|
|
||||||
InflectionV2 v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V2 v) S.something_NP)) (lin V v) ;
|
|
||||||
InflectionVV v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin VV v) (S.mkVP (L.sleep_V)))) (lin V v) ;
|
|
||||||
InflectionV2V v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V2V v) S.we_NP (S.mkVP (L.sleep_V)))) (lin V v) ;
|
|
||||||
|
|
||||||
ExplainInflection e i = ss (i.s ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
|
||||||
|
|
||||||
oper
|
|
||||||
verbExample : CatFin.Cl -> Str = \cl -> (S.mkUtt cl).s ;
|
|
||||||
|
|
||||||
inflectionVerb : Str -> CatFin.V -> {s : Str} = \ex,verb0 ->
|
|
||||||
let
|
|
||||||
verb = sverb2verbSep verb0 ;
|
|
||||||
vfin : ResFin.VForm -> Str = \f ->
|
|
||||||
verb.s ! f ;
|
|
||||||
gforms : Number -> Person -> Str = \n,p ->
|
|
||||||
tdf (vfin (Presn n p))
|
|
||||||
++ tdf (vfin (Impf n p)) --# notpresent
|
|
||||||
++ tdf (vfin (Condit n p)) --# notpresent
|
|
||||||
++ tdf (vfin (Potent n p)) --# notpresent
|
|
||||||
;
|
|
||||||
in {
|
|
||||||
s =
|
|
||||||
heading1 (heading verb_Category) ++
|
|
||||||
paragraph (intag "b" (heading exampleGr_N ++ ":") ++ intag "i" ex) ++
|
|
||||||
heading2 "finiittimuodot" ++ ---
|
|
||||||
frameTable (
|
|
||||||
tr (intagAttr "th" "rowspan=2" "" ++
|
|
||||||
intagAttr "th" "colspan=2" (heading indicative_Parameter) ++
|
|
||||||
th (heading conditional_Parameter) ++ th (heading potential_Parameter) ++
|
|
||||||
th (heading imperative_Parameter)) ++
|
|
||||||
tr ( th (heading present_Parameter) ++ th (heading past_Parameter) ++
|
|
||||||
th (heading present_Parameter) ++ th (heading present_Parameter) ++
|
|
||||||
th (heading present_Parameter)) ++
|
|
||||||
tr (th "yks.1" ++ gforms Sg P1 ++ tdf "") ++
|
|
||||||
tr (th "yks.2" ++ gforms Sg P2 ++ tdf (vfin (Imper Sg))) ++
|
|
||||||
tr (th "yks.3" ++ gforms Sg P3 ++ tdf (vfin (ImperP3 Sg))) ++
|
|
||||||
tr (th "mon.1" ++ gforms Pl P1 ++ tdf (vfin (ImperP1Pl))) ++
|
|
||||||
tr (th "mon.2" ++ gforms Pl P2 ++ tdf (vfin (Imper Pl))) ++
|
|
||||||
tr (th "mon.3" ++ gforms Pl P3 ++ tdf (vfin (ImperP3 Pl))) ++
|
|
||||||
tr (th "pass." ++ tdf (vfin (PassPresn True)) ++ tdf (vfin (PassImpf True)) ++ --# notpresent
|
|
||||||
tdf (vfin (PassCondit True)) ++ tdf (vfin (PassPotent True)) ++ tdf (vfin (PassImper True))) ++ --# notpresent
|
|
||||||
tr (th "kielt.yks." ++ tdf2 (vfin (Imper Sg)) ++ tdf (vfin (PastPartAct (AN (NCase Sg Nom))))
|
|
||||||
++ tdf2 (vfin (Condit Sg P3)) ++ tdf2 (vfin (PotentNeg)) ++ tdf (vfin (Imper Sg)) --# notpresent
|
|
||||||
) ++
|
|
||||||
tr (th "kielt.mon." ++ tdf (vfin (PastPartAct (AN (NCase Pl Nom)))) ++
|
|
||||||
tdf (vfin (ImpNegPl))) ++
|
|
||||||
tr (th "kielt.pass." ++ tdf (vfin (PassPresn False))
|
|
||||||
++ tdf (vfin (PassImpf False)) ++ tdf (vfin (PassCondit False)) ++ tdf (vfin (PassPotent False))--# notpresent
|
|
||||||
++ tdf (vfin (PassImper False)))
|
|
||||||
)
|
|
||||||
++
|
|
||||||
heading2 "nominaalimuodot" ++ ---
|
|
||||||
frameTable (
|
|
||||||
tr (intagAttr "th" "rowspan=15" (heading infinitive_Parameter) ++
|
|
||||||
intagAttr "th" "rowspan=2" "1" ++
|
|
||||||
th "lyhyt" ++ ---
|
|
||||||
tdf (vfin (Inf Inf1))) ++
|
|
||||||
tr (th "pitkä" ++ ---
|
|
||||||
tdf (vfin (Inf Inf1Long) ++ BIND ++ "(ni)")) ++
|
|
||||||
tr (intagAttr "th" "rowspan=2" ("2." ++ heading active_Parameter) ++
|
|
||||||
th (heading inessive_Parameter) ++
|
|
||||||
tdf (vfin (Inf Inf2Iness))) ++
|
|
||||||
tr (th (heading instructive_Parameter) ++
|
|
||||||
tdf (vfin (Inf Inf2Instr))) ++
|
|
||||||
tr (th ("2." ++ heading passive_Parameter) ++
|
|
||||||
th (heading inessive_Parameter) ++
|
|
||||||
tdf (vfin (Inf Inf2InessPass))) ++
|
|
||||||
|
|
||||||
tr (intagAttr "th" "rowspan=7" "3." ++
|
|
||||||
th (heading inessive_Parameter) ++ tdf (vfin (Inf Inf3Iness))) ++
|
|
||||||
tr (th (heading elative_Parameter) ++ tdf (vfin (Inf Inf3Elat))) ++
|
|
||||||
tr (th (heading illative_Parameter) ++ tdf (vfin (Inf Inf3Illat))) ++
|
|
||||||
tr (th (heading adessive_Parameter) ++ tdf (vfin (Inf Inf3Adess))) ++
|
|
||||||
tr (th (heading abessive_Parameter) ++ tdf (vfin (Inf Inf3Abess))) ++
|
|
||||||
tr (th (heading instructive_Parameter) ++ tdf (vfin (Inf Inf3Instr))) ++
|
|
||||||
tr (th (heading instructive_Parameter ++ "pass.") ++ tdf (vfin (Inf Inf3InstrPass))) ++
|
|
||||||
|
|
||||||
tr (intagAttr "th" "rowspan=2" "4." ++
|
|
||||||
th (heading nominative_Parameter) ++ tdf (vfin (Inf Inf4Nom))) ++
|
|
||||||
tr (th (heading partitive_Parameter) ++ tdf (vfin (Inf Inf4Part))) ++
|
|
||||||
|
|
||||||
tr (intagAttr "th" "colspan=2" "5." ++ tdf (vfin (Inf Inf5) ++ BIND ++ "(ni)")) ++
|
|
||||||
|
|
||||||
tr (intagAttr "th" "rowspan=5" (heading participle_Parameter) ++
|
|
||||||
intagAttr "th" "rowspan=2" (heading present_Parameter) ++
|
|
||||||
th (heading active_Parameter) ++
|
|
||||||
tdf (vfin (PresPartAct (AN (NCase Sg Nom))))) ++
|
|
||||||
tr (th (heading passive_Parameter) ++
|
|
||||||
tdf (vfin (PresPartPass (AN (NCase Sg Nom))))) ++
|
|
||||||
|
|
||||||
tr (intagAttr "th" "rowspan=2" (heading perfect_Parameter) ++
|
|
||||||
th (heading active_Parameter) ++
|
|
||||||
tdf (vfin (PastPartAct (AN (NCase Sg Nom))))) ++
|
|
||||||
|
|
||||||
tr (th (heading passive_Parameter) ++
|
|
||||||
tdf (vfin (PastPartPass (AN (NCase Sg Nom))))) ++
|
|
||||||
|
|
||||||
tr (intagAttr "th" "colspan=2" (heading agent_Parameter) ++
|
|
||||||
tdf (vfin (AgentPart (AN (NCase Sg Nom)))))
|
|
||||||
|
|
||||||
)
|
|
||||||
|
|
||||||
} ;
|
|
||||||
|
|
||||||
lin
|
|
||||||
InflectionPrep p = {
|
|
||||||
s = heading1 (heading preposition_Category) ++
|
|
||||||
paragraph (intag "b" (heading exampleGr_N ++ ":") ++
|
|
||||||
intag "i" ((S.mkAdv (lin Prep p) S.it_NP).s ++ ";" ++ (S.mkAdv (lin Prep p) S.we_NP).s))
|
|
||||||
} ;
|
|
||||||
}
|
|
||||||
|
|||||||
6
src/finnish/DocumentationFinEng.gf
Normal file
6
src/finnish/DocumentationFinEng.gf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
|
-- documentation of Finnish in English
|
||||||
|
|
||||||
|
concrete DocumentationFinEng of Documentation = CatFin **
|
||||||
|
DocumentationFinFunctor with (Terminology = TerminologyEng) ;
|
||||||
176
src/finnish/DocumentationFinFunctor.gf
Normal file
176
src/finnish/DocumentationFinFunctor.gf
Normal file
@@ -0,0 +1,176 @@
|
|||||||
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
|
incomplete concrete DocumentationFinFunctor of Documentation = CatFin ** open
|
||||||
|
Terminology, -- the interface
|
||||||
|
ResFin,
|
||||||
|
StemFin,
|
||||||
|
ParadigmsFin,
|
||||||
|
(G = GrammarFin),
|
||||||
|
(S = SyntaxFin),
|
||||||
|
(L = LexiconFin),
|
||||||
|
Prelude,
|
||||||
|
HTML
|
||||||
|
in {
|
||||||
|
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Inflection = {s : Str} ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
tdf : Str -> Str = \s -> td (intag "i" s) ;
|
||||||
|
tdf2 : Str -> Str = \s -> intagAttr "td" "rowspan=2" (intag "i" s) ;
|
||||||
|
heading : N -> Str = \n -> (nounHeading n).s ;
|
||||||
|
|
||||||
|
inflectionN : (NForm -> Str) -> Str = \nouns ->
|
||||||
|
frameTable (
|
||||||
|
tr (th "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter) ) ++
|
||||||
|
tr (th (heading nominative_Parameter) ++ tdf (nouns (NCase Sg Nom)) ++ tdf (nouns (NCase Pl Nom))) ++
|
||||||
|
tr (th (heading genitive_Parameter) ++ tdf (nouns (NCase Sg Gen)) ++ tdf (nouns (NCase Pl Gen))) ++
|
||||||
|
tr (th (heading partitive_Parameter) ++ tdf (nouns (NCase Sg Part)) ++ tdf (nouns (NCase Pl Part))) ++
|
||||||
|
tr (th (heading translative_Parameter) ++ tdf (nouns (NCase Sg Transl)) ++ tdf (nouns (NCase Pl Transl))) ++
|
||||||
|
tr (th (heading essive_Parameter) ++ tdf (nouns (NCase Sg Ess)) ++ tdf (nouns (NCase Pl Ess))) ++
|
||||||
|
tr (th (heading inessive_Parameter) ++ tdf (nouns (NCase Sg Iness)) ++ tdf (nouns (NCase Pl Iness))) ++
|
||||||
|
tr (th (heading elative_Parameter) ++ tdf (nouns (NCase Sg Elat)) ++ tdf (nouns (NCase Pl Elat))) ++
|
||||||
|
tr (th (heading illative_Parameter) ++ tdf (nouns (NCase Sg Illat)) ++ tdf (nouns (NCase Pl Illat))) ++
|
||||||
|
tr (th (heading adessive_Parameter) ++ tdf (nouns (NCase Sg Adess)) ++ tdf (nouns (NCase Pl Adess))) ++
|
||||||
|
tr (th (heading ablative_Parameter) ++ tdf (nouns (NCase Sg Ablat)) ++ tdf (nouns (NCase Pl Ablat))) ++
|
||||||
|
tr (th (heading allative_Parameter) ++ tdf (nouns (NCase Sg Allat)) ++ tdf (nouns (NCase Pl Allat))) ++
|
||||||
|
tr (th (heading abessive_Parameter) ++ tdf (nouns (NCase Sg Abess)) ++ tdf (nouns (NCase Pl Abess))) ++
|
||||||
|
tr (th (heading comitative_Parameter) ++ tdf "" ++ tdf (nouns (NComit))) ++
|
||||||
|
tr (th (heading instructive_Parameter) ++ tdf "" ++ tdf (nouns (NInstruct)))
|
||||||
|
) ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
InflectionN noun = {
|
||||||
|
s = heading1 (heading noun_Category) ++
|
||||||
|
inflectionN (\nf -> (snoun2nounSep noun).s ! nf)
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionA adj = {
|
||||||
|
s = heading1 (heading adjective_Category) ++
|
||||||
|
inflectionN (\nf -> (snoun2nounSep {s = \\f => adj.s ! Posit ! sAN f ; h = adj.h}).s ! nf) ++
|
||||||
|
heading2 (heading comparative_Parameter) ++
|
||||||
|
inflectionN (\nf -> (snoun2nounSep {s = \\f => adj.s ! Compar ! sAN f ; h = adj.h}).s ! nf) ++
|
||||||
|
heading2 (heading superlative_Parameter) ++
|
||||||
|
inflectionN (\nf -> (snoun2nounSep {s = \\f => adj.s ! Superl ! sAN f ; h = adj.h}).s ! nf)
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
InflectionV v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V v))) v ;
|
||||||
|
InflectionV2 v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V2 v) S.something_NP)) (lin V v) ;
|
||||||
|
InflectionVV v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin VV v) (S.mkVP (L.sleep_V)))) (lin V v) ;
|
||||||
|
InflectionV2V v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V2V v) S.we_NP (S.mkVP (L.sleep_V)))) (lin V v) ;
|
||||||
|
|
||||||
|
ExplainInflection e i = ss (i.s ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
||||||
|
|
||||||
|
oper
|
||||||
|
verbExample : CatFin.Cl -> Str = \cl -> (S.mkUtt cl).s ;
|
||||||
|
|
||||||
|
inflectionVerb : Str -> CatFin.V -> {s : Str} = \ex,verb0 ->
|
||||||
|
let
|
||||||
|
verb = sverb2verbSep verb0 ;
|
||||||
|
vfin : ResFin.VForm -> Str = \f ->
|
||||||
|
verb.s ! f ;
|
||||||
|
gforms : Number -> Person -> Str = \n,p ->
|
||||||
|
tdf (vfin (Presn n p))
|
||||||
|
++ tdf (vfin (Impf n p)) --# notpresent
|
||||||
|
++ tdf (vfin (Condit n p)) --# notpresent
|
||||||
|
++ tdf (vfin (Potent n p)) --# notpresent
|
||||||
|
;
|
||||||
|
in {
|
||||||
|
s =
|
||||||
|
heading1 (heading verb_Category) ++
|
||||||
|
paragraph (intag "b" (heading exampleGr_N ++ ":") ++ intag "i" ex) ++
|
||||||
|
heading2 (nounPluralHeading finite_form_ParameterType).s ++
|
||||||
|
frameTable (
|
||||||
|
tr (intagAttr "th" "rowspan=2 colspan=2" "" ++
|
||||||
|
intagAttr "th" "colspan=2" (heading indicative_Parameter) ++
|
||||||
|
th (heading conditional_Parameter) ++ th (heading potential_Parameter) ++
|
||||||
|
th (heading imperative_Parameter)) ++
|
||||||
|
tr ( th (heading present_Parameter) ++ th (heading past_Parameter) ++
|
||||||
|
th (heading present_Parameter) ++ th (heading present_Parameter) ++
|
||||||
|
th (heading present_Parameter)) ++
|
||||||
|
tr (intagAttr "th" "rowspan=3" (heading singular_Parameter) ++
|
||||||
|
th "1.p" ++ gforms Sg P1 ++ tdf "") ++
|
||||||
|
tr (th "2.p" ++ gforms Sg P2 ++ tdf (vfin (Imper Sg))) ++
|
||||||
|
tr (th "3.p" ++ gforms Sg P3 ++ tdf (vfin (ImperP3 Sg))) ++
|
||||||
|
tr (intagAttr "th" "rowspan=3" (heading plural_Parameter) ++
|
||||||
|
th "1.p" ++ gforms Pl P1 ++ tdf (vfin (ImperP1Pl))) ++
|
||||||
|
tr (th "2.p" ++ gforms Pl P2 ++ tdf (vfin (Imper Pl))) ++
|
||||||
|
tr (th "3.p" ++ gforms Pl P3 ++ tdf (vfin (ImperP3 Pl))) ++
|
||||||
|
tr (intagAttr "th" "colspan=2" (heading passive_Parameter) ++
|
||||||
|
tdf (vfin (PassPresn True)) ++ tdf (vfin (PassImpf True)) ++ --# notpresent
|
||||||
|
tdf (vfin (PassCondit True)) ++ tdf (vfin (PassPotent True)) ++ tdf (vfin (PassImper True))) ++ --# notpresent
|
||||||
|
tr (intagAttr "th" "rowspan=3" (heading negative_Parameter) ++
|
||||||
|
|
||||||
|
th (heading singular_Parameter)
|
||||||
|
++ tdf2 (vfin (Imper Sg)) ++ tdf (vfin (PastPartAct (AN (NCase Sg Nom))))
|
||||||
|
++ tdf2 (vfin (Condit Sg P3)) ++ tdf2 (vfin (PotentNeg)) ++ tdf (vfin (Imper Sg)) --# notpresent
|
||||||
|
) ++
|
||||||
|
tr ( th (heading plural_Parameter) ++ tdf (vfin (PastPartAct (AN (NCase Pl Nom)))) ++
|
||||||
|
tdf (vfin (ImpNegPl))) ++
|
||||||
|
tr ( th (heading passive_Parameter) ++ tdf (vfin (PassPresn False))
|
||||||
|
++ tdf (vfin (PassImpf False)) ++ tdf (vfin (PassCondit False)) ++ tdf (vfin (PassPotent False))--# notpresent
|
||||||
|
++ tdf (vfin (PassImper False)))
|
||||||
|
)
|
||||||
|
++
|
||||||
|
heading2 (nounPluralHeading nominal_form_ParameterType).s ++ ---
|
||||||
|
frameTable (
|
||||||
|
tr (intagAttr "th" "rowspan=15" (heading infinitive_Parameter) ++
|
||||||
|
intagAttr "th" "rowspan=2" "1" ++
|
||||||
|
th (heading short_Parameter) ++ ---
|
||||||
|
tdf (vfin (Inf Inf1))) ++
|
||||||
|
tr (th (heading long_Parameter) ++ ---
|
||||||
|
tdf (vfin (Inf Inf1Long) ++ BIND ++ "(ni)")) ++
|
||||||
|
tr (intagAttr "th" "rowspan=2" ("2." ++ heading active_Parameter) ++
|
||||||
|
th (heading inessive_Parameter) ++
|
||||||
|
tdf (vfin (Inf Inf2Iness))) ++
|
||||||
|
tr (th (heading instructive_Parameter) ++
|
||||||
|
tdf (vfin (Inf Inf2Instr))) ++
|
||||||
|
tr (th ("2." ++ heading passive_Parameter) ++
|
||||||
|
th (heading inessive_Parameter) ++
|
||||||
|
tdf (vfin (Inf Inf2InessPass))) ++
|
||||||
|
|
||||||
|
tr (intagAttr "th" "rowspan=7" "3." ++
|
||||||
|
th (heading inessive_Parameter) ++ tdf (vfin (Inf Inf3Iness))) ++
|
||||||
|
tr (th (heading elative_Parameter) ++ tdf (vfin (Inf Inf3Elat))) ++
|
||||||
|
tr (th (heading illative_Parameter) ++ tdf (vfin (Inf Inf3Illat))) ++
|
||||||
|
tr (th (heading adessive_Parameter) ++ tdf (vfin (Inf Inf3Adess))) ++
|
||||||
|
tr (th (heading abessive_Parameter) ++ tdf (vfin (Inf Inf3Abess))) ++
|
||||||
|
tr (th (heading instructive_Parameter) ++ tdf (vfin (Inf Inf3Instr))) ++
|
||||||
|
tr (th (heading instructive_Parameter ++ "pass.") ++ tdf (vfin (Inf Inf3InstrPass))) ++
|
||||||
|
|
||||||
|
tr (intagAttr "th" "rowspan=2" "4." ++
|
||||||
|
th (heading nominative_Parameter) ++ tdf (vfin (Inf Inf4Nom))) ++
|
||||||
|
tr (th (heading partitive_Parameter) ++ tdf (vfin (Inf Inf4Part))) ++
|
||||||
|
|
||||||
|
tr (intagAttr "th" "colspan=2" "5." ++ tdf (vfin (Inf Inf5) ++ BIND ++ "(ni)")) ++
|
||||||
|
|
||||||
|
tr (intagAttr "th" "rowspan=5" (heading participle_Parameter) ++
|
||||||
|
intagAttr "th" "rowspan=2" (heading present_Parameter) ++
|
||||||
|
th (heading active_Parameter) ++
|
||||||
|
tdf (vfin (PresPartAct (AN (NCase Sg Nom))))) ++
|
||||||
|
tr (th (heading passive_Parameter) ++
|
||||||
|
tdf (vfin (PresPartPass (AN (NCase Sg Nom))))) ++
|
||||||
|
|
||||||
|
tr (intagAttr "th" "rowspan=2" (heading perfect_Parameter) ++
|
||||||
|
th (heading active_Parameter) ++
|
||||||
|
tdf (vfin (PastPartAct (AN (NCase Sg Nom))))) ++
|
||||||
|
|
||||||
|
tr (th (heading passive_Parameter) ++
|
||||||
|
tdf (vfin (PastPartPass (AN (NCase Sg Nom))))) ++
|
||||||
|
|
||||||
|
tr (intagAttr "th" "colspan=2" (heading agent_Parameter) ++
|
||||||
|
tdf (vfin (AgentPart (AN (NCase Sg Nom)))))
|
||||||
|
|
||||||
|
)
|
||||||
|
|
||||||
|
} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
InflectionPrep p = {
|
||||||
|
s = heading1 (heading preposition_Category) ++
|
||||||
|
paragraph (intag "b" (heading exampleGr_N ++ ":") ++
|
||||||
|
intag "i" ((S.mkAdv (lin Prep p) S.it_NP).s ++ ";" ++ (S.mkAdv (lin Prep p) S.we_NP).s))
|
||||||
|
} ;
|
||||||
|
}
|
||||||
@@ -28,6 +28,9 @@ lin
|
|||||||
adverb_Category = mkN "adverbi" ;
|
adverb_Category = mkN "adverbi" ;
|
||||||
preposition_Category = mkN "prepositio" ;
|
preposition_Category = mkN "prepositio" ;
|
||||||
|
|
||||||
|
finite_form_ParameterType = mkN "finiittimuoto" ;
|
||||||
|
nominal_form_ParameterType = mkN "nominaalimuoto" ;
|
||||||
|
|
||||||
singular_Parameter = mkN "yksikkö" ;
|
singular_Parameter = mkN "yksikkö" ;
|
||||||
plural_Parameter = mkN "monikko" ;
|
plural_Parameter = mkN "monikko" ;
|
||||||
|
|
||||||
@@ -76,10 +79,16 @@ lin
|
|||||||
comparative_Parameter = mkN "komparatiivi" ;
|
comparative_Parameter = mkN "komparatiivi" ;
|
||||||
superlative_Parameter = mkN "superlatiivi" ;
|
superlative_Parameter = mkN "superlatiivi" ;
|
||||||
predicative_Parameter = mkN "predikatiivi" ;
|
predicative_Parameter = mkN "predikatiivi" ;
|
||||||
|
negative_Parameter = mkN "kielteinen" ;
|
||||||
|
positivePol_Parameter = mkN "myönteinen" ;
|
||||||
|
|
||||||
|
long_Parameter = mkN "pitkä" ;
|
||||||
|
short_Parameter = mkN "lyhyt" ;
|
||||||
|
|
||||||
finite_Modifier = mkA "finiittinen" ;
|
finite_Modifier = mkA "finiittinen" ;
|
||||||
|
|
||||||
nounHeading n = ss ((snoun2nounSep n).s ! NCase Sg Nom) ;
|
nounHeading n = ss ((snoun2nounSep n).s ! NCase Sg Nom) ;
|
||||||
|
nounPluralHeading n = ss ((snoun2nounSep n).s ! NCase Pl Nom) ;
|
||||||
|
|
||||||
formGF_N = mkN "muoto" ;
|
formGF_N = mkN "muoto" ;
|
||||||
exampleGr_N = mkN "esimerkki" ;
|
exampleGr_N = mkN "esimerkki" ;
|
||||||
|
|||||||
@@ -1,120 +1,6 @@
|
|||||||
--# -path=.:../abstract:../common
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
concrete DocumentationFre of Documentation = CatFre ** open
|
-- documentation of French in French: the default introduced in LangFre
|
||||||
TerminologyFre,
|
|
||||||
ResFre,
|
|
||||||
CommonRomance,
|
|
||||||
ParadigmsFre,
|
|
||||||
(G = GrammarFre),
|
|
||||||
(S = SyntaxFre),
|
|
||||||
(L = LexiconFre),
|
|
||||||
Prelude,
|
|
||||||
HTML
|
|
||||||
in {
|
|
||||||
|
|
||||||
|
concrete DocumentationFre of Documentation = CatFre **
|
||||||
lincat
|
DocumentationFreFunctor with (Terminology = TerminologyFre) ;
|
||||||
Inflection = {s : Str} ;
|
|
||||||
|
|
||||||
oper
|
|
||||||
tdf : Str -> Str = \s -> td (intag "i" s) ;
|
|
||||||
heading : CatFre.N -> Str = \n -> (nounHeading n).s ;
|
|
||||||
|
|
||||||
nounGender : CatFre.N -> Parameter = \n -> case n.g of {
|
|
||||||
Masc => masculine_Parameter ;
|
|
||||||
Fem => feminine_Parameter
|
|
||||||
} ;
|
|
||||||
|
|
||||||
lin
|
|
||||||
InflectionN noun = {
|
|
||||||
s = heading1 (heading noun_Category) ++
|
|
||||||
paragraph (intag "b" (heading (gender_ParameterType)) ++ ":" ++ heading (nounGender noun)) ++
|
|
||||||
paragraph (frameTable (
|
|
||||||
tr (th (heading singular_Parameter) ++ th (heading plural_Parameter) ) ++
|
|
||||||
tr (tdf (noun.s ! Sg) ++ tdf (noun.s ! Pl))
|
|
||||||
))
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionA adj = {
|
|
||||||
s = heading1 (nounHeading adjective_Category).s ++
|
|
||||||
frameTable (
|
|
||||||
tr (th "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter)) ++
|
|
||||||
tr (th (heading masculine_Parameter) ++ tdf (adj.s ! Posit ! (AF Masc Sg)) ++ tdf (adj.s ! Posit ! (AF Masc Pl))) ++
|
|
||||||
tr (th (heading feminine_Parameter) ++ tdf (adj.s ! Posit ! (AF Fem Sg)) ++ tdf (adj.s ! Posit ! (AF Fem Pl)))
|
|
||||||
)
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionV v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V v))) v ;
|
|
||||||
InflectionV2 v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V2 v) S.something_NP)) (lin V v) ;
|
|
||||||
InflectionVV v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin VV v) (S.mkVP (L.sleep_V)))) (lin V v) ;
|
|
||||||
InflectionV2V v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V2V v) S.we_NP (S.mkVP (L.sleep_V)))) (lin V v) ;
|
|
||||||
|
|
||||||
ExplainInflection e i = ss (i.s ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
|
||||||
|
|
||||||
oper
|
|
||||||
verbExample : CatFre.Cl -> Str = \cl ->
|
|
||||||
(S.mkUtt cl).s
|
|
||||||
++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent
|
|
||||||
;
|
|
||||||
|
|
||||||
inflectionVerb : Str -> CatFre.V -> {s : Str} = \ex,verb ->
|
|
||||||
let
|
|
||||||
vfin : CommonRomance.VF -> Str = \f ->
|
|
||||||
verb.s ! f ;
|
|
||||||
|
|
||||||
gforms : Number -> Person -> Str = \n,p ->
|
|
||||||
tdf (vfin (VFin (VPres Indic) n p)) ++
|
|
||||||
tdf (vfin (VFin (VPres Conjunct) n p))
|
|
||||||
++ tdf (vfin (VFin (VImperf Indic) n p)) --# notpresent
|
|
||||||
++ tdf (vfin (VFin (VImperf Conjunct) n p)) --# notpresent
|
|
||||||
;
|
|
||||||
|
|
||||||
gforms2 : Number -> Person -> Str = \n,p -> --# notpresent
|
|
||||||
tdf (vfin (VFin VPasse n p)) ++ --# notpresent
|
|
||||||
tdf (vfin (VFin VFut n p)) ++ --# notpresent
|
|
||||||
tdf (vfin (VFin VCondit n p)) --# notpresent
|
|
||||||
; --# notpresent
|
|
||||||
|
|
||||||
ttable : (Number -> Person -> Str) -> Str -> Str = \forms, theadings ->
|
|
||||||
paragraph (frameTable (
|
|
||||||
theadings ++
|
|
||||||
tr (intagAttr "th" "rowspan=3" (heading singular_Parameter) ++
|
|
||||||
th "1.p" ++ forms Sg P1) ++
|
|
||||||
tr (th "2.p" ++ forms Sg P2) ++
|
|
||||||
tr (th "3.p" ++ forms Sg P3) ++
|
|
||||||
tr (intagAttr "th" "rowspan=3" (heading plural_Parameter) ++
|
|
||||||
th "1.p" ++ forms Pl P1) ++
|
|
||||||
tr (th "2.p" ++ forms Pl P2) ++
|
|
||||||
tr (th "3.p" ++ forms Pl P3)
|
|
||||||
)) ;
|
|
||||||
|
|
||||||
in {
|
|
||||||
s =
|
|
||||||
heading1 (heading verb_Category)
|
|
||||||
++ paragraph (intag "b" (heading exampleGr_N ++ ":") ++ intag "i" ex)
|
|
||||||
++ ttable gforms
|
|
||||||
(tr (intagAttr "th" "colspan=2 rowspan=2" ""
|
|
||||||
++ intagAttr "th" "colspan=2" (heading present_Parameter)
|
|
||||||
++ intagAttr "th" "colspan=2" (heading imperfect_Parameter)
|
|
||||||
) ++
|
|
||||||
tr ( th (heading indicative_Parameter) ++ th (heading conjunctive_Parameter)
|
|
||||||
++ th (heading indicative_Parameter) ++ th (heading conjunctive_Parameter)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
++ ttable gforms2 --# notpresent
|
|
||||||
(tr (intagAttr "th" "colspan=2" "" ++ th "passé simple" ++ --# notpresent
|
|
||||||
th (heading future_Parameter) ++ th (heading conditional_Parameter))) --# notpresent
|
|
||||||
|
|
||||||
++ paragraph (frameTable (
|
|
||||||
tr (intagAttr "th" "colspan=2" (heading infinitive_Parameter) ++ (tdf (vfin (VInfin False)))) ++
|
|
||||||
tr (intagAttr "th" "rowspan=3" (heading imperative_Parameter) ++ th "sg.2.p" ++ (tdf (vfin (VImper SgP2)))) ++
|
|
||||||
tr ( th "pl.1.p" ++ (tdf (vfin (VImper PlP1)))) ++
|
|
||||||
tr ( th "pl.2.p" ++ (tdf (vfin (VImper PlP2)))) ++
|
|
||||||
tr (intagAttr "th" "rowspan=2" (heading participle_Parameter) ++
|
|
||||||
th (heading past_Parameter) ++ (tdf (vfin (VPart Masc Sg)))) ++
|
|
||||||
tr ( th (heading present_Parameter) ++ (tdf (vfin VGer)))
|
|
||||||
)
|
|
||||||
)
|
|
||||||
} ;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
6
src/french/DocumentationFreEng.gf
Normal file
6
src/french/DocumentationFreEng.gf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
|
-- documentation of French in English
|
||||||
|
|
||||||
|
concrete DocumentationFreEng of Documentation = CatFre **
|
||||||
|
DocumentationFreFunctor with (Terminology = TerminologyEng) ;
|
||||||
120
src/french/DocumentationFreFunctor.gf
Normal file
120
src/french/DocumentationFreFunctor.gf
Normal file
@@ -0,0 +1,120 @@
|
|||||||
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
|
incomplete concrete DocumentationFreFunctor of Documentation = CatFre ** open
|
||||||
|
Terminology, -- the interface to be instantiated
|
||||||
|
ResFre,
|
||||||
|
CommonRomance,
|
||||||
|
ParadigmsFre,
|
||||||
|
(G = GrammarFre),
|
||||||
|
(S = SyntaxFre),
|
||||||
|
(L = LexiconFre),
|
||||||
|
Prelude,
|
||||||
|
HTML
|
||||||
|
in {
|
||||||
|
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Inflection = {s : Str} ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
tdf : Str -> Str = \s -> td (intag "i" s) ;
|
||||||
|
heading : N -> Str = \n -> (nounHeading n).s ;
|
||||||
|
|
||||||
|
nounGender : CatFre.N -> Parameter = \n -> case n.g of {
|
||||||
|
Masc => masculine_Parameter ;
|
||||||
|
Fem => feminine_Parameter
|
||||||
|
} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
InflectionN noun = {
|
||||||
|
s = heading1 (heading noun_Category) ++
|
||||||
|
paragraph (intag "b" (heading (gender_ParameterType)) ++ ":" ++ heading (nounGender noun)) ++
|
||||||
|
paragraph (frameTable (
|
||||||
|
tr (th (heading singular_Parameter) ++ th (heading plural_Parameter) ) ++
|
||||||
|
tr (tdf (noun.s ! Sg) ++ tdf (noun.s ! Pl))
|
||||||
|
))
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionA adj = {
|
||||||
|
s = heading1 (nounHeading adjective_Category).s ++
|
||||||
|
frameTable (
|
||||||
|
tr (th "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter)) ++
|
||||||
|
tr (th (heading masculine_Parameter) ++ tdf (adj.s ! Posit ! (AF Masc Sg)) ++ tdf (adj.s ! Posit ! (AF Masc Pl))) ++
|
||||||
|
tr (th (heading feminine_Parameter) ++ tdf (adj.s ! Posit ! (AF Fem Sg)) ++ tdf (adj.s ! Posit ! (AF Fem Pl)))
|
||||||
|
)
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionV v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V v))) v ;
|
||||||
|
InflectionV2 v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V2 v) S.something_NP)) (lin V v) ;
|
||||||
|
InflectionVV v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin VV v) (S.mkVP (L.sleep_V)))) (lin V v) ;
|
||||||
|
InflectionV2V v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V2V v) S.we_NP (S.mkVP (L.sleep_V)))) (lin V v) ;
|
||||||
|
|
||||||
|
ExplainInflection e i = ss (i.s ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
||||||
|
|
||||||
|
oper
|
||||||
|
verbExample : CatFre.Cl -> Str = \cl ->
|
||||||
|
(S.mkUtt cl).s
|
||||||
|
++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent
|
||||||
|
;
|
||||||
|
|
||||||
|
inflectionVerb : Str -> CatFre.V -> {s : Str} = \ex,verb ->
|
||||||
|
let
|
||||||
|
vfin : CommonRomance.VF -> Str = \f ->
|
||||||
|
verb.s ! f ;
|
||||||
|
|
||||||
|
gforms : Number -> Person -> Str = \n,p ->
|
||||||
|
tdf (vfin (VFin (VPres Indic) n p)) ++
|
||||||
|
tdf (vfin (VFin (VPres Conjunct) n p))
|
||||||
|
++ tdf (vfin (VFin (VImperf Indic) n p)) --# notpresent
|
||||||
|
++ tdf (vfin (VFin (VImperf Conjunct) n p)) --# notpresent
|
||||||
|
;
|
||||||
|
|
||||||
|
gforms2 : Number -> Person -> Str = \n,p -> --# notpresent
|
||||||
|
tdf (vfin (VFin VPasse n p)) ++ --# notpresent
|
||||||
|
tdf (vfin (VFin VFut n p)) ++ --# notpresent
|
||||||
|
tdf (vfin (VFin VCondit n p)) --# notpresent
|
||||||
|
; --# notpresent
|
||||||
|
|
||||||
|
ttable : (Number -> Person -> Str) -> Str -> Str = \forms, theadings ->
|
||||||
|
paragraph (frameTable (
|
||||||
|
theadings ++
|
||||||
|
tr (intagAttr "th" "rowspan=3" (heading singular_Parameter) ++
|
||||||
|
th "1.p" ++ forms Sg P1) ++
|
||||||
|
tr (th "2.p" ++ forms Sg P2) ++
|
||||||
|
tr (th "3.p" ++ forms Sg P3) ++
|
||||||
|
tr (intagAttr "th" "rowspan=3" (heading plural_Parameter) ++
|
||||||
|
th "1.p" ++ forms Pl P1) ++
|
||||||
|
tr (th "2.p" ++ forms Pl P2) ++
|
||||||
|
tr (th "3.p" ++ forms Pl P3)
|
||||||
|
)) ;
|
||||||
|
|
||||||
|
in {
|
||||||
|
s =
|
||||||
|
heading1 (heading verb_Category)
|
||||||
|
++ paragraph (intag "b" (heading exampleGr_N ++ ":") ++ intag "i" ex)
|
||||||
|
++ ttable gforms
|
||||||
|
(tr (intagAttr "th" "colspan=2 rowspan=2" ""
|
||||||
|
++ intagAttr "th" "colspan=2" (heading present_Parameter)
|
||||||
|
++ intagAttr "th" "colspan=2" (heading imperfect_Parameter)
|
||||||
|
) ++
|
||||||
|
tr ( th (heading indicative_Parameter) ++ th (heading conjunctive_Parameter)
|
||||||
|
++ th (heading indicative_Parameter) ++ th (heading conjunctive_Parameter)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
++ ttable gforms2 --# notpresent
|
||||||
|
(tr (intagAttr "th" "colspan=2" "" ++ th (heading simple_past_Parameter) ++ --# notpresent
|
||||||
|
th (heading future_Parameter) ++ th (heading conditional_Parameter))) --# notpresent
|
||||||
|
|
||||||
|
++ paragraph (frameTable (
|
||||||
|
tr (intagAttr "th" "colspan=2" (heading infinitive_Parameter) ++ (tdf (vfin (VInfin False)))) ++
|
||||||
|
tr (intagAttr "th" "rowspan=3" (heading imperative_Parameter) ++ th "sg.2.p" ++ (tdf (vfin (VImper SgP2)))) ++
|
||||||
|
tr ( th "pl.1.p" ++ (tdf (vfin (VImper PlP1)))) ++
|
||||||
|
tr ( th "pl.2.p" ++ (tdf (vfin (VImper PlP2)))) ++
|
||||||
|
tr (intagAttr "th" "rowspan=2" (heading participle_Parameter) ++
|
||||||
|
th (heading past_Parameter) ++ (tdf (vfin (VPart Masc Sg)))) ++
|
||||||
|
tr ( th (heading present_Parameter) ++ (tdf (vfin VGer)))
|
||||||
|
)
|
||||||
|
)
|
||||||
|
} ;
|
||||||
|
|
||||||
|
}
|
||||||
@@ -45,11 +45,12 @@ lin
|
|||||||
infinitive_Parameter = mkN "infinitif" ;
|
infinitive_Parameter = mkN "infinitif" ;
|
||||||
|
|
||||||
present_Parameter = mkN "présent" ;
|
present_Parameter = mkN "présent" ;
|
||||||
past_Parameter = mkN "passé simple" ; ----
|
past_Parameter = mkN "passé" ;
|
||||||
future_Parameter = mkN "futur" ;
|
future_Parameter = mkN "futur" ;
|
||||||
conditional_Parameter = mkN "conditionnel" ;
|
conditional_Parameter = mkN "conditionnel" ;
|
||||||
perfect_Parameter = mkN "passé composé" ; ----
|
perfect_Parameter = mkN "passé composé" ; ----
|
||||||
imperfect_Parameter = mkN "imparfait" ;
|
imperfect_Parameter = mkN "imparfait" ;
|
||||||
|
simple_past_Parameter = mkN "passé simple" ; ----
|
||||||
|
|
||||||
participle_Parameter = mkN "participe" ;
|
participle_Parameter = mkN "participe" ;
|
||||||
aux_verb_Parameter = mkN "auxiliaire" ;
|
aux_verb_Parameter = mkN "auxiliaire" ;
|
||||||
|
|||||||
@@ -1,118 +1,6 @@
|
|||||||
--# -path=.:../abstract:../common
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
concrete DocumentationGer of Documentation = CatGer ** open
|
-- documentation of German in German: the default introduced in LangGer
|
||||||
TerminologyGer,
|
|
||||||
ResGer,
|
|
||||||
ParadigmsGer,
|
|
||||||
(G = GrammarGer),
|
|
||||||
(S = SyntaxGer),
|
|
||||||
(L = LexiconGer),
|
|
||||||
Prelude,
|
|
||||||
HTML
|
|
||||||
in {
|
|
||||||
|
|
||||||
|
concrete DocumentationGer of Documentation = CatGer **
|
||||||
lincat
|
DocumentationGerFunctor with (Terminology = TerminologyGer) ;
|
||||||
Inflection = {s : Str} ;
|
|
||||||
|
|
||||||
|
|
||||||
oper
|
|
||||||
tdf : Str -> Str = \s -> td (intag "i" s) ;
|
|
||||||
heading : N -> Str = \n -> (nounHeading n).s ;
|
|
||||||
|
|
||||||
nounGender : CatGer.N -> Parameter = \n -> case n.g of {
|
|
||||||
Masc => masculine_Parameter ;
|
|
||||||
Fem => feminine_Parameter ;
|
|
||||||
Neutr => neuter_Parameter
|
|
||||||
} ;
|
|
||||||
|
|
||||||
lin
|
|
||||||
InflectionN noun = {
|
|
||||||
s = heading1 (heading noun_Category) ++
|
|
||||||
paragraph (intag "b" (heading (gender_ParameterType)) ++ ":" ++ heading (nounGender noun)) ++
|
|
||||||
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)) ++
|
|
||||||
tr (th (heading dative_Parameter) ++ tdf (noun.s ! Sg ! Dat) ++ tdf (noun.s ! Pl ! Dat)) ++
|
|
||||||
tr (th (heading accusative_Parameter) ++ tdf (noun.s ! Sg ! Acc) ++ tdf (noun.s ! Pl ! Acc))
|
|
||||||
)
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionA adj =
|
|
||||||
let
|
|
||||||
gforms : Degree -> ResGer.Case -> Str = \d,c ->
|
|
||||||
tdf (adj.s ! d ! (AMod (GSg Masc) c)) ++
|
|
||||||
tdf (adj.s ! d ! (AMod (GSg Fem) c)) ++
|
|
||||||
tdf (adj.s ! d ! (AMod (GSg Neutr) c)) ++
|
|
||||||
tdf (adj.s ! d ! (AMod GPl c)) ;
|
|
||||||
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 positive_Parameter Posit ++ dtable comparative_Parameter Compar ++ dtable superlative_Parameter Superl ;
|
|
||||||
} ;
|
|
||||||
|
|
||||||
InflectionV v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V v))) v ;
|
|
||||||
InflectionV2 v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V2 v) S.something_NP)) (lin V v) ;
|
|
||||||
InflectionVV v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin VV v) (S.mkVP (L.sleep_V)))) (lin V v) ;
|
|
||||||
InflectionV2V v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V2V v) S.we_NP (S.mkVP (L.sleep_V)))) (lin V v) ;
|
|
||||||
|
|
||||||
InflectionPrep p = {
|
|
||||||
s = heading1 (heading preposition_Category) ++
|
|
||||||
paragraph (intag "b" (heading exampleGr_N ++ ":") ++ intag "i" (S.mkAdv (lin Prep p) (S.mkNP S.a_Det L.computer_N)).s)
|
|
||||||
} ;
|
|
||||||
|
|
||||||
ExplainInflection e i = ss (i.s ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
|
||||||
|
|
||||||
oper
|
|
||||||
verbExample : CatGer.Cl -> Str = \cl ->
|
|
||||||
(S.mkUtt cl).s
|
|
||||||
++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent
|
|
||||||
;
|
|
||||||
|
|
||||||
inflectionVerb : Str -> CatGer.V -> {s : Str} = \ex,verb ->
|
|
||||||
let
|
|
||||||
vfin : VForm -> Str = \f ->
|
|
||||||
verb.s ! f ++ verb.prefix ;
|
|
||||||
gforms : Number -> Person -> Str = \n,p ->
|
|
||||||
tdf (vfin (VFin False (VPresInd n p))) ++
|
|
||||||
tdf (vfin (VFin False (VPresSubj n p)))
|
|
||||||
++ tdf (vfin (VFin False (VImpfInd n p))) --# notpresent
|
|
||||||
++ tdf (vfin (VFin False (VImpfSubj n p))) --# notpresent
|
|
||||||
;
|
|
||||||
in {
|
|
||||||
s =
|
|
||||||
heading1 (heading verb_Category) ++
|
|
||||||
paragraph (intag "b" (heading exampleGr_N ++ ":") ++ intag "i" ex) ++
|
|
||||||
paragraph (frameTable (
|
|
||||||
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) ++
|
|
||||||
tr (th "Pl.1" ++ gforms Pl P1) ++
|
|
||||||
tr (th "Pl.2" ++ gforms Pl P2) ++
|
|
||||||
tr (th "Pl.3" ++ gforms Pl P3)
|
|
||||||
)) ++
|
|
||||||
paragraph (
|
|
||||||
frameTable (
|
|
||||||
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"})))
|
|
||||||
))
|
|
||||||
} ;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|||||||
6
src/german/DocumentationGerEng.gf
Normal file
6
src/german/DocumentationGerEng.gf
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
|
-- documentation of German in English
|
||||||
|
|
||||||
|
concrete DocumentationGerEng of Documentation = CatGer **
|
||||||
|
DocumentationGerFunctor with (Terminology = TerminologyEng) ;
|
||||||
118
src/german/DocumentationGerFunctor.gf
Normal file
118
src/german/DocumentationGerFunctor.gf
Normal file
@@ -0,0 +1,118 @@
|
|||||||
|
--# -path=.:../abstract:../common
|
||||||
|
|
||||||
|
incomplete concrete DocumentationGerFunctor of Documentation = CatGer ** open
|
||||||
|
Terminology, -- the interface that generates different documentation languages
|
||||||
|
ResGer,
|
||||||
|
ParadigmsGer,
|
||||||
|
(G = GrammarGer),
|
||||||
|
(S = SyntaxGer),
|
||||||
|
(L = LexiconGer),
|
||||||
|
Prelude,
|
||||||
|
HTML
|
||||||
|
in {
|
||||||
|
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Inflection = {s : Str} ;
|
||||||
|
|
||||||
|
|
||||||
|
oper
|
||||||
|
tdf : Str -> Str = \s -> td (intag "i" s) ;
|
||||||
|
heading : N -> Str = \n -> (nounHeading n).s ;
|
||||||
|
|
||||||
|
nounGender : CatGer.N -> Parameter = \n -> case n.g of {
|
||||||
|
Masc => masculine_Parameter ;
|
||||||
|
Fem => feminine_Parameter ;
|
||||||
|
Neutr => neuter_Parameter
|
||||||
|
} ;
|
||||||
|
|
||||||
|
lin
|
||||||
|
InflectionN noun = {
|
||||||
|
s = heading1 (heading noun_Category) ++
|
||||||
|
paragraph (intag "b" (heading (gender_ParameterType)) ++ ":" ++ heading (nounGender noun)) ++
|
||||||
|
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)) ++
|
||||||
|
tr (th (heading dative_Parameter) ++ tdf (noun.s ! Sg ! Dat) ++ tdf (noun.s ! Pl ! Dat)) ++
|
||||||
|
tr (th (heading accusative_Parameter) ++ tdf (noun.s ! Sg ! Acc) ++ tdf (noun.s ! Pl ! Acc))
|
||||||
|
)
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionA adj =
|
||||||
|
let
|
||||||
|
gforms : Degree -> ResGer.Case -> Str = \d,c ->
|
||||||
|
tdf (adj.s ! d ! (AMod (GSg Masc) c)) ++
|
||||||
|
tdf (adj.s ! d ! (AMod (GSg Fem) c)) ++
|
||||||
|
tdf (adj.s ! d ! (AMod (GSg Neutr) c)) ++
|
||||||
|
tdf (adj.s ! d ! (AMod GPl c)) ;
|
||||||
|
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 positive_Parameter Posit ++ dtable comparative_Parameter Compar ++ dtable superlative_Parameter Superl ;
|
||||||
|
} ;
|
||||||
|
|
||||||
|
InflectionV v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V v))) v ;
|
||||||
|
InflectionV2 v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V2 v) S.something_NP)) (lin V v) ;
|
||||||
|
InflectionVV v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin VV v) (S.mkVP (L.sleep_V)))) (lin V v) ;
|
||||||
|
InflectionV2V v = inflectionVerb (verbExample (S.mkCl S.she_NP (lin V2V v) S.we_NP (S.mkVP (L.sleep_V)))) (lin V v) ;
|
||||||
|
|
||||||
|
InflectionPrep p = {
|
||||||
|
s = heading1 (heading preposition_Category) ++
|
||||||
|
paragraph (intag "b" (heading exampleGr_N ++ ":") ++ intag "i" (S.mkAdv (lin Prep p) (S.mkNP S.a_Det L.computer_N)).s)
|
||||||
|
} ;
|
||||||
|
|
||||||
|
ExplainInflection e i = ss (i.s ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
||||||
|
|
||||||
|
oper
|
||||||
|
verbExample : CatGer.Cl -> Str = \cl ->
|
||||||
|
(S.mkUtt cl).s
|
||||||
|
++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent
|
||||||
|
;
|
||||||
|
|
||||||
|
inflectionVerb : Str -> CatGer.V -> {s : Str} = \ex,verb ->
|
||||||
|
let
|
||||||
|
vfin : VForm -> Str = \f ->
|
||||||
|
verb.s ! f ++ verb.prefix ;
|
||||||
|
gforms : Number -> Person -> Str = \n,p ->
|
||||||
|
tdf (vfin (VFin False (VPresInd n p))) ++
|
||||||
|
tdf (vfin (VFin False (VPresSubj n p)))
|
||||||
|
++ tdf (vfin (VFin False (VImpfInd n p))) --# notpresent
|
||||||
|
++ tdf (vfin (VFin False (VImpfSubj n p))) --# notpresent
|
||||||
|
;
|
||||||
|
in {
|
||||||
|
s =
|
||||||
|
heading1 (heading verb_Category) ++
|
||||||
|
paragraph (intag "b" (heading exampleGr_N ++ ":") ++ intag "i" ex) ++
|
||||||
|
paragraph (frameTable (
|
||||||
|
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) ++
|
||||||
|
tr (th "Pl.1" ++ gforms Pl P1) ++
|
||||||
|
tr (th "Pl.2" ++ gforms Pl P2) ++
|
||||||
|
tr (th "Pl.3" ++ gforms Pl P3)
|
||||||
|
)) ++
|
||||||
|
paragraph (
|
||||||
|
frameTable (
|
||||||
|
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"})))
|
||||||
|
))
|
||||||
|
} ;
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user