mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
more fixes
This commit is contained in:
@@ -32,7 +32,7 @@ lincat AP = {s : Species => GenNum => Str; isPre : Bool} ;
|
|||||||
lincat NP = {s : Role => Str; vocative: Str; a : Agr} ;
|
lincat NP = {s : Role => Str; vocative: Str; a : Agr} ;
|
||||||
lincat Num = {s : Str; n : NNumber} ;
|
lincat Num = {s : Str; n : NNumber} ;
|
||||||
lincat Quant = {s : GenNum => Str; sp : Species} ;
|
lincat Quant = {s : GenNum => Str; sp : Species} ;
|
||||||
lincat Det = {s : Gender => Str; n : NNumber; sp : Species} ;
|
lincat Det, DAP = {s : Gender => Str; n : NNumber; sp : Species} ;
|
||||||
|
|
||||||
lincat VP = Verb ** {compl : Agr => Str} ;
|
lincat VP = Verb ** {compl : Agr => Str} ;
|
||||||
lincat VPSlash = Verb ** {compl : Agr => Str; c2 : Compl} ;
|
lincat VPSlash = Verb ** {compl : Agr => Str; c2 : Compl} ;
|
||||||
|
|||||||
@@ -22,7 +22,11 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in {
|
|||||||
} ++
|
} ++
|
||||||
cn.vocative ! n;
|
cn.vocative ! n;
|
||||||
count_form = ap.s ! Indef ! GPl ++ cn.count_form; g = cn.g} ;
|
count_form = ap.s ! Indef ! GPl ++ cn.count_form; g = cn.g} ;
|
||||||
lin AdjDAP d ap = {s = d.s ++ ap.s ! Indef ! GSg Masc} ;
|
lin AdjDAP d ap = {
|
||||||
|
s = \\g => d.s ! g ++ ap.s ! Indef ! genNum g (nnum2num d.n) ;
|
||||||
|
n = d.n ;
|
||||||
|
sp = d.sp
|
||||||
|
} ;
|
||||||
lin AdvCN cn adv = {
|
lin AdvCN cn adv = {
|
||||||
s = \\s,n => cn.s ! s ! n ++ adv.s;
|
s = \\s,n => cn.s ! s ! n ++ adv.s;
|
||||||
count_form = cn.count_form ++ adv.s;
|
count_form = cn.count_form ++ adv.s;
|
||||||
@@ -30,22 +34,24 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in {
|
|||||||
g = cn.g
|
g = cn.g
|
||||||
} ;
|
} ;
|
||||||
lin AdvNP np a = {s = \\r => np.s ! r ++ a.s;
|
lin AdvNP np a = {s = \\r => np.s ! r ++ a.s;
|
||||||
vocative = np.vocative ++ a.s; a = {g = np.a.g; p = np.a.p}} ;
|
vocative = np.vocative ++ a.s; a = np.a} ;
|
||||||
lin ApposCN cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj;
|
lin ApposCN cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj;
|
||||||
count_form = cn.count_form ++ np.s ! RSubj;
|
count_form = cn.count_form ++ np.s ! RSubj;
|
||||||
vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ;
|
vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ;
|
||||||
lin ComplN2 n2 np = {s = \\s,n => n2.s ! s ! n ++ np.s ! RSubj;
|
lin ComplN2 n2 np = {s = \\s,n => n2.s ! s ! n ++ n2.c2.s ++ np.s ! RObj n2.c2.c;
|
||||||
count_form = n2.count_form ++ np.s ! RSubj;
|
count_form = n2.count_form ++ n2.c2.s ++ np.s ! RObj n2.c2.c;
|
||||||
vocative = \\n => n2.vocative ! n ++ np.vocative; g = n2.g} ;
|
vocative = \\n => n2.vocative ! n ++ n2.c2.s ++ np.s ! RObj n2.c2.c;
|
||||||
lin ComplN3 n3 np = {s = \\s,n => n3.s ! s ! n ++ np.s ! RSubj;
|
g = n2.g} ;
|
||||||
count_form = n3.count_form ++ np.s ! RSubj;
|
lin ComplN3 n3 np = {s = \\s,n => n3.s ! s ! n ++ n3.c2.s ++ np.s ! RObj n3.c2.c;
|
||||||
vocative = \\n => n3.vocative ! n ++ np.vocative;
|
count_form = n3.count_form ++ n3.c2.s ++ np.s ! RObj n3.c2.c;
|
||||||
rel = \\s,g => n3.rel ! s ! g ++ np.s ! RSubj;
|
vocative = \\n => n3.vocative ! n ++ n3.c2.s ++ np.s ! RObj n3.c2.c;
|
||||||
relType = n3.relType; g = n3.g;
|
rel = \\s,g => n3.s ! s ! genNum2num g ++ n3.c2.s ++ np.s ! RObj n3.c2.c;
|
||||||
c2 = {s = n3.c2.s ++ np.s ! RSubj; c = n3.c2.c}} ;
|
relType = AdvMod;
|
||||||
|
g = n3.g;
|
||||||
|
c2 = n3.c3} ;
|
||||||
lin CountNP d np = {s = \\r => d.s ! Masc ++ np.s ! r;
|
lin CountNP d np = {s = \\r => d.s ! Masc ++ np.s ! r;
|
||||||
vocative = d.s ! Masc ++ np.vocative;
|
vocative = d.s ! Masc ++ np.vocative;
|
||||||
a = {g = np.a.g; p = np.a.p}} ;
|
a = np.a} ;
|
||||||
lin DefArt = {s = \\_=>[]; sp = Def Unspecified} ;
|
lin DefArt = {s = \\_=>[]; sp = Def Unspecified} ;
|
||||||
lin DetCN det cn = {
|
lin DetCN det cn = {
|
||||||
s = \\r => case det.n of {
|
s = \\r => case det.n of {
|
||||||
@@ -56,7 +62,7 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in {
|
|||||||
a = {g = genNum cn.g (nnum2num det.n) ;
|
a = {g = genNum cn.g (nnum2num det.n) ;
|
||||||
p = P3};
|
p = P3};
|
||||||
} ;
|
} ;
|
||||||
lin DetDAP d = {s = d.s ! Masc} ;
|
lin DetDAP d = d ;
|
||||||
lin DetNP d = {s = \\r => d.s ! Masc; vocative = d.s ! Masc;
|
lin DetNP d = {s = \\r => d.s ! Masc; vocative = d.s ! Masc;
|
||||||
a = {g = GSg Masc; p = P1}} ;
|
a = {g = GSg Masc; p = P1}} ;
|
||||||
lin DetQuant q num = {s = \\g => q.s ! genNum g (nnum2num num.n) ++ num.s;
|
lin DetQuant q num = {s = \\g => q.s ! genNum g (nnum2num num.n) ++ num.s;
|
||||||
@@ -64,11 +70,15 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in {
|
|||||||
sp = q.sp} ;
|
sp = q.sp} ;
|
||||||
lin DetQuantOrd q n o = {s = \\g => q.s ! GSg Masc ++ n.s ++ o.s;
|
lin DetQuantOrd q n o = {s = \\g => q.s ! GSg Masc ++ n.s ++ o.s;
|
||||||
n = n.n; sp = q.sp} ;
|
n = n.n; sp = q.sp} ;
|
||||||
lin ExtAdvNP np a = {s = \\r => np.s ! r ++ a.s;
|
lin ExtAdvNP np a = {
|
||||||
vocative = np.vocative ++ a.s; a = {g = np.a.g; p = np.a.p}} ;
|
s = \\r => np.s ! r ++ SOFT_BIND++"," ++ a.s;
|
||||||
|
vocative = np.vocative ++ SOFT_BIND++"," ++ a.s;
|
||||||
|
a = np.a
|
||||||
|
} ;
|
||||||
lin IndefArt = {s = \\_=>[]; sp = Indef} ;
|
lin IndefArt = {s = \\_=>[]; sp = Indef} ;
|
||||||
lin MassNP cn = {s = \\r => cn.s ! Indef ! Sg;
|
lin MassNP cn = {s = \\r => cn.s ! Indef ! Sg;
|
||||||
vocative = cn.vocative ! Sg; a = {g = GSg Masc; p = P1}} ;
|
vocative = cn.vocative ! Sg;
|
||||||
|
a = {g = GSg cn.g; p = P3}} ;
|
||||||
lin NumCard c = {s = c.s; n = NNum Sg} ;
|
lin NumCard c = {s = c.s; n = NNum Sg} ;
|
||||||
lin NumDecimal d = {s = d.s} ;
|
lin NumDecimal d = {s = d.s} ;
|
||||||
lin NumDigits d = {s = d.s} ;
|
lin NumDigits d = {s = d.s} ;
|
||||||
@@ -97,11 +107,21 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in {
|
|||||||
lin PossNP cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj;
|
lin PossNP cn np = {s = \\s,n => cn.s ! s ! n ++ np.s ! RSubj;
|
||||||
count_form = cn.count_form ++ np.s ! RSubj;
|
count_form = cn.count_form ++ np.s ! RSubj;
|
||||||
vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ;
|
vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ;
|
||||||
lin PossPron p = {s = \\g => p.s ! RSubj; sp = Indef} ;
|
lin PossPron p = {s = p.poss ! Def Unspecified; sp = Indef} ;
|
||||||
lin PredetNP p np = {s = \\r => p.s ++ np.s ! r;
|
lin PredetNP p np = {
|
||||||
vocative = p.s ++ np.vocative; a = {g = np.a.g; p = np.a.p}} ;
|
s = \\r => p.s ++ np.s ! r;
|
||||||
lin QuantityNP d mu = {s = \\r => d.s ++ mu.s;
|
vocative = p.s ++ np.vocative;
|
||||||
vocative = d.s ++ mu.s; a = {g = GSg Masc; p = P1}} ;
|
a = np.a
|
||||||
|
} ;
|
||||||
|
lin QuantityNP d mu =
|
||||||
|
let s = case mu.isPre of {
|
||||||
|
True => mu.s ++ d.s ;
|
||||||
|
False => d.s ++ mu.s
|
||||||
|
}
|
||||||
|
in { s = \\r => s;
|
||||||
|
vocative = s;
|
||||||
|
a = {g = GSg Masc; p = P3}
|
||||||
|
} ;
|
||||||
lin RelCN cn rs = {
|
lin RelCN cn rs = {
|
||||||
s = \\sp,n => cn.s ! sp ! n ++ rs.s ! genNum cn.g n ;
|
s = \\sp,n => cn.s ! sp ! n ++ rs.s ! genNum cn.g n ;
|
||||||
count_form = cn.count_form ++ rs.s ! GPl ;
|
count_form = cn.count_form ++ rs.s ! GPl ;
|
||||||
@@ -119,9 +139,10 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in {
|
|||||||
count_form = n3.count_form; vocative = \\n => n3.vocative ! n;
|
count_form = n3.count_form; vocative = \\n => n3.vocative ! n;
|
||||||
rel = \\s,g => n3.rel ! s ! g; relType = n3.relType; g = n3.g;
|
rel = \\s,g => n3.rel ! s ! g; relType = n3.relType; g = n3.g;
|
||||||
c2 = {s = n3.c2.s; c = n3.c2.c}} ;
|
c2 = {s = n3.c2.s; c = n3.c2.c}} ;
|
||||||
lin UseN2 n2 = {s = \\s,n => n2.s ! s ! n;
|
lin UseN2 n2 = n2 ;
|
||||||
count_form = n2.count_form; vocative = \\n => n2.vocative ! n;
|
lin UsePN pn = {
|
||||||
g = n2.g} ;
|
s = \\r => pn.s;
|
||||||
lin UsePN pn = {s = \\r => pn.s; vocative = pn.s;
|
vocative = pn.s;
|
||||||
a = {g = GSg Masc; p = P1}} ;
|
a = {g = GSg Masc; p = P3}
|
||||||
|
} ;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user