$29
Your project is to use the grammar definition in the appendix
of your text to guide the construction of a recursive descent parser.
The parser should follow the grammar as described in A.2 page 492.
Upon execution, your project should report
ACCEPT
or
REJECT
exactly. Failure to print ACCEPT or REJECT appropriately will
result penalty for the test file.
Appropriate documentation as described in the Syllabus should
be included. A shar file, including all files necessary,
(makefile, source files, test files, documentation file
(p2.txt in ascii format), and any other files) should be submitted
by the deadline using turnin as follows:
turnin fn ree4620_2
By my typing make after unsharing your file I should see an
executable called p2 (if you did your project in C) that will
perform the syntax analysis. The analyzer will be invoked with:
p2 test_fn
where p2 is the executable resulting from the make command
(if done in C or C++) or is a script that executes your project (if
done in anyother language) and test_fn is the test filename upon
which parsing is to be done. You must supply a makefile for any
language. If your project is written in a pure interpreter (python,
ruby, perl, etc.), provide a makefile and indicate such.
(that is, print "No makefile necessary" from your makefile).
Note that turnin will report the 2 day late date, if the project
is submitted on this date a penalty will be assessed.
Thus, the makefile might be (as needed for python):
-------------------------------------------------
all:
@echo "no makefile necessary, project in python"
-------------------------------------------------
the p1 script would then be:
-------------------------------------------------
#!/bin/bash
python myprj.py $1
-------------------------------------------------
The shar file can be created as follows:
shar makefile p1 myprj.py p2.txt > fn
You should not shar a directory, ie when I unshar your project
a new subdirectory should not be created.
You should test the integrity of your shar by copying it to a
temporary directory, unsharing, make, and execute to see that
all files are present and that the project works
appropriately.
Note: you may have an additional project assigned before this one is
due.
You must enhance your symbol table in preparation for the semantic
analysis project (Project 3). You do not need to print the table.
You do not need to do error recovery, upon detection of the error,
simply report such and stop the program.