From 39e8a092240b07bd4b39a7e327ea894610a9c14a Mon Sep 17 00:00:00 2001 From: P. J. McDermott Date: Tue, 22 Mar 2016 19:15:09 -0400 Subject: research/oop2.sh: New file --- diff --git a/research/oop2.sh b/research/oop2.sh new file mode 100644 index 0000000..88e06db --- /dev/null +++ b/research/oop2.sh @@ -0,0 +1,54 @@ +# 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} -- cgit v0.9.1