moo/stix/kernel/Boolean.st
hyunghwan.chung 7779229b52 changed some directives from symbols to plain words including class, method, pooldic, dcl.
introduced stix_pfrc_t as a return code type from a primitive function
2017-01-06 09:53:40 +00:00

92 lines
892 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.
}
}