2.2. System

Figure 2.1. Concrete Syntax for Systems

[1] <system> ::= "system" <system-id> "{" <system-member>* "}"  
[2] <system-member> ::= <const> | <enum> | <record> | <extension> | <type-alias> | <global-var> | <fsm> | <virtual-table> | <fun>  

Figure 2.1, “Concrete Syntax for Systems” presents the concrete syntax for BIR models. A BIR model begins with a declaration of the system identifier <system-id> followed by declarations of its members:

Namespace. System has its own namespace and it is not shared with any other constructs.

Abstract Syntax Tree. 

Figure 2.2. Java AST for System

Java AST for System
[ .gif, .svg ]

The abstract syntax tree class for BIR system is the System class[1]. The top level Java AST class for system member is the SystemMember class.

Before we describe each system member, we first describe BIR identifiers, types, and literals, as they are used in various places when describing the system members.

[1] The fully qualified name is edu.ksu.cis.projects.bogor.ast.System. However, we are going to use only the simple name of the class for readability.