[PHP-CVS] svn: /php/php-src/branches/LEMON/Zend/ zend_compile.c zend_ini_parser.y zend_language_parser.y

2010-07-20 Thread Felipe Pena
felipe   Tue, 20 Jul 2010 17:22:51 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301423

Log:
- Reverted mem alloc function change
- Fixed lineno on method declarations

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c
U   php/php-src/branches/LEMON/Zend/zend_ini_parser.y
U   php/php-src/branches/LEMON/Zend/zend_language_parser.y

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-20 15:38:17 UTC 
(rev 301422)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-20 17:22:51 UTC 
(rev 301423)
@@ -6114,8 +6114,8 @@
int token, halting = 0, old_exit_status;
void *pParser;

-   if ((pParser = zend_lang_parseAlloc(_emalloc)) == NULL) {
-   zend_lang_parseFree(pParser, _efree);
+   if ((pParser = zend_lang_parseAlloc(malloc)) == NULL) {
+   zend_lang_parseFree(pParser, free);
return 1;
}

@@ -6174,7 +6174,7 @@
break;
}
}
-   zend_lang_parseFree(pParser, _efree);
+   zend_lang_parseFree(pParser, free);

if (EG(exit_status) == 255) {
/* We got an E_PARSE */

Modified: php/php-src/branches/LEMON/Zend/zend_ini_parser.y
===
--- php/php-src/branches/LEMON/Zend/zend_ini_parser.y   2010-07-20 15:38:17 UTC 
(rev 301422)
+++ php/php-src/branches/LEMON/Zend/zend_ini_parser.y   2010-07-20 17:22:51 UTC 
(rev 301423)
@@ -219,10 +219,10 @@
 int ini_parse(TSRMLS_D) /* {{{ */
 {
int token;
-   void *pParser = zend_ini_parseAlloc(_emalloc);
+   void *pParser = zend_ini_parseAlloc(malloc);

if (pParser == NULL) {
-   zend_ini_parseFree(pParser, _efree);
+   zend_ini_parseFree(pParser, free);
return 1;
}

@@ -236,7 +236,7 @@
}
}

