resource = resource-1.0

This commit is contained in:
aarne
2006-06-22 22:25:55 +00:00
parent 7e5584b1ab
commit 251bc4c738
881 changed files with 31130 additions and 31130 deletions

View File

@@ -0,0 +1,2 @@
concrete AdjectiveFre of Adjective = CatFre ** AdjectiveRomance with
(ResRomance = ResFre) ;

View File

@@ -0,0 +1,2 @@
concrete AdverbFre of Adverb = CatFre ** AdverbRomance with
(ResRomance = ResFre) ;

View File

@@ -1,233 +0,0 @@
--# -path=.:../romance:../abstract:../../prelude
--# -val
concrete BasicFre of Basic = CategoriesFre ** open ParadigmsFre, VerbsFre in {
flags
startcat=Phr ; lexer=textlit ; unlexer=text ;
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_ADeg = prefADeg (mkADeg (regA "mauvais") (regA "pire")) ;
bank_N = regN "banque" feminine ;
beautiful_ADeg = prefADeg (regADeg "joli") ; ---- beau
become_VA = mkVA devenir_V ;
beer_N = regN "bière" feminine ;
beg_V2V = mkV2V (regV "demander") accusative dative ;
big_ADeg = prefADeg (regADeg "grand") ;
bike_N = regN "vélo" masculine ;
bird_N = regN "oiseau" masculine ;
black_ADeg = regADeg "noir" ;
blue_ADeg = regADeg "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_ADeg = regADeg "large" ;
brother_N2 = deN2 (regN "frère" masculine) ;
brown_ADeg = regADeg "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_ADeg = regADeg "propre" ;
clever_ADeg = regADeg "sage" ; ----
close_V2 = dirV2 (regV "fermer") ;
coat_N = regN "manteau" masculine ;
cold_ADeg = regADeg "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_ADeg = regADeg "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_ADeg = regADeg "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_ADeg = prefADeg (mkADeg (mkA "bon" "bonne" "bons" "bien")
(mkA "meilleur" "meilleure" "meilleurs" "mieux")) ;
go_V = aller_V ;
green_ADeg = regADeg "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_ADeg = regADeg "chaud" ;
house_N = regN "maison" feminine ;
important_ADeg = regADeg "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_ADeg = 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_ADeg = regADeg "étroit" ;
new_ADeg = prefADeg (compADeg (mkA "nouveau" "nouvelle" "nouveaux" "nouvellement")) ;
newspaper_N = regN "journal" masculine ;
oil_N = regN "huile" feminine ;
old_ADeg =
prefADeg (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_ADeg = regADeg "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_ADeg = regADeg "court" ; ---- bref
silver_N = regN "argent" masculine ;
sister_N = regN "soeur" feminine ;
sleep_V = v2V dormir_V2 ;
small_ADeg = prefADeg (regADeg "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_ADeg = regADeg "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_ADeg = compADeg (mkA "épais" "épaisse" "épais" "épaissement") ;
thin_ADeg = regADeg "fin" ;
train_N = regN "train" masculine ;
travel_V = regV "voyager" ;
tree_N = regN "arbre" masculine ;
---- trousers_N = regN "pantalon" masculine ;
ugly_ADeg = regADeg "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_ADeg = regADeg "chaud" ;
war_N = regN "guerre" masculine ;
watch_V2 = dirV2 (regV "regarder") ;
water_N = regN "eau" feminine ;
white_ADeg = 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_ADeg = regADeg "jaune" ;
young_ADeg = prefADeg (regADeg "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
} ;

View File

@@ -1,4 +1,6 @@
resource BeschFre = open Prelude, TypesFre, MorphoFre in {
resource BeschFre = open Prelude, MorphoFre in {
flags optimize=noexpand ; -- faster and smaller than =all
oper VerbeN = {s : VF => Str} ;
oper mkNV : Verbe -> VerbeN = \ve -> {s = vvf ve} ;
@@ -6,7 +8,7 @@ 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 ;
VInfin _ => ve ;
_ => nonExist
}
} ;
@@ -97,4 +99,4 @@ oper v_besch82 : Str -> VerbeN = \s -> mkNV (conj3cuire s) ;
oper v_besch100 : Str -> VerbeN = \s -> mkNV (conj s) ; --- to do
oper v_besch101 : Str -> VerbeN = \s -> mkNV (conj s) ; --- to do
}
}

View File

@@ -0,0 +1,4 @@
--# -path=.:../romance:../common:../abstract:../common:prelude
concrete CatFre of Cat = CommonX - [Tense,TPres,TPast,TFut,TCond] ** CatRomance with
(ResRomance = ResFre) ;

View File

@@ -1,4 +0,0 @@
--# -path=.:../romance:../abstract:../../prelude
concrete CategoriesFre of Categories =
CategoriesRomance with (SyntaxRomance=SyntaxFre) ;

View File

@@ -1,4 +0,0 @@
--# -path=.:../romance:../abstract:../../prelude
concrete ClauseFre of Clause = CategoriesFre **
ClauseRomance with (SyntaxRomance=SyntaxFre) ;

View File

@@ -1,101 +0,0 @@
resource ConjugNancy = open Prelude, TypesFre, MorphoFre in {
oper VerbeN = {s : VForm => Str} ;
oper mkNV : Verbe -> VerbeN = \ve ->
{s = ve} ;
oper conj : Str -> Verbe = conj1aimer ; --- temp. default
oper v_nancy100inf : Str -> VerbeN = \ve -> {s = table {
Inf => ve ;
_ => nonExist
}
} ;
oper v_nancy1 : Str -> VerbeN = \s -> mkNV (conjAvoir s) ;
oper v_nancy2 : Str -> VerbeN = \s -> mkNV (conjÊtre s) ;
-- 3-5 not used
oper v_nancy6 : Str -> VerbeN = \s -> mkNV (conj1aimer s) ;
oper v_nancy7 : Str -> VerbeN = \s -> mkNV (conj1placer s) ;
oper v_nancy8 : Str -> VerbeN = \s -> mkNV (conj1manger s) ;
oper v_nancy9 : Str -> VerbeN = \s -> mkNV (conj1peser s) ;
oper v_nancy10 : Str -> VerbeN = \s -> mkNV (conj1céder s) ;
oper v_nancy11 : Str -> VerbeN = \s -> mkNV (conj1jeter s) ;
oper v_nancy12 : Str -> VerbeN = \s -> mkNV (conj1jeter s) ;
oper v_nancy13 : Str -> VerbeN = \s -> mkNV (conj1aimer s) ;
oper v_nancy14 : Str -> VerbeN = \s -> mkNV (conj1assiéger s) ;
oper v_nancy15 : Str -> VerbeN = \s -> mkNV (conj1aimer s) ; --- ?
oper v_nancy16 : Str -> VerbeN = \s -> mkNV (conj1payer s) ;
oper v_nancy17 : Str -> VerbeN = \s -> mkNV (conj1payer s) ;
oper v_nancy18 : Str -> VerbeN = \s -> mkNV (conj1envoyer s) ;
oper v_nancy19 : Str -> VerbeN = \s -> mkNV (conj2finir s) ;
oper v_nancy20 : Str -> VerbeN = \s -> mkNV (conj2haïr s) ;
-- oper v_nancy21 : Str -> VerbeN = \s -> mkNV (conj s) ; -- not used
oper v_nancy22 : Str -> VerbeN = \s -> mkNV (conj3aller s) ;
oper v_nancy23 : Str -> VerbeN = \s -> mkNV (conj3tenir s) ;
oper v_nancy24 : Str -> VerbeN = \s -> mkNV (conj3quérir s) ;
oper v_nancy25 : Str -> VerbeN = \s -> mkNV (conj3sentir s) ;
oper v_nancy26 : Str -> VerbeN = \s -> mkNV (conj3vêtir s) ;
oper v_nancy27 : Str -> VerbeN = \s -> mkNV (conj3couvrir s) ;
oper v_nancy28 : Str -> VerbeN = \s -> mkNV (conj3cueillir s) ;
oper v_nancy29 : Str -> VerbeN = \s -> mkNV (conj3assaillir s) ;
oper v_nancy30 : Str -> VerbeN = \s -> mkNV (conj3faillir s) ;
oper v_nancy31 : Str -> VerbeN = \s -> mkNV (conj3bouillir s) ;
oper v_nancy32 : Str -> VerbeN = \s -> mkNV (conj3dormir s) ;
oper v_nancy33 : Str -> VerbeN = \s -> mkNV (conj3courir s) ;
oper v_nancy34 : Str -> VerbeN = \s -> mkNV (conj3mourir s) ;
oper v_nancy35 : Str -> VerbeN = \s -> mkNV (conj3sentir s) ;
oper v_nancy36 : Str -> VerbeN = \s -> mkNV (conj3fuir s) ;
oper v_nancy37 : Str -> VerbeN = \s -> mkNV (conj3ouïr s) ;
oper v_nancy38 : Str -> VerbeN = \s -> mkNV (conj3cevoir s) ;
oper v_nancy39 : Str -> VerbeN = \s -> mkNV (conj3voir s) ;
oper v_nancy40 : Str -> VerbeN = \s -> mkNV (conj3pourvoir s) ;
oper v_nancy41 : Str -> VerbeN = \s -> mkNV (conj3savoir s) ;
oper v_nancy42 : Str -> VerbeN = \s -> mkNV (conj3devoir s) ;
oper v_nancy43 : Str -> VerbeN = \s -> mkNV (conj3pouvoir s) ;
oper v_nancy44 : Str -> VerbeN = \s -> mkNV (conj3mouvoir s) ;
oper v_nancy45 : Str -> VerbeN = \s -> mkNV (conj3pleuvoir s) ;
oper v_nancy46 : Str -> VerbeN = \s -> mkNV (conj3falloir s) ;
oper v_nancy47 : Str -> VerbeN = \s -> mkNV (conj3valoir s) ;
oper v_nancy48 : Str -> VerbeN = \s -> mkNV (conj3vouloir s) ;
oper v_nancy49 : Str -> VerbeN = \s -> mkNV (conj3asseoir s) ;
oper v_nancy50 : Str -> VerbeN = \s -> mkNV (conj3messeoir s) ; --- ?
oper v_nancy51 : Str -> VerbeN = \s -> mkNV (conj3surseoir s) ;
oper v_nancy52 : Str -> VerbeN = \s -> mkNV (conj3choir s) ;
oper v_nancy53 : Str -> VerbeN = \s -> mkNV (conj3rendre s) ;
oper v_nancy54 : Str -> VerbeN = \s -> mkNV (conj3prendre s) ;
oper v_nancy55 : Str -> VerbeN = \s -> mkNV (conj3battre s) ;
oper v_nancy56 : Str -> VerbeN = \s -> mkNV (conj3mettre s) ;
oper v_nancy57 : Str -> VerbeN = \s -> mkNV (conj3peindre s) ;
oper v_nancy58 : Str -> VerbeN = \s -> mkNV (conj3joindre s) ;
oper v_nancy59 : Str -> VerbeN = \s -> mkNV (conj3craindre s) ;
oper v_nancy60 : Str -> VerbeN = \s -> mkNV (conj3vaincre s) ;
oper v_nancy61 : Str -> VerbeN = \s -> mkNV (conj3traire s) ;
oper v_nancy62 : Str -> VerbeN = \s -> mkNV (conj3faire s) ;
oper v_nancy63 : Str -> VerbeN = \s -> mkNV (conj3plaire s) ;
oper v_nancy64 : Str -> VerbeN = \s -> mkNV (conj3connaître s) ;
oper v_nancy65 : Str -> VerbeN = \s -> mkNV (conj3naître s) ;
oper v_nancy66 : Str -> VerbeN = \s -> mkNV (conj3paître s) ;
oper v_nancy67 : Str -> VerbeN = \s -> mkNV (conj3croître s) ;
oper v_nancy68 : Str -> VerbeN = \s -> mkNV (conj3croire s) ;
oper v_nancy69 : Str -> VerbeN = \s -> mkNV (conj3boire s) ;
oper v_nancy70 : Str -> VerbeN = \s -> mkNV (conj3clore s) ;
oper v_nancy71 : Str -> VerbeN = \s -> mkNV (conj3conclure s) ;
oper v_nancy72 : Str -> VerbeN = \s -> mkNV (conj3absoudre s) ;
oper v_nancy73 : Str -> VerbeN = \s -> mkNV (conj3coudre s) ;
oper v_nancy74 : Str -> VerbeN = \s -> mkNV (conj3moudre s) ;
oper v_nancy75 : Str -> VerbeN = \s -> mkNV (conj3suivre s) ;
oper v_nancy76 : Str -> VerbeN = \s -> mkNV (conj3vivre s) ;
oper v_nancy77 : Str -> VerbeN = \s -> mkNV (conj3lire s) ;
oper v_nancy78 : Str -> VerbeN = \s -> mkNV (conj3dire s) ;
oper v_nancy79 : Str -> VerbeN = \s -> mkNV (conj3rire s) ;
oper v_nancy80 : Str -> VerbeN = \s -> mkNV (conj3écrire s) ;
oper v_nancy81 : Str -> VerbeN = \s -> mkNV (conj3confire s) ;
oper v_nancy82 : Str -> VerbeN = \s -> mkNV (conj3cuire s) ;
-- 83-99 not used
oper v_nancy100 : Str -> VerbeN = \s -> mkNV (conj s) ; --- to do
oper v_nancy101 : Str -> VerbeN = \s -> mkNV (conj s) ; --- to do
}

View File

@@ -0,0 +1,2 @@
concrete ConjunctionFre of Conjunction = CatFre ** ConjunctionRomance with
(ResRomance = ResFre) ;

View File

@@ -1,27 +0,0 @@
concrete CountryFre of Country = open CategoriesFre, ParadigmsFre in {
lincat
Country = PN ;
Nationality = A ;
Language = N ;
lin
Denmark = mkPN "Danemark" masculine ;
England = mkPN "Angleterre" feminine ;
Finland = mkPN "Finlande" feminine ;
France = mkPN "France" feminine ;
Germany = mkPN "Allemagne" feminine ;
Italy = mkPN "Italie" feminine ;
Norway = mkPN "Norvège" feminine ;
Russia = mkPN "Russie" feminine ;
Spain = mkPN "Espagne" feminine ;
Sweden = mkPN "Suède" feminine ;
Danish = regA "danois" ;
English = regA "anglais" ;
DanishLang = regN "danois" masculine ;
EnglishLang = regN "anglais" masculine ;
} ;

View File

@@ -1,9 +0,0 @@
instance DemResFre of DemRes = open Prelude, ResourceFre, SyntaxFre in {
oper
msS : S -> Str = \x -> x.s ! Ind ;
msQS : QS -> Str = \x -> x.s ! DirQ ;
msImp : Imp -> Str = \x -> x.s ! Masc ! Sg ;
} ;

View File

@@ -1,7 +0,0 @@
--# -path=.:../abstract:../romance:../../prelude
concrete DemonstrativeFre of Demonstrative =
CategoriesFre ** DemonstrativeI with
(Resource = ResourceFre),
(Basic = BasicFre),
(DemRes = DemResFre) ;

View File

@@ -0,0 +1,207 @@
--# -path=.:../romance:../abstract:../common:prelude
instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in {
flags optimize=noexpand ;
-- flags optimize=all ;
param
Prep = P_de | P_a ;
VType = VHabere | VEsse | VRefl ;
oper
dative : Case = CPrep P_a ;
genitive : Case = CPrep P_de ;
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"
} ;
possCase = \_,_,c -> prepCase c ;
partitive = \g,c -> case c of {
CPrep P_de => elisDe ;
_ => prepCase c ++ artDef g Sg (CPrep P_de)
} ;
conjunctCase : NPForm -> NPForm = \c -> case c of {
Aton k => Ton k ;
_ => c
} ;
auxVerb : VType -> (VF => Str) = \vtyp -> case vtyp of {
VHabere => avoir_V.s ;
_ => copula.s
} ;
partAgr : VType -> VPAgr = \vtyp -> case vtyp of {
VHabere => vpAgrNone ;
_ => VPAgrSubj
} ;
vpAgrClit : Agr -> VPAgr = \a ->
VPAgrClit (aagr a.g a.n) ; --- subty
---- pronArg = pronArgGen Neg ; --- takes more space and time
pronArg : Number -> Person -> CAgr -> CAgr -> Str * Str * Bool =
\n,p,acc,dat ->
let
pacc = case acc of {
CRefl => <case p of {
P3 => elision "s" ; --- use of reflPron incred. expensive
_ => argPron Fem n p Acc
},True> ;
CPron a => <argPron a.g a.n a.p Acc,True> ;
_ => <[],False>
} ;
in
case dat of {
CPron a => let pdat = argPron a.g a.n a.p dative in case a.p of {
P3 => <pacc.p1 ++ pdat,[],True> ;
_ => <pdat ++ pacc.p1,[],True>
} ;
_ => <pacc.p1, [],pacc.p2>
} ;
-- Positive polarity is used in the imperative: stressed for 1st and
-- 2nd persons.
pronArgGen : Polarity -> Number -> Person -> CAgr -> CAgr -> Str * Str = \b,n,p,acc,dat ->
let
cas : Person -> Case -> Case = \pr,c -> case <pr,b> of {
<P1 | P2, Pos> => CPrep P_de ; --- encoding in argPron
_ => c
} ;
pacc = case acc of {
CRefl => case p of {
P3 => elision "s" ; --- use of reflPron incred. expensive
_ => argPron Fem n p (cas p Acc)
} ;
CPron a => argPron a.g a.n a.p (cas a.p Acc) ;
_ => []
} ;
pdat = case dat of {
CPron a => argPron a.g a.n a.p (cas a.p dative) ;
_ => []
} ;
in
case dat of {
CPron {p = P3} => <pacc ++ pdat,[]> ;
_ => <pdat ++ pacc, []>
} ;
mkImperative p vp = {
s = \\pol,aag =>
let
agr = aag ** {p = p} ;
verb = (vp.s ! VPImperat).fin ! agr ;
neg = vp.neg ! pol ;
hascl = (pronArg agr.n agr.p vp.clAcc vp.clDat).p3 ;
clpr = pronArgGen pol agr.n agr.p vp.clAcc vp.clDat ;
compl = neg.p2 ++ clpr.p2 ++ vp.comp ! agr ++ vp.ext ! pol
in
case pol of {
Pos => verb ++ if_then_Str hascl "-" [] ++ clpr.p1 ++ compl ;
Neg => neg.p1 ++ clpr.p1 ++ verb ++ compl
}
} ;
negation : Polarity => (Str * Str) = table {
Pos => <[],[]> ;
Neg => <elisNe,"pas">
} ;
conjThan = elisQue ;
conjThat = elisQue ;
clitInf _ cli inf = cli ++ inf ;
relPron : Bool => AAgr => Case => Str = \\b,a,c =>
let
lequel = artDef a.g a.n c + quelPron ! a
in
case b of {
False => case c of {
Nom => "qui" ;
Acc => elisQue ;
CPrep P_de => "dont" ;
_ => lequel
} ;
_ => lequel
} ;
pronSuch : AAgr => Str = aagrForms "tel" "telle" "tels" "telles" ;
quelPron : AAgr => Str = aagrForms "quel" "quelle" "quels" "quelles" ;
partQIndir = elision "c" ;
reflPron : Number -> Person -> Case -> Str = \n,p,c ->
let pron = argPron Fem n p c in
case <p,c> of {
<P3, Acc | CPrep P_a> => elision "s" ;
<P3, _> => prepCase c ++ "soi" ;
_ => pron
} ;
argPron : Gender -> Number -> Person -> Case -> Str =
let
cases : (x,y : Str) -> Case -> Str = \me,moi,c -> case c of {
Acc | CPrep P_a => me ;
_ => moi
} ;
cases3 : (x,y,z : Str) -> Case -> Str = \les,leur,eux,c -> case c of {
Acc => les ;
CPrep P_a => leur ;
_ => eux
} ;
in
\g,n,p -> case <g,n,p> of {
<_,Sg,P1> => cases (elision "m") "moi" ;
<_,Sg,P2> => cases (elision "t") "toi" ;
<_,Pl,P1> => \_ -> "nous" ;
<_,Pl,P2> => \_ -> "vous" ;
<Fem,Sg,P3> => cases3 elisLa "lui" "elle" ;
<_,Sg,P3> => cases3 (elision "l") "lui" "lui" ;
<Fem,Pl,P3> => cases3 "les" "leur" "elles" ;
<_,Pl,P3> => cases3 "les" "leur" "eux"
} ;
vRefl : VType = VRefl ;
isVRefl : VType -> Bool = \ty -> case ty of {
VRefl => True ;
_ => False
} ;
auxPassive : Verb = copula ;
copula : Verb = {s = table VF ["être";"être";"suis";"es";"est";"sommes";"êtes";"sont";"sois";"sois";"soit";"soyons";"soyez";"soient";"étais";"étais";"était";"étions";"étiez";"étaient";"fusse";"fusses";"fût";"fussions";"fussiez";"fussent";"fus";"fus";"fut";"fûmes";"fûtes";"furent";"serai";"seras";"sera";"serons";"serez";"seront";"serais";"serais";"serait";"serions";"seriez";"seraient";"sois";"soyons";"soyez";"été";"étés";"étée";"étées";"étant"]; vtyp=VHabere} ;
avoir_V : Verb = {s=table VF ["avoir";"avoir";"ai";"as";"a";"avons";"avez";"ont";"aie";"aies";"ait";"ayons";"ayez";"aient";"avais";"avais";"avait";"avions";"aviez";"avaient";"eusse";"eusses";"eût";"eussions";"eussiez";"eussent";"eus";"eus";"eut";"eûmes";"eûtes";"eurent";"aurai";"auras";"aura";"aurons";"aurez";"auront";"aurais";"aurais";"aurait";"aurions";"auriez";"auraient";"aie";"ayons";"ayez";"eu";"eus";"eue";"eues";"ayant"];vtyp=VHabere};
}

View File

