mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-28 01:18:57 -06:00
prepare for numerals with countable forms
This commit is contained in:
@@ -30,9 +30,9 @@ linref A, A2 = \a -> a.s ! Indef ! GSg Masc ;
|
||||
|
||||
lincat AP = {s : Species => GenNum => Str; isPre : Bool} ;
|
||||
lincat NP = {s : Role => Str; vocative: Str; g : GenNum; p : Person} ;
|
||||
lincat Num = {s : Str; n : Number} ;
|
||||
lincat Num = {s : Str; n : NNumber} ;
|
||||
lincat Quant = {s : Str; sp : Species} ;
|
||||
lincat Det = {s : Str; n : Number; sp : Species} ;
|
||||
lincat Det = {s : Str; n : NNumber; sp : Species} ;
|
||||
|
||||
lincat VP = {present : Aspect => Number => Person => Str;
|
||||
aorist : Number => Person => Str;
|
||||
|
||||
@@ -29,19 +29,25 @@ concrete NounMkd of Noun = CatMkd ** open Prelude,ResMkd in {
|
||||
} ;
|
||||
lin DefArt = {s = []; sp = Def Unspecified} ;
|
||||
lin DetCN det cn = {
|
||||
s = \\r => det.s ++ cn.s ! det.sp ! det.n;
|
||||
vocative = det.s ++ cn.vocative ! det.n;
|
||||
s = \\r => case det.n of {
|
||||
NNum n => det.s ++ cn.s ! det.sp ! n;
|
||||
NCountable => det.s ++ cn.count_form
|
||||
} ;
|
||||
vocative = case det.n of {
|
||||
NNum Sg => det.s ++ cn.vocative ! Sg;
|
||||
_ => det.s ++ cn.vocative ! Pl
|
||||
} ;
|
||||
g = case det.n of {
|
||||
Sg => GSg cn.g;
|
||||
Pl => GPl
|
||||
NNum Sg => GSg cn.g;
|
||||
_ => GPl
|
||||
} ;
|
||||
p = P3;
|
||||
} ;
|
||||
lin DetQuant det num = {s = det.s ++ num.s; n = num.n;
|
||||
sp = det.sp} ;
|
||||
lin IndefArt = {s = []; sp = Indef} ;
|
||||
lin NumPl = {s = []; n = Pl} ;
|
||||
lin NumSg = {s = []; n = Sg} ;
|
||||
lin NumPl = {s = []; n = NNum Pl} ;
|
||||
lin NumSg = {s = []; n = NNum Sg} ;
|
||||
lin UseN s = s ;
|
||||
lin UsePron p = p ** {vocative=p.s ! RSubj} ;
|
||||
}
|
||||
|
||||
@@ -1124,13 +1124,13 @@ mkV2V = overload {
|
||||
} ;
|
||||
|
||||
mkV2S = overload {
|
||||
mkV2S : V -> V2S = \v -> lin V2S v ** {c2,c3=noPrep} ;
|
||||
mkV2S : V -> Prep -> Prep -> V2S = \v,p2,p3 -> lin V2S v ** {c2=p2; c3=p3} ;
|
||||
mkV2S : V -> V2S = \v -> lin V2S v ** {c2=noPrep} ;
|
||||
mkV2S : V -> Prep -> V2S = \v,p2 -> lin V2S v ** {c2=p2} ;
|
||||
} ;
|
||||
|
||||
mkV2Q = overload {
|
||||
mkV2Q : V -> V2Q = \v -> lin V2Q v ** {c2,c3=noPrep} ;
|
||||
mkV2Q : V -> Prep -> Prep -> V2Q = \v,p2,p3 -> lin V2Q v ** {c2=p2; c3=p3} ;
|
||||
mkV2Q : V -> V2Q = \v -> lin V2Q v ** {c2=noPrep} ;
|
||||
mkV2Q : V -> Prep -> V2Q = \v,p2 -> lin V2Q v ** {c2=p2} ;
|
||||
} ;
|
||||
|
||||
mkV2A = overload {
|
||||
@@ -1171,7 +1171,7 @@ mkIDet : Str -> IDet = \s -> lin IDet {s=s} ;
|
||||
mkMU : Str -> MU = \s -> lin MU {s=s; isPre = False} ;
|
||||
mkSubj : Str -> Subj = \s -> lin Subj {s=s} ;
|
||||
mkQuant : Str -> Quant = \s -> lin Quant {s=s; sp=Indef} ;
|
||||
mkDet : Str -> Det = \s -> lin Det {s=s; n=Sg; sp=Indef} ;
|
||||
mkDet : Str -> Det = \s -> lin Det {s=s; n=NNum Sg; sp=Indef} ;
|
||||
mkConj : Str -> Conj = \s -> lin Conj {s=s} ;
|
||||
mkPConj : Str -> PConj = \s -> lin PConj {s=s} ;
|
||||
mkPredet : Str -> Predet = \s -> lin Predet {s=s} ;
|
||||
|
||||
@@ -5,6 +5,10 @@ oper Compl = {s : Str} ;
|
||||
param Species = Indef | Def Distance ;
|
||||
param Distance = Unspecified | Distal | Proximal ;
|
||||
param NRelType = Pref | AdjMod | AdvMod ;
|
||||
NNumber =
|
||||
NNum Number
|
||||
| NCountable
|
||||
;
|
||||
param Gender = Masc | Fem | Neuter ;
|
||||
oper Noun = {s: Species => Number => Str; count_form: Str; vocative: Number => Str; rel: Species => GenNum => Str; relType : NRelType; g: Gender} ; -- 24855
|
||||
oper mkNoun : (_,_,_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Noun =
|
||||
|
||||
Reference in New Issue
Block a user