forked from GitHub/gf-core
Ita and Fre superlatives, Ita possessives, in Phrasebook
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
concrete SentencesFre of Sentences = NumeralFre ** SentencesI - [
|
||||
QProp,
|
||||
IFemale, YouFamFemale, YouPolFemale,
|
||||
PYesToNo
|
||||
PYesToNo,
|
||||
Superlative
|
||||
]
|
||||
with
|
||||
(Syntax = SyntaxFre),
|
||||
@@ -9,6 +10,8 @@ concrete SentencesFre of Sentences = NumeralFre ** SentencesI - [
|
||||
(Lexicon = LexiconFre) **
|
||||
open SyntaxFre, ExtraFre, Prelude in {
|
||||
|
||||
lincat
|
||||
Superlative = {s : Ord ; isPre : Bool} ;
|
||||
lin
|
||||
QProp a =
|
||||
lin QS {s = \\_ => (EstcequeS (mkS a)).s} ;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
|
||||
IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale
|
||||
IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
|
||||
mkPerson, Superlative
|
||||
]
|
||||
with
|
||||
(Syntax = SyntaxIta),
|
||||
@@ -9,21 +10,21 @@ concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
|
||||
|
||||
lincat
|
||||
Place = NPPlace ; -- {name : NP ; at : Adv ; to : Adv ; } ;
|
||||
|
||||
|
||||
Superlative = {s : A ; isPre : Bool} ;
|
||||
|
||||
lin
|
||||
IFemale =
|
||||
{name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = mkQuant i_Pron} ;
|
||||
{name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = PossFamQuant i_Pron} ;
|
||||
YouFamFemale =
|
||||
{name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ;
|
||||
{name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = PossFamQuant youSg_Pron} ;
|
||||
YouPolFemale =
|
||||
{name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = mkQuant youPol_Pron};
|
||||
{name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = PossFamQuant youPol_Pron};
|
||||
IMale =
|
||||
{name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = mkQuant i_Pron} ;
|
||||
{name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = PossFamQuant i_Pron} ;
|
||||
YouFamMale =
|
||||
{name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ;
|
||||
{name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = PossFamQuant youSg_Pron} ;
|
||||
YouPolMale =
|
||||
{name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = mkQuant youPol_Pron} ;
|
||||
{name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = PossFamQuant youPol_Pron} ;
|
||||
|
||||
oper
|
||||
|
||||
@@ -42,7 +43,8 @@ concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
|
||||
to = mkAdv kind.to name
|
||||
} ;
|
||||
|
||||
|
||||
mkPerson : Pron -> {name : NP ; isPron : Bool ; poss : Quant} = \p ->
|
||||
{name = mkNP p ; isPron = True ; poss = PossFamQuant p} ;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -140,7 +140,7 @@ concrete WordsDan of Words = SentencesDan **
|
||||
ALive p co = mkCl p.name (mkVP (mkVP (mkV "bo")) (SyntaxDan.mkAdv in_Prep co)) ;
|
||||
ALove p q = mkCl p.name (dirV2 (regV "elske")) q.name ;
|
||||
AMarried p = mkCl p.name (mkA "gift") ;
|
||||
AReady p = mkCl p.name (mkA "fardig") ;
|
||||
AReady p = mkCl p.name (mkA "færdig") ;
|
||||
AScared p = mkCl p.name (mkA "bange") ;
|
||||
ASpeak p lang = mkCl p.name (mkV2 (mkV "tale")) lang ;
|
||||
AThirsty p = mkCl p.name (mkA "tørstig") ;
|
||||
|
||||
@@ -199,15 +199,27 @@ lin
|
||||
|
||||
-- modifiers of places
|
||||
|
||||
TheBest = mkSuperl L.good_A ;
|
||||
TheClosest = mkSuperl L.near_A ;
|
||||
TheCheapest = mkSuperl (compADeg {s = \\_ => (M.mkAdj "bon marché" "bon marché" "bon marché" "bon marché").s ; isPre = False ; lock_A = <>}) ;
|
||||
TheMostExpensive = mkSuperl (mkA "cher") ;
|
||||
TheMostPopular = mkSuperl (mkA "populair") ;
|
||||
TheWorst = mkSuperl L.bad_A ;
|
||||
|
||||
SuperlPlace sup p = placeNP sup p ;
|
||||
TheBest = mkSuperl True L.good_A ;
|
||||
TheClosest = mkSuperl False L.near_A ;
|
||||
TheCheapest = mkSuperl False
|
||||
(compADeg {s = \\_ => (M.mkAdj "bon marché" "bon marché" "bon marché" "bon marché").s ;
|
||||
isPre = False ; lock_A = <>}) ; ----
|
||||
TheMostExpensive = mkSuperl False (mkA "cher") ;
|
||||
TheMostPopular = mkSuperl False (mkA "populaire") ;
|
||||
TheWorst = mkSuperl True L.bad_A ;
|
||||
|
||||
SuperlPlace sup kind =
|
||||
let
|
||||
det : Det = mkDet the_Art sup.s ;
|
||||
name : NP = case sup.isPre of {
|
||||
True => mkNP det kind.name ; -- le meilleur bar
|
||||
False => mkNP the_Art (mkCN kind.name (mkNP det)) -- le bar le plus cher
|
||||
}
|
||||
in {
|
||||
name = name ;
|
||||
at = SyntaxFre.mkAdv kind.at name ;
|
||||
to = SyntaxFre.mkAdv kind.to name
|
||||
} ;
|
||||
|
||||
-- transports
|
||||
|
||||
@@ -252,8 +264,9 @@ lin
|
||||
en_Prep = mkPrep "en" ;
|
||||
par_Prep = mkPrep "par" ;
|
||||
|
||||
mkSuperl : A -> Det = \a -> SyntaxFre.mkDet the_Art (SyntaxFre.mkOrd a) ;
|
||||
|
||||
mkSuperl : Bool -> A -> {s : Ord ; isPre : Bool} = \b,a ->
|
||||
{s = SyntaxFre.mkOrd a ; isPre = b} ;
|
||||
|
||||
far_IAdv = ss "loin" ;
|
||||
|
||||
distance_NP : NP = mkNP the_Det (mkN "distance" feminine) ;
|
||||
|
||||
@@ -219,15 +219,25 @@ lin
|
||||
|
||||
-- modifiers of places
|
||||
|
||||
TheBest = mkSuperl L.good_A ;
|
||||
TheClosest = mkSuperl L.near_A ;
|
||||
TheCheapest = mkSuperl (mkA "economico") ;
|
||||
TheMostExpensive = mkSuperl (mkA "costoso") ;
|
||||
TheMostPopular = mkSuperl (mkA "alla moda") ;
|
||||
TheWorst = mkSuperl L.bad_A ;
|
||||
|
||||
SuperlPlace sup p = placeNP sup p ;
|
||||
TheBest = mkSuperl True L.good_A ;
|
||||
TheClosest = mkSuperl False L.near_A ;
|
||||
TheCheapest = mkSuperl False (mkA (mkA "economico") (mkA "meno caro")) ;
|
||||
TheMostExpensive = mkSuperl False (mkA "costoso") ;
|
||||
TheMostPopular = mkSuperl False (mkA "alla moda") ;
|
||||
TheWorst = mkSuperl True L.bad_A ;
|
||||
|
||||
SuperlPlace sup kind =
|
||||
let
|
||||
det : Det = mkDet the_Art (mkOrd sup.s) ;
|
||||
name : NP = case sup.isPre of {
|
||||
True => mkNP det kind.name ; -- il migliore bar
|
||||
False => mkNP the_Art (mkCN (mkAP (mkOrd sup.s)) kind.name) -- il bar più caro
|
||||
}
|
||||
in {
|
||||
name = name ;
|
||||
at = SyntaxIta.mkAdv kind.at name ;
|
||||
to = SyntaxIta.mkAdv kind.to name
|
||||
} ;
|
||||
|
||||
-- auxiliaries
|
||||
|
||||
@@ -249,10 +259,10 @@ lin
|
||||
by = E.PrepCN P.in_Prep n
|
||||
} ;
|
||||
|
||||
mkSuperl : A -> Det = \a -> SyntaxIta.mkDet the_Art (SyntaxIta.mkOrd a) ;
|
||||
mkSuperl : Bool -> A -> {s : A ; isPre : Bool} = \b,a ->
|
||||
{s = a ; isPre = b} ;
|
||||
|
||||
open_A = mkA "aperto" ;
|
||||
closed_A = mkA "chiuso" ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user