Italian more complete

This commit is contained in:
aarne
2005-03-17 20:38:07 +00:00
parent 9316e1efab
commit af6cb59fe8
11 changed files with 310 additions and 235 deletions

View File

@@ -335,4 +335,6 @@ oper
ouiPhr = ss ["Oui ."] ;
nonPhr = ss ["Non ."] ; --- and also Si!
negNe = elisNe ; negPas = "pas" ;
}

View File

@@ -13,7 +13,7 @@ DayDate day = ss (day.s ! singular) ;
DayTimeDate day time = ss (day.s ! singular ++ "à" ++ time.s) ;
FormalTime = infixSS "heures" ;
PastTime h m = ss (m.s ++ "et" ++ h.s) ;
PastTime h m = ss (h.s ++ "et" ++ m.s) ;
ToTime h m = ss (h.s ++ "moins" ++ m.s) ;
ExactTime h = ss (h.s ++ "exactement") ;

View File

@@ -33,30 +33,30 @@ lin
bread_N = regN "pane" ;
--V break_V2 = dirV2 (regV "casser") ;
broad_ADeg = regADeg "largo" ;
brother_N2 = deN2 (regN "fratello") ;
brother_N2 = diN2 (regN "fratello") ;
brown_ADeg = regADeg "marrone" ;
butter_N = regN "burro" ;
buy_V2 = dirV2 (regV "comprare") ;
---- camera_N = compN (regN "appareil" masculine) ["de photo"] ;
---- cap_N = regN "casquette" ;
camera_N = mkN ["macchina fotografica"]["macchine fotografiche"] feminine ; ---
cap_N = regN "berretta" ;
car_N = regN "macchina" ;
---- carpet_N = regN "tapis" ;
carpet_N = regN "tappeto" ;
cat_N = regN "gatto" ;
---- ceiling_N = regN "plafond" ;
---- chair_N = regN "chaise" ;
ceiling_N = regN "soffitto" ;
chair_N = regN "sedia" ;
cheese_N = regN "formaggio" ;
child_N = regN "bambino" ;
church_N = regN "chiesa" ;
city_N = regN "città" ;
clean_ADeg = regADeg "proprio" ;
clever_ADeg = regADeg "sapiente" ; ----
clever_ADeg = regADeg "saggio" ;
--V close_V2 = dirV2 (regV "") ;
--V coat_N = regN "manteau" ;
cold_ADeg = regADeg "freddo" ;
--V come_V = venir_V ;
computer_N = regN "computer" ;
country_N = regN "paese" ;
cousin_N = regN "cugino" ; ---- cousine
cousin_N = regN "cugino" ; --- cousine
cow_N = regN "vacca" ;
--V die_V = mourir_V ;
dirty_ADeg = regADeg "sporco" ;
@@ -68,11 +68,11 @@ lin
eat_V2 = dirV2 (regV "mangiare") ;
--V enemy_N = regN "ennemi" ;
factory_N = regN "stabilimento" ;
father_N2 = deN2 (regN "padre" masculine) ;
father_N2 = diN2 (regN "padre") ;
--V fear_VS = mkVS (v2V craindre_V2) ;
find_V2 = dirV2 (regV "trovare") ;
fish_N = regN "pesca" ;
---- floor_N = regN "plancher" ;
floor_N = regN "pavimento" ;
forget_V2 = dirV2 (regV "dimenticare") ;
fridge_N = regN "frigorifero" ;
friend_N = regN "amico" ;
@@ -80,7 +80,7 @@ lin
fun_AV = mkAV (regA "divertente") genitive ;
garden_N = regN "giardino" ;
girl_N = regN "ragazza" ;
---- glove_N = regN "gant" ;
glove_N = regN "guanto" ;
gold_N = regN "oro" ;
good_ADeg = prefADeg (mkADeg (regA "buono")
(mkA "migliore" "migliore" "migliori" "migliori" "meglio")) ;
@@ -100,7 +100,7 @@ lin
industry_N = regN "industria" ;
iron_N = regN "ferro" ;
king_N = regN "ré" ;
--V know_V2 = connaître_V2 ; ---- savoir_V2 : VS
--V know_V2 = connaître_V2 ; --- savoir_V2 : VS
lake_N = regN "lago" ;
lamp_N = regN "lampa" ;
--V learn_V2 = apprendre_V2 ;
@@ -118,7 +118,7 @@ lin
meat_N = femN (regN "carne") ;
milk_N = regN "latte" ;
moon_N = regN "luna" ;
mother_N2 = deN2 (femN (regN "madre")) ;
mother_N2 = diN2 (femN (regN "madre")) ;
mountain_N = regN "montagna" ;
music_N = regN "musica" ;
narrow_ADeg = regADeg "stretto" ;
@@ -126,105 +126,105 @@ lin
newspaper_N = regN "giornale" ;
oil_N = regN "olio" ;
old_ADeg =
prefADeg (regADeg "veccio") ; ---- vieil
prefADeg (regADeg "vecchio") ; ---- vieil
--V open_V2 = ouvrir_V2 ;
--V paint_V2A = mkV2A (v2V peindre_V2) accusative ;
paper_N = regN "carta" ;
peace_N = femN (regN "pace") ;
pen_N = regN "stylo" ;
planet_N = regN "planète" ;
plastic_N = regN "plastic" ;
play_V2 = dirV2 (regV "jouer") ;
policeman_N = regN "policier" ;
priest_N = regN "prêtre" ;
probable_AS = mkAS (regA "probable") ;
queen_N = regN "reine" ;
radio_N = regN "radio" ;
rain_V0 = mkV0 (pleuvoir_V) ;
read_V2 = lire_V2 ;
red_ADeg = regADeg "rouge" ;
religion_N = regN "religion" ;
restaurant_N = regN "restaurant" ;
river_N = regN "rivière" ;
rock_N = regN "rocher" ;
roof_N = regN "toit" ;
rubber_N = regN "caoutchuc" ;
run_V = v2V courir_V2 ;
say_VS = mkVS (v2V dire_V2) ;
school_N = regN "école" ;
science_N = regN "science" ;
sea_N = regN "mer" ;
seek_V2 = dirV2 (regV "chercher") ;
see_V2 = voir_V2 ;
sell_V3 = dirV3 (v2V vendre_V2) dative ;
send_V3 = dirV3 (v2V envoyer_V2) dative ;
sheep_N = regN "mouton" ;
ship_N = regN "bateau" ;
shirt_N = regN "chemise" ;
shoe_N = regN "chaussure" ;
shop_N = regN "magasin" ;
short_ADeg = regADeg "court" ; ---- bref
silver_N = regN "argent" ;
sister_N = regN "soeur" ;
sleep_V = v2V dormir_V2 ;
small_ADeg = prefADeg (regADeg "petit") ;
snake_N = regN "serpent" ;
sock_N = regN "chaussette" ;
speak_V2 = dirV2 (regV "parler") ;
star_N = regN "étoile" ;
steel_N = regN "acier" ;
stone_N = regN "pierre" ;
stove_N = regN "four" ;
student_N = regN "étudiant" ;
stupid_ADeg = regADeg "stupide" ;
sun_N = regN "soleil" ;
switch8off_V2 = éteindre_V2 ;
switch8on_V2 = dirV2 (regV "allumer") ; ----
table_N = regN "table" ;
talk_V3 = mkV3 (regV "parler") dative genitive ;
teacher_N = regN "professeur" ;
teach_V2 = dirV2 (regV "enseigner") ;
television_N = regN "télévision" ;
thick_ADeg = compADeg (mkA "épais" "épaisse" "épais" "épaissement") ;
thin_ADeg = regADeg "fin" ;
train_N = regN "train" ;
travel_V = regV "voyager" ;
tree_N = regN "arbre" ;
---- trousers_N = regN "pantalon" ;
ugly_ADeg = regADeg "laide" ;
understand_V2 = comprendre_V2 ;
university_N = regN "université" ;
village_N = regN "village" ;
wait_V2 = attendre_V2 ; ---- dative?
walk_V = regV "marcher" ;
warm_ADeg = regADeg "chaud" ;
war_N = regN "guerre" ;
watch_V2 = dirV2 (regV "regarder") ;
water_N = regN "eau" ;
white_ADeg = compADeg (mkA "blanc" "blanche" "blancs" "blanchement") ;
window_N = regN "fenêtre" ;
wine_N = regN "vin" ;
win_V2 = dirV2 (regV "gagner") ; ---- vaincre
woman_N = regN "femme" ;
wonder_VQ = mkVQ (regV "étonner") ; ----- s'étonner
wood_N = regN "bois" ;
write_V2 = écrire_V2 ;
yellow_ADeg = regADeg "jaune" ;
young_ADeg = prefADeg (regADeg "jeune") ;
pen_N = regN "penna" ;
planet_N = regN "pianeta" ;
plastic_N = regN "plastica" ;
play_V2 = dirV2 (regV "giocare") ;
policeman_N = regN "carabiniere" ;
priest_N = regN "prete" ;
probable_AS = mkAS (regA "probabile") ;
queen_N = regN "regina" ;
radio_N = mkN "radio" "radio" feminine ;
--V rain_V0 = mkV0 (pleuvoir_V) ;
--V read_V2 = lire_V2 ;
red_ADeg = regADeg "rosso" ;
religion_N = femN (regN "religione") ;
restaurant_N = regN "ristorante" ;
river_N = regN "fiume" ;
rock_N = regN "roccia" ;
roof_N = regN "tetto" ;
rubber_N = regN "gomma" ;
--V run_V = v2V courir_V2 ;
--V say_VS = mkVS (v2V dire_V2) ;
school_N = regN "scuola" ;
science_N = regN "scienza" ;
sea_N = regN "mare" ;
seek_V2 = dirV2 (regV "cercare") ;
--V see_V2 = voir_V2 ;
--V sell_V3 = dirV3 (v2V vendre_V2) dative ;
send_V3 = dirV3 (regV "mandare") dative ;
--V sheep_N = regN "mouton" ;
ship_N = femN (regN "nave") ;
shirt_N = regN "camicia" ;
shoe_N = regN "scarpa" ;
shop_N = regN "magazzino" ;
short_ADeg = regADeg "corto" ; --- breve
silver_N = regN "argento" ;
sister_N = regN "sorella" ;
--V sleep_V = v2V dormir_V2 ;
small_ADeg = prefADeg (regADeg "piccolo") ;
--V snake_N = regN "serpent" ;
--V sock_N = regN "chaussette" ;
speak_V2 = dirV2 (regV "parlare") ;
star_N = regN "stella" ;
steel_N = regN "acciaio" ;
stone_N = regN "sasso" ;
stove_N = regN "forno" ;
student_N = regN "studente" ;
stupid_ADeg = regADeg "stupido" ;
sun_N = regN "sole" ;
--V switch8off_V2 = éteindre_V2 ;
switch8on_V2 = dirV2 (regV "allumare") ; ----
table_N = regN "tavola" ; --- tavolo
talk_V3 = mkV3 (regV "parlare") dative genitive ;
teacher_N = regN "professore" ;
teach_V2 = dirV2 (regV "insegnare") ;
television_N = femN (regN "televisione") ;
thick_ADeg = regADeg "grosso" ;
thin_ADeg = regADeg "sottile" ;
train_N = regN "treno" ;
travel_V = regV "viaggare" ;
tree_N = regN "albero" ;
--- trousers_N = regN "pantalon" ;
ugly_ADeg = regADeg "brutto" ;
understand_V2 = dirV2 (regV "capire") ;
university_N = regN "università" ;
village_N = regN "paese" ;
wait_V2 = mkV2 (regV "aspettare") dative ;
walk_V = regV "camminare" ;
warm_ADeg = regADeg "caldo" ;
war_N = regN "guerra" ;
watch_V2 = dirV2 (regV "guardare") ;
water_N = regN "acqua" ;
white_ADeg = compADeg (regA "bianco") ;
window_N = regN "finestra" ;
wine_N = regN "vino" ;
--V win_V2 = dirV2 (vincere) ;
woman_N = regN "donna" ;
wonder_VQ = mkVQ (regV "domandare") ; ---- domandarsi
wood_N = regN "legno" ;
--V write_V2 = écrire_V2 ;
yellow_ADeg = regADeg "giallo" ;
young_ADeg = prefADeg (regADeg "giovane") ;
do_V2 = faire_V2 ;
now_Adv = mkAdv "maintenant" ;
already_Adv = mkAdv "déjà" ;
song_N = regN "chanson" ;
add_V3 = dirV3 (regV "ajouter") dative ;
number_N = regN "nombre" ; ---- numéro
put_V2 = mettre_V2 ;
stop_V = regV "arrêter" ; ---- s'arrêter
jump_V = regV "sauter" ;
here_Adv = mkAdv "ici" ;
here7to_Adv = mkAdv "ici" ;
here7from_Adv = mkAdv ["d'ici"] ;
there_Adv = mkAdv "là" ; ---- y, là-bas
there7to_Adv = mkAdv "là" ; --- y
there7from_Adv = mkAdv ["de là"] ; ---- en
--V do_V2 = faire_V2 ;
now_Adv = mkAdv "adesso" ;
already_Adv = mkAdv "già" ;
song_N = femN (regN "canzone") ;
--V add_V3 = dirV3 (regV "ajouter") dative ;
number_N = regN "numero" ;
--V put_V2 = mettre_V2 ;
stop_V = regV "fermare" ; ---- fermarsi
jump_V = regV "saltare" ;
here_Adv = mkAdv "quì" ;
here7to_Adv = mkAdv "quì" ;
here7from_Adv = mkAdv ["da quì"] ;
there_Adv = mkAdv "lì" ;
there7to_Adv = mkAdv "lì" ;
there7from_Adv = mkAdv ["da lì"] ;
} ;

