x = x + y - (y = x);
to complete this expression right side will be evaluated first so go to right side
x+y-(y=x) so it will be break down as
t1= x+y = -5+8 =3 then
t2= (y=x) so y= -5 now
t3 = t1- t2 = 3-(-5) = 8.
yes i agree precedence rule says bracket first but for that you have to reach to bracket , you can't directly jump to bracket na.
compiler will scan left to right so while going right in between if bracket there and if it is needed to be done then only bracket will be executed.
i hope you get it.