Overview
Comment: | [build] compile rules: code clarification |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | build | rg |
Files: | files | file ages | folders |
SHA3-256: |
19d7545cd62782d1c5ec03931177e2ee |
User & Date: | olr on 2018-06-24 19:02:22 |
Other Links: | branch diff | manifest | tags |
Context
2018-06-24
| ||
19:03 | merge trunk check-in: 099647c959 user: olr tags: rg | |
19:02 | [build] compile rules: code clarification check-in: 19d7545cd6 user: olr tags: build, rg | |
18:45 | [build] compile rules: code clarification check-in: 4ff036a562 user: olr tags: build, rg | |
Changes
Modified compile_rules.py from [79df313117] to [ac174b0844].
︙ | ︙ | |||
245 246 247 248 249 250 251 252 253 254 255 256 257 258 | def checkReferenceNumbers (sText, sActionId, nToken): "check if token references in <sText> greater than <nToken> (debugging)" for x in re.finditer(r"\\(\d+)", sText): if int(x.group(1)) > nToken: print("# Error in token index at line " + sActionId + " ("+str(nToken)+" tokens only)") print(sText) def createAction (sIdAction, sAction, nGroup): "returns an action to perform as a tuple (condition, action type, action[, iGroup [, message, URL ]])" m = re.search(r"([-~=>])(\d*|)>>", sAction) if not m: print("# No action at line " + sIdAction) return None | > > > > > > > | 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 | def checkReferenceNumbers (sText, sActionId, nToken): "check if token references in <sText> greater than <nToken> (debugging)" for x in re.finditer(r"\\(\d+)", sText): if int(x.group(1)) > nToken: print("# Error in token index at line " + sActionId + " ("+str(nToken)+" tokens only)") print(sText) def checkIfThereIsCode (sText, sActionId): "check if there is code in <sText> (debugging)" if re.search("[.]\\w+[(]|sugg\\w+[(]|\\([0-9]|\\[[0-9]", sText): print("# Warning at line " + sActionId + ": This message looks like code. Line should probably begin with =") print(sText) def createAction (sIdAction, sAction, nGroup): "returns an action to perform as a tuple (condition, action type, action[, iGroup [, message, URL ]])" m = re.search(r"([-~=>])(\d*|)>>", sAction) if not m: print("# No action at line " + sIdAction) return None |
︙ | ︙ | |||
294 295 296 297 298 299 300 | sMsg = sMsg[:mURL.start(0)].strip() checkReferenceNumbers(sMsg, sIdAction, nGroup) if sMsg[0:1] == "=": sMsg = prepareFunction(sMsg[1:]) lFUNCTIONS.append(("_m_"+sIdAction, sMsg)) sMsg = "=_m_"+sIdAction else: | < | < < | < | 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 | sMsg = sMsg[:mURL.start(0)].strip() checkReferenceNumbers(sMsg, sIdAction, nGroup) if sMsg[0:1] == "=": sMsg = prepareFunction(sMsg[1:]) lFUNCTIONS.append(("_m_"+sIdAction, sMsg)) sMsg = "=_m_"+sIdAction else: checkIfThereIsCode(sMsg, sIdAction) checkReferenceNumbers(sAction, sIdAction, nGroup) if sAction[0:1] == "=" or cAction == "=": sAction = prepareFunction(sAction) sAction = sAction.replace("m.group(i[4])", "m.group("+str(iGroup)+")") else: checkIfThereIsCode(sAction, sIdAction) if cAction == ">": ## no action, break loop if condition is False return [sCondition, cAction, ""] if not sAction: print("# Error in action at line " + sIdAction + ": This action is empty.") |
︙ | ︙ | |||
337 338 339 340 341 342 343 344 345 346 347 348 349 350 | elif sAction.startswith('"') and sAction.endswith('"'): sAction = sAction[1:-1] return [sCondition, cAction, sAction, iGroup] elif cAction == "=": ## disambiguator if sAction[0:1] == "=": sAction = sAction[1:] lFUNCTIONS.append(("_d_"+sIdAction, sAction)) sAction = "_d_"+sIdAction return [sCondition, cAction, sAction] else: print("# Unknown action at line " + sIdAction) return None | > > > | 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 | elif sAction.startswith('"') and sAction.endswith('"'): sAction = sAction[1:-1] return [sCondition, cAction, sAction, iGroup] elif cAction == "=": ## disambiguator if sAction[0:1] == "=": sAction = sAction[1:] if "define" in sAction and not re.search(r"define\(dTokenPos, *m\.start.*, \[.*\] *\)", sAction): print("# Error in action at line " + sIdAction + ": second argument for define must be a list of strings") print(sAction) lFUNCTIONS.append(("_d_"+sIdAction, sAction)) sAction = "_d_"+sIdAction return [sCondition, cAction, sAction] else: print("# Unknown action at line " + sIdAction) return None |
︙ | ︙ |