repl = lambda match: "params[%d]" % (int(match.group()[1:]) - 1)
expr = re.sub(r"\$\d+", repl, expr.lower())
self.__expr = expr.replace("$rand", "random()").replace("$rank", "rank")
repl = lambda match: "params[%d]" % (int(match.group()[1:]) - 1)
expr = re.sub(r"\$\d+", repl, expr.lower())
self.__expr = expr.replace("$rand", "random()").replace("$rank", "rank")