Author: mdiep
Date: Fri Aug 12 14:10:57 2005
New Revision: 8932
Modified:
trunk/languages/tcl/lib/expression.pir
trunk/languages/tcl/lib/list.pir
trunk/languages/tcl/lib/string.pir
Log:
Change __expr_get_number to return a TclInt instead of a TclList with a TclInt
Modified: trunk/languages/tcl/lib/expression.pir
==============================================================================
--- trunk/languages/tcl/lib/expression.pir (original)
+++ trunk/languages/tcl/lib/expression.pir Fri Aug 12 14:10:57 2005
@@ -187,7 +187,10 @@ get_number:
if op_length == 0 goto get_operator
# XXX otherwise, pull that number off
# stuff the chunk onto the chunk_list
- push chunks, value
+ chunk = new TclList
+ chunk[0] = INTEGER
+ chunk[1] = value
+ push chunks, chunk
chunk_start = chunk_start + op_length
goto chunk_loop
@@ -735,9 +738,8 @@ failure:
finish_up:
$S0 = substr expr, start, pos
$I0 = $S0
- value = new TclList
- value[0] = INTEGER
- value[1] = $I0
+ value = new TclInt
+ value = $I0
real_done:
.return(pos,INTEGER,value)
@@ -950,7 +952,6 @@ was this a valid tcl-style level, or did
.sub __get_call_level
.param pmc tcl_level
.local pmc parrot_level, defaulted, orig_level
- parrot_level = new Integer
defaulted = new Integer
defaulted = 0
@@ -959,7 +960,6 @@ was this a valid tcl-style level, or did
orig_level = current_call_level
.local int num_length, num_type
- .local pmc num_result
get_absolute:
# Is this an absolute?
@@ -967,25 +967,23 @@ get_absolute:
$S1 = substr $S0, 0, 1
if $S1 != "#" goto get_integer
$S0 = tcl_level
- (num_length,num_type,num_result) = __expr_get_number($S0,1)
+ (num_length,num_type,parrot_level) = __expr_get_number($S0,1)
if num_type != INTEGER goto default
$S0 = tcl_level
$I0 = length $S0
dec $I0
if $I0 != num_length goto default
- parrot_level = num_result[1]
goto bounds_check
get_integer:
# Is this an integer?
$S0 = tcl_level
- (num_length,num_type,num_result) = __expr_get_number($S0,0)
+ (num_length,num_type,parrot_level) = __expr_get_number($S0,0)
if num_type != INTEGER goto default
$S0 = tcl_level
$I0 = length $S0
if $I0 != num_length goto default
- parrot_level = num_result[1]
parrot_level = orig_level - parrot_level
goto bounds_check
Modified: trunk/languages/tcl/lib/list.pir
==============================================================================
--- trunk/languages/tcl/lib/list.pir (original)
+++ trunk/languages/tcl/lib/list.pir Fri Aug 12 14:10:57 2005
@@ -28,10 +28,9 @@
$S0 = substr position, 0, 4
if $S0 == "end-" goto has_end
index_length = length position
- (number_length,number_type,number_result) = __expr_get_number(position,0)
+ (number_length,number_type,retval) = __expr_get_number(position,0)
if number_type != INTEGER goto bad_arg
if number_length != index_length goto bad_arg
- retval = number_result[1]
# if the number is greater than the number of elements
# in the list, we want the end
@@ -60,7 +59,7 @@ has_end:
if number_type != INTEGER goto bad_arg
if number_length != index_length goto bad_arg
# say, 1 if -1
- $I0 = number_result[1]
+ $I0 = number_result
# say, 2 if -2
inc $I0
Modified: trunk/languages/tcl/lib/string.pir
==============================================================================
--- trunk/languages/tcl/lib/string.pir (original)
+++ trunk/languages/tcl/lib/string.pir Fri Aug 12 14:10:57 2005
@@ -31,10 +31,9 @@
if $S0 == "end-" goto has_end
index_length = length $S0
# is this an int?
- (number_length,number_type,number_result) = __expr_get_number(position,0)
+ (number_length,number_type,retval) = __expr_get_number(position,0)
if number_type != INTEGER goto bad_arg
if number_length != index_length goto bad_arg
- retval = number_result[1]
goto done
#if not, fail.
@@ -55,7 +54,7 @@ has_end:
if number_type != INTEGER goto bad_arg
if number_length != index_length goto bad_arg
# say, 1 if -1
- $I0 = number_result[1]
+ $I0 = number_result
# say, 2 if -2
inc $I0