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 := "Size of object";
33 + parent_expr:Expanded EXPR;
37 - is_invariant:BOOLEAN <- TRUE;
41 - static_type:TYPE_FULL <- type_integer.default;
43 - get_type t:TYPES_TMP <-
52 - create p:POSITION receiver e:EXPR :SELF <-
56 result.make p receiver e;
60 - make p:POSITION receiver e:EXPR <-
66 - my_copy:SELF <- SELF.create position receiver (receiver.my_copy);
81 - execute_unlink:INSTR <-
83 receiver.execute_unlink
86 - execute_link:EXPR <-
88 receiver := receiver.execute_link;
96 - genere buffer:STRING <-
98 buffer.append "sizeof(";
99 t := receiver.static_type;
100 t.raw.put_expanded_declaration buffer;
108 - display buffer:STRING <-
110 buffer.append "size_of(";
111 receiver.display buffer;