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