Index: compile_rules.py ================================================================== --- compile_rules.py +++ compile_rules.py @@ -11,11 +11,12 @@ import compile_rules_js_convert as jsconv import compile_rules_graph as crg -dDEF = {} +dDEFINITIONS = {} +dDECLENSIONS = {} lFUNCTIONS = [] aRULESET = set() # set of rule-ids to check if there is several rules with the same id nRULEWITHOUTNAME = 0 @@ -199,11 +200,11 @@ # quotes ? if sRegex.startswith('"') and sRegex.endswith('"'): sRegex = sRegex[1:-1] ## definitions - for sDef, sRepl in dDEF.items(): + for sDef, sRepl in dDEFINITIONS.items(): sRegex = sRegex.replace(sDef, sRepl) ## count number of groups (must be done before modifying the regex) nGroup = countGroupInRegex(sRegex) if nGroup > 0: @@ -505,14 +506,22 @@ pass elif sLine.startswith("DEF:"): # definition m = re.match("DEF: +([a-zA-Z_][a-zA-Z_0-9]*) +(.+)$", sLine.strip()) if m: - dDEF["{"+m.group(1)+"}"] = m.group(2) + dDEFINITIONS["{"+m.group(1)+"}"] = m.group(2) else: print("Error in definition: ", end="") print(sLine.strip()) + elif sLine.startswith("DECL:"): + # declensions + m = re.match(r"DECL: +(\+\w+) (.+)$", sLine.strip()) + if m: + dDECLENSIONS[m.group(1)] = m.group(2).strip().split() + else: + print("Error in declension list: ", end="") + print(sLine.strip()) elif sLine.startswith("TEST:"): # test lTest.append("{:<8}".format(i) + " " + sLine[5:].strip()) elif sLine.startswith("TODO:"): # todo @@ -534,14 +543,15 @@ # rules graph call m = re.match(r"@@@@GRAPH: *(\w+)", sLine.strip()) if m: printBookmark(0, "GRAPH: " + m.group(1), i) lRuleLine.append([i, "@@@@"+m.group(1)]) + lGraphRule.append([i, sLine]) bGraph = True - lGraphRule.append([i, sLine]) - bGraph = True - elif sLine.startswith("@@@@END_GRAPH"): + else: + print("Graph error at line", i) + elif sLine.startswith(("@@@@END_GRAPH", "@@@@ENDGRAPH")): #lGraphRule.append([i, sLine]) printBookmark(0, "ENDGRAPH", i) bGraph = False elif re.match("@@@@ *$", sLine): pass @@ -631,11 +641,11 @@ "sentence_rules_JS": jsconv.writeRulesToJSArray(mergeRulesByOption(lSentenceRulesJS)) } dVars.update(dOptions) # compile graph rules - dVars2 = crg.make(lGraphRule, dDEF, sLang, dOptPriority) + dVars2 = crg.make(lGraphRule, sLang, dDEFINITIONS, dDECLENSIONS, dOptPriority) dVars.update(dVars2) with open("_build/data_cache.json", "w", encoding="utf-8") as hDst: hDst.write(json.dumps(dVars, ensure_ascii=False)) return dVars Index: compile_rules_graph.py ================================================================== --- compile_rules_graph.py +++ compile_rules_graph.py @@ -10,10 +10,11 @@ dACTIONS = {} dFUNCTIONS = {} dFUNCNAME = {} +dDECLENSIONS = {} def createFunction (sType, sCode, bStartWithEqual=False): "create a function (stored in ) and return function name" sCode = prepareFunction(sCode) @@ -71,76 +72,96 @@ sCode = re.sub(r">1", 'lToken[nLastToken+1]["sValue"]', sCode) sCode = re.sub(r"<1", 'lToken[nTokenOffset]["sValue"]', sCode) return sCode -def genTokenLines (sTokenLine, dDef): +def genTokenLines (sTokenLine, dDef, dDecl): "tokenize a string and return a list of lines of tokens" lTokenLines = [] - for sToken in sTokenLine.split(): + for sTokBlock in sTokenLine.split(): # replace merger characters by spaces - if "␣" in sToken: - sToken = sToken.replace("␣", " ") + if "␣" in sTokBlock: + sTokBlock = sTokBlock.replace("␣", " ") # optional token? - bNullPossible = sToken.startswith("?") and sToken.endswith("¿") + bNullPossible = sTokBlock.startswith("?") and sTokBlock.endswith("¿") if bNullPossible: - sToken = sToken[1:-1] + sTokBlock = sTokBlock[1:-1] # token with definition? - if sToken.startswith("({") and sToken.endswith("})") and sToken[1:-1] in dDef: - sToken = "(" + dDef[sToken[1:-1]] + ")" - elif sToken.startswith("{") and sToken.endswith("}") and sToken in dDef: - sToken = dDef[sToken] - if ( (sToken.startswith("[") and sToken.endswith("]")) or (sToken.startswith("([") and sToken.endswith("])")) ): + if sTokBlock.startswith("({") and sTokBlock.endswith("})") and sTokBlock[1:-1] in dDef: + sTokBlock = "(" + dDef[sTokBlock[1:-1]] + ")" + elif sTokBlock.startswith("{") and sTokBlock.endswith("}") and sTokBlock in dDef: + sTokBlock = dDef[sTokBlock] + if ( (sTokBlock.startswith("[") and sTokBlock.endswith("]")) or (sTokBlock.startswith("([") and sTokBlock.endswith("])")) ): # multiple token - bSelectedGroup = sToken.startswith("(") and sToken.endswith(")") + bSelectedGroup = sTokBlock.startswith("(") and sTokBlock.endswith(")") if bSelectedGroup: - sToken = sToken[1:-1] - lNewToken = sToken[1:-1].split("|") + sTokBlock = sTokBlock[1:-1] + lToken = createTokenList(sTokBlock, dDecl) if not lTokenLines: - lTokenLines = [ ["("+s+")"] for s in lNewToken ] if bSelectedGroup else [ [s] for s in lNewToken ] + lTokenLines = [ ["("+s+")"] for s in lToken ] if bSelectedGroup else [ [s] for s in lToken ] if bNullPossible: - lTokenLines.extend([ [] for i in range(len(lNewToken)+1) ]) + lTokenLines.extend([ [] for i in range(len(lToken)+1) ]) else: lNewTemp = [] if bNullPossible: for aRule in lTokenLines: - for sElem in lNewToken: + for sElem in lToken: aNewRule = list(aRule) aNewRule.append(sElem) lNewTemp.append(aNewRule) else: - sElem1 = lNewToken.pop(0) + sElem1 = lToken.pop(0) for aRule in lTokenLines: - for sElem in lNewToken: + for sElem in lToken: aNewRule = list(aRule) aNewRule.append("(" + sElem + ")" if bSelectedGroup else sElem) lNewTemp.append(aNewRule) aRule.append("(" + sElem1 + ")" if bSelectedGroup else sElem1) lTokenLines.extend(lNewTemp) else: # simple token if not lTokenLines: - lTokenLines = [[sToken], []] if bNullPossible else [[sToken]] + lTokenLines = [[sTokBlock], []] if bNullPossible else [[sTokBlock]] else: if bNullPossible: lNewTemp = [] for aRule in lTokenLines: lNew = list(aRule) - lNew.append(sToken) + lNew.append(sTokBlock) lNewTemp.append(lNew) lTokenLines.extend(lNewTemp) else: for aRule in lTokenLines: - aRule.append(sToken) + aRule.append(sTokBlock) for aRule in lTokenLines: yield aRule -def createRule (iLine, sRuleName, sTokenLine, iActionBlock, sActions, nPriority, dOptPriority, dDef): +def createTokenList (sTokBlock, dDeclensions): + "return a list of tokens from a block of tokens" + lToken = [] + for sToken in sTokBlock[1:-1].split("|"): + if "+" in sToken and not sToken.startswith("+"): + print("\n", sToken) + for sCode in dDeclensions: + if sToken.endswith(sCode): + sToken = sToken[:-len(sCode)] + lToken.append(sToken) + print(dDeclensions[sCode]) + for sSuffix in dDeclensions[sCode]: + lToken.append(sToken+sSuffix) + break + print(lToken) + else: + lToken.append(sToken) + return lToken + + +def createRule (iLine, sRuleName, sTokenLine, iActionBlock, sActions, nPriority, dOptPriority, dDef, dDecl): "generator: create rule as list" # print(iLine, "//", sRuleName, "//", sTokenLine, "//", sActions, "//", nPriority) - for lToken in genTokenLines(sTokenLine, dDef): + for lToken in genTokenLines(sTokenLine, dDef, dDecl): # Calculate positions dPos = {} # key: iGroup, value: iToken iGroup = 0 #if iLine == 15818: # debug # print(" ".join(lToken)) @@ -314,11 +335,11 @@ return [sOption, sCondition, cAction, sAction] print(" # Unknown action.", sActionId) return None -def make (lRule, dDef, sLang, dOptPriority): +def make (lRule, sLang, dDef, dDecl, dOptPriority): "compile rules, returns a dictionary of values" # for clarity purpose, don’t create any file here # removing comments, zeroing empty lines, creating definitions, storing tests, merging rule lines print(" parsing rules...") @@ -396,11 +417,11 @@ print(" preparing rules...") for sGraphName, lRuleLine in dAllGraph.items(): print("{:>8,} rules in {:<24} ".format(len(lRuleLine), "<"+sGraphName+">"), end="") lPreparedRule = [] for i, sRuleGroup, sTokenLine, iActionBlock, sActions, nPriority in lRuleLine: - for aRule in createRule(i, sRuleGroup, sTokenLine, iActionBlock, sActions, nPriority, dOptPriority, dDef): + for aRule in createRule(i, sRuleGroup, sTokenLine, iActionBlock, sActions, nPriority, dOptPriority, dDef, dDecl): lPreparedRule.append(aRule) # Graph creation oDARG = darg.DARG(lPreparedRule, sLang) dAllGraph[sGraphName] = oDARG.createGraph() # Debugging Index: gc_lang/fr/rules.grx ================================================================== --- gc_lang/fr/rules.grx +++ gc_lang/fr/rules.grx @@ -290,10 +290,24 @@ DEF: pronom_obj [moi|toi|soi|lui|elle|nous|vous|eux|elles|moi-même|toi-même|soi-même|lui-même|elle-même|nous-mêmes|vous-même|vous-mêmes|eux-mêmes|elles-mêmes] !! !! +!! Déclinaisons de tokens !! +!! +!! + +DECL: +s s +DECL: +e e +DECL: +ses s e es +DECL: +es e es +DECL: +les s le les +DECL: +x x + + +!! +!! !! !! !! !! !! @@ -3827,11 +3841,11 @@ <<- /tu/ ->> par-\2 # Il manque un trait d’union. par ci ?,¿ par là <<- /tu/ ->> par-ci par-là|par-ci, par-là # Trait(s) d’union manquant(s). - [le|les|du|des|un|ce|ces|mon|ton|son] [prêt|prêts] [à|a] porter + [le|les|du|des|un|ce|ces|mon|ton|son] [prêt+s] [à|a] porter <<- /tu/ -2:0>> \2-à-porter # Il manque les traits d’union. >pied [à|a] terre <<- /tu/ morph(<1, ":D") ->> \1-à-terre # Il manque les traits d’union. @@ -3871,11 +3885,11 @@ soi disant <<- /tu/ not ( morph(<1, ":R") and value(>1, "|que|qu’|") ) ->> soi-disant # Il manque un trait d’union. - sous [jacent|jacente|jacents|jacentes] + sous [jacent+ses] <<- /tu/ ->> sous-\2 # Il manque un trait d’union. du sur >mesure <<- /tu/ -2:0>> sur-mesures # Il manque un trait d’union. @@ -5310,14 +5324,15 @@ <<- /conf/ -4>> =suggSimil(\4, ":(?:[123][sp]|Y)", False) # Incohérence avec « \1 \2 \3 » : « \4 » devrait être un verbe. [ne|n’] [le|la|l’|les|nous|vous|lui|leur] @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:pas|presque|jamais|rien|guère|point|plus)/ n’ [en|y] @:¬:(?:[123][sp]|Y|P|Ov|X|W)|>(?:pas|presque|jamais|rien|guère|point|plus)/ [me|m’|te|t’|se|s’] [le|la|l’|les] @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:pas|presque|jamais|rien|guère|point|plus)/ - [me|m’|te|t’|se|s’] [en|y] @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:pas|presque|jamais|rien|guère|point|plus|voici|voilà)/ + [me|m’|te|t’] [en|y] @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:pas|presque|jamais|rien|guère|point|plus|voici|revoici|voilà|revoilà)/ + [se|s’] [en|y] @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:pas|presque|jamais|rien|guère|point|plus)/ <<- /conf/ -3>> =suggSimil(\3, ":(?:[123][sp]|Y)", False) # Incohérence avec « \1 \2 » : « \3 » devrait être un verbe. - [nous|vous] y @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:pas|presque|jamais|rien|guère|point|plus|voici|voilà)/ + [nous|vous] y @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:pas|presque|jamais|rien|guère|point|plus|voici|revoici|voilà|revoilà)/ <<- /conf/ not morph(<1, ":R") -3>> =suggSimil(\3, ":(?:[123][sp]|Y)", False) # Incohérence avec « \1 \2 » : « \3 » devrait être un verbe. [ne|n’] @:¬:(?:[123][sp]|Y|P|Ov|X|W)|>(?:[mtsl]’|même|pas|presque|jamais|rien|guère|point|plus)/ [me|m’|te|t’] @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:pas|presque|jamais|rien|guère|point|plus|voici|revoici|voilà|revoilà)/ se @:¬:(?:[123][sp]|Y|P|Ov|X)|>(?:pas|presque|jamais|rien|guère|point|plus|qu[e’])/ @@ -7351,13 +7366,13 @@ [les|des] différents @:G¬:[NAQ] les différents <<- /conf/ -2>> différends # Confusion : « différent » est un adjectif, « différend » est le nom qui signifie désaccord. - >être ?[pas|si]¿ (>différends) - >être pas si (>différends) - <<- /conf/ -1>> =\1.replace("nd", "nt") # Confusion : « différent » est un adjectif, « différend » est le nom qui signifie désaccord. + >être ?[pas|si]¿ >différends + >être pas si >différends + <<- /conf/ --1>> =\-1.replace("nd", "nt") # Confusion : « différent » est un adjectif, « différend » est le nom qui signifie désaccord. TEST: Très {{différends}} de nous, ces gens-là ! TEST: Régler votre {{différent}}. TEST: Notre {{différent}} avec eux perdure. TEST: Un {{différent}} peut toujours se résoudre. @@ -7510,11 +7525,11 @@ # filtre / philtre __conf_filtre_philtre__ >filtre d’ [amour|illusion|enchantement|endormissement] >filtre de [confusion|guérison|fidélité|longévité|mort|vision] - >filtre [>aphrodisiaque|empoisonné|empoisonnés|>léthargique|>magique|>narcotique] + >filtre [>aphrodisiaque|empoisonné+ses|>léthargique|>magique|>narcotique] <<- /conf/ -1>> philtre|philtres # Confusion probable. Un filtre est un intrument de filtrage, un philtre est une boisson (magique) procurant des effets sur le buveur.|https://fr.wiktionary.org/wiki/philtre >philtre à café <<- /conf/ -1>> filtre|filtres @@ -7524,11 +7539,11 @@ TEST: un {{philtre}} à café # flan / flanc __conf_flanc_flan__ - >flanc [pâtissier|pâtissiers] + >flanc [pâtissier+s] >flanc [au|aux] [>caramel|>café|>citron|>chocolat|>four|>lait|>lard|noix|>pomme|>pruneau|>œuf|>raisin] >flanc [de|d’] [or|argent|cuivre] >flanc à la [crème|coco|noix] <<- /conf/ -1>> =\1.replace("c", "").replace("C", "") # Confusion. S’il s’agit d’une pâtisserie (ou d’une pièce de métal), écrivez “flan”.|https://fr.wiktionary.org/wiki/flan @@ -8028,11 +8043,11 @@ # nouvel / nouveaux __conf_nouvel_nouveau_euphonie__ [un|le|ce|du|mon|ton|son|notre|votre|leur|quel] nouveau homme <<- /conf/ -2>> nouvel # Euphonie. Utilisez “nouvel” pour un nom masculin singulier commençant par une voyelle ou un h.|https://fr.wikipedia.org/wiki/Euphonie - [un|le|ce|du|mon|ton|son|notre|votre|leur|quel] nouveau ~^[aeéiîou] + [un|le|ce|du|mon|ton|son|notre|votre|leur|quel] nouveau ~^[aâeéiîou] <<- /conf/ morph(\3, ":[NA].*:[me]:s") -2>> nouvel # Euphonie. Utilisez “nouvel” pour un nom masculin singulier commençant par une voyelle ou un h.|https://fr.wikipedia.org/wiki/Euphonie TEST: ce {{nouveau}} homme TEST: il se sentait de nouveau homme TEST: il se sentait à nouveau homme @@ -8193,20 +8208,20 @@ >voisine de [pallier|pallié|palliés|palliée|palliées] >franchir un [pallier|pallié] [sur|sous] le ?même¿ [pallier|pallié] <<- /conf/ --1>> palier # Confusion.|https://fr.wiktionary.org/wiki/palier - [pallier|pallié|palliée] [de|d’] [communication|décompression|imposition] + [pallier|pallié+e] [de|d’] [communication|décompression|imposition] <<- /conf/ -1>> palier # Confusion.|https://fr.wiktionary.org/wiki/palier [palliés|palliées] [de|d’] [communication|décompression|imposition] <<- /conf/ -1>> paliers # Confusion.|https://fr.wiktionary.org/wiki/palier - [pallier|pallié|palliés|palliée|palliées] par [pallier|pallié|palliés|palliée|palliées] + [pallier|pallié+ses] par [pallier|pallié+ses] <<- /conf/ ->> palier par palier # Confusion.|https://fr.wiktionary.org/wiki/palier - de [pallier|pallié|palliés|palliée|palliées] en [pallier|pallié|palliés|palliée|palliées] + de [pallier|pallié+ses] en [pallier|pallié+ses] <<- /conf/ ->> de palier en palier # Confusion.|https://fr.wiktionary.org/wiki/palier TEST: La voisine de {{pallier}} fait un rafut de tous les diables. TEST: Nous avons franchi un {{pallier}} TEST: elles progressent {{pallier par pallier}} @@ -8279,17 +8294,17 @@ TEST: La {{pause}} de la première pierre. # péché / pêcher __conf_péché_pêcher__ - [pécher|>pêcher|pêché|pêchés|pêchée|pêchées] [mignon|>capitale] - [pécher|>pêcher|pêché|pêchés|pêchée|pêchées] de jeunesse + [pécher|>pêcher|pêché+ses] [mignon|>capitale] + [pécher|>pêcher|pêché+ses] de jeunesse <<- /conf/ -1>> péché|péchés # Confusion. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9 - [>absolution|>rémission] [des|du] ([pécher|>pêcher|pêché|pêchés|pêchée|pêchées]) - [>absolution|>rémission] de [mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs] ([pécher|>pêcher|pêché|pêchés|pêchée|pêchées]) - <<- /conf/ -1>> péché|péchés # Confusion. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9 + [>absolution|>rémission] [des|du] [pécher|>pêcher|pêché+ses] + [>absolution|>rémission] de [mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs] [pécher|>pêcher|pêché+ses] + <<- /conf/ --1>> péché|péchés # Confusion. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9 >pécheresse [du|d’|de|des|la|le|l’|les|à|au|aux] ([>ablette|>oblade|>albacore|>anguille|>baleine|>bar|>barracuda|>blageon|>blennie|>bonite|>bouvière|>brème|>brochet|>bulot|>cabillaud|>cabot|>calamar|>canard|>carassin|>carnassier|>carpe|>chabot|>chevaine|>chevenne|>chevesne|>colin|>congre|>coque|>coquillage|>coquille|>corb|>crabe|>crevette|>crustacé|>dorade|>dauphin|>écrevisse|>éponge|>espadon|>épinoche|>épinochette|>esturgeon|>étrille|>financement|>gardon|>girelle|>gobie|>goujon|>grémille|>grondin|>hareng|>homard|>hotu|>huitre|>huître|>langouste|>langoustine|>leurre|>liche|>loche|>lotte|>marbré|>marsouin|>merlan|>merlu|>mérou|>mollusque|>morue|>mostelle|>mustelle|>mulet|>murène|>omble|>ormeau|>oursin|>pageau|>pagel|>pageot|>palourde|>patelle|>perche|>pétoncle|>moule|>pieuvre|>piranha|>plie|>poisson|>poulpe|>praire|>raie|>rascasse|>requin|>rotengle|>rouget|>sandre|>sardine|>salmonidé|>sar|>saumon|>saupe|>seiche|>silure|>sole|>spirlin|>tanche|>thon|>truite|>turbot|>vairon|>vandoise|>vive|anchois|>barbeau|>bigorneau|black-bass|>couteau|ligne|>maquereau|saint-jacques]) >pécheresse [de|à] [la|l’] ([>ablette|>oblade|>albacore|>anguille|>baleine|>bar|>barracuda|>blageon|>blennie|>bonite|>bouvière|>brème|>brochet|>bulot|>cabillaud|>cabot|>calamar|>canard|>carassin|>carnassier|>carpe|>chabot|>chevaine|>chevenne|>chevesne|>colin|>congre|>coque|>coquillage|>coquille|>corb|>crabe|>crevette|>crustacé|>dorade|>dauphin|>écrevisse|>éponge|>espadon|>épinoche|>épinochette|>esturgeon|>étrille|>financement|>gardon|>girelle|>gobie|>goujon|>grémille|>grondin|>hareng|>homard|>hotu|>huitre|>huître|>langouste|>langoustine|>leurre|>liche|>loche|>lotte|>marbré|>marsouin|>merlan|>merlu|>mérou|>mollusque|>morue|>mostelle|>mustelle|>mulet|>murène|>omble|>ormeau|>oursin|>pageau|>pagel|>pageot|>palourde|>patelle|>perche|>pétoncle|>moule|>pieuvre|>piranha|>plie|>poisson|>poulpe|>praire|>raie|>rascasse|>requin|>rotengle|>rouget|>sandre|>sardine|>salmonidé|>sar|>saumon|>saupe|>seiche|>silure|>sole|>spirlin|>tanche|>thon|>truite|>turbot|>vairon|>vandoise|>vive|anchois|>barbeau|>bigorneau|black-bass|>couteau|ligne|>maquereau|saint-jacques]) <<- /conf/ -1>> =\1.replace("pé", "pê").replace("Pé", "Pê").replace("PÉ", "PÊ") # Confusion probable : pêcheurs (qui pêchent des animaux marins) ≠ pécheurs (qui commettent des péchés). @@ -8846,13 +8861,13 @@ TEST: ne pas être sans {{ignorer}} la cause de ces phénomènes. # sens / cens / cent / sans / sang __conf_sens_sans_cent_cens__ - [|,] [il|ils|on] [sans|sang|sangs|cens|cent] @:V - [|,] [elle|elles] [sang|sangs|cens|cent] @:V - [|,] [elle|elles] sans @:V¬:(?:[NYDA]|Oo)|>(?:y|en) + [|,] [il|ils|on] [sans|>sang|cens|>cent] @:V + [|,] [elle|elles] [>sang|cens|>cent] @:V + [|,] [elle|elles] sans @:V¬:(?:[NYDA]|Oo)|>(?:y|en) <<- /conf/ -3>> s’en # Confusion probable. TEST: elle {{sang}} était voulu TEST: elle sans y penser TEST: elle sans vergogne @@ -8900,17 +8915,17 @@ TEST: {{S’en suivre}}. # soi / soit __conf_soi_disant__ - [soi|soie|soit|sois] [disants|disante|disantes] - [soie|soit|sois] disant + soi [disants|disante|disantes] + [soie|soit|sois] [disant+ses] [soi-disants|soi-disante|soi-disantes] - [sois-disant|sois-disants|sois-disante|sois-disantes] - [soie-disant|soie-disants|soie-disante|soie-disantes] - [soies-disant|soies-disants|soies-disante|soies-disantes] - [soit-disant|soit-disants|soit-disante|soit-disantes] + [sois-disant+ses] + [soie-disant+ses] + [soies-disant+ses] + [soit-disant+ses] <<- /conf/ ->> soi-disant # Confusion : “soi-disant” est un adjectif invariable.|http://fr.wiktionary.org/wiki/soi-disant TEST: Méfiez-vous de cette {{soi-disante}} sorcière. TEST: Méfiez-vous de cette {{soit-disant}} sorcière. TEST: Méfiez-vous de cette {{soi disant}} sorcière. @@ -9017,11 +9032,11 @@ __conf_sot_seau_sceau__ [>sceau|sot|sots] d’ [acier|avoine|eau] [>sceau|sot|sots] [d’|de] [bois|boue|ciment|glace|>glaçon|>gravat|>gravier|>gravillon|plage|lait|maçon|nettoyage|peinture|sable] [>sceau|sot|sots] à [glace|champagne|>glaçon] [>sceau|sot|sots] en [acier|bois|cuivre|fer|inox|métal|plastique|polypropylène|zinc] - [>sceau|sot|sots] [rempli|remplie|percé|percés|>vide|troué|troués|renversé|renversés|plein|pleins] + [>sceau|sot|sots] [rempli+ses|percé+ses|>vide|troué+ses|renversé+ses|plein+s] <<- /conf/ -1>> seau|seaux # Confusion probable. Pour désigner un récipient, écrivez “seau”.|https://fr.wiktionary.org/wiki/seau dans @:D [>sceau|sot|sots] <<- /conf/ -3>> seau|seaux # Confusion probable. Pour désigner un récipient, écrivez “seau”.|https://fr.wiktionary.org/wiki/seau @@ -9095,14 +9110,14 @@ <<- /conf/ -2>> temps # Confusion. Écrivez « en temps de » si vous évoquez une période de temps. de [tant|tan|tans] en [tant|tan|tans] <<- /conf/ ->> de temps en temps # Confusion. Écrivez « de temps en temps ». - un [temps|tan|tans] [soi|sois|soie|soies|soit] peu + un [temps|tan|tans] [soi|sois|>soie|soit] peu <<- /conf/ -2>> tant # Confusion. Écrivez « un tant soit peu ». - un [temps|tan|tans|tant] [soi|sois|soie|soies] peu + un [temps|tan|tans|tant] [soi|sois|>soie] peu <<- /conf/ -3>> soit # Confusion. Écrivez « un tant soit peu ». [après|avec] [temps|tan|tans] [de|d’] <<- /conf/ -2>> tant # Confusion. Écrivez “tant” pour évoquer une quantité de quelque chose.|http://fr.wiktionary.org/wiki/tant @@ -9490,11 +9505,11 @@ état [français|belge|suisse|canadien|palestinien|souverain|américain|russe|anglais|allemand|espagnol|italien|mexicain|japonais|chinois|australien|polonais|membre|africain|européen|asiatique|voyou|démocratique|totalitaire|fédéral|fédéré|capitaliste|communiste|providence|nation] état de droit <<- /maj/ \1 == "état" -1>> État # Majuscule manquante : si vous parlez de l’institution dirigeante d’une nation, écrivez “État”. - états [français|>belge|>suisse|canadien|canadiens|palestinien|palestiniens|souverain|souverains|>membre|américain|américains|africain|africains|européen|européens|>asiatique|>voyou|>démocratique|>totalitaire|>fédérale|>fédérée|>capitaliste|>communiste|>providence|>nation] + états [français|>belge|>suisse|canadien+s|palestinien+s|souverain+s|>membre|américain+s|africain+s|européen+s|>asiatique|>voyou|>démocratique|>totalitaire|>fédérale|>fédérée|>capitaliste|>communiste|>providence|>nation] états de droit <<- /maj/ \1 == "états" -1>> États # Majuscule manquante : si vous parlez de l’institution dirigeante d’une nation, écrivez “État”. [>affaire|>agent|>administration|>chancellerie|>chef|>cheffe|>conseil|>coup|>diplôme|>doctorat|>emprunt|>lycée|>propriété|>secret|>homme|>femme|>police|>religion|>ministre|>ministère|>subvention|>secrétaire|secret|secrets|>secrétariat|>raison|>ressortissante|>université] d’ état @@ -9617,12 +9632,12 @@ TEST: Dans l’Europe de l’{{ouest}}. # Unités de mesure __maj_unités__ - *NUM [Mètre|Watt|Gramme|Seconde|Ampère|Kelvin|Mole|Candela|Candéla|Hertz|Henry|Newton|Pascal|Joule|Coulomb|Volt|Ohm|Farad|Tesla|Weber|Wéber|Radian|Stéradian|Lumen|Lux|Becquerel|Gray|Sievert|Siemens|Katal|Mètres|Watts|Grammes|Secondes|Ampères|Kelvins|Moles|Candelas|Candélas|Hertz|Henrys|Newtons|Pascals|Joules|Coulombs|Volts|Ohms|Farads|Teslas|Webers|Wébers|Radians|Stéradians|Lumens|Becquerels|Grays|Sieverts|Katals] - @:B [Mètre|Watt|Gramme|Seconde|Ampère|Kelvin|Mole|Candela|Candéla|Hertz|Henry|Newton|Pascal|Joule|Coulomb|Volt|Ohm|Farad|Tesla|Weber|Wéber|Radian|Stéradian|Lumen|Lux|Becquerel|Gray|Sievert|Siemens|Katal|Mètres|Watts|Grammes|Secondes|Ampères|Kelvins|Moles|Candelas|Candélas|Hertz|Henrys|Newtons|Pascals|Joules|Coulombs|Volts|Ohms|Farads|Teslas|Webers|Wébers|Radians|Stéradians|Lumens|Becquerels|Grays|Sieverts|Katals] + *NUM [Mètre+s|Watt+s|Gramme+s|Seconde+s|Ampère+s|Kelvin+s|Mole+s|Candela+s|Candéla+s|Hertz|Henry+s|Newton+s|Pascal+s|Joule+s|Coulomb+s|Volt+s|Ohm+s|Farad+s|Tesla+s|Weber+s|Wéber+s|Radian+s|Stéradian+s|Lumen+s|Lux|Becquerel+s|Gray+s|Sievert+s|Siemens|Katal+s] + @:B [Mètre+s|Watt+s|Gramme+s|Seconde+s|Ampère+s|Kelvin+s|Mole+s|Candela+s|Candéla+s|Hertz|Henry+s|Newton+s|Pascal+s|Joule+s|Coulomb+s|Volt+s|Ohm+s|Farad+s|Tesla+s|Weber+s|Wéber+s|Radian+s|Stéradian+s|Lumen+s|Lux|Becquerel+s|Gray+s|Sievert+s|Siemens|Katal+s] *NUM ~(?:Exa|P[ée]ta|Téra|Giga|Méga|Kilo|Hecto|Déc[ai]|Centi|Milli|Micro|Nano|Pico|Femto|Atto|Ze(?:pto|tta)|Yo(?:cto|etta))(?:mètre|watt|gramme|seconde|ampère|kelvin|mole|cand[eé]la|hertz|henry|newton|pascal|joule|coulomb|volt|ohm|farad|tesla|w[eé]ber|radian|stéradian|lumen|lux|becquerel|gray|sievert|siemens|katal)s?$ @:B ~(?:Exa|P[ée]ta|Téra|Giga|Méga|Kilo|Hecto|Déc[ai]|Centi|Milli|Micro|Nano|Pico|Femto|Atto|Ze(?:pto|tta)|Yo(?:cto|etta))(?:mètre|watt|gramme|seconde|ampère|kelvin|mole|cand[eé]la|hertz|henry|newton|pascal|joule|coulomb|volt|ohm|farad|tesla|w[eé]ber|radian|stéradian|lumen|lux|becquerel|gray|sievert|siemens|katal)s?$ <<- /maj/ not \2.isupper() -2:>> =\2.lower() # Pas de majuscule sur les unités de mesure.|https://fr.wikipedia.org/wiki/Unit%C3%A9_de_mesure TEST: J’en veux 3 {{Mètres}}. ->> mètres @@ -11929,12 +11944,12 @@ >coup [de|d’] [avance|balai|barre|bâton|bec|bélier|bite|blues|bol|botte|boule|boutoir|cœur|chaud|coude|couteau|dé|dent|déprime|éclat|épaule|épée|estoc|État|foudre|fil|froid|genou|grâce|>griffe|grisou|gueule|hache|hanche|jarnac|jeune|jus|klaxon|main|maître|maitre|marteau|massue|nostalgie|œil|patte|pied|poignard|poing|poker|pouce|pute|queue|rabot|rein|sabre|sabot|sang|savate|semonce|sifflet|soleil|surin|tête|théâtre|tonnerre|trique|torchon|vent|vieux] >coup [de|d’] baguette ?magique¿ >coup du sort >coup d’ un soir >course contre la montre - [cousu|cousue|cousus|cousues] [main] - [cousu|cousue|cousus|cousues] de fil blanc + [cousu+ses] [main] + [cousu+ses] de fil blanc >crayon à [lèvres|sourcils] >cour d’ assises [>coût|>cout] de revient >couteau à cran d’ arrêt >cuillère à [café|soupe] @@ -12062,13 +12077,13 @@ preuve suffisante du contraire preuves suffisantes du contraire prix de revient quelqu’un d’ autre >rapport de force - [réglé|réglée|réglés|réglées] comme du papier à musique + [réglé+ses] comme du papier à musique >règlement de comptes - [remis|remise|remises] à plat + [remis+es] à plat >requête en nullité >requête en non [conciliation|inscription|lieu] >requête en non révocation de sursis >responsable qualité >retour à la case départ @@ -12084,11 +12099,11 @@ >salle à manger >salle [de|d’] [attente|bain|bains|conférence|séjour] >saine [de|d’] [corps|esprit] >saine [de|d’] [corps|esprit] et [de|d’] [corps|esprit] >sclérose en plaques - [secret|secrets] défense + [secret+s] défense >serpent à sonnette >silo à [>grains|blé] >soldate d’ élite >sonnette d’ alarme >sortie de secours @@ -12865,13 +12880,13 @@ <<- /conf/ -2>> compte # Confusion. Locution “tenir compte”.|https://fr.wiktionary.org/wiki/tenir_compte >tourner ?[guère|jamais|pas]¿ [coure|courre|cour|cours] <<- /conf/ -2>> court # Confusion. Locution “tourner court”.|https://fr.wiktionary.org/wiki/tourner_court - [s’|m’|t’] en >laisser ?[guère|jamais|pas]¿ [compter|compté|comptés|comptée|comptées|>comté] - nous nous en >laisser ?[guère|jamais|pas]¿ [compter|compté|comptés|comptée|comptées|>comté] - vous vous en >laisser ?[guère|jamais|pas]¿ [compter|compté|comptés|comptée|comptées|>comté] + [s’|m’|t’] en >laisser ?[guère|jamais|pas]¿ [compter|compté+ses|>comté] + nous nous en >laisser ?[guère|jamais|pas]¿ [compter|compté+ses|>comté] + vous vous en >laisser ?[guère|jamais|pas]¿ [compter|compté+ses|>comté] ne pas [nous|vous] en laisser [compter|compté|comptés|comptée|comptées|>comté] <<- /conf/ --1>> conter # Confusion. Locution “s’en laisser conter”, c’est-à-dire se laisser raconter des histoires.|https://fr.wiktionary.org/wiki/ne_pas_s%E2%80%99en_laisser_conter >compter ?[guère|jamais|pas]¿ fleurette <<- /conf/ -1>> =\1.replace("omp", "on").replace("OMP", "ON") # Confusion. Locution “conter fleurette”.|https://fr.wiktionary.org/wiki/conter_fleurette @@ -14433,11 +14448,11 @@ TEST: Un cageot des premières cerises. __sgpl_couleurs_composées__ [>beige|>châtain|>cyan|>écarlate|>jaune|>magenta|>marron|>mauve|>orange|>pourpre|>rouge|>vermeille] [>brillante|>claire|>fluo|>mat|>pâle|>pastel|>sombre|>tendre|>terne|>vive] - [>beige|>châtain|>cyan|>écarlate|>jaune|>magenta|>marron|>mauve|>orange|>pourpre|>rouge|>vermeille] [foncé|foncés|foncée|foncées|irisé|irisés|irisée|irisées] + [>beige|>châtain|>cyan|>écarlate|>jaune|>magenta|>marron|>mauve|>orange|>pourpre|>rouge|>vermeille] [foncé+ses|irisé+ses] <<- /sgpl/ morph(<1, ":N", ":D") and (not morph(\1, ":[me]:[si]") or morph(\2, ":[pf]")) ->> =suggSing(\1) + " " + suggSing(\2) # Les couleurs composées de plusieurs termes sont invariables.|https://fr.wikipedia.org/wiki/Accord_des_adjectifs_et_des_noms_de_couleur_en_fran%C3%A7ais >jaune [>paille|>sable] @@ -14446,11 +14461,11 @@ <<- /sgpl/ morph(<1, ":N", ":D") and (not morph(\1, ":[me]:[si]") or morph(\2, ":p")) ->> =suggSing(\1) + " " + suggSing(\2) # Les couleurs composées de plusieurs termes sont invariables.|https://fr.wikipedia.org/wiki/Accord_des_adjectifs_et_des_noms_de_couleur_en_fran%C3%A7ais [>blanche|>bleue|>brune|>grise|>noire|>verte|>violette] [>brillante|>claire|>fluo|>mat|>pâle|>pastel|>sombre|>tendre|>terne|>vive] - [>blanche|>bleue|>brune|>grise|>noire|>verte|>violette] [foncé|foncés|foncée|foncées|irisé|irisés|irisée|irisées] + [>blanche|>bleue|>brune|>grise|>noire|>verte|>violette] [foncé+ses|irisé+ses] <<- /sgpl/ morph(<1, ":N", ":D") and (not morph(\1, ":[me]:[si]") or morph(\2, ":[pf]")) ->> =suggMasSing(\1) + " " + suggSing(\2) # Les couleurs composées de plusieurs termes sont invariables.|https://fr.wikipedia.org/wiki/Accord_des_adjectifs_et_des_noms_de_couleur_en_fran%C3%A7ais >bleue [>ciel|>indigo|>marine|>roi|>saphir|>turquoise|>verte] @@ -14536,11 +14551,11 @@ quatre-vingts-quatre quatre-vingts-cinq quatre-vingts-six quatre-vingts-sept quatre-vingts-huit - [quatre-vingts-neuf|quatre-vingts-neufs] + [quatre-vingts-neuf+s] quatre-vingts-dix quatre-vingts-onze quatre-vingts-douze quatre-vingts-treize quatre-vingts-quatorze @@ -15323,15 +15338,15 @@ TEST: La fête {{bât}} son plein. # beauté / botté __conf_beauté__ - [>finir|>terminer|>achever|>conclure|>croître|>croitre|>grandir|>refaire] en [botter|botté|bootés|bottée|bottées] - [>faire|>refaire] une [botter|botté|bootés|bottée|bottées] - [>canon|concours|>grain|>institut|>pigeon|>produit|>salon] de [botter|botté|bootés|bottée|bottées] - de toute [botter|botté|bootés|bottée|bottées] - quark [botter|botté|bootés|bottée|bottées] + [>finir|>terminer|>achever|>conclure|>croître|>croitre|>grandir|>refaire] en [botter|botté+ses] + [>faire|>refaire] une [botter|botté+ses] + [>canon|concours|>grain|>institut|>pigeon|>produit|>salon] de [botter|botté+ses] + de toute [botter|botté+ses] + quark [botter|botté+ses] <<- /conf/ --1>> beauté # Confusion probable. Écrivez “beauté”.|https://fr.wiktionary.org/wiki/beaut%C3%A9 TEST: cette fois, on va finir en {{bottée}}. TEST: le quark {{botter}} @@ -15376,11 +15391,11 @@ TEST: remplir son formulaire en bonne et due forme, c’est le minimum pour espérer un retour positif. ## s’en / c’en __conf_c_en_être__ - s’ en [es|est|sera|seras|étais|était] [fini|finie|finis|finit|terminé|terminés|terminée|terminées] + s’ en [es|est|sera|seras|étais|était] [fini+ses|finit|terminé+ses] <<- /conf/ morph(<1, ":C|") or value(<1, "|,|") -1:2>> c’en # Confusion probable. « C’en est… » équivaut à « ça, c’est… ».|http://fr.wiktionary.org/wiki/c%E2%80%99en_est_fait_de s’ en [es|est|sera|seras|étais|était] [assez|trop] [|,|de|d’] <<- /conf/ -1:2>> c’en # Confusion probable. « C’en est… » équivaut à « ça, c’est… ».|http://fr.wiktionary.org/wiki/c%E2%80%99en_est_fait_de @@ -15787,15 +15802,15 @@ TEST: L’échec est {{du}} en partie à un manque de préparation. # éminent / imminent __conf_éminent_imminent__ - >imminente [>actrice|>confrère|>collègue|>dirigeante|>dissidente|>entrepreneuse|>experte|>défenseuse|>intellectuelle|>mathématicienne|>musicienne|>pédiatre|>personalité|>personnage|>professeur|>physicienne|>rabbin|>représantante|>savante|>chirurgienne|>neurochirurgienne|>scientifique|>service|>spécialiste|~logue$|~iste] + >imminente [>actrice|>confrère|>collègue|>dirigeante|>dissidente|>entrepreneuse|>experte|>défenseuse|>intellectuelle|>mathématicienne|>musicienne|>pédiatre|>personalité|>personnage|>professeur|>physicienne|>rabbin|>représantante|>savante|>chirurgienne|>neurochirurgienne|>scientifique|>service|>spécialiste|~logues?$|~istes?$] <<- /conf/ -1>> =\1.replace("imm", "ém").replace("Imm", "Ém") # Confusion probable. Si “\1” se rapporte à “\2”, alors vous voulez probablement dire “éminent” ; “imminent” signifie “qui va survenir prochainement”.|https://fr.wiktionary.org/wiki/%C3%A9minent - [>actrice|>confrère|>collègue|>dirigeante|>dissidente|>entrepreneuse|>experte|>défenseuse|>intellectuelle|>mathématicienne|>musicienne|>pédiatre|>personalité|>personnage|>professeur|>physicienne|>rabbin|>représantante|>savante|>chirurgienne|>neurochirurgienne|>scientifique|>service|>spécialiste|~logue$|~iste] >imminente + [>actrice|>confrère|>collègue|>dirigeante|>dissidente|>entrepreneuse|>experte|>défenseuse|>intellectuelle|>mathématicienne|>musicienne|>pédiatre|>personalité|>personnage|>professeur|>physicienne|>rabbin|>représantante|>savante|>chirurgienne|>neurochirurgienne|>scientifique|>service|>spécialiste|~logues?$|~istes?$] >imminente <<- /conf/ -2>> =\2.replace("imm", "ém").replace("Imm", "Ém") # Confusion probable. Si “\2” se rapporte à “\1”, alors vous voulez probablement dire “éminent” ; “imminent” signifie “qui va survenir prochainement”.|https://fr.wiktionary.org/wiki/%C3%A9minent [>accouchement|>accord|>arrivée|>assaut|>attaque|>atterrissage|>cataclysme|>catastrophe|>changement|>conflit|>crash|>danger|>décollage|>départ|>désarmement|>déclenchement|>effondrement|>éruption|>fin|>guerre|>lancement|>orage|>ouragan|>péril|>remaniement|>réponse|>résultat|>retour|>séisme|>tempête|>tsunami|>verdict] ?>être¿ >éminente <<- /conf/ --1>> =\-1.replace("émi", "immi").replace("Émi", "Immi") @@ -16284,12 +16299,12 @@ TEST: la répression extrêmement violente des diverses manifestations qui ont eu lieu depuis la fin du mois de novembre # mare / marre __conf_marre_mare__ - [la|une|cette|quelle|cette|ma|ta|sa] ?petite¿ (marre) - <<- /conf/ -1>> mare # Confusion. Pour parler d’une petite étendue d’eau, écrivez “mare”. En “avoir marre de” = “en avoir assez de”. + [la|une|cette|quelle|cette|ma|ta|sa] ?petite¿ marre + <<- /conf/ --1>> mare # Confusion. Pour parler d’une petite étendue d’eau, écrivez “mare”. En “avoir marre de” = “en avoir assez de”. en >avoir mare <<- /conf/ -3>> marre # Confusion. Une mare est une petite étendue d’eau. TEST: cette {{marre}} est presque sèche. @@ -16352,21 +16367,21 @@ TEST: après avoir {{mi}} ses souliers tenir # mûr / mur __conf_mûr_mur__ - [>amandine|>brioche|>charlotte|>cheesecake|>chausson|clafoutis|>confiture|>crème|>crêpe|>croustade|>croustillante|>crumble|>cueillette|>dessert|>far|>flan|jus|>gelée|>glace|>gourmandise|>lapin|>liqueur|>macaron|>milkshake|>milk-shake|>millefeuille|>mille-feuille|>mousse|>muffin|>pancake|>pavlova|>recette|>récolte|>sauce|>soufflé|>smoothie|>sirop|>tarte|>tartelette|>tiramisu|>yaourt|>yoghourt|coulis|>gâteau|>kilo] [de|aux] [mur|mure|murs|mures] + [>amandine|>brioche|>charlotte|>cheesecake|>chausson|clafoutis|>confiture|>crème|>crêpe|>croustade|>croustillante|>crumble|>cueillette|>dessert|>far|>flan|jus|>gelée|>glace|>gourmandise|>lapin|>liqueur|>macaron|>milkshake|>milk-shake|>millefeuille|>mille-feuille|>mousse|>muffin|>pancake|>pavlova|>recette|>récolte|>sauce|>soufflé|>smoothie|>sirop|>tarte|>tartelette|>tiramisu|>yaourt|>yoghourt|coulis|>gâteau|>kilo] [de|aux] [mur+ses] <<- /conf/ --1>> mûres # Confusion. Le fruit s’écrit “mûre”.|https://fr.wiktionary.org/wiki/m%C3%BBr - [trop|assez|abcès|>âge|>avocate|>banane|>blé|>brugnon|corps|>enfant|>esprit|>femme|>figue|>fraise|>fruit|>homme|>melon|>personne|>poire|>pomme|>prune|>papaye|>pêche|>raisin|>tomate] [mur|mure|murs|mures] - [>être|>sembler|>paraître|>paraitre|>rester] [mur|mure|murs|mures] + [trop|assez|abcès|>âge|>avocate|>banane|>blé|>brugnon|corps|>enfant|>esprit|>femme|>figue|>fraise|>fruit|>homme|>melon|>personne|>poire|>pomme|>prune|>papaye|>pêche|>raisin|>tomate] [mur+ses] + [>être|>sembler|>paraître|>paraitre|>rester] [mur+ses] <<- /conf/ --1>> =\-1.replace("u", "û").replace("U", "Û") # Confusion. Pour décrire ce qui a atteint la maturité, écrivez “mûr”.|https://fr.wiktionary.org/wiki/m%C3%BBr - des vertes et des pas [mur|mure|murs|mures] + des vertes et des pas [mur+ses] <<- /conf/ --1>> mûres # Confusion. Pour décrire ce qui a atteint la maturité, écrivez “mûr”.|https://fr.wiktionary.org/wiki/m%C3%BBr - [mur|mure|murs|mures] [>délibération|>réflexion] + [mur+ses] [>délibération|>réflexion] <<- /conf/ -1>> =\1.replace("u", "û").replace("U", "Û") # Confusion. Pour décrire ce qui a atteint la maturité, écrivez “mûr”.|https://fr.wiktionary.org/wiki/m%C3%BBr TEST: cet avocat trop {{mur}} pour être mangé. TEST: Un pancake aux {{murs}}. TEST: Ça semble bien assez {{mur}}. @@ -16548,16 +16563,16 @@ __conf_péché_pêcher__ >pêcher par excès [de|d’] >pêcher par [insuffisance|omission|orgueil] <<- /conf/ -1>> pécher # Confusion : pêcher (capturer des poissons) ≠ pécher (faire un écart de conduite).|https://fr.wiktionary.org/wiki/p%C3%A9cher - [>commettre|>pardonner|>confesser|>absoudre|>avouer|>reconnaître|>reconnaitre|>expier|>effacer] @:D ([pécher|>pêcher|pêché|pêchés|pêchée|pêchées]) - >repentir de [mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs] ([pécher|>pêcher|pêché|pêchés|pêchée|pêchées]) - <<- /conf/ \1.endswith("s") -1>> péchés # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C1%A9ch%C1%A9 - <<- /conf/ __else__ -1>> péché # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9 + [>commettre|>pardonner|>confesser|>absoudre|>avouer|>reconnaître|>reconnaitre|>expier|>effacer] @:D [pécher|>pêcher|pêché+ses] + >repentir de [mon|ton|son|ma|ta|sa|mes|tes|ses|notre|votre|nos|vos|leur|leurs] [pécher|pêcher+s|pêché+ses] + <<- /conf/ \1.endswith("s") --1>> péchés # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C1%A9ch%C1%A9 + <<- /conf/ __else__ --1>> péché # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9 - [pécher|pêcher|pêchers|pêché|pêchée|pêchés|pêchées] [>capitale|mignon|mignons|>mortelle|>originelle|>vénielle] + [pécher|pêcher+s|pêché+ses] [>capitale|mignon|mignons|>mortelle|>originelle|>vénielle] <<- /conf/ \1.endswith("s") -1>> péchés # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C1%A9ch%C1%A9 <<- /conf/ __else__ -1>> péché # Confusion : un pêcher est un arbre. Pour désigner un écart de conduite, écrivez “péché”.|https://fr.wiktionary.org/wiki/p%C3%A9ch%C3%A9 >pécher [du|d’|de|des|la|le|l’|les|à|au|aux] [>ablette|>oblade|>albacore|>anguille|>baleine|>bar|>barracuda|>blageon|>blennie|>bonite|>bouvière|>brème|>brochet|>bulot|>cabillaud|>cabot|>calamar|>canard|>carassin|>carnassier|>carpe|>chabot|>chevaine|>chevenne|>chevesne|>colin|>congre|>coque|>coquillage|>coquille|>corb|>crabe|>crevette|>crustacé|>dorade|>dauphin|>écrevisse|>éponge|>espadon|>épinoche|>épinochette|>esturgeon|>étrille|>financement|>gardon|>girelle|>gobie|>goujon|>grémille|>grondin|>hareng|>homard|>hotu|>huitre|>huître|>langouste|>langoustine|>leurre|>liche|>loche|>lotte|>marbré|>marsouin|>merlan|>merlu|>mérou|>mollusque|>morue|>mostelle||>moule|>mustelle|>mulet|>murène|>omble|>ormeau|>oursin|>pageau|>pagel|>pageot|>palourde|>patelle|>perche|>pétoncle|>moule|>pieuvre|>piranha|>plie|>poisson|>poulpe|>praire|>raie|>rascasse|>requin|>rotengle|>rouget|>sandre|>sardine|>salmonidé|>sar|>saumon|>saupe|>seiche|>silure|>sole|>spirlin|>tanche|>thon|>truite|>turbot|>vairon|>vandoise|>vive|anchois|>barbeau|>bigorneau|black-bass|>couteau|ligne|>maquereau|saint-jacques] >pécher [de|à] [la|l’] [>ablette|>oblade|>albacore|>anguille|>baleine|>bar|>barracuda|>blageon|>blennie|>bonite|>bouvière|>brème|>brochet|>bulot|>cabillaud|>cabot|>calamar|>canard|>carassin|>carnassier|>carpe|>chabot|>chevaine|>chevenne|>chevesne|>colin|>congre|>coque|>coquillage|>coquille|>corb|>crabe|>crevette|>crustacé|>dorade|>dauphin|>écrevisse|>éponge|>espadon|>épinoche|>épinochette|>esturgeon|>étrille|>financement|>gardon|>girelle|>gobie|>goujon|>grémille|>grondin|>hareng|>homard|>hotu|>huitre|>huître|>langouste|>langoustine|>leurre|>liche|>loche|>lotte|>marbré|>marsouin|>merlan|>merlu|>mérou|>mollusque|>morue|>mostelle|>mustelle|>mulet|>murène|>omble|>ormeau|>oursin|>pageau|>pagel|>pageot|>palourde|>patelle|>perche|>pétoncle|>moule|>pieuvre|>piranha|>plie|>poisson|>poulpe|>praire|>raie|>rascasse|>requin|>rotengle|>rouget|>sandre|>sardine|>salmonidé|>sar|>saumon|>saupe|>seiche|>silure|>sole|>spirlin|>tanche|>thon|>truite|>turbot|>vairon|>vandoise|>vive|anchois|>barbeau|>bigorneau|black-bass|>couteau|ligne|>maquereau|saint-jacques] @@ -17966,17 +17981,17 @@ # (plus haut) processeur de texte : risquer d’être -> risquer être __ppas_je_tu_verbe_état__ [je|j’|tu] ?[ne|n’]¿ ?[en|y]¿ [>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre] @:[NA].*:p¬:[GWYsi] [je|j’|tu] ?[ne|n’]¿ ?[en|y]¿ >avoir [été|semblé|paru] @:[NA].*:p¬:[GWYsi] - [je|j’|tu] ?[ne|n’]¿ ?[en|y]¿ [>être|>sembler] [devenu|devenue|redevenu|redevenue|resté|restée|demeuré|demeurée] @:[NA].*:p¬:[GWYsi] + [je|j’|tu] ?[ne|n’]¿ ?[en|y]¿ [>être|>sembler] [devenu+e|redevenu+e|resté+e|demeuré+e] @:[NA].*:p¬:[GWYsi] [je|j’|tu] ?[ne|n’]¿ ?[en|y]¿ || [>aller|>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir] || [être|devenir|redevenir|rester|paraître|paraitre|sembler] @:[NA].*:p¬:[GWYsi] [je|j’|tu] ?[ne|n’]¿ ?[en|y]¿ || [>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir] - || être [devenu|devenue|redevenu|redevenue|resté|restée|demeuré|demeurée] @:[NA].*:p¬:[GWYsi] + || être [devenu+e|redevenu+e|resté+e|demeuré+e] @:[NA].*:p¬:[GWYsi] [je|j’|tu] ?[ne|n’]¿ ?[en|y]¿ || [>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir] || avoir [été|semblé|paru] @:[NA].*:p¬:[GWYsi] <<- /ppas/ not (tag(<1, "ce_que") and morph(\-1, ":3s")) --1>> =suggSing(\-1) # Accord avec le sujet “\1” : “\-1” devrait être au singulier. @@ -18431,32 +18446,32 @@ !!!! Participes passés: accord en nombre avec la conjugaison de « être » (et équivalent) !! __ppas_être_accord_sing__ (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) @:[NA].*:p¬:[GMWYsi] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (>avoir) [été|semblé|paru] @:[NA].*:p¬:[GMWYsi] - (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler]) [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] @:[NA].*:p¬:[GMWYsi] + (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler]) [devenu+e|redevenu+e|resté+e|demeuré+e] @:[NA].*:p¬:[GMWYsi] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ || ([>aller|>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] @:[NA].*:p¬:[GMWYsi] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) - || être [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] @:[NA].*:p¬:[GMWYsi] + || être [devenu+e|redevenu+e|resté+e|demeuré+e] @:[NA].*:p¬:[GMWYsi] (*WORD) ?qui¿ ?[ne|n’]¿ ?[en|y]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || avoir [été|semblé|paru] @:[NA].*:p¬:[GMWYsi] <<- /ppas/ not tag_before(\1, "que") and not morph(\1, ":G") and morph(\2, ":[123]s", ":(?:C|N.*:p)") --1>> =suggSing(\-1) # Accord avec la forme verbale précédente (être ou équivalent) : “\-1” devrait être au singulier. [|,] ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) @:[NA].*:p¬:[GMWYsi] [|,] ?qui¿ ?[ne|n’]¿ ?[en|y]¿ (>avoir) [été|semblé|paru] @:[NA].*:p¬:[GMWYsi] - [|,] ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler]) [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] @:[NA].*:p¬:[GMWYsi] + [|,] ?qui¿ ?[ne|n’]¿ ?[en|y]¿ ([>être|>sembler]) [devenu+e|redevenu+e|resté+e|demeuré+e] @:[NA].*:p¬:[GMWYsi] [|,] ?qui¿ ?[ne|n’]¿ ?[en|y]¿ || ([>aller|>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] @:[NA].*:p¬:[GMWYsi] [|,] ?qui¿ ?[ne|n’]¿ ?[en|y]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) - || être [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] @:[NA].*:p¬:[GMWYsi] + || être [devenu+e|redevenu+e|resté+e|demeuré+e] @:[NA].*:p¬:[GMWYsi] [|,] ?qui¿ ?[ne|n’]¿ ?[en|y]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || avoir [été|semblé|paru] @:[NA].*:p¬:[GMWYsi] <<- /ppas/ morph(\1, ":[123]s", ":(?:C|N.*:p)") --1>> =suggSing(\-1) # Accord avec la forme verbale précédente (être ou équivalent) : “\-1” devrait être au singulier. @@ -18516,47 +18531,47 @@ !!!! Participes passés: accord en genre avec le substantif précédent !! __ppas_sujet_être_accord_genre__ [|,|@:Cs] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) *WORD [|,|@:Cs] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ (>avoir) [été|semblé|paru] *WORD - [|,|@:Cs] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] *WORD + [|,|@:Cs] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [|,|@:Cs] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>aller|>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD [|,|@:Cs] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) - || être [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] *WORD + || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [|,|@:Cs] [un|le|ce|cet] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD <<- /ppas/ morph(\1, ":[NA].*:[me]", ":[GWf]") and morph(\-1, ":A.*:f", ":[GWme]") and morph(\2, ":[123]s") --1>> =switchGender(\-1) # Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. [|,|@:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) *WORD [|,|@:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ (>avoir) [été|semblé|paru] *WORD - [|,|@:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] *WORD + [|,|@:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [|,|@:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>aller|>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD [|,|@:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) - || être [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] *WORD + || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [|,|@:Cs] [une|la|ma|ta|sa|cette] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD <<- /ppas/ morph(\1, ":[NA].*:[fe]", ":[GWm]") and morph(\-1, ":A.*:m", ":[GWfe]") and morph(\2, ":[123]s") --1>> =switchGender(\-1) # Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. [|,|@:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre]) *WORD [|,|@:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ (>avoir) [été|semblé|paru] *WORD - [|,|@:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] *WORD + [|,|@:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [|,|@:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>aller|>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD [|,|@:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) - || être [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] *WORD + || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [|,|@:Cs] [l’|mon|ton|son|notre|votre|leur] (*WORD) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD <<- /ppas/ ((morph(\1, ":[NA].*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWfe]")) or (morph(\1, ":[NA].*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))) and morph(\2, ":[123]s") --1>> =switchGender(\-1) # Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. @@ -18579,11 +18594,11 @@ *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] *WORD ?[ne|n’]¿ || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] *WORD ?[ne|n’]¿ || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir]) - || être [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] *WORD + || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD *WORD [que|qu’] [un|le|ce|cet|une|la|ma|ta|sa|cette|l’|mon|ton|son|notre|votre|leur|les|ces|mes|tes|ses|nos|vos|leurs|quelques|plusieurs] *WORD ?[ne|n’]¿ || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD <<- /ppas/ checkAgreement(\1, \-1) !-1>> @@ -18602,17 +18617,17 @@ __ppas_nom_propre_être_accord_genre__ [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ [>être|>sembler|>devenir|>rester|>demeurer|>redevenir|>paraître|>paraitre] *WORD [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ (>avoir) [été|semblé|paru] *WORD - [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] *WORD + [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ ([>être|>sembler]) [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ || ([>aller|>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) - || être [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] *WORD + || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD [|,|@:Cs] (@:M) ?qui¿ ?[ne|n’]¿ || ([>adorer|>affirmer|>aimer|>croire|>déclarer|>désirer|>détester|>devoir|>dire|>estimer|>imaginer|>paraître|>paraitre|>penser|>pouvoir|>préférer|>risquer|>savoir|>sembler|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD <<- /ppas/ ((morph(\1, ":M.*:f", ":[GWme]") and morph(\-1, ":A.*:m", ":[GWfe]")) or (morph(\1, ":M.*:m", ":[GWfe]") and morph(\-1, ":A.*:f", ":[GWme]"))) and morph(\2, ":[123]s") --1>> =switchGender(\-1) # Accord erroné : “\1” et “\-1” ne sont pas accordés en genre. @@ -18620,11 +18635,11 @@ (*WORD) [que|qu’] (@:M) ?[ne|n’]¿ || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir]) || [être|devenir|redevenir|rester|paraître|paraitre|sembler] *WORD (*WORD) [que|qu’] (@:M) ?[ne|n’]¿ || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir]) - || être [devenu|redevenu|resté|demeuré|devenue|redevenue|restée|demeurée] *WORD + || être [devenu+e|redevenu+e|resté+e|demeuré+e] *WORD (*WORD) [que|qu’] (@:M) ?[ne|n’]¿ || ([>affirmer|>croire|>déclarer|>désirer|>détester|>dire|>estimer|>imaginer|>penser|>préférer|>savoir|>souhaiter|>vouloir]) || avoir [été|semblé|paru] *WORD <<- /ppas/ checkAgreement(\1, \-1) !-1>>