View File

@@ -0,0 +1,25 @@
concrete CountryIta of Country = open CategoriesIta, ParadigmsIta in {
lincat
Country = PN ;
Nationality = A ;
Language = N ;
lin
Denmark = mkPN "Danimarca" feminine ;
England = mkPN "Inghilterra" feminine ;
Finland = mkPN "Finlandia" feminine ;
France = mkPN "Francia" feminine ;
Germany = mkPN "Germania" feminine ;
Italy = mkPN "Italie" feminine ;
Norway = mkPN "Norvegia" feminine ;
Russia = mkPN "Russia" feminine ;
Spain = mkPN "Spagna" feminine ;
Sweden = mkPN "Svezia" feminine ;
Danish = regA "danese" ;
English = regA "inglese" ;
DanishLang = regN "danese" ;
EnglishLang = regN "inglese" ;
} ;

View File

@@ -0,0 +1,22 @@
--# -path=.:../romance:../abstract:../../prelude
concrete LangIta of Lang =
RulesIta,
ClauseIta,
StructuralIta,
BasicIta,
TimeIta,
CountryIta
** open Prelude, ParadigmsIta in {
lin
AdvDate d = prefixSS "il" d ;
AdvTime t = prefixSS "alle" t ;
NWeekday w = w ;
PNWeekday w = mkPN (w.s ! singular) w.g ;
PNCountry x = x ;
ANationality x = x ;
NLanguage x = x ;
}

