mirror of
https://github.com/GrammaticalFramework/gf-rgl.git
synced 2026-05-27 17:08:54 -06:00
fix the word order for superlatives
This commit is contained in:
@@ -6,6 +6,6 @@ concrete CompatibilityCat of Compatibility = CatCat ** open Prelude, CommonRoman
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
|
NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
|
||||||
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "."} ; ---
|
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "." ; s2 = \\_ => []} ; ---
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -228,4 +228,7 @@ oper
|
|||||||
param
|
param
|
||||||
HasArt = NoArt | UseArt ;
|
HasArt = NoArt | UseArt ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
superlCanBePost = False ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,13 +33,13 @@ lin
|
|||||||
every_Det = {
|
every_Det = {
|
||||||
s,sp = \\_,_ => "cada";
|
s,sp = \\_,_ => "cada";
|
||||||
spn =\\c => prepCase c ++ "tot" ;
|
spn =\\c => prepCase c ++ "tot" ;
|
||||||
n = Sg ; s2 = [] ; isNeg = False} ;
|
n = Sg ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
everything_NP = pn2np (mkPN "tot" Masc) ;
|
everything_NP = pn2np (mkPN "tot" Masc) ;
|
||||||
everywhere_Adv = ss ["a tot arreu"] ;
|
everywhere_Adv = ss ["a tot arreu"] ;
|
||||||
few_Det = {
|
few_Det = {
|
||||||
s,sp = \\g,c => prepCase c ++ genForms "pocs" "poques" ! g ;
|
s,sp = \\g,c => prepCase c ++ genForms "pocs" "poques" ! g ;
|
||||||
spn = \\c => prepCase c ++ "pocs" ;
|
spn = \\c => prepCase c ++ "pocs" ;
|
||||||
n = Pl ; s2 = [] ; isNeg = False} ;
|
n = Pl ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
--- first_Ord = {s = \\ag => (regA "primer").s ! Posit ! AF ag.g ag.n} ;
|
--- first_Ord = {s = \\ag => (regA "primer").s ! Posit ! AF ag.g ag.n} ;
|
||||||
for_Prep = mkPrep ["per a"] ;
|
for_Prep = mkPrep ["per a"] ;
|
||||||
from_Prep = complGen ; ---
|
from_Prep = complGen ; ---
|
||||||
@@ -71,14 +71,14 @@ lin
|
|||||||
many_Det = {
|
many_Det = {
|
||||||
s,sp = \\g,c => prepCase c ++ genForms "molts" "moltes" ! g ;
|
s,sp = \\g,c => prepCase c ++ genForms "molts" "moltes" ! g ;
|
||||||
spn = \\c => prepCase c ++ "molts" ;
|
spn = \\c => prepCase c ++ "molts" ;
|
||||||
n = Pl ; s2 = [] ; isNeg = False} ;
|
n = Pl ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
more_CAdv = X.mkCAdv "més" conjThan ;
|
more_CAdv = X.mkCAdv "més" conjThan ;
|
||||||
most_Predet = {s = \\_,c => prepCase c ++ ["la majoria"] ; c = CPrep P_de ;
|
most_Predet = {s = \\_,c => prepCase c ++ ["la majoria"] ; c = CPrep P_de ;
|
||||||
a = PNoAg} ;
|
a = PNoAg} ;
|
||||||
much_Det = {
|
much_Det = {
|
||||||
s,sp = \\g,c => prepCase c ++ genForms "molt" "molta" ! g ;
|
s,sp = \\g,c => prepCase c ++ genForms "molt" "molta" ! g ;
|
||||||
spn = \\c => prepCase c ++ "molt" ;
|
spn = \\c => prepCase c ++ "molt" ;
|
||||||
n = Sg ; s2 = [] ; isNeg = False} ;
|
n = Sg ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
must_VV = deVV (verbV (haver_59 "haver" True)) ;
|
must_VV = deVV (verbV (haver_59 "haver" True)) ;
|
||||||
no_Utt = ss "no" ;
|
no_Utt = ss "no" ;
|
||||||
on_Prep = mkPrep "sobre" ;
|
on_Prep = mkPrep "sobre" ;
|
||||||
@@ -101,11 +101,11 @@ lin
|
|||||||
somePl_Det = {
|
somePl_Det = {
|
||||||
s,sp = \\g,c => prepCase c ++ genForms "alguns" "algunes" ! g ;
|
s,sp = \\g,c => prepCase c ++ genForms "alguns" "algunes" ! g ;
|
||||||
spn = \\c => prepCase c ++ "alguns" ;
|
spn = \\c => prepCase c ++ "alguns" ;
|
||||||
n = Pl ; s2 = [] ; isNeg = False} ;
|
n = Pl ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
someSg_Det = {
|
someSg_Det = {
|
||||||
s,sp = \\g,c => prepCase c ++ genForms "algun" "alguna" ! g ;
|
s,sp = \\g,c => prepCase c ++ genForms "algun" "alguna" ! g ;
|
||||||
spn = \\c => prepCase c ++ "quelcom" ;
|
spn = \\c => prepCase c ++ "quelcom" ;
|
||||||
n = Sg ; s2 = [] ; isNeg = False} ;
|
n = Sg ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
something_NP = pn2np (mkPN ["quelcom"] Masc) ;
|
something_NP = pn2np (mkPN ["quelcom"] Masc) ;
|
||||||
somewhere_Adv = ss ["a algun lloc"] ;
|
somewhere_Adv = ss ["a algun lloc"] ;
|
||||||
that_Quant =
|
that_Quant =
|
||||||
|
|||||||
@@ -6,6 +6,6 @@ concrete CompatibilityFre of Compatibility = CatFre ** open Prelude, CommonRoman
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
|
NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
|
||||||
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "."} ; ---
|
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "." ; s2 = \\_ => []} ; ---
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -341,4 +341,7 @@ instance DiffFre of DiffRomance - [
|
|||||||
param
|
param
|
||||||
HasArt = NoArt | UseArt | AlwaysArt ;
|
HasArt = NoArt | UseArt | AlwaysArt ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
superlCanBePost = False ;
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ concrete ExtraFre of ExtraFreAbs = ExtraRomanceFre **
|
|||||||
s,sp = \\g,c => prepCase c ++ genForms "tout" "toute" ! g ;
|
s,sp = \\g,c => prepCase c ++ genForms "tout" "toute" ! g ;
|
||||||
spn= \\c => prepCase c ++ "tout" ;
|
spn= \\c => prepCase c ++ "tout" ;
|
||||||
n = Sg ;
|
n = Sg ;
|
||||||
s2 = [] ;
|
s2 = \\c => [] ;
|
||||||
isNeg = False
|
isNeg = False
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -42,12 +42,12 @@ oper
|
|||||||
mkDet : Str -> Det = \s -> lin Det {
|
mkDet : Str -> Det = \s -> lin Det {
|
||||||
s,sp = \\_,c => prepCase c ++ s ;
|
s,sp = \\_,c => prepCase c ++ s ;
|
||||||
spn = \\c => prepCase c ++ s ;
|
spn = \\c => prepCase c ++ s ;
|
||||||
n = Sg ; s2 = [] ; isNeg = False
|
n = Sg ; s2 = \\g => [] ; isNeg = False
|
||||||
} ;
|
} ;
|
||||||
mkDet : Str -> Str -> Number -> Det = \m,f,n -> lin Det {
|
mkDet : Str -> Str -> Number -> Det = \m,f,n -> lin Det {
|
||||||
s,sp = \\g,c => prepCase c ++ case g of {Masc => m ; Fem => f} ;
|
s,sp = \\g,c => prepCase c ++ case g of {Masc => m ; Fem => f} ;
|
||||||
spn = \\c => prepCase c ++ m ;
|
spn = \\c => prepCase c ++ m ;
|
||||||
n = n ; s2 = [] ; isNeg = False
|
n = n ; s2 = \\g => [] ; isNeg = False
|
||||||
} ;
|
} ;
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ lin
|
|||||||
sp = \\g,c => prepCase c ++ genForms "chacun" "chacune" ! g ;
|
sp = \\g,c => prepCase c ++ genForms "chacun" "chacune" ! g ;
|
||||||
spn= \\c => prepCase c ++ "tout" ;
|
spn= \\c => prepCase c ++ "tout" ;
|
||||||
n = Sg ;
|
n = Sg ;
|
||||||
s2 = [] ;
|
s2 = \\g => [] ;
|
||||||
isNeg = False
|
isNeg = False
|
||||||
} ;
|
} ;
|
||||||
everything_NP = pn2np (mkPN ["tout"] Masc) ;
|
everything_NP = pn2np (mkPN ["tout"] Masc) ;
|
||||||
@@ -46,7 +46,7 @@ lin
|
|||||||
few_Det = {
|
few_Det = {
|
||||||
s,sp = \\g,c => prepCase c ++ "peu" ++ elisDe ;
|
s,sp = \\g,c => prepCase c ++ "peu" ++ elisDe ;
|
||||||
spn = \\c => prepCase c ++ "peu" ++ elisDe ;
|
spn = \\c => prepCase c ++ "peu" ++ elisDe ;
|
||||||
n = Pl ; s2 = [] ; isNeg = False} ;
|
n = Pl ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
--- DEPREC first_Ord = {s = \\ag => (regA "premier").s ! Posit ! AF ag.g ag.n} ;
|
--- DEPREC first_Ord = {s = \\ag => (regA "premier").s ! Posit ! AF ag.g ag.n} ;
|
||||||
for_Prep = mkPreposition "pour" ;
|
for_Prep = mkPreposition "pour" ;
|
||||||
from_Prep = complGen ; ---
|
from_Prep = complGen ; ---
|
||||||
@@ -75,12 +75,12 @@ lin
|
|||||||
many_Det = {
|
many_Det = {
|
||||||
s,sp = \\_,c => prepCase c ++ "plusieurs" ;
|
s,sp = \\_,c => prepCase c ++ "plusieurs" ;
|
||||||
spn = \\c => prepCase c ++ "plusieurs" ;
|
spn = \\c => prepCase c ++ "plusieurs" ;
|
||||||
n = Pl ; s2 = [] ; isNeg = False} ;
|
n = Pl ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
more_CAdv = X.mkCAdv "plus" conjThan ;
|
more_CAdv = X.mkCAdv "plus" conjThan ;
|
||||||
most_Predet = {s = \\_,c => prepCase c ++ ["la plupart"] ; c = CPrep P_de ; a = PNoAg} ;
|
most_Predet = {s = \\_,c => prepCase c ++ ["la plupart"] ; c = CPrep P_de ; a = PNoAg} ;
|
||||||
much_Det = {s,sp = \\_,c => prepCase c ++ "beaucoup" ++ elisDe ;
|
much_Det = {s,sp = \\_,c => prepCase c ++ "beaucoup" ++ elisDe ;
|
||||||
spn = \\c => prepCase c ++ "beaucoup" ++ elisDe ;
|
spn = \\c => prepCase c ++ "beaucoup" ++ elisDe ;
|
||||||
n = Pl ; s2 = [] ; isNeg = False} ;
|
n = Pl ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
must_VV = mkVV (devoir_V2 ** {lock_V = <>}) ;
|
must_VV = mkVV (devoir_V2 ** {lock_V = <>}) ;
|
||||||
---b no_Phr = ss "non" ;
|
---b no_Phr = ss "non" ;
|
||||||
no_Utt = ss "non" ;
|
no_Utt = ss "non" ;
|
||||||
@@ -103,11 +103,11 @@ lin
|
|||||||
somePl_Det = {
|
somePl_Det = {
|
||||||
s,sp = \\_,c => prepCase c ++ "quelques" ;
|
s,sp = \\_,c => prepCase c ++ "quelques" ;
|
||||||
spn = \\c => prepCase c ++ "quelque chose" ;
|
spn = \\c => prepCase c ++ "quelque chose" ;
|
||||||
n = Pl ; s2 = [] ; isNeg = False} ; ---- sp
|
n = Pl ; s2 = \\g => [] ; isNeg = False} ; ---- sp
|
||||||
someSg_Det = {
|
someSg_Det = {
|
||||||
s,sp = \\_,c => prepCase c ++ "quelque" ;
|
s,sp = \\_,c => prepCase c ++ "quelque" ;
|
||||||
spn = \\c => prepCase c ++ "quelque chose" ;
|
spn = \\c => prepCase c ++ "quelque chose" ;
|
||||||
n = Sg ; s2 = [] ; isNeg = False} ; ----sp
|
n = Sg ; s2 = \\g => [] ; isNeg = False} ; ----sp
|
||||||
something_NP = pn2np (mkPN ["quelque chose"] Masc) ;
|
something_NP = pn2np (mkPN ["quelque chose"] Masc) ;
|
||||||
somewhere_Adv = ss ["quelque part"] ; --- ne - pas
|
somewhere_Adv = ss ["quelque part"] ; --- ne - pas
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,6 @@ concrete CompatibilityIta of Compatibility = CatIta ** open Prelude, CommonRoman
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
|
NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
|
||||||
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "."} ; ---
|
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "." ; s2 = \\_ => []} ; ---
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -254,4 +254,7 @@ instance DiffIta of DiffRomance - [contractInf] = open CommonRomance, PhonoIta,
|
|||||||
param
|
param
|
||||||
HasArt = NoArt | UseArt ;
|
HasArt = NoArt | UseArt ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
superlCanBePost = True ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ oper
|
|||||||
s,sp = \\_,_ => piu ;
|
s,sp = \\_,_ => piu ;
|
||||||
spn = \\_ => piu ;
|
spn = \\_ => piu ;
|
||||||
n = n ;
|
n = n ;
|
||||||
s2 = [] ;
|
s2 = \\g => [] ;
|
||||||
isNeg = False
|
isNeg = False
|
||||||
} ;
|
} ;
|
||||||
-- Inflects for number
|
-- Inflects for number
|
||||||
@@ -77,7 +77,7 @@ oper
|
|||||||
} ;
|
} ;
|
||||||
spn = \\_ => alcuni ;
|
spn = \\_ => alcuni ;
|
||||||
n = n ;
|
n = n ;
|
||||||
s2 = [] ;
|
s2 = \\g => [] ;
|
||||||
isNeg = False
|
isNeg = False
|
||||||
} ;
|
} ;
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -34,13 +34,13 @@ lin
|
|||||||
every_Det = {
|
every_Det = {
|
||||||
s,sp = \\_,_ => "ogni" ;
|
s,sp = \\_,_ => "ogni" ;
|
||||||
spn = \\c => prepCase c ++ "tutto" ;
|
spn = \\c => prepCase c ++ "tutto" ;
|
||||||
n = Sg ; s2 = [] ; isNeg = False} ;
|
n = Sg ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
everything_NP = pn2np (mkPN ["tutto"] Masc) ;
|
everything_NP = pn2np (mkPN ["tutto"] Masc) ;
|
||||||
everywhere_Adv = ss "dappertutto" ;
|
everywhere_Adv = ss "dappertutto" ;
|
||||||
few_Det = {
|
few_Det = {
|
||||||
s,sp = \\g,c => prepCase c ++ genForms "pochi" "poche" ! g ;
|
s,sp = \\g,c => prepCase c ++ genForms "pochi" "poche" ! g ;
|
||||||
spn = \\c => prepCase c ++ "pochi" ;
|
spn = \\c => prepCase c ++ "pochi" ;
|
||||||
n = Pl ; s2 = [] ; isNeg = False} ;
|
n = Pl ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
---- first_Ord = {s = \\ag => (regA "primo").s ! Posit ! AF ag.g ag.n} ;
|
---- first_Ord = {s = \\ag => (regA "primo").s ! Posit ! AF ag.g ag.n} ;
|
||||||
for_Prep = mkPrep "per" ;
|
for_Prep = mkPrep "per" ;
|
||||||
from_Prep = da_Prep ;
|
from_Prep = da_Prep ;
|
||||||
@@ -69,14 +69,14 @@ lin
|
|||||||
many_Det = {
|
many_Det = {
|
||||||
s,sp = \\g,c => prepCase c ++ genForms "molti" "molte" ! g ;
|
s,sp = \\g,c => prepCase c ++ genForms "molti" "molte" ! g ;
|
||||||
spn = \\c => prepCase c ++ "molto" ;
|
spn = \\c => prepCase c ++ "molto" ;
|
||||||
n = Pl ; s2 = [] ; isNeg = False} ;
|
n = Pl ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
more_CAdv = X.mkCAdv "più" conjThan ;
|
more_CAdv = X.mkCAdv "più" conjThan ;
|
||||||
most_Predet = {s = \\_,c => prepCase c ++ ["la maggior parte"] ; c = CPrep P_di ;
|
most_Predet = {s = \\_,c => prepCase c ++ ["la maggior parte"] ; c = CPrep P_di ;
|
||||||
a = PNoAg} ;
|
a = PNoAg} ;
|
||||||
much_Det = {
|
much_Det = {
|
||||||
s,sp = \\g,c => prepCase c ++ genForms "molto" "molta" ! g ;
|
s,sp = \\g,c => prepCase c ++ genForms "molto" "molta" ! g ;
|
||||||
spn = \\c => prepCase c ++ "molto" ;
|
spn = \\c => prepCase c ++ "molto" ;
|
||||||
n = Sg ; s2 = [] ; isNeg = False} ;
|
n = Sg ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
must_VV = mkVV (verboV (dovere_47 "dovere")) ;
|
must_VV = mkVV (verboV (dovere_47 "dovere")) ;
|
||||||
no_Utt = ss "no" ;
|
no_Utt = ss "no" ;
|
||||||
on_Prep = {s = [] ; c = CPrep P_su ; isDir = False} ;
|
on_Prep = {s = [] ; c = CPrep P_su ; isDir = False} ;
|
||||||
@@ -98,11 +98,11 @@ lin
|
|||||||
somePl_Det = {
|
somePl_Det = {
|
||||||
s,sp = \\_,c => prepCase c ++ "qualche" ;
|
s,sp = \\_,c => prepCase c ++ "qualche" ;
|
||||||
spn = \\c => prepCase c ++ "qualche cosa" ;
|
spn = \\c => prepCase c ++ "qualche cosa" ;
|
||||||
n = Pl ; s2 = [] ; isNeg = False} ;
|
n = Pl ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
someSg_Det = {
|
someSg_Det = {
|
||||||
s,sp = \\_,c => prepCase c ++ "qualche" ;
|
s,sp = \\_,c => prepCase c ++ "qualche" ;
|
||||||
spn = \\c => prepCase c ++ "qualche cosa" ;
|
spn = \\c => prepCase c ++ "qualche cosa" ;
|
||||||
n = Sg ; s2 = [] ; isNeg = False} ;
|
n = Sg ; s2 = \\g => [] ; isNeg = False} ;
|
||||||
something_NP = pn2np (mkPN ["qualche cosa"] Masc) ;
|
something_NP = pn2np (mkPN ["qualche cosa"] Masc) ;
|
||||||
somewhere_Adv = ss ["qualche parte"] ;
|
somewhere_Adv = ss ["qualche parte"] ;
|
||||||
that_Quant = let
|
that_Quant = let
|
||||||
|
|||||||
@@ -6,6 +6,6 @@ concrete CompatibilityPor of Compatibility = CatPor ** open Prelude, CommonRoman
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
|
NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
|
||||||
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "."} ; ---
|
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "." ; s2 = \\_ => []} ; ---
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -294,4 +294,7 @@ instance DiffPor of DiffRomance - [iAdvQuestionInv,chooseTA,otherInv,partAgr,sta
|
|||||||
param
|
param
|
||||||
HasArt = NoArt | UseArt ;
|
HasArt = NoArt | UseArt ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
superlCanBePost = False ;
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -252,6 +252,7 @@ oper
|
|||||||
mkOrdinal : A -> Ord = \adj ->
|
mkOrdinal : A -> Ord = \adj ->
|
||||||
lin Ord {
|
lin Ord {
|
||||||
s = \\ag => adj.s ! genNum2Aform ag.g ag.n ;
|
s = \\ag => adj.s ! genNum2Aform ag.g ag.n ;
|
||||||
|
s2 = \\_ => []
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkQuantifier : (esse,essa,esses,essas,esso : Str) -> Quant = \esse,essa,esses,essas,esso->
|
mkQuantifier : (esse,essa,esses,essas,esso : Str) -> Quant = \esse,essa,esses,essas,esso->
|
||||||
@@ -273,7 +274,7 @@ oper
|
|||||||
s,sp = \\g,c => prepCase c ++ genForms muito muita ! g ;
|
s,sp = \\g,c => prepCase c ++ genForms muito muita ! g ;
|
||||||
spn = \\c => prepCase c ++ muito ;
|
spn = \\c => prepCase c ++ muito ;
|
||||||
n = number;
|
n = number;
|
||||||
s2 = [] ;
|
s2 = \\g => [] ;
|
||||||
isNeg = neg
|
isNeg = neg
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol,MU]
|
|||||||
Det,DAP = {
|
Det,DAP = {
|
||||||
s : Gender => Case => Str ;
|
s : Gender => Case => Str ;
|
||||||
n : Number ;
|
n : Number ;
|
||||||
s2 : Str ; -- -ci
|
s2 : Gender => Str ; -- -ci
|
||||||
sp : Gender => Case => Str ; -- substantival: mien, mienne
|
sp : Gender => Case => Str ; -- substantival: mien, mienne
|
||||||
spn: Case => Str ;
|
spn: Case => Str ;
|
||||||
isNeg : Bool -- negative element, e.g. aucun
|
isNeg : Bool -- negative element, e.g. aucun
|
||||||
@@ -84,7 +84,7 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol,MU]
|
|||||||
} ;
|
} ;
|
||||||
Num = {s : Gender => Str ; isNum : Bool ; n : Number} ;
|
Num = {s : Gender => Str ; isNum : Bool ; n : Number} ;
|
||||||
Card = {s : Gender => Str ; n : Number} ;
|
Card = {s : Gender => Str ; n : Number} ;
|
||||||
Ord = {s : AAgr => Str} ;
|
Ord = {s, s2 : AAgr => Str} ;
|
||||||
|
|
||||||
-- Numeral
|
-- Numeral
|
||||||
|
|
||||||
@@ -146,6 +146,9 @@ incomplete concrete CatRomance of Cat = CommonX - [SC,Pol,MU]
|
|||||||
A = \a -> a.s ! genNum2Aform Masc Sg ;
|
A = \a -> a.s ! genNum2Aform Masc Sg ;
|
||||||
A2 = \a -> a.s ! genNum2Aform Masc Sg ++ a.c2.s ;
|
A2 = \a -> a.s ! genNum2Aform Masc Sg ++ a.c2.s ;
|
||||||
|
|
||||||
|
Det = \d -> d.s ! Masc ! Nom ++ d.s2 ! Masc ;
|
||||||
|
Ord = \o -> o.s ! aagr Masc Sg ++ o.s2 ! aagr Masc Sg ;
|
||||||
|
|
||||||
N = \n -> n.s ! Sg ;
|
N = \n -> n.s ! Sg ;
|
||||||
N2 = \n -> n.s ! Sg ++ n.c2.s ;
|
N2 = \n -> n.s ! Sg ++ n.c2.s ;
|
||||||
N3 = \n -> n.s ! Sg ++ n.c2.s ++ n.c3.s ;
|
N3 = \n -> n.s ! Sg ++ n.c2.s ++ n.c3.s ;
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ interface DiffRomance = open CommonRomance, Prelude in {
|
|||||||
-- e.g. un bon amic (Cat), una gran parte (Spa) vs. predicative bo/bona, grande
|
-- e.g. un bon amic (Cat), una gran parte (Spa) vs. predicative bo/bona, grande
|
||||||
oper AForm : PType ;
|
oper AForm : PType ;
|
||||||
oper Adj : Type = {s : AForm => Str} ;
|
oper Adj : Type = {s : AForm => Str} ;
|
||||||
oper mkOrd : Adj -> {s : AAgr => Str} = \x -> {s = \\ag => x.s ! aagr2aform ag} ;
|
oper mkOrd : Adj -> {s,s2 : AAgr => Str} = \x -> {s = \\ag => x.s ! aagr2aform ag; s2 = \\_ => []} ;
|
||||||
|
|
||||||
oper aform2aagr : AForm -> AAgr ;
|
oper aform2aagr : AForm -> AAgr ;
|
||||||
oper aform2gender : AForm -> Gender = \af -> (aform2aagr af).g ;
|
oper aform2gender : AForm -> Gender = \af -> (aform2aagr af).g ;
|
||||||
@@ -222,4 +222,7 @@ oper
|
|||||||
|
|
||||||
param HasArt ;
|
param HasArt ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
superlCanBePost : Bool ;
|
||||||
|
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ incomplete concrete NounRomance of Noun =
|
|||||||
g = cn.g ;
|
g = cn.g ;
|
||||||
n = det.n
|
n = det.n
|
||||||
in heavyNPpol det.isNeg {
|
in heavyNPpol det.isNeg {
|
||||||
s = \\c => det.s ! g ! c ++ cn.s ! n ++ det.s2 ;
|
s = \\c => det.s ! g ! c ++ cn.s ! n ++ det.s2 ! g ;
|
||||||
a = agrP3 g n ;
|
a = agrP3 g n ;
|
||||||
hasClit = False
|
hasClit = False
|
||||||
} ;
|
} ;
|
||||||
@@ -53,11 +53,13 @@ incomplete concrete NounRomance of Noun =
|
|||||||
} ;
|
} ;
|
||||||
|
|
||||||
DetQuantOrd quant num ord = {
|
DetQuantOrd quant num ord = {
|
||||||
s,sp = \\g,c => quant.s ! num.isNum ! num.n ! g ! c ++ num.s ! g ++
|
s = \\g,c => quant.s ! num.isNum ! num.n ! g ! c ++ num.s ! g ++
|
||||||
ord.s ! aagr g num.n ;
|
ord.s ! aagr g num.n ;
|
||||||
|
s2 = \\g => quant.s2 ++ ord.s2 ! aagr g num.n ;
|
||||||
|
sp = \\g,c => quant.s ! num.isNum ! num.n ! g ! c ++ num.s ! g ++
|
||||||
|
ord.s ! aagr g num.n ++ ord.s2 ! aagr g num.n ;
|
||||||
spn = \\c => quant.s ! num.isNum ! num.n ! Masc ! c ++ num.s ! Masc ++
|
spn = \\c => quant.s ! num.isNum ! num.n ! Masc ! c ++ num.s ! Masc ++
|
||||||
ord.s ! aagr Masc num.n ;
|
ord.s ! aagr Masc num.n ++ ord.s2 ! aagr Masc num.n ;
|
||||||
s2 = quant.s2 ;
|
|
||||||
n = num.n ;
|
n = num.n ;
|
||||||
isNeg = quant.isNeg
|
isNeg = quant.isNeg
|
||||||
} ;
|
} ;
|
||||||
@@ -72,7 +74,7 @@ incomplete concrete NounRomance of Noun =
|
|||||||
True => quant.s ! True ! num.n ! Masc ! c ++ num.s ! Masc ;
|
True => quant.s ! True ! num.n ! Masc ! c ++ num.s ! Masc ;
|
||||||
False => quant.spn ! c ++ num.s ! Masc
|
False => quant.spn ! c ++ num.s ! Masc
|
||||||
} ;
|
} ;
|
||||||
s2 = quant.s2 ;
|
s2 = \\_ => quant.s2 ;
|
||||||
n = num.n ;
|
n = num.n ;
|
||||||
isNeg = quant.isNeg
|
isNeg = quant.isNeg
|
||||||
} ;
|
} ;
|
||||||
@@ -101,25 +103,40 @@ incomplete concrete NounRomance of Noun =
|
|||||||
NumCard n = n ** {isNum = True} ;
|
NumCard n = n ** {isNum = True} ;
|
||||||
|
|
||||||
NumDigits nu = {s = \\g => nu.s ! NCard g ; n = nu.n} ;
|
NumDigits nu = {s = \\g => nu.s ! NCard g ; n = nu.n} ;
|
||||||
OrdDigits nu = {s = \\a => nu.s ! NOrd a.g a.n} ;
|
OrdDigits nu = {s = \\a => nu.s ! NOrd a.g a.n ; s2 = \\_ => []} ;
|
||||||
|
|
||||||
NumDecimal nu = {s = \\g => nu.s ! NCard g ; n = nu.n} ;
|
NumDecimal nu = {s = \\g => nu.s ! NCard g ; n = nu.n} ;
|
||||||
|
|
||||||
NumNumeral nu = {s = \\g => nu.s ! NCard g ; n = nu.n} ;
|
NumNumeral nu = {s = \\g => nu.s ! NCard g ; n = nu.n} ;
|
||||||
OrdNumeral nu = {s = \\a => nu.s ! NOrd a.g a.n} ;
|
OrdNumeral nu = {s = \\a => nu.s ! NOrd a.g a.n ; s2 = \\_ => []} ;
|
||||||
|
|
||||||
AdNum adn num = {s = \\a => adn.s ++ num.s ! a ; isNum = num.isNum ; n = num.n} ;
|
AdNum adn num = {s = \\a => adn.s ++ num.s ! a ; isNum = num.isNum ; n = num.n} ;
|
||||||
|
|
||||||
OrdSuperl adj = {
|
OrdSuperl adj =
|
||||||
s = \\a => case adj.isDeg of {
|
case <adj.isDeg, superlCanBePost> of {
|
||||||
True => adj.compar ! aagr2compar a ;
|
<True, _> => { s = \\a => adj.compar ! aagr2compar a ;
|
||||||
False => piuComp ++ adj.s ! genNum2Aform a.g a.n }
|
s2 = \\_ => []
|
||||||
|
} ;
|
||||||
|
<False, True> => { s = \\_ => [] ;
|
||||||
|
s2 = \\a => piuComp ++ adj.s ! genNum2Aform a.g a.n
|
||||||
|
} ;
|
||||||
|
<False, False> => { s = \\a => piuComp ++ adj.s ! genNum2Aform a.g a.n ;
|
||||||
|
s2 = \\_ => []
|
||||||
|
}
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
OrdNumeralSuperl num adj =
|
OrdNumeralSuperl num adj =
|
||||||
let ordSuperl : Ord = OrdSuperl adj
|
case <adj.isDeg, superlCanBePost> of {
|
||||||
in {s = \\a => num.s ! NOrd a.g a.n ++ ordSuperl.s ! a} ; -- la terza più grande
|
<True, _> => { s = \\a => num.s ! NOrd a.g a.n ++ adj.compar ! aagr2compar a ;
|
||||||
---- could be discontinuous: la terza città più grande
|
s2 = \\_ => []
|
||||||
|
} ;
|
||||||
|
<False, True> => { s = \\a => num.s ! NOrd a.g a.n ;
|
||||||
|
s2 = \\a => piuComp ++ adj.s ! genNum2Aform a.g a.n
|
||||||
|
} ;
|
||||||
|
<False, False> => { s = \\a => num.s ! NOrd a.g a.n ++ piuComp ++ adj.s ! genNum2Aform a.g a.n ;
|
||||||
|
s2 = \\_ => []
|
||||||
|
}
|
||||||
|
} ;
|
||||||
|
|
||||||
DefArt = {
|
DefArt = {
|
||||||
s = \\_,n,g,c => artDef False g n c ;
|
s = \\_,n,g,c => artDef False g n c ;
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ lin
|
|||||||
SymbS sy = {s = \\_ => sy.s} ;
|
SymbS sy = {s = \\_ => sy.s} ;
|
||||||
|
|
||||||
SymbNum n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
|
SymbNum n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
|
||||||
SymbOrd n = {s = \\_ => n.s ++ BIND ++ "º"} ; -- feminine variant ª, also variants 1.º and 1.ª
|
SymbOrd n = {s = \\_ => n.s ++ BIND ++ "º"; s2 = \\_ => []} ; -- feminine variant ª, also variants 1.º and 1.ª
|
||||||
|
|
||||||
lincat
|
lincat
|
||||||
|
|
||||||
|
|||||||
@@ -6,6 +6,6 @@ concrete CompatibilitySpa of Compatibility = CatSpa ** open Prelude, CommonRoman
|
|||||||
|
|
||||||
lin
|
lin
|
||||||
NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
|
NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ;
|
||||||
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "."} ; ---
|
OrdInt n = {s = \\_ => n.s ++ SOFT_BIND ++ "." ; s2 = \\_ => []} ; ---
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -240,4 +240,7 @@ instance DiffSpa of DiffRomance - [iAdvQuestionInv,otherInv,partAgr,stare_V,vpAg
|
|||||||
param
|
param
|
||||||
HasArt = NoArt | UseArt ;
|
HasArt = NoArt | UseArt ;
|
||||||
|
|
||||||
|
oper
|
||||||
|
superlCanBePost = True ;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ oper
|
|||||||
s,sp = \\_,c => prepCase c ++ piu ;
|
s,sp = \\_,c => prepCase c ++ piu ;
|
||||||
spn = \\c => prepCase c ++ piu ;
|
spn = \\c => prepCase c ++ piu ;
|
||||||
n = n ;
|
n = n ;
|
||||||
s2 = [] ;
|
s2 = \\g => [] ;
|
||||||
isNeg = False
|
isNeg = False
|
||||||
} ;
|
} ;
|
||||||
-- Inflects for number
|
-- Inflects for number
|
||||||
@@ -68,7 +68,7 @@ oper
|
|||||||
s,sp = \\g,c => prepCase c ++ genForms alcuni alcune ! g ;
|
s,sp = \\g,c => prepCase c ++ genForms alcuni alcune ! g ;
|
||||||
spn = \\c => prepCase c ++ alcuni ;
|
spn = \\c => prepCase c ++ alcuni ;
|
||||||
n = n ;
|
n = n ;
|
||||||
s2 = [] ;
|
s2 = \\g => [] ;
|
||||||
isNeg = False
|
isNeg = False
|
||||||
} ;
|
} ;
|
||||||
} ;
|
} ;
|
||||||
|
|||||||
@@ -237,6 +237,7 @@ oper
|
|||||||
mkOrdinal : A -> Ord = \adj->
|
mkOrdinal : A -> Ord = \adj->
|
||||||
lin Ord {
|
lin Ord {
|
||||||
s = \\ag => adj.s ! genNum2Aform ag.g ag.n ;
|
s = \\ag => adj.s ! genNum2Aform ag.g ag.n ;
|
||||||
|
s2 = \\_ => []
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
mkQuantifier : (ese,esa,esos,esas,eso : Str) -> Quant = \ese,esa,esos,esas,eso->
|
mkQuantifier : (ese,esa,esos,esas,eso : Str) -> Quant = \ese,esa,esos,esas,eso->
|
||||||
@@ -261,7 +262,7 @@ oper
|
|||||||
s,sp = \\g,c => prepCase c ++ genForms mucho mucha ! g ;
|
s,sp = \\g,c => prepCase c ++ genForms mucho mucha ! g ;
|
||||||
spn = \\c => prepCase c ++ mucho ;
|
spn = \\c => prepCase c ++ mucho ;
|
||||||
n = number;
|
n = number;
|
||||||
s2 = [] ;
|
s2 = \\c => [] ;
|
||||||
isNeg = neg
|
isNeg = neg
|
||||||
} ;
|
} ;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user