better inflection tables

This commit is contained in:
Krasimir Angelov
2025-09-10 19:41:28 +02:00
parent 7d695a6d49
commit 08aa91cdbb
3 changed files with 498 additions and 509 deletions

View File

@@ -12,22 +12,17 @@ lin
t="n" ;
s1="" ;
s2=frameTable (
tr (intagAttr "th" "rowspan=\"16\"" "s" ++ intagAttr "th" "rowspan=\"8\"" "Indef" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Indef ! Sg ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Indef ! Sg ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Indef ! Sg ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Indef ! Sg ! Gen)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Indef ! Pl ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Indef ! Pl ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Indef ! Pl ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Indef ! Pl ! Gen)) ++
tr (intagAttr "th" "rowspan=\"8\"" "Def" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Def ! Sg ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Def ! Sg ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Def ! Sg ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Def ! Sg ! Gen)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Def ! Pl ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Def ! Pl ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Def ! Pl ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Def ! Pl ! Gen))) ;
tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Indef" ++ th "Def") ++
tr (intagAttr "th" "rowspan=\"4\"" "Sg" ++
th "Nom" ++ td (x.s ! Indef ! Sg ! Nom) ++ td (x.s ! Def ! Sg ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Indef ! Sg ! Acc) ++ td (x.s ! Def ! Sg ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Indef ! Sg ! Dat) ++ td (x.s ! Def ! Sg ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Indef ! Sg ! Gen) ++ td (x.s ! Def ! Sg ! Gen)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++
th "Nom" ++ td (x.s ! Indef ! Pl ! Nom) ++ td (x.s ! Def ! Pl ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Indef ! Pl ! Acc) ++ td (x.s ! Def ! Pl ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Indef ! Pl ! Dat) ++ td (x.s ! Def ! Pl ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Indef ! Pl ! Gen) ++ td (x.s ! Def ! Pl ! Gen))) ;
s3=[]
} ;
lin
@@ -35,50 +30,44 @@ lin
t="a" ;
s1="" ;
s2=frameTable (
tr (intagAttr "th" "rowspan=\"24\"" "s" ++ intagAttr "th" "rowspan=\"8\"" "Masc" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Masc ! Sg ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Masc ! Sg ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Masc ! Sg ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Masc ! Sg ! Gen)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Masc ! Pl ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Masc ! Pl ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Masc ! Pl ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Masc ! Pl ! Gen)) ++
tr (intagAttr "th" "rowspan=\"8\"" "Fem" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Fem ! Sg ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Fem ! Sg ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Fem ! Sg ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Fem ! Sg ! Gen)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Fem ! Pl ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Fem ! Pl ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Fem ! Pl ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Fem ! Pl ! Gen)) ++
tr (intagAttr "th" "rowspan=\"8\"" "Neutr" ++ intagAttr "th" "rowspan=\"4\"" "Sg" ++ th "Nom" ++ td (x.s ! Neutr ! Sg ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Neutr ! Sg ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Neutr ! Sg ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Neutr ! Sg ! Gen)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++ th "Nom" ++ td (x.s ! Neutr ! Pl ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Neutr ! Pl ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Neutr ! Pl ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Neutr ! Pl ! Gen))) ;
tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Masc" ++ th "Fem" ++ th "Neutr") ++
tr (intagAttr "th" "rowspan=\"4\"" "Sg" ++
th "Nom" ++ td (x.s ! Masc ! Sg ! Nom) ++ td (x.s ! Fem ! Sg ! Nom) ++ td (x.s ! Neutr ! Sg ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Masc ! Sg ! Acc) ++ td (x.s ! Fem ! Sg ! Acc) ++ td (x.s ! Neutr ! Sg ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Masc ! Sg ! Dat) ++ td (x.s ! Fem ! Sg ! Dat) ++ td (x.s ! Neutr ! Sg ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Masc ! Sg ! Gen) ++ td (x.s ! Fem ! Sg ! Gen) ++ td (x.s ! Neutr ! Sg ! Gen)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Pl" ++
th "Nom" ++ td (x.s ! Masc ! Pl ! Nom) ++ td (x.s ! Fem ! Pl ! Nom) ++ td (x.s ! Neutr ! Pl ! Nom)) ++
tr (th "Acc" ++ td (x.s ! Masc ! Pl ! Acc) ++ td (x.s ! Fem ! Pl ! Acc) ++ td (x.s ! Neutr ! Pl ! Acc)) ++
tr (th "Dat" ++ td (x.s ! Masc ! Pl ! Dat) ++ td (x.s ! Fem ! Pl ! Dat) ++ td (x.s ! Neutr ! Pl ! Dat)) ++
tr (th "Gen" ++ td (x.s ! Masc ! Pl ! Gen) ++ td (x.s ! Fem ! Pl ! Gen) ++ td (x.s ! Neutr ! Pl ! Gen))) ;
s3=[]
} ;
lin
InflectionV,InflectionV2,InflectionV2A,InflectionV2Q,InflectionV2S,InflectionV2V,InflectionV3,InflectionVA,InflectionVQ,InflectionVS,InflectionVV = \x -> {
t="v" ;
s1="" ;
s2=frameTable (
tr (th "Converb" ++ td (x.Converb)) ++
tr (intagAttr "th" "rowspan=\"2\"" "Imperative_Jussive" ++ th "Sg" ++ td (x.Imperative_Jussive ! Sg)) ++
tr (th "Pl" ++ td (x.Imperative_Jussive ! Pl)) ++
tr (intagAttr "th" "rowspan=\"8\"" "Indicative" ++ intagAttr "th" "rowspan=\"4\"" "Pres" ++ th "PSg P1" ++ td (x.Indicative ! Pres ! PSg P1)) ++
tr (th "PSg P2" ++ td (x.Indicative ! Pres ! PSg P2)) ++
tr (th "PSg P3" ++ td (x.Indicative ! Pres ! PSg P3)) ++
tr (th "PPl" ++ td (x.Indicative ! Pres ! PPl)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Past" ++ th "PSg P1" ++ td (x.Indicative ! Past ! PSg P1)) ++
tr (th "PSg P2" ++ td (x.Indicative ! Past ! PSg P2)) ++
tr (th "PSg P3" ++ td (x.Indicative ! Past ! PSg P3)) ++
tr (th "PPl" ++ td (x.Indicative ! Past ! PPl)) ++
tr (th "Nonfinite" ++ td (x.Nonfinite)) ++
tr (intagAttr "th" "rowspan=\"2\"" "Particle" ++ th "Pres" ++ td (x.Particle ! Pres)) ++
s2=heading2 "Converb" ++
paragraph x.Converb ++
heading2 "Imperative" ++
frameTable (
tr (th "Sg" ++ td (x.Imperative_Jussive ! Sg)) ++
tr (th "Pl" ++ td (x.Imperative_Jussive ! Pl))) ++
heading2 "Indicative" ++
frameTable (
tr (intagAttr "th" "rowspan=\"4\"" "Pres" ++ th "Sg P1" ++ td (x.Indicative ! Pres ! PSg P1)) ++
tr (th "Sg P2" ++ td (x.Indicative ! Pres ! PSg P2)) ++
tr (th "Sg P3" ++ td (x.Indicative ! Pres ! PSg P3)) ++
tr (th "Pl" ++ td (x.Indicative ! Pres ! PPl)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Past" ++ th "Sg P1" ++ td (x.Indicative ! Past ! PSg P1)) ++
tr (th "Sg P2" ++ td (x.Indicative ! Past ! PSg P2)) ++
tr (th "Sg P3" ++ td (x.Indicative ! Past ! PSg P3)) ++
tr (th "Pl" ++ td (x.Indicative ! Past ! PPl))) ++
heading2 "Nonfinite" ++
paragraph x.Nonfinite ++
heading2 "Particle" ++
frameTable (
tr (th "Pres" ++ td (x.Particle ! Pres)) ++
tr (th "Past" ++ td (x.Particle ! Past))) ;
s3=[]
} ;

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
resource ResFao = {
param Species = Def | Indef ;
param Species = Indef | Def ;
param Number = Sg | Pl ;
param Case = Nom | Acc | Dat | Gen ;
param Gender = Neutr | Fem | Masc ;
@@ -92,7 +92,7 @@ oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Adj =
param Tense = Past | Pres ;
param PersNum = PSg Person | PPl ;
param Person = P1 | P3 | P2 ;
oper Verb = {Converb: Str; Imperative_Jussive: Number => Str; Indicative: Tense => PersNum => Str; Nonfinite: Str; Particle: Tense => Str} ; -- 596
oper Verb = {Converb: Str; Imperative_Jussive: Number => Str; Indicative: Tense => PersNum => Str; Nonfinite: Str; Participle: Tense => Str} ; -- 596
oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14 ->
{ Converb = f1 ;
@@ -115,10 +115,10 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb =
}
} ;
Nonfinite = f12 ;
Particle = table {
Pres => f13 ;
Past => f14
}
Participle = table {
Pres => f13 ;
Past => f14
}
} ;