mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 11:42:49 -06:00
revert all changes related to the common Slavic grammar
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
--# -path=.:../abstract:../common:../slavic
|
--# -path=.:../abstract:../common:prelude
|
||||||
|
|
||||||
concrete AllBul of AllBulAbs =
|
concrete AllBul of AllBulAbs =
|
||||||
LangBul,
|
LangBul,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
concrete CatBul of Cat = CatSlavic with (ResSlavic = ResBul) ** open Prelude, (R = ParamX) in {
|
concrete CatBul of Cat = open ResBul, Prelude, (R = ParamX) in {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
coding=cp1251; optimize=all_subs;
|
coding=cp1251; optimize=all_subs;
|
||||||
@@ -42,7 +42,7 @@ concrete CatBul of Cat = CatSlavic with (ResSlavic = ResBul) ** open Prelude, (R
|
|||||||
QCl = {s : ResBul.Tense => Anteriority => Polarity => QForm => Str} ;
|
QCl = {s : ResBul.Tense => Anteriority => Polarity => QForm => Str} ;
|
||||||
IP = {s : Role => QForm => Str; gn : GenNum} ;
|
IP = {s : Role => QForm => Str; gn : GenNum} ;
|
||||||
IComp = {s : QForm => Str} ;
|
IComp = {s : QForm => Str} ;
|
||||||
IDet = {s : Gender => Animacy => QForm => Str; n : Number ; nonEmpty : Bool} ;
|
IDet = {s : DGender => QForm => Str; n : Number ; nonEmpty : Bool} ;
|
||||||
IQuant = {s : GenNum => QForm => Str} ;
|
IQuant = {s : GenNum => QForm => Str} ;
|
||||||
|
|
||||||
-- Relative
|
-- Relative
|
||||||
@@ -71,9 +71,10 @@ concrete CatBul of Cat = CatSlavic with (ResSlavic = ResBul) ** open Prelude, (R
|
|||||||
|
|
||||||
-- Noun
|
-- Noun
|
||||||
|
|
||||||
|
CN = {s : NForm => Str; g : DGender} ;
|
||||||
NP = {s : Role => Str; a : Agr} ;
|
NP = {s : Role => Str; a : Agr} ;
|
||||||
Pron = {s : Role => Str; gen : AForm => Str; a : Agr} ;
|
Pron = {s : Role => Str; gen : AForm => Str; a : Agr} ;
|
||||||
Det = {s : Bool => Gender => Animacy => Role => Str; n : Number; countable : Bool; spec : Species} ;
|
Det = {s : Bool => DGender => Role => Str; n : Number; countable : Bool; spec : Species} ;
|
||||||
Predet = {s : GenNum => Str} ;
|
Predet = {s : GenNum => Str} ;
|
||||||
Ord = {s : AForm => Str} ;
|
Ord = {s : AForm => Str} ;
|
||||||
Num = {s : DGenderSpecies => Str; n : Number; nonEmpty : Bool} ;
|
Num = {s : DGenderSpecies => Str; n : Number; nonEmpty : Bool} ;
|
||||||
@@ -89,6 +90,8 @@ concrete CatBul of Cat = CatSlavic with (ResSlavic = ResBul) ** open Prelude, (R
|
|||||||
-- Structural
|
-- Structural
|
||||||
|
|
||||||
Conj = {s : Str; distr : Bool; conj : Bool; n : Number} ;
|
Conj = {s : Str; distr : Bool; conj : Bool; n : Number} ;
|
||||||
|
Subj = {s : Str} ;
|
||||||
|
Prep = {s : Str; c : Case} ;
|
||||||
|
|
||||||
-- Open lexical classes, e.g. Lexicon
|
-- Open lexical classes, e.g. Lexicon
|
||||||
|
|
||||||
@@ -101,6 +104,9 @@ concrete CatBul of Cat = CatSlavic with (ResSlavic = ResBul) ** open Prelude, (R
|
|||||||
A = {s : AForm => Str; adv : Str} ;
|
A = {s : AForm => Str; adv : Str} ;
|
||||||
A2 = {s : AForm => Str; adv : Str; c2 : Str} ;
|
A2 = {s : AForm => Str; adv : Str; c2 : Str} ;
|
||||||
|
|
||||||
|
N = {s : NForm => Str; g : DGender} ;
|
||||||
|
N2 = {s : NForm => Str; g : DGender} ** {c2 : Preposition} ;
|
||||||
|
N3 = {s : NForm => Str; g : DGender} ** {c2,c3 : Preposition} ;
|
||||||
PN = {s : Str; g : Gender} ;
|
PN = {s : Str; g : Gender} ;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ concrete ConjunctionBul of Conjunction =
|
|||||||
|
|
||||||
ConjNP conj ss = {
|
ConjNP conj ss = {
|
||||||
s = \\role => (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj!role;
|
s = \\role => (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj!role;
|
||||||
a = {gn = conjGenNum (gennum Masc conj.n) ss.a.gn; p = ss.a.p}
|
a = {gn = conjGenNum (gennum DMasc conj.n) ss.a.gn; p = ss.a.p}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ConjAP conj ss = {
|
ConjAP conj ss = {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
--# -path=.:../abstract:../common:../slavic
|
--# -path=.:../abstract:../common:src/prelude
|
||||||
|
|
||||||
concrete LangBul of Lang =
|
concrete LangBul of Lang =
|
||||||
GrammarBul,
|
GrammarBul,
|
||||||
|
|||||||
@@ -21,10 +21,10 @@ resource MorphoBul = ResBul ** open
|
|||||||
oper
|
oper
|
||||||
--2 Determiners
|
--2 Determiners
|
||||||
|
|
||||||
mkDeterminerSg : Str -> Str -> Str -> {s : Bool => Gender => Animacy => Role => Str; n : Number; countable : Bool ; spec : Species} = \vseki,vsiaka,vsiako ->
|
mkDeterminerSg : Str -> Str -> Str -> {s : Bool => DGender => Role => Str; n : Number; countable : Bool ; spec : Species} = \vseki,vsiaka,vsiako ->
|
||||||
{s = \\_,g,_,_ => table Gender [vseki;vsiaka;vsiako] ! g; n = Sg; countable = False; spec = Indef} ;
|
{s = \\_,g,_ => table DGender [vseki;vseki;vsiaka;vsiako] ! g; n = Sg; countable = False; spec = Indef} ;
|
||||||
mkDeterminerPl : Str -> {s : Bool => Gender => Animacy => Role => Str ; n : Number; countable : Bool ; spec : Species} = \vsicki ->
|
mkDeterminerPl : Str -> {s : Bool => DGender => Role => Str ; n : Number; countable : Bool ; spec : Species} = \vsicki ->
|
||||||
{s = \\_,_,_,_ => vsicki; sp = \\_,_ => vsicki; n = Pl; countable = False; spec = Indef} ;
|
{s = \\_,_,_ => vsicki; sp = \\_,_ => vsicki; n = Pl; countable = False; spec = Indef} ;
|
||||||
|
|
||||||
mkQuant : Str -> Str -> Str -> Str -> {s : Bool => AForm => Str; nonEmpty : Bool; spec : Species} = \tozi,tazi,towa,tezi ->
|
mkQuant : Str -> Str -> Str -> Str -> {s : Bool => AForm => Str; nonEmpty : Bool; spec : Species} = \tozi,tazi,towa,tezi ->
|
||||||
{ s = \\_ => table {
|
{ s = \\_ => table {
|
||||||
@@ -105,7 +105,7 @@ oper
|
|||||||
|
|
||||||
--2 Nouns
|
--2 Nouns
|
||||||
|
|
||||||
mkNoun : Str -> Str -> Str -> Str -> Gender -> Animacy -> N = \sg,pl,count,voc,g,anim -> {
|
mkNoun : Str -> Str -> Str -> Str -> DGender -> N = \sg,pl,count,voc,g -> {
|
||||||
s = table {
|
s = table {
|
||||||
NF Sg Indef => sg ;
|
NF Sg Indef => sg ;
|
||||||
NF Sg Def => case sg of {
|
NF Sg Def => case sg of {
|
||||||
@@ -158,7 +158,6 @@ oper
|
|||||||
NFVocative => voc
|
NFVocative => voc
|
||||||
} ;
|
} ;
|
||||||
g = g ;
|
g = g ;
|
||||||
anim = anim ;
|
|
||||||
lock_N = <>
|
lock_N = <>
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ oper
|
|||||||
--
|
--
|
||||||
|
|
||||||
prepN2 : N -> Prep -> N2 ;
|
prepN2 : N -> Prep -> N2 ;
|
||||||
prepN2 n p = {s = n.s; g = n.g; anim=n.anim ; c2 = p; lock_N2 = <>} ;
|
prepN2 n p = {s = n.s; g = n.g; c2 = p; lock_N2 = <>} ;
|
||||||
|
|
||||||
dirN2 : N -> N2 ;
|
dirN2 : N -> N2 ;
|
||||||
dirN2 n = prepN2 n noPrep ;
|
dirN2 n = prepN2 n noPrep ;
|
||||||
@@ -152,7 +152,7 @@ oper
|
|||||||
--
|
--
|
||||||
|
|
||||||
prepN3 : N -> Prep -> Prep -> N3 ;
|
prepN3 : N -> Prep -> Prep -> N3 ;
|
||||||
prepN3 n p q = {s = n.s; g = n.g; anim=n.anim ; c2 = p; c3 = q; lock_N3 = <>} ;
|
prepN3 n p q = {s = n.s; g = n.g; c2 = p; c3 = q; lock_N3 = <>} ;
|
||||||
|
|
||||||
dirN3 : N -> Prep -> N3 ;
|
dirN3 : N -> Prep -> N3 ;
|
||||||
dirN3 n p = prepN3 n noPrep p ;
|
dirN3 n p = prepN3 n noPrep p ;
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
s = det.s ! True ! cn.g ! cn.anim ! role ++ cn.s ! nf
|
s = det.s ! True ! cn.g ! role ++ cn.s ! nf
|
||||||
in case role of {
|
in case role of {
|
||||||
RObj Dat => "íà" ++ s;
|
RObj Dat => "íà" ++ s;
|
||||||
_ => s
|
_ => s
|
||||||
@@ -31,12 +31,12 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
DetNP det =
|
DetNP det =
|
||||||
{ s = \\role => let s = det.s ! False ! Neut ! Inanimate ! role
|
{ s = \\role => let s = det.s ! False ! DNeut ! role
|
||||||
in case role of {
|
in case role of {
|
||||||
RObj Dat => "íà" ++ s;
|
RObj Dat => "íà" ++ s;
|
||||||
_ => s
|
_ => s
|
||||||
} ;
|
} ;
|
||||||
a = {gn = gennum Neut det.n; p = P3} ;
|
a = {gn = gennum DNeut det.n; p = P3} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
UsePN pn = { s = table {
|
UsePN pn = { s = table {
|
||||||
@@ -63,19 +63,19 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
DetQuant quant num = {
|
DetQuant quant num = {
|
||||||
s = \\sp,g,anim,c => let sp' = case num.nonEmpty of { True => True ;
|
s = \\sp,g,c => let sp' = case num.nonEmpty of { True => True ;
|
||||||
False => sp }
|
False => sp }
|
||||||
in quant.s ! sp' ! aform (gennum g num.n) (case c of {RVoc=>Indef; _=>Def}) c ++
|
in quant.s ! sp' ! aform (gennum g num.n) (case c of {RVoc=>Indef; _=>Def}) c ++
|
||||||
num.s ! dgenderSpecies g anim quant.spec c ;
|
num.s ! dgenderSpecies g quant.spec c ;
|
||||||
n = num.n ;
|
n = num.n ;
|
||||||
countable = num.nonEmpty ;
|
countable = num.nonEmpty ;
|
||||||
spec = case num.nonEmpty of {True=>Indef; _=>quant.spec}
|
spec = case num.nonEmpty of {True=>Indef; _=>quant.spec}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
DetQuantOrd = \quant, num, ord -> {
|
DetQuantOrd = \quant, num, ord -> {
|
||||||
s = \\_,g,anim,c => quant.s ! True ! aform (gennum g num.n) (case c of {RVoc=>Indef; _=>Def}) c ++
|
s = \\_,g,c => quant.s ! True ! aform (gennum g num.n) (case c of {RVoc=>Indef; _=>Def}) c ++
|
||||||
num.s ! dgenderSpecies g anim quant.spec c ++
|
num.s ! dgenderSpecies g quant.spec c ++
|
||||||
ord.s ! aform (gennum g num.n) (case num.nonEmpty of {True=>Indef; _=>quant.spec}) c ;
|
ord.s ! aform (gennum g num.n) (case num.nonEmpty of {True=>Indef; _=>quant.spec}) c ;
|
||||||
n = num.n ;
|
n = num.n ;
|
||||||
countable = num.nonEmpty ;
|
countable = num.nonEmpty ;
|
||||||
spec=Indef
|
spec=Indef
|
||||||
@@ -144,21 +144,11 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
|||||||
UseN noun = noun ;
|
UseN noun = noun ;
|
||||||
UseN2 noun = noun ;
|
UseN2 noun = noun ;
|
||||||
|
|
||||||
ComplN2 f x = {
|
ComplN2 f x = {s = \\nf => f.s ! nf ++ f.c2.s ++ x.s ! RObj f.c2.c; g=f.g} ;
|
||||||
s = \\nf => f.s ! nf ++ f.c2.s ++ x.s ! RObj f.c2.c ;
|
ComplN3 f x = {s = \\nf => f.s ! nf ++ f.c2.s ++ x.s ! RObj f.c2.c; c2 = f.c3; g=f.g} ;
|
||||||
g=f.g ;
|
|
||||||
anim = f.anim
|
|
||||||
} ;
|
|
||||||
|
|
||||||
ComplN3 f x = {
|
Use2N3 f = {s = f.s ; g=f.g ; c2 = f.c2} ;
|
||||||
s = \\nf => f.s ! nf ++ f.c2.s ++ x.s ! RObj f.c2.c ;
|
Use3N3 f = {s = f.s ; g=f.g ; c2 = f.c3} ;
|
||||||
c2 = f.c3 ;
|
|
||||||
g=f.g ;
|
|
||||||
anim = f.anim
|
|
||||||
} ;
|
|
||||||
|
|
||||||
Use2N3 f = {s = f.s ; g=f.g ; anim=f.anim ; c2 = f.c2} ;
|
|
||||||
Use3N3 f = {s = f.s ; g=f.g ; anim=f.anim ; c2 = f.c3} ;
|
|
||||||
|
|
||||||
|
|
||||||
AdjCN ap cn = {
|
AdjCN ap cn = {
|
||||||
@@ -166,27 +156,20 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
|||||||
True => (ap.s ! nform2aform nf cn.g) ++ (cn.s ! (indefNForm nf)) ;
|
True => (ap.s ! nform2aform nf cn.g) ++ (cn.s ! (indefNForm nf)) ;
|
||||||
False => (cn.s ! nf) ++ (ap.s ! nform2aform (indefNForm nf) cn.g)
|
False => (cn.s ! nf) ++ (ap.s ! nform2aform (indefNForm nf) cn.g)
|
||||||
} ;
|
} ;
|
||||||
g = cn.g ;
|
g = cn.g
|
||||||
anim = cn.anim
|
|
||||||
} ;
|
} ;
|
||||||
RelCN cn rs = {
|
RelCN cn rs = {
|
||||||
s = \\nf => cn.s ! nf ++ rs.s ! {gn=gennum cn.g (numNForm nf); p=P3} ;
|
s = \\nf => cn.s ! nf ++ rs.s ! {gn=gennum cn.g (numNForm nf); p=P3} ;
|
||||||
g = cn.g ;
|
g = cn.g
|
||||||
anim = cn.anim
|
|
||||||
} ;
|
} ;
|
||||||
AdvCN cn ad = {
|
AdvCN cn ad = {
|
||||||
s = \\nf => cn.s ! nf ++ ad.s ;
|
s = \\nf => cn.s ! nf ++ ad.s ;
|
||||||
g = cn.g ;
|
g = cn.g
|
||||||
anim = cn.anim
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
SentCN cn sc = {s = \\nf => cn.s ! nf ++ sc.s; g=Neut; anim=Inanimate} ;
|
SentCN cn sc = {s = \\nf => cn.s ! nf ++ sc.s; g=DNeut} ;
|
||||||
|
|
||||||
ApposCN cn np = {
|
ApposCN cn np = {s = \\nf => cn.s ! nf ++ np.s ! RSubj; g=cn.g} ;
|
||||||
s = \\nf => cn.s ! nf ++ np.s ! RSubj;
|
|
||||||
g=cn.g ;
|
|
||||||
anim = cn.anim
|
|
||||||
} ;
|
|
||||||
|
|
||||||
RelNP np rs = {
|
RelNP np rs = {
|
||||||
s = \\r => np.s ! r ++ rs.s ! np.a ;
|
s = \\r => np.s ! r ++ rs.s ! np.a ;
|
||||||
|
|||||||
@@ -13,8 +13,7 @@ oper
|
|||||||
(v0+"îâĺ")
|
(v0+"îâĺ")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN002 : Str -> N ;
|
mkN002 : Str -> N ;
|
||||||
mkN002 base = let v0 = tk 2 base;
|
mkN002 base = let v0 = tk 2 base;
|
||||||
v1 = last (base)
|
v1 = last (base)
|
||||||
@@ -22,8 +21,7 @@ oper
|
|||||||
(v0+"ĺ"+v1+"îâĺ")
|
(v0+"ĺ"+v1+"îâĺ")
|
||||||
(v0+"˙"+v1+"ŕ")
|
(v0+"˙"+v1+"ŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN002a : Str -> N ;
|
mkN002a : Str -> N ;
|
||||||
mkN002a base = let v0 = tk 2 base;
|
mkN002a base = let v0 = tk 2 base;
|
||||||
v1 = last (base)
|
v1 = last (base)
|
||||||
@@ -31,8 +29,7 @@ oper
|
|||||||
(v0+"ĺ"+v1+"îâĺ")
|
(v0+"ĺ"+v1+"îâĺ")
|
||||||
(v0+"˙"+v1+"ŕ")
|
(v0+"˙"+v1+"ŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN003 : Str -> N ;
|
mkN003 : Str -> N ;
|
||||||
mkN003 base = let v0 = tk 3 base;
|
mkN003 base = let v0 = tk 3 base;
|
||||||
v1 = last (base)
|
v1 = last (base)
|
||||||
@@ -40,56 +37,49 @@ oper
|
|||||||
(v0+"úđ"+v1+"îâĺ")
|
(v0+"úđ"+v1+"îâĺ")
|
||||||
(v0+"úđ"+v1+"ŕ")
|
(v0+"úđ"+v1+"ŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN004 : Str -> N ;
|
mkN004 : Str -> N ;
|
||||||
mkN004 base = let v0 = tk 4 base
|
mkN004 base = let v0 = tk 4 base
|
||||||
in mkNoun (v0+"˙ňúđ")
|
in mkNoun (v0+"˙ňúđ")
|
||||||
(v0+"ĺňđîâĺ")
|
(v0+"ĺňđîâĺ")
|
||||||
(v0+"˙ňúđŕ")
|
(v0+"˙ňúđŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN005 : Str -> N ;
|
mkN005 : Str -> N ;
|
||||||
mkN005 base = let v0 = base
|
mkN005 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"îâĺ")
|
(v0+"îâĺ")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN006 : Str -> N ;
|
mkN006 : Str -> N ;
|
||||||
mkN006 base = let v0 = base
|
mkN006 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"îâĺ")
|
(v0+"îâĺ")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN007 : Str -> N ;
|
mkN007 : Str -> N ;
|
||||||
mkN007 base = let v0 = base
|
mkN007 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN007b : Str -> N ;
|
mkN007b : Str -> N ;
|
||||||
mkN007b base = let v0 = base
|
mkN007b base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"î")
|
(v0+"î")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN007a : Str -> N ;
|
mkN007a : Str -> N ;
|
||||||
mkN007a base = let v0 = base
|
mkN007a base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
Masc
|
DMascPersonal ;
|
||||||
Animate ;
|
|
||||||
mkN008 : Str -> N ;
|
mkN008 : Str -> N ;
|
||||||
mkN008 base = let v0 = tk 2 base;
|
mkN008 base = let v0 = tk 2 base;
|
||||||
v1 = last (base)
|
v1 = last (base)
|
||||||
@@ -97,16 +87,14 @@ oper
|
|||||||
(v0+v1+"č")
|
(v0+v1+"č")
|
||||||
(v0+"ĺ"+v1+"ŕ")
|
(v0+"ĺ"+v1+"ŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN008a : Str -> N ;
|
mkN008a : Str -> N ;
|
||||||
mkN008a base = let v0 = tk 2 base
|
mkN008a base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"ĺö")
|
in mkNoun (v0+"ĺö")
|
||||||
(v0+"öč")
|
(v0+"öč")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"ĺöî")
|
(v0+"ĺöî")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN009 : Str -> N ;
|
mkN009 : Str -> N ;
|
||||||
mkN009 base = let v0 = tk 2 base;
|
mkN009 base = let v0 = tk 2 base;
|
||||||
v1 = last (base)
|
v1 = last (base)
|
||||||
@@ -114,96 +102,84 @@ oper
|
|||||||
(v0+v1+"č")
|
(v0+v1+"č")
|
||||||
(v0+"ú"+v1+"ŕ")
|
(v0+"ú"+v1+"ŕ")
|
||||||
(v0+v1+"ĺ")
|
(v0+v1+"ĺ")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN009a : Str -> N ;
|
mkN009a : Str -> N ;
|
||||||
mkN009a base = let v0 = tk 2 base
|
mkN009a base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"úđ")
|
in mkNoun (v0+"úđ")
|
||||||
(v0+"đîâĺ")
|
(v0+"đîâĺ")
|
||||||
(v0+"úđŕ")
|
(v0+"úđŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN010 : Str -> N ;
|
mkN010 : Str -> N ;
|
||||||
mkN010 base = let v0 = tk 2 base
|
mkN010 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"úđ")
|
in mkNoun (v0+"úđ")
|
||||||
(v0+"đč")
|
(v0+"đč")
|
||||||
(v0+"đŕ")
|
(v0+"đŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN011 : Str -> N ;
|
mkN011 : Str -> N ;
|
||||||
mkN011 base = let v0 = tk 2 base
|
mkN011 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"úě")
|
in mkNoun (v0+"úě")
|
||||||
(v0+"ěč")
|
(v0+"ěč")
|
||||||
(v0+"úěŕ")
|
(v0+"úěŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN012 : Str -> N ;
|
mkN012 : Str -> N ;
|
||||||
mkN012 base = let v0 = tk 3 base
|
mkN012 base = let v0 = tk 3 base
|
||||||
in mkNoun (v0+"đúę")
|
in mkNoun (v0+"đúę")
|
||||||
(v0+"úđöč")
|
(v0+"úđöč")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"úđęî")
|
(v0+"úđęî")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN013 : Str -> N ;
|
mkN013 : Str -> N ;
|
||||||
mkN013 base = let v0 = tk 2 base
|
mkN013 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"ĺö")
|
in mkNoun (v0+"ĺö")
|
||||||
(v0+"éöč")
|
(v0+"éöč")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"ĺöî")
|
(v0+"ĺöî")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN014 : Str -> N ;
|
mkN014 : Str -> N ;
|
||||||
mkN014 base = let v0 = tk 1 base
|
mkN014 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ę")
|
in mkNoun (v0+"ę")
|
||||||
(v0+"öč")
|
(v0+"öč")
|
||||||
(v0+"ęŕ")
|
(v0+"ęŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN014a : Str -> N ;
|
mkN014a : Str -> N ;
|
||||||
mkN014a base = let v0 = tk 1 base
|
mkN014a base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ę")
|
in mkNoun (v0+"ę")
|
||||||
(v0+"öč")
|
(v0+"öč")
|
||||||
(v0+"ęŕ")
|
(v0+"ęŕ")
|
||||||
(v0+"ęî")
|
(v0+"ęî")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN015 : Str -> N ;
|
mkN015 : Str -> N ;
|
||||||
mkN015 base = let v0 = tk 1 base
|
mkN015 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ă")
|
in mkNoun (v0+"ă")
|
||||||
(v0+"çč")
|
(v0+"çč")
|
||||||
(v0+"ăŕ")
|
(v0+"ăŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN016 : Str -> N ;
|
mkN016 : Str -> N ;
|
||||||
mkN016 base = let v0 = tk 1 base
|
mkN016 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ő")
|
in mkNoun (v0+"ő")
|
||||||
(v0+"ńč")
|
(v0+"ńč")
|
||||||
(v0+"őŕ")
|
(v0+"őŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN017 : Str -> N ;
|
mkN017 : Str -> N ;
|
||||||
mkN017 base = let v0 = tk 1 base
|
mkN017 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ę")
|
in mkNoun (v0+"ę")
|
||||||
(v0+"íč")
|
(v0+"íč")
|
||||||
(v0+"ęŕ")
|
(v0+"ęŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN018 : Str -> N ;
|
mkN018 : Str -> N ;
|
||||||
mkN018 base = let v0 = tk 2 base
|
mkN018 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"čí")
|
in mkNoun (v0+"čí")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"číî")
|
(v0+"číî")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN018a : Str -> N ;
|
mkN018a : Str -> N ;
|
||||||
mkN018a base = let v0 = tk 2 base;
|
mkN018a base = let v0 = tk 2 base;
|
||||||
v1 = last (base)
|
v1 = last (base)
|
||||||
@@ -211,24 +187,21 @@ oper
|
|||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN019 : Str -> N ;
|
mkN019 : Str -> N ;
|
||||||
mkN019 base = let v0 = tk 2 base
|
mkN019 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"úę")
|
in mkNoun (v0+"úę")
|
||||||
(v0+"öč")
|
(v0+"öč")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"ęî")
|
(v0+"ęî")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN019a : Str -> N ;
|
mkN019a : Str -> N ;
|
||||||
mkN019a base = let v0 = tk 2 base
|
mkN019a base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"ĺę")
|
in mkNoun (v0+"ĺę")
|
||||||
(v0+"éöč")
|
(v0+"éöč")
|
||||||
(v0+"ĺęŕ")
|
(v0+"ĺęŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN020 : Str -> N ;
|
mkN020 : Str -> N ;
|
||||||
mkN020 base = let v0 = tk 3 base;
|
mkN020 base = let v0 = tk 3 base;
|
||||||
v1 = last (tk 2 base)
|
v1 = last (tk 2 base)
|
||||||
@@ -236,248 +209,217 @@ oper
|
|||||||
(v0+"ú"+v1+"öč")
|
(v0+"ú"+v1+"öč")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+v1+"ĺöî")
|
(v0+v1+"ĺöî")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN021 : Str -> N ;
|
mkN021 : Str -> N ;
|
||||||
mkN021 base = let v0 = tk 3 base
|
mkN021 base = let v0 = tk 3 base
|
||||||
in mkNoun (v0+"÷čí")
|
in mkNoun (v0+"÷čí")
|
||||||
(v0+"öč")
|
(v0+"öč")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"÷číî")
|
(v0+"÷číî")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN022 : Str -> N ;
|
mkN022 : Str -> N ;
|
||||||
mkN022 base = let v0 = base
|
mkN022 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN023 : Str -> N ;
|
mkN023 : Str -> N ;
|
||||||
mkN023 base = let v0 = tk 2 base
|
mkN023 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"čí")
|
in mkNoun (v0+"čí")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"číĺ")
|
(v0+"číĺ")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN024a : Str -> N ;
|
mkN024a : Str -> N ;
|
||||||
mkN024a base = let v0 = tk 1 base
|
mkN024a base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ç")
|
in mkNoun (v0+"ç")
|
||||||
(v0+"çĺ")
|
(v0+"çĺ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"ćĺ")
|
(v0+"ćĺ")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN024 : Str -> N ;
|
mkN024 : Str -> N ;
|
||||||
mkN024 base = let v0 = base
|
mkN024 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
(v0+"î")
|
(v0+"î")
|
||||||
Masc
|
DMascPersonal ;
|
||||||
Animate ;
|
|
||||||
mkN025 : Str -> N ;
|
mkN025 : Str -> N ;
|
||||||
mkN025 base = let v0 = base
|
mkN025 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
Masc
|
DMascPersonal ;
|
||||||
Animate ;
|
|
||||||
mkN026 : Str -> N ;
|
mkN026 : Str -> N ;
|
||||||
mkN026 base = let v0 = base
|
mkN026 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"čëčůŕ")
|
(v0+"čëčůŕ")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN027 : Str -> N ;
|
mkN027 : Str -> N ;
|
||||||
mkN027 base = let v0 = tk 2 base
|
mkN027 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"ĺö")
|
in mkNoun (v0+"ĺö")
|
||||||
(v0+"îâöĺ")
|
(v0+"îâöĺ")
|
||||||
(v0+"ĺöŕ")
|
(v0+"ĺöŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN028 : Str -> N ;
|
mkN028 : Str -> N ;
|
||||||
mkN028 base = let v0 = tk 1 base
|
mkN028 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"é")
|
in mkNoun (v0+"é")
|
||||||
(v0+"ĺâĺ")
|
(v0+"ĺâĺ")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN028a : Str -> N ;
|
mkN028a : Str -> N ;
|
||||||
mkN028a base = let v0 = tk 1 base
|
mkN028a base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"é")
|
in mkNoun (v0+"é")
|
||||||
(v0+"éîâĺ")
|
(v0+"éîâĺ")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN029 : Str -> N ;
|
mkN029 : Str -> N ;
|
||||||
mkN029 base = let v0 = base
|
mkN029 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"üîâĺ")
|
(v0+"üîâĺ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"ęî")
|
(v0+"ęî")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN030 : Str -> N ;
|
mkN030 : Str -> N ;
|
||||||
mkN030 base = let v0 = tk 2 base
|
mkN030 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"úí")
|
in mkNoun (v0+"úí")
|
||||||
(v0+"íüîâĺ")
|
(v0+"íüîâĺ")
|
||||||
(v0+"úí˙")
|
(v0+"úí˙")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN031 : Str -> N ;
|
mkN031 : Str -> N ;
|
||||||
mkN031 base = let v0 = base
|
mkN031 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN031a : Str -> N ;
|
mkN031a : Str -> N ;
|
||||||
mkN031a base = let v0 = base
|
mkN031a base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"ţ")
|
(v0+"ţ")
|
||||||
Masc
|
DMascPersonal ;
|
||||||
Animate ;
|
|
||||||
mkN032 : Str -> N ;
|
mkN032 : Str -> N ;
|
||||||
mkN032 base = let v0 = tk 1 base
|
mkN032 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"é")
|
in mkNoun (v0+"é")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN032a : Str -> N ;
|
mkN032a : Str -> N ;
|
||||||
mkN032a base = let v0 = tk 1 base
|
mkN032a base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"é")
|
in mkNoun (v0+"é")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"ţ")
|
(v0+"ţ")
|
||||||
Masc
|
DMascPersonal ;
|
||||||
Animate ;
|
|
||||||
mkN033 : Str -> N ;
|
mkN033 : Str -> N ;
|
||||||
mkN033 base = let v0 = tk 2 base
|
mkN033 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"ĺí")
|
in mkNoun (v0+"ĺí")
|
||||||
(v0+"íč")
|
(v0+"íč")
|
||||||
(v0+"ĺíŕ")
|
(v0+"ĺíŕ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN034 : Str -> N ;
|
mkN034 : Str -> N ;
|
||||||
mkN034 base = let v0 = tk 2 base
|
mkN034 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"úň")
|
in mkNoun (v0+"úň")
|
||||||
(v0+"ňč")
|
(v0+"ňč")
|
||||||
(v0+"úň˙")
|
(v0+"úň˙")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN035 : Str -> N ;
|
mkN035 : Str -> N ;
|
||||||
mkN035 base = let v0 = base
|
mkN035 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN035a : Str -> N ;
|
mkN035a : Str -> N ;
|
||||||
mkN035a base = let v0 = base
|
mkN035a base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"ţ")
|
(v0+"ţ")
|
||||||
Masc
|
DMascPersonal ;
|
||||||
Animate ;
|
|
||||||
mkN036 : Str -> N ;
|
mkN036 : Str -> N ;
|
||||||
mkN036 base = let v0 = tk 1 base
|
mkN036 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"é")
|
in mkNoun (v0+"é")
|
||||||
(v0+"čůŕ")
|
(v0+"čůŕ")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN037 : Str -> N ;
|
mkN037 : Str -> N ;
|
||||||
mkN037 base = let v0 = base
|
mkN037 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"čůŕ")
|
(v0+"čůŕ")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN038 : Str -> N ;
|
mkN038 : Str -> N ;
|
||||||
mkN038 base = let v0 = tk 1 base
|
mkN038 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ŕ")
|
in mkNoun (v0+"ŕ")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
Masc
|
DMascPersonal ;
|
||||||
Animate ;
|
|
||||||
mkN039 : Str -> N ;
|
mkN039 : Str -> N ;
|
||||||
mkN039 base = let v0 = tk 1 base
|
mkN039 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"˙")
|
in mkNoun (v0+"˙")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN040 : Str -> N ;
|
mkN040 : Str -> N ;
|
||||||
mkN040 base = let v0 = tk 1 base
|
mkN040 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"î")
|
in mkNoun (v0+"î")
|
||||||
(v0+"îâöč")
|
(v0+"îâöč")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"î")
|
(v0+"î")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN040a : Str -> N ;
|
mkN040a : Str -> N ;
|
||||||
mkN040a base = let v0 = base
|
mkN040a base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Masc
|
DMasc ;
|
||||||
Inanimate ;
|
|
||||||
mkN041 : Str -> N ;
|
mkN041 : Str -> N ;
|
||||||
mkN041 base = let v0 = tk 1 base
|
mkN041 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ŕ")
|
in mkNoun (v0+"ŕ")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN041a : Str -> N ;
|
mkN041a : Str -> N ;
|
||||||
mkN041a base = let v0 = tk 1 base
|
mkN041a base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ŕ")
|
in mkNoun (v0+"ŕ")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"î")
|
(v0+"î")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN041b : Str -> N ;
|
mkN041b : Str -> N ;
|
||||||
mkN041b base = let v0 = tk 1 base
|
mkN041b base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ŕ")
|
in mkNoun (v0+"ŕ")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN042 : Str -> N ;
|
mkN042 : Str -> N ;
|
||||||
mkN042 base = let v0 = base
|
mkN042 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0)
|
(v0)
|
||||||
(v0)
|
(v0)
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN043 : Str -> N ;
|
mkN043 : Str -> N ;
|
||||||
mkN043 base = let v0 = tk 3 base;
|
mkN043 base = let v0 = tk 3 base;
|
||||||
v1 = last (tk 1 base)
|
v1 = last (tk 1 base)
|
||||||
@@ -485,8 +427,7 @@ oper
|
|||||||
(v0+"ĺ"+v1+"č")
|
(v0+"ĺ"+v1+"č")
|
||||||
(v0+"ĺ"+v1+"č")
|
(v0+"ĺ"+v1+"č")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN043a : Str -> N ;
|
mkN043a : Str -> N ;
|
||||||
mkN043a base = let v0 = tk 4 base;
|
mkN043a base = let v0 = tk 4 base;
|
||||||
v1 = last (tk 2 base)
|
v1 = last (tk 2 base)
|
||||||
@@ -494,64 +435,56 @@ oper
|
|||||||
(v0+"ĺ"+v1+"ęč")
|
(v0+"ĺ"+v1+"ęč")
|
||||||
(v0+"ĺ"+v1+"ęč")
|
(v0+"ĺ"+v1+"ęč")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN044 : Str -> N ;
|
mkN044 : Str -> N ;
|
||||||
mkN044 base = let v0 = tk 1 base
|
mkN044 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ŕ")
|
in mkNoun (v0+"ŕ")
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN045 : Str -> N ;
|
mkN045 : Str -> N ;
|
||||||
mkN045 base = let v0 = tk 2 base
|
mkN045 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"ęŕ")
|
in mkNoun (v0+"ęŕ")
|
||||||
(v0+"öĺ")
|
(v0+"öĺ")
|
||||||
(v0+"öĺ")
|
(v0+"öĺ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN046 : Str -> N ;
|
mkN046 : Str -> N ;
|
||||||
mkN046 base = let v0 = tk 2 base
|
mkN046 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"ăŕ")
|
in mkNoun (v0+"ăŕ")
|
||||||
(v0+"çĺ")
|
(v0+"çĺ")
|
||||||
(v0+"çĺ")
|
(v0+"çĺ")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN047 : Str -> N ;
|
mkN047 : Str -> N ;
|
||||||
mkN047 base = let v0 = tk 1 base
|
mkN047 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"˙")
|
in mkNoun (v0+"˙")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN048 : Str -> N ;
|
mkN048 : Str -> N ;
|
||||||
mkN048 base = let v0 = tk 1 base
|
mkN048 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"˙")
|
in mkNoun (v0+"˙")
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
(v0+"üî")
|
(v0+"üî")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN049 : Str -> N ;
|
mkN049 : Str -> N ;
|
||||||
mkN049 base = let v0 = base
|
mkN049 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN050 : Str -> N ;
|
mkN050 : Str -> N ;
|
||||||
mkN050 base = let v0 = tk 2 base
|
mkN050 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"ĺí")
|
in mkNoun (v0+"ĺí")
|
||||||
(v0+"íč")
|
(v0+"íč")
|
||||||
(v0+"íč")
|
(v0+"íč")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN051 : Str -> N ;
|
mkN051 : Str -> N ;
|
||||||
mkN051 base = let v0 = tk 2 base;
|
mkN051 base = let v0 = tk 2 base;
|
||||||
v1 = last (base)
|
v1 = last (base)
|
||||||
@@ -559,24 +492,21 @@ oper
|
|||||||
(v0+v1+"č")
|
(v0+v1+"č")
|
||||||
(v0+v1+"č")
|
(v0+v1+"č")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN052 : Str -> N ;
|
mkN052 : Str -> N ;
|
||||||
mkN052 base = let v0 = tk 5 base
|
mkN052 base = let v0 = tk 5 base
|
||||||
in mkNoun (v0+"˙ëîńň")
|
in mkNoun (v0+"˙ëîńň")
|
||||||
(v0+"˙ëîńňč")
|
(v0+"˙ëîńňč")
|
||||||
(v0+"˙ëîńňč")
|
(v0+"˙ëîńňč")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN052a : Str -> N ;
|
mkN052a : Str -> N ;
|
||||||
mkN052a base = let v0 = tk 6 base
|
mkN052a base = let v0 = tk 6 base
|
||||||
in mkNoun (v0+"˙đíîńň")
|
in mkNoun (v0+"˙đíîńň")
|
||||||
(v0+"˙đíîńňč")
|
(v0+"˙đíîńňč")
|
||||||
(v0+"˙đíîńňč")
|
(v0+"˙đíîńňč")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN053 : Str -> N ;
|
mkN053 : Str -> N ;
|
||||||
mkN053 base = let v0 = tk 3 base;
|
mkN053 base = let v0 = tk 3 base;
|
||||||
v1 = last (base)
|
v1 = last (base)
|
||||||
@@ -584,32 +514,28 @@ oper
|
|||||||
(v0+"úđ"+v1+"č")
|
(v0+"úđ"+v1+"č")
|
||||||
(v0+"úđ"+v1+"č")
|
(v0+"úđ"+v1+"č")
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Fem
|
DFem ;
|
||||||
Inanimate ;
|
|
||||||
mkN054 : Str -> N ;
|
mkN054 : Str -> N ;
|
||||||
mkN054 base = let v0 = tk 1 base
|
mkN054 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"î")
|
in mkNoun (v0+"î")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"î")
|
(v0+"î")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN055 : Str -> N ;
|
mkN055 : Str -> N ;
|
||||||
mkN055 base = let v0 = tk 1 base
|
mkN055 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"î")
|
in mkNoun (v0+"î")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"î")
|
(v0+"î")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN056 : Str -> N ;
|
mkN056 : Str -> N ;
|
||||||
mkN056 base = let v0 = tk 1 base
|
mkN056 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"î")
|
in mkNoun (v0+"î")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"î")
|
(v0+"î")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN057 : Str -> N ;
|
mkN057 : Str -> N ;
|
||||||
mkN057 base = let v0 = tk 3 base;
|
mkN057 base = let v0 = tk 3 base;
|
||||||
v1 = last (tk 1 base)
|
v1 = last (tk 1 base)
|
||||||
@@ -617,160 +543,140 @@ oper
|
|||||||
(v0+"ĺ"+v1+"ŕ")
|
(v0+"ĺ"+v1+"ŕ")
|
||||||
(v0+"ĺ"+v1+"ŕ")
|
(v0+"ĺ"+v1+"ŕ")
|
||||||
(v0+"˙"+v1+"î")
|
(v0+"˙"+v1+"î")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN057a : Str -> N ;
|
mkN057a : Str -> N ;
|
||||||
mkN057a base = let v0 = tk 4 base
|
mkN057a base = let v0 = tk 4 base
|
||||||
in mkNoun (v0+"˙ńňî")
|
in mkNoun (v0+"˙ńňî")
|
||||||
(v0+"ĺńňŕ")
|
(v0+"ĺńňŕ")
|
||||||
(v0+"ĺńňŕ")
|
(v0+"ĺńňŕ")
|
||||||
(v0+"˙ńňî")
|
(v0+"˙ńňî")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN058 : Str -> N ;
|
mkN058 : Str -> N ;
|
||||||
mkN058 base = let v0 = tk 3 base
|
mkN058 base = let v0 = tk 3 base
|
||||||
in mkNoun (v0+"˙íî")
|
in mkNoun (v0+"˙íî")
|
||||||
(v0+"ĺíŕ")
|
(v0+"ĺíŕ")
|
||||||
(v0+"ĺíŕ")
|
(v0+"ĺíŕ")
|
||||||
(v0+"˙íî")
|
(v0+"˙íî")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN059 : Str -> N ;
|
mkN059 : Str -> N ;
|
||||||
mkN059 base = let v0 = tk 1 base
|
mkN059 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"î")
|
in mkNoun (v0+"î")
|
||||||
(v0+"ĺíĺ")
|
(v0+"ĺíĺ")
|
||||||
(v0+"ĺíĺ")
|
(v0+"ĺíĺ")
|
||||||
(v0+"î")
|
(v0+"î")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN060 : Str -> N ;
|
mkN060 : Str -> N ;
|
||||||
mkN060 base = let v0 = tk 1 base
|
mkN060 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"î")
|
in mkNoun (v0+"î")
|
||||||
(v0+"ĺńŕ")
|
(v0+"ĺńŕ")
|
||||||
(v0+"ĺńŕ")
|
(v0+"ĺńŕ")
|
||||||
(v0+"î")
|
(v0+"î")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN061 : Str -> N ;
|
mkN061 : Str -> N ;
|
||||||
mkN061 base = let v0 = tk 1 base
|
mkN061 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"î")
|
in mkNoun (v0+"î")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"î")
|
(v0+"î")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN062 : Str -> N ;
|
mkN062 : Str -> N ;
|
||||||
mkN062 base = let v0 = tk 1 base
|
mkN062 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"î")
|
in mkNoun (v0+"î")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"č")
|
(v0+"č")
|
||||||
(v0+"î")
|
(v0+"î")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN063 : Str -> N ;
|
mkN063 : Str -> N ;
|
||||||
mkN063 base = let v0 = tk 2 base
|
mkN063 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"ęî")
|
in mkNoun (v0+"ęî")
|
||||||
(v0+"÷č")
|
(v0+"÷č")
|
||||||
(v0+"÷č")
|
(v0+"÷č")
|
||||||
(v0+"ęî")
|
(v0+"ęî")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN064 : Str -> N ;
|
mkN064 : Str -> N ;
|
||||||
mkN064 base = let v0 = tk 2 base
|
mkN064 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"őî")
|
in mkNoun (v0+"őî")
|
||||||
(v0+"řč")
|
(v0+"řč")
|
||||||
(v0+"řč")
|
(v0+"řč")
|
||||||
(v0+"őî")
|
(v0+"őî")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN065 : Str -> N ;
|
mkN065 : Str -> N ;
|
||||||
mkN065 base = let v0 = base
|
mkN065 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"ňŕ")
|
(v0+"ňŕ")
|
||||||
(v0+"ňŕ")
|
(v0+"ňŕ")
|
||||||
(v0)
|
(v0)
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN066 : Str -> N ;
|
mkN066 : Str -> N ;
|
||||||
mkN066 base = let v0 = tk 1 base
|
mkN066 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ĺ")
|
in mkNoun (v0+"ĺ")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"ŕ")
|
(v0+"ŕ")
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN067 : Str -> N ;
|
mkN067 : Str -> N ;
|
||||||
mkN067 base = let v0 = tk 2 base
|
mkN067 base = let v0 = tk 2 base
|
||||||
in mkNoun (v0+"ňĺ")
|
in mkNoun (v0+"ňĺ")
|
||||||
(v0+"öŕ")
|
(v0+"öŕ")
|
||||||
(v0+"öŕ")
|
(v0+"öŕ")
|
||||||
(v0+"ňĺ")
|
(v0+"ňĺ")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN068 : Str -> N ;
|
mkN068 : Str -> N ;
|
||||||
mkN068 base = let v0 = tk 1 base
|
mkN068 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ĺ")
|
in mkNoun (v0+"ĺ")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN069 : Str -> N ;
|
mkN069 : Str -> N ;
|
||||||
mkN069 base = let v0 = base
|
mkN069 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"íŕ")
|
(v0+"íŕ")
|
||||||
(v0+"íŕ")
|
(v0+"íŕ")
|
||||||
(v0)
|
(v0)
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN070 : Str -> N ;
|
mkN070 : Str -> N ;
|
||||||
mkN070 base = let v0 = base
|
mkN070 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"ńŕ")
|
(v0+"ńŕ")
|
||||||
(v0+"ńŕ")
|
(v0+"ńŕ")
|
||||||
(v0)
|
(v0)
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN071 : Str -> N ;
|
mkN071 : Str -> N ;
|
||||||
mkN071 base = let v0 = tk 1 base
|
mkN071 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ĺ")
|
in mkNoun (v0+"ĺ")
|
||||||
(v0+"č˙")
|
(v0+"č˙")
|
||||||
(v0+"č˙")
|
(v0+"č˙")
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN072 : Str -> N ;
|
mkN072 : Str -> N ;
|
||||||
mkN072 base = let v0 = tk 1 base
|
mkN072 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"ĺ")
|
in mkNoun (v0+"ĺ")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"˙")
|
(v0+"˙")
|
||||||
(v0+"ĺ")
|
(v0+"ĺ")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN073 : Str -> N ;
|
mkN073 : Str -> N ;
|
||||||
mkN073 base = let v0 = base
|
mkN073 base = let v0 = base
|
||||||
in mkNoun (v0)
|
in mkNoun (v0)
|
||||||
(v0+"ňŕ")
|
(v0+"ňŕ")
|
||||||
(v0+"ňŕ")
|
(v0+"ňŕ")
|
||||||
(v0)
|
(v0)
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN074 : Str -> N ;
|
mkN074 : Str -> N ;
|
||||||
mkN074 base = let v0 = tk 1 base
|
mkN074 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"-")
|
in mkNoun (v0+"-")
|
||||||
(v0)
|
(v0)
|
||||||
(v0)
|
(v0)
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkN075 : Str -> N ;
|
mkN075 : Str -> N ;
|
||||||
mkN075 base = let v0 = tk 1 base
|
mkN075 base = let v0 = tk 1 base
|
||||||
in mkNoun (v0+"-")
|
in mkNoun (v0+"-")
|
||||||
(v0)
|
(v0)
|
||||||
(v0)
|
(v0)
|
||||||
(v0+"-")
|
(v0+"-")
|
||||||
Neut
|
DNeut ;
|
||||||
Inanimate ;
|
|
||||||
mkA076 : Str -> A ;
|
mkA076 : Str -> A ;
|
||||||
mkA076 base = let v0 = base
|
mkA076 base = let v0 = base
|
||||||
in mkAdjective (v0)
|
in mkAdjective (v0)
|
||||||
|
|||||||
@@ -43,18 +43,18 @@ concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in {
|
|||||||
<Pl,True> => NFPlCount ;
|
<Pl,True> => NFPlCount ;
|
||||||
_ => NF idet.n Indef
|
_ => NF idet.n Indef
|
||||||
}
|
}
|
||||||
in idet.s ! cn.g ! cn.anim ! qform ++ cn.s ! nf ;
|
in idet.s ! cn.g ! qform ++ cn.s ! nf ;
|
||||||
gn = gennum cn.g idet.n
|
gn = gennum cn.g idet.n
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
IdetIP idet = {
|
IdetIP idet = {
|
||||||
s = \\_ => idet.s ! Neut ! Inanimate ;
|
s = \\_ => idet.s ! DNeut ;
|
||||||
gn = gennum Neut idet.n
|
gn = gennum DNeut idet.n
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
IdetQuant iquant num = {
|
IdetQuant iquant num = {
|
||||||
s = \\g,anim,qform => iquant.s ! gennum g num.n ! qform ++
|
s = \\g,qform => iquant.s ! gennum g num.n ! qform ++
|
||||||
num.s ! dgenderSpecies g anim Indef RSubj ;
|
num.s ! dgenderSpecies g Indef RSubj ;
|
||||||
n = num.n ;
|
n = num.n ;
|
||||||
nonEmpty = num.nonEmpty
|
nonEmpty = num.nonEmpty
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
-- implement $Test$, it moreover contains regular lexical
|
-- implement $Test$, it moreover contains regular lexical
|
||||||
-- patterns needed for $Lex$.
|
-- patterns needed for $Lex$.
|
||||||
|
|
||||||
instance ResBul of ResSlavic = ParamX, DiffBul, CommonSlavic ** open Prelude in {
|
resource ResBul = ParamX ** open Prelude in {
|
||||||
|
|
||||||
flags
|
flags
|
||||||
coding=cp1251 ; optimize=all ;
|
coding=cp1251 ; optimize=all ;
|
||||||
@@ -21,8 +21,27 @@ instance ResBul of ResSlavic = ParamX, DiffBul, CommonSlavic ** open Prelude in
|
|||||||
|
|
||||||
param
|
param
|
||||||
Role = RSubj | RObj Case | RVoc ;
|
Role = RSubj | RObj Case | RVoc ;
|
||||||
|
Case = Acc | Dat;
|
||||||
|
|
||||||
param
|
NForm =
|
||||||
|
NF Number Species
|
||||||
|
| NFSgDefNom
|
||||||
|
| NFPlCount
|
||||||
|
| NFVocative
|
||||||
|
;
|
||||||
|
|
||||||
|
GenNum = GSg Gender | GPl ;
|
||||||
|
|
||||||
|
-- Agreement of $NP$ is a record. We'll add $Gender$ later.
|
||||||
|
|
||||||
|
oper
|
||||||
|
Agr = {gn : GenNum ; p : Person} ;
|
||||||
|
|
||||||
|
param
|
||||||
|
Gender = Masc | Fem | Neut ;
|
||||||
|
|
||||||
|
Species = Indef | Def ;
|
||||||
|
|
||||||
-- The plural never makes a gender distinction.
|
-- The plural never makes a gender distinction.
|
||||||
|
|
||||||
--2 For $Verb$
|
--2 For $Verb$
|
||||||
@@ -60,6 +79,13 @@ instance ResBul of ResSlavic = ParamX, DiffBul, CommonSlavic ** open Prelude in
|
|||||||
;
|
;
|
||||||
|
|
||||||
--2 For $Numeral$
|
--2 For $Numeral$
|
||||||
|
|
||||||
|
DGender =
|
||||||
|
DMasc
|
||||||
|
| DMascPersonal
|
||||||
|
| DFem
|
||||||
|
| DNeut
|
||||||
|
;
|
||||||
|
|
||||||
DGenderSpecies =
|
DGenderSpecies =
|
||||||
DMascIndef
|
DMascIndef
|
||||||
@@ -80,6 +106,9 @@ instance ResBul of ResSlavic = ParamX, DiffBul, CommonSlavic ** open Prelude in
|
|||||||
--2 Transformations between parameter types
|
--2 Transformations between parameter types
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
agrP3 : GenNum -> Agr = \gn ->
|
||||||
|
{gn = gn; p = P3} ;
|
||||||
|
|
||||||
conjGenNum : GenNum -> GenNum -> GenNum = \a,b ->
|
conjGenNum : GenNum -> GenNum -> GenNum = \a,b ->
|
||||||
case <a,b> of {
|
case <a,b> of {
|
||||||
<GSg _,GSg g> => GSg g ;
|
<GSg _,GSg g> => GSg g ;
|
||||||
@@ -91,6 +120,23 @@ instance ResBul of ResSlavic = ParamX, DiffBul, CommonSlavic ** open Prelude in
|
|||||||
p = conjPerson a.p b.p
|
p = conjPerson a.p b.p
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
gennum : DGender -> Number -> GenNum = \g,n ->
|
||||||
|
case n of {
|
||||||
|
Sg => GSg (case g of {
|
||||||
|
DMasc => Masc ;
|
||||||
|
DMascPersonal => Masc ;
|
||||||
|
DFem => Fem ;
|
||||||
|
DNeut => Neut
|
||||||
|
}) ;
|
||||||
|
Pl => GPl
|
||||||
|
} ;
|
||||||
|
|
||||||
|
numGenNum : GenNum -> Number = \gn ->
|
||||||
|
case gn of {
|
||||||
|
GSg _ => Sg ;
|
||||||
|
GPl => Pl
|
||||||
|
} ;
|
||||||
|
|
||||||
aform : GenNum -> Species -> Role -> AForm = \gn,spec,role ->
|
aform : GenNum -> Species -> Role -> AForm = \gn,spec,role ->
|
||||||
case gn of {
|
case gn of {
|
||||||
GSg g => case <g,spec,role> of {
|
GSg g => case <g,spec,role> of {
|
||||||
@@ -100,30 +146,25 @@ instance ResBul of ResSlavic = ParamX, DiffBul, CommonSlavic ** open Prelude in
|
|||||||
GPl => APl spec
|
GPl => APl spec
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
dgenderSpecies : Gender -> Animacy -> Species -> Role -> DGenderSpecies =
|
dgenderSpecies : DGender -> Species -> Role -> DGenderSpecies =
|
||||||
\g,anim,spec,role ->
|
\g,spec,role -> case <g,spec> of {
|
||||||
case <g,spec> of {
|
<DMasc,Indef> => DMascIndef ;
|
||||||
<Masc,Indef> => case anim of {
|
<DMasc,Def> => case role of {
|
||||||
Inanimate => DMascIndef ;
|
RSubj => DMascDefNom ;
|
||||||
Animate => DMascPersonalIndef
|
_ => DMascDef
|
||||||
} ;
|
} ;
|
||||||
<Masc,Def> => case anim of {
|
<DMascPersonal,Indef> => DMascPersonalIndef ;
|
||||||
Inanimate => case role of {
|
<DMascPersonal,Def> => case role of {
|
||||||
RSubj => DMascDefNom ;
|
RSubj => DMascPersonalDefNom ;
|
||||||
_ => DMascDef
|
_ => DMascPersonalDef
|
||||||
} ;
|
} ;
|
||||||
Animate => case role of {
|
<DFem ,Indef> => DFemIndef ;
|
||||||
RSubj => DMascPersonalDefNom ;
|
<DFem ,Def> => DFemDef ;
|
||||||
_ => DMascPersonalDef
|
<DNeut,Indef> => DNeutIndef ;
|
||||||
}
|
<DNeut,Def> => DNeutDef
|
||||||
} ;
|
|
||||||
<Fem ,Indef> => DFemIndef ;
|
|
||||||
<Fem ,Def> => DFemDef ;
|
|
||||||
<Neut,Indef> => DNeutIndef ;
|
|
||||||
<Neut,Def> => DNeutDef
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
nform2aform : NForm -> Gender -> AForm
|
nform2aform : NForm -> DGender -> AForm
|
||||||
= \nf,g -> case nf of {
|
= \nf,g -> case nf of {
|
||||||
NF n spec => aform (gennum g n) spec (RObj Acc) ;
|
NF n spec => aform (gennum g n) spec (RObj Acc) ;
|
||||||
NFSgDefNom => aform (gennum g Sg) Def RSubj ;
|
NFSgDefNom => aform (gennum g Sg) Def RSubj ;
|
||||||
|
|||||||
@@ -68,5 +68,5 @@ concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
|
|||||||
|
|
||||||
AdvS a s = {s = a.s ++ "," ++ s.s} ;
|
AdvS a s = {s = a.s ++ "," ++ s.s} ;
|
||||||
|
|
||||||
RelS s r = {s = s.s ++ "," ++ r.s ! {gn=gennum Neut Sg; p=P3}} ;
|
RelS s r = {s = s.s ++ "," ++ r.s ! {gn=gennum DNeut Sg; p=P3}} ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ concrete StructuralBul of Structural = CatBul **
|
|||||||
every_Det = mkDeterminerSg "âñåêè" "âñÿêà" "âñÿêî";
|
every_Det = mkDeterminerSg "âñåêè" "âñÿêà" "âñÿêî";
|
||||||
everything_NP = mkNP "âñè÷êî" (GSg Neut) P3 ;
|
everything_NP = mkNP "âñè÷êî" (GSg Neut) P3 ;
|
||||||
everywhere_Adv = ss "íàâñÿêúäå" ;
|
everywhere_Adv = ss "íàâñÿêúäå" ;
|
||||||
few_Det = {s = \\_,_,_,_ => "íÿêîëêî"; n = Pl; countable = True; spec = Indef} ;
|
few_Det = {s = \\_,_,_ => "íÿêîëêî"; n = Pl; countable = True; spec = Indef} ;
|
||||||
--- first_Ord = ss "first" ; DEPRECATED
|
--- first_Ord = ss "first" ; DEPRECATED
|
||||||
for_Prep = mkPrep "çà" Acc ;
|
for_Prep = mkPrep "çà" Acc ;
|
||||||
from_Prep = mkPrep "îò" Acc ;
|
from_Prep = mkPrep "îò" Acc ;
|
||||||
@@ -37,7 +37,7 @@ concrete StructuralBul of Structural = CatBul **
|
|||||||
here7to_Adv = ss ["äî òóê"] ;
|
here7to_Adv = ss ["äî òóê"] ;
|
||||||
here7from_Adv = ss ["îò òóê"] ;
|
here7from_Adv = ss ["îò òóê"] ;
|
||||||
how_IAdv = mkIAdv "êàê" ;
|
how_IAdv = mkIAdv "êàê" ;
|
||||||
how8many_IDet = {s = \\_,_ => table QForm ["êîëêî";"êîëêîòî"]; n = Pl; nonEmpty = False} ;
|
how8many_IDet = {s = \\_ => table QForm ["êîëêî";"êîëêîòî"]; n = Pl; nonEmpty = False} ;
|
||||||
if_Subj = ss "àêî" ;
|
if_Subj = ss "àêî" ;
|
||||||
in8front_Prep = mkPrep "ïðåä" Acc ;
|
in8front_Prep = mkPrep "ïðåä" Acc ;
|
||||||
i_Pron = mkPron "àç" "ìåí" "ìè" "ìîé" "ìîÿ" "ìîÿò" "ìîÿ" "ìîÿòà" "ìîå" "ìîåòî" "ìîè" "ìîèòå" (GSg Masc) P1 ;
|
i_Pron = mkPron "àç" "ìåí" "ìè" "ìîé" "ìîÿ" "ìîÿò" "ìîÿ" "ìîÿòà" "ìîå" "ìîåòî" "ìîè" "ìîèòå" (GSg Masc) P1 ;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
--# -path=.:../abstract:../common:../slavic
|
--# -path=.:abstract:common
|
||||||
|
|
||||||
concrete SymbolBul of Symbol = CatBul ** open Prelude, ResBul in {
|
concrete SymbolBul of Symbol = CatBul ** open Prelude, ResBul in {
|
||||||
|
|
||||||
@@ -15,9 +15,7 @@ lin
|
|||||||
a = agrP3 (gennum cn.g Sg)
|
a = agrP3 (gennum cn.g Sg)
|
||||||
} ;
|
} ;
|
||||||
CNSymbNP det cn xs = {
|
CNSymbNP det cn xs = {
|
||||||
s = \\c =>
|
s = \\c => det.s ! False ! cn.g ! RSubj ++ cn.s ! NF det.n Indef ++ xs.s ;
|
||||||
det.s ! False ! cn.g ! Inanimate ! RSubj ++ ---- AR 2/12: Inanimate
|
|
||||||
cn.s ! NF det.n Indef ++ xs.s ;
|
|
||||||
a = agrP3 (gennum cn.g det.n)
|
a = agrP3 (gennum cn.g det.n)
|
||||||
} ;
|
} ;
|
||||||
CNNumNP cn i = {
|
CNNumNP cn i = {
|
||||||
|
|||||||
@@ -37,13 +37,13 @@ flags coding=utf8 ;
|
|||||||
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
||||||
|
|
||||||
ComplA2 vlublen tu =
|
ComplA2 vlublen tu =
|
||||||
{s = \\af => vlublen.s !Posit! af ++ vlublen.s2 ++
|
{s = \\af => vlublen.s !Posit! af ++ vlublen.c2.s ++
|
||||||
tu.s ! (mkPronForm vlublen.c No NonPoss) ;
|
tu.s ! (mkPronForm vlublen.c2.c No NonPoss) ;
|
||||||
p = True
|
p = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ReflA2 vlublen =
|
ReflA2 vlublen =
|
||||||
{s = \\af => vlublen.s !Posit! af ++ vlublen.s2 ++ sam.s ! vlublen.c;
|
{s = \\af => vlublen.s !Posit! af ++ vlublen.c2.s ++ sam.s ! vlublen.c2.c;
|
||||||
p = True
|
p = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
--# -path=.:../abstract:../common:../slavic
|
--# -path=.:../abstract:../common:prelude
|
||||||
|
|
||||||
concrete AllRus of AllRusAbs =
|
concrete AllRus of AllRusAbs =
|
||||||
LangRus,
|
LangRus,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
--# -path=.:../abstract:../common:../../prelude
|
--# -path=.:../abstract:../common:../../prelude
|
||||||
|
|
||||||
concrete CatRus of Cat = CommonX ** CatSlavic with (ResSlavic = ResRus) ** open ResRus, Prelude, (R = ParamX) in {
|
concrete CatRus of Cat = CommonX ** open ResRus, Prelude in {
|
||||||
|
|
||||||
flags optimize=all_subs ; coding=utf8 ;
|
flags optimize=all_subs ; coding=utf8 ;
|
||||||
|
|
||||||
@@ -22,7 +22,8 @@ concrete CatRus of Cat = CommonX ** CatSlavic with (ResSlavic = ResRus) ** open
|
|||||||
-- Question
|
-- Question
|
||||||
|
|
||||||
QCl = {s :Polarity => ClForm => QForm => Str};
|
QCl = {s :Polarity => ClForm => QForm => Str};
|
||||||
IP = {s : PronForm => Str; a : Agr; anim : Animacy} ;
|
IP = { s : PronForm => Str ; n : Number ; p : Person ;
|
||||||
|
g: PronGen ; anim : Animacy ; pron: Bool} ;
|
||||||
IComp = {s : Str} ;
|
IComp = {s : Str} ;
|
||||||
IDet = Adjective ** {n: Number; g: PronGen; c: Case} ;
|
IDet = Adjective ** {n: Number; g: PronGen; c: Case} ;
|
||||||
IQuant = {s : Number => AdjForm => Str; g: PronGen; c: Case} ; -- AR 16/6/2008
|
IQuant = {s : Number => AdjForm => Str; g: PronGen; c: Case} ; -- AR 16/6/2008
|
||||||
@@ -43,8 +44,11 @@ concrete CatRus of Cat = CommonX ** CatSlavic with (ResSlavic = ResRus) ** open
|
|||||||
|
|
||||||
-- Noun
|
-- Noun
|
||||||
|
|
||||||
NP = {s : PronForm => Str; a : Agr; anim : Animacy} ;
|
CN = {s : NForm => Str; g : Gender; anim : Animacy} ;
|
||||||
Pron = {s : PronForm => Str; a : Agr} ;
|
NP = { s : PronForm => Str ; n : Number ; p : Person ;
|
||||||
|
g: PronGen ; anim : Animacy ; pron: Bool} ;
|
||||||
|
Pron = { s : PronForm => Str ; n : Number ; p : Person ;
|
||||||
|
g: PronGen ; pron: Bool} ;
|
||||||
|
|
||||||
-- Determiners (only determinative pronouns
|
-- Determiners (only determinative pronouns
|
||||||
-- (or even indefinite numerals: "много" (many)) in Russian) are inflected
|
-- (or even indefinite numerals: "много" (many)) in Russian) are inflected
|
||||||
@@ -69,20 +73,25 @@ concrete CatRus of Cat = CommonX ** CatSlavic with (ResSlavic = ResRus) ** open
|
|||||||
-- case of "или", the result is however plural if any of the disjuncts is.
|
-- case of "или", the result is however plural if any of the disjuncts is.
|
||||||
|
|
||||||
Conj = {s1,s2 : Str ; n : Number} ;
|
Conj = {s1,s2 : Str ; n : Number} ;
|
||||||
|
Subj = {s : Str} ;
|
||||||
|
Prep = Complement ;
|
||||||
|
|
||||||
-- Open lexical classes, e.g. Lexicon
|
-- Open lexical classes, e.g. Lexicon
|
||||||
|
|
||||||
V, VS, VV, VQ, VA = Verbum ; -- = {s : VerbForm => Str ; asp : Aspect } ;
|
V, VS, VV, VQ, VA = Verbum ; -- = {s : VerbForm => Str ; asp : Aspect } ;
|
||||||
V2, V2A = Verbum ** Complement ;
|
V2, V2A = Verbum ** {c2 : Complement} ;
|
||||||
V2V, V2S, V2Q = Verbum ** Complement ; --- AR
|
V2V, V2S, V2Q = Verbum ** {c2 : Complement} ; --- AR
|
||||||
V3 = Verbum ** Complement** {s4 : Str; c2: Case} ;
|
V3 = Verbum ** {c2,c3 : Complement} ;
|
||||||
-- VV = {s : VVForm => Str ; isAux : Bool} ;
|
-- VV = {s : VVForm => Str ; isAux : Bool} ;
|
||||||
|
|
||||||
Ord = {s : AdjForm => Str} ;
|
Ord = {s : AdjForm => Str} ;
|
||||||
A = {s : Degree => AdjForm => Str} ;
|
A = {s : Degree => AdjForm => Str} ;
|
||||||
A2 = A ** Complement ;
|
A2 = A ** {c2 : Complement} ;
|
||||||
|
|
||||||
-- Substantives moreover have an inherent gender.
|
-- Substantives moreover have an inherent gender.
|
||||||
|
N = {s : NForm => Str; g : Gender; anim : Animacy} ;
|
||||||
|
N2 = {s : NForm => Str; g : Gender; anim : Animacy} ** {c2 : Complement} ;
|
||||||
|
N3 = {s : NForm => Str; g : Gender; anim : Animacy} ** {c2,c3 : Complement} ;
|
||||||
PN = {s : Case => Str ; g : Gender ; anim : Animacy} ;
|
PN = {s : Case => Str ; g : Gender ; anim : Animacy} ;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -11,13 +11,11 @@ concrete ConjunctionRus of Conjunction =
|
|||||||
|
|
||||||
ConjAdv = conjunctDistrSS ;
|
ConjAdv = conjunctDistrSS ;
|
||||||
|
|
||||||
ConjNP c xs = conjunctDistrTable PronForm c xs ** {
|
ConjNP c xs =
|
||||||
a = {n = conjNumber c.n xs.a.n;
|
conjunctDistrTable PronForm c xs ** {n = conjNumber c.n xs.n ;
|
||||||
p = xs.a.p;
|
p = xs.p ; pron = xs.pron ; anim = xs.anim ;
|
||||||
g = xs.a.g
|
g = xs.g } ;
|
||||||
};
|
|
||||||
anim = xs.anim
|
|
||||||
} ;
|
|
||||||
|
|
||||||
ConjAP c xs = conjunctDistrTable AdjForm c xs ** {p = xs.p} ;
|
ConjAP c xs = conjunctDistrTable AdjForm c xs ** {p = xs.p} ;
|
||||||
|
|
||||||
@@ -32,26 +30,20 @@ concrete ConjunctionRus of Conjunction =
|
|||||||
ConsAdv = consrSS comma ;
|
ConsAdv = consrSS comma ;
|
||||||
|
|
||||||
|
|
||||||
ConsNP x xs = consTable PronForm comma xs x ** {
|
ConsNP x xs =
|
||||||
a = {n = conjNumber xs.a.n x.a.n;
|
consTable PronForm comma xs x **
|
||||||
g = conjPGender x.a.g xs.a.g;
|
{n = conjNumber xs.n x.n ; g = conjPGender x.g xs.g ;
|
||||||
p = conjPerson xs.a.p x.a.p
|
anim = conjAnim x.anim xs.anim ;
|
||||||
};
|
p = conjPerson xs.p x.p; pron = conjPron xs.pron x.pron} ;
|
||||||
anim = conjAnim x.anim xs.anim
|
|
||||||
} ;
|
|
||||||
|
|
||||||
ConsAP x xs = consTable AdjForm comma xs x ** {p = andB xs.p x.p} ;
|
ConsAP x xs = consTable AdjForm comma xs x ** {p = andB xs.p x.p} ;
|
||||||
|
|
||||||
|
|
||||||
BaseAP x y = twoTable AdjForm x y ** {p = andB x.p y.p} ;
|
BaseAP x y = twoTable AdjForm x y ** {p = andB x.p y.p} ;
|
||||||
|
|
||||||
BaseNP x y = twoTable PronForm x y ** {
|
BaseNP x y = twoTable PronForm x y ** {n = conjNumber x.n y.n ;
|
||||||
a = {n = conjNumber x.a.n y.a.n;
|
g = conjPGender x.g y.g ; p = conjPerson x.p y.p ;
|
||||||
g = conjPGender x.a.g y.a.g;
|
pron = conjPron x.pron y.pron ; anim = conjAnim x.anim y.anim } ;
|
||||||
p = conjPerson x.a.p y.a.p
|
|
||||||
};
|
|
||||||
anim = conjAnim x.anim y.anim
|
|
||||||
} ;
|
|
||||||
|
|
||||||
---- AR 17/12/2008
|
---- AR 17/12/2008
|
||||||
BaseRS x y = twoTable3 GenNum Case Animacy x y ** {c = y.c} ;
|
BaseRS x y = twoTable3 GenNum Case Animacy x y ** {c = y.c} ;
|
||||||
@@ -64,7 +56,8 @@ concrete ConjunctionRus of Conjunction =
|
|||||||
[Adv] = {s1,s2 : Str} ;
|
[Adv] = {s1,s2 : Str} ;
|
||||||
-- The structure is the same as for sentences. The result is either always plural
|
-- The structure is the same as for sentences. The result is either always plural
|
||||||
-- or plural if any of the components is, depending on the conjunction.
|
-- or plural if any of the components is, depending on the conjunction.
|
||||||
[NP] = {s1,s2 : PronForm => Str; a : Agr; anim : Animacy} ;
|
[NP] = { s1,s2 : PronForm => Str ; g: PronGen ;
|
||||||
|
anim : Animacy ; n : Number ; p : Person ; pron : Bool } ;
|
||||||
-- The structure is the same as for sentences. The result is a prefix adjective
|
-- The structure is the same as for sentences. The result is a prefix adjective
|
||||||
-- if and only if all elements are prefix.
|
-- if and only if all elements are prefix.
|
||||||
[AP] = {s1,s2 : AdjForm => Str ; p : Bool} ;
|
[AP] = {s1,s2 : AdjForm => Str ; p : Bool} ;
|
||||||
@@ -90,6 +83,14 @@ oper
|
|||||||
-- conjPerson : Person -> Person -> Person = \_,p ->
|
-- conjPerson : Person -> Person -> Person = \_,p ->
|
||||||
-- p ;
|
-- p ;
|
||||||
|
|
||||||
|
-- For pron, we let the latter argument win - "Маша или моя мама" (Nominative case)
|
||||||
|
-- but - "моей или Машина мама" (Genetive case) both corresponds to
|
||||||
|
-- "Masha's or my mother"), which is actually not exactly correct, since
|
||||||
|
-- different cases should be used - "Машина или моя мама".
|
||||||
|
|
||||||
|
conjPron : Bool -> Bool -> Bool = \_,p ->
|
||||||
|
p ;
|
||||||
|
|
||||||
-- For gender in a similar manner as for person:
|
-- For gender in a similar manner as for person:
|
||||||
-- Needed for adjective predicates like:
|
-- Needed for adjective predicates like:
|
||||||
-- "Маша или Оля - красивая", "Антон или Олег - красивый",
|
-- "Маша или Оля - красивая", "Антон или Олег - красивый",
|
||||||
|
|||||||
@@ -1,17 +0,0 @@
|
|||||||
instance DiffRus of DiffSlavic = open CommonSlavic, Prelude in {
|
|
||||||
|
|
||||||
param
|
|
||||||
PrepKind = PrepOther | PrepVNa;
|
|
||||||
Case = Nom | Gen | Dat | Acc | Inst | Prepos PrepKind ;
|
|
||||||
|
|
||||||
NForm = NF Number Case ;
|
|
||||||
|
|
||||||
PronGen = PGen Gender | PNoGen ;
|
|
||||||
|
|
||||||
oper
|
|
||||||
Agr = {n : Number; p : Person; g : PronGen} ;
|
|
||||||
|
|
||||||
agrP3 : Number -> PronGen -> Agr = \n,g ->
|
|
||||||
{n = n; p = P3; g = g} ;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -7,9 +7,9 @@ concrete IdiomRus of Idiom = CatRus ** open Prelude, ResRus, MorphoRus in {
|
|||||||
lin
|
lin
|
||||||
ExistNP = \bar ->
|
ExistNP = \bar ->
|
||||||
{s =\\b,clf => case b of
|
{s =\\b,clf => case b of
|
||||||
{Pos => verbSuchestvovat.s ! (getActVerbForm clf (pgen2gen bar.a.g) Sg P3)
|
{Pos => verbSuchestvovat.s ! (getActVerbForm clf (pgen2gen bar.g) Sg P3)
|
||||||
++ bar.s ! PF Nom No NonPoss;
|
++ bar.s ! PF Nom No NonPoss;
|
||||||
Neg => "не" ++ verbSuchestvovat.s ! (getActVerbForm clf (pgen2gen bar.a.g) Sg P3)
|
Neg => "не" ++ verbSuchestvovat.s ! (getActVerbForm clf (pgen2gen bar.g) Sg P3)
|
||||||
++ bar.s ! PF Nom No NonPoss
|
++ bar.s ! PF Nom No NonPoss
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
@@ -17,8 +17,8 @@ concrete IdiomRus of Idiom = CatRus ** open Prelude, ResRus, MorphoRus in {
|
|||||||
ExistIP Kto =
|
ExistIP Kto =
|
||||||
let { kto = Kto.s ! (PF Nom No NonPoss) } in
|
let { kto = Kto.s ! (PF Nom No NonPoss) } in
|
||||||
{s = \\b,clf,_ => case b of
|
{s = \\b,clf,_ => case b of
|
||||||
{Pos => kto ++ verbSuchestvovat.s ! (getActVerbForm clf (pgen2gen Kto.a.g) Sg P3) ;
|
{Pos => kto ++ verbSuchestvovat.s ! (getActVerbForm clf (pgen2gen Kto.g) Sg P3) ;
|
||||||
Neg => kto ++ "не" ++ verbSuchestvovat.s ! (getActVerbForm clf (pgen2gen Kto.a.g) Sg P3)
|
Neg => kto ++ "не" ++ verbSuchestvovat.s ! (getActVerbForm clf (pgen2gen Kto.g) Sg P3)
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -29,7 +29,7 @@ concrete IdiomRus of Idiom = CatRus ** open Prelude, ResRus, MorphoRus in {
|
|||||||
CleftNP np rs = {s= \\ b, clf =>
|
CleftNP np rs = {s= \\ b, clf =>
|
||||||
let
|
let
|
||||||
ne= case b of {Pos =>[]; Neg =>"не"};
|
ne= case b of {Pos =>[]; Neg =>"не"};
|
||||||
gn = case np.a.n of {Pl => GPl; _=> GSg (pgen2gen np.a.g)}
|
gn = case np.n of {Pl => GPl; _=> GSg (pgen2gen np.g)}
|
||||||
in
|
in
|
||||||
"это" ++ ne ++ np.s ! (PF Nom No NonPoss) ++
|
"это" ++ ne ++ np.s ! (PF Nom No NonPoss) ++
|
||||||
rs.s ! gn !Nom!Animate };
|
rs.s ! gn !Nom!Animate };
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
--# -path=.:../abstract:../common:../slavic:prelude
|
--# -path=.:../abstract:../common:src/prelude
|
||||||
|
|
||||||
concrete LangRus of Lang =
|
concrete LangRus of Lang =
|
||||||
GrammarRus,
|
GrammarRus,
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ oper pronYaTu : { s : Case => Str } -> Str -> Person -> Pronoun =
|
|||||||
|
|
||||||
}
|
}
|
||||||
} ;
|
} ;
|
||||||
a = {g = PNoGen; n = Sg; p = pers};
|
g = PNoGen ; n = Sg ; p = pers ; pron = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper pronNAfterPrep : Pronoun -> Pronoun = \p ->
|
oper pronNAfterPrep : Pronoun -> Pronoun = \p ->
|
||||||
@@ -73,7 +73,7 @@ oper pronNAfterPrep : Pronoun -> Pronoun = \p ->
|
|||||||
x@(("е"|"ё"|"и")+_) => "н"+x;
|
x@(("е"|"ё"|"и")+_) => "н"+x;
|
||||||
x => x };
|
x => x };
|
||||||
pf => p.s!pf };
|
pf => p.s!pf };
|
||||||
a = p.a;
|
g = p.g ; n = p.n ; p = p.p ; pron = p.pron
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper pronOn : Pronoun = pronNAfterPrep
|
oper pronOn : Pronoun = pronNAfterPrep
|
||||||
@@ -85,7 +85,7 @@ oper pronOn : Pronoun = pronNAfterPrep
|
|||||||
PF Inst _ _ => "им" ;
|
PF Inst _ _ => "им" ;
|
||||||
PF (Prepos _) _ _ => "ём"
|
PF (Prepos _) _ _ => "ём"
|
||||||
} ;
|
} ;
|
||||||
a = agrP3 Sg (PGen Masc)
|
g = PGen Masc ; n = Sg ; p = P3 ; pron = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper pronOna : Pronoun = pronNAfterPrep
|
oper pronOna : Pronoun = pronNAfterPrep
|
||||||
@@ -95,7 +95,7 @@ oper pronOna : Pronoun = pronNAfterPrep
|
|||||||
PF (Gen|Acc) _ _ => "её" ;
|
PF (Gen|Acc) _ _ => "её" ;
|
||||||
PF (Dat|Inst|Prepos _) _ _ => "ей"
|
PF (Dat|Inst|Prepos _) _ _ => "ей"
|
||||||
} ;
|
} ;
|
||||||
a = agrP3 Sg (PGen Fem)
|
g = PGen Fem ; n = Sg ; p = P3 ; pron = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper pronOno: Pronoun =
|
oper pronOno: Pronoun =
|
||||||
@@ -103,7 +103,7 @@ oper pronOno: Pronoun =
|
|||||||
PF Nom _ NonPoss => "оно" ;
|
PF Nom _ NonPoss => "оно" ;
|
||||||
pf => pronOn.s!pf
|
pf => pronOn.s!pf
|
||||||
} ;
|
} ;
|
||||||
a = agrP3 Sg (PGen Neut)
|
g = PGen Neut ; n = Sg ; p = P3 ; pron = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper pronMuVu : Str -> Str -> Person -> Pronoun =
|
oper pronMuVu : Str -> Str -> Person -> Pronoun =
|
||||||
@@ -138,7 +138,7 @@ oper pronMuVu : Str -> Str -> Person -> Pronoun =
|
|||||||
PF Inst _ (Poss GPl) => na + "шими" ;
|
PF Inst _ (Poss GPl) => na + "шими" ;
|
||||||
PF (Prepos _) _ (Poss GPl) => na + "ших"
|
PF (Prepos _) _ (Poss GPl) => na + "ших"
|
||||||
};
|
};
|
||||||
a = {g = PNoGen; n = Pl; p = pers}
|
g = PNoGen ; n = Pl ; p = pers ; pron = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper pronMu: Pronoun = pronMuVu "мы" "на" P1;
|
oper pronMu: Pronoun = pronMuVu "мы" "на" P1;
|
||||||
@@ -153,7 +153,7 @@ oper pronOni: Pronoun = pronNAfterPrep
|
|||||||
PF (Gen|Acc|Prepos _) _ _ => "их" ;
|
PF (Gen|Acc|Prepos _) _ _ => "их" ;
|
||||||
PF Inst _ _ => "ими"
|
PF Inst _ _ => "ими"
|
||||||
} ;
|
} ;
|
||||||
a = agrP3 Pl PNoGen
|
g = PNoGen ; n = Pl ; p = P3 ; pron = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper pronKto: Pronoun =
|
oper pronKto: Pronoun =
|
||||||
@@ -165,7 +165,10 @@ oper pronKto: Pronoun =
|
|||||||
PF Inst _ _ => "кем" ;
|
PF Inst _ _ => "кем" ;
|
||||||
PF (Prepos _) _ _ => "ком"
|
PF (Prepos _) _ _ => "ком"
|
||||||
} ;
|
} ;
|
||||||
a = agrP3 Sg (PGen Masc)
|
g = PGen Masc;
|
||||||
|
n = Sg ;
|
||||||
|
p = P3 ;
|
||||||
|
pron = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper pronChto: Pronoun =
|
oper pronChto: Pronoun =
|
||||||
@@ -177,12 +180,18 @@ oper pronChto: Pronoun =
|
|||||||
PF Inst _ _ => "чем" ;
|
PF Inst _ _ => "чем" ;
|
||||||
PF (Prepos _) _ _ => "чём"
|
PF (Prepos _) _ _ => "чём"
|
||||||
} ;
|
} ;
|
||||||
a = agrP3 Sg (PGen Masc)
|
g = PGen Masc;
|
||||||
|
n = Sg ;
|
||||||
|
p = P3 ;
|
||||||
|
pron = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper pron_add_to : Pronoun -> Pronoun = \p ->
|
oper pron_add_to : Pronoun -> Pronoun = \p ->
|
||||||
{ s = \\pf => (p.s!pf) + "-то" ;
|
{ s = \\pf => (p.s!pf) + "-то" ;
|
||||||
a = p.a
|
g = p.g ;
|
||||||
|
n = p.n ;
|
||||||
|
p = p.p ;
|
||||||
|
pron = p.pron
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper pronKtoTo : Pronoun = pron_add_to pronKto ;
|
oper pronKtoTo : Pronoun = pron_add_to pronKto ;
|
||||||
@@ -198,8 +207,11 @@ oper pronEti: Pronoun =
|
|||||||
PF Inst _ _ => "этими" ;
|
PF Inst _ _ => "этими" ;
|
||||||
PF (Prepos _) _ _ => "этих"
|
PF (Prepos _) _ _ => "этих"
|
||||||
} ;
|
} ;
|
||||||
a = agrP3 Pl (PGen Fem) ;
|
n = Pl;
|
||||||
anim = Animate
|
p = P3;
|
||||||
|
g= PGen Fem ;
|
||||||
|
anim = Animate ;
|
||||||
|
pron = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
oper pronTe: Pronoun =
|
oper pronTe: Pronoun =
|
||||||
@@ -211,8 +223,11 @@ oper pronTe: Pronoun =
|
|||||||
PF Inst _ _ => "теми" ;
|
PF Inst _ _ => "теми" ;
|
||||||
PF (Prepos _) _ _ => "тех"
|
PF (Prepos _) _ _ => "тех"
|
||||||
} ;
|
} ;
|
||||||
a = agrP3 Pl (PGen Fem) ;
|
n = Pl;
|
||||||
anim = Animate
|
p = P3;
|
||||||
|
g=PGen Fem ;
|
||||||
|
anim = Animate ;
|
||||||
|
pron = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
@@ -227,7 +242,8 @@ oper pronTe: Pronoun =
|
|||||||
-- } ;
|
-- } ;
|
||||||
-- g = PGen Masc;
|
-- g = PGen Masc;
|
||||||
-- n = Sg ;
|
-- n = Sg ;
|
||||||
-- p = P3
|
-- p = P3 ;
|
||||||
|
-- pron = False
|
||||||
-- } ;
|
-- } ;
|
||||||
--
|
--
|
||||||
--oper pronNichto: Pronoun =
|
--oper pronNichto: Pronoun =
|
||||||
@@ -241,7 +257,8 @@ oper pronTe: Pronoun =
|
|||||||
-- } ;
|
-- } ;
|
||||||
-- g = PGen Masc;
|
-- g = PGen Masc;
|
||||||
-- n = Sg ;
|
-- n = Sg ;
|
||||||
-- p = P3
|
-- p = P3 ;
|
||||||
|
-- pron = False
|
||||||
-- } ;
|
-- } ;
|
||||||
--
|
--
|
||||||
|
|
||||||
@@ -254,7 +271,10 @@ oper pronVseInanimate: Pronoun =
|
|||||||
PF Inst _ _ => "всем" ;
|
PF Inst _ _ => "всем" ;
|
||||||
PF (Prepos _) _ _ => "всём"
|
PF (Prepos _) _ _ => "всём"
|
||||||
} ;
|
} ;
|
||||||
a = agrP3 Sg (PGen Neut)
|
g = PGen Neut;
|
||||||
|
n = Sg ;
|
||||||
|
p = P3 ;
|
||||||
|
pron = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,36 +13,46 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in {
|
|||||||
_ =>
|
_ =>
|
||||||
kazhduj.s ! AF (extCase c) okhotnik.anim (gennum okhotnik.g kazhduj.n) ++
|
kazhduj.s ! AF (extCase c) okhotnik.anim (gennum okhotnik.g kazhduj.n) ++
|
||||||
okhotnik.s ! NF kazhduj.n kazhduj.c };
|
okhotnik.s ! NF kazhduj.n kazhduj.c };
|
||||||
a = agrP3 kazhduj.n (case kazhduj.g of {PNoGen => PGen okhotnik.g; _ => kazhduj.g});
|
n = kazhduj.n ;
|
||||||
|
p = P3 ;
|
||||||
|
pron = False;
|
||||||
|
g = case kazhduj.g of { PNoGen => (PGen okhotnik.g); _ => kazhduj.g };
|
||||||
anim = okhotnik.anim
|
anim = okhotnik.anim
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
UsePN masha = {
|
UsePN masha = {
|
||||||
s = \\c => masha.s ! (extCase c);
|
s = \\c => masha.s ! (extCase c) ;
|
||||||
a = agrP3 Sg (PGen masha.g);
|
p = P3; g = PGen masha.g ; anim = masha.anim ;
|
||||||
anim = masha.anim;
|
n = Sg; nComp = Sg; pron = False} ;
|
||||||
nComp = Sg
|
|
||||||
} ;
|
|
||||||
|
|
||||||
UsePron p = p ** {anim = Inanimate};
|
UsePron p = p ** {anim = Inanimate};
|
||||||
|
|
||||||
PredetNP pred np = {
|
PredetNP pred np = {
|
||||||
s = \\pf => pred.s! (AF (extCase pf) np.anim (gennum (pgen2gen np.a.g) np.a.n))++ np.s ! pf ;
|
s = \\pf => pred.s! (AF (extCase pf) np.anim (gennum (pgen2gen np.g) np.n))++ np.s ! pf ;
|
||||||
a = np.a;
|
n = np.n;
|
||||||
anim = np.anim
|
p = np.p;
|
||||||
|
g = np.g;
|
||||||
|
anim = np.anim;
|
||||||
|
pron = np.pron
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
PPartNP np v2 = {
|
PPartNP np v2 = {
|
||||||
s = \\pf => np.s ! pf ++ v2.s ! VFORM Act VINF ;
|
s = \\pf => np.s ! pf ++ v2.s ! VFORM Act VINF ;
|
||||||
-- no participles in the Verbum type as they behave as adjectives
|
-- no participles in the Verbum type as they behave as adjectives
|
||||||
a = np.a;
|
n = np.n;
|
||||||
anim = np.anim
|
p = np.p;
|
||||||
|
g = np.g;
|
||||||
|
anim = np.anim;
|
||||||
|
pron = np.pron
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdvNP np adv = {
|
AdvNP np adv = {
|
||||||
s = \\pf => np.s ! pf ++ adv.s ;
|
s = \\pf => np.s ! pf ++ adv.s ;
|
||||||
a = np.a;
|
n = np.n;
|
||||||
anim = np.anim
|
p = np.p;
|
||||||
|
g = np.g;
|
||||||
|
anim = np.anim;
|
||||||
|
pron = np.pron
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
-- 1.4 additions AR 17/6/2008
|
-- 1.4 additions AR 17/6/2008
|
||||||
@@ -53,7 +63,10 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in {
|
|||||||
anim = Inanimate ;
|
anim = Inanimate ;
|
||||||
in {
|
in {
|
||||||
s = \\c => kazhduj.s ! AF (extCase c) anim (gennum g kazhduj.n) ;
|
s = \\c => kazhduj.s ! AF (extCase c) anim (gennum g kazhduj.n) ;
|
||||||
a = agrP3 kazhduj.n (case kazhduj.g of {PNoGen => (PGen g); _ => kazhduj.g}) ;
|
n = kazhduj.n ;
|
||||||
|
p = P3 ;
|
||||||
|
pron = False;
|
||||||
|
g = case kazhduj.g of { PNoGen => (PGen g); _ => kazhduj.g };
|
||||||
anim = anim
|
anim = anim
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -89,7 +102,10 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in {
|
|||||||
|
|
||||||
MassNP okhotnik = {
|
MassNP okhotnik = {
|
||||||
s = \\c => okhotnik.s ! NF Sg (extCase c) ;
|
s = \\c => okhotnik.s ! NF Sg (extCase c) ;
|
||||||
a = agrP3 Sg (PGen okhotnik.g) ;
|
n = Sg ;
|
||||||
|
p = P3 ;
|
||||||
|
pron = False;
|
||||||
|
g = PGen okhotnik.g ;
|
||||||
anim = okhotnik.anim
|
anim = okhotnik.anim
|
||||||
} ;
|
} ;
|
||||||
{-
|
{-
|
||||||
@@ -97,7 +113,10 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in {
|
|||||||
s = \\c => -- art case always Nom (AR 17/6/2008)
|
s = \\c => -- art case always Nom (AR 17/6/2008)
|
||||||
kazhduj.s ! AF (extCase c) okhotnik.anim (gennum okhotnik.g Sg) ++
|
kazhduj.s ! AF (extCase c) okhotnik.anim (gennum okhotnik.g Sg) ++
|
||||||
okhotnik.s ! Sg ! (extCase c) ;
|
okhotnik.s ! Sg ! (extCase c) ;
|
||||||
a = agrP3 Sg (case kazhduj.g of {PNoGen => PGen okhotnik.g; _ => kazhduj.g}) ;
|
n = Sg ;
|
||||||
|
p = P3 ;
|
||||||
|
pron = False;
|
||||||
|
g = case kazhduj.g of { PNoGen => (PGen okhotnik.g); _ => kazhduj.g };
|
||||||
anim = okhotnik.anim
|
anim = okhotnik.anim
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -105,7 +124,10 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in {
|
|||||||
s = \\c => -- art case always Nom (AR 17/6/2008)
|
s = \\c => -- art case always Nom (AR 17/6/2008)
|
||||||
kazhduj.s ! AF (extCase c) okhotnik.anim (gennum okhotnik.g Pl) ++
|
kazhduj.s ! AF (extCase c) okhotnik.anim (gennum okhotnik.g Pl) ++
|
||||||
okhotnik.s ! Pl ! (extCase c) ;
|
okhotnik.s ! Pl ! (extCase c) ;
|
||||||
n = agrP3 Pl (case kazhduj.g of {PNoGen => PGen okhotnik.g; _ => kazhduj.g}) ;
|
n = Pl ;
|
||||||
|
p = P3 ;
|
||||||
|
pron = False;
|
||||||
|
g = case kazhduj.g of { PNoGen => (PGen okhotnik.g); _ => kazhduj.g };
|
||||||
anim = okhotnik.anim
|
anim = okhotnik.anim
|
||||||
} ;
|
} ;
|
||||||
-}
|
-}
|
||||||
@@ -142,8 +164,11 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in {
|
|||||||
-- of the readings is meaningful.
|
-- of the readings is meaningful.
|
||||||
|
|
||||||
ComplN2 f x = {
|
ComplN2 f x = {
|
||||||
s = \\nf => f.s ! nf ++ f.c2.s ++
|
s = \\nf => case x.pron of {
|
||||||
x.s ! (case nf of {NF n c => mkPronForm f.c2.c Yes (Poss (gennum f.g n))}) ;
|
True => x.s ! (case nf of {NF n c => mkPronForm c No (Poss (gennum f.g n))}) ++ f.s ! nf ;
|
||||||
|
False => f.s ! nf ++ f.c2.s ++
|
||||||
|
x.s ! (case nf of {NF n c => mkPronForm f.c2.c Yes (Poss (gennum f.g n))})
|
||||||
|
};
|
||||||
g = f.g ;
|
g = f.g ;
|
||||||
anim = f.anim
|
anim = f.anim
|
||||||
} ;
|
} ;
|
||||||
@@ -219,8 +244,11 @@ concrete NounRus of Noun = CatRus ** open ResRus, Prelude, MorphoRus in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
RelNP np rel = {
|
RelNP np rel = {
|
||||||
s = \\c => np.s ! c ++ rel.s ! (gennum (pgen2gen np.a.g) np.a.n) ! extCase c ! np.anim ;
|
s = \\c => np.s ! c ++ rel.s ! (gennum (pgen2gen np.g) np.n) ! extCase c ! np.anim ;
|
||||||
a = np.a ;
|
n = np.n ;
|
||||||
|
p = np.p ;
|
||||||
|
pron = np.pron ;
|
||||||
|
g = np.g ;
|
||||||
anim = np.anim ;
|
anim = np.anim ;
|
||||||
nComp = np.nComp
|
nComp = np.nComp
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -408,7 +408,7 @@ foreign = Foreign; -- +++ MG_UR: added +++
|
|||||||
} ** {lock_A = <>};
|
} ** {lock_A = <>};
|
||||||
|
|
||||||
|
|
||||||
mkA2 a p c= a ** {s2 = p ; c = c; lock_A2 = <>};
|
mkA2 a p c= a ** {c2 = {s=p; c=c}; lock_A2 = <>};
|
||||||
-- mkADeg a s = mkAdjDeg a s ** {lock_ADeg = <>}; -- defined in morpho.RusU
|
-- mkADeg a s = mkAdjDeg a s ** {lock_ADeg = <>}; -- defined in morpho.RusU
|
||||||
|
|
||||||
-- ap a p = mkAdjPhrase a p ** {lock_AP = <>}; -- defined in syntax module
|
-- ap a p = mkAdjPhrase a p ** {lock_AP = <>}; -- defined in syntax module
|
||||||
@@ -454,7 +454,7 @@ foreign = Foreign; -- +++ MG_UR: added +++
|
|||||||
VSubj gn => aller.s ! VFORM vox (VSUB gn)
|
VSubj gn => aller.s ! VFORM vox (VSUB gn)
|
||||||
}; t = Present ; a = aller.asp ; w = vox ; lock_V = <>} ;
|
}; t = Present ; a = aller.asp ; w = vox ; lock_V = <>} ;
|
||||||
-}
|
-}
|
||||||
mkV2 v p cas = v ** {s2 = p ; c = cas; lock_V2 = <>};
|
mkV2 v p cas = v ** {c2 = {s=p; c=cas}; lock_V2 = <>};
|
||||||
dirV2 v = mkV2 v [] Acc;
|
dirV2 v = mkV2 v [] Acc;
|
||||||
|
|
||||||
|
|
||||||
@@ -464,7 +464,7 @@ foreign = Foreign; -- +++ MG_UR: added +++
|
|||||||
-- We treat so far only the rule in which the ditransitive
|
-- We treat so far only the rule in which the ditransitive
|
||||||
-- verb takes both complements to form a verb phrase.
|
-- verb takes both complements to form a verb phrase.
|
||||||
|
|
||||||
mkV3 v s1 s2 c1 c2 = v ** {s2 = s1; c = c1; s4 = s2; c2=c2; lock_V3 = <>};
|
mkV3 v s1 s2 c1 c2 = v ** {c2 = {s=s1; c=c1}; c3={s=s2; c=c2}; lock_V3 = <>};
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ concrete QuestionRus of Question = CatRus ** open ResRus, Prelude in {
|
|||||||
|
|
||||||
AdvIP ip adv = {
|
AdvIP ip adv = {
|
||||||
s = \\c => ip.s ! c ++ adv.s ;
|
s = \\c => ip.s ! c ++ adv.s ;
|
||||||
a = ip.a; anim=ip.anim
|
n = ip.n; p=ip.p; g=ip.g; anim=ip.anim; pron=ip.pron
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
IdetCN kakoj okhotnik =
|
IdetCN kakoj okhotnik =
|
||||||
@@ -40,7 +40,10 @@ concrete QuestionRus of Question = CatRus ** open ResRus, Prelude in {
|
|||||||
_ =>
|
_ =>
|
||||||
kakoj.s ! AF (extCase pf) okhotnik.anim (gennum okhotnik.g kakoj.n) ++
|
kakoj.s ! AF (extCase pf) okhotnik.anim (gennum okhotnik.g kakoj.n) ++
|
||||||
okhotnik.s ! NF kakoj.n kakoj.c };
|
okhotnik.s ! NF kakoj.n kakoj.c };
|
||||||
a = agrP3 kakoj.n kakoj.g ;
|
n = kakoj.n ;
|
||||||
|
p = P3 ;
|
||||||
|
pron = False;
|
||||||
|
g = kakoj.g ;
|
||||||
anim = okhotnik.anim
|
anim = okhotnik.anim
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -48,7 +51,10 @@ concrete QuestionRus of Question = CatRus ** open ResRus, Prelude in {
|
|||||||
|
|
||||||
IdetIP kakoj = let anim = Inanimate in
|
IdetIP kakoj = let anim = Inanimate in
|
||||||
{s = \\pf => kakoj.s ! AF (extCase pf) anim (pgNum kakoj.g kakoj.n) ;
|
{s = \\pf => kakoj.s ! AF (extCase pf) anim (pgNum kakoj.g kakoj.n) ;
|
||||||
a = agrP3 kakoj.n kakoj.g ;
|
n = kakoj.n ;
|
||||||
|
p = P3 ;
|
||||||
|
pron = False;
|
||||||
|
g = kakoj.g ;
|
||||||
anim = anim
|
anim = anim
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ concrete RelativeRus of Relative = CatRus ** open ResRus, MorphoRus in {
|
|||||||
takoj.s ! AF c anim gn ++ "что" ++ A.s !b!clf};
|
takoj.s ! AF c anim gn ++ "что" ++ A.s !b!clf};
|
||||||
|
|
||||||
RelVP kotoruj gulyaet =
|
RelVP kotoruj gulyaet =
|
||||||
{ s = \\b,clf,gn, c, anim => let { nu = numGNum gn } in
|
{ s = \\b,clf,gn, c, anim => let { nu = numGenNum gn } in
|
||||||
kotoruj.s ! gn ! c ! anim ++ gulyaet.s2 ++ gulyaet.s ! clf ! gn !P3 ++
|
kotoruj.s ! gn ! c ! anim ++ gulyaet.s2 ++ gulyaet.s ! clf ! gn !P3 ++
|
||||||
gulyaet.s3 ! genGNum gn ! nu
|
gulyaet.s3 ! genGNum gn ! nu
|
||||||
} ;
|
} ;
|
||||||
@@ -26,7 +26,7 @@ concrete RelativeRus of Relative = CatRus ** open ResRus, MorphoRus in {
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
FunRP p mama kotoruj =
|
FunRP p mama kotoruj =
|
||||||
{s = \\gn,c, anim => let {nu = numGNum gn} in
|
{s = \\gn,c, anim => let {nu = numGenNum gn} in
|
||||||
mama.s ! PF c No NonPoss ++
|
mama.s ! PF c No NonPoss ++
|
||||||
p.s ++ kotoruj.s ! gn ! p.c ! anim
|
p.s ++ kotoruj.s ! gn ! p.c ! anim
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
-- implement $Test$, it moreover contains regular lexical
|
-- implement $Test$, it moreover contains regular lexical
|
||||||
-- patterns needed for $Lex$.
|
-- patterns needed for $Lex$.
|
||||||
|
|
||||||
instance ResRus of ResSlavic = ParamX, DiffRus, CommonSlavic ** open Prelude in {
|
resource ResRus = ParamX ** open Prelude in {
|
||||||
|
|
||||||
flags coding=utf8 ; optimize=all ;
|
flags coding=utf8 ; optimize=all ;
|
||||||
|
|
||||||
@@ -18,6 +18,10 @@ flags coding=utf8 ; optimize=all ;
|
|||||||
|
|
||||||
-- Some parameters, such as $Number$, are inherited from $ParamX$.
|
-- Some parameters, such as $Number$, are inherited from $ParamX$.
|
||||||
param
|
param
|
||||||
|
Gender = Masc | Fem | Neut ;
|
||||||
|
Case = Nom | Gen | Dat | Acc | Inst | Prepos PrepKind ;
|
||||||
|
PrepKind = PrepOther | PrepVNa;
|
||||||
|
Animacy = Animate | Inanimate ;
|
||||||
Voice = Act | Pass ;
|
Voice = Act | Pass ;
|
||||||
Aspect = Imperfective | Perfective ;
|
Aspect = Imperfective | Perfective ;
|
||||||
RusTense = Present | PastRus | Future ;
|
RusTense = Present | PastRus | Future ;
|
||||||
@@ -46,6 +50,22 @@ param
|
|||||||
-- (a big house - big houses).
|
-- (a big house - big houses).
|
||||||
-- The plural never makes a gender distinction.
|
-- The plural never makes a gender distinction.
|
||||||
|
|
||||||
|
GenNum = GSg Gender | GPl ;
|
||||||
|
|
||||||
|
-- Coercions between the compound gen-num type and gender and number:
|
||||||
|
oper
|
||||||
|
gennum : Gender -> Number -> GenNum = \g,n ->
|
||||||
|
case n of {
|
||||||
|
Sg => GSg g ;
|
||||||
|
Pl => GPl
|
||||||
|
} ;
|
||||||
|
|
||||||
|
numGenNum : GenNum -> Number = \gn ->
|
||||||
|
case gn of {
|
||||||
|
GSg _ => Sg ;
|
||||||
|
GPl => Pl
|
||||||
|
} ;
|
||||||
|
|
||||||
|
|
||||||
-- The Possessive parameter is introduced in order to describe
|
-- The Possessive parameter is introduced in order to describe
|
||||||
-- the possessives of personal pronouns, which are used in the
|
-- the possessives of personal pronouns, which are used in the
|
||||||
@@ -75,11 +95,14 @@ param
|
|||||||
|
|
||||||
param PronForm = PF Case AfterPrep Possessive;
|
param PronForm = PF Case AfterPrep Possessive;
|
||||||
|
|
||||||
oper Pronoun = {s : PronForm => Str; a : Agr} ;
|
oper Pronoun = { s : PronForm => Str ; n : Number ; p : Person ;
|
||||||
|
g: PronGen ; pron: Bool} ;
|
||||||
|
|
||||||
-- Gender is not morphologically determined for first
|
-- Gender is not morphologically determined for first
|
||||||
-- and second person pronouns.
|
-- and second person pronouns.
|
||||||
|
|
||||||
|
param PronGen = PGen Gender | PNoGen ;
|
||||||
|
|
||||||
-- The following coercion is useful:
|
-- The following coercion is useful:
|
||||||
|
|
||||||
oper
|
oper
|
||||||
@@ -97,25 +120,24 @@ oper
|
|||||||
|
|
||||||
CommNoun = {s : NForm => Str ; g : Gender ; anim : Animacy } ;
|
CommNoun = {s : NForm => Str ; g : Gender ; anim : Animacy } ;
|
||||||
|
|
||||||
NounPhrase : Type = {s : PronForm => Str; a : Agr; anim : Animacy} ;
|
NounPhrase : Type = { s : PronForm => Str ; n : Number ;
|
||||||
|
p : Person ; g: PronGen ; anim : Animacy ; pron: Bool} ;
|
||||||
|
|
||||||
mkNP : Number -> CommNoun -> NounPhrase = \n,chelovek ->
|
mkNP : Number -> CommNoun -> NounPhrase = \n,chelovek ->
|
||||||
{s = \\cas => chelovek.s ! NF n (extCase cas) ;
|
{s = \\cas => chelovek.s ! NF n (extCase cas) ;
|
||||||
a = agrP3 n (PGen chelovek.g);
|
n = n ; g = PGen chelovek.g ; p = P3 ; pron =False ;
|
||||||
anim = chelovek.anim
|
anim = chelovek.anim
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
det2NounPhrase : Adjective -> NounPhrase = \eto ->
|
det2NounPhrase : Adjective -> NounPhrase = \eto ->
|
||||||
{s = \\pf => eto.s ! AF (extCase pf) Inanimate (GSg Neut); a = agrP3 Sg (PGen Neut); anim = Inanimate} ;
|
{s = \\pf => eto.s ! (AF (extCase pf) Inanimate (GSg Neut)); n = Sg ; g = PGen Neut ; pron = False ; p = P3 ; anim = Inanimate } ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
pron2NounPhraseNum : Pronoun -> Animacy -> Number -> NounPhrase =
|
pron2NounPhraseNum : Pronoun -> Animacy -> Number -> NounPhrase = \ona, anim, num ->
|
||||||
\ona, anim, num -> {
|
{s = ona.s ; n = num ; g = ona.g ;
|
||||||
s = ona.s;
|
pron = ona.pron; p = ona.p ; anim = anim } ;
|
||||||
a = {n = num; p = ona.a.p; g = ona.a.g};
|
|
||||||
anim = anim
|
|
||||||
} ;
|
|
||||||
|
|
||||||
-- Agreement of $NP$ is a record. We'll add $Gender$ later.
|
-- Agreement of $NP$ is a record. We'll add $Gender$ later.
|
||||||
-- oper Agr = {n : Number ; p : Person} ;
|
-- oper Agr = {n : Number ; p : Person} ;
|
||||||
@@ -207,24 +229,21 @@ Prep =>"себе"};
|
|||||||
-- Notice that the slash category has the same relation to sentences as
|
-- Notice that the slash category has the same relation to sentences as
|
||||||
-- transitive verbs have to verbs: it's like a *sentence taking a complement*.
|
-- transitive verbs have to verbs: it's like a *sentence taking a complement*.
|
||||||
|
|
||||||
SlashNounPhrase = Clause ** Complement ;
|
SlashNounPhrase = Clause ** {c2 : Complement} ;
|
||||||
Clause = {s : Polarity => ClForm => Str} ;
|
Clause = {s : Polarity => ClForm => Str} ;
|
||||||
|
|
||||||
-- This is the traditional $S -> NP VP$ rule.
|
-- This is the traditional $S -> NP VP$ rule.
|
||||||
|
|
||||||
predVerbPhrase : NounPhrase -> VerbPhrase -> SlashNounPhrase =
|
predVerbPhrase : NounPhrase -> VerbPhrase -> SlashNounPhrase =
|
||||||
\Ya, tebyaNeVizhu -> { s = \\b,clf =>
|
\Ya, tebyaNeVizhu -> {
|
||||||
let
|
s = \\b,clf => let { ya = Ya.s ! (mkPronForm Nom No NonPoss);
|
||||||
{ ya = Ya.s ! (mkPronForm Nom No NonPoss);
|
khorosho = tebyaNeVizhu.s2;
|
||||||
khorosho = tebyaNeVizhu.s2;
|
vizhu = tebyaNeVizhu.s ! clf !(gennum (pgen2gen Ya.g) Ya.n)! Ya.p;
|
||||||
vizhu = tebyaNeVizhu.s ! clf !(gennum (pgen2gen Ya.a.g) Ya.a.n)! Ya.a.p;
|
tebya = tebyaNeVizhu.s3 ! (pgen2gen Ya.g) ! Ya.n
|
||||||
tebya = tebyaNeVizhu.s3 ! (pgen2gen Ya.a.g) ! Ya.a.n
|
}
|
||||||
}
|
in ya ++ khorosho ++ vizhu ++ tebya;
|
||||||
in
|
c2 = {s = ""; c = Nom}
|
||||||
ya ++ khorosho ++ vizhu ++ tebya;
|
} ;
|
||||||
s2= "";
|
|
||||||
c = Nom
|
|
||||||
} ;
|
|
||||||
|
|
||||||
-- Questions are either direct ("Ты счастлив?")
|
-- Questions are either direct ("Ты счастлив?")
|
||||||
-- or indirect ("Потом он спросил счастлив ли ты").
|
-- or indirect ("Потом он спросил счастлив ли ты").
|
||||||
@@ -264,7 +283,7 @@ param
|
|||||||
AdjForm = AF Case Animacy GenNum | AFShort GenNum | AdvF;
|
AdjForm = AF Case Animacy GenNum | AFShort GenNum | AdvF;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
Complement = {s2 : Str ; c : Case} ;
|
Complement = {s : Str ; c : Case} ;
|
||||||
|
|
||||||
oper Refl ={s: Case => Str};
|
oper Refl ={s: Case => Str};
|
||||||
oper sam: Refl=
|
oper sam: Refl=
|
||||||
@@ -281,21 +300,16 @@ oper sam: Refl=
|
|||||||
pgNum : PronGen -> Number -> GenNum = \g,n ->
|
pgNum : PronGen -> Number -> GenNum = \g,n ->
|
||||||
case n of
|
case n of
|
||||||
{ Sg => GSg (pgen2gen g) ; -- assuming pronoun "I" is a male
|
{ Sg => GSg (pgen2gen g) ; -- assuming pronoun "I" is a male
|
||||||
Pl => GPl
|
Pl => GPl
|
||||||
} ;
|
} ;
|
||||||
-- _ => variants {GSg Masc ; GSg Fem} } ;
|
-- _ => variants {GSg Masc ; GSg Fem} } ;
|
||||||
-- "variants" version cause "no term variants" error during linearization
|
-- "variants" version cause "no term variants" error during linearization
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
oper numGNum : GenNum -> Number = \gn ->
|
|
||||||
case gn of { GPl => Pl ; _ => Sg } ;
|
|
||||||
|
|
||||||
oper genGNum : GenNum -> Gender = \gn ->
|
oper genGNum : GenNum -> Gender = \gn ->
|
||||||
case gn of { GSg Fem => Fem; GSg Masc => Masc; _ => Neut } ;
|
case gn of { GSg Fem => Fem; GSg Masc => Masc; _ => Neut } ;
|
||||||
|
|
||||||
oper numAF: AdjForm -> Number = \af ->
|
oper numAF: AdjForm -> Number = \af ->
|
||||||
case af of { AdvF => Sg; AFShort gn => numGNum gn; AF _ _ gn => (numGNum gn) } ;
|
case af of { AdvF => Sg; AFShort gn => numGenNum gn; AF _ _ gn => (numGenNum gn) } ;
|
||||||
|
|
||||||
oper genAF: AdjForm -> Gender = \af ->
|
oper genAF: AdjForm -> Gender = \af ->
|
||||||
case af of { AdvF => Neut; AFShort gn => genGNum gn; AF _ _ gn => (genGNum gn) } ;
|
case af of { AdvF => Neut; AFShort gn => genGNum gn; AF _ _ gn => (genGNum gn) } ;
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ concrete SentenceRus of Sentence = CatRus ** open Prelude, ResRus in {
|
|||||||
_ => (mkPronForm Nom No NonPoss)
|
_ => (mkPronForm Nom No NonPoss)
|
||||||
});
|
});
|
||||||
ne = case b of {Pos=>""; Neg=>"не"};
|
ne = case b of {Pos=>""; Neg=>"не"};
|
||||||
vizhu = tebyaNeVizhu.s ! clf ! (pgNum Ya.a.g Ya.a.n)! Ya.a.p;
|
vizhu = tebyaNeVizhu.s ! clf ! (pgNum Ya.g Ya.n)! Ya.p;
|
||||||
khorosho = tebyaNeVizhu.s2 ;
|
khorosho = tebyaNeVizhu.s2 ;
|
||||||
tebya = tebyaNeVizhu.s3 ! (pgen2gen Ya.a.g) ! Ya.a.n
|
tebya = tebyaNeVizhu.s3 ! (pgen2gen Ya.g) ! Ya.n
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
if_then_else Str tebyaNeVizhu.negBefore
|
if_then_else Str tebyaNeVizhu.negBefore
|
||||||
@@ -48,9 +48,9 @@ concrete SentenceRus of Sentence = CatRus ** open Prelude, ResRus in {
|
|||||||
_ => (mkPronForm Nom No NonPoss)
|
_ => (mkPronForm Nom No NonPoss)
|
||||||
});
|
});
|
||||||
ne = case b of {Pos=>""; Neg=>"не"};
|
ne = case b of {Pos=>""; Neg=>"не"};
|
||||||
vizhu = tebyaNeVizhu.s ! clf ! (pgNum Ya.a.g Ya.a.n)! Ya.a.p;
|
vizhu = tebyaNeVizhu.s ! clf ! (pgNum Ya.g Ya.n)! Ya.p;
|
||||||
khorosho = tebyaNeVizhu.s2 ;
|
khorosho = tebyaNeVizhu.s2 ;
|
||||||
tebya = tebyaNeVizhu.s3 ! (pgen2gen Ya.a.g) ! Ya.a.n
|
tebya = tebyaNeVizhu.s3 ! (pgen2gen Ya.g) ! Ya.n
|
||||||
}
|
}
|
||||||
in
|
in
|
||||||
if_then_else Str tebyaNeVizhu.negBefore
|
if_then_else Str tebyaNeVizhu.negBefore
|
||||||
@@ -71,7 +71,7 @@ concrete SentenceRus of Sentence = CatRus ** open Prelude, ResRus in {
|
|||||||
--- AR 3/11/2007
|
--- AR 3/11/2007
|
||||||
SlashVS ivan vidit tuUlubaeshsya = {
|
SlashVS ivan vidit tuUlubaeshsya = {
|
||||||
s=\\b,clf => ivan.s ! PF Nom No NonPoss ++
|
s=\\b,clf => ivan.s ! PF Nom No NonPoss ++
|
||||||
vidit.s! (getActVerbForm clf (pgen2gen ivan.a.g) ivan.a.n ivan.a.p) ++
|
vidit.s! (getActVerbForm clf (pgen2gen ivan.g) ivan.n ivan.p) ++
|
||||||
[", что"] ++ tuUlubaeshsya.s ;
|
[", что"] ++ tuUlubaeshsya.s ;
|
||||||
s2=tuUlubaeshsya.s2;
|
s2=tuUlubaeshsya.s2;
|
||||||
c=tuUlubaeshsya.c
|
c=tuUlubaeshsya.c
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
} --case p
|
} --case p
|
||||||
}; --case gn
|
}; --case gn
|
||||||
ClCondit => "" ;
|
ClCondit => "" ;
|
||||||
ClImper => case (numGNum gn) of
|
ClImper => case (numGenNum gn) of
|
||||||
{Sg => "будь" ++ masha.s ! (mkPronForm Inst No NonPoss);
|
{Sg => "будь" ++ masha.s ! (mkPronForm Inst No NonPoss);
|
||||||
Pl => "будьте" ++ masha.s ! (mkPronForm Inst No NonPoss)
|
Pl => "будьте" ++ masha.s ! (mkPronForm Inst No NonPoss)
|
||||||
};
|
};
|
||||||
@@ -133,7 +133,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
-- double negations with "inte" are not grammatical.
|
-- double negations with "inte" are not grammatical.
|
||||||
|
|
||||||
UseV se =
|
UseV se =
|
||||||
{s=\\clf,gn,p => se.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ;
|
{s=\\clf,gn,p => se.s ! (getActVerbForm clf (genGNum gn) (numGenNum gn) p) ;
|
||||||
asp = se.asp ;
|
asp = se.asp ;
|
||||||
w=Act;
|
w=Act;
|
||||||
s2 = "";
|
s2 = "";
|
||||||
@@ -143,14 +143,14 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
|
|
||||||
-- The rule for using transitive verbs is the complementization rule:
|
-- The rule for using transitive verbs is the complementization rule:
|
||||||
SlashV2a se =
|
SlashV2a se =
|
||||||
{s = \\clf,gn,p => se.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ;
|
{s = \\clf,gn,p => se.s ! (getActVerbForm clf (genGNum gn) (numGenNum gn) p) ;
|
||||||
asp = se.asp ;
|
asp = se.asp ;
|
||||||
w = Act;
|
w = Act;
|
||||||
s2 = "";
|
s2 = "";
|
||||||
s3 = \\g,n => "";
|
s3 = \\g,n => "";
|
||||||
negBefore = True ;
|
negBefore = True ;
|
||||||
sc = se.s2 ;
|
sc = se.c2.s ;
|
||||||
c = se.c
|
c = se.c2.c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ComplSlash se tu =
|
ComplSlash se tu =
|
||||||
@@ -165,68 +165,68 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
|
|
||||||
Slash2V3 dat tu =
|
Slash2V3 dat tu =
|
||||||
let
|
let
|
||||||
tebepivo = dat.s2 ++ tu.s ! PF dat.c No NonPoss ++ dat.s4 ;
|
tebepivo = dat.c2.s ++ tu.s ! PF dat.c2.c No NonPoss ++ dat.c3.s ;
|
||||||
in
|
in
|
||||||
{s = \\clf,gn,p => dat.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++ tebepivo ;
|
{s = \\clf,gn,p => dat.s ! (getActVerbForm clf (genGNum gn) (numGenNum gn) p) ++ tebepivo ;
|
||||||
asp = dat.asp ;
|
asp = dat.asp ;
|
||||||
w = Act;
|
w = Act;
|
||||||
negBefore = True;
|
negBefore = True;
|
||||||
s2 = "";
|
s2 = "";
|
||||||
s3 = \\g,n=> "" ;
|
s3 = \\g,n=> "" ;
|
||||||
sc = dat.s4 ;
|
sc = dat.c3.s ;
|
||||||
c = dat.c2
|
c = dat.c3.c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
Slash3V3 dat pivo =
|
Slash3V3 dat pivo =
|
||||||
let
|
let
|
||||||
tebepivo = dat.s4 ++ pivo.s ! PF dat.c2 Yes NonPoss
|
tebepivo = dat.c3.s ++ pivo.s ! PF dat.c3.c Yes NonPoss
|
||||||
in
|
in
|
||||||
{s = \\clf,gn,p => dat.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++ tebepivo ;
|
{s = \\clf,gn,p => dat.s ! (getActVerbForm clf (genGNum gn) (numGenNum gn) p) ++ tebepivo ;
|
||||||
asp = dat.asp ;
|
asp = dat.asp ;
|
||||||
w = Act;
|
w = Act;
|
||||||
negBefore = True;
|
negBefore = True;
|
||||||
s2 = "";
|
s2 = "";
|
||||||
s3 = \\g,n=> "" ;
|
s3 = \\g,n=> "" ;
|
||||||
sc = dat.s2 ;
|
sc = dat.c2.s ;
|
||||||
c = dat.c
|
c = dat.c2.c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
---- AR 17/12/2008
|
---- AR 17/12/2008
|
||||||
SlashV2Q dat esliOnPridet =
|
SlashV2Q dat esliOnPridet =
|
||||||
{s = \\clf,gn,p => dat.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++ esliOnPridet.s ! QDir ;
|
{s = \\clf,gn,p => dat.s ! (getActVerbForm clf (genGNum gn) (numGenNum gn) p) ++ esliOnPridet.s ! QDir ;
|
||||||
asp = dat.asp ;
|
asp = dat.asp ;
|
||||||
w = Act;
|
w = Act;
|
||||||
negBefore = True;
|
negBefore = True;
|
||||||
s2 = "";
|
s2 = "";
|
||||||
s3 = \\g,n=> "" ;
|
s3 = \\g,n=> "" ;
|
||||||
sc = dat.s2 ;
|
sc = dat.c2.s ;
|
||||||
c = dat.c
|
c = dat.c2.c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
---- AR 17/12/2008
|
---- AR 17/12/2008
|
||||||
SlashV2S vidit tuUlubaeshsya =
|
SlashV2S vidit tuUlubaeshsya =
|
||||||
{s = \\clf,gn,p => vidit.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p)
|
{s = \\clf,gn,p => vidit.s ! (getActVerbForm clf (genGNum gn) (numGenNum gn) p)
|
||||||
++ [", что"] ++ tuUlubaeshsya.s ;
|
++ [", что"] ++ tuUlubaeshsya.s ;
|
||||||
asp = vidit.asp;
|
asp = vidit.asp;
|
||||||
w = Act;
|
w = Act;
|
||||||
s2="";
|
s2="";
|
||||||
negBefore = True;
|
negBefore = True;
|
||||||
s3 = \\g,n => "" ;
|
s3 = \\g,n => "" ;
|
||||||
sc = vidit.s2 ;
|
sc = vidit.c2.s ;
|
||||||
c = vidit.c
|
c = vidit.c2.c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
---- AR 17/12/2008
|
---- AR 17/12/2008
|
||||||
SlashV2V putatsya bezhat =
|
SlashV2V putatsya bezhat =
|
||||||
{ s = \\clf,gn,p => putatsya.s ! (getActVerbForm clf (genGNum gn)
|
{ s = \\clf,gn,p => putatsya.s ! (getActVerbForm clf (genGNum gn)
|
||||||
(numGNum gn) p) ++ bezhat.s!ClInfinit !gn!p ;
|
(numGenNum gn) p) ++ bezhat.s!ClInfinit !gn!p ;
|
||||||
asp = putatsya.asp ;
|
asp = putatsya.asp ;
|
||||||
w = Act;
|
w = Act;
|
||||||
negBefore = True;
|
negBefore = True;
|
||||||
s2 = "";
|
s2 = "";
|
||||||
s3 =\\g,n => "" ;
|
s3 =\\g,n => "" ;
|
||||||
sc = putatsya.s2 ;
|
sc = putatsya.c2.s ;
|
||||||
c = putatsya.c
|
c = putatsya.c2.c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
---- AR 17/12/2008
|
---- AR 17/12/2008
|
||||||
@@ -242,7 +242,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
---- AR 17/12/2008
|
---- AR 17/12/2008
|
||||||
SlashVV putatsya bezhat =
|
SlashVV putatsya bezhat =
|
||||||
{ s = \\clf,gn,p => putatsya.s ! (getActVerbForm clf (genGNum gn)
|
{ s = \\clf,gn,p => putatsya.s ! (getActVerbForm clf (genGNum gn)
|
||||||
(numGNum gn) p) ++ bezhat.s!ClInfinit !gn!p ;
|
(numGenNum gn) p) ++ bezhat.s!ClInfinit !gn!p ;
|
||||||
asp = putatsya.asp ;
|
asp = putatsya.asp ;
|
||||||
w = Act;
|
w = Act;
|
||||||
negBefore = True;
|
negBefore = True;
|
||||||
@@ -255,8 +255,8 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
---- AR 17/12/2008
|
---- AR 17/12/2008
|
||||||
SlashV2VNP putatsya np bezhat =
|
SlashV2VNP putatsya np bezhat =
|
||||||
{ s = \\clf,gn,p =>
|
{ s = \\clf,gn,p =>
|
||||||
putatsya.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++
|
putatsya.s ! (getActVerbForm clf (genGNum gn) (numGenNum gn) p) ++
|
||||||
np.s ! (mkPronForm putatsya.c No NonPoss) ++ ---- ?
|
np.s ! (mkPronForm putatsya.c2.c No NonPoss) ++ ---- ?
|
||||||
bezhat.s!ClInfinit !gn!p ;
|
bezhat.s!ClInfinit !gn!p ;
|
||||||
asp = putatsya.asp ;
|
asp = putatsya.asp ;
|
||||||
w = Act;
|
w = Act;
|
||||||
@@ -270,7 +270,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
|
|
||||||
-- To generate "сказал, что Иван гуляет" / "не сказал, что Иван гуляет":
|
-- To generate "сказал, что Иван гуляет" / "не сказал, что Иван гуляет":
|
||||||
ComplVS vidit tuUlubaeshsya =
|
ComplVS vidit tuUlubaeshsya =
|
||||||
{s = \\clf,gn,p => vidit.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p)
|
{s = \\clf,gn,p => vidit.s ! (getActVerbForm clf (genGNum gn) (numGenNum gn) p)
|
||||||
++ [", что"] ++ tuUlubaeshsya.s ;
|
++ [", что"] ++ tuUlubaeshsya.s ;
|
||||||
asp = vidit.asp;
|
asp = vidit.asp;
|
||||||
w = Act;
|
w = Act;
|
||||||
@@ -286,7 +286,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
|
|
||||||
ComplVV putatsya bezhat =
|
ComplVV putatsya bezhat =
|
||||||
{ s = \\clf,gn,p => putatsya.s ! (getActVerbForm clf (genGNum gn)
|
{ s = \\clf,gn,p => putatsya.s ! (getActVerbForm clf (genGNum gn)
|
||||||
(numGNum gn) p) ++ bezhat.s!ClInfinit !gn!p ;
|
(numGenNum gn) p) ++ bezhat.s!ClInfinit !gn!p ;
|
||||||
asp = putatsya.asp ;
|
asp = putatsya.asp ;
|
||||||
w = Act;
|
w = Act;
|
||||||
negBefore = True;
|
negBefore = True;
|
||||||
@@ -294,7 +294,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
s3 =\\g,n => ""
|
s3 =\\g,n => ""
|
||||||
} ;
|
} ;
|
||||||
ComplVQ dat esliOnPridet =
|
ComplVQ dat esliOnPridet =
|
||||||
{s = \\clf,gn,p => dat.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++ esliOnPridet.s ! QDir ;
|
{s = \\clf,gn,p => dat.s ! (getActVerbForm clf (genGNum gn) (numGenNum gn) p) ++ esliOnPridet.s ! QDir ;
|
||||||
asp = dat.asp ;
|
asp = dat.asp ;
|
||||||
w = Act;
|
w = Act;
|
||||||
negBefore = True;
|
negBefore = True;
|
||||||
@@ -302,7 +302,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
s3 = \\g,n=> ""
|
s3 = \\g,n=> ""
|
||||||
} ;
|
} ;
|
||||||
ComplVA vuglyadet molodoj =
|
ComplVA vuglyadet molodoj =
|
||||||
{s = \\clf,gn,p => vuglyadet.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ;
|
{s = \\clf,gn,p => vuglyadet.s ! (getActVerbForm clf (genGNum gn) (numGenNum gn) p) ;
|
||||||
asp = vuglyadet.asp ;
|
asp = vuglyadet.asp ;
|
||||||
w = Act;
|
w = Act;
|
||||||
negBefore = True;
|
negBefore = True;
|
||||||
@@ -312,7 +312,7 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
|
|
||||||
SlashV2A obechat molodoj =
|
SlashV2A obechat molodoj =
|
||||||
{s = \\clf,gn,p =>
|
{s = \\clf,gn,p =>
|
||||||
obechat.s ! (getActVerbForm clf (genGNum gn) (numGNum gn) p) ++
|
obechat.s ! (getActVerbForm clf (genGNum gn) (numGenNum gn) p) ++
|
||||||
molodoj.s ! AF Inst Inanimate (GSg Neut) ;
|
molodoj.s ! AF Inst Inanimate (GSg Neut) ;
|
||||||
---- AR 17/6; AF Inst tu.anim (pgNum tu.g tu.n) ;
|
---- AR 17/6; AF Inst tu.anim (pgNum tu.g tu.n) ;
|
||||||
asp = obechat.asp ;
|
asp = obechat.asp ;
|
||||||
@@ -320,8 +320,8 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
negBefore = True;
|
negBefore = True;
|
||||||
s2 = "";
|
s2 = "";
|
||||||
s3 = \\g,n =>"" ;
|
s3 = \\g,n =>"" ;
|
||||||
sc = obechat.s2 ;
|
sc = obechat.c2.s ;
|
||||||
c = obechat.c
|
c = obechat.c2.c
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdvVP poet khorosho =
|
AdvVP poet khorosho =
|
||||||
@@ -333,8 +333,8 @@ concrete VerbRus of Verb = CatRus ** open ResRus, Prelude in {
|
|||||||
asp = poet.asp; w = poet.w; t = poet.t ; negBefore = poet.negBefore } ;
|
asp = poet.asp; w = poet.w; t = poet.t ; negBefore = poet.negBefore } ;
|
||||||
|
|
||||||
PassV2 se =
|
PassV2 se =
|
||||||
{s=\\clf,gn,p => se.s ! (getPassVerbForm clf (genGNum gn) (numGNum gn) p) ;
|
{s=\\clf,gn,p => se.s ! (getPassVerbForm clf (genGNum gn) (numGenNum gn) p) ;
|
||||||
asp=se.asp; w=Pass; s2 = se.s2;
|
asp=se.asp; w=Pass; s2 = se.c2.s;
|
||||||
negBefore = True;
|
negBefore = True;
|
||||||
s3 = table{_=> table{_ => ""}}
|
s3 = table{_=> table{_ => ""}}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
incomplete concrete CatSlavic of Cat = open Prelude, CommonSlavic, ResSlavic in {
|
|
||||||
|
|
||||||
lincat
|
|
||||||
CN = {s : NForm => Str; g : Gender; anim : Animacy} ;
|
|
||||||
|
|
||||||
Subj = {s : Str} ;
|
|
||||||
Prep = {s : Str; c: Case} ;
|
|
||||||
|
|
||||||
N = {s : NForm => Str; g : Gender; anim : Animacy} ;
|
|
||||||
N2 = {s : NForm => Str; g : Gender; anim : Animacy} ** {c2 : Preposition} ;
|
|
||||||
N3 = {s : NForm => Str; g : Gender; anim : Animacy} ** {c2,c3 : Preposition} ;
|
|
||||||
}
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
resource CommonSlavic = ParamX ** open Prelude in {
|
|
||||||
|
|
||||||
param
|
|
||||||
Gender = Masc | Fem | Neut ;
|
|
||||||
Animacy = Animate | Inanimate ;
|
|
||||||
|
|
||||||
GenNum = GSg Gender | GPl ;
|
|
||||||
|
|
||||||
oper
|
|
||||||
gennum : Gender -> Number -> GenNum = \g,n ->
|
|
||||||
case n of {
|
|
||||||
Sg => GSg g ;
|
|
||||||
Pl => GPl
|
|
||||||
} ;
|
|
||||||
|
|
||||||
numGenNum : GenNum -> Number = \gn ->
|
|
||||||
case gn of {
|
|
||||||
GSg _ => Sg ;
|
|
||||||
GPl => Pl
|
|
||||||
} ;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
interface DiffSlavic = open Prelude in {
|
|
||||||
|
|
||||||
param NForm ;
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
interface ResSlavic = DiffSlavic ** open CommonSlavic, Prelude in {
|
|
||||||
|
|
||||||
oper
|
|
||||||
Preposition : Type = {s : Str; c : Case};
|
|
||||||
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user