Skip to content

Domain and Subsystem Grammar

Leon Starr edited this page Jul 23, 2026 · 3 revisions

We create a separate xcm file for each subsystem within a domain. Since the example Elevator Management domain consists of only one subsystem, the domain specifies only one xcm file.

Before we get to the class section, we specify the domain and subsystem of this xcm file.

domain Elevator Management, EVMAN
subsystem Elevator, ELEV 1-99

The grammar for the two combined lines is the subsystem term (which includes the domain line):

subsystem = EOL* metadata? domain_header subsystem_header class_set rel_section? EOF
domain_header = "domain" SP domain_name domain_alias EOL*  // Declares the name of the domain
domain_name = icaps_name
domain_alias = ',' SP acword
subsystem_header = "subsystem" SP subsystem_name subsystem_alias SP num_range EOL* // Declares the name of the subsystem
subsystem_name = icaps_name
subsystem_alias = ',' SP acword
num_range = ordinal '-' ordinal

See the side bar for a detailed breakdown of each of the two lines.

Clone this wiki locally