package coq-core

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Extensible grammars.

This module implements the Camlp5 extensible grammars system. Grammars entries can be extended using the EXTEND statement, added by loading the Camlp5 pa_extend.cmo file.

exception Error of string

Raised by parsers when the first component of a stream pattern is accepted, but one of the following components is rejected.

Functorial interface

Alternative for grammars use. Grammars are no more Ocaml values: there is no type for them. Modules generated preserve the rule "an entry cannot call an entry of another grammar" by normal OCaml typing.

The input signature for the functor Grammar.GMake: te is the type of the tokens.

type norec
type mayrec
module type S = sig ... end
module type ExtS = sig ... end

Signature type of the functor Grammar.GMake. The types and functions are almost the same than in generic interface, but:

  • Grammars are not values. Functions holding a grammar as parameter do not have this parameter yet.
  • The type parsable is used in function parse instead of the char stream, avoiding the possible loss of tokens.
  • The type of tokens (expressions and patterns) can be any type (instead of (string * string)); the module parameter must specify a way to show them as (string * string)
module GMake (L : Plexing.S) : ExtS with type keyword_state := L.keyword_state and type te := L.te and type 'c pattern := 'c L.pattern
OCaml

Innovation. Community. Security.