Recursive-Descent Parser Generator

Supervisor: David A. Watt

Abstract

Given a context-free grammar, a recursive-descent parser can be constructed in a few easy steps: (1) convert the grammar from BNF to EBNF; (2) check that the EBNF grammar is suitable; (3) transcribe the EBNF grammar into parsing procedures. These steps are largely clerical, and computer assistance is both feasible and desirable.

The goal of this project is to build a parser generator that provides such assistance. In step 1 the parser generator should assist the user by responding to instructions such as "left-factorise production rules 21 and 22" or "eliminate left recursion in production rules 13 and 14". Steps 2 and 3 of the parser generator should be completely automated.

The parser generator can be implemented on any platform and in any suitable programming language. It must, however, be portable.

Resources

Hardware: any workstation.

Software: a suitable high-level language such as Pascal, Ada, C, or Java.