Giter Site home page Giter Site logo

rr's Introduction

RR

RR - Railroad Diagram Generator

RR is a generator of syntax diagrams, also known as railroad diagrams. It is a self-contained tool with both a browser-based GUI and a batch mode.

Besides generating diagrams from EBNF rules, RR also can perform some grammar transformation, e.g. factorization and elimination of direct recursion. To some extent this transforms BNF to EBNF, yielding more compact diagrams.

Examples

Here are two examples of generated diagrams (taken from the Python grammar):

if_stmt:

if_stmt

try_stmt:

try_stmt

Grammar syntax

RR accepts grammars in W3C-style EBNF. Some other representations, including some parser generator input notations, can be converted to W3C-style using Grammar Conversion.

Distribution

RR comes as a .zip, containing a .war file. The .war file can be deployed in servlet containers like Tomcat or Jetty for serving the GUI. This makes up the webapp that is running on the original website, https://bottlecaps.de/rr/ui.

The .war file is a Java "executable war", i.e. it can also be started standalone from command line. Two different tasks can be performed in standalone mode:

  • serving the GUI, e.g.
   java -jar rr.war -gui
  • batch diagram generation, e.g.
   java -jar rr.war grammar.ebnf

For listing the full set of available options, run

   java -jar rr.war

without further command line arguments.

Building RR

For building RR, JDK 8 (or higher) must be available. In the project folder, run this command to build the distribution .zip file:

gradlew

Thanks

This project makes use of

License

RR is released under the Apache 2 License.

Links

The official website for RR is https://bottlecaps.de/rr/ui.

rr's People

Contributors

bannmann avatar guntherrademacher avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.