if (_value != null) return _value; if (_exp == null) return null;
if (_value != null) { return _value; }   if (_exp == null) { return null; }
    public Expression getCompareValue() {	if (_value != null) return _value;	if (_exp == null) return null;	if (_exp instanceof EqualityExpr) {	    EqualityExpr exp = (EqualityExpr)_exp;	    Expression left = exp.getLeft();	    Expression right = exp.getRight();	    Type tleft = left.getType();	    Type tright = right.getType();	    	    if (left instanceof CastExpr) left = ((CastExpr)left).getExpr();	    if (right instanceof CastExpr) right = ((CastExpr)right).getExpr();	    	    try {		if ((tleft == Type.String) && (!(left instanceof Step)))		    _value = exp.getLeft();		if (left instanceof VariableRefBase) 		    _value = new CastExpr(left, Type.String);		if (_value != null) return _value;	    }	    catch (TypeCheckError e) { }	    try {		if ((tright == Type.String) && (!(right instanceof Step)))		    _value = exp.getRight();		if (right instanceof VariableRefBase)		    _value = new CastExpr(right, Type.String);		if (_value != null) return _value;	    }	    catch (TypeCheckError e) { }	}	return null;    }