/* */ }
/* */
/* */ private Expr atPlusExpr(BinExpr expr)
/* */ throws CompileError
/* */ {
/* 345 */ ASTree left = expr.oprand1();
/* 346 */ ASTree right = expr.oprand2();
/* 347 */ if (right == null)
/* */ {
/* 350 */ left.accept(this);
/* 351 */ return null;
/* */ }
/* */
/* 354 */ if (isPlusExpr(left)) {
/* 355 */ Expr newExpr = atPlusExpr((BinExpr)left);
/* 356 */ if (newExpr != null) {
/* 357 */ right.accept(this);
/* 358 */ this.exprType = 307;
/* 359 */ this.arrayDim = 0;
/* 360 */ this.className = "java/lang/StringBuffer";
/* 361 */ return makeAppendCall(newExpr, right);
/* */ }
/* */ }
/* */ else {
/* 365 */ left.accept(this);
/* */ }
/* 367 */ int type1 = this.exprType;
/* 368 */ int dim1 = this.arrayDim;
/* 369 */ String cname = this.className;
/* 370 */ right.accept(this);
/* */
/* 372 */ if (isConstant(expr, 43, left, right)) {
/* 373 */ return null;
/* */ }
/* 375 */ if (((type1 == 307) && (dim1 == 0) && ("java/lang/String".equals(cname))) || ((this.exprType == 307) && (this.arrayDim == 0) && ("java/lang/String".equals(this.className))))
/* */ {
/* 378 */ ASTList sbufClass = ASTList.make(new Symbol("java"), new Symbol("lang"), new Symbol("StringBuffer"));
/* */
/* 380 */ ASTree e = new NewExpr(sbufClass, null);
/* 381 */ this.exprType = 307;
/* 382 */ this.arrayDim = 0;
/* 383 */ this.className = "java/lang/StringBuffer";
/* 384 */ return makeAppendCall(makeAppendCall(e, left), right);
/* */ }