Module Js_of_ocaml_compiler.Javascript

module Num : sig ... end
module Label : sig ... end
type location =
| Pi of Parse_info.t
| N
| U
type identifier = string
type ident_string = {
name : identifier;
var : Code.Var.t option;
loc : location;
}
type ident =
| S of ident_string
| V of Code.Var.t
and array_litteral = element_list
and element_list = expression option list
and binop =
| Eq
| StarEq
| SlashEq
| ModEq
| PlusEq
| MinusEq
| LslEq
| AsrEq
| LsrEq
| BandEq
| BxorEq
| BorEq
| Or
| And
| Bor
| Bxor
| Band
| EqEq
| NotEq
| EqEqEq
| NotEqEq
| Lt
| Le
| Gt
| Ge
| InstanceOf
| In
| Lsl
| Lsr
| Asr
| Plus
| Minus
| Mul
| Div
| Mod
and unop =
| Not
| Neg
| Pl
| Typeof
| Void
| Delete
| Bnot
| IncrA
| DecrA
| IncrB
| DecrB
and spread = [
| `Spread
| `Not_spread
]
and arguments = (expression * spread) list
and property_name_and_value_list = (property_name * expression) list
and property_name =
| PNI of identifier
| PNS of string
| PNN of Num.t
and expression =
| ESeq of expression * expression
| ECond of expression * expression * expression
| EBin of binop * expression * expression
| EUn of unop * expression
| ECall of expression * arguments * location
| EAccess of expression * expression
| EDot of expression * identifier
| ENew of expression * arguments option
| EVar of ident
| EFun of function_expression
| EStr of string * [ `Bytes | `Utf8 ]
| EArr of array_litteral
| EBool of bool
| ENum of Num.t
| EObj of property_name_and_value_list
| EQuote of string
| ERegexp of string * string option
and statement =
| Block of block
| Variable_statement of variable_declaration list
| Empty_statement
| Expression_statement of expression
| If_statement of expression * statement * location * (statement * location) option
| Do_while_statement of statement * location * expression
| While_statement of expression * statement * location
| For_statement of (expression optionvariable_declaration list) either * expression option * expression option * statement * location
| ForIn_statement of (expressionvariable_declaration) either * expression * statement * location
| Continue_statement of Label.t option
| Break_statement of Label.t option
| Return_statement of expression option
| Labelled_statement of Label.t * statement * location
| Switch_statement of expression * case_clause list * statement_list option * case_clause list
| Throw_statement of expression
| Try_statement of block * (ident * block) option * block option
| Debugger_statement
and ('left, 'right) either =
| Left of 'left
| Right of 'right
and block = statement_list
and statement_list = (statement * location) list
and variable_declaration = ident * initialiser option
and case_clause = expression * statement_list
and initialiser = expression * location
and function_declaration = ident * formal_parameter_list * function_body * location
and function_expression = ident option * formal_parameter_list * function_body * location
and formal_parameter_list = ident list
and function_body = source_elements
and program = source_elements
and source_elements = (source_element * location) list
and source_element =
| Statement of statement
| Function_declaration of function_declaration
val compare_ident : ident -> ident -> int
val is_ident : string -> bool
val ident : ?⁠loc:location -> ?⁠var:Code.Var.t -> identifier -> ident
module IdentSet : Stdlib.Set.S with type IdentSet.elt = ident
module IdentMap : Stdlib.Map.S with type IdentMap.key = ident