-   zend_ini_parseFree(pParser, _efree);
+   zend_ini_parseFree(pParser, free);
if (ZEND_INI_PARSER_SE) {
return 1;
} else {

Modified: php/php-src/branches/LEMON/Zend/zend_language_parser.y
===
--- php/php-src/branches/LEMON/Zend/zend_language_parser.y  2010-07-20 
15:38:17 UTC (rev 301422)
+++ php/php-src/branches/LEMON/Zend/zend_language_parser.y  2010-07-20 
17:22:51 UTC (rev 301423)
@@ -136,7 +136,6 @@
 %left ELSEIF.
 %left ELSE.
 %left ENDIF.
-
 %right STATIC ABSTRACT FINAL PRIVATE PROTECTED PUBLIC.

 // dummy tokens
@@ -575,9 +574,16 @@
 class_statement ::= class_statement_i class_variables SEMICOLON.
 class_statement ::= class_constants SEMICOLON.
 class_statement ::= trait_use_statement.
-class_statement ::= class_statement_ii(B) LPAREN parameters RPAREN 
method_body(C). { zend_do_abstract_method(B[2], B[0], C TSRMLS_CC); 
zend_do_end_function_declaration(B[1] TSRMLS_CC); }

+method_body_i(A) ::= LPAREN parameters RPAREN(C) LBRACE inner_statement_list. 
{ A = C; }

+method_body ::= class_statement_ii(B) method_body_i(C). { Z_LVAL(C.u.constant) 
= 0; zend_do_abstract_method(B[2], B[0], C TSRMLS_CC); 
zend_do_end_function_declaration(B[1] TSRMLS_CC); }
+
+method_body_abstract ::= class_statement_ii(B) LPAREN parameters RPAREN(C). { 
Z_LVAL(C.u.constant) = ZEND_ACC_ABSTRACT; zend_do_abstract_method(B[2], B[0], 
C TSRMLS_CC); zend_do_end_function_declaration(B[1] TSRMLS_CC); }
+
+class_statement ::= method_body_abstract SEMICOLON.
+class_statement ::= method_body RBRACE.
+
 trait_use_statement ::= USE trait_list trait_adaptations.

 trait_list ::= fully_qualified_class_name(B).   { 
zend_do_implements_trait(B TSRMLS_CC); }
@@ -609,9 +615,6 @@
 trait_modifiers(A) ::= .{ Z_LVAL(A.u.constant) = 0x0; } /* 
No change of methods visibility */
 trait_modifiers(A) ::= member_modifier(B).  { A = B; } /* REM: Keep in mind, 
there are not only visibility modifiers */

-method_body(A) ::= SEMICOLON.   { Z_LVAL(A.u.constant) 
= ZEND_ACC_ABSTRACT; }
-method_body(A) ::= LBRACE inner_statement_list RBRACE.  { Z_LVAL(A.u.constant) 
= 0;}
-
 variable_modifiers(A) ::= member_modifiers_list(B). { A = B; }
 variable_modifiers(A) ::= VAR.  { Z_LVAL(A.u.constant) = 
ZEND_ACC_PUBLIC; }


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/branches/LEMON/Zend/ zend_compile.c zend_language_parser.y

2010-07-19 Thread Felipe Pena
felipe   Mon, 19 Jul 2010 22:46:45 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301406

Log:
- Fixed wrong lineno by fixing the rules

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c
U   php/php-src/branches/LEMON/Zend/zend_language_parser.y

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c	2010-07-19 20:22:39 UTC (rev 301405)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c	2010-07-19 22:46:45 UTC (rev 301406)
@@ -6111,7 +6111,7 @@

 int zendparse(TSRMLS_D) /* {{{ */
 {
-	int token, lineno = 0, halting = 0, old_exit_status;
+	int token, halting = 0, old_exit_status;
 	void *pParser;

 	if ((pParser = zend_lang_parseAlloc(_emalloc)) == NULL) {
@@ -6121,7 +6121,6 @@

 	old_exit_status = EG(exit_status);
 	EG(exit_status) = 0;
-	lineno = CG(zend_lineno);

 	while (1) {
 		znode zendlval;
@@ -6132,13 +6131,12 @@
 		if (CG(increment_lineno)) {
 			CG(zend_lineno)++;
 			CG(increment_lineno) = 0;
-			lineno = CG(zend_lineno);
 		}
 again:
 		Z_TYPE(zendlval.u.constant) = IS_LONG;

 		/* Call the scanner */
-		token = lex_scan(zendlval.u.constant, lineno TSRMLS_CC);
+		token = lex_scan(zendlval.u.constant, CG(zend_lineno) TSRMLS_CC);

 		switch (token) {
 			case T_COMMENT:
@@ -6167,7 +6165,6 @@
 break;
 		}
 		zend_lang_parse(pParser, token, zendlval TSRMLS_CC);
-		CG(zend_lineno) = lineno;

 		if (token == 0 || EG(exit_status) == 255) {
 			break;

Modified: php/php-src/branches/LEMON/Zend/zend_language_parser.y
===
--- php/php-src/branches/LEMON/Zend/zend_language_parser.y	2010-07-19 20:22:39 UTC (rev 301405)
+++ php/php-src/branches/LEMON/Zend/zend_language_parser.y	2010-07-19 22:46:45 UTC (rev 301406)
@@ -79,6 +79,10 @@
 %type new_ii {znode_array}
 %type foreach_i {znode_array}
 %type foreach_ii {znode_array}
+%type foreach_i_ns {znode_array}
+%type foreach_ii_ns {znode_array}
+%type foreach2_i_ns {znode_array}
+%type foreach2_ii_ns {znode_array}
 %type foreach2_i {znode_array}
 %type foreach2_ii {znode_array}
 %type bool_or_expr_i {znode_array}
@@ -91,14 +95,18 @@
 %type closure_ii {znode_array}
 %type try_catch_iv {znode_array}
 %type try_catch_iii {znode_array}
+%type try_catch_iv_ns {znode_array}
+%type try_catch_iii_ns {znode_array}
 %type isset_variables_i {znode_array}
 %type unticked_class_declaration_statement_i {znode_array}
 %type unticked_class_declaration_statement_ii {znode_array}
 %type while_cond {znode_array}
+%type while_cond_ns {znode_array}
 %type do_statement {znode_array}
+%type do_statement_ns {znode_array}
 %type for_cont {znode_array}
+%type for_cont_ns {znode_array}

-
 /* Precedences */
 %left INCLUDE INCLUDE_ONCE EVAL REQUIRE REQUIRE_ONCE.
 %left COMMA.
@@ -147,18 +155,21 @@
 namespace_name(A) ::= STRING(B). { A = B; }
 namespace_name(A) ::= namespace_name(B) NS_SEPARATOR STRING(C). { zend_do_build_namespace_name(A, B, C TSRMLS_CC); }

-namespace_start ::= NAMESPACE. { zend_do_begin_namespace(NULL, 1 TSRMLS_CC); }
+namespace_start_i ::= NAMESPACE. { zend_do_begin_namespace(NULL, 1 TSRMLS_CC); }
+namespace_start   ::= namespace_start_i LBRACE.

-namespace_start2 ::= NAMESPACE namespace_name(B). { zend_do_begin_namespace(B, 1 TSRMLS_CC); }
+namespace_start2_i ::= NAMESPACE namespace_name(B). { zend_do_begin_namespace(B, 1 TSRMLS_CC); }
+namespace_start2   ::= namespace_start2_i LBRACE.

-top_statement ::= SEMICOLON. { ZEND_DO_TICKS(); }
-top_statement ::= statement. { ZEND_VERIFY_NS(); }
+namespace_start3 ::= NAMESPACE namespace_name(B). { zend_do_begin_namespace(B, 0 TSRMLS_CC); }
+
+top_statement ::= statement_ns.
 top_statement ::= function_declaration_statement.{ ZEND_VERIFY_NS(); zend_do_early_binding(TSRMLS_C); }
-top_statement ::= class_declaration_statement.   { ZEND_VERIFY_NS(); zend_do_early_binding(TSRMLS_C); }
+top_statement ::= class_declaration_statement_ns.
 top_statement ::= HALT_COMPILER LPAREN RPAREN SEMICOLON. { zend_do_halt_compiler_register(TSRMLS_C); }
-top_statement ::= NAMESPACE namespace_name(B) SEMICOLON. { zend_do_begin_namespace(B, 0 TSRMLS_CC); }
-top_statement ::= namespace_start2 LBRACE top_statement_list RBRACE. { zend_do_end_namespace(TSRMLS_C); }
-top_statement ::= namespace_start  LBRACE top_statement_list RBRACE.   { zend_do_end_namespace(TSRMLS_C); }
+top_statement ::= namespace_start3 SEMICOLON.
+top_statement ::= namespace_start2 top_statement_list RBRACE. { zend_do_end_namespace(TSRMLS_C); }
+top_statement ::= namespace_start top_statement_list RBRACE.  { zend_do_end_namespace(TSRMLS_C); }
 top_statement ::= USE use_declarations SEMICOLON.{ ZEND_VERIFY_NS(); }
 top_statement ::= constant_declaration SEMICOLON.{ ZEND_VERIFY_NS(); }

@@ -189,8 +200,9 @@
 

[PHP-CVS] svn: /php/php-src/branches/LEMON/ Zend/zend_compile.c Zend/zend_compile.h Zend/zend_ini_parser.y lempar.c

2010-07-15 Thread Felipe Pena
felipe   Thu, 15 Jul 2010 17:57:22 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301296

Log:
- Lets use the _emalloc, _efree functions

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c
U   php/php-src/branches/LEMON/Zend/zend_compile.h
U   php/php-src/branches/LEMON/Zend/zend_ini_parser.y
U   php/php-src/branches/LEMON/lempar.c

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-15 17:48:38 UTC 
(rev 301295)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-15 17:57:22 UTC 
(rev 301296)
@@ -6114,8 +6114,8 @@
int token, lineno = 0, halting = 0, old_exit_status;
void *pParser;

-   if ((pParser = zend_lang_parseAlloc(malloc)) == NULL) {
-   zend_lang_parseFree(pParser, free);
+   if ((pParser = zend_lang_parseAlloc(_emalloc)) == NULL) {
+   zend_lang_parseFree(pParser, _efree);
return 1;
}

@@ -6177,7 +6177,7 @@
break;
}
}
-   zend_lang_parseFree(pParser, free);
+   zend_lang_parseFree(pParser, _efree);

if (EG(exit_status) == 255) {
/* We got an E_PARSE */

Modified: php/php-src/branches/LEMON/Zend/zend_compile.h
===
--- php/php-src/branches/LEMON/Zend/zend_compile.h  2010-07-15 17:48:38 UTC 
(rev 301295)
+++ php/php-src/branches/LEMON/Zend/zend_compile.h  2010-07-15 17:57:22 UTC 
(rev 301296)
@@ -664,8 +664,8 @@

 /* Parser */
 int zendparse(TSRMLS_D);
-void *zend_lang_parseAlloc(void *(*mallocProc)(size_t));
-void zend_lang_parseFree(void *p, void (*freeProc)(void*));
+void *zend_lang_parseAlloc(void *(*mallocProc)(size_t ZEND_FILE_LINE_DC 
ZEND_FILE_LINE_ORIG_DC));
+void zend_lang_parseFree(void *p, void (*freeProc)(void* ZEND_FILE_LINE_DC 
ZEND_FILE_LINE_ORIG_DC));
 void zend_lang_parse(void *yyp, int yymajor, znode yyminor TSRMLS_DC);

 int zend_add_literal(zend_op_array *op_array, const zval *zv);

Modified: php/php-src/branches/LEMON/Zend/zend_ini_parser.y
===
--- php/php-src/branches/LEMON/Zend/zend_ini_parser.y   2010-07-15 17:48:38 UTC 
(rev 301295)
+++ php/php-src/branches/LEMON/Zend/zend_ini_parser.y   2010-07-15 17:57:22 UTC 
(rev 301296)
@@ -39,8 +39,8 @@
 #define ZEND_INI_PARSER_SE (CG(ini_parser_param))-syntax_error

 int ini_parse(TSRMLS_D);
-void *zend_ini_parseAlloc(void *(*mallocProc)(size_t));
-void zend_ini_parseFree(void *p, void (*freeProc)(void*));
+void *zend_ini_parseAlloc(void *(*mallocProc)(size_t ZEND_FILE_LINE_DC 
ZEND_FILE_LINE_ORIG_DC));
+void zend_ini_parseFree(void *p, void (*freeProc)(void* ZEND_FILE_LINE_DC 
ZEND_FILE_LINE_ORIG_DC));
 void zend_ini_parse(void *yyp, int yymajor, zval yyminor TSRMLS_DC);

 /* {{{ zend_ini_do_op()
@@ -219,10 +219,10 @@
 int ini_parse(TSRMLS_D) /* {{{ */
 {
int token;
-   void *pParser = zend_ini_parseAlloc(malloc);
+   void *pParser = zend_ini_parseAlloc(_emalloc);

if (pParser == NULL) {
-   zend_ini_parseFree(pParser, free);
+   zend_ini_parseFree(pParser, _efree);
return 1;
}

@@ -236,7 +236,7 @@
}
}

-   zend_ini_parseFree(pParser, free);
+   zend_ini_parseFree(pParser, _efree);
if (ZEND_INI_PARSER_SE) {
return 1;
} else {

Modified: php/php-src/branches/LEMON/lempar.c
===
--- php/php-src/branches/LEMON/lempar.c 2010-07-15 17:48:38 UTC (rev 301295)
+++ php/php-src/branches/LEMON/lempar.c 2010-07-15 17:57:22 UTC (rev 301296)
@@ -266,9 +266,9 @@
 ** A pointer to a parser.  This pointer is used in subsequent calls
 ** to Parse and ParseFree.
 */
-void *ParseAlloc(void *(*mallocProc)(size_t)){
+void *ParseAlloc(void *(*mallocProc)(size_t ZEND_FILE_LINE_DC 
ZEND_FILE_LINE_ORIG_DC)){
   yyParser *pParser;
-  pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) );
+  pParser = (yyParser*)(*mallocProc)( ((size_t)sizeof(yyParser)) 
ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC);
   if( pParser ){
 pParser-yyidx = -1;
 #ifdef YYTRACKMAXSTACKDEPTH
@@ -351,7 +351,7 @@
 */
 void ParseFree(
   void *p,/* The parser to be deleted */
-  void (*freeProc)(void*) /* Function used to reclaim memory */
+  void (*freeProc)(void* ZEND_FILE_LINE_DC ZEND_FILE_LINE_ORIG_DC) /* 
Function used to reclaim memory */
 ){
   yyParser *pParser = (yyParser*)p;
   if( pParser==0 ) return;
@@ -359,7 +359,7 @@
 #if YYSTACKDEPTH=0
   free(pParser-yystack);
 #endif
-  (*freeProc)((void*)pParser);
+  (*freeProc)((void*)pParser ZEND_FILE_LINE_CC ZEND_FILE_LINE_EMPTY_CC);
 }

 /*

-- 
PHP CVS Mailing List (http://www.php.net/)

[PHP-CVS] svn: /php/php-src/branches/LEMON/Zend/ zend_compile.c zend_language_parser.y

2010-07-13 Thread Felipe Pena
felipe   Wed, 14 Jul 2010 02:21:38 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301255

Log:
- Disable error recovery

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c
U   php/php-src/branches/LEMON/Zend/zend_language_parser.y

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-14 00:57:24 UTC 
(rev 301254)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-14 02:21:38 UTC 
(rev 301255)
@@ -6167,24 +6167,22 @@
zend_lang_parse(pParser, token, zendlval TSRMLS_CC);
CG(zend_lineno) = lineno;

-   if (token == 0) {
+   if (token == 0 || EG(exit_status) == 255) {
break;
-   } else if (EG(exit_status) == 255 || (halting == 1  token == 
T_SEMICOLON)) {
-   /* Handles E_PARSE and __HALT_COMPILER(); */
+   } else if (halting == 1  token == T_SEMICOLON){
+   /* Handles __HALT_COMPILER(); */
zend_lang_parse(pParser, 0, zendlval TSRMLS_CC);
-   if (EG(exit_status) == 255) {
-   goto end_parse;
-   }
break;
}
}
-end_parse:
zend_lang_parseFree(pParser, free);
+
if (EG(exit_status) == 255) {
/* We got an E_PARSE */
return 1;
}
EG(exit_status) = old_exit_status;
+
return 0;
 }
 /* }}} */

Modified: php/php-src/branches/LEMON/Zend/zend_language_parser.y
===
--- php/php-src/branches/LEMON/Zend/zend_language_parser.y  2010-07-14 
00:57:24 UTC (rev 301254)
+++ php/php-src/branches/LEMON/Zend/zend_language_parser.y  2010-07-14 
02:21:38 UTC (rev 301255)
@@ -30,6 +30,7 @@
 #include zend_API.h
 #include zend_constants.h

+#define YYNOERRORRECOVERY
 #define NDEBUG
 }


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/branches/LEMON/Zend/ zend_compile.c zend_compile.h zend_language_parser.y

2010-07-12 Thread Felipe Pena
felipe   Mon, 12 Jul 2010 11:50:17 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301182

Log:
- Added parser name and prototype declaration

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c
U   php/php-src/branches/LEMON/Zend/zend_compile.h
U   php/php-src/branches/LEMON/Zend/zend_language_parser.y

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-12 10:41:23 UTC 
(rev 301181)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-12 11:50:17 UTC 
(rev 301182)
@@ -6112,8 +6112,8 @@
int token, halting = 0;
void *pParser;

-   if ((pParser = ParseAlloc(malloc)) == NULL) {
-   ParseFree(pParser, free);
+   if ((pParser = zend_lang_parseAlloc(malloc)) == NULL) {
+   zend_lang_parseFree(pParser, free);
return 1;
}

@@ -6159,15 +6159,15 @@
default:
break;
}
-   Parse(pParser, token, zendlval TSRMLS_CC);
+   zend_lang_parse(pParser, token, zendlval TSRMLS_CC);
if (token == 0) {
break;
} else if (halting == 1  token == T_SEMICOLON) {
-   Parse(pParser, 0, zendlval TSRMLS_CC);
+   zend_lang_parse(pParser, 0, zendlval TSRMLS_CC);
break;
}
}
-   ParseFree(pParser, free);
+   zend_lang_parseFree(pParser, free);

return 0;
 }

