Merge branch 'master' of github.com:GrammaticalFramework/gf-rgl

This commit is contained in:
Krasimir Angelov
2026-04-10 19:58:56 +02:00
12 changed files with 1391 additions and 982 deletions

View File

@@ -1,25 +1,132 @@
concrete CatSqi of Cat = CommonX ** open ParamX,Prelude,ResSqi in {
lincat N = Noun ;
lincat N2 = Noun ** {c2 : Compl} ;
lincat N3 = Noun ** {c2,c3 : Compl} ;
lincat A = Adj ;
lincat A2 = Adj ** {c2 : Compl} ;
lincat V, VA, VV, VS, VQ = Verb ;
lincat V2, V2S, V2Q = Verb ** {c2 : Compl} ;
lincat V3, V2A, V2V = Verb ** {c2,c3 : Compl} ;
lincat Prep = Compl ;
lincat Numeral = {s : Str} ;
lincat Digits = {s : Str; n : Number; tail : DTail} ;
flags
coding = "UTF-8" ;
lincat A = {s : Case => Gender => Number => Str; clit : Bool} ;
lincat A2 = {s : Case => Gender => Number => Str; clit : Bool;
c2 : {s : Str}} ;
lincat ACard = {s : Str} ;
lincat AP = {s : Case => Gender => Number => Str; isPre : Bool} ;
lincat CN = {s : Species => Case => Number => Case => Str;
g : Gender} ;
lincat Card = {s : Str} ;
lincat Cl = {s : Str} ;
lincat ClSlash = {s : Str} ;
lincat Comp = {s : Str} ;
lincat Conj = {s : Str} ;
lincat DAP = {s : Str} ;
lincat Decimal = {s : Str; n : Number; hasDot : Bool} ;
lincat AP = {s: Species => Case => Gender => Number => Str} ;
lincat CN = Noun ;
lincat Det = {s : Str; n : Number; sp : Species} ;
lincat Digits = {s : Str; n : Number; tail : DTail} ;
lincat GN = {s : Str} ;
lincat IComp = {s : Str} ;
lincat IDet = {s : Str} ;
lincat IP = {s : Str} ;
lincat IQuant = {s : Str} ;
lincat Imp = {s : Str} ;
lincat LN = {s : Str} ;
lincat N = {s : Species => Case => Number => Str; g : Gender} ;
lincat N2 = {s : Species => Case => Number => Str; g : Gender;
c2 : {s : Str}} ;
lincat N3 = {s : Species => Case => Number => Str; g : Gender;
c2 : {s : Str}; c3 : {s : Str}} ;
lincat NP = {s : Case => Str; g : Gender} ;
lincat Num = {s : Str; n : Number} ;
lincat Quant = {s : Case => Gender => Number => Str; spec : Species} ;
lincat Det = {s : Case => Gender => Str; spec : Species; n : Number} ;
lincat NP = {s: Case => Str; a : Agr} ;
lincat Pron = {s: Case => Str; acc_clit, dat_clit : Str; a : Agr} ;
lincat Numeral = {s : Str} ;
lincat Ord = {s : Str} ;
lincat PN = {s : Str} ;
lincat Predet = {s : Str} ;
lincat Prep = {s : Str} ;
lincat Pron = {s : Case => Str; acc_clit : Str; dat_clit : Str;
a : {gn : GenNum; p : Person}} ;
lincat QCl = {s : Str} ;
lincat QS = {s : Str} ;
lincat Quant = {s : Str; sp : Species} ;
lincat RCl = {s : Str} ;
lincat RP = {s : Str} ;
lincat RS = {s : Str} ;
lincat S = {s : Str} ;
lincat SN = {s : Str} ;
lincat SSlash = {s : Str} ;
lincat Subj = {s : Str} ;
lincat V = {indicative : Tense => Number => Person => Str;
imperative : Number => Str; participle : Str;
pres_optative : Number => Person => Str;
perf_optative : Number => Person => Str;
pres_admirative : Number => Person => Str;
imperf_admirative : Number => Person => Str} ;
lincat V2 = {indicative : Tense => Number => Person => Str;
imperative : Number => Str; participle : Str;
pres_optative : Number => Person => Str;
perf_optative : Number => Person => Str;
pres_admirative : Number => Person => Str;
imperf_admirative : Number => Person => Str; c2 : {s : Str}} ;
lincat V2A = {indicative : Tense => Number => Person => Str;
imperative : Number => Str; participle : Str;
pres_optative : Number => Person => Str;
perf_optative : Number => Person => Str;
pres_admirative : Number => Person => Str;
imperf_admirative : Number => Person => Str; c2 : {s : Str};
c3 : {s : Str}} ;
lincat V2Q = {indicative : Tense => Number => Person => Str;
imperative : Number => Str; participle : Str;
pres_optative : Number => Person => Str;
perf_optative : Number => Person => Str;
pres_admirative : Number => Person => Str;
imperf_admirative : Number => Person => Str; c2 : {s : Str}} ;
lincat V2S = {indicative : Tense => Number => Person => Str;
imperative : Number => Str; participle : Str;
pres_optative : Number => Person => Str;
perf_optative : Number => Person => Str;
pres_admirative : Number => Person => Str;
imperf_admirative : Number => Person => Str; c2 : {s : Str}} ;
lincat V2V = {indicative : Tense => Number => Person => Str;
imperative : Number => Str; participle : Str;
pres_optative : Number => Person => Str;
perf_optative : Number => Person => Str;
pres_admirative : Number => Person => Str;
imperf_admirative : Number => Person => Str; c2 : {s : Str};
c3 : {s : Str}} ;
lincat V3 = {indicative : Tense => Number => Person => Str;
imperative : Number => Str; participle : Str;
pres_optative : Number => Person => Str;
perf_optative : Number => Person => Str;
pres_admirative : Number => Person => Str;
imperf_admirative : Number => Person => Str; c2 : {s : Str};
c3 : {s : Str}} ;
lincat VA = {indicative : Tense => Number => Person => Str;
imperative : Number => Str; participle : Str;
pres_optative : Number => Person => Str;
perf_optative : Number => Person => Str;
pres_admirative : Number => Person => Str;
imperf_admirative : Number => Person => Str} ;
lincat VP = {indicative : Tense => Number => Person => Case => Str;
participle : Case => Str;
pres_optative : Number => Person => Case => Str;
perf_optative : Number => Person => Case => Str;
pres_admirative : Number => Person => Case => Str;
imperf_admirative : Number => Person => Case => Str} ;
lincat VPSlash = {indicative : Tense => Number => Person => Str;
imperative : Number => Str; participle : Str;
pres_optative : Number => Person => Str;
perf_optative : Number => Person => Str;
pres_admirative : Number => Person => Str;
imperf_admirative : Number => Person => Str} ;
lincat VQ = {indicative : Tense => Number => Person => Str;
imperative : Number => Str; participle : Str;
pres_optative : Number => Person => Str;
perf_optative : Number => Person => Str;
pres_admirative : Number => Person => Str;
imperf_admirative : Number => Person => Str} ;
lincat VS = {indicative : Tense => Number => Person => Str;
imperative : Number => Str; participle : Str;
pres_optative : Number => Person => Str;
perf_optative : Number => Person => Str;
pres_admirative : Number => Person => Str;
imperf_admirative : Number => Person => Str} ;
lincat VV = {indicative : Tense => Number => Person => Str;
imperative : Number => Str; participle : Str;
pres_optative : Number => Person => Str;
perf_optative : Number => Person => Str;
pres_admirative : Number => Person => Str;
imperf_admirative : Number => Person => Str} ;
}

