1
0
forked from GitHub/gf-rgl

Add a useGen field

This commit is contained in:
Ayberk Tosun
2017-08-21 18:16:44 +03:00
parent 99c70256ca
commit 1362bbdd03
3 changed files with 23 additions and 20 deletions

View File

@@ -7,15 +7,15 @@ concrete CatTur of Cat = CommonX ** open ResTur, Prelude in {
lincat
-- Noun
CN = {s : Number => Case => Str} ;
CN = {s : Number => Case => Str; gen : Number => Agr => Str} ;
NP = {s : Case => Str ; a : Agr} ;
Pron = ResTur.Pron ;
Det = {s : Str; n : Number} ;
Det = {s : Str; n : Number; useGen : Bool} ;
Num = {s : Number => Case => Str; n : Number} ;
Card = {s : Number => Case => Str} ;
Ord = {s : Number => Case => Str} ;
Quant = {s : Str} ;
Quant = {s : Str; useGen : Bool} ;
Prep = {s : Str; c : Case} ;
Numeral = {s : CardOrd => Number => Case => Str ; n : Number} ;

View File

@@ -14,8 +14,9 @@ concrete NounTur of Noun = CatTur ** open ResTur, SuffixTur, HarmonyTur, Prelude
DetQuant quant num = {
s = quant.s ++ num.s ! Sg ! Nom ;
n = num.n
} ;
n = num.n;
useGen = quant.useGen
} ;
NumSg = {s = \\num,c => []; n = Sg} ;
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} ;
OrdSuperl a = {s = \\n,c => "en" ++ a.s ! n ! c} ;
DefArt = {
s = []
} ;
IndefArt = {
s = []
} ;
DefArt = {s = []; useGen = False} ;
IndefArt = {s = []; useGen = False} ;
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}
in
case f.c.c of {
Nom => {s = \\n, c => x.s ! Gen ++ f.s ! n ! Acc };
Acc => {s = \\_,_ => "TODO"};
Nom => {
s = \\n, c => x.s ! Gen ++ f.s ! n ! Acc;
gen = \\_, _ => "TODO"
};
Acc => {s = \\_,_ => "TODO"; gen = \\_, _ => "TODO"};
Gen => {
s =
\\n, c =>
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 => {
s = \\n, c =>
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"};
Ablat => {s = \\_,_ => "TODO"};
Abess _ => {s = \\_,_ => "TODO"}
Loc => {s = \\_,_ => "TODO"; gen = \\_, _ => "TODO"};
Ablat => {s = \\_,_ => "TODO"; gen = \\_, _ => "TODO"};
Abess _ => {s = \\_,_ => "TODO"; gen = \\_, _ => "TODO"}
};
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
} ;
}

View File

@@ -507,7 +507,7 @@ oper
dat_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
AoristType = PlSyl -- more than one syllable, takes -ir