]> granicus.if.org Git - php/commitdiff
MFH: Implemented "jump label" operator (limited "goto")
authorFelipe Pena <felipe@php.net>
Fri, 28 Mar 2008 14:35:01 +0000 (14:35 +0000)
committerFelipe Pena <felipe@php.net>
Fri, 28 Mar 2008 14:35:01 +0000 (14:35 +0000)
[DOC]

26 files changed:
Zend/tests/jump01.phpt [new file with mode: 0755]
Zend/tests/jump02.phpt [new file with mode: 0755]
Zend/tests/jump03.phpt [new file with mode: 0755]
Zend/tests/jump04.phpt [new file with mode: 0755]
Zend/tests/jump05.phpt [new file with mode: 0755]
Zend/tests/jump06.phpt [new file with mode: 0755]
Zend/tests/jump07.phpt [new file with mode: 0755]
Zend/tests/jump08.phpt [new file with mode: 0755]
Zend/tests/jump09.phpt [new file with mode: 0755]
Zend/tests/jump10.phpt [new file with mode: 0755]
Zend/tests/jump11.phpt [new file with mode: 0644]
Zend/tests/jump12.phpt [new file with mode: 0644]
Zend/tests/jump13.phpt [new file with mode: 0644]
Zend/zend_compile.c
Zend/zend_compile.h
Zend/zend_execute_API.c
Zend/zend_globals.h
Zend/zend_language_parser.y
Zend/zend_language_scanner.c
Zend/zend_language_scanner.l
Zend/zend_language_scanner_defs.h
Zend/zend_opcode.c
Zend/zend_vm_def.h
Zend/zend_vm_execute.h
Zend/zend_vm_opcodes.h
ext/standard/url_scanner_ex.c

diff --git a/Zend/tests/jump01.phpt b/Zend/tests/jump01.phpt
new file mode 100755 (executable)
index 0000000..87dba88
--- /dev/null
@@ -0,0 +1,14 @@
+--TEST--
+jump 01: goto backward
+--FILE--
+<?php
+$n = 1;
+L1:
+echo "$n: ok\n";
+$n++;
+if ($n <= 3) goto L1;
+?>
+--EXPECT--
+1: ok
+2: ok
+3: ok
diff --git a/Zend/tests/jump02.phpt b/Zend/tests/jump02.phpt
new file mode 100755 (executable)
index 0000000..ff83bc4
--- /dev/null
@@ -0,0 +1,16 @@
+--TEST--
+jump 02: goto forward
+--FILE--
+<?php
+$n = 1;
+L1:
+if ($n > 3) goto L2;
+echo "$n: ok\n";
+$n++;
+goto L1;
+L2:
+?>
+--EXPECT--
+1: ok
+2: ok
+3: ok
diff --git a/Zend/tests/jump03.phpt b/Zend/tests/jump03.phpt
new file mode 100755 (executable)
index 0000000..2399f30
--- /dev/null
@@ -0,0 +1,18 @@
+--TEST--
+jump 03: goto inside control structures
+--FILE--
+<?php
+do {
+       if (1) {
+               echo "1: ok\n";
+               goto L1;
+       } else {
+           echo "bug\n";
+L1:
+               echo "2: ok\n";
+       }
+} while (0);
+?>
+--EXPECT--
+1: ok
+2: ok
diff --git a/Zend/tests/jump04.phpt b/Zend/tests/jump04.phpt
new file mode 100755 (executable)
index 0000000..2bbf1f5
--- /dev/null
@@ -0,0 +1,24 @@
+--TEST--
+jump 04: goto from loop (backward)
+--FILE--
+<?php
+$s = "X";
+echo "1: ok\n";        
+L1: if ($s != "X") {
+       echo "4: ok\n"; 
+} else {       
+       echo "2: ok\n"; 
+       while ($s != "XXX") {
+               echo "3: ok\n"; 
+               $s .= "X";
+               goto L1;
+               echo "bug\n";   
+       }
+       echo "bug\n";   
+}
+?>
+--EXPECT--
+1: ok
+2: ok
+3: ok
+4: ok
diff --git a/Zend/tests/jump05.phpt b/Zend/tests/jump05.phpt
new file mode 100755 (executable)
index 0000000..2e5e50c
--- /dev/null
@@ -0,0 +1,26 @@
+--TEST--
+jump 05: goto from loop (forward)
+--FILE--
+<?php
+$ar = array("1","2","3");
+foreach ($ar as $val) {
+       switch ($val) {
+               case "1":
+                       echo "1: ok\n";
+                       break;
+               case "2":
+                       echo "2: ok\n";
+                       goto L1;
+               case "3":
+                       echo "bug\n";
+                       break;
+       }
+}
+echo "bug\n";
+L1:
+echo "3: ok\n";
+?>
+--EXPECT--
+1: ok
+2: ok
+3: ok
diff --git a/Zend/tests/jump06.phpt b/Zend/tests/jump06.phpt
new file mode 100755 (executable)
index 0000000..ef01b0e
--- /dev/null
@@ -0,0 +1,8 @@
+--TEST--
+jump 06: goto to undefined label
+--FILE--
+<?php
+goto L1;
+?>
+--EXPECTF--
+Fatal error: 'goto' to undefined label 'L1' in %sjump06.php on line 2
diff --git a/Zend/tests/jump07.phpt b/Zend/tests/jump07.phpt
new file mode 100755 (executable)
index 0000000..c0cb112
--- /dev/null
@@ -0,0 +1,11 @@
+--TEST--
+jump 07: goto into loop (backward)
+--FILE--
+<?php
+while (0) {
+       L1: echo "bug\n";
+}
+goto L1;
+?>
+--EXPECTF--
+Fatal error: 'goto' into loop or switch statement is disallowed in %sjump07.php on line 5
diff --git a/Zend/tests/jump08.phpt b/Zend/tests/jump08.phpt
new file mode 100755 (executable)
index 0000000..25a211c
--- /dev/null
@@ -0,0 +1,11 @@
+--TEST--
+jump 08: goto into loop (forward)
+--FILE--
+<?php
+goto L1;
+while (0) {
+       L1: echo "bug\n";
+}
+?>
+--EXPECTF--
+Fatal error: 'goto' into loop or switch statement is disallowed in %sjump08.php on line 2
diff --git a/Zend/tests/jump09.phpt b/Zend/tests/jump09.phpt
new file mode 100755 (executable)
index 0000000..52a14b7
--- /dev/null
@@ -0,0 +1,13 @@
+--TEST--
+jump 09: goto into switch (backward)
+--FILE--
+<?php
+switch (0) {
+       case 1:
+               L1: echo "bug\n";
+               break;
+}
+goto L1;
+?>
+--EXPECTF--
+Fatal error: 'goto' into loop or switch statement is disallowed in %sjump09.php on line 7
diff --git a/Zend/tests/jump10.phpt b/Zend/tests/jump10.phpt
new file mode 100755 (executable)
index 0000000..67206a2
--- /dev/null
@@ -0,0 +1,13 @@
+--TEST--
+jump 10: goto into switch (forward)
+--FILE--
+<?php
+goto L1;
+switch (0) {
+       case 1:
+               L1: echo "bug\n";
+               break;
+}
+?>
+--EXPECTF--
+Fatal error: 'goto' into loop or switch statement is disallowed in %sjump10.php on line 2
diff --git a/Zend/tests/jump11.phpt b/Zend/tests/jump11.phpt
new file mode 100644 (file)
index 0000000..bd1107c
--- /dev/null
@@ -0,0 +1,26 @@
+--TEST--
+jump 08: goto inside switch in constructor
+--FILE--
+<?php
+class foobar {
+    public function __construct() {
+        switch (1) {            
+            default:
+                goto b;
+                a:
+                    print "ok!\n";
+                    break;               
+                b:
+                    print "ok!\n";
+                    goto a;
+        }        
+        print "ok!\n";
+    }
+}
+
+new foobar;
+?>
+--EXPECT--
+ok!
+ok!
+ok!
diff --git a/Zend/tests/jump12.phpt b/Zend/tests/jump12.phpt
new file mode 100644 (file)
index 0000000..3c244d6
--- /dev/null
@@ -0,0 +1,19 @@
+--TEST--
+jump 09: goto in declare statement
+--FILE--
+<?php
+a: print "ok!\n";
+goto c;
+declare (ticks=1) {
+    b:
+        print "ok!\n";
+        exit;
+}
+c:
+    print "ok!\n";
+    goto b;
+?>
+--EXPECT--
+ok!
+ok!
+ok!
diff --git a/Zend/tests/jump13.phpt b/Zend/tests/jump13.phpt
new file mode 100644 (file)
index 0000000..2d57f4a
--- /dev/null
@@ -0,0 +1,25 @@
+--TEST--
+jump 10: goto with try blocks
+--FILE--
+<?php
+goto a;
+e: return;
+try {
+    a: print 1;
+    goto b;
+    try {
+        b: print 2;
+        goto c;
+    }
+    catch(Exception $e) {
+        c: print 3;
+        goto d;    
+    }    
+}
+catch(Exception $e) {
+    d: print 4;
+    goto e;    
+}
+?>
+--EXPECT--
+1234
index 19e1bd7f55395a0dc23cb883c1514adfe2917d31..927162af6bc8e7c1165702fe0d961845db9b7081 100644 (file)
@@ -130,6 +130,8 @@ void zend_init_compiler_data_structures(TSRMLS_D)
        CG(current_import) = NULL;
        init_compiler_declarables(TSRMLS_C);
        zend_hash_apply(CG(auto_globals), (apply_func_t) zend_auto_global_arm TSRMLS_CC);
+       zend_stack_init(&CG(labels_stack));
+       CG(labels) = NULL;
 }
 
 
@@ -163,6 +165,7 @@ void shutdown_compiler(TSRMLS_D)
        zend_stack_destroy(&CG(list_stack));
        zend_hash_destroy(&CG(filenames_table));
        zend_llist_destroy(&CG(open_files));
+       zend_stack_destroy(&CG(labels_stack));
 }
 
 
@@ -1274,6 +1277,9 @@ void zend_do_begin_function_declaration(znode *function_token, znode *function_n
                CG(doc_comment) = NULL;
                CG(doc_comment_len) = 0;
        }
+
+       zend_stack_push(&CG(labels_stack), (void *) &CG(labels), sizeof(HashTable*));
+       CG(labels) = NULL;
 }
 
 void zend_do_handle_exception(TSRMLS_D)
@@ -1295,6 +1301,7 @@ void zend_do_end_function_declaration(znode *function_token TSRMLS_DC)
        zend_do_return(NULL, 0 TSRMLS_CC);
 
        pass_two(CG(active_op_array) TSRMLS_CC);
+       zend_release_labels(TSRMLS_C);
 
        if (CG(active_class_entry)) {
                zend_check_magic_method_implementation(CG(active_class_entry), (zend_function*)CG(active_op_array), E_COMPILE_ERROR TSRMLS_CC);
@@ -1668,6 +1675,110 @@ void zend_do_fetch_class(znode *result, znode *class_name TSRMLS_DC)
        *result = opline->result;
 }
 
+void zend_do_label(znode *label TSRMLS_DC) /* {{{ */
+{
+       zend_op_array *oparray = CG(active_op_array);
+       zend_label dest;
+
+       if (!CG(labels)) {
+               ALLOC_HASHTABLE(CG(labels));
+               zend_hash_init(CG(labels), 4, NULL, NULL, 0);
+       }
+
+       dest.brk_cont = oparray->current_brk_cont;
+       dest.opline_num = get_next_op_number(oparray);
+
+       if (zend_hash_add(CG(labels), Z_STRVAL(label->u.constant), Z_STRLEN(label->u.constant) + 1, (void**)&dest, sizeof(zend_label), NULL) == FAILURE) {
+               zend_error(E_COMPILE_ERROR, "Label '%s' already defined", Z_STRVAL(label->u.constant));
+       }
+
+       /* Done with label now */
+       zval_dtor(&label->u.constant);
+}
+/* }}} */
+
+void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline, int pass2 TSRMLS_DC) /* {{{ */
+{
+       zend_label *dest;
+       long current, distance;
+
+       if (CG(labels) == NULL ||
+           zend_hash_find(CG(labels), Z_STRVAL(opline->op2.u.constant), Z_STRLEN(opline->op2.u.constant)+1, (void**)&dest) == FAILURE) {
+
+           if (pass2) {
+               CG(in_compilation) = 1;
+               CG(active_op_array) = op_array;
+               CG(zend_lineno) = opline->lineno;
+                       zend_error(E_COMPILE_ERROR, "'goto' to undefined label '%s'", Z_STRVAL(opline->op2.u.constant));
+           } else {
+                       /* Label is not defined. Delay to pass 2. */
+                       INC_BPC(op_array);
+                       return;
+               }
+       }
+
+       opline->op1.u.opline_num = dest->opline_num;
+       zval_dtor(&opline->op2.u.constant);
+
+       /* Check that we are not moving into loop or switch */
+       current = opline->extended_value;
+       for (distance = 0; current != dest->brk_cont; distance++) {
+               if (current == -1) {
+                   if (pass2) {
+                       CG(in_compilation) = 1;
+                       CG(active_op_array) = op_array;
+                       CG(zend_lineno) = opline->lineno;
+               }
+                       zend_error(E_COMPILE_ERROR, "'goto' into loop or switch statement is disallowed");
+               }
+               current = op_array->brk_cont_array[current].parent;
+       }
+
+       if (distance == 0) {
+               /* Nothing to break out of, optimize to ZEND_JMP */
+               opline->opcode = ZEND_JMP;
+               opline->extended_value = 0;
+               SET_UNUSED(opline->op2);
+       } else {
+               /* Set real break distance */
+               ZVAL_LONG(&opline->op2.u.constant, distance);
+       }
+
+    if (pass2) {
+               DEC_BPC(op_array);
+    }
+}
+/* }}} */
+
+void zend_do_goto(znode *label TSRMLS_DC) /* {{{ */
+{
+       zend_op *opline = get_next_op(CG(active_op_array) TSRMLS_CC);
+
+       opline->opcode = ZEND_GOTO;
+       opline->extended_value = CG(active_op_array)->current_brk_cont;
+       SET_UNUSED(opline->op1);
+       opline->op2 = *label;
+       zend_resolve_goto_label(CG(active_op_array), opline, 0 TSRMLS_CC);
+}
+/* }}} */
+
+void zend_release_labels(TSRMLS_D) /* {{{ */
+{
+       if (CG(labels)) {
+               zend_hash_destroy(CG(labels));
+               FREE_HASHTABLE(CG(labels));
+       }
+       if (!zend_stack_is_empty(&CG(labels_stack))) {
+               HashTable **pht;
+
+               zend_stack_top(&CG(labels_stack), (void**)&pht);
+               CG(labels) = *pht;
+               zend_stack_del_top(&CG(labels_stack));
+       } else {
+               CG(labels) = NULL;
+       }
+}
+/* }}} */
 
 void zend_do_build_full_name(znode *result, znode *prefix, znode *name TSRMLS_DC)
 {
index c73554d4b2030474006e2ce24cd01856df67e66c..0a50fe69a81b32b0fa7c866b4e9e91de70385fce 100644 (file)
@@ -95,6 +95,10 @@ typedef struct _zend_brk_cont_element {
        int parent;
 } zend_brk_cont_element;
 
+typedef struct _zend_label {
+       int brk_cont;
+       zend_uint opline_num;
+} zend_label;
 
 typedef struct _zend_try_catch_element {
        zend_uint try_op;
@@ -520,6 +524,11 @@ void zend_do_namespace(znode *name TSRMLS_DC);
 void zend_do_use(znode *name, znode *new_name, int is_global TSRMLS_DC);
 void zend_do_end_compilation(TSRMLS_D);
 
+void zend_do_label(znode *label TSRMLS_DC);
+void zend_do_goto(znode *label TSRMLS_DC);
+void zend_resolve_goto_label(zend_op_array *op_array, zend_op *opline, int pass2 TSRMLS_DC);
+void zend_release_labels(TSRMLS_D);
+
 ZEND_API void function_add_ref(zend_function *function);
 
 #define INITIAL_OP_ARRAY_SIZE 64
index 0666762b3b0a5b743dfb200721cf5bee53949d97..98b17376cde5b6ff6675e1837d7f9ec45413139c 100644 (file)
@@ -1371,6 +1371,11 @@ void execute_new_code(TSRMLS_D) /* {{{ */
                        Z_SET_REFCOUNT(opline->op2.u.constant, 2);
                }
                switch (opline->opcode) {
+                       case ZEND_GOTO:
+                               if (Z_TYPE(opline->op2.u.constant) != IS_LONG) {
+                                       zend_resolve_goto_label(CG(active_op_array), opline, 1 TSRMLS_CC);
+                               }
+                               /* break omitted intentionally */
                        case ZEND_JMP:
                                opline->op1.u.jmp_addr = &CG(active_op_array)->opcodes[opline->op1.u.opline_num];
                                break;
@@ -1385,7 +1390,9 @@ void execute_new_code(TSRMLS_D) /* {{{ */
                ZEND_VM_SET_OPCODE_HANDLER(opline);
                opline++;
        }
-
+       
+       zend_release_labels(TSRMLS_C);
+       
        EG(return_value_ptr_ptr) = &local_retval;
        EG(active_op_array) = CG(active_op_array);
        zend_execute(CG(active_op_array) TSRMLS_CC);
index 66997b3ae03be05d1eb72c43a7ec2d3f462ed835..d8088a68ccb6640f3a1b20f9227f398b56d4c701 100644 (file)
@@ -131,6 +131,9 @@ struct _zend_compiler_globals {
        zval      *current_namespace;
        HashTable *current_import;
 
+       HashTable *labels;
+       zend_stack labels_stack;
+
 #ifdef ZTS
        HashTable **static_members;
        int last_static_member;
index db73bf53841bb9f6405468536763fa35674e0a5b..896e786f1c6ab7b628af60926d8898b710e0d90a 100644 (file)
 %token T_DEFAULT
 %token T_BREAK
 %token T_CONTINUE
+%token T_GOTO
 %token T_FUNCTION
 %token T_CONST
 %token T_RETURN
@@ -199,6 +200,7 @@ inner_statement:
 
 statement:
                unticked_statement { zend_do_ticks(TSRMLS_C); }
+       |       T_STRING ':' { zend_do_label(&$1 TSRMLS_CC); }
 ;
 
 unticked_statement:
@@ -247,6 +249,7 @@ unticked_statement:
                '{' inner_statement_list '}' { zend_do_end_catch(&$1 TSRMLS_CC); }
                additional_catches { zend_do_mark_last_catch(&$7, &$18 TSRMLS_CC); }
        |       T_THROW expr ';' { zend_do_throw(&$2 TSRMLS_CC); }
+       |       T_GOTO T_STRING ';' { zend_do_goto(&$2 TSRMLS_CC); }
 ;
 
 
index 7560e03a8d2b308c919350f89ee3c2198ad1468d..859ddb42fd36e3bdae1e3bacea9d2a0e41e29939 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4.dev on Sat Mar 22 18:34:15 2008 */
+/* Generated by re2c 0.13.4.dev on Wed Mar 26 23:08:45 2008 */
 #line 1 "Zend/zend_language_scanner.l"
 /*
    +----------------------------------------------------------------------+
@@ -301,6 +301,7 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSR
                CG(active_op_array) = original_active_op_array;
                if (compilation_successful) {
                        pass_two(op_array TSRMLS_CC);
+                       zend_release_labels(TSRMLS_C);
                } else {
                        efree(op_array);
                        retval = NULL;
@@ -423,6 +424,7 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
                        zend_do_return(NULL, 0 TSRMLS_CC);
                        CG(active_op_array) = original_active_op_array;
                        pass_two(op_array TSRMLS_CC);
+                       zend_release_labels(TSRMLS_C);
                        retval = op_array;
                }
                zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
@@ -598,7 +600,7 @@ yymore_restart:
        }
 
 
-#line 602 "Zend/zend_language_scanner.c"
+#line 604 "Zend/zend_language_scanner.c"
 {
        YYCTYPE yych;
        unsigned int yyaccept = 0;
@@ -722,7 +724,7 @@ yyc_INITIAL:
 yy3:
                YYDEBUG(3, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1384 "Zend/zend_language_scanner.l"
+#line 1390 "Zend/zend_language_scanner.l"
                {
 
        while (1) {
@@ -753,7 +755,7 @@ inline_char_handler:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_INLINE_HTML;
 }
-#line 757 "Zend/zend_language_scanner.c"
+#line 759 "Zend/zend_language_scanner.c"
 yy4:
                YYDEBUG(4, *YYCURSOR);
                yyaccept = 0;
@@ -780,7 +782,7 @@ yy8:
 yy9:
                YYDEBUG(9, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1375 "Zend/zend_language_scanner.l"
+#line 1381 "Zend/zend_language_scanner.l"
                {
        if ((YYCTYPE*)yytext == SCNG(yy_start)) {
                /* ignore first line when it's started with a # */
@@ -789,7 +791,7 @@ yy9:
                goto inline_char_handler;
        }
 }
-#line 793 "Zend/zend_language_scanner.c"
+#line 795 "Zend/zend_language_scanner.c"
 yy10:
                YYDEBUG(10, *YYCURSOR);
                yyaccept = 1;
@@ -815,7 +817,7 @@ yy12:
 yy13:
                YYDEBUG(13, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1359 "Zend/zend_language_scanner.l"
+#line 1365 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        if (CG(short_tags)) {
@@ -831,14 +833,14 @@ yy13:
                return T_INLINE_HTML;
        }
 }
-#line 835 "Zend/zend_language_scanner.c"
+#line 837 "Zend/zend_language_scanner.c"
 yy14:
                YYDEBUG(14, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy50;
                YYDEBUG(15, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1333 "Zend/zend_language_scanner.l"
+#line 1339 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -853,7 +855,7 @@ yy14:
                return T_INLINE_HTML;
        }
 }
