Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


DrawGrammar is a tool to draw railroad diagrams of an EBNF grammar. It is available as an interactive demo and as a command-line tool.

It's licensed under the MIT license. It's available on OPAM. Its source code is on GitHub.

Questions? Remarks? Bugs? Want to contribute? Open an issue!

Quick start

The simplest way is to use the interactive demo, load examples and play with the settings.

If you want to use it locally as a command-line tool, install it from OPAM:

$ opam install DrawGrammar

Then create a my_grammar.iso-ebnf file containing, for example:

expr = term, { ( '+' | '-' ) , term };

term = { factor, ( '*' | '/' ) }, factor;

factor = integer | '(', expr, ')';

integer = [ '-' ], digit, { digit };

digit = '0' | '1' | '...' | '9';

And draw it:

$ draw_grammar my_grammar.iso-ebnf

If you want to tweak settings, the help is accessible using:

$ draw_grammar --help

Development version

If you want to use the development version on the command line, you can:

$ opam pin add General --dev-repo
$ opam pin add DrawGrammar --dev-repo

This always matches the version used in the interactive demo.


Draw railroad diagrams of EBNF grammars. In browser and on command line


You can’t perform that action at this time.