Hi dude bhai,

First of all thanx for putting up such a beautiful problem for me.
Things started clicking very fast as soon as you explained the actual funda.

The package is called dude.

interfaces
**********
1. CodeGenerator				(implemented by Node and  							ExpressionTree)
		String getC_Declaration()
		String getC_Assignment() 
	
2. NodeTypes				(implemented by Node)
		integer constants to indicate 4 types of nodes

3. IntegerOperators			(implemented by Operand)
		string constansts to indicate symbols of diff integer operators


classes
*******

1. Node is an abstract class 

2,3 Operand and Operator are two direct subclasses of node
of which Operator is again abstract

4,5,6 UnaryOperator, BinaryOperator and TernaryOperator are concrete subclasses of Operator class with 1, 2 and 3 child node references respectively, one for each argument.

7. ExpressionTree class 

contains the main method, with a code that shows how to build the expression tree using the limited methods provided by the descendents of the node classes.

Left Overs & Scope for improvement
**********************************

1.   The main method prints the c-code on the screen, add a method to expression        tree to put the string into a .c file.
2.   You can add more methods for building the expression tree in more convenient 	     ways and may be even provide a gui if you need it.
3.   Some good exception classes can be defined and used.
4.   The code works only for integers, enhance it to support other types.
5.   The leaf nodes are needlessly declaring new variable and making trivial            assignments, this can be removed. (or may be i will remove it right away).


A request
*********

Please examine the design of the class diagram and the package in general. Also, see if methods/fields are having good suggestive names and are not incongruous in their respective classes. Also, examine the readability of the code. Reply in the form of a critical evaluation.

Hope this helps
Shivkumar