package fmlib

  1. Overview
  2. Docs

Module Make.ParserSource

The final parser.

include Interfaces.PARSER

A parser p is a sink of token. As long as it signals needs_more p more token can be pushed into the parser via put token p or the input stream can be ended via put_end p.

If the parser does not need more token (has_ended p is equivalent to not (needs_more p)), then it has either succeeded or failed.

If it has succeeded the final value is available via final p.

There are two types of failure:

  • Syntax error: In that case failed_expectations p returns the list of failed expectations.
  • Semantic error: In that case failed_semantic p returns the encountered semantic error.

The function state returns the user state.

The function lookaheads returns a pair. The first part of the pair is an array of unprocessed lookahead token and the second part is a flag indicating if the endtoken has been received via put_end.

Sourcetype t
Sourceval needs_more : t -> bool
Sourceval has_ended : t -> bool
Sourceval put : Token.t -> t -> t
Sourceval put_end : t -> t
Sourceval has_succeeded : t -> bool
Sourceval has_failed_syntax : t -> bool
Sourceval has_failed_semantic : t -> bool
Sourceval final : t -> Final.t
Sourceval failed_expectations : t -> Expect.t list
Sourceval failed_semantic : t -> Semantic.t
Sourceval state : t -> State.t
Sourceval lookaheads : t -> Token.t array * bool
OCaml

Innovation. Community. Security.