assignable return value now lives in ast_function, as globals can get overwritten randomly; removed parser_find_retval; updated parse_return