mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -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 Num = {s : Str; n : NNumber} ;
|
||||
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 VPSlash = Verb ** {compl : Agr => Str; c2 : Compl} ;
|
||||
|
||||
@@ -22,7 +22,11 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in {
|
||||
} ++
|
||||
cn.vocative ! n;
|
||||
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 = {
|
||||
s = \\s,n => cn.s ! s ! n ++ 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
|
||||
} ;
|
||||
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;
|
||||
count_form = cn.count_form ++ np.s ! RSubj;
|
||||
vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ;
|
||||
lin ComplN2 n2 np = {s = \\s,n => n2.s ! s ! n ++ np.s ! RSubj;
|
||||
count_form = n2.count_form ++ np.s ! RSubj;
|
||||
vocative = \\n => n2.vocative ! n ++ np.vocative; g = n2.g} ;
|
||||
lin ComplN3 n3 np = {s = \\s,n => n3.s ! s ! n ++ np.s ! RSubj;
|
||||
count_form = n3.count_form ++ np.s ! RSubj;
|
||||
vocative = \\n => n3.vocative ! n ++ np.vocative;
|
||||
rel = \\s,g => n3.rel ! s ! g ++ np.s ! RSubj;
|
||||
relType = n3.relType; g = n3.g;
|
||||
c2 = {s = n3.c2.s ++ np.s ! RSubj; c = n3.c2.c}} ;
|
||||
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 ++ n2.c2.s ++ np.s ! RObj n2.c2.c;
|
||||
vocative = \\n => n2.vocative ! n ++ n2.c2.s ++ np.s ! RObj n2.c2.c;
|
||||
g = n2.g} ;
|
||||
lin ComplN3 n3 np = {s = \\s,n => n3.s ! s ! n ++ n3.c2.s ++ np.s ! RObj n3.c2.c;
|
||||
count_form = n3.count_form ++ n3.c2.s ++ np.s ! RObj n3.c2.c;
|
||||
vocative = \\n => n3.vocative ! n ++ n3.c2.s ++ np.s ! RObj n3.c2.c;
|
||||
rel = \\s,g => n3.s ! s ! genNum2num g ++ n3.c2.s ++ np.s ! RObj n3.c2.c;
|
||||
relType = AdvMod;
|
||||
g = n3.g;
|
||||
c2 = n3.c3} ;
|
||||
lin CountNP d np = {s = \\r => d.s ! Masc ++ np.s ! r;
|
||||
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 DetCN det cn = {
|
||||
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) ;
|
||||
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;
|
||||
a = {g = GSg Masc; p = P1}} ;
|
||||
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} ;
|
||||
lin DetQuantOrd q n o = {s = \\g => q.s ! GSg Masc ++ n.s ++ o.s;
|
||||
n = n.n; sp = q.sp} ;
|
||||
lin ExtAdvNP np a = {s = \\r => np.s ! r ++ a.s;
|
||||
vocative = np.vocative ++ a.s; a = {g = np.a.g; p = np.a.p}} ;
|
||||
lin ExtAdvNP np a = {
|
||||
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 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 NumDecimal 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;
|
||||
count_form = cn.count_form ++ np.s ! RSubj;
|
||||
vocative = \\n => cn.vocative ! n ++ np.vocative; g = cn.g} ;
|
||||
lin PossPron p = {s = \\g => p.s ! RSubj; sp = Indef} ;
|
||||
lin PredetNP p np = {s = \\r => p.s ++ np.s ! r;
|
||||
vocative = p.s ++ np.vocative; a = {g = np.a.g; p = np.a.p}} ;
|
||||
lin QuantityNP d mu = {s = \\r => d.s ++ mu.s;
|
||||
vocative = d.s ++ mu.s; a = {g = GSg Masc; p = P1}} ;
|
||||
lin PossPron p = {s = p.poss ! Def Unspecified; sp = Indef} ;
|
||||
lin PredetNP p np = {
|
||||
s = \\r => p.s ++ np.s ! r;
|
||||
vocative = p.s ++ np.vocative;
|
||||
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 = {
|
||||
s = \\sp,n => cn.s ! sp ! n ++ rs.s ! genNum cn.g n ;
|
||||
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;
|
||||
rel = \\s,g => n3.rel ! s ! g; relType = n3.relType; g = n3.g;
|
||||
c2 = {s = n3.c2.s; c = n3.c2.c}} ;
|
||||
lin UseN2 n2 = {s = \\s,n => n2.s ! s ! n;
|
||||
count_form = n2.count_form; vocative = \\n => n2.vocative ! n;
|
||||
g = n2.g} ;
|
||||
lin UsePN pn = {s = \\r => pn.s; vocative = pn.s;
|
||||
a = {g = GSg Masc; p = P1}} ;
|
||||
lin UseN2 n2 = n2 ;
|
||||
lin UsePN pn = {
|
||||
s = \\r => pn.s;
|
||||
vocative = pn.s;
|
||||
a = {g = GSg Masc; p = P3}
|
||||
} ;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user