Module Cf_lex

module Cf_lex: sig .. end
Lexical analysis with functional composition of regular grammars.


Overview

This module implements functional parsers on octet character sequences using regular expressions and functional composition of lazy deterministic finite automata.

Core Interface

type x = Cf_regex.DFA.x 
The type of regular expressions.
type 'a r = 'a Cf_regex.DFA.r 
The type of lexical analysis rules.
type 'a t = (char, 'a) Cf_parser.t 
Character stream parser.
val nil : x
Epsilon, i.e. a subexpression that matches an empty input sequence.
val create : 'a r -> 'a t
Use create r to compose a lexical analyzer from the rule r.
module type Expr_Op_T = sig .. end
The module type containing the subexpression composition operators.
module Op: sig .. end
Open this module to bring the operator functions for simple parsers into the current scope.
module X: sig .. end
A module of parser extensions for working with input sequences that require position information to woven into the parse function.
type counter = {
   c_pos : int; (*The character index (counts from zero).*)
   c_row : int; (*The column number (counts from zero).*)
   c_col : int; (*The row number (counts from zero).*)
}
A record used by the cursor class defined below that indicates the character index, row and column in the input stream associated with a cursor position.
val counter_zero : counter
The initial value of a cursor position counter.
class cursor : ?c:counter -> string -> object .. end
A class derived from Cf_parser.cursor that intercepts newline characters to track the row and column of a cursor position.