def buildMap(generators, varTypes, varList, var, constraintList): global assignInfo removeList = [] if (not set(var).issubset(generators)): print("var keys: ", var) (name, varInf) = getVarNameEntryFromAssignInfo(assignInfo, var) if(name == None): if varInf != None: print("Var : ", varInf.getVarDepsNoExponents()) elif var.find(LIST_INDEX_SYMBOL) != -1: varInf = findVarInfo(var, varTypes) return l = varInf.getVarDepsNoExponents() # print("var:", var, ", output: ", l) # prune 'l' here for i in l: print("name: ", i) # uncomment for ckrs09 error typeI = sdl.getVarTypeFromVarName(i, None, True) print("getVarTypeFromVarName: ", i,":", typeI) if typeI == types.NO_TYPE: node = BinaryNode(ops.ATTR) node.setAttribute(i) print("getVarNameFromListIndices req node: ", node) (funcName , newVarName) = getVarNameFromListIndices(assignInfo, varTypes, node, True) print("funcName: ", funcName) print("newVarName: ", newVarName) if newVarName != None: print("newVarName := ", newVarName) resultVarName = sdl.getVarTypeFromVarName(newVarName, None, True) #print("second attempt: ", newVarName, ":", resultVarName) varList.append(newVarName) else: pass # print("JAA: ADDING to varList: ", i) # varList.append(i) elif typeI in [types.G1]: varList.append(i) elif typeI in [types.ZR, types.str, types.list, types.pol]: (name, varInf) = getVarNameEntryFromAssignInfo(assignInfo, i) if varInf.getIsUsedInHashCalc(): print("adding", i, "to the list") varList.append(str(i)) constraintList.append(str(var)) continue else: pass # print("TODO: missing a case in buildMap: ", typeI) # varList.extend(l) varsToCheck = list(l) for i in varsToCheck: lenBefore = len(varList) buildMap(generators, varTypes, varList, i, constraintList) lenAfter = len(varList) if lenBefore == lenAfter: node = BinaryNode(ops.ATTR) node.setAttribute(i) print("Node :=>", node) (funcName, string) = getVarNameFromListIndices(assignInfo, varTypes, node, True) if string != None: varList.append(string) # for i in removeList: # print("REMOVING: ", i) # print("varList: ", varList) return