- You may assume that the user will only type legal BEL++
statements (i.e., you will not need to do any syntax checking)
- You should assume that there will be a single BEL++ statement
per line
- You may also assume that the first character in each line will
represent the command and that all other arguments will be separated
by a single space if it makes your life easier
- You may assume that a fixed-size hash table will be sufficient
as long as you pick a reasonable default size (i.e., no need to resize
the hash table and rehash)
- You may use Weiss' hash table code if you like (note that he
provides implementations that do separate chaining and quadratic
probing). You may also write your own hash table code or use a hash
table implementation from some other source, as long as your use is
consistent with our definition of hash tables in class.
- As with any hash table, you will have to assume that
collisions can and will occur (however, Weiss implements separate
chaining and open addressing with quadratic probing, so this shouldn't
add any work).
- You may assume that there are no recursive variable
definitions (e.g.,
a
will not be defined in terms
of itself. Similarly, if a
is defined in terms of
b
, b
will not be defined in terms of
a
)
- Note that to avoid typing in commands to your interpreter
every time you run it, you can pipe in a text file for the program to
use in place of stdin/cin. This is done from the command line
by typing:
hw4.exe < testinput.bel
where testinput.bel is simply a text file (written in notepad, e.g.)
containing BEL++ statements and hw4.exe is set up to read BEL++
statements from stdin/cin. If anyone knows how to do this
redirection from within the MSVC++ environment (as opposed to running
in an MS-DOS window by hand), please let me know, or mail the class
list.