Overview
Comment: | [core][build][fr][misc] disambiguator: merge functions select() and exclude() in one function -> select() |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk | fr | core | build | misc |
Files: | files | file ages | folders |
SHA3-256: |
cbfed9773f144ab5736436e0232f35b8 |
User & Date: | olr on 2020-12-12 16:54:16 |
Other Links: | manifest | tags |
Context
2020-12-13
| ||
09:50 | [build] fix regex check-in: dc5d496871 user: olr tags: trunk, build | |
2020-12-12
| ||
16:54 | [core][build][fr][misc] disambiguator: merge functions select() and exclude() in one function -> select() check-in: cbfed9773f user: olr tags: trunk, fr, core, build, misc | |
2020-12-11
| ||
20:04 | [lo][fr] update version to download extension check-in: c491b9dc46 user: olr tags: trunk, fr, lo | |
Changes
Modified compile_rules.py from [ac30a9ef24] to [b5b4c7e6b9].
︙ | ︙ | |||
62 63 64 65 66 67 68 | s = re.sub(r"\brealstart\(\)", 'before("^ *$")', s) s = re.sub(r"\bstart0\(\)", 'before0("^ *$|, *$")', s) s = re.sub(r"\brealstart0\(\)", 'before0("^ *$")', s) s = re.sub(r"\bend\(\)", 'after("^ *$|^,")', s) s = re.sub(r"\brealend\(\)", 'after("^ *$")', s) s = re.sub(r"\bend0\(\)", 'after0("^ *$|^,")', s) s = re.sub(r"\brealend0\(\)", 'after0("^ *$")', s) | | | 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | s = re.sub(r"\brealstart\(\)", 'before("^ *$")', s) s = re.sub(r"\bstart0\(\)", 'before0("^ *$|, *$")', s) s = re.sub(r"\brealstart0\(\)", 'before0("^ *$")', s) s = re.sub(r"\bend\(\)", 'after("^ *$|^,")', s) s = re.sub(r"\brealend\(\)", 'after("^ *$")', s) s = re.sub(r"\bend0\(\)", 'after0("^ *$|^,")', s) s = re.sub(r"\brealend0\(\)", 'after0("^ *$")', s) s = re.sub(r"\bselect[(][\\](\d+)", '\\1(dTokenPos, m.start(\\2), m.group(\\2)', s) s = re.sub(r"\bdefine[(][\\](\d+)", 'define(dTokenPos, m.start(\\1)', s) s = re.sub(r"\b(morph|info)[(][\\](\d+)", '\\1((m.start(\\2), m.group(\\2))', s) s = re.sub(r"\b(morph|info)[(]", '\\1(dTokenPos, ', s) s = re.sub(r"\b(sugg\w+|switch\w+)\(@", '\\1(m.group(i[4])', s) s = re.sub(r"\bword\(\s*1\b", 'nextword1(sSentence, m.end()', s) # word(1) s = re.sub(r"\bword\(\s*-1\b", 'prevword1(sSentence, m.start()', s) # word(-1) s = re.sub(r"\bword\(\s*(\d)", 'nextword(sSentence, m.end(), \\1', s) # word(n) |
︙ | ︙ |
Modified compile_rules_graph.py from [611d15ee62] to [d4d961a0bc].
︙ | ︙ | |||
36 37 38 39 40 41 42 | if sCode[0:1] == "=": sCode = sCode[1:] sCode = sCode.replace("__also__", "bCondMemo") sCode = sCode.replace("__else__", "not bCondMemo") sCode = sCode.replace("sContext", "_sAppContext") sCode = re.sub(r"\b(morph0?|morphVC|value|tag|meta|info)[(]\\(\d+)", 'g_\\1(lToken[nTokenOffset+\\2]', sCode) sCode = re.sub(r"\b(morph0?|morphVC|value|tag|meta|info)[(]\\-(\d+)", 'g_\\1(lToken[nLastToken-\\2+1]', sCode) | | | | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | if sCode[0:1] == "=": sCode = sCode[1:] sCode = sCode.replace("__also__", "bCondMemo") sCode = sCode.replace("__else__", "not bCondMemo") sCode = sCode.replace("sContext", "_sAppContext") sCode = re.sub(r"\b(morph0?|morphVC|value|tag|meta|info)[(]\\(\d+)", 'g_\\1(lToken[nTokenOffset+\\2]', sCode) sCode = re.sub(r"\b(morph0?|morphVC|value|tag|meta|info)[(]\\-(\d+)", 'g_\\1(lToken[nLastToken-\\2+1]', sCode) sCode = re.sub(r"\b(select|define|definefrom|rewrite|addmorph|setmeta)[(][\\](\d+)", 'g_\\1(lToken[nTokenOffset+\\2]', sCode) sCode = re.sub(r"\b(select|define|definefrom|rewrite|addmorph|setmeta)[(][\\]-(\d+)", 'g_\\1(lToken[nLastToken-\\2+1]', sCode) sCode = re.sub(r"\b(tagbefore|tagafter)[(][\\](\d+)", 'g_\\1(lToken[nTokenOffset+\\2], dTags', sCode) sCode = re.sub(r"\b(tagbefore|tagafter)[(][\\]-(\d+)", 'g_\\1(lToken[nLastToken-\\2+1], dTags', sCode) sCode = re.sub(r"\bspace[(][\\](\d+)", 'g_space(lToken[nTokenOffset+\\1], lToken[nTokenOffset+\\1+1]', sCode) sCode = re.sub(r"\bspace[(][\\]-(\d+)", 'g_space(lToken[nLastToken-\\1+1], lToken[nLastToken-\\1+2]', sCode) sCode = re.sub(r"\bmorph2[(][\\](\d+)", 'g_morph2(lToken[nTokenOffset+\\1], lToken[nTokenOffset+\\1+1]', sCode) sCode = re.sub(r"\bmorph2[(][\\]-(\d+)", 'g_morph2(lToken[nLastToken-\\1+1], lToken[nLastToken-\\1+2]', sCode) sCode = re.sub(r"\b(morph0?|tag|meta|value)\(>1", 'g_\\1(lToken[nLastToken+1]', sCode) # next token |
︙ | ︙ |
Modified gc_core/js/lang_core/gc_functions.js from [1f04b155c5] to [7edc6f08c2].
︙ | ︙ | |||
347 348 349 350 351 352 353 | } return lToken[i]; } //////// Disambiguator for regex rules | | > > > | < < | | > | | | < < > < > | < < < < < | > > > | < < | | > | | | < < | > > > < | 347 348 349 350 351 352 353 354 355 356 357 358 359 360 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 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 | } return lToken[i]; } //////// Disambiguator for regex rules function select (dTokenPos, nPos, sWord, sPattern, sNegPattern="") { if (!sWord) { return true; } if (!dTokenPos.has(nPos)) { console.log("Error. There should be a token at this position: ", nPos); return true; } let lMorph = gc_engine.oSpellChecker.getMorph(sWord); if (lMorph.length === 0 || lMorph.length === 1) { return true; } let lSelect; if (sPattern) { if (sNegPattern) { lSelect = lMorph.filter( sMorph => sMorph.search(sPattern) !== -1 && sMorph.search(sNegPattern) === -1 ); } else { lSelect = lMorph.filter( sMorph => sMorph.search(sPattern) !== -1 ); } } else if (sNegPattern) { lSelect = lMorph.filter( sMorph => sMorph.search(sNegPattern) === -1 ); } else { console.log("[Grammalecte] Error: missing pattern for disambiguation selection..."); return true; } if (lSelect.length > 0 && lSelect.length != lMorph.length) { dTokenPos.get(nPos)["lMorph"] = lSelect; } return true; } function define (dTokenPos, nPos, sMorphs) { dTokenPos.get(nPos)["lMorph"] = sMorphs.split("|"); return true; } //// Disambiguation for graph rules function g_select (oToken, sPattern, sNegPattern="") { // select morphologies for <oToken> according to <sPattern>, always return true let lMorph = (oToken.hasOwnProperty("lMorph")) ? oToken["lMorph"] : gc_engine.oSpellChecker.getMorph(oToken["sValue"]); if (lMorph.length === 0 || lMorph.length === 1) { return true; } let lSelect; if (sPattern) { if (sNegPattern) { lSelect = lMorph.filter( sMorph => sMorph.search(sPattern) !== -1 && sMorph.search(sNegPattern) === -1 ); } else { lSelect = lMorph.filter( sMorph => sMorph.search(sPattern) !== -1 ); } } else if (sNegPattern) { lSelect = lMorph.filter( sMorph => sMorph.search(sNegPattern) === -1 ); } else { console.log("[Grammalecte] Error: missing pattern for disambiguation selection..."); return true; } if (lSelect.length > 0 && lSelect.length != lMorph.length) { oToken["lMorph"] = lSelect; } return true; } function g_addmorph (oToken, sNewMorph) { |
︙ | ︙ |
Modified gc_core/py/lang_core/gc_functions.py from [fb2b86ce70] to [9e52227dd2].
︙ | ︙ | |||
294 295 296 297 298 299 300 | return lToken[-1] return lToken[i] #### Disambiguator for regex rules | | > > | < < < | | | < | | < | < < < < | | > > | > | < < | | | | < < < < | 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 | return lToken[-1] return lToken[i] #### Disambiguator for regex rules def select (dTokenPos, nPos, sWord, sPattern, sNegPattern=""): "Disambiguation: select morphologies of <sWord> matching <sPattern>" if not sWord: return True if nPos not in dTokenPos: echo("Error. There should be a token at this position: ", nPos) return True lMorph = _oSpellChecker.getMorph(sWord) if not lMorph or len(lMorph) == 1: return True if sPattern: if sNegPattern: lSelect = [ sMorph for sMorph in lMorph if re.search(sPattern, sMorph) and not re.search(sNegPattern, sMorph) ] else: lSelect = [ sMorph for sMorph in lMorph if re.search(sPattern, sMorph) ] elif sNegPattern: lSelect = [ sMorph for sMorph in lMorph if not re.search(sNegPattern, sMorph) ] else: echo("# Error: missing pattern for disambiguation selection...") return True if lSelect and len(lSelect) != len(lMorph): dTokenPos[nPos]["lMorph"] = lSelect return True def define (dTokenPos, nPos, sMorphs): "Disambiguation: set morphologies of token at <nPos> with <sMorphs>" if nPos not in dTokenPos: echo("Error. There should be a token at this position: ", nPos) return True dTokenPos[nPos]["lMorph"] = sMorphs.split("|") return True #### Disambiguation for graph rules def g_select (dToken, sPattern, sNegPattern=""): "Disambiguation: select morphologies for <dToken> according to <sPattern>, removing those matching <sNegPattern>; always return True" lMorph = dToken["lMorph"] if "lMorph" in dToken else _oSpellChecker.getMorph(dToken["sValue"]) if not lMorph or len(lMorph) == 1: return True if sPattern: if sNegPattern: lSelect = [ sMorph for sMorph in lMorph if re.search(sPattern, sMorph) and not re.search(sNegPattern, sMorph) ] else: lSelect = [ sMorph for sMorph in lMorph if re.search(sPattern, sMorph) ] elif sNegPattern: lSelect = [ sMorph for sMorph in lMorph if not re.search(sNegPattern, sMorph) ] else: echo("# Error: missing pattern for disambiguation selection...") return True if lSelect and len(lSelect) != len(lMorph): dToken["lMorph"] = lSelect #echo("DA:", dToken["sValue"], dToken["lMorph"]) return True def g_addmorph (dToken, sNewMorph): |
︙ | ︙ |
Modified gc_lang/fr/perf_memo.txt from [3126d748b9] to [38382db779].
︙ | ︙ | |||
33 34 35 36 37 38 39 | 1.12.2 2020.09.09 13:34 1.50568 0.374504 0.233108 0.0798712 0.0804466 0.0769674 0.171519 0.0945132 0.0165344 0.0019474 1.12.2 2020.09.09 13:35 1.41094 0.359093 0.236443 0.06968 0.0734418 0.0738087 0.169371 0.0946279 0.0167106 0.0019773 1.12.2 2020.09.11 19:16 1.35297 0.330545 0.221731 0.0666998 0.0692539 0.0701707 0.160564 0.0891676 0.015807 0.0045998 1.12.2 2020.09.30 14:50 1.37531 0.330381 0.226012 0.0668063 0.0690574 0.0694727 0.160282 0.0929373 0.0176629 0.0019713 1.12.2 2020.09.30 17:01 1.37168 0.329009 0.248127 0.0670758 0.0701238 0.0910568 0.170556 0.093876 0.0168925 0.0020051 1.12.2 2020.10.01 11:18 1.36493 0.34176 0.24473 0.0691607 0.0720002 0.0903613 0.170067 0.0934571 0.0174357 0.0019585 2.0.0 2020.11.29 00:00 1.27748 0.320919 0.227774 0.0649503 0.0688481 0.0672859 0.163426 0.0878984 0.016784 0.0018913 | | | 33 34 35 36 37 38 39 40 | 1.12.2 2020.09.09 13:34 1.50568 0.374504 0.233108 0.0798712 0.0804466 0.0769674 0.171519 0.0945132 0.0165344 0.0019474 1.12.2 2020.09.09 13:35 1.41094 0.359093 0.236443 0.06968 0.0734418 0.0738087 0.169371 0.0946279 0.0167106 0.0019773 1.12.2 2020.09.11 19:16 1.35297 0.330545 0.221731 0.0666998 0.0692539 0.0701707 0.160564 0.0891676 0.015807 0.0045998 1.12.2 2020.09.30 14:50 1.37531 0.330381 0.226012 0.0668063 0.0690574 0.0694727 0.160282 0.0929373 0.0176629 0.0019713 1.12.2 2020.09.30 17:01 1.37168 0.329009 0.248127 0.0670758 0.0701238 0.0910568 0.170556 0.093876 0.0168925 0.0020051 1.12.2 2020.10.01 11:18 1.36493 0.34176 0.24473 0.0691607 0.0720002 0.0903613 0.170067 0.0934571 0.0174357 0.0019585 2.0.0 2020.11.29 00:00 1.27748 0.320919 0.227774 0.0649503 0.0688481 0.0672859 0.163426 0.0878984 0.016784 0.0018913 2.0.0 2020.11.30 11:29 1.41342 0.337644 0.237702 0.0724714 0.0806047 0.0743924 0.190887 0.101287 0.0176239 0.0022744 |
Modified gc_lang/fr/rules.grx from [d23f38e310] to [4d58431d97].
︙ | ︙ | |||
2364 2365 2366 2367 2368 2369 2370 | le [*NUM|*WORDORD] <<- =>> select(\1, ":D") la *WORD <<- not value(<1, "|je|j’|il|on|elle|nous|vous|ils|elles|iel|iels|ne|n’|me|m’|te|t’|se|s’|") and (morph(\2, ":[NABWM]", "*") or value(\2, "|plus|moins|plupart|")) =>> select(\1, ":D") <<- __else__ and morph(\2, ":[ISKYPE]", "*") =>> select(\1, ":Ov") | | | | | 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 | le [*NUM|*WORDORD] <<- =>> select(\1, ":D") la *WORD <<- not value(<1, "|je|j’|il|on|elle|nous|vous|ils|elles|iel|iels|ne|n’|me|m’|te|t’|se|s’|") and (morph(\2, ":[NABWM]", "*") or value(\2, "|plus|moins|plupart|")) =>> select(\1, ":D") <<- __else__ and morph(\2, ":[ISKYPE]", "*") =>> select(\1, ":Ov") <<- __else__ and not value(<1, "|le|ce|du|") =>> select(\1, "", ":N") les *WORD <<- not value(<1, "|je|j’|il|on|elle|nous|vous|ils|elles|iel|iels|ne|n’|me|m’|te|t’|se|s’|") and (morph(\2, ":[NABWM]", "*") or value(\2, "|plus|moins|")) =>> select(\1, ":D") <<- __else__ and morph(\2, ":[ISKYPE]", "*") =>> select(\1, ":Ov") leur *WORD <<- not value(<1, "|le|du|") =>> select(\1, "", ":N") <<- not value(<1, "|je|j’|il|on|elle|nous|vous|ils|elles|iel|iels|ne|n’|me|m’|te|t’|se|s’|") and (morph(\2, ":[NABWM]", "*") or value(\2, "|plus|moins|")) =>> select(\1, ":D") <<- __else__ and morph(\2, ":[ISKYPE]", "*") =>> select(\1, ":Ov") leurs *WORD <<- not value(<1, "|les|des|") =>> select(\1, "", ":N") en [*NUM|*HOUR] <<- =>> select(\1, ":R") en *WORD <<- value(<1, "|j’|n’|m’|t’|s’|l’|c’|") or morph(\2, ":[ISKYPE]", "*") =>> select(\1, ":Ov") <<- __else__ and not morph(<1, ":O[sv]") and morph(\2, ":", ":[ISKYPE]") =>> select(\1, ":R") |
︙ | ︙ | |||
2399 2400 2401 2402 2403 2404 2405 | y *WORD <<- value(<1, "|j’|n’|m’|t’|s’|l’|c’|") or morph(\2, ":(?:[123][sp]|P|Y)") =>> select(\1, ":Ov") __da_nous_vous__ [ne|n’] [nous|vous] | | | | | | 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 2434 2435 2436 2437 2438 2439 | y *WORD <<- value(<1, "|j’|n’|m’|t’|s’|l’|c’|") or morph(\2, ":(?:[123][sp]|P|Y)") =>> select(\1, ":Ov") __da_nous_vous__ [ne|n’] [nous|vous] <<- =>> select(\2, "", ":Os") nous [>avoir|>être] <<- not morph(\2, ":1p") =>> select(\1, "", ":Os") vous [>avoir|>être] <<- not morph(\2, ":2p") =>> select(\1, "", ":Os") __da_préverbes_verbes__ [ne|n’] ?[le|la|l’|les|nous|vous|lui|leur]¿ @:¬:[OX] [ne|n’] [nous|vous] [le|la|l’|les|en] @:¬:[OX] [ne|n’] [le|la|l’|les] [lui|leur|en] @:¬:[OX] [ne|n’] [lui|leur] en @:¬:[OX] n’ ?[en|y]¿ @:¬:[OX] <<- =>> select(\-1, ":[ISKYPE]") <<- /-1>> neg [ne|n’] [lui|en|leur|le|la|l’|les|nous|vous|y] [me|m’|te|t’|se|s’] [en|le|la|l’|les|y] <<- =>> select(\2, ":Ov") lui @:[ISKQYP]¬:3s <<- =>> select(\1, ":Ov") lui <<- morph(<1, ":R") =>> select(\1, "", ":(?:Q|Os)") [me|m’|te] ?[le|la|l’|les|en|y]¿ @:¬:[OX] <<- =>> select(\-1, ":[ISKYPE]") [se|s’] ?[le|la|l’|les|en|y]¿ @:¬:[OX] <<- =>> select(\-1, ":[ISKYP]") |
︙ | ︙ | |||
2491 2492 2493 2494 2495 2496 2497 | $:M @:[123]s¬:[QWA] <<- \2.islower() and morph(<1, ":Cs|<start>") =>> select(\2, ":[123][sp]") <start> $:M @:(?:[123]s|Ov)¬:A <<- =>> =select(\2, ":M") [que|qu’|combien|pourquoi|qui|quand|où] ?[en|y]¿ *WORD | | | | | | | | | | | | | 2491 2492 2493 2494 2495 2496 2497 2498 2499 2500 2501 2502 2503 2504 2505 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 2557 2558 2559 2560 2561 2562 2563 2564 2565 2566 2567 2568 2569 2570 2571 2572 2573 2574 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 | $:M @:[123]s¬:[QWA] <<- \2.islower() and morph(<1, ":Cs|<start>") =>> select(\2, ":[123][sp]") <start> $:M @:(?:[123]s|Ov)¬:A <<- =>> =select(\2, ":M") [que|qu’|combien|pourquoi|qui|quand|où] ?[en|y]¿ *WORD <<- =>> select(\-1, "", ":E") [<start>|,|(] quelqu’ un *WORD <<- =>> select(\4, "", ":N") >falloir [pouvoir|savoir|vouloir|manger|conseiller] <<- =>> select(\2, "", ":N") v’nir <<- ~>> venir s’ ra <<- ~>> ␣sera s’ ras <<- ~>> ␣seras nous ?[ne|n’]¿ ?[le|l’|en|nous|vous|lui|leur|y]¿ sommes nous ?[ne|n’]¿ [nous|vous] [le|l’|en|y] sommes nous ?[ne|n’]¿ [lui|leur] en sommes <<- not morph(<1, ":R") =>> select(\-1, ":V0") [de|d’|par|pour|sans|contre] [elle|lui|nous|vous|eux|elles|celui-ci|celui-là|celle-ci|celle-là|ceux-ci|ceux-là|celles-ci|celles-là] <<- =>> select(\-1, ":Oo") après avoir $:Q <<- =>> select(\2, "", ":N") __da_jours__ [lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche] <<- not morph(<1, ":[DA].*:[me]:[si]") =>> select(\1, ":W") __da_a__ [ça|ceci|cela] a <<- =>> select(\2, ":V") __da_autour__ autour [de|du|d’|des] <<- not morph(<1, ":D.*:[me]") =>> select(\1, "", ":N") __da_avant__ avant [que|qu’|$:D] <<- not value(<1, "|l’|quel|cet|un|mon|ton|son|notre|votre|leur|") =>> select(\1, ":R") __da_bien__ bien [que|qu’] <<- not morph(<1, ":[DNA].*:[me]:[si]") =>> select(\1, "", ":[AW]") bien $:Y <<- not morph(<1, ":[DNA].*:[me]:[si]") =>> select(\1, ":W") bien *WORD <<- not value(\2, "|que|qu’|") =>> select(\1, "", ":G") __da_car__ car <<- not morph(<1, ":[DA].*:[me]:[si]") =>> select(\1, ":G") __da_ce__ c’ [>avoir|>être] <<- =>> select(\1, ":O") ce @:[NA].*:[me]:[si]¬:V0e <<- not value(<1, "|il|ils|on|ne|n’|") =>> select(\1, ":D") and select(\2, ":[NA]") ce @:3[sp]¬:[NA].*:[me]:[si] ce [ne|n’] <<- =>> select(\1, ":O") ce [que|qu’|qui|dont|pour|par] <<- =>> select(\1, "", ":D") __da_cela__ [<start>|,|(] cela [ne|n’|me|m’|te|t’|se|s’] [<start>|,|(] cela [le|la|l’|les|en|nous|vous|lui|leur|y] @:(?:[123]s|P) [<start>|,|(] cela [nous|vous] [le|la|l’|les|en|y] @:(?:[123]s|P) [<start>|,|(] cela [le|la|l’|les] [lui|leur|en|y] @:(?:[123]s|P) [<start>|,|(] cela [lui|leur|y] en @:(?:[123]s|P) [<start>|,|(] cela @:(?:[123]s|P) <<- =>> select(\2, "", ":V") __da_certains_certaines__ certains @:[NA].*:[me]:[pi]¬:(?:G|3[sp]) <<- =>> select(\1, "", ":O") certaines @:[NA].*:[fe]:[pi]¬:(?:G|3[sp]) <<- =>> select(\1, "", ":O") certains [ne|n’|me|m’|te|t’|se|s’] @:3p certains [le|la|l’|les|en|nous|vous|lui|leur|y] @:3p certains [nous|vous] [le|la|l’|les|en|y] @:3p certains [le|la|l’|les] [lui|leur|en|y] @:3p certains [lui|leur|y] en @:3p certains @:3p¬:(?:G|[NA].*:[me]:[pi]|V.e) |
︙ | ︙ | |||
2607 2608 2609 2610 2611 2612 2613 | [la|les|des|une|cette|ma|ta|sa|notre|votre|leur+s] >lutte ?$:A¬:G¿ contre [>accusation|>action|>assaut|>attentat|>croisade|>guerre] ?$:A¬:G¿ contre [>guerre|>jihad|>offensive|>ratonnade|>sortilège|>violence] ?$:A¬:G¿ contre [>antidote|>crime|>philtre|>remède|>sérum|>vaccin|>solution] ?$:A¬:G¿ contre <<- =>> select(\-1, ":R") contre | | | 2607 2608 2609 2610 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 | [la|les|des|une|cette|ma|ta|sa|notre|votre|leur+s] >lutte ?$:A¬:G¿ contre [>accusation|>action|>assaut|>attentat|>croisade|>guerre] ?$:A¬:G¿ contre [>guerre|>jihad|>offensive|>ratonnade|>sortilège|>violence] ?$:A¬:G¿ contre [>antidote|>crime|>philtre|>remède|>sérum|>vaccin|>solution] ?$:A¬:G¿ contre <<- =>> select(\-1, ":R") contre <<- not morph(<1, ":[DA].*:[me]:[si]") =>> select(\1, "", ":N") __da_dans__ dans <<- not morph(<1, ":D.*:p|>[a-zé-]+ième/") =>> select(\1, ":R") __da_de__ [de|d’] [me|m’|te|t’|se|s’|en|y|nous|vous|moi|toi|soi|lui|elle|iel|eux|elles|iels] |
︙ | ︙ | |||
2669 2670 2671 2672 2673 2674 2675 | >différence entre >choisir entre <<- =>> select(\-1, ":R") __da_environ__ environ [$:B|*NUM] | | | | | | | 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 | >différence entre >choisir entre <<- =>> select(\-1, ":R") __da_environ__ environ [$:B|*NUM] <<- not value(<1, "|l’|un|cet|quel|") =>> select(\1, "", ":N") __da_été__ >avoir ?@:[WX]¿ été <<- =>> select(\1, ":V0") and select(\-1, ":Q") [un|l’|quel|cet|mon|ton|son|notre|votre|leur] été <<- =>> select(\-1, ":N") __da_face__ face [à|au|aux] <<- not morph(<1, ":(?:D|A.*:[fe]:[si])") =>> select(\1, "", ":N") <<- __else__ =>> select(\1, ":N") __da_grâce__ grâce [à|au|aux] <<- not morph(<1, ":(?:D|A.*:[fe]:[si])") =>> select(\1, "", ":N") __da_grave__ grave <<- morph(<1, ":D") =>> select(\1, "", ":W") __da_mais__ mais <<- not value(<1, "|les|ces|des|mes|tes|ses|nos|vos|leurs|quelques|") =>> select(\1, "", ":N") n’ en >pouvoir mais <<- =>> define(\-1, ">mais/:W") __da_mal__ pas mal <<- =>> select(\2, ":W") |
︙ | ︙ | |||
2735 2736 2737 2738 2739 2740 2741 | __da_point__ [le|l’|un|mon|notre|votre|leur|chaque|mes|tes|ses|nos|vos|leurs|quel|quels|quelle|quelles] point <<- =>> select(\2, ":N") [ne|n’] $:V point [ne|n’] point | | | | | 2735 2736 2737 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 2753 2754 2755 2756 2757 2758 2759 2760 2761 2762 2763 2764 2765 2766 2767 2768 | __da_point__ [le|l’|un|mon|notre|votre|leur|chaque|mes|tes|ses|nos|vos|leurs|quel|quels|quelle|quelles] point <<- =>> select(\2, ":N") [ne|n’] $:V point [ne|n’] point <<- =>> select(\-1, "", ":N") __da_nos__ nos $¬:B <<- =>> select(\1, ":D") __da_parmi__ parmi *WORD <<- =>> select(\1, ":R") __da_pas__ pas <<- morph(<1, ":[VWX]") =>> select(\1, "", ":N") pourquoi pas <<- =>> select(\2, ":X") __da_passé__ passé [<end>|,|$:R] <<- =>> select(\1, "", ":G") __da_pendant__ ## évènements pendant ?tout¿ [le|l’|ce|cet|mon|ton|son|notre|votre|leur] ?[interminable|long]¿ || [accouchement|acte|âge|colloque|confinement|conflit|cours|couronnement|déjeuner|dîner|diner|entracte|entrainement|entraînement|entretien|examen|événement|évènement|interrègne|jihad|mandat|mariage|match|passage|procès|repas|règne|sommeil|souper|temps|travail|voyage] pendant ?toute¿ [la|l’|cette|ma|ta|sa|mon|ton|son|notre|votre|leur] ?[interminable|longue]¿ || [adolescence|cérémonie|compétition|crise|croisade|dictature|durée|enfance|étude|existence|guerre|interview|intronisation|messe|partie|pause|période|prière|querelle|rencontre|récréation|régence|retraite|réunion|révolution|séance|thérapie|traversée|tyrannie|union|vacance|vie] |
︙ | ︙ | |||
2782 2783 2784 2785 2786 2787 2788 | <<- =>> select(\1, ":R") __da_personne__ personne [ne|n’] <<- not morph(<1, ":[DA].*:[fe]:[si]") =>> select(\1, ":O") n’ $:V personne | | | 2782 2783 2784 2785 2786 2787 2788 2789 2790 2791 2792 2793 2794 2795 2796 | <<- =>> select(\1, ":R") __da_personne__ personne [ne|n’] <<- not morph(<1, ":[DA].*:[fe]:[si]") =>> select(\1, ":O") n’ $:V personne <<- =>> select(\-1, "", ":N") [une|le|la|les|des|chaque|quelque|quelques|cet|cette|ces|ma|ta|sa|mes|tes|ses|au|aux|notre|votre|nos|vos|leur|leurs|quel|quelle|quels|quelles] personne [une|la|cette|ma|ta|sa|votre|votre|leur|quel|quelle|quelque] tierce personne <<- =>> select(\-1, ":N") __da_plus_moins__ [plus|moins] |
︙ | ︙ | |||
2807 2808 2809 2810 2811 2812 2813 | <<- not value(<1, "|je|ne|n’|") =>> select(\1, ":W") [un|une|des|le|la|l’|les|mon|ton|son|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs] [plus|moins] @:[AW]¬:G <<- =>> select(\2, ":W") __da_pourvu__ pourvu | | | | | 2807 2808 2809 2810 2811 2812 2813 2814 2815 2816 2817 2818 2819 2820 2821 2822 2823 2824 2825 2826 2827 2828 2829 2830 2831 2832 2833 2834 2835 2836 | <<- not value(<1, "|je|ne|n’|") =>> select(\1, ":W") [un|une|des|le|la|l’|les|mon|ton|son|ma|ta|sa|notre|votre|leur|mes|tes|ses|nos|vos|leurs] [plus|moins] @:[AW]¬:G <<- =>> select(\2, ":W") __da_pourvu__ pourvu <<- not value(>1, "|que|qu’|") =>> select(\1, "", ":G") __da_puis__ puis <<- not value(<1, "|je|ne|n’|le|l’|leur|") =>> select(\1, "", ":V") __da_quelque__ quelque *NUM <<- =>> select(\1, ":W") quelque [autre|chose|temps|part] <<- =>> select(\1, ":D") __da_SA__ SA <<- morph(<1, ":D") =>> select(\1, "", ":D") __da_selon__ selon @:(?:[DBM]|Oo) <<- =>> select(\1, ":R") selon [,|<end>] <<- =>> select(\1, ":W") |
︙ | ︙ | |||
2844 2845 2846 2847 2848 2849 2850 | <<- =>> select(\1, ":W") and select(\2, ":W") si @:[AW]¬:G <<- morph(<1, ":N", ":D") =>> select(\1, ":W") __da_son_ton__ [le|ce|cet|mon|ton|son|quel|quelque|notre|votre|un|leur|ledit|dudit|chaque|des|les|quelques|quel|quelle|quels|quelles] [son|ton] | | | | | 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 2858 2859 2860 2861 2862 2863 2864 2865 2866 2867 2868 2869 2870 2871 2872 2873 2874 2875 2876 2877 2878 2879 2880 2881 2882 | <<- =>> select(\1, ":W") and select(\2, ":W") si @:[AW]¬:G <<- morph(<1, ":N", ":D") =>> select(\1, ":W") __da_son_ton__ [le|ce|cet|mon|ton|son|quel|quelque|notre|votre|un|leur|ledit|dudit|chaque|des|les|quelques|quel|quelle|quels|quelles] [son|ton] <<- =>> select(\2, "", ":D") [son|ton] *WORD <<- morph(\2, ":G", ":[NA]") or value(<1, "|du|le|ce|un|quel|mon|") =>> select(\1, "", ":D") <<- __else__ and morph(\2, ":N", "*") =>> select(\1, ":D") [son|ton] , <<- =>> select(\1, ":N") __da_sans__ sans [que|qu’] <<- =>> select(\1, ":C") __da_sous_sur__ sous @:[BD] <<- not morph(<1, ":[DA].*:[me]:[pi]") =>> select(\1, ":R") sur @:[BD] <<- not morph(<1, ":(?:V[0123]e|[DN].*:[me]:[si])") =>> select(\1, ":R") __da_tout__ tout <<- morph(<1, "<start>|>,") =>> select(\1, "", ":N") tout @:N.*:[me]:[si]¬:(?:[AGW]|3s) <<- =>> select(\1, ":D") tout le monde <<- =>> select(\1, ":W") and select(\2, ":D") and select(\-1, ":N") |
︙ | ︙ | |||
2941 2942 2943 2944 2945 2946 2947 | __da_vis_à_vis__ vis-à-vis [de|des|du|d’] <<- not morph(<1, ":(?:[DA].*:[me]|R)") =>> select(\1, ":R") __da_vu__ vu [<end>|,|$:R] | | | 2941 2942 2943 2944 2945 2946 2947 2948 2949 2950 2951 2952 2953 2954 2955 | __da_vis_à_vis__ vis-à-vis [de|des|du|d’] <<- not morph(<1, ":(?:[DA].*:[me]|R)") =>> select(\1, ":R") __da_vu__ vu [<end>|,|$:R] <<- =>> select(\1, "", ":G") __da_y_compris__ y compris <<- not value(<1, "|n’|j’|tu|t’|m’|s’|") ~>> ␣ <<- __also__ =>> define(\1, ":G:R:LR") |
︙ | ︙ | |||
2965 2966 2967 2968 2969 2970 2971 | <<- =>> select(\-1, ":N") __da_groupe_nominal__ à [la|l’|leur] @:[NA]¬:Y [sans|pour|par] [la|l’|le|les|leur] @:[NA]¬:Y [à|par] @:[NA]¬:Y | | | | | | | | | | | | 2965 2966 2967 2968 2969 2970 2971 2972 2973 2974 2975 2976 2977 2978 2979 2980 2981 2982 2983 2984 2985 2986 2987 2988 2989 2990 2991 2992 2993 2994 2995 2996 2997 2998 2999 3000 3001 3002 3003 3004 3005 3006 3007 3008 3009 3010 3011 3012 3013 3014 3015 3016 3017 3018 3019 3020 3021 3022 3023 3024 3025 3026 3027 3028 3029 3030 3031 3032 3033 3034 3035 3036 3037 3038 3039 3040 3041 3042 3043 3044 3045 3046 3047 3048 3049 3050 3051 3052 3053 3054 3055 3056 3057 3058 3059 3060 | <<- =>> select(\-1, ":N") __da_groupe_nominal__ à [la|l’|leur] @:[NA]¬:Y [sans|pour|par] [la|l’|le|les|leur] @:[NA]¬:Y [à|par] @:[NA]¬:Y <<- =>> select(\-1, "", ":V") [de|d’] ?[la|l’|leur]¿ @:¬:[YD] <<- not value(<1, "|semblant|") =>> select(\-1, "", ":V") du @:[NA].*:[me]:[si]¬:[GY] <<- =>> select(\2, ":[NA]") aucun @:[NA].*:[me]:s¬:G aucune @:[NA].*:[fe]:s¬:G <<- =>> select(\1, ":D") and select(\2, ":N") certains @:[NA].*:[me]:p¬:(?:G|3p|V0) certaines @:[NA].*:[fe]:p¬:(?:G|3p|V0) <<- =>> select(\1, ":D") and select(\2, ":[NA]") d’ [un|une] *WORD <<- =>> select(\2, ":D") and select(\3, "", ":V") [un|quel|cet|l’|notre|votre] été <<- =>> select(\2, ":N") l’ [un|une] *WORD <<- not value(\3, "|plus|") =>> select(\3, ":[123][sp]") [des|chaque|quelque|quelques|cet|cette|ces|mon|ma|ta|mes|tes|ses|au|aux|notre|votre|nos|vos|leurs|aucun|aucune] *WORD <<- not morph(\-1, ":V0") =>> select(\-1, "", ":V") ce @:[NA].*:[me]:[si]¬:(?:3[sp]|V0) <<- not value(<1, "|il|elle|on|iel|ils|elles|iels|ne|n’|") =>> select(\-1, ":[NA]") sa @¬:(?:V0|3s) <<- =>> select(\2, "", ":V") les ~.es$ <<- not value(<1, "|tu|ne|n’|me|m’|te|t’|se|s’|nous|vous|") and morph(\2, ":V1.*Ip.*:2s") and not tagbefore(\1, "_2s_") and not value(>1, "|tu|pas|jamais|") =>> select(\2, "", ":V") [un|une] *WORD <<- not value(<1, "|l’|quelqu’|quelqu|") and not value(\2, "|a|fut|fût|est|fait|") and not morph(\2, ":P") =>> select(\2, "", ":V") [/_VCint_|/_VCimp_] [le|la|l’|leur|les] $:¬:Y <<- =>> select(\2, ":D") de [>tel|ce|cet|cette|ces|mon|ma|ta|sa|mes|tes|ses|notre|votre|plein|pleine] *WORD <<- =>> select(\3, "", ":V") de [tous|toutes] les *WORD <<- =>> select(\4, ":[NA]") en [plein|pleine] *WORD <<- =>> select(\3, ":[NA]") en tant que *WORD <<- =>> select(\4, ":[NA]") la nuit <<- =>> select(\2, ":N") ni *WORD <<- =>> select(\-1, ":N") nombre [de|d’|des] <<- morph(<1, ":[VR]|<start>|>,") =>> select(\1, ":N") par *WORD <<- =>> select(\2, "", ":[123][sp]") plein [de|d’] @:[AN] <<- not morph(<1, ":(?:D.*:m|V[0-3]e)") =>> =define(\1, ":G") plusieurs @:[NA].*:p¬:(?:G|3p|V0) <<- =>> select(\1, ":D") and select(\2, ":[NA]") sans @:[ISKP] <<- =>> select(\2, ":[NA]") source [de|d’] <<- morph(<1, ":V[0-3]e") =>> define(\1, ":ÉV") très *WORD <<- =>> select(\2, "", ":[123][sp]") __da_groupe_nominal__cas_particuliers__ [au|aux] alentour <<- =>> select(\2, ":N") avions |
︙ | ︙ | |||
3072 3073 3074 3075 3076 3077 3078 | <<- =>> define(\1, ":GN:m:p") l’ une comme l’ autre <<- ~>> ␣ <<- =>> define(\1, ":GN:f:p") en peine | | | 3072 3073 3074 3075 3076 3077 3078 3079 3080 3081 3082 3083 3084 3085 3086 | <<- =>> define(\1, ":GN:m:p") l’ une comme l’ autre <<- ~>> ␣ <<- =>> define(\1, ":GN:f:p") en peine <<- not value(<1, "|ne|n’|j’|on|il|elle|iel|") =>> select(\2, "", ":V") m’ dame <<- ~>> ␣madame m’ sieur <<- ~>> ␣ |
︙ | ︙ | |||
3101 3102 3103 3104 3105 3106 3107 | TEST: Votre question fait référence à un fait divers déroutant TEST: il s’ra bien heureux d’vous voir. TEST: tu s’ras bien content d’nous voir. __da_couleurs_invariables__ *WORD [abricot|acajou|amarante|anthracite|aubergine|brique|caca|café|cannelle|caramel|carmin|carotte|cerise|châtaigne|chocolat|citron|corail|crème|fuchsia|groseille|havane|jonquille|marron|mastic|nacarat|ocre|olive|paille|parme|pastel|pervenche|pie|prune|sable|tabac|vermillon] | | | 3101 3102 3103 3104 3105 3106 3107 3108 3109 3110 3111 3112 3113 3114 3115 | TEST: Votre question fait référence à un fait divers déroutant TEST: il s’ra bien heureux d’vous voir. TEST: tu s’ras bien content d’nous voir. __da_couleurs_invariables__ *WORD [abricot|acajou|amarante|anthracite|aubergine|brique|caca|café|cannelle|caramel|carmin|carotte|cerise|châtaigne|chocolat|citron|corail|crème|fuchsia|groseille|havane|jonquille|marron|mastic|nacarat|ocre|olive|paille|parme|pastel|pervenche|pie|prune|sable|tabac|vermillon] <<- morph(\1, ":(?:D.*:p|B)") =>> select(\2, "", ":A:e:i") __da_noms_propres__ Concorde <<- not morph(<1, ":D.*:f") =>> addmorph(\1, ">Concorde/:MP:m:i") Mustang |
︙ | ︙ | |||
16349 16350 16351 16352 16353 16354 16355 16356 16357 16358 16359 16360 16361 16362 | en tout état [de|d’] cause en tout premier lieu en toute bonne foi en ?toute¿ connaissance [de|d’] cause en toute [confiance|discrétion|franchise|hâte|impartialité|impunité|innocence|légalité|liberté|logique|modestie|sécurité|simplicité] en travers [de|d’] la gorge en trompe-l’œil en vase clos en vigueur en vitesse ?[subsonique|supersonique|subluminique|superluminique]¿ en voie [de|d’] développement en vrac en y [réfléchissant|songeant] bien en [mon|ton|son|leur|notre|votre] âme et conscience | > | 16349 16350 16351 16352 16353 16354 16355 16356 16357 16358 16359 16360 16361 16362 16363 | en tout état [de|d’] cause en tout premier lieu en toute bonne foi en ?toute¿ connaissance [de|d’] cause en toute [confiance|discrétion|franchise|hâte|impartialité|impunité|innocence|légalité|liberté|logique|modestie|sécurité|simplicité] en travers [de|d’] la gorge en trompe-l’œil en ultime recours en vase clos en vigueur en vitesse ?[subsonique|supersonique|subluminique|superluminique]¿ en voie [de|d’] développement en vrac en y [réfléchissant|songeant] bien en [mon|ton|son|leur|notre|votre] âme et conscience |
︙ | ︙ | |||
16943 16944 16945 16946 16947 16948 16949 | <<- ~2>> * pas très <<- morph(<1, ":[NV]", ":A:[em]:[is]") ~>> * personne d’ autre [que|qu’] [moi|moi-même|toi|toi-même|lui|lui-même|elle|elle-même|elles|elles-mêmes|nous|nous-même|nous-mêmes|vous|vous-même|vous-mêmes|eux-mêmes|iel|iels|iel-même|iels-mêmes] <<- ~2:0>> * | | | 16944 16945 16946 16947 16948 16949 16950 16951 16952 16953 16954 16955 16956 16957 16958 | <<- ~2>> * pas très <<- morph(<1, ":[NV]", ":A:[em]:[is]") ~>> * personne d’ autre [que|qu’] [moi|moi-même|toi|toi-même|lui|lui-même|elle|elle-même|elles|elles-mêmes|nous|nous-même|nous-mêmes|vous|vous-même|vous-mêmes|eux-mêmes|iel|iels|iel-même|iels-mêmes] <<- ~2:0>> * <<- =>> select(\1, "", ":N") pour ou contre <<- ~2:0>> * qui ce [jour-là|matin-là|après-midi-là|soir-là|mois-là|siècle-là|millénaire-là] qui cette [nanoseconde-là|milliseconde-là|seconde-là|minute-là|heure-là|nuit-là|matinée-là|soirée-là|journée-là|semaine-là|année-là|décennie-là] qui à part [moi|toi|lui|elle|nous|vous|eux|elles] |
︙ | ︙ | |||
17739 17740 17741 17742 17743 17744 17745 17746 17747 17748 17749 17750 17751 17752 | >livret d’ épargne ?[bancaire|populaire|salariale]¿ >local à louer >locomotive à vapeur >loi d’ airain >longueur d’ avance >lopin [de|d’] terre ?[desséchée|glaiseuse|grise|jaune|noire|ocre|rouge|sableuse|sèche]¿ >lune [de|d’] miel >lutte à outrance >machine à [café|coudre|écrire|laver|sous|vapeur|voter] >machine à remonter le temps >machine [de|d’] guerre >maillot [de|d’] bain >main d’ œuvre >maison à colombages | > | 17740 17741 17742 17743 17744 17745 17746 17747 17748 17749 17750 17751 17752 17753 17754 | >livret d’ épargne ?[bancaire|populaire|salariale]¿ >local à louer >locomotive à vapeur >loi d’ airain >longueur d’ avance >lopin [de|d’] terre ?[desséchée|glaiseuse|grise|jaune|noire|ocre|rouge|sableuse|sèche]¿ >lune [de|d’] miel lunettes [de|d’] [soleil|vue] >lutte à outrance >machine à [café|coudre|écrire|laver|sous|vapeur|voter] >machine à remonter le temps >machine [de|d’] guerre >maillot [de|d’] bain >main d’ œuvre >maison à colombages |
︙ | ︙ | |||
19112 19113 19114 19115 19116 19117 19118 | __da_le_la_les_leur2__ [<start>|,|(] c’ ?[ne|n’]¿ >être [le|la|l’|les] @:[NA]¬:G [<start>|,|(] ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿ ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ *WORD [le|la|l’|les] @:[NA]¬:[YG] [<start>|,|(] ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿ ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] *WORD [le|la|l’|les] @:[NA]¬:[YG] [<start>|,|(] ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿ ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] *WORD [le|la|l’|les] @:[NA]¬:[YG] [<start>|,|(] ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿ ?[ne|n’]¿ [lui|leur|y] en *WORD [le|la|l’|les] @:[NA]¬:[YG] | | | | | | | | | | | 19114 19115 19116 19117 19118 19119 19120 19121 19122 19123 19124 19125 19126 19127 19128 19129 19130 19131 19132 19133 19134 19135 19136 19137 19138 19139 19140 19141 19142 19143 19144 19145 19146 19147 19148 19149 19150 19151 19152 19153 19154 19155 19156 19157 19158 | __da_le_la_les_leur2__ [<start>|,|(] c’ ?[ne|n’]¿ >être [le|la|l’|les] @:[NA]¬:G [<start>|,|(] ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿ ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ *WORD [le|la|l’|les] @:[NA]¬:[YG] [<start>|,|(] ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿ ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] *WORD [le|la|l’|les] @:[NA]¬:[YG] [<start>|,|(] ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿ ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] *WORD [le|la|l’|les] @:[NA]¬:[YG] [<start>|,|(] ?[je|tu|il|elle|on|nous|vous|ils|elles|iel|iels]¿ ?[ne|n’]¿ [lui|leur|y] en *WORD [le|la|l’|les] @:[NA]¬:[YG] <<- morph(\-3, ":[123][sp]") =>> =select(\-2, ":D") and select(\-1, "", ":[123][sp]") [/_VCint_|/_VCimp_] [le|la|l’|les|leur|leurs] @:[NA]¬:[YG] <<- =>> =select(\-2, ":D") and select(\-1, "", ":[123][sp]") __da_substantifs__ [<start>|,|(] $:D *WORD *WORD [ne|n’|me|m’|te|t’|se|s’] [<start>|,|(] $:D *WORD *WORD [en|nous|vous|lui|y] @:(?:[123][sp]|P) [<start>|,|(] $:D *WORD *WORD [le|la|l’|les|leur] @:(?:[123][sp]|P)¬:[NA] [<start>|,|(] $:D *WORD *WORD [nous|vous] [le|la|l’|les|en|y] @:(?:[123][sp]|P) [<start>|,|(] $:D *WORD *WORD [le|la|l’|les] [lui|leur|en|y] @:(?:[123][sp]|P) [<start>|,|(] $:D *WORD *WORD [lui|leur|y] en @:(?:[123][sp]|P) <<- morph(\3, ":[NA]", ":(?:G|V0)") and morph(\4, ":[NA]", ":(?:[PG]|V[023])") =>> select(\4, "", ":V") [<start>|,|(] $:D *WORD *WORD @:(?:3[sp]|P)¬:[GW] <<- morph(\2, ":p") and morph(\3, ":[NA].*:p", ":(?:G|V0)") and morph(\4, ":[NA].*:p", ":(?:[PGQ]|V[023])") =>> select(\4, "", ":V") <<- __else__ and morph(\2, ":s") and morph(\3, ":[NA].*:s", ":(?:G|V0)") and morph(\4, ":[NA].*:s", ":(?:[PGQ]|V[023])") and not morph(\5, ":A.*:[si]") =>> select(\4, "", ":V") [des|ces|mes|tes|ses|nos|vos|quelques|lesdits] @:A.*:[pi] @:N.*:[pi]¬(?:3[sp]|Q|G) <<- =>> select(\3, "", ":V") les @:A.*:[pi]¬:V @:N.*:[pi]¬(?:3[sp]|Q|G) <<- not before(":O[vs]") =>> select(\3, "", ":V") leurs @:A.*:[pi]¬:V @:N.*:[pi]¬(?:3[sp]|Q|G) <<- not before(":O[vs]") =>> select(\3, "", ":V") [plusieurs|certains|certaines|maints|maintes] @:A.*:[pi]¬:3[sp] @:N.*:p¬:(?:3[sp]|Q|G) <<- =>> select(\2, ":A") and select(\3, "", ":N") __da_locutions_verbales__ >avoir [cours|foule|lieu|recours|vent] >avoir ni queue ?,¿ ni tête >aller bon train >aller [de|d’] l’ avant |
︙ | ︙ | |||
19663 19664 19665 19666 19667 19668 19669 | qui ?[lui|nous|vous|leur]¿ $:V0 $:Q <<- =>> select(\-2, ":V") and select(\-1, ":Q") qui ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ $:V qui ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] $:V qui ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] $:V qui ?[ne|n’]¿ [lui|leur|y] en $:V | | | 19665 19666 19667 19668 19669 19670 19671 19672 19673 19674 19675 19676 19677 19678 19679 | qui ?[lui|nous|vous|leur]¿ $:V0 $:Q <<- =>> select(\-2, ":V") and select(\-1, ":Q") qui ?[ne|n’]¿ ?[le|la|l’|les|en|me|m’|te|t’|se|s’|nous|vous|lui|leur|y]¿ $:V qui ?[ne|n’]¿ [me|m’|te|t’|se|s’|nous|vous] [le|la|l’|les|en|y] $:V qui ?[ne|n’]¿ [le|la|l’|les] [lui|leur|en|y] $:V qui ?[ne|n’]¿ [lui|leur|y] en $:V <<- =>> select(\-1, "", ":E") [<start>|,|(] nous ?[ne|n’]¿ $:1p <<- =>> select(\2, ":Os") and select(\-1, ":[ISK].*:1p") [<start>|,|(] vous ?[ne|n’]¿ $:2p <<- =>> select(\2, ":Os") and select(\-1, ":[ISK].*:2p") |
︙ | ︙ | |||
23481 23482 23483 23484 23485 23486 23487 | des *WORD *WORD <<- /gn/ (morph(<1, ":(?:[VRBXÉ]|Cs)|>comme/|<start>|>,", "*") or morph(\3, ":N", ":[AQ]")) and not morph(\3, ">(?:seul|minimum|maximum)/") >>> <<- /gn/ ( (morph(\2, ":[NA].*:m", ":[fe]") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":[me]") and morph(\3, ":[NA].*:m", "*")) ) and not apposition(\2, \3) -3>> =switchGender(\3, True) && Accord de genre erroné avec « \2 ». <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2) && Accord de genre erroné avec « \3 ». <<- /gn/ morph(\2, ":[NA].*:[pi]", ":G") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A")) -3>> =suggPlur(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel. | | | 23483 23484 23485 23486 23487 23488 23489 23490 23491 23492 23493 23494 23495 23496 23497 | des *WORD *WORD <<- /gn/ (morph(<1, ":(?:[VRBXÉ]|Cs)|>comme/|<start>|>,", "*") or morph(\3, ":N", ":[AQ]")) and not morph(\3, ">(?:seul|minimum|maximum)/") >>> <<- /gn/ ( (morph(\2, ":[NA].*:m", ":[fe]") and morph(\3, ":[NA].*:f", "*")) or (morph(\2, ":[NA].*:f", ":[me]") and morph(\3, ":[NA].*:m", "*")) ) and not apposition(\2, \3) -3>> =switchGender(\3, True) && Accord de genre erroné avec « \2 ». <<- /gn/ __also__ and hasFemForm(\2) -2>> =switchGender(\2) && Accord de genre erroné avec « \3 ». <<- /gn/ morph(\2, ":[NA].*:[pi]", ":G") and morph(\3, ":[NA].*:s", "*") and not apposition(\2, \3) and not (value(>1, "|et|,|") and morph(>2, ":A")) -3>> =suggPlur(\3) && Accord de nombre erroné avec « \1 \2 » : « \3 » devrait être au pluriel. <<- not morph(\3, ":G|>a/") and agreement(\2, \3) =>> =select(\3, "", ":V") TEST: faire table rase des passions {{inutile}} ->> inutiles TEST: à bonne distance des {{chiens}} {{méchante}} TEST: des hommes {{attaquée}} TEST: des femmes {{agressé}} TEST: des hommes très mal {{renseigné}} ->> renseignés TEST: des dépenses non {{nécessaire}} ->> nécessaires |
︙ | ︙ |
Modified misc/grammalecte.sublime-syntax from [e93ef25e4b] to [9e26acd942].
︙ | ︙ | |||
56 57 58 59 60 61 62 | # other. - match: '\b(?:if|else|and|or|not|in)\b' scope: keyword.python - match: '\b(?:True|False|None)\b' scope: constant.language | | | 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | # other. - match: '\b(?:if|else|and|or|not|in)\b' scope: keyword.python - match: '\b(?:True|False|None)\b' scope: constant.language - match: '\b(?:spell|morph(?:VC|0|2|)|stem|tag|value|space|textarea0?\w*|before0?\w*|after0?\w*|start0?|end0?|word|option|define(?:from|)|select|setmeta|analyse|tag(?:after|before)|apposition|is[A-Z]\w+|agreement|rewrite|checkD\w+|getD\w+|has[A-Z]\w+|sugg[A-Z]\w+|switch[A-Z]\w+|ceOrCet|formatN\w+|mbUnit)\b' scope: entity.name.function - match: '\b(?:replace|endswith|startswith|search|upper|lower|capitalize|strip|rstrip|is(?:alpha|upper|lower|digit|title))\b' scope: support.function - match: '\becho\b' scope: support.function.debug |
︙ | ︙ |