Merge pull request #506 from andrewcsmith/patch-2
[supercollider.git] / SCClassLibrary / Common / Core / Boolean.sc
blob4d0a4cd8646358d4ca9a909824410879f12aae1a
1 Boolean {
2         *new { ^this.shouldNotImplement(thisMethod) }
3         xor { arg bool; ^(this === bool).not }
4         if { ^this.subclassResponsibility(thisMethod) }
5         not { ^this.subclassResponsibility(thisMethod) }
6         && { ^this.subclassResponsibility(thisMethod) }
7         || { ^this.subclassResponsibility(thisMethod) }
8         and { ^this.subclassResponsibility(thisMethod) }
9         or { ^this.subclassResponsibility(thisMethod) }
10         nand { ^this.subclassResponsibility(thisMethod) }
11         asInteger { ^this.subclassResponsibility(thisMethod) }
12         binaryValue { ^this.subclassResponsibility(thisMethod) } // TODO: deprecate for asInteger
14         asBoolean    { ^this }
15         booleanValue { ^this } // TODO in the long-run, deprecate for asBoolean
17         keywordWarnings {
18                 // turn on/off warnings if a keyword argument is not found
19                 _KeywordError
20         }
21         trace { _Trace } // this is only available in a special debugging version of the app
23         printOn { arg stream;
24                 stream.putAll(this.asString);
25         }
26         storeOn { arg stream;
27                 stream.putAll(this.asCompileString);
28         }
29         archiveAsCompileString { ^true }
31         while {
32                 ^"While was called with a fixed (unchanging) Boolean as the condition. Please supply a Function instead.".error
33         }
36 True : Boolean {
37         if { arg trueFunc, falseFunc; ^trueFunc.value }
38         not { ^false }
39         && { arg that; ^that.value }
40         || { arg that; ^this }
41         and { arg that; ^that.value }
42         or { arg that; ^this }
43         nand { arg that; ^that.value.not }
44         asInteger   { ^1 }
45         binaryValue { ^1 } // TODO in the long-run, deprecate for asInteger
48 False : Boolean  {
49         if { arg trueFunc, falseFunc; ^falseFunc.value }
50         not { ^true }
51         && { arg that; ^this }
52         || { arg that; ^that.value }
53         and { arg that; ^this }
54         or { arg that; ^that.value }
55         nand { arg that; ^true }
56         asInteger   { ^0 }
57         binaryValue { ^0 } // TODO in the long-run, deprecate for asInteger