View File

@@ -84,7 +84,7 @@ oper
"e" => {s = numForms vino (vin + "i")
; g = Masc} ;
"à" | "ù" => {s = numForms vino vino
; g = Fem}
; g = Fem} ;
_ => {s = numForms vino vino
; g = Masc}
} ;
@@ -471,6 +471,7 @@ param Pred = pred | indip ;
oper mkTal : Str -> Str -> Str -> {s : DForm => Str} =
\två -> \tolv -> \tjugo ->
{s = table {ental _ => två ; ton => tolv ; tiotal => tjugo}} ;
oper spl : Str -> {s : Str ; n : Number} = \s -> {s = s ; n = Pl} ;
oper spl : Str -> {s : Gender => Str ; n : Number} = \s -> {s = \\_ =>
s ; n = Pl} ;
oper mille : Number => Str = table {Sg => "mille" ; Pl => "mila"} ;
}

View File

@@ -1,11 +1,18 @@
concrete NumeralsIta of Numerals = open Prelude, TypesIta, MorphoIta in {
concrete NumeralsIta of Numerals = open Prelude, TypesIta, MorphoIta, SyntaxIta in {
lincat Digit = {s : DForm => Str} ;
lincat Sub10 = {s : DForm => Str ; n : Number} ;
lincat Sub100 = {s : Str ; n : Number} ;
lincat Sub1000 = {s : Str ; n : Number} ;
lincat Sub1000000 = {s : Str} ;
lincat
--Digit = {s : DForm => Str} ;
--lincat Sub10 = {s : DForm => Str ; n : Number} ;
--lincat Sub100 = {s : Str ; n : Number} ;
--lincat Sub1000 = {s : Str ; n : Number} ;
--lincat Sub1000000 = {s : Str} ;
Numeral = {s : Gender => Str ; n : Number} ;
Digit = {s : DForm => Str} ;
Sub10 = {s : DForm => Gender => Str ; n : Number} ;
Sub100 = {s : Gender => Str ; n : Number} ;
Sub1000 = {s : Gender => Str ; n : Number} ;
Sub1000000 = {s : Gender => Str ; n : Number} ;
lin num x = x ;
@@ -19,19 +26,20 @@ lin n7 = mkTal "sette" "diciassette" "settanta" ;
lin n8 = mkTal "otto" "diciotto" "ottanta" ;
lin n9 = mkTal "nove" "diciannove" "novanta" ;
lin pot01 = {s = table {ental pred => [] ; _ => "uno"} ; n = Sg} ;
lin pot0 d = {s = table {f => d.s ! f} ; n = Pl} ;
lin pot01 = {s = table {
ental pred => \\_ => [] ; _ => genForms "uno" "una"} ; n = Sg} ;
lin pot0 d = {s =\\f,g => d.s ! f ; n = Pl} ;
lin pot110 = spl "dieci" ;
lin pot111 = spl "undici" ;
lin pot1to19 d = spl (d.s ! ton) ;
lin pot0as1 n = {s = n.s ! ental indip ; n = n.n} ;
lin pot1 d = spl (d.s ! tiotal) ;
lin pot1plus d e = spl (d.s ! tiotal ++ e.s ! ental indip) ;
lin pot1as2 n = {s = n.s ; n = n.n} ;
lin pot2 d = spl (d.s ! ental pred ++ "cento") ;
lin pot2plus d e = spl (d.s ! ental pred ++ "cento" ++ e.s) ;
lin pot2as3 n = {s = n.s ; n = n.n} ;
lin pot3 n = ss (n.s ++ mille ! n.n) ;
lin pot3plus n m = ss (n.s ++ mille ! n.n ++ m.s) ;
lin pot1plus d e = {s = \\g => d.s ! tiotal ++ e.s ! ental indip ! g ; n = Pl} ;
lin pot1as2 n = n ;
lin pot2 d = spl (d.s ! ental pred ! Masc ++ "cento") ;
lin pot2plus d e = {s = \\g => d.s ! ental pred ! Masc ++ "cento" ++ e.s ! g ; n = Pl} ;
lin pot2as3 n = n ;
lin pot3 n = spl (n.s ! Masc ++ mille ! n.n) ;
lin pot3plus n m = {s = \\g => n.s ! Masc ++ mille ! n.n ++ m.s ! g ; n = Pl} ;
}
}

