1 ///////////////////////////////////////////////////////////////////////////////
4 // LSIIT - ULP - CNRS - INRIA - FRANCE //
6 // This program is free software: you can redistribute it and/or modify //
7 // it under the terms of the GNU General Public License as published by //
8 // the Free Software Foundation, either version 3 of the License, or //
9 // (at your option) any later version. //
11 // This program is distributed in the hope that it will be useful, //
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of //
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
14 // GNU General Public License for more details. //
16 // You should have received a copy of the GNU General Public License //
17 // along with this program. If not, see <http://www.gnu.org/licenses/>. //
19 // http://isaacproject.u-strasbg.fr/ //
20 ///////////////////////////////////////////////////////////////////////////////
25 - copyright := "2003-2007 Benoit Sonntag";
28 - author := "Sonntag Benoit (bsonntag@loria.fr)";
29 - comment := "Item for NATIVE_ARRAY[type].";
33 + parent_expr:Expanded EXPR;
37 - is_invariant:BOOLEAN <- receiver.is_invariant && {index.is_invariant};
43 - static_type:TYPE_FULL <-
46 t ?= receiver.static_type.raw;
50 - get_type t:TYPES_TMP <-
51 ( + typ_gen:TYPE_GENERIC;
53 typ_gen ?= receiver.static_type.raw;
61 - create p:POSITION base rec:EXPR index idx:EXPR :SELF <-
65 result.make p base rec index idx;
69 - make p:POSITION base rec:EXPR index idx:EXPR <-
76 - my_copy:SELF <- SELF.create position base (receiver.my_copy) index (index.my_copy);
92 - execute_unlink:INSTR <-
94 instr := receiver.execute_unlink;
96 list_current.insert_before instr;
101 - execute_link:EXPR <-
103 receiver := receiver.execute_link;
104 index := index.execute_link;
112 - genere buffer:STRING <-
114 receiver.genere buffer;
124 - display buffer:STRING <-
126 receiver.display buffer;
128 index.display buffer;