Overview
| Comment: | [core] test existence of negative pattern before checking token | 
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive | 
| Timelines: | family | ancestors | descendants | both | core | rg | 
| Files: | files | file ages | folders | 
| SHA3-256: | 
2403b602048c13199b1d4c126fd25883 | 
| User & Date: | olr on 2018-06-22 17:33:11 | 
| Other Links: | branch diff | manifest | tags | 
Context
| 
   2018-06-22 
 | ||
| 19:36 | [build] rules parser: multilines actions check-in: 5f4a861816 user: olr tags: build, rg | |
| 17:33 | [core] test existence of negative pattern before checking token check-in: 2403b60204 user: olr tags: core, rg | |
| 17:24 | [fr] étiquetage des pronoms pour détection des verbes isolés mal conjugués check-in: 420a991f44 user: olr tags: fr, rg | |
Changes
Modified gc_core/py/lang_core/gc_engine.py from [8a69397483] to [97f5a67ddc].
| ︙ | ︙ | |||
645 646 647 648 649 650 651  | 
                            print("  MATCH: ~" + sRegex)
                        yield dGraph[dNode["<re_value>"][sRegex]]
                else:
                    # there is an anti-pattern
                    sPattern, sNegPattern = sRegex.split("¬", 1)
                    if sNegPattern and re.search(sNegPattern, dToken["sValue"]):
                        continue
 | |  | 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659  | 
                            print("  MATCH: ~" + sRegex)
                        yield dGraph[dNode["<re_value>"][sRegex]]
                else:
                    # there is an anti-pattern
                    sPattern, sNegPattern = sRegex.split("¬", 1)
                    if sNegPattern and re.search(sNegPattern, dToken["sValue"]):
                        continue
                    if not sPattern or re.search(sPattern, dToken["sValue"]):
                        if bDebug:
                            print("  MATCH: ~" + 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:
 | 
| ︙ | ︙ | |||
670 671 672 673 674 675 676  | 
                        if sPattern and all(re.search(sPattern, sMorph)  for sMorph in _oSpellChecker.getMorph(dToken["sValue"])):
                            if bDebug:
                                print("  MATCH: @" + sRegex)
                            yield dGraph[dNode["<re_morph>"][sRegex]]
                    else:
                        if sNegPattern and any(re.search(sNegPattern, sMorph)  for sMorph in _oSpellChecker.getMorph(dToken["sValue"])):
                            continue
 | |  | 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684  | 
                        if sPattern and all(re.search(sPattern, sMorph)  for sMorph in _oSpellChecker.getMorph(dToken["sValue"])):
                            if bDebug:
                                print("  MATCH: @" + sRegex)
                            yield dGraph[dNode["<re_morph>"][sRegex]]
                    else:
                        if sNegPattern and any(re.search(sNegPattern, sMorph)  for sMorph in _oSpellChecker.getMorph(dToken["sValue"])):
                            continue
                        if not sPattern or any(re.search(sPattern, sMorph)  for sMorph in _oSpellChecker.getMorph(dToken["sValue"])):
                            if bDebug:
                                print("  MATCH: @" + sRegex)
                            yield dGraph[dNode["<re_morph>"][sRegex]]
    def parse (self, dGraph, dPriority, sCountry="${country_default}", dOptions=None, bShowRuleId=False, bDebug=False, bContext=False):
        dErr = {}
        dPriority = {}  # Key = position; value = priority
 | 
| ︙ | ︙ |