forked from GitHub/gf-core
completed Documentation modules for English, Swedish, Bulgarian, German, Finnish, French. The examples for Finnish, German and French could still be improved. The old parsing grammars are now restored. The new Translation grammar still don't have statistical model.
This commit is contained in:
@@ -6,6 +6,7 @@ abstract Documentation = Cat ** {
|
||||
cat
|
||||
Inflection ; -- inflection table
|
||||
Document ;
|
||||
Tag ;
|
||||
|
||||
fun
|
||||
InflectionN : N -> Inflection ;
|
||||
@@ -29,5 +30,6 @@ fun
|
||||
|
||||
fun
|
||||
MkDocument : String -> Inflection -> String -> Document ;
|
||||
MkTag : Inflection -> Tag ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
--# -path=.:../abstract:../common
|
||||
concrete DocumentationBul of Documentation = CatBul ** open
|
||||
ResBul,
|
||||
SyntaxBul,
|
||||
HTML in {
|
||||
|
||||
lincat
|
||||
Inflection = {s1,s2,s3 : Str} ;
|
||||
Inflection = {t : Str; s1,s2,s3 : Str} ;
|
||||
Document = {s : Str} ;
|
||||
Tag = {s : Str} ;
|
||||
|
||||
lin
|
||||
InflectionN n = {
|
||||
t = "същ" ;
|
||||
s1= heading1 ("Съществително"++
|
||||
case n.g of {
|
||||
AMasc Human => "(м.р.л.)" ;
|
||||
@@ -49,6 +50,7 @@ lin
|
||||
} ;
|
||||
|
||||
InflectionN2,InflectionN3 = \n -> {
|
||||
t = "същ" ;
|
||||
s1= heading1 ("Съществително "++
|
||||
case n.g of {
|
||||
AMasc Human => "(м.р.л.)" ;
|
||||
@@ -71,6 +73,7 @@ lin
|
||||
} ;
|
||||
|
||||
InflectionA, InflectionA2 = \a -> {
|
||||
t = "пр" ;
|
||||
s1= heading1 ("Прилагателно") ;
|
||||
s2= frameTable (
|
||||
tr (intagAttr "th" "rowspan=\"7\"" "ед.ч." ++
|
||||
@@ -93,20 +96,23 @@ lin
|
||||
} ;
|
||||
|
||||
InflectionAdv = \adv -> {
|
||||
t = "нар" ;
|
||||
s1= heading1 ("Наречие") ;
|
||||
s2= paragraph (adv.s) ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionPrep = \prep -> {
|
||||
t = "пр" ;
|
||||
s1= heading1 ("Предлог") ;
|
||||
s2= paragraph (prep.s) ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionV v = {
|
||||
t = "гл" ;
|
||||
s1= heading1 ("Глагол") ++
|
||||
"<подлог>" ++
|
||||
pp "подлог" ++
|
||||
case v.vtype of {
|
||||
VNormal => "" ;
|
||||
VMedial c => reflClitics ! c ;
|
||||
@@ -117,8 +123,9 @@ lin
|
||||
} ;
|
||||
|
||||
InflectionV2 v = {
|
||||
t = "гл" ;
|
||||
s1= heading1 ("Глагол") ++
|
||||
"<подлог>" ++
|
||||
pp "подлог" ++
|
||||
case v.vtype of {
|
||||
VNormal => "" ;
|
||||
VMedial c => reflClitics ! c ;
|
||||
@@ -126,14 +133,15 @@ lin
|
||||
} ++
|
||||
v.s ! Imperf ! VPres Sg P3 ++
|
||||
v.c2.s ++
|
||||
"<допълнение>";
|
||||
pp "допълнение";
|
||||
s2= inflVerb v ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionV3 v = {
|
||||
t = "гл" ;
|
||||
s1= heading1 ("Глагол") ++
|
||||
"<подлог>" ++
|
||||
pp "подлог" ++
|
||||
case v.vtype of {
|
||||
VNormal => "" ;
|
||||
VMedial c => reflClitics ! c ;
|
||||
@@ -141,15 +149,16 @@ lin
|
||||
} ++
|
||||
v.s ! Imperf ! VPres Sg P3 ++
|
||||
v.c2.s ++
|
||||
"<арг1>"++
|
||||
pp "арг1"++
|
||||
v.c3.s ++
|
||||
"<арг2>";
|
||||
pp "арг2";
|
||||
s2= inflVerb v ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionV2V v = {
|
||||
s1= "<подлог>" ++
|
||||
t = "гл" ;
|
||||
s1= pp "подлог" ++
|
||||
case v.vtype of {
|
||||
VNormal => "" ;
|
||||
VMedial c => reflClitics ! c ;
|
||||
@@ -157,15 +166,16 @@ lin
|
||||
} ++
|
||||
v.s ! Imperf ! VPres Sg P3 ++
|
||||
v.c2.s ++
|
||||
"<допълнение>"++
|
||||
pp "допълнение"++
|
||||
v.c3.s ++
|
||||
"да" ++ "<глагол>";
|
||||
"да" ++ pp "глагол";
|
||||
s2= inflVerb v ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionV2S v = {
|
||||
s1= "<подлог>" ++
|
||||
t = "гл" ;
|
||||
s1= pp "подлог" ++
|
||||
case v.vtype of {
|
||||
VNormal => "" ;
|
||||
VMedial c => reflClitics ! c ;
|
||||
@@ -173,15 +183,16 @@ lin
|
||||
} ++
|
||||
v.s ! Imperf ! VPres Sg P3 ++
|
||||
v.c2.s ++
|
||||
"<допълнение>"++
|
||||
pp "допълнение"++
|
||||
v.c3.s ++
|
||||
"че" ++ "<изречение>";
|
||||
"че" ++ pp "изречение";
|
||||
s2= inflVerb v ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionV2Q v = {
|
||||
s1= "<подлог>" ++
|
||||
t = "гл" ;
|
||||
s1= pp "подлог" ++
|
||||
case v.vtype of {
|
||||
VNormal => "" ;
|
||||
VMedial c => reflClitics ! c ;
|
||||
@@ -189,15 +200,16 @@ lin
|
||||
} ++
|
||||
v.s ! Imperf ! VPres Sg P3 ++
|
||||
v.c2.s ++
|
||||
"<допълнение>"++
|
||||
pp "допълнение"++
|
||||
v.c3.s ++
|
||||
"<въпрос>";
|
||||
pp "въпрос";
|
||||
s2= inflVerb v ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionV2A v = {
|
||||
s1= "<подлог>" ++
|
||||
t = "гл" ;
|
||||
s1= pp "подлог" ++
|
||||
case v.vtype of {
|
||||
VNormal => "" ;
|
||||
VMedial c => reflClitics ! c ;
|
||||
@@ -205,14 +217,15 @@ lin
|
||||
} ++
|
||||
v.s ! Imperf ! VPres Sg P3 ++
|
||||
v.c2.s ++
|
||||
"<допълнение>"++
|
||||
"<прилагателно>";
|
||||
pp "допълнение"++
|
||||
pp "прилагателно";
|
||||
s2= inflVerb v ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionVV = \v -> {
|
||||
s1= "<подлог>" ++
|
||||
t = "гл" ;
|
||||
s1= pp "подлог" ++
|
||||
case v.vtype of {
|
||||
VNormal => "" ;
|
||||
VMedial c => reflClitics ! c ;
|
||||
@@ -220,48 +233,51 @@ lin
|
||||
} ++
|
||||
v.s ! Imperf ! VPres Sg P3 ++
|
||||
case v.typ of {
|
||||
VVInf => "да" ++ "<глагол>";
|
||||
VVGerund => "<деепричастие>"
|
||||
VVInf => "да" ++ pp "глагол";
|
||||
VVGerund => pp "деепричастие"
|
||||
};
|
||||
s2= inflVerb v ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionVS = \v -> {
|
||||
s1= "<подлог>" ++
|
||||
t = "гл" ;
|
||||
s1= pp "подлог" ++
|
||||
case v.vtype of {
|
||||
VNormal => "" ;
|
||||
VMedial c => reflClitics ! c ;
|
||||
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
|
||||
} ++
|
||||
v.s ! Imperf ! VPres Sg P3 ++
|
||||
"че" ++ "<изречение>";
|
||||
"че" ++ pp "изречение";
|
||||
s2= inflVerb v ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionVQ = \v -> {
|
||||
s1= "<подлог>" ++
|
||||
t = "гл" ;
|
||||
s1= pp "подлог" ++
|
||||
case v.vtype of {
|
||||
VNormal => "" ;
|
||||
VMedial c => reflClitics ! c ;
|
||||
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
|
||||
} ++
|
||||
v.s ! Imperf ! VPres Sg P3 ++
|
||||
"<въпрос>";
|
||||
pp "въпрос";
|
||||
s2= inflVerb v ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionVA = \v -> {
|
||||
s1= "<подлог>" ++
|
||||
t = "гл" ;
|
||||
s1= pp "подлог" ++
|
||||
case v.vtype of {
|
||||
VNormal => "" ;
|
||||
VMedial c => reflClitics ! c ;
|
||||
VPhrasal c => personalClitics ! c ! GSg Masc ! P3
|
||||
} ++
|
||||
v.s ! Imperf ! VPres Sg P3 ++
|
||||
"<прилагателно>";
|
||||
pp "прилагателно";
|
||||
s2= inflVerb v ;
|
||||
s3= ""
|
||||
} ;
|
||||
@@ -367,9 +383,12 @@ oper
|
||||
td (v.s ! aspect ! f (APl Def)))
|
||||
) ;
|
||||
} ;
|
||||
|
||||
|
||||
pp : Str -> Str = \s -> "<"+s+">";
|
||||
|
||||
lin
|
||||
MkDocument b i e = {s = i.s1 ++ b.s ++ i.s2 ++ i.s3 ++ e.s} ;
|
||||
MkTag i = {s = i.t} ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
--# -path=alltenses:../english:../abstract
|
||||
--# -path=alltenses:../english:../translator:../abstract
|
||||
concrete ParseBul of ParseEngAbs =
|
||||
TenseX - [IAdv, CAdv],
|
||||
CatBul,
|
||||
@@ -19,8 +19,8 @@ concrete ParseBul of ParseEngAbs =
|
||||
VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
||||
ComplSlashPartLast,
|
||||
ClSlash, RCl, EmptyRelSlash],
|
||||
|
||||
DictEngBul **
|
||||
DocumentationBul,
|
||||
DictionaryBul **
|
||||
open ResBul, Prelude in {
|
||||
|
||||
flags
|
||||
|
||||
@@ -1,7 +1,184 @@
|
||||
--# -path=.:../abstract:../common
|
||||
concrete DocumentationEng of Documentation = CatEng ** open
|
||||
ResEng,
|
||||
HTML in {
|
||||
|
||||
-- documentation of English in English: the default introduced in LangEng
|
||||
lincat
|
||||
Inflection = {t : Str; s1,s2 : Str} ;
|
||||
Document = {s : Str} ;
|
||||
Tag = {s : Str} ;
|
||||
|
||||
concrete DocumentationEng of Documentation = CatEng **
|
||||
DocumentationEngFunctor with (Terminology = TerminologyEng) ;
|
||||
lin
|
||||
InflectionN, InflectionN2, InflectionN3 = \noun -> {
|
||||
t = "n" ;
|
||||
s1 = heading1 ("Noun" ++ case noun.g of {
|
||||
Neutr => "";
|
||||
Masc => "(masc)";
|
||||
Fem => "(fem)"
|
||||
}) ;
|
||||
s2 = frameTable (
|
||||
tr (th "" ++ th "nom" ++ th "gen") ++
|
||||
tr (th "sg" ++ td (noun.s ! Sg ! Nom) ++ td (noun.s ! Sg ! Gen)) ++
|
||||
tr (th "pl" ++ td (noun.s ! Pl ! Nom) ++ td (noun.s ! Pl ! Gen))
|
||||
)
|
||||
} ;
|
||||
|
||||
InflectionA, InflectionA2 = \adj -> {
|
||||
t = "a" ;
|
||||
s1 = heading1 "Adjective" ;
|
||||
s2 = frameTable (
|
||||
tr (th "" ++ th "nom" ++ th "gen") ++
|
||||
tr (th "posit" ++ td (adj.s ! AAdj Posit Nom) ++ td (adj.s ! AAdj Posit Gen)) ++
|
||||
tr (th "compar" ++ td (adj.s ! AAdj Compar Nom) ++ td (adj.s ! AAdj Compar Gen)) ++
|
||||
tr (th "superl" ++ td (adj.s ! AAdj Superl Nom) ++ td (adj.s ! AAdj Superl Gen))
|
||||
) ++
|
||||
heading1 "Adverb" ++
|
||||
paragraph (adj.s ! AAdv)
|
||||
} ;
|
||||
|
||||
InflectionAdv = \adv -> {
|
||||
t = "adv" ;
|
||||
s1= heading1 "Adverb" ;
|
||||
s2= paragraph (adv.s) ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionPrep = \prep -> {
|
||||
t = "prep" ;
|
||||
s1= heading1 "Preposition" ;
|
||||
s2= paragraph (prep.s) ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
InflectionV v = {
|
||||
t = "v" ;
|
||||
s1= heading1 "Verb" ++
|
||||
paragraph (pp "subject" ++ v.s ! VInf ++ v.p) ;
|
||||
s2= inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2 v = {
|
||||
t = "v" ;
|
||||
s1= heading1 "Verb" ++
|
||||
paragraph (pp "subject" ++
|
||||
v.s ! VInf ++ v.p ++ v.c2 ++
|
||||
pp "object") ;
|
||||
s2= inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV3 v = {
|
||||
t = "v" ;
|
||||
s1= heading1 "Verb" ++
|
||||
paragraph (pp "subject" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
v.c2 ++ pp "arg1" ++
|
||||
v.c3 ++ pp "arg2") ;
|
||||
s2= inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2V v = {
|
||||
t = "v" ;
|
||||
s1= heading1 "Verb" ++
|
||||
paragraph (pp "subject" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
v.c2 ++ pp "object" ++
|
||||
v.c3 ++ case v.typ of {
|
||||
VVAux => pp "verb" ;
|
||||
VVInf => "to" ++ pp "verb" ;
|
||||
VVPresPart => pp "verb+ing"
|
||||
}) ;
|
||||
s2= inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2S v = {
|
||||
t = "v" ;
|
||||
s1= heading1 "Verb" ++
|
||||
paragraph (pp "subject" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
v.c2 ++ pp "object" ++
|
||||
"that" ++ pp "sentence") ;
|
||||
s2= inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2Q v = {
|
||||
t = "v" ;
|
||||
s1= heading1 "Verb" ++
|
||||
paragraph (pp "subject" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
pp "question") ;
|
||||
s2= inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2A v = {
|
||||
t = "v" ;
|
||||
s1= heading1 "Verb" ++
|
||||
paragraph (pp "subject" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
v.c2 ++ pp "object" ++
|
||||
pp "adjective") ;
|
||||
s2= inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVV v = {
|
||||
t = "v" ;
|
||||
s1= heading1 "Verb" ++
|
||||
paragraph (pp "subject" ++
|
||||
v.s ! VVF VInf ++ v.p ++
|
||||
case v.typ of {
|
||||
VVAux => pp "verb" ;
|
||||
VVInf => "to" ++ pp "verb" ;
|
||||
VVPresPart => pp "verb+ing"
|
||||
}) ;
|
||||
s2= frameTable (
|
||||
tr (th "infitive" ++ td (v.s ! VVF VInf)) ++
|
||||
tr (th "present" ++ td (v.s ! VVF VPres ++ " " ++ v.s ! VVPresNeg)) ++
|
||||
tr (th "past" ++ td (v.s ! VVF VPast ++ " " ++ v.s ! VVPastNeg)) ++ --# notpresent
|
||||
tr (th "past part." ++ td (v.s ! VVF VPPart)) ++
|
||||
tr (th "present part." ++ td (v.s ! VVF VPresPart))
|
||||
)
|
||||
} ;
|
||||
|
||||
InflectionVS v = {
|
||||
t = "v" ;
|
||||
s1= heading1 "Verb" ++
|
||||
paragraph (pp "subject" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
"that" ++ pp "sentence") ;
|
||||
s2= inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVQ v = {
|
||||
t = "v" ;
|
||||
s1= heading1 "Verb" ++
|
||||
paragraph (pp "subject" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
pp "question") ;
|
||||
s2= inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVA v = {
|
||||
t = "v" ;
|
||||
s1= heading1 "Verb" ++
|
||||
paragraph (pp "subject" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
pp "adjective") ;
|
||||
s2= inflVerb v
|
||||
} ;
|
||||
|
||||
oper
|
||||
inflVerb : Verb -> Str = \verb ->
|
||||
frameTable (
|
||||
tr (th "infitive" ++ td (verb.s ! VInf)) ++
|
||||
tr (th "present" ++ td (verb.s ! VPres)) ++
|
||||
tr (th "past" ++ td (verb.s ! VPast)) ++ --# notpresent
|
||||
tr (th "past part." ++ td (verb.s ! VPPart)) ++
|
||||
tr (th "present part." ++ td (verb.s ! VPresPart))
|
||||
) ;
|
||||
|
||||
pp : Str -> Str = \s -> "<"+s+">";
|
||||
|
||||
lin
|
||||
MkDocument b i e = {s = i.s1 ++ paragraph b.s ++ i.s2 ++ paragraph e.s} ;
|
||||
MkTag i = {s = i.t} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
--# -path=.:../abstract
|
||||
--# -path=.:../abstract:../translator
|
||||
|
||||
concrete ParseEng of ParseEngAbs =
|
||||
TenseX - [Pol, PNeg, PPos],
|
||||
@@ -23,7 +23,7 @@ concrete ParseEng of ParseEngAbs =
|
||||
ComplSlashPartLast,
|
||||
ClSlash, RCl, EmptyRelSlash, VS, V2S, ComplBareVS, SlashBareV2S],
|
||||
|
||||
DictEng **
|
||||
DictionaryEng **
|
||||
open MorphoEng, ResEng, ParadigmsEng, (S = SentenceEng), (E = ExtraEng), Prelude in {
|
||||
|
||||
flags
|
||||
@@ -156,68 +156,4 @@ lin
|
||||
PPos = {s = [] ; p = CPos} ;
|
||||
PNeg = {s = [] ; p = CNeg True} | {s = [] ; p = CNeg False} ;
|
||||
|
||||
lincat
|
||||
Feat = Str;
|
||||
lin FeatN, FeatN2 = \n ->
|
||||
case n.g of {
|
||||
Neutr => "";
|
||||
Masc => "(masc)";
|
||||
Fem => "(fem)"
|
||||
};
|
||||
FeatV = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VInf ++ v.p ;
|
||||
FeatV2 = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VInf ++ v.p ++ v.c2 ++
|
||||
"<object>";
|
||||
FeatV3 = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
v.c2 ++ "<arg1>" ++
|
||||
v.c3 ++ "<arg2>";
|
||||
FeatV2V = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
v.c2 ++ "<object>" ++
|
||||
v.c3 ++ case v.typ of {
|
||||
VVAux => "<verb>" ;
|
||||
VVInf => "to" ++ "<verb>" ;
|
||||
VVPresPart => "<verb+ing>"
|
||||
};
|
||||
FeatV2S = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
v.c2 ++ "<object>" ++
|
||||
"that" ++ "<sentence>";
|
||||
FeatV2Q = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
v.c2 ++ "<object>" ++
|
||||
"that" ++ "<question>";
|
||||
FeatV2A = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
v.c2 ++ "<object>" ++
|
||||
"<adjective>";
|
||||
FeatVV = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VVF VInf ++ v.p ++
|
||||
case v.typ of {
|
||||
VVAux => "<verb>" ;
|
||||
VVInf => "to" ++ "<verb>" ;
|
||||
VVPresPart => "<verb+ing>"
|
||||
};
|
||||
FeatVS = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
"that" ++ "<sentence>";
|
||||
FeatVQ = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
"<question>";
|
||||
FeatVA = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VInf ++ v.p ++
|
||||
"<adjective>";
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ abstract ParseEngAbs =
|
||||
Temp, Tense, Pol, Conj, VPS, ListVPS, S, Num, CN, RP, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS, GenRP,
|
||||
VPI, ListVPI, VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV, ComplSlashPartLast,
|
||||
ClSlash, RCl, EmptyRelSlash, VS, V2S, ComplBareVS, SlashBareV2S],
|
||||
DictEngAbs ** {
|
||||
Dictionary ** {
|
||||
|
||||
flags
|
||||
startcat=Phr;
|
||||
|
||||
@@ -14,165 +14,280 @@ in {
|
||||
|
||||
|
||||
lincat
|
||||
Inflection = {s : Str} ;
|
||||
Inflection = {t : Str; s1,s2 : Str} ;
|
||||
Document = {s : Str} ;
|
||||
|
||||
Tag = {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)
|
||||
InflectionN, InflectionN2, InflectionN3 = \noun -> {
|
||||
t = "s" ;
|
||||
s1 = heading1 (heading noun_Category) ;
|
||||
s2 = inflNoun (\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)
|
||||
InflectionA, InflectionA2 = \adj -> {
|
||||
t = "a" ;
|
||||
s1 = heading1 (heading adjective_Category) ;
|
||||
s2 = inflNoun (\nf -> (snoun2nounSep {s = \\f => adj.s ! Posit ! sAN f ; h = adj.h}).s ! nf) ++
|
||||
heading2 (heading comparative_Parameter) ++
|
||||
inflNoun (\nf -> (snoun2nounSep {s = \\f => adj.s ! Compar ! sAN f ; h = adj.h}).s ! nf) ++
|
||||
heading2 (heading superlative_Parameter) ++
|
||||
inflNoun (\nf -> (snoun2nounSep {s = \\f => adj.s ! Superl ! sAN f ; h = adj.h}).s ! nf)
|
||||
} ;
|
||||
|
||||
InflectionAdv adv = {
|
||||
t = "adv" ;
|
||||
s1 = heading1 (heading adverb_Category) ;
|
||||
s2 = paragraph adv.s
|
||||
} ;
|
||||
|
||||
InflectionV v = inflectionVerb [] v ;----(verbExample (S.mkCl S.she_NP (lin V v))) v ;
|
||||
InflectionV2 v = inflectionVerb [] v ;----(verbExample (S.mkCl S.she_NP (lin V2 v) S.something_NP)) (lin V v) ;
|
||||
InflectionVV v = inflectionVerb [] v ;----(verbExample (S.mkCl S.she_NP (lin VV v) (S.mkVP (L.sleep_V)))) (lin V v) ;
|
||||
InflectionV2V v = inflectionVerb [] v ;----(verbExample (S.mkCl S.she_NP (lin V2V v) S.we_NP (S.mkVP (L.sleep_V)))) (lin V v) ;
|
||||
InflectionPrep p = {
|
||||
t = "prep" ;
|
||||
s1 = heading1 (heading preposition_Category) ;
|
||||
s2 = paragraph ((S.mkAdv (lin Prep p) S.it_NP).s ++ ";" ++ (S.mkAdv (lin Prep p) S.we_NP).s)
|
||||
} ;
|
||||
|
||||
MkDocument b i e = ss (paragraph b.s ++ i.s ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
||||
InflectionV v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v)) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2 v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v S.something_NP)) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV3 v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v S.something_NP S.something_NP)) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2V v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v S.we_NP (S.mkVP (L.sleep_V)))) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2S v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v S.we_NP (lin S (ss "...")))) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2Q v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v S.we_NP (lin QS (ss "...")))) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2A v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v S.we_NP L.beautiful_A)) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVV v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v (S.mkVP (L.sleep_V)))) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVS v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v (lin S (ss "...")))) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVQ v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v (lin QS (ss "...")))) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVA v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v L.beautiful_A)) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
oper
|
||||
verbExample : CatFin.Cl -> Str = \cl -> (S.mkUtt cl).s ;
|
||||
|
||||
inflectionVerb : Str -> CatFin.V -> {s : Str} = \ex,verb0 ->
|
||||
inflVerb : CatFin.V -> Str = \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 ++
|
||||
verb.s ! f ;
|
||||
|
||||
nounNounHeading : Parameter -> Parameter -> Str = \n1,n2 ->
|
||||
(S.mkUtt (G.PossNP (S.mkCN n1) (S.mkNP (snoun2nounSep n2)))).s ;
|
||||
in
|
||||
heading3 (nounNounHeading present_Parameter indicative_Parameter) ++
|
||||
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) ++
|
||||
tr (th "" ++
|
||||
th (heading singular_Parameter) ++
|
||||
th (heading plural_Parameter)
|
||||
++ th (heading passive_Parameter) --# notpresent
|
||||
) ++
|
||||
tr (th "1.p" ++ td (vfin (Presn Sg P1)) ++ td (vfin (Presn Pl P1))
|
||||
++ intagAttr "td" "rowspan=3" (vfin (PassPresn True)) --# notpresent
|
||||
) ++
|
||||
tr (th "2.p" ++ td (vfin (Presn Sg P2)) ++ td (vfin (Presn Pl P2))) ++
|
||||
tr (th "3.p" ++ td (vfin (Presn Sg P3)) ++ td (vfin (Presn Pl P3))) ++
|
||||
tr (th (heading negative_Parameter) ++
|
||||
intagAttr "td" "colspan=2 align=center" (vfin (Imper Sg)) ++ td (vfin (PassPresn False)))
|
||||
) ++
|
||||
heading3 (nounNounHeading past_Parameter indicative_Parameter) ++
|
||||
frameTable (
|
||||
tr (th "" ++
|
||||
th (heading singular_Parameter) ++
|
||||
th (heading plural_Parameter)
|
||||
++ th (heading passive_Parameter) --# notpresent
|
||||
) ++
|
||||
tr (th "1.p" ++ td (vfin (Impf Sg P1)) ++ td (vfin (Impf Pl P1))
|
||||
++ intagAttr "td" "rowspan=3" (vfin (PassImpf True))) ++
|
||||
tr (th "2.p" ++ td (vfin (Impf Sg P2)) ++ td (vfin (Impf Pl P2))) ++
|
||||
tr (th "3.p" ++ td (vfin (Impf Sg P3)) ++ td (vfin (Impf Pl P3))) ++
|
||||
tr (th (heading negative_Parameter) ++
|
||||
td (vfin (PastPartAct (AN (NCase Sg Nom)))) ++
|
||||
td (vfin (PastPartAct (AN (NCase Pl Nom)))) ++
|
||||
td (vfin (PassImpf False)))
|
||||
) ++
|
||||
heading3 (nounNounHeading present_Parameter conditional_Parameter) ++
|
||||
frameTable (
|
||||
tr (th "" ++
|
||||
th (heading singular_Parameter) ++
|
||||
th (heading plural_Parameter)
|
||||
++ th (heading passive_Parameter) --# notpresent
|
||||
) ++
|
||||
tr (th "1.p" ++ td (vfin (Condit Sg P1)) ++ td (vfin (Condit Pl P1))
|
||||
++ intagAttr "td" "rowspan=3" (vfin (PassCondit True)) --# notpresent
|
||||
) ++
|
||||
tr (th "2.p" ++ td (vfin (Condit Sg P2)) ++ td (vfin (Condit Pl P2))) ++
|
||||
tr (th "3.p" ++ td (vfin (Condit Sg P3)) ++ td (vfin (Condit Pl P3))) ++
|
||||
tr (th (heading negative_Parameter) ++
|
||||
intagAttr "td" "colspan=2 align=center" (vfin (Condit Sg P3)) ++ td (vfin (PassCondit False)))
|
||||
) ++
|
||||
heading3 (nounNounHeading present_Parameter potential_Parameter) ++
|
||||
frameTable (
|
||||
tr (th "" ++
|
||||
th (heading singular_Parameter) ++
|
||||
th (heading plural_Parameter)
|
||||
++ th (heading passive_Parameter) --# notpresent
|
||||
) ++
|
||||
tr (th "1.p" ++ td (vfin (Potent Sg P1)) ++ td (vfin (Potent Pl P1))
|
||||
++ intagAttr "td" "rowspan=3" (vfin (PassPotent True)) --# notpresent
|
||||
) ++
|
||||
tr (th "2.p" ++ td (vfin (Potent Sg P2)) ++ td (vfin (Potent Pl P2))) ++
|
||||
tr (th "3.p" ++ td (vfin (Potent Sg P3)) ++ td (vfin (Potent Pl P3))) ++
|
||||
tr (th (heading negative_Parameter) ++
|
||||
intagAttr "td" "colspan=2 align=center" (vfin PotentNeg) ++ td (vfin (PassPotent False)))
|
||||
) ++
|
||||
heading3 (nounNounHeading present_Parameter imperative_Parameter) ++
|
||||
frameTable (
|
||||
tr (th "" ++
|
||||
th (heading singular_Parameter) ++
|
||||
th (heading plural_Parameter)
|
||||
++ th (heading passive_Parameter) --# notpresent
|
||||
) ++
|
||||
tr (th "1.p" ++ td "" ++ td (vfin ImperP1Pl)
|
||||
++ intagAttr "td" "rowspan=3" (vfin (PassImper True))) ++
|
||||
tr (th "2.p" ++ td (vfin (Imper Sg)) ++ td (vfin (Imper Pl))) ++
|
||||
tr (th "3.p" ++ td (vfin (ImperP3 Sg)) ++ td (vfin (ImperP3 Pl))) ++
|
||||
tr (th (heading negative_Parameter) ++
|
||||
td (vfin (Imper Sg)) ++
|
||||
td (vfin ImpNegPl) ++
|
||||
td (vfin (PassImper False)))
|
||||
) ++
|
||||
heading2 (nounPluralHeading nominal_form_ParameterType).s ++
|
||||
heading3 (heading infinitive_Parameter) ++
|
||||
frameTable (
|
||||
tr (intagAttr "th" "rowspan=2" "1" ++
|
||||
th (heading short_Parameter) ++ ---
|
||||
td (vfin (Inf Inf1))) ++
|
||||
tr (th (heading long_Parameter) ++ ---
|
||||
td (vfin (Inf Inf1Long) ++ BIND ++ "(ni)")) ++
|
||||
tr (intagAttr "th" "rowspan=2" ("2." ++ heading active_Parameter) ++
|
||||
th (heading inessive_Parameter) ++
|
||||
td (vfin (Inf Inf2Iness))) ++
|
||||
tr (th (heading instructive_Parameter) ++
|
||||
td (vfin (Inf Inf2Instr))) ++
|
||||
tr (th ("2." ++ heading passive_Parameter) ++
|
||||
th (heading inessive_Parameter) ++
|
||||
td (vfin (Inf Inf2InessPass))) ++
|
||||
|
||||
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) ++ td (vfin (Inf Inf3Iness))) ++
|
||||
tr (th (heading elative_Parameter) ++ td (vfin (Inf Inf3Elat))) ++
|
||||
tr (th (heading illative_Parameter) ++ td (vfin (Inf Inf3Illat))) ++
|
||||
tr (th (heading adessive_Parameter) ++ td (vfin (Inf Inf3Adess))) ++
|
||||
tr (th (heading abessive_Parameter) ++ td (vfin (Inf Inf3Abess))) ++
|
||||
tr (th (heading instructive_Parameter) ++ td (vfin (Inf Inf3Instr))) ++
|
||||
tr (th (heading instructive_Parameter ++ "pass.") ++ td (vfin (Inf Inf3InstrPass))) ++
|
||||
|
||||
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) ++ td (vfin (Inf Inf4Nom))) ++
|
||||
tr (th (heading partitive_Parameter) ++ td (vfin (Inf Inf4Part))) ++
|
||||
|
||||
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." ++ td (vfin (Inf Inf5) ++ BIND ++ "(ni)"))
|
||||
) ++
|
||||
heading3 (heading participle_Parameter) ++
|
||||
frameTable (
|
||||
tr (intagAttr "th" "rowspan=2" (heading present_Parameter) ++
|
||||
th (heading active_Parameter) ++
|
||||
td (vfin (PresPartAct (AN (NCase Sg Nom))))) ++
|
||||
tr (th (heading passive_Parameter) ++
|
||||
td (vfin (PresPartPass (AN (NCase Sg Nom))))) ++
|
||||
|
||||
tr (intagAttr "th" "colspan=2" "5." ++ tdf (vfin (Inf Inf5) ++ BIND ++ "(ni)")) ++
|
||||
tr (intagAttr "th" "rowspan=2" (heading perfect_Parameter) ++
|
||||
th (heading active_Parameter) ++
|
||||
td (vfin (PastPartAct (AN (NCase Sg Nom))))) ++
|
||||
|
||||
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 (th (heading passive_Parameter) ++
|
||||
td (vfin (PastPartPass (AN (NCase Sg Nom))))) ++
|
||||
|
||||
tr (intagAttr "th" "rowspan=2" (heading perfect_Parameter) ++
|
||||
th (heading active_Parameter) ++
|
||||
tdf (vfin (PastPartAct (AN (NCase Sg Nom))))) ++
|
||||
tr (intagAttr "th" "colspan=2" (heading agent_Parameter) ++
|
||||
td (vfin (AgentPart (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)))))
|
||||
|
||||
)
|
||||
|
||||
} ;
|
||||
inflNoun : (NForm -> Str) -> Str = \nouns ->
|
||||
frameTable (
|
||||
tr (th "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter) ) ++
|
||||
tr (th (heading nominative_Parameter) ++ td (nouns (NCase Sg Nom)) ++ td (nouns (NCase Pl Nom))) ++
|
||||
tr (th (heading genitive_Parameter) ++ td (nouns (NCase Sg Gen)) ++ td (nouns (NCase Pl Gen))) ++
|
||||
tr (th (heading partitive_Parameter) ++ td (nouns (NCase Sg Part)) ++ td (nouns (NCase Pl Part))) ++
|
||||
tr (th (heading translative_Parameter) ++ td (nouns (NCase Sg Transl)) ++ td (nouns (NCase Pl Transl))) ++
|
||||
tr (th (heading essive_Parameter) ++ td (nouns (NCase Sg Ess)) ++ td (nouns (NCase Pl Ess))) ++
|
||||
tr (th (heading inessive_Parameter) ++ td (nouns (NCase Sg Iness)) ++ td (nouns (NCase Pl Iness))) ++
|
||||
tr (th (heading elative_Parameter) ++ td (nouns (NCase Sg Elat)) ++ td (nouns (NCase Pl Elat))) ++
|
||||
tr (th (heading illative_Parameter) ++ td (nouns (NCase Sg Illat)) ++ td (nouns (NCase Pl Illat))) ++
|
||||
tr (th (heading adessive_Parameter) ++ td (nouns (NCase Sg Adess)) ++ td (nouns (NCase Pl Adess))) ++
|
||||
tr (th (heading ablative_Parameter) ++ td (nouns (NCase Sg Ablat)) ++ td (nouns (NCase Pl Ablat))) ++
|
||||
tr (th (heading allative_Parameter) ++ td (nouns (NCase Sg Allat)) ++ td (nouns (NCase Pl Allat))) ++
|
||||
tr (th (heading abessive_Parameter) ++ td (nouns (NCase Sg Abess)) ++ td (nouns (NCase Pl Abess))) ++
|
||||
tr (th (heading comitative_Parameter) ++ td "" ++ td (nouns (NComit))) ++
|
||||
tr (th (heading instructive_Parameter) ++ td "" ++ td (nouns (NInstruct)))
|
||||
) ;
|
||||
|
||||
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))
|
||||
} ;
|
||||
MkDocument b i e = ss (i.s1 ++ paragraph b.s ++ i.s2 ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
||||
MkTag i = ss (i.t) ;
|
||||
|
||||
}
|
||||
|
||||
@@ -93,4 +93,4 @@ lin
|
||||
formGF_N = mkN "muoto" ;
|
||||
exampleGr_N = mkN "esimerkki" ;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
--# -path=.:..:../../abstract:../../common:../../api:../../english:../kotus
|
||||
--# -path=.:..:../../abstract:../../common:../../api:../../english:../kotus:../../translator
|
||||
|
||||
concrete ParseFin of ParseEngAbs =
|
||||
TenseX, ---- TODO add potential forms
|
||||
@@ -23,7 +23,7 @@ concrete ParseFin of ParseEngAbs =
|
||||
ExtraFin [NP, Quant, VPSlash, VP, Tense, GenNP, PassVPSlash, Voc, RP, GenRP, PassVPSlash, PassAgentVPSlash,
|
||||
Temp, Tense, Pol, Conj, VPS, ListVPS, S, MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS,
|
||||
VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV]
|
||||
, DictEngFin
|
||||
, DictionaryFin
|
||||
**
|
||||
open MorphoFin, ResFin, ParadigmsFin, SyntaxFin, StemFin, (E = ExtraFin), (G = GrammarFin), Prelude in {
|
||||
|
||||
@@ -38,7 +38,7 @@ lin
|
||||
----------------------
|
||||
|
||||
lin
|
||||
ComplVV v ant pol vp =
|
||||
{- ComplVV v ant pol vp =
|
||||
insertObj
|
||||
(\\_,b,a => infVPGen pol.p v.sc b a vp v.vi)
|
||||
(predSV {s = v.s ;
|
||||
@@ -49,7 +49,7 @@ lin
|
||||
h = v.h ; p = v.p
|
||||
}
|
||||
) ;
|
||||
|
||||
-}
|
||||
|
||||
---- what is this...
|
||||
myself_NP = mkPronounGen False "itse" "itsen" "itseä" "itsenä" "itseen" Sg P1 ** {isPron = True ; isNeg = False} ;
|
||||
@@ -104,10 +104,10 @@ lin
|
||||
isNeg = quant.isNeg
|
||||
} ;
|
||||
|
||||
SlashV2V v ant p vp =
|
||||
{- SlashV2V v ant p vp =
|
||||
insertObj (\\_,b,a => infVP v.sc b a vp v.vi) (predSV v) ** {c2 = v.c2} ; ----
|
||||
---- insertObj (\\_,b,a => infVPGen p.p v.sc b a vp v.vi) (predSV v) ** {c2 = v.c2} ;
|
||||
|
||||
-}
|
||||
CompS s = {s = \\_ => "että" ++ s.s} ; -- S -> Comp ---- what are these expected to do ? 29/3/2013
|
||||
CompVP ant pol vp = {s = \\a => infVPGen pol.p vp.s.sc Pos a vp Inf1} ; -- VP -> Comp
|
||||
|
||||
@@ -134,32 +134,14 @@ lin
|
||||
SlashVPIV2V v pol vpi = -- : V2V -> Pol -> VPI -> VPSlash ;
|
||||
insertObj (\\_,b,a => vpi.s ! v.vi) (predSV v) ** {c2 = v.c2} ;
|
||||
|
||||
VPSlashVS v vp = -- : VS -> VP -> VPSlash ; -- hän sanoo (minun) menevän (!) ---- menneen ?
|
||||
{- VPSlashVS v vp = -- : VS -> VP -> VPSlash ; -- hän sanoo (minun) menevän (!) ---- menneen ?
|
||||
insertObj (\\_,b,a => infVP v.sc b a vp InfPresPart) (predSV v) **
|
||||
{c2 = {c = NPCase Gen ; s = \\_ => [] ; h = Back ; isPre = True}} ;
|
||||
|
||||
-}
|
||||
-- SlashSlashV2V v ant pol vps = -- : V2V -> Ant -> Pol -> VPSlash -> VPSlash ; --- not implemented in Eng so far
|
||||
-- insertObj (\\_,b,a => infVPGen pol.p v.sc b a vps v.vi) (predSV v) ** {c2 = v.c2} ; --- or vps.c2 ??
|
||||
|
||||
--in Verb, SlashV2VNP : V2V -> NP -> VPSlash -> VPSlash
|
||||
|
||||
---- these will be obsolete
|
||||
lincat
|
||||
NDisplay = {s : NForm => Str} ;
|
||||
ADisplay = {s : Degree => NForm => Str} ;
|
||||
VDisplay = {s : VForm => Str} ;
|
||||
|
||||
lin
|
||||
DisplayN n = snoun2nounSep n ;
|
||||
DisplayA a = {
|
||||
s = table {
|
||||
Posit => (snoun2nounSep {s = \\f => a.s ! Posit ! sAN f ; h = a.h}).s ;
|
||||
Compar => (snoun2nounSep {s = \\f => a.s ! Compar ! sAN f ; h = a.h}).s ;
|
||||
Superl => (snoun2nounSep {s = \\f => a.s ! Superl ! sAN f ; h = a.h}).s
|
||||
}
|
||||
} ;
|
||||
|
||||
DisplayV v = sverb2verbSep v ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -14,43 +14,122 @@ in {
|
||||
|
||||
|
||||
lincat
|
||||
Inflection = {s : Str} ;
|
||||
Inflection = {t : Str; s1,s2 : Str} ;
|
||||
Document = {s : Str} ;
|
||||
Tag = {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))
|
||||
))
|
||||
} ;
|
||||
InflectionN, InflectionN3, InflectionN3 = \noun -> {
|
||||
t = "n" ;
|
||||
s1 = heading1 (heading noun_Category ++
|
||||
case noun.g of {
|
||||
Masc => "("+heading masculine_Parameter+")" ;
|
||||
Fem => "("+heading feminine_Parameter+")"
|
||||
}) ;
|
||||
s2 = frameTable (
|
||||
tr (th (heading singular_Parameter) ++ th (heading plural_Parameter)) ++
|
||||
tr (td (noun.s ! Sg) ++ td (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)))
|
||||
InflectionA, InflectionA2 = \adj -> {
|
||||
t = "a" ;
|
||||
s1 = heading1 (nounHeading adjective_Category).s ;
|
||||
s2 = frameTable (
|
||||
tr (th "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter)) ++
|
||||
tr (th (heading masculine_Parameter) ++ td (adj.s ! Posit ! (AF Masc Sg)) ++ td (adj.s ! Posit ! (AF Masc Pl))) ++
|
||||
tr (th (heading feminine_Parameter) ++ td (adj.s ! Posit ! (AF Fem Sg)) ++ td (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) ;
|
||||
} ;
|
||||
|
||||
MkDocument b i e = ss (paragraph e.s ++ i.s ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
||||
InflectionAdv adv = {
|
||||
t = "adv" ;
|
||||
s1 = heading1 "Adverbe" ;
|
||||
s2 = paragraph adv.s
|
||||
} ;
|
||||
|
||||
InflectionPrep p = {
|
||||
t = "prep" ;
|
||||
s1 = heading1 "Préposition" ;
|
||||
s2 = paragraph p.s
|
||||
} ;
|
||||
|
||||
InflectionV v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v)) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2 v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v S.something_NP)) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV3 v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v S.something_NP S.something_NP)) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2V v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP (lin V2V v) S.we_NP (S.mkVP (L.sleep_V)))) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2S v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2Q v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2A v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVV v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v (S.mkVP (L.sleep_V)))) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVS v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVQ v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVA v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
MkDocument b i e = ss (i.s1 ++ paragraph b.s ++ i.s2 ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
||||
MkTag i = ss i.t ;
|
||||
|
||||
oper
|
||||
verbExample : CatFre.Cl -> Str = \cl ->
|
||||
@@ -58,64 +137,76 @@ oper
|
||||
++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent
|
||||
;
|
||||
|
||||
inflectionVerb : Str -> CatFre.V -> {s : Str} = \ex,verb ->
|
||||
inflVerb : Verb -> Str = \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
|
||||
;
|
||||
ttable : TMood -> Str = \tense ->
|
||||
frameTable (
|
||||
tr (th "" ++
|
||||
th (heading singular_Parameter) ++
|
||||
th (heading plural_Parameter)) ++
|
||||
tr (th "1.p" ++
|
||||
td (vfin (VFin tense Sg P1)) ++
|
||||
td (vfin (VFin tense Pl P1))) ++
|
||||
tr (th "2.p" ++
|
||||
td (vfin (VFin tense Sg P2)) ++
|
||||
td (vfin (VFin tense Pl P2))) ++
|
||||
tr (th "3.p" ++
|
||||
td (vfin (VFin tense Sg P3)) ++
|
||||
td (vfin (VFin tense Pl P3)))
|
||||
) ;
|
||||
|
||||
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 ++
|
||||
ttable2 : (Mood -> TMood) -> Str = \f ->
|
||||
frameTable (
|
||||
tr (intagAttr "th" "colspan=2" "" ++
|
||||
th (heading indicative_Parameter) ++
|
||||
th (heading conjunctive_Parameter)) ++
|
||||
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) ++
|
||||
th "1.p" ++
|
||||
td (vfin (VFin (f Indic) Sg P1)) ++
|
||||
td (vfin (VFin (f Conjunct) Sg P1))) ++
|
||||
tr (th "2.p" ++
|
||||
td (vfin (VFin (f Indic) Sg P2)) ++
|
||||
td (vfin (VFin (f Conjunct) Sg P2))) ++
|
||||
tr (th "3.p" ++
|
||||
td (vfin (VFin (f Indic) Sg P3)) ++
|
||||
td (vfin (VFin (f Conjunct) 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)
|
||||
)) ;
|
||||
th "1.p" ++
|
||||
td (vfin (VFin (f Indic) Pl P1)) ++
|
||||
td (vfin (VFin (f Conjunct) Pl P1))) ++
|
||||
tr (th "2.p" ++
|
||||
td (vfin (VFin (f Indic) Pl P2)) ++
|
||||
td (vfin (VFin (f Conjunct) Pl P2))) ++
|
||||
tr (th "3.p" ++
|
||||
td (vfin (VFin (f Indic) Pl P3)) ++
|
||||
td (vfin (VFin (f Conjunct) 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)))
|
||||
)
|
||||
)
|
||||
} ;
|
||||
in heading2 (heading present_Parameter) ++
|
||||
ttable2 VPres ++
|
||||
heading2 (heading imperfect_Parameter) ++
|
||||
ttable2 VImperf
|
||||
++ heading2 (heading simple_past_Parameter) ++ --# notpresent
|
||||
ttable VPasse --# notpresent
|
||||
++ heading2 (heading future_Parameter) ++ --# notpresent
|
||||
ttable VFut --# notpresent
|
||||
++ heading2 (heading conditional_Parameter) ++ --# notpresent
|
||||
ttable VCondit --# notpresent
|
||||
++ heading2 (heading infinitive_Parameter) ++
|
||||
paragraph (vfin (VInfin False)) ++
|
||||
heading2 (heading imperative_Parameter) ++
|
||||
frameTable (
|
||||
tr (th "sg.2.p" ++ td (vfin (VImper SgP2))) ++
|
||||
tr (th "pl.1.p" ++ td (vfin (VImper PlP1))) ++
|
||||
tr (th "pl.2.p" ++ td (vfin (VImper PlP2)))
|
||||
) ++
|
||||
heading2 (heading participle_Parameter) ++
|
||||
frameTable (
|
||||
tr (th (heading past_Parameter) ++ td (vfin (VPart Masc Sg))) ++
|
||||
tr (th (heading present_Parameter) ++ td (vfin VGer))
|
||||
) ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
--# -path=.:../english/:../abstract:../romance:alltenses
|
||||
--# -path=.:../english/:../abstract:../romance:alltenses:../translator
|
||||
concrete ParseFre of ParseEngAbs =
|
||||
TenseFre,
|
||||
-- CatFre,
|
||||
@@ -21,7 +21,7 @@ concrete ParseFre of ParseEngAbs =
|
||||
VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
||||
ClSlash, RCl, EmptyRelSlash],
|
||||
|
||||
DictEngFre **
|
||||
DictionaryFre **
|
||||
open PhonoFre, MorphoFre, ResFre, CommonRomance, ParadigmsFre, SyntaxFre, Prelude, (G = GrammarFre) in {
|
||||
|
||||
flags
|
||||
|
||||
@@ -13,39 +13,38 @@ in {
|
||||
|
||||
|
||||
lincat
|
||||
Inflection = {s : Str} ;
|
||||
Inflection = {t : Str; s1,s2 : Str} ;
|
||||
Document = {s : Str} ;
|
||||
Tag = {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
|
||||
} ;
|
||||
heading : N -> Str = \n -> (nounHeading n).s ;
|
||||
|
||||
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))
|
||||
)
|
||||
} ;
|
||||
InflectionN, InflectionN2, InflectionN3 = \noun -> {
|
||||
t = "s" ;
|
||||
s1 = heading1 (heading noun_Category ++
|
||||
case noun.g of {
|
||||
Masc => "("+heading masculine_Parameter+")" ;
|
||||
Fem => "("+heading feminine_Parameter+")" ;
|
||||
Neutr => "("+heading neuter_Parameter+")"
|
||||
}) ;
|
||||
s2 = frameTable (
|
||||
tr (th "" ++ th (heading singular_Parameter) ++ th (heading plural_Parameter) ) ++
|
||||
tr (th (heading nominative_Parameter) ++ td (noun.s ! Sg ! Nom) ++ td (noun.s ! Pl ! Nom)) ++
|
||||
tr (th (heading genitive_Parameter) ++ td (noun.s ! Sg ! Gen) ++ td (noun.s ! Pl ! Gen)) ++
|
||||
tr (th (heading dative_Parameter) ++ td (noun.s ! Sg ! Dat) ++ td (noun.s ! Pl ! Dat)) ++
|
||||
tr (th (heading accusative_Parameter) ++ td (noun.s ! Sg ! Acc) ++ td (noun.s ! Pl ! Acc))
|
||||
)
|
||||
} ;
|
||||
|
||||
InflectionA adj =
|
||||
InflectionA, InflectionA2 = \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)) ;
|
||||
td (adj.s ! d ! (AMod (GSg Masc) c)) ++
|
||||
td (adj.s ! d ! (AMod (GSg Fem) c)) ++
|
||||
td (adj.s ! d ! (AMod (GSg Neutr) c)) ++
|
||||
td (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) ++
|
||||
@@ -54,24 +53,98 @@ lin
|
||||
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)))
|
||||
tr (th (heading predicative_Parameter) ++ intagAttr "td" "colspan=4" (adj.s ! d ! APred))
|
||||
))
|
||||
in {
|
||||
s = heading1 (nounHeading adjective_Category).s ++
|
||||
dtable positive_Parameter Posit ++ dtable comparative_Parameter Compar ++ dtable superlative_Parameter Superl ;
|
||||
} ;
|
||||
in { t = "a" ;
|
||||
s1 = heading1 (nounHeading adjective_Category).s ;
|
||||
s2 = 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)
|
||||
InflectionAdv adv = {
|
||||
t = "adverb" ;
|
||||
s1 = heading1 (heading preposition_Category) ;
|
||||
s2 = paragraph adv.s
|
||||
} ;
|
||||
|
||||
MkDocument b i e = ss (paragraph b.s ++ i.s ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
||||
InflectionPrep p = {
|
||||
t = "präp" ;
|
||||
s1 = heading1 (heading preposition_Category) ;
|
||||
s2 = paragraph (S.mkAdv (lin Prep p) (S.mkNP S.a_Det L.computer_N)).s
|
||||
} ;
|
||||
|
||||
InflectionV v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v)) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2 v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v S.something_NP)) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV3 v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP v S.something_NP S.something_NP)) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2V v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP (lin V2V v) S.we_NP (S.mkVP (L.sleep_V)))) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2S v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2Q v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2A v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVV v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ++
|
||||
paragraph (verbExample (S.mkCl S.she_NP (lin VV v) (S.mkVP (L.sleep_V)))) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVS v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVQ v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVA v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 (heading verb_Category) ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
MkDocument b i e = ss (i.s1 ++ paragraph b.s ++ i.s2 ++ paragraph e.s) ; -- explanation appended in a new paragraph
|
||||
MkTag i = ss i.t ;
|
||||
|
||||
oper
|
||||
verbExample : CatGer.Cl -> Str = \cl ->
|
||||
@@ -79,40 +152,34 @@ oper
|
||||
++ ";" ++ (S.mkUtt (S.mkS S.anteriorAnt cl)).s --# notpresent
|
||||
;
|
||||
|
||||
inflectionVerb : Str -> CatGer.V -> {s : Str} = \ex,verb ->
|
||||
inflVerb : Verb -> Str = \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
|
||||
td (vfin (VFin False (VPresInd n p))) ++
|
||||
td (vfin (VFin False (VPresSubj n p)))
|
||||
++ td (vfin (VFin False (VImpfInd n p))) --# notpresent
|
||||
++ td (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"})))
|
||||
))
|
||||
} ;
|
||||
in 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)
|
||||
) ++
|
||||
frameTable (
|
||||
tr (th (heading imperative_Parameter ++ "Sg.2") ++ td (vfin (VImper Sg))) ++
|
||||
tr (th (heading imperative_Parameter ++ "Pl.2") ++ td (vfin (VImper Pl))) ++
|
||||
tr (th (heading infinitive_Parameter) ++ td (verb.s ! (VInf False))) ++
|
||||
tr (th (heading present_Parameter ++ heading participle_Parameter) ++ td (verb.s ! (VPresPart APred))) ++
|
||||
tr (th (heading perfect_Parameter ++ heading participle_Parameter) ++ td (verb.s ! (VPastPart APred))) ++
|
||||
tr (th (heading aux_verb_Parameter) ++ td (case verb.aux of {VHaben => "haben" ; VSein => "sein"}))
|
||||
) ;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
--# -path=alltenses:.:../english:../abstract
|
||||
--# -path=alltenses:.:../english:../abstract:../translator
|
||||
concrete ParseGer of ParseEngAbs =
|
||||
TenseGer,
|
||||
NounGer - [PPartNP],
|
||||
@@ -20,7 +20,7 @@ concrete ParseGer of ParseEngAbs =
|
||||
VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
||||
ClSlash, RCl, EmptyRelSlash],
|
||||
|
||||
DictEngGer **
|
||||
DictionaryGer **
|
||||
open MorphoGer, ResGer, ParadigmsGer, SyntaxGer, Prelude, HTML in {
|
||||
|
||||
flags literal=Symb ; coding = utf8 ;
|
||||
|
||||
@@ -1,6 +1,233 @@
|
||||
--# -path=.:../abstract:../common
|
||||
concrete DocumentationSwe of Documentation = CatSwe ** open
|
||||
ResSwe,
|
||||
CommonScand,
|
||||
HTML
|
||||
in {
|
||||
|
||||
-- documentation of Swedish in Swedish: the default introduced in LangSwe
|
||||
lincat
|
||||
Inflection = {t : Str; s1,s2 : Str} ;
|
||||
Document = {s : Str} ;
|
||||
Tag = {s : Str} ;
|
||||
|
||||
concrete DocumentationSwe of Documentation = CatSwe **
|
||||
DocumentationSweFunctor with (Terminology = TerminologySwe) ;
|
||||
lin
|
||||
InflectionN, InflectionN2, InflectionN3 = \noun -> {
|
||||
t = "s" ;
|
||||
s1 = heading1 ("Substantiv" ++ case noun.g of {
|
||||
Utr => "(utr)" ;
|
||||
Neutr => "(neutr)"
|
||||
}) ;
|
||||
s2 = frameTable (
|
||||
tr (intagAttr "th" "colspan=2" "" ++ th "obest" ++ th "best") ++
|
||||
tr (intagAttr "th" "rowspan=2" "nom" ++
|
||||
th "sg" ++ td (noun.s ! Sg ! Indef ! Nom) ++ td (noun.s ! Sg ! Def ! Nom)) ++
|
||||
tr (th "pl" ++ td (noun.s ! Pl ! Indef ! Nom) ++ td (noun.s ! Pl ! Def ! Nom)) ++
|
||||
tr (intagAttr "th" "rowspan=2" "gen" ++
|
||||
th "sg" ++ td (noun.s ! Sg ! Indef ! Gen) ++ td (noun.s ! Sg ! Def ! Gen)) ++
|
||||
tr (th "pl" ++ td (noun.s ! Pl ! Indef ! Gen) ++ td (noun.s ! Pl ! Def ! Gen))
|
||||
)
|
||||
} ;
|
||||
|
||||
InflectionA, InflectionA2 = \adj -> {
|
||||
t = "a" ;
|
||||
s1 = heading1 "Adjektiv" ;
|
||||
s2 = frameTable (
|
||||
tr (intagAttr "th" "colspan=5" "nominativ") ++
|
||||
tr (intagAttr "th" "colspan=2" "posit" ++
|
||||
th "posit" ++
|
||||
th "kompar" ++
|
||||
th "superl") ++
|
||||
caseInfl Nom ++
|
||||
tr (intagAttr "th" "colspan=5" "genitiv") ++
|
||||
caseInfl Nom
|
||||
)
|
||||
} where {
|
||||
caseInfl : Case -> Str = \c ->
|
||||
tr (intagAttr "th" "rowspan=3" "obest" ++
|
||||
th "utr" ++
|
||||
td (adj.s ! (AF (APosit (Strong (GSg Utr))) c)) ++
|
||||
intagAttr "td" "rowspan=5" (adj.s ! (AF ACompar c)) ++
|
||||
intagAttr "td" "rowspan=3" (adj.s ! (AF (ASuperl SupStrong) c))) ++
|
||||
tr (th "neut" ++
|
||||
td (adj.s ! (AF (APosit (Strong (GSg Neutr))) c))) ++
|
||||
tr (th "pl" ++
|
||||
td (adj.s ! (AF (APosit (Strong GPl)) c))) ++
|
||||
tr (intagAttr "th" "rowspan=2" "best" ++
|
||||
th "sg" ++
|
||||
td (adj.s ! (AF (APosit (Weak Sg)) c)) ++
|
||||
intagAttr "td" "rowspan=2" (adj.s ! (AF (ASuperl SupWeak) c))) ++
|
||||
tr (th "pl" ++
|
||||
td (adj.s ! (AF (APosit (Weak Pl)) c))) ;
|
||||
} ;
|
||||
|
||||
InflectionAdv adv = {
|
||||
t = "adv" ;
|
||||
s1 = heading1 "Adverb" ;
|
||||
s2 = paragraph adv.s
|
||||
} ;
|
||||
|
||||
InflectionPrep p = {
|
||||
t = "prep" ;
|
||||
s1 = heading1 "Preposition" ;
|
||||
s2 = paragraph p.s
|
||||
} ;
|
||||
|
||||
InflectionV v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ++
|
||||
paragraph (pp "subjekt" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part);
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2 v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ++
|
||||
paragraph (pp "subjekt" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++ v.c2.s ++
|
||||
pp "objekt") ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV3 v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ++
|
||||
paragraph (pp "subjekt" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
v.c2.s ++ pp "arg1" ++
|
||||
v.c3.s ++ pp "arg2") ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2V v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ++
|
||||
paragraph (pp "subjekt" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
v.c2.s ++ pp "objekt" ++
|
||||
v.c3.s ++ pp "verb") ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2S v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ++
|
||||
paragraph (pp "subjekt" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
v.c2.s ++ pp "objekt" ++
|
||||
conjThat ++ pp "mening") ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2Q v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ++
|
||||
paragraph (pp "subjekt" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
v.c2.s ++ pp "objekt" ++
|
||||
pp "fråga") ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionV2A v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ++
|
||||
paragraph (pp "subjekt" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
v.c2.s ++ pp "objekt" ++
|
||||
pp "adjektiv") ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVV v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ++
|
||||
paragraph (pp "subjekt" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
pp "verb") ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVS v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ++
|
||||
paragraph (pp "subjekt" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
conjThat ++ pp "mening") ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVQ v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ++
|
||||
paragraph (pp "subjekt" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
pp "fråga") ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
InflectionVA v = {
|
||||
t = "v" ;
|
||||
s1 = heading1 "Verb" ++
|
||||
paragraph (pp "subjekt" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
pp "adjektiv") ;
|
||||
s2 = inflVerb v
|
||||
} ;
|
||||
|
||||
MkDocument b i e = {s = i.s1 ++ paragraph b.s ++ i.s2 ++ paragraph e.s} ; -- explanation appended in a new paragraph
|
||||
MkTag i = {s = i.t} ;
|
||||
|
||||
oper
|
||||
inflVerb : Verb -> Str = \verb ->
|
||||
frameTable (
|
||||
tr (th "" ++ th "active" ++ th "passive") ++
|
||||
tr (th "infitiv" ++ td (verb.s ! VI (VInfin Act)) ++ td (verb.s ! VI (VInfin Pass))) ++
|
||||
tr (th "presens" ++ td (verb.s ! VF (VPres Act)) ++ td (verb.s ! VF (VPres Pass))) ++
|
||||
tr (th "preteritum" ++ td (verb.s ! VF (VPret Act)) ++ td (verb.s ! VF (VPret Pass))) ++
|
||||
tr (th "supinum" ++ td (verb.s ! VI (VSupin Act)) ++ td (verb.s ! VI (VSupin Pass))) ++
|
||||
tr (th "imperativ" ++ td (verb.s ! VF (VImper Act)) ++ td (verb.s ! VF (VImper Pass)))
|
||||
) ++
|
||||
heading2 "Particip Presens" ++
|
||||
frameTable (
|
||||
tr (intagAttr "th" "colspan=2" "" ++ th "obest" ++ th "best") ++
|
||||
tr (intagAttr "th" "rowspan=2" "nom" ++
|
||||
th "sg" ++
|
||||
td (verb.s ! VI (VPtPres Sg Indef Nom)) ++
|
||||
td (verb.s ! VI (VPtPres Sg Def Nom))) ++
|
||||
tr (th "pl" ++
|
||||
td (verb.s ! VI (VPtPres Pl Indef Nom)) ++
|
||||
td (verb.s ! VI (VPtPres Pl Def Nom))) ++
|
||||
tr (intagAttr "th" "rowspan=2" "gen" ++
|
||||
th "sg" ++
|
||||
td (verb.s ! VI (VPtPres Sg Indef Gen)) ++
|
||||
td (verb.s ! VI (VPtPres Sg Def Gen))) ++
|
||||
tr (th "pl" ++
|
||||
td (verb.s ! VI (VPtPres Pl Indef Gen)) ++
|
||||
td (verb.s ! VI (VPtPres Pl Def Gen)))
|
||||
) ++
|
||||
heading2 "Particip Perfekt" ++
|
||||
frameTable (
|
||||
tr (intagAttr "th" "colspan=2" "" ++
|
||||
th "nom" ++
|
||||
th "gen") ++
|
||||
tr (intagAttr "th" "rowspan=3" "obest" ++
|
||||
th "utr" ++
|
||||
td (verb.s ! VI (VPtPret (Strong (GSg Utr)) Nom)) ++
|
||||
td (verb.s ! VI (VPtPret (Strong (GSg Utr)) Gen))) ++
|
||||
tr (th "neut" ++
|
||||
td (verb.s ! VI (VPtPret (Strong (GSg Neutr)) Nom)) ++
|
||||
td (verb.s ! VI (VPtPret (Strong (GSg Neutr)) Gen))) ++
|
||||
tr (th "pl" ++
|
||||
td (verb.s ! VI (VPtPret (Strong GPl) Nom)) ++
|
||||
td (verb.s ! VI (VPtPret (Strong GPl) Gen))) ++
|
||||
tr (intagAttr "th" "rowspan=2" "best" ++
|
||||
th "sg" ++
|
||||
td (verb.s ! VI (VPtPret (Weak Sg) Nom)) ++
|
||||
td (verb.s ! VI (VPtPret (Weak Sg) Gen))) ++
|
||||
tr (th "pl" ++
|
||||
td (verb.s ! VI (VPtPret (Weak Pl) Nom)) ++
|
||||
td (verb.s ! VI (VPtPret (Weak Pl) Gen)))
|
||||
) ;
|
||||
|
||||
pp : Str -> Str = \s -> "<"+s+">";
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
--# -path=.:../english/:../scandinavian:alltenses:../abstract
|
||||
--# -path=.:../english/:../scandinavian:alltenses:../abstract:../translator
|
||||
concrete ParseSwe of ParseEngAbs =
|
||||
TenseSwe,
|
||||
NounSwe - [PPartNP],
|
||||
@@ -20,7 +20,7 @@ concrete ParseSwe of ParseEngAbs =
|
||||
VPI, VPIForm, VPIInf, VPIPresPart, ListVPI, VV, MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
||||
ClSlash, RCl, EmptyRelSlash],
|
||||
|
||||
DictEngSwe **
|
||||
DictionarySwe **
|
||||
open MorphoSwe, ResSwe, ParadigmsSwe, SyntaxSwe, CommonScand, (E = ExtraSwe), Prelude in {
|
||||
|
||||
flags
|
||||
@@ -123,60 +123,4 @@ lin
|
||||
AdAdV = cc2 ;
|
||||
|
||||
UttAdV adv = adv;
|
||||
|
||||
lincat
|
||||
Feat = Str;
|
||||
lin FeatN2, FeatN = \n ->
|
||||
case n.g of {
|
||||
Utr => "(utr)" ;
|
||||
Neutr => "(neutr)"
|
||||
} ;
|
||||
FeatV = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ;
|
||||
FeatV2 = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++ v.c2.s ++
|
||||
"<object>";
|
||||
FeatV3 = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
v.c2.s ++ "<arg1>" ++
|
||||
v.c3.s ++ "<arg2>";
|
||||
FeatV2V = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
v.c2.s ++ "<object>" ++
|
||||
v.c3.s ++ "<verb>";
|
||||
FeatV2S = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
v.c2.s ++ "<object>" ++
|
||||
"that" ++ "<sentence>";
|
||||
FeatV2Q = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
v.c2.s ++ "<object>" ++
|
||||
"that" ++ "<question>";
|
||||
FeatV2A = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
v.c2.s ++ "<object>" ++
|
||||
"<adjective>";
|
||||
FeatVV = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
"<verb>" ;
|
||||
FeatVS = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
"that" ++ "<sentence>";
|
||||
FeatVQ = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
"<question>";
|
||||
FeatVA = \v ->
|
||||
"<subject>" ++
|
||||
v.s ! VI (VInfin Act) ++ v.part ++
|
||||
"<adjective>";
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user