#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) t1 t2. } #class MyObject(TestObject) { #dcl(#class) C B A. #method getTrue { ^true. } #method getTrue: anInteger { ^ anInteger } #method getFalse { ^false } #method a { ^ 10 } #method b { ^ 20 } #method c { ^ 30 } #method(#class) a: a b: b c: c { ^ a + b + c. } #method(#class) main { | p p2 | 'START OF MAIN' dump. ##p := [ :a :b :c :d | a dump. b dump. (c + d) dump. ^10. ] newProcessWith: #(abc def 10 20). p := [ :a :b :c :d | a dump. b dump. (c + d) dump. ] newProcessWith: #(abc def 10 20). p2 := [ :a :b :c :d | a dump. b dump. a dump. b dump. (c + d) dump. ^10000 ] newProcessWith: #( AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB 1000000000000000 299999999999999999999999999999999999999999 ). p resume. p2 resume. 'MIDDLE OF MAIN' dump. Processor activeProcess terminate. ##p terminate. '999999999999999999' dump. '999999999999999999' dump. '999999999999999999' dump. '999999999999999999' dump. '999999999999999999' dump. '999999999999999999' dump. '999999999999999999' dump. ## p resume. '999999999999999999' dump. '999999999999999999' dump. '999999999999999999' dump. 'END OF MAIN' dump. } }