Overview
| Comment: | [core][build][fr] function tag() |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | fr | core | build | rg |
| Files: | files | file ages | folders |
| SHA3-256: |
9d18025dfd8812c8ca6821afcb64ff46 |
| User & Date: | olr on 2018-08-31 17:52:55 |
| Other Links: | branch diff | manifest | tags |
Context
|
2018-08-31
| ||
| 20:11 | [core][fr] tests: count unexpected errors check-in: 2d02b58aa3 user: olr tags: fr, core, rg | |
| 17:52 | [core][build][fr] function tag() check-in: 9d18025dfd user: olr tags: fr, core, build, rg | |
| 14:44 | [fr] ajustements check-in: 544fd5f5ad user: olr tags: fr, rg | |
Changes
Modified compile_rules_graph.py from [78ea46d853] to [f888a1d429].
| ︙ | ︙ | |||
43 44 45 46 47 48 49 |
def prepareFunction (sCode):
"convert simple rule syntax to a string of Python code"
if sCode[0:1] == "=":
sCode = sCode[1:]
sCode = sCode.replace("__also__", "bCondMemo")
sCode = sCode.replace("__else__", "not bCondMemo")
sCode = sCode.replace("sContext", "_sAppContext")
| | | | | | | | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
def prepareFunction (sCode):
"convert simple rule syntax to a string of Python code"
if sCode[0:1] == "=":
sCode = sCode[1:]
sCode = sCode.replace("__also__", "bCondMemo")
sCode = sCode.replace("__else__", "not bCondMemo")
sCode = sCode.replace("sContext", "_sAppContext")
sCode = re.sub(r"(morph|morphVC|analyse|value|tag|displayInfo)[(]\\(\d+)", 'g_\\1(lToken[nTokenOffset+\\2]', sCode)
sCode = re.sub(r"(morph|morphVC|analyse|value|tag|displayInfo)[(]\\-(\d+)", 'g_\\1(lToken[nLastToken-\\2+1]', sCode)
sCode = re.sub(r"(select|exclude|define|define_from)[(][\\](\d+)", 'g_\\1(lToken[nTokenOffset+\\2]', sCode)
sCode = re.sub(r"(select|exclude|define|define_from)[(][\\]-(\d+)", 'g_\\1(lToken[nLastToken-\\2+1]', sCode)
sCode = re.sub(r"(tag_before|tag_after)[(][\\](\d+)", 'g_\\1(lToken[nTokenOffset+\\2], dTags', sCode)
sCode = re.sub(r"(tag_before|tag_after)[(][\\]-(\d+)", 'g_\\1(lToken[nLastToken-\\2+1], dTags', sCode)
sCode = re.sub(r"space_after[(][\\](\d+)", 'g_space_between_tokens(lToken[nTokenOffset+\\1], lToken[nTokenOffset+\\1+1]', sCode)
sCode = re.sub(r"space_after[(][\\]-(\d+)", 'g_space_between_tokens(lToken[nLastToken-\\1+1], lToken[nLastToken-\\1+2]', sCode)
sCode = re.sub(r"analyse_with_next[(][\\](\d+)", 'g_merged_analyse(lToken[nTokenOffset+\\1], lToken[nTokenOffset+\\1+1]', sCode)
sCode = re.sub(r"analyse_with_next[(][\\]-(\d+)", 'g_merged_analyse(lToken[nLastToken-\\1+1], lToken[nLastToken-\\1+2]', sCode)
sCode = re.sub(r"(morph|analyse|tag|value)\(>1", 'g_\\1(lToken[nLastToken+1]', sCode) # next token
sCode = re.sub(r"(morph|analyse|tag|value)\(<1", 'g_\\1(lToken[nTokenOffset]', sCode) # previous token
sCode = re.sub(r"(morph|analyse|tag|value)\(>(\d+)", 'g_\\1(g_token(lToken, nLastToken+\\2)', sCode) # next token
sCode = re.sub(r"(morph|analyse|tag|value)\(<(\d+)", 'g_\\1(g_token(lToken, nTokenOffset+1-\\2)', sCode) # previous token
sCode = re.sub(r"\bspell *[(]", '_oSpellChecker.isValid(', sCode)
sCode = re.sub(r"\bbefore\(\s*", 'look(sSentence[:lToken[1+nTokenOffset]["nStart"]], ', sCode) # before(sCode)
sCode = re.sub(r"\bafter\(\s*", 'look(sSentence[lToken[nLastToken]["nEnd"]:], ', sCode) # after(sCode)
sCode = re.sub(r"\bbefore0\(\s*", 'look(sSentence0[:lToken[1+nTokenOffset]["nStart"]], ', sCode) # before0(sCode)
sCode = re.sub(r"\bafter0\(\s*", 'look(sSentence[lToken[nLastToken]["nEnd"]:], ', sCode) # after0(sCode)
sCode = re.sub(r"analyseWord[(]", 'analyse(', sCode)
sCode = re.sub(r"[\\](\d+)", 'lToken[nTokenOffset+\\1]["sValue"]', sCode)
|
| ︙ | ︙ |
Modified gc_core/py/lang_core/gc_engine.py from [ca7de6ac32] to [b2d4e1c72e].
| ︙ | ︙ | |||
1117 1118 1119 1120 1121 1122 1123 |
return False
if dToken["i"] < dTags[sTag][1]:
return True
return False
def g_tag (dToken, sTag):
| | | 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 |
return False
if dToken["i"] < dTags[sTag][1]:
return True
return False
def g_tag (dToken, sTag):
return "tags" in dToken and sTag in dToken["tags"]
def g_space_between_tokens (dToken1, dToken2, nMin, nMax=None):
nSpace = dToken2["nStart"] - dToken1["nEnd"]
if nSpace < nMin:
return False
if nMax is not None and nSpace > nMax:
|
| ︙ | ︙ |
Modified gc_lang/fr/rules.grx from [f8603c5689] to [6ac6005fbf].
| ︙ | ︙ | |||
15587 15588 15589 15590 15591 15592 15593 15594 15595 15596 15597 15598 15599 15600 |
__tag_verbe_infinitif_sujet__
[<start>|,] [ne|n’] ?[en|y]¿ ?presque¿ [pas|rien|guère|point|jamais|plus]
[<start>|,] [ne|n’] @:Y
[<start>|,] @:Y
<<- /2>> suj_vinfi
@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: verbes2 _
@@@@
| > > > > > > | 15587 15588 15589 15590 15591 15592 15593 15594 15595 15596 15597 15598 15599 15600 15601 15602 15603 15604 15605 15606 |
__tag_verbe_infinitif_sujet__
[<start>|,] [ne|n’] ?[en|y]¿ ?presque¿ [pas|rien|guère|point|jamais|plus]
[<start>|,] [ne|n’] @:Y
[<start>|,] @:Y
<<- /2>> suj_vinfi
__se_douter__
[me|te|se] >douter [que|qu’]
nous nous >douter [que|qu’]
vous vous >douter [que|qu’]
<<- /-1>> no_subj
@@@@
@@@@
@@@@
@@@@
@@@@GRAPH: verbes2 _
@@@@
|
| ︙ | ︙ | |||
16506 16507 16508 16509 16510 16511 16512 |
# verbe que + subjonctif
__vmode_qqch_que_subjonctif1__
[>permettre|>falloir|>vouloir|>ordonner|>exiger|>désirer|>préférer|>suffire] [que|qu’] @:(?:Os|M) @:I¬:[GYS]
[afin|avant|pour|quoi|sans] [que|qu’] @:(?:Os|M) @:I¬:[GYS]
<<- /vmode/ -4>> =suggVerbMode(\4, ":S", \3) # Après “\1 que”, ce verbe devrait être au subjonctif.
>douter [que|qu’] @:(?:Os|M) @:I¬:(?:[GYSK]|If)
| > | | 16512 16513 16514 16515 16516 16517 16518 16519 16520 16521 16522 16523 16524 16525 16526 16527 |
# verbe que + subjonctif
__vmode_qqch_que_subjonctif1__
[>permettre|>falloir|>vouloir|>ordonner|>exiger|>désirer|>préférer|>suffire] [que|qu’] @:(?:Os|M) @:I¬:[GYS]
[afin|avant|pour|quoi|sans] [que|qu’] @:(?:Os|M) @:I¬:[GYS]
<<- /vmode/ -4>> =suggVerbMode(\4, ":S", \3) # Après “\1 que”, ce verbe devrait être au subjonctif.
>douter [que|qu’] @:(?:Os|M) @:I¬:(?:[GYSK]|If)
<<- /vmode/ not tag(\2, "no_subj") and morph(\1, ":V", ":N")
-4>> =suggVerbMode(\4, ":S", \3) # Après “\1 que”, ce verbe devrait être au subjonctif.
il est possible [que|qu’] @:(?:Os|M) @:I¬:[GYS]
<<- /vmode/ -6>> =suggVerbMode(\6, ":S", \5) # Après “\1 \2 \3”, ce verbe devrait être au subjonctif.
TEST: Il suffit qu’il {{court}} plus
TEST: Je veux qu’il {{finit}} son repas.
TEST: quoi qu’il en {{conclut}}
|
| ︙ | ︙ |