|
|
| Line 24: |
Line 24: |
| | | | |
| | | | |
| − |
| |
| − | ==<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>
| |
| − |
| |
| − | The parameters to a procedure may themselves be expressions to be evaluated, and may be nested until you lose track of the parentheses.
| |
| − |
| |
| − | Unlike Lisp, the procedure itself may NOT be the result of an evaluation. An example of an expression is
| |
| − |
| |
| − | <blockquote>
| |
| − | <div class="CodeBlockHeader">Code:</div>
| |
| − | <syntaxhighlight lang="sci">
| |
| − | (+ (- y 2) (/ x 3))
| |
| − | </syntaxhighlight>
| |
| − | </blockquote>
| |
| − |
| |
| − | which would be written in infix notation as
| |
| − |
| |
| − | <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,
| |
| − |
| |
| − | <blockquote>
| |
| − | <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.
| |
| | | | |
| | ;Notes | | ;Notes |