refactored Documentation to Terminology and Documentation proper. This makes it possible to functorize the display of tables, for instance show Swedish inflection tables with headings in English terminology. Carried out the functorization in Eng and Swe, other languages coming soon.

This commit is contained in:
aarne
2013-12-14 09:21:15 +00:00
parent b394d16ed0
commit ced38d5f9f
16 changed files with 685 additions and 564 deletions

View File

@@ -4,94 +4,9 @@ abstract Documentation = Cat ** {
-- AR 12/12/2013 under LGPL/BSD
cat
Category ; -- name of category e.g. "noun"
ParameterType ; -- name of parameter type e.g. "number"
Parameter ; -- name of parameter e.g. "plural"
Heading ; -- grammatical term used as heading e.g. "Noun" ---- TODO capitalization
Inflection ; -- inflection table
Modifier ; -- e.g. finite, transitive
fun
noun_Category : Category ;
adjective_Category : Category ;
verb_Category : Category ;
adverb_Category : Category ;
preposition_Category : Category ;
number_ParameterType : ParameterType ;
gender_ParameterType : ParameterType ;
case_ParameterType : ParameterType ;
person_ParameterType : ParameterType ;
tense_ParameterType : ParameterType ;
degree_ParameterType : ParameterType ;
singular_Parameter : Parameter ;
plural_Parameter : Parameter ;
definite_Parameter : Parameter ;
indefinite_Parameter : Parameter ;
masculine_Parameter : Parameter ;
feminine_Parameter : Parameter ;
neuter_Parameter : Parameter ;
uter_Parameter : Parameter ; -- the Swedish/Dutch non-neuter gender
nominative_Parameter : Parameter ;
accusative_Parameter : Parameter ;
genitive_Parameter : Parameter ;
dative_Parameter : Parameter ;
partitive_Parameter : Parameter ; -- Fin N
translative_Parameter : Parameter ;
essive_Parameter : Parameter ;
inessive_Parameter : Parameter ;
elative_Parameter : Parameter ;
illative_Parameter : Parameter ;
adessive_Parameter : Parameter ;
ablative_Parameter : Parameter ;
allative_Parameter : Parameter ;
abessive_Parameter : Parameter ;
comitative_Parameter : Parameter ;
instructive_Parameter : Parameter ;
imperative_Parameter : Parameter ;
indicative_Parameter : Parameter ;
conjunctive_Parameter : Parameter ;
infinitive_Parameter : Parameter ;
active_Parameter : Parameter ;
passive_Parameter : Parameter ;
present_Parameter : Parameter ;
past_Parameter : Parameter ;
future_Parameter : Parameter ;
conditional_Parameter : Parameter ;
perfect_Parameter : Parameter ;
imperfect_Parameter : Parameter ;
potential_Parameter : Parameter ; -- Fin V
participle_Parameter : Parameter ;
aux_verb_Parameter : Parameter ;
agent_Parameter : Parameter ;
positive_Parameter : Parameter ;
comparative_Parameter : Parameter ;
superlative_Parameter : Parameter ;
predicative_Parameter : Parameter ;
subject_Parameter : Parameter ;
object_Parameter : Parameter ;
person1_Parameter : Parameter ;
person2_Parameter : Parameter ;
person3_Parameter : Parameter ;
finite_Modifier : Modifier ;
transitive_Modifier : Modifier ;
nounHeading : N -> Heading ;
InflectionN : N -> Inflection ;
InflectionN2 : N2 -> Inflection ;
InflectionN3 : N3 -> Inflection ;
@@ -112,11 +27,5 @@ fun
ExplainInflection : String -> Inflection -> Inflection ;
-- generic grammar terms
exampleGr_N : N ; -- example of a rule, category, etc
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)
}

View File

