Author: bernhard
Date: Fri Jan 16 10:19:22 2009
New Revision: 35640

Modified:
   trunk/languages/pipp/src/common/php_MACRO.pir
   trunk/languages/pipp/src/common/php_basic.pir
   trunk/languages/pipp/src/common/php_builtin.pir
   trunk/languages/pipp/src/common/php_info.pir

Log:
[Pipp] Use package vars for constants

Modified: trunk/languages/pipp/src/common/php_MACRO.pir
==============================================================================
--- trunk/languages/pipp/src/common/php_MACRO.pir       (original)
+++ trunk/languages/pipp/src/common/php_MACRO.pir       Fri Jan 16 10:19:22 2009
@@ -33,15 +33,13 @@
 .macro REGISTER_LONG_CONSTANT(symb, val)
     new $P0, 'PhpInteger'
     set $P0, .val
-    $P44 = get_hll_global 'php_constants'
-    $P44[.symb] = $P0
+    set_hll_global .symb, $P0
 .endm
 
 .macro REGISTER_STRING_CONSTANT(symb, val)
     new $P0, 'PhpString'
     set $P0, .val
-    $P44 = get_hll_global 'php_constants'
-    $P44[.symb] = $P0
+    set_hll_global .symb, $P0
 .endm
 
 =item C<.RETURN_BOOL( val )>

Modified: trunk/languages/pipp/src/common/php_basic.pir
==============================================================================
--- trunk/languages/pipp/src/common/php_basic.pir       (original)
+++ trunk/languages/pipp/src/common/php_basic.pir       Fri Jan 16 10:19:22 2009
@@ -100,15 +100,14 @@
     .RETURN_NULL()
   L1:
     $P1 = shift args
-    $S1 = $P1
-    .local pmc cst
-    cst = get_hll_global 'php_constants'
-    $I0 = exists cst[$S1]
-    unless $I0 goto L2
-    $P0 = cst[$S1]
-    .return ($P0)
+    .local string name
+    name = $P1
+    .local pmc val
+    val = get_hll_global name
+    if_null val, L2
+    .return (val)
   L2:
-    error(E_WARNING, "Couldn't find constant ", $S1)
+    error(E_WARNING, "Couldn't find constant ", name)
     .RETURN_NULL()
 .end
 

Modified: trunk/languages/pipp/src/common/php_builtin.pir
==============================================================================
--- trunk/languages/pipp/src/common/php_builtin.pir     (original)
+++ trunk/languages/pipp/src/common/php_builtin.pir     Fri Jan 16 10:19:22 2009
@@ -112,12 +112,12 @@
     error(E_WARNING,"Constants may only evaluate to scalar values")
     .RETURN_FALSE()
   L4:
-    $S1 = $P1
-    .local pmc cst
-    cst = get_hll_global 'php_constants'
-    $I0 = exists cst[$S1]
-    if $I0 goto L6
-    cst[$S1] = $P2
+    .local string name
+    name = $P1
+    .local pmc val
+    val = get_hll_global name
+    unless null val goto L6        # don't overwrite an existing value
+    set_hll_global name, $P2
     .RETURN_TRUE()
   L6:
     .RETURN_FALSE()
@@ -139,10 +139,13 @@
     .RETURN_NULL()
   L1:
     $P1 = shift args
-    $S1 = $P1
-    .local pmc cst
-    cst = get_hll_global 'php_constants'
-    $I0 = exists cst[$S1]
+    .local string name
+    name = $P1
+    .local pmc val
+    val = get_hll_global name
+    $I0 = isnull val    # check the nullness and invert it
+    $I0 = $I0 - 1
+    $I0 = neg $I0
 
     .RETURN_BOOL($I0)
 .end

Modified: trunk/languages/pipp/src/common/php_info.pir
==============================================================================
--- trunk/languages/pipp/src/common/php_info.pir        (original)
+++ trunk/languages/pipp/src/common/php_info.pir        Fri Jan 16 10:19:22 2009
@@ -35,10 +35,8 @@
     .REGISTER_STRING_CONSTANT('DEFAULT_INCLUDE_PATH', '.')
 
     # register NULL
-    .local pmc cst
-    cst = get_hll_global 'php_constants'
     new $P0, 'PhpNull'
-    cst['NULL'] = $P0
+    set_hll_global 'NULL', $P0
 
 .end
 

Reply via email to