Exemple #1
0
def make_banned_value_counter(banned_values, bindings):
    p = lambda expr : E.is_v(expr) and (bindings[E.unpack_v(expr)] in banned_values)
    def banned_value_counter(exprs):
        count = [0]
        f = make_counter(count)
        for expr in exprs:
            E.filter_walk(p, f, expr)
        return count[0]
    return banned_value_counter
Exemple #2
0
 def f(v):
     if v not in touched:
         touched.add(v)
         order.append(unpack_v(v))
     return v
Exemple #3
0
 def f(expr):
     return v_(new_labels[unpack_v(expr)])
Exemple #4
0
 def p(expr):
     return is_v(expr) and unpack_v(expr) in new_labels
Exemple #5
0
 def f(expr):
     return v_(new_labels[unpack_v(expr)])
Exemple #6
0
 def p(expr):
     return is_v(expr) and unpack_v(expr) in new_labels
Exemple #7
0
 def f(v):
     if v not in touched:
         touched.add(v)
         order.append(unpack_v(v))
     return v