docs: private Expression concatOp(Data data) throws TemplateException {
  	Expression expr = plusMinusOp(data);
  
  	while (data.srcCode.isCurrent('&') && !data.srcCode.isCurrent("&&")) {
  	    data.srcCode.next();
  
  	    // &=
  	    if (data.srcCode.isCurrent('=') && expr instanceof Variable) {
  		data.srcCode.next();
  		comments(data);
  		Expression value = assignOp(data);
  
  		expr = data.factory.opUnary((Variable) expr, value, Factory.OP_UNARY_PRE, Factory.OP_UNARY_CONCAT, expr.getStart(), data.srcCode.getPosition());
  
  		// ExprString res = OpString.toExprString(expr, right);
  		// expr=new OpVariable((Variable)expr,res,data.cfml.getPosition());
  	    }
  	    else {
  		comments(data);
  		expr = data.factory.opString(expr, plusMinusOp(data));
  	    }
  
  	}
  	return expr;
      }