Overview
Comment: | [core][fr] suggVerb(): adapt suggestions for second functions -> change parameters order [fr] suggestions |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | fr | core |
Files: | files | file ages | folders |
SHA3-256: |
6b0cfafe82c012cfb7db744bddb174a5 |
User & Date: | olr on 2021-02-01 18:29:17 |
Other Links: | manifest | tags |
Context
2021-02-02
| ||
14:05 | [fr] ajustements check-in: 715da7466d user: olr tags: trunk, fr | |
2021-02-01
| ||
18:29 | [core][fr] suggVerb(): adapt suggestions for second functions -> change parameters order [fr] suggestions check-in: 6b0cfafe82 user: olr tags: trunk, fr, core | |
2021-01-30
| ||
15:15 | [core][fr] rewriting with regex [fr] ajustements check-in: 3c8872804f user: olr tags: trunk, fr, core | |
Changes
Modified gc_lang/fr/modules-js/gce_suggestions.js from [c7763dfdd8] to [ccfb591c57].
︙ | ︙ | |||
22 23 24 25 26 27 28 | iRight = sVerb.lastIndexOf("-"); sSuffix = sVerb.slice(iRight) + sSuffix; sVerb = sVerb.slice(0, iRight); } return [sVerb, sSuffix]; } | | | 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | iRight = sVerb.lastIndexOf("-"); sSuffix = sVerb.slice(iRight) + sSuffix; sVerb = sVerb.slice(0, iRight); } return [sVerb, sSuffix]; } function suggVerb (sFlex, sWho, bVC=false, funcSugg2=null, ...args) { let sSfx; if (bVC) { [sFlex, sSfx] = splitVerb(sFlex); } let aSugg = new Set(); for (let sStem of gc_engine.oSpellChecker.getLemma(sFlex)) { let tTags = conj._getTags(sStem); |
︙ | ︙ | |||
62 63 64 65 66 67 68 | if (conj._hasConjWithTags(tTags, sTense, sWho)) { aSugg.add(conj._getConjWithTags(sStem, tTags, sTense, sWho)); } } } } if (funcSugg2) { | | | 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | if (conj._hasConjWithTags(tTags, sTense, sWho)) { aSugg.add(conj._getConjWithTags(sStem, tTags, sTense, sWho)); } } } } if (funcSugg2) { let sSugg2 = (args.length > 0) ? funcSugg2(...args) : funcSugg2(sFlex); if (sSugg2.length > 0) { aSugg.add(sSugg2); } } if (aSugg.size > 0) { if (bVC) { return Array.from(aSugg).map((sSugg) => joinVerbAndSuffix(sSugg, sSfx)).join("|"); |
︙ | ︙ | |||
222 223 224 225 226 227 228 229 230 231 232 233 234 235 | const _dQuiEst = new Map ([ ["je", ":1s"], ["j’", ":1s"], ["tu", ":2s"], ["il", ":3s"], ["on", ":3s"], ["elle", ":3s"], ["iel", ":3s"], ["nous", ":1p"], ["vous", ":2p"], ["ils", ":3p"], ["elles", ":3p"], ["iels", ":3p"] ]); function suggVerbMode (sFlex, cMode, sSuj) { let lMode; if (cMode == ":I") { lMode = [":Ip", ":Iq", ":Is", ":If"]; } else if (cMode == ":S") { lMode = [":Sp", ":Sq"]; } else if (cMode.startsWith(":I") || cMode.startsWith(":S")) { | > > | 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 | const _dQuiEst = new Map ([ ["je", ":1s"], ["j’", ":1s"], ["tu", ":2s"], ["il", ":3s"], ["on", ":3s"], ["elle", ":3s"], ["iel", ":3s"], ["nous", ":1p"], ["vous", ":2p"], ["ils", ":3p"], ["elles", ":3p"], ["iels", ":3p"] ]); const _dModeSugg = new Map([ ["es", "aies"], ["aies", "es"], ["est", "ait"], ["ait", "est"] ]); function suggVerbMode (sFlex, cMode, sSuj) { let lMode; if (cMode == ":I") { lMode = [":Ip", ":Iq", ":Is", ":If"]; } else if (cMode == ":S") { lMode = [":Sp", ":Sq"]; } else if (cMode.startsWith(":I") || cMode.startsWith(":S")) { |
︙ | ︙ | |||
245 246 247 248 249 250 251 252 253 254 255 256 257 258 | for (let sTense of lMode) { if (conj._hasConjWithTags(tTags, sTense, sWho)) { aSugg.add(conj._getConjWithTags(sStem, tTags, sTense, sWho)); } } } } if (aSugg.size > 0) { return Array.from(aSugg).join("|"); } return ""; } //// Nouns and adjectives | > > > | 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 | for (let sTense of lMode) { if (conj._hasConjWithTags(tTags, sTense, sWho)) { aSugg.add(conj._getConjWithTags(sStem, tTags, sTense, sWho)); } } } } if (_dModeSugg.has(sFlex)) { aSugg.add(_dModeSugg.get(sFlex)); } if (aSugg.size > 0) { return Array.from(aSugg).join("|"); } return ""; } //// Nouns and adjectives |
︙ | ︙ | |||
476 477 478 479 480 481 482 483 484 485 486 487 488 489 | } aSugg.delete(""); if (aSugg.size > 0) { return Array.from(aSugg).join("|"); } return ""; } function g_suggAgree (oTokenDst, oTokenSrc) { // returns suggestions for <oTokenDst> that matches agreement with <oTokenSrc> let lMorphSrc = oTokenSrc.hasOwnProperty("lMorph") ? oTokenSrc["lMorph"] : gc_engine.oSpellChecker.getMorph(oTokenSrc["sValue"]); if (lMorphSrc.length === 0) { return ""; } | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 | } aSugg.delete(""); if (aSugg.size > 0) { return Array.from(aSugg).join("|"); } return ""; } function suggAgree (sFlexDst, sFlexSrc) { // returns suggestions for <sFlexDst> that matches agreement with <sFlexSrc> let lMorphSrc = gc_engine.oSpellChecker.getMorph(sFlexSrc); if (lMorphSrc.length === 0) { return ""; } let [sGender, sNumber] = cregex.getGenderNumber(lMorphSrc); if (sGender == ":m") { if (sNumber == ":s") { return suggMasSing(sFlexDst); } else if (sNumber == ":p") { return suggMasPlur(sFlexDst); } return suggMasSing(sFlexDst); } else if (sGender == ":f") { if (sNumber == ":s") { return suggFemSing(sFlexDst); } else if (sNumber == ":p") { return suggFemPlur(sFlexDst); } return suggFemSing(sFlexDst); } else if (sGender == ":e") { if (sNumber == ":s") { return suggSing(sFlexDst); } else if (sNumber == ":p") { return suggPlur(sFlexDst); } return sFlexDst; } return ""; } function g_suggAgree (oTokenDst, oTokenSrc) { // returns suggestions for <oTokenDst> that matches agreement with <oTokenSrc> let lMorphSrc = oTokenSrc.hasOwnProperty("lMorph") ? oTokenSrc["lMorph"] : gc_engine.oSpellChecker.getMorph(oTokenSrc["sValue"]); if (lMorphSrc.length === 0) { return ""; } |
︙ | ︙ |
Modified gc_lang/fr/modules/gce_suggestions.py from [a7f2ac0bcd] to [649f566ef0].
︙ | ︙ | |||
15 16 17 18 19 20 21 | if sVerb.endswith(("-t", "-le", "-la", "-les", "-nous", "-vous", "-leur", "-lui")): iRight = sVerb.rfind("-") sSuffix = sVerb[iRight:] + sSuffix sVerb = sVerb[:iRight] return sVerb, sSuffix | | | 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | if sVerb.endswith(("-t", "-le", "-la", "-les", "-nous", "-vous", "-leur", "-lui")): iRight = sVerb.rfind("-") sSuffix = sVerb[iRight:] + sSuffix sVerb = sVerb[:iRight] return sVerb, sSuffix def suggVerb (sFlex, sWho, bVC=False, funcSugg2=None, *args): "change <sFlex> conjugation according to <sWho>" if bVC: sFlex, sSfx = splitVerb(sFlex) dSugg = {} for sStem in _oSpellChecker.getLemma(sFlex): tTags = conj._getTags(sStem) if tTags: |
︙ | ︙ | |||
43 44 45 46 47 48 49 | aTense[m.group(1)] = "" for sTense in aTense.keys(): if sWho == ":1ś" and not conj._hasConjWithTags(tTags, sTense, ":1ś"): sWho = ":1s" if conj._hasConjWithTags(tTags, sTense, sWho): dSugg[conj._getConjWithTags(sStem, tTags, sTense, sWho)] = "" if funcSugg2: | | | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | aTense[m.group(1)] = "" for sTense in aTense.keys(): if sWho == ":1ś" and not conj._hasConjWithTags(tTags, sTense, ":1ś"): sWho = ":1s" if conj._hasConjWithTags(tTags, sTense, sWho): dSugg[conj._getConjWithTags(sStem, tTags, sTense, sWho)] = "" if funcSugg2: sSugg2 = funcSugg2(*args) if args else funcSugg2(sFlex) if sSugg2: dSugg[sSugg2] = "" if dSugg: if bVC: return "|".join([ joinVerbAndSuffix(sSugg, sSfx) for sSugg in dSugg.keys() ]) return "|".join(dSugg.keys()) return "" |
︙ | ︙ | |||
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 | "returns infinitive forms of <sFlex>" return "|".join([ sStem for sStem in _oSpellChecker.getLemma(sFlex) if conj.isVerb(sStem) ]) _dQuiEst = { "je": ":1s", "j’": ":1s", "tu": ":2s", "il": ":3s", "on": ":3s", "elle": ":3s", "iel": ":3s", \ "nous": ":1p", "vous": ":2p", "ils": ":3p", "elles": ":3p", "iels": ":3p" } def suggVerbMode (sFlex, cMode, sSuj): "returns other conjugations of <sFlex> acconding to <cMode> and <sSuj>" if cMode == ":I": lMode = [":Ip", ":Iq", ":Is", ":If"] elif cMode == ":S": lMode = [":Sp", ":Sq"] elif cMode.startswith((":I", ":S")): lMode = [cMode] else: return "" sWho = _dQuiEst.get(sSuj.lower(), ":3s") dSugg = {} for sStem in _oSpellChecker.getLemma(sFlex): tTags = conj._getTags(sStem) if tTags: for sTense in lMode: if conj._hasConjWithTags(tTags, sTense, sWho): dSugg[conj._getConjWithTags(sStem, tTags, sTense, sWho)] = "" if dSugg: return "|".join(dSugg.keys()) return "" ## Nouns and adjectives | > > > > | 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 | "returns infinitive forms of <sFlex>" return "|".join([ sStem for sStem in _oSpellChecker.getLemma(sFlex) if conj.isVerb(sStem) ]) _dQuiEst = { "je": ":1s", "j’": ":1s", "tu": ":2s", "il": ":3s", "on": ":3s", "elle": ":3s", "iel": ":3s", \ "nous": ":1p", "vous": ":2p", "ils": ":3p", "elles": ":3p", "iels": ":3p" } _dModeSugg = { "es": "aies", "aies": "es", "est": "ait", "ait": "est" } def suggVerbMode (sFlex, cMode, sSuj): "returns other conjugations of <sFlex> acconding to <cMode> and <sSuj>" if cMode == ":I": lMode = [":Ip", ":Iq", ":Is", ":If"] elif cMode == ":S": lMode = [":Sp", ":Sq"] elif cMode.startswith((":I", ":S")): lMode = [cMode] else: return "" sWho = _dQuiEst.get(sSuj.lower(), ":3s") dSugg = {} for sStem in _oSpellChecker.getLemma(sFlex): tTags = conj._getTags(sStem) if tTags: for sTense in lMode: if conj._hasConjWithTags(tTags, sTense, sWho): dSugg[conj._getConjWithTags(sStem, tTags, sTense, sWho)] = "" if sFlex in _dModeSugg: dSugg[_dModeSugg[sFlex]] = "" if dSugg: return "|".join(dSugg.keys()) return "" ## Nouns and adjectives |
︙ | ︙ | |||
357 358 359 360 361 362 363 364 365 366 367 368 369 370 | if bSuggSimil: for e in phonet.selectSimil(sFlex, ":f:[pi]"): dSugg[e] = "" if dSugg: return "|".join(dSugg) return "" def g_suggAgree (dTokenDst, dTokenSrc): "returns suggestions for <dTokenDst> that matches agreement with <dTokenSrc>" lMorphSrc = dTokenSrc["lMorph"] if "lMorph" in dTokenSrc else _oSpellChecker.getMorph(dTokenSrc["sValue"]) if not lMorphSrc: return "" sGender, sNumber = cr.getGenderNumber(lMorphSrc) | > > > > > > > > > > > > > > > > > > > > > > > > > > > | 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 | if bSuggSimil: for e in phonet.selectSimil(sFlex, ":f:[pi]"): dSugg[e] = "" if dSugg: return "|".join(dSugg) return "" def suggAgree (sFlexDest, sFlexSrc): "returns suggestions for <sFlexDest> that matches agreement with <sFlexSrc>" lMorphSrc = _oSpellChecker.getMorph(sFlexSrc) if not lMorphSrc: return "" sGender, sNumber = cr.getGenderNumber(lMorphSrc) if sGender == ":m": if sNumber == ":s": return suggMasSing(sFlexDest) elif sNumber == ":p": return suggMasPlur(sFlexDest) return suggMasSing(sFlexDest) elif sGender == ":f": if sNumber == ":s": return suggFemSing(sFlexDest) elif sNumber == ":p": return suggFemPlur(sFlexDest) return suggFemSing(sFlexDest) elif sGender == ":e": if sNumber == ":s": return suggSing(sFlexDest) elif sNumber == ":p": return suggPlur(sFlexDest) return sFlexDest return "" def g_suggAgree (dTokenDst, dTokenSrc): "returns suggestions for <dTokenDst> that matches agreement with <dTokenSrc>" lMorphSrc = dTokenSrc["lMorph"] if "lMorph" in dTokenSrc else _oSpellChecker.getMorph(dTokenSrc["sValue"]) if not lMorphSrc: return "" sGender, sNumber = cr.getGenderNumber(lMorphSrc) |
︙ | ︙ |
Modified gc_lang/fr/rules.grx from [5138506e52] to [e6ca794ce1].
︙ | ︙ | |||
909 910 911 912 913 914 915 | TEST: un ou une électricien·ne TEST: femme ou homme épuisé·e TEST: un·e idiot·e __[i](typo_écriture_invariable)__ ({w_3})([-·–—.•⋅/]s|[(]s[)]) @@0,$ | | | < | 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 | TEST: un ou une électricien·ne TEST: femme ou homme épuisé·e TEST: un·e idiot·e __[i](typo_écriture_invariable)__ ({w_3})([-·–—.•⋅/]s|[(]s[)]) @@0,$ <<- not (\0.endswith("/s") and morph(\1, ";S")) ~>> =normalizeInclusiveWriting(\0) <<- __also__ and option("typo") and option("eepi") and not \0.endswith("·s") ->> \1·s && Écriture invariable. Utilisez un point médian. TEST: la ou les {{fille(s)}} ->> fille·s TEST: le ou les patron·s TEST: combien de rad/s !! |
︙ | ︙ | |||
1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 | TEST: Ça coûte {{13,4¥}}. ->> 13,4 ¥ TEST: il mesure {{30,3 cm}} ->> 30,3 cm TEST: il est monté à {{18 %}} ->> 18 % TEST: une température de {{22,4 °C}} ->> 22,4 °C TEST: il en veut {{18kg}} ->> 18 kg TEST: il me le propose pour {{243 gCO2/kWh}} ->> 243 gCO2/kWh TEST: il me le propose pour {{243,4 gCO2/kWh}} ->> 243,4 gCO2/kWh TEST: {{40 MHz}} ->> 40 MHz TEST: {{100 Ah}} ->> 100 Ah TEST: {{1001 ans}} ->> 1 001 ans TEST: {{500000 euros}} ->> 500 000 euros TEST: en l’an 2000 Urgondorletroll eut une idée TEST: 1998 s’annonce grandiose. TEST: il y en a 3,43 milliards. TEST: je veux 200 euros. __[s]/typo(typo_math)__ (?:cos|sin|tan|cotan|log|ln)²? [2-9]?[a-zA-Zα-ωΑ-Ω](?![’']) <<- ->> =\0.replace(" ", "(")+")|"+\0.replace(" ", " ") && Mettez des parenthèses (ou éventuellement un espace insécable). TEST: {{cos ω}} ->> cos(ω)|cos ω | > > > > | 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 | TEST: Ça coûte {{13,4¥}}. ->> 13,4 ¥ TEST: il mesure {{30,3 cm}} ->> 30,3 cm TEST: il est monté à {{18 %}} ->> 18 % TEST: une température de {{22,4 °C}} ->> 22,4 °C TEST: il en veut {{18kg}} ->> 18 kg TEST: il me le propose pour {{243 gCO2/kWh}} ->> 243 gCO2/kWh TEST: il me le propose pour {{243,4 gCO2/kWh}} ->> 243,4 gCO2/kWh TEST: {{140 rad/s}} ->> 140 rad/s TEST: {{200 m}}/s ->> 200 m TEST: {{40 MHz}} ->> 40 MHz TEST: {{100 Ah}} ->> 100 Ah TEST: {{1001 ans}} ->> 1 001 ans TEST: {{500000 euros}} ->> 500 000 euros TEST: en l’an 2000 Urgondorletroll eut une idée TEST: 1998 s’annonce grandiose. TEST: il y en a 3,43 milliards. TEST: je veux 200 euros. TEST: 140 rad/s TEST: 140 rad/s __[s]/typo(typo_math)__ (?:cos|sin|tan|cotan|log|ln)²? [2-9]?[a-zA-Zα-ωΑ-Ω](?![’']) <<- ->> =\0.replace(" ", "(")+")|"+\0.replace(" ", " ") && Mettez des parenthèses (ou éventuellement un espace insécable). TEST: {{cos ω}} ->> cos(ω)|cos ω |
︙ | ︙ | |||
1244 1245 1246 1247 1248 1249 1250 | !! !! !!!! Cohérence des guillemets !! !! !! __<s>/typo(typo_cohérence_guillemets_chevrons_ouvrants)__ | | | | | | | | 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 | !! !! !!!! Cohérence des guillemets !! !! !! __<s>/typo(typo_cohérence_guillemets_chevrons_ouvrants)__ («[ ])[^»“]+?(”) @@0,$ <<- not before("\\w$") -1>> “ && Guillemet ouvrant différent du guillemet fermant (”). <<- not after("^\\w") -2>> " »" && Guillemet fermant différent du guillemet ouvrant («). __<s>/typo(typo_cohérence_guillemets_chevrons_fermants)__ (“)[^”«]+?([ ]») @@0,$ <<- not before("\\w$") -1>> "« " && Guillemet ouvrant différent du guillemet fermant (»). <<- not after("^\\w") -2>> ” && Guillemet fermant différent du guillemet ouvrant (“). TEST: C’est {{« }}stupide{{”}}. ->> “||| » TEST: Quel {{“}}emmerdeur{{ »}}, ce gars-là. ->> « |||” __<s>/typo(typo_cohérence_guillemets_doubles_ouvrants)__ (“)[^”’“«]+?(’)(?![\w'’)]) @@0,$ <<- not ( after("^”") and re.search("“(?:l|d|c|ç|n|m|t|s|j|z|[A-ZÇ]|qu|jusqu|puisqu|lorsqu|quoiqu|quelqu)’", \0) ) >>> <<- not before("\\w$") -1>> "‘" && Guillemet ouvrant différent du guillemet fermant (’). <<- __also__ -2>> ” && Guillemet fermant différent du guillemet ouvrant (“). __<s>/typo(typo_cohérence_guillemets_doubles_fermants)__ (‘)[^’“«]+?(”) @@0,$ <<- not before("\\w$") -1>> "“" && Guillemet ouvrant différent du guillemet fermant (”). <<- not after("^\\w") -2>> ’ && Guillemet fermant différent du guillemet ouvrant (‘). TEST: Tu sais, {{‘}}ton ami{{”}} est venu. ->> “|||’ TEST: Oui, je vois, mais c’est quand même un {{“}}salopard{{’}}. ->> ‘|||” TEST: Après “n’”, il faut une forme verbale. TEST: il (n’)est (pas) là. __[i]/typo(typo_guillemets_doubles_ouvrants_non_fermés)__ (“)\w[^”"»]+$ @@0 <<- -1>> _ && Guillemets fermants introuvables dans la suite du paragraphe. |
︙ | ︙ | |||
2353 2354 2355 2356 2357 2358 2359 | !! !!!! Verbes composés !! !! !! __inte_verbes_composés_interrogatifs__ ~\w-[jJ]e$ | | | | | | | | | | | | | | | 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 2386 2387 2388 2389 2390 2391 2392 2393 2394 2395 2396 2397 2398 2399 2400 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410 2411 2412 2413 2414 2415 2416 2417 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 | !! !!!! Verbes composés !! !! !! __inte_verbes_composés_interrogatifs__ ~\w-[jJ]e$ <<- /inte/ morphVC(\1, ":V", ":1[sśŝ]") ->> =suggVerb(\1, ":1ś", True) && Forme interrogative. Désaccord avec “je”. Le verbe n’est pas à la 1ʳᵉ personne du singulier. <<- /inte/ __else__ and not morphVC(\1, ":V") ->> =suggSimil(\1, ":1[sśŝ]", False, True) && Forme interrogative. Désaccord avec “je”. Le verbe n’est pas à la 1ʳᵉ personne du singulier. <<- />> -je|_VCint_ <<- value(<1, "|me|m’|") />> _upron_ aie-je <<- /vmode/ ->> ai-je && Forme interrogative. N’employez pas le subjonctif présent. ~\w-[tT]u$ <<- /inte/ morphVC(\1, ":V", ":[ISK].*:2s") ->> =suggVerb(\1, ":2s", True) && Forme interrogative. Désaccord avec “tu”. Le verbe n’est pas à la 2ᵉ personne du singulier. <<- /inte/ __else__ and not morphVC(\1, ":V") ->> =suggSimil(\1, ":2s", False, True) && Forme interrogative. Désaccord avec “tu”. Le verbe n’est pas à la 2ᵉ personne du singulier. <<- />> -tu|_VCint_ <<- value(<1, "|te|t’|") />> _upron_ ~\w-[iI]l$ <<- /inte/ morphVC(\1, ":3p", ":3s") ->> =suggVerb(\1, ":3s", True) + "|" + \1+"s" && Forme interrogative. Désaccord avec “il”. Le verbe n’est pas à la 3ᵉ personne du singulier. <<- /inte/ __else__ and morphVC(\1, ":V", ":3s") ->> =suggVerb(\1, ":3s", True) && Forme interrogative. Désaccord avec “il”. Le verbe n’est pas à la 3ᵉ personne du singulier. <<- /inte/ __else__ and morphVC(\1, ":", ":V|>(?:t|voilà)/") ->> =suggSimil(\1, ":3s", False, True) && Forme interrogative. Désaccord avec “il”. Le verbe n’est pas à la 3ᵉ personne du singulier. <<- />> -il|_VCint_ <<- value(<1, "|se|s’|") />> _upron_ ~\w-[eE]lle$ <<- /inte/ morphVC(\1, ":3p", ":3s") ->> =suggVerb(\1, ":3s", True) + "|" + \1+"s" && Forme interrogative. Désaccord avec “elle”. Le verbe n’est pas à la 3ᵉ personne du singulier. <<- /inte/ __else__ and morphVC(\1, ":V", ":3s") ->> =suggVerb(\1, ":3s", True) && Forme interrogative. Désaccord avec “elle”. Le verbe n’est pas à la 3ᵉ personne du singulier. <<- /inte/ __else__ and morphVC(\1, ":", ":V|>t/") ->> =suggSimil(\1, ":3s", False, True) && Forme interrogative. Désaccord avec “elle”. Le verbe n’est pas à la 3ᵉ personne du singulier. <<- />> -elle|_VCint_ <<- value(<1, "|se|s’|") />> _upron_ ~\w-[iI]el$ <<- /inte/ morphVC(\1, ":3p", ":3s") ->> =suggVerb(\1, ":3s", True) + "|" + \1+"s" && Forme interrogative. Désaccord avec “iel”. Le verbe n’est pas à la 3ᵉ personne du singulier. <<- /inte/ __else__ and morphVC(\1, ":V", ":3s") ->> =suggVerb(\1, ":3s", True) && Forme interrogative. Désaccord avec “iel”. Le verbe n’est pas à la 3ᵉ personne du singulier. <<- /inte/ __else__ and morphVC(\1, ":", ":V|>t/") ->> =suggSimil(\1, ":3s", False, True) && Forme interrogative. Désaccord avec “iel”. Le verbe n’est pas à la 3ᵉ personne du singulier. <<- />> -iel|_VCint_ <<- value(<1, "|se|s’|") />> _upron_ ~\w-[oO]n$ <<- /inte/ morphVC(\1, ":V", ":3s") ->> =suggVerb(\1, ":3s", True) && Forme interrogative. Désaccord avec “on”. Le verbe n’est pas à la 3ᵉ personne du singulier. <<- /inte/ __else__ and morphVC(\1, ":", ":V|>t/") ->> =suggSimil(\1, ":3s", False, True) && Forme interrogative. Désaccord avec “on”. Le verbe n’est pas à la 3ᵉ personne du singulier. <<- />> -on|_VCint_ <<- value(<1, "|se|s’|") />> _upron_ ~\w-[cCs]e$ <<- /inte/ morphVC(\1, ":V", ":(?:3s|V0e.*:3p)") ->> =suggVerb(\1, ":3s", True) && Forme interrogative. Désaccord avec “ce”. Le verbe n’est pas à la 3ᵉ personne du singulier.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4132 <<- /inte/ __else__ and morphVC(\1, ":", ":V") ->> =suggSimil(\1, ":3s", False, True) && Forme interrogative. Désaccord avec “ce”. Le verbe n’est pas à la 3ᵉ personne du singulier.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4132 <<- /conf/ \1.endswith("se") ->> =\1[:-2]+"ce" && Forme interrogative. Confusion.|http://bdl.oqlf.gouv.qc.ca/bdl/gabarit_bdl.asp?id=4132 <<- />> -ce|_VCint_ <<- value(<1, "|se|s’|") />> _upron_ ~\w-[iI]ls$ <<- /inte/ morphVC(\1, ":V", ":3p") ->> =suggVerb(\1, ":3p", True) && Forme interrogative. Désaccord avec “ils”. Le verbe n’est pas à la 3ᵉ personne du pluriel. <<- /inte/ __else__ and morphVC(\1, ":", ":V|>t/") ->> =suggSimil(\1, ":3p", False, True) && Forme interrogative. Désaccord avec “ils”. Le verbe n’est pas à la 3ᵉ personne du pluriel. <<- />> -ils|_VCint_ <<- value(<1, "|se|s’|") />> _upron_ ~\w-[eE]lles$ <<- /inte/ morphVC(\1, ":V", ":3p") ->> =suggVerb(\1, ":3p", True) && Forme interrogative. Désaccord avec “elles”. Le verbe n’est pas à la 3ᵉ personne du pluriel. <<- /inte/ __else__ and morphVC(\1, ":", ":V|>t/") ->> =suggSimil(\1, ":3p", False, True) && Forme interrogative. Désaccord avec “elles”. Le verbe n’est pas à la 3ᵉ personne du pluriel. <<- />> -elles|_VCint_ <<- value(<1, "|se|s’|") />> _upron_ ~\w-[iI]els$ <<- /inte/ morphVC(\1, ":V", ":3p") ->> =suggVerb(\1, ":3p", True) && Forme interrogative. Désaccord avec “iels”. Le verbe n’est pas à la 3ᵉ personne du pluriel. <<- /inte/ __else__ and morphVC(\1, ":", ":V|>t/") ->> =suggSimil(\1, ":3p", False, True) && Forme interrogative. Désaccord avec “iels”. Le verbe n’est pas à la 3ᵉ personne du pluriel. <<- />> -iels|_VCint_ <<- value(<1, "|se|s’|") />> _upron_ TEST: {{Vas-je}} ->> Vais-je TEST: mais {{aie-je}} seulement le choix ? ->> ai-je TEST: {{bluff-je}} ->> bluffe-je |
︙ | ︙ | |||
2459 2460 2461 2462 2463 2464 2465 | TEST: Eh ! dit Athos, ne sont-ce pas des braconniers qu’on arrête là-bas ? TEST: Le moteur choisi convient-il ? __inte_verbes_composés_interrogatifs_impératifs__ ~\w-[nN]ous$ <<- /inte/ not re.search("-[lL](?:es?|a)-[nN]ous$", \1) >>> | | | | 2462 2463 2464 2465 2466 2467 2468 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 | TEST: Eh ! dit Athos, ne sont-ce pas des braconniers qu’on arrête là-bas ? TEST: Le moteur choisi convient-il ? __inte_verbes_composés_interrogatifs_impératifs__ ~\w-[nN]ous$ <<- /inte/ not re.search("-[lL](?:es?|a)-[nN]ous$", \1) >>> <<- /inte/ morphVC(\1, ":V", ":(?:1p|E:2[sp])") ->> =suggVerb(\1, ":1p", True)+"|"+suggVerbImpe(\1, True) && Forme interrogative ou impérative incorrecte. <<- /inte/ __else__ and morphVC(\1, ":", ":V|>(?:chez|malgré)/") ->> =suggSimil(\1, ":1p", False, True) && Forme interrogative ou impérative incorrecte. <<- />> -nous|_VCint_ ~\w-[vV]ous$ <<- /inte/ not re.search("-[lL](?:es?|a)-[vV]ous$", \1) >>> <<- /inte/ morphVC(\1, ":V", ":2p") ->> =suggVerb(\1, ":2p", True) && Forme interrogative ou impérative. Désaccord avec “vous”. Le verbe n’est pas à la 2ᵉ personne du pluriel. <<- /inte/ __else__ and morphVC(\1, ":", ":V|>chez/") ->> =suggSimil(\1, ":2p", False, True) && Forme interrogative ou impérative. Désaccord avec “vous”. Le verbe n’est pas à la 2ᵉ personne du pluriel. <<- />> -vous|_VCint_ TEST: {{Prendront-nous}} ->> Prendrons-nous|Prends-nous|Prenons-nous|Prenez-nous TEST: {{Attendront-nous}} le train ->> Attendrons-nous|Attends-nous|Attendons-nous|Attendez-nous TEST: {{action-nous}} ! ->> axions-nous|actions-nous TEST: {{santon-nous}} mauvais ? ->> sentons-nous|centons-nous |
︙ | ︙ | |||
5510 5511 5512 5513 5514 5515 5516 5517 | <<- =>> definefrom(\1, 7) TEST: il n’avait contracté qu’un {{pseudo mariage}}. ->> pseudo-mariage TEST: la {{pseudo taxe}} carbone ->> pseudo-taxe __tu_mots_composés_verbe_nom__ [contre|entre] *WORD | > > > | > | | 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 5523 5524 5525 5526 5527 5528 5529 5530 5531 5532 5533 5534 5535 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 | <<- =>> definefrom(\1, 7) TEST: il n’avait contracté qu’un {{pseudo mariage}}. ->> pseudo-mariage TEST: la {{pseudo taxe}} carbone ->> pseudo-taxe __tu_mots_composés_verbe_nom__ contre >productif <<- /tu/ ->> \1-\2 && Il manque un trait d’union. [contre|entre] *WORD <<- /tu/ not morph(\2, ":[GYB]") and morph(<1, ":(?:D|V.e)|<start>|>,") and morph2(\1, "-", ":N") ->> \1-\2 && Il manque probablement un trait d’union. [m’|t’|s’] entre *WORD <<- /tu/ morph(\3, ":V") and morph2(\2, "-", ":V") -2:3>> \2-\3 && Il manque probablement un trait d’union. nous nous entre ~on[ts]$ vous vous entre ~e[zr]$ <<- /tu/ morph(\4, ":V") and morph2(\3, "-", ":V") and not morph(<1, ":R") -3:4>> \3-\4 && Il manque probablement un trait d’union. [attrape|garde|porte|brise|cache|casse|chauffe|coupe|cure|croque|essuie|lance|lave|lève|marque|pare|passe|perce|pèse|porte|poste|pousse|presse|protège|ramasse|serre|taille|tire|tourne|traîne|traine|vide] *WORD <<- /tu/ morph(<1, ":(?:D|V0e)|<start>|>,") and morph2(\1, "-", ":N") ->> \1-\2 && Il manque probablement un trait d’union. TEST: ça semble totalement {{contre productif}} ->> contre-productif TEST: c’est le {{contre exemple}} parfai ->> contre-exemple TEST: une {{entre voie}} ->> entre-voie TEST: s’{{entre regarder}} ->> entre-regarder TEST: ce sont des {{lève tard}}. ->> lève-tard TEST: nous nous {{entre tuions}} ->> entre-tuions TEST: un {{brise glace}} ->> brise-glace TEST: entre deux chaises… |
︙ | ︙ | |||
8163 8164 8165 8166 8167 8168 8169 | __conf_de_vconj__ [de|d’] @:[123][sp]¬:[GNA] <<- /conf/ not \2.istitle() and not \2.isupper() and not value(\2, "|jure|") and not tag(\2, "eg1mot") -2>> =suggSimil(\2, ":[NA]", True)+"|"+suggVerbInfi(\2) && Incohérence avec « \1 » : “\2” est une forme verbale conjuguée. | | | | | 8170 8171 8172 8173 8174 8175 8176 8177 8178 8179 8180 8181 8182 8183 8184 8185 8186 8187 8188 8189 8190 8191 | __conf_de_vconj__ [de|d’] @:[123][sp]¬:[GNA] <<- /conf/ not \2.istitle() and not \2.isupper() and not value(\2, "|jure|") and not tag(\2, "eg1mot") -2>> =suggSimil(\2, ":[NA]", True)+"|"+suggVerbInfi(\2) && Incohérence avec « \1 » : “\2” est une forme verbale conjuguée. TEST: il s’agit de {{mette}} en évidence. ->> mettre|mets|mise|mises|misses|missions TEST: sa façon de {{nettoyez}} était inefficace. ->> nettoyer|nettoyant [de|d’] [l’|leur] @:[123][sp]¬:[GNAQ] <<- /conf/ not \3.istitle() and not \3.isupper() -3>> =suggSimil(\3, ":[NA].*:[si]", True) && Incohérence avec « \1 \2 » : “\3” est une forme verbale conjuguée. TEST: de l’{{arrivait}} ->> arrivée|arrivant TEST: la production d’électricité par des énergies renouvelables aurait encore augmenté de 7 %, selon les calculs de l’AIE [de|d’] le *WORD <<- /conf/ space(\1, 0, 1) and morph(\3, ":[NAQ].*:[me]", ":[YG]") and not \3.istitle() and not (value(\3, "|mal|") and morph(>1, ":Y")) -1:2>> du && Incohérence avec « \1 \2 » : “\3” est un nom ou un adjectif. <<- /conf/ morph(\3, ":[123][sp]") -3>> =suggVerbInfi(\3) && Incohérence avec « \1 \2 » : “\3” est une forme verbale conjuguée. |
︙ | ︙ | |||
17956 17957 17958 17959 17960 17961 17962 | >cellule [de|d’] crise >cellule [de|d’] détention provisoire [centrale+s] d’ >achat >centre d’ éducation [populaire|surveillée] >centre [de|d’] rétention ?[préventive|administrative]¿ >certificat [de|d’] [conformité|virginité] >certificat [de|d’] bonne conduite | | | 17963 17964 17965 17966 17967 17968 17969 17970 17971 17972 17973 17974 17975 17976 17977 | >cellule [de|d’] crise >cellule [de|d’] détention provisoire [centrale+s] d’ >achat >centre d’ éducation [populaire|surveillée] >centre [de|d’] rétention ?[préventive|administrative]¿ >certificat [de|d’] [conformité|virginité] >certificat [de|d’] bonne conduite >certificat d’ études ?[primaires|secondaires|supérieures|spécialisées|musicales|théâtrales|bibliques|théologiques]¿ >certificat [de|d’] scolarité ?[maternelle|primaire|secondaire]¿ >chair à [pâté|>canon] >chair [de|d’] poule >chalet d’ alpage >chambre à [coucher|gaz] >chambre [de|d’] [agriculture|hôte|hôtel|hôtes|commerce|compensation|décompression|dégrisement] >champion du monde |
︙ | ︙ | |||
18072 18073 18074 18075 18076 18077 18078 | >défaut [de|d’] paiement >descente aux [enfers|flambeaux] >dindon [de|d’] la farce dieu tout-puissant [>dîner|>diner] aux chandelles [>dîner|>diner] [de|d’] gala >discipline [de|d’] [acier|fer] | | | 18079 18080 18081 18082 18083 18084 18085 18086 18087 18088 18089 18090 18091 18092 18093 | >défaut [de|d’] paiement >descente aux [enfers|flambeaux] >dindon [de|d’] la farce dieu tout-puissant [>dîner|>diner] aux chandelles [>dîner|>diner] [de|d’] gala >discipline [de|d’] [acier|fer] >doigt [de|d’] fée >don en nature >donneur [de|d’] >leçon >dossier d’ inscription ?[administrative|scolaire]¿ >dossier [de|d’] presse >drapeau en berne >drone [de|d’] [combat|surveillance] >drogue [de|d’] synthèse |
︙ | ︙ | |||
18096 18097 18098 18099 18100 18101 18102 | >effet [de|d’] bord >effort [de|d’] guerre >élément à charge >emploi du temps >employé [de|d’] maison >ennemi d’ État ennemi public numéro [un|$:B|*NUM] | | | 18103 18104 18105 18106 18107 18108 18109 18110 18111 18112 18113 18114 18115 18116 18117 | >effet [de|d’] bord >effort [de|d’] guerre >élément à charge >emploi du temps >employé [de|d’] maison >ennemi d’ État ennemi public numéro [un|$:B|*NUM] ennemie publique numéro [un|une|$:B|*NUM] >ennui [de|d’] santé >enregistreur [de|d’] vol >enterrement [de|d’] vie [de|d’] garçon >enterrement [de|d’] vie [de|d’] jeune fille >entrée [de|d’] service >entretien d’ embauche >enquête à charge |
︙ | ︙ | |||
18158 18159 18160 18161 18162 18163 18164 | >fil à retordre >file d’ attente >fille à [papa|maman|>soldat] >fille au pair >film X fils à [papa|maman] fils [de|d’] pute | | | | 18165 18166 18167 18168 18169 18170 18171 18172 18173 18174 18175 18176 18177 18178 18179 18180 | >fil à retordre >file d’ attente >fille à [papa|maman|>soldat] >fille au pair >film X fils à [papa|maman] fils [de|d’] pute >figure [de|d’] proue >fin [de|d’] non-recevoir >fleuve à sec >flic en civil >flocon [de|d’] neige ?électronique¿ >foire d’ >empoigne fonds d’ investissement fonds [de|d’] pension >fontaine à eau |
︙ | ︙ | |||
18315 18316 18317 18318 18319 18320 18321 | >matelas à mémoire de forme >matière à [débat|polémique|réflexion] >médaille d’ [or|argent|bronze] >médecin [de|d’] [famille|garde] >mère au foyer >mesure >barrière >metteur en scène | | | | | 18322 18323 18324 18325 18326 18327 18328 18329 18330 18331 18332 18333 18334 18335 18336 18337 18338 18339 18340 18341 18342 18343 18344 18345 18346 18347 18348 18349 18350 18351 18352 18353 18354 18355 18356 18357 18358 | >matelas à mémoire de forme >matière à [débat|polémique|réflexion] >médaille d’ [or|argent|bronze] >médecin [de|d’] [famille|garde] >mère au foyer >mesure >barrière >metteur en scène >mineur [de|d’] [moins|plus] [de|d’] *NUM ans >mineur [de|d’] [moins|plus] [de|d’] $:B:e:p ans >minute d’ arc >miroir aux alouettes >mise en danger de la vie d’ autrui >mouchoir [de|d’] poche >mode [de|d’] [emploi|paiement|scrutin|vie] >monnaie [de|d’] [échange|réserve|singe] >montée en puissance >montre à gousset >mot [de|d’] passe >mot d’ ordre >moteur [>essence|>diésel|>diesel] >moteur à réaction >motion [de|d’] blâme >motion [de|d’] [censure|défiance] ?constructive¿ >moule à [>gaufre|>gâteau|brioche|manqué|savarin|charlotte|tarte] >moulin à [café|eau|paroles|poivre|prières|vent] >mouton à [cinq|5] pattes [moyen+s] [de|d’] transport >navire [de|d’] plaisance >nerf à vif >nettoyeur ?à¿ haute pression >nid à merde >nid [de|d’] résistance >niveau [de|d’] vie noix [de|d’] [cajou|pécan|pecan|coco|lavage|muscade|veau|macadamia] >nom à particule >nom [de|d’] famille >notice [de|d’] [montage|utilisation] |
︙ | ︙ | |||
18387 18388 18389 18390 18391 18392 18393 18394 18395 18396 18397 18398 18399 18400 | >peloton d’ exécution >pendaison [de|d’] crémaillère >périphérique à bande ?[analogique|magnétique]¿ >personnage [de|d’] roman perspectives d’ avenir >perte [de|d’] temps ?précieux¿ >peur [de|d’] tous les diables >phase [I|II|III|IV|V|VI|VII|VIII|IX|X|XI|XII|XIII|XIV|XV|XVI|XVII|XVIII|XIX|XX|XXI|XXII|XXIII|XXIV|XXV|XXVI|XXVII|XXVIII|XXIX|XXX] >piano à queue >pièce à conviction >pièce [de|d’] [théâtre|monnaie|rechange] >pièce [de|d’] *NUM [>euro|>dollar|>centime|>cent|>livre|>shilling] >pied [de|d’] biche >pile à [combustible|hydrogène] | > | 18394 18395 18396 18397 18398 18399 18400 18401 18402 18403 18404 18405 18406 18407 18408 | >peloton d’ exécution >pendaison [de|d’] crémaillère >périphérique à bande ?[analogique|magnétique]¿ >personnage [de|d’] roman perspectives d’ avenir >perte [de|d’] temps ?précieux¿ >peur [de|d’] tous les diables >phase [A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z] >phase [I|II|III|IV|V|VI|VII|VIII|IX|X|XI|XII|XIII|XIV|XV|XVI|XVII|XVIII|XIX|XX|XXI|XXII|XXIII|XXIV|XXV|XXVI|XXVII|XXVIII|XXIX|XXX] >piano à queue >pièce à conviction >pièce [de|d’] [théâtre|monnaie|rechange] >pièce [de|d’] *NUM [>euro|>dollar|>centime|>cent|>livre|>shilling] >pied [de|d’] biche >pile à [combustible|hydrogène] |
︙ | ︙ | |||
18702 18703 18704 18705 18706 18707 18708 | [secret+s] défense >sobre comme un chameau >sourd comme un pot >sujet à [caution|débat|interprétation] >sujet à interprétations diverses [>sur|>sûr] de [mon|ton|son|notre|votre|leur] bon droit >têtu comme une [bourrique|mule] | | | 18710 18711 18712 18713 18714 18715 18716 18717 18718 18719 18720 18721 18722 18723 18724 | [secret+s] défense >sobre comme un chameau >sourd comme un pot >sujet à [caution|débat|interprétation] >sujet à interprétations diverses [>sur|>sûr] de [mon|ton|son|notre|votre|leur] bon droit >têtu comme une [bourrique|mule] >têtu comme un [âne|bourricot|mulet] [tiré+ses] à [quatre|4] épingles [vu+ses] d’ un ?très¿ [bon|mauvais] œil <<- ~2:0>> * flambant >neuf <<- ~1>> * |
︙ | ︙ | |||
18729 18730 18731 18732 18733 18734 18735 | >calibre . *NUM ?[acp|auto|brenneke|browning|british|colt|court|H&K|magnum|mauser|otan|remington|parabellum|russian|S&W|sig|soviet|special|wcf|wsm|winchester]¿ >calibre . *NUM long rifle >calibre *NUM ?[mm|in]¿ >calibre *NUM [*|×] *NUM ?[mm|in]¿ <<- ~2:0>> * <<- =>> =select(\1, ":N") | | > | | | 18737 18738 18739 18740 18741 18742 18743 18744 18745 18746 18747 18748 18749 18750 18751 18752 18753 18754 18755 18756 18757 18758 18759 | >calibre . *NUM ?[acp|auto|brenneke|browning|british|colt|court|H&K|magnum|mauser|otan|remington|parabellum|russian|S&W|sig|soviet|special|wcf|wsm|winchester]¿ >calibre . *NUM long rifle >calibre *NUM ?[mm|in]¿ >calibre *NUM [*|×] *NUM ?[mm|in]¿ <<- ~2:0>> * <<- =>> =select(\1, ":N") une bonne chose [de|d’] réglée <<- ~-2:0>> * [le|la|l’|les] $:N d’ alors <<- ~-2:0>> * [>homme|>femme|>garçon|>garçonnet|>fille|>fillette|>gonzesse|>mec|>meuf|>vieillard] [de|d’] grand talent [>acteur|>architecte|>artiste|>auteur|>chef|>cinéaste|>cuisinier|>dessinateur|>écrivain|>graphiste] [de|d’] grand talent [>ingénieur|>joueur|>musicien|>peintre|>photographe|>réalisateur] [de|d’] grand talent <<- ~2:0>> * __purge_syntagmes_nominaux_matière__ *WORD en acier ?[galvanisé|inoxydable|trempé]¿ ?[clair|foncé|rouge|vert|brun|marron|jaune|orange|bleu|gris|rose|noir|blanc]¿ *WORD en chêne ?massif¿ ?[clair|foncé|rouge|vert|brun|marron|jaune|orange|bleu|gris|rose|noir|blanc]¿ *WORD en bois ?vernis¿ ?[clair|foncé|rouge|vert|brun|marron|jaune|orange|bleu|gris|rose|noir|blanc]¿ |
︙ | ︙ | |||
32890 32891 32892 32893 32894 32895 32896 | __conj_le_la_leur_nom!5__ le *WORD @:V¬:(?:3s|P|Q|Y|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or tagbefore(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\3, ":3?p") ) and not agreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:p") or (morph(\3, ":N.*:p") and morph(\2, ":A"))) | | | | | 32899 32900 32901 32902 32903 32904 32905 32906 32907 32908 32909 32910 32911 32912 32913 32914 32915 32916 32917 32918 32919 32920 32921 32922 32923 32924 32925 32926 32927 32928 32929 32930 32931 | __conj_le_la_leur_nom!5__ le *WORD @:V¬:(?:3s|P|Q|Y|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or tagbefore(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\3, ":3?p") ) and not agreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:p") or (morph(\3, ":N.*:p") and morph(\2, ":A"))) -3>> =suggVerb(\3, ":3s", False, suggMasSing) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3s") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier. la *WORD @:V¬:(?:3s|P|Q|Y|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or tagbefore(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\3, ":3?p") ) and not agreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:p") or (morph(\3, ":N.*:p") and morph(\2, ":A"))) -3>> =suggVerb(\3, ":3s", False, suggFemSing) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3s") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier. [l’|leur] *WORD @:V¬:(?:3s|P|Q|Y|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or tagbefore(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\3, ":3?p") ) and not agreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:p") or (morph(\3, ":N.*:p") and morph(\2, ":A"))) -3>> =suggVerb(\3, ":3s", False, suggSing) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3s") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier. [le|la|l’|leur] *WORD qui @:V¬:(?:3s|P|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]") and morph(\2, ":[NA].*:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or tagbefore(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\4, ":3p") ) -4>> =suggVerb(\4, ":3s") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier. |
︙ | ︙ | |||
32961 32962 32963 32964 32965 32966 32967 | __conj_det_sing_nom__ [un|ce|cet|mon|ton|son|notre|votre] *WORD @:[123][sp]¬:(?:3s|P|Y|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]|>et/") and morph(\2, ":[NA].*:[me]:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|nombre|") or tagbefore(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\3, ":3?p") ) and not agreement(\2, \3) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:p") or (morph(\3, ":N.*:p") and morph(\2, ":A"))) | | | | 32970 32971 32972 32973 32974 32975 32976 32977 32978 32979 32980 32981 32982 32983 32984 32985 32986 32987 32988 32989 32990 32991 32992 | __conj_det_sing_nom__ [un|ce|cet|mon|ton|son|notre|votre] *WORD @:[123][sp]¬:(?:3s|P|Y|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]|>et/") and morph(\2, ":[NA].*:[me]:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|nombre|") or tagbefore(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\3, ":3?p") ) and not agreement(\2, \3) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:p") or (morph(\3, ":N.*:p") and morph(\2, ":A"))) -3>> =suggVerb(\3, ":3s", False, suggSing) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3s") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier. [une|cette|mon|ton|son|ma|ta|sa|notre|votre] *WORD @:[123][sp]¬:(?:3s|P|Y|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]|>et/") and morph(\2, ":[NA].*:[fe]:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or tagbefore(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\3, ":3?p") ) and not agreement(\2, \3) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:p") or (morph(\3, ":N.*:p") and morph(\2, ":A"))) -3>> =suggVerb(\3, ":3s", False, suggSing) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3s") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier. [un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|notre|votre] *WORD qui @:V¬:(?:3s|P|3p!|G|M) <<- /conj/ not tag(\2, "_enum_") and morph(<1, ":C|<start>|>,", ":[YP]|>et/") and morph(\2, ":[NA].*:[si]", ":G") and not ( (value(\2, "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or tagbefore(\1, "_ni_") or value(<1, "|et|ou|")) and morph(\4, ":3p") ) -4>> =suggVerb(\4, ":3s") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du singulier. |
︙ | ︙ | |||
33288 33289 33290 33291 33292 33293 33294 | __conj_det_plur_nom__ [ces|mes|tes|ses|nos|vos|leurs|quelques] @:[NA].*:[pi]¬:V0 @:V¬:(?:3p|P|Y|G|M|A.*:[pi]) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A"))) | | | | | | | | | | | | 33297 33298 33299 33300 33301 33302 33303 33304 33305 33306 33307 33308 33309 33310 33311 33312 33313 33314 33315 33316 33317 33318 33319 33320 33321 33322 33323 33324 33325 33326 33327 33328 33329 33330 33331 33332 33333 33334 33335 33336 33337 33338 33339 33340 33341 33342 33343 33344 33345 33346 33347 33348 33349 33350 33351 33352 33353 33354 33355 33356 33357 33358 33359 33360 33361 33362 33363 33364 33365 33366 | __conj_det_plur_nom__ [ces|mes|tes|ses|nos|vos|leurs|quelques] @:[NA].*:[pi]¬:V0 @:V¬:(?:3p|P|Y|G|M|A.*:[pi]) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A"))) -3>> =suggVerb(\3, ":3p", False, suggAgree, \3, \2) && Accord avec « \1 \2… » incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. [ces|mes|tes|ses|nos|vos|leurs|quelques] @:[NA].*:[pi]¬:V0 qui @:V¬:(?:3p|P|Y|G|M|A.*:e:[pi]) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\4, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) -4>> =suggVerb(\4, ":3p") && Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Ses « chiens » {{coure}} sur ma pelouse. ->> courent TEST: mes filles {{passe}} ce matin ->> passent TEST: vos filles {{passes}} ce matin ->> passent TEST: ces travaux qui {{demande}} tant d’efforts. ->> demandent TEST: vos questions ne {{réclame}} aucune réflexion. ->> réclament TEST: Ces attaques à main armée {{donne}} la chair de poule. ->> donnent TEST: Ces marchands {{passe}} leur temps à se quereller. ->> passent|passes|passés TEST: maints hommes {{oublie}} leurs origines pour mieux se construire un passé glorieux ->> oublient TEST: nos hommes qui {{repartirons}} demain ->> repartiront TEST: le lien entre les agences de renseignement et ces mêmes entreprises pouvait reposer sur des activités de surveillance à proprement parler. TEST: trier les cons et les connes expose à un violent coup de boomerang TEST: Tu penses que quelqu’un qui frappe sa femme et ses enfants est un bon père ? __conj_les_nom__ les @:[NA].*:[pi]¬:V0 @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not ( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) and not agreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A"))) -3>> =suggVerb(\3, ":3p", False, suggAgree, \3, \2) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. les @:[NA].*:[pi] qui @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\4, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) -4>> =suggVerb(\4, ":3p") && Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. TEST: Les abstentions {{est}} présumée manifester un défaut d’opinion marquée ->> sont TEST: Les cours de culture générale nous {{apporte}} de l’ouverture d’esprit. ->> apportent TEST: Les hommes ne le lui {{pardonnes}} pas. ->> pardonnent TEST: Les infirmières à mi-temps ne {{travaille}} pas dans cette aile. ->> travaillent TEST: les données, en quantité plus que suffisante, {{indique}} que… ->> indiquent TEST: Les hommes comme celui-là {{mange}} comme deux. ->> mangent TEST: les récompenses distribuées à parts égales {{était}}… ->> étaient TEST: Les États-Unis d’Amérique se {{compose}} de 50 états. ->> composent TEST: Les enfants en {{manges}}. ->> mangent TEST: Les ombres la {{donnes}} ->> donnent TEST: les grands {{danse}} ->> dansent|dansés TEST: les filles {{passes}} ce matin ->> passent TEST: les marchands {{marche}} ->> marchent TEST: les marchands {{plie}} ->> plient|pliés TEST: il prétendait que les banques universelles « à la française » s’{{était}} bien comportées ->> étaient TEST: les marchands {{paye}} ->> payent|payés TEST: les marchands {{marchande}} ->> marchandent|marchands|marchandés TEST: les marchandes {{paie}} ->> payent|paies|payées TEST: les marchandes {{marchande}} ->> marchandent|marchandes|marchandées TEST: les chattes {{finis}} ->> finissent|finirent|finissaient TEST: les chattes {{manges}} ->> mangent TEST: les religieux qui n’en {{finisse}} pas de mentir. ->> finissent TEST: Les tests grand public de Jean-Paul {{montre}} des résultats surprenants. ->> montrent TEST: les malades que tu as servis {{outrepasse}} leur droit ->> outrepassent TEST: l’écart entre les riches et les pauvres n’était pas si grand. TEST: Les grands hommes politiques |
︙ | ︙ | |||
33371 33372 33373 33374 33375 33376 33377 | __conj_certains_certaines_plusieurs_nom__ [certains|maints] @:[NA].*:[pi] @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) and not agreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A"))) | | | | | 33380 33381 33382 33383 33384 33385 33386 33387 33388 33389 33390 33391 33392 33393 33394 33395 33396 33397 33398 33399 33400 33401 33402 33403 33404 33405 33406 33407 33408 33409 33410 33411 33412 | __conj_certains_certaines_plusieurs_nom__ [certains|maints] @:[NA].*:[pi] @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) and not agreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A"))) -3>> =suggVerb(\3, ":3p", False, suggMasPlur) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. [certaines|maintes] @:[NA].*:[pi] @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) and not agreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A"))) -3>> =suggVerb(\3, ":3p", False, suggFemPlur) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. plusieurs @:[NA].*:[pi] @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\3, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) and not agreement(\2, \3) and not ( morph(\2, "(?:[123][sp]|P)") and not value(<1, "|<start>|,|") ) >>> <<- /conj/ not tag(\-1, "_ngn_") and (morph(\3, ":A.*:s") or (morph(\3, ":N.*:s") and morph(\2, ":A"))) -3>> =suggVerb(\3, ":3p", False, suggPlur) && Accord avec “\1 \2…” incorrect. Conjugaison erronée ou accord nom/adjectif incorrect. <<- /conj/ __else__ -3>> =suggVerb(\3, ":3p") && Conjugaison erronée. Accord avec “\1 \2…”. Le verbe devrait être à la 3ᵉ personne du pluriel. [certains|certaines|plusieurs|maints|maintes] @:[NA].*:[pi] qui @:V¬:(?:3p|P|Y|G|M) <<- /conj/ morph(<1, ":Cs|<start>|>,") and not( morph(\4, ":3s") and before("(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) -4>> =suggVerb(\4, ":3p") && Conjugaison erronée. Accord avec “\1 \2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. |
︙ | ︙ | |||
33418 33419 33420 33421 33422 33423 33424 | TEST: certains imbéciles passés à l’ennemi feraient mieux de se taire. __conj_des_nom__ [<start>|,|(] des @:[NA].*:[pi] @:V¬:(?:3p|P|G|Q|Y|A.*:[pi]|V[23].*:Y) <<- /conj/ morph(>1, ":(?:R|D.*:p)|>au/|<end>|>,") >>> <<- /conj/ not morph(\4, ":[NA]") -4>> =suggVerb(\4, ":3p") && Conjugaison erronée. Accord avec “\2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. | | | 33427 33428 33429 33430 33431 33432 33433 33434 33435 33436 33437 33438 33439 33440 33441 | TEST: certains imbéciles passés à l’ennemi feraient mieux de se taire. __conj_des_nom__ [<start>|,|(] des @:[NA].*:[pi] @:V¬:(?:3p|P|G|Q|Y|A.*:[pi]|V[23].*:Y) <<- /conj/ morph(>1, ":(?:R|D.*:p)|>au/|<end>|>,") >>> <<- /conj/ not morph(\4, ":[NA]") -4>> =suggVerb(\4, ":3p") && Conjugaison erronée. Accord avec “\2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. <<- /conj/ __else__ and not agreement(\3, \4) -4>> =suggVerb(\4, ":3p", False, suggPlur) && Conjugaison erronée. Accord avec “\2 \3…”. Le verbe devrait être à la 3ᵉ personne du pluriel. [<start>|,|(] des @:[NA].*:[pi] qui @:V¬:(?:3p|P|G) <<- /conj/ -5>> =suggVerb(\5, ":3p") && Conjugaison erronée. Accord avec “\2 \3 \4…”. Le verbe devrait être à la 3ᵉ personne du pluriel. *WORD des @:[NA].*:[pi] qui @:V¬:(?:3p|P|G) <<- /conj/ morph(\1, ":[VR]", ":[NA]") --1>> =suggVerb(\-1, ":3p") && Conjugaison erronée. Accord avec “\2 \3 \4…”. Le verbe devrait être à la 3ᵉ personne du pluriel. |
︙ | ︙ | |||
33861 33862 33863 33864 33865 33866 33867 | # indicatif nécessaire __vmode_sujet_indicatif__ <start> [je|j’|tu|il|ils|elle|elles|on|nous|vous|iel|iels] @:S¬:[GIK]|V0a.*:Sq <<- /vmode/ --1>> =suggVerbMode(\-1, ":I", \-2) && Ce verbe ne devrait pas être au subjonctif. | | | | | 33870 33871 33872 33873 33874 33875 33876 33877 33878 33879 33880 33881 33882 33883 33884 33885 33886 33887 33888 33889 33890 33891 33892 33893 33894 33895 33896 33897 33898 33899 33900 33901 | # indicatif nécessaire __vmode_sujet_indicatif__ <start> [je|j’|tu|il|ils|elle|elles|on|nous|vous|iel|iels] @:S¬:[GIK]|V0a.*:Sq <<- /vmode/ --1>> =suggVerbMode(\-1, ":I", \-2) && Ce verbe ne devrait pas être au subjonctif. TEST: Il {{ait}} demandé. ->> a|avait|eut|aura|est TEST: Il en {{conclue}} qu’il a eu raison. ->> conclut|concluait|conclura TEST: j’en {{aie}} marre ->> ai|avais|eus|aurai TEST: j’{{aie}} faim ->> ai|avais|eus|aurai TEST: Tu ne l’y {{aies}} pas vu. ->> as|avais|eus|auras|es # Après/dès que + indicatif __vmode_que_indicatif__ [après|dès] [que|qu’] @:(?:Os|M) @:V.*:S¬:[GI] [après|dès] [que|qu’] @:(?:Os|M) @:V0e.*:S <<- /vmode/ -4>> =suggVerbMode(\4, ":I", \3) && Après « \1 que », le verbe ne s’emploie pas au subjonctif mais à l’indicatif, si l’action s’est déroulée de façon certaine. à mesure [que|qu’] @:(?:Os|M) @:V.*:S¬:[GI] à mesure [que|qu’] @:(?:Os|M) @:V0e.*:S <<- /vmode/ -5>> =suggVerbMode(\5, ":I", \4) && Après « à mesure que », le verbe ne s’emploie pas au subjonctif mais à l’indicatif. TEST: Après qu’il {{ait}} pris la tangeante ->> a|avait|eut|aura|est TEST: Après que nous {{ayons}} mangé son repas. ->> avons|avions|eûmes|aurons TEST: Après que tu {{sois}} parti, il plut. ->> es|étais|fus|seras TEST: Dès qu’il y {{eût}} pensé, il fit ce qu’il fallait pour résoudre le problème. ->> a|avait|eut|aura TEST: à mesure qu’elle {{devienne}} forte ->> devient|devenait|devint|deviendra # verbe que + subjonctif |
︙ | ︙ | |||
33943 33944 33945 33946 33947 33948 33949 | >valoir mieux [que|qu’] @:(?:Os|M) @:I¬:[GYS] mieux >valoir [que|qu’] @:(?:Os|M) @:I¬:[GYS] <<- /vmode/ --1>> =suggVerbMode(\-1, ":S", \-2) && Après “mieux valoir que”, ce verbe devrait être au subjonctif. TEST: Il suffit qu’il {{court}} plus ->> coure|courût TEST: j’attends que tu {{viens}}. ->> viennes|vinsses TEST: Je veux qu’il {{finit}} son repas. ->> finisse|finît | | | | | | | 33952 33953 33954 33955 33956 33957 33958 33959 33960 33961 33962 33963 33964 33965 33966 33967 33968 33969 33970 33971 33972 33973 33974 33975 33976 33977 33978 33979 33980 33981 33982 | >valoir mieux [que|qu’] @:(?:Os|M) @:I¬:[GYS] mieux >valoir [que|qu’] @:(?:Os|M) @:I¬:[GYS] <<- /vmode/ --1>> =suggVerbMode(\-1, ":S", \-2) && Après “mieux valoir que”, ce verbe devrait être au subjonctif. TEST: Il suffit qu’il {{court}} plus ->> coure|courût TEST: j’attends que tu {{viens}}. ->> viennes|vinsses TEST: Je veux qu’il {{finit}} son repas. ->> finisse|finît TEST: Je ne veux pas que tu {{es}} des ennuis ->> sois|fusses|aies TEST: je doute qu’il {{vient}} demain. ->> vienne|vînt TEST: il se peut que nous {{avons}} tort. ->> ayons|eussions TEST: j’ai bon espoir qu’il {{vient}} vite. ->> vienne|vînt TEST: peu s’en est fallu qu’il {{devient}} estropié. ->> devienne|devînt TEST: je m’étonne qu’il {{est}} aussi fragile ->> soit|fût|ait TEST: elle a envie qu’il {{est}} intelligent. ->> soit|fût|ait TEST: il importera que nous {{devenons}} prêts. ->> devenions|devinssions TEST: prends garde que vous {{revenez}} en un seul morceau. ->> reveniez|revinssiez TEST: ça ira, si tant est que Paul {{comprend}} ce qui se passe. ->> comprenne|comprît TEST: faites attention à ce qu’elle ne {{devient}} pas timorée. ->> devienne|devînt TEST: je tiens à ce que vous {{devenez}} grands. ->> deveniez|devinssiez TEST: Veille à ce qu’il y {{est}} des gâteaux. ->> soit|fût|ait TEST: il arrive qu’il {{vient}}, mais rarement ->> vienne|vînt TEST: Vaudrait mieux qu’elle {{meurt}} ->> meure|mourût TEST: il aurait mieux valu qu’elle {{meurt}} ->> meure|mourût TEST: il est possible qu’il {{est}} parti ->> soit|fût|ait TEST: se peut-il que je {{viens}} ->> vienne|vinsse TEST: Je ne doute pas qu’ils réussiront leur mission. TEST: Je me doutais bien qu’Apple pourrait marcher TEST: Je me doutais bien qu’elle me détestait TEST: Je veux que tu sois prudent. TEST: Je souhaitais que tu fusses présent. TEST: Je souhaite qu’il apprenne le français. |
︙ | ︙ | |||
34028 34029 34030 34031 34032 34033 34034 | [<start>|,|(] encore [que|qu’] @:(?:Os|M) @:I¬:(?:[GSK]|If) <<- /vmode/ -5>> =suggVerbMode(\5, ":S", \4) && Après “\2 que”, le verbe s’emploie au subjonctif. jusqu’ à [ce|tant] [que|qu’] @:(?:Os|M) @:I¬:[GYS] <<- /vmode/ --1>> =suggVerbMode(\-1, ":S", \-2) && Après “\1 \2 \3 que”, ce verbe devrait être au subjonctif. | | | | 34037 34038 34039 34040 34041 34042 34043 34044 34045 34046 34047 34048 34049 34050 34051 34052 34053 34054 34055 34056 34057 34058 34059 34060 34061 34062 34063 34064 34065 34066 34067 34068 34069 34070 | [<start>|,|(] encore [que|qu’] @:(?:Os|M) @:I¬:(?:[GSK]|If) <<- /vmode/ -5>> =suggVerbMode(\5, ":S", \4) && Après “\2 que”, le verbe s’emploie au subjonctif. jusqu’ à [ce|tant] [que|qu’] @:(?:Os|M) @:I¬:[GYS] <<- /vmode/ --1>> =suggVerbMode(\-1, ":S", \-2) && Après “\1 \2 \3 que”, ce verbe devrait être au subjonctif. TEST: Quoiqu’il {{est}} parti il y a longtemps, on pense encore beaucoup à lui. ->> soit|fût|ait TEST: quoi qu’il en {{conclut}} ->> conclue|conclût TEST: Avant que tu {{pars}}, je voudrais qu’on discute. ->> partes|partisses TEST: Sans qu’elle {{prend}} le temps d’analyser le problème. ->> prenne|prît TEST: il est possible qu’il {{vient}} demain. ->> vienne|vînt TEST: à condition que tu {{réussis}} ->> réussisses TEST: Pourvu qu’elle {{réussit}}. ->> réussisse|réussît TEST: en admettant que tu {{deviens}} plus talentueuse qu’elle, qu’est-ce que tu feras ? ->> deviennes|devinsses TEST: afin que je {{prends}} des mesures ->> prenne|prisse TEST: à condition qu’il {{finit}} son boulot. ->> finisse|finît TEST: pour peu qu’il {{prend}} son devoir sérieux… ->> prenne|prît TEST: Fais en sorte qu’elle {{court}} à sa perte ->> coure|courût TEST: Nous œuvrons silencieusement de crainte qu’il nous {{entend}}. ->> entende|entendît TEST: En admettant qu’il {{devient}} juste. ->> devienne|devînt TEST: à condition qu’elle le {{pensa}} ->> pense|pensât TEST: non qu’il {{prend}} son temps ->> prenne|prît TEST: si tant est que nous {{prenons}} notre temps ->> prenions|prissions TEST: moyennant qu’elle {{vient}} demain ->> vienne|vînt TEST: en attendant qu’il {{devient}} plus raisonnable ->> devienne|devînt TEST: {{où}} qu’il {{est}}, on le trouvera ->> ou|||soit|fût|ait TEST: Il ne le savait pas, bien qu’il en {{avait}} entendu parler. ->> ait|eût TEST: Bien que je {{prends}} mon mal en patience. ->> prenne|prisse TEST: encore qu’il {{sait}} s’y prendre ->> sache|sût TEST: jusqu’à ce qu’elle {{vient}} avec nous ->> vienne|vînt TEST: C’est un joli bien. Bien qu’il a hérité de son oncle, notez bien. TEST: Bien qu’il avait donné à ses enfants. TEST: si bien que je me suis toujours demandée si cela ne m’avait pas un peu bousillé les yeux |
︙ | ︙ | |||
34228 34229 34230 34231 34232 34233 34234 34235 34236 34237 34238 34239 34240 34241 | TODO: Les côtes sont dans leur ensemble extrêmement découpées. !!! Indécidable !! TEST: Du sable fin grippe les rouages (accord avec ce qui précède). TEST: Du monde noir sortent les envahisseurs (accord avec ce qui suit). !!! Autres tests !! TEST: l’ambulance censée amener Cédric n’est jamais arrivée TEST: Chez les intellectuels, le mot utopie n’a jamais été synonyme de folie, mais il l’a été pour l’homme de la rue. TEST: Les États parties sont les pays qui ont ratifié la Convention du patrimoine mondial. TEST: Ça a l’air de t’aller. TEST: Et je m’en sors. TEST: C’est à chacun d’entre nous de suivre le modèle d’Amos. TEST: C’est toi qui voulais y aller. | > | 34237 34238 34239 34240 34241 34242 34243 34244 34245 34246 34247 34248 34249 34250 34251 | TODO: Les côtes sont dans leur ensemble extrêmement découpées. !!! Indécidable !! TEST: Du sable fin grippe les rouages (accord avec ce qui précède). TEST: Du monde noir sortent les envahisseurs (accord avec ce qui suit). !!! Autres tests !! TEST: Mon père est contre et ma mère se dit pour mais a un discours très hypocrite quand on aborde le sujet. TEST: l’ambulance censée amener Cédric n’est jamais arrivée TEST: Chez les intellectuels, le mot utopie n’a jamais été synonyme de folie, mais il l’a été pour l’homme de la rue. TEST: Les États parties sont les pays qui ont ratifié la Convention du patrimoine mondial. TEST: Ça a l’air de t’aller. TEST: Et je m’en sors. TEST: C’est à chacun d’entre nous de suivre le modèle d’Amos. TEST: C’est toi qui voulais y aller. |
︙ | ︙ |