Author: mdiep
Date: Sat Aug 13 17:18:20 2005
New Revision: 8947
Modified:
trunk/languages/tcl/lib/expression.pir
Log:
tcl: Clean up __expr_get_number before adding to it.
Modified: trunk/languages/tcl/lib/expression.pir
==============================================================================
--- trunk/languages/tcl/lib/expression.pir (original)
+++ trunk/languages/tcl/lib/expression.pir Sat Aug 13 17:18:20 2005
@@ -627,39 +627,30 @@ evaluation_return:
.local int len
len = length expr
- .local int pos
- .local int char
- .local int flag
+ .local int pos
.local pmc value
- value = new Integer
+ null value
pos = start
if pos >= len goto failure
decimal:
- flag = 0
-loop:
# cheat
if pos >= len goto loop_done
$I0 = ord expr, pos
if $I0 > 57 goto loop_done # > "9"
if $I0 < 48 goto loop_done # < "0"
- flag = 1
inc pos
- goto loop
+ goto decimal
loop_done:
- pos = pos - start
- if flag == 1 goto finish_up
-
-failure:
- pos = 0
- goto real_done
+ pos -= start
+ if pos == 0 goto real_done # failure
finish_up:
$S0 = substr expr, start, pos
$I0 = $S0
value = new TclInt
- value = $I0
+ value = $I0
real_done:
.return(pos,value)