rewrite eval_assign_expression in eval.c