@@ -0,0 +1,103 @@
abstract Terminology = Cat ** {
-- grammatical terminology for documenting for the library, for instance, inflection tables
-- AR 12/12/2013 under LGPL/BSD
cat
Category ; -- name of category e.g. "noun"
ParameterType ; -- name of parameter type e.g. "number"
Parameter ; -- name of parameter e.g. "plural"
Heading ; -- grammatical term used as heading e.g. "Noun" ---- TODO capitalization
Modifier ; -- e.g. finite, transitive
fun
noun_Category : Category ;
adjective_Category : Category ;
verb_Category : Category ;
adverb_Category : Category ;
preposition_Category : Category ;
number_ParameterType : ParameterType ;
gender_ParameterType : ParameterType ;
case_ParameterType : ParameterType ;
person_ParameterType : ParameterType ;
tense_ParameterType : ParameterType ;
degree_ParameterType : ParameterType ;
singular_Parameter : Parameter ;
plural_Parameter : Parameter ;
definite_Parameter : Parameter ;
indefinite_Parameter : Parameter ;
masculine_Parameter : Parameter ;
feminine_Parameter : Parameter ;
neuter_Parameter : Parameter ;
uter_Parameter : Parameter ; -- the Swedish/Dutch non-neuter gender
nominative_Parameter : Parameter ;
accusative_Parameter : Parameter ;
genitive_Parameter : Parameter ;
dative_Parameter : Parameter ;
partitive_Parameter : Parameter ; -- Fin N
translative_Parameter : Parameter ;
essive_Parameter : Parameter ;
inessive_Parameter : Parameter ;
elative_Parameter : Parameter ;
illative_Parameter : Parameter ;
adessive_Parameter : Parameter ;
ablative_Parameter : Parameter ;
allative_Parameter : Parameter ;
abessive_Parameter : Parameter ;
comitative_Parameter : Parameter ;
instructive_Parameter : Parameter ;
imperative_Parameter : Parameter ;
indicative_Parameter : Parameter ;
conjunctive_Parameter : Parameter ;
infinitive_Parameter : Parameter ;
active_Parameter : Parameter ;
passive_Parameter : Parameter ;
present_Parameter : Parameter ;
past_Parameter : Parameter ;
future_Parameter : Parameter ;
conditional_Parameter : Parameter ;
perfect_Parameter : Parameter ;
imperfect_Parameter : Parameter ;
potential_Parameter : Parameter ; -- Fin V
supine_Parameter : Parameter ; -- Swe V
participle_Parameter : Parameter ;
aux_verb_Parameter : Parameter ;
agent_Parameter : Parameter ;
positive_Parameter : Parameter ;
comparative_Parameter : Parameter ;
superlative_Parameter : Parameter ;
predicative_Parameter : Parameter ;
subject_Parameter : Parameter ;
object_Parameter : Parameter ;
person1_Parameter : Parameter ;
person2_Parameter : Parameter ;
person3_Parameter : Parameter ;
finite_Modifier : Modifier ;
transitive_Modifier : Modifier ;
nounHeading : N -> Heading ;
-- generic grammar terms
exampleGr_N : N ; -- example of a rule, category, etc
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)
}

View File

@@ -1,111 +1,7 @@
--# -path=.:../abstract:../common
concrete DocumentationEng of Documentation = CatEng ** open
ResEng,
ParadigmsEng,
(G = GrammarEng),
(S = SyntaxEng),
(L = LexiconEng),
Prelude,
HTML
in {
-- documentation of English in English: the default introduced in LangEng
concrete DocumentationEng of Documentation = CatEng **
DocumentationEngFunctor with (Terminology = TerminologyEng) ;
lincat
Category = G.N ;
ParameterType = G.N ;
Parameter = G.N ;
Heading = {s : Str} ;
Inflection = {s : Str} ;
lin
noun_Category = mkN "noun" ;
adjective_Category = mkN "adjective" ;
verb_Category = mkN "verb" ;
adverb_Category = mkN "adverb" ;
singular_Parameter = mkN "singular" ;
plural_Parameter = mkN "plural" ;
masculine_Parameter = mkN "masculine" ;
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 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 : Cl -> Str = \cl -> (S.mkUtt cl).s ;
inflectionVerb : Str -> V -> {s : Str} = \ex,verb -> {
s = heading1 (heading verb_Category) ++
paragraph (intag "b" (heading exampleGr_N ++ ":") ++ intag "i" ex) ++
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))
)
} ;
lin
exampleGr_N = mkN "example" ;
formGr_N = mkN "form" ;
}

View File

@@ -0,0 +1,64 @@
--# -path=.:../abstract:../common
-- documentation of English in any language instantiating Terminology
incomplete concrete DocumentationEngFunctor of Documentation = CatEng ** open
Terminology,
ResEng,
ParadigmsEng,
(G = GrammarEng),
(S = SyntaxEng),
(L = LexiconEng),
Prelude,
HTML
in {
lincat
Inflection = {s : Str} ;
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 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 : CatEng.Cl -> Str = \cl -> (S.mkUtt cl).s ;
inflectionVerb : Str -> CatEng.V -> {s : Str} = \ex,verb -> {
s = heading1 (heading verb_Category) ++
paragraph (intag "b" (heading exampleGr_N ++ ":") ++ intag "i" ex) ++
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))
)
} ;
}

View File

@@ -0,0 +1,6 @@
--# -path=.:../abstract:../common
-- documentation of English in Swedish
concrete DocumentationEngSwe of Documentation = CatEng **
DocumentationEngFunctor with (Terminology = TerminologySwe) ;

View File