View File

@@ -1,113 +1,92 @@
--# -path=.:../romance:../abstract:../../prelude
concrete StructuralIta of Structural = CategoriesIta, NumeralsIta **
open SyntaxIta, MorphoIta, Prelude in {
open SyntaxIta, MorphoIta, BeschIta, Prelude in {
lin
INP = pronNounPhrase pronJe ;
ThouNP = pronNounPhrase pronTu ;
HeNP = pronNounPhrase pronIl ;
SheNP = pronNounPhrase pronElle ;
WeNumNP n = pronNounPhrase (pronWithNum pronNous n) ;
YeNumNP n = pronNounPhrase (pronWithNum pronVous n) ;
YouNP = pronNounPhrase pronVous ;
TheyNP = pronNounPhrase pronIls ;
-- Here is a point where the API is really inadequate for French,
-- which distinguishes between masculine and feminine "they".
-- The following solution is not attractive.
--- TheyNP = pronNounPhrase (variants {pronIls ; pronElles}) ;
ThisNP = mkNameNounPhrase ["questo"] Masc ;
ThatNP = mkNameNounPhrase ["quello"] Masc ;
TheseNumNP n = mkNameNounPhrase ("questi" ++ n.s ! Masc) Masc ;
ThoseNumNP n = mkNameNounPhrase ("quelli" ++ n.s ! Masc) Masc ;
ItNP = pronNounPhrase pronIl ;
EveryDet = chaqueDet ;
AllMassDet = mkDeterminer singular "tutto" "tutta" ;
AllNumDet = mkDeterminerNum plural ["tutti i"] ["tutte le"] ; --- gli
WhichDet = quelDet ;
WhichNumDet = mkDeterminerNum plural "quali" "quali" ;
MostsDet = plupartDet ;
MostDet = mkDeterminer1 singular (["la maggior parte"] ++ elisDe) ; --- de
SomeDet = mkDeterminer1 singular "qualche" ;
SomeNumDet = mkDeterminerNum plural "alcuni" "alcune" ;
NoDet = mkDeterminer singular "nessuno" "nessuna" ; --- non
NoNumDet = mkDeterminerNum plural "nessuni" "nessune" ; ---- ??
AnyDet = mkDeterminer1 singular "qualche" ; ---
AnyNumDet = mkDeterminerNum plural "alcuni" "alcune" ; ---
ManyDet = mkDeterminer plural "molti" "molte" ;
MuchDet = mkDeterminer1 singular "molto" ;
ThisDet = mkDeterminer singular "questo" "questa" ;
ThatDet = mkDeterminer singular "quello" "quella" ;
TheseNumDet = mkDeterminerNum plural "questi" "queste" ; --- ci
ThoseNumDet = mkDeterminerNum plural "quelli" "quelle" ; --- quegli
UseNumeral n = {s = \\_ => n.s} ; ---- gender
HowIAdv = commentAdv ;
WhenIAdv = quandAdv ;
WhereIAdv = ouAdv ;
WhyIAdv = pourquoiAdv ;
AndConj = etConj ;
OrConj = ouConj ;
BothAnd = etetConj ;
EitherOr = ououConj ;
NeitherNor = niniConj ; --- requires ne !
IfSubj = siSubj ;
WhenSubj = quandSubj ;
PhrYes = ouiPhr ;
PhrNo = nonPhr ; --- and also Si!
VeryAdv = ss "molto" ;
TooAdv = ss "troppo" ;
OtherwiseAdv = ss "altramente" ;
ThereforeAdv = ss "quindi" ;
EverybodyNP = normalNounPhrase (\\c => prepCase c ++ "tutti") Masc Pl ;
SomebodyNP = mkNameNounPhrase ["qualcuno"] Masc ;
NobodyNP = mkNameNounPhrase ["nessuno"] Masc ; --- ne
EverythingNP = mkNameNounPhrase ["tutto"] Masc ;
SomethingNP = mkNameNounPhrase ["qualche cosa"] Masc ;
NothingNP = mkNameNounPhrase ["niente"] Masc ; --- ne
CanVV = mkVerbVerbDir (verbPres (potere_72 "potere") AHabere) ;
CanKnowVV = mkVerbVerbDir (verbPres (sapere_81 "sapere") AHabere) ;
MustVV = mkVerbVerbDir (verbPres (dovere_50 "dovere") AHabere) ;
WantVV = mkVerbVerbDir (verbPres (volere_99 "volere") AHabere) ;
EverywhereNP = ss "dappertutto" ;
SomewhereNP = ss ["qualche parte"] ; --- ne - pas
NowhereNP = ss ["nessun parte"] ;
AlthoughSubj = ss "benché" ** {m = Con} ;
AlmostAdv = ss "quasi" ;
QuiteAdv = ss "assai" ;
InPrep = justCase (CPrep P_in) ;
OnPrep = justCase (CPrep P_su) ;
ToPrep = justCase dative ; ---
ThroughPrep = justPrep "per" ;
AbovePrep = justPrep "sopra" ;
UnderPrep = justPrep "sotto" ;
InFrontPrep = justPrep "davanti" ;
BehindPrep = justPrep "dietro" ;
BetweenPrep = justPrep "tra" ;
FromPrep = justCase (CPrep P_da) ;
BeforePrep = justPrep "prima" ;
DuringPrep = justPrep "durante" ;
AfterPrep = justPrep "dopo" ;
WithPrep = justCase (CPrep P_con) ;
WithoutPrep = justPrep "senza" ;
ByMeansPrep = justPrep "per" ;
PossessPrep = justCase genitive ;
PartPrep = justCase genitive ; ---
AgentPrep = justCase (CPrep P_da) ;
UseNumeral n = {s = \\g => n.s !g ; n = n.n} ;
above_Prep = justPrep "sopra" ;
after_Prep = justPrep "dopo" ;
all8mass_Det = mkDeterminer singular "tutto" "tutta" ;
all_NDet = mkDeterminerNum ["tutti i"] ["tutte le"] ; --- gli
almost_Adv = ss "quasi" ;
although_Subj = ss "benché" ** {m = Con} ;
and_Conj = etConj ;
because_Subj = ss "perché" ** {m = Ind} ;
before_Prep = justPrep "prima" ;
behind_Prep = justPrep "dietro" ;
between_Prep = justPrep "tra" ;
both_AndConjD = etetConj ;
by8agent_Prep = justCase (CPrep P_da) ;
by8means_Prep = justPrep "per" ;
can8know_VV = mkVerbVerbDir (verbPres (sapere_78 "sapere") AHabere) ;
can_VV = mkVerbVerbDir (verbPres (potere_69 "potere") AHabere) ;
during_Prep = justPrep "durante" ;
either8or_ConjD = ououConj ;
everybody_NP = normalNounPhrase (\\c => prepCase c ++ "tutti") Masc Pl ;
every_Det = chaqueDet ;
everything_NP = mkNameNounPhrase ["tutto"] Masc ;
everywhere_Adv = ss "dappertutto" ;
from_Prep = justCase (CPrep P_da) ;
he_NP = pronNounPhrase pronIl ;
how_IAdv = commentAdv ;
how8many_IDet = {s = genForms "quanti" "quante" ; n = Pl} ;
if_Subj = siSubj ;
in8front_Prep = justPrep "davanti" ;
i_NP = pronNounPhrase pronJe ;
in_Prep = justCase (CPrep P_in) ;
it_NP = pronNounPhrase pronIl ;
many_Det = mkDeterminer plural "molti" "molte" ;
most8many_Det = plupartDet ;
most_Det = mkDeterminer1 singular (["la maggior parte"] ++ elisDe) ; --- de
much_Det = mkDeterminer1 singular "molto" ;
must_VV = mkVerbVerbDir (verbPres (dovere_47 "dovere") AHabere) ;
no_Phr = nonPhr ; --- and also Si!
on_Prep = justCase (CPrep P_su) ;
or_Conj = ouConj ;
otherwise_Adv = ss "altramente" ;
part_Prep = justCase genitive ; ---
possess_Prep = justCase genitive ;
quite_Adv = ss "assai" ;
she_NP = pronNounPhrase pronElle ;
so_Adv = ss "così" ;
somebody_NP = mkNameNounPhrase ["qualcuno"] Masc ;
some_Det = mkDeterminer1 singular "qualche" ;
some_NDet = mkDeterminerNum "alcuni" "alcune" ;
something_NP = mkNameNounPhrase ["qualche cosa"] Masc ;
somewhere_Adv = ss ["qualche parte"] ; --- ne - pas
that_Det = mkDeterminer singular "quello" "quella" ;
that_NP = mkNameNounPhrase ["quello"] Masc ;
therefore_Adv = ss "quindi" ;
these_NDet = mkDeterminerNum "questi" "queste" ; --- ci
they_NP = pronNounPhrase pronIls ;
they8fem_NP = pronNounPhrase pronIls ;
this_Det = mkDeterminer singular "questo" "questa" ;
this_NP = mkNameNounPhrase ["questo"] Masc ;
those_NDet = mkDeterminerNum "quelli" "quelle" ; --- quegli
thou_NP = pronNounPhrase pronTu ;
through_Prep = justPrep "per" ;
too_Adv = ss "troppo" ;
to_Prep = justCase dative ; ---
under_Prep = justPrep "sotto" ;
very_Adv = ss "molto" ;
want_VV = mkVerbVerbDir (verbPres (volere_96 "volere") AHabere) ;
we_NP = pronNounPhrase pronNous ;
what8one_IP = intPronWhat singular ;
what8many_IP = intPronWhat plural ;
when_IAdv = quandAdv ;
when_Subj = quandSubj ;
where_IAdv = ouAdv ;
which8many_IDet = mkDeterminerNum "quali" "quali" ** {n = Pl} ;
which8one_IDet = quelDet ;
who8one_IP = intPronWho singular ;
who8many_IP = intPronWho plural ;
why_IAdv = pourquoiAdv ;
without_Prep = justPrep "senza" ;
with_Prep = justCase (CPrep P_con) ;
ye_NP = pronNounPhrase pronVous ;
yes_Phr = ouiPhr ;
you_NP = pronNounPhrase pronVous ;
}

View File

@@ -145,6 +145,8 @@ oper
lequel.s ! RComplex g n c
} ;
pronIl = MorphoIta.pronIl ;
-- Interrogative pronouns
nounIntPron = \n, mec ->
@@ -263,5 +265,7 @@ oper
ouiPhr = ss ["Sì ."] ;
nonPhr = ss ["No ."] ;
negNe = "non" ; negPas = [] ;
}

