92 lines
906 B
Smalltalk
92 lines
906 B
Smalltalk
|
#class Boolean(Object)
|
||
|
{
|
||
|
"TODO: do i need to really define methods defined in True and False here?
|
||
|
and call subclassResponsibiltiy?"
|
||
|
}
|
||
|
|
||
|
#class True(Boolean)
|
||
|
{
|
||
|
#method not
|
||
|
{
|
||
|
^false
|
||
|
}
|
||
|
|
||
|
#method & aBoolean
|
||
|
{
|
||
|
^aBoolean
|
||
|
}
|
||
|
|
||
|
#method | aBoolean
|
||
|
{
|
||
|
^true
|
||
|
}
|
||
|
|
||
|
#method and: aBlock
|
||
|
{
|
||
|
^aBlock value
|
||
|
}
|
||
|
|
||
|
#method or: aBlock
|
||
|
{
|
||
|
^true
|
||
|
}
|
||
|
|
||
|
#method ifTrue: trueBlock ifFalse: falseBlock
|
||
|
{
|
||
|
^trueBlock value.
|
||
|
}
|
||
|
|
||
|
#method ifTrue: trueBlock
|
||
|
{
|
||
|
^trueBlock value.
|
||
|
}
|
||
|
|
||
|
#method ifFalse: falseBlock
|
||
|
{
|
||
|
^nil.
|
||
|
}
|
||
|
}
|
||
|
|
||
|
#class False(Boolean)
|
||
|
{
|
||
|
#method not
|
||
|
{
|
||
|
^true
|
||
|
}
|
||
|
|
||
|
#method & aBoolean
|
||
|
{
|
||
|
^false
|
||
|
}
|
||
|
|
||
|
#method | aBoolean
|
||
|
{
|
||
|
^aBoolean
|
||
|
}
|
||
|
|
||
|
#method and: aBlock
|
||
|
{
|
||
|
^false
|
||
|
}
|
||
|
|
||
|
#method or: aBlock
|
||
|
{
|
||
|
^aBlock value
|
||
|
}
|
||
|
|
||
|
#method ifTrue: trueBlock ifFalse: falseBlock
|
||
|
{
|
||
|
^falseBlock value.
|
||
|
}
|
||
|
|
||
|
#method ifTrue: trueBlock
|
||
|
{
|
||
|
^nil.
|
||
|
}
|
||
|
|
||
|
#method ifFalse: falseBlock
|
||
|
{
|
||
|
^falseBlock value.
|
||
|
}
|
||
|
}
|