Module Jslib_ast


module Jslib_ast: sig .. end

type loc = Camlp4.PreCast.Loc.t 

type unop =
| Jdelete
| Jvoid
| Jtypeof
| Jadd2_pre
| Jsub2_pre
| Jadd_pre
| Jsub_pre
| Jtilde
| Jnot
| Jadd2_post
| Jsub2_post

type binop =
| Jhashref
| Jmul
| Jdiv
| Jmod
| Jadd
| Jsub
| Jlt
| Jgt
| Jleq
| Jgeq
| Jlsr
| Jlsl
| Jasr
| Jeq
| Jneq
| Jinstanceof
| Jseq
| Jsneq
| Jland
| Jlor
| Jand
| Jxor
| Jor
| Jcomma
| Jassign
| Jmul_assign
| Jdiv_assign
| Jmod_assign
| Jadd_assign
| Jsub_assign
| Jlsl_assign
| Jlsr_assign
| Jasr_assign
| Jand_assign
| Jxor_assign
| Jor_assign

type exp =
| Jthis of loc
| Jvar of loc * string
| Jarray of loc * exp
| Jobject of loc * (exp * exp) list
| Jstring of loc * string * bool
| Jnum of loc * string
| Jnull of loc
| Jbool of loc * bool
| Jregexp of loc * string * string
| Jfun of loc * string option * string list * stmt
| Jfieldref of loc * exp * string
| Junop of loc * unop * exp
| Jbinop of loc * binop * exp * exp
| Jite of loc * exp * exp * exp
| Jcall of loc * exp * exp
| Jnew of loc * exp * exp option
| Jexp_nil of loc
| Jexp_cons of loc * exp * exp
| Jexp_Ant of loc * string

type stmt =
| Jvars of loc * (string * exp option) list
| Jfuns of loc * string * string list * stmt
| Jreturn of loc * exp option
| Jcontinue of loc * string option
| Jbreak of loc * string option
| Jswitch of loc * exp * (exp * stmt) list
* stmt
| Jites of loc * exp * stmt * stmt option
| Jthrow of loc * exp
| Jexps of loc * exp
| Jtrycatch of loc * stmt * (string * stmt) option
* stmt
| Jfor of loc * (string * exp option) list * exp option
* exp option * exp option * stmt
| Jdowhile of loc * stmt * exp
| Jwhile of loc * exp * stmt
| Jblock of loc * stmt
| Jwith of loc * exp * stmt
| Jlabel of loc * string * stmt
| Jstmt_nil of loc
| Jstmt_cons of loc * stmt * stmt
| Jstmt_Ant of loc * string
val loc_of_exp : exp -> Camlp4.PreCast.Loc.t
val exp_of_list : exp list -> exp
val list_of_exp : exp -> exp list -> exp list
val loc_of_stmt : stmt -> Camlp4.PreCast.Loc.t
val stmt_of_list : stmt list -> stmt
val list_of_stmt : stmt -> stmt list -> stmt list
module Meta: sig .. end