Cleaning up and abstracting the (FFP to AST) lowerer
[hiphop-php.git] / hphp / hack / src / parser / ast.ml
blob23423a2a470c68804c2f79db014b99af2eac1427
1 (* @generated from ast.src.ml by hphp/hack/tools/ppx/facebook:generate_ppx *)
2 (* Copyright (c) 2004-present, Facebook, Inc. All rights reserved. *)
3 (* SourceShasum<<36ea0f8d69ba93a3cfa3229d612370640d610fa8>> *)
5 (* DO NOT EDIT MANUALLY. *)
6 [@@@ocaml.text
7 "\n * Copyright (c) 2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the \"hack\" directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n "]
8 include Ast_defs
9 type program = def list[@@deriving
10 (show,
11 (visitors
13 variety = "endo";
14 nude = true;
15 visit_prefix = "on_";
16 ancestors = ["endo_defs"]
17 }),
18 (visitors
20 variety = "reduce";
21 nude = true;
22 visit_prefix = "on_";
23 ancestors = ["reduce_defs"]
24 }),
25 (visitors
27 variety = "map";
28 nude = true;
29 visit_prefix = "on_";
30 ancestors = ["map_defs"]
31 }),
32 (visitors
34 variety = "iter";
35 nude = true;
36 visit_prefix = "on_";
37 ancestors = ["iter_defs"]
38 }))]
39 and nsenv = ((Namespace_env.env)[@opaque ])
40 and fimode = ((FileInfo.mode)[@visitors.opaque ])
41 and def =
42 | Fun of fun_
43 | Class of class_
44 | Stmt of stmt
45 | Typedef of typedef
46 | Constant of gconst
47 | Namespace of id * program
48 | NamespaceUse of (ns_kind * id * id) list
49 | SetNamespaceEnv of nsenv
50 and typedef =
52 t_id: id ;
53 t_tparams: tparam list ;
54 t_constraint: tconstraint ;
55 t_kind: typedef_kind ;
56 t_user_attributes: user_attribute list ;
57 t_namespace: nsenv ;
58 t_mode: fimode }
59 and gconst =
61 cst_mode: fimode ;
62 cst_kind: cst_kind ;
63 cst_name: id ;
64 cst_type: hint option ;
65 cst_value: expr ;
66 cst_namespace: nsenv ;
67 cst_span: pos }
68 and tparam = (variance * id * (constraint_kind * hint) list)
69 and tconstraint = hint option
70 and typedef_kind =
71 | Alias of hint
72 | NewType of hint
73 and class_ =
75 c_mode: fimode ;
76 c_user_attributes: user_attribute list ;
77 c_final: bool ;
78 c_kind: class_kind ;
79 c_is_xhp: bool ;
80 c_name: id ;
81 c_tparams: tparam list ;
82 c_extends: hint list ;
83 c_implements: hint list ;
84 c_body: class_elt list ;
85 c_namespace: nsenv ;
86 c_enum: enum_ option ;
87 c_span: pos ;
88 c_doc_comment: string option }
89 and enum_ = {
90 e_base: hint ;
91 e_constraint: hint option }
92 and user_attribute = {
93 ua_name: id ;
94 ua_params: expr list }
95 and class_elt =
96 | Const of hint option * (id * expr) list
97 | AbsConst of hint option * id
98 | Attributes of class_attr list
99 | TypeConst of typeconst
100 | ClassUse of hint
101 | ClassUseAlias of id option * pstring * id option * kind list
102 | ClassUsePrecedence of id * pstring * id list
103 | XhpAttrUse of hint
104 | ClassTraitRequire of trait_req_kind * hint
105 | ClassVars of class_vars_
106 | XhpAttr of hint option * class_var * bool * (pos * bool * expr list)
107 option
108 | Method of method_
109 | XhpCategory of pstring list
110 | XhpChild of xhp_child
111 and xhp_child =
112 | ChildName of id
113 | ChildList of xhp_child list
114 | ChildUnary of xhp_child * xhp_child_op
115 | ChildBinary of xhp_child * xhp_child
116 and xhp_child_op =
117 | ChildStar
118 | ChildPlus
119 | ChildQuestion
120 and class_attr =
121 | CA_name of id
122 | CA_field of ca_field
123 and ca_field =
125 ca_type: ca_type ;
126 ca_id: id ;
127 ca_value: expr option ;
128 ca_required: bool }
129 and ca_type =
130 | CA_hint of hint
131 | CA_enum of string list
132 and class_var = (pos * id * expr option)
133 and class_vars_ =
135 cv_kinds: kind list ;
136 cv_hint: hint option ;
137 cv_is_promoted_variadic: is_variadic ;
138 cv_names: class_var list ;
139 cv_doc_comment: string option ;
140 cv_user_attributes: user_attribute list }
141 and method_ =
143 m_kind: kind list ;
144 m_tparams: tparam list ;
145 m_constrs: (hint * constraint_kind * hint) list ;
146 m_name: id ;
147 m_params: fun_param list ;
148 m_body: block ;
149 m_user_attributes: user_attribute list ;
150 m_ret: hint option ;
151 m_ret_by_ref: bool ;
152 m_fun_kind: fun_kind ;
153 m_span: pos ;
154 m_doc_comment: string option }
155 and typeconst =
157 tconst_abstract: bool ;
158 tconst_name: id ;
159 tconst_tparams: tparam list ;
160 tconst_constraint: hint option ;
161 tconst_type: hint option ;
162 tconst_span: pos }
163 and is_reference = bool
164 and is_variadic = bool
165 and fun_param =
167 param_hint: hint option ;
168 param_is_reference: is_reference ;
169 param_is_variadic: is_variadic ;
170 param_id: id ;
171 param_expr: expr option ;
172 param_modifier: kind option ;
173 param_callconv: param_kind option ;
174 param_user_attributes: user_attribute list }
175 and fun_ =
177 f_mode: fimode ;
178 f_tparams: tparam list ;
179 f_constrs: (hint * constraint_kind * hint) list ;
180 f_ret: hint option ;
181 f_ret_by_ref: bool ;
182 f_name: id ;
183 f_params: fun_param list ;
184 f_body: block ;
185 f_user_attributes: user_attribute list ;
186 f_fun_kind: fun_kind ;
187 f_namespace: nsenv ;
188 f_span: pos ;
189 f_doc_comment: string option ;
190 f_static: bool }
191 and is_coroutine = bool
192 and hint = (pos * hint_)
193 and variadic_hint =
194 | Hvariadic of hint option
195 | Hnon_variadic
196 and hint_ =
197 | Hoption of hint
198 | Hfun of is_coroutine * hint list * param_kind option list * variadic_hint
199 * hint
200 | Htuple of hint list
201 | Happly of id * hint list
202 | Hshape of shape_info
203 | Haccess of id * id * id list
204 | Hsoft of hint
205 and shape_info =
207 si_allows_unknown_fields: bool ;
208 si_shape_field_list: shape_field list }
209 and shape_field =
211 sf_optional: bool ;
212 sf_name: shape_field_name ;
213 sf_hint: hint }
214 and using_stmt =
216 us_is_block_scoped: bool ;
217 us_has_await: bool ;
218 us_expr: expr ;
219 us_block: block }
220 and stmt = (pos * stmt_)
221 and stmt_ =
222 | Unsafe
223 | Fallthrough
224 | Expr of expr
225 | Block of block
226 | Break of expr option
227 | Continue of expr option
228 | Throw of expr
229 | Return of expr option
230 | GotoLabel of pstring
231 | Goto of pstring
232 | Static_var of expr list
233 | Global_var of expr list
234 | If of expr * block * block
235 | Do of block * expr
236 | While of expr * block
237 | For of expr * expr * expr * block
238 | Switch of expr * case list
239 | Foreach of expr * pos option * as_expr * block
240 | Try of block * catch list * block
241 | Def_inline of def
242 | Noop
243 | Markup of pstring * expr option
244 | Using of using_stmt
245 | Declare of bool * expr * block
246 and as_expr =
247 | As_v of expr
248 | As_kv of expr * expr
249 and xhp_attribute =
250 | Xhp_simple of id * expr
251 | Xhp_spread of expr
252 and block = stmt list
253 and expr = (pos * expr_)
254 and expr_ =
255 | Array of afield list
256 | Varray of expr list
257 | Darray of (expr * expr) list
258 | Shape of (shape_field_name * expr) list
259 | Collection of id * afield list
260 | Null
261 | True
262 | False
263 | Omitted
264 | Id of id
265 | Id_type_arguments of id * hint list
266 | Lvar of id
267 | Dollar of expr
268 | Clone of expr
269 | Obj_get of expr * expr * og_null_flavor
270 | Array_get of expr * expr option
271 | Class_get of expr * expr
272 | Class_const of expr * pstring
273 | Call of expr * hint list * expr list * expr list
274 | Int of pstring
275 | Float of pstring
276 | String of pstring
277 | String2 of expr list
278 | Yield of afield
279 | Yield_break
280 | Yield_from of expr
281 | Await of expr
282 | Suspend of expr
283 | List of expr list
284 | Expr_list of expr list
285 | Cast of hint * expr
286 | Unop of uop * expr
287 | Binop of bop * expr * expr
288 | Pipe of expr * expr
289 | Eif of expr * expr option * expr
290 | NullCoalesce of expr * expr
291 | InstanceOf of expr * expr
292 | Is of expr * hint
293 | BracedExpr of expr
294 | ParenthesizedExpr of expr
295 | New of expr * expr list * expr list
296 | NewAnonClass of expr list * expr list * class_
297 | Efun of fun_ * (id * bool) list
298 | Lfun of fun_
299 | Xml of id * xhp_attribute list * expr list
300 | Unsafeexpr of expr
301 | Import of import_flavor * expr
302 | Callconv of param_kind * expr
303 | Execution_operator of expr list
304 and import_flavor =
305 | Include
306 | Require
307 | IncludeOnce
308 | RequireOnce
309 and afield =
310 | AFvalue of expr
311 | AFkvalue of expr * expr [@@ocaml.doc
312 " \"array\" field. Fields of array, map, dict, and shape literals. "]
313 and case =
314 | Default of block
315 | Case of expr * block
316 and catch = (id * id * block)
317 and field = (expr * expr)
318 and attr = (id * expr)
319 let rec pp_program : Format.formatter -> program -> Ppx_deriving_runtime.unit
321 let __0 () = pp_def in
322 ((let open! Ppx_deriving_runtime in
323 fun fmt ->
324 fun x ->
325 Format.fprintf fmt "@[<2>[";
326 ignore
327 (List.fold_left
328 (fun sep ->
329 fun x ->
330 if sep then Format.fprintf fmt ";@ ";
331 ((__0 ()) fmt) x;
332 true) false x);
333 Format.fprintf fmt "@,]@]")
334 [@ocaml.warning "-A"])
336 and show_program : program -> Ppx_deriving_runtime.string =
337 fun x -> Format.asprintf "%a" pp_program x
339 and (pp_nsenv : Format.formatter -> nsenv -> Ppx_deriving_runtime.unit) =
340 ((let open! Ppx_deriving_runtime in
341 fun fmt -> fun _ -> Format.pp_print_string fmt "<opaque>")
342 [@ocaml.warning "-A"])
344 and show_nsenv : nsenv -> Ppx_deriving_runtime.string =
345 fun x -> Format.asprintf "%a" pp_nsenv x
347 and pp_fimode : Format.formatter -> fimode -> Ppx_deriving_runtime.unit =
348 let __0 () = FileInfo.pp_mode in
349 ((let open! Ppx_deriving_runtime in fun fmt -> (__0 ()) fmt)
350 [@ocaml.warning "-A"])
352 and show_fimode : fimode -> Ppx_deriving_runtime.string =
353 fun x -> Format.asprintf "%a" pp_fimode x
355 and pp_def : Format.formatter -> def -> Ppx_deriving_runtime.unit =
356 let __10 () = pp_nsenv
358 and __9 () = pp_id
360 and __8 () = pp_id
362 and __7 () = pp_ns_kind
364 and __6 () = pp_program
366 and __5 () = pp_id
368 and __4 () = pp_gconst
370 and __3 () = pp_typedef
372 and __2 () = pp_stmt
374 and __1 () = pp_class_
376 and __0 () = pp_fun_
378 ((let open! Ppx_deriving_runtime in
379 fun fmt ->
380 function
381 | Fun a0 ->
382 (Format.fprintf fmt "(@[<2>Fun@ ";
383 ((__0 ()) fmt) a0;
384 Format.fprintf fmt "@])")
385 | Class a0 ->
386 (Format.fprintf fmt "(@[<2>Class@ ";
387 ((__1 ()) fmt) a0;
388 Format.fprintf fmt "@])")
389 | Stmt a0 ->
390 (Format.fprintf fmt "(@[<2>Stmt@ ";
391 ((__2 ()) fmt) a0;
392 Format.fprintf fmt "@])")
393 | Typedef a0 ->
394 (Format.fprintf fmt "(@[<2>Typedef@ ";
395 ((__3 ()) fmt) a0;
396 Format.fprintf fmt "@])")
397 | Constant a0 ->
398 (Format.fprintf fmt "(@[<2>Constant@ ";
399 ((__4 ()) fmt) a0;
400 Format.fprintf fmt "@])")
401 | Namespace (a0,a1) ->
402 (Format.fprintf fmt "(@[<2>Namespace (@,";
403 (((__5 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__6 ()) fmt) a1);
404 Format.fprintf fmt "@,))@]")
405 | NamespaceUse a0 ->
406 (Format.fprintf fmt "(@[<2>NamespaceUse@ ";
407 ((fun x ->
408 Format.fprintf fmt "@[<2>[";
409 ignore
410 (List.fold_left
411 (fun sep ->
412 fun x ->
413 if sep then Format.fprintf fmt ";@ ";
414 ((fun (a0,a1,a2) ->
415 Format.fprintf fmt "(@[";
416 ((((__7 ()) fmt) a0;
417 Format.fprintf fmt ",@ ";
418 ((__8 ()) fmt) a1);
419 Format.fprintf fmt ",@ ";
420 ((__9 ()) fmt) a2);
421 Format.fprintf fmt "@])")) x;
422 true) false x);
423 Format.fprintf fmt "@,]@]")) a0;
424 Format.fprintf fmt "@])")
425 | SetNamespaceEnv a0 ->
426 (Format.fprintf fmt "(@[<2>SetNamespaceEnv@ ";
427 ((__10 ()) fmt) a0;
428 Format.fprintf fmt "@])"))
429 [@ocaml.warning "-A"])
431 and show_def : def -> Ppx_deriving_runtime.string =
432 fun x -> Format.asprintf "%a" pp_def x
434 and pp_typedef : Format.formatter -> typedef -> Ppx_deriving_runtime.unit =
435 let __6 () = pp_fimode
437 and __5 () = pp_nsenv
439 and __4 () = pp_user_attribute
441 and __3 () = pp_typedef_kind
443 and __2 () = pp_tconstraint
445 and __1 () = pp_tparam
447 and __0 () = pp_id
449 ((let open! Ppx_deriving_runtime in
450 fun fmt ->
451 fun x ->
452 Format.fprintf fmt "@[<2>{ ";
453 (((((((Format.fprintf fmt "@[%s =@ " "t_id";
454 ((__0 ()) fmt) x.t_id;
455 Format.fprintf fmt "@]");
456 Format.fprintf fmt ";@ ";
457 Format.fprintf fmt "@[%s =@ " "t_tparams";
458 ((fun x ->
459 Format.fprintf fmt "@[<2>[";
460 ignore
461 (List.fold_left
462 (fun sep ->
463 fun x ->
464 if sep then Format.fprintf fmt ";@ ";
465 ((__1 ()) fmt) x;
466 true) false x);
467 Format.fprintf fmt "@,]@]")) x.t_tparams;
468 Format.fprintf fmt "@]");
469 Format.fprintf fmt ";@ ";
470 Format.fprintf fmt "@[%s =@ " "t_constraint";
471 ((__2 ()) fmt) x.t_constraint;
472 Format.fprintf fmt "@]");
473 Format.fprintf fmt ";@ ";
474 Format.fprintf fmt "@[%s =@ " "t_kind";
475 ((__3 ()) fmt) x.t_kind;
476 Format.fprintf fmt "@]");
477 Format.fprintf fmt ";@ ";
478 Format.fprintf fmt "@[%s =@ " "t_user_attributes";
479 ((fun x ->
480 Format.fprintf fmt "@[<2>[";
481 ignore
482 (List.fold_left
483 (fun sep ->
484 fun x ->
485 if sep then Format.fprintf fmt ";@ ";
486 ((__4 ()) fmt) x;
487 true) false x);
488 Format.fprintf fmt "@,]@]")) x.t_user_attributes;
489 Format.fprintf fmt "@]");
490 Format.fprintf fmt ";@ ";
491 Format.fprintf fmt "@[%s =@ " "t_namespace";
492 ((__5 ()) fmt) x.t_namespace;
493 Format.fprintf fmt "@]");
494 Format.fprintf fmt ";@ ";
495 Format.fprintf fmt "@[%s =@ " "t_mode";
496 ((__6 ()) fmt) x.t_mode;
497 Format.fprintf fmt "@]");
498 Format.fprintf fmt "@ }@]")
499 [@ocaml.warning "-A"])
501 and show_typedef : typedef -> Ppx_deriving_runtime.string =
502 fun x -> Format.asprintf "%a" pp_typedef x
504 and pp_gconst : Format.formatter -> gconst -> Ppx_deriving_runtime.unit =
505 let __6 () = pp_pos
507 and __5 () = pp_nsenv
509 and __4 () = pp_expr
511 and __3 () = pp_hint
513 and __2 () = pp_id
515 and __1 () = pp_cst_kind
517 and __0 () = pp_fimode
519 ((let open! Ppx_deriving_runtime in
520 fun fmt ->
521 fun x ->
522 Format.fprintf fmt "@[<2>{ ";
523 (((((((Format.fprintf fmt "@[%s =@ " "cst_mode";
524 ((__0 ()) fmt) x.cst_mode;
525 Format.fprintf fmt "@]");
526 Format.fprintf fmt ";@ ";
527 Format.fprintf fmt "@[%s =@ " "cst_kind";
528 ((__1 ()) fmt) x.cst_kind;
529 Format.fprintf fmt "@]");
530 Format.fprintf fmt ";@ ";
531 Format.fprintf fmt "@[%s =@ " "cst_name";
532 ((__2 ()) fmt) x.cst_name;
533 Format.fprintf fmt "@]");
534 Format.fprintf fmt ";@ ";
535 Format.fprintf fmt "@[%s =@ " "cst_type";
536 ((function
537 | None -> Format.pp_print_string fmt "None"
538 | Some x ->
539 (Format.pp_print_string fmt "(Some ";
540 ((__3 ()) fmt) x;
541 Format.pp_print_string fmt ")"))) x.cst_type;
542 Format.fprintf fmt "@]");
543 Format.fprintf fmt ";@ ";
544 Format.fprintf fmt "@[%s =@ " "cst_value";
545 ((__4 ()) fmt) x.cst_value;
546 Format.fprintf fmt "@]");
547 Format.fprintf fmt ";@ ";
548 Format.fprintf fmt "@[%s =@ " "cst_namespace";
549 ((__5 ()) fmt) x.cst_namespace;
550 Format.fprintf fmt "@]");
551 Format.fprintf fmt ";@ ";
552 Format.fprintf fmt "@[%s =@ " "cst_span";
553 ((__6 ()) fmt) x.cst_span;
554 Format.fprintf fmt "@]");
555 Format.fprintf fmt "@ }@]")
556 [@ocaml.warning "-A"])
558 and show_gconst : gconst -> Ppx_deriving_runtime.string =
559 fun x -> Format.asprintf "%a" pp_gconst x
561 and pp_tparam : Format.formatter -> tparam -> Ppx_deriving_runtime.unit =
562 let __3 () = pp_hint
564 and __2 () = pp_constraint_kind
566 and __1 () = pp_id
568 and __0 () = pp_variance
570 ((let open! Ppx_deriving_runtime in
571 fun fmt ->
572 fun (a0,a1,a2) ->
573 Format.fprintf fmt "(@[";
574 ((((__0 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__1 ()) fmt) a1);
575 Format.fprintf fmt ",@ ";
576 ((fun x ->
577 Format.fprintf fmt "@[<2>[";
578 ignore
579 (List.fold_left
580 (fun sep ->
581 fun x ->
582 if sep then Format.fprintf fmt ";@ ";
583 ((fun (a0,a1) ->
584 Format.fprintf fmt "(@[";
585 (((__2 ()) fmt) a0;
586 Format.fprintf fmt ",@ ";
587 ((__3 ()) fmt) a1);
588 Format.fprintf fmt "@])")) x;
589 true) false x);
590 Format.fprintf fmt "@,]@]")) a2);
591 Format.fprintf fmt "@])")
592 [@ocaml.warning "-A"])
594 and show_tparam : tparam -> Ppx_deriving_runtime.string =
595 fun x -> Format.asprintf "%a" pp_tparam x
597 and pp_tconstraint :
598 Format.formatter -> tconstraint -> Ppx_deriving_runtime.unit =
599 let __0 () = pp_hint in
600 ((let open! Ppx_deriving_runtime in
601 fun fmt ->
602 function
603 | None -> Format.pp_print_string fmt "None"
604 | Some x ->
605 (Format.pp_print_string fmt "(Some ";
606 ((__0 ()) fmt) x;
607 Format.pp_print_string fmt ")"))
608 [@ocaml.warning "-A"])
610 and show_tconstraint : tconstraint -> Ppx_deriving_runtime.string =
611 fun x -> Format.asprintf "%a" pp_tconstraint x
613 and pp_typedef_kind :
614 Format.formatter -> typedef_kind -> Ppx_deriving_runtime.unit =
615 let __1 () = pp_hint
617 and __0 () = pp_hint
619 ((let open! Ppx_deriving_runtime in
620 fun fmt ->
621 function
622 | Alias a0 ->
623 (Format.fprintf fmt "(@[<2>Alias@ ";
624 ((__0 ()) fmt) a0;
625 Format.fprintf fmt "@])")
626 | NewType a0 ->
627 (Format.fprintf fmt "(@[<2>NewType@ ";
628 ((__1 ()) fmt) a0;
629 Format.fprintf fmt "@])"))
630 [@ocaml.warning "-A"])
632 and show_typedef_kind : typedef_kind -> Ppx_deriving_runtime.string =
633 fun x -> Format.asprintf "%a" pp_typedef_kind x
635 and pp_class_ : Format.formatter -> class_ -> Ppx_deriving_runtime.unit =
636 let __10 () = pp_pos
638 and __9 () = pp_enum_
640 and __8 () = pp_nsenv
642 and __7 () = pp_class_elt
644 and __6 () = pp_hint
646 and __5 () = pp_hint
648 and __4 () = pp_tparam
650 and __3 () = pp_id
652 and __2 () = pp_class_kind
654 and __1 () = pp_user_attribute
656 and __0 () = pp_fimode
658 ((let open! Ppx_deriving_runtime in
659 fun fmt ->
660 fun x ->
661 Format.fprintf fmt "@[<2>{ ";
662 ((((((((((((((Format.fprintf fmt "@[%s =@ " "c_mode";
663 ((__0 ()) fmt) x.c_mode;
664 Format.fprintf fmt "@]");
665 Format.fprintf fmt ";@ ";
666 Format.fprintf fmt "@[%s =@ " "c_user_attributes";
667 ((fun x ->
668 Format.fprintf fmt "@[<2>[";
669 ignore
670 (List.fold_left
671 (fun sep ->
672 fun x ->
673 if sep then Format.fprintf fmt ";@ ";
674 ((__1 ()) fmt) x;
675 true) false x);
676 Format.fprintf fmt "@,]@]")) x.c_user_attributes;
677 Format.fprintf fmt "@]");
678 Format.fprintf fmt ";@ ";
679 Format.fprintf fmt "@[%s =@ " "c_final";
680 (Format.fprintf fmt "%B") x.c_final;
681 Format.fprintf fmt "@]");
682 Format.fprintf fmt ";@ ";
683 Format.fprintf fmt "@[%s =@ " "c_kind";
684 ((__2 ()) fmt) x.c_kind;
685 Format.fprintf fmt "@]");
686 Format.fprintf fmt ";@ ";
687 Format.fprintf fmt "@[%s =@ " "c_is_xhp";
688 (Format.fprintf fmt "%B") x.c_is_xhp;
689 Format.fprintf fmt "@]");
690 Format.fprintf fmt ";@ ";
691 Format.fprintf fmt "@[%s =@ " "c_name";
692 ((__3 ()) fmt) x.c_name;
693 Format.fprintf fmt "@]");
694 Format.fprintf fmt ";@ ";
695 Format.fprintf fmt "@[%s =@ " "c_tparams";
696 ((fun x ->
697 Format.fprintf fmt "@[<2>[";
698 ignore
699 (List.fold_left
700 (fun sep ->
701 fun x ->
702 if sep then Format.fprintf fmt ";@ ";
703 ((__4 ()) fmt) x;
704 true) false x);
705 Format.fprintf fmt "@,]@]")) x.c_tparams;
706 Format.fprintf fmt "@]");
707 Format.fprintf fmt ";@ ";
708 Format.fprintf fmt "@[%s =@ " "c_extends";
709 ((fun x ->
710 Format.fprintf fmt "@[<2>[";
711 ignore
712 (List.fold_left
713 (fun sep ->
714 fun x ->
715 if sep then Format.fprintf fmt ";@ ";
716 ((__5 ()) fmt) x;
717 true) false x);
718 Format.fprintf fmt "@,]@]")) x.c_extends;
719 Format.fprintf fmt "@]");
720 Format.fprintf fmt ";@ ";
721 Format.fprintf fmt "@[%s =@ " "c_implements";
722 ((fun x ->
723 Format.fprintf fmt "@[<2>[";
724 ignore
725 (List.fold_left
726 (fun sep ->
727 fun x ->
728 if sep then Format.fprintf fmt ";@ ";
729 ((__6 ()) fmt) x;
730 true) false x);
731 Format.fprintf fmt "@,]@]")) x.c_implements;
732 Format.fprintf fmt "@]");
733 Format.fprintf fmt ";@ ";
734 Format.fprintf fmt "@[%s =@ " "c_body";
735 ((fun x ->
736 Format.fprintf fmt "@[<2>[";
737 ignore
738 (List.fold_left
739 (fun sep ->
740 fun x ->
741 if sep then Format.fprintf fmt ";@ ";
742 ((__7 ()) fmt) x;
743 true) false x);
744 Format.fprintf fmt "@,]@]")) x.c_body;
745 Format.fprintf fmt "@]");
746 Format.fprintf fmt ";@ ";
747 Format.fprintf fmt "@[%s =@ " "c_namespace";
748 ((__8 ()) fmt) x.c_namespace;
749 Format.fprintf fmt "@]");
750 Format.fprintf fmt ";@ ";
751 Format.fprintf fmt "@[%s =@ " "c_enum";
752 ((function
753 | None -> Format.pp_print_string fmt "None"
754 | Some x ->
755 (Format.pp_print_string fmt "(Some ";
756 ((__9 ()) fmt) x;
757 Format.pp_print_string fmt ")"))) x.c_enum;
758 Format.fprintf fmt "@]");
759 Format.fprintf fmt ";@ ";
760 Format.fprintf fmt "@[%s =@ " "c_span";
761 ((__10 ()) fmt) x.c_span;
762 Format.fprintf fmt "@]");
763 Format.fprintf fmt ";@ ";
764 Format.fprintf fmt "@[%s =@ " "c_doc_comment";
765 ((function
766 | None -> Format.pp_print_string fmt "None"
767 | Some x ->
768 (Format.pp_print_string fmt "(Some ";
769 (Format.fprintf fmt "%S") x;
770 Format.pp_print_string fmt ")"))) x.c_doc_comment;
771 Format.fprintf fmt "@]");
772 Format.fprintf fmt "@ }@]")
773 [@ocaml.warning "-A"])
775 and show_class_ : class_ -> Ppx_deriving_runtime.string =
776 fun x -> Format.asprintf "%a" pp_class_ x
778 and pp_enum_ : Format.formatter -> enum_ -> Ppx_deriving_runtime.unit =
779 let __1 () = pp_hint
781 and __0 () = pp_hint
783 ((let open! Ppx_deriving_runtime in
784 fun fmt ->
785 fun x ->
786 Format.fprintf fmt "@[<2>{ ";
787 ((Format.fprintf fmt "@[%s =@ " "e_base";
788 ((__0 ()) fmt) x.e_base;
789 Format.fprintf fmt "@]");
790 Format.fprintf fmt ";@ ";
791 Format.fprintf fmt "@[%s =@ " "e_constraint";
792 ((function
793 | None -> Format.pp_print_string fmt "None"
794 | Some x ->
795 (Format.pp_print_string fmt "(Some ";
796 ((__1 ()) fmt) x;
797 Format.pp_print_string fmt ")"))) x.e_constraint;
798 Format.fprintf fmt "@]");
799 Format.fprintf fmt "@ }@]")
800 [@ocaml.warning "-A"])
802 and show_enum_ : enum_ -> Ppx_deriving_runtime.string =
803 fun x -> Format.asprintf "%a" pp_enum_ x
805 and pp_user_attribute :
806 Format.formatter -> user_attribute -> Ppx_deriving_runtime.unit =
807 let __1 () = pp_expr
809 and __0 () = pp_id
811 ((let open! Ppx_deriving_runtime in
812 fun fmt ->
813 fun x ->
814 Format.fprintf fmt "@[<2>{ ";
815 ((Format.fprintf fmt "@[%s =@ " "ua_name";
816 ((__0 ()) fmt) x.ua_name;
817 Format.fprintf fmt "@]");
818 Format.fprintf fmt ";@ ";
819 Format.fprintf fmt "@[%s =@ " "ua_params";
820 ((fun x ->
821 Format.fprintf fmt "@[<2>[";
822 ignore
823 (List.fold_left
824 (fun sep ->
825 fun x ->
826 if sep then Format.fprintf fmt ";@ ";
827 ((__1 ()) fmt) x;
828 true) false x);
829 Format.fprintf fmt "@,]@]")) x.ua_params;
830 Format.fprintf fmt "@]");
831 Format.fprintf fmt "@ }@]")
832 [@ocaml.warning "-A"])
834 and show_user_attribute : user_attribute -> Ppx_deriving_runtime.string =
835 fun x -> Format.asprintf "%a" pp_user_attribute x
837 and pp_class_elt : Format.formatter -> class_elt -> Ppx_deriving_runtime.unit
839 let __25 () = pp_xhp_child
841 and __24 () = pp_pstring
843 and __23 () = pp_method_
845 and __22 () = pp_expr
847 and __21 () = pp_pos
849 and __20 () = pp_class_var
851 and __19 () = pp_hint
853 and __18 () = pp_class_vars_
855 and __17 () = pp_hint
857 and __16 () = pp_trait_req_kind
859 and __15 () = pp_hint
861 and __14 () = pp_id
863 and __13 () = pp_pstring
865 and __12 () = pp_id
867 and __11 () = pp_kind
869 and __10 () = pp_id
871 and __9 () = pp_pstring
873 and __8 () = pp_id
875 and __7 () = pp_hint
877 and __6 () = pp_typeconst
879 and __5 () = pp_class_attr
881 and __4 () = pp_id
883 and __3 () = pp_hint
885 and __2 () = pp_expr
887 and __1 () = pp_id
889 and __0 () = pp_hint
891 ((let open! Ppx_deriving_runtime in
892 fun fmt ->
893 function
894 | Const (a0,a1) ->
895 (Format.fprintf fmt "(@[<2>Const (@,";
896 (((function
897 | None -> Format.pp_print_string fmt "None"
898 | Some x ->
899 (Format.pp_print_string fmt "(Some ";
900 ((__0 ()) fmt) x;
901 Format.pp_print_string fmt ")"))) a0;
902 Format.fprintf fmt ",@ ";
903 ((fun x ->
904 Format.fprintf fmt "@[<2>[";
905 ignore
906 (List.fold_left
907 (fun sep ->
908 fun x ->
909 if sep then Format.fprintf fmt ";@ ";
910 ((fun (a0,a1) ->
911 Format.fprintf fmt "(@[";
912 (((__1 ()) fmt) a0;
913 Format.fprintf fmt ",@ ";
914 ((__2 ()) fmt) a1);
915 Format.fprintf fmt "@])")) x;
916 true) false x);
917 Format.fprintf fmt "@,]@]")) a1);
918 Format.fprintf fmt "@,))@]")
919 | AbsConst (a0,a1) ->
920 (Format.fprintf fmt "(@[<2>AbsConst (@,";
921 (((function
922 | None -> Format.pp_print_string fmt "None"
923 | Some x ->
924 (Format.pp_print_string fmt "(Some ";
925 ((__3 ()) fmt) x;
926 Format.pp_print_string fmt ")"))) a0;
927 Format.fprintf fmt ",@ ";
928 ((__4 ()) fmt) a1);
929 Format.fprintf fmt "@,))@]")
930 | Attributes a0 ->
931 (Format.fprintf fmt "(@[<2>Attributes@ ";
932 ((fun x ->
933 Format.fprintf fmt "@[<2>[";
934 ignore
935 (List.fold_left
936 (fun sep ->
937 fun x ->
938 if sep then Format.fprintf fmt ";@ ";
939 ((__5 ()) fmt) x;
940 true) false x);
941 Format.fprintf fmt "@,]@]")) a0;
942 Format.fprintf fmt "@])")
943 | TypeConst a0 ->
944 (Format.fprintf fmt "(@[<2>TypeConst@ ";
945 ((__6 ()) fmt) a0;
946 Format.fprintf fmt "@])")
947 | ClassUse a0 ->
948 (Format.fprintf fmt "(@[<2>ClassUse@ ";
949 ((__7 ()) fmt) a0;
950 Format.fprintf fmt "@])")
951 | ClassUseAlias (a0,a1,a2,a3) ->
952 (Format.fprintf fmt "(@[<2>ClassUseAlias (@,";
953 (((((function
954 | None -> Format.pp_print_string fmt "None"
955 | Some x ->
956 (Format.pp_print_string fmt "(Some ";
957 ((__8 ()) fmt) x;
958 Format.pp_print_string fmt ")"))) a0;
959 Format.fprintf fmt ",@ ";
960 ((__9 ()) fmt) a1);
961 Format.fprintf fmt ",@ ";
962 ((function
963 | None -> Format.pp_print_string fmt "None"
964 | Some x ->
965 (Format.pp_print_string fmt "(Some ";
966 ((__10 ()) fmt) x;
967 Format.pp_print_string fmt ")"))) a2);
968 Format.fprintf fmt ",@ ";
969 ((fun x ->
970 Format.fprintf fmt "@[<2>[";
971 ignore
972 (List.fold_left
973 (fun sep ->
974 fun x ->
975 if sep then Format.fprintf fmt ";@ ";
976 ((__11 ()) fmt) x;
977 true) false x);
978 Format.fprintf fmt "@,]@]")) a3);
979 Format.fprintf fmt "@,))@]")
980 | ClassUsePrecedence (a0,a1,a2) ->
981 (Format.fprintf fmt "(@[<2>ClassUsePrecedence (@,";
982 ((((__12 ()) fmt) a0;
983 Format.fprintf fmt ",@ ";
984 ((__13 ()) fmt) a1);
985 Format.fprintf fmt ",@ ";
986 ((fun x ->
987 Format.fprintf fmt "@[<2>[";
988 ignore
989 (List.fold_left
990 (fun sep ->
991 fun x ->
992 if sep then Format.fprintf fmt ";@ ";
993 ((__14 ()) fmt) x;
994 true) false x);
995 Format.fprintf fmt "@,]@]")) a2);
996 Format.fprintf fmt "@,))@]")
997 | XhpAttrUse a0 ->
998 (Format.fprintf fmt "(@[<2>XhpAttrUse@ ";
999 ((__15 ()) fmt) a0;
1000 Format.fprintf fmt "@])")
1001 | ClassTraitRequire (a0,a1) ->
1002 (Format.fprintf fmt "(@[<2>ClassTraitRequire (@,";
1003 (((__16 ()) fmt) a0;
1004 Format.fprintf fmt ",@ ";
1005 ((__17 ()) fmt) a1);
1006 Format.fprintf fmt "@,))@]")
1007 | ClassVars a0 ->
1008 (Format.fprintf fmt "(@[<2>ClassVars@ ";
1009 ((__18 ()) fmt) a0;
1010 Format.fprintf fmt "@])")
1011 | XhpAttr (a0,a1,a2,a3) ->
1012 (Format.fprintf fmt "(@[<2>XhpAttr (@,";
1013 (((((function
1014 | None -> Format.pp_print_string fmt "None"
1015 | Some x ->
1016 (Format.pp_print_string fmt "(Some ";
1017 ((__19 ()) fmt) x;
1018 Format.pp_print_string fmt ")"))) a0;
1019 Format.fprintf fmt ",@ ";
1020 ((__20 ()) fmt) a1);
1021 Format.fprintf fmt ",@ ";
1022 (Format.fprintf fmt "%B") a2);
1023 Format.fprintf fmt ",@ ";
1024 ((function
1025 | None -> Format.pp_print_string fmt "None"
1026 | Some x ->
1027 (Format.pp_print_string fmt "(Some ";
1028 ((fun (a0,a1,a2) ->
1029 Format.fprintf fmt "(@[";
1030 ((((__21 ()) fmt) a0;
1031 Format.fprintf fmt ",@ ";
1032 (Format.fprintf fmt "%B") a1);
1033 Format.fprintf fmt ",@ ";
1034 ((fun x ->
1035 Format.fprintf fmt "@[<2>[";
1036 ignore
1037 (List.fold_left
1038 (fun sep ->
1039 fun x ->
1040 if sep then Format.fprintf fmt ";@ ";
1041 ((__22 ()) fmt) x;
1042 true) false x);
1043 Format.fprintf fmt "@,]@]")) a2);
1044 Format.fprintf fmt "@])")) x;
1045 Format.pp_print_string fmt ")"))) a3);
1046 Format.fprintf fmt "@,))@]")
1047 | Method a0 ->
1048 (Format.fprintf fmt "(@[<2>Method@ ";
1049 ((__23 ()) fmt) a0;
1050 Format.fprintf fmt "@])")
1051 | XhpCategory a0 ->
1052 (Format.fprintf fmt "(@[<2>XhpCategory@ ";
1053 ((fun x ->
1054 Format.fprintf fmt "@[<2>[";
1055 ignore
1056 (List.fold_left
1057 (fun sep ->
1058 fun x ->
1059 if sep then Format.fprintf fmt ";@ ";
1060 ((__24 ()) fmt) x;
1061 true) false x);
1062 Format.fprintf fmt "@,]@]")) a0;
1063 Format.fprintf fmt "@])")
1064 | XhpChild a0 ->
1065 (Format.fprintf fmt "(@[<2>XhpChild@ ";
1066 ((__25 ()) fmt) a0;
1067 Format.fprintf fmt "@])"))
1068 [@ocaml.warning "-A"])
1070 and show_class_elt : class_elt -> Ppx_deriving_runtime.string =
1071 fun x -> Format.asprintf "%a" pp_class_elt x
1073 and pp_xhp_child : Format.formatter -> xhp_child -> Ppx_deriving_runtime.unit
1075 let __5 () = pp_xhp_child
1077 and __4 () = pp_xhp_child
1079 and __3 () = pp_xhp_child_op
1081 and __2 () = pp_xhp_child
1083 and __1 () = pp_xhp_child
1085 and __0 () = pp_id
1087 ((let open! Ppx_deriving_runtime in
1088 fun fmt ->
1089 function
1090 | ChildName a0 ->
1091 (Format.fprintf fmt "(@[<2>ChildName@ ";
1092 ((__0 ()) fmt) a0;
1093 Format.fprintf fmt "@])")
1094 | ChildList a0 ->
1095 (Format.fprintf fmt "(@[<2>ChildList@ ";
1096 ((fun x ->
1097 Format.fprintf fmt "@[<2>[";
1098 ignore
1099 (List.fold_left
1100 (fun sep ->
1101 fun x ->
1102 if sep then Format.fprintf fmt ";@ ";
1103 ((__1 ()) fmt) x;
1104 true) false x);
1105 Format.fprintf fmt "@,]@]")) a0;
1106 Format.fprintf fmt "@])")
1107 | ChildUnary (a0,a1) ->
1108 (Format.fprintf fmt "(@[<2>ChildUnary (@,";
1109 (((__2 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__3 ()) fmt) a1);
1110 Format.fprintf fmt "@,))@]")
1111 | ChildBinary (a0,a1) ->
1112 (Format.fprintf fmt "(@[<2>ChildBinary (@,";
1113 (((__4 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__5 ()) fmt) a1);
1114 Format.fprintf fmt "@,))@]"))
1115 [@ocaml.warning "-A"])
1117 and show_xhp_child : xhp_child -> Ppx_deriving_runtime.string =
1118 fun x -> Format.asprintf "%a" pp_xhp_child x
1120 and (pp_xhp_child_op :
1121 Format.formatter -> xhp_child_op -> Ppx_deriving_runtime.unit)
1123 ((let open! Ppx_deriving_runtime in
1124 fun fmt ->
1125 function
1126 | ChildStar -> Format.pp_print_string fmt "ChildStar"
1127 | ChildPlus -> Format.pp_print_string fmt "ChildPlus"
1128 | ChildQuestion -> Format.pp_print_string fmt "ChildQuestion")
1129 [@ocaml.warning "-A"])
1131 and show_xhp_child_op : xhp_child_op -> Ppx_deriving_runtime.string =
1132 fun x -> Format.asprintf "%a" pp_xhp_child_op x
1134 and pp_class_attr :
1135 Format.formatter -> class_attr -> Ppx_deriving_runtime.unit =
1136 let __1 () = pp_ca_field
1138 and __0 () = pp_id
1140 ((let open! Ppx_deriving_runtime in
1141 fun fmt ->
1142 function
1143 | CA_name a0 ->
1144 (Format.fprintf fmt "(@[<2>CA_name@ ";
1145 ((__0 ()) fmt) a0;
1146 Format.fprintf fmt "@])")
1147 | CA_field a0 ->
1148 (Format.fprintf fmt "(@[<2>CA_field@ ";
1149 ((__1 ()) fmt) a0;
1150 Format.fprintf fmt "@])"))
1151 [@ocaml.warning "-A"])
1153 and show_class_attr : class_attr -> Ppx_deriving_runtime.string =
1154 fun x -> Format.asprintf "%a" pp_class_attr x
1156 and pp_ca_field : Format.formatter -> ca_field -> Ppx_deriving_runtime.unit =
1157 let __2 () = pp_expr
1159 and __1 () = pp_id
1161 and __0 () = pp_ca_type
1163 ((let open! Ppx_deriving_runtime in
1164 fun fmt ->
1165 fun x ->
1166 Format.fprintf fmt "@[<2>{ ";
1167 ((((Format.fprintf fmt "@[%s =@ " "ca_type";
1168 ((__0 ()) fmt) x.ca_type;
1169 Format.fprintf fmt "@]");
1170 Format.fprintf fmt ";@ ";
1171 Format.fprintf fmt "@[%s =@ " "ca_id";
1172 ((__1 ()) fmt) x.ca_id;
1173 Format.fprintf fmt "@]");
1174 Format.fprintf fmt ";@ ";
1175 Format.fprintf fmt "@[%s =@ " "ca_value";
1176 ((function
1177 | None -> Format.pp_print_string fmt "None"
1178 | Some x ->
1179 (Format.pp_print_string fmt "(Some ";
1180 ((__2 ()) fmt) x;
1181 Format.pp_print_string fmt ")"))) x.ca_value;
1182 Format.fprintf fmt "@]");
1183 Format.fprintf fmt ";@ ";
1184 Format.fprintf fmt "@[%s =@ " "ca_required";
1185 (Format.fprintf fmt "%B") x.ca_required;
1186 Format.fprintf fmt "@]");
1187 Format.fprintf fmt "@ }@]")
1188 [@ocaml.warning "-A"])
1190 and show_ca_field : ca_field -> Ppx_deriving_runtime.string =
1191 fun x -> Format.asprintf "%a" pp_ca_field x
1193 and pp_ca_type : Format.formatter -> ca_type -> Ppx_deriving_runtime.unit =
1194 let __0 () = pp_hint in
1195 ((let open! Ppx_deriving_runtime in
1196 fun fmt ->
1197 function
1198 | CA_hint a0 ->
1199 (Format.fprintf fmt "(@[<2>CA_hint@ ";
1200 ((__0 ()) fmt) a0;
1201 Format.fprintf fmt "@])")
1202 | CA_enum a0 ->
1203 (Format.fprintf fmt "(@[<2>CA_enum@ ";
1204 ((fun x ->
1205 Format.fprintf fmt "@[<2>[";
1206 ignore
1207 (List.fold_left
1208 (fun sep ->
1209 fun x ->
1210 if sep then Format.fprintf fmt ";@ ";
1211 (Format.fprintf fmt "%S") x;
1212 true) false x);
1213 Format.fprintf fmt "@,]@]")) a0;
1214 Format.fprintf fmt "@])"))
1215 [@ocaml.warning "-A"])
1217 and show_ca_type : ca_type -> Ppx_deriving_runtime.string =
1218 fun x -> Format.asprintf "%a" pp_ca_type x
1220 and pp_class_var : Format.formatter -> class_var -> Ppx_deriving_runtime.unit
1222 let __2 () = pp_expr
1224 and __1 () = pp_id
1226 and __0 () = pp_pos
1228 ((let open! Ppx_deriving_runtime in
1229 fun fmt ->
1230 fun (a0,a1,a2) ->
1231 Format.fprintf fmt "(@[";
1232 ((((__0 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__1 ()) fmt) a1);
1233 Format.fprintf fmt ",@ ";
1234 ((function
1235 | None -> Format.pp_print_string fmt "None"
1236 | Some x ->
1237 (Format.pp_print_string fmt "(Some ";
1238 ((__2 ()) fmt) x;
1239 Format.pp_print_string fmt ")"))) a2);
1240 Format.fprintf fmt "@])")
1241 [@ocaml.warning "-A"])
1243 and show_class_var : class_var -> Ppx_deriving_runtime.string =
1244 fun x -> Format.asprintf "%a" pp_class_var x
1246 and pp_class_vars_ :
1247 Format.formatter -> class_vars_ -> Ppx_deriving_runtime.unit =
1248 let __4 () = pp_user_attribute
1250 and __3 () = pp_class_var
1252 and __2 () = pp_is_variadic
1254 and __1 () = pp_hint
1256 and __0 () = pp_kind
1258 ((let open! Ppx_deriving_runtime in
1259 fun fmt ->
1260 fun x ->
1261 Format.fprintf fmt "@[<2>{ ";
1262 ((((((Format.fprintf fmt "@[%s =@ " "cv_kinds";
1263 ((fun x ->
1264 Format.fprintf fmt "@[<2>[";
1265 ignore
1266 (List.fold_left
1267 (fun sep ->
1268 fun x ->
1269 if sep then Format.fprintf fmt ";@ ";
1270 ((__0 ()) fmt) x;
1271 true) false x);
1272 Format.fprintf fmt "@,]@]")) x.cv_kinds;
1273 Format.fprintf fmt "@]");
1274 Format.fprintf fmt ";@ ";
1275 Format.fprintf fmt "@[%s =@ " "cv_hint";
1276 ((function
1277 | None -> Format.pp_print_string fmt "None"
1278 | Some x ->
1279 (Format.pp_print_string fmt "(Some ";
1280 ((__1 ()) fmt) x;
1281 Format.pp_print_string fmt ")"))) x.cv_hint;
1282 Format.fprintf fmt "@]");
1283 Format.fprintf fmt ";@ ";
1284 Format.fprintf fmt "@[%s =@ " "cv_is_promoted_variadic";
1285 ((__2 ()) fmt) x.cv_is_promoted_variadic;
1286 Format.fprintf fmt "@]");
1287 Format.fprintf fmt ";@ ";
1288 Format.fprintf fmt "@[%s =@ " "cv_names";
1289 ((fun x ->
1290 Format.fprintf fmt "@[<2>[";
1291 ignore
1292 (List.fold_left
1293 (fun sep ->
1294 fun x ->
1295 if sep then Format.fprintf fmt ";@ ";
1296 ((__3 ()) fmt) x;
1297 true) false x);
1298 Format.fprintf fmt "@,]@]")) x.cv_names;
1299 Format.fprintf fmt "@]");
1300 Format.fprintf fmt ";@ ";
1301 Format.fprintf fmt "@[%s =@ " "cv_doc_comment";
1302 ((function
1303 | None -> Format.pp_print_string fmt "None"
1304 | Some x ->
1305 (Format.pp_print_string fmt "(Some ";
1306 (Format.fprintf fmt "%S") x;
1307 Format.pp_print_string fmt ")"))) x.cv_doc_comment;
1308 Format.fprintf fmt "@]");
1309 Format.fprintf fmt ";@ ";
1310 Format.fprintf fmt "@[%s =@ " "cv_user_attributes";
1311 ((fun x ->
1312 Format.fprintf fmt "@[<2>[";
1313 ignore
1314 (List.fold_left
1315 (fun sep ->
1316 fun x ->
1317 if sep then Format.fprintf fmt ";@ ";
1318 ((__4 ()) fmt) x;
1319 true) false x);
1320 Format.fprintf fmt "@,]@]")) x.cv_user_attributes;
1321 Format.fprintf fmt "@]");
1322 Format.fprintf fmt "@ }@]")
1323 [@ocaml.warning "-A"])
1325 and show_class_vars_ : class_vars_ -> Ppx_deriving_runtime.string =
1326 fun x -> Format.asprintf "%a" pp_class_vars_ x
1328 and pp_method_ : Format.formatter -> method_ -> Ppx_deriving_runtime.unit =
1329 let __11 () = pp_pos
1331 and __10 () = pp_fun_kind
1333 and __9 () = pp_hint
1335 and __8 () = pp_user_attribute
1337 and __7 () = pp_block
1339 and __6 () = pp_fun_param
1341 and __5 () = pp_id
1343 and __4 () = pp_hint
1345 and __3 () = pp_constraint_kind
1347 and __2 () = pp_hint
1349 and __1 () = pp_tparam
1351 and __0 () = pp_kind
1353 ((let open! Ppx_deriving_runtime in
1354 fun fmt ->
1355 fun x ->
1356 Format.fprintf fmt "@[<2>{ ";
1357 ((((((((((((Format.fprintf fmt "@[%s =@ " "m_kind";
1358 ((fun x ->
1359 Format.fprintf fmt "@[<2>[";
1360 ignore
1361 (List.fold_left
1362 (fun sep ->
1363 fun x ->
1364 if sep then Format.fprintf fmt ";@ ";
1365 ((__0 ()) fmt) x;
1366 true) false x);
1367 Format.fprintf fmt "@,]@]")) x.m_kind;
1368 Format.fprintf fmt "@]");
1369 Format.fprintf fmt ";@ ";
1370 Format.fprintf fmt "@[%s =@ " "m_tparams";
1371 ((fun x ->
1372 Format.fprintf fmt "@[<2>[";
1373 ignore
1374 (List.fold_left
1375 (fun sep ->
1376 fun x ->
1377 if sep then Format.fprintf fmt ";@ ";
1378 ((__1 ()) fmt) x;
1379 true) false x);
1380 Format.fprintf fmt "@,]@]")) x.m_tparams;
1381 Format.fprintf fmt "@]");
1382 Format.fprintf fmt ";@ ";
1383 Format.fprintf fmt "@[%s =@ " "m_constrs";
1384 ((fun x ->
1385 Format.fprintf fmt "@[<2>[";
1386 ignore
1387 (List.fold_left
1388 (fun sep ->
1389 fun x ->
1390 if sep then Format.fprintf fmt ";@ ";
1391 ((fun (a0,a1,a2) ->
1392 Format.fprintf fmt "(@[";
1393 ((((__2 ()) fmt) a0;
1394 Format.fprintf fmt ",@ ";
1395 ((__3 ()) fmt) a1);
1396 Format.fprintf fmt ",@ ";
1397 ((__4 ()) fmt) a2);
1398 Format.fprintf fmt "@])")) x;
1399 true) false x);
1400 Format.fprintf fmt "@,]@]")) x.m_constrs;
1401 Format.fprintf fmt "@]");
1402 Format.fprintf fmt ";@ ";
1403 Format.fprintf fmt "@[%s =@ " "m_name";
1404 ((__5 ()) fmt) x.m_name;
1405 Format.fprintf fmt "@]");
1406 Format.fprintf fmt ";@ ";
1407 Format.fprintf fmt "@[%s =@ " "m_params";
1408 ((fun x ->
1409 Format.fprintf fmt "@[<2>[";
1410 ignore
1411 (List.fold_left
1412 (fun sep ->
1413 fun x ->
1414 if sep then Format.fprintf fmt ";@ ";
1415 ((__6 ()) fmt) x;
1416 true) false x);
1417 Format.fprintf fmt "@,]@]")) x.m_params;
1418 Format.fprintf fmt "@]");
1419 Format.fprintf fmt ";@ ";
1420 Format.fprintf fmt "@[%s =@ " "m_body";
1421 ((__7 ()) fmt) x.m_body;
1422 Format.fprintf fmt "@]");
1423 Format.fprintf fmt ";@ ";
1424 Format.fprintf fmt "@[%s =@ " "m_user_attributes";
1425 ((fun x ->
1426 Format.fprintf fmt "@[<2>[";
1427 ignore
1428 (List.fold_left
1429 (fun sep ->
1430 fun x ->
1431 if sep then Format.fprintf fmt ";@ ";
1432 ((__8 ()) fmt) x;
1433 true) false x);
1434 Format.fprintf fmt "@,]@]")) x.m_user_attributes;
1435 Format.fprintf fmt "@]");
1436 Format.fprintf fmt ";@ ";
1437 Format.fprintf fmt "@[%s =@ " "m_ret";
1438 ((function
1439 | None -> Format.pp_print_string fmt "None"
1440 | Some x ->
1441 (Format.pp_print_string fmt "(Some ";
1442 ((__9 ()) fmt) x;
1443 Format.pp_print_string fmt ")"))) x.m_ret;
1444 Format.fprintf fmt "@]");
1445 Format.fprintf fmt ";@ ";
1446 Format.fprintf fmt "@[%s =@ " "m_ret_by_ref";
1447 (Format.fprintf fmt "%B") x.m_ret_by_ref;
1448 Format.fprintf fmt "@]");
1449 Format.fprintf fmt ";@ ";
1450 Format.fprintf fmt "@[%s =@ " "m_fun_kind";
1451 ((__10 ()) fmt) x.m_fun_kind;
1452 Format.fprintf fmt "@]");
1453 Format.fprintf fmt ";@ ";
1454 Format.fprintf fmt "@[%s =@ " "m_span";
1455 ((__11 ()) fmt) x.m_span;
1456 Format.fprintf fmt "@]");
1457 Format.fprintf fmt ";@ ";
1458 Format.fprintf fmt "@[%s =@ " "m_doc_comment";
1459 ((function
1460 | None -> Format.pp_print_string fmt "None"
1461 | Some x ->
1462 (Format.pp_print_string fmt "(Some ";
1463 (Format.fprintf fmt "%S") x;
1464 Format.pp_print_string fmt ")"))) x.m_doc_comment;
1465 Format.fprintf fmt "@]");
1466 Format.fprintf fmt "@ }@]")
1467 [@ocaml.warning "-A"])
1469 and show_method_ : method_ -> Ppx_deriving_runtime.string =
1470 fun x -> Format.asprintf "%a" pp_method_ x
1472 and pp_typeconst : Format.formatter -> typeconst -> Ppx_deriving_runtime.unit
1474 let __4 () = pp_pos
1476 and __3 () = pp_hint
1478 and __2 () = pp_hint
1480 and __1 () = pp_tparam
1482 and __0 () = pp_id
1484 ((let open! Ppx_deriving_runtime in
1485 fun fmt ->
1486 fun x ->
1487 Format.fprintf fmt "@[<2>{ ";
1488 ((((((Format.fprintf fmt "@[%s =@ " "tconst_abstract";
1489 (Format.fprintf fmt "%B") x.tconst_abstract;
1490 Format.fprintf fmt "@]");
1491 Format.fprintf fmt ";@ ";
1492 Format.fprintf fmt "@[%s =@ " "tconst_name";
1493 ((__0 ()) fmt) x.tconst_name;
1494 Format.fprintf fmt "@]");
1495 Format.fprintf fmt ";@ ";
1496 Format.fprintf fmt "@[%s =@ " "tconst_tparams";
1497 ((fun x ->
1498 Format.fprintf fmt "@[<2>[";
1499 ignore
1500 (List.fold_left
1501 (fun sep ->
1502 fun x ->
1503 if sep then Format.fprintf fmt ";@ ";
1504 ((__1 ()) fmt) x;
1505 true) false x);
1506 Format.fprintf fmt "@,]@]")) x.tconst_tparams;
1507 Format.fprintf fmt "@]");
1508 Format.fprintf fmt ";@ ";
1509 Format.fprintf fmt "@[%s =@ " "tconst_constraint";
1510 ((function
1511 | None -> Format.pp_print_string fmt "None"
1512 | Some x ->
1513 (Format.pp_print_string fmt "(Some ";
1514 ((__2 ()) fmt) x;
1515 Format.pp_print_string fmt ")"))) x.tconst_constraint;
1516 Format.fprintf fmt "@]");
1517 Format.fprintf fmt ";@ ";
1518 Format.fprintf fmt "@[%s =@ " "tconst_type";
1519 ((function
1520 | None -> Format.pp_print_string fmt "None"
1521 | Some x ->
1522 (Format.pp_print_string fmt "(Some ";
1523 ((__3 ()) fmt) x;
1524 Format.pp_print_string fmt ")"))) x.tconst_type;
1525 Format.fprintf fmt "@]");
1526 Format.fprintf fmt ";@ ";
1527 Format.fprintf fmt "@[%s =@ " "tconst_span";
1528 ((__4 ()) fmt) x.tconst_span;
1529 Format.fprintf fmt "@]");
1530 Format.fprintf fmt "@ }@]")
1531 [@ocaml.warning "-A"])
1533 and show_typeconst : typeconst -> Ppx_deriving_runtime.string =
1534 fun x -> Format.asprintf "%a" pp_typeconst x
1536 and (pp_is_reference :
1537 Format.formatter -> is_reference -> Ppx_deriving_runtime.unit)
1538 = ((let open! Ppx_deriving_runtime in fun fmt -> Format.fprintf fmt "%B")
1539 [@ocaml.warning "-A"])
1541 and show_is_reference : is_reference -> Ppx_deriving_runtime.string =
1542 fun x -> Format.asprintf "%a" pp_is_reference x
1544 and (pp_is_variadic :
1545 Format.formatter -> is_variadic -> Ppx_deriving_runtime.unit)
1546 = ((let open! Ppx_deriving_runtime in fun fmt -> Format.fprintf fmt "%B")
1547 [@ocaml.warning "-A"])
1549 and show_is_variadic : is_variadic -> Ppx_deriving_runtime.string =
1550 fun x -> Format.asprintf "%a" pp_is_variadic x
1552 and pp_fun_param : Format.formatter -> fun_param -> Ppx_deriving_runtime.unit
1554 let __7 () = pp_user_attribute
1556 and __6 () = pp_param_kind
1558 and __5 () = pp_kind
1560 and __4 () = pp_expr
1562 and __3 () = pp_id
1564 and __2 () = pp_is_variadic
1566 and __1 () = pp_is_reference
1568 and __0 () = pp_hint
1570 ((let open! Ppx_deriving_runtime in
1571 fun fmt ->
1572 fun x ->
1573 Format.fprintf fmt "@[<2>{ ";
1574 ((((((((Format.fprintf fmt "@[%s =@ " "param_hint";
1575 ((function
1576 | None -> Format.pp_print_string fmt "None"
1577 | Some x ->
1578 (Format.pp_print_string fmt "(Some ";
1579 ((__0 ()) fmt) x;
1580 Format.pp_print_string fmt ")"))) x.param_hint;
1581 Format.fprintf fmt "@]");
1582 Format.fprintf fmt ";@ ";
1583 Format.fprintf fmt "@[%s =@ " "param_is_reference";
1584 ((__1 ()) fmt) x.param_is_reference;
1585 Format.fprintf fmt "@]");
1586 Format.fprintf fmt ";@ ";
1587 Format.fprintf fmt "@[%s =@ " "param_is_variadic";
1588 ((__2 ()) fmt) x.param_is_variadic;
1589 Format.fprintf fmt "@]");
1590 Format.fprintf fmt ";@ ";
1591 Format.fprintf fmt "@[%s =@ " "param_id";
1592 ((__3 ()) fmt) x.param_id;
1593 Format.fprintf fmt "@]");
1594 Format.fprintf fmt ";@ ";
1595 Format.fprintf fmt "@[%s =@ " "param_expr";
1596 ((function
1597 | None -> Format.pp_print_string fmt "None"
1598 | Some x ->
1599 (Format.pp_print_string fmt "(Some ";
1600 ((__4 ()) fmt) x;
1601 Format.pp_print_string fmt ")"))) x.param_expr;
1602 Format.fprintf fmt "@]");
1603 Format.fprintf fmt ";@ ";
1604 Format.fprintf fmt "@[%s =@ " "param_modifier";
1605 ((function
1606 | None -> Format.pp_print_string fmt "None"
1607 | Some x ->
1608 (Format.pp_print_string fmt "(Some ";
1609 ((__5 ()) fmt) x;
1610 Format.pp_print_string fmt ")"))) x.param_modifier;
1611 Format.fprintf fmt "@]");
1612 Format.fprintf fmt ";@ ";
1613 Format.fprintf fmt "@[%s =@ " "param_callconv";
1614 ((function
1615 | None -> Format.pp_print_string fmt "None"
1616 | Some x ->
1617 (Format.pp_print_string fmt "(Some ";
1618 ((__6 ()) fmt) x;
1619 Format.pp_print_string fmt ")"))) x.param_callconv;
1620 Format.fprintf fmt "@]");
1621 Format.fprintf fmt ";@ ";
1622 Format.fprintf fmt "@[%s =@ " "param_user_attributes";
1623 ((fun x ->
1624 Format.fprintf fmt "@[<2>[";
1625 ignore
1626 (List.fold_left
1627 (fun sep ->
1628 fun x ->
1629 if sep then Format.fprintf fmt ";@ ";
1630 ((__7 ()) fmt) x;
1631 true) false x);
1632 Format.fprintf fmt "@,]@]")) x.param_user_attributes;
1633 Format.fprintf fmt "@]");
1634 Format.fprintf fmt "@ }@]")
1635 [@ocaml.warning "-A"])
1637 and show_fun_param : fun_param -> Ppx_deriving_runtime.string =
1638 fun x -> Format.asprintf "%a" pp_fun_param x
1640 and pp_fun_ : Format.formatter -> fun_ -> Ppx_deriving_runtime.unit =
1641 let __12 () = pp_pos
1643 and __11 () = pp_nsenv
1645 and __10 () = pp_fun_kind
1647 and __9 () = pp_user_attribute
1649 and __8 () = pp_block
1651 and __7 () = pp_fun_param
1653 and __6 () = pp_id
1655 and __5 () = pp_hint
1657 and __4 () = pp_hint
1659 and __3 () = pp_constraint_kind
1661 and __2 () = pp_hint
1663 and __1 () = pp_tparam
1665 and __0 () = pp_fimode
1667 ((let open! Ppx_deriving_runtime in
1668 fun fmt ->
1669 fun x ->
1670 Format.fprintf fmt "@[<2>{ ";
1671 ((((((((((((((Format.fprintf fmt "@[%s =@ " "f_mode";
1672 ((__0 ()) fmt) x.f_mode;
1673 Format.fprintf fmt "@]");
1674 Format.fprintf fmt ";@ ";
1675 Format.fprintf fmt "@[%s =@ " "f_tparams";
1676 ((fun x ->
1677 Format.fprintf fmt "@[<2>[";
1678 ignore
1679 (List.fold_left
1680 (fun sep ->
1681 fun x ->
1682 if sep then Format.fprintf fmt ";@ ";
1683 ((__1 ()) fmt) x;
1684 true) false x);
1685 Format.fprintf fmt "@,]@]")) x.f_tparams;
1686 Format.fprintf fmt "@]");
1687 Format.fprintf fmt ";@ ";
1688 Format.fprintf fmt "@[%s =@ " "f_constrs";
1689 ((fun x ->
1690 Format.fprintf fmt "@[<2>[";
1691 ignore
1692 (List.fold_left
1693 (fun sep ->
1694 fun x ->
1695 if sep then Format.fprintf fmt ";@ ";
1696 ((fun (a0,a1,a2) ->
1697 Format.fprintf fmt "(@[";
1698 ((((__2 ()) fmt) a0;
1699 Format.fprintf fmt ",@ ";
1700 ((__3 ()) fmt) a1);
1701 Format.fprintf fmt ",@ ";
1702 ((__4 ()) fmt) a2);
1703 Format.fprintf fmt "@])")) x;
1704 true) false x);
1705 Format.fprintf fmt "@,]@]")) x.f_constrs;
1706 Format.fprintf fmt "@]");
1707 Format.fprintf fmt ";@ ";
1708 Format.fprintf fmt "@[%s =@ " "f_ret";
1709 ((function
1710 | None -> Format.pp_print_string fmt "None"
1711 | Some x ->
1712 (Format.pp_print_string fmt "(Some ";
1713 ((__5 ()) fmt) x;
1714 Format.pp_print_string fmt ")"))) x.f_ret;
1715 Format.fprintf fmt "@]");
1716 Format.fprintf fmt ";@ ";
1717 Format.fprintf fmt "@[%s =@ " "f_ret_by_ref";
1718 (Format.fprintf fmt "%B") x.f_ret_by_ref;
1719 Format.fprintf fmt "@]");
1720 Format.fprintf fmt ";@ ";
1721 Format.fprintf fmt "@[%s =@ " "f_name";
1722 ((__6 ()) fmt) x.f_name;
1723 Format.fprintf fmt "@]");
1724 Format.fprintf fmt ";@ ";
1725 Format.fprintf fmt "@[%s =@ " "f_params";
1726 ((fun x ->
1727 Format.fprintf fmt "@[<2>[";
1728 ignore
1729 (List.fold_left
1730 (fun sep ->
1731 fun x ->
1732 if sep then Format.fprintf fmt ";@ ";
1733 ((__7 ()) fmt) x;
1734 true) false x);
1735 Format.fprintf fmt "@,]@]")) x.f_params;
1736 Format.fprintf fmt "@]");
1737 Format.fprintf fmt ";@ ";
1738 Format.fprintf fmt "@[%s =@ " "f_body";
1739 ((__8 ()) fmt) x.f_body;
1740 Format.fprintf fmt "@]");
1741 Format.fprintf fmt ";@ ";
1742 Format.fprintf fmt "@[%s =@ " "f_user_attributes";
1743 ((fun x ->
1744 Format.fprintf fmt "@[<2>[";
1745 ignore
1746 (List.fold_left
1747 (fun sep ->
1748 fun x ->
1749 if sep then Format.fprintf fmt ";@ ";
1750 ((__9 ()) fmt) x;
1751 true) false x);
1752 Format.fprintf fmt "@,]@]")) x.f_user_attributes;
1753 Format.fprintf fmt "@]");
1754 Format.fprintf fmt ";@ ";
1755 Format.fprintf fmt "@[%s =@ " "f_fun_kind";
1756 ((__10 ()) fmt) x.f_fun_kind;
1757 Format.fprintf fmt "@]");
1758 Format.fprintf fmt ";@ ";
1759 Format.fprintf fmt "@[%s =@ " "f_namespace";
1760 ((__11 ()) fmt) x.f_namespace;
1761 Format.fprintf fmt "@]");
1762 Format.fprintf fmt ";@ ";
1763 Format.fprintf fmt "@[%s =@ " "f_span";
1764 ((__12 ()) fmt) x.f_span;
1765 Format.fprintf fmt "@]");
1766 Format.fprintf fmt ";@ ";
1767 Format.fprintf fmt "@[%s =@ " "f_doc_comment";
1768 ((function
1769 | None -> Format.pp_print_string fmt "None"
1770 | Some x ->
1771 (Format.pp_print_string fmt "(Some ";
1772 (Format.fprintf fmt "%S") x;
1773 Format.pp_print_string fmt ")"))) x.f_doc_comment;
1774 Format.fprintf fmt "@]");
1775 Format.fprintf fmt ";@ ";
1776 Format.fprintf fmt "@[%s =@ " "f_static";
1777 (Format.fprintf fmt "%B") x.f_static;
1778 Format.fprintf fmt "@]");
1779 Format.fprintf fmt "@ }@]")
1780 [@ocaml.warning "-A"])
1782 and show_fun_ : fun_ -> Ppx_deriving_runtime.string =
1783 fun x -> Format.asprintf "%a" pp_fun_ x
1785 and (pp_is_coroutine :
1786 Format.formatter -> is_coroutine -> Ppx_deriving_runtime.unit)
1787 = ((let open! Ppx_deriving_runtime in fun fmt -> Format.fprintf fmt "%B")
1788 [@ocaml.warning "-A"])
1790 and show_is_coroutine : is_coroutine -> Ppx_deriving_runtime.string =
1791 fun x -> Format.asprintf "%a" pp_is_coroutine x
1793 and pp_hint : Format.formatter -> hint -> Ppx_deriving_runtime.unit =
1794 let __1 () = pp_hint_
1796 and __0 () = pp_pos
1798 ((let open! Ppx_deriving_runtime in
1799 fun fmt ->
1800 fun (a0,a1) ->
1801 Format.fprintf fmt "(@[";
1802 (((__0 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__1 ()) fmt) a1);
1803 Format.fprintf fmt "@])")
1804 [@ocaml.warning "-A"])
1806 and show_hint : hint -> Ppx_deriving_runtime.string =
1807 fun x -> Format.asprintf "%a" pp_hint x
1809 and pp_variadic_hint :
1810 Format.formatter -> variadic_hint -> Ppx_deriving_runtime.unit =
1811 let __0 () = pp_hint in
1812 ((let open! Ppx_deriving_runtime in
1813 fun fmt ->
1814 function
1815 | Hvariadic a0 ->
1816 (Format.fprintf fmt "(@[<2>Hvariadic@ ";
1817 ((function
1818 | None -> Format.pp_print_string fmt "None"
1819 | Some x ->
1820 (Format.pp_print_string fmt "(Some ";
1821 ((__0 ()) fmt) x;
1822 Format.pp_print_string fmt ")"))) a0;
1823 Format.fprintf fmt "@])")
1824 | Hnon_variadic -> Format.pp_print_string fmt "Hnon_variadic")
1825 [@ocaml.warning "-A"])
1827 and show_variadic_hint : variadic_hint -> Ppx_deriving_runtime.string =
1828 fun x -> Format.asprintf "%a" pp_variadic_hint x
1830 and pp_hint_ : Format.formatter -> hint_ -> Ppx_deriving_runtime.unit =
1831 let __13 () = pp_hint
1833 and __12 () = pp_id
1835 and __11 () = pp_id
1837 and __10 () = pp_id
1839 and __9 () = pp_shape_info
1841 and __8 () = pp_hint
1843 and __7 () = pp_id
1845 and __6 () = pp_hint
1847 and __5 () = pp_hint
1849 and __4 () = pp_variadic_hint
1851 and __3 () = pp_param_kind
1853 and __2 () = pp_hint
1855 and __1 () = pp_is_coroutine
1857 and __0 () = pp_hint
1859 ((let open! Ppx_deriving_runtime in
1860 fun fmt ->
1861 function
1862 | Hoption a0 ->
1863 (Format.fprintf fmt "(@[<2>Hoption@ ";
1864 ((__0 ()) fmt) a0;
1865 Format.fprintf fmt "@])")
1866 | Hfun (a0,a1,a2,a3,a4) ->
1867 (Format.fprintf fmt "(@[<2>Hfun (@,";
1868 ((((((__1 ()) fmt) a0;
1869 Format.fprintf fmt ",@ ";
1870 ((fun x ->
1871 Format.fprintf fmt "@[<2>[";
1872 ignore
1873 (List.fold_left
1874 (fun sep ->
1875 fun x ->
1876 if sep then Format.fprintf fmt ";@ ";
1877 ((__2 ()) fmt) x;
1878 true) false x);
1879 Format.fprintf fmt "@,]@]")) a1);
1880 Format.fprintf fmt ",@ ";
1881 ((fun x ->
1882 Format.fprintf fmt "@[<2>[";
1883 ignore
1884 (List.fold_left
1885 (fun sep ->
1886 fun x ->
1887 if sep then Format.fprintf fmt ";@ ";
1888 ((function
1889 | None -> Format.pp_print_string fmt "None"
1890 | Some x ->
1891 (Format.pp_print_string fmt "(Some ";
1892 ((__3 ()) fmt) x;
1893 Format.pp_print_string fmt ")"))) x;
1894 true) false x);
1895 Format.fprintf fmt "@,]@]")) a2);
1896 Format.fprintf fmt ",@ ";
1897 ((__4 ()) fmt) a3);
1898 Format.fprintf fmt ",@ ";
1899 ((__5 ()) fmt) a4);
1900 Format.fprintf fmt "@,))@]")
1901 | Htuple a0 ->
1902 (Format.fprintf fmt "(@[<2>Htuple@ ";
1903 ((fun x ->
1904 Format.fprintf fmt "@[<2>[";
1905 ignore
1906 (List.fold_left
1907 (fun sep ->
1908 fun x ->
1909 if sep then Format.fprintf fmt ";@ ";
1910 ((__6 ()) fmt) x;
1911 true) false x);
1912 Format.fprintf fmt "@,]@]")) a0;
1913 Format.fprintf fmt "@])")
1914 | Happly (a0,a1) ->
1915 (Format.fprintf fmt "(@[<2>Happly (@,";
1916 (((__7 ()) fmt) a0;
1917 Format.fprintf fmt ",@ ";
1918 ((fun x ->
1919 Format.fprintf fmt "@[<2>[";
1920 ignore
1921 (List.fold_left
1922 (fun sep ->
1923 fun x ->
1924 if sep then Format.fprintf fmt ";@ ";
1925 ((__8 ()) fmt) x;
1926 true) false x);
1927 Format.fprintf fmt "@,]@]")) a1);
1928 Format.fprintf fmt "@,))@]")
1929 | Hshape a0 ->
1930 (Format.fprintf fmt "(@[<2>Hshape@ ";
1931 ((__9 ()) fmt) a0;
1932 Format.fprintf fmt "@])")
1933 | Haccess (a0,a1,a2) ->
1934 (Format.fprintf fmt "(@[<2>Haccess (@,";
1935 ((((__10 ()) fmt) a0;
1936 Format.fprintf fmt ",@ ";
1937 ((__11 ()) fmt) a1);
1938 Format.fprintf fmt ",@ ";
1939 ((fun x ->
1940 Format.fprintf fmt "@[<2>[";
1941 ignore
1942 (List.fold_left
1943 (fun sep ->
1944 fun x ->
1945 if sep then Format.fprintf fmt ";@ ";
1946 ((__12 ()) fmt) x;
1947 true) false x);
1948 Format.fprintf fmt "@,]@]")) a2);
1949 Format.fprintf fmt "@,))@]")
1950 | Hsoft a0 ->
1951 (Format.fprintf fmt "(@[<2>Hsoft@ ";
1952 ((__13 ()) fmt) a0;
1953 Format.fprintf fmt "@])"))
1954 [@ocaml.warning "-A"])
1956 and show_hint_ : hint_ -> Ppx_deriving_runtime.string =
1957 fun x -> Format.asprintf "%a" pp_hint_ x
1959 and pp_shape_info :
1960 Format.formatter -> shape_info -> Ppx_deriving_runtime.unit =
1961 let __0 () = pp_shape_field in
1962 ((let open! Ppx_deriving_runtime in
1963 fun fmt ->
1964 fun x ->
1965 Format.fprintf fmt "@[<2>{ ";
1966 ((Format.fprintf fmt "@[%s =@ " "si_allows_unknown_fields";
1967 (Format.fprintf fmt "%B") x.si_allows_unknown_fields;
1968 Format.fprintf fmt "@]");
1969 Format.fprintf fmt ";@ ";
1970 Format.fprintf fmt "@[%s =@ " "si_shape_field_list";
1971 ((fun x ->
1972 Format.fprintf fmt "@[<2>[";
1973 ignore
1974 (List.fold_left
1975 (fun sep ->
1976 fun x ->
1977 if sep then Format.fprintf fmt ";@ ";
1978 ((__0 ()) fmt) x;
1979 true) false x);
1980 Format.fprintf fmt "@,]@]")) x.si_shape_field_list;
1981 Format.fprintf fmt "@]");
1982 Format.fprintf fmt "@ }@]")
1983 [@ocaml.warning "-A"])
1985 and show_shape_info : shape_info -> Ppx_deriving_runtime.string =
1986 fun x -> Format.asprintf "%a" pp_shape_info x
1988 and pp_shape_field :
1989 Format.formatter -> shape_field -> Ppx_deriving_runtime.unit =
1990 let __1 () = pp_hint
1992 and __0 () = pp_shape_field_name
1994 ((let open! Ppx_deriving_runtime in
1995 fun fmt ->
1996 fun x ->
1997 Format.fprintf fmt "@[<2>{ ";
1998 (((Format.fprintf fmt "@[%s =@ " "sf_optional";
1999 (Format.fprintf fmt "%B") x.sf_optional;
2000 Format.fprintf fmt "@]");
2001 Format.fprintf fmt ";@ ";
2002 Format.fprintf fmt "@[%s =@ " "sf_name";
2003 ((__0 ()) fmt) x.sf_name;
2004 Format.fprintf fmt "@]");
2005 Format.fprintf fmt ";@ ";
2006 Format.fprintf fmt "@[%s =@ " "sf_hint";
2007 ((__1 ()) fmt) x.sf_hint;
2008 Format.fprintf fmt "@]");
2009 Format.fprintf fmt "@ }@]")
2010 [@ocaml.warning "-A"])
2012 and show_shape_field : shape_field -> Ppx_deriving_runtime.string =
2013 fun x -> Format.asprintf "%a" pp_shape_field x
2015 and pp_using_stmt :
2016 Format.formatter -> using_stmt -> Ppx_deriving_runtime.unit =
2017 let __1 () = pp_block
2019 and __0 () = pp_expr
2021 ((let open! Ppx_deriving_runtime in
2022 fun fmt ->
2023 fun x ->
2024 Format.fprintf fmt "@[<2>{ ";
2025 ((((Format.fprintf fmt "@[%s =@ " "us_is_block_scoped";
2026 (Format.fprintf fmt "%B") x.us_is_block_scoped;
2027 Format.fprintf fmt "@]");
2028 Format.fprintf fmt ";@ ";
2029 Format.fprintf fmt "@[%s =@ " "us_has_await";
2030 (Format.fprintf fmt "%B") x.us_has_await;
2031 Format.fprintf fmt "@]");
2032 Format.fprintf fmt ";@ ";
2033 Format.fprintf fmt "@[%s =@ " "us_expr";
2034 ((__0 ()) fmt) x.us_expr;
2035 Format.fprintf fmt "@]");
2036 Format.fprintf fmt ";@ ";
2037 Format.fprintf fmt "@[%s =@ " "us_block";
2038 ((__1 ()) fmt) x.us_block;
2039 Format.fprintf fmt "@]");
2040 Format.fprintf fmt "@ }@]")
2041 [@ocaml.warning "-A"])
2043 and show_using_stmt : using_stmt -> Ppx_deriving_runtime.string =
2044 fun x -> Format.asprintf "%a" pp_using_stmt x
2046 and pp_stmt : Format.formatter -> stmt -> Ppx_deriving_runtime.unit =
2047 let __1 () = pp_stmt_
2049 and __0 () = pp_pos
2051 ((let open! Ppx_deriving_runtime in
2052 fun fmt ->
2053 fun (a0,a1) ->
2054 Format.fprintf fmt "(@[";
2055 (((__0 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__1 ()) fmt) a1);
2056 Format.fprintf fmt "@])")
2057 [@ocaml.warning "-A"])
2059 and show_stmt : stmt -> Ppx_deriving_runtime.string =
2060 fun x -> Format.asprintf "%a" pp_stmt x
2062 and pp_stmt_ : Format.formatter -> stmt_ -> Ppx_deriving_runtime.unit =
2063 let __35 () = pp_block
2065 and __34 () = pp_expr
2067 and __33 () = pp_using_stmt
2069 and __32 () = pp_expr
2071 and __31 () = pp_pstring
2073 and __30 () = pp_def
2075 and __29 () = pp_block
2077 and __28 () = pp_catch
2079 and __27 () = pp_block
2081 and __26 () = pp_block
2083 and __25 () = pp_as_expr
2085 and __24 () = pp_pos
2087 and __23 () = pp_expr
2089 and __22 () = pp_case
2091 and __21 () = pp_expr
2093 and __20 () = pp_block
2095 and __19 () = pp_expr
2097 and __18 () = pp_expr
2099 and __17 () = pp_expr
2101 and __16 () = pp_block
2103 and __15 () = pp_expr
2105 and __14 () = pp_expr
2107 and __13 () = pp_block
2109 and __12 () = pp_block
2111 and __11 () = pp_block
2113 and __10 () = pp_expr
2115 and __9 () = pp_expr
2117 and __8 () = pp_expr
2119 and __7 () = pp_pstring
2121 and __6 () = pp_pstring
2123 and __5 () = pp_expr
2125 and __4 () = pp_expr
2127 and __3 () = pp_expr
2129 and __2 () = pp_expr
2131 and __1 () = pp_block
2133 and __0 () = pp_expr
2135 ((let open! Ppx_deriving_runtime in
2136 fun fmt ->
2137 function
2138 | Unsafe -> Format.pp_print_string fmt "Unsafe"
2139 | Fallthrough -> Format.pp_print_string fmt "Fallthrough"
2140 | Expr a0 ->
2141 (Format.fprintf fmt "(@[<2>Expr@ ";
2142 ((__0 ()) fmt) a0;
2143 Format.fprintf fmt "@])")
2144 | Block a0 ->
2145 (Format.fprintf fmt "(@[<2>Block@ ";
2146 ((__1 ()) fmt) a0;
2147 Format.fprintf fmt "@])")
2148 | Break a0 ->
2149 (Format.fprintf fmt "(@[<2>Break@ ";
2150 ((function
2151 | None -> Format.pp_print_string fmt "None"
2152 | Some x ->
2153 (Format.pp_print_string fmt "(Some ";
2154 ((__2 ()) fmt) x;
2155 Format.pp_print_string fmt ")"))) a0;
2156 Format.fprintf fmt "@])")
2157 | Continue a0 ->
2158 (Format.fprintf fmt "(@[<2>Continue@ ";
2159 ((function
2160 | None -> Format.pp_print_string fmt "None"
2161 | Some x ->
2162 (Format.pp_print_string fmt "(Some ";
2163 ((__3 ()) fmt) x;
2164 Format.pp_print_string fmt ")"))) a0;
2165 Format.fprintf fmt "@])")
2166 | Throw a0 ->
2167 (Format.fprintf fmt "(@[<2>Throw@ ";
2168 ((__4 ()) fmt) a0;
2169 Format.fprintf fmt "@])")
2170 | Return a0 ->
2171 (Format.fprintf fmt "(@[<2>Return@ ";
2172 ((function
2173 | None -> Format.pp_print_string fmt "None"
2174 | Some x ->
2175 (Format.pp_print_string fmt "(Some ";
2176 ((__5 ()) fmt) x;
2177 Format.pp_print_string fmt ")"))) a0;
2178 Format.fprintf fmt "@])")
2179 | GotoLabel a0 ->
2180 (Format.fprintf fmt "(@[<2>GotoLabel@ ";
2181 ((__6 ()) fmt) a0;
2182 Format.fprintf fmt "@])")
2183 | Goto a0 ->
2184 (Format.fprintf fmt "(@[<2>Goto@ ";
2185 ((__7 ()) fmt) a0;
2186 Format.fprintf fmt "@])")
2187 | Static_var a0 ->
2188 (Format.fprintf fmt "(@[<2>Static_var@ ";
2189 ((fun x ->
2190 Format.fprintf fmt "@[<2>[";
2191 ignore
2192 (List.fold_left
2193 (fun sep ->
2194 fun x ->
2195 if sep then Format.fprintf fmt ";@ ";
2196 ((__8 ()) fmt) x;
2197 true) false x);
2198 Format.fprintf fmt "@,]@]")) a0;
2199 Format.fprintf fmt "@])")
2200 | Global_var a0 ->
2201 (Format.fprintf fmt "(@[<2>Global_var@ ";
2202 ((fun x ->
2203 Format.fprintf fmt "@[<2>[";
2204 ignore
2205 (List.fold_left
2206 (fun sep ->
2207 fun x ->
2208 if sep then Format.fprintf fmt ";@ ";
2209 ((__9 ()) fmt) x;
2210 true) false x);
2211 Format.fprintf fmt "@,]@]")) a0;
2212 Format.fprintf fmt "@])")
2213 | If (a0,a1,a2) ->
2214 (Format.fprintf fmt "(@[<2>If (@,";
2215 ((((__10 ()) fmt) a0;
2216 Format.fprintf fmt ",@ ";
2217 ((__11 ()) fmt) a1);
2218 Format.fprintf fmt ",@ ";
2219 ((__12 ()) fmt) a2);
2220 Format.fprintf fmt "@,))@]")
2221 | Do (a0,a1) ->
2222 (Format.fprintf fmt "(@[<2>Do (@,";
2223 (((__13 ()) fmt) a0;
2224 Format.fprintf fmt ",@ ";
2225 ((__14 ()) fmt) a1);
2226 Format.fprintf fmt "@,))@]")
2227 | While (a0,a1) ->
2228 (Format.fprintf fmt "(@[<2>While (@,";
2229 (((__15 ()) fmt) a0;
2230 Format.fprintf fmt ",@ ";
2231 ((__16 ()) fmt) a1);
2232 Format.fprintf fmt "@,))@]")
2233 | For (a0,a1,a2,a3) ->
2234 (Format.fprintf fmt "(@[<2>For (@,";
2235 (((((__17 ()) fmt) a0;
2236 Format.fprintf fmt ",@ ";
2237 ((__18 ()) fmt) a1);
2238 Format.fprintf fmt ",@ ";
2239 ((__19 ()) fmt) a2);
2240 Format.fprintf fmt ",@ ";
2241 ((__20 ()) fmt) a3);
2242 Format.fprintf fmt "@,))@]")
2243 | Switch (a0,a1) ->
2244 (Format.fprintf fmt "(@[<2>Switch (@,";
2245 (((__21 ()) fmt) a0;
2246 Format.fprintf fmt ",@ ";
2247 ((fun x ->
2248 Format.fprintf fmt "@[<2>[";
2249 ignore
2250 (List.fold_left
2251 (fun sep ->
2252 fun x ->
2253 if sep then Format.fprintf fmt ";@ ";
2254 ((__22 ()) fmt) x;
2255 true) false x);
2256 Format.fprintf fmt "@,]@]")) a1);
2257 Format.fprintf fmt "@,))@]")
2258 | Foreach (a0,a1,a2,a3) ->
2259 (Format.fprintf fmt "(@[<2>Foreach (@,";
2260 (((((__23 ()) fmt) a0;
2261 Format.fprintf fmt ",@ ";
2262 ((function
2263 | None -> Format.pp_print_string fmt "None"
2264 | Some x ->
2265 (Format.pp_print_string fmt "(Some ";
2266 ((__24 ()) fmt) x;
2267 Format.pp_print_string fmt ")"))) a1);
2268 Format.fprintf fmt ",@ ";
2269 ((__25 ()) fmt) a2);
2270 Format.fprintf fmt ",@ ";
2271 ((__26 ()) fmt) a3);
2272 Format.fprintf fmt "@,))@]")
2273 | Try (a0,a1,a2) ->
2274 (Format.fprintf fmt "(@[<2>Try (@,";
2275 ((((__27 ()) fmt) a0;
2276 Format.fprintf fmt ",@ ";
2277 ((fun x ->
2278 Format.fprintf fmt "@[<2>[";
2279 ignore
2280 (List.fold_left
2281 (fun sep ->
2282 fun x ->
2283 if sep then Format.fprintf fmt ";@ ";
2284 ((__28 ()) fmt) x;
2285 true) false x);
2286 Format.fprintf fmt "@,]@]")) a1);
2287 Format.fprintf fmt ",@ ";
2288 ((__29 ()) fmt) a2);
2289 Format.fprintf fmt "@,))@]")
2290 | Def_inline a0 ->
2291 (Format.fprintf fmt "(@[<2>Def_inline@ ";
2292 ((__30 ()) fmt) a0;
2293 Format.fprintf fmt "@])")
2294 | Noop -> Format.pp_print_string fmt "Noop"
2295 | Markup (a0,a1) ->
2296 (Format.fprintf fmt "(@[<2>Markup (@,";
2297 (((__31 ()) fmt) a0;
2298 Format.fprintf fmt ",@ ";
2299 ((function
2300 | None -> Format.pp_print_string fmt "None"
2301 | Some x ->
2302 (Format.pp_print_string fmt "(Some ";
2303 ((__32 ()) fmt) x;
2304 Format.pp_print_string fmt ")"))) a1);
2305 Format.fprintf fmt "@,))@]")
2306 | Using a0 ->
2307 (Format.fprintf fmt "(@[<2>Using@ ";
2308 ((__33 ()) fmt) a0;
2309 Format.fprintf fmt "@])")
2310 | Declare (a0,a1,a2) ->
2311 (Format.fprintf fmt "(@[<2>Declare (@,";
2312 (((Format.fprintf fmt "%B") a0;
2313 Format.fprintf fmt ",@ ";
2314 ((__34 ()) fmt) a1);
2315 Format.fprintf fmt ",@ ";
2316 ((__35 ()) fmt) a2);
2317 Format.fprintf fmt "@,))@]"))
2318 [@ocaml.warning "-A"])
2320 and show_stmt_ : stmt_ -> Ppx_deriving_runtime.string =
2321 fun x -> Format.asprintf "%a" pp_stmt_ x
2323 and pp_as_expr : Format.formatter -> as_expr -> Ppx_deriving_runtime.unit =
2324 let __2 () = pp_expr
2326 and __1 () = pp_expr
2328 and __0 () = pp_expr
2330 ((let open! Ppx_deriving_runtime in
2331 fun fmt ->
2332 function
2333 | As_v a0 ->
2334 (Format.fprintf fmt "(@[<2>As_v@ ";
2335 ((__0 ()) fmt) a0;
2336 Format.fprintf fmt "@])")
2337 | As_kv (a0,a1) ->
2338 (Format.fprintf fmt "(@[<2>As_kv (@,";
2339 (((__1 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__2 ()) fmt) a1);
2340 Format.fprintf fmt "@,))@]"))
2341 [@ocaml.warning "-A"])
2343 and show_as_expr : as_expr -> Ppx_deriving_runtime.string =
2344 fun x -> Format.asprintf "%a" pp_as_expr x
2346 and pp_xhp_attribute :
2347 Format.formatter -> xhp_attribute -> Ppx_deriving_runtime.unit =
2348 let __2 () = pp_expr
2350 and __1 () = pp_expr
2352 and __0 () = pp_id
2354 ((let open! Ppx_deriving_runtime in
2355 fun fmt ->
2356 function
2357 | Xhp_simple (a0,a1) ->
2358 (Format.fprintf fmt "(@[<2>Xhp_simple (@,";
2359 (((__0 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__1 ()) fmt) a1);
2360 Format.fprintf fmt "@,))@]")
2361 | Xhp_spread a0 ->
2362 (Format.fprintf fmt "(@[<2>Xhp_spread@ ";
2363 ((__2 ()) fmt) a0;
2364 Format.fprintf fmt "@])"))
2365 [@ocaml.warning "-A"])
2367 and show_xhp_attribute : xhp_attribute -> Ppx_deriving_runtime.string =
2368 fun x -> Format.asprintf "%a" pp_xhp_attribute x
2370 and pp_block : Format.formatter -> block -> Ppx_deriving_runtime.unit =
2371 let __0 () = pp_stmt in
2372 ((let open! Ppx_deriving_runtime in
2373 fun fmt ->
2374 fun x ->
2375 Format.fprintf fmt "@[<2>[";
2376 ignore
2377 (List.fold_left
2378 (fun sep ->
2379 fun x ->
2380 if sep then Format.fprintf fmt ";@ ";
2381 ((__0 ()) fmt) x;
2382 true) false x);
2383 Format.fprintf fmt "@,]@]")
2384 [@ocaml.warning "-A"])
2386 and show_block : block -> Ppx_deriving_runtime.string =
2387 fun x -> Format.asprintf "%a" pp_block x
2389 and pp_expr : Format.formatter -> expr -> Ppx_deriving_runtime.unit =
2390 let __1 () = pp_expr_
2392 and __0 () = pp_pos
2394 ((let open! Ppx_deriving_runtime in
2395 fun fmt ->
2396 fun (a0,a1) ->
2397 Format.fprintf fmt "(@[";
2398 (((__0 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__1 ()) fmt) a1);
2399 Format.fprintf fmt "@])")
2400 [@ocaml.warning "-A"])
2402 and show_expr : expr -> Ppx_deriving_runtime.string =
2403 fun x -> Format.asprintf "%a" pp_expr x
2405 and pp_expr_ : Format.formatter -> expr_ -> Ppx_deriving_runtime.unit =
2406 let __74 () = pp_expr
2408 and __73 () = pp_expr
2410 and __72 () = pp_param_kind
2412 and __71 () = pp_expr
2414 and __70 () = pp_import_flavor
2416 and __69 () = pp_expr
2418 and __68 () = pp_expr
2420 and __67 () = pp_xhp_attribute
2422 and __66 () = pp_id
2424 and __65 () = pp_fun_
2426 and __64 () = pp_id
2428 and __63 () = pp_fun_
2430 and __62 () = pp_class_
2432 and __61 () = pp_expr
2434 and __60 () = pp_expr
2436 and __59 () = pp_expr
2438 and __58 () = pp_expr
2440 and __57 () = pp_expr
2442 and __56 () = pp_expr
2444 and __55 () = pp_expr
2446 and __54 () = pp_hint
2448 and __53 () = pp_expr
2450 and __52 () = pp_expr
2452 and __51 () = pp_expr
2454 and __50 () = pp_expr
2456 and __49 () = pp_expr
2458 and __48 () = pp_expr
2460 and __47 () = pp_expr
2462 and __46 () = pp_expr
2464 and __45 () = pp_expr
2466 and __44 () = pp_expr
2468 and __43 () = pp_expr
2470 and __42 () = pp_expr
2472 and __41 () = pp_bop
2474 and __40 () = pp_expr
2476 and __39 () = pp_uop
2478 and __38 () = pp_expr
2480 and __37 () = pp_hint
2482 and __36 () = pp_expr
2484 and __35 () = pp_expr
2486 and __34 () = pp_expr
2488 and __33 () = pp_expr
2490 and __32 () = pp_expr
2492 and __31 () = pp_afield
2494 and __30 () = pp_expr
2496 and __29 () = pp_pstring
2498 and __28 () = pp_pstring
2500 and __27 () = pp_pstring
2502 and __26 () = pp_expr
2504 and __25 () = pp_expr
2506 and __24 () = pp_hint
2508 and __23 () = pp_expr
2510 and __22 () = pp_pstring
2512 and __21 () = pp_expr
2514 and __20 () = pp_expr
2516 and __19 () = pp_expr
2518 and __18 () = pp_expr
2520 and __17 () = pp_expr
2522 and __16 () = pp_og_null_flavor
2524 and __15 () = pp_expr
2526 and __14 () = pp_expr
2528 and __13 () = pp_expr
2530 and __12 () = pp_expr
2532 and __11 () = pp_id
2534 and __10 () = pp_hint
2536 and __9 () = pp_id
2538 and __8 () = pp_id
2540 and __7 () = pp_afield
2542 and __6 () = pp_id
2544 and __5 () = pp_expr
2546 and __4 () = pp_shape_field_name
2548 and __3 () = pp_expr
2550 and __2 () = pp_expr
2552 and __1 () = pp_expr
2554 and __0 () = pp_afield
2556 ((let open! Ppx_deriving_runtime in
2557 fun fmt ->
2558 function
2559 | Array a0 ->
2560 (Format.fprintf fmt "(@[<2>Array@ ";
2561 ((fun x ->
2562 Format.fprintf fmt "@[<2>[";
2563 ignore
2564 (List.fold_left
2565 (fun sep ->
2566 fun x ->
2567 if sep then Format.fprintf fmt ";@ ";
2568 ((__0 ()) fmt) x;
2569 true) false x);
2570 Format.fprintf fmt "@,]@]")) a0;
2571 Format.fprintf fmt "@])")
2572 | Varray a0 ->
2573 (Format.fprintf fmt "(@[<2>Varray@ ";
2574 ((fun x ->
2575 Format.fprintf fmt "@[<2>[";
2576 ignore
2577 (List.fold_left
2578 (fun sep ->
2579 fun x ->
2580 if sep then Format.fprintf fmt ";@ ";
2581 ((__1 ()) fmt) x;
2582 true) false x);
2583 Format.fprintf fmt "@,]@]")) a0;
2584 Format.fprintf fmt "@])")
2585 | Darray a0 ->
2586 (Format.fprintf fmt "(@[<2>Darray@ ";
2587 ((fun x ->
2588 Format.fprintf fmt "@[<2>[";
2589 ignore
2590 (List.fold_left
2591 (fun sep ->
2592 fun x ->
2593 if sep then Format.fprintf fmt ";@ ";
2594 ((fun (a0,a1) ->
2595 Format.fprintf fmt "(@[";
2596 (((__2 ()) fmt) a0;
2597 Format.fprintf fmt ",@ ";
2598 ((__3 ()) fmt) a1);
2599 Format.fprintf fmt "@])")) x;
2600 true) false x);
2601 Format.fprintf fmt "@,]@]")) a0;
2602 Format.fprintf fmt "@])")
2603 | Shape a0 ->
2604 (Format.fprintf fmt "(@[<2>Shape@ ";
2605 ((fun x ->
2606 Format.fprintf fmt "@[<2>[";
2607 ignore
2608 (List.fold_left
2609 (fun sep ->
2610 fun x ->
2611 if sep then Format.fprintf fmt ";@ ";
2612 ((fun (a0,a1) ->
2613 Format.fprintf fmt "(@[";
2614 (((__4 ()) fmt) a0;
2615 Format.fprintf fmt ",@ ";
2616 ((__5 ()) fmt) a1);
2617 Format.fprintf fmt "@])")) x;
2618 true) false x);
2619 Format.fprintf fmt "@,]@]")) a0;
2620 Format.fprintf fmt "@])")
2621 | Collection (a0,a1) ->
2622 (Format.fprintf fmt "(@[<2>Collection (@,";
2623 (((__6 ()) fmt) a0;
2624 Format.fprintf fmt ",@ ";
2625 ((fun x ->
2626 Format.fprintf fmt "@[<2>[";
2627 ignore
2628 (List.fold_left
2629 (fun sep ->
2630 fun x ->
2631 if sep then Format.fprintf fmt ";@ ";
2632 ((__7 ()) fmt) x;
2633 true) false x);
2634 Format.fprintf fmt "@,]@]")) a1);
2635 Format.fprintf fmt "@,))@]")
2636 | Null -> Format.pp_print_string fmt "Null"
2637 | True -> Format.pp_print_string fmt "True"
2638 | False -> Format.pp_print_string fmt "False"
2639 | Omitted -> Format.pp_print_string fmt "Omitted"
2640 | Id a0 ->
2641 (Format.fprintf fmt "(@[<2>Id@ ";
2642 ((__8 ()) fmt) a0;
2643 Format.fprintf fmt "@])")
2644 | Id_type_arguments (a0,a1) ->
2645 (Format.fprintf fmt "(@[<2>Id_type_arguments (@,";
2646 (((__9 ()) fmt) a0;
2647 Format.fprintf fmt ",@ ";
2648 ((fun x ->
2649 Format.fprintf fmt "@[<2>[";
2650 ignore
2651 (List.fold_left
2652 (fun sep ->
2653 fun x ->
2654 if sep then Format.fprintf fmt ";@ ";
2655 ((__10 ()) fmt) x;
2656 true) false x);
2657 Format.fprintf fmt "@,]@]")) a1);
2658 Format.fprintf fmt "@,))@]")
2659 | Lvar a0 ->
2660 (Format.fprintf fmt "(@[<2>Lvar@ ";
2661 ((__11 ()) fmt) a0;
2662 Format.fprintf fmt "@])")
2663 | Dollar a0 ->
2664 (Format.fprintf fmt "(@[<2>Dollar@ ";
2665 ((__12 ()) fmt) a0;
2666 Format.fprintf fmt "@])")
2667 | Clone a0 ->
2668 (Format.fprintf fmt "(@[<2>Clone@ ";
2669 ((__13 ()) fmt) a0;
2670 Format.fprintf fmt "@])")
2671 | Obj_get (a0,a1,a2) ->
2672 (Format.fprintf fmt "(@[<2>Obj_get (@,";
2673 ((((__14 ()) fmt) a0;
2674 Format.fprintf fmt ",@ ";
2675 ((__15 ()) fmt) a1);
2676 Format.fprintf fmt ",@ ";
2677 ((__16 ()) fmt) a2);
2678 Format.fprintf fmt "@,))@]")
2679 | Array_get (a0,a1) ->
2680 (Format.fprintf fmt "(@[<2>Array_get (@,";
2681 (((__17 ()) fmt) a0;
2682 Format.fprintf fmt ",@ ";
2683 ((function
2684 | None -> Format.pp_print_string fmt "None"
2685 | Some x ->
2686 (Format.pp_print_string fmt "(Some ";
2687 ((__18 ()) fmt) x;
2688 Format.pp_print_string fmt ")"))) a1);
2689 Format.fprintf fmt "@,))@]")
2690 | Class_get (a0,a1) ->
2691 (Format.fprintf fmt "(@[<2>Class_get (@,";
2692 (((__19 ()) fmt) a0;
2693 Format.fprintf fmt ",@ ";
2694 ((__20 ()) fmt) a1);
2695 Format.fprintf fmt "@,))@]")
2696 | Class_const (a0,a1) ->
2697 (Format.fprintf fmt "(@[<2>Class_const (@,";
2698 (((__21 ()) fmt) a0;
2699 Format.fprintf fmt ",@ ";
2700 ((__22 ()) fmt) a1);
2701 Format.fprintf fmt "@,))@]")
2702 | Call (a0,a1,a2,a3) ->
2703 (Format.fprintf fmt "(@[<2>Call (@,";
2704 (((((__23 ()) fmt) a0;
2705 Format.fprintf fmt ",@ ";
2706 ((fun x ->
2707 Format.fprintf fmt "@[<2>[";
2708 ignore
2709 (List.fold_left
2710 (fun sep ->
2711 fun x ->
2712 if sep then Format.fprintf fmt ";@ ";
2713 ((__24 ()) fmt) x;
2714 true) false x);
2715 Format.fprintf fmt "@,]@]")) a1);
2716 Format.fprintf fmt ",@ ";
2717 ((fun x ->
2718 Format.fprintf fmt "@[<2>[";
2719 ignore
2720 (List.fold_left
2721 (fun sep ->
2722 fun x ->
2723 if sep then Format.fprintf fmt ";@ ";
2724 ((__25 ()) fmt) x;
2725 true) false x);
2726 Format.fprintf fmt "@,]@]")) a2);
2727 Format.fprintf fmt ",@ ";
2728 ((fun x ->
2729 Format.fprintf fmt "@[<2>[";
2730 ignore
2731 (List.fold_left
2732 (fun sep ->
2733 fun x ->
2734 if sep then Format.fprintf fmt ";@ ";
2735 ((__26 ()) fmt) x;
2736 true) false x);
2737 Format.fprintf fmt "@,]@]")) a3);
2738 Format.fprintf fmt "@,))@]")
2739 | Int a0 ->
2740 (Format.fprintf fmt "(@[<2>Int@ ";
2741 ((__27 ()) fmt) a0;
2742 Format.fprintf fmt "@])")
2743 | Float a0 ->
2744 (Format.fprintf fmt "(@[<2>Float@ ";
2745 ((__28 ()) fmt) a0;
2746 Format.fprintf fmt "@])")
2747 | String a0 ->
2748 (Format.fprintf fmt "(@[<2>String@ ";
2749 ((__29 ()) fmt) a0;
2750 Format.fprintf fmt "@])")
2751 | String2 a0 ->
2752 (Format.fprintf fmt "(@[<2>String2@ ";
2753 ((fun x ->
2754 Format.fprintf fmt "@[<2>[";
2755 ignore
2756 (List.fold_left
2757 (fun sep ->
2758 fun x ->
2759 if sep then Format.fprintf fmt ";@ ";
2760 ((__30 ()) fmt) x;
2761 true) false x);
2762 Format.fprintf fmt "@,]@]")) a0;
2763 Format.fprintf fmt "@])")
2764 | Yield a0 ->
2765 (Format.fprintf fmt "(@[<2>Yield@ ";
2766 ((__31 ()) fmt) a0;
2767 Format.fprintf fmt "@])")
2768 | Yield_break -> Format.pp_print_string fmt "Yield_break"
2769 | Yield_from a0 ->
2770 (Format.fprintf fmt "(@[<2>Yield_from@ ";
2771 ((__32 ()) fmt) a0;
2772 Format.fprintf fmt "@])")
2773 | Await a0 ->
2774 (Format.fprintf fmt "(@[<2>Await@ ";
2775 ((__33 ()) fmt) a0;
2776 Format.fprintf fmt "@])")
2777 | Suspend a0 ->
2778 (Format.fprintf fmt "(@[<2>Suspend@ ";
2779 ((__34 ()) fmt) a0;
2780 Format.fprintf fmt "@])")
2781 | List a0 ->
2782 (Format.fprintf fmt "(@[<2>List@ ";
2783 ((fun x ->
2784 Format.fprintf fmt "@[<2>[";
2785 ignore
2786 (List.fold_left
2787 (fun sep ->
2788 fun x ->
2789 if sep then Format.fprintf fmt ";@ ";
2790 ((__35 ()) fmt) x;
2791 true) false x);
2792 Format.fprintf fmt "@,]@]")) a0;
2793 Format.fprintf fmt "@])")
2794 | Expr_list a0 ->
2795 (Format.fprintf fmt "(@[<2>Expr_list@ ";
2796 ((fun x ->
2797 Format.fprintf fmt "@[<2>[";
2798 ignore
2799 (List.fold_left
2800 (fun sep ->
2801 fun x ->
2802 if sep then Format.fprintf fmt ";@ ";
2803 ((__36 ()) fmt) x;
2804 true) false x);
2805 Format.fprintf fmt "@,]@]")) a0;
2806 Format.fprintf fmt "@])")
2807 | Cast (a0,a1) ->
2808 (Format.fprintf fmt "(@[<2>Cast (@,";
2809 (((__37 ()) fmt) a0;
2810 Format.fprintf fmt ",@ ";
2811 ((__38 ()) fmt) a1);
2812 Format.fprintf fmt "@,))@]")
2813 | Unop (a0,a1) ->
2814 (Format.fprintf fmt "(@[<2>Unop (@,";
2815 (((__39 ()) fmt) a0;
2816 Format.fprintf fmt ",@ ";
2817 ((__40 ()) fmt) a1);
2818 Format.fprintf fmt "@,))@]")
2819 | Binop (a0,a1,a2) ->
2820 (Format.fprintf fmt "(@[<2>Binop (@,";
2821 ((((__41 ()) fmt) a0;
2822 Format.fprintf fmt ",@ ";
2823 ((__42 ()) fmt) a1);
2824 Format.fprintf fmt ",@ ";
2825 ((__43 ()) fmt) a2);
2826 Format.fprintf fmt "@,))@]")
2827 | Pipe (a0,a1) ->
2828 (Format.fprintf fmt "(@[<2>Pipe (@,";
2829 (((__44 ()) fmt) a0;
2830 Format.fprintf fmt ",@ ";
2831 ((__45 ()) fmt) a1);
2832 Format.fprintf fmt "@,))@]")
2833 | Eif (a0,a1,a2) ->
2834 (Format.fprintf fmt "(@[<2>Eif (@,";
2835 ((((__46 ()) fmt) a0;
2836 Format.fprintf fmt ",@ ";
2837 ((function
2838 | None -> Format.pp_print_string fmt "None"
2839 | Some x ->
2840 (Format.pp_print_string fmt "(Some ";
2841 ((__47 ()) fmt) x;
2842 Format.pp_print_string fmt ")"))) a1);
2843 Format.fprintf fmt ",@ ";
2844 ((__48 ()) fmt) a2);
2845 Format.fprintf fmt "@,))@]")
2846 | NullCoalesce (a0,a1) ->
2847 (Format.fprintf fmt "(@[<2>NullCoalesce (@,";
2848 (((__49 ()) fmt) a0;
2849 Format.fprintf fmt ",@ ";
2850 ((__50 ()) fmt) a1);
2851 Format.fprintf fmt "@,))@]")
2852 | InstanceOf (a0,a1) ->
2853 (Format.fprintf fmt "(@[<2>InstanceOf (@,";
2854 (((__51 ()) fmt) a0;
2855 Format.fprintf fmt ",@ ";
2856 ((__52 ()) fmt) a1);
2857 Format.fprintf fmt "@,))@]")
2858 | Is (a0,a1) ->
2859 (Format.fprintf fmt "(@[<2>Is (@,";
2860 (((__53 ()) fmt) a0;
2861 Format.fprintf fmt ",@ ";
2862 ((__54 ()) fmt) a1);
2863 Format.fprintf fmt "@,))@]")
2864 | BracedExpr a0 ->
2865 (Format.fprintf fmt "(@[<2>BracedExpr@ ";
2866 ((__55 ()) fmt) a0;
2867 Format.fprintf fmt "@])")
2868 | ParenthesizedExpr a0 ->
2869 (Format.fprintf fmt "(@[<2>ParenthesizedExpr@ ";
2870 ((__56 ()) fmt) a0;
2871 Format.fprintf fmt "@])")
2872 | New (a0,a1,a2) ->
2873 (Format.fprintf fmt "(@[<2>New (@,";
2874 ((((__57 ()) fmt) a0;
2875 Format.fprintf fmt ",@ ";
2876 ((fun x ->
2877 Format.fprintf fmt "@[<2>[";
2878 ignore
2879 (List.fold_left
2880 (fun sep ->
2881 fun x ->
2882 if sep then Format.fprintf fmt ";@ ";
2883 ((__58 ()) fmt) x;
2884 true) false x);
2885 Format.fprintf fmt "@,]@]")) a1);
2886 Format.fprintf fmt ",@ ";
2887 ((fun x ->
2888 Format.fprintf fmt "@[<2>[";
2889 ignore
2890 (List.fold_left
2891 (fun sep ->
2892 fun x ->
2893 if sep then Format.fprintf fmt ";@ ";
2894 ((__59 ()) fmt) x;
2895 true) false x);
2896 Format.fprintf fmt "@,]@]")) a2);
2897 Format.fprintf fmt "@,))@]")
2898 | NewAnonClass (a0,a1,a2) ->
2899 (Format.fprintf fmt "(@[<2>NewAnonClass (@,";
2900 ((((fun x ->
2901 Format.fprintf fmt "@[<2>[";
2902 ignore
2903 (List.fold_left
2904 (fun sep ->
2905 fun x ->
2906 if sep then Format.fprintf fmt ";@ ";
2907 ((__60 ()) fmt) x;
2908 true) false x);
2909 Format.fprintf fmt "@,]@]")) a0;
2910 Format.fprintf fmt ",@ ";
2911 ((fun x ->
2912 Format.fprintf fmt "@[<2>[";
2913 ignore
2914 (List.fold_left
2915 (fun sep ->
2916 fun x ->
2917 if sep then Format.fprintf fmt ";@ ";
2918 ((__61 ()) fmt) x;
2919 true) false x);
2920 Format.fprintf fmt "@,]@]")) a1);
2921 Format.fprintf fmt ",@ ";
2922 ((__62 ()) fmt) a2);
2923 Format.fprintf fmt "@,))@]")
2924 | Efun (a0,a1) ->
2925 (Format.fprintf fmt "(@[<2>Efun (@,";
2926 (((__63 ()) fmt) a0;
2927 Format.fprintf fmt ",@ ";
2928 ((fun x ->
2929 Format.fprintf fmt "@[<2>[";
2930 ignore
2931 (List.fold_left
2932 (fun sep ->
2933 fun x ->
2934 if sep then Format.fprintf fmt ";@ ";
2935 ((fun (a0,a1) ->
2936 Format.fprintf fmt "(@[";
2937 (((__64 ()) fmt) a0;
2938 Format.fprintf fmt ",@ ";
2939 (Format.fprintf fmt "%B") a1);
2940 Format.fprintf fmt "@])")) x;
2941 true) false x);
2942 Format.fprintf fmt "@,]@]")) a1);
2943 Format.fprintf fmt "@,))@]")
2944 | Lfun a0 ->
2945 (Format.fprintf fmt "(@[<2>Lfun@ ";
2946 ((__65 ()) fmt) a0;
2947 Format.fprintf fmt "@])")
2948 | Xml (a0,a1,a2) ->
2949 (Format.fprintf fmt "(@[<2>Xml (@,";
2950 ((((__66 ()) fmt) a0;
2951 Format.fprintf fmt ",@ ";
2952 ((fun x ->
2953 Format.fprintf fmt "@[<2>[";
2954 ignore
2955 (List.fold_left
2956 (fun sep ->
2957 fun x ->
2958 if sep then Format.fprintf fmt ";@ ";
2959 ((__67 ()) fmt) x;
2960 true) false x);
2961 Format.fprintf fmt "@,]@]")) a1);
2962 Format.fprintf fmt ",@ ";
2963 ((fun x ->
2964 Format.fprintf fmt "@[<2>[";
2965 ignore
2966 (List.fold_left
2967 (fun sep ->
2968 fun x ->
2969 if sep then Format.fprintf fmt ";@ ";
2970 ((__68 ()) fmt) x;
2971 true) false x);
2972 Format.fprintf fmt "@,]@]")) a2);
2973 Format.fprintf fmt "@,))@]")
2974 | Unsafeexpr a0 ->
2975 (Format.fprintf fmt "(@[<2>Unsafeexpr@ ";
2976 ((__69 ()) fmt) a0;
2977 Format.fprintf fmt "@])")
2978 | Import (a0,a1) ->
2979 (Format.fprintf fmt "(@[<2>Import (@,";
2980 (((__70 ()) fmt) a0;
2981 Format.fprintf fmt ",@ ";
2982 ((__71 ()) fmt) a1);
2983 Format.fprintf fmt "@,))@]")
2984 | Callconv (a0,a1) ->
2985 (Format.fprintf fmt "(@[<2>Callconv (@,";
2986 (((__72 ()) fmt) a0;
2987 Format.fprintf fmt ",@ ";
2988 ((__73 ()) fmt) a1);
2989 Format.fprintf fmt "@,))@]")
2990 | Execution_operator a0 ->
2991 (Format.fprintf fmt "(@[<2>Execution_operator@ ";
2992 ((fun x ->
2993 Format.fprintf fmt "@[<2>[";
2994 ignore
2995 (List.fold_left
2996 (fun sep ->
2997 fun x ->
2998 if sep then Format.fprintf fmt ";@ ";
2999 ((__74 ()) fmt) x;
3000 true) false x);
3001 Format.fprintf fmt "@,]@]")) a0;
3002 Format.fprintf fmt "@])"))
3003 [@ocaml.warning "-A"])
3005 and show_expr_ : expr_ -> Ppx_deriving_runtime.string =
3006 fun x -> Format.asprintf "%a" pp_expr_ x
3008 and (pp_import_flavor :
3009 Format.formatter -> import_flavor -> Ppx_deriving_runtime.unit)
3011 ((let open! Ppx_deriving_runtime in
3012 fun fmt ->
3013 function
3014 | Include -> Format.pp_print_string fmt "Include"
3015 | Require -> Format.pp_print_string fmt "Require"
3016 | IncludeOnce -> Format.pp_print_string fmt "IncludeOnce"
3017 | RequireOnce -> Format.pp_print_string fmt "RequireOnce")
3018 [@ocaml.warning "-A"])
3020 and show_import_flavor : import_flavor -> Ppx_deriving_runtime.string =
3021 fun x -> Format.asprintf "%a" pp_import_flavor x
3023 and pp_afield : Format.formatter -> afield -> Ppx_deriving_runtime.unit =
3024 let __2 () = pp_expr
3026 and __1 () = pp_expr
3028 and __0 () = pp_expr
3030 ((let open! Ppx_deriving_runtime in
3031 fun fmt ->
3032 function
3033 | AFvalue a0 ->
3034 (Format.fprintf fmt "(@[<2>AFvalue@ ";
3035 ((__0 ()) fmt) a0;
3036 Format.fprintf fmt "@])")
3037 | AFkvalue (a0,a1) ->
3038 (Format.fprintf fmt "(@[<2>AFkvalue (@,";
3039 (((__1 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__2 ()) fmt) a1);
3040 Format.fprintf fmt "@,))@]"))
3041 [@ocaml.warning "-A"])
3043 and show_afield : afield -> Ppx_deriving_runtime.string =
3044 fun x -> Format.asprintf "%a" pp_afield x
3046 and pp_case : Format.formatter -> case -> Ppx_deriving_runtime.unit =
3047 let __2 () = pp_block
3049 and __1 () = pp_expr
3051 and __0 () = pp_block
3053 ((let open! Ppx_deriving_runtime in
3054 fun fmt ->
3055 function
3056 | Default a0 ->
3057 (Format.fprintf fmt "(@[<2>Default@ ";
3058 ((__0 ()) fmt) a0;
3059 Format.fprintf fmt "@])")
3060 | Case (a0,a1) ->
3061 (Format.fprintf fmt "(@[<2>Case (@,";
3062 (((__1 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__2 ()) fmt) a1);
3063 Format.fprintf fmt "@,))@]"))
3064 [@ocaml.warning "-A"])
3066 and show_case : case -> Ppx_deriving_runtime.string =
3067 fun x -> Format.asprintf "%a" pp_case x
3069 and pp_catch : Format.formatter -> catch -> Ppx_deriving_runtime.unit =
3070 let __2 () = pp_block
3072 and __1 () = pp_id
3074 and __0 () = pp_id
3076 ((let open! Ppx_deriving_runtime in
3077 fun fmt ->
3078 fun (a0,a1,a2) ->
3079 Format.fprintf fmt "(@[";
3080 ((((__0 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__1 ()) fmt) a1);
3081 Format.fprintf fmt ",@ ";
3082 ((__2 ()) fmt) a2);
3083 Format.fprintf fmt "@])")
3084 [@ocaml.warning "-A"])
3086 and show_catch : catch -> Ppx_deriving_runtime.string =
3087 fun x -> Format.asprintf "%a" pp_catch x
3089 and pp_field : Format.formatter -> field -> Ppx_deriving_runtime.unit =
3090 let __1 () = pp_expr
3092 and __0 () = pp_expr
3094 ((let open! Ppx_deriving_runtime in
3095 fun fmt ->
3096 fun (a0,a1) ->
3097 Format.fprintf fmt "(@[";
3098 (((__0 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__1 ()) fmt) a1);
3099 Format.fprintf fmt "@])")
3100 [@ocaml.warning "-A"])
3102 and show_field : field -> Ppx_deriving_runtime.string =
3103 fun x -> Format.asprintf "%a" pp_field x
3105 and pp_attr : Format.formatter -> attr -> Ppx_deriving_runtime.unit =
3106 let __1 () = pp_expr
3108 and __0 () = pp_id
3110 ((let open! Ppx_deriving_runtime in
3111 fun fmt ->
3112 fun (a0,a1) ->
3113 Format.fprintf fmt "(@[";
3114 (((__0 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__1 ()) fmt) a1);
3115 Format.fprintf fmt "@])")
3116 [@ocaml.warning "-A"])
3118 and show_attr : attr -> Ppx_deriving_runtime.string =
3119 fun x -> Format.asprintf "%a" pp_attr x
3121 include
3122 struct
3123 [@@@ocaml.warning "-4-26-27"]
3124 [@@@VISITORS.BEGIN ]
3125 class virtual ['self] endo =
3126 object (self : 'self)
3127 inherit [_] endo_defs
3128 method on_program env = self#on_list self#on_def env
3129 method on_nsenv env _visitors_this = _visitors_this
3130 method on_fimode env _visitors_this = _visitors_this
3131 method on_Fun env _visitors_this _visitors_c0 =
3132 let _visitors_r0 = self#on_fun_ env _visitors_c0 in
3133 if Pervasives.(==) _visitors_c0 _visitors_r0
3134 then _visitors_this
3135 else Fun _visitors_r0
3136 method on_Class env _visitors_this _visitors_c0 =
3137 let _visitors_r0 = self#on_class_ env _visitors_c0 in
3138 if Pervasives.(==) _visitors_c0 _visitors_r0
3139 then _visitors_this
3140 else Class _visitors_r0
3141 method on_Stmt env _visitors_this _visitors_c0 =
3142 let _visitors_r0 = self#on_stmt env _visitors_c0 in
3143 if Pervasives.(==) _visitors_c0 _visitors_r0
3144 then _visitors_this
3145 else Stmt _visitors_r0
3146 method on_Typedef env _visitors_this _visitors_c0 =
3147 let _visitors_r0 = self#on_typedef env _visitors_c0 in
3148 if Pervasives.(==) _visitors_c0 _visitors_r0
3149 then _visitors_this
3150 else Typedef _visitors_r0
3151 method on_Constant env _visitors_this _visitors_c0 =
3152 let _visitors_r0 = self#on_gconst env _visitors_c0 in
3153 if Pervasives.(==) _visitors_c0 _visitors_r0
3154 then _visitors_this
3155 else Constant _visitors_r0
3156 method on_Namespace env _visitors_this _visitors_c0 _visitors_c1 =
3157 let _visitors_r0 = self#on_id env _visitors_c0 in
3158 let _visitors_r1 = self#on_program env _visitors_c1 in
3160 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
3161 (Pervasives.(==) _visitors_c1 _visitors_r1)
3162 then _visitors_this
3163 else Namespace (_visitors_r0, _visitors_r1)
3164 method on_NamespaceUse env _visitors_this _visitors_c0 =
3165 let _visitors_r0 =
3166 self#on_list
3167 (fun env ->
3169 ((_visitors_c0,_visitors_c1,_visitors_c2) as
3170 _visitors_this)
3172 let _visitors_r0 = self#on_ns_kind env _visitors_c0 in
3173 let _visitors_r1 = self#on_id env _visitors_c1 in
3174 let _visitors_r2 = self#on_id env _visitors_c2 in
3176 Pervasives.(&&)
3177 (Pervasives.(==) _visitors_c0 _visitors_r0)
3178 (Pervasives.(&&)
3179 (Pervasives.(==) _visitors_c1 _visitors_r1)
3180 (Pervasives.(==) _visitors_c2 _visitors_r2))
3181 then _visitors_this
3182 else (_visitors_r0, _visitors_r1, _visitors_r2)) env
3183 _visitors_c0
3185 if Pervasives.(==) _visitors_c0 _visitors_r0
3186 then _visitors_this
3187 else NamespaceUse _visitors_r0
3188 method on_SetNamespaceEnv env _visitors_this _visitors_c0 =
3189 let _visitors_r0 = self#on_nsenv env _visitors_c0 in
3190 if Pervasives.(==) _visitors_c0 _visitors_r0
3191 then _visitors_this
3192 else SetNamespaceEnv _visitors_r0
3193 method on_def env _visitors_this =
3194 match _visitors_this with
3195 | Fun _visitors_c0 as _visitors_this ->
3196 self#on_Fun env _visitors_this _visitors_c0
3197 | Class _visitors_c0 as _visitors_this ->
3198 self#on_Class env _visitors_this _visitors_c0
3199 | Stmt _visitors_c0 as _visitors_this ->
3200 self#on_Stmt env _visitors_this _visitors_c0
3201 | Typedef _visitors_c0 as _visitors_this ->
3202 self#on_Typedef env _visitors_this _visitors_c0
3203 | Constant _visitors_c0 as _visitors_this ->
3204 self#on_Constant env _visitors_this _visitors_c0
3205 | Namespace (_visitors_c0,_visitors_c1) as _visitors_this ->
3206 self#on_Namespace env _visitors_this _visitors_c0 _visitors_c1
3207 | NamespaceUse _visitors_c0 as _visitors_this ->
3208 self#on_NamespaceUse env _visitors_this _visitors_c0
3209 | SetNamespaceEnv _visitors_c0 as _visitors_this ->
3210 self#on_SetNamespaceEnv env _visitors_this _visitors_c0
3211 method on_typedef env _visitors_this =
3212 let _visitors_r0 = self#on_id env _visitors_this.t_id in
3213 let _visitors_r1 =
3214 self#on_list self#on_tparam env _visitors_this.t_tparams in
3215 let _visitors_r2 =
3216 self#on_tconstraint env _visitors_this.t_constraint in
3217 let _visitors_r3 = self#on_typedef_kind env _visitors_this.t_kind
3219 let _visitors_r4 =
3220 self#on_list self#on_user_attribute env
3221 _visitors_this.t_user_attributes
3223 let _visitors_r5 = self#on_nsenv env _visitors_this.t_namespace in
3224 let _visitors_r6 = self#on_fimode env _visitors_this.t_mode in
3226 Pervasives.(&&)
3227 (Pervasives.(==) _visitors_this.t_id _visitors_r0)
3228 (Pervasives.(&&)
3229 (Pervasives.(==) _visitors_this.t_tparams _visitors_r1)
3230 (Pervasives.(&&)
3231 (Pervasives.(==) _visitors_this.t_constraint _visitors_r2)
3232 (Pervasives.(&&)
3233 (Pervasives.(==) _visitors_this.t_kind _visitors_r3)
3234 (Pervasives.(&&)
3235 (Pervasives.(==) _visitors_this.t_user_attributes
3236 _visitors_r4)
3237 (Pervasives.(&&)
3238 (Pervasives.(==) _visitors_this.t_namespace
3239 _visitors_r5)
3240 (Pervasives.(==) _visitors_this.t_mode
3241 _visitors_r6))))))
3242 then _visitors_this
3243 else
3245 t_id = _visitors_r0;
3246 t_tparams = _visitors_r1;
3247 t_constraint = _visitors_r2;
3248 t_kind = _visitors_r3;
3249 t_user_attributes = _visitors_r4;
3250 t_namespace = _visitors_r5;
3251 t_mode = _visitors_r6
3253 method on_gconst env _visitors_this =
3254 let _visitors_r0 = self#on_fimode env _visitors_this.cst_mode in
3255 let _visitors_r1 = self#on_cst_kind env _visitors_this.cst_kind in
3256 let _visitors_r2 = self#on_id env _visitors_this.cst_name in
3257 let _visitors_r3 =
3258 self#on_option self#on_hint env _visitors_this.cst_type in
3259 let _visitors_r4 = self#on_expr env _visitors_this.cst_value in
3260 let _visitors_r5 = self#on_nsenv env _visitors_this.cst_namespace
3262 let _visitors_r6 = self#on_pos env _visitors_this.cst_span in
3264 Pervasives.(&&)
3265 (Pervasives.(==) _visitors_this.cst_mode _visitors_r0)
3266 (Pervasives.(&&)
3267 (Pervasives.(==) _visitors_this.cst_kind _visitors_r1)
3268 (Pervasives.(&&)
3269 (Pervasives.(==) _visitors_this.cst_name _visitors_r2)
3270 (Pervasives.(&&)
3271 (Pervasives.(==) _visitors_this.cst_type _visitors_r3)
3272 (Pervasives.(&&)
3273 (Pervasives.(==) _visitors_this.cst_value
3274 _visitors_r4)
3275 (Pervasives.(&&)
3276 (Pervasives.(==) _visitors_this.cst_namespace
3277 _visitors_r5)
3278 (Pervasives.(==) _visitors_this.cst_span
3279 _visitors_r6))))))
3280 then _visitors_this
3281 else
3283 cst_mode = _visitors_r0;
3284 cst_kind = _visitors_r1;
3285 cst_name = _visitors_r2;
3286 cst_type = _visitors_r3;
3287 cst_value = _visitors_r4;
3288 cst_namespace = _visitors_r5;
3289 cst_span = _visitors_r6
3291 method on_tparam env
3292 ((_visitors_c0,_visitors_c1,_visitors_c2) as _visitors_this) =
3293 let _visitors_r0 = self#on_variance env _visitors_c0 in
3294 let _visitors_r1 = self#on_id env _visitors_c1 in
3295 let _visitors_r2 =
3296 self#on_list
3297 (fun env ->
3298 fun ((_visitors_c0,_visitors_c1) as _visitors_this) ->
3299 let _visitors_r0 =
3300 self#on_constraint_kind env _visitors_c0 in
3301 let _visitors_r1 = self#on_hint env _visitors_c1 in
3303 Pervasives.(&&)
3304 (Pervasives.(==) _visitors_c0 _visitors_r0)
3305 (Pervasives.(==) _visitors_c1 _visitors_r1)
3306 then _visitors_this
3307 else (_visitors_r0, _visitors_r1)) env _visitors_c2
3310 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
3311 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
3312 (Pervasives.(==) _visitors_c2 _visitors_r2))
3313 then _visitors_this
3314 else (_visitors_r0, _visitors_r1, _visitors_r2)
3315 method on_tconstraint env = self#on_option self#on_hint env
3316 method on_Alias env _visitors_this _visitors_c0 =
3317 let _visitors_r0 = self#on_hint env _visitors_c0 in
3318 if Pervasives.(==) _visitors_c0 _visitors_r0
3319 then _visitors_this
3320 else Alias _visitors_r0
3321 method on_NewType env _visitors_this _visitors_c0 =
3322 let _visitors_r0 = self#on_hint env _visitors_c0 in
3323 if Pervasives.(==) _visitors_c0 _visitors_r0
3324 then _visitors_this
3325 else NewType _visitors_r0
3326 method on_typedef_kind env _visitors_this =
3327 match _visitors_this with
3328 | Alias _visitors_c0 as _visitors_this ->
3329 self#on_Alias env _visitors_this _visitors_c0
3330 | NewType _visitors_c0 as _visitors_this ->
3331 self#on_NewType env _visitors_this _visitors_c0
3332 method on_class_ env _visitors_this =
3333 let _visitors_r0 = self#on_fimode env _visitors_this.c_mode in
3334 let _visitors_r1 =
3335 self#on_list self#on_user_attribute env
3336 _visitors_this.c_user_attributes
3338 let _visitors_r2 = self#on_bool env _visitors_this.c_final in
3339 let _visitors_r3 = self#on_class_kind env _visitors_this.c_kind in
3340 let _visitors_r4 = self#on_bool env _visitors_this.c_is_xhp in
3341 let _visitors_r5 = self#on_id env _visitors_this.c_name in
3342 let _visitors_r6 =
3343 self#on_list self#on_tparam env _visitors_this.c_tparams in
3344 let _visitors_r7 =
3345 self#on_list self#on_hint env _visitors_this.c_extends in
3346 let _visitors_r8 =
3347 self#on_list self#on_hint env _visitors_this.c_implements in
3348 let _visitors_r9 =
3349 self#on_list self#on_class_elt env _visitors_this.c_body in
3350 let _visitors_r10 = self#on_nsenv env _visitors_this.c_namespace
3352 let _visitors_r11 =
3353 self#on_option self#on_enum_ env _visitors_this.c_enum in
3354 let _visitors_r12 = self#on_pos env _visitors_this.c_span in
3355 let _visitors_r13 =
3356 self#on_option self#on_string env _visitors_this.c_doc_comment
3359 Pervasives.(&&)
3360 (Pervasives.(==) _visitors_this.c_mode _visitors_r0)
3361 (Pervasives.(&&)
3362 (Pervasives.(==) _visitors_this.c_user_attributes
3363 _visitors_r1)
3364 (Pervasives.(&&)
3365 (Pervasives.(==) _visitors_this.c_final _visitors_r2)
3366 (Pervasives.(&&)
3367 (Pervasives.(==) _visitors_this.c_kind _visitors_r3)
3368 (Pervasives.(&&)
3369 (Pervasives.(==) _visitors_this.c_is_xhp
3370 _visitors_r4)
3371 (Pervasives.(&&)
3372 (Pervasives.(==) _visitors_this.c_name
3373 _visitors_r5)
3374 (Pervasives.(&&)
3375 (Pervasives.(==) _visitors_this.c_tparams
3376 _visitors_r6)
3377 (Pervasives.(&&)
3378 (Pervasives.(==) _visitors_this.c_extends
3379 _visitors_r7)
3380 (Pervasives.(&&)
3381 (Pervasives.(==)
3382 _visitors_this.c_implements
3383 _visitors_r8)
3384 (Pervasives.(&&)
3385 (Pervasives.(==)
3386 _visitors_this.c_body
3387 _visitors_r9)
3388 (Pervasives.(&&)
3389 (Pervasives.(==)
3390 _visitors_this.c_namespace
3391 _visitors_r10)
3392 (Pervasives.(&&)
3393 (Pervasives.(==)
3394 _visitors_this.c_enum
3395 _visitors_r11)
3396 (Pervasives.(&&)
3397 (Pervasives.(==)
3398 _visitors_this.c_span
3399 _visitors_r12)
3400 (Pervasives.(==)
3401 _visitors_this.c_doc_comment
3402 _visitors_r13)))))))))))))
3403 then _visitors_this
3404 else
3406 c_mode = _visitors_r0;
3407 c_user_attributes = _visitors_r1;
3408 c_final = _visitors_r2;
3409 c_kind = _visitors_r3;
3410 c_is_xhp = _visitors_r4;
3411 c_name = _visitors_r5;
3412 c_tparams = _visitors_r6;
3413 c_extends = _visitors_r7;
3414 c_implements = _visitors_r8;
3415 c_body = _visitors_r9;
3416 c_namespace = _visitors_r10;
3417 c_enum = _visitors_r11;
3418 c_span = _visitors_r12;
3419 c_doc_comment = _visitors_r13
3421 method on_enum_ env _visitors_this =
3422 let _visitors_r0 = self#on_hint env _visitors_this.e_base in
3423 let _visitors_r1 =
3424 self#on_option self#on_hint env _visitors_this.e_constraint in
3426 Pervasives.(&&)
3427 (Pervasives.(==) _visitors_this.e_base _visitors_r0)
3428 (Pervasives.(==) _visitors_this.e_constraint _visitors_r1)
3429 then _visitors_this
3430 else { e_base = _visitors_r0; e_constraint = _visitors_r1 }
3431 method on_user_attribute env _visitors_this =
3432 let _visitors_r0 = self#on_id env _visitors_this.ua_name in
3433 let _visitors_r1 =
3434 self#on_list self#on_expr env _visitors_this.ua_params in
3436 Pervasives.(&&)
3437 (Pervasives.(==) _visitors_this.ua_name _visitors_r0)
3438 (Pervasives.(==) _visitors_this.ua_params _visitors_r1)
3439 then _visitors_this
3440 else { ua_name = _visitors_r0; ua_params = _visitors_r1 }
3441 method on_Const env _visitors_this _visitors_c0 _visitors_c1 =
3442 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0 in
3443 let _visitors_r1 =
3444 self#on_list
3445 (fun env ->
3446 fun ((_visitors_c0,_visitors_c1) as _visitors_this) ->
3447 let _visitors_r0 = self#on_id env _visitors_c0 in
3448 let _visitors_r1 = self#on_expr env _visitors_c1 in
3450 Pervasives.(&&)
3451 (Pervasives.(==) _visitors_c0 _visitors_r0)
3452 (Pervasives.(==) _visitors_c1 _visitors_r1)
3453 then _visitors_this
3454 else (_visitors_r0, _visitors_r1)) env _visitors_c1
3457 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
3458 (Pervasives.(==) _visitors_c1 _visitors_r1)
3459 then _visitors_this
3460 else Const (_visitors_r0, _visitors_r1)
3461 method on_AbsConst env _visitors_this _visitors_c0 _visitors_c1 =
3462 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0 in
3463 let _visitors_r1 = self#on_id env _visitors_c1 in
3465 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
3466 (Pervasives.(==) _visitors_c1 _visitors_r1)
3467 then _visitors_this
3468 else AbsConst (_visitors_r0, _visitors_r1)
3469 method on_Attributes env _visitors_this _visitors_c0 =
3470 let _visitors_r0 = self#on_list self#on_class_attr env _visitors_c0
3472 if Pervasives.(==) _visitors_c0 _visitors_r0
3473 then _visitors_this
3474 else Attributes _visitors_r0
3475 method on_TypeConst env _visitors_this _visitors_c0 =
3476 let _visitors_r0 = self#on_typeconst env _visitors_c0 in
3477 if Pervasives.(==) _visitors_c0 _visitors_r0
3478 then _visitors_this
3479 else TypeConst _visitors_r0
3480 method on_ClassUse env _visitors_this _visitors_c0 =
3481 let _visitors_r0 = self#on_hint env _visitors_c0 in
3482 if Pervasives.(==) _visitors_c0 _visitors_r0
3483 then _visitors_this
3484 else ClassUse _visitors_r0
3485 method on_ClassUseAlias env _visitors_this _visitors_c0 _visitors_c1
3486 _visitors_c2 _visitors_c3 =
3487 let _visitors_r0 = self#on_option self#on_id env _visitors_c0 in
3488 let _visitors_r1 = self#on_pstring env _visitors_c1 in
3489 let _visitors_r2 = self#on_option self#on_id env _visitors_c2 in
3490 let _visitors_r3 = self#on_list self#on_kind env _visitors_c3 in
3492 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
3493 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
3494 (Pervasives.(&&) (Pervasives.(==) _visitors_c2 _visitors_r2)
3495 (Pervasives.(==) _visitors_c3 _visitors_r3)))
3496 then _visitors_this
3497 else
3498 ClassUseAlias
3499 (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3)
3500 method on_ClassUsePrecedence env _visitors_this _visitors_c0
3501 _visitors_c1 _visitors_c2 =
3502 let _visitors_r0 = self#on_id env _visitors_c0 in
3503 let _visitors_r1 = self#on_pstring env _visitors_c1 in
3504 let _visitors_r2 = self#on_list self#on_id env _visitors_c2 in
3506 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
3507 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
3508 (Pervasives.(==) _visitors_c2 _visitors_r2))
3509 then _visitors_this
3510 else ClassUsePrecedence (_visitors_r0, _visitors_r1, _visitors_r2)
3511 method on_XhpAttrUse env _visitors_this _visitors_c0 =
3512 let _visitors_r0 = self#on_hint env _visitors_c0 in
3513 if Pervasives.(==) _visitors_c0 _visitors_r0
3514 then _visitors_this
3515 else XhpAttrUse _visitors_r0
3516 method on_ClassTraitRequire env _visitors_this _visitors_c0
3517 _visitors_c1 =
3518 let _visitors_r0 = self#on_trait_req_kind env _visitors_c0 in
3519 let _visitors_r1 = self#on_hint env _visitors_c1 in
3521 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
3522 (Pervasives.(==) _visitors_c1 _visitors_r1)
3523 then _visitors_this
3524 else ClassTraitRequire (_visitors_r0, _visitors_r1)
3525 method on_ClassVars env _visitors_this _visitors_c0 =
3526 let _visitors_r0 = self#on_class_vars_ env _visitors_c0 in
3527 if Pervasives.(==) _visitors_c0 _visitors_r0
3528 then _visitors_this
3529 else ClassVars _visitors_r0
3530 method on_XhpAttr env _visitors_this _visitors_c0 _visitors_c1
3531 _visitors_c2 _visitors_c3 =
3532 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0 in
3533 let _visitors_r1 = self#on_class_var env _visitors_c1 in
3534 let _visitors_r2 = self#on_bool env _visitors_c2 in
3535 let _visitors_r3 =
3536 self#on_option
3537 (fun env ->
3539 ((_visitors_c0,_visitors_c1,_visitors_c2) as
3540 _visitors_this)
3542 let _visitors_r0 = self#on_pos env _visitors_c0 in
3543 let _visitors_r1 = self#on_bool env _visitors_c1 in
3544 let _visitors_r2 =
3545 self#on_list self#on_expr env _visitors_c2 in
3547 Pervasives.(&&)
3548 (Pervasives.(==) _visitors_c0 _visitors_r0)
3549 (Pervasives.(&&)
3550 (Pervasives.(==) _visitors_c1 _visitors_r1)
3551 (Pervasives.(==) _visitors_c2 _visitors_r2))
3552 then _visitors_this
3553 else (_visitors_r0, _visitors_r1, _visitors_r2)) env
3554 _visitors_c3
3557 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
3558 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
3559 (Pervasives.(&&) (Pervasives.(==) _visitors_c2 _visitors_r2)
3560 (Pervasives.(==) _visitors_c3 _visitors_r3)))
3561 then _visitors_this
3562 else
3563 XhpAttr (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3)
3564 method on_Method env _visitors_this _visitors_c0 =
3565 let _visitors_r0 = self#on_method_ env _visitors_c0 in
3566 if Pervasives.(==) _visitors_c0 _visitors_r0
3567 then _visitors_this
3568 else Method _visitors_r0
3569 method on_XhpCategory env _visitors_this _visitors_c0 =
3570 let _visitors_r0 = self#on_list self#on_pstring env _visitors_c0
3572 if Pervasives.(==) _visitors_c0 _visitors_r0
3573 then _visitors_this
3574 else XhpCategory _visitors_r0
3575 method on_XhpChild env _visitors_this _visitors_c0 =
3576 let _visitors_r0 = self#on_xhp_child env _visitors_c0 in
3577 if Pervasives.(==) _visitors_c0 _visitors_r0
3578 then _visitors_this
3579 else XhpChild _visitors_r0
3580 method on_class_elt env _visitors_this =
3581 match _visitors_this with
3582 | Const (_visitors_c0,_visitors_c1) as _visitors_this ->
3583 self#on_Const env _visitors_this _visitors_c0 _visitors_c1
3584 | AbsConst (_visitors_c0,_visitors_c1) as _visitors_this ->
3585 self#on_AbsConst env _visitors_this _visitors_c0 _visitors_c1
3586 | Attributes _visitors_c0 as _visitors_this ->
3587 self#on_Attributes env _visitors_this _visitors_c0
3588 | TypeConst _visitors_c0 as _visitors_this ->
3589 self#on_TypeConst env _visitors_this _visitors_c0
3590 | ClassUse _visitors_c0 as _visitors_this ->
3591 self#on_ClassUse env _visitors_this _visitors_c0
3592 | ClassUseAlias
3593 (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) as
3594 _visitors_this ->
3595 self#on_ClassUseAlias env _visitors_this _visitors_c0
3596 _visitors_c1 _visitors_c2 _visitors_c3
3597 | ClassUsePrecedence (_visitors_c0,_visitors_c1,_visitors_c2) as
3598 _visitors_this ->
3599 self#on_ClassUsePrecedence env _visitors_this _visitors_c0
3600 _visitors_c1 _visitors_c2
3601 | XhpAttrUse _visitors_c0 as _visitors_this ->
3602 self#on_XhpAttrUse env _visitors_this _visitors_c0
3603 | ClassTraitRequire (_visitors_c0,_visitors_c1) as _visitors_this
3605 self#on_ClassTraitRequire env _visitors_this _visitors_c0
3606 _visitors_c1
3607 | ClassVars _visitors_c0 as _visitors_this ->
3608 self#on_ClassVars env _visitors_this _visitors_c0
3609 | XhpAttr (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) as
3610 _visitors_this ->
3611 self#on_XhpAttr env _visitors_this _visitors_c0 _visitors_c1
3612 _visitors_c2 _visitors_c3
3613 | Method _visitors_c0 as _visitors_this ->
3614 self#on_Method env _visitors_this _visitors_c0
3615 | XhpCategory _visitors_c0 as _visitors_this ->
3616 self#on_XhpCategory env _visitors_this _visitors_c0
3617 | XhpChild _visitors_c0 as _visitors_this ->
3618 self#on_XhpChild env _visitors_this _visitors_c0
3619 method on_ChildName env _visitors_this _visitors_c0 =
3620 let _visitors_r0 = self#on_id env _visitors_c0 in
3621 if Pervasives.(==) _visitors_c0 _visitors_r0
3622 then _visitors_this
3623 else ChildName _visitors_r0
3624 method on_ChildList env _visitors_this _visitors_c0 =
3625 let _visitors_r0 = self#on_list self#on_xhp_child env _visitors_c0
3627 if Pervasives.(==) _visitors_c0 _visitors_r0
3628 then _visitors_this
3629 else ChildList _visitors_r0
3630 method on_ChildUnary env _visitors_this _visitors_c0 _visitors_c1 =
3631 let _visitors_r0 = self#on_xhp_child env _visitors_c0 in
3632 let _visitors_r1 = self#on_xhp_child_op env _visitors_c1 in
3634 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
3635 (Pervasives.(==) _visitors_c1 _visitors_r1)
3636 then _visitors_this
3637 else ChildUnary (_visitors_r0, _visitors_r1)
3638 method on_ChildBinary env _visitors_this _visitors_c0 _visitors_c1 =
3639 let _visitors_r0 = self#on_xhp_child env _visitors_c0 in
3640 let _visitors_r1 = self#on_xhp_child env _visitors_c1 in
3642 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
3643 (Pervasives.(==) _visitors_c1 _visitors_r1)
3644 then _visitors_this
3645 else ChildBinary (_visitors_r0, _visitors_r1)
3646 method on_xhp_child env _visitors_this =
3647 match _visitors_this with
3648 | ChildName _visitors_c0 as _visitors_this ->
3649 self#on_ChildName env _visitors_this _visitors_c0
3650 | ChildList _visitors_c0 as _visitors_this ->
3651 self#on_ChildList env _visitors_this _visitors_c0
3652 | ChildUnary (_visitors_c0,_visitors_c1) as _visitors_this ->
3653 self#on_ChildUnary env _visitors_this _visitors_c0 _visitors_c1
3654 | ChildBinary (_visitors_c0,_visitors_c1) as _visitors_this ->
3655 self#on_ChildBinary env _visitors_this _visitors_c0
3656 _visitors_c1
3657 method on_ChildStar env _visitors_this =
3658 if true then _visitors_this else ChildStar
3659 method on_ChildPlus env _visitors_this =
3660 if true then _visitors_this else ChildPlus
3661 method on_ChildQuestion env _visitors_this =
3662 if true then _visitors_this else ChildQuestion
3663 method on_xhp_child_op env _visitors_this =
3664 match _visitors_this with
3665 | ChildStar as _visitors_this ->
3666 self#on_ChildStar env _visitors_this
3667 | ChildPlus as _visitors_this ->
3668 self#on_ChildPlus env _visitors_this
3669 | ChildQuestion as _visitors_this ->
3670 self#on_ChildQuestion env _visitors_this
3671 method on_CA_name env _visitors_this _visitors_c0 =
3672 let _visitors_r0 = self#on_id env _visitors_c0 in
3673 if Pervasives.(==) _visitors_c0 _visitors_r0
3674 then _visitors_this
3675 else CA_name _visitors_r0
3676 method on_CA_field env _visitors_this _visitors_c0 =
3677 let _visitors_r0 = self#on_ca_field env _visitors_c0 in
3678 if Pervasives.(==) _visitors_c0 _visitors_r0
3679 then _visitors_this
3680 else CA_field _visitors_r0
3681 method on_class_attr env _visitors_this =
3682 match _visitors_this with
3683 | CA_name _visitors_c0 as _visitors_this ->
3684 self#on_CA_name env _visitors_this _visitors_c0
3685 | CA_field _visitors_c0 as _visitors_this ->
3686 self#on_CA_field env _visitors_this _visitors_c0
3687 method on_ca_field env _visitors_this =
3688 let _visitors_r0 = self#on_ca_type env _visitors_this.ca_type in
3689 let _visitors_r1 = self#on_id env _visitors_this.ca_id in
3690 let _visitors_r2 =
3691 self#on_option self#on_expr env _visitors_this.ca_value in
3692 let _visitors_r3 = self#on_bool env _visitors_this.ca_required in
3694 Pervasives.(&&)
3695 (Pervasives.(==) _visitors_this.ca_type _visitors_r0)
3696 (Pervasives.(&&)
3697 (Pervasives.(==) _visitors_this.ca_id _visitors_r1)
3698 (Pervasives.(&&)
3699 (Pervasives.(==) _visitors_this.ca_value _visitors_r2)
3700 (Pervasives.(==) _visitors_this.ca_required _visitors_r3)))
3701 then _visitors_this
3702 else
3704 ca_type = _visitors_r0;
3705 ca_id = _visitors_r1;
3706 ca_value = _visitors_r2;
3707 ca_required = _visitors_r3
3709 method on_CA_hint env _visitors_this _visitors_c0 =
3710 let _visitors_r0 = self#on_hint env _visitors_c0 in
3711 if Pervasives.(==) _visitors_c0 _visitors_r0
3712 then _visitors_this
3713 else CA_hint _visitors_r0
3714 method on_CA_enum env _visitors_this _visitors_c0 =
3715 let _visitors_r0 = self#on_list self#on_string env _visitors_c0 in
3716 if Pervasives.(==) _visitors_c0 _visitors_r0
3717 then _visitors_this
3718 else CA_enum _visitors_r0
3719 method on_ca_type env _visitors_this =
3720 match _visitors_this with
3721 | CA_hint _visitors_c0 as _visitors_this ->
3722 self#on_CA_hint env _visitors_this _visitors_c0
3723 | CA_enum _visitors_c0 as _visitors_this ->
3724 self#on_CA_enum env _visitors_this _visitors_c0
3725 method on_class_var env
3726 ((_visitors_c0,_visitors_c1,_visitors_c2) as _visitors_this) =
3727 let _visitors_r0 = self#on_pos env _visitors_c0 in
3728 let _visitors_r1 = self#on_id env _visitors_c1 in
3729 let _visitors_r2 = self#on_option self#on_expr env _visitors_c2 in
3731 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
3732 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
3733 (Pervasives.(==) _visitors_c2 _visitors_r2))
3734 then _visitors_this
3735 else (_visitors_r0, _visitors_r1, _visitors_r2)
3736 method on_class_vars_ env _visitors_this =
3737 let _visitors_r0 =
3738 self#on_list self#on_kind env _visitors_this.cv_kinds in
3739 let _visitors_r1 =
3740 self#on_option self#on_hint env _visitors_this.cv_hint in
3741 let _visitors_r2 =
3742 self#on_is_variadic env _visitors_this.cv_is_promoted_variadic
3744 let _visitors_r3 =
3745 self#on_list self#on_class_var env _visitors_this.cv_names in
3746 let _visitors_r4 =
3747 self#on_option self#on_string env _visitors_this.cv_doc_comment
3749 let _visitors_r5 =
3750 self#on_list self#on_user_attribute env
3751 _visitors_this.cv_user_attributes
3754 Pervasives.(&&)
3755 (Pervasives.(==) _visitors_this.cv_kinds _visitors_r0)
3756 (Pervasives.(&&)
3757 (Pervasives.(==) _visitors_this.cv_hint _visitors_r1)
3758 (Pervasives.(&&)
3759 (Pervasives.(==) _visitors_this.cv_is_promoted_variadic
3760 _visitors_r2)
3761 (Pervasives.(&&)
3762 (Pervasives.(==) _visitors_this.cv_names _visitors_r3)
3763 (Pervasives.(&&)
3764 (Pervasives.(==) _visitors_this.cv_doc_comment
3765 _visitors_r4)
3766 (Pervasives.(==) _visitors_this.cv_user_attributes
3767 _visitors_r5)))))
3768 then _visitors_this
3769 else
3771 cv_kinds = _visitors_r0;
3772 cv_hint = _visitors_r1;
3773 cv_is_promoted_variadic = _visitors_r2;
3774 cv_names = _visitors_r3;
3775 cv_doc_comment = _visitors_r4;
3776 cv_user_attributes = _visitors_r5
3778 method on_method_ env _visitors_this =
3779 let _visitors_r0 =
3780 self#on_list self#on_kind env _visitors_this.m_kind in
3781 let _visitors_r1 =
3782 self#on_list self#on_tparam env _visitors_this.m_tparams in
3783 let _visitors_r2 =
3784 self#on_list
3785 (fun env ->
3787 ((_visitors_c0,_visitors_c1,_visitors_c2) as
3788 _visitors_this)
3790 let _visitors_r0 = self#on_hint env _visitors_c0 in
3791 let _visitors_r1 =
3792 self#on_constraint_kind env _visitors_c1 in
3793 let _visitors_r2 = self#on_hint env _visitors_c2 in
3795 Pervasives.(&&)
3796 (Pervasives.(==) _visitors_c0 _visitors_r0)
3797 (Pervasives.(&&)
3798 (Pervasives.(==) _visitors_c1 _visitors_r1)
3799 (Pervasives.(==) _visitors_c2 _visitors_r2))
3800 then _visitors_this
3801 else (_visitors_r0, _visitors_r1, _visitors_r2)) env
3802 _visitors_this.m_constrs
3804 let _visitors_r3 = self#on_id env _visitors_this.m_name in
3805 let _visitors_r4 =
3806 self#on_list self#on_fun_param env _visitors_this.m_params in
3807 let _visitors_r5 = self#on_block env _visitors_this.m_body in
3808 let _visitors_r6 =
3809 self#on_list self#on_user_attribute env
3810 _visitors_this.m_user_attributes
3812 let _visitors_r7 =
3813 self#on_option self#on_hint env _visitors_this.m_ret in
3814 let _visitors_r8 = self#on_bool env _visitors_this.m_ret_by_ref in
3815 let _visitors_r9 = self#on_fun_kind env _visitors_this.m_fun_kind
3817 let _visitors_r10 = self#on_pos env _visitors_this.m_span in
3818 let _visitors_r11 =
3819 self#on_option self#on_string env _visitors_this.m_doc_comment
3822 Pervasives.(&&)
3823 (Pervasives.(==) _visitors_this.m_kind _visitors_r0)
3824 (Pervasives.(&&)
3825 (Pervasives.(==) _visitors_this.m_tparams _visitors_r1)
3826 (Pervasives.(&&)
3827 (Pervasives.(==) _visitors_this.m_constrs _visitors_r2)
3828 (Pervasives.(&&)
3829 (Pervasives.(==) _visitors_this.m_name _visitors_r3)
3830 (Pervasives.(&&)
3831 (Pervasives.(==) _visitors_this.m_params
3832 _visitors_r4)
3833 (Pervasives.(&&)
3834 (Pervasives.(==) _visitors_this.m_body
3835 _visitors_r5)
3836 (Pervasives.(&&)
3837 (Pervasives.(==)
3838 _visitors_this.m_user_attributes
3839 _visitors_r6)
3840 (Pervasives.(&&)
3841 (Pervasives.(==) _visitors_this.m_ret
3842 _visitors_r7)
3843 (Pervasives.(&&)
3844 (Pervasives.(==)
3845 _visitors_this.m_ret_by_ref
3846 _visitors_r8)
3847 (Pervasives.(&&)
3848 (Pervasives.(==)
3849 _visitors_this.m_fun_kind
3850 _visitors_r9)
3851 (Pervasives.(&&)
3852 (Pervasives.(==)
3853 _visitors_this.m_span
3854 _visitors_r10)
3855 (Pervasives.(==)
3856 _visitors_this.m_doc_comment
3857 _visitors_r11)))))))))))
3858 then _visitors_this
3859 else
3861 m_kind = _visitors_r0;
3862 m_tparams = _visitors_r1;
3863 m_constrs = _visitors_r2;
3864 m_name = _visitors_r3;
3865 m_params = _visitors_r4;
3866 m_body = _visitors_r5;
3867 m_user_attributes = _visitors_r6;
3868 m_ret = _visitors_r7;
3869 m_ret_by_ref = _visitors_r8;
3870 m_fun_kind = _visitors_r9;
3871 m_span = _visitors_r10;
3872 m_doc_comment = _visitors_r11
3874 method on_typeconst env _visitors_this =
3875 let _visitors_r0 = self#on_bool env _visitors_this.tconst_abstract
3877 let _visitors_r1 = self#on_id env _visitors_this.tconst_name in
3878 let _visitors_r2 =
3879 self#on_list self#on_tparam env _visitors_this.tconst_tparams in
3880 let _visitors_r3 =
3881 self#on_option self#on_hint env _visitors_this.tconst_constraint
3883 let _visitors_r4 =
3884 self#on_option self#on_hint env _visitors_this.tconst_type in
3885 let _visitors_r5 = self#on_pos env _visitors_this.tconst_span in
3887 Pervasives.(&&)
3888 (Pervasives.(==) _visitors_this.tconst_abstract _visitors_r0)
3889 (Pervasives.(&&)
3890 (Pervasives.(==) _visitors_this.tconst_name _visitors_r1)
3891 (Pervasives.(&&)
3892 (Pervasives.(==) _visitors_this.tconst_tparams
3893 _visitors_r2)
3894 (Pervasives.(&&)
3895 (Pervasives.(==) _visitors_this.tconst_constraint
3896 _visitors_r3)
3897 (Pervasives.(&&)
3898 (Pervasives.(==) _visitors_this.tconst_type
3899 _visitors_r4)
3900 (Pervasives.(==) _visitors_this.tconst_span
3901 _visitors_r5)))))
3902 then _visitors_this
3903 else
3905 tconst_abstract = _visitors_r0;
3906 tconst_name = _visitors_r1;
3907 tconst_tparams = _visitors_r2;
3908 tconst_constraint = _visitors_r3;
3909 tconst_type = _visitors_r4;
3910 tconst_span = _visitors_r5
3912 method on_is_reference env = self#on_bool env
3913 method on_is_variadic env = self#on_bool env
3914 method on_fun_param env _visitors_this =
3915 let _visitors_r0 =
3916 self#on_option self#on_hint env _visitors_this.param_hint in
3917 let _visitors_r1 =
3918 self#on_is_reference env _visitors_this.param_is_reference in
3919 let _visitors_r2 =
3920 self#on_is_variadic env _visitors_this.param_is_variadic in
3921 let _visitors_r3 = self#on_id env _visitors_this.param_id in
3922 let _visitors_r4 =
3923 self#on_option self#on_expr env _visitors_this.param_expr in
3924 let _visitors_r5 =
3925 self#on_option self#on_kind env _visitors_this.param_modifier in
3926 let _visitors_r6 =
3927 self#on_option self#on_param_kind env
3928 _visitors_this.param_callconv
3930 let _visitors_r7 =
3931 self#on_list self#on_user_attribute env
3932 _visitors_this.param_user_attributes
3935 Pervasives.(&&)
3936 (Pervasives.(==) _visitors_this.param_hint _visitors_r0)
3937 (Pervasives.(&&)
3938 (Pervasives.(==) _visitors_this.param_is_reference
3939 _visitors_r1)
3940 (Pervasives.(&&)
3941 (Pervasives.(==) _visitors_this.param_is_variadic
3942 _visitors_r2)
3943 (Pervasives.(&&)
3944 (Pervasives.(==) _visitors_this.param_id _visitors_r3)
3945 (Pervasives.(&&)
3946 (Pervasives.(==) _visitors_this.param_expr
3947 _visitors_r4)
3948 (Pervasives.(&&)
3949 (Pervasives.(==) _visitors_this.param_modifier
3950 _visitors_r5)
3951 (Pervasives.(&&)
3952 (Pervasives.(==)
3953 _visitors_this.param_callconv _visitors_r6)
3954 (Pervasives.(==)
3955 _visitors_this.param_user_attributes
3956 _visitors_r7)))))))
3957 then _visitors_this
3958 else
3960 param_hint = _visitors_r0;
3961 param_is_reference = _visitors_r1;
3962 param_is_variadic = _visitors_r2;
3963 param_id = _visitors_r3;
3964 param_expr = _visitors_r4;
3965 param_modifier = _visitors_r5;
3966 param_callconv = _visitors_r6;
3967 param_user_attributes = _visitors_r7
3969 method on_fun_ env _visitors_this =
3970 let _visitors_r0 = self#on_fimode env _visitors_this.f_mode in
3971 let _visitors_r1 =
3972 self#on_list self#on_tparam env _visitors_this.f_tparams in
3973 let _visitors_r2 =
3974 self#on_list
3975 (fun env ->
3977 ((_visitors_c0,_visitors_c1,_visitors_c2) as
3978 _visitors_this)
3980 let _visitors_r0 = self#on_hint env _visitors_c0 in
3981 let _visitors_r1 =
3982 self#on_constraint_kind env _visitors_c1 in
3983 let _visitors_r2 = self#on_hint env _visitors_c2 in
3985 Pervasives.(&&)
3986 (Pervasives.(==) _visitors_c0 _visitors_r0)
3987 (Pervasives.(&&)
3988 (Pervasives.(==) _visitors_c1 _visitors_r1)
3989 (Pervasives.(==) _visitors_c2 _visitors_r2))
3990 then _visitors_this
3991 else (_visitors_r0, _visitors_r1, _visitors_r2)) env
3992 _visitors_this.f_constrs
3994 let _visitors_r3 =
3995 self#on_option self#on_hint env _visitors_this.f_ret in
3996 let _visitors_r4 = self#on_bool env _visitors_this.f_ret_by_ref in
3997 let _visitors_r5 = self#on_id env _visitors_this.f_name in
3998 let _visitors_r6 =
3999 self#on_list self#on_fun_param env _visitors_this.f_params in
4000 let _visitors_r7 = self#on_block env _visitors_this.f_body in
4001 let _visitors_r8 =
4002 self#on_list self#on_user_attribute env
4003 _visitors_this.f_user_attributes
4005 let _visitors_r9 = self#on_fun_kind env _visitors_this.f_fun_kind
4007 let _visitors_r10 = self#on_nsenv env _visitors_this.f_namespace
4009 let _visitors_r11 = self#on_pos env _visitors_this.f_span in
4010 let _visitors_r12 =
4011 self#on_option self#on_string env _visitors_this.f_doc_comment
4013 let _visitors_r13 = self#on_bool env _visitors_this.f_static in
4015 Pervasives.(&&)
4016 (Pervasives.(==) _visitors_this.f_mode _visitors_r0)
4017 (Pervasives.(&&)
4018 (Pervasives.(==) _visitors_this.f_tparams _visitors_r1)
4019 (Pervasives.(&&)
4020 (Pervasives.(==) _visitors_this.f_constrs _visitors_r2)
4021 (Pervasives.(&&)
4022 (Pervasives.(==) _visitors_this.f_ret _visitors_r3)
4023 (Pervasives.(&&)
4024 (Pervasives.(==) _visitors_this.f_ret_by_ref
4025 _visitors_r4)
4026 (Pervasives.(&&)
4027 (Pervasives.(==) _visitors_this.f_name
4028 _visitors_r5)
4029 (Pervasives.(&&)
4030 (Pervasives.(==) _visitors_this.f_params
4031 _visitors_r6)
4032 (Pervasives.(&&)
4033 (Pervasives.(==) _visitors_this.f_body
4034 _visitors_r7)
4035 (Pervasives.(&&)
4036 (Pervasives.(==)
4037 _visitors_this.f_user_attributes
4038 _visitors_r8)
4039 (Pervasives.(&&)
4040 (Pervasives.(==)
4041 _visitors_this.f_fun_kind
4042 _visitors_r9)
4043 (Pervasives.(&&)
4044 (Pervasives.(==)
4045 _visitors_this.f_namespace
4046 _visitors_r10)
4047 (Pervasives.(&&)
4048 (Pervasives.(==)
4049 _visitors_this.f_span
4050 _visitors_r11)
4051 (Pervasives.(&&)
4052 (Pervasives.(==)
4053 _visitors_this.f_doc_comment
4054 _visitors_r12)
4055 (Pervasives.(==)
4056 _visitors_this.f_static
4057 _visitors_r13)))))))))))))
4058 then _visitors_this
4059 else
4061 f_mode = _visitors_r0;
4062 f_tparams = _visitors_r1;
4063 f_constrs = _visitors_r2;
4064 f_ret = _visitors_r3;
4065 f_ret_by_ref = _visitors_r4;
4066 f_name = _visitors_r5;
4067 f_params = _visitors_r6;
4068 f_body = _visitors_r7;
4069 f_user_attributes = _visitors_r8;
4070 f_fun_kind = _visitors_r9;
4071 f_namespace = _visitors_r10;
4072 f_span = _visitors_r11;
4073 f_doc_comment = _visitors_r12;
4074 f_static = _visitors_r13
4076 method on_is_coroutine env = self#on_bool env
4077 method on_hint env ((_visitors_c0,_visitors_c1) as _visitors_this) =
4078 let _visitors_r0 = self#on_pos env _visitors_c0 in
4079 let _visitors_r1 = self#on_hint_ env _visitors_c1 in
4081 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4082 (Pervasives.(==) _visitors_c1 _visitors_r1)
4083 then _visitors_this
4084 else (_visitors_r0, _visitors_r1)
4085 method on_Hvariadic env _visitors_this _visitors_c0 =
4086 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0 in
4087 if Pervasives.(==) _visitors_c0 _visitors_r0
4088 then _visitors_this
4089 else Hvariadic _visitors_r0
4090 method on_Hnon_variadic env _visitors_this =
4091 if true then _visitors_this else Hnon_variadic
4092 method on_variadic_hint env _visitors_this =
4093 match _visitors_this with
4094 | Hvariadic _visitors_c0 as _visitors_this ->
4095 self#on_Hvariadic env _visitors_this _visitors_c0
4096 | Hnon_variadic as _visitors_this ->
4097 self#on_Hnon_variadic env _visitors_this
4098 method on_Hoption env _visitors_this _visitors_c0 =
4099 let _visitors_r0 = self#on_hint env _visitors_c0 in
4100 if Pervasives.(==) _visitors_c0 _visitors_r0
4101 then _visitors_this
4102 else Hoption _visitors_r0
4103 method on_Hfun env _visitors_this _visitors_c0 _visitors_c1
4104 _visitors_c2 _visitors_c3 _visitors_c4 =
4105 let _visitors_r0 = self#on_is_coroutine env _visitors_c0 in
4106 let _visitors_r1 = self#on_list self#on_hint env _visitors_c1 in
4107 let _visitors_r2 =
4108 self#on_list (self#on_option self#on_param_kind) env _visitors_c2
4110 let _visitors_r3 = self#on_variadic_hint env _visitors_c3 in
4111 let _visitors_r4 = self#on_hint env _visitors_c4 in
4113 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4114 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4115 (Pervasives.(&&) (Pervasives.(==) _visitors_c2 _visitors_r2)
4116 (Pervasives.(&&)
4117 (Pervasives.(==) _visitors_c3 _visitors_r3)
4118 (Pervasives.(==) _visitors_c4 _visitors_r4))))
4119 then _visitors_this
4120 else
4121 Hfun
4122 (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3,
4123 _visitors_r4)
4124 method on_Htuple env _visitors_this _visitors_c0 =
4125 let _visitors_r0 = self#on_list self#on_hint env _visitors_c0 in
4126 if Pervasives.(==) _visitors_c0 _visitors_r0
4127 then _visitors_this
4128 else Htuple _visitors_r0
4129 method on_Happly env _visitors_this _visitors_c0 _visitors_c1 =
4130 let _visitors_r0 = self#on_id env _visitors_c0 in
4131 let _visitors_r1 = self#on_list self#on_hint env _visitors_c1 in
4133 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4134 (Pervasives.(==) _visitors_c1 _visitors_r1)
4135 then _visitors_this
4136 else Happly (_visitors_r0, _visitors_r1)
4137 method on_Hshape env _visitors_this _visitors_c0 =
4138 let _visitors_r0 = self#on_shape_info env _visitors_c0 in
4139 if Pervasives.(==) _visitors_c0 _visitors_r0
4140 then _visitors_this
4141 else Hshape _visitors_r0
4142 method on_Haccess env _visitors_this _visitors_c0 _visitors_c1
4143 _visitors_c2 =
4144 let _visitors_r0 = self#on_id env _visitors_c0 in
4145 let _visitors_r1 = self#on_id env _visitors_c1 in
4146 let _visitors_r2 = self#on_list self#on_id env _visitors_c2 in
4148 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4149 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4150 (Pervasives.(==) _visitors_c2 _visitors_r2))
4151 then _visitors_this
4152 else Haccess (_visitors_r0, _visitors_r1, _visitors_r2)
4153 method on_Hsoft env _visitors_this _visitors_c0 =
4154 let _visitors_r0 = self#on_hint env _visitors_c0 in
4155 if Pervasives.(==) _visitors_c0 _visitors_r0
4156 then _visitors_this
4157 else Hsoft _visitors_r0
4158 method on_hint_ env _visitors_this =
4159 match _visitors_this with
4160 | Hoption _visitors_c0 as _visitors_this ->
4161 self#on_Hoption env _visitors_this _visitors_c0
4162 | Hfun
4163 (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3,_visitors_c4)
4164 as _visitors_this ->
4165 self#on_Hfun env _visitors_this _visitors_c0 _visitors_c1
4166 _visitors_c2 _visitors_c3 _visitors_c4
4167 | Htuple _visitors_c0 as _visitors_this ->
4168 self#on_Htuple env _visitors_this _visitors_c0
4169 | Happly (_visitors_c0,_visitors_c1) as _visitors_this ->
4170 self#on_Happly env _visitors_this _visitors_c0 _visitors_c1
4171 | Hshape _visitors_c0 as _visitors_this ->
4172 self#on_Hshape env _visitors_this _visitors_c0
4173 | Haccess (_visitors_c0,_visitors_c1,_visitors_c2) as
4174 _visitors_this ->
4175 self#on_Haccess env _visitors_this _visitors_c0 _visitors_c1
4176 _visitors_c2
4177 | Hsoft _visitors_c0 as _visitors_this ->
4178 self#on_Hsoft env _visitors_this _visitors_c0
4179 method on_shape_info env _visitors_this =
4180 let _visitors_r0 =
4181 self#on_bool env _visitors_this.si_allows_unknown_fields in
4182 let _visitors_r1 =
4183 self#on_list self#on_shape_field env
4184 _visitors_this.si_shape_field_list
4187 Pervasives.(&&)
4188 (Pervasives.(==) _visitors_this.si_allows_unknown_fields
4189 _visitors_r0)
4190 (Pervasives.(==) _visitors_this.si_shape_field_list
4191 _visitors_r1)
4192 then _visitors_this
4193 else
4195 si_allows_unknown_fields = _visitors_r0;
4196 si_shape_field_list = _visitors_r1
4198 method on_shape_field env _visitors_this =
4199 let _visitors_r0 = self#on_bool env _visitors_this.sf_optional in
4200 let _visitors_r1 =
4201 self#on_shape_field_name env _visitors_this.sf_name in
4202 let _visitors_r2 = self#on_hint env _visitors_this.sf_hint in
4204 Pervasives.(&&)
4205 (Pervasives.(==) _visitors_this.sf_optional _visitors_r0)
4206 (Pervasives.(&&)
4207 (Pervasives.(==) _visitors_this.sf_name _visitors_r1)
4208 (Pervasives.(==) _visitors_this.sf_hint _visitors_r2))
4209 then _visitors_this
4210 else
4212 sf_optional = _visitors_r0;
4213 sf_name = _visitors_r1;
4214 sf_hint = _visitors_r2
4216 method on_using_stmt env _visitors_this =
4217 let _visitors_r0 =
4218 self#on_bool env _visitors_this.us_is_block_scoped in
4219 let _visitors_r1 = self#on_bool env _visitors_this.us_has_await in
4220 let _visitors_r2 = self#on_expr env _visitors_this.us_expr in
4221 let _visitors_r3 = self#on_block env _visitors_this.us_block in
4223 Pervasives.(&&)
4224 (Pervasives.(==) _visitors_this.us_is_block_scoped _visitors_r0)
4225 (Pervasives.(&&)
4226 (Pervasives.(==) _visitors_this.us_has_await _visitors_r1)
4227 (Pervasives.(&&)
4228 (Pervasives.(==) _visitors_this.us_expr _visitors_r2)
4229 (Pervasives.(==) _visitors_this.us_block _visitors_r3)))
4230 then _visitors_this
4231 else
4233 us_is_block_scoped = _visitors_r0;
4234 us_has_await = _visitors_r1;
4235 us_expr = _visitors_r2;
4236 us_block = _visitors_r3
4238 method on_stmt env ((_visitors_c0,_visitors_c1) as _visitors_this) =
4239 let _visitors_r0 = self#on_pos env _visitors_c0 in
4240 let _visitors_r1 = self#on_stmt_ env _visitors_c1 in
4242 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4243 (Pervasives.(==) _visitors_c1 _visitors_r1)
4244 then _visitors_this
4245 else (_visitors_r0, _visitors_r1)
4246 method on_Unsafe env _visitors_this =
4247 if true then _visitors_this else Unsafe
4248 method on_Fallthrough env _visitors_this =
4249 if true then _visitors_this else Fallthrough
4250 method on_Expr env _visitors_this _visitors_c0 =
4251 let _visitors_r0 = self#on_expr env _visitors_c0 in
4252 if Pervasives.(==) _visitors_c0 _visitors_r0
4253 then _visitors_this
4254 else Expr _visitors_r0
4255 method on_Block env _visitors_this _visitors_c0 =
4256 let _visitors_r0 = self#on_block env _visitors_c0 in
4257 if Pervasives.(==) _visitors_c0 _visitors_r0
4258 then _visitors_this
4259 else Block _visitors_r0
4260 method on_Break env _visitors_this _visitors_c0 =
4261 let _visitors_r0 = self#on_option self#on_expr env _visitors_c0 in
4262 if Pervasives.(==) _visitors_c0 _visitors_r0
4263 then _visitors_this
4264 else Break _visitors_r0
4265 method on_Continue env _visitors_this _visitors_c0 =
4266 let _visitors_r0 = self#on_option self#on_expr env _visitors_c0 in
4267 if Pervasives.(==) _visitors_c0 _visitors_r0
4268 then _visitors_this
4269 else Continue _visitors_r0
4270 method on_Throw env _visitors_this _visitors_c0 =
4271 let _visitors_r0 = self#on_expr env _visitors_c0 in
4272 if Pervasives.(==) _visitors_c0 _visitors_r0
4273 then _visitors_this
4274 else Throw _visitors_r0
4275 method on_Return env _visitors_this _visitors_c0 =
4276 let _visitors_r0 = self#on_option self#on_expr env _visitors_c0 in
4277 if Pervasives.(==) _visitors_c0 _visitors_r0
4278 then _visitors_this
4279 else Return _visitors_r0
4280 method on_GotoLabel env _visitors_this _visitors_c0 =
4281 let _visitors_r0 = self#on_pstring env _visitors_c0 in
4282 if Pervasives.(==) _visitors_c0 _visitors_r0
4283 then _visitors_this
4284 else GotoLabel _visitors_r0
4285 method on_Goto env _visitors_this _visitors_c0 =
4286 let _visitors_r0 = self#on_pstring env _visitors_c0 in
4287 if Pervasives.(==) _visitors_c0 _visitors_r0
4288 then _visitors_this
4289 else Goto _visitors_r0
4290 method on_Static_var env _visitors_this _visitors_c0 =
4291 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
4292 if Pervasives.(==) _visitors_c0 _visitors_r0
4293 then _visitors_this
4294 else Static_var _visitors_r0
4295 method on_Global_var env _visitors_this _visitors_c0 =
4296 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
4297 if Pervasives.(==) _visitors_c0 _visitors_r0
4298 then _visitors_this
4299 else Global_var _visitors_r0
4300 method on_If env _visitors_this _visitors_c0 _visitors_c1
4301 _visitors_c2 =
4302 let _visitors_r0 = self#on_expr env _visitors_c0 in
4303 let _visitors_r1 = self#on_block env _visitors_c1 in
4304 let _visitors_r2 = self#on_block env _visitors_c2 in
4306 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4307 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4308 (Pervasives.(==) _visitors_c2 _visitors_r2))
4309 then _visitors_this
4310 else If (_visitors_r0, _visitors_r1, _visitors_r2)
4311 method on_Do env _visitors_this _visitors_c0 _visitors_c1 =
4312 let _visitors_r0 = self#on_block env _visitors_c0 in
4313 let _visitors_r1 = self#on_expr env _visitors_c1 in
4315 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4316 (Pervasives.(==) _visitors_c1 _visitors_r1)
4317 then _visitors_this
4318 else Do (_visitors_r0, _visitors_r1)
4319 method on_While env _visitors_this _visitors_c0 _visitors_c1 =
4320 let _visitors_r0 = self#on_expr env _visitors_c0 in
4321 let _visitors_r1 = self#on_block env _visitors_c1 in
4323 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4324 (Pervasives.(==) _visitors_c1 _visitors_r1)
4325 then _visitors_this
4326 else While (_visitors_r0, _visitors_r1)
4327 method on_For env _visitors_this _visitors_c0 _visitors_c1
4328 _visitors_c2 _visitors_c3 =
4329 let _visitors_r0 = self#on_expr env _visitors_c0 in
4330 let _visitors_r1 = self#on_expr env _visitors_c1 in
4331 let _visitors_r2 = self#on_expr env _visitors_c2 in
4332 let _visitors_r3 = self#on_block env _visitors_c3 in
4334 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4335 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4336 (Pervasives.(&&) (Pervasives.(==) _visitors_c2 _visitors_r2)
4337 (Pervasives.(==) _visitors_c3 _visitors_r3)))
4338 then _visitors_this
4339 else For (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3)
4340 method on_Switch env _visitors_this _visitors_c0 _visitors_c1 =
4341 let _visitors_r0 = self#on_expr env _visitors_c0 in
4342 let _visitors_r1 = self#on_list self#on_case env _visitors_c1 in
4344 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4345 (Pervasives.(==) _visitors_c1 _visitors_r1)
4346 then _visitors_this
4347 else Switch (_visitors_r0, _visitors_r1)
4348 method on_Foreach env _visitors_this _visitors_c0 _visitors_c1
4349 _visitors_c2 _visitors_c3 =
4350 let _visitors_r0 = self#on_expr env _visitors_c0 in
4351 let _visitors_r1 = self#on_option self#on_pos env _visitors_c1 in
4352 let _visitors_r2 = self#on_as_expr env _visitors_c2 in
4353 let _visitors_r3 = self#on_block env _visitors_c3 in
4355 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4356 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4357 (Pervasives.(&&) (Pervasives.(==) _visitors_c2 _visitors_r2)
4358 (Pervasives.(==) _visitors_c3 _visitors_r3)))
4359 then _visitors_this
4360 else
4361 Foreach (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3)
4362 method on_Try env _visitors_this _visitors_c0 _visitors_c1
4363 _visitors_c2 =
4364 let _visitors_r0 = self#on_block env _visitors_c0 in
4365 let _visitors_r1 = self#on_list self#on_catch env _visitors_c1 in
4366 let _visitors_r2 = self#on_block env _visitors_c2 in
4368 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4369 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4370 (Pervasives.(==) _visitors_c2 _visitors_r2))
4371 then _visitors_this
4372 else Try (_visitors_r0, _visitors_r1, _visitors_r2)
4373 method on_Def_inline env _visitors_this _visitors_c0 =
4374 let _visitors_r0 = self#on_def env _visitors_c0 in
4375 if Pervasives.(==) _visitors_c0 _visitors_r0
4376 then _visitors_this
4377 else Def_inline _visitors_r0
4378 method on_Noop env _visitors_this =
4379 if true then _visitors_this else Noop
4380 method on_Markup env _visitors_this _visitors_c0 _visitors_c1 =
4381 let _visitors_r0 = self#on_pstring env _visitors_c0 in
4382 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1 in
4384 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4385 (Pervasives.(==) _visitors_c1 _visitors_r1)
4386 then _visitors_this
4387 else Markup (_visitors_r0, _visitors_r1)
4388 method on_Using env _visitors_this _visitors_c0 =
4389 let _visitors_r0 = self#on_using_stmt env _visitors_c0 in
4390 if Pervasives.(==) _visitors_c0 _visitors_r0
4391 then _visitors_this
4392 else Using _visitors_r0
4393 method on_Declare env _visitors_this _visitors_c0 _visitors_c1
4394 _visitors_c2 =
4395 let _visitors_r0 = self#on_bool env _visitors_c0 in
4396 let _visitors_r1 = self#on_expr env _visitors_c1 in
4397 let _visitors_r2 = self#on_block env _visitors_c2 in
4399 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4400 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4401 (Pervasives.(==) _visitors_c2 _visitors_r2))
4402 then _visitors_this
4403 else Declare (_visitors_r0, _visitors_r1, _visitors_r2)
4404 method on_stmt_ env _visitors_this =
4405 match _visitors_this with
4406 | Unsafe as _visitors_this -> self#on_Unsafe env _visitors_this
4407 | Fallthrough as _visitors_this ->
4408 self#on_Fallthrough env _visitors_this
4409 | Expr _visitors_c0 as _visitors_this ->
4410 self#on_Expr env _visitors_this _visitors_c0
4411 | Block _visitors_c0 as _visitors_this ->
4412 self#on_Block env _visitors_this _visitors_c0
4413 | Break _visitors_c0 as _visitors_this ->
4414 self#on_Break env _visitors_this _visitors_c0
4415 | Continue _visitors_c0 as _visitors_this ->
4416 self#on_Continue env _visitors_this _visitors_c0
4417 | Throw _visitors_c0 as _visitors_this ->
4418 self#on_Throw env _visitors_this _visitors_c0
4419 | Return _visitors_c0 as _visitors_this ->
4420 self#on_Return env _visitors_this _visitors_c0
4421 | GotoLabel _visitors_c0 as _visitors_this ->
4422 self#on_GotoLabel env _visitors_this _visitors_c0
4423 | Goto _visitors_c0 as _visitors_this ->
4424 self#on_Goto env _visitors_this _visitors_c0
4425 | Static_var _visitors_c0 as _visitors_this ->
4426 self#on_Static_var env _visitors_this _visitors_c0
4427 | Global_var _visitors_c0 as _visitors_this ->
4428 self#on_Global_var env _visitors_this _visitors_c0
4429 | If (_visitors_c0,_visitors_c1,_visitors_c2) as _visitors_this ->
4430 self#on_If env _visitors_this _visitors_c0 _visitors_c1
4431 _visitors_c2
4432 | Do (_visitors_c0,_visitors_c1) as _visitors_this ->
4433 self#on_Do env _visitors_this _visitors_c0 _visitors_c1
4434 | While (_visitors_c0,_visitors_c1) as _visitors_this ->
4435 self#on_While env _visitors_this _visitors_c0 _visitors_c1
4436 | For (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) as
4437 _visitors_this ->
4438 self#on_For env _visitors_this _visitors_c0 _visitors_c1
4439 _visitors_c2 _visitors_c3
4440 | Switch (_visitors_c0,_visitors_c1) as _visitors_this ->
4441 self#on_Switch env _visitors_this _visitors_c0 _visitors_c1
4442 | Foreach (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) as
4443 _visitors_this ->
4444 self#on_Foreach env _visitors_this _visitors_c0 _visitors_c1
4445 _visitors_c2 _visitors_c3
4446 | Try (_visitors_c0,_visitors_c1,_visitors_c2) as _visitors_this ->
4447 self#on_Try env _visitors_this _visitors_c0 _visitors_c1
4448 _visitors_c2
4449 | Def_inline _visitors_c0 as _visitors_this ->
4450 self#on_Def_inline env _visitors_this _visitors_c0
4451 | Noop as _visitors_this -> self#on_Noop env _visitors_this
4452 | Markup (_visitors_c0,_visitors_c1) as _visitors_this ->
4453 self#on_Markup env _visitors_this _visitors_c0 _visitors_c1
4454 | Using _visitors_c0 as _visitors_this ->
4455 self#on_Using env _visitors_this _visitors_c0
4456 | Declare (_visitors_c0,_visitors_c1,_visitors_c2) as
4457 _visitors_this ->
4458 self#on_Declare env _visitors_this _visitors_c0 _visitors_c1
4459 _visitors_c2
4460 method on_As_v env _visitors_this _visitors_c0 =
4461 let _visitors_r0 = self#on_expr env _visitors_c0 in
4462 if Pervasives.(==) _visitors_c0 _visitors_r0
4463 then _visitors_this
4464 else As_v _visitors_r0
4465 method on_As_kv env _visitors_this _visitors_c0 _visitors_c1 =
4466 let _visitors_r0 = self#on_expr env _visitors_c0 in
4467 let _visitors_r1 = self#on_expr env _visitors_c1 in
4469 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4470 (Pervasives.(==) _visitors_c1 _visitors_r1)
4471 then _visitors_this
4472 else As_kv (_visitors_r0, _visitors_r1)
4473 method on_as_expr env _visitors_this =
4474 match _visitors_this with
4475 | As_v _visitors_c0 as _visitors_this ->
4476 self#on_As_v env _visitors_this _visitors_c0
4477 | As_kv (_visitors_c0,_visitors_c1) as _visitors_this ->
4478 self#on_As_kv env _visitors_this _visitors_c0 _visitors_c1
4479 method on_Xhp_simple env _visitors_this _visitors_c0 _visitors_c1 =
4480 let _visitors_r0 = self#on_id env _visitors_c0 in
4481 let _visitors_r1 = self#on_expr env _visitors_c1 in
4483 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4484 (Pervasives.(==) _visitors_c1 _visitors_r1)
4485 then _visitors_this
4486 else Xhp_simple (_visitors_r0, _visitors_r1)
4487 method on_Xhp_spread env _visitors_this _visitors_c0 =
4488 let _visitors_r0 = self#on_expr env _visitors_c0 in
4489 if Pervasives.(==) _visitors_c0 _visitors_r0
4490 then _visitors_this
4491 else Xhp_spread _visitors_r0
4492 method on_xhp_attribute env _visitors_this =
4493 match _visitors_this with
4494 | Xhp_simple (_visitors_c0,_visitors_c1) as _visitors_this ->
4495 self#on_Xhp_simple env _visitors_this _visitors_c0 _visitors_c1
4496 | Xhp_spread _visitors_c0 as _visitors_this ->
4497 self#on_Xhp_spread env _visitors_this _visitors_c0
4498 method on_block env = self#on_list self#on_stmt env
4499 method on_expr env ((_visitors_c0,_visitors_c1) as _visitors_this) =
4500 let _visitors_r0 = self#on_pos env _visitors_c0 in
4501 let _visitors_r1 = self#on_expr_ env _visitors_c1 in
4503 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4504 (Pervasives.(==) _visitors_c1 _visitors_r1)
4505 then _visitors_this
4506 else (_visitors_r0, _visitors_r1)
4507 method on_Array env _visitors_this _visitors_c0 =
4508 let _visitors_r0 = self#on_list self#on_afield env _visitors_c0 in
4509 if Pervasives.(==) _visitors_c0 _visitors_r0
4510 then _visitors_this
4511 else Array _visitors_r0
4512 method on_Varray env _visitors_this _visitors_c0 =
4513 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
4514 if Pervasives.(==) _visitors_c0 _visitors_r0
4515 then _visitors_this
4516 else Varray _visitors_r0
4517 method on_Darray env _visitors_this _visitors_c0 =
4518 let _visitors_r0 =
4519 self#on_list
4520 (fun env ->
4521 fun ((_visitors_c0,_visitors_c1) as _visitors_this) ->
4522 let _visitors_r0 = self#on_expr env _visitors_c0 in
4523 let _visitors_r1 = self#on_expr env _visitors_c1 in
4525 Pervasives.(&&)
4526 (Pervasives.(==) _visitors_c0 _visitors_r0)
4527 (Pervasives.(==) _visitors_c1 _visitors_r1)
4528 then _visitors_this
4529 else (_visitors_r0, _visitors_r1)) env _visitors_c0
4531 if Pervasives.(==) _visitors_c0 _visitors_r0
4532 then _visitors_this
4533 else Darray _visitors_r0
4534 method on_Shape env _visitors_this _visitors_c0 =
4535 let _visitors_r0 =
4536 self#on_list
4537 (fun env ->
4538 fun ((_visitors_c0,_visitors_c1) as _visitors_this) ->
4539 let _visitors_r0 =
4540 self#on_shape_field_name env _visitors_c0 in
4541 let _visitors_r1 = self#on_expr env _visitors_c1 in
4543 Pervasives.(&&)
4544 (Pervasives.(==) _visitors_c0 _visitors_r0)
4545 (Pervasives.(==) _visitors_c1 _visitors_r1)
4546 then _visitors_this
4547 else (_visitors_r0, _visitors_r1)) env _visitors_c0
4549 if Pervasives.(==) _visitors_c0 _visitors_r0
4550 then _visitors_this
4551 else Shape _visitors_r0
4552 method on_Collection env _visitors_this _visitors_c0 _visitors_c1 =
4553 let _visitors_r0 = self#on_id env _visitors_c0 in
4554 let _visitors_r1 = self#on_list self#on_afield env _visitors_c1 in
4556 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4557 (Pervasives.(==) _visitors_c1 _visitors_r1)
4558 then _visitors_this
4559 else Collection (_visitors_r0, _visitors_r1)
4560 method on_Null env _visitors_this =
4561 if true then _visitors_this else Null
4562 method on_True env _visitors_this =
4563 if true then _visitors_this else True
4564 method on_False env _visitors_this =
4565 if true then _visitors_this else False
4566 method on_Omitted env _visitors_this =
4567 if true then _visitors_this else Omitted
4568 method on_Id env _visitors_this _visitors_c0 =
4569 let _visitors_r0 = self#on_id env _visitors_c0 in
4570 if Pervasives.(==) _visitors_c0 _visitors_r0
4571 then _visitors_this
4572 else Id _visitors_r0
4573 method on_Id_type_arguments env _visitors_this _visitors_c0
4574 _visitors_c1 =
4575 let _visitors_r0 = self#on_id env _visitors_c0 in
4576 let _visitors_r1 = self#on_list self#on_hint env _visitors_c1 in
4578 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4579 (Pervasives.(==) _visitors_c1 _visitors_r1)
4580 then _visitors_this
4581 else Id_type_arguments (_visitors_r0, _visitors_r1)
4582 method on_Lvar env _visitors_this _visitors_c0 =
4583 let _visitors_r0 = self#on_id env _visitors_c0 in
4584 if Pervasives.(==) _visitors_c0 _visitors_r0
4585 then _visitors_this
4586 else Lvar _visitors_r0
4587 method on_Dollar env _visitors_this _visitors_c0 =
4588 let _visitors_r0 = self#on_expr env _visitors_c0 in
4589 if Pervasives.(==) _visitors_c0 _visitors_r0
4590 then _visitors_this
4591 else Dollar _visitors_r0
4592 method on_Clone env _visitors_this _visitors_c0 =
4593 let _visitors_r0 = self#on_expr env _visitors_c0 in
4594 if Pervasives.(==) _visitors_c0 _visitors_r0
4595 then _visitors_this
4596 else Clone _visitors_r0
4597 method on_Obj_get env _visitors_this _visitors_c0 _visitors_c1
4598 _visitors_c2 =
4599 let _visitors_r0 = self#on_expr env _visitors_c0 in
4600 let _visitors_r1 = self#on_expr env _visitors_c1 in
4601 let _visitors_r2 = self#on_og_null_flavor env _visitors_c2 in
4603 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4604 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4605 (Pervasives.(==) _visitors_c2 _visitors_r2))
4606 then _visitors_this
4607 else Obj_get (_visitors_r0, _visitors_r1, _visitors_r2)
4608 method on_Array_get env _visitors_this _visitors_c0 _visitors_c1 =
4609 let _visitors_r0 = self#on_expr env _visitors_c0 in
4610 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1 in
4612 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4613 (Pervasives.(==) _visitors_c1 _visitors_r1)
4614 then _visitors_this
4615 else Array_get (_visitors_r0, _visitors_r1)
4616 method on_Class_get env _visitors_this _visitors_c0 _visitors_c1 =
4617 let _visitors_r0 = self#on_expr env _visitors_c0 in
4618 let _visitors_r1 = self#on_expr env _visitors_c1 in
4620 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4621 (Pervasives.(==) _visitors_c1 _visitors_r1)
4622 then _visitors_this
4623 else Class_get (_visitors_r0, _visitors_r1)
4624 method on_Class_const env _visitors_this _visitors_c0 _visitors_c1 =
4625 let _visitors_r0 = self#on_expr env _visitors_c0 in
4626 let _visitors_r1 = self#on_pstring env _visitors_c1 in
4628 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4629 (Pervasives.(==) _visitors_c1 _visitors_r1)
4630 then _visitors_this
4631 else Class_const (_visitors_r0, _visitors_r1)
4632 method on_Call env _visitors_this _visitors_c0 _visitors_c1
4633 _visitors_c2 _visitors_c3 =
4634 let _visitors_r0 = self#on_expr env _visitors_c0 in
4635 let _visitors_r1 = self#on_list self#on_hint env _visitors_c1 in
4636 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2 in
4637 let _visitors_r3 = self#on_list self#on_expr env _visitors_c3 in
4639 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4640 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4641 (Pervasives.(&&) (Pervasives.(==) _visitors_c2 _visitors_r2)
4642 (Pervasives.(==) _visitors_c3 _visitors_r3)))
4643 then _visitors_this
4644 else Call (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3)
4645 method on_Int env _visitors_this _visitors_c0 =
4646 let _visitors_r0 = self#on_pstring env _visitors_c0 in
4647 if Pervasives.(==) _visitors_c0 _visitors_r0
4648 then _visitors_this
4649 else Int _visitors_r0
4650 method on_Float env _visitors_this _visitors_c0 =
4651 let _visitors_r0 = self#on_pstring env _visitors_c0 in
4652 if Pervasives.(==) _visitors_c0 _visitors_r0
4653 then _visitors_this
4654 else Float _visitors_r0
4655 method on_String env _visitors_this _visitors_c0 =
4656 let _visitors_r0 = self#on_pstring env _visitors_c0 in
4657 if Pervasives.(==) _visitors_c0 _visitors_r0
4658 then _visitors_this
4659 else String _visitors_r0
4660 method on_String2 env _visitors_this _visitors_c0 =
4661 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
4662 if Pervasives.(==) _visitors_c0 _visitors_r0
4663 then _visitors_this
4664 else String2 _visitors_r0
4665 method on_Yield env _visitors_this _visitors_c0 =
4666 let _visitors_r0 = self#on_afield env _visitors_c0 in
4667 if Pervasives.(==) _visitors_c0 _visitors_r0
4668 then _visitors_this
4669 else Yield _visitors_r0
4670 method on_Yield_break env _visitors_this =
4671 if true then _visitors_this else Yield_break
4672 method on_Yield_from env _visitors_this _visitors_c0 =
4673 let _visitors_r0 = self#on_expr env _visitors_c0 in
4674 if Pervasives.(==) _visitors_c0 _visitors_r0
4675 then _visitors_this
4676 else Yield_from _visitors_r0
4677 method on_Await env _visitors_this _visitors_c0 =
4678 let _visitors_r0 = self#on_expr env _visitors_c0 in
4679 if Pervasives.(==) _visitors_c0 _visitors_r0
4680 then _visitors_this
4681 else Await _visitors_r0
4682 method on_Suspend env _visitors_this _visitors_c0 =
4683 let _visitors_r0 = self#on_expr env _visitors_c0 in
4684 if Pervasives.(==) _visitors_c0 _visitors_r0
4685 then _visitors_this
4686 else Suspend _visitors_r0
4687 method on_List env _visitors_this _visitors_c0 =
4688 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
4689 if Pervasives.(==) _visitors_c0 _visitors_r0
4690 then _visitors_this
4691 else List _visitors_r0
4692 method on_Expr_list env _visitors_this _visitors_c0 =
4693 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
4694 if Pervasives.(==) _visitors_c0 _visitors_r0
4695 then _visitors_this
4696 else Expr_list _visitors_r0
4697 method on_Cast env _visitors_this _visitors_c0 _visitors_c1 =
4698 let _visitors_r0 = self#on_hint env _visitors_c0 in
4699 let _visitors_r1 = self#on_expr env _visitors_c1 in
4701 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4702 (Pervasives.(==) _visitors_c1 _visitors_r1)
4703 then _visitors_this
4704 else Cast (_visitors_r0, _visitors_r1)
4705 method on_Unop env _visitors_this _visitors_c0 _visitors_c1 =
4706 let _visitors_r0 = self#on_uop env _visitors_c0 in
4707 let _visitors_r1 = self#on_expr env _visitors_c1 in
4709 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4710 (Pervasives.(==) _visitors_c1 _visitors_r1)
4711 then _visitors_this
4712 else Unop (_visitors_r0, _visitors_r1)
4713 method on_Binop env _visitors_this _visitors_c0 _visitors_c1
4714 _visitors_c2 =
4715 let _visitors_r0 = self#on_bop env _visitors_c0 in
4716 let _visitors_r1 = self#on_expr env _visitors_c1 in
4717 let _visitors_r2 = self#on_expr env _visitors_c2 in
4719 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4720 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4721 (Pervasives.(==) _visitors_c2 _visitors_r2))
4722 then _visitors_this
4723 else Binop (_visitors_r0, _visitors_r1, _visitors_r2)
4724 method on_Pipe env _visitors_this _visitors_c0 _visitors_c1 =
4725 let _visitors_r0 = self#on_expr env _visitors_c0 in
4726 let _visitors_r1 = self#on_expr env _visitors_c1 in
4728 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4729 (Pervasives.(==) _visitors_c1 _visitors_r1)
4730 then _visitors_this
4731 else Pipe (_visitors_r0, _visitors_r1)
4732 method on_Eif env _visitors_this _visitors_c0 _visitors_c1
4733 _visitors_c2 =
4734 let _visitors_r0 = self#on_expr env _visitors_c0 in
4735 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1 in
4736 let _visitors_r2 = self#on_expr env _visitors_c2 in
4738 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4739 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4740 (Pervasives.(==) _visitors_c2 _visitors_r2))
4741 then _visitors_this
4742 else Eif (_visitors_r0, _visitors_r1, _visitors_r2)
4743 method on_NullCoalesce env _visitors_this _visitors_c0 _visitors_c1 =
4744 let _visitors_r0 = self#on_expr env _visitors_c0 in
4745 let _visitors_r1 = self#on_expr env _visitors_c1 in
4747 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4748 (Pervasives.(==) _visitors_c1 _visitors_r1)
4749 then _visitors_this
4750 else NullCoalesce (_visitors_r0, _visitors_r1)
4751 method on_InstanceOf env _visitors_this _visitors_c0 _visitors_c1 =
4752 let _visitors_r0 = self#on_expr env _visitors_c0 in
4753 let _visitors_r1 = self#on_expr env _visitors_c1 in
4755 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4756 (Pervasives.(==) _visitors_c1 _visitors_r1)
4757 then _visitors_this
4758 else InstanceOf (_visitors_r0, _visitors_r1)
4759 method on_Is env _visitors_this _visitors_c0 _visitors_c1 =
4760 let _visitors_r0 = self#on_expr env _visitors_c0 in
4761 let _visitors_r1 = self#on_hint env _visitors_c1 in
4763 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4764 (Pervasives.(==) _visitors_c1 _visitors_r1)
4765 then _visitors_this
4766 else Is (_visitors_r0, _visitors_r1)
4767 method on_BracedExpr env _visitors_this _visitors_c0 =
4768 let _visitors_r0 = self#on_expr env _visitors_c0 in
4769 if Pervasives.(==) _visitors_c0 _visitors_r0
4770 then _visitors_this
4771 else BracedExpr _visitors_r0
4772 method on_ParenthesizedExpr env _visitors_this _visitors_c0 =
4773 let _visitors_r0 = self#on_expr env _visitors_c0 in
4774 if Pervasives.(==) _visitors_c0 _visitors_r0
4775 then _visitors_this
4776 else ParenthesizedExpr _visitors_r0
4777 method on_New env _visitors_this _visitors_c0 _visitors_c1
4778 _visitors_c2 =
4779 let _visitors_r0 = self#on_expr env _visitors_c0 in
4780 let _visitors_r1 = self#on_list self#on_expr env _visitors_c1 in
4781 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2 in
4783 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4784 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4785 (Pervasives.(==) _visitors_c2 _visitors_r2))
4786 then _visitors_this
4787 else New (_visitors_r0, _visitors_r1, _visitors_r2)
4788 method on_NewAnonClass env _visitors_this _visitors_c0 _visitors_c1
4789 _visitors_c2 =
4790 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
4791 let _visitors_r1 = self#on_list self#on_expr env _visitors_c1 in
4792 let _visitors_r2 = self#on_class_ env _visitors_c2 in
4794 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4795 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4796 (Pervasives.(==) _visitors_c2 _visitors_r2))
4797 then _visitors_this
4798 else NewAnonClass (_visitors_r0, _visitors_r1, _visitors_r2)
4799 method on_Efun env _visitors_this _visitors_c0 _visitors_c1 =
4800 let _visitors_r0 = self#on_fun_ env _visitors_c0 in
4801 let _visitors_r1 =
4802 self#on_list
4803 (fun env ->
4804 fun ((_visitors_c0,_visitors_c1) as _visitors_this) ->
4805 let _visitors_r0 = self#on_id env _visitors_c0 in
4806 let _visitors_r1 = self#on_bool env _visitors_c1 in
4808 Pervasives.(&&)
4809 (Pervasives.(==) _visitors_c0 _visitors_r0)
4810 (Pervasives.(==) _visitors_c1 _visitors_r1)
4811 then _visitors_this
4812 else (_visitors_r0, _visitors_r1)) env _visitors_c1
4815 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4816 (Pervasives.(==) _visitors_c1 _visitors_r1)
4817 then _visitors_this
4818 else Efun (_visitors_r0, _visitors_r1)
4819 method on_Lfun env _visitors_this _visitors_c0 =
4820 let _visitors_r0 = self#on_fun_ env _visitors_c0 in
4821 if Pervasives.(==) _visitors_c0 _visitors_r0
4822 then _visitors_this
4823 else Lfun _visitors_r0
4824 method on_Xml env _visitors_this _visitors_c0 _visitors_c1
4825 _visitors_c2 =
4826 let _visitors_r0 = self#on_id env _visitors_c0 in
4827 let _visitors_r1 =
4828 self#on_list self#on_xhp_attribute env _visitors_c1 in
4829 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2 in
4831 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4832 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
4833 (Pervasives.(==) _visitors_c2 _visitors_r2))
4834 then _visitors_this
4835 else Xml (_visitors_r0, _visitors_r1, _visitors_r2)
4836 method on_Unsafeexpr env _visitors_this _visitors_c0 =
4837 let _visitors_r0 = self#on_expr env _visitors_c0 in
4838 if Pervasives.(==) _visitors_c0 _visitors_r0
4839 then _visitors_this
4840 else Unsafeexpr _visitors_r0
4841 method on_Import env _visitors_this _visitors_c0 _visitors_c1 =
4842 let _visitors_r0 = self#on_import_flavor env _visitors_c0 in
4843 let _visitors_r1 = self#on_expr env _visitors_c1 in
4845 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4846 (Pervasives.(==) _visitors_c1 _visitors_r1)
4847 then _visitors_this
4848 else Import (_visitors_r0, _visitors_r1)
4849 method on_Callconv env _visitors_this _visitors_c0 _visitors_c1 =
4850 let _visitors_r0 = self#on_param_kind env _visitors_c0 in
4851 let _visitors_r1 = self#on_expr env _visitors_c1 in
4853 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4854 (Pervasives.(==) _visitors_c1 _visitors_r1)
4855 then _visitors_this
4856 else Callconv (_visitors_r0, _visitors_r1)
4857 method on_Execution_operator env _visitors_this _visitors_c0 =
4858 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
4859 if Pervasives.(==) _visitors_c0 _visitors_r0
4860 then _visitors_this
4861 else Execution_operator _visitors_r0
4862 method on_expr_ env _visitors_this =
4863 match _visitors_this with
4864 | Array _visitors_c0 as _visitors_this ->
4865 self#on_Array env _visitors_this _visitors_c0
4866 | Varray _visitors_c0 as _visitors_this ->
4867 self#on_Varray env _visitors_this _visitors_c0
4868 | Darray _visitors_c0 as _visitors_this ->
4869 self#on_Darray env _visitors_this _visitors_c0
4870 | Shape _visitors_c0 as _visitors_this ->
4871 self#on_Shape env _visitors_this _visitors_c0
4872 | Collection (_visitors_c0,_visitors_c1) as _visitors_this ->
4873 self#on_Collection env _visitors_this _visitors_c0 _visitors_c1
4874 | Null as _visitors_this -> self#on_Null env _visitors_this
4875 | True as _visitors_this -> self#on_True env _visitors_this
4876 | False as _visitors_this -> self#on_False env _visitors_this
4877 | Omitted as _visitors_this -> self#on_Omitted env _visitors_this
4878 | Id _visitors_c0 as _visitors_this ->
4879 self#on_Id env _visitors_this _visitors_c0
4880 | Id_type_arguments (_visitors_c0,_visitors_c1) as _visitors_this
4882 self#on_Id_type_arguments env _visitors_this _visitors_c0
4883 _visitors_c1
4884 | Lvar _visitors_c0 as _visitors_this ->
4885 self#on_Lvar env _visitors_this _visitors_c0
4886 | Dollar _visitors_c0 as _visitors_this ->
4887 self#on_Dollar env _visitors_this _visitors_c0
4888 | Clone _visitors_c0 as _visitors_this ->
4889 self#on_Clone env _visitors_this _visitors_c0
4890 | Obj_get (_visitors_c0,_visitors_c1,_visitors_c2) as
4891 _visitors_this ->
4892 self#on_Obj_get env _visitors_this _visitors_c0 _visitors_c1
4893 _visitors_c2
4894 | Array_get (_visitors_c0,_visitors_c1) as _visitors_this ->
4895 self#on_Array_get env _visitors_this _visitors_c0 _visitors_c1
4896 | Class_get (_visitors_c0,_visitors_c1) as _visitors_this ->
4897 self#on_Class_get env _visitors_this _visitors_c0 _visitors_c1
4898 | Class_const (_visitors_c0,_visitors_c1) as _visitors_this ->
4899 self#on_Class_const env _visitors_this _visitors_c0
4900 _visitors_c1
4901 | Call (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) as
4902 _visitors_this ->
4903 self#on_Call env _visitors_this _visitors_c0 _visitors_c1
4904 _visitors_c2 _visitors_c3
4905 | Int _visitors_c0 as _visitors_this ->
4906 self#on_Int env _visitors_this _visitors_c0
4907 | Float _visitors_c0 as _visitors_this ->
4908 self#on_Float env _visitors_this _visitors_c0
4909 | String _visitors_c0 as _visitors_this ->
4910 self#on_String env _visitors_this _visitors_c0
4911 | String2 _visitors_c0 as _visitors_this ->
4912 self#on_String2 env _visitors_this _visitors_c0
4913 | Yield _visitors_c0 as _visitors_this ->
4914 self#on_Yield env _visitors_this _visitors_c0
4915 | Yield_break as _visitors_this ->
4916 self#on_Yield_break env _visitors_this
4917 | Yield_from _visitors_c0 as _visitors_this ->
4918 self#on_Yield_from env _visitors_this _visitors_c0
4919 | Await _visitors_c0 as _visitors_this ->
4920 self#on_Await env _visitors_this _visitors_c0
4921 | Suspend _visitors_c0 as _visitors_this ->
4922 self#on_Suspend env _visitors_this _visitors_c0
4923 | List _visitors_c0 as _visitors_this ->
4924 self#on_List env _visitors_this _visitors_c0
4925 | Expr_list _visitors_c0 as _visitors_this ->
4926 self#on_Expr_list env _visitors_this _visitors_c0
4927 | Cast (_visitors_c0,_visitors_c1) as _visitors_this ->
4928 self#on_Cast env _visitors_this _visitors_c0 _visitors_c1
4929 | Unop (_visitors_c0,_visitors_c1) as _visitors_this ->
4930 self#on_Unop env _visitors_this _visitors_c0 _visitors_c1
4931 | Binop (_visitors_c0,_visitors_c1,_visitors_c2) as _visitors_this
4933 self#on_Binop env _visitors_this _visitors_c0 _visitors_c1
4934 _visitors_c2
4935 | Pipe (_visitors_c0,_visitors_c1) as _visitors_this ->
4936 self#on_Pipe env _visitors_this _visitors_c0 _visitors_c1
4937 | Eif (_visitors_c0,_visitors_c1,_visitors_c2) as _visitors_this ->
4938 self#on_Eif env _visitors_this _visitors_c0 _visitors_c1
4939 _visitors_c2
4940 | NullCoalesce (_visitors_c0,_visitors_c1) as _visitors_this ->
4941 self#on_NullCoalesce env _visitors_this _visitors_c0
4942 _visitors_c1
4943 | InstanceOf (_visitors_c0,_visitors_c1) as _visitors_this ->
4944 self#on_InstanceOf env _visitors_this _visitors_c0 _visitors_c1
4945 | Is (_visitors_c0,_visitors_c1) as _visitors_this ->
4946 self#on_Is env _visitors_this _visitors_c0 _visitors_c1
4947 | BracedExpr _visitors_c0 as _visitors_this ->
4948 self#on_BracedExpr env _visitors_this _visitors_c0
4949 | ParenthesizedExpr _visitors_c0 as _visitors_this ->
4950 self#on_ParenthesizedExpr env _visitors_this _visitors_c0
4951 | New (_visitors_c0,_visitors_c1,_visitors_c2) as _visitors_this ->
4952 self#on_New env _visitors_this _visitors_c0 _visitors_c1
4953 _visitors_c2
4954 | NewAnonClass (_visitors_c0,_visitors_c1,_visitors_c2) as
4955 _visitors_this ->
4956 self#on_NewAnonClass env _visitors_this _visitors_c0
4957 _visitors_c1 _visitors_c2
4958 | Efun (_visitors_c0,_visitors_c1) as _visitors_this ->
4959 self#on_Efun env _visitors_this _visitors_c0 _visitors_c1
4960 | Lfun _visitors_c0 as _visitors_this ->
4961 self#on_Lfun env _visitors_this _visitors_c0
4962 | Xml (_visitors_c0,_visitors_c1,_visitors_c2) as _visitors_this ->
4963 self#on_Xml env _visitors_this _visitors_c0 _visitors_c1
4964 _visitors_c2
4965 | Unsafeexpr _visitors_c0 as _visitors_this ->
4966 self#on_Unsafeexpr env _visitors_this _visitors_c0
4967 | Import (_visitors_c0,_visitors_c1) as _visitors_this ->
4968 self#on_Import env _visitors_this _visitors_c0 _visitors_c1
4969 | Callconv (_visitors_c0,_visitors_c1) as _visitors_this ->
4970 self#on_Callconv env _visitors_this _visitors_c0 _visitors_c1
4971 | Execution_operator _visitors_c0 as _visitors_this ->
4972 self#on_Execution_operator env _visitors_this _visitors_c0
4973 method on_Include env _visitors_this =
4974 if true then _visitors_this else Include
4975 method on_Require env _visitors_this =
4976 if true then _visitors_this else Require
4977 method on_IncludeOnce env _visitors_this =
4978 if true then _visitors_this else IncludeOnce
4979 method on_RequireOnce env _visitors_this =
4980 if true then _visitors_this else RequireOnce
4981 method on_import_flavor env _visitors_this =
4982 match _visitors_this with
4983 | Include as _visitors_this -> self#on_Include env _visitors_this
4984 | Require as _visitors_this -> self#on_Require env _visitors_this
4985 | IncludeOnce as _visitors_this ->
4986 self#on_IncludeOnce env _visitors_this
4987 | RequireOnce as _visitors_this ->
4988 self#on_RequireOnce env _visitors_this
4989 method on_AFvalue env _visitors_this _visitors_c0 =
4990 let _visitors_r0 = self#on_expr env _visitors_c0 in
4991 if Pervasives.(==) _visitors_c0 _visitors_r0
4992 then _visitors_this
4993 else AFvalue _visitors_r0
4994 method on_AFkvalue env _visitors_this _visitors_c0 _visitors_c1 =
4995 let _visitors_r0 = self#on_expr env _visitors_c0 in
4996 let _visitors_r1 = self#on_expr env _visitors_c1 in
4998 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
4999 (Pervasives.(==) _visitors_c1 _visitors_r1)
5000 then _visitors_this
5001 else AFkvalue (_visitors_r0, _visitors_r1)
5002 method on_afield env _visitors_this =
5003 match _visitors_this with
5004 | AFvalue _visitors_c0 as _visitors_this ->
5005 self#on_AFvalue env _visitors_this _visitors_c0
5006 | AFkvalue (_visitors_c0,_visitors_c1) as _visitors_this ->
5007 self#on_AFkvalue env _visitors_this _visitors_c0 _visitors_c1
5008 method on_Default env _visitors_this _visitors_c0 =
5009 let _visitors_r0 = self#on_block env _visitors_c0 in
5010 if Pervasives.(==) _visitors_c0 _visitors_r0
5011 then _visitors_this
5012 else Default _visitors_r0
5013 method on_Case env _visitors_this _visitors_c0 _visitors_c1 =
5014 let _visitors_r0 = self#on_expr env _visitors_c0 in
5015 let _visitors_r1 = self#on_block env _visitors_c1 in
5017 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
5018 (Pervasives.(==) _visitors_c1 _visitors_r1)
5019 then _visitors_this
5020 else Case (_visitors_r0, _visitors_r1)
5021 method on_case env _visitors_this =
5022 match _visitors_this with
5023 | Default _visitors_c0 as _visitors_this ->
5024 self#on_Default env _visitors_this _visitors_c0
5025 | Case (_visitors_c0,_visitors_c1) as _visitors_this ->
5026 self#on_Case env _visitors_this _visitors_c0 _visitors_c1
5027 method on_catch env
5028 ((_visitors_c0,_visitors_c1,_visitors_c2) as _visitors_this) =
5029 let _visitors_r0 = self#on_id env _visitors_c0 in
5030 let _visitors_r1 = self#on_id env _visitors_c1 in
5031 let _visitors_r2 = self#on_block env _visitors_c2 in
5033 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
5034 (Pervasives.(&&) (Pervasives.(==) _visitors_c1 _visitors_r1)
5035 (Pervasives.(==) _visitors_c2 _visitors_r2))
5036 then _visitors_this
5037 else (_visitors_r0, _visitors_r1, _visitors_r2)
5038 method on_field env ((_visitors_c0,_visitors_c1) as _visitors_this) =
5039 let _visitors_r0 = self#on_expr env _visitors_c0 in
5040 let _visitors_r1 = self#on_expr env _visitors_c1 in
5042 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
5043 (Pervasives.(==) _visitors_c1 _visitors_r1)
5044 then _visitors_this
5045 else (_visitors_r0, _visitors_r1)
5046 method on_attr env ((_visitors_c0,_visitors_c1) as _visitors_this) =
5047 let _visitors_r0 = self#on_id env _visitors_c0 in
5048 let _visitors_r1 = self#on_expr env _visitors_c1 in
5050 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
5051 (Pervasives.(==) _visitors_c1 _visitors_r1)
5052 then _visitors_this
5053 else (_visitors_r0, _visitors_r1)
5055 [@@@VISITORS.END ]
5057 include
5058 struct
5059 [@@@ocaml.warning "-4-26-27"]
5060 [@@@VISITORS.BEGIN ]
5061 class virtual ['self] reduce =
5062 object (self : 'self)
5063 inherit [_] reduce_defs
5064 method on_program env = self#on_list self#on_def env
5065 method on_nsenv env _visitors_this = self#zero
5066 method on_fimode env _visitors_this = self#zero
5067 method on_Fun env _visitors_c0 =
5068 let _visitors_s0 = self#on_fun_ env _visitors_c0 in _visitors_s0
5069 method on_Class env _visitors_c0 =
5070 let _visitors_s0 = self#on_class_ env _visitors_c0 in _visitors_s0
5071 method on_Stmt env _visitors_c0 =
5072 let _visitors_s0 = self#on_stmt env _visitors_c0 in _visitors_s0
5073 method on_Typedef env _visitors_c0 =
5074 let _visitors_s0 = self#on_typedef env _visitors_c0 in
5075 _visitors_s0
5076 method on_Constant env _visitors_c0 =
5077 let _visitors_s0 = self#on_gconst env _visitors_c0 in _visitors_s0
5078 method on_Namespace env _visitors_c0 _visitors_c1 =
5079 let _visitors_s0 = self#on_id env _visitors_c0 in
5080 let _visitors_s1 = self#on_program env _visitors_c1 in
5081 self#plus _visitors_s0 _visitors_s1
5082 method on_NamespaceUse env _visitors_c0 =
5083 let _visitors_s0 =
5084 self#on_list
5085 (fun env ->
5086 fun (_visitors_c0,_visitors_c1,_visitors_c2) ->
5087 let _visitors_s0 = self#on_ns_kind env _visitors_c0 in
5088 let _visitors_s1 = self#on_id env _visitors_c1 in
5089 let _visitors_s2 = self#on_id env _visitors_c2 in
5090 self#plus (self#plus _visitors_s0 _visitors_s1)
5091 _visitors_s2) env _visitors_c0
5093 _visitors_s0
5094 method on_SetNamespaceEnv env _visitors_c0 =
5095 let _visitors_s0 = self#on_nsenv env _visitors_c0 in _visitors_s0
5096 method on_def env _visitors_this =
5097 match _visitors_this with
5098 | Fun _visitors_c0 -> self#on_Fun env _visitors_c0
5099 | Class _visitors_c0 -> self#on_Class env _visitors_c0
5100 | Stmt _visitors_c0 -> self#on_Stmt env _visitors_c0
5101 | Typedef _visitors_c0 -> self#on_Typedef env _visitors_c0
5102 | Constant _visitors_c0 -> self#on_Constant env _visitors_c0
5103 | Namespace (_visitors_c0,_visitors_c1) ->
5104 self#on_Namespace env _visitors_c0 _visitors_c1
5105 | NamespaceUse _visitors_c0 ->
5106 self#on_NamespaceUse env _visitors_c0
5107 | SetNamespaceEnv _visitors_c0 ->
5108 self#on_SetNamespaceEnv env _visitors_c0
5109 method on_typedef env _visitors_this =
5110 let _visitors_s0 = self#on_id env _visitors_this.t_id in
5111 let _visitors_s1 =
5112 self#on_list self#on_tparam env _visitors_this.t_tparams in
5113 let _visitors_s2 =
5114 self#on_tconstraint env _visitors_this.t_constraint in
5115 let _visitors_s3 = self#on_typedef_kind env _visitors_this.t_kind
5117 let _visitors_s4 =
5118 self#on_list self#on_user_attribute env
5119 _visitors_this.t_user_attributes
5121 let _visitors_s5 = self#on_nsenv env _visitors_this.t_namespace in
5122 let _visitors_s6 = self#on_fimode env _visitors_this.t_mode in
5123 self#plus
5124 (self#plus
5125 (self#plus
5126 (self#plus
5127 (self#plus (self#plus _visitors_s0 _visitors_s1)
5128 _visitors_s2) _visitors_s3) _visitors_s4)
5129 _visitors_s5) _visitors_s6
5130 method on_gconst env _visitors_this =
5131 let _visitors_s0 = self#on_fimode env _visitors_this.cst_mode in
5132 let _visitors_s1 = self#on_cst_kind env _visitors_this.cst_kind in
5133 let _visitors_s2 = self#on_id env _visitors_this.cst_name in
5134 let _visitors_s3 =
5135 self#on_option self#on_hint env _visitors_this.cst_type in
5136 let _visitors_s4 = self#on_expr env _visitors_this.cst_value in
5137 let _visitors_s5 = self#on_nsenv env _visitors_this.cst_namespace
5139 let _visitors_s6 = self#on_pos env _visitors_this.cst_span in
5140 self#plus
5141 (self#plus
5142 (self#plus
5143 (self#plus
5144 (self#plus (self#plus _visitors_s0 _visitors_s1)
5145 _visitors_s2) _visitors_s3) _visitors_s4)
5146 _visitors_s5) _visitors_s6
5147 method on_tparam env (_visitors_c0,_visitors_c1,_visitors_c2) =
5148 let _visitors_s0 = self#on_variance env _visitors_c0 in
5149 let _visitors_s1 = self#on_id env _visitors_c1 in
5150 let _visitors_s2 =
5151 self#on_list
5152 (fun env ->
5153 fun (_visitors_c0,_visitors_c1) ->
5154 let _visitors_s0 =
5155 self#on_constraint_kind env _visitors_c0 in
5156 let _visitors_s1 = self#on_hint env _visitors_c1 in
5157 self#plus _visitors_s0 _visitors_s1) env _visitors_c2
5159 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5160 method on_tconstraint env = self#on_option self#on_hint env
5161 method on_Alias env _visitors_c0 =
5162 let _visitors_s0 = self#on_hint env _visitors_c0 in _visitors_s0
5163 method on_NewType env _visitors_c0 =
5164 let _visitors_s0 = self#on_hint env _visitors_c0 in _visitors_s0
5165 method on_typedef_kind env _visitors_this =
5166 match _visitors_this with
5167 | Alias _visitors_c0 -> self#on_Alias env _visitors_c0
5168 | NewType _visitors_c0 -> self#on_NewType env _visitors_c0
5169 method on_class_ env _visitors_this =
5170 let _visitors_s0 = self#on_fimode env _visitors_this.c_mode in
5171 let _visitors_s1 =
5172 self#on_list self#on_user_attribute env
5173 _visitors_this.c_user_attributes
5175 let _visitors_s2 = self#on_bool env _visitors_this.c_final in
5176 let _visitors_s3 = self#on_class_kind env _visitors_this.c_kind in
5177 let _visitors_s4 = self#on_bool env _visitors_this.c_is_xhp in
5178 let _visitors_s5 = self#on_id env _visitors_this.c_name in
5179 let _visitors_s6 =
5180 self#on_list self#on_tparam env _visitors_this.c_tparams in
5181 let _visitors_s7 =
5182 self#on_list self#on_hint env _visitors_this.c_extends in
5183 let _visitors_s8 =
5184 self#on_list self#on_hint env _visitors_this.c_implements in
5185 let _visitors_s9 =
5186 self#on_list self#on_class_elt env _visitors_this.c_body in
5187 let _visitors_s10 = self#on_nsenv env _visitors_this.c_namespace
5189 let _visitors_s11 =
5190 self#on_option self#on_enum_ env _visitors_this.c_enum in
5191 let _visitors_s12 = self#on_pos env _visitors_this.c_span in
5192 let _visitors_s13 =
5193 self#on_option self#on_string env _visitors_this.c_doc_comment
5195 self#plus
5196 (self#plus
5197 (self#plus
5198 (self#plus
5199 (self#plus
5200 (self#plus
5201 (self#plus
5202 (self#plus
5203 (self#plus
5204 (self#plus
5205 (self#plus
5206 (self#plus
5207 (self#plus _visitors_s0
5208 _visitors_s1) _visitors_s2)
5209 _visitors_s3) _visitors_s4)
5210 _visitors_s5) _visitors_s6) _visitors_s7)
5211 _visitors_s8) _visitors_s9) _visitors_s10)
5212 _visitors_s11) _visitors_s12) _visitors_s13
5213 method on_enum_ env _visitors_this =
5214 let _visitors_s0 = self#on_hint env _visitors_this.e_base in
5215 let _visitors_s1 =
5216 self#on_option self#on_hint env _visitors_this.e_constraint in
5217 self#plus _visitors_s0 _visitors_s1
5218 method on_user_attribute env _visitors_this =
5219 let _visitors_s0 = self#on_id env _visitors_this.ua_name in
5220 let _visitors_s1 =
5221 self#on_list self#on_expr env _visitors_this.ua_params in
5222 self#plus _visitors_s0 _visitors_s1
5223 method on_Const env _visitors_c0 _visitors_c1 =
5224 let _visitors_s0 = self#on_option self#on_hint env _visitors_c0 in
5225 let _visitors_s1 =
5226 self#on_list
5227 (fun env ->
5228 fun (_visitors_c0,_visitors_c1) ->
5229 let _visitors_s0 = self#on_id env _visitors_c0 in
5230 let _visitors_s1 = self#on_expr env _visitors_c1 in
5231 self#plus _visitors_s0 _visitors_s1) env _visitors_c1
5233 self#plus _visitors_s0 _visitors_s1
5234 method on_AbsConst env _visitors_c0 _visitors_c1 =
5235 let _visitors_s0 = self#on_option self#on_hint env _visitors_c0 in
5236 let _visitors_s1 = self#on_id env _visitors_c1 in
5237 self#plus _visitors_s0 _visitors_s1
5238 method on_Attributes env _visitors_c0 =
5239 let _visitors_s0 = self#on_list self#on_class_attr env _visitors_c0
5241 _visitors_s0
5242 method on_TypeConst env _visitors_c0 =
5243 let _visitors_s0 = self#on_typeconst env _visitors_c0 in
5244 _visitors_s0
5245 method on_ClassUse env _visitors_c0 =
5246 let _visitors_s0 = self#on_hint env _visitors_c0 in _visitors_s0
5247 method on_ClassUseAlias env _visitors_c0 _visitors_c1 _visitors_c2
5248 _visitors_c3 =
5249 let _visitors_s0 = self#on_option self#on_id env _visitors_c0 in
5250 let _visitors_s1 = self#on_pstring env _visitors_c1 in
5251 let _visitors_s2 = self#on_option self#on_id env _visitors_c2 in
5252 let _visitors_s3 = self#on_list self#on_kind env _visitors_c3 in
5253 self#plus
5254 (self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2)
5255 _visitors_s3
5256 method on_ClassUsePrecedence env _visitors_c0 _visitors_c1
5257 _visitors_c2 =
5258 let _visitors_s0 = self#on_id env _visitors_c0 in
5259 let _visitors_s1 = self#on_pstring env _visitors_c1 in
5260 let _visitors_s2 = self#on_list self#on_id env _visitors_c2 in
5261 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5262 method on_XhpAttrUse env _visitors_c0 =
5263 let _visitors_s0 = self#on_hint env _visitors_c0 in _visitors_s0
5264 method on_ClassTraitRequire env _visitors_c0 _visitors_c1 =
5265 let _visitors_s0 = self#on_trait_req_kind env _visitors_c0 in
5266 let _visitors_s1 = self#on_hint env _visitors_c1 in
5267 self#plus _visitors_s0 _visitors_s1
5268 method on_ClassVars env _visitors_c0 =
5269 let _visitors_s0 = self#on_class_vars_ env _visitors_c0 in
5270 _visitors_s0
5271 method on_XhpAttr env _visitors_c0 _visitors_c1 _visitors_c2
5272 _visitors_c3 =
5273 let _visitors_s0 = self#on_option self#on_hint env _visitors_c0 in
5274 let _visitors_s1 = self#on_class_var env _visitors_c1 in
5275 let _visitors_s2 = self#on_bool env _visitors_c2 in
5276 let _visitors_s3 =
5277 self#on_option
5278 (fun env ->
5279 fun (_visitors_c0,_visitors_c1,_visitors_c2) ->
5280 let _visitors_s0 = self#on_pos env _visitors_c0 in
5281 let _visitors_s1 = self#on_bool env _visitors_c1 in
5282 let _visitors_s2 =
5283 self#on_list self#on_expr env _visitors_c2 in
5284 self#plus (self#plus _visitors_s0 _visitors_s1)
5285 _visitors_s2) env _visitors_c3
5287 self#plus
5288 (self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2)
5289 _visitors_s3
5290 method on_Method env _visitors_c0 =
5291 let _visitors_s0 = self#on_method_ env _visitors_c0 in
5292 _visitors_s0
5293 method on_XhpCategory env _visitors_c0 =
5294 let _visitors_s0 = self#on_list self#on_pstring env _visitors_c0
5296 _visitors_s0
5297 method on_XhpChild env _visitors_c0 =
5298 let _visitors_s0 = self#on_xhp_child env _visitors_c0 in
5299 _visitors_s0
5300 method on_class_elt env _visitors_this =
5301 match _visitors_this with
5302 | Const (_visitors_c0,_visitors_c1) ->
5303 self#on_Const env _visitors_c0 _visitors_c1
5304 | AbsConst (_visitors_c0,_visitors_c1) ->
5305 self#on_AbsConst env _visitors_c0 _visitors_c1
5306 | Attributes _visitors_c0 -> self#on_Attributes env _visitors_c0
5307 | TypeConst _visitors_c0 -> self#on_TypeConst env _visitors_c0
5308 | ClassUse _visitors_c0 -> self#on_ClassUse env _visitors_c0
5309 | ClassUseAlias
5310 (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
5311 self#on_ClassUseAlias env _visitors_c0 _visitors_c1
5312 _visitors_c2 _visitors_c3
5313 | ClassUsePrecedence (_visitors_c0,_visitors_c1,_visitors_c2) ->
5314 self#on_ClassUsePrecedence env _visitors_c0 _visitors_c1
5315 _visitors_c2
5316 | XhpAttrUse _visitors_c0 -> self#on_XhpAttrUse env _visitors_c0
5317 | ClassTraitRequire (_visitors_c0,_visitors_c1) ->
5318 self#on_ClassTraitRequire env _visitors_c0 _visitors_c1
5319 | ClassVars _visitors_c0 -> self#on_ClassVars env _visitors_c0
5320 | XhpAttr (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
5321 self#on_XhpAttr env _visitors_c0 _visitors_c1 _visitors_c2
5322 _visitors_c3
5323 | Method _visitors_c0 -> self#on_Method env _visitors_c0
5324 | XhpCategory _visitors_c0 -> self#on_XhpCategory env _visitors_c0
5325 | XhpChild _visitors_c0 -> self#on_XhpChild env _visitors_c0
5326 method on_ChildName env _visitors_c0 =
5327 let _visitors_s0 = self#on_id env _visitors_c0 in _visitors_s0
5328 method on_ChildList env _visitors_c0 =
5329 let _visitors_s0 = self#on_list self#on_xhp_child env _visitors_c0
5331 _visitors_s0
5332 method on_ChildUnary env _visitors_c0 _visitors_c1 =
5333 let _visitors_s0 = self#on_xhp_child env _visitors_c0 in
5334 let _visitors_s1 = self#on_xhp_child_op env _visitors_c1 in
5335 self#plus _visitors_s0 _visitors_s1
5336 method on_ChildBinary env _visitors_c0 _visitors_c1 =
5337 let _visitors_s0 = self#on_xhp_child env _visitors_c0 in
5338 let _visitors_s1 = self#on_xhp_child env _visitors_c1 in
5339 self#plus _visitors_s0 _visitors_s1
5340 method on_xhp_child env _visitors_this =
5341 match _visitors_this with
5342 | ChildName _visitors_c0 -> self#on_ChildName env _visitors_c0
5343 | ChildList _visitors_c0 -> self#on_ChildList env _visitors_c0
5344 | ChildUnary (_visitors_c0,_visitors_c1) ->
5345 self#on_ChildUnary env _visitors_c0 _visitors_c1
5346 | ChildBinary (_visitors_c0,_visitors_c1) ->
5347 self#on_ChildBinary env _visitors_c0 _visitors_c1
5348 method on_ChildStar env = self#zero
5349 method on_ChildPlus env = self#zero
5350 method on_ChildQuestion env = self#zero
5351 method on_xhp_child_op env _visitors_this =
5352 match _visitors_this with
5353 | ChildStar -> self#on_ChildStar env
5354 | ChildPlus -> self#on_ChildPlus env
5355 | ChildQuestion -> self#on_ChildQuestion env
5356 method on_CA_name env _visitors_c0 =
5357 let _visitors_s0 = self#on_id env _visitors_c0 in _visitors_s0
5358 method on_CA_field env _visitors_c0 =
5359 let _visitors_s0 = self#on_ca_field env _visitors_c0 in
5360 _visitors_s0
5361 method on_class_attr env _visitors_this =
5362 match _visitors_this with
5363 | CA_name _visitors_c0 -> self#on_CA_name env _visitors_c0
5364 | CA_field _visitors_c0 -> self#on_CA_field env _visitors_c0
5365 method on_ca_field env _visitors_this =
5366 let _visitors_s0 = self#on_ca_type env _visitors_this.ca_type in
5367 let _visitors_s1 = self#on_id env _visitors_this.ca_id in
5368 let _visitors_s2 =
5369 self#on_option self#on_expr env _visitors_this.ca_value in
5370 let _visitors_s3 = self#on_bool env _visitors_this.ca_required in
5371 self#plus
5372 (self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2)
5373 _visitors_s3
5374 method on_CA_hint env _visitors_c0 =
5375 let _visitors_s0 = self#on_hint env _visitors_c0 in _visitors_s0
5376 method on_CA_enum env _visitors_c0 =
5377 let _visitors_s0 = self#on_list self#on_string env _visitors_c0 in
5378 _visitors_s0
5379 method on_ca_type env _visitors_this =
5380 match _visitors_this with
5381 | CA_hint _visitors_c0 -> self#on_CA_hint env _visitors_c0
5382 | CA_enum _visitors_c0 -> self#on_CA_enum env _visitors_c0
5383 method on_class_var env (_visitors_c0,_visitors_c1,_visitors_c2) =
5384 let _visitors_s0 = self#on_pos env _visitors_c0 in
5385 let _visitors_s1 = self#on_id env _visitors_c1 in
5386 let _visitors_s2 = self#on_option self#on_expr env _visitors_c2 in
5387 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5388 method on_class_vars_ env _visitors_this =
5389 let _visitors_s0 =
5390 self#on_list self#on_kind env _visitors_this.cv_kinds in
5391 let _visitors_s1 =
5392 self#on_option self#on_hint env _visitors_this.cv_hint in
5393 let _visitors_s2 =
5394 self#on_is_variadic env _visitors_this.cv_is_promoted_variadic
5396 let _visitors_s3 =
5397 self#on_list self#on_class_var env _visitors_this.cv_names in
5398 let _visitors_s4 =
5399 self#on_option self#on_string env _visitors_this.cv_doc_comment
5401 let _visitors_s5 =
5402 self#on_list self#on_user_attribute env
5403 _visitors_this.cv_user_attributes
5405 self#plus
5406 (self#plus
5407 (self#plus
5408 (self#plus (self#plus _visitors_s0 _visitors_s1)
5409 _visitors_s2) _visitors_s3) _visitors_s4) _visitors_s5
5410 method on_method_ env _visitors_this =
5411 let _visitors_s0 =
5412 self#on_list self#on_kind env _visitors_this.m_kind in
5413 let _visitors_s1 =
5414 self#on_list self#on_tparam env _visitors_this.m_tparams in
5415 let _visitors_s2 =
5416 self#on_list
5417 (fun env ->
5418 fun (_visitors_c0,_visitors_c1,_visitors_c2) ->
5419 let _visitors_s0 = self#on_hint env _visitors_c0 in
5420 let _visitors_s1 =
5421 self#on_constraint_kind env _visitors_c1 in
5422 let _visitors_s2 = self#on_hint env _visitors_c2 in
5423 self#plus (self#plus _visitors_s0 _visitors_s1)
5424 _visitors_s2) env _visitors_this.m_constrs
5426 let _visitors_s3 = self#on_id env _visitors_this.m_name in
5427 let _visitors_s4 =
5428 self#on_list self#on_fun_param env _visitors_this.m_params in
5429 let _visitors_s5 = self#on_block env _visitors_this.m_body in
5430 let _visitors_s6 =
5431 self#on_list self#on_user_attribute env
5432 _visitors_this.m_user_attributes
5434 let _visitors_s7 =
5435 self#on_option self#on_hint env _visitors_this.m_ret in
5436 let _visitors_s8 = self#on_bool env _visitors_this.m_ret_by_ref in
5437 let _visitors_s9 = self#on_fun_kind env _visitors_this.m_fun_kind
5439 let _visitors_s10 = self#on_pos env _visitors_this.m_span in
5440 let _visitors_s11 =
5441 self#on_option self#on_string env _visitors_this.m_doc_comment
5443 self#plus
5444 (self#plus
5445 (self#plus
5446 (self#plus
5447 (self#plus
5448 (self#plus
5449 (self#plus
5450 (self#plus
5451 (self#plus
5452 (self#plus
5453 (self#plus _visitors_s0 _visitors_s1)
5454 _visitors_s2) _visitors_s3)
5455 _visitors_s4) _visitors_s5) _visitors_s6)
5456 _visitors_s7) _visitors_s8) _visitors_s9)
5457 _visitors_s10) _visitors_s11
5458 method on_typeconst env _visitors_this =
5459 let _visitors_s0 = self#on_bool env _visitors_this.tconst_abstract
5461 let _visitors_s1 = self#on_id env _visitors_this.tconst_name in
5462 let _visitors_s2 =
5463 self#on_list self#on_tparam env _visitors_this.tconst_tparams in
5464 let _visitors_s3 =
5465 self#on_option self#on_hint env _visitors_this.tconst_constraint
5467 let _visitors_s4 =
5468 self#on_option self#on_hint env _visitors_this.tconst_type in
5469 let _visitors_s5 = self#on_pos env _visitors_this.tconst_span in
5470 self#plus
5471 (self#plus
5472 (self#plus
5473 (self#plus (self#plus _visitors_s0 _visitors_s1)
5474 _visitors_s2) _visitors_s3) _visitors_s4) _visitors_s5
5475 method on_is_reference env = self#on_bool env
5476 method on_is_variadic env = self#on_bool env
5477 method on_fun_param env _visitors_this =
5478 let _visitors_s0 =
5479 self#on_option self#on_hint env _visitors_this.param_hint in
5480 let _visitors_s1 =
5481 self#on_is_reference env _visitors_this.param_is_reference in
5482 let _visitors_s2 =
5483 self#on_is_variadic env _visitors_this.param_is_variadic in
5484 let _visitors_s3 = self#on_id env _visitors_this.param_id in
5485 let _visitors_s4 =
5486 self#on_option self#on_expr env _visitors_this.param_expr in
5487 let _visitors_s5 =
5488 self#on_option self#on_kind env _visitors_this.param_modifier in
5489 let _visitors_s6 =
5490 self#on_option self#on_param_kind env
5491 _visitors_this.param_callconv
5493 let _visitors_s7 =
5494 self#on_list self#on_user_attribute env
5495 _visitors_this.param_user_attributes
5497 self#plus
5498 (self#plus
5499 (self#plus
5500 (self#plus
5501 (self#plus
5502 (self#plus (self#plus _visitors_s0 _visitors_s1)
5503 _visitors_s2) _visitors_s3) _visitors_s4)
5504 _visitors_s5) _visitors_s6) _visitors_s7
5505 method on_fun_ env _visitors_this =
5506 let _visitors_s0 = self#on_fimode env _visitors_this.f_mode in
5507 let _visitors_s1 =
5508 self#on_list self#on_tparam env _visitors_this.f_tparams in
5509 let _visitors_s2 =
5510 self#on_list
5511 (fun env ->
5512 fun (_visitors_c0,_visitors_c1,_visitors_c2) ->
5513 let _visitors_s0 = self#on_hint env _visitors_c0 in
5514 let _visitors_s1 =
5515 self#on_constraint_kind env _visitors_c1 in
5516 let _visitors_s2 = self#on_hint env _visitors_c2 in
5517 self#plus (self#plus _visitors_s0 _visitors_s1)
5518 _visitors_s2) env _visitors_this.f_constrs
5520 let _visitors_s3 =
5521 self#on_option self#on_hint env _visitors_this.f_ret in
5522 let _visitors_s4 = self#on_bool env _visitors_this.f_ret_by_ref in
5523 let _visitors_s5 = self#on_id env _visitors_this.f_name in
5524 let _visitors_s6 =
5525 self#on_list self#on_fun_param env _visitors_this.f_params in
5526 let _visitors_s7 = self#on_block env _visitors_this.f_body in
5527 let _visitors_s8 =
5528 self#on_list self#on_user_attribute env
5529 _visitors_this.f_user_attributes
5531 let _visitors_s9 = self#on_fun_kind env _visitors_this.f_fun_kind
5533 let _visitors_s10 = self#on_nsenv env _visitors_this.f_namespace
5535 let _visitors_s11 = self#on_pos env _visitors_this.f_span in
5536 let _visitors_s12 =
5537 self#on_option self#on_string env _visitors_this.f_doc_comment
5539 let _visitors_s13 = self#on_bool env _visitors_this.f_static in
5540 self#plus
5541 (self#plus
5542 (self#plus
5543 (self#plus
5544 (self#plus
5545 (self#plus
5546 (self#plus
5547 (self#plus
5548 (self#plus
5549 (self#plus
5550 (self#plus
5551 (self#plus
5552 (self#plus _visitors_s0
5553 _visitors_s1) _visitors_s2)
5554 _visitors_s3) _visitors_s4)
5555 _visitors_s5) _visitors_s6) _visitors_s7)
5556 _visitors_s8) _visitors_s9) _visitors_s10)
5557 _visitors_s11) _visitors_s12) _visitors_s13
5558 method on_is_coroutine env = self#on_bool env
5559 method on_hint env (_visitors_c0,_visitors_c1) =
5560 let _visitors_s0 = self#on_pos env _visitors_c0 in
5561 let _visitors_s1 = self#on_hint_ env _visitors_c1 in
5562 self#plus _visitors_s0 _visitors_s1
5563 method on_Hvariadic env _visitors_c0 =
5564 let _visitors_s0 = self#on_option self#on_hint env _visitors_c0 in
5565 _visitors_s0
5566 method on_Hnon_variadic env = self#zero
5567 method on_variadic_hint env _visitors_this =
5568 match _visitors_this with
5569 | Hvariadic _visitors_c0 -> self#on_Hvariadic env _visitors_c0
5570 | Hnon_variadic -> self#on_Hnon_variadic env
5571 method on_Hoption env _visitors_c0 =
5572 let _visitors_s0 = self#on_hint env _visitors_c0 in _visitors_s0
5573 method on_Hfun env _visitors_c0 _visitors_c1 _visitors_c2
5574 _visitors_c3 _visitors_c4 =
5575 let _visitors_s0 = self#on_is_coroutine env _visitors_c0 in
5576 let _visitors_s1 = self#on_list self#on_hint env _visitors_c1 in
5577 let _visitors_s2 =
5578 self#on_list (self#on_option self#on_param_kind) env _visitors_c2
5580 let _visitors_s3 = self#on_variadic_hint env _visitors_c3 in
5581 let _visitors_s4 = self#on_hint env _visitors_c4 in
5582 self#plus
5583 (self#plus
5584 (self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2)
5585 _visitors_s3) _visitors_s4
5586 method on_Htuple env _visitors_c0 =
5587 let _visitors_s0 = self#on_list self#on_hint env _visitors_c0 in
5588 _visitors_s0
5589 method on_Happly env _visitors_c0 _visitors_c1 =
5590 let _visitors_s0 = self#on_id env _visitors_c0 in
5591 let _visitors_s1 = self#on_list self#on_hint env _visitors_c1 in
5592 self#plus _visitors_s0 _visitors_s1
5593 method on_Hshape env _visitors_c0 =
5594 let _visitors_s0 = self#on_shape_info env _visitors_c0 in
5595 _visitors_s0
5596 method on_Haccess env _visitors_c0 _visitors_c1 _visitors_c2 =
5597 let _visitors_s0 = self#on_id env _visitors_c0 in
5598 let _visitors_s1 = self#on_id env _visitors_c1 in
5599 let _visitors_s2 = self#on_list self#on_id env _visitors_c2 in
5600 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5601 method on_Hsoft env _visitors_c0 =
5602 let _visitors_s0 = self#on_hint env _visitors_c0 in _visitors_s0
5603 method on_hint_ env _visitors_this =
5604 match _visitors_this with
5605 | Hoption _visitors_c0 -> self#on_Hoption env _visitors_c0
5606 | Hfun
5607 (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3,_visitors_c4)
5609 self#on_Hfun env _visitors_c0 _visitors_c1 _visitors_c2
5610 _visitors_c3 _visitors_c4
5611 | Htuple _visitors_c0 -> self#on_Htuple env _visitors_c0
5612 | Happly (_visitors_c0,_visitors_c1) ->
5613 self#on_Happly env _visitors_c0 _visitors_c1
5614 | Hshape _visitors_c0 -> self#on_Hshape env _visitors_c0
5615 | Haccess (_visitors_c0,_visitors_c1,_visitors_c2) ->
5616 self#on_Haccess env _visitors_c0 _visitors_c1 _visitors_c2
5617 | Hsoft _visitors_c0 -> self#on_Hsoft env _visitors_c0
5618 method on_shape_info env _visitors_this =
5619 let _visitors_s0 =
5620 self#on_bool env _visitors_this.si_allows_unknown_fields in
5621 let _visitors_s1 =
5622 self#on_list self#on_shape_field env
5623 _visitors_this.si_shape_field_list
5625 self#plus _visitors_s0 _visitors_s1
5626 method on_shape_field env _visitors_this =
5627 let _visitors_s0 = self#on_bool env _visitors_this.sf_optional in
5628 let _visitors_s1 =
5629 self#on_shape_field_name env _visitors_this.sf_name in
5630 let _visitors_s2 = self#on_hint env _visitors_this.sf_hint in
5631 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5632 method on_using_stmt env _visitors_this =
5633 let _visitors_s0 =
5634 self#on_bool env _visitors_this.us_is_block_scoped in
5635 let _visitors_s1 = self#on_bool env _visitors_this.us_has_await in
5636 let _visitors_s2 = self#on_expr env _visitors_this.us_expr in
5637 let _visitors_s3 = self#on_block env _visitors_this.us_block in
5638 self#plus
5639 (self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2)
5640 _visitors_s3
5641 method on_stmt env (_visitors_c0,_visitors_c1) =
5642 let _visitors_s0 = self#on_pos env _visitors_c0 in
5643 let _visitors_s1 = self#on_stmt_ env _visitors_c1 in
5644 self#plus _visitors_s0 _visitors_s1
5645 method on_Unsafe env = self#zero
5646 method on_Fallthrough env = self#zero
5647 method on_Expr env _visitors_c0 =
5648 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
5649 method on_Block env _visitors_c0 =
5650 let _visitors_s0 = self#on_block env _visitors_c0 in _visitors_s0
5651 method on_Break env _visitors_c0 =
5652 let _visitors_s0 = self#on_option self#on_expr env _visitors_c0 in
5653 _visitors_s0
5654 method on_Continue env _visitors_c0 =
5655 let _visitors_s0 = self#on_option self#on_expr env _visitors_c0 in
5656 _visitors_s0
5657 method on_Throw env _visitors_c0 =
5658 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
5659 method on_Return env _visitors_c0 =
5660 let _visitors_s0 = self#on_option self#on_expr env _visitors_c0 in
5661 _visitors_s0
5662 method on_GotoLabel env _visitors_c0 =
5663 let _visitors_s0 = self#on_pstring env _visitors_c0 in
5664 _visitors_s0
5665 method on_Goto env _visitors_c0 =
5666 let _visitors_s0 = self#on_pstring env _visitors_c0 in
5667 _visitors_s0
5668 method on_Static_var env _visitors_c0 =
5669 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0 in
5670 _visitors_s0
5671 method on_Global_var env _visitors_c0 =
5672 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0 in
5673 _visitors_s0
5674 method on_If env _visitors_c0 _visitors_c1 _visitors_c2 =
5675 let _visitors_s0 = self#on_expr env _visitors_c0 in
5676 let _visitors_s1 = self#on_block env _visitors_c1 in
5677 let _visitors_s2 = self#on_block env _visitors_c2 in
5678 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5679 method on_Do env _visitors_c0 _visitors_c1 =
5680 let _visitors_s0 = self#on_block env _visitors_c0 in
5681 let _visitors_s1 = self#on_expr env _visitors_c1 in
5682 self#plus _visitors_s0 _visitors_s1
5683 method on_While env _visitors_c0 _visitors_c1 =
5684 let _visitors_s0 = self#on_expr env _visitors_c0 in
5685 let _visitors_s1 = self#on_block env _visitors_c1 in
5686 self#plus _visitors_s0 _visitors_s1
5687 method on_For env _visitors_c0 _visitors_c1 _visitors_c2 _visitors_c3
5689 let _visitors_s0 = self#on_expr env _visitors_c0 in
5690 let _visitors_s1 = self#on_expr env _visitors_c1 in
5691 let _visitors_s2 = self#on_expr env _visitors_c2 in
5692 let _visitors_s3 = self#on_block env _visitors_c3 in
5693 self#plus
5694 (self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2)
5695 _visitors_s3
5696 method on_Switch env _visitors_c0 _visitors_c1 =
5697 let _visitors_s0 = self#on_expr env _visitors_c0 in
5698 let _visitors_s1 = self#on_list self#on_case env _visitors_c1 in
5699 self#plus _visitors_s0 _visitors_s1
5700 method on_Foreach env _visitors_c0 _visitors_c1 _visitors_c2
5701 _visitors_c3 =
5702 let _visitors_s0 = self#on_expr env _visitors_c0 in
5703 let _visitors_s1 = self#on_option self#on_pos env _visitors_c1 in
5704 let _visitors_s2 = self#on_as_expr env _visitors_c2 in
5705 let _visitors_s3 = self#on_block env _visitors_c3 in
5706 self#plus
5707 (self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2)
5708 _visitors_s3
5709 method on_Try env _visitors_c0 _visitors_c1 _visitors_c2 =
5710 let _visitors_s0 = self#on_block env _visitors_c0 in
5711 let _visitors_s1 = self#on_list self#on_catch env _visitors_c1 in
5712 let _visitors_s2 = self#on_block env _visitors_c2 in
5713 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5714 method on_Def_inline env _visitors_c0 =
5715 let _visitors_s0 = self#on_def env _visitors_c0 in _visitors_s0
5716 method on_Noop env = self#zero
5717 method on_Markup env _visitors_c0 _visitors_c1 =
5718 let _visitors_s0 = self#on_pstring env _visitors_c0 in
5719 let _visitors_s1 = self#on_option self#on_expr env _visitors_c1 in
5720 self#plus _visitors_s0 _visitors_s1
5721 method on_Using env _visitors_c0 =
5722 let _visitors_s0 = self#on_using_stmt env _visitors_c0 in
5723 _visitors_s0
5724 method on_Declare env _visitors_c0 _visitors_c1 _visitors_c2 =
5725 let _visitors_s0 = self#on_bool env _visitors_c0 in
5726 let _visitors_s1 = self#on_expr env _visitors_c1 in
5727 let _visitors_s2 = self#on_block env _visitors_c2 in
5728 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5729 method on_stmt_ env _visitors_this =
5730 match _visitors_this with
5731 | Unsafe -> self#on_Unsafe env
5732 | Fallthrough -> self#on_Fallthrough env
5733 | Expr _visitors_c0 -> self#on_Expr env _visitors_c0
5734 | Block _visitors_c0 -> self#on_Block env _visitors_c0
5735 | Break _visitors_c0 -> self#on_Break env _visitors_c0
5736 | Continue _visitors_c0 -> self#on_Continue env _visitors_c0
5737 | Throw _visitors_c0 -> self#on_Throw env _visitors_c0
5738 | Return _visitors_c0 -> self#on_Return env _visitors_c0
5739 | GotoLabel _visitors_c0 -> self#on_GotoLabel env _visitors_c0
5740 | Goto _visitors_c0 -> self#on_Goto env _visitors_c0
5741 | Static_var _visitors_c0 -> self#on_Static_var env _visitors_c0
5742 | Global_var _visitors_c0 -> self#on_Global_var env _visitors_c0
5743 | If (_visitors_c0,_visitors_c1,_visitors_c2) ->
5744 self#on_If env _visitors_c0 _visitors_c1 _visitors_c2
5745 | Do (_visitors_c0,_visitors_c1) ->
5746 self#on_Do env _visitors_c0 _visitors_c1
5747 | While (_visitors_c0,_visitors_c1) ->
5748 self#on_While env _visitors_c0 _visitors_c1
5749 | For (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
5750 self#on_For env _visitors_c0 _visitors_c1 _visitors_c2
5751 _visitors_c3
5752 | Switch (_visitors_c0,_visitors_c1) ->
5753 self#on_Switch env _visitors_c0 _visitors_c1
5754 | Foreach (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
5755 self#on_Foreach env _visitors_c0 _visitors_c1 _visitors_c2
5756 _visitors_c3
5757 | Try (_visitors_c0,_visitors_c1,_visitors_c2) ->
5758 self#on_Try env _visitors_c0 _visitors_c1 _visitors_c2
5759 | Def_inline _visitors_c0 -> self#on_Def_inline env _visitors_c0
5760 | Noop -> self#on_Noop env
5761 | Markup (_visitors_c0,_visitors_c1) ->
5762 self#on_Markup env _visitors_c0 _visitors_c1
5763 | Using _visitors_c0 -> self#on_Using env _visitors_c0
5764 | Declare (_visitors_c0,_visitors_c1,_visitors_c2) ->
5765 self#on_Declare env _visitors_c0 _visitors_c1 _visitors_c2
5766 method on_As_v env _visitors_c0 =
5767 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
5768 method on_As_kv env _visitors_c0 _visitors_c1 =
5769 let _visitors_s0 = self#on_expr env _visitors_c0 in
5770 let _visitors_s1 = self#on_expr env _visitors_c1 in
5771 self#plus _visitors_s0 _visitors_s1
5772 method on_as_expr env _visitors_this =
5773 match _visitors_this with
5774 | As_v _visitors_c0 -> self#on_As_v env _visitors_c0
5775 | As_kv (_visitors_c0,_visitors_c1) ->
5776 self#on_As_kv env _visitors_c0 _visitors_c1
5777 method on_Xhp_simple env _visitors_c0 _visitors_c1 =
5778 let _visitors_s0 = self#on_id env _visitors_c0 in
5779 let _visitors_s1 = self#on_expr env _visitors_c1 in
5780 self#plus _visitors_s0 _visitors_s1
5781 method on_Xhp_spread env _visitors_c0 =
5782 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
5783 method on_xhp_attribute env _visitors_this =
5784 match _visitors_this with
5785 | Xhp_simple (_visitors_c0,_visitors_c1) ->
5786 self#on_Xhp_simple env _visitors_c0 _visitors_c1
5787 | Xhp_spread _visitors_c0 -> self#on_Xhp_spread env _visitors_c0
5788 method on_block env = self#on_list self#on_stmt env
5789 method on_expr env (_visitors_c0,_visitors_c1) =
5790 let _visitors_s0 = self#on_pos env _visitors_c0 in
5791 let _visitors_s1 = self#on_expr_ env _visitors_c1 in
5792 self#plus _visitors_s0 _visitors_s1
5793 method on_Array env _visitors_c0 =
5794 let _visitors_s0 = self#on_list self#on_afield env _visitors_c0 in
5795 _visitors_s0
5796 method on_Varray env _visitors_c0 =
5797 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0 in
5798 _visitors_s0
5799 method on_Darray env _visitors_c0 =
5800 let _visitors_s0 =
5801 self#on_list
5802 (fun env ->
5803 fun (_visitors_c0,_visitors_c1) ->
5804 let _visitors_s0 = self#on_expr env _visitors_c0 in
5805 let _visitors_s1 = self#on_expr env _visitors_c1 in
5806 self#plus _visitors_s0 _visitors_s1) env _visitors_c0
5808 _visitors_s0
5809 method on_Shape env _visitors_c0 =
5810 let _visitors_s0 =
5811 self#on_list
5812 (fun env ->
5813 fun (_visitors_c0,_visitors_c1) ->
5814 let _visitors_s0 =
5815 self#on_shape_field_name env _visitors_c0 in
5816 let _visitors_s1 = self#on_expr env _visitors_c1 in
5817 self#plus _visitors_s0 _visitors_s1) env _visitors_c0
5819 _visitors_s0
5820 method on_Collection env _visitors_c0 _visitors_c1 =
5821 let _visitors_s0 = self#on_id env _visitors_c0 in
5822 let _visitors_s1 = self#on_list self#on_afield env _visitors_c1 in
5823 self#plus _visitors_s0 _visitors_s1
5824 method on_Null env = self#zero
5825 method on_True env = self#zero
5826 method on_False env = self#zero
5827 method on_Omitted env = self#zero
5828 method on_Id env _visitors_c0 =
5829 let _visitors_s0 = self#on_id env _visitors_c0 in _visitors_s0
5830 method on_Id_type_arguments env _visitors_c0 _visitors_c1 =
5831 let _visitors_s0 = self#on_id env _visitors_c0 in
5832 let _visitors_s1 = self#on_list self#on_hint env _visitors_c1 in
5833 self#plus _visitors_s0 _visitors_s1
5834 method on_Lvar env _visitors_c0 =
5835 let _visitors_s0 = self#on_id env _visitors_c0 in _visitors_s0
5836 method on_Dollar env _visitors_c0 =
5837 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
5838 method on_Clone env _visitors_c0 =
5839 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
5840 method on_Obj_get env _visitors_c0 _visitors_c1 _visitors_c2 =
5841 let _visitors_s0 = self#on_expr env _visitors_c0 in
5842 let _visitors_s1 = self#on_expr env _visitors_c1 in
5843 let _visitors_s2 = self#on_og_null_flavor env _visitors_c2 in
5844 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5845 method on_Array_get env _visitors_c0 _visitors_c1 =
5846 let _visitors_s0 = self#on_expr env _visitors_c0 in
5847 let _visitors_s1 = self#on_option self#on_expr env _visitors_c1 in
5848 self#plus _visitors_s0 _visitors_s1
5849 method on_Class_get env _visitors_c0 _visitors_c1 =
5850 let _visitors_s0 = self#on_expr env _visitors_c0 in
5851 let _visitors_s1 = self#on_expr env _visitors_c1 in
5852 self#plus _visitors_s0 _visitors_s1
5853 method on_Class_const env _visitors_c0 _visitors_c1 =
5854 let _visitors_s0 = self#on_expr env _visitors_c0 in
5855 let _visitors_s1 = self#on_pstring env _visitors_c1 in
5856 self#plus _visitors_s0 _visitors_s1
5857 method on_Call env _visitors_c0 _visitors_c1 _visitors_c2
5858 _visitors_c3 =
5859 let _visitors_s0 = self#on_expr env _visitors_c0 in
5860 let _visitors_s1 = self#on_list self#on_hint env _visitors_c1 in
5861 let _visitors_s2 = self#on_list self#on_expr env _visitors_c2 in
5862 let _visitors_s3 = self#on_list self#on_expr env _visitors_c3 in
5863 self#plus
5864 (self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2)
5865 _visitors_s3
5866 method on_Int env _visitors_c0 =
5867 let _visitors_s0 = self#on_pstring env _visitors_c0 in
5868 _visitors_s0
5869 method on_Float env _visitors_c0 =
5870 let _visitors_s0 = self#on_pstring env _visitors_c0 in
5871 _visitors_s0
5872 method on_String env _visitors_c0 =
5873 let _visitors_s0 = self#on_pstring env _visitors_c0 in
5874 _visitors_s0
5875 method on_String2 env _visitors_c0 =
5876 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0 in
5877 _visitors_s0
5878 method on_Yield env _visitors_c0 =
5879 let _visitors_s0 = self#on_afield env _visitors_c0 in _visitors_s0
5880 method on_Yield_break env = self#zero
5881 method on_Yield_from env _visitors_c0 =
5882 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
5883 method on_Await env _visitors_c0 =
5884 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
5885 method on_Suspend env _visitors_c0 =
5886 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
5887 method on_List env _visitors_c0 =
5888 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0 in
5889 _visitors_s0
5890 method on_Expr_list env _visitors_c0 =
5891 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0 in
5892 _visitors_s0
5893 method on_Cast env _visitors_c0 _visitors_c1 =
5894 let _visitors_s0 = self#on_hint env _visitors_c0 in
5895 let _visitors_s1 = self#on_expr env _visitors_c1 in
5896 self#plus _visitors_s0 _visitors_s1
5897 method on_Unop env _visitors_c0 _visitors_c1 =
5898 let _visitors_s0 = self#on_uop env _visitors_c0 in
5899 let _visitors_s1 = self#on_expr env _visitors_c1 in
5900 self#plus _visitors_s0 _visitors_s1
5901 method on_Binop env _visitors_c0 _visitors_c1 _visitors_c2 =
5902 let _visitors_s0 = self#on_bop env _visitors_c0 in
5903 let _visitors_s1 = self#on_expr env _visitors_c1 in
5904 let _visitors_s2 = self#on_expr env _visitors_c2 in
5905 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5906 method on_Pipe env _visitors_c0 _visitors_c1 =
5907 let _visitors_s0 = self#on_expr env _visitors_c0 in
5908 let _visitors_s1 = self#on_expr env _visitors_c1 in
5909 self#plus _visitors_s0 _visitors_s1
5910 method on_Eif env _visitors_c0 _visitors_c1 _visitors_c2 =
5911 let _visitors_s0 = self#on_expr env _visitors_c0 in
5912 let _visitors_s1 = self#on_option self#on_expr env _visitors_c1 in
5913 let _visitors_s2 = self#on_expr env _visitors_c2 in
5914 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5915 method on_NullCoalesce env _visitors_c0 _visitors_c1 =
5916 let _visitors_s0 = self#on_expr env _visitors_c0 in
5917 let _visitors_s1 = self#on_expr env _visitors_c1 in
5918 self#plus _visitors_s0 _visitors_s1
5919 method on_InstanceOf env _visitors_c0 _visitors_c1 =
5920 let _visitors_s0 = self#on_expr env _visitors_c0 in
5921 let _visitors_s1 = self#on_expr env _visitors_c1 in
5922 self#plus _visitors_s0 _visitors_s1
5923 method on_Is env _visitors_c0 _visitors_c1 =
5924 let _visitors_s0 = self#on_expr env _visitors_c0 in
5925 let _visitors_s1 = self#on_hint env _visitors_c1 in
5926 self#plus _visitors_s0 _visitors_s1
5927 method on_BracedExpr env _visitors_c0 =
5928 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
5929 method on_ParenthesizedExpr env _visitors_c0 =
5930 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
5931 method on_New env _visitors_c0 _visitors_c1 _visitors_c2 =
5932 let _visitors_s0 = self#on_expr env _visitors_c0 in
5933 let _visitors_s1 = self#on_list self#on_expr env _visitors_c1 in
5934 let _visitors_s2 = self#on_list self#on_expr env _visitors_c2 in
5935 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5936 method on_NewAnonClass env _visitors_c0 _visitors_c1 _visitors_c2 =
5937 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0 in
5938 let _visitors_s1 = self#on_list self#on_expr env _visitors_c1 in
5939 let _visitors_s2 = self#on_class_ env _visitors_c2 in
5940 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5941 method on_Efun env _visitors_c0 _visitors_c1 =
5942 let _visitors_s0 = self#on_fun_ env _visitors_c0 in
5943 let _visitors_s1 =
5944 self#on_list
5945 (fun env ->
5946 fun (_visitors_c0,_visitors_c1) ->
5947 let _visitors_s0 = self#on_id env _visitors_c0 in
5948 let _visitors_s1 = self#on_bool env _visitors_c1 in
5949 self#plus _visitors_s0 _visitors_s1) env _visitors_c1
5951 self#plus _visitors_s0 _visitors_s1
5952 method on_Lfun env _visitors_c0 =
5953 let _visitors_s0 = self#on_fun_ env _visitors_c0 in _visitors_s0
5954 method on_Xml env _visitors_c0 _visitors_c1 _visitors_c2 =
5955 let _visitors_s0 = self#on_id env _visitors_c0 in
5956 let _visitors_s1 =
5957 self#on_list self#on_xhp_attribute env _visitors_c1 in
5958 let _visitors_s2 = self#on_list self#on_expr env _visitors_c2 in
5959 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
5960 method on_Unsafeexpr env _visitors_c0 =
5961 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
5962 method on_Import env _visitors_c0 _visitors_c1 =
5963 let _visitors_s0 = self#on_import_flavor env _visitors_c0 in
5964 let _visitors_s1 = self#on_expr env _visitors_c1 in
5965 self#plus _visitors_s0 _visitors_s1
5966 method on_Callconv env _visitors_c0 _visitors_c1 =
5967 let _visitors_s0 = self#on_param_kind env _visitors_c0 in
5968 let _visitors_s1 = self#on_expr env _visitors_c1 in
5969 self#plus _visitors_s0 _visitors_s1
5970 method on_Execution_operator env _visitors_c0 =
5971 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0 in
5972 _visitors_s0
5973 method on_expr_ env _visitors_this =
5974 match _visitors_this with
5975 | Array _visitors_c0 -> self#on_Array env _visitors_c0
5976 | Varray _visitors_c0 -> self#on_Varray env _visitors_c0
5977 | Darray _visitors_c0 -> self#on_Darray env _visitors_c0
5978 | Shape _visitors_c0 -> self#on_Shape env _visitors_c0
5979 | Collection (_visitors_c0,_visitors_c1) ->
5980 self#on_Collection env _visitors_c0 _visitors_c1
5981 | Null -> self#on_Null env
5982 | True -> self#on_True env
5983 | False -> self#on_False env
5984 | Omitted -> self#on_Omitted env
5985 | Id _visitors_c0 -> self#on_Id env _visitors_c0
5986 | Id_type_arguments (_visitors_c0,_visitors_c1) ->
5987 self#on_Id_type_arguments env _visitors_c0 _visitors_c1
5988 | Lvar _visitors_c0 -> self#on_Lvar env _visitors_c0
5989 | Dollar _visitors_c0 -> self#on_Dollar env _visitors_c0
5990 | Clone _visitors_c0 -> self#on_Clone env _visitors_c0
5991 | Obj_get (_visitors_c0,_visitors_c1,_visitors_c2) ->
5992 self#on_Obj_get env _visitors_c0 _visitors_c1 _visitors_c2
5993 | Array_get (_visitors_c0,_visitors_c1) ->
5994 self#on_Array_get env _visitors_c0 _visitors_c1
5995 | Class_get (_visitors_c0,_visitors_c1) ->
5996 self#on_Class_get env _visitors_c0 _visitors_c1
5997 | Class_const (_visitors_c0,_visitors_c1) ->
5998 self#on_Class_const env _visitors_c0 _visitors_c1
5999 | Call (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
6000 self#on_Call env _visitors_c0 _visitors_c1 _visitors_c2
6001 _visitors_c3
6002 | Int _visitors_c0 -> self#on_Int env _visitors_c0
6003 | Float _visitors_c0 -> self#on_Float env _visitors_c0
6004 | String _visitors_c0 -> self#on_String env _visitors_c0
6005 | String2 _visitors_c0 -> self#on_String2 env _visitors_c0
6006 | Yield _visitors_c0 -> self#on_Yield env _visitors_c0
6007 | Yield_break -> self#on_Yield_break env
6008 | Yield_from _visitors_c0 -> self#on_Yield_from env _visitors_c0
6009 | Await _visitors_c0 -> self#on_Await env _visitors_c0
6010 | Suspend _visitors_c0 -> self#on_Suspend env _visitors_c0
6011 | List _visitors_c0 -> self#on_List env _visitors_c0
6012 | Expr_list _visitors_c0 -> self#on_Expr_list env _visitors_c0
6013 | Cast (_visitors_c0,_visitors_c1) ->
6014 self#on_Cast env _visitors_c0 _visitors_c1
6015 | Unop (_visitors_c0,_visitors_c1) ->
6016 self#on_Unop env _visitors_c0 _visitors_c1
6017 | Binop (_visitors_c0,_visitors_c1,_visitors_c2) ->
6018 self#on_Binop env _visitors_c0 _visitors_c1 _visitors_c2
6019 | Pipe (_visitors_c0,_visitors_c1) ->
6020 self#on_Pipe env _visitors_c0 _visitors_c1
6021 | Eif (_visitors_c0,_visitors_c1,_visitors_c2) ->
6022 self#on_Eif env _visitors_c0 _visitors_c1 _visitors_c2
6023 | NullCoalesce (_visitors_c0,_visitors_c1) ->
6024 self#on_NullCoalesce env _visitors_c0 _visitors_c1
6025 | InstanceOf (_visitors_c0,_visitors_c1) ->
6026 self#on_InstanceOf env _visitors_c0 _visitors_c1
6027 | Is (_visitors_c0,_visitors_c1) ->
6028 self#on_Is env _visitors_c0 _visitors_c1
6029 | BracedExpr _visitors_c0 -> self#on_BracedExpr env _visitors_c0
6030 | ParenthesizedExpr _visitors_c0 ->
6031 self#on_ParenthesizedExpr env _visitors_c0
6032 | New (_visitors_c0,_visitors_c1,_visitors_c2) ->
6033 self#on_New env _visitors_c0 _visitors_c1 _visitors_c2
6034 | NewAnonClass (_visitors_c0,_visitors_c1,_visitors_c2) ->
6035 self#on_NewAnonClass env _visitors_c0 _visitors_c1 _visitors_c2
6036 | Efun (_visitors_c0,_visitors_c1) ->
6037 self#on_Efun env _visitors_c0 _visitors_c1
6038 | Lfun _visitors_c0 -> self#on_Lfun env _visitors_c0
6039 | Xml (_visitors_c0,_visitors_c1,_visitors_c2) ->
6040 self#on_Xml env _visitors_c0 _visitors_c1 _visitors_c2
6041 | Unsafeexpr _visitors_c0 -> self#on_Unsafeexpr env _visitors_c0
6042 | Import (_visitors_c0,_visitors_c1) ->
6043 self#on_Import env _visitors_c0 _visitors_c1
6044 | Callconv (_visitors_c0,_visitors_c1) ->
6045 self#on_Callconv env _visitors_c0 _visitors_c1
6046 | Execution_operator _visitors_c0 ->
6047 self#on_Execution_operator env _visitors_c0
6048 method on_Include env = self#zero
6049 method on_Require env = self#zero
6050 method on_IncludeOnce env = self#zero
6051 method on_RequireOnce env = self#zero
6052 method on_import_flavor env _visitors_this =
6053 match _visitors_this with
6054 | Include -> self#on_Include env
6055 | Require -> self#on_Require env
6056 | IncludeOnce -> self#on_IncludeOnce env
6057 | RequireOnce -> self#on_RequireOnce env
6058 method on_AFvalue env _visitors_c0 =
6059 let _visitors_s0 = self#on_expr env _visitors_c0 in _visitors_s0
6060 method on_AFkvalue env _visitors_c0 _visitors_c1 =
6061 let _visitors_s0 = self#on_expr env _visitors_c0 in
6062 let _visitors_s1 = self#on_expr env _visitors_c1 in
6063 self#plus _visitors_s0 _visitors_s1
6064 method on_afield env _visitors_this =
6065 match _visitors_this with
6066 | AFvalue _visitors_c0 -> self#on_AFvalue env _visitors_c0
6067 | AFkvalue (_visitors_c0,_visitors_c1) ->
6068 self#on_AFkvalue env _visitors_c0 _visitors_c1
6069 method on_Default env _visitors_c0 =
6070 let _visitors_s0 = self#on_block env _visitors_c0 in _visitors_s0
6071 method on_Case env _visitors_c0 _visitors_c1 =
6072 let _visitors_s0 = self#on_expr env _visitors_c0 in
6073 let _visitors_s1 = self#on_block env _visitors_c1 in
6074 self#plus _visitors_s0 _visitors_s1
6075 method on_case env _visitors_this =
6076 match _visitors_this with
6077 | Default _visitors_c0 -> self#on_Default env _visitors_c0
6078 | Case (_visitors_c0,_visitors_c1) ->
6079 self#on_Case env _visitors_c0 _visitors_c1
6080 method on_catch env (_visitors_c0,_visitors_c1,_visitors_c2) =
6081 let _visitors_s0 = self#on_id env _visitors_c0 in
6082 let _visitors_s1 = self#on_id env _visitors_c1 in
6083 let _visitors_s2 = self#on_block env _visitors_c2 in
6084 self#plus (self#plus _visitors_s0 _visitors_s1) _visitors_s2
6085 method on_field env (_visitors_c0,_visitors_c1) =
6086 let _visitors_s0 = self#on_expr env _visitors_c0 in
6087 let _visitors_s1 = self#on_expr env _visitors_c1 in
6088 self#plus _visitors_s0 _visitors_s1
6089 method on_attr env (_visitors_c0,_visitors_c1) =
6090 let _visitors_s0 = self#on_id env _visitors_c0 in
6091 let _visitors_s1 = self#on_expr env _visitors_c1 in
6092 self#plus _visitors_s0 _visitors_s1
6094 [@@@VISITORS.END ]
6096 include
6097 struct
6098 [@@@ocaml.warning "-4-26-27"]
6099 [@@@VISITORS.BEGIN ]
6100 class virtual ['self] map =
6101 object (self : 'self)
6102 inherit [_] map_defs
6103 method on_program env = self#on_list self#on_def env
6104 method on_nsenv env _visitors_this = _visitors_this
6105 method on_fimode env _visitors_this = _visitors_this
6106 method on_Fun env _visitors_c0 =
6107 let _visitors_r0 = self#on_fun_ env _visitors_c0 in
6108 Fun _visitors_r0
6109 method on_Class env _visitors_c0 =
6110 let _visitors_r0 = self#on_class_ env _visitors_c0 in
6111 Class _visitors_r0
6112 method on_Stmt env _visitors_c0 =
6113 let _visitors_r0 = self#on_stmt env _visitors_c0 in
6114 Stmt _visitors_r0
6115 method on_Typedef env _visitors_c0 =
6116 let _visitors_r0 = self#on_typedef env _visitors_c0 in
6117 Typedef _visitors_r0
6118 method on_Constant env _visitors_c0 =
6119 let _visitors_r0 = self#on_gconst env _visitors_c0 in
6120 Constant _visitors_r0
6121 method on_Namespace env _visitors_c0 _visitors_c1 =
6122 let _visitors_r0 = self#on_id env _visitors_c0 in
6123 let _visitors_r1 = self#on_program env _visitors_c1 in
6124 Namespace (_visitors_r0, _visitors_r1)
6125 method on_NamespaceUse env _visitors_c0 =
6126 let _visitors_r0 =
6127 self#on_list
6128 (fun env ->
6129 fun (_visitors_c0,_visitors_c1,_visitors_c2) ->
6130 let _visitors_r0 = self#on_ns_kind env _visitors_c0 in
6131 let _visitors_r1 = self#on_id env _visitors_c1 in
6132 let _visitors_r2 = self#on_id env _visitors_c2 in
6133 (_visitors_r0, _visitors_r1, _visitors_r2)) env
6134 _visitors_c0
6136 NamespaceUse _visitors_r0
6137 method on_SetNamespaceEnv env _visitors_c0 =
6138 let _visitors_r0 = self#on_nsenv env _visitors_c0 in
6139 SetNamespaceEnv _visitors_r0
6140 method on_def env _visitors_this =
6141 match _visitors_this with
6142 | Fun _visitors_c0 -> self#on_Fun env _visitors_c0
6143 | Class _visitors_c0 -> self#on_Class env _visitors_c0
6144 | Stmt _visitors_c0 -> self#on_Stmt env _visitors_c0
6145 | Typedef _visitors_c0 -> self#on_Typedef env _visitors_c0
6146 | Constant _visitors_c0 -> self#on_Constant env _visitors_c0
6147 | Namespace (_visitors_c0,_visitors_c1) ->
6148 self#on_Namespace env _visitors_c0 _visitors_c1
6149 | NamespaceUse _visitors_c0 ->
6150 self#on_NamespaceUse env _visitors_c0
6151 | SetNamespaceEnv _visitors_c0 ->
6152 self#on_SetNamespaceEnv env _visitors_c0
6153 method on_typedef env _visitors_this =
6154 let _visitors_r0 = self#on_id env _visitors_this.t_id in
6155 let _visitors_r1 =
6156 self#on_list self#on_tparam env _visitors_this.t_tparams in
6157 let _visitors_r2 =
6158 self#on_tconstraint env _visitors_this.t_constraint in
6159 let _visitors_r3 = self#on_typedef_kind env _visitors_this.t_kind
6161 let _visitors_r4 =
6162 self#on_list self#on_user_attribute env
6163 _visitors_this.t_user_attributes
6165 let _visitors_r5 = self#on_nsenv env _visitors_this.t_namespace in
6166 let _visitors_r6 = self#on_fimode env _visitors_this.t_mode in
6168 t_id = _visitors_r0;
6169 t_tparams = _visitors_r1;
6170 t_constraint = _visitors_r2;
6171 t_kind = _visitors_r3;
6172 t_user_attributes = _visitors_r4;
6173 t_namespace = _visitors_r5;
6174 t_mode = _visitors_r6
6176 method on_gconst env _visitors_this =
6177 let _visitors_r0 = self#on_fimode env _visitors_this.cst_mode in
6178 let _visitors_r1 = self#on_cst_kind env _visitors_this.cst_kind in
6179 let _visitors_r2 = self#on_id env _visitors_this.cst_name in
6180 let _visitors_r3 =
6181 self#on_option self#on_hint env _visitors_this.cst_type in
6182 let _visitors_r4 = self#on_expr env _visitors_this.cst_value in
6183 let _visitors_r5 = self#on_nsenv env _visitors_this.cst_namespace
6185 let _visitors_r6 = self#on_pos env _visitors_this.cst_span in
6187 cst_mode = _visitors_r0;
6188 cst_kind = _visitors_r1;
6189 cst_name = _visitors_r2;
6190 cst_type = _visitors_r3;
6191 cst_value = _visitors_r4;
6192 cst_namespace = _visitors_r5;
6193 cst_span = _visitors_r6
6195 method on_tparam env (_visitors_c0,_visitors_c1,_visitors_c2) =
6196 let _visitors_r0 = self#on_variance env _visitors_c0 in
6197 let _visitors_r1 = self#on_id env _visitors_c1 in
6198 let _visitors_r2 =
6199 self#on_list
6200 (fun env ->
6201 fun (_visitors_c0,_visitors_c1) ->
6202 let _visitors_r0 =
6203 self#on_constraint_kind env _visitors_c0 in
6204 let _visitors_r1 = self#on_hint env _visitors_c1 in
6205 (_visitors_r0, _visitors_r1)) env _visitors_c2
6207 (_visitors_r0, _visitors_r1, _visitors_r2)
6208 method on_tconstraint env = self#on_option self#on_hint env
6209 method on_Alias env _visitors_c0 =
6210 let _visitors_r0 = self#on_hint env _visitors_c0 in
6211 Alias _visitors_r0
6212 method on_NewType env _visitors_c0 =
6213 let _visitors_r0 = self#on_hint env _visitors_c0 in
6214 NewType _visitors_r0
6215 method on_typedef_kind env _visitors_this =
6216 match _visitors_this with
6217 | Alias _visitors_c0 -> self#on_Alias env _visitors_c0
6218 | NewType _visitors_c0 -> self#on_NewType env _visitors_c0
6219 method on_class_ env _visitors_this =
6220 let _visitors_r0 = self#on_fimode env _visitors_this.c_mode in
6221 let _visitors_r1 =
6222 self#on_list self#on_user_attribute env
6223 _visitors_this.c_user_attributes
6225 let _visitors_r2 = self#on_bool env _visitors_this.c_final in
6226 let _visitors_r3 = self#on_class_kind env _visitors_this.c_kind in
6227 let _visitors_r4 = self#on_bool env _visitors_this.c_is_xhp in
6228 let _visitors_r5 = self#on_id env _visitors_this.c_name in
6229 let _visitors_r6 =
6230 self#on_list self#on_tparam env _visitors_this.c_tparams in
6231 let _visitors_r7 =
6232 self#on_list self#on_hint env _visitors_this.c_extends in
6233 let _visitors_r8 =
6234 self#on_list self#on_hint env _visitors_this.c_implements in
6235 let _visitors_r9 =
6236 self#on_list self#on_class_elt env _visitors_this.c_body in
6237 let _visitors_r10 = self#on_nsenv env _visitors_this.c_namespace
6239 let _visitors_r11 =
6240 self#on_option self#on_enum_ env _visitors_this.c_enum in
6241 let _visitors_r12 = self#on_pos env _visitors_this.c_span in
6242 let _visitors_r13 =
6243 self#on_option self#on_string env _visitors_this.c_doc_comment
6246 c_mode = _visitors_r0;
6247 c_user_attributes = _visitors_r1;
6248 c_final = _visitors_r2;
6249 c_kind = _visitors_r3;
6250 c_is_xhp = _visitors_r4;
6251 c_name = _visitors_r5;
6252 c_tparams = _visitors_r6;
6253 c_extends = _visitors_r7;
6254 c_implements = _visitors_r8;
6255 c_body = _visitors_r9;
6256 c_namespace = _visitors_r10;
6257 c_enum = _visitors_r11;
6258 c_span = _visitors_r12;
6259 c_doc_comment = _visitors_r13
6261 method on_enum_ env _visitors_this =
6262 let _visitors_r0 = self#on_hint env _visitors_this.e_base in
6263 let _visitors_r1 =
6264 self#on_option self#on_hint env _visitors_this.e_constraint in
6265 { e_base = _visitors_r0; e_constraint = _visitors_r1 }
6266 method on_user_attribute env _visitors_this =
6267 let _visitors_r0 = self#on_id env _visitors_this.ua_name in
6268 let _visitors_r1 =
6269 self#on_list self#on_expr env _visitors_this.ua_params in
6270 { ua_name = _visitors_r0; ua_params = _visitors_r1 }
6271 method on_Const env _visitors_c0 _visitors_c1 =
6272 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0 in
6273 let _visitors_r1 =
6274 self#on_list
6275 (fun env ->
6276 fun (_visitors_c0,_visitors_c1) ->
6277 let _visitors_r0 = self#on_id env _visitors_c0 in
6278 let _visitors_r1 = self#on_expr env _visitors_c1 in
6279 (_visitors_r0, _visitors_r1)) env _visitors_c1
6281 Const (_visitors_r0, _visitors_r1)
6282 method on_AbsConst env _visitors_c0 _visitors_c1 =
6283 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0 in
6284 let _visitors_r1 = self#on_id env _visitors_c1 in
6285 AbsConst (_visitors_r0, _visitors_r1)
6286 method on_Attributes env _visitors_c0 =
6287 let _visitors_r0 = self#on_list self#on_class_attr env _visitors_c0
6289 Attributes _visitors_r0
6290 method on_TypeConst env _visitors_c0 =
6291 let _visitors_r0 = self#on_typeconst env _visitors_c0 in
6292 TypeConst _visitors_r0
6293 method on_ClassUse env _visitors_c0 =
6294 let _visitors_r0 = self#on_hint env _visitors_c0 in
6295 ClassUse _visitors_r0
6296 method on_ClassUseAlias env _visitors_c0 _visitors_c1 _visitors_c2
6297 _visitors_c3 =
6298 let _visitors_r0 = self#on_option self#on_id env _visitors_c0 in
6299 let _visitors_r1 = self#on_pstring env _visitors_c1 in
6300 let _visitors_r2 = self#on_option self#on_id env _visitors_c2 in
6301 let _visitors_r3 = self#on_list self#on_kind env _visitors_c3 in
6302 ClassUseAlias
6303 (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3)
6304 method on_ClassUsePrecedence env _visitors_c0 _visitors_c1
6305 _visitors_c2 =
6306 let _visitors_r0 = self#on_id env _visitors_c0 in
6307 let _visitors_r1 = self#on_pstring env _visitors_c1 in
6308 let _visitors_r2 = self#on_list self#on_id env _visitors_c2 in
6309 ClassUsePrecedence (_visitors_r0, _visitors_r1, _visitors_r2)
6310 method on_XhpAttrUse env _visitors_c0 =
6311 let _visitors_r0 = self#on_hint env _visitors_c0 in
6312 XhpAttrUse _visitors_r0
6313 method on_ClassTraitRequire env _visitors_c0 _visitors_c1 =
6314 let _visitors_r0 = self#on_trait_req_kind env _visitors_c0 in
6315 let _visitors_r1 = self#on_hint env _visitors_c1 in
6316 ClassTraitRequire (_visitors_r0, _visitors_r1)
6317 method on_ClassVars env _visitors_c0 =
6318 let _visitors_r0 = self#on_class_vars_ env _visitors_c0 in
6319 ClassVars _visitors_r0
6320 method on_XhpAttr env _visitors_c0 _visitors_c1 _visitors_c2
6321 _visitors_c3 =
6322 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0 in
6323 let _visitors_r1 = self#on_class_var env _visitors_c1 in
6324 let _visitors_r2 = self#on_bool env _visitors_c2 in
6325 let _visitors_r3 =
6326 self#on_option
6327 (fun env ->
6328 fun (_visitors_c0,_visitors_c1,_visitors_c2) ->
6329 let _visitors_r0 = self#on_pos env _visitors_c0 in
6330 let _visitors_r1 = self#on_bool env _visitors_c1 in
6331 let _visitors_r2 =
6332 self#on_list self#on_expr env _visitors_c2 in
6333 (_visitors_r0, _visitors_r1, _visitors_r2)) env
6334 _visitors_c3
6336 XhpAttr (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3)
6337 method on_Method env _visitors_c0 =
6338 let _visitors_r0 = self#on_method_ env _visitors_c0 in
6339 Method _visitors_r0
6340 method on_XhpCategory env _visitors_c0 =
6341 let _visitors_r0 = self#on_list self#on_pstring env _visitors_c0
6343 XhpCategory _visitors_r0
6344 method on_XhpChild env _visitors_c0 =
6345 let _visitors_r0 = self#on_xhp_child env _visitors_c0 in
6346 XhpChild _visitors_r0
6347 method on_class_elt env _visitors_this =
6348 match _visitors_this with
6349 | Const (_visitors_c0,_visitors_c1) ->
6350 self#on_Const env _visitors_c0 _visitors_c1
6351 | AbsConst (_visitors_c0,_visitors_c1) ->
6352 self#on_AbsConst env _visitors_c0 _visitors_c1
6353 | Attributes _visitors_c0 -> self#on_Attributes env _visitors_c0
6354 | TypeConst _visitors_c0 -> self#on_TypeConst env _visitors_c0
6355 | ClassUse _visitors_c0 -> self#on_ClassUse env _visitors_c0
6356 | ClassUseAlias
6357 (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
6358 self#on_ClassUseAlias env _visitors_c0 _visitors_c1
6359 _visitors_c2 _visitors_c3
6360 | ClassUsePrecedence (_visitors_c0,_visitors_c1,_visitors_c2) ->
6361 self#on_ClassUsePrecedence env _visitors_c0 _visitors_c1
6362 _visitors_c2
6363 | XhpAttrUse _visitors_c0 -> self#on_XhpAttrUse env _visitors_c0
6364 | ClassTraitRequire (_visitors_c0,_visitors_c1) ->
6365 self#on_ClassTraitRequire env _visitors_c0 _visitors_c1
6366 | ClassVars _visitors_c0 -> self#on_ClassVars env _visitors_c0
6367 | XhpAttr (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
6368 self#on_XhpAttr env _visitors_c0 _visitors_c1 _visitors_c2
6369 _visitors_c3
6370 | Method _visitors_c0 -> self#on_Method env _visitors_c0
6371 | XhpCategory _visitors_c0 -> self#on_XhpCategory env _visitors_c0
6372 | XhpChild _visitors_c0 -> self#on_XhpChild env _visitors_c0
6373 method on_ChildName env _visitors_c0 =
6374 let _visitors_r0 = self#on_id env _visitors_c0 in
6375 ChildName _visitors_r0
6376 method on_ChildList env _visitors_c0 =
6377 let _visitors_r0 = self#on_list self#on_xhp_child env _visitors_c0
6379 ChildList _visitors_r0
6380 method on_ChildUnary env _visitors_c0 _visitors_c1 =
6381 let _visitors_r0 = self#on_xhp_child env _visitors_c0 in
6382 let _visitors_r1 = self#on_xhp_child_op env _visitors_c1 in
6383 ChildUnary (_visitors_r0, _visitors_r1)
6384 method on_ChildBinary env _visitors_c0 _visitors_c1 =
6385 let _visitors_r0 = self#on_xhp_child env _visitors_c0 in
6386 let _visitors_r1 = self#on_xhp_child env _visitors_c1 in
6387 ChildBinary (_visitors_r0, _visitors_r1)
6388 method on_xhp_child env _visitors_this =
6389 match _visitors_this with
6390 | ChildName _visitors_c0 -> self#on_ChildName env _visitors_c0
6391 | ChildList _visitors_c0 -> self#on_ChildList env _visitors_c0
6392 | ChildUnary (_visitors_c0,_visitors_c1) ->
6393 self#on_ChildUnary env _visitors_c0 _visitors_c1
6394 | ChildBinary (_visitors_c0,_visitors_c1) ->
6395 self#on_ChildBinary env _visitors_c0 _visitors_c1
6396 method on_ChildStar env = ChildStar
6397 method on_ChildPlus env = ChildPlus
6398 method on_ChildQuestion env = ChildQuestion
6399 method on_xhp_child_op env _visitors_this =
6400 match _visitors_this with
6401 | ChildStar -> self#on_ChildStar env
6402 | ChildPlus -> self#on_ChildPlus env
6403 | ChildQuestion -> self#on_ChildQuestion env
6404 method on_CA_name env _visitors_c0 =
6405 let _visitors_r0 = self#on_id env _visitors_c0 in
6406 CA_name _visitors_r0
6407 method on_CA_field env _visitors_c0 =
6408 let _visitors_r0 = self#on_ca_field env _visitors_c0 in
6409 CA_field _visitors_r0
6410 method on_class_attr env _visitors_this =
6411 match _visitors_this with
6412 | CA_name _visitors_c0 -> self#on_CA_name env _visitors_c0
6413 | CA_field _visitors_c0 -> self#on_CA_field env _visitors_c0
6414 method on_ca_field env _visitors_this =
6415 let _visitors_r0 = self#on_ca_type env _visitors_this.ca_type in
6416 let _visitors_r1 = self#on_id env _visitors_this.ca_id in
6417 let _visitors_r2 =
6418 self#on_option self#on_expr env _visitors_this.ca_value in
6419 let _visitors_r3 = self#on_bool env _visitors_this.ca_required in
6421 ca_type = _visitors_r0;
6422 ca_id = _visitors_r1;
6423 ca_value = _visitors_r2;
6424 ca_required = _visitors_r3
6426 method on_CA_hint env _visitors_c0 =
6427 let _visitors_r0 = self#on_hint env _visitors_c0 in
6428 CA_hint _visitors_r0
6429 method on_CA_enum env _visitors_c0 =
6430 let _visitors_r0 = self#on_list self#on_string env _visitors_c0 in
6431 CA_enum _visitors_r0
6432 method on_ca_type env _visitors_this =
6433 match _visitors_this with
6434 | CA_hint _visitors_c0 -> self#on_CA_hint env _visitors_c0
6435 | CA_enum _visitors_c0 -> self#on_CA_enum env _visitors_c0
6436 method on_class_var env (_visitors_c0,_visitors_c1,_visitors_c2) =
6437 let _visitors_r0 = self#on_pos env _visitors_c0 in
6438 let _visitors_r1 = self#on_id env _visitors_c1 in
6439 let _visitors_r2 = self#on_option self#on_expr env _visitors_c2 in
6440 (_visitors_r0, _visitors_r1, _visitors_r2)
6441 method on_class_vars_ env _visitors_this =
6442 let _visitors_r0 =
6443 self#on_list self#on_kind env _visitors_this.cv_kinds in
6444 let _visitors_r1 =
6445 self#on_option self#on_hint env _visitors_this.cv_hint in
6446 let _visitors_r2 =
6447 self#on_is_variadic env _visitors_this.cv_is_promoted_variadic
6449 let _visitors_r3 =
6450 self#on_list self#on_class_var env _visitors_this.cv_names in
6451 let _visitors_r4 =
6452 self#on_option self#on_string env _visitors_this.cv_doc_comment
6454 let _visitors_r5 =
6455 self#on_list self#on_user_attribute env
6456 _visitors_this.cv_user_attributes
6459 cv_kinds = _visitors_r0;
6460 cv_hint = _visitors_r1;
6461 cv_is_promoted_variadic = _visitors_r2;
6462 cv_names = _visitors_r3;
6463 cv_doc_comment = _visitors_r4;
6464 cv_user_attributes = _visitors_r5
6466 method on_method_ env _visitors_this =
6467 let _visitors_r0 =
6468 self#on_list self#on_kind env _visitors_this.m_kind in
6469 let _visitors_r1 =
6470 self#on_list self#on_tparam env _visitors_this.m_tparams in
6471 let _visitors_r2 =
6472 self#on_list
6473 (fun env ->
6474 fun (_visitors_c0,_visitors_c1,_visitors_c2) ->
6475 let _visitors_r0 = self#on_hint env _visitors_c0 in
6476 let _visitors_r1 =
6477 self#on_constraint_kind env _visitors_c1 in
6478 let _visitors_r2 = self#on_hint env _visitors_c2 in
6479 (_visitors_r0, _visitors_r1, _visitors_r2)) env
6480 _visitors_this.m_constrs
6482 let _visitors_r3 = self#on_id env _visitors_this.m_name in
6483 let _visitors_r4 =
6484 self#on_list self#on_fun_param env _visitors_this.m_params in
6485 let _visitors_r5 = self#on_block env _visitors_this.m_body in
6486 let _visitors_r6 =
6487 self#on_list self#on_user_attribute env
6488 _visitors_this.m_user_attributes
6490 let _visitors_r7 =
6491 self#on_option self#on_hint env _visitors_this.m_ret in
6492 let _visitors_r8 = self#on_bool env _visitors_this.m_ret_by_ref in
6493 let _visitors_r9 = self#on_fun_kind env _visitors_this.m_fun_kind
6495 let _visitors_r10 = self#on_pos env _visitors_this.m_span in
6496 let _visitors_r11 =
6497 self#on_option self#on_string env _visitors_this.m_doc_comment
6500 m_kind = _visitors_r0;
6501 m_tparams = _visitors_r1;
6502 m_constrs = _visitors_r2;
6503 m_name = _visitors_r3;
6504 m_params = _visitors_r4;
6505 m_body = _visitors_r5;
6506 m_user_attributes = _visitors_r6;
6507 m_ret = _visitors_r7;
6508 m_ret_by_ref = _visitors_r8;
6509 m_fun_kind = _visitors_r9;
6510 m_span = _visitors_r10;
6511 m_doc_comment = _visitors_r11
6513 method on_typeconst env _visitors_this =
6514 let _visitors_r0 = self#on_bool env _visitors_this.tconst_abstract
6516 let _visitors_r1 = self#on_id env _visitors_this.tconst_name in
6517 let _visitors_r2 =
6518 self#on_list self#on_tparam env _visitors_this.tconst_tparams in
6519 let _visitors_r3 =
6520 self#on_option self#on_hint env _visitors_this.tconst_constraint
6522 let _visitors_r4 =
6523 self#on_option self#on_hint env _visitors_this.tconst_type in
6524 let _visitors_r5 = self#on_pos env _visitors_this.tconst_span in
6526 tconst_abstract = _visitors_r0;
6527 tconst_name = _visitors_r1;
6528 tconst_tparams = _visitors_r2;
6529 tconst_constraint = _visitors_r3;
6530 tconst_type = _visitors_r4;
6531 tconst_span = _visitors_r5
6533 method on_is_reference env = self#on_bool env
6534 method on_is_variadic env = self#on_bool env
6535 method on_fun_param env _visitors_this =
6536 let _visitors_r0 =
6537 self#on_option self#on_hint env _visitors_this.param_hint in
6538 let _visitors_r1 =
6539 self#on_is_reference env _visitors_this.param_is_reference in
6540 let _visitors_r2 =
6541 self#on_is_variadic env _visitors_this.param_is_variadic in
6542 let _visitors_r3 = self#on_id env _visitors_this.param_id in
6543 let _visitors_r4 =
6544 self#on_option self#on_expr env _visitors_this.param_expr in
6545 let _visitors_r5 =
6546 self#on_option self#on_kind env _visitors_this.param_modifier in
6547 let _visitors_r6 =
6548 self#on_option self#on_param_kind env
6549 _visitors_this.param_callconv
6551 let _visitors_r7 =
6552 self#on_list self#on_user_attribute env
6553 _visitors_this.param_user_attributes
6556 param_hint = _visitors_r0;
6557 param_is_reference = _visitors_r1;
6558 param_is_variadic = _visitors_r2;
6559 param_id = _visitors_r3;
6560 param_expr = _visitors_r4;
6561 param_modifier = _visitors_r5;
6562 param_callconv = _visitors_r6;
6563 param_user_attributes = _visitors_r7
6565 method on_fun_ env _visitors_this =
6566 let _visitors_r0 = self#on_fimode env _visitors_this.f_mode in
6567 let _visitors_r1 =
6568 self#on_list self#on_tparam env _visitors_this.f_tparams in
6569 let _visitors_r2 =
6570 self#on_list
6571 (fun env ->
6572 fun (_visitors_c0,_visitors_c1,_visitors_c2) ->
6573 let _visitors_r0 = self#on_hint env _visitors_c0 in
6574 let _visitors_r1 =
6575 self#on_constraint_kind env _visitors_c1 in
6576 let _visitors_r2 = self#on_hint env _visitors_c2 in
6577 (_visitors_r0, _visitors_r1, _visitors_r2)) env
6578 _visitors_this.f_constrs
6580 let _visitors_r3 =
6581 self#on_option self#on_hint env _visitors_this.f_ret in
6582 let _visitors_r4 = self#on_bool env _visitors_this.f_ret_by_ref in
6583 let _visitors_r5 = self#on_id env _visitors_this.f_name in
6584 let _visitors_r6 =
6585 self#on_list self#on_fun_param env _visitors_this.f_params in
6586 let _visitors_r7 = self#on_block env _visitors_this.f_body in
6587 let _visitors_r8 =
6588 self#on_list self#on_user_attribute env
6589 _visitors_this.f_user_attributes
6591 let _visitors_r9 = self#on_fun_kind env _visitors_this.f_fun_kind
6593 let _visitors_r10 = self#on_nsenv env _visitors_this.f_namespace
6595 let _visitors_r11 = self#on_pos env _visitors_this.f_span in
6596 let _visitors_r12 =
6597 self#on_option self#on_string env _visitors_this.f_doc_comment
6599 let _visitors_r13 = self#on_bool env _visitors_this.f_static in
6601 f_mode = _visitors_r0;
6602 f_tparams = _visitors_r1;
6603 f_constrs = _visitors_r2;
6604 f_ret = _visitors_r3;
6605 f_ret_by_ref = _visitors_r4;
6606 f_name = _visitors_r5;
6607 f_params = _visitors_r6;
6608 f_body = _visitors_r7;
6609 f_user_attributes = _visitors_r8;
6610 f_fun_kind = _visitors_r9;
6611 f_namespace = _visitors_r10;
6612 f_span = _visitors_r11;
6613 f_doc_comment = _visitors_r12;
6614 f_static = _visitors_r13
6616 method on_is_coroutine env = self#on_bool env
6617 method on_hint env (_visitors_c0,_visitors_c1) =
6618 let _visitors_r0 = self#on_pos env _visitors_c0 in
6619 let _visitors_r1 = self#on_hint_ env _visitors_c1 in
6620 (_visitors_r0, _visitors_r1)
6621 method on_Hvariadic env _visitors_c0 =
6622 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0 in
6623 Hvariadic _visitors_r0
6624 method on_Hnon_variadic env = Hnon_variadic
6625 method on_variadic_hint env _visitors_this =
6626 match _visitors_this with
6627 | Hvariadic _visitors_c0 -> self#on_Hvariadic env _visitors_c0
6628 | Hnon_variadic -> self#on_Hnon_variadic env
6629 method on_Hoption env _visitors_c0 =
6630 let _visitors_r0 = self#on_hint env _visitors_c0 in
6631 Hoption _visitors_r0
6632 method on_Hfun env _visitors_c0 _visitors_c1 _visitors_c2
6633 _visitors_c3 _visitors_c4 =
6634 let _visitors_r0 = self#on_is_coroutine env _visitors_c0 in
6635 let _visitors_r1 = self#on_list self#on_hint env _visitors_c1 in
6636 let _visitors_r2 =
6637 self#on_list (self#on_option self#on_param_kind) env _visitors_c2
6639 let _visitors_r3 = self#on_variadic_hint env _visitors_c3 in
6640 let _visitors_r4 = self#on_hint env _visitors_c4 in
6641 Hfun
6642 (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3,
6643 _visitors_r4)
6644 method on_Htuple env _visitors_c0 =
6645 let _visitors_r0 = self#on_list self#on_hint env _visitors_c0 in
6646 Htuple _visitors_r0
6647 method on_Happly env _visitors_c0 _visitors_c1 =
6648 let _visitors_r0 = self#on_id env _visitors_c0 in
6649 let _visitors_r1 = self#on_list self#on_hint env _visitors_c1 in
6650 Happly (_visitors_r0, _visitors_r1)
6651 method on_Hshape env _visitors_c0 =
6652 let _visitors_r0 = self#on_shape_info env _visitors_c0 in
6653 Hshape _visitors_r0
6654 method on_Haccess env _visitors_c0 _visitors_c1 _visitors_c2 =
6655 let _visitors_r0 = self#on_id env _visitors_c0 in
6656 let _visitors_r1 = self#on_id env _visitors_c1 in
6657 let _visitors_r2 = self#on_list self#on_id env _visitors_c2 in
6658 Haccess (_visitors_r0, _visitors_r1, _visitors_r2)
6659 method on_Hsoft env _visitors_c0 =
6660 let _visitors_r0 = self#on_hint env _visitors_c0 in
6661 Hsoft _visitors_r0
6662 method on_hint_ env _visitors_this =
6663 match _visitors_this with
6664 | Hoption _visitors_c0 -> self#on_Hoption env _visitors_c0
6665 | Hfun
6666 (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3,_visitors_c4)
6668 self#on_Hfun env _visitors_c0 _visitors_c1 _visitors_c2
6669 _visitors_c3 _visitors_c4
6670 | Htuple _visitors_c0 -> self#on_Htuple env _visitors_c0
6671 | Happly (_visitors_c0,_visitors_c1) ->
6672 self#on_Happly env _visitors_c0 _visitors_c1
6673 | Hshape _visitors_c0 -> self#on_Hshape env _visitors_c0
6674 | Haccess (_visitors_c0,_visitors_c1,_visitors_c2) ->
6675 self#on_Haccess env _visitors_c0 _visitors_c1 _visitors_c2
6676 | Hsoft _visitors_c0 -> self#on_Hsoft env _visitors_c0
6677 method on_shape_info env _visitors_this =
6678 let _visitors_r0 =
6679 self#on_bool env _visitors_this.si_allows_unknown_fields in
6680 let _visitors_r1 =
6681 self#on_list self#on_shape_field env
6682 _visitors_this.si_shape_field_list
6685 si_allows_unknown_fields = _visitors_r0;
6686 si_shape_field_list = _visitors_r1
6688 method on_shape_field env _visitors_this =
6689 let _visitors_r0 = self#on_bool env _visitors_this.sf_optional in
6690 let _visitors_r1 =
6691 self#on_shape_field_name env _visitors_this.sf_name in
6692 let _visitors_r2 = self#on_hint env _visitors_this.sf_hint in
6694 sf_optional = _visitors_r0;
6695 sf_name = _visitors_r1;
6696 sf_hint = _visitors_r2
6698 method on_using_stmt env _visitors_this =
6699 let _visitors_r0 =
6700 self#on_bool env _visitors_this.us_is_block_scoped in
6701 let _visitors_r1 = self#on_bool env _visitors_this.us_has_await in
6702 let _visitors_r2 = self#on_expr env _visitors_this.us_expr in
6703 let _visitors_r3 = self#on_block env _visitors_this.us_block in
6705 us_is_block_scoped = _visitors_r0;
6706 us_has_await = _visitors_r1;
6707 us_expr = _visitors_r2;
6708 us_block = _visitors_r3
6710 method on_stmt env (_visitors_c0,_visitors_c1) =
6711 let _visitors_r0 = self#on_pos env _visitors_c0 in
6712 let _visitors_r1 = self#on_stmt_ env _visitors_c1 in
6713 (_visitors_r0, _visitors_r1)
6714 method on_Unsafe env = Unsafe
6715 method on_Fallthrough env = Fallthrough
6716 method on_Expr env _visitors_c0 =
6717 let _visitors_r0 = self#on_expr env _visitors_c0 in
6718 Expr _visitors_r0
6719 method on_Block env _visitors_c0 =
6720 let _visitors_r0 = self#on_block env _visitors_c0 in
6721 Block _visitors_r0
6722 method on_Break env _visitors_c0 =
6723 let _visitors_r0 = self#on_option self#on_expr env _visitors_c0 in
6724 Break _visitors_r0
6725 method on_Continue env _visitors_c0 =
6726 let _visitors_r0 = self#on_option self#on_expr env _visitors_c0 in
6727 Continue _visitors_r0
6728 method on_Throw env _visitors_c0 =
6729 let _visitors_r0 = self#on_expr env _visitors_c0 in
6730 Throw _visitors_r0
6731 method on_Return env _visitors_c0 =
6732 let _visitors_r0 = self#on_option self#on_expr env _visitors_c0 in
6733 Return _visitors_r0
6734 method on_GotoLabel env _visitors_c0 =
6735 let _visitors_r0 = self#on_pstring env _visitors_c0 in
6736 GotoLabel _visitors_r0
6737 method on_Goto env _visitors_c0 =
6738 let _visitors_r0 = self#on_pstring env _visitors_c0 in
6739 Goto _visitors_r0
6740 method on_Static_var env _visitors_c0 =
6741 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
6742 Static_var _visitors_r0
6743 method on_Global_var env _visitors_c0 =
6744 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
6745 Global_var _visitors_r0
6746 method on_If env _visitors_c0 _visitors_c1 _visitors_c2 =
6747 let _visitors_r0 = self#on_expr env _visitors_c0 in
6748 let _visitors_r1 = self#on_block env _visitors_c1 in
6749 let _visitors_r2 = self#on_block env _visitors_c2 in
6750 If (_visitors_r0, _visitors_r1, _visitors_r2)
6751 method on_Do env _visitors_c0 _visitors_c1 =
6752 let _visitors_r0 = self#on_block env _visitors_c0 in
6753 let _visitors_r1 = self#on_expr env _visitors_c1 in
6754 Do (_visitors_r0, _visitors_r1)
6755 method on_While env _visitors_c0 _visitors_c1 =
6756 let _visitors_r0 = self#on_expr env _visitors_c0 in
6757 let _visitors_r1 = self#on_block env _visitors_c1 in
6758 While (_visitors_r0, _visitors_r1)
6759 method on_For env _visitors_c0 _visitors_c1 _visitors_c2 _visitors_c3
6761 let _visitors_r0 = self#on_expr env _visitors_c0 in
6762 let _visitors_r1 = self#on_expr env _visitors_c1 in
6763 let _visitors_r2 = self#on_expr env _visitors_c2 in
6764 let _visitors_r3 = self#on_block env _visitors_c3 in
6765 For (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3)
6766 method on_Switch env _visitors_c0 _visitors_c1 =
6767 let _visitors_r0 = self#on_expr env _visitors_c0 in
6768 let _visitors_r1 = self#on_list self#on_case env _visitors_c1 in
6769 Switch (_visitors_r0, _visitors_r1)
6770 method on_Foreach env _visitors_c0 _visitors_c1 _visitors_c2
6771 _visitors_c3 =
6772 let _visitors_r0 = self#on_expr env _visitors_c0 in
6773 let _visitors_r1 = self#on_option self#on_pos env _visitors_c1 in
6774 let _visitors_r2 = self#on_as_expr env _visitors_c2 in
6775 let _visitors_r3 = self#on_block env _visitors_c3 in
6776 Foreach (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3)
6777 method on_Try env _visitors_c0 _visitors_c1 _visitors_c2 =
6778 let _visitors_r0 = self#on_block env _visitors_c0 in
6779 let _visitors_r1 = self#on_list self#on_catch env _visitors_c1 in
6780 let _visitors_r2 = self#on_block env _visitors_c2 in
6781 Try (_visitors_r0, _visitors_r1, _visitors_r2)
6782 method on_Def_inline env _visitors_c0 =
6783 let _visitors_r0 = self#on_def env _visitors_c0 in
6784 Def_inline _visitors_r0
6785 method on_Noop env = Noop
6786 method on_Markup env _visitors_c0 _visitors_c1 =
6787 let _visitors_r0 = self#on_pstring env _visitors_c0 in
6788 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1 in
6789 Markup (_visitors_r0, _visitors_r1)
6790 method on_Using env _visitors_c0 =
6791 let _visitors_r0 = self#on_using_stmt env _visitors_c0 in
6792 Using _visitors_r0
6793 method on_Declare env _visitors_c0 _visitors_c1 _visitors_c2 =
6794 let _visitors_r0 = self#on_bool env _visitors_c0 in
6795 let _visitors_r1 = self#on_expr env _visitors_c1 in
6796 let _visitors_r2 = self#on_block env _visitors_c2 in
6797 Declare (_visitors_r0, _visitors_r1, _visitors_r2)
6798 method on_stmt_ env _visitors_this =
6799 match _visitors_this with
6800 | Unsafe -> self#on_Unsafe env
6801 | Fallthrough -> self#on_Fallthrough env
6802 | Expr _visitors_c0 -> self#on_Expr env _visitors_c0
6803 | Block _visitors_c0 -> self#on_Block env _visitors_c0
6804 | Break _visitors_c0 -> self#on_Break env _visitors_c0
6805 | Continue _visitors_c0 -> self#on_Continue env _visitors_c0
6806 | Throw _visitors_c0 -> self#on_Throw env _visitors_c0
6807 | Return _visitors_c0 -> self#on_Return env _visitors_c0
6808 | GotoLabel _visitors_c0 -> self#on_GotoLabel env _visitors_c0
6809 | Goto _visitors_c0 -> self#on_Goto env _visitors_c0
6810 | Static_var _visitors_c0 -> self#on_Static_var env _visitors_c0
6811 | Global_var _visitors_c0 -> self#on_Global_var env _visitors_c0
6812 | If (_visitors_c0,_visitors_c1,_visitors_c2) ->
6813 self#on_If env _visitors_c0 _visitors_c1 _visitors_c2
6814 | Do (_visitors_c0,_visitors_c1) ->
6815 self#on_Do env _visitors_c0 _visitors_c1
6816 | While (_visitors_c0,_visitors_c1) ->
6817 self#on_While env _visitors_c0 _visitors_c1
6818 | For (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
6819 self#on_For env _visitors_c0 _visitors_c1 _visitors_c2
6820 _visitors_c3
6821 | Switch (_visitors_c0,_visitors_c1) ->
6822 self#on_Switch env _visitors_c0 _visitors_c1
6823 | Foreach (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
6824 self#on_Foreach env _visitors_c0 _visitors_c1 _visitors_c2
6825 _visitors_c3
6826 | Try (_visitors_c0,_visitors_c1,_visitors_c2) ->
6827 self#on_Try env _visitors_c0 _visitors_c1 _visitors_c2
6828 | Def_inline _visitors_c0 -> self#on_Def_inline env _visitors_c0
6829 | Noop -> self#on_Noop env
6830 | Markup (_visitors_c0,_visitors_c1) ->
6831 self#on_Markup env _visitors_c0 _visitors_c1
6832 | Using _visitors_c0 -> self#on_Using env _visitors_c0
6833 | Declare (_visitors_c0,_visitors_c1,_visitors_c2) ->
6834 self#on_Declare env _visitors_c0 _visitors_c1 _visitors_c2
6835 method on_As_v env _visitors_c0 =
6836 let _visitors_r0 = self#on_expr env _visitors_c0 in
6837 As_v _visitors_r0
6838 method on_As_kv env _visitors_c0 _visitors_c1 =
6839 let _visitors_r0 = self#on_expr env _visitors_c0 in
6840 let _visitors_r1 = self#on_expr env _visitors_c1 in
6841 As_kv (_visitors_r0, _visitors_r1)
6842 method on_as_expr env _visitors_this =
6843 match _visitors_this with
6844 | As_v _visitors_c0 -> self#on_As_v env _visitors_c0
6845 | As_kv (_visitors_c0,_visitors_c1) ->
6846 self#on_As_kv env _visitors_c0 _visitors_c1
6847 method on_Xhp_simple env _visitors_c0 _visitors_c1 =
6848 let _visitors_r0 = self#on_id env _visitors_c0 in
6849 let _visitors_r1 = self#on_expr env _visitors_c1 in
6850 Xhp_simple (_visitors_r0, _visitors_r1)
6851 method on_Xhp_spread env _visitors_c0 =
6852 let _visitors_r0 = self#on_expr env _visitors_c0 in
6853 Xhp_spread _visitors_r0
6854 method on_xhp_attribute env _visitors_this =
6855 match _visitors_this with
6856 | Xhp_simple (_visitors_c0,_visitors_c1) ->
6857 self#on_Xhp_simple env _visitors_c0 _visitors_c1
6858 | Xhp_spread _visitors_c0 -> self#on_Xhp_spread env _visitors_c0
6859 method on_block env = self#on_list self#on_stmt env
6860 method on_expr env (_visitors_c0,_visitors_c1) =
6861 let _visitors_r0 = self#on_pos env _visitors_c0 in
6862 let _visitors_r1 = self#on_expr_ env _visitors_c1 in
6863 (_visitors_r0, _visitors_r1)
6864 method on_Array env _visitors_c0 =
6865 let _visitors_r0 = self#on_list self#on_afield env _visitors_c0 in
6866 Array _visitors_r0
6867 method on_Varray env _visitors_c0 =
6868 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
6869 Varray _visitors_r0
6870 method on_Darray env _visitors_c0 =
6871 let _visitors_r0 =
6872 self#on_list
6873 (fun env ->
6874 fun (_visitors_c0,_visitors_c1) ->
6875 let _visitors_r0 = self#on_expr env _visitors_c0 in
6876 let _visitors_r1 = self#on_expr env _visitors_c1 in
6877 (_visitors_r0, _visitors_r1)) env _visitors_c0
6879 Darray _visitors_r0
6880 method on_Shape env _visitors_c0 =
6881 let _visitors_r0 =
6882 self#on_list
6883 (fun env ->
6884 fun (_visitors_c0,_visitors_c1) ->
6885 let _visitors_r0 =
6886 self#on_shape_field_name env _visitors_c0 in
6887 let _visitors_r1 = self#on_expr env _visitors_c1 in
6888 (_visitors_r0, _visitors_r1)) env _visitors_c0
6890 Shape _visitors_r0
6891 method on_Collection env _visitors_c0 _visitors_c1 =
6892 let _visitors_r0 = self#on_id env _visitors_c0 in
6893 let _visitors_r1 = self#on_list self#on_afield env _visitors_c1 in
6894 Collection (_visitors_r0, _visitors_r1)
6895 method on_Null env = Null
6896 method on_True env = True
6897 method on_False env = False
6898 method on_Omitted env = Omitted
6899 method on_Id env _visitors_c0 =
6900 let _visitors_r0 = self#on_id env _visitors_c0 in Id _visitors_r0
6901 method on_Id_type_arguments env _visitors_c0 _visitors_c1 =
6902 let _visitors_r0 = self#on_id env _visitors_c0 in
6903 let _visitors_r1 = self#on_list self#on_hint env _visitors_c1 in
6904 Id_type_arguments (_visitors_r0, _visitors_r1)
6905 method on_Lvar env _visitors_c0 =
6906 let _visitors_r0 = self#on_id env _visitors_c0 in
6907 Lvar _visitors_r0
6908 method on_Dollar env _visitors_c0 =
6909 let _visitors_r0 = self#on_expr env _visitors_c0 in
6910 Dollar _visitors_r0
6911 method on_Clone env _visitors_c0 =
6912 let _visitors_r0 = self#on_expr env _visitors_c0 in
6913 Clone _visitors_r0
6914 method on_Obj_get env _visitors_c0 _visitors_c1 _visitors_c2 =
6915 let _visitors_r0 = self#on_expr env _visitors_c0 in
6916 let _visitors_r1 = self#on_expr env _visitors_c1 in
6917 let _visitors_r2 = self#on_og_null_flavor env _visitors_c2 in
6918 Obj_get (_visitors_r0, _visitors_r1, _visitors_r2)
6919 method on_Array_get env _visitors_c0 _visitors_c1 =
6920 let _visitors_r0 = self#on_expr env _visitors_c0 in
6921 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1 in
6922 Array_get (_visitors_r0, _visitors_r1)
6923 method on_Class_get env _visitors_c0 _visitors_c1 =
6924 let _visitors_r0 = self#on_expr env _visitors_c0 in
6925 let _visitors_r1 = self#on_expr env _visitors_c1 in
6926 Class_get (_visitors_r0, _visitors_r1)
6927 method on_Class_const env _visitors_c0 _visitors_c1 =
6928 let _visitors_r0 = self#on_expr env _visitors_c0 in
6929 let _visitors_r1 = self#on_pstring env _visitors_c1 in
6930 Class_const (_visitors_r0, _visitors_r1)
6931 method on_Call env _visitors_c0 _visitors_c1 _visitors_c2
6932 _visitors_c3 =
6933 let _visitors_r0 = self#on_expr env _visitors_c0 in
6934 let _visitors_r1 = self#on_list self#on_hint env _visitors_c1 in
6935 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2 in
6936 let _visitors_r3 = self#on_list self#on_expr env _visitors_c3 in
6937 Call (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3)
6938 method on_Int env _visitors_c0 =
6939 let _visitors_r0 = self#on_pstring env _visitors_c0 in
6940 Int _visitors_r0
6941 method on_Float env _visitors_c0 =
6942 let _visitors_r0 = self#on_pstring env _visitors_c0 in
6943 Float _visitors_r0
6944 method on_String env _visitors_c0 =
6945 let _visitors_r0 = self#on_pstring env _visitors_c0 in
6946 String _visitors_r0
6947 method on_String2 env _visitors_c0 =
6948 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
6949 String2 _visitors_r0
6950 method on_Yield env _visitors_c0 =
6951 let _visitors_r0 = self#on_afield env _visitors_c0 in
6952 Yield _visitors_r0
6953 method on_Yield_break env = Yield_break
6954 method on_Yield_from env _visitors_c0 =
6955 let _visitors_r0 = self#on_expr env _visitors_c0 in
6956 Yield_from _visitors_r0
6957 method on_Await env _visitors_c0 =
6958 let _visitors_r0 = self#on_expr env _visitors_c0 in
6959 Await _visitors_r0
6960 method on_Suspend env _visitors_c0 =
6961 let _visitors_r0 = self#on_expr env _visitors_c0 in
6962 Suspend _visitors_r0
6963 method on_List env _visitors_c0 =
6964 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
6965 List _visitors_r0
6966 method on_Expr_list env _visitors_c0 =
6967 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
6968 Expr_list _visitors_r0
6969 method on_Cast env _visitors_c0 _visitors_c1 =
6970 let _visitors_r0 = self#on_hint env _visitors_c0 in
6971 let _visitors_r1 = self#on_expr env _visitors_c1 in
6972 Cast (_visitors_r0, _visitors_r1)
6973 method on_Unop env _visitors_c0 _visitors_c1 =
6974 let _visitors_r0 = self#on_uop env _visitors_c0 in
6975 let _visitors_r1 = self#on_expr env _visitors_c1 in
6976 Unop (_visitors_r0, _visitors_r1)
6977 method on_Binop env _visitors_c0 _visitors_c1 _visitors_c2 =
6978 let _visitors_r0 = self#on_bop env _visitors_c0 in
6979 let _visitors_r1 = self#on_expr env _visitors_c1 in
6980 let _visitors_r2 = self#on_expr env _visitors_c2 in
6981 Binop (_visitors_r0, _visitors_r1, _visitors_r2)
6982 method on_Pipe env _visitors_c0 _visitors_c1 =
6983 let _visitors_r0 = self#on_expr env _visitors_c0 in
6984 let _visitors_r1 = self#on_expr env _visitors_c1 in
6985 Pipe (_visitors_r0, _visitors_r1)
6986 method on_Eif env _visitors_c0 _visitors_c1 _visitors_c2 =
6987 let _visitors_r0 = self#on_expr env _visitors_c0 in
6988 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1 in
6989 let _visitors_r2 = self#on_expr env _visitors_c2 in
6990 Eif (_visitors_r0, _visitors_r1, _visitors_r2)
6991 method on_NullCoalesce env _visitors_c0 _visitors_c1 =
6992 let _visitors_r0 = self#on_expr env _visitors_c0 in
6993 let _visitors_r1 = self#on_expr env _visitors_c1 in
6994 NullCoalesce (_visitors_r0, _visitors_r1)
6995 method on_InstanceOf env _visitors_c0 _visitors_c1 =
6996 let _visitors_r0 = self#on_expr env _visitors_c0 in
6997 let _visitors_r1 = self#on_expr env _visitors_c1 in
6998 InstanceOf (_visitors_r0, _visitors_r1)
6999 method on_Is env _visitors_c0 _visitors_c1 =
7000 let _visitors_r0 = self#on_expr env _visitors_c0 in
7001 let _visitors_r1 = self#on_hint env _visitors_c1 in
7002 Is (_visitors_r0, _visitors_r1)
7003 method on_BracedExpr env _visitors_c0 =
7004 let _visitors_r0 = self#on_expr env _visitors_c0 in
7005 BracedExpr _visitors_r0
7006 method on_ParenthesizedExpr env _visitors_c0 =
7007 let _visitors_r0 = self#on_expr env _visitors_c0 in
7008 ParenthesizedExpr _visitors_r0
7009 method on_New env _visitors_c0 _visitors_c1 _visitors_c2 =
7010 let _visitors_r0 = self#on_expr env _visitors_c0 in
7011 let _visitors_r1 = self#on_list self#on_expr env _visitors_c1 in
7012 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2 in
7013 New (_visitors_r0, _visitors_r1, _visitors_r2)
7014 method on_NewAnonClass env _visitors_c0 _visitors_c1 _visitors_c2 =
7015 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
7016 let _visitors_r1 = self#on_list self#on_expr env _visitors_c1 in
7017 let _visitors_r2 = self#on_class_ env _visitors_c2 in
7018 NewAnonClass (_visitors_r0, _visitors_r1, _visitors_r2)
7019 method on_Efun env _visitors_c0 _visitors_c1 =
7020 let _visitors_r0 = self#on_fun_ env _visitors_c0 in
7021 let _visitors_r1 =
7022 self#on_list
7023 (fun env ->
7024 fun (_visitors_c0,_visitors_c1) ->
7025 let _visitors_r0 = self#on_id env _visitors_c0 in
7026 let _visitors_r1 = self#on_bool env _visitors_c1 in
7027 (_visitors_r0, _visitors_r1)) env _visitors_c1
7029 Efun (_visitors_r0, _visitors_r1)
7030 method on_Lfun env _visitors_c0 =
7031 let _visitors_r0 = self#on_fun_ env _visitors_c0 in
7032 Lfun _visitors_r0
7033 method on_Xml env _visitors_c0 _visitors_c1 _visitors_c2 =
7034 let _visitors_r0 = self#on_id env _visitors_c0 in
7035 let _visitors_r1 =
7036 self#on_list self#on_xhp_attribute env _visitors_c1 in
7037 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2 in
7038 Xml (_visitors_r0, _visitors_r1, _visitors_r2)
7039 method on_Unsafeexpr env _visitors_c0 =
7040 let _visitors_r0 = self#on_expr env _visitors_c0 in
7041 Unsafeexpr _visitors_r0
7042 method on_Import env _visitors_c0 _visitors_c1 =
7043 let _visitors_r0 = self#on_import_flavor env _visitors_c0 in
7044 let _visitors_r1 = self#on_expr env _visitors_c1 in
7045 Import (_visitors_r0, _visitors_r1)
7046 method on_Callconv env _visitors_c0 _visitors_c1 =
7047 let _visitors_r0 = self#on_param_kind env _visitors_c0 in
7048 let _visitors_r1 = self#on_expr env _visitors_c1 in
7049 Callconv (_visitors_r0, _visitors_r1)
7050 method on_Execution_operator env _visitors_c0 =
7051 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
7052 Execution_operator _visitors_r0
7053 method on_expr_ env _visitors_this =
7054 match _visitors_this with
7055 | Array _visitors_c0 -> self#on_Array env _visitors_c0
7056 | Varray _visitors_c0 -> self#on_Varray env _visitors_c0
7057 | Darray _visitors_c0 -> self#on_Darray env _visitors_c0
7058 | Shape _visitors_c0 -> self#on_Shape env _visitors_c0
7059 | Collection (_visitors_c0,_visitors_c1) ->
7060 self#on_Collection env _visitors_c0 _visitors_c1
7061 | Null -> self#on_Null env
7062 | True -> self#on_True env
7063 | False -> self#on_False env
7064 | Omitted -> self#on_Omitted env
7065 | Id _visitors_c0 -> self#on_Id env _visitors_c0
7066 | Id_type_arguments (_visitors_c0,_visitors_c1) ->
7067 self#on_Id_type_arguments env _visitors_c0 _visitors_c1
7068 | Lvar _visitors_c0 -> self#on_Lvar env _visitors_c0
7069 | Dollar _visitors_c0 -> self#on_Dollar env _visitors_c0
7070 | Clone _visitors_c0 -> self#on_Clone env _visitors_c0
7071 | Obj_get (_visitors_c0,_visitors_c1,_visitors_c2) ->
7072 self#on_Obj_get env _visitors_c0 _visitors_c1 _visitors_c2
7073 | Array_get (_visitors_c0,_visitors_c1) ->
7074 self#on_Array_get env _visitors_c0 _visitors_c1
7075 | Class_get (_visitors_c0,_visitors_c1) ->
7076 self#on_Class_get env _visitors_c0 _visitors_c1
7077 | Class_const (_visitors_c0,_visitors_c1) ->
7078 self#on_Class_const env _visitors_c0 _visitors_c1
7079 | Call (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
7080 self#on_Call env _visitors_c0 _visitors_c1 _visitors_c2
7081 _visitors_c3
7082 | Int _visitors_c0 -> self#on_Int env _visitors_c0
7083 | Float _visitors_c0 -> self#on_Float env _visitors_c0
7084 | String _visitors_c0 -> self#on_String env _visitors_c0
7085 | String2 _visitors_c0 -> self#on_String2 env _visitors_c0
7086 | Yield _visitors_c0 -> self#on_Yield env _visitors_c0
7087 | Yield_break -> self#on_Yield_break env
7088 | Yield_from _visitors_c0 -> self#on_Yield_from env _visitors_c0
7089 | Await _visitors_c0 -> self#on_Await env _visitors_c0
7090 | Suspend _visitors_c0 -> self#on_Suspend env _visitors_c0
7091 | List _visitors_c0 -> self#on_List env _visitors_c0
7092 | Expr_list _visitors_c0 -> self#on_Expr_list env _visitors_c0
7093 | Cast (_visitors_c0,_visitors_c1) ->
7094 self#on_Cast env _visitors_c0 _visitors_c1
7095 | Unop (_visitors_c0,_visitors_c1) ->
7096 self#on_Unop env _visitors_c0 _visitors_c1
7097 | Binop (_visitors_c0,_visitors_c1,_visitors_c2) ->
7098 self#on_Binop env _visitors_c0 _visitors_c1 _visitors_c2
7099 | Pipe (_visitors_c0,_visitors_c1) ->
7100 self#on_Pipe env _visitors_c0 _visitors_c1
7101 | Eif (_visitors_c0,_visitors_c1,_visitors_c2) ->
7102 self#on_Eif env _visitors_c0 _visitors_c1 _visitors_c2
7103 | NullCoalesce (_visitors_c0,_visitors_c1) ->
7104 self#on_NullCoalesce env _visitors_c0 _visitors_c1
7105 | InstanceOf (_visitors_c0,_visitors_c1) ->
7106 self#on_InstanceOf env _visitors_c0 _visitors_c1
7107 | Is (_visitors_c0,_visitors_c1) ->
7108 self#on_Is env _visitors_c0 _visitors_c1
7109 | BracedExpr _visitors_c0 -> self#on_BracedExpr env _visitors_c0
7110 | ParenthesizedExpr _visitors_c0 ->
7111 self#on_ParenthesizedExpr env _visitors_c0
7112 | New (_visitors_c0,_visitors_c1,_visitors_c2) ->
7113 self#on_New env _visitors_c0 _visitors_c1 _visitors_c2
7114 | NewAnonClass (_visitors_c0,_visitors_c1,_visitors_c2) ->
7115 self#on_NewAnonClass env _visitors_c0 _visitors_c1 _visitors_c2
7116 | Efun (_visitors_c0,_visitors_c1) ->
7117 self#on_Efun env _visitors_c0 _visitors_c1
7118 | Lfun _visitors_c0 -> self#on_Lfun env _visitors_c0
7119 | Xml (_visitors_c0,_visitors_c1,_visitors_c2) ->
7120 self#on_Xml env _visitors_c0 _visitors_c1 _visitors_c2
7121 | Unsafeexpr _visitors_c0 -> self#on_Unsafeexpr env _visitors_c0
7122 | Import (_visitors_c0,_visitors_c1) ->
7123 self#on_Import env _visitors_c0 _visitors_c1
7124 | Callconv (_visitors_c0,_visitors_c1) ->
7125 self#on_Callconv env _visitors_c0 _visitors_c1
7126 | Execution_operator _visitors_c0 ->
7127 self#on_Execution_operator env _visitors_c0
7128 method on_Include env = Include
7129 method on_Require env = Require
7130 method on_IncludeOnce env = IncludeOnce
7131 method on_RequireOnce env = RequireOnce
7132 method on_import_flavor env _visitors_this =
7133 match _visitors_this with
7134 | Include -> self#on_Include env
7135 | Require -> self#on_Require env
7136 | IncludeOnce -> self#on_IncludeOnce env
7137 | RequireOnce -> self#on_RequireOnce env
7138 method on_AFvalue env _visitors_c0 =
7139 let _visitors_r0 = self#on_expr env _visitors_c0 in
7140 AFvalue _visitors_r0
7141 method on_AFkvalue env _visitors_c0 _visitors_c1 =
7142 let _visitors_r0 = self#on_expr env _visitors_c0 in
7143 let _visitors_r1 = self#on_expr env _visitors_c1 in
7144 AFkvalue (_visitors_r0, _visitors_r1)
7145 method on_afield env _visitors_this =
7146 match _visitors_this with
7147 | AFvalue _visitors_c0 -> self#on_AFvalue env _visitors_c0
7148 | AFkvalue (_visitors_c0,_visitors_c1) ->
7149 self#on_AFkvalue env _visitors_c0 _visitors_c1
7150 method on_Default env _visitors_c0 =
7151 let _visitors_r0 = self#on_block env _visitors_c0 in
7152 Default _visitors_r0
7153 method on_Case env _visitors_c0 _visitors_c1 =
7154 let _visitors_r0 = self#on_expr env _visitors_c0 in
7155 let _visitors_r1 = self#on_block env _visitors_c1 in
7156 Case (_visitors_r0, _visitors_r1)
7157 method on_case env _visitors_this =
7158 match _visitors_this with
7159 | Default _visitors_c0 -> self#on_Default env _visitors_c0
7160 | Case (_visitors_c0,_visitors_c1) ->
7161 self#on_Case env _visitors_c0 _visitors_c1
7162 method on_catch env (_visitors_c0,_visitors_c1,_visitors_c2) =
7163 let _visitors_r0 = self#on_id env _visitors_c0 in
7164 let _visitors_r1 = self#on_id env _visitors_c1 in
7165 let _visitors_r2 = self#on_block env _visitors_c2 in
7166 (_visitors_r0, _visitors_r1, _visitors_r2)
7167 method on_field env (_visitors_c0,_visitors_c1) =
7168 let _visitors_r0 = self#on_expr env _visitors_c0 in
7169 let _visitors_r1 = self#on_expr env _visitors_c1 in
7170 (_visitors_r0, _visitors_r1)
7171 method on_attr env (_visitors_c0,_visitors_c1) =
7172 let _visitors_r0 = self#on_id env _visitors_c0 in
7173 let _visitors_r1 = self#on_expr env _visitors_c1 in
7174 (_visitors_r0, _visitors_r1)
7176 [@@@VISITORS.END ]
7178 include
7179 struct
7180 [@@@ocaml.warning "-4-26-27"]
7181 [@@@VISITORS.BEGIN ]
7182 class virtual ['self] iter =
7183 object (self : 'self)
7184 inherit [_] iter_defs
7185 method on_program env = self#on_list self#on_def env
7186 method on_nsenv env _visitors_this = ()
7187 method on_fimode env _visitors_this = ()
7188 method on_Fun env _visitors_c0 =
7189 let _visitors_r0 = self#on_fun_ env _visitors_c0 in ()
7190 method on_Class env _visitors_c0 =
7191 let _visitors_r0 = self#on_class_ env _visitors_c0 in ()
7192 method on_Stmt env _visitors_c0 =
7193 let _visitors_r0 = self#on_stmt env _visitors_c0 in ()
7194 method on_Typedef env _visitors_c0 =
7195 let _visitors_r0 = self#on_typedef env _visitors_c0 in ()
7196 method on_Constant env _visitors_c0 =
7197 let _visitors_r0 = self#on_gconst env _visitors_c0 in ()
7198 method on_Namespace env _visitors_c0 _visitors_c1 =
7199 let _visitors_r0 = self#on_id env _visitors_c0 in
7200 let _visitors_r1 = self#on_program env _visitors_c1 in ()
7201 method on_NamespaceUse env _visitors_c0 =
7202 let _visitors_r0 =
7203 self#on_list
7204 (fun env ->
7205 fun (_visitors_c0,_visitors_c1,_visitors_c2) ->
7206 let _visitors_r0 = self#on_ns_kind env _visitors_c0 in
7207 let _visitors_r1 = self#on_id env _visitors_c1 in
7208 let _visitors_r2 = self#on_id env _visitors_c2 in ()) env
7209 _visitors_c0
7212 method on_SetNamespaceEnv env _visitors_c0 =
7213 let _visitors_r0 = self#on_nsenv env _visitors_c0 in ()
7214 method on_def env _visitors_this =
7215 match _visitors_this with
7216 | Fun _visitors_c0 -> self#on_Fun env _visitors_c0
7217 | Class _visitors_c0 -> self#on_Class env _visitors_c0
7218 | Stmt _visitors_c0 -> self#on_Stmt env _visitors_c0
7219 | Typedef _visitors_c0 -> self#on_Typedef env _visitors_c0
7220 | Constant _visitors_c0 -> self#on_Constant env _visitors_c0
7221 | Namespace (_visitors_c0,_visitors_c1) ->
7222 self#on_Namespace env _visitors_c0 _visitors_c1
7223 | NamespaceUse _visitors_c0 ->
7224 self#on_NamespaceUse env _visitors_c0
7225 | SetNamespaceEnv _visitors_c0 ->
7226 self#on_SetNamespaceEnv env _visitors_c0
7227 method on_typedef env _visitors_this =
7228 let _visitors_r0 = self#on_id env _visitors_this.t_id in
7229 let _visitors_r1 =
7230 self#on_list self#on_tparam env _visitors_this.t_tparams in
7231 let _visitors_r2 =
7232 self#on_tconstraint env _visitors_this.t_constraint in
7233 let _visitors_r3 = self#on_typedef_kind env _visitors_this.t_kind
7235 let _visitors_r4 =
7236 self#on_list self#on_user_attribute env
7237 _visitors_this.t_user_attributes
7239 let _visitors_r5 = self#on_nsenv env _visitors_this.t_namespace in
7240 let _visitors_r6 = self#on_fimode env _visitors_this.t_mode in ()
7241 method on_gconst env _visitors_this =
7242 let _visitors_r0 = self#on_fimode env _visitors_this.cst_mode in
7243 let _visitors_r1 = self#on_cst_kind env _visitors_this.cst_kind in
7244 let _visitors_r2 = self#on_id env _visitors_this.cst_name in
7245 let _visitors_r3 =
7246 self#on_option self#on_hint env _visitors_this.cst_type in
7247 let _visitors_r4 = self#on_expr env _visitors_this.cst_value in
7248 let _visitors_r5 = self#on_nsenv env _visitors_this.cst_namespace
7250 let _visitors_r6 = self#on_pos env _visitors_this.cst_span in ()
7251 method on_tparam env (_visitors_c0,_visitors_c1,_visitors_c2) =
7252 let _visitors_r0 = self#on_variance env _visitors_c0 in
7253 let _visitors_r1 = self#on_id env _visitors_c1 in
7254 let _visitors_r2 =
7255 self#on_list
7256 (fun env ->
7257 fun (_visitors_c0,_visitors_c1) ->
7258 let _visitors_r0 =
7259 self#on_constraint_kind env _visitors_c0 in
7260 let _visitors_r1 = self#on_hint env _visitors_c1 in ())
7261 env _visitors_c2
7264 method on_tconstraint env = self#on_option self#on_hint env
7265 method on_Alias env _visitors_c0 =
7266 let _visitors_r0 = self#on_hint env _visitors_c0 in ()
7267 method on_NewType env _visitors_c0 =
7268 let _visitors_r0 = self#on_hint env _visitors_c0 in ()
7269 method on_typedef_kind env _visitors_this =
7270 match _visitors_this with
7271 | Alias _visitors_c0 -> self#on_Alias env _visitors_c0
7272 | NewType _visitors_c0 -> self#on_NewType env _visitors_c0
7273 method on_class_ env _visitors_this =
7274 let _visitors_r0 = self#on_fimode env _visitors_this.c_mode in
7275 let _visitors_r1 =
7276 self#on_list self#on_user_attribute env
7277 _visitors_this.c_user_attributes
7279 let _visitors_r2 = self#on_bool env _visitors_this.c_final in
7280 let _visitors_r3 = self#on_class_kind env _visitors_this.c_kind in
7281 let _visitors_r4 = self#on_bool env _visitors_this.c_is_xhp in
7282 let _visitors_r5 = self#on_id env _visitors_this.c_name in
7283 let _visitors_r6 =
7284 self#on_list self#on_tparam env _visitors_this.c_tparams in
7285 let _visitors_r7 =
7286 self#on_list self#on_hint env _visitors_this.c_extends in
7287 let _visitors_r8 =
7288 self#on_list self#on_hint env _visitors_this.c_implements in
7289 let _visitors_r9 =
7290 self#on_list self#on_class_elt env _visitors_this.c_body in
7291 let _visitors_r10 = self#on_nsenv env _visitors_this.c_namespace
7293 let _visitors_r11 =
7294 self#on_option self#on_enum_ env _visitors_this.c_enum in
7295 let _visitors_r12 = self#on_pos env _visitors_this.c_span in
7296 let _visitors_r13 =
7297 self#on_option self#on_string env _visitors_this.c_doc_comment
7300 method on_enum_ env _visitors_this =
7301 let _visitors_r0 = self#on_hint env _visitors_this.e_base in
7302 let _visitors_r1 =
7303 self#on_option self#on_hint env _visitors_this.e_constraint in
7305 method on_user_attribute env _visitors_this =
7306 let _visitors_r0 = self#on_id env _visitors_this.ua_name in
7307 let _visitors_r1 =
7308 self#on_list self#on_expr env _visitors_this.ua_params in
7310 method on_Const env _visitors_c0 _visitors_c1 =
7311 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0 in
7312 let _visitors_r1 =
7313 self#on_list
7314 (fun env ->
7315 fun (_visitors_c0,_visitors_c1) ->
7316 let _visitors_r0 = self#on_id env _visitors_c0 in
7317 let _visitors_r1 = self#on_expr env _visitors_c1 in ())
7318 env _visitors_c1
7321 method on_AbsConst env _visitors_c0 _visitors_c1 =
7322 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0 in
7323 let _visitors_r1 = self#on_id env _visitors_c1 in ()
7324 method on_Attributes env _visitors_c0 =
7325 let _visitors_r0 = self#on_list self#on_class_attr env _visitors_c0
7328 method on_TypeConst env _visitors_c0 =
7329 let _visitors_r0 = self#on_typeconst env _visitors_c0 in ()
7330 method on_ClassUse env _visitors_c0 =
7331 let _visitors_r0 = self#on_hint env _visitors_c0 in ()
7332 method on_ClassUseAlias env _visitors_c0 _visitors_c1 _visitors_c2
7333 _visitors_c3 =
7334 let _visitors_r0 = self#on_option self#on_id env _visitors_c0 in
7335 let _visitors_r1 = self#on_pstring env _visitors_c1 in
7336 let _visitors_r2 = self#on_option self#on_id env _visitors_c2 in
7337 let _visitors_r3 = self#on_list self#on_kind env _visitors_c3 in
7339 method on_ClassUsePrecedence env _visitors_c0 _visitors_c1
7340 _visitors_c2 =
7341 let _visitors_r0 = self#on_id env _visitors_c0 in
7342 let _visitors_r1 = self#on_pstring env _visitors_c1 in
7343 let _visitors_r2 = self#on_list self#on_id env _visitors_c2 in ()
7344 method on_XhpAttrUse env _visitors_c0 =
7345 let _visitors_r0 = self#on_hint env _visitors_c0 in ()
7346 method on_ClassTraitRequire env _visitors_c0 _visitors_c1 =
7347 let _visitors_r0 = self#on_trait_req_kind env _visitors_c0 in
7348 let _visitors_r1 = self#on_hint env _visitors_c1 in ()
7349 method on_ClassVars env _visitors_c0 =
7350 let _visitors_r0 = self#on_class_vars_ env _visitors_c0 in ()
7351 method on_XhpAttr env _visitors_c0 _visitors_c1 _visitors_c2
7352 _visitors_c3 =
7353 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0 in
7354 let _visitors_r1 = self#on_class_var env _visitors_c1 in
7355 let _visitors_r2 = self#on_bool env _visitors_c2 in
7356 let _visitors_r3 =
7357 self#on_option
7358 (fun env ->
7359 fun (_visitors_c0,_visitors_c1,_visitors_c2) ->
7360 let _visitors_r0 = self#on_pos env _visitors_c0 in
7361 let _visitors_r1 = self#on_bool env _visitors_c1 in
7362 let _visitors_r2 =
7363 self#on_list self#on_expr env _visitors_c2 in
7364 ()) env _visitors_c3
7367 method on_Method env _visitors_c0 =
7368 let _visitors_r0 = self#on_method_ env _visitors_c0 in ()
7369 method on_XhpCategory env _visitors_c0 =
7370 let _visitors_r0 = self#on_list self#on_pstring env _visitors_c0
7373 method on_XhpChild env _visitors_c0 =
7374 let _visitors_r0 = self#on_xhp_child env _visitors_c0 in ()
7375 method on_class_elt env _visitors_this =
7376 match _visitors_this with
7377 | Const (_visitors_c0,_visitors_c1) ->
7378 self#on_Const env _visitors_c0 _visitors_c1
7379 | AbsConst (_visitors_c0,_visitors_c1) ->
7380 self#on_AbsConst env _visitors_c0 _visitors_c1
7381 | Attributes _visitors_c0 -> self#on_Attributes env _visitors_c0
7382 | TypeConst _visitors_c0 -> self#on_TypeConst env _visitors_c0
7383 | ClassUse _visitors_c0 -> self#on_ClassUse env _visitors_c0
7384 | ClassUseAlias
7385 (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
7386 self#on_ClassUseAlias env _visitors_c0 _visitors_c1
7387 _visitors_c2 _visitors_c3
7388 | ClassUsePrecedence (_visitors_c0,_visitors_c1,_visitors_c2) ->
7389 self#on_ClassUsePrecedence env _visitors_c0 _visitors_c1
7390 _visitors_c2
7391 | XhpAttrUse _visitors_c0 -> self#on_XhpAttrUse env _visitors_c0
7392 | ClassTraitRequire (_visitors_c0,_visitors_c1) ->
7393 self#on_ClassTraitRequire env _visitors_c0 _visitors_c1
7394 | ClassVars _visitors_c0 -> self#on_ClassVars env _visitors_c0
7395 | XhpAttr (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
7396 self#on_XhpAttr env _visitors_c0 _visitors_c1 _visitors_c2
7397 _visitors_c3
7398 | Method _visitors_c0 -> self#on_Method env _visitors_c0
7399 | XhpCategory _visitors_c0 -> self#on_XhpCategory env _visitors_c0
7400 | XhpChild _visitors_c0 -> self#on_XhpChild env _visitors_c0
7401 method on_ChildName env _visitors_c0 =
7402 let _visitors_r0 = self#on_id env _visitors_c0 in ()
7403 method on_ChildList env _visitors_c0 =
7404 let _visitors_r0 = self#on_list self#on_xhp_child env _visitors_c0
7407 method on_ChildUnary env _visitors_c0 _visitors_c1 =
7408 let _visitors_r0 = self#on_xhp_child env _visitors_c0 in
7409 let _visitors_r1 = self#on_xhp_child_op env _visitors_c1 in ()
7410 method on_ChildBinary env _visitors_c0 _visitors_c1 =
7411 let _visitors_r0 = self#on_xhp_child env _visitors_c0 in
7412 let _visitors_r1 = self#on_xhp_child env _visitors_c1 in ()
7413 method on_xhp_child env _visitors_this =
7414 match _visitors_this with
7415 | ChildName _visitors_c0 -> self#on_ChildName env _visitors_c0
7416 | ChildList _visitors_c0 -> self#on_ChildList env _visitors_c0
7417 | ChildUnary (_visitors_c0,_visitors_c1) ->
7418 self#on_ChildUnary env _visitors_c0 _visitors_c1
7419 | ChildBinary (_visitors_c0,_visitors_c1) ->
7420 self#on_ChildBinary env _visitors_c0 _visitors_c1
7421 method on_ChildStar env = ()
7422 method on_ChildPlus env = ()
7423 method on_ChildQuestion env = ()
7424 method on_xhp_child_op env _visitors_this =
7425 match _visitors_this with
7426 | ChildStar -> self#on_ChildStar env
7427 | ChildPlus -> self#on_ChildPlus env
7428 | ChildQuestion -> self#on_ChildQuestion env
7429 method on_CA_name env _visitors_c0 =
7430 let _visitors_r0 = self#on_id env _visitors_c0 in ()
7431 method on_CA_field env _visitors_c0 =
7432 let _visitors_r0 = self#on_ca_field env _visitors_c0 in ()
7433 method on_class_attr env _visitors_this =
7434 match _visitors_this with
7435 | CA_name _visitors_c0 -> self#on_CA_name env _visitors_c0
7436 | CA_field _visitors_c0 -> self#on_CA_field env _visitors_c0
7437 method on_ca_field env _visitors_this =
7438 let _visitors_r0 = self#on_ca_type env _visitors_this.ca_type in
7439 let _visitors_r1 = self#on_id env _visitors_this.ca_id in
7440 let _visitors_r2 =
7441 self#on_option self#on_expr env _visitors_this.ca_value in
7442 let _visitors_r3 = self#on_bool env _visitors_this.ca_required in
7444 method on_CA_hint env _visitors_c0 =
7445 let _visitors_r0 = self#on_hint env _visitors_c0 in ()
7446 method on_CA_enum env _visitors_c0 =
7447 let _visitors_r0 = self#on_list self#on_string env _visitors_c0 in
7449 method on_ca_type env _visitors_this =
7450 match _visitors_this with
7451 | CA_hint _visitors_c0 -> self#on_CA_hint env _visitors_c0
7452 | CA_enum _visitors_c0 -> self#on_CA_enum env _visitors_c0
7453 method on_class_var env (_visitors_c0,_visitors_c1,_visitors_c2) =
7454 let _visitors_r0 = self#on_pos env _visitors_c0 in
7455 let _visitors_r1 = self#on_id env _visitors_c1 in
7456 let _visitors_r2 = self#on_option self#on_expr env _visitors_c2 in
7458 method on_class_vars_ env _visitors_this =
7459 let _visitors_r0 =
7460 self#on_list self#on_kind env _visitors_this.cv_kinds in
7461 let _visitors_r1 =
7462 self#on_option self#on_hint env _visitors_this.cv_hint in
7463 let _visitors_r2 =
7464 self#on_is_variadic env _visitors_this.cv_is_promoted_variadic
7466 let _visitors_r3 =
7467 self#on_list self#on_class_var env _visitors_this.cv_names in
7468 let _visitors_r4 =
7469 self#on_option self#on_string env _visitors_this.cv_doc_comment
7471 let _visitors_r5 =
7472 self#on_list self#on_user_attribute env
7473 _visitors_this.cv_user_attributes
7476 method on_method_ env _visitors_this =
7477 let _visitors_r0 =
7478 self#on_list self#on_kind env _visitors_this.m_kind in
7479 let _visitors_r1 =
7480 self#on_list self#on_tparam env _visitors_this.m_tparams in
7481 let _visitors_r2 =
7482 self#on_list
7483 (fun env ->
7484 fun (_visitors_c0,_visitors_c1,_visitors_c2) ->
7485 let _visitors_r0 = self#on_hint env _visitors_c0 in
7486 let _visitors_r1 =
7487 self#on_constraint_kind env _visitors_c1 in
7488 let _visitors_r2 = self#on_hint env _visitors_c2 in ())
7489 env _visitors_this.m_constrs
7491 let _visitors_r3 = self#on_id env _visitors_this.m_name in
7492 let _visitors_r4 =
7493 self#on_list self#on_fun_param env _visitors_this.m_params in
7494 let _visitors_r5 = self#on_block env _visitors_this.m_body in
7495 let _visitors_r6 =
7496 self#on_list self#on_user_attribute env
7497 _visitors_this.m_user_attributes
7499 let _visitors_r7 =
7500 self#on_option self#on_hint env _visitors_this.m_ret in
7501 let _visitors_r8 = self#on_bool env _visitors_this.m_ret_by_ref in
7502 let _visitors_r9 = self#on_fun_kind env _visitors_this.m_fun_kind
7504 let _visitors_r10 = self#on_pos env _visitors_this.m_span in
7505 let _visitors_r11 =
7506 self#on_option self#on_string env _visitors_this.m_doc_comment
7509 method on_typeconst env _visitors_this =
7510 let _visitors_r0 = self#on_bool env _visitors_this.tconst_abstract
7512 let _visitors_r1 = self#on_id env _visitors_this.tconst_name in
7513 let _visitors_r2 =
7514 self#on_list self#on_tparam env _visitors_this.tconst_tparams in
7515 let _visitors_r3 =
7516 self#on_option self#on_hint env _visitors_this.tconst_constraint
7518 let _visitors_r4 =
7519 self#on_option self#on_hint env _visitors_this.tconst_type in
7520 let _visitors_r5 = self#on_pos env _visitors_this.tconst_span in
7522 method on_is_reference env = self#on_bool env
7523 method on_is_variadic env = self#on_bool env
7524 method on_fun_param env _visitors_this =
7525 let _visitors_r0 =
7526 self#on_option self#on_hint env _visitors_this.param_hint in
7527 let _visitors_r1 =
7528 self#on_is_reference env _visitors_this.param_is_reference in
7529 let _visitors_r2 =
7530 self#on_is_variadic env _visitors_this.param_is_variadic in
7531 let _visitors_r3 = self#on_id env _visitors_this.param_id in
7532 let _visitors_r4 =
7533 self#on_option self#on_expr env _visitors_this.param_expr in
7534 let _visitors_r5 =
7535 self#on_option self#on_kind env _visitors_this.param_modifier in
7536 let _visitors_r6 =
7537 self#on_option self#on_param_kind env
7538 _visitors_this.param_callconv
7540 let _visitors_r7 =
7541 self#on_list self#on_user_attribute env
7542 _visitors_this.param_user_attributes
7545 method on_fun_ env _visitors_this =
7546 let _visitors_r0 = self#on_fimode env _visitors_this.f_mode in
7547 let _visitors_r1 =
7548 self#on_list self#on_tparam env _visitors_this.f_tparams in
7549 let _visitors_r2 =
7550 self#on_list
7551 (fun env ->
7552 fun (_visitors_c0,_visitors_c1,_visitors_c2) ->
7553 let _visitors_r0 = self#on_hint env _visitors_c0 in
7554 let _visitors_r1 =
7555 self#on_constraint_kind env _visitors_c1 in
7556 let _visitors_r2 = self#on_hint env _visitors_c2 in ())
7557 env _visitors_this.f_constrs
7559 let _visitors_r3 =
7560 self#on_option self#on_hint env _visitors_this.f_ret in
7561 let _visitors_r4 = self#on_bool env _visitors_this.f_ret_by_ref in
7562 let _visitors_r5 = self#on_id env _visitors_this.f_name in
7563 let _visitors_r6 =
7564 self#on_list self#on_fun_param env _visitors_this.f_params in
7565 let _visitors_r7 = self#on_block env _visitors_this.f_body in
7566 let _visitors_r8 =
7567 self#on_list self#on_user_attribute env
7568 _visitors_this.f_user_attributes
7570 let _visitors_r9 = self#on_fun_kind env _visitors_this.f_fun_kind
7572 let _visitors_r10 = self#on_nsenv env _visitors_this.f_namespace
7574 let _visitors_r11 = self#on_pos env _visitors_this.f_span in
7575 let _visitors_r12 =
7576 self#on_option self#on_string env _visitors_this.f_doc_comment
7578 let _visitors_r13 = self#on_bool env _visitors_this.f_static in ()
7579 method on_is_coroutine env = self#on_bool env
7580 method on_hint env (_visitors_c0,_visitors_c1) =
7581 let _visitors_r0 = self#on_pos env _visitors_c0 in
7582 let _visitors_r1 = self#on_hint_ env _visitors_c1 in ()
7583 method on_Hvariadic env _visitors_c0 =
7584 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0 in
7586 method on_Hnon_variadic env = ()
7587 method on_variadic_hint env _visitors_this =
7588 match _visitors_this with
7589 | Hvariadic _visitors_c0 -> self#on_Hvariadic env _visitors_c0
7590 | Hnon_variadic -> self#on_Hnon_variadic env
7591 method on_Hoption env _visitors_c0 =
7592 let _visitors_r0 = self#on_hint env _visitors_c0 in ()
7593 method on_Hfun env _visitors_c0 _visitors_c1 _visitors_c2
7594 _visitors_c3 _visitors_c4 =
7595 let _visitors_r0 = self#on_is_coroutine env _visitors_c0 in
7596 let _visitors_r1 = self#on_list self#on_hint env _visitors_c1 in
7597 let _visitors_r2 =
7598 self#on_list (self#on_option self#on_param_kind) env _visitors_c2
7600 let _visitors_r3 = self#on_variadic_hint env _visitors_c3 in
7601 let _visitors_r4 = self#on_hint env _visitors_c4 in ()
7602 method on_Htuple env _visitors_c0 =
7603 let _visitors_r0 = self#on_list self#on_hint env _visitors_c0 in
7605 method on_Happly env _visitors_c0 _visitors_c1 =
7606 let _visitors_r0 = self#on_id env _visitors_c0 in
7607 let _visitors_r1 = self#on_list self#on_hint env _visitors_c1 in
7609 method on_Hshape env _visitors_c0 =
7610 let _visitors_r0 = self#on_shape_info env _visitors_c0 in ()
7611 method on_Haccess env _visitors_c0 _visitors_c1 _visitors_c2 =
7612 let _visitors_r0 = self#on_id env _visitors_c0 in
7613 let _visitors_r1 = self#on_id env _visitors_c1 in
7614 let _visitors_r2 = self#on_list self#on_id env _visitors_c2 in ()
7615 method on_Hsoft env _visitors_c0 =
7616 let _visitors_r0 = self#on_hint env _visitors_c0 in ()
7617 method on_hint_ env _visitors_this =
7618 match _visitors_this with
7619 | Hoption _visitors_c0 -> self#on_Hoption env _visitors_c0
7620 | Hfun
7621 (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3,_visitors_c4)
7623 self#on_Hfun env _visitors_c0 _visitors_c1 _visitors_c2
7624 _visitors_c3 _visitors_c4
7625 | Htuple _visitors_c0 -> self#on_Htuple env _visitors_c0
7626 | Happly (_visitors_c0,_visitors_c1) ->
7627 self#on_Happly env _visitors_c0 _visitors_c1
7628 | Hshape _visitors_c0 -> self#on_Hshape env _visitors_c0
7629 | Haccess (_visitors_c0,_visitors_c1,_visitors_c2) ->
7630 self#on_Haccess env _visitors_c0 _visitors_c1 _visitors_c2
7631 | Hsoft _visitors_c0 -> self#on_Hsoft env _visitors_c0
7632 method on_shape_info env _visitors_this =
7633 let _visitors_r0 =
7634 self#on_bool env _visitors_this.si_allows_unknown_fields in
7635 let _visitors_r1 =
7636 self#on_list self#on_shape_field env
7637 _visitors_this.si_shape_field_list
7640 method on_shape_field env _visitors_this =
7641 let _visitors_r0 = self#on_bool env _visitors_this.sf_optional in
7642 let _visitors_r1 =
7643 self#on_shape_field_name env _visitors_this.sf_name in
7644 let _visitors_r2 = self#on_hint env _visitors_this.sf_hint in ()
7645 method on_using_stmt env _visitors_this =
7646 let _visitors_r0 =
7647 self#on_bool env _visitors_this.us_is_block_scoped in
7648 let _visitors_r1 = self#on_bool env _visitors_this.us_has_await in
7649 let _visitors_r2 = self#on_expr env _visitors_this.us_expr in
7650 let _visitors_r3 = self#on_block env _visitors_this.us_block in ()
7651 method on_stmt env (_visitors_c0,_visitors_c1) =
7652 let _visitors_r0 = self#on_pos env _visitors_c0 in
7653 let _visitors_r1 = self#on_stmt_ env _visitors_c1 in ()
7654 method on_Unsafe env = ()
7655 method on_Fallthrough env = ()
7656 method on_Expr env _visitors_c0 =
7657 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
7658 method on_Block env _visitors_c0 =
7659 let _visitors_r0 = self#on_block env _visitors_c0 in ()
7660 method on_Break env _visitors_c0 =
7661 let _visitors_r0 = self#on_option self#on_expr env _visitors_c0 in
7663 method on_Continue env _visitors_c0 =
7664 let _visitors_r0 = self#on_option self#on_expr env _visitors_c0 in
7666 method on_Throw env _visitors_c0 =
7667 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
7668 method on_Return env _visitors_c0 =
7669 let _visitors_r0 = self#on_option self#on_expr env _visitors_c0 in
7671 method on_GotoLabel env _visitors_c0 =
7672 let _visitors_r0 = self#on_pstring env _visitors_c0 in ()
7673 method on_Goto env _visitors_c0 =
7674 let _visitors_r0 = self#on_pstring env _visitors_c0 in ()
7675 method on_Static_var env _visitors_c0 =
7676 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
7678 method on_Global_var env _visitors_c0 =
7679 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
7681 method on_If env _visitors_c0 _visitors_c1 _visitors_c2 =
7682 let _visitors_r0 = self#on_expr env _visitors_c0 in
7683 let _visitors_r1 = self#on_block env _visitors_c1 in
7684 let _visitors_r2 = self#on_block env _visitors_c2 in ()
7685 method on_Do env _visitors_c0 _visitors_c1 =
7686 let _visitors_r0 = self#on_block env _visitors_c0 in
7687 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
7688 method on_While env _visitors_c0 _visitors_c1 =
7689 let _visitors_r0 = self#on_expr env _visitors_c0 in
7690 let _visitors_r1 = self#on_block env _visitors_c1 in ()
7691 method on_For env _visitors_c0 _visitors_c1 _visitors_c2 _visitors_c3
7693 let _visitors_r0 = self#on_expr env _visitors_c0 in
7694 let _visitors_r1 = self#on_expr env _visitors_c1 in
7695 let _visitors_r2 = self#on_expr env _visitors_c2 in
7696 let _visitors_r3 = self#on_block env _visitors_c3 in ()
7697 method on_Switch env _visitors_c0 _visitors_c1 =
7698 let _visitors_r0 = self#on_expr env _visitors_c0 in
7699 let _visitors_r1 = self#on_list self#on_case env _visitors_c1 in
7701 method on_Foreach env _visitors_c0 _visitors_c1 _visitors_c2
7702 _visitors_c3 =
7703 let _visitors_r0 = self#on_expr env _visitors_c0 in
7704 let _visitors_r1 = self#on_option self#on_pos env _visitors_c1 in
7705 let _visitors_r2 = self#on_as_expr env _visitors_c2 in
7706 let _visitors_r3 = self#on_block env _visitors_c3 in ()
7707 method on_Try env _visitors_c0 _visitors_c1 _visitors_c2 =
7708 let _visitors_r0 = self#on_block env _visitors_c0 in
7709 let _visitors_r1 = self#on_list self#on_catch env _visitors_c1 in
7710 let _visitors_r2 = self#on_block env _visitors_c2 in ()
7711 method on_Def_inline env _visitors_c0 =
7712 let _visitors_r0 = self#on_def env _visitors_c0 in ()
7713 method on_Noop env = ()
7714 method on_Markup env _visitors_c0 _visitors_c1 =
7715 let _visitors_r0 = self#on_pstring env _visitors_c0 in
7716 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1 in
7718 method on_Using env _visitors_c0 =
7719 let _visitors_r0 = self#on_using_stmt env _visitors_c0 in ()
7720 method on_Declare env _visitors_c0 _visitors_c1 _visitors_c2 =
7721 let _visitors_r0 = self#on_bool env _visitors_c0 in
7722 let _visitors_r1 = self#on_expr env _visitors_c1 in
7723 let _visitors_r2 = self#on_block env _visitors_c2 in ()
7724 method on_stmt_ env _visitors_this =
7725 match _visitors_this with
7726 | Unsafe -> self#on_Unsafe env
7727 | Fallthrough -> self#on_Fallthrough env
7728 | Expr _visitors_c0 -> self#on_Expr env _visitors_c0
7729 | Block _visitors_c0 -> self#on_Block env _visitors_c0
7730 | Break _visitors_c0 -> self#on_Break env _visitors_c0
7731 | Continue _visitors_c0 -> self#on_Continue env _visitors_c0
7732 | Throw _visitors_c0 -> self#on_Throw env _visitors_c0
7733 | Return _visitors_c0 -> self#on_Return env _visitors_c0
7734 | GotoLabel _visitors_c0 -> self#on_GotoLabel env _visitors_c0
7735 | Goto _visitors_c0 -> self#on_Goto env _visitors_c0
7736 | Static_var _visitors_c0 -> self#on_Static_var env _visitors_c0
7737 | Global_var _visitors_c0 -> self#on_Global_var env _visitors_c0
7738 | If (_visitors_c0,_visitors_c1,_visitors_c2) ->
7739 self#on_If env _visitors_c0 _visitors_c1 _visitors_c2
7740 | Do (_visitors_c0,_visitors_c1) ->
7741 self#on_Do env _visitors_c0 _visitors_c1
7742 | While (_visitors_c0,_visitors_c1) ->
7743 self#on_While env _visitors_c0 _visitors_c1
7744 | For (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
7745 self#on_For env _visitors_c0 _visitors_c1 _visitors_c2
7746 _visitors_c3
7747 | Switch (_visitors_c0,_visitors_c1) ->
7748 self#on_Switch env _visitors_c0 _visitors_c1
7749 | Foreach (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
7750 self#on_Foreach env _visitors_c0 _visitors_c1 _visitors_c2
7751 _visitors_c3
7752 | Try (_visitors_c0,_visitors_c1,_visitors_c2) ->
7753 self#on_Try env _visitors_c0 _visitors_c1 _visitors_c2
7754 | Def_inline _visitors_c0 -> self#on_Def_inline env _visitors_c0
7755 | Noop -> self#on_Noop env
7756 | Markup (_visitors_c0,_visitors_c1) ->
7757 self#on_Markup env _visitors_c0 _visitors_c1
7758 | Using _visitors_c0 -> self#on_Using env _visitors_c0
7759 | Declare (_visitors_c0,_visitors_c1,_visitors_c2) ->
7760 self#on_Declare env _visitors_c0 _visitors_c1 _visitors_c2
7761 method on_As_v env _visitors_c0 =
7762 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
7763 method on_As_kv env _visitors_c0 _visitors_c1 =
7764 let _visitors_r0 = self#on_expr env _visitors_c0 in
7765 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
7766 method on_as_expr env _visitors_this =
7767 match _visitors_this with
7768 | As_v _visitors_c0 -> self#on_As_v env _visitors_c0
7769 | As_kv (_visitors_c0,_visitors_c1) ->
7770 self#on_As_kv env _visitors_c0 _visitors_c1
7771 method on_Xhp_simple env _visitors_c0 _visitors_c1 =
7772 let _visitors_r0 = self#on_id env _visitors_c0 in
7773 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
7774 method on_Xhp_spread env _visitors_c0 =
7775 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
7776 method on_xhp_attribute env _visitors_this =
7777 match _visitors_this with
7778 | Xhp_simple (_visitors_c0,_visitors_c1) ->
7779 self#on_Xhp_simple env _visitors_c0 _visitors_c1
7780 | Xhp_spread _visitors_c0 -> self#on_Xhp_spread env _visitors_c0
7781 method on_block env = self#on_list self#on_stmt env
7782 method on_expr env (_visitors_c0,_visitors_c1) =
7783 let _visitors_r0 = self#on_pos env _visitors_c0 in
7784 let _visitors_r1 = self#on_expr_ env _visitors_c1 in ()
7785 method on_Array env _visitors_c0 =
7786 let _visitors_r0 = self#on_list self#on_afield env _visitors_c0 in
7788 method on_Varray env _visitors_c0 =
7789 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
7791 method on_Darray env _visitors_c0 =
7792 let _visitors_r0 =
7793 self#on_list
7794 (fun env ->
7795 fun (_visitors_c0,_visitors_c1) ->
7796 let _visitors_r0 = self#on_expr env _visitors_c0 in
7797 let _visitors_r1 = self#on_expr env _visitors_c1 in ())
7798 env _visitors_c0
7801 method on_Shape env _visitors_c0 =
7802 let _visitors_r0 =
7803 self#on_list
7804 (fun env ->
7805 fun (_visitors_c0,_visitors_c1) ->
7806 let _visitors_r0 =
7807 self#on_shape_field_name env _visitors_c0 in
7808 let _visitors_r1 = self#on_expr env _visitors_c1 in ())
7809 env _visitors_c0
7812 method on_Collection env _visitors_c0 _visitors_c1 =
7813 let _visitors_r0 = self#on_id env _visitors_c0 in
7814 let _visitors_r1 = self#on_list self#on_afield env _visitors_c1 in
7816 method on_Null env = ()
7817 method on_True env = ()
7818 method on_False env = ()
7819 method on_Omitted env = ()
7820 method on_Id env _visitors_c0 =
7821 let _visitors_r0 = self#on_id env _visitors_c0 in ()
7822 method on_Id_type_arguments env _visitors_c0 _visitors_c1 =
7823 let _visitors_r0 = self#on_id env _visitors_c0 in
7824 let _visitors_r1 = self#on_list self#on_hint env _visitors_c1 in
7826 method on_Lvar env _visitors_c0 =
7827 let _visitors_r0 = self#on_id env _visitors_c0 in ()
7828 method on_Dollar env _visitors_c0 =
7829 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
7830 method on_Clone env _visitors_c0 =
7831 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
7832 method on_Obj_get env _visitors_c0 _visitors_c1 _visitors_c2 =
7833 let _visitors_r0 = self#on_expr env _visitors_c0 in
7834 let _visitors_r1 = self#on_expr env _visitors_c1 in
7835 let _visitors_r2 = self#on_og_null_flavor env _visitors_c2 in ()
7836 method on_Array_get env _visitors_c0 _visitors_c1 =
7837 let _visitors_r0 = self#on_expr env _visitors_c0 in
7838 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1 in
7840 method on_Class_get env _visitors_c0 _visitors_c1 =
7841 let _visitors_r0 = self#on_expr env _visitors_c0 in
7842 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
7843 method on_Class_const env _visitors_c0 _visitors_c1 =
7844 let _visitors_r0 = self#on_expr env _visitors_c0 in
7845 let _visitors_r1 = self#on_pstring env _visitors_c1 in ()
7846 method on_Call env _visitors_c0 _visitors_c1 _visitors_c2
7847 _visitors_c3 =
7848 let _visitors_r0 = self#on_expr env _visitors_c0 in
7849 let _visitors_r1 = self#on_list self#on_hint env _visitors_c1 in
7850 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2 in
7851 let _visitors_r3 = self#on_list self#on_expr env _visitors_c3 in
7853 method on_Int env _visitors_c0 =
7854 let _visitors_r0 = self#on_pstring env _visitors_c0 in ()
7855 method on_Float env _visitors_c0 =
7856 let _visitors_r0 = self#on_pstring env _visitors_c0 in ()
7857 method on_String env _visitors_c0 =
7858 let _visitors_r0 = self#on_pstring env _visitors_c0 in ()
7859 method on_String2 env _visitors_c0 =
7860 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
7862 method on_Yield env _visitors_c0 =
7863 let _visitors_r0 = self#on_afield env _visitors_c0 in ()
7864 method on_Yield_break env = ()
7865 method on_Yield_from env _visitors_c0 =
7866 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
7867 method on_Await env _visitors_c0 =
7868 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
7869 method on_Suspend env _visitors_c0 =
7870 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
7871 method on_List env _visitors_c0 =
7872 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
7874 method on_Expr_list env _visitors_c0 =
7875 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
7877 method on_Cast env _visitors_c0 _visitors_c1 =
7878 let _visitors_r0 = self#on_hint env _visitors_c0 in
7879 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
7880 method on_Unop env _visitors_c0 _visitors_c1 =
7881 let _visitors_r0 = self#on_uop env _visitors_c0 in
7882 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
7883 method on_Binop env _visitors_c0 _visitors_c1 _visitors_c2 =
7884 let _visitors_r0 = self#on_bop env _visitors_c0 in
7885 let _visitors_r1 = self#on_expr env _visitors_c1 in
7886 let _visitors_r2 = self#on_expr env _visitors_c2 in ()
7887 method on_Pipe env _visitors_c0 _visitors_c1 =
7888 let _visitors_r0 = self#on_expr env _visitors_c0 in
7889 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
7890 method on_Eif env _visitors_c0 _visitors_c1 _visitors_c2 =
7891 let _visitors_r0 = self#on_expr env _visitors_c0 in
7892 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1 in
7893 let _visitors_r2 = self#on_expr env _visitors_c2 in ()
7894 method on_NullCoalesce env _visitors_c0 _visitors_c1 =
7895 let _visitors_r0 = self#on_expr env _visitors_c0 in
7896 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
7897 method on_InstanceOf env _visitors_c0 _visitors_c1 =
7898 let _visitors_r0 = self#on_expr env _visitors_c0 in
7899 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
7900 method on_Is env _visitors_c0 _visitors_c1 =
7901 let _visitors_r0 = self#on_expr env _visitors_c0 in
7902 let _visitors_r1 = self#on_hint env _visitors_c1 in ()
7903 method on_BracedExpr env _visitors_c0 =
7904 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
7905 method on_ParenthesizedExpr env _visitors_c0 =
7906 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
7907 method on_New env _visitors_c0 _visitors_c1 _visitors_c2 =
7908 let _visitors_r0 = self#on_expr env _visitors_c0 in
7909 let _visitors_r1 = self#on_list self#on_expr env _visitors_c1 in
7910 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2 in
7912 method on_NewAnonClass env _visitors_c0 _visitors_c1 _visitors_c2 =
7913 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
7914 let _visitors_r1 = self#on_list self#on_expr env _visitors_c1 in
7915 let _visitors_r2 = self#on_class_ env _visitors_c2 in ()
7916 method on_Efun env _visitors_c0 _visitors_c1 =
7917 let _visitors_r0 = self#on_fun_ env _visitors_c0 in
7918 let _visitors_r1 =
7919 self#on_list
7920 (fun env ->
7921 fun (_visitors_c0,_visitors_c1) ->
7922 let _visitors_r0 = self#on_id env _visitors_c0 in
7923 let _visitors_r1 = self#on_bool env _visitors_c1 in ())
7924 env _visitors_c1
7927 method on_Lfun env _visitors_c0 =
7928 let _visitors_r0 = self#on_fun_ env _visitors_c0 in ()
7929 method on_Xml env _visitors_c0 _visitors_c1 _visitors_c2 =
7930 let _visitors_r0 = self#on_id env _visitors_c0 in
7931 let _visitors_r1 =
7932 self#on_list self#on_xhp_attribute env _visitors_c1 in
7933 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2 in
7935 method on_Unsafeexpr env _visitors_c0 =
7936 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
7937 method on_Import env _visitors_c0 _visitors_c1 =
7938 let _visitors_r0 = self#on_import_flavor env _visitors_c0 in
7939 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
7940 method on_Callconv env _visitors_c0 _visitors_c1 =
7941 let _visitors_r0 = self#on_param_kind env _visitors_c0 in
7942 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
7943 method on_Execution_operator env _visitors_c0 =
7944 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0 in
7946 method on_expr_ env _visitors_this =
7947 match _visitors_this with
7948 | Array _visitors_c0 -> self#on_Array env _visitors_c0
7949 | Varray _visitors_c0 -> self#on_Varray env _visitors_c0
7950 | Darray _visitors_c0 -> self#on_Darray env _visitors_c0
7951 | Shape _visitors_c0 -> self#on_Shape env _visitors_c0
7952 | Collection (_visitors_c0,_visitors_c1) ->
7953 self#on_Collection env _visitors_c0 _visitors_c1
7954 | Null -> self#on_Null env
7955 | True -> self#on_True env
7956 | False -> self#on_False env
7957 | Omitted -> self#on_Omitted env
7958 | Id _visitors_c0 -> self#on_Id env _visitors_c0
7959 | Id_type_arguments (_visitors_c0,_visitors_c1) ->
7960 self#on_Id_type_arguments env _visitors_c0 _visitors_c1
7961 | Lvar _visitors_c0 -> self#on_Lvar env _visitors_c0
7962 | Dollar _visitors_c0 -> self#on_Dollar env _visitors_c0
7963 | Clone _visitors_c0 -> self#on_Clone env _visitors_c0
7964 | Obj_get (_visitors_c0,_visitors_c1,_visitors_c2) ->
7965 self#on_Obj_get env _visitors_c0 _visitors_c1 _visitors_c2
7966 | Array_get (_visitors_c0,_visitors_c1) ->
7967 self#on_Array_get env _visitors_c0 _visitors_c1
7968 | Class_get (_visitors_c0,_visitors_c1) ->
7969 self#on_Class_get env _visitors_c0 _visitors_c1
7970 | Class_const (_visitors_c0,_visitors_c1) ->
7971 self#on_Class_const env _visitors_c0 _visitors_c1
7972 | Call (_visitors_c0,_visitors_c1,_visitors_c2,_visitors_c3) ->
7973 self#on_Call env _visitors_c0 _visitors_c1 _visitors_c2
7974 _visitors_c3
7975 | Int _visitors_c0 -> self#on_Int env _visitors_c0
7976 | Float _visitors_c0 -> self#on_Float env _visitors_c0
7977 | String _visitors_c0 -> self#on_String env _visitors_c0
7978 | String2 _visitors_c0 -> self#on_String2 env _visitors_c0
7979 | Yield _visitors_c0 -> self#on_Yield env _visitors_c0
7980 | Yield_break -> self#on_Yield_break env
7981 | Yield_from _visitors_c0 -> self#on_Yield_from env _visitors_c0
7982 | Await _visitors_c0 -> self#on_Await env _visitors_c0
7983 | Suspend _visitors_c0 -> self#on_Suspend env _visitors_c0
7984 | List _visitors_c0 -> self#on_List env _visitors_c0
7985 | Expr_list _visitors_c0 -> self#on_Expr_list env _visitors_c0
7986 | Cast (_visitors_c0,_visitors_c1) ->
7987 self#on_Cast env _visitors_c0 _visitors_c1
7988 | Unop (_visitors_c0,_visitors_c1) ->
7989 self#on_Unop env _visitors_c0 _visitors_c1
7990 | Binop (_visitors_c0,_visitors_c1,_visitors_c2) ->
7991 self#on_Binop env _visitors_c0 _visitors_c1 _visitors_c2
7992 | Pipe (_visitors_c0,_visitors_c1) ->
7993 self#on_Pipe env _visitors_c0 _visitors_c1
7994 | Eif (_visitors_c0,_visitors_c1,_visitors_c2) ->
7995 self#on_Eif env _visitors_c0 _visitors_c1 _visitors_c2
7996 | NullCoalesce (_visitors_c0,_visitors_c1) ->
7997 self#on_NullCoalesce env _visitors_c0 _visitors_c1
7998 | InstanceOf (_visitors_c0,_visitors_c1) ->
7999 self#on_InstanceOf env _visitors_c0 _visitors_c1
8000 | Is (_visitors_c0,_visitors_c1) ->
8001 self#on_Is env _visitors_c0 _visitors_c1
8002 | BracedExpr _visitors_c0 -> self#on_BracedExpr env _visitors_c0
8003 | ParenthesizedExpr _visitors_c0 ->
8004 self#on_ParenthesizedExpr env _visitors_c0
8005 | New (_visitors_c0,_visitors_c1,_visitors_c2) ->
8006 self#on_New env _visitors_c0 _visitors_c1 _visitors_c2
8007 | NewAnonClass (_visitors_c0,_visitors_c1,_visitors_c2) ->
8008 self#on_NewAnonClass env _visitors_c0 _visitors_c1 _visitors_c2
8009 | Efun (_visitors_c0,_visitors_c1) ->
8010 self#on_Efun env _visitors_c0 _visitors_c1
8011 | Lfun _visitors_c0 -> self#on_Lfun env _visitors_c0
8012 | Xml (_visitors_c0,_visitors_c1,_visitors_c2) ->
8013 self#on_Xml env _visitors_c0 _visitors_c1 _visitors_c2
8014 | Unsafeexpr _visitors_c0 -> self#on_Unsafeexpr env _visitors_c0
8015 | Import (_visitors_c0,_visitors_c1) ->
8016 self#on_Import env _visitors_c0 _visitors_c1
8017 | Callconv (_visitors_c0,_visitors_c1) ->
8018 self#on_Callconv env _visitors_c0 _visitors_c1
8019 | Execution_operator _visitors_c0 ->
8020 self#on_Execution_operator env _visitors_c0
8021 method on_Include env = ()
8022 method on_Require env = ()
8023 method on_IncludeOnce env = ()
8024 method on_RequireOnce env = ()
8025 method on_import_flavor env _visitors_this =
8026 match _visitors_this with
8027 | Include -> self#on_Include env
8028 | Require -> self#on_Require env
8029 | IncludeOnce -> self#on_IncludeOnce env
8030 | RequireOnce -> self#on_RequireOnce env
8031 method on_AFvalue env _visitors_c0 =
8032 let _visitors_r0 = self#on_expr env _visitors_c0 in ()
8033 method on_AFkvalue env _visitors_c0 _visitors_c1 =
8034 let _visitors_r0 = self#on_expr env _visitors_c0 in
8035 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
8036 method on_afield env _visitors_this =
8037 match _visitors_this with
8038 | AFvalue _visitors_c0 -> self#on_AFvalue env _visitors_c0
8039 | AFkvalue (_visitors_c0,_visitors_c1) ->
8040 self#on_AFkvalue env _visitors_c0 _visitors_c1
8041 method on_Default env _visitors_c0 =
8042 let _visitors_r0 = self#on_block env _visitors_c0 in ()
8043 method on_Case env _visitors_c0 _visitors_c1 =
8044 let _visitors_r0 = self#on_expr env _visitors_c0 in
8045 let _visitors_r1 = self#on_block env _visitors_c1 in ()
8046 method on_case env _visitors_this =
8047 match _visitors_this with
8048 | Default _visitors_c0 -> self#on_Default env _visitors_c0
8049 | Case (_visitors_c0,_visitors_c1) ->
8050 self#on_Case env _visitors_c0 _visitors_c1
8051 method on_catch env (_visitors_c0,_visitors_c1,_visitors_c2) =
8052 let _visitors_r0 = self#on_id env _visitors_c0 in
8053 let _visitors_r1 = self#on_id env _visitors_c1 in
8054 let _visitors_r2 = self#on_block env _visitors_c2 in ()
8055 method on_field env (_visitors_c0,_visitors_c1) =
8056 let _visitors_r0 = self#on_expr env _visitors_c0 in
8057 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
8058 method on_attr env (_visitors_c0,_visitors_c1) =
8059 let _visitors_r0 = self#on_id env _visitors_c0 in
8060 let _visitors_r1 = self#on_expr env _visitors_c1 in ()
8062 [@@@VISITORS.END ]
8064 type any =
8065 | AHint of hint
8066 | AExpr of expr
8067 | AStmt of stmt
8068 | ADef of def
8069 | AProgram of program