Quick StartTryGuideAPICommunityBlogGitHub

Standard Library

Below is the API for the OCaml standard library. It's directly copied over from the OCaml Manual, formatted to the Reason syntax and styled accordingly. The API docs are work-in-progress; we'll be polishing these gradually!

If you're targeting JavaScript, the API docs for BuckleScript includes all of below, plus JS-specific APIs.

sig

  type position = {
    pos_fname : string;
    pos_lnum : int;
    pos_bol : int;
    pos_cnum : int;
  }
  val dummy_pos : Lexing.position
  type lexbuf = {
    refill_buff : Lexing.lexbuf -> unit;
    mutable lex_buffer : bytes;
    mutable lex_buffer_len : int;
    mutable lex_abs_pos : int;
    mutable lex_start_pos : int;
    mutable lex_curr_pos : int;
    mutable lex_last_pos : int;
    mutable lex_last_action : int;
    mutable lex_eof_reached : bool;
    mutable lex_mem : int array;
    mutable lex_start_p : Lexing.position;
    mutable lex_curr_p : Lexing.position;
  }
  val from_channel : Pervasives.in_channel -> Lexing.lexbuf
  val from_string : string -> Lexing.lexbuf
  val from_function : (bytes -> int -> int) -> Lexing.lexbuf
  val lexeme : Lexing.lexbuf -> string
  val lexeme_char : Lexing.lexbuf -> int -> char
  val lexeme_start : Lexing.lexbuf -> int
  val lexeme_end : Lexing.lexbuf -> int
  val lexeme_start_p : Lexing.lexbuf -> Lexing.position
  val lexeme_end_p : Lexing.lexbuf -> Lexing.position
  val new_line : Lexing.lexbuf -> unit
  val flush_input : Lexing.lexbuf -> unit
  val sub_lexeme : Lexing.lexbuf -> int -> int -> string
  val sub_lexeme_opt : Lexing.lexbuf -> int -> int -> string option
  val sub_lexeme_char : Lexing.lexbuf -> int -> char
  val sub_lexeme_char_opt : Lexing.lexbuf -> int -> char option
  type lex_tables = {
    lex_base : string;
    lex_backtrk : string;
    lex_default : string;
    lex_trans : string;
    lex_check : string;
    lex_base_code : string;
    lex_backtrk_code : string;
    lex_default_code : string;
    lex_trans_code : string;
    lex_check_code : string;
    lex_code : string;
  }
  val engine : Lexing.lex_tables -> int -> Lexing.lexbuf -> int
  val new_engine : Lexing.lex_tables -> int -> Lexing.lexbuf -> int
end