SCI Programming Language/Definitions: Difference between revisions

From Sierra Wiki
Jump to navigationJump to search
m (1 revision imported)
 
m (1 revision imported)
 
(No difference)

Latest revision as of 00:14, 3 June 2024

Official SCI Documentation

Chapter: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | Index


Definitions
Author: Jeff Stephenson

 


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:

<syntaxhighlight lang="sci"> (local actorPos define AT FRONT DOOR 0) define IN ROOM 1) define ON STAIRS 2) define TOP OF STAIRS 3) define UPPER DOOR 4) ) </syntaxhighlight>

or you could get the same result with enum:

Code:

<syntaxhighlight lang="sci"> (local actor-pos (enum AT FRONT DOOR IN ROOM ON STAIRS TOP OF STAIRS UPPER DOOR ) ) </syntaxhighlight>

Enum defaults its first symbol to O. If you want a different starting value, put it right after the word enum:

Code:

<syntaxhighlight lang="sci"> (enum 7 AT FRONT DOOR IN ROOM ON STAIRS TOP OF STAIRS UPPER DOOR ) </syntaxhighlight>

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:

<syntaxhighlight lang="sci"> (enum AT FRONT DOOR = (+ AT REAR DOOR 1) ) </syntaxhighlight>

Note: Define and enum statements may be included within both global and local variable definitions.

Notes


Table of Contents

< Previous: Data Types and Variables Next: Control Flow >