Example #1
0
    def __init__(self, type_env=None, blocks=None):
        if type_env is None:
            type_env = {}
        self.type_env = type_env
        if blocks is None:
            blocks = NestedBlocks()

        self.blocks = blocks

        # cut down the number of created nodes by
        # remembering which tuple variables we've created
        # and looking up their elements directly
        self.tuple_elt_cache = {}
Example #2
0
def fresh_builder(fn):
  blocks = NestedBlocks()
  blocks.push(fn.body)
  return Builder(type_env = fn.type_env, blocks = blocks)