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;
    }
}