[SCM] Lisaac compiler branch, master, updated. lisaac-0.12-526-gf5b0157
Benoit Sonntag
sonntag at icps.u-strasbg.fr
Wed Oct 28 02:25:16 UTC 2009
The following commit has been merged in the master branch:
commit f5b015746e5dc63642160a462bbcb2424702a12f
Author: Benoit Sonntag <sonntag at icps.u-strasbg.fr>
Date: Wed Oct 28 00:54:56 2009 +0100
bug parent Mildred (3) UNSTABLE
diff --git a/src/code_life/case.li b/src/code_life/case.li
index c5c4939..9a39649 100644
--- a/src/code_life/case.li
+++ b/src/code_life/case.li
@@ -98,7 +98,7 @@ Section Public
(wrt1 != NULL) &&
{wrt2 != NULL} &&
{wrt1.variable = wrt2.variable} &&
- {wrt1.value == wrt2.value}
+ {wrt1.value ~= wrt2.value}
);
};
result
diff --git a/src/external/arithmetic/expr_and.li b/src/external/arithmetic/expr_and.li
index 2385866..bf36757 100644
--- a/src/external/arithmetic/expr_and.li
+++ b/src/external/arithmetic/expr_and.li
@@ -74,7 +74,7 @@ Section Public
//-- E & E -> E
( + result:EXPR;
- (left == right).if {
+ (left ~= right).if {
right.remove;
result := left;
};
diff --git a/src/external/arithmetic/expr_div.li b/src/external/arithmetic/expr_div.li
index 1f39490..bd518da 100644
--- a/src/external/arithmetic/expr_div.li
+++ b/src/external/arithmetic/expr_div.li
@@ -82,19 +82,19 @@ Section Public
( + result:EXPR;
+ neg:EXPR_NEG;
- (right == left).if {
+ (right ~= left).if {
result := INTEGER_CST.create position value 1 type static_type;
right.remove;
left .remove;
} else {
neg ?= left;
- ((neg != NULL) && {neg.right == right}).if {
+ ((neg != NULL) && {neg.right ~= right}).if {
result := INTEGER_CST.create position value (-1) type static_type;
left.remove;
right.remove;
} else {
neg ?= right;
- ((neg != NULL) && {neg.right == left}).if {
+ ((neg != NULL) && {neg.right ~= left}).if {
result := INTEGER_CST.create position value (-1) type static_type;
left.remove;
right.remove;
diff --git a/src/external/arithmetic/expr_mod.li b/src/external/arithmetic/expr_mod.li
index f892f65..d9a2dc8 100644
--- a/src/external/arithmetic/expr_mod.li
+++ b/src/external/arithmetic/expr_mod.li
@@ -32,7 +32,7 @@ Section Inherit
+ parent_expr_binary:Expanded EXPR_BINARY;
-Section Private
+Section Public
+ symbol:STRING_CONSTANT := "%";
@@ -66,7 +66,7 @@ Section Private
//-- E % E -> 0
( + result:EXPR;
- (left == right).if {
+ (left ~= right).if {
result := INTEGER_CST.create position value 0 type static_type;
left.remove;
right.remove;
diff --git a/src/external/arithmetic/expr_or.li b/src/external/arithmetic/expr_or.li
index f18cfe3..edd6f86 100644
--- a/src/external/arithmetic/expr_or.li
+++ b/src/external/arithmetic/expr_or.li
@@ -77,7 +77,7 @@ Section Public
+ and_l,and_r:EXPR_AND;
+ not_l,not_r:EXPR_NOT;
- (left == right).if {
+ (left ~= right).if {
right.remove;
result := left;
} else {
@@ -87,7 +87,7 @@ Section Public
not_l ?= and_l.left;
not_r ?= and_r.right;
((not_l != NULL) && {not_r != NULL}).if {
- ((not_l.right == and_r.left) && {and_l.right == not_r.right}).if {
+ ((not_l.right ~= and_r.left) && {and_l.right ~= not_r.right}).if {
result := EXPR_XOR.create position with (not_l.right) and (and_l.right);
right.remove;
};
diff --git a/src/external/arithmetic/expr_shift_r.li b/src/external/arithmetic/expr_shift_r.li
index 74b6d42..a2c159e 100644
--- a/src/external/arithmetic/expr_shift_r.li
+++ b/src/external/arithmetic/expr_shift_r.li
@@ -69,7 +69,7 @@ Section Public
//-- E(unsigned) >> E(unsigned) -> 0
( + result:EXPR;
/*
- (left == right) && {left.is_unsigned_type}.if {
+ (left ~= right) && {left.is_unsigned_type}.if {
result := INTEGER_CST.create position value 0 type static_type;
left .remove;
right.remove;
diff --git a/src/external/arithmetic/expr_sub.li b/src/external/arithmetic/expr_sub.li
index fc73edf..decbb76 100644
--- a/src/external/arithmetic/expr_sub.li
+++ b/src/external/arithmetic/expr_sub.li
@@ -105,7 +105,7 @@ Section Public
+ mul:EXPR_MUL;
+ div:EXPR_DIV;
- (left == right).if {
+ (left ~= right).if {
left.remove;
right.remove;
result := INTEGER_CST.create position value 0 type static_type;
@@ -114,7 +114,7 @@ Section Public
(mul != NULL).if {
div ?= mul.left;
(div != NULL).if {
- ((left == div.left) && {div.right == mul.right}).if {
+ ((left ~= div.left) && {div.right ~= mul.right}).if {
div.remove;
result := EXPR_MOD.create position with left and (mul.right);
};
diff --git a/src/external/arithmetic/expr_xor.li b/src/external/arithmetic/expr_xor.li
index 74e4995..7e40b46 100644
--- a/src/external/arithmetic/expr_xor.li
+++ b/src/external/arithmetic/expr_xor.li
@@ -32,7 +32,7 @@ Section Inherit
+ parent_expr_binary:Expanded EXPR_BINARY;
-Section Private
+Section Public
+ symbol:STRING_CONSTANT := "^";
@@ -82,7 +82,7 @@ Section Private
//-- E ^ E -> 0
( + result:EXPR;
- (left == right).if {
+ (left ~= right).if {
result := INTEGER_CST.create position value 0 type static_type;
left .remove;
right.remove;
diff --git a/src/external/comparison/expr_equal.li b/src/external/comparison/expr_equal.li
index 03d2fba..a3a72d4 100644
--- a/src/external/comparison/expr_equal.li
+++ b/src/external/comparison/expr_equal.li
@@ -60,7 +60,7 @@ Section Public
( + result:PROTOTYPE_CST;
+ r:PROTOTYPE_CST;
- (left == right).if {
+ (left ~= right).if {
result := PROTOTYPE_CST.create position type (type_true.default);
left .remove;
right.remove;
diff --git a/src/external/comparison/expr_inf.li b/src/external/comparison/expr_inf.li
index 809cbf9..bf674fc 100644
--- a/src/external/comparison/expr_inf.li
+++ b/src/external/comparison/expr_inf.li
@@ -59,7 +59,7 @@ Section Public
//-- E < E -> FALSE
( + result:PROTOTYPE_CST;
- (left == right).if {
+ (left ~= right).if {
result := PROTOTYPE_CST.create position type (type_false.default);
left .remove;
right.remove;
diff --git a/src/external/comparison/expr_inf_eq.li b/src/external/comparison/expr_inf_eq.li
index eec4536..86c3955 100644
--- a/src/external/comparison/expr_inf_eq.li
+++ b/src/external/comparison/expr_inf_eq.li
@@ -59,7 +59,7 @@ Section Public
//-- E <= E -> TRUE
( + result:PROTOTYPE_CST;
- (left == right).if {
+ (left ~= right).if {
result := PROTOTYPE_CST.create position type (type_true.default);
left .remove;
right.remove;
diff --git a/src/external/comparison/expr_not_equal.li b/src/external/comparison/expr_not_equal.li
index 69f42cd..1174fe5 100644
--- a/src/external/comparison/expr_not_equal.li
+++ b/src/external/comparison/expr_not_equal.li
@@ -61,7 +61,7 @@ Section Public
( + result:PROTOTYPE_CST;
+ r:PROTOTYPE_CST;
- (left == right).if {
+ (left ~= right).if {
result := PROTOTYPE_CST.create position type (type_false.default);
left .remove;
right.remove;
diff --git a/src/external/comparison/expr_sup.li b/src/external/comparison/expr_sup.li
index 81b4c5d..65247f6 100644
--- a/src/external/comparison/expr_sup.li
+++ b/src/external/comparison/expr_sup.li
@@ -71,7 +71,7 @@ Section Public
//-- E > E -> FALSE
( + result:PROTOTYPE_CST;
- (left == right).if {
+ (left ~= right).if {
result := PROTOTYPE_CST.create position type (type_false.default);
left .remove;
right.remove;
diff --git a/src/external/comparison/expr_sup_eq.li b/src/external/comparison/expr_sup_eq.li
index 0332913..ad00424 100644
--- a/src/external/comparison/expr_sup_eq.li
+++ b/src/external/comparison/expr_sup_eq.li
@@ -59,7 +59,7 @@ Section Public
//-- E >= E -> TRUE
( + result:PROTOTYPE_CST;
- (left == right).if {
+ (left ~= right).if {
result := PROTOTYPE_CST.create position type (type_true.default);
left .remove;
right.remove;
diff --git a/src/external/logic/expr_and_logic.li b/src/external/logic/expr_and_logic.li
index 5ec2ef1..d6f1826 100644
--- a/src/external/logic/expr_and_logic.li
+++ b/src/external/logic/expr_and_logic.li
@@ -80,7 +80,7 @@ Section Public
//-- E & E -> E
( + result:EXPR;
- (left == right).if {
+ (left ~= right).if {
result := left;
right.remove;
};
diff --git a/src/external/logic/expr_or_logic.li b/src/external/logic/expr_or_logic.li
index 5be1a29..21db1ce 100644
--- a/src/external/logic/expr_or_logic.li
+++ b/src/external/logic/expr_or_logic.li
@@ -83,14 +83,14 @@ Section Public
+ sup:EXPR_SUP;
+ eq:EXPR_EQUAL;
- (left == right).if {
+ (left ~= right).if {
result := left;
right.remove;
} else {
sup ?= left;
eq ?= right;
((sup != NULL) && {eq != NULL}).if {
- ((sup.left == eq.left) && {sup.right == eq.right}).if {
+ ((sup.left ~= eq.left) && {sup.right ~= eq.right}).if {
result := EXPR_SUP_EQ.create position with (sup.left) and (sup.right);
right.remove;
};
diff --git a/src/variable/slot_data.li b/src/variable/slot_data.li
index 750314a..6788a08 100644
--- a/src/variable/slot_data.li
+++ b/src/variable/slot_data.li
@@ -175,7 +175,7 @@ Section Public
is_rec_ok := TRUE;
}.elseif {rec.is_constant} then {
wrt_slot ?= last_write;
- is_rec_ok := rec == wrt_slot.receiver;
+ is_rec_ok := rec ~= wrt_slot.receiver;
} else {
rd ?= rec;
(rd != NULL).if {
--
Lisaac compiler
More information about the Lisaac-commits
mailing list