forked from GitHub/gf-rgl
Add a useGen field
This commit is contained in:
@@ -7,15 +7,15 @@ concrete CatTur of Cat = CommonX ** open ResTur, Prelude in {
|
|||||||
lincat
|
lincat
|
||||||
|
|
||||||
-- Noun
|
-- Noun
|
||||||
CN = {s : Number => Case => Str} ;
|
CN = {s : Number => Case => Str; gen : Number => Agr => Str} ;
|
||||||
NP = {s : Case => Str ; a : Agr} ;
|
NP = {s : Case => Str ; a : Agr} ;
|
||||||
|
|
||||||
Pron = ResTur.Pron ;
|
Pron = ResTur.Pron ;
|
||||||
Det = {s : Str; n : Number} ;
|
Det = {s : Str; n : Number; useGen : Bool} ;
|
||||||
Num = {s : Number => Case => Str; n : Number} ;
|
Num = {s : Number => Case => Str; n : Number} ;
|
||||||
Card = {s : Number => Case => Str} ;
|
Card = {s : Number => Case => Str} ;
|
||||||
Ord = {s : Number => Case => Str} ;
|
Ord = {s : Number => Case => Str} ;
|
||||||
Quant = {s : Str} ;
|
Quant = {s : Str; useGen : Bool} ;
|
||||||
Prep = {s : Str; c : Case} ;
|
Prep = {s : Str; c : Case} ;
|
||||||
|
|
||||||
Numeral = {s : CardOrd => Number => Case => Str ; n : Number} ;
|
Numeral = {s : CardOrd => Number => Case => Str ; n : Number} ;
|
||||||
|
|||||||
@@ -14,8 +14,9 @@ concrete NounTur of Noun = CatTur ** open ResTur, SuffixTur, HarmonyTur, Prelude
|
|||||||
|
|
||||||
DetQuant quant num = {
|
DetQuant quant num = {
|
||||||
s = quant.s ++ num.s ! Sg ! Nom ;
|
s = quant.s ++ num.s ! Sg ! Nom ;
|
||||||
n = num.n
|
n = num.n;
|
||||||
} ;
|
useGen = quant.useGen
|
||||||
|
} ;
|
||||||
|
|
||||||
NumSg = {s = \\num,c => []; n = Sg} ;
|
NumSg = {s = \\num,c => []; n = Sg} ;
|
||||||
NumPl = {s = \\num,c => []; n = Pl} ;
|
NumPl = {s = \\num,c => []; n = Pl} ;
|
||||||
@@ -28,12 +29,8 @@ concrete NounTur of Noun = CatTur ** open ResTur, SuffixTur, HarmonyTur, Prelude
|
|||||||
OrdNumeral num = {s = \\c => num.s ! NOrd ! c} ;
|
OrdNumeral num = {s = \\c => num.s ! NOrd ! c} ;
|
||||||
OrdSuperl a = {s = \\n,c => "en" ++ a.s ! n ! c} ;
|
OrdSuperl a = {s = \\n,c => "en" ++ a.s ! n ! c} ;
|
||||||
|
|
||||||
DefArt = {
|
DefArt = {s = []; useGen = False} ;
|
||||||
s = []
|
IndefArt = {s = []; useGen = False} ;
|
||||||
} ;
|
|
||||||
IndefArt = {
|
|
||||||
s = []
|
|
||||||
} ;
|
|
||||||
|
|
||||||
UseN n = n ;
|
UseN n = n ;
|
||||||
|
|
||||||
@@ -44,26 +41,32 @@ concrete NounTur of Noun = CatTur ** open ResTur, SuffixTur, HarmonyTur, Prelude
|
|||||||
h : Harmony = {vow = f.harmony.vow; con = f.harmony.con}
|
h : Harmony = {vow = f.harmony.vow; con = f.harmony.con}
|
||||||
in
|
in
|
||||||
case f.c.c of {
|
case f.c.c of {
|
||||||
Nom => {s = \\n, c => x.s ! Gen ++ f.s ! n ! Acc };
|
Nom => {
|
||||||
Acc => {s = \\_,_ => "TODO"};
|
s = \\n, c => x.s ! Gen ++ f.s ! n ! Acc;
|
||||||
|
gen = \\_, _ => "TODO"
|
||||||
|
};
|
||||||
|
Acc => {s = \\_,_ => "TODO"; gen = \\_, _ => "TODO"};
|
||||||
Gen => {
|
Gen => {
|
||||||
s =
|
s =
|
||||||
\\n, c =>
|
\\n, c =>
|
||||||
x.s ! Gen ++ f.gen ! n ! {n = Sg; p = P3}
|
x.s ! Gen ++ f.gen ! n ! {n = Sg; p = P3}
|
||||||
++ BIND ++ (caseSuffixes ! c).st ! h.con ! h.vow
|
++ BIND ++ (caseSuffixes ! c).st ! h.con ! h.vow;
|
||||||
|
gen = \\_, _ => "TODO"
|
||||||
};
|
};
|
||||||
Dat => {
|
Dat => {
|
||||||
s = \\n, c =>
|
s = \\n, c =>
|
||||||
x.s ! Gen ++ f.gen ! n ! {n = Sg; p = P3}
|
x.s ! Gen ++ f.gen ! n ! {n = Sg; p = P3}
|
||||||
++ datSuffixN.st ! h.con ! h.vow
|
++ datSuffixN.st ! h.con ! h.vow;
|
||||||
|
gen = \\_, _ => "TODO"
|
||||||
};
|
};
|
||||||
Loc => {s = \\_,_ => "TODO"};
|
Loc => {s = \\_,_ => "TODO"; gen = \\_, _ => "TODO"};
|
||||||
Ablat => {s = \\_,_ => "TODO"};
|
Ablat => {s = \\_,_ => "TODO"; gen = \\_, _ => "TODO"};
|
||||||
Abess _ => {s = \\_,_ => "TODO"}
|
Abess _ => {s = \\_,_ => "TODO"; gen = \\_, _ => "TODO"}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
AdjCN ap cn = {
|
AdjCN ap cn = {
|
||||||
s = \\n,c => ap.s ! Sg ! Nom ++ cn.s ! n ! c
|
s = \\n,c => ap.s ! Sg ! Nom ++ cn.s ! n ! c;
|
||||||
|
gen = \\n, a => ap.s ! Sg ! Nom ++ cn.gen ! n ! a
|
||||||
} ;
|
} ;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -507,7 +507,7 @@ oper
|
|||||||
dat_Case : Prep = mkPrep [] Dat;
|
dat_Case : Prep = mkPrep [] Dat;
|
||||||
acc_Case : Prep = mkPrep [] Dat;
|
acc_Case : Prep = mkPrep [] Dat;
|
||||||
|
|
||||||
mkQuant : Str -> Quant = \s -> lin Quant {s=s} ;
|
mkQuant : Str -> Quant = \s -> lin Quant {s=s; useGen = False} ;
|
||||||
|
|
||||||
param
|
param
|
||||||
AoristType = PlSyl -- more than one syllable, takes -ir
|
AoristType = PlSyl -- more than one syllable, takes -ir
|
||||||
|
|||||||
Reference in New Issue
Block a user