Given development of a lexical analyzer for a language that is described by some grammar , the goal of the task is to develop parser (syntax analyzer) for this language.
TASKS:
Before coding
1. Eliminate left recursion and common left prefixes in the given grammar.
2. For the obtained grammar, perform calculation of attributes Nullable, First and
Follow for each of the grammar's variables.
This information is needed for:
- Writing code of parser's functions
- Implementation of recovery from syntax errors in these functions.
Coding
3. Implement service functions:
next_token()
back_token()
match()
4. Implement parser that performs Recursive Descent syntax analysis.
- All functions that implement the parser (one function for every variable in the grammar) have to be placed in a separate file
- Activation of parser: done in function main in the file with FLEX definitions
5. Error handling:
- Each time the parser gets an unexpected token, it should send an appropriate error message, saying:
- what was the expected token
- what is the actual token
- in which line the error was found (so that the user can easily localize the place in input where the error occurs).
- In addition, parser should perform a recovery and continue
syntax analysis. Implement the recovery policy discussed in the course.
6. Output of the parser is a report that contains:
- Sequence of derivation rules in G used during syntax analysis of the input. Each
used derivation rule is reported in a readable form, exactly as it appears in the
grammar.
- Error messages.
All outputs produced during the execution should be recorded in an output file.
Hello. How are you today.
I have read and understood this task.
I have a lots of experience and very good knowledge of Data structures, Algorithms Design, Computer Architecture.
And I'm expert in C/C++, Flex etc.
I'm interested in this project.
I'll wait for your good reply.
Thanks.