Skip to content

Class name

Leon Starr edited this page Jul 30, 2026 · 1 revision

A class population starts with the name of the class being populated, unindented and alone on its line:

Accessible Shaft Level
Shaft | Floor | Bank | Stop requested
--
{ [S6] [PH] [Freight] [false] } > NOT REQUESTED
--

The grammar is a single term:

class_name = icaps_name EOL

So the name is an icaps_name: one or more words separated by single spaces or underscores with the first letter of the first word uppercase. By convention every word in a class name starts with an uppercase letter, with the exception of interstitial minor words like and or of, which matches the convention used for class names in the xcm file.

Only single spaces are accepted between the words of a name. Accessible Shaft Level with two spaces will not parse, so you cannot pad class names to line them up.

Matching the class model

The name should be the full class name as spelled in the xcm class model file for the domain. The parser does not read the xcm file, so it cannot verify this. It passes the name through verbatim as the key identifying the population in its result, which means the execution engine consuming the result is what ultimately has to recognize the name.

Nothing in the grammar prevents you from using the class alias declared in the xcm file — ASLEV parses just as happily as Accessible Shaft Level, since an all caps word is a valid icaps_name. Whether the consumer accepts an alias is up to the consumer, so prefer the full name unless you know otherwise.

Clone this wiki locally