D 2018-11-18T23:38:21.601
L Class\sdefinition\sfile
U zzo38
W 2235
The class definition file is a plain text file, which conists of a stream of tokens. Encoding is with [https://en.wikipedia.org/wiki/Code_page_437|PC character set] (a superset of ASCII, although it is recommended to just use ASCII and to escape any non-ASCII characters).
The possible kind of tokens are:
* Open: Write ( to begin a block.
* Close: Write ) to end a block.
* Plain name: A plain word without the prefix to indicate what kind (although , and = prefixes may still be possible). The set of possible plain names is fixed; you cannot define your own.
* Number: A 32-bit integer. Can be positive or negative (with - prefix), or can be hexadecimal with 0x at first, or octal with 0o at first.
* String: A quoted string. See also [formatting controls]. Any backslashes and quotation marks must be escaped, and there should not be unescaped line breaks.
* Class: A name with $ at first. Class names are global, are user-defined, and do not need to be declared before they are used (but must still be declared in the same file).
* User sound: A name with ! at first. Must be a sound name in the [Picture file format|.xclass file], without the .WAV suffix.
* User local variable: A name with % at first. Local variable names are scoped to the definition of a class, and need not ever be declared.
* User global variable: A name with @ at first. Global, and need not be declared.
* User message: A name with # at first. Global, and need not be declared.
* Label: A name with : at first. Scoped to the definition of a class. Must exist within that class (although it can be in a different message block) to jump to it.
* User function: A name with & at first. Global, and must be declared if used.
* Key name: A name with ' at first. You can't define your own; see [Hero Mesh key name] for a list. These are not necessarily bound to the same physical keys that they are named, however.
Also:
* Comments: Start with ; (outside of a string literal) and up to the next line break is a comment.
* Macros: See [Preprocessor].
Z eef675b54252f3024c04957759c748c8