[PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard var_unserializer.c var_unserializer.re
felipe Tue Mar 17 23:10:13 2009 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard var_unserializer.c var_unserializer.re Log: - MFH: Year++ http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var_unserializer.c?r1=1.70.2.4.2.11r2=1.70.2.4.2.12diff_format=u Index: php-src/ext/standard/var_unserializer.c diff -u php-src/ext/standard/var_unserializer.c:1.70.2.4.2.11 php-src/ext/standard/var_unserializer.c:1.70.2.4.2.12 --- php-src/ext/standard/var_unserializer.c:1.70.2.4.2.11 Tue Mar 17 22:04:57 2009 +++ php-src/ext/standard/var_unserializer.c Tue Mar 17 23:10:13 2009 @@ -4,7 +4,7 @@ +--+ | PHP Version 5| +--+ - | Copyright (c) 1997-2006 The PHP Group| + | Copyright (c) 1997-2009 The PHP Group| +--+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is| @@ -18,7 +18,7 @@ +--+ */ -/* $Id: var_unserializer.c,v 1.70.2.4.2.11 2009/03/17 22:04:57 mattwil Exp $ */ +/* $Id: var_unserializer.c,v 1.70.2.4.2.12 2009/03/17 23:10:13 felipe Exp $ */ #include php.h #include ext/standard/php_var.h http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var_unserializer.re?r1=1.52.2.2.2.9r2=1.52.2.2.2.10diff_format=u Index: php-src/ext/standard/var_unserializer.re diff -u php-src/ext/standard/var_unserializer.re:1.52.2.2.2.9 php-src/ext/standard/var_unserializer.re:1.52.2.2.2.10 --- php-src/ext/standard/var_unserializer.re:1.52.2.2.2.9 Tue Mar 17 22:04:57 2009 +++ php-src/ext/standard/var_unserializer.reTue Mar 17 23:10:13 2009 @@ -2,7 +2,7 @@ +--+ | PHP Version 5| +--+ - | Copyright (c) 1997-2006 The PHP Group| + | Copyright (c) 1997-2009 The PHP Group| +--+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is| @@ -16,7 +16,7 @@ +--+ */ -/* $Id: var_unserializer.re,v 1.52.2.2.2.9 2009/03/17 22:04:57 mattwil Exp $ */ +/* $Id: var_unserializer.re,v 1.52.2.2.2.10 2009/03/17 23:10:13 felipe Exp $ */ #include php.h #include ext/standard/php_var.h -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard var_unserializer.c var_unserializer.re
felipe Sat Oct 4 13:11:36 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard var_unserializer.c var_unserializer.re Log: - Fixed compiler warning http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var_unserializer.c?r1=1.70.2.4.2.9r2=1.70.2.4.2.10diff_format=u Index: php-src/ext/standard/var_unserializer.c diff -u php-src/ext/standard/var_unserializer.c:1.70.2.4.2.9 php-src/ext/standard/var_unserializer.c:1.70.2.4.2.10 --- php-src/ext/standard/var_unserializer.c:1.70.2.4.2.9Wed Jul 16 14:26:30 2008 +++ php-src/ext/standard/var_unserializer.c Sat Oct 4 13:11:36 2008 @@ -1,4 +1,4 @@ -/* Generated by re2c 0.13.5 on Wed Jul 16 17:25:51 2008 */ +/* Generated by re2c 0.13.5 on Sat Oct 4 10:07:18 2008 */ #line 1 ext/standard/var_unserializer.re /* +--+ @@ -18,7 +18,7 @@ +--+ */ -/* $Id: var_unserializer.c,v 1.70.2.4.2.9 2008/07/16 14:26:30 jani Exp $ */ +/* $Id: var_unserializer.c,v 1.70.2.4.2.10 2008/10/04 13:11:36 felipe Exp $ */ #include php.h #include ext/standard/php_var.h @@ -334,7 +334,7 @@ (*p) += 2; if (datalen 0 || (*p) + datalen = max) { - zend_error(E_WARNING, Insufficient data for unserializing - %ld required, %ld present, datalen, max - (*p)); + zend_error(E_WARNING, Insufficient data for unserializing - %ld required, %ld present, datalen, (long)(max - (*p))); return 0; } http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var_unserializer.re?r1=1.52.2.2.2.7r2=1.52.2.2.2.8diff_format=u Index: php-src/ext/standard/var_unserializer.re diff -u php-src/ext/standard/var_unserializer.re:1.52.2.2.2.7 php-src/ext/standard/var_unserializer.re:1.52.2.2.2.8 --- php-src/ext/standard/var_unserializer.re:1.52.2.2.2.7 Wed Mar 19 03:00:40 2008 +++ php-src/ext/standard/var_unserializer.reSat Oct 4 13:11:36 2008 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: var_unserializer.re,v 1.52.2.2.2.7 2008/03/19 03:00:40 felipe Exp $ */ +/* $Id: var_unserializer.re,v 1.52.2.2.2.8 2008/10/04 13:11:36 felipe Exp $ */ #include php.h #include ext/standard/php_var.h @@ -338,7 +338,7 @@ (*p) += 2; if (datalen 0 || (*p) + datalen = max) { - zend_error(E_WARNING, Insufficient data for unserializing - %ld required, %ld present, datalen, max - (*p)); + zend_error(E_WARNING, Insufficient data for unserializing - %ld required, %ld present, datalen, (long)(max - (*p))); return 0; } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard var_unserializer.c var_unserializer.re /ext/standard/tests/serialize unserializeS.phpt
dmitry Mon Jul 9 14:31:56 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard var_unserializer.c var_unserializer.re /php-src/ext/standard/tests/serialize unserializeS.phpt Log: Proper fix for MOPB-29 http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var_unserializer.c?r1=1.70.2.4.2.5r2=1.70.2.4.2.6diff_format=u Index: php-src/ext/standard/var_unserializer.c diff -u php-src/ext/standard/var_unserializer.c:1.70.2.4.2.5 php-src/ext/standard/var_unserializer.c:1.70.2.4.2.6 --- php-src/ext/standard/var_unserializer.c:1.70.2.4.2.5Tue Mar 27 09:29:10 2007 +++ php-src/ext/standard/var_unserializer.c Mon Jul 9 14:31:56 2007 @@ -18,7 +18,7 @@ +--+ */ -/* $Id: var_unserializer.c,v 1.70.2.4.2.5 2007/03/27 09:29:10 tony2001 Exp $ */ +/* $Id: var_unserializer.c,v 1.70.2.4.2.6 2007/07/09 14:31:56 dmitry Exp $ */ #include php.h #include ext/standard/php_var.h @@ -140,18 +140,22 @@ /* }}} */ -static char *unserialize_str(const unsigned char **p, size_t *len) +static char *unserialize_str(const unsigned char **p, size_t *len, size_t maxlen) { size_t i, j; char *str = safe_emalloc(*len, 1, 1); - unsigned char *end = *(unsigned char **)p+*len; + unsigned char *end = *(unsigned char **)p+maxlen; if(end *p) { efree(str); return NULL; } - for (i = 0; i *len *p end; i++) { + for (i = 0; i *len; i++) { + if (*p = end) { + efree(str); + return NULL; + } if (**p != '\\') { str[i] = (char)**p; } else { @@ -757,7 +761,7 @@ return 0; } - if ((str = unserialize_str(YYCURSOR, len)) == NULL) { + if ((str = unserialize_str(YYCURSOR, len, maxlen)) == NULL) { return 0; } http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var_unserializer.re?r1=1.52.2.2.2.3r2=1.52.2.2.2.4diff_format=u Index: php-src/ext/standard/var_unserializer.re diff -u php-src/ext/standard/var_unserializer.re:1.52.2.2.2.3 php-src/ext/standard/var_unserializer.re:1.52.2.2.2.4 --- php-src/ext/standard/var_unserializer.re:1.52.2.2.2.3 Tue Mar 27 09:29:10 2007 +++ php-src/ext/standard/var_unserializer.reMon Jul 9 14:31:56 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: var_unserializer.re,v 1.52.2.2.2.3 2007/03/27 09:29:10 tony2001 Exp $ */ +/* $Id: var_unserializer.re,v 1.52.2.2.2.4 2007/07/09 14:31:56 dmitry Exp $ */ #include php.h #include ext/standard/php_var.h @@ -138,18 +138,22 @@ /* }}} */ -static char *unserialize_str(const unsigned char **p, size_t *len) +static char *unserialize_str(const unsigned char **p, size_t *len, size_t maxlen) { size_t i, j; char *str = safe_emalloc(*len, 1, 1); - unsigned char *end = *(unsigned char **)p+*len; + unsigned char *end = *(unsigned char **)p+maxlen; if(end *p) { efree(str); return NULL; } - for (i = 0; i *len *p end; i++) { + for (i = 0; i *len; i++) { + if (*p = end) { + efree(str); + return NULL; + } if (**p != '\\') { str[i] = (char)**p; } else { @@ -525,7 +529,7 @@ return 0; } - if ((str = unserialize_str(YYCURSOR, len)) == NULL) { + if ((str = unserialize_str(YYCURSOR, len, maxlen)) == NULL) { return 0; } http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/serialize/unserializeS.phpt?r1=1.1.2.1r2=1.1.2.2diff_format=u Index: php-src/ext/standard/tests/serialize/unserializeS.phpt diff -u php-src/ext/standard/tests/serialize/unserializeS.phpt:1.1.2.1 php-src/ext/standard/tests/serialize/unserializeS.phpt:1.1.2.2 --- php-src/ext/standard/tests/serialize/unserializeS.phpt:1.1.2.1 Fri Mar 23 20:15:22 2007 +++ php-src/ext/standard/tests/serialize/unserializeS.phpt Mon Jul 9 14:31:56 2007 @@ -11,4 +11,4 @@ var_dump($data); --EXPECT-- -string(100) +bool(false) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard var_unserializer.c var_unserializer.re
tony2001Tue Mar 27 09:29:10 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard var_unserializer.re var_unserializer.c Log: MFH: fix compile warning http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var_unserializer.re?r1=1.52.2.2.2.2r2=1.52.2.2.2.3diff_format=u Index: php-src/ext/standard/var_unserializer.re diff -u php-src/ext/standard/var_unserializer.re:1.52.2.2.2.2 php-src/ext/standard/var_unserializer.re:1.52.2.2.2.3 --- php-src/ext/standard/var_unserializer.re:1.52.2.2.2.2 Fri Mar 23 20:15:21 2007 +++ php-src/ext/standard/var_unserializer.reTue Mar 27 09:29:10 2007 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: var_unserializer.re,v 1.52.2.2.2.2 2007/03/23 20:15:21 stas Exp $ */ +/* $Id: var_unserializer.re,v 1.52.2.2.2.3 2007/03/27 09:29:10 tony2001 Exp $ */ #include php.h #include ext/standard/php_var.h @@ -142,7 +142,7 @@ { size_t i, j; char *str = safe_emalloc(*len, 1, 1); - unsigned char *end = *p+*len; + unsigned char *end = *(unsigned char **)p+*len; if(end *p) { efree(str); http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var_unserializer.c?r1=1.70.2.4.2.4r2=1.70.2.4.2.5diff_format=u Index: php-src/ext/standard/var_unserializer.c diff -u php-src/ext/standard/var_unserializer.c:1.70.2.4.2.4 php-src/ext/standard/var_unserializer.c:1.70.2.4.2.5 --- php-src/ext/standard/var_unserializer.c:1.70.2.4.2.4Fri Mar 23 20:28:40 2007 +++ php-src/ext/standard/var_unserializer.c Tue Mar 27 09:29:10 2007 @@ -1,4 +1,4 @@ -/* Generated by re2c 0.11.0 on Fri Mar 23 20:26:08 2007 */ +/* Generated by re2c 0.11.2 on Tue Mar 27 13:17:43 2007 */ #line 1 ext/standard/var_unserializer.re /* +--+ @@ -18,7 +18,7 @@ +--+ */ -/* $Id: var_unserializer.c,v 1.70.2.4.2.4 2007/03/23 20:28:40 nlopess Exp $ */ +/* $Id: var_unserializer.c,v 1.70.2.4.2.5 2007/03/27 09:29:10 tony2001 Exp $ */ #include php.h #include ext/standard/php_var.h @@ -144,7 +144,7 @@ { size_t i, j; char *str = safe_emalloc(*len, 1, 1); - unsigned char *end = *p+*len; + unsigned char *end = *(unsigned char **)p+*len; if(end *p) { efree(str); @@ -394,7 +394,7 @@ { - static unsigned char yybm[] = { + static const unsigned char yybm[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard var_unserializer.c var_unserializer.re /ext/standard/tests/serialize unserializeS.phpt
stasFri Mar 23 20:15:22 2007 UTC Added files: (Branch: PHP_5_2) /php-src/ext/standard/tests/serialize unserializeS.phpt Modified files: /php-src/ext/standard var_unserializer.c var_unserializer.re Log: fix MOPB-29 - unserialize modifier S does not calculate length correctly # reported by Stefan Esser http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var_unserializer.c?r1=1.70.2.4.2.2r2=1.70.2.4.2.3diff_format=u Index: php-src/ext/standard/var_unserializer.c diff -u php-src/ext/standard/var_unserializer.c:1.70.2.4.2.2 php-src/ext/standard/var_unserializer.c:1.70.2.4.2.3 --- php-src/ext/standard/var_unserializer.c:1.70.2.4.2.2Mon Jan 1 09:36:09 2007 +++ php-src/ext/standard/var_unserializer.c Fri Mar 23 20:15:21 2007 @@ -1,10 +1,10 @@ -/* Generated by re2c 0.9.12 on Thu Dec 14 15:59:31 2006 */ +/* Generated by re2c 0.11.2 on Fri Mar 23 13:13:16 2007 */ #line 1 ext/standard/var_unserializer.re /* +--+ | PHP Version 5| +--+ - | Copyright (c) 1997-2007 The PHP Group| + | Copyright (c) 1997-2006 The PHP Group| +--+ | This source file is subject to version 3.01 of the PHP license, | | that is bundled with this package in the file LICENSE, and is| @@ -18,7 +18,7 @@ +--+ */ -/* $Id: var_unserializer.c,v 1.70.2.4.2.2 2007/01/01 09:36:09 sebastian Exp $ */ +/* $Id: var_unserializer.c,v 1.70.2.4.2.3 2007/03/23 20:15:21 stas Exp $ */ #include php.h #include ext/standard/php_var.h @@ -140,12 +140,18 @@ /* }}} */ -static char *unserialize_str(const unsigned char **p, int len) +static char *unserialize_str(const unsigned char **p, size_t *len) { - int i, j; - char *str = emalloc(len+1); + size_t i, j; + char *str = safe_emalloc(*len, 1, 1); + unsigned char *end = *p+*len; - for (i = 0; i len; i++) { + if(end *p) { + efree(str); + return NULL; + } + + for (i = 0; i *len *p end; i++) { if (**p != '\\') { str[i] = (char)**p; } else { @@ -169,6 +175,7 @@ (*p)++; } str[i] = 0; + *len = i; return str; } @@ -179,7 +186,7 @@ #define YYMARKER marker -#line 187 ext/standard/var_unserializer.re +#line 194 ext/standard/var_unserializer.re @@ -386,53 +393,16 @@ -{ - static unsigned char yybm[] = { - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 128, 128, 128, 128, 128, 128, 128, 128, - 128, 128, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, - }; -#line 426 ext/standard/var_unserializer.c +#line 398 stdout { YYCTYPE yych; - unsigned int yyaccept = 0; - goto yy0; - ++YYCURSOR; -yy0: + if((YYLIMIT - YYCURSOR) 7) YYFILL(7); yych = *YYCURSOR; - switch(yych){ - case 'C': case 'O': goto yy13; + switch(yych) { + case 'C': + case 'O': goto yy13; case 'N': goto yy5; case 'R': goto yy2; case 'S': goto yy10; @@ -446,97 +416,150 @@ case '}':
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/standard var_unserializer.c var_unserializer.re
andrei Fri Dec 15 00:58:08 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/standard var_unserializer.c var_unserializer.re Log: Support for 'S' format in unserialize() (forward compatibility with PHP 6) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/var_unserializer.c?r1=1.70.2.4r2=1.70.2.4.2.1diff_format=u Index: php-src/ext/standard/var_unserializer.c diff -u php-src/ext/standard/var_unserializer.c:1.70.2.4 php-src/ext/standard/var_unserializer.c:1.70.2.4.2.1 --- php-src/ext/standard/var_unserializer.c:1.70.2.4Sun Jan 1 12:50:16 2006 +++ php-src/ext/standard/var_unserializer.c Fri Dec 15 00:58:08 2006 @@ -1,4 +1,4 @@ -/* Generated by re2c 0.9.11 on Sun Jan 1 14:39:32 2006 */ +/* Generated by re2c 0.9.12 on Thu Dec 14 15:59:31 2006 */ #line 1 ext/standard/var_unserializer.re /* +--+ @@ -18,7 +18,7 @@ +--+ */ -/* $Id: var_unserializer.c,v 1.70.2.4 2006/01/01 12:50:16 sniper Exp $ */ +/* $Id: var_unserializer.c,v 1.70.2.4.2.1 2006/12/15 00:58:08 andrei Exp $ */ #include php.h #include ext/standard/php_var.h @@ -140,6 +140,38 @@ /* }}} */ +static char *unserialize_str(const unsigned char **p, int len) +{ + int i, j; + char *str = emalloc(len+1); + + for (i = 0; i len; i++) { + if (**p != '\\') { + str[i] = (char)**p; + } else { + unsigned char ch = 0; + + for (j = 0; j 2; j++) { + (*p)++; + if (**p = '0' **p = '9') { + ch = (ch 4) + (**p -'0'); + } else if (**p = 'a' **p = 'f') { + ch = (ch 4) + (**p -'a'+10); + } else if (**p = 'A' **p = 'F') { + ch = (ch 4) + (**p -'A'+10); + } else { + efree(str); + return NULL; + } + } + str[i] = (char)ch; + } + (*p)++; + } + str[i] = 0; + return str; +} + #define YYFILL(n) do { } while (0) #define YYCTYPE unsigned char #define YYCURSOR cursor @@ -147,7 +179,7 @@ #define YYMARKER marker -#line 155 ext/standard/var_unserializer.re +#line 187 ext/standard/var_unserializer.re @@ -390,7 +422,7 @@ 0, 0, 0, 0, 0, 0, 0, 0, }; -#line 394 ext/standard/var_unserializer.c +#line 426 ext/standard/var_unserializer.c { YYCTYPE yych; unsigned int yyaccept = 0; @@ -400,105 +432,110 @@ if((YYLIMIT - YYCURSOR) 7) YYFILL(7); yych = *YYCURSOR; switch(yych){ - case 'C': case 'O': goto yy12; + case 'C': case 'O': goto yy13; case 'N': goto yy5; case 'R': goto yy2; - case 'a': goto yy10; + case 'S': goto yy10; + case 'a': goto yy11; case 'b': goto yy6; case 'd': goto yy8; case 'i': goto yy7; - case 'o': goto yy11; + case 'o': goto yy12; case 'r': goto yy4; case 's': goto yy9; - case '}': goto yy13; - default:goto yy15; + case '}': goto yy14; + default:goto yy16; } yy2: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == ':') goto yy87; + if(yych == ':') goto yy95; goto yy3; yy3: -#line 626 ext/standard/var_unserializer.re +#line 687 ext/standard/var_unserializer.re { return 0; } -#line 424 ext/standard/var_unserializer.c +#line 457 ext/standard/var_unserializer.c yy4: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == ':') goto yy81; + if(yych == ':') goto yy89; goto yy3; yy5: yych = *++YYCURSOR; - if(yych == ';') goto yy79; + if(yych == ';') goto yy87; goto yy3; yy6: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == ':') goto yy75; + if(yych == ':') goto yy83; goto yy3; yy7: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == ':') goto yy69; + if(yych == ':') goto yy77; goto yy3; yy8: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == ':') goto yy45; + if(yych == ':') goto yy53; goto yy3; yy9: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == ':') goto yy38; + if(yych == ':') goto yy46; goto yy3; yy10: yyaccept = 0; yych = *(YYMARKER = ++YYCURSOR); - if(yych == ':') goto yy31; +