• 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.