Author: bernhard
Date: Sat Jan 3 06:57:53 2009
New Revision: 34883
Modified:
trunk/languages/pipp/pipp.pir
trunk/languages/pipp/t/php/superglobals.t
Log:
[Pipp] Simplify set_superglobals()
Modified: trunk/languages/pipp/pipp.pir
==============================================================================
--- trunk/languages/pipp/pipp.pir (original)
+++ trunk/languages/pipp/pipp.pir Sat Jan 3 06:57:53 2009
@@ -299,47 +299,42 @@
.end
# Most of the superglobals are not initialized yet
-# When adding superglobals, please alse add then in the rule TOP of actions.pm
+# When adding superglobals, please alse add them to @?SUPER_GLOBALS in
actions.pm
.sub set_superglobals
# the superglobals _GET and _POST need to be set up
- .local pmc parse_get_sub, superglobal_GET
+ .local pmc parse_get_sub
parse_get_sub = get_root_global ['parrot';'CGI'; 'QueryHash'],
'parse_get'
- ( superglobal_GET ) = parse_get_sub()
- set_root_global ['pipp'], '$_GET', superglobal_GET
+ ( $P0 ) = parse_get_sub()
+ set_root_global ['pipp'], '$_GET', $P0
- .local pmc parse_post_sub, superglobal_POST
+ .local pmc parse_post_sub
parse_post_sub = get_root_global ['parrot';'CGI';'QueryHash'],
'parse_post'
- ( superglobal_POST ) = parse_post_sub()
- set_root_global ['pipp'], '$_POST', superglobal_POST
+ ( $P0 ) = parse_post_sub()
+ set_root_global ['pipp'], '$_POST', $P0
- .local pmc superglobal_SERVER
- superglobal_SERVER = new 'PhpArray'
- set_root_global ['pipp'], '$_SERVER', superglobal_SERVER
-
- .local pmc superglobal_GLOBALS
- superglobal_GLOBALS = new 'PhpArray'
- set_root_global ['pipp'], '$_GLOBALS', superglobal_GLOBALS
-
- .local pmc superglobal_FILES
- superglobal_FILES = new 'PhpArray'
- set_root_global ['pipp'], '$_FILES', superglobal_FILES
-
- .local pmc superglobal_COOKIE
- superglobal_COOKIE = new 'PhpArray'
- set_root_global ['pipp'], '$_COOKIE', superglobal_COOKIE
-
- .local pmc superglobal_SESSION
- superglobal_SESSION = new 'PhpArray'
- set_root_global ['pipp'], '$_SESSION', superglobal_SESSION
-
- .local pmc superglobal_REQUEST
- superglobal_REQUEST = new 'PhpArray'
- set_root_global ['pipp'], '$_REQUEST', superglobal_REQUEST
-
- .local pmc superglobal_ENV
- superglobal_ENV = new 'PhpArray'
- set_root_global ['pipp'], '$_ENV', superglobal_ENV
+ $P0 = new 'PhpArray'
+ set_root_global ['pipp'], '$_SERVER', $P0
+
+ $P0 = new 'PhpArray'
+ set_root_global ['pipp'], '$_GLOBALS', $P0
+
+ $P0 = new 'PhpArray'
+ set_root_global ['pipp'], '$_FILES', $P0
+
+ $P0 = new 'PhpArray'
+ set_root_global ['pipp'], '$_COOKIE', $P0
+
+ $P0 = new 'PhpArray'
+ $P0['name'] = '$_SESSION' # dummy content
+ set_root_global ['pipp'], '$_SESSION', $P0
+
+ $P0 = new 'PhpArray'
+ $P0['name'] = '$_REQUEST' # dummy content
+ set_root_global ['pipp'], '$_REQUEST', $P0
+
+ $P0 = new 'PhpArray'
+ set_root_global ['pipp'], '$_ENV', $P0
.end
Modified: trunk/languages/pipp/t/php/superglobals.t
==============================================================================
--- trunk/languages/pipp/t/php/superglobals.t (original)
+++ trunk/languages/pipp/t/php/superglobals.t Sat Jan 3 06:57:53 2009
@@ -31,6 +31,21 @@
cgi-fcgi
OUT
+language_output_is( 'Pipp', <<'CODE', <<'OUT', 'using two superglobals' );
+<?php
+
+echo $_REQUEST['name'];
+echo "\n";
+
+echo $_SESSION['name'];
+echo "\n";
+
+?>
+CODE
+$_REQUEST
+$_SESSION
+OUT
+
$ENV{REQUEST_TYPE} = 'GET';
$ENV{QUERY_STRING} = 'as=df';