Fix date-sensitive copyright header in generate_ppx output files
[hiphop-php.git] / hphp / hack / src / ast / ast_defs.ml
blob34267428d80ae4764bc0ad84731d029331b176f7
1 (* @generated from ast_defs.src.ml by hphp/hack/tools/ppx/facebook:generate_ppx *)
2 (* Copyright (c) 2004-present, Facebook, Inc. All rights reserved. *)
3 (* SourceShasum<<d1c8b7bb10a148220cf9d9d912dba33a41672dfe>> *)
5 (* DO NOT EDIT MANUALLY. *)
6 [@@@ocaml.text
7 "\n * Copyright (c) 2017, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the \"hack\" directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n "]
8 include Ast_defs_visitors_ancestors
9 type cst_kind =
10 | Cst_define
11 | Cst_const
12 and pos = ((Pos.t)[@visitors.opaque ])
13 and id = (pos * string)
14 and pstring = (pos * string)
15 and shape_field_name =
16 | SFlit of pstring
17 | SFclass_const of id * pstring
18 and variance =
19 | Covariant
20 | Contravariant
21 | Invariant
22 and ns_kind =
23 | NSNamespace
24 | NSClass
25 | NSClassAndNamespace
26 | NSFun
27 | NSConst
28 and constraint_kind =
29 | Constraint_as
30 | Constraint_eq
31 | Constraint_super
32 and class_kind =
33 | Cabstract
34 | Cnormal
35 | Cinterface
36 | Ctrait
37 | Cenum
38 and trait_req_kind =
39 | MustExtend
40 | MustImplement
41 and kind =
42 | Final
43 | Static
44 | Abstract
45 | Private
46 | Public
47 | Protected
48 and param_kind =
49 | Pinout
50 and og_null_flavor =
51 | OG_nullthrows
52 | OG_nullsafe
53 and fun_kind =
54 | FSync
55 | FAsync
56 | FGenerator
57 | FAsyncGenerator
58 | FCoroutine
59 and bop =
60 | Plus
61 | Minus
62 | Star
63 | Slash
64 | Eqeq
65 | EQeqeq
66 | Starstar
67 | Diff
68 | Diff2
69 | AMpamp
70 | BArbar
71 | LogXor
72 | Lt
73 | Lte
74 | Gt
75 | Gte
76 | Dot
77 | Amp
78 | Bar
79 | Ltlt
80 | Gtgt
81 | Percent
82 | Xor
83 | Cmp
84 | Eq of bop option
85 and uop =
86 | Utild
87 | Unot
88 | Uplus
89 | Uminus
90 | Uincr
91 | Udecr
92 | Upincr
93 | Updecr
94 | Uref
95 | Usilence [@@deriving
96 (show,
97 (visitors
99 name = "iter_defs";
100 variety = "iter";
101 nude = true;
102 visit_prefix = "on_";
103 ancestors = ["iter_defs_base"]
105 (visitors
107 name = "endo_defs";
108 variety = "endo";
109 nude = true;
110 visit_prefix = "on_";
111 ancestors = ["endo_defs_base"]
113 (visitors
115 name = "reduce_defs";
116 variety = "reduce";
117 nude = true;
118 visit_prefix = "on_";
119 ancestors = ["reduce_defs_base"]
121 (visitors
123 name = "map_defs";
124 variety = "map";
125 nude = true;
126 visit_prefix = "on_";
127 ancestors = ["map_defs_base"]
128 }))]
129 let rec (pp_cst_kind :
130 Format.formatter -> cst_kind -> Ppx_deriving_runtime.unit)
132 ((let open! Ppx_deriving_runtime in
133 fun fmt ->
134 function
135 | Cst_define -> Format.pp_print_string fmt "Cst_define"
136 | Cst_const -> Format.pp_print_string fmt "Cst_const")
137 [@ocaml.warning "-A"])
139 and show_cst_kind : cst_kind -> Ppx_deriving_runtime.string =
140 fun x -> Format.asprintf "%a" pp_cst_kind x
142 and pp_pos : Format.formatter -> pos -> Ppx_deriving_runtime.unit =
143 let __0 () = Pos.pp in
144 ((let open! Ppx_deriving_runtime in fun fmt -> (__0 ()) fmt)
145 [@ocaml.warning "-A"])
147 and show_pos : pos -> Ppx_deriving_runtime.string =
148 fun x -> Format.asprintf "%a" pp_pos x
150 and pp_id : Format.formatter -> id -> Ppx_deriving_runtime.unit =
151 let __0 () = pp_pos in
152 ((let open! Ppx_deriving_runtime in
153 fun fmt ->
154 fun (a0,a1) ->
155 Format.fprintf fmt "(@[";
156 (((__0 ()) fmt) a0;
157 Format.fprintf fmt ",@ ";
158 (Format.fprintf fmt "%S") a1);
159 Format.fprintf fmt "@])")
160 [@ocaml.warning "-A"])
162 and show_id : id -> Ppx_deriving_runtime.string =
163 fun x -> Format.asprintf "%a" pp_id x
165 and pp_pstring : Format.formatter -> pstring -> Ppx_deriving_runtime.unit =
166 let __0 () = pp_pos in
167 ((let open! Ppx_deriving_runtime in
168 fun fmt ->
169 fun (a0,a1) ->
170 Format.fprintf fmt "(@[";
171 (((__0 ()) fmt) a0;
172 Format.fprintf fmt ",@ ";
173 (Format.fprintf fmt "%S") a1);
174 Format.fprintf fmt "@])")
175 [@ocaml.warning "-A"])
177 and show_pstring : pstring -> Ppx_deriving_runtime.string =
178 fun x -> Format.asprintf "%a" pp_pstring x
180 and pp_shape_field_name :
181 Format.formatter -> shape_field_name -> Ppx_deriving_runtime.unit =
182 let __2 () = pp_pstring
184 and __1 () = pp_id
186 and __0 () = pp_pstring
188 ((let open! Ppx_deriving_runtime in
189 fun fmt ->
190 function
191 | SFlit a0 ->
192 (Format.fprintf fmt "(@[<2>SFlit@ ";
193 ((__0 ()) fmt) a0;
194 Format.fprintf fmt "@])")
195 | SFclass_const (a0,a1) ->
196 (Format.fprintf fmt "(@[<2>SFclass_const (@,";
197 (((__1 ()) fmt) a0; Format.fprintf fmt ",@ "; ((__2 ()) fmt) a1);
198 Format.fprintf fmt "@,))@]"))
199 [@ocaml.warning "-A"])
201 and show_shape_field_name : shape_field_name -> Ppx_deriving_runtime.string =
202 fun x -> Format.asprintf "%a" pp_shape_field_name x
204 and (pp_variance : Format.formatter -> variance -> Ppx_deriving_runtime.unit)
206 ((let open! Ppx_deriving_runtime in
207 fun fmt ->
208 function
209 | Covariant -> Format.pp_print_string fmt "Covariant"
210 | Contravariant -> Format.pp_print_string fmt "Contravariant"
211 | Invariant -> Format.pp_print_string fmt "Invariant")
212 [@ocaml.warning "-A"])
214 and show_variance : variance -> Ppx_deriving_runtime.string =
215 fun x -> Format.asprintf "%a" pp_variance x
217 and (pp_ns_kind : Format.formatter -> ns_kind -> Ppx_deriving_runtime.unit) =
218 ((let open! Ppx_deriving_runtime in
219 fun fmt ->
220 function
221 | NSNamespace -> Format.pp_print_string fmt "NSNamespace"
222 | NSClass -> Format.pp_print_string fmt "NSClass"
223 | NSClassAndNamespace ->
224 Format.pp_print_string fmt "NSClassAndNamespace"
225 | NSFun -> Format.pp_print_string fmt "NSFun"
226 | NSConst -> Format.pp_print_string fmt "NSConst")
227 [@ocaml.warning "-A"])
229 and show_ns_kind : ns_kind -> Ppx_deriving_runtime.string =
230 fun x -> Format.asprintf "%a" pp_ns_kind x
232 and (pp_constraint_kind :
233 Format.formatter -> constraint_kind -> Ppx_deriving_runtime.unit)
235 ((let open! Ppx_deriving_runtime in
236 fun fmt ->
237 function
238 | Constraint_as -> Format.pp_print_string fmt "Constraint_as"
239 | Constraint_eq -> Format.pp_print_string fmt "Constraint_eq"
240 | Constraint_super -> Format.pp_print_string fmt "Constraint_super")
241 [@ocaml.warning "-A"])
243 and show_constraint_kind : constraint_kind -> Ppx_deriving_runtime.string =
244 fun x -> Format.asprintf "%a" pp_constraint_kind x
246 and (pp_class_kind :
247 Format.formatter -> class_kind -> Ppx_deriving_runtime.unit)
249 ((let open! Ppx_deriving_runtime in
250 fun fmt ->
251 function
252 | Cabstract -> Format.pp_print_string fmt "Cabstract"
253 | Cnormal -> Format.pp_print_string fmt "Cnormal"
254 | Cinterface -> Format.pp_print_string fmt "Cinterface"
255 | Ctrait -> Format.pp_print_string fmt "Ctrait"
256 | Cenum -> Format.pp_print_string fmt "Cenum")
257 [@ocaml.warning "-A"])
259 and show_class_kind : class_kind -> Ppx_deriving_runtime.string =
260 fun x -> Format.asprintf "%a" pp_class_kind x
262 and (pp_trait_req_kind :
263 Format.formatter -> trait_req_kind -> Ppx_deriving_runtime.unit)
265 ((let open! Ppx_deriving_runtime in
266 fun fmt ->
267 function
268 | MustExtend -> Format.pp_print_string fmt "MustExtend"
269 | MustImplement -> Format.pp_print_string fmt "MustImplement")
270 [@ocaml.warning "-A"])
272 and show_trait_req_kind : trait_req_kind -> Ppx_deriving_runtime.string =
273 fun x -> Format.asprintf "%a" pp_trait_req_kind x
275 and (pp_kind : Format.formatter -> kind -> Ppx_deriving_runtime.unit) =
276 ((let open! Ppx_deriving_runtime in
277 fun fmt ->
278 function
279 | Final -> Format.pp_print_string fmt "Final"
280 | Static -> Format.pp_print_string fmt "Static"
281 | Abstract -> Format.pp_print_string fmt "Abstract"
282 | Private -> Format.pp_print_string fmt "Private"
283 | Public -> Format.pp_print_string fmt "Public"
284 | Protected -> Format.pp_print_string fmt "Protected")
285 [@ocaml.warning "-A"])
287 and show_kind : kind -> Ppx_deriving_runtime.string =
288 fun x -> Format.asprintf "%a" pp_kind x
290 and (pp_param_kind :
291 Format.formatter -> param_kind -> Ppx_deriving_runtime.unit)
293 ((let open! Ppx_deriving_runtime in
294 fun fmt -> function | Pinout -> Format.pp_print_string fmt "Pinout")
295 [@ocaml.warning "-A"])
297 and show_param_kind : param_kind -> Ppx_deriving_runtime.string =
298 fun x -> Format.asprintf "%a" pp_param_kind x
300 and (pp_og_null_flavor :
301 Format.formatter -> og_null_flavor -> Ppx_deriving_runtime.unit)
303 ((let open! Ppx_deriving_runtime in
304 fun fmt ->
305 function
306 | OG_nullthrows -> Format.pp_print_string fmt "OG_nullthrows"
307 | OG_nullsafe -> Format.pp_print_string fmt "OG_nullsafe")
308 [@ocaml.warning "-A"])
310 and show_og_null_flavor : og_null_flavor -> Ppx_deriving_runtime.string =
311 fun x -> Format.asprintf "%a" pp_og_null_flavor x
313 and (pp_fun_kind : Format.formatter -> fun_kind -> Ppx_deriving_runtime.unit)
315 ((let open! Ppx_deriving_runtime in
316 fun fmt ->
317 function
318 | FSync -> Format.pp_print_string fmt "FSync"
319 | FAsync -> Format.pp_print_string fmt "FAsync"
320 | FGenerator -> Format.pp_print_string fmt "FGenerator"
321 | FAsyncGenerator -> Format.pp_print_string fmt "FAsyncGenerator"
322 | FCoroutine -> Format.pp_print_string fmt "FCoroutine")
323 [@ocaml.warning "-A"])
325 and show_fun_kind : fun_kind -> Ppx_deriving_runtime.string =
326 fun x -> Format.asprintf "%a" pp_fun_kind x
328 and pp_bop : Format.formatter -> bop -> Ppx_deriving_runtime.unit =
329 let __0 () = pp_bop in
330 ((let open! Ppx_deriving_runtime in
331 fun fmt ->
332 function
333 | Plus -> Format.pp_print_string fmt "Plus"
334 | Minus -> Format.pp_print_string fmt "Minus"
335 | Star -> Format.pp_print_string fmt "Star"
336 | Slash -> Format.pp_print_string fmt "Slash"
337 | Eqeq -> Format.pp_print_string fmt "Eqeq"
338 | EQeqeq -> Format.pp_print_string fmt "EQeqeq"
339 | Starstar -> Format.pp_print_string fmt "Starstar"
340 | Diff -> Format.pp_print_string fmt "Diff"
341 | Diff2 -> Format.pp_print_string fmt "Diff2"
342 | AMpamp -> Format.pp_print_string fmt "AMpamp"
343 | BArbar -> Format.pp_print_string fmt "BArbar"
344 | LogXor -> Format.pp_print_string fmt "LogXor"
345 | Lt -> Format.pp_print_string fmt "Lt"
346 | Lte -> Format.pp_print_string fmt "Lte"
347 | Gt -> Format.pp_print_string fmt "Gt"
348 | Gte -> Format.pp_print_string fmt "Gte"
349 | Dot -> Format.pp_print_string fmt "Dot"
350 | Amp -> Format.pp_print_string fmt "Amp"
351 | Bar -> Format.pp_print_string fmt "Bar"
352 | Ltlt -> Format.pp_print_string fmt "Ltlt"
353 | Gtgt -> Format.pp_print_string fmt "Gtgt"
354 | Percent -> Format.pp_print_string fmt "Percent"
355 | Xor -> Format.pp_print_string fmt "Xor"
356 | Cmp -> Format.pp_print_string fmt "Cmp"
357 | Eq a0 ->
358 (Format.fprintf fmt "(@[<2>Eq@ ";
359 ((function
360 | None -> Format.pp_print_string fmt "None"
361 | Some x ->
362 (Format.pp_print_string fmt "(Some ";
363 ((__0 ()) fmt) x;
364 Format.pp_print_string fmt ")"))) a0;
365 Format.fprintf fmt "@])"))
366 [@ocaml.warning "-A"])
368 and show_bop : bop -> Ppx_deriving_runtime.string =
369 fun x -> Format.asprintf "%a" pp_bop x
371 and (pp_uop : Format.formatter -> uop -> Ppx_deriving_runtime.unit) =
372 ((let open! Ppx_deriving_runtime in
373 fun fmt ->
374 function
375 | Utild -> Format.pp_print_string fmt "Utild"
376 | Unot -> Format.pp_print_string fmt "Unot"
377 | Uplus -> Format.pp_print_string fmt "Uplus"
378 | Uminus -> Format.pp_print_string fmt "Uminus"
379 | Uincr -> Format.pp_print_string fmt "Uincr"
380 | Udecr -> Format.pp_print_string fmt "Udecr"
381 | Upincr -> Format.pp_print_string fmt "Upincr"
382 | Updecr -> Format.pp_print_string fmt "Updecr"
383 | Uref -> Format.pp_print_string fmt "Uref"
384 | Usilence -> Format.pp_print_string fmt "Usilence")
385 [@ocaml.warning "-A"])
387 and show_uop : uop -> Ppx_deriving_runtime.string =
388 fun x -> Format.asprintf "%a" pp_uop x
390 include
391 struct
392 [@@@ocaml.warning "-4-26-27"]
393 [@@@VISITORS.BEGIN ]
394 class virtual ['self] iter_defs =
395 object (self : 'self)
396 inherit [_] iter_defs_base
397 method on_Cst_define env = ()
398 method on_Cst_const env = ()
399 method on_cst_kind env _visitors_this =
400 match _visitors_this with
401 | Cst_define -> self#on_Cst_define env
402 | Cst_const -> self#on_Cst_const env
403 method on_pos env _visitors_this = ()
404 method on_id env (_visitors_c0,_visitors_c1) =
405 let _visitors_r0 = self#on_pos env _visitors_c0 in
406 let _visitors_r1 = self#on_string env _visitors_c1 in ()
407 method on_pstring env (_visitors_c0,_visitors_c1) =
408 let _visitors_r0 = self#on_pos env _visitors_c0 in
409 let _visitors_r1 = self#on_string env _visitors_c1 in ()
410 method on_SFlit env _visitors_c0 =
411 let _visitors_r0 = self#on_pstring env _visitors_c0 in ()
412 method on_SFclass_const env _visitors_c0 _visitors_c1 =
413 let _visitors_r0 = self#on_id env _visitors_c0 in
414 let _visitors_r1 = self#on_pstring env _visitors_c1 in ()
415 method on_shape_field_name env _visitors_this =
416 match _visitors_this with
417 | SFlit _visitors_c0 -> self#on_SFlit env _visitors_c0
418 | SFclass_const (_visitors_c0,_visitors_c1) ->
419 self#on_SFclass_const env _visitors_c0 _visitors_c1
420 method on_Covariant env = ()
421 method on_Contravariant env = ()
422 method on_Invariant env = ()
423 method on_variance env _visitors_this =
424 match _visitors_this with
425 | Covariant -> self#on_Covariant env
426 | Contravariant -> self#on_Contravariant env
427 | Invariant -> self#on_Invariant env
428 method on_NSNamespace env = ()
429 method on_NSClass env = ()
430 method on_NSClassAndNamespace env = ()
431 method on_NSFun env = ()
432 method on_NSConst env = ()
433 method on_ns_kind env _visitors_this =
434 match _visitors_this with
435 | NSNamespace -> self#on_NSNamespace env
436 | NSClass -> self#on_NSClass env
437 | NSClassAndNamespace -> self#on_NSClassAndNamespace env
438 | NSFun -> self#on_NSFun env
439 | NSConst -> self#on_NSConst env
440 method on_Constraint_as env = ()
441 method on_Constraint_eq env = ()
442 method on_Constraint_super env = ()
443 method on_constraint_kind env _visitors_this =
444 match _visitors_this with
445 | Constraint_as -> self#on_Constraint_as env
446 | Constraint_eq -> self#on_Constraint_eq env
447 | Constraint_super -> self#on_Constraint_super env
448 method on_Cabstract env = ()
449 method on_Cnormal env = ()
450 method on_Cinterface env = ()
451 method on_Ctrait env = ()
452 method on_Cenum env = ()
453 method on_class_kind env _visitors_this =
454 match _visitors_this with
455 | Cabstract -> self#on_Cabstract env
456 | Cnormal -> self#on_Cnormal env
457 | Cinterface -> self#on_Cinterface env
458 | Ctrait -> self#on_Ctrait env
459 | Cenum -> self#on_Cenum env
460 method on_MustExtend env = ()
461 method on_MustImplement env = ()
462 method on_trait_req_kind env _visitors_this =
463 match _visitors_this with
464 | MustExtend -> self#on_MustExtend env
465 | MustImplement -> self#on_MustImplement env
466 method on_Final env = ()
467 method on_Static env = ()
468 method on_Abstract env = ()
469 method on_Private env = ()
470 method on_Public env = ()
471 method on_Protected env = ()
472 method on_kind env _visitors_this =
473 match _visitors_this with
474 | Final -> self#on_Final env
475 | Static -> self#on_Static env
476 | Abstract -> self#on_Abstract env
477 | Private -> self#on_Private env
478 | Public -> self#on_Public env
479 | Protected -> self#on_Protected env
480 method on_Pinout env = ()
481 method on_param_kind env _visitors_this =
482 match _visitors_this with | Pinout -> self#on_Pinout env
483 method on_OG_nullthrows env = ()
484 method on_OG_nullsafe env = ()
485 method on_og_null_flavor env _visitors_this =
486 match _visitors_this with
487 | OG_nullthrows -> self#on_OG_nullthrows env
488 | OG_nullsafe -> self#on_OG_nullsafe env
489 method on_FSync env = ()
490 method on_FAsync env = ()
491 method on_FGenerator env = ()
492 method on_FAsyncGenerator env = ()
493 method on_FCoroutine env = ()
494 method on_fun_kind env _visitors_this =
495 match _visitors_this with
496 | FSync -> self#on_FSync env
497 | FAsync -> self#on_FAsync env
498 | FGenerator -> self#on_FGenerator env
499 | FAsyncGenerator -> self#on_FAsyncGenerator env
500 | FCoroutine -> self#on_FCoroutine env
501 method on_Plus env = ()
502 method on_Minus env = ()
503 method on_Star env = ()
504 method on_Slash env = ()
505 method on_Eqeq env = ()
506 method on_EQeqeq env = ()
507 method on_Starstar env = ()
508 method on_Diff env = ()
509 method on_Diff2 env = ()
510 method on_AMpamp env = ()
511 method on_BArbar env = ()
512 method on_LogXor env = ()
513 method on_Lt env = ()
514 method on_Lte env = ()
515 method on_Gt env = ()
516 method on_Gte env = ()
517 method on_Dot env = ()
518 method on_Amp env = ()
519 method on_Bar env = ()
520 method on_Ltlt env = ()
521 method on_Gtgt env = ()
522 method on_Percent env = ()
523 method on_Xor env = ()
524 method on_Cmp env = ()
525 method on_Eq env _visitors_c0 =
526 let _visitors_r0 = self#on_option self#on_bop env _visitors_c0 in
528 method on_bop env _visitors_this =
529 match _visitors_this with
530 | Plus -> self#on_Plus env
531 | Minus -> self#on_Minus env
532 | Star -> self#on_Star env
533 | Slash -> self#on_Slash env
534 | Eqeq -> self#on_Eqeq env
535 | EQeqeq -> self#on_EQeqeq env
536 | Starstar -> self#on_Starstar env
537 | Diff -> self#on_Diff env
538 | Diff2 -> self#on_Diff2 env
539 | AMpamp -> self#on_AMpamp env
540 | BArbar -> self#on_BArbar env
541 | LogXor -> self#on_LogXor env
542 | Lt -> self#on_Lt env
543 | Lte -> self#on_Lte env
544 | Gt -> self#on_Gt env
545 | Gte -> self#on_Gte env
546 | Dot -> self#on_Dot env
547 | Amp -> self#on_Amp env
548 | Bar -> self#on_Bar env
549 | Ltlt -> self#on_Ltlt env
550 | Gtgt -> self#on_Gtgt env
551 | Percent -> self#on_Percent env
552 | Xor -> self#on_Xor env
553 | Cmp -> self#on_Cmp env
554 | Eq _visitors_c0 -> self#on_Eq env _visitors_c0
555 method on_Utild env = ()
556 method on_Unot env = ()
557 method on_Uplus env = ()
558 method on_Uminus env = ()
559 method on_Uincr env = ()
560 method on_Udecr env = ()
561 method on_Upincr env = ()
562 method on_Updecr env = ()
563 method on_Uref env = ()
564 method on_Usilence env = ()
565 method on_uop env _visitors_this =
566 match _visitors_this with
567 | Utild -> self#on_Utild env
568 | Unot -> self#on_Unot env
569 | Uplus -> self#on_Uplus env
570 | Uminus -> self#on_Uminus env
571 | Uincr -> self#on_Uincr env
572 | Udecr -> self#on_Udecr env
573 | Upincr -> self#on_Upincr env
574 | Updecr -> self#on_Updecr env
575 | Uref -> self#on_Uref env
576 | Usilence -> self#on_Usilence env
578 [@@@VISITORS.END ]
580 include
581 struct
582 [@@@ocaml.warning "-4-26-27"]
583 [@@@VISITORS.BEGIN ]
584 class virtual ['self] endo_defs =
585 object (self : 'self)
586 inherit [_] endo_defs_base
587 method on_Cst_define env _visitors_this =
588 if true then _visitors_this else Cst_define
589 method on_Cst_const env _visitors_this =
590 if true then _visitors_this else Cst_const
591 method on_cst_kind env _visitors_this =
592 match _visitors_this with
593 | Cst_define as _visitors_this ->
594 self#on_Cst_define env _visitors_this
595 | Cst_const as _visitors_this ->
596 self#on_Cst_const env _visitors_this
597 method on_pos env _visitors_this = _visitors_this
598 method on_id env ((_visitors_c0,_visitors_c1) as _visitors_this) =
599 let _visitors_r0 = self#on_pos env _visitors_c0 in
600 let _visitors_r1 = self#on_string env _visitors_c1 in
602 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
603 (Pervasives.(==) _visitors_c1 _visitors_r1)
604 then _visitors_this
605 else (_visitors_r0, _visitors_r1)
606 method on_pstring env ((_visitors_c0,_visitors_c1) as _visitors_this)
608 let _visitors_r0 = self#on_pos env _visitors_c0 in
609 let _visitors_r1 = self#on_string env _visitors_c1 in
611 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
612 (Pervasives.(==) _visitors_c1 _visitors_r1)
613 then _visitors_this
614 else (_visitors_r0, _visitors_r1)
615 method on_SFlit env _visitors_this _visitors_c0 =
616 let _visitors_r0 = self#on_pstring env _visitors_c0 in
617 if Pervasives.(==) _visitors_c0 _visitors_r0
618 then _visitors_this
619 else SFlit _visitors_r0
620 method on_SFclass_const env _visitors_this _visitors_c0 _visitors_c1
622 let _visitors_r0 = self#on_id env _visitors_c0 in
623 let _visitors_r1 = self#on_pstring env _visitors_c1 in
625 Pervasives.(&&) (Pervasives.(==) _visitors_c0 _visitors_r0)
626 (Pervasives.(==) _visitors_c1 _visitors_r1)
627 then _visitors_this
628 else SFclass_const (_visitors_r0, _visitors_r1)
629 method on_shape_field_name env _visitors_this =
630 match _visitors_this with
631 | SFlit _visitors_c0 as _visitors_this ->
632 self#on_SFlit env _visitors_this _visitors_c0
633 | SFclass_const (_visitors_c0,_visitors_c1) as _visitors_this ->
634 self#on_SFclass_const env _visitors_this _visitors_c0
635 _visitors_c1
636 method on_Covariant env _visitors_this =
637 if true then _visitors_this else Covariant
638 method on_Contravariant env _visitors_this =
639 if true then _visitors_this else Contravariant
640 method on_Invariant env _visitors_this =
641 if true then _visitors_this else Invariant
642 method on_variance env _visitors_this =
643 match _visitors_this with
644 | Covariant as _visitors_this ->
645 self#on_Covariant env _visitors_this
646 | Contravariant as _visitors_this ->
647 self#on_Contravariant env _visitors_this
648 | Invariant as _visitors_this ->
649 self#on_Invariant env _visitors_this
650 method on_NSNamespace env _visitors_this =
651 if true then _visitors_this else NSNamespace
652 method on_NSClass env _visitors_this =
653 if true then _visitors_this else NSClass
654 method on_NSClassAndNamespace env _visitors_this =
655 if true then _visitors_this else NSClassAndNamespace
656 method on_NSFun env _visitors_this =
657 if true then _visitors_this else NSFun
658 method on_NSConst env _visitors_this =
659 if true then _visitors_this else NSConst
660 method on_ns_kind env _visitors_this =
661 match _visitors_this with
662 | NSNamespace as _visitors_this ->
663 self#on_NSNamespace env _visitors_this
664 | NSClass as _visitors_this -> self#on_NSClass env _visitors_this
665 | NSClassAndNamespace as _visitors_this ->
666 self#on_NSClassAndNamespace env _visitors_this
667 | NSFun as _visitors_this -> self#on_NSFun env _visitors_this
668 | NSConst as _visitors_this -> self#on_NSConst env _visitors_this
669 method on_Constraint_as env _visitors_this =
670 if true then _visitors_this else Constraint_as
671 method on_Constraint_eq env _visitors_this =
672 if true then _visitors_this else Constraint_eq
673 method on_Constraint_super env _visitors_this =
674 if true then _visitors_this else Constraint_super
675 method on_constraint_kind env _visitors_this =
676 match _visitors_this with
677 | Constraint_as as _visitors_this ->
678 self#on_Constraint_as env _visitors_this
679 | Constraint_eq as _visitors_this ->
680 self#on_Constraint_eq env _visitors_this
681 | Constraint_super as _visitors_this ->
682 self#on_Constraint_super env _visitors_this
683 method on_Cabstract env _visitors_this =
684 if true then _visitors_this else Cabstract
685 method on_Cnormal env _visitors_this =
686 if true then _visitors_this else Cnormal
687 method on_Cinterface env _visitors_this =
688 if true then _visitors_this else Cinterface
689 method on_Ctrait env _visitors_this =
690 if true then _visitors_this else Ctrait
691 method on_Cenum env _visitors_this =
692 if true then _visitors_this else Cenum
693 method on_class_kind env _visitors_this =
694 match _visitors_this with
695 | Cabstract as _visitors_this ->
696 self#on_Cabstract env _visitors_this
697 | Cnormal as _visitors_this -> self#on_Cnormal env _visitors_this
698 | Cinterface as _visitors_this ->
699 self#on_Cinterface env _visitors_this
700 | Ctrait as _visitors_this -> self#on_Ctrait env _visitors_this
701 | Cenum as _visitors_this -> self#on_Cenum env _visitors_this
702 method on_MustExtend env _visitors_this =
703 if true then _visitors_this else MustExtend
704 method on_MustImplement env _visitors_this =
705 if true then _visitors_this else MustImplement
706 method on_trait_req_kind env _visitors_this =
707 match _visitors_this with
708 | MustExtend as _visitors_this ->
709 self#on_MustExtend env _visitors_this
710 | MustImplement as _visitors_this ->
711 self#on_MustImplement env _visitors_this
712 method on_Final env _visitors_this =
713 if true then _visitors_this else Final
714 method on_Static env _visitors_this =
715 if true then _visitors_this else Static
716 method on_Abstract env _visitors_this =
717 if true then _visitors_this else Abstract
718 method on_Private env _visitors_this =
719 if true then _visitors_this else Private
720 method on_Public env _visitors_this =
721 if true then _visitors_this else Public
722 method on_Protected env _visitors_this =
723 if true then _visitors_this else Protected
724 method on_kind env _visitors_this =
725 match _visitors_this with
726 | Final as _visitors_this -> self#on_Final env _visitors_this
727 | Static as _visitors_this -> self#on_Static env _visitors_this
728 | Abstract as _visitors_this ->
729 self#on_Abstract env _visitors_this
730 | Private as _visitors_this -> self#on_Private env _visitors_this
731 | Public as _visitors_this -> self#on_Public env _visitors_this
732 | Protected as _visitors_this ->
733 self#on_Protected env _visitors_this
734 method on_Pinout env _visitors_this =
735 if true then _visitors_this else Pinout
736 method on_param_kind env _visitors_this =
737 match _visitors_this with
738 | Pinout as _visitors_this -> self#on_Pinout env _visitors_this
739 method on_OG_nullthrows env _visitors_this =
740 if true then _visitors_this else OG_nullthrows
741 method on_OG_nullsafe env _visitors_this =
742 if true then _visitors_this else OG_nullsafe
743 method on_og_null_flavor env _visitors_this =
744 match _visitors_this with
745 | OG_nullthrows as _visitors_this ->
746 self#on_OG_nullthrows env _visitors_this
747 | OG_nullsafe as _visitors_this ->
748 self#on_OG_nullsafe env _visitors_this
749 method on_FSync env _visitors_this =
750 if true then _visitors_this else FSync
751 method on_FAsync env _visitors_this =
752 if true then _visitors_this else FAsync
753 method on_FGenerator env _visitors_this =
754 if true then _visitors_this else FGenerator
755 method on_FAsyncGenerator env _visitors_this =
756 if true then _visitors_this else FAsyncGenerator
757 method on_FCoroutine env _visitors_this =
758 if true then _visitors_this else FCoroutine
759 method on_fun_kind env _visitors_this =
760 match _visitors_this with
761 | FSync as _visitors_this -> self#on_FSync env _visitors_this
762 | FAsync as _visitors_this -> self#on_FAsync env _visitors_this
763 | FGenerator as _visitors_this ->
764 self#on_FGenerator env _visitors_this
765 | FAsyncGenerator as _visitors_this ->
766 self#on_FAsyncGenerator env _visitors_this
767 | FCoroutine as _visitors_this ->
768 self#on_FCoroutine env _visitors_this
769 method on_Plus env _visitors_this =
770 if true then _visitors_this else Plus
771 method on_Minus env _visitors_this =
772 if true then _visitors_this else Minus
773 method on_Star env _visitors_this =
774 if true then _visitors_this else Star
775 method on_Slash env _visitors_this =
776 if true then _visitors_this else Slash
777 method on_Eqeq env _visitors_this =
778 if true then _visitors_this else Eqeq
779 method on_EQeqeq env _visitors_this =
780 if true then _visitors_this else EQeqeq
781 method on_Starstar env _visitors_this =
782 if true then _visitors_this else Starstar
783 method on_Diff env _visitors_this =
784 if true then _visitors_this else Diff
785 method on_Diff2 env _visitors_this =
786 if true then _visitors_this else Diff2
787 method on_AMpamp env _visitors_this =
788 if true then _visitors_this else AMpamp
789 method on_BArbar env _visitors_this =
790 if true then _visitors_this else BArbar
791 method on_LogXor env _visitors_this =
792 if true then _visitors_this else LogXor
793 method on_Lt env _visitors_this = if true then _visitors_this else Lt
794 method on_Lte env _visitors_this =
795 if true then _visitors_this else Lte
796 method on_Gt env _visitors_this = if true then _visitors_this else Gt
797 method on_Gte env _visitors_this =
798 if true then _visitors_this else Gte
799 method on_Dot env _visitors_this =
800 if true then _visitors_this else Dot
801 method on_Amp env _visitors_this =
802 if true then _visitors_this else Amp
803 method on_Bar env _visitors_this =
804 if true then _visitors_this else Bar
805 method on_Ltlt env _visitors_this =
806 if true then _visitors_this else Ltlt
807 method on_Gtgt env _visitors_this =
808 if true then _visitors_this else Gtgt
809 method on_Percent env _visitors_this =
810 if true then _visitors_this else Percent
811 method on_Xor env _visitors_this =
812 if true then _visitors_this else Xor
813 method on_Cmp env _visitors_this =
814 if true then _visitors_this else Cmp
815 method on_Eq env _visitors_this _visitors_c0 =
816 let _visitors_r0 = self#on_option self#on_bop env _visitors_c0 in
817 if Pervasives.(==) _visitors_c0 _visitors_r0
818 then _visitors_this
819 else Eq _visitors_r0
820 method on_bop env _visitors_this =
821 match _visitors_this with
822 | Plus as _visitors_this -> self#on_Plus env _visitors_this
823 | Minus as _visitors_this -> self#on_Minus env _visitors_this
824 | Star as _visitors_this -> self#on_Star env _visitors_this
825 | Slash as _visitors_this -> self#on_Slash env _visitors_this
826 | Eqeq as _visitors_this -> self#on_Eqeq env _visitors_this
827 | EQeqeq as _visitors_this -> self#on_EQeqeq env _visitors_this
828 | Starstar as _visitors_this ->
829 self#on_Starstar env _visitors_this
830 | Diff as _visitors_this -> self#on_Diff env _visitors_this
831 | Diff2 as _visitors_this -> self#on_Diff2 env _visitors_this
832 | AMpamp as _visitors_this -> self#on_AMpamp env _visitors_this
833 | BArbar as _visitors_this -> self#on_BArbar env _visitors_this
834 | LogXor as _visitors_this -> self#on_LogXor env _visitors_this
835 | Lt as _visitors_this -> self#on_Lt env _visitors_this
836 | Lte as _visitors_this -> self#on_Lte env _visitors_this
837 | Gt as _visitors_this -> self#on_Gt env _visitors_this
838 | Gte as _visitors_this -> self#on_Gte env _visitors_this
839 | Dot as _visitors_this -> self#on_Dot env _visitors_this
840 | Amp as _visitors_this -> self#on_Amp env _visitors_this
841 | Bar as _visitors_this -> self#on_Bar env _visitors_this
842 | Ltlt as _visitors_this -> self#on_Ltlt env _visitors_this
843 | Gtgt as _visitors_this -> self#on_Gtgt env _visitors_this
844 | Percent as _visitors_this -> self#on_Percent env _visitors_this
845 | Xor as _visitors_this -> self#on_Xor env _visitors_this
846 | Cmp as _visitors_this -> self#on_Cmp env _visitors_this
847 | Eq _visitors_c0 as _visitors_this ->
848 self#on_Eq env _visitors_this _visitors_c0
849 method on_Utild env _visitors_this =
850 if true then _visitors_this else Utild
851 method on_Unot env _visitors_this =
852 if true then _visitors_this else Unot
853 method on_Uplus env _visitors_this =
854 if true then _visitors_this else Uplus
855 method on_Uminus env _visitors_this =
856 if true then _visitors_this else Uminus
857 method on_Uincr env _visitors_this =
858 if true then _visitors_this else Uincr
859 method on_Udecr env _visitors_this =
860 if true then _visitors_this else Udecr
861 method on_Upincr env _visitors_this =
862 if true then _visitors_this else Upincr
863 method on_Updecr env _visitors_this =
864 if true then _visitors_this else Updecr
865 method on_Uref env _visitors_this =
866 if true then _visitors_this else Uref
867 method on_Usilence env _visitors_this =
868 if true then _visitors_this else Usilence
869 method on_uop env _visitors_this =
870 match _visitors_this with
871 | Utild as _visitors_this -> self#on_Utild env _visitors_this
872 | Unot as _visitors_this -> self#on_Unot env _visitors_this
873 | Uplus as _visitors_this -> self#on_Uplus env _visitors_this
874 | Uminus as _visitors_this -> self#on_Uminus env _visitors_this
875 | Uincr as _visitors_this -> self#on_Uincr env _visitors_this
876 | Udecr as _visitors_this -> self#on_Udecr env _visitors_this
877 | Upincr as _visitors_this -> self#on_Upincr env _visitors_this
878 | Updecr as _visitors_this -> self#on_Updecr env _visitors_this
879 | Uref as _visitors_this -> self#on_Uref env _visitors_this
880 | Usilence as _visitors_this ->
881 self#on_Usilence env _visitors_this
883 [@@@VISITORS.END ]
885 include
886 struct
887 [@@@ocaml.warning "-4-26-27"]
888 [@@@VISITORS.BEGIN ]
889 class virtual ['self] reduce_defs =
890 object (self : 'self)
891 inherit [_] reduce_defs_base
892 method on_Cst_define env = self#zero
893 method on_Cst_const env = self#zero
894 method on_cst_kind env _visitors_this =
895 match _visitors_this with
896 | Cst_define -> self#on_Cst_define env
897 | Cst_const -> self#on_Cst_const env
898 method on_pos env _visitors_this = self#zero
899 method on_id env (_visitors_c0,_visitors_c1) =
900 let _visitors_s0 = self#on_pos env _visitors_c0 in
901 let _visitors_s1 = self#on_string env _visitors_c1 in
902 self#plus _visitors_s0 _visitors_s1
903 method on_pstring env (_visitors_c0,_visitors_c1) =
904 let _visitors_s0 = self#on_pos env _visitors_c0 in
905 let _visitors_s1 = self#on_string env _visitors_c1 in
906 self#plus _visitors_s0 _visitors_s1
907 method on_SFlit env _visitors_c0 =
908 let _visitors_s0 = self#on_pstring env _visitors_c0 in
909 _visitors_s0
910 method on_SFclass_const env _visitors_c0 _visitors_c1 =
911 let _visitors_s0 = self#on_id env _visitors_c0 in
912 let _visitors_s1 = self#on_pstring env _visitors_c1 in
913 self#plus _visitors_s0 _visitors_s1
914 method on_shape_field_name env _visitors_this =
915 match _visitors_this with
916 | SFlit _visitors_c0 -> self#on_SFlit env _visitors_c0
917 | SFclass_const (_visitors_c0,_visitors_c1) ->
918 self#on_SFclass_const env _visitors_c0 _visitors_c1
919 method on_Covariant env = self#zero
920 method on_Contravariant env = self#zero
921 method on_Invariant env = self#zero
922 method on_variance env _visitors_this =
923 match _visitors_this with
924 | Covariant -> self#on_Covariant env
925 | Contravariant -> self#on_Contravariant env
926 | Invariant -> self#on_Invariant env
927 method on_NSNamespace env = self#zero
928 method on_NSClass env = self#zero
929 method on_NSClassAndNamespace env = self#zero
930 method on_NSFun env = self#zero
931 method on_NSConst env = self#zero
932 method on_ns_kind env _visitors_this =
933 match _visitors_this with
934 | NSNamespace -> self#on_NSNamespace env
935 | NSClass -> self#on_NSClass env
936 | NSClassAndNamespace -> self#on_NSClassAndNamespace env
937 | NSFun -> self#on_NSFun env
938 | NSConst -> self#on_NSConst env
939 method on_Constraint_as env = self#zero
940 method on_Constraint_eq env = self#zero
941 method on_Constraint_super env = self#zero
942 method on_constraint_kind env _visitors_this =
943 match _visitors_this with
944 | Constraint_as -> self#on_Constraint_as env
945 | Constraint_eq -> self#on_Constraint_eq env
946 | Constraint_super -> self#on_Constraint_super env
947 method on_Cabstract env = self#zero
948 method on_Cnormal env = self#zero
949 method on_Cinterface env = self#zero
950 method on_Ctrait env = self#zero
951 method on_Cenum env = self#zero
952 method on_class_kind env _visitors_this =
953 match _visitors_this with
954 | Cabstract -> self#on_Cabstract env
955 | Cnormal -> self#on_Cnormal env
956 | Cinterface -> self#on_Cinterface env
957 | Ctrait -> self#on_Ctrait env
958 | Cenum -> self#on_Cenum env
959 method on_MustExtend env = self#zero
960 method on_MustImplement env = self#zero
961 method on_trait_req_kind env _visitors_this =
962 match _visitors_this with
963 | MustExtend -> self#on_MustExtend env
964 | MustImplement -> self#on_MustImplement env
965 method on_Final env = self#zero
966 method on_Static env = self#zero
967 method on_Abstract env = self#zero
968 method on_Private env = self#zero
969 method on_Public env = self#zero
970 method on_Protected env = self#zero
971 method on_kind env _visitors_this =
972 match _visitors_this with
973 | Final -> self#on_Final env
974 | Static -> self#on_Static env
975 | Abstract -> self#on_Abstract env
976 | Private -> self#on_Private env
977 | Public -> self#on_Public env
978 | Protected -> self#on_Protected env
979 method on_Pinout env = self#zero
980 method on_param_kind env _visitors_this =
981 match _visitors_this with | Pinout -> self#on_Pinout env
982 method on_OG_nullthrows env = self#zero
983 method on_OG_nullsafe env = self#zero
984 method on_og_null_flavor env _visitors_this =
985 match _visitors_this with
986 | OG_nullthrows -> self#on_OG_nullthrows env
987 | OG_nullsafe -> self#on_OG_nullsafe env
988 method on_FSync env = self#zero
989 method on_FAsync env = self#zero
990 method on_FGenerator env = self#zero
991 method on_FAsyncGenerator env = self#zero
992 method on_FCoroutine env = self#zero
993 method on_fun_kind env _visitors_this =
994 match _visitors_this with
995 | FSync -> self#on_FSync env
996 | FAsync -> self#on_FAsync env
997 | FGenerator -> self#on_FGenerator env
998 | FAsyncGenerator -> self#on_FAsyncGenerator env
999 | FCoroutine -> self#on_FCoroutine env
1000 method on_Plus env = self#zero
1001 method on_Minus env = self#zero
1002 method on_Star env = self#zero
1003 method on_Slash env = self#zero
1004 method on_Eqeq env = self#zero
1005 method on_EQeqeq env = self#zero
1006 method on_Starstar env = self#zero
1007 method on_Diff env = self#zero
1008 method on_Diff2 env = self#zero
1009 method on_AMpamp env = self#zero
1010 method on_BArbar env = self#zero
1011 method on_LogXor env = self#zero
1012 method on_Lt env = self#zero
1013 method on_Lte env = self#zero
1014 method on_Gt env = self#zero
1015 method on_Gte env = self#zero
1016 method on_Dot env = self#zero
1017 method on_Amp env = self#zero
1018 method on_Bar env = self#zero
1019 method on_Ltlt env = self#zero
1020 method on_Gtgt env = self#zero
1021 method on_Percent env = self#zero
1022 method on_Xor env = self#zero
1023 method on_Cmp env = self#zero
1024 method on_Eq env _visitors_c0 =
1025 let _visitors_s0 = self#on_option self#on_bop env _visitors_c0 in
1026 _visitors_s0
1027 method on_bop env _visitors_this =
1028 match _visitors_this with
1029 | Plus -> self#on_Plus env
1030 | Minus -> self#on_Minus env
1031 | Star -> self#on_Star env
1032 | Slash -> self#on_Slash env
1033 | Eqeq -> self#on_Eqeq env
1034 | EQeqeq -> self#on_EQeqeq env
1035 | Starstar -> self#on_Starstar env
1036 | Diff -> self#on_Diff env
1037 | Diff2 -> self#on_Diff2 env
1038 | AMpamp -> self#on_AMpamp env
1039 | BArbar -> self#on_BArbar env
1040 | LogXor -> self#on_LogXor env
1041 | Lt -> self#on_Lt env
1042 | Lte -> self#on_Lte env
1043 | Gt -> self#on_Gt env
1044 | Gte -> self#on_Gte env
1045 | Dot -> self#on_Dot env
1046 | Amp -> self#on_Amp env
1047 | Bar -> self#on_Bar env
1048 | Ltlt -> self#on_Ltlt env
1049 | Gtgt -> self#on_Gtgt env
1050 | Percent -> self#on_Percent env
1051 | Xor -> self#on_Xor env
1052 | Cmp -> self#on_Cmp env
1053 | Eq _visitors_c0 -> self#on_Eq env _visitors_c0
1054 method on_Utild env = self#zero
1055 method on_Unot env = self#zero
1056 method on_Uplus env = self#zero
1057 method on_Uminus env = self#zero
1058 method on_Uincr env = self#zero
1059 method on_Udecr env = self#zero
1060 method on_Upincr env = self#zero
1061 method on_Updecr env = self#zero
1062 method on_Uref env = self#zero
1063 method on_Usilence env = self#zero
1064 method on_uop env _visitors_this =
1065 match _visitors_this with
1066 | Utild -> self#on_Utild env
1067 | Unot -> self#on_Unot env
1068 | Uplus -> self#on_Uplus env
1069 | Uminus -> self#on_Uminus env
1070 | Uincr -> self#on_Uincr env
1071 | Udecr -> self#on_Udecr env
1072 | Upincr -> self#on_Upincr env
1073 | Updecr -> self#on_Updecr env
1074 | Uref -> self#on_Uref env
1075 | Usilence -> self#on_Usilence env
1077 [@@@VISITORS.END ]
1079 include
1080 struct
1081 [@@@ocaml.warning "-4-26-27"]
1082 [@@@VISITORS.BEGIN ]
1083 class virtual ['self] map_defs =
1084 object (self : 'self)
1085 inherit [_] map_defs_base
1086 method on_Cst_define env = Cst_define
1087 method on_Cst_const env = Cst_const
1088 method on_cst_kind env _visitors_this =
1089 match _visitors_this with
1090 | Cst_define -> self#on_Cst_define env
1091 | Cst_const -> self#on_Cst_const env
1092 method on_pos env _visitors_this = _visitors_this
1093 method on_id env (_visitors_c0,_visitors_c1) =
1094 let _visitors_r0 = self#on_pos env _visitors_c0 in
1095 let _visitors_r1 = self#on_string env _visitors_c1 in
1096 (_visitors_r0, _visitors_r1)
1097 method on_pstring env (_visitors_c0,_visitors_c1) =
1098 let _visitors_r0 = self#on_pos env _visitors_c0 in
1099 let _visitors_r1 = self#on_string env _visitors_c1 in
1100 (_visitors_r0, _visitors_r1)
1101 method on_SFlit env _visitors_c0 =
1102 let _visitors_r0 = self#on_pstring env _visitors_c0 in
1103 SFlit _visitors_r0
1104 method on_SFclass_const env _visitors_c0 _visitors_c1 =
1105 let _visitors_r0 = self#on_id env _visitors_c0 in
1106 let _visitors_r1 = self#on_pstring env _visitors_c1 in
1107 SFclass_const (_visitors_r0, _visitors_r1)
1108 method on_shape_field_name env _visitors_this =
1109 match _visitors_this with
1110 | SFlit _visitors_c0 -> self#on_SFlit env _visitors_c0
1111 | SFclass_const (_visitors_c0,_visitors_c1) ->
1112 self#on_SFclass_const env _visitors_c0 _visitors_c1
1113 method on_Covariant env = Covariant
1114 method on_Contravariant env = Contravariant
1115 method on_Invariant env = Invariant
1116 method on_variance env _visitors_this =
1117 match _visitors_this with
1118 | Covariant -> self#on_Covariant env
1119 | Contravariant -> self#on_Contravariant env
1120 | Invariant -> self#on_Invariant env
1121 method on_NSNamespace env = NSNamespace
1122 method on_NSClass env = NSClass
1123 method on_NSClassAndNamespace env = NSClassAndNamespace
1124 method on_NSFun env = NSFun
1125 method on_NSConst env = NSConst
1126 method on_ns_kind env _visitors_this =
1127 match _visitors_this with
1128 | NSNamespace -> self#on_NSNamespace env
1129 | NSClass -> self#on_NSClass env
1130 | NSClassAndNamespace -> self#on_NSClassAndNamespace env
1131 | NSFun -> self#on_NSFun env
1132 | NSConst -> self#on_NSConst env
1133 method on_Constraint_as env = Constraint_as
1134 method on_Constraint_eq env = Constraint_eq
1135 method on_Constraint_super env = Constraint_super
1136 method on_constraint_kind env _visitors_this =
1137 match _visitors_this with
1138 | Constraint_as -> self#on_Constraint_as env
1139 | Constraint_eq -> self#on_Constraint_eq env
1140 | Constraint_super -> self#on_Constraint_super env
1141 method on_Cabstract env = Cabstract
1142 method on_Cnormal env = Cnormal
1143 method on_Cinterface env = Cinterface
1144 method on_Ctrait env = Ctrait
1145 method on_Cenum env = Cenum
1146 method on_class_kind env _visitors_this =
1147 match _visitors_this with
1148 | Cabstract -> self#on_Cabstract env
1149 | Cnormal -> self#on_Cnormal env
1150 | Cinterface -> self#on_Cinterface env
1151 | Ctrait -> self#on_Ctrait env
1152 | Cenum -> self#on_Cenum env
1153 method on_MustExtend env = MustExtend
1154 method on_MustImplement env = MustImplement
1155 method on_trait_req_kind env _visitors_this =
1156 match _visitors_this with
1157 | MustExtend -> self#on_MustExtend env
1158 | MustImplement -> self#on_MustImplement env
1159 method on_Final env = Final
1160 method on_Static env = Static
1161 method on_Abstract env = Abstract
1162 method on_Private env = Private
1163 method on_Public env = Public
1164 method on_Protected env = Protected
1165 method on_kind env _visitors_this =
1166 match _visitors_this with
1167 | Final -> self#on_Final env
1168 | Static -> self#on_Static env
1169 | Abstract -> self#on_Abstract env
1170 | Private -> self#on_Private env
1171 | Public -> self#on_Public env
1172 | Protected -> self#on_Protected env
1173 method on_Pinout env = Pinout
1174 method on_param_kind env _visitors_this =
1175 match _visitors_this with | Pinout -> self#on_Pinout env
1176 method on_OG_nullthrows env = OG_nullthrows
1177 method on_OG_nullsafe env = OG_nullsafe
1178 method on_og_null_flavor env _visitors_this =
1179 match _visitors_this with
1180 | OG_nullthrows -> self#on_OG_nullthrows env
1181 | OG_nullsafe -> self#on_OG_nullsafe env
1182 method on_FSync env = FSync
1183 method on_FAsync env = FAsync
1184 method on_FGenerator env = FGenerator
1185 method on_FAsyncGenerator env = FAsyncGenerator
1186 method on_FCoroutine env = FCoroutine
1187 method on_fun_kind env _visitors_this =
1188 match _visitors_this with
1189 | FSync -> self#on_FSync env
1190 | FAsync -> self#on_FAsync env
1191 | FGenerator -> self#on_FGenerator env
1192 | FAsyncGenerator -> self#on_FAsyncGenerator env
1193 | FCoroutine -> self#on_FCoroutine env
1194 method on_Plus env = Plus
1195 method on_Minus env = Minus
1196 method on_Star env = Star
1197 method on_Slash env = Slash
1198 method on_Eqeq env = Eqeq
1199 method on_EQeqeq env = EQeqeq
1200 method on_Starstar env = Starstar
1201 method on_Diff env = Diff
1202 method on_Diff2 env = Diff2
1203 method on_AMpamp env = AMpamp
1204 method on_BArbar env = BArbar
1205 method on_LogXor env = LogXor
1206 method on_Lt env = Lt
1207 method on_Lte env = Lte
1208 method on_Gt env = Gt
1209 method on_Gte env = Gte
1210 method on_Dot env = Dot
1211 method on_Amp env = Amp
1212 method on_Bar env = Bar
1213 method on_Ltlt env = Ltlt
1214 method on_Gtgt env = Gtgt
1215 method on_Percent env = Percent
1216 method on_Xor env = Xor
1217 method on_Cmp env = Cmp
1218 method on_Eq env _visitors_c0 =
1219 let _visitors_r0 = self#on_option self#on_bop env _visitors_c0 in
1220 Eq _visitors_r0
1221 method on_bop env _visitors_this =
1222 match _visitors_this with
1223 | Plus -> self#on_Plus env
1224 | Minus -> self#on_Minus env
1225 | Star -> self#on_Star env
1226 | Slash -> self#on_Slash env
1227 | Eqeq -> self#on_Eqeq env
1228 | EQeqeq -> self#on_EQeqeq env
1229 | Starstar -> self#on_Starstar env
1230 | Diff -> self#on_Diff env
1231 | Diff2 -> self#on_Diff2 env
1232 | AMpamp -> self#on_AMpamp env
1233 | BArbar -> self#on_BArbar env
1234 | LogXor -> self#on_LogXor env
1235 | Lt -> self#on_Lt env
1236 | Lte -> self#on_Lte env
1237 | Gt -> self#on_Gt env
1238 | Gte -> self#on_Gte env
1239 | Dot -> self#on_Dot env
1240 | Amp -> self#on_Amp env
1241 | Bar -> self#on_Bar env
1242 | Ltlt -> self#on_Ltlt env
1243 | Gtgt -> self#on_Gtgt env
1244 | Percent -> self#on_Percent env
1245 | Xor -> self#on_Xor env
1246 | Cmp -> self#on_Cmp env
1247 | Eq _visitors_c0 -> self#on_Eq env _visitors_c0
1248 method on_Utild env = Utild
1249 method on_Unot env = Unot
1250 method on_Uplus env = Uplus
1251 method on_Uminus env = Uminus
1252 method on_Uincr env = Uincr
1253 method on_Udecr env = Udecr
1254 method on_Upincr env = Upincr
1255 method on_Updecr env = Updecr
1256 method on_Uref env = Uref
1257 method on_Usilence env = Usilence
1258 method on_uop env _visitors_this =
1259 match _visitors_this with
1260 | Utild -> self#on_Utild env
1261 | Unot -> self#on_Unot env
1262 | Uplus -> self#on_Uplus env
1263 | Uminus -> self#on_Uminus env
1264 | Uincr -> self#on_Uincr env
1265 | Udecr -> self#on_Udecr env
1266 | Upincr -> self#on_Upincr env
1267 | Updecr -> self#on_Updecr env
1268 | Uref -> self#on_Uref env
1269 | Usilence -> self#on_Usilence env
1271 [@@@VISITORS.END ]
1273 type fun_decl_kind =
1274 | FDeclAsync
1275 | FDeclSync
1276 | FDeclCoroutine [@@deriving show]
1277 let rec (pp_fun_decl_kind :
1278 Format.formatter -> fun_decl_kind -> Ppx_deriving_runtime.unit)
1280 ((let open! Ppx_deriving_runtime in
1281 fun fmt ->
1282 function
1283 | FDeclAsync -> Format.pp_print_string fmt "FDeclAsync"
1284 | FDeclSync -> Format.pp_print_string fmt "FDeclSync"
1285 | FDeclCoroutine -> Format.pp_print_string fmt "FDeclCoroutine")
1286 [@ocaml.warning "-A"])
1288 and show_fun_decl_kind : fun_decl_kind -> Ppx_deriving_runtime.string =
1289 fun x -> Format.asprintf "%a" pp_fun_decl_kind x
1291 let string_of_class_kind =
1292 function
1293 | Cabstract -> "an abstract class"
1294 | Cnormal -> "a class"
1295 | Cinterface -> "an interface"
1296 | Ctrait -> "a trait"
1297 | Cenum -> "an enum"
1298 let string_of_kind =
1299 function
1300 | Final -> "final"
1301 | Static -> "static"
1302 | Abstract -> "abstract"
1303 | Private -> "private"
1304 | Public -> "public"
1305 | Protected -> "protected"
1306 let string_of_param_kind = function | Pinout -> "inout"
1307 module ShapeField =
1308 struct
1309 type t = shape_field_name
1310 let compare x y =
1311 match (x, y) with
1312 | (SFlit _,SFclass_const _) -> (-1)
1313 | (SFclass_const _,SFlit _) -> 1
1314 | (SFlit (_,s1),SFlit (_,s2)) -> Pervasives.compare s1 s2
1315 | (SFclass_const ((_,s1),(_,s1')),SFclass_const ((_,s2),(_,s2'))) ->
1316 Pervasives.compare (s1, s1') (s2, s2')
1319 module ShapeMap =
1320 struct
1321 include (MyMap.Make)(ShapeField)
1322 let map_and_rekey m f1 f2 =
1323 fold (fun k -> fun v -> fun acc -> add (f1 k) (f2 v) acc) m empty
1324 let pp _ fmt _ = Format.pp_print_string fmt "[ShapeMap]"