diff options
| author | aarne <aarne@chalmers.se> | 2009-06-22 15:39:08 +0000 |
|---|---|---|
| committer | aarne <aarne@chalmers.se> | 2009-06-22 15:39:08 +0000 |
| commit | e89fdae2fa1626348d8025824a7469252fa85e42 (patch) | |
| tree | c7d46bbd0494043b4bd6f917a25a7687517d0547 /next-lib/src/french | |
| parent | 3049b59b35b25381a7c6787444165c200d66e08b (diff) | |
next-lib renamed to lib, lib to old-lib
Diffstat (limited to 'next-lib/src/french')
32 files changed, 0 insertions, 3823 deletions
diff --git a/next-lib/src/french/AdjectiveFre.gf b/next-lib/src/french/AdjectiveFre.gf deleted file mode 100644 index 28ff535b9..000000000 --- a/next-lib/src/french/AdjectiveFre.gf +++ /dev/null @@ -1,2 +0,0 @@ -concrete AdjectiveFre of Adjective = CatFre ** AdjectiveRomance with - (ResRomance = ResFre) ; diff --git a/next-lib/src/french/AdverbFre.gf b/next-lib/src/french/AdverbFre.gf deleted file mode 100644 index 0fcc12dca..000000000 --- a/next-lib/src/french/AdverbFre.gf +++ /dev/null @@ -1,2 +0,0 @@ -concrete AdverbFre of Adverb = CatFre ** AdverbRomance with - (ResRomance = ResFre) ; diff --git a/next-lib/src/french/AllFre.gf b/next-lib/src/french/AllFre.gf deleted file mode 100644 index 32f20cd4c..000000000 --- a/next-lib/src/french/AllFre.gf +++ /dev/null @@ -1,7 +0,0 @@ ---# -path=.:../romance:../abstract:../common:prelude - -concrete AllFre of AllFreAbs = - LangFre, - IrregFre, - ExtraFre - ** {} ; diff --git a/next-lib/src/french/AllFreAbs.gf b/next-lib/src/french/AllFreAbs.gf deleted file mode 100644 index 474168d53..000000000 --- a/next-lib/src/french/AllFreAbs.gf +++ /dev/null @@ -1,5 +0,0 @@ -abstract AllFreAbs = - Lang, - IrregFreAbs, - ExtraFreAbs - ** {} ; diff --git a/next-lib/src/french/BeschFre.gf b/next-lib/src/french/BeschFre.gf deleted file mode 100644 index 9903e07ec..000000000 --- a/next-lib/src/french/BeschFre.gf +++ /dev/null @@ -1,102 +0,0 @@ -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} ; - -oper conj : Str -> Verbe = conj1aimer ; --- temp. default - -oper v_nancy100inf : Str -> VerbeN = \ve -> {s = table { - VInfin _ => ve ; - _ => nonExist - } -} ; - - -oper v_besch1 : Str -> VerbeN = \s -> mkNV (conjAvoir s) ; -oper v_besch2 : Str -> VerbeN = \s -> mkNV (conjÊtre s) ; --- 3-5 not used -oper v_besch6 : Str -> VerbeN = \s -> mkNV (conj1aimer s) ; -oper v_besch7 : Str -> VerbeN = \s -> mkNV (conj1placer s) ; -oper v_besch8 : Str -> VerbeN = \s -> mkNV (conj1manger s) ; -oper v_besch9 : Str -> VerbeN = \s -> mkNV (conj1peser s) ; -oper v_besch10 : Str -> VerbeN = \s -> mkNV (conj1céder s) ; -oper v_besch11 : Str -> VerbeN = \s -> mkNV (conj1jeter s) ; -oper v_besch12 : Str -> VerbeN = \s -> mkNV (conj1jeter s) ; -oper v_besch13 : Str -> VerbeN = \s -> mkNV (conj1aimer s) ; -oper v_besch14 : Str -> VerbeN = \s -> mkNV (conj1assiéger s) ; -oper v_besch15 : Str -> VerbeN = \s -> mkNV (conj1aimer s) ; --- ? -oper v_besch16 : Str -> VerbeN = \s -> mkNV (conj1payer s) ; -oper v_besch17 : Str -> VerbeN = \s -> mkNV (conj1payer s) ; -oper v_besch18 : Str -> VerbeN = \s -> mkNV (conj1envoyer s) ; -oper v_besch19 : Str -> VerbeN = \s -> mkNV (conj2finir s) ; -oper v_besch20 : Str -> VerbeN = \s -> mkNV (conj2haïr s) ; --- oper v_besch21 : Str -> VerbeN = \s -> mkNV (conj s) ; -- not used -oper v_besch22 : Str -> VerbeN = \s -> mkNV (conj3aller s) ; -oper v_besch23 : Str -> VerbeN = \s -> mkNV (conj3tenir s) ; -oper v_besch24 : Str -> VerbeN = \s -> mkNV (conj3quérir s) ; -oper v_besch25 : Str -> VerbeN = \s -> mkNV (conj3sentir s) ; -oper v_besch26 : Str -> VerbeN = \s -> mkNV (conj3vêtir s) ; -oper v_besch27 : Str -> VerbeN = \s -> mkNV (conj3couvrir s) ; -oper v_besch28 : Str -> VerbeN = \s -> mkNV (conj3cueillir s) ; -oper v_besch29 : Str -> VerbeN = \s -> mkNV (conj3assaillir s) ; -oper v_besch30 : Str -> VerbeN = \s -> mkNV (conj3faillir s) ; -oper v_besch31 : Str -> VerbeN = \s -> mkNV (conj3bouillir s) ; -oper v_besch32 : Str -> VerbeN = \s -> mkNV (conj3dormir s) ; -oper v_besch33 : Str -> VerbeN = \s -> mkNV (conj3courir s) ; -oper v_besch34 : Str -> VerbeN = \s -> mkNV (conj3mourir s) ; -oper v_besch35 : Str -> VerbeN = \s -> mkNV (conj3sentir s) ; -oper v_besch36 : Str -> VerbeN = \s -> mkNV (conj3fuir s) ; -oper v_besch37 : Str -> VerbeN = \s -> mkNV (conj3ouïr s) ; -oper v_besch38 : Str -> VerbeN = \s -> mkNV (conj3cevoir s) ; -oper v_besch39 : Str -> VerbeN = \s -> mkNV (conj3voir s) ; -oper v_besch40 : Str -> VerbeN = \s -> mkNV (conj3pourvoir s) ; -oper v_besch41 : Str -> VerbeN = \s -> mkNV (conj3savoir s) ; -oper v_besch42 : Str -> VerbeN = \s -> mkNV (conj3devoir s) ; -oper v_besch43 : Str -> VerbeN = \s -> mkNV (conj3pouvoir s) ; -oper v_besch44 : Str -> VerbeN = \s -> mkNV (conj3mouvoir s) ; -oper v_besch45 : Str -> VerbeN = \s -> mkNV (conj3pleuvoir s) ; -oper v_besch46 : Str -> VerbeN = \s -> mkNV (conj3falloir s) ; -oper v_besch47 : Str -> VerbeN = \s -> mkNV (conj3valoir s) ; -oper v_besch48 : Str -> VerbeN = \s -> mkNV (conj3vouloir s) ; -oper v_besch49 : Str -> VerbeN = \s -> mkNV (conj3asseoir s) ; -oper v_besch50 : Str -> VerbeN = \s -> mkNV (conj3messeoir s) ; --- ? -oper v_besch51 : Str -> VerbeN = \s -> mkNV (conj3surseoir s) ; -oper v_besch52 : Str -> VerbeN = \s -> mkNV (conj3choir s) ; -oper v_besch53 : Str -> VerbeN = \s -> mkNV (conj3rendre s) ; -oper v_besch54 : Str -> VerbeN = \s -> mkNV (conj3prendre s) ; -oper v_besch55 : Str -> VerbeN = \s -> mkNV (conj3battre s) ; -oper v_besch56 : Str -> VerbeN = \s -> mkNV (conj3mettre s) ; -oper v_besch57 : Str -> VerbeN = \s -> mkNV (conj3peindre s) ; -oper v_besch58 : Str -> VerbeN = \s -> mkNV (conj3joindre s) ; -oper v_besch59 : Str -> VerbeN = \s -> mkNV (conj3craindre s) ; -oper v_besch60 : Str -> VerbeN = \s -> mkNV (conj3vaincre s) ; -oper v_besch61 : Str -> VerbeN = \s -> mkNV (conj3traire s) ; -oper v_besch62 : Str -> VerbeN = \s -> mkNV (conj3faire s) ; -oper v_besch63 : Str -> VerbeN = \s -> mkNV (conj3plaire s) ; -oper v_besch64 : Str -> VerbeN = \s -> mkNV (conj3connaître s) ; -oper v_besch65 : Str -> VerbeN = \s -> mkNV (conj3naître s) ; -oper v_besch66 : Str -> VerbeN = \s -> mkNV (conj3paître s) ; -oper v_besch67 : Str -> VerbeN = \s -> mkNV (conj3croître s) ; -oper v_besch68 : Str -> VerbeN = \s -> mkNV (conj3croire s) ; -oper v_besch69 : Str -> VerbeN = \s -> mkNV (conj3boire s) ; -oper v_besch70 : Str -> VerbeN = \s -> mkNV (conj3clore s) ; -oper v_besch71 : Str -> VerbeN = \s -> mkNV (conj3conclure s) ; -oper v_besch72 : Str -> VerbeN = \s -> mkNV (conj3absoudre s) ; -oper v_besch73 : Str -> VerbeN = \s -> mkNV (conj3coudre s) ; -oper v_besch74 : Str -> VerbeN = \s -> mkNV (conj3moudre s) ; -oper v_besch75 : Str -> VerbeN = \s -> mkNV (conj3suivre s) ; -oper v_besch76 : Str -> VerbeN = \s -> mkNV (conj3vivre s) ; -oper v_besch77 : Str -> VerbeN = \s -> mkNV (conj3lire s) ; -oper v_besch78 : Str -> VerbeN = \s -> mkNV (conj3dire s) ; -oper v_besch79 : Str -> VerbeN = \s -> mkNV (conj3rire s) ; -oper v_besch80 : Str -> VerbeN = \s -> mkNV (conj3écrire s) ; -oper v_besch81 : Str -> VerbeN = \s -> mkNV (conj3confire s) ; -oper v_besch82 : Str -> VerbeN = \s -> mkNV (conj3cuire s) ; - --- 83-99 not used - -oper v_besch100 : Str -> VerbeN = \s -> mkNV (conj s) ; --- to do -oper v_besch101 : Str -> VerbeN = \s -> mkNV (conj s) ; --- to do -} diff --git a/next-lib/src/french/CatFre.gf b/next-lib/src/french/CatFre.gf deleted file mode 100644 index a7bfdf802..000000000 --- a/next-lib/src/french/CatFre.gf +++ /dev/null @@ -1,5 +0,0 @@ ---# -path=.:../romance:../common:../abstract:../common:prelude - -concrete CatFre of Cat = CommonX - [Temp,TTAnt,Tense,TPres,TPast,TFut,TCond] - ** CatRomance with - (ResRomance = ResFre) ; diff --git a/next-lib/src/french/CompatibilityFre.gf b/next-lib/src/french/CompatibilityFre.gf deleted file mode 100644 index 89680f533..000000000 --- a/next-lib/src/french/CompatibilityFre.gf +++ /dev/null @@ -1,11 +0,0 @@ ---# -path=.:../romance:../abstract:../common - -concrete CompatibilityFre of Compatibility = CatFre ** open Prelude, CommonRomance in { - --- from Noun 19/4/2008 - -lin - NumInt n = {s = \\_ => n.s ; isNum = True ; n = Pl} ; - OrdInt n = {s = \\_ => n.s ++ "."} ; --- - -} diff --git a/next-lib/src/french/ConjunctionFre.gf b/next-lib/src/french/ConjunctionFre.gf deleted file mode 100644 index 8397e141f..000000000 --- a/next-lib/src/french/ConjunctionFre.gf +++ /dev/null @@ -1,2 +0,0 @@ -concrete ConjunctionFre of Conjunction = CatFre ** ConjunctionRomance with - (ResRomance = ResFre) ; diff --git a/next-lib/src/french/DiffFre.gf b/next-lib/src/french/DiffFre.gf deleted file mode 100644 index 4d28796b1..000000000 --- a/next-lib/src/french/DiffFre.gf +++ /dev/null @@ -1,225 +0,0 @@ ---# -path=.:../romance:../abstract:../common:prelude - -instance DiffFre of DiffRomance = open CommonRomance, PhonoFre, Prelude in { - - flags optimize=noexpand ; coding=utf8 ; --- flags optimize=all ; - - param - Prepos = P_de | P_a | PNul ; - 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 ; - CPrep PNul => [] - } ; - - 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 a.g a.n ; - ----- 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 ag an ap => <argPron ag an ap Acc,True> ; - _ => <[],False> - } ; - in - case dat of { - CPron ag an ap => let pdat = argPron ag an ap dative in case ap of { - P3 => <pacc.p1 ++ pdat,[],True> ; - _ => <pdat ++ pacc.p1,[],True> - } ; - _ => <pacc.p1, [],pacc.p2> - } ; - - infForm _ _ _ _ = True ; - --- 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 ag an ap => argPron ag an ap (cas ap Acc) ; - _ => [] - } ; - pdat = case dat of { - CPron ag an ap => argPron ag an ap (cas ap dative) ; - _ => [] - } ; - in - case dat of { - CPron _ _ P3 => <pacc ++ pdat,[]> ; - _ => <pdat ++ pacc, []> - } ; - - mkImperative b p vp = { - s = \\pol,aag => - let - num = if_then_else Number b Pl aag.n ; - agr = {g = aag.g ; n = num ; p = p} ; - verb = (vp.s ! VPImperat).fin ! agr ; - neg = vp.neg ! pol ; - hascl = False ; ----e(pronArg agr.n agr.p vp.clAcc vp.clDat).p3 ; - clpr = <[],[]> ; ----e 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 ; - - subjIf = "si" ; --- s' - - 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 = "ce" ; --- only for qui,que: 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";--# notpresent -"fusse";"fusses";"fût";"fussions";"fussiez";"fussent";--# notpresent -"fus";"fus";"fut";"fûmes";"fûtes";"furent";--# notpresent -"serai";"seras";"sera";"serons";"serez";"seront";--# notpresent -"serais";"serais";"serait";"serions";"seriez";"seraient";--# notpresent -"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"; --# notpresent -"eusse";"eusses";"eût";"eussions";"eussiez";"eussent";--# notpresent -"eus";"eus";"eut";"eûmes";"eûtes";"eurent";--# notpresent -"aurai";"auras";"aura";"aurons";"aurez";"auront";--# notpresent -"aurais";"aurais";"aurait";"aurions";"auriez";"auraient";--# notpresent -"aie";"ayons";"ayez";"eu";"eus";"eue";"eues";"ayant"];vtyp=VHabere}; - -} diff --git a/next-lib/src/french/ExtraFre.gf b/next-lib/src/french/ExtraFre.gf deleted file mode 100644 index 1877d8334..000000000 --- a/next-lib/src/french/ExtraFre.gf +++ /dev/null @@ -1,60 +0,0 @@ -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 = makeNP ["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 = makeNP ["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 - } ; - - -} diff --git a/next-lib/src/french/ExtraFreAbs.gf b/next-lib/src/french/ExtraFreAbs.gf deleted file mode 100644 index 33f518ab7..000000000 --- a/next-lib/src/french/ExtraFreAbs.gf +++ /dev/null @@ -1,34 +0,0 @@ --- 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 ; - -} diff --git a/next-lib/src/french/ExtraRomanceFre.gf b/next-lib/src/french/ExtraRomanceFre.gf deleted file mode 100644 index ba7d7b160..000000000 --- a/next-lib/src/french/ExtraRomanceFre.gf +++ /dev/null @@ -1,2 +0,0 @@ -concrete ExtraRomanceFre of ExtraRomanceAbs = CatFre ** ExtraRomance with - (ResRomance = ResFre) ; diff --git a/next-lib/src/french/GrammarFre.gf b/next-lib/src/french/GrammarFre.gf deleted file mode 100644 index c3726d163..000000000 --- a/next-lib/src/french/GrammarFre.gf +++ /dev/null @@ -1,21 +0,0 @@ ---# -path=.:../romance:../abstract:../common:prelude - -concrete GrammarFre of Grammar = - NounFre, - VerbFre, - AdjectiveFre, - AdverbFre, - NumeralFre, - SentenceFre, - QuestionFre, - RelativeFre, - ConjunctionFre, - PhraseFre, - TextX - [Temp,TTAnt,Tense,TPres,TPast,TFut,TCond], - IdiomFre, - StructuralFre - ** { - -flags startcat = Phr ; unlexer = text ; lexer = text ; - -} ; diff --git a/next-lib/src/french/IdiomFre.gf b/next-lib/src/french/IdiomFre.gf deleted file mode 100644 index e8abaac21..000000000 --- a/next-lib/src/french/IdiomFre.gf +++ /dev/null @@ -1,45 +0,0 @@ -concrete IdiomFre of Idiom = CatFre ** - open (P = ParamX), PhonoFre, MorphoFre, ParadigmsFre, Prelude in { - - flags optimize=all_subs ; - - lin - ImpersCl vp = mkClause "il" True (agrP3 Masc Sg) vp ; - GenericCl vp = mkClause "on" True (agrP3 Masc Sg) vp ; - - ExistNP np = - mkClause "il" True (agrP3 Masc Sg) - (insertClit3 "y" (insertComplement (\\_ => (np.s ! Acc).ton) (predV avoir_V))) ; - - ExistIP ip = { - s = \\t,a,p,_ => - ip.s ! Nom ++ - (mkClause "il" True (agrP3 Masc Sg) - (insertClit3 "y" (predV avoir_V))).s - ! DDir ! t ! a ! p ! Indic ---- DInv - } ; - - CleftNP np rs = mkClause elisCe True (agrP3 Masc Sg) - (insertComplement (\\_ => rs.s ! Indic ! np.a) - (insertComplement (\\_ => (np.s ! rs.c).ton) (predV copula))) ; - - CleftAdv ad s = mkClause elisCe True (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 vpr = let vp = useVP vpr in {s = - (mkImperative False P1 vp).s ! Pos ! {n = Pl ; g = Masc} --- fem - } ; - - oper - elisCe = elision "c" ; - -} - - diff --git a/next-lib/src/french/IrregFre.gf b/next-lib/src/french/IrregFre.gf deleted file mode 100644 index 748cb4361..000000000 --- a/next-lib/src/french/IrregFre.gf +++ /dev/null @@ -1,395 +0,0 @@ ---# -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} ; - -} diff --git a/next-lib/src/french/IrregFreAbs.gf b/next-lib/src/french/IrregFreAbs.gf deleted file mode 100644 index f82d7c0a0..000000000 --- a/next-lib/src/french/IrregFreAbs.gf +++ /dev/null @@ -1,391 +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 - -abstract IrregFreAbs = Cat ** { - --- all verbs in classes with "er" and "ir" like "finir" are omitted - -fun - abattre_V2 : V2 ; - absoudre_V2 : V2 ; - abstenir_V : V ; - abstraire_V2 : V2 ; - accourir_V : V ; - accroître_V2 : V2 ; - accueillir_V2 : V2 ; - acquérir_V2 : V2 ; - adjoindre_V2 : V2 ; - admettre_V2 : V2 ; - advenir_V : V ; - aller_V : V ; - apercevoir_V2 : V2 ; - apparaître_V : V ; - appartenir_V2 : V2 ; - appendre_V2 : V2 ; - apprendre_V2 : V2 ; - assaillir_V2 : V2 ; - asseoir_V2 : V2 ; - astreindre_V2 : V2 ; - atteindre_V2 : V2 ; - attendre_V2 : V2 ; - avoir_V2 : V2 ; - battre_V2 : V2 ; - boire_V2 : V2 ; - bouillir_V2 : V2 ; - braire_V : V ; - ceindre_V2 : V2 ; - choir_V : V ; - circonscrire_V2 : V2 ; - circonvenir_V2 : V2 ; - clore_V2 : V2 ; - combattre_V2 : V2 ; - commettre_V2 : V2 ; - comparaître_V2 : V2 ; - complaire_V2 : V2 ; - comprendre_V2 : V2 ; - compromettre_V2 : V2 ; - concevoir_V2 : V2 ; - conclure_V2 : V2 ; - concourir_V2 : V2 ; - condescendre_V2 : V2 ; - conduire_V2 : V2 ; - confire_V2 : V2 ; - confondre_V2 : V2 ; - conjoindre_V2 : V2 ; - connaître_V2 : V2 ; - conquérir_V2 : V2 ; - consentir_V2 : V2 ; - construire_V2 : V2 ; - contenir_V2 : V2 ; - contraindre_V2 : V2 ; - contrebattre_V2 : V2 ; - contredire_V2 : V2 ; - contrefaire_V2 : V2 ; - contrevenir_V2 : V2 ; - convaincre_V2 : V2 ; - convenir_V2 : V2 ; - correspondre_V2 : V2 ; - corrompre_V2 : V2 ; - coudre_V2 : V2 ; - courir_V2 : V2 ; - couvrir_V2 : V2 ; - craindre_V2 : V2 ; - croire_V2 : V2 ; - croître_V : V ; - cueillir_V2 : V2 ; - cuire_V2 : V2 ; - débattre_V2 : V2 ; - débouillir_V2 : V2 ; - décevoir_V2 : V2 ; - déchoir_V2 : V2 ; - déclore_V2 : V2 ; - décommettre_V2 : V2 ; - déconfire_V2 : V2 ; - découdre_V2 : V2 ; - découvrir_V2 : V2 ; - décrire_V2 : V2 ; - décroître_V2 : V2 ; - décuire_V2 : V2 ; - déduire_V2 : V2 ; - défaillir_V : V ; - défaire_V2 : V2 ; - défendre_V2 : V2 ; - démentir_V2 : V2 ; - démettre_V2 : V2 ; - démordre_V : V ; - départir_V2 : V2 ; - dépeindre_V2 : V2 ; - dépendre_V2 : V2 ; - déplaire_V : V ; - dépourvoir_V2 : V2 ; - déprendre_V2 : V2 ; - désapprendre_V2 : V2 ; - descendre_V2 : V2 ; - desservir_V2 : V2 ; - déteindre_V2 : V2 ; - détendre_V2 : V2 ; - détenir_V2 : V2 ; - détordre_V2 : V2 ; - détruire_V2 : V2 ; - devenir_V : V ; - dévêtir_V2 : V2 ; - devoir_V2 : V2 ; - dire_V2 : V2 ; - disconvenir_V2 : V2 ; - discourir_V2 : V2 ; - disjoindre_V2 : V2 ; - disparaître_V2 : V2 ; - dissoudre_V2 : V2 ; - distendre_V2 : V2 ; - distordre_V2 : V2 ; - distraire_V2 : V2 ; - dormir_V2 : V2 ; - ébattre_V : V ; - échoir_V2 : V2 ; - éclore_V2 : V2 ; - éconduire_V2 : V2 ; - écrire_V2 : V2 ; - élire_V2 : V2 ; - embatre_V2 : V2 ; - embattre_V2 : V2 ; - emboire_V : V ; - émettre_V2 : V2 ; - émoudre_V2 : V2 ; - émouvoir_V2 : V2 ; - empreindre_V2 : V2 ; - enceindre_V2 : V2 ; - enclore_V2 : V2 ; - encourir_V2 : V2 ; - endormir_V2 : V2 ; - enduire_V2 : V2 ; - enfreindre_V2 : V2 ; - enfuir_V : V ; - enjoindre_V2 : V2 ; - enquérir_V : V ; - entendre_V2 : V2 ; - entr'apercevoir_V : V ; - entrebattre_V : V ; - entre_détruire_V : V ; - entre_haïr_V : V ; - entremettre_V : V ; - entre_nuire_V : V ; - entreprendre_V2 : V2 ; - entretenir_V2 : V2 ; - entrevoir_V2 : V2 ; - entrouvrir_V2 : V2 ; - envoyer_V2 : V2 ; - épandre_V2 : V2 ; - éperdre_V : V ; - éprendre_V : V ; - équivaloir_V2 : V2 ; - éteindre_V2 : V2 ; - étendre_V2 : V2 ; - étreindre_V2 : V2 ; - être_V : V ; - exclure_V2 : V2 ; - extraire_V2 : V2 ; - faillir_V2 : V2 ; - faire_V2 : V2 ; - falloir_V : V ; - feindre_V2 : V2 ; - fendre_V2 : V2 ; - fondre_V2 : V2 ; - forfaire_V2 : V2 ; - foutre_V2 : V2 ; - frire_V2 : V2 ; - fuir_V2 : V2 ; - geindre_V2 : V2 ; - gésir_V2 : V2 ; - haïr_V2 : V2 ; - inclure_V2 : V2 ; - induire_V2 : V2 ; - inscrire_V2 : V2 ; - instruire_V2 : V2 ; - interdire_V2 : V2 ; - interrompre_V2 : V2 ; - intervenir_V : V ; - introduire_V2 : V2 ; - joindre_V2 : V2 ; - lire_V2 : V2 ; - luire_V : V ; - mainmettre_V2 : V2 ; - maintenir_V2 : V2 ; - méconnaître_V2 : V2 ; - mécroire_V2 : V2 ; - médire_V2 : V2 ; - mentir_V2 : V2 ; - méprendre_V2 : V2 ; - messeoir_V2 : V2 ; - mettre_V2 : V2 ; - mévendre_V2 : V2 ; - mordre_V2 : V2 ; - morfondre_V : V ; - moudre_V2 : V2 ; - mourir_V : V ; - mouvoir_V2 : V2 ; - naître_V : V ; - nuire_V2 : V2 ; - obtenir_V2 : V2 ; - obvenir_V : V ; - occlure_V2 : V2 ; - offrir_V2 : V2 ; - oindre_V2 : V2 ; - omettre_V2 : V2 ; - ouïr_V2 : V2 ; - ouvrir_V2 : V2 ; - paître_V2 : V2 ; - paître_V : V ; - paraître_V : V ; - parcourir_V2 : V2 ; - parfondre_V2 : V2 ; - partir_V : V ; - parvenir_V : V ; - peindre_V2 : V2 ; - pendre_V2 : V2 ; - percevoir_V2 : V2 ; - perdre_V2 : V2 ; - permettre_V2 : V2 ; - plaindre_V2 : V2 ; - plaire_V2 : V2 ; - pleuvoir_V : V ; - poindre_V2 : V2 ; - pondre_V2 : V2 ; - pourfendre_V2 : V2 ; - poursuivre_V2 : V2 ; - pourvoir_V2 : V2 ; - pouvoir_V : V ; - prédire_V2 : V2 ; - prendre_V2 : V2 ; - prescrire_V2 : V2 ; - pressentir_V2 : V2 ; - prétendre_V2 : V2 ; - prévaloir_V2 : V2 ; - prévenir_V2 : V2 ; - prévoir_V2 : V2 ; - produire_V2 : V2 ; - promettre_V2 : V2 ; - promouvoir_V2 : V2 ; - proscrire_V2 : V2 ; - provenir_V : V ; - rabattre_V2 : V2 ; - raire_V2 : V2 ; - rapprendre_V2 : V2 ; - rasseoir_V2 : V2 ; - réadmettre_V2 : V2 ; - réapparaître_V : V ; - réapprendre_V2 : V2 ; - rebattre_V2 : V2 ; - recevoir_V2 : V2 ; - recomparaître_V2 : V2 ; - reconduire_V2 : V2 ; - reconnaître_V2 : V2 ; - reconquérir_V2 : V2 ; - reconstruire_V2 : V2 ; - recoudre_V2 : V2 ; - recourir_V2 : V2 ; - recouvrir_V2 : V2 ; - récrire_V2 : V2 ; - recroître_V2 : V2 ; - recueillir_V2 : V2 ; - recuire_V2 : V2 ; - redécouvrir_V2 : V2 ; - redéfaire_V2 : V2 ; - redescendre_V2 : V2 ; - redevenir_V : V ; - redevoir_V2 : V2 ; - redire_V2 : V2 ; - réduire_V2 : V2 ; - réécrire_V2 : V2 ; - réélire_V2 : V2 ; - réentendre_V2 : V2 ; - refaire_V2 : V2 ; - refendre_V2 : V2 ; - refondre_V2 : V2 ; - réinscrire_V2 : V2 ; - réintroduire_V2 : V2 ; - rejoindre_V2 : V2 ; - relire_V2 : V2 ; - reluire_V2 : V2 ; - remettre_V2 : V2 ; - remordre_V2 : V2 ; - remoudre_V2 : V2 ; - renaître_V2 : V2 ; - rendormir_V2 : V2 ; - rendre_V2 : V2 ; - rentraire_V2 : V2 ; - rentrouvrir_V2 : V2 ; - renvoyer_V2 : V2 ; - repaître_V2 : V2 ; - répandre_V2 : V2 ; - reparaître_V : V ; - repartir_V : V ; - repeindre_V2 : V2 ; - rependre_V2 : V2 ; - repentir_V : V ; - reperdre_V2 : V2 ; - repleuvoir_V : V ; - répondre_V2 : V2 ; - reprendre_V2 : V2 ; - reproduire_V2 : V2 ; - requérir_V2 : V2 ; - résoudre_V2 : V2 ; - ressentir_V2 : V2 ; - resservir_V2 : V2 ; - ressortir_V : V ; - ressouvenir_V : V ; - restreindre_V2 : V2 ; - reteindre_V2 : V2 ; - retendre_V2 : V2 ; - retenir_V2 : V2 ; - retondre_V2 : V2 ; - retordre_V2 : V2 ; - retraduire_V2 : V2 ; - retraire_V2 : V2 ; - retranscrire_V2 : V2 ; - retransmettre_V2 : V2 ; - rétreindre_V2 : V2 ; - revaloir_V2 : V2 ; - revendre_V2 : V2 ; - revenir_V : V ; - revêtir_V2 : V2 ; - revivre_V2 : V2 ; - revoir_V2 : V2 ; - revouloir_V2 : V2 ; - rire_V2 : V2 ; - rompre_V2 : V2 ; - rouvrir_V2 : V2 ; - saillir_V2 : V2 ; - satisfaire_V2 : V2 ; - savoir_V2 : V2 ; - secourir_V2 : V2 ; - séduire_V2 : V2 ; - sentir_V2 : V2 ; - seoir_V : V ; - servir_V2 : V2 ; - sortir_V : V ; - soubattre_V2 : V2 ; - souffrir_V2 : V2 ; - soumettre_V2 : V2 ; - sourire_V2 : V2 ; - souscrire_V2 : V2 ; - sous_entendre_V2 : V2 ; - sous_tendre_V2 : V2 ; - soustraire_V2 : V2 ; - soutenir_V2 : V2 ; - souvenir_V : V ; - subvenir_V2 : V2 ; - suffire_V2 : V2 ; - suivre_V2 : V2 ; - surfaire_V2 : V2 ; - surprendre_V2 : V2 ; - surproduire_V2 : V2 ; - surseoir_V2 : V2 ; - surtondre_V2 : V2 ; - survenir_V : V ; - survivre_V2 : V2 ; - suspendre_V2 : V2 ; - taire_V2 : V2 ; - teindre_V2 : V2 ; - tendre_V2 : V2 ; - tenir_V2 : V2 ; - tondre_V2 : V2 ; - tordre_V2 : V2 ; - traduire_V2 : V2 ; - traire_V2 : V2 ; - transcrire_V2 : V2 ; - transmettre_V2 : V2 ; - transparaître_V : V ; - tréfondre_V2 : V2 ; - tressaillir_V : V ; - vaincre_V2 : V2 ; - valoir_V2 : V2 ; - vendre_V2 : V2 ; - venir_V : V ; - vêtir_V2 : V2 ; - vivre_V2 : V2 ; - voir_V2 : V2 ; - vouloir_V2 : V2 ; -} diff --git a/next-lib/src/french/LangFre.gf b/next-lib/src/french/LangFre.gf deleted file mode 100644 index 3a30422cf..000000000 --- a/next-lib/src/french/LangFre.gf +++ /dev/null @@ -1,10 +0,0 @@ ---# -path=.:../romance:../abstract:../common:../prelude - -concrete LangFre of Lang = - GrammarFre, - LexiconFre - ** { - -flags startcat = Phr ; unlexer = text ; lexer = text ; - -} ; diff --git a/next-lib/src/french/LexiconFre.gf b/next-lib/src/french/LexiconFre.gf deleted file mode 100644 index b2aedcd1b..000000000 --- a/next-lib/src/french/LexiconFre.gf +++ /dev/null @@ -1,367 +0,0 @@ ---# -path=.:../romance:../common:../abstract:../../prelude - -concrete LexiconFre of Lexicon = CatFre ** - open (M = 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 ; - 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 ; - know_VS = mkVS savoir_V2 ; - 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 = M.mkOrd (regA "gauche") ; - right_Ord = M.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" ; - - john_PN = regPN "Jean" ; - question_N = regN "question" ; - ready_A = regA "prêt" ; - reason_N = regGenN "raison" feminine ; - today_Adv = mkAdv "aujourd'hui" ; - uncertain_A = regA "incertain" ; - - -} ; diff --git a/next-lib/src/french/MakeStructuralFre.gf b/next-lib/src/french/MakeStructuralFre.gf deleted file mode 100644 index 5aa94dcfe..000000000 --- a/next-lib/src/french/MakeStructuralFre.gf +++ /dev/null @@ -1,16 +0,0 @@ ---# -path=.:../romance:../common:../abstract - -resource MakeStructuralFre = open CatFre, ParadigmsFre, MorphoFre, Prelude in { - -oper - mkConj : Str -> Str -> Number -> Conj = \x,y,n -> - {s1 = x ; s2 = y ; n = n ; lock_Conj = <>} ; - mkSubj : Str -> Subj = \x -> - {s = x ; m = Indic ; lock_Subj = <>} ; - mkSubjSubj : Str -> Subj = \x -> - {s = x ; m = Conjunct ; lock_Subj = <>} ; - - mkIQuant : Str -> IQuant = \s -> - {s = \\_,_,c => prepCase c ++ s ; lock_IQuant = <>} ; - -} diff --git a/next-lib/src/french/MorphoFre.gf b/next-lib/src/french/MorphoFre.gf deleted file mode 100644 index 00dd88536..000000000 --- a/next-lib/src/french/MorphoFre.gf +++ /dev/null @@ -1,1241 +0,0 @@ ---# -path=.:../romance:../common:../../prelude - ---1 A Simple French Resource Morphology --- --- Aarne Ranta 2002 -- 2005 --- --- This resource morphology contains definitions needed in the resource --- syntax. To build a lexicon, it is better to use $ParadigmsFre$, which --- gives a higher-level access to this module. - -resource MorphoFre = CommonRomance, ResFre ** - open PhonoFre, Prelude, Predef in { - -flags optimize=noexpand ; - ---2 Front vowels --- --- In verb conjugation, we will need the concept of frontal vowel. - -oper - voyelleFront : Strs = strs {"e" ; "i" ; "y" ; "é" ; "è"} ; - preVoyelleFront : (_,_ : Str) -> Str = \t,u -> pre {t ; u / voyelleFront} ; - - ---2 Nouns --- --- The following macro is useful for creating the forms of number-dependent --- tables, such as common nouns. - - numForms : Str -> Str -> Number => Str = \bon,bons -> - table {Sg => bon ; Pl => bons} ; - --- For example, the regular noun forms are defined as follows: - - nomReg : Str -> Number => Str = \bu -> numForms bu (bu + "s") ; - --- 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} ; - - mkCNomIrreg : Str -> Str -> Gender -> CNom = \mec,mecs -> - mkCNom (numForms mec mecs) ; - - mkCNomReg : Str -> Gender -> CNom = \mec -> - mkCNom (nomReg mec) ; - - mkCNomNiveau : Str -> Gender -> CNom = \niveau -> - mkCNomIrreg niveau (niveau + "x") ; - - mkCNomCheval : Str -> Gender -> CNom = \cheval -> - let {cheva = Predef.tk 1 cheval} in - mkCNomIrreg cheval (cheva + "ux") ; - - mkCNomInvar : Str -> Gender -> CNom = \cas -> - mkCNomIrreg cas cas ; - - mkNomReg : Str -> Gender -> CNom = \cas -> - let cass = case Predef.dp 2 cas of { - "al" => init cas + "ux" ; - "au" => cas + "x" ; - "eu" => cas + "x" ; - "ou" => cas + "x" ; - _ => case last cas of { - "s" => cas ; - "x" => cas ; - "z" => cas ; - _ => cas + "s" - } - } - in mkCNomIrreg cas cass ; - - ---2 Adjectives --- --- Adjectives are conveniently seen as gender-dependent nouns. --- Here are some patterns. First one that describes the worst case. - - mkAdj : (_,_,_,_ : Str) -> Adj = \vieux,vieuxs,vieille,vieillement -> - {s = table { - AF Masc n => numForms vieux vieuxs ! n ; - AF Fem n => nomReg vieille ! n ; - AA => vieillement - } - } ; - --- Then the regular and invariant patterns. - - adjReg : Str -> Gender => Number => Str = \bu -> table { - Masc => (mkNomReg bu Masc).s ; - Fem => nomReg (case last bu of { - "e" => bu ; - _ => bu + "e" - }) - } ; - - adjInvar : Str -> Gender => Number => Str = \bien -> - \\_,_ => bien ; - --- Adjectives themselves are records. Here the most common cases: - - adjGrand : Str -> Adj = \grand -> - let grande = case last grand of { - "e" => grand ; - _ => grand + "e" - } - in - mkAdj grand (grand + "s") grande (grande + "ment") ; - --- Masculine form used for adverbial; also covers "carré". - - adjJoli : Str -> Adj = \joli -> - mkAdj joli (joli + "s") (joli + "e") (joli + "ment") ; - - adjHeureux : Str -> Adj = \heureux -> - let {heureu = Predef.tk 1 heureux} in - mkAdj heureux heureux (heureu+"se") (heureu+"sement") ; - - adjBanal : Str -> Adj = \banal -> - let {bana = Predef.tk 1 banal} in - mkAdj banal (bana + "ux") (banal+"e") (banal+"ement") ; - - adjJeune : Str -> Adj = \jeune -> - mkAdj jeune (jeune+"s") jeune (jeune+"ment") ; - - adjIndien : Str -> Adj = \indien -> - mkAdj indien (indien+"s") (indien+"ne") (indien+"nement") ; - - adjFrancais : Str -> Adj = \francais -> - mkAdj francais francais (francais+"e") (francais+"ement") ; - - adjCher : Str -> Adj = \cher -> - let {ch = Predef.tk 2 cher} in - mkAdj cher (cher + "s") (ch + "ère") (ch + "èrement") ; - - mkAdjReg : Str -> Adj = \creux -> - case Predef.dp 3 creux of { - "eux" => adjHeureux creux ; - _ => case Predef.dp 2 creux of { - "al" => adjBanal creux ; - "en" => adjIndien creux ; - "on" => adjIndien creux ; - "er" => adjCher creux ; - _ => case Predef.dp 1 creux of { - "s" => adjFrancais creux ; - "x" => adjFrancais creux ; - "e" => adjJeune creux ; - "é" => adjJoli creux ; - "i" => adjJoli creux ; - _ => adjGrand creux - } - } - } ; - - ---2 Personal pronouns --- --- All the eight personal pronouns can be built by the following macro. --- The use of "en" as atonic genitive is debatable. - - mkPronoun : (_,_,_,_,_,_,_ : Str) -> - Gender -> Number -> Person -> Pronoun = - \il,le,lui,Lui,son,sa,ses,g,n,p -> - let - alui : Case -> Str = \x -> prepCase x ++ Lui ; - in { - s = table { - Nom => {c1 = [] ; c2 = [] ; comp = il ; ton = Lui} ; - Acc => {c1 = le ; c2 = [] ; comp = [] ; ton = Lui} ; - CPrep P_a => {c1 = [] ; c2 = lui ; comp = [] ; ton = alui (CPrep P_a)} ; - c => {c1 = [] ; c2 = [] ; comp, ton = alui c} - } ; - poss = \\n,g => case <n,g> of { - <Sg,Masc> => son ; - <Sg,Fem> => sa ; - _ => ses - } ; - a = {g = g ; n = n ; p = p} ; - hasClit = True - } ; - - elisPoss : Str -> Str = \s -> - pre { - voyelle => s + "on" ; - _ => s + "a" - } ; - - ---2 Determiners --- --- Determiners, traditionally called indefinite pronouns, are inflected --- in gender and number. It is usually enough to give the two singular --- forms to form the plurals. - - pronForms : Str -> Str -> Gender -> Number -> Str = \tel,telle,g,n -> case g of { - Masc => nomReg tel ! n ; - Fem => nomReg telle ! 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"). - - estCeQue : Case -> Str = \c -> - "est-ce" ++ case c of { - Nom => "qui" ; - Acc => elisQue ; - _ => nonExist --- dont? - } ; - - ---2 Verbs - ---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. - - Affixe : Type = Person => Str ; - - lesAffixes : (_,_,_ : Str) -> Affixe = \x,y,z -> table { - P1 => x ; - P2 => y ; - P3 => z - } ; - --- Much of variation can be described in terms of affix sets: - - affixSgE : Affixe = lesAffixes "e" "es" "e" ; - - affixSgS : Affixe = lesAffixes "s" "s" "t" ; - - affixSgSsansT : Affixe = lesAffixes "s" "s" [] ; - - affixSgX : Affixe = lesAffixes "x" "x" "t" ; - - affixPlOns : Affixe = lesAffixes "ons" "ez" "ent" ; - - affixSgAi : Affixe = lesAffixes "ai" "as" "a" ; - - affixSgAis : Affixe = \\p => "ai" + affixSgS ! p ; - - affixPlIons : Affixe = table { - P3 => "aient" ; - p => "i" + affixPlOns ! p - } ; - --- Often affix sets come in pairs, for the singular and the plural. - - affixImparf : Number => Affixe = table { - Sg => affixSgAis ; - Pl => affixPlIons - } ; - - affixFutur : Number => Affixe = table { - Sg => affixSgAi ; - Pl => table { - P3 => "ont" ; - p => affixPlOns ! p - } - } ; - - affixSPres : Number => Affixe = table { - Sg => affixSgE ; - Pl => table { - P3 => "ent" ; - p => affixPlIons ! p - } - } ; - - affixPlMes : (_,_ : Str) -> Affixe = - \è, â -> lesAffixes (â + "mes") (â + "tes") (è + "rent") ; - - affixPasseAi : Number => Affixe = table { - Sg => affixSgAi ; - Pl => affixPlMes "è" "â" - } ; - - affixPasseS : (i,î : Str) -> Number => Affixe = \i,î -> table { - Sg => table {p => i + affixSgS ! p} ; - Pl => affixPlMes i î - } ; - - affixSImparfSse : (i,î : Str) -> Number => Affixe = \i,î -> table { - Sg => table { - P3 => î + "t" ; - p => i + "ss" + affixSgE ! p - } ; - Pl => table {p => i + "ss" + affixSPres ! Pl ! p} - } ; - - AffixPasse : Type = {ps : Number => Affixe ; si : Number => Affixe} ; - - affixPasse : (_,_ : Str) -> AffixPasse = \i, î -> - {ps = affixPasseS i î ; si = affixSImparfSse i î} ; - - affixPasseA : AffixPasse = {ps = affixPasseAi ; si = affixSImparfSse "a" "â"} ; - - affixPasseI : AffixPasse = affixPasse "i" "î" ; - - affixPasseU : AffixPasse = affixPasse "u" "û" ; - - affixPasseNonExist : AffixPasse = - let {aff : Number => Affixe = - table {_ => lesAffixes nonExist nonExist nonExist}} in - {ps = aff ; si = aff} ; - - affixImper : NumPersI => Str = table { - SgP2 => "e" ; - PlP1 => "ons" ; - PlP2 => "ez" - } ; - - formesPresAi : (v,all : Str) -> Number => Affixe = \v,all -> table { - Sg => \\p => v + affixSgAi ! p ; - Pl => table { - P3 => v + "ont" ; - p => all + affixPlOns ! p - } - } ; - ---3 Macros for the complete conjugation type --- --- The type $VForm$ has 55 forms, as defined in $types.Fra.gf$. --- The worst-case macro takes 11 stems and two affix sets. --- (We will actually never need all of these at the same time.) - - Verbe : Type = VForm => Str ; - - verbAffixes : - (a,b,c,d,e,f,g,h,i,j,k : Str) -> Affixe -> AffixPasse -> Verbe = - \tien, ten, tienn, t, tiendr, soi, soy, soie, tenu, tenus, tenir -> - \affpres, affpasse -> - table { - Inf => tenir ; - 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 ; - Subjo SImparf n p => t + affpasse.si ! n ! p ; - Imper SgP2 => soie ; - Imper p => soy + affixImper ! p ; - Part PPres => ten + "ant" ; - Part (PPasse Masc Sg) => tenu ; - Part (PPasse Fem Sg) => tenu + "e" ; - Part (PPasse Masc Pl) => tenus ; - Part (PPasse Fem Pl) => tenu + "es" - } ; - --- Almost always seven stems are more than enough. - - verbHabituel : - (a,b,c,d,e,f,g : Str) -> Affixe -> AffixPasse -> Verbe = - \tien, ten, tienn, t, tiendr, tenu, tenir -> - \affpres, affpasse -> - verbAffixes tien ten tienn t tiendr tienn ten - (tien + affpres ! P1) tenu (tenu+"s") tenir affpres affpasse ; - ---3 The first conjugation --- --- There is quite some phonologically explained variation in the first conjugation. --- The worst case has three different stems. - - auxConj1 : Str -> Str -> Str -> Verbe = \jet, jett, jeter -> - verbHabituel jett jet jett jet jeter (jet+"é") (jet+"er") affixSgE affixPasseA ; - - conj1aimer : Str -> Verbe = \aimer -> - let {aim = troncVerb aimer} in - auxConj1 aim aim aimer ; - - conj1céder : Str -> Verbe = \céder -> - let { - ced = troncVerb céder ; - d = Predef.dp 1 ced ; - c = Predef.tk 2 ced ; - cèd = c + "è" + d ; - céd = c + "é" + d - } - in auxConj1 céd cèd céder ; - - conj1peser : Str -> Verbe = \céder -> ---- ? a verifier - let { - ced = troncVerb céder ; - d = Predef.dp 1 ced ; - c = Predef.tk 2 ced ; - cèd = c + "è" + d ; - céd = c + "e" + d - } - in auxConj1 céd cèd céder ; - - conj1jeter : Str -> Verbe = \jeter -> - let { - jet = troncVerb jeter ; - jett = jet + Predef.dp 1 jet - } - in auxConj1 jet jett (jett + "er") ; - - conj1placer : Str -> Verbe = \placer -> - let { - pla = Predef.tk 3 placer ; - plac = preVoyelleFront (pla+"ç") (pla+"c") - } in - auxConj1 plac plac placer ; - - conj1manger : Str -> Verbe = \manger -> - let { - mang = Predef.tk 2 manger ; - mange = preVoyelleFront (mang+"e") mang - } in - auxConj1 mange mange manger ; - - conj1assiéger : Str -> Verbe = \assiéger -> - let {assi = Predef.tk 4 assiéger} in - auxConj1 (preVoyelleFront (assi+"ége") (assi+"ég")) (assi+"èg") assiéger ; - - conj1payer : Str -> Verbe = \payer -> - let {pa = Predef.tk 3 payer} in - auxConj1 (pa + "y") (pa + "i") (pa + "ier") ; - - conj1envoyer : Str -> Verbe = \envoyer -> - let {renv = Predef.tk 4 envoyer} in - auxConj1 (renv + "oy") (renv + "oi") (renv + "err") ; - --- This is a collective dispatcher. - - mkVerbReg : Str -> Verbe = \parler -> - case parler of { - _ + "ir" => conj2finir parler ; - _ + "re" => conj3rendre parler ; - _ + "éger" => conj1assiéger parler ; - _ + ("eler" | "eter") => conj1jeter parler ; - _ + "éder" => conj1céder parler ; - _ + "cer" => conj1placer parler ; - _ + "ger" => conj1manger parler ; - _ + "yer" => conj1payer parler ; - _ => conj1aimer parler - } ; - -{- - let - e = last (Predef.tk 4 parler) ; - c = last (Predef.tk 3 parler) ; - verb_é = pbool2bool (occur "é" (e + last (Predef.tk 3 parler))) ; - verb_e = andB (pbool2bool (occur e "e")) (pbool2bool (occur c "cmnprsv")) - in - case Predef.dp 4 parler of { - "éger" => conj1assiéger parler ; - "eler" => conj1jeter parler ; - "eter" => conj1jeter parler ; - _ => case verb_é of { - True => conj1céder parler ; - _ => case verb_e of { ----- True => conj1peser parler ; - False | _ => case Predef.dp 3 parler of { - "cer" => conj1placer parler ; - "ger" => conj1manger parler ; - "yer" => conj1payer parler ; - _ => case Predef.dp 2 parler of { - "ir" => conj2finir parler ; - "re" => conj3rendre parler ; - _ => conj1aimer parler - } - } - } - } - } ; --} - --- The following can be more reliable. - - mkVerb3Reg : Str -> Str -> Str -> Verbe = \jeter,jette,jettera -> - auxConj1 - (Predef.tk 2 jeter) - (Predef.tk 1 jette) - (Predef.tk 1 jettera) ; - ---3 The second conjugation --- --- There are just two different cases. - - conj2finir : Str -> Verbe = \finir -> - let { - fin = troncVerb finir ; - fini = fin + "i" ; - finiss = fin + "iss" - } in - verbHabituel fini finiss finiss fin finir fini finir affixSgS affixPasseI ; - - conj2haïr : Str -> Verbe = \haïr -> - let {ha = troncVerb haïr ; - hai = ha + "i" ; - haï = ha + "ï" ; - haiss = ha + "ïss" - } in - verbHabituel hai haiss haiss ha haïr haï haïr affixSgS (affixPasse "ï" "ï") ; - - ---3 The third conjugation --- --- This group is very heterogeneous. Most verbs have "re" in the infinitive, --- but the first example does not! - - conj3tenir : Str -> Verbe = \tenir -> - let {t = Predef.tk 4 tenir} in - verbHabituel - (t+"ien") (t+"en") (t+"ienn") t (t+"iendr") (t+"enu") tenir - affixSgS (affixPasse "in" "în") ; - --- Many verbs have "is" in the past participle. But there is so much variation --- that the worst-case macro needs seven forms. - - auxConj3is : (_,_,_,_,_,_,_ : Str) -> Verbe = - \quier, quér, quièr, qu, querr, quis, quiss -> - verbAffixes - quier quér quièr qu querr quièr quér - (quier + "s") quis quiss (quér + "ir") affixSgS affixPasseI ; - - auxConj3ir : (_,_,_ : Str) -> Verbe = \sen, sent, i -> - auxConj3is sen sent sent sent (sent+"ir") (sent+i) (sent+i+"s") ; - - conj3quérir : Str -> Verbe = \quérir -> - let {qu = Predef.tk 4 quérir} in - auxConj3is (qu+"ier") (qu+"ér") (qu+"ièr") qu (qu+"err") (qu+"is") (qu+"is") ; - - conj3sentir : Str -> Verbe = \sentir -> - let { - sent = troncVerb sentir ; - sen = Predef.tk 1 sent - } in - auxConj3ir sen sent "i" ; - - conj3vêtir : Str -> Verbe = \vêtir -> - let { - s = Predef.tk 5 vêtir ; - vet = auxConj3ir "vêt" "vêt" "u" - } in - table { - Indi Presn Sg P3 => s + "vêt" ; - p => s + vet ! p - }; - - auxConj3vrir : (_,_,_ : Str) -> Verbe = \ouvr, i, ouvert -> - verbAffixes - ouvr ouvr ouvr ouvr (ouvr + i + "r") ouvr ouvr - (ouvr + "e") ouvert (ouvert + "s") (ouvr + "ir") affixSgE affixPasseI ; - - conj3couvrir : Str -> Verbe = \couvrir -> - let {couv = Predef.tk 3 couvrir} in - auxConj3vrir (couv+"r") "i" (couv+"ert") ; - - conj3cueillir : Str -> Verbe = \cueillir -> - let {cueill = troncVerb cueillir} in - auxConj3vrir cueill "e" (cueill + "i") ; - - conj3assaillir : Str -> Verbe = \assaillir -> - let {assaill = troncVerb assaillir} in - auxConj3vrir assaill "i" (assaill + "i") ; - --- The verb "faillir" has lots of alternatives forms. - - conj3faillir : Str -> Verbe = \faillir -> - let { - fa = Predef.tk 5 faillir ; - faudr = fa + "udr" ; - tfa = conj3assaillir faillir - } in - table { - Indi Presn Sg p => fa + "u" + affixSgX ! p ; - Subjo SPres n p => fa + variants {"illiss" ; "ill"} + affixSPres ! 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 - }; - - conj3bouillir : Str -> Verbe = \bouillir -> - let { - bou = Predef.tk 5 bouillir ; - tbou = conj3assaillir bouillir - } in - table { - Indi Presn Sg p => bou + affixSgS ! p ; - Imper SgP2 => bou + "s" ; - p => tbou ! p - }; - --- Notice that here we don't need another conjugation, as Bescherelle does. - - conj3dormir : Str -> Verbe = conj3sentir ; - --- The verbs "mourir" and "courir" have much in common, except the first two --- persons in the present indicative singular, and the past participles. - - auxConj3ourir : (_,_,_ : Str) -> Verbe = \meur, mour, mort -> - verbAffixes - meur mour meur mour (mour + "r") meur mour - (meur + "s") mort (mort + "s") (mour + "ir") affixSgS affixPasseU ; - - conj3courir : Str -> Verbe = \courir -> - let {cour = troncVerb courir} in - auxConj3ourir cour cour (cour + "u") ; - - conj3mourir : Str -> Verbe = \mourir -> - let {m = Predef.tk 5 mourir} in - auxConj3ourir (m + "eur") (m + "our") (m + "ort") ; - --- A little auxiliary to cover "fuir" and "ouïr". --- *N.B.* some alternative forms for "ouïr" are still missing. - - auxConj3ui : AffixPasse -> (_,_,_ : Str) -> Verbe = \affpasse, o, ou, ouï -> - let {oi : Str = o + "i" ; oy : Str = o + "y" ; ouïr : Str = ouï + "r"} in - verbHabituel oi oy oi ou ouïr ouï ouïr affixSgS affpasse ; - - conj3fuir : Str -> Verbe = \fuir -> - let {fu = troncVerb fuir} in - auxConj3ui affixPasseI fu fu (fu + "i") ; - - conj3ouïr : Str -> Verbe = \ouir -> - let {o = Predef.tk 3 ouir} in - auxConj3ui (affixPasse "ï" "ï") o (o + "u") (o + "uï") ; - --- The verb "gésir" lacks many forms. - - conj3gésir : Str -> Verbe = \gésir -> - let {g = Predef.tk 4 gésir} in - table { - Inf => g + "ésir" ; - 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 - } ; - --- Here is an auxiliary for a large, and heterogeneous, group of verbs whose --- infinitive ends in "oir". It has two special cases, depending on the ending --- of the first two persions in the present indicative singular. - - auxConj3oir : Affixe -> AffixPasse -> (_,_,_,_,_,_,_,_ : Str) -> Verbe = - \affpres, affpasse -> - \peu, pouv, peuv, p, pourr, veuill, voul, v -> - let {pu : Str = p + "u"} in - verbAffixes - peu pouv peuv p pourr veuill voul (peu+affpres!P1) pu (pu+"s") (v+"oir") - affpres affpasse ; - - auxConj3usX : (_,_,_,_,_,_,_,_ : Str) -> Verbe = - auxConj3oir affixSgX affixPasseU ; - auxConj3usS : (_,_,_,_,_,_,_,_ : Str) -> Verbe = - auxConj3oir affixSgS affixPasseU ; - - conj3cevoir : Str -> Verbe = \cevoir -> - let {re = Predef.tk 6 cevoir} in - auxConj3usS (re+"çoi") (re+"cev") (re+"çoiv") (re+"ç") - (re+"cevr") (re+"çoiv") (re+"cev") (re+"cev") ; - - conj3voir : Str -> Verbe = \voir -> - let { - v = Predef.tk 3 voir ; - voi = v + "oi" - } in - auxConj3oir - affixSgS affixPasseI voi (v + "oy") voi v (v + "err") voi (v + "oy") v ; - - conj3pourvoir : Str -> Verbe = \pourvoir -> - let { - pourv = Predef.tk 3 pourvoir ; - pourvoi = pourv + "oi" ; - pourvoy = pourv + "oy" - } in - auxConj3usS pourvoi pourvoy pourvoi pourv pourvoir pourvoi pourvoy pourv ; - - conj3savoir : Str -> Verbe = \savoir -> - let { - s = Predef.tk 5 savoir ; - tsavoir = auxConj3usS "ai" "av" "av" "" "aur" "ach" "ach" "av" - } in - table { - Imper p => s + "ach" + affixImper ! p ; - Part PPres => s + "achant" ; - p => s + tsavoir ! p - } ; - - conj3devoir : Str -> Verbe = \devoir -> - let { - s = Predef.tk 6 devoir ; - tdevoir = auxConj3usS "doi" "dev" "doiv" "d" "devr" "doiv" "dev" "dev" - } in - table { - Part (PPasse Masc Sg) => s + "dû" ; - p => s + tdevoir ! p - } ; - - conj3pouvoir : Str -> Verbe = \pouvoir -> - let { - p = Predef.tk 6 pouvoir ; - tpouvoir = auxConj3usX "eu" "ouv" "euv" "" "ourr" "uiss" "uiss" "ouv" - } in - table { - Indi Presn Sg P1 => p + variants {"eux" ; "uis"} ; - t => p + tpouvoir ! t - } ; - - conj3mouvoir : Str -> Verbe = \mouvoir -> - let { - s = Predef.tk 7 mouvoir ; - mu = adjReg "mû" ; - tmouvoir = auxConj3usS "meu" "mouv" "meuv" "m" "mouvr" "meuv" "mouv" "mouv" - } in - table { - Part (PPasse g n) => s + mu ! g ! n ; - p => s + tmouvoir ! p - } ; - - auxConj3seul3sg : (_,_,_,_,_ : Str) -> Verbe = - \faut, fall, pl, faudr, faill -> table { - Inf => fall + "oir" ; - 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" ; - Part (PPasse g n) => adjReg (pl + "u") ! g ! n ; - _ => nonExist - } ; - - conj3pleuvoir : Str -> Verbe = \pleuvoir -> - let { - pleuv = Predef.tk 3 pleuvoir ; - pl = Predef.tk 3 pleuv - } in - auxConj3seul3sg (pl + "eut") pleuv pl (pleuv + "r") pleuv ; - - conj3falloir : Str -> Verbe = \falloir -> - let { - fa = Predef.tk 5 falloir ; - fau = fa + "u" ; - fall = Predef.tk 3 falloir - } in - auxConj3seul3sg (fau + "t") fall fall (fau + "dr") (fa + "ill") ; - - conj3valoir : Str -> Verbe = \valoir -> - let { - va = Predef.tk 4 valoir ; - val = va + "l" - } in - auxConj3usX (va + "u") val val val (va + "udr") (va + "ill") val val ; - - conj3vouloir : Str -> Verbe = \vouloir -> - let { - v = Predef.tk 6 vouloir ; - vo = v + "o" ; - voul = vo + "ul" ; - veul = v + "eul" - } in - auxConj3usX (v + "eu") voul veul voul (vo + "udr") (v + "euill") voul voul ; - --- The following two are both "asseoir" in the Bescherelle, which however --- points out that the latter conjugation has an infinitive form without "e" --- since the orthographic rectifications of 1990. - - conj3asseoir : Str -> Verbe = \asseoir -> - let { - ass = Predef.tk 4 asseoir ; - tasseoir = auxConj3is "ied" "ey" "ey" "" "iér" "is" "is" - } in - table { - Inf => ass + "eoir" ; - Indi Presn Sg P3 => ass + "ied" ; - t => ass + tasseoir ! t - } ; - - conj3assoir : Str -> Verbe = \assoir -> - let { - ass = Predef.tk 3 assoir ; - tassoir = auxConj3is "oi" "oy" "oi" "" "oir" "is" "is" - } in - table { - Inf => ass + variants {"oir" ; "eoir"} ; - t => ass + tassoir ! t - } ; - - conj3seoir : Str -> Verbe = \seoir -> - let { - s = Predef.tk 4 seoir ; - tseoir = conj3asseoir seoir - } in - table { - 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 ; - Imper _ => nonExist ; - Part PPres => s + "éant" ; - t => tseoir ! t - } ; - --- Here we don't need a new conjugation. - - conj3messeoir : Str -> Verbe = \messeoir -> - let {tmesseoir = conj3seoir messeoir} in - table { - Part (PPasse _ _) => nonExist ; - p => tmesseoir ! p - } ; - - conj3surseoir : Str -> Verbe = \surseoir -> - let { - surs = Predef.tk 4 surseoir ; - tsurseoir = auxConj3is "oi" "oy" "oi" "" "eoir" "is" "is" - } in - table { - Inf => surseoir ; - t => surs + tsurseoir ! t - } ; - --- Here we interpolate and include the imperfect and subjunctive forms, --- which Bescherelle leaves out. - - conj3choir : Str -> Verbe = \choir -> - let { - e = Predef.tk 5 choir ; - tchoir = - auxConj3usS "choi" "choy" "choi" "ch" - (variants {"choir" ; "cherr"}) "choi" "choy" "ch" - } in - \\p => e + tchoir ! p ; - - conj3échoir : Str -> Verbe = \échoir -> - let {techoir = conj3choir échoir} in - table { - Indi _ _ P1 => nonExist ; - Indi _ _ P2 => nonExist ; - Indi Presn Pl P3 => Predef.tk 3 échoir + variants {"oient" ; "éent"} ; - Subjo _ _ P1 => nonExist ; - Subjo _ _ P2 => nonExist ; - Condi _ P1 => nonExist ; - Condi _ P2 => nonExist ; - Imper _ => nonExist ; - Part PPres => Predef.tk 3 échoir + "éant" ; - t => techoir ! t - } ; - --- Verbs with the infinitive ending "re" are a major group within the third --- conjugation. The worst-case macro takes 2 sets of affixes and 7 stems. - - auxConj3re : Affixe -> AffixPasse -> (_,_,_,_,_,_,_ : Str) -> Verbe = - \affpr, affp -> \prend, pren, prenn, pr, prendr, pris, priss -> - verbAffixes prend pren prenn pr prendr prenn pren - (prend + affpr ! P1) pris priss (prendr + "e") affpr affp ; - - auxConj3tre : (_,_ : Str) -> Verbe = \bat, batt -> - auxConj3re affixSgSsansT affixPasseI - bat batt batt batt (batt + "r") (batt + "u") (batt + "us") ; - - conj3rendre : Str -> Verbe = \rendre -> - let {rend = troncVerb rendre} in - auxConj3tre rend rend ; - - conj3battre : Str -> Verbe = \battre -> - let {bat = Predef.tk 3 battre} in - auxConj3tre bat (bat + "t") ; - - conj3prendre : Str -> Verbe = \prendre -> - let {pr = Predef.tk 5 prendre} in - auxConj3re - affixSgSsansT affixPasseI (pr + "end") (pr + "en") - (pr + "enn") pr (pr + "endr") (pr + "is") (pr + "is") ; - - conj3mettre : Str -> Verbe = \mettre -> - let {m = Predef.tk 5 mettre ; met = m + "et"} in - auxConj3re - affixSgSsansT affixPasseI met (met + "t") - (met + "t") m (met + "tr") (m + "is") (m + "is") ; - - conj3peindre : Str -> Verbe = \peindre -> - let {pe = Predef.tk 5 peindre ; peign = pe + "ign"} in - auxConj3re - affixSgS affixPasseI - (pe + "in") peign peign peign (pe + "indr") (pe + "int") (pe + "ints") ; - --- We don't need a separate conjugation for "joindre" and "craindre". - - conj3joindre = conj3peindre ; - - conj3craindre = conj3peindre ; - - conj3vaincre : Str -> Verbe = \vaincre -> - let { - vainc = troncVerb vaincre ; - vainqu = Predef.tk 1 vainc + "qu" - } in - auxConj3re - affixSgSsansT affixPasseI - vainc vainqu vainqu vainqu (vainc + "r") (vainc + "u") (vainc + "us") ; - - conj3traire : Str -> Verbe = \traire -> - let { - tra = Predef.tk 3 traire ; - trai = tra + "i" ; - tray = tra + "y" - } in - auxConj3re - affixSgS affixPasseNonExist - trai tray trai [] (trai + "r") (trai + "t") (trai + "ts") ; - --- The verb "faire" has a great many irregularities. Following Bescherelle, --- we have left out the plural 2nd person variant "faisez", which is a --- 'grossier barbarisme'. - - conj3faire : Str -> Verbe = \faire -> - let { - fai = troncVerb faire ; - fais = fai + "s" ; - f = Predef.tk 2 fai ; - tfaire = auxConj3re - affixSgS affixPasseI - fai fais (f + "ass") f (f + "er") (fai + "t") (fai + "ts") - } in - table { - Inf => faire ; - 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 - } ; - - auxConj3oire : (_,_,_,_ : Str) -> Verbe = \boi, buv, boiv, b -> - auxConj3re - affixSgS affixPasseU boi buv boiv b (boi + "r") (b + "u") (b + "us") ; - - auxConj3ît : Verbe -> Str -> Verbe = \conj,plaît -> - table { - Indi Presn Sg P3 => plaît ; - t => conj ! t - } ; - - conj3plaire : Str -> Verbe = \plaire -> - let { - pl = Predef.tk 4 plaire ; - tplaire = auxConj3oire (pl + "ai") (pl + "ais") (pl + "ais") pl - } in - auxConj3ît tplaire (pl + "aît") ; - - conj3connaître : Str -> Verbe = \connaître -> - let { - conn = Predef.tk 5 connaître ; - connaiss = conn + "aiss" ; - tconnaitre = - auxConj3re - affixSgS affixPasseU (conn + "ai") connaiss connaiss - conn (conn + "aîtr") (conn + "u") (conn + "us") - } in - auxConj3ît tconnaitre (conn + "aît") ; - - conj3naître : Str -> Verbe = \naître -> - let { - n = Predef.tk 5 naître ; - tnaitre = auxConj3re - affixSgS affixPasseI - (n + "ai") (n + "aiss") (n + "aiss") (n + "aqu") - (n + "aîtr") (n + "é") (n + "és") - } in - auxConj3ît tnaitre (n + "aît") ; - --- The conjugation of "paître" is defective in a curious way, especially --- if compared with "repaître". According to Bescherelle, the invariable --- past participle is only used as a term of "fauconnerie" (one would expect it --- to be defective rather than invariable). - - conj3paître : Str -> Verbe = \paître -> - let {tpaitre = conj3connaître paître} in - table { - Indi Passe _ _ => nonExist ; - Subjo SImparf _ _ => nonExist ; - Part (PPasse _ _) => Predef.tk 5 paître + "u" ; - p => tpaitre ! p - } ; - - conj3repaître = conj3connaître ; - - conj3croître : Str -> Verbe = \croître -> - let {cr = Predef.tk 5 croître} in - auxConj3re - affixSgS (affixPasse "û" "û") (cr + "oî") (cr + "oiss") - (cr + "oiss") cr (cr + "oîtr") (cr + "û") (cr + "ûs") ; - - conj3croire : Str -> Verbe = \croire -> - let {cr = Predef.tk 4 croire} in - auxConj3oire (cr + "oi") (cr + "oy") (cr + "oi") cr ; - - conj3boire : Str -> Verbe = \boire -> - let {b = Predef.tk 4 boire} in - auxConj3oire (b + "oi") (b + "uv") (b + "oiv") b ; - --- The verb "clore" shows a systematic absence of past forms, --- including the imperfect indicative. What is more capricious, is the absence --- of the plural first and second persons in the present indicative and --- the imperative. - - conj3clore : Str -> Verbe = \clore -> - let { - clo = troncVerb clore ; - clos = clo + "s" ; - tclore = auxConj3re - affixSgS affixPasseNonExist clo clos clos - nonExist (clo + "r") clos clos - } in - table { - 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 - } ; - - conj3conclure : Str -> Verbe = \conclure -> - let { - conclu = troncVerb conclure ; - concl = Predef.tk 1 conclu - } in - auxConj3re - affixSgS affixPasseU - conclu conclu conclu concl (conclu + "r") conclu (conclu + "s") ; - - conj3absoudre : Str -> Verbe = \absoudre -> - let { - abso = Predef.tk 4 absoudre ; - tabsoudre = conj3résoudre absoudre - } in - table { - Indi Passe _ _ => nonExist ; - Subjo SImparf _ _ => nonExist ; - Part (PPasse Masc _) => abso + "us" ; - Part (PPasse Fem n) => nomReg (abso + "ute") ! n ; - p => tabsoudre ! p - } ; - - conj3résoudre : Str -> Verbe = \résoudre -> - let {reso = Predef.tk 4 résoudre} in - auxConj3re - affixSgS affixPasseU (reso + "u") (reso + "lv") (reso + "lv") - (reso + "l") (reso + "udr") (reso + "lu") (reso + "lus") ; - - conj3coudre : Str -> Verbe = \coudre -> - let { - cou = Predef.tk 3 coudre ; - cous = cou + "s" - } in - auxConj3re - affixSgSsansT affixPasseI - (cou +"d") cous cous cous (cou + "dr") (cous + "u") (cous + "us") ; - - conj3moudre : Str -> Verbe = \moudre -> - let { - mou = Predef.tk 3 moudre ; - moul = mou + "l" - } in - auxConj3re - affixSgSsansT affixPasseU - (mou + "d") moul moul moul (mou + "dr") (moul + "u") (moul + "us") ; - - conj3suivre : Str -> Verbe = \suivre -> - let { - suiv = troncVerb suivre ; - sui = Predef.tk 1 suiv ; - suivi = suiv + "i" - } in - auxConj3re - affixSgS affixPasseI sui suiv suiv suiv (suiv + "r") suivi (suivi+"s") ; - - conj3vivre : Str -> Verbe = \vivre -> - let { - viv = troncVerb vivre ; - vi = Predef.tk 1 viv ; - véc = Predef.tk 1 vi + "éc" - } in - auxConj3re - affixSgS affixPasseU vi viv viv véc (viv + "r") (véc + "u") (véc + "us") ; - - conj3lire : Str -> Verbe = \lire -> - let { - li = troncVerb lire ; - lis = li + "s" ; - l = Predef.tk 1 li - } in - auxConj3re affixSgS affixPasseU li lis lis l (li + "r") (l + "u") (l + "us") ; - - conj3dire : Str -> Verbe = \dire -> - let { - di = troncVerb dire ; - dis = di + "s" ; - dit = di + "t" ; - d = Predef.tk 1 di ; - tdire = auxConj3re - affixSgS affixPasseI di dis dis d (di + "r") dit (dit+"s") - } in - table { - Indi Presn Pl P2 => di + "tes" ; - Imper PlP2 => di + "tes" ; - t => tdire ! t - } ; - - conj3rire : Str -> Verbe = \rire -> - let { - ri = troncVerb rire ; - r = Predef.tk 1 ri - } in - auxConj3re affixSgS affixPasseI ri ri ri r (ri + "r") ri (ri+"s") ; - - auxConj3scrire : (_,_,_,_: Str) -> Verbe = \ecri, ecriv, ecrivi, ecrit -> - auxConj3re - affixSgS affixPasseI ecri ecriv ecriv ecrivi (ecri + "r") ecrit (ecrit+"s") ; - - conj3écrire : Str -> Verbe = \écrire -> - let {écri = troncVerb écrire} in - auxConj3scrire écri (écri + "v") (écri + "v") (écri + "t") ; - - conj3confire : Str -> Verbe = \confire -> - let {confi = troncVerb confire} in - auxConj3scrire confi (confi + "s") (Predef.tk 1 confi) (confi + "t") ; - - conj3cuire : Str -> Verbe = \cuire -> - let {cui = troncVerb cuire} in - auxConj3scrire cui (cui + "s") (cui + "s") (cui + "t") ; - - ---3 Very irregular verbs --- --- Here we cannot do even with the 'worst case macro'. - - conj3aller : Str -> Verbe = \aller -> - let { - s = Predef.tk 5 aller ; - pres = formesPresAi "v" "all" ; - taller = verbHabituel - "all" "all" "aill" "all" "ir" "allé" "aller" - affixSgS affixPasseA - } in - table { - 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 - } ; - - conjÊtre : Str -> Verbe = \etre -> - let { - s = Predef.tk 4 etre ; - sg = lesAffixes "suis" "es" "est" ; - pl = lesAffixes "sommes" "êtes" "sont" ; - tetre = verbHabituel - "soi" "soy" "soi" "f" "ser" "été" "être" affixSgS affixPasseU - } in - table { - 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 ; - Part PPres => s + "étant" ; - t => s + tetre ! t - } ; - - conjAvoir : Str -> Verbe = \avoir -> - let { - s = Predef.tk 5 avoir ; - pres = formesPresAi [] "av" ; - tavoir = verbHabituel - "ai" "ay" "ai" "e" "aur" "eu" "avoir" affixSgS affixPasseU - } in - table { - 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 ; - Imper SgP2 => s + "aie" ; - t => s + tavoir ! t - } ; - - -} diff --git a/next-lib/src/french/NounFre.gf b/next-lib/src/french/NounFre.gf deleted file mode 100644 index e79ca7477..000000000 --- a/next-lib/src/french/NounFre.gf +++ /dev/null @@ -1,4 +0,0 @@ ---# -path=.:romance:abstract:../common:prelude - -concrete NounFre of Noun = CatFre ** NounRomance with - (ResRomance = ResFre) ; diff --git a/next-lib/src/french/NumeralFre.gf b/next-lib/src/french/NumeralFre.gf deleted file mode 100644 index 73d07dfdf..000000000 --- a/next-lib/src/french/NumeralFre.gf +++ /dev/null @@ -1,180 +0,0 @@ -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 ; n : Number} -> - {s : CardOrd => DForm => Str ; inh : DForm ; n : Number} = \d -> { - s = \\co,df => let ds = d.s ! df in - case co of { - NCard _ => ds ; - NOrd _ _ => case last ds of { - "q" => ds + "uième" ; - "e" => init ds + "ième" ; - _ => ds + "ième" - } - } ; - inh = d.inh ; n = d.n - } ; - - cardOrdG : CardOrd -> (_,_,_,_,_,_ : Str) -> Str = - \co,x,xf,sm,sf,pm,pf -> case co of { - NCard Masc => x ; - NCard Fem => xf ; - NOrd Masc Sg => sm ; - NOrd Fem Sg => sf ; - NOrd Masc Pl => pm ; - NOrd Fem Pl => pf - } ; - - cardOrd : CardOrd -> Str -> Str -> Str = \co, x,y -> case co of { - NCard _ => x ; - NOrd _ _ => y - } ; - -param DForm = unit | teen | jten | ten | tenplus ; -param Place = indep | postpo | attr ; - -lincat - Digit = {s : CardOrd => DForm => Str ; inh : DForm ; n : Number} ; - Sub10 = {s : CardOrd => (DForm * Place) => Str ; inh : Number} ; - Sub100 = {s : CardOrd => Place => Str ; n : Number} ; - Sub1000 = {s : CardOrd => Place => Str ; n : Number} ; - Sub1000000 = {s : CardOrd => Str ; n : Number} ; - -lin num x0 = x0 ; - -lin n2 = - digitPl {inh = unit ; n = Sg ; s = table {unit => "deux" ; teen => "douze" ; jten => "vingt" ; ten => "vingt" ; tenplus => "vingt"}} ; -lin n3 = - digitPl {inh = unit ; n = Sg ; s = table {unit => "trois" ; teen => "treize" ; jten => "trente" ; ten => "trente" ; tenplus => "trente"}} ; -lin n4 = - digitPl {inh = unit ; n = Sg ; s = table {unit => "quatre" ; teen => "quatorze" ; jten => "quarante" ; ten => "quarante" ; tenplus => "quarante"}} ; -lin n5 = - digitPl {inh = unit ; n = Sg ; s = table {unit => "cinq" ; teen => "quinze" ; jten => "cinquante" ; ten => "cinquante" ; tenplus => "cinquante"}} ; -lin n6 = - digitPl {inh = unit ; n = Sg ; s = table {unit => "six" ; teen => "seize" ; jten => "soixante" ; ten => "soixante" ; tenplus => "soixante"}} ; -lin n7 = - digitPl {inh = teen ; n = Sg ; s = table {unit => "sept" ; teen => "dix-sept" ; jten => "soixante-dix" ; ten => "soixante-dix" ; tenplus => "soixante"}} ; -lin n8 = - digitPl {inh = unit ; n = Pl ; s = table {unit => "huit" ; teen => "dix-huit" ; jten => "quatre-vingts" ; ten => "quatre-vingt" ; tenplus => "quatre-vingt"}} ; -lin n9 = - digitPl {inh = teen ; n = 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} => - cardOrdG g "un" "une" "premier" "première" "premiers" "premières" ; - {p1 = unit ; p2 = postpo} => - cardOrdG g "un" "une" "unième" "unième" "unième" "unième" ; - {p1 = unit ; p2 = attr} => [] ; - {p1 = teen ; p2 = indep | postpo} => cardOrd g "onze" "onzième" ; - {p1 = teen ; p2 = attr} => [] ; - {p1 = jten ; p2 = indep | postpo} => dix ; - {p1 = jten ; p2 = attr} => [] ; - {p1 = ten ; p2 = indep | postpo} => dix ; - {p1 = ten ; p2 = attr} => [] ; - {p1 = tenplus ; p2 = indep | postpo} => dix ; - {p1 = tenplus ; p2 = attr} => []} ; - n = Sg} ; -lin pot0 d = - {inh = Pl ; s = \\g => table { - {p1 = unit ; p2 = indep | postpo} => d.s ! g ! unit ; - {p1 = unit ; p2 = attr} => d.s ! g ! unit ; - {p1 = teen ; p2 = indep | postpo} => d.s ! g ! teen ; - {p1 = teen ; p2 = attr} => d.s ! g ! teen ; - {p1 = jten ; p2 = indep | postpo} => d.s ! g ! jten ; - {p1 = jten ; p2 = attr} => d.s ! g ! jten ; - {p1 = ten ; p2 = indep | postpo} => d.s ! g ! ten ; - {p1 = ten ; p2 = attr} => d.s ! g ! ten ; - {p1 = tenplus ; p2 = indep | postpo} => 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 | postpo => d.s ! g ! teen ; attr => d.s ! g ! teen} ; n = Pl} ; -lin pot0as1 n = - {s = \\g => table { - p@(indep | postpo) => n.s ! g ! {p1 = unit ; p2 = p} ; - attr => n.s ! g ! {p1 = unit ; p2 = attr}} ; n = n.inh} ; -lin pot1 d = - {s = \\g => table {indep | postpo => d.s ! g ! jten ; attr => d.s ! g ! ten} - ; n = Pl} ; -lin pot1plus d e = - {s = \\g => table { - p@(indep | postpo) => (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.n ; p2 = - e.inh}) ++ e.s ! g ! {p1 = d.inh ; p2 = p} ; - 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.n ; p2 = e.inh}) ++ e.s ! g ! {p1 = d.inh ; p2 = - indep}} ; n = Pl} ; -lin pot1as2 n = n ; -lin pot2 d = - {s = \\g => table {indep | postpo => (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 { - attr => (d.s ! NCard Masc ! {p1 = unit ; p2 = attr}) ++ "cent" ++ e.s ! g ! indep ; - p => (d.s ! NCard Masc ! {p1 = unit ; p2 = attr}) ++ "cent" ++ e.s ! g ! p - } ; - 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 ! postpo ; n = - Pl} ; - - --- numerals as sequences of digits - - lincat - Dig = TDigit ; - - lin - IDig d = d ; - - IIDig d i = { - s = \\o => d.s ! NCard Masc ++ i.s ! o ; - n = Pl - } ; - - D_0 = mkDig "0" ; - D_1 = mk3Dig "1" "1er" Sg ; ---- gender - D_2 = mk2Dig "2" "2ème" ; - D_3 = mk2Dig "3" "3ème" ; - D_4 = mkDig "4" ; - D_5 = mkDig "5" ; - D_6 = mkDig "6" ; - D_7 = mkDig "7" ; - D_8 = mkDig "8" ; - D_9 = mkDig "9" ; - - oper - mk2Dig : Str -> Str -> TDigit = \c,o -> mk3Dig c o Pl ; - mkDig : Str -> TDigit = \c -> mk2Dig c (c + "ème") ; - - mk3Dig : Str -> Str -> Number -> TDigit = \c,o,n -> { - s = table {NCard _ => c ; NOrd _ _ => o} ; ---- gender - n = n - } ; - - TDigit = { - n : Number ; - s : CardOrd => Str - } ; - -} diff --git a/next-lib/src/french/ParadigmsFre.gf b/next-lib/src/french/ParadigmsFre.gf deleted file mode 100644 index d20fc134b..000000000 --- a/next-lib/src/french/ParadigmsFre.gf +++ /dev/null @@ -1,446 +0,0 @@ ---# -path=.:../romance:../common:../abstract:../../prelude - ---1 French Lexical Paradigms --- --- Aarne Ranta 2001 - 2006 --- --- 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. --- --- Closed categories (determiners, pronouns, conjunctions) are --- accessed through the resource syntax API, $Structural.gf$. --- --- The main difference with $MorphoFre.gf$ is that the types --- referred to are compiled resource grammar types. We have moreover --- had the design principle of always having existing forms, rather --- than stems, as string arguments of the paradigms. --- --- The structure of functions for each word class $C$ is the following: --- first we give a handful of patterns that aim to cover all --- regular cases. Then we give a worst-case function $mkC$, which serves as an --- escape to construct the most irregular words of type $C$. --- However, this function should only seldom be needed: we have a --- separate module [``IrregFre`` ../../french/IrregFre.gf], --- which covers all irregularly inflected verbs. - -resource ParadigmsFre = - open - (Predef=Predef), - Prelude, - MorphoFre, - CatFre in { - - flags optimize=all ; - ---2 Parameters --- --- To abstract over gender names, we define the following identifiers. - -oper - Gender : Type ; - - masculine : Gender ; - feminine : Gender ; - --- To abstract over number names, we define the following. - - Number : Type ; - - singular : Number ; - plural : Number ; - --- Prepositions used in many-argument functions are either strings --- (including the 'accusative' empty string) or strings that --- amalgamate with the following word (the 'genitive' "de" and the --- 'dative' "à"). - - accusative : Prep ; - genitive : Prep ; - dative : Prep ; - - mkPrep : Str -> Prep ; - - ---2 Nouns - - mkN : overload { - --- The regular function uses heuristics to compute the --- plural and the gender from the singular. 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. - - mkN : (cheval : Str) -> N ; - --- Adding gender information widens the scope of the regular pattern. - - mkN : (foie : Str) -> Gender -> N ; - --- In the worst case, both singular and plural forms and the gender are needed. - - mkN : (oeil,yeux : Str) -> Gender -> N ; - ---3 Compound nouns --- --- Some nouns are ones where the first part is inflected as a noun but --- the second part is not inflected. e.g. "numéro de téléphone". --- They could be formed in syntax, but we give a shortcut here since --- they are frequent in lexica. - - mkN : N -> Str -> N - } ; - - - - ---3 Relational nouns --- --- Relational nouns ("fille de x") need a case and a preposition. - - mkN2 : N -> Prep -> N2 ; - --- The most common cases are the genitive "de" and the dative "à", --- with the empty preposition. - - deN2 : N -> N2 ; - aN2 : N -> N2 ; - --- Three-place relational nouns ("la connection de x à y") need two prepositions. - - mkN3 : N -> 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. "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. - --- ---3 Proper names and noun phrases --- --- Proper names need a string and a gender. If no gender is given, the --- feminine is used for strings ending with "e", the masculine for other strings. - - mkPN : overload { - mkPN : Str -> PN ; - mkPN : Str -> Gender -> PN - } ; - - - ---2 Adjectives - - mkA : overload { - --- For regular adjectives, all forms are derived from the --- masculine singular. The heuristic takes into account certain --- deviant endings: "banal-banale-banaux", "chinois-chinoise-chinois", --- "heureux-heureuse-heureux", "italien-italienne", "jeune-jeune", --- "amer-amère", "carré- - -carrément", "joli- - -joliment". - - mkA : (cher : Str) -> A ; - --- Often just the feminine singular is deviant. - - mkA : (sec,seche : Str) -> A ; - --- This is the worst-case paradigm for the positive forms. - - mkA : (banal,banale,banaux,banalement : Str) -> A ; - --- If comparison forms are irregular (i.e. not formed by "plus", e.g. --- "bon-meilleur"), the positive and comparative can be given as separate --- adjectives. - - mkA : A -> A -> A - } ; - --- The functions create by default postfix adjectives. To switch --- them to prefix ones (i.e. ones placed before the noun in --- modification, as in "petite maison"), the following function is --- provided. - - prefixA : A -> A ; - - ---3 Two-place adjectives --- --- Two-place adjectives need a preposition for their second argument. - - mkA2 : A -> Prep -> A2 ; - - ---2 Adverbs - --- Adverbs are not inflected. Most lexical ones have position --- after the verb. - - mkAdv : Str -> Adv ; - --- Some appear next to the verb (e.g. "toujours"). - - mkAdV : Str -> AdV ; - --- Adverbs modifying adjectives and sentences can also be formed. - - mkAdA : Str -> AdA ; - - ---2 Verbs --- --- Irregular verbs are given in the module $IrregFre$. --- If a verb should be missing in that list, the module --- $BeschFre$ gives all the patterns of the "Bescherelle" book. --- --- Regular verbs are ones with the infinitive "er" or "ir", the --- latter with plural present indicative forms as "finissons". --- The regular verb function in the first conjugation recognizes --- these endings, as well as the variations among --- "aimer, céder, placer, peser, jeter, placer, manger, assiéger, payer". --- --- Sometimes, however, it is not predictable which variant of the "er" --- conjugation is to be selected. Then it is better to use the function --- that gives the third person singular present indicative and future --- (("il") "jette", "jettera") as second argument. - - mkV : overload { - mkV : (finir : Str) -> V ; - mkV : (jeter,jette,jettera : Str) -> V ; - --- The $IrregFre$ list gives some verbs as two-place. These verbs can be --- reused as one-place verbs. - - mkV : V2 -> V - } ; - --- The function $mkV$ gives the default compound auxiliary "avoir". --- To change it to "être", use the following function. - - etreV : V -> V ; - --- This function turns a verb into reflexive, which implies the auxiliary "être". - - reflV : V -> V ; - - ---3 Two-place verbs --- --- Two-place verbs need a preposition, except the special case with direct object. --- (transitive verbs). - - mkV2 = overload { - mkV2 : Str -> V2 = \s -> dirV2 (regV s) ; - mkV2 : V -> V2 = dirV2 ; - mkV2 : V -> Prep -> V2 = mmkV2 - } ; - - ---3 Three-place verbs --- --- Three-place (ditransitive) verbs need two prepositions, of which --- the first one or both can be absent. - - mkV3 : overload { - mkV3 : V -> V3 ; -- donner,_,_ - mkV3 : V -> Prep -> V3 ; -- placer,_,dans - mkV3 : V -> Prep -> Prep -> V3 -- parler, à, de - } ; - ---3 Other complement patterns --- --- Verbs and adjectives can take complements such as sentences, --- questions, verb phrases, and adjectives. - - mkV0 : V -> V0 ; - mkVS : V -> VS ; - mkV2S : V -> 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 -> Prep -> Prep -> V2V ; - mkVA : V -> VA ; - mkV2A : V -> Prep -> Prep -> V2A ; - mkVQ : V -> VQ ; - mkV2Q : V -> Prep -> V2Q ; - - mkAS : A -> AS ; - mkA2S : A -> Prep -> A2S ; - mkAV : A -> Prep -> AV ; - mkA2V : A -> Prep -> Prep -> A2V ; - --- Notice: categories $AS, A2S, AV, A2V$ are just $A$, --- and the second argument is given as an adverb. Likewise --- $V0$ is just $V$. - - V0 : Type ; - AS, A2S, AV, A2V : Type ; - ---. ---2 Definitions of the paradigms --- --- The definitions should not bother the user of the API. So they are --- hidden from the document. - - - Gender = MorphoFre.Gender ; - Number = MorphoFre.Number ; - masculine = Masc ; - feminine = Fem ; - singular = Sg ; - plural = Pl ; - - Preposition = Compl ; - accusative = complAcc ** {lock_Prep = <>} ; - genitive = complGen ** {lock_Prep = <>} ; - dative = complDat ** {lock_Prep = <>} ; - mkPrep p = {s = p ; c = CPrep PNul ; isDir = False ; lock_Prep = <>} ; - - --- obsolete - Preposition : Type ; - mkPreposition : Str -> Preposition ; - mkPreposition = mkPrep ; - - regGenN : Str -> Gender -> N ; - regN : Str -> N ; - mk2N : (oeil,yeux : Str) -> Gender -> N ; - mk2N x y g = mkCNomIrreg x y 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 : N -> Str -> N ; - compN x y = {s = \\n => x.s ! n ++ y ; g = x.g ; lock_N = <>} ; - - mkN = overload { - mkN : Str -> N = regN ; - mkN : Str -> Gender -> N = regGenN ; - mkN : (oeil,yeux : Str) -> Gender -> N = mk2N ; - mkN : N -> Str -> N = compN - } ; - - - mkN2 = \n,p -> n ** {lock_N2 = <> ; c2 = p} ; - deN2 n = mkN2 n genitive ; - aN2 n = mkN2 n dative ; - mkN3 = \n,p,q -> n ** {lock_N3 = <> ; c2 = p ; c3 = q} ; - - regPN x = mk2PN x g where { - g = case last x of { - "e" => feminine ; - _ => masculine - } - } ; - - mkPN = overload { - mkPN : Str -> PN = regPN ; - mkPN : Str -> Gender -> PN = \x,g -> {s = x ; g = g} ** {lock_PN = <>} ; - } ; - - mk4A a b c d = compADeg {s = \\_ => (mkAdj a c b d).s ; isPre = False ; lock_A = <>} ; - regA a = compADeg {s = \\_ => (mkAdjReg a).s ; isPre = False ; lock_A = <>} ; - prefA a = {s = a.s ; isPre = True ; lock_A = <>} ; - - mkA2 a p = a ** {c2 = p ; lock_A2 = <>} ; - - mkA = overload { - mkA : Str -> A = regA ; - mkA : (sec,seche : Str) -> A = \sec,seche -> mk4A sec seche (sec + "s") (seche + "ment") ; - mkA : (banal,banale,banaux,banalement : Str) -> A = mk4A ; - mkA : A -> A -> A = mkADeg - }; - - prefixA a = {s = a.s ; isPre = True ; lock_A = <>} ; - - mkAdv x = ss x ** {lock_Adv = <>} ; - mkAdV x = ss x ** {lock_AdV = <>} ; - mkAdA x = ss x ** {lock_AdA = <>} ; - - regV x = let v = vvf (mkVerbReg x) in {s = v ; 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 = <>} ; - - mmkV3 v p q = v ** {c2 = p ; c3 = q ; lock_V3 = <>} ; - dirV3 v p = mmkV3 v accusative p ; - dirdirV3 v = dirV3 v dative ; - - mkV3 = overload { - mkV3 : V -> V3 = dirdirV3 ; -- donner,_,_ - mkV3 : V -> Prep -> V3 = dirV3 ; -- placer,_,sur - mkV3 : V -> Prep -> Prep -> V3 = mmkV3 -- parler, à, de - } ; - - V0 : Type = V ; - AS, AV : Type = A ; - A2S, A2V : Type = A2 ; - - mkV0 v = v ** {lock_V0 = <>} ; - mkVS v = v ** {m = \\_ => Indic ; lock_VS = <>} ; ---- more moods - mkV2S v p = mmkV2 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 q = mmkV3 v p q ** {lock_V2V = <>} ; - mkVA v = v ** {lock_VA = <>} ; - mkV2A v p q = mmkV3 v p q ** {lock_V2A = <>} ; - mkVQ v = v ** {lock_VQ = <>} ; - mkV2Q v p = mmkV2 v p ** {lock_V2Q = <>} ; - - mkAS v = v ** {lock_AS = <>} ; ---- more moods - mkA2S v p = mkA2 v p ** {lock_A2S = <>} ; - mkAV v p = v ** {c = p.p1 ; s2 = p.p2 ; lock_AV = <>} ; - mkA2V v p q = mkA2 v p ** {s3 = q.p2 ; c3 = q.p1 ; lock_A2V = <>} ; - ---------------------------- obsolete - - makeNP : Str -> Gender -> Number -> NP ; - makeNP x g n = {s = (pn2np {s=x;g= g}).s; a = agrP3 g n ; hasClit = False} ** {lock_NP = <>} ; - regPN : Str -> PN ; - mk2PN : Str -> Gender -> PN = \x,g -> {s = x ; g = g} ** {lock_PN = <>} ; - - mkADeg : A -> A -> A ; - compADeg : A -> A ; - - regA : Str -> A ; - mk4A : (banal,banale,banaux,banalement : Str) -> A ; - - prefA : A -> A ; - - 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 = <>} ; - - mkV = overload { - mkV : Str -> V = regV ; - mkV : (jeter,jette,jettera : Str) -> V = reg3V ; - mkV : V2 -> V = v2V - } ; - - regV : Str -> V ; - reg3V : (jeter,jette,jettera : Str) -> V ; - - mmkV2 : V -> Prep -> V2 ; - mmkV2 v p = v ** {c2 = p ; lock_V2 = <>} ; - dirV2 : V -> V2 = \v -> mmkV2 v accusative ; - v2V : V2 -> V ; - v2V v = v ** {lock_V = <>} ; - - mmkV3 : V -> Prep -> Prep -> V3 ; -- parler, à, de - dirV3 : V -> Prep -> V3 ; -- donner,_,à - dirdirV3 : V -> V3 ; -- donner,_,_ - - -} ; diff --git a/next-lib/src/french/PhonoFre.gf b/next-lib/src/french/PhonoFre.gf deleted file mode 100644 index f2ef797fc..000000000 --- a/next-lib/src/french/PhonoFre.gf +++ /dev/null @@ -1,28 +0,0 @@ -resource PhonoFre = open Prelude in { - -flags coding=utf8 ; - -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"}} ; - -} diff --git a/next-lib/src/french/PhraseFre.gf b/next-lib/src/french/PhraseFre.gf deleted file mode 100644 index defc9fa14..000000000 --- a/next-lib/src/french/PhraseFre.gf +++ /dev/null @@ -1,2 +0,0 @@ -concrete PhraseFre of Phrase = CatFre ** PhraseRomance with - (ResRomance = ResFre) ; diff --git a/next-lib/src/french/QuestionFre.gf b/next-lib/src/french/QuestionFre.gf deleted file mode 100644 index 979b7226d..000000000 --- a/next-lib/src/french/QuestionFre.gf +++ /dev/null @@ -1,2 +0,0 @@ -concrete QuestionFre of Question = CatFre ** QuestionRomance with - (ResRomance = ResFre) ; diff --git a/next-lib/src/french/RelativeFre.gf b/next-lib/src/french/RelativeFre.gf deleted file mode 100644 index cc84b6cb1..000000000 --- a/next-lib/src/french/RelativeFre.gf +++ /dev/null @@ -1,2 +0,0 @@ -concrete RelativeFre of Relative = CatFre ** RelativeRomance with - (ResRomance = ResFre) ; diff --git a/next-lib/src/french/ResFre.gf b/next-lib/src/french/ResFre.gf deleted file mode 100644 index 3641d1da7..000000000 --- a/next-lib/src/french/ResFre.gf +++ /dev/null @@ -1,13 +0,0 @@ ---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 ; - -} ; diff --git a/next-lib/src/french/SentenceFre.gf b/next-lib/src/french/SentenceFre.gf deleted file mode 100644 index ac2fe131d..000000000 --- a/next-lib/src/french/SentenceFre.gf +++ /dev/null @@ -1,2 +0,0 @@ -concrete SentenceFre of Sentence = CatFre ** SentenceRomance with - (ResRomance = ResFre) ; diff --git a/next-lib/src/french/StructuralFre.gf b/next-lib/src/french/StructuralFre.gf deleted file mode 100644 index 5f92ccdff..000000000 --- a/next-lib/src/french/StructuralFre.gf +++ /dev/null @@ -1,193 +0,0 @@ ---# -path=.:../abstract:../romance:../common:prelude - -concrete StructuralFre of Structural = CatFre ** - open PhonoFre, MorphoFre, ParadigmsFre, IrregFre, (X = ConstructX), - MakeStructuralFre, - Prelude in { - - flags optimize=all ; coding=utf8 ; - -lin - - 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 = {s1 = [] ; s2 = "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,sp = \\_,_ => "chaque" ; n = Sg ; s2 = []} ; ---- sp - everything_NP = pn2np (mkPN ["tout"] Masc) ; - everywhere_Adv = ss "partout" ; - few_Det = {s,sp = \\g,c => prepCase c ++ "peu" ++ elisDe ; n = Pl ; s2 = []} ; ---- DEPREC first_Ord = {s = \\ag => (regA "premier").s ! Posit ! AF ag.g ag.n} ; - for_Prep = mkPreposition "pour" ; - 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 = X.mkCAdv "moins" conjThan ; - many_Det = {s,sp = \\_,c => prepCase c ++ "plusieurs" ; n = Pl ; s2 = []} ; - more_CAdv = X.mkCAdv "plus" conjThan ; - most_Predet = {s = \\_,c => prepCase c ++ ["la plupart"] ; c = CPrep P_de} ; - much_Det = {s,sp = \\_,c => prepCase c ++ "beaucoup" ++ elisDe ; n = Pl ; s2 = []} ; - must_VV = mkVV (devoir_V2 ** {lock_V = <>}) ; ----b no_Phr = ss "non" ; - no_Utt = ss "non" ; - on_Prep = mkPreposition "sur" ; ---- DEPREC 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 = {s1 = [] ; s2 = "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_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,sp = \\_,c => prepCase c ++ "quelques" ; n = Pl ; s2 = []} ; ---- sp - someSg_Det = {s,sp = \\_,c => prepCase c ++ elision "quelqu" ; n = Sg ; s2 = []} ; ----sp - something_NP = pn2np (mkPN ["quelque chose"] Masc) ; - somewhere_Adv = ss ["quelque part"] ; --- ne - pas - - that_Quant = { - s = \\_ => table { - Sg => \\g,c => prepCase c ++ - genForms (pre {"ce" ; "cet" / voyelle}) "cette" ! g ; - Pl => \\_,c => prepCase c ++ "ces" - } ; - sp = table { - Sg => \\g,c => prepCase c ++ genForms "celui-là" "celle-là" ! g ; - Pl => \\g,c => prepCase c ++ genForms "celui-là" "celle-là" ! g - } ; - s2 = [] ---- "-là" - } ; - ----b that_NP = makeNP ["cela"] Masc Sg ; - there7from_Adv = ss ["de là"] ; - there7to_Adv = ss "là" ; --- y - there_Adv = ss "là" ; - therefore_PConj = ss "donc" ; ----b these_NP = makeNP ["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 (pre {"ce" ; "cet" / voyelle}) "cette" ! g ; - Pl => \\_,c => prepCase c ++ "ces" - } ; - sp = table { - Sg => \\g,c => prepCase c ++ genForms "celui-ci" "celle-ci" ! g ; - Pl => \\g,c => prepCase c ++ genForms "celui-ci" "celle-ci" ! g - } ; - s2 = [] ---- "-ci" - } ; - ----b this_NP = pn2np (mkPN ["ceci"] Masc) ; ----b those_NP = makeNP ["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 => prepCase c ++ "quoi" ; a = a} - where {a = aagr Masc Sg} ; - whatPl_IP = - {s = \\c => prepCase c ++ "quoi" ; a = a} - where {a = aagr Masc Pl} ; - when_IAdv = ss "quand" ; - when_Subj = ss "quand" ** {m = Indic} ; - where_IAdv = ss "où" ; - which_IQuant = { - s = \\n,g,c => - prepCase c ++ aagrForms "quel" "quelle" "quels" "quelles" ! aagr g n - } ; - - 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_Utt = 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 ; - - not_Predet = {s = \\a,c => prepCase c ++ "pas" ; c = Nom} ; - - no_Quant = - let aucun : ParadigmsFre.Number => ParadigmsFre.Gender => Case => Str = table { - Sg => \\g,c => prepCase c ++ genForms "aucun" "aucune" ! g ; - Pl => \\g,c => prepCase c ++ genForms "aucuns" "aucunes" ! g ---- - } - in { - s = \\_ => aucun ; - sp = aucun ; - s2 = [] - } ; - if_then_Conj = {s1 = "si" ; s2 = "alors" ; n = Sg ; lock_Conj = <>} ; - nobody_NP = pn2np (mkPN ["personne"] Fem) ; - - nothing_NP = pn2np (mkPN "rien" Masc) ; - at_least_AdN = ss "au moins" ; - at_most_AdN = ss "au plus" ; - - except_Prep = mkPreposition "excepté" ; - - as_CAdv = X.mkCAdv "aussi" conjThan ; - - have_V2 = avoir_V2 ; - -} - diff --git a/next-lib/src/french/SymbolFre.gf b/next-lib/src/french/SymbolFre.gf deleted file mode 100644 index 3e3202f73..000000000 --- a/next-lib/src/french/SymbolFre.gf +++ /dev/null @@ -1,4 +0,0 @@ ---# -path=.:romance:abstract:common - -concrete SymbolFre of Symbol = CatFre ** SymbolRomance with - (ResRomance = ResFre) ; diff --git a/next-lib/src/french/VerbFre.gf b/next-lib/src/french/VerbFre.gf deleted file mode 100644 index 9630ec92d..000000000 --- a/next-lib/src/french/VerbFre.gf +++ /dev/null @@ -1,4 +0,0 @@ ---# -path=.:romance:abstract:../common:prelude - -concrete VerbFre of Verb = CatFre ** VerbRomance with - (ResRomance = ResFre) ; |
