ocamllex man page

ocamllex — The OCaml lexer generator


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


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.


The ocamllex(1) command recognizes the following options:


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.


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.


Print short version number and exit.

-help or --help

Display a short usage summary and exit.

See Also

The OCaml user's manual, chapter "Lexer and parser generators".

Referenced By