forked from GitHub/gf-core
refactoring in Bulgarian: use explicit Animacy instead of fourth gender
This commit is contained in:
@@ -25,7 +25,7 @@ concrete CatBul of Cat = CommonX - [AAnter,ASimul,IAdv,CAdv] ** open ResBul, Pre
|
||||
QCl = {s : ResBul.Tense => Anteriority => Polarity => QForm => Str} ;
|
||||
IP = {s : Role => QForm => Str; gn : GenNum} ;
|
||||
IComp = {s : QForm => Str} ;
|
||||
IDet = {s : DGender => QForm => Str; n : Number ; nonEmpty : Bool} ;
|
||||
IDet = {s : AGender => QForm => Str; n : Number ; nonEmpty : Bool} ;
|
||||
IQuant = {s : GenNum => QForm => Str} ;
|
||||
|
||||
-- Relative
|
||||
@@ -51,14 +51,14 @@ concrete CatBul of Cat = CommonX - [AAnter,ASimul,IAdv,CAdv] ** open ResBul, Pre
|
||||
|
||||
-- Noun
|
||||
|
||||
CN = {s : NForm => Str; g : DGender} ;
|
||||
CN = {s : NForm => Str; g : AGender} ;
|
||||
NP = {s : Role => Str; a : Agr} ;
|
||||
Pron = {s : Role => Str; gen : AForm => Str; a : Agr} ;
|
||||
Det = {s : Bool => DGender => Role => Str; n : Number; countable : Bool; spec : Species} ;
|
||||
Det = {s : Bool => AGender => Role => Str; n : Number; countable : Bool; spec : Species} ;
|
||||
Predet = {s : GenNum => Str} ;
|
||||
Ord = {s : AForm => Str} ;
|
||||
Num = {s : DGenderSpecies => Str; n : Number; nonEmpty : Bool} ;
|
||||
Card = {s : DGenderSpecies => Str; n : Number} ;
|
||||
Num = {s : CardForm => Str; n : Number; nonEmpty : Bool} ;
|
||||
Card = {s : CardForm => Str; n : Number} ;
|
||||
Quant = {s : Bool => AForm => Str; nonEmpty : Bool; spec : Species} ;
|
||||
|
||||
-- Numeral
|
||||
@@ -83,9 +83,9 @@ concrete CatBul of Cat = CommonX - [AAnter,ASimul,IAdv,CAdv] ** open ResBul, Pre
|
||||
A = {s : AForm => Str; adv : 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} ;
|
||||
N = {s : NForm => Str; g : AGender} ;
|
||||
N2 = {s : NForm => Str; g : AGender} ** {c2 : Preposition} ;
|
||||
N3 = {s : NForm => Str; g : AGender} ** {c2,c3 : Preposition} ;
|
||||
PN = {s : Str; g : Gender} ;
|
||||
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ concrete ConjunctionBul of Conjunction =
|
||||
|
||||
ConjNP conj ss = {
|
||||
s = \\role => (linCoordSep [])!conj.distr!conj.conj++ss.s!conj.distr!conj.conj!role;
|
||||
a = {gn = conjGenNum (gennum DMasc conj.n) ss.a.gn; p = ss.a.p}
|
||||
a = {gn = conjGenNum (gennum (AMasc NonHuman) conj.n) ss.a.gn; p = ss.a.p}
|
||||
} ;
|
||||
|
||||
ConjAP conj ss = {
|
||||
|
||||
@@ -38,8 +38,8 @@ concrete ExtraBul of ExtraBulAbs = CatBul **
|
||||
youPol8neut_Pron = mkPron "âèå" "âàñ" "âè" "âàø" "âàøèÿ" "âàøèÿò" "âàøà" "âàøàòà" "âàøå" "âàøåòî" "âàøè" "âàøèòå" (GSg Neut) P2 ;
|
||||
|
||||
onePl_Num = {s = table {
|
||||
DMascIndef | DMascPersonalIndef | DFemIndef | DNeutIndef => "åäíè" ;
|
||||
DMascDef | DMascDefNom | DMascPersonalDef | DMascPersonalDefNom | DFemDef | DNeutDef => "åäíèòå"
|
||||
CFMasc Indef _ | CFFem Indef | CFNeut Indef => "åäíè" ;
|
||||
CFMasc Def _ | CFMascDefNom _ | CFFem Def | CFNeut Def => "åäíèòå"
|
||||
} ;
|
||||
n = Pl;
|
||||
nonEmpty = True
|
||||
|
||||
@@ -21,9 +21,9 @@ resource MorphoBul = ResBul ** open
|
||||
oper
|
||||
--2 Determiners
|
||||
|
||||
mkDeterminerSg : Str -> Str -> Str -> {s : Bool => DGender => Role => Str; n : Number; countable : Bool ; spec : Species} = \vseki,vsiaka,vsiako ->
|
||||
{s = \\_,g,_ => table DGender [vseki;vseki;vsiaka;vsiako] ! g; n = Sg; countable = False; spec = Indef} ;
|
||||
mkDeterminerPl : Str -> {s : Bool => DGender => Role => Str ; n : Number; countable : Bool ; spec : Species} = \vsicki ->
|
||||
mkDeterminerSg : Str -> Str -> Str -> {s : Bool => AGender => Role => Str; n : Number; countable : Bool ; spec : Species} = \vseki,vsiaka,vsiako ->
|
||||
{s = \\_,g,_ => table AGender [vseki;vseki;vsiaka;vsiako] ! g; n = Sg; countable = False; spec = Indef} ;
|
||||
mkDeterminerPl : Str -> {s : Bool => AGender => Role => Str ; n : Number; countable : Bool ; spec : Species} = \vsicki ->
|
||||
{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 ->
|
||||
@@ -105,7 +105,7 @@ oper
|
||||
|
||||
--2 Nouns
|
||||
|
||||
mkNoun : Str -> Str -> Str -> Str -> DGender -> N = \sg,pl,count,voc,g -> {
|
||||
mkNoun : Str -> Str -> Str -> Str -> AGender -> N = \sg,pl,count,voc,g -> {
|
||||
s = table {
|
||||
NF Sg Indef => sg ;
|
||||
NF Sg Def => case sg of {
|
||||
@@ -124,7 +124,7 @@ oper
|
||||
|"çåò"|"ëàêúò"|"íîêúò")
|
||||
=>sg +"ÿ" ;
|
||||
_ =>case g of {
|
||||
DFem => sg+"òà" ;
|
||||
AFem => sg+"òà" ;
|
||||
_ => sg+"à"
|
||||
}
|
||||
} ;
|
||||
@@ -152,7 +152,7 @@ oper
|
||||
|"çåò"|"ëàêúò"|"íîêúò")
|
||||
=>sg+"ÿò" ;
|
||||
_ =>case g of {
|
||||
DFem => sg+"òà" ;
|
||||
AFem => sg+"òà" ;
|
||||
_ => sg+"úò"
|
||||
}
|
||||
} ;
|
||||
|
||||
@@ -15,11 +15,11 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
||||
} ;
|
||||
<Pl,Def> => NF det.n det.spec ;
|
||||
<Pl,Indef> => case cn.g of {
|
||||
DMascPersonal => NF Pl Indef;
|
||||
_ => case det.countable of {
|
||||
True => NFPlCount ;
|
||||
False => NF Pl Indef
|
||||
}
|
||||
AMasc Human => NF Pl Indef;
|
||||
_ => case det.countable of {
|
||||
True => NFPlCount ;
|
||||
False => NF Pl Indef
|
||||
}
|
||||
}
|
||||
} ;
|
||||
s = det.s ! True ! cn.g ! role ++ cn.s ! nf
|
||||
@@ -31,12 +31,12 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
||||
} ;
|
||||
|
||||
DetNP det =
|
||||
{ s = \\role => let s = det.s ! False ! DNeut ! role
|
||||
{ s = \\role => let s = det.s ! False ! ANeut ! role
|
||||
in case role of {
|
||||
RObj Dat => "íà" ++ s;
|
||||
_ => s
|
||||
} ;
|
||||
a = {gn = gennum DNeut det.n; p = P3} ;
|
||||
a = {gn = gennum ANeut det.n; p = P3} ;
|
||||
} ;
|
||||
|
||||
UsePN pn = { s = table {
|
||||
@@ -167,7 +167,7 @@ concrete NounBul of Noun = CatBul ** open ResBul, Prelude in {
|
||||
g = cn.g
|
||||
} ;
|
||||
|
||||
SentCN cn sc = {s = \\nf => cn.s ! nf ++ sc.s; g=DNeut} ;
|
||||
SentCN cn sc = {s = \\nf => cn.s ! nf ++ sc.s; g=ANeut} ;
|
||||
|
||||
ApposCN cn np = {s = \\nf => cn.s ! nf ++ np.s ! RSubj; g=cn.g} ;
|
||||
|
||||
|
||||
@@ -22,16 +22,13 @@ lin n9 = mkDigit "
|
||||
lin pot01 =
|
||||
{s = table {
|
||||
unit => table {
|
||||
NCard DMascIndef => "åäèí" ;
|
||||
NCard DMascDef => "åäèíèÿ" ;
|
||||
NCard DMascDefNom => "åäèíèÿò" ;
|
||||
NCard DMascPersonalIndef => "åäèí" ;
|
||||
NCard DMascPersonalDef => "åäèíèÿ" ;
|
||||
NCard DMascPersonalDefNom => "åäèíèÿò" ;
|
||||
NCard DFemIndef => "åäíà" ;
|
||||
NCard DFemDef => "åäíàòà" ;
|
||||
NCard DNeutIndef => "åäíî" ;
|
||||
NCard DNeutDef => "åäíîòî" ;
|
||||
NCard (CFMasc Indef _) => "åäèí" ;
|
||||
NCard (CFMasc Def _) => "åäèíèÿ" ;
|
||||
NCard (CFMascDefNom _) => "åäèíèÿò" ;
|
||||
NCard (CFFem Indef) => "åäíà" ;
|
||||
NCard (CFFem Def) => "åäíàòà" ;
|
||||
NCard (CFNeut Indef) => "åäíî" ;
|
||||
NCard (CFNeut Def) => "åäíîòî" ;
|
||||
NOrd aform => case aform of {
|
||||
ASg Masc Indef => "ïúðâè" ;
|
||||
ASg Masc Def => "ïúðâèÿ" ;
|
||||
@@ -61,12 +58,12 @@ lin pot1to19 d = {s = \\c,nf => d.s ! teen nf ! c; n = Pl; i = True} ;
|
||||
lin pot0as1 n = {s = \\c,nf => n.s ! unit ! c; n = n.n; i = True} ;
|
||||
lin pot1 d = {s = \\c,nf => d.s ! ten nf ! c; n = Pl; i = True} ;
|
||||
lin pot1plus d e = {
|
||||
s = \\c,nf => d.s ! ten nf ! NCard DMascIndef ++ "è" ++ e.s ! unit ! c ; n = Pl; i = False} ;
|
||||
s = \\c,nf => d.s ! ten nf ! NCard (CFMasc Indef NonHuman) ++ "è" ++ e.s ! unit ! c ; n = Pl; i = False} ;
|
||||
|
||||
lin pot1as2 n = n ;
|
||||
lin pot2 n = {s = \\c,nf => n.s ! hundred ! c; n = Pl; i = True} ;
|
||||
lin pot2plus d e = {
|
||||
s = \\c,nf => d.s ! hundred ! NCard DMascIndef ++ case e.i of {False => []; True => "è"} ++ e.s ! c ! nf ;
|
||||
s = \\c,nf => d.s ! hundred ! NCard (CFMasc Indef NonHuman) ++ case e.i of {False => []; True => "è"} ++ e.s ! c ! nf ;
|
||||
n = Pl ;
|
||||
i = False
|
||||
} ;
|
||||
@@ -75,12 +72,12 @@ lin pot2as3 n = n ;
|
||||
lin pot3 n = {
|
||||
s = \\c,nf => case n.n of {
|
||||
Sg => mkCardOrd100 "õèëÿäà" "õèëÿäåí" ! c ;
|
||||
Pl => n.s ! NCard DFemIndef ! nf ++ mkCardOrd100 "õèëÿäè" "õèëÿäåí" ! c
|
||||
Pl => n.s ! NCard (CFFem Indef) ! nf ++ mkCardOrd100 "õèëÿäè" "õèëÿäåí" ! c
|
||||
} ;
|
||||
n = Pl
|
||||
} ;
|
||||
lin pot3plus n m = {
|
||||
s = \\c,nf => (pot3 (n ** {lock_Sub1000=<>})).s ! NCard DMascIndef ! nf ++ case m.i of {False => []; True => "è"} ++ m.s ! c ! nf ;
|
||||
s = \\c,nf => (pot3 (n ** {lock_Sub1000=<>})).s ! NCard (CFMasc Indef NonHuman) ! nf ++ case m.i of {False => []; True => "è"} ++ m.s ! c ! nf ;
|
||||
n = Pl
|
||||
} ;
|
||||
|
||||
@@ -94,7 +91,7 @@ lin pot3plus n m = {
|
||||
IDig d = d ** {tail = T1} ;
|
||||
|
||||
IIDig d i = {
|
||||
s = \\o => d.s ! NCard DMascIndef ++ commaIf i.tail ++ i.s ! o ;
|
||||
s = \\o => d.s ! NCard (CFMasc Indef NonHuman) ++ commaIf i.tail ++ i.s ! o ;
|
||||
n = Pl ;
|
||||
tail = inc i.tail
|
||||
} ;
|
||||
|
||||
@@ -15,7 +15,7 @@ oper
|
||||
(v0+"îâĺ")
|
||||
(v0+"ŕ")
|
||||
(v0)
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN002 : Str -> N ;
|
||||
mkN002 base = let v0 = tk 2 base;
|
||||
v1 = last (base)
|
||||
@@ -23,7 +23,7 @@ oper
|
||||
(v0+"ĺ"+v1+"îâĺ")
|
||||
(v0+"˙"+v1+"ŕ")
|
||||
(v0+"˙"+v1)
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN002a : Str -> N ;
|
||||
mkN002a base = let v0 = tk 2 base;
|
||||
v1 = last (base)
|
||||
@@ -31,7 +31,7 @@ oper
|
||||
(v0+"ĺ"+v1+"îâĺ")
|
||||
(v0+"˙"+v1+"ŕ")
|
||||
(v0+"˙"+v1)
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN003 : Str -> N ;
|
||||
mkN003 base = let v0 = tk 3 base;
|
||||
v1 = last (base)
|
||||
@@ -39,49 +39,49 @@ oper
|
||||
(v0+"úđ"+v1+"îâĺ")
|
||||
(v0+"úđ"+v1+"ŕ")
|
||||
(v0+"đú"+v1)
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN004 : Str -> N ;
|
||||
mkN004 base = let v0 = tk 4 base
|
||||
in mkNoun (v0+"˙ňúđ")
|
||||
(v0+"ĺňđîâĺ")
|
||||
(v0+"˙ňúđŕ")
|
||||
(v0+"ĺňđĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN005 : Str -> N ;
|
||||
mkN005 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"îâĺ")
|
||||
(v0+"ŕ")
|
||||
(v0)
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN006 : Str -> N ;
|
||||
mkN006 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"îâĺ")
|
||||
(v0+"ŕ")
|
||||
(v0)
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN007 : Str -> N ;
|
||||
mkN007 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"č")
|
||||
(v0+"ŕ")
|
||||
(v0+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN007b : Str -> N ;
|
||||
mkN007b base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"č")
|
||||
(v0+"ŕ")
|
||||
(v0+"î")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN007a : Str -> N ;
|
||||
mkN007a base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"č")
|
||||
(v0+"ŕ")
|
||||
(v0+"ĺ")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN008 : Str -> N ;
|
||||
mkN008 base = let v0 = tk 2 base;
|
||||
v1 = last (base)
|
||||
@@ -89,7 +89,7 @@ oper
|
||||
(v0+v1+"č")
|
||||
(v0+"ĺ"+v1+"ŕ")
|
||||
(v0+"ĺ"+v1+"î")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN008b : Str -> N ;
|
||||
mkN008b base = let v0 = tk 2 base;
|
||||
v1 = last (base)
|
||||
@@ -97,7 +97,7 @@ oper
|
||||
(v0+v1+"č")
|
||||
(v0+"ĺ"+v1+"ŕ")
|
||||
(v0+"ĺ"+v1+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN008c : Str -> N ;
|
||||
mkN008c base = let v0 = tk 2 base;
|
||||
v1 = last (base)
|
||||
@@ -105,14 +105,14 @@ oper
|
||||
(v0+v1+"č")
|
||||
(v0+"ĺ"+v1+"ŕ")
|
||||
(v0+v1+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN008a : Str -> N ;
|
||||
mkN008a base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"ĺö")
|
||||
(v0+"öč")
|
||||
(v0+"öč")
|
||||
(v0+"ĺöî")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN009 : Str -> N ;
|
||||
mkN009 base = let v0 = tk 2 base;
|
||||
v1 = last (base)
|
||||
@@ -120,98 +120,98 @@ oper
|
||||
(v0+v1+"č")
|
||||
(v0+"ú"+v1+"ŕ")
|
||||
(v0+v1+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN009a : Str -> N ;
|
||||
mkN009a base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"úđ")
|
||||
(v0+"đîâĺ")
|
||||
(v0+"úđŕ")
|
||||
(v0+"đĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN010 : Str -> N ;
|
||||
mkN010 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"úđ")
|
||||
(v0+"đč")
|
||||
(v0+"đŕ")
|
||||
(v0+"đĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN011 : Str -> N ;
|
||||
mkN011 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"úě")
|
||||
(v0+"ěč")
|
||||
(v0+"úěŕ")
|
||||
(v0+"ěĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN012 : Str -> N ;
|
||||
mkN012 base = let v0 = tk 3 base
|
||||
in mkNoun (v0+"đúę")
|
||||
(v0+"úđöč")
|
||||
(v0+"úđöč")
|
||||
(v0+"úđęî")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN013 : Str -> N ;
|
||||
mkN013 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"ĺö")
|
||||
(v0+"éöč")
|
||||
(v0+"éöč")
|
||||
(v0+"ĺöî")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN014 : Str -> N ;
|
||||
mkN014 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ę")
|
||||
(v0+"öč")
|
||||
(v0+"ęŕ")
|
||||
(v0+"ę")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN014a : Str -> N ;
|
||||
mkN014a base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ę")
|
||||
(v0+"öč")
|
||||
(v0+"ęŕ")
|
||||
(v0+"ęî")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN015 : Str -> N ;
|
||||
mkN015 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ă")
|
||||
(v0+"çč")
|
||||
(v0+"ăŕ")
|
||||
(v0+"çĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN015a : Str -> N ;
|
||||
mkN015a base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ă")
|
||||
(v0+"çč")
|
||||
(v0+"ăŕ")
|
||||
(v0+"çĺ")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN016 : Str -> N ;
|
||||
mkN016 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ő")
|
||||
(v0+"ńč")
|
||||
(v0+"őŕ")
|
||||
(v0+"őî")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN016a : Str -> N ;
|
||||
mkN016a base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ő")
|
||||
(v0+"ńč")
|
||||
(v0+"őŕ")
|
||||
(v0+"ńĺ")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN017 : Str -> N ;
|
||||
mkN017 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ę")
|
||||
(v0+"íč")
|
||||
(v0+"ęŕ")
|
||||
(v0+"ęî")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN018 : Str -> N ;
|
||||
mkN018 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"čí")
|
||||
(v0+"č")
|
||||
(v0+"č")
|
||||
(v0+"číĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN018a : Str -> N ;
|
||||
mkN018a base = let v0 = tk 2 base;
|
||||
v1 = last (base)
|
||||
@@ -219,21 +219,21 @@ oper
|
||||
(v0+"č")
|
||||
(v0+"č")
|
||||
(v0+"č"+v1+"î")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN019 : Str -> N ;
|
||||
mkN019 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"úę")
|
||||
(v0+"öč")
|
||||
(v0+"öč")
|
||||
(v0+"ęî")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN019a : Str -> N ;
|
||||
mkN019a base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"ĺę")
|
||||
(v0+"éöč")
|
||||
(v0+"ĺęŕ")
|
||||
(v0+"î")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN020 : Str -> N ;
|
||||
mkN020 base = let v0 = tk 3 base;
|
||||
v1 = last (tk 2 base)
|
||||
@@ -241,105 +241,105 @@ oper
|
||||
(v0+"ú"+v1+"öč")
|
||||
(v0+"ú"+v1+"öč")
|
||||
(v0+v1+"ĺöî")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN021 : Str -> N ;
|
||||
mkN021 base = let v0 = tk 3 base
|
||||
in mkNoun (v0+"÷čí")
|
||||
(v0+"öč")
|
||||
(v0+"öč")
|
||||
(v0+"÷číî")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN022 : Str -> N ;
|
||||
mkN022 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"ŕ")
|
||||
(v0+"ŕ")
|
||||
(v0+"î")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN023 : Str -> N ;
|
||||
mkN023 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"čí")
|
||||
(v0+"ŕ")
|
||||
(v0+"ŕ")
|
||||
(v0+"číĺ")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN024a : Str -> N ;
|
||||
mkN024a base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ç")
|
||||
(v0+"çĺ")
|
||||
(v0+"çĺ")
|
||||
(v0+"ćĺ")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN024 : Str -> N ;
|
||||
mkN024 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"ĺ")
|
||||
(v0+"ĺ")
|
||||
(v0+"î")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN025 : Str -> N ;
|
||||
mkN025 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"˙")
|
||||
(v0+"˙")
|
||||
(v0+"ĺ")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN026 : Str -> N ;
|
||||
mkN026 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"čëčůŕ")
|
||||
(v0+"čëčůŕ")
|
||||
(v0+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN027 : Str -> N ;
|
||||
mkN027 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"ĺö")
|
||||
(v0+"îâöĺ")
|
||||
(v0+"ĺöŕ")
|
||||
(v0+"î")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN028 : Str -> N ;
|
||||
mkN028 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"é")
|
||||
(v0+"ĺâĺ")
|
||||
(v0+"˙")
|
||||
(v0+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN028a : Str -> N ;
|
||||
mkN028a base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"é")
|
||||
(v0+"éîâĺ")
|
||||
(v0+"˙")
|
||||
(v0+"éî")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN029 : Str -> N ;
|
||||
mkN029 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"üîâĺ")
|
||||
(v0+"üîâĺ")
|
||||
(v0+"ęî")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN030 : Str -> N ;
|
||||
mkN030 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"úí")
|
||||
(v0+"íüîâĺ")
|
||||
(v0+"úí˙")
|
||||
(v0+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN031 : Str -> N ;
|
||||
mkN031 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"č")
|
||||
(v0+"˙")
|
||||
(v0+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN031a : Str -> N ;
|
||||
mkN031a base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"č")
|
||||
(v0+"˙")
|
||||
(v0+"ţ")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN032 : Str -> N ;
|
||||
mkN032 base = let v0 = base ;
|
||||
v1 = tk 1 base
|
||||
@@ -347,112 +347,112 @@ oper
|
||||
(v1+"č")
|
||||
(v1+"˙")
|
||||
(v0+"î")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN032a : Str -> N ;
|
||||
mkN032a base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"é")
|
||||
(v0+"č")
|
||||
(v0+"˙")
|
||||
(v0+"ţ")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN033 : Str -> N ;
|
||||
mkN033 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"ĺí")
|
||||
(v0+"íč")
|
||||
(v0+"ĺíŕ")
|
||||
(v0+"ĺíĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN034 : Str -> N ;
|
||||
mkN034 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"úň")
|
||||
(v0+"ňč")
|
||||
(v0+"úň˙")
|
||||
(v0+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN035 : Str -> N ;
|
||||
mkN035 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"ĺ")
|
||||
(v0+"˙")
|
||||
(v0+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN035a : Str -> N ;
|
||||
mkN035a base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"ĺ")
|
||||
(v0+"˙")
|
||||
(v0+"ţ")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN036 : Str -> N ;
|
||||
mkN036 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"é")
|
||||
(v0+"čůŕ")
|
||||
(v0+"˙")
|
||||
(v0+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN037 : Str -> N ;
|
||||
mkN037 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"čůŕ")
|
||||
(v0+"˙")
|
||||
(v0+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN038 : Str -> N ;
|
||||
mkN038 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ŕ")
|
||||
(v0+"č")
|
||||
(v0+"č")
|
||||
(v0+"ŕ")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN039 : Str -> N ;
|
||||
mkN039 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"˙")
|
||||
(v0+"č")
|
||||
(v0+"č")
|
||||
(v0+"éo")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN040 : Str -> N ;
|
||||
mkN040 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"î")
|
||||
(v0+"îâöč")
|
||||
(v0+"îâöč")
|
||||
(v0+"î")
|
||||
DMascPersonal ;
|
||||
(AMasc Human) ;
|
||||
mkN040a : Str -> N ;
|
||||
mkN040a base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"č")
|
||||
(v0+"ŕ")
|
||||
(v0+"ĺ")
|
||||
DMasc ;
|
||||
(AMasc NonHuman) ;
|
||||
mkN041 : Str -> N ;
|
||||
mkN041 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ŕ")
|
||||
(v0+"č")
|
||||
(v0+"č")
|
||||
(v0+"î")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN041a : Str -> N ;
|
||||
mkN041a base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ŕ")
|
||||
(v0+"č")
|
||||
(v0+"č")
|
||||
(v0+"î")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN041b : Str -> N ;
|
||||
mkN041b base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ŕ")
|
||||
(v0+"č")
|
||||
(v0+"č")
|
||||
(v0+"ĺ")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN042 : Str -> N ;
|
||||
mkN042 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0)
|
||||
(v0)
|
||||
(v0)
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN043 : Str -> N ;
|
||||
mkN043 base = let v0 = tk 3 base;
|
||||
v1 = last (tk 1 base)
|
||||
@@ -460,7 +460,7 @@ oper
|
||||
(v0+"ĺ"+v1+"č")
|
||||
(v0+"ĺ"+v1+"č")
|
||||
(v0+"î")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN043a : Str -> N ;
|
||||
mkN043a base = let v0 = tk 4 base;
|
||||
v1 = last (tk 2 base)
|
||||
@@ -468,56 +468,56 @@ oper
|
||||
(v0+"ĺ"+v1+"ęč")
|
||||
(v0+"ĺ"+v1+"ęč")
|
||||
(v0+"î")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN044 : Str -> N ;
|
||||
mkN044 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ŕ")
|
||||
(v0+"ĺ")
|
||||
(v0+"ĺ")
|
||||
(v0+"î")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN045 : Str -> N ;
|
||||
mkN045 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"ęŕ")
|
||||
(v0+"öĺ")
|
||||
(v0+"öĺ")
|
||||
(v0+"ęŕ")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN046 : Str -> N ;
|
||||
mkN046 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"ăŕ")
|
||||
(v0+"çĺ")
|
||||
(v0+"çĺ")
|
||||
(v0+"ăŕ")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN047 : Str -> N ;
|
||||
mkN047 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"˙")
|
||||
(v0+"č")
|
||||
(v0+"č")
|
||||
(v0+"î")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN048 : Str -> N ;
|
||||
mkN048 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"˙")
|
||||
(v0+"ĺ")
|
||||
(v0+"ĺ")
|
||||
(v0+"üî")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN049 : Str -> N ;
|
||||
mkN049 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"č")
|
||||
(v0+"č")
|
||||
(v0)
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN050 : Str -> N ;
|
||||
mkN050 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"ĺí")
|
||||
(v0+"íč")
|
||||
(v0+"íč")
|
||||
(v0+"ĺí")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN051 : Str -> N ;
|
||||
mkN051 base = let v0 = tk 2 base;
|
||||
v1 = last (base)
|
||||
@@ -525,21 +525,21 @@ oper
|
||||
(v0+v1+"č")
|
||||
(v0+v1+"č")
|
||||
(v0+"ú"+v1)
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN052 : Str -> N ;
|
||||
mkN052 base = let v0 = tk 5 base
|
||||
in mkNoun (v0+"˙ëîńň")
|
||||
(v0+"˙ëîńňč")
|
||||
(v0+"˙ëîńňč")
|
||||
(v0+"˙ëîńň")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN052a : Str -> N ;
|
||||
mkN052a base = let v0 = tk 6 base
|
||||
in mkNoun (v0+"˙đíîńň")
|
||||
(v0+"˙đíîńňč")
|
||||
(v0+"˙đíîńňč")
|
||||
(v0+"˙đíîńň")
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN053 : Str -> N ;
|
||||
mkN053 base = let v0 = tk 3 base;
|
||||
v1 = last (base)
|
||||
@@ -547,28 +547,28 @@ oper
|
||||
(v0+"úđ"+v1+"č")
|
||||
(v0+"úđ"+v1+"č")
|
||||
(v0+"đú"+v1)
|
||||
DFem ;
|
||||
AFem ;
|
||||
mkN054 : Str -> N ;
|
||||
mkN054 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"î")
|
||||
(v0+"ŕ")
|
||||
(v0+"ŕ")
|
||||
(v0+"î")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN055 : Str -> N ;
|
||||
mkN055 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"î")
|
||||
(v0+"ŕ")
|
||||
(v0+"ŕ")
|
||||
(v0+"î")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN056 : Str -> N ;
|
||||
mkN056 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"î")
|
||||
(v0+"ŕ")
|
||||
(v0+"ŕ")
|
||||
(v0+"î")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN057 : Str -> N ;
|
||||
mkN057 base = let v0 = tk 3 base;
|
||||
v1 = last (tk 1 base)
|
||||
@@ -576,126 +576,126 @@ oper
|
||||
(v0+"ĺ"+v1+"ŕ")
|
||||
(v0+"ĺ"+v1+"ŕ")
|
||||
(v0+"˙"+v1+"î")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN057a : Str -> N ;
|
||||
mkN057a base = let v0 = tk 4 base
|
||||
in mkNoun (v0+"˙ńňî")
|
||||
(v0+"ĺńňŕ")
|
||||
(v0+"ĺńňŕ")
|
||||
(v0+"˙ńňî")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN058 : Str -> N ;
|
||||
mkN058 base = let v0 = tk 3 base
|
||||
in mkNoun (v0+"˙íî")
|
||||
(v0+"ĺíŕ")
|
||||
(v0+"ĺíŕ")
|
||||
(v0+"˙íî")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN059 : Str -> N ;
|
||||
mkN059 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"î")
|
||||
(v0+"ĺíĺ")
|
||||
(v0+"ĺíĺ")
|
||||
(v0+"î")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN060 : Str -> N ;
|
||||
mkN060 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"î")
|
||||
(v0+"ĺńŕ")
|
||||
(v0+"ĺńŕ")
|
||||
(v0+"î")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN061 : Str -> N ;
|
||||
mkN061 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"î")
|
||||
(v0+"ŕ")
|
||||
(v0+"ŕ")
|
||||
(v0+"î")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN062 : Str -> N ;
|
||||
mkN062 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"î")
|
||||
(v0+"č")
|
||||
(v0+"č")
|
||||
(v0+"î")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN063 : Str -> N ;
|
||||
mkN063 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"ęî")
|
||||
(v0+"÷č")
|
||||
(v0+"÷č")
|
||||
(v0+"ęî")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN064 : Str -> N ;
|
||||
mkN064 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"őî")
|
||||
(v0+"řč")
|
||||
(v0+"řč")
|
||||
(v0+"őî")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN065 : Str -> N ;
|
||||
mkN065 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"ňŕ")
|
||||
(v0+"ňŕ")
|
||||
(v0)
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN066 : Str -> N ;
|
||||
mkN066 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ĺ")
|
||||
(v0+"ŕ")
|
||||
(v0+"ŕ")
|
||||
(v0+"ĺ")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN067 : Str -> N ;
|
||||
mkN067 base = let v0 = tk 2 base
|
||||
in mkNoun (v0+"ňĺ")
|
||||
(v0+"öŕ")
|
||||
(v0+"öŕ")
|
||||
(v0+"ňĺ")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN068 : Str -> N ;
|
||||
mkN068 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ĺ")
|
||||
(v0+"˙")
|
||||
(v0+"˙")
|
||||
(v0+"ĺ")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN069 : Str -> N ;
|
||||
mkN069 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"íŕ")
|
||||
(v0+"íŕ")
|
||||
(v0)
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN070 : Str -> N ;
|
||||
mkN070 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"ńŕ")
|
||||
(v0+"ńŕ")
|
||||
(v0)
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN071 : Str -> N ;
|
||||
mkN071 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ĺ")
|
||||
(v0+"č˙")
|
||||
(v0+"č˙")
|
||||
(v0+"ĺ")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN072 : Str -> N ;
|
||||
mkN072 base = let v0 = tk 1 base
|
||||
in mkNoun (v0+"ĺ")
|
||||
(v0+"˙")
|
||||
(v0+"˙")
|
||||
(v0+"ĺ")
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN073 : Str -> N ;
|
||||
mkN073 base = let v0 = base
|
||||
in mkNoun (v0)
|
||||
(v0+"ňŕ")
|
||||
(v0+"ňŕ")
|
||||
(v0)
|
||||
DNeut ;
|
||||
ANeut ;
|
||||
mkN074 : Str -> N ;
|
||||
mkN074 base = let v0 = base
|
||||
in { s = table {
|
||||
@@ -706,7 +706,7 @@ oper
|
||||
NFPlCount => v0 ;
|
||||
NFVocative => v0
|
||||
} ;
|
||||
g = DNeut ;
|
||||
g = ANeut ;
|
||||
lock_N = <>
|
||||
} ;
|
||||
mkN075 : Str -> N ;
|
||||
@@ -719,7 +719,7 @@ oper
|
||||
NFPlCount => v0 ;
|
||||
NFVocative => v0
|
||||
} ;
|
||||
g = DNeut ;
|
||||
g = ANeut ;
|
||||
lock_N = <>
|
||||
} ;
|
||||
mkA076 : Str -> A ;
|
||||
|
||||
@@ -48,8 +48,8 @@ concrete QuestionBul of Question = CatBul ** open ResBul, Prelude in {
|
||||
} ;
|
||||
|
||||
IdetIP idet = {
|
||||
s = \\_ => idet.s ! DNeut ;
|
||||
gn = gennum DNeut idet.n
|
||||
s = \\_ => idet.s ! ANeut ;
|
||||
gn = gennum ANeut idet.n
|
||||
} ;
|
||||
|
||||
IdetQuant iquant num = {
|
||||
|
||||
@@ -80,27 +80,22 @@ resource ResBul = ParamX ** open Prelude in {
|
||||
|
||||
--2 For $Numeral$
|
||||
|
||||
DGender =
|
||||
DMasc
|
||||
| DMascPersonal
|
||||
| DFem
|
||||
| DNeut
|
||||
Animacy = Human | NonHuman ;
|
||||
|
||||
AGender =
|
||||
AMasc Animacy
|
||||
| AFem
|
||||
| ANeut
|
||||
;
|
||||
|
||||
DGenderSpecies =
|
||||
DMascIndef
|
||||
| DMascDef
|
||||
| DMascDefNom
|
||||
| DMascPersonalIndef
|
||||
| DMascPersonalDef
|
||||
| DMascPersonalDefNom
|
||||
| DFemIndef
|
||||
| DFemDef
|
||||
| DNeutIndef
|
||||
| DNeutDef
|
||||
CardForm =
|
||||
CFMasc Species Animacy
|
||||
| CFMascDefNom Animacy
|
||||
| CFFem Species
|
||||
| CFNeut Species
|
||||
;
|
||||
|
||||
CardOrd = NCard DGenderSpecies | NOrd AForm ;
|
||||
CardOrd = NCard CardForm | NOrd AForm ;
|
||||
NumF = Formal | Informal ;
|
||||
DForm = unit | teen NumF | ten NumF | hundred ;
|
||||
|
||||
@@ -121,13 +116,12 @@ resource ResBul = ParamX ** open Prelude in {
|
||||
p = conjPerson a.p b.p
|
||||
} ;
|
||||
|
||||
gennum : DGender -> Number -> GenNum = \g,n ->
|
||||
gennum : AGender -> Number -> GenNum = \g,n ->
|
||||
case n of {
|
||||
Sg => GSg (case g of {
|
||||
DMasc => Masc ;
|
||||
DMascPersonal => Masc ;
|
||||
DFem => Fem ;
|
||||
DNeut => Neut
|
||||
AMasc _ => Masc ;
|
||||
AFem => Fem ;
|
||||
ANeut => Neut
|
||||
}) ;
|
||||
Pl => GPl
|
||||
} ;
|
||||
@@ -147,25 +141,20 @@ resource ResBul = ParamX ** open Prelude in {
|
||||
GPl => APl spec
|
||||
} ;
|
||||
|
||||
dgenderSpecies : DGender -> Species -> Role -> DGenderSpecies =
|
||||
dgenderSpecies : AGender -> Species -> Role -> CardForm =
|
||||
\g,spec,role -> case <g,spec> of {
|
||||
<DMasc,Indef> => DMascIndef ;
|
||||
<DMasc,Def> => case role of {
|
||||
RSubj => DMascDefNom ;
|
||||
_ => DMascDef
|
||||
} ;
|
||||
<DMascPersonal,Indef> => DMascPersonalIndef ;
|
||||
<DMascPersonal,Def> => case role of {
|
||||
RSubj => DMascPersonalDefNom ;
|
||||
_ => DMascPersonalDef
|
||||
} ;
|
||||
<DFem ,Indef> => DFemIndef ;
|
||||
<DFem ,Def> => DFemDef ;
|
||||
<DNeut,Indef> => DNeutIndef ;
|
||||
<DNeut,Def> => DNeutDef
|
||||
<AMasc a,Indef> => CFMasc Indef a ;
|
||||
<AMasc a,Def> => case role of {
|
||||
RSubj => CFMascDefNom a ;
|
||||
_ => CFMasc Def a
|
||||
} ;
|
||||
<AFem ,Indef> => CFFem Indef ;
|
||||
<AFem ,Def> => CFFem Def ;
|
||||
<ANeut ,Indef> => CFNeut Indef ;
|
||||
<ANeut ,Def> => CFNeut Def
|
||||
} ;
|
||||
|
||||
nform2aform : NForm -> DGender -> AForm
|
||||
nform2aform : NForm -> AGender -> AForm
|
||||
= \nf,g -> case nf of {
|
||||
NF n spec => aform (gennum g n) spec (RObj Acc) ;
|
||||
NFSgDefNom => aform (gennum g Sg) Def RSubj ;
|
||||
@@ -535,7 +524,7 @@ resource ResBul = ParamX ** open Prelude in {
|
||||
}
|
||||
} ;
|
||||
|
||||
digitGenderSpecies : Str -> Str -> Str -> DGenderSpecies => Str =
|
||||
digitGenderSpecies : Str -> Str -> Str -> CardForm => Str =
|
||||
\dva, dvama, dve
|
||||
-> let addDef : Str -> Str =
|
||||
\s -> case s of {
|
||||
@@ -544,16 +533,16 @@ resource ResBul = ParamX ** open Prelude in {
|
||||
x => x+"òå"
|
||||
}
|
||||
in table {
|
||||
DMascIndef => dva ;
|
||||
DMascDef => addDef dva ;
|
||||
DMascDefNom => addDef dva ;
|
||||
DMascPersonalIndef => dvama ;
|
||||
DMascPersonalDef => addDef dvama ;
|
||||
DMascPersonalDefNom => addDef dvama ;
|
||||
DFemIndef => dve ;
|
||||
DFemDef => addDef dve ;
|
||||
DNeutIndef => dve ;
|
||||
DNeutDef => addDef dve
|
||||
CFMasc Indef NonHuman => dva ;
|
||||
CFMasc Def NonHuman => addDef dva ;
|
||||
CFMascDefNom NonHuman => addDef dva ;
|
||||
CFMasc Indef Human => dvama ;
|
||||
CFMasc Def Human => addDef dvama ;
|
||||
CFMascDefNom Human => addDef dvama ;
|
||||
CFFem Indef => dve ;
|
||||
CFFem Def => addDef dve ;
|
||||
CFNeut Indef => dve ;
|
||||
CFNeut Def => addDef dve
|
||||
} ;
|
||||
|
||||
mkIP : Str -> Str -> GenNum -> {s : Role => QForm => Str ; gn : GenNum} =
|
||||
|
||||
@@ -68,5 +68,5 @@ concrete SentenceBul of Sentence = CatBul ** open Prelude, ResBul in {
|
||||
|
||||
AdvS a s = {s = a.s ++ "," ++ s.s} ;
|
||||
|
||||
RelS s r = {s = s.s ++ "," ++ r.s ! {gn=gennum DNeut Sg; p=P3}} ;
|
||||
RelS s r = {s = s.s ++ "," ++ r.s ! {gn=gennum ANeut Sg; p=P3}} ;
|
||||
}
|
||||
|
||||
@@ -9,7 +9,7 @@ lin
|
||||
SymbPN i = {s = i.s ; g = Neut} ;
|
||||
IntPN i = {s = i.s ; g = Neut} ;
|
||||
FloatPN i = {s = i.s ; g = Neut} ;
|
||||
NumPN i = {s = i.s ! DNeutIndef ; g = Neut} ;
|
||||
NumPN i = {s = i.s ! CFNeut Indef ; g = Neut} ;
|
||||
CNIntNP cn i = {
|
||||
s = \\c => cn.s ! NF Sg Indef ++ i.s ;
|
||||
a = agrP3 (gennum cn.g Sg)
|
||||
@@ -19,7 +19,7 @@ lin
|
||||
a = agrP3 (gennum cn.g det.n)
|
||||
} ;
|
||||
CNNumNP cn i = {
|
||||
s = \\c => (cn.s ! NF Sg Indef ++ i.s ! DNeutIndef) ;
|
||||
s = \\c => (cn.s ! NF Sg Indef ++ i.s ! CFNeut Indef) ;
|
||||
a = agrP3 (gennum cn.g Sg)
|
||||
} ;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user