[SCM] Lisaac compiler branch, master, updated. lisaac-0.12-419-gbb3eb12
Benoit Sonntag
sonntag at icps.u-strasbg.fr
Thu Aug 20 16:36:44 UTC 2009
The following commit has been merged in the master branch:
commit bb3eb12e978ea897a2d16ae3f51230af45058e87
Author: Benoit Sonntag <sonntag at icps.u-strasbg.fr>
Date: Thu Aug 20 18:36:42 2009 +0200
Little bug with BLOCK and debug mode
diff --git a/src/code_life/case.li b/src/code_life/case.li
index 236fc56..c5c4939 100644
--- a/src/code_life/case.li
+++ b/src/code_life/case.li
@@ -109,7 +109,7 @@ Section Public
//
- execute <-
- (
+ (
id.set_late_binding;
code.execute_case;
);
diff --git a/src/code_life/switch.li b/src/code_life/switch.li
index e58cbd6..0705b0b 100644
--- a/src/code_life/switch.li
+++ b/src/code_life/switch.li
@@ -234,7 +234,10 @@ Section Public
CALL_SLOT.reset_count_no_recursive;
((list.first.id = TYPE_NULL) && {list.count = 2}).if {
list.first .code.execute_case;
- list.second.code.execute_case;
+ list.second.code.execute_case;
+ ((list.second.id.is_block) && {debug_level_option != 0}).if {
+ list.second.id.set_late_binding;
+ };
} else {
(list.lower).to (list.upper) do { j:INTEGER;
list.item j.execute;
diff --git a/src/type/prototype.li b/src/type/prototype.li
index d9f0b47..bf015c9 100644
--- a/src/type/prototype.li
+++ b/src/type/prototype.li
@@ -513,7 +513,7 @@ Section PROTOTYPE
};
);
- - shorter_table lst:FAST_ARRAY(ITM_SLOT) select sel:BLOCK
+ - shorter_table lst:FAST_ARRAY(ITM_SLOT) select sel:{ITM_SLOT; BOOLEAN}
title t:STRING_CONSTANT in buf:STRING <-
( + is_first_cur:BOOLEAN;
+ s:ITM_SLOT;
@@ -564,7 +564,7 @@ Section PROTOTYPE
};
);
- - shorter_detail lst:FAST_ARRAY(ITM_SLOT) select sel:BLOCK
+ - shorter_detail lst:FAST_ARRAY(ITM_SLOT) select sel:{ITM_SLOT; BOOLEAN}
title t:STRING_CONSTANT in buf:STRING <-
( + is_first:BOOLEAN;
+ s:ITM_SLOT;
diff --git a/src/type/type.li b/src/type/type.li
index 05aef65..29520dc 100644
--- a/src/type/type.li
+++ b/src/type/type.li
@@ -390,7 +390,7 @@ Section Public
+ tg:TYPE_GENERIC;
+ count_slot:SLOT_DATA;
+ storage_slot:SLOT_DATA;
-
+
((slot_run.is_empty) || {slot_run.first != NULL}).if {
(detect_recursivity_generation).if {
string_tmp.copy "Compiler limit: Cyclic depending structure definition for ";
@@ -510,7 +510,7 @@ Section Public
output_decl.append intern_name;
output_decl.append "__ ";
};
- string_tmp.clear;
+ string_tmp.clear;
(is_late_binding).if {
id_counter_with_type.append_in output_decl;
id_counter_with_type := id_counter_with_type + 1;
@@ -553,7 +553,7 @@ Section Public
tab.clear;
};
- (Self = type_block).if {
+ (Self = type_block).if {
string_tmp.append " void *self;\n";
};
diff --git a/src/type/type_block.li b/src/type/type_block.li
index 78ff98c..17b707e 100644
--- a/src/type/type_block.li
+++ b/src/type/type_block.li
@@ -57,6 +57,11 @@ Section TYPE_BLOCK //,PROFIL_BLOCK
);
Section Public
+
+ - set_late_binding <-
+ (
+ type_block.set_late_binding;
+ );
- intern_name:STRING_CONSTANT <- type_block.intern_name;
--
Lisaac compiler
More information about the Lisaac-commits
mailing list