summaryrefslogtreecommitdiff
path: root/main/configuration-parser.y
diff options
context:
space:
mode:
authorZeev Suraski <zeev@php.net>2000-06-26 18:15:49 +0000
committerZeev Suraski <zeev@php.net>2000-06-26 18:15:49 +0000
commitcacbf1ea28db39a95ba515f3f3ee70b0f28b1197 (patch)
tree538f96bf749a6b4dab53bcedfe29580c94aa16ef /main/configuration-parser.y
parent8e45536cf4b3627c6ad0af7a611eb689f0f60ea5 (diff)
downloadphp-git-cacbf1ea28db39a95ba515f3f3ee70b0f28b1197.tar.gz
Support boolean NOT in the php.ini processor
Diffstat (limited to 'main/configuration-parser.y')
-rw-r--r--main/configuration-parser.y6
1 files changed, 5 insertions, 1 deletions
diff --git a/main/configuration-parser.y b/main/configuration-parser.y
index 0e8b57bced..f36327f29c 100644
--- a/main/configuration-parser.y
+++ b/main/configuration-parser.y
@@ -384,6 +384,9 @@ void do_cfg_op(char type, zval *result, zval *op1, zval *op2)
case '~':
i_result = ~i_op1;
break;
+ case '!':
+ i_result = !i_op1;
+ break;
default:
i_result = 0;
break;
@@ -429,7 +432,7 @@ void do_cfg_get_constant(zval *result, zval *name)
%token T_ZEND_EXTENSION_DEBUG
%token T_ZEND_EXTENSION_DEBUG_TS
%left '|' '&'
-%right '~'
+%right '~' '!'
%%
@@ -568,6 +571,7 @@ expr:
| expr '|' expr { do_cfg_op('|', &$$, &$1, &$3); }
| expr '&' expr { do_cfg_op('&', &$$, &$1, &$3); }
| '~' expr { do_cfg_op('~', &$$, &$2, NULL); }
+ | '!' expr { do_cfg_op('!', &$$, &$2, NULL); }
| '(' expr ')' { $$ = $2; }
;