ocamlyacc - The OCaml parser generator
] [ -q
] [ -v
] [ -vnum
(1) command produces a parser from a LALR(1) context-free
grammar specification with attached semantic actions, in the style of
(1). Assuming the input file is grammar
produces OCaml code for a parser in the file
.ml, and its interface in file grammar
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
.mli produced by ocamlyacc
(1) command recognizes the following options:
- Name the output files prefix.ml, prefix.mli,
prefix.output, instead of the default naming convention.
- This option has no effect.
- Generate a description of the parsing tables and a report on conflicts
resulting from ambiguities in the grammar. The description is put in file
- Print version string and exit.
- 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
The OCaml user's manual
, chapter "Lexer and parser