Author: mdiep
Date: Fri Dec 30 12:49:42 2005
New Revision: 10803
Modified:
trunk/languages/tcl/lib/tclbinaryops.pir
trunk/languages/tcl/t/cmd_expr.t
Log:
tcl: Add support for [expr {"abc"<="abb"}] and other comparison ops (#38063)
Modified: trunk/languages/tcl/lib/tclbinaryops.pir
==============================================================================
--- trunk/languages/tcl/lib/tclbinaryops.pir (original)
+++ trunk/languages/tcl/lib/tclbinaryops.pir Fri Dec 30 12:49:42 2005
@@ -200,7 +200,7 @@ $P%i=new .TclInt
$P%i= $I%i
END_PIR
- .binary_op2num ($S0)
+ .binary_op2($S0)
op_gt:
$S0 = <<"END_PIR"
@@ -209,7 +209,7 @@ $P%i=new .TclInt
$P%i= $I%i
END_PIR
- .binary_op2num ($S0)
+ .binary_op2($S0)
op_lte:
$S0 = <<"END_PIR"
@@ -218,7 +218,7 @@ $P%i=new .TclInt
$P%i= $I%i
END_PIR
- .binary_op2num ($S0)
+ .binary_op2($S0)
op_gte:
$S0 = <<"END_PIR"
@@ -227,7 +227,7 @@ $P%i=new .TclInt
$P%i= $I%i
END_PIR
- .binary_op2num ($S0)
+ .binary_op2($S0)
op_equal:
$S0 = <<"END_PIR"
Modified: trunk/languages/tcl/t/cmd_expr.t
==============================================================================
--- trunk/languages/tcl/t/cmd_expr.t (original)
+++ trunk/languages/tcl/t/cmd_expr.t Fri Dec 30 12:49:42 2005
@@ -2,7 +2,7 @@
use strict;
use lib qw(tcl/t t . ../lib ../../lib ../../../lib);
-use Parrot::Test tests => 61;
+use Parrot::Test tests => 73;
use Test::More;
language_output_is("tcl",<<TCL,<<OUT,"int");
@@ -390,4 +390,76 @@ language_output_is("tcl",<<'TCL',<<'OUT'
TCL
0
OUT
+
+language_output_is("tcl",<<'TCL',<<'OUT',"string <= (less)");
+ puts [expr {"abb"<="abc"}]
+TCL
+1
+OUT
+
+language_output_is("tcl",<<'TCL',<<'OUT',"string <= (greater)");
+ puts [expr {"abc"<="abb"}]
+TCL
+0
+OUT
+
+language_output_is("tcl",<<'TCL',<<'OUT',"string <= (equal)");
+ puts [expr {"abc"<="abc"}]
+TCL
+1
+OUT
+
+language_output_is("tcl",<<'TCL',<<'OUT',"string >= (less)");
+ puts [expr {"abb" >= "abc"}]
+TCL
+0
+OUT
+
+language_output_is("tcl",<<'TCL',<<'OUT',"string >= (greater)");
+ puts [expr {"abc" >= "abb"}]
+TCL
+1
+OUT
+
+language_output_is("tcl",<<'TCL',<<'OUT',"string >= (equal)");
+ puts [expr {"abc" >= "abc"}]
+TCL
+1
+OUT
+
+language_output_is("tcl",<<'TCL',<<'OUT',"string < (less)");
+ puts [expr {"abb" < "abc"}]
+TCL
+1
+OUT
+
+language_output_is("tcl",<<'TCL',<<'OUT',"string < (greater)");
+ puts [expr {"abc" < "abb"}]
+TCL
+0
+OUT
+
+language_output_is("tcl",<<'TCL',<<'OUT',"string < (equal)");
+ puts [expr {"abc" < "abc"}]
+TCL
+0
+OUT
+
+language_output_is("tcl",<<'TCL',<<'OUT',"string > (less)");
+ puts [expr {"abb" > "abc"}]
+TCL
+0
+OUT
+
+language_output_is("tcl",<<'TCL',<<'OUT',"string > (greater)");
+ puts [expr {"abc" > "abb"}]
+TCL
+1
+OUT
+
+language_output_is("tcl",<<'TCL',<<'OUT',"string > (equal)");
+ puts [expr {"abc" > "abc"}]
+TCL
+0
+OUT