Author: mdiep
Date: Thu Aug 11 09:49:40 2005
New Revision: 8917

Modified:
   trunk/languages/tcl/lib/expression.pir
Log:
tcl: Use '=' assignment form of opcodes in expr code

Modified: trunk/languages/tcl/lib/expression.pir
==============================================================================
--- trunk/languages/tcl/lib/expression.pir      (original)
+++ trunk/languages/tcl/lib/expression.pir      Thu Aug 11 09:49:40 2005
@@ -20,9 +20,10 @@ however, then we're returning the invoka
   .param string expr
   .param pmc foo
   
-  .local int return_type  # TCL return code
+  .local pmc retval
+  .local int return_type
   return_type = TCL_OK
-  .local pmc retval       # TCL return value
+  
   .local pmc chunk        # the current chunk we're working on
   .local pmc ops          # Global list of available ops.
   ops = find_global "_Tcl", "operators"
@@ -44,7 +45,7 @@ got_arg:
   chunk_end = 0
   .local int char
   .local int expr_length
-  length expr_length, expr
+  expr_length = length expr
 
   #print "CALLED WITH "
   #print expr
@@ -99,7 +100,7 @@ get_paren_done:
   $I0 = $I1 - chunk_start
   dec $I0
   inc chunk_start
-  substr $S1, expr, chunk_start, $I0
+  $S1 = substr expr, chunk_start, $I0
   
   # XXX this is now officially braindead. Fissit.
   (return_type,retval) = __expression_parse($S1)
@@ -197,7 +198,7 @@ get_operator:
   .local int expr_len
   .local string test_op
 
-  length expr_len, expr 
+  expr_len = length expr 
 
   # cheat - right now there are only 2 and 1 character ops
   # 2 char trump one char.
@@ -207,7 +208,7 @@ get_operator:
 
 two_char:
   op_len = 2
-  substr test_op, expr, chunk_start, op_len
+  test_op = substr expr, chunk_start, op_len
   $P11 = ops[test_op]
   isnull $P11, one_char
   $I1 = typeof $P11
@@ -217,7 +218,7 @@ two_char:
 
 one_char:
   op_len = 1
-  substr test_op, expr, chunk_start, op_len
+  test_op = substr expr, chunk_start, op_len
   $P11 = ops[test_op]
   isnull $P11, op_fail
   $I1 = typeof $P11
@@ -290,7 +291,7 @@ converter_loop:
   if stack_index >= input_len goto precedence_done
   our_op = chunks[stack_index]
   isnull our_op, converter_next
-  typeof $I0, our_op
+  $I0 = typeof our_op
   if $I0 == .Undef goto converter_next
   $I2 = our_op[0]
   if $I2 == INTEGER goto converter_next
@@ -314,7 +315,7 @@ right_arg:
   isnull retval, left_arg
   chunks[$I2] = undef
   inc $I4
-  unshift program_stack, retval
+  program_stack = unshift retval
   
   # If we're a function, (XXX) assume a single arg (which
   # we've now pulled - so, go to the, skip the left arg.
@@ -329,11 +330,11 @@ left_arg:
   isnull retval, shift_op
   chunks[$I2] = undef
   inc $I4
-  unshift program_stack, retval
+  program_stack = unshift retval
 
 shift_op:
   #print "shift_op\n"
-  unshift program_stack,our_op
+  program_stack = unshift our_op
   chunks[stack_index] = undef
 
 converter_next:
@@ -662,7 +663,7 @@ evaluation_return:
   .param int start
 
   .local int len
-  length len, expr
+  len = length expr
   .local int pos 
   .local int char 
   .local int flag
@@ -676,7 +677,7 @@ evaluation_return:
 
 first_digit:
   # Is the first digit a 0? if so, this is octal or hex.
-  ord $I0, expr, pos
+  $I0 = ord expr, pos
   if $I0 != 48 goto decimal
   #inc pos
   #ord $I0, expr, pos
