Пример #1
0
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)
Пример #2
0
 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)
Пример #3
0
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)
Пример #4
0
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
Пример #5
0
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)