/* * SPL - The SPL Programming Language * Copyright (C) 2004, 2005 Clifford Wolf * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * * example19.spl: Simple example 'import' statement. */ object A { var name = "A"; static static_counter_a = 0; var var_counter_a = 0; method init() { debug "Running init() in $name (A)."; static_counter_a = 23; var_counter_a = 23; return this; } } object B { var name = "B"; static static_counter_b = 0; var var_counter_b = 0; method increment_b() { var_counter_b++; } method init() { debug "Running init() in $name (B)."; static_counter_b = 42; var_counter_b = 42; return this; } } object X A { import B; var name = "X"; method init() { *A.init(); *B.init(); return this; } } var myx = new X(); debug "${A.static_counter_a} ${X.static_counter_a} ${myx.static_counter_a} " ~ "${A.var_counter_a} ${X.var_counter_a} ${myx.var_counter_a}"; debug "${B.static_counter_b} ${X.static_counter_b} ${myx.static_counter_b} " ~ "${B.var_counter_b} ${X.var_counter_b} ${myx.var_counter_b}"; myx.increment_b(); debug "${B.var_counter_b} ${X.var_counter_b} ${myx.var_counter_b}"; X.increment_b(); debug "${B.var_counter_b} ${X.var_counter_b} ${myx.var_counter_b}";