ANML contains three foundational elements and two container elements. Connections are made among these elements to create an automata network.
The automata network element is a top-level element that houses the complete design.
The foundational elements must be created within the top-level automata network element or a macro. These elements can receive activation signals from each other and can generate activation signals to downstream elements. The way in which these elements are configured and connected defines the task an automata network is programmed to perform. In other words, programming an automaton really means placing, configuring, and connecting these basic elements (and macros) to each other.
The macro element can contain any number of foundational elements as well as other macro elements. Macros have input and output connections so they can be connected to other macros or to sibling foundational elements. Macros can be compared to functions in a traditional programming language; they encapsulate a certain set of predefined behavior and can be used to modularize a design.