class C004_ComplexExpressions {
    {
        int ex = 1 + 2 + 3 + 4 + 5 + 6;
        int brace1 =5+ ( 2+3);
        int brace2 = (5 + 2) * 3;
        int chained1 = 5+2 + 3;
        int chained2 = 5*2 + 3;
        int chained3 = 5 * - ( 2 + 3) + ~ 3 -(int)1.1;
        double doubleCast = (double )( int )1.1;
        int chainedAssign = chained1 = chained2 = chained3;
        int bracedAssign = 3 + ( chained1=5);
        int chainedCast = ~( int) 1.5;
        int bracedCast = ((Object) "foo") .  hashCode ();
        int chainedTernary = 1==2?10:2== 2 ?1:2;
        int bracedTernary = 5 + (1 == 1 ? (2 == 3 ? 5 : 7) : 8);
        int multipleAssignments=ex=brace1  =  brace2*=chained1+= 10;
        int postfixChained = ~brace1++;
        double postfixChained2 = (double) brace1++;
        int selfAssign = brace1 ;
    }
}