-#line 857 "Zend/zend_language_scanner.c"
+#line 859 "Zend/zend_language_scanner.c"
 yy16:
                YYDEBUG(16, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1043,7 +1045,7 @@ yy42:
                ++YYCURSOR;
                YYDEBUG(45, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1291 "Zend/zend_language_scanner.l"
+#line 1297 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1052,7 +1054,7 @@ yy42:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1056 "Zend/zend_language_scanner.c"
+#line 1058 "Zend/zend_language_scanner.c"
 yy46:
                YYDEBUG(46, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1079,7 +1081,7 @@ yy50:
                ++YYCURSOR;
                YYDEBUG(51, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1301 "Zend/zend_language_scanner.l"
+#line 1307 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1094,13 +1096,13 @@ yy50:
                return T_INLINE_HTML;
        }
 }
-#line 1098 "Zend/zend_language_scanner.c"
+#line 1100 "Zend/zend_language_scanner.c"
 yy52:
                YYDEBUG(52, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(53, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1317 "Zend/zend_language_scanner.l"
+#line 1323 "Zend/zend_language_scanner.l"
                {
        if (CG(short_tags)) {
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -1115,7 +1117,7 @@ yy52:
                return T_INLINE_HTML;
        }
 }
-#line 1119 "Zend/zend_language_scanner.c"
+#line 1121 "Zend/zend_language_scanner.c"
 yy54:
                YYDEBUG(54, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1142,7 +1144,7 @@ yy57:
 yy58:
                YYDEBUG(58, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1349 "Zend/zend_language_scanner.l"
+#line 1355 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -1151,7 +1153,7 @@ yy58:
        BEGIN(ST_IN_SCRIPTING);
        return T_OPEN_TAG;
 }
-#line 1155 "Zend/zend_language_scanner.c"
+#line 1157 "Zend/zend_language_scanner.c"
 yy59:
                YYDEBUG(59, *YYCURSOR);
                ++YYCURSOR;
@@ -1255,12 +1257,12 @@ yy65:
 yy66:
                YYDEBUG(66, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1776 "Zend/zend_language_scanner.l"
+#line 1782 "Zend/zend_language_scanner.l"
                {
        zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1264 "Zend/zend_language_scanner.c"
+#line 1266 "Zend/zend_language_scanner.c"
 yy67:
                YYDEBUG(67, *YYCURSOR);
                ++YYCURSOR;
@@ -1272,12 +1274,12 @@ yy68:
                ++YYCURSOR;
                YYDEBUG(69, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1908 "Zend/zend_language_scanner.l"
+#line 1914 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '`';
 }
-#line 1281 "Zend/zend_language_scanner.c"
+#line 1283 "Zend/zend_language_scanner.c"
 yy70:
                YYDEBUG(70, *YYCURSOR);
                ++YYCURSOR;
@@ -1361,13 +1363,13 @@ yy74:
 yy76:
                YYDEBUG(76, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1781 "Zend/zend_language_scanner.l"
+#line 1787 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        zend_scan_escape_string(zendlval, yytext, yyleng, '`' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1371 "Zend/zend_language_scanner.c"
+#line 1373 "Zend/zend_language_scanner.c"
 yy77:
                YYDEBUG(77, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1391,14 +1393,14 @@ yy80:
                ++YYCURSOR;
                YYDEBUG(81, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1749 "Zend/zend_language_scanner.l"
+#line 1755 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 1402 "Zend/zend_language_scanner.c"
+#line 1404 "Zend/zend_language_scanner.c"
 yy82:
                YYDEBUG(82, *YYCURSOR);
                yyaccept = 2;
@@ -1414,24 +1416,24 @@ yy82:
 yy84:
                YYDEBUG(84, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1437 "Zend/zend_language_scanner.l"
+#line 1443 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1424 "Zend/zend_language_scanner.c"
+#line 1426 "Zend/zend_language_scanner.c"
 yy85:
                YYDEBUG(85, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(86, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1083 "Zend/zend_language_scanner.l"
+#line 1089 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 1435 "Zend/zend_language_scanner.c"
+#line 1437 "Zend/zend_language_scanner.c"
 yy87:
                YYDEBUG(87, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1442,7 +1444,7 @@ yy88:
                ++YYCURSOR;
                YYDEBUG(89, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1429 "Zend/zend_language_scanner.l"
+#line 1435 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1450,7 +1452,7 @@ yy88:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1454 "Zend/zend_language_scanner.c"
+#line 1456 "Zend/zend_language_scanner.c"
 yy90:
                YYDEBUG(90, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1468,7 +1470,7 @@ yy91:
                ++YYCURSOR;
                YYDEBUG(92, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1419 "Zend/zend_language_scanner.l"
+#line 1425 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1476,7 +1478,7 @@ yy91:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1480 "Zend/zend_language_scanner.c"
+#line 1482 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_COMMENT:
@@ -1533,34 +1535,34 @@ yy95:
                }
                YYDEBUG(97, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1541 "Zend/zend_language_scanner.l"
+#line 1547 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 1541 "Zend/zend_language_scanner.c"
+#line 1543 "Zend/zend_language_scanner.c"
 yy98:
                YYDEBUG(98, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '/') goto yy100;
                YYDEBUG(99, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1559 "Zend/zend_language_scanner.l"
+#line 1565 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 1552 "Zend/zend_language_scanner.c"
+#line 1554 "Zend/zend_language_scanner.c"
 yy100:
                YYDEBUG(100, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(101, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1553 "Zend/zend_language_scanner.l"
+#line 1559 "Zend/zend_language_scanner.l"
                {
        HANDLE_NEWLINES(yytext, yyleng);
        BEGIN(ST_IN_SCRIPTING);
        return T_COMMENT;
 }
-#line 1564 "Zend/zend_language_scanner.c"
+#line 1566 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOC_COMMENT:
@@ -1617,28 +1619,28 @@ yy104:
                }
                YYDEBUG(106, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1541 "Zend/zend_language_scanner.l"
+#line 1547 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 1625 "Zend/zend_language_scanner.c"
+#line 1627 "Zend/zend_language_scanner.c"
 yy107:
                YYDEBUG(107, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '/') goto yy109;
                YYDEBUG(108, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1559 "Zend/zend_language_scanner.l"
+#line 1565 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 1636 "Zend/zend_language_scanner.c"
+#line 1638 "Zend/zend_language_scanner.c"
 yy109:
                YYDEBUG(109, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(110, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1545 "Zend/zend_language_scanner.l"
+#line 1551 "Zend/zend_language_scanner.l"
                {
        CG(doc_comment) = estrndup(yytext, yyleng);
        CG(doc_comment_len) = yyleng;
@@ -1646,7 +1648,7 @@ yy109:
        BEGIN(ST_IN_SCRIPTING);
        return T_DOC_COMMENT;
 }
-#line 1650 "Zend/zend_language_scanner.c"
+#line 1652 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_DOUBLE_QUOTES:
@@ -1748,12 +1750,12 @@ yy116:
 yy117:
                YYDEBUG(117, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1757 "Zend/zend_language_scanner.l"
+#line 1763 "Zend/zend_language_scanner.l"
                {
        zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1757 "Zend/zend_language_scanner.c"
+#line 1759 "Zend/zend_language_scanner.c"
 yy118:
                YYDEBUG(118, *YYCURSOR);
                ++YYCURSOR;
@@ -1765,12 +1767,12 @@ yy119:
                ++YYCURSOR;
                YYDEBUG(120, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1902 "Zend/zend_language_scanner.l"
+#line 1908 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_IN_SCRIPTING);
        return '"';
 }
-#line 1774 "Zend/zend_language_scanner.c"
+#line 1776 "Zend/zend_language_scanner.c"
 yy121:
                YYDEBUG(121, *YYCURSOR);
                ++YYCURSOR;
@@ -1857,14 +1859,14 @@ yy125:
 yy127:
                YYDEBUG(127, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1768 "Zend/zend_language_scanner.l"
+#line 1774 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        if (yytext[yyleng-1] == '"') --yyleng;
        zend_scan_escape_string(zendlval, yytext, yyleng, '"' TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 1868 "Zend/zend_language_scanner.c"
+#line 1870 "Zend/zend_language_scanner.c"
 yy128:
                YYDEBUG(128, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1888,14 +1890,14 @@ yy131:
                ++YYCURSOR;
                YYDEBUG(132, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1749 "Zend/zend_language_scanner.l"
+#line 1755 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 1899 "Zend/zend_language_scanner.c"
+#line 1901 "Zend/zend_language_scanner.c"
 yy133:
                YYDEBUG(133, *YYCURSOR);
                yyaccept = 2;
@@ -1911,24 +1913,24 @@ yy133:
 yy135:
                YYDEBUG(135, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1437 "Zend/zend_language_scanner.l"
+#line 1443 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1921 "Zend/zend_language_scanner.c"
+#line 1923 "Zend/zend_language_scanner.c"
 yy136:
                YYDEBUG(136, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(137, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1083 "Zend/zend_language_scanner.l"
+#line 1089 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 1932 "Zend/zend_language_scanner.c"
+#line 1934 "Zend/zend_language_scanner.c"
 yy138:
                YYDEBUG(138, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1939,7 +1941,7 @@ yy139:
                ++YYCURSOR;
                YYDEBUG(140, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1429 "Zend/zend_language_scanner.l"
+#line 1435 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -1947,7 +1949,7 @@ yy139:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1951 "Zend/zend_language_scanner.c"
+#line 1953 "Zend/zend_language_scanner.c"
 yy141:
                YYDEBUG(141, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -1965,7 +1967,7 @@ yy142:
                ++YYCURSOR;
                YYDEBUG(143, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1419 "Zend/zend_language_scanner.l"
+#line 1425 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -1973,7 +1975,7 @@ yy142:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 1977 "Zend/zend_language_scanner.c"
+#line 1979 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_END_HEREDOC:
@@ -1984,7 +1986,7 @@ yyc_ST_END_HEREDOC:
        ++YYCURSOR;
        YYDEBUG(147, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1737 "Zend/zend_language_scanner.l"
+#line 1743 "Zend/zend_language_scanner.l"
        {
        zendlval->value.str.val = CG(heredoc);
        zendlval->value.str.len = CG(heredoc_len);
@@ -1995,7 +1997,7 @@ yyc_ST_END_HEREDOC:
        BEGIN(ST_IN_SCRIPTING);
        return T_END_HEREDOC;
 }
-#line 1999 "Zend/zend_language_scanner.c"
+#line 2001 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_END_NOWDOC:
        YYDEBUG(148, *YYCURSOR);
@@ -2005,7 +2007,7 @@ yyc_ST_END_NOWDOC:
        ++YYCURSOR;
        YYDEBUG(151, *YYCURSOR);
        yyleng = YYCURSOR - SCNG(yy_text);
-#line 1889 "Zend/zend_language_scanner.l"
+#line 1895 "Zend/zend_language_scanner.l"
        {
        Z_STRVAL_P(zendlval) = CG(heredoc);
        Z_STRLEN_P(zendlval) = CG(heredoc_len);
@@ -2016,7 +2018,7 @@ yyc_ST_END_NOWDOC:
        BEGIN(ST_IN_SCRIPTING);
        return T_END_NOWDOC;
 }
-#line 2020 "Zend/zend_language_scanner.c"
+#line 2022 "Zend/zend_language_scanner.c"
 /* *********************************** */
 yyc_ST_HEREDOC:
        {
@@ -2073,12 +2075,12 @@ yyc_ST_HEREDOC:
 yy154:
                YYDEBUG(154, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1795 "Zend/zend_language_scanner.l"
+#line 1801 "Zend/zend_language_scanner.l"
                {
        zend_scan_escape_string(zendlval, yytext, yyleng, 0 TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 2082 "Zend/zend_language_scanner.c"
+#line 2084 "Zend/zend_language_scanner.c"
 yy155:
                YYDEBUG(155, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2364,13 +2366,13 @@ yy173:
 yy175:
                YYDEBUG(175, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1800 "Zend/zend_language_scanner.l"
+#line 1806 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        zend_scan_escape_string(zendlval, yytext, yyleng, 0 TSRMLS_CC);
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 2374 "Zend/zend_language_scanner.c"
+#line 2376 "Zend/zend_language_scanner.c"
 yy176:
                YYDEBUG(176, *YYCURSOR);
                yyaccept = 1;
@@ -2469,7 +2471,7 @@ yy182:
                ++YYCURSOR;
                YYDEBUG(183, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1703 "Zend/zend_language_scanner.l"
+#line 1709 "Zend/zend_language_scanner.l"
                {
        char *end = yytext + yyleng - 1;
 
@@ -2503,7 +2505,7 @@ yy182:
                yymore();
        }
 }
-#line 2507 "Zend/zend_language_scanner.c"
+#line 2509 "Zend/zend_language_scanner.c"
 yy184:
                YYDEBUG(184, *YYCURSOR);
                yyaccept = 1;
@@ -2741,14 +2743,14 @@ yy203:
                ++YYCURSOR;
                YYDEBUG(204, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1749 "Zend/zend_language_scanner.l"
+#line 1755 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = (long) '{';
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        yyless(1);
        return T_CURLY_OPEN;
 }
-#line 2752 "Zend/zend_language_scanner.c"
+#line 2754 "Zend/zend_language_scanner.c"
 yy205:
                YYDEBUG(205, *YYCURSOR);
                yyaccept = 2;
@@ -2776,24 +2778,24 @@ yy205:
 yy207:
                YYDEBUG(207, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1437 "Zend/zend_language_scanner.l"
+#line 1443 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 2786 "Zend/zend_language_scanner.c"
+#line 2788 "Zend/zend_language_scanner.c"
 yy208:
                YYDEBUG(208, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(209, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1083 "Zend/zend_language_scanner.l"
+#line 1089 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_VARNAME TSRMLS_CC);
        return T_DOLLAR_OPEN_CURLY_BRACES;
 }
-#line 2797 "Zend/zend_language_scanner.c"
+#line 2799 "Zend/zend_language_scanner.c"
 yy210:
                YYDEBUG(210, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2804,7 +2806,7 @@ yy211:
                ++YYCURSOR;
                YYDEBUG(212, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1429 "Zend/zend_language_scanner.l"
+#line 1435 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 1);
        yy_push_state(ST_VAR_OFFSET TSRMLS_CC);
@@ -2812,7 +2814,7 @@ yy211:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 2816 "Zend/zend_language_scanner.c"
+#line 2818 "Zend/zend_language_scanner.c"
 yy213:
                YYDEBUG(213, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -2830,7 +2832,7 @@ yy214:
                ++YYCURSOR;
                YYDEBUG(215, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1419 "Zend/zend_language_scanner.l"
+#line 1425 "Zend/zend_language_scanner.l"
                {
        yyless(yyleng - 3);
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
@@ -2838,7 +2840,7 @@ yy214:
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 2842 "Zend/zend_language_scanner.c"
+#line 2844 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_IN_SCRIPTING:
@@ -2957,7 +2959,7 @@ yyc_ST_IN_SCRIPTING:
                case '%':       goto yy249;
                case '&':       goto yy250;
                case '\'':      goto yy272;
-               case '(':       goto yy236;
+               case '(':       goto yy237;
                case ')':
                case ',':
                case ';':
@@ -2967,7 +2969,7 @@ yyc_ST_IN_SCRIPTING:
                case '~':       goto yy256;
                case '*':       goto yy246;
                case '+':       goto yy242;
-               case '-':       goto yy231;
+               case '-':       goto yy232;
                case '.':       goto yy248;
                case '/':       goto yy247;
                case '0':       goto yy262;
@@ -2980,7 +2982,7 @@ yyc_ST_IN_SCRIPTING:
                case '7':
                case '8':
                case '9':       goto yy264;
-               case ':':       goto yy233;
+               case ':':       goto yy234;
                case '<':       goto yy244;
                case '=':       goto yy240;
                case '>':       goto yy245;
@@ -2998,17 +3000,17 @@ yyc_ST_IN_SCRIPTING:
                case 'F':
                case 'f':       goto yy221;
                case 'G':
-               case 'g':       goto yy238;
+               case 'g':       goto yy230;
                case 'I':
                case 'i':       goto yy225;
                case 'L':
                case 'l':       goto yy241;
                case 'N':
-               case 'n':       goto yy234;
+               case 'n':       goto yy235;
                case 'O':
                case 'o':       goto yy253;
                case 'P':
-               case 'p':       goto yy230;
+               case 'p':       goto yy231;
                case 'R':
                case 'r':       goto yy223;
                case 'S':
@@ -3016,9 +3018,9 @@ yyc_ST_IN_SCRIPTING:
                case 'T':
                case 't':       goto yy224;
                case 'U':
-               case 'u':       goto yy237;
+               case 'u':       goto yy238;
                case 'V':
-               case 'v':       goto yy235;
+               case 'v':       goto yy236;
                case 'W':
                case 'w':       goto yy226;
                case 'X':
@@ -3037,48 +3039,48 @@ yy218:
                YYDEBUG(-1, yych);
                switch ((yych = *YYCURSOR)) {
                case 'C':
-               case 'c':       goto yy804;
+               case 'c':       goto yy808;
                case 'L':
-               case 'l':       goto yy805;
+               case 'l':       goto yy809;
                case 'M':
-               case 'm':       goto yy806;
+               case 'm':       goto yy810;
                case 'N':
-               case 'n':       goto yy807;
+               case 'n':       goto yy811;
                case 'V':
-               case 'v':       goto yy808;
+               case 'v':       goto yy812;
                case 'X':
-               case 'x':       goto yy809;
+               case 'x':       goto yy813;
                default:        goto yy296;
                }
 yy219:
                YYDEBUG(219, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1461 "Zend/zend_language_scanner.l"
+#line 1467 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
 }
-#line 3063 "Zend/zend_language_scanner.c"
+#line 3065 "Zend/zend_language_scanner.c"
 yy220:
                YYDEBUG(220, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
                        if (yych <= 'H') {
-                               if (yych == 'E') goto yy786;
+                               if (yych == 'E') goto yy790;
                                goto yy296;
                        } else {
-                               if (yych <= 'I') goto yy787;
+                               if (yych <= 'I') goto yy791;
                                if (yych <= 'N') goto yy296;
-                               goto yy788;
+                               goto yy792;
                        }
                } else {
                        if (yych <= 'h') {
-                               if (yych == 'e') goto yy786;
+                               if (yych == 'e') goto yy790;
                                goto yy296;
                        } else {
-                               if (yych <= 'i') goto yy787;
-                               if (yych == 'o') goto yy788;
+                               if (yych <= 'i') goto yy791;
+                               if (yych == 'o') goto yy792;
                                goto yy296;
                        }
                }
@@ -3087,20 +3089,20 @@ yy221:
                yych = *++YYCURSOR;
                if (yych <= 'U') {
                        if (yych <= 'N') {
-                               if (yych == 'I') goto yy765;
+                               if (yych == 'I') goto yy769;
                                goto yy296;
                        } else {
-                               if (yych <= 'O') goto yy766;
+                               if (yych <= 'O') goto yy770;
                                if (yych <= 'T') goto yy296;
-                               goto yy767;
+                               goto yy771;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych == 'i') goto yy765;
+                               if (yych == 'i') goto yy769;
                                goto yy296;
                        } else {
-                               if (yych <= 'o') goto yy766;
-                               if (yych == 'u') goto yy767;
+                               if (yych <= 'o') goto yy770;
+                               if (yych == 'u') goto yy771;
                                goto yy296;
                        }
                }
@@ -3109,42 +3111,42 @@ yy222:
                yych = *++YYCURSOR;
                if (yych <= 'O') {
                        if (yych <= 'K') {
-                               if (yych == 'A') goto yy737;
+                               if (yych == 'A') goto yy741;
                                goto yy296;
                        } else {
-                               if (yych <= 'L') goto yy738;
+                               if (yych <= 'L') goto yy742;
                                if (yych <= 'N') goto yy296;
-                               goto yy739;
+                               goto yy743;
                        }
                } else {
                        if (yych <= 'k') {
-                               if (yych == 'a') goto yy737;
+                               if (yych == 'a') goto yy741;
                                goto yy296;
                        } else {
-                               if (yych <= 'l') goto yy738;
-                               if (yych == 'o') goto yy739;
+                               if (yych <= 'l') goto yy742;
+                               if (yych == 'o') goto yy743;
                                goto yy296;
                        }
                }
 yy223:
                YYDEBUG(223, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy719;
-               if (yych == 'e') goto yy719;
+               if (yych == 'E') goto yy723;
+               if (yych == 'e') goto yy723;
                goto yy296;
 yy224:
                YYDEBUG(224, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'R') {
-                       if (yych == 'H') goto yy711;
+                       if (yych == 'H') goto yy715;
                        if (yych <= 'Q') goto yy296;
-                       goto yy712;
+                       goto yy716;
                } else {
                        if (yych <= 'h') {
                                if (yych <= 'g') goto yy296;
-                               goto yy711;
+                               goto yy715;
                        } else {
-                               if (yych == 'r') goto yy712;
+                               if (yych == 'r') goto yy716;
                                goto yy296;
                        }
                }
@@ -3153,53 +3155,53 @@ yy225:
                yych = *++YYCURSOR;
                if (yych <= 'S') {
                        if (yych <= 'L') {
-                               if (yych == 'F') goto yy664;
+                               if (yych == 'F') goto yy668;
                                goto yy296;
                        } else {
-                               if (yych <= 'M') goto yy666;
-                               if (yych <= 'N') goto yy667;
+                               if (yych <= 'M') goto yy670;
+                               if (yych <= 'N') goto yy671;
                                if (yych <= 'R') goto yy296;
-                               goto yy668;
+                               goto yy672;
                        }
                } else {
                        if (yych <= 'm') {
-                               if (yych == 'f') goto yy664;
+                               if (yych == 'f') goto yy668;
                                if (yych <= 'l') goto yy296;
-                               goto yy666;
+                               goto yy670;
                        } else {
-                               if (yych <= 'n') goto yy667;
-                               if (yych == 's') goto yy668;
+                               if (yych <= 'n') goto yy671;
+                               if (yych == 's') goto yy672;
                                goto yy296;
                        }
                }
 yy226:
                YYDEBUG(226, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy659;
-               if (yych == 'h') goto yy659;
+               if (yych == 'H') goto yy663;
+               if (yych == 'h') goto yy663;
                goto yy296;
 yy227:
                YYDEBUG(227, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'S') {
                        if (yych <= 'M') {
-                               if (yych == 'B') goto yy641;
+                               if (yych == 'B') goto yy645;
                                goto yy296;
                        } else {
-                               if (yych <= 'N') goto yy642;
+                               if (yych <= 'N') goto yy646;
                                if (yych <= 'Q') goto yy296;
-                               if (yych <= 'R') goto yy643;
-                               goto yy644;
+                               if (yych <= 'R') goto yy647;
+                               goto yy648;
                        }
                } else {
                        if (yych <= 'n') {
-                               if (yych == 'b') goto yy641;
+                               if (yych == 'b') goto yy645;
                                if (yych <= 'm') goto yy296;
-                               goto yy642;
+                               goto yy646;
                        } else {
                                if (yych <= 'q') goto yy296;
-                               if (yych <= 'r') goto yy643;
-                               if (yych <= 's') goto yy644;
+                               if (yych <= 'r') goto yy647;
+                               if (yych <= 's') goto yy648;
                                goto yy296;
                        }
                }
@@ -3207,15 +3209,15 @@ yy228:
                YYDEBUG(228, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'W') {
-                       if (yych == 'T') goto yy629;
+                       if (yych == 'T') goto yy633;
                        if (yych <= 'V') goto yy296;
-                       goto yy630;
+                       goto yy634;
                } else {
                        if (yych <= 't') {
                                if (yych <= 's') goto yy296;
-                               goto yy629;
+                               goto yy633;
                        } else {
-                               if (yych == 'w') goto yy630;
+                               if (yych == 'w') goto yy634;
                                goto yy296;
                        }
                }
@@ -3227,7 +3229,7 @@ yy229:
                        if (yych <= '/') {
                                if (yych <= '"') {
                                        if (yych <= '!') goto yy219;
-                                       goto yy622;
+                                       goto yy626;
                                } else {
                                        if (yych == '\'') goto yy277;
                                        goto yy219;
@@ -3237,7 +3239,7 @@ yy229:
                                        if (yych <= '9') goto yy295;
                                        goto yy219;
                                } else {
-                                       if (yych <= '<') goto yy621;
+                                       if (yych <= '<') goto yy625;
                                        if (yych <= '@') goto yy219;
                                        goto yy295;
                                }
@@ -3245,7 +3247,7 @@ yy229:
                } else {
                        if (yych <= '`') {
                                if (yych <= 'Z') {
-                                       if (yych <= 'R') goto yy623;
+                                       if (yych <= 'R') goto yy627;
                                        goto yy295;
                                } else {
                                        if (yych == '_') goto yy295;
@@ -3254,7 +3256,7 @@ yy229:
                        } else {
                                if (yych <= 'r') {
                                        if (yych <= 'q') goto yy295;
-                                       goto yy623;
+                                       goto yy627;
                                } else {
                                        if (yych <= 'z') goto yy295;
                                        if (yych <= '~') goto yy219;
@@ -3265,138 +3267,148 @@ yy229:
 yy230:
                YYDEBUG(230, *YYCURSOR);
                yych = *++YYCURSOR;
+               if (yych <= 'O') {
+                       if (yych == 'L') goto yy615;
+                       if (yych <= 'N') goto yy296;
+                       goto yy616;
+               } else {
+                       if (yych <= 'l') {
+                               if (yych <= 'k') goto yy296;
+                               goto yy615;
+                       } else {
+                               if (yych == 'o') goto yy616;
+                               goto yy296;
+                       }
+               }
+yy231:
+               YYDEBUG(231, *YYCURSOR);
+               yych = *++YYCURSOR;
                if (yych <= 'U') {
-                       if (yych == 'R') goto yy597;
+                       if (yych == 'R') goto yy591;
                        if (yych <= 'T') goto yy296;
-                       goto yy598;
+                       goto yy592;
                } else {
                        if (yych <= 'r') {
                                if (yych <= 'q') goto yy296;
-                               goto yy597;
+                               goto yy591;
                        } else {
-                               if (yych == 'u') goto yy598;
+                               if (yych == 'u') goto yy592;
                                goto yy296;
                        }
                }
-yy231:
-               YYDEBUG(231, *YYCURSOR);
+yy232:
+               YYDEBUG(232, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '<') {
-                       if (yych == '-') goto yy593;
+                       if (yych == '-') goto yy587;
                } else {
-                       if (yych <= '=') goto yy591;
-                       if (yych <= '>') goto yy595;
+                       if (yych <= '=') goto yy585;
+                       if (yych <= '>') goto yy589;
                }
-yy232:
-               YYDEBUG(232, *YYCURSOR);
+yy233:
+               YYDEBUG(233, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1072 "Zend/zend_language_scanner.l"
+#line 1078 "Zend/zend_language_scanner.l"
                {
        return yytext[0];
 }
-#line 3298 "Zend/zend_language_scanner.c"
-yy233:
-               YYDEBUG(233, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == ':') goto yy589;
-               goto yy232;
+#line 3316 "Zend/zend_language_scanner.c"
 yy234:
                YYDEBUG(234, *YYCURSOR);
                yych = *++YYCURSOR;
+               if (yych == ':') goto yy583;
+               goto yy233;
+yy235:
+               YYDEBUG(235, *YYCURSOR);
+               yych = *++YYCURSOR;
                if (yych <= 'E') {
-                       if (yych == 'A') goto yy577;
+                       if (yych == 'A') goto yy571;
                        if (yych <= 'D') goto yy296;
-                       goto yy578;
+                       goto yy572;
                } else {
                        if (yych <= 'a') {
                                if (yych <= '`') goto yy296;
-                               goto yy577;
+                               goto yy571;
                        } else {
-                               if (yych == 'e') goto yy578;
+                               if (yych == 'e') goto yy572;
                                goto yy296;
                        }
                }
-yy235:
-               YYDEBUG(235, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy574;
-               if (yych == 'a') goto yy574;
-               goto yy296;
 yy236:
                YYDEBUG(236, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'A') goto yy568;
+               if (yych == 'a') goto yy568;
+               goto yy296;
+yy237:
+               YYDEBUG(237, *YYCURSOR);
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'S') {
                        if (yych <= 'D') {
                                if (yych <= ' ') {
-                                       if (yych == '\t') goto yy495;
-                                       if (yych <= 0x1F) goto yy232;
-                                       goto yy495;
+                                       if (yych == '\t') goto yy489;
+                                       if (yych <= 0x1F) goto yy233;
+                                       goto yy489;
                                } else {
-                                       if (yych <= '@') goto yy232;
-                                       if (yych == 'C') goto yy232;
-                                       goto yy495;
+                                       if (yych <= '@') goto yy233;
+                                       if (yych == 'C') goto yy233;
+                                       goto yy489;
                                }
                        } else {
                                if (yych <= 'I') {
-                                       if (yych == 'F') goto yy495;
-                                       if (yych <= 'H') goto yy232;
-                                       goto yy495;
+                                       if (yych == 'F') goto yy489;
+                                       if (yych <= 'H') goto yy233;
+                                       goto yy489;
                                } else {
-                                       if (yych == 'O') goto yy495;
-                                       if (yych <= 'Q') goto yy232;
-                                       goto yy495;
+                                       if (yych == 'O') goto yy489;
+                                       if (yych <= 'Q') goto yy233;
+                                       goto yy489;
                                }
                        }
                } else {
                        if (yych <= 'f') {
                                if (yych <= 'b') {
-                                       if (yych == 'U') goto yy495;
-                                       if (yych <= '`') goto yy232;
-                                       goto yy495;
+                                       if (yych == 'U') goto yy489;
+                                       if (yych <= '`') goto yy233;
+                                       goto yy489;
                                } else {
-                                       if (yych == 'd') goto yy495;
-                                       if (yych <= 'e') goto yy232;
-                                       goto yy495;
+                                       if (yych == 'd') goto yy489;
+                                       if (yych <= 'e') goto yy233;
+                                       goto yy489;
                                }
                        } else {
                                if (yych <= 'o') {
-                                       if (yych == 'i') goto yy495;
-                                       if (yych <= 'n') goto yy232;
-                                       goto yy495;
+                                       if (yych == 'i') goto yy489;
+                                       if (yych <= 'n') goto yy233;
+                                       goto yy489;
                                } else {
                                        if (yych <= 's') {
-                                               if (yych <= 'q') goto yy232;
-                                               goto yy495;
+                                               if (yych <= 'q') goto yy233;
+                                               goto yy489;
                                        } else {
-                                               if (yych == 'u') goto yy495;
-                                               goto yy232;
+                                               if (yych == 'u') goto yy489;
+                                               goto yy233;
                                        }
                                }
                        }
                }
-yy237:
-               YYDEBUG(237, *YYCURSOR);
+yy238:
+               YYDEBUG(238, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'S') {
-                       if (yych == 'N') goto yy486;
+                       if (yych == 'N') goto yy480;
                        if (yych <= 'R') goto yy296;
-                       goto yy487;
+                       goto yy481;
                } else {
                        if (yych <= 'n') {
                                if (yych <= 'm') goto yy296;
-                               goto yy486;
+                               goto yy480;
                        } else {
-                               if (yych == 's') goto yy487;
+                               if (yych == 's') goto yy481;
                                goto yy296;
                        }
                }
-yy238:
-               YYDEBUG(238, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy480;
-               if (yych == 'l') goto yy480;
-               goto yy296;
 yy239:
                YYDEBUG(239, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3405,10 +3417,10 @@ yy239:
 yy240:
                YYDEBUG(240, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '<') goto yy232;
+               if (yych <= '<') goto yy233;
                if (yych <= '=') goto yy400;
                if (yych <= '>') goto yy402;
-               goto yy232;
+               goto yy233;
 yy241:
                YYDEBUG(241, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3420,79 +3432,79 @@ yy242:
                yych = *++YYCURSOR;
                if (yych == '+') goto yy394;
                if (yych == '=') goto yy392;
-               goto yy232;
+               goto yy233;
 yy243:
                YYDEBUG(243, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == '=') goto yy389;
-               goto yy232;
+               goto yy233;
 yy244:
                YYDEBUG(244, *YYCURSOR);
                yyaccept = 1;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= ';') {
                        if (yych == '/') goto yy361;
-                       goto yy232;
+                       goto yy233;
                } else {
                        if (yych <= '<') goto yy359;
                        if (yych <= '=') goto yy362;
                        if (yych <= '>') goto yy364;
-                       goto yy232;
+                       goto yy233;
                }
 yy245:
                YYDEBUG(245, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '<') goto yy232;
+               if (yych <= '<') goto yy233;
                if (yych <= '=') goto yy355;
                if (yych <= '>') goto yy353;
-               goto yy232;
+               goto yy233;
 yy246:
                YYDEBUG(246, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == '=') goto yy351;
-               goto yy232;
+               goto yy233;
 yy247:
                YYDEBUG(247, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '.') {
                        if (yych == '*') goto yy342;
-                       goto yy232;
+                       goto yy233;
                } else {
                        if (yych <= '/') goto yy344;
                        if (yych == '=') goto yy345;
-                       goto yy232;
+                       goto yy233;
                }
 yy248:
                YYDEBUG(248, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '/') goto yy232;
+               if (yych <= '/') goto yy233;
                if (yych <= '9') goto yy338;
                if (yych == '=') goto yy340;
-               goto yy232;
+               goto yy233;
 yy249:
                YYDEBUG(249, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych <= '<') goto yy232;
+               if (yych <= '<') goto yy233;
                if (yych <= '=') goto yy334;
                if (yych <= '>') goto yy332;
-               goto yy232;
+               goto yy233;
 yy250:
                YYDEBUG(250, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == '&') goto yy328;
                if (yych == '=') goto yy330;
-               goto yy232;
+               goto yy233;
 yy251:
                YYDEBUG(251, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == '=') goto yy326;
                if (yych == '|') goto yy324;
-               goto yy232;
+               goto yy233;
 yy252:
                YYDEBUG(252, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == '=') goto yy322;
-               goto yy232;
+               goto yy233;
 yy253:
                YYDEBUG(253, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3509,42 +3521,42 @@ yy255:
                YYDEBUG(255, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy232;
+                       if (yych <= '@') goto yy233;
                        if (yych <= 'Z') goto yy314;
-                       if (yych <= '^') goto yy232;
+                       if (yych <= '^') goto yy233;
                        goto yy314;
                } else {
-                       if (yych <= '`') goto yy232;
+                       if (yych <= '`') goto yy233;
                        if (yych <= 'z') goto yy314;
-                       if (yych <= '~') goto yy232;
+                       if (yych <= '~') goto yy233;
                        goto yy314;
                }
 yy256:
                YYDEBUG(256, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy232;
+               goto yy233;
 yy257:
                YYDEBUG(257, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == '>') goto yy310;
-               goto yy232;
+               goto yy233;
 yy258:
                YYDEBUG(258, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(259, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1077 "Zend/zend_language_scanner.l"
+#line 1083 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return '{';
 }
-#line 3542 "Zend/zend_language_scanner.c"
+#line 3554 "Zend/zend_language_scanner.c"
 yy260:
                YYDEBUG(260, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(261, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1089 "Zend/zend_language_scanner.l"
+#line 1095 "Zend/zend_language_scanner.l"
                {
        RESET_DOC_COMMENT();
        /* This is a temporary fix which is dependant on flex and it's implementation */
@@ -3553,7 +3565,7 @@ yy260:
        }
        return '}';
 }
-#line 3557 "Zend/zend_language_scanner.c"
+#line 3569 "Zend/zend_language_scanner.c"
 yy262:
                YYDEBUG(262, *YYCURSOR);
                yyaccept = 2;
@@ -3576,7 +3588,7 @@ yy262:
 yy263:
                YYDEBUG(263, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1116 "Zend/zend_language_scanner.l"
+#line 1122 "Zend/zend_language_scanner.l"
                {
        if (yyleng < MAX_LENGTH_OF_LONG - 1) { /* Won't overflow */
                zendlval->value.lval = strtol(yytext, NULL, 0);
@@ -3597,7 +3609,7 @@ yy263:
        zendlval->type = IS_LONG;
        return T_LNUMBER;
 }
-#line 3601 "Zend/zend_language_scanner.c"
+#line 3613 "Zend/zend_language_scanner.c"
 yy264:
                YYDEBUG(264, *YYCURSOR);
                yyaccept = 2;
@@ -3627,7 +3639,7 @@ yy266:
 yy267:
                YYDEBUG(267, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1468 "Zend/zend_language_scanner.l"
+#line 1474 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -3635,19 +3647,19 @@ yy267:
        HANDLE_NEWLINES(yytext, yyleng);
        return T_WHITESPACE;
 }
-#line 3639 "Zend/zend_language_scanner.c"
+#line 3651 "Zend/zend_language_scanner.c"
 yy268:
                YYDEBUG(268, *YYCURSOR);
                ++YYCURSOR;
 yy269:
                YYDEBUG(269, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1477 "Zend/zend_language_scanner.l"
+#line 1483 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_ONE_LINE_COMMENT);
        yymore();
 }
-#line 3651 "Zend/zend_language_scanner.c"
+#line 3663 "Zend/zend_language_scanner.c"
 yy270:
                YYDEBUG(270, *YYCURSOR);
                yyaccept = 3;
@@ -3656,12 +3668,12 @@ yy270:
 yy271:
                YYDEBUG(271, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1640 "Zend/zend_language_scanner.l"
+#line 1646 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_DOUBLE_QUOTES);
        return '"';
 }
-#line 3665 "Zend/zend_language_scanner.c"
+#line 3677 "Zend/zend_language_scanner.c"
 yy272:
                YYDEBUG(272, *YYCURSOR);
                yyaccept = 4;
@@ -3670,23 +3682,23 @@ yy272:
 yy273:
                YYDEBUG(273, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1914 "Zend/zend_language_scanner.l"
+#line 1920 "Zend/zend_language_scanner.l"
                {
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 3679 "Zend/zend_language_scanner.c"
+#line 3691 "Zend/zend_language_scanner.c"
 yy274:
                YYDEBUG(274, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(275, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1663 "Zend/zend_language_scanner.l"
+#line 1669 "Zend/zend_language_scanner.l"
                {
        BEGIN(ST_BACKQUOTE);
        return '`';
 }
-#line 3690 "Zend/zend_language_scanner.c"
+#line 3702 "Zend/zend_language_scanner.c"
 yy276:
                YYDEBUG(276, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -3712,7 +3724,7 @@ yy280:
                ++YYCURSOR;
                YYDEBUG(281, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1596 "Zend/zend_language_scanner.l"
+#line 1602 "Zend/zend_language_scanner.l"
                {
        register char *s, *t;
        char *end;
@@ -3755,7 +3767,7 @@ yy280:
 
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 3759 "Zend/zend_language_scanner.c"
+#line 3771 "Zend/zend_language_scanner.c"
 yy282:
                YYDEBUG(282, *YYCURSOR);
                ++YYCURSOR;
@@ -3777,7 +3789,7 @@ yy284:
                                if (yyaccept <= 0) {
                                        goto yy219;
                                } else {
-                                       goto yy232;
+                                       goto yy233;
                                }
                        } else {
                                if (yyaccept <= 2) {
@@ -3852,14 +3864,14 @@ yy290:
                ++YYCURSOR;
                YYDEBUG(291, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1588 "Zend/zend_language_scanner.l"
+#line 1594 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '"') ? 1 : 0;
 
        zend_scan_escape_string(zendlval, yytext+bprefix+1, yyleng-bprefix-2, '"' TSRMLS_CC);
        return T_CONSTANT_ENCAPSED_STRING;
 }
-#line 3863 "Zend/zend_language_scanner.c"
+#line 3875 "Zend/zend_language_scanner.c"
 yy292:
                YYDEBUG(292, *YYCURSOR);
                ++YYCURSOR;
@@ -3903,13 +3915,13 @@ yy297:
 yy299:
                YYDEBUG(299, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1177 "Zend/zend_language_scanner.l"
+#line 1183 "Zend/zend_language_scanner.l"
                {
        zendlval->value.dval = zend_strtod(yytext, NULL);
        zendlval->type = IS_DOUBLE;
        return T_DNUMBER;
 }
-#line 3913 "Zend/zend_language_scanner.c"
+#line 3925 "Zend/zend_language_scanner.c"
 yy300:
                YYDEBUG(300, *YYCURSOR);
                yyaccept = 2;
@@ -3971,7 +3983,7 @@ yy307:
                }
                YYDEBUG(309, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1137 "Zend/zend_language_scanner.l"
+#line 1143 "Zend/zend_language_scanner.l"
                {
        char *hex = yytext + 2; /* Skip "0x" */
        int len = yyleng - 2;
@@ -3992,7 +4004,7 @@ yy307:
                return T_DNUMBER;
        }
 }
-#line 3996 "Zend/zend_language_scanner.c"
+#line 4008 "Zend/zend_language_scanner.c"
 yy310:
                YYDEBUG(310, *YYCURSOR);
                ++YYCURSOR;
@@ -4001,7 +4013,7 @@ yy310:
 yy311:
                YYDEBUG(311, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1563 "Zend/zend_language_scanner.l"
+#line 1569 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -4009,7 +4021,7 @@ yy311:
        BEGIN(INITIAL);
        return T_CLOSE_TAG;  /* implicit ';' at php-end tag */
 }
-#line 4013 "Zend/zend_language_scanner.c"
+#line 4025 "Zend/zend_language_scanner.c"
 yy312:
                YYDEBUG(312, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4043,13 +4055,13 @@ yy314:
 yy316:
                YYDEBUG(316, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1437 "Zend/zend_language_scanner.l"
+#line 1443 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 4053 "Zend/zend_language_scanner.c"
+#line 4065 "Zend/zend_language_scanner.c"
 yy317:
                YYDEBUG(317, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4063,11 +4075,11 @@ yy318:
                }
                YYDEBUG(319, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1060 "Zend/zend_language_scanner.l"
+#line 1066 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_XOR;
 }
-#line 4071 "Zend/zend_language_scanner.c"
+#line 4083 "Zend/zend_language_scanner.c"
 yy320:
                YYDEBUG(320, *YYCURSOR);
                ++YYCURSOR;
@@ -4076,61 +4088,61 @@ yy320:
                }
                YYDEBUG(321, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1052 "Zend/zend_language_scanner.l"
+#line 1058 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_OR;
 }
-#line 4084 "Zend/zend_language_scanner.c"
+#line 4096 "Zend/zend_language_scanner.c"
 yy322:
                YYDEBUG(322, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(323, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1040 "Zend/zend_language_scanner.l"
+#line 1046 "Zend/zend_language_scanner.l"
                {
        return T_XOR_EQUAL;
 }
-#line 4094 "Zend/zend_language_scanner.c"
+#line 4106 "Zend/zend_language_scanner.c"
 yy324:
                YYDEBUG(324, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(325, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1044 "Zend/zend_language_scanner.l"
+#line 1050 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_OR;
 }
-#line 4104 "Zend/zend_language_scanner.c"
+#line 4116 "Zend/zend_language_scanner.c"
 yy326:
                YYDEBUG(326, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(327, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1036 "Zend/zend_language_scanner.l"
+#line 1042 "Zend/zend_language_scanner.l"
                {
        return T_OR_EQUAL;
 }
-#line 4114 "Zend/zend_language_scanner.c"
+#line 4126 "Zend/zend_language_scanner.c"
 yy328:
                YYDEBUG(328, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(329, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1048 "Zend/zend_language_scanner.l"
+#line 1054 "Zend/zend_language_scanner.l"
                {
        return T_BOOLEAN_AND;
 }
-#line 4124 "Zend/zend_language_scanner.c"
+#line 4136 "Zend/zend_language_scanner.c"
 yy330:
                YYDEBUG(330, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(331, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1032 "Zend/zend_language_scanner.l"
+#line 1038 "Zend/zend_language_scanner.l"
                {
        return T_AND_EQUAL;
 }
-#line 4134 "Zend/zend_language_scanner.c"
+#line 4146 "Zend/zend_language_scanner.c"
 yy332:
                YYDEBUG(332, *YYCURSOR);
                ++YYCURSOR;
@@ -4139,7 +4151,7 @@ yy332:
 yy333:
                YYDEBUG(333, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1572 "Zend/zend_language_scanner.l"
+#line 1578 "Zend/zend_language_scanner.l"
                {
        if (CG(asp_tags)) {
                BEGIN(INITIAL);
@@ -4152,17 +4164,17 @@ yy333:
                return yytext[0];
        }
 }
-#line 4156 "Zend/zend_language_scanner.c"
+#line 4168 "Zend/zend_language_scanner.c"
 yy334:
                YYDEBUG(334, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(335, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1020 "Zend/zend_language_scanner.l"
+#line 1026 "Zend/zend_language_scanner.l"
                {
        return T_MOD_EQUAL;
 }
-#line 4166 "Zend/zend_language_scanner.c"
+#line 4178 "Zend/zend_language_scanner.c"
 yy336:
                YYDEBUG(336, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4193,11 +4205,11 @@ yy340:
                ++YYCURSOR;
                YYDEBUG(341, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1016 "Zend/zend_language_scanner.l"
+#line 1022 "Zend/zend_language_scanner.l"
                {
        return T_CONCAT_EQUAL;
 }
-#line 4201 "Zend/zend_language_scanner.c"
+#line 4213 "Zend/zend_language_scanner.c"
 yy342:
                YYDEBUG(342, *YYCURSOR);
                yyaccept = 6;
@@ -4206,13 +4218,13 @@ yy342:
 yy343:
                YYDEBUG(343, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1534 "Zend/zend_language_scanner.l"
+#line 1540 "Zend/zend_language_scanner.l"
                {
        CG(comment_start_line) = CG(zend_lineno);
        BEGIN(ST_COMMENT);
        yymore();
 }
-#line 4216 "Zend/zend_language_scanner.c"
+#line 4228 "Zend/zend_language_scanner.c"
 yy344:
                YYDEBUG(344, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4222,11 +4234,11 @@ yy345:
                ++YYCURSOR;
                YYDEBUG(346, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1012 "Zend/zend_language_scanner.l"
+#line 1018 "Zend/zend_language_scanner.l"
                {
        return T_DIV_EQUAL;
 }
-#line 4230 "Zend/zend_language_scanner.c"
+#line 4242 "Zend/zend_language_scanner.c"
 yy347:
                YYDEBUG(347, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4253,55 +4265,55 @@ yy348:
 yy350:
                YYDEBUG(350, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1527 "Zend/zend_language_scanner.l"
+#line 1533 "Zend/zend_language_scanner.l"
                {
        CG(comment_start_line) = CG(zend_lineno);
        RESET_DOC_COMMENT();
        BEGIN(ST_DOC_COMMENT);
        yymore();
 }
-#line 4264 "Zend/zend_language_scanner.c"
+#line 4276 "Zend/zend_language_scanner.c"
 yy351:
                YYDEBUG(351, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(352, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1008 "Zend/zend_language_scanner.l"
+#line 1014 "Zend/zend_language_scanner.l"
                {
        return T_MUL_EQUAL;
 }
-#line 4274 "Zend/zend_language_scanner.c"
+#line 4286 "Zend/zend_language_scanner.c"
 yy353:
                YYDEBUG(353, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy357;
                YYDEBUG(354, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1068 "Zend/zend_language_scanner.l"
+#line 1074 "Zend/zend_language_scanner.l"
                {
        return T_SR;
 }
-#line 4285 "Zend/zend_language_scanner.c"
+#line 4297 "Zend/zend_language_scanner.c"
 yy355:
                YYDEBUG(355, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(356, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 996 "Zend/zend_language_scanner.l"
+#line 1002 "Zend/zend_language_scanner.l"
                {
        return T_IS_GREATER_OR_EQUAL;
 }
-#line 4295 "Zend/zend_language_scanner.c"
+#line 4307 "Zend/zend_language_scanner.c"
 yy357:
                YYDEBUG(357, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(358, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1028 "Zend/zend_language_scanner.l"
+#line 1034 "Zend/zend_language_scanner.l"
                {
        return T_SR_EQUAL;
 }
-#line 4305 "Zend/zend_language_scanner.c"
+#line 4317 "Zend/zend_language_scanner.c"
 yy359:
                YYDEBUG(359, *YYCURSOR);
                yyaccept = 7;
@@ -4312,11 +4324,11 @@ yy359:
 yy360:
                YYDEBUG(360, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1064 "Zend/zend_language_scanner.l"
+#line 1070 "Zend/zend_language_scanner.l"
                {
        return T_SL;
 }
-#line 4320 "Zend/zend_language_scanner.c"
+#line 4332 "Zend/zend_language_scanner.c"
 yy361:
                YYDEBUG(361, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4328,22 +4340,22 @@ yy362:
                ++YYCURSOR;
                YYDEBUG(363, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 992 "Zend/zend_language_scanner.l"
+#line 998 "Zend/zend_language_scanner.l"
                {
        return T_IS_SMALLER_OR_EQUAL;
 }
-#line 4336 "Zend/zend_language_scanner.c"
+#line 4348 "Zend/zend_language_scanner.c"
 yy364:
                YYDEBUG(364, *YYCURSOR);
                ++YYCURSOR;
 yy365:
                YYDEBUG(365, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 988 "Zend/zend_language_scanner.l"
+#line 994 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_EQUAL;
 }
-#line 4347 "Zend/zend_language_scanner.c"
+#line 4359 "Zend/zend_language_scanner.c"
 yy366:
                YYDEBUG(366, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4394,11 +4406,11 @@ yy373:
                ++YYCURSOR;
                YYDEBUG(374, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1024 "Zend/zend_language_scanner.l"
+#line 1030 "Zend/zend_language_scanner.l"
                {
        return T_SL_EQUAL;
 }
-#line 4402 "Zend/zend_language_scanner.c"
+#line 4414 "Zend/zend_language_scanner.c"
 yy375:
                YYDEBUG(375, *YYCURSOR);
                ++YYCURSOR;
@@ -4465,7 +4477,7 @@ yy380:
 yy381:
                YYDEBUG(381, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1646 "Zend/zend_language_scanner.l"
+#line 1652 "Zend/zend_language_scanner.l"
                {
        char *s;
        int bprefix = (yytext[0] != '<') ? 1 : 0;
@@ -4481,7 +4493,7 @@ yy381:
        BEGIN(ST_START_HEREDOC);
        return T_START_HEREDOC;
 }
-#line 4485 "Zend/zend_language_scanner.c"
+#line 4497 "Zend/zend_language_scanner.c"
 yy382:
                YYDEBUG(382, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4523,7 +4535,7 @@ yy386:
 yy387:
                YYDEBUG(387, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1809 "Zend/zend_language_scanner.l"
+#line 1815 "Zend/zend_language_scanner.l"
                {
        int bprefix = (yytext[0] != '<') ? 1 : 0;
        char *s;
@@ -4540,7 +4552,7 @@ yy387:
        BEGIN(ST_START_NOWDOC);
        return T_START_NOWDOC;
 }
-#line 4544 "Zend/zend_language_scanner.c"
+#line 4556 "Zend/zend_language_scanner.c"
 yy388:
                YYDEBUG(388, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4554,31 +4566,31 @@ yy389:
                ++YYCURSOR;
                YYDEBUG(391, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 980 "Zend/zend_language_scanner.l"
+#line 986 "Zend/zend_language_scanner.l"
                {
        return T_IS_NOT_IDENTICAL;
 }
-#line 4562 "Zend/zend_language_scanner.c"
+#line 4574 "Zend/zend_language_scanner.c"
 yy392:
                YYDEBUG(392, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(393, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1000 "Zend/zend_language_scanner.l"
+#line 1006 "Zend/zend_language_scanner.l"
                {
        return T_PLUS_EQUAL;
 }
-#line 4572 "Zend/zend_language_scanner.c"
+#line 4584 "Zend/zend_language_scanner.c"
 yy394:
                YYDEBUG(394, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(395, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 968 "Zend/zend_language_scanner.l"
+#line 974 "Zend/zend_language_scanner.l"
                {
        return T_INC;
 }
-#line 4582 "Zend/zend_language_scanner.c"
+#line 4594 "Zend/zend_language_scanner.c"
 yy396:
                YYDEBUG(396, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4597,42 +4609,42 @@ yy398:
                }
                YYDEBUG(399, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 960 "Zend/zend_language_scanner.l"
+#line 966 "Zend/zend_language_scanner.l"
                {
        return T_LIST;
 }
-#line 4605 "Zend/zend_language_scanner.c"
+#line 4617 "Zend/zend_language_scanner.c"
 yy400:
                YYDEBUG(400, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) == '=') goto yy404;
                YYDEBUG(401, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 984 "Zend/zend_language_scanner.l"
+#line 990 "Zend/zend_language_scanner.l"
                {
        return T_IS_EQUAL;
 }
-#line 4616 "Zend/zend_language_scanner.c"
+#line 4628 "Zend/zend_language_scanner.c"
 yy402:
                YYDEBUG(402, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(403, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 956 "Zend/zend_language_scanner.l"
+#line 962 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_ARROW;
 }
-#line 4626 "Zend/zend_language_scanner.c"
+#line 4638 "Zend/zend_language_scanner.c"
 yy404:
                YYDEBUG(404, *YYCURSOR);
                ++YYCURSOR;
                YYDEBUG(405, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 976 "Zend/zend_language_scanner.l"
+#line 982 "Zend/zend_language_scanner.l"
                {
        return T_IS_IDENTICAL;
 }
-#line 4636 "Zend/zend_language_scanner.c"
+#line 4648 "Zend/zend_language_scanner.c"
 yy406:
                YYDEBUG(406, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4724,7 +4736,7 @@ yy413:
                }
                YYDEBUG(424, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1281 "Zend/zend_language_scanner.l"
+#line 1287 "Zend/zend_language_scanner.l"
                {
        if (CG(current_namespace)) {
                *zendlval = *CG(current_namespace);
@@ -4734,7 +4746,7 @@ yy413:
        }
        return T_NS_C;
 }
-#line 4738 "Zend/zend_language_scanner.c"
+#line 4750 "Zend/zend_language_scanner.c"
 yy425:
                YYDEBUG(425, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4752,7 +4764,7 @@ yy425:
                }
                YYDEBUG(429, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1254 "Zend/zend_language_scanner.l"
+#line 1260 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
        const size_t filename_len = strlen(filename);
@@ -4779,7 +4791,7 @@ yy425:
        zendlval->type = IS_STRING;
        return T_DIR;
 }
-#line 4783 "Zend/zend_language_scanner.c"
+#line 4795 "Zend/zend_language_scanner.c"
 yy430:
                YYDEBUG(430, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4800,13 +4812,13 @@ yy430:
                }
                YYDEBUG(435, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1236 "Zend/zend_language_scanner.l"
+#line 1242 "Zend/zend_language_scanner.l"
                {
        zendlval->value.lval = CG(zend_lineno);
        zendlval->type = IS_LONG;
        return T_LINE;
 }
-#line 4810 "Zend/zend_language_scanner.c"
+#line 4822 "Zend/zend_language_scanner.c"
 yy436:
                YYDEBUG(436, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4833,7 +4845,7 @@ yy436:
                }
                YYDEBUG(443, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1215 "Zend/zend_language_scanner.l"
+#line 1221 "Zend/zend_language_scanner.l"
                {
        char *class_name = CG(active_class_entry) ? CG(active_class_entry)->name : NULL;
        char *func_name = CG(active_op_array)? CG(active_op_array)->function_name : NULL;
@@ -4854,7 +4866,7 @@ yy436:
        zendlval->type = IS_STRING;
        return T_METHOD_C;
 }
-#line 4858 "Zend/zend_language_scanner.c"
+#line 4870 "Zend/zend_language_scanner.c"
 yy444:
                YYDEBUG(444, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4892,7 +4904,7 @@ yy445:
                }
                YYDEBUG(454, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1199 "Zend/zend_language_scanner.l"
+#line 1205 "Zend/zend_language_scanner.l"
                {
        char *func_name = NULL;
 
@@ -4908,7 +4920,7 @@ yy445:
        zendlval->type = IS_STRING;
        return T_FUNC_C;
 }
-#line 4912 "Zend/zend_language_scanner.c"
+#line 4924 "Zend/zend_language_scanner.c"
 yy455:
                YYDEBUG(455, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4926,7 +4938,7 @@ yy455:
                }
                YYDEBUG(459, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1242 "Zend/zend_language_scanner.l"
+#line 1248 "Zend/zend_language_scanner.l"
                {
        char *filename = zend_get_compiled_filename(TSRMLS_C);
 
@@ -4938,7 +4950,7 @@ yy455:
        zendlval->type = IS_STRING;
        return T_FILE;
 }
-#line 4942 "Zend/zend_language_scanner.c"
+#line 4954 "Zend/zend_language_scanner.c"
 yy460:
                YYDEBUG(460, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -4962,7 +4974,7 @@ yy460:
                }
                YYDEBUG(466, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1183 "Zend/zend_language_scanner.l"
+#line 1189 "Zend/zend_language_scanner.l"
                {
        char *class_name = NULL;
 
@@ -4978,7 +4990,7 @@ yy460:
        zendlval->type = IS_STRING;
        return T_CLASS_C;
 }
-#line 4982 "Zend/zend_language_scanner.c"
+#line 4994 "Zend/zend_language_scanner.c"
 yy467:
                YYDEBUG(467, *YYCURSOR);
                yych = *++YYCURSOR;
@@ -5040,1422 +5052,1422 @@ yy478:
                }
                YYDEBUG(479, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 924 "Zend/zend_language_scanner.l"
+#line 930 "Zend/zend_language_scanner.l"
                {
        return T_HALT_COMPILER;
 }
-#line 5048 "Zend/zend_language_scanner.c"
+#line 5060 "Zend/zend_language_scanner.c"
 yy480:
                YYDEBUG(480, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy481;
-               if (yych != 'o') goto yy296;
+               if (yych == 'S') goto yy484;
+               if (yych == 's') goto yy484;
+               goto yy296;
 yy481:
                YYDEBUG(481, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'B') goto yy482;
-               if (yych != 'b') goto yy296;
+               if (yych == 'E') goto yy482;
+               if (yych != 'e') goto yy296;
 yy482:
                YYDEBUG(482, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy483;
-               if (yych != 'a') goto yy296;
-yy483:
-               YYDEBUG(483, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'L') goto yy484;
-               if (yych != 'l') goto yy296;
-yy484:
-               YYDEBUG(484, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 16) {
-                       goto yy295;
-               }
-               YYDEBUG(485, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 912 "Zend/zend_language_scanner.l"
-               {
-       return T_GLOBAL;
-}
-#line 5081 "Zend/zend_language_scanner.c"
-yy486:
-               YYDEBUG(486, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'S') goto yy490;
-               if (yych == 's') goto yy490;
-               goto yy296;
-yy487:
-               YYDEBUG(487, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy488;
-               if (yych != 'e') goto yy296;
-yy488:
-               YYDEBUG(488, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(489, *YYCURSOR);
+               YYDEBUG(483, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 908 "Zend/zend_language_scanner.l"
+#line 914 "Zend/zend_language_scanner.l"
                {
        return T_USE;
 }
-#line 5105 "Zend/zend_language_scanner.c"
-yy490:
-               YYDEBUG(490, *YYCURSOR);
+#line 5084 "Zend/zend_language_scanner.c"
+yy484:
+               YYDEBUG(484, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy491;
+               if (yych == 'E') goto yy485;
                if (yych != 'e') goto yy296;
-yy491:
-               YYDEBUG(491, *YYCURSOR);
+yy485:
+               YYDEBUG(485, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy492;
+               if (yych == 'T') goto yy486;
                if (yych != 't') goto yy296;
-yy492:
-               YYDEBUG(492, *YYCURSOR);
+yy486:
+               YYDEBUG(486, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(493, *YYCURSOR);
+               YYDEBUG(487, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 952 "Zend/zend_language_scanner.l"
+#line 958 "Zend/zend_language_scanner.l"
                {
        return T_UNSET;
 }
-#line 5128 "Zend/zend_language_scanner.c"
-yy494:
-               YYDEBUG(494, *YYCURSOR);
+#line 5107 "Zend/zend_language_scanner.c"
+yy488:
+               YYDEBUG(488, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(7);
                yych = *YYCURSOR;
-yy495:
-               YYDEBUG(495, *YYCURSOR);
+yy489:
+               YYDEBUG(489, *YYCURSOR);
                if (yych <= 'S') {
                        if (yych <= 'D') {
                                if (yych <= ' ') {
-                                       if (yych == '\t') goto yy494;
+                                       if (yych == '\t') goto yy488;
                                        if (yych <= 0x1F) goto yy284;
-                                       goto yy494;
+                                       goto yy488;
                                } else {
                                        if (yych <= 'A') {
                                                if (yych <= '@') goto yy284;
-                                               goto yy499;
+                                               goto yy493;
                                        } else {
-                                               if (yych <= 'B') goto yy497;
+                                               if (yych <= 'B') goto yy491;
                                                if (yych <= 'C') goto yy284;
-                                               goto yy502;
+                                               goto yy496;
                                        }
                                }
                        } else {
                                if (yych <= 'I') {
-                                       if (yych == 'F') goto yy503;
+                                       if (yych == 'F') goto yy497;
                                        if (yych <= 'H') goto yy284;
-                                       goto yy504;
+                                       goto yy498;
                                } else {
                                        if (yych <= 'O') {
                                                if (yych <= 'N') goto yy284;
-                                               goto yy498;
+                                               goto yy492;
                                        } else {
                                                if (yych <= 'Q') goto yy284;
-                                               if (yych <= 'R') goto yy501;
-                                               goto yy500;
+                                               if (yych <= 'R') goto yy495;
+                                               goto yy494;
                                        }
                                }
                        }
                } else {
                        if (yych <= 'f') {
                                if (yych <= 'a') {
-                                       if (yych == 'U') goto yy496;
+                                       if (yych == 'U') goto yy490;
                                        if (yych <= '`') goto yy284;
-                                       goto yy499;
+                                       goto yy493;
                                } else {
                                        if (yych <= 'c') {
-                                               if (yych <= 'b') goto yy497;
+                                               if (yych <= 'b') goto yy491;
                                                goto yy284;
                                        } else {
-                                               if (yych <= 'd') goto yy502;
+                                               if (yych <= 'd') goto yy496;
                                                if (yych <= 'e') goto yy284;
-                                               goto yy503;
+                                               goto yy497;
                                        }
                                }
                        } else {
                                if (yych <= 'q') {
                                        if (yych <= 'i') {
                                                if (yych <= 'h') goto yy284;
-                                               goto yy504;
+                                               goto yy498;
                                        } else {
-                                               if (yych == 'o') goto yy498;
+                                               if (yych == 'o') goto yy492;
                                                goto yy284;
                                        }
                                } else {
                                        if (yych <= 's') {
-                                               if (yych <= 'r') goto yy501;
-                                               goto yy500;
+                                               if (yych <= 'r') goto yy495;
+                                               goto yy494;
                                        } else {
                                                if (yych != 'u') goto yy284;
                                        }
                                }
                        }
                }
-yy496:
-               YYDEBUG(496, *YYCURSOR);
+yy490:
+               YYDEBUG(490, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy567;
-               if (yych == 'n') goto yy567;
+               if (yych == 'N') goto yy561;
+               if (yych == 'n') goto yy561;
                goto yy284;
-yy497:
-               YYDEBUG(497, *YYCURSOR);
+yy491:
+               YYDEBUG(491, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
-                       if (yych == 'I') goto yy550;
+                       if (yych == 'I') goto yy544;
                        if (yych <= 'N') goto yy284;
-                       goto yy551;
+                       goto yy545;
                } else {
                        if (yych <= 'i') {
                                if (yych <= 'h') goto yy284;
-                               goto yy550;
+                               goto yy544;
                        } else {
-                               if (yych == 'o') goto yy551;
+                               if (yych == 'o') goto yy545;
                                goto yy284;
                        }
                }
-yy498:
-               YYDEBUG(498, *YYCURSOR);
+yy492:
+               YYDEBUG(492, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'B') goto yy542;
-               if (yych == 'b') goto yy542;
+               if (yych == 'B') goto yy536;
+               if (yych == 'b') goto yy536;
                goto yy284;
-yy499:
-               YYDEBUG(499, *YYCURSOR);
+yy493:
+               YYDEBUG(493, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy535;
-               if (yych == 'r') goto yy535;
+               if (yych == 'R') goto yy529;
+               if (yych == 'r') goto yy529;
                goto yy284;
-yy500:
-               YYDEBUG(500, *YYCURSOR);
+yy494:
+               YYDEBUG(494, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy527;
-               if (yych == 't') goto yy527;
+               if (yych == 'T') goto yy521;
+               if (yych == 't') goto yy521;
                goto yy284;
-yy501:
-               YYDEBUG(501, *YYCURSOR);
+yy495:
+               YYDEBUG(495, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy525;
-               if (yych == 'e') goto yy525;
+               if (yych == 'E') goto yy519;
+               if (yych == 'e') goto yy519;
                goto yy284;
-yy502:
-               YYDEBUG(502, *YYCURSOR);
+yy496:
+               YYDEBUG(496, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy521;
-               if (yych == 'o') goto yy521;
+               if (yych == 'O') goto yy515;
+               if (yych == 'o') goto yy515;
                goto yy284;
-yy503:
-               YYDEBUG(503, *YYCURSOR);
+yy497:
+               YYDEBUG(497, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy514;
-               if (yych == 'l') goto yy514;
+               if (yych == 'L') goto yy508;
+               if (yych == 'l') goto yy508;
                goto yy284;
-yy504:
-               YYDEBUG(504, *YYCURSOR);
+yy498:
+               YYDEBUG(498, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy505;
+               if (yych == 'N') goto yy499;
                if (yych != 'n') goto yy284;
-yy505:
-               YYDEBUG(505, *YYCURSOR);
+yy499:
+               YYDEBUG(499, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy506;
+               if (yych == 'T') goto yy500;
                if (yych != 't') goto yy284;
-yy506:
-               YYDEBUG(506, *YYCURSOR);
+yy500:
+               YYDEBUG(500, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy507;
-               if (yych != 'e') goto yy509;
-yy507:
-               YYDEBUG(507, *YYCURSOR);
+               if (yych == 'E') goto yy501;
+               if (yych != 'e') goto yy503;
+yy501:
+               YYDEBUG(501, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'G') goto yy512;
-               if (yych == 'g') goto yy512;
+               if (yych == 'G') goto yy506;
+               if (yych == 'g') goto yy506;
                goto yy284;
-yy508:
-               YYDEBUG(508, *YYCURSOR);
+yy502:
+               YYDEBUG(502, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy509:
-               YYDEBUG(509, *YYCURSOR);
+yy503:
+               YYDEBUG(503, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy508;
+                       if (yych == '\t') goto yy502;
                        goto yy284;
                } else {
-                       if (yych <= ' ') goto yy508;
+                       if (yych <= ' ') goto yy502;
                        if (yych != ')') goto yy284;
                }
-               YYDEBUG(510, *YYCURSOR);
+               YYDEBUG(504, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(511, *YYCURSOR);
+               YYDEBUG(505, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 852 "Zend/zend_language_scanner.l"
+#line 858 "Zend/zend_language_scanner.l"
                {
        return T_INT_CAST;
 }
-#line 5304 "Zend/zend_language_scanner.c"
-yy512:
-               YYDEBUG(512, *YYCURSOR);
+#line 5283 "Zend/zend_language_scanner.c"
+yy506:
+               YYDEBUG(506, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy513;
+               if (yych == 'E') goto yy507;
                if (yych != 'e') goto yy284;
-yy513:
-               YYDEBUG(513, *YYCURSOR);
+yy507:
+               YYDEBUG(507, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy508;
-               if (yych == 'r') goto yy508;
+               if (yych == 'R') goto yy502;
+               if (yych == 'r') goto yy502;
                goto yy284;
-yy514:
-               YYDEBUG(514, *YYCURSOR);
+yy508:
+               YYDEBUG(508, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy515;
+               if (yych == 'O') goto yy509;
                if (yych != 'o') goto yy284;
-yy515:
-               YYDEBUG(515, *YYCURSOR);
+yy509:
+               YYDEBUG(509, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy516;
+               if (yych == 'A') goto yy510;
                if (yych != 'a') goto yy284;
-yy516:
-               YYDEBUG(516, *YYCURSOR);
+yy510:
+               YYDEBUG(510, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy517;
+               if (yych == 'T') goto yy511;
                if (yych != 't') goto yy284;
-yy517:
-               YYDEBUG(517, *YYCURSOR);
+yy511:
+               YYDEBUG(511, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(518, *YYCURSOR);
+               YYDEBUG(512, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy517;
+                       if (yych == '\t') goto yy511;
                        goto yy284;
                } else {
-                       if (yych <= ' ') goto yy517;
+                       if (yych <= ' ') goto yy511;
                        if (yych != ')') goto yy284;
                }
-               YYDEBUG(519, *YYCURSOR);
+               YYDEBUG(513, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(520, *YYCURSOR);
+               YYDEBUG(514, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 856 "Zend/zend_language_scanner.l"
+#line 862 "Zend/zend_language_scanner.l"
                {
        return T_DOUBLE_CAST;
 }
-#line 5352 "Zend/zend_language_scanner.c"
-yy521:
-               YYDEBUG(521, *YYCURSOR);
+#line 5331 "Zend/zend_language_scanner.c"
+yy515:
+               YYDEBUG(515, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy522;
+               if (yych == 'U') goto yy516;
                if (yych != 'u') goto yy284;
-yy522:
-               YYDEBUG(522, *YYCURSOR);
+yy516:
+               YYDEBUG(516, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'B') goto yy523;
+               if (yych == 'B') goto yy517;
                if (yych != 'b') goto yy284;
-yy523:
-               YYDEBUG(523, *YYCURSOR);
+yy517:
+               YYDEBUG(517, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy524;
+               if (yych == 'L') goto yy518;
                if (yych != 'l') goto yy284;
-yy524:
-               YYDEBUG(524, *YYCURSOR);
+yy518:
+               YYDEBUG(518, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy517;
-               if (yych == 'e') goto yy517;
+               if (yych == 'E') goto yy511;
+               if (yych == 'e') goto yy511;
                goto yy284;
-yy525:
-               YYDEBUG(525, *YYCURSOR);
+yy519:
+               YYDEBUG(519, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy526;
+               if (yych == 'A') goto yy520;
                if (yych != 'a') goto yy284;
-yy526:
-               YYDEBUG(526, *YYCURSOR);
+yy520:
+               YYDEBUG(520, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy517;
-               if (yych == 'l') goto yy517;
+               if (yych == 'L') goto yy511;
+               if (yych == 'l') goto yy511;
                goto yy284;
-yy527:
-               YYDEBUG(527, *YYCURSOR);
+yy521:
+               YYDEBUG(521, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy528;
+               if (yych == 'R') goto yy522;
                if (yych != 'r') goto yy284;
-yy528:
-               YYDEBUG(528, *YYCURSOR);
+yy522:
+               YYDEBUG(522, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy529;
+               if (yych == 'I') goto yy523;
                if (yych != 'i') goto yy284;
-yy529:
-               YYDEBUG(529, *YYCURSOR);
+yy523:
+               YYDEBUG(523, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy530;
+               if (yych == 'N') goto yy524;
                if (yych != 'n') goto yy284;
-yy530:
-               YYDEBUG(530, *YYCURSOR);
+yy524:
+               YYDEBUG(524, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'G') goto yy531;
+               if (yych == 'G') goto yy525;
                if (yych != 'g') goto yy284;
-yy531:
-               YYDEBUG(531, *YYCURSOR);
+yy525:
+               YYDEBUG(525, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(532, *YYCURSOR);
+               YYDEBUG(526, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy531;
+                       if (yych == '\t') goto yy525;
                        goto yy284;
                } else {
-                       if (yych <= ' ') goto yy531;
+                       if (yych <= ' ') goto yy525;
                        if (yych != ')') goto yy284;
                }
-               YYDEBUG(533, *YYCURSOR);
+               YYDEBUG(527, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(534, *YYCURSOR);
+               YYDEBUG(528, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 860 "Zend/zend_language_scanner.l"
+#line 866 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
 }
-#line 5426 "Zend/zend_language_scanner.c"
-yy535:
-               YYDEBUG(535, *YYCURSOR);
+#line 5405 "Zend/zend_language_scanner.c"
+yy529:
+               YYDEBUG(529, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy536;
+               if (yych == 'R') goto yy530;
                if (yych != 'r') goto yy284;
-yy536:
-               YYDEBUG(536, *YYCURSOR);
+yy530:
+               YYDEBUG(530, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy537;
+               if (yych == 'A') goto yy531;
                if (yych != 'a') goto yy284;
-yy537:
-               YYDEBUG(537, *YYCURSOR);
+yy531:
+               YYDEBUG(531, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy538;
+               if (yych == 'Y') goto yy532;
                if (yych != 'y') goto yy284;
-yy538:
-               YYDEBUG(538, *YYCURSOR);
+yy532:
+               YYDEBUG(532, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(539, *YYCURSOR);
+               YYDEBUG(533, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy538;
+                       if (yych == '\t') goto yy532;
                        goto yy284;
                } else {
-                       if (yych <= ' ') goto yy538;
+                       if (yych <= ' ') goto yy532;
                        if (yych != ')') goto yy284;
                }
-               YYDEBUG(540, *YYCURSOR);
+               YYDEBUG(534, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(541, *YYCURSOR);
+               YYDEBUG(535, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 868 "Zend/zend_language_scanner.l"
+#line 874 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY_CAST;
 }
-#line 5463 "Zend/zend_language_scanner.c"
-yy542:
-               YYDEBUG(542, *YYCURSOR);
+#line 5442 "Zend/zend_language_scanner.c"
+yy536:
+               YYDEBUG(536, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'J') goto yy543;
+               if (yych == 'J') goto yy537;
                if (yych != 'j') goto yy284;
-yy543:
-               YYDEBUG(543, *YYCURSOR);
+yy537:
+               YYDEBUG(537, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy544;
+               if (yych == 'E') goto yy538;
                if (yych != 'e') goto yy284;
-yy544:
-               YYDEBUG(544, *YYCURSOR);
+yy538:
+               YYDEBUG(538, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy545;
+               if (yych == 'C') goto yy539;
                if (yych != 'c') goto yy284;
-yy545:
-               YYDEBUG(545, *YYCURSOR);
+yy539:
+               YYDEBUG(539, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy546;
+               if (yych == 'T') goto yy540;
                if (yych != 't') goto yy284;
-yy546:
-               YYDEBUG(546, *YYCURSOR);
+yy540:
+               YYDEBUG(540, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(547, *YYCURSOR);
+               YYDEBUG(541, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy546;
+                       if (yych == '\t') goto yy540;
                        goto yy284;
                } else {
-                       if (yych <= ' ') goto yy546;
+                       if (yych <= ' ') goto yy540;
                        if (yych != ')') goto yy284;
                }
-               YYDEBUG(548, *YYCURSOR);
+               YYDEBUG(542, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(549, *YYCURSOR);
+               YYDEBUG(543, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 872 "Zend/zend_language_scanner.l"
+#line 878 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_CAST;
 }
-#line 5505 "Zend/zend_language_scanner.c"
-yy550:
-               YYDEBUG(550, *YYCURSOR);
+#line 5484 "Zend/zend_language_scanner.c"
+yy544:
+               YYDEBUG(544, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy560;
-               if (yych == 'n') goto yy560;
+               if (yych == 'N') goto yy554;
+               if (yych == 'n') goto yy554;
                goto yy284;
-yy551:
-               YYDEBUG(551, *YYCURSOR);
+yy545:
+               YYDEBUG(545, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy552;
+               if (yych == 'O') goto yy546;
                if (yych != 'o') goto yy284;
-yy552:
-               YYDEBUG(552, *YYCURSOR);
+yy546:
+               YYDEBUG(546, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy553;
+               if (yych == 'L') goto yy547;
                if (yych != 'l') goto yy284;
-yy553:
-               YYDEBUG(553, *YYCURSOR);
+yy547:
+               YYDEBUG(547, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy558;
-               if (yych == 'e') goto yy558;
-               goto yy555;
-yy554:
-               YYDEBUG(554, *YYCURSOR);
+               if (yych == 'E') goto yy552;
+               if (yych == 'e') goto yy552;
+               goto yy549;
+yy548:
+               YYDEBUG(548, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy555:
-               YYDEBUG(555, *YYCURSOR);
+yy549:
+               YYDEBUG(549, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy554;
+                       if (yych == '\t') goto yy548;
                        goto yy284;
                } else {
-                       if (yych <= ' ') goto yy554;
+                       if (yych <= ' ') goto yy548;
                        if (yych != ')') goto yy284;
                }
-               YYDEBUG(556, *YYCURSOR);
+               YYDEBUG(550, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(557, *YYCURSOR);
+               YYDEBUG(551, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 876 "Zend/zend_language_scanner.l"
+#line 882 "Zend/zend_language_scanner.l"
                {
        return T_BOOL_CAST;
 }
-#line 5550 "Zend/zend_language_scanner.c"
-yy558:
-               YYDEBUG(558, *YYCURSOR);
+#line 5529 "Zend/zend_language_scanner.c"
+yy552:
+               YYDEBUG(552, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy559;
+               if (yych == 'A') goto yy553;
                if (yych != 'a') goto yy284;
-yy559:
-               YYDEBUG(559, *YYCURSOR);
+yy553:
+               YYDEBUG(553, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy554;
-               if (yych == 'n') goto yy554;
+               if (yych == 'N') goto yy548;
+               if (yych == 'n') goto yy548;
                goto yy284;
-yy560:
-               YYDEBUG(560, *YYCURSOR);
+yy554:
+               YYDEBUG(554, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy561;
+               if (yych == 'A') goto yy555;
                if (yych != 'a') goto yy284;
-yy561:
-               YYDEBUG(561, *YYCURSOR);
+yy555:
+               YYDEBUG(555, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy562;
+               if (yych == 'R') goto yy556;
                if (yych != 'r') goto yy284;
-yy562:
-               YYDEBUG(562, *YYCURSOR);
+yy556:
+               YYDEBUG(556, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy563;
+               if (yych == 'Y') goto yy557;
                if (yych != 'y') goto yy284;
-yy563:
-               YYDEBUG(563, *YYCURSOR);
+yy557:
+               YYDEBUG(557, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(564, *YYCURSOR);
+               YYDEBUG(558, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy563;
+                       if (yych == '\t') goto yy557;
                        goto yy284;
                } else {
-                       if (yych <= ' ') goto yy563;
+                       if (yych <= ' ') goto yy557;
                        if (yych != ')') goto yy284;
                }
-               YYDEBUG(565, *YYCURSOR);
+               YYDEBUG(559, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(566, *YYCURSOR);
+               YYDEBUG(560, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 864 "Zend/zend_language_scanner.l"
+#line 870 "Zend/zend_language_scanner.l"
                {
        return T_STRING_CAST;
 }
-#line 5598 "Zend/zend_language_scanner.c"
-yy567:
-               YYDEBUG(567, *YYCURSOR);
+#line 5577 "Zend/zend_language_scanner.c"
+yy561:
+               YYDEBUG(561, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy568;
+               if (yych == 'S') goto yy562;
                if (yych != 's') goto yy284;
-yy568:
-               YYDEBUG(568, *YYCURSOR);
+yy562:
+               YYDEBUG(562, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy569;
+               if (yych == 'E') goto yy563;
                if (yych != 'e') goto yy284;
-yy569:
-               YYDEBUG(569, *YYCURSOR);
+yy563:
+               YYDEBUG(563, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy570;
+               if (yych == 'T') goto yy564;
                if (yych != 't') goto yy284;
-yy570:
-               YYDEBUG(570, *YYCURSOR);
+yy564:
+               YYDEBUG(564, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(571, *YYCURSOR);
+               YYDEBUG(565, *YYCURSOR);
                if (yych <= 0x1F) {
-                       if (yych == '\t') goto yy570;
+                       if (yych == '\t') goto yy564;
                        goto yy284;
                } else {
-                       if (yych <= ' ') goto yy570;
+                       if (yych <= ' ') goto yy564;
                        if (yych != ')') goto yy284;
                }
-               YYDEBUG(572, *YYCURSOR);
+               YYDEBUG(566, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(573, *YYCURSOR);
+               YYDEBUG(567, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 880 "Zend/zend_language_scanner.l"
+#line 886 "Zend/zend_language_scanner.l"
                {
        return T_UNSET_CAST;
 }
-#line 5635 "Zend/zend_language_scanner.c"
-yy574:
-               YYDEBUG(574, *YYCURSOR);
+#line 5614 "Zend/zend_language_scanner.c"
+yy568:
+               YYDEBUG(568, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy575;
+               if (yych == 'R') goto yy569;
                if (yych != 'r') goto yy296;
-yy575:
-               YYDEBUG(575, *YYCURSOR);
+yy569:
+               YYDEBUG(569, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(576, *YYCURSOR);
+               YYDEBUG(570, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 848 "Zend/zend_language_scanner.l"
+#line 854 "Zend/zend_language_scanner.l"
                {
        return T_VAR;
 }
-#line 5653 "Zend/zend_language_scanner.c"
-yy577:
-               YYDEBUG(577, *YYCURSOR);
+#line 5632 "Zend/zend_language_scanner.c"
+yy571:
+               YYDEBUG(571, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'M') goto yy581;
-               if (yych == 'm') goto yy581;
+               if (yych == 'M') goto yy575;
+               if (yych == 'm') goto yy575;
                goto yy296;
-yy578:
-               YYDEBUG(578, *YYCURSOR);
+yy572:
+               YYDEBUG(572, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'W') goto yy579;
+               if (yych == 'W') goto yy573;
                if (yych != 'w') goto yy296;
-yy579:
-               YYDEBUG(579, *YYCURSOR);
+yy573:
+               YYDEBUG(573, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(580, *YYCURSOR);
+               YYDEBUG(574, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 840 "Zend/zend_language_scanner.l"
+#line 846 "Zend/zend_language_scanner.l"
                {
        return T_NEW;
 }
-#line 5677 "Zend/zend_language_scanner.c"
-yy581:
-               YYDEBUG(581, *YYCURSOR);
+#line 5656 "Zend/zend_language_scanner.c"
+yy575:
+               YYDEBUG(575, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy582;
+               if (yych == 'E') goto yy576;
                if (yych != 'e') goto yy296;
-yy582:
-               YYDEBUG(582, *YYCURSOR);
+yy576:
+               YYDEBUG(576, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy583;
+               if (yych == 'S') goto yy577;
                if (yych != 's') goto yy296;
-yy583:
-               YYDEBUG(583, *YYCURSOR);
+yy577:
+               YYDEBUG(577, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy584;
+               if (yych == 'P') goto yy578;
                if (yych != 'p') goto yy296;
-yy584:
-               YYDEBUG(584, *YYCURSOR);
+yy578:
+               YYDEBUG(578, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy585;
+               if (yych == 'A') goto yy579;
                if (yych != 'a') goto yy296;
-yy585:
-               YYDEBUG(585, *YYCURSOR);
+yy579:
+               YYDEBUG(579, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy586;
+               if (yych == 'C') goto yy580;
                if (yych != 'c') goto yy296;
-yy586:
-               YYDEBUG(586, *YYCURSOR);
+yy580:
+               YYDEBUG(580, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy587;
+               if (yych == 'E') goto yy581;
                if (yych != 'e') goto yy296;
-yy587:
-               YYDEBUG(587, *YYCURSOR);
+yy581:
+               YYDEBUG(581, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(588, *YYCURSOR);
+               YYDEBUG(582, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 904 "Zend/zend_language_scanner.l"
+#line 910 "Zend/zend_language_scanner.l"
                {
        return T_NAMESPACE;
 }
-#line 5720 "Zend/zend_language_scanner.c"
-yy589:
-               YYDEBUG(589, *YYCURSOR);
+#line 5699 "Zend/zend_language_scanner.c"
+yy583:
+               YYDEBUG(583, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(590, *YYCURSOR);
+               YYDEBUG(584, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 836 "Zend/zend_language_scanner.l"
+#line 842 "Zend/zend_language_scanner.l"
                {
        return T_PAAMAYIM_NEKUDOTAYIM;
 }
-#line 5730 "Zend/zend_language_scanner.c"
-yy591:
-               YYDEBUG(591, *YYCURSOR);
+#line 5709 "Zend/zend_language_scanner.c"
+yy585:
+               YYDEBUG(585, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(592, *YYCURSOR);
+               YYDEBUG(586, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1004 "Zend/zend_language_scanner.l"
+#line 1010 "Zend/zend_language_scanner.l"
                {
        return T_MINUS_EQUAL;
 }
-#line 5740 "Zend/zend_language_scanner.c"
-yy593:
-               YYDEBUG(593, *YYCURSOR);
+#line 5719 "Zend/zend_language_scanner.c"
+yy587:
+               YYDEBUG(587, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(594, *YYCURSOR);
+               YYDEBUG(588, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 972 "Zend/zend_language_scanner.l"
+#line 978 "Zend/zend_language_scanner.l"
                {
        return T_DEC;
 }
-#line 5750 "Zend/zend_language_scanner.c"
-yy595:
-               YYDEBUG(595, *YYCURSOR);
+#line 5729 "Zend/zend_language_scanner.c"
+yy589:
+               YYDEBUG(589, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(596, *YYCURSOR);
+               YYDEBUG(590, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 809 "Zend/zend_language_scanner.l"
+#line 815 "Zend/zend_language_scanner.l"
                {
        yy_push_state(ST_LOOKING_FOR_PROPERTY TSRMLS_CC);
        return T_OBJECT_OPERATOR;
 }
-#line 5761 "Zend/zend_language_scanner.c"
-yy597:
-               YYDEBUG(597, *YYCURSOR);
+#line 5740 "Zend/zend_language_scanner.c"
+yy591:
+               YYDEBUG(591, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
-                       if (yych == 'I') goto yy604;
+                       if (yych == 'I') goto yy598;
                        if (yych <= 'N') goto yy296;
-                       goto yy605;
+                       goto yy599;
                } else {
                        if (yych <= 'i') {
                                if (yych <= 'h') goto yy296;
-                               goto yy604;
+                               goto yy598;
                        } else {
-                               if (yych == 'o') goto yy605;
+                               if (yych == 'o') goto yy599;
                                goto yy296;
                        }
                }
-yy598:
-               YYDEBUG(598, *YYCURSOR);
+yy592:
+               YYDEBUG(592, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'B') goto yy599;
+               if (yych == 'B') goto yy593;
                if (yych != 'b') goto yy296;
-yy599:
-               YYDEBUG(599, *YYCURSOR);
+yy593:
+               YYDEBUG(593, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy600;
+               if (yych == 'L') goto yy594;
                if (yych != 'l') goto yy296;
-yy600:
-               YYDEBUG(600, *YYCURSOR);
+yy594:
+               YYDEBUG(594, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy601;
+               if (yych == 'I') goto yy595;
                if (yych != 'i') goto yy296;
-yy601:
-               YYDEBUG(601, *YYCURSOR);
+yy595:
+               YYDEBUG(595, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy602;
+               if (yych == 'C') goto yy596;
                if (yych != 'c') goto yy296;
-yy602:
-               YYDEBUG(602, *YYCURSOR);
+yy596:
+               YYDEBUG(596, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(603, *YYCURSOR);
+               YYDEBUG(597, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 948 "Zend/zend_language_scanner.l"
+#line 954 "Zend/zend_language_scanner.l"
                {
        return T_PUBLIC;
 }
-#line 5810 "Zend/zend_language_scanner.c"
-yy604:
-               YYDEBUG(604, *YYCURSOR);
+#line 5789 "Zend/zend_language_scanner.c"
+yy598:
+               YYDEBUG(598, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'V') {
-                       if (yych == 'N') goto yy613;
+                       if (yych == 'N') goto yy607;
                        if (yych <= 'U') goto yy296;
-                       goto yy614;
+                       goto yy608;
                } else {
                        if (yych <= 'n') {
                                if (yych <= 'm') goto yy296;
-                               goto yy613;
+                               goto yy607;
                        } else {
-                               if (yych == 'v') goto yy614;
+                               if (yych == 'v') goto yy608;
                                goto yy296;
                        }
                }
-yy605:
-               YYDEBUG(605, *YYCURSOR);
+yy599:
+               YYDEBUG(599, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy606;
+               if (yych == 'T') goto yy600;
                if (yych != 't') goto yy296;
-yy606:
-               YYDEBUG(606, *YYCURSOR);
+yy600:
+               YYDEBUG(600, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy607;
+               if (yych == 'E') goto yy601;
                if (yych != 'e') goto yy296;
-yy607:
-               YYDEBUG(607, *YYCURSOR);
+yy601:
+               YYDEBUG(601, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy608;
+               if (yych == 'C') goto yy602;
                if (yych != 'c') goto yy296;
-yy608:
-               YYDEBUG(608, *YYCURSOR);
+yy602:
+               YYDEBUG(602, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy609;
+               if (yych == 'T') goto yy603;
                if (yych != 't') goto yy296;
-yy609:
-               YYDEBUG(609, *YYCURSOR);
+yy603:
+               YYDEBUG(603, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy610;
+               if (yych == 'E') goto yy604;
                if (yych != 'e') goto yy296;
-yy610:
-               YYDEBUG(610, *YYCURSOR);
+yy604:
+               YYDEBUG(604, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy611;
+               if (yych == 'D') goto yy605;
                if (yych != 'd') goto yy296;
-yy611:
-               YYDEBUG(611, *YYCURSOR);
+yy605:
+               YYDEBUG(605, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(612, *YYCURSOR);
+               YYDEBUG(606, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 944 "Zend/zend_language_scanner.l"
+#line 950 "Zend/zend_language_scanner.l"
                {
        return T_PROTECTED;
 }
-#line 5869 "Zend/zend_language_scanner.c"
-yy613:
-               YYDEBUG(613, *YYCURSOR);
+#line 5848 "Zend/zend_language_scanner.c"
+yy607:
+               YYDEBUG(607, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy619;
-               if (yych == 't') goto yy619;
+               if (yych == 'T') goto yy613;
+               if (yych == 't') goto yy613;
                goto yy296;
-yy614:
-               YYDEBUG(614, *YYCURSOR);
+yy608:
+               YYDEBUG(608, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy615;
+               if (yych == 'A') goto yy609;
                if (yych != 'a') goto yy296;
-yy615:
-               YYDEBUG(615, *YYCURSOR);
+yy609:
+               YYDEBUG(609, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy616;
+               if (yych == 'T') goto yy610;
                if (yych != 't') goto yy296;
-yy616:
-               YYDEBUG(616, *YYCURSOR);
+yy610:
+               YYDEBUG(610, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy617;
+               if (yych == 'E') goto yy611;
                if (yych != 'e') goto yy296;
-yy617:
-               YYDEBUG(617, *YYCURSOR);
+yy611:
+               YYDEBUG(611, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(618, *YYCURSOR);
+               YYDEBUG(612, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 940 "Zend/zend_language_scanner.l"
+#line 946 "Zend/zend_language_scanner.l"
                {
        return T_PRIVATE;
 }
-#line 5903 "Zend/zend_language_scanner.c"
-yy619:
-               YYDEBUG(619, *YYCURSOR);
+#line 5882 "Zend/zend_language_scanner.c"
+yy613:
+               YYDEBUG(613, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(620, *YYCURSOR);
+               YYDEBUG(614, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 789 "Zend/zend_language_scanner.l"
+#line 795 "Zend/zend_language_scanner.l"
                {
        return T_PRINT;
 }
-#line 5916 "Zend/zend_language_scanner.c"
+#line 5895 "Zend/zend_language_scanner.c"
+yy615:
+               YYDEBUG(615, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'O') goto yy620;
+               if (yych == 'o') goto yy620;
+               goto yy296;
+yy616:
+               YYDEBUG(616, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'T') goto yy617;
+               if (yych != 't') goto yy296;
+yy617:
+               YYDEBUG(617, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'O') goto yy618;
+               if (yych != 'o') goto yy296;
+yy618:
+               YYDEBUG(618, *YYCURSOR);
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 16) {
+                       goto yy295;
+               }
+               YYDEBUG(619, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 787 "Zend/zend_language_scanner.l"
+               {
+       return T_GOTO;
+}
+#line 5924 "Zend/zend_language_scanner.c"
+yy620:
+               YYDEBUG(620, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'B') goto yy621;
+               if (yych != 'b') goto yy296;
 yy621:
                YYDEBUG(621, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '<') goto yy628;
-               goto yy284;
+               if (yych == 'A') goto yy622;
+               if (yych != 'a') goto yy296;
 yy622:
                YYDEBUG(622, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'L') goto yy623;
+               if (yych != 'l') goto yy296;
+yy623:
+               YYDEBUG(623, *YYCURSOR);
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 16) {
+                       goto yy295;
+               }
+               YYDEBUG(624, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 918 "Zend/zend_language_scanner.l"
+               {
+       return T_GLOBAL;
+}
+#line 5952 "Zend/zend_language_scanner.c"
+yy625:
+               YYDEBUG(625, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '<') goto yy632;
+               goto yy284;
+yy626:
+               YYDEBUG(626, *YYCURSOR);
                yyaccept = 3;
                yych = *(YYMARKER = ++YYCURSOR);
                goto yy286;
-yy623:
-               YYDEBUG(623, *YYCURSOR);
+yy627:
+               YYDEBUG(627, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy624;
+               if (yych == 'E') goto yy628;
                if (yych != 'e') goto yy296;
-yy624:
-               YYDEBUG(624, *YYCURSOR);
+yy628:
+               YYDEBUG(628, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy625;
+               if (yych == 'A') goto yy629;
                if (yych != 'a') goto yy296;
-yy625:
-               YYDEBUG(625, *YYCURSOR);
+yy629:
+               YYDEBUG(629, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'K') goto yy626;
+               if (yych == 'K') goto yy630;
                if (yych != 'k') goto yy296;
-yy626:
-               YYDEBUG(626, *YYCURSOR);
+yy630:
+               YYDEBUG(630, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(627, *YYCURSOR);
+               YYDEBUG(631, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 777 "Zend/zend_language_scanner.l"
+#line 779 "Zend/zend_language_scanner.l"
                {
        return T_BREAK;
 }
-#line 5954 "Zend/zend_language_scanner.c"
-yy628:
-               YYDEBUG(628, *YYCURSOR);
+#line 5990 "Zend/zend_language_scanner.c"
+yy632:
+               YYDEBUG(632, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych == '<') goto yy375;
                goto yy284;
-yy629:
-               YYDEBUG(629, *YYCURSOR);
+yy633:
+               YYDEBUG(633, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy636;
-               if (yych == 'a') goto yy636;
+               if (yych == 'A') goto yy640;
+               if (yych == 'a') goto yy640;
                goto yy296;
-yy630:
-               YYDEBUG(630, *YYCURSOR);
+yy634:
+               YYDEBUG(634, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy631;
+               if (yych == 'I') goto yy635;
                if (yych != 'i') goto yy296;
-yy631:
-               YYDEBUG(631, *YYCURSOR);
+yy635:
+               YYDEBUG(635, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy632;
+               if (yych == 'T') goto yy636;
                if (yych != 't') goto yy296;
-yy632:
-               YYDEBUG(632, *YYCURSOR);
+yy636:
+               YYDEBUG(636, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy633;
+               if (yych == 'C') goto yy637;
                if (yych != 'c') goto yy296;
-yy633:
-               YYDEBUG(633, *YYCURSOR);
+yy637:
+               YYDEBUG(637, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy634;
+               if (yych == 'H') goto yy638;
                if (yych != 'h') goto yy296;
-yy634:
-               YYDEBUG(634, *YYCURSOR);
+yy638:
+               YYDEBUG(638, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(635, *YYCURSOR);
+               YYDEBUG(639, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 761 "Zend/zend_language_scanner.l"
+#line 763 "Zend/zend_language_scanner.l"
                {
        return T_SWITCH;
 }
-#line 5998 "Zend/zend_language_scanner.c"
-yy636:
-               YYDEBUG(636, *YYCURSOR);
+#line 6034 "Zend/zend_language_scanner.c"
+yy640:
+               YYDEBUG(640, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy637;
+               if (yych == 'T') goto yy641;
                if (yych != 't') goto yy296;
-yy637:
-               YYDEBUG(637, *YYCURSOR);
+yy641:
+               YYDEBUG(641, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy638;
+               if (yych == 'I') goto yy642;
                if (yych != 'i') goto yy296;
-yy638:
-               YYDEBUG(638, *YYCURSOR);
+yy642:
+               YYDEBUG(642, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy639;
+               if (yych == 'C') goto yy643;
                if (yych != 'c') goto yy296;
-yy639:
-               YYDEBUG(639, *YYCURSOR);
+yy643:
+               YYDEBUG(643, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(640, *YYCURSOR);
+               YYDEBUG(644, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 928 "Zend/zend_language_scanner.l"
+#line 934 "Zend/zend_language_scanner.l"
                {
        return T_STATIC;
 }
-#line 6026 "Zend/zend_language_scanner.c"
-yy641:
-               YYDEBUG(641, *YYCURSOR);
+#line 6062 "Zend/zend_language_scanner.c"
+yy645:
+               YYDEBUG(645, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy652;
-               if (yych == 's') goto yy652;
+               if (yych == 'S') goto yy656;
+               if (yych == 's') goto yy656;
                goto yy296;
-yy642:
-               YYDEBUG(642, *YYCURSOR);
+yy646:
+               YYDEBUG(646, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy650;
-               if (yych == 'd') goto yy650;
+               if (yych == 'D') goto yy654;
+               if (yych == 'd') goto yy654;
                goto yy296;
-yy643:
-               YYDEBUG(643, *YYCURSOR);
+yy647:
+               YYDEBUG(647, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy646;
-               if (yych == 'r') goto yy646;
+               if (yych == 'R') goto yy650;
+               if (yych == 'r') goto yy650;
                goto yy296;
-yy644:
-               YYDEBUG(644, *YYCURSOR);
+yy648:
+               YYDEBUG(648, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(645, *YYCURSOR);
+               YYDEBUG(649, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 757 "Zend/zend_language_scanner.l"
+#line 759 "Zend/zend_language_scanner.l"
                {
        return T_AS;
 }
-#line 6057 "Zend/zend_language_scanner.c"
-yy646:
-               YYDEBUG(646, *YYCURSOR);
+#line 6093 "Zend/zend_language_scanner.c"
+yy650:
+               YYDEBUG(650, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy647;
+               if (yych == 'A') goto yy651;
                if (yych != 'a') goto yy296;
-yy647:
-               YYDEBUG(647, *YYCURSOR);
+yy651:
+               YYDEBUG(651, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy648;
+               if (yych == 'Y') goto yy652;
                if (yych != 'y') goto yy296;
-yy648:
-               YYDEBUG(648, *YYCURSOR);
+yy652:
+               YYDEBUG(652, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(649, *YYCURSOR);
+               YYDEBUG(653, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 964 "Zend/zend_language_scanner.l"
+#line 970 "Zend/zend_language_scanner.l"
                {
        return T_ARRAY;
 }
-#line 6080 "Zend/zend_language_scanner.c"
-yy650:
-               YYDEBUG(650, *YYCURSOR);
+#line 6116 "Zend/zend_language_scanner.c"
+yy654:
+               YYDEBUG(654, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(651, *YYCURSOR);
+               YYDEBUG(655, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1056 "Zend/zend_language_scanner.l"
+#line 1062 "Zend/zend_language_scanner.l"
                {
        return T_LOGICAL_AND;
 }
-#line 6093 "Zend/zend_language_scanner.c"
-yy652:
-               YYDEBUG(652, *YYCURSOR);
+#line 6129 "Zend/zend_language_scanner.c"
+yy656:
+               YYDEBUG(656, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy653;
+               if (yych == 'T') goto yy657;
                if (yych != 't') goto yy296;
-yy653:
-               YYDEBUG(653, *YYCURSOR);
+yy657:
+               YYDEBUG(657, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy654;
+               if (yych == 'R') goto yy658;
                if (yych != 'r') goto yy296;
-yy654:
-               YYDEBUG(654, *YYCURSOR);
+yy658:
+               YYDEBUG(658, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy655;
+               if (yych == 'A') goto yy659;
                if (yych != 'a') goto yy296;
-yy655:
-               YYDEBUG(655, *YYCURSOR);
+yy659:
+               YYDEBUG(659, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy656;
+               if (yych == 'C') goto yy660;
                if (yych != 'c') goto yy296;
-yy656:
-               YYDEBUG(656, *YYCURSOR);
+yy660:
+               YYDEBUG(660, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy657;
+               if (yych == 'T') goto yy661;
                if (yych != 't') goto yy296;
-yy657:
-               YYDEBUG(657, *YYCURSOR);
+yy661:
+               YYDEBUG(661, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(658, *YYCURSOR);
+               YYDEBUG(662, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 932 "Zend/zend_language_scanner.l"
+#line 938 "Zend/zend_language_scanner.l"
                {
        return T_ABSTRACT;
 }
-#line 6131 "Zend/zend_language_scanner.c"
-yy659:
-               YYDEBUG(659, *YYCURSOR);
+#line 6167 "Zend/zend_language_scanner.c"
+yy663:
+               YYDEBUG(663, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy660;
+               if (yych == 'I') goto yy664;
                if (yych != 'i') goto yy296;
-yy660:
-               YYDEBUG(660, *YYCURSOR);
+yy664:
+               YYDEBUG(664, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy661;
+               if (yych == 'L') goto yy665;
                if (yych != 'l') goto yy296;
-yy661:
-               YYDEBUG(661, *YYCURSOR);
+yy665:
+               YYDEBUG(665, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy662;
+               if (yych == 'E') goto yy666;
                if (yych != 'e') goto yy296;
-yy662:
-               YYDEBUG(662, *YYCURSOR);
+yy666:
+               YYDEBUG(666, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(663, *YYCURSOR);
+               YYDEBUG(667, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 717 "Zend/zend_language_scanner.l"
+#line 719 "Zend/zend_language_scanner.l"
                {
        return T_WHILE;
 }
-#line 6159 "Zend/zend_language_scanner.c"
-yy664:
-               YYDEBUG(664, *YYCURSOR);
+#line 6195 "Zend/zend_language_scanner.c"
+yy668:
+               YYDEBUG(668, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(665, *YYCURSOR);
+               YYDEBUG(669, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 701 "Zend/zend_language_scanner.l"
+#line 703 "Zend/zend_language_scanner.l"
                {
        return T_IF;
 }
-#line 6172 "Zend/zend_language_scanner.c"
-yy666:
-               YYDEBUG(666, *YYCURSOR);
+#line 6208 "Zend/zend_language_scanner.c"
+yy670:
+               YYDEBUG(670, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy702;
-               if (yych == 'p') goto yy702;
+               if (yych == 'P') goto yy706;
+               if (yych == 'p') goto yy706;
                goto yy296;
-yy667:
-               YYDEBUG(667, *YYCURSOR);
+yy671:
+               YYDEBUG(671, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
                        if (yych <= 'C') {
                                if (yych <= 'B') goto yy296;
-                               goto yy675;
+                               goto yy679;
                        } else {
                                if (yych <= 'R') goto yy296;
-                               if (yych <= 'S') goto yy673;
-                               goto yy674;
+                               if (yych <= 'S') goto yy677;
+                               goto yy678;
                        }
                } else {
                        if (yych <= 'r') {
-                               if (yych == 'c') goto yy675;
+                               if (yych == 'c') goto yy679;
                                goto yy296;
                        } else {
-                               if (yych <= 's') goto yy673;
-                               if (yych <= 't') goto yy674;
+                               if (yych <= 's') goto yy677;
+                               if (yych <= 't') goto yy678;
                                goto yy296;
                        }
                }
-yy668:
-               YYDEBUG(668, *YYCURSOR);
+yy672:
+               YYDEBUG(672, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy669;
+               if (yych == 'S') goto yy673;
                if (yych != 's') goto yy296;
-yy669:
-               YYDEBUG(669, *YYCURSOR);
+yy673:
+               YYDEBUG(673, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy670;
+               if (yych == 'E') goto yy674;
                if (yych != 'e') goto yy296;
-yy670:
-               YYDEBUG(670, *YYCURSOR);
+yy674:
+               YYDEBUG(674, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy671;
+               if (yych == 'T') goto yy675;
                if (yych != 't') goto yy296;
-yy671:
-               YYDEBUG(671, *YYCURSOR);
+yy675:
+               YYDEBUG(675, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(672, *YYCURSOR);
+               YYDEBUG(676, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 916 "Zend/zend_language_scanner.l"
+#line 922 "Zend/zend_language_scanner.l"
                {
        return T_ISSET;
 }
-#line 6228 "Zend/zend_language_scanner.c"
-yy673:
-               YYDEBUG(673, *YYCURSOR);
+#line 6264 "Zend/zend_language_scanner.c"
+yy677:
+               YYDEBUG(677, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy694;
-               if (yych == 't') goto yy694;
+               if (yych == 'T') goto yy698;
+               if (yych == 't') goto yy698;
                goto yy296;
-yy674:
-               YYDEBUG(674, *YYCURSOR);
+yy678:
+               YYDEBUG(678, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy687;
-               if (yych == 'e') goto yy687;
+               if (yych == 'E') goto yy691;
+               if (yych == 'e') goto yy691;
                goto yy296;
-yy675:
-               YYDEBUG(675, *YYCURSOR);
+yy679:
+               YYDEBUG(679, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy676;
+               if (yych == 'L') goto yy680;
                if (yych != 'l') goto yy296;
-yy676:
-               YYDEBUG(676, *YYCURSOR);
+yy680:
+               YYDEBUG(680, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy677;
+               if (yych == 'U') goto yy681;
                if (yych != 'u') goto yy296;
-yy677:
-               YYDEBUG(677, *YYCURSOR);
+yy681:
+               YYDEBUG(681, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy678;
+               if (yych == 'D') goto yy682;
                if (yych != 'd') goto yy296;
-yy678:
-               YYDEBUG(678, *YYCURSOR);
+yy682:
+               YYDEBUG(682, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy679;
+               if (yych == 'E') goto yy683;
                if (yych != 'e') goto yy296;
-yy679:
-               YYDEBUG(679, *YYCURSOR);
+yy683:
+               YYDEBUG(683, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '9') {
                                if (yych >= '0') goto yy295;
                        } else {
-                               if (yych <= '@') goto yy680;
+                               if (yych <= '@') goto yy684;
                                if (yych <= 'Z') goto yy295;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy681;
+                               if (yych <= '_') goto yy685;
                        } else {
                                if (yych <= 'z') goto yy295;
                                if (yych >= 0x7F) goto yy295;
                        }
                }
-yy680:
-               YYDEBUG(680, *YYCURSOR);
+yy684:
+               YYDEBUG(684, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 888 "Zend/zend_language_scanner.l"
+#line 894 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE;
 }
-#line 6286 "Zend/zend_language_scanner.c"
-yy681:
-               YYDEBUG(681, *YYCURSOR);
+#line 6322 "Zend/zend_language_scanner.c"
+yy685:
+               YYDEBUG(685, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy682;
+               if (yych == 'O') goto yy686;
                if (yych != 'o') goto yy296;
-yy682:
-               YYDEBUG(682, *YYCURSOR);
+yy686:
+               YYDEBUG(686, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy683;
+               if (yych == 'N') goto yy687;
                if (yych != 'n') goto yy296;
-yy683:
-               YYDEBUG(683, *YYCURSOR);
+yy687:
+               YYDEBUG(687, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy684;
+               if (yych == 'C') goto yy688;
                if (yych != 'c') goto yy296;
-yy684:
-               YYDEBUG(684, *YYCURSOR);
+yy688:
+               YYDEBUG(688, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy685;
+               if (yych == 'E') goto yy689;
                if (yych != 'e') goto yy296;
-yy685:
-               YYDEBUG(685, *YYCURSOR);
+yy689:
+               YYDEBUG(689, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(686, *YYCURSOR);
+               YYDEBUG(690, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 892 "Zend/zend_language_scanner.l"
+#line 898 "Zend/zend_language_scanner.l"
                {
        return T_INCLUDE_ONCE;
 }
-#line 6319 "Zend/zend_language_scanner.c"
-yy687:
-               YYDEBUG(687, *YYCURSOR);
+#line 6355 "Zend/zend_language_scanner.c"
+yy691:
+               YYDEBUG(691, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy688;
+               if (yych == 'R') goto yy692;
                if (yych != 'r') goto yy296;
-yy688:
-               YYDEBUG(688, *YYCURSOR);
+yy692:
+               YYDEBUG(692, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy689;
+               if (yych == 'F') goto yy693;
                if (yych != 'f') goto yy296;
-yy689:
-               YYDEBUG(689, *YYCURSOR);
+yy693:
+               YYDEBUG(693, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy690;
+               if (yych == 'A') goto yy694;
                if (yych != 'a') goto yy296;
-yy690:
-               YYDEBUG(690, *YYCURSOR);
+yy694:
+               YYDEBUG(694, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy691;
+               if (yych == 'C') goto yy695;
                if (yych != 'c') goto yy296;
-yy691:
-               YYDEBUG(691, *YYCURSOR);
+yy695:
+               YYDEBUG(695, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy692;
+               if (yych == 'E') goto yy696;
                if (yych != 'e') goto yy296;
-yy692:
-               YYDEBUG(692, *YYCURSOR);
+yy696:
+               YYDEBUG(696, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(693, *YYCURSOR);
+               YYDEBUG(697, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 797 "Zend/zend_language_scanner.l"
+#line 803 "Zend/zend_language_scanner.l"
                {
        return T_INTERFACE;
 }
-#line 6357 "Zend/zend_language_scanner.c"
-yy694:
-               YYDEBUG(694, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'A') goto yy695;
-               if (yych != 'a') goto yy296;
-yy695:
-               YYDEBUG(695, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'N') goto yy696;
-               if (yych != 'n') goto yy296;
-yy696:
-               YYDEBUG(696, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'C') goto yy697;
-               if (yych != 'c') goto yy296;
-yy697:
-               YYDEBUG(697, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy698;
-               if (yych != 'e') goto yy296;
+#line 6393 "Zend/zend_language_scanner.c"
 yy698:
                YYDEBUG(698, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy699;
-               if (yych != 'o') goto yy296;
+               if (yych == 'A') goto yy699;
+               if (yych != 'a') goto yy296;
 yy699:
                YYDEBUG(699, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy700;
-               if (yych != 'f') goto yy296;
+               if (yych == 'N') goto yy700;
+               if (yych != 'n') goto yy296;
 yy700:
                YYDEBUG(700, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 16) {
-                       goto yy295;
-               }
+               yych = *++YYCURSOR;
+               if (yych == 'C') goto yy701;
+               if (yych != 'c') goto yy296;
+yy701:
                YYDEBUG(701, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 753 "Zend/zend_language_scanner.l"
-               {
-       return T_INSTANCEOF;
-}
-#line 6400 "Zend/zend_language_scanner.c"
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy702;
+               if (yych != 'e') goto yy296;
 yy702:
                YYDEBUG(702, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy703;
-               if (yych != 'l') goto yy296;
+               if (yych == 'O') goto yy703;
+               if (yych != 'o') goto yy296;
 yy703:
                YYDEBUG(703, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy704;
-               if (yych != 'e') goto yy296;
+               if (yych == 'F') goto yy704;
+               if (yych != 'f') goto yy296;
 yy704:
                YYDEBUG(704, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'M') goto yy705;
-               if (yych != 'm') goto yy296;
-yy705:
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 16) {
+                       goto yy295;
+               }
                YYDEBUG(705, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == 'E') goto yy706;
-               if (yych != 'e') goto yy296;
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 755 "Zend/zend_language_scanner.l"
+               {
+       return T_INSTANCEOF;
+}
+#line 6436 "Zend/zend_language_scanner.c"
 yy706:
                YYDEBUG(706, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy707;
-               if (yych != 'n') goto yy296;
+               if (yych == 'L') goto yy707;
+               if (yych != 'l') goto yy296;
 yy707:
                YYDEBUG(707, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy708;
-               if (yych != 't') goto yy296;
+               if (yych == 'E') goto yy708;
+               if (yych != 'e') goto yy296;
 yy708:
                YYDEBUG(708, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy709;
-               if (yych != 's') goto yy296;
+               if (yych == 'M') goto yy709;
+               if (yych != 'm') goto yy296;
 yy709:
                YYDEBUG(709, *YYCURSOR);
-               ++YYCURSOR;
-               if (yybm[0+(yych = *YYCURSOR)] & 16) {
-                       goto yy295;
-               }
+               yych = *++YYCURSOR;
+               if (yych == 'E') goto yy710;
+               if (yych != 'e') goto yy296;
+yy710:
                YYDEBUG(710, *YYCURSOR);
-               yyleng = YYCURSOR - SCNG(yy_text);
-#line 805 "Zend/zend_language_scanner.l"
-               {
-       return T_IMPLEMENTS;
-}
-#line 6448 "Zend/zend_language_scanner.c"
+               yych = *++YYCURSOR;
+               if (yych == 'N') goto yy711;
+               if (yych != 'n') goto yy296;
 yy711:
                YYDEBUG(711, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy715;
-               if (yych == 'r') goto yy715;
-               goto yy296;
+               if (yych == 'T') goto yy712;
+               if (yych != 't') goto yy296;
 yy712:
                YYDEBUG(712, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy713;
-               if (yych != 'y') goto yy296;
+               if (yych == 'S') goto yy713;
+               if (yych != 's') goto yy296;
 yy713:
                YYDEBUG(713, *YYCURSOR);
                ++YYCURSOR;
@@ -6464,21 +6476,22 @@ yy713:
                }
                YYDEBUG(714, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 689 "Zend/zend_language_scanner.l"
+#line 811 "Zend/zend_language_scanner.l"
                {
-       return T_TRY;
+       return T_IMPLEMENTS;
 }
-#line 6472 "Zend/zend_language_scanner.c"
+#line 6484 "Zend/zend_language_scanner.c"
 yy715:
                YYDEBUG(715, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy716;
-               if (yych != 'o') goto yy296;
+               if (yych == 'R') goto yy719;
+               if (yych == 'r') goto yy719;
+               goto yy296;
 yy716:
                YYDEBUG(716, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'W') goto yy717;
-               if (yych != 'w') goto yy296;
+               if (yych == 'Y') goto yy717;
+               if (yych != 'y') goto yy296;
 yy717:
                YYDEBUG(717, *YYCURSOR);
                ++YYCURSOR;
@@ -6487,994 +6500,1017 @@ yy717:
                }
                YYDEBUG(718, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 697 "Zend/zend_language_scanner.l"
+#line 691 "Zend/zend_language_scanner.l"
                {
-       return T_THROW;
+       return T_TRY;
 }
-#line 6495 "Zend/zend_language_scanner.c"
+#line 6508 "Zend/zend_language_scanner.c"
 yy719:
                YYDEBUG(719, *YYCURSOR);
                yych = *++YYCURSOR;
+               if (yych == 'O') goto yy720;
+               if (yych != 'o') goto yy296;
+yy720:
+               YYDEBUG(720, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == 'W') goto yy721;
+               if (yych != 'w') goto yy296;
+yy721:
+               YYDEBUG(721, *YYCURSOR);
+               ++YYCURSOR;
+               if (yybm[0+(yych = *YYCURSOR)] & 16) {
+                       goto yy295;
+               }
+               YYDEBUG(722, *YYCURSOR);
+               yyleng = YYCURSOR - SCNG(yy_text);
+#line 699 "Zend/zend_language_scanner.l"
+               {
+       return T_THROW;
+}
+#line 6531 "Zend/zend_language_scanner.c"
+yy723:
+               YYDEBUG(723, *YYCURSOR);
+               yych = *++YYCURSOR;
                if (yych <= 'T') {
-                       if (yych == 'Q') goto yy721;
+                       if (yych == 'Q') goto yy725;
                        if (yych <= 'S') goto yy296;
                } else {
                        if (yych <= 'q') {
                                if (yych <= 'p') goto yy296;
-                               goto yy721;
+                               goto yy725;
                        } else {
                                if (yych != 't') goto yy296;
                        }
                }
-               YYDEBUG(720, *YYCURSOR);
+               YYDEBUG(724, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy733;
-               if (yych == 'u') goto yy733;
+               if (yych == 'U') goto yy737;
+               if (yych == 'u') goto yy737;
                goto yy296;
-yy721:
-               YYDEBUG(721, *YYCURSOR);
+yy725:
+               YYDEBUG(725, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy722;
+               if (yych == 'U') goto yy726;
                if (yych != 'u') goto yy296;
-yy722:
-               YYDEBUG(722, *YYCURSOR);
+yy726:
+               YYDEBUG(726, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy723;
+               if (yych == 'I') goto yy727;
                if (yych != 'i') goto yy296;
-yy723:
-               YYDEBUG(723, *YYCURSOR);
+yy727:
+               YYDEBUG(727, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy724;
+               if (yych == 'R') goto yy728;
                if (yych != 'r') goto yy296;
-yy724:
-               YYDEBUG(724, *YYCURSOR);
+yy728:
+               YYDEBUG(728, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy725;
+               if (yych == 'E') goto yy729;
                if (yych != 'e') goto yy296;
-yy725:
-               YYDEBUG(725, *YYCURSOR);
+yy729:
+               YYDEBUG(729, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '9') {
                                if (yych >= '0') goto yy295;
                        } else {
-                               if (yych <= '@') goto yy726;
+                               if (yych <= '@') goto yy730;
                                if (yych <= 'Z') goto yy295;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy727;
+                               if (yych <= '_') goto yy731;
                        } else {
                                if (yych <= 'z') goto yy295;
                                if (yych >= 0x7F) goto yy295;
                        }
                }
-yy726:
-               YYDEBUG(726, *YYCURSOR);
+yy730:
+               YYDEBUG(730, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 896 "Zend/zend_language_scanner.l"
+#line 902 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE;
 }
-#line 6560 "Zend/zend_language_scanner.c"
-yy727:
-               YYDEBUG(727, *YYCURSOR);
+#line 6596 "Zend/zend_language_scanner.c"
+yy731:
+               YYDEBUG(731, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy728;
+               if (yych == 'O') goto yy732;
                if (yych != 'o') goto yy296;
-yy728:
-               YYDEBUG(728, *YYCURSOR);
+yy732:
+               YYDEBUG(732, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy729;
+               if (yych == 'N') goto yy733;
                if (yych != 'n') goto yy296;
-yy729:
-               YYDEBUG(729, *YYCURSOR);
+yy733:
+               YYDEBUG(733, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy730;
+               if (yych == 'C') goto yy734;
                if (yych != 'c') goto yy296;
-yy730:
-               YYDEBUG(730, *YYCURSOR);
+yy734:
+               YYDEBUG(734, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy731;
+               if (yych == 'E') goto yy735;
                if (yych != 'e') goto yy296;
-yy731:
-               YYDEBUG(731, *YYCURSOR);
+yy735:
+               YYDEBUG(735, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(732, *YYCURSOR);
+               YYDEBUG(736, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 900 "Zend/zend_language_scanner.l"
+#line 906 "Zend/zend_language_scanner.l"
                {
        return T_REQUIRE_ONCE;
 }
-#line 6593 "Zend/zend_language_scanner.c"
-yy733:
-               YYDEBUG(733, *YYCURSOR);
+#line 6629 "Zend/zend_language_scanner.c"
+yy737:
+               YYDEBUG(737, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy734;
+               if (yych == 'R') goto yy738;
                if (yych != 'r') goto yy296;
-yy734:
-               YYDEBUG(734, *YYCURSOR);
+yy738:
+               YYDEBUG(738, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy735;
+               if (yych == 'N') goto yy739;
                if (yych != 'n') goto yy296;
-yy735:
-               YYDEBUG(735, *YYCURSOR);
+yy739:
+               YYDEBUG(739, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(736, *YYCURSOR);
+               YYDEBUG(740, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 685 "Zend/zend_language_scanner.l"
+#line 687 "Zend/zend_language_scanner.l"
                {
        return T_RETURN;
 }
-#line 6616 "Zend/zend_language_scanner.c"
-yy737:
-               YYDEBUG(737, *YYCURSOR);
+#line 6652 "Zend/zend_language_scanner.c"
+yy741:
+               YYDEBUG(741, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
                        if (yych <= 'R') goto yy296;
-                       if (yych <= 'S') goto yy759;
-                       goto yy758;
+                       if (yych <= 'S') goto yy763;
+                       goto yy762;
                } else {
                        if (yych <= 'r') goto yy296;
-                       if (yych <= 's') goto yy759;
-                       if (yych <= 't') goto yy758;
+                       if (yych <= 's') goto yy763;
+                       if (yych <= 't') goto yy762;
                        goto yy296;
                }
-yy738:
-               YYDEBUG(738, *YYCURSOR);
+yy742:
+               YYDEBUG(742, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'O') {
-                       if (yych == 'A') goto yy750;
+                       if (yych == 'A') goto yy754;
                        if (yych <= 'N') goto yy296;
-                       goto yy751;
+                       goto yy755;
                } else {
                        if (yych <= 'a') {
                                if (yych <= '`') goto yy296;
-                               goto yy750;
+                               goto yy754;
                        } else {
-                               if (yych == 'o') goto yy751;
+                               if (yych == 'o') goto yy755;
                                goto yy296;
                        }
                }
-yy739:
-               YYDEBUG(739, *YYCURSOR);
+yy743:
+               YYDEBUG(743, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy740;
+               if (yych == 'N') goto yy744;
                if (yych != 'n') goto yy296;
-yy740:
-               YYDEBUG(740, *YYCURSOR);
+yy744:
+               YYDEBUG(744, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
                        if (yych <= 'R') goto yy296;
-                       if (yych >= 'T') goto yy742;
+                       if (yych >= 'T') goto yy746;
                } else {
                        if (yych <= 'r') goto yy296;
-                       if (yych <= 's') goto yy741;
-                       if (yych <= 't') goto yy742;
+                       if (yych <= 's') goto yy745;
+                       if (yych <= 't') goto yy746;
                        goto yy296;
                }
-yy741:
-               YYDEBUG(741, *YYCURSOR);
+yy745:
+               YYDEBUG(745, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy748;
-               if (yych == 't') goto yy748;
+               if (yych == 'T') goto yy752;
+               if (yych == 't') goto yy752;
                goto yy296;
-yy742:
-               YYDEBUG(742, *YYCURSOR);
+yy746:
+               YYDEBUG(746, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy743;
+               if (yych == 'I') goto yy747;
                if (yych != 'i') goto yy296;
-yy743:
-               YYDEBUG(743, *YYCURSOR);
+yy747:
+               YYDEBUG(747, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy744;
+               if (yych == 'N') goto yy748;
                if (yych != 'n') goto yy296;
-yy744:
-               YYDEBUG(744, *YYCURSOR);
+yy748:
+               YYDEBUG(748, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy745;
+               if (yych == 'U') goto yy749;
                if (yych != 'u') goto yy296;
-yy745:
-               YYDEBUG(745, *YYCURSOR);
+yy749:
+               YYDEBUG(749, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy746;
+               if (yych == 'E') goto yy750;
                if (yych != 'e') goto yy296;
-yy746:
-               YYDEBUG(746, *YYCURSOR);
+yy750:
+               YYDEBUG(750, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(747, *YYCURSOR);
+               YYDEBUG(751, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 781 "Zend/zend_language_scanner.l"
+#line 783 "Zend/zend_language_scanner.l"
                {
        return T_CONTINUE;
 }
-#line 6701 "Zend/zend_language_scanner.c"
-yy748:
-               YYDEBUG(748, *YYCURSOR);
+#line 6737 "Zend/zend_language_scanner.c"
+yy752:
+               YYDEBUG(752, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(749, *YYCURSOR);
+               YYDEBUG(753, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 681 "Zend/zend_language_scanner.l"
+#line 683 "Zend/zend_language_scanner.l"
                {
        return T_CONST;
 }
-#line 6714 "Zend/zend_language_scanner.c"
-yy750:
-               YYDEBUG(750, *YYCURSOR);
+#line 6750 "Zend/zend_language_scanner.c"
+yy754:
+               YYDEBUG(754, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy755;
-               if (yych == 's') goto yy755;
+               if (yych == 'S') goto yy759;
+               if (yych == 's') goto yy759;
                goto yy296;
-yy751:
-               YYDEBUG(751, *YYCURSOR);
+yy755:
+               YYDEBUG(755, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy752;
+               if (yych == 'N') goto yy756;
                if (yych != 'n') goto yy296;
-yy752:
-               YYDEBUG(752, *YYCURSOR);
+yy756:
+               YYDEBUG(756, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy753;
+               if (yych == 'E') goto yy757;
                if (yych != 'e') goto yy296;
-yy753:
-               YYDEBUG(753, *YYCURSOR);
+yy757:
+               YYDEBUG(757, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(754, *YYCURSOR);
+               YYDEBUG(758, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 844 "Zend/zend_language_scanner.l"
+#line 850 "Zend/zend_language_scanner.l"
                {
        return T_CLONE;
 }
-#line 6743 "Zend/zend_language_scanner.c"
-yy755:
-               YYDEBUG(755, *YYCURSOR);
+#line 6779 "Zend/zend_language_scanner.c"
+yy759:
+               YYDEBUG(759, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy756;
+               if (yych == 'S') goto yy760;
                if (yych != 's') goto yy296;
-yy756:
-               YYDEBUG(756, *YYCURSOR);
+yy760:
+               YYDEBUG(760, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(757, *YYCURSOR);
+               YYDEBUG(761, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 793 "Zend/zend_language_scanner.l"
+#line 799 "Zend/zend_language_scanner.l"
                {
        return T_CLASS;
 }
-#line 6761 "Zend/zend_language_scanner.c"
-yy758:
-               YYDEBUG(758, *YYCURSOR);
+#line 6797 "Zend/zend_language_scanner.c"
+yy762:
+               YYDEBUG(762, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy762;
-               if (yych == 'c') goto yy762;
+               if (yych == 'C') goto yy766;
+               if (yych == 'c') goto yy766;
                goto yy296;
-yy759:
-               YYDEBUG(759, *YYCURSOR);
+yy763:
+               YYDEBUG(763, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy760;
+               if (yych == 'E') goto yy764;
                if (yych != 'e') goto yy296;
-yy760:
-               YYDEBUG(760, *YYCURSOR);
+yy764:
+               YYDEBUG(764, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(761, *YYCURSOR);
+               YYDEBUG(765, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 769 "Zend/zend_language_scanner.l"
+#line 771 "Zend/zend_language_scanner.l"
                {
        return T_CASE;
 }
-#line 6785 "Zend/zend_language_scanner.c"
-yy762:
-               YYDEBUG(762, *YYCURSOR);
+#line 6821 "Zend/zend_language_scanner.c"
+yy766:
+               YYDEBUG(766, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy763;
+               if (yych == 'H') goto yy767;
                if (yych != 'h') goto yy296;
-yy763:
-               YYDEBUG(763, *YYCURSOR);
+yy767:
+               YYDEBUG(767, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(764, *YYCURSOR);
+               YYDEBUG(768, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 693 "Zend/zend_language_scanner.l"
+#line 695 "Zend/zend_language_scanner.l"
                {
        return T_CATCH;
 }
-#line 6803 "Zend/zend_language_scanner.c"
-yy765:
-               YYDEBUG(765, *YYCURSOR);
+#line 6839 "Zend/zend_language_scanner.c"
+yy769:
+               YYDEBUG(769, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy782;
-               if (yych == 'n') goto yy782;
+               if (yych == 'N') goto yy786;
+               if (yych == 'n') goto yy786;
                goto yy296;
-yy766:
-               YYDEBUG(766, *YYCURSOR);
+yy770:
+               YYDEBUG(770, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy775;
-               if (yych == 'r') goto yy775;
+               if (yych == 'R') goto yy779;
+               if (yych == 'r') goto yy779;
                goto yy296;
-yy767:
-               YYDEBUG(767, *YYCURSOR);
+yy771:
+               YYDEBUG(771, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy768;
+               if (yych == 'N') goto yy772;
                if (yych != 'n') goto yy296;
-yy768:
-               YYDEBUG(768, *YYCURSOR);
+yy772:
+               YYDEBUG(772, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy769;
+               if (yych == 'C') goto yy773;
                if (yych != 'c') goto yy296;
-yy769:
-               YYDEBUG(769, *YYCURSOR);
+yy773:
+               YYDEBUG(773, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy770;
+               if (yych == 'T') goto yy774;
                if (yych != 't') goto yy296;
-yy770:
-               YYDEBUG(770, *YYCURSOR);
+yy774:
+               YYDEBUG(774, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy771;
+               if (yych == 'I') goto yy775;
                if (yych != 'i') goto yy296;
-yy771:
-               YYDEBUG(771, *YYCURSOR);
+yy775:
+               YYDEBUG(775, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy772;
+               if (yych == 'O') goto yy776;
                if (yych != 'o') goto yy296;
-yy772:
-               YYDEBUG(772, *YYCURSOR);
+yy776:
+               YYDEBUG(776, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy773;
+               if (yych == 'N') goto yy777;
                if (yych != 'n') goto yy296;
-yy773:
-               YYDEBUG(773, *YYCURSOR);
+yy777:
+               YYDEBUG(777, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(774, *YYCURSOR);
+               YYDEBUG(778, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 677 "Zend/zend_language_scanner.l"
+#line 679 "Zend/zend_language_scanner.l"
                {
        return T_FUNCTION;
 }
-#line 6858 "Zend/zend_language_scanner.c"
-yy775:
-               YYDEBUG(775, *YYCURSOR);
+#line 6894 "Zend/zend_language_scanner.c"
+yy779:
+               YYDEBUG(779, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy776;
+                               if (yych <= '/') goto yy780;
                                if (yych <= '9') goto yy295;
                        } else {
-                               if (yych == 'E') goto yy777;
+                               if (yych == 'E') goto yy781;
                                if (yych <= 'Z') goto yy295;
                        }
                } else {
                        if (yych <= 'd') {
                                if (yych != '`') goto yy295;
                        } else {
-                               if (yych <= 'e') goto yy777;
+                               if (yych <= 'e') goto yy781;
                                if (yych <= 'z') goto yy295;
                                if (yych >= 0x7F) goto yy295;
                        }
                }
-yy776:
-               YYDEBUG(776, *YYCURSOR);
+yy780:
+               YYDEBUG(780, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 729 "Zend/zend_language_scanner.l"
+#line 731 "Zend/zend_language_scanner.l"
                {
        return T_FOR;
 }
-#line 6886 "Zend/zend_language_scanner.c"
-yy777:
-               YYDEBUG(777, *YYCURSOR);
+#line 6922 "Zend/zend_language_scanner.c"
+yy781:
+               YYDEBUG(781, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy778;
+               if (yych == 'A') goto yy782;
                if (yych != 'a') goto yy296;
-yy778:
-               YYDEBUG(778, *YYCURSOR);
+yy782:
+               YYDEBUG(782, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy779;
+               if (yych == 'C') goto yy783;
                if (yych != 'c') goto yy296;
-yy779:
-               YYDEBUG(779, *YYCURSOR);
+yy783:
+               YYDEBUG(783, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy780;
+               if (yych == 'H') goto yy784;
                if (yych != 'h') goto yy296;
-yy780:
-               YYDEBUG(780, *YYCURSOR);
+yy784:
+               YYDEBUG(784, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(781, *YYCURSOR);
+               YYDEBUG(785, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 737 "Zend/zend_language_scanner.l"
+#line 739 "Zend/zend_language_scanner.l"
                {
        return T_FOREACH;
 }
-#line 6914 "Zend/zend_language_scanner.c"
-yy782:
-               YYDEBUG(782, *YYCURSOR);
+#line 6950 "Zend/zend_language_scanner.c"
+yy786:
+               YYDEBUG(786, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy783;
+               if (yych == 'A') goto yy787;
                if (yych != 'a') goto yy296;
-yy783:
-               YYDEBUG(783, *YYCURSOR);
+yy787:
+               YYDEBUG(787, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy784;
+               if (yych == 'L') goto yy788;
                if (yych != 'l') goto yy296;
-yy784:
-               YYDEBUG(784, *YYCURSOR);
+yy788:
+               YYDEBUG(788, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(785, *YYCURSOR);
+               YYDEBUG(789, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 936 "Zend/zend_language_scanner.l"
+#line 942 "Zend/zend_language_scanner.l"
                {
        return T_FINAL;
 }
-#line 6937 "Zend/zend_language_scanner.c"
-yy786:
-               YYDEBUG(786, *YYCURSOR);
+#line 6973 "Zend/zend_language_scanner.c"
+yy790:
+               YYDEBUG(790, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'F') {
-                       if (yych == 'C') goto yy792;
+                       if (yych == 'C') goto yy796;
                        if (yych <= 'E') goto yy296;
-                       goto yy793;
+                       goto yy797;
                } else {
                        if (yych <= 'c') {
                                if (yych <= 'b') goto yy296;
-                               goto yy792;
+                               goto yy796;
                        } else {
-                               if (yych == 'f') goto yy793;
+                               if (yych == 'f') goto yy797;
                                goto yy296;
                        }
                }
-yy787:
-               YYDEBUG(787, *YYCURSOR);
+yy791:
+               YYDEBUG(791, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy790;
-               if (yych == 'e') goto yy790;
+               if (yych == 'E') goto yy794;
+               if (yych == 'e') goto yy794;
                goto yy296;
-yy788:
-               YYDEBUG(788, *YYCURSOR);
+yy792:
+               YYDEBUG(792, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(789, *YYCURSOR);
+               YYDEBUG(793, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 725 "Zend/zend_language_scanner.l"
+#line 727 "Zend/zend_language_scanner.l"
                {
        return T_DO;
 }
-#line 6972 "Zend/zend_language_scanner.c"
-yy790:
-               YYDEBUG(790, *YYCURSOR);
+#line 7008 "Zend/zend_language_scanner.c"
+yy794:
+               YYDEBUG(794, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(791, *YYCURSOR);
+               YYDEBUG(795, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 673 "Zend/zend_language_scanner.l"
+#line 675 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 6985 "Zend/zend_language_scanner.c"
-yy792:
-               YYDEBUG(792, *YYCURSOR);
+#line 7021 "Zend/zend_language_scanner.c"
+yy796:
+               YYDEBUG(796, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy799;
-               if (yych == 'l') goto yy799;
+               if (yych == 'L') goto yy803;
+               if (yych == 'l') goto yy803;
                goto yy296;
-yy793:
-               YYDEBUG(793, *YYCURSOR);
+yy797:
+               YYDEBUG(797, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy794;
+               if (yych == 'A') goto yy798;
                if (yych != 'a') goto yy296;
-yy794:
-               YYDEBUG(794, *YYCURSOR);
+yy798:
+               YYDEBUG(798, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'U') goto yy795;
+               if (yych == 'U') goto yy799;
                if (yych != 'u') goto yy296;
-yy795:
-               YYDEBUG(795, *YYCURSOR);
+yy799:
+               YYDEBUG(799, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy796;
+               if (yych == 'L') goto yy800;
                if (yych != 'l') goto yy296;
-yy796:
-               YYDEBUG(796, *YYCURSOR);
+yy800:
+               YYDEBUG(800, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy797;
+               if (yych == 'T') goto yy801;
                if (yych != 't') goto yy296;
-yy797:
-               YYDEBUG(797, *YYCURSOR);
+yy801:
+               YYDEBUG(801, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(798, *YYCURSOR);
+               YYDEBUG(802, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 773 "Zend/zend_language_scanner.l"
+#line 775 "Zend/zend_language_scanner.l"
                {
        return T_DEFAULT;
 }
-#line 7024 "Zend/zend_language_scanner.c"
-yy799:
-               YYDEBUG(799, *YYCURSOR);
+#line 7060 "Zend/zend_language_scanner.c"
+yy803:
+               YYDEBUG(803, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy800;
+               if (yych == 'A') goto yy804;
                if (yych != 'a') goto yy296;
-yy800:
-               YYDEBUG(800, *YYCURSOR);
+yy804:
+               YYDEBUG(804, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy801;
+               if (yych == 'R') goto yy805;
                if (yych != 'r') goto yy296;
-yy801:
-               YYDEBUG(801, *YYCURSOR);
+yy805:
+               YYDEBUG(805, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy802;
+               if (yych == 'E') goto yy806;
                if (yych != 'e') goto yy296;
-yy802:
-               YYDEBUG(802, *YYCURSOR);
+yy806:
+               YYDEBUG(806, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(803, *YYCURSOR);
+               YYDEBUG(807, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 745 "Zend/zend_language_scanner.l"
+#line 747 "Zend/zend_language_scanner.l"
                {
        return T_DECLARE;
 }
-#line 7052 "Zend/zend_language_scanner.c"
-yy804:
-               YYDEBUG(804, *YYCURSOR);
+#line 7088 "Zend/zend_language_scanner.c"
+yy808:
+               YYDEBUG(808, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy866;
-               if (yych == 'h') goto yy866;
+               if (yych == 'H') goto yy870;
+               if (yych == 'h') goto yy870;
                goto yy296;
-yy805:
-               YYDEBUG(805, *YYCURSOR);
+yy809:
+               YYDEBUG(809, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy860;
-               if (yych == 's') goto yy860;
+               if (yych == 'S') goto yy864;
+               if (yych == 's') goto yy864;
                goto yy296;
-yy806:
-               YYDEBUG(806, *YYCURSOR);
+yy810:
+               YYDEBUG(810, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'P') goto yy856;
-               if (yych == 'p') goto yy856;
+               if (yych == 'P') goto yy860;
+               if (yych == 'p') goto yy860;
                goto yy296;
-yy807:
-               YYDEBUG(807, *YYCURSOR);
+yy811:
+               YYDEBUG(811, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy822;
-               if (yych == 'd') goto yy822;
+               if (yych == 'D') goto yy826;
+               if (yych == 'd') goto yy826;
                goto yy296;
-yy808:
-               YYDEBUG(808, *YYCURSOR);
+yy812:
+               YYDEBUG(812, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy819;
-               if (yych == 'a') goto yy819;
+               if (yych == 'A') goto yy823;
+               if (yych == 'a') goto yy823;
                goto yy296;
-yy809:
-               YYDEBUG(809, *YYCURSOR);
+yy813:
+               YYDEBUG(813, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yych <= 'T') {
-                       if (yych == 'I') goto yy810;
+                       if (yych == 'I') goto yy814;
                        if (yych <= 'S') goto yy296;
-                       goto yy811;
+                       goto yy815;
                } else {
                        if (yych <= 'i') {
                                if (yych <= 'h') goto yy296;
                        } else {
-                               if (yych == 't') goto yy811;
+                               if (yych == 't') goto yy815;
                                goto yy296;
                        }
                }
-yy810:
-               YYDEBUG(810, *YYCURSOR);
+yy814:
+               YYDEBUG(814, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy817;
-               if (yych == 't') goto yy817;
+               if (yych == 'T') goto yy821;
+               if (yych == 't') goto yy821;
                goto yy296;
-yy811:
-               YYDEBUG(811, *YYCURSOR);
+yy815:
+               YYDEBUG(815, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy812;
+               if (yych == 'E') goto yy816;
                if (yych != 'e') goto yy296;
-yy812:
-               YYDEBUG(812, *YYCURSOR);
+yy816:
+               YYDEBUG(816, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'N') goto yy813;
+               if (yych == 'N') goto yy817;
                if (yych != 'n') goto yy296;
-yy813:
-               YYDEBUG(813, *YYCURSOR);
+yy817:
+               YYDEBUG(817, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'D') goto yy814;
+               if (yych == 'D') goto yy818;
                if (yych != 'd') goto yy296;
-yy814:
-               YYDEBUG(814, *YYCURSOR);
+yy818:
+               YYDEBUG(818, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'S') goto yy815;
+               if (yych == 'S') goto yy819;
                if (yych != 's') goto yy296;
-yy815:
-               YYDEBUG(815, *YYCURSOR);
+yy819:
+               YYDEBUG(819, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(816, *YYCURSOR);
+               YYDEBUG(820, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 801 "Zend/zend_language_scanner.l"
+#line 807 "Zend/zend_language_scanner.l"
                {
        return T_EXTENDS;
 }
-#line 7136 "Zend/zend_language_scanner.c"
-yy817:
-               YYDEBUG(817, *YYCURSOR);
+#line 7172 "Zend/zend_language_scanner.c"
+yy821:
+               YYDEBUG(821, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(818, *YYCURSOR);
+               YYDEBUG(822, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 669 "Zend/zend_language_scanner.l"
+#line 671 "Zend/zend_language_scanner.l"
                {
        return T_EXIT;
 }
-#line 7149 "Zend/zend_language_scanner.c"
-yy819:
-               YYDEBUG(819, *YYCURSOR);
+#line 7185 "Zend/zend_language_scanner.c"
+yy823:
+               YYDEBUG(823, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy820;
+               if (yych == 'L') goto yy824;
                if (yych != 'l') goto yy296;
-yy820:
-               YYDEBUG(820, *YYCURSOR);
+yy824:
+               YYDEBUG(824, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(821, *YYCURSOR);
+               YYDEBUG(825, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 884 "Zend/zend_language_scanner.l"
+#line 890 "Zend/zend_language_scanner.l"
                {
        return T_EVAL;
 }
-#line 7167 "Zend/zend_language_scanner.c"
-yy822:
-               YYDEBUG(822, *YYCURSOR);
+#line 7203 "Zend/zend_language_scanner.c"
+yy826:
+               YYDEBUG(826, *YYCURSOR);
                yych = *++YYCURSOR;
                YYDEBUG(-1, yych);
                switch (yych) {
                case 'D':
-               case 'd':       goto yy823;
+               case 'd':       goto yy827;
                case 'F':
-               case 'f':       goto yy824;
+               case 'f':       goto yy828;
                case 'I':
-               case 'i':       goto yy825;
+               case 'i':       goto yy829;
                case 'S':
-               case 's':       goto yy826;
+               case 's':       goto yy830;
                case 'W':
-               case 'w':       goto yy827;
+               case 'w':       goto yy831;
                default:        goto yy296;
                }
-yy823:
-               YYDEBUG(823, *YYCURSOR);
+yy827:
+               YYDEBUG(827, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy849;
-               if (yych == 'e') goto yy849;
+               if (yych == 'E') goto yy853;
+               if (yych == 'e') goto yy853;
                goto yy296;
-yy824:
-               YYDEBUG(824, *YYCURSOR);
+yy828:
+               YYDEBUG(828, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy841;
-               if (yych == 'o') goto yy841;
+               if (yych == 'O') goto yy845;
+               if (yych == 'o') goto yy845;
                goto yy296;
-yy825:
-               YYDEBUG(825, *YYCURSOR);
+yy829:
+               YYDEBUG(829, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy839;
-               if (yych == 'f') goto yy839;
+               if (yych == 'F') goto yy843;
+               if (yych == 'f') goto yy843;
                goto yy296;
-yy826:
-               YYDEBUG(826, *YYCURSOR);
+yy830:
+               YYDEBUG(830, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'W') goto yy833;
-               if (yych == 'w') goto yy833;
+               if (yych == 'W') goto yy837;
+               if (yych == 'w') goto yy837;
                goto yy296;
-yy827:
-               YYDEBUG(827, *YYCURSOR);
+yy831:
+               YYDEBUG(831, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy828;
+               if (yych == 'H') goto yy832;
                if (yych != 'h') goto yy296;
-yy828:
-               YYDEBUG(828, *YYCURSOR);
+yy832:
+               YYDEBUG(832, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy829;
+               if (yych == 'I') goto yy833;
                if (yych != 'i') goto yy296;
-yy829:
-               YYDEBUG(829, *YYCURSOR);
+yy833:
+               YYDEBUG(833, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy830;
+               if (yych == 'L') goto yy834;
                if (yych != 'l') goto yy296;
-yy830:
-               YYDEBUG(830, *YYCURSOR);
+yy834:
+               YYDEBUG(834, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy831;
+               if (yych == 'E') goto yy835;
                if (yych != 'e') goto yy296;
-yy831:
-               YYDEBUG(831, *YYCURSOR);
+yy835:
+               YYDEBUG(835, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(832, *YYCURSOR);
+               YYDEBUG(836, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 721 "Zend/zend_language_scanner.l"
+#line 723 "Zend/zend_language_scanner.l"
                {
        return T_ENDWHILE;
 }
-#line 7241 "Zend/zend_language_scanner.c"
-yy833:
-               YYDEBUG(833, *YYCURSOR);
+#line 7277 "Zend/zend_language_scanner.c"
+yy837:
+               YYDEBUG(837, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'I') goto yy834;
+               if (yych == 'I') goto yy838;
                if (yych != 'i') goto yy296;
-yy834:
-               YYDEBUG(834, *YYCURSOR);
+yy838:
+               YYDEBUG(838, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy835;
+               if (yych == 'T') goto yy839;
                if (yych != 't') goto yy296;
-yy835:
-               YYDEBUG(835, *YYCURSOR);
+yy839:
+               YYDEBUG(839, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy836;
+               if (yych == 'C') goto yy840;
                if (yych != 'c') goto yy296;
-yy836:
-               YYDEBUG(836, *YYCURSOR);
+yy840:
+               YYDEBUG(840, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy837;
+               if (yych == 'H') goto yy841;
                if (yych != 'h') goto yy296;
-yy837:
-               YYDEBUG(837, *YYCURSOR);
+yy841:
+               YYDEBUG(841, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(838, *YYCURSOR);
+               YYDEBUG(842, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 765 "Zend/zend_language_scanner.l"
+#line 767 "Zend/zend_language_scanner.l"
                {
        return T_ENDSWITCH;
 }
-#line 7274 "Zend/zend_language_scanner.c"
-yy839:
-               YYDEBUG(839, *YYCURSOR);
+#line 7310 "Zend/zend_language_scanner.c"
+yy843:
+               YYDEBUG(843, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(840, *YYCURSOR);
+               YYDEBUG(844, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 709 "Zend/zend_language_scanner.l"
+#line 711 "Zend/zend_language_scanner.l"
                {
        return T_ENDIF;
 }
-#line 7287 "Zend/zend_language_scanner.c"
-yy841:
-               YYDEBUG(841, *YYCURSOR);
+#line 7323 "Zend/zend_language_scanner.c"
+yy845:
+               YYDEBUG(845, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy842;
+               if (yych == 'R') goto yy846;
                if (yych != 'r') goto yy296;
-yy842:
-               YYDEBUG(842, *YYCURSOR);
+yy846:
+               YYDEBUG(846, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy843;
+                               if (yych <= '/') goto yy847;
                                if (yych <= '9') goto yy295;
                        } else {
-                               if (yych == 'E') goto yy844;
+                               if (yych == 'E') goto yy848;
                                if (yych <= 'Z') goto yy295;
                        }
                } else {
                        if (yych <= 'd') {
                                if (yych != '`') goto yy295;
                        } else {
-                               if (yych <= 'e') goto yy844;
+                               if (yych <= 'e') goto yy848;
                                if (yych <= 'z') goto yy295;
                                if (yych >= 0x7F) goto yy295;
                        }
                }
-yy843:
-               YYDEBUG(843, *YYCURSOR);
+yy847:
+               YYDEBUG(847, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 733 "Zend/zend_language_scanner.l"
+#line 735 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOR;
 }
-#line 7320 "Zend/zend_language_scanner.c"
-yy844:
-               YYDEBUG(844, *YYCURSOR);
+#line 7356 "Zend/zend_language_scanner.c"
+yy848:
+               YYDEBUG(848, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy845;
+               if (yych == 'A') goto yy849;
                if (yych != 'a') goto yy296;
-yy845:
-               YYDEBUG(845, *YYCURSOR);
+yy849:
+               YYDEBUG(849, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy846;
+               if (yych == 'C') goto yy850;
                if (yych != 'c') goto yy296;
-yy846:
-               YYDEBUG(846, *YYCURSOR);
+yy850:
+               YYDEBUG(850, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'H') goto yy847;
+               if (yych == 'H') goto yy851;
                if (yych != 'h') goto yy296;
-yy847:
-               YYDEBUG(847, *YYCURSOR);
+yy851:
+               YYDEBUG(851, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(848, *YYCURSOR);
+               YYDEBUG(852, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 741 "Zend/zend_language_scanner.l"
+#line 743 "Zend/zend_language_scanner.l"
                {
        return T_ENDFOREACH;
 }
-#line 7348 "Zend/zend_language_scanner.c"
-yy849:
-               YYDEBUG(849, *YYCURSOR);
+#line 7384 "Zend/zend_language_scanner.c"
+yy853:
+               YYDEBUG(853, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'C') goto yy850;
+               if (yych == 'C') goto yy854;
                if (yych != 'c') goto yy296;
-yy850:
-               YYDEBUG(850, *YYCURSOR);
+yy854:
+               YYDEBUG(854, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'L') goto yy851;
+               if (yych == 'L') goto yy855;
                if (yych != 'l') goto yy296;
-yy851:
-               YYDEBUG(851, *YYCURSOR);
+yy855:
+               YYDEBUG(855, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'A') goto yy852;
+               if (yych == 'A') goto yy856;
                if (yych != 'a') goto yy296;
-yy852:
-               YYDEBUG(852, *YYCURSOR);
+yy856:
+               YYDEBUG(856, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'R') goto yy853;
+               if (yych == 'R') goto yy857;
                if (yych != 'r') goto yy296;
-yy853:
-               YYDEBUG(853, *YYCURSOR);
+yy857:
+               YYDEBUG(857, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy854;
+               if (yych == 'E') goto yy858;
                if (yych != 'e') goto yy296;
-yy854:
-               YYDEBUG(854, *YYCURSOR);
+yy858:
+               YYDEBUG(858, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(855, *YYCURSOR);
+               YYDEBUG(859, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 749 "Zend/zend_language_scanner.l"
+#line 751 "Zend/zend_language_scanner.l"
                {
        return T_ENDDECLARE;
 }
-#line 7386 "Zend/zend_language_scanner.c"
-yy856:
-               YYDEBUG(856, *YYCURSOR);
+#line 7422 "Zend/zend_language_scanner.c"
+yy860:
+               YYDEBUG(860, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'T') goto yy857;
+               if (yych == 'T') goto yy861;
                if (yych != 't') goto yy296;
-yy857:
-               YYDEBUG(857, *YYCURSOR);
+yy861:
+               YYDEBUG(861, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'Y') goto yy858;
+               if (yych == 'Y') goto yy862;
                if (yych != 'y') goto yy296;
-yy858:
-               YYDEBUG(858, *YYCURSOR);
+yy862:
+               YYDEBUG(862, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(859, *YYCURSOR);
+               YYDEBUG(863, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 920 "Zend/zend_language_scanner.l"
+#line 926 "Zend/zend_language_scanner.l"
                {
        return T_EMPTY;
 }
-#line 7409 "Zend/zend_language_scanner.c"
-yy860:
-               YYDEBUG(860, *YYCURSOR);
+#line 7445 "Zend/zend_language_scanner.c"
+yy864:
+               YYDEBUG(864, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'E') goto yy861;
+               if (yych == 'E') goto yy865;
                if (yych != 'e') goto yy296;
-yy861:
-               YYDEBUG(861, *YYCURSOR);
+yy865:
+               YYDEBUG(865, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '^') {
                        if (yych <= '@') {
-                               if (yych <= '/') goto yy862;
+                               if (yych <= '/') goto yy866;
                                if (yych <= '9') goto yy295;
                        } else {
-                               if (yych == 'I') goto yy863;
+                               if (yych == 'I') goto yy867;
                                if (yych <= 'Z') goto yy295;
                        }
                } else {
                        if (yych <= 'h') {
                                if (yych != '`') goto yy295;
                        } else {
-                               if (yych <= 'i') goto yy863;
+                               if (yych <= 'i') goto yy867;
                                if (yych <= 'z') goto yy295;
                                if (yych >= 0x7F) goto yy295;
                        }
                }
-yy862:
-               YYDEBUG(862, *YYCURSOR);
+yy866:
+               YYDEBUG(866, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 713 "Zend/zend_language_scanner.l"
+#line 715 "Zend/zend_language_scanner.l"
                {
        return T_ELSE;
 }
-#line 7442 "Zend/zend_language_scanner.c"
-yy863:
-               YYDEBUG(863, *YYCURSOR);
+#line 7478 "Zend/zend_language_scanner.c"
+yy867:
+               YYDEBUG(867, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'F') goto yy864;
+               if (yych == 'F') goto yy868;
                if (yych != 'f') goto yy296;
-yy864:
-               YYDEBUG(864, *YYCURSOR);
+yy868:
+               YYDEBUG(868, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(865, *YYCURSOR);
+               YYDEBUG(869, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 705 "Zend/zend_language_scanner.l"
+#line 707 "Zend/zend_language_scanner.l"
                {
        return T_ELSEIF;
 }
-#line 7460 "Zend/zend_language_scanner.c"
-yy866:
-               YYDEBUG(866, *YYCURSOR);
+#line 7496 "Zend/zend_language_scanner.c"
+yy870:
+               YYDEBUG(870, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == 'O') goto yy867;
+               if (yych == 'O') goto yy871;
                if (yych != 'o') goto yy296;
-yy867:
-               YYDEBUG(867, *YYCURSOR);
+yy871:
+               YYDEBUG(871, *YYCURSOR);
                ++YYCURSOR;
                if (yybm[0+(yych = *YYCURSOR)] & 16) {
                        goto yy295;
                }
-               YYDEBUG(868, *YYCURSOR);
+               YYDEBUG(872, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 785 "Zend/zend_language_scanner.l"
+#line 791 "Zend/zend_language_scanner.l"
                {
        return T_ECHO;
 }
-#line 7478 "Zend/zend_language_scanner.c"
+#line 7514 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_PROPERTY:
@@ -7513,111 +7549,111 @@ yyc_ST_LOOKING_FOR_PROPERTY:
                         64,  64,  64,  64,  64,  64,  64,  64, 
                         64,  64,  64,  64,  64,  64,  64,  64, 
                };
-               YYDEBUG(869, *YYCURSOR);
+               YYDEBUG(873, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
                if (yych <= '-') {
                        if (yych <= '\r') {
-                               if (yych <= 0x08) goto yy877;
-                               if (yych <= '\n') goto yy873;
-                               if (yych <= '\f') goto yy877;
-                               goto yy873;
+                               if (yych <= 0x08) goto yy881;
+                               if (yych <= '\n') goto yy877;
+                               if (yych <= '\f') goto yy881;
+                               goto yy877;
                        } else {
-                               if (yych == ' ') goto yy873;
-                               if (yych <= ',') goto yy877;
+                               if (yych == ' ') goto yy877;
+                               if (yych <= ',') goto yy881;
                        }
                } else {
                        if (yych <= '_') {
-                               if (yych <= '@') goto yy877;
-                               if (yych <= 'Z') goto yy875;
-                               if (yych <= '^') goto yy877;
-                               goto yy875;
+                               if (yych <= '@') goto yy881;
+                               if (yych <= 'Z') goto yy879;
+                               if (yych <= '^') goto yy881;
+                               goto yy879;
                        } else {
-                               if (yych <= '`') goto yy877;
-                               if (yych <= 'z') goto yy875;
-                               if (yych <= '~') goto yy877;
-                               goto yy875;
+                               if (yych <= '`') goto yy881;
+                               if (yych <= 'z') goto yy879;
+                               if (yych <= '~') goto yy881;
+                               goto yy879;
                        }
                }
-               YYDEBUG(871, *YYCURSOR);
+               YYDEBUG(875, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '>') goto yy882;
-yy872:
-               YYDEBUG(872, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '>') goto yy886;
+yy876:
+               YYDEBUG(876, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 830 "Zend/zend_language_scanner.l"
+#line 836 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        goto restart;
 }
-#line 7555 "Zend/zend_language_scanner.c"
-yy873:
-               YYDEBUG(873, *YYCURSOR);
+#line 7591 "Zend/zend_language_scanner.c"
+yy877:
+               YYDEBUG(877, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy881;
-yy874:
-               YYDEBUG(874, *YYCURSOR);
+               goto yy885;
+yy878:
+               YYDEBUG(878, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 818 "Zend/zend_language_scanner.l"
+#line 824 "Zend/zend_language_scanner.l"
                {
        /* do nothing */
        goto restart;
 }
-#line 7569 "Zend/zend_language_scanner.c"
-yy875:
-               YYDEBUG(875, *YYCURSOR);
+#line 7605 "Zend/zend_language_scanner.c"
+yy879:
+               YYDEBUG(879, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy879;
-yy876:
-               YYDEBUG(876, *YYCURSOR);
+               goto yy883;
+yy880:
+               YYDEBUG(880, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 823 "Zend/zend_language_scanner.l"
+#line 829 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
 }
-#line 7585 "Zend/zend_language_scanner.c"
-yy877:
-               YYDEBUG(877, *YYCURSOR);
+#line 7621 "Zend/zend_language_scanner.c"
+yy881:
+               YYDEBUG(881, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy872;
-yy878:
-               YYDEBUG(878, *YYCURSOR);
+               goto yy876;
+yy882:
+               YYDEBUG(882, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy879:
-               YYDEBUG(879, *YYCURSOR);
+yy883:
+               YYDEBUG(883, *YYCURSOR);
                if (yybm[0+yych] & 64) {
-                       goto yy878;
+                       goto yy882;
                }
-               goto yy876;
-yy880:
-               YYDEBUG(880, *YYCURSOR);
+               goto yy880;
+yy884:
+               YYDEBUG(884, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy881:
-               YYDEBUG(881, *YYCURSOR);
+yy885:
+               YYDEBUG(885, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy880;
+                       goto yy884;
                }
-               goto yy874;
-yy882:
-               YYDEBUG(882, *YYCURSOR);
+               goto yy878;
+yy886:
+               YYDEBUG(886, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(883, *YYCURSOR);
+               YYDEBUG(887, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 814 "Zend/zend_language_scanner.l"
+#line 820 "Zend/zend_language_scanner.l"
                {
        return T_OBJECT_OPERATOR;
 }
-#line 7621 "Zend/zend_language_scanner.c"
+#line 7657 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_LOOKING_FOR_VARNAME:
@@ -7656,27 +7692,27 @@ yyc_ST_LOOKING_FOR_VARNAME:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(884, *YYCURSOR);
+               YYDEBUG(888, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy888;
-                       if (yych <= 'Z') goto yy886;
-                       if (yych <= '^') goto yy888;
+                       if (yych <= '@') goto yy892;
+                       if (yych <= 'Z') goto yy890;
+                       if (yych <= '^') goto yy892;
                } else {
-                       if (yych <= '`') goto yy888;
-                       if (yych <= 'z') goto yy886;
-                       if (yych <= '~') goto yy888;
+                       if (yych <= '`') goto yy892;
+                       if (yych <= 'z') goto yy890;
+                       if (yych <= '~') goto yy892;
                }
-yy886:
-               YYDEBUG(886, *YYCURSOR);
+yy890:
+               YYDEBUG(890, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy891;
-yy887:
-               YYDEBUG(887, *YYCURSOR);
+               goto yy895;
+yy891:
+               YYDEBUG(891, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1099 "Zend/zend_language_scanner.l"
+#line 1105 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
@@ -7684,31 +7720,31 @@ yy887:
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        return T_STRING_VARNAME;
 }
-#line 7688 "Zend/zend_language_scanner.c"
-yy888:
-               YYDEBUG(888, *YYCURSOR);
+#line 7724 "Zend/zend_language_scanner.c"
+yy892:
+               YYDEBUG(892, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(889, *YYCURSOR);
+               YYDEBUG(893, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1108 "Zend/zend_language_scanner.l"
+#line 1114 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        yy_pop_state(TSRMLS_C);
        yy_push_state(ST_IN_SCRIPTING TSRMLS_CC);
        goto restart;
 }
-#line 7701 "Zend/zend_language_scanner.c"
-yy890:
-               YYDEBUG(890, *YYCURSOR);
+#line 7737 "Zend/zend_language_scanner.c"
+yy894:
+               YYDEBUG(894, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy891:
-               YYDEBUG(891, *YYCURSOR);
+yy895:
+               YYDEBUG(895, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy890;
+                       goto yy894;
                }
-               goto yy887;
+               goto yy891;
        }
 /* *********************************** */
 yyc_ST_NOWDOC:
@@ -7747,38 +7783,15 @@ yyc_ST_NOWDOC:
                        192, 192, 192, 192, 192, 192, 192, 192, 
                        192, 192, 192, 192, 192, 192, 192, 192, 
                };
-               YYDEBUG(892, *YYCURSOR);
-               YYFILL(1);
-               yych = *YYCURSOR;
-               if (yybm[0+yych] & 32) {
-                       goto yy898;
-               }
-               if (yych <= '\f') goto yy894;
-               if (yych <= '\r') goto yy896;
-               goto yy900;
-yy894:
-               YYDEBUG(894, *YYCURSOR);
-               ++YYCURSOR;
-               YYFILL(1);
-               yych = *YYCURSOR;
-               YYDEBUG(895, *YYCURSOR);
-               if (yybm[0+yych] & 32) {
-                       goto yy898;
-               }
-               if (yych <= '\f') goto yy894;
-               if (yych >= 0x0E) goto yy924;
-yy896:
                YYDEBUG(896, *YYCURSOR);
-               ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(897, *YYCURSOR);
                if (yybm[0+yych] & 32) {
-                       goto yy898;
+                       goto yy902;
                }
-               if (yych <= '\f') goto yy894;
-               if (yych <= '\r') goto yy896;
-               goto yy924;
+               if (yych <= '\f') goto yy898;
+               if (yych <= '\r') goto yy900;
+               goto yy904;
 yy898:
                YYDEBUG(898, *YYCURSOR);
                ++YYCURSOR;
@@ -7786,114 +7799,79 @@ yy898:
                yych = *YYCURSOR;
                YYDEBUG(899, *YYCURSOR);
                if (yybm[0+yych] & 32) {
-                       goto yy898;
+                       goto yy902;
                }
-               if (yych <= '\f') goto yy894;
-               if (yych <= '\r') goto yy896;
-               goto yy922;
+               if (yych <= '\f') goto yy898;
+               if (yych >= 0x0E) goto yy928;
 yy900:
                YYDEBUG(900, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(2);
+               YYFILL(1);
                yych = *YYCURSOR;
                YYDEBUG(901, *YYCURSOR);
-               if (yybm[0+yych] & 64) {
-                       goto yy900;
-               }
-               if (yych <= '\f') {
-                       if (yych != '\n') goto yy904;
-               } else {
-                       if (yych <= '\r') goto yy902;
-                       if (yych == ';') goto yy903;
-                       goto yy904;
+               if (yybm[0+yych] & 32) {
+                       goto yy902;
                }
+               if (yych <= '\f') goto yy898;
+               if (yych <= '\r') goto yy900;
+               goto yy928;
 yy902:
                YYDEBUG(902, *YYCURSOR);
-yy903:
-               YYDEBUG(903, *YYCURSOR);
-               yych = *++YYCURSOR;
-               if (yych == '\n') goto yy902;
-               if (yych == '\r') goto yy902;
-               goto yy915;
-yy904:
-               YYDEBUG(904, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               if (yybm[0+yych] & 8) {
-                       goto yy894;
-               }
-               if (yych <= '^') {
-                       if (yych <= '\r') {
-                               if (yych >= '\r') goto yy896;
-                       } else {
-                               if (yych <= '@') goto yy905;
-                               if (yych <= 'Z') goto yy907;
-                       }
-               } else {
-                       if (yych <= '`') {
-                               if (yych <= '_') goto yy907;
-                       } else {
-                               if (yych <= 'z') goto yy907;
-                               if (yych >= 0x7F) goto yy907;
-                       }
+               YYDEBUG(903, *YYCURSOR);
+               if (yybm[0+yych] & 32) {
+                       goto yy902;
                }
-yy905:
-               YYDEBUG(905, *YYCURSOR);
+               if (yych <= '\f') goto yy898;
+               if (yych <= '\r') goto yy900;
+               goto yy926;
+yy904:
+               YYDEBUG(904, *YYCURSOR);
                ++YYCURSOR;
-               YYFILL(1);
+               YYFILL(2);
                yych = *YYCURSOR;
-               YYDEBUG(906, *YYCURSOR);
-               if (yybm[0+yych] & 8) {
-                       goto yy894;
+               YYDEBUG(905, *YYCURSOR);
+               if (yybm[0+yych] & 64) {
+                       goto yy904;
                }
-               if (yych <= '^') {
-                       if (yych <= '\r') {
-                               if (yych <= '\f') goto yy905;
-                               goto yy896;
-                       } else {
-                               if (yych <= '@') goto yy905;
-                               if (yych <= 'Z') goto yy909;
-                               goto yy905;
-                       }
+               if (yych <= '\f') {
+                       if (yych != '\n') goto yy908;
                } else {
-                       if (yych <= '`') {
-                               if (yych <= '_') goto yy909;
-                               goto yy905;
-                       } else {
-                               if (yych <= 'z') goto yy909;
-                               if (yych <= '~') goto yy905;
-                               goto yy909;
-                       }
+                       if (yych <= '\r') goto yy906;
+                       if (yych == ';') goto yy907;
+                       goto yy908;
                }
+yy906:
+               YYDEBUG(906, *YYCURSOR);
 yy907:
                YYDEBUG(907, *YYCURSOR);
+               yych = *++YYCURSOR;
+               if (yych == '\n') goto yy906;
+               if (yych == '\r') goto yy906;
+               goto yy919;
+yy908:
+               YYDEBUG(908, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(908, *YYCURSOR);
                if (yybm[0+yych] & 8) {
-                       goto yy894;
+                       goto yy898;
                }
-               if (yych <= '@') {
-                       if (yych <= '/') {
-                               if (yych == '\r') goto yy896;
-                               goto yy905;
+               if (yych <= '^') {
+                       if (yych <= '\r') {
+                               if (yych >= '\r') goto yy900;
                        } else {
-                               if (yych <= '9') goto yy909;
-                               if (yych == ';') goto yy911;
-                               goto yy905;
+                               if (yych <= '@') goto yy909;
+                               if (yych <= 'Z') goto yy911;
                        }
                } else {
-                       if (yych <= '_') {
-                               if (yych <= 'Z') goto yy907;
-                               if (yych <= '^') goto yy905;
-                               goto yy907;
+                       if (yych <= '`') {
+                               if (yych <= '_') goto yy911;
                        } else {
-                               if (yych <= '`') goto yy905;
-                               if (yych <= 'z') goto yy907;
-                               if (yych <= '~') goto yy905;
-                               goto yy907;
+                               if (yych <= 'z') goto yy911;
+                               if (yych >= 0x7F) goto yy911;
                        }
                }
 yy909:
@@ -7903,26 +7881,25 @@ yy909:
                yych = *YYCURSOR;
                YYDEBUG(910, *YYCURSOR);
                if (yybm[0+yych] & 8) {
-                       goto yy894;
+                       goto yy898;
                }
-               if (yych <= '@') {
-                       if (yych <= '/') {
-                               if (yych == '\r') goto yy896;
-                               goto yy905;
+               if (yych <= '^') {
+                       if (yych <= '\r') {
+                               if (yych <= '\f') goto yy909;
+                               goto yy900;
                        } else {
-                               if (yych <= '9') goto yy909;
-                               if (yych != ';') goto yy905;
+                               if (yych <= '@') goto yy909;
+                               if (yych <= 'Z') goto yy913;
+                               goto yy909;
                        }
                } else {
-                       if (yych <= '_') {
-                               if (yych <= 'Z') goto yy909;
-                               if (yych <= '^') goto yy905;
+                       if (yych <= '`') {
+                               if (yych <= '_') goto yy913;
                                goto yy909;
                        } else {
-                               if (yych <= '`') goto yy905;
-                               if (yych <= 'z') goto yy909;
-                               if (yych <= '~') goto yy905;
-                               goto yy909;
+                               if (yych <= 'z') goto yy913;
+                               if (yych <= '~') goto yy909;
+                               goto yy913;
                        }
                }
 yy911:
@@ -7932,22 +7909,27 @@ yy911:
                yych = *YYCURSOR;
                YYDEBUG(912, *YYCURSOR);
                if (yybm[0+yych] & 8) {
-                       goto yy894;
+                       goto yy898;
                }
-               if (yych <= '^') {
-                       if (yych <= '\r') {
-                               if (yych <= '\f') goto yy911;
-                               goto yy896;
+               if (yych <= '@') {
+                       if (yych <= '/') {
+                               if (yych == '\r') goto yy900;
+                               goto yy909;
                        } else {
-                               if (yych <= '@') goto yy911;
-                               if (yych >= '[') goto yy911;
+                               if (yych <= '9') goto yy913;
+                               if (yych == ';') goto yy915;
+                               goto yy909;
                        }
                } else {
-                       if (yych <= '`') {
-                               if (yych >= '`') goto yy911;
+                       if (yych <= '_') {
+                               if (yych <= 'Z') goto yy911;
+                               if (yych <= '^') goto yy909;
+                               goto yy911;
                        } else {
-                               if (yych <= 'z') goto yy913;
-                               if (yych <= '~') goto yy911;
+                               if (yych <= '`') goto yy909;
+                               if (yych <= 'z') goto yy911;
+                               if (yych <= '~') goto yy909;
+                               goto yy911;
                        }
                }
 yy913:
@@ -7957,24 +7939,25 @@ yy913:
                yych = *YYCURSOR;
                YYDEBUG(914, *YYCURSOR);
                if (yybm[0+yych] & 8) {
-                       goto yy894;
+                       goto yy898;
                }
-               if (yych <= 'Z') {
+               if (yych <= '@') {
                        if (yych <= '/') {
-                               if (yych == '\r') goto yy896;
-                               goto yy911;
+                               if (yych == '\r') goto yy900;
+                               goto yy909;
                        } else {
                                if (yych <= '9') goto yy913;
-                               if (yych <= '@') goto yy911;
-                               goto yy913;
+                               if (yych != ';') goto yy909;
                        }
                } else {
-                       if (yych <= '`') {
-                               if (yych == '_') goto yy913;
-                               goto yy911;
+                       if (yych <= '_') {
+                               if (yych <= 'Z') goto yy913;
+                               if (yych <= '^') goto yy909;
+                               goto yy913;
                        } else {
+                               if (yych <= '`') goto yy909;
                                if (yych <= 'z') goto yy913;
-                               if (yych <= '~') goto yy911;
+                               if (yych <= '~') goto yy909;
                                goto yy913;
                        }
                }
@@ -7983,80 +7966,75 @@ yy915:
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
+               YYDEBUG(916, *YYCURSOR);
                if (yybm[0+yych] & 8) {
-                       goto yy894;
+                       goto yy898;
                }
                if (yych <= '^') {
                        if (yych <= '\r') {
-                               if (yych >= '\r') goto yy896;
+                               if (yych <= '\f') goto yy915;
+                               goto yy900;
                        } else {
-                               if (yych <= '@') goto yy916;
-                               if (yych <= 'Z') goto yy918;
+                               if (yych <= '@') goto yy915;
+                               if (yych >= '[') goto yy915;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy918;
+                               if (yych >= '`') goto yy915;
                        } else {
-                               if (yych <= 'z') goto yy918;
-                               if (yych >= 0x7F) goto yy918;
+                               if (yych <= 'z') goto yy917;
+                               if (yych <= '~') goto yy915;
                        }
                }
-yy916:
-               YYDEBUG(916, *YYCURSOR);
+yy917:
+               YYDEBUG(917, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(917, *YYCURSOR);
+               YYDEBUG(918, *YYCURSOR);
                if (yybm[0+yych] & 8) {
-                       goto yy894;
+                       goto yy898;
                }
-               if (yych <= '^') {
-                       if (yych <= '\r') {
-                               if (yych <= '\f') goto yy916;
-                               goto yy896;
+               if (yych <= 'Z') {
+                       if (yych <= '/') {
+                               if (yych == '\r') goto yy900;
+                               goto yy915;
                        } else {
-                               if (yych <= '@') goto yy916;
-                               if (yych <= 'Z') goto yy920;
-                               goto yy916;
+                               if (yych <= '9') goto yy917;
+                               if (yych <= '@') goto yy915;
+                               goto yy917;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy920;
-                               goto yy916;
+                               if (yych == '_') goto yy917;
+                               goto yy915;
                        } else {
-                               if (yych <= 'z') goto yy920;
-                               if (yych <= '~') goto yy916;
-                               goto yy920;
+                               if (yych <= 'z') goto yy917;
+                               if (yych <= '~') goto yy915;
+                               goto yy917;
                        }
                }
-yy918:
-               YYDEBUG(918, *YYCURSOR);
+yy919:
+               YYDEBUG(919, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(919, *YYCURSOR);
                if (yybm[0+yych] & 8) {
-                       goto yy894;
+                       goto yy898;
                }
-               if (yych <= '@') {
-                       if (yych <= '/') {
-                               if (yych == '\r') goto yy896;
-                               goto yy911;
+               if (yych <= '^') {
+                       if (yych <= '\r') {
+                               if (yych >= '\r') goto yy900;
                        } else {
-                               if (yych <= '9') goto yy920;
-                               if (yych == ';') goto yy916;
-                               goto yy911;
+                               if (yych <= '@') goto yy920;
+                               if (yych <= 'Z') goto yy922;
                        }
                } else {
-                       if (yych <= '_') {
-                               if (yych <= 'Z') goto yy918;
-                               if (yych <= '^') goto yy911;
-                               goto yy918;
+                       if (yych <= '`') {
+                               if (yych <= '_') goto yy922;
                        } else {
-                               if (yych <= '`') goto yy911;
-                               if (yych <= 'z') goto yy918;
-                               if (yych <= '~') goto yy911;
-                               goto yy918;
+                               if (yych <= 'z') goto yy922;
+                               if (yych >= 0x7F) goto yy922;
                        }
                }
 yy920:
@@ -8066,27 +8044,25 @@ yy920:
                yych = *YYCURSOR;
                YYDEBUG(921, *YYCURSOR);
                if (yybm[0+yych] & 8) {
-                       goto yy894;
+                       goto yy898;
                }
-               if (yych <= '@') {
-                       if (yych <= '/') {
-                               if (yych == '\r') goto yy896;
-                               goto yy911;
+               if (yych <= '^') {
+                       if (yych <= '\r') {
+                               if (yych <= '\f') goto yy920;
+                               goto yy900;
                        } else {
-                               if (yych <= '9') goto yy920;
-                               if (yych == ';') goto yy916;
-                               goto yy911;
+                               if (yych <= '@') goto yy920;
+                               if (yych <= 'Z') goto yy924;
+                               goto yy920;
                        }
                } else {
-                       if (yych <= '_') {
-                               if (yych <= 'Z') goto yy920;
-                               if (yych <= '^') goto yy911;
+                       if (yych <= '`') {
+                               if (yych <= '_') goto yy924;
                                goto yy920;
                        } else {
-                               if (yych <= '`') goto yy911;
-                               if (yych <= 'z') goto yy920;
-                               if (yych <= '~') goto yy911;
-                               goto yy920;
+                               if (yych <= 'z') goto yy924;
+                               if (yych <= '~') goto yy920;
+                               goto yy924;
                        }
                }
 yy922:
@@ -8096,26 +8072,26 @@ yy922:
                yych = *YYCURSOR;
                YYDEBUG(923, *YYCURSOR);
                if (yybm[0+yych] & 8) {
-                       goto yy894;
+                       goto yy898;
                }
                if (yych <= '@') {
                        if (yych <= '/') {
-                               if (yych == '\r') goto yy896;
-                               goto yy905;
+                               if (yych == '\r') goto yy900;
+                               goto yy915;
                        } else {
-                               if (yych <= '9') goto yy922;
-                               if (yych == ';') goto yy916;
-                               goto yy905;
+                               if (yych <= '9') goto yy924;
+                               if (yych == ';') goto yy920;
+                               goto yy915;
                        }
                } else {
                        if (yych <= '_') {
                                if (yych <= 'Z') goto yy922;
-                               if (yych <= '^') goto yy905;
+                               if (yych <= '^') goto yy915;
                                goto yy922;
                        } else {
-                               if (yych <= '`') goto yy905;
+                               if (yych <= '`') goto yy915;
                                if (yych <= 'z') goto yy922;
-                               if (yych <= '~') goto yy905;
+                               if (yych <= '~') goto yy915;
                                goto yy922;
                        }
                }
@@ -8125,41 +8101,101 @@ yy924:
                YYFILL(1);
                yych = *YYCURSOR;
                YYDEBUG(925, *YYCURSOR);
-               if (yych <= ';') {
-                       if (yych <= '\r') {
-                               if (yych == '\n') goto yy927;
-                               if (yych <= '\f') goto yy904;
-                               goto yy927;
+               if (yybm[0+yych] & 8) {
+                       goto yy898;
+               }
+               if (yych <= '@') {
+                       if (yych <= '/') {
+                               if (yych == '\r') goto yy900;
+                               goto yy915;
                        } else {
-                               if (yych <= '/') goto yy904;
                                if (yych <= '9') goto yy924;
-                               if (yych <= ':') goto yy904;
+                               if (yych == ';') goto yy920;
+                               goto yy915;
                        }
                } else {
                        if (yych <= '_') {
-                               if (yych <= '@') goto yy904;
                                if (yych <= 'Z') goto yy924;
-                               if (yych <= '^') goto yy904;
+                               if (yych <= '^') goto yy915;
                                goto yy924;
                        } else {
-                               if (yych <= '`') goto yy904;
+                               if (yych <= '`') goto yy915;
                                if (yych <= 'z') goto yy924;
-                               if (yych <= '~') goto yy904;
+                               if (yych <= '~') goto yy915;
                                goto yy924;
                        }
                }
+yy926:
                YYDEBUG(926, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               if (yych == '\n') goto yy927;
-               if (yych != '\r') goto yy915;
-yy927:
                YYDEBUG(927, *YYCURSOR);
-               ++YYCURSOR;
+               if (yybm[0+yych] & 8) {
+                       goto yy898;
+               }
+               if (yych <= '@') {
+                       if (yych <= '/') {
+                               if (yych == '\r') goto yy900;
+                               goto yy909;
+                       } else {
+                               if (yych <= '9') goto yy926;
+                               if (yych == ';') goto yy920;
+                               goto yy909;
+                       }
+               } else {
+                       if (yych <= '_') {
+                               if (yych <= 'Z') goto yy926;
+                               if (yych <= '^') goto yy909;
+                               goto yy926;
+                       } else {
+                               if (yych <= '`') goto yy909;
+                               if (yych <= 'z') goto yy926;
+                               if (yych <= '~') goto yy909;
+                               goto yy926;
+                       }
+               }
+yy928:
                YYDEBUG(928, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
+               YYDEBUG(929, *YYCURSOR);
+               if (yych <= ';') {
+                       if (yych <= '\r') {
+                               if (yych == '\n') goto yy931;
+                               if (yych <= '\f') goto yy908;
+                               goto yy931;
+                       } else {
+                               if (yych <= '/') goto yy908;
+                               if (yych <= '9') goto yy928;
+                               if (yych <= ':') goto yy908;
+                       }
+               } else {
+                       if (yych <= '_') {
+                               if (yych <= '@') goto yy908;
+                               if (yych <= 'Z') goto yy928;
+                               if (yych <= '^') goto yy908;
+                               goto yy928;
+                       } else {
+                               if (yych <= '`') goto yy908;
+                               if (yych <= 'z') goto yy928;
+                               if (yych <= '~') goto yy908;
+                               goto yy928;
+                       }
+               }
+               YYDEBUG(930, *YYCURSOR);
+               ++YYCURSOR;
+               YYFILL(1);
+               yych = *YYCURSOR;
+               if (yych == '\n') goto yy931;
+               if (yych != '\r') goto yy919;
+yy931:
+               YYDEBUG(931, *YYCURSOR);
+               ++YYCURSOR;
+               YYDEBUG(932, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1852 "Zend/zend_language_scanner.l"
+#line 1858 "Zend/zend_language_scanner.l"
                {
        char *end = yytext + yyleng - 1;
 
@@ -8196,7 +8232,7 @@ yy927:
                yymore();
        }
 }
-#line 8200 "Zend/zend_language_scanner.c"
+#line 8236 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_ONE_LINE_COMMENT:
@@ -8235,52 +8271,52 @@ yyc_ST_ONE_LINE_COMMENT:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(929, *YYCURSOR);
+               YYDEBUG(933, *YYCURSOR);
                YYFILL(2);
                yych = *YYCURSOR;
                if (yybm[0+yych] & 128) {
-                       goto yy935;
+                       goto yy939;
                }
-               if (yych <= '\f') goto yy938;
-               if (yych <= '\r') goto yy939;
-               if (yych <= '=') goto yy931;
-               if (yych <= '>') goto yy933;
-               goto yy934;
-yy931:
-               YYDEBUG(931, *YYCURSOR);
+               if (yych <= '\f') goto yy942;
+               if (yych <= '\r') goto yy943;
+               if (yych <= '=') goto yy935;
+               if (yych <= '>') goto yy937;
+               goto yy938;
+yy935:
+               YYDEBUG(935, *YYCURSOR);
                ++YYCURSOR;
-               if ((yych = *YYCURSOR) == '>') goto yy943;
-yy932:
-               YYDEBUG(932, *YYCURSOR);
+               if ((yych = *YYCURSOR) == '>') goto yy947;
+yy936:
+               YYDEBUG(936, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1482 "Zend/zend_language_scanner.l"
+#line 1488 "Zend/zend_language_scanner.l"
                {
        yymore();
 }
-#line 8261 "Zend/zend_language_scanner.c"
-yy933:
-               YYDEBUG(933, *YYCURSOR);
+#line 8297 "Zend/zend_language_scanner.c"
+yy937:
+               YYDEBUG(937, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy932;
-yy934:
-               YYDEBUG(934, *YYCURSOR);
+               goto yy936;
+yy938:
+               YYDEBUG(938, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '>') goto yy943;
-               goto yy932;
-yy935:
-               YYDEBUG(935, *YYCURSOR);
+               if (yych == '>') goto yy947;
+               goto yy936;
+yy939:
+               YYDEBUG(939, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(936, *YYCURSOR);
+               YYDEBUG(940, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy935;
+                       goto yy939;
                }
-               goto yy942;
-yy937:
-               YYDEBUG(937, *YYCURSOR);
+               goto yy946;
+yy941:
+               YYDEBUG(941, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1486 "Zend/zend_language_scanner.l"
+#line 1492 "Zend/zend_language_scanner.l"
                {
        switch (yytext[yyleng-1]) {
                case '?': case '%': case '>':
@@ -8298,20 +8334,20 @@ yy937:
                        return T_COMMENT;
        }
 }
-#line 8302 "Zend/zend_language_scanner.c"
-yy938:
-               YYDEBUG(938, *YYCURSOR);
+#line 8338 "Zend/zend_language_scanner.c"
+yy942:
+               YYDEBUG(942, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy937;
-yy939:
-               YYDEBUG(939, *YYCURSOR);
+               goto yy941;
+yy943:
+               YYDEBUG(943, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych != '\n') goto yy937;
-               YYDEBUG(940, *YYCURSOR);
+               if (yych != '\n') goto yy941;
+               YYDEBUG(944, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(941, *YYCURSOR);
+               YYDEBUG(945, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1504 "Zend/zend_language_scanner.l"
+#line 1510 "Zend/zend_language_scanner.l"
                {
        zendlval->value.str.val = yytext; /* no copying - intentional */
        zendlval->value.str.len = yyleng;
@@ -8320,17 +8356,17 @@ yy939:
        CG(zend_lineno)++;
        return T_COMMENT;
 }
-#line 8324 "Zend/zend_language_scanner.c"
-yy942:
-               YYDEBUG(942, *YYCURSOR);
+#line 8360 "Zend/zend_language_scanner.c"
+yy946:
+               YYDEBUG(946, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy937;
-yy943:
-               YYDEBUG(943, *YYCURSOR);
+               goto yy941;
+yy947:
+               YYDEBUG(947, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(944, *YYCURSOR);
+               YYDEBUG(948, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1513 "Zend/zend_language_scanner.l"
+#line 1519 "Zend/zend_language_scanner.l"
                {
     if (CG(asp_tags) || yytext[yyleng-2] != '%') { /* asp comment? */
                zendlval->value.str.val = yytext; /* no copying - intentional */
@@ -8344,7 +8380,7 @@ yy943:
                yymore();
        }
 }
-#line 8348 "Zend/zend_language_scanner.c"
+#line 8384 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_START_HEREDOC:
@@ -8383,76 +8419,76 @@ yyc_ST_START_HEREDOC:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(945, *YYCURSOR);
+               YYDEBUG(949, *YYCURSOR);
                YYFILL(3);
                yych = *YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy947;
-                       if (yych <= 'Z') goto yy949;
-                       if (yych >= '_') goto yy949;
+                       if (yych <= '@') goto yy951;
+                       if (yych <= 'Z') goto yy953;
+                       if (yych >= '_') goto yy953;
                } else {
-                       if (yych <= '`') goto yy947;
-                       if (yych <= 'z') goto yy949;
-                       if (yych >= 0x7F) goto yy949;
+                       if (yych <= '`') goto yy951;
+                       if (yych <= 'z') goto yy953;
+                       if (yych >= 0x7F) goto yy953;
                }
-yy947:
-               YYDEBUG(947, *YYCURSOR);
+yy951:
+               YYDEBUG(951, *YYCURSOR);
                ++YYCURSOR;
-yy948:
-               YYDEBUG(948, *YYCURSOR);
+yy952:
+               YYDEBUG(952, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1669 "Zend/zend_language_scanner.l"
+#line 1675 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        BEGIN(ST_HEREDOC);
        goto restart;
 }
-#line 8411 "Zend/zend_language_scanner.c"
-yy949:
-               YYDEBUG(949, *YYCURSOR);
+#line 8447 "Zend/zend_language_scanner.c"
+yy953:
+               YYDEBUG(953, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy950;
+                       goto yy954;
                }
                if (yych <= '\f') {
-                       if (yych == '\n') goto yy954;
-                       goto yy948;
+                       if (yych == '\n') goto yy958;
+                       goto yy952;
                } else {
-                       if (yych <= '\r') goto yy954;
-                       if (yych == ';') goto yy953;
-                       goto yy948;
+                       if (yych <= '\r') goto yy958;
+                       if (yych == ';') goto yy957;
+                       goto yy952;
                }
-yy950:
-               YYDEBUG(950, *YYCURSOR);
+yy954:
+               YYDEBUG(954, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(2);
                yych = *YYCURSOR;
-               YYDEBUG(951, *YYCURSOR);
+               YYDEBUG(955, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy950;
+                       goto yy954;
                }
                if (yych <= '\f') {
-                       if (yych == '\n') goto yy954;
+                       if (yych == '\n') goto yy958;
                } else {
-                       if (yych <= '\r') goto yy954;
-                       if (yych == ';') goto yy953;
+                       if (yych <= '\r') goto yy958;
+                       if (yych == ';') goto yy957;
                }
-yy952:
-               YYDEBUG(952, *YYCURSOR);
+yy956:
+               YYDEBUG(956, *YYCURSOR);
                YYCURSOR = YYMARKER;
-               goto yy948;
-yy953:
-               YYDEBUG(953, *YYCURSOR);
+               goto yy952;
+yy957:
+               YYDEBUG(957, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy954;
-               if (yych != '\r') goto yy952;
-yy954:
-               YYDEBUG(954, *YYCURSOR);
+               if (yych == '\n') goto yy958;
+               if (yych != '\r') goto yy956;
+yy958:
+               YYDEBUG(958, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(955, *YYCURSOR);
+               YYDEBUG(959, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1675 "Zend/zend_language_scanner.l"
+#line 1681 "Zend/zend_language_scanner.l"
                {
        int label_len = yyleng - 1;
 
@@ -8474,7 +8510,7 @@ yy954:
                yymore();
        }
 }
-#line 8478 "Zend/zend_language_scanner.c"
+#line 8514 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_START_NOWDOC:
@@ -8513,76 +8549,76 @@ yyc_ST_START_NOWDOC:
                        128, 128, 128, 128, 128, 128, 128, 128, 
                        128, 128, 128, 128, 128, 128, 128, 128, 
                };
-               YYDEBUG(956, *YYCURSOR);
+               YYDEBUG(960, *YYCURSOR);
                YYFILL(3);
                yych = *YYCURSOR;
                if (yych <= '_') {
-                       if (yych <= '@') goto yy958;
-                       if (yych <= 'Z') goto yy960;
-                       if (yych >= '_') goto yy960;
+                       if (yych <= '@') goto yy962;
+                       if (yych <= 'Z') goto yy964;
+                       if (yych >= '_') goto yy964;
                } else {
-                       if (yych <= '`') goto yy958;
-                       if (yych <= 'z') goto yy960;
-                       if (yych >= 0x7F) goto yy960;
+                       if (yych <= '`') goto yy962;
+                       if (yych <= 'z') goto yy964;
+                       if (yych >= 0x7F) goto yy964;
                }
-yy958:
-               YYDEBUG(958, *YYCURSOR);
+yy962:
+               YYDEBUG(962, *YYCURSOR);
                ++YYCURSOR;
-yy959:
-               YYDEBUG(959, *YYCURSOR);
+yy963:
+               YYDEBUG(963, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1826 "Zend/zend_language_scanner.l"
+#line 1832 "Zend/zend_language_scanner.l"
                {
        yyless(0);
        BEGIN(ST_NOWDOC);
        goto restart;
 }
-#line 8541 "Zend/zend_language_scanner.c"
-yy960:
-               YYDEBUG(960, *YYCURSOR);
+#line 8577 "Zend/zend_language_scanner.c"
+yy964:
+               YYDEBUG(964, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy961;
+                       goto yy965;
                }
                if (yych <= '\f') {
-                       if (yych == '\n') goto yy965;
-                       goto yy959;
+                       if (yych == '\n') goto yy969;
+                       goto yy963;
                } else {
-                       if (yych <= '\r') goto yy965;
-                       if (yych == ';') goto yy964;
-                       goto yy959;
+                       if (yych <= '\r') goto yy969;
+                       if (yych == ';') goto yy968;
+                       goto yy963;
                }
-yy961:
-               YYDEBUG(961, *YYCURSOR);
+yy965:
+               YYDEBUG(965, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(2);
                yych = *YYCURSOR;
-               YYDEBUG(962, *YYCURSOR);
+               YYDEBUG(966, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy961;
+                       goto yy965;
                }
                if (yych <= '\f') {
-                       if (yych == '\n') goto yy965;
+                       if (yych == '\n') goto yy969;
                } else {
-                       if (yych <= '\r') goto yy965;
-                       if (yych == ';') goto yy964;
+                       if (yych <= '\r') goto yy969;
+                       if (yych == ';') goto yy968;
                }
-yy963:
-               YYDEBUG(963, *YYCURSOR);
+yy967:
+               YYDEBUG(967, *YYCURSOR);
                YYCURSOR = YYMARKER;
-               goto yy959;
-yy964:
-               YYDEBUG(964, *YYCURSOR);
+               goto yy963;
+yy968:
+               YYDEBUG(968, *YYCURSOR);
                yych = *++YYCURSOR;
-               if (yych == '\n') goto yy965;
-               if (yych != '\r') goto yy963;
-yy965:
-               YYDEBUG(965, *YYCURSOR);
+               if (yych == '\n') goto yy969;
+               if (yych != '\r') goto yy967;
+yy969:
+               YYDEBUG(969, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(966, *YYCURSOR);
+               YYDEBUG(970, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1832 "Zend/zend_language_scanner.l"
+#line 1838 "Zend/zend_language_scanner.l"
                {
        int label_len = yyleng - 1;
 
@@ -8602,7 +8638,7 @@ yy965:
                yymore();
        }
 }
-#line 8606 "Zend/zend_language_scanner.c"
+#line 8642 "Zend/zend_language_scanner.c"
        }
 /* *********************************** */
 yyc_ST_VAR_OFFSET:
@@ -8641,69 +8677,69 @@ yyc_ST_VAR_OFFSET:
                         32,  32,  32,  32,  32,  32,  32,  32, 
                         32,  32,  32,  32,  32,  32,  32,  32, 
                };
-               YYDEBUG(967, *YYCURSOR);
+               YYDEBUG(971, *YYCURSOR);
                YYFILL(3);
                yych = *YYCURSOR;
                if (yych <= '/') {
                        if (yych <= ' ') {
                                if (yych <= '\f') {
-                                       if (yych <= 0x08) goto yy981;
-                                       if (yych <= '\n') goto yy977;
-                                       goto yy981;
+                                       if (yych <= 0x08) goto yy985;
+                                       if (yych <= '\n') goto yy981;
+                                       goto yy985;
                                } else {
-                                       if (yych <= '\r') goto yy977;
-                                       if (yych <= 0x1F) goto yy981;
-                                       goto yy977;
+                                       if (yych <= '\r') goto yy981;
+                                       if (yych <= 0x1F) goto yy985;
+                                       goto yy981;
                                }
                        } else {
                                if (yych <= '$') {
-                                       if (yych <= '"') goto yy976;
-                                       if (yych <= '#') goto yy977;
-                                       goto yy972;
-                               } else {
-                                       if (yych == '\'') goto yy977;
+                                       if (yych <= '"') goto yy980;
+                                       if (yych <= '#') goto yy981;
                                        goto yy976;
+                               } else {
+                                       if (yych == '\'') goto yy981;
+                                       goto yy980;
                                }
                        }
                } else {
                        if (yych <= '\\') {
                                if (yych <= '@') {
-                                       if (yych <= '0') goto yy969;
-                                       if (yych <= '9') goto yy971;
-                                       goto yy976;
+                                       if (yych <= '0') goto yy973;
+                                       if (yych <= '9') goto yy975;
+                                       goto yy980;
                                } else {
-                                       if (yych <= 'Z') goto yy979;
-                                       if (yych <= '[') goto yy976;
-                                       goto yy977;
+                                       if (yych <= 'Z') goto yy983;
+                                       if (yych <= '[') goto yy980;
+                                       goto yy981;
                                }
                        } else {
                                if (yych <= '_') {
-                                       if (yych <= ']') goto yy974;
-                                       if (yych <= '^') goto yy976;
-                                       goto yy979;
+                                       if (yych <= ']') goto yy978;
+                                       if (yych <= '^') goto yy980;
+                                       goto yy983;
                                } else {
-                                       if (yych <= '`') goto yy976;
-                                       if (yych <= 'z') goto yy979;
-                                       if (yych <= '~') goto yy976;
-                                       goto yy979;
+                                       if (yych <= '`') goto yy980;
+                                       if (yych <= 'z') goto yy983;
+                                       if (yych <= '~') goto yy980;
+                                       goto yy983;
                                }
                        }
                }
-yy969:
-               YYDEBUG(969, *YYCURSOR);
+yy973:
+               YYDEBUG(973, *YYCURSOR);
                yyaccept = 0;
                yych = *(YYMARKER = ++YYCURSOR);
                if (yych <= 'W') {
-                       if (yych <= '/') goto yy970;
-                       if (yych <= '9') goto yy992;
+                       if (yych <= '/') goto yy974;
+                       if (yych <= '9') goto yy996;
                } else {
-                       if (yych <= 'X') goto yy990;
-                       if (yych == 'x') goto yy990;
+                       if (yych <= 'X') goto yy994;
+                       if (yych == 'x') goto yy994;
                }
-yy970:
-               YYDEBUG(970, *YYCURSOR);
+yy974:
+               YYDEBUG(974, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1158 "Zend/zend_language_scanner.l"
+#line 1164 "Zend/zend_language_scanner.l"
                { /* Offset could be treated as a long */
        if (yyleng < MAX_LENGTH_OF_LONG - 1 || (yyleng == MAX_LENGTH_OF_LONG - 1 && strcmp(yytext, long_min_digits) < 0)) {
                zendlval->value.lval = strtol(yytext, NULL, 10);
@@ -8715,53 +8751,53 @@ yy970:
        }
        return T_NUM_STRING;
 }
-#line 8719 "Zend/zend_language_scanner.c"
-yy971:
-               YYDEBUG(971, *YYCURSOR);
+#line 8755 "Zend/zend_language_scanner.c"
+yy975:
+               YYDEBUG(975, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy989;
-yy972:
-               YYDEBUG(972, *YYCURSOR);
+               goto yy993;
+yy976:
+               YYDEBUG(976, *YYCURSOR);
                ++YYCURSOR;
                if ((yych = *YYCURSOR) <= '_') {
-                       if (yych <= '@') goto yy973;
-                       if (yych <= 'Z') goto yy985;
-                       if (yych >= '_') goto yy985;
+                       if (yych <= '@') goto yy977;
+                       if (yych <= 'Z') goto yy989;
+                       if (yych >= '_') goto yy989;
                } else {
-                       if (yych <= '`') goto yy973;
-                       if (yych <= 'z') goto yy985;
-                       if (yych >= 0x7F) goto yy985;
+                       if (yych <= '`') goto yy977;
+                       if (yych <= 'z') goto yy989;
+                       if (yych >= 0x7F) goto yy989;
                }
-yy973:
-               YYDEBUG(973, *YYCURSOR);
+yy977:
+               YYDEBUG(977, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1448 "Zend/zend_language_scanner.l"
+#line 1454 "Zend/zend_language_scanner.l"
                {
        /* Only '[' can be valid, but returning other tokens will allow a more explicit parse error */
        return yytext[0];
 }
-#line 8744 "Zend/zend_language_scanner.c"
-yy974:
-               YYDEBUG(974, *YYCURSOR);
+#line 8780 "Zend/zend_language_scanner.c"
+yy978:
+               YYDEBUG(978, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(975, *YYCURSOR);
+               YYDEBUG(979, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1443 "Zend/zend_language_scanner.l"
+#line 1449 "Zend/zend_language_scanner.l"
                {
        yy_pop_state(TSRMLS_C);
        return ']';
 }
-#line 8755 "Zend/zend_language_scanner.c"
-yy976:
-               YYDEBUG(976, *YYCURSOR);
+#line 8791 "Zend/zend_language_scanner.c"
+yy980:
+               YYDEBUG(980, *YYCURSOR);
                yych = *++YYCURSOR;
-               goto yy973;
-yy977:
-               YYDEBUG(977, *YYCURSOR);
+               goto yy977;
+yy981:
+               YYDEBUG(981, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(978, *YYCURSOR);
+               YYDEBUG(982, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1453 "Zend/zend_language_scanner.l"
+#line 1459 "Zend/zend_language_scanner.l"
                {
        /* Invalid rule to return a more explicit parse error with proper line number */
        yyless(0);
@@ -8769,126 +8805,126 @@ yy977:
        ZVAL_EMPTY_STRING(zendlval); /* Empty since it won't be used */
        return T_ENCAPSED_AND_WHITESPACE;
 }
-#line 8773 "Zend/zend_language_scanner.c"
-yy979:
-               YYDEBUG(979, *YYCURSOR);
+#line 8809 "Zend/zend_language_scanner.c"
+yy983:
+               YYDEBUG(983, *YYCURSOR);
                ++YYCURSOR;
                yych = *YYCURSOR;
-               goto yy984;
-yy980:
-               YYDEBUG(980, *YYCURSOR);
+               goto yy988;
+yy984:
+               YYDEBUG(984, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1461 "Zend/zend_language_scanner.l"
+#line 1467 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, yytext, yyleng);
        zendlval->type = IS_STRING;
        return T_STRING;
 }
-#line 8788 "Zend/zend_language_scanner.c"
-yy981:
-               YYDEBUG(981, *YYCURSOR);
+#line 8824 "Zend/zend_language_scanner.c"
+yy985:
+               YYDEBUG(985, *YYCURSOR);
                ++YYCURSOR;
-               YYDEBUG(982, *YYCURSOR);
+               YYDEBUG(986, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1914 "Zend/zend_language_scanner.l"
+#line 1920 "Zend/zend_language_scanner.l"
                {
        zend_error(E_COMPILE_WARNING,"Unexpected character in input:  '%c' (ASCII=%d) state=%d", yytext[0], yytext[0], YYSTATE);
        goto restart;
 }
-#line 8799 "Zend/zend_language_scanner.c"
-yy983:
-               YYDEBUG(983, *YYCURSOR);
+#line 8835 "Zend/zend_language_scanner.c"
+yy987:
+               YYDEBUG(987, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy984:
-               YYDEBUG(984, *YYCURSOR);
+yy988:
+               YYDEBUG(988, *YYCURSOR);
                if (yybm[0+yych] & 32) {
-                       goto yy983;
+                       goto yy987;
                }
-               goto yy980;
-yy985:
-               YYDEBUG(985, *YYCURSOR);
+               goto yy984;
+yy989:
+               YYDEBUG(989, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(986, *YYCURSOR);
+               YYDEBUG(990, *YYCURSOR);
                if (yych <= '^') {
                        if (yych <= '9') {
-                               if (yych >= '0') goto yy985;
+                               if (yych >= '0') goto yy989;
                        } else {
-                               if (yych <= '@') goto yy987;
-                               if (yych <= 'Z') goto yy985;
+                               if (yych <= '@') goto yy991;
+                               if (yych <= 'Z') goto yy989;
                        }
                } else {
                        if (yych <= '`') {
-                               if (yych <= '_') goto yy985;
+                               if (yych <= '_') goto yy989;
                        } else {
-                               if (yych <= 'z') goto yy985;
-                               if (yych >= 0x7F) goto yy985;
+                               if (yych <= 'z') goto yy989;
+                               if (yych >= 0x7F) goto yy989;
                        }
                }
-yy987:
-               YYDEBUG(987, *YYCURSOR);
+yy991:
+               YYDEBUG(991, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1437 "Zend/zend_language_scanner.l"
+#line 1443 "Zend/zend_language_scanner.l"
                {
        zend_copy_value(zendlval, (yytext+1), (yyleng-1));
        zendlval->type = IS_STRING;
        return T_VARIABLE;
 }
-#line 8841 "Zend/zend_language_scanner.c"
-yy988:
-               YYDEBUG(988, *YYCURSOR);
+#line 8877 "Zend/zend_language_scanner.c"
+yy992:
+               YYDEBUG(992, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-yy989:
-               YYDEBUG(989, *YYCURSOR);
+yy993:
+               YYDEBUG(993, *YYCURSOR);
                if (yybm[0+yych] & 64) {
-                       goto yy988;
+                       goto yy992;
                }
-               goto yy970;
-yy990:
-               YYDEBUG(990, *YYCURSOR);
+               goto yy974;
+yy994:
+               YYDEBUG(994, *YYCURSOR);
                yych = *++YYCURSOR;
                if (yybm[0+yych] & 128) {
-                       goto yy995;
+                       goto yy999;
                }
-               YYDEBUG(991, *YYCURSOR);
+               YYDEBUG(995, *YYCURSOR);
                YYCURSOR = YYMARKER;
-               goto yy970;
-yy992:
-               YYDEBUG(992, *YYCURSOR);
+               goto yy974;
+yy996:
+               YYDEBUG(996, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(993, *YYCURSOR);
-               if (yych <= '/') goto yy994;
-               if (yych <= '9') goto yy992;
-yy994:
-               YYDEBUG(994, *YYCURSOR);
+               YYDEBUG(997, *YYCURSOR);
+               if (yych <= '/') goto yy998;
+               if (yych <= '9') goto yy996;
+yy998:
+               YYDEBUG(998, *YYCURSOR);
                yyleng = YYCURSOR - SCNG(yy_text);
-#line 1170 "Zend/zend_language_scanner.l"
+#line 1176 "Zend/zend_language_scanner.l"
                { /* Offset must be treated as a string */
        zendlval->value.str.val = (char *)estrndup(yytext, yyleng);
        zendlval->value.str.len = yyleng;
        zendlval->type = IS_STRING;
        return T_NUM_STRING;
 }
-#line 8880 "Zend/zend_language_scanner.c"
-yy995:
-               YYDEBUG(995, *YYCURSOR);
+#line 8916 "Zend/zend_language_scanner.c"
+yy999:
+               YYDEBUG(999, *YYCURSOR);
                ++YYCURSOR;
                YYFILL(1);
                yych = *YYCURSOR;
-               YYDEBUG(996, *YYCURSOR);
+               YYDEBUG(1000, *YYCURSOR);
                if (yybm[0+yych] & 128) {
-                       goto yy995;
+                       goto yy999;
                }
-               goto yy994;
+               goto yy998;
        }
 }
-#line 1919 "Zend/zend_language_scanner.l"
+#line 1925 "Zend/zend_language_scanner.l"
 
 }
index e37a72fb83bd62990eb05a2cd2fb55c04a8d1bf8..be2be3694c4fb97970b20a537988ec27b0ac3f19 100644 (file)
@@ -299,6 +299,7 @@ ZEND_API zend_op_array *compile_file(zend_file_handle *file_handle, int type TSR
                CG(active_op_array) = original_active_op_array;
                if (compilation_successful) {
                        pass_two(op_array TSRMLS_CC);
+                       zend_release_labels(TSRMLS_C);
                } else {
                        efree(op_array);
                        retval = NULL;
@@ -421,6 +422,7 @@ zend_op_array *compile_string(zval *source_string, char *filename TSRMLS_DC)
                        zend_do_return(NULL, 0 TSRMLS_CC);
                        CG(active_op_array) = original_active_op_array;
                        pass_two(op_array TSRMLS_CC);
+                       zend_release_labels(TSRMLS_C);
                        retval = op_array;
                }
                zend_restore_lexical_state(&original_lex_state TSRMLS_CC);
@@ -782,6 +784,10 @@ NOWDOC_CHARS               ({NEWLINE}*(([^a-zA-Z_\x7f-\xff\n\r][^\n\r]*)|({LABEL}[^a-zA-Z0-9_
        return T_CONTINUE;
 }
 
+<ST_IN_SCRIPTING>"goto" {
+       return T_GOTO;
+}
+
 <ST_IN_SCRIPTING>"echo" {
        return T_ECHO;
 }
index 55595e6ff0dcd3fe83010f97e1caf474a0a8a0dd..c6ce2554ac7eb4bd94081c4f2032a8e0351aadc2 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.4.dev on Sat Mar 22 18:34:15 2008 */
+/* Generated by re2c 0.13.4.dev on Wed Mar 26 23:08:45 2008 */
 #line 3 "Zend/zend_language_scanner_defs.h"
 
 enum YYCONDTYPE {
index f1c4e1d4bb7fb27db7762574e4f03c0c272dd626..35e85cc16fdd3000b9887e5744074908a83ac00d 100644 (file)
@@ -390,6 +390,11 @@ int pass_two(zend_op_array *op_array TSRMLS_DC)
                        Z_SET_REFCOUNT(opline->op2.u.constant, 2);
                }
                switch (opline->opcode) {
+                       case ZEND_GOTO:
+                               if (Z_TYPE(opline->op2.u.constant) != IS_LONG) {
+                                       zend_resolve_goto_label(op_array, opline, 1 TSRMLS_CC);
+                               }
+                               /* break omitted intentionally */
                        case ZEND_JMP:
                                opline->op1.u.jmp_addr = &op_array->opcodes[opline->op1.u.opline_num];
                                break;
index 2d69256aa58af26519c150dcb2e41e6b39ba0719..1998a3c77e36d752c503e3582984caa696f6ee3f 100644 (file)
@@ -2645,6 +2645,28 @@ ZEND_VM_HANDLER(51, ZEND_CONT, ANY, CONST|TMP|VAR|CV)
        ZEND_VM_JMP(EX(op_array)->opcodes + el->cont);
 }
 
+ZEND_VM_HANDLER(100, ZEND_GOTO, ANY, CONST)
+{
+       zend_op *brk_opline;
+       zend_op *opline = EX(opline);
+       zend_brk_cont_element *el;
+
+       el = zend_brk_cont(&opline->op2.u.constant, opline->extended_value,
+                          EX(op_array), EX(Ts) TSRMLS_CC);
+
+       brk_opline = EX(op_array)->opcodes + el->brk;
+
+       switch (brk_opline->opcode) {
+               case ZEND_SWITCH_FREE:
+                       zend_switch_free(&EX_T(brk_opline->op1.u.var), brk_opline->op1.op_type, brk_opline->extended_value TSRMLS_CC);
+                       break;
+               case ZEND_FREE:
+                       zendi_zval_dtor(EX_T(brk_opline->op1.u.var).tmp_var);
+                       break;
+       }
+       ZEND_VM_JMP(opline->op1.u.jmp_addr);
+}
+
 ZEND_VM_HANDLER(48, ZEND_CASE, CONST|TMP|VAR|CV, CONST|TMP|VAR|CV)
 {
        zend_op *opline = EX(opline);
index f6c3f6359da1fabf93e8dac73792b6b34fef8043..8c5223cc47b001219788fe9bc8e0619f6d32eafb 100644 (file)
@@ -773,6 +773,28 @@ static int ZEND_CONT_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
        ZEND_VM_JMP(EX(op_array)->opcodes + el->cont);
 }
 
+static int ZEND_GOTO_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
+{
+       zend_op *brk_opline;
+       zend_op *opline = EX(opline);
+       zend_brk_cont_element *el;
+
+       el = zend_brk_cont(&opline->op2.u.constant, opline->extended_value,
+                          EX(op_array), EX(Ts) TSRMLS_CC);
+
+       brk_opline = EX(op_array)->opcodes + el->brk;
+
+       switch (brk_opline->opcode) {
+               case ZEND_SWITCH_FREE:
+                       zend_switch_free(&EX_T(brk_opline->op1.u.var), brk_opline->op1.op_type, brk_opline->extended_value TSRMLS_CC);
+                       break;
+               case ZEND_FREE:
+                       zendi_zval_dtor(EX_T(brk_opline->op1.u.var).tmp_var);
+                       break;
+       }
+       ZEND_VM_JMP(opline->op1.u.jmp_addr);
+}
+
 static int ZEND_ADD_INTERFACE_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
 {
        zend_op *opline = EX(opline);
@@ -31806,27 +31828,27 @@ void zend_init_opcodes_handlers(void)
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
+       ZEND_GOTO_SPEC_CONST_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
+       ZEND_GOTO_SPEC_CONST_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
+       ZEND_GOTO_SPEC_CONST_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
+       ZEND_GOTO_SPEC_CONST_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
-       ZEND_NULL_HANDLER,
-       ZEND_NULL_HANDLER,
-       ZEND_NULL_HANDLER,
-       ZEND_NULL_HANDLER,
-       ZEND_NULL_HANDLER,
+       ZEND_GOTO_SPEC_CONST_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
        ZEND_NULL_HANDLER,
index f581404080e3d958eae0b878773d5f6f3b08dd63..f3914158f3c2fb5d96ee9a714644330a08708b19 100644 (file)
 #define ZEND_FETCH_OBJ_UNSET                  97
 #define ZEND_FETCH_DIM_TMP_VAR                98
 #define ZEND_FETCH_CONSTANT                   99
+#define ZEND_GOTO                            100
 #define ZEND_EXT_STMT                        101
 #define ZEND_EXT_FCALL_BEGIN                 102
 #define ZEND_EXT_FCALL_END                   103
index c7911ed7a9f0ff07ab4432d55346fd58d105bdd6..e6b9fd544597b9936ba4634aa2a596a8bf7ad0a9 100644 (file)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.12.1 on Wed Oct 10 12:26:17 2007 */
+/* Generated by re2c 0.13.4.dev on Wed Mar 26 23:08:34 2008 */
 #line 1 "ext/standard/url_scanner_ex.re"
 /*
   +----------------------------------------------------------------------+
@@ -109,7 +109,10 @@ static inline void append_modified_url(smart_str *url, smart_str *dest, smart_st
        q = (p = url->c) + url->len;
 
 scan:
+
+#line 114 "ext/standard/url_scanner_ex.c"
 {
+       YYCTYPE yych;
        static const unsigned char yybm[] = {
                128, 128, 128, 128, 128, 128, 128, 128, 
                128, 128, 128, 128, 128, 128, 128, 128, 
@@ -145,42 +148,37 @@ scan:
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
 
-#line 149 "ext/standard/url_scanner_ex.c"
-       {
-               YYCTYPE yych;
-
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
-               if(yybm[0+yych] & 128) {
-                       goto yy8;
-               }
-               if(yych <= '9') goto yy6;
-               if(yych >= ';') goto yy4;
-               ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       if (yybm[0+yych] & 128) {
+               goto yy8;
+       }
+       if (yych <= '9') goto yy6;
+       if (yych >= ';') goto yy4;
+       ++YYCURSOR;
 #line 116 "ext/standard/url_scanner_ex.re"
-               { smart_str_append(dest, url); return; }
-#line 163 "ext/standard/url_scanner_ex.c"
+       { smart_str_append(dest, url); return; }
+#line 162 "ext/standard/url_scanner_ex.c"
 yy4:
-               ++YYCURSOR;
+       ++YYCURSOR;
 #line 117 "ext/standard/url_scanner_ex.re"
-               { sep = separator; goto scan; }
-#line 168 "ext/standard/url_scanner_ex.c"
+       { sep = separator; goto scan; }
+#line 167 "ext/standard/url_scanner_ex.c"
 yy6:
-               ++YYCURSOR;
+       ++YYCURSOR;
 #line 118 "ext/standard/url_scanner_ex.re"
-               { bash = p - 1; goto done; }
-#line 173 "ext/standard/url_scanner_ex.c"
+       { bash = p - 1; goto done; }
+#line 172 "ext/standard/url_scanner_ex.c"
 yy8:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
-               if(yybm[0+yych] & 128) {
-                       goto yy8;
-               }
-#line 119 "ext/standard/url_scanner_ex.re"
-               { goto scan; }
-#line 183 "ext/standard/url_scanner_ex.c"
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       if (yybm[0+yych] & 128) {
+               goto yy8;
        }
+#line 119 "ext/standard/url_scanner_ex.re"
+       { goto scan; }
+#line 182 "ext/standard/url_scanner_ex.c"
 }
 #line 120 "ext/standard/url_scanner_ex.re"
 
@@ -361,7 +359,10 @@ state_plain_begin:
        
 state_plain:
        start = YYCURSOR;
+
+#line 364 "ext/standard/url_scanner_ex.c"
 {
+       YYCTYPE yych;
        static const unsigned char yybm[] = {
                128, 128, 128, 128, 128, 128, 128, 128, 
                128, 128, 128, 128, 128, 128, 128, 128, 
@@ -396,37 +397,35 @@ state_plain:
                128, 128, 128, 128, 128, 128, 128, 128, 
                128, 128, 128, 128, 128, 128, 128, 128, 
        };
-
-#line 401 "ext/standard/url_scanner_ex.c"
-       {
-               YYCTYPE yych;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
-               if(yybm[0+yych] & 128) {
-                       goto yy15;
-               }
-               ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       if (yybm[0+yych] & 128) {
+               goto yy15;
+       }
+       ++YYCURSOR;
 #line 299 "ext/standard/url_scanner_ex.re"
-               { passthru(STD_ARGS); STATE = STATE_TAG; goto state_tag; }
-#line 412 "ext/standard/url_scanner_ex.c"
+       { passthru(STD_ARGS); STATE = STATE_TAG; goto state_tag; }
+#line 409 "ext/standard/url_scanner_ex.c"
 yy15:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
-               if(yybm[0+yych] & 128) {
-                       goto yy15;
-               }
-#line 300 "ext/standard/url_scanner_ex.re"
-               { passthru(STD_ARGS); goto state_plain; }
-#line 422 "ext/standard/url_scanner_ex.c"
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       if (yybm[0+yych] & 128) {
+               goto yy15;
        }
+#line 300 "ext/standard/url_scanner_ex.re"
+       { passthru(STD_ARGS); goto state_plain; }
+#line 419 "ext/standard/url_scanner_ex.c"
 }
 #line 301 "ext/standard/url_scanner_ex.re"
 
 
 state_tag:     
        start = YYCURSOR;
+
+#line 427 "ext/standard/url_scanner_ex.c"
 {
+       YYCTYPE yych;
        static const unsigned char yybm[] = {
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
@@ -461,42 +460,37 @@ state_tag:
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
        };
-
-#line 466 "ext/standard/url_scanner_ex.c"
-       {
-               YYCTYPE yych;
-               if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-               yych = *YYCURSOR;
-               if(yych <= '@') {
-                       if(yych != ':') goto yy22;
-               } else {
-                       if(yych <= 'Z') goto yy20;
-                       if(yych <= '`') goto yy22;
-                       if(yych >= '{') goto yy22;
-               }
+       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+       yych = *YYCURSOR;
+       if (yych <= '@') {
+               if (yych != ':') goto yy22;
+       } else {
+               if (yych <= 'Z') goto yy20;
+               if (yych <= '`') goto yy22;
+               if (yych >= '{') goto yy22;
+       }
 yy20:
-               ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy25;
+       ++YYCURSOR;
+       yych = *YYCURSOR;
+       goto yy25;
 yy21:
 #line 306 "ext/standard/url_scanner_ex.re"
-               { handle_tag(STD_ARGS); /* Sets STATE */; passthru(STD_ARGS); if (STATE == STATE_PLAIN) goto state_plain; else goto state_next_arg; }
-#line 485 "ext/standard/url_scanner_ex.c"
+       { handle_tag(STD_ARGS); /* Sets STATE */; passthru(STD_ARGS); if (STATE == STATE_PLAIN) goto state_plain; else goto state_next_arg; }
+#line 480 "ext/standard/url_scanner_ex.c"
 yy22:
-               ++YYCURSOR;
+       ++YYCURSOR;
 #line 307 "ext/standard/url_scanner_ex.re"
-               { passthru(STD_ARGS); goto state_plain_begin; }
-#line 490 "ext/standard/url_scanner_ex.c"
+       { passthru(STD_ARGS); goto state_plain_begin; }
+#line 485 "ext/standard/url_scanner_ex.c"
 yy24:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
 yy25:
-               if(yybm[0+yych] & 128) {
-                       goto yy24;
-               }
-               goto yy21;
+       if (yybm[0+yych] & 128) {
+               goto yy24;
        }
+       goto yy21;
 }
 #line 308 "ext/standard/url_scanner_ex.re"
 
@@ -506,7 +500,10 @@ state_next_arg_begin:
        
 state_next_arg:
        start = YYCURSOR;
+
+#line 505 "ext/standard/url_scanner_ex.c"
 {
+       YYCTYPE yych;
        static const unsigned char yybm[] = {
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0, 128, 128, 128,   0, 128,   0,   0, 
@@ -541,71 +538,69 @@ state_next_arg:
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
        };
-
-#line 546 "ext/standard/url_scanner_ex.c"
-       {
-               YYCTYPE yych;
-               if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-               yych = *YYCURSOR;
-               if(yych <= ' ') {
-                       if(yych <= 0x0C) {
-                               if(yych <= 0x08) goto yy34;
-                               if(yych <= 0x0B) goto yy30;
-                               goto yy34;
-                       } else {
-                               if(yych <= 0x0D) goto yy30;
-                               if(yych <= 0x1F) goto yy34;
-                               goto yy30;
-                       }
+       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+       yych = *YYCURSOR;
+       if (yych <= ' ') {
+               if (yych <= '\f') {
+                       if (yych <= 0x08) goto yy34;
+                       if (yych <= '\v') goto yy30;
+                       goto yy34;
                } else {
-                       if(yych <= '@') {
-                               if(yych != '>') goto yy34;
-                       } else {
-                               if(yych <= 'Z') goto yy32;
-                               if(yych <= '`') goto yy34;
-                               if(yych <= 'z') goto yy32;
-                               goto yy34;
-                       }
+                       if (yych <= '\r') goto yy30;
+                       if (yych <= 0x1F) goto yy34;
+                       goto yy30;
                }
-               ++YYCURSOR;
+       } else {
+               if (yych <= '@') {
+                       if (yych != '>') goto yy34;
+               } else {
+                       if (yych <= 'Z') goto yy32;
+                       if (yych <= '`') goto yy34;
+                       if (yych <= 'z') goto yy32;
+                       goto yy34;
+               }
+       }
+       ++YYCURSOR;
 #line 316 "ext/standard/url_scanner_ex.re"
-               { passthru(STD_ARGS); handle_form(STD_ARGS); goto state_plain_begin; }
-#line 574 "ext/standard/url_scanner_ex.c"
+       { passthru(STD_ARGS); handle_form(STD_ARGS); goto state_plain_begin; }
+#line 567 "ext/standard/url_scanner_ex.c"
 yy30:
-               ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy37;
+       ++YYCURSOR;
+       yych = *YYCURSOR;
+       goto yy37;
 yy31:
 #line 317 "ext/standard/url_scanner_ex.re"
-               { passthru(STD_ARGS); goto state_next_arg; }
-#line 582 "ext/standard/url_scanner_ex.c"
+       { passthru(STD_ARGS); goto state_next_arg; }
+#line 575 "ext/standard/url_scanner_ex.c"
 yy32:
-               ++YYCURSOR;
+       ++YYCURSOR;
 #line 318 "ext/standard/url_scanner_ex.re"
-               { --YYCURSOR; STATE = STATE_ARG; goto state_arg; }
-#line 587 "ext/standard/url_scanner_ex.c"
+       { --YYCURSOR; STATE = STATE_ARG; goto state_arg; }
+#line 580 "ext/standard/url_scanner_ex.c"
 yy34:
-               ++YYCURSOR;
+       ++YYCURSOR;
 #line 319 "ext/standard/url_scanner_ex.re"
-               { passthru(STD_ARGS); goto state_plain_begin; }
-#line 592 "ext/standard/url_scanner_ex.c"
+       { passthru(STD_ARGS); goto state_plain_begin; }
+#line 585 "ext/standard/url_scanner_ex.c"
 yy36:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
 yy37:
-               if(yybm[0+yych] & 128) {
-                       goto yy36;
-               }
-               goto yy31;
+       if (yybm[0+yych] & 128) {
+               goto yy36;
        }
+       goto yy31;
 }
 #line 320 "ext/standard/url_scanner_ex.re"
 
 
 state_arg:
        start = YYCURSOR;
+
+#line 602 "ext/standard/url_scanner_ex.c"
 {
+       YYCTYPE yych;
        static const unsigned char yybm[] = {
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
@@ -640,46 +635,44 @@ state_arg:
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
        };
-
-#line 645 "ext/standard/url_scanner_ex.c"
-       {
-               YYCTYPE yych;
-               if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-               yych = *YYCURSOR;
-               if(yych <= '@') goto yy42;
-               if(yych <= 'Z') goto yy40;
-               if(yych <= '`') goto yy42;
-               if(yych >= '{') goto yy42;
+       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+       yych = *YYCURSOR;
+       if (yych <= '@') goto yy42;
+       if (yych <= 'Z') goto yy40;
+       if (yych <= '`') goto yy42;
+       if (yych >= '{') goto yy42;
 yy40:
-               ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy45;
+       ++YYCURSOR;
+       yych = *YYCURSOR;
+       goto yy45;
 yy41:
 #line 325 "ext/standard/url_scanner_ex.re"
-               { passthru(STD_ARGS); handle_arg(STD_ARGS); STATE = STATE_BEFORE_VAL; goto state_before_val; }
-#line 661 "ext/standard/url_scanner_ex.c"
+       { passthru(STD_ARGS); handle_arg(STD_ARGS); STATE = STATE_BEFORE_VAL; goto state_before_val; }
+#line 652 "ext/standard/url_scanner_ex.c"
 yy42:
-               ++YYCURSOR;
+       ++YYCURSOR;
 #line 326 "ext/standard/url_scanner_ex.re"
-               { passthru(STD_ARGS); STATE = STATE_NEXT_ARG; goto state_next_arg; }
-#line 666 "ext/standard/url_scanner_ex.c"
+       { passthru(STD_ARGS); STATE = STATE_NEXT_ARG; goto state_next_arg; }
+#line 657 "ext/standard/url_scanner_ex.c"
 yy44:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
 yy45:
-               if(yybm[0+yych] & 128) {
-                       goto yy44;
-               }
-               goto yy41;
+       if (yybm[0+yych] & 128) {
+               goto yy44;
        }
+       goto yy41;
 }
 #line 327 "ext/standard/url_scanner_ex.re"
 
 
 state_before_val:
        start = YYCURSOR;
+
+#line 674 "ext/standard/url_scanner_ex.c"
 {
+       YYCTYPE yych;
        static const unsigned char yybm[] = {
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
@@ -714,52 +707,47 @@ state_before_val:
                  0,   0,   0,   0,   0,   0,   0,   0, 
                  0,   0,   0,   0,   0,   0,   0,   0, 
        };
-
-#line 719 "ext/standard/url_scanner_ex.c"
-       {
-               YYCTYPE yych;
-               if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-               yych = *YYCURSOR;
-               if(yych == ' ') goto yy48;
-               if(yych == '=') goto yy50;
-               goto yy52;
+       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+       yych = *YYCURSOR;
+       if (yych == ' ') goto yy48;
+       if (yych == '=') goto yy50;
+       goto yy52;
 yy48:
-               yych = *(YYMARKER = ++YYCURSOR);
-               if(yych == ' ') goto yy55;
-               if(yych == '=') goto yy53;
+       yych = *(YYMARKER = ++YYCURSOR);
+       if (yych == ' ') goto yy55;
+       if (yych == '=') goto yy53;
 yy49:
 #line 333 "ext/standard/url_scanner_ex.re"
-               { --YYCURSOR; goto state_next_arg_begin; }
-#line 734 "ext/standard/url_scanner_ex.c"
+       { --YYCURSOR; goto state_next_arg_begin; }
+#line 723 "ext/standard/url_scanner_ex.c"
 yy50:
-               ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy54;
+       ++YYCURSOR;
+       yych = *YYCURSOR;
+       goto yy54;
 yy51:
 #line 332 "ext/standard/url_scanner_ex.re"
-               { passthru(STD_ARGS); STATE = STATE_VAL; goto state_val; }
-#line 742 "ext/standard/url_scanner_ex.c"
+       { passthru(STD_ARGS); STATE = STATE_VAL; goto state_val; }
+#line 731 "ext/standard/url_scanner_ex.c"
 yy52:
-               yych = *++YYCURSOR;
-               goto yy49;
+       yych = *++YYCURSOR;
+       goto yy49;
 yy53:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
 yy54:
-               if(yybm[0+yych] & 128) {
-                       goto yy53;
-               }
-               goto yy51;
-yy55:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
-               if(yych == ' ') goto yy55;
-               if(yych == '=') goto yy53;
-               YYCURSOR = YYMARKER;
-               goto yy49;
+       if (yybm[0+yych] & 128) {
+               goto yy53;
        }
+       goto yy51;
+yy55:
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       if (yych == ' ') goto yy55;
+       if (yych == '=') goto yy53;
+       YYCURSOR = YYMARKER;
+       goto yy49;
 }
 #line 334 "ext/standard/url_scanner_ex.re"
 
@@ -767,7 +755,10 @@ yy55:
 
 state_val:
        start = YYCURSOR;
+
+#line 760 "ext/standard/url_scanner_ex.c"
 {
+       YYCTYPE yych;
        static const unsigned char yybm[] = {
                248, 248, 248, 248, 248, 248, 248, 248, 
                248, 160, 160, 248, 248, 160, 248, 248, 
@@ -802,119 +793,114 @@ state_val:
                248, 248, 248, 248, 248, 248, 248, 248, 
                248, 248, 248, 248, 248, 248, 248, 248, 
        };
-
-#line 807 "ext/standard/url_scanner_ex.c"
-       {
-               YYCTYPE yych;
-               if((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
-               yych = *YYCURSOR;
-               if(yych <= ' ') {
-                       if(yych <= 0x0C) {
-                               if(yych <= 0x08) goto yy63;
-                               if(yych <= 0x0A) goto yy64;
-                               goto yy63;
-                       } else {
-                               if(yych <= 0x0D) goto yy64;
-                               if(yych <= 0x1F) goto yy63;
-                               goto yy64;
-                       }
+       if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3);
+       yych = *YYCURSOR;
+       if (yych <= ' ') {
+               if (yych <= '\f') {
+                       if (yych <= 0x08) goto yy63;
+                       if (yych <= '\n') goto yy64;
+                       goto yy63;
+               } else {
+                       if (yych <= '\r') goto yy64;
+                       if (yych <= 0x1F) goto yy63;
+                       goto yy64;
+               }
+       } else {
+               if (yych <= '&') {
+                       if (yych != '"') goto yy63;
                } else {
-                       if(yych <= '&') {
-                               if(yych != '"') goto yy63;
-                       } else {
-                               if(yych <= '\'') goto yy62;
-                               if(yych == '>') goto yy64;
-                               goto yy63;
-                       }
+                       if (yych <= '\'') goto yy62;
+                       if (yych == '>') goto yy64;
+                       goto yy63;
                }
-               yych = *(YYMARKER = ++YYCURSOR);
-               goto yy77;
+       }
+       yych = *(YYMARKER = ++YYCURSOR);
+       goto yy77;
 yy61:
 #line 342 "ext/standard/url_scanner_ex.re"
-               { handle_val(STD_ARGS, 0, ' '); goto state_next_arg_begin; }
-#line 836 "ext/standard/url_scanner_ex.c"
+       { handle_val(STD_ARGS, 0, ' '); goto state_next_arg_begin; }
+#line 823 "ext/standard/url_scanner_ex.c"
 yy62:
-               yych = *(YYMARKER = ++YYCURSOR);
-               goto yy69;
+       yych = *(YYMARKER = ++YYCURSOR);
+       goto yy69;
 yy63:
-               yych = *++YYCURSOR;
-               goto yy67;
+       yych = *++YYCURSOR;
+       goto yy67;
 yy64:
-               ++YYCURSOR;
+       ++YYCURSOR;
 #line 343 "ext/standard/url_scanner_ex.re"
-               { passthru(STD_ARGS); goto state_next_arg_begin; }
-#line 847 "ext/standard/url_scanner_ex.c"
+       { passthru(STD_ARGS); goto state_next_arg_begin; }
+#line 834 "ext/standard/url_scanner_ex.c"
 yy66:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
 yy67:
-               if(yybm[0+yych] & 8) {
-                       goto yy66;
-               }
-               goto yy61;
+       if (yybm[0+yych] & 8) {
+               goto yy66;
+       }
+       goto yy61;
 yy68:
-               YYMARKER = ++YYCURSOR;
-               if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-               yych = *YYCURSOR;
+       YYMARKER = ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+       yych = *YYCURSOR;
 yy69:
-               if(yybm[0+yych] & 16) {
-                       goto yy68;
-               }
-               if(yych <= '&') goto yy72;
-               if(yych >= '(') goto yy61;
-               ++YYCURSOR;
-               if(yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy66;
-               }
+       if (yybm[0+yych] & 16) {
+               goto yy68;
+       }
+       if (yych <= '&') goto yy72;
+       if (yych >= '(') goto yy61;
+       ++YYCURSOR;
+       if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               goto yy66;
+       }
 yy71:
 #line 341 "ext/standard/url_scanner_ex.re"
-               { handle_val(STD_ARGS, 1, '\''); goto state_next_arg_begin; }
-#line 874 "ext/standard/url_scanner_ex.c"
+       { handle_val(STD_ARGS, 1, '\''); goto state_next_arg_begin; }
+#line 861 "ext/standard/url_scanner_ex.c"
 yy72:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
-               if(yybm[0+yych] & 32) {
-                       goto yy72;
-               }
-               if(yych <= '=') goto yy75;
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       if (yybm[0+yych] & 32) {
+               goto yy72;
+       }
+       if (yych <= '=') goto yy75;
 yy74:
-               YYCURSOR = YYMARKER;
-               goto yy61;
+       YYCURSOR = YYMARKER;
+       goto yy61;
 yy75:
-               yych = *++YYCURSOR;
-               goto yy71;
+       yych = *++YYCURSOR;
+       goto yy71;
 yy76:
-               YYMARKER = ++YYCURSOR;
-               if((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
-               yych = *YYCURSOR;
+       YYMARKER = ++YYCURSOR;
+       if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+       yych = *YYCURSOR;
 yy77:
-               if(yybm[0+yych] & 64) {
-                       goto yy76;
-               }
-               if(yych <= '!') goto yy80;
-               if(yych >= '#') goto yy61;
-               ++YYCURSOR;
-               if(yybm[0+(yych = *YYCURSOR)] & 8) {
-                       goto yy66;
-               }
+       if (yybm[0+yych] & 64) {
+               goto yy76;
+       }
+       if (yych <= '!') goto yy80;
+       if (yych >= '#') goto yy61;
+       ++YYCURSOR;
+       if (yybm[0+(yych = *YYCURSOR)] & 8) {
+               goto yy66;
+       }
 yy79:
 #line 340 "ext/standard/url_scanner_ex.re"
-               { handle_val(STD_ARGS, 1, '"'); goto state_next_arg_begin; }
-#line 906 "ext/standard/url_scanner_ex.c"
+       { handle_val(STD_ARGS, 1, '"'); goto state_next_arg_begin; }
+#line 893 "ext/standard/url_scanner_ex.c"
 yy80:
-               ++YYCURSOR;
-               if(YYLIMIT == YYCURSOR) YYFILL(1);
-               yych = *YYCURSOR;
-               if(yybm[0+yych] & 128) {
-                       goto yy80;
-               }
-               if(yych >= '>') goto yy74;
-               ++YYCURSOR;
-               yych = *YYCURSOR;
-               goto yy79;
+       ++YYCURSOR;
+       if (YYLIMIT <= YYCURSOR) YYFILL(1);
+       yych = *YYCURSOR;
+       if (yybm[0+yych] & 128) {
+               goto yy80;
        }
+       if (yych >= '>') goto yy74;
+       ++YYCURSOR;
+       yych = *YYCURSOR;
+       goto yy79;
 }
 #line 344 "ext/standard/url_scanner_ex.re"