View File

@@ -0,0 +1,32 @@
concrete TimeIta of Time = NumeralsIta **
open Prelude, MorphoIta, CategoriesIta, ParadigmsIta in {
lincat
Date = SS ;
Weekday = N ;
Hour = SS ;
Minute = SS ;
Time = SS ;
lin
DayDate day = ss (day.s ! singular) ;
DayTimeDate day time = ss (day.s ! singular ++ "alle" ++ time.s) ;
FormalTime h m = ss ("alle" ++ h.s ++ "e" ++ m.s) ;
PastTime h m = ss ("alle" ++ h.s ++ "e" ++ h.s) ;
ToTime h m = ss ("alle" ++ h.s ++ "meno" ++ m.s) ;
ExactTime h = ss (h.s ++ "esattamento") ;
NumHour n = ss (n.s ! feminine) ;
NumMinute n = ss (n.s ! feminine) ;
monday = regN "lunedì" ;
tuesday = regN "martedì" ;
wednesday = regN "mercoledì" ;
thursday = regN "giovedì" ;
friday = regN "venerdì" ;
saturday = regN "sabato" ;
sunday = regN "domenica" ;
} ;

View File

@@ -1547,11 +1547,13 @@ oper
dit = dire.p2 ;
toujours = sats.s5 ;
directement = sats.s6 ;
ne = if_then_Str b [] "ne" ; ---- negNe ;
pas = if_then_Str b [] "pas" ; ---- negPas ;
ne = if_then_Str b [] negNe ;
pas = if_then_Str b [] negPas ;
oui = sats.s7 ! b
in
je ++ ne ++ lui ++ ai ++ toujours ++ pas ++ dit ++ directement ++ oui
} ;
negNe, negPas : Str ;
}