## 8.3 The `Defaults' file

The `Defaults` file consists of statements. Each statement is on a separate line. A statement may be split over several lines by preceeding the newline with a backslash (`\`). The exclamation mark (`!`) is the line-comment character. All input from the `!` upto the following newline is replaced by a single space-character. Empty lines or lines containing only blank space are ignored.

Default files may include other default files using the statement

> `#include` <file>

Default statements are of the form:

> <class>.<class-variable>: <value>

Where <class> denotes the name of the class, or `*` to indicate the default applies for any class defining this class-variable. If both forms are found, the statement with the explicit class-name is used. <class-variable> denotes the class-variable name. <value> is the default value of the class-variable. The syntax for <value> is similar to the arguments of send/[2-12]. The (informal) syntax for <value> is below.

> <Any> | ::= | <int>
> | | | <float>
> | | | <Name>
> | | | @<Name>
> | | | <Chain>
> | | | <Object>
> <Chain> | ::= | `[` <Any> {, <Any>} `]`
> | | | `[` <Blank> `]`
> <Object> | ::= | <ClassName>`()`
> | | | <ClassName>`(` <Any> {, <Any>} `)`
> | | | <PrefixOp> <Any>
> | | | <Any> <InfixOp> <Any>
> | | | <Any> <PostfixOp>
> | | | `"` <String> `"`
> <String> | ::= | {<CharNotDoubleQuote>|`""`}
> <Name> | ::= | <Letter>{<Letter>|<Digit>}
> | | | `'` {<CharNotSingleQuote>|`''`} `'`