Overview
Comment: | [build][core] graph rule: condition is moved in action |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | core | build | rg |
Files: | files | file ages | folders |
SHA3-256: |
5d1e6b3f8b0180edaaa44c5620d299f0 |
User & Date: | olr on 2018-05-19 14:28:40 |
Other Links: | branch diff | manifest | tags |
Context
2018-05-20
| ||
10:07 | [build][core] graph generation update check-in: 0f6ac8c5a7 user: olr tags: core, build, rg | |
2018-05-19
| ||
14:28 | [build][core] graph rule: condition is moved in action check-in: 5d1e6b3f8b user: olr tags: core, build, rg | |
14:06 | [build][core] merge actions in key <rules> + code clarification check-in: a59fbc32a0 user: olr tags: core, build, rg | |
Changes
Modified compile_rules_graph.py from [9991956fdc] to [ecde868c3b].
︙ | ︙ | |||
60 61 62 63 64 65 66 | nGroup += 1 dPos[nGroup] = i # Parse actions for nAction, sAction in enumerate(sActions.split(" <<- ")): if sAction.strip(): sActionId = sRuleName + "_a" + str(nAction) | | | | | | | 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | nGroup += 1 dPos[nGroup] = i # Parse actions for nAction, sAction in enumerate(sActions.split(" <<- ")): if sAction.strip(): sActionId = sRuleName + "_a" + str(nAction) aAction = createAction(sActionId, sAction, nGroup, nPriority, dPos) if aAction: dACTIONS[sActionId] = aAction lResult = list(lToken) lResult.extend(["##"+str(iLine), sActionId]) yield lResult def createAction (sIdAction, sAction, nGroup, nPriority, dPos): m = re.search("([-~=])(\\d+|)(:\\d+|)>> ", sAction) if not m: print(" # Error. No action found at: ", sIdAction) print(" ==", sAction, "==") return None # Condition sCondition = sAction[:m.start()].strip() if sCondition: sCondition = prepareFunction(sCondition) sCondition = changeReferenceToken(sCondition, dPos) lFUNCTIONS.append(("gc_"+sIdAction, sCondition)) sCondition = "gc_"+sIdAction |
︙ | ︙ | |||
147 148 149 150 151 152 153 | if sAction[0:1] == "=": lFUNCTIONS.append(("gs_"+sIdAction, sAction[1:])) sAction = "=gs_"+sIdAction elif sAction.startswith('"') and sAction.endswith('"'): sAction = sAction[1:-1] if not sMsg: print("# Error in action at line " + sIdAction + ": The message is empty.") | | | | | | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 | if sAction[0:1] == "=": lFUNCTIONS.append(("gs_"+sIdAction, sAction[1:])) sAction = "=gs_"+sIdAction elif sAction.startswith('"') and sAction.endswith('"'): sAction = sAction[1:-1] if not sMsg: print("# Error in action at line " + sIdAction + ": The message is empty.") return [sCondition, cAction, sAction, iStartAction, iEndAction, nPriority, sMsg, sURL] elif cAction == "~": ## text processor if not sAction: print("# Error in action at line " + sIdAction + ": This action is empty.") if sAction[0:1] == "=": lFUNCTIONS.append(("gp_"+sIdAction, sAction[1:])) sAction = "=gp_"+sIdAction elif sAction.startswith('"') and sAction.endswith('"'): sAction = sAction[1:-1] return [sCondition, cAction, sAction, iStartAction, iEndAction] elif cAction == "=": ## disambiguator if sAction[0:1] == "=": sAction = sAction[1:] if not sAction: print("# Error in action at line " + sIdAction + ": This action is empty.") lFUNCTIONS.append(("gd_"+sIdAction, sAction)) sAction = "gd_"+sIdAction return [sCondition, cAction, sAction] elif cAction == ">": ## no action, break loop if condition is False return [sCondition, cAction, ""] else: print("# Unknown action at line " + sIdAction) return None def make (spLang, sLang, bJavaScript): "compile rules, returns a dictionary of values" |
︙ | ︙ |
Modified datg.py from [c340246af4] to [c288dbf7f8].
︙ | ︙ | |||
68 69 70 71 72 73 74 | oNode = self.lUncheckedNodes[-1][2] iToken = nCommonPrefix for token in aRule[nCommonPrefix:]: oNextNode = Node() oNode.dArcs[token] = oNextNode self.lUncheckedNodes.append((oNode, token, oNextNode)) | | | 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 | oNode = self.lUncheckedNodes[-1][2] iToken = nCommonPrefix for token in aRule[nCommonPrefix:]: oNextNode = Node() oNode.dArcs[token] = oNextNode self.lUncheckedNodes.append((oNode, token, oNextNode)) if iToken == (len(aRule) - 2): oNode.bFinal = True iToken += 1 oNode = oNextNode oNode.bFinal = True self.aPreviousRule = aRule def finish (self): |
︙ | ︙ |