Js_parser.Parser_common
type pattern_errors = {
if_expr : (Loc.t * Parse_error.t) list;
if_patt : (Loc.t * Parse_error.t) list;
}
type pattern_cover =
| Cover_expr of (Loc.t, Loc.t) Flow_ast.Expression.t
| Cover_patt of (Loc.t, Loc.t) Flow_ast.Expression.t * pattern_errors
module type PARSER = sig ... end
val identifier_name_raw : Parser_env.env -> string
val identifier_name : Parser_env.env -> Loc.t * Loc.t Flow_ast.Identifier.t'
val private_identifier :
Parser_env.env ->
Loc.t * Loc.t Flow_ast.PrivateName.t'
PrivateIdentifier - https://tc39.es/ecma262/#prod-PrivateIdentifier
N.B.: whitespace, line terminators, and comments are not allowed between the # and IdentifierName because PrivateIdentifier is a CommonToken which is considered a single token. See also https://tc39.es/ecma262/#prod-InputElementDiv
val is_simple_parameter_list :
('a * ('b, 'c) Flow_ast.Function.Params.t') ->
bool
The operation IsSimpleParamterList https://tc39.es/ecma262/#sec-static-semantics-issimpleparameterlist
* The abstract operation IsLabelledFunction * * https://tc39.github.io/ecma262/#sec-islabelledfunction
val assert_identifier_name_is_identifier :
?restricted_error:Parse_error.t ->
Parser_env.env ->
(Loc.t * 'a Flow_ast.Identifier.t') ->
unit
https://tc39.es/ecma262/#sec-exports-static-semantics-early-errors
val with_loc :
?start_loc:Loc.t ->
(Parser_env.env -> 'a) ->
Parser_env.env ->
Loc.t * 'a
val with_loc_opt :
?start_loc:Loc.t ->
(Parser_env.env -> 'a option) ->
Parser_env.env ->
(Loc.t * 'a) option
val with_loc_extra :
?start_loc:Loc.t ->
(Parser_env.env -> 'a * 'b) ->
Parser_env.env ->
(Loc.t * 'a) * 'b