Symbol Table Implementation

Symbol Table Implementation

Date Assigned: 1/12/00
Date due: 1/19/00
Points: 50 You are to implement the ST routines after you finish your design. In order to test your symbol table routines, write a driver that is able to read the datafile described in the design specification and then process that datafile one line at a time. Essentially you will be adding/updating your ST based on the information that is on the line in the datafile.

I will again run your driver program with the command stdriver datafile

As a refresher, the datafile looks like:

symbol value mode defbyset defbyentry

Each field is separated by exactly one space and rules for each field are as follows:

1) symbol - string up to 31 characters in length
2) value - signed integer value (although for this assignment, all values will be nonnegative)
3) mode - mode (absolute, relocatable, undefined external) of the symbol which is either: a, r, u
4) defbyset - a bool that is either True or False (1 or 0 in the file)
5) defbyentry - a bool that is either True or False (1 or 0 in the file)

Only valid combinations of fields 3-5 above must be accepted and this should be in the current design. As you process each line, print out the line of information and display what you did with it (e.g. added symbol to ST, updated symbol in ST, error - and why). Also, values can be specified in binary, octal, decimal, or hex so you will need to call FEvalNum for converting the value to an actual number. Once your driver is done reading and processing the datafile, print out the sorted ST.

Output for the sorted ST is to use a column format under the headings as follows:

Symbol Name                     Value    Mode    DefBySet    DefByEntry
-----------------------------------------------------------------------

Grading will be based on the Grading Policy from the course syllabus.

You must use makefiles for this assignment and Hungarian notation. Also, send me a copy of your entire project in tar format such that I can extract all files (at the same level) which constitute your ST routines, FEvalNum routines, and driver (including makefile), using the command:

tar xvf st.tar


© Douglas J. Ryan/ryandj@pacificu.edu