1 (* @generated from aast.src.ml by hphp/hack/tools/ppx/facebook:generate_ppx *)
2 (* Copyright (c) 2004-present, Facebook, Inc. All rights reserved. *)
3 (* SourceShasum<<8170dd46e27ca70e49a8774fd295aa4756bb454e>> *)
5 (* DO NOT EDIT MANUALLY. *)
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 "]
9 module type AnnotationType
=
10 sig type t
val pp
: Format.formatter
-> t
-> unit end
11 module type ASTAnnotationTypes
=
13 module ExprAnnotation
: AnnotationType
14 module EnvAnnotation
: AnnotationType
16 module AnnotatedAST
(Annotations
:ASTAnnotationTypes
) =
18 module ExprAnnotation
= Annotations.ExprAnnotation
19 module EnvAnnotation
= Annotations.EnvAnnotation
20 type program
= def list
[@@deriving
27 ancestors
= ["iter_defs"]
34 ancestors
= ["reduce_defs"]
41 ancestors
= ["map_defs"]
48 ancestors
= ["endo_defs"]
50 and expr_annotation
= ((ExprAnnotation.t
)[@visitors
.opaque
])
51 and env_annotation
= ((EnvAnnotation.t
)[@visitors
.opaque
])
57 | Throw
of is_terminal
* expr
58 | Return
of pos
* expr
option
59 | GotoLabel
of pstring
61 | Static_var
of expr list
62 | Global_var
of expr list
63 | If
of expr
* block
* block
65 | While
of expr
* block
66 | Using
of bool * expr
* block
67 | For
of expr
* expr
* expr
* block
68 | Switch
of expr
* case list
69 | Foreach
of expr
* as_expr
* block
70 | Try
of block
* catch list
* block
74 | As_kv
of expr
* expr
75 | Await_as_v
of pos
* expr
76 | Await_as_kv
of pos
* expr
* expr
83 | CI
of instantiated_sid
84 and expr
= (expr_annotation
* expr_
)
86 | Array
of afield list
87 | Darray
of (expr
* expr
) list
89 | Shape
of expr shape_map
90 | ValCollection
of vc_kind
* expr list
91 | KeyValCollection
of kvc_kind
* field list
101 | Obj_get
of expr
* expr
* og_null_flavor
102 | Array_get
of expr
* expr
option
103 | Class_get
of class_id
* pstring
104 | Class_const
of class_id
* pstring
105 | Call
of call_type
* expr
* hint list
* expr list
* expr list
109 | String2
of expr list
115 | Expr_list
of expr list
116 | Cast
of hint
* expr
117 | Unop
of Ast.uop
* expr
118 | Binop
of Ast.bop
* expr
* expr
120 " The ID of the $$ that is implicitly declared by this pipe. "]
121 | Pipe
of lid
* expr
* expr
122 | Eif
of expr
* expr
option * expr
123 | NullCoalesce
of expr
* expr
124 | InstanceOf
of expr
* class_id
126 | New
of class_id
* expr list
* expr list
127 | Efun
of fun_
* lid list
128 | Xml
of sid
* xhp_attribute list
* expr list
129 | Callconv
of Ast.param_kind
* expr
130 | Lplaceholder
of pos
132 | Method_id
of expr
* pstring
133 | Method_caller
of sid
* pstring
134 | Smethod_id
of sid
* pstring
135 | Special_func
of special_func
136 | Pair
of expr
* expr
137 | Assert
of assert_expr
144 | Case
of expr
* block
145 and catch
= (sid
* lid
* block
)
146 and field
= (expr
* expr
)
149 | AFkvalue
of expr
* expr
151 | Xhp_simple
of pstring
* expr
156 | Gen_array_rec
of expr
157 and is_reference
= bool
158 and is_variadic
= bool
161 param_hint
: hint
option ;
162 param_is_reference
: is_reference
;
163 param_is_variadic
: is_variadic
;
166 param_expr
: expr
option ;
167 param_callconv
: Ast.param_kind
option ;
168 param_user_attributes
: user_attribute list
}
169 and fun_variadicity
=
170 | FVvariadicArg
of fun_param
175 f_annotation
: env_annotation
;
176 f_mode
: FileInfo.mode
[@opaque
];
179 f_tparams
: tparam list
;
180 f_where_constraints
: where_constraint list
;
181 f_variadic
: fun_variadicity
;
182 f_params
: fun_param list
;
184 f_fun_kind
: Ast.fun_kind
;
185 f_user_attributes
: user_attribute list
;
188 | UnnamedBody
of func_unnamed_body
189 | NamedBody
of func_named_body
190 and func_unnamed_body
=
192 fub_ast
: Ast.block
[@opaque
];
193 fub_tparams
: Ast.tparam list
[@opaque
];
194 fub_namespace
: Namespace_env.env
[@opaque
]}
195 and func_named_body
= {
198 and user_attribute
= {
200 ua_params
: expr list
}
203 c_annotation
: env_annotation
;
204 c_mode
: FileInfo.mode
[@opaque
];
207 c_kind
: Ast.class_kind
;
209 c_tparams
: (tparam list
* (Ast.constraint_kind
* Ast.hint
) list
SMap.t
)
211 c_extends
: hint list
;
213 c_xhp_attr_uses
: hint list
;
214 c_xhp_category
: pstring list
;
215 c_req_extends
: hint list
;
216 c_req_implements
: hint list
;
217 c_implements
: hint list
;
218 c_consts
: class_const list
;
219 c_typeconsts
: class_typeconst list
;
220 c_static_vars
: class_var list
;
221 c_vars
: class_var list
;
222 c_constructor
: method_
option ;
223 c_static_methods
: method_ list
;
224 c_methods
: method_ list
;
225 c_user_attributes
: user_attribute list
;
226 c_enum
: enum_
option }
227 and class_const
= (hint
option * sid
* expr
option)
228 and class_typeconst
=
231 c_tconst_constraint
: hint
option ;
232 c_tconst_type
: hint
option }
237 cv_visibility
: visibility
;
238 cv_type
: hint
option ;
240 cv_expr
: expr
option ;
241 cv_user_attributes
: user_attribute list
}
244 m_annotation
: env_annotation
;
247 m_visibility
: visibility
;
249 m_tparams
: tparam list
;
250 m_where_constraints
: where_constraint list
;
251 m_variadic
: fun_variadicity
;
252 m_params
: fun_param list
;
254 m_fun_kind
: Ast.fun_kind
;
255 m_user_attributes
: user_attribute list
;
260 t_annotation
: env_annotation
;
262 t_tparams
: tparam list
;
263 t_constraint
: hint
option ;
265 t_user_attributes
: user_attribute list
;
266 t_mode
: FileInfo.mode
[@opaque
];
267 t_vis
: typedef_visibility
}
270 cst_annotation
: env_annotation
;
271 cst_mode
: FileInfo.mode
[@opaque
];
273 cst_type
: hint
option ;
274 cst_value
: expr
option ;
275 cst_is_define
: bool }
282 Format.formatter
-> program
-> Ppx_deriving_runtime.unit =
283 let __0 () = pp_def
in
284 ((let open! Ppx_deriving_runtime
in
287 Format.fprintf fmt
"@[<2>[";
292 if sep
then Format.fprintf fmt
";@ ";
295 Format.fprintf fmt
"@,]@]")
296 [@ocaml
.warning
"-A"])
298 and show_program
: program
-> Ppx_deriving_runtime.string =
299 fun x
-> Format.asprintf
"%a" pp_program x
301 and pp_expr_annotation
:
302 Format.formatter
-> expr_annotation
-> Ppx_deriving_runtime.unit =
303 let __0 () = ExprAnnotation.pp
in
304 ((let open! Ppx_deriving_runtime
in fun fmt
-> (__0 ()) fmt
)
305 [@ocaml
.warning
"-A"])
307 and show_expr_annotation
: expr_annotation
-> Ppx_deriving_runtime.string
308 = fun x
-> Format.asprintf
"%a" pp_expr_annotation x
310 and pp_env_annotation
:
311 Format.formatter
-> env_annotation
-> Ppx_deriving_runtime.unit =
312 let __0 () = EnvAnnotation.pp
in
313 ((let open! Ppx_deriving_runtime
in fun fmt
-> (__0 ()) fmt
)
314 [@ocaml
.warning
"-A"])
316 and show_env_annotation
: env_annotation
-> Ppx_deriving_runtime.string =
317 fun x
-> Format.asprintf
"%a" pp_env_annotation x
319 and pp_stmt
: Format.formatter
-> stmt
-> Ppx_deriving_runtime.unit =
320 let __31 () = pp_block
322 and __30
() = pp_catch
324 and __29
() = pp_block
326 and __28
() = pp_block
328 and __27
() = pp_as_expr
330 and __26
() = pp_expr
332 and __25
() = pp_case
334 and __24
() = pp_expr
336 and __23
() = pp_block
338 and __22
() = pp_expr
340 and __21
() = pp_expr
342 and __20
() = pp_expr
344 and __19
() = pp_block
346 and __18
() = pp_expr
348 and __17
() = pp_block
350 and __16
() = pp_expr
352 and __15
() = pp_expr
354 and __14
() = pp_block
356 and __13
() = pp_block
358 and __12
() = pp_block
360 and __11
() = pp_expr
362 and __10
() = pp_expr
366 and __8
() = pp_pstring
368 and __7
() = pp_pstring
376 and __3
() = pp_is_terminal
384 ((let open! Ppx_deriving_runtime
in
388 Format.pp_print_string fmt
"AnnotatedAST.Fallthrough"
390 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Expr@ ";
392 Format.fprintf fmt
"@])")
394 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Break@ ";
396 Format.fprintf fmt
"@])")
398 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Continue@ ";
400 Format.fprintf fmt
"@])")
402 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Throw (@,";
404 Format.fprintf fmt
",@ ";
406 Format.fprintf fmt
"@,))@]")
408 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Return (@,";
410 Format.fprintf fmt
",@ ";
412 | None
-> Format.pp_print_string fmt
"None"
414 (Format.pp_print_string fmt
"(Some ";
416 Format.pp_print_string fmt
")"))) a1
);
417 Format.fprintf fmt
"@,))@]")
419 (Format.fprintf fmt
"(@[<2>AnnotatedAST.GotoLabel@ ";
421 Format.fprintf fmt
"@])")
423 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Goto@ ";
425 Format.fprintf fmt
"@])")
427 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Static_var@ ";
429 Format.fprintf fmt
"@[<2>[";
434 if sep
then Format.fprintf fmt
";@ ";
437 Format.fprintf fmt
"@,]@]")) a0
;
438 Format.fprintf fmt
"@])")
440 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Global_var@ ";
442 Format.fprintf fmt
"@[<2>[";
447 if sep
then Format.fprintf fmt
";@ ";
450 Format.fprintf fmt
"@,]@]")) a0
;
451 Format.fprintf fmt
"@])")
453 (Format.fprintf fmt
"(@[<2>AnnotatedAST.If (@,";
454 ((((__11
()) fmt
) a0
;
455 Format.fprintf fmt
",@ ";
457 Format.fprintf fmt
",@ ";
459 Format.fprintf fmt
"@,))@]")
461 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Do (@,";
463 Format.fprintf fmt
",@ ";
465 Format.fprintf fmt
"@,))@]")
467 (Format.fprintf fmt
"(@[<2>AnnotatedAST.While (@,";
469 Format.fprintf fmt
",@ ";
471 Format.fprintf fmt
"@,))@]")
472 | Using
(a0
,a1
,a2
) ->
473 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Using (@,";
474 (((Format.fprintf fmt
"%B") a0
;
475 Format.fprintf fmt
",@ ";
477 Format.fprintf fmt
",@ ";
479 Format.fprintf fmt
"@,))@]")
480 | For
(a0
,a1
,a2
,a3
) ->
481 (Format.fprintf fmt
"(@[<2>AnnotatedAST.For (@,";
482 (((((__20
()) fmt
) a0
;
483 Format.fprintf fmt
",@ ";
485 Format.fprintf fmt
",@ ";
487 Format.fprintf fmt
",@ ";
489 Format.fprintf fmt
"@,))@]")
491 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Switch (@,";
493 Format.fprintf fmt
",@ ";
495 Format.fprintf fmt
"@[<2>[";
500 if sep
then Format.fprintf fmt
";@ ";
503 Format.fprintf fmt
"@,]@]")) a1
);
504 Format.fprintf fmt
"@,))@]")
505 | Foreach
(a0
,a1
,a2
) ->
506 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Foreach (@,";
507 ((((__26
()) fmt
) a0
;
508 Format.fprintf fmt
",@ ";
510 Format.fprintf fmt
",@ ";
512 Format.fprintf fmt
"@,))@]")
514 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Try (@,";
515 ((((__29
()) fmt
) a0
;
516 Format.fprintf fmt
",@ ";
518 Format.fprintf fmt
"@[<2>[";
523 if sep
then Format.fprintf fmt
";@ ";
526 Format.fprintf fmt
"@,]@]")) a1
);
527 Format.fprintf fmt
",@ ";
529 Format.fprintf fmt
"@,))@]")
530 | Noop
-> Format.pp_print_string fmt
"AnnotatedAST.Noop")
531 [@ocaml
.warning
"-A"])
533 and show_stmt
: stmt
-> Ppx_deriving_runtime.string =
534 fun x
-> Format.asprintf
"%a" pp_stmt x
536 and pp_as_expr
: Format.formatter
-> as_expr
-> Ppx_deriving_runtime.unit
554 ((let open! Ppx_deriving_runtime
in
558 (Format.fprintf fmt
"(@[<2>AnnotatedAST.As_v@ ";
560 Format.fprintf fmt
"@])")
562 (Format.fprintf fmt
"(@[<2>AnnotatedAST.As_kv (@,";
564 Format.fprintf fmt
",@ ";
566 Format.fprintf fmt
"@,))@]")
567 | Await_as_v
(a0
,a1
) ->
568 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Await_as_v (@,";
570 Format.fprintf fmt
",@ ";
572 Format.fprintf fmt
"@,))@]")
573 | Await_as_kv
(a0
,a1
,a2
) ->
574 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Await_as_kv (@,";
576 Format.fprintf fmt
",@ ";
578 Format.fprintf fmt
",@ ";
580 Format.fprintf fmt
"@,))@]"))
581 [@ocaml
.warning
"-A"])
583 and show_as_expr
: as_expr
-> Ppx_deriving_runtime.string =
584 fun x
-> Format.asprintf
"%a" pp_as_expr x
586 and pp_block
: Format.formatter
-> block
-> Ppx_deriving_runtime.unit =
587 let __0 () = pp_stmt
in
588 ((let open! Ppx_deriving_runtime
in
591 Format.fprintf fmt
"@[<2>[";
596 if sep
then Format.fprintf fmt
";@ ";
599 Format.fprintf fmt
"@,]@]")
600 [@ocaml
.warning
"-A"])
602 and show_block
: block
-> Ppx_deriving_runtime.string =
603 fun x
-> Format.asprintf
"%a" pp_block x
606 Format.formatter
-> class_id
-> Ppx_deriving_runtime.unit =
607 let __1 () = pp_instantiated_sid
611 ((let open! Ppx_deriving_runtime
in
614 | CIparent
-> Format.pp_print_string fmt
"AnnotatedAST.CIparent"
615 | CIself
-> Format.pp_print_string fmt
"AnnotatedAST.CIself"
616 | CIstatic
-> Format.pp_print_string fmt
"AnnotatedAST.CIstatic"
618 (Format.fprintf fmt
"(@[<2>AnnotatedAST.CIexpr@ ";
620 Format.fprintf fmt
"@])")
622 (Format.fprintf fmt
"(@[<2>AnnotatedAST.CI@ ";
624 Format.fprintf fmt
"@])"))
625 [@ocaml
.warning
"-A"])
627 and show_class_id
: class_id
-> Ppx_deriving_runtime.string =
628 fun x
-> Format.asprintf
"%a" pp_class_id x
630 and pp_expr
: Format.formatter
-> expr
-> Ppx_deriving_runtime.unit =
631 let __1 () = pp_expr_
633 and __0 () = pp_expr_annotation
635 ((let open! Ppx_deriving_runtime
in
638 Format.fprintf fmt
"(@[";
639 (((__0 ()) fmt
) a0
; Format.fprintf fmt
",@ "; ((__1 ()) fmt
) a1
);
640 Format.fprintf fmt
"@])")
641 [@ocaml
.warning
"-A"])
643 and show_expr
: expr
-> Ppx_deriving_runtime.string =
644 fun x
-> Format.asprintf
"%a" pp_expr x
646 and pp_expr_
: Format.formatter
-> expr_
-> Ppx_deriving_runtime.unit =
649 and __78
() = pp_assert_expr
651 and __77
() = pp_expr
653 and __76
() = pp_expr
655 and __75
() = pp_special_func
657 and __74
() = pp_pstring
661 and __72
() = pp_pstring
665 and __70
() = pp_pstring
667 and __69
() = pp_expr
673 and __66
() = pp_expr
675 and __65
() = Ast.pp_param_kind
677 and __64
() = pp_expr
679 and __63
() = pp_xhp_attribute
685 and __60
() = pp_fun_
687 and __59
() = pp_expr
689 and __58
() = pp_expr
691 and __57
() = pp_class_id
693 and __56
() = pp_hint
695 and __55
() = pp_expr
697 and __54
() = pp_class_id
699 and __53
() = pp_expr
701 and __52
() = pp_expr
703 and __51
() = pp_expr
705 and __50
() = pp_expr
707 and __49
() = pp_expr
709 and __48
() = pp_expr
711 and __47
() = pp_expr
713 and __46
() = pp_expr
717 and __44
() = pp_expr
719 and __43
() = pp_expr
721 and __42
() = Ast.pp_bop
723 and __41
() = pp_expr
725 and __40
() = Ast.pp_uop
727 and __39
() = pp_expr
729 and __38
() = pp_hint
731 and __37
() = pp_expr
733 and __36
() = pp_expr
735 and __35
() = pp_expr
737 and __34
() = pp_expr
739 and __33
() = pp_afield
741 and __32
() = pp_expr
743 and __31 () = pp_pstring
745 and __30
() = pp_pstring
747 and __29
() = pp_pstring
749 and __28
() = pp_expr
751 and __27
() = pp_expr
753 and __26
() = pp_hint
755 and __25
() = pp_expr
757 and __24
() = pp_call_type
759 and __23
() = pp_pstring
761 and __22
() = pp_class_id
763 and __21
() = pp_pstring
765 and __20
() = pp_class_id
767 and __19
() = pp_expr
769 and __18
() = pp_expr
771 and __17
() = pp_og_null_flavor
773 and __16
() = pp_expr
775 and __15
() = pp_expr
777 and __14
() = pp_expr
781 and __12
() = pp_expr
787 and __9
() = pp_field
789 and __8
() = pp_kvc_kind
793 and __6
() = pp_vc_kind
795 and __5
() = pp_shape_map
805 and __0 () = pp_afield
807 ((let open! Ppx_deriving_runtime
in
811 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Array@ ";
813 Format.fprintf fmt
"@[<2>[";
818 if sep
then Format.fprintf fmt
";@ ";
821 Format.fprintf fmt
"@,]@]")) a0
;
822 Format.fprintf fmt
"@])")
824 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Darray@ ";
826 Format.fprintf fmt
"@[<2>[";
831 if sep
then Format.fprintf fmt
";@ ";
833 Format.fprintf fmt
"(@[";
835 Format.fprintf fmt
",@ ";
837 Format.fprintf fmt
"@])")) x
;
839 Format.fprintf fmt
"@,]@]")) a0
;
840 Format.fprintf fmt
"@])")
842 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Varray@ ";
844 Format.fprintf fmt
"@[<2>[";
849 if sep
then Format.fprintf fmt
";@ ";
852 Format.fprintf fmt
"@,]@]")) a0
;
853 Format.fprintf fmt
"@])")
855 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Shape@ ";
856 ((__5
()) (fun fmt
-> (__4
()) fmt
) fmt
) a0
;
857 Format.fprintf fmt
"@])")
858 | ValCollection
(a0
,a1
) ->
859 (Format.fprintf fmt
"(@[<2>AnnotatedAST.ValCollection (@,";
861 Format.fprintf fmt
",@ ";
863 Format.fprintf fmt
"@[<2>[";
868 if sep
then Format.fprintf fmt
";@ ";
871 Format.fprintf fmt
"@,]@]")) a1
);
872 Format.fprintf fmt
"@,))@]")
873 | KeyValCollection
(a0
,a1
) ->
874 (Format.fprintf fmt
"(@[<2>AnnotatedAST.KeyValCollection (@,";
876 Format.fprintf fmt
",@ ";
878 Format.fprintf fmt
"@[<2>[";
883 if sep
then Format.fprintf fmt
";@ ";
886 Format.fprintf fmt
"@,]@]")) a1
);
887 Format.fprintf fmt
"@,))@]")
888 | Null
-> Format.pp_print_string fmt
"AnnotatedAST.Null"
889 | This
-> Format.pp_print_string fmt
"AnnotatedAST.This"
890 | True
-> Format.pp_print_string fmt
"AnnotatedAST.True"
891 | False
-> Format.pp_print_string fmt
"AnnotatedAST.False"
893 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Id@ ";
895 Format.fprintf fmt
"@])")
897 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Lvar@ ";
899 Format.fprintf fmt
"@])")
901 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Dollar@ ";
903 Format.fprintf fmt
"@])")
905 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Dollardollar@ ";
907 Format.fprintf fmt
"@])")
909 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Clone@ ";
911 Format.fprintf fmt
"@])")
912 | Obj_get
(a0
,a1
,a2
) ->
913 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Obj_get (@,";
914 ((((__15
()) fmt
) a0
;
915 Format.fprintf fmt
",@ ";
917 Format.fprintf fmt
",@ ";
919 Format.fprintf fmt
"@,))@]")
920 | Array_get
(a0
,a1
) ->
921 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Array_get (@,";
923 Format.fprintf fmt
",@ ";
925 | None
-> Format.pp_print_string fmt
"None"
927 (Format.pp_print_string fmt
"(Some ";
929 Format.pp_print_string fmt
")"))) a1
);
930 Format.fprintf fmt
"@,))@]")
931 | Class_get
(a0
,a1
) ->
932 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Class_get (@,";
934 Format.fprintf fmt
",@ ";
936 Format.fprintf fmt
"@,))@]")
937 | Class_const
(a0
,a1
) ->
938 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Class_const (@,";
940 Format.fprintf fmt
",@ ";
942 Format.fprintf fmt
"@,))@]")
943 | Call
(a0
,a1
,a2
,a3
,a4
) ->
944 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Call (@,";
945 ((((((__24
()) fmt
) a0
;
946 Format.fprintf fmt
",@ ";
948 Format.fprintf fmt
",@ ";
950 Format.fprintf fmt
"@[<2>[";
955 if sep
then Format.fprintf fmt
";@ ";
958 Format.fprintf fmt
"@,]@]")) a2
);
959 Format.fprintf fmt
",@ ";
961 Format.fprintf fmt
"@[<2>[";
966 if sep
then Format.fprintf fmt
";@ ";
969 Format.fprintf fmt
"@,]@]")) a3
);
970 Format.fprintf fmt
",@ ";
972 Format.fprintf fmt
"@[<2>[";
977 if sep
then Format.fprintf fmt
";@ ";
980 Format.fprintf fmt
"@,]@]")) a4
);
981 Format.fprintf fmt
"@,))@]")
983 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Int@ ";
985 Format.fprintf fmt
"@])")
987 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Float@ ";
989 Format.fprintf fmt
"@])")
991 (Format.fprintf fmt
"(@[<2>AnnotatedAST.String@ ";
993 Format.fprintf fmt
"@])")
995 (Format.fprintf fmt
"(@[<2>AnnotatedAST.String2@ ";
997 Format.fprintf fmt
"@[<2>[";
1002 if sep
then Format.fprintf fmt
";@ ";
1005 Format.fprintf fmt
"@,]@]")) a0
;
1006 Format.fprintf fmt
"@])")
1008 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Yield@ ";
1010 Format.fprintf fmt
"@])")
1012 Format.pp_print_string fmt
"AnnotatedAST.Yield_break"
1014 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Await@ ";
1016 Format.fprintf fmt
"@])")
1018 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Suspend@ ";
1020 Format.fprintf fmt
"@])")
1022 (Format.fprintf fmt
"(@[<2>AnnotatedAST.List@ ";
1024 Format.fprintf fmt
"@[<2>[";
1029 if sep
then Format.fprintf fmt
";@ ";
1032 Format.fprintf fmt
"@,]@]")) a0
;
1033 Format.fprintf fmt
"@])")
1035 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Expr_list@ ";
1037 Format.fprintf fmt
"@[<2>[";
1042 if sep
then Format.fprintf fmt
";@ ";
1045 Format.fprintf fmt
"@,]@]")) a0
;
1046 Format.fprintf fmt
"@])")
1048 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Cast (@,";
1049 (((__38
()) fmt
) a0
;
1050 Format.fprintf fmt
",@ ";
1051 ((__39
()) fmt
) a1
);
1052 Format.fprintf fmt
"@,))@]")
1054 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Unop (@,";
1055 (((__40
()) fmt
) a0
;
1056 Format.fprintf fmt
",@ ";
1057 ((__41
()) fmt
) a1
);
1058 Format.fprintf fmt
"@,))@]")
1059 | Binop
(a0
,a1
,a2
) ->
1060 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Binop (@,";
1061 ((((__42
()) fmt
) a0
;
1062 Format.fprintf fmt
",@ ";
1063 ((__43
()) fmt
) a1
);
1064 Format.fprintf fmt
",@ ";
1065 ((__44
()) fmt
) a2
);
1066 Format.fprintf fmt
"@,))@]")
1067 | Pipe
(a0
,a1
,a2
) ->
1068 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Pipe (@,";
1069 ((((__45
()) fmt
) a0
;
1070 Format.fprintf fmt
",@ ";
1071 ((__46
()) fmt
) a1
);
1072 Format.fprintf fmt
",@ ";
1073 ((__47
()) fmt
) a2
);
1074 Format.fprintf fmt
"@,))@]")
1076 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Eif (@,";
1077 ((((__48
()) fmt
) a0
;
1078 Format.fprintf fmt
",@ ";
1080 | None
-> Format.pp_print_string fmt
"None"
1082 (Format.pp_print_string fmt
"(Some ";
1084 Format.pp_print_string fmt
")"))) a1
);
1085 Format.fprintf fmt
",@ ";
1086 ((__50
()) fmt
) a2
);
1087 Format.fprintf fmt
"@,))@]")
1088 | NullCoalesce
(a0
,a1
) ->
1089 (Format.fprintf fmt
"(@[<2>AnnotatedAST.NullCoalesce (@,";
1090 (((__51
()) fmt
) a0
;
1091 Format.fprintf fmt
",@ ";
1092 ((__52
()) fmt
) a1
);
1093 Format.fprintf fmt
"@,))@]")
1094 | InstanceOf
(a0
,a1
) ->
1095 (Format.fprintf fmt
"(@[<2>AnnotatedAST.InstanceOf (@,";
1096 (((__53
()) fmt
) a0
;
1097 Format.fprintf fmt
",@ ";
1098 ((__54
()) fmt
) a1
);
1099 Format.fprintf fmt
"@,))@]")
1101 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Is (@,";
1102 (((__55
()) fmt
) a0
;
1103 Format.fprintf fmt
",@ ";
1104 ((__56
()) fmt
) a1
);
1105 Format.fprintf fmt
"@,))@]")
1107 (Format.fprintf fmt
"(@[<2>AnnotatedAST.New (@,";
1108 ((((__57
()) fmt
) a0
;
1109 Format.fprintf fmt
",@ ";
1111 Format.fprintf fmt
"@[<2>[";
1116 if sep
then Format.fprintf fmt
";@ ";
1119 Format.fprintf fmt
"@,]@]")) a1
);
1120 Format.fprintf fmt
",@ ";
1122 Format.fprintf fmt
"@[<2>[";
1127 if sep
then Format.fprintf fmt
";@ ";
1130 Format.fprintf fmt
"@,]@]")) a2
);
1131 Format.fprintf fmt
"@,))@]")
1133 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Efun (@,";
1134 (((__60
()) fmt
) a0
;
1135 Format.fprintf fmt
",@ ";
1137 Format.fprintf fmt
"@[<2>[";
1142 if sep
then Format.fprintf fmt
";@ ";
1145 Format.fprintf fmt
"@,]@]")) a1
);
1146 Format.fprintf fmt
"@,))@]")
1148 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Xml (@,";
1149 ((((__62
()) fmt
) a0
;
1150 Format.fprintf fmt
",@ ";
1152 Format.fprintf fmt
"@[<2>[";
1157 if sep
then Format.fprintf fmt
";@ ";
1160 Format.fprintf fmt
"@,]@]")) a1
);
1161 Format.fprintf fmt
",@ ";
1163 Format.fprintf fmt
"@[<2>[";
1168 if sep
then Format.fprintf fmt
";@ ";
1171 Format.fprintf fmt
"@,]@]")) a2
);
1172 Format.fprintf fmt
"@,))@]")
1173 | Callconv
(a0
,a1
) ->
1174 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Callconv (@,";
1175 (((__65
()) fmt
) a0
;
1176 Format.fprintf fmt
",@ ";
1177 ((__66
()) fmt
) a1
);
1178 Format.fprintf fmt
"@,))@]")
1179 | Lplaceholder a0
->
1180 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Lplaceholder@ ";
1182 Format.fprintf fmt
"@])")
1184 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Fun_id@ ";
1186 Format.fprintf fmt
"@])")
1187 | Method_id
(a0
,a1
) ->
1188 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Method_id (@,";
1189 (((__69
()) fmt
) a0
;
1190 Format.fprintf fmt
",@ ";
1191 ((__70
()) fmt
) a1
);
1192 Format.fprintf fmt
"@,))@]")
1193 | Method_caller
(a0
,a1
) ->
1194 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Method_caller (@,";
1195 (((__71
()) fmt
) a0
;
1196 Format.fprintf fmt
",@ ";
1197 ((__72
()) fmt
) a1
);
1198 Format.fprintf fmt
"@,))@]")
1199 | Smethod_id
(a0
,a1
) ->
1200 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Smethod_id (@,";
1201 (((__73
()) fmt
) a0
;
1202 Format.fprintf fmt
",@ ";
1203 ((__74
()) fmt
) a1
);
1204 Format.fprintf fmt
"@,))@]")
1205 | Special_func a0
->
1206 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Special_func@ ";
1208 Format.fprintf fmt
"@])")
1210 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Pair (@,";
1211 (((__76
()) fmt
) a0
;
1212 Format.fprintf fmt
",@ ";
1213 ((__77
()) fmt
) a1
);
1214 Format.fprintf fmt
"@,))@]")
1216 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Assert@ ";
1218 Format.fprintf fmt
"@])")
1220 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Typename@ ";
1222 Format.fprintf fmt
"@])")
1223 | Any
-> Format.pp_print_string fmt
"AnnotatedAST.Any")
1224 [@ocaml
.warning
"-A"])
1226 and show_expr_
: expr_
-> Ppx_deriving_runtime.string =
1227 fun x
-> Format.asprintf
"%a" pp_expr_ x
1229 and pp_assert_expr
:
1230 Format.formatter
-> assert_expr
-> Ppx_deriving_runtime.unit =
1231 let __0 () = pp_expr
in
1232 ((let open! Ppx_deriving_runtime
in
1236 (Format.fprintf fmt
"(@[<2>AnnotatedAST.AE_assert@ ";
1238 Format.fprintf fmt
"@])"))
1239 [@ocaml
.warning
"-A"])
1241 and show_assert_expr
: assert_expr
-> Ppx_deriving_runtime.string =
1242 fun x
-> Format.asprintf
"%a" pp_assert_expr x
1244 and pp_case
: Format.formatter
-> case
-> Ppx_deriving_runtime.unit =
1245 let __2 () = pp_block
1247 and __1 () = pp_expr
1249 and __0 () = pp_block
1251 ((let open! Ppx_deriving_runtime
in
1255 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Default@ ";
1257 Format.fprintf fmt
"@])")
1259 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Case (@,";
1261 Format.fprintf fmt
",@ ";
1263 Format.fprintf fmt
"@,))@]"))
1264 [@ocaml
.warning
"-A"])
1266 and show_case
: case
-> Ppx_deriving_runtime.string =
1267 fun x
-> Format.asprintf
"%a" pp_case x
1269 and pp_catch
: Format.formatter
-> catch
-> Ppx_deriving_runtime.unit =
1270 let __2 () = pp_block
1276 ((let open! Ppx_deriving_runtime
in
1279 Format.fprintf fmt
"(@[";
1280 ((((__0 ()) fmt
) a0
;
1281 Format.fprintf fmt
",@ ";
1283 Format.fprintf fmt
",@ ";
1285 Format.fprintf fmt
"@])")
1286 [@ocaml
.warning
"-A"])
1288 and show_catch
: catch
-> Ppx_deriving_runtime.string =
1289 fun x
-> Format.asprintf
"%a" pp_catch x
1291 and pp_field
: Format.formatter
-> field
-> Ppx_deriving_runtime.unit =
1292 let __1 () = pp_expr
1294 and __0 () = pp_expr
1296 ((let open! Ppx_deriving_runtime
in
1299 Format.fprintf fmt
"(@[";
1300 (((__0 ()) fmt
) a0
; Format.fprintf fmt
",@ "; ((__1 ()) fmt
) a1
);
1301 Format.fprintf fmt
"@])")
1302 [@ocaml
.warning
"-A"])
1304 and show_field
: field
-> Ppx_deriving_runtime.string =
1305 fun x
-> Format.asprintf
"%a" pp_field x
1307 and pp_afield
: Format.formatter
-> afield
-> Ppx_deriving_runtime.unit =
1308 let __2 () = pp_expr
1310 and __1 () = pp_expr
1312 and __0 () = pp_expr
1314 ((let open! Ppx_deriving_runtime
in
1318 (Format.fprintf fmt
"(@[<2>AnnotatedAST.AFvalue@ ";
1320 Format.fprintf fmt
"@])")
1321 | AFkvalue
(a0
,a1
) ->
1322 (Format.fprintf fmt
"(@[<2>AnnotatedAST.AFkvalue (@,";
1324 Format.fprintf fmt
",@ ";
1326 Format.fprintf fmt
"@,))@]"))
1327 [@ocaml
.warning
"-A"])
1329 and show_afield
: afield
-> Ppx_deriving_runtime.string =
1330 fun x
-> Format.asprintf
"%a" pp_afield x
1332 and pp_xhp_attribute
:
1333 Format.formatter
-> xhp_attribute
-> Ppx_deriving_runtime.unit =
1334 let __2 () = pp_expr
1336 and __1 () = pp_expr
1338 and __0 () = pp_pstring
1340 ((let open! Ppx_deriving_runtime
in
1343 | Xhp_simple
(a0
,a1
) ->
1344 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Xhp_simple (@,";
1346 Format.fprintf fmt
",@ ";
1348 Format.fprintf fmt
"@,))@]")
1350 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Xhp_spread@ ";
1352 Format.fprintf fmt
"@])"))
1353 [@ocaml
.warning
"-A"])
1355 and show_xhp_attribute
: xhp_attribute
-> Ppx_deriving_runtime.string =
1356 fun x
-> Format.asprintf
"%a" pp_xhp_attribute x
1358 and pp_special_func
:
1359 Format.formatter
-> special_func
-> Ppx_deriving_runtime.unit =
1360 let __2 () = pp_expr
1362 and __1 () = pp_expr
1364 and __0 () = pp_expr
1366 ((let open! Ppx_deriving_runtime
in
1370 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Gena@ ";
1372 Format.fprintf fmt
"@])")
1374 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Genva@ ";
1376 Format.fprintf fmt
"@[<2>[";
1381 if sep
then Format.fprintf fmt
";@ ";
1384 Format.fprintf fmt
"@,]@]")) a0
;
1385 Format.fprintf fmt
"@])")
1386 | Gen_array_rec a0
->
1387 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Gen_array_rec@ ";
1389 Format.fprintf fmt
"@])"))
1390 [@ocaml
.warning
"-A"])
1392 and show_special_func
: special_func
-> Ppx_deriving_runtime.string =
1393 fun x
-> Format.asprintf
"%a" pp_special_func x
1395 and (pp_is_reference
:
1396 Format.formatter
-> is_reference
-> Ppx_deriving_runtime.unit)
1398 ((let open! Ppx_deriving_runtime
in fun fmt
-> Format.fprintf fmt
"%B")
1399 [@ocaml
.warning
"-A"])
1401 and show_is_reference
: is_reference
-> Ppx_deriving_runtime.string =
1402 fun x
-> Format.asprintf
"%a" pp_is_reference x
1404 and (pp_is_variadic
:
1405 Format.formatter
-> is_variadic
-> Ppx_deriving_runtime.unit)
1407 ((let open! Ppx_deriving_runtime
in fun fmt
-> Format.fprintf fmt
"%B")
1408 [@ocaml
.warning
"-A"])
1410 and show_is_variadic
: is_variadic
-> Ppx_deriving_runtime.string =
1411 fun x
-> Format.asprintf
"%a" pp_is_variadic x
1414 Format.formatter
-> fun_param
-> Ppx_deriving_runtime.unit =
1415 let __6 () = pp_user_attribute
1417 and __5
() = Ast.pp_param_kind
1419 and __4
() = pp_expr
1423 and __2 () = pp_is_variadic
1425 and __1 () = pp_is_reference
1427 and __0 () = pp_hint
1429 ((let open! Ppx_deriving_runtime
in
1432 Format.fprintf fmt
"@[<2>{ ";
1433 ((((((((Format.fprintf fmt
"@[%s =@ " "AnnotatedAST.param_hint";
1435 | None
-> Format.pp_print_string fmt
"None"
1437 (Format.pp_print_string fmt
"(Some ";
1439 Format.pp_print_string fmt
")"))) x
.param_hint
;
1440 Format.fprintf fmt
"@]");
1441 Format.fprintf fmt
";@ ";
1442 Format.fprintf fmt
"@[%s =@ " "param_is_reference";
1443 ((__1 ()) fmt
) x
.param_is_reference
;
1444 Format.fprintf fmt
"@]");
1445 Format.fprintf fmt
";@ ";
1446 Format.fprintf fmt
"@[%s =@ " "param_is_variadic";
1447 ((__2 ()) fmt
) x
.param_is_variadic
;
1448 Format.fprintf fmt
"@]");
1449 Format.fprintf fmt
";@ ";
1450 Format.fprintf fmt
"@[%s =@ " "param_pos";
1451 ((__3
()) fmt
) x
.param_pos
;
1452 Format.fprintf fmt
"@]");
1453 Format.fprintf fmt
";@ ";
1454 Format.fprintf fmt
"@[%s =@ " "param_name";
1455 (Format.fprintf fmt
"%S") x
.param_name
;
1456 Format.fprintf fmt
"@]");
1457 Format.fprintf fmt
";@ ";
1458 Format.fprintf fmt
"@[%s =@ " "param_expr";
1460 | None
-> Format.pp_print_string fmt
"None"
1462 (Format.pp_print_string fmt
"(Some ";
1464 Format.pp_print_string fmt
")"))) x
.param_expr
;
1465 Format.fprintf fmt
"@]");
1466 Format.fprintf fmt
";@ ";
1467 Format.fprintf fmt
"@[%s =@ " "param_callconv";
1469 | None
-> Format.pp_print_string fmt
"None"
1471 (Format.pp_print_string fmt
"(Some ";
1473 Format.pp_print_string fmt
")"))) x
.param_callconv
;
1474 Format.fprintf fmt
"@]");
1475 Format.fprintf fmt
";@ ";
1476 Format.fprintf fmt
"@[%s =@ " "param_user_attributes";
1478 Format.fprintf fmt
"@[<2>[";
1483 if sep
then Format.fprintf fmt
";@ ";
1486 Format.fprintf fmt
"@,]@]")) x
.param_user_attributes
;
1487 Format.fprintf fmt
"@]");
1488 Format.fprintf fmt
"@ }@]")
1489 [@ocaml
.warning
"-A"])
1491 and show_fun_param
: fun_param
-> Ppx_deriving_runtime.string =
1492 fun x
-> Format.asprintf
"%a" pp_fun_param x
1494 and pp_fun_variadicity
:
1495 Format.formatter
-> fun_variadicity
-> Ppx_deriving_runtime.unit =
1496 let __0 () = pp_fun_param
in
1497 ((let open! Ppx_deriving_runtime
in
1500 | FVvariadicArg a0
->
1501 (Format.fprintf fmt
"(@[<2>AnnotatedAST.FVvariadicArg@ ";
1503 Format.fprintf fmt
"@])")
1505 Format.pp_print_string fmt
"AnnotatedAST.FVellipsis"
1507 Format.pp_print_string fmt
"AnnotatedAST.FVnonVariadic")
1508 [@ocaml
.warning
"-A"])
1510 and show_fun_variadicity
: fun_variadicity
-> Ppx_deriving_runtime.string
1511 = fun x
-> Format.asprintf
"%a" pp_fun_variadicity x
1513 and pp_fun_
: Format.formatter
-> fun_
-> Ppx_deriving_runtime.unit =
1514 let __9 () = pp_user_attribute
1516 and __8
() = Ast.pp_fun_kind
1518 and __7 () = pp_func_body
1520 and __6 () = pp_fun_param
1522 and __5
() = pp_fun_variadicity
1524 and __4
() = pp_where_constraint
1526 and __3
() = pp_tparam
1530 and __1 () = pp_hint
1532 and __0 () = pp_env_annotation
1534 ((let open! Ppx_deriving_runtime
in
1537 Format.fprintf fmt
"@[<2>{ ";
1538 ((((((((((((Format.fprintf fmt
"@[%s =@ "
1539 "AnnotatedAST.f_annotation";
1540 ((__0 ()) fmt
) x
.f_annotation
;
1541 Format.fprintf fmt
"@]");
1542 Format.fprintf fmt
";@ ";
1543 Format.fprintf fmt
"@[%s =@ " "f_mode";
1544 ((fun _
-> Format.pp_print_string fmt
"<opaque>"))
1546 Format.fprintf fmt
"@]");
1547 Format.fprintf fmt
";@ ";
1548 Format.fprintf fmt
"@[%s =@ " "f_ret";
1550 | None
-> Format.pp_print_string fmt
"None"
1552 (Format.pp_print_string fmt
"(Some ";
1554 Format.pp_print_string fmt
")"))) x
.f_ret
;
1555 Format.fprintf fmt
"@]");
1556 Format.fprintf fmt
";@ ";
1557 Format.fprintf fmt
"@[%s =@ " "f_name";
1558 ((__2 ()) fmt
) x
.f_name
;
1559 Format.fprintf fmt
"@]");
1560 Format.fprintf fmt
";@ ";
1561 Format.fprintf fmt
"@[%s =@ " "f_tparams";
1563 Format.fprintf fmt
"@[<2>[";
1568 if sep
then Format.fprintf fmt
";@ ";
1571 Format.fprintf fmt
"@,]@]")) x
.f_tparams
;
1572 Format.fprintf fmt
"@]");
1573 Format.fprintf fmt
";@ ";
1574 Format.fprintf fmt
"@[%s =@ " "f_where_constraints";
1576 Format.fprintf fmt
"@[<2>[";
1581 if sep
then Format.fprintf fmt
";@ ";
1584 Format.fprintf fmt
"@,]@]")) x
.f_where_constraints
;
1585 Format.fprintf fmt
"@]");
1586 Format.fprintf fmt
";@ ";
1587 Format.fprintf fmt
"@[%s =@ " "f_variadic";
1588 ((__5
()) fmt
) x
.f_variadic
;
1589 Format.fprintf fmt
"@]");
1590 Format.fprintf fmt
";@ ";
1591 Format.fprintf fmt
"@[%s =@ " "f_params";
1593 Format.fprintf fmt
"@[<2>[";
1598 if sep
then Format.fprintf fmt
";@ ";
1601 Format.fprintf fmt
"@,]@]")) x
.f_params
;
1602 Format.fprintf fmt
"@]");
1603 Format.fprintf fmt
";@ ";
1604 Format.fprintf fmt
"@[%s =@ " "f_body";
1605 ((__7 ()) fmt
) x
.f_body
;
1606 Format.fprintf fmt
"@]");
1607 Format.fprintf fmt
";@ ";
1608 Format.fprintf fmt
"@[%s =@ " "f_fun_kind";
1609 ((__8
()) fmt
) x
.f_fun_kind
;
1610 Format.fprintf fmt
"@]");
1611 Format.fprintf fmt
";@ ";
1612 Format.fprintf fmt
"@[%s =@ " "f_user_attributes";
1614 Format.fprintf fmt
"@[<2>[";
1619 if sep
then Format.fprintf fmt
";@ ";
1622 Format.fprintf fmt
"@,]@]")) x
.f_user_attributes
;
1623 Format.fprintf fmt
"@]");
1624 Format.fprintf fmt
";@ ";
1625 Format.fprintf fmt
"@[%s =@ " "f_ret_by_ref";
1626 (Format.fprintf fmt
"%B") x
.f_ret_by_ref
;
1627 Format.fprintf fmt
"@]");
1628 Format.fprintf fmt
"@ }@]")
1629 [@ocaml
.warning
"-A"])
1631 and show_fun_
: fun_
-> Ppx_deriving_runtime.string =
1632 fun x
-> Format.asprintf
"%a" pp_fun_ x
1635 Format.formatter
-> func_body
-> Ppx_deriving_runtime.unit =
1636 let __1 () = pp_func_named_body
1638 and __0 () = pp_func_unnamed_body
1640 ((let open! Ppx_deriving_runtime
in
1644 (Format.fprintf fmt
"(@[<2>AnnotatedAST.UnnamedBody@ ";
1646 Format.fprintf fmt
"@])")
1648 (Format.fprintf fmt
"(@[<2>AnnotatedAST.NamedBody@ ";
1650 Format.fprintf fmt
"@])"))
1651 [@ocaml
.warning
"-A"])
1653 and show_func_body
: func_body
-> Ppx_deriving_runtime.string =
1654 fun x
-> Format.asprintf
"%a" pp_func_body x
1656 and (pp_func_unnamed_body
:
1657 Format.formatter
-> func_unnamed_body
-> Ppx_deriving_runtime.unit)
1659 ((let open! Ppx_deriving_runtime
in
1662 Format.fprintf fmt
"@[<2>{ ";
1663 (((Format.fprintf fmt
"@[%s =@ " "AnnotatedAST.fub_ast";
1664 ((fun _
-> Format.pp_print_string fmt
"<opaque>"))
1666 Format.fprintf fmt
"@]");
1667 Format.fprintf fmt
";@ ";
1668 Format.fprintf fmt
"@[%s =@ " "fub_tparams";
1669 ((fun _
-> Format.pp_print_string fmt
"<opaque>"))
1671 Format.fprintf fmt
"@]");
1672 Format.fprintf fmt
";@ ";
1673 Format.fprintf fmt
"@[%s =@ " "fub_namespace";
1674 ((fun _
-> Format.pp_print_string fmt
"<opaque>"))
1676 Format.fprintf fmt
"@]");
1677 Format.fprintf fmt
"@ }@]")
1678 [@ocaml
.warning
"-A"])
1680 and show_func_unnamed_body
:
1681 func_unnamed_body
-> Ppx_deriving_runtime.string =
1682 fun x
-> Format.asprintf
"%a" pp_func_unnamed_body x
1684 and pp_func_named_body
:
1685 Format.formatter
-> func_named_body
-> Ppx_deriving_runtime.unit =
1686 let __0 () = pp_block
in
1687 ((let open! Ppx_deriving_runtime
in
1690 Format.fprintf fmt
"@[<2>{ ";
1691 ((Format.fprintf fmt
"@[%s =@ " "AnnotatedAST.fnb_nast";
1692 ((__0 ()) fmt
) x
.fnb_nast
;
1693 Format.fprintf fmt
"@]");
1694 Format.fprintf fmt
";@ ";
1695 Format.fprintf fmt
"@[%s =@ " "fnb_unsafe";
1696 (Format.fprintf fmt
"%B") x
.fnb_unsafe
;
1697 Format.fprintf fmt
"@]");
1698 Format.fprintf fmt
"@ }@]")
1699 [@ocaml
.warning
"-A"])
1701 and show_func_named_body
: func_named_body
-> Ppx_deriving_runtime.string
1702 = fun x
-> Format.asprintf
"%a" pp_func_named_body x
1704 and pp_user_attribute
:
1705 Format.formatter
-> user_attribute
-> Ppx_deriving_runtime.unit =
1706 let __1 () = pp_expr
1710 ((let open! Ppx_deriving_runtime
in
1713 Format.fprintf fmt
"@[<2>{ ";
1714 ((Format.fprintf fmt
"@[%s =@ " "AnnotatedAST.ua_name";
1715 ((__0 ()) fmt
) x
.ua_name
;
1716 Format.fprintf fmt
"@]");
1717 Format.fprintf fmt
";@ ";
1718 Format.fprintf fmt
"@[%s =@ " "ua_params";
1720 Format.fprintf fmt
"@[<2>[";
1725 if sep
then Format.fprintf fmt
";@ ";
1728 Format.fprintf fmt
"@,]@]")) x
.ua_params
;
1729 Format.fprintf fmt
"@]");
1730 Format.fprintf fmt
"@ }@]")
1731 [@ocaml
.warning
"-A"])
1733 and show_user_attribute
: user_attribute
-> Ppx_deriving_runtime.string =
1734 fun x
-> Format.asprintf
"%a" pp_user_attribute x
1736 and pp_class_
: Format.formatter
-> class_
-> Ppx_deriving_runtime.unit =
1737 let __18 () = pp_enum_
1739 and __17
() = pp_user_attribute
1741 and __16
() = pp_method_
1743 and __15
() = pp_method_
1745 and __14
() = pp_method_
1747 and __13
() = pp_class_var
1749 and __12
() = pp_class_var
1751 and __11
() = pp_class_typeconst
1753 and __10
() = pp_class_const
1755 and __9 () = pp_hint
1757 and __8
() = pp_hint
1759 and __7 () = pp_hint
1761 and __6 () = pp_pstring
1763 and __5
() = pp_hint
1765 and __4
() = pp_hint
1767 and __3
() = pp_hint
1771 and __1 () = Ast.pp_class_kind
1773 and __0 () = pp_env_annotation
1775 ((let open! Ppx_deriving_runtime
in
1778 Format.fprintf fmt
"@[<2>{ ";
1779 (((((((((((((((((((((((Format.fprintf fmt
"@[%s =@ "
1780 "AnnotatedAST.c_annotation";
1781 ((__0 ()) fmt
) x
.c_annotation
;
1782 Format.fprintf fmt
"@]");
1783 Format.fprintf fmt
";@ ";
1784 Format.fprintf fmt
"@[%s =@ " "c_mode";
1786 Format.pp_print_string fmt
"<opaque>"))
1788 Format.fprintf fmt
"@]");
1789 Format.fprintf fmt
";@ ";
1790 Format.fprintf fmt
"@[%s =@ " "c_final";
1791 (Format.fprintf fmt
"%B") x
.c_final
;
1792 Format.fprintf fmt
"@]");
1793 Format.fprintf fmt
";@ ";
1794 Format.fprintf fmt
"@[%s =@ " "c_is_xhp";
1795 (Format.fprintf fmt
"%B") x
.c_is_xhp
;
1796 Format.fprintf fmt
"@]");
1797 Format.fprintf fmt
";@ ";
1798 Format.fprintf fmt
"@[%s =@ " "c_kind";
1799 ((__1 ()) fmt
) x
.c_kind
;
1800 Format.fprintf fmt
"@]");
1801 Format.fprintf fmt
";@ ";
1802 Format.fprintf fmt
"@[%s =@ " "c_name";
1803 ((__2 ()) fmt
) x
.c_name
;
1804 Format.fprintf fmt
"@]");
1805 Format.fprintf fmt
";@ ";
1806 Format.fprintf fmt
"@[%s =@ " "c_tparams";
1808 Format.pp_print_string fmt
"<opaque>"))
1810 Format.fprintf fmt
"@]");
1811 Format.fprintf fmt
";@ ";
1812 Format.fprintf fmt
"@[%s =@ " "c_extends";
1814 Format.fprintf fmt
"@[<2>[";
1820 then Format.fprintf fmt
";@ ";
1823 Format.fprintf fmt
"@,]@]")) x
.c_extends
;
1824 Format.fprintf fmt
"@]");
1825 Format.fprintf fmt
";@ ";
1826 Format.fprintf fmt
"@[%s =@ " "c_uses";
1828 Format.fprintf fmt
"@[<2>[";
1834 then Format.fprintf fmt
";@ ";
1837 Format.fprintf fmt
"@,]@]")) x
.c_uses
;
1838 Format.fprintf fmt
"@]");
1839 Format.fprintf fmt
";@ ";
1840 Format.fprintf fmt
"@[%s =@ " "c_xhp_attr_uses";
1842 Format.fprintf fmt
"@[<2>[";
1848 then Format.fprintf fmt
";@ ";
1851 Format.fprintf fmt
"@,]@]"))
1853 Format.fprintf fmt
"@]");
1854 Format.fprintf fmt
";@ ";
1855 Format.fprintf fmt
"@[%s =@ " "c_xhp_category";
1857 Format.fprintf fmt
"@[<2>[";
1862 if sep
then Format.fprintf fmt
";@ ";
1865 Format.fprintf fmt
"@,]@]")) x
.c_xhp_category
;
1866 Format.fprintf fmt
"@]");
1867 Format.fprintf fmt
";@ ";
1868 Format.fprintf fmt
"@[%s =@ " "c_req_extends";
1870 Format.fprintf fmt
"@[<2>[";
1875 if sep
then Format.fprintf fmt
";@ ";
1878 Format.fprintf fmt
"@,]@]")) x
.c_req_extends
;
1879 Format.fprintf fmt
"@]");
1880 Format.fprintf fmt
";@ ";
1881 Format.fprintf fmt
"@[%s =@ " "c_req_implements";
1883 Format.fprintf fmt
"@[<2>[";
1888 if sep
then Format.fprintf fmt
";@ ";
1891 Format.fprintf fmt
"@,]@]")) x
.c_req_implements
;
1892 Format.fprintf fmt
"@]");
1893 Format.fprintf fmt
";@ ";
1894 Format.fprintf fmt
"@[%s =@ " "c_implements";
1896 Format.fprintf fmt
"@[<2>[";
1901 if sep
then Format.fprintf fmt
";@ ";
1904 Format.fprintf fmt
"@,]@]")) x
.c_implements
;
1905 Format.fprintf fmt
"@]");
1906 Format.fprintf fmt
";@ ";
1907 Format.fprintf fmt
"@[%s =@ " "c_consts";
1909 Format.fprintf fmt
"@[<2>[";
1914 if sep
then Format.fprintf fmt
";@ ";
1917 Format.fprintf fmt
"@,]@]")) x
.c_consts
;
1918 Format.fprintf fmt
"@]");
1919 Format.fprintf fmt
";@ ";
1920 Format.fprintf fmt
"@[%s =@ " "c_typeconsts";
1922 Format.fprintf fmt
"@[<2>[";
1927 if sep
then Format.fprintf fmt
";@ ";
1930 Format.fprintf fmt
"@,]@]")) x
.c_typeconsts
;
1931 Format.fprintf fmt
"@]");
1932 Format.fprintf fmt
";@ ";
1933 Format.fprintf fmt
"@[%s =@ " "c_static_vars";
1935 Format.fprintf fmt
"@[<2>[";
1940 if sep
then Format.fprintf fmt
";@ ";
1943 Format.fprintf fmt
"@,]@]")) x
.c_static_vars
;
1944 Format.fprintf fmt
"@]");
1945 Format.fprintf fmt
";@ ";
1946 Format.fprintf fmt
"@[%s =@ " "c_vars";
1948 Format.fprintf fmt
"@[<2>[";
1953 if sep
then Format.fprintf fmt
";@ ";
1956 Format.fprintf fmt
"@,]@]")) x
.c_vars
;
1957 Format.fprintf fmt
"@]");
1958 Format.fprintf fmt
";@ ";
1959 Format.fprintf fmt
"@[%s =@ " "c_constructor";
1961 | None
-> Format.pp_print_string fmt
"None"
1963 (Format.pp_print_string fmt
"(Some ";
1965 Format.pp_print_string fmt
")"))) x
.c_constructor
;
1966 Format.fprintf fmt
"@]");
1967 Format.fprintf fmt
";@ ";
1968 Format.fprintf fmt
"@[%s =@ " "c_static_methods";
1970 Format.fprintf fmt
"@[<2>[";
1975 if sep
then Format.fprintf fmt
";@ ";
1978 Format.fprintf fmt
"@,]@]")) x
.c_static_methods
;
1979 Format.fprintf fmt
"@]");
1980 Format.fprintf fmt
";@ ";
1981 Format.fprintf fmt
"@[%s =@ " "c_methods";
1983 Format.fprintf fmt
"@[<2>[";
1988 if sep
then Format.fprintf fmt
";@ ";
1991 Format.fprintf fmt
"@,]@]")) x
.c_methods
;
1992 Format.fprintf fmt
"@]");
1993 Format.fprintf fmt
";@ ";
1994 Format.fprintf fmt
"@[%s =@ " "c_user_attributes";
1996 Format.fprintf fmt
"@[<2>[";
2001 if sep
then Format.fprintf fmt
";@ ";
2004 Format.fprintf fmt
"@,]@]")) x
.c_user_attributes
;
2005 Format.fprintf fmt
"@]");
2006 Format.fprintf fmt
";@ ";
2007 Format.fprintf fmt
"@[%s =@ " "c_enum";
2009 | None
-> Format.pp_print_string fmt
"None"
2011 (Format.pp_print_string fmt
"(Some ";
2013 Format.pp_print_string fmt
")"))) x
.c_enum
;
2014 Format.fprintf fmt
"@]");
2015 Format.fprintf fmt
"@ }@]")
2016 [@ocaml
.warning
"-A"])
2018 and show_class_
: class_
-> Ppx_deriving_runtime.string =
2019 fun x
-> Format.asprintf
"%a" pp_class_ x
2021 and pp_class_const
:
2022 Format.formatter
-> class_const
-> Ppx_deriving_runtime.unit =
2023 let __2 () = pp_expr
2027 and __0 () = pp_hint
2029 ((let open! Ppx_deriving_runtime
in
2032 Format.fprintf fmt
"(@[";
2034 | None
-> Format.pp_print_string fmt
"None"
2036 (Format.pp_print_string fmt
"(Some ";
2038 Format.pp_print_string fmt
")"))) a0
;
2039 Format.fprintf fmt
",@ ";
2041 Format.fprintf fmt
",@ ";
2043 | None
-> Format.pp_print_string fmt
"None"
2045 (Format.pp_print_string fmt
"(Some ";
2047 Format.pp_print_string fmt
")"))) a2
);
2048 Format.fprintf fmt
"@])")
2049 [@ocaml
.warning
"-A"])
2051 and show_class_const
: class_const
-> Ppx_deriving_runtime.string =
2052 fun x
-> Format.asprintf
"%a" pp_class_const x
2054 and pp_class_typeconst
:
2055 Format.formatter
-> class_typeconst
-> Ppx_deriving_runtime.unit =
2056 let __2 () = pp_hint
2058 and __1 () = pp_hint
2062 ((let open! Ppx_deriving_runtime
in
2065 Format.fprintf fmt
"@[<2>{ ";
2066 (((Format.fprintf fmt
"@[%s =@ " "AnnotatedAST.c_tconst_name";
2067 ((__0 ()) fmt
) x
.c_tconst_name
;
2068 Format.fprintf fmt
"@]");
2069 Format.fprintf fmt
";@ ";
2070 Format.fprintf fmt
"@[%s =@ " "c_tconst_constraint";
2072 | None
-> Format.pp_print_string fmt
"None"
2074 (Format.pp_print_string fmt
"(Some ";
2076 Format.pp_print_string fmt
")")))
2077 x
.c_tconst_constraint
;
2078 Format.fprintf fmt
"@]");
2079 Format.fprintf fmt
";@ ";
2080 Format.fprintf fmt
"@[%s =@ " "c_tconst_type";
2082 | None
-> Format.pp_print_string fmt
"None"
2084 (Format.pp_print_string fmt
"(Some ";
2086 Format.pp_print_string fmt
")"))) x
.c_tconst_type
;
2087 Format.fprintf fmt
"@]");
2088 Format.fprintf fmt
"@ }@]")
2089 [@ocaml
.warning
"-A"])
2091 and show_class_typeconst
: class_typeconst
-> Ppx_deriving_runtime.string
2092 = fun x
-> Format.asprintf
"%a" pp_class_typeconst x
2095 Format.formatter
-> class_var
-> Ppx_deriving_runtime.unit =
2096 let __4 () = pp_user_attribute
2098 and __3
() = pp_expr
2102 and __1 () = pp_hint
2104 and __0 () = pp_visibility
2106 ((let open! Ppx_deriving_runtime
in
2109 Format.fprintf fmt
"@[<2>{ ";
2110 (((((((Format.fprintf fmt
"@[%s =@ " "AnnotatedAST.cv_final";
2111 (Format.fprintf fmt
"%B") x
.cv_final
;
2112 Format.fprintf fmt
"@]");
2113 Format.fprintf fmt
";@ ";
2114 Format.fprintf fmt
"@[%s =@ " "cv_is_xhp";
2115 (Format.fprintf fmt
"%B") x
.cv_is_xhp
;
2116 Format.fprintf fmt
"@]");
2117 Format.fprintf fmt
";@ ";
2118 Format.fprintf fmt
"@[%s =@ " "cv_visibility";
2119 ((__0 ()) fmt
) x
.cv_visibility
;
2120 Format.fprintf fmt
"@]");
2121 Format.fprintf fmt
";@ ";
2122 Format.fprintf fmt
"@[%s =@ " "cv_type";
2124 | None
-> Format.pp_print_string fmt
"None"
2126 (Format.pp_print_string fmt
"(Some ";
2128 Format.pp_print_string fmt
")"))) x
.cv_type
;
2129 Format.fprintf fmt
"@]");
2130 Format.fprintf fmt
";@ ";
2131 Format.fprintf fmt
"@[%s =@ " "cv_id";
2132 ((__2 ()) fmt
) x
.cv_id
;
2133 Format.fprintf fmt
"@]");
2134 Format.fprintf fmt
";@ ";
2135 Format.fprintf fmt
"@[%s =@ " "cv_expr";
2137 | None
-> Format.pp_print_string fmt
"None"
2139 (Format.pp_print_string fmt
"(Some ";
2141 Format.pp_print_string fmt
")"))) x
.cv_expr
;
2142 Format.fprintf fmt
"@]");
2143 Format.fprintf fmt
";@ ";
2144 Format.fprintf fmt
"@[%s =@ " "cv_user_attributes";
2146 Format.fprintf fmt
"@[<2>[";
2151 if sep
then Format.fprintf fmt
";@ ";
2154 Format.fprintf fmt
"@,]@]")) x
.cv_user_attributes
;
2155 Format.fprintf fmt
"@]");
2156 Format.fprintf fmt
"@ }@]")
2157 [@ocaml
.warning
"-A"])
2159 and show_class_var
: class_var
-> Ppx_deriving_runtime.string =
2160 fun x
-> Format.asprintf
"%a" pp_class_var x
2162 and pp_method_
: Format.formatter
-> method_
-> Ppx_deriving_runtime.unit
2164 let __10 () = pp_hint
2166 and __9 () = pp_user_attribute
2168 and __8
() = Ast.pp_fun_kind
2170 and __7 () = pp_func_body
2172 and __6 () = pp_fun_param
2174 and __5
() = pp_fun_variadicity
2176 and __4 () = pp_where_constraint
2178 and __3
() = pp_tparam
2182 and __1 () = pp_visibility
2184 and __0 () = pp_env_annotation
2186 ((let open! Ppx_deriving_runtime
in
2189 Format.fprintf fmt
"@[<2>{ ";
2190 ((((((((((((((Format.fprintf fmt
"@[%s =@ "
2191 "AnnotatedAST.m_annotation";
2192 ((__0 ()) fmt
) x
.m_annotation
;
2193 Format.fprintf fmt
"@]");
2194 Format.fprintf fmt
";@ ";
2195 Format.fprintf fmt
"@[%s =@ " "m_final";
2196 (Format.fprintf fmt
"%B") x
.m_final
;
2197 Format.fprintf fmt
"@]");
2198 Format.fprintf fmt
";@ ";
2199 Format.fprintf fmt
"@[%s =@ " "m_abstract";
2200 (Format.fprintf fmt
"%B") x
.m_abstract
;
2201 Format.fprintf fmt
"@]");
2202 Format.fprintf fmt
";@ ";
2203 Format.fprintf fmt
"@[%s =@ " "m_visibility";
2204 ((__1 ()) fmt
) x
.m_visibility
;
2205 Format.fprintf fmt
"@]");
2206 Format.fprintf fmt
";@ ";
2207 Format.fprintf fmt
"@[%s =@ " "m_name";
2208 ((__2 ()) fmt
) x
.m_name
;
2209 Format.fprintf fmt
"@]");
2210 Format.fprintf fmt
";@ ";
2211 Format.fprintf fmt
"@[%s =@ " "m_tparams";
2213 Format.fprintf fmt
"@[<2>[";
2218 if sep
then Format.fprintf fmt
";@ ";
2221 Format.fprintf fmt
"@,]@]")) x
.m_tparams
;
2222 Format.fprintf fmt
"@]");
2223 Format.fprintf fmt
";@ ";
2224 Format.fprintf fmt
"@[%s =@ " "m_where_constraints";
2226 Format.fprintf fmt
"@[<2>[";
2231 if sep
then Format.fprintf fmt
";@ ";
2234 Format.fprintf fmt
"@,]@]")) x
.m_where_constraints
;
2235 Format.fprintf fmt
"@]");
2236 Format.fprintf fmt
";@ ";
2237 Format.fprintf fmt
"@[%s =@ " "m_variadic";
2238 ((__5
()) fmt
) x
.m_variadic
;
2239 Format.fprintf fmt
"@]");
2240 Format.fprintf fmt
";@ ";
2241 Format.fprintf fmt
"@[%s =@ " "m_params";
2243 Format.fprintf fmt
"@[<2>[";
2248 if sep
then Format.fprintf fmt
";@ ";
2251 Format.fprintf fmt
"@,]@]")) x
.m_params
;
2252 Format.fprintf fmt
"@]");
2253 Format.fprintf fmt
";@ ";
2254 Format.fprintf fmt
"@[%s =@ " "m_body";
2255 ((__7 ()) fmt
) x
.m_body
;
2256 Format.fprintf fmt
"@]");
2257 Format.fprintf fmt
";@ ";
2258 Format.fprintf fmt
"@[%s =@ " "m_fun_kind";
2259 ((__8
()) fmt
) x
.m_fun_kind
;
2260 Format.fprintf fmt
"@]");
2261 Format.fprintf fmt
";@ ";
2262 Format.fprintf fmt
"@[%s =@ " "m_user_attributes";
2264 Format.fprintf fmt
"@[<2>[";
2269 if sep
then Format.fprintf fmt
";@ ";
2272 Format.fprintf fmt
"@,]@]")) x
.m_user_attributes
;
2273 Format.fprintf fmt
"@]");
2274 Format.fprintf fmt
";@ ";
2275 Format.fprintf fmt
"@[%s =@ " "m_ret";
2277 | None
-> Format.pp_print_string fmt
"None"
2279 (Format.pp_print_string fmt
"(Some ";
2281 Format.pp_print_string fmt
")"))) x
.m_ret
;
2282 Format.fprintf fmt
"@]");
2283 Format.fprintf fmt
";@ ";
2284 Format.fprintf fmt
"@[%s =@ " "m_ret_by_ref";
2285 (Format.fprintf fmt
"%B") x
.m_ret_by_ref
;
2286 Format.fprintf fmt
"@]");
2287 Format.fprintf fmt
"@ }@]")
2288 [@ocaml
.warning
"-A"])
2290 and show_method_
: method_
-> Ppx_deriving_runtime.string =
2291 fun x
-> Format.asprintf
"%a" pp_method_ x
2293 and pp_typedef
: Format.formatter
-> typedef
-> Ppx_deriving_runtime.unit
2295 let __6 () = pp_typedef_visibility
2297 and __5
() = pp_user_attribute
2299 and __4 () = pp_hint
2301 and __3
() = pp_hint
2303 and __2 () = pp_tparam
2307 and __0 () = pp_env_annotation
2309 ((let open! Ppx_deriving_runtime
in
2312 Format.fprintf fmt
"@[<2>{ ";
2313 ((((((((Format.fprintf fmt
"@[%s =@ "
2314 "AnnotatedAST.t_annotation";
2315 ((__0 ()) fmt
) x
.t_annotation
;
2316 Format.fprintf fmt
"@]");
2317 Format.fprintf fmt
";@ ";
2318 Format.fprintf fmt
"@[%s =@ " "t_name";
2319 ((__1 ()) fmt
) x
.t_name
;
2320 Format.fprintf fmt
"@]");
2321 Format.fprintf fmt
";@ ";
2322 Format.fprintf fmt
"@[%s =@ " "t_tparams";
2324 Format.fprintf fmt
"@[<2>[";
2329 if sep
then Format.fprintf fmt
";@ ";
2332 Format.fprintf fmt
"@,]@]")) x
.t_tparams
;
2333 Format.fprintf fmt
"@]");
2334 Format.fprintf fmt
";@ ";
2335 Format.fprintf fmt
"@[%s =@ " "t_constraint";
2337 | None
-> Format.pp_print_string fmt
"None"
2339 (Format.pp_print_string fmt
"(Some ";
2341 Format.pp_print_string fmt
")"))) x
.t_constraint
;
2342 Format.fprintf fmt
"@]");
2343 Format.fprintf fmt
";@ ";
2344 Format.fprintf fmt
"@[%s =@ " "t_kind";
2345 ((__4 ()) fmt
) x
.t_kind
;
2346 Format.fprintf fmt
"@]");
2347 Format.fprintf fmt
";@ ";
2348 Format.fprintf fmt
"@[%s =@ " "t_user_attributes";
2350 Format.fprintf fmt
"@[<2>[";
2355 if sep
then Format.fprintf fmt
";@ ";
2358 Format.fprintf fmt
"@,]@]")) x
.t_user_attributes
;
2359 Format.fprintf fmt
"@]");
2360 Format.fprintf fmt
";@ ";
2361 Format.fprintf fmt
"@[%s =@ " "t_mode";
2362 ((fun _
-> Format.pp_print_string fmt
"<opaque>")) x
.t_mode
;
2363 Format.fprintf fmt
"@]");
2364 Format.fprintf fmt
";@ ";
2365 Format.fprintf fmt
"@[%s =@ " "t_vis";
2366 ((__6 ()) fmt
) x
.t_vis
;
2367 Format.fprintf fmt
"@]");
2368 Format.fprintf fmt
"@ }@]")
2369 [@ocaml
.warning
"-A"])
2371 and show_typedef
: typedef
-> Ppx_deriving_runtime.string =
2372 fun x
-> Format.asprintf
"%a" pp_typedef x
2374 and pp_gconst
: Format.formatter
-> gconst
-> Ppx_deriving_runtime.unit =
2375 let __3 () = pp_expr
2377 and __2 () = pp_hint
2381 and __0 () = pp_env_annotation
2383 ((let open! Ppx_deriving_runtime
in
2386 Format.fprintf fmt
"@[<2>{ ";
2387 ((((((Format.fprintf fmt
"@[%s =@ "
2388 "AnnotatedAST.cst_annotation";
2389 ((__0 ()) fmt
) x
.cst_annotation
;
2390 Format.fprintf fmt
"@]");
2391 Format.fprintf fmt
";@ ";
2392 Format.fprintf fmt
"@[%s =@ " "cst_mode";
2393 ((fun _
-> Format.pp_print_string fmt
"<opaque>"))
2395 Format.fprintf fmt
"@]");
2396 Format.fprintf fmt
";@ ";
2397 Format.fprintf fmt
"@[%s =@ " "cst_name";
2398 ((__1 ()) fmt
) x
.cst_name
;
2399 Format.fprintf fmt
"@]");
2400 Format.fprintf fmt
";@ ";
2401 Format.fprintf fmt
"@[%s =@ " "cst_type";
2403 | None
-> Format.pp_print_string fmt
"None"
2405 (Format.pp_print_string fmt
"(Some ";
2407 Format.pp_print_string fmt
")"))) x
.cst_type
;
2408 Format.fprintf fmt
"@]");
2409 Format.fprintf fmt
";@ ";
2410 Format.fprintf fmt
"@[%s =@ " "cst_value";
2412 | None
-> Format.pp_print_string fmt
"None"
2414 (Format.pp_print_string fmt
"(Some ";
2416 Format.pp_print_string fmt
")"))) x
.cst_value
;
2417 Format.fprintf fmt
"@]");
2418 Format.fprintf fmt
";@ ";
2419 Format.fprintf fmt
"@[%s =@ " "cst_is_define";
2420 (Format.fprintf fmt
"%B") x
.cst_is_define
;
2421 Format.fprintf fmt
"@]");
2422 Format.fprintf fmt
"@ }@]")
2423 [@ocaml
.warning
"-A"])
2425 and show_gconst
: gconst
-> Ppx_deriving_runtime.string =
2426 fun x
-> Format.asprintf
"%a" pp_gconst x
2428 and pp_def
: Format.formatter
-> def
-> Ppx_deriving_runtime.unit =
2429 let __3 () = pp_gconst
2431 and __2 () = pp_typedef
2433 and __1 () = pp_class_
2435 and __0 () = pp_fun_
2437 ((let open! Ppx_deriving_runtime
in
2441 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Fun@ ";
2443 Format.fprintf fmt
"@])")
2445 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Class@ ";
2447 Format.fprintf fmt
"@])")
2449 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Typedef@ ";
2451 Format.fprintf fmt
"@])")
2453 (Format.fprintf fmt
"(@[<2>AnnotatedAST.Constant@ ";
2455 Format.fprintf fmt
"@])"))
2456 [@ocaml
.warning
"-A"])
2458 and show_def
: def
-> Ppx_deriving_runtime.string =
2459 fun x
-> Format.asprintf
"%a" pp_def x
2463 [@@@ocaml
.warning
"-4-26-27"]
2464 [@@@VISITORS.BEGIN
]
2465 class virtual ['self
] iter
=
2466 object (self
: 'self
)
2467 inherit [_
] iter_defs
2468 method on_program env
= self#on_list self#on_def env
2469 method on_expr_annotation env _visitors_this
= ()
2470 method on_env_annotation env _visitors_this
= ()
2471 method on_Fallthrough env
= ()
2472 method on_Expr env _visitors_c0
=
2473 let _visitors_r0 = self#on_expr env _visitors_c0
in ()
2474 method on_Break env _visitors_c0
=
2475 let _visitors_r0 = self#on_pos env _visitors_c0
in ()
2476 method on_Continue env _visitors_c0
=
2477 let _visitors_r0 = self#on_pos env _visitors_c0
in ()
2478 method on_Throw env _visitors_c0 _visitors_c1
=
2479 let _visitors_r0 = self#on_is_terminal env _visitors_c0
in
2480 let _visitors_r1 = self#on_expr env _visitors_c1
in ()
2481 method on_Return env _visitors_c0 _visitors_c1
=
2482 let _visitors_r0 = self#on_pos env _visitors_c0
in
2483 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1
2486 method on_GotoLabel env _visitors_c0
=
2487 let _visitors_r0 = self#on_pstring env _visitors_c0
in ()
2488 method on_Goto env _visitors_c0
=
2489 let _visitors_r0 = self#on_pstring env _visitors_c0
in ()
2490 method on_Static_var env _visitors_c0
=
2491 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
2494 method on_Global_var env _visitors_c0
=
2495 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
2498 method on_If env _visitors_c0 _visitors_c1 _visitors_c2
=
2499 let _visitors_r0 = self#on_expr env _visitors_c0
in
2500 let _visitors_r1 = self#on_block env _visitors_c1
in
2501 let _visitors_r2 = self#on_block env _visitors_c2
in ()
2502 method on_Do env _visitors_c0 _visitors_c1
=
2503 let _visitors_r0 = self#on_block env _visitors_c0
in
2504 let _visitors_r1 = self#on_expr env _visitors_c1
in ()
2505 method on_While env _visitors_c0 _visitors_c1
=
2506 let _visitors_r0 = self#on_expr env _visitors_c0
in
2507 let _visitors_r1 = self#on_block env _visitors_c1
in ()
2508 method on_Using env _visitors_c0 _visitors_c1 _visitors_c2
=
2509 let _visitors_r0 = self#on_bool env _visitors_c0
in
2510 let _visitors_r1 = self#on_expr env _visitors_c1
in
2511 let _visitors_r2 = self#on_block env _visitors_c2
in ()
2512 method on_For env _visitors_c0 _visitors_c1 _visitors_c2
2514 let _visitors_r0 = self#on_expr env _visitors_c0
in
2515 let _visitors_r1 = self#on_expr env _visitors_c1
in
2516 let _visitors_r2 = self#on_expr env _visitors_c2
in
2517 let _visitors_r3 = self#on_block env _visitors_c3
in ()
2518 method on_Switch env _visitors_c0 _visitors_c1
=
2519 let _visitors_r0 = self#on_expr env _visitors_c0
in
2520 let _visitors_r1 = self#on_list self#on_case env _visitors_c1
2523 method on_Foreach env _visitors_c0 _visitors_c1 _visitors_c2
=
2524 let _visitors_r0 = self#on_expr env _visitors_c0
in
2525 let _visitors_r1 = self#on_as_expr env _visitors_c1
in
2526 let _visitors_r2 = self#on_block env _visitors_c2
in ()
2527 method on_Try env _visitors_c0 _visitors_c1 _visitors_c2
=
2528 let _visitors_r0 = self#on_block env _visitors_c0
in
2529 let _visitors_r1 = self#on_list self#on_catch env _visitors_c1
2531 let _visitors_r2 = self#on_block env _visitors_c2
in ()
2532 method on_Noop env
= ()
2533 method on_stmt env _visitors_this
=
2534 match _visitors_this
with
2535 | Fallthrough
-> self#on_Fallthrough env
2536 | Expr _visitors_c0
-> self#on_Expr env _visitors_c0
2537 | Break _visitors_c0
-> self#on_Break env _visitors_c0
2538 | Continue _visitors_c0
-> self#on_Continue env _visitors_c0
2539 | Throw
(_visitors_c0
,_visitors_c1
) ->
2540 self#on_Throw env _visitors_c0 _visitors_c1
2541 | Return
(_visitors_c0
,_visitors_c1
) ->
2542 self#on_Return env _visitors_c0 _visitors_c1
2543 | GotoLabel _visitors_c0
-> self#on_GotoLabel env _visitors_c0
2544 | Goto _visitors_c0
-> self#on_Goto env _visitors_c0
2545 | Static_var _visitors_c0
->
2546 self#on_Static_var env _visitors_c0
2547 | Global_var _visitors_c0
->
2548 self#on_Global_var env _visitors_c0
2549 | If
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
2550 self#on_If env _visitors_c0 _visitors_c1 _visitors_c2
2551 | Do
(_visitors_c0
,_visitors_c1
) ->
2552 self#on_Do env _visitors_c0 _visitors_c1
2553 | While
(_visitors_c0
,_visitors_c1
) ->
2554 self#on_While env _visitors_c0 _visitors_c1
2555 | Using
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
2556 self#on_Using env _visitors_c0 _visitors_c1 _visitors_c2
2557 | For
(_visitors_c0
,_visitors_c1
,_visitors_c2
,_visitors_c3
) ->
2558 self#on_For env _visitors_c0 _visitors_c1 _visitors_c2
2560 | Switch
(_visitors_c0
,_visitors_c1
) ->
2561 self#on_Switch env _visitors_c0 _visitors_c1
2562 | Foreach
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
2563 self#on_Foreach env _visitors_c0 _visitors_c1 _visitors_c2
2564 | Try
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
2565 self#on_Try env _visitors_c0 _visitors_c1 _visitors_c2
2566 | Noop
-> self#on_Noop env
2567 method on_As_v env _visitors_c0
=
2568 let _visitors_r0 = self#on_expr env _visitors_c0
in ()
2569 method on_As_kv env _visitors_c0 _visitors_c1
=
2570 let _visitors_r0 = self#on_expr env _visitors_c0
in
2571 let _visitors_r1 = self#on_expr env _visitors_c1
in ()
2572 method on_Await_as_v env _visitors_c0 _visitors_c1
=
2573 let _visitors_r0 = self#on_pos env _visitors_c0
in
2574 let _visitors_r1 = self#on_expr env _visitors_c1
in ()
2575 method on_Await_as_kv env _visitors_c0 _visitors_c1 _visitors_c2
2577 let _visitors_r0 = self#on_pos env _visitors_c0
in
2578 let _visitors_r1 = self#on_expr env _visitors_c1
in
2579 let _visitors_r2 = self#on_expr env _visitors_c2
in ()
2580 method on_as_expr env _visitors_this
=
2581 match _visitors_this
with
2582 | As_v _visitors_c0
-> self#on_As_v env _visitors_c0
2583 | As_kv
(_visitors_c0
,_visitors_c1
) ->
2584 self#on_As_kv env _visitors_c0 _visitors_c1
2585 | Await_as_v
(_visitors_c0
,_visitors_c1
) ->
2586 self#on_Await_as_v env _visitors_c0 _visitors_c1
2587 | Await_as_kv
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
2588 self#on_Await_as_kv env _visitors_c0 _visitors_c1
2590 method on_block env
= self#on_list self#on_stmt env
2591 method on_CIparent env
= ()
2592 method on_CIself env
= ()
2593 method on_CIstatic env
= ()
2594 method on_CIexpr env _visitors_c0
=
2595 let _visitors_r0 = self#on_expr env _visitors_c0
in ()
2596 method on_CI env _visitors_c0
=
2597 let _visitors_r0 = self#on_instantiated_sid env _visitors_c0
2600 method on_class_id env _visitors_this
=
2601 match _visitors_this
with
2602 | CIparent
-> self#on_CIparent env
2603 | CIself
-> self#on_CIself env
2604 | CIstatic
-> self#on_CIstatic env
2605 | CIexpr _visitors_c0
-> self#on_CIexpr env _visitors_c0
2606 | CI _visitors_c0
-> self#on_CI env _visitors_c0
2607 method on_expr env
(_visitors_c0
,_visitors_c1
) =
2608 let _visitors_r0 = self#on_expr_annotation env _visitors_c0
in
2609 let _visitors_r1 = self#on_expr_ env _visitors_c1
in ()
2610 method on_Array env _visitors_c0
=
2611 let _visitors_r0 = self#on_list self#on_afield env _visitors_c0
2614 method on_Darray env _visitors_c0
=
2618 fun (_visitors_c0
,_visitors_c1
) ->
2619 let _visitors_r0 = self#on_expr env _visitors_c0
in
2620 let _visitors_r1 = self#on_expr env _visitors_c1
in
2621 ()) env _visitors_c0
2624 method on_Varray env _visitors_c0
=
2625 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
2628 method on_Shape env _visitors_c0
=
2630 self#on_shape_map self#on_expr env _visitors_c0
in
2632 method on_ValCollection env _visitors_c0 _visitors_c1
=
2633 let _visitors_r0 = self#on_vc_kind env _visitors_c0
in
2634 let _visitors_r1 = self#on_list self#on_expr env _visitors_c1
2637 method on_KeyValCollection env _visitors_c0 _visitors_c1
=
2638 let _visitors_r0 = self#on_kvc_kind env _visitors_c0
in
2639 let _visitors_r1 = self#on_list self#on_field env _visitors_c1
2642 method on_Null env
= ()
2643 method on_This env
= ()
2644 method on_True env
= ()
2645 method on_False env
= ()
2646 method on_Id env _visitors_c0
=
2647 let _visitors_r0 = self#on_sid env _visitors_c0
in ()
2648 method on_Lvar env _visitors_c0
=
2649 let _visitors_r0 = self#on_lid env _visitors_c0
in ()
2650 method on_Dollar env _visitors_c0
=
2651 let _visitors_r0 = self#on_expr env _visitors_c0
in ()
2652 method on_Dollardollar env _visitors_c0
=
2653 let _visitors_r0 = self#on_lid env _visitors_c0
in ()
2654 method on_Clone env _visitors_c0
=
2655 let _visitors_r0 = self#on_expr env _visitors_c0
in ()
2656 method on_Obj_get env _visitors_c0 _visitors_c1 _visitors_c2
=
2657 let _visitors_r0 = self#on_expr env _visitors_c0
in
2658 let _visitors_r1 = self#on_expr env _visitors_c1
in
2659 let _visitors_r2 = self#on_og_null_flavor env _visitors_c2
in
2661 method on_Array_get env _visitors_c0 _visitors_c1
=
2662 let _visitors_r0 = self#on_expr env _visitors_c0
in
2663 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1
2666 method on_Class_get env _visitors_c0 _visitors_c1
=
2667 let _visitors_r0 = self#on_class_id env _visitors_c0
in
2668 let _visitors_r1 = self#on_pstring env _visitors_c1
in ()
2669 method on_Class_const env _visitors_c0 _visitors_c1
=
2670 let _visitors_r0 = self#on_class_id env _visitors_c0
in
2671 let _visitors_r1 = self#on_pstring env _visitors_c1
in ()
2672 method on_Call env _visitors_c0 _visitors_c1 _visitors_c2
2673 _visitors_c3 _visitors_c4
=
2674 let _visitors_r0 = self#on_call_type env _visitors_c0
in
2675 let _visitors_r1 = self#on_expr env _visitors_c1
in
2676 let _visitors_r2 = self#on_list self#on_hint env _visitors_c2
2678 let _visitors_r3 = self#on_list self#on_expr env _visitors_c3
2680 let _visitors_r4 = self#on_list self#on_expr env _visitors_c4
2683 method on_Int env _visitors_c0
=
2684 let _visitors_r0 = self#on_pstring env _visitors_c0
in ()
2685 method on_Float env _visitors_c0
=
2686 let _visitors_r0 = self#on_pstring env _visitors_c0
in ()
2687 method on_String env _visitors_c0
=
2688 let _visitors_r0 = self#on_pstring env _visitors_c0
in ()
2689 method on_String2 env _visitors_c0
=
2690 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
2693 method on_Yield env _visitors_c0
=
2694 let _visitors_r0 = self#on_afield env _visitors_c0
in ()
2695 method on_Yield_break env
= ()
2696 method on_Await env _visitors_c0
=
2697 let _visitors_r0 = self#on_expr env _visitors_c0
in ()
2698 method on_Suspend env _visitors_c0
=
2699 let _visitors_r0 = self#on_expr env _visitors_c0
in ()
2700 method on_List env _visitors_c0
=
2701 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
2704 method on_Expr_list env _visitors_c0
=
2705 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
2708 method on_Cast env _visitors_c0 _visitors_c1
=
2709 let _visitors_r0 = self#on_hint env _visitors_c0
in
2710 let _visitors_r1 = self#on_expr env _visitors_c1
in ()
2711 method on_Unop env _visitors_c0 _visitors_c1
=
2712 let _visitors_r0 = self#on_uop env _visitors_c0
in
2713 let _visitors_r1 = self#on_expr env _visitors_c1
in ()
2714 method on_Binop env _visitors_c0 _visitors_c1 _visitors_c2
=
2715 let _visitors_r0 = self#on_bop env _visitors_c0
in
2716 let _visitors_r1 = self#on_expr env _visitors_c1
in
2717 let _visitors_r2 = self#on_expr env _visitors_c2
in ()
2718 method on_Pipe env _visitors_c0 _visitors_c1 _visitors_c2
=
2719 let _visitors_r0 = self#on_lid env _visitors_c0
in
2720 let _visitors_r1 = self#on_expr env _visitors_c1
in
2721 let _visitors_r2 = self#on_expr env _visitors_c2
in ()
2722 method on_Eif env _visitors_c0 _visitors_c1 _visitors_c2
=
2723 let _visitors_r0 = self#on_expr env _visitors_c0
in
2724 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1
2726 let _visitors_r2 = self#on_expr env _visitors_c2
in ()
2727 method on_NullCoalesce env _visitors_c0 _visitors_c1
=
2728 let _visitors_r0 = self#on_expr env _visitors_c0
in
2729 let _visitors_r1 = self#on_expr env _visitors_c1
in ()
2730 method on_InstanceOf env _visitors_c0 _visitors_c1
=
2731 let _visitors_r0 = self#on_expr env _visitors_c0
in
2732 let _visitors_r1 = self#on_class_id env _visitors_c1
in ()
2733 method on_Is env _visitors_c0 _visitors_c1
=
2734 let _visitors_r0 = self#on_expr env _visitors_c0
in
2735 let _visitors_r1 = self#on_hint env _visitors_c1
in ()
2736 method on_New env _visitors_c0 _visitors_c1 _visitors_c2
=
2737 let _visitors_r0 = self#on_class_id env _visitors_c0
in
2738 let _visitors_r1 = self#on_list self#on_expr env _visitors_c1
2740 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2
2743 method on_Efun env _visitors_c0 _visitors_c1
=
2744 let _visitors_r0 = self#on_fun_ env _visitors_c0
in
2745 let _visitors_r1 = self#on_list self#on_lid env _visitors_c1
2748 method on_Xml env _visitors_c0 _visitors_c1 _visitors_c2
=
2749 let _visitors_r0 = self#on_sid env _visitors_c0
in
2751 self#on_list self#on_xhp_attribute env _visitors_c1
in
2752 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2
2755 method on_Callconv env _visitors_c0 _visitors_c1
=
2756 let _visitors_r0 = self#on_param_kind env _visitors_c0
in
2757 let _visitors_r1 = self#on_expr env _visitors_c1
in ()
2758 method on_Lplaceholder env _visitors_c0
=
2759 let _visitors_r0 = self#on_pos env _visitors_c0
in ()
2760 method on_Fun_id env _visitors_c0
=
2761 let _visitors_r0 = self#on_sid env _visitors_c0
in ()
2762 method on_Method_id env _visitors_c0 _visitors_c1
=
2763 let _visitors_r0 = self#on_expr env _visitors_c0
in
2764 let _visitors_r1 = self#on_pstring env _visitors_c1
in ()
2765 method on_Method_caller env _visitors_c0 _visitors_c1
=
2766 let _visitors_r0 = self#on_sid env _visitors_c0
in
2767 let _visitors_r1 = self#on_pstring env _visitors_c1
in ()
2768 method on_Smethod_id env _visitors_c0 _visitors_c1
=
2769 let _visitors_r0 = self#on_sid env _visitors_c0
in
2770 let _visitors_r1 = self#on_pstring env _visitors_c1
in ()
2771 method on_Special_func env _visitors_c0
=
2772 let _visitors_r0 = self#on_special_func env _visitors_c0
in ()
2773 method on_Pair env _visitors_c0 _visitors_c1
=
2774 let _visitors_r0 = self#on_expr env _visitors_c0
in
2775 let _visitors_r1 = self#on_expr env _visitors_c1
in ()
2776 method on_Assert env _visitors_c0
=
2777 let _visitors_r0 = self#on_assert_expr env _visitors_c0
in ()
2778 method on_Typename env _visitors_c0
=
2779 let _visitors_r0 = self#on_sid env _visitors_c0
in ()
2780 method on_Any env
= ()
2781 method on_expr_ env _visitors_this
=
2782 match _visitors_this
with
2783 | Array _visitors_c0
-> self#on_Array env _visitors_c0
2784 | Darray _visitors_c0
-> self#on_Darray env _visitors_c0
2785 | Varray _visitors_c0
-> self#on_Varray env _visitors_c0
2786 | Shape _visitors_c0
-> self#on_Shape env _visitors_c0
2787 | ValCollection
(_visitors_c0
,_visitors_c1
) ->
2788 self#on_ValCollection env _visitors_c0 _visitors_c1
2789 | KeyValCollection
(_visitors_c0
,_visitors_c1
) ->
2790 self#on_KeyValCollection env _visitors_c0 _visitors_c1
2791 | Null
-> self#on_Null env
2792 | This
-> self#on_This env
2793 | True
-> self#on_True env
2794 | False
-> self#on_False env
2795 | Id _visitors_c0
-> self#on_Id env _visitors_c0
2796 | Lvar _visitors_c0
-> self#on_Lvar env _visitors_c0
2797 | Dollar _visitors_c0
-> self#on_Dollar env _visitors_c0
2798 | Dollardollar _visitors_c0
->
2799 self#on_Dollardollar env _visitors_c0
2800 | Clone _visitors_c0
-> self#on_Clone env _visitors_c0
2801 | Obj_get
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
2802 self#on_Obj_get env _visitors_c0 _visitors_c1 _visitors_c2
2803 | Array_get
(_visitors_c0
,_visitors_c1
) ->
2804 self#on_Array_get env _visitors_c0 _visitors_c1
2805 | Class_get
(_visitors_c0
,_visitors_c1
) ->
2806 self#on_Class_get env _visitors_c0 _visitors_c1
2807 | Class_const
(_visitors_c0
,_visitors_c1
) ->
2808 self#on_Class_const env _visitors_c0 _visitors_c1
2810 (_visitors_c0
,_visitors_c1
,_visitors_c2
,_visitors_c3
,_visitors_c4
)
2812 self#on_Call env _visitors_c0 _visitors_c1 _visitors_c2
2813 _visitors_c3 _visitors_c4
2814 | Int _visitors_c0
-> self#on_Int env _visitors_c0
2815 | Float _visitors_c0
-> self#on_Float env _visitors_c0
2816 | String _visitors_c0
-> self#on_String env _visitors_c0
2817 | String2 _visitors_c0
-> self#on_String2 env _visitors_c0
2818 | Yield _visitors_c0
-> self#on_Yield env _visitors_c0
2819 | Yield_break
-> self#on_Yield_break env
2820 | Await _visitors_c0
-> self#on_Await env _visitors_c0
2821 | Suspend _visitors_c0
-> self#on_Suspend env _visitors_c0
2822 | List _visitors_c0
-> self#on_List env _visitors_c0
2823 | Expr_list _visitors_c0
-> self#on_Expr_list env _visitors_c0
2824 | Cast
(_visitors_c0
,_visitors_c1
) ->
2825 self#on_Cast env _visitors_c0 _visitors_c1
2826 | Unop
(_visitors_c0
,_visitors_c1
) ->
2827 self#on_Unop env _visitors_c0 _visitors_c1
2828 | Binop
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
2829 self#on_Binop env _visitors_c0 _visitors_c1 _visitors_c2
2830 | Pipe
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
2831 self#on_Pipe env _visitors_c0 _visitors_c1 _visitors_c2
2832 | Eif
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
2833 self#on_Eif env _visitors_c0 _visitors_c1 _visitors_c2
2834 | NullCoalesce
(_visitors_c0
,_visitors_c1
) ->
2835 self#on_NullCoalesce env _visitors_c0 _visitors_c1
2836 | InstanceOf
(_visitors_c0
,_visitors_c1
) ->
2837 self#on_InstanceOf env _visitors_c0 _visitors_c1
2838 | Is
(_visitors_c0
,_visitors_c1
) ->
2839 self#on_Is env _visitors_c0 _visitors_c1
2840 | New
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
2841 self#on_New env _visitors_c0 _visitors_c1 _visitors_c2
2842 | Efun
(_visitors_c0
,_visitors_c1
) ->
2843 self#on_Efun env _visitors_c0 _visitors_c1
2844 | Xml
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
2845 self#on_Xml env _visitors_c0 _visitors_c1 _visitors_c2
2846 | Callconv
(_visitors_c0
,_visitors_c1
) ->
2847 self#on_Callconv env _visitors_c0 _visitors_c1
2848 | Lplaceholder _visitors_c0
->
2849 self#on_Lplaceholder env _visitors_c0
2850 | Fun_id _visitors_c0
-> self#on_Fun_id env _visitors_c0
2851 | Method_id
(_visitors_c0
,_visitors_c1
) ->
2852 self#on_Method_id env _visitors_c0 _visitors_c1
2853 | Method_caller
(_visitors_c0
,_visitors_c1
) ->
2854 self#on_Method_caller env _visitors_c0 _visitors_c1
2855 | Smethod_id
(_visitors_c0
,_visitors_c1
) ->
2856 self#on_Smethod_id env _visitors_c0 _visitors_c1
2857 | Special_func _visitors_c0
->
2858 self#on_Special_func env _visitors_c0
2859 | Pair
(_visitors_c0
,_visitors_c1
) ->
2860 self#on_Pair env _visitors_c0 _visitors_c1
2861 | Assert _visitors_c0
-> self#on_Assert env _visitors_c0
2862 | Typename _visitors_c0
-> self#on_Typename env _visitors_c0
2863 | Any
-> self#on_Any env
2864 method on_AE_assert env _visitors_c0
=
2865 let _visitors_r0 = self#on_expr env _visitors_c0
in ()
2866 method on_assert_expr env _visitors_this
=
2867 match _visitors_this
with
2868 | AE_assert _visitors_c0
-> self#on_AE_assert env _visitors_c0
2869 method on_Default env _visitors_c0
=
2870 let _visitors_r0 = self#on_block env _visitors_c0
in ()
2871 method on_Case env _visitors_c0 _visitors_c1
=
2872 let _visitors_r0 = self#on_expr env _visitors_c0
in
2873 let _visitors_r1 = self#on_block env _visitors_c1
in ()
2874 method on_case env _visitors_this
=
2875 match _visitors_this
with
2876 | Default _visitors_c0
-> self#on_Default env _visitors_c0
2877 | Case
(_visitors_c0
,_visitors_c1
) ->
2878 self#on_Case env _visitors_c0 _visitors_c1
2879 method on_catch env
(_visitors_c0
,_visitors_c1
,_visitors_c2
) =
2880 let _visitors_r0 = self#on_sid env _visitors_c0
in
2881 let _visitors_r1 = self#on_lid env _visitors_c1
in
2882 let _visitors_r2 = self#on_block env _visitors_c2
in ()
2883 method on_field env
(_visitors_c0
,_visitors_c1
) =
2884 let _visitors_r0 = self#on_expr env _visitors_c0
in
2885 let _visitors_r1 = self#on_expr env _visitors_c1
in ()
2886 method on_AFvalue env _visitors_c0
=
2887 let _visitors_r0 = self#on_expr env _visitors_c0
in ()
2888 method on_AFkvalue env _visitors_c0 _visitors_c1
=
2889 let _visitors_r0 = self#on_expr env _visitors_c0
in
2890 let _visitors_r1 = self#on_expr env _visitors_c1
in ()
2891 method on_afield env _visitors_this
=
2892 match _visitors_this
with
2893 | AFvalue _visitors_c0
-> self#on_AFvalue env _visitors_c0
2894 | AFkvalue
(_visitors_c0
,_visitors_c1
) ->
2895 self#on_AFkvalue env _visitors_c0 _visitors_c1
2896 method on_Xhp_simple env _visitors_c0 _visitors_c1
=
2897 let _visitors_r0 = self#on_pstring env _visitors_c0
in
2898 let _visitors_r1 = self#on_expr env _visitors_c1
in ()
2899 method on_Xhp_spread env _visitors_c0
=
2900 let _visitors_r0 = self#on_expr env _visitors_c0
in ()
2901 method on_xhp_attribute env _visitors_this
=
2902 match _visitors_this
with
2903 | Xhp_simple
(_visitors_c0
,_visitors_c1
) ->
2904 self#on_Xhp_simple env _visitors_c0 _visitors_c1
2905 | Xhp_spread _visitors_c0
->
2906 self#on_Xhp_spread env _visitors_c0
2907 method on_Gena env _visitors_c0
=
2908 let _visitors_r0 = self#on_expr env _visitors_c0
in ()
2909 method on_Genva env _visitors_c0
=
2910 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
2913 method on_Gen_array_rec env _visitors_c0
=
2914 let _visitors_r0 = self#on_expr env _visitors_c0
in ()
2915 method on_special_func env _visitors_this
=
2916 match _visitors_this
with
2917 | Gena _visitors_c0
-> self#on_Gena env _visitors_c0
2918 | Genva _visitors_c0
-> self#on_Genva env _visitors_c0
2919 | Gen_array_rec _visitors_c0
->
2920 self#on_Gen_array_rec env _visitors_c0
2921 method on_is_reference env
= self#on_bool env
2922 method on_is_variadic env
= self#on_bool env
2923 method on_fun_param env _visitors_this
=
2925 self#on_option self#on_hint env _visitors_this
.param_hint
in
2927 self#on_is_reference env _visitors_this
.param_is_reference
2930 self#on_is_variadic env _visitors_this
.param_is_variadic
in
2931 let _visitors_r3 = self#on_pos env _visitors_this
.param_pos
in
2932 let _visitors_r4 = self#on_string env _visitors_this
.param_name
2935 self#on_option self#on_expr env _visitors_this
.param_expr
in
2937 self#on_option self#on_param_kind env
2938 _visitors_this
.param_callconv
2941 self#on_list self#on_user_attribute env
2942 _visitors_this
.param_user_attributes
2945 method on_FVvariadicArg env _visitors_c0
=
2946 let _visitors_r0 = self#on_fun_param env _visitors_c0
in ()
2947 method on_FVellipsis env
= ()
2948 method on_FVnonVariadic env
= ()
2949 method on_fun_variadicity env _visitors_this
=
2950 match _visitors_this
with
2951 | FVvariadicArg _visitors_c0
->
2952 self#on_FVvariadicArg env _visitors_c0
2953 | FVellipsis
-> self#on_FVellipsis env
2954 | FVnonVariadic
-> self#on_FVnonVariadic env
2955 method on_fun_ env _visitors_this
=
2957 self#on_env_annotation env _visitors_this
.f_annotation
in
2959 (fun _visitors_this
-> ()) _visitors_this
.f_mode
in
2961 self#on_option self#on_hint env _visitors_this
.f_ret
in
2962 let _visitors_r3 = self#on_sid env _visitors_this
.f_name
in
2964 self#on_list self#on_tparam env _visitors_this
.f_tparams
in
2966 self#on_list self#on_where_constraint env
2967 _visitors_this
.f_where_constraints
2970 self#on_fun_variadicity env _visitors_this
.f_variadic
in
2972 self#on_list self#on_fun_param env _visitors_this
.f_params
2974 let _visitors_r8 = self#on_func_body env _visitors_this
.f_body
2977 self#on_fun_kind env _visitors_this
.f_fun_kind
in
2979 self#on_list self#on_user_attribute env
2980 _visitors_this
.f_user_attributes
2983 self#on_bool env _visitors_this
.f_ret_by_ref
in
2985 method on_UnnamedBody env _visitors_c0
=
2986 let _visitors_r0 = self#on_func_unnamed_body env _visitors_c0
2989 method on_NamedBody env _visitors_c0
=
2990 let _visitors_r0 = self#on_func_named_body env _visitors_c0
in
2992 method on_func_body env _visitors_this
=
2993 match _visitors_this
with
2994 | UnnamedBody _visitors_c0
->
2995 self#on_UnnamedBody env _visitors_c0
2996 | NamedBody _visitors_c0
-> self#on_NamedBody env _visitors_c0
2997 method on_func_unnamed_body env _visitors_this
=
2999 (fun _visitors_this
-> ()) _visitors_this
.fub_ast
in
3001 (fun _visitors_this
-> ()) _visitors_this
.fub_tparams
in
3003 (fun _visitors_this
-> ()) _visitors_this
.fub_namespace
in
3005 method on_func_named_body env _visitors_this
=
3006 let _visitors_r0 = self#on_block env _visitors_this
.fnb_nast
3008 let _visitors_r1 = self#on_bool env _visitors_this
.fnb_unsafe
3011 method on_user_attribute env _visitors_this
=
3012 let _visitors_r0 = self#on_sid env _visitors_this
.ua_name
in
3014 self#on_list self#on_expr env _visitors_this
.ua_params
in
3016 method on_class_ env _visitors_this
=
3018 self#on_env_annotation env _visitors_this
.c_annotation
in
3020 (fun _visitors_this
-> ()) _visitors_this
.c_mode
in
3021 let _visitors_r2 = self#on_bool env _visitors_this
.c_final
in
3022 let _visitors_r3 = self#on_bool env _visitors_this
.c_is_xhp
in
3023 let _visitors_r4 = self#on_class_kind env _visitors_this
.c_kind
3025 let _visitors_r5 = self#on_sid env _visitors_this
.c_name
in
3027 (fun _visitors_this
-> ()) _visitors_this
.c_tparams
in
3029 self#on_list self#on_hint env _visitors_this
.c_extends
in
3031 self#on_list self#on_hint env _visitors_this
.c_uses
in
3033 self#on_list self#on_hint env _visitors_this
.c_xhp_attr_uses
3036 self#on_list self#on_pstring env
3037 _visitors_this
.c_xhp_category
3040 self#on_list self#on_hint env _visitors_this
.c_req_extends
3043 self#on_list self#on_hint env _visitors_this
.c_req_implements
3046 self#on_list self#on_hint env _visitors_this
.c_implements
in
3048 self#on_list self#on_class_const env _visitors_this
.c_consts
3051 self#on_list self#on_class_typeconst env
3052 _visitors_this
.c_typeconsts
3055 self#on_list self#on_class_var env
3056 _visitors_this
.c_static_vars
3059 self#on_list self#on_class_var env _visitors_this
.c_vars
in
3061 self#on_option self#on_method_ env
3062 _visitors_this
.c_constructor
3065 self#on_list self#on_method_ env
3066 _visitors_this
.c_static_methods
3069 self#on_list self#on_method_ env _visitors_this
.c_methods
in
3071 self#on_list self#on_user_attribute env
3072 _visitors_this
.c_user_attributes
3075 self#on_option self#on_enum_ env _visitors_this
.c_enum
in
3077 method on_class_const env
3078 (_visitors_c0
,_visitors_c1
,_visitors_c2
) =
3079 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0
3081 let _visitors_r1 = self#on_sid env _visitors_c1
in
3082 let _visitors_r2 = self#on_option self#on_expr env _visitors_c2
3085 method on_class_typeconst env _visitors_this
=
3086 let _visitors_r0 = self#on_sid env _visitors_this
.c_tconst_name
3089 self#on_option self#on_hint env
3090 _visitors_this
.c_tconst_constraint
3093 self#on_option self#on_hint env _visitors_this
.c_tconst_type
3096 method on_class_var env _visitors_this
=
3097 let _visitors_r0 = self#on_bool env _visitors_this
.cv_final
in
3098 let _visitors_r1 = self#on_bool env _visitors_this
.cv_is_xhp
3101 self#on_visibility env _visitors_this
.cv_visibility
in
3103 self#on_option self#on_hint env _visitors_this
.cv_type
in
3104 let _visitors_r4 = self#on_sid env _visitors_this
.cv_id
in
3106 self#on_option self#on_expr env _visitors_this
.cv_expr
in
3108 self#on_list self#on_user_attribute env
3109 _visitors_this
.cv_user_attributes
3112 method on_method_ env _visitors_this
=
3114 self#on_env_annotation env _visitors_this
.m_annotation
in
3115 let _visitors_r1 = self#on_bool env _visitors_this
.m_final
in
3116 let _visitors_r2 = self#on_bool env _visitors_this
.m_abstract
3119 self#on_visibility env _visitors_this
.m_visibility
in
3120 let _visitors_r4 = self#on_sid env _visitors_this
.m_name
in
3122 self#on_list self#on_tparam env _visitors_this
.m_tparams
in
3124 self#on_list self#on_where_constraint env
3125 _visitors_this
.m_where_constraints
3128 self#on_fun_variadicity env _visitors_this
.m_variadic
in
3130 self#on_list self#on_fun_param env _visitors_this
.m_params
3132 let _visitors_r9 = self#on_func_body env _visitors_this
.m_body
3135 self#on_fun_kind env _visitors_this
.m_fun_kind
in
3137 self#on_list self#on_user_attribute env
3138 _visitors_this
.m_user_attributes
3141 self#on_option self#on_hint env _visitors_this
.m_ret
in
3143 self#on_bool env _visitors_this
.m_ret_by_ref
in
3145 method on_typedef env _visitors_this
=
3147 self#on_env_annotation env _visitors_this
.t_annotation
in
3148 let _visitors_r1 = self#on_sid env _visitors_this
.t_name
in
3150 self#on_list self#on_tparam env _visitors_this
.t_tparams
in
3152 self#on_option self#on_hint env _visitors_this
.t_constraint
3154 let _visitors_r4 = self#on_hint env _visitors_this
.t_kind
in
3156 self#on_list self#on_user_attribute env
3157 _visitors_this
.t_user_attributes
3160 (fun _visitors_this
-> ()) _visitors_this
.t_mode
in
3162 self#on_typedef_visibility env _visitors_this
.t_vis
in
3164 method on_gconst env _visitors_this
=
3166 self#on_env_annotation env _visitors_this
.cst_annotation
in
3168 (fun _visitors_this
-> ()) _visitors_this
.cst_mode
in
3169 let _visitors_r2 = self#on_sid env _visitors_this
.cst_name
in
3171 self#on_option self#on_hint env _visitors_this
.cst_type
in
3173 self#on_option self#on_expr env _visitors_this
.cst_value
in
3175 self#on_bool env _visitors_this
.cst_is_define
in
3177 method on_Fun env _visitors_c0
=
3178 let _visitors_r0 = self#on_fun_ env _visitors_c0
in ()
3179 method on_Class env _visitors_c0
=
3180 let _visitors_r0 = self#on_class_ env _visitors_c0
in ()
3181 method on_Typedef env _visitors_c0
=
3182 let _visitors_r0 = self#on_typedef env _visitors_c0
in ()
3183 method on_Constant env _visitors_c0
=
3184 let _visitors_r0 = self#on_gconst env _visitors_c0
in ()
3185 method on_def env _visitors_this
=
3186 match _visitors_this
with
3187 | Fun _visitors_c0
-> self#on_Fun env _visitors_c0
3188 | Class _visitors_c0
-> self#on_Class env _visitors_c0
3189 | Typedef _visitors_c0
-> self#on_Typedef env _visitors_c0
3190 | Constant _visitors_c0
-> self#on_Constant env _visitors_c0
3196 [@@@ocaml
.warning
"-4-26-27"]
3197 [@@@VISITORS.BEGIN
]
3198 class virtual ['self
] reduce
=
3199 object (self
: 'self
)
3200 inherit [_
] reduce_defs
3201 method on_program env
= self#on_list self#on_def env
3202 method on_expr_annotation env _visitors_this
= self#zero
3203 method on_env_annotation env _visitors_this
= self#zero
3204 method on_Fallthrough env
= self#zero
3205 method on_Expr env _visitors_c0
=
3206 let _visitors_s0 = self#on_expr env _visitors_c0
in
3208 method on_Break env _visitors_c0
=
3209 let _visitors_s0 = self#on_pos env _visitors_c0
in
3211 method on_Continue env _visitors_c0
=
3212 let _visitors_s0 = self#on_pos env _visitors_c0
in
3214 method on_Throw env _visitors_c0 _visitors_c1
=
3215 let _visitors_s0 = self#on_is_terminal env _visitors_c0
in
3216 let _visitors_s1 = self#on_expr env _visitors_c1
in
3217 self#plus
_visitors_s0 _visitors_s1
3218 method on_Return env _visitors_c0 _visitors_c1
=
3219 let _visitors_s0 = self#on_pos env _visitors_c0
in
3220 let _visitors_s1 = self#on_option self#on_expr env _visitors_c1
3222 self#plus
_visitors_s0 _visitors_s1
3223 method on_GotoLabel env _visitors_c0
=
3224 let _visitors_s0 = self#on_pstring env _visitors_c0
in
3226 method on_Goto env _visitors_c0
=
3227 let _visitors_s0 = self#on_pstring env _visitors_c0
in
3229 method on_Static_var env _visitors_c0
=
3230 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0
3233 method on_Global_var env _visitors_c0
=
3234 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0
3237 method on_If env _visitors_c0 _visitors_c1 _visitors_c2
=
3238 let _visitors_s0 = self#on_expr env _visitors_c0
in
3239 let _visitors_s1 = self#on_block env _visitors_c1
in
3240 let _visitors_s2 = self#on_block env _visitors_c2
in
3241 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3242 method on_Do env _visitors_c0 _visitors_c1
=
3243 let _visitors_s0 = self#on_block env _visitors_c0
in
3244 let _visitors_s1 = self#on_expr env _visitors_c1
in
3245 self#plus
_visitors_s0 _visitors_s1
3246 method on_While env _visitors_c0 _visitors_c1
=
3247 let _visitors_s0 = self#on_expr env _visitors_c0
in
3248 let _visitors_s1 = self#on_block env _visitors_c1
in
3249 self#plus
_visitors_s0 _visitors_s1
3250 method on_Using env _visitors_c0 _visitors_c1 _visitors_c2
=
3251 let _visitors_s0 = self#on_bool env _visitors_c0
in
3252 let _visitors_s1 = self#on_expr env _visitors_c1
in
3253 let _visitors_s2 = self#on_block env _visitors_c2
in
3254 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3255 method on_For env _visitors_c0 _visitors_c1 _visitors_c2
3257 let _visitors_s0 = self#on_expr env _visitors_c0
in
3258 let _visitors_s1 = self#on_expr env _visitors_c1
in
3259 let _visitors_s2 = self#on_expr env _visitors_c2
in
3260 let _visitors_s3 = self#on_block env _visitors_c3
in
3262 (self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2)
3264 method on_Switch env _visitors_c0 _visitors_c1
=
3265 let _visitors_s0 = self#on_expr env _visitors_c0
in
3266 let _visitors_s1 = self#on_list self#on_case env _visitors_c1
3268 self#plus
_visitors_s0 _visitors_s1
3269 method on_Foreach env _visitors_c0 _visitors_c1 _visitors_c2
=
3270 let _visitors_s0 = self#on_expr env _visitors_c0
in
3271 let _visitors_s1 = self#on_as_expr env _visitors_c1
in
3272 let _visitors_s2 = self#on_block env _visitors_c2
in
3273 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3274 method on_Try env _visitors_c0 _visitors_c1 _visitors_c2
=
3275 let _visitors_s0 = self#on_block env _visitors_c0
in
3276 let _visitors_s1 = self#on_list self#on_catch env _visitors_c1
3278 let _visitors_s2 = self#on_block env _visitors_c2
in
3279 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3280 method on_Noop env
= self#zero
3281 method on_stmt env _visitors_this
=
3282 match _visitors_this
with
3283 | Fallthrough
-> self#on_Fallthrough env
3284 | Expr _visitors_c0
-> self#on_Expr env _visitors_c0
3285 | Break _visitors_c0
-> self#on_Break env _visitors_c0
3286 | Continue _visitors_c0
-> self#on_Continue env _visitors_c0
3287 | Throw
(_visitors_c0
,_visitors_c1
) ->
3288 self#on_Throw env _visitors_c0 _visitors_c1
3289 | Return
(_visitors_c0
,_visitors_c1
) ->
3290 self#on_Return env _visitors_c0 _visitors_c1
3291 | GotoLabel _visitors_c0
-> self#on_GotoLabel env _visitors_c0
3292 | Goto _visitors_c0
-> self#on_Goto env _visitors_c0
3293 | Static_var _visitors_c0
->
3294 self#on_Static_var env _visitors_c0
3295 | Global_var _visitors_c0
->
3296 self#on_Global_var env _visitors_c0
3297 | If
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
3298 self#on_If env _visitors_c0 _visitors_c1 _visitors_c2
3299 | Do
(_visitors_c0
,_visitors_c1
) ->
3300 self#on_Do env _visitors_c0 _visitors_c1
3301 | While
(_visitors_c0
,_visitors_c1
) ->
3302 self#on_While env _visitors_c0 _visitors_c1
3303 | Using
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
3304 self#on_Using env _visitors_c0 _visitors_c1 _visitors_c2
3305 | For
(_visitors_c0
,_visitors_c1
,_visitors_c2
,_visitors_c3
) ->
3306 self#on_For env _visitors_c0 _visitors_c1 _visitors_c2
3308 | Switch
(_visitors_c0
,_visitors_c1
) ->
3309 self#on_Switch env _visitors_c0 _visitors_c1
3310 | Foreach
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
3311 self#on_Foreach env _visitors_c0 _visitors_c1 _visitors_c2
3312 | Try
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
3313 self#on_Try env _visitors_c0 _visitors_c1 _visitors_c2
3314 | Noop
-> self#on_Noop env
3315 method on_As_v env _visitors_c0
=
3316 let _visitors_s0 = self#on_expr env _visitors_c0
in
3318 method on_As_kv env _visitors_c0 _visitors_c1
=
3319 let _visitors_s0 = self#on_expr env _visitors_c0
in
3320 let _visitors_s1 = self#on_expr env _visitors_c1
in
3321 self#plus
_visitors_s0 _visitors_s1
3322 method on_Await_as_v env _visitors_c0 _visitors_c1
=
3323 let _visitors_s0 = self#on_pos env _visitors_c0
in
3324 let _visitors_s1 = self#on_expr env _visitors_c1
in
3325 self#plus
_visitors_s0 _visitors_s1
3326 method on_Await_as_kv env _visitors_c0 _visitors_c1 _visitors_c2
3328 let _visitors_s0 = self#on_pos env _visitors_c0
in
3329 let _visitors_s1 = self#on_expr env _visitors_c1
in
3330 let _visitors_s2 = self#on_expr env _visitors_c2
in
3331 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3332 method on_as_expr env _visitors_this
=
3333 match _visitors_this
with
3334 | As_v _visitors_c0
-> self#on_As_v env _visitors_c0
3335 | As_kv
(_visitors_c0
,_visitors_c1
) ->
3336 self#on_As_kv env _visitors_c0 _visitors_c1
3337 | Await_as_v
(_visitors_c0
,_visitors_c1
) ->
3338 self#on_Await_as_v env _visitors_c0 _visitors_c1
3339 | Await_as_kv
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
3340 self#on_Await_as_kv env _visitors_c0 _visitors_c1
3342 method on_block env
= self#on_list self#on_stmt env
3343 method on_CIparent env
= self#zero
3344 method on_CIself env
= self#zero
3345 method on_CIstatic env
= self#zero
3346 method on_CIexpr env _visitors_c0
=
3347 let _visitors_s0 = self#on_expr env _visitors_c0
in
3349 method on_CI env _visitors_c0
=
3350 let _visitors_s0 = self#on_instantiated_sid env _visitors_c0
3353 method on_class_id env _visitors_this
=
3354 match _visitors_this
with
3355 | CIparent
-> self#on_CIparent env
3356 | CIself
-> self#on_CIself env
3357 | CIstatic
-> self#on_CIstatic env
3358 | CIexpr _visitors_c0
-> self#on_CIexpr env _visitors_c0
3359 | CI _visitors_c0
-> self#on_CI env _visitors_c0
3360 method on_expr env
(_visitors_c0
,_visitors_c1
) =
3361 let _visitors_s0 = self#on_expr_annotation env _visitors_c0
in
3362 let _visitors_s1 = self#on_expr_ env _visitors_c1
in
3363 self#plus
_visitors_s0 _visitors_s1
3364 method on_Array env _visitors_c0
=
3365 let _visitors_s0 = self#on_list self#on_afield env _visitors_c0
3368 method on_Darray env _visitors_c0
=
3372 fun (_visitors_c0
,_visitors_c1
) ->
3373 let _visitors_s0 = self#on_expr env _visitors_c0
in
3374 let _visitors_s1 = self#on_expr env _visitors_c1
in
3375 self#plus
_visitors_s0 _visitors_s1) env _visitors_c0
3378 method on_Varray env _visitors_c0
=
3379 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0
3382 method on_Shape env _visitors_c0
=
3384 self#on_shape_map self#on_expr env _visitors_c0
in
3386 method on_ValCollection env _visitors_c0 _visitors_c1
=
3387 let _visitors_s0 = self#on_vc_kind env _visitors_c0
in
3388 let _visitors_s1 = self#on_list self#on_expr env _visitors_c1
3390 self#plus
_visitors_s0 _visitors_s1
3391 method on_KeyValCollection env _visitors_c0 _visitors_c1
=
3392 let _visitors_s0 = self#on_kvc_kind env _visitors_c0
in
3393 let _visitors_s1 = self#on_list self#on_field env _visitors_c1
3395 self#plus
_visitors_s0 _visitors_s1
3396 method on_Null env
= self#zero
3397 method on_This env
= self#zero
3398 method on_True env
= self#zero
3399 method on_False env
= self#zero
3400 method on_Id env _visitors_c0
=
3401 let _visitors_s0 = self#on_sid env _visitors_c0
in
3403 method on_Lvar env _visitors_c0
=
3404 let _visitors_s0 = self#on_lid env _visitors_c0
in
3406 method on_Dollar env _visitors_c0
=
3407 let _visitors_s0 = self#on_expr env _visitors_c0
in
3409 method on_Dollardollar env _visitors_c0
=
3410 let _visitors_s0 = self#on_lid env _visitors_c0
in
3412 method on_Clone env _visitors_c0
=
3413 let _visitors_s0 = self#on_expr env _visitors_c0
in
3415 method on_Obj_get env _visitors_c0 _visitors_c1 _visitors_c2
=
3416 let _visitors_s0 = self#on_expr env _visitors_c0
in
3417 let _visitors_s1 = self#on_expr env _visitors_c1
in
3418 let _visitors_s2 = self#on_og_null_flavor env _visitors_c2
in
3419 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3420 method on_Array_get env _visitors_c0 _visitors_c1
=
3421 let _visitors_s0 = self#on_expr env _visitors_c0
in
3422 let _visitors_s1 = self#on_option self#on_expr env _visitors_c1
3424 self#plus
_visitors_s0 _visitors_s1
3425 method on_Class_get env _visitors_c0 _visitors_c1
=
3426 let _visitors_s0 = self#on_class_id env _visitors_c0
in
3427 let _visitors_s1 = self#on_pstring env _visitors_c1
in
3428 self#plus
_visitors_s0 _visitors_s1
3429 method on_Class_const env _visitors_c0 _visitors_c1
=
3430 let _visitors_s0 = self#on_class_id env _visitors_c0
in
3431 let _visitors_s1 = self#on_pstring env _visitors_c1
in
3432 self#plus
_visitors_s0 _visitors_s1
3433 method on_Call env _visitors_c0 _visitors_c1 _visitors_c2
3434 _visitors_c3 _visitors_c4
=
3435 let _visitors_s0 = self#on_call_type env _visitors_c0
in
3436 let _visitors_s1 = self#on_expr env _visitors_c1
in
3437 let _visitors_s2 = self#on_list self#on_hint env _visitors_c2
3439 let _visitors_s3 = self#on_list self#on_expr env _visitors_c3
3441 let _visitors_s4 = self#on_list self#on_expr env _visitors_c4
3445 (self#plus
(self#plus
_visitors_s0 _visitors_s1)
3446 _visitors_s2) _visitors_s3) _visitors_s4
3447 method on_Int env _visitors_c0
=
3448 let _visitors_s0 = self#on_pstring env _visitors_c0
in
3450 method on_Float env _visitors_c0
=
3451 let _visitors_s0 = self#on_pstring env _visitors_c0
in
3453 method on_String env _visitors_c0
=
3454 let _visitors_s0 = self#on_pstring env _visitors_c0
in
3456 method on_String2 env _visitors_c0
=
3457 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0
3460 method on_Yield env _visitors_c0
=
3461 let _visitors_s0 = self#on_afield env _visitors_c0
in
3463 method on_Yield_break env
= self#zero
3464 method on_Await env _visitors_c0
=
3465 let _visitors_s0 = self#on_expr env _visitors_c0
in
3467 method on_Suspend env _visitors_c0
=
3468 let _visitors_s0 = self#on_expr env _visitors_c0
in
3470 method on_List env _visitors_c0
=
3471 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0
3474 method on_Expr_list env _visitors_c0
=
3475 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0
3478 method on_Cast env _visitors_c0 _visitors_c1
=
3479 let _visitors_s0 = self#on_hint env _visitors_c0
in
3480 let _visitors_s1 = self#on_expr env _visitors_c1
in
3481 self#plus
_visitors_s0 _visitors_s1
3482 method on_Unop env _visitors_c0 _visitors_c1
=
3483 let _visitors_s0 = self#on_uop env _visitors_c0
in
3484 let _visitors_s1 = self#on_expr env _visitors_c1
in
3485 self#plus
_visitors_s0 _visitors_s1
3486 method on_Binop env _visitors_c0 _visitors_c1 _visitors_c2
=
3487 let _visitors_s0 = self#on_bop env _visitors_c0
in
3488 let _visitors_s1 = self#on_expr env _visitors_c1
in
3489 let _visitors_s2 = self#on_expr env _visitors_c2
in
3490 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3491 method on_Pipe env _visitors_c0 _visitors_c1 _visitors_c2
=
3492 let _visitors_s0 = self#on_lid env _visitors_c0
in
3493 let _visitors_s1 = self#on_expr env _visitors_c1
in
3494 let _visitors_s2 = self#on_expr env _visitors_c2
in
3495 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3496 method on_Eif env _visitors_c0 _visitors_c1 _visitors_c2
=
3497 let _visitors_s0 = self#on_expr env _visitors_c0
in
3498 let _visitors_s1 = self#on_option self#on_expr env _visitors_c1
3500 let _visitors_s2 = self#on_expr env _visitors_c2
in
3501 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3502 method on_NullCoalesce env _visitors_c0 _visitors_c1
=
3503 let _visitors_s0 = self#on_expr env _visitors_c0
in
3504 let _visitors_s1 = self#on_expr env _visitors_c1
in
3505 self#plus
_visitors_s0 _visitors_s1
3506 method on_InstanceOf env _visitors_c0 _visitors_c1
=
3507 let _visitors_s0 = self#on_expr env _visitors_c0
in
3508 let _visitors_s1 = self#on_class_id env _visitors_c1
in
3509 self#plus
_visitors_s0 _visitors_s1
3510 method on_Is env _visitors_c0 _visitors_c1
=
3511 let _visitors_s0 = self#on_expr env _visitors_c0
in
3512 let _visitors_s1 = self#on_hint env _visitors_c1
in
3513 self#plus
_visitors_s0 _visitors_s1
3514 method on_New env _visitors_c0 _visitors_c1 _visitors_c2
=
3515 let _visitors_s0 = self#on_class_id env _visitors_c0
in
3516 let _visitors_s1 = self#on_list self#on_expr env _visitors_c1
3518 let _visitors_s2 = self#on_list self#on_expr env _visitors_c2
3520 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3521 method on_Efun env _visitors_c0 _visitors_c1
=
3522 let _visitors_s0 = self#on_fun_ env _visitors_c0
in
3523 let _visitors_s1 = self#on_list self#on_lid env _visitors_c1
3525 self#plus
_visitors_s0 _visitors_s1
3526 method on_Xml env _visitors_c0 _visitors_c1 _visitors_c2
=
3527 let _visitors_s0 = self#on_sid env _visitors_c0
in
3529 self#on_list self#on_xhp_attribute env _visitors_c1
in
3530 let _visitors_s2 = self#on_list self#on_expr env _visitors_c2
3532 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3533 method on_Callconv env _visitors_c0 _visitors_c1
=
3534 let _visitors_s0 = self#on_param_kind env _visitors_c0
in
3535 let _visitors_s1 = self#on_expr env _visitors_c1
in
3536 self#plus
_visitors_s0 _visitors_s1
3537 method on_Lplaceholder env _visitors_c0
=
3538 let _visitors_s0 = self#on_pos env _visitors_c0
in
3540 method on_Fun_id env _visitors_c0
=
3541 let _visitors_s0 = self#on_sid env _visitors_c0
in
3543 method on_Method_id env _visitors_c0 _visitors_c1
=
3544 let _visitors_s0 = self#on_expr env _visitors_c0
in
3545 let _visitors_s1 = self#on_pstring env _visitors_c1
in
3546 self#plus
_visitors_s0 _visitors_s1
3547 method on_Method_caller env _visitors_c0 _visitors_c1
=
3548 let _visitors_s0 = self#on_sid env _visitors_c0
in
3549 let _visitors_s1 = self#on_pstring env _visitors_c1
in
3550 self#plus
_visitors_s0 _visitors_s1
3551 method on_Smethod_id env _visitors_c0 _visitors_c1
=
3552 let _visitors_s0 = self#on_sid env _visitors_c0
in
3553 let _visitors_s1 = self#on_pstring env _visitors_c1
in
3554 self#plus
_visitors_s0 _visitors_s1
3555 method on_Special_func env _visitors_c0
=
3556 let _visitors_s0 = self#on_special_func env _visitors_c0
in
3558 method on_Pair env _visitors_c0 _visitors_c1
=
3559 let _visitors_s0 = self#on_expr env _visitors_c0
in
3560 let _visitors_s1 = self#on_expr env _visitors_c1
in
3561 self#plus
_visitors_s0 _visitors_s1
3562 method on_Assert env _visitors_c0
=
3563 let _visitors_s0 = self#on_assert_expr env _visitors_c0
in
3565 method on_Typename env _visitors_c0
=
3566 let _visitors_s0 = self#on_sid env _visitors_c0
in
3568 method on_Any env
= self#zero
3569 method on_expr_ env _visitors_this
=
3570 match _visitors_this
with
3571 | Array _visitors_c0
-> self#on_Array env _visitors_c0
3572 | Darray _visitors_c0
-> self#on_Darray env _visitors_c0
3573 | Varray _visitors_c0
-> self#on_Varray env _visitors_c0
3574 | Shape _visitors_c0
-> self#on_Shape env _visitors_c0
3575 | ValCollection
(_visitors_c0
,_visitors_c1
) ->
3576 self#on_ValCollection env _visitors_c0 _visitors_c1
3577 | KeyValCollection
(_visitors_c0
,_visitors_c1
) ->
3578 self#on_KeyValCollection env _visitors_c0 _visitors_c1
3579 | Null
-> self#on_Null env
3580 | This
-> self#on_This env
3581 | True
-> self#on_True env
3582 | False
-> self#on_False env
3583 | Id _visitors_c0
-> self#on_Id env _visitors_c0
3584 | Lvar _visitors_c0
-> self#on_Lvar env _visitors_c0
3585 | Dollar _visitors_c0
-> self#on_Dollar env _visitors_c0
3586 | Dollardollar _visitors_c0
->
3587 self#on_Dollardollar env _visitors_c0
3588 | Clone _visitors_c0
-> self#on_Clone env _visitors_c0
3589 | Obj_get
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
3590 self#on_Obj_get env _visitors_c0 _visitors_c1 _visitors_c2
3591 | Array_get
(_visitors_c0
,_visitors_c1
) ->
3592 self#on_Array_get env _visitors_c0 _visitors_c1
3593 | Class_get
(_visitors_c0
,_visitors_c1
) ->
3594 self#on_Class_get env _visitors_c0 _visitors_c1
3595 | Class_const
(_visitors_c0
,_visitors_c1
) ->
3596 self#on_Class_const env _visitors_c0 _visitors_c1
3598 (_visitors_c0
,_visitors_c1
,_visitors_c2
,_visitors_c3
,_visitors_c4
)
3600 self#on_Call env _visitors_c0 _visitors_c1 _visitors_c2
3601 _visitors_c3 _visitors_c4
3602 | Int _visitors_c0
-> self#on_Int env _visitors_c0
3603 | Float _visitors_c0
-> self#on_Float env _visitors_c0
3604 | String _visitors_c0
-> self#on_String env _visitors_c0
3605 | String2 _visitors_c0
-> self#on_String2 env _visitors_c0
3606 | Yield _visitors_c0
-> self#on_Yield env _visitors_c0
3607 | Yield_break
-> self#on_Yield_break env
3608 | Await _visitors_c0
-> self#on_Await env _visitors_c0
3609 | Suspend _visitors_c0
-> self#on_Suspend env _visitors_c0
3610 | List _visitors_c0
-> self#on_List env _visitors_c0
3611 | Expr_list _visitors_c0
-> self#on_Expr_list env _visitors_c0
3612 | Cast
(_visitors_c0
,_visitors_c1
) ->
3613 self#on_Cast env _visitors_c0 _visitors_c1
3614 | Unop
(_visitors_c0
,_visitors_c1
) ->
3615 self#on_Unop env _visitors_c0 _visitors_c1
3616 | Binop
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
3617 self#on_Binop env _visitors_c0 _visitors_c1 _visitors_c2
3618 | Pipe
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
3619 self#on_Pipe env _visitors_c0 _visitors_c1 _visitors_c2
3620 | Eif
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
3621 self#on_Eif env _visitors_c0 _visitors_c1 _visitors_c2
3622 | NullCoalesce
(_visitors_c0
,_visitors_c1
) ->
3623 self#on_NullCoalesce env _visitors_c0 _visitors_c1
3624 | InstanceOf
(_visitors_c0
,_visitors_c1
) ->
3625 self#on_InstanceOf env _visitors_c0 _visitors_c1
3626 | Is
(_visitors_c0
,_visitors_c1
) ->
3627 self#on_Is env _visitors_c0 _visitors_c1
3628 | New
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
3629 self#on_New env _visitors_c0 _visitors_c1 _visitors_c2
3630 | Efun
(_visitors_c0
,_visitors_c1
) ->
3631 self#on_Efun env _visitors_c0 _visitors_c1
3632 | Xml
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
3633 self#on_Xml env _visitors_c0 _visitors_c1 _visitors_c2
3634 | Callconv
(_visitors_c0
,_visitors_c1
) ->
3635 self#on_Callconv env _visitors_c0 _visitors_c1
3636 | Lplaceholder _visitors_c0
->
3637 self#on_Lplaceholder env _visitors_c0
3638 | Fun_id _visitors_c0
-> self#on_Fun_id env _visitors_c0
3639 | Method_id
(_visitors_c0
,_visitors_c1
) ->
3640 self#on_Method_id env _visitors_c0 _visitors_c1
3641 | Method_caller
(_visitors_c0
,_visitors_c1
) ->
3642 self#on_Method_caller env _visitors_c0 _visitors_c1
3643 | Smethod_id
(_visitors_c0
,_visitors_c1
) ->
3644 self#on_Smethod_id env _visitors_c0 _visitors_c1
3645 | Special_func _visitors_c0
->
3646 self#on_Special_func env _visitors_c0
3647 | Pair
(_visitors_c0
,_visitors_c1
) ->
3648 self#on_Pair env _visitors_c0 _visitors_c1
3649 | Assert _visitors_c0
-> self#on_Assert env _visitors_c0
3650 | Typename _visitors_c0
-> self#on_Typename env _visitors_c0
3651 | Any
-> self#on_Any env
3652 method on_AE_assert env _visitors_c0
=
3653 let _visitors_s0 = self#on_expr env _visitors_c0
in
3655 method on_assert_expr env _visitors_this
=
3656 match _visitors_this
with
3657 | AE_assert _visitors_c0
-> self#on_AE_assert env _visitors_c0
3658 method on_Default env _visitors_c0
=
3659 let _visitors_s0 = self#on_block env _visitors_c0
in
3661 method on_Case env _visitors_c0 _visitors_c1
=
3662 let _visitors_s0 = self#on_expr env _visitors_c0
in
3663 let _visitors_s1 = self#on_block env _visitors_c1
in
3664 self#plus
_visitors_s0 _visitors_s1
3665 method on_case env _visitors_this
=
3666 match _visitors_this
with
3667 | Default _visitors_c0
-> self#on_Default env _visitors_c0
3668 | Case
(_visitors_c0
,_visitors_c1
) ->
3669 self#on_Case env _visitors_c0 _visitors_c1
3670 method on_catch env
(_visitors_c0
,_visitors_c1
,_visitors_c2
) =
3671 let _visitors_s0 = self#on_sid env _visitors_c0
in
3672 let _visitors_s1 = self#on_lid env _visitors_c1
in
3673 let _visitors_s2 = self#on_block env _visitors_c2
in
3674 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3675 method on_field env
(_visitors_c0
,_visitors_c1
) =
3676 let _visitors_s0 = self#on_expr env _visitors_c0
in
3677 let _visitors_s1 = self#on_expr env _visitors_c1
in
3678 self#plus
_visitors_s0 _visitors_s1
3679 method on_AFvalue env _visitors_c0
=
3680 let _visitors_s0 = self#on_expr env _visitors_c0
in
3682 method on_AFkvalue env _visitors_c0 _visitors_c1
=
3683 let _visitors_s0 = self#on_expr env _visitors_c0
in
3684 let _visitors_s1 = self#on_expr env _visitors_c1
in
3685 self#plus
_visitors_s0 _visitors_s1
3686 method on_afield env _visitors_this
=
3687 match _visitors_this
with
3688 | AFvalue _visitors_c0
-> self#on_AFvalue env _visitors_c0
3689 | AFkvalue
(_visitors_c0
,_visitors_c1
) ->
3690 self#on_AFkvalue env _visitors_c0 _visitors_c1
3691 method on_Xhp_simple env _visitors_c0 _visitors_c1
=
3692 let _visitors_s0 = self#on_pstring env _visitors_c0
in
3693 let _visitors_s1 = self#on_expr env _visitors_c1
in
3694 self#plus
_visitors_s0 _visitors_s1
3695 method on_Xhp_spread env _visitors_c0
=
3696 let _visitors_s0 = self#on_expr env _visitors_c0
in
3698 method on_xhp_attribute env _visitors_this
=
3699 match _visitors_this
with
3700 | Xhp_simple
(_visitors_c0
,_visitors_c1
) ->
3701 self#on_Xhp_simple env _visitors_c0 _visitors_c1
3702 | Xhp_spread _visitors_c0
->
3703 self#on_Xhp_spread env _visitors_c0
3704 method on_Gena env _visitors_c0
=
3705 let _visitors_s0 = self#on_expr env _visitors_c0
in
3707 method on_Genva env _visitors_c0
=
3708 let _visitors_s0 = self#on_list self#on_expr env _visitors_c0
3711 method on_Gen_array_rec env _visitors_c0
=
3712 let _visitors_s0 = self#on_expr env _visitors_c0
in
3714 method on_special_func env _visitors_this
=
3715 match _visitors_this
with
3716 | Gena _visitors_c0
-> self#on_Gena env _visitors_c0
3717 | Genva _visitors_c0
-> self#on_Genva env _visitors_c0
3718 | Gen_array_rec _visitors_c0
->
3719 self#on_Gen_array_rec env _visitors_c0
3720 method on_is_reference env
= self#on_bool env
3721 method on_is_variadic env
= self#on_bool env
3722 method on_fun_param env _visitors_this
=
3724 self#on_option self#on_hint env _visitors_this
.param_hint
in
3726 self#on_is_reference env _visitors_this
.param_is_reference
3729 self#on_is_variadic env _visitors_this
.param_is_variadic
in
3730 let _visitors_s3 = self#on_pos env _visitors_this
.param_pos
in
3731 let _visitors_s4 = self#on_string env _visitors_this
.param_name
3734 self#on_option self#on_expr env _visitors_this
.param_expr
in
3736 self#on_option self#on_param_kind env
3737 _visitors_this
.param_callconv
3740 self#on_list self#on_user_attribute env
3741 _visitors_this
.param_user_attributes
3748 (self#plus
(self#plus
_visitors_s0 _visitors_s1)
3749 _visitors_s2) _visitors_s3) _visitors_s4)
3750 _visitors_s5) _visitors_s6) _visitors_s7
3751 method on_FVvariadicArg env _visitors_c0
=
3752 let _visitors_s0 = self#on_fun_param env _visitors_c0
in
3754 method on_FVellipsis env
= self#zero
3755 method on_FVnonVariadic env
= self#zero
3756 method on_fun_variadicity env _visitors_this
=
3757 match _visitors_this
with
3758 | FVvariadicArg _visitors_c0
->
3759 self#on_FVvariadicArg env _visitors_c0
3760 | FVellipsis
-> self#on_FVellipsis env
3761 | FVnonVariadic
-> self#on_FVnonVariadic env
3762 method on_fun_ env _visitors_this
=
3764 self#on_env_annotation env _visitors_this
.f_annotation
in
3766 (fun _visitors_this
-> self#zero
) _visitors_this
.f_mode
in
3768 self#on_option self#on_hint env _visitors_this
.f_ret
in
3769 let _visitors_s3 = self#on_sid env _visitors_this
.f_name
in
3771 self#on_list self#on_tparam env _visitors_this
.f_tparams
in
3773 self#on_list self#on_where_constraint env
3774 _visitors_this
.f_where_constraints
3777 self#on_fun_variadicity env _visitors_this
.f_variadic
in
3779 self#on_list self#on_fun_param env _visitors_this
.f_params
3781 let _visitors_s8 = self#on_func_body env _visitors_this
.f_body
3784 self#on_fun_kind env _visitors_this
.f_fun_kind
in
3786 self#on_list self#on_user_attribute env
3787 _visitors_this
.f_user_attributes
3790 self#on_bool env _visitors_this
.f_ret_by_ref
in
3801 (self#plus
_visitors_s0
3802 _visitors_s1) _visitors_s2)
3803 _visitors_s3) _visitors_s4)
3804 _visitors_s5) _visitors_s6) _visitors_s7)
3805 _visitors_s8) _visitors_s9) _visitors_s10)
3807 method on_UnnamedBody env _visitors_c0
=
3808 let _visitors_s0 = self#on_func_unnamed_body env _visitors_c0
3811 method on_NamedBody env _visitors_c0
=
3812 let _visitors_s0 = self#on_func_named_body env _visitors_c0
in
3814 method on_func_body env _visitors_this
=
3815 match _visitors_this
with
3816 | UnnamedBody _visitors_c0
->
3817 self#on_UnnamedBody env _visitors_c0
3818 | NamedBody _visitors_c0
-> self#on_NamedBody env _visitors_c0
3819 method on_func_unnamed_body env _visitors_this
=
3821 (fun _visitors_this
-> self#zero
) _visitors_this
.fub_ast
in
3823 (fun _visitors_this
-> self#zero
) _visitors_this
.fub_tparams
3826 (fun _visitors_this
-> self#zero
)
3827 _visitors_this
.fub_namespace
3829 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3830 method on_func_named_body env _visitors_this
=
3831 let _visitors_s0 = self#on_block env _visitors_this
.fnb_nast
3833 let _visitors_s1 = self#on_bool env _visitors_this
.fnb_unsafe
3835 self#plus
_visitors_s0 _visitors_s1
3836 method on_user_attribute env _visitors_this
=
3837 let _visitors_s0 = self#on_sid env _visitors_this
.ua_name
in
3839 self#on_list self#on_expr env _visitors_this
.ua_params
in
3840 self#plus
_visitors_s0 _visitors_s1
3841 method on_class_ env _visitors_this
=
3843 self#on_env_annotation env _visitors_this
.c_annotation
in
3845 (fun _visitors_this
-> self#zero
) _visitors_this
.c_mode
in
3846 let _visitors_s2 = self#on_bool env _visitors_this
.c_final
in
3847 let _visitors_s3 = self#on_bool env _visitors_this
.c_is_xhp
in
3848 let _visitors_s4 = self#on_class_kind env _visitors_this
.c_kind
3850 let _visitors_s5 = self#on_sid env _visitors_this
.c_name
in
3852 (fun _visitors_this
-> self#zero
) _visitors_this
.c_tparams
3855 self#on_list self#on_hint env _visitors_this
.c_extends
in
3857 self#on_list self#on_hint env _visitors_this
.c_uses
in
3859 self#on_list self#on_hint env _visitors_this
.c_xhp_attr_uses
3862 self#on_list self#on_pstring env
3863 _visitors_this
.c_xhp_category
3866 self#on_list self#on_hint env _visitors_this
.c_req_extends
3869 self#on_list self#on_hint env _visitors_this
.c_req_implements
3872 self#on_list self#on_hint env _visitors_this
.c_implements
in
3874 self#on_list self#on_class_const env _visitors_this
.c_consts
3877 self#on_list self#on_class_typeconst env
3878 _visitors_this
.c_typeconsts
3881 self#on_list self#on_class_var env
3882 _visitors_this
.c_static_vars
3885 self#on_list self#on_class_var env _visitors_this
.c_vars
in
3887 self#on_option self#on_method_ env
3888 _visitors_this
.c_constructor
3891 self#on_list self#on_method_ env
3892 _visitors_this
.c_static_methods
3895 self#on_list self#on_method_ env _visitors_this
.c_methods
in
3897 self#on_list self#on_user_attribute env
3898 _visitors_this
.c_user_attributes
3901 self#on_option self#on_enum_ env _visitors_this
.c_enum
in
3935 _visitors_s11) _visitors_s12)
3936 _visitors_s13) _visitors_s14)
3937 _visitors_s15) _visitors_s16)
3938 _visitors_s17) _visitors_s18) _visitors_s19)
3939 _visitors_s20) _visitors_s21) _visitors_s22
3940 method on_class_const env
3941 (_visitors_c0
,_visitors_c1
,_visitors_c2
) =
3942 let _visitors_s0 = self#on_option self#on_hint env _visitors_c0
3944 let _visitors_s1 = self#on_sid env _visitors_c1
in
3945 let _visitors_s2 = self#on_option self#on_expr env _visitors_c2
3947 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3948 method on_class_typeconst env _visitors_this
=
3949 let _visitors_s0 = self#on_sid env _visitors_this
.c_tconst_name
3952 self#on_option self#on_hint env
3953 _visitors_this
.c_tconst_constraint
3956 self#on_option self#on_hint env _visitors_this
.c_tconst_type
3958 self#plus
(self#plus
_visitors_s0 _visitors_s1) _visitors_s2
3959 method on_class_var env _visitors_this
=
3960 let _visitors_s0 = self#on_bool env _visitors_this
.cv_final
in
3961 let _visitors_s1 = self#on_bool env _visitors_this
.cv_is_xhp
3964 self#on_visibility env _visitors_this
.cv_visibility
in
3966 self#on_option self#on_hint env _visitors_this
.cv_type
in
3967 let _visitors_s4 = self#on_sid env _visitors_this
.cv_id
in
3969 self#on_option self#on_expr env _visitors_this
.cv_expr
in
3971 self#on_list self#on_user_attribute env
3972 _visitors_this
.cv_user_attributes
3978 (self#plus
(self#plus
_visitors_s0 _visitors_s1)
3979 _visitors_s2) _visitors_s3) _visitors_s4)
3980 _visitors_s5) _visitors_s6
3981 method on_method_ env _visitors_this
=
3983 self#on_env_annotation env _visitors_this
.m_annotation
in
3984 let _visitors_s1 = self#on_bool env _visitors_this
.m_final
in
3985 let _visitors_s2 = self#on_bool env _visitors_this
.m_abstract
3988 self#on_visibility env _visitors_this
.m_visibility
in
3989 let _visitors_s4 = self#on_sid env _visitors_this
.m_name
in
3991 self#on_list self#on_tparam env _visitors_this
.m_tparams
in
3993 self#on_list self#on_where_constraint env
3994 _visitors_this
.m_where_constraints
3997 self#on_fun_variadicity env _visitors_this
.m_variadic
in
3999 self#on_list self#on_fun_param env _visitors_this
.m_params
4001 let _visitors_s9 = self#on_func_body env _visitors_this
.m_body
4004 self#on_fun_kind env _visitors_this
.m_fun_kind
in
4006 self#on_list self#on_user_attribute env
4007 _visitors_this
.m_user_attributes
4010 self#on_option self#on_hint env _visitors_this
.m_ret
in
4012 self#on_bool env _visitors_this
.m_ret_by_ref
in
4025 (self#plus
_visitors_s0
4027 _visitors_s2) _visitors_s3)
4028 _visitors_s4) _visitors_s5)
4029 _visitors_s6) _visitors_s7) _visitors_s8)
4030 _visitors_s9) _visitors_s10) _visitors_s11)
4031 _visitors_s12) _visitors_s13
4032 method on_typedef env _visitors_this
=
4034 self#on_env_annotation env _visitors_this
.t_annotation
in
4035 let _visitors_s1 = self#on_sid env _visitors_this
.t_name
in
4037 self#on_list self#on_tparam env _visitors_this
.t_tparams
in
4039 self#on_option self#on_hint env _visitors_this
.t_constraint
4041 let _visitors_s4 = self#on_hint env _visitors_this
.t_kind
in
4043 self#on_list self#on_user_attribute env
4044 _visitors_this
.t_user_attributes
4047 (fun _visitors_this
-> self#zero
) _visitors_this
.t_mode
in
4049 self#on_typedef_visibility env _visitors_this
.t_vis
in
4055 (self#plus
(self#plus
_visitors_s0 _visitors_s1)
4056 _visitors_s2) _visitors_s3) _visitors_s4)
4057 _visitors_s5) _visitors_s6) _visitors_s7
4058 method on_gconst env _visitors_this
=
4060 self#on_env_annotation env _visitors_this
.cst_annotation
in
4062 (fun _visitors_this
-> self#zero
) _visitors_this
.cst_mode
4064 let _visitors_s2 = self#on_sid env _visitors_this
.cst_name
in
4066 self#on_option self#on_hint env _visitors_this
.cst_type
in
4068 self#on_option self#on_expr env _visitors_this
.cst_value
in
4070 self#on_bool env _visitors_this
.cst_is_define
in
4074 (self#plus
(self#plus
_visitors_s0 _visitors_s1)
4075 _visitors_s2) _visitors_s3) _visitors_s4)
4077 method on_Fun env _visitors_c0
=
4078 let _visitors_s0 = self#on_fun_ env _visitors_c0
in
4080 method on_Class env _visitors_c0
=
4081 let _visitors_s0 = self#on_class_ env _visitors_c0
in
4083 method on_Typedef env _visitors_c0
=
4084 let _visitors_s0 = self#on_typedef env _visitors_c0
in
4086 method on_Constant env _visitors_c0
=
4087 let _visitors_s0 = self#on_gconst env _visitors_c0
in
4089 method on_def env _visitors_this
=
4090 match _visitors_this
with
4091 | Fun _visitors_c0
-> self#on_Fun env _visitors_c0
4092 | Class _visitors_c0
-> self#on_Class env _visitors_c0
4093 | Typedef _visitors_c0
-> self#on_Typedef env _visitors_c0
4094 | Constant _visitors_c0
-> self#on_Constant env _visitors_c0
4100 [@@@ocaml
.warning
"-4-26-27"]
4101 [@@@VISITORS.BEGIN
]
4102 class virtual ['self
] map
=
4103 object (self
: 'self
)
4104 inherit [_
] map_defs
4105 method on_program env
= self#on_list self#on_def env
4106 method on_expr_annotation env _visitors_this
= _visitors_this
4107 method on_env_annotation env _visitors_this
= _visitors_this
4108 method on_Fallthrough env
= Fallthrough
4109 method on_Expr env _visitors_c0
=
4110 let _visitors_r0 = self#on_expr env _visitors_c0
in
4112 method on_Break env _visitors_c0
=
4113 let _visitors_r0 = self#on_pos env _visitors_c0
in
4115 method on_Continue env _visitors_c0
=
4116 let _visitors_r0 = self#on_pos env _visitors_c0
in
4117 Continue
_visitors_r0
4118 method on_Throw env _visitors_c0 _visitors_c1
=
4119 let _visitors_r0 = self#on_is_terminal env _visitors_c0
in
4120 let _visitors_r1 = self#on_expr env _visitors_c1
in
4121 Throw
(_visitors_r0, _visitors_r1)
4122 method on_Return env _visitors_c0 _visitors_c1
=
4123 let _visitors_r0 = self#on_pos env _visitors_c0
in
4124 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1
4126 Return
(_visitors_r0, _visitors_r1)
4127 method on_GotoLabel env _visitors_c0
=
4128 let _visitors_r0 = self#on_pstring env _visitors_c0
in
4129 GotoLabel
_visitors_r0
4130 method on_Goto env _visitors_c0
=
4131 let _visitors_r0 = self#on_pstring env _visitors_c0
in
4133 method on_Static_var env _visitors_c0
=
4134 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
4136 Static_var
_visitors_r0
4137 method on_Global_var env _visitors_c0
=
4138 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
4140 Global_var
_visitors_r0
4141 method on_If env _visitors_c0 _visitors_c1 _visitors_c2
=
4142 let _visitors_r0 = self#on_expr env _visitors_c0
in
4143 let _visitors_r1 = self#on_block env _visitors_c1
in
4144 let _visitors_r2 = self#on_block env _visitors_c2
in
4145 If
(_visitors_r0, _visitors_r1, _visitors_r2)
4146 method on_Do env _visitors_c0 _visitors_c1
=
4147 let _visitors_r0 = self#on_block env _visitors_c0
in
4148 let _visitors_r1 = self#on_expr env _visitors_c1
in
4149 Do
(_visitors_r0, _visitors_r1)
4150 method on_While env _visitors_c0 _visitors_c1
=
4151 let _visitors_r0 = self#on_expr env _visitors_c0
in
4152 let _visitors_r1 = self#on_block env _visitors_c1
in
4153 While
(_visitors_r0, _visitors_r1)
4154 method on_Using env _visitors_c0 _visitors_c1 _visitors_c2
=
4155 let _visitors_r0 = self#on_bool env _visitors_c0
in
4156 let _visitors_r1 = self#on_expr env _visitors_c1
in
4157 let _visitors_r2 = self#on_block env _visitors_c2
in
4158 Using
(_visitors_r0, _visitors_r1, _visitors_r2)
4159 method on_For env _visitors_c0 _visitors_c1 _visitors_c2
4161 let _visitors_r0 = self#on_expr env _visitors_c0
in
4162 let _visitors_r1 = self#on_expr env _visitors_c1
in
4163 let _visitors_r2 = self#on_expr env _visitors_c2
in
4164 let _visitors_r3 = self#on_block env _visitors_c3
in
4165 For
(_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3)
4166 method on_Switch env _visitors_c0 _visitors_c1
=
4167 let _visitors_r0 = self#on_expr env _visitors_c0
in
4168 let _visitors_r1 = self#on_list self#on_case env _visitors_c1
4170 Switch
(_visitors_r0, _visitors_r1)
4171 method on_Foreach env _visitors_c0 _visitors_c1 _visitors_c2
=
4172 let _visitors_r0 = self#on_expr env _visitors_c0
in
4173 let _visitors_r1 = self#on_as_expr env _visitors_c1
in
4174 let _visitors_r2 = self#on_block env _visitors_c2
in
4175 Foreach
(_visitors_r0, _visitors_r1, _visitors_r2)
4176 method on_Try env _visitors_c0 _visitors_c1 _visitors_c2
=
4177 let _visitors_r0 = self#on_block env _visitors_c0
in
4178 let _visitors_r1 = self#on_list self#on_catch env _visitors_c1
4180 let _visitors_r2 = self#on_block env _visitors_c2
in
4181 Try
(_visitors_r0, _visitors_r1, _visitors_r2)
4182 method on_Noop env
= Noop
4183 method on_stmt env _visitors_this
=
4184 match _visitors_this
with
4185 | Fallthrough
-> self#on_Fallthrough env
4186 | Expr _visitors_c0
-> self#on_Expr env _visitors_c0
4187 | Break _visitors_c0
-> self#on_Break env _visitors_c0
4188 | Continue _visitors_c0
-> self#on_Continue env _visitors_c0
4189 | Throw
(_visitors_c0
,_visitors_c1
) ->
4190 self#on_Throw env _visitors_c0 _visitors_c1
4191 | Return
(_visitors_c0
,_visitors_c1
) ->
4192 self#on_Return env _visitors_c0 _visitors_c1
4193 | GotoLabel _visitors_c0
-> self#on_GotoLabel env _visitors_c0
4194 | Goto _visitors_c0
-> self#on_Goto env _visitors_c0
4195 | Static_var _visitors_c0
->
4196 self#on_Static_var env _visitors_c0
4197 | Global_var _visitors_c0
->
4198 self#on_Global_var env _visitors_c0
4199 | If
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
4200 self#on_If env _visitors_c0 _visitors_c1 _visitors_c2
4201 | Do
(_visitors_c0
,_visitors_c1
) ->
4202 self#on_Do env _visitors_c0 _visitors_c1
4203 | While
(_visitors_c0
,_visitors_c1
) ->
4204 self#on_While env _visitors_c0 _visitors_c1
4205 | Using
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
4206 self#on_Using env _visitors_c0 _visitors_c1 _visitors_c2
4207 | For
(_visitors_c0
,_visitors_c1
,_visitors_c2
,_visitors_c3
) ->
4208 self#on_For env _visitors_c0 _visitors_c1 _visitors_c2
4210 | Switch
(_visitors_c0
,_visitors_c1
) ->
4211 self#on_Switch env _visitors_c0 _visitors_c1
4212 | Foreach
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
4213 self#on_Foreach env _visitors_c0 _visitors_c1 _visitors_c2
4214 | Try
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
4215 self#on_Try env _visitors_c0 _visitors_c1 _visitors_c2
4216 | Noop
-> self#on_Noop env
4217 method on_As_v env _visitors_c0
=
4218 let _visitors_r0 = self#on_expr env _visitors_c0
in
4220 method on_As_kv env _visitors_c0 _visitors_c1
=
4221 let _visitors_r0 = self#on_expr env _visitors_c0
in
4222 let _visitors_r1 = self#on_expr env _visitors_c1
in
4223 As_kv
(_visitors_r0, _visitors_r1)
4224 method on_Await_as_v env _visitors_c0 _visitors_c1
=
4225 let _visitors_r0 = self#on_pos env _visitors_c0
in
4226 let _visitors_r1 = self#on_expr env _visitors_c1
in
4227 Await_as_v
(_visitors_r0, _visitors_r1)
4228 method on_Await_as_kv env _visitors_c0 _visitors_c1 _visitors_c2
4230 let _visitors_r0 = self#on_pos env _visitors_c0
in
4231 let _visitors_r1 = self#on_expr env _visitors_c1
in
4232 let _visitors_r2 = self#on_expr env _visitors_c2
in
4233 Await_as_kv
(_visitors_r0, _visitors_r1, _visitors_r2)
4234 method on_as_expr env _visitors_this
=
4235 match _visitors_this
with
4236 | As_v _visitors_c0
-> self#on_As_v env _visitors_c0
4237 | As_kv
(_visitors_c0
,_visitors_c1
) ->
4238 self#on_As_kv env _visitors_c0 _visitors_c1
4239 | Await_as_v
(_visitors_c0
,_visitors_c1
) ->
4240 self#on_Await_as_v env _visitors_c0 _visitors_c1
4241 | Await_as_kv
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
4242 self#on_Await_as_kv env _visitors_c0 _visitors_c1
4244 method on_block env
= self#on_list self#on_stmt env
4245 method on_CIparent env
= CIparent
4246 method on_CIself env
= CIself
4247 method on_CIstatic env
= CIstatic
4248 method on_CIexpr env _visitors_c0
=
4249 let _visitors_r0 = self#on_expr env _visitors_c0
in
4251 method on_CI env _visitors_c0
=
4252 let _visitors_r0 = self#on_instantiated_sid env _visitors_c0
4255 method on_class_id env _visitors_this
=
4256 match _visitors_this
with
4257 | CIparent
-> self#on_CIparent env
4258 | CIself
-> self#on_CIself env
4259 | CIstatic
-> self#on_CIstatic env
4260 | CIexpr _visitors_c0
-> self#on_CIexpr env _visitors_c0
4261 | CI _visitors_c0
-> self#on_CI env _visitors_c0
4262 method on_expr env
(_visitors_c0
,_visitors_c1
) =
4263 let _visitors_r0 = self#on_expr_annotation env _visitors_c0
in
4264 let _visitors_r1 = self#on_expr_ env _visitors_c1
in
4265 (_visitors_r0, _visitors_r1)
4266 method on_Array env _visitors_c0
=
4267 let _visitors_r0 = self#on_list self#on_afield env _visitors_c0
4270 method on_Darray env _visitors_c0
=
4274 fun (_visitors_c0
,_visitors_c1
) ->
4275 let _visitors_r0 = self#on_expr env _visitors_c0
in
4276 let _visitors_r1 = self#on_expr env _visitors_c1
in
4277 (_visitors_r0, _visitors_r1)) env _visitors_c0
4280 method on_Varray env _visitors_c0
=
4281 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
4284 method on_Shape env _visitors_c0
=
4286 self#on_shape_map self#on_expr env _visitors_c0
in
4288 method on_ValCollection env _visitors_c0 _visitors_c1
=
4289 let _visitors_r0 = self#on_vc_kind env _visitors_c0
in
4290 let _visitors_r1 = self#on_list self#on_expr env _visitors_c1
4292 ValCollection
(_visitors_r0, _visitors_r1)
4293 method on_KeyValCollection env _visitors_c0 _visitors_c1
=
4294 let _visitors_r0 = self#on_kvc_kind env _visitors_c0
in
4295 let _visitors_r1 = self#on_list self#on_field env _visitors_c1
4297 KeyValCollection
(_visitors_r0, _visitors_r1)
4298 method on_Null env
= Null
4299 method on_This env
= This
4300 method on_True env
= True
4301 method on_False env
= False
4302 method on_Id env _visitors_c0
=
4303 let _visitors_r0 = self#on_sid env _visitors_c0
in
4305 method on_Lvar env _visitors_c0
=
4306 let _visitors_r0 = self#on_lid env _visitors_c0
in
4308 method on_Dollar env _visitors_c0
=
4309 let _visitors_r0 = self#on_expr env _visitors_c0
in
4311 method on_Dollardollar env _visitors_c0
=
4312 let _visitors_r0 = self#on_lid env _visitors_c0
in
4313 Dollardollar
_visitors_r0
4314 method on_Clone env _visitors_c0
=
4315 let _visitors_r0 = self#on_expr env _visitors_c0
in
4317 method on_Obj_get env _visitors_c0 _visitors_c1 _visitors_c2
=
4318 let _visitors_r0 = self#on_expr env _visitors_c0
in
4319 let _visitors_r1 = self#on_expr env _visitors_c1
in
4320 let _visitors_r2 = self#on_og_null_flavor env _visitors_c2
in
4321 Obj_get
(_visitors_r0, _visitors_r1, _visitors_r2)
4322 method on_Array_get env _visitors_c0 _visitors_c1
=
4323 let _visitors_r0 = self#on_expr env _visitors_c0
in
4324 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1
4326 Array_get
(_visitors_r0, _visitors_r1)
4327 method on_Class_get env _visitors_c0 _visitors_c1
=
4328 let _visitors_r0 = self#on_class_id env _visitors_c0
in
4329 let _visitors_r1 = self#on_pstring env _visitors_c1
in
4330 Class_get
(_visitors_r0, _visitors_r1)
4331 method on_Class_const env _visitors_c0 _visitors_c1
=
4332 let _visitors_r0 = self#on_class_id env _visitors_c0
in
4333 let _visitors_r1 = self#on_pstring env _visitors_c1
in
4334 Class_const
(_visitors_r0, _visitors_r1)
4335 method on_Call env _visitors_c0 _visitors_c1 _visitors_c2
4336 _visitors_c3 _visitors_c4
=
4337 let _visitors_r0 = self#on_call_type env _visitors_c0
in
4338 let _visitors_r1 = self#on_expr env _visitors_c1
in
4339 let _visitors_r2 = self#on_list self#on_hint env _visitors_c2
4341 let _visitors_r3 = self#on_list self#on_expr env _visitors_c3
4343 let _visitors_r4 = self#on_list self#on_expr env _visitors_c4
4346 (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3,
4348 method on_Int env _visitors_c0
=
4349 let _visitors_r0 = self#on_pstring env _visitors_c0
in
4351 method on_Float env _visitors_c0
=
4352 let _visitors_r0 = self#on_pstring env _visitors_c0
in
4354 method on_String env _visitors_c0
=
4355 let _visitors_r0 = self#on_pstring env _visitors_c0
in
4357 method on_String2 env _visitors_c0
=
4358 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
4360 String2
_visitors_r0
4361 method on_Yield env _visitors_c0
=
4362 let _visitors_r0 = self#on_afield env _visitors_c0
in
4364 method on_Yield_break env
= Yield_break
4365 method on_Await env _visitors_c0
=
4366 let _visitors_r0 = self#on_expr env _visitors_c0
in
4368 method on_Suspend env _visitors_c0
=
4369 let _visitors_r0 = self#on_expr env _visitors_c0
in
4370 Suspend
_visitors_r0
4371 method on_List env _visitors_c0
=
4372 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
4375 method on_Expr_list env _visitors_c0
=
4376 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
4378 Expr_list
_visitors_r0
4379 method on_Cast env _visitors_c0 _visitors_c1
=
4380 let _visitors_r0 = self#on_hint env _visitors_c0
in
4381 let _visitors_r1 = self#on_expr env _visitors_c1
in
4382 Cast
(_visitors_r0, _visitors_r1)
4383 method on_Unop env _visitors_c0 _visitors_c1
=
4384 let _visitors_r0 = self#on_uop env _visitors_c0
in
4385 let _visitors_r1 = self#on_expr env _visitors_c1
in
4386 Unop
(_visitors_r0, _visitors_r1)
4387 method on_Binop env _visitors_c0 _visitors_c1 _visitors_c2
=
4388 let _visitors_r0 = self#on_bop env _visitors_c0
in
4389 let _visitors_r1 = self#on_expr env _visitors_c1
in
4390 let _visitors_r2 = self#on_expr env _visitors_c2
in
4391 Binop
(_visitors_r0, _visitors_r1, _visitors_r2)
4392 method on_Pipe env _visitors_c0 _visitors_c1 _visitors_c2
=
4393 let _visitors_r0 = self#on_lid env _visitors_c0
in
4394 let _visitors_r1 = self#on_expr env _visitors_c1
in
4395 let _visitors_r2 = self#on_expr env _visitors_c2
in
4396 Pipe
(_visitors_r0, _visitors_r1, _visitors_r2)
4397 method on_Eif env _visitors_c0 _visitors_c1 _visitors_c2
=
4398 let _visitors_r0 = self#on_expr env _visitors_c0
in
4399 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1
4401 let _visitors_r2 = self#on_expr env _visitors_c2
in
4402 Eif
(_visitors_r0, _visitors_r1, _visitors_r2)
4403 method on_NullCoalesce env _visitors_c0 _visitors_c1
=
4404 let _visitors_r0 = self#on_expr env _visitors_c0
in
4405 let _visitors_r1 = self#on_expr env _visitors_c1
in
4406 NullCoalesce
(_visitors_r0, _visitors_r1)
4407 method on_InstanceOf env _visitors_c0 _visitors_c1
=
4408 let _visitors_r0 = self#on_expr env _visitors_c0
in
4409 let _visitors_r1 = self#on_class_id env _visitors_c1
in
4410 InstanceOf
(_visitors_r0, _visitors_r1)
4411 method on_Is env _visitors_c0 _visitors_c1
=
4412 let _visitors_r0 = self#on_expr env _visitors_c0
in
4413 let _visitors_r1 = self#on_hint env _visitors_c1
in
4414 Is
(_visitors_r0, _visitors_r1)
4415 method on_New env _visitors_c0 _visitors_c1 _visitors_c2
=
4416 let _visitors_r0 = self#on_class_id env _visitors_c0
in
4417 let _visitors_r1 = self#on_list self#on_expr env _visitors_c1
4419 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2
4421 New
(_visitors_r0, _visitors_r1, _visitors_r2)
4422 method on_Efun env _visitors_c0 _visitors_c1
=
4423 let _visitors_r0 = self#on_fun_ env _visitors_c0
in
4424 let _visitors_r1 = self#on_list self#on_lid env _visitors_c1
4426 Efun
(_visitors_r0, _visitors_r1)
4427 method on_Xml env _visitors_c0 _visitors_c1 _visitors_c2
=
4428 let _visitors_r0 = self#on_sid env _visitors_c0
in
4430 self#on_list self#on_xhp_attribute env _visitors_c1
in
4431 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2
4433 Xml
(_visitors_r0, _visitors_r1, _visitors_r2)
4434 method on_Callconv env _visitors_c0 _visitors_c1
=
4435 let _visitors_r0 = self#on_param_kind env _visitors_c0
in
4436 let _visitors_r1 = self#on_expr env _visitors_c1
in
4437 Callconv
(_visitors_r0, _visitors_r1)
4438 method on_Lplaceholder env _visitors_c0
=
4439 let _visitors_r0 = self#on_pos env _visitors_c0
in
4440 Lplaceholder
_visitors_r0
4441 method on_Fun_id env _visitors_c0
=
4442 let _visitors_r0 = self#on_sid env _visitors_c0
in
4444 method on_Method_id env _visitors_c0 _visitors_c1
=
4445 let _visitors_r0 = self#on_expr env _visitors_c0
in
4446 let _visitors_r1 = self#on_pstring env _visitors_c1
in
4447 Method_id
(_visitors_r0, _visitors_r1)
4448 method on_Method_caller env _visitors_c0 _visitors_c1
=
4449 let _visitors_r0 = self#on_sid env _visitors_c0
in
4450 let _visitors_r1 = self#on_pstring env _visitors_c1
in
4451 Method_caller
(_visitors_r0, _visitors_r1)
4452 method on_Smethod_id env _visitors_c0 _visitors_c1
=
4453 let _visitors_r0 = self#on_sid env _visitors_c0
in
4454 let _visitors_r1 = self#on_pstring env _visitors_c1
in
4455 Smethod_id
(_visitors_r0, _visitors_r1)
4456 method on_Special_func env _visitors_c0
=
4457 let _visitors_r0 = self#on_special_func env _visitors_c0
in
4458 Special_func
_visitors_r0
4459 method on_Pair env _visitors_c0 _visitors_c1
=
4460 let _visitors_r0 = self#on_expr env _visitors_c0
in
4461 let _visitors_r1 = self#on_expr env _visitors_c1
in
4462 Pair
(_visitors_r0, _visitors_r1)
4463 method on_Assert env _visitors_c0
=
4464 let _visitors_r0 = self#on_assert_expr env _visitors_c0
in
4466 method on_Typename env _visitors_c0
=
4467 let _visitors_r0 = self#on_sid env _visitors_c0
in
4468 Typename
_visitors_r0
4469 method on_Any env
= Any
4470 method on_expr_ env _visitors_this
=
4471 match _visitors_this
with
4472 | Array _visitors_c0
-> self#on_Array env _visitors_c0
4473 | Darray _visitors_c0
-> self#on_Darray env _visitors_c0
4474 | Varray _visitors_c0
-> self#on_Varray env _visitors_c0
4475 | Shape _visitors_c0
-> self#on_Shape env _visitors_c0
4476 | ValCollection
(_visitors_c0
,_visitors_c1
) ->
4477 self#on_ValCollection env _visitors_c0 _visitors_c1
4478 | KeyValCollection
(_visitors_c0
,_visitors_c1
) ->
4479 self#on_KeyValCollection env _visitors_c0 _visitors_c1
4480 | Null
-> self#on_Null env
4481 | This
-> self#on_This env
4482 | True
-> self#on_True env
4483 | False
-> self#on_False env
4484 | Id _visitors_c0
-> self#on_Id env _visitors_c0
4485 | Lvar _visitors_c0
-> self#on_Lvar env _visitors_c0
4486 | Dollar _visitors_c0
-> self#on_Dollar env _visitors_c0
4487 | Dollardollar _visitors_c0
->
4488 self#on_Dollardollar env _visitors_c0
4489 | Clone _visitors_c0
-> self#on_Clone env _visitors_c0
4490 | Obj_get
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
4491 self#on_Obj_get env _visitors_c0 _visitors_c1 _visitors_c2
4492 | Array_get
(_visitors_c0
,_visitors_c1
) ->
4493 self#on_Array_get env _visitors_c0 _visitors_c1
4494 | Class_get
(_visitors_c0
,_visitors_c1
) ->
4495 self#on_Class_get env _visitors_c0 _visitors_c1
4496 | Class_const
(_visitors_c0
,_visitors_c1
) ->
4497 self#on_Class_const env _visitors_c0 _visitors_c1
4499 (_visitors_c0
,_visitors_c1
,_visitors_c2
,_visitors_c3
,_visitors_c4
)
4501 self#on_Call env _visitors_c0 _visitors_c1 _visitors_c2
4502 _visitors_c3 _visitors_c4
4503 | Int _visitors_c0
-> self#on_Int env _visitors_c0
4504 | Float _visitors_c0
-> self#on_Float env _visitors_c0
4505 | String _visitors_c0
-> self#on_String env _visitors_c0
4506 | String2 _visitors_c0
-> self#on_String2 env _visitors_c0
4507 | Yield _visitors_c0
-> self#on_Yield env _visitors_c0
4508 | Yield_break
-> self#on_Yield_break env
4509 | Await _visitors_c0
-> self#on_Await env _visitors_c0
4510 | Suspend _visitors_c0
-> self#on_Suspend env _visitors_c0
4511 | List _visitors_c0
-> self#on_List env _visitors_c0
4512 | Expr_list _visitors_c0
-> self#on_Expr_list env _visitors_c0
4513 | Cast
(_visitors_c0
,_visitors_c1
) ->
4514 self#on_Cast env _visitors_c0 _visitors_c1
4515 | Unop
(_visitors_c0
,_visitors_c1
) ->
4516 self#on_Unop env _visitors_c0 _visitors_c1
4517 | Binop
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
4518 self#on_Binop env _visitors_c0 _visitors_c1 _visitors_c2
4519 | Pipe
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
4520 self#on_Pipe env _visitors_c0 _visitors_c1 _visitors_c2
4521 | Eif
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
4522 self#on_Eif env _visitors_c0 _visitors_c1 _visitors_c2
4523 | NullCoalesce
(_visitors_c0
,_visitors_c1
) ->
4524 self#on_NullCoalesce env _visitors_c0 _visitors_c1
4525 | InstanceOf
(_visitors_c0
,_visitors_c1
) ->
4526 self#on_InstanceOf env _visitors_c0 _visitors_c1
4527 | Is
(_visitors_c0
,_visitors_c1
) ->
4528 self#on_Is env _visitors_c0 _visitors_c1
4529 | New
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
4530 self#on_New env _visitors_c0 _visitors_c1 _visitors_c2
4531 | Efun
(_visitors_c0
,_visitors_c1
) ->
4532 self#on_Efun env _visitors_c0 _visitors_c1
4533 | Xml
(_visitors_c0
,_visitors_c1
,_visitors_c2
) ->
4534 self#on_Xml env _visitors_c0 _visitors_c1 _visitors_c2
4535 | Callconv
(_visitors_c0
,_visitors_c1
) ->
4536 self#on_Callconv env _visitors_c0 _visitors_c1
4537 | Lplaceholder _visitors_c0
->
4538 self#on_Lplaceholder env _visitors_c0
4539 | Fun_id _visitors_c0
-> self#on_Fun_id env _visitors_c0
4540 | Method_id
(_visitors_c0
,_visitors_c1
) ->
4541 self#on_Method_id env _visitors_c0 _visitors_c1
4542 | Method_caller
(_visitors_c0
,_visitors_c1
) ->
4543 self#on_Method_caller env _visitors_c0 _visitors_c1
4544 | Smethod_id
(_visitors_c0
,_visitors_c1
) ->
4545 self#on_Smethod_id env _visitors_c0 _visitors_c1
4546 | Special_func _visitors_c0
->
4547 self#on_Special_func env _visitors_c0
4548 | Pair
(_visitors_c0
,_visitors_c1
) ->
4549 self#on_Pair env _visitors_c0 _visitors_c1
4550 | Assert _visitors_c0
-> self#on_Assert env _visitors_c0
4551 | Typename _visitors_c0
-> self#on_Typename env _visitors_c0
4552 | Any
-> self#on_Any env
4553 method on_AE_assert env _visitors_c0
=
4554 let _visitors_r0 = self#on_expr env _visitors_c0
in
4555 AE_assert
_visitors_r0
4556 method on_assert_expr env _visitors_this
=
4557 match _visitors_this
with
4558 | AE_assert _visitors_c0
-> self#on_AE_assert env _visitors_c0
4559 method on_Default env _visitors_c0
=
4560 let _visitors_r0 = self#on_block env _visitors_c0
in
4561 Default
_visitors_r0
4562 method on_Case env _visitors_c0 _visitors_c1
=
4563 let _visitors_r0 = self#on_expr env _visitors_c0
in
4564 let _visitors_r1 = self#on_block env _visitors_c1
in
4565 Case
(_visitors_r0, _visitors_r1)
4566 method on_case env _visitors_this
=
4567 match _visitors_this
with
4568 | Default _visitors_c0
-> self#on_Default env _visitors_c0
4569 | Case
(_visitors_c0
,_visitors_c1
) ->
4570 self#on_Case env _visitors_c0 _visitors_c1
4571 method on_catch env
(_visitors_c0
,_visitors_c1
,_visitors_c2
) =
4572 let _visitors_r0 = self#on_sid env _visitors_c0
in
4573 let _visitors_r1 = self#on_lid env _visitors_c1
in
4574 let _visitors_r2 = self#on_block env _visitors_c2
in
4575 (_visitors_r0, _visitors_r1, _visitors_r2)
4576 method on_field env
(_visitors_c0
,_visitors_c1
) =
4577 let _visitors_r0 = self#on_expr env _visitors_c0
in
4578 let _visitors_r1 = self#on_expr env _visitors_c1
in
4579 (_visitors_r0, _visitors_r1)
4580 method on_AFvalue env _visitors_c0
=
4581 let _visitors_r0 = self#on_expr env _visitors_c0
in
4582 AFvalue
_visitors_r0
4583 method on_AFkvalue env _visitors_c0 _visitors_c1
=
4584 let _visitors_r0 = self#on_expr env _visitors_c0
in
4585 let _visitors_r1 = self#on_expr env _visitors_c1
in
4586 AFkvalue
(_visitors_r0, _visitors_r1)
4587 method on_afield env _visitors_this
=
4588 match _visitors_this
with
4589 | AFvalue _visitors_c0
-> self#on_AFvalue env _visitors_c0
4590 | AFkvalue
(_visitors_c0
,_visitors_c1
) ->
4591 self#on_AFkvalue env _visitors_c0 _visitors_c1
4592 method on_Xhp_simple env _visitors_c0 _visitors_c1
=
4593 let _visitors_r0 = self#on_pstring env _visitors_c0
in
4594 let _visitors_r1 = self#on_expr env _visitors_c1
in
4595 Xhp_simple
(_visitors_r0, _visitors_r1)
4596 method on_Xhp_spread env _visitors_c0
=
4597 let _visitors_r0 = self#on_expr env _visitors_c0
in
4598 Xhp_spread
_visitors_r0
4599 method on_xhp_attribute env _visitors_this
=
4600 match _visitors_this
with
4601 | Xhp_simple
(_visitors_c0
,_visitors_c1
) ->
4602 self#on_Xhp_simple env _visitors_c0 _visitors_c1
4603 | Xhp_spread _visitors_c0
->
4604 self#on_Xhp_spread env _visitors_c0
4605 method on_Gena env _visitors_c0
=
4606 let _visitors_r0 = self#on_expr env _visitors_c0
in
4608 method on_Genva env _visitors_c0
=
4609 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
4612 method on_Gen_array_rec env _visitors_c0
=
4613 let _visitors_r0 = self#on_expr env _visitors_c0
in
4614 Gen_array_rec
_visitors_r0
4615 method on_special_func env _visitors_this
=
4616 match _visitors_this
with
4617 | Gena _visitors_c0
-> self#on_Gena env _visitors_c0
4618 | Genva _visitors_c0
-> self#on_Genva env _visitors_c0
4619 | Gen_array_rec _visitors_c0
->
4620 self#on_Gen_array_rec env _visitors_c0
4621 method on_is_reference env
= self#on_bool env
4622 method on_is_variadic env
= self#on_bool env
4623 method on_fun_param env _visitors_this
=
4625 self#on_option self#on_hint env _visitors_this
.param_hint
in
4627 self#on_is_reference env _visitors_this
.param_is_reference
4630 self#on_is_variadic env _visitors_this
.param_is_variadic
in
4631 let _visitors_r3 = self#on_pos env _visitors_this
.param_pos
in
4632 let _visitors_r4 = self#on_string env _visitors_this
.param_name
4635 self#on_option self#on_expr env _visitors_this
.param_expr
in
4637 self#on_option self#on_param_kind env
4638 _visitors_this
.param_callconv
4641 self#on_list self#on_user_attribute env
4642 _visitors_this
.param_user_attributes
4645 param_hint
= _visitors_r0;
4646 param_is_reference
= _visitors_r1;
4647 param_is_variadic
= _visitors_r2;
4648 param_pos
= _visitors_r3;
4649 param_name
= _visitors_r4;
4650 param_expr
= _visitors_r5;
4651 param_callconv
= _visitors_r6;
4652 param_user_attributes
= _visitors_r7
4654 method on_FVvariadicArg env _visitors_c0
=
4655 let _visitors_r0 = self#on_fun_param env _visitors_c0
in
4656 FVvariadicArg
_visitors_r0
4657 method on_FVellipsis env
= FVellipsis
4658 method on_FVnonVariadic env
= FVnonVariadic
4659 method on_fun_variadicity env _visitors_this
=
4660 match _visitors_this
with
4661 | FVvariadicArg _visitors_c0
->
4662 self#on_FVvariadicArg env _visitors_c0
4663 | FVellipsis
-> self#on_FVellipsis env
4664 | FVnonVariadic
-> self#on_FVnonVariadic env
4665 method on_fun_ env _visitors_this
=
4667 self#on_env_annotation env _visitors_this
.f_annotation
in
4669 (fun _visitors_this
-> _visitors_this
) _visitors_this
.f_mode
4672 self#on_option self#on_hint env _visitors_this
.f_ret
in
4673 let _visitors_r3 = self#on_sid env _visitors_this
.f_name
in
4675 self#on_list self#on_tparam env _visitors_this
.f_tparams
in
4677 self#on_list self#on_where_constraint env
4678 _visitors_this
.f_where_constraints
4681 self#on_fun_variadicity env _visitors_this
.f_variadic
in
4683 self#on_list self#on_fun_param env _visitors_this
.f_params
4685 let _visitors_r8 = self#on_func_body env _visitors_this
.f_body
4688 self#on_fun_kind env _visitors_this
.f_fun_kind
in
4690 self#on_list self#on_user_attribute env
4691 _visitors_this
.f_user_attributes
4694 self#on_bool env _visitors_this
.f_ret_by_ref
in
4696 f_annotation
= _visitors_r0;
4697 f_mode
= _visitors_r1;
4698 f_ret
= _visitors_r2;
4699 f_name
= _visitors_r3;
4700 f_tparams
= _visitors_r4;
4701 f_where_constraints
= _visitors_r5;
4702 f_variadic
= _visitors_r6;
4703 f_params
= _visitors_r7;
4704 f_body
= _visitors_r8;
4705 f_fun_kind
= _visitors_r9;
4706 f_user_attributes
= _visitors_r10;
4707 f_ret_by_ref
= _visitors_r11
4709 method on_UnnamedBody env _visitors_c0
=
4710 let _visitors_r0 = self#on_func_unnamed_body env _visitors_c0
4712 UnnamedBody
_visitors_r0
4713 method on_NamedBody env _visitors_c0
=
4714 let _visitors_r0 = self#on_func_named_body env _visitors_c0
in
4715 NamedBody
_visitors_r0
4716 method on_func_body env _visitors_this
=
4717 match _visitors_this
with
4718 | UnnamedBody _visitors_c0
->
4719 self#on_UnnamedBody env _visitors_c0
4720 | NamedBody _visitors_c0
-> self#on_NamedBody env _visitors_c0
4721 method on_func_unnamed_body env _visitors_this
=
4723 (fun _visitors_this
-> _visitors_this
)
4724 _visitors_this
.fub_ast
4727 (fun _visitors_this
-> _visitors_this
)
4728 _visitors_this
.fub_tparams
4731 (fun _visitors_this
-> _visitors_this
)
4732 _visitors_this
.fub_namespace
4735 fub_ast
= _visitors_r0;
4736 fub_tparams
= _visitors_r1;
4737 fub_namespace
= _visitors_r2
4739 method on_func_named_body env _visitors_this
=
4740 let _visitors_r0 = self#on_block env _visitors_this
.fnb_nast
4742 let _visitors_r1 = self#on_bool env _visitors_this
.fnb_unsafe
4744 { fnb_nast
= _visitors_r0; fnb_unsafe
= _visitors_r1 }
4745 method on_user_attribute env _visitors_this
=
4746 let _visitors_r0 = self#on_sid env _visitors_this
.ua_name
in
4748 self#on_list self#on_expr env _visitors_this
.ua_params
in
4749 { ua_name
= _visitors_r0; ua_params
= _visitors_r1 }
4750 method on_class_ env _visitors_this
=
4752 self#on_env_annotation env _visitors_this
.c_annotation
in
4754 (fun _visitors_this
-> _visitors_this
) _visitors_this
.c_mode
4756 let _visitors_r2 = self#on_bool env _visitors_this
.c_final
in
4757 let _visitors_r3 = self#on_bool env _visitors_this
.c_is_xhp
in
4758 let _visitors_r4 = self#on_class_kind env _visitors_this
.c_kind
4760 let _visitors_r5 = self#on_sid env _visitors_this
.c_name
in
4762 (fun _visitors_this
-> _visitors_this
)
4763 _visitors_this
.c_tparams
4766 self#on_list self#on_hint env _visitors_this
.c_extends
in
4768 self#on_list self#on_hint env _visitors_this
.c_uses
in
4770 self#on_list self#on_hint env _visitors_this
.c_xhp_attr_uses
4773 self#on_list self#on_pstring env
4774 _visitors_this
.c_xhp_category
4777 self#on_list self#on_hint env _visitors_this
.c_req_extends
4780 self#on_list self#on_hint env _visitors_this
.c_req_implements
4783 self#on_list self#on_hint env _visitors_this
.c_implements
in
4785 self#on_list self#on_class_const env _visitors_this
.c_consts
4788 self#on_list self#on_class_typeconst env
4789 _visitors_this
.c_typeconsts
4792 self#on_list self#on_class_var env
4793 _visitors_this
.c_static_vars
4796 self#on_list self#on_class_var env _visitors_this
.c_vars
in
4798 self#on_option self#on_method_ env
4799 _visitors_this
.c_constructor
4802 self#on_list self#on_method_ env
4803 _visitors_this
.c_static_methods
4806 self#on_list self#on_method_ env _visitors_this
.c_methods
in
4808 self#on_list self#on_user_attribute env
4809 _visitors_this
.c_user_attributes
4812 self#on_option self#on_enum_ env _visitors_this
.c_enum
in
4814 c_annotation
= _visitors_r0;
4815 c_mode
= _visitors_r1;
4816 c_final
= _visitors_r2;
4817 c_is_xhp
= _visitors_r3;
4818 c_kind
= _visitors_r4;
4819 c_name
= _visitors_r5;
4820 c_tparams
= _visitors_r6;
4821 c_extends
= _visitors_r7;
4822 c_uses
= _visitors_r8;
4823 c_xhp_attr_uses
= _visitors_r9;
4824 c_xhp_category
= _visitors_r10;
4825 c_req_extends
= _visitors_r11;
4826 c_req_implements
= _visitors_r12;
4827 c_implements
= _visitors_r13;
4828 c_consts
= _visitors_r14;
4829 c_typeconsts
= _visitors_r15;
4830 c_static_vars
= _visitors_r16;
4831 c_vars
= _visitors_r17;
4832 c_constructor
= _visitors_r18;
4833 c_static_methods
= _visitors_r19;
4834 c_methods
= _visitors_r20;
4835 c_user_attributes
= _visitors_r21;
4836 c_enum
= _visitors_r22
4838 method on_class_const env
4839 (_visitors_c0
,_visitors_c1
,_visitors_c2
) =
4840 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0
4842 let _visitors_r1 = self#on_sid env _visitors_c1
in
4843 let _visitors_r2 = self#on_option self#on_expr env _visitors_c2
4845 (_visitors_r0, _visitors_r1, _visitors_r2)
4846 method on_class_typeconst env _visitors_this
=
4847 let _visitors_r0 = self#on_sid env _visitors_this
.c_tconst_name
4850 self#on_option self#on_hint env
4851 _visitors_this
.c_tconst_constraint
4854 self#on_option self#on_hint env _visitors_this
.c_tconst_type
4857 c_tconst_name
= _visitors_r0;
4858 c_tconst_constraint
= _visitors_r1;
4859 c_tconst_type
= _visitors_r2
4861 method on_class_var env _visitors_this
=
4862 let _visitors_r0 = self#on_bool env _visitors_this
.cv_final
in
4863 let _visitors_r1 = self#on_bool env _visitors_this
.cv_is_xhp
4866 self#on_visibility env _visitors_this
.cv_visibility
in
4868 self#on_option self#on_hint env _visitors_this
.cv_type
in
4869 let _visitors_r4 = self#on_sid env _visitors_this
.cv_id
in
4871 self#on_option self#on_expr env _visitors_this
.cv_expr
in
4873 self#on_list self#on_user_attribute env
4874 _visitors_this
.cv_user_attributes
4877 cv_final
= _visitors_r0;
4878 cv_is_xhp
= _visitors_r1;
4879 cv_visibility
= _visitors_r2;
4880 cv_type
= _visitors_r3;
4881 cv_id
= _visitors_r4;
4882 cv_expr
= _visitors_r5;
4883 cv_user_attributes
= _visitors_r6
4885 method on_method_ env _visitors_this
=
4887 self#on_env_annotation env _visitors_this
.m_annotation
in
4888 let _visitors_r1 = self#on_bool env _visitors_this
.m_final
in
4889 let _visitors_r2 = self#on_bool env _visitors_this
.m_abstract
4892 self#on_visibility env _visitors_this
.m_visibility
in
4893 let _visitors_r4 = self#on_sid env _visitors_this
.m_name
in
4895 self#on_list self#on_tparam env _visitors_this
.m_tparams
in
4897 self#on_list self#on_where_constraint env
4898 _visitors_this
.m_where_constraints
4901 self#on_fun_variadicity env _visitors_this
.m_variadic
in
4903 self#on_list self#on_fun_param env _visitors_this
.m_params
4905 let _visitors_r9 = self#on_func_body env _visitors_this
.m_body
4908 self#on_fun_kind env _visitors_this
.m_fun_kind
in
4910 self#on_list self#on_user_attribute env
4911 _visitors_this
.m_user_attributes
4914 self#on_option self#on_hint env _visitors_this
.m_ret
in
4916 self#on_bool env _visitors_this
.m_ret_by_ref
in
4918 m_annotation
= _visitors_r0;
4919 m_final
= _visitors_r1;
4920 m_abstract
= _visitors_r2;
4921 m_visibility
= _visitors_r3;
4922 m_name
= _visitors_r4;
4923 m_tparams
= _visitors_r5;
4924 m_where_constraints
= _visitors_r6;
4925 m_variadic
= _visitors_r7;
4926 m_params
= _visitors_r8;
4927 m_body
= _visitors_r9;
4928 m_fun_kind
= _visitors_r10;
4929 m_user_attributes
= _visitors_r11;
4930 m_ret
= _visitors_r12;
4931 m_ret_by_ref
= _visitors_r13
4933 method on_typedef env _visitors_this
=
4935 self#on_env_annotation env _visitors_this
.t_annotation
in
4936 let _visitors_r1 = self#on_sid env _visitors_this
.t_name
in
4938 self#on_list self#on_tparam env _visitors_this
.t_tparams
in
4940 self#on_option self#on_hint env _visitors_this
.t_constraint
4942 let _visitors_r4 = self#on_hint env _visitors_this
.t_kind
in
4944 self#on_list self#on_user_attribute env
4945 _visitors_this
.t_user_attributes
4948 (fun _visitors_this
-> _visitors_this
) _visitors_this
.t_mode
4951 self#on_typedef_visibility env _visitors_this
.t_vis
in
4953 t_annotation
= _visitors_r0;
4954 t_name
= _visitors_r1;
4955 t_tparams
= _visitors_r2;
4956 t_constraint
= _visitors_r3;
4957 t_kind
= _visitors_r4;
4958 t_user_attributes
= _visitors_r5;
4959 t_mode
= _visitors_r6;
4960 t_vis
= _visitors_r7
4962 method on_gconst env _visitors_this
=
4964 self#on_env_annotation env _visitors_this
.cst_annotation
in
4966 (fun _visitors_this
-> _visitors_this
)
4967 _visitors_this
.cst_mode
4969 let _visitors_r2 = self#on_sid env _visitors_this
.cst_name
in
4971 self#on_option self#on_hint env _visitors_this
.cst_type
in
4973 self#on_option self#on_expr env _visitors_this
.cst_value
in
4975 self#on_bool env _visitors_this
.cst_is_define
in
4977 cst_annotation
= _visitors_r0;
4978 cst_mode
= _visitors_r1;
4979 cst_name
= _visitors_r2;
4980 cst_type
= _visitors_r3;
4981 cst_value
= _visitors_r4;
4982 cst_is_define
= _visitors_r5
4984 method on_Fun env _visitors_c0
=
4985 let _visitors_r0 = self#on_fun_ env _visitors_c0
in
4987 method on_Class env _visitors_c0
=
4988 let _visitors_r0 = self#on_class_ env _visitors_c0
in
4990 method on_Typedef env _visitors_c0
=
4991 let _visitors_r0 = self#on_typedef env _visitors_c0
in
4992 Typedef
_visitors_r0
4993 method on_Constant env _visitors_c0
=
4994 let _visitors_r0 = self#on_gconst env _visitors_c0
in
4995 Constant
_visitors_r0
4996 method on_def env _visitors_this
=
4997 match _visitors_this
with
4998 | Fun _visitors_c0
-> self#on_Fun env _visitors_c0
4999 | Class _visitors_c0
-> self#on_Class env _visitors_c0
5000 | Typedef _visitors_c0
-> self#on_Typedef env _visitors_c0
5001 | Constant _visitors_c0
-> self#on_Constant env _visitors_c0
5007 [@@@ocaml
.warning
"-4-26-27"]
5008 [@@@VISITORS.BEGIN
]
5009 class virtual ['self
] endo
=
5010 object (self
: 'self
)
5011 inherit [_
] endo_defs
5012 method on_program env
= self#on_list self#on_def env
5013 method on_expr_annotation env _visitors_this
= _visitors_this
5014 method on_env_annotation env _visitors_this
= _visitors_this
5015 method on_Fallthrough env _visitors_this
=
5016 if true then _visitors_this
else Fallthrough
5017 method on_Expr env _visitors_this _visitors_c0
=
5018 let _visitors_r0 = self#on_expr env _visitors_c0
in
5019 if Pervasives.(==) _visitors_c0
_visitors_r0
5021 else Expr
_visitors_r0
5022 method on_Break env _visitors_this _visitors_c0
=
5023 let _visitors_r0 = self#on_pos env _visitors_c0
in
5024 if Pervasives.(==) _visitors_c0
_visitors_r0
5026 else Break
_visitors_r0
5027 method on_Continue env _visitors_this _visitors_c0
=
5028 let _visitors_r0 = self#on_pos env _visitors_c0
in
5029 if Pervasives.(==) _visitors_c0
_visitors_r0
5031 else Continue
_visitors_r0
5032 method on_Throw env _visitors_this _visitors_c0 _visitors_c1
=
5033 let _visitors_r0 = self#on_is_terminal env _visitors_c0
in
5034 let _visitors_r1 = self#on_expr env _visitors_c1
in
5036 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5037 (Pervasives.(==) _visitors_c1
_visitors_r1)
5039 else Throw
(_visitors_r0, _visitors_r1)
5040 method on_Return env _visitors_this _visitors_c0 _visitors_c1
=
5041 let _visitors_r0 = self#on_pos env _visitors_c0
in
5042 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1
5045 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5046 (Pervasives.(==) _visitors_c1
_visitors_r1)
5048 else Return
(_visitors_r0, _visitors_r1)
5049 method on_GotoLabel env _visitors_this _visitors_c0
=
5050 let _visitors_r0 = self#on_pstring env _visitors_c0
in
5051 if Pervasives.(==) _visitors_c0
_visitors_r0
5053 else GotoLabel
_visitors_r0
5054 method on_Goto env _visitors_this _visitors_c0
=
5055 let _visitors_r0 = self#on_pstring env _visitors_c0
in
5056 if Pervasives.(==) _visitors_c0
_visitors_r0
5058 else Goto
_visitors_r0
5059 method on_Static_var env _visitors_this _visitors_c0
=
5060 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
5062 if Pervasives.(==) _visitors_c0
_visitors_r0
5064 else Static_var
_visitors_r0
5065 method on_Global_var env _visitors_this _visitors_c0
=
5066 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
5068 if Pervasives.(==) _visitors_c0
_visitors_r0
5070 else Global_var
_visitors_r0
5071 method on_If env _visitors_this _visitors_c0 _visitors_c1
5073 let _visitors_r0 = self#on_expr env _visitors_c0
in
5074 let _visitors_r1 = self#on_block env _visitors_c1
in
5075 let _visitors_r2 = self#on_block env _visitors_c2
in
5077 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5079 (Pervasives.(==) _visitors_c1
_visitors_r1)
5080 (Pervasives.(==) _visitors_c2
_visitors_r2))
5082 else If
(_visitors_r0, _visitors_r1, _visitors_r2)
5083 method on_Do env _visitors_this _visitors_c0 _visitors_c1
=
5084 let _visitors_r0 = self#on_block env _visitors_c0
in
5085 let _visitors_r1 = self#on_expr env _visitors_c1
in
5087 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5088 (Pervasives.(==) _visitors_c1
_visitors_r1)
5090 else Do
(_visitors_r0, _visitors_r1)
5091 method on_While env _visitors_this _visitors_c0 _visitors_c1
=
5092 let _visitors_r0 = self#on_expr env _visitors_c0
in
5093 let _visitors_r1 = self#on_block env _visitors_c1
in
5095 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5096 (Pervasives.(==) _visitors_c1
_visitors_r1)
5098 else While
(_visitors_r0, _visitors_r1)
5099 method on_Using env _visitors_this _visitors_c0 _visitors_c1
5101 let _visitors_r0 = self#on_bool env _visitors_c0
in
5102 let _visitors_r1 = self#on_expr env _visitors_c1
in
5103 let _visitors_r2 = self#on_block env _visitors_c2
in
5105 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5107 (Pervasives.(==) _visitors_c1
_visitors_r1)
5108 (Pervasives.(==) _visitors_c2
_visitors_r2))
5110 else Using
(_visitors_r0, _visitors_r1, _visitors_r2)
5111 method on_For env _visitors_this _visitors_c0 _visitors_c1
5112 _visitors_c2 _visitors_c3
=
5113 let _visitors_r0 = self#on_expr env _visitors_c0
in
5114 let _visitors_r1 = self#on_expr env _visitors_c1
in
5115 let _visitors_r2 = self#on_expr env _visitors_c2
in
5116 let _visitors_r3 = self#on_block env _visitors_c3
in
5118 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5120 (Pervasives.(==) _visitors_c1
_visitors_r1)
5122 (Pervasives.(==) _visitors_c2
_visitors_r2)
5123 (Pervasives.(==) _visitors_c3
_visitors_r3)))
5126 For
(_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3)
5127 method on_Switch env _visitors_this _visitors_c0 _visitors_c1
=
5128 let _visitors_r0 = self#on_expr env _visitors_c0
in
5129 let _visitors_r1 = self#on_list self#on_case env _visitors_c1
5132 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5133 (Pervasives.(==) _visitors_c1
_visitors_r1)
5135 else Switch
(_visitors_r0, _visitors_r1)
5136 method on_Foreach env _visitors_this _visitors_c0 _visitors_c1
5138 let _visitors_r0 = self#on_expr env _visitors_c0
in
5139 let _visitors_r1 = self#on_as_expr env _visitors_c1
in
5140 let _visitors_r2 = self#on_block env _visitors_c2
in
5142 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5144 (Pervasives.(==) _visitors_c1
_visitors_r1)
5145 (Pervasives.(==) _visitors_c2
_visitors_r2))
5147 else Foreach
(_visitors_r0, _visitors_r1, _visitors_r2)
5148 method on_Try env _visitors_this _visitors_c0 _visitors_c1
5150 let _visitors_r0 = self#on_block env _visitors_c0
in
5151 let _visitors_r1 = self#on_list self#on_catch env _visitors_c1
5153 let _visitors_r2 = self#on_block env _visitors_c2
in
5155 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5157 (Pervasives.(==) _visitors_c1
_visitors_r1)
5158 (Pervasives.(==) _visitors_c2
_visitors_r2))
5160 else Try
(_visitors_r0, _visitors_r1, _visitors_r2)
5161 method on_Noop env _visitors_this
=
5162 if true then _visitors_this
else Noop
5163 method on_stmt env _visitors_this
=
5164 match _visitors_this
with
5165 | Fallthrough
as _visitors_this
->
5166 self#on_Fallthrough env _visitors_this
5167 | Expr _visitors_c0
as _visitors_this
->
5168 self#on_Expr env _visitors_this _visitors_c0
5169 | Break _visitors_c0
as _visitors_this
->
5170 self#on_Break env _visitors_this _visitors_c0
5171 | Continue _visitors_c0
as _visitors_this
->
5172 self#on_Continue env _visitors_this _visitors_c0
5173 | Throw
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5174 self#on_Throw env _visitors_this _visitors_c0 _visitors_c1
5175 | Return
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5176 self#on_Return env _visitors_this _visitors_c0 _visitors_c1
5177 | GotoLabel _visitors_c0
as _visitors_this
->
5178 self#on_GotoLabel env _visitors_this _visitors_c0
5179 | Goto _visitors_c0
as _visitors_this
->
5180 self#on_Goto env _visitors_this _visitors_c0
5181 | Static_var _visitors_c0
as _visitors_this
->
5182 self#on_Static_var env _visitors_this _visitors_c0
5183 | Global_var _visitors_c0
as _visitors_this
->
5184 self#on_Global_var env _visitors_this _visitors_c0
5185 | If
(_visitors_c0
,_visitors_c1
,_visitors_c2
) as _visitors_this
5187 self#on_If env _visitors_this _visitors_c0 _visitors_c1
5189 | Do
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5190 self#on_Do env _visitors_this _visitors_c0 _visitors_c1
5191 | While
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5192 self#on_While env _visitors_this _visitors_c0 _visitors_c1
5193 | Using
(_visitors_c0
,_visitors_c1
,_visitors_c2
) as
5195 self#on_Using env _visitors_this _visitors_c0 _visitors_c1
5197 | For
(_visitors_c0
,_visitors_c1
,_visitors_c2
,_visitors_c3
) as
5199 self#on_For env _visitors_this _visitors_c0 _visitors_c1
5200 _visitors_c2 _visitors_c3
5201 | Switch
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5202 self#on_Switch env _visitors_this _visitors_c0 _visitors_c1
5203 | Foreach
(_visitors_c0
,_visitors_c1
,_visitors_c2
) as
5205 self#on_Foreach env _visitors_this _visitors_c0
5206 _visitors_c1 _visitors_c2
5207 | Try
(_visitors_c0
,_visitors_c1
,_visitors_c2
) as
5209 self#on_Try env _visitors_this _visitors_c0 _visitors_c1
5211 | Noop
as _visitors_this
-> self#on_Noop env _visitors_this
5212 method on_As_v env _visitors_this _visitors_c0
=
5213 let _visitors_r0 = self#on_expr env _visitors_c0
in
5214 if Pervasives.(==) _visitors_c0
_visitors_r0
5216 else As_v
_visitors_r0
5217 method on_As_kv env _visitors_this _visitors_c0 _visitors_c1
=
5218 let _visitors_r0 = self#on_expr env _visitors_c0
in
5219 let _visitors_r1 = self#on_expr env _visitors_c1
in
5221 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5222 (Pervasives.(==) _visitors_c1
_visitors_r1)
5224 else As_kv
(_visitors_r0, _visitors_r1)
5225 method on_Await_as_v env _visitors_this _visitors_c0 _visitors_c1
5227 let _visitors_r0 = self#on_pos env _visitors_c0
in
5228 let _visitors_r1 = self#on_expr env _visitors_c1
in
5230 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5231 (Pervasives.(==) _visitors_c1
_visitors_r1)
5233 else Await_as_v
(_visitors_r0, _visitors_r1)
5234 method on_Await_as_kv env _visitors_this _visitors_c0
5235 _visitors_c1 _visitors_c2
=
5236 let _visitors_r0 = self#on_pos env _visitors_c0
in
5237 let _visitors_r1 = self#on_expr env _visitors_c1
in
5238 let _visitors_r2 = self#on_expr env _visitors_c2
in
5240 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5242 (Pervasives.(==) _visitors_c1
_visitors_r1)
5243 (Pervasives.(==) _visitors_c2
_visitors_r2))
5245 else Await_as_kv
(_visitors_r0, _visitors_r1, _visitors_r2)
5246 method on_as_expr env _visitors_this
=
5247 match _visitors_this
with
5248 | As_v _visitors_c0
as _visitors_this
->
5249 self#on_As_v env _visitors_this _visitors_c0
5250 | As_kv
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5251 self#on_As_kv env _visitors_this _visitors_c0 _visitors_c1
5252 | Await_as_v
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5253 self#on_Await_as_v env _visitors_this _visitors_c0
5255 | Await_as_kv
(_visitors_c0
,_visitors_c1
,_visitors_c2
) as
5257 self#on_Await_as_kv env _visitors_this _visitors_c0
5258 _visitors_c1 _visitors_c2
5259 method on_block env
= self#on_list self#on_stmt env
5260 method on_CIparent env _visitors_this
=
5261 if true then _visitors_this
else CIparent
5262 method on_CIself env _visitors_this
=
5263 if true then _visitors_this
else CIself
5264 method on_CIstatic env _visitors_this
=
5265 if true then _visitors_this
else CIstatic
5266 method on_CIexpr env _visitors_this _visitors_c0
=
5267 let _visitors_r0 = self#on_expr env _visitors_c0
in
5268 if Pervasives.(==) _visitors_c0
_visitors_r0
5270 else CIexpr
_visitors_r0
5271 method on_CI env _visitors_this _visitors_c0
=
5272 let _visitors_r0 = self#on_instantiated_sid env _visitors_c0
5274 if Pervasives.(==) _visitors_c0
_visitors_r0
5276 else CI
_visitors_r0
5277 method on_class_id env _visitors_this
=
5278 match _visitors_this
with
5279 | CIparent
as _visitors_this
->
5280 self#on_CIparent env _visitors_this
5281 | CIself
as _visitors_this
->
5282 self#on_CIself env _visitors_this
5283 | CIstatic
as _visitors_this
->
5284 self#on_CIstatic env _visitors_this
5285 | CIexpr _visitors_c0
as _visitors_this
->
5286 self#on_CIexpr env _visitors_this _visitors_c0
5287 | CI _visitors_c0
as _visitors_this
->
5288 self#on_CI env _visitors_this _visitors_c0
5290 ((_visitors_c0
,_visitors_c1
) as _visitors_this
) =
5291 let _visitors_r0 = self#on_expr_annotation env _visitors_c0
in
5292 let _visitors_r1 = self#on_expr_ env _visitors_c1
in
5294 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5295 (Pervasives.(==) _visitors_c1
_visitors_r1)
5297 else (_visitors_r0, _visitors_r1)
5298 method on_Array env _visitors_this _visitors_c0
=
5299 let _visitors_r0 = self#on_list self#on_afield env _visitors_c0
5301 if Pervasives.(==) _visitors_c0
_visitors_r0
5303 else Array
_visitors_r0
5304 method on_Darray env _visitors_this _visitors_c0
=
5308 fun ((_visitors_c0
,_visitors_c1
) as _visitors_this
) ->
5309 let _visitors_r0 = self#on_expr env _visitors_c0
in
5310 let _visitors_r1 = self#on_expr env _visitors_c1
in
5313 (Pervasives.(==) _visitors_c0
_visitors_r0)
5314 (Pervasives.(==) _visitors_c1
_visitors_r1)
5316 else (_visitors_r0, _visitors_r1)) env _visitors_c0
5318 if Pervasives.(==) _visitors_c0
_visitors_r0
5320 else Darray
_visitors_r0
5321 method on_Varray env _visitors_this _visitors_c0
=
5322 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
5324 if Pervasives.(==) _visitors_c0
_visitors_r0
5326 else Varray
_visitors_r0
5327 method on_Shape env _visitors_this _visitors_c0
=
5329 self#on_shape_map self#on_expr env _visitors_c0
in
5330 if Pervasives.(==) _visitors_c0
_visitors_r0
5332 else Shape
_visitors_r0
5333 method on_ValCollection env _visitors_this _visitors_c0
5335 let _visitors_r0 = self#on_vc_kind env _visitors_c0
in
5336 let _visitors_r1 = self#on_list self#on_expr env _visitors_c1
5339 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5340 (Pervasives.(==) _visitors_c1
_visitors_r1)
5342 else ValCollection
(_visitors_r0, _visitors_r1)
5343 method on_KeyValCollection env _visitors_this _visitors_c0
5345 let _visitors_r0 = self#on_kvc_kind env _visitors_c0
in
5346 let _visitors_r1 = self#on_list self#on_field env _visitors_c1
5349 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5350 (Pervasives.(==) _visitors_c1
_visitors_r1)
5352 else KeyValCollection
(_visitors_r0, _visitors_r1)
5353 method on_Null env _visitors_this
=
5354 if true then _visitors_this
else Null
5355 method on_This env _visitors_this
=
5356 if true then _visitors_this
else This
5357 method on_True env _visitors_this
=
5358 if true then _visitors_this
else True
5359 method on_False env _visitors_this
=
5360 if true then _visitors_this
else False
5361 method on_Id env _visitors_this _visitors_c0
=
5362 let _visitors_r0 = self#on_sid env _visitors_c0
in
5363 if Pervasives.(==) _visitors_c0
_visitors_r0
5365 else Id
_visitors_r0
5366 method on_Lvar env _visitors_this _visitors_c0
=
5367 let _visitors_r0 = self#on_lid env _visitors_c0
in
5368 if Pervasives.(==) _visitors_c0
_visitors_r0
5370 else Lvar
_visitors_r0
5371 method on_Dollar env _visitors_this _visitors_c0
=
5372 let _visitors_r0 = self#on_expr env _visitors_c0
in
5373 if Pervasives.(==) _visitors_c0
_visitors_r0
5375 else Dollar
_visitors_r0
5376 method on_Dollardollar env _visitors_this _visitors_c0
=
5377 let _visitors_r0 = self#on_lid env _visitors_c0
in
5378 if Pervasives.(==) _visitors_c0
_visitors_r0
5380 else Dollardollar
_visitors_r0
5381 method on_Clone env _visitors_this _visitors_c0
=
5382 let _visitors_r0 = self#on_expr env _visitors_c0
in
5383 if Pervasives.(==) _visitors_c0
_visitors_r0
5385 else Clone
_visitors_r0
5386 method on_Obj_get env _visitors_this _visitors_c0 _visitors_c1
5388 let _visitors_r0 = self#on_expr env _visitors_c0
in
5389 let _visitors_r1 = self#on_expr env _visitors_c1
in
5390 let _visitors_r2 = self#on_og_null_flavor env _visitors_c2
in
5392 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5394 (Pervasives.(==) _visitors_c1
_visitors_r1)
5395 (Pervasives.(==) _visitors_c2
_visitors_r2))
5397 else Obj_get
(_visitors_r0, _visitors_r1, _visitors_r2)
5398 method on_Array_get env _visitors_this _visitors_c0 _visitors_c1
5400 let _visitors_r0 = self#on_expr env _visitors_c0
in
5401 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1
5404 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5405 (Pervasives.(==) _visitors_c1
_visitors_r1)
5407 else Array_get
(_visitors_r0, _visitors_r1)
5408 method on_Class_get env _visitors_this _visitors_c0 _visitors_c1
5410 let _visitors_r0 = self#on_class_id env _visitors_c0
in
5411 let _visitors_r1 = self#on_pstring env _visitors_c1
in
5413 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5414 (Pervasives.(==) _visitors_c1
_visitors_r1)
5416 else Class_get
(_visitors_r0, _visitors_r1)
5417 method on_Class_const env _visitors_this _visitors_c0
5419 let _visitors_r0 = self#on_class_id env _visitors_c0
in
5420 let _visitors_r1 = self#on_pstring env _visitors_c1
in
5422 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5423 (Pervasives.(==) _visitors_c1
_visitors_r1)
5425 else Class_const
(_visitors_r0, _visitors_r1)
5426 method on_Call env _visitors_this _visitors_c0 _visitors_c1
5427 _visitors_c2 _visitors_c3 _visitors_c4
=
5428 let _visitors_r0 = self#on_call_type env _visitors_c0
in
5429 let _visitors_r1 = self#on_expr env _visitors_c1
in
5430 let _visitors_r2 = self#on_list self#on_hint env _visitors_c2
5432 let _visitors_r3 = self#on_list self#on_expr env _visitors_c3
5434 let _visitors_r4 = self#on_list self#on_expr env _visitors_c4
5437 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5439 (Pervasives.(==) _visitors_c1
_visitors_r1)
5441 (Pervasives.(==) _visitors_c2
_visitors_r2)
5443 (Pervasives.(==) _visitors_c3
_visitors_r3)
5444 (Pervasives.(==) _visitors_c4
_visitors_r4))))
5448 (_visitors_r0, _visitors_r1, _visitors_r2, _visitors_r3,
5450 method on_Int env _visitors_this _visitors_c0
=
5451 let _visitors_r0 = self#on_pstring env _visitors_c0
in
5452 if Pervasives.(==) _visitors_c0
_visitors_r0
5454 else Int
_visitors_r0
5455 method on_Float env _visitors_this _visitors_c0
=
5456 let _visitors_r0 = self#on_pstring env _visitors_c0
in
5457 if Pervasives.(==) _visitors_c0
_visitors_r0
5459 else Float
_visitors_r0
5460 method on_String env _visitors_this _visitors_c0
=
5461 let _visitors_r0 = self#on_pstring env _visitors_c0
in
5462 if Pervasives.(==) _visitors_c0
_visitors_r0
5464 else String
_visitors_r0
5465 method on_String2 env _visitors_this _visitors_c0
=
5466 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
5468 if Pervasives.(==) _visitors_c0
_visitors_r0
5470 else String2
_visitors_r0
5471 method on_Yield env _visitors_this _visitors_c0
=
5472 let _visitors_r0 = self#on_afield env _visitors_c0
in
5473 if Pervasives.(==) _visitors_c0
_visitors_r0
5475 else Yield
_visitors_r0
5476 method on_Yield_break env _visitors_this
=
5477 if true then _visitors_this
else Yield_break
5478 method on_Await env _visitors_this _visitors_c0
=
5479 let _visitors_r0 = self#on_expr env _visitors_c0
in
5480 if Pervasives.(==) _visitors_c0
_visitors_r0
5482 else Await
_visitors_r0
5483 method on_Suspend env _visitors_this _visitors_c0
=
5484 let _visitors_r0 = self#on_expr env _visitors_c0
in
5485 if Pervasives.(==) _visitors_c0
_visitors_r0
5487 else Suspend
_visitors_r0
5488 method on_List env _visitors_this _visitors_c0
=
5489 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
5491 if Pervasives.(==) _visitors_c0
_visitors_r0
5493 else List
_visitors_r0
5494 method on_Expr_list env _visitors_this _visitors_c0
=
5495 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
5497 if Pervasives.(==) _visitors_c0
_visitors_r0
5499 else Expr_list
_visitors_r0
5500 method on_Cast env _visitors_this _visitors_c0 _visitors_c1
=
5501 let _visitors_r0 = self#on_hint env _visitors_c0
in
5502 let _visitors_r1 = self#on_expr env _visitors_c1
in
5504 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5505 (Pervasives.(==) _visitors_c1
_visitors_r1)
5507 else Cast
(_visitors_r0, _visitors_r1)
5508 method on_Unop env _visitors_this _visitors_c0 _visitors_c1
=
5509 let _visitors_r0 = self#on_uop env _visitors_c0
in
5510 let _visitors_r1 = self#on_expr env _visitors_c1
in
5512 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5513 (Pervasives.(==) _visitors_c1
_visitors_r1)
5515 else Unop
(_visitors_r0, _visitors_r1)
5516 method on_Binop env _visitors_this _visitors_c0 _visitors_c1
5518 let _visitors_r0 = self#on_bop env _visitors_c0
in
5519 let _visitors_r1 = self#on_expr env _visitors_c1
in
5520 let _visitors_r2 = self#on_expr env _visitors_c2
in
5522 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5524 (Pervasives.(==) _visitors_c1
_visitors_r1)
5525 (Pervasives.(==) _visitors_c2
_visitors_r2))
5527 else Binop
(_visitors_r0, _visitors_r1, _visitors_r2)
5528 method on_Pipe env _visitors_this _visitors_c0 _visitors_c1
5530 let _visitors_r0 = self#on_lid env _visitors_c0
in
5531 let _visitors_r1 = self#on_expr env _visitors_c1
in
5532 let _visitors_r2 = self#on_expr env _visitors_c2
in
5534 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5536 (Pervasives.(==) _visitors_c1
_visitors_r1)
5537 (Pervasives.(==) _visitors_c2
_visitors_r2))
5539 else Pipe
(_visitors_r0, _visitors_r1, _visitors_r2)
5540 method on_Eif env _visitors_this _visitors_c0 _visitors_c1
5542 let _visitors_r0 = self#on_expr env _visitors_c0
in
5543 let _visitors_r1 = self#on_option self#on_expr env _visitors_c1
5545 let _visitors_r2 = self#on_expr env _visitors_c2
in
5547 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5549 (Pervasives.(==) _visitors_c1
_visitors_r1)
5550 (Pervasives.(==) _visitors_c2
_visitors_r2))
5552 else Eif
(_visitors_r0, _visitors_r1, _visitors_r2)
5553 method on_NullCoalesce env _visitors_this _visitors_c0
5555 let _visitors_r0 = self#on_expr env _visitors_c0
in
5556 let _visitors_r1 = self#on_expr env _visitors_c1
in
5558 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5559 (Pervasives.(==) _visitors_c1
_visitors_r1)
5561 else NullCoalesce
(_visitors_r0, _visitors_r1)
5562 method on_InstanceOf env _visitors_this _visitors_c0 _visitors_c1
5564 let _visitors_r0 = self#on_expr env _visitors_c0
in
5565 let _visitors_r1 = self#on_class_id env _visitors_c1
in
5567 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5568 (Pervasives.(==) _visitors_c1
_visitors_r1)
5570 else InstanceOf
(_visitors_r0, _visitors_r1)
5571 method on_Is env _visitors_this _visitors_c0 _visitors_c1
=
5572 let _visitors_r0 = self#on_expr env _visitors_c0
in
5573 let _visitors_r1 = self#on_hint env _visitors_c1
in
5575 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5576 (Pervasives.(==) _visitors_c1
_visitors_r1)
5578 else Is
(_visitors_r0, _visitors_r1)
5579 method on_New env _visitors_this _visitors_c0 _visitors_c1
5581 let _visitors_r0 = self#on_class_id env _visitors_c0
in
5582 let _visitors_r1 = self#on_list self#on_expr env _visitors_c1
5584 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2
5587 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5589 (Pervasives.(==) _visitors_c1
_visitors_r1)
5590 (Pervasives.(==) _visitors_c2
_visitors_r2))
5592 else New
(_visitors_r0, _visitors_r1, _visitors_r2)
5593 method on_Efun env _visitors_this _visitors_c0 _visitors_c1
=
5594 let _visitors_r0 = self#on_fun_ env _visitors_c0
in
5595 let _visitors_r1 = self#on_list self#on_lid env _visitors_c1
5598 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5599 (Pervasives.(==) _visitors_c1
_visitors_r1)
5601 else Efun
(_visitors_r0, _visitors_r1)
5602 method on_Xml env _visitors_this _visitors_c0 _visitors_c1
5604 let _visitors_r0 = self#on_sid env _visitors_c0
in
5606 self#on_list self#on_xhp_attribute env _visitors_c1
in
5607 let _visitors_r2 = self#on_list self#on_expr env _visitors_c2
5610 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5612 (Pervasives.(==) _visitors_c1
_visitors_r1)
5613 (Pervasives.(==) _visitors_c2
_visitors_r2))
5615 else Xml
(_visitors_r0, _visitors_r1, _visitors_r2)
5616 method on_Callconv env _visitors_this _visitors_c0 _visitors_c1
=
5617 let _visitors_r0 = self#on_param_kind env _visitors_c0
in
5618 let _visitors_r1 = self#on_expr env _visitors_c1
in
5620 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5621 (Pervasives.(==) _visitors_c1
_visitors_r1)
5623 else Callconv
(_visitors_r0, _visitors_r1)
5624 method on_Lplaceholder env _visitors_this _visitors_c0
=
5625 let _visitors_r0 = self#on_pos env _visitors_c0
in
5626 if Pervasives.(==) _visitors_c0
_visitors_r0
5628 else Lplaceholder
_visitors_r0
5629 method on_Fun_id env _visitors_this _visitors_c0
=
5630 let _visitors_r0 = self#on_sid env _visitors_c0
in
5631 if Pervasives.(==) _visitors_c0
_visitors_r0
5633 else Fun_id
_visitors_r0
5634 method on_Method_id env _visitors_this _visitors_c0 _visitors_c1
5636 let _visitors_r0 = self#on_expr env _visitors_c0
in
5637 let _visitors_r1 = self#on_pstring env _visitors_c1
in
5639 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5640 (Pervasives.(==) _visitors_c1
_visitors_r1)
5642 else Method_id
(_visitors_r0, _visitors_r1)
5643 method on_Method_caller env _visitors_this _visitors_c0
5645 let _visitors_r0 = self#on_sid env _visitors_c0
in
5646 let _visitors_r1 = self#on_pstring env _visitors_c1
in
5648 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5649 (Pervasives.(==) _visitors_c1
_visitors_r1)
5651 else Method_caller
(_visitors_r0, _visitors_r1)
5652 method on_Smethod_id env _visitors_this _visitors_c0 _visitors_c1
5654 let _visitors_r0 = self#on_sid env _visitors_c0
in
5655 let _visitors_r1 = self#on_pstring env _visitors_c1
in
5657 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5658 (Pervasives.(==) _visitors_c1
_visitors_r1)
5660 else Smethod_id
(_visitors_r0, _visitors_r1)
5661 method on_Special_func env _visitors_this _visitors_c0
=
5662 let _visitors_r0 = self#on_special_func env _visitors_c0
in
5663 if Pervasives.(==) _visitors_c0
_visitors_r0
5665 else Special_func
_visitors_r0
5666 method on_Pair env _visitors_this _visitors_c0 _visitors_c1
=
5667 let _visitors_r0 = self#on_expr env _visitors_c0
in
5668 let _visitors_r1 = self#on_expr env _visitors_c1
in
5670 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5671 (Pervasives.(==) _visitors_c1
_visitors_r1)
5673 else Pair
(_visitors_r0, _visitors_r1)
5674 method on_Assert env _visitors_this _visitors_c0
=
5675 let _visitors_r0 = self#on_assert_expr env _visitors_c0
in
5676 if Pervasives.(==) _visitors_c0
_visitors_r0
5678 else Assert
_visitors_r0
5679 method on_Typename env _visitors_this _visitors_c0
=
5680 let _visitors_r0 = self#on_sid env _visitors_c0
in
5681 if Pervasives.(==) _visitors_c0
_visitors_r0
5683 else Typename
_visitors_r0
5684 method on_Any env _visitors_this
=
5685 if true then _visitors_this
else Any
5686 method on_expr_ env _visitors_this
=
5687 match _visitors_this
with
5688 | Array _visitors_c0
as _visitors_this
->
5689 self#on_Array env _visitors_this _visitors_c0
5690 | Darray _visitors_c0
as _visitors_this
->
5691 self#on_Darray env _visitors_this _visitors_c0
5692 | Varray _visitors_c0
as _visitors_this
->
5693 self#on_Varray env _visitors_this _visitors_c0
5694 | Shape _visitors_c0
as _visitors_this
->
5695 self#on_Shape env _visitors_this _visitors_c0
5696 | ValCollection
(_visitors_c0
,_visitors_c1
) as _visitors_this
5698 self#on_ValCollection env _visitors_this _visitors_c0
5700 | KeyValCollection
(_visitors_c0
,_visitors_c1
) as
5702 self#on_KeyValCollection env _visitors_this _visitors_c0
5704 | Null
as _visitors_this
-> self#on_Null env _visitors_this
5705 | This
as _visitors_this
-> self#on_This env _visitors_this
5706 | True
as _visitors_this
-> self#on_True env _visitors_this
5707 | False
as _visitors_this
-> self#on_False env _visitors_this
5708 | Id _visitors_c0
as _visitors_this
->
5709 self#on_Id env _visitors_this _visitors_c0
5710 | Lvar _visitors_c0
as _visitors_this
->
5711 self#on_Lvar env _visitors_this _visitors_c0
5712 | Dollar _visitors_c0
as _visitors_this
->
5713 self#on_Dollar env _visitors_this _visitors_c0
5714 | Dollardollar _visitors_c0
as _visitors_this
->
5715 self#on_Dollardollar env _visitors_this _visitors_c0
5716 | Clone _visitors_c0
as _visitors_this
->
5717 self#on_Clone env _visitors_this _visitors_c0
5718 | Obj_get
(_visitors_c0
,_visitors_c1
,_visitors_c2
) as
5720 self#on_Obj_get env _visitors_this _visitors_c0
5721 _visitors_c1 _visitors_c2
5722 | Array_get
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5723 self#on_Array_get env _visitors_this _visitors_c0
5725 | Class_get
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5726 self#on_Class_get env _visitors_this _visitors_c0
5728 | Class_const
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5729 self#on_Class_const env _visitors_this _visitors_c0
5732 (_visitors_c0
,_visitors_c1
,_visitors_c2
,_visitors_c3
,_visitors_c4
)
5733 as _visitors_this
->
5734 self#on_Call env _visitors_this _visitors_c0 _visitors_c1
5735 _visitors_c2 _visitors_c3 _visitors_c4
5736 | Int _visitors_c0
as _visitors_this
->
5737 self#on_Int env _visitors_this _visitors_c0
5738 | Float _visitors_c0
as _visitors_this
->
5739 self#on_Float env _visitors_this _visitors_c0
5740 | String _visitors_c0
as _visitors_this
->
5741 self#on_String env _visitors_this _visitors_c0
5742 | String2 _visitors_c0
as _visitors_this
->
5743 self#on_String2 env _visitors_this _visitors_c0
5744 | Yield _visitors_c0
as _visitors_this
->
5745 self#on_Yield env _visitors_this _visitors_c0
5746 | Yield_break
as _visitors_this
->
5747 self#on_Yield_break env _visitors_this
5748 | Await _visitors_c0
as _visitors_this
->
5749 self#on_Await env _visitors_this _visitors_c0
5750 | Suspend _visitors_c0
as _visitors_this
->
5751 self#on_Suspend env _visitors_this _visitors_c0
5752 | List _visitors_c0
as _visitors_this
->
5753 self#on_List env _visitors_this _visitors_c0
5754 | Expr_list _visitors_c0
as _visitors_this
->
5755 self#on_Expr_list env _visitors_this _visitors_c0
5756 | Cast
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5757 self#on_Cast env _visitors_this _visitors_c0 _visitors_c1
5758 | Unop
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5759 self#on_Unop env _visitors_this _visitors_c0 _visitors_c1
5760 | Binop
(_visitors_c0
,_visitors_c1
,_visitors_c2
) as
5762 self#on_Binop env _visitors_this _visitors_c0 _visitors_c1
5764 | Pipe
(_visitors_c0
,_visitors_c1
,_visitors_c2
) as
5766 self#on_Pipe env _visitors_this _visitors_c0 _visitors_c1
5768 | Eif
(_visitors_c0
,_visitors_c1
,_visitors_c2
) as
5770 self#on_Eif env _visitors_this _visitors_c0 _visitors_c1
5772 | NullCoalesce
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5773 self#on_NullCoalesce env _visitors_this _visitors_c0
5775 | InstanceOf
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5776 self#on_InstanceOf env _visitors_this _visitors_c0
5778 | Is
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5779 self#on_Is env _visitors_this _visitors_c0 _visitors_c1
5780 | New
(_visitors_c0
,_visitors_c1
,_visitors_c2
) as
5782 self#on_New env _visitors_this _visitors_c0 _visitors_c1
5784 | Efun
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5785 self#on_Efun env _visitors_this _visitors_c0 _visitors_c1
5786 | Xml
(_visitors_c0
,_visitors_c1
,_visitors_c2
) as
5788 self#on_Xml env _visitors_this _visitors_c0 _visitors_c1
5790 | Callconv
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5791 self#on_Callconv env _visitors_this _visitors_c0
5793 | Lplaceholder _visitors_c0
as _visitors_this
->
5794 self#on_Lplaceholder env _visitors_this _visitors_c0
5795 | Fun_id _visitors_c0
as _visitors_this
->
5796 self#on_Fun_id env _visitors_this _visitors_c0
5797 | Method_id
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5798 self#on_Method_id env _visitors_this _visitors_c0
5800 | Method_caller
(_visitors_c0
,_visitors_c1
) as _visitors_this
5802 self#on_Method_caller env _visitors_this _visitors_c0
5804 | Smethod_id
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5805 self#on_Smethod_id env _visitors_this _visitors_c0
5807 | Special_func _visitors_c0
as _visitors_this
->
5808 self#on_Special_func env _visitors_this _visitors_c0
5809 | Pair
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5810 self#on_Pair env _visitors_this _visitors_c0 _visitors_c1
5811 | Assert _visitors_c0
as _visitors_this
->
5812 self#on_Assert env _visitors_this _visitors_c0
5813 | Typename _visitors_c0
as _visitors_this
->
5814 self#on_Typename env _visitors_this _visitors_c0
5815 | Any
as _visitors_this
-> self#on_Any env _visitors_this
5816 method on_AE_assert env _visitors_this _visitors_c0
=
5817 let _visitors_r0 = self#on_expr env _visitors_c0
in
5818 if Pervasives.(==) _visitors_c0
_visitors_r0
5820 else AE_assert
_visitors_r0
5821 method on_assert_expr env _visitors_this
=
5822 match _visitors_this
with
5823 | AE_assert _visitors_c0
as _visitors_this
->
5824 self#on_AE_assert env _visitors_this _visitors_c0
5825 method on_Default env _visitors_this _visitors_c0
=
5826 let _visitors_r0 = self#on_block env _visitors_c0
in
5827 if Pervasives.(==) _visitors_c0
_visitors_r0
5829 else Default
_visitors_r0
5830 method on_Case env _visitors_this _visitors_c0 _visitors_c1
=
5831 let _visitors_r0 = self#on_expr env _visitors_c0
in
5832 let _visitors_r1 = self#on_block env _visitors_c1
in
5834 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5835 (Pervasives.(==) _visitors_c1
_visitors_r1)
5837 else Case
(_visitors_r0, _visitors_r1)
5838 method on_case env _visitors_this
=
5839 match _visitors_this
with
5840 | Default _visitors_c0
as _visitors_this
->
5841 self#on_Default env _visitors_this _visitors_c0
5842 | Case
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5843 self#on_Case env _visitors_this _visitors_c0 _visitors_c1
5845 ((_visitors_c0
,_visitors_c1
,_visitors_c2
) as _visitors_this
) =
5846 let _visitors_r0 = self#on_sid env _visitors_c0
in
5847 let _visitors_r1 = self#on_lid env _visitors_c1
in
5848 let _visitors_r2 = self#on_block env _visitors_c2
in
5850 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5852 (Pervasives.(==) _visitors_c1
_visitors_r1)
5853 (Pervasives.(==) _visitors_c2
_visitors_r2))
5855 else (_visitors_r0, _visitors_r1, _visitors_r2)
5857 ((_visitors_c0
,_visitors_c1
) as _visitors_this
) =
5858 let _visitors_r0 = self#on_expr env _visitors_c0
in
5859 let _visitors_r1 = self#on_expr env _visitors_c1
in
5861 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5862 (Pervasives.(==) _visitors_c1
_visitors_r1)
5864 else (_visitors_r0, _visitors_r1)
5865 method on_AFvalue env _visitors_this _visitors_c0
=
5866 let _visitors_r0 = self#on_expr env _visitors_c0
in
5867 if Pervasives.(==) _visitors_c0
_visitors_r0
5869 else AFvalue
_visitors_r0
5870 method on_AFkvalue env _visitors_this _visitors_c0 _visitors_c1
=
5871 let _visitors_r0 = self#on_expr env _visitors_c0
in
5872 let _visitors_r1 = self#on_expr env _visitors_c1
in
5874 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5875 (Pervasives.(==) _visitors_c1
_visitors_r1)
5877 else AFkvalue
(_visitors_r0, _visitors_r1)
5878 method on_afield env _visitors_this
=
5879 match _visitors_this
with
5880 | AFvalue _visitors_c0
as _visitors_this
->
5881 self#on_AFvalue env _visitors_this _visitors_c0
5882 | AFkvalue
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5883 self#on_AFkvalue env _visitors_this _visitors_c0
5885 method on_Xhp_simple env _visitors_this _visitors_c0 _visitors_c1
5887 let _visitors_r0 = self#on_pstring env _visitors_c0
in
5888 let _visitors_r1 = self#on_expr env _visitors_c1
in
5890 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
5891 (Pervasives.(==) _visitors_c1
_visitors_r1)
5893 else Xhp_simple
(_visitors_r0, _visitors_r1)
5894 method on_Xhp_spread env _visitors_this _visitors_c0
=
5895 let _visitors_r0 = self#on_expr env _visitors_c0
in
5896 if Pervasives.(==) _visitors_c0
_visitors_r0
5898 else Xhp_spread
_visitors_r0
5899 method on_xhp_attribute env _visitors_this
=
5900 match _visitors_this
with
5901 | Xhp_simple
(_visitors_c0
,_visitors_c1
) as _visitors_this
->
5902 self#on_Xhp_simple env _visitors_this _visitors_c0
5904 | Xhp_spread _visitors_c0
as _visitors_this
->
5905 self#on_Xhp_spread env _visitors_this _visitors_c0
5906 method on_Gena env _visitors_this _visitors_c0
=
5907 let _visitors_r0 = self#on_expr env _visitors_c0
in
5908 if Pervasives.(==) _visitors_c0
_visitors_r0
5910 else Gena
_visitors_r0
5911 method on_Genva env _visitors_this _visitors_c0
=
5912 let _visitors_r0 = self#on_list self#on_expr env _visitors_c0
5914 if Pervasives.(==) _visitors_c0
_visitors_r0
5916 else Genva
_visitors_r0
5917 method on_Gen_array_rec env _visitors_this _visitors_c0
=
5918 let _visitors_r0 = self#on_expr env _visitors_c0
in
5919 if Pervasives.(==) _visitors_c0
_visitors_r0
5921 else Gen_array_rec
_visitors_r0
5922 method on_special_func env _visitors_this
=
5923 match _visitors_this
with
5924 | Gena _visitors_c0
as _visitors_this
->
5925 self#on_Gena env _visitors_this _visitors_c0
5926 | Genva _visitors_c0
as _visitors_this
->
5927 self#on_Genva env _visitors_this _visitors_c0
5928 | Gen_array_rec _visitors_c0
as _visitors_this
->
5929 self#on_Gen_array_rec env _visitors_this _visitors_c0
5930 method on_is_reference env
= self#on_bool env
5931 method on_is_variadic env
= self#on_bool env
5932 method on_fun_param env _visitors_this
=
5934 self#on_option self#on_hint env _visitors_this
.param_hint
in
5936 self#on_is_reference env _visitors_this
.param_is_reference
5939 self#on_is_variadic env _visitors_this
.param_is_variadic
in
5940 let _visitors_r3 = self#on_pos env _visitors_this
.param_pos
in
5941 let _visitors_r4 = self#on_string env _visitors_this
.param_name
5944 self#on_option self#on_expr env _visitors_this
.param_expr
in
5946 self#on_option self#on_param_kind env
5947 _visitors_this
.param_callconv
5950 self#on_list self#on_user_attribute env
5951 _visitors_this
.param_user_attributes
5955 (Pervasives.(==) _visitors_this
.param_hint
_visitors_r0)
5957 (Pervasives.(==) _visitors_this
.param_is_reference
5960 (Pervasives.(==) _visitors_this
.param_is_variadic
5963 (Pervasives.(==) _visitors_this
.param_pos
5966 (Pervasives.(==) _visitors_this
.param_name
5969 (Pervasives.(==) _visitors_this
.param_expr
5973 _visitors_this
.param_callconv
5976 _visitors_this
.param_user_attributes
5981 param_hint
= _visitors_r0;
5982 param_is_reference
= _visitors_r1;
5983 param_is_variadic
= _visitors_r2;
5984 param_pos
= _visitors_r3;
5985 param_name
= _visitors_r4;
5986 param_expr
= _visitors_r5;
5987 param_callconv
= _visitors_r6;
5988 param_user_attributes
= _visitors_r7
5990 method on_FVvariadicArg env _visitors_this _visitors_c0
=
5991 let _visitors_r0 = self#on_fun_param env _visitors_c0
in
5992 if Pervasives.(==) _visitors_c0
_visitors_r0
5994 else FVvariadicArg
_visitors_r0
5995 method on_FVellipsis env _visitors_this
=
5996 if true then _visitors_this
else FVellipsis
5997 method on_FVnonVariadic env _visitors_this
=
5998 if true then _visitors_this
else FVnonVariadic
5999 method on_fun_variadicity env _visitors_this
=
6000 match _visitors_this
with
6001 | FVvariadicArg _visitors_c0
as _visitors_this
->
6002 self#on_FVvariadicArg env _visitors_this _visitors_c0
6003 | FVellipsis
as _visitors_this
->
6004 self#on_FVellipsis env _visitors_this
6005 | FVnonVariadic
as _visitors_this
->
6006 self#on_FVnonVariadic env _visitors_this
6007 method on_fun_ env _visitors_this
=
6009 self#on_env_annotation env _visitors_this
.f_annotation
in
6011 (fun _visitors_this
-> _visitors_this
) _visitors_this
.f_mode
6014 self#on_option self#on_hint env _visitors_this
.f_ret
in
6015 let _visitors_r3 = self#on_sid env _visitors_this
.f_name
in
6017 self#on_list self#on_tparam env _visitors_this
.f_tparams
in
6019 self#on_list self#on_where_constraint env
6020 _visitors_this
.f_where_constraints
6023 self#on_fun_variadicity env _visitors_this
.f_variadic
in
6025 self#on_list self#on_fun_param env _visitors_this
.f_params
6027 let _visitors_r8 = self#on_func_body env _visitors_this
.f_body
6030 self#on_fun_kind env _visitors_this
.f_fun_kind
in
6032 self#on_list self#on_user_attribute env
6033 _visitors_this
.f_user_attributes
6036 self#on_bool env _visitors_this
.f_ret_by_ref
in
6039 (Pervasives.(==) _visitors_this
.f_annotation
_visitors_r0)
6041 (Pervasives.(==) _visitors_this
.f_mode
_visitors_r1)
6043 (Pervasives.(==) _visitors_this
.f_ret
_visitors_r2)
6045 (Pervasives.(==) _visitors_this
.f_name
6048 (Pervasives.(==) _visitors_this
.f_tparams
6052 _visitors_this
.f_where_constraints
6056 _visitors_this
.f_variadic
_visitors_r6)
6059 _visitors_this
.f_params
6063 _visitors_this
.f_body
6067 _visitors_this
.f_fun_kind
6071 _visitors_this
.f_user_attributes
6074 _visitors_this
.f_ret_by_ref
6075 _visitors_r11)))))))))))
6079 f_annotation
= _visitors_r0;
6080 f_mode
= _visitors_r1;
6081 f_ret
= _visitors_r2;
6082 f_name
= _visitors_r3;
6083 f_tparams
= _visitors_r4;
6084 f_where_constraints
= _visitors_r5;
6085 f_variadic
= _visitors_r6;
6086 f_params
= _visitors_r7;
6087 f_body
= _visitors_r8;
6088 f_fun_kind
= _visitors_r9;
6089 f_user_attributes
= _visitors_r10;
6090 f_ret_by_ref
= _visitors_r11
6092 method on_UnnamedBody env _visitors_this _visitors_c0
=
6093 let _visitors_r0 = self#on_func_unnamed_body env _visitors_c0
6095 if Pervasives.(==) _visitors_c0
_visitors_r0
6097 else UnnamedBody
_visitors_r0
6098 method on_NamedBody env _visitors_this _visitors_c0
=
6099 let _visitors_r0 = self#on_func_named_body env _visitors_c0
in
6100 if Pervasives.(==) _visitors_c0
_visitors_r0
6102 else NamedBody
_visitors_r0
6103 method on_func_body env _visitors_this
=
6104 match _visitors_this
with
6105 | UnnamedBody _visitors_c0
as _visitors_this
->
6106 self#on_UnnamedBody env _visitors_this _visitors_c0
6107 | NamedBody _visitors_c0
as _visitors_this
->
6108 self#on_NamedBody env _visitors_this _visitors_c0
6109 method on_func_unnamed_body env _visitors_this
=
6111 (fun _visitors_this
-> _visitors_this
)
6112 _visitors_this
.fub_ast
6115 (fun _visitors_this
-> _visitors_this
)
6116 _visitors_this
.fub_tparams
6119 (fun _visitors_this
-> _visitors_this
)
6120 _visitors_this
.fub_namespace
6124 (Pervasives.(==) _visitors_this
.fub_ast
_visitors_r0)
6126 (Pervasives.(==) _visitors_this
.fub_tparams
_visitors_r1)
6127 (Pervasives.(==) _visitors_this
.fub_namespace
6132 fub_ast
= _visitors_r0;
6133 fub_tparams
= _visitors_r1;
6134 fub_namespace
= _visitors_r2
6136 method on_func_named_body env _visitors_this
=
6137 let _visitors_r0 = self#on_block env _visitors_this
.fnb_nast
6139 let _visitors_r1 = self#on_bool env _visitors_this
.fnb_unsafe
6143 (Pervasives.(==) _visitors_this
.fnb_nast
_visitors_r0)
6144 (Pervasives.(==) _visitors_this
.fnb_unsafe
_visitors_r1)
6146 else { fnb_nast
= _visitors_r0; fnb_unsafe
= _visitors_r1 }
6147 method on_user_attribute env _visitors_this
=
6148 let _visitors_r0 = self#on_sid env _visitors_this
.ua_name
in
6150 self#on_list self#on_expr env _visitors_this
.ua_params
in
6153 (Pervasives.(==) _visitors_this
.ua_name
_visitors_r0)
6154 (Pervasives.(==) _visitors_this
.ua_params
_visitors_r1)
6156 else { ua_name
= _visitors_r0; ua_params
= _visitors_r1 }
6157 method on_class_ env _visitors_this
=
6159 self#on_env_annotation env _visitors_this
.c_annotation
in
6161 (fun _visitors_this
-> _visitors_this
) _visitors_this
.c_mode
6163 let _visitors_r2 = self#on_bool env _visitors_this
.c_final
in
6164 let _visitors_r3 = self#on_bool env _visitors_this
.c_is_xhp
in
6165 let _visitors_r4 = self#on_class_kind env _visitors_this
.c_kind
6167 let _visitors_r5 = self#on_sid env _visitors_this
.c_name
in
6169 (fun _visitors_this
-> _visitors_this
)
6170 _visitors_this
.c_tparams
6173 self#on_list self#on_hint env _visitors_this
.c_extends
in
6175 self#on_list self#on_hint env _visitors_this
.c_uses
in
6177 self#on_list self#on_hint env _visitors_this
.c_xhp_attr_uses
6180 self#on_list self#on_pstring env
6181 _visitors_this
.c_xhp_category
6184 self#on_list self#on_hint env _visitors_this
.c_req_extends
6187 self#on_list self#on_hint env _visitors_this
.c_req_implements
6190 self#on_list self#on_hint env _visitors_this
.c_implements
in
6192 self#on_list self#on_class_const env _visitors_this
.c_consts
6195 self#on_list self#on_class_typeconst env
6196 _visitors_this
.c_typeconsts
6199 self#on_list self#on_class_var env
6200 _visitors_this
.c_static_vars
6203 self#on_list self#on_class_var env _visitors_this
.c_vars
in
6205 self#on_option self#on_method_ env
6206 _visitors_this
.c_constructor
6209 self#on_list self#on_method_ env
6210 _visitors_this
.c_static_methods
6213 self#on_list self#on_method_ env _visitors_this
.c_methods
in
6215 self#on_list self#on_user_attribute env
6216 _visitors_this
.c_user_attributes
6219 self#on_option self#on_enum_ env _visitors_this
.c_enum
in
6222 (Pervasives.(==) _visitors_this
.c_annotation
_visitors_r0)
6224 (Pervasives.(==) _visitors_this
.c_mode
_visitors_r1)
6226 (Pervasives.(==) _visitors_this
.c_final
_visitors_r2)
6228 (Pervasives.(==) _visitors_this
.c_is_xhp
6231 (Pervasives.(==) _visitors_this
.c_kind
6234 (Pervasives.(==) _visitors_this
.c_name
6237 (Pervasives.(==) _visitors_this
.c_tparams
6241 _visitors_this
.c_extends
6245 _visitors_this
.c_uses
6249 _visitors_this
.c_xhp_attr_uses
6253 _visitors_this
.c_xhp_category
6257 _visitors_this
.c_req_extends
6261 _visitors_this
.c_req_implements
6265 _visitors_this
.c_implements
6269 _visitors_this
.c_consts
6273 _visitors_this
.c_typeconsts
6277 _visitors_this
.c_static_vars
6281 _visitors_this
.c_vars
6285 _visitors_this
.c_constructor
6289 _visitors_this
.c_static_methods
6293 _visitors_this
.c_methods
6297 _visitors_this
.c_user_attributes
6300 _visitors_this
.c_enum
6301 _visitors_r22))))))))))))))))))))))
6305 c_annotation
= _visitors_r0;
6306 c_mode
= _visitors_r1;
6307 c_final
= _visitors_r2;
6308 c_is_xhp
= _visitors_r3;
6309 c_kind
= _visitors_r4;
6310 c_name
= _visitors_r5;
6311 c_tparams
= _visitors_r6;
6312 c_extends
= _visitors_r7;
6313 c_uses
= _visitors_r8;
6314 c_xhp_attr_uses
= _visitors_r9;
6315 c_xhp_category
= _visitors_r10;
6316 c_req_extends
= _visitors_r11;
6317 c_req_implements
= _visitors_r12;
6318 c_implements
= _visitors_r13;
6319 c_consts
= _visitors_r14;
6320 c_typeconsts
= _visitors_r15;
6321 c_static_vars
= _visitors_r16;
6322 c_vars
= _visitors_r17;
6323 c_constructor
= _visitors_r18;
6324 c_static_methods
= _visitors_r19;
6325 c_methods
= _visitors_r20;
6326 c_user_attributes
= _visitors_r21;
6327 c_enum
= _visitors_r22
6329 method on_class_const env
6330 ((_visitors_c0
,_visitors_c1
,_visitors_c2
) as _visitors_this
) =
6331 let _visitors_r0 = self#on_option self#on_hint env _visitors_c0
6333 let _visitors_r1 = self#on_sid env _visitors_c1
in
6334 let _visitors_r2 = self#on_option self#on_expr env _visitors_c2
6337 Pervasives.(&&) (Pervasives.(==) _visitors_c0
_visitors_r0)
6339 (Pervasives.(==) _visitors_c1
_visitors_r1)
6340 (Pervasives.(==) _visitors_c2
_visitors_r2))
6342 else (_visitors_r0, _visitors_r1, _visitors_r2)
6343 method on_class_typeconst env _visitors_this
=
6344 let _visitors_r0 = self#on_sid env _visitors_this
.c_tconst_name
6347 self#on_option self#on_hint env
6348 _visitors_this
.c_tconst_constraint
6351 self#on_option self#on_hint env _visitors_this
.c_tconst_type
6355 (Pervasives.(==) _visitors_this
.c_tconst_name
_visitors_r0)
6357 (Pervasives.(==) _visitors_this
.c_tconst_constraint
6359 (Pervasives.(==) _visitors_this
.c_tconst_type
6364 c_tconst_name
= _visitors_r0;
6365 c_tconst_constraint
= _visitors_r1;
6366 c_tconst_type
= _visitors_r2
6368 method on_class_var env _visitors_this
=
6369 let _visitors_r0 = self#on_bool env _visitors_this
.cv_final
in
6370 let _visitors_r1 = self#on_bool env _visitors_this
.cv_is_xhp
6373 self#on_visibility env _visitors_this
.cv_visibility
in
6375 self#on_option self#on_hint env _visitors_this
.cv_type
in
6376 let _visitors_r4 = self#on_sid env _visitors_this
.cv_id
in
6378 self#on_option self#on_expr env _visitors_this
.cv_expr
in
6380 self#on_list self#on_user_attribute env
6381 _visitors_this
.cv_user_attributes
6385 (Pervasives.(==) _visitors_this
.cv_final
_visitors_r0)
6387 (Pervasives.(==) _visitors_this
.cv_is_xhp
_visitors_r1)
6389 (Pervasives.(==) _visitors_this
.cv_visibility
6392 (Pervasives.(==) _visitors_this
.cv_type
6395 (Pervasives.(==) _visitors_this
.cv_id
6398 (Pervasives.(==) _visitors_this
.cv_expr
6401 _visitors_this
.cv_user_attributes
6406 cv_final
= _visitors_r0;
6407 cv_is_xhp
= _visitors_r1;
6408 cv_visibility
= _visitors_r2;
6409 cv_type
= _visitors_r3;
6410 cv_id
= _visitors_r4;
6411 cv_expr
= _visitors_r5;
6412 cv_user_attributes
= _visitors_r6
6414 method on_method_ env _visitors_this
=
6416 self#on_env_annotation env _visitors_this
.m_annotation
in
6417 let _visitors_r1 = self#on_bool env _visitors_this
.m_final
in
6418 let _visitors_r2 = self#on_bool env _visitors_this
.m_abstract
6421 self#on_visibility env _visitors_this
.m_visibility
in
6422 let _visitors_r4 = self#on_sid env _visitors_this
.m_name
in
6424 self#on_list self#on_tparam env _visitors_this
.m_tparams
in
6426 self#on_list self#on_where_constraint env
6427 _visitors_this
.m_where_constraints
6430 self#on_fun_variadicity env _visitors_this
.m_variadic
in
6432 self#on_list self#on_fun_param env _visitors_this
.m_params
6434 let _visitors_r9 = self#on_func_body env _visitors_this
.m_body
6437 self#on_fun_kind env _visitors_this
.m_fun_kind
in
6439 self#on_list self#on_user_attribute env
6440 _visitors_this
.m_user_attributes
6443 self#on_option self#on_hint env _visitors_this
.m_ret
in
6445 self#on_bool env _visitors_this
.m_ret_by_ref
in
6448 (Pervasives.(==) _visitors_this
.m_annotation
_visitors_r0)
6450 (Pervasives.(==) _visitors_this
.m_final
_visitors_r1)
6452 (Pervasives.(==) _visitors_this
.m_abstract
6455 (Pervasives.(==) _visitors_this
.m_visibility
6458 (Pervasives.(==) _visitors_this
.m_name
6461 (Pervasives.(==) _visitors_this
.m_tparams
6465 _visitors_this
.m_where_constraints
6469 _visitors_this
.m_variadic
6473 _visitors_this
.m_params
6477 _visitors_this
.m_body
6481 _visitors_this
.m_fun_kind
6485 _visitors_this
.m_user_attributes
6489 _visitors_this
.m_ret
6492 _visitors_this
.m_ret_by_ref
6493 _visitors_r13)))))))))))))
6497 m_annotation
= _visitors_r0;
6498 m_final
= _visitors_r1;
6499 m_abstract
= _visitors_r2;
6500 m_visibility
= _visitors_r3;
6501 m_name
= _visitors_r4;
6502 m_tparams
= _visitors_r5;
6503 m_where_constraints
= _visitors_r6;
6504 m_variadic
= _visitors_r7;
6505 m_params
= _visitors_r8;
6506 m_body
= _visitors_r9;
6507 m_fun_kind
= _visitors_r10;
6508 m_user_attributes
= _visitors_r11;
6509 m_ret
= _visitors_r12;
6510 m_ret_by_ref
= _visitors_r13
6512 method on_typedef env _visitors_this
=
6514 self#on_env_annotation env _visitors_this
.t_annotation
in
6515 let _visitors_r1 = self#on_sid env _visitors_this
.t_name
in
6517 self#on_list self#on_tparam env _visitors_this
.t_tparams
in
6519 self#on_option self#on_hint env _visitors_this
.t_constraint
6521 let _visitors_r4 = self#on_hint env _visitors_this
.t_kind
in
6523 self#on_list self#on_user_attribute env
6524 _visitors_this
.t_user_attributes
6527 (fun _visitors_this
-> _visitors_this
) _visitors_this
.t_mode
6530 self#on_typedef_visibility env _visitors_this
.t_vis
in
6533 (Pervasives.(==) _visitors_this
.t_annotation
_visitors_r0)
6535 (Pervasives.(==) _visitors_this
.t_name
_visitors_r1)
6537 (Pervasives.(==) _visitors_this
.t_tparams
6540 (Pervasives.(==) _visitors_this
.t_constraint
6543 (Pervasives.(==) _visitors_this
.t_kind
6547 _visitors_this
.t_user_attributes
6550 (Pervasives.(==) _visitors_this
.t_mode
6552 (Pervasives.(==) _visitors_this
.t_vis
6557 t_annotation
= _visitors_r0;
6558 t_name
= _visitors_r1;
6559 t_tparams
= _visitors_r2;
6560 t_constraint
= _visitors_r3;
6561 t_kind
= _visitors_r4;
6562 t_user_attributes
= _visitors_r5;
6563 t_mode
= _visitors_r6;
6564 t_vis
= _visitors_r7
6566 method on_gconst env _visitors_this
=
6568 self#on_env_annotation env _visitors_this
.cst_annotation
in
6570 (fun _visitors_this
-> _visitors_this
)
6571 _visitors_this
.cst_mode
6573 let _visitors_r2 = self#on_sid env _visitors_this
.cst_name
in
6575 self#on_option self#on_hint env _visitors_this
.cst_type
in
6577 self#on_option self#on_expr env _visitors_this
.cst_value
in
6579 self#on_bool env _visitors_this
.cst_is_define
in
6582 (Pervasives.(==) _visitors_this
.cst_annotation
_visitors_r0)
6584 (Pervasives.(==) _visitors_this
.cst_mode
_visitors_r1)
6586 (Pervasives.(==) _visitors_this
.cst_name
_visitors_r2)
6588 (Pervasives.(==) _visitors_this
.cst_type
6591 (Pervasives.(==) _visitors_this
.cst_value
6593 (Pervasives.(==) _visitors_this
.cst_is_define
6598 cst_annotation
= _visitors_r0;
6599 cst_mode
= _visitors_r1;
6600 cst_name
= _visitors_r2;
6601 cst_type
= _visitors_r3;
6602 cst_value
= _visitors_r4;
6603 cst_is_define
= _visitors_r5
6605 method on_Fun env _visitors_this _visitors_c0
=
6606 let _visitors_r0 = self#on_fun_ env _visitors_c0
in
6607 if Pervasives.(==) _visitors_c0
_visitors_r0
6609 else Fun
_visitors_r0
6610 method on_Class env _visitors_this _visitors_c0
=
6611 let _visitors_r0 = self#on_class_ env _visitors_c0
in
6612 if Pervasives.(==) _visitors_c0
_visitors_r0
6614 else Class
_visitors_r0
6615 method on_Typedef env _visitors_this _visitors_c0
=
6616 let _visitors_r0 = self#on_typedef env _visitors_c0
in
6617 if Pervasives.(==) _visitors_c0
_visitors_r0
6619 else Typedef
_visitors_r0
6620 method on_Constant env _visitors_this _visitors_c0
=
6621 let _visitors_r0 = self#on_gconst env _visitors_c0
in
6622 if Pervasives.(==) _visitors_c0
_visitors_r0
6624 else Constant
_visitors_r0
6625 method on_def env _visitors_this
=
6626 match _visitors_this
with
6627 | Fun _visitors_c0
as _visitors_this
->
6628 self#on_Fun env _visitors_this _visitors_c0
6629 | Class _visitors_c0
as _visitors_this
->
6630 self#on_Class env _visitors_this _visitors_c0
6631 | Typedef _visitors_c0
as _visitors_this
->
6632 self#on_Typedef env _visitors_this _visitors_c0
6633 | Constant _visitors_c0
as _visitors_this
->
6634 self#on_Constant env _visitors_this _visitors_c0
6638 let expr_to_string expr
=
6641 | Array _
-> "Array"
6642 | Darray _
-> "Darray"
6643 | Varray _
-> "Varray"
6644 | Shape _
-> "Shape"
6645 | ValCollection _
-> "ValCollection"
6646 | KeyValCollection _
-> "KeyValCollection"
6650 | Dollar _
-> "Dollar"
6651 | Lplaceholder _
-> "Lplaceholder"
6652 | Dollardollar _
-> "Dollardollar"
6653 | Fun_id _
-> "Fun_id"
6654 | Method_id _
-> "Method_id"
6655 | Method_caller _
-> "Method_caller"
6656 | Smethod_id _
-> "Smethod_id"
6657 | Obj_get _
-> "Obj_get"
6658 | Array_get _
-> "Array_get"
6659 | Class_get _
-> "Class_get"
6660 | Class_const _
-> "Class_const"
6665 | Float _
-> "Float"
6667 | String _
-> "String"
6668 | String2 _
-> "String2"
6669 | Special_func _
-> "Special_func"
6670 | Yield_break
-> "Yield_break"
6671 | Yield _
-> "Yield"
6672 | Await _
-> "Await"
6673 | Suspend _
-> "Suspend"
6676 | Expr_list _
-> "Expr_list"
6679 | Binop _
-> "Binop"
6682 | NullCoalesce _
-> "NullCoalesce"
6683 | InstanceOf _
-> "InstanceOf"
6688 | Callconv _
-> "Callconv"
6689 | Assert _
-> "Assert"
6690 | Clone _
-> "Clone"
6691 | Typename _
-> "Typename"
6694 class type ['a
] visitor_type
=
6696 method on_block
: 'a
-> block
-> 'a
6697 method on_break
: 'a
-> Pos.t
-> 'a
6698 method on_case
: 'a
-> case
-> 'a
6699 method on_catch
: 'a
-> catch
-> 'a
6700 method on_continue
: 'a
-> Pos.t
-> 'a
6701 method on_do
: 'a
-> block
-> expr
-> 'a
6702 method on_expr
: 'a
-> expr
-> 'a
6703 method on_expr_
: 'a
-> expr_
-> 'a
6704 method on_for
: 'a
-> expr
-> expr
-> expr
-> block
-> 'a
6705 method on_foreach
: 'a
-> expr
-> as_expr
-> block
-> 'a
6706 method on_if
: 'a
-> expr
-> block
-> block
-> 'a
6707 method on_noop
: 'a
-> 'a
6708 method on_fallthrough
: 'a
-> 'a
6709 method on_return
: 'a
-> Pos.t
-> expr
option -> 'a
6710 method on_goto_label
: 'a
-> pstring
-> 'a
6711 method on_goto
: 'a
-> pstring
-> 'a
6712 method on_static_var
: 'a
-> expr list
-> 'a
6713 method on_global_var
: 'a
-> expr list
-> 'a
6714 method on_stmt
: 'a
-> stmt
-> 'a
6715 method on_switch
: 'a
-> expr
-> case list
-> 'a
6716 method on_throw
: 'a
-> is_terminal
-> expr
-> 'a
6717 method on_try
: 'a
-> block
-> catch list
-> block
-> 'a
6718 method on_while
: 'a
-> expr
-> block
-> 'a
6719 method on_using
: 'a
-> bool -> expr
-> block
-> 'a
6720 method on_as_expr
: 'a
-> as_expr
-> 'a
6721 method on_array
: 'a
-> afield list
-> 'a
6722 method on_shape
: 'a
-> expr
ShapeMap.t
-> 'a
6723 method on_valCollection
: 'a
-> vc_kind
-> expr list
-> 'a
6724 method on_keyValCollection
: 'a
-> kvc_kind
-> field list
-> 'a
6725 method on_this
: 'a
-> 'a
6726 method on_id
: 'a
-> sid
-> 'a
6727 method on_lvar
: 'a
-> id
-> 'a
6728 method on_dollar
: 'a
-> expr
-> 'a
6729 method on_dollardollar
: 'a
-> id
-> 'a
6730 method on_fun_id
: 'a
-> sid
-> 'a
6731 method on_method_id
: 'a
-> expr
-> pstring
-> 'a
6732 method on_smethod_id
: 'a
-> sid
-> pstring
-> 'a
6733 method on_method_caller
: 'a
-> sid
-> pstring
-> 'a
6734 method on_obj_get
: 'a
-> expr
-> expr
-> 'a
6735 method on_array_get
: 'a
-> expr
-> expr
option -> 'a
6736 method on_class_get
: 'a
-> class_id
-> pstring
-> 'a
6737 method on_class_const
: 'a
-> class_id
-> pstring
-> 'a
6739 'a
-> call_type
-> expr
-> expr list
-> expr list
-> 'a
6740 method on_true
: 'a
-> 'a
6741 method on_false
: 'a
-> 'a
6742 method on_int
: 'a
-> pstring
-> 'a
6743 method on_float
: 'a
-> pstring
-> 'a
6744 method on_null
: 'a
-> 'a
6745 method on_string
: 'a
-> pstring
-> 'a
6746 method on_string2
: 'a
-> expr list
-> 'a
6747 method on_special_func
: 'a
-> special_func
-> 'a
6748 method on_yield_break
: 'a
-> 'a
6749 method on_yield
: 'a
-> afield
-> 'a
6750 method on_await
: 'a
-> expr
-> 'a
6751 method on_suspend
: 'a
-> expr
-> 'a
6752 method on_list
: 'a
-> expr list
-> 'a
6753 method on_pair
: 'a
-> expr
-> expr
-> 'a
6754 method on_expr_list
: 'a
-> expr list
-> 'a
6755 method on_cast
: 'a
-> hint
-> expr
-> 'a
6756 method on_unop
: 'a
-> Ast.uop
-> expr
-> 'a
6757 method on_binop
: 'a
-> Ast.bop
-> expr
-> expr
-> 'a
6758 method on_pipe
: 'a
-> id
-> expr
-> expr
-> 'a
6759 method on_eif
: 'a
-> expr
-> expr
option -> expr
-> 'a
6760 method on_nullCoalesce
: 'a
-> expr
-> expr
-> 'a
6761 method on_typename
: 'a
-> sid
-> 'a
6762 method on_instanceOf
: 'a
-> expr
-> class_id
-> 'a
6763 method on_is
: 'a
-> expr
-> hint
-> 'a
6764 method on_class_id
: 'a
-> class_id
-> 'a
6765 method on_new
: 'a
-> class_id
-> expr list
-> expr list
-> 'a
6766 method on_efun
: 'a
-> fun_
-> id list
-> 'a
6768 'a
-> sid
-> xhp_attribute list
-> expr list
-> 'a
6769 method on_param_kind
: 'a
-> Ast.param_kind
-> 'a
6770 method on_callconv
: 'a
-> Ast.param_kind
-> expr
-> 'a
6771 method on_assert
: 'a
-> assert_expr
-> 'a
6772 method on_clone
: 'a
-> expr
-> 'a
6773 method on_field
: 'a
-> field
-> 'a
6774 method on_afield
: 'a
-> afield
-> 'a
6775 method on_func_named_body
: 'a
-> func_named_body
-> 'a
6776 method on_func_unnamed_body
: 'a
-> func_unnamed_body
-> 'a
6777 method on_func_body
: 'a
-> func_body
-> 'a
6778 method on_method_
: 'a
-> method_
-> 'a
6779 method on_fun_
: 'a
-> fun_
-> 'a
6780 method on_class_
: 'a
-> class_
-> 'a
6781 method on_gconst
: 'a
-> gconst
-> 'a
6782 method on_typedef
: 'a
-> typedef
-> 'a
6783 method on_hint
: 'a
-> hint
-> 'a
6784 method on_def
: 'a
-> def
-> 'a
6785 method on_program
: 'a
-> program
-> 'a
6787 class virtual ['a
] visitor
: ['a
] visitor_type
=
6789 method on_break acc _
= acc
6790 method on_continue acc _
= acc
6791 method on_noop acc
= acc
6792 method on_fallthrough acc
= acc
6793 method on_goto_label acc _
= acc
6794 method on_goto acc _
= acc
6795 method on_throw acc _ e
= let acc = this#on_expr
acc e
in acc
6796 method on_return
acc _ eopt
=
6797 match eopt
with | None
-> acc | Some e
-> this#on_expr
acc e
6798 method on_static_var
acc el
= List.fold_left this#on_expr
acc el
6799 method on_global_var
acc el
= List.fold_left this#on_expr
acc el
6800 method on_if
acc e b1 b2
=
6801 let acc = this#on_expr
acc e
in
6802 let acc = this#on_block
acc b1
in
6803 let acc = this#on_block
acc b2
in acc
6804 method on_do
acc b e
=
6805 let acc = this#on_block
acc b
in
6806 let acc = this#on_expr
acc e
in acc
6807 method on_while
acc e b
=
6808 let acc = this#on_expr
acc e
in
6809 let acc = this#on_block
acc b
in acc
6810 method on_using
acc _has_await e b
=
6811 let acc = this#on_expr
acc e
in
6812 let acc = this#on_block
acc b
in acc
6813 method on_for
acc e1 e2 e3 b
=
6814 let acc = this#on_expr
acc e1
in
6815 let acc = this#on_expr
acc e2
in
6816 let acc = this#on_expr
acc e3
in
6817 let acc = this#on_block
acc b
in acc
6818 method on_switch
acc e cl
=
6819 let acc = this#on_expr
acc e
in
6820 let acc = List.fold_left this#on_case
acc cl
in acc
6821 method on_foreach
acc e ae b
=
6822 let acc = this#on_expr
acc e
in
6823 let acc = this#on_as_expr
acc ae
in
6824 let acc = this#on_block
acc b
in acc
6825 method on_try
acc b cl fb
=
6826 let acc = this#on_block
acc b
in
6827 let acc = List.fold_left this#on_catch
acc cl
in
6828 let acc = this#on_block
acc fb
in acc
6829 method on_block
acc b
= List.fold_left this#on_stmt
acc b
6830 method on_case
acc =
6832 | Default b
-> let acc = this#on_block
acc b
in acc
6834 let acc = this#on_expr
acc e
in
6835 let acc = this#on_block
acc b
in acc
6836 method on_as_expr
acc =
6838 | As_v e
|Await_as_v
(_
,e
) ->
6839 let acc = this#on_expr
acc e
in acc
6840 | As_kv
(e1
,e2
)|Await_as_kv
(_
,e1
,e2
) ->
6841 let acc = this#on_expr
acc e1
in
6842 let acc = this#on_expr
acc e2
in acc
6843 method on_catch
acc (_
,_
,b
) = this#on_block
acc b
6844 method on_stmt
acc =
6846 | Expr e
-> this#on_expr
acc e
6847 | Break p
-> this#on_break
acc p
6848 | Continue p
-> this#on_continue
acc p
6849 | Throw
(is_term
,e
) -> this#on_throw
acc is_term e
6850 | Return
(p
,eopt
) -> this#on_return
acc p eopt
6851 | GotoLabel label
-> this#on_goto_label
acc label
6852 | Goto label
-> this#on_goto
acc label
6853 | If
(e
,b1
,b2
) -> this#on_if
acc e b1 b2
6854 | Do
(b
,e
) -> this#on_do
acc b e
6855 | While
(e
,b
) -> this#on_while
acc e b
6856 | Using
(has_await
,e
,b
) -> this#on_using
acc has_await e b
6857 | For
(e1
,e2
,e3
,b
) -> this#on_for
acc e1 e2 e3 b
6858 | Switch
(e
,cl
) -> this#on_switch
acc e cl
6859 | Foreach
(e
,ae
,b
) -> this#on_foreach
acc e ae b
6860 | Try
(b
,cl
,fb
) -> this#on_try
acc b cl fb
6861 | Noop
-> this#on_noop
acc
6862 | Fallthrough
-> this#on_fallthrough
acc
6863 | Static_var el
-> this#on_static_var
acc el
6864 | Global_var el
-> this#on_global_var
acc el
6865 method on_expr
acc (_
,e
) = this#on_expr_
acc e
6866 method on_expr_
acc e
=
6869 | Array afl
-> this#on_array
acc afl
6870 | Darray fieldl
-> List.fold_left this#on_field
acc fieldl
6871 | Varray el
-> List.fold_left this#on_expr
acc el
6872 | Shape sh
-> this#on_shape
acc sh
6873 | True
-> this#on_true
acc
6874 | False
-> this#on_false
acc
6875 | Int n
-> this#on_int
acc n
6876 | Float n
-> this#on_float
acc n
6877 | Null
-> this#on_null
acc
6878 | String s
-> this#on_string
acc s
6879 | This
-> this#on_this
acc
6880 | Id sid
-> this#on_id
acc sid
6881 | Lplaceholder _pos
-> acc
6882 | Dollardollar id
-> this#on_dollardollar
acc id
6883 | Lvar id
-> this#on_lvar
acc id
6884 | Dollar e
-> this#on_dollar
acc e
6885 | Fun_id sid
-> this#on_fun_id
acc sid
6886 | Method_id
(expr
,pstr
) -> this#on_method_id
acc expr pstr
6887 | Method_caller
(sid
,pstr
) ->
6888 this#on_method_caller
acc sid pstr
6889 | Smethod_id
(sid
,pstr
) -> this#on_smethod_id
acc sid pstr
6890 | Yield_break
-> this#on_yield_break
acc
6891 | Yield e
-> this#on_yield
acc e
6892 | Await e
-> this#on_await
acc e
6893 | Suspend e
-> this#on_suspend
acc e
6894 | List el
-> this#on_list
acc el
6895 | Assert ae
-> this#on_assert
acc ae
6896 | Clone e
-> this#on_clone
acc e
6897 | Expr_list el
-> this#on_expr_list
acc el
6898 | Special_func sf
-> this#on_special_func
acc sf
6899 | Obj_get
(e1
,e2
,_
) -> this#on_obj_get
acc e1 e2
6900 | Array_get
(e1
,e2
) -> this#on_array_get
acc e1 e2
6901 | Class_get
(cid
,id
) -> this#on_class_get
acc cid id
6902 | Class_const
(cid
,id
) -> this#on_class_const
acc cid id
6903 | Call
(ct
,e
,_
,el
,uel
) -> this#on_call
acc ct e el uel
6904 | String2 el
-> this#on_string2
acc el
6905 | Pair
(e1
,e2
) -> this#on_pair
acc e1 e2
6906 | Cast
(hint
,e
) -> this#on_cast
acc hint e
6907 | Unop
(uop
,e
) -> this#on_unop
acc uop e
6908 | Binop
(bop
,e1
,e2
) -> this#on_binop
acc bop e1 e2
6909 | Pipe
(id
,e1
,e2
) -> this#on_pipe
acc id e1 e2
6910 | Eif
(e1
,e2
,e3
) -> this#on_eif
acc e1 e2 e3
6911 | NullCoalesce
(e1
,e2
) -> this#on_nullCoalesce
acc e1 e2
6912 | InstanceOf
(e1
,e2
) -> this#on_instanceOf
acc e1 e2
6913 | Is
(e
,h
) -> this#on_is
acc e h
6914 | Typename n
-> this#on_typename
acc n
6915 | New
(cid
,el
,uel
) -> this#on_new
acc cid el uel
6916 | Efun
(f
,idl
) -> this#on_efun
acc f idl
6917 | Xml
(sid
,attrl
,el
) -> this#on_xml
acc sid attrl el
6918 | Callconv
(kind
,e
) -> this#on_callconv
acc kind e
6919 | ValCollection
(s
,el
) -> this#on_valCollection
acc s el
6920 | KeyValCollection
(s
,fl
) -> this#on_keyValCollection
acc s fl
6921 method on_array
acc afl
= List.fold_left this#on_afield
acc afl
6922 method on_shape
acc sm
=
6925 fun e
-> fun acc -> let acc = this#on_expr
acc e
in acc)
6927 method on_valCollection
acc _ el
=
6928 List.fold_left this#on_expr
acc el
6929 method on_keyValCollection
acc _ fieldl
=
6930 List.fold_left this#on_field
acc fieldl
6931 method on_this
acc = acc
6932 method on_id
acc _
= acc
6933 method on_lvar
acc _
= acc
6934 method on_dollardollar
acc id
= this#on_lvar
acc id
6935 method on_fun_id
acc _
= acc
6936 method on_method_id
acc _ _
= acc
6937 method on_smethod_id
acc _ _
= acc
6938 method on_method_caller
acc _ _
= acc
6939 method on_typename
acc _
= acc
6940 method on_obj_get
acc e1 e2
=
6941 let acc = this#on_expr
acc e1
in
6942 let acc = this#on_expr
acc e2
in acc
6943 method on_array_get
acc e e_opt
=
6944 let acc = this#on_expr
acc e
in
6948 | Some e
-> this#on_expr
acc e
in
6950 method on_class_get
acc cid _
= this#on_class_id
acc cid
6951 method on_class_const
acc cid _
= this#on_class_id
acc cid
6952 method on_call
acc _ e el uel
=
6953 let acc = this#on_expr
acc e
in
6954 let acc = List.fold_left this#on_expr
acc el
in
6955 let acc = List.fold_left this#on_expr
acc uel
in acc
6956 method on_true
acc = acc
6957 method on_false
acc = acc
6958 method on_int
acc _
= acc
6959 method on_float
acc _
= acc
6960 method on_null
acc = acc
6961 method on_string
acc _
= acc
6962 method on_string2
acc el
=
6963 let acc = List.fold_left this#on_expr
acc el
in acc
6964 method on_special_func
acc =
6966 | Gena e
|Gen_array_rec e
-> this#on_expr
acc e
6967 | Genva el
-> List.fold_left this#on_expr
acc el
6968 method on_yield_break
acc = acc
6969 method on_yield
acc e
= this#on_afield
acc e
6970 method on_await
acc e
= this#on_expr
acc e
6971 method on_dollar
acc e
= this#on_expr
acc e
6972 method on_suspend
acc e
= this#on_expr
acc e
6973 method on_list
acc el
= List.fold_left this#on_expr
acc el
6974 method on_pair
acc e1 e2
=
6975 let acc = this#on_expr
acc e1
in
6976 let acc = this#on_expr
acc e2
in acc
6977 method on_expr_list
acc el
=
6978 let acc = List.fold_left this#on_expr
acc el
in acc
6979 method on_cast
acc _ e
= this#on_expr
acc e
6980 method on_unop
acc _ e
= this#on_expr
acc e
6981 method on_binop
acc _ e1 e2
=
6982 let acc = this#on_expr
acc e1
in
6983 let acc = this#on_expr
acc e2
in acc
6984 method on_pipe
acc _id e1 e2
=
6985 let acc = this#on_expr
acc e1
in
6986 let acc = this#on_expr
acc e2
in acc
6987 method on_eif
acc e1 e2 e3
=
6988 let acc = this#on_expr
acc e1
in
6990 match e2
with | None
-> acc | Some e
-> this#on_expr
acc e
6992 let acc = this#on_expr
acc e3
in acc
6993 method on_nullCoalesce
acc e1 e2
=
6994 let acc = this#on_expr
acc e1
in
6995 let acc = this#on_expr
acc e2
in acc
6996 method on_instanceOf
acc e1 e2
=
6997 let acc = this#on_expr
acc e1
in
6998 let acc = this#on_class_id
acc e2
in acc
6999 method on_is
acc e _
= this#on_expr
acc e
7000 method on_class_id
acc =
7001 function | CIexpr e
-> this#on_expr
acc e
| _
-> acc
7002 method on_new
acc cid el uel
=
7003 let acc = this#on_class_id
acc cid
in
7004 let acc = List.fold_left this#on_expr
acc el
in
7005 let acc = List.fold_left this#on_expr
acc uel
in acc
7006 method on_efun
acc f _
=
7010 "lambdas expected to be named in the context of the surrounding function"
7011 | NamedBody
{ fnb_nast
= n
;_
} -> this#on_block
acc n
7012 method on_xml
acc _ attrl el
=
7018 | Xhp_simple
(_
,e
)|Xhp_spread e
-> this#on_expr
acc e
)
7021 let acc = List.fold_left this#on_expr
acc el
in acc
7022 method on_param_kind
acc _
= acc
7023 method on_callconv
acc kind e
=
7024 let acc = this#on_param_kind
acc kind
in
7025 let acc = this#on_expr
acc e
in acc
7026 method on_assert
acc =
7027 function | AE_assert e
-> this#on_expr
acc e
7028 method on_clone
acc e
= this#on_expr
acc e
7029 method on_field
acc (e1
,e2
) =
7030 let acc = this#on_expr
acc e1
in
7031 let acc = this#on_expr
acc e2
in acc
7032 method on_afield
acc =
7034 | AFvalue e
-> this#on_expr
acc e
7035 | AFkvalue
(e1
,e2
) ->
7036 let acc = this#on_expr
acc e1
in
7037 let acc = this#on_expr
acc e2
in acc
7038 method on_hint
acc _
= acc
7039 method on_fun_
acc f
=
7040 let acc = this#on_id
acc f
.f_name
in
7041 let acc = this#on_func_body
acc f
.f_body
in
7044 | Some h
-> this#on_hint
acc h
7047 method on_func_named_body
acc fnb
=
7048 this#on_block
acc fnb
.fnb_nast
7049 method on_func_unnamed_body
acc _
= acc
7050 method on_func_body
acc =
7052 | UnnamedBody unb
-> this#on_func_unnamed_body
acc unb
7053 | NamedBody nb
-> this#on_func_named_body
acc nb
7054 method on_method_
acc m
=
7055 let acc = this#on_id
acc m
.m_name
in
7056 let acc = this#on_func_body
acc m
.m_body
in acc
7057 method on_class_
acc c
=
7058 let acc = this#on_id
acc c
.c_name
in
7059 let acc = List.fold_left this#on_hint
acc c
.c_extends
in
7060 let acc = List.fold_left this#on_hint
acc c
.c_uses
in
7061 let acc = List.fold_left this#on_hint
acc c
.c_implements
in
7063 match c
.c_constructor
with
7064 | Some ctor
-> this#on_method_
acc ctor
7066 let acc = List.fold_left this#on_method_
acc c
.c_methods
in
7067 let acc = List.fold_left this#on_method_
acc c
.c_static_methods
7070 method on_gconst
acc g
=
7071 let acc = this#on_id
acc g
.cst_name
in
7073 match g
.cst_value
with
7074 | Some e
-> this#on_expr
acc e
7077 match g
.cst_type
with
7078 | Some h
-> this#on_hint
acc h
7081 method on_typedef
acc t
=
7082 let acc = this#on_id
acc t
.t_name
in
7083 let acc = this#on_hint
acc t
.t_kind
in
7085 match t
.t_constraint
with
7086 | Some c
-> this#on_hint
acc c
7091 | Fun f
-> this#on_fun_
acc f
7092 | Class c
-> this#on_class_
acc c
7093 | Typedef t
-> this#on_typedef
acc t
7094 | Constant g
-> this#on_gconst
acc g
7095 method on_program
acc p
=
7097 List.fold_left
(fun acc -> fun d
-> this#on_def
acc d
) acc
7102 module HasReturn
: sig val block
: block
-> bool end =
7106 inherit [bool] visitor
7107 method! on_expr
acc _
= acc
7108 method! on_return _ _ _
= true
7110 let block b
= visitor#on_block
false b
7112 class loop_visitor
=
7114 inherit [bool] visitor
7115 method! on_expr
acc _
= acc
7116 method! on_for
acc _ _ _ _
= acc
7117 method! on_foreach
acc _ _ _
= acc
7118 method! on_do
acc _ _
= acc
7119 method! on_while
acc _ _
= acc
7120 method! on_switch
acc _ _
= acc
7122 module HasContinue
: sig val block : block -> bool end =
7125 object inherit loop_visitor
method! on_continue _ _
= true end
7126 let block b
= visitor#on_block
false b
7128 module HasBreak
: sig val block : block -> bool end =
7131 object inherit loop_visitor
method! on_break _ _
= true end
7132 let block b
= visitor#on_block
false b