Figure 2.1. Concrete Syntax for Systems
|
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:
constant declaration (<const>),
enumeration declaration (<enum>),
record declaration (<record>),
extension declaration (<extension>),
type-alias declaration (<type-alias>),
global variable declaration (<global-var>),
thread and function declarations (<fsm>),
virtual table declaration (<virtual-table>), and
functional expression declaration (<fun>).
Namespace. System has its own namespace and it is not shared with any other constructs.
Abstract Syntax Tree.
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.