Modified: php/php-src/branches/LEMON/Zend/zend_compile.h
===
--- php/php-src/branches/LEMON/Zend/zend_compile.h  2010-07-12 10:41:23 UTC 
(rev 301181)
+++ php/php-src/branches/LEMON/Zend/zend_compile.h  2010-07-12 11:50:17 UTC 
(rev 301182)
@@ -662,7 +662,11 @@
 ZEND_API int zend_auto_global_disable_jit(const char *varname, zend_uint 
varname_length TSRMLS_DC);
 ZEND_API size_t zend_dirname(char *path, size_t len);

+/* Parser */
 int zendparse(TSRMLS_D);
+void *zend_lang_parseAlloc(void *(*mallocProc)(size_t));
+void zend_lang_parseFree(void *p, void (*freeProc)(void*));
+void zend_lang_parse(void *yyp, int yymajor, znode yyminor TSRMLS_DC);

 int zend_add_literal(zend_op_array *op_array, const zval *zv);


Modified: php/php-src/branches/LEMON/Zend/zend_language_parser.y
===
--- php/php-src/branches/LEMON/Zend/zend_language_parser.y  2010-07-12 
10:41:23 UTC (rev 301181)
+++ php/php-src/branches/LEMON/Zend/zend_language_parser.y  2010-07-12 
11:50:17 UTC (rev 301182)
@@ -31,6 +31,8 @@
 #include zend_constants.h
 }