@@ -0,0 +1,69 @@
--# -path=.:../abstract:../common
concrete TerminologyEng of Terminology = CatEng ** open
ResEng,
ParadigmsEng,
(G = GrammarEng),
(S = SyntaxEng),
(L = LexiconEng),
Prelude
in {
lincat
Category = G.N ;
ParameterType = G.N ;
Parameter = G.N ;
Modifier = G.A ;
lin
noun_Category = mkN "noun" ;
adjective_Category = mkN "adjective" ;
verb_Category = mkN "verb" ;
adverb_Category = mkN "adverb" ;
gender_ParameterType = mkN "Gender" ;
singular_Parameter = mkN "singular" ;
plural_Parameter = mkN "plural" ;
masculine_Parameter = mkN "masculine" ;
feminine_Parameter = mkN "feminine" ;
neuter_Parameter = mkN "neuter" ;
uter_Parameter = mkN "uter" ;
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" ;
definite_Parameter = mkN "definite" ;
indefinite_Parameter = mkN "indefinite" ;
present_Parameter = mkN "present" ;
past_Parameter = mkN "past" ;
future_Parameter = mkN "future" ;
conditional_Parameter = mkN "conditional" ;
perfect_Parameter = mkN "perfect" ;
supine_Parameter = mkN "supine" ;
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) ;
exampleGr_N = mkN "example" ;
formGr_N = mkN "form" ;
}

View File

@@ -1,6 +1,7 @@
--# -path=.:../abstract:../common
concrete DocumentationFin of Documentation = CatFin ** open
TerminologyFin,
ResFin,
StemFin,
ParadigmsFin,
@@ -13,79 +14,12 @@ in {
lincat
Category = G.N ;
ParameterType = G.N ;
Parameter = G.N ;
Modifier = G.A ;
Heading = {s : Str} ;
Inflection = {s : Str} ;
lin
noun_Category = mkN "substantiivi" ;
adjective_Category = mkN "adjektiivi" ;
verb_Category = mkN "verbi" ;
adverb_Category = mkN "adverbi" ;
preposition_Category = mkN "prepositio" ;
singular_Parameter = mkN "yksikkö" ;
plural_Parameter = mkN "monikko" ;
masculine_Parameter = mkN "maskuliini" ;
feminine_Parameter = mkN "feminiini" ;
neuter_Parameter = mkN "neutri" ;
nominative_Parameter = mkN "nominatiivi" ;
genitive_Parameter = mkN "genetiivi" ;
dative_Parameter = mkN "datiivi" ;
accusative_Parameter = mkN "akkusatiivi" ;
partitive_Parameter = mkN "partitiivi" ;
translative_Parameter = mkN "translatiivi" ;
essive_Parameter = mkN "essiivi" ;
inessive_Parameter = mkN "inessiivi" ;
elative_Parameter = mkN "elatiivi" ;
illative_Parameter = mkN "illatiivi" ;
adessive_Parameter = mkN "adessiivi" ;
ablative_Parameter = mkN "ablatiivi" ;
allative_Parameter = mkN "allatiivi" ;
abessive_Parameter = mkN "abessiivi" ;
comitative_Parameter = mkN "komitatiivi" ;
instructive_Parameter = mkN "instruktiivi" ;
active_Parameter = mkN "aktiivi" ;
passive_Parameter = mkN "passiivi" ;
imperative_Parameter = mkN "imperatiivi" ;
indicative_Parameter = mkN "indikatiivi" ;
conjunctive_Parameter = mkN "konjunktiivi" ;
infinitive_Parameter = mkN "infinitiivi" ;
present_Parameter = mkN "preesens" ;
past_Parameter = mkN "imperfekti" ;
future_Parameter = mkN "futuuri" ;
conditional_Parameter = mkN "konditionaali" ;
perfect_Parameter = mkN "perfekti" ;
potential_Parameter = mkN "potentiaali" ;
participle_Parameter = mkN "partisiippi" ;
aux_verb_Parameter = mkN "apu" (mkN "verbi") ;
agent_Parameter = mkN "agentti" ;
positive_Parameter = mkN "positiivi" ;
comparative_Parameter = mkN "komparatiivi" ;
superlative_Parameter = mkN "superlatiivi" ;
predicative_Parameter = mkN "predikatiivi" ;
finite_Modifier = mkA "finiittinen" ;
nounHeading n = ss ((snoun2nounSep n).s ! NCase Sg Nom) ;
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 ;
heading : CatFin.N -> Str = \n -> (nounHeading n).s ;
inflectionN : (NForm -> Str) -> Str = \nouns ->
frameTable (
@@ -130,12 +64,12 @@ lin
ExplainInflection e i = ss (i.s ++ paragraph e.s) ; -- explanation appended in a new paragraph
oper
verbExample : Cl -> Str = \cl -> (S.mkUtt cl).s ;
verbExample : CatFin.Cl -> Str = \cl -> (S.mkUtt cl).s ;
inflectionVerb : Str -> V -> {s : Str} = \ex,verb0 ->
inflectionVerb : Str -> CatFin.V -> {s : Str} = \ex,verb0 ->
let
verb = sverb2verbSep verb0 ;
vfin : VForm -> Str = \f ->
vfin : ResFin.VForm -> Str = \f ->
verb.s ! f ;
gforms : Number -> Person -> Str = \n,p ->
tdf (vfin (Presn n p))
@@ -233,9 +167,4 @@ lin
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))
} ;
formGF_N = mkN "muoto" ;
exampleGr_N = mkN "esimerkki" ;
}

