---
name: "ocamllex"
section: "1"
platform: "linux"
package: "ocaml"
version: "5.5.0-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/ocamllex"
---

# ocamllex(1)

The OCaml lexer generator

## NAME

ocamllex - The OCaml lexer generator

## SYNOPSIS

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

## DESCRIPTION

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

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

## OPTIONS

The [**ocamllex**(1)](/ocamllex/1.md) 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)](/ocamllex/1.md), using it for production lexers is not recommended.

- **-o** *output-file*

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

- **-q**

  Quiet mode. [**ocamllex**(1)](/ocamllex/1.md) 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)](/ocamlyacc/1.md).\
 *The OCaml user's manual*, chapter "Lexer and parser generators".
