Sake = Rake for Smalltalk?

Alexandre Bergel Alexandre.Bergel at cs.tcd.ie
Mon May 15 22:36:01 UTC 2006


Few months ago, I worked on a scripting languages, here is a snippet:

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
package Kernel

rootclass Obj;

Obj { yourself ^ self }
Obj { ==  other <primitive: 110> }
Obj { ~~  other ^ (self == other) ifTrue: [false] ifTrue:[true] }
Obj {  =  other ^ self == other }
Obj { ~=  other ^ (self = other) == false}

Obj {isNil ^ false}
Obj {isNotNil ^ true}
Obj {isBoolean ^false}
Obj {isCollection ^false}
Obj {isClass ^false}
Obj {isSymbol ^false}
Obj {isInteger ^false}
Obj {perform: aSymbol <primitive: 83>}

Obj class {new ^ self basicNew}
Obj class {basicNew 	<primitive: 70>}
Obj class {isClass ^true}

class Boolean extends Obj;
Boolean {isBoolean ^ true}

class False extends Boolean;
False { ifTrue: block ^ self }
False { ifFalse: block ^ block value }
False { ifTrue: trueBlock ifFalse: falseBlock  ^ falseBlock value }
False { ifFalse: falseBlock ifTrue: trueBlock  ^ falseBlock value }
False { enot  ^ True new }
False { eor: other ^ other value}
False { eand: other ^ False new}

class True extends Boolean;
True { eifTrue: block  ^ block value }
True { eifFalse: block ^ self }
True { enot ^ False new }
True { eor: other ^ True new }
True { eand: other ^ other value }

end
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


Any comments are welcomed

Cheers,
Alexandre


Am Apr 27, 2006 um 8:37 AM schrieb stéphane ducasse:

> KernelPackage
> 	import: Point.
>
> Package declare: 'ColoredPointPackage'.
>
> Point < ColoredPpoint
> 	variables: 'x y' ;
> 	classvar: 'Foo'
> 	
> ColoredPoint>>foo: zork
> 	<category: 'foobar'>
> 	<author: 'sd' date: '24/06/2006'>
>         [ ljkljl
> 		^
>         	]

-- 
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
Alexandre Bergel  http://www.cs.tcd.ie/Alexandre.Bergel
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.






More information about the Squeak-dev mailing list