@@ -0,0 +1,60 @@
concrete ExtraFre of ExtraFreAbs = ExtraRomanceFre **
open CommonRomance, PhonoFre, MorphoFre, ParadigmsFre, ParamX, ResFre in {
lin
EstcequeS qs = {s = "est-ce" ++ elisQue ++ qs.s ! Indic} ;
EstcequeIAdvS idet qs = {s = idet.s ++ "est-ce" ++ elisQue ++ qs.s ! Indic} ;
QueestcequeIP = {
s = table {
c => prepQue c ++ "est-ce" ++ caseQue c
} ;
a = aagr Fem Pl
} ;
QuiestcequeIP = {
s = table {
c => prepQue c ++ "qui" ++ "est-ce" ++ caseQue c
} ;
a = aagr Fem Pl
} ;
i8fem_Pron = mkPronoun
(elision "j") (elision "m") (elision "m") "moi" "mon" (elisPoss "m") "mes"
Fem Sg P1 ;
these8fem_NP = mkNP ["celles-ci"] Fem Pl ;
they8fem_Pron = mkPronoun
"elles" "les" "leur" "eux" "leur" "leur" "leurs"
Fem Pl P3 ;
this8fem_NP = pn2np (mkPN ["celle-ci"] Fem) ;
those8fem_NP = mkNP ["celles-là"] Fem Pl ;
we8fem_Pron = mkPronoun "nous" "nous" "nous" "nous" "notre" "notre" "nos"
Fem Pl P1 ;
whoPl8fem_IP =
{s = \\c => artDef a.g a.n c + quelPron ! a ; a = a}
where {a = aagr Fem Sg} ;
whoSg8fem_IP =
{s = \\c => artDef a.g a.n c + quelPron ! a ; a = a}
where {a = aagr Fem Pl} ;
youSg8fem_Pron = mkPronoun
"tu" (elision "t") (elision "t") "toi" "ton" (elisPoss "t") "tes"
Fem Sg P2 ;
youPl8fem_Pron,
youPol8fem_Pron =
mkPronoun
"vous" "vous" "vous" "vous" "votre" "votre" "vos"
Fem Pl P2 ;
oper
prepQue : Case -> Str = \c -> case c of {
Nom | Acc => elisQue ;
_ => prepCase c ++ "qui" ---
} ;
caseQue : Case -> Str = \c -> case c of {
Nom => "qui" ;
_ => elisQue
} ;
}

View File

@@ -0,0 +1,34 @@
-- Structures special for French. These are not implemented in other
-- Romance languages.
abstract ExtraFreAbs = ExtraRomanceAbs ** {
-- Notice: only direct (main-clause) questions are generated, and needed.
fun
EstcequeS : S -> Utt ; -- est-ce qu'il pleut
EstcequeIAdvS : IAdv -> S -> Utt ; -- où est-ce qu'il pleut
-- These also generate indirect (subordinate) questions.
QueestcequeIP : IP ; -- qu'est-ce (que/qui)
QuiestcequeIP : IP ; -- qu'est-ce (que/qui)
-- Feminine variants of pronouns (those in $Structural$ are
-- masculine, which is the default when gender is unknown).
i8fem_Pron : Pron ;
these8fem_NP : NP ;
they8fem_Pron : Pron ;
this8fem_NP : NP ;
those8fem_NP : NP ;
we8fem_Pron : Pron ;
whoPl8fem_IP : IP ;
whoSg8fem_IP : IP ;
youSg8fem_Pron : Pron ;
youPl8fem_Pron : Pron ;
youPol8fem_Pron : Pron ;
}

View File

@@ -0,0 +1,2 @@
concrete ExtraRomanceFre of ExtraRomanceAbs = CatFre ** ExtraRomance with
(ResRomance = ResFre) ;

View File

@@ -0,0 +1,7 @@
--# -path=.:../romance:../abstract:../common:prelude
concrete French of FrenchAbs =
LangFre,
IrregFre,
ExtraFre
** {} ;

View File

@@ -0,0 +1,5 @@
abstract FrenchAbs =
Lang,
IrregFreAbs,
ExtraFreAbs
** {} ;

View File

@@ -0,0 +1,21 @@
--# -path=.:../romance:../abstract:../common:prelude
concrete GrammarFre of Grammar =
NounFre,
VerbFre,
AdjectiveFre,
AdverbFre,
NumeralFre,
SentenceFre,
QuestionFre,
RelativeFre,
ConjunctionFre,
PhraseFre,
TextX - [Tense,TPres,TPast,TFut,TCond],
IdiomFre,
StructuralFre
** {
flags startcat = Phr ; unlexer = text ; lexer = text ;
} ;

View File

@@ -0,0 +1,43 @@
concrete IdiomFre of Idiom = CatFre **
open (P = ParamX), PhonoFre, MorphoFre, ParadigmsFre, Prelude in {
flags optimize=all_subs ;
lin
ImpersCl vp = mkClause "il" (agrP3 Masc Sg) vp ;
GenericCl vp = mkClause "on" (agrP3 Masc Sg) vp ;
ExistNP np =
mkClause "il" (agrP3 Masc Sg)
(insertClit2 "y" (insertComplement (\\_ => np.s ! Ton Acc) (predV avoir_V))) ;
ExistIP ip = {
s = \\t,a,p,_ =>
ip.s ! Nom ++
(mkClause "il" (agrP3 Masc Sg) (insertClit2 "y" (predV avoir_V))).s ! t ! a ! p ! Indic
} ;
CleftNP np rs = mkClause elisCe (agrP3 Masc Sg)
(insertComplement (\\_ => rs.s ! Indic ! np.a)
(insertComplement (\\_ => np.s ! Ton rs.c) (predV copula))) ;
CleftAdv ad s = mkClause elisCe (agrP3 Masc Sg)
(insertComplement (\\_ => conjThat ++ s.s ! Indic)
(insertComplement (\\_ => ad.s) (predV copula))) ;
ProgrVP vp =
insertComplement
(\\a => "en" ++ "train" ++ elisDe ++ infVP vp a)
(predV copula) ;
ImpPl1 vp = {s =
(mkImperative P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem
} ;
oper
elisCe = elision "c" ;
}

View 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 IrregFre of IrregFreAbs = 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" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
absoudre_V2 = v_besch72 "absoudre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
abstenir_V = v_besch23 "abstenir" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
abstraire_V2 = v_besch61 "abstraire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
accourir_V = v_besch33 "accourir" ** {vtyp = VHabere ; lock_V = <>} ;
accroître_V2 = v_besch73 "accroître" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
accueillir_V2 = v_besch28 "accueillir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
acquérir_V2 = v_besch24 "acquérir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
adjoindre_V2 = v_besch58 "adjoindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
admettre_V2 = v_besch56 "admettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
advenir_V = v_besch23 "advenir" ** {vtyp = VEsse ; lock_V = <>} ;
aller_V = v_besch22 "aller" ** {vtyp = VEsse ; lock_V = <>} ;
apercevoir_V2 = v_besch38 "apercevoir" ** {vtyp = VRefl ; lock_V2 = <> ; c2 = complGen} ;
apparaître_V = v_besch64 "apparaître" ** {vtyp = VHabere ; lock_V = <>} ;
appartenir_V2 = v_besch23 "appartenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
appendre_V2 = v_besch53 "appendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
apprendre_V2 = v_besch54 "apprendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
assaillir_V2 = v_besch29 "assaillir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
asseoir_V2 = v_besch49 "asseoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
astreindre_V2 = v_besch57 "astreindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
atteindre_V2 = v_besch57 "atteindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
attendre_V2 = v_besch53 "attendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
avoir_V2 = v_besch1 "avoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
battre_V2 = v_besch55 "battre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
boire_V2 = v_besch69 "boire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
bouillir_V2 = v_besch31 "bouillir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
braire_V = v_besch61 "braire" ** {vtyp = VHabere ; lock_V = <>} ;
ceindre_V2 = v_besch57 "ceindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
choir_V = v_besch52 "choir" ** {vtyp = VEsse ; lock_V = <>} ;
circonscrire_V2 = v_besch80 "circonscrire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
circonvenir_V2 = v_besch23 "circonvenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
clore_V2 = v_besch70 "clore" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
combattre_V2 = v_besch55 "combattre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
commettre_V2 = v_besch56 "commettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
comparaître_V2 = v_besch64 "comparaître" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
complaire_V2 = v_besch63 "complaire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
comprendre_V2 = v_besch54 "comprendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
compromettre_V2 = v_besch56 "compromettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
concevoir_V2 = v_besch38 "concevoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
conclure_V2 = v_besch71 "conclure" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
concourir_V2 = v_besch33 "concourir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
condescendre_V2 = v_besch53 "condescendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
conduire_V2 = v_besch82 "conduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
confire_V2 = v_besch81 "confire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
confondre_V2 = v_besch53 "confondre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
conjoindre_V2 = v_besch58 "conjoindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
connaître_V2 = v_besch64 "connaître" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
conquérir_V2 = v_besch24 "conquérir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
consentir_V2 = v_besch25 "consentir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
construire_V2 = v_besch82 "construire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
contenir_V2 = v_besch23 "contenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
contraindre_V2 = v_besch59 "contraindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
contrebattre_V2 = v_besch55 "contrebattre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
contredire_V2 = v_besch78 "contredire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
contrefaire_V2 = v_besch62 "contrefaire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
contrevenir_V2 = v_besch23 "contrevenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
convaincre_V2 = v_besch60 "convaincre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
convenir_V2 = v_besch23 "convenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
correspondre_V2 = v_besch53 "correspondre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
corrompre_V2 = v_besch53 "corrompre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
coudre_V2 = v_besch73 "coudre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
courir_V2 = v_besch33 "courir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
couvrir_V2 = v_besch27 "couvrir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
craindre_V2 = v_besch59 "craindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
croire_V2 = v_besch68 "croire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
croître_V = v_besch67 "croître" ** {vtyp = VEsse ; lock_V = <>} ;
cueillir_V2 = v_besch28 "cueillir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
cuire_V2 = v_besch82 "cuire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
débattre_V2 = v_besch55 "débattre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
débouillir_V2 = v_besch31 "débouillir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
décevoir_V2 = v_besch38 "décevoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
déchoir_V2 = v_besch52 "déchoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
déclore_V2 = v_besch70 "déclore" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
décommettre_V2 = v_besch56 "décommettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
déconfire_V2 = v_besch81 "déconfire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
découdre_V2 = v_besch73 "découdre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
découvrir_V2 = v_besch27 "découvrir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
décrire_V2 = v_besch80 "décrire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
décroître_V2 = v_besch67 "décroître" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
décuire_V2 = v_besch82 "décuire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
déduire_V2 = v_besch82 "déduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
défaillir_V = v_besch30 "défaillir" ** {vtyp = VHabere ; lock_V = <>} ;
défaire_V2 = v_besch62 "défaire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
défendre_V2 = v_besch53 "défendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
démentir_V2 = v_besch25 "démentir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
démettre_V2 = v_besch56 "démettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
démordre_V = v_besch53 "démordre" ** {vtyp = VHabere ; lock_V = <>} ;
départir_V2 = v_besch25 "départir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
dépeindre_V2 = v_besch57 "dépeindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
dépendre_V2 = v_besch53 "dépendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
déplaire_V = v_besch63 "déplaire" ** {vtyp = VHabere ; lock_V = <>} ;
dépourvoir_V2 = v_besch40 "dépourvoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
déprendre_V2 = v_besch54 "déprendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
désapprendre_V2 = v_besch54 "désapprendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
descendre_V2 = v_besch53 "descendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
desservir_V2 = v_besch35 "desservir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
déteindre_V2 = v_besch57 "déteindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
détendre_V2 = v_besch53 "détendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
détenir_V2 = v_besch23 "détenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
détordre_V2 = v_besch53 "détordre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
détruire_V2 = v_besch82 "détruire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
devenir_V = v_besch23 "devenir" ** {vtyp = VEsse ; lock_V = <>} ;
dévêtir_V2 = v_besch26 "dévêtir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
devoir_V2 = v_besch42 "devoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
dire_V2 = v_besch78 "dire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
disconvenir_V2 = v_besch23 "disconvenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
discourir_V2 = v_besch33 "discourir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
disjoindre_V2 = v_besch58 "disjoindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
disparaître_V2 = v_besch64 "disparaître" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
dissoudre_V2 = v_besch72 "dissoudre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
distendre_V2 = v_besch53 "distendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
distordre_V2 = v_besch53 "distordre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
distraire_V2 = v_besch61 "distraire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
dormir_V2 = v_besch32 "dormir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
ébattre_V = v_besch55 "ébattre" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
échoir_V2 = v_besch52 "échoir" ** {vtyp = VEsse ; lock_V2 = <> ; c2 = complDat} ;
éclore_V2 = v_besch70 "éclore" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
éconduire_V2 = v_besch82 "éconduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
écrire_V2 = v_besch80 "écrire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
élire_V2 = v_besch77 "élire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
embatre_V2 = v_besch55 "embatre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
embattre_V2 = v_besch55 "embattre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
emboire_V = v_besch69 "emboire" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
émettre_V2 = v_besch56 "émettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
émoudre_V2 = v_besch74 "émoudre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
émouvoir_V2 = v_besch44 "émouvoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
empreindre_V2 = v_besch57 "empreindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
enceindre_V2 = v_besch57 "enceindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
enclore_V2 = v_besch70 "enclore" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
encourir_V2 = v_besch33 "encourir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
endormir_V2 = v_besch32 "endormir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
enduire_V2 = v_besch82 "enduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
enfreindre_V2 = v_besch57 "enfreindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
enfuir_V = v_besch36 "enfuir" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
enjoindre_V2 = v_besch58 "enjoindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
enquérir_V = v_besch24 "enquérir" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
entendre_V2 = v_besch53 "entendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
entr'apercevoir_V = v_besch38 "entr'apercevoir" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
entrebattre_V = v_besch55 "entrebattre" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
entre_détruire_V = v_besch82 "entre-détruire" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
entre_haïr_V = v_besch20 "entre-haïr" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
entremettre_V = v_besch56 "entremettre" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
entre_nuire_V = v_besch82 "entre-nuire" ** {vtyp = VHabere ; lock_V = <>} ;
entreprendre_V2 = v_besch54 "entreprendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
entretenir_V2 = v_besch23 "entretenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
entrevoir_V2 = v_besch39 "entrevoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
entrouvrir_V2 = v_besch27 "entrouvrir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
envoyer_V2 = v_besch18 "envoyer" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
épandre_V2 = v_besch53 "épandre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
éperdre_V = v_besch53 "éperdre" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
éprendre_V = v_besch54 "éprendre" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
équivaloir_V2 = v_besch47 "équivaloir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
éteindre_V2 = v_besch57 "éteindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
étendre_V2 = v_besch53 "étendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
étreindre_V2 = v_besch57 "étreindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
être_V = v_besch2 "être" ** {vtyp = VHabere ; lock_V = <>} ;
exclure_V2 = v_besch71 "exclure" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
extraire_V2 = v_besch61 "extraire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
faillir_V2 = v_besch30 "faillir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
faire_V2 = v_besch62 "faire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
falloir_V = v_besch46 "falloir" ** {vtyp = VHabere ; lock_V = <>} ;
feindre_V2 = v_besch57 "feindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
fendre_V2 = v_besch53 "fendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
fondre_V2 = v_besch53 "fondre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
forfaire_V2 = v_besch62 "forfaire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
foutre_V2 = v_besch53 "foutre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
frire_V2 = v_besch81 "frire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
fuir_V2 = v_besch36 "fuir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
geindre_V2 = v_besch57 "geindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
gésir_V2 = mkNV (conj3gésir "gésir") ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
haïr_V2 = v_besch20 "haïr" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
inclure_V2 = v_besch71 "inclure" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
induire_V2 = v_besch82 "induire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
inscrire_V2 = v_besch80 "inscrire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
instruire_V2 = v_besch82 "instruire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
interdire_V2 = v_besch78 "interdire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
interrompre_V2 = v_besch53 "interrompre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
intervenir_V = v_besch23 "intervenir" ** {vtyp = VEsse ; lock_V = <>} ;
introduire_V2 = v_besch82 "introduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
joindre_V2 = v_besch58 "joindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
lire_V2 = v_besch77 "lire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
luire_V = v_besch82 "luire" ** {vtyp = VHabere ; lock_V = <>} ;
mainmettre_V2 = v_besch56 "mainmettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
maintenir_V2 = v_besch23 "maintenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
méconnaître_V2 = v_besch64 "méconnaître" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
mécroire_V2 = v_besch68 "mécroire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
médire_V2 = v_besch78 "médire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
mentir_V2 = v_besch25 "mentir" ** {vtyp = VEsse ; lock_V2 = <> ; c2 = complDat} ;
méprendre_V2 = v_besch54 "méprendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
messeoir_V2 = v_besch50 "messeoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
mettre_V2 = v_besch56 "mettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
mévendre_V2 = v_besch53 "mévendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
mordre_V2 = v_besch53 "mordre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
morfondre_V = v_besch53 "morfondre" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
moudre_V2 = v_besch74 "moudre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
mourir_V = v_besch34 "mourir" ** {vtyp = VEsse ; lock_V = <>} ;
mouvoir_V2 = v_besch44 "mouvoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
naître_V = v_besch65 "naître" ** {vtyp = VEsse ; lock_V = <>} ;
nuire_V2 = v_besch82 "nuire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
obtenir_V2 = v_besch23 "obtenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
obvenir_V = v_besch23 "obvenir" ** {vtyp = VEsse ; lock_V = <>} ;
occlure_V2 = v_besch71 "occlure" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
offrir_V2 = v_besch27 "offrir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
oindre_V2 = v_besch58 "oindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
omettre_V2 = v_besch56 "omettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
ouïr_V2 = v_besch37 "ouïr" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
ouvrir_V2 = v_besch27 "ouvrir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
paître_V2 = v_besch66 "paître" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
paître_V = v_besch66 "paître" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
paraître_V = v_besch64 "paraître" ** {vtyp = VHabere ; lock_V = <>} ;
parcourir_V2 = v_besch33 "parcourir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
parfondre_V2 = v_besch53 "parfondre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
partir_V = v_besch25 "partir" ** {vtyp = VEsse ; lock_V = <>} ;
parvenir_V = v_besch23 "parvenir" ** {vtyp = VEsse ; lock_V = <>} ;
peindre_V2 = v_besch57 "peindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
pendre_V2 = v_besch53 "pendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
percevoir_V2 = v_besch38 "percevoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
perdre_V2 = v_besch53 "perdre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
permettre_V2 = v_besch56 "permettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
plaindre_V2 = v_besch59 "plaindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
plaire_V2 = v_besch63 "plaire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
pleuvoir_V = v_besch45 "pleuvoir" ** {vtyp = VHabere ; lock_V = <>} ;
poindre_V2 = v_besch58 "poindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
pondre_V2 = v_besch53 "pondre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
pourfendre_V2 = v_besch53 "pourfendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
poursuivre_V2 = v_besch75 "poursuivre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
pourvoir_V2 = v_besch40 "pourvoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
pouvoir_V = v_besch43 "pouvoir" ** {vtyp = VHabere ; lock_V = <>} ;
prédire_V2 = v_besch78 "prédire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
prendre_V2 = v_besch54 "prendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
prescrire_V2 = v_besch80 "prescrire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
pressentir_V2 = v_besch25 "pressentir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
prétendre_V2 = v_besch53 "prétendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
prévaloir_V2 = v_besch47 "prévaloir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
prévenir_V2 = v_besch23 "prévenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
prévoir_V2 = v_besch39 "prévoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
produire_V2 = v_besch82 "produire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
promettre_V2 = v_besch56 "promettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
promouvoir_V2 = v_besch44 "promouvoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
proscrire_V2 = v_besch80 "proscrire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
provenir_V = v_besch23 "provenir" ** {vtyp = VEsse ; lock_V = <>} ;
rabattre_V2 = v_besch55 "rabattre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
raire_V2 = v_besch61 "raire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
rapprendre_V2 = v_besch54 "rapprendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
rasseoir_V2 = v_besch49 "rasseoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
réadmettre_V2 = v_besch56 "réadmettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
réapparaître_V = v_besch64 "réapparaître" ** {vtyp = VHabere ; lock_V = <>} ;
réapprendre_V2 = v_besch54 "réapprendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
rebattre_V2 = v_besch55 "rebattre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
recevoir_V2 = v_besch38 "recevoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
recomparaître_V2 = v_besch64 "recomparaître" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
reconduire_V2 = v_besch82 "reconduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
reconnaître_V2 = v_besch64 "reconnaître" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
reconquérir_V2 = v_besch24 "reconquérir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
reconstruire_V2 = v_besch82 "reconstruire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
recoudre_V2 = v_besch73 "recoudre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
recourir_V2 = v_besch33 "recourir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
recouvrir_V2 = v_besch27 "recouvrir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
récrire_V2 = v_besch80 "récrire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
recroître_V2 = v_besch67 "recroître" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
recueillir_V2 = v_besch28 "recueillir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
recuire_V2 = v_besch82 "recuire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
redécouvrir_V2 = v_besch27 "redécouvrir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
redéfaire_V2 = v_besch62 "redéfaire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
redescendre_V2 = v_besch53 "redescendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
redevenir_V = v_besch23 "redevenir" ** {vtyp = VEsse ; lock_V = <>} ;
redevoir_V2 = v_besch42 "redevoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
redire_V2 = v_besch78 "redire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
réduire_V2 = v_besch82 "réduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
réécrire_V2 = v_besch80 "réécrire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
réélire_V2 = v_besch77 "réélire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
réentendre_V2 = v_besch53 "réentendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
refaire_V2 = v_besch62 "refaire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
refendre_V2 = v_besch53 "refendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
refondre_V2 = v_besch53 "refondre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
réinscrire_V2 = v_besch80 "réinscrire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
réintroduire_V2 = v_besch82 "réintroduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
rejoindre_V2 = v_besch58 "rejoindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
relire_V2 = v_besch77 "relire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
reluire_V2 = v_besch82 "reluire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
remettre_V2 = v_besch56 "remettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
remordre_V2 = v_besch53 "remordre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
remoudre_V2 = v_besch74 "remoudre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
renaître_V2 = v_besch65 "renaître" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
rendormir_V2 = v_besch32 "rendormir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
rendre_V2 = v_besch53 "rendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
rentraire_V2 = v_besch61 "rentraire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
rentrouvrir_V2 = v_besch27 "rentrouvrir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
renvoyer_V2 = v_besch18 "renvoyer" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
repaître_V2 = v_besch66 "repaître" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
répandre_V2 = v_besch53 "répandre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
reparaître_V = v_besch64 "reparaître" ** {vtyp = VEsse ; lock_V = <>} ;
repartir_V = v_besch25 "repartir" ** {vtyp = VEsse ; lock_V = <>} ;
repeindre_V2 = v_besch57 "repeindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
rependre_V2 = v_besch53 "rependre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
repentir_V = v_besch25 "repentir" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
reperdre_V2 = v_besch53 "reperdre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
repleuvoir_V = v_besch45 "repleuvoir" ** {vtyp = VHabere ; lock_V = <>} ;
répondre_V2 = v_besch53 "répondre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
reprendre_V2 = v_besch54 "reprendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
reproduire_V2 = v_besch82 "reproduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
requérir_V2 = v_besch24 "requérir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
résoudre_V2 = mkNV (conj3résoudre "résoudre") ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
ressentir_V2 = v_besch25 "ressentir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
resservir_V2 = v_besch35 "resservir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
ressortir_V = v_besch25 "ressortir" ** {vtyp = VEsse ; lock_V = <>} ;
ressouvenir_V = v_besch23 "ressouvenir" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
restreindre_V2 = v_besch57 "restreindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
reteindre_V2 = v_besch57 "reteindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
retendre_V2 = v_besch53 "retendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
retenir_V2 = v_besch23 "retenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
retondre_V2 = v_besch53 "retondre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
retordre_V2 = v_besch53 "retordre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
retraduire_V2 = v_besch82 "retraduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
retraire_V2 = v_besch61 "retraire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
retranscrire_V2 = v_besch80 "retranscrire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
retransmettre_V2 = v_besch56 "retransmettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
rétreindre_V2 = v_besch57 "rétreindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
revaloir_V2 = v_besch47 "revaloir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
revendre_V2 = v_besch53 "revendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
revenir_V = v_besch23 "revenir" ** {vtyp = VEsse ; lock_V = <>} ;
revêtir_V2 = v_besch26 "revêtir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
revivre_V2 = v_besch76 "revivre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
revoir_V2 = v_besch39 "revoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
revouloir_V2 = v_besch48 "revouloir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
rire_V2 = v_besch79 "rire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complGen} ;
rompre_V2 = v_besch53 "rompre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
rouvrir_V2 = v_besch27 "rouvrir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
saillir_V2 = v_besch29 "saillir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
satisfaire_V2 = v_besch62 "satisfaire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
savoir_V2 = v_besch41 "savoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
secourir_V2 = v_besch33 "secourir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
séduire_V2 = v_besch82 "séduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
sentir_V2 = v_besch25 "sentir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
seoir_V = v_besch50 "seoir" ** {vtyp = VHabere ; lock_V = <>} ;
servir_V2 = v_besch35 "servir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
sortir_V = v_besch25 "sortir" ** {vtyp = VHabere ; lock_V = <>} ;
soubattre_V2 = v_besch55 "soubattre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
souffrir_V2 = v_besch27 "souffrir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
soumettre_V2 = v_besch56 "soumettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
sourire_V2 = v_besch79 "sourire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
souscrire_V2 = v_besch80 "souscrire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
sous_entendre_V2 = v_besch53 "sous-entendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
sous_tendre_V2 = v_besch53 "sous-tendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
soustraire_V2 = v_besch61 "soustraire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
soutenir_V2 = v_besch23 "soutenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
souvenir_V = v_besch23 "souvenir" ** {vtyp = VHabere ; lock_V = <> ; c2 = complAcc} ;
subvenir_V2 = v_besch23 "subvenir" ** {vtyp = VEsse ; lock_V2 = <> ; c2 = complDat} ;
suffire_V2 = v_besch81 "suffire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
suivre_V2 = v_besch75 "suivre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
surfaire_V2 = v_besch62 "surfaire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
surprendre_V2 = v_besch54 "surprendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
surproduire_V2 = v_besch82 "surproduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
surseoir_V2 = v_besch51 "surseoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
surtondre_V2 = v_besch53 "surtondre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
survenir_V = v_besch23 "survenir" ** {vtyp = VEsse ; lock_V = <>} ;
survivre_V2 = v_besch76 "survivre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
suspendre_V2 = v_besch53 "suspendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
taire_V2 = v_besch63 "taire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
teindre_V2 = v_besch57 "teindre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
tendre_V2 = v_besch53 "tendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
tenir_V2 = v_besch23 "tenir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complDat} ;
tondre_V2 = v_besch53 "tondre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
tordre_V2 = v_besch53 "tordre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
traduire_V2 = v_besch82 "traduire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
traire_V2 = v_besch61 "traire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
transcrire_V2 = v_besch80 "transcrire" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
transmettre_V2 = v_besch56 "transmettre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
transparaître_V = v_besch64 "transparaître" ** {vtyp = VHabere ; lock_V = <>} ;
tréfondre_V2 = v_besch53 "tréfondre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
tressaillir_V = v_besch29 "tressaillir" ** {vtyp = VHabere ; lock_V = <>} ;
vaincre_V2 = v_besch60 "vaincre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
valoir_V2 = v_besch47 "valoir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
vendre_V2 = v_besch53 "vendre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
venir_V = v_besch23 "venir" ** {vtyp = VEsse ; lock_V = <>} ;
vêtir_V2 = v_besch26 "vêtir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
vivre_V2 = v_besch76 "vivre" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
voir_V2 = v_besch39 "voir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
vouloir_V2 = v_besch48 "vouloir" ** {vtyp = VHabere ; lock_V2 = <> ; c2 = complAcc} ;
}

