+ case TOK_CAT:
+ if(BINARY(t)) {
+ genBinOp(OP_CAT, p, t); // string concatenation
+ } else if(RIGHT(t) && RIGHT(t)->type == TOK_LITERAL && !RIGHT(t)->str) {
+ RIGHT(t)->num = ~(int)RIGHT(t)->num; // Pre-negate constants
+ genScalarConstant(p, RIGHT(t));
+ } else {
+ genExpr(p, RIGHT(t)); // unary, bitwise negation
+ emit(p, OP_BIT_NEG);
+ }
+ break;
+ case TOK_BIT_NEG:
+ genExpr(p, RIGHT(t)); // unary, bitwise negation (see also TOK_CAT!)
+ emit(p, OP_BIT_NEG);
+ break;