Converting EBNF to BNF

See this page.đź•— It contains instructions for each production that needs to be converted:

From EBNF to BNF


For building parsers (especially bottom-up) a BNF grammar is often better, than EBNF. But it’s easy to convert an EBNF Grammar to BNF:

  • Convert every repetition { E } to a fresh non-terminal X and add X = ε | X E.
  • Convert every option [ E ] to a fresh non-terminal X and add X = ε | E. (We can convert X = A [ E ] B. to X = A E B | A B.)
  • Convert every group ( E ) to a fresh non-terminal X and add X = E.
  • We can even do away with alternatives by having several productions with the same non-terminal. X = E | E'. becomes X = E. X = E'.

2 thoughts on “Converting EBNF to BNF”

  1. whoah this blog is wonderful i really like reading your articles. Keep up the great paintings! You realize, a lot of people are hunting round for this info, you could help them greatly.

    Reply

Leave a Comment