dundalek / GrammKit

Generate diagrams for parser grammars
http://dundalek.com/GrammKit/
The Unlicense
236 stars 19 forks source link

GrammKit

Build status on CircleCI npm version

GrammKit is a tool for generating syntax diagrams (also known as railroad diagrams) for parser grammars. Check out the online version.

Currently these grammar formats are supported:

Is uses the railroad-diagrams library to generate SVG images.

Use the command line utility

npm install -g grammkit

To generate static html page run grammkit yourgrammar.peg.

To generate markdown file run grammkit -t md yourgrammar.peg. This will generate separate SVG files and a markdown file that includes them.

Use the library

npm install grammkit

var grammkit = require('grammkit');
var parse = require('pegjs/lib/parser').parse;

var grammar = parse('start = left ("+" / "-") right');
grammkit.diagram(grammar.rules[0]);
// => '<svg>...</svg>'

The SVG renders as:

Diagram Example

Development

Clone repo and install dependencies with npm install.

Run npm run dev and open browser at http://localhost:1234 .

Here is an overview how the format conversion works:

Overview

Changelog

v0.7.2

v0.7.1

v0.7.0

v0.6.3

v0.6.2

v0.6.1

v0.6.0

Related projects

List of other project worth checking out.