colder Fri, 09 Jul 2010 09:43:07 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=301113
Log:
Fix some stuff
Changed paths:
U php/php-src/branches/LEMON/Zend/zend_language_parser.y
Modified: php/php-src/branches/LEMON/Zend/zend_language_parser.y
===================================================================
--- php/php-src/branches/LEMON/Zend/zend_language_parser.y 2010-07-09
09:38:38 UTC (rev 301112)
+++ php/php-src/branches/LEMON/Zend/zend_language_parser.y 2010-07-09
09:43:07 UTC (rev 301113)
@@ -73,6 +73,8 @@
%type unticked_class_declaration_statement_i {znode_array}
%type unticked_class_declaration_statement_ii {znode_array}
%type while_cond {znode_array}
+%type do_statement {znode_array}
+%type for_cont {znode_array}
/* TOKENS TRANSLATION:
@@ -299,8 +301,8 @@
if_alt_cond(A) ::= IF LPAREN expr(B) RPAREN(C) COLON. { zend_do_if_cond(&B,
&C TSRMLS_CC); A = C; }
if_alt_cond_then ::= if_alt_cond(B) inner_statement_list. {
zend_do_if_after_statement(&B, 1 TSRMLS_CC); }
-while_begin(A) ::= WHILE(B) LPAREN. { B.u.op.opline_num =
get_next_op_number(CG(active_op_array)); A = B }
-while_cond(A) ::= while_begin(B) expr(C) RPAREN(D). { zend_do_while_cond(&C,
&D TSRMLS_CC); A[0] = B; A[1] = D }
+while_begin(A) ::= WHILE(B) LPAREN. { B.u.op.opline_num =
get_next_op_number(CG(active_op_array)); A = B; }
+while_cond(A) ::= while_begin(B) expr(C) RPAREN(D). { zend_do_while_cond(&C,
&D TSRMLS_CC); A[0] = B; A[1] = D; }
unticked_statement ::= while_cond(B) while_statement. {
zend_do_while_end(&B[0], &B[1] TSRMLS_CC); }
@@ -348,13 +350,13 @@
foreach_i(A) ::= foreach_ii(B) foreach_variable(C) foreach_optional_arg(D)
RPAREN. { zend_do_foreach_cont(&B[0], &B[1], &B[2], &C, &D TSRMLS_CC); A[0] =
B[0]; A[1] = B[2]; }
foreach ::= foreach_i(B) foreach_statement. { zend_do_foreach_end(&B[0],
&B[1] TSRMLS_CC); }
-foreach2_ii(A) ::= FOREACH(B) LPAREN(C) expr_without_variable(D) AS(E). {
zend_do_foreach_begin(&A, &B, &C, &D, 0 TSRMLS_CC); A[0] = B; A[1] = C; A[2] =
E; }
+foreach2_ii(A) ::= FOREACH(B) LPAREN(C) expr_without_variable(D) AS(E). {
zend_do_foreach_begin(&B, &C, &D, &E, 0 TSRMLS_CC); A[0] = B; A[1] = C; A[2] =
E; }
foreach2_i(A) ::= foreach2_ii(B) variable(C) foreach_optional_arg(D) RPAREN.
{ zend_check_writable_variable(&C); zend_do_foreach_cont(&B[0], &B[1], &B[2],
&C, &D TSRMLS_CC); A[0] = B[0]; A[1] = B[2]; }
foreach2 ::= foreach2_i(B) foreach_statement. {
zend_do_foreach_end(&B[0], &B[1] TSRMLS_CC); }
try_catch_v(A) ::= TRY(B). { zend_do_try(&B TSRMLS_CC); A = B; }
try_catch_iv(A) ::= try_catch_v(B) LBRACE inner_statement_list RBRACE CATCH
LPAREN(C). { zend_initialize_try_catch_element(&B TSRMLS_CC); A[0] = B; A[1] =
C; }
-try_catch_iii(A) ::= try_catch_iv(B) fully_qualified_class_name(C). {
zend_do_first_catch(&B TSRMLS_CC); A[0] = B[0]; A[1] = B[1]; A[2] = C; }
+try_catch_iii(A) ::= try_catch_iv(B) fully_qualified_class_name(C). {
zend_do_first_catch(&B[1] TSRMLS_CC); A[0] = B[0]; A[1] = B[1]; A[2] = C; }
try_catch_ii(A) ::= try_catch_iii(B) VARIABLE(C) RPAREN. {
zend_do_begin_catch(&B[0], &B[2], &C, &B[1] TSRMLS_CC); A = B[0]; }
try_catch_i(A) ::= try_catch_ii(B) LBRACE inner_statement_list RBRACE. {
zend_do_end_catch(&B TSRMLS_CC); A = B; }
try_catch ::= try_catch_i(B) additional_catches(C). {
zend_do_mark_last_catch(&B, &C TSRMLS_CC); }
@@ -1412,9 +1414,16 @@
non_empty_static_array_pair_list(A) ::= non_empty_static_array_pair_list COMMA
static_scalar(B) DOUBLE_ARROW static_scalar(C). {
zend_do_add_static_array_element(&A, &B, &C); }
non_empty_static_array_pair_list(A) ::= non_empty_static_array_pair_list COMMA
static_scalar(B). { zend_do_add_static_array_element(&A, NULL, &B); }
-non_empty_static_array_pair_list(A) ::= static_scalar(B) DOUBLE_ARROW
static_scalar(C). { A.op_type = IS_CONST; INIT_PZVAL(&A.u.constant);
array_init(&A.u.constant); zend_do_add_static_array_element(&A, &B, &C); }
-non_empty_static_array_pair_list(A) ::= static_scalar(B). { A.op_type =
IS_CONST; INIT_PZVAL(&A.u.constant); array_init(&A.u.constant);
zend_do_add_static_array_element(&A, NULL, &B); }
+non_empty_static_array_pair_list(A) ::= static_scalar(B) DOUBLE_ARROW
static_scalar(C). { A.op_type = IS_CONST;
+
INIT_PZVAL(&A.u.constant);
+
array_init(&A.u.constant);
+
zend_do_add_static_array_element(&A, &B, &C); }
+non_empty_static_array_pair_list(A) ::= static_scalar(B). { A.op_type =
IS_CONST;
+
INIT_PZVAL(&A.u.constant);
+
array_init(&A.u.constant);
+
zend_do_add_static_array_element(&A, NULL, &B); }
+
//expr:
// r_variable { $$ = $1; }
// | expr_without_variable { $$ = $1; }
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php