System.out.println("  visiting JAddExpression(" + oper + ")");
LinearPrinter.println("  visiting JAddExpression(" + oper + ")");
    public Object visitBinaryExpression(JBinaryExpression self,						  String oper,						  JExpression left,						  JExpression right) {	// for some reason, JAddExpressions implement all of + - * / statements	// and I can't seem to figure out where the constants to recognize the	// operators are. Therefore, I am going to hard code in the strings. Sorry about that.	if (!(self instanceof JAddExpression)) {	    return null;	}	// if we are computing an additon or subtraction, we are all set, otherwise	// we are done	if (!(oper.equals("+") || oper.equals("-"))) {	    System.out.println("  can't process " + oper + " linearly");	    return null;	}	System.out.println("  visiting JAddExpression(" + oper + ")");		// first of all, try and figure out if left and right sub expression can	// be represented in linear form.	LinearForm leftLinearForm  = (LinearForm)left.accept(this);	LinearForm rightLinearForm = (LinearForm)right.accept(this);	// if both the left and right are non null, we are golden and can combine these two,	// otherwise give up.	if ((leftLinearForm == null) || (rightLinearForm == null)) {	    return null;	}	// if the operator is subtraction, negate the right expression	if (oper.equals("-")) {	    leftLinearForm = leftLinearForm.negate();	}	// now, add the two forms together and return the resulut	LinearForm combinedLinearForm = leftLinearForm.plus(rightLinearForm);	    	return combinedLinearForm;    }