Railroad track syntax diagrams

Paddy paddy3118 at netscape.net
Tue Aug 1 15:35:20 EDT 2006


Paddy wrote:
> Paul McGuire wrote:
> > Back in the mid-90's, Kees Blom generated a set of railroad syntax diagrams
> > for Python
> > (http://python.project.cwi.nl/search/hypermail/python-1994q3/0286.html).
> > This pre-dates any Python awareness on my part, but I'm sure this would have
> > been version 1.3 or something.
> >
> > For those who are not familiar with railroad syntax diagrams, they show a
> > grammar's syntax using arrows and blocks, instead of BNF - here's an excerpt
> > from the Python grammar, plus "ASCII-art" diagrams - must be viewed in
> > non-prop font to be appreciated:
> >
> > suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
> >
> > ----+--> simple_stmt --------------------------------->\
> >     |                                                   |
> >     \--> NEWLINE --> INDENT --+--> stmt --+--> DEDENT --+-->
> >                              /            |
> >                              \----<-------/
> >
> > if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]
> >
> >
> > --> 'if' -> test --> ':' --> suite -->+
> >                                       |
> >       ------------<-------------------+
> >      /
> >     +
> >     | ------------<------------------------
> >     |/                                     \
> >     +                                      |
> >     |                                      |
> >     +-> 'elif' -> test -> ':' --> suite -->/
> >     |
> >     |
> >     +-> 'else' -> ':' --> suite -->
> >     |                              \
> >     \---------------->--------------+------->
> >
> >
> > I was recently contacted by a volunteer in Banda Aceh teaching tsunami
> > refugees how to program in Python (new job skills and all that), and he
> > asked if there were any updated versions of these diagrams, or if it would
> > be difficult to generate them anew.   It seems that railroad diagrams are
> > nice and unambiguous for his students to use, in the face of verbal language
> > barriers.
> >
> > I have written a pyparsing parser that reads the grammar file that ships
> > with Python - the parser is included in the latest release of pyparsing, and
> > also online at the pyparsing.wikispaces.com - but I have no graph-generating
> > tools to go the next step: generation of the railroad diagrams (in something
> > more legible/appealing than ASCII-art!).
> >
> > Anyone interested in helping complete this last step?
> >
> > Thanks,
> > -- Paul
> I googlled and got these:
>   http://www.informatik.uni-freiburg.de/~thiemann/haskell/ebnf2ps/
>   http://www.antlr.org/share/1107033888258/SDG2-1.5.zip
>
> - Paddy.

And this suite includes a digram generator:

http://www.research.philips.com/technologies/syst_softw/elegant/index.html

- Pad.




More information about the Python-list mailing list