diff --git a/expr.c b/expr.c index f50a874f15f22dee521596b8d4bd4546f539563c..e56ed20e9654c91a5c9ef5da237579667051ba82 100644 --- a/expr.c +++ b/expr.c @@ -90,6 +90,7 @@ struct {char str[4]; int pr;} ops[] = { {"*", 13},{"/",13},{"%",13}, {"+",12},{"-",12}, {"<<",11},{">>>",11},{">>",11}, + {"<?",10},{">?",10}, {"<=>",9}, {"<=",8},{">=",8},{"<",8},{">",8}, {"==",7},{"!=",7}, @@ -104,6 +105,7 @@ enum op { op_mul,op_div,op_mod, op_plus,op_minus, op_lshift,op_urshift,op_rshift, + op_min,op_max, op_cmp, op_lteq,op_gteq,op_lt,op_gt, op_eq,op_neq, diff --git a/testscript b/testscript index 4f1552453c3dd6ed0409199147d99ecc21a7410b..4e262c1790f15b4ec5e521038eb220538d927fff 100644 --- a/testscript +++ b/testscript @@ -18,14 +18,14 @@ x=%x -10<<2, %x -10>>2, %x -10>>>2 x=%x 0xaa & 0x0f, %x 0xaa | 0x0f, %x 0xaa ^ 0x0f # $(x) should be: a, af, a5 -x=10<20 10<=20 10==20 10>=20 10>20 10<=>20 -# $(x) should be: 1 1 0 0 0 -1 +x=10<20 10<=20 10==20 10>=20 10>20 10<=>20 10<?20 10>?20 10?<20 10?>20 +# $(x) should be: 1 1 0 0 0 -1 10 20 1 0 -x=20<20 20<=20 20==20 20>=20 20>20 20<=>20 -# $(x) should be: 0 1 1 1 0 0 +x=20<20 20<=20 20==20 20>=20 20>20 20<=>20 20<?20 20>?20 20?<20 20?>20 +# $(x) should be: 0 1 1 1 0 0 20 20 1 0 -x=20<10 20<=10 20==10 20>=10 20>10 20<=>10 -# $(x) should be: 0 0 0 1 1 1 +x=20<10 20<=10 20==10 20>=10 20>10 20<=>10 20<?10 20>?10 20?<10 20?>10 +# $(x) should be: 0 0 0 1 1 1 10 20 1 0 x= (0|0)(0|1)(1|0)(1|1) (0&0)(0&1)(1&0)(1&1) (0^0)(0^1)(1^0)(1^1) # $(x) should be: 0111 0001 0110