OCAMLYACC(1)

NAME
ocamlyacc - The OCaml parser generator

SYNOPSIS
ocamlyacc [ -b prefix ] [ -q ] [ -v ] [ -version ] [ -vnum ] filename.mly

DESCRIPTION
The ocamlyacc(1) command produces a parser from a LALR(1) context-free grammar specification with attached semantic actions, in the style of yacc(1). Assuming the input file is grammar.mly, running ocamlyacc produces OCaml 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 ocamllex(1) 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 ocamlyacc(1).

OPTIONS
The ocamlyacc(1) command recognizes the following options:

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

-q  This option has no effect.

--strict
    Reject grammars with conflicts.

-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.

-version
    Print version string and exit.

-vnum
    Print short version number and exit.

-   Read the grammar specification from standard input. The default output file names are stdin.ml and stdin.mli.

-- file
    Process file as the grammar specification, even if its name starts with a dash (-) character. This option must be the last on the command line.

SEE ALSO
ocamllex(1).
The OCaml user's manual, chapter "Lexer and parser generators".