mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-04-20 10:19:32 -06:00
started romance and french
This commit is contained in:
2
lib/resource-1.0/french/AdjectiveFre.gf
Normal file
2
lib/resource-1.0/french/AdjectiveFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete AdjectiveFre of Adjective = CatFre ** AdjectiveRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
2
lib/resource-1.0/french/AdverbFre.gf
Normal file
2
lib/resource-1.0/french/AdverbFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete AdverbFre of Adverb = CatFre ** AdverbRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
233
lib/resource-1.0/french/BasicFre.gf
Normal file
233
lib/resource-1.0/french/BasicFre.gf
Normal file
@@ -0,0 +1,233 @@
|
||||
--# -path=.:../romance:../common:../abstract:../../prelude
|
||||
|
||||
concrete BasicFre of Basic = CatFre ** open ParadigmsFre, VerbsFre in {
|
||||
|
||||
flags
|
||||
optimize=values ;
|
||||
|
||||
lin
|
||||
airplane_N = regN "avion" masculine ;
|
||||
answer_V2S = mkV2S (v2V répondre_V2) dative ;
|
||||
apartment_N = regN "apartement" masculine ;
|
||||
apple_N = regN "pomme" feminine ;
|
||||
art_N = regN "art" feminine ;
|
||||
ask_V2Q = mkV2Q (regV "demander") dative ;
|
||||
baby_N = regN "bébé" masculine ;
|
||||
bad_A = prefA (mkADeg (regA "mauvais") (regA "pire")) ;
|
||||
bank_N = regN "banque" feminine ;
|
||||
beautiful_A = prefA (regA "joli") ; ---- beau
|
||||
become_VA = mkVA devenir_V ;
|
||||
beer_N = regN "bière" feminine ;
|
||||
beg_V2V = mkV2V (regV "demander") accusative dative ;
|
||||
big_A = prefA (regA "grand") ;
|
||||
bike_N = regN "vélo" masculine ;
|
||||
bird_N = regN "oiseau" masculine ;
|
||||
black_A = regA "noir" ;
|
||||
blue_A = regA "bleu" ;
|
||||
boat_N = regN "bateau" masculine ;
|
||||
book_N = regN "livre" masculine ;
|
||||
boot_N = regN "botte" feminine ;
|
||||
boss_N = regN "chef" masculine ;
|
||||
boy_N = regN "garçon" masculine ;
|
||||
bread_N = regN "pain" masculine ;
|
||||
break_V2 = dirV2 (regV "casser") ;
|
||||
broad_A = regA "large" ;
|
||||
brother_N2 = deN2 (regN "frère" masculine) ;
|
||||
brown_A = regA "brun" ;
|
||||
butter_N = regN "beurre" masculine ;
|
||||
buy_V2 = dirV2 (reg3V "acheter" "achète" "achètera") ;
|
||||
camera_N = compN (regN "appareil" masculine) ["de photo"] ;
|
||||
cap_N = regN "casquette" feminine ;
|
||||
car_N = regN "voiture" feminine ;
|
||||
carpet_N = regN "tapis" masculine ;
|
||||
cat_N = regN "chat" masculine ;
|
||||
ceiling_N = regN "plafond" masculine ;
|
||||
chair_N = regN "chaise" feminine ;
|
||||
cheese_N = regN "fromage" masculine ;
|
||||
child_N = regN "enfant" masculine ;
|
||||
church_N = regN "église" feminine ;
|
||||
city_N = regN "ville" feminine ;
|
||||
clean_A = regA "propre" ;
|
||||
clever_A = regA "sage" ; ----
|
||||
close_V2 = dirV2 (regV "fermer") ;
|
||||
coat_N = regN "manteau" masculine ;
|
||||
cold_A = regA "froid" ;
|
||||
come_V = venir_V ;
|
||||
computer_N = regN "ordinateur" masculine ;
|
||||
country_N = regN "pays" masculine ;
|
||||
cousin_N = regN "cousin" masculine ; ---- cousine
|
||||
cow_N = regN "vache" feminine ;
|
||||
die_V = mourir_V ;
|
||||
dirty_A = regA "sale" ;
|
||||
distance_N3 = mkN3 (regN "distance" feminine) genitive dative ;
|
||||
doctor_N = regN "médecin" masculine ;
|
||||
dog_N = regN "chien" masculine ;
|
||||
door_N = regN "porte" feminine ;
|
||||
drink_V2 = boire_V2 ;
|
||||
easy_A2V = mkA2V (regA "facile") dative genitive ;
|
||||
eat_V2 = dirV2 (regV "manger") ;
|
||||
empty_A = regA "vide" ;
|
||||
enemy_N = regN "ennemi" masculine ;
|
||||
factory_N = regN "usine" feminine ;
|
||||
father_N2 = deN2 (regN "père" masculine) ;
|
||||
fear_VS = mkVS (v2V craindre_V2) ;
|
||||
find_V2 = dirV2 (regV "trouver") ;
|
||||
fish_N = regN "poisson" masculine ;
|
||||
floor_N = regN "plancher" masculine ;
|
||||
forget_V2 = dirV2 (regV "oublier") ;
|
||||
fridge_N = regN "frigo" masculine ;
|
||||
friend_N = regN "ami" masculine ;
|
||||
fruit_N = regN "fruit" masculine ;
|
||||
fun_AV = mkAV (regA "marrant") genitive ;
|
||||
garden_N = regN "jardin" masculine ;
|
||||
girl_N = regN "fille" feminine ;
|
||||
glove_N = regN "gant" masculine ;
|
||||
gold_N = regN "or" masculine ;
|
||||
good_A = prefA (mkADeg (mkA "bon" "bonne" "bons" "bien")
|
||||
(mkA "meilleur" "meilleure" "meilleurs" "mieux")) ;
|
||||
go_V = aller_V ;
|
||||
green_A = regA "vert" ;
|
||||
harbour_N = regN "port" masculine ;
|
||||
hate_V2 = haïr_V2 ;
|
||||
hat_N = regN "chapeau" masculine ;
|
||||
have_V2 = avoir_V2 ;
|
||||
hear_V2 = entendre_V2 ;
|
||||
hill_N = regN "colline" feminine ;
|
||||
hope_VS = mkVS (reg3V "espérer" "espère" "espérera") ;
|
||||
horse_N = regN "cheval" masculine ;
|
||||
hot_A = regA "chaud" ;
|
||||
house_N = regN "maison" feminine ;
|
||||
important_A = regA "important" ;
|
||||
industry_N = regN "industrie" feminine ;
|
||||
iron_N = regN "fer" masculine ;
|
||||
king_N = regN "roi" masculine ;
|
||||
know_V2 = connaître_V2 ; ---- savoir_V2 : VS
|
||||
lake_N = regN "lac" masculine ;
|
||||
lamp_N = regN "lampe" feminine ;
|
||||
learn_V2 = apprendre_V2 ;
|
||||
leather_N = regN "cuir" masculine ;
|
||||
leave_V2 = dirV2 (regV "quitter") ;
|
||||
like_V2 = dirV2 (regV "aimer") ;
|
||||
listen_V2 = dirV2 (regV "écouter") ;
|
||||
live_V = v2V vivre_V2 ;
|
||||
long_A = compADeg (mkA "long" "longue" "longs" "longuement") ;
|
||||
lose_V2 = perdre_V2 ;
|
||||
love_N = regN "amour" masculine ;
|
||||
love_V2 = dirV2 (regV "aimer") ;
|
||||
man_N = regN "homme" masculine ;
|
||||
married_A2 = mkA2 (regA "marié") dative ;
|
||||
meat_N = regN "viande" feminine ;
|
||||
milk_N = regN "lait" masculine ;
|
||||
moon_N = regN "lune" feminine ;
|
||||
mother_N2 = deN2 (regN "mère" feminine) ;
|
||||
mountain_N = regN "montagne" feminine ;
|
||||
music_N = regN "musique" feminine ;
|
||||
narrow_A = regA "étroit" ;
|
||||
new_A = prefA (compADeg (mkA "nouveau" "nouvelle" "nouveaux" "nouvellement")) ;
|
||||
newspaper_N = regN "journal" masculine ;
|
||||
oil_N = regN "huile" feminine ;
|
||||
old_A =
|
||||
prefA (compADeg (mkA "vieux" "vieille" "vieux" "vieillement")) ; ---- vieil
|
||||
open_V2 = ouvrir_V2 ;
|
||||
paint_V2A = mkV2A (v2V peindre_V2) accusative ;
|
||||
paper_N = regN "papier" masculine ;
|
||||
peace_N = regN "paix" feminine ;
|
||||
pen_N = regN "stylo" masculine ;
|
||||
planet_N = regN "planète" feminine ;
|
||||
plastic_N = regN "plastic" masculine ;
|
||||
play_V2 = dirV2 (regV "jouer") ;
|
||||
policeman_N = regN "policier" masculine ;
|
||||
priest_N = regN "prêtre" masculine ;
|
||||
probable_AS = mkAS (regA "probable") ;
|
||||
queen_N = regN "reine" feminine ;
|
||||
radio_N = regN "radio" feminine ;
|
||||
rain_V0 = mkV0 (pleuvoir_V) ;
|
||||
read_V2 = lire_V2 ;
|
||||
red_A = regA "rouge" ;
|
||||
religion_N = regN "religion" feminine ;
|
||||
restaurant_N = regN "restaurant" masculine ;
|
||||
river_N = regN "rivière" feminine ;
|
||||
rock_N = regN "rocher" masculine ;
|
||||
roof_N = regN "toit" masculine ;
|
||||
rubber_N = regN "caoutchuc" masculine ;
|
||||
run_V = v2V courir_V2 ;
|
||||
say_VS = mkVS (v2V dire_V2) ;
|
||||
school_N = regN "école" feminine ;
|
||||
science_N = regN "science" feminine ;
|
||||
sea_N = regN "mer" feminine ;
|
||||
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" masculine ;
|
||||
ship_N = regN "bateau" masculine ;
|
||||
shirt_N = regN "chemise" feminine ;
|
||||
shoe_N = regN "chaussure" feminine ;
|
||||
shop_N = regN "magasin" masculine ;
|
||||
short_A = regA "court" ; ---- bref
|
||||
silver_N = regN "argent" masculine ;
|
||||
sister_N = regN "soeur" feminine ;
|
||||
sleep_V = v2V dormir_V2 ;
|
||||
small_A = prefA (regA "petit") ;
|
||||
snake_N = regN "serpent" masculine ;
|
||||
sock_N = regN "chaussette" feminine ;
|
||||
speak_V2 = dirV2 (regV "parler") ;
|
||||
star_N = regN "étoile" feminine ;
|
||||
steel_N = regN "acier" masculine ;
|
||||
stone_N = regN "pierre" feminine ;
|
||||
stove_N = regN "four" masculine ;
|
||||
student_N = regN "étudiant" masculine ;
|
||||
stupid_A = regA "stupide" ;
|
||||
sun_N = regN "soleil" masculine ;
|
||||
switch8off_V2 = éteindre_V2 ;
|
||||
switch8on_V2 = dirV2 (regV "allumer") ; ----
|
||||
table_N = regN "table" feminine ;
|
||||
talk_V3 = mkV3 (regV "parler") dative genitive ;
|
||||
teacher_N = regN "professeur" masculine ;
|
||||
teach_V2 = dirV2 (regV "enseigner") ;
|
||||
television_N = regN "télévision" feminine ;
|
||||
thick_A = compADeg (mkA "épais" "épaisse" "épais" "épaissement") ;
|
||||
thin_A = regA "fin" ;
|
||||
train_N = regN "train" masculine ;
|
||||
travel_V = regV "voyager" ;
|
||||
tree_N = regN "arbre" masculine ;
|
||||
---- trousers_N = regN "pantalon" masculine ;
|
||||
ugly_A = regA "laide" ;
|
||||
understand_V2 = comprendre_V2 ;
|
||||
university_N = regN "université" feminine ;
|
||||
village_N = regN "village" masculine ;
|
||||
wait_V2 = attendre_V2 ; ---- dative?
|
||||
walk_V = regV "marcher" ;
|
||||
warm_A = regA "chaud" ;
|
||||
war_N = regN "guerre" masculine ;
|
||||
watch_V2 = dirV2 (regV "regarder") ;
|
||||
water_N = regN "eau" feminine ;
|
||||
white_A = compADeg (mkA "blanc" "blanche" "blancs" "blanchement") ;
|
||||
window_N = regN "fenêtre" feminine ;
|
||||
wine_N = regN "vin" masculine ;
|
||||
win_V2 = dirV2 (regV "gagner") ; ---- vaincre
|
||||
woman_N = regN "femme" feminine ;
|
||||
wonder_VQ = mkVQ (regV "étonner") ; ----- s'étonner
|
||||
wood_N = regN "bois" masculine ;
|
||||
write_V2 = écrire_V2 ;
|
||||
yellow_A = regA "jaune" ;
|
||||
young_A = prefA (regA "jeune") ;
|
||||
|
||||
do_V2 = faire_V2 ;
|
||||
now_Adv = mkAdv "maintenant" ;
|
||||
already_Adv = mkAdv "déjà" ;
|
||||
song_N = regN "chanson" feminine ;
|
||||
add_V3 = dirV3 (regV "ajouter") dative ;
|
||||
number_N = regN "nombre" masculine ; ---- 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
|
||||
-}
|
||||
} ;
|
||||
100
lib/resource-1.0/french/BeschFre.gf
Normal file
100
lib/resource-1.0/french/BeschFre.gf
Normal file
@@ -0,0 +1,100 @@
|
||||
resource BeschFre = open Prelude, MorphoFre in {
|
||||
|
||||
oper VerbeN = {s : VF => Str} ;
|
||||
oper mkNV : Verbe -> VerbeN = \ve -> {s = vvf ve} ;
|
||||
|
||||
oper conj : Str -> Verbe = conj1aimer ; --- temp. default
|
||||
|
||||
oper v_nancy100inf : Str -> VerbeN = \ve -> {s = table {
|
||||
VInfin => ve ;
|
||||
_ => nonExist
|
||||
}
|
||||
} ;
|
||||
|
||||
|
||||
oper v_besch1 : Str -> VerbeN = \s -> mkNV (conjAvoir s) ;
|
||||
oper v_besch2 : Str -> VerbeN = \s -> mkNV (conjÊtre s) ;
|
||||
-- 3-5 not used
|
||||
oper v_besch6 : Str -> VerbeN = \s -> mkNV (conj1aimer s) ;
|
||||
oper v_besch7 : Str -> VerbeN = \s -> mkNV (conj1placer s) ;
|
||||
oper v_besch8 : Str -> VerbeN = \s -> mkNV (conj1manger s) ;
|
||||
oper v_besch9 : Str -> VerbeN = \s -> mkNV (conj1peser s) ;
|
||||
oper v_besch10 : Str -> VerbeN = \s -> mkNV (conj1céder s) ;
|
||||
oper v_besch11 : Str -> VerbeN = \s -> mkNV (conj1jeter s) ;
|
||||
oper v_besch12 : Str -> VerbeN = \s -> mkNV (conj1jeter s) ;
|
||||
oper v_besch13 : Str -> VerbeN = \s -> mkNV (conj1aimer s) ;
|
||||
oper v_besch14 : Str -> VerbeN = \s -> mkNV (conj1assiéger s) ;
|
||||
oper v_besch15 : Str -> VerbeN = \s -> mkNV (conj1aimer s) ; --- ?
|
||||
oper v_besch16 : Str -> VerbeN = \s -> mkNV (conj1payer s) ;
|
||||
oper v_besch17 : Str -> VerbeN = \s -> mkNV (conj1payer s) ;
|
||||
oper v_besch18 : Str -> VerbeN = \s -> mkNV (conj1envoyer s) ;
|
||||
oper v_besch19 : Str -> VerbeN = \s -> mkNV (conj2finir s) ;
|
||||
oper v_besch20 : Str -> VerbeN = \s -> mkNV (conj2haïr s) ;
|
||||
-- oper v_besch21 : Str -> VerbeN = \s -> mkNV (conj s) ; -- not used
|
||||
oper v_besch22 : Str -> VerbeN = \s -> mkNV (conj3aller s) ;
|
||||
oper v_besch23 : Str -> VerbeN = \s -> mkNV (conj3tenir s) ;
|
||||
oper v_besch24 : Str -> VerbeN = \s -> mkNV (conj3quérir s) ;
|
||||
oper v_besch25 : Str -> VerbeN = \s -> mkNV (conj3sentir s) ;
|
||||
oper v_besch26 : Str -> VerbeN = \s -> mkNV (conj3vêtir s) ;
|
||||
oper v_besch27 : Str -> VerbeN = \s -> mkNV (conj3couvrir s) ;
|
||||
oper v_besch28 : Str -> VerbeN = \s -> mkNV (conj3cueillir s) ;
|
||||
oper v_besch29 : Str -> VerbeN = \s -> mkNV (conj3assaillir s) ;
|
||||
oper v_besch30 : Str -> VerbeN = \s -> mkNV (conj3faillir s) ;
|
||||
oper v_besch31 : Str -> VerbeN = \s -> mkNV (conj3bouillir s) ;
|
||||
oper v_besch32 : Str -> VerbeN = \s -> mkNV (conj3dormir s) ;
|
||||
oper v_besch33 : Str -> VerbeN = \s -> mkNV (conj3courir s) ;
|
||||
oper v_besch34 : Str -> VerbeN = \s -> mkNV (conj3mourir s) ;
|
||||
oper v_besch35 : Str -> VerbeN = \s -> mkNV (conj3sentir s) ;
|
||||
oper v_besch36 : Str -> VerbeN = \s -> mkNV (conj3fuir s) ;
|
||||
oper v_besch37 : Str -> VerbeN = \s -> mkNV (conj3ouïr s) ;
|
||||
oper v_besch38 : Str -> VerbeN = \s -> mkNV (conj3cevoir s) ;
|
||||
oper v_besch39 : Str -> VerbeN = \s -> mkNV (conj3voir s) ;
|
||||
oper v_besch40 : Str -> VerbeN = \s -> mkNV (conj3pourvoir s) ;
|
||||
oper v_besch41 : Str -> VerbeN = \s -> mkNV (conj3savoir s) ;
|
||||
oper v_besch42 : Str -> VerbeN = \s -> mkNV (conj3devoir s) ;
|
||||
oper v_besch43 : Str -> VerbeN = \s -> mkNV (conj3pouvoir s) ;
|
||||
oper v_besch44 : Str -> VerbeN = \s -> mkNV (conj3mouvoir s) ;
|
||||
oper v_besch45 : Str -> VerbeN = \s -> mkNV (conj3pleuvoir s) ;
|
||||
oper v_besch46 : Str -> VerbeN = \s -> mkNV (conj3falloir s) ;
|
||||
oper v_besch47 : Str -> VerbeN = \s -> mkNV (conj3valoir s) ;
|
||||
oper v_besch48 : Str -> VerbeN = \s -> mkNV (conj3vouloir s) ;
|
||||
oper v_besch49 : Str -> VerbeN = \s -> mkNV (conj3asseoir s) ;
|
||||
oper v_besch50 : Str -> VerbeN = \s -> mkNV (conj3messeoir s) ; --- ?
|
||||
oper v_besch51 : Str -> VerbeN = \s -> mkNV (conj3surseoir s) ;
|
||||
oper v_besch52 : Str -> VerbeN = \s -> mkNV (conj3choir s) ;
|
||||
oper v_besch53 : Str -> VerbeN = \s -> mkNV (conj3rendre s) ;
|
||||
oper v_besch54 : Str -> VerbeN = \s -> mkNV (conj3prendre s) ;
|
||||
oper v_besch55 : Str -> VerbeN = \s -> mkNV (conj3battre s) ;
|
||||
oper v_besch56 : Str -> VerbeN = \s -> mkNV (conj3mettre s) ;
|
||||
oper v_besch57 : Str -> VerbeN = \s -> mkNV (conj3peindre s) ;
|
||||
oper v_besch58 : Str -> VerbeN = \s -> mkNV (conj3joindre s) ;
|
||||
oper v_besch59 : Str -> VerbeN = \s -> mkNV (conj3craindre s) ;
|
||||
oper v_besch60 : Str -> VerbeN = \s -> mkNV (conj3vaincre s) ;
|
||||
oper v_besch61 : Str -> VerbeN = \s -> mkNV (conj3traire s) ;
|
||||
oper v_besch62 : Str -> VerbeN = \s -> mkNV (conj3faire s) ;
|
||||
oper v_besch63 : Str -> VerbeN = \s -> mkNV (conj3plaire s) ;
|
||||
oper v_besch64 : Str -> VerbeN = \s -> mkNV (conj3connaître s) ;
|
||||
oper v_besch65 : Str -> VerbeN = \s -> mkNV (conj3naître s) ;
|
||||
oper v_besch66 : Str -> VerbeN = \s -> mkNV (conj3paître s) ;
|
||||
oper v_besch67 : Str -> VerbeN = \s -> mkNV (conj3croître s) ;
|
||||
oper v_besch68 : Str -> VerbeN = \s -> mkNV (conj3croire s) ;
|
||||
oper v_besch69 : Str -> VerbeN = \s -> mkNV (conj3boire s) ;
|
||||
oper v_besch70 : Str -> VerbeN = \s -> mkNV (conj3clore s) ;
|
||||
oper v_besch71 : Str -> VerbeN = \s -> mkNV (conj3conclure s) ;
|
||||
oper v_besch72 : Str -> VerbeN = \s -> mkNV (conj3absoudre s) ;
|
||||
oper v_besch73 : Str -> VerbeN = \s -> mkNV (conj3coudre s) ;
|
||||
oper v_besch74 : Str -> VerbeN = \s -> mkNV (conj3moudre s) ;
|
||||
oper v_besch75 : Str -> VerbeN = \s -> mkNV (conj3suivre s) ;
|
||||
oper v_besch76 : Str -> VerbeN = \s -> mkNV (conj3vivre s) ;
|
||||
oper v_besch77 : Str -> VerbeN = \s -> mkNV (conj3lire s) ;
|
||||
oper v_besch78 : Str -> VerbeN = \s -> mkNV (conj3dire s) ;
|
||||
oper v_besch79 : Str -> VerbeN = \s -> mkNV (conj3rire s) ;
|
||||
oper v_besch80 : Str -> VerbeN = \s -> mkNV (conj3écrire s) ;
|
||||
oper v_besch81 : Str -> VerbeN = \s -> mkNV (conj3confire s) ;
|
||||
oper v_besch82 : Str -> VerbeN = \s -> mkNV (conj3cuire s) ;
|
||||
|
||||
-- 83-99 not used
|
||||
|
||||
oper v_besch100 : Str -> VerbeN = \s -> mkNV (conj s) ; --- to do
|
||||
oper v_besch101 : Str -> VerbeN = \s -> mkNV (conj s) ; --- to do
|
||||
}
|
||||
4
lib/resource-1.0/french/CatFre.gf
Normal file
4
lib/resource-1.0/french/CatFre.gf
Normal file
@@ -0,0 +1,4 @@
|
||||
--# -path=.:../romance:../abstract:../common:prelude
|
||||
|
||||
concrete CatFre of Cat = CatRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
2
lib/resource-1.0/french/ConjunctionFre.gf
Normal file
2
lib/resource-1.0/french/ConjunctionFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete ConjunctionFre of Conjunction = CatFre ** ConjunctionRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
48
lib/resource-1.0/french/DiffFre.gf
Normal file
48
lib/resource-1.0/french/DiffFre.gf
Normal file
@@ -0,0 +1,48 @@
|
||||
--# -path=.:../romance:../abstract:../common:prelude
|
||||
|
||||
instance DiffFre of DiffRomance = open ResRomance, PhonoFre, Prelude in {
|
||||
|
||||
param
|
||||
Prep = P_de | P_a ;
|
||||
VAux = VHabere | VEsse ;
|
||||
|
||||
oper
|
||||
dative : Case = CPrep P_a ;
|
||||
genitive : Case = CPrep P_de ;
|
||||
|
||||
complAcc : Compl = {s = [] ; c = Acc} ;
|
||||
complGen : Compl = {s = [] ; c = genitive} ;
|
||||
complDat : Compl = {s = [] ; c = dative} ;
|
||||
|
||||
prepCase : Case -> Str = \c -> case c of {
|
||||
Nom => [] ;
|
||||
Acc => [] ;
|
||||
CPrep P_a => "à" ;
|
||||
CPrep P_de => elisDe
|
||||
} ;
|
||||
|
||||
artDef : Gender -> Number -> Case -> Str = \g,n,c ->
|
||||
case <g,n,c> of {
|
||||
<Masc,Sg, CPrep P_de> => pre {"du" ; ["de l'"] / voyelle} ;
|
||||
<Masc,Sg, CPrep P_a> => pre {"au" ; ["à l'"] / voyelle} ;
|
||||
<Masc,Sg, _> => elisLe ;
|
||||
<Fem, Sg, _> => prepCase c ++ elisLa ;
|
||||
<_, Pl, CPrep P_de> => "des" ;
|
||||
<_, Pl, CPrep P_a> => "aux" ;
|
||||
<_, Pl, _ > => "les"
|
||||
} ;
|
||||
|
||||
-- In these two, "de de/du/des" becomes "de".
|
||||
|
||||
artIndef = \g,n,c -> case <n,c> of {
|
||||
<Sg,_> => prepCase c ++ genForms "un" "une" ! g ;
|
||||
<Pl,CPrep P_de> => elisDe ;
|
||||
_ => prepCase c ++ "des"
|
||||
} ;
|
||||
|
||||
partitive = \g,c -> case c of {
|
||||
CPrep P_de => elisDe ;
|
||||
_ => prepCase c ++ artDef g Sg (CPrep P_de)
|
||||
} ;
|
||||
|
||||
}
|
||||
21
lib/resource-1.0/french/LangFre.gf
Normal file
21
lib/resource-1.0/french/LangFre.gf
Normal file
@@ -0,0 +1,21 @@
|
||||
--# -path=.:../romance:../abstract:../common:prelude
|
||||
|
||||
concrete LangFre of Lang =
|
||||
NounFre,
|
||||
-- VerbFre,
|
||||
-- AdjectiveFre,
|
||||
-- AdverbFre,
|
||||
-- NumeralFre,
|
||||
-- SentenceFre,
|
||||
-- QuestionFre,
|
||||
-- RelativeFre,
|
||||
-- ConjunctionFre,
|
||||
-- PhraseFre,
|
||||
-- TensedFre,
|
||||
-- StructuralFre,
|
||||
BasicFre
|
||||
** {
|
||||
|
||||
flags startcat = Phr ;
|
||||
|
||||
} ;
|
||||
82
lib/resource-1.0/french/LexFre.gf
Normal file
82
lib/resource-1.0/french/LexFre.gf
Normal file
@@ -0,0 +1,82 @@
|
||||
concrete LexFre of Lex = CatFre ** open ResFre, Prelude in {
|
||||
|
||||
lin
|
||||
walk_V =
|
||||
mkVerb "gå" "går" "gå" "gick" "gått" "gången" "gånget" "gångna" ;
|
||||
help_V2 =
|
||||
mkVerb "hjälpa" "hjälper" "hjälp" "hjälpte" "hjälpt" "hjälpt" "hjälpt" "hjälpta"
|
||||
** {c2 = []} ;
|
||||
show_V3 =
|
||||
mkVerb "visa" "visar" "visa" "visade" "visat" "visad" "visat" "visade"
|
||||
** {c2 = [] ; c3 = "to"} ;
|
||||
want_VV =
|
||||
mkVerb "vilja" "vill" "vilj" "ville" "velat" "velad" "velat" "velade" ---
|
||||
** {c2 = []} ;
|
||||
claim_VS =
|
||||
mkVerb "hävda" "hävdar" "hävda" "hävdade" "hävdat" "hävdad" "hävdat" "hävdade" ;
|
||||
ask_VQ =
|
||||
mkVerb "fråga" "frågar" "fråga" "frågade" "frågat" "frågad" "frågat" "frågade" ;
|
||||
|
||||
dog_N = mkNoun "hund" "hunden" "hundar" "hundarna" utrum ;
|
||||
son_N2 = mkNoun "son" "sonen" "söner" "sönerna" utrum ** {c2 = "till"} ;
|
||||
way_N3 = mkNoun "väg" "vägen" "vägar" "vägarna" utrum ** {c2 = "från" ; c3 = "till"} ;
|
||||
|
||||
warm_A =
|
||||
mkAdjective "varm" "varmt" "varma" "varma" "varmare" "varmast" "varmaste" ;
|
||||
close_A2 =
|
||||
mkAdjective "nära" "nära" "nära" "nära" "närmare" "närmast" "närmaste"
|
||||
** {c2 = "till"} ;
|
||||
|
||||
here_Adv = {s = "här"} ;
|
||||
very_AdA = {s = "mycket"} ;
|
||||
always_AdV = {s = "alltid"} ;
|
||||
|
||||
only_Predet = {s = \\_ => "bara"} ;
|
||||
all_Predet = {s = gennumForms "all" "allt" "alla"} ;
|
||||
this_Quant = {s = \\_ => genderForms "denna" "detta" ; n = Sg ; det = DDef Indef} ;
|
||||
these_Quant = {s = \\_,_ => "dessa" ; n = Pl ; det = DDef Indef} ;
|
||||
|
||||
i_Pron = mkNP "jag" "mig" "min" "mitt" "mina" SgUtr P1 ;
|
||||
he_Pron = mkNP "han" "honom" "hans" "hans" "hans" SgUtr P3 ;
|
||||
we_Pron = mkNP "vi" "oss" "vår" "vårt" "våra" Plg P1 ;
|
||||
|
||||
whoSg_IP = {s = vem.s ; gn = SgUtr} ;
|
||||
whoPl_IP = {s = vem.s ; gn = Plg} ;
|
||||
|
||||
when_IAdv = {s = "när"} ;
|
||||
where_IAdv = {s = "var"} ;
|
||||
why_IAdv = {s = "varför"} ;
|
||||
|
||||
whichSg_IDet = {s = genderForms "vilken" "vilket" ; n = Sg ; det = DDef Indef} ;
|
||||
whichPl_IDet = {s = \\_ => "vilka" ; n = Pl ; det = DDef Indef} ;
|
||||
|
||||
forty_Numeral = {
|
||||
s = table {
|
||||
NCard _ => "fyrtio" ;
|
||||
NOrd _ => "fyrtionde"
|
||||
} ;
|
||||
n = Sg
|
||||
} ;
|
||||
|
||||
in_Prep = {s = "i"} ;
|
||||
of_Prep = {s = "av"} ;
|
||||
|
||||
and_Conj = {s = "och" ; n = Pl} ;
|
||||
either7or_DConj = {s1 = "antingen" ; s2 = "eller" ; n = Sg} ;
|
||||
|
||||
if_Subj = ss "om" ;
|
||||
because_Subj = ss "eftersom" ;
|
||||
|
||||
but_PConj = {s = "men"} ;
|
||||
|
||||
please_Voc = {s = "," ++ "tack"} ;
|
||||
|
||||
more_CAdv = ss "mera" ;
|
||||
less_CAdv = ss "mindre" ;
|
||||
|
||||
-- Auxiliaries that are used repeatedly.
|
||||
|
||||
oper
|
||||
vem = mkNP "vem" "vem" "vems" "vems" "vems" SgUtr P3 ;
|
||||
|
||||
}
|
||||
2
lib/resource-1.0/french/MathFre.gf
Normal file
2
lib/resource-1.0/french/MathFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete MathFre of Math = CatFre ** MathRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
1366
lib/resource-1.0/french/MorphoFre.gf
Normal file
1366
lib/resource-1.0/french/MorphoFre.gf
Normal file
File diff suppressed because it is too large
Load Diff
2
lib/resource-1.0/french/NounFre.gf
Normal file
2
lib/resource-1.0/french/NounFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete NounFre of Noun = CatFre ** NounRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
47
lib/resource-1.0/french/NumeralFre.gf
Normal file
47
lib/resource-1.0/french/NumeralFre.gf
Normal file
@@ -0,0 +1,47 @@
|
||||
concrete NumeralFre of Numeral = CatFre ** open ResRomance, MorphoFre in {
|
||||
|
||||
lincat
|
||||
Digit = {s : DForm => CardOrd => Str} ;
|
||||
Sub10 = {s : DForm => CardOrd => Str ; n : Number} ;
|
||||
Sub100, Sub1000, Sub1000000 =
|
||||
{s : CardOrd => Str ; n : Number} ;
|
||||
|
||||
lin
|
||||
num x = x ;
|
||||
|
||||
n2 = mkTal "två" "tolv" "tjugo" "andra" "tolfte" ;
|
||||
n3 = mkTal "tre" "tretton" "trettio" "tredje" "trettonde" ;
|
||||
n4 = mkTal "fyra" "fjorton" "fyrtio" "fjärde" "fjortonde" ;
|
||||
n5 = mkTal "fem" "femton" "femtio" "femte" "femtonde" ;
|
||||
n6 = mkTal "sex" "sexton" "sextion" "sjätte" "sextonde" ;
|
||||
n7 = mkTal "sju" "sjutton" "sjuttio" "sjunde" "sjuttonde" ;
|
||||
n8 = mkTal "åtta" "arton" "åttio" "åttonde" "artonde" ;
|
||||
n9 = mkTal "nio" "nitton" "nittio" "nionde" "nittonde" ;
|
||||
|
||||
pot01 = {
|
||||
s = \\f => table {
|
||||
NCard g => case g of {Neutr => "ett" ; _ => "en"} ;
|
||||
_ => "första"
|
||||
} ;
|
||||
n = Sg
|
||||
} ;
|
||||
pot0 d = {s = \\f,g => d.s ! f ! g ; n = Pl} ;
|
||||
pot110 = numPl (cardReg "tio") ;
|
||||
pot111 = numPl (cardOrd "elva" "elfte") ;
|
||||
pot1to19 d = numPl (d.s ! ton) ;
|
||||
pot0as1 n = {s = n.s ! ental ; n = n.n} ;
|
||||
pot1 d = numPl (d.s ! tiotal) ;
|
||||
pot1plus d e = {s = \\g => d.s ! tiotal ! invNum ++ e.s ! ental ! g ; n = Pl} ;
|
||||
pot1as2 n = n ;
|
||||
pot2 d =
|
||||
numPl (\\g => d.s ! ental ! invNum ++ cardOrd "hundra" "hundrade" ! g) ;
|
||||
pot2plus d e =
|
||||
{s = \\g => d.s ! ental ! invNum ++ "hundra" ++ e.s ! g ; n = Pl} ;
|
||||
pot2as3 n = n ;
|
||||
pot3 n =
|
||||
numPl (\\g => n.s ! invNum ++ "tusen" ++ cardOrd "tusen" "tusende" ! g) ;
|
||||
pot3plus n m =
|
||||
{s = \\g => n.s ! invNum ++ "tusen" ++ m.s ! g ; n = Pl} ;
|
||||
|
||||
}
|
||||
|
||||
356
lib/resource-1.0/french/ParadigmsFre.gf
Normal file
356
lib/resource-1.0/french/ParadigmsFre.gf
Normal file
@@ -0,0 +1,356 @@
|
||||
--# -path=.:../romance:../common:../abstract:../../prelude
|
||||
|
||||
--1 French Lexical Paradigms
|
||||
--
|
||||
-- Aarne Ranta 2003
|
||||
--
|
||||
-- This is an API to the user of the resource grammar
|
||||
-- for adding lexical items. It gives functions for forming
|
||||
-- expressions of open categories: nouns, adjectives, verbs.
|
||||
--
|
||||
-- Closed categories (determiners, pronouns, conjunctions) are
|
||||
-- accessed through the resource syntax API, $Structural.gf$.
|
||||
--
|
||||
-- The main difference with $MorphoFre.gf$ is that the types
|
||||
-- referred to are compiled resource grammar types. We have moreover
|
||||
-- had the design principle of always having existing forms, rather
|
||||
-- than stems, as string arguments of the paradigms.
|
||||
--
|
||||
-- The structure of functions for each word class $C$ is the following:
|
||||
-- first we give a handful of patterns that aim to cover all
|
||||
-- regular cases. Then we give a worst-case function $mkC$, which serves as an
|
||||
-- escape to construct the most irregular words of type $C$.
|
||||
-- However, this function should only seldom be needed: we have a
|
||||
-- separate module $IrregularEng$, which covers all irregularly inflected
|
||||
-- words.
|
||||
|
||||
resource ParadigmsFre =
|
||||
open
|
||||
(Predef=Predef),
|
||||
Prelude,
|
||||
ResRomance,
|
||||
DiffFre,
|
||||
MorphoFre,
|
||||
CatFre in {
|
||||
|
||||
flags optimize=all ;
|
||||
|
||||
--2 Parameters
|
||||
--
|
||||
-- To abstract over gender names, we define the following identifiers.
|
||||
|
||||
oper
|
||||
Gender : Type ;
|
||||
|
||||
masculine : Gender ;
|
||||
feminine : Gender ;
|
||||
|
||||
-- To abstract over number names, we define the following.
|
||||
|
||||
Number : Type ;
|
||||
|
||||
singular : Number ;
|
||||
plural : Number ;
|
||||
|
||||
-- Prepositions used in many-argument functions are either strings
|
||||
-- (including the 'accusative' empty string) or strings that
|
||||
-- amalgamate with the following word (the 'genitive' "de" and the
|
||||
-- 'dative' "à").
|
||||
|
||||
Preposition : Type ;
|
||||
|
||||
accusative : Preposition ;
|
||||
genitive : Preposition ;
|
||||
dative : Preposition ;
|
||||
|
||||
mkPreposition : Str -> Preposition ;
|
||||
|
||||
|
||||
--2 Nouns
|
||||
|
||||
-- Worst case: give both two forms and the gender.
|
||||
|
||||
mkN : (oeil,yeux : Str) -> Gender -> N ;
|
||||
|
||||
-- The regular function takes the singular form and the gender,
|
||||
-- and computes the plural by a heuristic. The heuristic currently
|
||||
-- covers the cases "pas-pas", "prix-prix", "nez-nez",
|
||||
-- "bijou-bijoux", "cheveu-cheveux", "plateau-plateaux", "cheval-chevaux".
|
||||
-- If in doubt, use the $cc$ command to test!
|
||||
|
||||
regN : Str -> Gender -> N ;
|
||||
|
||||
|
||||
--3 Compound nouns
|
||||
--
|
||||
-- Some nouns are ones where the first part is inflected as a noun but
|
||||
-- the second part is not inflected. e.g. "numéro de téléphone".
|
||||
-- They could be formed in syntax, but we give a shortcut here since
|
||||
-- they are frequent in lexica.
|
||||
|
||||
compN : N -> Str -> N ;
|
||||
|
||||
|
||||
--3 Relational nouns
|
||||
--
|
||||
-- Relational nouns ("fille de x") need a case and a preposition.
|
||||
|
||||
mkN2 : N -> Preposition -> N2 ;
|
||||
|
||||
-- The most common cases are the genitive "de" and the dative "à",
|
||||
-- with the empty preposition.
|
||||
|
||||
deN2 : N -> N2 ;
|
||||
aN2 : N -> N2 ;
|
||||
|
||||
-- Three-place relational nouns ("la connection de x à y") need two prepositions.
|
||||
|
||||
mkN3 : N -> Preposition -> Preposition -> N3 ;
|
||||
|
||||
|
||||
--3 Relational common noun phrases
|
||||
--
|
||||
-- In some cases, you may want to make a complex $CN$ into a
|
||||
-- relational noun (e.g. "the old town hall of"). However, $N2$ and
|
||||
-- $N3$ are purely lexical categories. But you can use the $AdvCN$
|
||||
-- and $PrepNP$ constructions to build phrases like this.
|
||||
|
||||
--
|
||||
--3 Proper names and noun phrases
|
||||
--
|
||||
-- Proper names need a string and a gender.
|
||||
|
||||
mkPN : Str -> Gender -> PN ; -- Jean
|
||||
|
||||
-- To form a noun phrase that can also be plural,
|
||||
-- you can use the worst-case function.
|
||||
|
||||
mkNP : Str -> Gender -> Number -> NP ;
|
||||
|
||||
--2 Adjectives
|
||||
|
||||
-- Non-comparison one-place adjectives need four forms in the worst
|
||||
-- case (masc and fem singular, masc plural, adverbial).
|
||||
|
||||
mkA : (banal,banale,banaux,banalement : Str) -> A ;
|
||||
|
||||
-- For regular adjectives, all other forms are derived from the
|
||||
-- masculine singular. The heuristic takes into account certain
|
||||
-- deviant endings: "banal- -banaux", "chinois- -chinois",
|
||||
-- "heureux-heureuse-heureux", "italien-italienne", "jeune-jeune",
|
||||
-- "amer-amère", "carré- - -carrément", "joli- - -joliment".
|
||||
|
||||
regA : Str -> A ;
|
||||
|
||||
-- These functions create postfix adjectives. To switch
|
||||
-- them to prefix ones (i.e. ones placed before the noun in
|
||||
-- modification, as in "petite maison"), the following function is
|
||||
-- provided.
|
||||
|
||||
prefA : A -> A ;
|
||||
|
||||
--3 Two-place adjectives
|
||||
--
|
||||
-- Two-place adjectives need a preposition for their second argument.
|
||||
|
||||
mkA2 : A -> Preposition -> A2 ;
|
||||
|
||||
--3 Comparison adjectives
|
||||
|
||||
-- Comparison adjectives are in the worst case put up from two
|
||||
-- adjectives: the positive ("bon"), and the comparative ("meilleure").
|
||||
|
||||
mkADeg : A -> A -> A ;
|
||||
|
||||
-- If comparison is formed by "plus", as usual in French,
|
||||
-- the following pattern is used:
|
||||
|
||||
compADeg : A -> A ;
|
||||
|
||||
-- From a given $A$, it is possible to get back to $A$.
|
||||
|
||||
adegA : A -> A ;
|
||||
|
||||
-- For prefixed adjectives, the following function is
|
||||
-- provided.
|
||||
|
||||
prefA : A -> A ;
|
||||
|
||||
--2 Adverbs
|
||||
|
||||
-- Adverbs are not inflected. Most lexical ones have position
|
||||
-- after the verb.
|
||||
|
||||
mkAdv : Str -> Adv ;
|
||||
|
||||
-- Some appear next to the verb (e.g. "toujours").
|
||||
|
||||
mkAdV : Str -> AdV ;
|
||||
|
||||
-- Adverbs modifying adjectives and sentences can also be formed.
|
||||
|
||||
mkAdA : Str -> AdA ;
|
||||
|
||||
|
||||
--2 Verbs
|
||||
--
|
||||
-- Irregular verbs are given in the module $VerbsFre$.
|
||||
-- If a verb should be missing in that list, the module
|
||||
-- $BeschFre$ gives all the patterns of the "Bescherelle" book.
|
||||
--
|
||||
-- Regular verbs are ones with the infinitive "er" or "ir", the
|
||||
-- latter with plural present indicative forms as "finissons".
|
||||
-- The regular verb function is the first conjugation recognizes
|
||||
-- these endings, as well as the variations among
|
||||
-- "aimer, céder, placer, peser, jeter, placer, manger, assiéger, payer".
|
||||
|
||||
regV : Str -> V ;
|
||||
|
||||
-- Sometimes, however, it is not predictable which variant of the "er"
|
||||
-- conjugation is to be selected. Then it is better to use the function
|
||||
-- that gives the third person singular present indicative and future
|
||||
-- (("il") "jette", "jettera") as second argument.
|
||||
|
||||
reg3V : (jeter,jette,jettera : Str) -> V ;
|
||||
|
||||
-- The function $regV$ gives all verbs the compound auxiliary "avoir".
|
||||
-- To change it to "être", use the following function.
|
||||
|
||||
etreV : V -> V ;
|
||||
|
||||
--3 Two-place verbs
|
||||
--
|
||||
-- Two-place verbs need a preposition, except the special case with direct object.
|
||||
-- (transitive verbs). Notice that a particle comes from the $V$.
|
||||
|
||||
mkV2 : V -> Preposition -> V2 ;
|
||||
|
||||
dirV2 : V -> V2 ;
|
||||
|
||||
-- You can reuse a $V2$ verb in $V$.
|
||||
|
||||
v2V : V2 -> V ;
|
||||
|
||||
--3 Three-place verbs
|
||||
--
|
||||
-- Three-place (ditransitive) verbs need two prepositions, of which
|
||||
-- the first one or both can be absent.
|
||||
|
||||
mkV3 : V -> Preposition -> Preposition -> V3 ; -- parler, à, de
|
||||
dirV3 : V -> Preposition -> V3 ; -- donner,_,à
|
||||
dirdirV3 : V -> V3 ; -- donner,_,_
|
||||
|
||||
--3 Other complement patterns
|
||||
--
|
||||
-- Verbs and adjectives can take complements such as sentences,
|
||||
-- questions, verb phrases, and adjectives.
|
||||
|
||||
mkV0 : V -> V0 ;
|
||||
mkVS : V -> VS ;
|
||||
mkV2S : V -> Preposition -> V2S ;
|
||||
mkVV : V -> VV ; -- plain infinitive: "je veux parler"
|
||||
deVV : V -> VV ; -- "j'essaie de parler"
|
||||
aVV : V -> VV ; -- "j'arrive à parler"
|
||||
mkV2V : V -> Preposition -> Preposition -> V2V ;
|
||||
mkVA : V -> VA ;
|
||||
mkV2A : V -> Preposition -> V2A ;
|
||||
mkVQ : V -> VQ ;
|
||||
mkV2Q : V -> Preposition -> V2Q ;
|
||||
|
||||
mkAS : A -> AS ;
|
||||
subjAS : A -> AS ;
|
||||
mkA2S : A -> Preposition -> A2S ;
|
||||
mkAV : A -> Preposition -> AV ;
|
||||
mkA2V : A -> Preposition -> Preposition -> A2V ;
|
||||
|
||||
-- Notice: categories $V2S, V2V, V2A, V2Q$ are in v 1.0 treated
|
||||
-- just as synonyms of $V2$, and the second argument is given
|
||||
-- as an adverb. Likewise $AS, A2S, AV, A2V$ are just $A$.
|
||||
-- $V0$ is just $V$.
|
||||
|
||||
V0, V2S, V2V, V2A, V2Q : Type ;
|
||||
AS, A2S, AV, A2V : Type ;
|
||||
|
||||
--2 Definitions of the paradigms
|
||||
--
|
||||
-- The definitions should not bother the user of the API. So they are
|
||||
-- hidden from the document.
|
||||
--.
|
||||
|
||||
Gender = MorphoFre.Gender ;
|
||||
Number = MorphoFre.Number ;
|
||||
masculine = Masc ;
|
||||
feminine = Fem ;
|
||||
singular = Sg ;
|
||||
plural = Pl ;
|
||||
|
||||
Preposition = Compl ;
|
||||
accusative = complAcc ;
|
||||
genitive = complGen ;
|
||||
dative = complDat ;
|
||||
mkPreposition p = {s = p ; c = Acc} ;
|
||||
|
||||
mkN x y g = mkCNomIrreg x y g ** {lock_N = <>} ;
|
||||
regN x g = mkNomReg x g ** {lock_N = <>} ;
|
||||
compN x y = {s = \\n => x.s ! n ++ y ; g = x.g ; lock_N = <>} ;
|
||||
|
||||
mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ;
|
||||
deN2 n = mkN2 n genitive ;
|
||||
aN2 n = mkN2 n dative ;
|
||||
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ;
|
||||
|
||||
mkPN x g = {s = x ; g = g} ** {lock_PN = <>} ;
|
||||
|
||||
mkA a b c d = compADeg {s = \\_ => (mkAdj a c b d).s ; isPre = False ; lock_A = <>} ;
|
||||
regA a = compADeg {s = \\_ => (mkAdjReg a).s ; isPre = False ; lock_A = <>} ;
|
||||
prefA a = {s = a.s ; isPre = True ; lock_A = <>} ;
|
||||
|
||||
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
|
||||
|
||||
mkADeg a b =
|
||||
{s = table {Posit => a.s ! Posit ; _ => b.s ! Posit} ; isPre = a.isPre ; lock_A = <>} ;
|
||||
compADeg a =
|
||||
{s = table {Posit => a.s ! Posit ; _ => \\f => "plus" ++ a.s ! Posit ! f} ; isPre = a.isPre ;
|
||||
lock_A = <>} ;
|
||||
prefA a = {s = a.s ; isPre = True ; lock_A = <>} ;
|
||||
|
||||
|
||||
mkAdv x = ss x ** {lock_Adv = <>} ;
|
||||
mkAdV x = ss x ** {lock_AdV = <>} ;
|
||||
mkAdA x = ss x ** {lock_AdA = <>} ;
|
||||
|
||||
regV x = let v = vvf (mkVerbReg x) in {s = v ; aux = VHabere ; lock_V = <> ; isRefl = False} ;
|
||||
reg3V x y z = let v = vvf (mkVerb3Reg x y z) in {s = v ; aux = VHabere ; lock_V = <> ; isRefl = False} ;
|
||||
etreV v = {s = v.s ; aux = VEsse ; lock_V = <> ; isRefl = False} ;
|
||||
|
||||
mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ;
|
||||
dirV2 v = mkV2 v accusative ;
|
||||
v2V v = v ** {lock_V = <>} ;
|
||||
|
||||
mkV3 v p q = v ** {c2 = p ; c3 = q ; lock_V3 = <>} ;
|
||||
dirV3 v p = mkV3 v complAcc p ;
|
||||
dirdirV3 v = dirV3 v complDat ;
|
||||
|
||||
V0 : Type = V ;
|
||||
V2S, V2V, V2Q, V2A : Type = V2 ;
|
||||
AS, AV : Type = A ;
|
||||
A2S, A2V : Type = A2 ;
|
||||
|
||||
mkV0 v = v ** {lock_V0 = <>} ;
|
||||
mkVS v = v ** {mn,mp = Indic ; lock_VS = <>} ; ---- more moods
|
||||
mkV2S v p = mkV2 v p ** {mn,mp = Indic ; lock_V2S = <>} ;
|
||||
mkVV v = v ** {c2 = complAcc ; lock_VV = <>} ;
|
||||
deVV v = v ** {c2 = complGen ; lock_VV = <>} ;
|
||||
aVV v = v ** {c2 = complDat ; lock_VV = <>} ;
|
||||
mkV2V v p t = mkV2 v p ** {c3 = t.p1 ; s3 = p.p2 ; lock_V2V = <>} ;
|
||||
mkVA v = v ** {lock_VA = <>} ;
|
||||
mkV2A v p = mkV2 v p ** {lock_V2A = <>} ;
|
||||
mkVQ v = v ** {lock_VQ = <>} ;
|
||||
mkV2Q v p = mkV2 v p ** {lock_V2Q = <>} ;
|
||||
|
||||
mkAS v = v ** {lock_AS = <>} ; ---- more moods
|
||||
mkA2S v p = mkA2 v p ** {lock_A2S = <>} ;
|
||||
mkAV v p = v ** {c = p.p1 ; s2 = p.p2 ; lock_AV = <>} ;
|
||||
mkA2V v p q = mkA2 v p ** {s3 = q.p2 ; c3 = q.p1 ; lock_A2V = <>} ;
|
||||
|
||||
} ;
|
||||
26
lib/resource-1.0/french/PhonoFre.gf
Normal file
26
lib/resource-1.0/french/PhonoFre.gf
Normal file
@@ -0,0 +1,26 @@
|
||||
resource PhonoFre = open Prelude in {
|
||||
|
||||
oper
|
||||
voyelle : Strs = strs {
|
||||
"a" ; "â" ; "à" ; "e" ; "ê" ; "é" ; "è" ;
|
||||
"h" ;
|
||||
"i" ; "î" ; "o" ; "ô" ; "u" ; "û" ; "y"
|
||||
} ;
|
||||
|
||||
elision : Str -> Str = \d -> d + pre {"e" ; "'" / voyelle} ;
|
||||
|
||||
-- The following morphemes are the most common uses of elision.
|
||||
|
||||
elisDe = elision "d" ;
|
||||
elisLa = pre {"la" ; "l'" / voyelle} ;
|
||||
elisLe = elision "l" ;
|
||||
elisNe = elision "n" ;
|
||||
elisQue = elision "qu" ;
|
||||
|
||||
-- The subjunction "si" has a special kind of elision. The rule is
|
||||
-- only approximatively correct, for "si" is not really elided before
|
||||
-- the string "il" in general, but before the pronouns "il" and "ils".
|
||||
|
||||
elisSi = pre {"si" ; "s'" / strs {"il"}} ;
|
||||
|
||||
}
|
||||
2
lib/resource-1.0/french/PhraseFre.gf
Normal file
2
lib/resource-1.0/french/PhraseFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete PhraseFre of Phrase = CatFre, TenseX ** PhraseRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
2
lib/resource-1.0/french/QuestionFre.gf
Normal file
2
lib/resource-1.0/french/QuestionFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete QuestionFre of Question = CatFre ** QuestionRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
2
lib/resource-1.0/french/RelativeFre.gf
Normal file
2
lib/resource-1.0/french/RelativeFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete RelativeFre of Relative = CatFre ** RelativeRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
268
lib/resource-1.0/french/ResFre.gf
Normal file
268
lib/resource-1.0/french/ResFre.gf
Normal file
@@ -0,0 +1,268 @@
|
||||
----1 French auxiliary operations.
|
||||
--
|
||||
---- This module contains operations that are needed to make the
|
||||
---- resource syntax work. To define everything that is needed to
|
||||
---- implement $Test$, it moreover contains regular lexical
|
||||
---- patterns needed for $Lex$.
|
||||
--
|
||||
resource ResFre = ParamRomance, ResRomance, DiffFre ** open Prelude in {
|
||||
|
||||
flags optimize=all ;
|
||||
|
||||
oper
|
||||
|
||||
-- For $Lex$.
|
||||
|
||||
-- For each lexical category, here are the worst-case constructors.
|
||||
|
||||
mkNoun : (_,_,_,_ : Str) -> Gender ->
|
||||
{s : Number => Species => Case => Str ; g : Gender} =
|
||||
\man,mannen,men,mennen,g -> {
|
||||
s = nounForms man mannen men mennen ;
|
||||
g = g
|
||||
} ;
|
||||
|
||||
-- mkAdjective : (_,_,_,_ : Str) -> {s : AForm => Str} =
|
||||
-- \good,better,best,well -> {
|
||||
-- s = table {
|
||||
-- AAdj Posit => good ;
|
||||
-- AAdj Compar => better ;
|
||||
-- AAdj Superl => best ;
|
||||
-- AAdv => well
|
||||
-- }
|
||||
-- } ;
|
||||
--
|
||||
-- mkVerb : (_,_,_,_,_ : Str) -> {s : VForm => Str} =
|
||||
-- \go,goes,went,gone,going -> {
|
||||
-- s = table {
|
||||
-- VInf => go ;
|
||||
-- VPres => goes ;
|
||||
-- VPast => went ;
|
||||
-- VPPart => gone ;
|
||||
-- VPresPart => going
|
||||
-- }
|
||||
-- } ;
|
||||
--
|
||||
-- mkIP : (i,me,my : Str) -> Number -> {s : Case => Str ; n : Number} =
|
||||
-- \i,me,my,n -> let who = mkNP i me my n P3 in {s = who.s ; n = n} ;
|
||||
--
|
||||
-- mkNP : (i,me,my : Str) -> Number -> Person -> {s : Case => Str ; a : Agr} =
|
||||
-- \i,me,my,n,p -> {
|
||||
-- s = table {
|
||||
-- Nom => i ;
|
||||
-- Acc => me ;
|
||||
-- Gen => my
|
||||
-- } ;
|
||||
-- a = {
|
||||
-- n = n ;
|
||||
-- p = p
|
||||
-- }
|
||||
-- } ;
|
||||
--
|
||||
---- These functions cover many cases; full coverage inflectional patterns are
|
||||
---- in $MorphoRomance$.
|
||||
--
|
||||
-- regN : Str -> {s : Number => Case => Str} = \car ->
|
||||
-- mkNoun car (car + "'s") (car + "s") (car + "s'") ;
|
||||
--
|
||||
-- regA : Str -> {s : AForm => Str} = \warm ->
|
||||
-- mkAdjective warm (warm + "er") (warm + "est") (warm + "ly") ;
|
||||
--
|
||||
-- regV : Str -> {s : VForm => Str} = \walk ->
|
||||
-- mkVerb walk (walk + "s") (walk + "ed") (walk + "ed") (walk + "ing") ;
|
||||
--
|
||||
-- regNP : Str -> Number -> {s : Case => Str ; a : Agr} = \that,n ->
|
||||
-- mkNP that that (that + "'s") n P3 ;
|
||||
--
|
||||
---- We have just a heuristic definition of the indefinite article.
|
||||
---- There are lots of exceptions: consonantic "e" ("euphemism"), consonantic
|
||||
---- "o" ("one-sided"), vocalic "u" ("umbrella").
|
||||
--
|
||||
-- artIndef = pre {
|
||||
-- "a" ;
|
||||
-- "an" / strs {"a" ; "e" ; "i" ; "o" ; "A" ; "E" ; "I" ; "O" }
|
||||
-- } ;
|
||||
--
|
||||
-- artDef = "the" ;
|
||||
--
|
||||
---- For $Verb$.
|
||||
--
|
||||
-- Verb : Type = {
|
||||
-- s : VForm => Str
|
||||
-- } ;
|
||||
--
|
||||
-- VerbForms : Type =
|
||||
-- Tense => Anteriority => Polarity => Ord => Agr => {fin, inf : Str} ;
|
||||
--
|
||||
-- VP : Type = {
|
||||
-- s : VerbForms ;
|
||||
-- s2 : Agr => Str
|
||||
-- } ;
|
||||
--
|
||||
-- predV : Verb -> VP = \verb -> {
|
||||
-- s = \\t,ant,b,ord,agr =>
|
||||
-- let
|
||||
-- inf = verb.s ! VInf ;
|
||||
-- fin = presVerb verb agr ;
|
||||
-- past = verb.s ! VPast ;
|
||||
-- part = verb.s ! VPPart ;
|
||||
-- vf : Str -> Str -> {fin, inf : Str} = \x,y ->
|
||||
-- {fin = x ; inf = y} ;
|
||||
-- in
|
||||
-- case <t,ant,b,ord> of {
|
||||
-- <Pres,Simul,Pos,ODir> => vf fin [] ;
|
||||
-- <Pres,Simul,Pos,OQuest> => vf (does agr) inf ;
|
||||
-- <Pres,Simul,Neg,_> => vf (doesnt agr) inf ;
|
||||
-- <Pres,Anter,Pos,_> => vf (have agr) part ;
|
||||
-- <Pres,Anter,Neg,_> => vf (havent agr) part ;
|
||||
-- <Past,Simul,Pos,ODir> => vf past [] ;
|
||||
-- <Past,Simul,Pos,OQuest> => vf "did" inf ;
|
||||
-- <Past,Simul,Neg,_> => vf "didn't" inf ;
|
||||
-- <Past,Anter,Pos,_> => vf "had" part ;
|
||||
-- <Past,Anter,Neg,_> => vf "hadn't" part ;
|
||||
-- <Fut, Simul,Pos,_> => vf "will" inf ;
|
||||
-- <Fut, Simul,Neg,_> => vf "won't" inf ;
|
||||
-- <Fut, Anter,Pos,_> => vf "will" ("have" ++ part) ;
|
||||
-- <Fut, Anter,Neg,_> => vf "won't" ("have" ++ part) ;
|
||||
-- <Cond,Simul,Pos,_> => vf "would" inf ;
|
||||
-- <Cond,Simul,Neg,_> => vf "wouldn't" inf ;
|
||||
-- <Cond,Anter,Pos,_> => vf "would" ("have" ++ part) ;
|
||||
-- <Cond,Anter,Neg,_> => vf "wouldn't" ("have" ++ part)
|
||||
-- } ;
|
||||
-- s2 = \\_ => []
|
||||
-- } ;
|
||||
--
|
||||
-- predAux : Aux -> VP = \verb -> {
|
||||
-- s = \\t,ant,b,ord,agr =>
|
||||
-- let
|
||||
-- inf = verb.inf ;
|
||||
-- fin = verb.pres ! b ! agr ;
|
||||
-- past = verb.past ! b ! agr ;
|
||||
-- part = verb.ppart ;
|
||||
-- vf : Str -> Str -> {fin, inf : Str} = \x,y ->
|
||||
-- {fin = x ; inf = y} ;
|
||||
-- in
|
||||
-- case <t,ant,b,ord> of {
|
||||
-- <Pres,Simul,_, _> => vf fin [] ;
|
||||
-- <Pres,Anter,Pos,_> => vf (have agr) part ;
|
||||
-- <Pres,Anter,Neg,_> => vf (havent agr) part ;
|
||||
-- <Past,Simul,_, _> => vf past [] ;
|
||||
-- <Past,Anter,Pos,_> => vf "had" part ;
|
||||
-- <Past,Anter,Neg,_> => vf "hadn't" part ;
|
||||
-- <Fut, Simul,Pos,_> => vf "will" inf ;
|
||||
-- <Fut, Simul,Neg,_> => vf "won't" inf ;
|
||||
-- <Fut, Anter,Pos,_> => vf "will" ("have" ++ part) ;
|
||||
-- <Fut, Anter,Neg,_> => vf "won't" ("have" ++ part) ;
|
||||
-- <Cond,Simul,Pos,_> => vf "would" inf ;
|
||||
-- <Cond,Simul,Neg,_> => vf "wouldn't" inf ;
|
||||
-- <Cond,Anter,Pos,_> => vf "would" ("have" ++ part) ;
|
||||
-- <Cond,Anter,Neg,_> => vf "wouldn't" ("have" ++ part)
|
||||
-- } ;
|
||||
-- s2 = \\_ => []
|
||||
-- } ;
|
||||
--
|
||||
-- insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> {
|
||||
-- s = vp.s ;
|
||||
-- s2 = \\a => vp.s2 ! a ++ obj ! a
|
||||
-- } ;
|
||||
--
|
||||
----- This is not functional.
|
||||
--
|
||||
-- insertAdV : Str -> VP -> VP = \adv,vp -> {
|
||||
-- s = vp.s ;
|
||||
-- s2 = vp.s2
|
||||
-- } ;
|
||||
--
|
||||
-- presVerb : {s : VForm => Str} -> Agr -> Str = \verb ->
|
||||
-- agrVerb (verb.s ! VPres) (verb.s ! VInf) ;
|
||||
--
|
||||
-- infVP : VP -> Agr -> Str = \vp,a ->
|
||||
-- (vp.s ! Fut ! Simul ! Neg ! ODir ! a).inf ++ vp.s2 ! a ;
|
||||
--
|
||||
-- agrVerb : Str -> Str -> Agr -> Str = \has,have,agr ->
|
||||
-- case agr of {
|
||||
-- {n = Sg ; p = P3} => has ;
|
||||
-- _ => have
|
||||
-- } ;
|
||||
--
|
||||
-- have = agrVerb "has" "have" ;
|
||||
-- havent = agrVerb "hasn't" "haven't" ;
|
||||
-- does = agrVerb "does" "do" ;
|
||||
-- doesnt = agrVerb "doesn't" "don't" ;
|
||||
--
|
||||
-- Aux = {pres,past : Polarity => Agr => Str ; inf,ppart : Str} ;
|
||||
--
|
||||
-- auxBe : Aux = {
|
||||
-- pres = \\b,a => case <b,a> of {
|
||||
-- <Pos,{n = Sg ; p = P1}> => "am" ;
|
||||
-- <Neg,{n = Sg ; p = P1}> => ["am not"] ; --- am not I
|
||||
-- _ => agrVerb (posneg b "is") (posneg b "are") a
|
||||
-- } ;
|
||||
-- past = \\b,a => agrVerb (posneg b "was") (posneg b "were") a ;
|
||||
-- inf = "be" ;
|
||||
-- ppart = "been"
|
||||
-- } ;
|
||||
--
|
||||
-- posneg : Polarity -> Str -> Str = \p,s -> case p of {
|
||||
-- Pos => s ;
|
||||
-- Neg => s + "n't"
|
||||
-- } ;
|
||||
--
|
||||
-- conjThat : Str = "that" ;
|
||||
--
|
||||
-- reflPron : Agr => Str = table {
|
||||
-- {n = Sg ; p = P1} => "myself" ;
|
||||
-- {n = Sg ; p = P2} => "yourself" ;
|
||||
-- {n = Sg ; p = P3} => "itself" ; ----
|
||||
-- {n = Pl ; p = P1} => "ourselves" ;
|
||||
-- {n = Pl ; p = P2} => "yourselves" ;
|
||||
-- {n = Pl ; p = P3} => "themselves"
|
||||
-- } ;
|
||||
--
|
||||
---- For $Sentence$.
|
||||
--
|
||||
-- Clause : Type = {
|
||||
-- s : Tense => Anteriority => Polarity => Ord => Str
|
||||
-- } ;
|
||||
--
|
||||
-- mkS : Str -> Agr -> VerbForms -> (Agr => Str) -> Clause =
|
||||
-- \subj,agr,verb,compl0 -> {
|
||||
-- s = \\t,a,b,o =>
|
||||
-- let
|
||||
-- verb = verb ! t ! a ! b ! o ! agr ;
|
||||
-- compl = compl0 ! agr
|
||||
-- in
|
||||
-- case o of {
|
||||
-- ODir => subj ++ verb.fin ++ verb.inf ++ compl ;
|
||||
-- OQuest => verb.fin ++ subj ++ verb.inf ++ compl
|
||||
-- }
|
||||
-- } ;
|
||||
--
|
||||
--
|
||||
---- For $Numeral$.
|
||||
--
|
||||
-- mkNum : Str -> Str -> Str -> Str -> {s : DForm => CardOrd => Str} =
|
||||
-- \two, twelve, twenty, second ->
|
||||
-- {s = table {
|
||||
-- unit => table {NCard => two ; NOrd => second} ;
|
||||
-- teen => \\c => mkCard c twelve ;
|
||||
-- ten => \\c => mkCard c twenty
|
||||
-- }
|
||||
-- } ;
|
||||
--
|
||||
-- regNum : Str -> {s : DForm => CardOrd => Str} =
|
||||
-- \six -> mkNum six (six + "teen") (six + "ty") (regOrd six) ;
|
||||
--
|
||||
-- regCardOrd : Str -> {s : CardOrd => Str} = \ten ->
|
||||
-- {s = table {NCard => ten ; NOrd => regOrd ten}} ;
|
||||
--
|
||||
-- mkCard : CardOrd -> Str -> Str = \c,ten ->
|
||||
-- (regCardOrd ten).s ! c ;
|
||||
--
|
||||
-- regOrd : Str -> Str = \ten ->
|
||||
-- case last ten of {
|
||||
-- "y" => init ten + "ieth" ;
|
||||
-- _ => ten + "th"
|
||||
-- } ;
|
||||
--
|
||||
}
|
||||
2
lib/resource-1.0/french/SentenceFre.gf
Normal file
2
lib/resource-1.0/french/SentenceFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete SentenceFre of Sentence = CatFre ** SentenceRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
115
lib/resource-1.0/french/StructuralFre.gf
Normal file
115
lib/resource-1.0/french/StructuralFre.gf
Normal file
@@ -0,0 +1,115 @@
|
||||
concrete StructuralFre of Structural = CatFre **
|
||||
open MorphoFre, Prelude in {
|
||||
|
||||
flags optimize=all ;
|
||||
|
||||
lin
|
||||
above_Prep = ss "ovanför" ;
|
||||
after_Prep = ss "efter" ;
|
||||
by8agent_Prep = ss "av" ;
|
||||
all_Predet = {s = gennumForms "all" "allt" "alla"} ;
|
||||
almost_AdA, almost_AdN = ss "nästan" ;
|
||||
although_Subj = ss "fast" ;
|
||||
always_AdV = ss "alltid" ;
|
||||
and_Conj = ss "och" ** {n = Pl} ;
|
||||
because_Subj = ss "eftersom" ;
|
||||
before_Prep = ss "före" ;
|
||||
behind_Prep = ss "bakom" ;
|
||||
between_Prep = ss "mellan" ;
|
||||
both7and_DConj = sd2 "både" "och" ** {n = Pl} ;
|
||||
but_PConj = ss "men" ;
|
||||
by8means_Prep = ss "med" ;
|
||||
can8know_VV, can_VV =
|
||||
mkVerb6 "kunna" "kan" "kunn" "kunde" "kunnat" "kunnen" **
|
||||
{c2 = [] ; lock_VV = <>} ;
|
||||
during_Prep = ss "under" ;
|
||||
either7or_DConj = sd2 "antingen" "eller" ** {n = Sg} ;
|
||||
everybody_NP = regNP "alla" "allas" Plg ;
|
||||
every_Det = {s = \\_,_ => "varje" ; n = Sg ; det = DDef Indef} ;
|
||||
everything_NP = regNP "allting" "alltings" SgNeutr ;
|
||||
everywhere_Adv = ss "överallt" ;
|
||||
first_Ord = {s = "första" ; isDet = True} ;
|
||||
from_Prep = ss "från" ;
|
||||
he_Pron = mkNP "han" "honom" "hans" "hans" "hans" SgUtr P3 ;
|
||||
here_Adv = ss "här" ;
|
||||
here7to_Adv = ss "hit" ;
|
||||
here7from_Adv = ss "härifrån" ;
|
||||
how_IAdv = ss "hur" ;
|
||||
how8many_IDet = {s = \\_ => ["hur många"] ; n = Pl ; det = DDef Indef} ;
|
||||
if_Subj = ss "om" ;
|
||||
in8front_Prep = ss "framför" ;
|
||||
i_Pron = mkNP "jag" "mig" "min" "mitt" "mina" SgUtr P1 ;
|
||||
in_Prep = ss "i" ;
|
||||
it_Pron = regNP "det" "dess" SgNeutr ;
|
||||
less_CAdv = ss "mindre" ;
|
||||
many_Det = {s = \\_,_ => "många" ; n = Pl ; det = DDef Indef} ;
|
||||
more_CAdv = ss "mer" ;
|
||||
most_Predet = {s = gennumForms ["den mesta"] ["det mesta"] ["de flesta"]} ;
|
||||
much_Det = {s = \\_,_ => "mycket" ; n = Pl ; det = DDef Indef} ;
|
||||
must_VV =
|
||||
mkVerb6 "få" "måste" "få" "fick" "måst" "måst" ** {c2 = [] ; lock_VV = <>} ;
|
||||
no_Phr = ss ["Nej"] ;
|
||||
on_Prep = ss "på" ;
|
||||
one_Quant = {s = \\_ => genderForms ["en"] ["ett"] ; n = Sg ; det = DIndef} ;
|
||||
only_Predet = {s = \\_ => "bara"} ;
|
||||
or_Conj = ss "eller" ** {n = Sg} ;
|
||||
otherwise_PConj = ss "annars" ;
|
||||
part_Prep = ss "av" ;
|
||||
please_Voc = ss "tack" ; ---
|
||||
possess_Prep = ss "av" ;
|
||||
quite_Adv = ss "ganska" ;
|
||||
she_Pron = mkNP "hon" "henne" "hennes" "hennes" "hennes" SgUtr P3 ;
|
||||
so_AdA = ss "så" ;
|
||||
someSg_Det = {s = \\_ => genderForms "någon" "något" ; n = Sg ; det = DIndef} ;
|
||||
somePl_Det = {s = \\_,_ => "några" ; n = Pl ; det = DIndef} ;
|
||||
somebody_NP = regNP "någon" "någons" SgUtr ;
|
||||
something_NP = regNP "något" "någots" SgNeutr ;
|
||||
somewhere_Adv = ss "någonstans" ;
|
||||
that_Quant =
|
||||
{s = \\_ => genderForms ["den där"] ["det där"] ; n = Sg ; det = DDef Def} ;
|
||||
that_NP = regNP ["det där"] ["det därs"] SgNeutr ;
|
||||
there_Adv = ss "där" ;
|
||||
there7to_Adv = ss "dit" ;
|
||||
there7from_Adv = ss "därifrån" ;
|
||||
therefore_PConj = ss "därför" ;
|
||||
these_NP = regNP ["de här"] ["det härs"] Plg ;
|
||||
these_Quant = {s = \\_,_ => ["de här"] ; n = Pl ; det = DDef Def} ;
|
||||
they_Pron = mkNP "de" "dem" "deras" "deras" "deras" Plg P1 ;
|
||||
this_Quant =
|
||||
{s = \\_ => genderForms ["den här"] ["det här"] ; n = Sg ; det = DDef Def} ;
|
||||
this_NP = regNP ["det här"] ["det härs"] SgNeutr ;
|
||||
those_NP = regNP ["de där"] ["det därs"] Plg ;
|
||||
those_Quant = {s = \\_,_ => ["de där"] ; n = Pl ; det = DDef Def} ;
|
||||
thou_Pron = mkNP "du" "dig" "din" "ditt" "dina" SgUtr P2 ;
|
||||
through_Prep = ss "genom" ;
|
||||
too_AdA = ss "för" ;
|
||||
to_Prep = ss "till" ;
|
||||
under_Prep = ss "under" ;
|
||||
very_AdA = ss "mycket" ;
|
||||
want_VV =
|
||||
mkVerb6 "vilja" "vill" "vilj" "ville" "velat" "velad" **
|
||||
{c2 = [] ; lock_VV = <>} ;
|
||||
we_Pron = mkNP "vi" "oss" "vår" "vårt" "våra" Plg P1 ;
|
||||
whatSg_IP = {s = \\_ => "vad" ; gn = SgUtr} ; ---- infl
|
||||
whatPl_IP = {s = \\_ => "vad" ; gn = Plg} ; ---- infl
|
||||
when_IAdv = ss "när" ;
|
||||
when_Subj = ss "när" ;
|
||||
where_IAdv = ss "var" ;
|
||||
whichPl_IDet = {s = \\_ => "vilka" ; n = Pl ; det = DIndef} ;
|
||||
whichSg_IDet = {s = genderForms "vilken" "vilket" ; n = Sg ; det = DIndef} ;
|
||||
whoSg_IP = {s = vem.s ; gn = SgUtr} ;
|
||||
whoPl_IP = {s = vem.s ; gn = Plg} ;
|
||||
why_IAdv = ss "varför" ;
|
||||
without_Prep = ss "utan" ;
|
||||
with_Prep = ss "med" ;
|
||||
ye_Pron = mkNP "ni" "er" "er" "ert" "era" Plg P2 ;
|
||||
yes_Phr = ss ["ja"] ;
|
||||
you_Pron = mkNP "ni" "er" "er" "ert" "era" SgUtr P2 ; --- wrong in refl
|
||||
|
||||
-- Auxiliaries that are used repeatedly.
|
||||
|
||||
oper
|
||||
vem = mkNP "vem" "vem" "vems" "vems" "vems" SgUtr P3 ;
|
||||
|
||||
}
|
||||
|
||||
2
lib/resource-1.0/french/TensedFre.gf
Normal file
2
lib/resource-1.0/french/TensedFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete TensedFre of Tensed = CatFre, TenseX ** TensedRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
21
lib/resource-1.0/french/TestFre.gf
Normal file
21
lib/resource-1.0/french/TestFre.gf
Normal file
@@ -0,0 +1,21 @@
|
||||
--# -path=.:../romance:../abstract:../common:prelude
|
||||
|
||||
concrete TestFre of Test =
|
||||
NounFre,
|
||||
VerbFre,
|
||||
AdjectiveFre,
|
||||
AdverbFre,
|
||||
-- -- NumeralFre,
|
||||
SentenceFre,
|
||||
QuestionFre,
|
||||
RelativeFre,
|
||||
ConjunctionFre,
|
||||
PhraseFre,
|
||||
UntensedFre,
|
||||
-- -- TensedFre,
|
||||
LexFre
|
||||
** {
|
||||
|
||||
flags startcat = Phr ;
|
||||
|
||||
} ;
|
||||
2
lib/resource-1.0/french/UntensedFre.gf
Normal file
2
lib/resource-1.0/french/UntensedFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete UntensedFre of Untensed = CatFre ** UntensedRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
2
lib/resource-1.0/french/VerbFre.gf
Normal file
2
lib/resource-1.0/french/VerbFre.gf
Normal file
@@ -0,0 +1,2 @@
|
||||
concrete VerbFre of Verb = CatFre ** VerbRomance with
|
||||
(DiffRomance = DiffFre) ;
|
||||
395
lib/resource-1.0/french/VerbsFre.gf
Normal file
395
lib/resource-1.0/french/VerbsFre.gf
Normal file
@@ -0,0 +1,395 @@
|
||||
--# -path=.:../romance:../common:../abstract:../../prelude
|
||||
|
||||
-- Irregular verbs from Nancy, based on a list from Sylvain Pogodalla, 25/11/2004
|
||||
-- Translated to GF by Aarne Ranta
|
||||
-- added extracted subcat information 29/11
|
||||
|
||||
concrete VerbsFre of VerbsFreAbs = CatFre **
|
||||
open DiffFre, MorphoFre, BeschFre, Prelude in {
|
||||
|
||||
flags optimize=values ;
|
||||
|
||||
-- all verbs in classes with "er" and "finir" are omitted
|
||||
|
||||
lin
|
||||
abattre_V2 = v_besch55 "abattre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
absoudre_V2 = v_besch72 "absoudre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
abstenir_V = v_besch23 "abstenir" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
abstraire_V2 = v_besch61 "abstraire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
accourir_V = v_besch33 "accourir" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
accroître_V2 = v_besch73 "accroître" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
accueillir_V2 = v_besch28 "accueillir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
acquérir_V2 = v_besch24 "acquérir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
adjoindre_V2 = v_besch58 "adjoindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
admettre_V2 = v_besch56 "admettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
advenir_V = v_besch23 "advenir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
aller_V = v_besch22 "aller" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
apercevoir_V2 = v_besch38 "apercevoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
apparaître_V = v_besch64 "apparaître" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
appartenir_V2 = v_besch23 "appartenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
appendre_V2 = v_besch53 "appendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
apprendre_V2 = v_besch54 "apprendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
assaillir_V2 = v_besch29 "assaillir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
asseoir_V2 = v_besch49 "asseoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
astreindre_V2 = v_besch57 "astreindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
atteindre_V2 = v_besch57 "atteindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
attendre_V2 = v_besch53 "attendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
avoir_V2 = v_besch1 "avoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
battre_V2 = v_besch55 "battre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
boire_V2 = v_besch69 "boire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
bouillir_V2 = v_besch31 "bouillir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
braire_V = v_besch61 "braire" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
ceindre_V2 = v_besch57 "ceindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
choir_V = v_besch52 "choir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
circonscrire_V2 = v_besch80 "circonscrire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
circonvenir_V2 = v_besch23 "circonvenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
clore_V2 = v_besch70 "clore" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
combattre_V2 = v_besch55 "combattre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
commettre_V2 = v_besch56 "commettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
comparaître_V2 = v_besch64 "comparaître" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
complaire_V2 = v_besch63 "complaire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
comprendre_V2 = v_besch54 "comprendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
compromettre_V2 = v_besch56 "compromettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
concevoir_V2 = v_besch38 "concevoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
conclure_V2 = v_besch71 "conclure" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
concourir_V2 = v_besch33 "concourir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
condescendre_V2 = v_besch53 "condescendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
conduire_V2 = v_besch82 "conduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
confire_V2 = v_besch81 "confire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
confondre_V2 = v_besch53 "confondre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
conjoindre_V2 = v_besch58 "conjoindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
connaître_V2 = v_besch64 "connaître" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
conquérir_V2 = v_besch24 "conquérir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
consentir_V2 = v_besch25 "consentir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
construire_V2 = v_besch82 "construire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
contenir_V2 = v_besch23 "contenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
contraindre_V2 = v_besch59 "contraindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
contrebattre_V2 = v_besch55 "contrebattre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
contredire_V2 = v_besch78 "contredire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
contrefaire_V2 = v_besch62 "contrefaire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
contrevenir_V2 = v_besch23 "contrevenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
convaincre_V2 = v_besch60 "convaincre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
convenir_V2 = v_besch23 "convenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
correspondre_V2 = v_besch53 "correspondre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
corrompre_V2 = v_besch53 "corrompre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
coudre_V2 = v_besch73 "coudre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
courir_V2 = v_besch33 "courir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
couvrir_V2 = v_besch27 "couvrir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
craindre_V2 = v_besch59 "craindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
croire_V2 = v_besch68 "croire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
croître_V = v_besch67 "croître" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
cueillir_V2 = v_besch28 "cueillir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
cuire_V2 = v_besch82 "cuire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
débattre_V2 = v_besch55 "débattre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
débouillir_V2 = v_besch31 "débouillir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
décevoir_V2 = v_besch38 "décevoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
déchoir_V2 = v_besch52 "déchoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
déclore_V2 = v_besch70 "déclore" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
décommettre_V2 = v_besch56 "décommettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
déconfire_V2 = v_besch81 "déconfire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
découdre_V2 = v_besch73 "découdre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
découvrir_V2 = v_besch27 "découvrir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
décrire_V2 = v_besch80 "décrire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
décroître_V2 = v_besch67 "décroître" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
décuire_V2 = v_besch82 "décuire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
déduire_V2 = v_besch82 "déduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
défaillir_V = v_besch30 "défaillir" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
défaire_V2 = v_besch62 "défaire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
défendre_V2 = v_besch53 "défendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
démentir_V2 = v_besch25 "démentir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
démettre_V2 = v_besch56 "démettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
démordre_V = v_besch53 "démordre" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
départir_V2 = v_besch25 "départir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
dépeindre_V2 = v_besch57 "dépeindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
dépendre_V2 = v_besch53 "dépendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
déplaire_V = v_besch63 "déplaire" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
dépourvoir_V2 = v_besch40 "dépourvoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
déprendre_V2 = v_besch54 "déprendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
désapprendre_V2 = v_besch54 "désapprendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
descendre_V2 = v_besch53 "descendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
desservir_V2 = v_besch35 "desservir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
déteindre_V2 = v_besch57 "déteindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
détendre_V2 = v_besch53 "détendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
détenir_V2 = v_besch23 "détenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
détordre_V2 = v_besch53 "détordre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
détruire_V2 = v_besch82 "détruire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
devenir_V = v_besch23 "devenir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
dévêtir_V2 = v_besch26 "dévêtir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
devoir_V2 = v_besch42 "devoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
dire_V2 = v_besch78 "dire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
disconvenir_V2 = v_besch23 "disconvenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
discourir_V2 = v_besch33 "discourir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
disjoindre_V2 = v_besch58 "disjoindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
disparaître_V2 = v_besch64 "disparaître" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
dissoudre_V2 = v_besch72 "dissoudre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
distendre_V2 = v_besch53 "distendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
distordre_V2 = v_besch53 "distordre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
distraire_V2 = v_besch61 "distraire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
dormir_V2 = v_besch32 "dormir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
ébattre_V = v_besch55 "ébattre" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
échoir_V2 = v_besch52 "échoir" ** {isRefl = False ; aux = VEsse ; lock_V2 = <> ; c2 = complDat} ;
|
||||
éclore_V2 = v_besch70 "éclore" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
éconduire_V2 = v_besch82 "éconduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
écrire_V2 = v_besch80 "écrire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
élire_V2 = v_besch77 "élire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
embatre_V2 = v_besch55 "embatre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
embattre_V2 = v_besch55 "embattre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
emboire_V = v_besch69 "emboire" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
émettre_V2 = v_besch56 "émettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
émoudre_V2 = v_besch74 "émoudre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
émouvoir_V2 = v_besch44 "émouvoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
empreindre_V2 = v_besch57 "empreindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
enceindre_V2 = v_besch57 "enceindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
enclore_V2 = v_besch70 "enclore" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
encourir_V2 = v_besch33 "encourir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
endormir_V2 = v_besch32 "endormir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
enduire_V2 = v_besch82 "enduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
enfreindre_V2 = v_besch57 "enfreindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
enfuir_V = v_besch36 "enfuir" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
enjoindre_V2 = v_besch58 "enjoindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
enquérir_V = v_besch24 "enquérir" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
entendre_V2 = v_besch53 "entendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
entr'apercevoir_V = v_besch38 "entr'apercevoir" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
entrebattre_V = v_besch55 "entrebattre" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
entre_détruire_V = v_besch82 "entre-détruire" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
entre_haïr_V = v_besch20 "entre-haïr" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
entremettre_V = v_besch56 "entremettre" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
entre_nuire_V = v_besch82 "entre-nuire" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
entreprendre_V2 = v_besch54 "entreprendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
entretenir_V2 = v_besch23 "entretenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
entrevoir_V2 = v_besch39 "entrevoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
entrouvrir_V2 = v_besch27 "entrouvrir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
envoyer_V2 = v_besch18 "envoyer" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
épandre_V2 = v_besch53 "épandre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
éperdre_V = v_besch53 "éperdre" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
éprendre_V = v_besch54 "éprendre" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
équivaloir_V2 = v_besch47 "équivaloir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
éteindre_V2 = v_besch57 "éteindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
étendre_V2 = v_besch53 "étendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
étreindre_V2 = v_besch57 "étreindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
être_V = v_besch2 "être" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
exclure_V2 = v_besch71 "exclure" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
extraire_V2 = v_besch61 "extraire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
faillir_V2 = v_besch30 "faillir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
faire_V2 = v_besch62 "faire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
falloir_V = v_besch46 "falloir" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
feindre_V2 = v_besch57 "feindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
fendre_V2 = v_besch53 "fendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
fondre_V2 = v_besch53 "fondre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
forfaire_V2 = v_besch62 "forfaire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
foutre_V2 = v_besch53 "foutre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
frire_V2 = v_besch81 "frire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
fuir_V2 = v_besch36 "fuir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
geindre_V2 = v_besch57 "geindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
gésir_V2 = mkNV (conj3gésir "gésir") ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
haïr_V2 = v_besch20 "haïr" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
inclure_V2 = v_besch71 "inclure" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
induire_V2 = v_besch82 "induire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
inscrire_V2 = v_besch80 "inscrire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
instruire_V2 = v_besch82 "instruire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
interdire_V2 = v_besch78 "interdire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
interrompre_V2 = v_besch53 "interrompre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
intervenir_V = v_besch23 "intervenir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
introduire_V2 = v_besch82 "introduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
joindre_V2 = v_besch58 "joindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
lire_V2 = v_besch77 "lire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
luire_V = v_besch82 "luire" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
mainmettre_V2 = v_besch56 "mainmettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
maintenir_V2 = v_besch23 "maintenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
méconnaître_V2 = v_besch64 "méconnaître" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
mécroire_V2 = v_besch68 "mécroire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
médire_V2 = v_besch78 "médire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
mentir_V2 = v_besch25 "mentir" ** {isRefl = False ; aux = VEsse ; lock_V2 = <> ; c2 = complDat} ;
|
||||
méprendre_V2 = v_besch54 "méprendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
messeoir_V2 = v_besch50 "messeoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
mettre_V2 = v_besch56 "mettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
mévendre_V2 = v_besch53 "mévendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
mordre_V2 = v_besch53 "mordre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
morfondre_V = v_besch53 "morfondre" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
moudre_V2 = v_besch74 "moudre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
mourir_V = v_besch34 "mourir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
mouvoir_V2 = v_besch44 "mouvoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
naître_V = v_besch65 "naître" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
nuire_V2 = v_besch82 "nuire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
obtenir_V2 = v_besch23 "obtenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
obvenir_V = v_besch23 "obvenir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
occlure_V2 = v_besch71 "occlure" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
offrir_V2 = v_besch27 "offrir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
oindre_V2 = v_besch58 "oindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
omettre_V2 = v_besch56 "omettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
ouïr_V2 = v_besch37 "ouïr" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
ouvrir_V2 = v_besch27 "ouvrir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
paître_V2 = v_besch66 "paître" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
paître_V = v_besch66 "paître" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
paraître_V = v_besch64 "paraître" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
parcourir_V2 = v_besch33 "parcourir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
parfondre_V2 = v_besch53 "parfondre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
partir_V = v_besch25 "partir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
parvenir_V = v_besch23 "parvenir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
peindre_V2 = v_besch57 "peindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
pendre_V2 = v_besch53 "pendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
percevoir_V2 = v_besch38 "percevoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
perdre_V2 = v_besch53 "perdre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
permettre_V2 = v_besch56 "permettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
plaindre_V2 = v_besch59 "plaindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
plaire_V2 = v_besch63 "plaire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
pleuvoir_V = v_besch45 "pleuvoir" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
poindre_V2 = v_besch58 "poindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
pondre_V2 = v_besch53 "pondre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
pourfendre_V2 = v_besch53 "pourfendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
poursuivre_V2 = v_besch75 "poursuivre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
pourvoir_V2 = v_besch40 "pourvoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
pouvoir_V = v_besch43 "pouvoir" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
prédire_V2 = v_besch78 "prédire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
prendre_V2 = v_besch54 "prendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
prescrire_V2 = v_besch80 "prescrire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
pressentir_V2 = v_besch25 "pressentir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
prétendre_V2 = v_besch53 "prétendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
prévaloir_V2 = v_besch47 "prévaloir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
prévenir_V2 = v_besch23 "prévenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
prévoir_V2 = v_besch39 "prévoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
produire_V2 = v_besch82 "produire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
promettre_V2 = v_besch56 "promettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
promouvoir_V2 = v_besch44 "promouvoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
proscrire_V2 = v_besch80 "proscrire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
provenir_V = v_besch23 "provenir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
rabattre_V2 = v_besch55 "rabattre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
raire_V2 = v_besch61 "raire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
rapprendre_V2 = v_besch54 "rapprendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
rasseoir_V2 = v_besch49 "rasseoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
réadmettre_V2 = v_besch56 "réadmettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
réapparaître_V = v_besch64 "réapparaître" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
réapprendre_V2 = v_besch54 "réapprendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
rebattre_V2 = v_besch55 "rebattre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
recevoir_V2 = v_besch38 "recevoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
recomparaître_V2 = v_besch64 "recomparaître" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
reconduire_V2 = v_besch82 "reconduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
reconnaître_V2 = v_besch64 "reconnaître" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
reconquérir_V2 = v_besch24 "reconquérir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
reconstruire_V2 = v_besch82 "reconstruire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
recoudre_V2 = v_besch73 "recoudre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
recourir_V2 = v_besch33 "recourir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
recouvrir_V2 = v_besch27 "recouvrir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
récrire_V2 = v_besch80 "récrire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
recroître_V2 = v_besch67 "recroître" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
recueillir_V2 = v_besch28 "recueillir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
recuire_V2 = v_besch82 "recuire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
redécouvrir_V2 = v_besch27 "redécouvrir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
redéfaire_V2 = v_besch62 "redéfaire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
redescendre_V2 = v_besch53 "redescendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
redevenir_V = v_besch23 "redevenir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
redevoir_V2 = v_besch42 "redevoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
redire_V2 = v_besch78 "redire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
réduire_V2 = v_besch82 "réduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
réécrire_V2 = v_besch80 "réécrire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
réélire_V2 = v_besch77 "réélire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
réentendre_V2 = v_besch53 "réentendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
refaire_V2 = v_besch62 "refaire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
refendre_V2 = v_besch53 "refendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
refondre_V2 = v_besch53 "refondre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
réinscrire_V2 = v_besch80 "réinscrire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
réintroduire_V2 = v_besch82 "réintroduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
rejoindre_V2 = v_besch58 "rejoindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
relire_V2 = v_besch77 "relire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
reluire_V2 = v_besch82 "reluire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
remettre_V2 = v_besch56 "remettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
remordre_V2 = v_besch53 "remordre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
remoudre_V2 = v_besch74 "remoudre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
renaître_V2 = v_besch65 "renaître" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
rendormir_V2 = v_besch32 "rendormir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
rendre_V2 = v_besch53 "rendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
rentraire_V2 = v_besch61 "rentraire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
rentrouvrir_V2 = v_besch27 "rentrouvrir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
renvoyer_V2 = v_besch18 "renvoyer" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
repaître_V2 = v_besch66 "repaître" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
répandre_V2 = v_besch53 "répandre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
reparaître_V = v_besch64 "reparaître" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
repartir_V = v_besch25 "repartir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
repeindre_V2 = v_besch57 "repeindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
rependre_V2 = v_besch53 "rependre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
repentir_V = v_besch25 "repentir" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
reperdre_V2 = v_besch53 "reperdre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
repleuvoir_V = v_besch45 "repleuvoir" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
répondre_V2 = v_besch53 "répondre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
reprendre_V2 = v_besch54 "reprendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
reproduire_V2 = v_besch82 "reproduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
requérir_V2 = v_besch24 "requérir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
résoudre_V2 = mkNV (conj3résoudre "résoudre") ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
ressentir_V2 = v_besch25 "ressentir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
resservir_V2 = v_besch35 "resservir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
ressortir_V = v_besch25 "ressortir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
ressouvenir_V = v_besch23 "ressouvenir" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
restreindre_V2 = v_besch57 "restreindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
reteindre_V2 = v_besch57 "reteindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
retendre_V2 = v_besch53 "retendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
retenir_V2 = v_besch23 "retenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
retondre_V2 = v_besch53 "retondre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
retordre_V2 = v_besch53 "retordre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
retraduire_V2 = v_besch82 "retraduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
retraire_V2 = v_besch61 "retraire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
retranscrire_V2 = v_besch80 "retranscrire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
retransmettre_V2 = v_besch56 "retransmettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
rétreindre_V2 = v_besch57 "rétreindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
revaloir_V2 = v_besch47 "revaloir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
revendre_V2 = v_besch53 "revendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
revenir_V = v_besch23 "revenir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
revêtir_V2 = v_besch26 "revêtir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
revivre_V2 = v_besch76 "revivre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
revoir_V2 = v_besch39 "revoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
revouloir_V2 = v_besch48 "revouloir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
rire_V2 = v_besch79 "rire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
rompre_V2 = v_besch53 "rompre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
rouvrir_V2 = v_besch27 "rouvrir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
saillir_V2 = v_besch29 "saillir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
satisfaire_V2 = v_besch62 "satisfaire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
savoir_V2 = v_besch41 "savoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
secourir_V2 = v_besch33 "secourir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
séduire_V2 = v_besch82 "séduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
sentir_V2 = v_besch25 "sentir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
seoir_V = v_besch50 "seoir" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
servir_V2 = v_besch35 "servir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
sortir_V = v_besch25 "sortir" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
soubattre_V2 = v_besch55 "soubattre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
souffrir_V2 = v_besch27 "souffrir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
soumettre_V2 = v_besch56 "soumettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
sourire_V2 = v_besch79 "sourire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
souscrire_V2 = v_besch80 "souscrire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
sous_entendre_V2 = v_besch53 "sous-entendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
sous_tendre_V2 = v_besch53 "sous-tendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
soustraire_V2 = v_besch61 "soustraire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
soutenir_V2 = v_besch23 "soutenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
souvenir_V = v_besch23 "souvenir" ** {isRefl = False ; aux = VHabere ; lock_V = <> ; c2 = complAcc} ;
|
||||
subvenir_V2 = v_besch23 "subvenir" ** {isRefl = False ; aux = VEsse ; lock_V2 = <> ; c2 = complDat} ;
|
||||
suffire_V2 = v_besch81 "suffire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
suivre_V2 = v_besch75 "suivre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
surfaire_V2 = v_besch62 "surfaire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
surprendre_V2 = v_besch54 "surprendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
surproduire_V2 = v_besch82 "surproduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
surseoir_V2 = v_besch51 "surseoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
surtondre_V2 = v_besch53 "surtondre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
survenir_V = v_besch23 "survenir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
survivre_V2 = v_besch76 "survivre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
suspendre_V2 = v_besch53 "suspendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
taire_V2 = v_besch63 "taire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
teindre_V2 = v_besch57 "teindre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
tendre_V2 = v_besch53 "tendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
tenir_V2 = v_besch23 "tenir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complDat} ;
|
||||
tondre_V2 = v_besch53 "tondre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
tordre_V2 = v_besch53 "tordre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
traduire_V2 = v_besch82 "traduire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
traire_V2 = v_besch61 "traire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
transcrire_V2 = v_besch80 "transcrire" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
transmettre_V2 = v_besch56 "transmettre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
transparaître_V = v_besch64 "transparaître" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
tréfondre_V2 = v_besch53 "tréfondre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
tressaillir_V = v_besch29 "tressaillir" ** {isRefl = False ; aux = VHabere ; lock_V = <>} ;
|
||||
vaincre_V2 = v_besch60 "vaincre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
valoir_V2 = v_besch47 "valoir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
vendre_V2 = v_besch53 "vendre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
venir_V = v_besch23 "venir" ** {isRefl = False ; aux = VEsse ; lock_V = <>} ;
|
||||
vêtir_V2 = v_besch26 "vêtir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
vivre_V2 = v_besch76 "vivre" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
voir_V2 = v_besch39 "voir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
|
||||
vouloir_V2 = v_besch48 "vouloir" ** {isRefl = False ; aux = VHabere ; lock_V2 = <> ; c2 = complGen} ;
|
||||
|
||||
}
|
||||
391
lib/resource-1.0/french/VerbsFreAbs.gf
Normal file
391
lib/resource-1.0/french/VerbsFreAbs.gf
Normal file
@@ -0,0 +1,391 @@
|
||||
--# -path=.:../romance:../abstract:../../prelude
|
||||
|
||||
-- Irregular verbs from Nancy, based on a list from Sylvain Pogodalla, 25/11/2004
|
||||
-- Translated to GF by Aarne Ranta
|
||||
-- added extracted subcat information 29/11
|
||||
|
||||
abstract VerbsFreAbs = Cat ** {
|
||||
|
||||
-- all verbs in classes with "er" and "ir" like "finir" are omitted
|
||||
|
||||
fun
|
||||
abattre_V2 : V2 ;
|
||||
absoudre_V2 : V2 ;
|
||||
abstenir_V : V ;
|
||||
abstraire_V2 : V2 ;
|
||||
accourir_V : V ;
|
||||
accroître_V2 : V2 ;
|
||||
accueillir_V2 : V2 ;
|
||||
acquérir_V2 : V2 ;
|
||||
adjoindre_V2 : V2 ;
|
||||
admettre_V2 : V2 ;
|
||||
advenir_V : V ;
|
||||
aller_V : V ;
|
||||
apercevoir_V2 : V2 ;
|
||||
apparaître_V : V ;
|
||||
appartenir_V2 : V2 ;
|
||||
appendre_V2 : V2 ;
|
||||
apprendre_V2 : V2 ;
|
||||
assaillir_V2 : V2 ;
|
||||
asseoir_V2 : V2 ;
|
||||
astreindre_V2 : V2 ;
|
||||
atteindre_V2 : V2 ;
|
||||
attendre_V2 : V2 ;
|
||||
avoir_V2 : V2 ;
|
||||
battre_V2 : V2 ;
|
||||
boire_V2 : V2 ;
|
||||
bouillir_V2 : V2 ;
|
||||
braire_V : V ;
|
||||
ceindre_V2 : V2 ;
|
||||
choir_V : V ;
|
||||
circonscrire_V2 : V2 ;
|
||||
circonvenir_V2 : V2 ;
|
||||
clore_V2 : V2 ;
|
||||
combattre_V2 : V2 ;
|
||||
commettre_V2 : V2 ;
|
||||
comparaître_V2 : V2 ;
|
||||
complaire_V2 : V2 ;
|
||||
comprendre_V2 : V2 ;
|
||||
compromettre_V2 : V2 ;
|
||||
concevoir_V2 : V2 ;
|
||||
conclure_V2 : V2 ;
|
||||
concourir_V2 : V2 ;
|
||||
condescendre_V2 : V2 ;
|
||||
conduire_V2 : V2 ;
|
||||
confire_V2 : V2 ;
|
||||
confondre_V2 : V2 ;
|
||||
conjoindre_V2 : V2 ;
|
||||
connaître_V2 : V2 ;
|
||||
conquérir_V2 : V2 ;
|
||||
consentir_V2 : V2 ;
|
||||
construire_V2 : V2 ;
|
||||
contenir_V2 : V2 ;
|
||||
contraindre_V2 : V2 ;
|
||||
contrebattre_V2 : V2 ;
|
||||
contredire_V2 : V2 ;
|
||||
contrefaire_V2 : V2 ;
|
||||
contrevenir_V2 : V2 ;
|
||||
convaincre_V2 : V2 ;
|
||||
convenir_V2 : V2 ;
|
||||
correspondre_V2 : V2 ;
|
||||
corrompre_V2 : V2 ;
|
||||
coudre_V2 : V2 ;
|
||||
courir_V2 : V2 ;
|
||||
couvrir_V2 : V2 ;
|
||||
craindre_V2 : V2 ;
|
||||
croire_V2 : V2 ;
|
||||
croître_V : V ;
|
||||
cueillir_V2 : V2 ;
|
||||
cuire_V2 : V2 ;
|
||||
débattre_V2 : V2 ;
|
||||
débouillir_V2 : V2 ;
|
||||
décevoir_V2 : V2 ;
|
||||
déchoir_V2 : V2 ;
|
||||
déclore_V2 : V2 ;
|
||||
décommettre_V2 : V2 ;
|
||||
déconfire_V2 : V2 ;
|
||||
découdre_V2 : V2 ;
|
||||
découvrir_V2 : V2 ;
|
||||
décrire_V2 : V2 ;
|
||||
décroître_V2 : V2 ;
|
||||
décuire_V2 : V2 ;
|
||||
déduire_V2 : V2 ;
|
||||
défaillir_V : V ;
|
||||
défaire_V2 : V2 ;
|
||||
défendre_V2 : V2 ;
|
||||
démentir_V2 : V2 ;
|
||||
démettre_V2 : V2 ;
|
||||
démordre_V : V ;
|
||||
départir_V2 : V2 ;
|
||||
dépeindre_V2 : V2 ;
|
||||
dépendre_V2 : V2 ;
|
||||
déplaire_V : V ;
|
||||
dépourvoir_V2 : V2 ;
|
||||
déprendre_V2 : V2 ;
|
||||
désapprendre_V2 : V2 ;
|
||||
descendre_V2 : V2 ;
|
||||
desservir_V2 : V2 ;
|
||||
déteindre_V2 : V2 ;
|
||||
détendre_V2 : V2 ;
|
||||
détenir_V2 : V2 ;
|
||||
détordre_V2 : V2 ;
|
||||
détruire_V2 : V2 ;
|
||||
devenir_V : V ;
|
||||
dévętir_V2 : V2 ;
|
||||
devoir_V2 : V2 ;
|
||||
dire_V2 : V2 ;
|
||||
disconvenir_V2 : V2 ;
|
||||
discourir_V2 : V2 ;
|
||||
disjoindre_V2 : V2 ;
|
||||
disparaître_V2 : V2 ;
|
||||
dissoudre_V2 : V2 ;
|
||||
distendre_V2 : V2 ;
|
||||
distordre_V2 : V2 ;
|
||||
distraire_V2 : V2 ;
|
||||
dormir_V2 : V2 ;
|
||||
ébattre_V : V ;
|
||||
échoir_V2 : V2 ;
|
||||
éclore_V2 : V2 ;
|
||||
éconduire_V2 : V2 ;
|
||||
écrire_V2 : V2 ;
|
||||
élire_V2 : V2 ;
|
||||
embatre_V2 : V2 ;
|
||||
embattre_V2 : V2 ;
|
||||
emboire_V : V ;
|
||||
émettre_V2 : V2 ;
|
||||
émoudre_V2 : V2 ;
|
||||
émouvoir_V2 : V2 ;
|
||||
empreindre_V2 : V2 ;
|
||||
enceindre_V2 : V2 ;
|
||||
enclore_V2 : V2 ;
|
||||
encourir_V2 : V2 ;
|
||||
endormir_V2 : V2 ;
|
||||
enduire_V2 : V2 ;
|
||||
enfreindre_V2 : V2 ;
|
||||
enfuir_V : V ;
|
||||
enjoindre_V2 : V2 ;
|
||||
enquérir_V : V ;
|
||||
entendre_V2 : V2 ;
|
||||
entr'apercevoir_V : V ;
|
||||
entrebattre_V : V ;
|
||||
entre_détruire_V : V ;
|
||||
entre_haďr_V : V ;
|
||||
entremettre_V : V ;
|
||||
entre_nuire_V : V ;
|
||||
entreprendre_V2 : V2 ;
|
||||
entretenir_V2 : V2 ;
|
||||
entrevoir_V2 : V2 ;
|
||||
entrouvrir_V2 : V2 ;
|
||||
envoyer_V2 : V2 ;
|
||||
épandre_V2 : V2 ;
|
||||
éperdre_V : V ;
|
||||
éprendre_V : V ;
|
||||
équivaloir_V2 : V2 ;
|
||||
éteindre_V2 : V2 ;
|
||||
étendre_V2 : V2 ;
|
||||
étreindre_V2 : V2 ;
|
||||
ętre_V : V ;
|
||||
exclure_V2 : V2 ;
|
||||
extraire_V2 : V2 ;
|
||||
faillir_V2 : V2 ;
|
||||
faire_V2 : V2 ;
|
||||
falloir_V : V ;
|
||||
feindre_V2 : V2 ;
|
||||
fendre_V2 : V2 ;
|
||||
fondre_V2 : V2 ;
|
||||
forfaire_V2 : V2 ;
|
||||
foutre_V2 : V2 ;
|
||||
frire_V2 : V2 ;
|
||||
fuir_V2 : V2 ;
|
||||
geindre_V2 : V2 ;
|
||||
gésir_V2 : V2 ;
|
||||
haďr_V2 : V2 ;
|
||||
inclure_V2 : V2 ;
|
||||
induire_V2 : V2 ;
|
||||
inscrire_V2 : V2 ;
|
||||
instruire_V2 : V2 ;
|
||||
interdire_V2 : V2 ;
|
||||
interrompre_V2 : V2 ;
|
||||
intervenir_V : V ;
|
||||
introduire_V2 : V2 ;
|
||||
joindre_V2 : V2 ;
|
||||
lire_V2 : V2 ;
|
||||
luire_V : V ;
|
||||
mainmettre_V2 : V2 ;
|
||||
maintenir_V2 : V2 ;
|
||||
méconnaître_V2 : V2 ;
|
||||
mécroire_V2 : V2 ;
|
||||
médire_V2 : V2 ;
|
||||
mentir_V2 : V2 ;
|
||||
méprendre_V2 : V2 ;
|
||||
messeoir_V2 : V2 ;
|
||||
mettre_V2 : V2 ;
|
||||
mévendre_V2 : V2 ;
|
||||
mordre_V2 : V2 ;
|
||||
morfondre_V : V ;
|
||||
moudre_V2 : V2 ;
|
||||
mourir_V : V ;
|
||||
mouvoir_V2 : V2 ;
|
||||
naître_V : V ;
|
||||
nuire_V2 : V2 ;
|
||||
obtenir_V2 : V2 ;
|
||||
obvenir_V : V ;
|
||||
occlure_V2 : V2 ;
|
||||
offrir_V2 : V2 ;
|
||||
oindre_V2 : V2 ;
|
||||
omettre_V2 : V2 ;
|
||||
ouďr_V2 : V2 ;
|
||||
ouvrir_V2 : V2 ;
|
||||
paître_V2 : V2 ;
|
||||
paître_V : V ;
|
||||
paraître_V : V ;
|
||||
parcourir_V2 : V2 ;
|
||||
parfondre_V2 : V2 ;
|
||||
partir_V : V ;
|
||||
parvenir_V : V ;
|
||||
peindre_V2 : V2 ;
|
||||
pendre_V2 : V2 ;
|
||||
percevoir_V2 : V2 ;
|
||||
perdre_V2 : V2 ;
|
||||
permettre_V2 : V2 ;
|
||||
plaindre_V2 : V2 ;
|
||||
plaire_V2 : V2 ;
|
||||
pleuvoir_V : V ;
|
||||
poindre_V2 : V2 ;
|
||||
pondre_V2 : V2 ;
|
||||
pourfendre_V2 : V2 ;
|
||||
poursuivre_V2 : V2 ;
|
||||
pourvoir_V2 : V2 ;
|
||||
pouvoir_V : V ;
|
||||
prédire_V2 : V2 ;
|
||||
prendre_V2 : V2 ;
|
||||
prescrire_V2 : V2 ;
|
||||
pressentir_V2 : V2 ;
|
||||
prétendre_V2 : V2 ;
|
||||
prévaloir_V2 : V2 ;
|
||||
prévenir_V2 : V2 ;
|
||||
prévoir_V2 : V2 ;
|
||||
produire_V2 : V2 ;
|
||||
promettre_V2 : V2 ;
|
||||
promouvoir_V2 : V2 ;
|
||||
proscrire_V2 : V2 ;
|
||||
provenir_V : V ;
|
||||
rabattre_V2 : V2 ;
|
||||
raire_V2 : V2 ;
|
||||
rapprendre_V2 : V2 ;
|
||||
rasseoir_V2 : V2 ;
|
||||
réadmettre_V2 : V2 ;
|
||||
réapparaître_V : V ;
|
||||
réapprendre_V2 : V2 ;
|
||||
rebattre_V2 : V2 ;
|
||||
recevoir_V2 : V2 ;
|
||||
recomparaître_V2 : V2 ;
|
||||
reconduire_V2 : V2 ;
|
||||
reconnaître_V2 : V2 ;
|
||||
reconquérir_V2 : V2 ;
|
||||
reconstruire_V2 : V2 ;
|
||||
recoudre_V2 : V2 ;
|
||||
recourir_V2 : V2 ;
|
||||
recouvrir_V2 : V2 ;
|
||||
récrire_V2 : V2 ;
|
||||
recroître_V2 : V2 ;
|
||||
recueillir_V2 : V2 ;
|
||||
recuire_V2 : V2 ;
|
||||
redécouvrir_V2 : V2 ;
|
||||
redéfaire_V2 : V2 ;
|
||||
redescendre_V2 : V2 ;
|
||||
redevenir_V : V ;
|
||||
redevoir_V2 : V2 ;
|
||||
redire_V2 : V2 ;
|
||||
réduire_V2 : V2 ;
|
||||
réécrire_V2 : V2 ;
|
||||
réélire_V2 : V2 ;
|
||||
réentendre_V2 : V2 ;
|
||||
refaire_V2 : V2 ;
|
||||
refendre_V2 : V2 ;
|
||||
refondre_V2 : V2 ;
|
||||
réinscrire_V2 : V2 ;
|
||||
réintroduire_V2 : V2 ;
|
||||
rejoindre_V2 : V2 ;
|
||||
relire_V2 : V2 ;
|
||||
reluire_V2 : V2 ;
|
||||
remettre_V2 : V2 ;
|
||||
remordre_V2 : V2 ;
|
||||
remoudre_V2 : V2 ;
|
||||
renaître_V2 : V2 ;
|
||||
rendormir_V2 : V2 ;
|
||||
rendre_V2 : V2 ;
|
||||
rentraire_V2 : V2 ;
|
||||
rentrouvrir_V2 : V2 ;
|
||||
renvoyer_V2 : V2 ;
|
||||
repaître_V2 : V2 ;
|
||||
répandre_V2 : V2 ;
|
||||
reparaître_V : V ;
|
||||
repartir_V : V ;
|
||||
repeindre_V2 : V2 ;
|
||||
rependre_V2 : V2 ;
|
||||
repentir_V : V ;
|
||||
reperdre_V2 : V2 ;
|
||||
repleuvoir_V : V ;
|
||||
répondre_V2 : V2 ;
|
||||
reprendre_V2 : V2 ;
|
||||
reproduire_V2 : V2 ;
|
||||
requérir_V2 : V2 ;
|
||||
résoudre_V2 : V2 ;
|
||||
ressentir_V2 : V2 ;
|
||||
resservir_V2 : V2 ;
|
||||
ressortir_V : V ;
|
||||
ressouvenir_V : V ;
|
||||
restreindre_V2 : V2 ;
|
||||
reteindre_V2 : V2 ;
|
||||
retendre_V2 : V2 ;
|
||||
retenir_V2 : V2 ;
|
||||
retondre_V2 : V2 ;
|
||||
retordre_V2 : V2 ;
|
||||
retraduire_V2 : V2 ;
|
||||
retraire_V2 : V2 ;
|
||||
retranscrire_V2 : V2 ;
|
||||
retransmettre_V2 : V2 ;
|
||||
rétreindre_V2 : V2 ;
|
||||
revaloir_V2 : V2 ;
|
||||
revendre_V2 : V2 ;
|
||||
revenir_V : V ;
|
||||
revętir_V2 : V2 ;
|
||||
revivre_V2 : V2 ;
|
||||
revoir_V2 : V2 ;
|
||||
revouloir_V2 : V2 ;
|
||||
rire_V2 : V2 ;
|
||||
rompre_V2 : V2 ;
|
||||
rouvrir_V2 : V2 ;
|
||||
saillir_V2 : V2 ;
|
||||
satisfaire_V2 : V2 ;
|
||||
savoir_V2 : V2 ;
|
||||
secourir_V2 : V2 ;
|
||||
séduire_V2 : V2 ;
|
||||
sentir_V2 : V2 ;
|
||||
seoir_V : V ;
|
||||
servir_V2 : V2 ;
|
||||
sortir_V : V ;
|
||||
soubattre_V2 : V2 ;
|
||||
souffrir_V2 : V2 ;
|
||||
soumettre_V2 : V2 ;
|
||||
sourire_V2 : V2 ;
|
||||
souscrire_V2 : V2 ;
|
||||
sous_entendre_V2 : V2 ;
|
||||
sous_tendre_V2 : V2 ;
|
||||
soustraire_V2 : V2 ;
|
||||
soutenir_V2 : V2 ;
|
||||
souvenir_V : V ;
|
||||
subvenir_V2 : V2 ;
|
||||
suffire_V2 : V2 ;
|
||||
suivre_V2 : V2 ;
|
||||
surfaire_V2 : V2 ;
|
||||
surprendre_V2 : V2 ;
|
||||
surproduire_V2 : V2 ;
|
||||
surseoir_V2 : V2 ;
|
||||
surtondre_V2 : V2 ;
|
||||
survenir_V : V ;
|
||||
survivre_V2 : V2 ;
|
||||
suspendre_V2 : V2 ;
|
||||
taire_V2 : V2 ;
|
||||
teindre_V2 : V2 ;
|
||||
tendre_V2 : V2 ;
|
||||
tenir_V2 : V2 ;
|
||||
tondre_V2 : V2 ;
|
||||
tordre_V2 : V2 ;
|
||||
traduire_V2 : V2 ;
|
||||
traire_V2 : V2 ;
|
||||
transcrire_V2 : V2 ;
|
||||
transmettre_V2 : V2 ;
|
||||
transparaître_V : V ;
|
||||
tréfondre_V2 : V2 ;
|
||||
tressaillir_V : V ;
|
||||
vaincre_V2 : V2 ;
|
||||
valoir_V2 : V2 ;
|
||||
vendre_V2 : V2 ;
|
||||
venir_V : V ;
|
||||
vętir_V2 : V2 ;
|
||||
vivre_V2 : V2 ;
|
||||
voir_V2 : V2 ;
|
||||
vouloir_V2 : V2 ;
|
||||
}
|
||||
40
lib/resource-1.0/romance/AdjectiveRomance.gf
Normal file
40
lib/resource-1.0/romance/AdjectiveRomance.gf
Normal file
@@ -0,0 +1,40 @@
|
||||
incomplete concrete AdjectiveRomance of Adjective =
|
||||
CatRomance ** open DiffRomance, ResRomance, Prelude in {
|
||||
|
||||
lin
|
||||
|
||||
PositA a = {
|
||||
s = \\ap => a.s ! AF (APosit ap) Nom ;
|
||||
isPre = True
|
||||
} ;
|
||||
ComparA a np = {
|
||||
s = \\_ => a.s ! AF ACompar Nom ++ conjThan ++ np.s ! nominative ;
|
||||
isPre = False
|
||||
} ;
|
||||
|
||||
-- $SuperlA$ belongs to determiner syntax in $Noun$.
|
||||
|
||||
ComplA2 a np = {
|
||||
s = \\ap => a.s ! AF (APosit ap) Nom ++ a.c2 ++ np.s ! accusative ;
|
||||
isPre = False
|
||||
} ;
|
||||
|
||||
ReflA2 a = {
|
||||
s = \\ap => a.s ! AF (APosit ap) Nom ++ a.c2 ++
|
||||
reflPron (agrP3 Utr Sg) ; ----
|
||||
isPre = False
|
||||
} ;
|
||||
|
||||
SentAP ap sc = {
|
||||
s = \\a => ap.s ! a ++ sc.s ;
|
||||
isPre = False
|
||||
} ;
|
||||
|
||||
AdAP ada ap = {
|
||||
s = \\a => ada.s ++ ap.s ! a ;
|
||||
isPre = ap.isPre
|
||||
} ;
|
||||
|
||||
UseA2 a = a ;
|
||||
|
||||
}
|
||||
28
lib/resource-1.0/romance/AdverbRomance.gf
Normal file
28
lib/resource-1.0/romance/AdverbRomance.gf
Normal file
@@ -0,0 +1,28 @@
|
||||
incomplete concrete AdverbRomance of Adverb = CatRomance ** open DiffRomance, ResRomance, Prelude in {
|
||||
|
||||
lin
|
||||
PositAdvAdj a = {
|
||||
s = a.s ! adverbForm
|
||||
} ;
|
||||
ComparAdvAdj cadv a np = {
|
||||
s = cadv.s ++ a.s ! adverbForm ++ conjThan ++ np.s ! nominative
|
||||
} ;
|
||||
ComparAdvAdjS cadv a s = {
|
||||
s = cadv.s ++ a.s ! adverbForm ++ conjThan ++ s.s ! Sub
|
||||
} ;
|
||||
|
||||
PrepNP prep np = {s = prep.s ++ np.s ! accusative} ;
|
||||
|
||||
AdAdv = cc2 ;
|
||||
|
||||
SubjS subj s = {
|
||||
s = subj.s ++ s.s ! Sub
|
||||
} ;
|
||||
AdvSC s = s ;
|
||||
|
||||
AdnCAdv cadv = {s = cadv.s ++ conjThan} ;
|
||||
|
||||
oper
|
||||
adverbForm : AForm = AF (APosit (Strong SgNeutr)) Nom ;
|
||||
|
||||
}
|
||||
104
lib/resource-1.0/romance/CatRomance.gf
Normal file
104
lib/resource-1.0/romance/CatRomance.gf
Normal file
@@ -0,0 +1,104 @@
|
||||
incomplete concrete CatRomance of Cat =
|
||||
open ResRomance, Prelude, DiffRomance, (R = ParamX) in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lincat
|
||||
|
||||
-- Phrase
|
||||
|
||||
Text, Phr, Utt, Voc = {s : Str} ;
|
||||
|
||||
-- Tensed/Untensed
|
||||
|
||||
S = {s : Mood => Str} ;
|
||||
QS = {s : QForm => Str} ;
|
||||
RS = {s : Mood => Agr => Str} ;
|
||||
|
||||
-- Sentence
|
||||
|
||||
Cl = {s : Tense => Anteriority => Polarity => Mood => Str} ;
|
||||
Slash = {s : Tense => Anteriority => Polarity => Mood => Str} ** {c2 : Compl} ;
|
||||
Imp = {s : Polarity => AAgr => Str} ;
|
||||
|
||||
-- Question
|
||||
|
||||
QCl = {s : Tense => Anteriority => Polarity => QForm => Str} ;
|
||||
IP = {s : Case => Str ; a : AAgr} ;
|
||||
IAdv = {s : Str} ;
|
||||
IDet = {s : Gender => Str ; n : Number} ;
|
||||
|
||||
-- Relative
|
||||
|
||||
RCl = {s : Tense => Anteriority => Polarity => Mood => Agr => Str} ;
|
||||
---- RP = {s : AAgr => RelForm => Str ; a : RAgr} ;
|
||||
|
||||
-- Verb
|
||||
|
||||
VP = {
|
||||
s : Anteriority => VF => {
|
||||
fin : Str ; -- ai
|
||||
inf : Str -- dit
|
||||
} ;
|
||||
a1 : Polarity => Str ; -- ne-pas
|
||||
c1 : Str ; -- le
|
||||
c2 : Str ; -- lui
|
||||
n2 : Agr => Str ; -- content(e) ; à ma mère
|
||||
a2 : Str ; -- hier
|
||||
ext : Str ; -- que je dors
|
||||
} ;
|
||||
Comp = {s : Agr => Str} ;
|
||||
SC = {s : Str} ;
|
||||
|
||||
|
||||
-- Adjective
|
||||
|
||||
AP = {s : AForm => Str ; isPre : Bool} ;
|
||||
|
||||
-- Noun
|
||||
|
||||
CN = {s : Number => Str ; g : Gender} ;
|
||||
NP,Pron = {s : NPForm => Str ; a : Agr ; c : ClitType} ;
|
||||
Det = {s : Gender => Case => Str ; n : Number} ;
|
||||
QuantSg = {s : Gender => Case => Str} ;
|
||||
QuantPl = {s : Gender => Case => Str} ;
|
||||
Predet = {s : AAgr => Str} ;
|
||||
Num = {s : Gender => Str} ;
|
||||
Ord = {s : AAgr => Str} ;
|
||||
|
||||
-- Adverb
|
||||
|
||||
Adv, AdV, AdA, AdS, AdN = {s : Str} ;
|
||||
|
||||
-- Numeral
|
||||
|
||||
---- Numeral = {s : CardOrd => Str ; n : Number} ;
|
||||
|
||||
-- Structural
|
||||
|
||||
Conj = {s : Str ; n : Number} ;
|
||||
DConj = {s1,s2 : Str ; n : Number} ;
|
||||
PConj = {s : Str} ;
|
||||
CAdv = {s : Str} ;
|
||||
Subj = {s : Str ; m : Mood} ;
|
||||
Prep = {s : Str} ;
|
||||
|
||||
-- Open lexical classes, e.g. Basic
|
||||
|
||||
V, VS, VQ, VA = Verb ;
|
||||
V2, VV, V2A = Verb ** {c2 : Compl} ;
|
||||
V3 = Verb ** {c2,c3 : Compl} ;
|
||||
|
||||
A = {s : Degree => AForm => Str ; isPre : Bool} ;
|
||||
A2 = {s : Degree => AForm => Str ; c2 : Compl} ;
|
||||
|
||||
N = Noun ;
|
||||
N2 = Noun ** {c2 : Compl} ;
|
||||
N3 = Noun ** {c2,c3 : Compl} ;
|
||||
PN = {s : Str ; g : Gender} ;
|
||||
|
||||
oper
|
||||
Noun = {s : Number => Str ; g : Gender} ;
|
||||
Verb = {s : VF => Str ; aux : VAux ; isRefl : Bool} ;
|
||||
|
||||
}
|
||||
45
lib/resource-1.0/romance/ConjunctionRomance.gf
Normal file
45
lib/resource-1.0/romance/ConjunctionRomance.gf
Normal file
@@ -0,0 +1,45 @@
|
||||
incomplete concrete ConjunctionRomance of Conjunction =
|
||||
CatRomance ** open ResRomance, Coordination, Prelude in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lin
|
||||
|
||||
ConjS conj ss = conjunctTable Order conj ss ;
|
||||
DConjS conj ss = conjunctDistrTable Order conj ss ;
|
||||
|
||||
ConjAdv conj ss = conjunctSS conj ss ;
|
||||
DConjAdv conj ss = conjunctDistrSS conj ss ;
|
||||
|
||||
ConjNP conj ss = conjunctTable NPForm conj ss ** {
|
||||
a = {gn = conjGenNum (gennum utrum conj.n) ss.a.gn ; p = ss.a.p}
|
||||
} ;
|
||||
DConjNP conj ss = conjunctDistrTable NPForm conj ss ** {
|
||||
a = {gn = conjGenNum (gennum utrum conj.n) ss.a.gn ; p = ss.a.p}
|
||||
} ;
|
||||
|
||||
ConjAP conj ss = conjunctTable AFormPos conj ss ** {
|
||||
isPre = ss.isPre
|
||||
} ;
|
||||
DConjAP conj ss = conjunctDistrTable AFormPos conj ss ** {
|
||||
isPre = ss.isPre
|
||||
} ;
|
||||
|
||||
-- These fun's are generated from the list cat's.
|
||||
|
||||
BaseS = twoTable Order ;
|
||||
ConsS = consrTable Order comma ;
|
||||
BaseAdv = twoSS ;
|
||||
ConsAdv = consrSS comma ;
|
||||
BaseNP x y = twoTable NPForm x y ** {a = conjAgr x.a y.a} ;
|
||||
ConsNP xs x = consrTable NPForm comma xs x ** {a = conjAgr xs.a x.a} ;
|
||||
BaseAP x y = twoTable AFormPos x y ** {isPre = andB x.isPre y.isPre} ;
|
||||
ConsAP xs x = consrTable AFormPos comma xs x ** {isPre = andB xs.isPre x.isPre} ;
|
||||
|
||||
lincat
|
||||
[S] = {s1,s2 : Order => Str} ;
|
||||
[Adv] = {s1,s2 : Str} ;
|
||||
[NP] = {s1,s2 : NPForm => Str ; a : Agr} ;
|
||||
[AP] = {s1,s2 : AFormPos => Str ; isPre : Bool} ;
|
||||
|
||||
}
|
||||
55
lib/resource-1.0/romance/DiffRomance.gf
Normal file
55
lib/resource-1.0/romance/DiffRomance.gf
Normal file
@@ -0,0 +1,55 @@
|
||||
interface DiffRomance = open ResRomance, Prelude in {
|
||||
|
||||
--2 Parameters.
|
||||
|
||||
-- Prepositions that fuse with the article vary.
|
||||
|
||||
param
|
||||
|
||||
Prep ;
|
||||
|
||||
Case = Nom | Acc | CPrep Prep ;
|
||||
|
||||
NPForm = Ton Case | Aton Case | Poss AAgr ;
|
||||
|
||||
RelForm = RSimple Case | RComplex Gender Number Case ;
|
||||
|
||||
VAux ;
|
||||
|
||||
oper
|
||||
|
||||
Compl : Type = {s : Str ; c : Case} ;
|
||||
|
||||
dative : Case ;
|
||||
genitive : Case ;
|
||||
|
||||
prepCase : Case -> Str ;
|
||||
|
||||
npform2case : NPForm -> Case = \p -> case p of {
|
||||
Ton x => x ;
|
||||
Aton x => x ;
|
||||
Poss _ => genitive
|
||||
} ;
|
||||
|
||||
case2npform : Case -> NPForm = \c -> case c of {
|
||||
Nom => Aton Nom ;
|
||||
Acc => Aton Acc ;
|
||||
_ => Ton c
|
||||
} ;
|
||||
|
||||
npRelForm : NPForm -> RelForm = \np -> case np of {
|
||||
Ton c => RSimple c ;
|
||||
Aton c => RSimple c ;
|
||||
Poss _ => RSimple genitive
|
||||
} ;
|
||||
|
||||
appCompl : Compl -> (NPForm => Str) -> Str = \comp,np ->
|
||||
comp.s ++ np ! Ton comp.c ;
|
||||
|
||||
artDef : Gender -> Number -> Case -> Str ;
|
||||
artIndef : Gender -> Number -> Case -> Str ;
|
||||
|
||||
partitive : Gender -> Case -> Str ;
|
||||
|
||||
}
|
||||
|
||||
15
lib/resource-1.0/romance/ExtEngAbs.gf
Normal file
15
lib/resource-1.0/romance/ExtEngAbs.gf
Normal file
@@ -0,0 +1,15 @@
|
||||
abstract ExtEngAbs = Cat ** {
|
||||
|
||||
cat
|
||||
Aux ; -- auxiliary verbs: "can", "must", etc
|
||||
|
||||
-- Notice that $Aux$ cannot form $VP$ with infinitive, imperative, etc.
|
||||
|
||||
fun
|
||||
PredAux : NP -> Aux -> VP -> Cl ;
|
||||
QuestAux : IP -> Aux -> VP -> QCl ;
|
||||
|
||||
can_Aux : Aux ;
|
||||
must_Aux : Aux ;
|
||||
|
||||
}
|
||||
14
lib/resource-1.0/romance/ExtRomance.gf
Normal file
14
lib/resource-1.0/romance/ExtRomance.gf
Normal file
@@ -0,0 +1,14 @@
|
||||
incomplete concrete ExtRomance of ExtRomanceAbs =
|
||||
CatRomance ** open DiffRomance, ResRomance in {
|
||||
|
||||
lin
|
||||
DefSgN predet noun = let g = noun.g in {
|
||||
s = \\c => predet.s ! gennum g Sg ++ noun.s ! Sg ! Def ! caseNP c ;
|
||||
a = agrP3 g Sg
|
||||
} ;
|
||||
DefPlN predet noun = let g = noun.g in {
|
||||
s = \\c => predet.s ! Plg ++ noun.s ! Pl ! Def ! caseNP c ;
|
||||
a = agrP3 g Sg
|
||||
} ;
|
||||
|
||||
}
|
||||
9
lib/resource-1.0/romance/ExtScandAbs.gf
Normal file
9
lib/resource-1.0/romance/ExtScandAbs.gf
Normal file
@@ -0,0 +1,9 @@
|
||||
abstract ExtRomanceAbs = Cat ** {
|
||||
|
||||
fun
|
||||
|
||||
-- Definite form of simple nouns without article; neither $Num$ nor $Ord$ allowed.
|
||||
|
||||
DefSgN, DefPlN : Predef -> N -> NP ;
|
||||
|
||||
}
|
||||
27
lib/resource-1.0/romance/MathRomance.gf
Normal file
27
lib/resource-1.0/romance/MathRomance.gf
Normal file
@@ -0,0 +1,27 @@
|
||||
incomplete concrete MathRomance of Math =
|
||||
CatRomance ** open Prelude, ResRomance, DiffRomance in {
|
||||
|
||||
lin
|
||||
SymbPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
||||
IntPN i = {s = \\c => i.s ; g = Neutr} ; --- c
|
||||
CNIntNP cn i = {
|
||||
s = \\c => (cn.s ! Sg ! DIndef ! Nom ++ i.s) ;
|
||||
a = agrP3 cn.g Sg
|
||||
} ;
|
||||
CNSymbNP det cn xs = let g = cn.g in {
|
||||
s = \\c => det.s ! g ++ cn.s ! det.n ! det.det ! caseNP c ++ xs.s ;
|
||||
a = agrP3 g det.n
|
||||
} ;
|
||||
|
||||
lincat
|
||||
|
||||
Symb, SymbList = SS ;
|
||||
|
||||
lin
|
||||
|
||||
MkSymb s = s ;
|
||||
|
||||
BaseSymb = infixSS conjAnd ;
|
||||
ConsSymb = infixSS "," ;
|
||||
|
||||
}
|
||||
124
lib/resource-1.0/romance/NounRomance.gf
Normal file
124
lib/resource-1.0/romance/NounRomance.gf
Normal file
@@ -0,0 +1,124 @@
|
||||
incomplete concrete NounRomance of Noun =
|
||||
CatRomance ** open DiffRomance, ResRomance, Prelude in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lin
|
||||
DetCN det cn =
|
||||
let
|
||||
g = cn.g ;
|
||||
n = det.n
|
||||
in {
|
||||
s = \\c => det.s ! g ! npform2case c ++ cn.s ! n ;
|
||||
a = agrP3 g n ;
|
||||
c = Clit0
|
||||
} ;
|
||||
|
||||
UsePN pn = {
|
||||
s = \\c => prepCase (npform2case c) ++ pn.s ;
|
||||
a = agrP3 pn.g Sg ;
|
||||
c = Clit0
|
||||
} ;
|
||||
|
||||
UsePron p = p ;
|
||||
|
||||
PredetNP pred np = {
|
||||
s = \\c => prepCase (npform2case c) ++ pred.s ! np.a ++ np.s ! Ton Acc ;
|
||||
a = np.a ;
|
||||
c = Clit0
|
||||
} ;
|
||||
|
||||
DetSg quant ord = {
|
||||
s = \\g,c => quant.s ! g ! c ++ ord.s ! aagr g Sg ;
|
||||
n = Sg
|
||||
} ;
|
||||
DetPl quant num ord = {
|
||||
s = \\g,c => quant.s ! g ! c ++ num.s ! g ++ ord.s ! aagr g Sg ;
|
||||
n = Pl
|
||||
} ;
|
||||
|
||||
PossSg p = {
|
||||
s = \\g,c => prepCase c ++ p.s ! Poss (aagr g Sg) ;
|
||||
n = Sg
|
||||
} ;
|
||||
PossPl p = {
|
||||
s = \\g,c => prepCase c ++ p.s ! Poss (aagr g Pl) ;
|
||||
n = Pl
|
||||
} ;
|
||||
|
||||
NoNum = {s = \\_ => []} ;
|
||||
NoOrd = {s = \\_ => []} ;
|
||||
|
||||
NumInt n = {s = \\_ => n.s} ;
|
||||
OrdInt n = {s = \\_ => n.s ++ "ème"} ; ---
|
||||
|
||||
---- NumNumeral numeral = {s = \\g => numeral.s ! NCard g ; isDet = True} ;
|
||||
---- OrdNumeral numeral = {s = numeral.s ! NOrd SupWeak ; isDet = True} ;
|
||||
|
||||
AdNum adn num = {s = \\a => adn.s ++ num.s ! a} ;
|
||||
|
||||
---- OrdSuperl a = {s = a.s ! AF (ASuperl SupWeak) Nom ; isDet = True} ;
|
||||
|
||||
DefSg = {
|
||||
s = \\g,c => artDef g Sg c ;
|
||||
n = Sg
|
||||
} ;
|
||||
DefPl = {
|
||||
s = \\g,c => artDef g Sg c ;
|
||||
n = Pl
|
||||
} ;
|
||||
|
||||
IndefSg = {
|
||||
s = \\g,c => artIndef g Sg c ;
|
||||
n = Sg
|
||||
} ;
|
||||
IndefPl = {
|
||||
s = \\g,c => artIndef g Pl c ;
|
||||
n = Pl
|
||||
} ;
|
||||
|
||||
MassDet = {
|
||||
s = \\g,c => partitive g c ;
|
||||
n = Sg
|
||||
} ;
|
||||
|
||||
-- This is based on record subtyping.
|
||||
|
||||
UseN, UseN2, UseN3 = \noun -> noun ;
|
||||
|
||||
ComplN2 f x = {
|
||||
s = \\n => f.s ! n ++ appCompl f.c2 x.s ;
|
||||
g = f.g ;
|
||||
} ;
|
||||
ComplN3 f x = {
|
||||
s = \\n => f.s ! n ++ appCompl f.c2 x.s ;
|
||||
g = f.g ;
|
||||
c2 = f.c3
|
||||
} ;
|
||||
|
||||
AdjCN ap cn =
|
||||
let
|
||||
g = cn.g
|
||||
in {
|
||||
s = \\n => preOrPost ap.isPre (ap.s ! (AF g n)) (cn.s ! n) ;
|
||||
g = g ;
|
||||
} ;
|
||||
|
||||
{-
|
||||
RelCN cn rs = let g = cn.g in {
|
||||
s = \\n,d,c => cn.s ! n ! d ! c ++ rs.s ! agrP3 g n ;
|
||||
g = g ;
|
||||
isMod = cn.isMod
|
||||
} ;
|
||||
SentCN cn sc = let g = cn.g in {
|
||||
s = \\n,d,c => cn.s ! n ! d ! c ++ sc.s ;
|
||||
g = g ;
|
||||
isMod = cn.isMod
|
||||
} ;
|
||||
AdvCN cn sc = let g = cn.g in {
|
||||
s = \\n,d,c => cn.s ! n ! d ! c ++ sc.s ;
|
||||
g = g ;
|
||||
isMod = cn.isMod
|
||||
} ;
|
||||
-}
|
||||
}
|
||||
126
lib/resource-1.0/romance/ParamRomance.gf
Normal file
126
lib/resource-1.0/romance/ParamRomance.gf
Normal file
@@ -0,0 +1,126 @@
|
||||
--1 Romance Word Classes and Morphological Parameters
|
||||
--
|
||||
|
||||
resource ParamRomance = ParamX ** open Prelude in {
|
||||
|
||||
-- This is a resource module for Romance grammars, currently instantiated for
|
||||
-- French, Italian, and Spanish. It defines the
|
||||
-- morphological parameters that are common to all Romance languages.
|
||||
-- The guiding principle has been
|
||||
-- to share as much as possible, which has two advantages: it saves work in
|
||||
-- encoding, and it shows how the languages are related.
|
||||
-- Those parameters that differ are defined in [DiffRomance DiffRomance.html].
|
||||
-- Some parameters are shared even more widely, such as $Number$ and $Person$.
|
||||
-- They are defined in [ParamX ParamX.html].
|
||||
|
||||
|
||||
--2 Enumerated parameter types for morphology
|
||||
--
|
||||
-- These types are the ones found in school grammars.
|
||||
-- Their parameter values are atomic.
|
||||
|
||||
param
|
||||
|
||||
Gender = Masc | Fem ;
|
||||
|
||||
Mood = Indic | Conjunct ;
|
||||
|
||||
-- There are different types of clicic pronouns (as for position).
|
||||
-- Examples of each: "Giovanni" ; "io" ; "lui" ; "noi".
|
||||
|
||||
ClitType = Clit0 | Clit1 | Clit2 | Clit3 ;
|
||||
|
||||
-- Adjectives are inflected in gender and number, and there is also an
|
||||
-- adverbial form (e.g. "infiniment"), which has different paradigms and
|
||||
-- can even be irregular ("bien").
|
||||
-- Comparative adjectives are moreover inflected in degree
|
||||
-- (which in Romance is usually syntactic, though).
|
||||
|
||||
AForm = AF Gender Number | AA ;
|
||||
|
||||
-- Gender is not morphologically determined for first and second person pronouns.
|
||||
|
||||
PronGen = PGen Gender | PNoGen ;
|
||||
|
||||
-- The following coercions are useful:
|
||||
|
||||
oper
|
||||
prongen2gender : PronGen -> Gender = \p -> case p of {
|
||||
PGen g => g ;
|
||||
PNoGen => variants {Masc ; Fem} --- the best we can do for je, tu, nous, vous
|
||||
} ;
|
||||
|
||||
|
||||
aform2gender : AForm -> Gender = \a -> case a of {
|
||||
AF g _ => g ;
|
||||
_ => Masc -- "le plus lentement"
|
||||
} ;
|
||||
aform2number : AForm -> Number = \a -> case a of {
|
||||
AF _ n => n ;
|
||||
_ => Sg -- "le plus lentement"
|
||||
} ;
|
||||
|
||||
--3 Verbs
|
||||
--
|
||||
-- In the current syntax, we use
|
||||
-- a reduced conjugation with only the present tense infinitive,
|
||||
-- indicative, subjunctive, and imperative forms.
|
||||
-- But our morphology has full Bescherelle conjunctions:
|
||||
-- so we use a coercion between full and reduced verbs.
|
||||
-- The full conjugations and the coercions are defined separately for French
|
||||
-- and Italian, since they are not identical. The differences are mostly due
|
||||
-- to Bescherelle structuring the forms in different groups; the
|
||||
-- gerund and the present participles show real differences.
|
||||
|
||||
param
|
||||
VF =
|
||||
VInfin
|
||||
| VFin TMood Number Person
|
||||
| VImper NumPersI
|
||||
| VPart Gender Number
|
||||
| VGer
|
||||
;
|
||||
|
||||
TMood =
|
||||
VPres Mood
|
||||
| VImperf Mood
|
||||
| VPasse
|
||||
| VFut
|
||||
| VCondit
|
||||
;
|
||||
|
||||
NumPersI = SgP2 | PlP1 | PlP2 ;
|
||||
|
||||
-- Agreement of adjectives, verb phrases, and relative pronouns.
|
||||
|
||||
oper
|
||||
AAgr : Type = {g : Gender ; n : Number} ;
|
||||
Agr : Type = AAgr ** {p : Person} ;
|
||||
|
||||
param
|
||||
RAgr = RAg AAgr | RNoAg ;
|
||||
|
||||
oper
|
||||
aagr : Gender -> Number -> AAgr = \g,n ->
|
||||
{g = g ; n = n} ;
|
||||
agrP3 : Gender -> Number -> Agr = \g,n ->
|
||||
aagr g n ** {p = P3} ;
|
||||
|
||||
|
||||
vf2numpers : VF -> (Number * Person) = \v -> case v of {
|
||||
VFin _ n p => <n,p> ;
|
||||
_ => <Sg,P3> ----
|
||||
} ;
|
||||
|
||||
presInd = VPres Indic ;
|
||||
|
||||
-- The imperative forms depend on number and person.
|
||||
|
||||
vImper : Number -> Person -> VF = \n,p -> case <n,p> of {
|
||||
<Sg,P2> => VImper SgP2 ;
|
||||
<Pl,P1> => VImper PlP1 ;
|
||||
<Pl,P2> => VImper PlP2 ;
|
||||
_ => VInfin
|
||||
} ;
|
||||
|
||||
}
|
||||
24
lib/resource-1.0/romance/PhraseRomance.gf
Normal file
24
lib/resource-1.0/romance/PhraseRomance.gf
Normal file
@@ -0,0 +1,24 @@
|
||||
incomplete concrete PhraseRomance of Phrase =
|
||||
CatRomance, TenseX ** open DiffRomance, ResRomance, Prelude in {
|
||||
|
||||
lin
|
||||
PhrUtt pconj utt voc = {s = pconj.s ++ utt.s ++ voc.s} ;
|
||||
|
||||
UttS s = {s = s.s ! Main} ;
|
||||
UttQS qs = {s = qs.s ! QDir} ;
|
||||
UttImpSg pol imp = {s = pol.s ++ imp.s ! pol.p ! Sg} ;
|
||||
UttImpPl pol imp = {s = pol.s ++ imp.s ! pol.p ! Pl} ;
|
||||
|
||||
UttIP ip = {s = ip.s ! nominative} ; --- Acc also
|
||||
UttIAdv iadv = iadv ;
|
||||
UttNP np = {s = np.s ! accusative} ;
|
||||
UttVP vp = {s = infMark ++ infVP vp (agrP3 Utr Sg)} ;
|
||||
UttAdv adv = adv ;
|
||||
|
||||
NoPConj = {s = []} ;
|
||||
PConjConj conj = conj ;
|
||||
|
||||
NoVoc = {s = []} ;
|
||||
VocNP np = {s = "," ++ np.s ! nominative} ;
|
||||
|
||||
}
|
||||
66
lib/resource-1.0/romance/QuestionRomance.gf
Normal file
66
lib/resource-1.0/romance/QuestionRomance.gf
Normal file
@@ -0,0 +1,66 @@
|
||||
incomplete concrete QuestionRomance of Question =
|
||||
CatRomance ** open DiffRomance, ResRomance in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lin
|
||||
|
||||
QuestCl cl = {
|
||||
s = \\t,a,p =>
|
||||
let cls = cl.s ! t ! a ! p
|
||||
in table {
|
||||
QDir => cls ! Inv ;
|
||||
QIndir => subjIf ++ cls ! Sub
|
||||
}
|
||||
} ;
|
||||
|
||||
QuestVP qp vp = {
|
||||
s = \\t,a,b,q =>
|
||||
let
|
||||
somo = case q of {
|
||||
QIndir => <"som",Sub> ;
|
||||
_ => <[], Main>
|
||||
} ;
|
||||
cl = mkClause (qp.s ! nominative ++ somo.p1) {gn = qp.gn ; p = P3} vp
|
||||
in
|
||||
cl.s ! t ! a ! b ! somo.p2
|
||||
} ;
|
||||
|
||||
QuestSlash ip slash = {
|
||||
s = \\t,a,p =>
|
||||
let
|
||||
cls = slash.s ! t ! a ! p ;
|
||||
who = slash.c2 ++ ip.s ! accusative --- stranding in ExtRomance
|
||||
in table {
|
||||
QDir => who ++ cls ! Inv ;
|
||||
QIndir => who ++ cls ! Sub
|
||||
}
|
||||
} ;
|
||||
|
||||
QuestIAdv iadv cl = {
|
||||
s = \\t,a,p =>
|
||||
let
|
||||
cls = cl.s ! t ! a ! p ;
|
||||
why = iadv.s
|
||||
in table {
|
||||
QDir => why ++ cls ! Inv ;
|
||||
QIndir => why ++ cls ! Sub
|
||||
}
|
||||
} ;
|
||||
|
||||
PrepIP p ip = {
|
||||
s = p.s ++ ip.s ! accusative
|
||||
} ;
|
||||
|
||||
AdvIP ip adv = {
|
||||
s = \\c => ip.s ! c ++ adv.s ;
|
||||
gn = ip.gn
|
||||
} ;
|
||||
|
||||
IDetCN idet num ord cn = let g = cn.g in {
|
||||
s = \\c =>
|
||||
idet.s ! g ++ num.s ! g ++ ord.s ++ cn.s ! idet.n ! idet.det ! caseNP c ;
|
||||
gn = gennum g idet.n
|
||||
} ;
|
||||
|
||||
}
|
||||
44
lib/resource-1.0/romance/RelativeRomance.gf
Normal file
44
lib/resource-1.0/romance/RelativeRomance.gf
Normal file
@@ -0,0 +1,44 @@
|
||||
incomplete concrete RelativeRomance of Relative =
|
||||
CatRomance ** open DiffRomance, ResRomance in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lin
|
||||
|
||||
RelCl cl = {
|
||||
s = \\t,a,p,ag => pronSuch ! ag.gn ++ conjThat ++ cl.s ! t ! a ! p ! Sub
|
||||
} ;
|
||||
|
||||
RelVP rp vp = {
|
||||
s = \\t,ant,b,ag =>
|
||||
let
|
||||
agr = case rp.a of {
|
||||
RNoAg => ag ;
|
||||
RAg a => a
|
||||
} ;
|
||||
cl = mkClause (rp.s ! ag.gn ! RNom) agr vp
|
||||
in
|
||||
cl.s ! t ! ant ! b ! Sub
|
||||
} ;
|
||||
|
||||
--- We make this easy by using "som" and preposition stranding. It would be
|
||||
--- a proble to determine whether $slash$ takes a direct object, since
|
||||
--- $slash.c2$ is defined to be just a string.
|
||||
--
|
||||
-- The empty relative is left to $ExtRomance$.
|
||||
|
||||
RelSlash rp slash = {
|
||||
s = \\t,a,p,ag =>
|
||||
rp.s ! ag.gn ! RNom ++ slash.s ! t ! a ! p ! Sub ++ slash.c2
|
||||
} ;
|
||||
|
||||
--- The case here could be genitive.
|
||||
|
||||
FunRP p np rp = {
|
||||
s = \\gn,c => np.s ! nominative ++ p.s ++ rp.s ! gn ! RPrep ;
|
||||
a = RAg np.a
|
||||
} ;
|
||||
|
||||
IdRP = {s = relPron ; a = RNoAg} ;
|
||||
|
||||
}
|
||||
205
lib/resource-1.0/romance/ResRomance.gf
Normal file
205
lib/resource-1.0/romance/ResRomance.gf
Normal file
@@ -0,0 +1,205 @@
|
||||
----1 Romance auxiliary operations.
|
||||
--
|
||||
---- This module contains operations that are needed to make the
|
||||
---- resource syntax work. To define everything that is needed to
|
||||
---- implement $Test$, it moreover contains regular lexical
|
||||
---- patterns needed for $Lex$.
|
||||
--
|
||||
resource ResRomance = ParamRomance ** open Prelude in {
|
||||
|
||||
flags optimize=all ;
|
||||
|
||||
oper
|
||||
genForms : Str -> Str -> Gender => Str = \bon,bonne ->
|
||||
table {
|
||||
Masc => bon ;
|
||||
Fem => bonne
|
||||
} ;
|
||||
|
||||
|
||||
}
|
||||
|
||||
{-
|
||||
oper
|
||||
|
||||
-- For $Lex$.
|
||||
|
||||
-- For each lexical category, here are the worst-case constructors.
|
||||
--
|
||||
-- But $mkNoun$ is fully defined only for each language, since
|
||||
-- $Gender$ varies.
|
||||
|
||||
nounForms : (x1,_,_,x4 : Str) -> (Number => Species => Case => Str) =
|
||||
\man,mannen,men,mennen -> \\n,d,c => case <n,d> of {
|
||||
<Sg,Indef> => mkCase c man ;
|
||||
<Sg,Def> => mkCase c mannen ;
|
||||
<Pl,Indef> => mkCase c men ;
|
||||
<Pl,Def> => mkCase c mennen
|
||||
} ;
|
||||
|
||||
Adjective : Type = {s : AForm => Str} ;
|
||||
|
||||
mkAdjective : (x1,_,_,_,_,_,x7 : Str) -> {s : AForm => Str} =
|
||||
\liten, litet, lilla, sma, mindre, minst, minsta -> {
|
||||
s = table {
|
||||
AF (APosit a) c => mkCase c (mkAdjPos a liten litet lilla sma) ;
|
||||
AF ACompar c => mkCase c mindre ;
|
||||
AF (ASuperl SupStrong) c => mkCase c minst ;
|
||||
AF (ASuperl SupWeak) c => mkCase c minsta
|
||||
}
|
||||
} ;
|
||||
|
||||
mkVerb : (x1,_,_,_,_,_,_,x8 : Str) -> {s : VForm => Str ; vtype : VType} =
|
||||
\finna,finner,finn,fann,funnit,funnen,funnet,funna -> {
|
||||
s = table {
|
||||
VF (VPres Act) => finner ;
|
||||
VF (VPres Pass) => mkVoice Pass finn ;
|
||||
VF (VPret v) => mkVoice v fann ;
|
||||
VF (VImper v) => mkVoice v finn ;
|
||||
VI (VInfin v) => mkVoice v finna ;
|
||||
VI (VSupin v) => mkVoice v funnit ;
|
||||
VI (VPtPret a c)=> mkCase c (mkAdjPos a funnen funnet funna funna)
|
||||
} ;
|
||||
vtype = VAct
|
||||
} ;
|
||||
|
||||
-- These are useful auxiliaries.
|
||||
|
||||
mkCase : Case -> Str -> Str = \c,f -> case c of {
|
||||
Nom => f ;
|
||||
Gen => f + case last f of {
|
||||
"s" | "x" => [] ;
|
||||
_ => "s"
|
||||
}
|
||||
} ;
|
||||
|
||||
mkAdjPos : AFormPos -> (s1,_,_,s4 : Str) -> Str =
|
||||
\a, liten, litet, lilla, sma ->
|
||||
case a of {
|
||||
Strong gn => case gn of {
|
||||
SgUtr => liten ;
|
||||
SgNeutr => litet ;
|
||||
Plg => sma
|
||||
} ;
|
||||
Weak Sg => lilla ;
|
||||
Weak Pl => sma
|
||||
} ;
|
||||
|
||||
mkVoice : Voice -> Str -> Str = \v,s -> case v of {
|
||||
Act => s ;
|
||||
Pass => s + case last s of {
|
||||
"s" => "es" ;
|
||||
_ => "s"
|
||||
}
|
||||
} ;
|
||||
|
||||
|
||||
-- For $Noun$.
|
||||
|
||||
artDef : GenNum -> Str = \gn -> gennumForms "den" "det" "de" ! gn ;
|
||||
|
||||
mkNP : (x1,_,_,_,x5 : Str) -> GenNum -> Person ->
|
||||
{s : NPForm => Str ; a : Agr} = \du,dig,din,ditt,dina,gn,p -> {
|
||||
s = table {
|
||||
NPNom => du ;
|
||||
NPAcc => dig ;
|
||||
NPPoss g => gennumForms din ditt dina ! g
|
||||
} ;
|
||||
a = {
|
||||
gn = gn ;
|
||||
p = p
|
||||
}
|
||||
} ;
|
||||
|
||||
gennumForms : (x1,x2,x3 : Str) -> GenNum => Str = \den,det,de ->
|
||||
table {
|
||||
SgUtr => den ;
|
||||
SgNeutr => det ;
|
||||
_ => de
|
||||
} ;
|
||||
|
||||
regNP : Str -> Str -> GenNum -> {s : NPForm => Str ; a : Agr} =
|
||||
\det,dess,gn ->
|
||||
mkNP det det dess dess dess gn P3 ;
|
||||
|
||||
|
||||
-- For $Verb$.
|
||||
|
||||
Verb : Type = {
|
||||
s : VForm => Str ;
|
||||
vtype : VType
|
||||
} ;
|
||||
|
||||
VP = {
|
||||
s : VPForm => {
|
||||
fin : Str ; -- V1 har ---s1
|
||||
inf : Str -- V2 sagt ---s4
|
||||
} ;
|
||||
a1 : Polarity => Str ; -- A1 inte ---s3
|
||||
n2 : Agr => Str ; -- N2 dig ---s5
|
||||
a2 : Str ; -- A2 idag ---s6
|
||||
ext : Str ; -- S-Ext att hon går ---s7
|
||||
--- ea1,ev2, --- these depend on params of v and a1
|
||||
en2,ea2,eext : Bool -- indicate if the field exists
|
||||
} ;
|
||||
|
||||
|
||||
insertObj : (Agr => Str) -> VP -> VP = \obj,vp -> {
|
||||
s = vp.s ;
|
||||
a1 = vp.a1 ;
|
||||
n2 = \\a => vp.n2 ! a ++ obj ! a ;
|
||||
a2 = vp.a2 ;
|
||||
ext = vp.ext ;
|
||||
en2 = True ;
|
||||
ea2 = vp.ea2 ;
|
||||
eext = vp.eext
|
||||
} ;
|
||||
|
||||
insertAdv : Str -> VP -> VP = \adv,vp -> {
|
||||
s = vp.s ;
|
||||
a1 = vp.a1 ;
|
||||
n2 = vp.n2 ;
|
||||
a2 = vp.a2 ++ adv ;
|
||||
ext = vp.ext ;
|
||||
en2 = vp.en2 ;
|
||||
ea2 = True ;
|
||||
eext = vp.eext
|
||||
} ;
|
||||
|
||||
insertAdV : Str -> VP -> VP = \adv,vp -> {
|
||||
s = vp.s ;
|
||||
a1 = \\b => vp.a1 ! b ++ adv ;
|
||||
n2 = vp.n2 ;
|
||||
a2 = vp.a2 ;
|
||||
ext = vp.ext ;
|
||||
en2 = vp.en2 ;
|
||||
ea2 = vp.ea2 ;
|
||||
eext = vp.eext
|
||||
} ;
|
||||
|
||||
infVP : VP -> Agr -> Str = \vp,a ->
|
||||
(vp.s ! VPInfinit Simul).inf ++ vp.n2 ! a ++ vp.a2 ++ vp.ext ; --- a1
|
||||
|
||||
|
||||
-- For $Sentence$.
|
||||
|
||||
Clause : Type = {
|
||||
s : Tense => Anteriority => Polarity => Order => Str
|
||||
} ;
|
||||
|
||||
mkClause : Str -> Agr -> VP -> Clause = \subj,agr,vp -> {
|
||||
s = \\t,a,b,o =>
|
||||
let
|
||||
verb = vp.s ! VPFinite t a ;
|
||||
neg = vp.a1 ! b ;
|
||||
compl = vp.n2 ! agr ++ vp.a2 ++ vp.ext
|
||||
in
|
||||
case o of {
|
||||
Main => subj ++ verb.fin ++ neg ++ verb.inf ++ compl ;
|
||||
Inv => verb.fin ++ subj ++ neg ++ verb.inf ++ compl ;
|
||||
Sub => subj ++ neg ++ verb.fin ++ verb.inf ++ compl
|
||||
}
|
||||
} ;
|
||||
|
||||
}
|
||||
-}
|
||||
43
lib/resource-1.0/romance/SentenceRomance.gf
Normal file
43
lib/resource-1.0/romance/SentenceRomance.gf
Normal file
@@ -0,0 +1,43 @@
|
||||
incomplete concrete SentenceRomance of Sentence =
|
||||
CatRomance ** open DiffRomance, ResRomance in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lin
|
||||
PredVP np vp = mkClause (np.s ! nominative) np.a vp ;
|
||||
|
||||
PredSCVP sc vp = mkClause sc.s (agrP3 neutrum Sg) vp ;
|
||||
|
||||
ImpVP vp = {
|
||||
s = \\pol,n =>
|
||||
let
|
||||
agr = {gn = gennum utrum n ; p = P2} ;
|
||||
verb = vp.s ! VPImperat ;
|
||||
in
|
||||
verb.fin ++ vp.a1 ! pol ++ verb.inf ++ vp.n2 ! agr ++ vp.a2 ++ vp.ext
|
||||
} ;
|
||||
|
||||
SlashV2 np v2 =
|
||||
mkClause
|
||||
(np.s ! nominative) np.a
|
||||
(predV v2) **
|
||||
{c2 = v2.c2} ;
|
||||
|
||||
SlashVVV2 np vv v2 =
|
||||
mkClause
|
||||
(np.s ! nominative) np.a
|
||||
(insertObj (\\_ => vv.c2 ++ infVP (predV v2) np.a) (predV vv)) **
|
||||
{c2 = v2.c2} ;
|
||||
|
||||
AdvSlash slash adv = {
|
||||
s = \\t,a,b,o => slash.s ! t ! a ! b ! o ++ adv.s ;
|
||||
c2 = slash.c2
|
||||
} ;
|
||||
|
||||
SlashPrep cl prep = cl ** {c2 = prep.s} ;
|
||||
|
||||
EmbedS s = {s = conjThat ++ s.s ! Sub} ;
|
||||
EmbedQS qs = {s = qs.s ! QIndir} ;
|
||||
EmbedVP vp = {s = infVP vp (agrP3 utrum Sg)} ; --- agr
|
||||
|
||||
}
|
||||
41
lib/resource-1.0/romance/SeqConjunctionRomance.gf
Normal file
41
lib/resource-1.0/romance/SeqConjunctionRomance.gf
Normal file
@@ -0,0 +1,41 @@
|
||||
--concrete SeqConjunctionRomance of Conjunction =
|
||||
-- CatRomance ** open ResRomance, Coordination, Prelude in {
|
||||
--
|
||||
-- lin
|
||||
--
|
||||
-- ConjS conj ss = {s = conjunctX conj ss} ;
|
||||
-- DConjS conj ss = {s = conjunctDistrX conj ss} ;
|
||||
--
|
||||
-- ConjAdv conj ss = {s = conjunctX conj ss} ;
|
||||
-- DConjAdv conj ss = {s = conjunctDistrX conj ss} ;
|
||||
--
|
||||
-- ConjNP conj ss = conjunctTable Case conj ss ** {
|
||||
-- a = {n = conjNumber conj.n ss.a.n ; p = ss.a.p}
|
||||
-- } ;
|
||||
-- DConjNP conj ss = conjunctDistrTable Case conj ss ** {
|
||||
-- a = {n = conjNumber conj.n ss.a.n ; p = ss.a.p}
|
||||
-- } ;
|
||||
--
|
||||
-- ConjAP conj ss = conjunctTable Agr conj ss ** {
|
||||
-- isPre = ss.isPre
|
||||
-- } ;
|
||||
-- DConjAP conj ss = conjunctDistrTable Agr conj ss ** {
|
||||
-- isPre = ss.isPre
|
||||
-- } ;
|
||||
--
|
||||
-- TwoS = twoSS ;
|
||||
-- AddS = consSS comma ;
|
||||
-- TwoAdv = twoSS ;
|
||||
-- AddAdv = consSS comma ;
|
||||
-- TwoNP x y = twoTable Case x y ** {a = conjAgr x.a y.a} ;
|
||||
-- AddNP xs x = consTable Case comma xs x ** {a = conjAgr xs.a x.a} ;
|
||||
-- TwoAP x y = twoTable Agr x y ** {isPre = andB x.isPre y.isPre} ;
|
||||
-- AddAP xs x = consTable Agr comma xs x ** {isPre = andB xs.isPre x.isPre} ;
|
||||
--
|
||||
-- lincat
|
||||
-- SeqS = {s1,s2 : Str} ;
|
||||
-- SeqAdv = {s1,s2 : Str} ;
|
||||
-- SeqNP = {s1,s2 : Case => Str ; a : Agr} ;
|
||||
-- SeqAP = {s1,s2 : Agr => Str ; isPre : Bool} ;
|
||||
--
|
||||
--}
|
||||
11
lib/resource-1.0/romance/TensedRomance.gf
Normal file
11
lib/resource-1.0/romance/TensedRomance.gf
Normal file
@@ -0,0 +1,11 @@
|
||||
incomplete concrete TensedRomance of Tensed = CatRomance, TenseX **
|
||||
open ResRomance in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lin
|
||||
UseCl t a p cl = {s = \\o => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! o} ;
|
||||
UseQCl t a p cl = {s = \\q => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! q} ;
|
||||
UseRCl t a p cl = {s = \\r => t.s ++ a.s ++ p.s ++ cl.s ! t.t ! a.a ! p.p ! r} ;
|
||||
|
||||
}
|
||||
15
lib/resource-1.0/romance/UntensedRomance.gf
Normal file
15
lib/resource-1.0/romance/UntensedRomance.gf
Normal file
@@ -0,0 +1,15 @@
|
||||
incomplete concrete UntensedRomance of Untensed = CatRomance ** open ResRomance in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lin
|
||||
PosCl cl = {s = cl.s ! Pres ! Simul ! Pos} ;
|
||||
NegCl cl = {s = cl.s ! Pres ! Simul ! Neg} ;
|
||||
|
||||
PosQCl cl = {s = cl.s ! Pres ! Simul ! Pos} ;
|
||||
NegQCl cl = {s = cl.s ! Pres ! Simul ! Neg} ;
|
||||
|
||||
PosRCl cl = {s = cl.s ! Pres ! Simul ! Pos} ;
|
||||
NegRCl cl = {s = cl.s ! Pres ! Simul ! Neg} ;
|
||||
|
||||
}
|
||||
43
lib/resource-1.0/romance/VerbRomance.gf
Normal file
43
lib/resource-1.0/romance/VerbRomance.gf
Normal file
@@ -0,0 +1,43 @@
|
||||
incomplete concrete VerbRomance of Verb = CatRomance ** open DiffRomance, ResRomance in {
|
||||
|
||||
flags optimize=all_subs ;
|
||||
|
||||
lin
|
||||
UseV = predV ;
|
||||
ComplV2 v np = insertObj (\\_ => v.c2 ++ np.s ! accusative) (predV v) ;
|
||||
ComplV3 v np np2 =
|
||||
insertObj
|
||||
(\\_ => v.c2 ++ np.s ! accusative ++ v.c3 ++ np2.s ! accusative)
|
||||
(predV v) ;
|
||||
|
||||
ComplVV v vp = insertObj (\\a => v.c2 ++ infVP vp a) (predV v) ;
|
||||
ComplVS v s = insertObj (\\_ => conjThat ++ s.s ! Sub) (predV v) ;
|
||||
ComplVQ v q = insertObj (\\_ => q.s ! QIndir) (predV v) ;
|
||||
|
||||
ComplVA v ap =
|
||||
insertObj (\\a => ap.s ! agrAdj a.gn DIndef) (predV v) ;
|
||||
ComplV2A v np ap =
|
||||
insertAdv
|
||||
(ap.s ! agrAdj np.a.gn DIndef)
|
||||
(insertObj (\\_ => v.c2 ++ np.s ! accusative) (predV v)) ;
|
||||
|
||||
UseComp comp = insertObj (\\a => comp.s ! agrAdj a.gn DIndef) (predV verbBe) ;
|
||||
|
||||
CompAP ap = ap ;
|
||||
CompNP np = {s = \\_ => np.s ! accusative} ;
|
||||
CompAdv a = {s = \\_ => a.s} ;
|
||||
|
||||
AdvVP vp adv = insertAdv adv.s vp ;
|
||||
AdVVP adv vp = insertAdV adv.s vp ;
|
||||
|
||||
|
||||
ReflV2 v = insertObj (\\a => v.c2 ++ reflPron a) (predV v) ;
|
||||
|
||||
PassV2 v =
|
||||
insertObj
|
||||
(\\a => v.s ! VI (VPtPret (agrAdj a.gn DIndef) Nom))
|
||||
(predV verbBecome) ;
|
||||
|
||||
UseVS, UseVQ = \vv -> {s = vv.s ; c2 = [] ; vtype = vv.vtype} ;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user