View File

@@ -0,0 +1,87 @@
--# -path=.:../abstract:../common
concrete TerminologyFin of Terminology = CatFin ** open
ResFin,
StemFin,
ParadigmsFin,
(G = GrammarFin),
(S = SyntaxFin),
(L = LexiconFin),
Prelude,
HTML
in {
lincat
Category = G.N ;
ParameterType = G.N ;
Parameter = G.N ;
Modifier = G.A ;
Heading = {s : Str} ;
lin
noun_Category = mkN "substantiivi" ;
adjective_Category = mkN "adjektiivi" ;
verb_Category = mkN "verbi" ;
adverb_Category = mkN "adverbi" ;
preposition_Category = mkN "prepositio" ;
singular_Parameter = mkN "yksikkö" ;
plural_Parameter = mkN "monikko" ;
masculine_Parameter = mkN "maskuliini" ;
feminine_Parameter = mkN "feminiini" ;
neuter_Parameter = mkN "neutri" ;
nominative_Parameter = mkN "nominatiivi" ;
genitive_Parameter = mkN "genetiivi" ;
dative_Parameter = mkN "datiivi" ;
accusative_Parameter = mkN "akkusatiivi" ;
partitive_Parameter = mkN "partitiivi" ;
translative_Parameter = mkN "translatiivi" ;
essive_Parameter = mkN "essiivi" ;
inessive_Parameter = mkN "inessiivi" ;
elative_Parameter = mkN "elatiivi" ;
illative_Parameter = mkN "illatiivi" ;
adessive_Parameter = mkN "adessiivi" ;
ablative_Parameter = mkN "ablatiivi" ;
allative_Parameter = mkN "allatiivi" ;
abessive_Parameter = mkN "abessiivi" ;
comitative_Parameter = mkN "komitatiivi" ;
instructive_Parameter = mkN "instruktiivi" ;
active_Parameter = mkN "aktiivi" ;
passive_Parameter = mkN "passiivi" ;
imperative_Parameter = mkN "imperatiivi" ;
indicative_Parameter = mkN "indikatiivi" ;
conjunctive_Parameter = mkN "konjunktiivi" ;
infinitive_Parameter = mkN "infinitiivi" ;
present_Parameter = mkN "preesens" ;
past_Parameter = mkN "imperfekti" ;
future_Parameter = mkN "futuuri" ;
conditional_Parameter = mkN "konditionaali" ;
perfect_Parameter = mkN "perfekti" ;
potential_Parameter = mkN "potentiaali" ;
participle_Parameter = mkN "partisiippi" ;
aux_verb_Parameter = mkN "apu" (mkN "verbi") ;
agent_Parameter = mkN "agentti" ;
positive_Parameter = mkN "positiivi" ;
comparative_Parameter = mkN "komparatiivi" ;
superlative_Parameter = mkN "superlatiivi" ;
predicative_Parameter = mkN "predikatiivi" ;
finite_Modifier = mkA "finiittinen" ;
nounHeading n = ss ((snoun2nounSep n).s ! NCase Sg Nom) ;
formGF_N = mkN "muoto" ;
exampleGr_N = mkN "esimerkki" ;
}

View File

@@ -1,6 +1,7 @@
--# -path=.:../abstract:../common
concrete DocumentationFre of Documentation = CatFre ** open
TerminologyFre,
ResFre,
CommonRomance,
ParadigmsFre,
@@ -13,60 +14,13 @@ in {
lincat
Category = G.N ;
ParameterType = G.N ;
Parameter = G.N ;
Heading = {s : Str} ;
Inflection = {s : Str} ;
lin
noun_Category = mkN "nom" ;
adjective_Category = mkN "adjectif" ;
verb_Category = mkN "verbe" masculine ;
gender_ParameterType = mkN "genre" masculine ;
singular_Parameter = mkN "singulier" ;
plural_Parameter = mkN "pluriel" ;
masculine_Parameter = mkN "masculin" ;
feminine_Parameter = mkN "féminin" ;
neuter_Parameter = mkN "neutre" ;
nominative_Parameter = mkN "nominatif" ;
genitive_Parameter = mkN "génitif" ;
dative_Parameter = mkN "datif" ;
accusative_Parameter = mkN "accusativ" ;
imperative_Parameter = mkN "impératif" ;
indicative_Parameter = mkN "indicatif" ;
conjunctive_Parameter = mkN "subjonctif" ;
infinitive_Parameter = mkN "infinitif" ;
present_Parameter = mkN "présent" ;
past_Parameter = mkN "passé simple" ; ----
future_Parameter = mkN "futur" ;
conditional_Parameter = mkN "conditionnel" ;
perfect_Parameter = mkN "passé composé" ; ----
imperfect_Parameter = mkN "imparfait" ;
participle_Parameter = mkN "participe" ;
aux_verb_Parameter = mkN "auxiliaire" ;
positive_Parameter = mkN "positif" ;
comparative_Parameter = mkN "comparatif" ;
superlative_Parameter = mkN "superlatif" ;
predicative_Parameter = mkN "prédicatif" ;
nounHeading n = ss (n.s ! Sg) ;
oper
tdf : Str -> Str = \s -> td (intag "i" s) ;
heading : N -> Str = \n -> (nounHeading n).s ;
heading : CatFre.N -> Str = \n -> (nounHeading n).s ;
nounGender : N -> Parameter = \n -> case n.g of {
nounGender : CatFre.N -> Parameter = \n -> case n.g of {
Masc => masculine_Parameter ;
Fem => feminine_Parameter
} ;
@@ -98,14 +52,14 @@ lin
ExplainInflection e i = ss (i.s ++ paragraph e.s) ; -- explanation appended in a new paragraph
oper
verbExample : Cl -> Str = \cl ->
verbExample : CatFre.Cl -> Str = \cl ->
(S.mkUtt cl).s
++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent
;
inflectionVerb : Str -> V -> {s : Str} = \ex,verb ->
inflectionVerb : Str -> CatFre.V -> {s : Str} = \ex,verb ->
let
vfin : VF -> Str = \f ->
vfin : CommonRomance.VF -> Str = \f ->
verb.s ! f ;
gforms : Number -> Person -> Str = \n,p ->
@@ -163,8 +117,4 @@ oper
)
} ;
lin
exampleGr_N = mkN "exemple" masculine ;
}

