/* ===================================================================== Source: free.rule ===================================================================== */ free_cmd : opt_use2_p FREE atline variable_usage_expression { char errbuff[256]; int a=0; expr_str *ptr=0; //int vtype; if ($4->expr_type==ET_EXPR_VARIABLE_USAGE) { ptr=ensure_variable(errbuff,$4,1); if (ptr!=0) { a=get_variable_dtype_from_variable_usage_expression(errbuff,$4); } } if (ptr==0) { a=0; } set_cmdlineno($3); if (a!=DTYPE_BYTE && a!= DTYPE_TEXT) { char *s; s=do_clobbering_sql(&this_module, clobber, downshift(expr_as_string_when_possible($4))); strcpy(last_var,downshift(s)); $$=A4GL_new_expr_simple_string(s, ET_EXPR_IDENTIFIER); $$=new_free_cmd($1, $$); } else { inc_var_usage(ptr); $$=new_free_blob_cmd(ptr); } } /* | opt_use2_p FREE fetch_cursor_name_p { add_feature("FREE_CURSOR"); set_cmdlineno(token_read_on_line); $$=new_free_cmd($1, $3); } */ ;