Js_parser.Parser_commontype 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_errorsmodule type PARSER = sig ... endval identifier_name_raw : Parser_env.env -> stringval 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') ->
  boolThe 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') ->
  unithttps://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 * 'bval with_loc_opt : 
  ?start_loc:Loc.t ->
  (Parser_env.env -> 'a option) ->
  Parser_env.env ->
  (Loc.t * 'b) optionval with_loc_extra : 
  ?start_loc:Loc.t ->
  (Parser_env.env -> 'a * 'b) ->
  Parser_env.env ->
  (Loc.t * 'c) * 'd