@@ -39,7 +39,6 @@ def handle_assign(module, builder, stmt, map_sym_tab, local_sym_tab):
3939 if isinstance (rval , ast .Constant ):
4040 if isinstance (rval .value , int ):
4141 # Assume c_int64 for now
42- # TODO: make symtab for this
4342 var = builder .alloca (ir .IntType (64 ), name = var_name )
4443 var .align = 8
4544 builder .store (ir .Constant (ir .IntType (64 ), rval .value ), var )
@@ -57,6 +56,14 @@ def handle_assign(module, builder, stmt, map_sym_tab, local_sym_tab):
5756 print (f"Assigned { call_type } constant "
5857 f"{ rval .args [0 ].value } to { var_name } " )
5958 local_sym_tab [var_name ] = var
59+ elif call_type in helper_func_list :
60+ var = builder .alloca (ir .IntType (64 ), name = var_name )
61+ var .align = 8
62+ val = handle_helper_call (
63+ rval , module , builder , None , local_sym_tab , map_sym_tab )
64+ builder .store (val , var )
65+ local_sym_tab [var_name ] = var
66+ print (f"Assigned constant { rval .func .id } to { var_name } " )
6067 else :
6168 print (f"Unsupported assignment call type: { call_type } " )
6269 elif isinstance (rval .func , ast .Attribute ):
@@ -70,6 +77,8 @@ def handle_assign(module, builder, stmt, map_sym_tab, local_sym_tab):
7077 rval , module , builder , None , local_sym_tab , map_sym_tab )
7178 else :
7279 print ("Unsupported assignment call structure" )
80+ else :
81+ print ("Unsupported assignment call function type" )
7382
7483
7584def process_func_body (module , builder , func_node , func , ret_type , map_sym_tab ):
0 commit comments