+%name zend_lang_parse
+
 %syntax_error {
 zend_error(E_PARSE, syntax error, unexpected '%.*s', LANG_SCNG(yy_leng), 
LANG_SCNG(yy_text));
 zend_bailout();

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/branches/LEMON/ Zend/zend_compile.c Zend/zend_compile.h Zend/zend_highlight.c Zend/zend_indent.c Zend/zend_language_scanner.c Zend/zend_language_scanner.l Zend/zend_languag

2010-07-12 Thread Felipe Pena
felipe   Mon, 12 Jul 2010 18:48:09 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301212

Log:
- Fixed line number on error messages

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c
U   php/php-src/branches/LEMON/Zend/zend_compile.h
U   php/php-src/branches/LEMON/Zend/zend_highlight.c
U   php/php-src/branches/LEMON/Zend/zend_indent.c
U   php/php-src/branches/LEMON/Zend/zend_language_scanner.c
U   php/php-src/branches/LEMON/Zend/zend_language_scanner.l
U   php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h
U   php/php-src/branches/LEMON/ext/tokenizer/tokenizer.c

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c	2010-07-12 17:56:05 UTC (rev 301211)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c	2010-07-12 18:48:09 UTC (rev 301212)
@@ -6109,13 +6109,15 @@

 int zendparse(TSRMLS_D) /* {{{ */
 {
-	int token, halting = 0;
+	int token, lineno = 0, halting = 0;
 	void *pParser;

 	if ((pParser = zend_lang_parseAlloc(malloc)) == NULL) {
 		zend_lang_parseFree(pParser, free);
 		return 1;
 	}
+
+	lineno = CG(zend_lineno);

 	while (1) {
 		znode zendlval;
@@ -6126,12 +6128,13 @@
 		if (CG(increment_lineno)) {
 			CG(zend_lineno)++;
 			CG(increment_lineno) = 0;
-		}
+			lineno = CG(zend_lineno);
+		}
 again:
 		Z_TYPE(zendlval.u.constant) = IS_LONG;

 		/* Call the scanner */
-		token = lex_scan(zendlval.u.constant TSRMLS_CC);
+		token = lex_scan(zendlval.u.constant, lineno TSRMLS_CC);

 		switch (token) {
 			case T_COMMENT:
@@ -6160,6 +6163,7 @@
 break;
 		}
 		zend_lang_parse(pParser, token, zendlval TSRMLS_CC);
+		CG(zend_lineno) = lineno;
 		if (token == 0) {
 			break;
 		} else if (halting == 1  token == T_SEMICOLON) {

Modified: php/php-src/branches/LEMON/Zend/zend_compile.h
===
--- php/php-src/branches/LEMON/Zend/zend_compile.h	2010-07-12 17:56:05 UTC (rev 301211)
+++ php/php-src/branches/LEMON/Zend/zend_compile.h	2010-07-12 18:48:09 UTC (rev 301212)
@@ -380,7 +380,7 @@
 extern ZEND_API zend_op_array *(*zend_compile_file)(zend_file_handle *file_handle, int type TSRMLS_DC);
 extern ZEND_API zend_op_array *(*zend_compile_string)(zval *source_string, char *filename TSRMLS_DC);

-ZEND_API int lex_scan(zval *zendlval TSRMLS_DC);
+ZEND_API int lex_scan(zval *zendlval, int *lineno TSRMLS_DC);
 void startup_scanner(TSRMLS_D);
 void shutdown_scanner(TSRMLS_D);


Modified: php/php-src/branches/LEMON/Zend/zend_highlight.c
===
--- php/php-src/branches/LEMON/Zend/zend_highlight.c	2010-07-12 17:56:05 UTC (rev 301211)
+++ php/php-src/branches/LEMON/Zend/zend_highlight.c	2010-07-12 18:48:09 UTC (rev 301212)
@@ -90,7 +90,7 @@
 ZEND_API void zend_highlight(zend_syntax_highlighter_ini *syntax_highlighter_ini TSRMLS_DC)
 {
 	zval token;
-	int token_type;
+	int token_type, lineno = 0;
 	char *last_color = syntax_highlighter_ini-highlight_html;
 	char *next_color;

@@ -98,7 +98,7 @@
 	zend_printf(span style=\color: %s\\n, last_color);
 	/* highlight stuff coming back from zendlex() */
 	token.type = 0;
-	while ((token_type=lex_scan(token TSRMLS_CC))) {
+	while ((token_type=lex_scan(token, lineno TSRMLS_CC))) {
 		switch (token_type) {
 			case T_INLINE_HTML:
 next_color = syntax_highlighter_ini-highlight_html;
@@ -174,11 +174,11 @@
 ZEND_API void zend_strip(TSRMLS_D)
 {
 	zval token;
-	int token_type;
+	int token_type, lineno = 0;
 	int prev_space = 0;

 	token.type = 0;
-	while ((token_type=lex_scan(token TSRMLS_CC))) {
+	while ((token_type=lex_scan(token, lineno TSRMLS_CC))) {
 		switch (token_type) {
 			case T_WHITESPACE:
 if (!prev_space) {
@@ -195,7 +195,7 @@
 zend_write(LANG_SCNG(yy_text), LANG_SCNG(yy_leng));
 efree(token.value.str.val);
 /* read the following character, either newline or ; */
-if (lex_scan(token TSRMLS_CC) != T_WHITESPACE) {
+if (lex_scan(token, lineno TSRMLS_CC) != T_WHITESPACE) {
 	zend_write(LANG_SCNG(yy_text), LANG_SCNG(yy_leng));
 }
 zend_write(\n, sizeof(\n) - 1);

Modified: php/php-src/branches/LEMON/Zend/zend_indent.c
===
--- php/php-src/branches/LEMON/Zend/zend_indent.c	2010-07-12 17:56:05 UTC (rev 301211)
+++ php/php-src/branches/LEMON/Zend/zend_indent.c	2010-07-12 18:48:09 UTC (rev 301212)
@@ -52,7 +52,7 @@
 	zval token;
 	int token_type;
 	int in_string=0;
-	int nest_level=0;
+	int nest_level=0, lineno = 0;
 	int emit_whitespace[256];
 	int i;
 	TSRMLS_FETCH();
@@ -61,7 +61,7 @@

 	/* highlight stuff coming back from zendlex() */
 	token.type = 0;
-	while ((token_type=lex_scan(token TSRMLS_CC))) {
+	while ((token_type=lex_scan(token, lineno TSRMLS_CC))) {
 		switch (token_type) {
 			case T_INLINE_HTML:
 

[PHP-CVS] svn: /php/php-src/branches/LEMON/Zend/ zend_compile.c zend_language_parser.y zend_language_scanner_defs.h

2010-07-12 Thread Felipe Pena
felipe   Mon, 12 Jul 2010 20:11:35 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301215

Log:
- Fixed SIGSEGV when E_PARSE occurred in zend_eval_stringl

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c
U   php/php-src/branches/LEMON/Zend/zend_language_parser.y
U   php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-12 19:14:26 UTC 
(rev 301214)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-12 20:11:35 UTC 
(rev 301215)
@@ -6109,7 +6109,7 @@

 int zendparse(TSRMLS_D) /* {{{ */
 {
-   int token, lineno = 0, halting = 0;
+   int token, lineno = 0, halting = 0, old_exit_status;
void *pParser;

if ((pParser = zend_lang_parseAlloc(malloc)) == NULL) {
@@ -6117,6 +6117,8 @@
return 1;
}

+   old_exit_status = EG(exit_status);
+   EG(exit_status) = 0;
lineno = CG(zend_lineno);

while (1) {
@@ -6164,15 +6166,25 @@
}
zend_lang_parse(pParser, token, zendlval TSRMLS_CC);
CG(zend_lineno) = lineno;
+
if (token == 0) {
break;
-   } else if (halting == 1  token == T_SEMICOLON) {
+   } else if (EG(exit_status) == 255 || (halting == 1  token == 
T_SEMICOLON)) {
+   /* Handles E_PARSE and __HALT_COMPILER(); */
zend_lang_parse(pParser, 0, zendlval TSRMLS_CC);
+   if (EG(exit_status) == 255) {
+   goto end_parse;
+   }
break;
}
}
+end_parse:
zend_lang_parseFree(pParser, free);
-
+   if (EG(exit_status) == 255) {
+   /* We got an E_PARSE */
+   return 1;
+   }
+   EG(exit_status) = old_exit_status;
return 0;
 }
 /* }}} */

Modified: php/php-src/branches/LEMON/Zend/zend_language_parser.y
===
--- php/php-src/branches/LEMON/Zend/zend_language_parser.y  2010-07-12 
19:14:26 UTC (rev 301214)
+++ php/php-src/branches/LEMON/Zend/zend_language_parser.y  2010-07-12 
20:11:35 UTC (rev 301215)
@@ -37,7 +37,6 @@

 %syntax_error {
 zend_error(E_PARSE, syntax error, unexpected '%.*s', LANG_SCNG(yy_leng), 
LANG_SCNG(yy_text));
-zend_bailout();
 }

 %stack_overflow {

Modified: php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h
===
--- php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h
2010-07-12 19:14:26 UTC (rev 301214)
+++ php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h
2010-07-12 20:11:35 UTC (rev 301215)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Mon Jul 12 14:03:13 2010 */
+/* Generated by re2c 0.13.5 on Mon Jul 12 16:24:11 2010 */
 #line 3 Zend/zend_language_scanner_defs.h

 enum YYCONDTYPE {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/branches/LEMON/Zend/ zend_compile.c

2010-07-11 Thread Felipe Pena
felipe   Sun, 11 Jul 2010 22:00:50 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301169

Log:
- Woops, debug stuff :)

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-11 21:53:17 UTC 
(rev 301168)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-11 22:00:50 UTC 
(rev 301169)
@@ -6116,7 +6116,7 @@
ParseFree(pParser, free);
return 1;
}
-//ParseTrace(stderr, LEMON  );
+
while (1) {
znode zendlval;


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/branches/LEMON/Zend/ zend_compile.c zend_language_parser.y

2010-07-10 Thread Felipe Pena
felipe   Sat, 10 Jul 2010 16:57:50 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301154

Log:
- Workaround for YYACCEPT on __halt_compiler()

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c
U   php/php-src/branches/LEMON/Zend/zend_language_parser.y

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-10 15:49:15 UTC 
(rev 301153)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-10 16:57:50 UTC 
(rev 301154)
@@ -6103,7 +6103,7 @@

 int zendparse(TSRMLS_D) /* {{{ */
 {
-   int token;
+   int token, halting = 0;
void *pParser;

if ((pParser = ParseAlloc(malloc)) == NULL) {
@@ -6133,6 +6133,9 @@
case T_OPEN_TAG:
case T_WHITESPACE:
goto again;
+   case T_HALT_COMPILER:
+   halting = 1;
+   break;
case T_END_HEREDOC:
efree(Z_STRVAL(zendlval.u.constant));
break;
@@ -6153,6 +6156,9 @@
Parse(pParser, token, zendlval TSRMLS_CC);
if (token == 0) {
break;
+   } else if (halting == 1  token == T_SEMICOLON) {
+   Parse(pParser, 0, zendlval TSRMLS_CC);
+   break;
}
}
ParseFree(pParser, free);

Modified: php/php-src/branches/LEMON/Zend/zend_language_parser.y
===
--- php/php-src/branches/LEMON/Zend/zend_language_parser.y  2010-07-10 
15:49:15 UTC (rev 301153)
+++ php/php-src/branches/LEMON/Zend/zend_language_parser.y  2010-07-10 
16:57:50 UTC (rev 301154)
@@ -186,7 +186,7 @@
 top_statement ::= statement.   { 
zend_verify_namespace(TSRMLS_C); }
 top_statement ::= function_declaration_statement.  { 
zend_verify_namespace(TSRMLS_C); zend_do_early_binding(TSRMLS_C); }
 top_statement ::= class_declaration_statement. { 
zend_verify_namespace(TSRMLS_C); zend_do_early_binding(TSRMLS_C); }
-top_statement ::= HALT_COMPILER LPAREN RPAREN SEMICOLON.   { 
zend_do_halt_compiler_register(TSRMLS_C); /* YYACCEPT; */ }
+top_statement ::= HALT_COMPILER LPAREN RPAREN SEMICOLON.   { 
zend_do_halt_compiler_register(TSRMLS_C); }
 top_statement ::= NAMESPACE namespace_name(B) SEMICOLON.   { 
zend_do_begin_namespace(B, 0 TSRMLS_CC); }
 top_statement ::= NAMESPACE namespace_name(B) LBRACE.  { 
zend_do_begin_namespace(B, 1 TSRMLS_CC); }
 top_statement ::= top_statement_list RBRACE. { 
zend_do_end_namespace(TSRMLS_C); }

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/branches/LEMON/Zend/ zend_compile.c zend_language_parser.y zend_language_scanner.c zend_language_scanner_defs.h

2010-07-10 Thread Felipe Pena
felipe   Sat, 10 Jul 2010 20:16:15 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301156

Log:
- Fix the static_scalar rule

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c
U   php/php-src/branches/LEMON/Zend/zend_language_parser.y
U   php/php-src/branches/LEMON/Zend/zend_language_scanner.c
U   php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-10 17:11:10 UTC 
(rev 301155)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-10 20:16:15 UTC 
(rev 301156)
@@ -6163,11 +6163,6 @@
}
ParseFree(pParser, free);

-   /* We got a parse error occured */
-   if (EG(exit_status) == 255) {
-   return 1;
-   }
-
return 0;
 }
 /* }}} */

Modified: php/php-src/branches/LEMON/Zend/zend_language_parser.y
===
--- php/php-src/branches/LEMON/Zend/zend_language_parser.y  2010-07-10 
17:11:10 UTC (rev 301155)
+++ php/php-src/branches/LEMON/Zend/zend_language_parser.y  2010-07-10 
20:16:15 UTC (rev 301156)
@@ -1370,7 +1370,7 @@
 static_scalar(A) ::= NAMESPACE NS_SEPARATOR namespace_name(B). { A.op_type = 
IS_CONST; ZVAL_EMPTY_STRING(A.u.constant);  zend_do_build_namespace_name(A, 
A, B TSRMLS_CC); B = A; zend_do_fetch_constant(A, NULL, B, ZEND_CT, 0 
TSRMLS_CC); }
 static_scalar(A) ::= NS_SEPARATOR namespace_name(B). { char *tmp = 
estrndup(Z_STRVAL(B.u.constant), Z_STRLEN(B.u.constant)+1); memcpy((tmp[1]), 
Z_STRVAL(B.u.constant), Z_STRLEN(B.u.constant)+1); tmp[0] = '\\'; 
efree(Z_STRVAL(B.u.constant)); Z_STRVAL(B.u.constant) = tmp; 
++Z_STRLEN(B.u.constant); zend_do_fetch_constant(A, NULL, B, ZEND_CT, 0 
TSRMLS_CC); }
 static_scalar(A) ::= PLUS(B) static_scalar(C). { ZVAL_LONG(B.u.constant, 0); 
add_function(C.u.constant, B.u.constant, C.u.constant TSRMLS_CC); A = C; }
-static_scalar(A) ::= MINUS(B) static_scalar(C). { ZVAL_LONG(C.u.constant, 0); 
sub_function(C.u.constant, B.u.constant, C.u.constant TSRMLS_CC); A = C; }
+static_scalar(A) ::= MINUS(B) static_scalar(C). { ZVAL_LONG(B.u.constant, 0); 
sub_function(C.u.constant, B.u.constant, C.u.constant TSRMLS_CC); A = C; }
 static_scalar(A) ::= ARRAY LPAREN static_array_pair_list(B) RPAREN. { A = B; 
Z_TYPE(A.u.constant) = IS_CONSTANT_ARRAY; }
 static_scalar(A) ::= static_class_constant(B). { A = B; }


Modified: php/php-src/branches/LEMON/Zend/zend_language_scanner.c
===
--- php/php-src/branches/LEMON/Zend/zend_language_scanner.c 2010-07-10 
17:11:10 UTC (rev 301155)
+++ php/php-src/branches/LEMON/Zend/zend_language_scanner.c 2010-07-10 
20:16:15 UTC (rev 301156)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Fri Jul  9 21:47:41 2010 */
+/* Generated by re2c 0.13.5 on Sat Jul 10 16:00:37 2010 */
 #line 1 Zend/zend_language_scanner.l
 /*
+--+

Modified: php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h
===
--- php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h
2010-07-10 17:11:10 UTC (rev 301155)
+++ php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h
2010-07-10 20:16:15 UTC (rev 301156)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Fri Jul  9 21:47:41 2010 */
+/* Generated by re2c 0.13.5 on Sat Jul 10 16:00:37 2010 */
 #line 3 Zend/zend_language_scanner_defs.h

 enum YYCONDTYPE {

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/branches/LEMON/Zend/ zend_compile.c

2010-07-09 Thread Felipe Pena
felipe   Fri, 09 Jul 2010 14:43:23 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301134

Log:
- WS

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-09 14:26:08 UTC 
(rev 301133)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-09 14:43:23 UTC 
(rev 301134)
@@ -6103,63 +6103,63 @@

 int zendparse(TSRMLS_D) /* {{{ */
 {
-   int token;
-   void *pParser;
+   int token;
+   void *pParser;

-   if ((pParser = ParseAlloc(malloc)) == NULL) {
-   ParseFree(pParser, free);
-   return 1;
-   }
+   if ((pParser = ParseAlloc(malloc)) == NULL) {
+   ParseFree(pParser, free);
+   return 1;
+   }

-   while (1) {
-   znode zendlval;
+   while (1) {
+   znode zendlval;

-   zendlval.op_type = IS_CONST;
-   INIT_PZVAL(zendlval.u.constant);
+   zendlval.op_type = IS_CONST;
+   INIT_PZVAL(zendlval.u.constant);
 again:
-   Z_TYPE(zendlval.u.constant) = IS_LONG;
-
-   if (CG(increment_lineno)) {
-   CG(zend_lineno)++;
-   CG(increment_lineno) = 0;
-   }
-
-   /* Call the scanner */
-   token = lex_scan(zendlval.u.constant TSRMLS_CC);
+   Z_TYPE(zendlval.u.constant) = IS_LONG;

-   switch (token) {
-   case T_COMMENT:
-   case T_DOC_COMMENT:
-   case T_OPEN_TAG:
-   case T_WHITESPACE:
-   goto again;
-   case T_END_HEREDOC:
-   efree(Z_STRVAL(zendlval.u.constant));
-   case T_OPEN_TAG_WITH_ECHO:
-   token = T_ECHO;
-   case T_CLOSE_TAG:
-   if (LANG_SCNG(yy_text)[LANG_SCNG(yy_leng)-1] != '') {
-   CG(increment_lineno) = 1;
-   }
-   if (CG(has_bracketed_namespaces)  !CG(in_namespace)) {
-   break;
-   }
-   default:
-   Parse(pParser, token, zendlval TSRMLS_CC);
-   break;
-   }
-   if (token == 0) {
-   break;
-   }
-   }
-   ParseFree(pParser, free);
-
-   /* We got a parse error occured */
-   if (EG(exit_status) == 255) {
-   return 1;
-   }
-
-   return 0;
+   if (CG(increment_lineno)) {
+   CG(zend_lineno)++;
+   CG(increment_lineno) = 0;
+   }
+
+   /* Call the scanner */
+   token = lex_scan(zendlval.u.constant TSRMLS_CC);
+
+   switch (token) {
+   case T_COMMENT:
+   case T_DOC_COMMENT:
+   case T_OPEN_TAG:
+   case T_WHITESPACE:
+   goto again;
+   case T_END_HEREDOC:
+   efree(Z_STRVAL(zendlval.u.constant));
+   case T_OPEN_TAG_WITH_ECHO:
+   token = T_ECHO;
+   case T_CLOSE_TAG:
+   if (LANG_SCNG(yy_text)[LANG_SCNG(yy_leng)-1] != 
'') {
+   CG(increment_lineno) = 1;
+   }
+   if (CG(has_bracketed_namespaces)  
!CG(in_namespace)) {
+   break;
+   }
+   default:
+   Parse(pParser, token, zendlval TSRMLS_CC);
+   break;
+   }
+   if (token == 0) {
+   break;
+   }
+   }
+   ParseFree(pParser, free);
+
+   /* We got a parse error occured */
+   if (EG(exit_status) == 255) {
+   return 1;
+   }
+
+   return 0;
 }
 /* }}} */


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/branches/LEMON/Zend/ zend_compile.c

2010-07-09 Thread Felipe Pena
felipe   Fri, 09 Jul 2010 15:25:08 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301135

Log:
- Fix switch and Parse call

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-09 14:43:23 UTC 
(rev 301134)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c  2010-07-09 15:25:08 UTC 
(rev 301135)
@@ -6135,8 +6135,10 @@
goto again;
case T_END_HEREDOC:
efree(Z_STRVAL(zendlval.u.constant));
+   break;
case T_OPEN_TAG_WITH_ECHO:
token = T_ECHO;
+   break;
case T_CLOSE_TAG:
if (LANG_SCNG(yy_text)[LANG_SCNG(yy_leng)-1] != 
'') {
CG(increment_lineno) = 1;
@@ -6145,9 +6147,9 @@
break;
}
default:
-   Parse(pParser, token, zendlval TSRMLS_CC);
break;
}
+   Parse(pParser, token, zendlval TSRMLS_CC);
if (token == 0) {
break;
}

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

[PHP-CVS] svn: /php/php-src/branches/LEMON/Zend/ zend_compile.c zend_language_parser.y zend_language_scanner.c zend_language_scanner.l zend_language_scanner_defs.h

2010-07-09 Thread Felipe Pena
felipe   Fri, 09 Jul 2010 16:26:46 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=301138

Log:
- Fixed $var[0] interpolation and close tag

Changed paths:
U   php/php-src/branches/LEMON/Zend/zend_compile.c
U   php/php-src/branches/LEMON/Zend/zend_language_parser.y
U   php/php-src/branches/LEMON/Zend/zend_language_scanner.c
U   php/php-src/branches/LEMON/Zend/zend_language_scanner.l
U   php/php-src/branches/LEMON/Zend/zend_language_scanner_defs.h

Modified: php/php-src/branches/LEMON/Zend/zend_compile.c
===
--- php/php-src/branches/LEMON/Zend/zend_compile.c	2010-07-09 16:02:41 UTC (rev 301137)
+++ php/php-src/branches/LEMON/Zend/zend_compile.c	2010-07-09 16:26:46 UTC (rev 301138)
@@ -6146,6 +6146,7 @@
 if (CG(has_bracketed_namespaces)  !CG(in_namespace)) {
 	break;
 }
+token = T_SEMICOLON;
 			default:
 break;
 		}

Modified: php/php-src/branches/LEMON/Zend/zend_language_parser.y
===
--- php/php-src/branches/LEMON/Zend/zend_language_parser.y	2010-07-09 16:02:41 UTC (rev 301137)
+++ php/php-src/branches/LEMON/Zend/zend_language_parser.y	2010-07-09 16:26:46 UTC (rev 301138)
@@ -1084,6 +1084,8 @@
 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) ::= 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); }

Modified: php/php-src/branches/LEMON/Zend/zend_language_scanner.c
===
--- php/php-src/branches/LEMON/Zend/zend_language_scanner.c	2010-07-09 16:02:41 UTC (rev 301137)
+++ php/php-src/branches/LEMON/Zend/zend_language_scanner.c	2010-07-09 16:26:46 UTC (rev 301138)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Fri Jul  9 12:20:45 2010 */
+/* Generated by re2c 0.13.5 on Fri Jul  9 13:08:43 2010 */
 #line 1 Zend/zend_language_scanner.l
 /*
+--+
@@ -1432,7 +1432,7 @@
 yy56:
 		YYDEBUG(56, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2194 Zend/zend_language_scanner.l
+#line 2198 Zend/zend_language_scanner.l
 		{
 	if (YYCURSOR  YYLIMIT) {
 		return 0;
@@ -1484,7 +1484,7 @@
 		++YYCURSOR;
 		YYDEBUG(59, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2138 Zend/zend_language_scanner.l
+#line 2142 Zend/zend_language_scanner.l
 		{
 	BEGIN(ST_IN_SCRIPTING);
 	return T_BACKQUOTE;
@@ -1499,7 +1499,7 @@
 		++YYCURSOR;
 		YYDEBUG(62, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2125 Zend/zend_language_scanner.l
+#line 2129 Zend/zend_language_scanner.l
 		{
 	zendlval-value.lval = (long) '{';
 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -1655,7 +1655,7 @@
 yy78:
 		YYDEBUG(78, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2144 Zend/zend_language_scanner.l
+#line 2148 Zend/zend_language_scanner.l
 		{
 	if (GET_DOUBLE_QUOTES_SCANNED_LENGTH()) {
 		YYCURSOR += GET_DOUBLE_QUOTES_SCANNED_LENGTH() - 1;
@@ -1715,7 +1715,7 @@
 		++YYCURSOR;
 		YYDEBUG(81, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2133 Zend/zend_language_scanner.l
+#line 2137 Zend/zend_language_scanner.l
 		{
 	BEGIN(ST_IN_SCRIPTING);
 	return T_QUOTE;
@@ -1730,7 +1730,7 @@
 		++YYCURSOR;
 		YYDEBUG(84, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line 2125 Zend/zend_language_scanner.l
+#line 2129 Zend/zend_language_scanner.l
 		{
 	zendlval-value.lval = (long) '{';
 	yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
@@ -1829,7 +1829,7 @@
 	++YYCURSOR;
 	YYDEBUG(100, *YYCURSOR);
 	yyleng = YYCURSOR - SCNG(yy_text);
-#line 2112 Zend/zend_language_scanner.l
+#line 2116 Zend/zend_language_scanner.l
 	{
 	YYCURSOR += CG(heredoc_len) - 1;
 	yyleng = CG(heredoc_len);
@@ -1903,7 +1903,7 @@
 yy104:
 		YYDEBUG(104, *YYCURSOR);
 		yyleng = YYCURSOR - SCNG(yy_text);
-#line