menhir man page

menhir — an LR(1) parser generator for OCaml

Synopsis

menhir [options] files

Description

menhir is an LR(1) parser generator for the OCaml programming language. That is, Menhir compiles LR(1) grammar specifications down to OCaml code. It is mostly compatible with ocamlyacc(1).

Options

-h, --help

Show summary of options.

-b--base basename

Specifies a base name for the output file(s).

--canonical

Construct a canonical Knuth LR(1) automaton.

--cmly

Write the grammar and automaton to basename.cmly.

--comment

Include comments in the generated code.

--compare-errors file1 --compare-errors file2

Compare two .messages files.

--compile-errors file

Compile a .messages file to OCaml code.

--coq

Generate a formally verified parser, in Coq.

--coq-lib-path path

How to qualify references to MenhirLib.

--coq-lib-no-path

Do not qualify references to MenhirLib.

--coq-no-actions

Ignore semantic actions in the Coq output.

--coq-no-complete

Do not generate a proof of completeness.

--depend

Invoke ocamldep and display dependencies.

--dump

Describe the automaton in basename.automaton.

--echo-errors file

Echo the sentences in a .messages file.

--explain

Explain conflicts in basename.conflicts.

--external-tokens module

Import token type definition from module.

--fixed-exception

Declares Error = Parsing.Parse_error.

--graph

Write grammar's dependency graph to basename.dot.

--infer

Invoke ocamlc for ahead of time type inference.

--infer-protocol-supported

Stop with exit code 0.

--infer-write-query file

Write mock .ml file.

--infer-read-reply file

Read inferred .mli file.

--inspection

Generate the inspection API.

--interpret

Interpret the sentences provided on stdin.

--interpret-show-cst

Show a concrete syntax tree upon acceptance.

--interpret-error

Interpret an error sentence provided on stdin.

--lalr

Construct an LALR(1) automaton.

-la--log-automaton level

Log information about the automaton.

-lc--log-code level

Log information about the generated code.

-lg--log-grammar level

Log information about the grammar.

--list-errors

Produce a list of erroneous inputs.

--no-dollars

Disallow the use of $i notation.

--no-inline

Ignore the %inline keyword.

--no-stdlib

Do not load the standard library.

--ocamlc command

Specifies how ocamlc should be invoked.

--ocamldep command

Specifies how ocamldep should be invoked.

--only-preprocess

Print a simplified grammar and exit.

--only-preprocess-for-ocamlyacc

Print grammar in ocamlyacc format and exit.

--only-preprocess-u

Print grammar with unit actions and exit.

--only-preprocess-uu

Print grammar with unit actions and tokens and exit.

--only-tokens

Generate token type definition only, no code.

--raw-depend

Invoke ocamldep and echo its raw output.

--stdlib directory

Specify where the standard library lies.

--strict

Warnings about the grammar are errors.

--suggest-comp-flags

Suggest compilation flags for ocaml{c,opt}.

--suggest-link-flags-byte

Suggest link flags for ocamlc.

--suggest-link-flags-opt

Suggest link flags for ocamlopt.

--suggest-menhirLib

Suggest where MenhirLib was installed in source form.

--suggest-ocamlfind

Show if Menhir was installed using ocamlfind.

-t, --table

Use the table-based back-end.

--timings

Display internal timings.

--trace

Include tracing instructions in the generated code.

--unused-precedence-levels

Do not warn about unused precedence levels.

--unused-token token

Do not warn that token is unused.

--unused-tokens

Do not warn about any unused token.

--update-errors file

Update auto-comments in a .messages file.

--version

Show version number and exit.

-v

Synonymous with --dump --explain.

See Also

ocaml(1).

Author

menhir was written by François Pottier and Yann Régis-Gianas.

This manual page was originally written by Samuel Mimram <smimram@debian.org> for the Debian project (but may be used by others).

Info

July 03, 2018