This commit is contained in:
ramona.enache
2010-04-26 09:32:05 +00:00
parent 98555ed6b3
commit 9f5b6ad8d9
7 changed files with 44 additions and 26 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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