View File

@@ -51,32 +51,32 @@ lin InflectionV = \x -> {
t="fl" ;
s1=heading1 "Folje" ;
s2=frameTable (
tr (intagAttr "th" "rowspan=\"24\"" "Indicative" ++ intagAttr "th" "rowspan=\"6\"" "Pres" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.Indicative ! Pres ! Sg ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Pres ! Sg ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Pres ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.Indicative ! Pres ! Pl ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Pres ! Pl ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Pres ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Past" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.Indicative ! Past ! Sg ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Past ! Sg ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Past ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.Indicative ! Past ! Pl ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Past ! Pl ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Past ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Aorist" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.Indicative ! Aorist ! Sg ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Aorist ! Sg ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Aorist ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.Indicative ! Aorist ! Pl ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Aorist ! Pl ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Aorist ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Imperfect" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.Indicative ! Imperfect ! Sg ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Imperfect ! Sg ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Imperfect ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.Indicative ! Imperfect ! Pl ! P1)) ++
tr (th "P2" ++ td (x.Indicative ! Imperfect ! Pl ! P2)) ++
tr (th "P3" ++ td (x.Indicative ! Imperfect ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"2\"" "Imperative" ++ th "Sg" ++ td (x.Imperative ! Sg)) ++
tr (th "Pl" ++ td (x.Imperative ! Pl)) ++
tr (intagAttr "th" "rowspan=\"24\"" "Indicative" ++ intagAttr "th" "rowspan=\"6\"" "Pres" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.indicative ! Pres ! Sg ! P1)) ++
tr (th "P2" ++ td (x.indicative ! Pres ! Sg ! P2)) ++
tr (th "P3" ++ td (x.indicative ! Pres ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.indicative ! Pres ! Pl ! P1)) ++
tr (th "P2" ++ td (x.indicative ! Pres ! Pl ! P2)) ++
tr (th "P3" ++ td (x.indicative ! Pres ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Past" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.indicative ! Past ! Sg ! P1)) ++
tr (th "P2" ++ td (x.indicative ! Past ! Sg ! P2)) ++
tr (th "P3" ++ td (x.indicative ! Past ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.indicative ! Past ! Pl ! P1)) ++
tr (th "P2" ++ td (x.indicative ! Past ! Pl ! P2)) ++
tr (th "P3" ++ td (x.indicative ! Past ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Aorist" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.indicative ! Aorist ! Sg ! P1)) ++
tr (th "P2" ++ td (x.indicative ! Aorist ! Sg ! P2)) ++
tr (th "P3" ++ td (x.indicative ! Aorist ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.indicative ! Aorist ! Pl ! P1)) ++
tr (th "P2" ++ td (x.indicative ! Aorist ! Pl ! P2)) ++
tr (th "P3" ++ td (x.indicative ! Aorist ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Imperfect" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.indicative ! Imperfect ! Sg ! P1)) ++
tr (th "P2" ++ td (x.indicative ! Imperfect ! Sg ! P2)) ++
tr (th "P3" ++ td (x.indicative ! Imperfect ! Sg ! P3)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Pl" ++ th "P1" ++ td (x.indicative ! Imperfect ! Pl ! P1)) ++
tr (th "P2" ++ td (x.indicative ! Imperfect ! Pl ! P2)) ++
tr (th "P3" ++ td (x.indicative ! Imperfect ! Pl ! P3)) ++
tr (intagAttr "th" "rowspan=\"2\"" "Imperative" ++ th "Sg" ++ td (x.imperative ! Sg)) ++
tr (th "Pl" ++ td (x.imperative ! Pl)) ++
tr (th "participle" ++ td (x.participle)) ++
tr (intagAttr "th" "rowspan=\"6\"" "pres_optative" ++ intagAttr "th" "rowspan=\"3\"" "Sg" ++ th "P1" ++ td (x.pres_optative ! Sg ! P1)) ++
tr (th "P2" ++ td (x.pres_optative ! Sg ! P2)) ++

View File

@@ -104,10 +104,10 @@ oper mkAdj : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Bool -> Adj =
param Tense = Pres | Past | Imperfect | Aorist ;
oper Verb = {Indicative: Tense => Number => Person => Str; Imperative: Number => Str; participle: Str; pres_optative: Number => Person => Str; perf_optative: Number => Person => Str; pres_admirative: Number => Person => Str; imperf_admirative: Number => Person => Str} ; -- 758
oper Verb = {indicative: Tense => Number => Person => Str; imperative: Number => Str; participle: Str; pres_optative: Number => Person => Str; perf_optative: Number => Person => Str; pres_admirative: Number => Person => Str; imperf_admirative: Number => Person => Str} ; -- 758
oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43,f44,f45,f46,f47,f48,f49,f50,f51 ->
{ Indicative = table {
{ indicative = table {
Pres => table {
Sg => table {
P1 => f1 ;
@@ -157,7 +157,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_
}
}
} ;
Imperative = table {
imperative = table {
Sg => f25 ;
Pl => f26
} ;

View File

@@ -1,16 +1,163 @@
concrete CatHye of Cat = CommonX ** open ResHye in {
lincat V = Verb ;
lincat VV,VS,VQ,VA = Verb ;
lincat V2 = Verb ** {c2 : Compl} ;
lincat V3,V2A,V2S,V2Q,V2V = Verb ** {c2,c3 : Compl} ;
lincat N = Noun ;
lincat N2 = Noun ** {c2 : Compl} ;
lincat N3 = Noun ** {c2,c3 : Compl} ;
lincat CN = Noun ;
lincat A = Adj ;
lincat A2 = Adj ** {c2 : Compl} ;
lincat AP = Adj ;
lincat Prep = Compl ;
concrete CatHye of Cat = CommonX ** open Prelude,ResHye in {
flags
coding = "UTF-8" ;
lincat A = {s : Case => Number => Str; def_dat : Number => Str;
def_nom : Number => Str; poss1 : Case => Number => Str;
poss2 : Case => Number => Str} ;
lincat A2 = {s : Case => Number => Str; def_dat : Number => Str;
def_nom : Number => Str; poss1 : Case => Number => Str;
poss2 : Case => Number => Str; c2 : {s : Str; c : Case}} ;
lincat ACard = {s : Str} ;
lincat AP = {} ;
lincat CN = {s : Case => Number => Str; def_dat : Number => Str;
def_nom : Number => Str; poss1 : Case => Number => Str;
poss2 : Case => Number => Str} ;
lincat Card = {s : Str} ;
lincat Cl = {s : Str} ;
lincat ClSlash = {s : Str} ;
lincat Comp = {s : Str} ;
lincat Conj = {s : Str} ;
lincat DAP = {s : Str} ;
lincat Decimal = {s : Str} ;
lincat Det = {s : Str; n : Number} ;
lincat Digits = {s : Str} ;
lincat GN = {s : Str} ;
lincat IComp = {s : Str} ;
lincat IDet = {s : Str} ;
lincat IP = {s : Str} ;
lincat IQuant = {s : Str} ;
lincat Imp = {s : Str} ;
lincat LN = {s : Str} ;
lincat N = {s : Case => Number => Str; def_dat : Number => Str;
def_nom : Number => Str; poss1 : Case => Number => Str;
poss2 : Case => Number => Str} ;
lincat N2 = {s : Case => Number => Str; def_dat : Number => Str;
def_nom : Number => Str; poss1 : Case => Number => Str;
poss2 : Case => Number => Str; c2 : {s : Str; c : Case}} ;
lincat N3 = {s : Case => Number => Str; def_dat : Number => Str;
def_nom : Number => Str; poss1 : Case => Number => Str;
poss2 : Case => Number => Str; c2 : {s : Str; c : Case};
c3 : {s : Str; c : Case}} ;
lincat NP = {s : Case => Number => Str; def_dat : Number => Str;
def_nom : Number => Str; poss1 : Case => Number => Str;
poss2 : Case => Number => Str} ;
lincat Num = {s : Str; n : Number} ;
lincat Numeral = {s : Str} ;
lincat Ord = {s : Str} ;
lincat PN = {s : Str} ;
lincat Predet = {s : Str} ;
lincat Prep = {s : Str; c : Case; lock_Prep : {}} ;
lincat Pron = {s : Str} ;
lincat QCl = {s : Str} ;
lincat QS = {s : Str} ;
lincat Quant = {s : Str} ;
lincat RCl = {s : Str} ;
lincat RP = {s : Str} ;
lincat RS = {s : Str} ;
lincat S = {s : Str} ;
lincat SN = {s : Str} ;
lincat SSlash = {s : Str} ;
lincat Subj = {s : Str} ;
lincat V = {s : Str; causative : Str;
conditional : Aspect => Person => Number => Str;
converb : {imperfective : Str; futCon1 : Str; futCon2 : Str;
negative : Str; perfective : Str; simultaneous : Str};
imperative : Number => Str; passive : Str;
past : Person => Number => Str; participle : PartType => Str;
subjunctive : Aspect => Person => Number => Str} ;
lincat V2 = {s : Str; causative : Str;
conditional : Aspect => Person => Number => Str;
converb : {imperfective : Str; futCon1 : Str; futCon2 : Str;
negative : Str; perfective : Str; simultaneous : Str};
imperative : Number => Str; passive : Str;
past : Person => Number => Str; participle : PartType => Str;
subjunctive : Aspect => Person => Number => Str;
c2 : {s : Str; c : Case}} ;
lincat V2A = {s : Str; causative : Str;
conditional : Aspect => Person => Number => Str;
converb : {imperfective : Str; futCon1 : Str; futCon2 : Str;
negative : Str; perfective : Str; simultaneous : Str};
imperative : Number => Str; passive : Str;
past : Person => Number => Str; participle : PartType => Str;
subjunctive : Aspect => Person => Number => Str;
c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ;
lincat V2Q = {s : Str; causative : Str;
conditional : Aspect => Person => Number => Str;
converb : {imperfective : Str; futCon1 : Str; futCon2 : Str;
negative : Str; perfective : Str; simultaneous : Str};
imperative : Number => Str; passive : Str;
past : Person => Number => Str; participle : PartType => Str;
subjunctive : Aspect => Person => Number => Str;
c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ;
lincat V2S = {s : Str; causative : Str;
conditional : Aspect => Person => Number => Str;
converb : {imperfective : Str; futCon1 : Str; futCon2 : Str;
negative : Str; perfective : Str; simultaneous : Str};
imperative : Number => Str; passive : Str;
past : Person => Number => Str; participle : PartType => Str;
subjunctive : Aspect => Person => Number => Str;
c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ;
lincat V2V = {s : Str; causative : Str;
conditional : Aspect => Person => Number => Str;
converb : {imperfective : Str; futCon1 : Str; futCon2 : Str;
negative : Str; perfective : Str; simultaneous : Str};
imperative : Number => Str; passive : Str;
past : Person => Number => Str; participle : PartType => Str;
subjunctive : Aspect => Person => Number => Str;
c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ;
lincat V3 = {s : Str; causative : Str;
conditional : Aspect => Person => Number => Str;
converb : {imperfective : Str; futCon1 : Str; futCon2 : Str;
negative : Str; perfective : Str; simultaneous : Str};
imperative : Number => Str; passive : Str;
past : Person => Number => Str; participle : PartType => Str;
subjunctive : Aspect => Person => Number => Str;
c2 : {s : Str; c : Case}; c3 : {s : Str; c : Case}} ;
lincat VA = {s : Str; causative : Str;
conditional : Aspect => Person => Number => Str;
converb : {imperfective : Str; futCon1 : Str; futCon2 : Str;
negative : Str; perfective : Str; simultaneous : Str};
imperative : Number => Str; passive : Str;
past : Person => Number => Str; participle : PartType => Str;
subjunctive : Aspect => Person => Number => Str} ;
lincat VP = {s : Case => Number => Str;
conditional : Aspect => Person => Number => Case => Number => Str;
converb : {imperfective : Case => Number => Str;
futCon1 : Case => Number => Str; FutCon2 : Case => Number => Str;
negative : Case => Number => Str;
perfective : Case => Number => Str;
simultaneous : Case => Number => Str};
imperative : Number => Number => Str;
passive : Case => Number => Str;
past : Person => Number => Case => Number => Str;
participle : PartType => Case => Number => Str;
subjunctive : Aspect => Person => Number => Case => Number => Str} ;
lincat VPSlash = {s : Str; causative : Str;
conditional : Aspect => Person => Number => Str;
converb : {imperfective : Str; futCon1 : Str; futCon2 : Str;
negative : Str; perfective : Str; simultaneous : Str};
imperative : Number => Str; passive : Str;
past : Person => Number => Str; participle : PartType => Str;
subjunctive : Aspect => Person => Number => Str; lock_V : {}} ;
lincat VQ = {s : Str; causative : Str;
conditional : Aspect => Person => Number => Str;
converb : {imperfective : Str; futCon1 : Str; futCon2 : Str;
negative : Str; perfective : Str; simultaneous : Str};
imperative : Number => Str; passive : Str;
past : Person => Number => Str; participle : PartType => Str;
subjunctive : Aspect => Person => Number => Str} ;
lincat VS = {s : Str; causative : Str;
conditional : Aspect => Person => Number => Str;
converb : {imperfective : Str; futCon1 : Str; futCon2 : Str;
negative : Str; perfective : Str; simultaneous : Str};
imperative : Number => Str; passive : Str;
past : Person => Number => Str; participle : PartType => Str;
subjunctive : Aspect => Person => Number => Str} ;
lincat VV = {s : Str; causative : Str;
conditional : Aspect => Person => Number => Str;
converb : {imperfective : Str; futCon1 : Str; futCon2 : Str;
negative : Str; perfective : Str; simultaneous : Str};
imperative : Number => Str; passive : Str;
past : Person => Number => Str; participle : PartType => Str;
subjunctive : Aspect => Person => Number => Str} ;
}

View File

@@ -15,50 +15,50 @@ lin
paragraph (x.s) ++
heading1 "Converb" ++
frameTable (
tr (th "Imperfective" ++ td (x.Converb.Imperfective)) ++
tr (th "Simultaneous" ++ td (x.Converb.Simultaneous)) ++
tr (th "Perfective" ++ td (x.Converb.Perfective)) ++
tr (th "Futute I" ++ td (x.Converb.FutCon1)) ++
tr (th "Futute II" ++ td (x.Converb.FutCon2)) ++
tr (th "Connegative" ++ td (x.Converb.Negative))) ++
tr (th "Imperfective" ++ td (x.converb.imperfective)) ++
tr (th "Simultaneous" ++ td (x.converb.simultaneous)) ++
tr (th "Perfective" ++ td (x.converb.perfective)) ++
tr (th "Futute I" ++ td (x.converb.futCon1)) ++
tr (th "Futute II" ++ td (x.converb.futCon2)) ++
tr (th "Connegative" ++ td (x.converb.negative))) ++
heading1 "Passive" ++
paragraph x.Passive ++
paragraph x.passive ++
heading1 "Participle" ++
frameTable (
tr (th "Resultative" ++ td (x.Participle ! Resultative)) ++
tr (th "Subject" ++ td (x.Participle ! Subject))) ++
tr (th "Resultative" ++ td (x.participle ! Resultative)) ++
tr (th "Subject" ++ td (x.participle ! Subject))) ++
heading1 "Past" ++
frameTable (
tr (th "" ++ th "Sg" ++ th "Pl") ++
tr (th "P1" ++ td (x.Past ! P1 ! Sg) ++ td (x.Past ! P1 ! Pl)) ++
tr (th "P2" ++ td (x.Past ! P2 ! Sg) ++ td (x.Past ! P2 ! Pl)) ++
tr (th "P3" ++ td (x.Past ! P3 ! Sg) ++ td (x.Past ! P3 ! Pl))) ++
tr (th "P1" ++ td (x.past ! P1 ! Sg) ++ td (x.past ! P1 ! Pl)) ++
tr (th "P2" ++ td (x.past ! P2 ! Sg) ++ td (x.past ! P2 ! Pl)) ++
tr (th "P3" ++ td (x.past ! P3 ! Sg) ++ td (x.past ! P3 ! Pl))) ++
heading1 "Subjunctive" ++
frameTable (
tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Sg" ++ th "Pl") ++
tr (intagAttr "th" "rowspan=\"3\"" "Perfect" ++
th "P1" ++ td (x.Subjunctive ! Perfect ! P1 ! Sg) ++ td (x.Subjunctive ! Perfect ! P1 ! Pl)) ++
tr (th "P2" ++ td (x.Subjunctive ! Perfect ! P2 ! Sg) ++ td (x.Subjunctive ! Perfect ! P2 ! Pl)) ++
tr (th "P3" ++ td (x.Subjunctive ! Perfect ! P3 ! Sg) ++ td (x.Subjunctive ! Perfect ! P3 ! Pl)) ++
th "P1" ++ td (x.subjunctive ! Perfect ! P1 ! Sg) ++ td (x.subjunctive ! Perfect ! P1 ! Pl)) ++
tr (th "P2" ++ td (x.subjunctive ! Perfect ! P2 ! Sg) ++ td (x.subjunctive ! Perfect ! P2 ! Pl)) ++
tr (th "P3" ++ td (x.subjunctive ! Perfect ! P3 ! Sg) ++ td (x.subjunctive ! Perfect ! P3 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"3\"" "Non_Past" ++
th "P1" ++ td (x.Subjunctive ! Non_Past ! P1 ! Sg) ++ td (x.Subjunctive ! Non_Past ! P1 ! Pl)) ++
tr (th "P2" ++ td (x.Subjunctive ! Non_Past ! P2 ! Sg) ++ td (x.Subjunctive ! Non_Past ! P2 ! Pl)) ++
tr (th "P3" ++ td (x.Subjunctive ! Non_Past ! P3 ! Sg) ++ td (x.Subjunctive ! Non_Past ! P3 ! Pl))) ++
th "P1" ++ td (x.subjunctive ! Non_Past ! P1 ! Sg) ++ td (x.subjunctive ! Non_Past ! P1 ! Pl)) ++
tr (th "P2" ++ td (x.subjunctive ! Non_Past ! P2 ! Sg) ++ td (x.subjunctive ! Non_Past ! P2 ! Pl)) ++
tr (th "P3" ++ td (x.subjunctive ! Non_Past ! P3 ! Sg) ++ td (x.subjunctive ! Non_Past ! P3 ! Pl))) ++
heading1 "Conditional" ++
frameTable (
tr (intagAttr "th" "colspan=\"2\"" "" ++ th "Sg" ++ th "Pl") ++
tr (intagAttr "th" "rowspan=\"3\"" "Perfect" ++
th "P1" ++ td (x.Conditional ! Perfect ! P1 ! Sg) ++ td (x.Conditional ! Perfect ! P1 ! Pl)) ++
tr (th "P2" ++ td (x.Conditional ! Perfect ! P2 ! Sg) ++ td (x.Conditional ! Perfect ! P2 ! Pl)) ++
tr (th "P3" ++ td (x.Conditional ! Perfect ! P3 ! Sg) ++ td (x.Conditional ! Perfect ! P3 ! Pl)) ++
th "P1" ++ td (x.conditional ! Perfect ! P1 ! Sg) ++ td (x.conditional ! Perfect ! P1 ! Pl)) ++
tr (th "P2" ++ td (x.conditional ! Perfect ! P2 ! Sg) ++ td (x.conditional ! Perfect ! P2 ! Pl)) ++
tr (th "P3" ++ td (x.conditional ! Perfect ! P3 ! Sg) ++ td (x.conditional ! Perfect ! P3 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Non_Past" ++
th "P1" ++ td (x.Conditional ! Non_Past ! P1 ! Sg) ++ td (x.Conditional ! Non_Past ! P1 ! Pl)) ++
tr (th "P2" ++ td (x.Conditional ! Non_Past ! P2 ! Sg) ++ td (x.Conditional ! Non_Past ! P2 ! Pl)) ++
tr (th "P3" ++ td (x.Conditional ! Non_Past ! P3 ! Sg) ++ td (x.Conditional ! Non_Past ! P3 ! Pl))) ++
th "P1" ++ td (x.conditional ! Non_Past ! P1 ! Sg) ++ td (x.conditional ! Non_Past ! P1 ! Pl)) ++
tr (th "P2" ++ td (x.conditional ! Non_Past ! P2 ! Sg) ++ td (x.conditional ! Non_Past ! P2 ! Pl)) ++
tr (th "P3" ++ td (x.conditional ! Non_Past ! P3 ! Sg) ++ td (x.conditional ! Non_Past ! P3 ! Pl))) ++
heading1 "Imperative" ++
frameTable (
tr (th "Sg" ++ th "Pl") ++
tr (td (x.Imperative_Jussive ! Sg) ++ td (x.Imperative_Jussive ! Pl))) ;
tr (td (x.imperative ! Sg) ++ td (x.imperative ! Pl))) ;
s3=[]
} ;
lin

File diff suppressed because it is too large Load Diff

View File

@@ -477,7 +477,6 @@ oper
mkSubj : Str -> Subj = \s -> lin Subj {s=s} ;
mkQuant : Str -> Quant = \s -> lin Quant {s=s} ;
mkPredet : Str -> Predet = \s -> lin Predet {s=s} ;
mkDet : Str -> Det = \s -> lin Det {s=s} ;
mkCard : Str -> Card = \s -> lin Card {s=s} ;
mkConj : Str -> Conj = \s -> lin Conj {s=s} ;
mkPConj : Str -> PConj = \s -> lin PConj {s=s} ;

View File

@@ -5,12 +5,12 @@ param Person = P1 | P3 | P2 ;
param Number = Sg | Pl ;
param Case = Nom | Dat | Ablat | Instr | Loc ;
param PartType = Resultative | Subject ;
oper Verb = {s: Str; Causative: Str; Conditional: Aspect => Person => Number => Str; Converb: {Imperfective: Str; FutCon1: Str; FutCon2: Str; Negative: Str; Perfective: Str; Simultaneous: Str}; Imperative_Jussive: Number => Str; Passive: Str; Past: Person => Number => Str; Participle: PartType => Str; Subjunctive: Aspect => Person => Number => Str} ; -- 898
oper Verb = {s: Str; causative: Str; conditional: Aspect => Person => Number => Str; converb: {imperfective: Str; futCon1: Str; futCon2: Str; negative: Str; perfective: Str; simultaneous: Str}; imperative: Number => Str; passive: Str; past: Person => Number => Str; participle: PartType => Str; subjunctive: Aspect => Person => Number => Str} ; -- 898
oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43 ->
{ s = f1 ;
Causative = f2 ;
Conditional = table {
causative = f2 ;
conditional = table {
Perfect => table {
P1 => table {
Sg => f3 ;
@@ -40,19 +40,19 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_
}
}
} ;
Converb = { Imperfective = f15 ;
FutCon1 = f16 ;
FutCon2 = f17 ;
Negative = f18 ;
Perfective = f19 ;
Simultaneous = f20
converb = { imperfective = f15 ;
futCon1 = f16 ;
futCon2 = f17 ;
negative = f18 ;
perfective = f19 ;
simultaneous = f20
} ;
Imperative_Jussive = table {
imperative = table {
Sg => f21 ;
Pl => f22
} ;
Passive = f23 ;
Past = table {
passive = f23 ;
past = table {
P1 => table {
Sg => f24 ;
Pl => f25
@@ -66,11 +66,11 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_
Pl => f29
}
} ;
Participle = table {
participle = table {
Resultative => f30 ;
Subject => f31
} ;
Subjunctive = table {
subjunctive = table {
Perfect => table {
P1 => table {
Sg => f32 ;

View File

@@ -1,13 +1,169 @@
concrete CatKaz of Cat = CommonX ** open ResKaz in {
lincat N = Noun ;
lincat N2 = Noun ** {c2 : Compl} ;
lincat N3 = Noun ** {c2,c3 : Compl} ;
lincat V, VA, VV, VS, VQ = Verb ;
lincat V2, V2S, V2Q = Verb ** {c2 : Compl} ;
lincat V3, V2A, V2V = Verb ** {c2,c3 : Compl} ;
concrete CatKaz of Cat = CommonX ** open Prelude,ResKaz in {
flags
coding = "UTF-8" ;
lincat A = {s : Str} ;
lincat A2 = A ** {c2 : Compl} ;
lincat Prep = Compl ;
lincat A2 = {s : Str; lock_A : {}; c2 : {s : Str}} ;
lincat ACard = {s : Str} ;
lincat AP = {s : Str} ;
lincat CN = {s : Case => Str} ;
lincat Card = {s : Str} ;
lincat Cl = {infinitive : Case => Str} ;
lincat ClSlash = {s : Str} ;
lincat Comp = {s : Str} ;
lincat Conj = {s : Str} ;
lincat DAP = {s : Str} ;
lincat Decimal = {s : Str} ;
lincat Det = {s : Str; n : Number} ;
lincat Digits = {s : Str} ;
lincat GN = {s : Str} ;
lincat IComp = {s : Str} ;
lincat IDet = {s : Str} ;
lincat IP = {s : Str} ;
lincat IQuant = {s : Str} ;
lincat Imp = {s : Str} ;
lincat LN = {s : Str} ;
lincat N = {s : Case => Number => Str;
poss : Number => Person => Number => Str} ;
lincat N2 = {s : Case => Number => Str;
poss : Number => Person => Number => Str; c2 : {s : Str}} ;
lincat N3 = {s : Case => Number => Str;
poss : Number => Person => Number => Str; c2 : {s : Str};
c3 : {s : Str}} ;
lincat NP = {s : Case => Str} ;
lincat Num = {s : Str; n : Number} ;
lincat Numeral = {s : Str} ;
lincat Ord = {s : Str} ;
lincat PN = {s : Str} ;
lincat Predet = {s : Str} ;
lincat Prep = {s : Str} ;
lincat Pron = {s : Str} ;
lincat QCl = {s : Str} ;
lincat QS = {s : Str} ;
lincat Quant = {s : Str} ;
lincat RCl = {s : Str} ;
lincat RP = {s : Str} ;
lincat RS = {s : Str} ;
lincat S = {s : Str} ;
lincat SN = {s : Str} ;
lincat SSlash = {s : Str} ;
lincat Subj = {s : Str} ;
lincat V = {infinitive : Str;
indicative : {fut : Str;
pres : {progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str};
past : {perfect : Polarity => Person => Number => Str;
progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str}};
imperative : Polarity => Formality => Number => Str;
subjunctive : Person => Number => Str} ;
lincat V2 = {infinitive : Str;
indicative : {fut : Str;
pres : {progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str};
past : {perfect : Polarity => Person => Number => Str;
progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str}};
imperative : Polarity => Formality => Number => Str;
subjunctive : Person => Number => Str; c2 : {s : Str}} ;
lincat V2A = {infinitive : Str;
indicative : {fut : Str;
pres : {progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str};
past : {perfect : Polarity => Person => Number => Str;
progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str}};
imperative : Polarity => Formality => Number => Str;
subjunctive : Person => Number => Str; c2 : {s : Str};
c3 : {s : Str}} ;
lincat V2Q = {infinitive : Str;
indicative : {fut : Str;
pres : {progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str};
past : {perfect : Polarity => Person => Number => Str;
progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str}};
imperative : Polarity => Formality => Number => Str;
subjunctive : Person => Number => Str; c2 : {s : Str}} ;
lincat V2S = {infinitive : Str;
indicative : {fut : Str;
pres : {progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str};
past : {perfect : Polarity => Person => Number => Str;
progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str}};
imperative : Polarity => Formality => Number => Str;
subjunctive : Person => Number => Str; c2 : {s : Str}} ;
lincat V2V = {infinitive : Str;
indicative : {fut : Str;
pres : {progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str};
past : {perfect : Polarity => Person => Number => Str;
progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str}};
imperative : Polarity => Formality => Number => Str;
subjunctive : Person => Number => Str; c2 : {s : Str};
c3 : {s : Str}} ;
lincat V3 = {infinitive : Str;
indicative : {fut : Str;
pres : {progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str};
past : {perfect : Polarity => Person => Number => Str;
progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str}};
imperative : Polarity => Formality => Number => Str;
subjunctive : Person => Number => Str; c2 : {s : Str};
c3 : {s : Str}} ;
lincat VA = {infinitive : Str;
indicative : {fut : Str;
pres : {progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str};
past : {perfect : Polarity => Person => Number => Str;
progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str}};
imperative : Polarity => Formality => Number => Str;
subjunctive : Person => Number => Str} ;
lincat VP = {infinitive : Case => Str;
indicative : {fut : Case => Str;
pres : {progressive : Polarity => Case => Str;
noAspect : Polarity => Case => Str};
past : {perfect : Polarity => Case => Str;
progressive : Polarity => Case => Str;
noAspect : Polarity => Case => Str}};
subjunctive : Person => Case => Str} ;
lincat VPSlash = {infinitive : Str;
indicative : {fut : Str;
pres : {progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str};
past : {perfect : Polarity => Person => Number => Str;
progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str}};
imperative : Polarity => Formality => Number => Str;
subjunctive : Person => Number => Str} ;
lincat VQ = {infinitive : Str;
indicative : {fut : Str;
pres : {progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str};
past : {perfect : Polarity => Person => Number => Str;
progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str}};
imperative : Polarity => Formality => Number => Str;
subjunctive : Person => Number => Str} ;
lincat VS = {infinitive : Str;
indicative : {fut : Str;
pres : {progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str};
past : {perfect : Polarity => Person => Number => Str;
progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str}};
imperative : Polarity => Formality => Number => Str;
subjunctive : Person => Number => Str} ;
lincat VV = {infinitive : Str;
indicative : {fut : Str;
pres : {progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str};
past : {perfect : Polarity => Person => Number => Str;
progressive : Polarity => Person => Number => Str;
noAspect : Polarity => Person => Number => Str}};
imperative : Polarity => Formality => Number => Str;
subjunctive : Person => Number => Str} ;
}

View File

@@ -34,118 +34,118 @@ lin InflectionV, InflectionV2, InflectionV3, InflectionV2V, InflectionV2S,
InflectionVQ, InflectionVA = \x -> {
t="v" ;
s1="" ;
s2=heading2 "Infinitive" ++ paragraph (x.Infinitive) ++
-- tr (th "Indicative" ++ th "Fut" ++ td (x.Indicative.Fut)) ++
s2=heading2 "Infinitive" ++ paragraph (x.infinitive) ++
-- tr (th "Indicative" ++ th "Fut" ++ td (x.indicative.Fut)) ++
heading2 "Present"++
frameTable (
tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Pos ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Pos ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Pos ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Pos ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Pos ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Pos ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Pos ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Pos ! P3 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Neg ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Neg ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Neg ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Neg ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Neg ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Neg ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Neg ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Neg ! P3 ! Pl))) ++
tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Pos ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Pos ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Pos ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Pos ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Pos ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Pos ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Pos ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Pos ! P3 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Neg ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Neg ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Neg ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Neg ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Neg ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Neg ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.pres.noAspect ! Neg ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.noAspect ! Neg ! P3 ! Pl))) ++
heading2 "Present Progressive"++
frameTable (
tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Pos ! P1 ! Sg))++
tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Pos ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Pos ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Pos ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Pos ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Pos ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Pos ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Pos ! P3 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Neg ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Neg ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Neg ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Neg ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Neg ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Neg ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Neg ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Neg ! P3 ! Pl))) ++
tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Pos ! P1 ! Sg))++
tr (th "Pl" ++ td (x.indicative.pres.progressive ! Pos ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Pos ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.progressive ! Pos ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Pos ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.progressive ! Pos ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Pos ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.progressive ! Pos ! P3 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Neg ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.progressive ! Neg ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Neg ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.progressive ! Neg ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Neg ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.progressive ! Neg ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.pres.progressive ! Neg ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.pres.progressive ! Neg ! P3 ! Pl))) ++
heading2 "Past" ++
frameTable (
tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Pos ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Pos ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Pos ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Pos ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Pos ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Pos ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Pos ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Pos ! P3 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Neg ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Neg ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Neg ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Neg ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Neg ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Neg ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Neg ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Neg ! P3 ! Pl))) ++
tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Pos ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.noAspect ! Pos ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Pos ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.noAspect ! Pos ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Pos ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.noAspect ! Pos ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Pos ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.noAspect ! Pos ! P3 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Neg ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.noAspect ! Neg ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Neg ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.noAspect ! Neg ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Neg ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.noAspect ! Neg ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.past.noAspect ! Neg ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.noAspect ! Neg ! P3 ! Pl))) ++
heading2 "Past Perfect" ++
frameTable (
tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Pos ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Pos ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Pos ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Pos ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Pos ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Pos ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Pos ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Pos ! P3 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Neg ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Neg ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Neg ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Neg ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Neg ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Neg ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Neg ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Neg ! P3 ! Pl))) ++
tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.past.perfect ! Pos ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.perfect ! Pos ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.past.perfect ! Pos ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.perfect ! Pos ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.past.perfect ! Pos ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.perfect ! Pos ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.past.perfect ! Pos ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.perfect ! Pos ! P3 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.past.perfect ! Neg ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.perfect ! Neg ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.past.perfect ! Neg ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.perfect ! Neg ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.past.perfect ! Neg ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.perfect ! Neg ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.past.perfect ! Neg ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.perfect ! Neg ! P3 ! Pl))) ++
heading2 "Past Progressive" ++
frameTable (
tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Pos ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Pos ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Pos ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Pos ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Pos ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Pos ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Pos ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Pos ! P3 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Neg ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Neg ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Neg ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Neg ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Neg ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Neg ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Neg ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Neg ! P3 ! Pl))) ++
tr (intagAttr "th" "rowspan=\"6\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.past.progressive ! Pos ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.progressive ! Pos ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.past.progressive ! Pos ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.progressive ! Pos ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.past.progressive ! Pos ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.progressive ! Pos ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.past.progressive ! Pos ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.progressive ! Pos ! P3 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"6\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.indicative.past.progressive ! Neg ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.progressive ! Neg ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.indicative.past.progressive ! Neg ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.progressive ! Neg ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.indicative.past.progressive ! Neg ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.progressive ! Neg ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.indicative.past.progressive ! Neg ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.indicative.past.progressive ! Neg ! P3 ! Pl))) ++
heading2 "Imperative" ++
frameTable (
tr (intagAttr "th" "rowspan=\"4\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "Informal" ++ th "Sg" ++ td (x.Imperative_Jussive ! Pos ! Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Imperative_Jussive ! Pos ! Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "Formal" ++ th "Sg" ++ td (x.Imperative_Jussive ! Pos ! Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Imperative_Jussive ! Pos ! Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "Informal" ++ th "Sg" ++ td (x.Imperative_Jussive ! Neg ! Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Imperative_Jussive ! Neg ! Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "Formal" ++ th "Sg" ++ td (x.Imperative_Jussive ! Neg ! Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Imperative_Jussive ! Neg ! Formal ! Pl))) ++
tr (intagAttr "th" "rowspan=\"4\"" "Pos" ++ intagAttr "th" "rowspan=\"2\"" "Informal" ++ th "Sg" ++ td (x.imperative ! Pos ! Informal ! Sg)) ++
tr (th "Pl" ++ td (x.imperative ! Pos ! Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "Formal" ++ th "Sg" ++ td (x.imperative ! Pos ! Formal ! Sg)) ++
tr (th "Pl" ++ td (x.imperative ! Pos ! Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"4\"" "Neg" ++ intagAttr "th" "rowspan=\"2\"" "Informal" ++ th "Sg" ++ td (x.imperative ! Neg ! Informal ! Sg)) ++
tr (th "Pl" ++ td (x.imperative ! Neg ! Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "Formal" ++ th "Sg" ++ td (x.imperative ! Neg ! Formal ! Sg)) ++
tr (th "Pl" ++ td (x.imperative ! Neg ! Formal ! Pl))) ++
heading2 "Subjunctive" ++
frameTable (
tr (intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.Subjunctive ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.Subjunctive ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.Subjunctive ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.Subjunctive ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.Subjunctive ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.Subjunctive ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.Subjunctive ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.Subjunctive ! P3 ! Pl))) ;
tr (intagAttr "th" "rowspan=\"2\"" "P1" ++ th "Sg" ++ td (x.subjunctive ! P1 ! Sg)) ++
tr (th "Pl" ++ td (x.subjunctive ! P1 ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Informal" ++ th "Sg" ++ td (x.subjunctive ! P2 Informal ! Sg)) ++
tr (th "Pl" ++ td (x.subjunctive ! P2 Informal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P2 Formal" ++ th "Sg" ++ td (x.subjunctive ! P2 Formal ! Sg)) ++
tr (th "Pl" ++ td (x.subjunctive ! P2 Formal ! Pl)) ++
tr (intagAttr "th" "rowspan=\"2\"" "P3" ++ th "Sg" ++ td (x.subjunctive ! P3 ! Sg)) ++
tr (th "Pl" ++ td (x.subjunctive ! P3 ! Pl))) ;
s3=[]
} ;

File diff suppressed because it is too large Load Diff

View File

@@ -81,12 +81,12 @@ oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str
param Polarity = Pos | Neg ;
oper Verb = {Infinitive: Str; Indicative: {Fut: Str; Pres: {Progressive: Polarity => Person => Number => Str; noAspect: Polarity => Person => Number => Str}; Past: {Perfect: Polarity => Person => Number => Str; Progressive: Polarity => Person => Number => Str; noAspect: Polarity => Person => Number => Str}}; Imperative_Jussive: Polarity => Formality => Number => Str; Subjunctive: Person => Number => Str} ; -- 113
oper Verb = {infinitive: Str; indicative: {fut: Str; pres: {progressive: Polarity => Person => Number => Str; noAspect: Polarity => Person => Number => Str}; past: {perfect: Polarity => Person => Number => Str; progressive: Polarity => Person => Number => Str; noAspect: Polarity => Person => Number => Str}}; imperative: Polarity => Formality => Number => Str; subjunctive: Person => Number => Str} ; -- 113
oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Verb =
\f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,f17,f18,f19,f20,f21,f22,f23,f24,f25,f26,f27,f28,f29,f30,f31,f32,f33,f34,f35,f36,f37,f38,f39,f40,f41,f42,f43,f44,f45,f46,f47,f48,f49,f50,f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61,f62,f63,f64,f65,f66,f67,f68,f69,f70,f71,f72,f73,f74,f75,f76,f77,f78,f79,f80,f81,f82,f83,f84,f85,f86,f87,f88,f89,f90,f91,f92,f93,f94,f95,f96,f97,f98 ->
{ Infinitive = f1 ;
Indicative = { Fut = f2 ;
Pres = { Progressive = table {
{ infinitive = f1 ;
indicative = { fut = f2 ;
pres = { progressive = table {
Pos => table {
P1 => table {
Sg => f3 ;
@@ -163,7 +163,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_
}
}
} ;
Past = { Perfect = table {
past = { perfect = table {
Pos => table {
P1 => table {
Sg => f35 ;
@@ -201,7 +201,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_
}
}
} ;
Progressive = table {
progressive = table {
Pos => table {
P1 => table {
Sg => f51 ;
@@ -279,7 +279,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_
}
}
} ;
Imperative_Jussive = table {
imperative = table {
Pos => table {
Informal => table {
Sg => f83 ;
@@ -301,7 +301,7 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_
}
}
} ;
Subjunctive = table {
subjunctive = table {
P1 => table {
Sg => f91 ;
Pl => f92