[SCM] Lisaac compiler branch, master, updated. lisaac-0.12-386-g5e57d4f
Benoit Sonntag
sonntag at icps.u-strasbg.fr
Mon Aug 10 00:00:44 UTC 2009
The following commit has been merged in the master branch:
commit 5e57d4fabd019b8852422739508cb309d46ecc3c
Author: Benoit Sonntag <sonntag at icps.u-strasbg.fr>
Date: Mon Aug 10 02:00:20 2009 +0200
bug mildred
diff --git a/example/base/hello_world.li b/example/base/hello_world.li
index 89f2958..e1f666c 100644
--- a/example/base/hello_world.li
+++ b/example/base/hello_world.li
@@ -33,7 +33,6 @@ Section Inherit
Section Public
- main <-
- ( + t:STRING;
+ (
"Hello world !\n".print;
- t.print;
);
diff --git a/example/lip/make.lip b/example/lip/make.lip
index 143aba6..30647cb 100755
--- a/example/lip/make.lip
+++ b/example/lip/make.lip
@@ -199,7 +199,7 @@ Section Private
};
" : ".print;
val := get_integer;
- ((val < 0) | (val > 7)).if {
+ ((val < 1) | (val > 7)).if {
"Error !\n".print;
message;
} else {
diff --git a/lib2/collection/low_level/native_array.li b/lib2/collection/low_level/native_array.li
index e6635a3..e90c0a4 100644
--- a/lib2/collection/low_level/native_array.li
+++ b/lib2/collection/low_level/native_array.li
@@ -64,7 +64,7 @@ Section Public
+ p:POINTER;
+ result :NATIVE_ARRAY(V);
- capacity := nb_elements * element_sizeof;
+ capacity := nb_elements * element_sizeof;
//p := `malloc(@capacity)`:POINTER;
p := MEMORY.alloc_dynamic (capacity.to_pointer);
result := CONVERT(POINTER,NATIVE_ARRAY(V)).on p;
diff --git a/lib2/kernel/object.li b/lib2/kernel/object.li
index 3c8937b..3e3f1e6 100644
--- a/lib2/kernel/object.li
+++ b/lib2/kernel/object.li
@@ -124,16 +124,16 @@ Section Public
result := Self;
} else {
typ_id := type_id_intern;
- //ptr := `malloc((@sz + 3)&0xFFFFFFFC)`:POINTER;
- clone_allocation_size := clone_allocation_size + sz;
+ //ptr := `malloc(((unsigned long)(@sz + 3)) & 0xFFFFFFFC)`:POINTER;
+ clone_allocation_size := clone_allocation_size + sz;
(typ_id = -1).if {
ptr := MEMORY.alloc_size sz;
} else {
ptr := MEMORY.alloc_type (typ_id.to_uinteger_32) size sz;
};
result := CONVERT(POINTER,SELF).on ptr;
- //OLD MEMORY.copy to_pointer to ptr size sz;
- copy_intern_in result;
+ //MEMORY.copy to_pointer to ptr size (CONVERT(POINTER,UINTEGER_32).on sz);
+ copy_intern_in result;
(is_cop_type).if {
`((lith_object *)@result)->first = NULL`;
`((lith_object *)@result)->last = NULL`;
diff --git a/lib2_os/unix/video/video.li b/lib2_os/unix/video/video.li
index 075ad8a..6b4a452 100644
--- a/lib2_os/unix/video/video.li
+++ b/lib2_os/unix/video/video.li
@@ -25,7 +25,12 @@ Section Header
- copyright := "2003-2005 Jérome Boutet, 2003-2007 Benoit Sonntag";
- comment := "X11 Driver video - Xlib -";
-
+/*
+ - lip <-
+ (
+ add_lib "-lX11";
+ );
+ */
- external :=
`
#include <X11/Xlib.h>
diff --git a/lib2_os/unix/video/video.li~ b/lib2_os/unix/video/video.li~
old mode 100755
new mode 100644
index 26a82ff..22b5858
--- a/lib2_os/unix/video/video.li~
+++ b/lib2_os/unix/video/video.li~
@@ -25,7 +25,12 @@ Section Header
- copyright := "2003-2005 Jérome Boutet, 2003-2007 Benoit Sonntag";
- comment := "X11 Driver video - Xlib -";
-
+
+ - lip :=
+ (
+ add_lib "-lX11";
+ );
+
- external :=
`
#include <X11/Xlib.h>
@@ -38,7 +43,7 @@ XImage *ximage=NULL;
Section Inherit
- + parent_bitmap:Expanded BITMAP[PIXEL_24];
+ + parent_bitmap:Expanded BITMAP(PIXEL_24);
Section Public //VIDEO
@@ -63,7 +68,7 @@ Section Public
);
- make (w,h:INTEGER) <-
- ( + data:NATIVE_ARRAY[UINTEGER_8];
+ ( + data:NATIVE_ARRAY(UINTEGER_8);
+ w_max:INTEGER;
// Init BITMAP:
@@ -96,22 +101,22 @@ Section Public
planes
.when 15 then {
- line_tmp := BMP_LINE[PIXEL_15].create w_max;
+ line_tmp := BMP_LINE(PIXEL_15).create w_max;
data := line_tmp.get_storage;
`ximage = XCreateImage(display,None,15,ZPixmap,0,(char *)@data, at w_max,1,16,0)`;
}
.when 16 then {
- line_tmp := BMP_LINE[PIXEL_16].create w_max;
+ line_tmp := BMP_LINE(PIXEL_16).create w_max;
data := line_tmp.get_storage;
`ximage = XCreateImage(display,None,16,ZPixmap,0,(char *)@data, at w_max,1,16,0)`;
}
.when 24 then {
- line_tmp := BMP_LINE[PIXEL_32].create w_max;
+ line_tmp := BMP_LINE(PIXEL_32).create w_max;
data := line_tmp.get_storage;
`ximage = XCreateImage(display,None,24,ZPixmap,0,(char *)@data, at w_max,1,32,0)`;
}
.when 32 then {
- line_tmp := BMP_LINE[PIXEL_32].create w_max;
+ line_tmp := BMP_LINE(PIXEL_32).create w_max;
data := line_tmp.get_storage;
`ximage = XCreateImage(display,None,32,ZPixmap,0,(char *)@data, at w_max,1,32,0)`;
};
diff --git a/src/code_life/switch.li b/src/code_life/switch.li
index f9f04dd..3a78eb4 100644
--- a/src/code_life/switch.li
+++ b/src/code_life/switch.li
@@ -254,8 +254,7 @@ Section Public
+ typ_first:TYPE;
+ typ_id:TYPE_ID;
+ wrt:WRITE;
- + i:INTEGER;
-
+
(
(list.first.id = TYPE_NULL) &&
{debug_level_option = 0} &&
@@ -267,6 +266,7 @@ Section Public
).if {
list.remove_first;
};
+ /*
i := list.upper;
{i >= list.lower}.while_do {
(list.item i.code.is_empty).if {
@@ -274,8 +274,9 @@ Section Public
};
i := i - 1;
};
+ */
//
- (list.is_empty).if_false {
+ //(list.is_empty).if_false {
typ_first := list.first.id;
typ_id ?= typ_first;
((list.count <= 2) || {typ_first = TYPE_NULL}).if {
@@ -299,14 +300,16 @@ Section Public
first_case := 1;
//
(list.count = 2).if {
- lst := list.second.code;
- buffer.append " else ";
+ lst := list.second.code;
+ (! list.second.code.is_empty).if {
+ buffer.append " else ";
- buffer.append "/* ";
- buffer.append (list.second.id.name);
- buffer.append " */ ";
+ buffer.append "/* ";
+ buffer.append (list.second.id.name);
+ buffer.append " */ ";
- list.second.genere buffer;
+ list.second.genere buffer;
+ };
first_case := 2;
}.elseif {list.count > 2} then {
buffer.append " else {\n";
@@ -320,32 +323,16 @@ Section Public
list.item first_case.id.put_access_id expr in buffer;
buffer.append ") {\n";
(first_case).to (list.upper) do { j:INTEGER;
- buffer.append indent;
- buffer.append "case ";
- list.item j.id.put_id buffer;
- buffer.append ": ";
- list.item j.genere buffer;
- buffer.add_last ' ';
- buffer.append "break;\n";
- };
-
- ( + code:STRING_CONSTANT;
- buffer.append indent;
- buffer.append "default: ";
- (debug_level_option != 0).if {
- code :=
- "stack_print(top_context); \
- \print_string(\"Call on Twilight Zone\\n\"); \
- \die_with_code(1);";
- } else {
- code :=
- "print_string(\"Call on Twilight Zone\\n\
- \(Use `debug' option)\\n\"); \
- \die_with_code(1);";
+ (! list.item j.code.is_empty).if {
+ buffer.append indent;
+ buffer.append "case ";
+ list.item j.id.put_id buffer;
+ buffer.append ": ";
+ list.item j.genere buffer;
+ buffer.add_last ' ';
+ buffer.append "break;\n";
};
- buffer.append code;
- );
-
+ };
buffer.append indent;
buffer.add_last '}';
(first_case != 0).if {
@@ -355,9 +342,9 @@ Section Public
buffer.add_last '}';
};
};
- };
+ //};
);
-
+
//
// Display.
//
diff --git a/src/lip/lip_call.li b/src/lip/lip_call.li
index 27caddc..152e8d7 100644
--- a/src/lip/lip_call.li
+++ b/src/lip/lip_call.li
@@ -135,8 +135,15 @@ Section Public
res := ENVIRONMENT.execute_command string_tmp;
result := LIP_INTEGER.get res;
}.elseif {name = ALIAS_STR.slot_get_integer} then {
- IO.read_integer;
- result := LIP_INTEGER.get (IO.last_integer);
+ {
+ IO.read_line;
+ (IO.last_string.is_integer).if_false {
+ "Error INTEGER needed.\n".print;
+ };
+ }.do_until {IO.last_string.is_integer};
+ result := LIP_INTEGER.get (IO.last_string.to_integer);
+ //IO.read_integer;
+ //result := LIP_INTEGER.get (IO.last_integer);
}.elseif {name = ALIAS_STR.slot_get_string} then {
IO.read_line;
result := LIP_STRING.get (ALIAS_STR.get (IO.last_string));
diff --git a/src/type/type_full.li b/src/type/type_full.li
index e0fa9f4..caebd27 100644
--- a/src/type/type_full.li
+++ b/src/type/type_full.li
@@ -33,27 +33,27 @@ Section Inherit
Section Private
- + parent_type:TYPE; // BSBS: Passer en héritage + Insert mode.
+ + the_parent_type:TYPE; // BSBS: Passer en héritage + Insert mode.
Section TYPE, TYPE_FULL
- - get_with flg:UINTEGER_8 :TYPE_FULL <- parent_type.get_with flg;
+ - get_with flg:UINTEGER_8 :TYPE_FULL <- the_parent_type.get_with flg;
Section Public
- - get_slot n:STRING_CONSTANT :SLOT <- parent_type.get_slot n;
+ - get_slot n:STRING_CONSTANT :SLOT <- the_parent_type.get_slot n;
- hash_code:INTEGER <- raw.name.hash_code;
- - size:INTEGER <- parent_type.size;
+ - size:INTEGER <- the_parent_type.size;
- - prototype:PROTOTYPE <- parent_type.prototype;
+ - prototype:PROTOTYPE <- the_parent_type.prototype;
- - is_sub_type other:TYPE_FULL :BOOLEAN <- parent_type.is_sub_type (other.raw);
+ - is_sub_type other:TYPE_FULL :BOOLEAN <- the_parent_type.is_sub_type (other.raw);
- - slot_run:FAST_ARRAY[SLOT] <- parent_type.slot_run;
+ - slot_run:FAST_ARRAY[SLOT] <- the_parent_type.slot_run;
- - is_late_binding:BOOLEAN <- parent_type.is_late_binding;
+ - is_late_binding:BOOLEAN <- the_parent_type.is_late_binding;
Section TYPE
@@ -83,7 +83,7 @@ Section TYPE
- make typ:TYPE with code:UINTEGER_8 <-
(
- parent_type := typ;
+ the_parent_type := typ;
flag := code;
((raw != NULL) && {raw.name != NULL} && {raw.name == "INTEGER"} && {! is_expanded}).if {
crash;
@@ -95,7 +95,7 @@ Section Public
- is_parameter_type:BOOLEAN <- FALSE;
- - raw:TYPE <- parent_type;
+ - raw:TYPE <- the_parent_type;
//
// Set.
diff --git a/src2/code_life/switch.li b/src2/code_life/switch.li
index aac2d42..dd1cc8a 100644
--- a/src2/code_life/switch.li
+++ b/src2/code_life/switch.li
@@ -254,7 +254,6 @@ Section Public
+ typ_first:TYPE;
+ typ_id:TYPE_ID;
+ wrt:WRITE;
- + i:INTEGER;
(
(list.first.id = TYPE_NULL) &&
@@ -267,6 +266,7 @@ Section Public
).if {
list.remove_first;
};
+ /*
i := list.upper;
{i >= list.lower}.while_do {
(list.item i.code.is_empty).if {
@@ -274,8 +274,9 @@ Section Public
};
i := i - 1;
};
+ */
//
- (list.is_empty).if_false {
+ //(list.is_empty).if_false {
typ_first := list.first.id;
typ_id ?= typ_first;
((list.count <= 2) || {typ_first = TYPE_NULL}).if {
@@ -299,14 +300,16 @@ Section Public
first_case := 1;
//
(list.count = 2).if {
- lst := list.second.code;
- buffer.append " else ";
+ lst := list.second.code;
+ (! list.second.code.is_empty).if {
+ buffer.append " else ";
- buffer.append "/* ";
- buffer.append (list.second.id.name);
- buffer.append " */ ";
+ buffer.append "/* ";
+ buffer.append (list.second.id.name);
+ buffer.append " */ ";
- list.second.genere buffer;
+ list.second.genere buffer;
+ };
first_case := 2;
}.elseif {list.count > 2} then {
buffer.append " else {\n";
@@ -320,32 +323,16 @@ Section Public
list.item first_case.id.put_access_id expr in buffer;
buffer.append ") {\n";
(first_case).to (list.upper) do { j:INTEGER;
- buffer.append indent;
- buffer.append "case ";
- list.item j.id.put_id buffer;
- buffer.append ": ";
- list.item j.genere buffer;
- buffer.add_last ' ';
- buffer.append "break;\n";
- };
-
- ( + code:STRING_CONSTANT;
- buffer.append indent;
- buffer.append "default: ";
- (debug_level_option != 0).if {
- code :=
- "stack_print(top_context); \
- \print_string(\"Call on Twilight Zone\\n\"); \
- \die_with_code(1),";
- } else {
- code :=
- "print_string(\"Call on Twilight Zone\\n\
- \(Use `debug' option)\\n\"); \
- \die_with_code(1);";
+ (! list.item j.code.is_empty).if {
+ buffer.append indent;
+ buffer.append "case ";
+ list.item j.id.put_id buffer;
+ buffer.append ": ";
+ list.item j.genere buffer;
+ buffer.add_last ' ';
+ buffer.append "break;\n";
};
- buffer.append code;
- );
-
+ };
buffer.append indent;
buffer.add_last '}';
(first_case != 0).if {
@@ -355,7 +342,7 @@ Section Public
buffer.add_last '}';
};
};
- };
+ //};
);
//
diff --git a/src2/code_life/write_slot.li b/src2/code_life/write_slot.li
index f77f6d9..9497f4d 100644
--- a/src2/code_life/write_slot.li
+++ b/src2/code_life/write_slot.li
@@ -134,6 +134,28 @@ Section Public
} else {
buffer.add_last '=';
genere_value buffer;
+
+ /*
+ buffer.add_last ';';
+ tf := receiver.static_type;
+ ((tf.is_strict) || {tf.is_expanded_ref}).if {
+ receiver.genere buffer;
+ buffer.append "->";
+ }.elseif {tf.is_expanded} then {
+ receiver.genere buffer;
+ buffer.add_last '.';
+ } else {
+ buffer.append "((";
+ t := slot.receiver_type;
+ t.put_reference_declaration buffer;
+ buffer.add_last ' ';
+ t.put_reference_star_declaration buffer;
+ buffer.add_last ')';
+ receiver.genere buffer;
+ buffer.append ")->";
+ };
+ */
+
};
};
);
diff --git a/src2/lip/lip_binary.li b/src2/lip/lip_binary.li
index 801f3b8..29921aa 100644
--- a/src2/lip/lip_binary.li
+++ b/src2/lip/lip_binary.li
@@ -80,7 +80,10 @@ Section Public
.when '+' then { result := lv + rv; }
.when '-' then { result := lv - rv; };
(result = NULL).if {
- semantic_error (position,"Incorrect type.");
+ operator.print; '\n'.print;
+ lv.print; '\n'.print;
+ rv.print; '\n'.print;
+ semantic_error (position,"Incorrect type operator.");
};
result
);
diff --git a/src2/lip/lip_boolean.li b/src2/lip/lip_boolean.li
index 9787d3f..f55af7e 100644
--- a/src2/lip/lip_boolean.li
+++ b/src2/lip/lip_boolean.li
@@ -73,7 +73,7 @@ Section Public
- name:STRING_CONSTANT <- "BOOLEAN";
- - Self:SELF '!' :LIP_CONSTANT <- get (! value);
+ - '!' Self:SELF :LIP_CONSTANT <- get (! value);
- copy:LIP_CONSTANT <- Self;
diff --git a/src2/lip/lip_call.li b/src2/lip/lip_call.li
index 27caddc..a7bb0b3 100644
--- a/src2/lip/lip_call.li
+++ b/src2/lip/lip_call.li
@@ -135,8 +135,13 @@ Section Public
res := ENVIRONMENT.execute_command string_tmp;
result := LIP_INTEGER.get res;
}.elseif {name = ALIAS_STR.slot_get_integer} then {
- IO.read_integer;
- result := LIP_INTEGER.get (IO.last_integer);
+ {
+ IO.read_line;
+ (IO.last_string.is_integer).if_false {
+ "Error INTEGER needed.\n".print;
+ };
+ }.do_until {IO.last_string.is_integer};
+ result := LIP_INTEGER.get (IO.last_string.to_integer);
}.elseif {name = ALIAS_STR.slot_get_string} then {
IO.read_line;
result := LIP_STRING.get (ALIAS_STR.get (IO.last_string));
diff --git a/src2/lip/lip_integer.li b/src2/lip/lip_integer.li
index 8ca1c00..18c1d6e 100644
--- a/src2/lip/lip_integer.li
+++ b/src2/lip/lip_integer.li
@@ -71,13 +71,13 @@ Section Public
- name:STRING_CONSTANT <- "INTEGER";
- - Self:SELF '-' :LIP_CONSTANT <-
+ - '-' Self:SELF :LIP_CONSTANT <-
(
value := - value;
Self
);
- - Self:SELF '!' :LIP_CONSTANT <-
+ - '!' Self:SELF :LIP_CONSTANT <-
(
value := ~ value;
Self
diff --git a/src2/lip/lip_slot_data.li b/src2/lip/lip_slot_data.li
index 19af1fa..d52391b 100644
--- a/src2/lip/lip_slot_data.li
+++ b/src2/lip/lip_slot_data.li
@@ -64,7 +64,7 @@ Section Public
value := v;
(is_arg).if_false {
list_data.add Self to n;
- };
+ };
);
//
@@ -76,8 +76,8 @@ Section Public
new_val := value.copy_of v;
(new_val != NULL).if {
- value := new_val;
- }
+ value := new_val;
+ }
);
- get_value:LIP_CONSTANT <-
diff --git a/src2/lip/lip_string.li b/src2/lip/lip_string.li
index fde456c..04f11a5 100644
--- a/src2/lip/lip_string.li
+++ b/src2/lip/lip_string.li
@@ -54,17 +54,17 @@ Section Public
result := clone;
} else {
result := storage.last;
- storage.remove_last;
+ storage.remove_last;
};
result.set_value str;
result
);
- free <-
- (
+ (
storage.add_last Self;
);
-
+
//
// Operation.
//
@@ -78,7 +78,7 @@ Section Public
- print <-
(
- string_tmp.clear;
+ string_tmp.clear;
append_in string_tmp;
string_tmp.print;
);
diff --git a/src2/lip/lip_unary.li b/src2/lip/lip_unary.li
index 27f32e1..979e143 100644
--- a/src2/lip/lip_unary.li
+++ b/src2/lip/lip_unary.li
@@ -62,7 +62,7 @@ Section Public
- run_expr:LIP_CONSTANT <-
( + result:LIP_CONSTANT;
- result := value.run_expr;
+ result := value.run_expr;
(operator)
.when '-' then { result := - result; }
.when '!' then { result := ! result; };
diff --git a/src2/parser.li b/src2/parser.li
index 6d1f609..244ccb4 100644
--- a/src2/parser.li
+++ b/src2/parser.li
@@ -2712,7 +2712,7 @@ Section Private
(cst = NULL).if {
syntax_error (current_position,"Incorrect expression.");
};
- data.set_value cst;
+ data.set_value cst;
cst.free;
};
}.elseif {read_character '-'} then {
@@ -2771,16 +2771,16 @@ Section Private
//// TYPE -> 'BOOLEAN' | 'STRING' | 'INTEGER'
( + result:LIP_CONSTANT;
- (read_cap_identifier).if {
+ (read_cap_identifier).if {
(last_string = ALIAS_STR.prototype_integer).if {
result := LIP_INTEGER.get 0;
- }.elseif {last_string = ALIAS_STR.prototype_string} then {
- result := LIP_STRING.get (ALIAS_STR.get "");
- }.elseif {last_string = ALIAS_STR.prototype_boolean} then {
+ }.elseif {last_string = ALIAS_STR.prototype_string} then {
+ result := LIP_STRING.get (ALIAS_STR.get "");
+ }.elseif {last_string = ALIAS_STR.prototype_boolean} then {
result := LIP_BOOLEAN.get FALSE;
} else {
syntax_error (current_position,"Incorrect type.");
- };
+ };
};
result
);
diff --git a/src2/type/type.li b/src2/type/type.li
index 7935b3c..05aef65 100644
--- a/src2/type/type.li
+++ b/src2/type/type.li
@@ -109,17 +109,28 @@ Section Public
+ base:TYPE;
+ styl:STRING_CONSTANT;
+ proto:PROTOTYPE;
-
+
+ + r:TYPE;
+
proto := load_prototype (itm_typ.name) generic_count 0;
base := dico_type.fast_reference_at (proto.filename);
- (base = NULL).if {
+ (base = NULL).if {
base := TYPE.clone;
dico_type.fast_put base to (proto.filename);
base.make itm_typ with proto;
+
+ (base.default.the_parent_type != base).if {
+ "C'est ici que ca commence!!!\n".print;
+ IO.read_character;
+ };
};
//
+ (base.default.the_parent_type != base).if {
+ "Oui, il est bien bidon!!!\n".print;
+ IO.read_character;
+ };
styl := itm_typ.style;
- (styl = NULL).if {
+ (styl = NULL).if {
result := base.default;
} else {
(styl = ALIAS_STR.keyword_expanded).if {
@@ -128,6 +139,13 @@ Section Public
result := base.default + TYPE_FULL.strict_bit;
};
};
+
+ r := result.the_parent_type;
+ (r != base).if {
+ "the_parent_type est bidon!!!\n".print;
+ IO.read_character;
+ };
+
result
);
@@ -149,14 +167,17 @@ Section Public
{slot_run.item j.id_section.is_inherit_or_insert} &&
{result = NULL}
}.while_do {
- ts ?= slot_run.item j.result_type;
- typ := ts.to_run_for Self.raw;
+ ts ?= slot_run.item j.result_type;
+ typ := ts.to_run_for Self.raw;
+
+ /*
(typ.prototype = NULL).if {
- `/* ICI BEN */`;
+
typ.print; '\n'.print;
`/* ICI BEN FIN */`;
crash_with_message "TYPE: BUG Compiler : search_require";
};
+ */
result := typ.prototype.slot_list.fast_reference_at n;
((result = NULL) || {result.require = NULL}).if {
result := typ.search_require n;
diff --git a/src2/type/type_full.li b/src2/type/type_full.li
index cc5cc85..2aab477 100644
--- a/src2/type/type_full.li
+++ b/src2/type/type_full.li
@@ -31,29 +31,29 @@ Section Inherit
- parent_any:ANY := ANY;
-Section Private
+Section TYPE, TYPE_FULL // Private after fuck bug
- + parent_type:TYPE; // BSBS: Passer en héritage + Insert mode.
+ + the_parent_type:TYPE; // BSBS: Passer en héritage + Insert mode.
Section TYPE, TYPE_FULL
- - get_with flg:UINTEGER_8 :TYPE_FULL <- parent_type.get_with flg;
+ - get_with flg:UINTEGER_8 :TYPE_FULL <- the_parent_type.get_with flg;
Section Public
- - get_slot n:STRING_CONSTANT :SLOT <- parent_type.get_slot n;
+ - get_slot n:STRING_CONSTANT :SLOT <- the_parent_type.get_slot n;
- hash_code:INTEGER <- raw.name.hash_code;
- - size:INTEGER <- parent_type.size;
+ - size:INTEGER <- the_parent_type.size;
- - prototype:PROTOTYPE <- parent_type.prototype;
+ - prototype:PROTOTYPE <- the_parent_type.prototype;
- - is_sub_type other:TYPE_FULL :BOOLEAN <- parent_type.is_sub_type (other.raw);
+ - is_sub_type other:TYPE_FULL :BOOLEAN <- the_parent_type.is_sub_type (other.raw);
- - slot_run:FAST_ARRAY(SLOT) <- parent_type.slot_run;
+ - slot_run:FAST_ARRAY(SLOT) <- the_parent_type.slot_run;
- - is_late_binding:BOOLEAN <- parent_type.is_late_binding;
+ - is_late_binding:BOOLEAN <- the_parent_type.is_late_binding;
Section TYPE
@@ -83,7 +83,7 @@ Section TYPE
- make typ:TYPE with code:UINTEGER_8 <-
(
- parent_type := typ;
+ the_parent_type := typ;
flag := code;
((raw != NULL) && {raw.name != NULL} && {raw.name == "INTEGER"} && {! is_expanded}).if {
crash;
@@ -95,7 +95,7 @@ Section Public
- is_parameter_type:BOOLEAN <- FALSE;
- - raw:TYPE <- parent_type;
+ - raw:TYPE <- the_parent_type;
//
// Set.
@@ -115,7 +115,7 @@ Section Public
- is_expanded :BOOLEAN <- (flag & expanded_bit ) != 0;
- is_default_expanded :BOOLEAN <- (flag & default_expanded_bit) != 0;
- is_strict :BOOLEAN <- (flag & strict_bit ) != 0;
- - is_default_strict :BOOLEAN <- (flag & default_expanded_bit) != 0;
+ - is_default_strict :BOOLEAN <- (flag & default_strict_bit ) != 0;
- is_expanded_ref :BOOLEAN <- (flag & expanded_ref_bit ) != 0;
- is_generic :BOOLEAN <- (flag & generic_bit ) != 0;
--
Lisaac compiler
More information about the Lisaac-commits
mailing list