View File

@@ -4,11 +4,7 @@
-- Translated to GF by Aarne Ranta
-- added extracted subcat information 29/11
abstract VerbsFreAbs = {
cat
V ;
V2 ;
abstract IrregFreAbs = Cat ** {
-- all verbs in classes with "er" and "ir" like "finir" are omitted

View File

@@ -1,23 +1,10 @@
--# -path=.:../romance:../abstract:../../prelude
--# -path=.:../romance:../abstract:../common:prelude
concrete LangFre of Lang =
RulesFre,
ClauseFre,
StructuralFre,
BasicFre,
TimeFre,
CountryFre,
MathFre
GrammarFre,
LexiconFre
** {
** open Prelude, ParadigmsFre in {
flags startcat = Phr ; unlexer = text ; lexer = text ;
lin
AdvDate d = prefixSS "le" d ;
AdvTime t = prefixSS "à" t ;
NWeekday w = w ;
PNWeekday w = mkPN (w.s ! singular) w.g ;
PNCountry x = x ;
ANationality x = x ;
NLanguage x = x ;
}
} ;

View File

@@ -0,0 +1,360 @@
--# -path=.:../romance:../common:../abstract:../../prelude
concrete LexiconFre of Lexicon = CatFre **
open MorphoFre, ParadigmsFre, IrregFre in {
flags
optimize=values ;
lin
airplane_N = regGenN "avion" masculine ;
answer_V2S = mkV2S (v2V répondre_V2) dative ;
apartment_N = regGenN "apartement" masculine ;
apple_N = regGenN "pomme" feminine ;
art_N = regGenN "art" feminine ;
ask_V2Q = mkV2Q (regV "demander") dative ;
baby_N = regGenN "bébé" masculine ;
bad_A = prefA (mkADeg (regA "mauvais") (regA "pire")) ;
bank_N = regGenN "banque" feminine ;
beautiful_A = prefA (regA "joli") ; ---- beau
become_VA = mkVA devenir_V ;
beer_N = regGenN "bière" feminine ;
beg_V2V = mkV2V (regV "demander") accusative dative ;
big_A = prefA (regA "grand") ;
bike_N = regGenN "vélo" masculine ;
bird_N = regGenN "oiseau" masculine ;
black_A = regA "noir" ;
blue_A = regA "bleu" ;
boat_N = regGenN "bateau" masculine ;
book_N = regGenN "livre" masculine ;
boot_N = regGenN "botte" feminine ;
boss_N = regGenN "chef" masculine ;
boy_N = regGenN "garçon" masculine ;
bread_N = regGenN "pain" masculine ;
break_V2 = dirV2 (regV "casser") ;
broad_A = regA "large" ;
brother_N2 = deN2 (regGenN "frère" masculine) ;
brown_A = regA "brun" ;
butter_N = regGenN "beurre" masculine ;
buy_V2 = dirV2 (reg3V "acheter" "achète" "achètera") ;
camera_N = compN (regGenN "appareil" masculine) ["de photo"] ;
cap_N = regGenN "casquette" feminine ;
car_N = regGenN "voiture" feminine ;
carpet_N = regGenN "tapis" masculine ;
cat_N = regGenN "chat" masculine ;
ceiling_N = regGenN "plafond" masculine ;
chair_N = regGenN "chaise" feminine ;
cheese_N = regGenN "fromage" masculine ;
child_N = regGenN "enfant" masculine ;
church_N = regGenN "église" feminine ;
city_N = regGenN "ville" feminine ;
clean_A = regA "propre" ;
clever_A = regA "sage" ; ----
close_V2 = dirV2 (regV "fermer") ;
coat_N = regGenN "manteau" masculine ;
cold_A = regA "froid" ;
come_V = venir_V ;
computer_N = regGenN "ordinateur" masculine ;
country_N = regGenN "pays" masculine ;
cousin_N = regGenN "cousin" masculine ; ---- cousine
cow_N = regGenN "vache" feminine ;
die_V = mourir_V ;
dirty_A = regA "sale" ;
distance_N3 = mkN3 (regGenN "distance" feminine) genitive dative ;
doctor_N = regGenN "médecin" masculine ;
dog_N = regGenN "chien" masculine ;
door_N = regGenN "porte" feminine ;
drink_V2 = boire_V2 ;
easy_A2V = mkA2V (regA "facile") dative genitive ;
eat_V2 = dirV2 (regV "manger") ;
empty_A = regA "vide" ;
enemy_N = regGenN "ennemi" masculine ;
factory_N = regGenN "usine" feminine ;
father_N2 = deN2 (regGenN "père" masculine) ;
fear_VS = mkVS (v2V craindre_V2) ;
fear_V2 = dirV2 (v2V craindre_V2) ;
find_V2 = dirV2 (regV "trouver") ;
fish_N = regGenN "poisson" masculine ;
floor_N = regGenN "plancher" masculine ;
forget_V2 = dirV2 (regV "oublier") ;
fridge_N = regGenN "frigo" masculine ;
friend_N = regGenN "ami" masculine ;
fruit_N = regGenN "fruit" masculine ;
fun_AV = mkAV (regA "marrant") genitive ;
garden_N = regGenN "jardin" masculine ;
girl_N = regGenN "fille" feminine ;
glove_N = regGenN "gant" masculine ;
gold_N = regGenN "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 = regGenN "port" masculine ;
hate_V2 = haïr_V2 ;
hat_N = regGenN "chapeau" masculine ;
have_V2 = avoir_V2 ;
hear_V2 = entendre_V2 ;
hill_N = regGenN "colline" feminine ;
hope_VS = mkVS (reg3V "espérer" "espère" "espérera") ;
horse_N = regGenN "cheval" masculine ;
hot_A = regA "chaud" ;
house_N = regGenN "maison" feminine ;
important_A = regA "important" ;
industry_N = regGenN "industrie" feminine ;
iron_N = regGenN "fer" masculine ;
king_N = regGenN "roi" masculine ;
know_V2 = connaître_V2 ; ---- savoir_V2 : VS
lake_N = regGenN "lac" masculine ;
lamp_N = regGenN "lampe" feminine ;
learn_V2 = apprendre_V2 ;
leather_N = regGenN "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 = regGenN "amour" masculine ;
love_V2 = dirV2 (regV "aimer") ;
man_N = regGenN "homme" masculine ;
married_A2 = mkA2 (regA "marié") dative ;
meat_N = regGenN "viande" feminine ;
milk_N = regGenN "lait" masculine ;
moon_N = regGenN "lune" feminine ;
mother_N2 = deN2 (regGenN "mère" feminine) ;
mountain_N = regGenN "montagne" feminine ;
music_N = regGenN "musique" feminine ;
narrow_A = regA "étroit" ;
new_A = prefA (compADeg (mkA "nouveau" "nouvelle" "nouveaux" "nouvellement")) ;
newspaper_N = regGenN "journal" masculine ;
oil_N = regGenN "huile" feminine ;
old_A =
prefA (compADeg (mkA "vieux" "vieille" "vieux" "vieillement")) ; ---- vieil
open_V2 = ouvrir_V2 ;
paint_V2A = mkV2A (v2V peindre_V2) accusative (mkPrep "en") ;
paper_N = regGenN "papier" masculine ;
paris_PN = mkPN "Paris" masculine ;
peace_N = regGenN "paix" feminine ;
pen_N = regGenN "stylo" masculine ;
planet_N = regGenN "planète" feminine ;
plastic_N = regGenN "plastic" masculine ;
play_V2 = dirV2 (regV "jouer") ;
policeman_N = regGenN "policier" masculine ;
priest_N = regGenN "prêtre" masculine ;
probable_AS = mkAS (regA "probable") ;
queen_N = regGenN "reine" feminine ;
radio_N = regGenN "radio" feminine ;
rain_V0 = mkV0 (pleuvoir_V) ;
read_V2 = lire_V2 ;
red_A = regA "rouge" ;
religion_N = regGenN "religion" feminine ;
restaurant_N = regGenN "restaurant" masculine ;
river_N = regGenN "rivière" feminine ;
rock_N = regGenN "rocher" masculine ;
roof_N = regGenN "toit" masculine ;
rubber_N = regGenN "caoutchuc" masculine ;
run_V = v2V courir_V2 ;
say_VS = mkVS (v2V dire_V2) ;
school_N = regGenN "école" feminine ;
science_N = regGenN "science" feminine ;
sea_N = regGenN "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 = regGenN "mouton" masculine ;
ship_N = regGenN "bateau" masculine ;
shirt_N = regGenN "chemise" feminine ;
shoe_N = regGenN "chaussure" feminine ;
shop_N = regGenN "magasin" masculine ;
short_A = regA "court" ; ---- bref
silver_N = regGenN "argent" masculine ;
sister_N = regGenN "soeur" feminine ;
sleep_V = v2V dormir_V2 ;
small_A = prefA (regA "petit") ;
snake_N = regGenN "serpent" masculine ;
sock_N = regGenN "chaussette" feminine ;
speak_V2 = dirV2 (regV "parler") ;
star_N = regGenN "étoile" feminine ;
steel_N = regGenN "acier" masculine ;
stone_N = regGenN "pierre" feminine ;
stove_N = regGenN "four" masculine ;
student_N = regGenN "étudiant" masculine ;
stupid_A = regA "stupide" ;
sun_N = regGenN "soleil" masculine ;
switch8off_V2 = éteindre_V2 ;
switch8on_V2 = dirV2 (regV "allumer") ; ----
table_N = regGenN "table" feminine ;
talk_V3 = mkV3 (regV "parler") dative genitive ;
teacher_N = regGenN "professeur" masculine ;
teach_V2 = dirV2 (regV "enseigner") ;
television_N = regGenN "télévision" feminine ;
thick_A = compADeg (mkA "épais" "épaisse" "épais" "épaissement") ;
thin_A = regA "fin" ;
train_N = regGenN "train" masculine ;
travel_V = regV "voyager" ;
tree_N = regGenN "arbre" masculine ;
---- trousers_N = regGenN "pantalon" masculine ;
ugly_A = regA "laide" ;
understand_V2 = comprendre_V2 ;
university_N = regGenN "université" feminine ;
village_N = regGenN "village" masculine ;
wait_V2 = attendre_V2 ; ---- dative?
walk_V = regV "marcher" ;
warm_A = regA "chaud" ;
war_N = regGenN "guerre" masculine ;
watch_V2 = dirV2 (regV "regarder") ;
water_N = regGenN "eau" feminine ;
white_A = compADeg (mkA "blanc" "blanche" "blancs" "blanchement") ;
window_N = regGenN "fenêtre" feminine ;
wine_N = regGenN "vin" masculine ;
win_V2 = dirV2 (regV "gagner") ; ---- vaincre
woman_N = regGenN "femme" feminine ;
wonder_VQ = mkVQ (reflV (regV "étonner")) ;
wood_N = regGenN "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 = regGenN "chanson" feminine ;
add_V3 = dirV3 (regV "ajouter") dative ;
number_N = regGenN "nombre" masculine ; ---- numéro
put_V2 = mettre_V2 ;
stop_V = reflV (regV "arrêter") ;
jump_V = regV "sauter" ;
left_Ord = mkOrd (regA "gauche") ;
right_Ord = mkOrd (regA "droite") ;
far_Adv = mkAdv "loin" ;
correct_A = regA "correct" ;
dry_A = (mkA "sec" "sèche" "secs" "sèches") ;
dull_A = regA "émoussé" ;
full_A = regA "plein" ;
heavy_A = regA "lourd" ;
near_A = regA "proche" ;
rotten_A = regA "pourri" ;
round_A = regA "rond" ;
sharp_A = regA "tranchant" ;
smooth_A = regA "lisse" ;
straight_A = regA "droite" ;
wet_A = regA "mouillé" ;
wide_A = regA "large" ;
animal_N = regN "animal" ;
ashes_N = regGenN "cendre" masculine ;
back_N = regN "dos" ;
bark_N = regN "écorce" ;
belly_N = regGenN "ventre" masculine ;
blood_N = regN "sang" ;
bone_N = regN "os" ;
breast_N = regN "sein" ; --- poitrine
cloud_N = regGenN "nuage" masculine ;
day_N = regN "jour" ;
dust_N = regN "poussière" ;
ear_N = regN "oreille" ;
earth_N = regN "terre" ;
egg_N = regN "oeuf" ;
eye_N = mkN "oeil" "yeux" masculine ;
fat_N = regN "graisse" ;
feather_N = regN "plume" ;
fingernail_N = regGenN "ongle" masculine ;
fire_N = regN "feu" ;
flower_N = regGenN "fleur" feminine ;
fog_N = regN "brouillard" ;
foot_N = regN "pied" ;
forest_N = regGenN "forêt" feminine ;
grass_N = regN "herbe" ;
guts_N = regN "entraille" ;
hair_N = regN "cheveu" ;
hand_N = regGenN "main" feminine ;
head_N = regN "tête" ;
heart_N = regN "coeur" ;
horn_N = regGenN "corne" masculine ;
husband_N = regN "mari" ;
ice_N = regN "glace" ;
knee_N = regN "genou" ;
leaf_N = regN "feuille" ;
leg_N = regN "jambe" ;
liver_N = regGenN "foie" masculine ;
louse_N = regN "pou" ;
mouth_N = regN "bouche" ;
name_N = regN "nom" ;
neck_N = mkN "cou" "cous" masculine ;
night_N = regGenN "nuit" feminine ;
nose_N = regN "nez" ;
person_N = regN "personne" ;
rain_N = regN "pluie" ;
road_N = regN "route" ;
root_N = regN "racine" ;
rope_N = regN "corde" ;
salt_N = regN "sel" ;
sand_N = regGenN "sable" masculine ;
seed_N = regN "graine" ;
skin_N = regN "peau" ;
sky_N = mkN "ciel" "cieux" masculine ;
smoke_N = regN "fumée" ;
snow_N = regN "neige" ;
stick_N = regN "bâton" ;
tail_N = regN "queue" ;
tongue_N = regN "langue" ;
tooth_N = regGenN "dent" feminine ;
wife_N = regN "femme" ;
wind_N = regN "vent" ;
wing_N = regN "aile" ;
worm_N = regN "ver" ;
year_N = regN "an" ; --- année
bite_V2 = mordre_V2 ;
blow_V = regV "souffler" ;
breathe_V = regV "respirer" ;
burn_V = regV "brûler" ;
count_V2 = dirV2 (regV "conter") ;
cut_V2 = dirV2 (regV "tailler") ;
dig_V = regV "creuser" ;
fall_V = regV "tomber" ;
fight_V2 = dirV2 (regV "lutter") ;
float_V = regV "flotter" ;
flow_V = regV "couler" ;
fly_V = regV "voler" ;
freeze_V = reg3V "geler" "gèle" "gèlera" ;
give_V3 = dirdirV3 (regV "donner") ;
hit_V2 = dirV2 (regV "frapper") ;
hunt_V2 = dirV2 (regV "chasser") ;
kill_V2 = dirV2 (regV "tuer") ;
laugh_V = rire_V2 ;
lie_V = reflV (v2V étendre_V2) ;
play_V = regV "jouer" ;
pull_V2 = dirV2 (regV "tirer") ;
push_V2 = dirV2 (regV "pousser") ;
rub_V2 = dirV2 (regV "frotter") ;
scratch_V2 = dirV2 (regV "gratter") ;
sew_V = coudre_V2 ;
sing_V = regV "chanter" ;
sit_V = reflV (v2V asseoir_V2) ;
smell_V = v2V ( sentir_V2) ;
spit_V = regV "cracher" ;
squeeze_V2 = dirV2 (regV "serrer") ;
stab_V2 = dirV2 (regV "poignarder") ;
stand_V = reflV (reg3V "lever" "lève" "lèvera") ;
suck_V2 = dirV2 (regV "sucer") ;
swell_V = regV "gonfler" ;
swim_V = regV "nager" ;
think_V = regV "penser" ;
throw_V2 = dirV2 (regV "jeter") ;
tie_V2 = dirV2 (regV "lier") ;
turn_V = regV "tourner" ;
vomit_V = regV "vomir" ;
wash_V2 = dirV2 (regV "laver") ;
wipe_V2 = dirV2 (regV "essuyer") ;
hold_V2 = tenir_V2 ;
split_V2 = fendre_V2 ;
sit_V = reflV (v2V asseoir_V2) ;
grammar_N = regN "grammaire" ;
language_N = regN "langue" ;
rule_N = regN "règle" ;
} ;

View File

@@ -1,4 +0,0 @@
--# -path=.:../romance:../abstract:../../prelude
concrete MathFre of Math = CategoriesFre **
MathRomance with (SyntaxRomance=SyntaxFre) ;

View File

@@ -1,46 +0,0 @@
main :: IO ()
main = do
s <- readFile "verbs"
mapM_ putRule $ combine $ map words $ lines s -- to create fun/lin
-- mapM_ putConjug [1..100] -- to create oper
putRule = appendFile "verbs.gf" . mkRule
mkRule s = case s of
n:v:cs ->
"fun " ++ fv ++ cat ++ " : " ++ cat ++ " ;\n" ++
"lin " ++ fv ++ cat ++
" = v_nancy" ++ n ++ " \"" ++ v ++ "\"" ++ ext ++ " ;\n"
where
(cat,ext) = case cs of
_ | elem "T" cs -> ("VN2", " ** {aux = AHabere ; c = Acc}")
"a":au -> ("VN2", " ** {aux = " ++ aux au ++ " ; c = Dat}")
"de":au -> ("VN2", " ** {aux = " ++ aux au ++ " ; c = Gen}")
"P":_ -> ("VNR", "")
au -> ("VN", " ** {aux = " ++ aux au ++ "}")
fv = map unhyph v
unhyph c = case c of
'-' -> '_'
_ -> c
aux au = case au of
"etre":_ -> "AEsse"
_ -> "AHabere"
combine ls = case ls of
l@(n:v:_:c:_):vs ->
let (vv,rest) = span ((==v) . (!!1)) vs in
([n,v,c] ++ map (!!3) vs) : combine rest
_ -> ls
---
putConjug = appendFile "nancy_conjugs.gf" . mkConjug
mkConjug :: Integer -> String
mkConjug i = "oper v_nancy" ++ show i ++
" : Str -> V = \\s -> conj v ++ {lock_V = <>} ;\n"

View File

@@ -1,21 +1,19 @@
--# -path=.:../romance:../../prelude
--# -path=.:../romance:../common:../../prelude
--1 A Simple French Resource Morphology
--
-- Aarne Ranta 2002--2003
-- Aarne Ranta 2002 -- 2005
--
-- This resource morphology contains definitions needed in the resource
-- syntax. It moreover contains the most usual inflectional patterns.
-- The patterns for verbs contain the complete "Bescherelle" conjugation
-- tables.
--
-- We use the parameter types and word classes defined in $types.Fra.gf$.
-- syntax. To build a lexicon, it is better to use $ParadigmsFre$, which
-- gives a higher-level access to this module.
resource MorphoFre = open Predef, Prelude, TypesFre in {
resource MorphoFre = CommonRomance, ResFre **
open PhonoFre, Prelude, Predef in {
flags optimize=all ;
--3 Front vowels
--2 Front vowels
--
-- In verb conjugation, we will need the concept of frontal vowel.
@@ -38,6 +36,8 @@ oper
-- Common nouns are inflected in number and have an inherent gender.
CNom = {s : Number => Str ; g : Gender} ;
mkCNom : (Number => Str) -> Gender -> CNom = \mecmecs,gen ->
{s = mecmecs ; g = gen} ;
@@ -58,7 +58,7 @@ oper
mkCNomIrreg cas cas ;
mkNomReg : Str -> Gender -> CNom = \cas ->
let cass = case dp 2 cas of {
let cass = case Predef.dp 2 cas of {
"al" => init cas + "ux" ;
"au" => cas + "x" ;
"eu" => cas + "x" ;
@@ -73,23 +73,6 @@ oper
in mkCNomIrreg cas cass ;
-- The definite article has quite some variation: three parameters and
-- elision. This is the simples definition we have been able to find.
artDef : Gender -> Number -> Case -> Str = \g,n,c -> artDefTable ! g ! n ! c ;
artDefTable : Gender => Number => Case => Str = \\g,n,c => case <g,n,c> of {
<Masc,Sg, Nom> => elisLe ;
<Masc,Sg, Gen> => pre {"du" ; ["de l'"] / voyelle} ;
<Masc,Sg, Dat> => pre {"au" ; ["à l'"] / voyelle} ;
<Masc,Sg, Acc> => elisLe ;
<Fem, Sg, _ > => prepCase c ++ elisLa ;
<_, Pl, Gen> => "des" ;
<_, Pl, Dat> => "aux" ;
<_, Pl, _ > => "les"
} ;
--2 Adjectives
--
-- Adjectives are conveniently seen as gender-dependent nouns.
@@ -178,151 +161,25 @@ oper
-- The use of "en" as atonic genitive is debatable.
mkPronoun : (_,_,_,_,_,_,_ : Str) ->
PronGen -> Number -> Person -> ClitType -> Pronoun =
\il,le,lui,Lui,son,sa,ses,g,n,p,c ->
Gender -> Number -> Person -> Pronoun =
\il,le,lui,Lui,son,sa,ses,g,n,p ->
{s = table {
Ton x => prepCase x ++ Lui ;
Aton Nom => il ;
Aton Acc => le ;
Aton Gen => "en" ; --- hmm
Aton Dat => lui ;
Poss Sg Masc => son ;
Poss Sg Fem => sa ;
Poss Pl _ => ses
Aton (CPrep P_de) => "en" ; --- hmm
Aton (CPrep P_a) => lui ;
Poss {n = Sg ; g = Masc} => son ;
Poss {n = Sg ; g = Fem} => sa ;
Poss {n = Pl} => ses
} ;
g = g ;
n = n ;
p = p ;
c = c
a = {g = g ; n = n ; p = p} ;
hasClit = True
} ;
elisPoss : Str -> Str = \s ->
pre {s + "a" ; s + "on" / voyelle} ;
pronJe = mkPronoun
(elision "j")
(elision "m")
(elision "m")
"moi"
"mon" (elisPoss "m") "mes"
PNoGen -- gender cannot be known from pronoun alone
Sg
P1
Clit1 ;
pronTu = mkPronoun
"tu"
(elision "t")
(elision "t")
"toi"
"ton" (elisPoss "t") "tes"
PNoGen
Sg
P2
Clit1 ;
pronIl = mkPronoun
"il"
(elision "l")
"lui"
"lui"
"son" (elisPoss "s") "ses"
(PGen Masc)
Sg
P3
Clit2 ;
---- A hack to get the dative form "y".
pronY = mkPronoun
"il"
(elision "l")
"y"
"lui"
"en" "en" "en"
(PGen Masc)
Sg
P3
Clit2 ;
pronElle = mkPronoun
"elle"
elisLa
"lui"
"elle"
"son" (elisPoss "s") "ses"
(PGen Fem)
Sg
P3
Clit2 ;
pronNous = mkPronoun
"nous"
"nous"
"nous"
"nous"
"notre" "notre" "nos"
PNoGen
Pl
P1
Clit3 ;
pronVous = mkPronoun
"vous"
"vous"
"vous"
"vous"
"votre" "votre" "vos"
PNoGen
Pl --- depends!
P2
Clit3 ;
pronIls = mkPronoun
"ils"
"les"
"leur"
"eux"
"leur" "leur" "leurs"
(PGen Masc)
Pl
P3
Clit1 ;
pronElles = mkPronoun
"elles"
"les"
"leur"
"elles"
"leur" "leur" "leurs"
(PGen Fem)
Pl
P3
Clit1 ;
personPron : Gender -> Number -> Person -> Pronoun = \g,n,p ->
case <n,p> of {
<Sg,P1> => pronJe ;
<Sg,P2> => pronTu ;
<Sg,P3> => case g of {
Masc => pronIl ;
Fem => pronElle
} ;
<Pl,P1> => pronNous ;
<Pl,P2> => pronVous ;
<Pl,P3> => case g of {
Masc => pronIls ;
Fem => pronElles
}
} ;
-- Reflexive pronouns are defined in $SyntaxFre$.
-- The composable pronoun "lequel" is inflected by varying the definite
-- article and the determiner "quel" in the expected way.
lequelPron : Gender -> Number -> Case -> Str = \g,n,c ->
artDef g n c + quelPron g n ;
--2 Determiners
--
@@ -335,15 +192,6 @@ oper
Fem => nomReg telle ! n
} ;
quelPron : Gender -> Number -> Str = pronForms "quel" "quelle" ;
telPron : Gender -> Number -> Str = pronForms "tel" "telle" ;
toutPron : Gender -> Number -> Str = \g,n -> case g of {
Masc => numForms "tout" "tous" ! n ;
Fem => nomReg "toutee" ! n
} ;
-- The following macro generates the phrases "est-ce que", "est-ce qu'",
-- and "est-ce qui" (the last one used e.g. in "qu'est-ce qui").
@@ -356,22 +204,44 @@ oper
--2 Verbs
--
--3 The present tense
--
-- We first define some macros for the special case of present tense.
--
-- The verb "être" is often used in syntax.
verbEtre = verbPres (conjÊtre "être") AHabere ;
verbAvoir = verbPres (conjAvoir "avoir") AHabere ;
--3 Parameters
-- The full conjunction is a table on $VForm$, as in "Bescherelle".
param
Temps = Presn | Imparf | Passe | Futur ;
TSubj = SPres | SImparf ;
TPart = PPres | PPasse Gender Number ;
VForm = Inf
| Indi Temps Number Person
| Condi Number Person
| Subjo TSubj Number Person
| Imper NumPersI
| Part TPart ;
-- This is a conversion to the type in $CommonRomance$.
oper
vvf : (VForm => Str) -> (VF => Str) = \aller -> table {
VInfin _ => aller ! Inf ;
VFin (VPres Indic) n p => aller ! Indi Presn n p ;
VFin (VPres Subjunct) n p => aller ! Subjo SPres n p ;
VFin (VImperf Indic) n p => aller ! Indi Imparf n p ; --# notpresent
VFin (VImperf Subjunct) n p => aller ! Subjo SImparf n p ; --# notpresent
VFin VPasse n p => aller ! Indi Passe n p ; --# notpresent
VFin VFut n p => aller ! Indi Futur n p ; --# notpresent
VFin VCondit n p => aller ! Condi n p ; --# notpresent
VImper np => aller ! Imper np ;
VPart g n => aller ! Part (PPasse g n) ;
VGer => aller ! Part PPres -- *en* allant
} ;
-- We very often form the verb stem by dropping out the infinitive ending.
troncVerb : Tok -> Tok = Predef.tk 2 ;
--3 Affixes
--
-- It is convenient to have sets of affixes as data objects.
@@ -493,13 +363,13 @@ oper
\affpres, affpasse ->
table {
Inf => tenir ;
Indic Pres Sg p => tien + affpres ! p ;
Indic Pres Pl P3 => tienn + affixPlOns ! P3 ;
Indic Pres Pl p => ten + affixPlOns ! p ;
Indic Imparf n p => ten + affixImparf ! n ! p ;
Indic Passe n p => t + affpasse.ps ! n ! p ;
Indic Futur n p => tiendr + affixFutur ! n ! p ;
Cond n p => tiendr + affixImparf ! n ! p ;
Indi Presn Sg p => tien + affpres ! p ;
Indi Presn Pl P3 => tienn + affixPlOns ! P3 ;
Indi Presn Pl p => ten + affixPlOns ! p ;
Indi Imparf n p => ten + affixImparf ! n ! p ;
Indi Passe n p => t + affpasse.ps ! n ! p ;
Indi Futur n p => tiendr + affixFutur ! n ! p ;
Condi n p => tiendr + affixImparf ! n ! p ;
Subjo SPres Sg p => soi + affixSPres ! Sg ! p ;
Subjo SPres Pl P3 => soi + "ent" ;
Subjo SPres Pl p => soy + affixSPres ! Pl ! p ;
@@ -591,9 +461,9 @@ oper
mkVerbReg : Str -> Verbe = \parler ->
let
e = last (tk 4 parler) ;
c = last (tk 3 parler) ;
verb_é = pbool2bool (occur "é" (e + last (tk 5 parler))) ;
e = last (Predef.tk 4 parler) ;
c = last (Predef.tk 3 parler) ;
verb_é = pbool2bool (occur "é" (e + last (Predef.tk 5 parler))) ;
verb_e = andB (pbool2bool (occur e "e")) (pbool2bool (occur c "cmnprsv"))
in
case Predef.dp 4 parler of {
@@ -608,7 +478,7 @@ oper
"cer" => conj1placer parler ;
"ger" => conj1manger parler ;
"yer" => conj1payer parler ;
_ => case dp 2 parler of {
_ => case Predef.dp 2 parler of {
"ir" => conj2finir parler ;
_ => conj1aimer parler
}
@@ -686,7 +556,7 @@ oper
vet = auxConj3ir "vêt" "vêt" "u"
} in
table {
Indic Pres Sg P3 => s + "vêt" ;
Indi Presn Sg P3 => s + "vêt" ;
p => s + vet ! p
};
@@ -716,11 +586,11 @@ oper
tfa = conj3assaillir faillir
} in
table {
Indic Pres Sg p => fa + "u" + affixSgX ! p ;
Indi Presn Sg p => fa + "u" + affixSgX ! p ;
Subjo SPres n p => fa + variants {"illiss" ; "ill"} + affixSPres ! n ! p ;
Indic Futur n p => variants {tfa ! Indic Futur n p ; faudr + affixFutur ! n ! p} ;
Cond n p => variants {tfa ! Cond n p ; faudr + affixImparf ! n ! p} ;
Indi Futur n p => variants {tfa ! Indi Futur n p ; faudr + affixFutur ! n ! p} ;
Condi n p => variants {tfa ! Condi n p ; faudr + affixImparf ! n ! p} ;
Imper _ => nonExist ;
p => tfa ! p
@@ -732,7 +602,7 @@ oper
tbou = conj3assaillir bouillir
} in
table {
Indic Pres Sg p => bou + affixSgS ! p ;
Indi Presn Sg p => bou + affixSgS ! p ;
Imper SgP2 => bou + "s" ;
p => tbou ! p
};
@@ -778,9 +648,9 @@ oper
let {g = Predef.tk 4 gésir} in
table {
Inf => g + "ésir" ;
Indic Pres Sg p => g + lesAffixes "is" "is" "ît" ! p ;
Indic Pres Pl p => g + "is" + affixPlOns ! p ;
Indic Imparf n p => g + "is" + affixImparf ! n ! p ;
Indi Presn Sg p => g + lesAffixes "is" "is" "ît" ! p ;
Indi Presn Pl p => g + "is" + affixPlOns ! p ;
Indi Imparf n p => g + "is" + affixImparf ! n ! p ;
Part PPres => g + "isant" ;
_ => nonExist
} ;
@@ -850,7 +720,7 @@ oper
tpouvoir = auxConj3usX "eu" "ouv" "euv" "" "ourr" "uiss" "uiss" "ouv"
} in
table {
Indic Pres Sg P1 => p + variants {"eux" ; "uis"} ;
Indi Presn Sg P1 => p + variants {"eux" ; "uis"} ;
t => p + tpouvoir ! t
} ;
@@ -868,11 +738,11 @@ oper
auxConj3seul3sg : (_,_,_,_,_ : Str) -> Verbe =
\faut, fall, pl, faudr, faill -> table {
Inf => fall + "oir" ;
Indic Pres Sg P3 => faut ;
Indic Imparf Sg P3 => fall + "ait" ;
Indic Passe Sg P3 => pl + "ut" ;
Indic Futur Sg P3 => faudr + "a" ;
Cond Sg P3 => faudr + "ait" ;
Indi Presn Sg P3 => faut ;
Indi Imparf Sg P3 => fall + "ait" ;
Indi Passe Sg P3 => pl + "ut" ;
Indi Futur Sg P3 => faudr + "a" ;
Condi Sg P3 => faudr + "ait" ;
Subjo SPres Sg P3 => faill + "e" ;
Subjo SImparf Sg P3 => pl + "ût" ;
Part PPres => fall + "ant" ;
@@ -922,7 +792,7 @@ oper
} in
table {
Inf => ass + "eoir" ;
Indic Pres Sg P3 => ass + "ied" ;
Indi Presn Sg P3 => ass + "ied" ;
t => ass + tasseoir ! t
} ;
@@ -942,12 +812,12 @@ oper
tseoir = conj3asseoir seoir
} in
table {
Indic Pres Pl P3 => s + "iéent" ;
Indic _ _ P1 => nonExist ;
Indic _ _ P2 => nonExist ;
Indic Passe _ _ => nonExist ;
Cond _ P1 => nonExist ;
Cond _ P2 => nonExist ;
Indi Presn Pl P3 => s + "iéent" ;
Indi _ _ P1 => nonExist ;
Indi _ _ P2 => nonExist ;
Indi Passe _ _ => nonExist ;
Condi _ P1 => nonExist ;
Condi _ P2 => nonExist ;
Subjo SPres Sg P3 => s + "iée" ;
Subjo SPres Pl P3 => s + "iéent" ;
Subjo _ _ _ => nonExist ;
@@ -990,13 +860,13 @@ oper
conj3échoir : Str -> Verbe = \échoir ->
let {techoir = conj3choir échoir} in
table {
Indic _ _ P1 => nonExist ;
Indic _ _ P2 => nonExist ;
Indic Pres Pl P3 => Predef.tk 3 échoir + variants {"oient" ; "éent"} ;
Indi _ _ P1 => nonExist ;
Indi _ _ P2 => nonExist ;
Indi Presn Pl P3 => Predef.tk 3 échoir + variants {"oient" ; "éent"} ;
Subjo _ _ P1 => nonExist ;
Subjo _ _ P2 => nonExist ;
Cond _ P1 => nonExist ;
Cond _ P2 => nonExist ;
Condi _ P1 => nonExist ;
Condi _ P2 => nonExist ;
Imper _ => nonExist ;
Part PPres => Predef.tk 3 échoir + "éant" ;
t => techoir ! t
@@ -1080,8 +950,8 @@ oper
} in
table {
Inf => faire ;
Indic Pres Pl P2 => fai + "tes" ;
Indic Pres Pl P3 => f + "ont" ;
Indi Presn Pl P2 => fai + "tes" ;
Indi Presn Pl P3 => f + "ont" ;
Subjo SPres Pl p => f + "ass" + affixSPres ! Pl ! p ;
Imper PlP2 => fai + "tes" ;
t => tfaire ! t
@@ -1093,7 +963,7 @@ oper
auxConj3ît : Verbe -> Str -> Verbe = \conj,plaît ->
table {
Indic Pres Sg P3 => plaît ;
Indi Presn Sg P3 => plaît ;
t => conj ! t
} ;
@@ -1133,7 +1003,7 @@ oper
conj3paître : Str -> Verbe = \paître ->
let {tpaitre = conj3connaître paître} in
table {
Indic Passe _ _ => nonExist ;
Indi Passe _ _ => nonExist ;
Subjo SImparf _ _ => nonExist ;
Part (PPasse _ _) => Predef.tk 5 paître + "u" ;
p => tpaitre ! p
@@ -1169,10 +1039,10 @@ oper
nonExist (clo + "r") clos clos
} in
table {
Indic Pres Sg P3 => Predef.tk 1 clo + "ôt" ;
Indic Pres Pl P1 => nonExist ;
Indic Pres Pl P2 => nonExist ;
Indic Imparf _ _ => nonExist ;
Indi Presn Sg P3 => Predef.tk 1 clo + "ôt" ;
Indi Presn Pl P1 => nonExist ;
Indi Presn Pl P2 => nonExist ;
Indi Imparf _ _ => nonExist ;
Imper PlP1 => nonExist ;
Imper PlP2 => nonExist ;
t => tclore ! t
@@ -1193,7 +1063,7 @@ oper
tabsoudre = conj3résoudre absoudre
} in
table {
Indic Passe _ _ => nonExist ;
Indi Passe _ _ => nonExist ;
Subjo SImparf _ _ => nonExist ;
Part (PPasse Masc _) => abso + "us" ;
Part (PPasse Fem n) => nomReg (abso + "ute") ! n ;
@@ -1260,7 +1130,7 @@ oper
affixSgS affixPasseI di dis dis d (di + "r") dit (dit+"s")
} in
table {
Indic Pres Pl P2 => di + "tes" ;
Indi Presn Pl P2 => di + "tes" ;
Imper PlP2 => di + "tes" ;
t => tdire ! t
} ;
@@ -1302,9 +1172,9 @@ oper
affixSgS affixPasseA
} in
table {
Indic Pres Sg P1 => s + "vais" ;
Indic Pres n p => s + pres ! n ! p ;
Indic Imparf n p => s + "all" + affixImparf ! n ! p ;
Indi Presn Sg P1 => s + "vais" ;
Indi Presn n p => s + pres ! n ! p ;
Indi Imparf n p => s + "all" + affixImparf ! n ! p ;
Imper SgP2 => s + "va" ;
t => s + taller ! t
} ;
@@ -1318,9 +1188,9 @@ oper
"soi" "soy" "soi" "f" "ser" "été" "être" affixSgS affixPasseU
} in
table {
Indic Pres Sg p => s + sg ! p ;
Indic Pres Pl p => s + pl ! p ;
Indic Imparf n p => s + "ét" + affixImparf ! n ! p ;
Indi Presn Sg p => s + sg ! p ;
Indi Presn Pl p => s + pl ! p ;
Indi Imparf n p => s + "ét" + affixImparf ! n ! p ;
Subjo SPres Sg p => s + "soi" + affixSgS ! p ;
Subjo SPres Pl P3 => s + "soient" ;
Subjo SPres Pl p => s + "soy" + affixPlOns ! p ;
@@ -1336,8 +1206,8 @@ oper
"ai" "ay" "ai" "e" "aur" "eu" "avoir" affixSgS affixPasseU
} in
table {
Indic Pres n p => s + pres ! n ! p ;
Indic Imparf n p => s + "av" + affixImparf ! n ! p ;
Indi Presn n p => s + pres ! n ! p ;
Indi Imparf n p => s + "av" + affixImparf ! n ! p ;
Subjo SPres Sg P3 => s + "ait" ;
Subjo SPres Pl P3 => s + "aient" ;
Subjo SPres Pl p => s + "ay" + affixPlOns ! p ;
@@ -1345,15 +1215,9 @@ oper
t => s + tavoir ! t
} ;
-- for NumeralsFre
--- for Numerals
param DForm = unit | teen | jten | ten | tenplus ;
param Place = indep | attr ;
oper
digitPl :
{inh : DForm ; inh1 : Number ; s : DForm => Str} ->
{inh : DForm ; inh1 : Number ; s : Gender => DForm => Str ; n : Number} = \d ->
{inh = d.inh ; inh1 = d.inh1 ; s = \\_ => d.s ; n = Pl} ;
}

View File

@@ -1,8 +0,0 @@
--# -path=.:../abstract:../romance:../../prelude
concrete MultimodalFre of Multimodal =
RulesFre, StructuralFre, BasicFre, TimeFre, DemonstrativeFre ** MultimodalI with
(Resource = ResourceFre),
(Basic = BasicFre),
(Lang = LangFre),
(DemRes = DemResFre) ;

View File

@@ -0,0 +1,2 @@
concrete NounFre of Noun = CatFre ** NounRomance with
(ResRomance = ResFre) ;

View File

@@ -0,0 +1,109 @@
concrete NumeralFre of Numeral = CatFre **
open CommonRomance, ResRomance, MorphoFre, Prelude in {
-- originally written in 1998, automatically translated to current notation...
-- last modified 24/1/2006, adding ordinals
-- Auxiliaries
oper
digitPl : {s : DForm => Str; inh : DForm ; inh1 : Number} ->
{s : CardOrd => DForm => Str ; inh : DForm ; inh1 : Number} = \d -> {
s = \\co,df => let ds = d.s ! df in
case co of {
NCard _ => ds ;
NOrd _ _ => case last ds of {
"q" => "uième" ;
"e" => init ds + "ième" ;
_ => ds + "ième"
}
} ;
inh = d.inh ; inh1 = d.inh1
} ;
cardOrd : CardOrd -> Str -> Str -> Str = \co, x,y -> case co of {
NCard _ => x ;
NOrd _ _ => y
} ;
lincat
Digit = {s : CardOrd => DForm => Str ; inh : DForm ; inh1 : Number} ;
Sub10 = {s : CardOrd => {p1 : DForm ; p2 : Place} => Str ; inh : Number} ;
Sub100 = {s : CardOrd => Place => Str} ;
Sub1000 = {s : CardOrd => Place => Str} ;
Sub1000000 = {s : CardOrd => Str} ;
lin num x0 = x0 ;
lin n2 =
digitPl {inh = unit ; inh1 = Sg ; s = table {unit => "deux" ; teen => "douze" ; jten => "vingt" ; ten => "vingt" ; tenplus => "vingt"}} ;
lin n3 =
digitPl {inh = unit ; inh1 = Sg ; s = table {unit => "trois" ; teen => "treize" ; jten => "trente" ; ten => "trente" ; tenplus => "trente"}} ;
lin n4 =
digitPl {inh = unit ; inh1 = Sg ; s = table {unit => "quatre" ; teen => "quatorze" ; jten => "quarante" ; ten => "quarante" ; tenplus => "quarante"}} ;
lin n5 =
digitPl {inh = unit ; inh1 = Sg ; s = table {unit => "cinq" ; teen => "quinze" ; jten => "cinquante" ; ten => "cinquante" ; tenplus => "cinquante"}} ;
lin n6 =
digitPl {inh = unit ; inh1 = Sg ; s = table {unit => "six" ; teen => "seize" ; jten => "soixante" ; ten => "soixante" ; tenplus => "soixante"}} ;
lin n7 =
digitPl {inh = teen ; inh1 = Sg ; s = table {unit => "sept" ; teen => "dix-sept" ; jten => "soixante-dix" ; ten => "soixante-dix" ; tenplus => "soixante"}} ;
lin n8 =
digitPl {inh = unit ; inh1 = Pl ; s = table {unit => "huit" ; teen => "dix-huit" ; jten => "quatre-vingts" ; ten => "quatre-vingt" ; tenplus => "quatre-vingt"}} ;
lin n9 =
digitPl {inh = teen ; inh1 = Pl ; s = table {unit => "neuf" ; teen => "dix-neuf" ; jten => "quatre-vingt-dix" ; ten => "quatre-vingt-dix" ; tenplus => "quatre-vingt"}} ;
lin pot01 =
{inh = Sg ; s = \\g => let dix = cardOrd g "dix" "dixième" in table {
{p1 = unit ; p2 = indep} => cardOrd g "un" "unième" ; {p1 = unit ; p2 = attr} => [] ; {p1 = teen ;
p2 = indep} => cardOrd g "onze" "onzième" ; {p1 = teen ; p2 = attr} => [] ; {p1 = jten ;
p2 = indep} => dix ; {p1 = jten ; p2 = attr} => [] ; {p1 = ten ;
p2 = indep} => dix ; {p1 = ten ; p2 = attr} => [] ; {p1 = tenplus
; p2 = indep} => dix ; {p1 = tenplus ; p2 = attr} => []} ; n = Sg} ;
lin pot0 d =
{inh = Pl ; s = \\g => table {{p1 = unit ; p2 = indep} => d.s ! g ! unit
; {p1 = unit ; p2 = attr} => d.s ! g ! unit ; {p1 = teen ; p2 = indep}
=> d.s ! g ! teen ; {p1 = teen ; p2 = attr} => d.s ! g ! teen ; {p1 = jten ;
p2 = indep} => d.s ! g ! jten ; {p1 = jten ; p2 = attr} => d.s ! g ! jten ;
{p1 = ten ; p2 = indep} => d.s ! g ! ten ; {p1 = ten ; p2 = attr} => d.s
! g ! ten ; {p1 = tenplus ; p2 = indep} => d.s ! g ! tenplus ; {p1 = tenplus
; p2 = attr} => d.s ! g ! tenplus} ; n = Pl} ;
lin pot110 =
{s = \\g => table {_ => cardOrd g "dix" "dixième"} ; n = Pl} ;
lin pot111 =
{s = \\g => table {_ => cardOrd g "onze" "onzième"} ; n = Pl} ;
lin pot1to19 d =
{s = \\g => table {indep => d.s ! g ! teen ; attr => d.s ! g ! teen} ; n = Pl} ;
lin pot0as1 n =
{s = \\g => table {indep => n.s ! g ! {p1 = unit ; p2 = indep} ;
attr => n.s ! g ! {p1 = unit ; p2 = attr}} ; n = n.n} ;
lin pot1 d =
{s = \\g => table {indep => d.s ! g ! jten ; attr => d.s ! g ! ten}
; n = Pl} ;
lin pot1plus d e =
{s = \\g => table {indep => (d.s ! (NCard Masc) ! tenplus) ++ (table {{p1 = Sg
; p2 = Sg} => "et" ; {p1 = Sg ; p2 = pl} => "-" ; {p1 = Pl ; p2 =
Sg} => "-" ; {p1 = Pl ; p2 = pl} => "-"} ! {p1 = d.inh1 ; p2 =
e.inh}) ++ e.s ! g ! {p1 = d.inh ; p2 = indep} ; attr => (d.s ! (NCard Masc) !
tenplus) ++ (table {{p1 = Sg ; p2 = Sg} => "et" ; {p1 = Sg ; p2 =
pl} => "-" ; {p1 = Pl ; p2 = Sg} => "-" ; {p1 = Pl ; p2 = pl} =>
"-"} ! {p1 = d.inh1 ; p2 = e.inh}) ++ e.s ! g ! {p1 = d.inh ; p2 =
indep}} ; n = Pl} ;
lin pot1as2 n = n ;
lin pot2 d =
{s = \\g => table {indep => (d.s ! NCard Masc ! {p1 = unit ; p2 = attr})
++ table {Sg => cardOrd g "cent" "centième" ; Pl => cardOrd g "cents" "centième"} ! (d.inh) ; attr => (d.s !
NCard Masc ! {p1 = unit ; p2 = attr}) ++ cardOrd g "cent" "centième"} ; n = Pl} ;
lin pot2plus d e =
{s = \\g => table {indep => (d.s ! NCard Masc ! {p1 = unit ; p2 = attr})
++ "cent" ++ e.s ! g ! indep ; attr => (d.s ! NCard Masc ! {p1 = unit ; p2
= attr}) ++ "cent" ++ e.s ! g ! indep} ; n = Pl} ;
lin pot2as3 n =
{s = \\g => n.s ! g ! indep ; n = n.n} ;
lin pot3 n =
{s = \\g => (n.s ! NCard Masc ! attr) ++ cardOrd g "mille" "millième" ; n = Pl} ;
lin pot3plus n m =
{s = \\g => (n.s ! NCard Masc ! attr) ++ "mille" ++ m.s ! g ! indep ; n =
Pl} ;
}

View File

@@ -1,81 +0,0 @@
concrete NumeralsFre of Numerals = open TypesFre, MorphoFre in {
lincat Numeral = {s : Gender => Str ; n : Number} ;
lincat Digit = {inh : DForm ; inh1 : Number ; s : Gender => DForm => Str ; n : Number} ;
lincat Sub10 = {inh : Number ; s : Gender => {p1 : DForm ; p2 : Place} => Str ; n : Number} ;
lincat Sub100 = {s : Gender => Place => Str ; n : Number} ;
lincat Sub1000 = {s : Gender => Place => Str ; n : Number} ;
lincat Sub1000000 = {s : Gender => Str ; n : Number} ;
lin num x0 = x0 ;
lin n2 =
digitPl {inh = unit ; inh1 = Sg ; s = table {unit => "deux" ; teen => "douze" ; jten => "vingt" ; ten => "vingt" ; tenplus => "vingt"}} ;
lin n3 =
digitPl {inh = unit ; inh1 = Sg ; s = table {unit => "trois" ; teen => "treize" ; jten => "trente" ; ten => "trente" ; tenplus => "trente"}} ;
lin n4 =
digitPl {inh = unit ; inh1 = Sg ; s = table {unit => "quatre" ; teen => "quatorze" ; jten => "quarante" ; ten => "quarante" ; tenplus => "quarante"}} ;
lin n5 =
digitPl {inh = unit ; inh1 = Sg ; s = table {unit => "cinq" ; teen => "quinze" ; jten => "cinquante" ; ten => "cinquante" ; tenplus => "cinquante"}} ;
lin n6 =
digitPl {inh = unit ; inh1 = Sg ; s = table {unit => "six" ; teen => "seize" ; jten => "soixante" ; ten => "soixante" ; tenplus => "soixante"}} ;
lin n7 =
digitPl {inh = teen ; inh1 = Sg ; s = table {unit => "sept" ; teen => "dix" ++ "-" ++ "sept" ; jten => "soixante" ++ "-" ++ "dix" ; ten => "soixante" ++ "-" ++ "dix" ; tenplus => "soixante"}} ;
lin n8 =
digitPl {inh = unit ; inh1 = Pl ; s = table {unit => "huit" ; teen => "dix" ++ "-" ++ "huit" ; jten => "quatre" ++ "-" ++ "vingts" ; ten => "quatre" ++ "-" ++ "vingt" ; tenplus => "quatre" ++ "-" ++ "vingt"}} ;
lin n9 =
digitPl {inh = teen ; inh1 = Pl ; s = table {unit => "neuf" ; teen => "dix" ++ "-" ++ "neuf" ; jten => "quatre" ++ "-" ++ "vingt" ++ "-" ++ "dix" ; ten => "quatre" ++ "-" ++ "vingt" ++ "-" ++ "dix" ; tenplus => "quatre" ++ "-" ++ "vingt"}} ;
lin pot01 =
{inh = Sg ; s = \\g => table {{p1 = unit ; p2 = indep} => case g of {Masc =>
"un" ; Fem => "une"} ; {p1 = unit ; p2 = attr} => [] ; {p1 = teen ;
p2 = indep} => "onze" ; {p1 = teen ; p2 = attr} => [] ; {p1 = jten ;
p2 = indep} => "dix" ; {p1 = jten ; p2 = attr} => [] ; {p1 = ten ;
p2 = indep} => "dix" ; {p1 = ten ; p2 = attr} => [] ; {p1 = tenplus
; p2 = indep} => "dix" ; {p1 = tenplus ; p2 = attr} => []} ; n = Sg} ;
lin pot0 d =
{inh = Pl ; s = \\g => table {{p1 = unit ; p2 = indep} => d.s ! g ! unit
; {p1 = unit ; p2 = attr} => d.s ! g ! unit ; {p1 = teen ; p2 = indep}
=> d.s ! g ! teen ; {p1 = teen ; p2 = attr} => d.s ! g ! teen ; {p1 = jten ;
p2 = indep} => d.s ! g ! jten ; {p1 = jten ; p2 = attr} => d.s ! g ! jten ;
{p1 = ten ; p2 = indep} => d.s ! g ! ten ; {p1 = ten ; p2 = attr} => d.s
! g ! ten ; {p1 = tenplus ; p2 = indep} => d.s ! g ! tenplus ; {p1 = tenplus
; p2 = attr} => d.s ! g ! tenplus} ; n = Pl} ;
lin pot110 =
{s = \\_ => table {indep => "dix" ; attr => "dix"} ; n = Pl} ;
lin pot111 =
{s = \\_ => table {indep => "onze" ; attr => "onze"} ; n = Pl} ;
lin pot1to19 d =
{s = \\g => table {indep => d.s ! g ! teen ; attr => d.s ! g ! teen} ; n = Pl} ;
lin pot0as1 n =
{s = \\g => table {indep => n.s ! g ! {p1 = unit ; p2 = indep} ;
attr => n.s ! g ! {p1 = unit ; p2 = attr}} ; n = n.n} ;
lin pot1 d =
{s = \\g => table {indep => d.s ! g ! jten ; attr => d.s ! g ! ten}
; n = Pl} ;
lin pot1plus d e =
{s = \\g => table {indep => (d.s ! g ! tenplus) ++ (table {{p1 = Sg
; p2 = Sg} => "et" ; {p1 = Sg ; p2 = pl} => "-" ; {p1 = Pl ; p2 =
Sg} => "-" ; {p1 = Pl ; p2 = pl} => "-"} ! {p1 = d.inh1 ; p2 =
e.inh}) ++ e.s ! g ! {p1 = d.inh ; p2 = indep} ; attr => (d.s ! g !
tenplus) ++ (table {{p1 = Sg ; p2 = Sg} => "et" ; {p1 = Sg ; p2 =
pl} => "-" ; {p1 = Pl ; p2 = Sg} => "-" ; {p1 = Pl ; p2 = pl} =>
"-"} ! {p1 = d.inh1 ; p2 = e.inh}) ++ e.s ! g ! {p1 = d.inh ; p2 =
indep}} ; n = Pl} ;
lin pot1as2 n = n ;
---- {s = \\g,d => n.s ! indep ; attr => n.s ! attr}} ;
lin pot2 d =
{s = \\g => table {indep => (d.s ! Masc ! {p1 = unit ; p2 = attr})
++ table {Sg => "cent" ; Pl => "cents"} ! (d.inh) ; attr => (d.s !
Masc ! {p1 = unit ; p2 = attr}) ++ "cent"} ; n = Pl} ;
lin pot2plus d e =
{s = \\g => table {indep => (d.s ! Masc ! {p1 = unit ; p2 = attr})
++ "cent" ++ e.s ! g ! indep ; attr => (d.s ! Masc ! {p1 = unit ; p2
= attr}) ++ "cent" ++ e.s ! g ! indep} ; n = Pl} ;
lin pot2as3 n =
{s = \\g => n.s ! g ! indep ; n = n.n} ;
lin pot3 n =
{s = \\_ => (n.s ! Masc ! attr) ++ "mille" ; n = Pl} ;
lin pot3plus n m =
{s = \\g => (n.s ! Masc ! attr) ++ "mille" ++ m.s ! g ! indep ; n =
Pl} ;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,10 @@
--# -path=.:../romance:../abstract:../../prelude
--# -path=.:../romance:../common:../abstract:../../prelude
--1 French Lexical Paradigms
--
-- Aarne Ranta 2003
-- Aarne Ranta 2001 - 2006
--
-- This is an API to the user of the resource grammar
-- This is an API for the user of the resource grammar
-- for adding lexical items. It gives functions for forming
-- expressions of open categories: nouns, adjectives, verbs.
--
@@ -21,13 +21,19 @@
-- 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.
--
-- The following modules are presupposed:
-- separate module [``IrregFre`` ../../french/IrregFre.gf],
-- which covers all irregularly inflected verbs.
resource ParadigmsFre =
open (Predef=Predef), Prelude, TypesFre, MorphoFre, SyntaxFre, RulesFre in {
open
(Predef=Predef),
Prelude,
CommonRomance,
ResFre,
MorphoFre,
CatFre in {
flags optimize=all ;
--2 Parameters
--
@@ -51,13 +57,11 @@ oper
-- amalgamate with the following word (the 'genitive' "de" and the
-- 'dative' "à").
Preposition : Type ;
accusative : Prep ;
genitive : Prep ;
dative : Prep ;
accusative : Preposition ;
genitive : Preposition ;
dative : Preposition ;
mkPreposition : Str -> Preposition ;
mkPrep : Str -> Prep ;
--2 Nouns
@@ -66,13 +70,20 @@ oper
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
-- The regular function takes the singular form,
-- and computes the plural and the gender by a heuristic. The plural
-- heuristic currently
-- covers the cases "pas-pas", "prix-prix", "nez-nez",
-- "bijou-bijoux", "cheveu-cheveux", "plateau-plateaux", "cheval-chevaux".
-- The gender heuristic is less reliable: it treats as feminine all
-- nouns ending with "e" and "ion", all others as masculine.
-- If in doubt, use the $cc$ command to test!
regN : Str -> Gender -> N ;
regN : Str -> N ;
-- Adding gender information widens the scope of the foregoing function.
regGenN : Str -> Gender -> N ;
--3 Compound nouns
@@ -89,7 +100,7 @@ oper
--
-- Relational nouns ("fille de x") need a case and a preposition.
mkN2 : N -> Preposition -> N2 ;
mkN2 : N -> Prep -> N2 ;
-- The most common cases are the genitive "de" and the dative "à",
-- with the empty preposition.
@@ -99,13 +110,13 @@ oper
-- Three-place relational nouns ("la connection de x à y") need two prepositions.
mkN3 : N -> Preposition -> Preposition -> N3 ;
mkN3 : N -> Prep -> Prep -> 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
-- relational noun (e.g. "la vieille église de"). However, $N2$ and
-- $N3$ are purely lexical categories. But you can use the $AdvCN$
-- and $PrepNP$ constructions to build phrases like this.
@@ -114,7 +125,10 @@ oper
--
-- Proper names need a string and a gender.
mkPN : Str -> Gender -> PN ; -- Jean
mkPN : Str -> Gender -> PN ; -- Jean
regPN : Str -> PN ; -- feminine if "-e", masculine otherwise
-- To form a noun phrase that can also be plural,
-- you can use the worst-case function.
@@ -147,33 +161,24 @@ oper
--
-- Two-place adjectives need a preposition for their second argument.
mkA2 : A -> Preposition -> A2 ;
mkA2 : A -> Prep -> 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 -> ADeg ;
mkADeg : A -> A -> A ;
-- If comparison is formed by "plus", as usual in French,
-- the following pattern is used:
compADeg : A -> ADeg ;
-- The regular pattern is the same as $regA$ for plain adjectives,
-- with comparison by "plus".
regADeg : Str -> ADeg ;
-- From a given $ADeg$, it is possible to get back to $A$.
adegA : ADeg -> A ;
compADeg : A -> A ;
-- For prefixed adjectives, the following function is
-- provided.
prefADeg : ADeg -> ADeg ;
prefA : A -> A ;
--2 Adverbs
@@ -213,16 +218,17 @@ oper
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.
-- To change it to "être", use the following function. Reflexive implies "être".
etreV : V -> V ;
reflV : 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$.
-- (transitive verbs).
mkV2 : V -> Preposition -> V2 ;
mkV2 : V -> Prep -> V2 ;
dirV2 : V -> V2 ;
@@ -235,9 +241,9 @@ oper
-- 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,_,_
mkV3 : V -> Prep -> Prep -> V3 ; -- parler, à, de
dirV3 : V -> Prep -> V3 ; -- donner,_,à
dirdirV3 : V -> V3 ; -- donner,_,_
--3 Other complement patterns
--
@@ -246,100 +252,129 @@ oper
mkV0 : V -> V0 ;
mkVS : V -> VS ;
mkV2S : V -> Preposition -> V2S ;
mkV2S : V -> Prep -> 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 ;
mkV2V : V -> Prep -> Prep -> V2V ;
mkVA : V -> VA ;
mkV2A : V -> Preposition -> V2A ;
mkV2A : V -> Prep -> Prep -> V2A ;
mkVQ : V -> VQ ;
mkV2Q : V -> Preposition -> V2Q ;
mkV2Q : V -> Prep -> V2Q ;
mkAS : A -> AS ;
subjAS : A -> AS ;
mkA2S : A -> Preposition -> A2S ;
mkAV : A -> Preposition -> AV ;
mkA2V : A -> Preposition -> Preposition -> A2V ;
mkAS : A -> AS ;
mkA2S : A -> Prep -> A2S ;
mkAV : A -> Prep -> AV ;
mkA2V : A -> Prep -> Prep -> A2V ;
-- Notice: categories $V2S, V2V, 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, 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 = SyntaxFre.Gender ;
Number = TypesFre.Number ;
Gender = MorphoFre.Gender ;
Number = MorphoFre.Number ;
masculine = Masc ;
feminine = Fem ;
singular = Sg ;
plural = Pl ;
Preposition = Case * Str ;
accusative = <Acc,[]> ;
genitive = <Gen,[]> ;
dative = <Dat,[]> ;
mkPreposition p = <Acc,p> ;
Preposition = Compl ;
accusative = complAcc ** {lock_Prep = <>} ;
genitive = complGen ** {lock_Prep = <>} ;
dative = complDat ** {lock_Prep = <>} ;
mkPrep p = {s = p ; c = Acc ; isDir = False ; lock_Prep = <>} ;
--- obsolete
Preposition : Type ;
mkPreposition : Str -> Preposition ;
mkPreposition = mkPrep ;
mkN x y g = mkCNomIrreg x y g ** {lock_N = <>} ;
regN x g = mkNomReg x g ** {lock_N = <>} ;
regN x = regGenN x g where {
g = case <x : Str> of {
_ + ("e" | "ion") => Fem ;
_ => Masc
}
} ;
regGenN 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 = <> ; c = p.p1 ; s2 = p.p2} ;
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 = <> ; c = p.p1 ; s2 = p.p2 ; c3 = q.p1 ; s3 = q.p2} ;
mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ;
regPN x = mkPN x g where {
g = case last x of {
"e" => feminine ;
_ => masculine
}
} ;
mkPN x g = {s = x ; g = g} ** {lock_PN = <>} ;
mkNP x g n = let np = mkNameNounPhrase x g in
{s = np.s ; g = np.g ; p = np.p ; c = np.c ; n = n ; lock_NP = <>} ;
mkNP x g n = {s = (pn2np (mkPN x g)).s; a = agrP3 g n ; hasClit = False} ** {lock_NP = <>} ;
mkA a b c d = mkAdj a c b d ** {p = False ; lock_A = <>} ;
regA a = mkAdjReg a ** {p = False ; lock_A = <>} ;
prefA a = {s = a.s ; p = True ; lock_A = <>} ;
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 ** {c = p.p1 ; s2 = p.p2 ; lock_A2 = <>} ;
mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ;
mkADeg a b = {s = table {Pos => a.s ; _ => b.s} ; p = a.p ; lock_ADeg = <>} ;
compADeg a = {s = table {Pos => a.s ; _ => \\f => "plus" ++ a.s ! f} ; p = a.p ;
lock_ADeg = <>} ;
regADeg a = compADeg (regA a) ;
prefADeg a = {s = a.s ; p = True ; lock_ADeg = <>} ;
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 = <>} ;
adegA a = {s = a.s ! Pos ; p = a.p ; lock_A = <>} ;
mkAdv x = ss x ** {lock_Adv = <>} ;
mkAdV x = ss x ** {lock_AdV = <>} ;
mkAdA x = ss x ** {lock_AdA = <>} ;
regV x = let v = (mkVerbReg x) in verbPres v AHabere ** {aux = AHabere ; lock_V = <>} ;
reg3V x y z = let v = (mkVerb3Reg x y z) in verbPres v AHabere ** {aux = AHabere ; lock_V = <>} ;
etreV v = {s = v.s ; aux = AEsse ; lock_V = <>} ;
regV x = let v = vvf (mkVerbReg x) in {s = v ; vtyp = VHabere ; lock_V = <>} ;
reg3V x y z = let v = vvf (mkVerb3Reg x y z) in {s = v ; vtyp = VHabere ; lock_V = <>} ;
etreV v = {s = v.s ; vtyp = VEsse ; lock_V = <>} ;
reflV v = {s = v.s ; vtyp = VRefl ; lock_V = <>} ;
mkV2 v p = {s = v.s ; aux = v.aux ; s2 = p.p2 ; c = p.p1 ; lock_V2 = <>} ;
mkV2 v p = v ** {c2 = p ; lock_V2 = <>} ;
dirV2 v = mkV2 v accusative ;
v2V v = v ** {lock_V = <>} ;
mkV3 v p q = {s = v.s ; aux = v.aux ;
s2 = p.p2 ; s3 = q.p2 ; c = p.p1 ; c3 = q.p1 ; lock_V3 = <>} ;
mkV3 v p q = v ** {c2 = p ; c3 = q ; lock_V3 = <>} ;
dirV3 v p = mkV3 v accusative p ;
dirdirV3 v = dirV3 v dative ;
V0 : Type = V ;
V2S, V2V, V2Q : Type = V2 ;
AS, AV : Type = A ;
A2S, A2V : Type = A2 ;
mkV0 v = v ** {lock_V0 = <>} ;
mkVS v = v ** {mn,mp = Ind ; lock_VS = <>} ; ---- more moods
mkV2S v p = mkV2 v p ** {mn,mp = Ind ; lock_V2S = <>} ;
mkVV v = v ** {c = accusative.p1 ; lock_VV = <>} ;
deVV v = v ** {c = genitive.p1 ; lock_VV = <>} ;
aVV v = v ** {c = dative.p1 ; lock_VV = <>} ;
mkVS v = v ** {m = \\_ => 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 = <>} ;
mkV2A v p q = mkV3 v p q ** {lock_V2A = <>} ;
mkVQ v = v ** {lock_VQ = <>} ;
mkV2Q v p = mkV2 v p ** {lock_V2Q = <>} ;
mkAS v = v ** {mn,mp = Ind ; lock_AS = <>} ; ---- more moods
mkA2S v p = mkA2 v p ** {mn,mp = Ind ; lock_A2S = <>} ;
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 = <>} ;

View 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"}} ;
}

