Hey all,
I've just checked in a re-organized expression parser that unifies conditional and normal expressions. Rather than trying to explain it in works, it basically means that this now works:
int x = (1 < 2 && 3 >= 4) || 12 - 11;
if(x && (!2 || strcmp('hi', 'yo') == 0)) {
//...
}
One problem with this is that verge is still treating = and == as the same, so the following:
int y = x = z;
really means
int y := (x == z);
which is probably not what you meant. I think that's the only gotcha for now. Let me know if you find any code that used to work that doesn't now.