def findBond(left, right): for l in left["interface"]: for r in right["interface"]: if (l["lstate"] != "" and l["lstate"] != "!_" and l["lstate"] != "?" and l["lstate"] == r["lstate"]): return (r["name"], l["name"]) printing.printError("Error in chain definition!, can't find prev and next sites") sys.exit(3)
def searchLink(linkList, link, i): for agent in range(0,len(linkList)): if (agent != i): for l in linkList[agent]: if (link == l): return agent printing.printError("Error in links of a rule") sys.exit(1)
def getLinkValue(agent, siteName): for site in agent["interface"]: if (site["name"] == siteName): if (site["lstate"] == "" or site["lstate"] == "!_" or site["lstate"] == "?"): printing.printError("Error, trying to get link value from a non-integer linking state") sys.exit(5) return int(site["lstate"][1:]) printing.printError("Error, can't find siteName in getLinkValue function") sys.exit(4)
def substituteDataArrayElementInString(vname, s, dataArray): for variable in re.findall(vname + "\[\d+\]", s): index = int(re.findall("\d+", variable)[0]) if index < len(dataArray): s = s.replace(variable, str(dataArray[index])) else: printing.printError("Error replacing " + vname + "[" + str(index) + "] variable in a expression", file=sys.stderr) sys.exit(2) return s
def expand(domainId, instruction, writer): if (domainId in locationLists): writer(instruction, locationLists[domainId]) elif (domainId in locationMatrices): writer(instruction, locationMatrices[domainId]) elif (domainId == "all"): writer(instruction, list(locations.keys())) else: printing.printError("Error, " + domainId + " doesn't exist") sys.exit(2)