Overview
Comment: | [build][core] multiple tokens and groups |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core | build | rg |
Files: | files | file ages | folders |
SHA3-256: |
e83552ea6d150fde0212534c1af05c6b |
User & Date: | olr on 2018-05-25 10:07:17 |
Other Links: | branch diff | manifest | tags |
Context
2018-05-25
| ||
12:14 | [build][core] tests check-in: ac09d7cc19 user: olr tags: core, build, rg | |
10:07 | [build][core] multiple tokens and groups check-in: e83552ea6d user: olr tags: core, build, rg | |
2018-05-24
| ||
11:14 | [build][core] rules graph: definitions and multiple tokens check-in: da8c5de7df user: olr tags: core, build, rg | |
Changes
Modified compile_rules_graph.py from [b56c5bc314] to [c9ddced2f8].
︙ | ︙ | |||
39 40 41 42 43 44 45 | s = re.sub(r"\bspell *[(]", '_oSpellChecker.isValid(', s) s = re.sub(r"[\\](\d+)", 'lToken[\\1]', s) return s def changeReferenceToken (s, dPos): for i in range(len(dPos), 0, -1): | | | > | > > > > | 39 40 41 42 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 71 72 73 74 75 76 77 | s = re.sub(r"\bspell *[(]", '_oSpellChecker.isValid(', s) s = re.sub(r"[\\](\d+)", 'lToken[\\1]', s) return s def changeReferenceToken (s, dPos): for i in range(len(dPos), 0, -1): s = s.replace("\\"+str(i), "\\"+str(dPos[i])) return s def genTokenRules (sTokenLine): lToken = sTokenLine.split() lTokenRules = None for i, sToken in enumerate(lToken): if sToken.startswith("{") and sToken.endswith("}") and sToken in dDEF: lToken[i] = dDEF[sToken] if ( (sToken.startswith("[") and sToken.endswith("]")) or (sToken.startswith("([") and sToken.endswith("])")) ): bSelectedGroup = sToken.startswith("(") and sToken.endswith(")") # multiple token if not lTokenRules: lTokenRules = [ sToken[1:-1].split("|") ] else: lNewTemp = [] for aRule in lTokenRules: lElem = sToken[1:-1].split("|") if not bSelectedGroup else sToken[2:-2].split("|") sElem1 = lElem.pop(0) if bSelectedGroup: sElem1 = "(" + sElem1 + ")" for sElem in lElem: if bSelectedGroup: sElem = "(" + sElem + ")" aNew = list(aRule) aNew.append(sElem) lNewTemp.append(aNew) aRule.append(sElem1) lTokenRules.extend(lNewTemp) else: # simple token |
︙ | ︙ | |||
122 123 124 125 126 127 128 | # Action cAction = m.group(1) sAction = sAction[m.end():].strip() sAction = changeReferenceToken(sAction, dPos) iStartAction = int(m.group(2)) if m.group(2) else 0 iEndAction = int(m.group(3)[1:]) if m.group(3) else iStartAction if nGroup: | > | | > > | 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 | # Action cAction = m.group(1) sAction = sAction[m.end():].strip() sAction = changeReferenceToken(sAction, dPos) iStartAction = int(m.group(2)) if m.group(2) else 0 iEndAction = int(m.group(3)[1:]) if m.group(3) else iStartAction if nGroup: try: iStartAction = dPos[iStartAction] iEndAction = dPos[iEndAction] except: print("# Error. Wrong groups in: " + sIdAction) if cAction == "-": ## error iMsg = sAction.find(" # ") if iMsg == -1: sMsg = "# Error. Error message not found." sURL = "" |
︙ | ︙ |
Modified gc_lang/fr/rules_graph.grx from [25632727ec] to [18deb74635].
︙ | ︙ | |||
48 49 50 51 52 53 54 | __rule2__ ci important que soi ci vraiment il y a ci pour ça <<- morph(\2, ":[WAR]", False) -1>> si # Message1|http://test.grammalecte.net __rule3__ | | | | 48 49 50 51 52 53 54 55 56 57 58 | __rule2__ ci important que soi ci vraiment il y a ci pour ça <<- morph(\2, ":[WAR]", False) -1>> si # Message1|http://test.grammalecte.net __rule3__ contre ([nature|pétrie|action]) par ([ennui|sélection]) <<- morph(\1, "xxxx") -1:2>> =\1+\2 # Message2|http://test.grammalecte.org <<- ~1>> hyper|fonction |