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 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} ;

View File

@@ -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
} ; } ;
} }

View File

@@ -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