summaryrefslogtreecommitdiff
path: root/ocaml-binary-annot/camlp4/Camlp4/Camlp4Ast.partial.ml
diff options
context:
space:
mode:
Diffstat (limited to 'ocaml-binary-annot/camlp4/Camlp4/Camlp4Ast.partial.ml')
-rw-r--r--ocaml-binary-annot/camlp4/Camlp4/Camlp4Ast.partial.ml390
1 files changed, 390 insertions, 0 deletions
diff --git a/ocaml-binary-annot/camlp4/Camlp4/Camlp4Ast.partial.ml b/ocaml-binary-annot/camlp4/Camlp4/Camlp4Ast.partial.ml
new file mode 100644
index 0000000000..ce5ed3efc3
--- /dev/null
+++ b/ocaml-binary-annot/camlp4/Camlp4/Camlp4Ast.partial.ml
@@ -0,0 +1,390 @@
+ type loc = Loc.t
+ and meta_bool =
+ [ BTrue
+ | BFalse
+ | BAnt of string ]
+ and rec_flag =
+ [ ReRecursive
+ | ReNil
+ | ReAnt of string ]
+ and direction_flag =
+ [ DiTo
+ | DiDownto
+ | DiAnt of string ]
+ and mutable_flag =
+ [ MuMutable
+ | MuNil
+ | MuAnt of string ]
+ and private_flag =
+ [ PrPrivate
+ | PrNil
+ | PrAnt of string ]
+ and virtual_flag =
+ [ ViVirtual
+ | ViNil
+ | ViAnt of string ]
+ and override_flag =
+ [ OvOverride
+ | OvNil
+ | OvAnt of string ]
+ and row_var_flag =
+ [ RvRowVar
+ | RvNil
+ | RvAnt of string ]
+ and meta_option 'a =
+ [ ONone
+ | OSome of 'a
+ | OAnt of string ]
+ and meta_list 'a =
+ [ LNil
+ | LCons of 'a and meta_list 'a
+ | LAnt of string ]
+ and ident =
+ [ IdAcc of loc and ident and ident (* i . i *)
+ | IdApp of loc and ident and ident (* i i *)
+ | IdLid of loc and string (* foo *)
+ | IdUid of loc and string (* Bar *)
+ | IdAnt of loc and string (* $s$ *) ]
+ and ctyp =
+ [ TyNil of loc
+ | TyAli of loc and ctyp and ctyp (* t as t *) (* list 'a as 'a *)
+ | TyAny of loc (* _ *)
+ | TyApp of loc and ctyp and ctyp (* t t *) (* list 'a *)
+ | TyArr of loc and ctyp and ctyp (* t -> t *) (* int -> string *)
+ | TyCls of loc and ident (* #i *) (* #point *)
+ | TyLab of loc and string and ctyp (* ~s:t *)
+ | TyId of loc and ident (* i *) (* Lazy.t *)
+ | TyMan of loc and ctyp and ctyp (* t == t *) (* type t = [ A | B ] == Foo.t *)
+ (* type t 'a 'b 'c = t constraint t = t constraint t = t *)
+ | TyDcl of loc and string and list ctyp and ctyp and list (ctyp * ctyp)
+ (* < (t)? (..)? > *) (* < move : int -> 'a .. > as 'a *)
+ | TyObj of loc and ctyp and row_var_flag
+ | TyOlb of loc and string and ctyp (* ?s:t *)
+ | TyPol of loc and ctyp and ctyp (* ! t . t *) (* ! 'a . list 'a -> 'a *)
+ | TyQuo of loc and string (* 's *)
+ | TyQuP of loc and string (* +'s *)
+ | TyQuM of loc and string (* -'s *)
+ | TyVrn of loc and string (* `s *)
+ | TyRec of loc and ctyp (* { t } *) (* { foo : int ; bar : mutable string } *)
+ | TyCol of loc and ctyp and ctyp (* t : t *)
+ | TySem of loc and ctyp and ctyp (* t; t *)
+ | TyCom of loc and ctyp and ctyp (* t, t *)
+ | TySum of loc and ctyp (* [ t ] *) (* [ A of int and string | B ] *)
+ | TyOf of loc and ctyp and ctyp (* t of t *) (* A of int *)
+ | TyAnd of loc and ctyp and ctyp (* t and t *)
+ | TyOr of loc and ctyp and ctyp (* t | t *)
+ | TyPrv of loc and ctyp (* private t *)
+ | TyMut of loc and ctyp (* mutable t *)
+ | TyTup of loc and ctyp (* ( t ) *) (* (int * string) *)
+ | TySta of loc and ctyp and ctyp (* t * t *)
+ | TyVrnEq of loc and ctyp (* [ = t ] *)
+ | TyVrnSup of loc and ctyp (* [ > t ] *)
+ | TyVrnInf of loc and ctyp (* [ < t ] *)
+ | TyVrnInfSup of loc and ctyp and ctyp (* [ < t > t ] *)
+ | TyAmp of loc and ctyp and ctyp (* t & t *)
+ | TyOfAmp of loc and ctyp and ctyp (* t of & t *)
+ | TyPkg of loc and module_type (* (module S) *)
+ | TyAnt of loc and string (* $s$ *)
+ ]
+ and patt =
+ [ PaNil of loc
+ | PaId of loc and ident (* i *)
+ | PaAli of loc and patt and patt (* p as p *) (* (Node x y as n) *)
+ | PaAnt of loc and string (* $s$ *)
+ | PaAny of loc (* _ *)
+ | PaApp of loc and patt and patt (* p p *) (* fun x y -> *)
+ | PaArr of loc and patt (* [| p |] *)
+ | PaCom of loc and patt and patt (* p, p *)
+ | PaSem of loc and patt and patt (* p; p *)
+ | PaChr of loc and string (* c *) (* 'x' *)
+ | PaInt of loc and string
+ | PaInt32 of loc and string
+ | PaInt64 of loc and string
+ | PaNativeInt of loc and string
+ | PaFlo of loc and string
+ | PaLab of loc and string and patt (* ~s or ~s:(p) *)
+ (* ?s or ?s:(p) *)
+ | PaOlb of loc and string and patt
+ (* ?s:(p = e) or ?(p = e) *)
+ | PaOlbi of loc and string and patt and expr
+ | PaOrp of loc and patt and patt (* p | p *)
+ | PaRng of loc and patt and patt (* p .. p *)
+ | PaRec of loc and patt (* { p } *)
+ | PaEq of loc and ident and patt (* i = p *)
+ | PaStr of loc and string (* s *)
+ | PaTup of loc and patt (* ( p ) *)
+ | PaTyc of loc and patt and ctyp (* (p : t) *)
+ | PaTyp of loc and ident (* #i *)
+ | PaVrn of loc and string (* `s *)
+ | PaLaz of loc and patt (* lazy p *)
+ | PaMod of loc and string (* (module M) *) ]
+ and expr =
+ [ ExNil of loc
+ | ExId of loc and ident (* i *)
+ | ExAcc of loc and expr and expr (* e.e *)
+ | ExAnt of loc and string (* $s$ *)
+ | ExApp of loc and expr and expr (* e e *)
+ | ExAre of loc and expr and expr (* e.(e) *)
+ | ExArr of loc and expr (* [| e |] *)
+ | ExSem of loc and expr and expr (* e; e *)
+ | ExAsf of loc (* assert False *)
+ | ExAsr of loc and expr (* assert e *)
+ | ExAss of loc and expr and expr (* e := e *)
+ | ExChr of loc and string (* 'c' *)
+ | ExCoe of loc and expr and ctyp and ctyp (* (e : t) or (e : t :> t) *)
+ | ExFlo of loc and string (* 3.14 *)
+ (* for s = e to/downto e do { e } *)
+ | ExFor of loc and string and expr and expr and direction_flag and expr
+ | ExFun of loc and match_case (* fun [ mc ] *)
+ | ExIfe of loc and expr and expr and expr (* if e then e else e *)
+ | ExInt of loc and string (* 42 *)
+ | ExInt32 of loc and string
+ | ExInt64 of loc and string
+ | ExNativeInt of loc and string
+ | ExLab of loc and string and expr (* ~s or ~s:e *)
+ | ExLaz of loc and expr (* lazy e *)
+ (* let b in e or let rec b in e *)
+ | ExLet of loc and rec_flag and binding and expr
+ (* let module s = me in e *)
+ | ExLmd of loc and string and module_expr and expr
+ (* match e with [ mc ] *)
+ | ExMat of loc and expr and match_case
+ (* new i *)
+ | ExNew of loc and ident
+ (* object ((p))? (cst)? end *)
+ | ExObj of loc and patt and class_str_item
+ (* ?s or ?s:e *)
+ | ExOlb of loc and string and expr
+ (* {< rb >} *)
+ | ExOvr of loc and rec_binding
+ (* { rb } or { (e) with rb } *)
+ | ExRec of loc and rec_binding and expr
+ (* do { e } *)
+ | ExSeq of loc and expr
+ (* e#s *)
+ | ExSnd of loc and expr and string
+ (* e.[e] *)
+ | ExSte of loc and expr and expr
+ (* s *) (* "foo" *)
+ | ExStr of loc and string
+ (* try e with [ mc ] *)
+ | ExTry of loc and expr and match_case
+ (* (e) *)
+ | ExTup of loc and expr
+ (* e, e *)
+ | ExCom of loc and expr and expr
+ (* (e : t) *)
+ | ExTyc of loc and expr and ctyp
+ (* `s *)
+ | ExVrn of loc and string
+ (* while e do { e } *)
+ | ExWhi of loc and expr and expr
+ (* let open i in e *)
+ | ExOpI of loc and ident and expr
+ (* fun (type t) -> e *)
+ (* let f x (type t) y z = e *)
+ | ExFUN of loc and string and expr
+ (* (module ME : S) which is represented as (module (ME : S)) *)
+ | ExPkg of loc and module_expr ]
+ and module_type =
+ [ MtNil of loc
+ (* i *) (* A.B.C *)
+ | MtId of loc and ident
+ (* functor (s : mt) -> mt *)
+ | MtFun of loc and string and module_type and module_type
+ (* 's *)
+ | MtQuo of loc and string
+ (* sig sg end *)
+ | MtSig of loc and sig_item
+ (* mt with wc *)
+ | MtWit of loc and module_type and with_constr
+ | MtAnt of loc and string (* $s$ *) ]
+ and sig_item =
+ [ SgNil of loc
+ (* class cict *)
+ | SgCls of loc and class_type
+ (* class type cict *)
+ | SgClt of loc and class_type
+ (* sg ; sg *)
+ | SgSem of loc and sig_item and sig_item
+ (* # s or # s e *)
+ | SgDir of loc and string and expr
+ (* exception t *)
+ | SgExc of loc and ctyp
+ (* external s : t = s ... s *)
+ | SgExt of loc and string and ctyp and meta_list string
+ (* include mt *)
+ | SgInc of loc and module_type
+ (* module s : mt *)
+ | SgMod of loc and string and module_type
+ (* module rec mb *)
+ | SgRecMod of loc and module_binding
+ (* module type s = mt *)
+ | SgMty of loc and string and module_type
+ (* open i *)
+ | SgOpn of loc and ident
+ (* type t *)
+ | SgTyp of loc and ctyp
+ (* value s : t *)
+ | SgVal of loc and string and ctyp
+ | SgAnt of loc and string (* $s$ *) ]
+ and with_constr =
+ [ WcNil of loc
+ (* type t = t *)
+ | WcTyp of loc and ctyp and ctyp
+ (* module i = i *)
+ | WcMod of loc and ident and ident
+ (* type t := t *)
+ | WcTyS of loc and ctyp and ctyp
+ (* module i := i *)
+ | WcMoS of loc and ident and ident
+ (* wc and wc *)
+ | WcAnd of loc and with_constr and with_constr
+ | WcAnt of loc and string (* $s$ *) ]
+ and binding =
+ [ BiNil of loc
+ (* bi and bi *) (* let a = 42 and c = 43 *)
+ | BiAnd of loc and binding and binding
+ (* p = e *) (* let patt = expr *)
+ | BiEq of loc and patt and expr
+ | BiAnt of loc and string (* $s$ *) ]
+ and rec_binding =
+ [ RbNil of loc
+ (* rb ; rb *)
+ | RbSem of loc and rec_binding and rec_binding
+ (* i = e *)
+ | RbEq of loc and ident and expr
+ | RbAnt of loc and string (* $s$ *) ]
+ and module_binding =
+ [ MbNil of loc
+ (* mb and mb *) (* module rec (s : mt) = me and (s : mt) = me *)
+ | MbAnd of loc and module_binding and module_binding
+ (* s : mt = me *)
+ | MbColEq of loc and string and module_type and module_expr
+ (* s : mt *)
+ | MbCol of loc and string and module_type
+ | MbAnt of loc and string (* $s$ *) ]
+ and match_case =
+ [ McNil of loc
+ (* a | a *)
+ | McOr of loc and match_case and match_case
+ (* p (when e)? -> e *)
+ | McArr of loc and patt and expr and expr
+ | McAnt of loc and string (* $s$ *) ]
+ and module_expr =
+ [ MeNil of loc
+ (* i *)
+ | MeId of loc and ident
+ (* me me *)
+ | MeApp of loc and module_expr and module_expr
+ (* functor (s : mt) -> me *)
+ | MeFun of loc and string and module_type and module_expr
+ (* struct st end *)
+ | MeStr of loc and str_item
+ (* (me : mt) *)
+ | MeTyc of loc and module_expr and module_type
+ (* (value e) *)
+ (* (value e : S) which is represented as (value (e : S)) *)
+ | MePkg of loc and expr
+ | MeAnt of loc and string (* $s$ *) ]
+ and str_item =
+ [ StNil of loc
+ (* class cice *)
+ | StCls of loc and class_expr
+ (* class type cict *)
+ | StClt of loc and class_type
+ (* st ; st *)
+ | StSem of loc and str_item and str_item
+ (* # s or # s e *)
+ | StDir of loc and string and expr
+ (* exception t or exception t = i *)
+ | StExc of loc and ctyp and meta_option(*FIXME*) ident
+ (* e *)
+ | StExp of loc and expr
+ (* external s : t = s ... s *)
+ | StExt of loc and string and ctyp and meta_list string
+ (* include me *)
+ | StInc of loc and module_expr
+ (* module s = me *)
+ | StMod of loc and string and module_expr
+ (* module rec mb *)
+ | StRecMod of loc and module_binding
+ (* module type s = mt *)
+ | StMty of loc and string and module_type
+ (* open i *)
+ | StOpn of loc and ident
+ (* type t *)
+ | StTyp of loc and ctyp
+ (* value (rec)? bi *)
+ | StVal of loc and rec_flag and binding
+ | StAnt of loc and string (* $s$ *) ]
+ and class_type =
+ [ CtNil of loc
+ (* (virtual)? i ([ t ])? *)
+ | CtCon of loc and virtual_flag and ident and ctyp
+ (* [t] -> ct *)
+ | CtFun of loc and ctyp and class_type
+ (* object ((t))? (csg)? end *)
+ | CtSig of loc and ctyp and class_sig_item
+ (* ct and ct *)
+ | CtAnd of loc and class_type and class_type
+ (* ct : ct *)
+ | CtCol of loc and class_type and class_type
+ (* ct = ct *)
+ | CtEq of loc and class_type and class_type
+ (* $s$ *)
+ | CtAnt of loc and string ]
+ and class_sig_item =
+ [ CgNil of loc
+ (* type t = t *)
+ | CgCtr of loc and ctyp and ctyp
+ (* csg ; csg *)
+ | CgSem of loc and class_sig_item and class_sig_item
+ (* inherit ct *)
+ | CgInh of loc and class_type
+ (* method s : t or method private s : t *)
+ | CgMth of loc and string and private_flag and ctyp
+ (* value (virtual)? (mutable)? s : t *)
+ | CgVal of loc and string and mutable_flag and virtual_flag and ctyp
+ (* method virtual (private)? s : t *)
+ | CgVir of loc and string and private_flag and ctyp
+ | CgAnt of loc and string (* $s$ *) ]
+ and class_expr =
+ [ CeNil of loc
+ (* ce e *)
+ | CeApp of loc and class_expr and expr
+ (* (virtual)? i ([ t ])? *)
+ | CeCon of loc and virtual_flag and ident and ctyp
+ (* fun p -> ce *)
+ | CeFun of loc and patt and class_expr
+ (* let (rec)? bi in ce *)
+ | CeLet of loc and rec_flag and binding and class_expr
+ (* object ((p))? (cst)? end *)
+ | CeStr of loc and patt and class_str_item
+ (* ce : ct *)
+ | CeTyc of loc and class_expr and class_type
+ (* ce and ce *)
+ | CeAnd of loc and class_expr and class_expr
+ (* ce = ce *)
+ | CeEq of loc and class_expr and class_expr
+ (* $s$ *)
+ | CeAnt of loc and string ]
+ and class_str_item =
+ [ CrNil of loc
+ (* cst ; cst *)
+ | CrSem of loc and class_str_item and class_str_item
+ (* type t = t *)
+ | CrCtr of loc and ctyp and ctyp
+ (* inherit(!)? ce (as s)? *)
+ | CrInh of loc and override_flag and class_expr and string
+ (* initializer e *)
+ | CrIni of loc and expr
+ (* method(!)? (private)? s : t = e or method(!)? (private)? s = e *)
+ | CrMth of loc and string and override_flag and private_flag and expr and ctyp
+ (* value(!)? (mutable)? s = e *)
+ | CrVal of loc and string and override_flag and mutable_flag and expr
+ (* method virtual (private)? s : t *)
+ | CrVir of loc and string and private_flag and ctyp
+ (* value virtual (mutable)? s : t *)
+ | CrVvr of loc and string and mutable_flag and ctyp
+ | CrAnt of loc and string (* $s$ *) ];