diff --git a/parse.c b/parse.c index 09c14b4..8ba13f7 100644 --- a/parse.c +++ b/parse.c @@ -3746,6 +3746,11 @@ static void ConstExprFactor(void) ConstExprFactor(); SendExprCommand(PCD_NEGATELOGICAL); break; + case TK_TILDE: + TK_NextToken(); + ConstExprFactor(); + SendExprCommand(PCD_NEGATEBINARY); + break; default: ERR_Error(ERR_BAD_CONST_EXPR, YES); PushExStk(0); @@ -3842,6 +3847,9 @@ static void SendExprCommand(pcd_t pcd) case PCD_NEGATELOGICAL: PushExStk(!PopExStk()); break; + case PCD_NEGATEBINARY: + PushExStk(~PopExStk()); + break; case PCD_LSHIFT: operand2 = PopExStk(); PushExStk(PopExStk()<