View File

@@ -0,0 +1,2 @@
concrete PhraseFre of Phrase = CatFre ** PhraseRomance with
(ResRomance = ResFre) ;

View File

@@ -0,0 +1,2 @@
concrete QuestionFre of Question = CatFre ** QuestionRomance with
(ResRomance = ResFre) ;

View File

@@ -1,38 +0,0 @@
The French resource API implementation, based on romance.
The Verbes* modules were translated from an XML resource created
by Sylvain Pogodalla.
WARNING: The subcategorization information is not very reliable
(the extraction method is the main thing to blame).
The biggest test grammar is TestVerbesFre.
We recommend using GF with extra stack and heap:
gf +RTS -K10M -H200M
We recommend reading grammars from source and not emitting gfc code,
since, the size of gfc files becomes enormous. Thus:
i -noemit -src -cflexer TestVerbesFre.gf
So it seems we'll have to work on effectivizing GF!
Useful tests:
l -table choirVN -- create infl table
ma "cours cherra" -- analyse a couple of forms
gr -cat=Cl | l -table -- generate random sentence
gr PredVG HeNP (PredV2 (UseVN2 ?) SheNP) | l -table -- idem, of form "il la X"
rf labible.txt | ma | wf labible.tagged -- tag the bible (first get it!)
mq -cat=VN2 -- run a morphology quiz
Aarne Ranta 30/11/2004

