[SCM] Lisaac compiler branch, master, updated. lisaac-0.12-430-gf5af802
Benoit Sonntag
sonntag at icps.u-strasbg.fr
Fri Aug 21 16:12:43 UTC 2009
The following commit has been merged in the master branch:
commit f5af8028eef118b4578fa9038ddaa82cf524e6d6
Author: Benoit Sonntag <sonntag at icps.u-strasbg.fr>
Date: Fri Aug 21 18:12:42 2009 +0200
Bug PA cmp with vector OK
diff --git a/src/code_life/expr_multiple.li b/src/code_life/expr_multiple.li
index 0f0dab4..46a556a 100644
--- a/src/code_life/expr_multiple.li
+++ b/src/code_life/expr_multiple.li
@@ -37,7 +37,7 @@ Section Inherit
Section Public
+ expr_list:FAST_ARRAY(EXPR);
-
+
- cardinality:INTEGER <- expr_list.count;
- static_type:TYPE_FULL <-
diff --git a/src/item/itm_read_arg2.li b/src/item/itm_read_arg2.li
index a434c82..98caee4 100644
--- a/src/item/itm_read_arg2.li
+++ b/src/item/itm_read_arg2.li
@@ -83,6 +83,7 @@ Section Public
+ l_arg:FAST_ARRAY(ITM_CODE);
+ v1,v2:EXPR;
+ t1,t2:TYPE_FULL;
+ + em1,em2:EXPR_MULTIPLE;
(
(name = ALIAS_STR.operator_equal) ||
@@ -107,11 +108,21 @@ Section Public
warning_error (position,string_tmp);
};
};
- (name = ALIAS_STR.operator_equal).if {
- result := EXPR_EQUAL.create position with v1 and v2;
+ em1 ?= v1;
+ (em1 != NULL).if {
+ em2 ?= v2;
+ result := product_cmp (em1.first) with (em2.first);
+ (em1.lower+1).to (em1.upper) do { j:INTEGER;
+ v2 := product_cmp (em1.item j) with (em2.item j);
+ (name = ALIAS_STR.operator_equal).if {
+ result := EXPR_AND_AND_LOGIC.create position with result and v2;
+ } else {
+ result := EXPR_OR_OR_LOGIC.create position with result and v2;
+ };
+ };
} else {
- result := EXPR_NOT_EQUAL.create position with v1 and v2;
- };
+ result := product_cmp v1 with v2;
+ };
} else {
l_arg := ALIAS_ARRAY(ITM_CODE).new;
l_arg.add_last arg_second;
@@ -120,7 +131,17 @@ Section Public
result
);
-
+Section Private
+
+ - product_cmp v1:EXPR with v2:EXPR :EXPR <-
+ ( + result:EXPR;
+ (name = ALIAS_STR.operator_equal).if {
+ result := EXPR_EQUAL.create position with v1 and v2;
+ } else {
+ result := EXPR_NOT_EQUAL.create position with v1 and v2;
+ };
+ result
+ );
--
Lisaac compiler
More information about the Lisaac-commits
mailing list