Parser Generators & Compiler Design
Use this site to learn about parsers and compiler design.
Tools hosted here graph non-deterministic finite automata (NFA) and deterministic finite automata (DFA) that correspond to the items derived from EBNF-specified grammars' production rules. The tools use algorithms (generally from The Dragon Book or Louden's Compiler Construction) on information embedded in the graph to construct tables. Those tables drive parsers. Those graphs and tables make up the bulk of compiler design courses' homework.
If you're working on commercial production code, consider something mature like ANTLR Parser Generator or Bison: the GNU Parser Generator. If you're looking to conveniently experiment with languages, with a tight feedback loop, this site and its tools hopefully won't steer you wrong.
Here are the parser generation tools available so far:
LL(1) Parser Generator
This is a top-down LL parser with a look-ahead of one character.
Available Functionality | Pending Functionality |
---|---|
|
|
LR(0) Parser Generator
This is an LR parser with no look-ahead.
Available Functionality | Pending Functionality |
---|---|
|
|
SLR(1) Parser Generation
This is a simplified LR parser with a look-ahead of one character.
Available Functionality | Pending Functionality |
---|---|
|
|
Coming Soon?
Bottom Up Parser Generation Tools
- LALR
- LR(1)
Top-Down Parser Generators
- LL(k) Recursive-Descent
- Earley Parsing
Probably never coming
- Statistical Parsers (e.g. Viterbi)