Difference between revisions of "SCI Programming Language/Definitions"
(→enum) |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 24: | Line 24: | ||
| | ||
− | + | ==<br /> define == | |
+ | <blockquote> | ||
The define statement allows you to define a symbol which will stand for a string of text: | The define statement allows you to define a symbol which will stand for a string of text: | ||
− | (define symbol lots of text) | + | <blockquote><code>(define symbol lots of text)</code></blockquote> |
will replace symbol, wherever it is encountered as a token, with lots of text and then continue scanning at the beginning of the replacement text. Thus, if we write: | will replace symbol, wherever it is encountered as a token, with lots of text and then continue scanning at the beginning of the replacement text. Thus, if we write: | ||
− | (define symbol some text) | + | <blockquote> |
− | (define same even more) | + | <code>(define symbol some text)</code><br /> |
+ | <code>(define same even more)</code> | ||
+ | </blockquote> | ||
then: | then: | ||
− | (symbol) | + | <blockquote><code>(symbol)</code></blockquote> |
will become: | will become: | ||
− | (some text) | + | <blockquote><code>(some text)</code></blockquote> |
which then becomes: | which then becomes: | ||
− | (even more text) | + | <blockquote><code>(even more text)</code></blockquote> |
− | + | </blockquote> | |
− | |||
+ | ==<br /> enum == | ||
+ | <blockquote> | ||
The enum statement eases the definition of the various states of a state-variable. Say you want to walk an actor from the door of a room across the floor, up the stairs, and through another door. You have a state-variable called actor-pos which will take on a number of values. These could be defined with defines as follows: | The enum statement eases the definition of the various states of a state-variable. Say you want to walk an actor from the door of a room across the floor, up the stairs, and through another door. You have a state-variable called actor-pos which will take on a number of values. These could be defined with defines as follows: | ||
+ | <blockquote> | ||
<div class="CodeBlockHeader">Code:</div> | <div class="CodeBlockHeader">Code:</div> | ||
<syntaxhighlight lang="sci"> | <syntaxhighlight lang="sci"> | ||
Line 61: | Line 66: | ||
) | ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | </blockquote> | ||
or you could get the same result with enum: | or you could get the same result with enum: | ||
+ | <blockquote> | ||
<div class="CodeBlockHeader">Code:</div> | <div class="CodeBlockHeader">Code:</div> | ||
<syntaxhighlight lang="sci"> | <syntaxhighlight lang="sci"> | ||
Line 76: | Line 83: | ||
) | ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | </blockquote> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
Enum defaults its first symbol to O. If you want a different starting value, put it right after the word enum: | Enum defaults its first symbol to O. If you want a different starting value, put it right after the word enum: | ||
+ | <blockquote> | ||
<div class="CodeBlockHeader">Code:</div> | <div class="CodeBlockHeader">Code:</div> | ||
<syntaxhighlight lang="sci"> | <syntaxhighlight lang="sci"> | ||
Line 96: | Line 98: | ||
) | ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | </blockquote> | ||
− | sets AT FRONT_ DOOR to 7, IN _ ROOM to 8, etc. | + | sets <code>AT FRONT_ DOOR</code> to 7, <code>IN _ ROOM</code> to 8, etc. |
The value of an enum may also be defined by an expression, as follows: | The value of an enum may also be defined by an expression, as follows: | ||
+ | <blockquote> | ||
<div class="CodeBlockHeader">Code:</div> | <div class="CodeBlockHeader">Code:</div> | ||
<syntaxhighlight lang="sci"> | <syntaxhighlight lang="sci"> | ||
Line 107: | Line 111: | ||
) | ) | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | </blockquote> | ||
Note: Define and enum statements may be included within both global and local variable definitions. | Note: Define and enum statements may be included within both global and local variable definitions. | ||
+ | </blockquote> | ||
+ | |||
+ | ;Notes | ||
+ | <references /> | ||
+ | |||
+ | [[SCI Programming Language | Table of Contents]] | ||
+ | |||
+ | <span style="float: left">[[SCI Programming Language/Data Types and Variables|< Previous: Data Types and Variables]]</span> | ||
+ | <span style="float: right">[[SCI Programming Language/Control Flow|Next: Control Flow >]]</span> | ||
+ | | ||
− | + | [[Category:SCI Documentation]] | |
+ | [[Category:SCI32]] | ||
+ | [[Category:Scripting]] |
Latest revision as of 22:54, 25 May 2016
define
The define statement allows you to define a symbol which will stand for a string of text:
(define symbol lots of text)
will replace symbol, wherever it is encountered as a token, with lots of text and then continue scanning at the beginning of the replacement text. Thus, if we write:
(define symbol some text)
(define same even more)
then:
(symbol)
will become:
(some text)
which then becomes:
(even more text)
enum
The enum statement eases the definition of the various states of a state-variable. Say you want to walk an actor from the door of a room across the floor, up the stairs, and through another door. You have a state-variable called actor-pos which will take on a number of values. These could be defined with defines as follows:
Code:(local actorPos define AT FRONT DOOR 0) define IN ROOM 1) define ON STAIRS 2) define TOP OF STAIRS 3) define UPPER DOOR 4) )or you could get the same result with enum:
Code:(local actor-pos (enum AT FRONT DOOR IN ROOM ON STAIRS TOP OF STAIRS UPPER DOOR ) )Enum defaults its first symbol to O. If you want a different starting value, put it right after the word enum:
Code:(enum 7 AT FRONT DOOR IN ROOM ON STAIRS TOP OF STAIRS UPPER DOOR )sets
AT FRONT_ DOOR
to 7,IN _ ROOM
to 8, etc.The value of an enum may also be defined by an expression, as follows:
Code:(enum AT FRONT DOOR = (+ AT REAR DOOR 1) )Note: Define and enum statements may be included within both global and local variable definitions.
- Notes
< Previous: Data Types and Variables Next: Control Flow >