pajoye                                   Sat, 23 Jul 2011 20:23:21 +0000

Revision: http://svn.php.net/viewvc?view=revision&revision=313641

Log:
- add short array syntax as defined in 
https://wiki.php.net/rfc/shortsyntaxforarrays, 2nd solution using => only

Changed paths:
    U   php/php-src/branches/PHP_5_4/UPGRADING
    U   php/php-src/branches/PHP_5_4/Zend/zend_ini_scanner.c
    U   php/php-src/branches/PHP_5_4/Zend/zend_language_parser.y
    A   php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_001.phpt
    A   php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_002.phpt
    A   php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_003.phpt
    A   php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_005.phpt
    U   php/php-src/trunk/UPGRADING
    U   php/php-src/trunk/Zend/zend_language_parser.y
    A   php/php-src/trunk/tests/lang/array_shortcut_001.phpt
    A   php/php-src/trunk/tests/lang/array_shortcut_002.phpt
    A   php/php-src/trunk/tests/lang/array_shortcut_003.phpt
    A   php/php-src/trunk/tests/lang/array_shortcut_005.phpt

Modified: php/php-src/branches/PHP_5_4/UPGRADING
===================================================================
--- php/php-src/branches/PHP_5_4/UPGRADING	2011-07-23 19:08:43 UTC (rev 313640)
+++ php/php-src/branches/PHP_5_4/UPGRADING	2011-07-23 20:23:21 UTC (rev 313641)
@@ -456,5 +456,10 @@
        - fnv132
        - fnv164
        - joaat
+
+     k. New Syntax
+       - Short array syntax
+         $a = [1, 2, 3, 4];
+         $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];
+         $a = ['one' => 1, 2, 'three' => 3, 4];

-

