Railroad syntax diagram generator
Project description
Syntrax
Syntrax is a railroad diagram generator. It creates a visual illustration of the grammar used for programming languages. A specification file describes the syntax as a hierarchy of basic elements. This is processed into an image representing the same syntax with interconnected bubbles.
The specification is a set of nested Python function calls:
indentstack(10,
line(opt('-'), choice('0', line('1-9', loop(None, '0-9'))),
opt('.', loop('0-9', None))),
line(opt(choice('e', 'E'), choice(None, '+', '-'), loop('0-9', None)))
)
This is processed by Syntrax to generate an SVG image:
JSON number syntax
Syntrax can render to PNG bitmap images or SVG, PDF, PS, and EPS vector images. The SVG output can have hyperlinked text allowing users to quickly navigate to documentation of different syntax elements.
Syntrax is a heavily modified version of the railroad diagram generator used for the SQLite documentation. The generator has been ported to Python, converted to use the Cairo rendering backend, and enhanced with configurable layout options.
Requirements
Syntrax requires either Python 2.7 or Python 3.x, Pycairo, and Pango.
The installation script depends on setuptools which will be installed if it isn’t currently present in your Python distribution. The source is written in Python 2.7 syntax but will convert cleanly to Python 3 when the installer passes it through 2to3.
The Pango library is used compute the dimensions of a text layout. There is no standard package to get the Pango Python bindings installed. It is a part of the Gtk+ library which is accessed either through the PyGtk or PyGObject APIs, both of which are supported by Syntrax. You should make sure that one of these libraries is available before installing Syntrax. A Windows installer is available. For Linux distributions you should install the relevant libraries with your package manager.
Download
You can access the Syntrax Git repository from Github. You can install direct from PyPI with the “pip” command if you have it available.
Documentation
The full documentation is available online at the main Syntrax site.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file syntrax-1.0.tar.gz
.
File metadata
- Download URL: syntrax-1.0.tar.gz
- Upload date:
- Size: 20.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d02cb1d8680aa7cb578f2168968ea5d79cb28985f8f416f3aade79ed4d21cc5 |
|
MD5 | 2015def185efe7eca35c6cd8d17d61af |
|
BLAKE2b-256 | 44954c154962169ad156d46ca18c3d7a641e9904ed415c057932709f58d7485d |