1
0
forked from GitHub/gf-rgl

update after changes in the rgl-learner

This commit is contained in:
Krasimir Angelov
2024-12-04 07:55:20 +01:00
parent 89f2a9dea6
commit 8e47600671
4 changed files with 13495 additions and 9546 deletions

View File

@@ -21,11 +21,11 @@ lin InflectionN,InflectionN2,InflectionN3 = \x -> {
tr (th "Loc" ++ td (x.s ! Loc ! Sg) ++ td (x.s ! Loc ! Pl)) ++
tr (intagAttr "th" "colspan=\"3\"" "poss") ++
tr (th "" ++ th "Sg" ++ th "Pl") ++
tr (th "P1 Sg" ++ td (x.poss ! Poss1Sg ! Sg) ++ td (x.poss ! Poss1Sg ! Pl)) ++
tr (th "P1 Pl" ++ td (x.poss ! Poss1Pl ! Sg) ++ td (x.poss ! Poss1Pl ! Pl)) ++
tr (th "P2 Sg Informal" ++ td (x.poss ! Poss2Sg Informal ! Sg) ++ td (x.poss ! Poss2Sg Informal ! Pl)) ++
tr (th "P2 Sg Formal" ++ td (x.poss ! Poss2Sg Formal ! Sg) ++ td (x.poss ! Poss2Sg Formal ! Pl)) ++
tr (th "P3 Sg" ++ td (x.poss ! Poss3Sg ! Sg) ++ td (x.poss ! Poss3Sg ! Pl))) ;
tr (th "P1 Sg" ++ td (x.poss ! Sg ! P1 ! Sg) ++ td (x.poss ! Sg ! P1 ! Pl)) ++
tr (th "P1 Pl" ++ td (x.poss ! Pl ! P1 ! Sg) ++ td (x.poss ! Pl ! P1 ! Pl)) ++
tr (th "P2 Sg Informal" ++ td (x.poss ! Sg ! P2 Informal ! Sg) ++ td (x.poss ! Sg ! P2 Informal ! Pl)) ++
tr (th "P2 Sg Formal" ++ td (x.poss ! Sg ! P2 Formal ! Sg) ++ td (x.poss ! Sg ! P2 Formal ! Pl)) ++
tr (th "P3 Sg" ++ td (x.poss ! Sg ! P3 ! Sg) ++ td (x.poss ! Sg ! P3 ! Pl))) ;
s3=[]
} ;
@@ -40,70 +40,90 @@ lin InflectionV, InflectionV2, InflectionV3, InflectionV2V, InflectionV2S,
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" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Pos ! P2 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Pos ! P2 ! 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" ++ th "Sg" ++ td (x.Indicative.Pres.noAspect ! Neg ! P2 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.noAspect ! Neg ! P2 ! 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" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Pos ! P2 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Pos ! P2 ! 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" ++ th "Sg" ++ td (x.Indicative.Pres.Progressive ! Neg ! P2 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Pres.Progressive ! Neg ! P2 ! 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" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Pos ! P2 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Pos ! P2 ! 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" ++ th "Sg" ++ td (x.Indicative.Past.noAspect ! Neg ! P2 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.noAspect ! Neg ! P2 ! 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" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Pos ! P2 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Pos ! P2 ! 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" ++ th "Sg" ++ td (x.Indicative.Past.Perfect ! Neg ! P2 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Perfect ! Neg ! P2 ! 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" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Pos ! P2 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Pos ! P2 ! 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" ++ th "Sg" ++ td (x.Indicative.Past.Progressive ! Neg ! P2 ! Sg)) ++
tr (th "Pl" ++ td (x.Indicative.Past.Progressive ! Neg ! P2 ! 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" ++
@@ -120,8 +140,10 @@ lin InflectionV, InflectionV2, InflectionV3, InflectionV2V, InflectionV2S,
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" ++ th "Sg" ++ td (x.Subjunctive ! P2 ! Sg)) ++
tr (th "Pl" ++ td (x.Subjunctive ! P2 ! 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

@@ -1,391 +1,347 @@
resource ParadigmsKaz = MorphoKaz ** open Prelude, CatKaz, ResKaz in {
resource ParadigmsKaz = MorphoKaz ** open Predef, Prelude, CatKaz, ResKaz in {
oper
regN : Str -> N
= \form -> case form of {
_ + "пап" => mkN001 form;
_ + "нып" => mkN028 form;
_ + "ірт" => mkN007 form;
_ + "ілт" => mkN007 form;
_ + "ент" => mkN007 form;
_ + "рық" => mkN013 form;
_ + "уық" => mkN013 form;
_ + "қық" => mkN013 form;
_ + "йық" => mkN013 form;
_ + "бық" => mkN013 form;
_ + "зық" => mkN013 form;
_ + "ңеш" => mkN036 form;
_ + "дам" => mkN002 form;
_ + "шам" => mkN002 form;
_ + "нам" => mkN004 form;
_ + "ным" => mkN032 form;
_ + "тым" => mkN032 form;
_ + "мар" => mkN004 form;
_ + "ңір" => mkN011 form;
_ + "діл" => mkN011 form;
_ + "тіл" => mkN011 form;
_ + "ріл" => mkN011 form;
_ + "иыл" => mkN010 form;
_ + "рік" => mkN023 form;
_ + "сік" => mkN023 form;
_ + "шік" => mkN023 form;
_ + "пік" => mkN023 form;
_ + "зік" => mkN023 form;
_ + "біз" => mkN008 form;
_ + "сөз" => mkN008 form;
_ + "іру" => mkN011 form;
_ + "ьша" => mkN056 form;
_ + "ыша" => mkN056 form;
_ + "опа" => mkN056 form;
_ + "нші" => mkN022 form;
_ + "кші" => mkN022 form;
_ + "зші" => mkN022 form;
_ + "иші" => mkN022 form;
_ + "лші" => mkN022 form;
_ + "пші" => mkN022 form;
_ + "ңкі" => mkN022 form;
_ + "кте" => mkN022 form;
_ + "рпе" => mkN022 form;
_ + "кше" => mkN022 form;
_ + "йде" => mkN022 form;
_ + "еде" => mkN055 form;
_ + "өбе" => mkN022 form;
_ + "ңге" => mkN055 form;
_ + "іс" => mkN007 form;
_ + "ес" => mkN007 form;
_ + "үс" => mkN007 form;
_ + "өс" => mkN007 form;
_ + "ап" => mkN028 form;
_ + "оп" => mkN001 form;
_ + "ып" => mkN001 form;
_ + "ит" => mkN007 form;
_ + "өт" => mkN007 form;
_ + "ет" => mkN007 form;
_ + "үт" => mkN007 form;
_ + "іт" => mkN007 form;
_ + "ст" => mkN007 form;
_ + "ақ" => mkN013 form;
_ + "яқ" => mkN013 form;
_ + "еш" => mkN007 form;
_ + "іш" => mkN007 form;
_ + "үш" => mkN007 form;
_ + "ам" => mkN032 form;
_ + "ым" => mkN002 form;
_ + "ұм" => mkN002 form;
_ + "ән" => mkN014 form;
_ + "ін" => mkN014 form;
_ + "ен" => mkN014 form;
_ + "үн" => mkN014 form;
_ + "өң" => mkN014 form;
_ + "ең" => mkN014 form;
_ + "ің" => mkN014 form;
_ + "үң" => mkN014 form;
_ + "вр" => mkN004 form;
_ + "ір" => mkN024 form;
_ + "ер" => mkN024 form;
_ + "үр" => mkN024 form;
_ + "өр" => mkN024 form;
_ + "әр" => mkN024 form;
_ + "ел" => mkN025 form;
_ + "іл" => mkN025 form;
_ + "өл" => mkN025 form;
_ + "үл" => mkN025 form;
_ + "ек" => mkN023 form;
_ + "із" => mkN016 form;
_ + "өз" => mkN016 form;
_ + "үз" => mkN016 form;
_ + "ез" => mkN016 form;
_ + "ий" => mkN011 form;
_ + "ей" => mkN011 form;
_ + "еу" => mkN024 form;
_ + "ва" => mkN056 form;
_ + "уа" => mkN056 form;
_ + "йы" => mkN056 form;
_ + "ия" => mkN056 form;
_ + "ні" => mkN022 form;
_ + "рі" => mkN022 form;
_ + "сі" => mkN022 form;
_ + "ке" => mkN022 form;
_ + "ме" => mkN022 form;
_ + "зе" => mkN022 form;
_ + "же" => mkN022 form;
_ + "пе" => mkN055 form;
regN : Str -> N -- s;Nom;Sg
= \form -> case form of {
_ + "дас" => mkN004 form;
_ + "нас" => mkN004 form;
_ + "йыс" => mkN004 form;
_ + "дыс" => mkN020 form;
_ + "ніс" => mkN009 form;
_ + "гіс" => mkN009 form;
_ + "тіс" => mkN022 form;
_ + "мес" => mkN009 form;
_ + "ғат" => mkN020 form;
_ + "нат" => mkN004 form;
_ + "пат" => mkN004 form;
_ + "жат" => mkN004 form;
_ + "зат" => mkN020 form;
_ + "ұлт" => mkN004 form;
_ + "ілт" => mkN021 form;
_ + "уыт" => mkN004 form;
_ + "ірт" => mkN009 form;
_ + "орт" => mkN020 form;
_ + "ырт" => mkN020 form;
_ + "шот" => mkN004 form;
_ + "ант" => mkN004 form;
_ + "ент" => mkN021 form;
_ + "хит" => mkN004 form;
_ + "нөт" => mkN009 form;
_ + "тет" => mkN009 form;
_ + "лет" => mkN022 form;
_ + "ует" => mkN022 form;
_ + "шіт" => mkN009 form;
_ + "гіт" => mkN009 form;
_ + "ныш" => mkN001 form;
_ + "лыш" => mkN001 form;
_ + "ңеш" => mkN055 form;
_ + "піш" => mkN021 form;
_ + "ніш" => mkN021 form;
_ + "ліш" => mkN021 form;
_ + "ріш" => mkN022 form;
_ + "шам" => mkN003 form;
_ + "нам" => mkN064 form;
_ + "йым" => mkN026 form;
_ + "рым" => mkN026 form;
_ + "жым" => mkN026 form;
_ + "ным" => mkN066 form;
_ + "тым" => mkN066 form;
_ + "нім" => mkN016 form;
_ + "рім" => mkN035 form;
_ + "дем" => mkN035 form;
_ + "тан" => mkN003 form;
_ + "қан" => mkN003 form;
_ + "ран" => mkN003 form;
_ + "жан" => mkN003 form;
_ + "оян" => mkN003 form;
_ + "мән" => mkN028 form;
_ + "сін" => mkN028 form;
_ + "кін" => mkN028 form;
_ + "гін" => mkN035 form;
_ + "лен" => mkN028 form;
_ + "рен" => mkN028 form;
_ + "йың" => mkN003 form;
_ + "заң" => mkN019 form;
_ + "пап" => mkN004 form;
_ + "лып" => mkN004 form;
_ + "қып" => mkN020 form;
_ + "сық" => mkN004 form;
_ + "шық" => mkN004 form;
_ + "зақ" => mkN004 form;
_ + "уақ" => mkN004 form;
_ + "қақ" => mkN004 form;
_ + "ыла" => mkN030 form;
_ + "ола" => mkN030 form;
_ + "рда" => mkN030 form;
_ + "ұра" => mkN030 form;
_ + "йра" => mkN030 form;
_ + "аға" => mkN030 form;
_ + "ұма" => mkN030 form;
_ + "йна" => mkN030 form;
_ + "хна" => mkN030 form;
_ + "ина" => mkN030 form;
_ + "зба" => mkN030 form;
_ + "шқа" => mkN030 form;
_ + "сқа" => mkN030 form;
_ + "ьша" => mkN024 form;
_ + "ыша" => mkN024 form;
_ + "опа" => mkN024 form;
_ + "ашы" => mkN005 form;
_ + "лшы" => mkN005 form;
_ + "яшы" => mkN005 form;
_ + "юшы" => mkN005 form;
_ + "озы" => mkN005 form;
_ + "аты" => mkN024 form;
_ + "ция" => mkN030 form;
_ + "бар" => mkN017 form;
_ + "уар" => mkN017 form;
_ + "сар" => mkN017 form;
_ + "пар" => mkN017 form;
_ + "мыр" => mkN025 form;
_ + "сыр" => mkN017 form;
_ + "тыр" => mkN017 form;
_ + "жыр" => mkN017 form;
_ + "ңір" => mkN018 form;
_ + "қай" => mkN017 form;
_ + "най" => mkN025 form;
_ + "уру" => mkN006 form;
_ + "іру" => mkN018 form;
_ + "жау" => mkN006 form;
_ + "ғау" => mkN006 form;
_ + "ұну" => mkN017 form;
_ + "діл" => mkN018 form;
_ + "тіл" => mkN018 form;
_ + "ріл" => mkN018 form;
_ + "пал" => mkN038 form;
_ + "сал" => mkN038 form;
_ + "иыл" => mkN025 form;
_ + "қыл" => mkN038 form;
_ + "жол" => mkN038 form;
_ + "дек" => mkN009 form;
_ + "жек" => mkN009 form;
_ + "тек" => mkN009 form;
_ + "рік" => mkN033 form;
_ + "жік" => mkN009 form;
_ + "сік" => mkN033 form;
_ + "шік" => mkN033 form;
_ + "пік" => mkN033 form;
_ + "зік" => mkN033 form;
_ + "біз" => mkN010 form;
_ + "көз" => mkN010 form;
_ + "сөз" => mkN067 form;
_ + "быз" => mkN039 form;
_ + "кше" => mkN042 form;
_ + "рпе" => mkN042 form;
_ + "еде" => mkN023 form;
_ + "йде" => mkN042 form;
_ + "өбе" => mkN042 form;
_ + "ңге" => mkN023 form;
_ + "кте" => mkN042 form;
_ + "мле" => mkN042 form;
_ + "кші" => mkN042 form;
_ + "нші" => mkN042 form;
_ + "зші" => mkN042 form;
_ + "иші" => mkN042 form;
_ + "лші" => mkN042 form;
_ + "пші" => mkN042 form;
_ + "ңкі" => mkN042 form;
_ + "іс" => mkN021 form;
_ + "ес" => mkN021 form;
_ + "үс" => mkN021 form;
_ + "өс" => mkN021 form;
_ + "ит" => mkN021 form;
_ + "өт" => mkN021 form;
_ + "ет" => mkN021 form;
_ + "іт" => mkN021 form;
_ + "ст" => mkN021 form;
_ + "ят" => mkN020 form;
_ + "үт" => mkN022 form;
_ + "аш" => mkN001 form;
_ + "еш" => mkN021 form;
_ + "іш" => mkN009 form;
_ + "үш" => mkN021 form;
_ + "ам" => mkN002 form;
_ + "ым" => mkN003 form;
_ + "ұм" => mkN003 form;
_ + "әм" => mkN016 form;
_ + "ем" => mkN016 form;
_ + "зм" => mkN035 form;
_ + "ын" => mkN003 form;
_ + "он" => mkN003 form;
_ + "ән" => mkN016 form;
_ + "ін" => mkN016 form;
_ + "үн" => mkN016 form;
_ + "ен" => mkN016 form;
_ + "ың" => mkN026 form;
_ + "аң" => mkN003 form;
_ + "оң" => mkN026 form;
_ + "өп" => mkN022 form;
_ + "іп" => mkN009 form;
_ + "оп" => mkN020 form;
_ + "еп" => mkN022 form;
_ + "ық" => mkN020 form;
_ + "оқ" => mkN020 form;
_ + "ңқ" => mkN020 form;
_ + "та" => mkN030 form;
_ + "ша" => mkN030 form;
_ + "ва" => mkN024 form;
_ + "ка" => mkN030 form;
_ + "уа" => mkN024 form;
_ + "са" => mkN030 form;
_ + "жа" => mkN030 form;
_ + "қы" => mkN005 form;
_ + "жы" => mkN005 form;
_ + "йы" => mkN024 form;
_ + "вр" => mkN006 form;
_ + "ур" => mkN006 form;
_ + "ор" => mkN006 form;
_ + "ар" => mkN006 form;
_ + "ыр" => mkN006 form;
_ + "яр" => mkN006 form;
_ + "ір" => mkN036 form;
_ + "ұр" => mkN025 form;
_ + "әр" => mkN036 form;
_ + "ий" => mkN018 form;
_ + "ей" => mkN018 form;
_ + "ау" => mkN017 form;
_ + "қу" => mkN017 form;
_ + "еу" => mkN034 form;
_ + "ел" => mkN007 form;
_ + "іл" => mkN007 form;
_ + "үл" => mkN037 form;
_ + "өл" => mkN037 form;
_ + "ек" => mkN033 form;
_ + "үк" => mkN009 form;
_ + "із" => mkN029 form;
_ + "үз" => mkN029 form;
_ + "өз" => mkN029 form;
_ + "ез" => mkN010 form;
_ + "аз" => mkN039 form;
_ + "әж" => mkN029 form;
_ + "пе" => mkN023 form;
_ + "ке" => mkN042 form;
_ + "ме" => mkN042 form;
_ + "зе" => mkN042 form;
_ + "же" => mkN042 form;
_ + "рі" => mkN042 form;
_ + "ні" => mkN042 form;
_ + "сі" => mkN042 form;
_ + "с" => mkN001 form;
_ + "п" => mkN007 form;
_ + "т" => mkN001 form;
_ + "д" => mkN001 form;
_ + "қ" => mkN001 form;
_ + "ш" => mkN001 form;
_ + "х" => mkN001 form;
_ + "м" => mkN014 form;
_ + "н" => mkN002 form;
_ + "ң" => mkN002 form;
_ + "р" => mkN010 form;
_ + "л" => mkN015 form;
_ + "к" => mkN007 form;
_ + "з" => mkN012 form;
_ + "и" => mkN010 form;
_ + "й" => mkN010 form;
_ + "ю" => mkN010 form;
_ + "у" => mkN010 form;
_ + "ж" => mkN012 form;
_ + "а" => mkN017 form;
_ + "ы" => mkN017 form;
_ + "я" => mkN017 form;
_ + "і" => mkN057 form;
_ + "е" => mkN057 form;
_ + "ә" => mkN057 form
} ;
_ + "ш" => mkN004 form;
_ + "м" => mkN028 form;
_ + "н" => mkN026 form;
_ + "ң" => mkN016 form;
_ + "п" => mkN043 form;
_ + "д" => mkN004 form;
_ + "қ" => mkN015 form;
_ + "х" => mkN004 form;
_ + "а" => mkN005 form;
_ + "ы" => mkN030 form;
_ + "я" => mkN024 form;
_ + "р" => mkN034 form;
_ + "и" => mkN006 form;
_ + "й" => mkN006 form;
_ + "ю" => mkN006 form;
_ + "у" => mkN025 form;
_ + "л" => mkN027 form;
_ + "к" => mkN022 form;
_ + "з" => mkN013 form;
_ + "ж" => mkN013 form;
_ + "е" => mkN032 form;
_ + "і" => mkN032 form;
_ + "ә" => mkN032 form;
_ => error "Cannot find an inflection rule"
} ;
reg2N : Str -> Str -> N
= \form1, form2 -> case <form1, form2> of {
<_ + "пап", _> => mkN001 form1;
<_ + "нып", _> => mkN028 form1;
<_ + "ірт", _> => mkN007 form1;
<_ + "ілт", _> => mkN007 form1;
<_ + "ент", _> => mkN007 form1;
<_ + "рық", _> => mkN013 form1;
<_ + "уық", _> => mkN013 form1;
<_ + "қық", _> => mkN013 form1;
<_ + "йық", _> => mkN013 form1;
<_ + "бық", _> => mkN013 form1;
<_ + "зық", _> => mkN013 form1;
<_ + "ңеш", _> => mkN036 form1;
<_ + "дам", _> => mkN002 form1;
<_ + "шам", _> => mkN002 form1;
<_ + "нам", _> => mkN004 form1;
<_ + "ным", _> => mkN032 form1;
<_ + "тым", _> => mkN032 form1;
<_ + "мар", _> => mkN004 form1;
<_ + "ңір", _> => mkN011 form1;
<_ + "діл", _> => mkN011 form1;
<_ + "тіл", _> => mkN011 form1;
<_ + "ріл", _> => mkN011 form1;
<_ + "иыл", _> => mkN010 form1;
<_ + "рік", _> => mkN023 form1;
<_ + "сік", _> => mkN023 form1;
<_ + "шік", _> => mkN023 form1;
<_ + "пік", _> => mkN023 form1;
<_ + "зік", _> => mkN023 form1;
<_ + "біз", _> => mkN008 form1;
<_ + "сөз", _> => mkN008 form1;
<_ + "іру", _> => mkN011 form1;
<_ + "ьша", _> => mkN056 form1;
<_ + "ыша", _> => mkN056 form1;
<_ + "опа", _> => mkN056 form1;
<_ + "нші", _> => mkN022 form1;
<_ + "кші", _> => mkN022 form1;
<_ + "зші", _> => mkN022 form1;
<_ + "иші", _> => mkN022 form1;
<_ + "лші", _> => mkN022 form1;
<_ + "пші", _> => mkN022 form1;
<_ + "ңкі", _> => mkN022 form1;
<_ + "кте", _> => mkN022 form1;
<_ + "рпе", _> => mkN022 form1;
<_ + "кше", _> => mkN022 form1;
<_ + "йде", _> => mkN022 form1;
<_ + "еде", _> => mkN055 form1;
<_ + "өбе", _> => mkN022 form1;
<_ + "ңге", _> => mkN055 form1;
<_ + "іс", _> => mkN007 form1;
<_ + "ес", _> => mkN007 form1;
<_ + "үс", _> => mkN007 form1;
<_ + "өс", _> => mkN007 form1;
<_ + "ап", _> => mkN028 form1;
<_ + "оп", _> => mkN001 form1;
<_ + "ып", _> => mkN001 form1;
<_ + "ит", _> => mkN007 form1;
<_ + "өт", _> => mkN007 form1;
<_ + "ет", _> => mkN007 form1;
<_ + "үт", _> => mkN007 form1;
<_ + "іт", _> => mkN007 form1;
<_ + "ст", _> => mkN007 form1;
<_ + "ақ", _> => mkN013 form1;
<_ + "яқ", _> => mkN013 form1;
<_ + "еш", _> => mkN007 form1;
<_ + "іш", _> => mkN007 form1;
<_ + "үш", _> => mkN007 form1;
<_ + "ам", _> => mkN032 form1;
<_ + "ым", _> => mkN002 form1;
<_ + "ұм", _> => mkN002 form1;
<_ + "ән", _> => mkN014 form1;
<_ + "ін", _> => mkN014 form1;
<_ + "ен", _> => mkN014 form1;
<_ + "үн", _> => mkN014 form1;
<_ + "өң", _> => mkN014 form1;
<_ + "ең", _> => mkN014 form1;
<_ + "ің", _> => mkN014 form1;
<_ + "үң", _> => mkN014 form1;
<_ + "вр", _> => mkN004 form1;
<_ + "ір", _> => mkN024 form1;
<_ + "ер", _> => mkN024 form1;
<_ + "үр", _> => mkN024 form1;
<_ + "өр", _> => mkN024 form1;
<_ + "әр", _> => mkN024 form1;
<_ + "ел", _> => mkN025 form1;
<_ + "іл", _> => mkN025 form1;
<_ + "өл", _> => mkN025 form1;
<_ + "үл", _> => mkN025 form1;
<_ + "ек", _> => mkN023 form1;
<_ + "із", _> => mkN016 form1;
<_ + "өз", _> => mkN016 form1;
<_ + "үз", _> => mkN016 form1;
<_ + "ез", _> => mkN016 form1;
<_ + "ий", _> => mkN011 form1;
<_ + "ей", _> => mkN011 form1;
<_ + "еу", _> => mkN024 form1;
<_ + "ва", _> => mkN056 form1;
<_ + "уа", _> => mkN056 form1;
<_ + "йы", _> => mkN056 form1;
<_ + "ия", _> => mkN056 form1;
<_ + "ні", _> => mkN022 form1;
<_ + "рі", _> => mkN022 form1;
<_ + "сі", _> => mkN022 form1;
<_ + "ке", _> => mkN022 form1;
<_ + "ме", _> => mkN022 form1;
<_ + "зе", _> => mkN022 form1;
<_ + "же", _> => mkN022 form1;
<_ + "пе", _> => mkN055 form1;
<_ + "с", _> => mkN001 form1;
<_ + "п", _> => mkN007 form1;
<_ + "т", _> => mkN001 form1;
<_ + "д", _> => mkN001 form1;
<_ + "қ", _> => mkN001 form1;
<_ + "ш", _> => mkN001 form1;
<_ + "х", _> => mkN001 form1;
<_ + "м", _> => mkN014 form1;
<_ + "н", _> => mkN002 form1;
<_ + "ң", _> => mkN002 form1;
<_ + "р", _> => mkN010 form1;
<_ + "л", _> => mkN015 form1;
<_ + "к", _> => mkN007 form1;
<_ + "з", _> => mkN012 form1;
<_ + "и", _> => mkN010 form1;
<_ + "й", _> => mkN010 form1;
<_ + "ю", _> => mkN010 form1;
<_ + "у", _> => mkN010 form1;
<_ + "ж", _> => mkN012 form1;
<_ + "а", _> => mkN017 form1;
<_ + "ы", _> => mkN017 form1;
<_ + "я", _> => mkN017 form1;
<_ + "і", _> => mkN057 form1;
<_ + "е", _> => mkN057 form1;
<_ + "ә", _> => mkN057 form1
} ;
reg2N : Str -> Str -> N -- s;Nom;Sg poss;Sg;P3;Pl
= \form1, form2 -> case <form1, form2> of {
<_ + "ғат", _ + "ы"> => mkN001 form1;
<_ + "нат", _ + "ы"> => mkN001 form1;
<_ + "уыт", _ + "ы"> => mkN001 form1;
<_ + "пат", _ + "ы"> => mkN001 form1;
<_ + "дас", _ + "ы"> => mkN001 form1;
<_ + "йым", _ + "ы"> => mkN002 form1;
<_ + "тан", _ + "ы"> => mkN026 form1;
<_ + "қан", _ + "ы"> => mkN026 form1;
<_ + "ран", _ + "ы"> => mkN026 form1;
<_ + "сық", _ + "ы"> => mkN015 form1;
<_ + "шық", _ + "ы"> => mkN015 form1;
<_ + "зба", _ + "ы"> => mkN005 form1;
<_ + "мыр", _ + "ы"> => mkN017 form1;
<_ + "дек", _ + "і"> => mkN033 form1;
<_ + "тек", _ + "і"> => mkN033 form1;
<_ + "көз", _ + "і"> => mkN029 form1;
<_ + "ым", _ + "ы"> => mkN002 form1;
<_ + "ын", _ + "ы"> => mkN026 form1;
<_ + "аң", _ + "ы"> => mkN026 form1;
<_ + "ық", _ + "ы"> => mkN015 form1;
<_ + "та", _ + "ы"> => mkN005 form1;
<_ + "ша", _ + "ы"> => mkN005 form1;
<_ + "ор", _ + "ы"> => mkN017 form1;
<_ + "ар", _ + "ы"> => mkN017 form1;
<_ + "ыр", _ + "ы"> => mkN017 form1;
<_ + "үл", _ + "і"> => mkN007 form1;
<_ + "өл", _ + "і"> => mkN007 form1;
<_ + "іш", _ + "і"> => mkN021 form1;
<_ + "ір", _ + "і"> => mkN034 form1;
<_ + "оп", _ + "ы"> => mkN043 form1;
<_ + "т", _ + "і"> => mkN021 form1;
<_ + "ш", _ + "ы"> => mkN001 form1;
<_ + "ы", _ + "ы"> => mkN005 form1;
<_ + "я", _ + "ы"> => mkN005 form1;
<_ + "й", _ + "ы"> => mkN017 form1;
<_ + "й", _ + "і"> => mkN034 form1;
<_ + "у", _ + "ы"> => mkN017 form1;
<_ + "к", _ + "і"> => mkN033 form1;
<_ + "з", _ + "ы"> => mkN039 form1;
<_ + "м", _ + "і"> => mkN016 form1;
<_ + "е", _ + "і"> => mkN042 form1;
<_ + "і", _ + "і"> => mkN042 form1;
_ => regN form1
} ;
regV : Str -> V
= \form -> case form of {
regV : Str -> V -- Infinitive
= \form -> case form of {
_ + "лту" => mkV005 form;
_ + "рту" => mkV007 form;
_ + "ету" => mkV007 form;
_ + "pту" => mkV007 form;
_ + "eту" => mkV007 form;
_ + "iту" => mkV007 form;
_ + "үту" => mkV010 form;
_ + "тау" => mkV006 form;
_ + "сау" => mkV006 form;
_ + "нау" => mkV011 form;
_ + "қау" => mkV011 form;
_ + "рау" => mkV026 form;
_ + "ару" => mkV003 form;
_ + "ыру" => mkV003 form;
_ + "iру" => mkV023 form;
_ + "тaу" => mkV006 form;
_ + "сaу" => mkV006 form;
_ + "нaу" => mkV011 form;
_ + "қaу" => mkV011 form;
_ + "paу" => mkV026 form;
_ + "apу" => mkV003 form;
_ + "ыpу" => mkV003 form;
_ + "ipу" => mkV023 form;
_ + "ту" => mkV001 form;
_ + "ау" => mkV002 form;
_ + "aу" => mkV002 form;
_ + "лу" => mkV033 form;
_ + "шу" => mkV010 form;
_ + "уу" => mkV006 form;
_ + "еу" => mkV009 form;
_ + "eу" => mkV009 form;
_ + "су" => mkV010 form;
_ + "бу" => mkV020 form;
_ + "ңу" => mkV023 form;
_ + "у" => mkV016 form
} ;
_ + "у" => mkV016 form;
_ => error "Cannot find an inflection rule"
} ;
reg2V : Str -> Str -> V
= \form1, form2 -> case <form1, form2> of {
<_ + "лту", _> => mkV005 form1;
<_ + "рту", _> => mkV007 form1;
<_ + "ету", _> => mkV007 form1;
<_ + "iту", _> => mkV007 form1;
<_ + "үту", _> => mkV010 form1;
<_ + "тау", _> => mkV006 form1;
<_ + "сау", _> => mkV006 form1;
<_ + "нау", _> => mkV011 form1;
<_ + "қау", _> => mkV011 form1;
<_ + "рау", _> => mkV026 form1;
<_ + "ару", _> => mkV003 form1;
<_ + "ыру", _> => mkV003 form1;
<_ + "iру", _> => mkV023 form1;
<_ + "ау", _ + "iн"> => mkV011 form1;
<_ + "ту", _> => mkV001 form1;
<_ + "ау", _> => mkV002 form1;
<_ + "лу", _> => mkV033 form1;
<_ + "шу", _> => mkV010 form1;
<_ + "уу", _> => mkV006 form1;
<_ + "еу", _> => mkV009 form1;
<_ + "су", _> => mkV010 form1;
<_ + "бу", _> => mkV020 form1;
<_ + "ңу", _> => mkV023 form1;
<_ + "у", _> => mkV016 form1
} ;
reg2V : Str -> Str -> V -- Infinitive Indicative;Pres;Progressive;Pos;P1;Sg
= \form1, form2 -> case <form1, form2> of {
<_ + "aу", _ + "iн"> => mkV011 form1;
_ => regV form1
} ;
reg3V : Str -> Str -> Str -> V
= \form1, form2, form3 -> case <form1, form2, form3> of {
<_ + "лту", _, _> => mkV005 form1;
<_ + "рту", _, _> => mkV007 form1;
<_ + "ету", _, _> => mkV007 form1;
<_ + "iту", _, _> => mkV007 form1;
<_ + "үту", _, _> => mkV010 form1;
<_ + "тау", _, _> => mkV006 form1;
<_ + "сау", _, _> => mkV006 form1;
<_ + "нау", _, _> => mkV011 form1;
<_ + "қау", _, _> => mkV011 form1;
<_ + "рау", _, _> => mkV026 form1;
<_ + "ару", _, _> => mkV003 form1;
<_ + "ыру", _, _> => mkV003 form1;
<_ + "iру", _, _> => mkV023 form1;
<_ + "ау", _ + "iн", _> => mkV011 form1;
<_ + "ту", _, _> => mkV001 form1;
<_ + "ау", _, _> => mkV002 form1;
<_ + "лу", _, _> => mkV033 form1;
<_ + "шу", _, _> => mkV010 form1;
<_ + "уу", _, _> => mkV006 form1;
<_ + "еу", _, _> => mkV009 form1;
<_ + "су", _, _> => mkV010 form1;
<_ + "бу", _, _> => mkV020 form1;
<_ + "ңу", _, _> => mkV023 form1;
<_ + "у", _, _> => mkV016 form1
} ;
reg4V : Str -> Str -> Str -> Str -> V
= \form1, form2, form3, form4 -> case <form1, form2, form3, form4> of {
<_ + "лту", _, _, _> => mkV005 form1;
<_ + "рту", _, _, _> => mkV007 form1;
<_ + "ету", _, _, _> => mkV007 form1;
<_ + "iту", _, _, _> => mkV007 form1;
<_ + "үту", _, _, _> => mkV010 form1;
<_ + "тау", _, _, _> => mkV006 form1;
<_ + "сау", _, _, _> => mkV006 form1;
<_ + "нау", _, _, _> => mkV011 form1;
<_ + "қау", _, _, _> => mkV011 form1;
<_ + "рау", _, _, _> => mkV026 form1;
<_ + "ару", _, _, _> => mkV003 form1;
<_ + "ыру", _, _, _> => mkV003 form1;
<_ + "iру", _, _, _> => mkV023 form1;
<_ + "ау", _ + "iн", _, _> => mkV011 form1;
<_ + "ту", _, _, _> => mkV001 form1;
<_ + "ау", _, _, _> => mkV002 form1;
<_ + "лу", _, _, _> => mkV033 form1;
<_ + "шу", _, _, _> => mkV010 form1;
<_ + "уу", _, _, _> => mkV006 form1;
<_ + "еу", _, _, _> => mkV009 form1;
<_ + "су", _, _, _> => mkV010 form1;
<_ + "бу", _, _, _> => mkV020 form1;
<_ + "ңу", _, _, _> => mkV023 form1;
<_ + "у", _, _, _> => mkV016 form1
} ;
reg3V : Str -> Str -> Str -> V -- Infinitive Indicative;Pres;Progressive;Pos;P1;Sg Indicative;Pres;Progressive;Pos;P1;Pl
= \form1, form2, form3 -> case <form1, form2, form3> of {
_ => reg2V form1 form2
} ;
mkN = overload {
mkN : Str -> N = regN;
mkN : Str -> Str -> N = reg2N
mkN : Str -> N = regN; -- s;Nom;Sg
mkN : Str -> Str -> N = reg2N -- s;Nom;Sg poss;Sg;P3;Pl
} ;
mkN2 = overload {
@@ -399,10 +355,9 @@ mkGN : Str -> GN = \s -> lin GN {s=s} ;
mkSN : Str -> SN = \s -> lin SN {s=s} ;
mkV = overload {
mkV : Str -> V = regV;
mkV : Str -> Str -> V = reg2V;
mkV : Str -> Str -> Str -> V = reg3V;
mkV : Str -> Str -> Str -> Str -> V = reg4V
mkV : Str -> V = regV; -- Infinitive
mkV : Str -> Str -> V = reg2V; -- Infinitive Indicative;Pres;Progressive;Pos;P1;Sg
mkV : Str -> Str -> Str -> V = reg3V -- Infinitive Indicative;Pres;Progressive;Pos;P1;Sg Indicative;Pres;Progressive;Pos;P1;Pl
} ;
mkV2 = overload {

View File

@@ -2,11 +2,11 @@ resource ResKaz = {
oper Compl = {s : Str} ;
param Case = Nom | Acc | Instr | Ablat | Gen | Loc | Dat ;
param Case = Nom | Acc | Dat | Loc | Gen | Instr | Ablat ;
param Number = Sg | Pl ;
param Possession = Poss3Pl | Poss2Pl Formality | Poss1Pl | Poss2Sg Formality | Poss3Sg | Poss1Sg ;
param Formality = Formal | Informal ;
oper Noun = {s: Case => Number => Str; poss: Possession => Number => Str} ; -- 1651
param Person = P1 | P2 Formality | P3 ;
param Formality = Informal | Formal ;
oper Noun = {s: Case => Number => Str; poss: Number => Person => Number => Str} ; -- 1651
oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str) -> Noun =
\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 ->
{ s = table {
@@ -40,46 +40,47 @@ oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_ : Str
}
} ;
poss = table {
Poss1Pl => table {
Sg => f15 ;
Pl => f16
} ;
Poss1Sg => table {
Sg => f17 ;
Pl => f18
} ;
Poss2Sg Informal => table {
Sg => f19 ;
Pl => f20
} ;
Poss2Sg Formal => table {
Sg => f21 ;
Pl => f22
} ;
Poss2Pl Informal => table {
Sg => f23 ;
Pl => f24
} ;
Poss2Pl Formal => table {
Sg => f25 ;
Pl => f26
} ;
Poss3Sg => table {
Sg => f27 ;
Pl => f28
} ;
Poss3Pl => table {
Sg => f29 ;
Pl => f30
}
Sg => table {
P1 => table {
Sg => f15 ;
Pl => f16
} ;
P2 Informal => table {
Sg => f17 ;
Pl => f18
} ;
P2 Formal => table {
Sg => f19 ;
Pl => f20
} ;
P3 => table {
Sg => f21 ;
Pl => f22
}
} ;
Pl => table {
P1 => table {
Sg => f23 ;
Pl => f24
} ;
P2 Informal => table {
Sg => f25 ;
Pl => f26
} ;
P2 Formal => table {
Sg => f27 ;
Pl => f28
} ;
P3 => table {
Sg => f29 ;
Pl => f30
}
}
}
} ;
param Polarity = Neg | Pos ;
param Number = Sg | Pl ;
param Formality = Formal | Informal ;
param Person = P1 | P2 | P3 ;
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 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 ->
@@ -91,57 +92,73 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_
Sg => f3 ;
Pl => f4
} ;
P2 => table {
Sg => f5 ;
Pl => f6
} ;
P2 Informal => table {
Sg => f5 ;
Pl => f6
} ;
P2 Formal => table {
Sg => f7 ;
Pl => f8
} ;
P3 => table {
Sg => f7 ;
Pl => f8
Sg => f9 ;
Pl => f10
}
} ;
Neg => table {
P1 => table {
Sg => f9 ;
Pl => f10
} ;
P2 => table {
Sg => f11 ;
Pl => f12
} ;
P2 Informal => table {
Sg => f13 ;
Pl => f14
} ;
P2 Formal => table {
Sg => f15 ;
Pl => f16
} ;
P3 => table {
Sg => f13 ;
Pl => f14
Sg => f17 ;
Pl => f18
}
}
} ;
noAspect = table {
Pos => table {
P1 => table {
Sg => f15 ;
Pl => f16
} ;
P2 => table {
Sg => f17 ;
Pl => f18
} ;
P3 => table {
Sg => f19 ;
Pl => f20
} ;
P2 Informal => table {
Sg => f21 ;
Pl => f22
} ;
P2 Formal => table {
Sg => f23 ;
Pl => f24
} ;
P3 => table {
Sg => f25 ;
Pl => f26
}
} ;
Neg => table {
P1 => table {
Sg => f21 ;
Pl => f22
} ;
P2 => table {
Sg => f23 ;
Pl => f24
Sg => f27 ;
Pl => f28
} ;
P2 Informal => table {
Sg => f29 ;
Pl => f30
} ;
P2 Formal => table {
Sg => f31 ;
Pl => f32
} ;
P3 => table {
Sg => f25 ;
Pl => f26
Sg => f33 ;
Pl => f34
}
}
}
@@ -149,90 +166,114 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_
Past = { Perfect = table {
Pos => table {
P1 => table {
Sg => f27 ;
Pl => f28
} ;
P2 => table {
Sg => f29 ;
Pl => f30
Sg => f35 ;
Pl => f36
} ;
P2 Informal => table {
Sg => f37 ;
Pl => f38
} ;
P2 Formal => table {
Sg => f39 ;
Pl => f40
} ;
P3 => table {
Sg => f31 ;
Pl => f32
Sg => f41 ;
Pl => f42
}
} ;
Neg => table {
P1 => table {
Sg => f33 ;
Pl => f34
} ;
P2 => table {
Sg => f35 ;
Pl => f36
Sg => f43 ;
Pl => f44
} ;
P2 Informal => table {
Sg => f45 ;
Pl => f46
} ;
P2 Formal => table {
Sg => f47 ;
Pl => f48
} ;
P3 => table {
Sg => f37 ;
Pl => f38
}
Sg => f49 ;
Pl => f50
}
}
} ;
Progressive = table {
Pos => table {
P1 => table {
Sg => f39 ;
Pl => f40
} ;
P2 => table {
Sg => f41 ;
Pl => f42
Sg => f51 ;
Pl => f52
} ;
P2 Informal => table {
Sg => f53 ;
Pl => f54
} ;
P2 Formal => table {
Sg => f55 ;
Pl => f56
} ;
P3 => table {
Sg => f43 ;
Pl => f44
Sg => f57 ;
Pl => f58
}
} ;
Neg => table {
P1 => table {
Sg => f45 ;
Pl => f46
} ;
P2 => table {
Sg => f47 ;
Pl => f48
Sg => f59 ;
Pl => f60
} ;
P2 Informal => table {
Sg => f61 ;
Pl => f62
} ;
P2 Formal => table {
Sg => f63 ;
Pl => f64
} ;
P3 => table {
Sg => f49 ;
Pl => f50
Sg => f65 ;
Pl => f66
}
}
} ;
noAspect = table {
Pos => table {
P1 => table {
Sg => f51 ;
Pl => f52
} ;
P2 => table {
Sg => f53 ;
Pl => f54
Sg => f67 ;
Pl => f68
} ;
P2 Informal => table {
Sg => f69 ;
Pl => f70
} ;
P2 Formal => table {
Sg => f71 ;
Pl => f72
} ;
P3 => table {
Sg => f55 ;
Pl => f56
}
Sg => f73 ;
Pl => f74
}
} ;
Neg => table {
P1 => table {
Sg => f57 ;
Pl => f58
} ;
P2 => table {
Sg => f59 ;
Pl => f60
Sg => f75 ;
Pl => f76
} ;
P2 Informal => table {
Sg => f77 ;
Pl => f78
} ;
P2 Formal => table {
Sg => f79 ;
Pl => f80
} ;
P3 => table {
Sg => f61 ;
Pl => f62
Sg => f81 ;
Pl => f82
}
}
}
@@ -241,37 +282,41 @@ oper mkVerb : (_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_,_
Imperative_Jussive = table {
Pos => table {
Informal => table {
Sg => f63 ;
Pl => f64
Sg => f83 ;
Pl => f84
} ;
Formal => table {
Sg => f65 ;
Pl => f66
Sg => f85 ;
Pl => f86
}
} ;
Neg => table {
Informal => table {
Sg => f67 ;
Pl => f68
Sg => f87 ;
Pl => f88
} ;
Formal => table {
Sg => f69 ;
Pl => f70
Sg => f89 ;
Pl => f90
}
}
} ;
Subjunctive = table {
P1 => table {
Sg => f71 ;
Pl => f72
} ;
P2 => table {
Sg => f73 ;
Pl => f74
Sg => f91 ;
Pl => f92
} ;
P2 Informal => table {
Sg => f93 ;
Pl => f94
} ;
P2 Formal => table {
Sg => f95 ;
Pl => f96
} ;
P3 => table {
Sg => f75 ;
Pl => f76
Sg => f97 ;
Pl => f98
}
}
} ;