moo/stix/kernel/Boolean.st
2015-10-18 15:06:17 +00:00

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