18 lines
488 B
Python
18 lines
488 B
Python
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
|