2011-07-27 07:17:02 -07:00
|
|
|
.\"***********************************************************************
|
|
|
|
.\"* *
|
|
|
|
.\"* OCaml *
|
|
|
|
.\"* *
|
|
|
|
.\"* Xavier Leroy, projet Cristal, INRIA Rocquencourt *
|
|
|
|
.\"* *
|
|
|
|
.\"* Copyright 1996 Institut National de Recherche en Informatique et *
|
|
|
|
.\"* en Automatique. All rights reserved. This file is distributed *
|
|
|
|
.\"* under the terms of the Q Public License version 1.0. *
|
|
|
|
.\"* *
|
|
|
|
.\"***********************************************************************
|
|
|
|
.\"
|
1996-05-10 06:27:26 -07:00
|
|
|
.TH OCAMLYACC 1
|
1995-11-02 08:54:37 -08:00
|
|
|
|
|
|
|
.SH NAME
|
2011-04-26 05:16:50 -07:00
|
|
|
ocamlyacc \- The OCaml parser generator
|
1995-11-02 08:54:37 -08:00
|
|
|
|
|
|
|
.SH SYNOPSIS
|
1996-04-30 07:53:58 -07:00
|
|
|
.B ocamlyacc
|
1995-11-02 08:54:37 -08:00
|
|
|
[
|
|
|
|
.BI \-b prefix
|
2010-05-20 07:06:29 -07:00
|
|
|
] [
|
|
|
|
.B \-q
|
|
|
|
] [
|
|
|
|
.B \-v
|
|
|
|
] [
|
|
|
|
.B \-version
|
|
|
|
] [
|
|
|
|
.B \-vnum
|
1995-11-02 08:54:37 -08:00
|
|
|
]
|
|
|
|
.I filename.mly
|
|
|
|
|
|
|
|
.SH DESCRIPTION
|
|
|
|
|
2008-09-15 07:05:30 -07:00
|
|
|
The
|
1996-04-30 07:53:58 -07:00
|
|
|
.BR ocamlyacc (1)
|
1995-11-02 08:54:37 -08:00
|
|
|
command produces a parser from a LALR(1) context-free grammar
|
|
|
|
specification with attached semantic actions, in the style of
|
|
|
|
.BR yacc (1).
|
2008-09-15 07:05:30 -07:00
|
|
|
Assuming the input file is
|
1995-11-02 08:54:37 -08:00
|
|
|
.IR grammar \&.mly,
|
|
|
|
running
|
1996-04-30 07:53:58 -07:00
|
|
|
.B ocamlyacc
|
2011-06-15 05:24:26 -07:00
|
|
|
produces OCaml code for a parser in the file
|
1995-11-02 08:54:37 -08:00
|
|
|
.IR grammar \&.ml,
|
2008-09-15 07:05:30 -07:00
|
|
|
and its interface in file
|
1995-11-02 08:54:37 -08:00
|
|
|
.IR 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
|
1996-04-30 07:53:58 -07:00
|
|
|
.BR ocamllex (1)
|
1995-11-02 08:54:37 -08:00
|
|
|
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
|
|
|
|
.IR grammar \&.mli
|
2008-09-15 07:05:30 -07:00
|
|
|
produced by
|
1996-04-30 07:53:58 -07:00
|
|
|
.BR ocamlyacc (1).
|
1995-11-02 08:54:37 -08:00
|
|
|
|
|
|
|
.SH OPTIONS
|
|
|
|
|
2008-09-15 07:05:30 -07:00
|
|
|
The
|
1996-04-30 07:53:58 -07:00
|
|
|
.BR ocamlyacc (1)
|
1995-11-02 08:54:37 -08:00
|
|
|
command recognizes the following options:
|
|
|
|
.TP
|
|
|
|
.BI \-b prefix
|
|
|
|
Name the output files
|
|
|
|
.IR prefix \&.ml,
|
|
|
|
.IR prefix \&.mli,
|
|
|
|
.IR prefix \&.output,
|
|
|
|
instead of the default naming convention.
|
2008-09-15 07:05:30 -07:00
|
|
|
.TP
|
|
|
|
.B \-q
|
|
|
|
This option has no effect.
|
|
|
|
.TP
|
|
|
|
.B \-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
|
|
|
|
.IR grammar .output.
|
|
|
|
.TP
|
|
|
|
.B \-version
|
2010-05-20 07:06:29 -07:00
|
|
|
Print version string and exit.
|
|
|
|
.TP
|
|
|
|
.B \-vnum
|
|
|
|
Print short version number and exit.
|
2008-09-15 07:05:30 -07:00
|
|
|
.TP
|
|
|
|
.B \-
|
|
|
|
Read the grammar specification from standard input. The default
|
|
|
|
output file names are stdin.ml and stdin.mli.
|
|
|
|
.TP
|
|
|
|
.BI \-\- \ file
|
|
|
|
Process
|
|
|
|
.I file
|
|
|
|
as the grammar specification, even if its name
|
|
|
|
starts with a dash (-) character. This option must be the last on the
|
|
|
|
command line.
|
1995-11-02 08:54:37 -08:00
|
|
|
|
|
|
|
.SH SEE ALSO
|
1996-04-30 07:53:58 -07:00
|
|
|
.BR ocamllex (1).
|
1995-11-02 08:54:37 -08:00
|
|
|
.br
|
2011-04-26 05:16:50 -07:00
|
|
|
.IR "The OCaml user's manual" ,
|
1995-11-02 08:54:37 -08:00
|
|
|
chapter "Lexer and parser generators".
|