Open main menu

Difference between revisions of "SCI/Specifications/SCI in action/Parser"

Merging of the SCI documentation. Work in progress.
(Merging of the SCI documentation. Work in progress.)
(Merging of the SCI documentation. Work in progress.)
Line 402: Line 402:
==Said specs==
==Said specs==
To test what the player wanted to say, SCI compares <i>T</i><sub>&pi;</sub> with a second tree, <i>T</i><sub>&Sigma;</sub> , which is built from a so-called Said spec. A Said spec is a variable-sized block in SCI memory which consists of a set of byte-sized operators and special tokens (stored in the range 0xf0 to 0xf9) and word groups (in big-endian notation, so that they don't conflict with the operators); it is terminated by the special token 0xff. The meanings of the operators and special tokens are as follows:
To test what the player wanted to say, SCI compares <i>T</i><sub>&pi;</sub> with a second tree, <i>T</i><sub>&Sigma;</sub> , which is built from a so-called Said spec. A Said spec is a variable-sized block in SCI memory which consists of a set of byte-sized operators and special tokens (stored in the range 0xf0 to 0xf9) and word groups (in big-endian notation, so that they don't conflict with the operators); it is terminated by the special token 0xff. The meanings of the operators and special tokens are as follows:
{| border="1"
|Operator
|Byte representation
|Meaning
|----
|,
|f0
|"OR". Used to specify alternatives to words, such as "take, get".
|----
|&
|f1
|Unknown. Probably used for debugging.
|----
|/
|f2
|Sentence part separator. Only two of these tokens may be used, since sentences are split into a maximum of three parts.
|----
|(
|f3
|Used together with ')' for grouping
|----
|)
|f4
|See '('
|----
|[
|f5
|Used together with ']' for optional grouping. "[a]" means "either <i>a</i> or nothing".
|----
|]
|f6
|See '['.
|----
|#
|f7
|Unknown assumed to have been used for debugging, if at all.
|----
|<
|f8
|Semantic reference operator (as in "get < up").
|----
|>
|f9
|Instructs Said() not to claim the event passed  to the previous Parse() call on a match. Used for succesive matching.
|}


==Notes==
==Notes==
<references/>
<references/>
236

edits