View File

@@ -0,0 +1,66 @@
--# -path=.:../abstract:../common
concrete TerminologyFre of Terminology = CatFre ** open
ResFre,
CommonRomance,
ParadigmsFre,
(G = GrammarFre),
(S = SyntaxFre),
(L = LexiconFre),
Prelude
in {
lincat
Category = G.N ;
ParameterType = G.N ;
Parameter = G.N ;
Heading = {s : Str} ;
lin
noun_Category = mkN "nom" ;
adjective_Category = mkN "adjectif" ;
verb_Category = mkN "verbe" masculine ;
gender_ParameterType = mkN "genre" masculine ;
singular_Parameter = mkN "singulier" ;
plural_Parameter = mkN "pluriel" ;
masculine_Parameter = mkN "masculin" ;
feminine_Parameter = mkN "féminin" ;
neuter_Parameter = mkN "neutre" ;
nominative_Parameter = mkN "nominatif" ;
genitive_Parameter = mkN "génitif" ;
dative_Parameter = mkN "datif" ;
accusative_Parameter = mkN "accusativ" ;
imperative_Parameter = mkN "impératif" ;
indicative_Parameter = mkN "indicatif" ;
conjunctive_Parameter = mkN "subjonctif" ;
infinitive_Parameter = mkN "infinitif" ;
present_Parameter = mkN "présent" ;
past_Parameter = mkN "passé simple" ; ----
future_Parameter = mkN "futur" ;
conditional_Parameter = mkN "conditionnel" ;
perfect_Parameter = mkN "passé composé" ; ----
imperfect_Parameter = mkN "imparfait" ;
participle_Parameter = mkN "participe" ;
aux_verb_Parameter = mkN "auxiliaire" ;
positive_Parameter = mkN "positif" ;
comparative_Parameter = mkN "comparatif" ;
superlative_Parameter = mkN "superlatif" ;
predicative_Parameter = mkN "prédicatif" ;
nounHeading n = ss (n.s ! Sg) ;
exampleGr_N = mkN "exemple" masculine ;
}

View File

@@ -1,6 +1,7 @@
--# -path=.:../abstract:../common
concrete DocumentationGer of Documentation = CatGer ** open
TerminologyGer,
ResGer,
ParadigmsGer,
(G = GrammarGer),
@@ -12,60 +13,14 @@ in {
lincat
Category = G.N ;
ParameterType = G.N ;
Parameter = G.N ;
Heading = {s : Str} ;
Inflection = {s : Str} ;
lin
noun_Category = mkN "Substantiv" ;
adjective_Category = mkN "Adjektiv" ;
verb_Category = mkN "Verb" ;
preposition_Category = mkN "Präposition" ;
gender_ParameterType = mkN "Geschlecht" ;
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) ;
oper
tdf : Str -> Str = \s -> td (intag "i" s) ;
heading : N -> Str = \n -> (nounHeading n).s ;
nounGender : N -> Parameter = \n -> case n.g of {
nounGender : CatGer.N -> Parameter = \n -> case n.g of {
Masc => masculine_Parameter ;
Fem => feminine_Parameter ;
Neutr => neuter_Parameter
@@ -119,12 +74,12 @@ lin
ExplainInflection e i = ss (i.s ++ paragraph e.s) ; -- explanation appended in a new paragraph
oper
verbExample : Cl -> Str = \cl ->
verbExample : CatGer.Cl -> Str = \cl ->
(S.mkUtt cl).s
++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent
;
inflectionVerb : Str -> V -> {s : Str} = \ex,verb ->
inflectionVerb : Str -> CatGer.V -> {s : Str} = \ex,verb ->
let
vfin : VForm -> Str = \f ->
verb.s ! f ++ verb.prefix ;
@@ -160,7 +115,4 @@ oper
))
} ;
lin
exampleGr_N = mkN "Beispiel" "Beispiele" neuter ;
}

