mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-26 19:28:54 -06:00
final changes Romanian resource grammar and phrasebook
This commit is contained in:
@@ -54,7 +54,7 @@ concrete CatRon of Cat =
|
|||||||
c1, c2 : Clitics => Str ;
|
c1, c2 : Clitics => Str ;
|
||||||
a : Agr ;
|
a : Agr ;
|
||||||
isPol : Bool ;
|
isPol : Bool ;
|
||||||
poss : Number => Gender => Str } ;
|
poss : Number => Gender => ACase => Str } ;
|
||||||
|
|
||||||
NP = NounPhrase ;
|
NP = NounPhrase ;
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,11 @@ concrete ExtraRon of ExtraRonAbs = CatRon **
|
|||||||
in
|
in
|
||||||
mkClause ss np.isPol np2.a (insertDatClit (insertSimpObj (\\_ => (np2.s ! Nom).comp) vp) np);
|
mkClause ss np.isPol np2.a (insertDatClit (insertSimpObj (\\_ => (np2.s ! Nom).comp) vp) np);
|
||||||
|
|
||||||
AccSubjCl np vp = let ss = if_then_Str np.isPronoun "" (np.s ! Ac).comp
|
AccSubjCl np vp = let s1 = case np.nForm of
|
||||||
|
{HasRef False => "";
|
||||||
|
_ => "pe"};
|
||||||
|
ss = if_then_Str np.isPronoun "" (s1 ++ (np.s ! Ac).comp)
|
||||||
|
|
||||||
in
|
in
|
||||||
mkClause ss np.isPol (agrP3 Masc Sg) (insertAccClit vp np) ;
|
mkClause ss np.isPol (agrP3 Masc Sg) (insertAccClit vp np) ;
|
||||||
|
|
||||||
|
|||||||
@@ -75,7 +75,7 @@ lin
|
|||||||
fear_VS = mkVS (v_besch100 "teme") ;
|
fear_VS = mkVS (v_besch100 "teme") ;
|
||||||
fear_V2 = mmkV2 (mkRVAcc (mkV100 "teme")) (mkPrep "de" Ac) ;
|
fear_V2 = mmkV2 (mkRVAcc (mkV100 "teme")) (mkPrep "de" Ac) ;
|
||||||
find_V2 = dirV2 (mkV "găsi") ;
|
find_V2 = dirV2 (mkV "găsi") ;
|
||||||
fish_N = mkN "peşte" masculine ;
|
fish_N = mkN "peşte" "peşti" masculine ;
|
||||||
floor_N = mkN "podea" ;
|
floor_N = mkN "podea" ;
|
||||||
forget_V2 = dirV2 (v_besch18 "uita") ;
|
forget_V2 = dirV2 (v_besch18 "uita") ;
|
||||||
fridge_N = mkN "frigider" ;
|
fridge_N = mkN "frigider" ;
|
||||||
@@ -303,7 +303,7 @@ wide_A = mkA "adânc" ;
|
|||||||
wind_N = mkNR "vânt" ;
|
wind_N = mkNR "vânt" ;
|
||||||
wing_N = mkN "aripă" ;
|
wing_N = mkN "aripă" ;
|
||||||
worm_N = mkN "vierme" masculine;
|
worm_N = mkN "vierme" masculine;
|
||||||
year_N = mkN "an" masculine;
|
year_N = mkN "an" "ani" masculine;
|
||||||
bite_V2 = dirV2 (v_besch22 "muşca") ;
|
bite_V2 = dirV2 (v_besch22 "muşca") ;
|
||||||
blow_V = v_besch55 "sufla" ;
|
blow_V = v_besch55 "sufla" ;
|
||||||
breathe_V = v_besch17 "respira" ;
|
breathe_V = v_besch17 "respira" ;
|
||||||
|
|||||||
@@ -294,6 +294,10 @@ oper adjDimin : Str -> Adj = \s ->
|
|||||||
in
|
in
|
||||||
mkAdjSpec s f pl plf;
|
mkAdjSpec s f pl plf;
|
||||||
|
|
||||||
|
oper adjNat : Str -> Adj = \s ->
|
||||||
|
let f = Predef.tk 2 s + "en"
|
||||||
|
in
|
||||||
|
mkAdjSpec s (s+"ă") (f+"i") (f+"e");
|
||||||
|
|
||||||
-- the phonetical mutations that occur in Romanian (Singular Masculine -> Singular Feminine) are
|
-- the phonetical mutations that occur in Romanian (Singular Masculine -> Singular Feminine) are
|
||||||
-- o -> oa (Ex : frumos -> frumoasă)
|
-- o -> oa (Ex : frumos -> frumoasă)
|
||||||
@@ -434,6 +438,7 @@ mkAdjReg : Str -> Adj = \s ->
|
|||||||
x + "e" => adjMare s;
|
x + "e" => adjMare s;
|
||||||
x + "iu" => adjAuriu s;
|
x + "iu" => adjAuriu s;
|
||||||
x + "el" => adjDimin s;
|
x + "el" => adjDimin s;
|
||||||
|
x + "an" => adjNat s;
|
||||||
_ => mkAdjSpec s (mkFemSg radF) (mkStemPlReg rad) (mkFemAdj rad)
|
_ => mkAdjSpec s (mkFemSg radF) (mkStemPlReg rad) (mkFemAdj rad)
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -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 cn.needsRefForm (orB (andB (getClit cn.a) det.hasRef) (andB det.isDef cn.isComp));
|
hr = orB cn.needsRefForm (andB (getClit cn.a) (orB 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
|
||||||
@@ -147,8 +147,8 @@ in {
|
|||||||
-- assume that it refers to people
|
-- assume that it refers to people
|
||||||
|
|
||||||
PossPron p = {
|
PossPron p = {
|
||||||
s = \\_,n,g,c => p.poss ! n ! g ;
|
s = \\_,n,g,c => p.poss ! n ! g ! c;
|
||||||
sp = \\ n,g,c => artPos g n c ++ p.poss ! n ! g ;
|
sp = \\ n,g,c => artPos g n c ++ p.poss ! n ! g ! c ;
|
||||||
isDef = True ;
|
isDef = True ;
|
||||||
isPost = True ;
|
isPost = True ;
|
||||||
hasRef = True
|
hasRef = True
|
||||||
@@ -244,7 +244,7 @@ in {
|
|||||||
g = f.g ;
|
g = f.g ;
|
||||||
a = f.a ;
|
a = f.a ;
|
||||||
needsRefForm = False ;
|
needsRefForm = False ;
|
||||||
isComp = getClit f.a
|
isComp = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ComplN3 f x = {
|
ComplN3 f x = {
|
||||||
@@ -253,7 +253,7 @@ in {
|
|||||||
c2 = f.c3;
|
c2 = f.c3;
|
||||||
a = f.a ;
|
a = f.a ;
|
||||||
needsRefForm = False ;
|
needsRefForm = False ;
|
||||||
isComp = getClit f.a
|
isComp = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdjCN ap cn =
|
AdjCN ap cn =
|
||||||
@@ -269,7 +269,7 @@ in {
|
|||||||
g = g ;
|
g = g ;
|
||||||
a = cn.a ;
|
a = cn.a ;
|
||||||
needsRefForm = cn.needsRefForm ;
|
needsRefForm = cn.needsRefForm ;
|
||||||
isComp = getClit cn.a
|
isComp = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
@@ -278,7 +278,7 @@ in {
|
|||||||
g = cn.g ;
|
g = cn.g ;
|
||||||
a = cn.a ;
|
a = cn.a ;
|
||||||
needsRefForm = cn.needsRefForm;
|
needsRefForm = cn.needsRefForm;
|
||||||
isComp = False
|
isComp = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
SentCN cn sc = let g = cn.g in {
|
SentCN cn sc = let g = cn.g in {
|
||||||
@@ -286,7 +286,7 @@ in {
|
|||||||
g = g ;
|
g = g ;
|
||||||
a = cn.a ;
|
a = cn.a ;
|
||||||
needsRefForm = cn.needsRefForm;
|
needsRefForm = cn.needsRefForm;
|
||||||
isComp = False
|
isComp = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
AdvCN cn sc = let g = cn.g in {
|
AdvCN cn sc = let g = cn.g in {
|
||||||
@@ -294,7 +294,7 @@ in {
|
|||||||
g = g;
|
g = g;
|
||||||
a = cn.a ;
|
a = cn.a ;
|
||||||
needsRefForm = cn.needsRefForm;
|
needsRefForm = cn.needsRefForm;
|
||||||
isComp = False
|
isComp = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
ApposCN cn np = let g = cn.g in {
|
ApposCN cn np = let g = cn.g in {
|
||||||
@@ -302,7 +302,7 @@ in {
|
|||||||
g = g;
|
g = g;
|
||||||
a = cn.a ;
|
a = cn.a ;
|
||||||
needsRefForm = cn.needsRefForm;
|
needsRefForm = cn.needsRefForm;
|
||||||
isComp = False
|
isComp = True
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ param Placement = indep | attr ;
|
|||||||
lincat Digit = {s : CardOrd => DForm => Str ; size : Size} ;
|
lincat Digit = {s : CardOrd => DForm => Str ; size : Size} ;
|
||||||
lincat Sub10 = {s : CardOrd => DForm => Placement => Str ; size : Size} ;
|
lincat Sub10 = {s : CardOrd => DForm => Placement => Str ; size : Size} ;
|
||||||
lincat Sub100 = {s : CardOrd => NumF => Placement => Str ; size : Size} ;
|
lincat Sub100 = {s : CardOrd => NumF => Placement => Str ; size : Size} ;
|
||||||
lincat Sub1000 = {s : CardOrd => NumF => Placement => Str ; size : Size} ;
|
lincat Sub1000 = {s : CardOrd => NumF => Placement => Str ; size : Size } ;
|
||||||
lincat Sub1000000 = { s : CardOrd => NumF => Placement => Str; size : Size } ;
|
lincat Sub1000000 = { s : CardOrd => NumF => Placement => Str; size : Size } ;
|
||||||
|
|
||||||
|
|
||||||
@@ -174,12 +174,11 @@ lin pot2 d =
|
|||||||
NCard g => \\_,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mksute d.size) ;
|
NCard g => \\_,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mksute d.size) ;
|
||||||
NOrd g => \\_,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mkSute d.size g)
|
NOrd g => \\_,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mkSute d.size g)
|
||||||
};
|
};
|
||||||
|
|
||||||
size = pl} ;
|
size = pl} ;
|
||||||
|
|
||||||
lin pot2plus d e =
|
lin pot2plus d e =
|
||||||
{s = \\c,f,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mksute d.size) ++ e.s ! c ! f ! attr ;
|
{s = \\c,f,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mksute d.size) ++ e.s ! c ! f ! attr ;
|
||||||
size = pl} ;
|
size = e.size} ;
|
||||||
|
|
||||||
lin pot2as3 n = n ;
|
lin pot2as3 n = n ;
|
||||||
|
|
||||||
@@ -194,7 +193,7 @@ lin pot3 n =
|
|||||||
|
|
||||||
lin pot3plus n m =
|
lin pot3plus n m =
|
||||||
{s = \\c, f, p => mkmie n.size (n.s ! (NCard Fem) ! f ! indep) ++ m.s ! c ! f ! attr;
|
{s = \\c, f, p => mkmie n.size (n.s ! (NCard Fem) ! f ! indep) ++ m.s ! c ! f ! attr;
|
||||||
size = pl
|
size = m.size
|
||||||
};
|
};
|
||||||
|
|
||||||
oper mksute : Size -> Str = \sz -> table {sg => "sută" ; _ => "sute" } ! sz ;
|
oper mksute : Size -> Str = \sz -> table {sg => "sută" ; _ => "sute" } ! sz ;
|
||||||
|
|||||||
@@ -516,9 +516,14 @@ mkPronoun :(_,_,_,_,_,_,_,_,_ : Str) -> Gender -> Number -> Person -> Pron =\eu,
|
|||||||
} ;
|
} ;
|
||||||
c1 = \\c => (cliticsAc g n p).s ! c ; c2 = \\c => (cliticsDa g n p).s ! c ;
|
c1 = \\c => (cliticsAc g n p).s ! c ; c2 = \\c => (cliticsDa g n p).s ! c ;
|
||||||
a = {g = g ; n = n ; p = p} ;
|
a = {g = g ; n = n ; p = p} ;
|
||||||
poss = table {Sg => table {Masc => meuP ; Fem => mea};
|
poss = \\n,g,c => case <n,g,c> of
|
||||||
Pl => table {Masc => mei ; Fem => mele}
|
{<Sg,Masc,AGenDat> => meuP ;
|
||||||
};
|
<Sg,Masc,_> => meuP ;
|
||||||
|
<Sg,Fem,AGenDat> => mele ;
|
||||||
|
<Sg,Fem,_> => mea;
|
||||||
|
<Pl,Masc,_> => mei;
|
||||||
|
<Pl,Fem,_> => mele
|
||||||
|
} ;
|
||||||
isPol = False;
|
isPol = False;
|
||||||
lock_Pron = <>};
|
lock_Pron = <>};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user