Command File SyntaxEpsilon's command files appear in a human-readable format, so you can easily modify them. Parentheses surround each command. Inside the parentheses appear a command name, and optionally one or more arguments. The command can be one of several special commands described in the next section, or most any EEL subroutine. See the next section for details.
Each argument can be either a number, a string, or a key list (a special type of string). Spaces separate one argument from the next. Thus, each command looks something like this:
You can include comments in a command file by putting a semicolon or hash sign ("#") anywhere an opening parenthesis may appear. Such a comment extends to the end of the line. You cannot put a comment inside a string.
For numbers, you can include bases using a prefix of "0x" for
hexadecimal, "0o" for octal, or "0b" for binary, or use an
EEL-style character constant like
A few commands such as
You can also use the special key syntax
In addition to the above command syntax with commands inside
parentheses, command files may contain lines that define variables,
macros, key tables or bindings. Epsilon understands all the different
types of lines generated by the list-all,
list-customizations, import-customizations, and
similar commands. When Epsilon records customizations in your
Besides listing variables, macros, key tables, and bindings, the above commands also create lines that report that a particular command or subroutine written in Epsilon's EEL extension language exists. These lines give the name, but not the definition, because command files can't define EEL functions. When Epsilon sees a line like that, it makes sure that a command or subroutine with the given name exists. If not, it reports an error. Epsilon does the same thing with variables that have complicated types (pointers or structures, for example).