Exemplo n.º 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
Exemplo n.º 2
0
 def f(v):
     if v not in touched:
         touched.add(v)
         order.append(unpack_v(v))
     return v
Exemplo n.º 3
0
 def f(expr):
     return v_(new_labels[unpack_v(expr)])
Exemplo n.º 4
0
 def p(expr):
     return is_v(expr) and unpack_v(expr) in new_labels
Exemplo n.º 5
0
 def f(expr):
     return v_(new_labels[unpack_v(expr)])
Exemplo n.º 6
0
 def p(expr):
     return is_v(expr) and unpack_v(expr) in new_labels
Exemplo n.º 7
0
 def f(v):
     if v not in touched:
         touched.add(v)
         order.append(unpack_v(v))
     return v