Module Js_parser.Parser_env

module SSet : Set.S with type elt = string
module Lex_mode : sig ... end
type token_sink_result = {
  1. token_loc : Loc.t;
  2. token : Token.t;
  3. token_context : Lex_mode.t;
}
type parse_options = {
  1. enums : bool;
    (*

    enable parsing of Flow enums

    *)
  2. esproposal_decorators : bool;
    (*

    enable parsing of decorators

    *)
  3. types : bool;
    (*

    enable parsing of Flow types

    *)
  4. use_strict : bool;
    (*

    treat the file as strict, without needing a "use strict" directive

    *)
}
val default_parse_options : parse_options
type env
type allowed_super =
  1. | No_super
  2. | Super_prop
  3. | Super_prop_or_call
val init_env : ?token_sink:(token_sink_result -> unit) option -> ?parse_options:parse_options option -> File_key.t option -> string -> env
val in_strict_mode : env -> bool
val last_loc : env -> Loc.t option
val last_token : env -> Token.t option
val in_export : env -> bool
val in_export_default : env -> bool
val labels : env -> SSet.t
val comments : env -> Loc.t Flow_ast.Comment.t list
val in_loop : env -> bool
val in_switch : env -> bool
val in_formal_parameters : env -> bool
val in_function : env -> bool
val allow_yield : env -> bool
val allow_await : env -> bool
val allow_directive : env -> bool
val allow_super : env -> allowed_super
val has_simple_parameters : env -> bool
val no_in : env -> bool
val no_call : env -> bool
val no_let : env -> bool
val no_anon_function_type : env -> bool
val no_new : env -> bool
val errors : env -> (Loc.t * Parse_error.t) list
val parse_options : env -> parse_options
val source : env -> File_key.t option
val should_parse_types : env -> bool
val get_unexpected_error : ?expected:string -> Token.t -> Parse_error.t
val error_at : env -> (Loc.t * Parse_error.t) -> unit
val error : env -> Parse_error.t -> unit
val error_unexpected : ?expected:string -> env -> unit
val error_on_decorators : env -> (Loc.t * 'a) list -> unit
val error_nameless_declaration : env -> string -> unit
val strict_error : env -> Parse_error.t -> unit
val strict_error_at : env -> (Loc.t * Parse_error.t) -> unit
val function_as_statement_error_at : env -> Loc.t -> unit
val error_list : env -> (Loc.t * Parse_error.t) list -> unit
val enter_class : env -> unit
val exit_class : env -> unit
val add_declared_private : env -> string -> unit
val add_used_private : env -> string -> Loc.t -> unit
val consume_comments_until : env -> Loc.position -> unit
val with_strict : bool -> env -> env
val with_in_formal_parameters : bool -> env -> env
val with_in_function : bool -> env -> env
val with_allow_yield : bool -> env -> env
val with_allow_await : bool -> env -> env
val with_allow_directive : bool -> env -> env
val with_allow_super : allowed_super -> env -> env
val with_no_let : bool -> env -> env
val with_in_loop : bool -> env -> env
val with_no_in : bool -> env -> env
val with_no_anon_function_type : bool -> env -> env
val with_no_new : bool -> env -> env
val with_in_switch : bool -> env -> env
val with_in_export : bool -> env -> env
val with_in_export_default : bool -> env -> env
val with_no_call : bool -> env -> env
val with_error_callback : (env -> Parse_error.t -> unit) -> env -> env
val without_error_callback : env -> env
val add_label : env -> string -> env
val enter_function : env -> async:bool -> generator:bool -> simple_params:bool -> env
val is_reserved : string -> bool
val token_is_reserved : Token.t -> bool
val is_future_reserved : string -> bool
val is_strict_reserved : string -> bool
val token_is_strict_reserved : Token.t -> bool
val is_restricted : string -> bool
val is_reserved_type : string -> bool
val token_is_restricted : Token.t -> bool
module Peek : sig ... end
module Eat : sig ... end
module Expect : sig ... end
module Try : sig ... end