View File

@@ -0,0 +1,2 @@
concrete RelativeFre of Relative = CatFre ** RelativeRomance with
(ResRomance = ResFre) ;

View File

@@ -0,0 +1,13 @@
--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$.
--
instance ResFre of ResRomance = DiffFre ** open CommonRomance, Prelude in {
flags optimize=noexpand ;
} ;

View File

@@ -1,5 +0,0 @@
--# -path=.:../romance:../abstract:../../prelude
concrete ResourceFre of Resource = RulesFre, ClauseFre, StructuralFre ** {} ;

View File

@@ -1,4 +0,0 @@
--# -path=.:../romance:../abstract:../../prelude
concrete RulesFre of Rules = CategoriesFre **
RulesRomance with (SyntaxRomance=SyntaxFre) ;

View File

@@ -0,0 +1,2 @@
concrete SentenceFre of Sentence = CatFre ** SentenceRomance with
(ResRomance = ResFre) ;

View File

@@ -1,8 +0,0 @@
--# -path=.:../romancs:../abstract:../../prelude
concrete SimpleFre of Simple = CategoriesFre ** SimpleI with
(Categories = CategoriesFre),
(Rules = RulesFre),
(Structural = StructuralFre),
(Verbphrase = VerbphraseFre)
;

View File

@@ -1,21 +0,0 @@
--# -path=.:../romance:../abstract:../../prelude
concrete SimpleLangFre of SimpleLang =
SimpleFre,
StructuralFre,
BasicFre,
TimeFre,
CountryFre
** open Prelude, ParadigmsFre in {
lin
AdvDate d = prefixSS "le" d ;
AdvTime t = prefixSS "à" t ;
NWeekday w = w ;
PNWeekday w = mkPN (w.s ! singular) w.g ;
PNCountry x = x ;
ANationality x = x ;
NLanguage x = x ;
}

