---
name: "jocamllex"
section: "1"
platform: "linux"
package: "jocaml"
version: "4.01.0-3"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/jocamllex"
---

# jocamllex(1)

The JoCaml lexer generator

## NAME

jocamllex - The JoCaml lexer generator

## SYNOPSIS

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

## DESCRIPTION

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

Running [**jocamllex**(1)](/jocamllex/1.md) on the input file *lexer*.mll produces Caml 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  [**jocamlyacc**(1)](/jocamlyacc/1.md), the semantic actions compute a value belonging to the type token defined by the generated parsing module.

## OPTIONS

The  [**jocamllex**(1)](/jocamllex/1.md) command recognizes the following options:

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

  Specify the output file name *output-file* instead of the default naming convention.

- **-ml**

  Output code that does not use the Caml built-in automata interpreter. Instead, the automaton is encoded by Caml functions. This option is useful for debugging [**jocamllex**(1)](/jocamllex/1.md), using it for production lexers is not recommended.

## SEE ALSO

[**jocamlyacc**(1)](/jocamlyacc/1.md).\
 *The Objective Caml user's manual,* chapter "Lexer and parser generators".
