1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
|
bxor ( in1 in2 -- out )
Bitwise XOR.
c? ( any -- bool )
True if the value is a class, or false if it is any other type. Error if
it is a sound.
chain ( any -- bool )
If given an object of the same class as the current object, selects that
object as the current object and continues executing the code with that
object instead. This new current object is not saved if you return from
a function or a subroutine call. If it successfully chained, then the
result is false. If given an object of a different class, an object that
doesn't exist, or anything other than an object, then it does nothing
|
>
>
>
>
>
|
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
|
bxor ( in1 in2 -- out )
Bitwise XOR.
c? ( any -- bool )
True if the value is a class, or false if it is any other type. Error if
it is a sound.
(case <cases...>) ( any -- ??? )
A case block. Read one value from stack; find which case it matches, and
then push or jump to the result for that case. See the section below
about case blocks for details.
chain ( any -- bool )
If given an object of the same class as the current object, selects that
object as the current object and continues executing the code with that
object instead. This new current object is not saved if you return from
a function or a subroutine call. If it successfully chained, then the
result is false. If given an object of a different class, an object that
doesn't exist, or anything other than an object, then it does nothing
|
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
|
otherwise it tries the other parts; "else" means always do this if none of
the previous parts match.
mbegin <body> repeat ( -- any ) ( -- )
The "mbegin" instruction is a shortcut for "begin tmark while", and it has
the same behaviour.
=== Substitution codes ===
%c
Display a single character whose code is the low 8-bits of the value.
%C
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
|
otherwise it tries the other parts; "else" means always do this if none of
the previous parts match.
mbegin <body> repeat ( -- any ) ( -- )
The "mbegin" instruction is a shortcut for "begin tmark while", and it has
the same behaviour.
=== Case blocks ===
A case block consists of (case) with the cases listed inside of the () after
the word "case". Each case consists of two tokens inside of their own
parentheses. The first token may be any one of:
* A number or direction (representing a number from 0 to 15); only the low
16-bits of the number will be used
* A class
* A message
* The word "else"; if present, it must be the last one. This is the case if
none of the other cases match. It is optional; if not specified, then the
default is zero or to not jump.
The second token may be any one of:
* A number or direction (representing a number from 0 to 15); this must fit
in 16-bits (unsigned)
* A class
* A message
* A string literal
* A label name (with the colon at first)
All types on the left must be the same as each other, and all types on the
right must be the same as each other, except that zero may be mixed with
other types other than labels.
If the right side is a label, then nothing is pushed to the stack, and it
jumps to the specified label instead. If not, then the result is pushed to
the stack instead.
=== Substitution codes ===
%c
Display a single character whose code is the low 8-bits of the value.
%C
|