mirror of
https://github.com/varun-r-mallya/Python-BPF.git
synced 2025-12-31 21:06:25 +00:00
Use _handle_name_expr in eval_expr
This commit is contained in:
@ -29,13 +29,7 @@ def eval_expr(
|
|||||||
):
|
):
|
||||||
logger.info(f"Evaluating expression: {ast.dump(expr)}")
|
logger.info(f"Evaluating expression: {ast.dump(expr)}")
|
||||||
if isinstance(expr, ast.Name):
|
if isinstance(expr, ast.Name):
|
||||||
if expr.id in local_sym_tab:
|
return _handle_name_expr(expr, local_sym_tab, builder)
|
||||||
var = local_sym_tab[expr.id].var
|
|
||||||
val = builder.load(var)
|
|
||||||
return val, local_sym_tab[expr.id].ir_type # return value and type
|
|
||||||
else:
|
|
||||||
logger.info(f"Undefined variable {expr.id}")
|
|
||||||
return None
|
|
||||||
elif isinstance(expr, ast.Constant):
|
elif isinstance(expr, ast.Constant):
|
||||||
if isinstance(expr.value, int):
|
if isinstance(expr.value, int):
|
||||||
return ir.Constant(ir.IntType(64), expr.value), ir.IntType(64)
|
return ir.Constant(ir.IntType(64), expr.value), ir.IntType(64)
|
||||||
@ -123,8 +117,10 @@ def eval_expr(
|
|||||||
attr_name = expr.attr
|
attr_name = expr.attr
|
||||||
if var_name in local_sym_tab:
|
if var_name in local_sym_tab:
|
||||||
var_ptr, var_type, var_metadata = local_sym_tab[var_name]
|
var_ptr, var_type, var_metadata = local_sym_tab[var_name]
|
||||||
logger.info(f"Loading attribute {attr_name} from variable {var_name}")
|
logger.info(f"Loading attribute {
|
||||||
logger.info(f"Variable type: {var_type}, Variable ptr: {var_ptr}")
|
attr_name} from variable {var_name}")
|
||||||
|
logger.info(f"Variable type: {
|
||||||
|
var_type}, Variable ptr: {var_ptr}")
|
||||||
metadata = structs_sym_tab[var_metadata]
|
metadata = structs_sym_tab[var_metadata]
|
||||||
if attr_name in metadata.fields:
|
if attr_name in metadata.fields:
|
||||||
gep = metadata.gep(builder, var_ptr, attr_name)
|
gep = metadata.gep(builder, var_ptr, attr_name)
|
||||||
|
|||||||
Reference in New Issue
Block a user