View File

@@ -1,95 +1,142 @@
--# -path=.:../romance:../abstract:../../prelude
concrete StructuralFre of Structural = CatFre **
open PhonoFre, MorphoFre, ParadigmsFre, IrregFre, Prelude in {
concrete StructuralFre of Structural =
CategoriesFre, NumeralsFre **
open SyntaxFre, MorphoFre, Prelude in {
flags optimize=all ;
lin
UseNumeral n = {s = \\g => n.s !g ; n = n.n ; isNo = False} ;
above_Prep = {s = ["au dessus"] ; c = genitive} ;
after_Prep = justPrep "après" ;
all8mass_Det = toutDet ;
all_NDet = mkDeterminerNum ["tous les"] ["toutes les"] ;
almost_Adv = ss "presque" ;
although_Subj = ss ("bien" ++ elisQue) ** {m = Con} ;
and_Conj = etConj ;
because_Subj = ss ("parce" ++ elisQue) ** {m = Ind} ;
before_Prep = justPrep "avant" ;
behind_Prep = justPrep "derrière" ;
between_Prep = justPrep "entre" ;
both_AndConjD = etetConj ;
by8agent_Prep = justPrep "par" ;
by8means_Prep = justPrep "par" ;
can8know_VV = mkVerbVerbDir (verbPres (conj3savoir "savoir") AHabere) ;
can_VV = mkVerbVerbDir (verbPres (conj3pouvoir "pouvoir") AHabere) ;
during_Prep = justPrep "pendant" ;
either8or_ConjD = ououConj ;
everybody_NP = mkNameNounPhrase ["tout le monde"] Masc ;
every_Det = chaqueDet ;
everything_NP = mkNameNounPhrase ["tout"] Masc ;
above_Prep = {s = ["au dessus"] ; c = MorphoFre.genitive ; isDir = False} ;
after_Prep = mkPreposition "après" ;
all_Predet = {
s = \\a,c => prepCase c ++ aagrForms "tout" "toute" "tous" "toutes" ! a ;
c = Nom
} ;
almost_AdA, almost_AdN = ss "presque" ;
always_AdV = ss "toujours" ;
although_Subj = ss ("bien" ++ elisQue) ** {m = Conjunct} ;
and_Conj = ss "et" ** {n = Pl} ;
because_Subj = ss ("parce" ++ elisQue) ** {m = Indic} ;
before_Prep = mkPreposition "avant" ;
behind_Prep = mkPreposition "derrière" ;
between_Prep = mkPreposition "entre" ;
both7and_DConj = {s1,s2 = "et" ; n = Pl} ;
but_PConj = ss "mais" ;
by8agent_Prep = mkPreposition "par" ;
by8means_Prep = mkPreposition "par" ;
can8know_VV = mkVV (savoir_V2 ** {lock_V = <>}) ;
can_VV = mkVV pouvoir_V ;
during_Prep = mkPreposition "pendant" ;
either7or_DConj = {s1,s2 = "ou" ; n = Pl} ;
everybody_NP = pn2np (mkPN ["tout le monde"] Masc) ;
every_Det = {s = \\_,_ => "chaque" ; n = Sg} ;
everything_NP = pn2np (mkPN ["tout"] Masc) ;
everywhere_Adv = ss "partout" ;
from_Prep = justCase genitive ; ---
he_NP = pronNounPhrase pronIl ;
how_IAdv = commentAdv ;
how8many_IDet = {s = \\_ => "combien" ++ elisDe ; n = Pl} ;
if_Subj = siSubj ;
in8front_Prep = justPrep "devant" ;
i_NP = pronNounPhrase pronJe ;
in_Prep = justPrep "dans" ;
it_NP = pronNounPhrase pronIl ;
many_Det = mkDeterminer1 plural "plusieurs" ;
most8many_Det = plupartDet ;
most_Det = mkDeterminer1 singular (["la plupart"] ++ elisDe) ; --- de
much_Det = mkDeterminer1 singular ("beaucoup" ++ elisDe) ; --- de
must_VV = mkVerbVerbDir (verbPres (conj3devoir "devoir") AHabere) ;
no_Phr = nonPhr ; --- and also Si!
on_Prep = justPrep "sur" ;
or_Conj = ouConj ;
otherwise_Adv = ss "autrement" ;
part_Prep = justCase genitive ; ---
possess_Prep = justCase genitive ;
few_Det = {s = \\g,c => prepCase c ++ "peu" ++ elisDe ; n = Pl} ;
first_Ord = {s = \\ag => (regA "premier").s ! Posit ! AF ag.g ag.n} ;
from_Prep = complGen ; ---
he_Pron =
mkPronoun
"il" (elision "l") "lui" "lui" "son" (elisPoss "s") "ses"
Masc Sg P3 ;
here7from_Adv = ss "d'ici" ;
here7to_Adv = ss "ici" ;
here_Adv = ss "ici" ;
how_IAdv = ss "comment" ;
how8many_IDet = {s = \\_,c => prepCase c ++ "combien" ++ elisDe ; n = Pl} ;
if_Subj = ss elisSi ** {m = Indic} ;
in8front_Prep = mkPreposition "devant" ;
i_Pron =
mkPronoun
(elision "j") (elision "m") (elision "m") "moi" "mon" (elisPoss "m") "mes"
Masc Sg P1 ;
in_Prep = mkPreposition "dans" ;
it_Pron =
mkPronoun
"il" (elision "l") "lui" "lui" "son" (elisPoss "s") "ses"
Masc Sg P3 ;
less_CAdv = ss "moins" ;
many_Det = {s = \\_,c => prepCase c ++ "plusieurs" ; n = Pl} ;
more_CAdv = ss "plus" ;
most_Predet = {s = \\_,c => prepCase c ++ ["la plupart"] ; c = CPrep P_de} ;
much_Det = {s = \\_,c => prepCase c ++ "beaucoup" ++ elisDe ; n = Pl} ;
must_VV = mkVV (devoir_V2 ** {lock_V = <>}) ;
no_Phr = ss "non" ;
on_Prep = mkPreposition "sur" ;
one_Quant = {s = \\g,c => prepCase c ++ genForms "un" "une" ! g} ;
only_Predet = {s = \\_,c => prepCase c ++ "seulement" ; c = Nom} ; --- seul(e)(s)
or_Conj = {s = "ou" ; n = Sg} ;
otherwise_PConj = ss "autrement" ;
part_Prep = complGen ;
please_Voc = ss ["s'il vous plaît"] ;
possess_Prep = complGen ;
quite_Adv = ss "assez" ;
she_NP = pronNounPhrase pronElle ;
so_Adv = ss "si" ;
somebody_NP = mkNameNounPhrase ["quelqu'un"] Masc ;
some_Det = mkDeterminer1 singular "quelque" ;
some_NDet = mkDeterminerNum "quelques" "quelques" ;
something_NP = mkNameNounPhrase ["quelque chose"] Masc ;
somewhere_Adv = ss ["quelque part"] ; --- ne - pas
that_Det = mkDeterminer singular (pre {"ce" ; "cet" / voyelle}) "cette" ; --- là
that_NP = mkNameNounPhrase ["ça"] Masc ;
therefore_Adv = ss "donc" ;
these_NDet = mkDeterminerNum "ces" "ces" ; --- ci
they_NP = pronNounPhrase pronIls ;
they8fem_NP = pronNounPhrase pronElles ;
this_Det = mkDeterminer singular (pre {"ce" ; "cet" / voyelle}) "cette" ; --- ci
this_NP = mkNameNounPhrase ["ceci"] Masc ;
those_NDet = mkDeterminerNum "ces" "ces" ; --- là
thou_NP = pronNounPhrase pronTu ;
through_Prep = justPrep "par" ;
too_Adv = ss "trop" ;
to_Prep = justCase dative ; ---
under_Prep = justPrep "sous" ;
very_Adv = ss "très" ;
want_VV = mkVerbVerbDir (verbPres (conj3vouloir "vouloir") AHabere) ;
we_NP = pronNounPhrase pronNous ;
what8one_IP = intPronWhat singular ;
what8many_IP = intPronWhat plural ;
when_IAdv = quandAdv ;
when_Subj = quandSubj ;
where_IAdv = ouAdv ;
which8many_IDet = mkDeterminerNum "quels" "quelles" ** {n = Pl} ;
which8one_IDet = quelDet ;
who8one_IP = intPronWho singular ;
who8many_IP = intPronWho plural ;
why_IAdv = pourquoiAdv ;
without_Prep = justPrep "sans" ;
with_Prep = justPrep "avec" ;
ye_NP = pronNounPhrase pronVous ;
yes_Phr = ouiPhr ;
you_NP = pronNounPhrase pronVous ;
she_Pron =
mkPronoun
"elle" elisLa "lui" "elle" "son" (elisPoss "s") "ses"
Fem Sg P3 ;
so_AdA = ss "si" ;
somebody_NP = pn2np (mkPN ["quelqu'un"] Masc) ;
somePl_Det = {s = \\_,c => prepCase c ++ "quelques" ; n = Pl} ;
someSg_Det = {s = \\_,c => prepCase c ++ elision "quelqu" ; n = Sg} ;
something_NP = pn2np (mkPN ["quelque chose"] Masc) ;
somewhere_Adv = ss ["quelque part"] ; --- ne - pas
that_Quant = {s = \\_ =>
table {
Sg => \\g,c => prepCase c ++ genForms "ce" "cette" ! g ; ---- cet ; là
Pl => \\_,_ => "ces"
}
} ;
that_NP = mkNP ["cela"] Masc Sg ;
there7from_Adv = ss ["de là"] ;
there7to_Adv = ss "là" ; --- y
there_Adv = ss "là" ;
therefore_PConj = ss "donc" ;
these_NP = mkNP ["ceux-ci"] Masc Pl ;
they_Pron = mkPronoun
"ils" "les" "leur" "eux" "leur" "leur" "leurs"
Masc Pl P3 ;
this_Quant = {s = \\_ =>
table {
Sg => \\g,c => prepCase c ++ genForms "ce" "cette" ! g ; ---- cet ; ci
Pl => \\_,_ => "ces"
}
} ;
this_NP = pn2np (mkPN ["ceci"] Masc) ;
those_NP = mkNP ["ceux-là"] Masc Pl ;
through_Prep = mkPreposition "par" ;
too_AdA = ss "trop" ;
to_Prep = complDat ;
under_Prep = mkPreposition "sous" ;
very_AdA = ss "très" ;
want_VV = mkVV (vouloir_V2 ** {lock_V = <>}) ;
we_Pron =
mkPronoun "nous" "nous" "nous" "nous" "notre" "notre" "nos"
Masc Pl P1 ;
whatSg_IP =
{s = \\c => artDef a.g a.n c + quelPron ! a ; a = a}
where {a = aagr Masc Sg} ;
whatPl_IP =
{s = \\c => artDef a.g a.n c + quelPron ! a ; a = a}
where {a = aagr Masc Pl} ;
when_IAdv = ss "quand" ;
when_Subj = ss "quand" ** {m = Indic} ;
where_IAdv = ss "où" ;
whichSg_IDet = {s = \\g,c => prepCase c ++ genForms "quel" "quelle" ! g ; n = Sg} ;
whichPl_IDet = {s = \\g,c => prepCase c ++ genForms "quels" "quelles" ! g; n = Pl} ;
whoPl_IP = {s = \\c => prepCase c ++ "qui" ; a = aagr Masc Pl} ;
whoSg_IP = {s = \\c => prepCase c ++ "qui" ; a = aagr Masc Sg} ;
why_IAdv = ss "pourquoi" ;
without_Prep = mkPreposition "sans" ;
with_Prep = mkPreposition "avec" ;
yes_Phr = ss "oui" ; --- si
youSg_Pron = mkPronoun
"tu" (elision "t") (elision "t") "toi" "ton" (elisPoss "t") "tes"
Masc Sg P2 ;
youPl_Pron, youPol_Pron =
mkPronoun
"vous" "vous" "vous" "vous" "votre" "votre" "vos"
Masc Pl P2 ;
}

View File

@@ -1,246 +0,0 @@
--# -path=.:../abstract:../../prelude:../romance
concrete SwadeshLexFre of SwadeshLex = CategoriesFre
** open StructuralFre, RulesFre, SyntaxFre, ParadigmsFre, VerbsFre,
BasicFre, Prelude in {
lin
-- Pronouns
i_NP = i_NP ;
thou_NP = thou_NP ;
he_NP = he_NP ;
we_NP = we_NP ;
you_NP = you_NP ;
they_NP = they_NP ;
who8many_IP = who8many_IP ;
who8one_IP = who8one_IP ;
what8many_IP = what8many_IP ;
what8one_IP = what8one_IP ;
-- Determiners
this_Det = this_Det ;
that_Det = that_Det ;
all_NDet = all_NDet ;
many_Det = many_Det ;
some_Det = some_Det ;
few_Det = mkDeterminer1 Pl ("peu" ++ elisDe) ;
other_Det = mkDeterminer1 Pl ["d'autres"] ;
-- Adverbs
here_Adv = here_Adv;
there_Adv = there_Adv;
where_IAdv = where_IAdv;
when_IAdv = when_IAdv;
how_IAdv = how_IAdv;
-- not : Adv ; -- ?
-- Conjunctions
and_Conj = and_Conj ;
-- Prepositions
at_Prep = justCase dative.p1 ;
in_Prep = StructuralFre.in_Prep ;
with_Prep = StructuralFre.with_Prep ;
-- Numerals
one_Num = UseNumeral (num (pot2as3 (pot1as2 (pot0as1 pot01)))) ;
two_Num = UseNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n2))))) ;
three_Num = UseNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n3))))) ;
four_Num = UseNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n4))))) ;
five_Num = UseNumeral (num (pot2as3 (pot1as2 (pot0as1 (pot0 n5))))) ;
-- Adjectives
bad_ADeg = bad_ADeg ;
big_ADeg = big_ADeg ;
black_ADeg = black_ADeg ;
cold_ADeg = cold_ADeg ;
correct_ADeg = regADeg "correct" ;
dirty_ADeg = dirty_ADeg ;
dry_ADeg = compADeg (mkA "sec" "sèche" "secs" "sèches") ;
dull_ADeg = regADeg "émoussé" ;
far_ADeg = regADeg "lointain" ;
full_ADeg = regADeg "plein" ;
good_ADeg = good_ADeg ;
green_ADeg = green_ADeg ;
heavy_ADeg = regADeg "lourd" ;
long_ADeg = long_ADeg ;
narrow_ADeg = narrow_ADeg ;
near_ADeg = regADeg "proche" ;
new_ADeg = new_ADeg ;
old_ADeg = old_ADeg ;
red_ADeg = red_ADeg ;
rotten_ADeg = regADeg "pourri" ;
round_ADeg = regADeg "rond" ;
sharp_ADeg = regADeg "tranchant" ;
short_ADeg = short_ADeg ;
small_ADeg = small_ADeg ;
smooth_ADeg = regADeg "lisse" ;
straight_ADeg = regADeg "droite" ;
thick_ADeg = thick_ADeg ;
thin_ADeg = thin_ADeg ;
warm_ADeg = warm_ADeg ;
wet_ADeg = regADeg "mouillé" ;
white_ADeg = white_ADeg ;
wide_ADeg = regADeg "large" ;
yellow_ADeg = yellow_ADeg ;
left_A = regA "gauche" ;
right_A = regA "droite" ;
-- Nouns
animal_N = regN "animal" masculine ;
ashes_N = regN "cendre" masculine ;
back_N = regN "dos" masculine ;
bark_N = regN "écorce" feminine ;
belly_N = regN "ventre" masculine ;
bird_N = bird_N;
blood_N = regN "sang" masculine ;
bone_N = regN "os" masculine ;
breast_N = regN "sein" masculine ; --- poitrine
child_N = child_N ;
cloud_N = regN "nuage" masculine ;
day_N = regN "jour" masculine ;
dog_N = dog_N ;
dust_N = regN "poussière" feminine ;
ear_N = regN "oreille" feminine ;
earth_N = regN "terre" feminine ;
egg_N = regN "oeuf" masculine ;
eye_N = mkN "oeil" "yeux" masculine ;
fat_N = regN "graisse" feminine ;
father_N = UseN2 father_N2 ;
feather_N = regN "plume" feminine ;
fingernail_N = regN "ongle" masculine ;
fire_N = regN "feu" masculine ;
fish_N = fish_N ;
flower_N = regN "fleur" feminine ;
fog_N = regN "brouillard" masculine ;
foot_N = regN "pied" masculine ;
forest_N = regN "forêt" feminine ;
fruit_N = fruit_N ;
grass_N = regN "herbe" feminine ;
guts_N = regN "entraille" feminine ;
hair_N = regN "cheveu" masculine ;
hand_N = regN "main" feminine ;
head_N = regN "tête" feminine ;
heart_N = regN "coeur" masculine ;
horn_N = regN "corne" masculine ;
husband_N = regN "mari" masculine ;
ice_N = regN "glace" feminine ;
knee_N = regN "genou" masculine ;
lake_N = lake_N ;
leaf_N = regN "feuille" feminine ;
leg_N = regN "jambe" feminine ;
liver_N = regN "foie" masculine ;
louse_N = regN "pou" masculine ;
man_N = man_N ;
meat_N = meat_N ;
moon_N = moon_N ;
mother_N = UseN2 mother_N2 ;
mountain_N = mountain_N ;
mouth_N = regN "bouche" feminine ;
name_N = regN "nom" masculine ;
neck_N = mkN "cou" "cous" masculine ;
night_N = regN "nuit" feminine ;
nose_N = regN "nez" masculine ;
person_N = regN "personne" feminine ;
rain_N = regN "pluie" feminine ;
river_N = river_N ;
road_N = regN "route" feminine ;
root_N = regN "racine" feminine ;
rope_N = regN "corde" feminine ;
salt_N = regN "sel" masculine ;
sand_N = regN "sable" masculine ;
sea_N = sea_N ;
seed_N = regN "graine" feminine ;
skin_N = regN "peau" masculine ;
sky_N = mkN "ciel" "cieux" masculine ;
smoke_N = regN "fumée" feminine ;
snake_N = snake_N ;
snow_N = regN "neige" feminine ;
star_N = star_N ;
stick_N = regN "bâton" masculine ;
stone_N = stone_N ;
sun_N = sun_N ;
tail_N = regN "queue" feminine ;
tongue_N = regN "langue" feminine ;
tooth_N = regN "dent" feminine ;
tree_N = tree_N ;
water_N = water_N ;
wife_N = regN "femme" feminine ;
wind_N = regN "vent" masculine ;
wing_N = regN "aile" feminine ;
woman_N = woman_N ;
worm_N = regN "ver" masculine ;
year_N = regN "an" masculine ; --- année
-- Verbs
bite_V = UseV2 mordre_V2 ;
blow_V = regV "souffler" ;
breathe_V = regV "respirer" ;
burn_V = regV "brûler" ;
come_V = venir_V ;
count_V = regV "conter" ;
cut_V = regV "tailler" ;
die_V = mourir_V ;
dig_V = regV "creuser" ;
drink_V = UseV2 boire_V2 ;
eat_V = regV "manger" ;
fall_V = regV "tomber" ;
fear_V = UseV2 craindre_V2 ;
fight_V = regV "lutter" ;
float_V = regV "flotter" ;
flow_V = regV "couler" ;
fly_V = regV "voler" ;
freeze_V = reg3V "geler" "gèle" "gèlera" ;
give_V = regV "donner" ;
hear_V = UseV2 entendre_V2 ;
hit_V = regV "frapper" ;
hold_V = UseV2 tenir_V2 ;
hunt_V = regV "chasser" ;
kill_V = regV "tuer" ;
know_V = UseV2 savoir_V2 ; --- connaître
laugh_V = UseV2 rire_V2 ;
lie_V = UseV2 étendre_V2 ; ---- reflexive
live_V = UseV2 vivre_V2 ;
play_V = regV "jouer" ;
pull_V = regV "tirer" ;
push_V = regV "pousser" ;
rub_V = regV "frotter" ;
say_V = UseV2 dire_V2 ;
scratch_V = regV "gratter" ;
see_V = UseV2 voir_V2 ;
sew_V = UseV2 coudre_V2 ;
sing_V = regV "chanter" ;
sit_V = UseV2 asseoir_V2 ; --- refl
sleep_V = UseV2 dormir_V2 ;
smell_V = UseV2 sentir_V2 ;
spit_V = regV "cracher" ;
split_V = UseV2 fendre_V2 ;
squeeze_V = regV "serrer" ;
stab_V = regV "poignarder" ;
stand_V = reg3V "lever" "lève" "lèvera" ; ---- refl ----
suck_V = regV "sucer" ;
swell_V = regV "gonfler" ;
swim_V = regV "nager" ;
think_V = regV "penser" ;
throw_V = regV "jeter" ;
tie_V = regV "lier" ;
turn_V = regV "tourner" ;
vomit_V = regV "vomir" ;
walk_V = regV "marcher" ;
wash_V = regV "laver" ;
wipe_V = regV "essuyer" ;
}

