| ParenExpr (e) -> exprf e
- | New t -> vk_argument bigf t
+ | New t -> vk_argument bigf t
+ | Delete e -> vk_expr bigf e
in exprf expr
iif iiq;
iif iit;
match unwrap_t with
- | NoType _ -> ()
+ | NoType -> ()
| BaseType _ -> ()
| Pointer t -> typef t
| Array (eopt, t) ->
vk_argument_list bigf args;
in f (k, bigf) d
+and vk_decl_list = fun bigf ts ->
+ ts +> List.iter (vk_decl bigf)
and vk_onedecl = fun bigf onedecl ->
let iif ii = vk_ii bigf ii in
attrs +> List.iter (vk_attribute bigf);
var +> Common.do_option (fun (name, iniopt) ->
vk_name bigf name;
- iniopt +> Common.do_option (fun (info, ini) ->
- iif [info];
- vk_ini bigf ini;
- );
+ (match iniopt with
+ Ast_c.NoInit -> ()
+ | Ast_c.ValInit(iini,init) -> iif [iini]; vk_ini bigf init
+ | Ast_c.ConstrInit((init,ii)) -> iif ii; vk_argument_list bigf init)
)
in f (k, bigf) onedecl
| ParenExpr (e) -> ParenExpr (exprf e)
| New t -> New (vk_argument_s bigf t)
+ | Delete e -> Delete (vk_expr_s bigf e)
in
(e', typ'), (iif ii)
{v_namei =
(var +> map_option (fun (name, iniopt) ->
vk_name_s bigf name,
- iniopt +> map_option (fun (info, init) ->
- vk_info_s bigf info,
- vk_ini_s bigf init
- )));
+ (match iniopt with
+ Ast_c.NoInit -> iniopt
+ | Ast_c.ValInit(iini,init) ->
+ Ast_c.ValInit(vk_info_s bigf iini,vk_ini_s bigf init)
+ | Ast_c.ConstrInit((init,ii)) ->
+ let init =
+ init +> List.map (fun (e,ii) -> vk_argument_s bigf e, iif ii) in
+ Ast_c.ConstrInit((init, List.map (vk_info_s bigf) ii)))
+ ));
v_type = vk_type_s bigf t;
(* !!! dont go in semantic related stuff !!! *)
v_type_bis = tbis;
in f (k, bigf) d
+and vk_decl_list_s = fun bigf decls ->
+ decls +> List.map (vk_decl_s bigf)
+
and vk_ini_s = fun bigf ini ->
let rec inif ini = bigf.kini_s (k,bigf) ini
and k ini =