Cleanup OO macros
In addition, adds a CONSTRUCTOR
macro
CLASS(Example, Object)
ATTRIB(Example, field1, int, 0)
CONSTRUCTOR(Example, int param1) {
CONSTRUCT(Example); // TODO: want to call this `SUPER` and make the current `SUPER` become `instance.super`
this.field1 = param1;
return this;
}
ATTRIB(Example, field2, int, 0)
CONSTRUCTOR(Example, int param1, int param2) {
CONSTRUCT(Example, param1);
this.field2 = param2;
return this;
}
ENDCLASS(Example)