View File

@@ -0,0 +1,64 @@
--# -path=.:../abstract:../common
concrete TerminologyGer of Terminology = CatGer ** open
ResGer,
ParadigmsGer,
(G = GrammarGer),
(S = SyntaxGer),
(L = LexiconGer),
Prelude
in {
lincat
Category = G.N ;
ParameterType = G.N ;
Parameter = G.N ;
Heading = {s : Str} ;
lin
noun_Category = mkN "Substantiv" ;
adjective_Category = mkN "Adjektiv" ;
verb_Category = mkN "Verb" ;
preposition_Category = mkN "Präposition" ;
gender_ParameterType = mkN "Geschlecht" ;
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) ;
exampleGr_N = mkN "Beispiel" "Beispiele" neuter ;
}

View File

@@ -1,185 +1,6 @@
--# -path=.:../abstract:../common
concrete DocumentationSwe of Documentation = CatSwe ** open
ResSwe,
CommonScand,
ParadigmsSwe,
(G = GrammarSwe),
(S = SyntaxSwe),
(L = LexiconSwe),
Prelude,
HTML
in {
-- documentation of Swedish in Swedish: the default introduced in LangSwe
lincat
Category = G.N ;
ParameterType = G.N ;
Parameter = G.N ;
Heading = {s : Str} ;
Inflection = {s : Str} ;
lin
noun_Category = mkN "substantiv" ;
adjective_Category = mkN "adjektiv" ;
verb_Category = mkN "verb" ;
preposition_Category = mkN "preposition" ;
gender_ParameterType = mkN "genus" ;
singular_Parameter = mkN "singular" ;
plural_Parameter = mkN "plural" ;
definite_Parameter = mkN "bestämd" ;
indefinite_Parameter = mkN "obestämd" ;
masculine_Parameter = mkN "maskulin" ;
feminine_Parameter = mkN "feminin" ;
neuter_Parameter = mkN "neutrum" ;
uter_Parameter = mkN "utrum" ;
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 "presens" ;
past_Parameter = mkN "preteritum" ;
future_Parameter = mkN "futur" ;
conditional_Parameter = mkN "konditionalis" ;
perfect_Parameter = mkN "perfekt" ;
participle_Parameter = mkN "partisip" ;
aux_verb_Parameter = mkN "hjälpverb" ;
positive_Parameter = mkN "positiv" ;
comparative_Parameter = mkN "komparativ" ;
superlative_Parameter = mkN "superlativ" ;
predicative_Parameter = mkN "predikativ" ;
nounHeading n = ss (n.s ! Sg ! Indef ! Nom) ;
oper
tdf : Str -> Str = \s -> td (intag "i" s) ;
heading : N -> Str = \n -> (nounHeading n).s ;
nounGender : N -> Parameter = \n -> case n.g of {
Utr => uter_Parameter ;
Neutr => neuter_Parameter
} ;
lin
InflectionN noun = {
s = heading1 (heading noun_Category) ++
paragraph (intag "b" (heading (gender_ParameterType)) ++ ":" ++ heading (nounGender noun) ++ ";" ++
intag "i" (S.mkUtt (S.mkNP S.a_Det noun)).s) ++
frameTable (
tr (intagAttr "th" "colspan=2" "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter) ) ++
tr (intagAttr "th" "rowspan=2" (heading nominative_Parameter) ++
th (heading indefinite_Parameter) ++ tdf (noun.s ! Sg ! Indef ! Nom) ++ tdf (noun.s ! Pl ! Indef ! Nom)) ++
tr (th (heading definite_Parameter) ++ tdf (noun.s ! Sg ! Def ! Nom) ++ tdf (noun.s ! Pl ! Def ! Nom)) ++
tr (intagAttr "th" "rowspan=2" (heading genitive_Parameter) ++
th (heading indefinite_Parameter) ++ tdf (noun.s ! Sg ! Indef ! Gen) ++ tdf (noun.s ! Pl ! Indef ! Gen)) ++
tr (th (heading definite_Parameter) ++ tdf (noun.s ! Sg ! Def ! Gen) ++ tdf (noun.s ! Pl ! Def ! Gen))
)
} ;
InflectionA adj =
let
gforms : Case -> Str = \c ->
tdf (adj.s ! (AF (APosit (Strong (GSg Utr))) c)) ++
tdf (adj.s ! (AF (APosit (Strong (GSg Neutr))) c)) ++
tdf (adj.s ! (AF (APosit (Strong GPl)) c)) ++
tdf (adj.s ! (AF (APosit (Weak Sg)) c)) ;
in
{
s = heading1 (nounHeading adjective_Category).s ++
frameTable (
tr (intagAttr "th" "colspan=2" [] ++
th (heading uter_Parameter) ++ th (heading neuter_Parameter) ++
th (heading plural_Parameter) ++ th (heading definite_Parameter)) ++
tr (intagAttr "th" "rowspan=2" (heading positive_Parameter) ++
th (heading nominative_Parameter) ++ gforms Nom) ++
tr ( th (heading genitive_Parameter) ++ gforms Gen) ++
tr (intagAttr "th" "rowspan=2" (heading comparative_Parameter) ++
th (heading nominative_Parameter) ++ intagAttr "td" "colspan=4" (intag "i" (adj.s ! AF ACompar Nom))) ++
tr ( th (heading genitive_Parameter) ++ intagAttr "td" "colspan=4" (intag "i" (adj.s ! AF ACompar Gen))) ++
tr (intagAttr "th" "rowspan=2" (heading superlative_Parameter) ++
th (heading nominative_Parameter) ++
intagAttr "td" "colspan=3" (intag "i" (adj.s ! AF (ASuperl SupStrong) Nom)) ++
tdf (adj.s ! AF (ASuperl SupWeak) Nom)) ++
tr ( th (heading genitive_Parameter) ++
intagAttr "td" "colspan=3" (intag "i" (adj.s ! AF (ASuperl SupStrong) Gen)) ++
tdf (adj.s ! AF (ASuperl SupWeak) Gen))
)
} ;
{-
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 : Cl -> Str = \cl ->
(S.mkUtt cl).s
++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent
;
inflectionVerb : Str -> 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"})))
))
} ;
-}
lin
exampleGr_N = mkN "exempel" "exempel" ;
}
concrete DocumentationSwe of Documentation = CatSwe **
DocumentationSweFunctor with (Terminology = TerminologySwe) ;

