statxs +> List.iter pp_statement_seq;
pr_elem ii2;
pr_elem i2;
- | Constructor (t, xs), lp::rp::i1::i2::iicommaopt ->
+ | Constructor (t, init), [lp;rp] ->
pr_elem lp;
pp_type t;
pr_elem rp;
- pr_elem i1;
- xs +> List.iter (fun (x, ii) ->
- assert (List.length ii <= 1);
- ii +> List.iter (function x -> pr_elem x; pr_space());
- pp_init x
- );
- iicommaopt +> List.iter pr_elem;
- pr_elem i2;
+ pp_init init
| ParenExpr (e), [i1;i2] -> pr_elem i1; pp_expression e; pr_elem i2;
pr_elem iivirg;
- | MacroDecl ((s, es), iis::lp::rp::iiend::ifakestart::iisto) ->
+ | MacroDecl ((s, es, true), iis::lp::rp::iiend::ifakestart::iisto) ->
pr_elem ifakestart;
iisto +> List.iter pr_elem; (* static and const *)
pr_elem iis;
pr_elem rp;
pr_elem iiend;
+ | MacroDecl ((s, es, false), iis::lp::rp::ifakestart::iisto) ->
+ pr_elem ifakestart;
+ iisto +> List.iter pr_elem; (* static and const *)
+ pr_elem iis;
+ pr_elem lp;
+ es +> List.iter (fun (e, opt) ->
+ assert (List.length opt <= 1);
+ opt +> List.iter pr_elem;
+ pp_argument e;
+ );
+
+ pr_elem rp;
+
| (DeclList (_, _) | (MacroDecl _)) -> raise Impossible