OCAMLYACC(1) User Commands OCAMLYACC(1)
NAME
ocamlyacc - The OCaml parser generator
SYNOPSIS
ocamlyacc [
-bprefix ] [
-q ] [
-v ] [
-version ] [
-vnum ]
filename.mlyDESCRIPTION
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:
-bprefix 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".
OCAMLYACC(1)