View File

@@ -0,0 +1,6 @@
--# -path=.:../abstract:../common
-- documentation of Swedish in English
concrete DocumentationSweEng of Documentation = CatSwe **
DocumentationSweFunctor with (Terminology = TerminologyEng) ;

View File

@@ -0,0 +1,123 @@
--# -path=.:../abstract:../common
-- generic documentation: varying the Terminology interface gives documentation of Swe in different languages
incomplete concrete DocumentationSweFunctor of Documentation = CatSwe ** open
Terminology, -- as interface
ResSwe,
CommonScand,
ParadigmsSwe,
(G = GrammarSwe),
(S = SyntaxSwe),
(L = LexiconSwe),
Prelude,
HTML
in {
lincat
Inflection = {s : Str} ;
oper
tdf : Str -> Str = \s -> td (intag "i" s) ;
heading : N -> Str = \n -> (nounHeading n).s ;
nounGender : CatSwe.N -> Parameter = \n -> case n.g of {
Utr => uter_Parameter ;
Neutr => neuter_Parameter
} ;
lin
InflectionN noun = {
s = heading1 (heading noun_Category) ++
paragraph (intag "b" (heading (gender_ParameterType)) ++ ":" ++ heading (nounGender noun) ++ ";" ++
intag "i" (S.mkUtt (S.mkNP S.a_Det noun)).s) ++
frameTable (
tr (intagAttr "th" "colspan=2" "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter) ) ++
tr (intagAttr "th" "rowspan=2" (heading nominative_Parameter) ++
th (heading indefinite_Parameter) ++ tdf (noun.s ! Sg ! Indef ! Nom) ++ tdf (noun.s ! Pl ! Indef ! Nom)) ++
tr (th (heading definite_Parameter) ++ tdf (noun.s ! Sg ! Def ! Nom) ++ tdf (noun.s ! Pl ! Def ! Nom)) ++
tr (intagAttr "th" "rowspan=2" (heading genitive_Parameter) ++
th (heading indefinite_Parameter) ++ tdf (noun.s ! Sg ! Indef ! Gen) ++ tdf (noun.s ! Pl ! Indef ! Gen)) ++
tr (th (heading definite_Parameter) ++ tdf (noun.s ! Sg ! Def ! Gen) ++ tdf (noun.s ! Pl ! Def ! Gen))
)
} ;
InflectionA adj =
let
gforms : Case -> Str = \c ->
tdf (adj.s ! (AF (APosit (Strong (GSg Utr))) c)) ++
tdf (adj.s ! (AF (APosit (Strong (GSg Neutr))) c)) ++
tdf (adj.s ! (AF (APosit (Strong GPl)) c)) ++
tdf (adj.s ! (AF (APosit (Weak Sg)) c)) ;
in
{
s = heading1 (nounHeading adjective_Category).s ++
frameTable (
tr (intagAttr "th" "colspan=2" [] ++
th (heading uter_Parameter) ++ th (heading neuter_Parameter) ++
th (heading plural_Parameter) ++ th (heading definite_Parameter)) ++
tr (intagAttr "th" "rowspan=2" (heading positive_Parameter) ++
th (heading nominative_Parameter) ++ gforms Nom) ++
tr ( th (heading genitive_Parameter) ++ gforms Gen) ++
tr (intagAttr "th" "rowspan=2" (heading comparative_Parameter) ++
th (heading nominative_Parameter) ++ intagAttr "td" "colspan=4" (intag "i" (adj.s ! AF ACompar Nom))) ++
tr ( th (heading genitive_Parameter) ++ intagAttr "td" "colspan=4" (intag "i" (adj.s ! AF ACompar Gen))) ++
tr (intagAttr "th" "rowspan=2" (heading superlative_Parameter) ++
th (heading nominative_Parameter) ++
intagAttr "td" "colspan=3" (intag "i" (adj.s ! AF (ASuperl SupStrong) Nom)) ++
tdf (adj.s ! AF (ASuperl SupWeak) Nom)) ++
tr ( th (heading genitive_Parameter) ++
intagAttr "td" "colspan=3" (intag "i" (adj.s ! AF (ASuperl SupStrong) Gen)) ++
tdf (adj.s ! AF (ASuperl SupWeak) Gen))
)
} ;
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 : Cl -> Str = \cl ->
(S.mkUtt cl).s
++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent
;
inflectionVerb : Str -> CatSwe.V -> {s : Str} = \ex,verb ->
let
vfin : VForm -> Str = \f ->
verb.s ! f ;
gforms : Voice -> Str = \v ->
tdf (vfin (VI (VInfin v)))
++ tdf (vfin (VF (VPres v)))
++ tdf (vfin (VF (VPret v))) --# notpresent
++ tdf (vfin (VI (VSupin v))) --# notpresent
++ tdf (vfin (VF (VImper v)))
;
in {
s =
heading1 (heading verb_Category) ++
paragraph (intag "b" (heading exampleGr_N ++ ":") ++ intag "i" ex) ++
paragraph (frameTable (
tr (th "" ++ th (heading infinitive_Parameter) ++ th (heading present_Parameter) ++
th (heading past_Parameter) ++ th (heading supine_Parameter) ++ th (heading imperative_Parameter)) ++
tr (th (heading active_Parameter) ++ gforms Act) ++
tr (th (heading passive_Parameter) ++ gforms Pass)
)) ++
paragraph (
frameTable (
tr (th (heading present_Parameter ++ heading participle_Parameter) ++ tdf (verb.s ! (VI (VPtPres Sg Indef Nom)))) ++
tr (th (heading perfect_Parameter ++ heading participle_Parameter) ++ tdf (verb.s ! (VI (VPtPret (Strong (GSg Utr)) Nom))))
))
} ;
}

View File

@@ -0,0 +1,76 @@
--# -path=.:../abstract:../common
concrete TerminologySwe of Terminology = CatSwe ** open
ResSwe,
CommonScand,
ParadigmsSwe,
(G = GrammarSwe),
(S = SyntaxSwe),
(L = LexiconSwe),
Prelude,
HTML
in {
lincat
Category = G.N ;
ParameterType = G.N ;
Parameter = G.N ;
Heading = {s : Str} ;
lin
noun_Category = mkN "substantiv" ;
adjective_Category = mkN "adjektiv" ;
verb_Category = mkN "verb" ;
adverb_Category = mkN "adverb" ;
preposition_Category = mkN "preposition" ;
gender_ParameterType = mkN "genus" ;
singular_Parameter = mkN "singular" ;
plural_Parameter = mkN "plural" ;
definite_Parameter = mkN "bestämd" ;
indefinite_Parameter = mkN "obestämd" ;
masculine_Parameter = mkN "maskulin" ;
feminine_Parameter = mkN "feminin" ;
neuter_Parameter = mkN "neutrum" ;
uter_Parameter = mkN "utrum" ;
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" ;
active_Parameter = mkN "aktiv" ;
passive_Parameter = mkN "passiv" ;
present_Parameter = mkN "presens" ;
past_Parameter = mkN "preteritum" ;
future_Parameter = mkN "futur" ;
conditional_Parameter = mkN "konditionalis" ;
perfect_Parameter = mkN "perfekt" ;
supine_Parameter = mkN "supinum" ;
participle_Parameter = mkN "particip" ;
aux_verb_Parameter = mkN "hjälpverb" ;
positive_Parameter = mkN "positiv" ;
comparative_Parameter = mkN "komparativ" ;
superlative_Parameter = mkN "superlativ" ;
predicative_Parameter = mkN "predikativ" ;
nounHeading n = ss (n.s ! Sg ! Indef ! Nom) ;
lin
exampleGr_N = mkN "exempel" "exempel" ;
}