@@ -688,7 +689,7 @@ octal:
   inc pos
 octal_loop:
   if pos>=len goto octal_loop_done
-  ord $I0, expr,pos
+  $I0 = ord expr,pos
   if $I0 > 55 goto octal_loop_done # ">8"
   if $I0 < 48 goto octal_loop_done # "<0
   flag = 1
@@ -703,7 +704,7 @@ octal_finish_up:
   inc start
   dec pos
 
-  substr $S0, expr, start,pos
+  $S0 = substr expr, start, pos
   $P1 = new TclList
   $P1[0] = $S0
 
@@ -717,7 +718,7 @@ decimal:
 loop: 
   # cheat
   if pos >= len goto loop_done
-  ord $I0, expr, pos
+  $I0 = ord expr, pos
   if $I0 > 57 goto loop_done # > "9"
   if $I0 < 48 goto loop_done # < "0"
   flag = 1
@@ -732,7 +733,7 @@ failure:
    goto real_done
 
 finish_up:
-   substr $S0, expr, start,pos
+   $S0 = substr expr, start, pos
    $I0 = $S0
    value = new TclList
    value[0] = INTEGER
@@ -760,14 +761,14 @@ real_done:
   varname = new FixedPMCArray
 
   .local int expr_length
-  length expr_length, expr
+  expr_length = length expr
 
   # is this even a variable?
-  ord $I0, expr, start
+  $I0 = ord expr, start
   if $I0 != 36 goto real_done
  
   inc start 
-  ord $I0, expr, start
+  $I0 = ord expr, start
   if $I0 == 123 goto braced  
 
   pos = start
@@ -784,7 +785,7 @@ var_loop:
 
   if pos >= expr_length goto var_loop_done 
 
-  ord $I0, expr, pos
+  $I0 = ord expr, pos
   if $I0 == 40 goto indexed_var 
   if $I0 <  48 goto var_loop_done
   if $I0 <= 58 goto var_loop_next
@@ -803,7 +804,7 @@ var_loop_done:
 
   $I0 = pos - start
   
-  substr $S0, expr, start, $I0
+  $S0 = substr expr, start, $I0
   varname = 1
   varname[0] = $S0
   goto real_done
@@ -812,7 +813,7 @@ indexed_var:
   # just like var_loop_done, mark the name of the var
   dec pos
   $I0 = pos - start
-  substr $S0, expr, start, $I0
+  $S0 = substr expr, start, $I0
   varname = 2 
   varname[0] = $S0
   
@@ -821,7 +822,7 @@ indexed_var:
   index $I1, ")", expr, pos
  
   $I2 = $I1 - pos
-  substr $S0, expr, pos, $I2
+  $S0 = substr expr, pos, $I2
   varname[1] = $S0
   goto real_done 
  
@@ -834,7 +835,7 @@ braced:   
   pos = $I0 
  
   $I1 = $I0 - start
-  substr $S0, expr, start, $I1
+  $S0 = substr expr, start, $I1
   varname[0] = $S0
 
   
@@ -897,12 +898,12 @@ loop_done:
   .local int len
   len = start_paren_pos - start
 
-  substr $S0, expr, start, len
+  $S0 = substr expr, start, len
   $P1 = find_global "_Tcl", "functions"
   
   func = $P1[$S0]
   isnull func, fail 
-  typeof $I0, func
+  $I0 = typeof func
   if $I0 == .Undef goto fail
 
   # and the operand is what's between the ()'s - get the result
@@ -915,7 +916,7 @@ loop_done:
   .local int len_operand
   len_operand = $I1
 
-  substr $S1, expr, start_paren_pos, len_operand
+  $S1 = substr expr, start_paren_pos, len_operand
   # XXX should be checking return value here.
   ($I9,operand) = __expression_parse($S1)  
   ($I9,operand) = __expression_interpret(operand)  

Reply via email to