improved yyval with strdup
simplified lval