class EmitContext: def __init__(self): self._tmp_counter = 0 self.current_function = None self.modules = set() # c_func_name → [param_names]; populated by emitter pre-pass self.functions = {} # source-level name / alias → c_func_name; populated by emitter pre-pass self.func_resolve = {} def fresh_tmp(self): name = f"_t{self._tmp_counter}" self._tmp_counter += 1 return name def has_module(self, name): return name in self.modules