mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-10-25 09:13:18 -06:00
extensions by Codex
This commit is contained in:
1 parent
1cef16870e
commit
0c2471ad68
20 files changed
+658
-177
No files matched your search
@@ -21,7 +21,12 @@ lin
|
||||
|
||||
PositAdAAdj a = a ;
|
||||
|
||||
SubjS subj s = {s = subj.s ++ s.s ! Sub Condl} ;
|
||||
SubjS subj s = {
|
||||
s = case subj.isPre of {
|
||||
True => subj.s ++ s.s ! Sub Condl ;
|
||||
False => s.s ! Sub Condl ++ subj.s
|
||||
}
|
||||
} ;
|
||||
|
||||
AdnCAdv cadv = {
|
||||
s = cadv.s ++ cadv.c2.s
|
||||
|
||||
@@ -61,8 +61,7 @@ lincat
|
||||
Det = {
|
||||
s : Str ;
|
||||
sp : RCase => Str ; -- substantival form
|
||||
isNum : Bool ; -- true, if a numeral is present
|
||||
isPoss : Bool ; -- true, if a possessive is present
|
||||
n : Number ;
|
||||
isDef : Bool ; -- when definite, is true
|
||||
isPre : Bool
|
||||
} ;
|
||||
@@ -75,17 +74,17 @@ lincat
|
||||
Quant = {
|
||||
s : Number => Str ;
|
||||
sp : Number => NCase => Str ;
|
||||
isPoss : Bool ;
|
||||
isDef : Bool
|
||||
} ;
|
||||
|
||||
-- Numeral
|
||||
|
||||
Num = {s : Str ; sp : RCase => Str ; n : Number ; isNum : Bool} ;
|
||||
Card = {s : Str ; sp : RCase => Str ; n : Number} ;
|
||||
Num, Card = {s : Str ; sp : RCase => Str ; n : Number} ;
|
||||
Numeral = {s : CardOrd => Str; n : Number} ;
|
||||
Digits = {s : CardOrd => Str ; n : Number} ;
|
||||
Decimal = {s : CardOrd => Str ; n : Number; hasDot : Bool} ;
|
||||
ACard = {s : Str} ;
|
||||
DAP = {s : RCase => Str ; n : Number} ;
|
||||
|
||||
-- Structural
|
||||
|
||||
@@ -107,7 +106,7 @@ lincat
|
||||
N2 = Noun ** {c2 : Complement} ;
|
||||
N3 = Noun ** {c2,c3 : Complement} ;
|
||||
PN = {s : RCase => Str} ;
|
||||
LN,GN,SN = {s : Str} ;
|
||||
LN,GN,SN = {s : RCase => Str} ;
|
||||
|
||||
Temp = {s : Str ; t : ClTense ; a : Anteriority} ;
|
||||
Tense = {s : Str ; t : ClTense} ;
|
||||
|
||||
@@ -37,7 +37,6 @@ lin
|
||||
n = conjNumber x.n y.n ;
|
||||
p = conjPerson x.p y.p ;
|
||||
isPron = andB x.isPron y.isPron ;
|
||||
isDef = andB x.isDef y.isDef
|
||||
} ;
|
||||
BaseAP = twoSS ;
|
||||
ConsAP = consrSS comma ;
|
||||
@@ -56,7 +55,7 @@ lincat
|
||||
[Adv],[AP],[IAdv] = {s1,s2 : Str} ;
|
||||
[S] = {s1,s2 : SType => Str} ;
|
||||
[RS] = {s1,s2 : ComplType => Str ; existSubject : Bool} ;
|
||||
[NP] = {s1,s2 : RCase => Str ; n : Number ; p : Person ; isPron : Bool ; isDef : Bool} ;
|
||||
[NP] = {s1,s2 : RCase => Str ; n : Number ; p : Person ; isPron : Bool} ;
|
||||
[CN] = {s1,s2 : Number => NCase => Str} ;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
concrete ConstructionMon of Construction = CatMon **
|
||||
open Prelude, ResMon, ParadigmsMon in {
|
||||
|
||||
lincat Timeunit, Hour, Weekday, Month, Monthday, Year = {s : Str} ;
|
||||
|
||||
oper
|
||||
fixedN : Str -> N = \s -> lin N {s = \\_ => s} ;
|
||||
|
||||
lin
|
||||
ready_VP = insertObj (\\_ => "бэлэн") (predV (auxToVerb auxBe)) ;
|
||||
has_age_VP card = insertObj (\\_ => card.s ++ "настай") (predV (auxToVerb auxBe)) ;
|
||||
n_units_AP card cn ap = {s = card.s ++ cn.s ! Sg ! NNom ++ ap.s} ;
|
||||
n_units_of_NP card cn np = np ** {
|
||||
s = \\rc => card.s ++ cn.s ! Sg ! NNom ++ np.s ! rc
|
||||
} ;
|
||||
cup_of_CN np = {s = \\_,nc => "нэг аяга" ++ np.s ! toRCase nc Definite} ;
|
||||
|
||||
monday_Weekday = {s = "даваа"} ;
|
||||
tuesday_Weekday = {s = "мягмар"} ;
|
||||
wednesday_Weekday = {s = "лхагва"} ;
|
||||
thursday_Weekday = {s = "пүрэв"} ;
|
||||
friday_Weekday = {s = "баасан"} ;
|
||||
saturday_Weekday = {s = "бямба"} ;
|
||||
sunday_Weekday = {s = "ням"} ;
|
||||
|
||||
january_Month = {s = "нэгдүгээр сар"} ;
|
||||
february_Month = {s = "хоёрдугаар сар"} ;
|
||||
march_Month = {s = "гуравдугаар сар"} ;
|
||||
april_Month = {s = "дөрөвдүгээр сар"} ;
|
||||
may_Month = {s = "тавдугаар сар"} ;
|
||||
june_Month = {s = "зургаадугаар сар"} ;
|
||||
july_Month = {s = "долдугаар сар"} ;
|
||||
august_Month = {s = "наймдугаар сар"} ;
|
||||
september_Month = {s = "есдүгээр сар"} ;
|
||||
october_Month = {s = "аравдугаар сар"} ;
|
||||
november_Month = {s = "арван нэгдүгээр сар"} ;
|
||||
december_Month = {s = "арван хоёрдугаар сар"} ;
|
||||
|
||||
weekdayPunctualAdv weekday = {s = weekday.s ++ "гарагт"} ;
|
||||
weekdayHabitualAdv weekday = {s = "долоо бүрийн" ++ weekday.s ++ "гарагт"} ;
|
||||
weekdayN weekday = fixedN (weekday.s ++ "гараг") ;
|
||||
monthN month = fixedN month.s ;
|
||||
intYear i = {s = i.s} ;
|
||||
yearAdv year = {s = year.s ++ "онд"} ;
|
||||
}
|
||||
+36
-36
@@ -963,7 +963,7 @@ lin
|
||||
-- arangalah_V = mkV "арангалах" ;
|
||||
-- arangatah_V = mkV "арангатах" ;
|
||||
-- aranshin_N = mkN "араншин" ;
|
||||
-- arav_Num = {s = "арван" ; sp = \\rc => (regN "арав") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- arav_Num = {s = "арван" ; sp = \\rc => (regN "арав") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; n = Pl} ;
|
||||
-- aravganah_V = mkV "аравганах" ;
|
||||
-- aravgar_A = mkA "аравгар" ;
|
||||
-- aravnailah_V2 = mkV2 (mkV "аравнайлах") ;
|
||||
@@ -3389,7 +3389,7 @@ lin
|
||||
-- bulzaarah_V2 = mkV2 (mkV "булзаарах") ;
|
||||
-- bulzah_V = mkV "булзах" ;
|
||||
-- bulzamhai_A = mkA "булзамхай" ;
|
||||
-- bum_Num = {s = "буман" ; sp = \\rc => (regN "бум") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- bum_Num = {s = "буман" ; sp = \\rc => (regN "бум") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; n = Pl} ;
|
||||
-- bumba_N = mkN "бумба" ;
|
||||
-- bumbadah_V2 = mkV2 (mkV "бумбадах") ;
|
||||
-- bumbaganah_V = mkV "бумбаганах" ;
|
||||
@@ -3679,7 +3679,7 @@ lin
|
||||
-- cadaarah_V = mkV "цадаарах" ;
|
||||
-- cadaarhah_V = mkV "цадаархах" ;
|
||||
-- cadah_V = mkV "цадах" ;
|
||||
-- cadchin_Num = {s = "цадчин" ; sp = \\rc => (regN "цадчин") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- cadchin_Num = {s = "цадчин" ; sp = \\rc => (regN "цадчин") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- cadig_N = mkN "цадиг" ;
|
||||
-- cadigguei_A = mkA "цадиггүй" ;
|
||||
-- cadiggueirheh_V = mkV "цадиггүйрхэх" ;
|
||||
@@ -3721,7 +3721,7 @@ lin
|
||||
-- cagch_N = mkN "цагч" ;
|
||||
-- cagchai_N = mkN "цагцхай" ;
|
||||
-- cagchait_A = mkA "цагцхайт" ;
|
||||
-- cagchig_Num = {s = "цагчиган" ; sp = \\rc => (regN "цагчиг") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- cagchig_Num = {s = "цагчиган" ; sp = \\rc => (regN "цагчиг") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- cagchin_N = mkN "цагчин" ;
|
||||
-- cagdaa_N = mkN "цагдаа" ;
|
||||
-- cagdaagiin_gazar_N = mk2N "цагдаагийн" (mkN "газар") ;
|
||||
@@ -5935,7 +5935,7 @@ lin
|
||||
-- dodiih_V = mkV "додийх" ;
|
||||
-- dodomdlogo_N = mkN "додомдлого" ;
|
||||
-- dodomdoh_V = mkV "додомдох" ;
|
||||
-- doech_Num = {s = "дөчин" ; sp = \\rc => (regN "дөч") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- doech_Num = {s = "дөчин" ; sp = \\rc => (regN "дөч") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- doehoeh_V2 = mkV2 (mkV "дөхөх") ;
|
||||
-- doehoem_A = mkA "дөхөм" ;
|
||||
-- doehoemguei_A = mkA "дөхөмгүй" ;
|
||||
@@ -6000,9 +6000,9 @@ lin
|
||||
-- doeroeoeloeh_V = mkV "дөрөөлөх" ;
|
||||
-- doeroeoevch_N = mkN "дөрөөвч" ;
|
||||
-- doeroeoevchloeh_V = mkV "дөрөөвчлөх" ;
|
||||
-- doeroev_Num = {s = "дөрвөн" ; sp = \\rc => (regN "дөрөв") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- doeroev_Num = {s = "дөрвөн" ; sp = \\rc => (regN "дөрөв") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- doeroevch_N = mkN "дөрөвч" ;
|
||||
-- doeroevloeoes_Num = {s = "дөрөвлөөсөн" ; sp = \\rc => (regN "дөрөвлөөс") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- doeroevloeoes_Num = {s = "дөрөвлөөсөн" ; sp = \\rc => (regN "дөрөвлөөс") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- doersgoenoeh_V = mkV "дөрсгөнөх" ;
|
||||
-- doersgoer_A = mkA "дөрсгөр" ;
|
||||
-- doersiih_V = mkV "дөрсийх" ;
|
||||
@@ -6117,7 +6117,7 @@ lin
|
||||
-- dollogo_N = mkN "доллого" ;
|
||||
-- dololgoh_V = mkV "дололгох" ;
|
||||
-- dolono_N = mkN "долоно" ;
|
||||
-- doloo_Num = {s = "долоон" ; sp = \\rc => (regN "долоо") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- doloo_Num = {s = "долоон" ; sp = \\rc => (regN "долоо") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- doloo_honog_N = mk2N "хан" (mkN "боргоцой") ;
|
||||
-- doloodos_N = mkN "долоодос" ;
|
||||
-- doloogono_N = mkN "долоогоно" ;
|
||||
@@ -6351,7 +6351,7 @@ lin
|
||||
-- duen_N = mkN "дүн" ;
|
||||
-- duenbe_N = mkN "дүнбэ" ;
|
||||
-- duenbeteh_V = mkV "дүнбэтэх" ;
|
||||
-- duenchueuer_Num = {s = "дүнчүүрэн" ; sp = \\rc => (regN "дүнчүүр") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- duenchueuer_Num = {s = "дүнчүүрэн" ; sp = \\rc => (regN "дүнчүүр") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- duengeneh_V = mkV "дүнгэнэх" ;
|
||||
-- duenger_N = mkN "дүнгэр" ;
|
||||
-- duenguei_A = mkA "дүнгүй" ;
|
||||
@@ -6360,7 +6360,7 @@ lin
|
||||
-- duensger_A = mkA "дүнсгэр" ;
|
||||
-- duensgerdueue_A = mkA "дүнсгэрдүү" ;
|
||||
-- duensgerhen_A = mkA "дүнсгэрхэн" ;
|
||||
-- duenshueuer_Num = {s = "дүншүүрэн" ; sp = \\rc => (regN "дүншүүр") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- duenshueuer_Num = {s = "дүншүүрэн" ; sp = \\rc => (regN "дүншүүр") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- duensiih_V = mkV "дүнсийх" ;
|
||||
-- duentei_A = mkA "дүнтэй" ;
|
||||
-- duenz_N = mkN "дүнз" ;
|
||||
@@ -8099,7 +8099,7 @@ lin
|
||||
-- gol_N = mkN "гол" ;
|
||||
-- golch_A = mkA "голч" ;
|
||||
-- golchloh_V = mkV "голчлох" ;
|
||||
-- gold'_Num = {s = "голдин" ; sp = \\rc => (regN "голдь") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- gold'_Num = {s = "голдин" ; sp = \\rc => (regN "голдь") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- goldoh_V = mkV "голдох" ;
|
||||
-- gol'f_N = mkLN "гольф" ;
|
||||
-- goligonoh_V = mkV "голигонох" ;
|
||||
@@ -8262,7 +8262,7 @@ lin
|
||||
-- guash_N = mkLN "гуаш" ;
|
||||
-- gucah_V = mkV "гуцах" ;
|
||||
-- guch_N = mkN "гуч" ;
|
||||
-- guch_Num = {s = "гучин" ; sp = \\rc => (regN "гуч") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- guch_Num = {s = "гучин" ; sp = \\rc => (regN "гуч") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- guchincar_N = mkN "гучинцар" ;
|
||||
-- gucuu_A = mkA "гуцуу" ;
|
||||
-- gudaih_V2 = mkV2 (mkV "гудайх") ;
|
||||
@@ -8528,7 +8528,7 @@ lin
|
||||
-- guranhtah_V = mkV "гуранхтах" ;
|
||||
-- guranz_N = mkN "гуранз" ;
|
||||
-- guranzdah_V = mkV "гуранздах" ;
|
||||
-- gurav_Num = {s = "гурван" ; sp = \\rc => (regN "гурав") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- gurav_Num = {s = "гурван" ; sp = \\rc => (regN "гурав") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- guravch_N = mkN "гуравч" ;
|
||||
-- gurgaldai_N = mkN "гургалдай" ;
|
||||
-- gurgar_A = mkA "гургар" ;
|
||||
@@ -10913,7 +10913,7 @@ lin
|
||||
-- hoovolzoh_V = mkV "хооволзох" ;
|
||||
-- hoovon_N = mkN "хоовон" ;
|
||||
-- hor_N = mkN "хор" ;
|
||||
-- hor'_Num = {s = "хорин" ; sp = \\rc => (regN "хорь") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- hor'_Num = {s = "хорин" ; sp = \\rc => (regN "хорь") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- horchgir_A = mkA "хорчгир" ;
|
||||
-- horchgonoh_V = mkV "хорчгонох" ;
|
||||
-- horchgor_A = mkA "хорчгор" ;
|
||||
@@ -11112,7 +11112,7 @@ lin
|
||||
-- hovsorgon_A = mkA "ховсоргон" ;
|
||||
-- hovsroh_V = mkV "ховсрох" ;
|
||||
-- hovsrooch_N = mkN "ховсрооч" ;
|
||||
-- hoyor_Num = {s = "хоёр" ; sp = \\rc => (regN "хоёр") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- hoyor_Num = {s = "хоёр" ; sp = \\rc => (regN "хоёр") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- hoyordmol_A = mkA "хоёрдмол" ;
|
||||
-- hoyorloh_V = mkV "хоёрлох" ;
|
||||
-- hoyorlohguei_A = mkA "хоёрлохгүй" ;
|
||||
@@ -12246,7 +12246,7 @@ lin
|
||||
-- ingeehen_A = mkA "ингээхэн" ;
|
||||
-- ingeen_A = mkA "ингээн" ;
|
||||
-- ingeh_V = mkV "ингэх" ;
|
||||
-- ingemel_Num = {s = "ингэмэлэн" ; sp = \\rc => (regN "ингэмэл") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- ingemel_Num = {s = "ингэмэлэн" ; sp = \\rc => (regN "ингэмэл") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- ingueuehen_N = mkN "ингүүхэн" ;
|
||||
-- ingueuemel_N = mkN "ингүүмэл" ;
|
||||
-- inj_N = mkN "инж" ;
|
||||
@@ -12299,7 +12299,7 @@ lin
|
||||
-- irmegleh_V = mkV "ирмэглэх" ;
|
||||
-- irmegueuen_A = mkA "ирмэгүүн" ;
|
||||
-- irmeh_V = mkV "ирмэх" ;
|
||||
-- irmel_Num = {s = "ирмэлэн" ; sp = \\rc => (regN "ирмэл") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- irmel_Num = {s = "ирмэлэн" ; sp = \\rc => (regN "ирмэл") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- irmelhiileh_V = mkV "ирмэлхийлэх" ;
|
||||
-- irmueuedeh_V = mkV "ирмүүдэх" ;
|
||||
-- irmueueleh_V = mkV "ирмүүлэх" ;
|
||||
@@ -12445,7 +12445,7 @@ lin
|
||||
-- Janraisig_PN = mkPN "Жанрайсиг" ;
|
||||
-- janz_N = mkN "жанз" ;
|
||||
-- janzii_N = mkN "жанзий" ;
|
||||
-- jar_Num = {s = "жаран" ; sp = \\rc => (regN "жар") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- jar_Num = {s = "жаран" ; sp = \\rc => (regN "жар") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- jaraahai_N = mkN "жараахай" ;
|
||||
-- jaran_N = mkN "жаран" ;
|
||||
-- jaravganah_V = mkV "жаравганах" ;
|
||||
@@ -13000,7 +13000,7 @@ lin
|
||||
-- laglagar_A = mkA "лаглагар" ;
|
||||
-- laglaih_V = mkV "лаглайх" ;
|
||||
-- lags_A = mkA "лагс" ;
|
||||
-- lagshaa_Num = {s = "лагшаан" ; sp = \\rc => (regN "лагшаа") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- lagshaa_Num = {s = "лагшаан" ; sp = \\rc => (regN "лагшаа") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- lagshih_V = mkV "лагших" ;
|
||||
-- lagshim_A = mkA "лагшим" ;
|
||||
-- lagshin_N = mkN "лагшин" ;
|
||||
@@ -14023,7 +14023,7 @@ lin
|
||||
-- movgo_N = mkN "мовго" ;
|
||||
-- movor_N = mkN "мовор" ;
|
||||
-- mueglen_N = mkN "мүглэн" ;
|
||||
-- mueue_Num = {s = "мүүн" ; sp = \\rc => (regN "мүү") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- mueue_Num = {s = "мүүн" ; sp = \\rc => (regN "мүү") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- mugjgar_A = mkA "мугжгар" ;
|
||||
-- mugjiih_V = mkV "мугжийх" ;
|
||||
-- muguid_A = mkA "мугуйд" ;
|
||||
@@ -14162,7 +14162,7 @@ lin
|
||||
-- myandag_N = mkN "мяндаг" ;
|
||||
-- myandas_N = mkN "мяндас" ;
|
||||
-- myandsan_A = mkA "мяндсан" ;
|
||||
-- myanga_Num = {s = "мянган" ; sp = \\rc => (regN "мянга") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- myanga_Num = {s = "мянган" ; sp = \\rc => (regN "мянга") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- myangad_N = mkN "мянгад" ;
|
||||
-- myangat_A = mkA "мянгат" ;
|
||||
-- M'yanmar_PN = mkPN "Мьянмар" ;
|
||||
@@ -14295,7 +14295,7 @@ lin
|
||||
-- nailanhaitah_V = mkV "найланхайтах" ;
|
||||
-- nailzuur_N = mkN "найлзуур" ;
|
||||
-- nailzuurhai_N = mkN "найлзуурхай" ;
|
||||
-- naim_Num = {s = "найман" ; sp = \\rc => (regN "найм") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- naim_Num = {s = "найман" ; sp = \\rc => (regN "найм") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- naimaa_N = mkN "наймаа" ;
|
||||
-- naimaachin_N = mkN "наймаачин" ;
|
||||
-- naimaalah_V3 = mkV3 (mkV "наймаалах") ;
|
||||
@@ -14561,7 +14561,7 @@ lin
|
||||
-- navtgardah_V = mkV "навтгардах" ;
|
||||
-- navtrag_N = mkN "навтраг" ;
|
||||
-- navtrah_V = mkV "навтрах" ;
|
||||
-- naya_Num = {s = "наян" ; sp = \\rc => (regN "ная") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- naya_Num = {s = "наян" ; sp = \\rc => (regN "ная") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- nayad_N = mkN "наяд" ;
|
||||
-- nazgai_A = mkA "назгай" ;
|
||||
-- nazgaidah_V = mkV "назгайдах" ;
|
||||
@@ -14573,7 +14573,7 @@ lin
|
||||
-- neelgii_N = mkN "нээлгий" ;
|
||||
-- neelhii_N = mkN "нээлхий" ;
|
||||
-- neelt_N = mkN "нээлт" ;
|
||||
-- neg_Num = {s = "ганц" ; sp = \\rc => (regN "нэг") .s ! SF Sg (toNCase rc Definite) ; n = Sg ; isNum = True} ;
|
||||
-- neg_Num = {s = "ганц" ; sp = \\rc => (regN "нэг") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- negdeh_V = mkV "нэгдэх" ;
|
||||
-- negdel_N = mkN "нэгдэл" ;
|
||||
-- negdeljih_V = mkV "нэгдэлжих" ;
|
||||
@@ -16153,7 +16153,7 @@ lin
|
||||
-- onol_N = mkN "онол" ;
|
||||
-- onolch_N = mkN "онолч" ;
|
||||
-- onoldoh_V = mkV "онолдох" ;
|
||||
-- onon_Num = {s = "оннон" ; sp = \\rc => (regN "онон") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- onon_Num = {s = "оннон" ; sp = \\rc => (regN "онон") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- onondoi_N = mkN "онондой" ;
|
||||
-- onoo_N = mkN "оноо" ;
|
||||
-- onooch_N = mkN "онооч" ;
|
||||
@@ -16653,7 +16653,7 @@ lin
|
||||
-- rashaan_N = mkN "рашаан" ;
|
||||
-- Rashaant_PN = mkPN "Рашаант" ;
|
||||
-- rashaantah_V = mkV "рашаантах" ;
|
||||
-- ravjim_Num = {s = "равжиман" ; sp = \\rc => (regN "равжим") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- ravjim_Num = {s = "равжиман" ; sp = \\rc => (regN "равжим") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- rialgan_A = mkA "риалган" ;
|
||||
-- rid_N = mkN "рид" ;
|
||||
-- Rivaadi_PN = mkPN "Риваади" ;
|
||||
@@ -17175,7 +17175,7 @@ lin
|
||||
-- savslagalah_V = mkV "савслагалах" ;
|
||||
-- savslah_V = mkV "савслах" ;
|
||||
-- savtarhai_A = mkA "савтархай" ;
|
||||
-- saya_Num = {s = "сая" ; sp = \\rc => (regN "сая") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- saya_Num = {s = "сая" ; sp = \\rc => (regN "сая") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- sayatan_N = mkN "саятан" ;
|
||||
-- saz_N = mkN "саз" ;
|
||||
-- sazdah_V = mkV "саздах" ;
|
||||
@@ -19696,8 +19696,8 @@ lin
|
||||
-- tatvalzuur_A = mkA "татвалзуур" ;
|
||||
-- tatvar_N = mkN "татвар" ;
|
||||
-- tatvarlah_V2 = mkV2 (mkV "татварлах") ;
|
||||
-- tav_Num = {s = "таван" ; sp = \\rc => (regN "тав") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- tav'_Num = {s = "тавин" ; sp = \\rc => (regN "тавь") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- tav_Num = {s = "таван" ; sp = \\rc => (regN "тав") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- tav'_Num = {s = "тавин" ; sp = \\rc => (regN "тавь") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- tavaar_N = mkN "таваар" ;
|
||||
-- tavag_N = mkN "таваг" ;
|
||||
-- tavaglah_V = mkV "таваглах" ;
|
||||
@@ -19780,7 +19780,7 @@ lin
|
||||
-- teeverlegch_N = mkN "тээвэрлэгч" ;
|
||||
-- teeverleh_V2 = mkV2 (mkV "тээвэрлэх") ;
|
||||
-- teeverlelt_N = mkN "тээвэрлэлт" ;
|
||||
-- teg_Num = {s = "тэг" ; sp = \\rc => (regN "тэг") .s ! SF Sg (toNCase rc Definite) ; n = Sg ; isNum = True} ;
|
||||
-- teg_Num = {s = "тэг" ; sp = \\rc => (regN "тэг") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- tegdegneh_V = mkV "тэгдэгнэх" ;
|
||||
-- tegdelzeh_V = mkV "тэгдэлзэх" ;
|
||||
-- tegdger_A = mkA "тэгдгэр" ;
|
||||
@@ -19928,7 +19928,7 @@ lin
|
||||
-- tenueuelchin_N = mkN "тэнүүлчин" ;
|
||||
-- tenueuen_A = mkA "тэнүүн" ;
|
||||
-- ter_Pron = mkPron "тэр" "түүний" "түүнд" "түүнийг" "түүнээс" "түүгээр" "түүнтэй" "түүн рүү" Sg P3 ;
|
||||
-- terbum_Num = {s = "тэрбуман" ; sp = \\rc => (regN "тэрбум") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
-- terbum_Num = {s = "тэрбуман" ; sp = \\rc => (regN "тэрбум") .s ! SF Sg (toNCase rc Definite) ; n = Pl} ;
|
||||
-- terbumtan_N = mkN "тэрбумтан" ;
|
||||
-- tereg_N = mkN "тэрэг" ;
|
||||
-- teregch_N = mkN "тэрэгч" ;
|
||||
@@ -20735,7 +20735,7 @@ tuelhleh_V = mkV "түлхлэх" ;
|
||||
tuelhueue_A = mkA "түлхүү" ;
|
||||
tuelhueuer_N = mkN "түлхүүр" ;
|
||||
tuelsh_N = mkN "түлш" ;
|
||||
tuem_Num = {s = "түмэн" ; sp = \\rc => (regN "түм") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
tuem_Num = {s = "түмэн" ; sp = \\rc => (regN "түм") .s ! SF Sg (toNCase rc Definite) ; n = Sg} ;
|
||||
tuembeger_A = mkA "түмбэгэр" ;
|
||||
tuembegneh_V = mkV "түмбэгнэх" ;
|
||||
tuembelzeh_V = mkV "түмбэлзэх" ;
|
||||
@@ -22776,7 +22776,7 @@ yenhiih_V = mkV "енхийх" ;
|
||||
yenhoegnoeh_V = mkV "енхөгнөх" ;
|
||||
yenhoelzoeh_V = mkV "енхөлзөх" ;
|
||||
yenhoer_A = mkA "енхөр" ;
|
||||
yer_Num = {s = "ерэн" ; sp = \\rc => (regN "ер") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
yer_Num = {s = "ерэн" ; sp = \\rc => (regN "ер") .s ! SF Sg (toNCase rc Definite) ; n = Sg} ;
|
||||
yer_busyn_A = mkA "ер бусын" ;
|
||||
yerdiin_A = mkA "ердийн" ;
|
||||
yergoeh_V = mkV "ергөх" ;
|
||||
@@ -22795,7 +22795,7 @@ yeroeoelch_N = mkN "ерөөлч" ;
|
||||
yeroeoelt_A = mkA "ерөөлт" ;
|
||||
yeroeoer_N = mkN "ерөөр" ;
|
||||
yertoenc_N = mkN "ертөнц" ;
|
||||
yes_Num = {s = "есөн" ; sp = \\rc => (regN "ес") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
yes_Num = {s = "есөн" ; sp = \\rc => (regN "ес") .s ! SF Sg (toNCase rc Definite) ; n = Sg} ;
|
||||
yesloeh_V = mkV "еслөх" ;
|
||||
yesoegchin_N = mkN "есөгчин" ;
|
||||
yest_A = mkA "ест" ;
|
||||
@@ -24071,7 +24071,7 @@ zutah_V = mkV "зутах" ;
|
||||
zutan_N = mkN "зутан" ;
|
||||
zutrah_V = mkV "зутрах" ;
|
||||
zutruu_A = mkA "зутруу" ;
|
||||
zuu_Num = {s = "зуун" ; sp = \\rc => (regN "зуу") .s ! SF Sg (toNCase rc Definite) ; n = Pl ; isNum = True} ;
|
||||
zuu_Num = {s = "зуун" ; sp = \\rc => (regN "зуу") .s ! SF Sg (toNCase rc Definite) ; n = Sg} ;
|
||||
zuuch_N = mkN "зууч" ;
|
||||
zuuchlagch_N = mkN "зуучлагч" ;
|
||||
zuuchlah_V3 = mkV3 (mkV "зуучлах") ;
|
||||
@@ -24136,4 +24136,4 @@ zuzaatgah_V = mkV "зузаатгах" ;
|
||||
zuzaih_V = mkV "зузайх" ;
|
||||
zuzgar_A = mkA "зузгар" ;
|
||||
zyenit_N = mkLN "зенит" ;
|
||||
} ;
|
||||
} ;
|
||||
@@ -4,6 +4,8 @@ concrete DocumentationMon of Documentation = CatMon ** open
|
||||
Prelude,
|
||||
HTML in {
|
||||
|
||||
flags optimize=noexpand ; coding=utf8 ;
|
||||
|
||||
lincat
|
||||
Inflection = {t : Str; s1,s2,s3 : Str} ;
|
||||
Definition = {s : Str} ;
|
||||
@@ -30,18 +32,14 @@ lin InflectionN, InflectionN2, InflectionN3 = \x -> {
|
||||
lin InflectionPN = \pn -> {
|
||||
t="pn" ;
|
||||
s1=heading1 "Proper Name" ;
|
||||
s2=frameTable (
|
||||
tr (th "Nom" ++ td (pn.s ! Nom)) ++
|
||||
tr (th "Acc" ++ td (pn.s ! Acc)) ++
|
||||
tr (th "Dat" ++ td (pn.s ! Dat)) ++
|
||||
tr (th "Gen" ++ td (pn.s ! Gen)) ++
|
||||
tr (th "Abl" ++ td (pn.s ! Abl)) ++
|
||||
tr (th "Inst" ++td (pn.s ! Inst)) ++
|
||||
tr (th "Com" ++ td (pn.s ! Com)) ++
|
||||
tr (th "Dir" ++ td (pn.s ! Dir))) ;
|
||||
s2=nameTable pn.s ;
|
||||
s3=[]
|
||||
} ;
|
||||
|
||||
lin InflectionLN = \name -> nameInflection "ln" "Location Name" name ;
|
||||
lin InflectionGN = \name -> nameInflection "gn" "Given Name" name ;
|
||||
lin InflectionSN = \name -> nameInflection "sn" "Family Name" name ;
|
||||
|
||||
lin InflectionA, InflectionA2 = \adj -> {
|
||||
t="a" ;
|
||||
s1=heading1 "Adjective" ;
|
||||
@@ -58,7 +56,7 @@ lin InflectionAdv, InflectionAdV, InflectionAdA, InflectionAdN = \adv -> {
|
||||
|
||||
lin InflectionPrep = \prep -> {
|
||||
t = "prep" ;
|
||||
s1= heading1 "Preposition" ;
|
||||
s1= heading1 "Postposition" ;
|
||||
s2= paragraph (prep.s ++
|
||||
case prep.rc of {
|
||||
Nom => "nominative" ;
|
||||
@@ -67,12 +65,51 @@ lin InflectionPrep = \prep -> {
|
||||
Gen => "genitive" ;
|
||||
Abl => "ablative" ;
|
||||
Inst=> "instrumental" ;
|
||||
Com => "commitative" ;
|
||||
Com => "comitative" ;
|
||||
Dir => "directional"
|
||||
}) ;
|
||||
s3= ""
|
||||
} ;
|
||||
|
||||
lin InflectionV = \verb -> {
|
||||
t="v" ; s1=heading1 "Verb" ;
|
||||
s2=verbTable verb.s ; s3=[]
|
||||
} ;
|
||||
lin InflectionV2 = \verb -> verbInflection verb.s ;
|
||||
lin InflectionV3 = \verb -> verbInflection verb.s ;
|
||||
lin InflectionV2V = \verb -> verbInflection verb.s ;
|
||||
lin InflectionV2S = \verb -> verbInflection verb.s ;
|
||||
lin InflectionV2Q = \verb -> verbInflection verb.s ;
|
||||
lin InflectionV2A = \verb -> verbInflection verb.s ;
|
||||
lin InflectionVS = \verb -> verbInflection verb.s ;
|
||||
lin InflectionVQ = \verb -> verbInflection verb.s ;
|
||||
lin InflectionVA = \verb -> verbInflection verb.s ;
|
||||
|
||||
lin InflectionVV = \verb -> {
|
||||
t="v" ;
|
||||
s1=heading1 "Verb" ;
|
||||
s2=auxTable verb.s ;
|
||||
s3=[]
|
||||
} ;
|
||||
|
||||
lin InflectionCl = \cl -> {
|
||||
t="cl" ;
|
||||
s1=heading1 "Clause" ;
|
||||
s2=frameTable (
|
||||
tr (th "Tense" ++ th "Anteriority" ++ th "Positive" ++ th "Negative") ++
|
||||
clauseRow "Present" ClPres Simul cl ++
|
||||
clauseRow "Present" ClPres Anter cl ++
|
||||
clauseRow "Past perfect" (ClPast Perf) Simul cl ++
|
||||
clauseRow "Past perfect" (ClPast Perf) Anter cl ++
|
||||
clauseRow "Present perfect" (ClPast PresPerf) Simul cl ++
|
||||
clauseRow "Present perfect" (ClPast PresPerf) Anter cl ++
|
||||
clauseRow "Indefinite past" (ClPast IndefPast) Simul cl ++
|
||||
clauseRow "Indefinite past" (ClPast IndefPast) Anter cl ++
|
||||
clauseRow "Future" ClFut Simul cl ++
|
||||
clauseRow "Future" ClFut Anter cl) ;
|
||||
s3=[]
|
||||
} ;
|
||||
|
||||
lin
|
||||
NoDefinition t = {s=t.s};
|
||||
MkDefinition t d = {s="<p><b>Definition:</b>"++t.s++d.s++"</p>"};
|
||||
@@ -82,4 +119,210 @@ lin
|
||||
MkDocument d i e = {s = i.s1 ++ d.s ++ i.s2 ++ paragraph e.s} ;
|
||||
MkTag i = {s = i.t} ;
|
||||
|
||||
oper
|
||||
nameInflection : Str -> Str -> {s : RCase => Str} ->
|
||||
{t : Str; s1,s2,s3 : Str} = \tag,title,name -> {
|
||||
t=tag ;
|
||||
s1=heading1 title ;
|
||||
s2=nameTable name.s ;
|
||||
s3=[]
|
||||
} ;
|
||||
|
||||
nameTable : (RCase => Str) -> Str = \forms ->
|
||||
frameTable (
|
||||
tr (th "Case" ++ th "Form") ++
|
||||
caseRow "Nominative" Nom forms ++
|
||||
caseRow "Accusative" Acc forms ++
|
||||
caseRow "Dative-locative" Dat forms ++
|
||||
caseRow "Genitive" Gen forms ++
|
||||
caseRow "Ablative" Abl forms ++
|
||||
caseRow "Instrumental" Inst forms ++
|
||||
caseRow "Comitative" Com forms ++
|
||||
caseRow "Directional" Dir forms) ;
|
||||
|
||||
caseRow : Str -> RCase -> (RCase => Str) -> Str = \label,c,forms ->
|
||||
tr (th label ++ td (forms ! c)) ;
|
||||
|
||||
clauseRow : Str -> ClTense -> Anteriority ->
|
||||
{s : ClTense => Anteriority => Polarity => SType => Str} -> Str =
|
||||
\label,t,a,cl ->
|
||||
tr (th label ++ th (anteriorityName a) ++
|
||||
td (cl.s ! t ! a ! Pos ! Main) ++
|
||||
td (cl.s ! t ! a ! Neg ! Main)) ;
|
||||
|
||||
anteriorityName : Anteriority -> Str = \a -> case a of {
|
||||
Simul => "simultaneous" ;
|
||||
Anter => "anterior"
|
||||
} ;
|
||||
|
||||
verbInflection : (VerbForm => Str) -> {t : Str; s1,s2,s3 : Str} = \forms -> {
|
||||
t="v" ;
|
||||
s1=heading1 "Verb" ;
|
||||
s2=verbTable forms ;
|
||||
s3=[]
|
||||
} ;
|
||||
|
||||
verbTable : (VerbForm => Str) -> Str = \forms ->
|
||||
heading2 "Indicative" ++
|
||||
frameTable (
|
||||
tr (th "Voice" ++ th "Aspect" ++ th "Present perfect" ++
|
||||
th "Completed past" ++ th "Indefinite past" ++ th "Future") ++
|
||||
finiteRows "Active" Act forms ++
|
||||
finiteRows "Causative" Caus forms ++
|
||||
finiteRows "Passive" Pass forms ++
|
||||
finiteRows "Cooperative" Comm forms ++
|
||||
finiteRows "Adversative" Advs forms) ++
|
||||
verbImperativeTable forms ++
|
||||
heading2 "Subordinate forms" ++
|
||||
frameTable (
|
||||
tr (th "Function" ++ th "Active" ++ th "Causative" ++ th "Passive") ++
|
||||
subordinateRow "Conditional" Condl forms ++
|
||||
subordinateRow "Concessive" Conc forms ++
|
||||
subordinateRow "Immediate succession" ISucc forms ++
|
||||
subordinateRow "Logical succession" LSucc forms ++
|
||||
subordinateRow "Intention" Intend forms ++
|
||||
subordinateRow "Limit" Limit forms ++
|
||||
subordinateRow "Progressive" Progr forms ++
|
||||
subordinateRow "Succession" Succ forms) ++
|
||||
verbCoordinationTable forms ++
|
||||
verbParticipleTables forms ;
|
||||
|
||||
finiteRows : Str -> Voice -> (VerbForm => Str) -> Str = \voice,v,forms ->
|
||||
finiteRow voice "Simple" v Simpl forms ++
|
||||
finiteRow "" "Quick" v Quick forms ++
|
||||
finiteRow "" "Collective" v Coll forms ++
|
||||
finiteRow "" "Complete" v Compl forms ;
|
||||
|
||||
finiteRow : Str -> Str -> Voice -> Aspect -> (VerbForm => Str) -> Str =
|
||||
\voice,aspect,v,a,forms ->
|
||||
tr (th voice ++ th aspect ++
|
||||
td (forms ! VFORM v a VPresPerf) ++
|
||||
td (forms ! VFORM v a VPastComp) ++
|
||||
td (forms ! VFORM v a VPastIndef) ++
|
||||
td (forms ! VFORM v a VFut)) ;
|
||||
|
||||
subordinateRow : Str -> Subordination -> (VerbForm => Str) -> Str = \label,sub,forms ->
|
||||
tr (th label ++
|
||||
td (forms ! SVDS ActSub sub) ++
|
||||
td (forms ! SVDS CausSub sub) ++
|
||||
td (forms ! SVDS PassSub sub)) ;
|
||||
|
||||
auxTable : (VVVerbForm => Str) -> Str = \forms ->
|
||||
heading2 "Indicative" ++
|
||||
frameTable (
|
||||
tr (th "Present perfect" ++ td (forms ! VVTense VPresPerf)) ++
|
||||
tr (th "Completed past" ++ td (forms ! VVTense VPastComp)) ++
|
||||
tr (th "Indefinite past" ++ td (forms ! VVTense VPastIndef)) ++
|
||||
tr (th "Future" ++ td (forms ! VVTense VFut))) ++
|
||||
auxImperativeTable forms ++
|
||||
heading2 "Subordinate forms" ++
|
||||
frameTable (
|
||||
auxSubordinateRow "Conditional" Condl forms ++
|
||||
auxSubordinateRow "Concessive" Conc forms ++
|
||||
auxSubordinateRow "Immediate succession" ISucc forms ++
|
||||
auxSubordinateRow "Logical succession" LSucc forms ++
|
||||
auxSubordinateRow "Intention" Intend forms ++
|
||||
auxSubordinateRow "Limit" Limit forms ++
|
||||
auxSubordinateRow "Progressive" Progr forms ++
|
||||
auxSubordinateRow "Succession" Succ forms) ++
|
||||
auxCoordinationTable forms ++
|
||||
auxParticipleTables forms ;
|
||||
|
||||
auxSubordinateRow : Str -> Subordination -> (VVVerbForm => Str) -> Str = \label,sub,forms ->
|
||||
tr (th label ++ td (forms ! VVSubordination sub)) ;
|
||||
|
||||
verbImperativeTable : (VerbForm => Str) -> Str = \forms ->
|
||||
heading2 "Imperative" ++
|
||||
frameTable (
|
||||
tr (th "Function" ++ th "Direct" ++ th "Indirect") ++
|
||||
verbImperativeRow "Decision" Dec forms ++
|
||||
verbImperativeRow "Command" Command forms ++
|
||||
verbImperativeRow "Request" Req forms ++
|
||||
verbImperativeRow "Demand" Demand forms ++
|
||||
verbImperativeRow "Admonition" Admon forms ++
|
||||
verbImperativeRow "Appeal" Appeal forms ++
|
||||
verbImperativeRow "Permission" Perm forms ++
|
||||
verbImperativeRow "Hope" Hope forms ++
|
||||
verbImperativeRow "Blessing" Bless forms) ;
|
||||
|
||||
verbImperativeRow : Str -> Imperative -> (VerbForm => Str) -> Str = \label,i,forms ->
|
||||
tr (th label ++ td (forms ! VIMP Direct i) ++
|
||||
td (forms ! VIMP Indirect i)) ;
|
||||
|
||||
auxImperativeTable : (VVVerbForm => Str) -> Str = \forms ->
|
||||
heading2 "Imperative" ++
|
||||
frameTable (
|
||||
tr (th "Function" ++ th "Direct" ++ th "Indirect") ++
|
||||
auxImperativeRow "Decision" Dec forms ++
|
||||
auxImperativeRow "Command" Command forms ++
|
||||
auxImperativeRow "Request" Req forms ++
|
||||
auxImperativeRow "Demand" Demand forms ++
|
||||
auxImperativeRow "Admonition" Admon forms ++
|
||||
auxImperativeRow "Appeal" Appeal forms ++
|
||||
auxImperativeRow "Permission" Perm forms ++
|
||||
auxImperativeRow "Hope" Hope forms ++
|
||||
auxImperativeRow "Blessing" Bless forms) ;
|
||||
|
||||
auxImperativeRow : Str -> Imperative -> (VVVerbForm => Str) -> Str = \label,i,forms ->
|
||||
tr (th label ++ td (forms ! VVImp Direct i) ++
|
||||
td (forms ! VVImp Indirect i)) ;
|
||||
|
||||
verbCoordinationTable : (VerbForm => Str) -> Str = \forms ->
|
||||
heading2 "Coordinating forms" ++
|
||||
frameTable (
|
||||
tr (th "Simultaneous" ++ td (forms ! CVDS Simul)) ++
|
||||
tr (th "Anterior" ++ td (forms ! CVDS Anter))) ;
|
||||
|
||||
auxCoordinationTable : (VVVerbForm => Str) -> Str = \forms ->
|
||||
heading2 "Coordinating forms" ++
|
||||
frameTable (
|
||||
tr (th "Simultaneous" ++ td (forms ! VVCoordination Simul)) ++
|
||||
tr (th "Anterior" ++ td (forms ! VVCoordination Anter))) ;
|
||||
|
||||
verbParticipleTables : (VerbForm => Str) -> Str = \forms ->
|
||||
verbParticipleTable "Indefinite present" PPresIndef forms ++
|
||||
verbParticipleTable "Progressive present" PPresProgr forms ++
|
||||
verbParticipleTable "Past" PPast forms ++
|
||||
verbParticipleTable "Future" PFut forms ++
|
||||
verbParticipleTable "Agent" PDoer forms ;
|
||||
|
||||
verbParticipleTable : Str -> Participle -> (VerbForm => Str) -> Str = \title,p,forms ->
|
||||
heading2 (title ++ " participle") ++
|
||||
frameTable (
|
||||
tr (th "Case" ++ th "Form") ++
|
||||
verbParticipleRow "Nominative" Nom p forms ++
|
||||
verbParticipleRow "Accusative" Acc p forms ++
|
||||
verbParticipleRow "Dative-locative" Dat p forms ++
|
||||
verbParticipleRow "Genitive" Gen p forms ++
|
||||
verbParticipleRow "Ablative" Abl p forms ++
|
||||
verbParticipleRow "Instrumental" Inst p forms ++
|
||||
verbParticipleRow "Comitative" Com p forms ++
|
||||
verbParticipleRow "Directional" Dir p forms) ;
|
||||
|
||||
verbParticipleRow : Str -> RCase -> Participle -> (VerbForm => Str) -> Str =
|
||||
\label,c,p,forms -> tr (th label ++ td (forms ! VPART p c)) ;
|
||||
|
||||
auxParticipleTables : (VVVerbForm => Str) -> Str = \forms ->
|
||||
auxParticipleTable "Indefinite present" PPresIndef forms ++
|
||||
auxParticipleTable "Progressive present" PPresProgr forms ++
|
||||
auxParticipleTable "Past" PPast forms ++
|
||||
auxParticipleTable "Future" PFut forms ++
|
||||
auxParticipleTable "Agent" PDoer forms ;
|
||||
|
||||
auxParticipleTable : Str -> Participle -> (VVVerbForm => Str) -> Str = \title,p,forms ->
|
||||
heading2 (title ++ " participle") ++
|
||||
frameTable (
|
||||
tr (th "Case" ++ th "Form") ++
|
||||
auxParticipleRow "Nominative" Nom p forms ++
|
||||
auxParticipleRow "Accusative" Acc p forms ++
|
||||
auxParticipleRow "Dative-locative" Dat p forms ++
|
||||
auxParticipleRow "Genitive" Gen p forms ++
|
||||
auxParticipleRow "Ablative" Abl p forms ++
|
||||
auxParticipleRow "Instrumental" Inst p forms ++
|
||||
auxParticipleRow "Comitative" Com p forms ++
|
||||
auxParticipleRow "Directional" Dir p forms) ;
|
||||
|
||||
auxParticipleRow : Str -> RCase -> Participle -> (VVVerbForm => Str) -> Str =
|
||||
\label,c,p,forms -> tr (th label ++ td (forms ! VVParticiple p c)) ;
|
||||
|
||||
}
|
||||
+119
-2
@@ -1,8 +1,125 @@
|
||||
--# -path=.:../common:../abstract
|
||||
|
||||
concrete ExtendMon of Extend =
|
||||
CatMon ** ExtendFunctor
|
||||
CatMon ** ExtendFunctor - [
|
||||
VPS, ListVPS, VPI, ListVPI,
|
||||
ListComp, ListImp,
|
||||
CompoundN, CompoundAP,
|
||||
PresPartAP, PastPartAP, PastPartAgentAP,
|
||||
PassVPSlash, PassAgentVPSlash, ProgrVPSlash,
|
||||
GerundCN, GerundNP, GerundAdv, WithoutVP, ByVP, InOrderToVP,
|
||||
ApposNP, PositAdVAdj,
|
||||
MkVPS, BaseVPS, ConsVPS, ConjVPS, PredVPS,
|
||||
MkVPI, BaseVPI, ConsVPI, ConjVPI, ComplVPIVV,
|
||||
BaseComp, ConsComp, ConjComp,
|
||||
BaseImp, ConsImp, ConjImp,
|
||||
ReflPron, ReflPoss, AdvRNP, AdvRVP, AdvRAP, ReflRNP, ReflA2RNP, PossPronRNP,
|
||||
UseDAP, UseDAPMasc, UseDAPFem
|
||||
]
|
||||
with
|
||||
(Grammar = GrammarMon) ** {
|
||||
(Grammar = GrammarMon) **
|
||||
open Prelude, ResMon, ParadigmsMon in {
|
||||
|
||||
lincat
|
||||
VPS, VPI = {s : Str} ;
|
||||
[VPS], [VPI] = {s1, s2 : Str} ;
|
||||
[Comp] = {s1, s2 : RCase => Str} ;
|
||||
[Imp] = {s1, s2 : Polarity => ImpForm => Str} ;
|
||||
|
||||
lin
|
||||
CompoundN n1 n2 = {
|
||||
s = \\sf => n1.s ! SF Sg NNom ++ n2.s ! sf
|
||||
} ;
|
||||
|
||||
CompoundAP n a = {s = n.s ! SF Sg NNom ++ a.s} ;
|
||||
|
||||
PresPartAP vp = {
|
||||
s = vp.compl ! Nom ++ vp.embedCompl ! Nom ++ vp.adv ++
|
||||
(vp.s ! VPPart ClPres Pos Nom).fin
|
||||
} ;
|
||||
|
||||
PastPartAP vp = {
|
||||
s = vp.compl ! Nom ++ vp.embedCompl ! Nom ++ vp.adv ++
|
||||
(vp.s ! VPPass Passive (ClPast Perf)).fin
|
||||
} ;
|
||||
|
||||
PastPartAgentAP vp np = {
|
||||
s = np.s ! Inst ++ vp.compl ! Nom ++ vp.embedCompl ! Nom ++ vp.adv ++
|
||||
(vp.s ! VPPass Passive (ClPast Perf)).fin
|
||||
} ;
|
||||
|
||||
PassVPSlash vp = {
|
||||
s = \\_ => vp.s ! VPPass Passive ClPres ;
|
||||
compl = vp.compl ; adv = vp.adv ; embedCompl = vp.embedCompl ; vt = vp.vt
|
||||
} ;
|
||||
|
||||
PassAgentVPSlash vp np = insertObj (\\_ => np.s ! Inst) (PassVPSlash vp) ;
|
||||
ProgrVPSlash vp = vp ;
|
||||
|
||||
GerundCN vp = {s = \\_,_ => infVP vp Nom} ;
|
||||
GerundNP vp = {
|
||||
s = \\rc => infVP vp rc ; n = Sg ; p = P3 ; isPron = False ; isDef = True
|
||||
} ;
|
||||
GerundAdv vp = {s = infVP vp Inst} ;
|
||||
WithoutVP vp = {s = infVP vp Nom ++ BIND ++ "гүйгээр"} ;
|
||||
ByVP vp = {s = infVP vp Inst} ;
|
||||
InOrderToVP vp = {s = infVP vp Dat ++ "тулд"} ;
|
||||
|
||||
ApposNP np app = np ** {s = \\rc => np.s ! rc ++ "," ++ app.s ! Nom} ;
|
||||
PositAdVAdj a = a ;
|
||||
|
||||
MkVPS temp pol vp = {
|
||||
s = vp.compl ! Nom ++ vp.embedCompl ! Nom ++ vp.adv ++
|
||||
(vp.s ! VPFin temp.t temp.a pol.p).fin ++
|
||||
(vp.s ! VPFin temp.t temp.a pol.p).aux
|
||||
} ;
|
||||
BaseVPS x y = {s1 = x.s ; s2 = y.s} ;
|
||||
ConsVPS x xs = {s1 = x.s ++ "," ++ xs.s1 ; s2 = xs.s2} ;
|
||||
ConjVPS conj xs = {s = xs.s1 ++ conj.s2 ++ xs.s2} ;
|
||||
PredVPS np vps = {s = \\_ => np.s ! Nom ++ vps.s} ;
|
||||
|
||||
MkVPI vp = {s = infVP vp Nom} ;
|
||||
BaseVPI x y = {s1 = x.s ; s2 = y.s} ;
|
||||
ConsVPI x xs = {s1 = x.s ++ "," ++ xs.s1 ; s2 = xs.s2} ;
|
||||
ConjVPI conj xs = {s = xs.s1 ++ conj.s2 ++ xs.s2} ;
|
||||
ComplVPIVV vv vpi = insertObj (\\_ => vpi.s) (predV (auxToVerb vv)) ;
|
||||
|
||||
BaseComp x y = {s1 = x.s ; s2 = y.s} ;
|
||||
ConsComp x xs = {
|
||||
s1 = \\rc => x.s ! rc ++ "," ++ xs.s1 ! rc ; s2 = xs.s2
|
||||
} ;
|
||||
ConjComp conj xs = {s = \\rc => xs.s1 ! rc ++ conj.s2 ++ xs.s2 ! rc} ;
|
||||
|
||||
BaseImp x y = {s1 = x.s ; s2 = y.s} ;
|
||||
ConsImp x xs = {
|
||||
s1 = \\p,f => x.s ! p ! f ++ "," ++ xs.s1 ! p ! f ; s2 = xs.s2
|
||||
} ;
|
||||
ConjImp conj xs = {s = \\p,f => xs.s1 ! p ! f ++ conj.s2 ++ xs.s2 ! p ! f} ;
|
||||
|
||||
ReflPron = lin RNP {
|
||||
s = reflPron ! Sg ; n = Sg ; p = P3 ; isPron = True ; isDef = True ; lock_NP = <>
|
||||
} ;
|
||||
ReflPoss num cn = lin RNP {
|
||||
s = \\rc => reflPron ! Sg ! Gen ++ cn.s ! num.n ! toNCase rc Definite ;
|
||||
n = num.n ; p = P3 ; isPron = False ; isDef = True ; lock_NP = <>
|
||||
} ;
|
||||
AdvRNP np prep rnp = lin RNP {
|
||||
s = \\rc => np.s ! rc ++ rnp.s ! prep.rc ++ prep.s ;
|
||||
n = np.n ; p = np.p ; isPron = False ; isDef = np.isDef ; lock_NP = <>
|
||||
} ;
|
||||
AdvRVP vp prep rnp = insertAdv (rnp.s ! prep.rc ++ prep.s) vp ;
|
||||
AdvRAP ap prep rnp = {s = rnp.s ! prep.rc ++ prep.s ++ ap.s} ;
|
||||
ReflRNP slash rnp = insertObj (\\_ => rnp.s ! slash.c2.rc ++ slash.c2.s) slash ;
|
||||
ReflA2RNP ap rnp = {s = rnp.s ! ap.c2.rc ++ ap.c2.s ++ ap.s} ;
|
||||
PossPronRNP pron num cn rnp = lin NP {
|
||||
s = \\rc => pron.s ! PronCase Gen ++ cn.s ! num.n ! NNom ++ rnp.s ! rc ;
|
||||
n = num.n ; p = P3 ; isPron = False ; isDef = True
|
||||
} ;
|
||||
|
||||
UseDAP dap = {
|
||||
s = dap.s ; n = dap.n ; p = P3 ; isPron = False ; isDef = dap.isDef
|
||||
} ;
|
||||
UseDAPMasc = UseDAP ;
|
||||
UseDAPFem = UseDAP ;
|
||||
|
||||
}
|
||||
+55
-55
@@ -736,12 +736,12 @@ ugz_AdV = ss "угз" ;
|
||||
yalz_AdV = ss "ялз" ;
|
||||
yaz_AdV = ss "яз" ;
|
||||
zad_AdV = ss "зад" ;
|
||||
garui_CAdv = lin CAdv {s = " гаруй" ; c2 = noPrep Nom} ;
|
||||
lugaa_CAdv = lin CAdv {s = " лугаа" ; c2 = noPrep Nom} ;
|
||||
met_CAdv = lin CAdv {s = " мэт" ; c2 = noPrep Nom} ;
|
||||
meterhueue_CAdv = lin CAdv {s = " мэтэрхүү" ; c2 = noPrep Nom} ;
|
||||
net_CAdv = lin CAdv {s = " нэт" ; c2 = noPrep Nom} ;
|
||||
shig_CAdv = lin CAdv {s = " шиг" ; c2 = noPrep Nom} ;
|
||||
garui_CAdv = {s = " гаруй" ; c2 = noPrep Nom} ;
|
||||
lugaa_CAdv = {s = " лугаа" ; c2 = noPrep Nom} ;
|
||||
met_CAdv = {s = " мэт" ; c2 = noPrep Nom} ;
|
||||
meterhueue_CAdv = {s = " мэтэрхүү" ; c2 = noPrep Nom} ;
|
||||
net_CAdv = {s = " нэт" ; c2 = noPrep Nom} ;
|
||||
shig_CAdv = {s = " шиг" ; c2 = noPrep Nom} ;
|
||||
atlaa_Conj = mkConj "атлаа" ;
|
||||
ba_Conj = mkConj "ба" ;
|
||||
bas_Conj = mkConj "бас" ;
|
||||
@@ -755,48 +755,48 @@ esvel_Conj = mkConj "эсвэл" ;
|
||||
moertloeoe_Conj = mkConj "мөртлөө" ;
|
||||
selt_Conj = mkConj "сэлт" ;
|
||||
moertoeoe_Conj = mkConj "мөртөө" ;
|
||||
ahu_Det = {s = "аху" ; sp = \\rc => (regN "аху").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPre,isPoss = False ; isDef = True} ;
|
||||
alivaa_Det = {s = "аливаа" ; sp = \\rc => (regN "аливаа").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
anu_Det = {s = "ану" ; sp = \\rc => (regN "ану").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPre,isPoss = False ; isDef = True} ;
|
||||
bishid_Det = {s = "бишид" ; sp = \\rc => (regN "бишид").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
bolgon_Det = {s = "болгон" ; sp = \\rc => (regN "болгон").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPre,isPoss = False ; isDef = True} ;
|
||||
buehen_Det = {s = "бүхэн" ; sp = \\rc => (regN "бүхэн").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPre,isPoss = False ; isDef = True} ;
|
||||
buehii_Det = {s = "бүхий" ; sp = \\rc => (regN "бүхий").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPre,isPoss = False ; isDef = True} ;
|
||||
busad_Det = {s = "бусад" ; sp = \\rc => (regN "бусад").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
caad_Det = {s = "цаад" ; sp = \\rc => (regN "цаад").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
caadah'_Det = {s = "цаадахь" ; sp = \\rc => (regN "цаадахь").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
coem_Det = {s = "цөм" ; sp = \\rc => (regN "цөм").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
coryn_ganc_Det = {s = "цорын ганц" ; sp = \\rc => (regN "цорын ганц").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
diilenh_Det = {s = "дийлэнх" ; sp = \\rc => (regN "дийлэнх").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
enehueue_Det = {s = "энэхүү" ; sp = \\rc => (regN "энэхүү").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
ganc_Det = {s = "ганц" ; sp = \\rc => (regN "ганц").s ! (SF Sg (toNCase rc Definite)) ; isPoss = False ; isNum,isPre,isDef = True} ;
|
||||
ganchan_Det = {s = "ганцхан" ; sp = \\rc => (regN "ганцхан").s ! (SF Sg (toNCase rc Definite)) ; isPoss = False ; isNum,isPre,isDef = True} ;
|
||||
heseghen_Det = {s = "хэсэгхэн" ; sp = \\rc => (regN "хэсэгхэн").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
ihenh_Det = {s = "ихэнх" ; sp = \\rc => (regN "ихэнх").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
iim_Det = {s = "ийм" ; sp = \\rc => (regN "ийм").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
iimhen_Det = {s = "иймхэн" ; sp = \\rc => (regN "иймхэн").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
moenoeoehoen_Det = {s = "мөнөөхөн" ; sp = \\rc => (regN "мөнөөхөн").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
nejeed_Det = {s = "нэжээд" ; sp = \\rc => (regN "нэжээд").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss,isDef = False ; isPre = True} ;
|
||||
nejgeed_Det = {s = "нэжгээд" ; sp = \\rc => (regN "нэжгээд").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss,isDef = False ; isPre = True} ;
|
||||
nijeed_Det = {s = "нижээд" ; sp = \\rc => (regN "нижээд").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss,isDef = False ; isPre = True} ;
|
||||
nijgeed_Det = {s = "нижгээд" ; sp = \\rc => (regN "нижгээд").s ! (SF Sg (toNCase rc Definite)) ; isNum, isPoss,isDef = False ; isPre = True} ;
|
||||
noegoeoe_Det = {s = "нөгөө" ; sp = \\rc => (regN "нөгөө").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
olhon_Det = {s = "олхон" ; sp = \\rc => (regN "олхон").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
olon_Det = {s = "олон" ; sp = \\rc => (regN "олон").s ! (SF Sg (toNCase rc Definite)) ; isNum, isPoss,isDef = False ; isPre = True} ;
|
||||
shaham_Det = {s = "шахам" ; sp = \\rc => (regN "шахам").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPre,isPoss = False ; isDef = True} ;
|
||||
shahuu_Det = {s = "шахуу" ; sp = \\rc => (regN "шахуу").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss,isDef = False ; isPre = True} ;
|
||||
tereehen_Det = {s = "тэрээхэн" ; sp = \\rc => (regN "тэрээхэн").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
terhen_Det = {s = "тэрхэн" ; sp = \\rc => (regN "тэрхэн").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
terhueue_Det = {s = "тэрхүү" ; sp = \\rc => (regN "тэрхүү").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
tiimerhueue_Det = {s = "тиймэрхүү" ; sp = \\rc => (regN "тиймэрхүү").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
tiimshig_Det = {s = "тиймшиг" ; sp = \\rc => (regN "тиймшиг").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
toechnoeoen_Det = {s = "төчнөөн" ; sp = \\rc => (regN "төчнөөн").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
tutam_Det = {s = "тутам" ; sp = \\rc => (regN "тутам").s ! (SF Sg (toNCase rc Definite)) ; isNum, isPoss,isPre = False ; isDef = True} ;
|
||||
yamarvaa_Det = {s = "ямарваа" ; sp = \\rc => (regN "ямарваа").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
zarim_Det = {s = "зарим" ; sp = \\rc => (regN "зарим").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss,isDef = False ; isPre = True} ;
|
||||
bueh_Det = {s = "бүх" ; sp = \\rc => (regN "бүх").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss = False ; isPre,isDef = True} ;
|
||||
buer_Det = {s = "бүр" ; sp = \\rc => (regN "бүр").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss,isDef = False ; isPre = True} ;
|
||||
zarim_neg_Det = {s = "зарим нэг" ; sp = \\rc => (regN "зарим нэг").s ! (SF Sg (toNCase rc Definite)) ; isNum,isPoss,isDef = False ; isPre = True} ;
|
||||
ahu_Det = {s = "аху" ; sp = \\rc => (regN "аху").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre = False ; isDef = True} ;
|
||||
alivaa_Det = {s = "аливаа" ; sp = \\rc => (regN "аливаа").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
anu_Det = {s = "ану" ; sp = \\rc => (regN "ану").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre = False ; isDef = True} ;
|
||||
bishid_Det = {s = "бишид" ; sp = \\rc => (regN "бишид").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
bolgon_Det = {s = "болгон" ; sp = \\rc => (regN "болгон").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre = False ; isDef = True} ;
|
||||
buehen_Det = {s = "бүхэн" ; sp = \\rc => (regN "бүхэн").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre = False ; isDef = True} ;
|
||||
buehii_Det = {s = "бүхий" ; sp = \\rc => (regN "бүхий").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre = False ; isDef = True} ;
|
||||
busad_Det = {s = "бусад" ; sp = \\rc => (regN "бусад").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
caad_Det = {s = "цаад" ; sp = \\rc => (regN "цаад").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
caadah'_Det = {s = "цаадахь" ; sp = \\rc => (regN "цаадахь").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
coem_Det = {s = "цөм" ; sp = \\rc => (regN "цөм").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
coryn_ganc_Det = {s = "цорын ганц" ; sp = \\rc => (regN "цорын ганц").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
diilenh_Det = {s = "дийлэнх" ; sp = \\rc => (regN "дийлэнх").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
enehueue_Det = {s = "энэхүү" ; sp = \\rc => (regN "энэхүү").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
ganc_Det = {s = "ганц" ; sp = \\rc => (regN "ганц").s ! (SF Sg (toNCase rc Definite)) ; n = Pl ; isPre,isDef = True} ;
|
||||
ganchan_Det = {s = "ганцхан" ; sp = \\rc => (regN "ганцхан").s ! (SF Sg (toNCase rc Definite)) ; n = Pl ; isPre,isDef = True} ;
|
||||
heseghen_Det = {s = "хэсэгхэн" ; sp = \\rc => (regN "хэсэгхэн").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
ihenh_Det = {s = "ихэнх" ; sp = \\rc => (regN "ихэнх").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
iim_Det = {s = "ийм" ; sp = \\rc => (regN "ийм").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
iimhen_Det = {s = "иймхэн" ; sp = \\rc => (regN "иймхэн").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
moenoeoehoen_Det = {s = "мөнөөхөн" ; sp = \\rc => (regN "мөнөөхөн").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
nejeed_Det = {s = "нэжээд" ; sp = \\rc => (regN "нэжээд").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isDef = False ; isPre = True} ;
|
||||
nejgeed_Det = {s = "нэжгээд" ; sp = \\rc => (regN "нэжгээд").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isDef = False ; isPre = True} ;
|
||||
nijeed_Det = {s = "нижээд" ; sp = \\rc => (regN "нижээд").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isDef = False ; isPre = True} ;
|
||||
nijgeed_Det = {s = "нижгээд" ; sp = \\rc => (regN "нижгээд").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isDef = False ; isPre = True} ;
|
||||
noegoeoe_Det = {s = "нөгөө" ; sp = \\rc => (regN "нөгөө").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
olhon_Det = {s = "олхон" ; sp = \\rc => (regN "олхон").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
olon_Det = {s = "олон" ; sp = \\rc => (regN "олон").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isDef = False ; isPre = True} ;
|
||||
shaham_Det = {s = "шахам" ; sp = \\rc => (regN "шахам").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre = False ; isDef = True} ;
|
||||
shahuu_Det = {s = "шахуу" ; sp = \\rc => (regN "шахуу").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isDef = False ; isPre = True} ;
|
||||
tereehen_Det = {s = "тэрээхэн" ; sp = \\rc => (regN "тэрээхэн").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
terhen_Det = {s = "тэрхэн" ; sp = \\rc => (regN "тэрхэн").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
terhueue_Det = {s = "тэрхүү" ; sp = \\rc => (regN "тэрхүү").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
tiimerhueue_Det = {s = "тиймэрхүү" ; sp = \\rc => (regN "тиймэрхүү").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
tiimshig_Det = {s = "тиймшиг" ; sp = \\rc => (regN "тиймшиг").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
toechnoeoen_Det = {s = "төчнөөн" ; sp = \\rc => (regN "төчнөөн").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
tutam_Det = {s = "тутам" ; sp = \\rc => (regN "тутам").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre = False ; isDef = True} ;
|
||||
yamarvaa_Det = {s = "ямарваа" ; sp = \\rc => (regN "ямарваа").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
zarim_Det = {s = "зарим" ; sp = \\rc => (regN "зарим").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isDef = False ; isPre = True} ;
|
||||
bueh_Det = {s = "бүх" ; sp = \\rc => (regN "бүх").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isPre,isDef = True} ;
|
||||
buer_Det = {s = "бүр" ; sp = \\rc => (regN "бүр").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isDef = False ; isPre = True} ;
|
||||
zarim_neg_Det = {s = "зарим нэг" ; sp = \\rc => (regN "зарим нэг").s ! (SF Sg (toNCase rc Definite)) ; n = Sg ; isDef = False ; isPre = True} ;
|
||||
haa_IAdv = ss "хаа" ;
|
||||
haana_IAdv = ss "хаана" ;
|
||||
haanaas_IAdv = ss "хаанаас" ;
|
||||
@@ -1031,13 +1031,13 @@ zuurd_Prep = mkPrep Gen "зуурд" ;
|
||||
deerh_Prep = mkPrep Gen "дээрх" ;
|
||||
huertel_Prep = mkPrep Nom "хүртэл" ;
|
||||
tusam_Prep = mkPrep Nom "тусам" ;
|
||||
edgeer_Quant = {s = \\_ => "эдгээр" ; sp = \\_,nc => (regN "эдгээр").s ! SF Sg nc ; isPoss =False ; isDef = True} ;
|
||||
el_Quant = {s = \\_ => "эл" ; sp = \\_,nc => (regN "эл").s ! SF Sg nc ; isPoss =False ; isDef = True} ;
|
||||
ene_Quant = {s = \\_ => "энэ" ; sp = \\_,nc => (regN "энэ").s ! SF Sg nc ; isPoss =False ; isDef = True} ;
|
||||
eneehen_Quant = {s = \\_ => "энээхэн" ; sp = \\_,nc => (regN "энээхэн").s ! SF Sg nc ; isPoss =False ; isDef = True} ;
|
||||
enehen_Quant = {s = \\_ => "энэхэн" ; sp = \\_,nc => (regN "энэхэн").s ! SF Sg nc ; isPoss =False ; isDef = True} ;
|
||||
naadah'_Quant = {s = \\_ => "наадахь" ; sp = \\_,nc => (regN "наадахь").s ! SF Sg nc ; isPoss =False ; isDef = True} ;
|
||||
tedgeer_Quant = {s = \\_ => "тэдгээр" ; sp = \\_,nc => (regN "тэдгээр").s ! SF Sg nc ; isPoss =False ; isDef = True} ;
|
||||
edgeer_Quant = {s = \\_ => "эдгээр" ; sp = \\_,nc => (regN "эдгээр").s ! SF Sg nc ; isDef = True} ;
|
||||
el_Quant = {s = \\_ => "эл" ; sp = \\_,nc => (regN "эл").s ! SF Sg nc ; isDef = True} ;
|
||||
ene_Quant = {s = \\_ => "энэ" ; sp = \\_,nc => (regN "энэ").s ! SF Sg nc ; isDef = True} ;
|
||||
eneehen_Quant = {s = \\_ => "энээхэн" ; sp = \\_,nc => (regN "энээхэн").s ! SF Sg nc ; isDef = True} ;
|
||||
enehen_Quant = {s = \\_ => "энэхэн" ; sp = \\_,nc => (regN "энэхэн").s ! SF Sg nc ; isDef = True} ;
|
||||
naadah'_Quant = {s = \\_ => "наадахь" ; sp = \\_,nc => (regN "наадахь").s ! SF Sg nc ; isDef = True} ;
|
||||
tedgeer_Quant = {s = \\_ => "тэдгээр" ; sp = \\_,nc => (regN "тэдгээр").s ! SF Sg nc ; isDef = True} ;
|
||||
getel_PConj = ss "гэтэл" ;
|
||||
gevch_PConj = ss "гэвч" ;
|
||||
hedii_Subj = {s = "хэдий" ; isPre = True} ;
|
||||
|
||||
@@ -15,5 +15,5 @@ concrete GrammarMon of Grammar =
|
||||
StructuralMon,
|
||||
IdiomMon,
|
||||
TenseMon,
|
||||
NumeralTransferMon
|
||||
NamesMon
|
||||
** { flags startcat = Phr ; unlexer = text ; lexer = text ; coding=utf8 ; } ;
|
||||
@@ -35,9 +35,6 @@ lin
|
||||
vps = vp.s ! VPImper Pos False
|
||||
in {
|
||||
s = vps.fin ;
|
||||
compl = vp.compl ;
|
||||
adv = vp.adv ;
|
||||
ext = vp.ext
|
||||
} ;
|
||||
|
||||
ImpP3 np vp =
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
concrete LangMon of Lang =
|
||||
GrammarMon,
|
||||
LexiconMon -- to compile faster, use TestLexiconMon (see LangExtraMon.gf)
|
||||
,ConstructionMon
|
||||
,DocumentationMon --# notpresent
|
||||
** {
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
concrete NamesMon of Names = CatMon ** open Prelude, ResMon in {
|
||||
|
||||
oper
|
||||
nameNP : (RCase => Str) -> NP = \s -> lin NP {
|
||||
s = s ;
|
||||
n = Sg ; p = P3 ; isPron = False ; isDef = True
|
||||
} ;
|
||||
|
||||
lin
|
||||
UseLN ln = nameNP ln.s ;
|
||||
InLN ln = {s = ln.s ! Dat} ;
|
||||
AdjLN ap ln = {s = \\rc => ap.s ++ ln.s ! rc} ;
|
||||
GivenName gn = nameNP gn.s ;
|
||||
MaleSurname sn = nameNP sn.s ;
|
||||
}
|
||||
+57
-34
@@ -6,14 +6,14 @@ lin
|
||||
DetCN det cn = {
|
||||
s = \\rc => case <det.isPre,det.isDef> of {
|
||||
<True,True> => case rc of {
|
||||
Acc => det.s ++ cn.s ! Sg ! NAcc Definite ;
|
||||
_ => det.s ++ cn.s ! Sg ! toNCase rc Definite } ;
|
||||
Acc => det.s ++ cn.s ! det.n ! NAcc Definite ;
|
||||
_ => det.s ++ cn.s ! det.n ! toNCase rc Definite } ;
|
||||
<True,False> => case rc of {
|
||||
Acc => det.s ++ cn.s ! Sg ! NAcc Indefinite ;
|
||||
_ => det.s ++ cn.s ! Sg ! toNCase rc Indefinite } ;
|
||||
_ => cn.s ! Sg ! NNom ++ det.sp ! rc
|
||||
Acc => det.s ++ cn.s ! det.n ! NAcc Indefinite ;
|
||||
_ => det.s ++ cn.s ! det.n ! toNCase rc Indefinite } ;
|
||||
_ => cn.s ! det.n ! NNom ++ det.sp ! rc
|
||||
} ;
|
||||
n = Sg ;
|
||||
n = det.n ;
|
||||
p = P3 ;
|
||||
isPron = False ;
|
||||
isDef = det.isDef
|
||||
@@ -51,12 +51,8 @@ lin
|
||||
isDef = np.isDef
|
||||
} ;
|
||||
|
||||
RelNP np rs = {
|
||||
s = \\rc => rs.s ! Attributive ++ np.s ! rc ;
|
||||
n = np.n ;
|
||||
p = np.p ;
|
||||
isPron = False ;
|
||||
isDef = np.isDef
|
||||
RelNP np rs = np ** {
|
||||
s = \\rc => np.s ! rc ++ "," ++ rs.s ! ComplSubj
|
||||
} ;
|
||||
|
||||
AdvNP np adv = {
|
||||
@@ -66,33 +62,50 @@ lin
|
||||
isPron = False ;
|
||||
isDef = np.isDef
|
||||
} ;
|
||||
|
||||
ExtAdvNP np adv = np ** {
|
||||
s = \\rc => np.s ! rc ++ "," ++ adv.s
|
||||
} ;
|
||||
|
||||
DetQuant quant num = {
|
||||
s = quant.s ! Sg ++ num.s ;
|
||||
s = quant.s ! num.n ++ num.s ;
|
||||
sp = \\rc => quant.sp ! num.n ! NNom ++ num.sp ! rc ;
|
||||
isNum = num.isNum ;
|
||||
isPoss = quant.isPoss ;
|
||||
isDef = True ;
|
||||
n = num.n ;
|
||||
isDef = quant.isDef ;
|
||||
isPre = True
|
||||
} ;
|
||||
|
||||
DetQuantOrd quant num ord = {
|
||||
s = quant.s ! Sg ++ num.s ++ ord.s ;
|
||||
s = quant.s ! num.n ++ num.s ++ ord.s ;
|
||||
sp = \\_ => quant.sp ! num.n ! NNom ++ num.s ++ ord.s ;
|
||||
isNum = num.isNum ;
|
||||
isPoss = quant.isPoss ;
|
||||
isDef = True ;
|
||||
n = num.n ;
|
||||
isDef = quant.isDef ;
|
||||
isPre = True
|
||||
} ;
|
||||
|
||||
DetNP det = {
|
||||
s = \\rc => det.sp ! rc ;
|
||||
n = Sg ;
|
||||
n = det.n ;
|
||||
p = P3 ;
|
||||
isPron = False ;
|
||||
isDef = True
|
||||
isDef = det.isDef
|
||||
} ;
|
||||
|
||||
DetDAP det = {
|
||||
s = det.sp ;
|
||||
n = det.n ;
|
||||
isDef = det.isDef
|
||||
} ;
|
||||
|
||||
AdjDAP dap ap = dap ** {
|
||||
s = \\rc => ap.s ++ dap.s ! rc
|
||||
} ;
|
||||
|
||||
CountNP det np = {
|
||||
s = \\rc => det.s ++ np.s ! Abl ;
|
||||
n = np.n ; p = np.p ; isPron = False ; isDef = det.isDef
|
||||
} ;
|
||||
|
||||
UseN,UseN2 = \noun -> {
|
||||
s = \\n,nc => noun.s ! SF n nc
|
||||
} ;
|
||||
@@ -100,15 +113,14 @@ lin
|
||||
PossPron p = {
|
||||
s = \\_ => p.s ! PronCase Gen ;
|
||||
sp = \\_,nc => p.s ! PronPoss (toRCase nc Definite) ;
|
||||
isPoss = True ;
|
||||
isDef = True
|
||||
} ;
|
||||
|
||||
NumSg = {s = [] ; sp = \\_ => [] ; n = Sg ; isNum = False} ;
|
||||
NumPl = {s = [] ; sp = \\_ => [] ; n = Pl ; isNum = False} ;
|
||||
|
||||
NumCard n = n ** {isNum = True} ;
|
||||
|
||||
NumSg = {s = [] ; sp = \\_ => [] ; n = Sg} ;
|
||||
NumPl = {s = [] ; sp = \\_ => [] ; n = Pl} ;
|
||||
|
||||
NumCard n = n ** {n = Sg} ;
|
||||
|
||||
NumDigits,NumNumeral,NumDecimal = \numeral -> {
|
||||
s = numeral.s ! NCard ;
|
||||
sp = \\_ => numeral.s ! NCard ;
|
||||
@@ -143,20 +155,15 @@ lin
|
||||
} ;
|
||||
Pl => (regN "эдгээр").s ! SF Sg nc
|
||||
} ;
|
||||
isPoss = False ;
|
||||
isDef = True
|
||||
} ;
|
||||
-- the numeral neg for ‘one’ in the function as an indefinite article (Givon 1981)
|
||||
IndefArt = {
|
||||
s = \\n => case n of {
|
||||
Sg => "нэг" ;
|
||||
Pl => "нэжгээд"
|
||||
} ;
|
||||
s = \\_ => [] ;
|
||||
sp = \\n,nc => case n of {
|
||||
Sg => (regN "аль нэг").s ! SF Sg nc ;
|
||||
Pl => (regN "нэжгээд").s ! SF Sg nc
|
||||
} ;
|
||||
isPoss = False ;
|
||||
isDef = False
|
||||
} ;
|
||||
|
||||
@@ -168,6 +175,22 @@ lin
|
||||
isDef = True
|
||||
} ;
|
||||
|
||||
PossNP cn np = {
|
||||
s = \\n,nc => np.s ! Gen ++ cn.s ! n ! nc
|
||||
} ;
|
||||
|
||||
PartNP cn np = {
|
||||
s = \\n,nc => np.s ! Gen ++ cn.s ! n ! nc
|
||||
} ;
|
||||
|
||||
QuantityNP dec mu = {
|
||||
s = \\rc => case mu.isPre of {
|
||||
True => mu.s ++ dec.s ! NCard ;
|
||||
False => dec.s ! NCard ++ mu.s
|
||||
} ;
|
||||
n = dec.n ; p = P3 ; isPron = False ; isDef = False
|
||||
} ;
|
||||
|
||||
Use2N3 n3 = {
|
||||
s = n3.s ;
|
||||
c2 = n3.c2
|
||||
|
||||
@@ -8,7 +8,7 @@ lincat
|
||||
Digit = {s : Place => DForm => CardOrd => Str} ;
|
||||
Sub10 = {s : Place => DForm => CardOrd => Str ; n : Number} ;
|
||||
Sub100, Sub1000 = {s : Place => CardOrd => Str ; n : Number} ;
|
||||
Sub1000000 = {s : CardOrd => Str; n : Number} ;
|
||||
Sub1000000, Sub1000000000, Sub1000000000000 = {s : CardOrd => Str; n : Number} ;
|
||||
|
||||
oper
|
||||
mkCardOrd : Str -> CardOrd => Str = \unit ->
|
||||
@@ -116,6 +116,7 @@ lin
|
||||
} ;
|
||||
|
||||
pot1as2 n = n ;
|
||||
pot21 = {s = \\_,co => mkCardOrd "нэг зуу" ! co ; n = Pl} ;
|
||||
pot2 d = {
|
||||
s = \\p => d.s ! p ! Hundred ; n = Pl
|
||||
} ;
|
||||
@@ -136,6 +137,23 @@ lin
|
||||
s = \\co => n.s ! Attr ! NCard ++ "мянга" ++ m.s ! Indep ! co ; n = Pl
|
||||
} ;
|
||||
|
||||
pot31 = {s = mkCardOrd "нэг мянга" ; n = Pl} ;
|
||||
pot3as4 n = n ;
|
||||
pot3decimal d = {s = \\co => d.s ! NCard ++ mkCardOrd "мянга" ! co ; n = Pl} ;
|
||||
pot41 = {s = mkCardOrd "нэг сая" ; n = Pl} ;
|
||||
pot4 n = {s = \\co => n.s ! Attr ! NCard ++ mkCardOrd "сая" ! co ; n = Pl} ;
|
||||
pot4plus n m = {
|
||||
s = \\co => n.s ! Attr ! NCard ++ "сая" ++ m.s ! NCard ; n = Pl
|
||||
} ;
|
||||
pot4as5 n = n ;
|
||||
pot4decimal d = {s = \\co => d.s ! NCard ++ mkCardOrd "сая" ! co ; n = Pl} ;
|
||||
pot51 = {s = mkCardOrd "нэг тэрбум" ; n = Pl} ;
|
||||
pot5 n = {s = \\co => n.s ! Attr ! NCard ++ mkCardOrd "тэрбум" ! co ; n = Pl} ;
|
||||
pot5plus n m = {
|
||||
s = \\co => n.s ! Attr ! NCard ++ "тэрбум" ++ m.s ! NCard ; n = Pl
|
||||
} ;
|
||||
pot5decimal d = {s = \\co => d.s ! NCard ++ mkCardOrd "тэрбум" ! co ; n = Pl} ;
|
||||
|
||||
lincat
|
||||
Dig = TDigit ;
|
||||
|
||||
|
||||
@@ -35,9 +35,23 @@ oper
|
||||
s = \\rc => (loanN pn).s ! (SF Sg (toNCase rc Definite))
|
||||
} ;
|
||||
|
||||
mkLN : Str -> LN = \s -> lin LN {s=s} ;
|
||||
mkSN : Str -> SN = \s -> lin SN {s=s} ;
|
||||
mkGN : Str -> GN = \s -> lin GN {s=s} ;
|
||||
nameForms : Str -> RCase => Str = \s -> case s of {
|
||||
["АЯУЮ"] + _ | (_ + ["аяую"] + _) |
|
||||
["ЁО"] + _ | (_ + ["ёо"] + _) |
|
||||
"Ө" + _ | (_ + "ө" + _) |
|
||||
["ЭҮЕИ"] + _ | (_ + ["эүеи"] + _) =>
|
||||
\\rc => (loanN s).s ! SF Sg (toNCase rc Definite) ;
|
||||
_ => table {
|
||||
Nom => s ; Gen => s ++ BIND ++ "ийн" ; Dat => s ++ BIND ++ "д" ;
|
||||
Acc => s ++ BIND ++ "ийг" ; Abl => s ++ BIND ++ "ээс" ;
|
||||
Inst => s ++ BIND ++ "ээр" ; Com => s ++ BIND ++ "тэй" ;
|
||||
Dir => s ++ "рүү"
|
||||
}
|
||||
} ;
|
||||
|
||||
mkLN : Str -> LN = \s -> lin LN {s = nameForms s} ;
|
||||
mkSN : Str -> SN = \s -> lin SN {s = nameForms s} ;
|
||||
mkGN : Str -> GN = \s -> lin GN {s = nameForms s} ;
|
||||
|
||||
modDecl : (Dcl -> Dcl) -> Str -> Noun =
|
||||
\mod,nomSg -> mkDeclDrop (mod (chooseDcl nomSg)) nomSg ;
|
||||
|
||||
@@ -339,7 +339,7 @@ oper
|
||||
|
||||
-- Implementation of Adjectives
|
||||
|
||||
mkA : (positive : Str) -> Adjective = \a -> lin A (ss a) ;
|
||||
mkA : (positive : Str) -> A = \a -> lin A (ss a) ;
|
||||
|
||||
mkA2 : Adjective -> Prep -> A2 = \a,p -> lin A2 a ** {c2 = p} ;
|
||||
|
||||
@@ -374,7 +374,7 @@ oper
|
||||
|
||||
-- Other verbs
|
||||
|
||||
mkV0 : Verb -> V0 = \v -> lin V0 v ;
|
||||
mkV0 : Verb -> V0 = \v -> v ;
|
||||
mkVA : Verb -> VA = \v -> lin VA v ;
|
||||
mkVS : Verb -> VS = \v -> lin VS v ;
|
||||
mkVV : Aux -> VV = \v -> lin VV v ;
|
||||
|
||||
@@ -126,7 +126,7 @@ param
|
||||
|
||||
oper
|
||||
Noun : Type = {s : SubstForm => Str} ;
|
||||
NounPhrase : Type = {s : RCase => Str; n : Number ; p : Person ; isPron : Bool ; isDef : Bool} ;
|
||||
NounPhrase : Type = {s : RCase => Str; n : Number ; p : Person ; isPron : Bool} ;
|
||||
|
||||
param
|
||||
PronForm = PronCase RCase | PronPoss RCase ;
|
||||
|
||||
@@ -28,6 +28,10 @@ lin
|
||||
ImpF _ True => "та" ++ neg ++ (vp.s ! VPImper pol True).fin
|
||||
}
|
||||
} ;
|
||||
|
||||
AdvImp adv imp = {
|
||||
s = \\pol,f => adv.s ++ imp.s ! pol ! f
|
||||
} ;
|
||||
|
||||
-- Clauses missing object noun phrases
|
||||
|
||||
@@ -62,7 +66,7 @@ lin
|
||||
} ;
|
||||
|
||||
UseCl t p cl = {
|
||||
s = \\_ => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! Part Subject
|
||||
s = \\_ => t.s ++ p.s ++ cl.s ! t.t ! t.a ! p.p ! Main
|
||||
} ;
|
||||
|
||||
UseQCl t p cl = {
|
||||
|
||||
@@ -32,7 +32,8 @@ lin
|
||||
every_Det = {
|
||||
s = "бүр" ;
|
||||
sp = \\rc => (regN "бүр").s ! (SF Sg (toNCase rc Definite)) ;
|
||||
isNum, isPoss, isPre = False ;
|
||||
n = Sg ;
|
||||
isPre = False ;
|
||||
isDef = True
|
||||
} ;
|
||||
everybody_NP = mkNP "хүн бүр" Definite ;
|
||||
@@ -41,7 +42,8 @@ lin
|
||||
few_Det = {
|
||||
s = "багагүй" ;
|
||||
sp = \\rc => (regN "багагүй").s ! (SF Sg (toNCase rc Indefinite)) ;
|
||||
isNum, isPoss, isDef = False ;
|
||||
n = Pl ;
|
||||
isDef = False ;
|
||||
isPre = True
|
||||
} ;
|
||||
for_Prep = noPrep Dat ;
|
||||
@@ -61,14 +63,15 @@ lin
|
||||
in8front_Prep = mkPrep Gen "урд" ;
|
||||
in_Prep = noPrep Dat ;
|
||||
it_Pron = mkPron "тэр" "түүний" "түүнд" "түүнийг" "түүнээс" "түүнээр" "түүнтэй" "түүн рүү" Sg P3 ;
|
||||
less_CAdv = lin CAdv {s = "бага" ; c2 = noPrep Abl} ;
|
||||
less_CAdv = {s = "бага" ; c2 = noPrep Abl} ;
|
||||
many_Det = {
|
||||
s = "олон" ;
|
||||
sp = \\rc => (regN "олон").s ! (SF Sg (toNCase rc Indefinite)) ;
|
||||
isNum, isPoss, isDef = False ;
|
||||
n = Pl ;
|
||||
isDef = False ;
|
||||
isPre = True
|
||||
} ;
|
||||
more_CAdv = lin CAdv {s = "илүү" ; c2 = noPrep Abl};
|
||||
more_CAdv = {s = "илүү" ; c2 = noPrep Abl};
|
||||
most_Predet = {
|
||||
s = "ихэнх" ;
|
||||
isPre = True ;
|
||||
@@ -77,7 +80,8 @@ lin
|
||||
much_Det = {
|
||||
s = "нилээд" ;
|
||||
sp = \\rc => (regN "нилээд").s ! (SF Sg (toNCase rc Indefinite)) ;
|
||||
isNum, isPoss, isDef = False ;
|
||||
n = Sg ;
|
||||
isDef = False ;
|
||||
isPre = True
|
||||
} ;
|
||||
must_VV = verbToAux (regV ("хэрэгтэй байх")) ;
|
||||
@@ -100,13 +104,15 @@ lin
|
||||
someSg_Det = {
|
||||
s = "зарим нэг" ;
|
||||
sp = \\rc => (regN "зарим нэг").s ! (SF Sg (toNCase rc Indefinite)) ;
|
||||
isNum, isPoss, isDef = False ;
|
||||
n = Sg ;
|
||||
isDef = False ;
|
||||
isPre = True
|
||||
} ;
|
||||
somePl_Det = {
|
||||
s = "зарим" ;
|
||||
sp = \\rc => (regN "зарим").s ! (SF Sg (toNCase rc Indefinite)) ;
|
||||
isNum, isPoss, isDef = False ;
|
||||
n = Pl ;
|
||||
isDef = False ;
|
||||
isPre = True
|
||||
} ;
|
||||
something_NP = mkNP "ямар нэгэн юм" Indefinite ;
|
||||
@@ -124,7 +130,6 @@ lin
|
||||
} ;
|
||||
Pl => (regN "тэдгээр").s ! SF Sg nc
|
||||
};
|
||||
isPoss = False ;
|
||||
isDef = True
|
||||
} ;
|
||||
that_Subj = {s = [] ; isPre = True} ;
|
||||
@@ -146,7 +151,6 @@ lin
|
||||
} ;
|
||||
Pl => (regN "эдгээр").s ! SF Sg nc
|
||||
} ;
|
||||
isPoss = False ;
|
||||
isDef = True
|
||||
} ;
|
||||
through_Prep = noPrep Inst ;
|
||||
@@ -158,11 +162,9 @@ lin
|
||||
we_Pron = mkPron "бид" "бидний" "бидэнд" "биднийг" "биднээс" "биднээр" "бидэнтэй" "бидэн рүү" Pl P1 ;
|
||||
whatPl_IP = {
|
||||
s = \\rc => (regN "юу").s ! SF Sg (toNCase rc Definite) ;
|
||||
n = Pl
|
||||
} ;
|
||||
whatSg_IP = {
|
||||
s = \\rc => (regN "юу").s ! SF Sg (toNCase rc Definite) ;
|
||||
n = Sg
|
||||
} ;
|
||||
when_IAdv = ss "хэзээ" ;
|
||||
when_Subj = {s = "хэрэв" ; isPre = True} ;
|
||||
@@ -171,12 +173,10 @@ lin
|
||||
s = \\rc => (regN "ямар").s ! SF Sg (toNCase rc Definite)
|
||||
} ;
|
||||
whoPl_IP = {
|
||||
s = \\rc => (regN "хэн").s ! SF Sg (toNCase rc Definite) ;
|
||||
n = Pl
|
||||
s = \\rc => (regN "хэн").s ! SF Sg (toNCase rc Definite)
|
||||
} ;
|
||||
whoSg_IP = {
|
||||
s = \\rc => (regN "хэн").s ! SF Sg (toNCase rc Definite) ;
|
||||
n = Sg
|
||||
s = \\rc => (regN "хэн").s ! SF Sg (toNCase rc Definite)
|
||||
} ;
|
||||
why_IAdv = ss "яагаад" ;
|
||||
with_Prep = noPrep Com ;
|
||||
@@ -188,7 +188,6 @@ lin
|
||||
no_Quant = {
|
||||
s = \\_ => "ямар ч" ;
|
||||
sp = \\_,nc => (regN "ямар ч").s ! SF Sg nc ;
|
||||
isPoss = False ;
|
||||
isDef = False
|
||||
} ;
|
||||
not_Predet = {
|
||||
@@ -202,7 +201,7 @@ lin
|
||||
nobody_NP = mkNP "хэн ч" Definite ;
|
||||
nothing_NP = mkNP "юу ч" Definite ;
|
||||
except_Prep = mkPrep Abl "гадна" ;
|
||||
as_CAdv = lin CAdv {s = "шиг" ; c2 = noPrep Nom} ;
|
||||
as_CAdv = {s = "шиг" ; c2 = noPrep Nom} ;
|
||||
have_V2 = mkV2 (mkV "байх") ;
|
||||
|
||||
lin language_title_Utt = ss "Монгол" ;
|
||||
|
||||
@@ -9,6 +9,8 @@ lin
|
||||
|
||||
ComplVV v vp = insertObj (\\_ => infVP vp Nom) (predV (auxToVerb v)) ;
|
||||
|
||||
ExtAdvVP vp adv = insertAdv ("," ++ adv.s) vp ;
|
||||
|
||||
ComplVS v s = insertEmbedCompl (s.s ! Main ++ "гэж") (predV v) ;
|
||||
|
||||
ComplVQ v qs = insertEmbedCompl (qs.s ! QIndir) (predV v) ;
|
||||
|
||||
Reference in new issue
Block a user