diff options
author | Etienne Kneuss <colder@php.net> | 2010-07-10 11:10:38 +0000 |
---|---|---|
committer | Etienne Kneuss <colder@php.net> | 2010-07-10 11:10:38 +0000 |
commit | 79f3996bfc48642b06d3a9dae55685ebac912c7e (patch) | |
tree | c4ace3ede4aeeb8a3a742fa3c5985cf31b7e9b72 | |
parent | 13d45760b397283a99af817e829790a547f2cfcc (diff) | |
download | php-git-79f3996bfc48642b06d3a9dae55685ebac912c7e.tar.gz |
Fix lemon's return value and uncomment unaries/shifts
-rw-r--r-- | Makefile.frag | 2 | ||||
-rw-r--r-- | Zend/Makefile.am | 2 | ||||
-rw-r--r-- | Zend/zend_language_parser.y | 8 |
3 files changed, 6 insertions, 6 deletions
diff --git a/Makefile.frag b/Makefile.frag index 8d497968c0..9ac0c2c6c3 100644 --- a/Makefile.frag +++ b/Makefile.frag @@ -11,7 +11,7 @@ $(srcdir)/zend_language_scanner.c: $(srcdir)/zend_language_scanner.l $(srcdir)/zend_language_parser.h: $(srcdir)/zend_language_parser.c $(srcdir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y - $(LEMON) $(LEMON_FLAGS) $(srcdir)/zend_language_parser.y || test $$? -eq 25 + $(LEMON) $(LEMON_FLAGS) $(srcdir)/zend_language_parser.y || test $$? -eq 2 $(srcdir)/zend_ini_parser.h: $(srcdir)/zend_ini_parser.c $(srcdir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y diff --git a/Zend/Makefile.am b/Zend/Makefile.am index aa5c6aadf8..d3c9155d13 100644 --- a/Zend/Makefile.am +++ b/Zend/Makefile.am @@ -35,7 +35,7 @@ zend_language_scanner.c: $(srcdir)/zend_language_scanner.l zend_language_parser.h: zend_language_parser.c zend_language_parser.c: $(srcdir)/zend_language_parser.y - $(LEMON) $(LEMON_FLAGS) $(srcdir)/zend_language_parser.y || test $$? -eq 25 + $(LEMON) $(LEMON_FLAGS) $(srcdir)/zend_language_parser.y || test $$? -eq 2 # INI parser/scanner rules diff --git a/Zend/zend_language_parser.y b/Zend/zend_language_parser.y index 97608c9c3b..933a5f469e 100644 --- a/Zend/zend_language_parser.y +++ b/Zend/zend_language_parser.y @@ -1084,10 +1084,10 @@ expr_without_variable(A) ::= expr(B) MINUS expr(C). { zend_do_binary_op(ZEND_SU expr_without_variable(A) ::= expr(B) MULT expr(C). { zend_do_binary_op(ZEND_MUL, &A, &B, &C TSRMLS_CC); } expr_without_variable(A) ::= expr(B) DIV expr(C). { zend_do_binary_op(ZEND_DIV, &A, &B, &C TSRMLS_CC); } expr_without_variable(A) ::= expr(B) MOD expr(C). { zend_do_binary_op(ZEND_MOD, &A, &B, &C TSRMLS_CC); } -//expr_without_variable(A) ::= expr(B) SL expr(C). { zend_do_binary_op(ZEND_SL, &A, &B, &C TSRMLS_CC); } -//expr_without_variable(A) ::= expr(B) SR expr(C). { zend_do_binary_op(ZEND_SR, &A, &B, &C TSRMLS_CC); } -//expr_without_variable(A) ::= PLUS(B) expr(C). [INC] { ZVAL_LONG(&B.u.constant, 0); if (C.op_type == IS_CONST) { add_function(&C.u.constant, &B.u.constant, &C.u.constant TSRMLS_CC); A = C; } else { B.op_type = IS_CONST; INIT_PZVAL(&B.u.constant); zend_do_binary_op(ZEND_ADD, &A, &B, &C TSRMLS_CC); } } -//expr_without_variable(A) ::= MINUS(B) expr(C). [INC] { ZVAL_LONG(&B.u.constant, 0); if (C.op_type == IS_CONST) { sub_function(&C.u.constant, &B.u.constant, &C.u.constant TSRMLS_CC); A = C; } else { B.op_type = IS_CONST; INIT_PZVAL(&B.u.constant); zend_do_binary_op(ZEND_SUB, &A, &B, &C TSRMLS_CC); } } +expr_without_variable(A) ::= expr(B) SL expr(C). { zend_do_binary_op(ZEND_SL, &A, &B, &C TSRMLS_CC); } +expr_without_variable(A) ::= expr(B) SR expr(C). { zend_do_binary_op(ZEND_SR, &A, &B, &C TSRMLS_CC); } +expr_without_variable(A) ::= PLUS(B) expr(C). [INC] { ZVAL_LONG(&B.u.constant, 0); if (C.op_type == IS_CONST) { add_function(&C.u.constant, &B.u.constant, &C.u.constant TSRMLS_CC); A = C; } else { B.op_type = IS_CONST; INIT_PZVAL(&B.u.constant); zend_do_binary_op(ZEND_ADD, &A, &B, &C TSRMLS_CC); } } +expr_without_variable(A) ::= MINUS(B) expr(C). [INC] { ZVAL_LONG(&B.u.constant, 0); if (C.op_type == IS_CONST) { sub_function(&C.u.constant, &B.u.constant, &C.u.constant TSRMLS_CC); A = C; } else { B.op_type = IS_CONST; INIT_PZVAL(&B.u.constant); zend_do_binary_op(ZEND_SUB, &A, &B, &C TSRMLS_CC); } } expr_without_variable(A) ::= BOOL_NOT expr(B). { zend_do_unary_op(ZEND_BOOL_NOT, &A, &B TSRMLS_CC); } expr_without_variable(A) ::= BW_NOT expr(B). { zend_do_unary_op(ZEND_BW_NOT, &A, &B TSRMLS_CC); } expr_without_variable(A) ::= expr(B) IS_IDENTICAL expr(C). { zend_do_binary_op(ZEND_IS_IDENTICAL, &A, &B, &C TSRMLS_CC); } |