Quickstart¶
Installation¶
Install syntax-diagrams
using Pip:
$ pip install syntax-diagrams
Describing diagrams¶
Describe a syntax diagram using constructors or YAML:
from syntax_diagrams import *
diagram = sequence(
choice(
terminal("lexer"),
skip(),
terminal("parser"),
),
terminal("grammar"),
non_terminal("identifier"),
terminal(";"),
)
import yaml
from syntax_diagrams import *
diagram = yaml.safe_load("""
- choice:
- "lexer"
-
- "parser"
default: 1
- grammar
- non_terminal: "identifier"
- ";"
""")
Rendering diagrams¶
Render the diagram using render_svg
or render_text
:
svg = render_svg(diagram)
Customize rendering by providing SvgRenderSettings
or TextRenderSettings
:
svg = render_svg(
diagram,
max_width=500,
settings=SvgRenderSettings(
arrow_style=ArrowStyle.TRIANGLE,
css_class="my-diagram",
),
)
Use online editor to play with diagram descriptions and settings.