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
=
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 option, variable_declaration list) either * expression option * expression option * statement * location
|
ForIn_statement of (expression, variable_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