+
+
+
+let pp_flow_gen pr_elem pr_space n =
+ match F.unwrap n with
+ | F.FunHeader ({f_name =idb;
+ f_type = (rett, (paramst,(isvaargs,iidotsb)));
+ f_storage = stob;
+ f_body = body;
+ f_attr = attrs},ii) ->
+
+ assert(null body);
+ (*
+ iif ii;
+ iif iidotsb;
+ attrs +> List.iter (vk_attribute bigf);
+ vk_type bigf rett;
+ paramst +> List.iter (fun (param, iicomma) ->
+ vk_param bigf param;
+ iif iicomma;
+ );
+ *)
+ pr2 "Def";
+
+
+ | F.Decl decl ->
+ (* vk_decl bigf decl *)
+ pr2 "Decl"
+
+ | F.ExprStatement (st, (eopt, ii)) ->
+ pp_statement_gen pr_elem pr_space (ExprStatement eopt, ii)
+
+ | F.IfHeader (_, (e,ii))
+ | F.SwitchHeader (_, (e,ii))
+ | F.WhileHeader (_, (e,ii))
+ | F.DoWhileTail (e,ii) ->
+ (*
+ iif ii;
+ vk_expr bigf e
+ *)
+ pr2 "XXX";
+
+
+ | F.ForHeader (_st, (((e1opt,i1), (e2opt,i2), (e3opt,i3)), ii)) ->
+ (*
+ iif i1; iif i2; iif i3;
+ iif ii;
+ e1opt +> do_option (vk_expr bigf);
+ e2opt +> do_option (vk_expr bigf);
+ e3opt +> do_option (vk_expr bigf);
+ *)
+ pr2 "XXX";
+
+ | F.MacroIterHeader (_s, ((s,es), ii)) ->
+ (*
+ iif ii;
+ vk_argument_list bigf es;
+ *)
+ pr2 "XXX";
+
+
+ | F.ReturnExpr (_st, (e,ii)) ->
+ (* iif ii; vk_expr bigf e*)
+ pr2 "XXX";
+
+
+ | F.Case (_st, (e,ii)) ->
+ (* iif ii; vk_expr bigf e *)
+ pr2 "XXX";
+
+ | F.CaseRange (_st, ((e1, e2),ii)) ->
+ (* iif ii; vk_expr bigf e1; vk_expr bigf e2 *)
+ pr2 "XXX";
+
+
+
+ | F.CaseNode i -> ()
+
+ | F.DefineExpr e ->
+ (* vk_expr bigf e *)
+ pr2 "XXX";
+
+ | F.DefineType ft ->
+ (* vk_type bigf ft *)
+ pr2 "XXX";
+
+ | F.DefineHeader ((s,ii), (defkind)) ->
+ (*
+ iif ii;
+ vk_define_kind bigf defkind;
+ *)
+ pr2 "XXX";
+
+
+ | F.DefineDoWhileZeroHeader (((),ii)) ->
+ (* iif ii *)
+ pr2 "XXX";
+
+
+ | F.Include {i_include = (s, ii);} ->
+ (* iif ii; *)
+ pr2 "XXX";
+
+
+ | F.MacroTop (s, args, ii) ->
+ (* iif ii;
+ vk_argument_list bigf args *)
+ pr2 "XXX";
+
+
+ | F.Break (st,((),ii)) ->
+ (* iif ii *)
+ pr2 "XXX";
+ | F.Continue (st,((),ii)) ->
+ (* iif ii *)
+ pr2 "XXX";
+ | F.Default (st,((),ii)) ->
+ (* iif ii *)
+ pr2 "XXX";
+ | F.Return (st,((),ii)) ->
+ (* iif ii *)
+ pr2 "XXX";
+ | F.Goto (st, (s,ii)) ->
+ (* iif ii *)
+ pr2 "XXX";
+ | F.Label (st, (s,ii)) ->
+ (* iif ii *)
+ pr2 "XXX";
+ | F.EndStatement iopt ->
+ (* do_option infof iopt *)
+ pr2 "XXX";
+ | F.DoHeader (st, info) ->
+ (* infof info *)
+ pr2 "XXX";
+ | F.Else info ->
+ (* infof info *)
+ pr2 "XXX";
+ | F.SeqEnd (i, info) ->
+ (* infof info *)
+ pr2 "XXX";
+ | F.SeqStart (st, i, info) ->
+ (* infof info *)
+ pr2 "XXX";
+
+ | F.MacroStmt (st, ((),ii)) ->
+ (* iif ii *)
+ pr2 "XXX";
+ | F.Asm (st, (asmbody,ii)) ->
+ (*
+ iif ii;
+ vk_asmbody bigf asmbody
+ *)
+ pr2 "XXX";
+
+
+ | F.IfdefHeader (info) ->
+ pp_ifdef_gen pr_elem pr_space info
+ | F.IfdefElse (info) ->
+ pp_ifdef_gen pr_elem pr_space info
+ | F.IfdefEndif (info) ->
+ pp_ifdef_gen pr_elem pr_space info
+
+
+ | (
+ F.TopNode|F.EndNode|
+ F.ErrorExit|F.Exit|F.Enter|
+ F.FallThroughNode|F.AfterNode|F.FalseNode|F.TrueNode|F.InLoopNode|
+ F.Fake
+ ) ->
+ pr2 "YYY"
+
+
+
+
+