moo/stix/kernel/Boolean.st

94 lines
908 B
Smalltalk
Raw Normal View History

#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.
}
}