View File

@@ -1,340 +0,0 @@
--# -path=.:../romance:../../prelude
instance SyntaxFre of SyntaxRomance = TypesFre **
open Prelude, (CO=Coordination), MorphoFre in {
flags optimize=parametrize ;
oper
nameNounPhrase = \jean ->
normalNounPhrase
(\\c => prepCase c ++ jean.s)
jean.g
Sg ;
nounPhraseOn = mkNameNounPhrase "on" Masc ;
pronImpers : NounPhrase = pronNounPhrase pronIl ;
partitiveNounPhrase = \n,vin ->
normalNounPhrase
(table {
Gen => elisDe ++ vin.s ! n ;
c => prepCase c ++ artDef vin.g n Gen ++ vin.s ! n
}
)
vin.g
n ;
chaqueDet = mkDeterminer1 Sg "chaque" ;
toutDet : Determiner =
{s = \\g => genForms "tout" "toute" ! g ++ artDef g Sg nominative ;
n = Sg
} ;
tousDet : Numeral -> Determiner = \nu ->
{s = \\g => genForms "tous" "toutes" ! g ++ artDef g Pl nominative ++ nu.s ! g ;
n = Pl
} ;
plupartDet = mkDeterminer1 Pl ["la plupart des"] ;
unDet = mkDeterminer Sg "un" "une" ;
plDet = mkDeterminer1 Pl "des" ; ---
quelDet = mkDeterminer Sg "quel" "quelle" ;
quelsDet = mkDeterminer Pl "quels" "quelles" ;
npGenPoss = \n,ton,mec ->
\\c => prepCase c ++ ton.s ! Poss n mec.g ++ mec.s ! n ;
npGenPossNum = \nu,ton,mec ->
\\c => prepCase c ++ ton.s ! Poss Pl mec.g ++ nu.s ! mec.g ++ mec.s ! Pl ;
existNounPhrase = \unemaison ->
sats2clause (
insertObject (mkSatsObject pronImpers (mkTransVerbCas verbAvoir dative) pronY)
accusative [] unemaison) ;
reflPron : Number => Person => NPFormA => Str = \\n,p =>
case p of {
P3 => table {
Ton x => prepCase x ++ "soi" ;
Aton _ => elision "s" ;
Poss Sg Masc => "son" ;
Poss Sg Fem => "sa" ;
Poss Pl _ => "ses"
} ;
_ => (personPron Masc n p).s
} ;
comparConj = elisQue ;
mkAdjDegrReg : Str -> Bool -> AdjDegr = \adj,p ->
mkAdjDegrLong (adjGrand adj) p ;
-- The commonest case for functions is common noun + "de".
funDe : CommNounPhrase -> Function = \mere ->
mere ** complementCas genitive ;
-- Chains of "dont" - "dont" do not arise.
funRelPron : Function -> RelPron -> RelPron = \mere,lequel ->
{s = table {
RComplex g n c => variants {
case mere.c of { ---
Gen => lequel.s ! RSimple Gen ++
artDef mere.g n c ++ mere.s ! n ;
_ => nonExist} ;
artDef mere.g n c ++ mere.s ! n ++
mere.s2 ++ lequel.s ! RComplex g n mere.c
} ;
_ => nonExist
} ;
g = RG mere.g
} ;
-- Verbs
negVerb = \va -> elisNe ++ va ++ "pas" ;
-- copula = \b,w -> let etre = (predVerb verbEtre).s in etre ! b ! Masc ! w ;
copula = verbEtre ;
isClitCase = \c -> case c of {
Acc => True ;
Dat => True ;
_ => False --- this is not quite correct
} ;
auxVerb ve = case ve.aux of {
AHabere => verbAvoir ;
AEsse => verbEtre
} ;
{- ---G
progressiveVerbPhrase : VerbPhrase -> VerbGroup = \vp ->
predClauseBeGroup
(complCopula (\\g,n,p =>
"en" ++ "train" ++ elisDe ++ vp.s ! VIInfinit ! g ! n ! p)) ;
-}
-- The "ne - pas" negation.
posNeg = \b,v,c ->
if_then_else Str b
(v ++ c)
(elisNe ++ v ++ "pas" ++ c) ; --- exception: infinitive!
-- Exampe: 'to be or not to be'.
etreNetre : Bool -> Verb = \b ->
{s = \\w => posNeg b (verbEtre.s ! w) [] ; aux = AHabere} ; ---- v reveals a BUG in refresh
embedConj = elisQue ;
-- Relative pronouns
identRelPron = {
s = table {
RSimple c => relPronForms ! c ;
RComplex g n c => composRelPron g n c
} ;
g = RNoGen
} ;
suchPron = telPron ;
composRelPron = lequelPron ;
allRelForms = \lequel,g,n,c ->
variants {
lequel.s ! RSimple c ;
lequel.s ! RComplex g n c
} ;
-- Interrogative pronouns
nounIntPron = \n, mec ->
{s = \\c => prepCase c ++ quelPron mec.g n ++ mec.s ! n ;
g = mec.g ;
n = n
} ;
intPronWho = \num -> {
s = \\c => prepCase c ++ "qui" ;
g = Masc ; --- can we decide this?
n = num
} ;
intPronWhat = \num -> {
s = table {
Gen => ["de quoi"] ;
Acc => ["à quoi"] ;
c => elisQue
} ;
g = Masc ; --- can we decide this?
n = num
} ;
-- Questions
intSlash = \Qui, Tuvois ->
{s = \\b,cl =>
let
qui = Tuvois.s2 ++ Qui.s ! Tuvois.c ;
tuvois = Tuvois.s ! b ! cl
in
table {
DirQ => qui ++ optStr (estCeQue Acc) ++ tuvois ;
IndirQ => ifCe Tuvois.c ++ qui ++ tuvois
}
} ;
-- An auxiliary to distinguish between
-- "je ne sais pas" ("ce qui dort" / "ce que tu veux" / "à qui tu penses").
ifCe : Case -> Str = \c -> case c of {
Nom => "ce" ;
Acc => "ce" ;
_ => []
} ;
----- moved from Morpho
--2 Articles
--
-- A macro for defining gender-dependent tables will be useful.
-- Its first application is in the indefinite article.
--
-- Notice that the plural genitive is special: "de femmes".
genForms : Str -> Str -> Gender => Str = \bon,bonne ->
table {Masc => bon ; Fem => bonne} ;
artIndef = \g,n,c -> case <n,c> of {
<Sg,_> => prepCase c ++ genForms "un" "une" ! g ;
<Pl,Gen> => elisDe ;
_ => prepCase c ++ "des"
} ;
artDef = \g,n,c -> artDefTable ! g ! n ! c ;
pronJe = mkPronoun
(elision "j")
(elision "m")
(elision "m")
"moi"
"mon" (elisPoss "m") "mes"
PNoGen -- gender cannot be known from pronoun alone
Sg
P1
Clit1 ;
pronTu = mkPronoun
"tu"
(elision "t")
(elision "t")
"toi"
"ton" (elisPoss "t") "tes"
PNoGen
Sg
P2
Clit1 ;
pronIl = mkPronoun
"il"
(elision "l")
"lui"
"lui"
"son" (elisPoss "s") "ses"
(PGen Masc)
Sg
P3
Clit2 ;
pronElle = mkPronoun
"elle"
elisLa
"lui"
"elle"
"son" (elisPoss "s") "ses"
(PGen Fem)
Sg
P3
Clit2 ;
pronNous = mkPronoun
"nous"
"nous"
"nous"
"nous"
"notre" "notre" "nos"
PNoGen
Pl
P1
Clit3 ;
pronVous = mkPronoun
"vous"
"vous"
"vous"
"vous"
"votre" "votre" "vos"
PNoGen
Pl --- depends!
P2
Clit3 ;
pronIls = mkPronoun
"ils"
"les"
"leur"
"eux"
"leur" "leur" "leurs"
(PGen Masc)
Pl
P3
Clit1 ;
pronElles = mkPronoun
"elles"
"les"
"leur"
"elles"
"leur" "leur" "leurs"
(PGen Fem)
Pl
P3
Clit1 ;
-- moved from ResFra
commentAdv = ss "comment" ;
quandAdv = ss "quand" ;
ouAdv = ss "où" ;
pourquoiAdv = ss "pourquoi" ;
etConj = ss "et" ** {n = Pl} ;
ouConj = ss "ou" ** {n = Sg} ;
etetConj = sd2 "et" "et" ** {n = Pl} ;
ououConj = sd2 "ou" "ou" ** {n = Sg} ;
niniConj = sd2 "ni" "ni" ** {n = Sg} ; --- requires ne !
siSubj = ss elisSi ** {m = Ind} ;
quandSubj = ss "quand" ** {m = Ind} ;
ouiPhr = ss ["Oui ."] ;
nonPhr = ss ["Non ."] ; --- and also Si!
negNe = elisNe ; negPas = "pas" ;
progressiveSats subj vp =
mkSatsCopula subj
(["en train"] ++ elisDe ++
vp.s ! VIInfinit ! (pgen2gen subj.g) ! subj.n ! subj.p) ;
conjunctCase : CaseA -> CaseA = \c -> c ;
}

View File

@@ -1,34 +0,0 @@
concrete TimeFre of Time = NumeralsFre **
open Prelude, MorphoFre, CategoriesFre, ParadigmsFre in {
lincat
Date = SS ;
Weekday = N ;
Hour = SS ;
Minute = SS ;
Time = SS ;
lin
DayDate day = ss (day.s ! singular) ;
DayTimeDate day time = ss (day.s ! singular ++ "à" ++ time.s) ;
FormalTime = infixSS "heures" ;
PastTime h m = ss (h.s ++ "et" ++ m.s) ;
ToTime h m = ss (h.s ++ "moins" ++ m.s) ;
ExactTime h = ss (h.s ++ "exactement") ;
NumHour n = ss (n.s ! feminine ! indep) ;
NumMinute n = ss (n.s ! feminine ! indep) ;
monday = regN "lundi" masculine ;
tuesday = regN "mardi" masculine ;
wednesday = regN "mercredi" masculine ;
thursday = regN "jeudi" masculine ;
friday = regN "vendredi" masculine ;
saturday = regN "samedi" masculine ;
sunday = regN "dimanche" masculine ;
} ;

View File

@@ -1,185 +0,0 @@
--1 French Word Classes and Morphological Parameters
--
-- This is a resource module for Italian morphology, defining the
-- morphological parameters and word classes of Italian.
-- The morphology is so far only
-- complete w.r.t. the syntax part of the resource grammar.
-- It does not include those parameters that are not needed for
-- analysing individual words: such parameters are defined in syntax modules.
instance TypesFre of TypesRomance = {
-- Now we can give values to the abstract types.
param
Case = Nom | Acc | Gen | Dat ; -- corresp. to prepositions de and à
NPForm = Ton Case | Aton Case | Poss Number Gender ;
oper
CaseA = Case ;
NPFormA = NPForm ;
nominative = Nom ;
accusative = Acc ;
genitive = Gen ;
dative = Dat ;
prepositional = accusative ;
stressed = Ton ;
unstressed = Aton ;
------------------------- move this somewhere else!
--2 Some phonology
--
--3 Elision
--
-- The phonological rule of *elision* can be defined as follows in GF.
-- There is one thing that is not treated properly: the "h aspiré",
-- which is not separated orthographically from the "h muet".
-- Our definition works correctly only for the "h muet".
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 Prepositions
--
-- The type $Cas$ in $types.Fra.gf$ has the dative and genitive
-- cases, which are relevant for pronouns and the definite article,
-- but which are otherwise expressed by prepositions.
prepCase = \c -> case c of {
Nom => [] ;
Acc => [] ;
Gen => elisDe ;
Dat => "à"
} ;
--2 Relative pronouns
--
-- The simple (atonic) relative pronoun shows genuine variation in all of the
-- cases.
relPronForms = table {
Nom => "qui" ; Gen => "dont" ; Dat => ["à qui"] ; Acc => elisQue
} ;
-- Usually the comparison forms are built by prefixing the word
-- "plus". The definite article needed in the superlative is provided in
-- $syntax.Fra.gf$.
adjCompLong : Adj -> AdjComp = \cher ->
mkAdjComp
cher.s
(\\a => "plus" ++ cher.s ! a) ;
-- Comparative adjectives are only sometimes formed morphologically
-- (actually: by different morphemes).
mkAdjComp : (_,_ : AForm => Str) -> AdjComp =
\bon, meilleur ->
{s = table {Pos => bon ; _ => meilleur}} ;
------------------------------
-- Their inflection tables has tonic and atonic forms, as well as
-- the possessive forms, which are inflected like determiners.
--
-- Example: "lui, de lui, à lui" - "il,le,lui" - "son,sa,ses".
--
-- Examples of each: "Jean" ; "je"/"te" ; "il"/"elle"/"ils"/"elles" ; "nous"/"vous".
-- The following coercions are useful:
oper
pform2case = \p -> case p of {
Ton x => x ;
Aton x => x ;
Poss _ _ => Gen
} ;
case2pform = \c -> case c of {
Nom => Aton Nom ;
Acc => Aton Acc ;
_ => Ton c
} ;
case2pformClit = \c -> case c of {
Nom => Aton Nom ;
Acc => Aton Acc ;
Dat => Aton Dat ;
_ => Ton c
} ;
-- Relative pronouns: the case-dependent parameter type.
param RelForm = RSimple Case | RComplex Gender Number Case ;
oper RelFormA = RelForm ;
npRelForm : NPFormA -> RelFormA = \np -> case np of {
Ton c => RSimple c ;
Aton c => RSimple c ;
Poss _ _ => RSimple genitive
} ;
oper RelFormA = RelForm ;
-- Verbs: conversion from full verbs to present-tense verbs.
verbPres = \aller,a -> {s = vvf aller ; aux = a} ;
vvf : (VForm => Str) -> (VF => Str) = \aller -> table {
VInfin => aller ! Inf ;
VFin (VPres Ind) n p => aller ! Indic Pres n p ;
VFin (VPres Sub) n p => aller ! Subjo SPres n p ;
VFin (VImperf Ind) n p => aller ! Indic Imparf n p ;
VFin (VImperf Sub) n p => aller ! Subjo SImparf n p ;
VFin VPasse n p => aller ! Indic Passe n p ;
VFin VFut n p => aller ! Indic Futur n p ;
VFin VCondit n p => aller ! Cond n p ;
VImper np => aller ! Imper np ;
VPart g n => aller ! Part (PPasse g n) ;
VGer => aller ! Part PPres -- *en* allant
} ;
-- The full conjunction is a table on $VForm$:
param
Temps = Pres | Imparf | Passe | Futur ;
TSubj = SPres | SImparf ;
TPart = PPres | PPasse Gender Number ;
VForm = Inf
| Indic Temps Number Person
| Cond Number Person
| Subjo TSubj Number Person
| Imper NumPersI
| Part TPart ;
-- This is the full verb type.
oper
Verbum : Type = VForm => Str ;
}

View File

@@ -0,0 +1,2 @@
concrete VerbFre of Verb = CatFre ** VerbRomance with
(ResRomance = ResFre) ;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +0,0 @@
--# -path=.:../romance:../abstract:../../prelude
concrete VerbphraseFre of Verbphrase = CategoriesFre **
VerbphraseRomance with (SyntaxRomanceVP=SyntaxFreVP) ;

