# 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.

###### 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.