X-Git-Url: https://git.yukkurigames.com/?p=python-bulletml.git;a=blobdiff_plain;f=bulletml%2Fexpr.py;fp=bulletml%2Fexpr.py;h=3c80b0652619556ceb6961a8ddb413a0cbca4b06;hp=7654fed4b6c10a7c37b998f1e6fb6d00b3525be7;hb=ef50d69288ee60ac2a8fae2ffe5860e80299fd72;hpb=256e883e22f798a74ccb67d87d68050c44d87a16 diff --git a/bulletml/expr.py b/bulletml/expr.py index 7654fed..3c80b06 100644 --- a/bulletml/expr.py +++ b/bulletml/expr.py @@ -31,12 +31,13 @@ class NumberDef(object): """ GLOBALS = dict(random=random.random, __builtins__={}) + def __init__(self, expr): try: - expr = expr.__original + expr = expr.string except AttributeError: pass - self.__original = expr + self.string = expr 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") @@ -61,7 +62,7 @@ class NumberDef(object): return eval(self.__expr, self.GLOBALS, variables) def __repr__(self): - return "%s(%r)" % (type(self).__name__, self.__original) + return "%s(%r)" % (type(self).__name__, self.string) class INumberDef(NumberDef): """A NumberDef, but returns rounded integer results."""