ocamllex - Man Page

The OCaml lexer generator

Synopsis

ocamllex [ -o output-file ] [ -ml ] filename.mll

Description

The ocamllex(1) command generates OCaml lexers from a set of regular expressions with associated semantic actions, in the style of lex(1).

Running ocamllex(1) on the input file lexer​.mll produces OCaml code for a lexical analyzer in file lexer​.ml.

This file defines one lexing function per entry point in the lexer definition. These functions have the same names as the entry points. Lexing functions take as argument a lexer buffer, and return the semantic attribute of the corresponding entry point.

Lexer buffers are an abstract data type implemented in the standard library module Lexing. The functions Lexing.from_channel, Lexing.from_string and Lexing.from_function create lexer buffers that read from an input channel, a character string, or any reading function, respectively.

When used in conjunction with a parser generated by ocamlyacc(1), the semantic actions compute a value belonging to the type token defined by the generated parsing module.

Options

The ocamllex(1) command recognizes the following options:

-ml

Output code that does not use OCaml's built-in automata interpreter. Instead, the automaton is encoded by OCaml functions. This option is mainly useful for debugging ocamllex(1), using it for production lexers is not recommended.

-o output-file

Specify the name of the output file produced by ocamllex(1). The default is the input file name, with its extension replaced by .ml.

-q

Quiet mode. ocamllex(1) normally outputs informational messages to standard output.  They are suppressed if option -q is used.

-v or -version

Print version string and exit.

-vnum

Print short version number and exit.

-help or --help

Display a short usage summary and exit.

See Also

ocamlyacc(1).
The OCaml user's manual, chapter "Lexer and parser generators".