Modified: php/php-src/branches/PHP_5_4/Zend/zend_ini_scanner.c
===================================================================
--- php/php-src/branches/PHP_5_4/Zend/zend_ini_scanner.c	2011-07-23 19:08:43 UTC (rev 313640)
+++ php/php-src/branches/PHP_5_4/Zend/zend_ini_scanner.c	2011-07-23 20:23:21 UTC (rev 313641)
@@ -1,4 +1,4 @@
-/* Generated by re2c 0.13.5 on Wed Jun 29 02:53:12 2011 */
+/* Generated by re2c 0.13.5 on Mon Jan 17 14:03:33 2011 */
 #line 1 "Zend/zend_ini_scanner.l"
 /*
    +----------------------------------------------------------------------+

Modified: php/php-src/branches/PHP_5_4/Zend/zend_language_parser.y
===================================================================
--- php/php-src/branches/PHP_5_4/Zend/zend_language_parser.y	2011-07-23 19:08:43 UTC (rev 313640)
+++ php/php-src/branches/PHP_5_4/Zend/zend_language_parser.y	2011-07-23 20:23:21 UTC (rev 313641)
@@ -761,6 +761,7 @@
 	|	'@' { zend_do_begin_silence(&$1 TSRMLS_CC); } expr { zend_do_end_silence(&$1 TSRMLS_CC); $$ = $3; }
 	|	scalar				{ $$ = $1; }
 	|	T_ARRAY '(' array_pair_list ')' { $$ = $3; }
+ 	|	'[' array_pair_list ']' { $$ = $2; }
 	|	'`' backticks_expr '`' { zend_do_shell_exec(&$$, &$2 TSRMLS_CC); }
 	|	T_PRINT expr  { zend_do_print(&$$, &$2 TSRMLS_CC); }
 	|	function is_reference '(' { zend_do_begin_lambda_function_declaration(&$$, &$1, $2.op_type, 0 TSRMLS_CC); }
@@ -894,6 +895,7 @@
 	|	'+' static_scalar { ZVAL_LONG(&$1.u.constant, 0); add_function(&$2.u.constant, &$1.u.constant, &$2.u.constant TSRMLS_CC); $$ = $2; }
 	|	'-' static_scalar { ZVAL_LONG(&$1.u.constant, 0); sub_function(&$2.u.constant, &$1.u.constant, &$2.u.constant TSRMLS_CC); $$ = $2; }
 	|	T_ARRAY '(' static_array_pair_list ')' { $$ = $3; Z_TYPE($$.u.constant) = IS_CONSTANT_ARRAY; }
+	|	'[' static_array_pair_list ']' { $$ = $2; Z_TYPE($$.u.constant) = IS_CONSTANT_ARRAY; }
 	|	static_class_constant { $$ = $1; }
 ;


Added: php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_001.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_001.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_001.phpt	2011-07-23 20:23:21 UTC (rev 313641)
@@ -0,0 +1,13 @@
+--TEST--
+Square bracket array shortcut test
+--FILE--
+<?php
+print_r([1, 2, 3]);
+?>
+--EXPECT--
+Array
+(
+    [0] => 1
+    [1] => 2
+    [2] => 3
+)

Added: php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_002.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_002.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_002.phpt	2011-07-23 20:23:21 UTC (rev 313641)
@@ -0,0 +1,13 @@
+--TEST--
+Square bracket associative array shortcut test
+--FILE--
+<?php
+print_r(["foo" => "orange", "bar" => "apple", "baz" => "lemon"]);
+?>
+--EXPECT--
+Array
+(
+    [foo] => orange
+    [bar] => apple
+    [baz] => lemon
+)

Added: php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_003.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_003.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_003.phpt	2011-07-23 20:23:21 UTC (rev 313641)
@@ -0,0 +1,13 @@
+--TEST--
+Testing array shortcut and bracket operator
+--FILE--
+<?php
+$a = [1, 2, 3, 4, 5];
+print_r([$a[1], $a[3]]);
+?>
+--EXPECT--
+Array
+(
+    [0] => 2
+    [1] => 4
+)

Added: php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_005.phpt
===================================================================
--- php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_005.phpt	                        (rev 0)
+++ php/php-src/branches/PHP_5_4/tests/lang/array_shortcut_005.phpt	2011-07-23 20:23:21 UTC (rev 313641)
@@ -0,0 +1,20 @@
+--TEST--
+Testing nested array shortcut
+--FILE--
+<?php
+print_r([1, 2, 3, ["foo" => "orange", "bar" => "apple", "baz" => "lemon"]]);
+?>
+--EXPECT--
+Array
+(
+    [0] => 1
+    [1] => 2
+    [2] => 3
+    [3] => Array
+        (
+            [foo] => orange
+            [bar] => apple
+            [baz] => lemon
+        )
+
+)

Modified: php/php-src/trunk/UPGRADING
===================================================================
--- php/php-src/trunk/UPGRADING	2011-07-23 19:08:43 UTC (rev 313640)
+++ php/php-src/trunk/UPGRADING	2011-07-23 20:23:21 UTC (rev 313641)
@@ -448,4 +448,8 @@
        - fnv164
        - joaat

-
+     k. New Syntax
+       - Short array syntax
+         $a = [1, 2, 3, 4];
+         $a = ['one' => 1, 'two' => 2, 'three' => 3, 'four' => 4];
+         $a = ['one' => 1, 2, 'three' => 3, 4];

Modified: php/php-src/trunk/Zend/zend_language_parser.y
===================================================================
--- php/php-src/trunk/Zend/zend_language_parser.y	2011-07-23 19:08:43 UTC (rev 313640)
+++ php/php-src/trunk/Zend/zend_language_parser.y	2011-07-23 20:23:21 UTC (rev 313641)
@@ -761,6 +761,7 @@
 	|	'@' { zend_do_begin_silence(&$1 TSRMLS_CC); } expr { zend_do_end_silence(&$1 TSRMLS_CC); $$ = $3; }
 	|	scalar				{ $$ = $1; }
 	|	T_ARRAY '(' array_pair_list ')' { $$ = $3; }
+ 	|	'[' array_pair_list ']' { $$ = $2; }
 	|	'`' backticks_expr '`' { zend_do_shell_exec(&$$, &$2 TSRMLS_CC); }
 	|	T_PRINT expr  { zend_do_print(&$$, &$2 TSRMLS_CC); }
 	|	function is_reference '(' { zend_do_begin_lambda_function_declaration(&$$, &$1, $2.op_type, 0 TSRMLS_CC); }
@@ -894,6 +895,7 @@
 	|	'+' static_scalar { ZVAL_LONG(&$1.u.constant, 0); add_function(&$2.u.constant, &$1.u.constant, &$2.u.constant TSRMLS_CC); $$ = $2; }
 	|	'-' static_scalar { ZVAL_LONG(&$1.u.constant, 0); sub_function(&$2.u.constant, &$1.u.constant, &$2.u.constant TSRMLS_CC); $$ = $2; }
 	|	T_ARRAY '(' static_array_pair_list ')' { $$ = $3; Z_TYPE($$.u.constant) = IS_CONSTANT_ARRAY; }
+	|	'[' static_array_pair_list ']' { $$ = $2; Z_TYPE($$.u.constant) = IS_CONSTANT_ARRAY; }
 	|	static_class_constant { $$ = $1; }
 ;


Added: php/php-src/trunk/tests/lang/array_shortcut_001.phpt
===================================================================
--- php/php-src/trunk/tests/lang/array_shortcut_001.phpt	                        (rev 0)
+++ php/php-src/trunk/tests/lang/array_shortcut_001.phpt	2011-07-23 20:23:21 UTC (rev 313641)
@@ -0,0 +1,13 @@
+--TEST--
+Square bracket array shortcut test
+--FILE--
+<?php
+print_r([1, 2, 3]);
+?>
+--EXPECT--
+Array
+(
+    [0] => 1
+    [1] => 2
+    [2] => 3
+)

Added: php/php-src/trunk/tests/lang/array_shortcut_002.phpt
===================================================================
--- php/php-src/trunk/tests/lang/array_shortcut_002.phpt	                        (rev 0)
+++ php/php-src/trunk/tests/lang/array_shortcut_002.phpt	2011-07-23 20:23:21 UTC (rev 313641)
@@ -0,0 +1,13 @@
+--TEST--
+Square bracket associative array shortcut test
+--FILE--
+<?php
+print_r(["foo" => "orange", "bar" => "apple", "baz" => "lemon"]);
+?>
+--EXPECT--
+Array
+(
+    [foo] => orange
+    [bar] => apple
+    [baz] => lemon
+)

Added: php/php-src/trunk/tests/lang/array_shortcut_003.phpt
===================================================================
--- php/php-src/trunk/tests/lang/array_shortcut_003.phpt	                        (rev 0)
+++ php/php-src/trunk/tests/lang/array_shortcut_003.phpt	2011-07-23 20:23:21 UTC (rev 313641)
@@ -0,0 +1,13 @@
+--TEST--
+Testing array shortcut and bracket operator
+--FILE--
+<?php
+$a = [1, 2, 3, 4, 5];
+print_r([$a[1], $a[3]]);
+?>
+--EXPECT--
+Array
+(
+    [0] => 2
+    [1] => 4
+)

Added: php/php-src/trunk/tests/lang/array_shortcut_005.phpt
===================================================================
--- php/php-src/trunk/tests/lang/array_shortcut_005.phpt	                        (rev 0)
+++ php/php-src/trunk/tests/lang/array_shortcut_005.phpt	2011-07-23 20:23:21 UTC (rev 313641)
@@ -0,0 +1,20 @@
+--TEST--
+Testing nested array shortcut
+--FILE--
+<?php
+print_r([1, 2, 3, ["foo" => "orange", "bar" => "apple", "baz" => "lemon"]]);
+?>
+--EXPECT--
+Array
+(
+    [0] => 1
+    [1] => 2
+    [2] => 3
+    [3] => Array
+        (
+            [foo] => orange
+            [bar] => apple
+            [baz] => lemon
+        )
+
+)
-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to