Overview
| Comment: | [core] gc_engine: some comments |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | core | rg |
| Files: | files | file ages | folders |
| SHA3-256: |
45d2b648e64049a2c2e38ff8194523a3 |
| User & Date: | olr on 2018-06-23 11:23:28 |
| Other Links: | branch diff | manifest | tags |
Context
|
2018-06-23
| ||
| 11:24 | [fr] notes sur la langue française + adaptation de règles concernant les pronoms check-in: 71f721941f user: olr tags: fr, rg | |
| 11:23 | [core] gc_engine: some comments check-in: 45d2b648e6 user: olr tags: core, rg | |
| 08:11 | [fr] conversion: regex rules -> graph rules check-in: c79567338a user: olr tags: fr, rg | |
Changes
Modified gc_core/py/lang_core/gc_engine.py from [dbd98c6fb9] to [3fb4a33065].
| ︙ | ︙ | |||
589 590 591 592 593 594 595 |
self.sSentence0 = sSentence0
self.nOffsetWithinParagraph = nOffset
self.lToken = list(_oTokenizer.genTokens(sSentence, True))
self.dTokenPos = { dToken["nStart"]: dToken for dToken in self.lToken }
self.dTags = {}
self.createError = self._createWriterError if _bWriterError else self._createDictError
| < | 589 590 591 592 593 594 595 596 597 598 599 600 601 602 |
self.sSentence0 = sSentence0
self.nOffsetWithinParagraph = nOffset
self.lToken = list(_oTokenizer.genTokens(sSentence, True))
self.dTokenPos = { dToken["nStart"]: dToken for dToken in self.lToken }
self.dTags = {}
self.createError = self._createWriterError if _bWriterError else self._createDictError
def update (self, sSentence):
self.sSentence = sSentence
self.lToken = list(_oTokenizer.genTokens(sSentence, True))
def _getNextMatchingNodes (self, dToken, dGraph, dNode, bDebug=False):
"generator: return nodes where <dToken> “values” match <dNode> arcs"
# token value
|
| ︙ | ︙ | |||
671 672 673 674 675 676 677 678 679 680 681 682 683 684 |
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]]
# meta arc (for token type)
if "<meta>" in dNode:
for sMeta in dNode["<meta>"]:
if sMeta == "*":
if bDebug:
print(" MATCH: *" + sMeta)
yield dGraph[dNode["<meta>"]["*"]]
elif "¬" in sMeta:
if dNode["sType"] not in sMeta:
if bDebug:
| > | 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 |
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]]
# meta arc (for token type)
if "<meta>" in dNode:
for sMeta in dNode["<meta>"]:
# not regex here, we just search if <dNode["sType"]> exists within <sMeta>
if sMeta == "*":
if bDebug:
print(" MATCH: *" + sMeta)
yield dGraph[dNode["<meta>"]["*"]]
elif "¬" in sMeta:
if dNode["sType"] not in sMeta:
if bDebug:
|
| ︙ | ︙ | |||
730 731 732 733 734 735 736 |
if bDebug:
print("ACTION:", sRuleId)
print(dRule[sRuleId])
sOption, sFuncCond, cActionType, sWhat, *eAct = dRule[sRuleId]
# Suggestion [ option, condition, "-", replacement/suggestion/action, iTokenStart, iTokenEnd, nPriority, message, URL ]
# TextProcessor [ option, condition, "~", replacement/suggestion/action, iTokenStart, iTokenEnd ]
# Disambiguator [ option, condition, "=", replacement/suggestion/action ]
| | | 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 |
if bDebug:
print("ACTION:", sRuleId)
print(dRule[sRuleId])
sOption, sFuncCond, cActionType, sWhat, *eAct = dRule[sRuleId]
# Suggestion [ option, condition, "-", replacement/suggestion/action, iTokenStart, iTokenEnd, nPriority, message, URL ]
# TextProcessor [ option, condition, "~", replacement/suggestion/action, iTokenStart, iTokenEnd ]
# Disambiguator [ option, condition, "=", replacement/suggestion/action ]
# Sentence Tag [ option, condition, "/", replacement/suggestion/action, iTokenStart, iTokenEnd ]
# Test [ option, condition, ">", "" ]
if not sOption or dOptions.get(sOption, False):
bCondMemo = not sFuncCond or globals()[sFuncCond](self.lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, self.dTags, self.sSentence, self.sSentence0)
if bCondMemo:
if cActionType == "-":
# grammar error
nTokenErrorStart = nTokenOffset + eAct[0]
|
| ︙ | ︙ |