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

# jocamlyacc(1)

The JoCaml parser generator

## NAME

jocamlyacc - The JoCaml parser generator

## SYNOPSIS

**jocamlyacc** \[ **-v** \] \[ **-b***prefix* \] *filename.mly*

## DESCRIPTION

The  [**jocamlyacc**(1)](/jocamlyacc/1.md) command produces a parser from a LALR(1) context-free grammar specification with attached semantic actions, in the style of [**yacc**(1)](/yacc/1.md). Assuming the input file is  *grammar*.mly, running **jocamlyacc** produces Caml code for a parser in the file  *grammar*.ml, and its interface in file  *grammar*.mli.

The generated module defines one parsing function per entry point in the grammar. These functions have the same names as the entry points. Parsing functions take as arguments a lexical analyzer (a function from lexer buffers to tokens) and a lexer buffer, and return the semantic attribute of the corresponding entry point. Lexical analyzer functions are usually generated from a lexer specification by the [**jocamllex**(1)](/jocamllex/1.md) program. Lexer buffers are an abstract data type implemented in the standard library module Lexing. Tokens are values from the concrete type token, defined in the interface file *grammar*.mli produced by  [**jocamlyacc**(1)](/jocamlyacc/1.md).

## OPTIONS

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

- **-v**

  Generate a description of the parsing tables and a report on conflicts resulting from ambiguities in the grammar. The description is put in file  *grammar*.output.

- **-b***prefix*

  Name the output files *prefix*.ml, *prefix*.mli, *prefix*.output, instead of the default naming convention.

## SEE ALSO

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