Module Js_parser.Parser_common

type pattern_errors = {
  1. if_expr : (Loc.t * Parse_error.t) list;
  2. if_patt : (Loc.t * Parse_error.t) list;
}
type pattern_cover =
  1. | Cover_expr of (Loc.t, Loc.t) Flow_ast.Expression.t
  2. | 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 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

val is_labelled_function : ('a * ('a, 'b) Js_parser__Flow_ast.Statement.t') -> bool

* 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
val is_start_of_type_guard : Js_parser__Parser_env.env -> bool