Overview
| Comment: | [core] darg: anti-patterns for morphologies |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | core | rg |
| Files: | files | file ages | folders |
| SHA3-256: |
47ae72e7f9584b42b16f79b8513182fa |
| User & Date: | olr on 2018-06-06 07:47:32 |
| Other Links: | branch diff | manifest | tags |
Context
|
2018-06-06
| ||
| 09:30 | [core] darg: merge morph and morphex functions check-in: 4134a01a49 user: olr tags: core, rg | |
| 07:47 | [core] darg: anti-patterns for morphologies check-in: 47ae72e7f9 user: olr tags: core, rg | |
| 06:00 | [build][core] DARG: syntax change: ~~ replaced by @ check-in: 2fd61da75f user: olr tags: core, build, rg | |
Changes
Modified gc_core/py/lang_core/gc_engine.py from [dbebb9c217] to [5975c86814].
| ︙ | ︙ | |||
693 694 695 696 697 698 699 |
for sRegex in dNode["<re_value>"]:
if re.search(sRegex, dToken["sValue"]):
#print("value regex matching: ", sRegex)
yield dGraph[dNode["<re_value>"][sRegex]]
# regex morph arcs
if "<re_morph>" in dNode:
for sRegex in dNode["<re_morph>"]:
| > > | > > > > > > | | > > > > | > | 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 |
for sRegex in dNode["<re_value>"]:
if re.search(sRegex, dToken["sValue"]):
#print("value regex matching: ", sRegex)
yield dGraph[dNode["<re_value>"][sRegex]]
# regex morph arcs
if "<re_morph>" in dNode:
for sRegex in dNode["<re_morph>"]:
if "¬" not in sRegex:
# no anti-pattern
if any(re.search(sRegex, sMorph) for sMorph in _oSpellChecker.getMorph(dToken["sValue"])):
yield dGraph[dNode["<re_morph>"][sRegex]]
else:
# there is an anti-pattern
sPattern, sNegPattern = sRegex.split("¬", 1)
if sNegPattern == "*":
# all morphologies must match with <sPattern>
if all(re.search(sPattern, sMorph) for sMorph in _oSpellChecker.getMorph(dToken["sValue"])):
yield dGraph[dNode["<re_morph>"][sRegex]]
else:
if sNegPattern and any(re.search(sNegPattern, sMorph) for sMorph in _oSpellChecker.getMorph(dToken["sValue"])):
continue
if any(re.search(sPattern, sMorph) for sMorph in _oSpellChecker.getMorph(dToken["sValue"])):
yield dGraph[dNode["<re_morph>"][sRegex]]
def parse (self, dPriority, sCountry="${country_default}", dOptions=None, bShowRuleId=False, bDebug=False, bContext=False):
dErr = {}
dPriority = {} # Key = position; value = priority
dOpt = _dOptions if not dOptions else dOptions
lPointer = []
bChange = False
|
| ︙ | ︙ |
Modified gc_lang/fr/rules_graph.grx from [1d983c8b66] to [1dc1051949].
| ︙ | ︙ | |||
66 67 68 69 70 71 72 |
>faire plaisirs
<<- -2>> plaisir # Faire plaisir : dans cette locution, “plaisir” doit être au singulier.
TEST: Ça me fait {{plaisirs}}.
__test__
| | | 66 67 68 69 70 71 72 73 74 75 76 |
>faire plaisirs
<<- -2>> plaisir # Faire plaisir : dans cette locution, “plaisir” doit être au singulier.
TEST: Ça me fait {{plaisirs}}.
__test__
je ~préf[éè]r [que|qu’] @(?::Os|:M)¬:X @:I
<<- morph(\1, ":V", False) and morphex(\4, ":Os|:M", ":X") -5>> SUBJONCTIF # SUBJONCTIF.
TEST: je préférerais qu’Isabelle {{est}} partie.
|