Add handle_variable_assignment stub and boilerplate in handle_assign

This commit is contained in:
Pragyansh Chaturvedi
2025-10-08 22:55:03 +05:30
parent 6008d9841f
commit 84ed27f222
2 changed files with 25 additions and 1 deletions

4
pythonbpf/assign_pass.py Normal file
View File

@ -0,0 +1,4 @@
def handle_variable_assignment(
func, module, builder, var_name, rval, local_sym_tab, map_sym_tab, structs_sym_tab
):
pass

View File

@ -8,6 +8,7 @@ from pythonbpf.helper import HelperHandlerRegistry, handle_helper_call
from pythonbpf.type_deducer import ctypes_to_ir
from pythonbpf.binary_ops import handle_binary_op
from pythonbpf.expr import eval_expr, handle_expr, convert_to_bool
from pythonbpf.assign_pass import handle_variable_assignment
from .return_utils import _handle_none_return, _handle_xdp_return, _is_xdp_name
@ -55,9 +56,28 @@ def handle_assign(
logger.error("Multi-target assignment is not supported for now")
return
target = stmt.targets[0]
rval = stmt.value
if isinstance(target, ast.Name):
# NOTE: Simple variable assignment case: x = 5
var_name = target.id
result = handle_variable_assignment(
func,
module,
builder,
var_name,
rval,
local_sym_tab,
map_sym_tab,
structs_sym_tab,
)
if not result:
logger.error(f"Failed to handle assignment to {var_name}")
return
num_types = ("c_int32", "c_int64", "c_uint32", "c_uint64")
target = stmt.targets[0]
logger.info(f"Handling assignment to {ast.dump(target)}")
if not isinstance(target, ast.Name) and not isinstance(target, ast.Attribute):
logger.info("Unsupported assignment target")