generate vardecl