Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature request: add language from the "Railroad-diagram Generator" #48

Open
dolmen opened this issue Mar 28, 2021 · 1 comment
Open

Comments

@dolmen
Copy link

dolmen commented Mar 28, 2021

Add support for the language from the Railroad-diagram Generator as input.

Example:

Diagram(
  Optional('+', 'skip'),
  Choice(0,
    NonTerminal('name-start char'),
    NonTerminal('escape')),
  ZeroOrMore(
    Choice(0,
      NonTerminal('name char'),
      NonTerminal('escape'))))

Online:
https://tabatkins.github.io/railroad-diagrams/generator.html

Format documentation:
https://github.com/tabatkins/railroad-diagrams#components

@katef
Copy link
Owner

katef commented Apr 7, 2021

Hi! Thanks! This is interesting. kgt's input is usually BNF, which is supposed to be a semantic representation of a grammar. Tab's structure here is for presentational information. For example, it offers Stack() for vertically placed alts.

kgt has several stages internally. Relevant here are the AST for BNF, and then the RRD tree (which is presentational, although still abstracted from layout coordinates).

So we'd have two options for parsing this;

  • to disregard the presentational parts, and construct the BNF AST as if it were any other BNF input.
  • to construct the RRD node tree directly. although it doesn't currently offer a Stack() construct, so we'd still skip that.

Both could make sense.

https://github.com/katef/kgt/blob/main/src/ast.h
https://github.com/katef/kgt/blob/main/src/rrd/node.h

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants