The !assemble command parses and executes a specification file or option list in the format described below. The file text contains keyword directives and values which specify the operations to be performed. Each active line begins with a keyword, and all keywords are case-insensitive. Blank lines and lines that begin with non-alpha characters are taken as comments and are ignored. Unrecognized tokens will generate an error and no processing will be done. There is an almost one-to-one correspondence between file keywords and equivalent command-line options. For options that require a string, the string can be double-quoted ("..."), and these must be quoted if they contain white-space.
The command input can either come from a file, or from the command-line arguments, but not both.
Overall, the input logically contains three levels of directives:
The Header Block contains a mandatory output file specification line, and optional additional lines. The Source Block contains a reference to a source file, and may contain zero or more Placement Blocks, which identify a particular cell from that file. The specification must contain at least one Source Block.
Indentation can be used in the specification file to highlight the scoping. The same logic applies in an argument list, but may be less visible since all options appear in one line.