123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596(**************************************************************************)(* *)(* OCaml *)(* *)(* Xavier Leroy, projet Cristal, INRIA Rocquencourt *)(* *)(* Copyright 1996 Institut National de Recherche en Informatique et *)(* en Automatique. *)(* *)(* All rights reserved. This file is distributed under the terms of *)(* the GNU Lesser General Public License version 2.1, with the *)(* special exception on linking described in the file LICENSE. *)(* *)(**************************************************************************)(** Auxiliary AST types used by parsetree and typedtree.
{b Warning:} this module is unstable and part of
{{!Compiler_libs}compiler-libs}.
*)type'aloc='aLocation.loc={txt:'a;loc:Location.t;}typeconstant=Const_intofint|Const_charofchar|Const_stringofstring*Location.t*stringoption|Const_floatofstring|Const_int32ofint32|Const_int64ofint64|Const_nativeintofnativeinttyperec_flag=Nonrecursive|Recursivetypedirection_flag=Upto|Downto(* Order matters, used in polymorphic comparison *)typeprivate_flag=PrivateofLocation.t|Publictypemutable_flag=Immutable|MutableofLocation.ttypeatomic_flag=Nonatomic|AtomicofLocation.ttypevirtual_flag=VirtualofLocation.t|Concretetypeprivate_virtual={pv_priv:Location.toption;pv_virt:Location.toption}typemutable_virtual={mv_mut:Location.toption;mv_virt:Location.toption}typeoverride_flag=Override|Freshtypeclosed_flag=Closed|Opentypeobj_closed_flag=|OClosed|OOpenofLocation.ttypelabel=stringtypearg_label=Nolabel|Labelledofstringloc(** [label:T -> ...] *)|Optionalofstringloc(** [?label:T -> ...] *)(* Moved to the top of the file
type 'a loc = 'a Location.loc = {
txt : 'a;
loc : Location.t;
}
*)typevariant_var=stringlocloc(** [`A] *)typevariance_and_injectivity=stringloclist(*
type variance =
| Covariant
| Contravariant
| NoVariance
| Bivariant
type injectivity =
| Injective
| NoInjectivity
*)letstring_of_label=functionNolabel->""|Labelleds->s.txt|Optionals->"?"^s.txt(* For Pexp_indexop_access *)typeparen_kind=Paren|Brace|Bracket