mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-23 03:32:51 -06:00
FixedRon
This commit is contained in:
@@ -1,26 +1,27 @@
|
|||||||
|
|
||||||
concrete SentencesRon of Sentences = NumeralRon ** SentencesI - [
|
concrete SentencesRon of Sentences = NumeralRon ** SentencesI - [
|
||||||
IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale
|
IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
|
||||||
]
|
ThePlace
|
||||||
|
]
|
||||||
with
|
with
|
||||||
(Syntax = SyntaxRon),
|
(Syntax = SyntaxRon),
|
||||||
(Symbolic = SymbolicRon),
|
(Symbolic = SymbolicRon),
|
||||||
(Lexicon = LexiconRon) **
|
(Lexicon = LexiconRon) **
|
||||||
open SyntaxRon, ExtraRon in {
|
open SyntaxRon, ExtraRon in {
|
||||||
|
|
||||||
lin
|
|
||||||
IFemale =
|
lin
|
||||||
{name = mkNP i8fem_Pron ; isPron = True ; poss = mkQuant i_Pron} ;
|
IFemale = {name = mkNP i8fem_Pron ; isPron = True ; poss = mkQuant i_Pron} ;
|
||||||
YouFamFemale =
|
YouFamFemale = {name = mkNP youSg8fem_Pron ; isPron = True ; poss = mkQuant youSg_Pron} ;
|
||||||
{name = mkNP youSg8fem_Pron ; isPron = True ; poss = mkQuant youSg_Pron} ;
|
YouPolFemale = {name = mkNP youPol8fem_Pron ; isPron = True ; poss = mkQuant youPol_Pron};
|
||||||
YouPolFemale =
|
IMale = {name = mkNP i_Pron ; isPron = True ; poss = mkQuant i_Pron} ;
|
||||||
{name = mkNP youPol8fem_Pron ; isPron = True ; poss = mkQuant youPol_Pron};
|
YouFamMale = {name = mkNP youSg_Pron ; isPron = True ; poss = mkQuant youSg_Pron} ;
|
||||||
IMale =
|
YouPolMale = {name = mkNP youPol_Pron ; isPron = True ; poss = mkQuant youPol_Pron} ;
|
||||||
{name = mkNP i_Pron ; isPron = True ; poss = mkQuant i_Pron} ;
|
ThePlace kind = let name : NP = mkNP the_Quant kind.name in {
|
||||||
YouFamMale =
|
name = name ;
|
||||||
{name = mkNP youSg_Pron ; isPron = True ; poss = mkQuant youSg_Pron} ;
|
at = if_then_else Adv kind.at.needIndef (mkAdv kind.at name) (mkAdv kind.at (mkNP kind.name));
|
||||||
YouPolMale =
|
to = if_then_else Adv kind.at.needIndef (mkAdv kind.to name) (mkAdv kind.at (mkNP kind.name))
|
||||||
{name = mkNP youPol_Pron ; isPron = True ; poss = mkQuant youPol_Pron} ;
|
} ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -88,11 +88,11 @@ concrete WordsRon of Words = SentencesRon ** open
|
|||||||
(mkNP (mkNP a_Det (P.mkN "cameră")) (SyntaxRon.mkAdv for_Prep (mkNP num (P.mkN "persoană")))) ;
|
(mkNP (mkNP a_Det (P.mkN "cameră")) (SyntaxRon.mkAdv for_Prep (mkNP num (P.mkN "persoană")))) ;
|
||||||
AHasTable p num = mkCl p.name have_V2
|
AHasTable p num = mkCl p.name have_V2
|
||||||
(mkNP (mkNP a_Det (P.mkN "masa" "mese")) (SyntaxRon.mkAdv for_Prep (mkNP num (P.mkN "persoană")))) ;
|
(mkNP (mkNP a_Det (P.mkN "masa" "mese")) (SyntaxRon.mkAdv for_Prep (mkNP num (P.mkN "persoană")))) ;
|
||||||
AHasName p name = mkCl p.name (P.dirV2 (mkRVAcc (v_besch119 "numi"))) name ;
|
AHasName p name = mkCl p.name (P.mmkV2 (mkRVAcc (v_besch119 "numi")) (P.noPrep P.Nom)) name ;
|
||||||
AHungry p = DatSubjCl p.name (mkVP (mkNP (P.mkN "foame"))) ;
|
AHungry p = DatSubjCl p.name (mkVP (mkNP (P.mkN "foame"))) ;
|
||||||
AIll p = mkCl p.name (P.mkA "bolnav") ;
|
AIll p = mkCl p.name (P.mkA "bolnav") ;
|
||||||
AKnow p = mkCl p.name (v_besch122 "şti") ;
|
AKnow p = mkCl p.name (v_besch122 "şti") ;
|
||||||
ALike p item = mkCl p.name (P.dirV2 (v_besch71 "plăcea")) item ;
|
ALike p item = DatSubjCompCl p.name (mkVP (v_besch71 "plăcea")) item ;
|
||||||
ALive p co =
|
ALive p co =
|
||||||
mkCl p.name (mkVP (mkVP (v_besch121 "locui")) (SyntaxRon.mkAdv in_Prep co)) ;
|
mkCl p.name (mkVP (mkVP (v_besch121 "locui")) (SyntaxRon.mkAdv in_Prep co)) ;
|
||||||
ALove p q = mkCl p.name (P.dirV2 (P.mkV "iubi")) q.name ;
|
ALove p q = mkCl p.name (P.dirV2 (P.mkV "iubi")) q.name ;
|
||||||
@@ -166,7 +166,8 @@ open_A : A = P.mkA "deschis" ;
|
|||||||
ad = {s = d} in
|
ad = {s = d} in
|
||||||
mkNPDay day ad ad; ---- difference is enforced by additional constructions
|
mkNPDay day ad ad; ---- difference is enforced by additional constructions
|
||||||
|
|
||||||
xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (mkCN x) p ;
|
xOf : GNumber -> N -> NPPerson -> NPPerson = \n,x,p -> mkRelative n (refCN x) p ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
-- auxiliaries
|
-- auxiliaries
|
||||||
|
|||||||
@@ -47,7 +47,8 @@ concrete CatRon of Cat =
|
|||||||
|
|
||||||
-- Noun
|
-- Noun
|
||||||
|
|
||||||
CN = {s : Number => Species => ACase => Str; g : NGender; a : Animacy ; isComp : Bool} ;
|
CN = {s : Number => Species => ACase => Str; g : NGender;
|
||||||
|
a : Animacy; isComp : Bool; needsRefForm : Bool} ;
|
||||||
|
|
||||||
Pron = {s : NCase => Str ;
|
Pron = {s : NCase => Str ;
|
||||||
c1, c2 : Clitics => Str ;
|
c1, c2 : Clitics => Str ;
|
||||||
|
|||||||
@@ -3,7 +3,10 @@ concrete ExtraRon of ExtraRonAbs = CatRon **
|
|||||||
open ResRon, ParadigmsRon, Prelude, MorphoRon in {
|
open ResRon, ParadigmsRon, Prelude, MorphoRon in {
|
||||||
|
|
||||||
lin
|
lin
|
||||||
at_Prep = mkPrep "la" Ac True;
|
at_Prep = mkPrep "la" Ac True;
|
||||||
|
DatSubjCompCl np vp np2 = let ss = if_then_Str np.isPronoun "" (np.s ! Dat).comp
|
||||||
|
in
|
||||||
|
mkClause ss np.isPol np2.a (insertClit (insertSimpObj (\\_ => (np2.s ! Nom).comp) vp) np);
|
||||||
DatSubjCl np vp = let ss = if_then_Str np.isPronoun "" (np.s ! Da).comp
|
DatSubjCl np vp = let ss = if_then_Str np.isPronoun "" (np.s ! Da).comp
|
||||||
in mkClause ss np.isPol (agrP3 Masc Sg) (insertClit vp np);
|
in mkClause ss np.isPol (agrP3 Masc Sg) (insertClit vp np);
|
||||||
i8fem_Pron = mkPronoun "eu" "mine" "mie" [] [] "meu" "mea" "mei" "mele" Fem Sg P1 ;
|
i8fem_Pron = mkPronoun "eu" "mine" "mie" [] [] "meu" "mea" "mei" "mele" Fem Sg P1 ;
|
||||||
@@ -13,7 +16,8 @@ youPol8fem_Pron = let dvs = mkPronoun "dumneavoastră" "dumneavoastră" "dumneav
|
|||||||
in
|
in
|
||||||
{s = dvs.s; c1 = dvs.c1;
|
{s = dvs.s; c1 = dvs.c1;
|
||||||
c2 = dvs.c2; a = dvs.a; isPol = True; poss = dvs.poss} ;
|
c2 = dvs.c2; a = dvs.a; isPol = True; poss = dvs.poss} ;
|
||||||
|
|
||||||
|
refCN n = n ** {isComp = False; needsRefForm = True};
|
||||||
|
|
||||||
oper
|
oper
|
||||||
insertClit : VerbPhrase -> NounPhrase -> VerbPhrase = \vp, np ->
|
insertClit : VerbPhrase -> NounPhrase -> VerbPhrase = \vp, np ->
|
||||||
|
|||||||
@@ -4,13 +4,15 @@ abstract ExtraRonAbs = Cat **{
|
|||||||
|
|
||||||
fun
|
fun
|
||||||
DatSubjCl : NP -> VP -> Cl ;
|
DatSubjCl : NP -> VP -> Cl ;
|
||||||
|
DatSubjCompCl : NP -> VP -> NP -> Cl ;
|
||||||
at_Prep : Prep ;
|
at_Prep : Prep ;
|
||||||
|
refCN : N -> CN ;
|
||||||
|
|
||||||
i8fem_Pron : Pron ;
|
i8fem_Pron : Pron ;
|
||||||
youSg8fem_Pron : Pron ;
|
youSg8fem_Pron : Pron ;
|
||||||
youPl8fem_Pron : Pron ;
|
youPl8fem_Pron : Pron ;
|
||||||
youPol8fem_Pron : Pron ;
|
youPol8fem_Pron : Pron ;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ concrete NounRon of Noun =
|
|||||||
n = det.n;
|
n = det.n;
|
||||||
gg = agrGender cn.g n ;
|
gg = agrGender cn.g n ;
|
||||||
ag = agrP3 gg n ;
|
ag = agrP3 gg n ;
|
||||||
hr = orB (andB (getClit cn.a) det.hasRef) (andB det.isDef cn.isComp);
|
hr = orB cn.needsRefForm (orB (andB (getClit cn.a) det.hasRef) (andB det.isDef cn.isComp));
|
||||||
nf = if_then_else NForm hr HasClit (HasRef False);
|
nf = if_then_else NForm hr HasClit (HasRef False);
|
||||||
st= if_then_else Species det.isDef Def Indef;
|
st= if_then_else Species det.isDef Def Indef;
|
||||||
rs = if_then_else Species det.hasRef Def Indef
|
rs = if_then_else Species det.hasRef Def Indef
|
||||||
@@ -233,7 +233,7 @@ in {
|
|||||||
|
|
||||||
-- This is based on record subtyping.
|
-- This is based on record subtyping.
|
||||||
|
|
||||||
UseN, UseN2 = \noun -> noun ** {isComp = False};
|
UseN, UseN2 = \noun -> noun ** {isComp = False; needsRefForm = False};
|
||||||
|
|
||||||
Use2N3 f = f ;
|
Use2N3 f = f ;
|
||||||
|
|
||||||
@@ -243,6 +243,7 @@ in {
|
|||||||
s = \\n,sp,c => f.s ! n ! sp ! c ++ appCompl f.c2 x ;
|
s = \\n,sp,c => f.s ! n ! sp ! c ++ appCompl f.c2 x ;
|
||||||
g = f.g ;
|
g = f.g ;
|
||||||
a = f.a ;
|
a = f.a ;
|
||||||
|
needsRefForm = False ;
|
||||||
isComp = getClit f.a
|
isComp = getClit f.a
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -251,6 +252,7 @@ in {
|
|||||||
g = f.g ;
|
g = f.g ;
|
||||||
c2 = f.c3;
|
c2 = f.c3;
|
||||||
a = f.a ;
|
a = f.a ;
|
||||||
|
needsRefForm = False ;
|
||||||
isComp = getClit f.a
|
isComp = getClit f.a
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -266,6 +268,7 @@ in {
|
|||||||
};
|
};
|
||||||
g = g ;
|
g = g ;
|
||||||
a = cn.a ;
|
a = cn.a ;
|
||||||
|
needsRefForm = cn.needsRefForm ;
|
||||||
isComp = getClit cn.a
|
isComp = getClit cn.a
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -274,6 +277,7 @@ in {
|
|||||||
s = \\n,sp,c => cn.s ! n ! sp ! c ++ rs.s ! Indic ! agrP3 (agrGender cn.g n) n ;
|
s = \\n,sp,c => cn.s ! n ! sp ! c ++ rs.s ! Indic ! agrP3 (agrGender cn.g n) n ;
|
||||||
g = cn.g ;
|
g = cn.g ;
|
||||||
a = cn.a ;
|
a = cn.a ;
|
||||||
|
needsRefForm = cn.needsRefForm;
|
||||||
isComp = False
|
isComp = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -281,6 +285,7 @@ in {
|
|||||||
s = \\n,sp,c => cn.s ! n ! sp ! c ++ sc.s ;
|
s = \\n,sp,c => cn.s ! n ! sp ! c ++ sc.s ;
|
||||||
g = g ;
|
g = g ;
|
||||||
a = cn.a ;
|
a = cn.a ;
|
||||||
|
needsRefForm = cn.needsRefForm;
|
||||||
isComp = False
|
isComp = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -288,6 +293,7 @@ in {
|
|||||||
s = \\n,sp,c => cn.s ! n ! sp ! c ++ sc.s ;
|
s = \\n,sp,c => cn.s ! n ! sp ! c ++ sc.s ;
|
||||||
g = g;
|
g = g;
|
||||||
a = cn.a ;
|
a = cn.a ;
|
||||||
|
needsRefForm = cn.needsRefForm;
|
||||||
isComp = False
|
isComp = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
@@ -295,6 +301,7 @@ in {
|
|||||||
s = \\n,sp,c => cn.s ! n ! sp ! c ++ (np.s ! No).comp ;
|
s = \\n,sp,c => cn.s ! n ! sp ! c ++ (np.s ! No).comp ;
|
||||||
g = g;
|
g = g;
|
||||||
a = cn.a ;
|
a = cn.a ;
|
||||||
|
needsRefForm = cn.needsRefForm;
|
||||||
isComp = False
|
isComp = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -54,7 +54,9 @@ oper
|
|||||||
Acc : NCase ;
|
Acc : NCase ;
|
||||||
Dat : NCase ;
|
Dat : NCase ;
|
||||||
Gen : NCase ;
|
Gen : NCase ;
|
||||||
mkPrep : overload {
|
Nom : NCase ;
|
||||||
|
|
||||||
|
mkPrep : overload {
|
||||||
mkPrep : Str -> NCase-> Bool -> Prep ;
|
mkPrep : Str -> NCase-> Bool -> Prep ;
|
||||||
mkPrep : Str -> NCase -> Prep;
|
mkPrep : Str -> NCase -> Prep;
|
||||||
};
|
};
|
||||||
@@ -173,7 +175,7 @@ lock_PN = <>
|
|||||||
Acc = Ac ;
|
Acc = Ac ;
|
||||||
Dat = Da ;
|
Dat = Da ;
|
||||||
Gen = Ge ;
|
Gen = Ge ;
|
||||||
|
Nom = No ;
|
||||||
|
|
||||||
Preposition = Compl ;
|
Preposition = Compl ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user