View File

@@ -1,399 +0,0 @@
--# -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
concrete VerbsFre of VerbsFreAbs =
open TypesFre, MorphoFre, CategoriesFre, BeschFre in {
flags optimize=values ;
lincat
V = CategoriesFre.V ;
V2 = CategoriesFre.V2 ;
-- all verbs in classes with "er" and "finir" are omitted
lin
abattre_V2 = v_besch55 "abattre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
absoudre_V2 = v_besch72 "absoudre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
abstenir_V = v_besch23 "abstenir" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
abstraire_V2 = v_besch61 "abstraire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
accourir_V = v_besch33 "accourir" ** {aux = AHabere ; lock_V = <>} ;
accroître_V2 = v_besch73 "accroître" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
accueillir_V2 = v_besch28 "accueillir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
acquérir_V2 = v_besch24 "acquérir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
adjoindre_V2 = v_besch58 "adjoindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
admettre_V2 = v_besch56 "admettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
advenir_V = v_besch23 "advenir" ** {aux = AEsse ; lock_V = <>} ;
aller_V = v_besch22 "aller" ** {aux = AEsse ; lock_V = <>} ;
apercevoir_V2 = v_besch38 "apercevoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
apparaître_V = v_besch64 "apparaître" ** {aux = AHabere ; lock_V = <>} ;
appartenir_V2 = v_besch23 "appartenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
appendre_V2 = v_besch53 "appendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
apprendre_V2 = v_besch54 "apprendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
assaillir_V2 = v_besch29 "assaillir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
asseoir_V2 = v_besch49 "asseoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
astreindre_V2 = v_besch57 "astreindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
atteindre_V2 = v_besch57 "atteindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
attendre_V2 = v_besch53 "attendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
avoir_V2 = v_besch1 "avoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
battre_V2 = v_besch55 "battre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
boire_V2 = v_besch69 "boire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
bouillir_V2 = v_besch31 "bouillir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
braire_V = v_besch61 "braire" ** {aux = AHabere ; lock_V = <>} ;
ceindre_V2 = v_besch57 "ceindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
choir_V = v_besch52 "choir" ** {aux = AEsse ; lock_V = <>} ;
circonscrire_V2 = v_besch80 "circonscrire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
circonvenir_V2 = v_besch23 "circonvenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
clore_V2 = v_besch70 "clore" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
combattre_V2 = v_besch55 "combattre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
commettre_V2 = v_besch56 "commettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
comparaître_V2 = v_besch64 "comparaître" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
complaire_V2 = v_besch63 "complaire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
comprendre_V2 = v_besch54 "comprendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
compromettre_V2 = v_besch56 "compromettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
concevoir_V2 = v_besch38 "concevoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
conclure_V2 = v_besch71 "conclure" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
concourir_V2 = v_besch33 "concourir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
condescendre_V2 = v_besch53 "condescendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
conduire_V2 = v_besch82 "conduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
confire_V2 = v_besch81 "confire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
confondre_V2 = v_besch53 "confondre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
conjoindre_V2 = v_besch58 "conjoindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
connaître_V2 = v_besch64 "connaître" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
conquérir_V2 = v_besch24 "conquérir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
consentir_V2 = v_besch25 "consentir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
construire_V2 = v_besch82 "construire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
contenir_V2 = v_besch23 "contenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
contraindre_V2 = v_besch59 "contraindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
contrebattre_V2 = v_besch55 "contrebattre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
contredire_V2 = v_besch78 "contredire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
contrefaire_V2 = v_besch62 "contrefaire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
contrevenir_V2 = v_besch23 "contrevenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
convaincre_V2 = v_besch60 "convaincre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
convenir_V2 = v_besch23 "convenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
correspondre_V2 = v_besch53 "correspondre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
corrompre_V2 = v_besch53 "corrompre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
coudre_V2 = v_besch73 "coudre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
courir_V2 = v_besch33 "courir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
couvrir_V2 = v_besch27 "couvrir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
craindre_V2 = v_besch59 "craindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
croire_V2 = v_besch68 "croire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
croître_V = v_besch67 "croître" ** {aux = AEsse ; lock_V = <>} ;
cueillir_V2 = v_besch28 "cueillir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
cuire_V2 = v_besch82 "cuire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
débattre_V2 = v_besch55 "débattre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
débouillir_V2 = v_besch31 "débouillir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
décevoir_V2 = v_besch38 "décevoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
déchoir_V2 = v_besch52 "déchoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
déclore_V2 = v_besch70 "déclore" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
décommettre_V2 = v_besch56 "décommettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
déconfire_V2 = v_besch81 "déconfire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
découdre_V2 = v_besch73 "découdre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
découvrir_V2 = v_besch27 "découvrir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
décrire_V2 = v_besch80 "décrire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
décroître_V2 = v_besch67 "décroître" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
décuire_V2 = v_besch82 "décuire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
déduire_V2 = v_besch82 "déduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
défaillir_V = v_besch30 "défaillir" ** {aux = AHabere ; lock_V = <>} ;
défaire_V2 = v_besch62 "défaire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
défendre_V2 = v_besch53 "défendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
démentir_V2 = v_besch25 "démentir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
démettre_V2 = v_besch56 "démettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
démordre_V = v_besch53 "démordre" ** {aux = AHabere ; lock_V = <>} ;
départir_V2 = v_besch25 "départir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
dépeindre_V2 = v_besch57 "dépeindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
dépendre_V2 = v_besch53 "dépendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
déplaire_V = v_besch63 "déplaire" ** {aux = AHabere ; lock_V = <>} ;
dépourvoir_V2 = v_besch40 "dépourvoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
déprendre_V2 = v_besch54 "déprendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
désapprendre_V2 = v_besch54 "désapprendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
descendre_V2 = v_besch53 "descendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
desservir_V2 = v_besch35 "desservir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
déteindre_V2 = v_besch57 "déteindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
détendre_V2 = v_besch53 "détendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
détenir_V2 = v_besch23 "détenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
détordre_V2 = v_besch53 "détordre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
détruire_V2 = v_besch82 "détruire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
devenir_V = v_besch23 "devenir" ** {aux = AEsse ; lock_V = <>} ;
dévêtir_V2 = v_besch26 "dévêtir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
devoir_V2 = v_besch42 "devoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
dire_V2 = v_besch78 "dire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
disconvenir_V2 = v_besch23 "disconvenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
discourir_V2 = v_besch33 "discourir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
disjoindre_V2 = v_besch58 "disjoindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
disparaître_V2 = v_besch64 "disparaître" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
dissoudre_V2 = v_besch72 "dissoudre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
distendre_V2 = v_besch53 "distendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
distordre_V2 = v_besch53 "distordre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
distraire_V2 = v_besch61 "distraire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
dormir_V2 = v_besch32 "dormir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
ébattre_V = v_besch55 "ébattre" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
échoir_V2 = v_besch52 "échoir" ** {aux = AEsse ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
éclore_V2 = v_besch70 "éclore" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
éconduire_V2 = v_besch82 "éconduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
écrire_V2 = v_besch80 "écrire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
élire_V2 = v_besch77 "élire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
embatre_V2 = v_besch55 "embatre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
embattre_V2 = v_besch55 "embattre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
emboire_V = v_besch69 "emboire" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
émettre_V2 = v_besch56 "émettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
émoudre_V2 = v_besch74 "émoudre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
émouvoir_V2 = v_besch44 "émouvoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
empreindre_V2 = v_besch57 "empreindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
enceindre_V2 = v_besch57 "enceindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
enclore_V2 = v_besch70 "enclore" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
encourir_V2 = v_besch33 "encourir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
endormir_V2 = v_besch32 "endormir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
enduire_V2 = v_besch82 "enduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
enfreindre_V2 = v_besch57 "enfreindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
enfuir_V = v_besch36 "enfuir" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
enjoindre_V2 = v_besch58 "enjoindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
enquérir_V = v_besch24 "enquérir" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
entendre_V2 = v_besch53 "entendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
entr'apercevoir_V = v_besch38 "entr'apercevoir" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
entrebattre_V = v_besch55 "entrebattre" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
entre_détruire_V = v_besch82 "entre-détruire" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
entre_haïr_V = v_besch20 "entre-haïr" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
entremettre_V = v_besch56 "entremettre" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
entre_nuire_V = v_besch82 "entre-nuire" ** {aux = AHabere ; lock_V = <>} ;
entreprendre_V2 = v_besch54 "entreprendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
entretenir_V2 = v_besch23 "entretenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
entrevoir_V2 = v_besch39 "entrevoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
entrouvrir_V2 = v_besch27 "entrouvrir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
envoyer_V2 = v_besch18 "envoyer" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
épandre_V2 = v_besch53 "épandre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
éperdre_V = v_besch53 "éperdre" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
éprendre_V = v_besch54 "éprendre" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
équivaloir_V2 = v_besch47 "équivaloir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
éteindre_V2 = v_besch57 "éteindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
étendre_V2 = v_besch53 "étendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
étreindre_V2 = v_besch57 "étreindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
être_V = v_besch2 "être" ** {aux = AHabere ; lock_V = <>} ;
exclure_V2 = v_besch71 "exclure" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
extraire_V2 = v_besch61 "extraire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
faillir_V2 = v_besch30 "faillir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
faire_V2 = v_besch62 "faire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
falloir_V = v_besch46 "falloir" ** {aux = AHabere ; lock_V = <>} ;
feindre_V2 = v_besch57 "feindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
fendre_V2 = v_besch53 "fendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
fondre_V2 = v_besch53 "fondre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
forfaire_V2 = v_besch62 "forfaire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
foutre_V2 = v_besch53 "foutre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
frire_V2 = v_besch81 "frire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
fuir_V2 = v_besch36 "fuir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
geindre_V2 = v_besch57 "geindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
gésir_V2 = mkNV (conj3gésir "gésir") ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
haïr_V2 = v_besch20 "haïr" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
inclure_V2 = v_besch71 "inclure" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
induire_V2 = v_besch82 "induire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
inscrire_V2 = v_besch80 "inscrire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
instruire_V2 = v_besch82 "instruire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
interdire_V2 = v_besch78 "interdire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
interrompre_V2 = v_besch53 "interrompre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
intervenir_V = v_besch23 "intervenir" ** {aux = AEsse ; lock_V = <>} ;
introduire_V2 = v_besch82 "introduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
joindre_V2 = v_besch58 "joindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
lire_V2 = v_besch77 "lire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
luire_V = v_besch82 "luire" ** {aux = AHabere ; lock_V = <>} ;
mainmettre_V2 = v_besch56 "mainmettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
maintenir_V2 = v_besch23 "maintenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
méconnaître_V2 = v_besch64 "méconnaître" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
mécroire_V2 = v_besch68 "mécroire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
médire_V2 = v_besch78 "médire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
mentir_V2 = v_besch25 "mentir" ** {aux = AEsse ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
méprendre_V2 = v_besch54 "méprendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
messeoir_V2 = v_besch50 "messeoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
mettre_V2 = v_besch56 "mettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
mévendre_V2 = v_besch53 "mévendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
mordre_V2 = v_besch53 "mordre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
morfondre_V = v_besch53 "morfondre" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
moudre_V2 = v_besch74 "moudre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
mourir_V = v_besch34 "mourir" ** {aux = AEsse ; lock_V = <>} ;
mouvoir_V2 = v_besch44 "mouvoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
naître_V = v_besch65 "naître" ** {aux = AEsse ; lock_V = <>} ;
nuire_V2 = v_besch82 "nuire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
obtenir_V2 = v_besch23 "obtenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
obvenir_V = v_besch23 "obvenir" ** {aux = AEsse ; lock_V = <>} ;
occlure_V2 = v_besch71 "occlure" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
offrir_V2 = v_besch27 "offrir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
oindre_V2 = v_besch58 "oindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
omettre_V2 = v_besch56 "omettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
ouïr_V2 = v_besch37 "ouïr" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
ouvrir_V2 = v_besch27 "ouvrir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
paître_V2 = v_besch66 "paître" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
paître_V = v_besch66 "paître" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
paraître_V = v_besch64 "paraître" ** {aux = AHabere ; lock_V = <>} ;
parcourir_V2 = v_besch33 "parcourir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
parfondre_V2 = v_besch53 "parfondre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
partir_V = v_besch25 "partir" ** {aux = AEsse ; lock_V = <>} ;
parvenir_V = v_besch23 "parvenir" ** {aux = AEsse ; lock_V = <>} ;
peindre_V2 = v_besch57 "peindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
pendre_V2 = v_besch53 "pendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
percevoir_V2 = v_besch38 "percevoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
perdre_V2 = v_besch53 "perdre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
permettre_V2 = v_besch56 "permettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
plaindre_V2 = v_besch59 "plaindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
plaire_V2 = v_besch63 "plaire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
pleuvoir_V = v_besch45 "pleuvoir" ** {aux = AHabere ; lock_V = <>} ;
poindre_V2 = v_besch58 "poindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
pondre_V2 = v_besch53 "pondre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
pourfendre_V2 = v_besch53 "pourfendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
poursuivre_V2 = v_besch75 "poursuivre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
pourvoir_V2 = v_besch40 "pourvoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
pouvoir_V = v_besch43 "pouvoir" ** {aux = AHabere ; lock_V = <>} ;
prédire_V2 = v_besch78 "prédire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
prendre_V2 = v_besch54 "prendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
prescrire_V2 = v_besch80 "prescrire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
pressentir_V2 = v_besch25 "pressentir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
prétendre_V2 = v_besch53 "prétendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
prévaloir_V2 = v_besch47 "prévaloir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
prévenir_V2 = v_besch23 "prévenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
prévoir_V2 = v_besch39 "prévoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
produire_V2 = v_besch82 "produire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
promettre_V2 = v_besch56 "promettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
promouvoir_V2 = v_besch44 "promouvoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
proscrire_V2 = v_besch80 "proscrire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
provenir_V = v_besch23 "provenir" ** {aux = AEsse ; lock_V = <>} ;
rabattre_V2 = v_besch55 "rabattre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
raire_V2 = v_besch61 "raire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
rapprendre_V2 = v_besch54 "rapprendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
rasseoir_V2 = v_besch49 "rasseoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
réadmettre_V2 = v_besch56 "réadmettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
réapparaître_V = v_besch64 "réapparaître" ** {aux = AHabere ; lock_V = <>} ;
réapprendre_V2 = v_besch54 "réapprendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
rebattre_V2 = v_besch55 "rebattre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
recevoir_V2 = v_besch38 "recevoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
recomparaître_V2 = v_besch64 "recomparaître" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
reconduire_V2 = v_besch82 "reconduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
reconnaître_V2 = v_besch64 "reconnaître" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
reconquérir_V2 = v_besch24 "reconquérir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
reconstruire_V2 = v_besch82 "reconstruire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
recoudre_V2 = v_besch73 "recoudre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
recourir_V2 = v_besch33 "recourir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
recouvrir_V2 = v_besch27 "recouvrir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
récrire_V2 = v_besch80 "récrire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
recroître_V2 = v_besch67 "recroître" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
recueillir_V2 = v_besch28 "recueillir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
recuire_V2 = v_besch82 "recuire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
redécouvrir_V2 = v_besch27 "redécouvrir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
redéfaire_V2 = v_besch62 "redéfaire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
redescendre_V2 = v_besch53 "redescendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
redevenir_V = v_besch23 "redevenir" ** {aux = AEsse ; lock_V = <>} ;
redevoir_V2 = v_besch42 "redevoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
redire_V2 = v_besch78 "redire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
réduire_V2 = v_besch82 "réduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
réécrire_V2 = v_besch80 "réécrire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
réélire_V2 = v_besch77 "réélire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
réentendre_V2 = v_besch53 "réentendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
refaire_V2 = v_besch62 "refaire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
refendre_V2 = v_besch53 "refendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
refondre_V2 = v_besch53 "refondre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
réinscrire_V2 = v_besch80 "réinscrire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
réintroduire_V2 = v_besch82 "réintroduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
rejoindre_V2 = v_besch58 "rejoindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
relire_V2 = v_besch77 "relire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
reluire_V2 = v_besch82 "reluire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
remettre_V2 = v_besch56 "remettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
remordre_V2 = v_besch53 "remordre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
remoudre_V2 = v_besch74 "remoudre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
renaître_V2 = v_besch65 "renaître" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
rendormir_V2 = v_besch32 "rendormir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
rendre_V2 = v_besch53 "rendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
rentraire_V2 = v_besch61 "rentraire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
rentrouvrir_V2 = v_besch27 "rentrouvrir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
renvoyer_V2 = v_besch18 "renvoyer" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
repaître_V2 = v_besch66 "repaître" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
répandre_V2 = v_besch53 "répandre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
reparaître_V = v_besch64 "reparaître" ** {aux = AEsse ; lock_V = <>} ;
repartir_V = v_besch25 "repartir" ** {aux = AEsse ; lock_V = <>} ;
repeindre_V2 = v_besch57 "repeindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
rependre_V2 = v_besch53 "rependre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
repentir_V = v_besch25 "repentir" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
reperdre_V2 = v_besch53 "reperdre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
repleuvoir_V = v_besch45 "repleuvoir" ** {aux = AHabere ; lock_V = <>} ;
répondre_V2 = v_besch53 "répondre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
reprendre_V2 = v_besch54 "reprendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
reproduire_V2 = v_besch82 "reproduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
requérir_V2 = v_besch24 "requérir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
résoudre_V2 = mkNV (conj3résoudre "résoudre") ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
ressentir_V2 = v_besch25 "ressentir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
resservir_V2 = v_besch35 "resservir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
ressortir_V = v_besch25 "ressortir" ** {aux = AEsse ; lock_V = <>} ;
ressouvenir_V = v_besch23 "ressouvenir" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
restreindre_V2 = v_besch57 "restreindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
reteindre_V2 = v_besch57 "reteindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
retendre_V2 = v_besch53 "retendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
retenir_V2 = v_besch23 "retenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
retondre_V2 = v_besch53 "retondre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
retordre_V2 = v_besch53 "retordre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
retraduire_V2 = v_besch82 "retraduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
retraire_V2 = v_besch61 "retraire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
retranscrire_V2 = v_besch80 "retranscrire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
retransmettre_V2 = v_besch56 "retransmettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
rétreindre_V2 = v_besch57 "rétreindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
revaloir_V2 = v_besch47 "revaloir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
revendre_V2 = v_besch53 "revendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
revenir_V = v_besch23 "revenir" ** {aux = AEsse ; lock_V = <>} ;
revêtir_V2 = v_besch26 "revêtir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
revivre_V2 = v_besch76 "revivre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
revoir_V2 = v_besch39 "revoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
revouloir_V2 = v_besch48 "revouloir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
rire_V2 = v_besch79 "rire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
rompre_V2 = v_besch53 "rompre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
rouvrir_V2 = v_besch27 "rouvrir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
saillir_V2 = v_besch29 "saillir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
satisfaire_V2 = v_besch62 "satisfaire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
savoir_V2 = v_besch41 "savoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
secourir_V2 = v_besch33 "secourir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
séduire_V2 = v_besch82 "séduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
sentir_V2 = v_besch25 "sentir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
seoir_V = v_besch50 "seoir" ** {aux = AHabere ; lock_V = <>} ;
servir_V2 = v_besch35 "servir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
sortir_V = v_besch25 "sortir" ** {aux = AHabere ; lock_V = <>} ;
soubattre_V2 = v_besch55 "soubattre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
souffrir_V2 = v_besch27 "souffrir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
soumettre_V2 = v_besch56 "soumettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
sourire_V2 = v_besch79 "sourire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
souscrire_V2 = v_besch80 "souscrire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
sous_entendre_V2 = v_besch53 "sous-entendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
sous_tendre_V2 = v_besch53 "sous-tendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
soustraire_V2 = v_besch61 "soustraire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
soutenir_V2 = v_besch23 "soutenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
souvenir_V = v_besch23 "souvenir" ** {aux = AHabere ; s2 = [] ; lock_V = <> ; c = Acc} ;
subvenir_V2 = v_besch23 "subvenir" ** {aux = AEsse ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
suffire_V2 = v_besch81 "suffire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
suivre_V2 = v_besch75 "suivre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
surfaire_V2 = v_besch62 "surfaire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
surprendre_V2 = v_besch54 "surprendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
surproduire_V2 = v_besch82 "surproduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
surseoir_V2 = v_besch51 "surseoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
surtondre_V2 = v_besch53 "surtondre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
survenir_V = v_besch23 "survenir" ** {aux = AEsse ; lock_V = <>} ;
survivre_V2 = v_besch76 "survivre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
suspendre_V2 = v_besch53 "suspendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
taire_V2 = v_besch63 "taire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
teindre_V2 = v_besch57 "teindre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
tendre_V2 = v_besch53 "tendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
tenir_V2 = v_besch23 "tenir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Dat} ;
tondre_V2 = v_besch53 "tondre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
tordre_V2 = v_besch53 "tordre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
traduire_V2 = v_besch82 "traduire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
traire_V2 = v_besch61 "traire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
transcrire_V2 = v_besch80 "transcrire" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
transmettre_V2 = v_besch56 "transmettre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
transparaître_V = v_besch64 "transparaître" ** {aux = AHabere ; lock_V = <>} ;
tréfondre_V2 = v_besch53 "tréfondre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
tressaillir_V = v_besch29 "tressaillir" ** {aux = AHabere ; lock_V = <>} ;
vaincre_V2 = v_besch60 "vaincre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
valoir_V2 = v_besch47 "valoir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
vendre_V2 = v_besch53 "vendre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
venir_V = v_besch23 "venir" ** {aux = AEsse ; lock_V = <>} ;
vêtir_V2 = v_besch26 "vêtir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
vivre_V2 = v_besch76 "vivre" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
voir_V2 = v_besch39 "voir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Acc} ;
vouloir_V2 = v_besch48 "vouloir" ** {aux = AHabere ; s2 = [] ; lock_V2 = <> ; c = Gen} ;
}