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 - [
|
concrete SentencesFre of Sentences = NumeralFre ** SentencesI - [
|
||||||
QProp,
|
QProp,
|
||||||
IFemale, YouFamFemale, YouPolFemale,
|
IFemale, YouFamFemale, YouPolFemale,
|
||||||
PYesToNo
|
PYesToNo,
|
||||||
|
Superlative
|
||||||
]
|
]
|
||||||
with
|
with
|
||||||
(Syntax = SyntaxFre),
|
(Syntax = SyntaxFre),
|
||||||
@@ -9,6 +10,8 @@ concrete SentencesFre of Sentences = NumeralFre ** SentencesI - [
|
|||||||
(Lexicon = LexiconFre) **
|
(Lexicon = LexiconFre) **
|
||||||
open SyntaxFre, ExtraFre, Prelude in {
|
open SyntaxFre, ExtraFre, Prelude in {
|
||||||
|
|
||||||
|
lincat
|
||||||
|
Superlative = {s : Ord ; isPre : Bool} ;
|
||||||
lin
|
lin
|
||||||
QProp a =
|
QProp a =
|
||||||
lin QS {s = \\_ => (EstcequeS (mkS a)).s} ;
|
lin QS {s = \\_ => (EstcequeS (mkS a)).s} ;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
|
concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
|
||||||
IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale
|
IFemale, YouFamFemale, YouPolFemale, IMale, YouFamMale, YouPolMale,
|
||||||
|
mkPerson, Superlative
|
||||||
]
|
]
|
||||||
with
|
with
|
||||||
(Syntax = SyntaxIta),
|
(Syntax = SyntaxIta),
|
||||||
@@ -9,21 +10,21 @@ concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
|
|||||||
|
|
||||||
lincat
|
lincat
|
||||||
Place = NPPlace ; -- {name : NP ; at : Adv ; to : Adv ; } ;
|
Place = NPPlace ; -- {name : NP ; at : Adv ; to : Adv ; } ;
|
||||||
|
Superlative = {s : A ; isPre : Bool} ;
|
||||||
|
|
||||||
lin
|
lin
|
||||||
IFemale =
|
IFemale =
|
||||||
{name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = mkQuant i_Pron} ;
|
{name = mkNP (ProDrop i8fem_Pron) ; isPron = True ; poss = PossFamQuant i_Pron} ;
|
||||||
YouFamFemale =
|
YouFamFemale =
|
||||||
{name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ;
|
{name = mkNP (ProDrop youSg8fem_Pron) ; isPron = True ; poss = PossFamQuant youSg_Pron} ;
|
||||||
YouPolFemale =
|
YouPolFemale =
|
||||||
{name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = mkQuant youPol_Pron};
|
{name = mkNP (ProDrop youPol8fem_Pron) ; isPron = True ; poss = PossFamQuant youPol_Pron};
|
||||||
IMale =
|
IMale =
|
||||||
{name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = mkQuant i_Pron} ;
|
{name = mkNP (ProDrop i_Pron) ; isPron = True ; poss = PossFamQuant i_Pron} ;
|
||||||
YouFamMale =
|
YouFamMale =
|
||||||
{name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = mkQuant youSg_Pron} ;
|
{name = mkNP (ProDrop youSg_Pron) ; isPron = True ; poss = PossFamQuant youSg_Pron} ;
|
||||||
YouPolMale =
|
YouPolMale =
|
||||||
{name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = mkQuant youPol_Pron} ;
|
{name = mkNP (ProDrop youPol_Pron) ; isPron = True ; poss = PossFamQuant youPol_Pron} ;
|
||||||
|
|
||||||
oper
|
oper
|
||||||
|
|
||||||
@@ -42,7 +43,8 @@ concrete SentencesIta of Sentences = NumeralIta ** SentencesI - [
|
|||||||
to = mkAdv kind.to name
|
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)) ;
|
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 ;
|
ALove p q = mkCl p.name (dirV2 (regV "elske")) q.name ;
|
||||||
AMarried p = mkCl p.name (mkA "gift") ;
|
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") ;
|
AScared p = mkCl p.name (mkA "bange") ;
|
||||||
ASpeak p lang = mkCl p.name (mkV2 (mkV "tale")) lang ;
|
ASpeak p lang = mkCl p.name (mkV2 (mkV "tale")) lang ;
|
||||||
AThirsty p = mkCl p.name (mkA "tørstig") ;
|
AThirsty p = mkCl p.name (mkA "tørstig") ;
|
||||||
|
|||||||
@@ -199,15 +199,27 @@ lin
|
|||||||
|
|
||||||
-- modifiers of places
|
-- modifiers of places
|
||||||
|
|
||||||
TheBest = mkSuperl L.good_A ;
|
TheBest = mkSuperl True L.good_A ;
|
||||||
TheClosest = mkSuperl L.near_A ;
|
TheClosest = mkSuperl False L.near_A ;
|
||||||
TheCheapest = mkSuperl (compADeg {s = \\_ => (M.mkAdj "bon marché" "bon marché" "bon marché" "bon marché").s ; isPre = False ; lock_A = <>}) ;
|
TheCheapest = mkSuperl False
|
||||||
TheMostExpensive = mkSuperl (mkA "cher") ;
|
(compADeg {s = \\_ => (M.mkAdj "bon marché" "bon marché" "bon marché" "bon marché").s ;
|
||||||
TheMostPopular = mkSuperl (mkA "populair") ;
|
isPre = False ; lock_A = <>}) ; ----
|
||||||
TheWorst = mkSuperl L.bad_A ;
|
TheMostExpensive = mkSuperl False (mkA "cher") ;
|
||||||
|
TheMostPopular = mkSuperl False (mkA "populaire") ;
|
||||||
SuperlPlace sup p = placeNP sup p ;
|
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
|
-- transports
|
||||||
|
|
||||||
@@ -252,8 +264,9 @@ lin
|
|||||||
en_Prep = mkPrep "en" ;
|
en_Prep = mkPrep "en" ;
|
||||||
par_Prep = mkPrep "par" ;
|
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" ;
|
far_IAdv = ss "loin" ;
|
||||||
|
|
||||||
distance_NP : NP = mkNP the_Det (mkN "distance" feminine) ;
|
distance_NP : NP = mkNP the_Det (mkN "distance" feminine) ;
|
||||||
|
|||||||
@@ -219,15 +219,25 @@ lin
|
|||||||
|
|
||||||
-- modifiers of places
|
-- modifiers of places
|
||||||
|
|
||||||
TheBest = mkSuperl L.good_A ;
|
TheBest = mkSuperl True L.good_A ;
|
||||||
TheClosest = mkSuperl L.near_A ;
|
TheClosest = mkSuperl False L.near_A ;
|
||||||
TheCheapest = mkSuperl (mkA "economico") ;
|
TheCheapest = mkSuperl False (mkA (mkA "economico") (mkA "meno caro")) ;
|
||||||
TheMostExpensive = mkSuperl (mkA "costoso") ;
|
TheMostExpensive = mkSuperl False (mkA "costoso") ;
|
||||||
TheMostPopular = mkSuperl (mkA "alla moda") ;
|
TheMostPopular = mkSuperl False (mkA "alla moda") ;
|
||||||
TheWorst = mkSuperl L.bad_A ;
|
TheWorst = mkSuperl True L.bad_A ;
|
||||||
|
|
||||||
SuperlPlace sup p = placeNP sup p ;
|
|
||||||
|
|
||||||
|
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
|
-- auxiliaries
|
||||||
|
|
||||||
@@ -249,10 +259,10 @@ lin
|
|||||||
by = E.PrepCN P.in_Prep n
|
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" ;
|
open_A = mkA "aperto" ;
|
||||||
closed_A = mkA "chiuso" ;
|
closed_A = mkA "chiuso" ;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user