All Projects → kevinpt → syntrax

kevinpt / syntrax

Licence: MIT license
Railroad syntax diagram generator

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to syntrax

glsp-examples
Example diagram editors built with Eclipse GLSP
Stars: ✭ 28 (-50.88%)
Mutual labels:  diagram
uml-diagram-for-kotlin-design-pattern-examples
UML diagram list of GoF design pattern examples written in Kotlin.
Stars: ✭ 23 (-59.65%)
Mutual labels:  diagram
bpmn-layout-generators
Tools for generating missing BPMNDiagram elements in BPMN files
Stars: ✭ 27 (-52.63%)
Mutual labels:  diagram
markdown-blockdiag
blockdiag extension for Python Markdown
Stars: ✭ 23 (-59.65%)
Mutual labels:  diagram
taiga-stats
Generate statistics from Taiga and produce burnup diagrams, CFDs, dependency graphs and more.
Stars: ✭ 40 (-29.82%)
Mutual labels:  diagram
Mermaid
Provides a parser function to generate diagrams and flowcharts with the help of the mermaid script language
Stars: ✭ 27 (-52.63%)
Mutual labels:  diagram
DrawRacket4Me
DrawRacket4Me draws trees and graphs from your code, making it easier to check if the structure is what you wanted.
Stars: ✭ 43 (-24.56%)
Mutual labels:  diagram
AMVennDiagramView
AMVennDiagramView is a view can display the diagram like Venn diagram.
Stars: ✭ 39 (-31.58%)
Mutual labels:  diagram
PlantUml.Net
a .Net wrapper for PlantUml
Stars: ✭ 35 (-38.6%)
Mutual labels:  diagram
grafikon
Timetables for model railway. Useful for meets with modules (like FREMO, Free-mo etc).
Stars: ✭ 19 (-66.67%)
Mutual labels:  railroad
Diagrammatic
Philosophy diagrams in Ti𝑘Z
Stars: ✭ 27 (-52.63%)
Mutual labels:  diagram
TikZ-diagrams
Diagrams I made using the excellent TikZ package for LaTeX
Stars: ✭ 24 (-57.89%)
Mutual labels:  diagram
glsp-server
Java-based server framework of the graphical language server platform
Stars: ✭ 25 (-56.14%)
Mutual labels:  diagram
bpmn
BPMN diagrams in R
Stars: ✭ 16 (-71.93%)
Mutual labels:  diagram
Mxgraph-EasyFlowEditor
基于mxGraph+vue设计的流程图编辑器
Stars: ✭ 73 (+28.07%)
Mutual labels:  diagram
pipelineRD
A chain of responsability pattern implementation in .NET that supports retry policy, sync and async steps, rollback, pipeline recovery by cache and visual documentation using diagrams.
Stars: ✭ 19 (-66.67%)
Mutual labels:  diagram
PlantUml-Language-Service
PlantUml Language Service extension for Visual Studio 2017 and 2019
Stars: ✭ 24 (-57.89%)
Mutual labels:  diagram
scdDiagram
smart substation connection and configuration software based on IEC 61850 protocal and SCD file. Email: [email protected]
Stars: ✭ 17 (-70.18%)
Mutual labels:  diagram
kibana diagram
Experimental Flow Diagram Vis for Kibana 6.x
Stars: ✭ 15 (-73.68%)
Mutual labels:  diagram
topology.js
A diagram visualization framework uses canvas and typescript. Developers are able to build topology, UML, diagram, architecture, mind, SCADA and so on.
Stars: ✭ 148 (+159.65%)
Mutual labels:  diagram

http://kevinpt.github.io/syntrax/_static/syntrax_icon.png

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:

http://kevinpt.github.io/syntrax/_static/json_number.png

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].