Add has_handler to HelperHandlerRegistry

This commit is contained in:
Pragyansh Chaturvedi
2025-10-01 23:38:38 +05:30
parent 28cc0c5eec
commit 929eef31ef
3 changed files with 11 additions and 6 deletions

View File

@ -50,21 +50,21 @@ def eval_expr(func, module, builder, expr, local_sym_tab, map_sym_tab, structs_s
return val, local_sym_tab[expr.args[0].id][1]
# check for helpers
if expr.func.id in HelperHandlerRegistry._handlers:
if HelperHandlerRegistry.has_handler(expr.func.id):
return handle_helper_call(
expr, module, builder, func, local_sym_tab, map_sym_tab, structs_sym_tab, local_var_metadata)
elif isinstance(expr.func, ast.Attribute):
print(f"Handling method call: {ast.dump(expr.func)}")
if isinstance(expr.func.value, ast.Call) and isinstance(expr.func.value.func, ast.Name):
method_name = expr.func.attr
if method_name in HelperHandlerRegistry._handlers:
if HelperHandlerRegistry.has_handler(method_name):
return handle_helper_call(
expr, module, builder, func, local_sym_tab, map_sym_tab, structs_sym_tab, local_var_metadata)
elif isinstance(expr.func.value, ast.Name):
obj_name = expr.func.value.id
method_name = expr.func.attr
if obj_name in map_sym_tab:
if method_name in HelperHandlerRegistry._handlers:
if HelperHandlerRegistry.has_handler(method_name):
return handle_helper_call(
expr, module, builder, func, local_sym_tab, map_sym_tab, structs_sym_tab, local_var_metadata)
elif isinstance(expr, ast.Attribute):