Difference between revisions of "The Script Programming Language"

From SCI Wiki
Jump to navigationJump to search
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[The Original SCI Documentation]]<br />
+
[[Official SCI Documentation]]<br />
  
 
<div align="center"><span style="font-size: 22pt">The Script Programming Language</span><br />
 
<div align="center"><span style="font-size: 22pt">The Script Programming Language</span><br />
Line 5: Line 5:
 
Date: 4 April 1988</div>
 
Date: 4 April 1988</div>
  
 +
<blockquote>
 +
*[[The Script Programming Language/Introduction | Introduction]]
 
*[[The Script Programming Language/Files | Files]]
 
*[[The Script Programming Language/Files | Files]]
 
*[[The Script Programming Language/Definitions | Definitions]]
 
*[[The Script Programming Language/Definitions | Definitions]]
Line 17: Line 19:
 
*[[The Script Programming Language/Procedures | Procedures]]
 
*[[The Script Programming Language/Procedures | Procedures]]
 
*[[The Script Programming Language/Using SC | Using SC]]
 
*[[The Script Programming Language/Using SC | Using SC]]
 
+
*[[The Script Programming Language/Index | Index]]
&nbsp;
 
 
 
==<br /> Introduction ==
 
 
 
The Script adventure game language is an object-oriented language with a Lisp-like syntax. It is compiled by the sc compiler into the pseudo-code which is used by the interpreter, sci.
 
 
 
We will begin our discussion of the language with its basic Lisp-like characteristics, then go on to the object-oriented parts of the language.
 
 
 
As is Lisp, Script is based on parenthesized expressions which return values. An expression is of the form
 
 
 
<blockquote>
 
<div class="CodeBlockHeader">Code:</div>
 
<syntaxhighlight lang="sci">
 
(procedure [parameter parameter ...]).
 
</syntaxhighlight>
 
 
</blockquote>
 
</blockquote>
  
The parameters to a procedure may themselves be expressions to be evaluated, and may be nested until you lose track of the parentheses.
+
<div align="center">
 +
Chapter:
 +
[[The Script Programming Language/Introduction|1]] |
 +
[[The Script Programming Language/Files|2]] |
 +
[[The Script Programming Language/Definitions|3]] |
 +
[[The Script Programming Language/Data Types and Variables|4]] |
 +
[[The Script Programming Language/Primitive Procedures|5]] |
 +
[[The Script Programming Language/Control Flow|6]] |
 +
[[The Script Programming Language/Procedures|7]] |
 +
[[The Script Programming Language/Using SC|8]] |
 +
[[The Script Programming Language/Index|Index]]
 +
</div><br />
  
Unlike Lisp, the procedure itself may NOT be the result of an evaluation. An example of an expression is
+
* [[Media:SCRIPT.pdf|Download The Script Programming Language in PDF Form]]<br />
  
<blockquote>
 
<div class="CodeBlockHeader">Code:</div>
 
<syntaxhighlight lang="sci">
 
(+ (- y 2) (/ x 3))
 
</syntaxhighlight>
 
</blockquote>
 
  
which would be written in infix notation as
+
&nbsp;
 
 
<blockquote>
 
<div class="CodeBlockHeader">Code:</div>
 
<syntaxhighlight lang="sci">
 
      (y - 2) + (x / 3).
 
</syntaxhighlight>
 
</blockquote>
 
  
All expressions are guaranteed to be evaluated from left to right. Thus,
+
<span style="float: left"><span class="Inactive">&lt; Previous: </span></span><span style="float: right">[[The Script Programming Language/Introduction|Next: Introduction &gt;]]</span>
  
<blockquote>
+
&nbsp;
<div class="CodeBlockHeader">Code:</div>
 
<syntaxhighlight lang="sci">
 
(= x 4)
 
(= y (/ (+= x 4) (/= x 2)))
 
</syntaxhighlight>
 
</blockquote>
 
 
 
will result in y = 2 and x = 4.
 
 
 
Comments in Script begin with a semi-colon, ';', and continue to the end of the line.
 
 
 
== <br />Files ==
 
 
 
== <br /> Definitions ==
 
 
 
==<br /> Data Types and Variables ==
 
 
 
== <br /> Primitive Procedures ==
 
 
 
==<br /> Control Flow ==
 
 
 
==<br /> Procedures ==
 
 
 
==<br /> Using SC ==
 
 
 
== <br />Index ==
 
  
!  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
+
[[Category:SCI Documentation]]
!= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
+
[[Category:Scripting]]
+  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
 
++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
+= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
-  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
 
-- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
-= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
<nowiki>*</nowiki>  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
 
<nowiki>*=</nowiki> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
/  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
 
/= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
^  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
 
^= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
<  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
 
<< . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
 
<<=  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
<= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
 
=  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
== . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
 
>  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
 
>= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
 
>> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
 
>>=  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
&  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
 
&= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
&rest  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />
 
|  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
 
|= . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
~  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
 
and  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
 
arithmetic primitives  . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
 
array  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9<br />
 
arrays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  9<br />
 
assignment primitives  . . . . . . . . . . . . . . . . . . . . . . . . . 15<br />
 
base.sh  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  4<br />
 
boolean primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
 
break  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
 
breakif  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
 
characters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
 
classdef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  4<br />
 
classtbl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  4<br />
 
cond . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
 
conditionals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
 
contif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
 
continue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
 
define . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6<br />
 
enum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  6<br />
 
extern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />
 
for  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
 
global . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8<br />
 
if . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
 
include  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5<br />
 
iteration  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
 
kernal.sh  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  4<br />
 
local  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8<br />
 
mod  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
 
not  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
 
numbers  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8<br />
 
options  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
 
or . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />
 
pointers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
 
procedure  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19, 20<br />
 
public . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
 
repeat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
 
return . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16<br />
 
sc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />
 
script#  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5<br />
 
selector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  4<br />
 
<nowiki>    literal</nowiki> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12<br />
 
SINCLUDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  5<br />
 
switch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
 
synonyms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  7<br />
 
text . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
 
variables  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8<br />
 
<nowiki>    global</nowiki>  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8<br />
 
<nowiki>    local</nowiki> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  8<br />
 
<nowiki>    temporary</nowiki> . . . . . . . . . . . . . . . . . . . . . . . . . . .  8, 19<br />
 
vocab.000  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  4<br />
 
while  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />
 
word strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />
 

Latest revision as of 20:12, 2 December 2015