OCAMLLEX(1) General Commands Manual OCAMLLEX(1)

# [NAME](#NAME)

ocamllex - The OCaml lexer generator

# [SYNOPSIS](#SYNOPSIS)

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

# [DESCRIPTION](#DESCRIPTION)

The [**ocamllex**(1)](/man/os/ocaml/ocamllex.1) command generates OCaml lexers from a set of regular expressions with associated semantic actions, in the style of [**lex**(1)](/man/os/ocaml/lex.1).

Running [**ocamllex**(1)](/man/os/ocaml/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)](/man/os/ocaml/ocamlyacc.1), the semantic actions compute a value belonging to the type token defined by the generated parsing module.

# [OPTIONS](#OPTIONS)

The [**ocamllex**(1)](/man/os/ocaml/ocamllex.1) command recognizes the following options:

[**-ml**](#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)](/man/os/ocaml/ocamllex.1), using it for production lexers is not recommended.

[**-o output-file**](#o)

Specify the name of the output file produced by [**ocamllex**(1)](/man/os/ocaml/ocamllex.1). The default is the input file name, with its extension replaced by .ml.

[**-q**](#q)

Quiet mode. [**ocamllex**(1)](/man/os/ocaml/ocamllex.1) normally outputs informational messages to standard output. They are suppressed if option **-q** is used.

[**-v** or **-version**](#v)

Print version string and exit.

[**-vnum**](#vnum)

Print short version number and exit.

[**-help** or **--help**](#help)

Display a short usage summary and exit.

# [SEE ALSO](#SEE_ALSO)

[**ocamlyacc**(1)](/man/os/ocaml/ocamlyacc.1).  
*The OCaml user's manual*, chapter "Lexer and parser generators".

---

Document: ocamllex(1) from ocaml 5.5.1-r0 (Chainguard OS)
Source: https://github.com/ocaml/ocaml
