1""" 2Grammalecte 3Grammar checker engine 4""" 5 6import re 7import traceback 8#import unicodedata 9from itertools import chain 10 11from ..graphspell.spellchecker import SpellChecker 12from ..graphspell.echo import echo 13 14from .. import text 15 16from . import gc_options 17 18try: 19 # LibreOffice / OpenOffice 20 from com.sun.star.linguistic2 import SingleProofreadingError 21 from com.sun.star.text.TextMarkupType import PROOFREADING 22 from com.sun.star.beans import PropertyValue 23 #import lightproof_handler_grammalecte as opt 24 _bWriterError = True 25except ImportError: 26 _bWriterError = False 27 28 29__all__ = [ "lang", "locales", "pkg", "name", "version", "author", \ 30 "load", "parse", "getSpellChecker", \ 31 "setOption", "setOptions", "getOptions", "getDefaultOptions", "getOptionsLabels", "resetOptions", "displayOptions", \ 32 "ignoreRule", "resetIgnoreRules", "reactivateRule", "listRules", "displayRules", "setWriterUnderliningStyle" ] 33 34__version__ = "1.11.0" 35 36 37lang = "fr" 38locales = {'fr-FR': ['fr', 'FR', ''], 'fr-BE': ['fr', 'BE', ''], 'fr-CA': ['fr', 'CA', ''], 'fr-CH': ['fr', 'CH', ''], 'fr-LU': ['fr', 'LU', ''], 'fr-BF': ['fr', 'BF', ''], 'fr-BJ': ['fr', 'BJ', ''], 'fr-CD': ['fr', 'CD', ''], 'fr-CI': ['fr', 'CI', ''], 'fr-CM': ['fr', 'CM', ''], 'fr-MA': ['fr', 'MA', ''], 'fr-ML': ['fr', 'ML', ''], 'fr-MU': ['fr', 'MU', ''], 'fr-NE': ['fr', 'NE', ''], 'fr-RE': ['fr', 'RE', ''], 'fr-SN': ['fr', 'SN', ''], 'fr-TG': ['fr', 'TG', '']} 39pkg = "grammalecte" 40name = "Grammalecte" 41version = "1.11.0" 42author = "Olivier R." 43 44# Modules 45_rules = None # module gc_rules 46_rules_graph = None # module gc_rules_graph 47 48# Data 49_sAppContext = "" # what software is running 50_dOptions = None 51_dOptionsColors = None 52_oSpellChecker = None 53_oTokenizer = None 54_aIgnoredRules = set() 55 56# Writer underlining style 57_bMulticolor = True 58_nUnderliningStyle = 0 59 60 61#### Initialization 62 63def load (sContext="Python", sColorType="aRGB"): 64 "initialization of the grammar checker" 65 global _oSpellChecker 66 global _sAppContext 67 global _dOptions 68 global _dOptionsColors 69 global _oTokenizer 70 try: 71 _oSpellChecker = SpellChecker("fr", "fr-allvars.bdic", "", "") 72 _sAppContext = sContext 73 _dOptions = gc_options.getOptions(sContext).copy() # duplication necessary, to be able to reset to default 74 _dOptionsColors = gc_options.getOptionsColors(sContext, sColorType) 75 _oTokenizer = _oSpellChecker.getTokenizer() 76 _oSpellChecker.activateStorage() 77 except: 78 traceback.print_exc() 79 80 81def getSpellChecker (): 82 "return the spellchecker object" 83 return _oSpellChecker 84 85 86#### Rules 87 88def _getRules (bParagraph): 89 try: 90 if not bParagraph: 91 return _rules.lSentenceRules 92 return _rules.lParagraphRules 93 except: 94 _loadRules() 95 if not bParagraph: 96 return _rules.lSentenceRules 97 return _rules.lParagraphRules 98 99 100def _loadRules (): 101 from . import gc_rules 102 from . import gc_rules_graph 103 global _rules 104 global _rules_graph 105 _rules = gc_rules 106 _rules_graph = gc_rules_graph 107 # compile rules regex 108 for sOption, lRuleGroup in chain(_rules.lParagraphRules, _rules.lSentenceRules): 109 if sOption != "@@@@": 110 for aRule in lRuleGroup: 111 try: 112 aRule[0] = re.compile(aRule[0]) 113 except (IndexError, re.error): 114 echo("Bad regular expression in # " + str(aRule[2])) 115 aRule[0] = "(?i)<Grammalecte>" 116 117 118def ignoreRule (sRuleId): 119 "disable rule <sRuleId>" 120 _aIgnoredRules.add(sRuleId) 121 122 123def resetIgnoreRules (): 124 "clear all ignored rules" 125 _aIgnoredRules.clear() 126 127 128def reactivateRule (sRuleId): 129 "(re)activate rule <sRuleId>" 130 _aIgnoredRules.discard(sRuleId) 131 132 133def listRules (sFilter=None): 134 "generator: returns typle (sOption, sLineId, sRuleId)" 135 if sFilter: 136 try: 137 zFilter = re.compile(sFilter) 138 except re.error: 139 echo("# Error. List rules: wrong regex.") 140 sFilter = None 141 # regex rules 142 for sOption, lRuleGroup in chain(_getRules(True), _getRules(False)): 143 if sOption != "@@@@": 144 for _, _, sLineId, sRuleId, _, _ in lRuleGroup: 145 if not sFilter or zFilter.search(sRuleId): 146 yield ("RegEx", sOption, sLineId, sRuleId) 147 # tokens rules 148 for sRuleName, lActions in _rules_graph.dRule.items(): 149 sLineId, sOption, _, cActionType, *_ = lActions 150 if cActionType == "-": 151 yield("Tokens", sOption, sLineId, sRuleName) 152 153 154def displayRules (sFilter=None): 155 "display the name of rules, with the filter <sFilter>" 156 echo("List of rules. Filter: << " + str(sFilter) + " >>") 157 for sOption, sLineId, sRuleId, sType in listRules(sFilter): 158 echo("{:<8} {:<10} {:<10} {}".format(sOption, sLineId, sRuleId, sType)) 159 160 161#### Options 162 163def setOption (sOpt, bVal): 164 "set option <sOpt> with <bVal> if it exists" 165 if sOpt in _dOptions: 166 _dOptions[sOpt] = bVal 167 168 169def setOptions (dOpt): 170 "update the dictionary of options with <dOpt>" 171 for sKey, bVal in dOpt.items(): 172 if sKey in _dOptions: 173 _dOptions[sKey] = bVal 174 175 176def getOptions (): 177 "return the dictionary of current options" 178 return _dOptions 179 180 181def getDefaultOptions (): 182 "return the dictionary of default options" 183 return gc_options.getOptions(_sAppContext).copy() 184 185 186def getOptionsLabels (sLang): 187 "return options labels" 188 return gc_options.getUI(sLang) 189 190 191def displayOptions (sLang="fr"): 192 "display the list of grammar checking options" 193 echo("Options:") 194 echo("\n".join( [ k+":\t"+str(v)+"\t"+gc_options.getUI(sLang).get(k, ("?", ""))[0] for k, v in sorted(_dOptions.items()) ] )) 195 echo("") 196 197 198def resetOptions (): 199 "set options to default values" 200 global _dOptions 201 _dOptions = getDefaultOptions() 202 203 204def setWriterUnderliningStyle (sStyle="BOLDWAVE", bMulticolor=True): 205 "set underlining style for Writer (WAVE, BOLDWAVE, BOLD)" 206 global _nUnderliningStyle 207 global _bMulticolor 208 # https://api.libreoffice.org/docs/idl/ref/FontUnderline_8idl.html 209 # WAVE: 10, BOLD: 12, BOLDWAVE: 18 DASH: 5 210 if sStyle == "WAVE": 211 _nUnderliningStyle = 0 # 0 for default Writer setting 212 elif sStyle == "BOLDWAVE": 213 _nUnderliningStyle = 18 214 elif sStyle == "BOLD": 215 _nUnderliningStyle = 12 216 elif sStyle == "DASH": 217 _nUnderliningStyle = 5 218 else: 219 _nUnderliningStyle = 0 220 _bMulticolor = bMulticolor 221 222 223#### Parsing 224 225def parse (sText, sCountry="FR", bDebug=False, dOptions=None, bContext=False, bFullInfo=False): 226 "init point to analyse <sText> and returns an iterable of errors or (with option <bFullInfo>) paragraphs errors and sentences with tokens and errors" 227 oText = TextParser(sText) 228 return oText.parse(sCountry, bDebug, dOptions, bContext, bFullInfo) 229 230 231#### TEXT PARSER 232 233class TextParser: 234 "Text parser" 235 236 def __init__ (self, sText): 237 self.sText = sText 238 self.sText0 = sText 239 self.sSentence = "" 240 self.sSentence0 = "" 241 self.nOffsetWithinParagraph = 0 242 self.lToken = [] 243 self.dTokenPos = {} # {position: token} 244 self.dTags = {} # {position: tags} 245 self.dError = {} # {position: error} 246 self.dSentenceError = {} # {position: error} (for the current sentence only) 247 self.dErrorPriority = {} # {position: priority of the current error} 248 249 def __str__ (self): 250 s = "===== TEXT =====\n" 251 s += "sentence: " + self.sSentence0 + "\n" 252 s += "now: " + self.sSentence + "\n" 253 for dToken in self.lToken: 254 s += '#{i}\t{nStart}:{nEnd}\t{sValue}\t{sType}'.format(**dToken) 255 if "lMorph" in dToken: 256 s += "\t" + str(dToken["lMorph"]) 257 if "aTags" in dToken: 258 s += "\t" + str(dToken["aTags"]) 259 s += "\n" 260 #for nPos, dToken in self.dTokenPos.items(): 261 # s += "{}\t{}\n".format(nPos, dToken) 262 return s 263 264 def parse (self, sCountry="FR", bDebug=False, dOptions=None, bContext=False, bFullInfo=False): 265 "analyses <sText> and returns an iterable of errors or (with option <bFullInfo>) paragraphs errors and sentences with tokens and errors" 266 #sText = unicodedata.normalize("NFC", sText) 267 dOpt = dOptions or _dOptions 268 bShowRuleId = option('idrule') 269 # parse paragraph 270 try: 271 self.parseText(self.sText, self.sText0, True, 0, sCountry, dOpt, bShowRuleId, bDebug, bContext) 272 except: 273 raise 274 if bFullInfo: 275 lParagraphErrors = list(self.dError.values()) 276 lSentences = [] 277 self.dSentenceError.clear() 278 # parse sentences 279 sText = self._getCleanText() 280 for iStart, iEnd in text.getSentenceBoundaries(sText): 281 if 4 < (iEnd - iStart) < 2000: 282 try: 283 self.sSentence = sText[iStart:iEnd] 284 self.sSentence0 = self.sText0[iStart:iEnd] 285 self.nOffsetWithinParagraph = iStart 286 self.lToken = list(_oTokenizer.genTokens(self.sSentence, True)) 287 self.dTokenPos = { dToken["nStart"]: dToken for dToken in self.lToken if dToken["sType"] != "INFO" } 288 if bFullInfo: 289 dSentence = { "nStart": iStart, "nEnd": iEnd, "sSentence": self.sSentence, "lToken": list(self.lToken) } 290 for dToken in dSentence["lToken"]: 291 if dToken["sType"] == "WORD": 292 dToken["bValidToken"] = _oSpellChecker.isValidToken(dToken["sValue"]) 293 # the list of tokens is duplicated, to keep all tokens from being deleted when analysis 294 self.parseText(self.sSentence, self.sSentence0, False, iStart, sCountry, dOpt, bShowRuleId, bDebug, bContext) 295 if bFullInfo: 296 dSentence["lGrammarErrors"] = list(self.dSentenceError.values()) 297 lSentences.append(dSentence) 298 self.dSentenceError.clear() 299 except: 300 raise 301 if bFullInfo: 302 # Grammar checking and sentence analysis 303 return lParagraphErrors, lSentences 304 else: 305 # Grammar checking only 306 return self.dError.values() # this is a view (iterable) 307 308 def _getCleanText (self): 309 sText = self.sText 310 if " " in sText: 311 sText = sText.replace(" ", ' ') # nbsp 312 if " " in sText: 313 sText = sText.replace(" ", ' ') # nnbsp 314 if "'" in sText: 315 sText = sText.replace("'", "’") 316 if "‑" in sText: 317 sText = sText.replace("‑", "-") # nobreakdash 318 if "@@" in sText: 319 sText = re.sub("@@+", "", sText) 320 return sText 321 322 def parseText (self, sText, sText0, bParagraph, nOffset, sCountry, dOptions, bShowRuleId, bDebug, bContext): 323 "parse the text with rules" 324 bChange = False 325 for sOption, lRuleGroup in _getRules(bParagraph): 326 if sOption == "@@@@": 327 # graph rules 328 if not bParagraph and bChange: 329 self.update(sText, bDebug) 330 bChange = False 331 for sGraphName, sLineId in lRuleGroup: 332 if sGraphName not in dOptions or dOptions[sGraphName]: 333 if bDebug: 334 echo("\n>>>> GRAPH: " + sGraphName + " " + sLineId) 335 sText = self.parseGraph(_rules_graph.dAllGraph[sGraphName], sCountry, dOptions, bShowRuleId, bDebug, bContext) 336 elif not sOption or dOptions.get(sOption, False): 337 # regex rules 338 for zRegex, bUppercase, sLineId, sRuleId, nPriority, lActions in lRuleGroup: 339 if sRuleId not in _aIgnoredRules: 340 for m in zRegex.finditer(sText): 341 bCondMemo = None 342 for sFuncCond, cActionType, sWhat, *eAct in lActions: 343 # action in lActions: [ condition, action type, replacement/suggestion/action[, iGroup[, message, URL]] ] 344 try: 345 bCondMemo = not sFuncCond or globals()[sFuncCond](sText, sText0, m, self.dTokenPos, sCountry, bCondMemo) 346 if bCondMemo: 347 if bDebug: 348 echo("RULE: " + sLineId) 349 if cActionType == "-": 350 # grammar error 351 nErrorStart = nOffset + m.start(eAct[0]) 352 if nErrorStart not in self.dError or nPriority > self.dErrorPriority.get(nErrorStart, -1): 353 self.dError[nErrorStart] = self._createErrorFromRegex(sText, sText0, sWhat, nOffset, m, eAct[0], sLineId, sRuleId, bUppercase, eAct[1], eAct[2], bShowRuleId, sOption, bContext) 354 self.dErrorPriority[nErrorStart] = nPriority 355 self.dSentenceError[nErrorStart] = self.dError[nErrorStart] 356 elif cActionType == "~": 357 # text processor 358 sText = self.rewriteText(sText, sWhat, eAct[0], m, bUppercase) 359 bChange = True 360 if bDebug: 361 echo("~ " + sText + " -- " + m.group(eAct[0]) + " # " + sLineId) 362 elif cActionType == "=": 363 # disambiguation 364 if not bParagraph: 365 globals()[sWhat](sText, m, self.dTokenPos) 366 if bDebug: 367 echo("= " + m.group(0) + " # " + sLineId) 368 elif cActionType == ">": 369 # we do nothing, this test is just a condition to apply all following actions 370 pass 371 else: 372 echo("# error: unknown action at " + sLineId) 373 elif cActionType == ">": 374 break 375 except Exception as e: 376 raise Exception(str(e), "# " + sLineId + " # " + sRuleId) 377 if bChange: 378 if bParagraph: 379 self.sText = sText 380 else: 381 self.sSentence = sText 382 383 def update (self, sSentence, bDebug=False): 384 "update <sSentence> and retokenize" 385 self.sSentence = sSentence 386 lNewToken = list(_oTokenizer.genTokens(sSentence, True)) 387 for dToken in lNewToken: 388 if "lMorph" in self.dTokenPos.get(dToken["nStart"], {}): 389 dToken["lMorph"] = self.dTokenPos[dToken["nStart"]]["lMorph"] 390 if "aTags" in self.dTokenPos.get(dToken["nStart"], {}): 391 dToken["aTags"] = self.dTokenPos[dToken["nStart"]]["aTags"] 392 self.lToken = lNewToken 393 self.dTokenPos = { dToken["nStart"]: dToken for dToken in self.lToken if dToken["sType"] != "INFO" } 394 if bDebug: 395 echo("UPDATE:") 396 echo(self) 397 398 def _getNextPointers (self, dToken, dGraph, dPointer, bDebug=False): 399 "generator: return nodes where <dToken> “values” match <dNode> arcs" 400 dNode = dGraph[dPointer["iNode"]] 401 iToken1 = dPointer["iToken1"] 402 bTokenFound = False 403 # token value 404 if dToken["sValue"] in dNode: 405 if bDebug: 406 echo(" MATCH: " + dToken["sValue"]) 407 yield { "iToken1": iToken1, "iNode": dNode[dToken["sValue"]] } 408 bTokenFound = True 409 if dToken["sValue"][0:2].istitle(): # we test only 2 first chars, to make valid words such as "Laissez-les", "Passe-partout". 410 sValue = dToken["sValue"].lower() 411 if sValue in dNode: 412 if bDebug: 413 echo(" MATCH: " + sValue) 414 yield { "iToken1": iToken1, "iNode": dNode[sValue] } 415 bTokenFound = True 416 elif dToken["sValue"].isupper(): 417 sValue = dToken["sValue"].lower() 418 if sValue in dNode: 419 if bDebug: 420 echo(" MATCH: " + sValue) 421 yield { "iToken1": iToken1, "iNode": dNode[sValue] } 422 bTokenFound = True 423 sValue = dToken["sValue"].capitalize() 424 if sValue in dNode: 425 if bDebug: 426 echo(" MATCH: " + sValue) 427 yield { "iToken1": iToken1, "iNode": dNode[sValue] } 428 bTokenFound = True 429 # regex value arcs 430 if dToken["sType"] not in frozenset(["INFO", "PUNC", "SIGN"]): 431 if "<re_value>" in dNode: 432 for sRegex in dNode["<re_value>"]: 433 if "¬" not in sRegex: 434 # no anti-pattern 435 if re.search(sRegex, dToken["sValue"]): 436 if bDebug: 437 echo(" MATCH: ~" + sRegex) 438 yield { "iToken1": iToken1, "iNode": dNode["<re_value>"][sRegex] } 439 bTokenFound = True 440 else: 441 # there is an anti-pattern 442 sPattern, sNegPattern = sRegex.split("¬", 1) 443 if sNegPattern and re.search(sNegPattern, dToken["sValue"]): 444 continue 445 if not sPattern or re.search(sPattern, dToken["sValue"]): 446 if bDebug: 447 echo(" MATCH: ~" + sRegex) 448 yield { "iToken1": iToken1, "iNode": dNode["<re_value>"][sRegex] } 449 bTokenFound = True 450 # analysable tokens 451 if dToken["sType"][0:4] == "WORD": 452 # token lemmas 453 if "<lemmas>" in dNode: 454 for sLemma in _oSpellChecker.getLemma(dToken["sValue"]): 455 if sLemma in dNode["<lemmas>"]: 456 if bDebug: 457 echo(" MATCH: >" + sLemma) 458 yield { "iToken1": iToken1, "iNode": dNode["<lemmas>"][sLemma] } 459 bTokenFound = True 460 # morph arcs 461 if "<morph>" in dNode: 462 lMorph = dToken.get("lMorph", _oSpellChecker.getMorph(dToken["sValue"])) 463 if lMorph: 464 for sSearch in dNode["<morph>"]: 465 if "¬" not in sSearch: 466 # no anti-pattern 467 if any(sSearch in sMorph for sMorph in lMorph): 468 if bDebug: 469 echo(" MATCH: $" + sSearch) 470 yield { "iToken1": iToken1, "iNode": dNode["<morph>"][sSearch] } 471 bTokenFound = True 472 else: 473 # there is an anti-pattern 474 sPattern, sNegPattern = sSearch.split("¬", 1) 475 if sNegPattern == "*": 476 # all morphologies must match with <sPattern> 477 if sPattern: 478 if all(sPattern in sMorph for sMorph in lMorph): 479 if bDebug: 480 echo(" MATCH: $" + sSearch) 481 yield { "iToken1": iToken1, "iNode": dNode["<morph>"][sSearch] } 482 bTokenFound = True 483 else: 484 if sNegPattern and any(sNegPattern in sMorph for sMorph in lMorph): 485 continue 486 if not sPattern or any(sPattern in sMorph for sMorph in lMorph): 487 if bDebug: 488 echo(" MATCH: $" + sSearch) 489 yield { "iToken1": iToken1, "iNode": dNode["<morph>"][sSearch] } 490 bTokenFound = True 491 # regex morph arcs 492 if "<re_morph>" in dNode: 493 lMorph = dToken.get("lMorph", _oSpellChecker.getMorph(dToken["sValue"])) 494 if lMorph: 495 for sRegex in dNode["<re_morph>"]: 496 if "¬" not in sRegex: 497 # no anti-pattern 498 if any(re.search(sRegex, sMorph) for sMorph in lMorph): 499 if bDebug: 500 echo(" MATCH: @" + sRegex) 501 yield { "iToken1": iToken1, "iNode": dNode["<re_morph>"][sRegex] } 502 bTokenFound = True 503 else: 504 # there is an anti-pattern 505 sPattern, sNegPattern = sRegex.split("¬", 1) 506 if sNegPattern == "*": 507 # all morphologies must match with <sPattern> 508 if sPattern: 509 if all(re.search(sPattern, sMorph) for sMorph in lMorph): 510 if bDebug: 511 echo(" MATCH: @" + sRegex) 512 yield { "iToken1": iToken1, "iNode": dNode["<re_morph>"][sRegex] } 513 bTokenFound = True 514 else: 515 if sNegPattern and any(re.search(sNegPattern, sMorph) for sMorph in lMorph): 516 continue 517 if not sPattern or any(re.search(sPattern, sMorph) for sMorph in lMorph): 518 if bDebug: 519 echo(" MATCH: @" + sRegex) 520 yield { "iToken1": iToken1, "iNode": dNode["<re_morph>"][sRegex] } 521 bTokenFound = True 522 # token tags 523 if "aTags" in dToken and "<tags>" in dNode: 524 for sTag in dToken["aTags"]: 525 if sTag in dNode["<tags>"]: 526 if bDebug: 527 echo(" MATCH: /" + sTag) 528 yield { "iToken1": iToken1, "iNode": dNode["<tags>"][sTag] } 529 bTokenFound = True 530 # meta arc (for token type) 531 if "<meta>" in dNode: 532 for sMeta in dNode["<meta>"]: 533 # no regex here, we just search if <dNode["sType"]> exists within <sMeta> 534 if sMeta == "*" or dToken["sType"] == sMeta: 535 if bDebug: 536 echo(" MATCH: *" + sMeta) 537 yield { "iToken1": iToken1, "iNode": dNode["<meta>"][sMeta] } 538 bTokenFound = True 539 elif "¬" in sMeta: 540 if dToken["sType"] not in sMeta: 541 if bDebug: 542 echo(" MATCH: *" + sMeta) 543 yield { "iToken1": iToken1, "iNode": dNode["<meta>"][sMeta] } 544 bTokenFound = True 545 if not bTokenFound and "bKeep" in dPointer: 546 yield dPointer 547 # JUMP 548 # Warning! Recurssion! 549 if "<>" in dNode: 550 dPointer2 = { "iToken1": iToken1, "iNode": dNode["<>"], "bKeep": True } 551 yield from self._getNextPointers(dToken, dGraph, dPointer2, bDebug) 552 553 def parseGraph (self, dGraph, sCountry="FR", dOptions=None, bShowRuleId=False, bDebug=False, bContext=False): 554 "parse graph with tokens from the text and execute actions encountered" 555 lPointer = [] 556 bTagAndRewrite = False 557 for iToken, dToken in enumerate(self.lToken): 558 if bDebug: 559 echo("TOKEN: " + dToken["sValue"]) 560 # check arcs for each existing pointer 561 lNextPointer = [] 562 for dPointer in lPointer: 563 lNextPointer.extend(self._getNextPointers(dToken, dGraph, dPointer, bDebug)) 564 lPointer = lNextPointer 565 # check arcs of first nodes 566 lPointer.extend(self._getNextPointers(dToken, dGraph, { "iToken1": iToken, "iNode": 0 }, bDebug)) 567 # check if there is rules to check for each pointer 568 for dPointer in lPointer: 569 #if bDebug: 570 # echo("+", dPointer) 571 if "<rules>" in dGraph[dPointer["iNode"]]: 572 bChange = self._executeActions(dGraph, dGraph[dPointer["iNode"]]["<rules>"], dPointer["iToken1"]-1, iToken, dOptions, sCountry, bShowRuleId, bDebug, bContext) 573 if bChange: 574 bTagAndRewrite = True 575 if bTagAndRewrite: 576 self.rewriteFromTags(bDebug) 577 if bDebug: 578 echo(self) 579 return self.sSentence 580 581 def _executeActions (self, dGraph, dNode, nTokenOffset, nLastToken, dOptions, sCountry, bShowRuleId, bDebug, bContext): 582 "execute actions found in the DARG" 583 bChange = False 584 for sLineId, nextNodeKey in dNode.items(): 585 bCondMemo = None 586 for sRuleId in dGraph[nextNodeKey]: 587 try: 588 if bDebug: 589 echo(" >TRY: " + sRuleId + " " + sLineId) 590 _, sOption, sFuncCond, cActionType, sWhat, *eAct = _rules_graph.dRule[sRuleId] 591 # Suggestion [ option, condition, "-", replacement/suggestion/action, iTokenStart, iTokenEnd, cStartLimit, cEndLimit, bCaseSvty, nPriority, sMessage, iURL ] 592 # TextProcessor [ option, condition, "~", replacement/suggestion/action, iTokenStart, iTokenEnd, bCaseSvty ] 593 # Disambiguator [ option, condition, "=", replacement/suggestion/action ] 594 # Tag [ option, condition, "/", replacement/suggestion/action, iTokenStart, iTokenEnd ] 595 # Immunity [ option, condition, "!", "", iTokenStart, iTokenEnd ] 596 # Test [ option, condition, ">", "" ] 597 if not sOption or dOptions.get(sOption, False): 598 bCondMemo = not sFuncCond or globals()[sFuncCond](self.lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, self.dTags, self.sSentence, self.sSentence0) 599 if bCondMemo: 600 if cActionType == "-": 601 # grammar error 602 iTokenStart, iTokenEnd, cStartLimit, cEndLimit, bCaseSvty, nPriority, sMessage, iURL = eAct 603 nTokenErrorStart = nTokenOffset + iTokenStart if iTokenStart > 0 else nLastToken + iTokenStart 604 if "bImmune" not in self.lToken[nTokenErrorStart]: 605 nTokenErrorEnd = nTokenOffset + iTokenEnd if iTokenEnd > 0 else nLastToken + iTokenEnd 606 nErrorStart = self.nOffsetWithinParagraph + (self.lToken[nTokenErrorStart]["nStart"] if cStartLimit == "<" else self.lToken[nTokenErrorStart]["nEnd"]) 607 nErrorEnd = self.nOffsetWithinParagraph + (self.lToken[nTokenErrorEnd]["nEnd"] if cEndLimit == ">" else self.lToken[nTokenErrorEnd]["nStart"]) 608 if nErrorStart not in self.dError or nPriority > self.dErrorPriority.get(nErrorStart, -1): 609 self.dError[nErrorStart] = self._createErrorFromTokens(sWhat, nTokenOffset, nLastToken, nTokenErrorStart, nErrorStart, nErrorEnd, sLineId, sRuleId, bCaseSvty, \ 610 sMessage, _rules_graph.dURL.get(iURL, ""), bShowRuleId, sOption, bContext) 611 self.dErrorPriority[nErrorStart] = nPriority 612 self.dSentenceError[nErrorStart] = self.dError[nErrorStart] 613 if bDebug: 614 echo(" NEW_ERROR: {}".format(self.dError[nErrorStart])) 615 elif cActionType == "~": 616 # text processor 617 nTokenStart = nTokenOffset + eAct[0] if eAct[0] > 0 else nLastToken + eAct[0] 618 nTokenEnd = nTokenOffset + eAct[1] if eAct[1] > 0 else nLastToken + eAct[1] 619 self._tagAndPrepareTokenForRewriting(sWhat, nTokenStart, nTokenEnd, nTokenOffset, nLastToken, eAct[2], bDebug) 620 bChange = True 621 if bDebug: 622 echo(" TEXT_PROCESSOR: [{}:{}] > {}".format(self.lToken[nTokenStart]["sValue"], self.lToken[nTokenEnd]["sValue"], sWhat)) 623 elif cActionType == "=": 624 # disambiguation 625 globals()[sWhat](self.lToken, nTokenOffset, nLastToken) 626 if bDebug: 627 echo(" DISAMBIGUATOR: ({}) [{}:{}]".format(sWhat, self.lToken[nTokenOffset+1]["sValue"], self.lToken[nLastToken]["sValue"])) 628 elif cActionType == ">": 629 # we do nothing, this test is just a condition to apply all following actions 630 if bDebug: 631 echo(" COND_OK") 632 elif cActionType == "/": 633 # Tag 634 nTokenStart = nTokenOffset + eAct[0] if eAct[0] > 0 else nLastToken + eAct[0] 635 nTokenEnd = nTokenOffset + eAct[1] if eAct[1] > 0 else nLastToken + eAct[1] 636 for i in range(nTokenStart, nTokenEnd+1): 637 if "aTags" in self.lToken[i]: 638 self.lToken[i]["aTags"].update(sWhat.split("|")) 639 else: 640 self.lToken[i]["aTags"] = set(sWhat.split("|")) 641 if bDebug: 642 echo(" TAG: {} > [{}:{}]".format(sWhat, self.lToken[nTokenStart]["sValue"], self.lToken[nTokenEnd]["sValue"])) 643 for sTag in sWhat.split("|"): 644 if sTag not in self.dTags: 645 self.dTags[sTag] = [nTokenStart, nTokenEnd] 646 else: 647 self.dTags[sTag][0] = min(nTokenStart, self.dTags[sTag][0]) 648 self.dTags[sTag][1] = max(nTokenEnd, self.dTags[sTag][1]) 649 elif cActionType == "!": 650 # immunity 651 if bDebug: 652 echo(" IMMUNITY: " + sLineId + " / " + sRuleId) 653 nTokenStart = nTokenOffset + eAct[0] if eAct[0] > 0 else nLastToken + eAct[0] 654 nTokenEnd = nTokenOffset + eAct[1] if eAct[1] > 0 else nLastToken + eAct[1] 655 if nTokenEnd - nTokenStart == 0: 656 self.lToken[nTokenStart]["bImmune"] = True 657 nErrorStart = self.nOffsetWithinParagraph + self.lToken[nTokenStart]["nStart"] 658 if nErrorStart in self.dError: 659 del self.dError[nErrorStart] 660 else: 661 for i in range(nTokenStart, nTokenEnd+1): 662 self.lToken[i]["bImmune"] = True 663 nErrorStart = self.nOffsetWithinParagraph + self.lToken[i]["nStart"] 664 if nErrorStart in self.dError: 665 del self.dError[nErrorStart] 666 else: 667 echo("# error: unknown action at " + sLineId) 668 elif cActionType == ">": 669 if bDebug: 670 echo(" COND_BREAK") 671 break 672 except Exception as e: 673 raise Exception(str(e), sLineId, sRuleId, self.sSentence) 674 return bChange 675 676 def _createErrorFromRegex (self, sText, sText0, sRepl, nOffset, m, iGroup, sLineId, sRuleId, bCaseSvty, sMsg, sURL, bShowRuleId, sOption, bContext): 677 nStart = nOffset + m.start(iGroup) 678 nEnd = nOffset + m.end(iGroup) 679 # suggestions 680 if sRepl[0:1] == "=": 681 sSugg = globals()[sRepl[1:]](sText, m) 682 lSugg = sSugg.split("|") if sSugg else [] 683 elif sRepl == "_": 684 lSugg = [] 685 else: 686 lSugg = m.expand(sRepl).split("|") 687 if bCaseSvty and lSugg and m.group(iGroup)[0:1].isupper(): 688 lSugg = list(map(lambda s: s.upper(), lSugg)) if m.group(iGroup).isupper() else list(map(lambda s: s[0:1].upper()+s[1:], lSugg)) 689 # Message 690 sMessage = globals()[sMsg[1:]](sText, m) if sMsg[0:1] == "=" else m.expand(sMsg) 691 if bShowRuleId: 692 sMessage += " #" + sLineId + " / " + sRuleId 693 # 694 if _bWriterError: 695 return self._createErrorForWriter(nStart, nEnd - nStart, sRuleId, sOption, sMessage, lSugg, sURL) 696 return self._createErrorAsDict(nStart, nEnd, sLineId, sRuleId, sOption, sMessage, lSugg, sURL, bContext) 697 698 def _createErrorFromTokens (self, sSugg, nTokenOffset, nLastToken, iFirstToken, nStart, nEnd, sLineId, sRuleId, bCaseSvty, sMsg, sURL, bShowRuleId, sOption, bContext): 699 # suggestions 700 if sSugg[0:1] == "=": 701 sSugg = globals()[sSugg[1:]](self.lToken, nTokenOffset, nLastToken) 702 lSugg = sSugg.split("|") if sSugg else [] 703 elif sSugg == "_": 704 lSugg = [] 705 else: 706 lSugg = self._expand(sSugg, nTokenOffset, nLastToken).split("|") 707 if bCaseSvty and lSugg and self.lToken[iFirstToken]["sValue"][0:1].isupper(): 708 lSugg = list(map(lambda s: s.upper(), lSugg)) if self.sSentence[nStart:nEnd].isupper() else list(map(lambda s: s[0:1].upper()+s[1:], lSugg)) 709 # Message 710 sMessage = globals()[sMsg[1:]](self.lToken, nTokenOffset, nLastToken) if sMsg[0:1] == "=" else self._expand(sMsg, nTokenOffset, nLastToken) 711 if bShowRuleId: 712 sMessage += " #" + sLineId + " / " + sRuleId 713 # 714 if _bWriterError: 715 return self._createErrorForWriter(nStart, nEnd - nStart, sRuleId, sOption, sMessage, lSugg, sURL) 716 return self._createErrorAsDict(nStart, nEnd, sLineId, sRuleId, sOption, sMessage, lSugg, sURL, bContext) 717 718 def _createErrorForWriter (self, nStart, nLen, sRuleId, sOption, sMessage, lSugg, sURL): 719 xErr = SingleProofreadingError() # uno.createUnoStruct( "com.sun.star.linguistic2.SingleProofreadingError" ) 720 xErr.nErrorStart = nStart 721 xErr.nErrorLength = nLen 722 xErr.nErrorType = PROOFREADING 723 xErr.aRuleIdentifier = sRuleId 724 xErr.aShortComment = sMessage # sMessage.split("|")[0] # in context menu 725 xErr.aFullComment = sMessage # sMessage.split("|")[-1] # in dialog 726 xErr.aSuggestions = tuple(lSugg) 727 # Properties 728 lProperties = [] 729 if _nUnderliningStyle: 730 lProperties.append(PropertyValue(Name="LineType", Value=_nUnderliningStyle)) 731 if _bMulticolor: 732 lProperties.append(PropertyValue(Name="LineColor", Value=_dOptionsColors.get(sOption, 33023))) 733 if sURL: 734 lProperties.append(PropertyValue(Name="FullCommentURL", Value=sURL)) 735 xErr.aProperties = lProperties 736 return xErr 737 738 def _createErrorAsDict (self, nStart, nEnd, sLineId, sRuleId, sOption, sMessage, lSugg, sURL, bContext): 739 dErr = { 740 "nStart": nStart, 741 "nEnd": nEnd, 742 "sLineId": sLineId, 743 "sRuleId": sRuleId, 744 "sType": sOption if sOption else "notype", 745 "aColor": _dOptionsColors.get(sOption, None), 746 "sMessage": sMessage, 747 "aSuggestions": lSugg, 748 "URL": sURL 749 } 750 if bContext: 751 dErr['sUnderlined'] = self.sText0[nStart:nEnd] 752 dErr['sBefore'] = self.sText0[max(0,nStart-80):nStart] 753 dErr['sAfter'] = self.sText0[nEnd:nEnd+80] 754 return dErr 755 756 def _expand (self, sText, nTokenOffset, nLastToken): 757 for m in re.finditer(r"\\(-?[0-9]+)", sText): 758 if m.group(1)[0:1] == "-": 759 sText = sText.replace(m.group(0), self.lToken[nLastToken+int(m.group(1))+1]["sValue"]) 760 else: 761 sText = sText.replace(m.group(0), self.lToken[nTokenOffset+int(m.group(1))]["sValue"]) 762 return sText 763 764 def rewriteText (self, sText, sRepl, iGroup, m, bUppercase): 765 "text processor: write <sRepl> in <sText> at <iGroup> position" 766 nLen = m.end(iGroup) - m.start(iGroup) 767 if sRepl == "*": 768 sNew = " " * nLen 769 elif sRepl == "_": 770 sNew = "_" * nLen 771 elif sRepl == "@": 772 sNew = "@" * nLen 773 elif sRepl[0:1] == "=": 774 sNew = globals()[sRepl[1:]](sText, m) 775 sNew = sNew + " " * (nLen-len(sNew)) 776 if bUppercase and m.group(iGroup)[0:1].isupper(): 777 sNew = sNew.capitalize() 778 else: 779 sNew = m.expand(sRepl) 780 sNew = sNew + " " * (nLen-len(sNew)) 781 return sText[0:m.start(iGroup)] + sNew + sText[m.end(iGroup):] 782 783 def _tagAndPrepareTokenForRewriting (self, sWhat, nTokenRewriteStart, nTokenRewriteEnd, nTokenOffset, nLastToken, bCaseSvty, bDebug): 784 "text processor: rewrite tokens between <nTokenRewriteStart> and <nTokenRewriteEnd> position" 785 if sWhat == "*": 786 # purge text 787 if nTokenRewriteEnd - nTokenRewriteStart == 0: 788 self.lToken[nTokenRewriteStart]["bToRemove"] = True 789 else: 790 for i in range(nTokenRewriteStart, nTokenRewriteEnd+1): 791 self.lToken[i]["bToRemove"] = True 792 elif sWhat == "␣": 793 # merge tokens 794 self.lToken[nTokenRewriteStart]["nMergeUntil"] = nTokenRewriteEnd 795 elif sWhat == "_": 796 # neutralized token 797 if nTokenRewriteEnd - nTokenRewriteStart == 0: 798 self.lToken[nTokenRewriteStart]["sNewValue"] = "_" 799 else: 800 for i in range(nTokenRewriteStart, nTokenRewriteEnd+1): 801 self.lToken[i]["sNewValue"] = "_" 802 else: 803 if sWhat.startswith("="): 804 sWhat = globals()[sWhat[1:]](self.lToken, nTokenOffset, nLastToken) 805 else: 806 sWhat = self._expand(sWhat, nTokenOffset, nLastToken) 807 bUppercase = bCaseSvty and self.lToken[nTokenRewriteStart]["sValue"][0:1].isupper() 808 if nTokenRewriteEnd - nTokenRewriteStart == 0: 809 # one token 810 if bUppercase: 811 sWhat = sWhat[0:1].upper() + sWhat[1:] 812 self.lToken[nTokenRewriteStart]["sNewValue"] = sWhat 813 else: 814 # several tokens 815 lTokenValue = sWhat.split("|") 816 if len(lTokenValue) != (nTokenRewriteEnd - nTokenRewriteStart + 1): 817 if (bDebug): 818 echo("Error. Text processor: number of replacements != number of tokens.") 819 return 820 for i, sValue in zip(range(nTokenRewriteStart, nTokenRewriteEnd+1), lTokenValue): 821 if not sValue or sValue == "*": 822 self.lToken[i]["bToRemove"] = True 823 else: 824 if bUppercase: 825 sValue = sValue[0:1].upper() + sValue[1:] 826 self.lToken[i]["sNewValue"] = sValue 827 828 def rewriteFromTags (self, bDebug=False): 829 "rewrite the sentence, modify tokens, purge the token list" 830 if bDebug: 831 echo("REWRITE") 832 lNewToken = [] 833 nMergeUntil = 0 834 dTokenMerger = {} 835 for iToken, dToken in enumerate(self.lToken): 836 bKeepToken = True 837 if dToken["sType"] != "INFO": 838 if nMergeUntil and iToken <= nMergeUntil: 839 dTokenMerger["sValue"] += " " * (dToken["nStart"] - dTokenMerger["nEnd"]) + dToken["sValue"] 840 dTokenMerger["nEnd"] = dToken["nEnd"] 841 if bDebug: 842 echo(" MERGED TOKEN: " + dTokenMerger["sValue"]) 843 bKeepToken = False 844 if "nMergeUntil" in dToken: 845 if iToken > nMergeUntil: # this token is not already merged with a previous token 846 dTokenMerger = dToken 847 if dToken["nMergeUntil"] > nMergeUntil: 848 nMergeUntil = dToken["nMergeUntil"] 849 del dToken["nMergeUntil"] 850 elif "bToRemove" in dToken: 851 if bDebug: 852 echo(" REMOVED: " + dToken["sValue"]) 853 self.sSentence = self.sSentence[:dToken["nStart"]] + " " * (dToken["nEnd"] - dToken["nStart"]) + self.sSentence[dToken["nEnd"]:] 854 bKeepToken = False 855 # 856 if bKeepToken: 857 lNewToken.append(dToken) 858 if "sNewValue" in dToken: 859 # rewrite token and sentence 860 if bDebug: 861 echo(dToken["sValue"] + " -> " + dToken["sNewValue"]) 862 dToken["sRealValue"] = dToken["sValue"] 863 dToken["sValue"] = dToken["sNewValue"] 864 nDiffLen = len(dToken["sRealValue"]) - len(dToken["sNewValue"]) 865 sNewRepl = (dToken["sNewValue"] + " " * nDiffLen) if nDiffLen >= 0 else dToken["sNewValue"][:len(dToken["sRealValue"])] 866 self.sSentence = self.sSentence[:dToken["nStart"]] + sNewRepl + self.sSentence[dToken["nEnd"]:] 867 del dToken["sNewValue"] 868 else: 869 try: 870 del self.dTokenPos[dToken["nStart"]] 871 except KeyError: 872 echo(self) 873 echo(dToken) 874 if bDebug: 875 echo(" TEXT REWRITED: " + self.sSentence) 876 self.lToken.clear() 877 self.lToken = lNewToken 878 879 880#### common functions 881 882def option (sOpt): 883 "return True if option <sOpt> is active" 884 return _dOptions.get(sOpt, False) 885 886 887#### Functions to get text outside pattern scope 888 889# warning: check compile_rules.py to understand how it works 890 891_zNextWord = re.compile(r" +(\w[\w-]*)") 892_zPrevWord = re.compile(r"(\w[\w-]*) +$") 893 894def nextword (s, iStart, n): 895 "get the nth word of the input string or empty string" 896 m = re.match("(?: +[\\w%-]+){" + str(n-1) + "} +([\\w%-]+)", s[iStart:]) 897 if not m: 898 return None 899 return (iStart+m.start(1), m.group(1)) 900 901 902def prevword (s, iEnd, n): 903 "get the (-)nth word of the input string or empty string" 904 m = re.search("([\\w%-]+) +(?:[\\w%-]+ +){" + str(n-1) + "}$", s[:iEnd]) 905 if not m: 906 return None 907 return (m.start(1), m.group(1)) 908 909 910def nextword1 (s, iStart): 911 "get next word (optimization)" 912 m = _zNextWord.match(s[iStart:]) 913 if not m: 914 return None 915 return (iStart+m.start(1), m.group(1)) 916 917 918def prevword1 (s, iEnd): 919 "get previous word (optimization)" 920 m = _zPrevWord.search(s[:iEnd]) 921 if not m: 922 return None 923 return (m.start(1), m.group(1)) 924 925 926def look (s, sPattern, sNegPattern=None): 927 "seek sPattern in s (before/after/fulltext), if sNegPattern not in s" 928 if sNegPattern and re.search(sNegPattern, s): 929 return False 930 if re.search(sPattern, s): 931 return True 932 return False 933 934 935def look_chk1 (dTokenPos, s, nOffset, sPattern, sPatternGroup1, sNegPatternGroup1=""): 936 "returns True if s has pattern sPattern and m.group(1) has pattern sPatternGroup1" 937 m = re.search(sPattern, s) 938 if not m: 939 return False 940 try: 941 sWord = m.group(1) 942 nPos = m.start(1) + nOffset 943 except IndexError: 944 return False 945 return morph(dTokenPos, (nPos, sWord), sPatternGroup1, sNegPatternGroup1) 946 947 948 949#### Analyse groups for regex rules 950 951def displayInfo (dTokenPos, tWord): 952 "for debugging: retrieve info of word" 953 if not tWord: 954 echo("> nothing to find") 955 return True 956 lMorph = _oSpellChecker.getMorph(tWord[1]) 957 if not lMorph: 958 echo("> not in dictionary") 959 return True 960 echo("TOKENS:", dTokenPos) 961 if tWord[0] in dTokenPos and "lMorph" in dTokenPos[tWord[0]]: 962 echo("DA: " + str(dTokenPos[tWord[0]]["lMorph"])) 963 echo("FSA: " + str(lMorph)) 964 return True 965 966 967def morph (dTokenPos, tWord, sPattern, sNegPattern="", bNoWord=False): 968 "analyse a tuple (position, word), returns True if not sNegPattern in word morphologies and sPattern in word morphologies (disambiguation on)" 969 if not tWord: 970 return bNoWord 971 lMorph = dTokenPos[tWord[0]]["lMorph"] if tWord[0] in dTokenPos and "lMorph" in dTokenPos[tWord[0]] else _oSpellChecker.getMorph(tWord[1]) 972 if not lMorph: 973 return False 974 # check negative condition 975 if sNegPattern: 976 if sNegPattern == "*": 977 # all morph must match sPattern 978 zPattern = re.compile(sPattern) 979 return all(zPattern.search(sMorph) for sMorph in lMorph) 980 zNegPattern = re.compile(sNegPattern) 981 if any(zNegPattern.search(sMorph) for sMorph in lMorph): 982 return False 983 # search sPattern 984 zPattern = re.compile(sPattern) 985 return any(zPattern.search(sMorph) for sMorph in lMorph) 986 987 988def analyse (sWord, sPattern, sNegPattern=""): 989 "analyse a word, returns True if not sNegPattern in word morphologies and sPattern in word morphologies (disambiguation off)" 990 lMorph = _oSpellChecker.getMorph(sWord) 991 if not lMorph: 992 return False 993 # check negative condition 994 if sNegPattern: 995 if sNegPattern == "*": 996 zPattern = re.compile(sPattern) 997 return all(zPattern.search(sMorph) for sMorph in lMorph) 998 zNegPattern = re.compile(sNegPattern) 999 if any(zNegPattern.search(sMorph) for sMorph in lMorph): 1000 return False 1001 # search sPattern 1002 zPattern = re.compile(sPattern) 1003 return any(zPattern.search(sMorph) for sMorph in lMorph) 1004 1005 1006#### Analyse tokens for graph rules 1007 1008def g_value (dToken, sValues, nLeft=None, nRight=None): 1009 "test if <dToken['sValue']> is in sValues (each value should be separated with |)" 1010 sValue = "|"+dToken["sValue"]+"|" if nLeft is None else "|"+dToken["sValue"][slice(nLeft, nRight)]+"|" 1011 if sValue in sValues: 1012 return True 1013 if dToken["sValue"][0:2].istitle(): # we test only 2 first chars, to make valid words such as "Laissez-les", "Passe-partout". 1014 if sValue.lower() in sValues: 1015 return True 1016 elif dToken["sValue"].isupper(): 1017 #if sValue.lower() in sValues: 1018 # return True 1019 sValue = "|"+sValue[1:].capitalize() 1020 if sValue in sValues: 1021 return True 1022 sValue = sValue.lower() 1023 if sValue in sValues: 1024 return True 1025 return False 1026 1027 1028def g_morph (dToken, sPattern, sNegPattern="", nLeft=None, nRight=None, bMemorizeMorph=True): 1029 "analyse a token, return True if <sNegPattern> not in morphologies and <sPattern> in morphologies" 1030 if "lMorph" in dToken: 1031 lMorph = dToken["lMorph"] 1032 else: 1033 if nLeft is not None: 1034 lMorph = _oSpellChecker.getMorph(dToken["sValue"][slice(nLeft, nRight)]) 1035 if bMemorizeMorph: 1036 dToken["lMorph"] = lMorph 1037 else: 1038 lMorph = _oSpellChecker.getMorph(dToken["sValue"]) 1039 if not lMorph: 1040 return False 1041 # check negative condition 1042 if sNegPattern: 1043 if sNegPattern == "*": 1044 # all morph must match sPattern 1045 zPattern = re.compile(sPattern) 1046 return all(zPattern.search(sMorph) for sMorph in lMorph) 1047 zNegPattern = re.compile(sNegPattern) 1048 if any(zNegPattern.search(sMorph) for sMorph in lMorph): 1049 return False 1050 # search sPattern 1051 zPattern = re.compile(sPattern) 1052 return any(zPattern.search(sMorph) for sMorph in lMorph) 1053 1054 1055def g_analyse (dToken, sPattern, sNegPattern="", nLeft=None, nRight=None, bMemorizeMorph=True): 1056 "analyse a token, return True if <sNegPattern> not in morphologies and <sPattern> in morphologies (disambiguation off)" 1057 if nLeft is not None: 1058 lMorph = _oSpellChecker.getMorph(dToken["sValue"][slice(nLeft, nRight)]) 1059 if bMemorizeMorph: 1060 dToken["lMorph"] = lMorph 1061 else: 1062 lMorph = _oSpellChecker.getMorph(dToken["sValue"]) 1063 if not lMorph: 1064 return False 1065 # check negative condition 1066 if sNegPattern: 1067 if sNegPattern == "*": 1068 # all morph must match sPattern 1069 zPattern = re.compile(sPattern) 1070 return all(zPattern.search(sMorph) for sMorph in lMorph) 1071 zNegPattern = re.compile(sNegPattern) 1072 if any(zNegPattern.search(sMorph) for sMorph in lMorph): 1073 return False 1074 # search sPattern 1075 zPattern = re.compile(sPattern) 1076 return any(zPattern.search(sMorph) for sMorph in lMorph) 1077 1078 1079def g_merged_analyse (dToken1, dToken2, cMerger, sPattern, sNegPattern="", bSetMorph=True): 1080 "merge two token values, return True if <sNegPattern> not in morphologies and <sPattern> in morphologies (disambiguation off)" 1081 lMorph = _oSpellChecker.getMorph(dToken1["sValue"] + cMerger + dToken2["sValue"]) 1082 if not lMorph: 1083 return False 1084 # check negative condition 1085 if sNegPattern: 1086 if sNegPattern == "*": 1087 # all morph must match sPattern 1088 zPattern = re.compile(sPattern) 1089 bResult = all(zPattern.search(sMorph) for sMorph in lMorph) 1090 if bResult and bSetMorph: 1091 dToken1["lMorph"] = lMorph 1092 return bResult 1093 zNegPattern = re.compile(sNegPattern) 1094 if any(zNegPattern.search(sMorph) for sMorph in lMorph): 1095 return False 1096 # search sPattern 1097 zPattern = re.compile(sPattern) 1098 bResult = any(zPattern.search(sMorph) for sMorph in lMorph) 1099 if bResult and bSetMorph: 1100 dToken1["lMorph"] = lMorph 1101 return bResult 1102 1103 1104def g_tag_before (dToken, dTags, sTag): 1105 "returns True if <sTag> is present on tokens before <dToken>" 1106 if sTag not in dTags: 1107 return False 1108 if dToken["i"] > dTags[sTag][0]: 1109 return True 1110 return False 1111 1112 1113def g_tag_after (dToken, dTags, sTag): 1114 "returns True if <sTag> is present on tokens after <dToken>" 1115 if sTag not in dTags: 1116 return False 1117 if dToken["i"] < dTags[sTag][1]: 1118 return True 1119 return False 1120 1121 1122def g_tag (dToken, sTag): 1123 "returns True if <sTag> is present on token <dToken>" 1124 return "aTags" in dToken and sTag in dToken["aTags"] 1125 1126 1127def g_meta (dToken, sType): 1128 "returns True if <sType> is equal to the token type" 1129 return dToken["sType"] == sType 1130 1131 1132def g_space_between_tokens (dToken1, dToken2, nMin, nMax=None): 1133 "checks if spaces between tokens is >= <nMin> and <= <nMax>" 1134 nSpace = dToken2["nStart"] - dToken1["nEnd"] 1135 if nSpace < nMin: 1136 return False 1137 if nMax is not None and nSpace > nMax: 1138 return False 1139 return True 1140 1141 1142def g_token (lToken, i): 1143 "return token at index <i> in lToken (or the closest one)" 1144 if i < 0: 1145 return lToken[0] 1146 if i >= len(lToken): 1147 return lToken[-1] 1148 return lToken[i] 1149 1150 1151 1152#### Disambiguator for regex rules 1153 1154def select (dTokenPos, nPos, sWord, sPattern, lDefault=None): 1155 "Disambiguation: select morphologies of <sWord> matching <sPattern>" 1156 if not sWord: 1157 return True 1158 if nPos not in dTokenPos: 1159 echo("Error. There should be a token at this position: ", nPos) 1160 return True 1161 lMorph = _oSpellChecker.getMorph(sWord) 1162 if not lMorph or len(lMorph) == 1: 1163 return True 1164 lSelect = [ sMorph for sMorph in lMorph if re.search(sPattern, sMorph) ] 1165 if lSelect: 1166 if len(lSelect) != len(lMorph): 1167 dTokenPos[nPos]["lMorph"] = lSelect 1168 elif lDefault: 1169 dTokenPos[nPos]["lMorph"] = lDefault 1170 return True 1171 1172 1173def exclude (dTokenPos, nPos, sWord, sPattern, lDefault=None): 1174 "Disambiguation: exclude morphologies of <sWord> matching <sPattern>" 1175 if not sWord: 1176 return True 1177 if nPos not in dTokenPos: 1178 echo("Error. There should be a token at this position: ", nPos) 1179 return True 1180 lMorph = _oSpellChecker.getMorph(sWord) 1181 if not lMorph or len(lMorph) == 1: 1182 return True 1183 lSelect = [ sMorph for sMorph in lMorph if not re.search(sPattern, sMorph) ] 1184 if lSelect: 1185 if len(lSelect) != len(lMorph): 1186 dTokenPos[nPos]["lMorph"] = lSelect 1187 elif lDefault: 1188 dTokenPos[nPos]["lMorph"] = lDefault 1189 return True 1190 1191 1192def define (dTokenPos, nPos, sMorphs): 1193 "Disambiguation: set morphologies of token at <nPos> with <sMorphs>" 1194 if nPos not in dTokenPos: 1195 echo("Error. There should be a token at this position: ", nPos) 1196 return True 1197 dTokenPos[nPos]["lMorph"] = sMorphs.split("|") 1198 return True 1199 1200 1201#### Disambiguation for graph rules 1202 1203def g_select (dToken, sPattern, lDefault=None): 1204 "Disambiguation: select morphologies for <dToken> according to <sPattern>, always return True" 1205 lMorph = dToken["lMorph"] if "lMorph" in dToken else _oSpellChecker.getMorph(dToken["sValue"]) 1206 if not lMorph or len(lMorph) == 1: 1207 if lDefault: 1208 dToken["lMorph"] = lDefault 1209 #echo("DA:", dToken["sValue"], dToken["lMorph"]) 1210 return True 1211 lSelect = [ sMorph for sMorph in lMorph if re.search(sPattern, sMorph) ] 1212 if lSelect: 1213 if len(lSelect) != len(lMorph): 1214 dToken["lMorph"] = lSelect 1215 elif lDefault: 1216 dToken["lMorph"] = lDefault 1217 #echo("DA:", dToken["sValue"], dToken["lMorph"]) 1218 return True 1219 1220 1221def g_exclude (dToken, sPattern, lDefault=None): 1222 "Disambiguation: select morphologies for <dToken> according to <sPattern>, always return True" 1223 lMorph = dToken["lMorph"] if "lMorph" in dToken else _oSpellChecker.getMorph(dToken["sValue"]) 1224 if not lMorph or len(lMorph) == 1: 1225 if lDefault: 1226 dToken["lMorph"] = lDefault 1227 #echo("DA:", dToken["sValue"], dToken["lMorph"]) 1228 return True 1229 lSelect = [ sMorph for sMorph in lMorph if not re.search(sPattern, sMorph) ] 1230 if lSelect: 1231 if len(lSelect) != len(lMorph): 1232 dToken["lMorph"] = lSelect 1233 elif lDefault: 1234 dToken["lMorph"] = lDefault 1235 #echo("DA:", dToken["sValue"], dToken["lMorph"]) 1236 return True 1237 1238 1239def g_add_morph (dToken, sNewMorph): 1240 "Disambiguation: add a morphology to a token" 1241 lMorph = dToken["lMorph"] if "lMorph" in dToken else _oSpellChecker.getMorph(dToken["sValue"]) 1242 lMorph.extend(sNewMorph.split("|")) 1243 dToken["lMorph"] = lMorph 1244 return True 1245 1246 1247def g_rewrite (dToken, sToReplace, sReplace): 1248 "Disambiguation: rewrite morphologies" 1249 lMorph = dToken["lMorph"] if "lMorph" in dToken else _oSpellChecker.getMorph(dToken["sValue"]) 1250 dToken["lMorph"] = [ sMorph.replace(sToReplace, sReplace) for sMorph in lMorph ] 1251 return True 1252 1253 1254def g_define (dToken, sMorphs): 1255 "Disambiguation: set morphologies of <dToken>, always return True" 1256 dToken["lMorph"] = sMorphs.split("|") 1257 #echo("DA:", dToken["sValue"], lMorph) 1258 return True 1259 1260 1261def g_define_from (dToken, nLeft=None, nRight=None): 1262 "Disambiguation: set morphologies of <dToken> with slicing its value with <nLeft> and <nRight>" 1263 if nLeft is not None: 1264 dToken["lMorph"] = _oSpellChecker.getMorph(dToken["sValue"][slice(nLeft, nRight)]) 1265 else: 1266 dToken["lMorph"] = _oSpellChecker.getMorph(dToken["sValue"]) 1267 return True 1268 1269 1270def g_change_meta (dToken, sType): 1271 "Disambiguation: change type of token" 1272 dToken["sType"] = sType 1273 return True 1274 1275 1276 1277#### GRAMMAR CHECKER PLUGINS 1278 1279 1280 1281#### GRAMMAR CHECKING ENGINE PLUGIN: Parsing functions for French language 1282 1283from . import cregex as cr 1284 1285 1286def g_morphVC (dToken, sPattern, sNegPattern=""): 1287 "lance la fonction g_morph() sur la première partie d’un verbe composé (ex: vient-il)" 1288 nEnd = dToken["sValue"].rfind("-") 1289 if dToken["sValue"].count("-") > 1: 1290 if "-t-" in dToken["sValue"]: 1291 nEnd = nEnd - 2 1292 elif re.search("-l(?:es?|a)-(?:[mt]oi|nous|leur)$|(?:[nv]ous|lui|leur)-en$", dToken["sValue"]): 1293 nEnd = dToken["sValue"][0:nEnd].rfind("-") 1294 return g_morph(dToken, sPattern, sNegPattern, 0, nEnd, False) 1295 1296 1297def apposition (sWord1, sWord2): 1298 "returns True if nom + nom (no agreement required)" 1299 return len(sWord2) < 2 or (cr.mbNomNotAdj(_oSpellChecker.getMorph(sWord2)) and cr.mbPpasNomNotAdj(_oSpellChecker.getMorph(sWord1))) 1300 1301 1302def g_checkAgreement (dToken1, dToken2, bNotOnlyNames=True): 1303 "check agreement between <dToken1> and <dToken2>" 1304 lMorph1 = dToken1["lMorph"] if "lMorph" in dToken1 else _oSpellChecker.getMorph(dToken1["sValue"]) 1305 if not lMorph1: 1306 return True 1307 lMorph2 = dToken2["lMorph"] if "lMorph" in dToken2 else _oSpellChecker.getMorph(dToken2["sValue"]) 1308 if not lMorph2: 1309 return True 1310 if bNotOnlyNames and not (cr.mbAdj(lMorph2) or cr.mbAdjNb(lMorph1)): 1311 return False 1312 return cr.checkAgreement(lMorph1, lMorph2) 1313 1314 1315def checkAgreement (sWord1, sWord2): 1316 "check agreement between <sWord1> and <sWord1>" 1317 lMorph2 = _oSpellChecker.getMorph(sWord2) 1318 if not lMorph2: 1319 return True 1320 lMorph1 = _oSpellChecker.getMorph(sWord1) 1321 if not lMorph1: 1322 return True 1323 return cr.checkAgreement(lMorph1, lMorph2) 1324 1325 1326_zUnitSpecial = re.compile("[µ/⁰¹²³⁴⁵⁶⁷⁸⁹Ωℓ·]") 1327_zUnitNumbers = re.compile("[0-9]") 1328 1329def mbUnit (s): 1330 "returns True it can be a measurement unit" 1331 if _zUnitSpecial.search(s): 1332 return True 1333 if 1 < len(s) < 16 and s[0:1].islower() and (not s[1:].islower() or _zUnitNumbers.search(s)): 1334 return True 1335 return False 1336 1337 1338#### GRAMMAR CHECKING ENGINE PLUGIN 1339 1340#### Check date validity 1341 1342import datetime 1343 1344 1345_lDay = ["lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi", "dimanche"] 1346_dMonth = { "janvier":1, "février":2, "mars":3, "avril":4, "mai":5, "juin":6, "juillet":7, "août":8, "aout":8, "septembre":9, "octobre":10, "novembre":11, "décembre":12 } 1347 1348# Dans Python, datetime.weekday() envoie le résultat comme si nous étions dans un calendrier grégorien universal. 1349# https://fr.wikipedia.org/wiki/Passage_du_calendrier_julien_au_calendrier_gr%C3%A9gorien 1350# Selon Grégoire, le jeudi 4 octobre 1582 est immédiatement suivi par le vendredi 15 octobre. 1351# En France, la bascule eut lieu le 9 décembre 1582 qui fut suivi par le 20 décembre 1582. 1352# C’est la date retenue pour la bascule dans Grammalecte, mais le calendrier grégorien fut adopté dans le monde diversement. 1353# Il fallut des siècles pour qu’il soit adopté par l’Occident et une grande partie du reste du monde. 1354_dGregorianToJulian = { 1355 "lundi": "jeudi", 1356 "mardi": "vendredi", 1357 "mercredi": "samedi", 1358 "jeudi": "dimanche", 1359 "vendredi": "lundi", 1360 "samedi": "mardi", 1361 "dimanche": "mercredi" 1362} 1363 1364 1365def checkDate (sDay, sMonth, sYear): 1366 "return True if the date is valid" 1367 if not sMonth.isdigit(): 1368 sMonth = _dMonth.get(sMonth.lower(), "13") 1369 try: 1370 return datetime.date(int(sYear), int(sMonth), int(sDay)) 1371 except ValueError: 1372 return False 1373 except TypeError: 1374 return True 1375 1376 1377def checkDay (sWeekday, sDay, sMonth, sYear): 1378 "return True if sWeekday is valid according to the given date" 1379 xDate = checkDate(sDay, sMonth, sYear) 1380 if xDate and _getDay(xDate) != sWeekday.lower(): 1381 return False 1382 # if the date isn’t valid, any day is valid. 1383 return True 1384 1385 1386def getDay (sDay, sMonth, sYear): 1387 "return the day of the date (in Gregorian calendar after 1582-12-20, in Julian calendar before 1582-12-09)" 1388 xDate = checkDate(sDay, sMonth, sYear) 1389 if xDate: 1390 return _getDay(xDate) 1391 return "" 1392 1393 1394def _getDay (xDate): 1395 "return the day of the date (in Gregorian calendar after 1582-12-20, in Julian calendar before 1582-12-09)" 1396 if xDate.year > 1582: 1397 # Calendrier grégorien 1398 return _lDay[xDate.weekday()] 1399 if xDate.year < 1582: 1400 # Calendrier julien 1401 sGregorianDay = _lDay[xDate.weekday()] 1402 return _dGregorianToJulian.get(sGregorianDay, "Erreur: jour inconnu") 1403 # 1582 1404 if xDate.month < 12 or xDate.day <= 9: 1405 # Calendrier julien 1406 sGregorianDay = _lDay[xDate.weekday()] 1407 return _dGregorianToJulian.get(sGregorianDay, "Erreur: jour inconnu") 1408 if xDate.day >= 20: 1409 # Calendrier grégorien 1410 return _lDay[xDate.weekday()] 1411 # 10 - 19 décembre 1582: jours inexistants en France. 1412 return "" 1413 1414 1415#### GRAMMAR CHECKING ENGINE PLUGIN: Suggestion mechanisms 1416 1417from . import conj 1418from . import mfsp 1419from . import phonet 1420 1421 1422## Verbs 1423 1424def splitVerb (sVerb): 1425 "renvoie le verbe et les pronoms séparément" 1426 iRight = sVerb.rfind("-") 1427 sSuffix = sVerb[iRight:] 1428 sVerb = sVerb[:iRight] 1429 if sVerb.endswith(("-t", "-le", "-la", "-les")): 1430 iRight = sVerb.rfind("-") 1431 sSuffix = sVerb[iRight:] + sSuffix 1432 sVerb = sVerb[:iRight] 1433 return sVerb, sSuffix 1434 1435 1436def suggVerb (sFlex, sWho, funcSugg2=None, bVC=False): 1437 "change <sFlex> conjugation according to <sWho>" 1438 if bVC: 1439 sFlex, sSfx = splitVerb(sFlex) 1440 aSugg = set() 1441 for sStem in _oSpellChecker.getLemma(sFlex): 1442 tTags = conj._getTags(sStem) 1443 if tTags: 1444 # we get the tense 1445 aTense = set() 1446 for sMorph in _oSpellChecker.getMorph(sFlex): 1447 for m in re.finditer(">"+sStem+"/.*?(:(?:Y|I[pqsf]|S[pq]|K|P|Q))", sMorph): 1448 # stem must be used in regex to prevent confusion between different verbs (e.g. sauras has 2 stems: savoir and saurer) 1449 if m: 1450 if m.group(1) == ":Y" or m.group(1) == ":Q": 1451 aTense.add(":Ip") 1452 aTense.add(":Iq") 1453 aTense.add(":Is") 1454 elif m.group(1) == ":P": 1455 aTense.add(":Ip") 1456 else: 1457 aTense.add(m.group(1)) 1458 for sTense in aTense: 1459 if sWho == ":1ś" and not conj._hasConjWithTags(tTags, sTense, ":1ś"): 1460 sWho = ":1s" 1461 if conj._hasConjWithTags(tTags, sTense, sWho): 1462 aSugg.add(conj._getConjWithTags(sStem, tTags, sTense, sWho)) 1463 if funcSugg2: 1464 aSugg2 = funcSugg2(sFlex) 1465 if aSugg2: 1466 aSugg.add(aSugg2) 1467 if aSugg: 1468 if bVC: 1469 aSugg = list(map(lambda sSug: sSug + sSfx, aSugg)) 1470 return "|".join(aSugg) 1471 return "" 1472 1473 1474def suggVerbPpas (sFlex, sPattern=None): 1475 "suggest past participles for <sFlex>" 1476 aSugg = set() 1477 for sStem in _oSpellChecker.getLemma(sFlex): 1478 tTags = conj._getTags(sStem) 1479 if tTags: 1480 if not sPattern: 1481 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q1")) 1482 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q2")) 1483 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q3")) 1484 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q4")) 1485 aSugg.discard("") 1486 elif sPattern == ":m:s": 1487 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q1")) 1488 elif sPattern == ":m:p": 1489 if conj._hasConjWithTags(tTags, ":PQ", ":Q2"): 1490 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q2")) 1491 else: 1492 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q1")) 1493 elif sPattern == ":f:s": 1494 if conj._hasConjWithTags(tTags, ":PQ", ":Q3"): 1495 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q3")) 1496 else: 1497 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q1")) 1498 elif sPattern == ":f:p": 1499 if conj._hasConjWithTags(tTags, ":PQ", ":Q4"): 1500 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q4")) 1501 else: 1502 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q1")) 1503 elif sPattern == ":s": 1504 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q1")) 1505 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q3")) 1506 aSugg.discard("") 1507 elif sPattern == ":p": 1508 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q2")) 1509 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q4")) 1510 aSugg.discard("") 1511 else: 1512 aSugg.add(conj._getConjWithTags(sStem, tTags, ":PQ", ":Q1")) 1513 if aSugg: 1514 return "|".join(aSugg) 1515 return "" 1516 1517 1518def suggVerbTense (sFlex, sTense, sWho): 1519 "change <sFlex> to a verb according to <sTense> and <sWho>" 1520 aSugg = set() 1521 for sStem in _oSpellChecker.getLemma(sFlex): 1522 if conj.hasConj(sStem, sTense, sWho): 1523 aSugg.add(conj.getConj(sStem, sTense, sWho)) 1524 if aSugg: 1525 return "|".join(aSugg) 1526 return "" 1527 1528 1529def suggVerbImpe (sFlex, bVC=False): 1530 "change <sFlex> to a verb at imperative form" 1531 if bVC: 1532 sFlex, sSfx = splitVerb(sFlex) 1533 aSugg = set() 1534 for sStem in _oSpellChecker.getLemma(sFlex): 1535 tTags = conj._getTags(sStem) 1536 if tTags: 1537 if conj._hasConjWithTags(tTags, ":E", ":2s"): 1538 aSugg.add(conj._getConjWithTags(sStem, tTags, ":E", ":2s")) 1539 if conj._hasConjWithTags(tTags, ":E", ":1p"): 1540 aSugg.add(conj._getConjWithTags(sStem, tTags, ":E", ":1p")) 1541 if conj._hasConjWithTags(tTags, ":E", ":2p"): 1542 aSugg.add(conj._getConjWithTags(sStem, tTags, ":E", ":2p")) 1543 if aSugg: 1544 if bVC: 1545 aSugg = list(map(lambda sSug: sSug + sSfx, aSugg)) 1546 return "|".join(aSugg) 1547 return "" 1548 1549 1550def suggVerbInfi (sFlex): 1551 "returns infinitive forms of <sFlex>" 1552 return "|".join([ sStem for sStem in _oSpellChecker.getLemma(sFlex) if conj.isVerb(sStem) ]) 1553 1554 1555_dQuiEst = { "je": ":1s", "j’": ":1s", "j’en": ":1s", "j’y": ":1s", \ 1556 "tu": ":2s", "il": ":3s", "on": ":3s", "elle": ":3s", "nous": ":1p", "vous": ":2p", "ils": ":3p", "elles": ":3p" } 1557_lIndicatif = [":Ip", ":Iq", ":Is", ":If"] 1558_lSubjonctif = [":Sp", ":Sq"] 1559 1560def suggVerbMode (sFlex, cMode, sSuj): 1561 "returns other conjugations of <sFlex> acconding to <cMode> and <sSuj>" 1562 if cMode == ":I": 1563 lMode = _lIndicatif 1564 elif cMode == ":S": 1565 lMode = _lSubjonctif 1566 elif cMode.startswith((":I", ":S")): 1567 lMode = [cMode] 1568 else: 1569 return "" 1570 sWho = _dQuiEst.get(sSuj.lower(), None) 1571 if not sWho: 1572 if sSuj[0:1].islower(): # pas un pronom, ni un nom propre 1573 return "" 1574 sWho = ":3s" 1575 aSugg = set() 1576 for sStem in _oSpellChecker.getLemma(sFlex): 1577 tTags = conj._getTags(sStem) 1578 if tTags: 1579 for sTense in lMode: 1580 if conj._hasConjWithTags(tTags, sTense, sWho): 1581 aSugg.add(conj._getConjWithTags(sStem, tTags, sTense, sWho)) 1582 if aSugg: 1583 return "|".join(aSugg) 1584 return "" 1585 1586 1587## Nouns and adjectives 1588 1589def suggPlur (sFlex, sWordToAgree=None, bSelfSugg=False): 1590 "returns plural forms assuming sFlex is singular" 1591 if sWordToAgree: 1592 lMorph = _oSpellChecker.getMorph(sFlex) 1593 if not lMorph: 1594 return "" 1595 sGender = cr.getGender(lMorph) 1596 if sGender == ":m": 1597 return suggMasPlur(sFlex) 1598 if sGender == ":f": 1599 return suggFemPlur(sFlex) 1600 aSugg = set() 1601 if sFlex.endswith("l"): 1602 if sFlex.endswith("al") and len(sFlex) > 2 and _oSpellChecker.isValid(sFlex[:-1]+"ux"): 1603 aSugg.add(sFlex[:-1]+"ux") 1604 if sFlex.endswith("ail") and len(sFlex) > 3 and _oSpellChecker.isValid(sFlex[:-2]+"ux"): 1605 aSugg.add(sFlex[:-2]+"ux") 1606 if sFlex.endswith("L"): 1607 if sFlex.endswith("AL") and len(sFlex) > 2 and _oSpellChecker.isValid(sFlex[:-1]+"UX"): 1608 aSugg.add(sFlex[:-1]+"UX") 1609 if sFlex.endswith("AIL") and len(sFlex) > 3 and _oSpellChecker.isValid(sFlex[:-2]+"UX"): 1610 aSugg.add(sFlex[:-2]+"UX") 1611 if sFlex[-1:].islower(): 1612 if _oSpellChecker.isValid(sFlex+"s"): 1613 aSugg.add(sFlex+"s") 1614 if _oSpellChecker.isValid(sFlex+"x"): 1615 aSugg.add(sFlex+"x") 1616 else: 1617 if _oSpellChecker.isValid(sFlex+"S"): 1618 aSugg.add(sFlex+"s") 1619 if _oSpellChecker.isValid(sFlex+"X"): 1620 aSugg.add(sFlex+"x") 1621 if mfsp.hasMiscPlural(sFlex): 1622 aSugg.update(mfsp.getMiscPlural(sFlex)) 1623 if not aSugg and bSelfSugg and sFlex.endswith(("s", "x", "S", "X")): 1624 aSugg.add(sFlex) 1625 aSugg.discard("") 1626 if aSugg: 1627 return "|".join(aSugg) 1628 return "" 1629 1630 1631def suggSing (sFlex, bSelfSugg=True): 1632 "returns singular forms assuming sFlex is plural" 1633 aSugg = set() 1634 if sFlex.endswith("ux"): 1635 if _oSpellChecker.isValid(sFlex[:-2]+"l"): 1636 aSugg.add(sFlex[:-2]+"l") 1637 if _oSpellChecker.isValid(sFlex[:-2]+"il"): 1638 aSugg.add(sFlex[:-2]+"il") 1639 if sFlex.endswith("UX"): 1640 if _oSpellChecker.isValid(sFlex[:-2]+"L"): 1641 aSugg.add(sFlex[:-2]+"L") 1642 if _oSpellChecker.isValid(sFlex[:-2]+"IL"): 1643 aSugg.add(sFlex[:-2]+"IL") 1644 if sFlex.endswith(("s", "x", "S", "X")) and _oSpellChecker.isValid(sFlex[:-1]): 1645 aSugg.add(sFlex[:-1]) 1646 if bSelfSugg and not aSugg: 1647 aSugg.add(sFlex) 1648 aSugg.discard("") 1649 if aSugg: 1650 return "|".join(aSugg) 1651 return "" 1652 1653 1654def suggMasSing (sFlex, bSuggSimil=False): 1655 "returns masculine singular forms" 1656 aSugg = set() 1657 for sMorph in _oSpellChecker.getMorph(sFlex): 1658 if not ":V" in sMorph: 1659 # not a verb 1660 if ":m" in sMorph or ":e" in sMorph: 1661 aSugg.add(suggSing(sFlex)) 1662 else: 1663 sStem = cr.getLemmaOfMorph(sMorph) 1664 if mfsp.isMasForm(sStem): 1665 aSugg.add(sStem) 1666 else: 1667 # a verb 1668 sVerb = cr.getLemmaOfMorph(sMorph) 1669 if conj.hasConj(sVerb, ":PQ", ":Q1") and conj.hasConj(sVerb, ":PQ", ":Q3"): 1670 # We also check if the verb has a feminine form. 1671 # If not, we consider it’s better to not suggest the masculine one, as it can be considered invariable. 1672 aSugg.add(conj.getConj(sVerb, ":PQ", ":Q1")) 1673 if bSuggSimil: 1674 for e in phonet.selectSimil(sFlex, ":m:[si]"): 1675 aSugg.add(e) 1676 aSugg.discard("") 1677 if aSugg: 1678 return "|".join(aSugg) 1679 return "" 1680 1681 1682def suggMasPlur (sFlex, bSuggSimil=False): 1683 "returns masculine plural forms" 1684 aSugg = set() 1685 for sMorph in _oSpellChecker.getMorph(sFlex): 1686 if not ":V" in sMorph: 1687 # not a verb 1688 if ":m" in sMorph or ":e" in sMorph: 1689 aSugg.add(suggPlur(sFlex)) 1690 else: 1691 sStem = cr.getLemmaOfMorph(sMorph) 1692 if mfsp.isMasForm(sStem): 1693 aSugg.add(suggPlur(sStem)) 1694 else: 1695 # a verb 1696 sVerb = cr.getLemmaOfMorph(sMorph) 1697 if conj.hasConj(sVerb, ":PQ", ":Q2"): 1698 aSugg.add(conj.getConj(sVerb, ":PQ", ":Q2")) 1699 elif conj.hasConj(sVerb, ":PQ", ":Q1"): 1700 sSugg = conj.getConj(sVerb, ":PQ", ":Q1") 1701 # it is necessary to filter these flexions, like “succédé” or “agi” that are not masculine plural. 1702 if sSugg.endswith("s"): 1703 aSugg.add(sSugg) 1704 if bSuggSimil: 1705 for e in phonet.selectSimil(sFlex, ":m:[pi]"): 1706 aSugg.add(e) 1707 aSugg.discard("") 1708 if aSugg: 1709 return "|".join(aSugg) 1710 return "" 1711 1712 1713def suggFemSing (sFlex, bSuggSimil=False): 1714 "returns feminine singular forms" 1715 aSugg = set() 1716 for sMorph in _oSpellChecker.getMorph(sFlex): 1717 if not ":V" in sMorph: 1718 # not a verb 1719 if ":f" in sMorph or ":e" in sMorph: 1720 aSugg.add(suggSing(sFlex)) 1721 else: 1722 sStem = cr.getLemmaOfMorph(sMorph) 1723 if mfsp.isMasForm(sStem): 1724 aSugg.update(mfsp.getFemForm(sStem, False)) 1725 else: 1726 # a verb 1727 sVerb = cr.getLemmaOfMorph(sMorph) 1728 if conj.hasConj(sVerb, ":PQ", ":Q3"): 1729 aSugg.add(conj.getConj(sVerb, ":PQ", ":Q3")) 1730 if bSuggSimil: 1731 for e in phonet.selectSimil(sFlex, ":f:[si]"): 1732 aSugg.add(e) 1733 aSugg.discard("") 1734 if aSugg: 1735 return "|".join(aSugg) 1736 return "" 1737 1738 1739def suggFemPlur (sFlex, bSuggSimil=False): 1740 "returns feminine plural forms" 1741 aSugg = set() 1742 for sMorph in _oSpellChecker.getMorph(sFlex): 1743 if not ":V" in sMorph: 1744 # not a verb 1745 if ":f" in sMorph or ":e" in sMorph: 1746 aSugg.add(suggPlur(sFlex)) 1747 else: 1748 sStem = cr.getLemmaOfMorph(sMorph) 1749 if mfsp.isMasForm(sStem): 1750 aSugg.update(mfsp.getFemForm(sStem, True)) 1751 else: 1752 # a verb 1753 sVerb = cr.getLemmaOfMorph(sMorph) 1754 if conj.hasConj(sVerb, ":PQ", ":Q4"): 1755 aSugg.add(conj.getConj(sVerb, ":PQ", ":Q4")) 1756 if bSuggSimil: 1757 for e in phonet.selectSimil(sFlex, ":f:[pi]"): 1758 aSugg.add(e) 1759 aSugg.discard("") 1760 if aSugg: 1761 return "|".join(aSugg) 1762 return "" 1763 1764 1765def hasFemForm (sFlex): 1766 "return True if there is a feminine form of <sFlex>" 1767 for sStem in _oSpellChecker.getLemma(sFlex): 1768 if mfsp.isMasForm(sStem) or conj.hasConj(sStem, ":PQ", ":Q3"): 1769 return True 1770 if phonet.hasSimil(sFlex, ":f"): 1771 return True 1772 return False 1773 1774 1775def hasMasForm (sFlex): 1776 "return True if there is a masculine form of <sFlex>" 1777 for sStem in _oSpellChecker.getLemma(sFlex): 1778 if mfsp.isMasForm(sStem) or conj.hasConj(sStem, ":PQ", ":Q1"): 1779 # what has a feminine form also has a masculine form 1780 return True 1781 if phonet.hasSimil(sFlex, ":m"): 1782 return True 1783 return False 1784 1785 1786def switchGender (sFlex, bPlur=None): 1787 "return feminine or masculine form(s) of <sFlex>" 1788 aSugg = set() 1789 if bPlur is None: 1790 for sMorph in _oSpellChecker.getMorph(sFlex): 1791 if ":f" in sMorph: 1792 if ":s" in sMorph: 1793 aSugg.add(suggMasSing(sFlex)) 1794 elif ":p" in sMorph: 1795 aSugg.add(suggMasPlur(sFlex)) 1796 elif ":m" in sMorph: 1797 if ":s" in sMorph: 1798 aSugg.add(suggFemSing(sFlex)) 1799 elif ":p" in sMorph: 1800 aSugg.add(suggFemPlur(sFlex)) 1801 else: 1802 aSugg.add(suggFemSing(sFlex)) 1803 aSugg.add(suggFemPlur(sFlex)) 1804 elif bPlur: 1805 for sMorph in _oSpellChecker.getMorph(sFlex): 1806 if ":f" in sMorph: 1807 aSugg.add(suggMasPlur(sFlex)) 1808 elif ":m" in sMorph: 1809 aSugg.add(suggFemPlur(sFlex)) 1810 else: 1811 for sMorph in _oSpellChecker.getMorph(sFlex): 1812 if ":f" in sMorph: 1813 aSugg.add(suggMasSing(sFlex)) 1814 elif ":m" in sMorph: 1815 aSugg.add(suggFemSing(sFlex)) 1816 if aSugg: 1817 return "|".join(aSugg) 1818 return "" 1819 1820 1821def switchPlural (sFlex): 1822 "return plural or singular form(s) of <sFlex>" 1823 aSugg = set() 1824 for sMorph in _oSpellChecker.getMorph(sFlex): 1825 if ":s" in sMorph: 1826 aSugg.add(suggPlur(sFlex)) 1827 elif ":p" in sMorph: 1828 aSugg.add(suggSing(sFlex)) 1829 if aSugg: 1830 return "|".join(aSugg) 1831 return "" 1832 1833 1834def hasSimil (sWord, sPattern=None): 1835 "return True if there is words phonetically similar to <sWord> (according to <sPattern> if required)" 1836 return phonet.hasSimil(sWord, sPattern) 1837 1838 1839def suggSimil (sWord, sPattern=None, bSubst=False, bVC=False): 1840 "return list of words phonetically similar to sWord and whom POS is matching sPattern" 1841 if bVC: 1842 sWord, sSfx = splitVerb(sWord) 1843 aSugg = phonet.selectSimil(sWord, sPattern) 1844 if not aSugg or not bSubst: 1845 for sMorph in _oSpellChecker.getMorph(sWord): 1846 aSugg.update(conj.getSimil(sWord, sMorph, bSubst)) 1847 break 1848 if aSugg: 1849 if bVC: 1850 aSugg = list(map(lambda sSug: sSug + sSfx, aSugg)) 1851 return "|".join(aSugg) 1852 return "" 1853 1854 1855def suggCeOrCet (sWord): 1856 "suggest “ce” or “cet” or both according to the first letter of <sWord>" 1857 if re.match("(?i)[aeéèêiouyâîï]", sWord): 1858 return "cet" 1859 if sWord[0:1] in "hH": 1860 return "ce|cet" 1861 return "ce" 1862 1863 1864def suggLesLa (sWord): 1865 "suggest “les” or “la” according to <sWord>" 1866 if any( ":p" in sMorph for sMorph in _oSpellChecker.getMorph(sWord) ): 1867 return "les|la" 1868 return "la" 1869 1870 1871_zBinary = re.compile("^[01]+$") 1872 1873def formatNumber (sNumber): 1874 "add spaces or hyphens to big numbers" 1875 nLen = len(sNumber) 1876 if nLen < 4: 1877 return sNumber 1878 sRes = "" 1879 if "," not in sNumber: 1880 # nombre entier 1881 sRes = _formatNumber(sNumber, 3) 1882 # binaire 1883 if _zBinary.search(sNumber): 1884 sRes += "|" + _formatNumber(sNumber, 4) 1885 # numéros de téléphone 1886 if nLen == 10: 1887 if sNumber.startswith("0"): 1888 sRes += "|" + _formatNumber(sNumber, 2) # téléphone français 1889 if sNumber[1] == "4" and (sNumber[2]=="7" or sNumber[2]=="8" or sNumber[2]=="9"): 1890 sRes += "|" + sNumber[0:4] + " " + sNumber[4:6] + " " + sNumber[6:8] + " " + sNumber[8:] # mobile belge 1891 sRes += "|" + sNumber[0:3] + " " + sNumber[3:6] + " " + sNumber[6:8] + " " + sNumber[8:] # téléphone suisse 1892 sRes += "|" + sNumber[0:4] + " " + sNumber[4:7] + "-" + sNumber[7:] # téléphone canadien ou américain 1893 elif nLen == 9 and sNumber.startswith("0"): 1894 sRes += "|" + sNumber[0:3] + " " + sNumber[3:5] + " " + sNumber[5:7] + " " + sNumber[7:9] # fixe belge 1 1895 sRes += "|" + sNumber[0:2] + " " + sNumber[2:5] + " " + sNumber[5:7] + " " + sNumber[7:9] # fixe belge 2 1896 else: 1897 # Nombre réel 1898 sInt, sFloat = sNumber.split(",", 1) 1899 sRes = _formatNumber(sInt, 3) + "," + sFloat 1900 return sRes 1901 1902def _formatNumber (sNumber, nGroup=3): 1903 sRes = "" 1904 nEnd = len(sNumber) 1905 while nEnd > 0: 1906 nStart = max(nEnd-nGroup, 0) 1907 sRes = sNumber[nStart:nEnd] + " " + sRes if sRes else sNumber[nStart:nEnd] 1908 nEnd = nEnd - nGroup 1909 return sRes 1910 1911 1912def formatNF (s): 1913 "typography: format NF reference (norme française)" 1914 try: 1915 m = re.match("NF[ -]?(C|E|P|Q|S|X|Z|EN(?:[ -]ISO|))[ -]?([0-9]+(?:[/‑-][0-9]+|))", s) 1916 if not m: 1917 return "" 1918 return "NF " + m.group(1).upper().replace(" ", " ").replace("-", " ") + " " + m.group(2).replace("/", "‑").replace("-", "‑") 1919 except (re.error, IndexError): 1920 traceback.print_exc() 1921 return "# erreur #" 1922 1923 1924def undoLigature (c): 1925 "typography: split ligature character <c> in several chars" 1926 if c == "fi": 1927 return "fi" 1928 if c == "fl": 1929 return "fl" 1930 if c == "ff": 1931 return "ff" 1932 if c == "ffi": 1933 return "ffi" 1934 if c == "ffl": 1935 return "ffl" 1936 if c == "ſt": 1937 return "ft" 1938 if c == "st": 1939 return "st" 1940 return "_" 1941 1942 1943 1944 1945_xNormalizedCharsForInclusiveWriting = str.maketrans({ 1946 '(': '_', ')': '_', 1947 '.': '_', '·': '_', '•': '_', 1948 '–': '_', '—': '_', 1949 '/': '_' 1950}) 1951 1952 1953def normalizeInclusiveWriting (sToken): 1954 "typography: replace word separators used in inclusive writing by underscore (_)" 1955 return sToken.translate(_xNormalizedCharsForInclusiveWriting) 1956 1957 1958 1959#### CALLABLES FOR REGEX RULES (generated code) 1960 1961def _c_esp_avant_après_tiret_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 1962 return not m.group(1).endswith("-t") and m.group(3) != "t" and not (m.group(2) == " -" and m.group(3).isdigit()) 1963def _c_esp_avant_après_tiret_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 1964 return (m.group(3) == "je" and morph(dTokenPos, (m.start(1), m.group(1)), ":1s")) or (m.group(3) == "tu" and morph(dTokenPos, (m.start(1), m.group(1)), ":2s")) or (m.group(3) == "il" and morph(dTokenPos, (m.start(1), m.group(1)), ":3s")) or (m.group(3) == "elle" and morph(dTokenPos, (m.start(1), m.group(1)), ":3s")) or (m.group(3) == "on" and morph(dTokenPos, (m.start(1), m.group(1)), ":3s")) or (m.group(3) == "nous" and morph(dTokenPos, (m.start(1), m.group(1)), ":1p")) or (m.group(3) == "vous" and morph(dTokenPos, (m.start(1), m.group(1)), ":2P")) or (m.group(3) == "ils" and morph(dTokenPos, (m.start(1), m.group(1)), ":3p")) or (m.group(3) == "elles" and morph(dTokenPos, (m.start(1), m.group(1)), ":3p")) 1965def _c_esp_avant_après_tiret_3 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 1966 return not bCondMemo 1967def _c_typo_parenthèse_fermante_collée_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 1968 return not look(sSentence[:m.start()], "\\([rR][eéEÉ]$") 1969def _p_p_URL2_2 (sSentence, m): 1970 return m.group(2).capitalize() 1971def _p_p_sigle1_1 (sSentence, m): 1972 return m.group(1).replace(".", "")+"." 1973def _c_p_sigle2_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 1974 return not re.search("(?i)^(?:i\\.e\\.|s\\.[tv]\\.p\\.|e\\.g\\.|a\\.k\\.a\\.|c\\.q\\.f\\.d\\.|b\\.a\\.|n\\.b\\.)$", m.group(0)) 1975def _c_p_sigle2_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 1976 return m.group(0).__len__() == 4 1977def _s_p_sigle2_2 (sSentence, m): 1978 return m.group(0).replace(".", "").upper() + "|" + m.group(0)[0:2] + " " + m.group(0)[2:4] 1979def _c_p_sigle2_3 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 1980 return not bCondMemo 1981def _s_p_sigle2_3 (sSentence, m): 1982 return m.group(0).replace(".", "").upper() 1983def _c_p_sigle2_4 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 1984 return m.group(0) != "b.a." 1985def _p_p_sigle2_4 (sSentence, m): 1986 return m.group(0).replace(".", "_") 1987def _p_p_sigle3_1 (sSentence, m): 1988 return m.group(0).replace(".", "").replace("-","") 1989def _c_p_prénom_lettre_point_patronyme_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 1990 return morph(dTokenPos, (m.start(1), m.group(1)), ":M[12]") and (morph(dTokenPos, (m.start(3), m.group(3)), ":(?:M[12]|V)") or not _oSpellChecker.isValid(m.group(3))) 1991def _c_p_prénom_lettre_point_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 1992 return morph(dTokenPos, (m.start(1), m.group(1)), ":M[12]") and look(sSentence[m.end():], "^\\W+[a-zéèêîïâ]") 1993def _p_p_patronyme_composé_avec_le_la_les_1 (sSentence, m): 1994 return m.group(0).replace(" ", "_") 1995def _c_p_mot_entre_crochets_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 1996 return m.group(1).isdigit() 1997def _c_p_mot_entre_crochets_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 1998 return not bCondMemo and morph(dTokenPos, (m.start(1), m.group(1)), ":G") 1999def _p_p_mot_entre_crochets_2 (sSentence, m): 2000 return " " + m.group(1) + " " 2001def _c_p_mot_entre_crochets_3 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2002 return not bCondMemo and m.group(1).isalpha() 2003def _c_typo_apostrophe_incorrecte_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2004 return not (m.group(2).__len__() == 1 and m.group(1).endswith("′ ")) 2005def _s_typo_apostrophe_manquante_prudence1_1 (sSentence, m): 2006 return m.group(1)[:-1]+"’" 2007def _c_typo_apostrophe_manquante_prudence2_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2008 return not option("mapos") and (m.group(2) == "<" or morph(dTokenPos, (m.start(2), m.group(2)), ":V")) 2009def _s_typo_apostrophe_manquante_prudence2_1 (sSentence, m): 2010 return m.group(1)[:-1]+"’" 2011def _c_typo_apostrophe_manquante_audace1_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2012 return option("mapos") and not look(sSentence[:m.start()], "(?i)(?:lettre|caractère|glyphe|dimension|variable|fonction|point) *$") 2013def _s_typo_apostrophe_manquante_audace1_1 (sSentence, m): 2014 return m.group(1)[:-1]+"’" 2015def _c_typo_guillemets_typographiques_doubles_ouvrants_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2016 return not look(sSentence[:m.start()], "[a-zA-Zéïîùàâäôö]$") 2017def _c_eepi_écriture_épicène_tous_toutes_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2018 return option("eepi") 2019def _p_eepi_écriture_épicène_tous_toutes_2 (sSentence, m): 2020 return normalizeInclusiveWriting(m.group(0)) 2021def _c_eepi_écriture_épicène_ceux_celles_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2022 return option("eepi") 2023def _p_eepi_écriture_épicène_ceux_celles_2 (sSentence, m): 2024 return normalizeInclusiveWriting(m.group(0)) 2025def _c_eepi_écriture_épicène_pluriel_eur_divers_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2026 return option("eepi") and m.group(2) != "se" 2027def _c_eepi_écriture_épicène_pluriel_eur_divers_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2028 return option("eepi") and m.group(2) == "se" 2029def _p_eepi_écriture_épicène_pluriel_eur_divers_3 (sSentence, m): 2030 return normalizeInclusiveWriting(m.group(0)) 2031def _c_eepi_écriture_épicène_pluriel_eux_euses_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2032 return option("eepi") 2033def _p_eepi_écriture_épicène_pluriel_eux_euses_2 (sSentence, m): 2034 return normalizeInclusiveWriting(m.group(0)) 2035def _c_eepi_écriture_épicène_pluriel_aux_ales_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2036 return option("eepi") 2037def _p_eepi_écriture_épicène_pluriel_aux_ales_2 (sSentence, m): 2038 return normalizeInclusiveWriting(m.group(0)) 2039def _c_eepi_écriture_épicène_pluriel_er_ère_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2040 return option("eepi") 2041def _p_eepi_écriture_épicène_pluriel_er_ère_2 (sSentence, m): 2042 return normalizeInclusiveWriting(m.group(0)) 2043def _c_eepi_écriture_épicène_pluriel_if_ive_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2044 return option("eepi") 2045def _p_eepi_écriture_épicène_pluriel_if_ive_2 (sSentence, m): 2046 return normalizeInclusiveWriting(m.group(0)) 2047def _c_eepi_écriture_épicène_pluriel_e_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2048 return not (m.group(0).endswith(".Les") or m.group(0).endswith(".Tes")) 2049def _p_eepi_écriture_épicène_pluriel_e_2 (sSentence, m): 2050 return normalizeInclusiveWriting(m.group(0)) 2051def _c_eepi_écriture_épicène_pluriel_e_3 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2052 return option("eepi") and not m.group(0).endswith("les") and not m.group(0).endswith("LES") and not re.search("(?i)·[ntlf]?e·s$", m.group(0)) 2053def _c_eepi_écriture_épicène_pluriel_e_4 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2054 return m.group(1).endswith("s") or m.group(1).endswith("S") 2055def _c_eepi_écriture_épicène_pluriel_e_5 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2056 return not bCondMemo 2057def _c_eepi_écriture_épicène_singulier_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2058 return not (m.group(0).endswith(".Le") or m.group(0).endswith(".Ne") or m.group(0).endswith(".De")) and not ((m.group(0).endswith("-le") or m.group(0).endswith("-Le") or m.group(0).endswith("-LE")) and not (m.group(1).endswith("l") or m.group(1).endswith("L"))) 2059def _p_eepi_écriture_épicène_singulier_2 (sSentence, m): 2060 return normalizeInclusiveWriting(m.group(0)) 2061def _c_eepi_écriture_épicène_singulier_3 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2062 return option("eepi") and (m.group(1) == "un" or m.group(1) == "Un" or m.group(1) == "UN") 2063def _c_eepi_écriture_épicène_singulier_4 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2064 return not bCondMemo and option("eepi") and not re.search("(?i)·[ntl]?e$", m.group(2)) 2065def _s_eepi_écriture_épicène_singulier_4 (sSentence, m): 2066 return m.group(1)+"·"+m.group(2)[1:].rstrip(")") 2067def _p_typo_écriture_invariable_1 (sSentence, m): 2068 return normalizeInclusiveWriting(m.group(0)) 2069def _c_typo_écriture_invariable_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2070 return option("typo") and option("eepi") and not m.group(0).endswith("·s") and not (m.group(0).endswith("/s") and morph(dTokenPos, (m.start(1), m.group(1)), ";S")) 2071def _c_majuscule_après_point_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2072 return not re.search("(?i)^(?:etc|[A-Z]|chap|cf|fig|hab|litt|circ|coll|r[eé]f|étym|suppl|bibl|bibliogr|cit|op|vol|déc|nov|oct|janv|juil|avr|sept)$", m.group(1)) and morph(dTokenPos, (m.start(1), m.group(1)), ":") and morph(dTokenPos, (m.start(2), m.group(2)), ":") 2073def _s_majuscule_après_point_1 (sSentence, m): 2074 return m.group(2).capitalize() 2075def _c_majuscule_début_paragraphe_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2076 return look(sSentence[m.end():], "\\w\\w[.] +\\w+") 2077def _s_majuscule_début_paragraphe_1 (sSentence, m): 2078 return m.group(1).capitalize() 2079def _c_poncfin_règle1_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2080 return look(sSentence[:m.start()], "\\w+(?:\\.|[ ][!?]) +(?:[A-ZÉÈÎ]\\w+|[ÀÔ])") 2081def _c_virgule_manquante_avant_car_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2082 return not morph(dTokenPos, (m.start(1), m.group(1)), ":[DR]") 2083def _c_virgule_manquante_avant_mais_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2084 return not morph(dTokenPos, (m.start(1), m.group(1)), ">(?:[mtscl]es|[nv]os|quels)/") 2085def _c_virgule_manquante_avant_donc_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2086 return not morph(dTokenPos, (m.start(1), m.group(1)), ":[VG]") 2087def _c_virg_virgule_après_point_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2088 return not re.search("^(?:etc|[A-Z]|fig|hab|litt|circ|coll|ref|étym|suppl|bibl|bibliogr|cit|vol|déc|nov|oct|janv|juil|avr|sept|pp?)$", m.group(1)) 2089def _c_typo_espace_manquant_après1_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2090 return not m.group(1).isdigit() 2091def _c_typo_espace_manquant_après3_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2092 return (m.group(1).__len__() > 1 and not m.group(1)[0:1].isdigit() and _oSpellChecker.isValid(m.group(1))) or look(sSentence[m.end():], "^’") 2093def _c_typo_espace_manquant_après4_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2094 return m.group(1)[0:1].isupper() or m.group(1).__len__() > 5 or not m.group(1).isalpha() or (m.group(1).__len__() > 1 and _oSpellChecker.isValid(m.group(1))) 2095def _s_typo_point_après_titre_1 (sSentence, m): 2096 return m.group(1)[0:-1] 2097def _c_typo_point_après_numéro_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2098 return m.group(1)[1:3] == "os" 2099def _c_typo_point_après_numéro_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2100 return not bCondMemo 2101def _c_typo_points_suspension1_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2102 return not look(sSentence[:m.start()], "(?i)etc$") 2103def _s_typo_points_suspension2_1 (sSentence, m): 2104 return m.group(0).replace("...", "…").rstrip(".") 2105def _s_typo_virgules_points_1 (sSentence, m): 2106 return m.group(0).replace(",", ".").replace("...", "…") 2107def _s_typo_ponctuation_superflue1_1 (sSentence, m): 2108 return ",|" + m.group(1) 2109def _s_typo_ponctuation_superflue2_1 (sSentence, m): 2110 return ";|" + m.group(1) 2111def _s_typo_ponctuation_superflue3_1 (sSentence, m): 2112 return ":|" + m.group(0)[1] 2113def _c_nbsp_ajout_avant_double_ponctuation_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2114 return sCountry != "CA" 2115def _s_nbsp_ajout_avant_double_ponctuation_1 (sSentence, m): 2116 return " "+m.group(0) 2117def _c_unit_nbsp_avant_unités1_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2118 return option("num") 2119def _s_unit_nbsp_avant_unités1_1 (sSentence, m): 2120 return formatNumber(m.group(2)) + " " + m.group(3) 2121def _c_unit_nbsp_avant_unités1_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2122 return not bCondMemo 2123def _c_unit_nbsp_avant_unités2_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2124 return morph(dTokenPos, (m.start(3), m.group(3)), ";S", ":[VCR]") or mbUnit(m.group(3)) or not _oSpellChecker.isValid(m.group(3)) 2125def _c_unit_nbsp_avant_unités2_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2126 return option("num") 2127def _s_unit_nbsp_avant_unités2_2 (sSentence, m): 2128 return formatNumber(m.group(2)) + " " + m.group(3) 2129def _c_unit_nbsp_avant_unités2_3 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2130 return not bCondMemo 2131def _c_unit_nbsp_avant_unités3_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2132 return (m.group(2).__len__() > 4 and not _oSpellChecker.isValid(m.group(3))) or morph(dTokenPos, (m.start(3), m.group(3)), ";S", ":[VCR]") or mbUnit(m.group(3)) 2133def _c_unit_nbsp_avant_unités3_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2134 return option("num") 2135def _s_unit_nbsp_avant_unités3_2 (sSentence, m): 2136 return formatNumber(m.group(2)) + " " + m.group(3) 2137def _c_unit_nbsp_avant_unités3_3 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2138 return not bCondMemo 2139def _s_typo_math_1 (sSentence, m): 2140 return m.group(0).replace(" ", "(")+")|"+m.group(0).replace(" ", " ") 2141def _c_typo_signe_moins_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2142 return not look(sSentence[:m.start()], "\\w$") 2143def _c_typo_signe_multiplication_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2144 return not m.group(0).startswith("0x") 2145def _s_ligatures_typographiques_1 (sSentence, m): 2146 return undoLigature(m.group(0)) 2147def _c_nf_norme_française_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2148 return not re.search("^NF (?:C|E|P|Q|S|X|Z|EN(?: ISO|)) [0-9]+(?:‑[0-9]+|)", m.group(0)) 2149def _s_nf_norme_française_1 (sSentence, m): 2150 return formatNF(m.group(0)) 2151def _c_typo_cohérence_guillemets_chevrons_ouvrants_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2152 return not look(sSentence[:m.start()], "\\w$") 2153def _c_typo_cohérence_guillemets_chevrons_ouvrants_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2154 return not look(sSentence[m.end():], "^\\w") 2155def _c_typo_cohérence_guillemets_chevrons_fermants_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2156 return not look(sSentence[:m.start()], "\\w$") 2157def _c_typo_cohérence_guillemets_chevrons_fermants_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2158 return not look(sSentence[m.end():], "^\\w") 2159def _c_typo_cohérence_guillemets_doubles_ouvrants_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2160 return not look(sSentence[:m.start()], "\\w$") 2161def _c_typo_cohérence_guillemets_doubles_fermants_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2162 return not look(sSentence[:m.start()], "\\w$") 2163def _c_typo_cohérence_guillemets_doubles_fermants_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2164 return not look(sSentence[m.end():], "^\\w") 2165def _c_typo_guillemet_simple_ouvrant_non_fermé_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2166 return look(sSentence[:m.start()], " $") or look(sSentence[:m.start()], "^ *$|, *$") 2167def _c_typo_guillemet_simple_fermant_non_ouvert_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2168 return look(sSentence[m.end():], "^ ") or look(sSentence[m.end():], "^ *$|^,") 2169def _c_num_grand_nombre_soudé_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2170 return not look(sSentence[:m.start()], "NF[ -]?(C|E|P|Q|X|Z|EN(?:[ -]ISO|)) *$") 2171def _c_num_grand_nombre_soudé_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2172 return m.group(0).__len__() > 4 2173def _s_num_grand_nombre_soudé_2 (sSentence, m): 2174 return formatNumber(m.group(0)) 2175def _c_num_grand_nombre_soudé_3 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2176 return not bCondMemo and ((look(sSentence[m.end():], "^(?:,[0-9]+[⁰¹²³⁴⁵⁶⁷⁸⁹]?|[⁰¹²³⁴⁵⁶⁷⁸⁹])") and not (re.search("^[01]+$", m.group(0)) and look(sSentence[m.end():], "^,[01]+\\b"))) or look(sSentence[m.end():], "^[ ]*(?:[kcmµn]?(?:[slgJKΩ]|m[²³]?|Wh?|Hz|dB)|[%‰€$£¥Åℓhj]|min|°C|℃)(?![\\w’'])")) 2177def _s_num_grand_nombre_soudé_3 (sSentence, m): 2178 return formatNumber(m.group(0)) 2179def _c_num_nombre_quatre_chiffres_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2180 return morph(dTokenPos, (m.start(2), m.group(2)), ";S", ":[VCR]") or mbUnit(m.group(2)) 2181def _s_num_nombre_quatre_chiffres_1 (sSentence, m): 2182 return formatNumber(m.group(1)) 2183def _c_num_grand_nombre_avec_points_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2184 return option("num") 2185def _s_num_grand_nombre_avec_points_1 (sSentence, m): 2186 return m.group(0).replace(".", " ") 2187def _p_num_grand_nombre_avec_points_2 (sSentence, m): 2188 return m.group(0).replace(".", "_") 2189def _c_num_grand_nombre_avec_espaces_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2190 return option("num") 2191def _s_num_grand_nombre_avec_espaces_1 (sSentence, m): 2192 return m.group(0).replace(" ", " ") 2193def _p_num_grand_nombre_avec_espaces_2 (sSentence, m): 2194 return m.group(0).replace(" ", "_") 2195def _c_date_nombres_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2196 return m.group(2) == m.group(4) and not checkDate(m.group(1), m.group(3), m.group(5)) and not look(sSentence[:m.start()], "(?i)\\b(?:version|article|référence)s? +$") 2197def _c_redondances_paragraphe_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2198 return not morph(dTokenPos, (m.start(1), m.group(1)), ":(?:G|V0)|>(?:t(?:antôt|emps|rès)|loin|souvent|parfois|quelquefois|côte|petit|même)/") and not m.group(1)[0].isupper() 2199def _c_redondances_paragraphe_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2200 return bCondMemo 2201def _c_ocr_point_interrogation_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2202 return look(sSentence0[m.end():], "^(?: +[A-ZÉÈÂ(]|…|[.][.]+| *$)") 2203def _c_ocr_exclamation2_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2204 return not morph(dTokenPos, nextword1(sSentence, m.end()), ";S") and not morph(dTokenPos, prevword1(sSentence, m.start()), ":R") 2205def _c_ocr_nombres_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2206 return m.group(0) == "II" 2207def _c_ocr_nombres_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2208 return not bCondMemo and not m.group(0).isdigit() 2209def _s_ocr_nombres_2 (sSentence, m): 2210 return m.group(0).replace("O", "0").replace("I", "1") 2211def _s_ocr_casse_pronom_vconj_1 (sSentence, m): 2212 return m.group(1).lower() 2213def _c_mots_composés_inconnus_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2214 return not _oSpellChecker.isValid(m.group(0)) and not re.search("(?i)-(?:je|tu|on|nous|vous|ie?ls?|elles?|ce|là|ci|les?|la|leur|une?s|moi|toi|en|y)$", m.group(0)) 2215def _c_ocr_caractères_rares_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2216 return m.group(0) != "<" and m.group(0) != ">" 2217def _c_ocr_le_la_les_regex_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2218 return m.group(0).endswith("e") 2219def _c_ocr_le_la_les_regex_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2220 return not bCondMemo and m.group(0).endswith("a") 2221def _c_ocr_le_la_les_regex_3 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2222 return not bCondMemo and m.group(0).endswith("à") 2223def _c_ocr_le_la_les_regex_4 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2224 return not bCondMemo 2225def _c_conf_1e_1a_1es_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2226 return m.group(0).endswith("e") and (morph(dTokenPos, nextword1(sSentence, m.end()), ":(?:N.*:[me]:[si]|V)", ":G") or morph(dTokenPos, prevword1(sSentence, m.start()), ">ne/")) 2227def _c_conf_1e_1a_1es_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2228 return m.group(0).endswith("a") and (morph(dTokenPos, nextword1(sSentence, m.end()), ":(?:N.*:[fe]:[si]|V)", ":G") or morph(dTokenPos, prevword1(sSentence, m.start()), ">ne/")) 2229def _c_conf_1e_1a_1es_3 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2230 return m.group(0).endswith("es") and (morph(dTokenPos, nextword1(sSentence, m.end()), ":(?:N.*:[pi]|V)", ":G") or morph(dTokenPos, prevword1(sSentence, m.start()), ">ne/")) 2231def _c_ocr_il_regex_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2232 return m.group(0).endswith("s") 2233def _c_ocr_il_regex_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2234 return not bCondMemo 2235def _p_p_trait_union_conditionnel1_1 (sSentence, m): 2236 return m.group(0).replace("‑", "") 2237def _p_p_trait_union_conditionnel2_1 (sSentence, m): 2238 return m.group(0).replace("‑", "") 2239def _c_doublon_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2240 return not re.search("(?i)^([nv]ous|faire|en|la|lui|donnant|œuvre|h[éoa]|hou|olé|joli|Bora|couvent|dément|sapiens|très|vroum|[0-9]+)$", m.group(1)) and not (re.search("^(?:est|une?)$", m.group(1)) and look(sSentence[:m.start()], "[’']$")) and not (m.group(1) == "mieux" and look(sSentence[:m.start()], "(?i)qui +$")) 2241def _c_num_lettre_O_zéro1_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2242 return not option("ocr") 2243def _s_num_lettre_O_zéro1_1 (sSentence, m): 2244 return m.group(0).replace("O", "0") 2245def _c_num_lettre_O_zéro2_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2246 return not option("ocr") 2247def _s_num_lettre_O_zéro2_1 (sSentence, m): 2248 return m.group(0).replace("O", "0") 2249def _c_d_eepi_écriture_épicène_pluriel_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2250 return morph(dTokenPos, (m.start(1), m.group(1)), ":[NAQ]", ":G") 2251def _d_d_eepi_écriture_épicène_pluriel_1 (sSentence, m, dTokenPos): 2252 return define(dTokenPos, m.start(1), ":N:A:Q:e:p") 2253def _c_d_eepi_écriture_épicène_singulier_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2254 return morph(dTokenPos, (m.start(1), m.group(1)), ":[NAQ]") 2255def _d_d_eepi_écriture_épicène_singulier_1 (sSentence, m, dTokenPos): 2256 return define(dTokenPos, m.start(1), ":N:A:Q:e:s") 2257def _c_p_références_aux_notes_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2258 return not morph(dTokenPos, (m.start(0), m.group(0)), ":") and morph(dTokenPos, (m.start(1), m.group(1)), ":") 2259def _c_tu_trait_union_douteux_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2260 return _oSpellChecker.isValid(m.group(1)+"-"+m.group(2)) and analyse(m.group(1)+"-"+m.group(2), ":") 2261def _c_tu_t_euphonique_incorrect_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2262 return re.search("(?i)^(?:ie?ls|elles|tu)$", m.group(2)) 2263def _c_tu_t_euphonique_incorrect_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2264 return not bCondMemo and m.group(1) != "-t-" and m.group(1) != "-T-" 2265def _c_tu_t_euphonique_incorrect_3 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2266 return m.group(1) != "-t-" 2267def _c_tu_t_euphonique_superflu_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2268 return m.group(1) != "-t-" 2269def _c_redondances_phrase_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2270 return not morph(dTokenPos, (m.start(1), m.group(1)), ":(?:G|V0)|>même/") 2271def _c_redondances_phrase_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2272 return bCondMemo 2273def _c_mc_mot_composé_1 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2274 return not m.group(1).isdigit() and not m.group(2).isdigit() and not morph(dTokenPos, (m.start(0), m.group(0)), ":") and not morph(dTokenPos, (m.start(2), m.group(2)), ":G") and _oSpellChecker.isValid(m.group(1)+m.group(2)) 2275def _c_mc_mot_composé_2 (sSentence, sSentence0, m, dTokenPos, sCountry, bCondMemo): 2276 return m.group(2) != "là" and not re.search("(?i)^(?:ex|mi|quasi|semi|non|demi|pro|anti|multi|pseudo|proto|extra)$", m.group(1)) and not m.group(1).isdigit() and not m.group(2).isdigit() and not morph(dTokenPos, (m.start(2), m.group(2)), ":G") and not morph(dTokenPos, (m.start(0), m.group(0)), ":") and not _oSpellChecker.isValid(m.group(1)+m.group(2)) 2277 2278 2279 2280#### CALLABLES FOR GRAPH RULES (generated code) 2281 2282def _g_cond_g0_1 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2283 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 0, 1) and g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 0, 1) 2284def _g_cond_g0_2 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2285 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 0, 1) 2286def _g_cond_g0_3 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2287 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 0, 1) 2288def _g_cond_g0_4 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2289 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 0, 0) and g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 0, 0) 2290def _g_cond_g0_5 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2291 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 0, 0) 2292def _g_cond_g0_6 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2293 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 0, 0) 2294def _g_cond_g0_7 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2295 return not g_morph(lToken[nTokenOffset], ":1s") 2296def _g_da_g0_1 (lToken, nTokenOffset, nLastToken): 2297 return g_select(lToken[nTokenOffset+2], ":Ov") 2298def _g_cond_g0_8 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2299 return not g_morph(lToken[nTokenOffset], ":(?:2s|V0)") 2300def _g_cond_g0_9 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2301 return not g_morph(lToken[nTokenOffset], ":3s") 2302def _g_cond_g0_10 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2303 return not g_morph(lToken[nTokenOffset], ":(?:3s|R)") 2304def _g_cond_g0_11 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2305 return not g_morph(lToken[nTokenOffset], ":(?:1p|R)") 2306def _g_cond_g0_12 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2307 return not g_morph(lToken[nTokenOffset], ":(?:2p|R)") 2308def _g_cond_g0_13 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2309 return not g_morph(lToken[nTokenOffset], ":3p") 2310def _g_cond_g0_14 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2311 return not g_morph(lToken[nTokenOffset], ":(?:3p|R)") 2312def _g_cond_g0_15 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2313 return not g_value(lToken[nTokenOffset], "|ne|n’|me|m’|te|t’|se|s’|") 2314def _g_da_g0_2 (lToken, nTokenOffset, nLastToken): 2315 return g_select(lToken[nTokenOffset+1], ":D") 2316def _g_da_g0_3 (lToken, nTokenOffset, nLastToken): 2317 return g_exclude(lToken[nTokenOffset+2], ":Os") 2318def _g_cond_g0_16 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2319 return not g_morph(lToken[nTokenOffset+2], ":1p") 2320def _g_da_g0_4 (lToken, nTokenOffset, nLastToken): 2321 return g_exclude(lToken[nTokenOffset+1], ":Os") 2322def _g_cond_g0_17 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2323 return not g_morph(lToken[nTokenOffset+2], ":2p") 2324def _g_da_g0_5 (lToken, nTokenOffset, nLastToken): 2325 return g_select(lToken[nLastToken-1+1], ":V") 2326def _g_da_g0_6 (lToken, nTokenOffset, nLastToken): 2327 return g_select(lToken[nTokenOffset+3], ":(?:[123][sp]|P|Y)") 2328def _g_da_g0_7 (lToken, nTokenOffset, nLastToken): 2329 return g_select(lToken[nTokenOffset+2], ":(?:[123][sp]|P|Y)") 2330def _g_da_g0_8 (lToken, nTokenOffset, nLastToken): 2331 return g_select(lToken[nLastToken-1+1], ":[123][sp]") 2332def _g_cond_g0_18 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2333 return not g_morph(lToken[nTokenOffset], ":V0") 2334def _g_cond_g0_19 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2335 return not g_morph(lToken[nTokenOffset], ":R") 2336def _g_cond_g0_20 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2337 return lToken[nTokenOffset+2]["sValue"].islower() and g_morph(lToken[nTokenOffset], ":Cs|<start>") 2338def _g_da_g0_9 (lToken, nTokenOffset, nLastToken): 2339 return g_select(lToken[nTokenOffset+2], ":[123][sp]") 2340def _g_da_g0_10 (lToken, nTokenOffset, nLastToken): 2341 return g_select(lToken[nTokenOffset+2], ":M") 2342def _g_da_g0_11 (lToken, nTokenOffset, nLastToken): 2343 return g_exclude(lToken[nLastToken-1+1], ":E") 2344def _g_da_g0_12 (lToken, nTokenOffset, nLastToken): 2345 return g_exclude(lToken[nTokenOffset+4], ":N") 2346def _g_da_g0_13 (lToken, nTokenOffset, nLastToken): 2347 return g_exclude(lToken[nTokenOffset+2], ":N") 2348def _g_da_g0_14 (lToken, nTokenOffset, nLastToken): 2349 return g_select(lToken[nLastToken-1+1], ":Q") 2350def _g_cond_g0_21 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2351 return not g_value(lToken[nTokenOffset], "|l’|un|cet|quel|") 2352def _g_da_g0_15 (lToken, nTokenOffset, nLastToken): 2353 return g_exclude(lToken[nTokenOffset+1], ":N") 2354def _g_cond_g0_22 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2355 return g_morph(lToken[nTokenOffset], ":D") 2356def _g_da_g0_16 (lToken, nTokenOffset, nLastToken): 2357 return (lToken[nTokenOffset+1]["sValue"], ":W") 2358def _g_cond_g0_23 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2359 return not g_morph(lToken[nTokenOffset], ":D.*:[me]") 2360def _g_cond_g0_24 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2361 return not g_morph(lToken[nTokenOffset], ":D.*:p|>[a-z]+ième/") 2362def _g_da_g0_17 (lToken, nTokenOffset, nLastToken): 2363 return g_select(lToken[nTokenOffset+1], ":R") 2364def _g_da_g0_18 (lToken, nTokenOffset, nLastToken): 2365 return g_exclude(lToken[nTokenOffset+2], ":D") 2366def _g_da_g0_19 (lToken, nTokenOffset, nLastToken): 2367 return g_select(lToken[nTokenOffset+2], ":N") 2368def _g_da_g0_20 (lToken, nTokenOffset, nLastToken): 2369 return g_select(lToken[nTokenOffset+2], ":A") 2370def _g_cond_g0_25 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2371 return not g_value(lToken[nTokenOffset], "|je|ne|n’|le|la|l’|les|lui|nous|vous|leur|") 2372def _g_da_g0_21 (lToken, nTokenOffset, nLastToken): 2373 return g_exclude(lToken[nTokenOffset+1], ":V") 2374def _g_da_g0_22 (lToken, nTokenOffset, nLastToken): 2375 return g_exclude(lToken[nTokenOffset+1], ":D") 2376def _g_da_g0_23 (lToken, nTokenOffset, nLastToken): 2377 return g_exclude(lToken[nTokenOffset+1], ":G") 2378def _g_cond_g0_26 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2379 return not g_value(lToken[nLastToken+1], "|que|qu’|") 2380def _g_cond_g0_27 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2381 return not g_value(lToken[nTokenOffset], "|n’|j’|tu|t’|m’|s’|") 2382def _g_cond_g0_28 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2383 return bCondMemo 2384def _g_da_g0_24 (lToken, nTokenOffset, nLastToken): 2385 return g_define(lToken[nTokenOffset+1], ":G:R") 2386def _g_da_g0_25 (lToken, nTokenOffset, nLastToken): 2387 return g_define(lToken[nTokenOffset+2], ":N:m:s") 2388def _g_cond_g0_29 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2389 return not g_morph(lToken[nTokenOffset], ">entre/|:D") 2390def _g_da_g0_26 (lToken, nTokenOffset, nLastToken): 2391 return g_define(lToken[nTokenOffset+1], ":G") 2392def _g_da_g0_27 (lToken, nTokenOffset, nLastToken): 2393 return g_exclude(lToken[nTokenOffset+2], ":V") 2394def _g_cond_g0_30 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2395 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_1p_") and not g_value(lToken[nTokenOffset], "|n’|") and not g_value(lToken[nLastToken+1], "|nous|") 2396def _g_da_g0_28 (lToken, nTokenOffset, nLastToken): 2397 return g_select(lToken[nLastToken-1+1], ":N") 2398def _g_cond_g0_31 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2399 return g_morph(lToken[nTokenOffset], ":Y") 2400def _g_da_g0_29 (lToken, nTokenOffset, nLastToken): 2401 return g_define(lToken[nTokenOffset+1], ":N:e:i") 2402def _g_da_g0_30 (lToken, nTokenOffset, nLastToken): 2403 return g_exclude(lToken[nTokenOffset+2], ":(?:[123][sp]|P)") 2404def _g_da_g0_31 (lToken, nTokenOffset, nLastToken): 2405 return g_exclude(lToken[nTokenOffset+3], ":V") 2406def _g_cond_g0_32 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2407 return not g_value(lToken[nTokenOffset+3], "|plus|") 2408def _g_da_g0_32 (lToken, nTokenOffset, nLastToken): 2409 return g_select(lToken[nTokenOffset+3], ":[123][sp]") 2410def _g_da_g0_33 (lToken, nTokenOffset, nLastToken): 2411 return g_define(lToken[nTokenOffset+1], ":LN:m:p") 2412def _g_da_g0_34 (lToken, nTokenOffset, nLastToken): 2413 return g_define(lToken[nTokenOffset+1], ":LN:f:p") 2414def _g_cond_g0_33 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2415 return not g_morph(lToken[nLastToken-1+1], ":V0") 2416def _g_cond_g0_34 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2417 return not g_morph(lToken[nLastToken-1+1], ":V0") and not g_morph(lToken[nLastToken-1+1], ":3s") 2418def _g_cond_g0_35 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2419 return not g_value(lToken[nTokenOffset], "|tu|ne|n’|me|m’|te|t’|se|s’|nous|vous|") and g_morph(lToken[nTokenOffset+2], ":V1.*Ip.*:2s") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_2s_") and not g_value(lToken[nLastToken+1], "|tu|pas|jamais|") 2420def _g_cond_g0_36 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2421 return not g_value(lToken[nTokenOffset], "|l’|quelqu’|quelqu|") and not g_value(lToken[nTokenOffset+2], "|a|fut|fût|est|fait|") and not g_morph(lToken[nTokenOffset+2], ":P") 2422def _g_cond_g0_37 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2423 return not g_value(lToken[nTokenOffset], "|semblant|") 2424def _g_da_g0_35 (lToken, nTokenOffset, nLastToken): 2425 return g_select(lToken[nTokenOffset+2], ":D") 2426def _g_da_g0_36 (lToken, nTokenOffset, nLastToken): 2427 return g_select(lToken[nTokenOffset+4], ":[NA]") 2428def _g_da_g0_37 (lToken, nTokenOffset, nLastToken): 2429 return g_exclude(lToken[nTokenOffset+4], ":[123][sp]") 2430def _g_cond_g0_38 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2431 return not g_value(lToken[nTokenOffset], "|ne|n’|j’|on|il|elle|iel|") 2432def _g_cond_g0_39 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2433 return not g_morph(lToken[nTokenOffset], ":D") 2434def _g_cond_g0_40 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2435 return g_morph(lToken[nTokenOffset], ":A.*:[me]:[si]") 2436def _g_da_g0_38 (lToken, nTokenOffset, nLastToken): 2437 return g_add_morph(lToken[nTokenOffset+1], ">nombre/:G:D") 2438def _g_cond_g0_41 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2439 return not bCondMemo 2440def _g_da_g0_39 (lToken, nTokenOffset, nLastToken): 2441 return g_define(lToken[nTokenOffset+1], ">nombre/:G:D") 2442def _g_da_g0_40 (lToken, nTokenOffset, nLastToken): 2443 return g_exclude(lToken[nTokenOffset+2], ":[123][sp]") 2444def _g_cond_g0_42 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2445 return not g_morph(lToken[nTokenOffset], ":D.*:m|>(?:être|(?:re|)devenir|rester|demeurer|sembler|para[iî]tre)/") 2446def _g_cond_g0_43 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2447 return g_morph(lToken[nTokenOffset], ">(?:être|(?:re|)devenir|rester|demeurer|sembler|para[iî]tre)/") 2448def _g_da_g0_41 (lToken, nTokenOffset, nLastToken): 2449 return g_define(lToken[nTokenOffset+1], ":LV") 2450def _g_da_g0_42 (lToken, nTokenOffset, nLastToken): 2451 return g_define(lToken[nTokenOffset+1], ":A:e:i") 2452def _g_cond_g0_44 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2453 return g_morph(lToken[nTokenOffset+1], ":(D.*:p|B)") 2454def _g_da_g0_43 (lToken, nTokenOffset, nLastToken): 2455 return g_exclude(lToken[nTokenOffset+2], ":A:e:i") 2456def _g_cond_g0_45 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2457 return not g_morph(lToken[nTokenOffset], ":D.*:f") 2458def _g_da_g0_44 (lToken, nTokenOffset, nLastToken): 2459 return g_add_morph(lToken[nTokenOffset+1], ">Concorde/:MP:m:i") 2460def _g_cond_g0_46 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2461 return not g_morph(lToken[nTokenOffset], ":D.*:m") 2462def _g_da_g0_45 (lToken, nTokenOffset, nLastToken): 2463 return g_add_morph(lToken[nTokenOffset+1], ">Mustang/:MP:f:i") 2464def _g_cond_g0_47 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2465 return not g_morph(lToken[nTokenOffset], ">ne/|:R") 2466def _g_cond_g0_48 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2467 return g_morph(lToken[nTokenOffset], ":R") 2468def _g_da_g0_46 (lToken, nTokenOffset, nLastToken): 2469 return g_define_from(lToken[nTokenOffset+1], 0, -3) 2470def _g_cond_g0_49 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2471 return lToken[nTokenOffset+1]["sValue"].isupper() 2472def _g_cond_g0_50 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2473 return g_morph(lToken[nLastToken-1+1], ":[NA]") 2474def _g_da_g0_47 (lToken, nTokenOffset, nLastToken): 2475 return g_define(lToken[nTokenOffset+1], ":Cs") 2476def _g_da_g0_48 (lToken, nTokenOffset, nLastToken): 2477 return g_change_meta(lToken[nTokenOffset+1], "WORD") 2478def _g_da_g0_49 (lToken, nTokenOffset, nLastToken): 2479 return g_define(lToken[nTokenOffset+1], ":N:m:i") 2480def _g_da_g0_50 (lToken, nTokenOffset, nLastToken): 2481 return g_define(lToken[nTokenOffset+1], ":N:f:p") 2482def _g_cond_g0_51 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2483 return g_morph(lToken[nTokenOffset], ":D.*:[mp]") 2484def _g_cond_g0_52 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2485 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 0, 0) and g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 0, 0) 2486def _g_cond_g0_53 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2487 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 0, 0) and g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 0, 0) and g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nLastToken-1+1], ":N") 2488def _g_da_g0_51 (lToken, nTokenOffset, nLastToken): 2489 return g_define(lToken[nTokenOffset+1], ":M2:e:i") 2490def _g_cond_g0_54 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2491 return g_merged_analyse(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], " ", ":") 2492def _g_cond_g0_55 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2493 return not bCondMemo and g_morph(lToken[nTokenOffset+1], ":M") and g_morph(lToken[nTokenOffset+2], ":V", ":[GM]") 2494def _g_da_g0_52 (lToken, nTokenOffset, nLastToken): 2495 return g_define(lToken[nTokenOffset+2], ":M2") 2496def _g_da_g0_53 (lToken, nTokenOffset, nLastToken): 2497 return g_define(lToken[nTokenOffset+1], ":T") 2498def _g_da_g0_54 (lToken, nTokenOffset, nLastToken): 2499 return g_define(lToken[nTokenOffset+2], ":MP:f:s") 2500def _g_da_g0_55 (lToken, nTokenOffset, nLastToken): 2501 return g_define(lToken[nTokenOffset+2], ":MP:m:s") 2502def _g_da_g0_56 (lToken, nTokenOffset, nLastToken): 2503 return g_define(lToken[nTokenOffset+2], ":MP:e:s") 2504def _g_da_g0_57 (lToken, nTokenOffset, nLastToken): 2505 return g_define(lToken[nTokenOffset+2], ":MP:e:i") 2506def _g_cond_g0_56 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2507 return g_morph(lToken[nTokenOffset+2], ":V") 2508def _g_cond_g0_57 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2509 return g_morph(lToken[nTokenOffset+3], ":V") 2510def _g_cond_g0_58 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2511 return g_morph(lToken[nTokenOffset+4], ":V") 2512def _g_cond_g0_59 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2513 return not g_morph(lToken[nTokenOffset+2], ">[iî]le/") 2514def _g_cond_g0_60 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2515 return not g_value(lToken[nTokenOffset+2], "|un|une|") 2516def _g_cond_g0_61 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2517 return g_morphVC(lToken[nTokenOffset+1], ":V", ":1[sśŝ]") 2518def _g_sugg_g0_1 (lToken, nTokenOffset, nLastToken): 2519 return suggVerb(lToken[nTokenOffset+1]["sValue"], ":1ś", None, True) 2520def _g_cond_g0_62 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2521 return not bCondMemo and not g_morphVC(lToken[nTokenOffset+1], ":V") 2522def _g_sugg_g0_2 (lToken, nTokenOffset, nLastToken): 2523 return suggSimil(lToken[nTokenOffset+1]["sValue"], ":1[sśŝ]", False, True) 2524def _g_cond_g0_63 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2525 return g_morphVC(lToken[nTokenOffset+1], ":V", ":[ISK].*:2s") 2526def _g_sugg_g0_3 (lToken, nTokenOffset, nLastToken): 2527 return suggVerb(lToken[nTokenOffset+1]["sValue"], ":2s", None, True) 2528def _g_sugg_g0_4 (lToken, nTokenOffset, nLastToken): 2529 return suggSimil(lToken[nTokenOffset+1]["sValue"], ":2s", False, True) 2530def _g_cond_g0_64 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2531 return g_morphVC(lToken[nTokenOffset+1], ":3p", ":3s") 2532def _g_sugg_g0_5 (lToken, nTokenOffset, nLastToken): 2533 return suggVerb(lToken[nTokenOffset+1]["sValue"], ":3s", None, True) + "|" + lToken[nTokenOffset+1]["sValue"]+"s" 2534def _g_cond_g0_65 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2535 return not bCondMemo and g_morphVC(lToken[nTokenOffset+1], ":V", ":3s") 2536def _g_sugg_g0_6 (lToken, nTokenOffset, nLastToken): 2537 return suggVerb(lToken[nTokenOffset+1]["sValue"], ":3s", None, True) 2538def _g_cond_g0_66 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2539 return not bCondMemo and g_morphVC(lToken[nTokenOffset+1], ":", ":V|>(?:t|voilà)/") 2540def _g_sugg_g0_7 (lToken, nTokenOffset, nLastToken): 2541 return suggSimil(lToken[nTokenOffset+1]["sValue"], ":3s", False, True) 2542def _g_cond_g0_67 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2543 return not bCondMemo and g_morphVC(lToken[nTokenOffset+1], ":", ":V|>t/") 2544def _g_cond_g0_68 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2545 return g_morphVC(lToken[nTokenOffset+1], ":V", ":3s") 2546def _g_cond_g0_69 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2547 return g_morphVC(lToken[nTokenOffset+1], ":V", ":(?:3s|V0e.*:3p)") 2548def _g_cond_g0_70 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2549 return not bCondMemo and g_morphVC(lToken[nTokenOffset+1], ":", ":V") 2550def _g_cond_g0_71 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2551 return lToken[nTokenOffset+1]["sValue"].endswith("se") 2552def _g_sugg_g0_8 (lToken, nTokenOffset, nLastToken): 2553 return lToken[nTokenOffset+1]["sValue"][:-2]+"ce" 2554def _g_cond_g0_72 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2555 return g_morphVC(lToken[nTokenOffset+1], ":V", ":3p") 2556def _g_sugg_g0_9 (lToken, nTokenOffset, nLastToken): 2557 return suggVerb(lToken[nTokenOffset+1]["sValue"], ":3p", None, True) 2558def _g_sugg_g0_10 (lToken, nTokenOffset, nLastToken): 2559 return suggSimil(lToken[nTokenOffset+1]["sValue"], ":3p", False, True) 2560def _g_cond_g0_73 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2561 return g_morphVC(lToken[nTokenOffset+1], ":V", ":(?:1p|E:2[sp])") 2562def _g_sugg_g0_11 (lToken, nTokenOffset, nLastToken): 2563 return suggVerb(lToken[nTokenOffset+1]["sValue"], ":1p", None, True) 2564def _g_cond_g0_74 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2565 return not bCondMemo and g_morphVC(lToken[nTokenOffset+1], ":", ":V|>(?:chez|malgré)/") 2566def _g_sugg_g0_12 (lToken, nTokenOffset, nLastToken): 2567 return suggSimil(lToken[nTokenOffset+1]["sValue"], ":1p", False, True) 2568def _g_cond_g0_75 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2569 return g_morphVC(lToken[nTokenOffset+1], ":V", ":2p") 2570def _g_sugg_g0_13 (lToken, nTokenOffset, nLastToken): 2571 return suggVerb(lToken[nTokenOffset+1]["sValue"], ":2p", None, True) 2572def _g_cond_g0_76 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2573 return not bCondMemo and g_morphVC(lToken[nTokenOffset+1], ":", ":V|>chez/") 2574def _g_sugg_g0_14 (lToken, nTokenOffset, nLastToken): 2575 return suggSimil(lToken[nTokenOffset+1]["sValue"], ":2p", False, True) 2576def _g_da_g0_58 (lToken, nTokenOffset, nLastToken): 2577 return g_define(lToken[nLastToken-1+1], ":VCi1:2p") 2578def _g_cond_g0_77 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2579 return g_morphVC(lToken[nTokenOffset+1], ":V", ":E") 2580def _g_sugg_g0_15 (lToken, nTokenOffset, nLastToken): 2581 return suggVerbImpe(lToken[nTokenOffset+1]["sValue"], True) 2582def _g_sugg_g0_16 (lToken, nTokenOffset, nLastToken): 2583 return suggSimil(lToken[nTokenOffset+1]["sValue"], ":E", False, True) 2584def _g_sugg_g0_17 (lToken, nTokenOffset, nLastToken): 2585 return lToken[nTokenOffset+1]["sValue"].replace("-là-", "-la-") 2586def _g_cond_g0_78 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2587 return not bCondMemo and g_morphVC(lToken[nTokenOffset+1], ":", ":V") and not g_value(lToken[nTokenOffset], "|ce|cet|cette|ces|") and not g_value(lToken[nTokenOffset+1], "|par-la|de-la|jusque-la|celui-la|celle-la|ceux-la|celles-la|") 2588def _g_sugg_g0_18 (lToken, nTokenOffset, nLastToken): 2589 return suggSimil(lToken[nTokenOffset+1]["sValue"], ":E", False, True)+"|"+lToken[nTokenOffset+1]["sValue"][:-3]+" là" 2590def _g_sugg_g0_19 (lToken, nTokenOffset, nLastToken): 2591 return lToken[nTokenOffset+1]["sValue"][:-1] 2592def _g_cond_ocr_1 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2593 return look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "\\w") and (g_morph(lToken[nTokenOffset+1], ":G", ":M") or g_morph(lToken[nTokenOffset+1], ":[123][sp]", ":[MNA]|>Est/")) 2594def _g_sugg_ocr_1 (lToken, nTokenOffset, nLastToken): 2595 return lToken[nTokenOffset+1]["sValue"].lower() 2596def _g_cond_ocr_2 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2597 return look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "\\w") and not lToken[nTokenOffset+2]["sValue"].isupper() 2598def _g_cond_ocr_3 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2599 return re.search("^[aâeéèêiîouyh]", lToken[nTokenOffset+2]["sValue"]) 2600def _g_cond_ocr_4 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2601 return not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "\\d[ ]+$") and not (lToken[nTokenOffset+1]["sValue"].isupper() and g_value(lToken[nLastToken+1], "|.|<end>|")) 2602def _g_cond_ocr_5 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2603 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 0, 0) and not lToken[nTokenOffset+1]["sValue"].isupper() or g_value(lToken[nTokenOffset+1], "|à|") 2604def _g_cond_ocr_6 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2605 return not g_value(lToken[nTokenOffset], "|<start>|—|–|") 2606def _g_sugg_ocr_2 (lToken, nTokenOffset, nLastToken): 2607 return lToken[nTokenOffset+1]["sValue"].replace("a", "â").replace("A", "Â") 2608def _g_sugg_ocr_3 (lToken, nTokenOffset, nLastToken): 2609 return lToken[nTokenOffset+1]["sValue"].replace("n", "u") 2610def _g_cond_ocr_7 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2611 return not g_value(lToken[nTokenOffset], "|il|ne|n’|âne|ânesse|") 2612def _g_cond_ocr_8 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2613 return not g_value(lToken[nTokenOffset], "|il|ne|elle|") 2614def _g_cond_ocr_9 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2615 return not g_value(lToken[nTokenOffset], "|je|ne|le|la|les|") 2616def _g_cond_ocr_10 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2617 return not g_morph(lToken[nTokenOffset], ":D.*:f:[si]") 2618def _g_cond_ocr_11 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2619 return not g_value(lToken[nTokenOffset], "|j’|n’|l’|m’|t’|s’|il|on|elle|ça|cela|ceci|") 2620def _g_cond_ocr_12 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2621 return not g_value(lToken[nTokenOffset], "|et|ou|où|") 2622def _g_cond_ocr_13 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2623 return not g_morph(lToken[nTokenOffset], ":D.*:p") 2624def _g_cond_ocr_14 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2625 return not (g_value(lToken[nTokenOffset], "|grand|") and g_value(g_token(lToken, nTokenOffset+1-2), "|au|")) 2626def _g_sugg_ocr_4 (lToken, nTokenOffset, nLastToken): 2627 return lToken[nTokenOffset+1]["sValue"].replace("rn", "m").replace("in", "m") 2628def _g_cond_ocr_15 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2629 return not g_morph(lToken[nTokenOffset], ":D.*:m:[si]") 2630def _g_cond_ocr_16 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2631 return not g_morph(lToken[nTokenOffset], ":D.*:m:p") 2632def _g_cond_ocr_17 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2633 return not g_morph(lToken[nTokenOffset], ":D.*:[me]") 2634def _g_cond_ocr_18 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2635 return not g_value(lToken[nTokenOffset], "|au|de|en|par|") 2636def _g_cond_ocr_19 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2637 return g_morph(lToken[nTokenOffset], ":R|<start>|>,") or isNextVerb() 2638def _g_cond_ocr_20 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2639 return not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "[0-9] +$") 2640def _g_cond_ocr_21 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2641 return not g_value(lToken[nTokenOffset], "|tu|") 2642def _g_sugg_ocr_5 (lToken, nTokenOffset, nLastToken): 2643 return lToken[nTokenOffset+1]["sValue"].replace("ess", "ass").replace("ESS", "ASS") 2644def _g_sugg_ocr_6 (lToken, nTokenOffset, nLastToken): 2645 return lToken[nTokenOffset+1]["sValue"].replace("l", "i").replace("L", "I") 2646def _g_cond_ocr_22 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2647 return not g_value(lToken[nTokenOffset], "|il|elle|on|") and not g_value(g_token(lToken, nTokenOffset+1-2), "|il|elle|on|") 2648def _g_cond_ocr_23 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2649 return not bCondMemo and g_morph(lToken[nLastToken+1], ":(?:Ov|Y|W)") 2650def _g_cond_ocr_24 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2651 return g_morph(lToken[nTokenOffset+3], ":(?:O[on]|3s)") 2652def _g_cond_ocr_25 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2653 return not g_morph(lToken[nLastToken+1], ":N", "*") 2654def _g_sugg_ocr_7 (lToken, nTokenOffset, nLastToken): 2655 return lToken[nTokenOffset+1]["sValue"].replace("o", "e") 2656def _g_sugg_ocr_8 (lToken, nTokenOffset, nLastToken): 2657 return "l’"+lToken[nTokenOffset+1]["sValue"][2:] + "|L’"+lToken[nTokenOffset+1]["sValue"][2:] + "|j’"+lToken[nTokenOffset+1]["sValue"][2:] + "|J’"+lToken[nTokenOffset+1]["sValue"][2:] 2658def _g_cond_ocr_26 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2659 return look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "\\w") and not g_morph(lToken[nTokenOffset+2], ":Y") 2660def _g_cond_ocr_27 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2661 return lToken[nTokenOffset+1]["sValue"].istitle() and look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "\\w") and g_morph(lToken[nTokenOffset+1], ":", ":M") 2662def _g_cond_ocr_28 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2663 return _oSpellChecker.isValid(lToken[nTokenOffset+1]["sValue"][1:]) 2664def _g_sugg_ocr_9 (lToken, nTokenOffset, nLastToken): 2665 return "v"+lToken[nTokenOffset+1]["sValue"][1:] + "|l’"+lToken[nTokenOffset+1]["sValue"][1:] 2666def _g_cond_ocr_29 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2667 return not bCondMemo 2668def _g_sugg_ocr_10 (lToken, nTokenOffset, nLastToken): 2669 return "v"+lToken[nTokenOffset+1]["sValue"][1:] 2670def _g_cond_ocr_30 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2671 return look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "\\w") and g_morph(lToken[nTokenOffset+1], ":", ":M") and _oSpellChecker.isValid(lToken[nTokenOffset+1]["sValue"][1:]) 2672def _g_sugg_ocr_11 (lToken, nTokenOffset, nLastToken): 2673 return "l’"+lToken[nTokenOffset+1]["sValue"][1:] + "|p"+lToken[nTokenOffset+1]["sValue"][1:] 2674def _g_cond_ocr_31 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2675 return not g_morph(lToken[nTokenOffset], ":D.*:[me]:[si]") 2676def _g_sugg_ocr_12 (lToken, nTokenOffset, nLastToken): 2677 return lToken[nTokenOffset+1]["sValue"].replace("é", "e").replace("É", "E") 2678def _g_cond_ocr_32 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2679 return not g_morph(lToken[nTokenOffset], ":(?:V0|N.*:m:[si])") 2680def _g_cond_ocr_33 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2681 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 0, 1) 2682def _g_cond_ocr_34 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2683 return not g_morph(lToken[nTokenOffset], ":D:[me]:p") 2684def _g_cond_ocr_35 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2685 return not g_morph(lToken[nTokenOffset], ":D:(?:m:s|e:p)") 2686def _g_cond_ocr_36 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2687 return not g_morph(lToken[nTokenOffset], ">(?:homme|ce|quel|être)/") 2688def _g_sugg_ocr_13 (lToken, nTokenOffset, nLastToken): 2689 return lToken[nTokenOffset+1]["sValue"].replace("â", "a").replace("Â", "A") 2690def _g_sugg_ocr_14 (lToken, nTokenOffset, nLastToken): 2691 return lToken[nTokenOffset+1]["sValue"].replace("ô", "ê").replace("Ô", "Ê") 2692def _g_sugg_ocr_15 (lToken, nTokenOffset, nLastToken): 2693 return lToken[nTokenOffset+1]["sValue"].replace("è", "ê").replace("È", "Ê") 2694def _g_sugg_ocr_16 (lToken, nTokenOffset, nLastToken): 2695 return lToken[nTokenOffset+1]["sValue"].replace("é", "ê").replace("É", "Ê").replace("o", "e").replace("O", "E") 2696def _g_cond_ocr_37 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2697 return not g_value(lToken[nTokenOffset], "|tu|ne|n’|") 2698def _g_sugg_ocr_17 (lToken, nTokenOffset, nLastToken): 2699 return lToken[nTokenOffset+1]["sValue"].replace("l", "t").replace("L", "T")+"|"+lToken[nTokenOffset+1]["sValue"].replace("l", "i").replace("L", "I") 2700def _g_cond_ocr_38 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2701 return not g_value(lToken[nTokenOffset], "|ne|il|on|elle|je|") 2702def _g_cond_ocr_39 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2703 return not g_value(lToken[nTokenOffset], "|ne|il|on|elle|") 2704def _g_cond_ocr_40 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2705 return not g_value(lToken[nTokenOffset], "|ne|tu|") 2706def _g_cond_ocr_41 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2707 return not g_morph(lToken[nTokenOffset], ":D.*:m:s") 2708def _g_cond_ocr_42 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2709 return not g_morph(lToken[nTokenOffset], ":D.*:f:s") 2710def _g_cond_ocr_43 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2711 return not g_morph(lToken[nTokenOffset], ":D.*:[me]:p") 2712def _g_cond_ocr_44 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2713 return not g_value(lToken[nTokenOffset], "|sine|") 2714def _g_cond_ocr_45 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2715 return not g_value(lToken[nTokenOffset], "|statu|") 2716def _g_cond_ocr_46 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2717 return g_value(lToken[nTokenOffset+1], "|raine|raines|") 2718def _g_sugg_ocr_18 (lToken, nTokenOffset, nLastToken): 2719 return lToken[nTokenOffset+1]["sValue"].replace("ain", "uin").replace("AIN", "UIN") 2720def _g_cond_ocr_47 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2721 return not g_value(lToken[nLastToken+1], "|generis|") 2722def _g_cond_ocr_48 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2723 return not g_value(lToken[nTokenOffset], "|le|ce|mon|ton|son|du|un|") 2724def _g_cond_ocr_49 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2725 return look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "\\w") 2726def _g_cond_ocr_50 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2727 return not g_value(lToken[nTokenOffset], "|je|il|elle|on|ne|ça|") 2728def _g_sugg_ocr_19 (lToken, nTokenOffset, nLastToken): 2729 return lToken[nTokenOffset+1]["sValue"].replace("a", "o").replace("A", "O") 2730def _g_sugg_ocr_20 (lToken, nTokenOffset, nLastToken): 2731 return lToken[nTokenOffset+1]["sValue"].replace("n", "u").replace("N", "U") 2732def _g_cond_ocr_51 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2733 return not g_morph(lToken[nTokenOffset], ":(?:N.*:f:p|V0e.*:3p)|>(?:tu|ne)/") 2734def _g_cond_ocr_52 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2735 return not g_value(lToken[nTokenOffset], "|ce|de|du|un|quel|leur|le|") 2736def _g_sugg_ocr_21 (lToken, nTokenOffset, nLastToken): 2737 return lToken[nTokenOffset+1]["sValue"].replace("l", "t").replace("L", "T") 2738def _g_cond_g1_1 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2739 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and not re.search("(?i)^(?:onz[ei]|énième|iourte|ouistiti|ouate|one-?step|ouf|Ouagadougou|I(?:I|V|X|er|ᵉʳ|ʳᵉ|è?re))", lToken[nTokenOffset+2]["sValue"]) and not g_morph(lToken[nTokenOffset+2], ":G") 2740def _g_sugg_g1_1 (lToken, nTokenOffset, nLastToken): 2741 return lToken[nTokenOffset+1]["sValue"][0:1]+"’" 2742def _g_cond_g1_2 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2743 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) 2744def _g_cond_g1_3 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2745 return not lToken[nTokenOffset+1]["sValue"].isupper() and g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V", ":Q") 2746def _g_cond_g1_4 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2747 return not re.search("(?i)^(?:onz|énième|ouf|énième|ouistiti|one-?step|I(?:I|V|X|er|ᵉʳ))", lToken[nTokenOffset+2]["sValue"]) and g_morph(lToken[nTokenOffset+2], ":[NA].*:[me]") 2748def _g_cond_g1_5 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2749 return g_morphVC(lToken[nTokenOffset+1], "V1.*:1s") and lToken[nTokenOffset+1]["sValue"].endswith("e-je") 2750def _g_sugg_g1_2 (lToken, nTokenOffset, nLastToken): 2751 return lToken[nTokenOffset+1]["sValue"].replace("e-je", "é-je")+"|"+lToken[nTokenOffset+1]["sValue"].replace("e-je", "è-je") 2752def _g_cond_g1_6 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2753 return g_morph(lToken[nTokenOffset+2], ":[NA]") and not re.search("(?i)^(?:onz|énième|ouf|énième|I(?:I|V|X|i?[eè]?re|ʳᵉ))", lToken[nTokenOffset+2]["sValue"]) 2754def _g_sugg_g1_3 (lToken, nTokenOffset, nLastToken): 2755 return lToken[nTokenOffset+1]["sValue"][0:1]+"on" 2756def _g_cond_g1_7 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2757 return not lToken[nTokenOffset+1]["sValue"].isupper() and g_morph(lToken[nTokenOffset+2], ":[NA]") and not re.search("(?i)^(?:onz|énième|ouf|énième|I(?:I|V|X|i?[eè]?re|ʳᵉ))", lToken[nTokenOffset+2]["sValue"]) 2758def _g_cond_g1_8 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2759 return g_morph(lToken[nTokenOffset+2], ":[123][sp]") 2760def _g_sugg_g1_4 (lToken, nTokenOffset, nLastToken): 2761 return lToken[nTokenOffset+1]["sValue"][0:1]+"on|ça" 2762def _g_cond_g1_9 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2763 return not bCondMemo 2764def _g_cond_g1_10 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2765 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]:s", ":[123][sp]") 2766def _g_cond_g1_11 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2767 return g_morph(lToken[nTokenOffset+2], ":[NA].*:[me]:s", ":[123][sp]") 2768def _g_cond_g1_12 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2769 return _sAppContext != "Writer" 2770def _g_cond_g1_13 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2771 return lToken[nTokenOffset+1]["sValue"] != "1e" and _sAppContext != "Writer" 2772def _g_sugg_g1_5 (lToken, nTokenOffset, nLastToken): 2773 return lToken[nTokenOffset+1]["sValue"][:-1]+"ᵉ" 2774def _g_cond_g1_14 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2775 return lToken[nTokenOffset+1]["sValue"] != "1es" and _sAppContext != "Writer" 2776def _g_sugg_g1_6 (lToken, nTokenOffset, nLastToken): 2777 return lToken[nTokenOffset+1]["sValue"][:-2]+"ᵉˢ" 2778def _g_cond_g1_15 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2779 return lToken[nTokenOffset+1]["sValue"].endswith("s") 2780def _g_sugg_g1_7 (lToken, nTokenOffset, nLastToken): 2781 return lToken[nTokenOffset+1]["sValue"].replace("mes", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉˢ" 2782def _g_sugg_g1_8 (lToken, nTokenOffset, nLastToken): 2783 return lToken[nTokenOffset+1]["sValue"].replace("me", "").replace("è", "").replace("e", "").replace("i", "") + "ᵉ" 2784def _g_cond_g1_16 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2785 return _sAppContext != "Writer" and not option("romain") 2786def _g_cond_g1_17 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2787 return not g_morph(lToken[nTokenOffset+1], ":G") 2788def _g_cond_g1_18 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2789 return lToken[nTokenOffset+1]["sValue"].endswith("s") or lToken[nTokenOffset+1]["sValue"].endswith("S") 2790def _g_sugg_g1_9 (lToken, nTokenOffset, nLastToken): 2791 return lToken[nTokenOffset+1]["sValue"].replace("1", "₁").replace("2", "₂").replace("3", "₃").replace("4", "₄").replace("5", "₅").replace("6", "₆").replace("7", "₇").replace("8", "₈").replace("9", "₉").replace("0", "₀") 2792def _g_cond_g1_19 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2793 return lToken[nTokenOffset+1]["sValue"].isdigit() 2794def _g_da_g1_1 (lToken, nTokenOffset, nLastToken): 2795 return g_change_meta(lToken[nTokenOffset+1], "DATE") 2796def _g_cond_g1_20 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2797 return not checkDate(lToken[nTokenOffset+1]["sValue"], lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 2798def _g_cond_g1_21 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2799 return not look(sSentence[lToken[nLastToken]["nEnd"]:], "^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(lToken[nTokenOffset+1]["sValue"], lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+4]["sValue"], lToken[nTokenOffset+6]["sValue"]) 2800def _g_sugg_g1_10 (lToken, nTokenOffset, nLastToken): 2801 return getDay(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+4]["sValue"], lToken[nTokenOffset+6]["sValue"]) 2802def _g_cond_g1_22 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2803 return not look(sSentence[lToken[nLastToken]["nEnd"]:], "^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(lToken[nTokenOffset+1]["sValue"], lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+5]["sValue"], lToken[nTokenOffset+7]["sValue"]) 2804def _g_sugg_g1_11 (lToken, nTokenOffset, nLastToken): 2805 return getDay(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+5]["sValue"], lToken[nTokenOffset+7]["sValue"]) 2806def _g_cond_g1_23 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2807 return not look(sSentence[lToken[nLastToken]["nEnd"]:], "^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(lToken[nTokenOffset+1]["sValue"], lToken[nTokenOffset+4]["sValue"], lToken[nTokenOffset+6]["sValue"], lToken[nTokenOffset+8]["sValue"]) 2808def _g_sugg_g1_12 (lToken, nTokenOffset, nLastToken): 2809 return getDay(lToken[nTokenOffset+4]["sValue"], lToken[nTokenOffset+6]["sValue"], lToken[nTokenOffset+8]["sValue"]) 2810def _g_cond_g1_24 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2811 return not look(sSentence[lToken[nLastToken]["nEnd"]:], "^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(lToken[nTokenOffset+1]["sValue"], lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) 2812def _g_sugg_g1_13 (lToken, nTokenOffset, nLastToken): 2813 return getDay(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) 2814def _g_cond_g1_25 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2815 return not look(sSentence[lToken[nLastToken]["nEnd"]:], "^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(lToken[nTokenOffset+1]["sValue"], lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"], lToken[nTokenOffset+5]["sValue"]) 2816def _g_sugg_g1_14 (lToken, nTokenOffset, nLastToken): 2817 return getDay(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"], lToken[nTokenOffset+5]["sValue"]) 2818def _g_cond_g1_26 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2819 return not look(sSentence[lToken[nLastToken]["nEnd"]:], "^ +av(?:ant|) +J(?:C|ésus-Christ)") and not checkDay(lToken[nTokenOffset+1]["sValue"], lToken[nTokenOffset+4]["sValue"], lToken[nTokenOffset+5]["sValue"], lToken[nTokenOffset+6]["sValue"]) 2820def _g_sugg_g1_15 (lToken, nTokenOffset, nLastToken): 2821 return getDay(lToken[nTokenOffset+4]["sValue"], lToken[nTokenOffset+5]["sValue"], lToken[nTokenOffset+6]["sValue"]) 2822def _g_cond_g1_27 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2823 return g_morph(lToken[nTokenOffset+2], ":[NB]", ":V0e") and not g_value(lToken[nLastToken+1], "|où|") 2824def _g_cond_g1_28 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2825 return g_morph(lToken[nTokenOffset+2], ":[NB]", ":V0e") 2826def _g_cond_g1_29 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2827 return g_morph(lToken[nTokenOffset+2], ":[NB]") 2828def _g_cond_g1_30 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2829 return not g_value(lToken[nTokenOffset+3], "|aequo|nihilo|cathedra|absurdo|abrupto|") 2830def _g_cond_g1_31 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2831 return not g_value(lToken[nTokenOffset+2], "|aequo|nihilo|cathedra|absurdo|abrupto|") and not g_value(lToken[nTokenOffset], "|l’|") 2832def _g_cond_g1_32 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2833 return not g_value(lToken[nTokenOffset], "|drive|plug|sit|") 2834def _g_cond_g1_33 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2835 return not g_value(lToken[nTokenOffset+2], "|a|") 2836def _g_cond_g1_34 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2837 return g_morph(lToken[nTokenOffset], ":D") 2838def _g_cond_g1_35 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2839 return g_morph(lToken[nTokenOffset+1], ":[WA]", ":N", 6) 2840def _g_sugg_g1_16 (lToken, nTokenOffset, nLastToken): 2841 return "quasi " + lToken[nTokenOffset+1]["sValue"][6:] 2842def _g_cond_g1_36 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2843 return g_merged_analyse(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], "-", ":") 2844def _g_cond_g1_37 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2845 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and (g_morph(lToken[nTokenOffset+2], ":N") or g_merged_analyse(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], "-", ":")) 2846def _g_cond_g1_38 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2847 return g_morph(lToken[nTokenOffset], ":D|<start>|>,") and g_merged_analyse(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], "-", ":") 2848def _g_cond_g1_39 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2849 return g_morph(lToken[nTokenOffset], ":D") and g_merged_analyse(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], "-", ":") 2850def _g_cond_g1_40 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2851 return not(lToken[nTokenOffset+2]["sValue"] == "forme" and g_value(lToken[nLastToken+1], "|de|d’|")) and g_morph(lToken[nTokenOffset], ":D") and g_merged_analyse(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], "-", ":") 2852def _g_da_g1_2 (lToken, nTokenOffset, nLastToken): 2853 return g_define_from(lToken[nTokenOffset+1], 7) 2854def _g_cond_g1_41 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2855 return not g_morph(lToken[nTokenOffset+2], ":[GYB]") and g_morph(lToken[nTokenOffset], ":(?:D|V0e)|<start>|>,") and g_merged_analyse(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], "-", ":N") 2856def _g_cond_g1_42 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2857 return g_morph(lToken[nTokenOffset+3], ":V") and g_merged_analyse(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], "-", ":V") 2858def _g_cond_g1_43 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2859 return g_morph(lToken[nTokenOffset+4], ":V") and g_merged_analyse(lToken[nTokenOffset+3], lToken[nTokenOffset+3+1], "-", ":V") and not g_morph(lToken[nTokenOffset], ":R") 2860def _g_cond_g1_44 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2861 return g_morph(lToken[nTokenOffset], ":(?:D|V0e)|<start>|>,") and g_merged_analyse(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], "-", ":N") 2862def _g_cond_g1_45 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2863 return lToken[nTokenOffset+2]["sValue"].islower() 2864def _g_cond_g1_46 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2865 return not g_morph(lToken[nLastToken+1], ":[WA]") 2866def _g_cond_g1_47 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2867 return not g_value(lToken[nLastToken+1], "|si|s’|") 2868def _g_cond_g1_48 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2869 return not (g_value(lToken[nLastToken+1], "|et|") and g_morph(g_token(lToken, nLastToken+2), ":N")) 2870def _g_cond_g1_49 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2871 return g_morph(lToken[nTokenOffset], ":G") 2872def _g_cond_g1_50 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2873 return not (g_value(lToken[nTokenOffset], "|par|") and g_value(g_token(lToken, nTokenOffset+1-2), "|un|")) 2874def _g_cond_g1_51 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2875 return g_morph(lToken[nTokenOffset] , ":D") 2876def _g_cond_g1_52 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2877 return g_morph(lToken[nTokenOffset], ":D.*:[me]") 2878def _g_cond_g1_53 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2879 return not g_morph(lToken[nLastToken+1], ":A.*:[me]:[si]") 2880def _g_cond_g1_54 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2881 return not g_morph(lToken[nTokenOffset], ":O[sv]") 2882def _g_cond_g1_55 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2883 return g_morph(lToken[nTokenOffset], ":[DR]|<start>|>,") 2884def _g_cond_g1_56 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2885 return not ( g_morph(lToken[nTokenOffset], ":R") and g_value(lToken[nLastToken+1], "|que|qu’|") ) 2886def _g_cond_g1_57 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2887 return not g_value(lToken[nLastToken+1], "|de|d’|") 2888def _g_cond_g1_58 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2889 return g_morph(lToken[nTokenOffset], ">en/|:D") 2890def _g_cond_g1_59 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2891 return not g_value(lToken[nLastToken+1], "|guerre|guerres|") 2892def _g_cond_g1_60 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2893 return g_morph(lToken[nTokenOffset], ":Cs|<start>") and g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) 2894def _g_cond_g1_61 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2895 return not g_value(lToken[nTokenOffset], "|<start>|") and g_morph(lToken[nTokenOffset+2], ":M") 2896def _g_cond_g1_62 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2897 return not g_value(lToken[nTokenOffset], "|quatre|") 2898def _g_cond_g1_63 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2899 return not g_morph(lToken[nLastToken+1], ":B:e:p") 2900def _g_sugg_g1_17 (lToken, nTokenOffset, nLastToken): 2901 return lToken[nTokenOffset+1]["sValue"].replace("-", " ") 2902def _g_sugg_g1_18 (lToken, nTokenOffset, nLastToken): 2903 return lToken[nTokenOffset+2]["sValue"].replace("-", " ") 2904def _g_cond_g1_64 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2905 return not g_value(lToken[nLastToken+1], "|centre|aile|") and not look(sSentence[lToken[nLastToken]["nEnd"]:], "équipe") 2906def _g_cond_g1_65 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2907 return not look(sSentence[lToken[nLastToken]["nEnd"]:], "équipe") 2908def _g_cond_g1_66 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2909 return not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "[Pp]ar[ -]ci ?,? *$") 2910def _g_cond_g1_67 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2911 return g_morph(lToken[nTokenOffset+1], ":V0", "", 2) 2912def _g_sugg_g1_19 (lToken, nTokenOffset, nLastToken): 2913 return "y " + lToken[nTokenOffset+1]["sValue"][2:] 2914def _g_sugg_g1_20 (lToken, nTokenOffset, nLastToken): 2915 return lToken[nTokenOffset+1]["sValue"].replace(" ", "-") 2916def _g_cond_g1_68 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2917 return not g_value(lToken[nTokenOffset], "|dès|des|") 2918def _g_sugg_g1_21 (lToken, nTokenOffset, nLastToken): 2919 return lToken[nTokenOffset+1]["sValue"].replace("’", "-") 2920def _g_tp_g1_1 (lToken, nTokenOffset, nLastToken): 2921 return lToken[nTokenOffset+1]["sValue"].replace("’", "-") 2922def _g_cond_g1_69 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2923 return g_space_between_tokens(lToken[nLastToken-2+1], lToken[nLastToken-2+2], 1, 1) and g_morph(lToken[nLastToken-2+1], ":V.*:1p", ":[GW]") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_1p_") 2924def _g_cond_g1_70 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2925 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:1p", ":[GW]") and not g_value(lToken[nTokenOffset+2], "|veuillons|sachons|") 2926def _g_cond_g1_71 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2927 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:1p", ":[GW]") and not g_value(lToken[nTokenOffset+2], "|veuillons|sachons|allons|venons|partons|") 2928def _g_cond_g1_72 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2929 return g_space_between_tokens(lToken[nLastToken-2+1], lToken[nLastToken-2+2], 1, 1) and g_morph(lToken[nLastToken-2+1], ":V.*:2p", ":[GW]") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_2p_") 2930def _g_cond_g1_73 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2931 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:2p", ":[GW]") and not g_value(lToken[nTokenOffset+2], "|veuillez|sachez|") 2932def _g_cond_g1_74 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2933 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:2p", ":[GW]") and not g_value(lToken[nTokenOffset+2], "|veuillez|sachez|allez|venez|partez|") 2934def _g_cond_g1_75 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2935 return g_morph(lToken[nTokenOffset+1], ":E", "", 0, -4) 2936def _g_cond_g1_76 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2937 return g_morph(lToken[nTokenOffset+1], ":E", "", 0, -3) 2938def _g_cond_g1_77 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2939 return not g_value(lToken[nTokenOffset+2], "|appeler|") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_comme_") 2940def _g_cond_g1_78 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2941 return g_morph(lToken[nTokenOffset+2], ":[123][sp]", ">appeler/|:[NA]") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_comme_") 2942def _g_cond_g1_79 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2943 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) 2944def _g_sugg_g1_22 (lToken, nTokenOffset, nLastToken): 2945 return lToken[nTokenOffset+2]["sValue"]+"’" 2946def _g_cond_g1_80 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2947 return not g_value(lToken[nTokenOffset+3], "|t’|priori|posteriori|postériori|contrario|capella|fortiori|giorno|") 2948def _g_cond_g1_81 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2949 return not g_value(lToken[nTokenOffset+4], "|il|ils|elle|elles|iel|iels|on|ont|") 2950def _g_sugg_g1_23 (lToken, nTokenOffset, nLastToken): 2951 return "É"+lToken[nTokenOffset+1]["sValue"][1:] 2952def _g_tp_g1_2 (lToken, nTokenOffset, nLastToken): 2953 return "É"+lToken[nTokenOffset+1]["sValue"][1:] 2954def _g_cond_g1_82 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2955 return not g_morph(lToken[nTokenOffset], ":D.*:[me]") 2956def _g_cond_g1_83 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2957 return not lToken[nTokenOffset+1]["sValue"].isupper() and not lToken[nTokenOffset+2]["sValue"].isupper() 2958def _g_sugg_g1_24 (lToken, nTokenOffset, nLastToken): 2959 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":[NA].*:[si]", True) 2960def _g_cond_g1_84 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2961 return not lToken[nTokenOffset+1]["sValue"].isupper() and not lToken[nTokenOffset+2]["sValue"].isupper() and not g_value(lToken[nTokenOffset], "|tel|telle|") 2962def _g_sugg_g1_25 (lToken, nTokenOffset, nLastToken): 2963 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":[NA].*:[pi]", True) 2964def _g_cond_g1_85 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2965 return not lToken[nTokenOffset+1]["sValue"].isupper() and not lToken[nTokenOffset+2]["sValue"].isupper() and not g_value(lToken[nTokenOffset], "|tels|telles|") 2966def _g_cond_g1_86 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2967 return not g_value(lToken[nTokenOffset], "|l’|") 2968def _g_cond_g1_87 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2969 return not g_value(lToken[nTokenOffset+3], "|peu|") or not g_value(lToken[nTokenOffset+2], "|sous|") 2970def _g_cond_g1_88 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2971 return not look(sSentence[lToken[nLastToken]["nEnd"]:], " en (?:a|aie|aies|ait|eut|eût|aura|aurait|avait)\\b") 2972def _g_cond_g1_89 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2973 return not g_value(lToken[nLastToken+1], "|nuit|") 2974def _g_sugg_g1_26 (lToken, nTokenOffset, nLastToken): 2975 return lToken[nTokenOffset+2]["sValue"].replace("vrai", "exact") 2976def _g_cond_g1_90 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2977 return g_morph(lToken[nTokenOffset], ":A|>un") 2978def _g_cond_g1_91 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2979 return not g_value(lToken[nLastToken+1], "|de|des|du|d’|") 2980def _g_sugg_g1_27 (lToken, nTokenOffset, nLastToken): 2981 return suggPlur(lToken[nTokenOffset+3]["sValue"], "", True) 2982def _g_cond_g1_92 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2983 return not g_morph(lToken[nLastToken+1], ":D") 2984def _g_cond_g1_93 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2985 return not (g_morph(lToken[nLastToken-1+1], ":[PQ]") and g_morph(lToken[nTokenOffset], ":V0.*:1s")) 2986def _g_sugg_g1_28 (lToken, nTokenOffset, nLastToken): 2987 return suggVerb(lToken[nLastToken-1+1]["sValue"], ":1s") 2988def _g_cond_g1_94 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2989 return g_value(lToken[nLastToken-1+1], "|est|es|") 2990def _g_cond_g1_95 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2991 return not g_value(lToken[nTokenOffset+2], "|soussigné|soussignée|") and not g_morph(lToken[nTokenOffset], ":1s") 2992def _g_sugg_g1_29 (lToken, nTokenOffset, nLastToken): 2993 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":(?:1s|Ov)", False) 2994def _g_sugg_g1_30 (lToken, nTokenOffset, nLastToken): 2995 return suggSimil(lToken[nLastToken-1+1]["sValue"], ":(?:1s|Ov)", False) 2996def _g_cond_g1_96 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 2997 return not g_morph(lToken[nTokenOffset], ":V0") 2998def _g_sugg_g1_31 (lToken, nTokenOffset, nLastToken): 2999 return suggVerb(lToken[nLastToken-1+1]["sValue"], ":2s") 3000def _g_cond_g1_97 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3001 return not g_morph(lToken[nTokenOffset], ":(?:2s|V0|R)") 3002def _g_sugg_g1_32 (lToken, nTokenOffset, nLastToken): 3003 return suggSimil(lToken[nLastToken-1+1]["sValue"], ":(?:2s|Ov)", False) 3004def _g_cond_g1_98 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3005 return not (g_morph(lToken[nTokenOffset+2], ":[PQ]") and g_morph(lToken[nTokenOffset], ":V0.*:3s")) 3006def _g_sugg_g1_33 (lToken, nTokenOffset, nLastToken): 3007 return suggVerb(lToken[nTokenOffset+2]["sValue"], ":3s") 3008def _g_cond_g1_99 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3009 return bCondMemo and g_morph(lToken[nTokenOffset+2], ":3p") 3010def _g_sugg_g1_34 (lToken, nTokenOffset, nLastToken): 3011 return suggVerb(lToken[nLastToken-1+1]["sValue"], ":3s") 3012def _g_cond_g1_100 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3013 return g_morph(lToken[nLastToken-1+1], ":3p") 3014def _g_cond_g1_101 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3015 return not g_morph(lToken[nTokenOffset], ":3s") and not g_value(lToken[nTokenOffset], "|t’|") and not g_value(lToken[nLastToken-1+1], "|c’|ce|ou|si|") 3016def _g_sugg_g1_35 (lToken, nTokenOffset, nLastToken): 3017 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":(?:3s|Ov)", False) 3018def _g_cond_g1_102 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3019 return not g_morph(lToken[nTokenOffset], ":3s") and not g_value(lToken[nTokenOffset], "|t’|") and not g_value(lToken[nLastToken-1+1], "|c’|ce|") 3020def _g_sugg_g1_36 (lToken, nTokenOffset, nLastToken): 3021 return suggSimil(lToken[nLastToken-1+1]["sValue"], ":(?:3s|Ov)", False) 3022def _g_cond_g1_103 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3023 return not g_morph(lToken[nTokenOffset], ":3s") and not g_value(lToken[nTokenOffset], "|n’|m’|t’|s’|") and not g_value(lToken[nLastToken-1+1], "|c’|ce|si|") 3024def _g_sugg_g1_37 (lToken, nTokenOffset, nLastToken): 3025 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":(?:3s|Oo)", False) 3026def _g_cond_g1_104 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3027 return not g_morph(lToken[nTokenOffset], ":3s") and not g_value(lToken[nTokenOffset], "|n’|m’|t’|s’|") and not g_value(lToken[nLastToken-1+1], "|c’|ce|") 3028def _g_sugg_g1_38 (lToken, nTokenOffset, nLastToken): 3029 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":3s", False) 3030def _g_cond_g1_105 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3031 return g_morph(lToken[nTokenOffset+3], ">(?:être|devoir|devenir|pouvoir|vouloir|savoir)/:V", ":3s") 3032def _g_sugg_g1_39 (lToken, nTokenOffset, nLastToken): 3033 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":3s") 3034def _g_cond_g1_106 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3035 return g_morph(lToken[nTokenOffset+3], ":[YP]") or g_morph(lToken[nTokenOffset+3], ":V", ">(?:être|devoir|devenir|pouvoir|vouloir|savoir)/") 3036def _g_sugg_g1_40 (lToken, nTokenOffset, nLastToken): 3037 return lToken[nLastToken-1+1]["sValue"][:-1]+"t" 3038def _g_cond_g1_107 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3039 return not g_value(lToken[nLastToken+1], "|je|tu|il|elle|on|nous|vous|ils|elles|iel|iels|") 3040def _g_sugg_g1_41 (lToken, nTokenOffset, nLastToken): 3041 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":1p") 3042def _g_sugg_g1_42 (lToken, nTokenOffset, nLastToken): 3043 return suggVerb(lToken[nLastToken-1+1]["sValue"], ":1p") 3044def _g_sugg_g1_43 (lToken, nTokenOffset, nLastToken): 3045 return suggVerb(lToken[nLastToken-1+1]["sValue"], ":2p") 3046def _g_sugg_g1_44 (lToken, nTokenOffset, nLastToken): 3047 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":2p") 3048def _g_cond_g1_108 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3049 return not (g_morph(lToken[nTokenOffset+2], ":[PQ]") and g_morph(lToken[nTokenOffset], ":V0.*:3p")) 3050def _g_sugg_g1_45 (lToken, nTokenOffset, nLastToken): 3051 return suggVerb(lToken[nTokenOffset+2]["sValue"], ":3p") 3052def _g_cond_g1_109 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3053 return bCondMemo and g_morph(lToken[nTokenOffset+2], ":3s") 3054def _g_sugg_g1_46 (lToken, nTokenOffset, nLastToken): 3055 return suggVerb(lToken[nLastToken-1+1]["sValue"], ":3p") 3056def _g_cond_g1_110 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3057 return g_morph(lToken[nLastToken-1+1], ":3s") 3058def _g_cond_g1_111 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3059 return not g_morph(lToken[nTokenOffset], ":3p") and not g_value(lToken[nTokenOffset], "|t’|") 3060def _g_sugg_g1_47 (lToken, nTokenOffset, nLastToken): 3061 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":(?:3p|Ov)", False) 3062def _g_sugg_g1_48 (lToken, nTokenOffset, nLastToken): 3063 return suggSimil(lToken[nTokenOffset+3]["sValue"], ":(?:3p|Ov)", False) 3064def _g_cond_g1_112 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3065 return g_morph(lToken[nLastToken-1+1], ":[12]s") 3066def _g_cond_g1_113 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3067 return not bCondMemo and g_morph(lToken[nLastToken-1+1], ":1p") 3068def _g_cond_g1_114 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3069 return not bCondMemo and g_morph(lToken[nLastToken-1+1], ":2p") 3070def _g_sugg_g1_49 (lToken, nTokenOffset, nLastToken): 3071 return suggVerbInfi(lToken[nLastToken-1+1]["sValue"]) 3072def _g_sugg_g1_50 (lToken, nTokenOffset, nLastToken): 3073 return suggSimil(lToken[nTokenOffset+4]["sValue"], ":(?:[123][sp]|Y)", False) 3074def _g_sugg_g1_51 (lToken, nTokenOffset, nLastToken): 3075 return suggSimil(lToken[nTokenOffset+3]["sValue"], ":(?:[123][sp]|Y)", False) 3076def _g_cond_g1_115 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3077 return not g_morph(lToken[nTokenOffset], ":R") 3078def _g_sugg_g1_52 (lToken, nTokenOffset, nLastToken): 3079 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":(?:[123][sp]|Y)", False) 3080def _g_cond_g1_116 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3081 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_1s_") and g_morph(lToken[nLastToken-1+1], ":1s", ":(?:E|G|W|M|J|3[sp])") 3082def _g_cond_g1_117 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3083 return not g_tag_before(lToken[nLastToken-1+1], dTags, "_1s_") and not g_morph(lToken[nTokenOffset], ":R") and g_morph(lToken[nLastToken-1+1], ":1s", ":(?:E|G|W|M|J|3[sp]|2p|1p)") 3084def _g_cond_g1_118 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3085 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_1s_") and g_morph(lToken[nTokenOffset+1], ":1s", ":(?:E|G|W|M|J|3[sp]|N|A|Q)") and not (lToken[nTokenOffset+1]["sValue"].istitle() and look(sSentence0[:lToken[1+nTokenOffset]["nStart"]], "\\w")) 3086def _g_sugg_g1_53 (lToken, nTokenOffset, nLastToken): 3087 return suggVerb(lToken[nTokenOffset+1]["sValue"], ":3s") 3088def _g_cond_g1_119 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3089 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_2s_") and g_morph(lToken[nLastToken-1+1], ":2s", ":(?:E|G|W|M|J|3[sp]|1p)") 3090def _g_cond_g1_120 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3091 return not g_tag_before(lToken[nLastToken-1+1], dTags, "_2s_") and g_morph(lToken[nLastToken-1+1], ":2s", ":(?:E|G|W|M|J|3[sp]|1p)") 3092def _g_cond_g1_121 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3093 return not g_tag_before(lToken[nLastToken-1+1], dTags, "_2s_") and not g_morph(lToken[nTokenOffset], ":R") and g_morph(lToken[nLastToken-1+1], ":2s", ":(?:E|G|W|M|J|3[sp]|2p|1p)") 3094def _g_cond_g1_122 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3095 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_2s_") and g_morph(lToken[nTokenOffset+1], ":2s", ":(?:E|G|W|M|J|3[sp]|N|A|Q|1p)") and not (lToken[nTokenOffset+1]["sValue"].istitle() and look(sSentence0[:lToken[1+nTokenOffset]["nStart"]], "\\w")) 3096def _g_cond_g1_123 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3097 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_1s_") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_2s_") and g_morph(lToken[nLastToken-1+1], ":[12]s", ":(?:E|G|W|M|J|3[sp]|2p|1p)") 3098def _g_cond_g1_124 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3099 return not g_tag_before(lToken[nLastToken-1+1], dTags, "_1s_") and not g_tag_before(lToken[nLastToken-1+1], dTags, "_2s_") and g_morph(lToken[nLastToken-1+1], ":[12]s", ":(?:E|G|W|M|J|3[sp]|2p|1p)") 3100def _g_cond_g1_125 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3101 return not g_tag_before(lToken[nLastToken-1+1], dTags, "_1s_") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_2s_") and not g_morph(lToken[nTokenOffset], ":R") and g_morph(lToken[nLastToken-1+1], ":[12]s", ":(?:E|G|W|M|J|3[sp]|2p|1p)") 3102def _g_cond_g1_126 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3103 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_1s_") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_2s_") and not (lToken[nTokenOffset+1]["sValue"].istitle() and look(sSentence0[:lToken[1+nTokenOffset]["nStart"]], "\\w")) and not g_morph(lToken[nTokenOffset], ":[DA].*:p") 3104def _g_cond_g1_127 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3105 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_1s_") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_2s_") and g_morph(lToken[nTokenOffset+1], ":[12]s", ":(?:E|G|W|M|J|3[sp]|2p|1p|V0e|N|A|Q)") and not (lToken[nTokenOffset+1]["sValue"].istitle() and look(sSentence0[:lToken[1+nTokenOffset]["nStart"]], "\\w")) 3106def _g_cond_g1_128 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3107 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_1s_") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_2s_") 3108def _g_cond_g1_129 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3109 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_1s_") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_2s_") and not (lToken[nTokenOffset+1]["sValue"].istitle() and look(sSentence0[:lToken[1+nTokenOffset]["nStart"]], "\\w")) and not g_morph(lToken[nTokenOffset], ":(?:R|D.*:p)") 3110def _g_cond_g1_130 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3111 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_1s_") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_2s_") and not (lToken[nTokenOffset+1]["sValue"].istitle() and look(sSentence0[:lToken[1+nTokenOffset]["nStart"]], "\\w")) 3112def _g_cond_g1_131 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3113 return g_morph(lToken[nTokenOffset+1], ":1p", ":[EGMNAJ]") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_1p_") and not (lToken[nTokenOffset+1]["sValue"].istitle() and look(sSentence0[:lToken[1+nTokenOffset]["nStart"]], "\\w")) 3114def _g_sugg_g1_54 (lToken, nTokenOffset, nLastToken): 3115 return suggVerb(lToken[nTokenOffset+1]["sValue"], ":3p") 3116def _g_cond_g1_132 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3117 return g_morph(lToken[nTokenOffset+1], ":2p", ":[EGMNAJ]") and not g_tag_before(lToken[nTokenOffset+2], dTags, "_2p_") and not (lToken[nTokenOffset+1]["sValue"].istitle() and look(sSentence0[:lToken[1+nTokenOffset]["nStart"]], "\\w")) 3118def _g_cond_g1_133 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3119 return g_morph(lToken[nTokenOffset+4], ":K:1s", ">(?:aimer|vouloir)/") 3120def _g_sugg_g1_55 (lToken, nTokenOffset, nLastToken): 3121 return lToken[nTokenOffset+4]["sValue"][:-1] 3122def _g_cond_g1_134 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3123 return g_morph(lToken[nTokenOffset+5], ":K:1s", ">(?:aimer|vouloir)/") 3124def _g_sugg_g1_56 (lToken, nTokenOffset, nLastToken): 3125 return lToken[nTokenOffset+5]["sValue"][:-1] 3126def _g_cond_g1_135 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3127 return g_morph(lToken[nTokenOffset+6], ":K:1s", ">(?:aimer|vouloir)/") 3128def _g_sugg_g1_57 (lToken, nTokenOffset, nLastToken): 3129 return lToken[nTokenOffset+6]["sValue"][:-1] 3130def _g_cond_g1_136 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3131 return g_morph(lToken[nTokenOffset+7], ":K:1s", ">(?:aimer|vouloir)/") 3132def _g_sugg_g1_58 (lToken, nTokenOffset, nLastToken): 3133 return lToken[nTokenOffset+7]["sValue"][:-1] 3134def _g_cond_g1_137 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3135 return not lToken[nTokenOffset+1]["sValue"].isupper() and lToken[nTokenOffset+2]["sValue"].islower() 3136def _g_cond_g1_138 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3137 return lToken[nTokenOffset+2]["sValue"] == "l’" 3138def _g_cond_g1_139 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3139 return not lToken[nTokenOffset+1]["sValue"].isupper() and lToken[nTokenOffset+3]["sValue"].islower() 3140def _g_sugg_g1_59 (lToken, nTokenOffset, nLastToken): 3141 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":[NA]:[fe]:[si]", True) 3142def _g_cond_g1_140 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3143 return lToken[nTokenOffset+2]["sValue"].islower() and not g_value(lToken[nTokenOffset], "|le|la|les|") and hasSimil(lToken[nTokenOffset+2]["sValue"], ":[NA]:[fe]:[si]") 3144def _g_cond_g1_141 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3145 return g_morph(lToken[nTokenOffset+2], "V.....[pqx]") 3146def _g_cond_g1_142 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3147 return not g_morph(lToken[nTokenOffset+2], ":V0") and hasSimil(lToken[nTokenOffset+2]["sValue"]) 3148def _g_cond_g1_143 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3149 return not lToken[nTokenOffset+1]["sValue"].isupper() 3150def _g_sugg_g1_60 (lToken, nTokenOffset, nLastToken): 3151 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":[NA]:[me]:[si]", True) 3152def _g_cond_g1_144 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3153 return lToken[nTokenOffset+2]["sValue"].islower() and not g_value(lToken[nTokenOffset], "|le|la|les|") 3154def _g_cond_g1_145 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3155 return lToken[nTokenOffset+2]["sValue"].islower() and not g_value(lToken[nTokenOffset+2], "|sortir|") 3156def _g_cond_g1_146 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3157 return lToken[nTokenOffset+2]["sValue"].islower() and not g_value(lToken[nTokenOffset+2], "|faire|sont|soit|fut|fût|serait|sera|seront|soient|furent|fussent|seraient|peut|pouvait|put|pût|pourrait|pourra|doit|dut|dût|devait|devrait|devra|") and hasSimil(lToken[nTokenOffset+2]["sValue"]) 3158def _g_sugg_g1_61 (lToken, nTokenOffset, nLastToken): 3159 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":[NA]:.:[si]", True) 3160def _g_cond_g1_147 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3161 return lToken[nTokenOffset+3]["sValue"].islower() 3162def _g_sugg_g1_62 (lToken, nTokenOffset, nLastToken): 3163 return suggSimil(lToken[nTokenOffset+3]["sValue"], ":[NA]:[me]:[si]", True) 3164def _g_cond_g1_148 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3165 return not g_value(lToken[nTokenOffset], "|dont|l’|d’|sauf|excepté|qu’|") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\bun à +$") and not g_morph(lToken[nTokenOffset+2], ":V0") 3166def _g_sugg_g1_63 (lToken, nTokenOffset, nLastToken): 3167 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":[NAQ]:[me]:[si]", True) 3168def _g_sugg_g1_64 (lToken, nTokenOffset, nLastToken): 3169 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":[NA]:.:[pi]", True) 3170def _g_cond_g1_149 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3171 return bCondMemo and g_morph(lToken[nTokenOffset+2], ":1p") 3172def _g_cond_g1_150 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3173 return bCondMemo and g_morph(lToken[nTokenOffset+2], ":2p") 3174def _g_sugg_g1_65 (lToken, nTokenOffset, nLastToken): 3175 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":[NA]:[me]:[pi]", True) 3176def _g_cond_g1_151 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3177 return lToken[nTokenOffset+2]["sValue"].islower() and not g_value(lToken[nTokenOffset], "|le|la|les|") and hasSimil(lToken[nTokenOffset+2]["sValue"], ":[NA]:[fe]:[pi]") 3178def _g_sugg_g1_66 (lToken, nTokenOffset, nLastToken): 3179 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":[NA]:[fe]:[pi]", True) 3180def _g_cond_g1_152 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3181 return lToken[nTokenOffset+2]["sValue"].islower() and not g_value(lToken[nTokenOffset+2], "|soient|soit|sois|puisse|puisses|puissent|") 3182def _g_sugg_g1_67 (lToken, nTokenOffset, nLastToken): 3183 return suggSimil(lToken[nTokenOffset+3]["sValue"], ":[NA]", True) 3184def _g_cond_g1_153 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3185 return not g_value(lToken[nTokenOffset], "|un|une|") 3186def _g_cond_g1_154 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3187 return not lToken[nTokenOffset+2]["sValue"].istitle() and not g_value(lToken[nTokenOffset+2], "|jure|") 3188def _g_sugg_g1_68 (lToken, nTokenOffset, nLastToken): 3189 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":[NA]", True) 3190def _g_cond_g1_155 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3191 return not lToken[nTokenOffset+3]["sValue"].istitle() 3192def _g_sugg_g1_69 (lToken, nTokenOffset, nLastToken): 3193 return suggSimil(lToken[nTokenOffset+3]["sValue"], ":[NA]:.:[si]", True) 3194def _g_cond_g1_156 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3195 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 0, 1) and g_morph(lToken[nTokenOffset+3], ":[NAQ].*:[me]", ":[YG]") and not lToken[nTokenOffset+3]["sValue"].istitle() and not (g_value(lToken[nTokenOffset+3], "|mal|") and g_morph(lToken[nLastToken+1], ":Y")) 3196def _g_cond_g1_157 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3197 return g_morph(lToken[nTokenOffset+3], ":[123][sp]") 3198def _g_sugg_g1_70 (lToken, nTokenOffset, nLastToken): 3199 return suggVerbInfi(lToken[nTokenOffset+3]["sValue"]) 3200def _g_cond_g1_158 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3201 return g_morph(lToken[nTokenOffset+3], ":[123][sp]", ":[NAQ]") and not lToken[nTokenOffset+3]["sValue"].istitle() 3202def _g_cond_g1_159 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3203 return g_morph(lToken[nTokenOffset+3], ":V1.*:(?:Iq|Ip:2p)", ":1p") 3204def _g_cond_g1_160 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3205 return hasSimil(lToken[nTokenOffset+3]["sValue"], ":(?:[NA]:[fe]:[si])") 3206def _g_sugg_g1_71 (lToken, nTokenOffset, nLastToken): 3207 return suggSimil(lToken[nTokenOffset+3]["sValue"], ":(?:[NA]:[fe]:[si])", True) 3208def _g_cond_g1_161 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3209 return not lToken[nTokenOffset+3]["sValue"].istitle() and not g_value(lToken[nTokenOffset], "|plus|moins|") 3210def _g_cond_g1_162 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3211 return not lToken[nLastToken-1+1]["sValue"].istitle() 3212def _g_sugg_g1_72 (lToken, nTokenOffset, nLastToken): 3213 return suggSimil(lToken[nLastToken-1+1]["sValue"], ":[NA]", True) 3214def _g_cond_g1_163 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3215 return not lToken[nTokenOffset+3]["sValue"].istitle() and not g_value(lToken[nTokenOffset], "|un|une|") 3216def _g_cond_g1_164 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3217 return not lToken[nTokenOffset+2]["sValue"].istitle() 3218def _g_cond_g1_165 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3219 return not g_morph(lToken[nTokenOffset], ":V[123].*:[123][sp]|>(?:pouvoir|vouloir|falloir)/") 3220def _g_sugg_g1_73 (lToken, nTokenOffset, nLastToken): 3221 return suggVerbPpas(lToken[nTokenOffset+5]["sValue"]) 3222def _g_cond_g1_166 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3223 return g_morph(lToken[nTokenOffset+2], ":", ":P") 3224def _g_cond_g1_167 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3225 return not g_morph(lToken[nTokenOffset], ":R") and g_morph(lToken[nTokenOffset+2], ":[NAQ]", ":[PG]") 3226def _g_cond_g1_168 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3227 return g_morph(lToken[nTokenOffset+3], ":3p") 3228def _g_sugg_g1_74 (lToken, nTokenOffset, nLastToken): 3229 return suggVerbTense(lToken[nTokenOffset+3]["sValue"], ":PQ", ":P") 3230def _g_cond_g1_169 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3231 return g_value(lToken[nTokenOffset+2], "|m’|t’|s’|") 3232def _g_sugg_g1_75 (lToken, nTokenOffset, nLastToken): 3233 return lToken[nTokenOffset+2]["sValue"][0:1] + "’en" 3234def _g_cond_g1_170 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3235 return not g_morph(lToken[nTokenOffset+3], ":[NA]") 3236def _g_cond_g1_171 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3237 return not lToken[nTokenOffset+1]["sValue"].isupper() and not g_value(lToken[nTokenOffset+3], "|importe|") 3238def _g_cond_g1_172 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3239 return not g_value(lToken[nTokenOffset], "|n’|") 3240def _g_cond_g1_173 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3241 return g_morph(lToken[nLastToken-1+1], ":Q") and not g_morph(lToken[nTokenOffset], ":(?:V0a|R)") 3242def _g_sugg_g1_76 (lToken, nTokenOffset, nLastToken): 3243 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":m:s")+"|"+suggVerbInfi(lToken[nLastToken-1+1]["sValue"])+"|"+suggVerbTense(lToken[nLastToken-1+1]["sValue"], ":Iq", ":3s") 3244def _g_sugg_g1_77 (lToken, nTokenOffset, nLastToken): 3245 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":f:s")+"|"+suggVerbTense(lToken[nLastToken-1+1]["sValue"], ":Iq", ":3s") 3246def _g_sugg_g1_78 (lToken, nTokenOffset, nLastToken): 3247 return suggSimil(lToken[nLastToken-1+1]["sValue"], ":[NA]") 3248def _g_cond_g1_174 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3249 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") and not g_value(lToken[nTokenOffset], "|ou|") 3250def _g_cond_g1_175 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3251 return not lToken[nTokenOffset+2]["sValue"].istitle() and not g_morph(lToken[nTokenOffset], ":[NA]:[me]:si") 3252def _g_cond_g1_176 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3253 return g_morphVC(lToken[nTokenOffset+3], ">(?:être|devenir|redevenir|rester|sembler|demeurer|para[îi]tre)/") and g_morph(lToken[nTokenOffset+2], ":(?:Y|[123][sp])", ":[AQ]") 3254def _g_sugg_g1_79 (lToken, nTokenOffset, nLastToken): 3255 return suggVerbPpas(lToken[nTokenOffset+2]["sValue"]) 3256def _g_cond_g1_177 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3257 return g_morphVC(lToken[nTokenOffset+3], ">(?:être|devenir|redevenir|rester|sembler|demeurer|para[îi]tre)/") and g_morph(lToken[nTokenOffset+2], ":A.*:p", ":[si]") 3258def _g_sugg_g1_80 (lToken, nTokenOffset, nLastToken): 3259 return suggSing(lToken[nTokenOffset+2]["sValue"]) 3260def _g_cond_g1_178 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3261 return g_morphVC(lToken[nTokenOffset+3], ">(?:être|devenir|redevenir|rester|sembler|demeurer|para[îi]tre)/") and g_morph(lToken[nTokenOffset+2], ":A.*:[fp]", ":[me]:[si]") 3262def _g_sugg_g1_81 (lToken, nTokenOffset, nLastToken): 3263 return suggMasSing(lToken[nTokenOffset+2]["sValue"]) 3264def _g_cond_g1_179 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3265 return g_morphVC(lToken[nTokenOffset+3], ">(?:être|devenir|redevenir|rester|sembler|demeurer|para[îi]tre)/") and g_morph(lToken[nTokenOffset+2], ":A.*:[mp]", ":[fe]:[si]") 3266def _g_sugg_g1_82 (lToken, nTokenOffset, nLastToken): 3267 return suggFemSing(lToken[nTokenOffset+2]["sValue"]) 3268def _g_cond_g1_180 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3269 return g_morphVC(lToken[nTokenOffset+3], ">(?:être|devenir|redevenir|rester|sembler|demeurer|para[îi]tre)/") and g_morph(lToken[nTokenOffset+2], ":A.*:s", ":[pi]") 3270def _g_sugg_g1_83 (lToken, nTokenOffset, nLastToken): 3271 return suggPlur(lToken[nTokenOffset+2]["sValue"]) 3272def _g_cond_g1_181 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3273 return g_morphVC(lToken[nTokenOffset+3], ">(?:être|devenir|redevenir|rester|sembler|demeurer|para[îi]tre)/") and g_morph(lToken[nTokenOffset+2], ":A.*:[sf]", ":[me]:[pi]") 3274def _g_sugg_g1_84 (lToken, nTokenOffset, nLastToken): 3275 return suggMasPlur(lToken[nTokenOffset+2]["sValue"]) 3276def _g_cond_g1_182 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3277 return g_morphVC(lToken[nTokenOffset+3], ">(?:être|devenir|redevenir|rester|sembler|demeurer|para[îi]tre)/") and g_morph(lToken[nTokenOffset+2], ":A.*:[sm]", ":[fe]:[pi]") 3278def _g_sugg_g1_85 (lToken, nTokenOffset, nLastToken): 3279 return suggFemPlur(lToken[nTokenOffset+2]["sValue"]) 3280def _g_cond_g1_183 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3281 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") 3282def _g_cond_g1_184 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3283 return not g_value(lToken[nTokenOffset+2], "|envie|") 3284def _g_sugg_g1_86 (lToken, nTokenOffset, nLastToken): 3285 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":[AW]", True) 3286def _g_cond_g1_185 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3287 return g_morph(lToken[nTokenOffset+2], ":V1.*:Y", ":[AW]") 3288def _g_cond_g1_186 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3289 return lToken[nTokenOffset+4]["sValue"] == "soie" or lToken[nTokenOffset+4]["sValue"] == "soies" 3290def _g_cond_g1_187 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3291 return g_morph(lToken[nTokenOffset+4], ":V", ":3[sp]") 3292def _g_cond_g1_188 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3293 return g_morph(lToken[nTokenOffset+2], ":A.*:p", ":[is]") 3294def _g_cond_g1_189 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3295 return g_morph(lToken[nTokenOffset+2], ":A.*:s", ":[ip]") 3296def _g_cond_g1_190 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3297 return not g_value(lToken[nLastToken+1], "|moins|plus|mieux|") 3298def _g_cond_g1_191 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3299 return not lToken[nTokenOffset+1]["sValue"].isupper() and not g_value(lToken[nLastToken+1], "|côté|coup|pic|peine|peu|plat|propos|valoir|") 3300def _g_cond_g1_192 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3301 return not lToken[nTokenOffset+1]["sValue"].isupper() and not g_value(lToken[nLastToken+1], "|côté|coup|pic|peine|peu|plat|propos|valoir|") and not g_morph(lToken[nTokenOffset], ">venir/") 3302def _g_cond_g1_193 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3303 return not g_morph(lToken[nTokenOffset], ":(?:3s|R)") and not g_morph(lToken[nLastToken+1], ":Oo|>quo?i/") 3304def _g_cond_g1_194 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3305 return not g_morph(lToken[nTokenOffset], ":D") 3306def _g_cond_g1_195 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3307 return lToken[nTokenOffset+2]["sValue"].islower() and not g_value(lToken[nTokenOffset+2], "|coté|sont|") 3308def _g_cond_g1_196 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3309 return g_morph(lToken[nTokenOffset+2], ":(?:V.......[_z][az].*:Q|V1.*:Ip:2p)", ":[MGWNY]") 3310def _g_cond_g1_197 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3311 return bCondMemo and g_morph(lToken[nTokenOffset+2], "V1.*:(?:Ip:2p|Q)", "*") and not g_value(lToken[nTokenOffset], "|il|elle|on|n’|les|l’|m’|t’|s’|d’|en|y|lui|nous|vous|leur|") 3312def _g_sugg_g1_87 (lToken, nTokenOffset, nLastToken): 3313 return suggVerbInfi(lToken[nTokenOffset+2]["sValue"]) 3314def _g_cond_g1_198 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3315 return not bCondMemo and g_morph(lToken[nTokenOffset+2], ":[123][sp]", "*") and not g_value(lToken[nTokenOffset+2], "|tord|tords|") 3316def _g_cond_g1_199 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3317 return g_morph(lToken[nTokenOffset+2], ":V2.*:I[ps]:3s", "*") 3318def _g_sugg_g1_88 (lToken, nTokenOffset, nLastToken): 3319 return suggVerbPpas(lToken[nTokenOffset+2]["sValue"], ":m:s") 3320def _g_cond_g1_200 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3321 return bCondMemo 3322def _g_cond_g1_201 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3323 return not g_value(lToken[nTokenOffset], "|il|elle|iel|on|n’|m’|t’|l’|") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\bqu[e’] |n’(?:en|y) +$") 3324def _g_cond_g1_202 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3325 return g_morph(lToken[nTokenOffset+1], ":N", ":Ov") 3326def _g_cond_g1_203 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3327 return not g_morph(lToken[nTokenOffset], ":(?:D.*:f:s|A.*:[fe]:[si])|>en/") 3328def _g_cond_g1_204 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3329 return g_morph(lToken[nTokenOffset], ":[VN]|<start>", "*") 3330def _g_cond_g1_205 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3331 return not g_morph(lToken[nTokenOffset], ":Ov|>(?:il|elle)/") 3332def _g_cond_g1_206 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3333 return not (g_value(lToken[nTokenOffset+3], "|sur|") and g_value(lToken[nTokenOffset], "|tout|par|") and g_value(lToken[nTokenOffset+2], "|coup|")) 3334def _g_cond_g1_207 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3335 return not g_morph(lToken[nTokenOffset], ">(?:cadeau|offrande|présent)") 3336def _g_cond_g1_208 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3337 return not (g_value(lToken[nTokenOffset+1], "|à|") and g_value(lToken[nTokenOffset+2], "|tue-tête|")) 3338def _g_cond_g1_209 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3339 return not g_value(lToken[nTokenOffset], "|l’|n’|il|elle|on|y|") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)n’en +$") 3340def _g_cond_g1_210 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3341 return lToken[nTokenOffset+2]["sValue"].islower() and not g_value(lToken[nTokenOffset+3], "|accès|bon|bonne|beau|besoin|charge|confiance|connaissance|conscience|crainte|droit|envie|été|faim|grand|grande|hâte|honte|interdiction|lieu|mauvaise|peine|peur|raison|rapport|recours|soif|tendance|terre|tort|vent|vocation|") and g_morph(lToken[nTokenOffset+1], ":N", "*") 3342def _g_cond_g1_211 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3343 return g_morph(lToken[nTokenOffset], ">(?:falloir|aller|pouvoir)/", ">que/") 3344def _g_cond_g1_212 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3345 return g_morph(lToken[nTokenOffset], ">(?:être|rester|demeurer)/") 3346def _g_cond_g1_213 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3347 return not g_value(lToken[nTokenOffset], "|l’|d’|") and not g_tag(lToken[nTokenOffset], "_en_") 3348def _g_cond_g1_214 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3349 return g_morph(lToken[nTokenOffset], ":V", "*") and not g_tag(lToken[nTokenOffset], "_en_") 3350def _g_cond_g1_215 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3351 return not g_value(lToken[nTokenOffset], "|le|du|") 3352def _g_cond_g1_216 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3353 return not g_value(lToken[nTokenOffset], "|les|des|") 3354def _g_sugg_g1_89 (lToken, nTokenOffset, nLastToken): 3355 return lToken[nTokenOffset+2]["sValue"].replace("scé", "cé").replace("SCÉ", "CÉ") 3356def _g_sugg_g1_90 (lToken, nTokenOffset, nLastToken): 3357 return lToken[nTokenOffset+2]["sValue"].replace("cé", "scé").replace("CÉ", "SCÉ") 3358def _g_sugg_g1_91 (lToken, nTokenOffset, nLastToken): 3359 return lToken[nTokenOffset+2]["sValue"].replace("a", "â").replace("A", "Â") 3360def _g_cond_g1_217 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3361 return g_morph(lToken[nTokenOffset], "<start>|,|:D") 3362def _g_sugg_g1_92 (lToken, nTokenOffset, nLastToken): 3363 return "à "+ lToken[nTokenOffset+2]["sValue"].replace("on", "es").replace("ON", "ES").replace("otre", "os").replace("OTRE", "OS").replace("eur", "eurs").replace("EUR", "EURS") + " dépens" 3364def _g_sugg_g1_93 (lToken, nTokenOffset, nLastToken): 3365 return lToken[nLastToken-1+1]["sValue"].replace("é", "ée").replace("É", "ÉE") 3366def _g_cond_g1_218 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3367 return not g_value(lToken[nTokenOffset], "|du|") 3368def _g_cond_g1_219 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3369 return not g_morph(lToken[nTokenOffset], ">(?:appeler|considérer|trouver)/") 3370def _g_cond_g1_220 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3371 return not (g_value(lToken[nTokenOffset+2], "|ou|") and g_value(lToken[nLastToken+1], "|son|ses|")) and g_morph(lToken[nTokenOffset+1], ":D") 3372def _g_cond_g1_221 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3373 return lToken[nTokenOffset+1]["sValue"] != "SA" 3374def _g_cond_g1_222 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3375 return not g_value(lToken[nTokenOffset], "|oh|ah|") and not look(sSentence[lToken[nLastToken]["nEnd"]:], "^ +et là") 3376def _g_cond_g1_223 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3377 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 0, 0) and not (g_value(lToken[nTokenOffset+2], "|a|") and g_value(lToken[nLastToken+1], "|été|")) 3378def _g_cond_g1_224 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3379 return g_value(lToken[nLastToken+1], "|été|") 3380def _g_cond_g1_225 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3381 return not look(sSentence[lToken[nLastToken]["nEnd"]:], "^ +en +heure") 3382def _g_sugg_g1_94 (lToken, nTokenOffset, nLastToken): 3383 return lToken[nTokenOffset+1]["sValue"].replace("o", "a").replace("O", "A") 3384def _g_cond_g1_226 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3385 return g_morphVC(lToken[nTokenOffset+2], ":[NA]") 3386def _g_cond_g1_227 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3387 return not lToken[nTokenOffset+1]["sValue"].isupper() and lToken[nTokenOffset+2]["sValue"].islower() and not g_value(lToken[nTokenOffset+2], "|faire|") 3388def _g_cond_g1_228 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3389 return not lToken[nTokenOffset+1]["sValue"].isupper() and not g_value(lToken[nTokenOffset+2], "|quelques|") 3390def _g_cond_g1_229 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3391 return not g_value(lToken[nTokenOffset], "|que|qu’|") 3392def _g_cond_g1_230 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3393 return lToken[nTokenOffset+2]["sValue"] == "a" 3394def _g_cond_g1_231 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3395 return not (lToken[nTokenOffset+3]["sValue"] == "ce" and g_value(lToken[nLastToken+1], "|moment|")) 3396def _g_sugg_g1_95 (lToken, nTokenOffset, nLastToken): 3397 return lToken[nTokenOffset+1]["sValue"].replace("tt", "t").replace("TT", "T") 3398def _g_cond_g1_232 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3399 return not g_morph(lToken[nTokenOffset+1], ":Q|>(?:profiter|bénéficier|nombre|tant)/") and not g_morph(lToken[nLastToken+1], ">(?:financi[eè]re?|pécuni(?:er|aire)|sociaux)s?/") 3400def _g_cond_g1_233 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3401 return not g_morphVC(lToken[nTokenOffset+1], ">(?:profiter|bénéficier)/") and not g_morph(lToken[nLastToken+1], ">(?:financière|pécuni(?:er|aire)|sociale)/") 3402def _g_sugg_g1_96 (lToken, nTokenOffset, nLastToken): 3403 return lToken[nTokenOffset+1]["sValue"].replace("nud", "nu").replace("NUD", "NU") 3404def _g_cond_g1_234 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3405 return not g_morph(lToken[nTokenOffset], ":(?:D.*:p|B)|>de/") 3406def _g_cond_g1_235 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3407 return not g_value(lToken[nTokenOffset], "|un|une|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs|") 3408def _g_cond_g1_236 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3409 return bCondMemo and hasSimil(lToken[nTokenOffset+2]["sValue"], ":[NA].*:[pi]") 3410def _g_cond_g1_237 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3411 return not g_value(lToken[nTokenOffset], "|%|") and not g_morph(lToken[nTokenOffset], ":B|>(?:pourcent|barre|seuil|aucun|plusieurs|certaine?s|une?)/") 3412def _g_cond_g1_238 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3413 return not g_morph(lToken[nTokenOffset], ":R|>(?:approcher|anniversaire|cap|célébration|commémoration|occasion|passage|programme|terme|classe|délai|échéance|autour|celui|ceux|celle|celles)/") and not g_value(lToken[nLastToken+1], "|de|du|des|d’|") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "% +$") 3414def _g_cond_g1_239 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3415 return not g_morph(lToken[nTokenOffset], ":R|>(?:approcher|cap|passage|programme|terme|classe|autour|celui|ceux|celle|celles|au-delà)/") and not g_value(lToken[nLastToken+1], "|de|du|des|d’|") and not g_value(lToken[nTokenOffset+2], "|35|39|40|48|") 3416def _g_cond_g1_240 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3417 return not g_morph(lToken[nTokenOffset], ":R|>(?:approcher|cap|passage|programme|terme|classe|autour|celui|ceux|celle|celles)/") and not g_value(lToken[nLastToken+1], "|de|du|des|d’|") 3418def _g_cond_g1_241 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3419 return not g_morph(lToken[nTokenOffset], ":E") 3420def _g_sugg_g1_97 (lToken, nTokenOffset, nLastToken): 3421 return lToken[nTokenOffset+2]["sValue"].replace("que", "c").replace("QUE", "C") 3422def _g_cond_g1_242 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3423 return g_morph(lToken[nTokenOffset], ":W") 3424def _g_sugg_g1_98 (lToken, nTokenOffset, nLastToken): 3425 return lToken[nTokenOffset+1]["sValue"].replace("nd", "nt").replace("ND", "NT") 3426def _g_sugg_g1_99 (lToken, nTokenOffset, nLastToken): 3427 return lToken[nLastToken-1+1]["sValue"].replace("nd", "nt").replace("ND", "NT") 3428def _g_cond_g1_243 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3429 return g_morph(lToken[nTokenOffset+1], ":[NA].*:[fe]:[pi]", ":G") 3430def _g_cond_g1_244 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3431 return g_morph(lToken[nTokenOffset+1], ":[DB]") and g_morph(lToken[nTokenOffset+2], ":N", ":[GAWM]") 3432def _g_cond_g1_245 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3433 return not g_value(lToken[nLastToken+1], "|de|d’|des|du|") and not g_value(g_token(lToken, nLastToken+2), "|de|d’|des|du|") 3434def _g_cond_g1_246 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3435 return not g_morph(lToken[nLastToken+1], ":[NA].*:[me]") 3436def _g_cond_g1_247 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3437 return not g_value(lToken[nLastToken+1], "|que|qu’|sûr|davantage|entendu|d’|avant|souvent|longtemps|des|moins|plus|trop|loin|au-delà|") and not g_morph(lToken[nLastToken+1], ":[YAW]") 3438def _g_cond_g1_248 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3439 return not (g_value(lToken[nTokenOffset+1], "|emballé|") and g_value(lToken[nLastToken-1+1], "|pesé|")) and g_morph(lToken[nTokenOffset], ":C|<start>|>,") 3440def _g_cond_g1_249 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3441 return g_morph(lToken[nTokenOffset], ":V", ":A") 3442def _g_cond_g1_250 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3443 return not g_value(lToken[nTokenOffset], "|n’|") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_2p_") 3444def _g_sugg_g1_100 (lToken, nTokenOffset, nLastToken): 3445 return lToken[nTokenOffset+1]["sValue"].replace("a", "").replace("A", "") 3446def _g_cond_g1_251 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3447 return not g_value(lToken[nTokenOffset], "|il|ils|ne|en|y|leur|lui|nous|vous|me|te|se|la|le|les|qui|<start>|,|") 3448def _g_sugg_g1_101 (lToken, nTokenOffset, nLastToken): 3449 return lToken[nTokenOffset+1]["sValue"].replace("c", "").replace("C", "") 3450def _g_sugg_g1_102 (lToken, nTokenOffset, nLastToken): 3451 return lToken[nTokenOffset+1]["sValue"].replace("an", "anc").replace("AN", "ANC") 3452def _g_sugg_g1_103 (lToken, nTokenOffset, nLastToken): 3453 return lToken[nTokenOffset+1]["sValue"].replace("au", "o").replace("AU", "O") 3454def _g_sugg_g1_104 (lToken, nTokenOffset, nLastToken): 3455 return lToken[nTokenOffset+1]["sValue"].replace("o", "au").replace("O", "AU") 3456def _g_cond_g1_252 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3457 return g_morph(lToken[nTokenOffset], ":(?:[123][sp]|Y)", "*") and not g_value(lToken[nLastToken+1], "|civile|commerciale|froide|mondiale|nucléaire|préventive|psychologique|sainte|totale|") 3458def _g_cond_g1_253 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3459 return g_morph(lToken[nTokenOffset], ":D.*:f:s") 3460def _g_sugg_g1_105 (lToken, nTokenOffset, nLastToken): 3461 return lToken[nTokenOffset+1]["sValue"].replace("û", "u") 3462def _g_cond_g1_254 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3463 return g_morph(lToken[nLastToken-1+1], ":[123][sp]", ":[GQ]") 3464def _g_cond_g1_255 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3465 return g_morph(lToken[nTokenOffset+4], ":[123][sp]", ":[GQ]") 3466def _g_cond_g1_256 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3467 return g_morph(lToken[nTokenOffset+5], ":[123][sp]", ":[GQ]") 3468def _g_cond_g1_257 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3469 return not lToken[nTokenOffset+1]["sValue"].isupper() and not lToken[nTokenOffset+2]["sValue"].isupper() and not g_morph(lToken[nTokenOffset], ":E|>le/") 3470def _g_sugg_g1_106 (lToken, nTokenOffset, nLastToken): 3471 return lToken[nTokenOffset+2]["sValue"][:-2]+"là" 3472def _g_sugg_g1_107 (lToken, nTokenOffset, nLastToken): 3473 return lToken[nTokenOffset+1]["sValue"][:-2]+"là" 3474def _g_cond_g1_258 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3475 return g_morph(lToken[nTokenOffset+1], ":V", ":[NA]", 0, -3) 3476def _g_cond_g1_259 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3477 return g_morph(lToken[nTokenOffset+1], ":V...t") 3478def _g_sugg_g1_108 (lToken, nTokenOffset, nLastToken): 3479 return lToken[nTokenOffset+1]["sValue"][:-3]+"-la|" + lToken[nTokenOffset+1]["sValue"][:-3]+" là" 3480def _g_sugg_g1_109 (lToken, nTokenOffset, nLastToken): 3481 return lToken[nTokenOffset+1]["sValue"][:-3]+" là" 3482def _g_cond_g1_260 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3483 return g_morph(lToken[nTokenOffset], ":D|<start>|,") 3484def _g_cond_g1_261 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3485 return g_morph(lToken[nTokenOffset], ":V") and not g_tag(lToken[nTokenOffset], "_en_") 3486def _g_cond_g1_262 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3487 return not g_morph(lToken[nTokenOffset], ">[ld]es/") 3488def _g_cond_g1_263 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3489 return not g_morph(lToken[nTokenOffset], ":3s") 3490def _g_cond_g1_264 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3491 return g_morph(lToken[nTokenOffset], "<start>|:C|>,/") 3492def _g_cond_g1_265 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3493 return g_morph(lToken[nTokenOffset], "<start>|:C|>,/") and g_analyse(lToken[nLastToken-1+1], ":(?:Q|V1.*:Y)", ":N.*:[fe]") 3494def _g_cond_g1_266 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3495 return g_analyse(lToken[nLastToken-1+1], ":(?:Q|V1.*:Y)", ":N.*:[fe]") 3496def _g_cond_g1_267 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3497 return not g_morph(lToken[nTokenOffset], ":(?:3p|D)") 3498def _g_cond_g1_268 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3499 return (lToken[nTokenOffset+1]["sValue"].islower() or g_value(lToken[nTokenOffset], "|<start>|,|")) and lToken[nTokenOffset+2]["sValue"].islower() 3500def _g_cond_g1_269 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3501 return not g_value(lToken[nLastToken+1], "|père|") 3502def _g_cond_g1_270 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3503 return not g_value(lToken[nTokenOffset], "|le|la|les|du|des|au|aux|") 3504def _g_cond_g1_271 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3505 return not g_morph(lToken[nTokenOffset], ":D.*:m:[si]") 3506def _g_cond_g1_272 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3507 return not g_morph(lToken[nTokenOffset], ":V.*:3s") and not look(sSentence0[:lToken[1+nTokenOffset]["nStart"]], "’$") 3508def _g_cond_g1_273 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3509 return not g_morph(lToken[nTokenOffset], ":[VR]|<start>") and not g_morph(lToken[nLastToken+1], ":(?:3s|Ov)") 3510def _g_cond_g1_274 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3511 return not g_value(lToken[nLastToken+1], "|il|ils|elle|elles|iel|iels|") 3512def _g_sugg_g1_110 (lToken, nTokenOffset, nLastToken): 3513 return lToken[nTokenOffset+1]["sValue"][:-1] 3514def _g_cond_g1_275 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3515 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and not g_value(lToken[nTokenOffset+2], "|soit|") and g_morph(lToken[nTokenOffset+2], ":3s") 3516def _g_cond_g1_276 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3517 return not g_morph(lToken[nTokenOffset], ":D") and not g_value(lToken[nLastToken+1], "|depuis|à|") 3518def _g_sugg_g1_111 (lToken, nTokenOffset, nLastToken): 3519 return lToken[nTokenOffset+1]["sValue"].replace("a", "â").replace("A", "Â") 3520def _g_cond_g1_277 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3521 return not g_morph(lToken[nTokenOffset], ":D.*:[me]|>(?:grande|petite)/") 3522def _g_cond_g1_278 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3523 return g_morph(lToken[nLastToken-3+1], ":V") 3524def _g_cond_g1_279 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3525 return not g_morph(lToken[nTokenOffset], ":V") 3526def _g_sugg_g1_112 (lToken, nTokenOffset, nLastToken): 3527 return lToken[nTokenOffset+3]["sValue"].replace("pé", "pê").replace("Pé", "Pê").replace("PÉ", "PÊ") 3528def _g_sugg_g1_113 (lToken, nTokenOffset, nLastToken): 3529 return lToken[nTokenOffset+1]["sValue"].replace("pé", "pê").replace("Pé", "Pê").replace("PÉ", "PÊ") 3530def _g_cond_g1_280 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3531 return not g_morph(lToken[nTokenOffset], ">(?:très|en|un|de|du)/") 3532def _g_cond_g1_281 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3533 return g_morph(lToken[nTokenOffset], ":C|<start>") 3534def _g_cond_g1_282 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3535 return not g_value(lToken[nTokenOffset], "|quelqu’|l’|d’|sauf|") 3536def _g_cond_g1_283 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3537 return not g_morph(lToken[nTokenOffset+2], ">seul/") and not g_morph(lToken[nTokenOffset], ">(?:je|tu|il|on|ne)/") 3538def _g_sugg_g1_114 (lToken, nTokenOffset, nLastToken): 3539 return lToken[nTokenOffset+1]["sValue"].replace("n", "nt").replace("N", "NT") 3540def _g_cond_g1_284 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3541 return not g_value(lToken[nTokenOffset], "|la|en|une|") and not g_value(lToken[nLastToken+1], "|position|dance|") 3542def _g_cond_g1_285 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3543 return g_morph(lToken[nTokenOffset+1], ":Y|<start>") 3544def _g_sugg_g1_115 (lToken, nTokenOffset, nLastToken): 3545 return lToken[nTokenOffset+1]["sValue"].replace("om", "au").replace("OM", "AU") 3546def _g_sugg_g1_116 (lToken, nTokenOffset, nLastToken): 3547 return lToken[nTokenOffset+1]["sValue"].replace("au", "om").replace("AU", "OM") 3548def _g_cond_g1_286 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3549 return not g_value(lToken[nTokenOffset], "|peu|de|") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\bau plus $") 3550def _g_cond_g1_287 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3551 return not g_morph(lToken[nTokenOffset], ":D") and not g_morph(g_token(lToken, nTokenOffset+1-2), ">obtenir/") 3552def _g_cond_g1_288 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3553 return g_morph(lToken[nTokenOffset], ":D.*:[pm]") 3554def _g_cond_g1_289 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3555 return g_morph(lToken[nTokenOffset], ":D.*:[mp]|<start>") 3556def _g_cond_g1_290 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3557 return not g_morph(lToken[nTokenOffset], ">(?:arriver|venir|à|revenir|partir|repartir|aller|de)/") and not look(sSentence[lToken[nLastToken]["nEnd"]:], "^ +[mts]on tour[, ]") 3558def _g_cond_g1_291 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3559 return not g_morph(lToken[nTokenOffset], ">(?:arriver|venir|à|revenir|partir|repartir|aller|de)/") 3560def _g_cond_g1_292 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3561 return not g_value(lToken[nTokenOffset+2], "|à|au|aux|") 3562def _g_cond_g1_293 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3563 return not look(sSentence[lToken[nLastToken]["nEnd"]:], "^ ne s(?:ai[st]|u[ts]|avai(?:s|t|ent)|urent) ") 3564def _g_cond_g1_294 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3565 return g_morphVC(lToken[nTokenOffset+2], ">(?:déduire|penser)/") 3566def _g_cond_g1_295 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3567 return not (g_value(lToken[nTokenOffset+2], "|en|ne|") and g_morph(lToken[nLastToken+1], ":V0e")) 3568def _g_cond_g1_296 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3569 return lToken[nTokenOffset+2]["sValue"].islower() and not (g_morph(lToken[nTokenOffset+2], ">(?:pouvoir|devoir|aller)/") and (g_morph(lToken[nLastToken+1], ":V0e") or g_morph(g_token(lToken, nLastToken+2), ":V0e"))) and not (g_morph(lToken[nTokenOffset+2], ":V0a") and g_value(lToken[nLastToken+1], "|été|")) 3570def _g_cond_g1_297 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3571 return not (g_value(lToken[nTokenOffset+2], "|en|ne|") and g_morph(lToken[nLastToken+1], ":V0e")) 3572def _g_sugg_g1_117 (lToken, nTokenOffset, nLastToken): 3573 return lToken[nTokenOffset+2]["sValue"].replace("éson", "aison").replace("ÉSON", "AISON") 3574def _g_sugg_g1_118 (lToken, nTokenOffset, nLastToken): 3575 return lToken[nTokenOffset+1]["sValue"].replace("è", "ai").replace("È", "AI") 3576def _g_sugg_g1_119 (lToken, nTokenOffset, nLastToken): 3577 return lToken[nLastToken-1+1]["sValue"].replace("ai", "è").replace("AI", "È") 3578def _g_sugg_g1_120 (lToken, nTokenOffset, nLastToken): 3579 return lToken[nTokenOffset+1]["sValue"].replace("ai", "è").replace("AI", "È") 3580def _g_cond_g1_298 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3581 return g_morph(lToken[nTokenOffset], ":(?:R|[123][sp])|<start>") 3582def _g_sugg_g1_121 (lToken, nTokenOffset, nLastToken): 3583 return lToken[nTokenOffset+2]["sValue"].replace("sen", "cen").replace("Cen", "Sen").replace("CEN", "SEN") 3584def _g_cond_g1_299 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3585 return g_morph(lToken[nTokenOffset+3], ":(?:[123]s|Q)") 3586def _g_cond_g1_300 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3587 return not bCondMemo and g_morph(lToken[nTokenOffset+3], ":(?:[123]p|Y|P)") 3588def _g_cond_g1_301 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3589 return not lToken[nTokenOffset+1]["sValue"].isupper() and not g_value(lToken[nTokenOffset], "|ne|il|ils|on|") 3590def _g_sugg_g1_122 (lToken, nTokenOffset, nLastToken): 3591 return suggSimil(lToken[nTokenOffset+2]["sValue"], ":[AWGT]", True) 3592def _g_cond_g1_302 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3593 return not lToken[nTokenOffset+1]["sValue"].isupper() and not g_value(lToken[nTokenOffset], "|ne|il|ils|on|") and not (g_morph(lToken[nTokenOffset+2], ":V0") and g_morph(lToken[nTokenOffset+3], ":[QY]")) 3594def _g_cond_g1_303 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3595 return lToken[nLastToken-2+1]["sValue"].islower() and g_morph(lToken[nTokenOffset+2], ":M") 3596def _g_cond_g1_304 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3597 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[si]") 3598def _g_cond_g1_305 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3599 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[pi]") 3600def _g_cond_g1_306 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3601 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[pi]", ":3p") 3602def _g_cond_g1_307 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3603 return not (g_value(lToken[nLastToken-1+1], "|soit|") and look(sSentence[lToken[nLastToken]["nEnd"]:], " soit ")) 3604def _g_cond_g1_308 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3605 return g_morph(lToken[nLastToken+1], ":[GY]|<end>", ">à/") and not g_value(lToken[nTokenOffset], "|il|on|elle|n’|m’|t’|s’|") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)quel(?:s|les?|) qu[’ ]$") and not look(sSentence[lToken[nLastToken]["nEnd"]:], " soit ") 3606def _g_cond_g1_309 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3607 return not look(sSentence[lToken[nLastToken]["nEnd"]:], " soit ") 3608def _g_cond_g1_310 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3609 return g_morph(lToken[nTokenOffset], ":[YQ]|>(?:avec|contre|par|pour|sur)/|<start>|>,") 3610def _g_cond_g1_311 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3611 return g_morph(lToken[nTokenOffset+1], "[123][sp]") 3612def _g_cond_g1_312 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3613 return g_morph(lToken[nTokenOffset], ":(?:V|Cs|R)", ":(?:[NA].*:[pi]|Ov)") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") 3614def _g_cond_g1_313 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3615 return not g_value(lToken[nTokenOffset], "|ils|elles|iels|leur|lui|nous|vous|m’|t’|s’|l’|") and not g_tag(lToken[nTokenOffset], "_ceque_") 3616def _g_cond_g1_314 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3617 return not g_morph(lToken[nTokenOffset], ":D.*:m:s") 3618def _g_sugg_g1_123 (lToken, nTokenOffset, nLastToken): 3619 return lToken[nTokenOffset+1]["sValue"].replace("u", "û").replace("U", "Û") 3620def _g_sugg_g1_124 (lToken, nTokenOffset, nLastToken): 3621 return lToken[nTokenOffset+3]["sValue"].replace("u", "û").replace("U", "Û") 3622def _g_cond_g1_315 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3623 return not (g_value(lToken[nTokenOffset+2], "|temps|") and g_value(lToken[nTokenOffset], "|temps|")) 3624def _g_cond_g1_316 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3625 return g_value(lToken[nLastToken+1], "|tel|tels|telle|telles|") 3626def _g_cond_g1_317 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3627 return not g_value(lToken[nTokenOffset], "|je|tu|il|elle|iel|on|ne|n’|le|la|les|l’|me|m’|te|t’|se|s’|") 3628def _g_sugg_g1_125 (lToken, nTokenOffset, nLastToken): 3629 return lToken[nTokenOffset+1]["sValue"].replace("au", "ô").replace("AU", "Ô") 3630def _g_sugg_g1_126 (lToken, nTokenOffset, nLastToken): 3631 return lToken[nTokenOffset+1]["sValue"].replace("è", "ê").replace("È", "Ê") 3632def _g_cond_g1_318 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3633 return not (g_morph(lToken[nTokenOffset+2], ">trait/") and g_morph(lToken[nTokenOffset+3], ">(?:facial|vertical|horizontal|oblique|diagonal)/")) 3634def _g_cond_g1_319 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3635 return g_morph(lToken[nTokenOffset], ":(?:D|A.*:m)") 3636def _g_cond_g1_320 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3637 return g_morph(lToken[nTokenOffset], ":D|<start>|>,") 3638def _g_cond_g1_321 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3639 return not lToken[nTokenOffset+2]["sValue"].istitle() and not g_morph(lToken[nTokenOffset], ":O[os]|>(?:[ndmts]e|aller|falloir|pouvoir|savoir|vouloir|préférer|faire|penser|imaginer|souhaiter|désirer|espérer|de|à)/") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\b[ndmts](?:e |’(?:en |y ))(?:pas |jamais |) *$") 3640def _g_cond_g1_322 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3641 return not g_value(lToken[nLastToken+1], "|part|") 3642def _g_cond_g1_323 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3643 return not g_morph(lToken[nTokenOffset], ">agir/") 3644def _g_cond_g1_324 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3645 return not g_value(lToken[nTokenOffset], "|j’|n’|il|elle|on|") 3646def _g_cond_g1_325 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3647 return not g_value(lToken[nLastToken-1+1], "|avenu|") 3648def _g_cond_g1_326 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3649 return not g_value(lToken[nLastToken-1+1], "|avenue|") 3650def _g_cond_g1_327 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3651 return not g_value(lToken[nLastToken-1+1], "|avenus|") 3652def _g_cond_g1_328 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3653 return not g_value(lToken[nLastToken-1+1], "|avenues|") 3654def _g_cond_g1_329 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3655 return lToken[nTokenOffset+1]["sValue"].lower() != lToken[nLastToken-1+1]["sValue"].lower() 3656def _g_cond_g1_330 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3657 return lToken[nTokenOffset+1]["sValue"].lower() != lToken[nLastToken-2+1]["sValue"].lower() 3658def _g_sugg_g1_127 (lToken, nTokenOffset, nLastToken): 3659 return suggSing(lToken[nTokenOffset+3]["sValue"]) 3660def _g_sugg_g1_128 (lToken, nTokenOffset, nLastToken): 3661 return lToken[nTokenOffset+2]["sValue"][:-1] 3662def _g_cond_g1_331 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3663 return not lToken[nTokenOffset+2]["sValue"].isupper() and not g_value(lToken[nLastToken+1], "|saint|") 3664def _g_sugg_g1_129 (lToken, nTokenOffset, nLastToken): 3665 return lToken[nTokenOffset+2]["sValue"].lower() 3666def _g_cond_g1_332 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3667 return not lToken[nTokenOffset+2]["sValue"].isupper() and not g_value(lToken[nLastToken+1], "|gras|saint|") 3668def _g_cond_g1_333 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3669 return not g_morph(lToken[nTokenOffset+1], ":M1") and not lToken[nTokenOffset+2]["sValue"].isupper() 3670def _g_cond_g1_334 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3671 return not lToken[nTokenOffset+2]["sValue"].isupper() 3672def _g_cond_g1_335 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3673 return lToken[nTokenOffset+1]["sValue"] == "assemblée" 3674def _g_sugg_g1_130 (lToken, nTokenOffset, nLastToken): 3675 return lToken[nTokenOffset+3]["sValue"].capitalize() 3676def _g_cond_g1_336 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3677 return lToken[nTokenOffset+4]["sValue"].islower() 3678def _g_sugg_g1_131 (lToken, nTokenOffset, nLastToken): 3679 return lToken[nTokenOffset+4]["sValue"].capitalize() 3680def _g_cond_g1_337 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3681 return lToken[nTokenOffset+1]["sValue"] == "état" 3682def _g_cond_g1_338 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3683 return lToken[nTokenOffset+1]["sValue"] == "états" 3684def _g_cond_g1_339 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3685 return lToken[nTokenOffset+3]["sValue"] == "état" 3686def _g_cond_g1_340 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3687 return lToken[nTokenOffset+4]["sValue"] == "état" 3688def _g_cond_g1_341 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3689 return lToken[nTokenOffset+1]["sValue"][0:1] == "é" 3690def _g_sugg_g1_132 (lToken, nTokenOffset, nLastToken): 3691 return lToken[nTokenOffset+1]["sValue"].replace("é", "É") 3692def _g_cond_g1_342 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3693 return lToken[nTokenOffset+1]["sValue"].istitle() and g_morph(lToken[nTokenOffset], ":N", ":(?:A|V0e|D|R|B|X)") 3694def _g_sugg_g1_133 (lToken, nTokenOffset, nLastToken): 3695 return lToken[nTokenOffset+1]["sValue"].lower() 3696def _g_cond_g1_343 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3697 return lToken[nTokenOffset+1]["sValue"].islower() and not lToken[nTokenOffset+1]["sValue"].startswith("canadienne") and ( g_value(lToken[nTokenOffset], "|certains|certaines|ce|cet|cette|ces|des|les|nos|vos|leurs|quelques|plusieurs|chaque|une|aux|la|ma|ta|sa|") or ( g_morph(lToken[nTokenOffset], ":B:e:p") and not g_morph(g_token(lToken, nTokenOffset+1-2), ">numéro/") ) or ( g_value(lToken[nTokenOffset], "|l’|") and g_morph(lToken[nTokenOffset+1], ":N.*:f:[si]") ) or ( g_value(lToken[nTokenOffset], "|de|d’|") and g_morph(g_token(lToken, nTokenOffset+1-2), ">(?:beaucoup|énormément|multitude|tant|tellement|poignée|groupe|car|bus|équipe|plus|moins|pas|trop|majorité|millier|million|centaine|dizaine|douzaine|combien|photo|complot|enlèvement|témoignage|viol|meurtre|assassinat|duel|tiers|quart|pourcentage|proportion|génération|portrait|rencontre|reportage|parole|communauté|vie|rassemblement|bataillon|armée|émigration|immigration|invasion|trio|couple|famille|descendante|action|attente|désir|souhait|vote|volonté)/") ) or ( g_value(lToken[nTokenOffset], "|un|") and not g_value(g_token(lToken, nTokenOffset+1-2), "|dans|numéro|") and not look(sSentence[lToken[nLastToken]["nEnd"]:], "(?:approximatif|correct|courant|parfait|facile|aisé|impeccable|incompréhensible)") ) ) 3698def _g_sugg_g1_134 (lToken, nTokenOffset, nLastToken): 3699 return lToken[nTokenOffset+1]["sValue"].capitalize() 3700def _g_sugg_g1_135 (lToken, nTokenOffset, nLastToken): 3701 return lToken[nTokenOffset+2]["sValue"].capitalize() 3702def _g_cond_g1_344 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3703 return not lToken[nTokenOffset+3]["sValue"].isupper() 3704def _g_sugg_g1_136 (lToken, nTokenOffset, nLastToken): 3705 return lToken[nTokenOffset+3]["sValue"].lower() 3706def _g_cond_g1_345 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3707 return lToken[nTokenOffset+1]["sValue"].islower() and lToken[nTokenOffset+2]["sValue"].islower() 3708def _g_cond_g1_346 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3709 return g_morph(lToken[nTokenOffset], ":(?:D.*:p|R|C)") 3710def _g_cond_g1_347 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3711 return not g_morph(lToken[nTokenOffset], ">(?:d[eu]|avant|après|malgré)/") 3712def _g_cond_g1_348 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3713 return bCondMemo and hasFemForm(lToken[nTokenOffset+4]["sValue"]) 3714def _g_sugg_g1_137 (lToken, nTokenOffset, nLastToken): 3715 return suggMasPlur(lToken[nTokenOffset+4]["sValue"], True) 3716def _g_cond_g1_349 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3717 return g_morph(lToken[nTokenOffset], ":", ":(?:R|[123][sp]|Q)|>(?:[nv]ous|eux)/") 3718def _g_cond_g1_350 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3719 return bCondMemo and hasFemForm(lToken[nTokenOffset+3]["sValue"]) 3720def _g_sugg_g1_138 (lToken, nTokenOffset, nLastToken): 3721 return suggMasPlur(lToken[nTokenOffset+3]["sValue"], True) 3722def _g_sugg_g1_139 (lToken, nTokenOffset, nLastToken): 3723 return suggFemPlur(lToken[nTokenOffset+4]["sValue"], True) 3724def _g_sugg_g1_140 (lToken, nTokenOffset, nLastToken): 3725 return suggFemPlur(lToken[nTokenOffset+3]["sValue"], True) 3726def _g_sugg_g1_141 (lToken, nTokenOffset, nLastToken): 3727 return suggMasSing(lToken[nTokenOffset+3]["sValue"], True) 3728def _g_cond_g1_351 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3729 return g_morph(lToken[nTokenOffset], ":R", ":D.*:p") 3730def _g_sugg_g1_142 (lToken, nTokenOffset, nLastToken): 3731 return suggMasSing(lToken[nTokenOffset+2]["sValue"], True) 3732def _g_cond_g1_352 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3733 return g_morph(lToken[nTokenOffset], ":R") 3734def _g_sugg_g1_143 (lToken, nTokenOffset, nLastToken): 3735 return suggMasPlur(lToken[nTokenOffset+2]["sValue"], True) 3736def _g_sugg_g1_144 (lToken, nTokenOffset, nLastToken): 3737 return suggFemSing(lToken[nTokenOffset+3]["sValue"], True) 3738def _g_cond_g1_353 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3739 return g_morph(lToken[nTokenOffset+3], ":[NA].*:f:p") 3740def _g_sugg_g1_145 (lToken, nTokenOffset, nLastToken): 3741 return suggFemSing(lToken[nTokenOffset+2]["sValue"], True) 3742def _g_cond_g1_354 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3743 return bCondMemo and g_morph(lToken[nTokenOffset+2], ":[NA].*:f:p") 3744def _g_cond_g1_355 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3745 return g_morph(lToken[nTokenOffset+3], ":[NA].*:f:s") 3746def _g_sugg_g1_146 (lToken, nTokenOffset, nLastToken): 3747 return suggFemPlur(lToken[nTokenOffset+2]["sValue"], True) 3748def _g_cond_g1_356 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3749 return bCondMemo and g_morph(lToken[nTokenOffset+2], ":[NA].*:f:s") 3750def _g_cond_g1_357 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3751 return g_morph(lToken[nTokenOffset+3], ">[aâeéêiîoôuœæ]") 3752def _g_cond_g1_358 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3753 return g_analyse(lToken[nLastToken-1+1], ":V") 3754def _g_sugg_g1_147 (lToken, nTokenOffset, nLastToken): 3755 return suggVerbTense(lToken[nTokenOffset+3]["sValue"], ":E", ":2p") 3756def _g_sugg_g1_148 (lToken, nTokenOffset, nLastToken): 3757 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":2s") 3758def _g_cond_g1_359 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3759 return g_morph(lToken[nLastToken-1+1], ":V") 3760def _g_sugg_g1_149 (lToken, nTokenOffset, nLastToken): 3761 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":m:s") 3762def _g_sugg_g1_150 (lToken, nTokenOffset, nLastToken): 3763 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":m:p") 3764def _g_sugg_g1_151 (lToken, nTokenOffset, nLastToken): 3765 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":f:s") 3766def _g_sugg_g1_152 (lToken, nTokenOffset, nLastToken): 3767 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":f:p") 3768def _g_cond_g1_360 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3769 return g_morph(lToken[nLastToken-1+1], ":V[123].*:Iq.*:[32]s") 3770def _g_sugg_g1_153 (lToken, nTokenOffset, nLastToken): 3771 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"]) 3772def _g_cond_g1_361 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3773 return not g_value(lToken[nTokenOffset], "|n’importe|ce|se|") and not g_morph(lToken[nTokenOffset], ":R") 3774def _g_sugg_g1_154 (lToken, nTokenOffset, nLastToken): 3775 return "l’a " + suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":m:s") + "|la " + lToken[nTokenOffset+3]["sValue"][:-2] + "ait" 3776def _g_cond_g1_362 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3777 return lToken[nLastToken-2+1]["sValue"].isdigit() and lToken[nLastToken-2+1]["sValue"] != "1" and lToken[nLastToken-2+1]["sValue"] != "01" 3778def _g_cond_g1_363 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3779 return not g_morph(lToken[nLastToken+1], ":A.*:[me]:[pi]") 3780def _g_cond_g1_364 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3781 return not g_morph(lToken[nLastToken+1], ":A.*:[fe]:[pi]") and not (g_value(lToken[nLastToken-1+1], "|année|") and re.search("^[0-9]+$", lToken[nLastToken+1]["sValue"])) 3782def _g_cond_g1_365 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3783 return not g_morph(lToken[nLastToken+1], ":A.*:[fe]:[pi]") 3784def _g_da_g1_3 (lToken, nTokenOffset, nLastToken): 3785 return g_define(lToken[nTokenOffset+1], ":LP") 3786def _g_da_g1_4 (lToken, nTokenOffset, nLastToken): 3787 return g_define(lToken[nTokenOffset+1], ":G:R:LR") 3788def _g_cond_g1_366 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3789 return not g_value(lToken[nLastToken+1], "|que|qu’|") 3790def _g_cond_g1_367 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3791 return not g_value(lToken[nTokenOffset], "|ne|n’|") 3792def _g_da_g1_5 (lToken, nTokenOffset, nLastToken): 3793 return g_define(lToken[nTokenOffset+1], ":LN:m:p") 3794def _g_cond_g1_368 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3795 return g_morph(lToken[nTokenOffset], ":[NV]", ":A:[em]:[is]") 3796def _g_da_g1_6 (lToken, nTokenOffset, nLastToken): 3797 return g_exclude(lToken[nTokenOffset+1], ":N") 3798def _g_cond_g1_369 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3799 return not g_value(lToken[nTokenOffset], "|une|la|cet|cette|ma|ta|sa|notre|votre|leur|de|quelque|certaine|") 3800def _g_cond_g1_370 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3801 return not g_morph(lToken[nLastToken+1], ":E") 3802def _g_da_g1_7 (lToken, nTokenOffset, nLastToken): 3803 return g_define(lToken[nTokenOffset+2], ">numéro/:N:f:s") 3804def _g_cond_g1_371 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3805 return g_morph(lToken[nTokenOffset+1], ":[NA]", ":G", 0, -3) 3806def _g_tp_g1_3 (lToken, nTokenOffset, nLastToken): 3807 return lToken[nTokenOffset+1]["sValue"][:-3] 3808def _g_da_g1_8 (lToken, nTokenOffset, nLastToken): 3809 return g_define(lToken[nTokenOffset+1], ":B:e:p") 3810def _g_cond_g1_372 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3811 return not g_value(lToken[nTokenOffset], "|d’|") 3812def _g_cond_g1_373 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3813 return g_morph(lToken[nTokenOffset], ":[NAQR]|>que/") 3814def _g_cond_g1_374 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3815 return g_morph(lToken[nTokenOffset], ":[NA]", ":V0") 3816def _g_cond_g1_375 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3817 return g_morph(lToken[nTokenOffset], ":[NA]", ":V0") and not g_morph(lToken[nLastToken+1], ":(?:Ov|3s)") 3818def _g_cond_g1_376 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3819 return g_morph(lToken[nTokenOffset], ":[NA]", ":V0") and not g_morph(lToken[nLastToken+1], ":(?:Ov|1p)") 3820def _g_cond_g1_377 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3821 return g_morph(lToken[nTokenOffset], ":[NA]", ":V0") and not g_morph(lToken[nLastToken+1], ":(?:Ov|2p)") 3822def _g_cond_g1_378 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3823 return g_morph(lToken[nTokenOffset], ":[NA]", ":V0") and not g_morph(lToken[nLastToken+1], ":(?:Ov|3p)") 3824def _g_cond_g1_379 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3825 return g_morph(lToken[nTokenOffset], ":V[123]") 3826def _g_cond_g1_380 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3827 return not g_morph(lToken[nTokenOffset], ":D.*:[me]:[si]") 3828def _g_cond_g1_381 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3829 return g_morph(lToken[nLastToken+1], ":A") 3830def _g_cond_g1_382 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3831 return not g_morph(lToken[nTokenOffset], ":Ov|>(?:il|on|elle)|>d’") 3832def _g_cond_g1_383 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3833 return not g_value(lToken[nTokenOffset], "|en|de|d’|") 3834def _g_cond_g1_384 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3835 return not g_morph(lToken[nTokenOffset], ":(?:X|Ov)") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_2s_") 3836def _g_cond_g1_385 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3837 return g_morph(lToken[nTokenOffset+2], ":N.*:[me]:[si]") 3838def _g_cond_g1_386 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3839 return g_morph(lToken[nTokenOffset+2], ":N.*:[fe]:[si]") 3840def _g_cond_g1_387 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3841 return g_morph(lToken[nTokenOffset+2], ":N.*:[me]:[pi]") 3842def _g_cond_g1_388 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3843 return g_morph(lToken[nTokenOffset+2], ":N.*:[fe]:[pi]") 3844def _g_cond_g1_389 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3845 return not g_morph(lToken[nTokenOffset], ":(?:D.*:p|N|V)") 3846def _g_cond_g1_390 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3847 return not g_morph(lToken[nTokenOffset], ":D.*:f:[si]") 3848def _g_cond_g1_391 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3849 return g_morph(lToken[nTokenOffset], ":(?:R|C[sc])") 3850def _g_cond_g1_392 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3851 return g_morph(lToken[nTokenOffset+3], ":[AW]") and not g_morph(lToken[nTokenOffset], ":D") 3852def _g_cond_g1_393 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3853 return g_morph(lToken[nTokenOffset], ":(?:V|N:f)", ":G") 3854def _g_cond_g1_394 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3855 return g_morph(lToken[nTokenOffset], ":[NV]", ":D.*:[fe]:[si]") 3856def _g_cond_g1_395 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3857 return g_value(lToken[nTokenOffset], "|recettes|réponses|solutions|") 3858def _g_cond_g1_396 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3859 return not (g_morph(lToken[nTokenOffset+1], ":[123][sp]") and g_morph(lToken[nTokenOffset], ":O[sv]")) 3860def _g_da_g1_9 (lToken, nTokenOffset, nLastToken): 3861 return g_select(lToken[nTokenOffset+1], ":[NA]") 3862def _g_da_g1_10 (lToken, nTokenOffset, nLastToken): 3863 return g_select(lToken[nTokenOffset+1], ":N") 3864def _g_cond_g1_397 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3865 return g_morph(lToken[nTokenOffset+1], ":N") and not g_morph(lToken[nLastToken+1], ":A.*:[me]:[si]") 3866def _g_cond_g1_398 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3867 return g_morph(lToken[nTokenOffset+1], ":N") and not g_morph(lToken[nLastToken+1], ":A.*:[fe]:[si]") 3868def _g_cond_g1_399 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3869 return g_morph(lToken[nTokenOffset], ":(?:N|A|Q|W|V0e)", ":D") 3870def _g_cond_g1_400 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3871 return g_morph(lToken[nTokenOffset], ":[NA]", ":D") 3872def _g_cond_g1_401 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3873 return not bCondMemo and g_morph(lToken[nTokenOffset], ":D|>(?:être|devenir|redevenir|rester|sembler|demeurer|para[îi]tre)") 3874def _g_da_g1_11 (lToken, nTokenOffset, nLastToken): 3875 return g_define(lToken[nTokenOffset+1], ":A:e:i") 3876def _g_cond_g1_402 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3877 return lToken[nTokenOffset+2]["sValue"].istitle() and g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) or re.search("^[MDCLXVI]+$", lToken[nTokenOffset+2]["sValue"]) 3878def _g_cond_g1_403 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3879 return lToken[nTokenOffset+2]["sValue"].istitle() 3880def _g_cond_g1_404 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3881 return lToken[nTokenOffset+3]["sValue"].istitle() 3882def _g_cond_g1_405 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3883 return lToken[nTokenOffset+2]["sValue"].istitle() and lToken[nTokenOffset+4]["sValue"].istitle() 3884def _g_cond_g1_406 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3885 return g_morph(lToken[nTokenOffset+2], ":1s") 3886def _g_cond_g1_407 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3887 return g_morph(lToken[nTokenOffset+2], ":2s") 3888def _g_cond_g1_408 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3889 return g_morph(lToken[nTokenOffset+2], ":3s") 3890def _g_cond_g1_409 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3891 return g_morph(lToken[nTokenOffset+2], ":1p") 3892def _g_cond_g1_410 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3893 return g_morph(lToken[nTokenOffset+2], ":2p") 3894def _g_cond_g1_411 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3895 return g_morph(lToken[nTokenOffset+2], ":3p") 3896def _g_da_g1_12 (lToken, nTokenOffset, nLastToken): 3897 return g_define(lToken[nTokenOffset+2], ":LV") 3898def _g_da_g1_13 (lToken, nTokenOffset, nLastToken): 3899 return g_define(lToken[nTokenOffset+3], ":LV") 3900def _g_cond_g1_412 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3901 return g_morphVC(lToken[nTokenOffset+1], ">(?:être|devenir|rester)") 3902def _g_cond_g1_413 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3903 return g_morph(lToken[nLastToken+1], ":[QY]") 3904def _g_cond_g1_414 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3905 return g_morphVC(lToken[nTokenOffset+1], ">(?:être|devenir|rester)") and g_morph(lToken[nLastToken+1], ":[QY]") 3906def _g_cond_g1_415 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3907 return g_morph(lToken[nTokenOffset], ":(?:V0e|N)") and g_morph(lToken[nLastToken+1], ":[AQ]") 3908def _g_cond_g1_416 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3909 return g_morphVC(lToken[nTokenOffset+1], ":V0a") 3910def _g_cond_g1_417 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3911 return g_morphVC(lToken[nTokenOffset+1], ":V0a") and g_morph(lToken[nLastToken+1], ":[QY]") 3912def _g_cond_g1_418 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3913 return g_morph(lToken[nTokenOffset], ":[VW]", ":G") 3914def _g_cond_g1_419 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3915 return g_morph(lToken[nTokenOffset], ":V") and not g_value(lToken[nLastToken+1], "|qui|de|d’|") 3916def _g_cond_g1_420 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3917 return not g_value(lToken[nLastToken+1], "|qui|de|d’|") 3918def _g_cond_g1_421 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3919 return g_morph(lToken[nTokenOffset+1], ":V") 3920def _g_cond_g1_422 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3921 return not g_value(lToken[nLastToken+1], "|de|d’|des|du|") 3922def _g_cond_g1_423 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3923 return g_morph(lToken[nLastToken+1], ":[AW]") 3924def _g_cond_g1_424 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3925 return not g_value(lToken[nTokenOffset], "|un|le|ce|du|mon|ton|son|notre|votre|leur|") 3926def _g_cond_g1_425 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3927 return not (g_value(lToken[nTokenOffset+2], "|bien|") and g_value(lToken[nLastToken+1], "|que|qu’|")) and not g_value(lToken[nTokenOffset+2], "|tant|") 3928def _g_cond_g1_426 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3929 return g_morph(lToken[nLastToken+1], ":A", ":G") 3930def _g_cond_g1_427 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3931 return not g_morph(lToken[nTokenOffset], ":D.*:(?:m:s|[me]:p)") 3932def _g_cond_g1_428 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3933 return g_morph(lToken[nTokenOffset+2], ":W", ":3p") 3934def _g_cond_g1_429 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3935 return g_morph(lToken[nTokenOffset+4], ":W", ":A") 3936def _g_cond_g1_430 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3937 return not g_morph(lToken[nTokenOffset], ":D.*:m") 3938def _g_cond_g1_431 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3939 return g_morph(lToken[nTokenOffset+1], ":W", ":(?:3p|N)") 3940def _g_cond_pp2_1 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3941 return g_morph(lToken[nTokenOffset], ":N", ":D") 3942def _g_cond_pp2_2 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3943 return not g_morph(lToken[nTokenOffset], ":R") 3944def _g_cond_pp2_3 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3945 return g_morph(lToken[nTokenOffset], ":N", ":V") 3946def _g_cond_pp2_4 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3947 return g_morph(lToken[nTokenOffset+1], ":N") 3948def _g_cond_pp2_5 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3949 return not g_value(lToken[nTokenOffset], "|je|tu|n’|il|on|elle|iel|") 3950def _g_cond_pp2_6 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3951 return not g_value(lToken[nTokenOffset], "|j’|tu|il|elle|on|n’|") 3952def _g_cond_pp2_7 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3953 return not g_value(lToken[nLastToken+1], "|de|du|d’|des|") 3954def _g_cond_pp2_8 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3955 return not g_morph(lToken[nTokenOffset], ":D") 3956def _g_cond_pp2_9 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3957 return not g_value(lToken[nTokenOffset], "|ça|cela|ceci|me|m’|te|t’|lui|nous|vous|leur|ne|n’|") 3958def _g_cond_pp2_10 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3959 return not g_value(lToken[nTokenOffset], "|il|ne|n’|") 3960def _g_cond_pp2_11 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3961 return not g_morph(lToken[nTokenOffset], ":D") and not g_morph(lToken[nLastToken+1], ":A.*:[fe]:[si]") 3962def _g_cond_pp2_12 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3963 return g_morph(lToken[nTokenOffset+1], ":[123]p") or (lToken[nTokenOffset+1]["sValue"] == "fait" and g_value(lToken[nTokenOffset], "|on|")) 3964def _g_cond_pp2_13 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3965 return g_morph(lToken[nTokenOffset+1], ":[123]p") 3966def _g_cond_pp2_14 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3967 return g_morph(lToken[nLastToken-2+1], ":[123]s") 3968def _g_cond_pp3_1 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3969 return not g_value(lToken[nTokenOffset+1], "|que|qu’|") 3970def _g_cond_pp3_2 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3971 return bCondMemo 3972def _g_cond_pp3_3 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3973 return g_morph(lToken[nLastToken-3+1], ":[123][sp]") 3974def _g_da_pp3_1 (lToken, nTokenOffset, nLastToken): 3975 return g_select(lToken[nLastToken-2+1], ":D") and g_exclude(lToken[nLastToken-1+1], ":[123][sp]") 3976def _g_cond_pp3_4 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3977 return g_morph(lToken[nTokenOffset+3], ":[NA]", ":(?:G|V0)") and g_morph(lToken[nTokenOffset+4], ":[NA]", ":(?:[PG]|V[023])") 3978def _g_da_pp3_2 (lToken, nTokenOffset, nLastToken): 3979 return g_exclude(lToken[nTokenOffset+4], ":V") 3980def _g_cond_pp3_5 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3981 return g_morph(lToken[nTokenOffset+2], ":p") and g_morph(lToken[nTokenOffset+3], ":[NA].*:p", ":(?:G|V0)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:p", ":(?:[PGQ]|V[023])") 3982def _g_cond_pp3_6 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3983 return not bCondMemo and g_morph(lToken[nTokenOffset+2], ":s") and g_morph(lToken[nTokenOffset+3], ":[NA].*:s", ":(?:G|V0)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:s", ":(?:[PGQ]|V[023])") and not g_morph(lToken[nTokenOffset+5], ":A.*:[si]") 3984def _g_da_pp3_3 (lToken, nTokenOffset, nLastToken): 3985 return g_exclude(lToken[nTokenOffset+3], ":V") 3986def _g_cond_pp3_7 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3987 return not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], ":O[vs]") 3988def _g_da_pp3_4 (lToken, nTokenOffset, nLastToken): 3989 return g_exclude(lToken[nTokenOffset+2], ":V") and g_exclude(lToken[nTokenOffset+3], ":V") 3990def _g_da_pp3_5 (lToken, nTokenOffset, nLastToken): 3991 return g_define(lToken[nTokenOffset+2], ":LV") 3992def _g_cond_pp3_8 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3993 return not g_value(lToken[nTokenOffset+1], "|avoir|avoirs|") and not g_morph(lToken[nTokenOffset], ":D") 3994def _g_da_pp3_6 (lToken, nTokenOffset, nLastToken): 3995 return g_rewrite(lToken[nTokenOffset+2], ":A", "") 3996def _g_cond_pp3_9 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3997 return not g_value(lToken[nTokenOffset+1], "|être|êtres|") and not g_morph(lToken[nTokenOffset], ":D") 3998def _g_cond_pp3_10 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 3999 return not (g_morph(lToken[nTokenOffset], ":V0a") and g_value(lToken[nLastToken+1], "|fait|")) 4000def _g_cond_g2_1 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4001 return g_morphVC(lToken[nTokenOffset+2], ">avoir/") 4002def _g_cond_g2_2 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4003 return lToken[nLastToken-1+1]["sValue"] != "A" and not g_tag_before(lToken[nTokenOffset+1], dTags, "_àCOI_") and not g_value(lToken[nLastToken+1], "|été|") 4004def _g_cond_g2_3 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4005 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_propsub_") and not g_morph(lToken[nTokenOffset+1], ":[YNA]") and not g_value(lToken[nLastToken+1], "|été|") 4006def _g_cond_g2_4 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4007 return lToken[nLastToken-1+1]["sValue"] != "A" and not g_tag_before(lToken[nTokenOffset+1], dTags, "_propsub_") and not g_morph(lToken[nLastToken+1], ":Q") 4008def _g_cond_g2_5 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4009 return not g_value(lToken[nTokenOffset+1], "|rendez-vous|") 4010def _g_cond_g2_6 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4011 return g_morph(lToken[nTokenOffset], ":Cs|<start>|>,") 4012def _g_sugg_g2_1 (lToken, nTokenOffset, nLastToken): 4013 return lToken[nTokenOffset+2]["sValue"].replace("â", "a").replace("Â", "A") 4014def _g_sugg_g2_2 (lToken, nTokenOffset, nLastToken): 4015 return lToken[nTokenOffset+2]["sValue"].replace("a", "â").replace("A", "Â") 4016def _g_sugg_g2_3 (lToken, nTokenOffset, nLastToken): 4017 return lToken[nTokenOffset+2]["sValue"].replace("oc", "o") 4018def _g_sugg_g2_4 (lToken, nTokenOffset, nLastToken): 4019 return lToken[nTokenOffset+1]["sValue"].replace("oc", "o") 4020def _g_sugg_g2_5 (lToken, nTokenOffset, nLastToken): 4021 return lToken[nTokenOffset+3]["sValue"].replace("ro", "roc") 4022def _g_cond_g2_7 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4023 return g_morphVC(lToken[nTokenOffset+1], ">faire") 4024def _g_cond_g2_8 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4025 return not g_morph(lToken[nLastToken+1], ":Y") 4026def _g_sugg_g2_6 (lToken, nTokenOffset, nLastToken): 4027 return lToken[nTokenOffset+3]["sValue"].replace("auspice", "hospice") 4028def _g_sugg_g2_7 (lToken, nTokenOffset, nLastToken): 4029 return lToken[nTokenOffset+1]["sValue"].replace("auspice", "hospice").replace("Auspice", "Hospice") 4030def _g_sugg_g2_8 (lToken, nTokenOffset, nLastToken): 4031 return lToken[nTokenOffset+1]["sValue"].replace("âill", "ay").replace("aill", "ay").replace("ÂILL", "AY").replace("AILL", "AY") 4032def _g_sugg_g2_9 (lToken, nTokenOffset, nLastToken): 4033 return "arrière-"+lToken[nTokenOffset+2]["sValue"].replace("c", "").replace("C", "") 4034def _g_sugg_g2_10 (lToken, nTokenOffset, nLastToken): 4035 return lToken[nTokenOffset+1]["sValue"].replace("c", "").replace("C", "") 4036def _g_cond_g2_9 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4037 return not look(sSentence[lToken[nLastToken]["nEnd"]:], "^ +des accusés") 4038def _g_sugg_g2_11 (lToken, nTokenOffset, nLastToken): 4039 return lToken[nTokenOffset+3]["sValue"].replace("an", "anc").replace("AN", "ANC") 4040def _g_sugg_g2_12 (lToken, nTokenOffset, nLastToken): 4041 return lToken[nTokenOffset+1]["sValue"].replace("an", "anc").replace("AN", "ANC") 4042def _g_cond_g2_10 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4043 return (g_morph(lToken[nLastToken+1], ":[AQR]") or g_morph(lToken[nTokenOffset], ":V", ">être")) and not g_value(lToken[nLastToken+1], "|que|qu’|sûr|") 4044def _g_sugg_g2_13 (lToken, nTokenOffset, nLastToken): 4045 return lToken[nTokenOffset+1]["sValue"].replace("ite", "itte") 4046def _g_sugg_g2_14 (lToken, nTokenOffset, nLastToken): 4047 return lToken[nLastToken-1+1]["sValue"].replace("itte", "ite") 4048def _g_sugg_g2_15 (lToken, nTokenOffset, nLastToken): 4049 return lToken[nTokenOffset+1]["sValue"].replace("itte", "ite") 4050def _g_sugg_g2_16 (lToken, nTokenOffset, nLastToken): 4051 return lToken[nTokenOffset+1]["sValue"].replace("ane", "anne") 4052def _g_sugg_g2_17 (lToken, nTokenOffset, nLastToken): 4053 return lToken[nTokenOffset+4]["sValue"].replace("ane", "anne") 4054def _g_cond_g2_11 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4055 return not g_value(lToken[nTokenOffset+3], "|Cannes|CANNES|") 4056def _g_cond_g2_12 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4057 return g_morph(lToken[nTokenOffset], "<start>|>[,(]") 4058def _g_cond_g2_13 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4059 return g_morph(lToken[nTokenOffset], "<start>|>[,(]") and not (g_value(lToken[nTokenOffset+1], "|c’|") and g_value(lToken[nTokenOffset+2], "|en|")) 4060def _g_cond_g2_14 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4061 return g_morph(lToken[nTokenOffset], ":C|<start>|>[,(]") 4062def _g_cond_g2_15 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4063 return g_morph(lToken[nTokenOffset+2], ":A") 4064def _g_sugg_g2_18 (lToken, nTokenOffset, nLastToken): 4065 return lToken[nTokenOffset+1]["sValue"].replace("omp", "on").replace("OMP", "ON") 4066def _g_sugg_g2_19 (lToken, nTokenOffset, nLastToken): 4067 return lToken[nTokenOffset+1]["sValue"].replace("omt", "ompt").replace("OMT", "OMPT").replace("ont", "ompt").replace("ONT", "OMPT") 4068def _g_cond_g2_16 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4069 return not g_value(lToken[nTokenOffset], "|ils|elles|iels|ne|eux|") 4070def _g_sugg_g2_20 (lToken, nTokenOffset, nLastToken): 4071 return lToken[nTokenOffset+1]["sValue"].replace("nt", "mp") 4072def _g_cond_g2_17 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4073 return not g_value(lToken[nTokenOffset], "|l’|un|les|des|ces|") 4074def _g_sugg_g2_21 (lToken, nTokenOffset, nLastToken): 4075 return lToken[nTokenOffset+2]["sValue"].replace("sens", "cens").replace("Sens", "Cens").replace("SENS", "CENS") 4076def _g_sugg_g2_22 (lToken, nTokenOffset, nLastToken): 4077 return lToken[nTokenOffset+1]["sValue"].replace("cens", "sens").replace("Cens", "Sens").replace("CENS", "SENS") 4078def _g_cond_g2_18 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4079 return g_morph(lToken[nTokenOffset], ":[VR]") 4080def _g_sugg_g2_23 (lToken, nTokenOffset, nLastToken): 4081 return lToken[nTokenOffset+1]["sValue"].replace("o", "ô").replace("tt", "t") 4082def _g_sugg_g2_24 (lToken, nTokenOffset, nLastToken): 4083 return lToken[nTokenOffset+1]["sValue"].replace("ô", "o").replace("tt", "t") 4084def _g_sugg_g2_25 (lToken, nTokenOffset, nLastToken): 4085 return lToken[nTokenOffset+1]["sValue"].replace("ô", "o").replace("t", "tt") 4086def _g_sugg_g2_26 (lToken, nTokenOffset, nLastToken): 4087 return lToken[nTokenOffset+1]["sValue"].replace("t", "tt").replace("T", "TT") 4088def _g_cond_g2_19 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4089 return g_morph(lToken[nTokenOffset+2], ":A.*:f") 4090def _g_sugg_g2_27 (lToken, nTokenOffset, nLastToken): 4091 return lToken[nTokenOffset+1]["sValue"].replace("tt", "t").replace("TT", "T") 4092def _g_sugg_g2_28 (lToken, nTokenOffset, nLastToken): 4093 return lToken[nTokenOffset+1]["sValue"].replace("ssa", "ça").replace("ss", "c") 4094def _g_cond_g2_20 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4095 return g_morph(lToken[nLastToken-1+1], ":Q") 4096def _g_sugg_g2_29 (lToken, nTokenOffset, nLastToken): 4097 return lToken[nTokenOffset+1]["sValue"].replace("nud", "nu").replace("NUD", "NU") 4098def _g_sugg_g2_30 (lToken, nTokenOffset, nLastToken): 4099 return lToken[nLastToken-1+1]["sValue"].replace("escell", "écel").replace("essell", "écel") 4100def _g_sugg_g2_31 (lToken, nTokenOffset, nLastToken): 4101 return lToken[nTokenOffset+1]["sValue"].replace("escell", "écel").replace("essell", "écel") 4102def _g_cond_g2_21 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4103 return g_morph(lToken[nTokenOffset], ">(?:être|voyager|surprendre|venir|arriver|partir|aller)/") or look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "-(?:ils?|elles?|on|je|tu|nous|vous) +$") 4104def _g_cond_g2_22 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4105 return g_value(lToken[nTokenOffset], "|avec|sans|quel|quelle|quels|quelles|cet|votre|notre|mon|leur|l’|d’|") 4106def _g_cond_g2_23 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4107 return lToken[nTokenOffset+2]["sValue"].islower() 4108def _g_sugg_g2_32 (lToken, nTokenOffset, nLastToken): 4109 return lToken[nTokenOffset+1]["sValue"].replace("imm", "ém").replace("Imm", "Ém") 4110def _g_cond_g2_24 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4111 return g_morph(lToken[nTokenOffset], ":D") 4112def _g_sugg_g2_33 (lToken, nTokenOffset, nLastToken): 4113 return lToken[nTokenOffset+2]["sValue"].replace("imm", "ém").replace("Imm", "Ém") 4114def _g_sugg_g2_34 (lToken, nTokenOffset, nLastToken): 4115 return lToken[nLastToken-1+1]["sValue"].replace("émi", "immi").replace("Émi", "Immi") 4116def _g_sugg_g2_35 (lToken, nTokenOffset, nLastToken): 4117 return lToken[nTokenOffset+1]["sValue"].replace("end", "ind").replace("End", "Ind").replace("END", "IND") 4118def _g_sugg_g2_36 (lToken, nTokenOffset, nLastToken): 4119 return lToken[nTokenOffset+3]["sValue"].replace("end", "ind").replace("End", "Ind").replace("END", "IND") 4120def _g_sugg_g2_37 (lToken, nTokenOffset, nLastToken): 4121 return lToken[nTokenOffset+1]["sValue"].replace("ind", "end").replace("Ind", "End").replace("IND", "END") 4122def _g_cond_g2_25 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4123 return g_morph(lToken[nTokenOffset], "<start>|:C||>,/") and g_morph(lToken[nTokenOffset+2], ":N", ":[AG]") 4124def _g_cond_g2_26 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4125 return g_morph(lToken[nTokenOffset], "<start>|:C||>,/") and g_morph(lToken[nTokenOffset+2], ":N.*:[fe]") 4126def _g_cond_g2_27 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4127 return g_morph(lToken[nTokenOffset], "<start>|:C||>,/") and g_morph(lToken[nTokenOffset+2], ":N", ":A.*:[me]:[si]") 4128def _g_cond_g2_28 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4129 return g_morph(lToken[nTokenOffset], "<start>|:C||>,/") and g_morph(lToken[nTokenOffset+2], ":[NA]") and g_morph(lToken[nTokenOffset+3], ":N", ":[AG]") 4130def _g_cond_g2_29 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4131 return g_morph(lToken[nTokenOffset], "<start>|:C||>,/") and g_morph(lToken[nTokenOffset+2], ":[NA].*:[fe]:[si]") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]:[si]") 4132def _g_cond_g2_30 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4133 return g_morph(lToken[nTokenOffset], "<start>|:C||>,/") and ( (g_morph(lToken[nTokenOffset+2], ":N", "*") and g_morph(lToken[nTokenOffset+3], ":A")) or (g_morph(lToken[nTokenOffset+2], ":[NA]") and g_morph(lToken[nTokenOffset+3], ":N", ":A.*:[me]:[si]")) ) 4134def _g_cond_g2_31 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4135 return not g_morph(lToken[nTokenOffset], ">(?:abandonner|céder|résister)/") and not g_value(lToken[nLastToken+1], "|de|d’|") 4136def _g_cond_g2_32 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4137 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[is]", ":G") and g_morph(lToken[nLastToken-2+1], ":[QA]", ":M") and lToken[nLastToken-2+1]["sValue"].islower() 4138def _g_cond_g2_33 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4139 return g_morph(lToken[nTokenOffset+3], ":N.*:[is]", ":[GA]") and g_morph(lToken[nLastToken-2+1], ":[QA]", ":M") and lToken[nLastToken-2+1]["sValue"].islower() 4140def _g_cond_g2_34 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4141 return g_morph(lToken[nTokenOffset+2], ":M", ":[GA]") and g_morph(lToken[nLastToken-2+1], ":[QA]", ":M") and lToken[nLastToken-2+1]["sValue"].islower() 4142def _g_cond_g2_35 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4143 return g_morph(lToken[nTokenOffset+2], ":N.*:m:[si]", ":(?:[AWG]|V0a)") and g_morph(lToken[nTokenOffset], ":Cs|<start>|>,") 4144def _g_cond_g2_36 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4145 return g_morph(lToken[nTokenOffset+2], ":N.*:f:[si]", ":(?:[AWG]|V0a)") and g_morph(lToken[nTokenOffset], ":Cs|<start>|>,") 4146def _g_cond_g2_37 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4147 return g_morph(lToken[nTokenOffset+2], ":N.*:[pi]", ":(?:[AWG]|V0a)") and g_morph(lToken[nTokenOffset], ":Cs|<start>|>,") 4148def _g_cond_g2_38 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4149 return not g_morph(lToken[nTokenOffset], ":R") 4150def _g_cond_g2_39 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4151 return not g_morph(lToken[nTokenOffset], ":D.*:[me]:[sp]") 4152def _g_sugg_g2_38 (lToken, nTokenOffset, nLastToken): 4153 return lToken[nTokenOffset+2]["sValue"].replace("î", "i") 4154def _g_sugg_g2_39 (lToken, nTokenOffset, nLastToken): 4155 return lToken[nTokenOffset+3]["sValue"].replace("o", "au").replace("O", "AU") 4156def _g_sugg_g2_40 (lToken, nTokenOffset, nLastToken): 4157 return lToken[nLastToken-1+1]["sValue"].replace("n", "nc").replace("N", "NC") 4158def _g_sugg_g2_41 (lToken, nTokenOffset, nLastToken): 4159 return lToken[nTokenOffset+1]["sValue"].replace("and", "ant") 4160def _g_cond_g2_40 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4161 return not (g_value(lToken[nTokenOffset], "|une|") and look(sSentence[lToken[nLastToken]["nEnd"]:], "(?i)^ +pour toute") ) 4162def _g_cond_g2_41 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4163 return g_morph(lToken[nTokenOffset], ":D.*:(?:f|e:p)") 4164def _g_sugg_g2_42 (lToken, nTokenOffset, nLastToken): 4165 return lToken[nTokenOffset+1]["sValue"].replace("iai", "iè") 4166def _g_sugg_g2_43 (lToken, nTokenOffset, nLastToken): 4167 return lToken[nTokenOffset+1]["sValue"].replace("iè", "iai") 4168def _g_sugg_g2_44 (lToken, nTokenOffset, nLastToken): 4169 return lToken[nTokenOffset+1]["sValue"].replace("û", "u").replace("t", "tt").replace("Û", "U").replace("T", "TT") 4170def _g_cond_g2_42 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4171 return not g_value(lToken[nLastToken-2+1], "|de|") 4172def _g_sugg_g2_45 (lToken, nTokenOffset, nLastToken): 4173 return lToken[nTokenOffset+1]["sValue"].replace("outt", "oût").replace("OUTT", "OÛT") 4174def _g_sugg_g2_46 (lToken, nTokenOffset, nLastToken): 4175 return lToken[nLastToken-1+1]["sValue"].replace("oût", "outt").replace("OÛT", "OUTT").replace("out", "outt").replace("OUT", "OUTT") 4176def _g_sugg_g2_47 (lToken, nTokenOffset, nLastToken): 4177 return lToken[nLastToken-1+1]["sValue"].replace("outt", "oût").replace("OUTT", "OÛT") 4178def _g_cond_g2_43 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4179 return not g_morph(lToken[nLastToken-1+1], ":1p") 4180def _g_cond_g2_44 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4181 return not g_morph(lToken[nLastToken-1+1], ":2p") 4182def _g_sugg_g2_48 (lToken, nTokenOffset, nLastToken): 4183 return lToken[nTokenOffset+1]["sValue"].replace("u", "û").replace("U", "Û") 4184def _g_sugg_g2_49 (lToken, nTokenOffset, nLastToken): 4185 return lToken[nTokenOffset+1]["sValue"].replace("û", "u").replace("Û", "U") 4186def _g_sugg_g2_50 (lToken, nTokenOffset, nLastToken): 4187 return lToken[nTokenOffset+1]["sValue"][3:] 4188def _g_sugg_g2_51 (lToken, nTokenOffset, nLastToken): 4189 return lToken[nTokenOffset+1]["sValue"].lower().replace("cha", "lâ") 4190def _g_cond_g2_45 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4191 return g_morph(lToken[nTokenOffset+2], ":Q") 4192def _g_cond_g2_46 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4193 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 4) 4194def _g_sugg_g2_52 (lToken, nTokenOffset, nLastToken): 4195 return lToken[nTokenOffset+1]["sValue"].replace("a", "â").replace("A", "Â") 4196def _g_sugg_g2_53 (lToken, nTokenOffset, nLastToken): 4197 return lToken[nTokenOffset+1]["sValue"].replace("ât", "at").replace("ÂT", "AT") 4198def _g_sugg_g2_54 (lToken, nTokenOffset, nLastToken): 4199 return lToken[nLastToken-1+1]["sValue"].replace("u", "û").replace("U", "Û") 4200def _g_cond_g2_47 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4201 return g_morph(lToken[nTokenOffset+2], ":D", ">de/") 4202def _g_sugg_g2_55 (lToken, nTokenOffset, nLastToken): 4203 return lToken[nTokenOffset+1]["sValue"].replace("en", "an").replace("EN", "AN") 4204def _g_sugg_g2_56 (lToken, nTokenOffset, nLastToken): 4205 return lToken[nTokenOffset+1]["sValue"].replace("an", "en").replace("AN", "EN") 4206def _g_sugg_g2_57 (lToken, nTokenOffset, nLastToken): 4207 return lToken[nLastToken-1+1]["sValue"].replace("a", "â").replace("A", "Â") 4208def _g_cond_g2_48 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4209 return g_morph(lToken[nLastToken-3+1], ":V") 4210def _g_sugg_g2_58 (lToken, nTokenOffset, nLastToken): 4211 return lToken[nLastToken-1+1]["sValue"].replace("êch", "éch").replace("er", "é").replace("ÊCH", "ÉCH").replace("ER", "É") 4212def _g_sugg_g2_59 (lToken, nTokenOffset, nLastToken): 4213 return lToken[nTokenOffset+1]["sValue"].replace("éch", "êch").replace("èch", "êch").replace("ÉCH", "ÊCH").replace("ÈCH", "ÊCH") 4214def _g_cond_g2_49 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4215 return not g_value(lToken[nTokenOffset], "|je|tu|il|elle|on|ne|n’|") and g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 3) 4216def _g_cond_g2_50 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4217 return g_morph(lToken[nTokenOffset+3], ":N") 4218def _g_cond_g2_51 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4219 return bCondMemo and g_morph(lToken[nLastToken-1+1], ":V1..t") and g_morph(lToken[nLastToken+1], ":(?:Ov|[123][sp]|P)|<end>|>(?:,|par)/") 4220def _g_sugg_g2_60 (lToken, nTokenOffset, nLastToken): 4221 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":m:s") 4222def _g_sugg_g2_61 (lToken, nTokenOffset, nLastToken): 4223 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":f:s") 4224def _g_sugg_g2_62 (lToken, nTokenOffset, nLastToken): 4225 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":s") 4226def _g_cond_g2_52 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4227 return g_morph(lToken[nTokenOffset+3], ":[NA]") and g_morph(lToken[nTokenOffset+4], ":[NA]", ":V0") 4228def _g_cond_g2_53 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4229 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+1], ":V", ":[NAQGM]") 4230def _g_cond_g2_54 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4231 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) 4232def _g_sugg_g2_63 (lToken, nTokenOffset, nLastToken): 4233 return lToken[nTokenOffset+3]["sValue"].replace("t", "g").replace("T", "G") 4234def _g_cond_g2_55 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4235 return g_morph(lToken[nTokenOffset+2], ":A") and g_morph(lToken[nTokenOffset], ":D") 4236def _g_sugg_g2_64 (lToken, nTokenOffset, nLastToken): 4237 return lToken[nTokenOffset+1]["sValue"].replace("t", "g").replace("T", "G") 4238def _g_cond_g2_56 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4239 return not g_value(lToken[nTokenOffset], "|n’|") 4240def _g_cond_g2_57 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4241 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) 4242def _g_sugg_g2_65 (lToken, nTokenOffset, nLastToken): 4243 return lToken[nTokenOffset+1]["sValue"].replace("out", "oot").replace("OUT", "OOT") 4244def _g_sugg_g2_66 (lToken, nTokenOffset, nLastToken): 4245 return lToken[nTokenOffset+1]["sValue"].replace("etr", "ebr").replace("ETR", "EBR").replace("dét", "reb").replace("Dét", "Reb").replace("DÉT", "REB") 4246def _g_sugg_g2_67 (lToken, nTokenOffset, nLastToken): 4247 return lToken[nTokenOffset+1]["sValue"].replace("ô", "o").replace("Ô", "O") 4248def _g_sugg_g2_68 (lToken, nTokenOffset, nLastToken): 4249 return lToken[nTokenOffset+1]["sValue"].replace("od", "ôd").replace("OD", "ÔD") 4250def _g_sugg_g2_69 (lToken, nTokenOffset, nLastToken): 4251 return lToken[nTokenOffset+1]["sValue"].replace("ale", "alle") 4252def _g_sugg_g2_70 (lToken, nTokenOffset, nLastToken): 4253 return lToken[nTokenOffset+2]["sValue"].replace("alle", "ale") 4254def _g_cond_g2_58 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4255 return g_morph(lToken[nTokenOffset], ":D.*:[me]") 4256def _g_sugg_g2_71 (lToken, nTokenOffset, nLastToken): 4257 return lToken[nTokenOffset+2]["sValue"].replace("scep","sep") 4258def _g_cond_g2_59 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4259 return not g_morph(lToken[nTokenOffset], ">plaie/") 4260def _g_sugg_g2_72 (lToken, nTokenOffset, nLastToken): 4261 return lToken[nTokenOffset+2]["sValue"].replace("sep", "scep") 4262def _g_cond_g2_60 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4263 return g_analyse(lToken[nTokenOffset+3], ":N.*:[me]:[si]", ":Y") 4264def _g_cond_g2_61 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4265 return g_analyse(lToken[nTokenOffset+3], ":[NA]", ":Y") 4266def _g_cond_g2_62 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4267 return not look(sSentence[lToken[nLastToken]["nEnd"]:], " soit ") 4268def _g_cond_g2_63 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4269 return not g_value(lToken[nTokenOffset], "|lourde|lourdes|") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "[aA]ccompl|[dD]él[éè]gu") 4270def _g_sugg_g2_73 (lToken, nTokenOffset, nLastToken): 4271 return lToken[nTokenOffset+1]["sValue"].replace("â", "a").replace("Â", "A") 4272def _g_sugg_g2_74 (lToken, nTokenOffset, nLastToken): 4273 return lToken[nLastToken-1+1]["sValue"].replace("â", "a").replace("Â", "A") 4274def _g_sugg_g2_75 (lToken, nTokenOffset, nLastToken): 4275 return lToken[nTokenOffset+3]["sValue"].replace("a", "â").replace("A", "Â") 4276def _g_cond_g2_64 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4277 return g_morph(lToken[nTokenOffset+2], ":D", ":R") 4278def _g_sugg_g2_76 (lToken, nTokenOffset, nLastToken): 4279 return lToken[nTokenOffset+3]["sValue"].replace("ach", "âch").replace("ACH", "ÂCH") 4280def _g_sugg_g2_77 (lToken, nTokenOffset, nLastToken): 4281 return lToken[nTokenOffset+1]["sValue"].replace("au", "ô").replace("AU", "Ô") 4282def _g_sugg_g2_78 (lToken, nTokenOffset, nLastToken): 4283 return lToken[nTokenOffset+1]["sValue"].replace("énén", "enim").replace("ÉNÉN", "ENIM") 4284def _g_sugg_g2_79 (lToken, nTokenOffset, nLastToken): 4285 return lToken[nTokenOffset+1]["sValue"].replace("enim", "énén").replace("ENIM", "ÉNÉN") 4286def _g_sugg_g2_80 (lToken, nTokenOffset, nLastToken): 4287 return suggSing(lToken[nTokenOffset+2]["sValue"]) 4288def _g_cond_g2_65 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4289 return not g_value(lToken[nTokenOffset], "|et|ou|de|") and not g_value(lToken[nTokenOffset+2], "|air|") and not g_morph(lToken[nTokenOffset+3], ">seul/") 4290def _g_cond_g2_66 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4291 return ( (g_morph(lToken[nTokenOffset+2], ":m", "*") and g_morph(lToken[nTokenOffset+3], ":f", "*")) or (g_morph(lToken[nTokenOffset+2], ":f", "*") and g_morph(lToken[nTokenOffset+3], ":m", "*")) ) and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4292def _g_sugg_g2_81 (lToken, nTokenOffset, nLastToken): 4293 return switchGender(lToken[nTokenOffset+3]["sValue"], False) 4294def _g_cond_g2_67 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4295 return bCondMemo and hasFemForm(lToken[nTokenOffset+2]["sValue"]) 4296def _g_sugg_g2_82 (lToken, nTokenOffset, nLastToken): 4297 return switchGender(lToken[nTokenOffset+2]["sValue"]) 4298def _g_cond_g2_68 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4299 return g_morph(lToken[nTokenOffset+2], ":[si]", "*") and g_morph(lToken[nTokenOffset+3], ":p", "*") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4300def _g_sugg_g2_83 (lToken, nTokenOffset, nLastToken): 4301 return suggSing(lToken[nTokenOffset+3]["sValue"]) 4302def _g_cond_g2_69 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4303 return not g_value(lToken[nTokenOffset+3], "|air|") and not g_morph(lToken[nTokenOffset+4], ">seul/") 4304def _g_cond_g2_70 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4305 return ( (g_morph(lToken[nTokenOffset+3], ":m", "*") and g_morph(lToken[nTokenOffset+4], ":f", "*")) or (g_morph(lToken[nTokenOffset+3], ":f", "*") and g_morph(lToken[nTokenOffset+4], ":m", "*")) ) and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) and not g_morph(lToken[nTokenOffset], ":[NA]") 4306def _g_sugg_g2_84 (lToken, nTokenOffset, nLastToken): 4307 return switchGender(lToken[nTokenOffset+4]["sValue"], False) 4308def _g_cond_g2_71 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4309 return bCondMemo and hasFemForm(lToken[nTokenOffset+3]["sValue"]) 4310def _g_sugg_g2_85 (lToken, nTokenOffset, nLastToken): 4311 return switchGender(lToken[nTokenOffset+3]["sValue"]) 4312def _g_cond_g2_72 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4313 return g_morph(lToken[nTokenOffset+3], ":[si]", "*") and g_morph(lToken[nTokenOffset+4], ":p", "*") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) and not g_morph(lToken[nTokenOffset], ":[NA]") 4314def _g_sugg_g2_86 (lToken, nTokenOffset, nLastToken): 4315 return suggSing(lToken[nTokenOffset+4]["sValue"]) 4316def _g_cond_g2_73 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4317 return g_morph(lToken[nTokenOffset+3], ":[NA].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)") 4318def _g_sugg_g2_87 (lToken, nTokenOffset, nLastToken): 4319 return suggLesLa(lToken[nTokenOffset+3]["sValue"]) 4320def _g_cond_g2_74 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4321 return bCondMemo and hasMasForm(lToken[nTokenOffset+3]["sValue"]) 4322def _g_sugg_g2_88 (lToken, nTokenOffset, nLastToken): 4323 return suggMasSing(lToken[nTokenOffset+3]["sValue"], True) 4324def _g_cond_g2_75 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4325 return not bCondMemo and g_morph(lToken[nTokenOffset+3], ":[NA].*:p", ":[siGW]") 4326def _g_sugg_g2_89 (lToken, nTokenOffset, nLastToken): 4327 return suggMasSing(lToken[nTokenOffset+3]["sValue"]) 4328def _g_cond_g2_76 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4329 return bCondMemo 4330def _g_cond_g2_77 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4331 return g_morph(lToken[nTokenOffset+2], ":D") 4332def _g_cond_g2_78 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4333 return g_morph(lToken[nTokenOffset+3], ":[NA].*:f", ":(?:e|m|P|G|W|[123][sp]|Y)") or ( g_morph(lToken[nTokenOffset+3], ":[NA].*:f", ":[me]") and g_morph(lToken[nTokenOffset+1], ":R", ">(?:e[tn]|ou)/") and not (g_morph(lToken[nTokenOffset+1], ":Rv") and g_morph(lToken[nTokenOffset+3], ":Y")) ) 4334def _g_cond_g2_79 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4335 return not bCondMemo and g_morph(lToken[nTokenOffset+3], ":[NA].*:p", "*") or ( g_morph(lToken[nTokenOffset+3], ":[NA].*:p", ":[si]") and g_morph(lToken[nTokenOffset+1], ":[RC]", ">(?:e[tn]|ou)/") and not (g_morph(lToken[nTokenOffset+1], ":Rv") and g_morph(lToken[nTokenOffset+3], ":Y")) ) 4336def _g_cond_g2_80 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4337 return g_morph(lToken[nTokenOffset+3], ":[NA].*:f", ":(?:e|m|P|G|W|Y)") 4338def _g_cond_g2_81 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4339 return g_morph(lToken[nTokenOffset+1], ":D") and not g_value(lToken[nTokenOffset], "|et|ou|de|") and not g_morph(lToken[nTokenOffset+3], ">seul/") 4340def _g_cond_g2_82 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4341 return g_morph(lToken[nTokenOffset+2], ":[NA].*:[me]", ":(?:B|G|V0)") and g_morph(lToken[nTokenOffset+3], ":[NA].*:f", "*") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4342def _g_cond_g2_83 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4343 return g_morph(lToken[nTokenOffset+2], ":[NA].*:[si]", ":G") and g_morph(lToken[nTokenOffset+3], ":[NA].*:p", ":[GWsi]") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4344def _g_cond_g2_84 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4345 return g_morph(lToken[nTokenOffset+2], ":D") and not g_morph(lToken[nTokenOffset], ":[NA]") and not g_morph(lToken[nTokenOffset+4], ">seul/") 4346def _g_cond_g2_85 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4347 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]", ":(?:B|G|V0|f)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:f", "*") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) 4348def _g_sugg_g2_90 (lToken, nTokenOffset, nLastToken): 4349 return suggMasSing(lToken[nTokenOffset+4]["sValue"], True) 4350def _g_cond_g2_86 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4351 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[si]", ":G") and g_morph(lToken[nTokenOffset+4], ":[NA].*:p", ":[GWsi]") and not apposition(lToken[nTokenOffset+4]["sValue"], lToken[nTokenOffset+4]["sValue"]) 4352def _g_sugg_g2_91 (lToken, nTokenOffset, nLastToken): 4353 return suggMasSing(lToken[nTokenOffset+4]["sValue"]) 4354def _g_cond_g2_87 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4355 return g_morph(lToken[nTokenOffset+3], ":[NA].*:m", ":(?:e|f|P|G|W|M|[1-3][sp]|Y)") 4356def _g_sugg_g2_92 (lToken, nTokenOffset, nLastToken): 4357 return suggFemSing(lToken[nTokenOffset+3]["sValue"], True) 4358def _g_cond_g2_88 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4359 return not bCondMemo and g_morph(lToken[nTokenOffset+3], ":[NA].*:p") 4360def _g_sugg_g2_93 (lToken, nTokenOffset, nLastToken): 4361 return suggFemSing(lToken[nTokenOffset+3]["sValue"]) 4362def _g_cond_g2_89 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4363 return g_morph(lToken[nTokenOffset+3], ":[NA].*:m", ":(?:e|f|P|G|W|M|[1-3][sp]|Y)") or ( g_morph(lToken[nTokenOffset+3], ":[NA].*:m", ":[Mfe]") and g_morph(lToken[nTokenOffset+1], ":[RC]", ">(?:e[tn]|ou)/") and not (g_morph(lToken[nTokenOffset+1], ":(?:Rv|C)") and g_morph(lToken[nTokenOffset+3], ":Y")) ) 4364def _g_cond_g2_90 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4365 return not bCondMemo and g_morph(lToken[nTokenOffset+3], ":[NA].*:p", "*") or ( g_morph(lToken[nTokenOffset+3], ":[NA].*:p", ":[Msi]") and g_morph(lToken[nTokenOffset+1], ":[RC]", ">(?:e[tn]|ou)/") and not (g_morph(lToken[nTokenOffset+1], ":Rv") and g_morph(lToken[nTokenOffset+3], ":Y")) ) 4366def _g_cond_g2_91 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4367 return g_morph(lToken[nTokenOffset+3], ":[NA].*:m", ":[efPGWMY]") 4368def _g_cond_g2_92 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4369 return g_morph(lToken[nTokenOffset+1], ":D") and not g_value(lToken[nTokenOffset], "|et|ou|de|d’|") and not g_morph(lToken[nTokenOffset+3], ">seul/") 4370def _g_cond_g2_93 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4371 return g_morph(lToken[nTokenOffset+2], ":[NA].*:[fe]", ":(?:B|G|V0)") and g_morph(lToken[nTokenOffset+3], ":[NA].*:m", "*") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4372def _g_cond_g2_94 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4373 return g_morph(lToken[nTokenOffset+2], ":D") and not g_morph(lToken[nTokenOffset], ":[NA]|>(?:et|ou)/") and not g_morph(lToken[nTokenOffset+4], ">seul/") 4374def _g_cond_g2_95 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4375 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]", ":(?:B|G|V0|m)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:m", "*") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) 4376def _g_sugg_g2_94 (lToken, nTokenOffset, nLastToken): 4377 return suggFemSing(lToken[nTokenOffset+4]["sValue"], True) 4378def _g_cond_g2_96 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4379 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[si]", ":G") and g_morph(lToken[nTokenOffset+4], ":[NA].*:p", ":[GWsi]") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) 4380def _g_sugg_g2_95 (lToken, nTokenOffset, nLastToken): 4381 return suggFemSing(lToken[nTokenOffset+4]["sValue"]) 4382def _g_cond_g2_97 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4383 return g_morph(lToken[nTokenOffset+3], ":[NA].*:p", "*") 4384def _g_cond_g2_98 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4385 return g_morph(lToken[nTokenOffset+3], ":[NA].*:p", "*") or ( g_morph(lToken[nTokenOffset+3], ":[NA].*:p", ":[si]") and g_morph(lToken[nTokenOffset+1], ":[RC]", ">(?:e[tn]|ou)/") and not (g_morph(lToken[nTokenOffset+1], ":Rv") and g_morph(lToken[nTokenOffset+3], ":Y")) ) 4386def _g_cond_g2_99 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4387 return g_morph(lToken[nTokenOffset+3], ":[NA].*:p", ":[siGW]") 4388def _g_cond_g2_100 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4389 return ((g_morph(lToken[nTokenOffset+2], ":[NA].*:m", ":(?:B|e|G|V0|f)") and g_morph(lToken[nTokenOffset+3], ":[NA].*:f", "*")) or (g_morph(lToken[nTokenOffset+2], ":[NA].*:f", ":(?:B|e|G|V0|m)") and g_morph(lToken[nTokenOffset+3], ":[NA].*:m", "*"))) and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4390def _g_sugg_g2_96 (lToken, nTokenOffset, nLastToken): 4391 return switchGender(lToken[nTokenOffset+2]["sValue"], False) 4392def _g_cond_g2_101 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4393 return bCondMemo and g_morph(lToken[nTokenOffset+2], ":[NA].*:i") 4394def _g_cond_g2_102 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4395 return ((g_morph(lToken[nTokenOffset+3], ":[NA].*:m", ":(?:B|e|G|V0|f)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:f", "*")) or (g_morph(lToken[nTokenOffset+3], ":[NA].*:f", ":(?:B|e|G|V0|m)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:m", "*"))) and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) 4396def _g_cond_g2_103 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4397 return bCondMemo and g_morph(lToken[nTokenOffset+3], ":[NA].*:i") 4398def _g_cond_g2_104 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4399 return not g_value(lToken[nTokenOffset], "|et|ou|") and g_morph(lToken[nTokenOffset+1], ":D") and g_morph(lToken[nTokenOffset+2], ":[NA].*:[si]", ":(?:[123][sp]|G)") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[si]", ":(?:[123][sp]|G|P)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:p", "*") and lToken[nTokenOffset+4]["sValue"].islower() 4400def _g_cond_g2_105 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4401 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f", ":[GWme]") 4402def _g_cond_g2_106 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4403 return bCondMemo and hasMasForm(lToken[nTokenOffset+2]["sValue"]) 4404def _g_sugg_g2_97 (lToken, nTokenOffset, nLastToken): 4405 return suggMasSing(lToken[nTokenOffset+2]["sValue"], True) 4406def _g_cond_g2_107 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4407 return g_morph(lToken[nTokenOffset+2], ":[NA].*:p", ":[siGW]") 4408def _g_sugg_g2_98 (lToken, nTokenOffset, nLastToken): 4409 return suggMasSing(lToken[nTokenOffset+2]["sValue"]) 4410def _g_cond_g2_108 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4411 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m", ":[efGW]") 4412def _g_sugg_g2_99 (lToken, nTokenOffset, nLastToken): 4413 return suggFemSing(lToken[nTokenOffset+2]["sValue"], True) 4414def _g_sugg_g2_100 (lToken, nTokenOffset, nLastToken): 4415 return suggFemSing(lToken[nTokenOffset+2]["sValue"]) 4416def _g_cond_g2_109 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4417 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f", ":(?:e|m|G|W|V0|3s|Y)") 4418def _g_cond_g2_110 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4419 return g_morph(lToken[nTokenOffset+3], ":[NA].*:f", ":(?:e|m|G|W|V0|3s)") 4420def _g_sugg_g2_101 (lToken, nTokenOffset, nLastToken): 4421 return suggMasPlur(lToken[nTokenOffset+3]["sValue"], True) 4422def _g_cond_g2_111 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4423 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m", ":(?:e|f|G|W|V0|3s|P)") and not ( lToken[nTokenOffset+2]["sValue"] == "demi" and g_morph(lToken[nLastToken+1], ":N.*:f", "*") ) 4424def _g_cond_g2_112 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4425 return g_morph(lToken[nTokenOffset+3], ":[NA].*:m", ":(?:e|f|G|W|V0|3s)") 4426def _g_sugg_g2_102 (lToken, nTokenOffset, nLastToken): 4427 return suggFemPlur(lToken[nTokenOffset+3]["sValue"], True) 4428def _g_cond_g2_113 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4429 return not g_value(lToken[nTokenOffset], "|et|ou|d’|") and not g_morph(lToken[nTokenOffset+3], ">seul/") 4430def _g_cond_g2_114 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4431 return g_morph(lToken[nTokenOffset+2], ":[NA].*:[si]", ":G") and g_morph(lToken[nTokenOffset+3], ":[NA].*:p", "*") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4432def _g_cond_g2_115 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4433 return not g_morph(lToken[nTokenOffset], ":[NA]|>(?:et|ou)/") and not g_morph(lToken[nTokenOffset+4], ">seul/") 4434def _g_cond_g2_116 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4435 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[si]", ":G") and g_morph(lToken[nTokenOffset+4], ":[NA].*:p", "*") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) 4436def _g_cond_g2_117 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4437 return lToken[nTokenOffset+2]["sValue"] != "fois" and g_morph(lToken[nTokenOffset+2], ":[NA].*:[si]", ":G") and g_morph(lToken[nTokenOffset+3], ":[NA].*:p", "*") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4438def _g_cond_g2_118 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4439 return lToken[nTokenOffset+3]["sValue"] != "fois" and g_morph(lToken[nTokenOffset+3], ":[NA].*:[si]", ":G") and g_morph(lToken[nTokenOffset+4], ":[NA].*:p", "*") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) 4440def _g_cond_g2_119 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4441 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f", ":(?:3s|[GWme])") 4442def _g_cond_g2_120 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4443 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f", ":[GWme]") and g_morph(lToken[nTokenOffset+2], ":3s") 4444def _g_cond_g2_121 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4445 return g_morph(lToken[nTokenOffset+2], ">[bcçdfgjklmnpqrstvwxz].+:[NA].*:m", ":[efGW]") 4446def _g_sugg_g2_103 (lToken, nTokenOffset, nLastToken): 4447 return suggCeOrCet(lToken[nTokenOffset+2]["sValue"]) 4448def _g_cond_g2_122 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4449 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f:s", ":[GWme]") 4450def _g_cond_g2_123 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4451 return not g_value(lToken[nTokenOffset], "|et|ou|de|d’|") and not g_morph(lToken[nTokenOffset+3], ">seul/") 4452def _g_cond_g2_124 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4453 return g_morph(lToken[nTokenOffset+1], ":D") 4454def _g_cond_g2_125 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4455 return g_morph(lToken[nTokenOffset+2], ">[bcdfgjklmnpqrstvwxz].*:[NA].*:f", ":[GWme]") 4456def _g_sugg_g2_104 (lToken, nTokenOffset, nLastToken): 4457 return lToken[nTokenOffset+1]["sValue"].replace("on", "a").replace("ON", "A") 4458def _g_cond_g2_126 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4459 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m", ":(?:B|G|e|V0|f)") and g_morph(lToken[nTokenOffset+3], ":[NA].*:f", "*") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4460def _g_cond_g2_127 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4461 return g_morph(lToken[nTokenOffset+2], ">[aâeéèêiîoôuûyœæ].*:[NA].*:f", ":(?:B|G|e|V0|m)") and g_morph(lToken[nTokenOffset+3], ":[NA].*:m", "*") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4462def _g_cond_g2_128 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4463 return g_morph(lToken[nTokenOffset+3], ":[NA].*:m", ":(?:B|G|e|V0|f)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:f", "*") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) 4464def _g_cond_g2_129 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4465 return g_morph(lToken[nTokenOffset+3], ">[aâeéèêiîoôuûyœæ].*:[NA].*:f", ":(?:B|G|e|V0|m)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:m", "*") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) 4466def _g_cond_g2_130 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4467 return not (g_tag(lToken[nTokenOffset+1], "_CAP_") and g_morph(lToken[nTokenOffset+1], ":N")) 4468def _g_sugg_g2_105 (lToken, nTokenOffset, nLastToken): 4469 return lToken[nTokenOffset+1]["sValue"][:-1]+"on" 4470def _g_cond_g2_131 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4471 return bCondMemo and not re.search("(?i)^[aâeéèêiîoôuûyœæ]", lToken[nTokenOffset+2]["sValue"]) and hasFemForm(lToken[nTokenOffset+2]["sValue"]) 4472def _g_cond_g2_132 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4473 return g_morph(lToken[nTokenOffset+2], ":[NAQ].*:[fe]", ":(?:B|G|V0)") and g_morph(lToken[nTokenOffset+3], ":[NAQ].*:m", "*") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4474def _g_cond_g2_133 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4475 return g_morph(lToken[nTokenOffset+2], ":[NAQ].*:[si]", ":G") and g_morph(lToken[nTokenOffset+3], ":[NAQ].*:p", ":[GWsi]") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4476def _g_cond_g2_134 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4477 return not g_morph(lToken[nTokenOffset], ":[NAQ]|>(?:et|ou)/") and not g_morph(lToken[nTokenOffset+4], ">seul/") 4478def _g_cond_g2_135 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4479 return g_morph(lToken[nTokenOffset+3], ":[NAQ].*:[fe]", ":(?:B|G|V0|m)") and g_morph(lToken[nTokenOffset+4], ":[NAQ].*:m", "*") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) 4480def _g_cond_g2_136 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4481 return g_morph(lToken[nTokenOffset+3], ":[NAQ].*:[si]", ":G") and g_morph(lToken[nTokenOffset+4], ":[NAQ].*:p", ":[GWsi]") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) 4482def _g_cond_g2_137 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4483 return g_morph(lToken[nTokenOffset+2], ":[NA].*:p", ":[siG]") and not g_value(lToken[nLastToken+1], "|que|qu’|") 4484def _g_cond_g2_138 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4485 return not g_value(lToken[nTokenOffset], "|et|ou|") and g_morph(lToken[nTokenOffset+2], ":[NA].*:[si]") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[si]", ":(?:[123][sp]|G|P|B)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:p", "*") and lToken[nTokenOffset+4]["sValue"].islower() 4486def _g_cond_g2_139 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4487 return g_morph(lToken[nTokenOffset+3], ":[NA].*:s", "*") and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":[NA]")) 4488def _g_sugg_g2_106 (lToken, nTokenOffset, nLastToken): 4489 return suggPlur(lToken[nTokenOffset+3]["sValue"]) 4490def _g_cond_g2_140 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4491 return g_morph(lToken[nTokenOffset+2], ":D") and ( g_morph(lToken[nTokenOffset+3], ":[NA].*:s", "*") or (g_morph(lToken[nTokenOffset+3], ":[NA].*:s", ":[pi]|>avoir/") and g_morph(lToken[nTokenOffset+1], ":[RC]", ">(?:e[tn]|ou|puis)/") and not (g_morph(lToken[nTokenOffset+1], ":Rv") and g_morph(lToken[nTokenOffset+3], ":Y"))) ) and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":[NA]")) and not (g_value(lToken[nTokenOffset+1], "|que|") and g_morph(lToken[nTokenOffset], ">tel/") and g_morph(lToken[nTokenOffset+3], ":3[sp]")) 4492def _g_cond_g2_141 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4493 return g_morph(lToken[nTokenOffset+3], ":[NA].*:s", ":[ipYPGW]") and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":[NA]")) 4494def _g_sugg_g2_107 (lToken, nTokenOffset, nLastToken): 4495 return switchGender(lToken[nTokenOffset+3]["sValue"], True) 4496def _g_sugg_g2_108 (lToken, nTokenOffset, nLastToken): 4497 return switchGender(lToken[nTokenOffset+2]["sValue"], True) 4498def _g_cond_g2_142 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4499 return g_morph(lToken[nTokenOffset+2], ":[NA].*:[pi]") and g_morph(lToken[nTokenOffset+3], ":[NA].*:s", "*") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) and not (g_value(lToken[nLastToken+1], "|et|,|") and g_morph(g_token(lToken, nLastToken+2), ":A")) 4500def _g_cond_g2_143 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4501 return g_morph(lToken[nTokenOffset+2], ":D") and not g_morph(lToken[nTokenOffset], ":[NA]") and not g_morph(lToken[nTokenOffset+3], ">seul/") 4502def _g_sugg_g2_109 (lToken, nTokenOffset, nLastToken): 4503 return switchGender(lToken[nTokenOffset+4]["sValue"], True) 4504def _g_cond_g2_144 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4505 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[pi]") and g_morph(lToken[nTokenOffset+4], ":[NA].*:s", "*") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) and not (g_value(lToken[nLastToken+1], "|et|,|") and g_morph(g_token(lToken, nLastToken+2), ":A")) 4506def _g_sugg_g2_110 (lToken, nTokenOffset, nLastToken): 4507 return suggPlur(lToken[nTokenOffset+4]["sValue"]) 4508def _g_cond_g2_145 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4509 return g_morph(lToken[nTokenOffset+2], ":[NA].*:s", ":(?:[ipGW]|[123][sp])") and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":[NA]")) 4510def _g_sugg_g2_111 (lToken, nTokenOffset, nLastToken): 4511 return suggPlur(lToken[nTokenOffset+2]["sValue"]) 4512def _g_cond_g2_146 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4513 return g_morph(lToken[nTokenOffset+2], ":[NA].*:s", ":[ipGW]") and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":[NA]")) 4514def _g_cond_g2_147 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4515 return bCondMemo and g_morph(lToken[nTokenOffset+2], ">[bcdfglklmnpqrstvwxz].*:m", ":f") 4516def _g_cond_g2_148 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4517 return lToken[nTokenOffset+1]["sValue"].endswith("x") or lToken[nTokenOffset+1]["sValue"].endswith("X") 4518def _g_cond_g2_149 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4519 return not bCondMemo 4520def _g_cond_g2_150 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4521 return not g_value(lToken[nTokenOffset], "|et|ou|de|d’|au|aux|") and not g_morph(lToken[nTokenOffset+3], ">seul/") 4522def _g_cond_g2_151 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4523 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[pi]") and g_morph(lToken[nTokenOffset+4], ":[NA].*:s", "*") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) and not (g_value(lToken[nLastToken+1], "|et|,|") and g_morph(g_token(lToken, nLastToken+2), ":A")) and not (g_value(lToken[nTokenOffset+1], "|de|d’|") and g_value(lToken[nTokenOffset], "|un|une|")) 4524def _g_cond_g2_152 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4525 return not g_morph(lToken[nTokenOffset], ">(?:et|ou)/|:R") and not g_morph(lToken[nTokenOffset+3], ">(?:seul|minimum|maximum)/") 4526def _g_cond_g2_153 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4527 return g_morph(lToken[nTokenOffset+2], ":[NA].*:[pi]", ":(?:B|G|V0)") and g_morph(lToken[nTokenOffset+3], ":[NA].*:s", "*") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) and not (g_value(lToken[nLastToken+1], "|et|,|") and g_morph(g_token(lToken, nLastToken+2), ":A")) 4528def _g_cond_g2_154 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4529 return (g_morph(lToken[nTokenOffset], ":(?:[VRBX]|Cs|LV)|>comme/|<start>|>,", "*") or g_morph(lToken[nTokenOffset+3], ":N", ":[AQ]")) and not g_morph(lToken[nTokenOffset+3], ">(?:seul|minimum|maximum)/") 4530def _g_cond_g2_155 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4531 return ( (g_morph(lToken[nTokenOffset+2], ":[NA].*:m", ":[fe]") and g_morph(lToken[nTokenOffset+3], ":[NA].*:f", "*")) or (g_morph(lToken[nTokenOffset+2], ":[NA].*:f", ":[me]") and g_morph(lToken[nTokenOffset+3], ":[NA].*:m", "*")) ) and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4532def _g_cond_g2_156 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4533 return g_morph(lToken[nTokenOffset+2], ":[NA].*:[pi]", ":G") and g_morph(lToken[nTokenOffset+3], ":[NA].*:s", "*") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) and not (g_value(lToken[nLastToken+1], "|et|,|") and g_morph(g_token(lToken, nLastToken+2), ":A")) 4534def _g_cond_g2_157 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4535 return not g_morph(lToken[nTokenOffset+3], ":G|>a/") and g_checkAgreement(lToken[nTokenOffset+2], lToken[nTokenOffset+3]) 4536def _g_da_g2_1 (lToken, nTokenOffset, nLastToken): 4537 return g_exclude(lToken[nTokenOffset+3], ":V") 4538def _g_cond_g2_158 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4539 return g_morph(lToken[nTokenOffset+2], ":[NA].*:s", ":[ipGWP]") and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":[NA]")) 4540def _g_cond_g2_159 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4541 return g_morph(lToken[nTokenOffset+1], ":D") and g_morph(lToken[nTokenOffset+2], ":[NA].*:[pi]", ":(?:[123][sp]|G)") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[pi]", ":(?:[123][sp]|G)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:s", "*") and lToken[nTokenOffset+4]["sValue"].islower() 4542def _g_cond_g2_160 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4543 return g_morph(lToken[nTokenOffset+2], ":[NA].*:[pi]") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[pi]", ":(?:[123][sp]|G)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:s", "*") and lToken[nTokenOffset+4]["sValue"].islower() and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\bune? de +$") and not g_morph(lToken[nTokenOffset+4], ">seul/") 4544def _g_cond_g2_161 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4545 return g_morph(lToken[nTokenOffset+2], ":[NA].*:[pi]", ":[123][sp]") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[pi]", ":(?:[123][sp]|G)") and g_morph(lToken[nTokenOffset+4], ":[NA].*:s", "*") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\bune? de +$") and not g_morph(lToken[nTokenOffset+4], ">seul/") 4546def _g_cond_g2_162 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4547 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f", ":[emGWP]") 4548def _g_sugg_g2_112 (lToken, nTokenOffset, nLastToken): 4549 return suggMasPlur(lToken[nTokenOffset+2]["sValue"], True) 4550def _g_cond_g2_163 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4551 return g_morph(lToken[nTokenOffset+2], ":[NA].*:s", ":(?:[ipGWP]|V0)") and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":[NA]")) 4552def _g_cond_g2_164 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4553 return g_morph(lToken[nTokenOffset+3], ":[NA].*:f", ":[emGW]") 4554def _g_cond_g2_165 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4555 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m", ":[efGWP]") 4556def _g_sugg_g2_113 (lToken, nTokenOffset, nLastToken): 4557 return suggFemPlur(lToken[nTokenOffset+2]["sValue"], True) 4558def _g_cond_g2_166 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4559 return g_morph(lToken[nTokenOffset+3], ":[NA].*:m", ":[efGW]") 4560def _g_cond_g2_167 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4561 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f:p", ":(?:V0|Oo|[NA].*:[me]:[si])") 4562def _g_cond_g2_168 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4563 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m:p", ":(?:V0|Oo|[NA].*:[me]:[si])") 4564def _g_cond_g2_169 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4565 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f:[si]", ":(?:V0|Oo|[NA].*:[me]:[si])") 4566def _g_cond_g2_170 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4567 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f:s", ":(?:V0|Oo|[NA].*:[me]:[pi])") 4568def _g_cond_g2_171 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4569 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m:s", ":(?:V0|Oo|[NA].*:[me]:[pi])") 4570def _g_cond_g2_172 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4571 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f:[pi]", ":(?:V0|Oo|[NA].*:[me]:[pi])") 4572def _g_cond_g2_173 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4573 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m:p", ":(?:V0|Oo|[NA].*:[fe]:[si])") 4574def _g_cond_g2_174 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4575 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f:p", ":(?:V0|Oo|[NA].*:[fe]:[si])") 4576def _g_cond_g2_175 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4577 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m:[si]", ":(?:V0|Oo|[NA].*:[fe]:[si])") 4578def _g_cond_g2_176 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4579 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m:s", ":(?:V0|Oo|[NA].*:[fe]:[pi])") 4580def _g_cond_g2_177 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4581 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f:s", ":(?:V0|Oo|[NA].*:[fe]:[pi])") 4582def _g_cond_g2_178 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4583 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m:[pi]", ":(?:V0|Oo|[NA].*:[fe]:[pi])") 4584def _g_cond_g2_179 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4585 return not g_value(lToken[nTokenOffset], "|tel|telle|") 4586def _g_cond_g2_180 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4587 return not g_value(lToken[nTokenOffset], "|tels|telles|") 4588def _g_sugg_g2_114 (lToken, nTokenOffset, nLastToken): 4589 return lToken[nTokenOffset+1]["sValue"][:-1] 4590def _g_cond_g2_181 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4591 return not g_value(lToken[nTokenOffset], "|tel|telle|") and g_morph(lToken[nTokenOffset+4], ":[NA].*:[fe]", ":m") 4592def _g_cond_g2_182 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4593 return not g_value(lToken[nTokenOffset], "|tel|telle|") and g_morph(lToken[nTokenOffset+4], ":[NA].*:f", ":[me]") 4594def _g_cond_g2_183 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4595 return not g_value(lToken[nTokenOffset], "|tel|telle|") and g_morph(lToken[nTokenOffset+4], ":[NA].*:[me]", ":f") 4596def _g_cond_g2_184 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4597 return not g_value(lToken[nTokenOffset], "|tel|telle|") and g_morph(lToken[nTokenOffset+4], ":[NA].*:m", ":[fe]") 4598def _g_cond_g2_185 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4599 return not g_value(lToken[nTokenOffset], "|tels|telles|") and g_morph(lToken[nTokenOffset+4], ":[NA].*:f", ":[me]") 4600def _g_cond_g2_186 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4601 return not g_value(lToken[nTokenOffset], "|tels|telles|") and g_morph(lToken[nTokenOffset+4], ":[NA].*:m", ":[fe]") 4602def _g_cond_g2_187 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4603 return g_morph(lToken[nLastToken-1+1], ":[NA].*:m", ":[fe]") 4604def _g_cond_g2_188 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4605 return g_morph(lToken[nTokenOffset+5], ":[NA].*:f", ":[me]") 4606def _g_sugg_g2_115 (lToken, nTokenOffset, nLastToken): 4607 return suggMasPlur(lToken[nTokenOffset+3]["sValue"]) 4608def _g_cond_g2_189 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4609 return not g_morph(lToken[nTokenOffset], ":[NA]|>(?:et|ou)/") and not g_morph(lToken[nTokenOffset+3], ">seul/") 4610def _g_sugg_g2_116 (lToken, nTokenOffset, nLastToken): 4611 return suggMasPlur(lToken[nTokenOffset+4]["sValue"], True) 4612def _g_cond_g2_190 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4613 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[pi]", ":G") and g_morph(lToken[nTokenOffset+4], ":[NA].*:s", "*") and not apposition(lToken[nTokenOffset+3]["sValue"], lToken[nTokenOffset+4]["sValue"]) and not (g_value(lToken[nLastToken+1], "|et|,|") and g_morph(g_token(lToken, nLastToken+2), ":A")) and not (g_value(lToken[nTokenOffset+1], "|de|d’|") and g_value(lToken[nTokenOffset], "|un|une|")) 4614def _g_sugg_g2_117 (lToken, nTokenOffset, nLastToken): 4615 return suggMasPlur(lToken[nTokenOffset+4]["sValue"]) 4616def _g_sugg_g2_118 (lToken, nTokenOffset, nLastToken): 4617 return suggFemPlur(lToken[nTokenOffset+3]["sValue"]) 4618def _g_sugg_g2_119 (lToken, nTokenOffset, nLastToken): 4619 return suggFemPlur(lToken[nTokenOffset+4]["sValue"], True) 4620def _g_sugg_g2_120 (lToken, nTokenOffset, nLastToken): 4621 return suggFemPlur(lToken[nTokenOffset+4]["sValue"]) 4622def _g_cond_g2_191 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4623 return lToken[nTokenOffset+2]["sValue"] != "cents" 4624def _g_cond_g2_192 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4625 return g_morph(lToken[nLastToken-1+1], ":A.*:f") 4626def _g_sugg_g2_121 (lToken, nTokenOffset, nLastToken): 4627 return suggMasSing(lToken[nLastToken-1+1]["sValue"], True) 4628def _g_cond_g2_193 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4629 return not bCondMemo and g_morph(lToken[nLastToken-1+1], ":A.*:p") 4630def _g_sugg_g2_122 (lToken, nTokenOffset, nLastToken): 4631 return suggMasSing(lToken[nLastToken-1+1]["sValue"]) 4632def _g_cond_g2_194 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4633 return g_morph(lToken[nLastToken-1+1], ":A.*:m") 4634def _g_sugg_g2_123 (lToken, nTokenOffset, nLastToken): 4635 return suggFemSing(lToken[nLastToken-1+1]["sValue"], True) 4636def _g_sugg_g2_124 (lToken, nTokenOffset, nLastToken): 4637 return suggFemSing(lToken[nLastToken-1+1]["sValue"]) 4638def _g_sugg_g2_125 (lToken, nTokenOffset, nLastToken): 4639 return suggMasPlur(lToken[nLastToken-1+1]["sValue"], True) 4640def _g_cond_g2_195 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4641 return not bCondMemo and g_morph(lToken[nLastToken-1+1], ":A.*:s") 4642def _g_sugg_g2_126 (lToken, nTokenOffset, nLastToken): 4643 return suggMasPlur(lToken[nLastToken-1+1]["sValue"]) 4644def _g_sugg_g2_127 (lToken, nTokenOffset, nLastToken): 4645 return suggFemPlur(lToken[nLastToken-1+1]["sValue"], True) 4646def _g_sugg_g2_128 (lToken, nTokenOffset, nLastToken): 4647 return suggFemPlur(lToken[nLastToken-1+1]["sValue"]) 4648def _g_cond_g2_196 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4649 return not g_value(lToken[nTokenOffset+1], "|neuf|mille|") and g_morph(lToken[nTokenOffset+2], ":[NA].*:s", "*") and not g_morph(lToken[nTokenOffset], ":D.*:s") and not g_value(lToken[nTokenOffset+2], "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") and not re.search("^[IVXLDM]+$", lToken[nTokenOffset+1]["sValue"]) 4650def _g_cond_g2_197 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4651 return g_morph(lToken[nTokenOffset+2], ":[NA].*:s", "*") and not g_morph(lToken[nTokenOffset], ":N.*:m:[is]") and not g_morph(lToken[nTokenOffset], ":D.*:s") and not g_value(lToken[nTokenOffset+2], "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") 4652def _g_cond_g2_198 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4653 return not g_value(lToken[nTokenOffset+2], "|maximum|minimum|multiplié|divisé|") and g_morph(lToken[nTokenOffset+2], ":[NA].*:s", "*") and not g_morph(lToken[nTokenOffset], ":D.*:s") 4654def _g_cond_g2_199 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4655 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and not g_value(lToken[nTokenOffset+2], "|Rois|Corinthiens|Thessaloniciens|") 4656def _g_cond_g2_200 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4657 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and not g_value(lToken[nTokenOffset], "|/|") and not re.search("^0*[01](?:,[0-9]+|)$", lToken[nTokenOffset+1]["sValue"]) and g_morph(lToken[nTokenOffset+2], ":[NA].*:s", "*") and not g_morph(lToken[nTokenOffset], ":(?:N|D.*:s)") and not g_value(lToken[nTokenOffset+2], "|maximum|minimum|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") 4658def _g_cond_g2_201 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4659 return not g_value(lToken[nTokenOffset+2], "|maximum|minimum|fois|multiplié|divisé|janvier|février|mars|avril|mai|juin|juillet|août|aout|septembre|octobre|novembre|décembre|rue|route|ruelle|place|boulevard|avenue|allée|chemin|sentier|square|impasse|cour|quai|chaussée|côte|vendémiaire|brumaire|frimaire|nivôse|pluviôse|ventôse|germinal|floréal|prairial|messidor|thermidor|fructidor|") and not re.search("^0*[01](?:,[0-9]+|)$", lToken[nTokenOffset+1]["sValue"]) and not g_morph(lToken[nTokenOffset], ">(?:et|ou)/|:(?:N|D.*:[si])") and not g_morph(lToken[nTokenOffset+3], ">(?:seul|maximum|minimum)/|:(?:[BG]|V0)") 4660def _g_cond_g2_202 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4661 return g_morph(lToken[nTokenOffset+2], ":[NA].*:[pi]", "*") and g_morph(lToken[nTokenOffset+3], ":[NA].*:s", "*") and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) and not (g_value(lToken[nLastToken+1], "|et|,|") and g_morph(g_token(lToken, nLastToken+2), ":A")) 4662def _g_sugg_g2_129 (lToken, nTokenOffset, nLastToken): 4663 return lToken[nTokenOffset+2]["sValue"][:-1] 4664def _g_cond_g2_203 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4665 return ((g_morph(lToken[nTokenOffset+2], ":m", "*") and g_morph(lToken[nTokenOffset+3], ":f", "*")) or (g_morph(lToken[nTokenOffset+2], ":f", "*") and g_morph(lToken[nTokenOffset+3], ":m", "*"))) and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4666def _g_cond_g2_204 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4667 return ((g_morph(lToken[nTokenOffset+2], ":s", "*") and g_morph(lToken[nTokenOffset+3], ":p", "*")) or (g_morph(lToken[nTokenOffset+2], ":p", "*") and g_morph(lToken[nTokenOffset+3], ":s", "*"))) and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4668def _g_sugg_g2_130 (lToken, nTokenOffset, nLastToken): 4669 return switchPlural(lToken[nTokenOffset+3]["sValue"]) 4670def _g_sugg_g2_131 (lToken, nTokenOffset, nLastToken): 4671 return switchPlural(lToken[nTokenOffset+2]["sValue"]) 4672def _g_cond_g2_205 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4673 return g_morph(lToken[nTokenOffset+2], ":p") and g_morph(lToken[nTokenOffset+3], ":[pi]") and g_morph(lToken[nTokenOffset+4], ":s") and lToken[nTokenOffset+4]["sValue"].islower() 4674def _g_sugg_g2_132 (lToken, nTokenOffset, nLastToken): 4675 return switchPlural(lToken[nTokenOffset+4]["sValue"]) 4676def _g_cond_g2_206 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4677 return g_morph(lToken[nTokenOffset+2], ":i") and g_morph(lToken[nTokenOffset+3], ":p") and g_morph(lToken[nTokenOffset+4], ":s") and lToken[nTokenOffset+4]["sValue"].islower() 4678def _g_cond_g2_207 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4679 return g_morph(lToken[nTokenOffset+2], ":s") and g_morph(lToken[nTokenOffset+3], ":[si]") and g_morph(lToken[nTokenOffset+4], ":p") and lToken[nTokenOffset+4]["sValue"].islower() 4680def _g_cond_g2_208 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4681 return g_morph(lToken[nTokenOffset+2], ":i") and g_morph(lToken[nTokenOffset+3], ":s") and g_morph(lToken[nTokenOffset+4], ":p") and lToken[nTokenOffset+4]["sValue"].islower() 4682def _g_cond_g2_209 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4683 return ( (g_morph(lToken[nTokenOffset+2], ":p", "*") and g_morph(lToken[nTokenOffset+3], ":s", "*")) or (g_morph(lToken[nTokenOffset+2], ":s", "*") and g_morph(lToken[nTokenOffset+3], ":p", "*")) ) and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4684def _g_cond_g2_210 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4685 return ( (g_morph(lToken[nTokenOffset+2], ":m", ":[fe]") and g_morph(lToken[nTokenOffset+3], ":f", "*")) or (g_morph(lToken[nTokenOffset+2], ":f", ":[me]") and g_morph(lToken[nTokenOffset+3], ":m", "*")) ) and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4686def _g_cond_g2_211 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4687 return ( (g_morph(lToken[nTokenOffset+2], ":p", ":[si]") and g_morph(lToken[nTokenOffset+3], ":s", "*")) or (g_morph(lToken[nTokenOffset+2], ":s", ":[pi]") and g_morph(lToken[nTokenOffset+3], ":p", "*")) ) and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) 4688def _g_cond_g2_212 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4689 return ( (g_morph(lToken[nTokenOffset+2], ":m", ":[fe]") and g_morph(lToken[nTokenOffset+3], ":f", "*")) or (g_morph(lToken[nTokenOffset+2], ":f", ":[me]") and g_morph(lToken[nTokenOffset+3], ":m", "*")) ) and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) and not g_morph(lToken[nTokenOffset], ":[NA]|>(?:et|ou)/") 4690def _g_cond_g2_213 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4691 return ( (g_morph(lToken[nTokenOffset+2], ":p", ":[si]") and g_morph(lToken[nTokenOffset+3], ":s", "*")) or (g_morph(lToken[nTokenOffset+2], ":s", ":[pi]") and g_morph(lToken[nTokenOffset+3], ":p", "*")) ) and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) and not g_morph(lToken[nTokenOffset], ":[NA]|>(?:et|ou)/") 4692def _g_cond_g2_214 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4693 return ( (g_morph(lToken[nTokenOffset+2], ":m", ":[fe]") and g_morph(lToken[nTokenOffset+3], ":f", "*")) or (g_morph(lToken[nTokenOffset+2], ":f", ":[me]") and g_morph(lToken[nTokenOffset+3], ":m", "*")) ) and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) and g_morph(lToken[nTokenOffset], ":[VRX]|<start>") 4694def _g_cond_g2_215 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4695 return ( (g_morph(lToken[nTokenOffset+2], ":p", ":[si]") and g_morph(lToken[nTokenOffset+3], ":s", "*")) or (g_morph(lToken[nTokenOffset+2], ":s", ":[pi]") and g_morph(lToken[nTokenOffset+3], ":p", "*")) ) and not apposition(lToken[nTokenOffset+2]["sValue"], lToken[nTokenOffset+3]["sValue"]) and g_morph(lToken[nTokenOffset], ":[VRX]|<start>") 4696def _g_cond_g2_216 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4697 return lToken[nTokenOffset+3]["sValue"].islower() 4698def _g_cond_g2_217 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4699 return g_morph(lToken[nTokenOffset+6], ":[NA].*:(?:m|f:p)", ":(?:G|P|[fe]:[is]|V0|3[sp])") and g_morph(lToken[nTokenOffset+5], ":[NA].*:[fe]") and not apposition(lToken[nTokenOffset+5]["sValue"], lToken[nTokenOffset+6]["sValue"]) 4700def _g_sugg_g2_133 (lToken, nTokenOffset, nLastToken): 4701 return suggFemSing(lToken[nTokenOffset+6]["sValue"], True) 4702def _g_cond_g2_218 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4703 return g_morph(lToken[nTokenOffset+6], ":[NA].*:(?:f|m:p)", ":(?:G|P|[me]:[is]|V0|3[sp])") and g_morph(lToken[nTokenOffset+5], ":[NA].*:[me]") and not apposition(lToken[nTokenOffset+5]["sValue"], lToken[nTokenOffset+6]["sValue"]) 4704def _g_sugg_g2_134 (lToken, nTokenOffset, nLastToken): 4705 return suggMasSing(lToken[nTokenOffset+6]["sValue"], True) 4706def _g_cond_g2_219 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4707 return g_morph(lToken[nTokenOffset+5], ":[NA].*:(?:f|m:p)", ":(?:G|P|[me]:[is]|V0|3[sp])") and g_morph(lToken[nTokenOffset+4], ":[NA].*:[me]") and not apposition(lToken[nTokenOffset+4]["sValue"], lToken[nTokenOffset+5]["sValue"]) 4708def _g_sugg_g2_135 (lToken, nTokenOffset, nLastToken): 4709 return suggMasSing(lToken[nTokenOffset+5]["sValue"], True) 4710def _g_cond_g2_220 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4711 return g_morph(lToken[nTokenOffset+5], ":", ":[NA].*:f|>[aéeiou].*:e") and g_morph(lToken[nTokenOffset+6], ":[NA].*:(?:f|m:p)", ":(?:G|P|m:[is]|V0|3[sp])") and not apposition(lToken[nTokenOffset+5]["sValue"], lToken[nTokenOffset+6]["sValue"]) 4712def _g_cond_g2_221 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4713 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m", ":G|>[aéeiou].*:[ef]") and g_morph(lToken[nLastToken-1+1], ":[NA].*:(?:f|m:p)", ":(?:G|P|[me]:[is]|V0|3[sp])") and not apposition(lToken[nLastToken-2+1]["sValue"], lToken[nLastToken-1+1]["sValue"]) 4714def _g_cond_g2_222 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4715 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m", ":G|>[aéeiou].*:[ef]") and not g_morph(lToken[nLastToken-2+1], ":[NA].*:f|>[aéeiou].*:e") and g_morph(lToken[nLastToken-1+1], ":[NA].*:(?:f|m:p)", ":(?:G|P|[me]:[is]|V0|3[sp])") and not apposition(lToken[nLastToken-2+1]["sValue"], lToken[nLastToken-1+1]["sValue"]) 4716def _g_cond_g2_223 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4717 return g_morph(lToken[nLastToken-1+1], ":[NA].*:s", ":(?:G|P|[me]:[ip]|V0|3[sp])") and g_morph(lToken[nLastToken-2+1], ":[NA].*:[pi]") and not apposition(lToken[nLastToken-2+1]["sValue"], lToken[nLastToken-1+1]["sValue"]) and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":A.*:[si]")) 4718def _g_sugg_g2_136 (lToken, nTokenOffset, nLastToken): 4719 return suggPlur(lToken[nLastToken-1+1]["sValue"]) 4720def _g_cond_g2_224 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4721 return not g_value(lToken[nTokenOffset+4], "|bâtiment|collège|corps|culte|établissement|groupe|journal|lycée|pays|régiment|vaisseau|village|") 4722def _g_sugg_g2_137 (lToken, nTokenOffset, nLastToken): 4723 return "leurs " + suggPlur(lToken[nTokenOffset+4]["sValue"]) 4724def _g_cond_g2_225 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4725 return not g_value(lToken[nTokenOffset+4], "|armée|cité|compagnie|entreprise|église|fac|nation|université|planète|promotion|religion|unité|ville|") 4726def _g_cond_g2_226 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4727 return g_morph(lToken[nTokenOffset+3], ":N.*:m:[si]", ":f") and g_morph(lToken[nTokenOffset+4], ":R", ">à/") 4728def _g_cond_g2_227 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4729 return g_morph(lToken[nTokenOffset+3], ":N.*:f:[si]", ":m") and g_morph(lToken[nTokenOffset+4], ":R", ">à/") 4730def _g_cond_g2_228 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4731 return g_morph(lToken[nTokenOffset+3], ":N.*:m:[pi]", ":f") and g_morph(lToken[nTokenOffset+4], ":R", ">à/") 4732def _g_cond_g2_229 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4733 return g_morph(lToken[nTokenOffset+3], ":N.*:f:[pi]", ":m") and g_morph(lToken[nTokenOffset+4], ":R", ">à/") 4734def _g_cond_g2_230 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4735 return g_morph(lToken[nTokenOffset+3], ":N.*:m:[si]", ":f") 4736def _g_cond_g2_231 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4737 return g_morph(lToken[nTokenOffset+3], ":N.*:m:[si]", ":f:[si]") 4738def _g_cond_g2_232 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4739 return g_morph(lToken[nTokenOffset+3], ":N.*:f:[si]", ":m") 4740def _g_cond_g2_233 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4741 return g_morph(lToken[nTokenOffset+3], ":N.*:m:[pi]") 4742def _g_cond_g2_234 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4743 return g_morph(lToken[nTokenOffset+3], ":N.*:f:[pi]", ":m") 4744def _g_cond_g2_235 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4745 return g_morph(lToken[nTokenOffset+2], ":R") and g_morph(lToken[nTokenOffset+4], ":N.*:m:[pi]", ":f:[pi]") 4746def _g_cond_g2_236 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4747 return g_morph(lToken[nTokenOffset+2], ":R") and g_morph(lToken[nTokenOffset+4], ":N.*:f:[pi]", ":m:[pi]") 4748def _g_cond_g2_237 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4749 return g_morph(lToken[nTokenOffset+3], ":N.*:m:[pi]", ":f:[pi]") 4750def _g_cond_g2_238 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4751 return g_morph(lToken[nTokenOffset+3], ":N.*:f:[pi]", ":m:[pi]") 4752def _g_cond_g2_239 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4753 return g_morph(lToken[nTokenOffset], ":N", ":[GAVWM]") 4754def _g_cond_g2_240 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4755 return g_morph(lToken[nTokenOffset], ":N", ":D") and (not g_morph(lToken[nTokenOffset+1], ":[me]:[si]") or g_morph(lToken[nTokenOffset+2], ":[pf]")) 4756def _g_sugg_g2_138 (lToken, nTokenOffset, nLastToken): 4757 return suggSing(lToken[nTokenOffset+1]["sValue"]) + " " + suggMasSing(lToken[nTokenOffset+2]["sValue"]) 4758def _g_sugg_g2_139 (lToken, nTokenOffset, nLastToken): 4759 return suggMasSing(lToken[nTokenOffset+1]["sValue"]) + " " + suggMasSing(lToken[nTokenOffset+2]["sValue"]) 4760def _g_cond_g2_241 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4761 return g_morph(lToken[nTokenOffset], ":N", ":D") and (not g_morph(lToken[nTokenOffset+1], ":[me]:[si]") or g_morph(lToken[nTokenOffset+2], ":p")) 4762def _g_sugg_g2_140 (lToken, nTokenOffset, nLastToken): 4763 return suggSing(lToken[nTokenOffset+1]["sValue"]) + " " + suggSing(lToken[nTokenOffset+2]["sValue"]) 4764def _g_sugg_g2_141 (lToken, nTokenOffset, nLastToken): 4765 return suggMasSing(lToken[nTokenOffset+1]["sValue"]) + " " + suggSing(lToken[nTokenOffset+2]["sValue"]) 4766def _g_cond_g2_242 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4767 return not g_morph(lToken[nTokenOffset], ":D") 4768def _g_sugg_g2_142 (lToken, nTokenOffset, nLastToken): 4769 return suggPlur(lToken[nLastToken-2+1]["sValue"]) 4770def _g_cond_g2_243 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4771 return not g_value(lToken[nTokenOffset], "|quatre|") 4772def _g_cond_g2_244 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4773 return not g_morph(lToken[nLastToken+1], ":B") and not g_morph(lToken[nTokenOffset], ">(?:numéro|page|chapitre|référence|année|test|série)/") 4774def _g_sugg_g2_143 (lToken, nTokenOffset, nLastToken): 4775 return lToken[nTokenOffset+1]["sValue"].replace("vingts", "vingt").replace("VINGTS", "VINGT") 4776def _g_cond_g2_245 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4777 return not g_morph(lToken[nLastToken+1], ":B:e:p|>une?") and not g_morph(lToken[nTokenOffset], ">(?:numéro|page|chapitre|référence|année|test|série)/") 4778def _g_cond_g2_246 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4779 return g_morph(lToken[nLastToken+1], ":B:e:p|>une?") 4780def _g_cond_g2_247 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4781 return g_morph(lToken[nTokenOffset], ":[VR]|<start>", ":B") 4782def _g_cond_g2_248 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4783 return g_morph(lToken[nLastToken+1], ":(?:B:e:p|N.*:p)", ":[QA]") or (g_morph(lToken[nTokenOffset], ":B") and g_morph(lToken[nLastToken+1], ":[NA]")) 4784def _g_cond_g2_249 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4785 return g_morph(lToken[nTokenOffset+3], ":[NA].*:s", ":[ip]|>o(?:nde|xydation|r)/") and g_morph(lToken[nTokenOffset], ":(?:G|[123][sp])|<start>|>,", ":[AD]") 4786def _g_cond_g2_250 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4787 return g_morph(lToken[nTokenOffset+4], ":[NA].*:s", ":[ip]|>fraude/") 4788def _g_cond_g2_251 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4789 return g_morph(lToken[nTokenOffset], ":D|<start>") 4790def _g_sugg_g2_144 (lToken, nTokenOffset, nLastToken): 4791 return lToken[nTokenOffset+3]["sValue"][:-1] 4792def _g_cond_g2_252 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4793 return g_morph(lToken[nTokenOffset+4], ":(?:N|MP)") 4794def _g_sugg_g2_145 (lToken, nTokenOffset, nLastToken): 4795 return lToken[nTokenOffset+1]["sValue"][:-2]+"s" 4796def _g_cond_g2_253 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4797 return g_morph(lToken[nTokenOffset], ":V.*:[123]|>(?:tou(?:te|)s|pas|rien|guère|jamais|toujours|souvent)/", ":[DRB]") 4798def _g_cond_g2_254 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4799 return lToken[nTokenOffset+1]["sValue"].islower() and g_morph(lToken[nTokenOffset], ":V", ":[DA]") and not g_morph(lToken[nLastToken+1], ":[NA].*:[pi]") and not (g_morph(lToken[nTokenOffset], ">(?:être|sembler|devenir|rester|demeurer|redevenir|para[îi]tre|trouver)/.*:[123]p") and g_morph(lToken[nLastToken+1], ":G|<end>|>,/")) 4800def _g_cond_g2_255 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4801 return not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\b(?:lit|fauteuil|armoire|commode|guéridon|tabouret|chaise)s?\\b") and not g_morph(lToken[nLastToken+1], ">sculpter/") 4802def _g_cond_g2_256 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4803 return g_morph(lToken[nTokenOffset], ":(?:V|R|[NAQ].*:s)", ":(?:[NA].*:[pi]|V0e.*:[123]p)") 4804def _g_cond_g2_257 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4805 return not g_morph(lToken[nTokenOffset], ":D.*:f:s") 4806def _g_cond_g2_258 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4807 return not g_morph(lToken[nTokenOffset], ":V0e.*:3p") or g_morph(lToken[nLastToken+1], ":[AQ]") 4808def _g_cond_g2_259 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4809 return lToken[nTokenOffset+2]["sValue"] != "clair" and lToken[nTokenOffset+2]["sValue"] != "Claire" and g_morph(lToken[nTokenOffset+1], ":(?:[123][sp]|P|Y)") 4810def _g_cond_g2_260 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4811 return g_morph(lToken[nTokenOffset+1], ":V") 4812def _g_cond_g2_261 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4813 return g_morph(lToken[nTokenOffset], ":V", ":[AN].*:[me]:[pi]|>(?:être|sembler|devenir|re(?:ster|devenir)|para[îi]tre|appara[îi]tre)/.*:(?:[123]p|P|Q|Y)|>(?:affirmer|trouver|croire|désirer|estimer|préférer|penser|imaginer|voir|vouloir|aimer|adorer|rendre|souhaiter)/") and not g_morph(lToken[nLastToken+1], ":A.*:[me]:[pi]") 4814def _g_cond_g2_262 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4815 return g_morph(lToken[nTokenOffset], ":V", ":[AN].*:[me]:[pi]|>(?:être|sembler|devenir|re(?:ster|devenir)|para[îi]tre|appara[îi]tre)/.*:(?:[123]p|P|Q|Y)") 4816def _g_cond_g2_263 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4817 return g_morph(lToken[nTokenOffset], ":V", ":[DA].*:p") 4818def _g_cond_g2_264 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4819 return not g_morph(lToken[nTokenOffset+2], ":3[sp]") 4820def _g_sugg_g2_146 (lToken, nTokenOffset, nLastToken): 4821 return suggVerb(lToken[nTokenOffset+2]["sValue"], ":3s") 4822def _g_cond_g2_265 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4823 return not g_morph(lToken[nTokenOffset+3], ":3[sp]") 4824def _g_sugg_g2_147 (lToken, nTokenOffset, nLastToken): 4825 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":3s") 4826def _g_sugg_g2_148 (lToken, nTokenOffset, nLastToken): 4827 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":3p") 4828def _g_cond_g2_266 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4829 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]:[si]") and g_morph(lToken[nTokenOffset+4], ":Q.*:[me]:[si]", ":3s") 4830def _g_sugg_g2_149 (lToken, nTokenOffset, nLastToken): 4831 return suggSimil(lToken[nTokenOffset+4]["sValue"], ":3s") 4832def _g_cond_g2_267 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4833 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]:[si]") and g_morph(lToken[nTokenOffset+4], ":Q.*:[fe]:[si]", ":3s") 4834def _g_cond_g2_268 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4835 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[si]") and g_morph(lToken[nTokenOffset+4], ":Q.*:[si]", ":3s") 4836def _g_cond_g2_269 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4837 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[pi]") and g_morph(lToken[nTokenOffset+4], ":Q.*:[pi]", ":3s") 4838def _g_cond_g2_270 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4839 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[pi]", ":3pl") and g_morph(lToken[nTokenOffset+4], ":Q.*:[pi]", ":3s") 4840def _g_cond_g2_271 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4841 return g_morphVC(lToken[nTokenOffset+1], ">être/") 4842def _g_cond_g2_272 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4843 return lToken[nLastToken-1+1]["sValue"].islower() and g_morph(lToken[nLastToken-1+1], ":V", ":[YM]" ) 4844def _g_sugg_g2_150 (lToken, nTokenOffset, nLastToken): 4845 return suggVerbInfi(lToken[nLastToken-1+1]["sValue"]) 4846def _g_cond_g2_273 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4847 return lToken[nLastToken-1+1]["sValue"].islower() and g_morph(lToken[nLastToken-1+1], ":V", ":[NYM]" ) 4848def _g_cond_g2_274 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4849 return lToken[nLastToken-1+1]["sValue"].islower() and g_morph(lToken[nLastToken-1+1], ":V", ":[YEM]") 4850def _g_cond_g2_275 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4851 return g_morph(lToken[nLastToken-1+1], ":V", ":M") and not (lToken[nLastToken-1+1]["sValue"].endswith("ez") and g_value(lToken[nLastToken+1], "|vous|")) 4852def _g_cond_g2_276 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4853 return g_morph(lToken[nLastToken-1+1], ":V1.*:(?:Q|[123][sp])") 4854def _g_cond_g2_277 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4855 return g_morph(lToken[nLastToken-1+1], ":V1.*:(?:Q|[12][sp])", ":N") 4856def _g_cond_g2_278 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4857 return g_morph(lToken[nTokenOffset+3], ":V1", ":M") 4858def _g_sugg_g2_151 (lToken, nTokenOffset, nLastToken): 4859 return suggVerbInfi(lToken[nTokenOffset+3]["sValue"]) 4860def _g_cond_g2_279 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4861 return g_morph(lToken[nLastToken-1+1], ":V1.*:(?:Q|[123][sp])", ":[NM]") 4862def _g_cond_g2_280 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4863 return not g_morph(lToken[nTokenOffset], ">(?:passer|tenir)/") and g_morph(lToken[nLastToken-1+1], ":V1.*:(?:Q|[123][sp])", ":[NM]") 4864def _g_cond_g2_281 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4865 return not lToken[nTokenOffset+3]["sValue"][0:1].isupper() 4866def _g_cond_g2_282 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4867 return lToken[nLastToken-1+1]["sValue"].islower() 4868def _g_cond_g2_283 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4869 return not lToken[nTokenOffset+2]["sValue"][0:1].isupper() and not g_morph(lToken[nTokenOffset], ">(?:en|passer|qualifier)/") and not g_morph(lToken[nTokenOffset+2], ">(?:fieffer|sacrer)/") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)(?:quelqu(?:e chose|’une?)|qu’y a-t-il |\\b(?:l(?:es?|a)|nous|vous|me|te|se) trait|personne|points? +$|autant +$|ça +|rien d(?:e |’)|rien(?: +[a-zéèêâîûù]+|) +$)") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") 4870def _g_sugg_g2_152 (lToken, nTokenOffset, nLastToken): 4871 return suggVerbInfi(lToken[nTokenOffset+2]["sValue"]) 4872def _g_cond_g2_284 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4873 return not g_morph(lToken[nTokenOffset+1], ":N") and (g_analyse(lToken[nLastToken-1+1], ":V1.*:Q", ":(?:M|Oo)") or g_analyse(lToken[nLastToken-1+1], ":[123][sp]", ":[MNGA]")) 4874def _g_cond_g2_285 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4875 return g_analyse(lToken[nLastToken-1+1], ":Q", ":M") 4876def _g_cond_g2_286 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4877 return g_analyse(lToken[nLastToken-1+1], ":Q", ":[MN]") 4878def _g_cond_g2_287 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4879 return g_analyse(lToken[nLastToken-1+1], ":Q", ":M") and (g_value(lToken[nTokenOffset], "|me|m’|te|t’|se|s’|") or (g_value(lToken[nTokenOffset], "|nous|") and g_value(g_token(lToken, nTokenOffset+1-2), "|nous|")) or (g_value(lToken[nTokenOffset], "|vous|") and g_value(g_token(lToken, nTokenOffset+1-2), "|vous|"))) 4880def _g_cond_g2_288 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4881 return not g_value(lToken[nTokenOffset], "|une|la|cette|ma|ta|sa|notre|votre|leur|quelle|de|d’|") and g_analyse(lToken[nLastToken-1+1], ":Q", ":M") 4882def _g_cond_g2_289 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4883 return g_morph(lToken[nLastToken-1+1], ":(?:Q|2p)", ":M") and not (lToken[nLastToken-1+1]["sValue"].endswith("ez") and g_value(lToken[nLastToken+1], "|vous|")) 4884def _g_cond_g2_290 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4885 return g_morph(lToken[nTokenOffset+2], ":V", ":[123][sp]") 4886def _g_cond_g2_291 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4887 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 3) and g_morph(lToken[nTokenOffset+2], ":Q") and not g_morph(lToken[nTokenOffset], "V0.*[12]p") 4888def _g_cond_g2_292 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4889 return not g_value(lToken[nTokenOffset+1], "|devoirs|") and g_morph(lToken[nLastToken-1+1], ":V", ":M") and not (g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nTokenOffset], ":D")) and not (g_value(lToken[nTokenOffset+1], "|devant|") and g_morph(lToken[nLastToken-1+1], ":N")) 4890def _g_cond_g2_293 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4891 return not g_value(lToken[nTokenOffset+1], "|devoirs|") and g_morph(lToken[nLastToken-1+1], ":V", ":M") and not (g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nTokenOffset], ":D")) and not (g_value(lToken[nTokenOffset+1], "|devant|") and g_morph(lToken[nLastToken-1+1], ":N")) and not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") 4892def _g_cond_g2_294 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4893 return g_morph(lToken[nLastToken-1+1], ":V", ":M") 4894def _g_cond_g2_295 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4895 return not g_value(lToken[nTokenOffset+1], "|puis|pouvoirs|") and g_morph(lToken[nLastToken-1+1], ":V", ":M") and not (g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nTokenOffset], ":D")) 4896def _g_cond_g2_296 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4897 return not g_value(lToken[nTokenOffset+1], "|puis|pouvoirs|") and g_morph(lToken[nLastToken-1+1], ":V", ":M") and not (g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nTokenOffset], ":D")) and not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") 4898def _g_cond_g2_297 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4899 return not g_value(lToken[nTokenOffset+1], "|savoirs|") and not g_value(lToken[nTokenOffset], "|me|m’|te|t’|se|s’|nous|vous|le|la|l’|les|") and g_morph(lToken[nLastToken-1+1], ":V", ":M") and not (g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nTokenOffset], ":D")) 4900def _g_cond_g2_298 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4901 return not g_value(lToken[nTokenOffset+1], "|savoirs|") and g_morph(lToken[nLastToken-1+1], ":V", ":M") and not (g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nTokenOffset], ":D")) 4902def _g_cond_g2_299 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4903 return not g_value(lToken[nTokenOffset+1], "|savoirs|") and g_morph(lToken[nLastToken-1+1], ":V", ":M") and not (g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nTokenOffset], ":D")) and not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") 4904def _g_cond_g2_300 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4905 return not g_value(lToken[nTokenOffset+1], "|vouloirs|") and not g_value(lToken[nTokenOffset], "|me|m’|te|t’|se|s’|nous|vous|le|la|l’|les|") and g_morph(lToken[nLastToken-1+1], ":V", ":M") and not (g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nTokenOffset], ":D")) 4906def _g_cond_g2_301 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4907 return not g_value(lToken[nTokenOffset+1], "|vouloirs|") and g_morph(lToken[nLastToken-1+1], ":V", ":[MN]") and not (g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nTokenOffset], ":D")) 4908def _g_cond_g2_302 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4909 return not g_value(lToken[nTokenOffset+1], "|vouloirs|") and g_morph(lToken[nLastToken-1+1], ":V", ":M") and not (g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nTokenOffset], ":D")) 4910def _g_cond_g2_303 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4911 return not g_value(lToken[nTokenOffset+1], "|vouloirs|") and g_morph(lToken[nLastToken-1+1], ":V", ":M") and not (g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nTokenOffset], ":D")) and not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") 4912def _g_cond_g2_304 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4913 return g_morphVC(lToken[nTokenOffset+1], ">(?:devoir|savoir|pouvoir|vouloir)/") and g_morph(lToken[nLastToken-1+1], ":(?:Q|A|[123][sp])", ":[GYW]") 4914def _g_cond_g2_305 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4915 return g_morphVC(lToken[nTokenOffset+1], ">(?:devoir|savoir|pouvoir|vouloir)/") and g_morph(lToken[nLastToken-1+1], ":(?:Q|A|[123][sp])", ":[GYWN]") 4916def _g_cond_g2_306 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4917 return not (g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") and g_morph(lToken[nLastToken-1+1], ":3[sp]")) 4918def _g_cond_g2_307 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4919 return not g_morph(lToken[nTokenOffset], ">(?:en|de|être)/") and g_morph(lToken[nTokenOffset+2], ":V", ":[MG]") and not (g_morph(lToken[nTokenOffset+1], ":N") and g_morph(lToken[nTokenOffset+2], ":Q.*:m:[sp]")) 4920def _g_cond_g2_308 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4921 return g_morph(lToken[nTokenOffset+3], ":V1.*:(?:Q|Ip.*:2p|Iq.*:[123]s)", ">désemparer/.*:Q") 4922def _g_cond_g2_309 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4923 return g_morph(lToken[nLastToken-1+1], ":V1.*:(?:Q|Ip.*:2p|Iq.*:[123]s)", ">désemparer/.*:Q|:N") 4924def _g_cond_g2_310 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4925 return g_morph(lToken[nLastToken-1+1], ":V1.*:(?:Q|Ip.*:2p|Iq.*:[123]s)", ">désemparer/.*:Q") 4926def _g_cond_g2_311 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4927 return not g_morph(lToken[nTokenOffset+2], ":N") and g_morph(lToken[nTokenOffset+3], ":V1.*:(?:Q|Ip.*:2p)", ">désemparer/.*:Q") 4928def _g_cond_g2_312 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4929 return not g_morph(lToken[nTokenOffset+2], ":N") and g_morph(lToken[nLastToken-1+1], ":V1.*:(?:Q|Ip.*:2p|Iq.*:[123]s)", ">désemparer/.*:Q|:N") 4930def _g_cond_g2_313 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4931 return not g_morph(lToken[nTokenOffset+2], ":N") and g_morph(lToken[nLastToken-1+1], ":V1.*:(?:Q|Ip.*:2p|Iq.*:[123]s)", ">désemparer/.*:Q") 4932def _g_cond_g2_314 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4933 return g_morphVC(lToken[nTokenOffset+1], ">laisser") and (g_morph(lToken[nTokenOffset+2], ":V1.*:(?:Q|Ip.*:2[sp])", ">désemparer/.*:Q") or (not g_morph(lToken[nTokenOffset], ":D") and g_morph(lToken[nLastToken-1+1], ":V1.*:Iq.*:[123]s", ">désemparer/.*:Q"))) 4934def _g_cond_g2_315 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4935 return g_morphVC(lToken[nTokenOffset+1], ">laisser") and (g_morph(lToken[nLastToken-1+1], ":V1.*:(?:Q|Ip.*:2[sp])", ">désemparer/.*:Q|:N") or (not g_morph(lToken[nTokenOffset], ":D") and g_morph(lToken[nLastToken-1+1], ":V1.*:Iq.*:[123]s", ">désemparer/.*:Q|:N"))) 4936def _g_cond_g2_316 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4937 return g_morphVC(lToken[nTokenOffset+1], ">laisser") and (g_morph(lToken[nLastToken-1+1], ":V1.*:(?:Q|Ip.*:2[sp])", ">désemparer/.*:Q") or (not g_morph(lToken[nTokenOffset], ":D") and g_morph(lToken[nLastToken-1+1], ":V1.*:Iq.*:[123]s", ">désemparer/.*:Q"))) 4938def _g_cond_g2_317 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4939 return g_analyse(lToken[nLastToken-1+1], ":V1.*:(?:Q|[123][sp])", ":[GM]") 4940def _g_cond_g2_318 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4941 return g_morph(lToken[nTokenOffset+1], ":", ":[GN]") and g_morph(lToken[nTokenOffset+2], ":V", ":M") 4942def _g_cond_g2_319 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4943 return g_morph(lToken[nTokenOffset+1], ":", ":[GN]") and g_morph(lToken[nTokenOffset+2], ":V", ":M") and not g_value(lToken[nTokenOffset], "|le|la|l’|les|") 4944def _g_cond_g2_320 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4945 return g_morph(lToken[nTokenOffset+1], ":", ":[GN]") and g_morph(lToken[nLastToken-1+1], ":V", ":M|>(?:accompagner|armer|armurer|casquer|débrailler|déguiser|épuiser)/") and not g_value(lToken[nLastToken+1], "|par|") 4946def _g_cond_g2_321 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4947 return g_morph(lToken[nLastToken-1+1], ":V1") 4948def _g_cond_g2_322 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4949 return not g_value(lToken[nTokenOffset], "|que|qu’|") 4950def _g_cond_g2_323 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4951 return g_space_between_tokens(lToken[nTokenOffset+3], lToken[nTokenOffset+3+1], 1, 1) 4952def _g_sugg_g2_153 (lToken, nTokenOffset, nLastToken): 4953 return "a "+suggVerbPpas(lToken[nTokenOffset+4]["sValue"], ":m:s") 4954def _g_sugg_g2_154 (lToken, nTokenOffset, nLastToken): 4955 return suggVerbPpas(lToken[nTokenOffset+4]["sValue"], ":m:s") 4956def _g_cond_g2_324 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4957 return g_space_between_tokens(lToken[nTokenOffset+4], lToken[nTokenOffset+4+1], 1, 1) 4958def _g_sugg_g2_155 (lToken, nTokenOffset, nLastToken): 4959 return "a "+suggVerbPpas(lToken[nTokenOffset+5]["sValue"], ":m:s") 4960def _g_sugg_g2_156 (lToken, nTokenOffset, nLastToken): 4961 return suggVerbPpas(lToken[nTokenOffset+5]["sValue"], ":m:s") 4962def _g_cond_g2_325 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4963 return g_space_between_tokens(lToken[nTokenOffset+5], lToken[nTokenOffset+5+1], 1, 1) 4964def _g_sugg_g2_157 (lToken, nTokenOffset, nLastToken): 4965 return "a "+suggVerbPpas(lToken[nTokenOffset+6]["sValue"], ":m:s") 4966def _g_sugg_g2_158 (lToken, nTokenOffset, nLastToken): 4967 return suggVerbPpas(lToken[nTokenOffset+6]["sValue"], ":m:s") 4968def _g_cond_g2_326 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4969 return g_morph(lToken[nTokenOffset+2], ":V1.*:Y") 4970def _g_sugg_g2_159 (lToken, nTokenOffset, nLastToken): 4971 return suggVerbPpas(lToken[nTokenOffset+2]["sValue"]) 4972def _g_cond_g2_327 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4973 return not (g_value(lToken[nLastToken-1+1], "|nous|vous|") and g_morph(lToken[nLastToken+1], ":Y")) 4974def _g_cond_g2_328 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4975 return g_morph(lToken[nTokenOffset+3], ":[NA].*:p", ":(?:[NA].*:[si]|G)") 4976def _g_cond_g2_329 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4977 return not bCondMemo and g_morph(lToken[nTokenOffset+3], ":[NA].*:s", ":(?:[NA].*:[pi]|G)") 4978def _g_cond_g2_330 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4979 return not g_value(lToken[nTokenOffset+2], "|été|") 4980def _g_cond_g2_331 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4981 return g_morph(lToken[nTokenOffset+2], ":[NA]", ":(?:[123]p|P|X|G|V0)") and g_morph(lToken[nTokenOffset+3], ":[NA]", ":(?:G|[123][sp]|P|M)") 4982def _g_cond_g2_332 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4983 return g_morph(lToken[nTokenOffset+3], ":N", ":A") and g_morph(lToken[nTokenOffset+2], ":A", ":N") 4984def _g_cond_g2_333 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4985 return g_morph(lToken[nTokenOffset+2], ":[NA]", ":(?:[123]p|P|X|G|Y|V0)") and g_morph(lToken[nTokenOffset+3], ":[NA]", ":(?:G|[123][sp]|P|M)") 4986def _g_cond_g2_334 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4987 return g_morph(lToken[nTokenOffset+3], ":N", ":A") and g_morph(lToken[nTokenOffset+2], ":A") 4988def _g_cond_g2_335 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4989 return g_morph(lToken[nTokenOffset+2], ":[NA]", ":(?:[123][sp]|P|X|G|Y|V0)|>air/") and g_morph(lToken[nTokenOffset+3], ":[NA]", ":(?:G|[123][sp]|P|M)") 4990def _g_cond_g2_336 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4991 return not g_value(lToken[nTokenOffset], "|le|la|du|au|") and g_morph(lToken[nTokenOffset+2], ":[NA]", ":(?:[123]p|P|X|G|Y|V0)") and g_morph(lToken[nTokenOffset+3], ":[NA]", ":(?:G|[123][sp]|P|M)") 4992def _g_cond_g2_337 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4993 return not g_value(lToken[nTokenOffset], "|des|les|aux|") and g_morph(lToken[nTokenOffset+2], ":[NA]", ":(?:[123]p|P|X|G|Y|V0)") and g_morph(lToken[nTokenOffset+3], ":[NA]", ":(?:G|[123][sp]|P|M)") 4994def _g_cond_g2_338 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4995 return g_morph(lToken[nTokenOffset+2], ":[NA]") and g_morph(lToken[nTokenOffset+3], ":[NA]", ":(?:G|[123][sp]|P|M)") 4996def _g_cond_g2_339 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4997 return not g_value(lToken[nTokenOffset+2], "|autres|") 4998def _g_cond_g2_340 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 4999 return not g_morph(lToken[nTokenOffset+2], ">(?:être|demeurer|devenir|redevenir|sembler|para[îi]tre|rester)/") 5000def _g_cond_g2_341 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5001 return not g_value(lToken[nLastToken+1], "|en|") 5002def _g_cond_g2_342 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5003 return not g_value(lToken[nTokenOffset], "|j’|n’|tu|il|on|") 5004def _g_cond_g2_343 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5005 return g_morph(lToken[nTokenOffset+1], ":M") and g_morph(lToken[nTokenOffset+3], ":M") and g_morph(lToken[nTokenOffset+3], ":M") 5006def _g_cond_g2_344 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5007 return g_morph(lToken[nTokenOffset+2], ":M") and g_morph(lToken[nTokenOffset+4], ":M") 5008def _g_da_ppc2_1 (lToken, nTokenOffset, nLastToken): 5009 return g_select(lToken[nTokenOffset+2], ":Q") 5010def _g_cond_ppc2_1 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5011 return g_morph(lToken[nTokenOffset+2], ":[NA].*:[pi]") and g_morph(lToken[nTokenOffset+5], ":[NA].*:[si]") 5012def _g_cond_gv1_1 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5013 return not g_value(lToken[nTokenOffset+1], "|êtres|") 5014def _g_cond_gv1_2 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5015 return lToken[nTokenOffset+2]["sValue"].endswith("e") and g_morph(lToken[nTokenOffset+2], ":V1.*:Ip.*:[13]s", ":[GMA]") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\belle +(?:ne +|n’|)$") 5016def _g_sugg_gv1_1 (lToken, nTokenOffset, nLastToken): 5017 return suggVerbPpas(lToken[nTokenOffset+2]["sValue"], ":m:s") 5018def _g_cond_gv1_3 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5019 return not bCondMemo and lToken[nTokenOffset+2]["sValue"].endswith("s") and g_morph(lToken[nTokenOffset+2], ":V1.*:Ip.*:2s", ":[GMA]") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\belles +(?:ne +|n’|)$") 5020def _g_sugg_gv1_2 (lToken, nTokenOffset, nLastToken): 5021 return suggVerbPpas(lToken[nTokenOffset+2]["sValue"], ":m:p") 5022def _g_cond_gv1_4 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5023 return not g_value(lToken[nTokenOffset+1], "|avoirs|") 5024def _g_cond_gv1_5 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5025 return lToken[nTokenOffset+2]["sValue"].endswith("e") and g_morph(lToken[nTokenOffset+2], ":V1.*:Ip.*:[13]s", ":[GM]|>envie/") 5026def _g_cond_gv1_6 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5027 return not bCondMemo and lToken[nTokenOffset+2]["sValue"].endswith("s") and g_morph(lToken[nTokenOffset+2], ":V1.*:Ip.*:2s", ":[GM]") 5028def _g_cond_gv1_7 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5029 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[pi]", ":G") 5030def _g_cond_gv1_8 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5031 return g_morph(lToken[nTokenOffset+3], ":[NA]", ":G") 5032def _g_cond_gv1_9 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5033 return g_morph(lToken[nTokenOffset+2], ":V[123]", ":(?:N|A|Q|W|G|3p)") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") 5034def _g_cond_gv1_10 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5035 return g_morph(lToken[nTokenOffset+3], ":V.*:3p", ":[GPY]") and not g_value(lToken[nLastToken+1], "|ils|elles|iel|iels|") and ( (g_morph(lToken[nTokenOffset+3], ":V...t_") and g_value(lToken[nLastToken+1], "le|la|l’|un|une|ce|cet|cette|mon|ton|son|ma|ta|sa|leur") and not g_tag(lToken[nLastToken+1], "_enum_")) or g_morph(lToken[nTokenOffset+3], ":V..i__") ) 5036def _g_sugg_gv1_3 (lToken, nTokenOffset, nLastToken): 5037 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":1p") 5038def _g_sugg_gv1_4 (lToken, nTokenOffset, nLastToken): 5039 return suggVerb(lToken[nTokenOffset+4]["sValue"], ":1p") 5040def _g_sugg_gv1_5 (lToken, nTokenOffset, nLastToken): 5041 return suggVerb(lToken[nTokenOffset+4]["sValue"], ":2p") 5042def _g_cond_gv1_11 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5043 return not g_morph(lToken[nTokenOffset], ":V0") 5044def _g_cond_gv1_12 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5045 return g_morph(lToken[nLastToken-1+1], ":[123]p") 5046def _g_cond_gv1_13 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5047 return not bCondMemo 5048def _g_cond_gv1_14 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5049 return g_morph(lToken[nLastToken-1+1], ":V[123]_.__p_e_", "*") or (g_value(lToken[nLastToken+1], "|<end>|") and not g_value(lToken[nTokenOffset], "|que|qu’|")) 5050def _g_sugg_gv1_6 (lToken, nTokenOffset, nLastToken): 5051 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":m:s") 5052def _g_cond_gv1_15 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5053 return g_morph(lToken[nLastToken-1+1], ":V[123]_.__p_e_", "*") or (g_value(lToken[nLastToken+1], "|<end>|") and not g_morph(lToken[nTokenOffset], ":R|>que/")) 5054def _g_sugg_gv1_7 (lToken, nTokenOffset, nLastToken): 5055 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":f:s") 5056def _g_sugg_gv1_8 (lToken, nTokenOffset, nLastToken): 5057 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":p") 5058def _g_sugg_gv1_9 (lToken, nTokenOffset, nLastToken): 5059 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":m:p") 5060def _g_sugg_gv1_10 (lToken, nTokenOffset, nLastToken): 5061 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":f:p") 5062def _g_cond_gv1_16 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5063 return g_morph(lToken[nLastToken-1+1], ":(?:Y|[123][sp])", ":[QAG]") 5064def _g_sugg_gv1_11 (lToken, nTokenOffset, nLastToken): 5065 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"]) 5066def _g_cond_gv1_17 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5067 return not bCondMemo and g_morph(lToken[nLastToken-2+1], ":[123]s") and g_morph(lToken[nLastToken-1+1], ":Q.*:p") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\bon (?:ne |)$") 5068def _g_sugg_gv1_12 (lToken, nTokenOffset, nLastToken): 5069 return suggSing(lToken[nLastToken-1+1]["sValue"]) 5070def _g_cond_gv1_18 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5071 return not g_morph(lToken[nLastToken-2+1], ">(?:matin|soir|soirée|nuit|après-midi|jour|année|semaine|mois|seconde|minute|heure|siècle|millénaire|fois)/") 5072def _g_sugg_gv1_13 (lToken, nTokenOffset, nLastToken): 5073 return suggVerbPpas(lToken[nLastToken-4+1]["sValue"], ":m:s") 5074def _g_sugg_gv1_14 (lToken, nTokenOffset, nLastToken): 5075 return suggSing(lToken[nTokenOffset+3]["sValue"]) 5076def _g_sugg_gv1_15 (lToken, nTokenOffset, nLastToken): 5077 return suggPlur(lToken[nTokenOffset+3]["sValue"]) 5078def _g_cond_gv1_19 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5079 return not lToken[nTokenOffset+2]["sValue"].endswith("ons") 5080def _g_cond_gv1_20 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5081 return not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5082def _g_cond_gv1_21 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5083 return g_morph(lToken[nTokenOffset+2], ":(?:[123]s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5084def _g_sugg_gv1_16 (lToken, nTokenOffset, nLastToken): 5085 return suggMasSing(lToken[nLastToken-1+1]["sValue"]) 5086def _g_cond_gv1_22 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5087 return g_morph(lToken[nTokenOffset+3], ":(?:[123]s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5088def _g_cond_gv1_23 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5089 return g_morph(lToken[nTokenOffset+4], ":(?:[123]s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5090def _g_cond_gv1_24 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5091 return g_morph(lToken[nTokenOffset+5], ":(?:[123]s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5092def _g_cond_gv1_25 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5093 return not g_tag(lToken[nTokenOffset+1], "_enum_") and g_morph(lToken[nTokenOffset+2], ":(?:3s|P)") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:et|ou)/") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5094def _g_cond_gv1_26 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5095 return not g_tag(lToken[nTokenOffset+1], "_enum_") and g_morph(lToken[nTokenOffset+3], ":(?:3s|P)") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:et|ou)/") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5096def _g_cond_gv1_27 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5097 return not g_tag(lToken[nTokenOffset+1], "_enum_") and g_morph(lToken[nTokenOffset+4], ":(?:3s|P)") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:et|ou)/") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5098def _g_cond_gv1_28 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5099 return not g_tag(lToken[nTokenOffset+1], "_enum_") and g_morph(lToken[nTokenOffset+5], ":(?:3s|P)") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:et|ou)/") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5100def _g_cond_gv1_29 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5101 return g_morph(lToken[nTokenOffset+3], "[123][sp]") 5102def _g_cond_gv1_30 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5103 return g_morph(lToken[nTokenOffset+4], "[123][sp]") 5104def _g_cond_gv1_31 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5105 return g_morph(lToken[nTokenOffset+5], "[123][sp]") 5106def _g_cond_gv1_32 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5107 return not g_morph(lToken[nTokenOffset], ":[RV]") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5108def _g_cond_gv1_33 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5109 return g_morph(lToken[nTokenOffset+6], ":(?:[123]s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5110def _g_cond_gv1_34 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5111 return not g_morph(lToken[nTokenOffset], ":R") 5112def _g_cond_gv1_35 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5113 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":(?:[123]s|P)") 5114def _g_cond_gv1_36 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5115 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+4], ":(?:[123]s|P)") 5116def _g_cond_gv1_37 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5117 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+5], ":(?:[123]s|P)") 5118def _g_cond_gv1_38 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5119 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+6], ":(?:[123]s|P)") 5120def _g_cond_gv1_39 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5121 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+7], ":(?:[123]s|P)") 5122def _g_cond_gv1_40 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5123 return not g_tag(lToken[nTokenOffset+1], "_enum_") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:et|ou)/") and g_morph(lToken[nTokenOffset+2], ":(?:[123]s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5124def _g_sugg_gv1_17 (lToken, nTokenOffset, nLastToken): 5125 return suggFemSing(lToken[nLastToken-1+1]["sValue"]) 5126def _g_cond_gv1_41 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5127 return not g_tag(lToken[nTokenOffset+1], "_enum_") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:et|ou)/") and g_morph(lToken[nTokenOffset+3], ":(?:[123]s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5128def _g_cond_gv1_42 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5129 return not g_tag(lToken[nTokenOffset+1], "_enum_") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:et|ou)/") and g_morph(lToken[nTokenOffset+4], ":(?:[123]s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5130def _g_cond_gv1_43 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5131 return not g_tag(lToken[nTokenOffset+1], "_enum_") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:et|ou)/") and g_morph(lToken[nTokenOffset+5], ":(?:[123]s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5132def _g_cond_gv1_44 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5133 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset], ":[RV]") and g_morph(lToken[nTokenOffset+2], ":(?:3s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5134def _g_cond_gv1_45 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5135 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset], ":[RV]") and g_morph(lToken[nTokenOffset+3], ":(?:3s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5136def _g_cond_gv1_46 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5137 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset], ":[RV]") and g_morph(lToken[nTokenOffset+4], ":(?:3s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5138def _g_cond_gv1_47 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5139 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset], ":[RV]") and g_morph(lToken[nTokenOffset+5], ":(?:3s|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5140def _g_cond_gv1_48 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5141 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:ne|nous)/") and g_morph(lToken[nTokenOffset+2], ":(?:1p|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5142def _g_sugg_gv1_18 (lToken, nTokenOffset, nLastToken): 5143 return suggPlur(lToken[nLastToken-1+1]["sValue"]) 5144def _g_cond_gv1_49 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5145 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:ne|nous)/") and g_morph(lToken[nTokenOffset+3], ":(?:1p|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5146def _g_cond_gv1_50 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5147 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:ne|nous)/") and g_morph(lToken[nTokenOffset+4], ":(?:1p|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5148def _g_cond_gv1_51 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5149 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:ne|nous)/") and g_morph(lToken[nTokenOffset+5], ":(?:1p|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5150def _g_cond_gv1_52 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5151 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5152def _g_sugg_gv1_19 (lToken, nTokenOffset, nLastToken): 5153 return suggMasPlur(lToken[nLastToken-1+1]["sValue"]) 5154def _g_cond_gv1_53 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5155 return not g_morph(lToken[nTokenOffset], ":[RV]") and g_morph(lToken[nTokenOffset+2], ":(?:3p|P)") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5156def _g_cond_gv1_54 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5157 return not g_morph(lToken[nTokenOffset], ":[RV]") and g_morph(lToken[nTokenOffset+3], ":(?:3p|P)") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5158def _g_cond_gv1_55 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5159 return not g_morph(lToken[nTokenOffset], ":[RV]") and g_morph(lToken[nTokenOffset+4], ":(?:3p|P)") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5160def _g_cond_gv1_56 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5161 return not g_morph(lToken[nTokenOffset], ":[RV]") and g_morph(lToken[nTokenOffset+5], ":(?:3p|P)") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5162def _g_cond_gv1_57 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5163 return g_morph(lToken[nTokenOffset+3], ":(?:3p|P)") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5164def _g_cond_gv1_58 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5165 return g_morph(lToken[nTokenOffset+4], ":(?:3p|P)") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5166def _g_cond_gv1_59 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5167 return g_morph(lToken[nTokenOffset+5], ":(?:3p|P)") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5168def _g_cond_gv1_60 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5169 return g_morph(lToken[nTokenOffset+6], ":(?:3p|P)") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5170def _g_cond_gv1_61 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5171 return not g_morph(lToken[nTokenOffset], ":R") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") 5172def _g_sugg_gv1_20 (lToken, nTokenOffset, nLastToken): 5173 return suggFemPlur(lToken[nLastToken-1+1]["sValue"]) 5174def _g_cond_gv1_62 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5175 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset], ":[RV]") and g_morph(lToken[nTokenOffset+2], ":(?:3p|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5176def _g_cond_gv1_63 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5177 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset], ":[RV]") and g_morph(lToken[nTokenOffset+3], ":(?:3p|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5178def _g_cond_gv1_64 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5179 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset], ":[RV]") and g_morph(lToken[nTokenOffset+4], ":(?:3p|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5180def _g_cond_gv1_65 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5181 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset], ":[RV]") and g_morph(lToken[nTokenOffset+5], ":(?:3p|P)") and not (g_tag(lToken[nTokenOffset], "_ceque_") and g_morph(lToken[nLastToken-1+1], ":3s")) 5182def _g_cond_gv1_66 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5183 return g_morph(lToken[nTokenOffset+3], ":[123]s", ":[GNAQWY]") 5184def _g_sugg_gv1_21 (lToken, nTokenOffset, nLastToken): 5185 return suggVerbPpas(lToken[nTokenOffset+3]["sValue"]) 5186def _g_cond_gv1_67 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5187 return not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "[çcCÇ]’$|[cC][eE] n’$|[çÇ][aA] (?:[nN]’|)$") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)^ *ne pas ") and not g_morph(lToken[nTokenOffset], ":Y") 5188def _g_cond_gv1_68 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5189 return g_morph(lToken[nTokenOffset+3], ":Y", ":[AN]") 5190def _g_cond_gv1_69 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5191 return g_morph(lToken[nTokenOffset+3], ":V1..t.*:Y", ":[AN]") and not g_morph(lToken[nLastToken+1], ":D") 5192def _g_cond_gv1_70 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5193 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") and not g_morph(lToken[nTokenOffset+1], ":G") and g_morph(lToken[nTokenOffset+2], ":[123]s", ":(?:C|N.*:p)") 5194def _g_cond_gv1_71 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5195 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") and not g_morph(lToken[nTokenOffset+1], ":G") and g_morph(lToken[nTokenOffset+3], ":[123]s", ":(?:C|N.*:p)") 5196def _g_cond_gv1_72 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5197 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") and not g_morph(lToken[nTokenOffset+1], ":G") and g_morph(lToken[nTokenOffset+4], ":[123]s", ":(?:C|N.*:p)") 5198def _g_cond_gv1_73 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5199 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") and not g_morph(lToken[nTokenOffset+1], ":G") and g_morph(lToken[nTokenOffset+5], ":[123]s", ":(?:C|N.*:p)") 5200def _g_cond_gv1_74 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5201 return g_morph(lToken[nTokenOffset+2], ":[123]s", ":(?:C|N.*:p)") 5202def _g_cond_gv1_75 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5203 return g_morph(lToken[nTokenOffset+3], ":[123]s", ":(?:C|N.*:p)") 5204def _g_cond_gv1_76 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5205 return g_morph(lToken[nTokenOffset+4], ":[123]s", ":(?:C|N.*:p)") 5206def _g_cond_gv1_77 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5207 return g_morph(lToken[nTokenOffset+5], ":[123]s", ":(?:C|N.*:p)") 5208def _g_cond_gv1_78 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5209 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset+1], ":G") and g_morph(lToken[nTokenOffset+2], ":[13]p") 5210def _g_cond_gv1_79 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5211 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset+1], ":G") and g_morph(lToken[nTokenOffset+3], ":[13]p") 5212def _g_cond_gv1_80 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5213 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset+1], ":G") and g_morph(lToken[nTokenOffset+4], ":[13]p") 5214def _g_cond_gv1_81 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5215 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and not g_morph(lToken[nTokenOffset+1], ":G") and g_morph(lToken[nTokenOffset+5], ":[13]p") 5216def _g_cond_gv1_82 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5217 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+2], ":[13]p") 5218def _g_cond_gv1_83 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5219 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[13]p") 5220def _g_cond_gv1_84 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5221 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+4], ":[13]p") 5222def _g_cond_gv1_85 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5223 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+5], ":[13]p") 5224def _g_cond_gv1_86 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5225 return checkAgreement(lToken[nTokenOffset+5]["sValue"], lToken[nLastToken-1+1]["sValue"]) 5226def _g_cond_gv1_87 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5227 return checkAgreement(lToken[nTokenOffset+6]["sValue"], lToken[nLastToken-1+1]["sValue"]) 5228def _g_cond_gv1_88 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5229 return checkAgreement(lToken[nTokenOffset+7]["sValue"], lToken[nLastToken-1+1]["sValue"]) 5230def _g_cond_gv1_89 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5231 return checkAgreement(lToken[nTokenOffset+4]["sValue"], lToken[nLastToken-1+1]["sValue"]) 5232def _g_cond_gv1_90 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5233 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]", ":[GW]") and (g_morph(lToken[nTokenOffset+4], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+4], ":P"))) 5234def _g_cond_gv1_91 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5235 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]", ":[GW]") and (g_morph(lToken[nTokenOffset+5], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+5], ":P"))) 5236def _g_cond_gv1_92 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5237 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]", ":[GW]") and (g_morph(lToken[nTokenOffset+6], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+6], ":P"))) 5238def _g_cond_gv1_93 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5239 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]", ":[GW]") and (g_morph(lToken[nTokenOffset+7], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+7], ":P"))) 5240def _g_cond_gv1_94 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5241 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]", ":[GW]") and (g_morph(lToken[nTokenOffset+8], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+8], ":P"))) 5242def _g_cond_gv1_95 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5243 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]", ":[GW]") and (g_morph(lToken[nTokenOffset+4], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+4], ":P"))) 5244def _g_cond_gv1_96 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5245 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]", ":[GW]") and (g_morph(lToken[nTokenOffset+5], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+5], ":P"))) 5246def _g_cond_gv1_97 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5247 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]", ":[GW]") and (g_morph(lToken[nTokenOffset+6], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+6], ":P"))) 5248def _g_cond_gv1_98 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5249 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]", ":[GW]") and (g_morph(lToken[nTokenOffset+7], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+7], ":P"))) 5250def _g_cond_gv1_99 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5251 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]", ":[GW]") and (g_morph(lToken[nTokenOffset+8], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+8], ":P"))) 5252def _g_cond_gv1_100 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5253 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and (g_morph(lToken[nTokenOffset+4], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+4], ":P"))) 5254def _g_cond_gv1_101 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5255 return g_morph(lToken[nTokenOffset+3], ":f", ":[me]") and g_morph(lToken[nLastToken-1+1], ":m", ":[fe]") 5256def _g_cond_gv1_102 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5257 return not bCondMemo and g_morph(lToken[nTokenOffset+3], ":m", ":[fe]") and g_morph(lToken[nLastToken-1+1], ":f", ":[me]") 5258def _g_cond_gv1_103 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5259 return not bCondMemo and g_morph(lToken[nLastToken-1+1], ":p", ":[si]") 5260def _g_cond_gv1_104 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5261 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and (g_morph(lToken[nTokenOffset+5], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+5], ":P"))) 5262def _g_cond_gv1_105 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5263 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and (g_morph(lToken[nTokenOffset+6], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+6], ":P"))) 5264def _g_cond_gv1_106 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5265 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and (g_morph(lToken[nTokenOffset+7], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+7], ":P"))) 5266def _g_cond_gv1_107 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5267 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and (g_morph(lToken[nTokenOffset+8], ":[123]s") or (not g_tag(lToken[nTokenOffset+3], "_enum_") and g_morph(lToken[nTokenOffset+8], ":P"))) 5268def _g_cond_gv1_108 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5269 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+4], ":(?:[123]p|P)") 5270def _g_cond_gv1_109 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5271 return not bCondMemo and g_morph(lToken[nLastToken-1+1], ":s", ":[pi]") 5272def _g_cond_gv1_110 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5273 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+5], ":(?:[123]p|P)") 5274def _g_cond_gv1_111 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5275 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+6], ":(?:[123]p|P)") 5276def _g_cond_gv1_112 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5277 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+7], ":(?:[123]p|P)") 5278def _g_cond_gv1_113 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5279 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+8], ":(?:[123]p|P)") 5280def _g_cond_gv1_114 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5281 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]:[pi]", ":[GW]") and g_morph(lToken[nTokenOffset+4], ":(?:[123]p|P)") 5282def _g_cond_gv1_115 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5283 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]:[pi]", ":[GW]") and g_morph(lToken[nTokenOffset+5], ":(?:[123]p|P)") 5284def _g_cond_gv1_116 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5285 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]:[pi]", ":[GW]") and g_morph(lToken[nTokenOffset+6], ":(?:[123]p|P)") 5286def _g_cond_gv1_117 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5287 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]:[pi]", ":[GW]") and g_morph(lToken[nTokenOffset+7], ":(?:[123]p|P)") 5288def _g_cond_gv1_118 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5289 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]:[pi]", ":[GW]") and g_morph(lToken[nTokenOffset+8], ":(?:[123]p|P)") 5290def _g_cond_gv1_119 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5291 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]:[pi]", ":[GW]") and g_morph(lToken[nTokenOffset+4], ":(?:[123]p|P)") 5292def _g_cond_gv1_120 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5293 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]:[pi]", ":[GW]") and g_morph(lToken[nTokenOffset+5], ":(?:[123]p|P)") 5294def _g_cond_gv1_121 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5295 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]:[pi]", ":[GW]") and g_morph(lToken[nTokenOffset+6], ":(?:[123]p|P)") 5296def _g_cond_gv1_122 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5297 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]:[pi]", ":[GW]") and g_morph(lToken[nTokenOffset+7], ":(?:[123]p|P)") 5298def _g_cond_gv1_123 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5299 return not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]:[pi]", ":[GW]") and g_morph(lToken[nTokenOffset+8], ":(?:[123]p|P)") 5300def _g_cond_gv1_124 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5301 return not g_tag(lToken[nTokenOffset+2], "_enum_") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and (g_morph(lToken[nTokenOffset+3], ":[123]s") or (not g_tag(lToken[nTokenOffset+2], "_enum_") and g_morph(lToken[nTokenOffset+3], ":P"))) 5302def _g_cond_gv1_125 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5303 return g_morph(lToken[nTokenOffset+2], ":M.*:f", ":[me]") and g_morph(lToken[nLastToken-1+1], ":[AQ].*:m", ":[fe]") 5304def _g_cond_gv1_126 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5305 return not bCondMemo and g_morph(lToken[nTokenOffset+2], ":M.*:m", ":[fe]") and g_morph(lToken[nLastToken-1+1], ":[AQ].*:f", ":[me]") 5306def _g_cond_gv1_127 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5307 return not bCondMemo and g_morph(lToken[nLastToken-1+1], ":p", ":[AQ].*:[si]") 5308def _g_cond_gv1_128 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5309 return not g_tag(lToken[nTokenOffset+2], "_enum_") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and (g_morph(lToken[nTokenOffset+4], ":[123]s") or (not g_tag(lToken[nTokenOffset+2], "_enum_") and g_morph(lToken[nTokenOffset+4], ":P"))) 5310def _g_cond_gv1_129 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5311 return not g_tag(lToken[nTokenOffset+2], "_enum_") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and (g_morph(lToken[nTokenOffset+5], ":[123]s") or (not g_tag(lToken[nTokenOffset+2], "_enum_") and g_morph(lToken[nTokenOffset+5], ":P"))) 5312def _g_cond_gv1_130 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5313 return not g_tag(lToken[nTokenOffset+2], "_enum_") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and (g_morph(lToken[nTokenOffset+6], ":[123]s") or (not g_tag(lToken[nTokenOffset+2], "_enum_") and g_morph(lToken[nTokenOffset+6], ":P"))) 5314def _g_cond_gv1_131 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5315 return not g_tag(lToken[nTokenOffset+2], "_enum_") and not g_value(lToken[nLastToken-1+1], "|légion|néant|réalité|") and (g_morph(lToken[nTokenOffset+7], ":[123]s") or (not g_tag(lToken[nTokenOffset+2], "_enum_") and g_morph(lToken[nTokenOffset+7], ":P"))) 5316def _g_cond_gv1_132 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5317 return g_morph(lToken[nTokenOffset+2], ":[AQ].*:[fp]", ":(?:G|:m:[si])") and g_morph(lToken[nTokenOffset+3], ":(?:[123]s|P)") 5318def _g_sugg_gv1_22 (lToken, nTokenOffset, nLastToken): 5319 return suggMasSing(lToken[nTokenOffset+2]["sValue"]) 5320def _g_cond_gv1_133 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5321 return g_morph(lToken[nTokenOffset+2], ":[AQ].*:[mp]", ":(?:G|:f:[si])") and g_morph(lToken[nTokenOffset+3], ":(?:[123]s|P)") 5322def _g_sugg_gv1_23 (lToken, nTokenOffset, nLastToken): 5323 return suggFemSing(lToken[nTokenOffset+2]["sValue"]) 5324def _g_cond_gv1_134 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5325 return g_morph(lToken[nTokenOffset+2], ":[AQ].*:[fs]", ":(?:G|:m:[pi])") and g_morph(lToken[nTokenOffset+3], ":(?:[123]p|P)") 5326def _g_sugg_gv1_24 (lToken, nTokenOffset, nLastToken): 5327 return suggMasPlur(lToken[nTokenOffset+2]["sValue"]) 5328def _g_cond_gv1_135 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5329 return g_morph(lToken[nTokenOffset+2], ":[AQ].*:[ms]", ":(?:G|:f:[pi])") and g_morph(lToken[nTokenOffset+3], ":(?:[123]p|P)") 5330def _g_sugg_gv1_25 (lToken, nTokenOffset, nLastToken): 5331 return suggFemPlur(lToken[nTokenOffset+2]["sValue"]) 5332def _g_cond_gv1_136 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5333 return g_morph(lToken[nTokenOffset+2], ":[AQ].*:m", ":[fe]") and g_morph(lToken[nLastToken-1+1], ":[NA]:f", ":[me]") 5334def _g_cond_gv1_137 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5335 return not bCondMemo and g_morph(lToken[nTokenOffset+2], ":[AQ].*:f", ":[me]") and g_morph(lToken[nLastToken-1+1], ":[NA]:m", ":[fe]") 5336def _g_cond_gv1_138 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5337 return g_morph(lToken[nTokenOffset+2], ":[AQ].*:p", ":[Gsi]") and g_morph(lToken[nTokenOffset+3], ":(?:[123]s|P)") 5338def _g_sugg_gv1_26 (lToken, nTokenOffset, nLastToken): 5339 return suggSing(lToken[nTokenOffset+2]["sValue"]) 5340def _g_cond_gv1_139 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5341 return not bCondMemo and g_morph(lToken[nTokenOffset+2], ":[AQ].*:s", ":[Gpi]") and g_morph(lToken[nTokenOffset+3], ":(?:[123]p|P)") 5342def _g_sugg_gv1_27 (lToken, nTokenOffset, nLastToken): 5343 return suggPlur(lToken[nTokenOffset+2]["sValue"]) 5344def _g_cond_gv1_140 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5345 return not g_morph(lToken[nTokenOffset], ":R|>(?:et|ou)/") 5346def _g_cond_gv1_141 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5347 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[me]", ":f") 5348def _g_cond_gv1_142 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5349 return g_morph(lToken[nTokenOffset+3], ":[NA].*:[fe]", ":m") 5350def _g_cond_gv1_143 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5351 return g_morph(lToken[nTokenOffset+2], ":M.*:m", ":M.*:[fe]") 5352def _g_cond_gv1_144 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5353 return g_morph(lToken[nTokenOffset+3], ":[NA].*:m:[pi]", ":[fe]") and g_morph(lToken[nLastToken-1+1], ":[NA].*:f") 5354def _g_cond_gv1_145 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5355 return not bCondMemo and g_morph(lToken[nTokenOffset+3], ":[NA].*:f:[pi]", ":[me]") and g_morph(lToken[nLastToken-1+1], ":[NA].*:(?:m:p|f:s)") 5356def _g_cond_gv1_146 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5357 return g_morph(lToken[nTokenOffset+1], ":V0a.*:[123]s") and g_morph(lToken[nLastToken-1+1], ":A.*:p") and not g_value(lToken[nTokenOffset], "|on|") 5358def _g_cond_gv1_147 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5359 return not bCondMemo and g_morph(lToken[nTokenOffset+1], ":V0a.*:[123]p") and g_morph(lToken[nLastToken-1+1], ":A.*:s") 5360def _g_cond_gv1_148 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5361 return g_morphVC(lToken[nTokenOffset+1], ":V0a") 5362def _g_cond_gv1_149 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5363 return g_morphVC(lToken[nTokenOffset+1], ">(?:être|devenir|redevenir)/") 5364def _g_cond_gv1_150 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5365 return g_morphVC(lToken[nTokenOffset+1], ">(?:sembler|rester|demeurer|para[îi]tre)/") 5366def _g_cond_gv1_151 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5367 return g_morphVC(lToken[nTokenOffset+1], ":V0e.*:3s") and g_morph(lToken[nTokenOffset+2], ":(?:[123][sp]|A.*:[pf])", ":(?:G|W|Y|[me]:[si])") 5368def _g_cond_gv1_152 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5369 return not bCondMemo and g_morphVC(lToken[nTokenOffset+1], ":V0e.*:3p") and g_morph(lToken[nTokenOffset+2], ":(?:[123][sp]|A.*:[sf])", ":(?:G|W|Y|[me]:[pi])") 5370def _g_cond_gv1_153 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5371 return g_morphVC(lToken[nTokenOffset+1], ">(?:être|devenir|redevenir)/") and not g_value(lToken[nTokenOffset], "|se|s’|") 5372def _g_sugg_gv1_28 (lToken, nTokenOffset, nLastToken): 5373 return suggVerbPpas(lToken[nTokenOffset+2]["sValue"]) 5374def _g_cond_gv1_154 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5375 return g_morphVC(lToken[nTokenOffset+1], ">(?:être|devenir|redevenir)/") and not g_value(lToken[nTokenOffset], "|nous|") 5376def _g_cond_gv1_155 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5377 return not g_value(lToken[nTokenOffset+1], "|rendez-vous|") and g_morphVC(lToken[nTokenOffset+1], ">(?:être|devenir|redevenir)/") and not g_value(lToken[nTokenOffset], "|vous|") 5378def _g_cond_gv1_156 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5379 return not g_value(lToken[nTokenOffset+1], "|rendez-vous|") and g_morphVC(lToken[nTokenOffset+1], ">(?:sembler|rester|demeurer|para[îi]tre)/") 5380def _g_cond_gv1_157 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5381 return bCondMemo 5382def _g_sugg_gv1_29 (lToken, nTokenOffset, nLastToken): 5383 return lToken[nTokenOffset+3]["sValue"][:-1] 5384def _g_cond_gv1_158 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5385 return not g_morph(lToken[nTokenOffset], ":[RV]") 5386def _g_cond_gv1_159 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5387 return g_morph(lToken[nLastToken-2+1], ":[123]s") 5388def _g_cond_gv1_160 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5389 return g_morph(lToken[nLastToken-2+1], ":1p") 5390def _g_cond_gv1_161 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5391 return g_morph(lToken[nLastToken-2+1], ":3p") 5392def _g_cond_gv1_162 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5393 return g_morph(lToken[nTokenOffset+3], ":[AQ].*:(?:[me]:p|f)", ":(?:G|Y|V0|P|[AQ].*:m:[is])") and not (g_morph(lToken[nTokenOffset+2], ":Y") and g_morph(lToken[nTokenOffset+3], ":3s")) 5394def _g_sugg_gv1_30 (lToken, nTokenOffset, nLastToken): 5395 return suggMasSing(lToken[nTokenOffset+3]["sValue"]) 5396def _g_cond_gv1_163 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5397 return g_morph(lToken[nTokenOffset+3], ":[AQ].*:(?:[fe]:p|m)", ":(?:G|Y|V0|P|[AQ]:f:[is])") and not (g_morph(lToken[nTokenOffset+2], ":Y") and g_morph(lToken[nTokenOffset+2], ":3s")) 5398def _g_sugg_gv1_31 (lToken, nTokenOffset, nLastToken): 5399 return suggFemSing(lToken[nTokenOffset+3]["sValue"]) 5400def _g_cond_gv1_164 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5401 return g_morph(lToken[nTokenOffset+3], ":[AQ].*:s", ":(?:G|Y|V0|P|[AQ].*:[ip])") and not (g_morph(lToken[nTokenOffset+2], ":Y") and g_morph(lToken[nTokenOffset+3], ":3s")) 5402def _g_cond_gv1_165 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5403 return g_morph(lToken[nTokenOffset+3], ":[AQ].*:p", ":(?:G|Y|V0|P|[AQ].*:[is])") and not (g_morph(lToken[nTokenOffset+2], ":Y") and g_morph(lToken[nTokenOffset+3], ":3s")) 5404def _g_cond_gv1_166 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5405 return g_morph(lToken[nTokenOffset+3], ":3s") and g_morph(lToken[nTokenOffset+4], ":[AQ].*:[fp]", ":(?:G|Y|V0|P|[AQ].*:m:[si])") 5406def _g_sugg_gv1_32 (lToken, nTokenOffset, nLastToken): 5407 return suggMasSing(lToken[nTokenOffset+4]["sValue"]) 5408def _g_cond_gv1_167 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5409 return g_morph(lToken[nTokenOffset+3], ":3s") and g_morph(lToken[nTokenOffset+4], ":[AQ].*:[mp]", ":(?:G|Y|V0|P|[AQ].*:f:[si])") and not g_morph(lToken[nTokenOffset], ":R") 5410def _g_sugg_gv1_33 (lToken, nTokenOffset, nLastToken): 5411 return suggFemSing(lToken[nTokenOffset+4]["sValue"]) 5412def _g_cond_gv1_168 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5413 return g_morph(lToken[nTokenOffset+3], ":3p") and g_morph(lToken[nTokenOffset+4], ":[AQ].*:[fs]", ":(?:G|Y|V0|P|[AQ].*:m:[pi])") 5414def _g_sugg_gv1_34 (lToken, nTokenOffset, nLastToken): 5415 return suggMasPlur(lToken[nTokenOffset+4]["sValue"]) 5416def _g_cond_gv1_169 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5417 return g_morph(lToken[nTokenOffset+3], ":3p") and g_morph(lToken[nTokenOffset+4], ":[AQ].*:[ms]", ":(?:G|Y|V0|P|[AQ].*:f:[pi])") and not g_morph(lToken[nTokenOffset], ":R") 5418def _g_sugg_gv1_35 (lToken, nTokenOffset, nLastToken): 5419 return suggFemPlur(lToken[nTokenOffset+4]["sValue"]) 5420def _g_cond_gv1_170 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5421 return g_morph(lToken[nTokenOffset+2], ":3s") and g_morph(lToken[nTokenOffset+3], ":[AQ].*:p", ":(?:G|Y|V0|P|[AQ].*:[si])") 5422def _g_cond_gv1_171 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5423 return not bCondMemo and g_morph(lToken[nTokenOffset+2], ":3p") and g_morph(lToken[nTokenOffset+3], ":[AQ].*:s", ":(?:G|Y|V0|[AQ].*:[pi])") 5424def _g_cond_gv1_172 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5425 return ( not g_morph(lToken[nTokenOffset+2], ":1p") or (g_morph(lToken[nTokenOffset+2], ":1p") and g_value(lToken[nTokenOffset], "|nous|ne|")) ) and g_morph(lToken[nTokenOffset+3], ":[AQ].*:s", ":(?:G|Y|V0|P|[AQ].*:[ip])") and not (g_morph(lToken[nTokenOffset+2], ":Y") and g_morph(lToken[nTokenOffset+3], ":3s")) 5426def _g_cond_gv1_173 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5427 return not g_value(lToken[nLastToken-1+1], "|barre|confiance|charge|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|") 5428def _g_cond_gv1_174 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5429 return not g_value(lToken[nLastToken-1+1], "|barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|") and (g_value(lToken[nTokenOffset], "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|") or (g_value(lToken[nTokenOffset], "|que|qu’|") and g_morph(g_token(lToken, nTokenOffset+1-2), ":V|<start>", ":[NA]"))) and lToken[nLastToken-1+1]["sValue"].islower() and g_morph(lToken[nLastToken-1+1], ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])") 5430def _g_cond_gv1_175 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5431 return not g_value(lToken[nLastToken-1+1], "|barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|") and (g_value(lToken[nTokenOffset], "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|") or (g_value(lToken[nTokenOffset], "|que|qu’|") and g_morph(g_token(lToken, nTokenOffset+1-2), ":V|<start>", ":[NA]"))) and lToken[nLastToken-1+1]["sValue"].islower() and g_morph(lToken[nLastToken-1+1], ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|N|Q.*:m:[si])") 5432def _g_cond_gv1_176 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5433 return not g_value(lToken[nLastToken-1+1], "|barre|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|") and (g_value(lToken[nTokenOffset], "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|") or (g_value(lToken[nTokenOffset], "|que|qu’|") and g_morph(g_token(lToken, nTokenOffset+1-2), ":V|<start>", ":[NA]"))) and lToken[nLastToken-1+1]["sValue"].islower() and g_morph(lToken[nLastToken-1+1], ":(?:[123][sp])", ":[GWQ]") 5434def _g_cond_gv1_177 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5435 return g_morph(lToken[nTokenOffset+1], ":Os") and not g_value(lToken[nLastToken-1+1], "|barre|confiance|charge|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|") and (g_value(lToken[nTokenOffset], "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|") or (g_value(lToken[nTokenOffset], "|que|qu’|") and g_morph(g_token(lToken, nTokenOffset+1-2), ":V|<start>", ":[NA]"))) and not lToken[nLastToken-1+1]["sValue"].isupper() and g_morph(lToken[nLastToken-1+1], ":(?:[123][sp]|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])") 5436def _g_cond_gv1_178 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5437 return not g_value(lToken[nLastToken-1+1], "|barre|confiance|charge|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|") and (g_value(lToken[nTokenOffset], "|<start>|,|comme|comment|et|lorsque|lorsqu’|mais|où|ou|quand|qui|pourquoi|puisque|puisqu’|quoique|quoiqu’|si|s’|sinon|") or (g_value(lToken[nTokenOffset], "|que|qu’|") and g_morph(g_token(lToken, nTokenOffset+1-2), ":V|<start>", ":[NA]"))) and g_morph(lToken[nTokenOffset+2], ":[NA]", ":G") and not lToken[nLastToken-1+1]["sValue"].isupper() and g_morph(lToken[nLastToken-1+1], ":(?:[123][sp]|Y|Q.*:[fp])", ":(?:G|W|Q.*:m:[si])") and not (g_value(lToken[nLastToken-2+1], "|avions|") and g_morph(lToken[nLastToken-1+1], ":3[sp]")) 5438def _g_cond_gv1_179 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5439 return g_morph(lToken[nTokenOffset+2], ":V0a") 5440def _g_cond_gv1_180 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5441 return g_morph(lToken[nTokenOffset+2], ":V0a", ":1p") and g_morph(lToken[nTokenOffset+3], ":V[0-3]..t_.*:Q.*:s", ":[GWpi]") and g_morph(lToken[nTokenOffset], ":(?:M|Os|N)", ":R") and not g_value(g_token(lToken, nTokenOffset+1-2), "|que|qu’|") 5442def _g_cond_gv1_181 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5443 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") or g_morph(lToken[nTokenOffset+3], ":V[0-3]..t_") 5444def _g_cond_gv1_182 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5445 return not g_value(lToken[nLastToken-1+1], "|confiance|charge|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|") 5446def _g_cond_gv1_183 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5447 return not g_value(lToken[nTokenOffset+1], "|A|avions|avoirs|") and g_morph(lToken[nTokenOffset+2], ":(?:Y|2p)") 5448def _g_cond_gv1_184 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5449 return bCondMemo and lToken[nTokenOffset+1]["sValue"] == "a" and lToken[nTokenOffset+2]["sValue"].endswith("r") and not g_value(lToken[nTokenOffset], "|n’|m’|t’|l’|il|on|elle|") 5450def _g_cond_gv1_185 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5451 return not g_value(lToken[nTokenOffset+1], "|A|avions|avoirs|") and g_morph(lToken[nTokenOffset+2], ":V(?:2.*:Ip.*:3s|3.*:Is.*:3s)", ":[NAQ]") 5452def _g_cond_gv1_186 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5453 return not g_value(lToken[nTokenOffset+1], "|A|avions|avoirs|") and g_morph(lToken[nTokenOffset+2], ":V3.*:Is.*:3s", ":[NAQ]") 5454def _g_cond_gv1_187 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5455 return g_morph(lToken[nTokenOffset+2], ":[NA]") and not g_morph(lToken[nLastToken+1], ":(?:Y|Ov|D|LV)") and not ((g_value(lToken[nLastToken-1+1], "|décidé|essayé|tenté|oublié|imaginé|supplié|") and g_value(lToken[nLastToken+1], "|de|d’|")) or (g_value(lToken[nLastToken-1+1], "|réussi|pensé|") and g_value(lToken[nLastToken+1], "|à|"))) 5456def _g_sugg_gv1_36 (lToken, nTokenOffset, nLastToken): 5457 return suggPlur(lToken[nLastToken-1+1]["sValue"], lToken[nTokenOffset+2]["sValue"]) 5458def _g_cond_gv1_188 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5459 return g_morph(lToken[nTokenOffset+2], ":[NA].*:m") 5460def _g_cond_gv1_189 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5461 return g_morph(lToken[nTokenOffset+2], ":[NA].*:f", ">(?:fois|impression)/") and not g_morph(lToken[nLastToken+1], ":(?:Y|Ov|D|LV)|>qu[e’]/") and not ((g_value(lToken[nLastToken-1+1], "|décidé|essayé|tenté|oublié|imaginé|supplié|") and g_value(lToken[nLastToken+1], "|de|d’|")) or (g_value(lToken[nLastToken-1+1], "|réussi|pensé|") and g_value(lToken[nLastToken+1], "|à|"))) 5462def _g_cond_gv1_190 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5463 return lToken[nTokenOffset+3]["sValue"] != "pouvoir" 5464def _g_cond_gv1_191 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5465 return g_morphVC(lToken[nTokenOffset+2], ":V0a") and not g_value(lToken[nTokenOffset+3], "|barre|charge|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|") 5466def _g_cond_gv1_192 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5467 return g_morph(lToken[nTokenOffset+3], ":(?:Y|[123][sp])", ":[QMG]") 5468def _g_sugg_gv1_37 (lToken, nTokenOffset, nLastToken): 5469 return suggVerbPpas(lToken[nTokenOffset+3]["sValue"], ":m:s") 5470def _g_cond_gv1_193 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5471 return not bCondMemo and not g_value(lToken[nTokenOffset+1], "|les|l’|m’|t’|nous|vous|en|") and g_morph(lToken[nTokenOffset+3], ":Q.*:[fp]", ":m:[si]") and not g_morph(lToken[nTokenOffset+1], ":[NA].*:[fp]") and not look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\b(?:quel(?:le|)s?|combien) ") 5472def _g_cond_gv1_194 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5473 return g_morphVC(lToken[nLastToken-2+1], ":V0a") and not g_value(lToken[nLastToken-1+1], "|barre|charge|confiance|cours|envie|peine|prise|crainte|cure|affaire|hâte|force|recours|") 5474def _g_cond_gv1_195 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5475 return g_morph(lToken[nLastToken-1+1], ":(?:Y|[123][sp])", ":[QMG]") 5476def _g_cond_gv1_196 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5477 return not bCondMemo and g_morph(lToken[nLastToken-1+1], ":Q.*:[fp]", ":m:[si]") 5478def _g_cond_gv1_197 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5479 return g_morphVC(lToken[nTokenOffset+2], ":V0a") and g_morph(lToken[nTokenOffset+3], ":(?:Y|2p|Q.*:p|3[sp])", ":[GWsi]") 5480def _g_cond_gv1_198 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5481 return g_morphVC(lToken[nTokenOffset+2], ":V0a") and g_morph(lToken[nTokenOffset+3], ":(?:Y|2p|Q.*:s|3[sp])", ":[GWpi]") 5482def _g_sugg_gv1_38 (lToken, nTokenOffset, nLastToken): 5483 return suggVerbPpas(lToken[nTokenOffset+3]["sValue"], ":p") 5484def _g_cond_gv1_199 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5485 return g_morph(lToken[nTokenOffset+2], ":A.*:p", ":[GEMWPsi]") and not g_tag(lToken[nTokenOffset+2], "_exctx_") 5486def _g_cond_gv1_200 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5487 return not g_value(lToken[nTokenOffset+2], "|bref|désolé|désolée|pire|") and not g_tag(lToken[nTokenOffset+2], "_exctx_") and g_morph(lToken[nTokenOffset+2], ":A.*:[fp]", ":(?:G|E|M1|W|P|m:[si])") and not g_morph(lToken[nLastToken+1], ">falloir/") and not look(sSentence[lToken[nLastToken]["nEnd"]:], "^ +(?:y (?:a|aura|avait|eut)|d(?:ut|oit|evait|evra) y avoir|s’agi(?:ssait|t|ra))[, .]") 5488def _g_cond_gv1_201 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5489 return not g_value(lToken[nTokenOffset+2], "|bref|désolé|désolée|pire|") and not g_tag(lToken[nTokenOffset+2], "_exctx_") and g_morph(lToken[nTokenOffset+2], ":A.*:[mp]", ":(?:G|E|M1|W|P|f:[si])") 5490def _g_cond_gv1_202 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5491 return not g_value(lToken[nTokenOffset+2], "|bref|désolé|désolée|pire|") and not g_tag(lToken[nTokenOffset+2], "_exctx_") and g_morph(lToken[nTokenOffset+2], ":A.*:[fs]", ":(?:G|E|M1|W|P|m:[pi])") 5492def _g_cond_gv1_203 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5493 return not g_value(lToken[nTokenOffset+2], "|bref|désolé|désolée|pire|") and not g_tag(lToken[nTokenOffset+2], "_exctx_") and g_morph(lToken[nTokenOffset+2], ":A.*:[ms]", ":(?:G|E|M1|W|P|f:[pi])") 5494def _g_cond_gv1_204 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5495 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":(?:V1.*:[YQ]|Iq.*:[123]s)") 5496def _g_sugg_gv1_39 (lToken, nTokenOffset, nLastToken): 5497 return suggVerbTense(lToken[nTokenOffset+2]["sValue"], ":E", ":2p") + "-" + lToken[nTokenOffset+3]["sValue"] 5498def _g_cond_gv1_205 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5499 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":(?:V1.*:[YQ]|Iq.*:[123]s)") and g_morph(lToken[nTokenOffset+4], ":[ORC]", ":[NA]|>plupart/") 5500def _g_cond_gv1_206 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5501 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":(?:V1.*:[YQ]|Iq.*:[123]s)") and g_morph(lToken[nTokenOffset+4], ":[ORC]", ":[NA]") 5502def _g_cond_gv1_207 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5503 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":(?:V1.*:[YQ]|Iq.*:[123]s)") and g_morph(lToken[nTokenOffset+4], ":[ORCD]", ":Y") 5504def _g_cond_gv1_208 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5505 return not look(sSentence[lToken[nLastToken]["nEnd"]:], " soit ") 5506def _g_cond_gv1_209 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5507 return not g_value(lToken[nLastToken+1], "|je|") 5508def _g_cond_gv1_210 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5509 return g_morph(lToken[nTokenOffset+3], ":[MYO]", ":A|>et/") 5510def _g_cond_gv1_211 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5511 return not g_value(lToken[nLastToken+1], "|tu|") 5512def _g_cond_gv1_212 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5513 return g_morph(lToken[nLastToken-1+1], ":V[13].*:Ip.*:2s", ":G") and not g_value(lToken[nLastToken+1], "|tu|") 5514def _g_sugg_gv1_40 (lToken, nTokenOffset, nLastToken): 5515 return lToken[nLastToken-1+1]["sValue"][:-1] 5516def _g_cond_gv1_213 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5517 return g_morph(lToken[nLastToken-1+1], ":V[13].*:Ip.*:2s", ":[GNAM]") and not g_value(lToken[nLastToken+1], "|tu|") 5518def _g_cond_gv1_214 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5519 return not g_value(lToken[nLastToken+1], "|il|elle|on|ils|elles|iel|iels|") and not g_value(lToken[nLastToken-1+1], "|provient|") and not (g_value(lToken[nLastToken-1+1], "|vient|dit|surgit|survient|périt|") and g_morph(lToken[nLastToken+1], ":(?:[MD]|Oo)|>[A-Z]/")) and g_morph(lToken[nLastToken-1+1], ":V[23].*:Ip.*:3s", ":G|>(?:devoir|suffire|para[îi]tre)/") and analyse(lToken[nLastToken-1+1]["sValue"][:-1]+"s", ":E:2s") 5520def _g_sugg_gv1_41 (lToken, nTokenOffset, nLastToken): 5521 return lToken[nLastToken-1+1]["sValue"][:-1]+"s" 5522def _g_cond_gv1_215 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5523 return not g_value(lToken[nLastToken+1], "|il|elle|on|ils|elles|iel|iels|") and not g_value(lToken[nLastToken-1+1], "|provient|") and not (g_value(lToken[nLastToken-1+1], "|vient|dit|surgit|survient|périt|") and g_morph(lToken[nLastToken+1], ":(?:[MD]|Oo)|>[A-Z]/")) and g_morph(lToken[nLastToken-1+1], ":V[23].*:Ip.*:3s", ":[GNA]|>(?:devoir|suffire|para[îi]tre)/") and analyse(lToken[nLastToken-1+1]["sValue"][:-1]+"s", ":E:2s") 5524def _g_cond_gv1_216 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5525 return not g_value(lToken[nLastToken+1], "|il|elle|on|") and not ( g_value(lToken[nLastToken-1+1], "|répond|") and (g_morph(lToken[nLastToken+1], ":[MD]|>[A-Z]/") or g_value(lToken[nLastToken+1], "|l’|d’|")) ) and g_morph(lToken[nLastToken-1+1], ":V3.*:Ip.*:3s", ":G") 5526def _g_cond_gv1_217 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5527 return not g_value(lToken[nLastToken+1], "|il|elle|on|") and not ( g_value(lToken[nLastToken-1+1], "|répond|") and (g_morph(lToken[nLastToken+1], ":[MD]|>[A-Z]/") or g_value(lToken[nLastToken+1], "|l’|d’|")) ) and g_morph(lToken[nLastToken-1+1], ":V3.*:Ip.*:3s", ":[GNA]") 5528def _g_cond_gv1_218 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5529 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morph(lToken[nTokenOffset+1], ":E", ":[GM]|>(?:venir|aller|partir)/") and not g_value(lToken[nTokenOffset], "|de|d’|le|la|les|l’|je|j’|me|m’|te|t’|se|s’|nous|vous|lui|leur|") 5530def _g_cond_gv1_219 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5531 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V(?:1.*:Ip.*:2s|[23].*:Ip.*:3s)", ":[GM]|>(?:venir|aller|partir)/") 5532def _g_sugg_gv1_42 (lToken, nTokenOffset, nLastToken): 5533 return suggVerbTense(lToken[nTokenOffset+2]["sValue"], ":E", ":2s")+"-moi" 5534def _g_cond_gv1_220 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5535 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morph(lToken[nTokenOffset+1], ":E:2s", ":[GM]|>(?:venir|aller|partir)/") and not g_value(lToken[nTokenOffset], "|de|d’|le|la|les|l’|me|m’|te|t’|se|s’|nous|vous|lui|leur|") 5536def _g_sugg_gv1_43 (lToken, nTokenOffset, nLastToken): 5537 return suggVerbTense(lToken[nTokenOffset+2]["sValue"], ":E", ":2s")+"-toi" 5538def _g_cond_gv1_221 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5539 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morph(lToken[nTokenOffset+1], ":E", ":[GM]|>(?:venir|aller|partir)/") and g_morph(lToken[nLastToken+1], ":|<end>", ":(?:Y|3[sp]|Oo)|>(?:en|y)/") and g_morph(lToken[nTokenOffset], ":Cc|<start>|>,") 5540def _g_cond_gv1_222 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5541 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V(?:1.*:Ip.*:2s|[23].*:Ip.*:3s)", ":[GM]|>(?:venir|aller|partir)/") and not g_morph(lToken[nLastToken+1], ":Y") 5542def _g_sugg_gv1_44 (lToken, nTokenOffset, nLastToken): 5543 return suggVerbTense(lToken[nTokenOffset+2]["sValue"], ":E", ":2s")+"-"+lToken[nTokenOffset+3]["sValue"] 5544def _g_cond_gv1_223 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5545 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morph(lToken[nTokenOffset+1], ":E", ":[GM]") and g_morph(lToken[nLastToken+1], ":|<end>", ":(?:Y|3[sp]|Oo)|>(?:en|y)/") and g_morph(lToken[nTokenOffset], ":Cc|<start>|>,") 5546def _g_cond_gv1_224 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5547 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morph(lToken[nTokenOffset+1], ":E", ":[GM]|>(?:venir|aller|partir)") and g_morph(lToken[nLastToken+1], ":|<end>|>,", ":(?:N|A|Y|B|3[sp])|>(?:pour|plus|moins|mieux|peu|trop|très|en|y)/") and g_morph(lToken[nTokenOffset], ":Cc|<start>|>,") 5548def _g_cond_gv1_225 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5549 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V(?:1.*:Ip.*:2s|[23].*:Ip.*:3s)", ":[GM]|>(?:venir|aller|partir)/") and g_morph(lToken[nLastToken+1], ":|<end>|>,", ":(?:N|A|Y|B|3[sp])|>(?:pour|plus|moins|mieux|peu|trop|très|en|y)/") 5550def _g_sugg_gv1_45 (lToken, nTokenOffset, nLastToken): 5551 return suggVerbTense(lToken[nTokenOffset+2]["sValue"], ":E", ":2s")+"-les" 5552def _g_cond_gv1_226 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5553 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morph(lToken[nTokenOffset+1], ":E", ":[GM]|>(?:venir|aller|partir)/") and g_morph(lToken[nLastToken+1], ":|<end>|>,", ":(?:N|A|Q|Y|MP|H|T)|>(?:pour|plus|moins|mieux|peu|plupart|trop|très|en|y|une?)/") and g_morph(lToken[nTokenOffset], ":Cc|<start>|>,") 5554def _g_cond_gv1_227 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5555 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V(?:1.*:Ip.*:2s|[23].*:Ip.*:3s)", ":[GM]|>(?:venir|aller|partir)/") and g_morph(lToken[nLastToken+1], ":|<end>|>,", ":(?:N|A|Y|B|T|MP|3[sp])|>(?:pour|plus|moins|mieux|peu|trop|très|une)/") 5556def _g_cond_gv1_228 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5557 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morph(lToken[nTokenOffset+1], ":E", ":[GM]|>(?:aller|partir)/") and g_morph(lToken[nLastToken+1], ":|<end>|>,", ":(?:N|A|Q|Y|M|P|B|H|T|D|Ov)|>(?:plus|moins|mieux|peu|trop|très|une?)/") and g_morph(lToken[nTokenOffset], ":Cc|<start>|>,") 5558def _g_cond_gv1_229 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5559 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V(?:1.*:Ip.*:2s|[23].*:Ip.*:3s)", ":[GM]|>(?:aller|partir)/") and g_morph(lToken[nLastToken+1], ":|<end>|>,", ":(?:N|A|Y|M|P|B|3[sp]|D|Ov)|>(?:plus|moins|mieux|peu|trop|très|une?)/") 5560def _g_cond_gv1_230 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5561 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morph(lToken[nTokenOffset+3], ":(?:Y|Ov)", ":[NAB]") and not g_morph(lToken[nTokenOffset], ":O[sv]") 5562def _g_sugg_gv1_46 (lToken, nTokenOffset, nLastToken): 5563 return lToken[nTokenOffset+1]["sValue"][:-3]+"’en" 5564def _g_cond_gv1_231 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5565 return not g_value(lToken[nLastToken+1], "|guerre|") 5566def _g_cond_gv1_232 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5567 return not (g_value(lToken[nTokenOffset], "|va|") and g_value(lToken[nLastToken+1], "|guerre|")) 5568def _g_cond_gv1_233 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5569 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morph(lToken[nTokenOffset+1], ":E", ":[MG]") and g_morph(lToken[nLastToken+1], ":|<end>|>,", ":(?:Y|[123][sp])") 5570def _g_cond_gv1_234 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5571 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morphVC(lToken[nTokenOffset+1], ":E") 5572def _g_cond_gv1_235 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5573 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morphVC(lToken[nTokenOffset+1], ":E") and g_morph(lToken[nLastToken+1], ":[RC]|<end>|>,", ":Y") 5574def _g_cond_gv1_236 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5575 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and g_morphVC(lToken[nTokenOffset+1], ":E") and g_morph(lToken[nLastToken+1], ":[RC]|<end>|>,", ":[NAY]") 5576def _g_cond_gv1_237 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5577 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and not g_morph(lToken[nLastToken+1], ":Y") 5578def _g_cond_gv1_238 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5579 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and not g_value(lToken[nTokenOffset], "|tu|il|elle|on|ne|n’|") and not g_morph(lToken[nLastToken+1], ":Y") 5580def _g_cond_gv1_239 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5581 return g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 1) and not g_value(lToken[nLastToken+1], "|partie|") 5582def _g_cond_gv1_240 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5583 return hasSimil(lToken[nTokenOffset+3]["sValue"], ":[NA].*:[me]:[si]") 5584def _g_sugg_gv1_47 (lToken, nTokenOffset, nLastToken): 5585 return suggSimil(lToken[nTokenOffset+3]["sValue"], ":[NA].*:[me]:[si]", True) 5586def _g_cond_gv1_241 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5587 return hasSimil(lToken[nTokenOffset+3]["sValue"], ":[NA].*:[fe]:[si]") 5588def _g_sugg_gv1_48 (lToken, nTokenOffset, nLastToken): 5589 return suggSimil(lToken[nTokenOffset+3]["sValue"], ":[NA].*:[fe]:[si]", True) 5590def _g_cond_gv1_242 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5591 return hasSimil(lToken[nTokenOffset+3]["sValue"], ":[NA].*:[si]") 5592def _g_sugg_gv1_49 (lToken, nTokenOffset, nLastToken): 5593 return suggSimil(lToken[nTokenOffset+3]["sValue"], ":[NA].*:[si]", True) 5594def _g_cond_gv1_243 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5595 return hasSimil(lToken[nTokenOffset+3]["sValue"], ":[NA].*:[pi]") 5596def _g_sugg_gv1_50 (lToken, nTokenOffset, nLastToken): 5597 return suggSimil(lToken[nTokenOffset+3]["sValue"], ":[NA].*:[pi]", True) 5598def _g_cond_gv1_244 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5599 return hasSimil(lToken[nTokenOffset+3]["sValue"], ":[NA].*:[me]:[pi]") 5600def _g_sugg_gv1_51 (lToken, nTokenOffset, nLastToken): 5601 return suggSimil(lToken[nTokenOffset+3]["sValue"], ":[NA].*:[me]:[pi]", True) 5602def _g_cond_gv1_245 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5603 return hasSimil(lToken[nTokenOffset+3]["sValue"], ":[NA].*:[fe]:[pi]") 5604def _g_sugg_gv1_52 (lToken, nTokenOffset, nLastToken): 5605 return suggSimil(lToken[nTokenOffset+3]["sValue"], ":[NA].*:[fe]:[pi]", True) 5606def _g_sugg_gv1_53 (lToken, nTokenOffset, nLastToken): 5607 return suggSimil(lToken[nLastToken-1+1]["sValue"], ":[NA].*:[me]:[si]", True) 5608def _g_sugg_gv1_54 (lToken, nTokenOffset, nLastToken): 5609 return suggSimil(lToken[nLastToken-1+1]["sValue"], ":[NA].*:[fe]:[si]", True) 5610def _g_sugg_gv1_55 (lToken, nTokenOffset, nLastToken): 5611 return suggSimil(lToken[nLastToken-1+1]["sValue"], ":[NA].*:[si]", True) 5612def _g_sugg_gv1_56 (lToken, nTokenOffset, nLastToken): 5613 return suggSimil(lToken[nLastToken-1+1]["sValue"], ":[NA].*:[pi]", True) 5614def _g_cond_gv1_246 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5615 return not g_value(lToken[nTokenOffset+1], "|rendez-vous|entre-nous|entre-vous|entre-elles|") and not g_morphVC(lToken[nTokenOffset+1], ":V0") 5616def _g_sugg_gv1_57 (lToken, nTokenOffset, nLastToken): 5617 return suggVerbPpas(lToken[nLastToken-1+1]["sValue"], ":s") 5618def _g_cond_gv1_247 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5619 return not g_value(lToken[nTokenOffset], "|l’|") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_que_") 5620def _g_cond_gv1_248 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5621 return not g_tag(lToken[nTokenOffset+2], "_upron_") and g_morph(lToken[nTokenOffset+1], ":V", ":Q|>soit/") and (g_morph(lToken[nTokenOffset+2], ":Y", ":[NAQ]") or g_morph(lToken[nTokenOffset+2], ">(?:aller|manger)/")) and not g_morph(lToken[nTokenOffset], ":Y|>ce/") and not g_value(lToken[nTokenOffset], "|c’|") and not g_value(g_token(lToken, nTokenOffset+1-2), "|ce|") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_sujinfi_") 5622def _g_cond_gv1_249 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5623 return g_morph(lToken[nTokenOffset+1], ":V", ":Q|>soit/") and g_morph(lToken[nTokenOffset+2], ":2p", ":[NAQ]") 5624def _g_cond_gv1_250 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5625 return g_morph(lToken[nTokenOffset+1], ":V", ":Q|>soit/") and g_morph(lToken[nTokenOffset+2], ":V(?:2.*:Ip.*:3s|3.*:Is.*:3s)", ":[NAQ]") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_sujinfi_") 5626def _g_cond_gv1_251 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5627 return g_morph(lToken[nTokenOffset+1], ":V", ":Q|>soit/") and g_morph(lToken[nTokenOffset+2], ":V3.*:Is.*:3s", ":[NAQ]") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") and not g_tag_before(lToken[nTokenOffset+1], dTags, "_sujinfi_") 5628def _g_cond_gv1_252 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5629 return lToken[nTokenOffset+4]["sValue"].islower() and g_morph(lToken[nTokenOffset+3], ":[NA].*:m:[si]", ":G|>verbe/") and g_morph(lToken[nTokenOffset+4], ":V1.*:Y", ":M") 5630def _g_sugg_gv1_58 (lToken, nTokenOffset, nLastToken): 5631 return suggVerbPpas(lToken[nTokenOffset+4]["sValue"], ":m:s") 5632def _g_cond_gv1_253 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5633 return lToken[nTokenOffset+4]["sValue"].islower() and g_morph(lToken[nTokenOffset+3], ":[NA].*:f:[si]", ":G") and g_morph(lToken[nTokenOffset+4], ":V1.*:Y", ":M") 5634def _g_sugg_gv1_59 (lToken, nTokenOffset, nLastToken): 5635 return suggVerbPpas(lToken[nTokenOffset+4]["sValue"], ":f:s") 5636def _g_cond_gv1_254 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5637 return lToken[nTokenOffset+4]["sValue"].islower() and g_morph(lToken[nTokenOffset+3], ":[NA].*:e:[si]", ":G") and g_morph(lToken[nTokenOffset+4], ":V1.*:Y", ":M") 5638def _g_sugg_gv1_60 (lToken, nTokenOffset, nLastToken): 5639 return suggVerbPpas(lToken[nTokenOffset+4]["sValue"], ":s") 5640def _g_cond_gv1_255 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5641 return lToken[nTokenOffset+4]["sValue"].islower() and g_morph(lToken[nTokenOffset+3], ":[NA].*:[pi]", ":G") and g_morph(lToken[nTokenOffset+4], ":V1.*:Y", ":M") 5642def _g_sugg_gv1_61 (lToken, nTokenOffset, nLastToken): 5643 return suggVerbPpas(lToken[nTokenOffset+4]["sValue"], ":p") 5644def _g_cond_gv1_256 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5645 return g_morph(lToken[nTokenOffset+2], ":[123][sp]") 5646def _g_sugg_gv1_62 (lToken, nTokenOffset, nLastToken): 5647 return lToken[nTokenOffset+2]["sValue"].replace("ut", "ût").replace("UT", "ÛT") 5648def _g_cond_gv1_257 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5649 return lToken[nTokenOffset+2]["sValue"].islower() 5650def _g_cond_gv1_258 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5651 return lToken[nTokenOffset+2]["sValue"].islower() and not (g_value(lToken[nTokenOffset+2], "|attendant|admettant|") and g_value(lToken[nLastToken+1], "|que|qu’|")) 5652def _g_cond_gv1_259 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5653 return lToken[nTokenOffset+2]["sValue"].islower() and not (g_morph(lToken[nTokenOffset], ":1p") and not g_value(lToken[nTokenOffset], "|sachons|veuillons|allons|venons|partons|") and g_value(g_token(lToken, nTokenOffset+1-2), "|<start>|,|")) 5654def _g_cond_gv1_260 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5655 return lToken[nTokenOffset+2]["sValue"].islower() and not (g_morph(lToken[nTokenOffset], ":2p") and not g_value(lToken[nTokenOffset], "|sachez|veuillez|allez|venez|partez|") and g_value(g_token(lToken, nTokenOffset+1-2), "|<start>|,|")) 5656def _g_cond_gv1_261 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5657 return not g_morph(lToken[nTokenOffset], ":[123]s") or not g_morph(lToken[nTokenOffset+3], ":N.*:[me]:[si]") 5658def _g_cond_gv1_262 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5659 return not g_morph(lToken[nTokenOffset], ":[123]s") or not g_morph(lToken[nTokenOffset+3], ":N.*:[fe]:[si]") 5660def _g_cond_gv1_263 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5661 return not g_morph(lToken[nTokenOffset], ":[123]s") or not g_morph(lToken[nTokenOffset+3], ":N.*:[si]") 5662def _g_cond_gv1_264 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5663 return not g_morph(lToken[nTokenOffset], ":[123]s") or not g_morph(lToken[nTokenOffset+3], ":N.*:[pi]") 5664def _g_cond_gv1_265 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5665 return not g_morph(lToken[nTokenOffset], ":[123]s") or not g_morph(lToken[nTokenOffset+3], ":[NA]") 5666def _g_cond_gv1_266 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5667 return not g_morph(lToken[nTokenOffset], ":(?:[123]s|V0)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[me]:[si]") 5668def _g_cond_gv1_267 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5669 return not g_morph(lToken[nTokenOffset], ":(?:[123]s|V0)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[fe]:[si]") 5670def _g_cond_gv1_268 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5671 return not g_morph(lToken[nTokenOffset], ":(?:[123]s|V0)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[si]") 5672def _g_cond_gv1_269 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5673 return not g_morph(lToken[nTokenOffset], ":(?:[123]s|V0)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[pi]") 5674def _g_cond_gv1_270 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5675 return not g_morph(lToken[nTokenOffset], ":(?:[123]s|V0)") or not g_morph(lToken[nTokenOffset+3], ":[NA]") 5676def _g_cond_gv1_271 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5677 return not g_morph(lToken[nTokenOffset], ":(?:3s|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[me]:[si]") 5678def _g_cond_gv1_272 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5679 return not g_morph(lToken[nTokenOffset], ":(?:3s|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[fe]:[si]") 5680def _g_cond_gv1_273 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5681 return not g_morph(lToken[nTokenOffset], ":(?:3s|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[si]") 5682def _g_cond_gv1_274 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5683 return not g_morph(lToken[nTokenOffset], ":(?:3s|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[pi]") 5684def _g_cond_gv1_275 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5685 return not g_morph(lToken[nTokenOffset], ":(?:3s|R)") or not g_morph(lToken[nTokenOffset+3], ":[NA]") 5686def _g_cond_gv1_276 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5687 return not g_morph(lToken[nTokenOffset], ":(?:1p|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[me]:[si]") 5688def _g_cond_gv1_277 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5689 return not g_morph(lToken[nTokenOffset], ":(?:1p|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[fe]:[si]") 5690def _g_cond_gv1_278 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5691 return not g_morph(lToken[nTokenOffset], ":(?:1p|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[si]") 5692def _g_cond_gv1_279 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5693 return not g_morph(lToken[nTokenOffset], ":(?:1p|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[pi]") 5694def _g_cond_gv1_280 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5695 return not g_morph(lToken[nTokenOffset], ":(?:1p|R)") or not g_morph(lToken[nTokenOffset+3], ":[NA]") 5696def _g_cond_gv1_281 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5697 return not g_morph(lToken[nTokenOffset], ":(?:2p|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[me]:[si]") 5698def _g_cond_gv1_282 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5699 return not g_morph(lToken[nTokenOffset], ":(?:2p|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[fe]:[si]") 5700def _g_cond_gv1_283 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5701 return not g_morph(lToken[nTokenOffset], ":(?:2p|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[si]") 5702def _g_cond_gv1_284 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5703 return not g_morph(lToken[nTokenOffset], ":(?:2p|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[pi]") 5704def _g_cond_gv1_285 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5705 return not g_morph(lToken[nTokenOffset], ":(?:2p|R)") or not g_morph(lToken[nTokenOffset+3], ":[NA]") 5706def _g_cond_gv1_286 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5707 return not g_morph(lToken[nTokenOffset], ":3p") or not g_morph(lToken[nTokenOffset+3], ":N.*:[me]:[si]") 5708def _g_cond_gv1_287 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5709 return not g_morph(lToken[nTokenOffset], ":3p") or not g_morph(lToken[nTokenOffset+3], ":N.*:[fe]:[si]") 5710def _g_cond_gv1_288 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5711 return not g_morph(lToken[nTokenOffset], ":3p") or not g_morph(lToken[nTokenOffset+3], ":N.*:[si]") 5712def _g_cond_gv1_289 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5713 return not g_morph(lToken[nTokenOffset], ":3p") or not g_morph(lToken[nTokenOffset+3], ":N.*:[pi]") 5714def _g_cond_gv1_290 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5715 return not g_morph(lToken[nTokenOffset], ":3p") or not g_morph(lToken[nTokenOffset+3], ":[NA]") 5716def _g_cond_gv1_291 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5717 return not g_morph(lToken[nTokenOffset], ":(?:3p|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[me]:[si]") 5718def _g_cond_gv1_292 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5719 return not g_morph(lToken[nTokenOffset], ":(?:3p|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[fe]:[si]") 5720def _g_cond_gv1_293 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5721 return not g_morph(lToken[nTokenOffset], ":(?:3p|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[si]") 5722def _g_cond_gv1_294 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5723 return not g_morph(lToken[nTokenOffset], ":(?:3p|R)") or not g_morph(lToken[nTokenOffset+3], ":N.*:[pi]") 5724def _g_cond_gv1_295 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5725 return not g_morph(lToken[nTokenOffset], ":(?:3p|R)") or not g_morph(lToken[nTokenOffset+3], ":[NA]") 5726def _g_cond_gv1_296 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5727 return not g_morph(lToken[nTokenOffset], ":(?:R|3s)") 5728def _g_cond_gv1_297 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5729 return not g_morph(lToken[nTokenOffset+3], ":2s") or g_value(lToken[nTokenOffset], "|je|j’|tu|il|elle|on|nous|vous|ils|elles|iel|iels|") 5730def _g_cond_gv1_298 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5731 return g_morph(lToken[nTokenOffset], ":N", ":V") 5732def _g_cond_gv1_299 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5733 return g_morph(lToken[nTokenOffset+2], ":[NAM]") and g_morph(lToken[nTokenOffset+5], ":[NAM]") and g_morph(lToken[nTokenOffset+8], ":[NAM]") 5734def _g_cond_gv1_300 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5735 return g_morph(lToken[nTokenOffset+2], ":[NAM]") and g_morph(lToken[nTokenOffset+5], ":[NAM]") and g_morph(lToken[nTokenOffset+9], ":[NAM]") 5736def _g_cond_gv1_301 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5737 return g_morph(lToken[nTokenOffset+2], ":[NAM]") and g_morph(lToken[nTokenOffset+5], ":[NAM]") and g_morph(lToken[nTokenOffset+10], ":[NAM]") 5738def _g_cond_gv1_302 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5739 return g_morph(lToken[nTokenOffset+3], ":[NAM]") and g_morph(lToken[nTokenOffset+6], ":[NAM]") 5740def _g_cond_gv1_303 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5741 return g_morph(lToken[nTokenOffset+3], ":[NAM]") and g_morph(lToken[nTokenOffset+7], ":[NAM]") 5742def _g_cond_gv1_304 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5743 return g_morph(lToken[nTokenOffset+3], ":[NAM]") and g_morph(lToken[nTokenOffset+8], ":[NAM]") 5744def _g_cond_gv1_305 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5745 return g_morph(lToken[nTokenOffset+1], ":V", ":N") 5746def _g_da_gv1_1 (lToken, nTokenOffset, nLastToken): 5747 return g_select(lToken[nTokenOffset+2], ":V") 5748def _g_cond_gv2_1 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5749 return lToken[nLastToken-1+1]["sValue"] != "A" 5750def _g_cond_gv2_2 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5751 return not g_tag_before(lToken[nTokenOffset+1], dTags, "_ceque_") and not g_value(lToken[nTokenOffset], "|tout|d’|l’|") 5752def _g_cond_gv2_3 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5753 return g_morph(lToken[nTokenOffset+4], ":[123][sp]", ":[NAGW]") 5754def _g_cond_gv2_4 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5755 return g_morph(lToken[nTokenOffset+4], ":(?:[123][sp]|P)") and g_morph(lToken[nTokenOffset+5], ":Q") 5756def _g_cond_gv2_5 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5757 return g_morph(lToken[nTokenOffset+4], ":(?:[123][sp]|P)") and g_morph(lToken[nTokenOffset+5], ":[QA]") 5758def _g_cond_gv2_6 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5759 return (g_morph(lToken[nTokenOffset+2], ":M") and g_morph(lToken[nTokenOffset+4], ":M")) or (g_morph(lToken[nTokenOffset+2], ":Y") and g_morph(lToken[nTokenOffset+4], ":Y")) 5760def _g_cond_gv2_7 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5761 return g_morph(lToken[nTokenOffset+3], ":[123][sp]") and g_morph(lToken[nTokenOffset+6], ":[123][sp]") 5762def _g_cond_gv2_8 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5763 return g_morph(lToken[nLastToken-2+1], ":[QA]") 5764def _g_cond_gv2_9 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5765 return g_morph(lToken[nLastToken-2+1], ":Q") 5766def _g_cond_gv2_10 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5767 return g_morph(lToken[nTokenOffset+3], ":([123][sp]|P)") 5768def _g_cond_gv2_11 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5769 return g_morph(lToken[nTokenOffset+3], ":([123][sp]|P)") and g_morph(lToken[nTokenOffset+4], ":[QA]") 5770def _g_cond_gv2_12 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5771 return g_morph(lToken[nTokenOffset+3], ":([123][sp]|P)") and g_morph(lToken[nTokenOffset+4], ":Q") 5772def _g_cond_gv2_13 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5773 return g_morph(lToken[nTokenOffset+2], ":M", ":G") and lToken[nTokenOffset+3]["sValue"].islower() and g_morph(lToken[nTokenOffset+3], ":3s", ":G") 5774def _g_cond_gv2_14 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5775 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:1[sŝś]", ":[GW]") 5776def _g_sugg_gv2_1 (lToken, nTokenOffset, nLastToken): 5777 return lToken[nTokenOffset+2]["sValue"][:-1]+"é-je" 5778def _g_cond_gv2_15 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5779 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:1[sŝś]", ":[GNW]") and not g_value(lToken[nTokenOffset+1], "|je|j’|il|elle|") 5780def _g_cond_gv2_16 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5781 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:1s", ":[GW]") 5782def _g_cond_gv2_17 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5783 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) 5784def _g_cond_gv2_18 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5785 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:1s", ":[GNW]") and not g_value(lToken[nTokenOffset+1], "|je|j’|tu|") 5786def _g_cond_gv2_19 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5787 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:2s", ":[GW]") 5788def _g_cond_gv2_20 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5789 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:2s", ":[GNW]") and not g_value(lToken[nTokenOffset+1], "|je|j’|tu|") 5790def _g_cond_gv2_21 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5791 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:3s", ":[GW]") 5792def _g_cond_gv2_22 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5793 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:3s", ":[GNW]") and not g_value(lToken[nTokenOffset+1], "|ce|il|elle|on|") 5794def _g_cond_gv2_23 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5795 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:3s", ":[GNW]") and not g_value(lToken[nTokenOffset+1], "|ce|c’|ça|ç’|il|elle|on|iel|") 5796def _g_cond_gv2_24 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5797 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:1p", ":[GW]") and not g_value(lToken[nTokenOffset+2], "|veuillons|sachons|") 5798def _g_cond_gv2_25 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5799 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:1p", ":[GW]") and not g_value(lToken[nTokenOffset+2], "|veuillons|sachons|allons|venons|partons|") 5800def _g_cond_gv2_26 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5801 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and ( (g_value(lToken[nTokenOffset+2], "|avions|") and not g_morph(lToken[nTokenOffset+1], ":A.*:[me]:[sp]") and not g_morph(lToken[nLastToken-1+1], ":(:?3[sp]|Ov)")) or (g_morph(lToken[nTokenOffset+2], ":V.*:1p", ":[GNW]") and not g_morph(lToken[nTokenOffset+1], ":Os")) ) 5802def _g_cond_gv2_27 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5803 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:2p", ":[GW]") and not g_value(lToken[nTokenOffset+2], "|veuillez|sachez|") 5804def _g_cond_gv2_28 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5805 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:2p", ":[GW]") and not g_value(lToken[nTokenOffset+2], "|veuillez|sachez|allez|venez|partez|") 5806def _g_cond_gv2_29 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5807 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:2p", ":[GNW]") and not g_value(lToken[nTokenOffset+2], "|veuillez|") and not g_morph(lToken[nTokenOffset+1], ":Os") 5808def _g_cond_gv2_30 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5809 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:3p", ":[GW]") 5810def _g_cond_gv2_31 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5811 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 1, 1) and g_morph(lToken[nTokenOffset+2], ":V.*:3p", ":[GNW]") and not g_value(lToken[nTokenOffset+1], "|ce|ils|elles|iels|") 5812def _g_cond_gv2_32 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5813 return lToken[nTokenOffset+3]["sValue"] == "est" or lToken[nTokenOffset+3]["sValue"] == "es" 5814def _g_cond_gv2_33 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5815 return not bCondMemo 5816def _g_sugg_gv2_2 (lToken, nTokenOffset, nLastToken): 5817 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":1s") 5818def _g_sugg_gv2_3 (lToken, nTokenOffset, nLastToken): 5819 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":2s") 5820def _g_cond_gv2_34 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5821 return not g_morph(lToken[nTokenOffset], ":R|>(?:et|ou)") and not (g_morph(lToken[nTokenOffset+2], ":Q") and g_morph(lToken[nTokenOffset], ":V0.*:3s")) 5822def _g_sugg_gv2_4 (lToken, nTokenOffset, nLastToken): 5823 return suggVerb(lToken[nTokenOffset+2]["sValue"], ":3s") 5824def _g_cond_gv2_35 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5825 return bCondMemo and g_morph(lToken[nTokenOffset+2], ":3p") 5826def _g_cond_gv2_36 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5827 return not g_morph(lToken[nTokenOffset], ":R|>(?:et|ou)") 5828def _g_sugg_gv2_5 (lToken, nTokenOffset, nLastToken): 5829 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":3s") 5830def _g_cond_gv2_37 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5831 return bCondMemo and g_morph(lToken[nTokenOffset+3], ":3p") 5832def _g_cond_gv2_38 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5833 return not g_morph(lToken[nTokenOffset], ":[VR]") 5834def _g_cond_gv2_39 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5835 return bCondMemo and g_morph(lToken[nTokenOffset+2], ":[123]p") 5836def _g_sugg_gv2_6 (lToken, nTokenOffset, nLastToken): 5837 return lToken[nTokenOffset+1]["sValue"].replace("e-", "es-").replace("E-", "ES-") 5838def _g_cond_gv2_40 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5839 return g_morph(lToken[nTokenOffset+3], ":[123]p") 5840def _g_sugg_gv2_7 (lToken, nTokenOffset, nLastToken): 5841 return suggVerb(lToken[nLastToken-1+1]["sValue"], ":3s") 5842def _g_cond_gv2_41 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5843 return not g_morph(lToken[nTokenOffset], ":[VRD]") 5844def _g_cond_gv2_42 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5845 return g_morph(lToken[nTokenOffset], ":C|<start>|>,", ":(?:P|Q|[123][sp]|R)|>ni/") 5846def _g_cond_gv2_43 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5847 return g_morph(lToken[nTokenOffset], ":[CRV]|<start>|>,", ":D") 5848def _g_cond_gv2_44 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5849 return g_tag(lToken[nTokenOffset+2], "neg") and g_morph(lToken[nTokenOffset], ":Cs|<start>|>,", ":(?:Y|P|Q|[123][sp]|R)") and not(g_morph(lToken[nTokenOffset+2], ":Y") and g_value(lToken[nTokenOffset], "|ne|")) 5850def _g_cond_gv2_45 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5851 return g_morph(lToken[nTokenOffset], ":[CRV]|<start>|>,") 5852def _g_cond_gv2_46 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5853 return g_morph(lToken[nTokenOffset], ":Cs|<start>|>,", ":(?:Y|P|Q|[123][sp]|R)") 5854def _g_cond_gv2_47 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5855 return g_morph(lToken[nTokenOffset], ":(?:Cs|R|V)|<start>|>,") 5856def _g_cond_gv2_48 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5857 return not (g_value(lToken[nTokenOffset+2], "|avoir|croire|être|devenir|redevenir|voir|sembler|paraître|paraitre|sentir|rester|retrouver|") and g_morph(lToken[nTokenOffset+3], ":[NA]")) 5858def _g_cond_gv2_49 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5859 return not g_tag(lToken[nTokenOffset+2], "_enum_") and g_morph(lToken[nTokenOffset], ":C|<start>|>,", ":[YP]") and g_morph(lToken[nTokenOffset+2], ":[NA].*:[si]", ":G") and not ( (g_value(lToken[nTokenOffset+2], "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or g_tag_before(lToken[nTokenOffset+1], dTags, "_ni_") or g_value(lToken[nTokenOffset], "|et|ou|")) and g_morph(lToken[nTokenOffset+3], ":3?p") ) and not g_checkAgreement(lToken[nTokenOffset+2], lToken[nTokenOffset+3]) and not ( g_morph(lToken[nTokenOffset+2], "(?:[123][sp]|P)") and not g_value(lToken[nTokenOffset], "|<start>|,|") ) 5860def _g_cond_gv2_50 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5861 return not g_tag(lToken[nLastToken-1+1], "_ngn_") and g_morph(lToken[nTokenOffset+3], ":A.*:p") or (g_morph(lToken[nTokenOffset+3], ":N.*:p") and g_morph(lToken[nTokenOffset+2], ":A")) 5862def _g_sugg_gv2_8 (lToken, nTokenOffset, nLastToken): 5863 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":3s", suggSing) 5864def _g_cond_gv2_51 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5865 return not g_tag(lToken[nTokenOffset+2], "_enum_") and g_morph(lToken[nTokenOffset], ":C|<start>|>,", ":[YP]") and g_morph(lToken[nTokenOffset+2], ":[NA].*:[si]", ":G") and not ( (g_value(lToken[nTokenOffset+2], "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or g_tag_before(lToken[nTokenOffset+1], dTags, "_ni_") or g_value(lToken[nTokenOffset], "|et|ou|")) and g_morph(lToken[nTokenOffset+4], ":3p") ) 5866def _g_sugg_gv2_9 (lToken, nTokenOffset, nLastToken): 5867 return suggVerb(lToken[nTokenOffset+4]["sValue"], ":3s") 5868def _g_cond_gv2_52 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5869 return not g_tag(lToken[nTokenOffset+2], "_enum_") and g_morph(lToken[nTokenOffset], ":C|<start>|>,", ":[YP]") and g_morph(lToken[nTokenOffset+2], ":[NA].*:[me]:[si]", ":G") and not ( (g_value(lToken[nTokenOffset+2], "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or g_tag_before(lToken[nTokenOffset+1], dTags, "_ni_") or g_value(lToken[nTokenOffset], "|et|ou|")) and g_morph(lToken[nTokenOffset+3], ":3?p") ) and not g_checkAgreement(lToken[nTokenOffset+2], lToken[nTokenOffset+3]) 5870def _g_cond_gv2_53 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5871 return not g_tag(lToken[nTokenOffset+2], "_enum_") and g_morph(lToken[nTokenOffset], ":C|<start>|>,", ":[YP]") and g_morph(lToken[nTokenOffset+2], ":[NA].*:[fe]:[si]", ":G") and not ( (g_value(lToken[nTokenOffset+2], "|dizaine|douzaine|quinzaine|vingtaine|trentaine|quarantaine|cinquantaine|soixantaine|centaine|majorité|minorité|millier|partie|poignée|tas|paquet|moitié|") or g_tag_before(lToken[nTokenOffset+1], dTags, "_ni_") or g_value(lToken[nTokenOffset], "|et|ou|")) and g_morph(lToken[nTokenOffset+3], ":3?p") ) and not g_checkAgreement(lToken[nTokenOffset+2], lToken[nTokenOffset+3]) 5872def _g_cond_gv2_54 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5873 return not g_tag(lToken[nTokenOffset+1], "_un_des_") and g_morph(lToken[nTokenOffset], ":C|<start>|>(?:,|dont)", ":(?:Y|P|Q|[123][sp]|R)̉|>(?:sauf|excepté|et|ou)/") 5874def _g_cond_gv2_55 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5875 return not g_tag(lToken[nTokenOffset+1], "_un_des_") and g_morph(lToken[nTokenOffset], "<start>|>(?:,|dont)/|:R") 5876def _g_cond_gv2_56 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5877 return g_tag(lToken[nTokenOffset+1], "_un_des_") and g_morph(lToken[nTokenOffset], ":C|<start>|>,", ":(?:Y|P|Q|[123][sp]|R)") 5878def _g_cond_gv2_57 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5879 return g_morph(lToken[nTokenOffset], ":C|<start>|>,", ":(?:Y|P|Q|[123][sp]|R)") 5880def _g_cond_gv2_58 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5881 return not (g_morph(lToken[nTokenOffset], ":R") and g_morph(lToken[nLastToken-1+1], ":3p")) 5882def _g_sugg_gv2_10 (lToken, nTokenOffset, nLastToken): 5883 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":1p") 5884def _g_sugg_gv2_11 (lToken, nTokenOffset, nLastToken): 5885 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":2p") 5886def _g_cond_gv2_59 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5887 return not g_morph(lToken[nTokenOffset], ":R") and not (g_morph(lToken[nTokenOffset+2], ":Q") and g_morph(lToken[nTokenOffset], ":V0.*:3p")) 5888def _g_sugg_gv2_12 (lToken, nTokenOffset, nLastToken): 5889 return suggVerb(lToken[nTokenOffset+2]["sValue"], ":3p") 5890def _g_cond_gv2_60 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5891 return bCondMemo and g_morph(lToken[nTokenOffset+2], ":3s") 5892def _g_sugg_gv2_13 (lToken, nTokenOffset, nLastToken): 5893 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":3p") 5894def _g_cond_gv2_61 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5895 return bCondMemo and g_morph(lToken[nTokenOffset+3], ":3s") 5896def _g_cond_gv2_62 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5897 return g_morph(lToken[nTokenOffset+3], ":3s") 5898def _g_cond_gv2_63 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5899 return g_morph(lToken[nTokenOffset+3], ":[123]s") 5900def _g_cond_gv2_64 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5901 return bCondMemo and g_morph(lToken[nTokenOffset+2], ":[123]s") 5902def _g_sugg_gv2_14 (lToken, nTokenOffset, nLastToken): 5903 return lToken[nTokenOffset+1]["sValue"].replace("s", "").replace("S", "") 5904def _g_cond_gv2_65 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5905 return g_tag(lToken[nTokenOffset+1], "_bcp_plur_") and not g_morph(lToken[nTokenOffset+2], ":3p") 5906def _g_cond_gv2_66 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5907 return not bCondMemo and g_tag(lToken[nTokenOffset+1], "_bcp_sing_") and not g_morph(lToken[nTokenOffset+2], ":3s") 5908def _g_cond_gv2_67 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5909 return not bCondMemo and lToken[nTokenOffset+2]["sValue"] != "a" and not g_tag(lToken[nTokenOffset+1], "_bcp_sing_") and not g_morph(lToken[nTokenOffset+2], ":3p") and not (g_space_between_tokens(lToken[nTokenOffset+1], lToken[nTokenOffset+1+1], 1, 2) and g_morph(lToken[nTokenOffset+2], ":V0")) 5910def _g_sugg_gv2_15 (lToken, nTokenOffset, nLastToken): 5911 return suggVerb(lToken[nLastToken-1+1]["sValue"], ":3p") 5912def _g_cond_gv2_68 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5913 return not g_morph(lToken[nTokenOffset], ":[VR]") and not (g_tag(lToken[nTokenOffset+1], "_d_entre_nous_") and g_morph(lToken[nLastToken-1+1], ":1p")) and not (g_tag(lToken[nTokenOffset+1], "_d_entre_vous_") and g_morph(lToken[nLastToken-1+1], ":2p")) 5914def _g_cond_gv2_69 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5915 return not (g_tag(lToken[nTokenOffset+1], "_d_entre_nous_") and g_morph(lToken[nLastToken-1+1], ":1p")) and not (g_tag(lToken[nTokenOffset+1], "_d_entre_vous_") and g_morph(lToken[nLastToken-1+1], ":2p")) 5916def _g_cond_gv2_70 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5917 return g_morph(lToken[nTokenOffset+3], ":[12]p") 5918def _g_cond_gv2_71 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5919 return not g_morph(lToken[nTokenOffset], ":[VR]|>(?:et|ou)/") 5920def _g_cond_gv2_72 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5921 return g_morph(lToken[nTokenOffset], ":Cs|<start>|>,") and not( g_morph(lToken[nTokenOffset+3], ":3s") and look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) 5922def _g_cond_gv2_73 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5923 return not g_tag(lToken[nLastToken-1+1], "_ngn_") and g_morph(lToken[nTokenOffset+3], ":A.*:s") or (g_morph(lToken[nTokenOffset+3], ":N.*:s") and g_morph(lToken[nTokenOffset+2], ":A")) 5924def _g_sugg_gv2_16 (lToken, nTokenOffset, nLastToken): 5925 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":3p", suggPlur) 5926def _g_cond_gv2_74 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5927 return g_morph(lToken[nTokenOffset], ":Cs|<start>|>,") and not( g_morph(lToken[nTokenOffset+4], ":3s") and look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) 5928def _g_sugg_gv2_17 (lToken, nTokenOffset, nLastToken): 5929 return suggVerb(lToken[nTokenOffset+4]["sValue"], ":3p") 5930def _g_cond_gv2_75 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5931 return g_morph(lToken[nTokenOffset], ":Cs|<start>|>,") and not ( g_morph(lToken[nTokenOffset+3], ":3s") and look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) and not g_checkAgreement(lToken[nTokenOffset+2], lToken[nTokenOffset+3]) and not ( g_morph(lToken[nTokenOffset+2], "(?:[123][sp]|P)") and not g_value(lToken[nTokenOffset], "|<start>|,|") ) 5932def _g_cond_gv2_76 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5933 return g_morph(lToken[nTokenOffset], ":Cs|<start>|>,") and not( g_morph(lToken[nTokenOffset+3], ":3s") and look(sSentence[:lToken[1+nTokenOffset]["nStart"]], "(?i)\\b(?:l[ea] |l’|une? |ce(?:tte|t|) |[mts](?:on|a) |[nv]otre ).+ entre .+ et ") ) and not g_checkAgreement(lToken[nTokenOffset+2], lToken[nTokenOffset+3]) and not ( g_morph(lToken[nTokenOffset+2], "(?:[123][sp]|P)") and not g_value(lToken[nTokenOffset], "|<start>|,|") ) 5934def _g_sugg_gv2_18 (lToken, nTokenOffset, nLastToken): 5935 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":3p", suggMasPlur) 5936def _g_sugg_gv2_19 (lToken, nTokenOffset, nLastToken): 5937 return suggVerb(lToken[nTokenOffset+3]["sValue"], ":3p", suggFemPlur) 5938def _g_cond_gv2_77 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5939 return g_morph(lToken[nLastToken+1], ":(?:R|D.*:p)|>au/|<end>|>,") 5940def _g_cond_gv2_78 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5941 return not g_morph(lToken[nTokenOffset+4], ":[NA]") 5942def _g_cond_gv2_79 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5943 return not bCondMemo and not g_checkAgreement(lToken[nTokenOffset+3], lToken[nTokenOffset+4]) 5944def _g_sugg_gv2_20 (lToken, nTokenOffset, nLastToken): 5945 return suggVerb(lToken[nTokenOffset+4]["sValue"], ":3p", suggPlur) 5946def _g_sugg_gv2_21 (lToken, nTokenOffset, nLastToken): 5947 return suggVerb(lToken[nTokenOffset+5]["sValue"], ":3p") 5948def _g_cond_gv2_80 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5949 return not g_tag(lToken[nTokenOffset+2], "_enum_") and g_morph(lToken[nTokenOffset+2], ":M") 5950def _g_cond_gv2_81 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5951 return g_morph(lToken[nTokenOffset+1], ":M") and g_morph(lToken[nTokenOffset+3], ":M") and not g_morph(lToken[nTokenOffset], ":[RV]|>(?:des?|du|et|ou|ni)/") 5952def _g_cond_gv2_82 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5953 return not g_morph(lToken[nTokenOffset], ":[RV]") 5954def _g_cond_gv2_83 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5955 return g_morph(lToken[nTokenOffset+2], ":[123][sp]", ":(?:3s|G|W|3p!)") and not g_value(lToken[nTokenOffset+4], "|plupart|majorité|groupe|") and not g_tag(lToken[nTokenOffset+4], "_enum_") and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":D")) and not (g_value(g_token(lToken, nLastToken+2), "|et|ou|") and g_morph(g_token(lToken, nLastToken+3), ":D")) 5956def _g_cond_gv2_84 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5957 return g_morph(lToken[nTokenOffset+2], ":[123][sp]", ":(?:3s|G|W|3p!)") and not g_value(lToken[nTokenOffset+4], "|plupart|majorité|groupe|") and not g_tag(lToken[nTokenOffset+4], "_enum_") and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":D")) and not (g_value(g_token(lToken, nLastToken+2), "|et|ou|") and g_morph(g_token(lToken, nLastToken+3), ":D")) and not g_morph(lToken[nTokenOffset+4], ":Y") 5958def _g_cond_gv2_85 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5959 return g_morph(lToken[nTokenOffset+2], ":[123][sp]", ":(?:3s|G|W|3p!)") and not g_value(lToken[nTokenOffset+4], "|plupart|majorité|groupe|") and not g_tag(lToken[nTokenOffset+4], "_enum_") and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":D")) and not (g_value(g_token(lToken, nLastToken+2), "|et|ou|") and g_morph(g_token(lToken, nLastToken+3), ":D")) and not g_morph(lToken[nTokenOffset], ":[NA]") 5960def _g_cond_gv2_86 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5961 return g_morph(lToken[nTokenOffset+2], ":[123][sp]", ":(?:3s|G|W|3p!)") and not g_value(lToken[nTokenOffset+4], "|plupart|majorité|groupe|") and not g_tag(lToken[nTokenOffset+4], "_enum_") and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":D")) and not (g_value(g_token(lToken, nLastToken+2), "|et|ou|") and g_morph(g_token(lToken, nLastToken+3), ":D")) and not g_morph(lToken[nTokenOffset+4], ":Y") and not g_morph(lToken[nTokenOffset], ":[NA]") 5962def _g_cond_gv2_87 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5963 return g_morph(lToken[nTokenOffset+2], ":[123][sp]", ":(?:3s|G|W|3p!)") and g_morph(lToken[nTokenOffset], ":R") and not g_value(lToken[nTokenOffset+4], "|plupart|majorité|groupe|") and not (g_value(lToken[nLastToken+1], "|et|ou|") and g_morph(g_token(lToken, nLastToken+2), ":D")) 5964def _g_cond_gv2_88 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5965 return g_morph(lToken[nTokenOffset+2], ":[123][sp]", ":(?:3p|G|W)") 5966def _g_cond_gv2_89 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5967 return g_morph(lToken[nTokenOffset+2], ":[123][sp]", ":(?:3p|G|W)") and not g_morph(lToken[nTokenOffset], ":[NA]") 5968def _g_cond_gv2_90 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5969 return g_morph(lToken[nTokenOffset+2], ":[123][sp]", ":(?:3p|G|W)") and g_morph(lToken[nTokenOffset], ":R") 5970def _g_cond_gv2_91 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5971 return g_morph(lToken[nTokenOffset+2], ":[12]s") and not g_value(lToken[nLastToken+1], "|je|tu|") 5972def _g_cond_gv2_92 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5973 return not bCondMemo and g_morph(lToken[nTokenOffset+2], ":[12]p") and not g_value(lToken[nLastToken+1], "|nous|vous|") 5974def _g_cond_gv2_93 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5975 return g_morph(lToken[nTokenOffset+3], ":V0e", ":3s") 5976def _g_cond_gv2_94 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5977 return not ( g_morph(lToken[nTokenOffset+3], ":3p") and (g_value(lToken[nLastToken+1], "|et|") or g_tag(lToken[nTokenOffset+5], "_enum_")) ) 5978def _g_cond_gv2_95 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5979 return bCondMemo 5980def _g_sugg_gv2_22 (lToken, nTokenOffset, nLastToken): 5981 return lToken[nTokenOffset+1]["sValue"][:-1] 5982def _g_cond_gv2_96 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5983 return g_morph(lToken[nTokenOffset+3], ":V0e", ":3p") 5984def _g_cond_gv2_97 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5985 return g_morphVC(lToken[nTokenOffset+1], ">avoir/") 5986def _g_cond_gv2_98 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 5987 return g_morph(lToken[nTokenOffset+4], ":K") 5988def _g_sugg_gv2_23 (lToken, nTokenOffset, nLastToken): 5989 return suggVerbTense(lToken[nTokenOffset+4]["sValue"], ":Iq", ":1s") 5990def _g_sugg_gv2_24 (lToken, nTokenOffset, nLastToken): 5991 return suggVerbTense(lToken[nTokenOffset+4]["sValue"], ":Iq", ":2s") 5992def _g_sugg_gv2_25 (lToken, nTokenOffset, nLastToken): 5993 return suggVerbTense(lToken[nTokenOffset+4]["sValue"], ":Iq", ":3s") 5994def _g_sugg_gv2_26 (lToken, nTokenOffset, nLastToken): 5995 return suggVerbTense(lToken[nTokenOffset+4]["sValue"], ":Iq", ":1p") 5996def _g_sugg_gv2_27 (lToken, nTokenOffset, nLastToken): 5997 return suggVerbTense(lToken[nTokenOffset+4]["sValue"], ":Iq", ":2p") 5998def _g_sugg_gv2_28 (lToken, nTokenOffset, nLastToken): 5999 return suggVerbTense(lToken[nTokenOffset+4]["sValue"], ":Iq", ":3p") 6000def _g_cond_gv2_99 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6001 return g_morph(lToken[nTokenOffset+5], ":K") 6002def _g_sugg_gv2_29 (lToken, nTokenOffset, nLastToken): 6003 return suggVerbTense(lToken[nTokenOffset+5]["sValue"], ":Iq", ":3s") 6004def _g_sugg_gv2_30 (lToken, nTokenOffset, nLastToken): 6005 return suggVerbTense(lToken[nTokenOffset+5]["sValue"], ":Iq", ":3p") 6006def _g_sugg_gv2_31 (lToken, nTokenOffset, nLastToken): 6007 return suggVerbMode(lToken[nTokenOffset+3]["sValue"], ":I", lToken[nTokenOffset+2]["sValue"]) 6008def _g_sugg_gv2_32 (lToken, nTokenOffset, nLastToken): 6009 return suggVerbMode(lToken[nLastToken-1+1]["sValue"], ":I", lToken[nLastToken-2+1]["sValue"]) 6010def _g_sugg_gv2_33 (lToken, nTokenOffset, nLastToken): 6011 return suggVerbMode(lToken[nTokenOffset+4]["sValue"], ":I", lToken[nTokenOffset+3]["sValue"]) 6012def _g_sugg_gv2_34 (lToken, nTokenOffset, nLastToken): 6013 return suggVerbMode(lToken[nTokenOffset+3]["sValue"], ":I", "je") 6014def _g_sugg_gv2_35 (lToken, nTokenOffset, nLastToken): 6015 return suggVerbMode(lToken[nTokenOffset+5]["sValue"], ":I", lToken[nTokenOffset+4]["sValue"]) 6016def _g_cond_gv2_100 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6017 return g_morph(lToken[nTokenOffset+1], ":V", ":N") 6018def _g_sugg_gv2_36 (lToken, nTokenOffset, nLastToken): 6019 return suggVerbMode(lToken[nLastToken-1+1]["sValue"], ":S", lToken[nLastToken-2+1]["sValue"]) 6020def _g_cond_gv2_101 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6021 return not g_morph(lToken[nTokenOffset+1], ":Q") 6022def _g_cond_gv2_102 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6023 return g_tag(lToken[nTokenOffset+1], "_upron_") 6024def _g_cond_gv2_103 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6025 return not g_value(lToken[nTokenOffset], "|ça|cela|ceci|") 6026def _g_cond_gv2_104 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6027 return not g_value(lToken[nTokenOffset], "|la|") 6028def _g_cond_gv2_105 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6029 return not g_tag(lToken[nTokenOffset+1], "_upron_") and not g_tag(lToken[nTokenOffset+1], "neg") and g_morph(lToken[nTokenOffset+1], ":V", ":N") 6030def _g_cond_gv2_106 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6031 return g_tag(lToken[nTokenOffset+2], "_upron_") 6032def _g_sugg_gv2_37 (lToken, nTokenOffset, nLastToken): 6033 return suggVerbMode(lToken[nTokenOffset+3]["sValue"], ":S", lToken[nTokenOffset+2]["sValue"]) 6034def _g_sugg_gv2_38 (lToken, nTokenOffset, nLastToken): 6035 return suggVerbMode(lToken[nTokenOffset+4]["sValue"], ":S", lToken[nTokenOffset+3]["sValue"]) 6036def _g_sugg_gv2_39 (lToken, nTokenOffset, nLastToken): 6037 return suggVerbMode(lToken[nTokenOffset+5]["sValue"], ":S", lToken[nTokenOffset+4]["sValue"]) 6038def _g_sugg_gv2_40 (lToken, nTokenOffset, nLastToken): 6039 return suggVerbMode(lToken[nTokenOffset+6]["sValue"], ":S", lToken[nTokenOffset+5]["sValue"]) 6040def _g_cond_gv2_107 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6041 return g_morph(lToken[nTokenOffset+5], ":I", ":S") 6042def _g_cond_gv2_108 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6043 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 0, 0) 6044def _g_sugg_gv2_41 (lToken, nTokenOffset, nLastToken): 6045 return suggVerbTense(lToken[nTokenOffset+4]["sValue"], ":E", ":2s") 6046def _g_cond_gv2_109 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6047 return g_space_between_tokens(lToken[nTokenOffset+2], lToken[nTokenOffset+2+1], 0, 0) and g_morph(lToken[nTokenOffset+4], ">(?:être|devenir|redevenir|sembler|para[iî]tre)/") 6048def _g_cond_gv2_110 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6049 return g_space_between_tokens(lToken[nTokenOffset+3], lToken[nTokenOffset+3+1], 0, 0) 6050def _g_sugg_gv2_42 (lToken, nTokenOffset, nLastToken): 6051 return suggVerbTense(lToken[nTokenOffset+5]["sValue"], ":E", ":2s") 6052def _g_cond_gv2_111 (lToken, nTokenOffset, nLastToken, sCountry, bCondMemo, dTags, sSentence, sSentence0): 6053 return g_space_between_tokens(lToken[nTokenOffset+3], lToken[nTokenOffset+3+1], 0, 0) and g_morph(lToken[nTokenOffset+5], ">(?:être|devenir|redevenir|sembler|para[iî]tre)/") 6054 6055