forked from GitHub/gf-core
final changes Romanian resource grammar and phrasebook
This commit is contained in:
@@ -54,7 +54,7 @@ concrete CatRon of Cat =
|
||||
c1, c2 : Clitics => Str ;
|
||||
a : Agr ;
|
||||
isPol : Bool ;
|
||||
poss : Number => Gender => Str } ;
|
||||
poss : Number => Gender => ACase => Str } ;
|
||||
|
||||
NP = NounPhrase ;
|
||||
|
||||
|
||||
@@ -8,7 +8,11 @@ concrete ExtraRon of ExtraRonAbs = CatRon **
|
||||
in
|
||||
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
|
||||
mkClause ss np.isPol (agrP3 Masc Sg) (insertAccClit vp np) ;
|
||||
|
||||
|
||||
@@ -75,7 +75,7 @@ lin
|
||||
fear_VS = mkVS (v_besch100 "teme") ;
|
||||
fear_V2 = mmkV2 (mkRVAcc (mkV100 "teme")) (mkPrep "de" Ac) ;
|
||||
find_V2 = dirV2 (mkV "găsi") ;
|
||||
fish_N = mkN "peşte" masculine ;
|
||||
fish_N = mkN "peşte" "peşti" masculine ;
|
||||
floor_N = mkN "podea" ;
|
||||
forget_V2 = dirV2 (v_besch18 "uita") ;
|
||||
fridge_N = mkN "frigider" ;
|
||||
@@ -303,7 +303,7 @@ wide_A = mkA "adânc" ;
|
||||
wind_N = mkNR "vânt" ;
|
||||
wing_N = mkN "aripă" ;
|
||||
worm_N = mkN "vierme" masculine;
|
||||
year_N = mkN "an" masculine;
|
||||
year_N = mkN "an" "ani" masculine;
|
||||
bite_V2 = dirV2 (v_besch22 "muşca") ;
|
||||
blow_V = v_besch55 "sufla" ;
|
||||
breathe_V = v_besch17 "respira" ;
|
||||
|
||||
@@ -294,7 +294,11 @@ oper adjDimin : Str -> Adj = \s ->
|
||||
in
|
||||
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
|
||||
-- o -> oa (Ex : frumos -> frumoasă)
|
||||
-- e -> ea / ie -> ia (Ex : des -> deasă)
|
||||
@@ -434,6 +438,7 @@ mkAdjReg : Str -> Adj = \s ->
|
||||
x + "e" => adjMare s;
|
||||
x + "iu" => adjAuriu s;
|
||||
x + "el" => adjDimin s;
|
||||
x + "an" => adjNat s;
|
||||
_ => mkAdjSpec s (mkFemSg radF) (mkStemPlReg rad) (mkFemAdj rad)
|
||||
|
||||
};
|
||||
|
||||
@@ -9,7 +9,7 @@ concrete NounRon of Noun =
|
||||
n = det.n;
|
||||
gg = agrGender cn.g 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);
|
||||
st= if_then_else Species det.isDef Def Indef;
|
||||
rs = if_then_else Species det.hasRef Def Indef
|
||||
@@ -147,8 +147,8 @@ in {
|
||||
-- assume that it refers to people
|
||||
|
||||
PossPron p = {
|
||||
s = \\_,n,g,c => p.poss ! n ! g ;
|
||||
sp = \\ n,g,c => artPos g n 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 ! c ;
|
||||
isDef = True ;
|
||||
isPost = True ;
|
||||
hasRef = True
|
||||
@@ -244,7 +244,7 @@ in {
|
||||
g = f.g ;
|
||||
a = f.a ;
|
||||
needsRefForm = False ;
|
||||
isComp = getClit f.a
|
||||
isComp = False
|
||||
} ;
|
||||
|
||||
ComplN3 f x = {
|
||||
@@ -253,7 +253,7 @@ in {
|
||||
c2 = f.c3;
|
||||
a = f.a ;
|
||||
needsRefForm = False ;
|
||||
isComp = getClit f.a
|
||||
isComp = False
|
||||
} ;
|
||||
|
||||
AdjCN ap cn =
|
||||
@@ -269,7 +269,7 @@ in {
|
||||
g = g ;
|
||||
a = cn.a ;
|
||||
needsRefForm = cn.needsRefForm ;
|
||||
isComp = getClit cn.a
|
||||
isComp = True
|
||||
} ;
|
||||
|
||||
|
||||
@@ -278,7 +278,7 @@ in {
|
||||
g = cn.g ;
|
||||
a = cn.a ;
|
||||
needsRefForm = cn.needsRefForm;
|
||||
isComp = False
|
||||
isComp = True
|
||||
} ;
|
||||
|
||||
SentCN cn sc = let g = cn.g in {
|
||||
@@ -286,7 +286,7 @@ in {
|
||||
g = g ;
|
||||
a = cn.a ;
|
||||
needsRefForm = cn.needsRefForm;
|
||||
isComp = False
|
||||
isComp = True
|
||||
} ;
|
||||
|
||||
AdvCN cn sc = let g = cn.g in {
|
||||
@@ -294,7 +294,7 @@ in {
|
||||
g = g;
|
||||
a = cn.a ;
|
||||
needsRefForm = cn.needsRefForm;
|
||||
isComp = False
|
||||
isComp = True
|
||||
} ;
|
||||
|
||||
ApposCN cn np = let g = cn.g in {
|
||||
@@ -302,7 +302,7 @@ in {
|
||||
g = g;
|
||||
a = cn.a ;
|
||||
needsRefForm = cn.needsRefForm;
|
||||
isComp = False
|
||||
isComp = True
|
||||
} ;
|
||||
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ param Placement = indep | attr ;
|
||||
lincat Digit = {s : CardOrd => DForm => Str ; size : Size} ;
|
||||
lincat Sub10 = {s : CardOrd => DForm => 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 } ;
|
||||
|
||||
|
||||
@@ -174,12 +174,11 @@ lin pot2 d =
|
||||
NCard g => \\_,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mksute d.size) ;
|
||||
NOrd g => \\_,_ => d.s ! (NCard Fem) ! unit ! indep ++ (mkSute d.size g)
|
||||
};
|
||||
|
||||
size = pl} ;
|
||||
|
||||
lin pot2plus d e =
|
||||
{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 ;
|
||||
|
||||
@@ -193,8 +192,8 @@ lin pot3 n =
|
||||
|
||||
|
||||
lin pot3plus n m =
|
||||
{s = \\c, f, p => mkmie n.size (n.s ! (NCard Fem) ! f ! indep) ++ m.s ! c ! f ! attr;
|
||||
size = pl
|
||||
{s = \\c, f, p => mkmie n.size (n.s ! (NCard Fem) ! f ! indep) ++ m.s ! c ! f ! attr;
|
||||
size = m.size
|
||||
};
|
||||
|
||||
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 ;
|
||||
a = {g = g ; n = n ; p = p} ;
|
||||
poss = table {Sg => table {Masc => meuP ; Fem => mea};
|
||||
Pl => table {Masc => mei ; Fem => mele}
|
||||
};
|
||||
poss = \\n,g,c => case <n,g,c> of
|
||||
{<Sg,Masc,AGenDat> => meuP ;
|
||||
<Sg,Masc,_> => meuP ;
|
||||
<Sg,Fem,AGenDat> => mele ;
|
||||
<Sg,Fem,_> => mea;
|
||||
<Pl,Masc,_> => mei;
|
||||
<Pl,Fem,_> => mele
|
||||
} ;
|
||||
isPol = False;
|
||||
lock_Pron = <>};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user