Next: Bottom-Up Parsing
Up: No Title
Previous: Scanners and Parsers
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'.
Christoph Zenger
4/6/2000