# Color.esh package Color r= g= b= new(string class, int r, int g, int b) { local self= self=$[malloc] bless ${self} ${class} self->r="${r}" self->g="${g}" self->b="${b}" } delete(int self) { unset self->r unset self->g unset self->b free ${self} } get_r(int self) { retval=${self->r} } get_g(int self) { retval=${self->g} } get_b(int self) { retval=${self->b} } print(int self) { printf '(%d, %d, %d)' ${self->r} ${self->g} ${self->b} } # main.esh c=$[${Color::new} 255 0 0] printf 'R: %d\n' "$[${c->get_r}]" printf 'G: %d\n' "$[${c->get_g}]" printf 'B: %d\n' "$[${c->get_b}]" ${c->print}