Plan of Attack  (two numbered items per week)		Version 13

Report due after first week (items 0 and 1) and then every two
weeks thereafter.  Turn in a report every two weeks, not when you have finished four items.  
This is important.  I need to track your progress.

	0.  Make sure you can compile and run (pass test0)
	1.  Add module header syntax for a module sequence  (pass test 1_1, 
		1_2) -- note there will be errors. This is expected 
		and will be corrected  later.
 first report
	2.  Add the additional relational operations. 
	3.  Add the Boolean type, allow declarations of Booleans. 
	4.* Add constant declarations. Add the modulo operator. Constant folding.
	5.  Add do statement. 
	    Add and, or, operators. 

	6.  Fix scanner identifier problems (multiple underscores).  
	7.* Add string constants. 		
	8.  Add typedef. 
	9.* Add range variables and forall.
 
	10.* Implement semantic error recovery for expression type errors. 
	11.* Add arrays. Check multiple dimension arrays and bounds checking 
	12.* Add semantics of module sequences, exports, qualified name
		references. 
	13.* Tuple component extraction and the @ operator (test13) 
			
	14.** Add simple recursive procedures to tuples and procedure call.
	15.  Check local declarations and scoping of names.
	16.  Check procedure parameters. Check array parameters.
	17.  Check nesting of procedures.

	18.* Compile "this" and the @ operator
	19.  Nested tuples -- accessing fields. 
	20.  Check deep nesting and semantics. 

This makes 21 items = 10.5 weeks.  Allow a bit longer. 
Items marked with a * are harder. (First 12 items are approx. half the work.)

Tests are numbered according to the point. Pass all corresponding tests. 

Don't forget to check earlier tests as you advance.  Make sure that you haven't broken anything 
as you go.  You may also want to devise other tests than the ones in the tests directory.  
   
Note:  If you don't implement some features, (strings...) you may need to modify later tests 
so that they may be run.  Be sure to note the changes in your reports. 

Be sure you back up your work and archive it at least every other week.  Virus attacks, 
disk crashes, etc. are not a valid reason for not turning in your work.   