#include 'Stix.st'. ################################################################# ## MAIN ################################################################# ## TODO: use #define to define a class or use #class to define a class. ## use #extend to extend a class ## using #class for both feels confusing. #extend Apex { } #extend SmallInteger { #method getTrue: anInteger { ^anInteger + 9999. } #method inc { ^self + 1. } } #class TestObject(Object) { #dcl(#class) Q R. #dcl(#classinst) a1 a2. } #class MyObject(TestObject) { #declare(#classinst) t1 t2. #method(#class) main2 { 'START OF MAIN2' dump. t1 value. 'END OF MAIN2' dump. } #method(#class) main1 { 'START OF MAIN1' dump. self main2. t2 := [ 'BLOCK #2' dump. ^200]. 'END OF MAIN1' dump. } #method(#class) main { 'START OF MAIN' dump. t1 := ['BLOCK #1' dump. ^100]. self main1. 'END OF MAIN' dump. } }