NOTE THAT SOME IMPROVEMENTS TO THE POJECT CODE HAVE BEEN MADE SINCE THE COURSE WAS TAUGHT. PAY CAREFUL ATTENTION TO THIS README FILE. The files following files should appear in this directory: c.h - The .h file for c.y (i.e., y.tab.c [syntactical analyzer]). c.y - Input to yacc (productions and main). code.c - Initial interpreter for assembly language. new_code.c - Interpreter for assembly language after you implement declarations (i.e., rename code.c when declarations are implemented). init.c - Keyword initializations and initial symbol table entries. input - Input datafile (seldom used but must be present to execute compiled program. lex.l - Input to lex (regular expressions). makefile - Invoked by make. Performs lex, yacc, and compilation of separate modules into one executable called 'mycc'. make clean1 removes obj files, core, .h files, y.tab.c, y.tab.h, and x.tab.h make clean2 removes assy, output, and mycc math.c - Source code for built-in functions symbol.c - Symbol table routine source code. t.c - Sample Chico State Mini C Compiler (CSMCC) program. Quick Test of directory contents: Type the following at the command prompt (shown as $ below): $ make - lex, yacc, and compilation will take place. the compiler will encounter one shift reduce error caused by the if statement dangling else. When complete, the executable 'mycc' should appear in your directory. Also, since since you generated a shift reduce conflict the file 'y.output' will appear in your directory. $ mycc t1.c - Compiles the CSMCC program t1.c. The compilation listing and program output should appear on the screen, and the files 'output' (program output) and 'assy' (program assembly language instructions) should appear in your directory. Now compile t2.c and t3.c. $ make clean1 - Removes less important temporary files. $ make clean2 - Removes more important temporary files. Your directory is now back to the way it started.