Skip to content

neerajbadlani/GrammKit

 
 

Repository files navigation

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.1

  • Bumped up dependencies to make npm audit happy (#20)
  • Removed references to rawgit.com since it shut down (#21)

v0.7.0

  • Fixed compatibility with latest version of pegjs (v0.10.0)

v0.6.3

  • Fix onclick events for SVG elements (#13)

v0.6.2

  • Bump dependencies to satisfy npm audit

v0.6.1

  • Update ohm dependency

v0.6.0

  • Add support for ohm grammars
  • Choose different formats in web app and cli

Related projects

List of other project worth checking out.

About

Generate diagrams for parser grammars

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 91.6%
  • HTML 5.5%
  • CSS 2.0%
  • Handlebars 0.9%