Skip to content

Module Stdlib.Parsing

The run-time library for parsers generated by ocamlyacc.

ocaml
val symbol_start : unit -> int
reasonml
let symbol_start: unit => int;

symbol_start and Parsing.symbol_end are to be called in the action part of a grammar rule only. They return the offset of the string that matches the left-hand side of the rule: symbol_start() returns the offset of the first character; symbol_end() returns the offset after the last character. The first character in a file is at offset 0.

ocaml
val symbol_end : unit -> int
reasonml
let symbol_end: unit => int;

See Parsing.symbol_start.

ocaml
val rhs_start : int -> int
reasonml
let rhs_start: int => int;

Same as Parsing.symbol_start and Parsing.symbol_end, but return the offset of the string matching the nth item on the right-hand side of the rule, where n is the integer parameter to rhs_start and rhs_end. n is 1 for the leftmost item.

ocaml
val rhs_end : int -> int
reasonml
let rhs_end: int => int;

See Parsing.rhs_start.

ocaml
val symbol_start_pos : unit -> Lexing.position
reasonml
let symbol_start_pos: unit => Lexing.position;

Same as symbol_start, but return a position instead of an offset.

ocaml
val symbol_end_pos : unit -> Lexing.position
reasonml
let symbol_end_pos: unit => Lexing.position;

Same as symbol_end, but return a position instead of an offset.

ocaml
val rhs_start_pos : int -> Lexing.position
reasonml
let rhs_start_pos: int => Lexing.position;

Same as rhs_start, but return a position instead of an offset.

ocaml
val rhs_end_pos : int -> Lexing.position
reasonml
let rhs_end_pos: int => Lexing.position;

Same as rhs_end, but return a position instead of an offset.

ocaml
val clear_parser : unit -> unit
reasonml
let clear_parser: unit => unit;

Empty the parser stack. Call it just after a parsing function has returned, to remove all pointers from the parser stack to structures that were built by semantic actions during parsing. This is optional, but lowers the memory requirements of the programs.

ocaml
exception Parse_error
reasonml
exception Parse_error;

Raised when a parser encounters a syntax error. Can also be raised from the action part of a grammar rule, to initiate error recovery.

ocaml
val set_trace : bool -> bool
reasonml
let set_trace: bool => bool;

Control debugging support for ocamlyacc-generated parsers. After Parsing.set_trace true, the pushdown automaton that executes the parsers prints a trace of its actions (reading a token, shifting a state, reducing by a rule) on standard output. Parsing.set_trace false turns this debugging trace off. The boolean returned is the previous state of the trace flag.

since 3.11