Names, Namespaces, Keywords and Options
In STx 'names' are identification strings. They are used for the following:
- macro and spu source code definitions
- labels within macros
- item inputs and outputs
- table fields
- table data
Unless specified otherwise, names can contain the following characters:
a' .. '
0' .. '
&' and '
The first character must be a letter or a symbol (not a digit). Names are generally not case sensitive ('
AName' is equal to '
aname'). One notable exception are segment names.
Variables may not contain the symbol '
_'. The symbols ('
@' and '
&') are used as first character to address a particular namespace. In some commands, two names are concatenated to form an identifier. E.g.
Audio segment names may not contain the following characters:
Audio segments are case sensitive and should not contain blank spaces.
Table Field Names
The data type name used in tables differs from other names:
- a name need not to be unique inside a table (row).
- a name can be split into parts with the character '.' (dot)
- names may be case-sensitive searched and compared (e.g. segments; this depends, however, on the way the macro has been programmed) wildcards ('*' and '?') can be used in search and compare functions
- the rules used are those used for windows file names rather than an STx specification. However, the following characters should not be used because of their special meaning in STx: quotes (
), square brackets (
[ ]), and the dollar symbol (
- if extended ASCII characters (e.g. from the German character set: ö, ä, ß, ...) or parsing symbols (blanks, tabs) are used, the name must be surrounded by quotes, if accessed in command lines (e.g. '
NAMEFIELDcontains extended characters).
A namespace (or environment) defines the context within which a name must be unique and from which the entity identified by the name can be accessed. The table below lists the different namespaces.
|namespace for ...||context||visible from macros / classes|
|macro and class source code||whole application||All|
|SPU source code||whole application||All|
|shell items||a shell||inside the owning shell|
|arguments (inputs), outputs and local functions of an SPU source||SPU source code||inside the owning shell; arguments/inputs are specified on spu item instantiation; outputs can be used to connect an spu item|
|input and outputs of items (e.g. graphs)||the owning item||inside the owning shell; inputs/ outputs can be used to connect the item|
|macro labels and class member functions||macro/class source code||labels can only be used inside the source code; member functions can be accessed from inside the shell (public) or the instance (protected / private)|
|global variables||whole application||all|
|shell variables||a shell||inside the owning shell|
|local variables||macro or class||inside the macro or member function|
|instance variables||instance||inside the class / instance; inside the shell if instance name is known|
Most shell commands use keywords to select a (sub-) function or pass special arguments (e.g. colors). All keywords can be abbreviated to the shortest unique form (e.g. the color
WHITE can be abbreviated to
W, but the shortest form for
GR can also mean
GRAY). All keywords (except those used for options) are case insensitive.
A command may be parsed options in the format /O or /O=value. An option begins with the character '
/'. Options may be case sensitive, e.g. /O does not necessarily have the same effect as /o.
In this documentation, if an option is documented using mixed case, where one letter is capitalised, the capitalised letter is the option (e.g. /centRe should be written as /R when coding).
If you need to specify a forward slash in a command, which should not be parsed as an option, you can do so after specifying the option '/-'. E.g.:
#a := quote /the first word and the last word are /missing
#a := quote /- /neither the first nor the last word is /missing
In contrast to other keywords, some option names and values are case sensitive.