@@ -232,6 +232,16 @@ static void cPreUnary() {
cPreIncrement();
} else if(cConsumeTokenIf(T_DECREMENT)) {
cPreDecrement();
+ } else if(cConsumeTokenIf(T_NOT)) {
+ int counter = 1;
+ while(cConsumeTokenIf(T_NOT)) {
+ counter++;
+ }
+ cPrimary();
+ cAddOperation(OP_NOT);
+ if((counter & 1) == 0) {
} else {
cPrimary();
}
@@ -0,0 +1,6 @@
+print !true;
+print !false;
+print !!true;
+print !!false;
+print !!!true;
+print !!!false;
+false
+true