Class files declare global information used throughout a program or library. They describe the build process and define data structures, enumerated types, and global variables.
To build a program or library you designate the primary Class which begins a process that imports all other Classes included in the build. The next phase of the build compiles all necessary procedures. Finally the program is linked or the library is constructed.
ClassFile := ClassDeclaration ClassPreamble* ClassBody* "end" End ClassDeclaration := Class Name [GenericList] ["private" | "public" Name] ["align" Integer] [UserType] UserType := EnumeratedType | StructureType EnumeratedType := "in" {EnumeratedValue [',' ...]} | {'0' "to" Decimal} EnumeratedValue := DecimalDigit* | {Alpha {AlphaNumeric | '_' | '.'}}* StructureType := "is" Declaration [',' ...] GenericList := (Parameter [',' ...]) ClassPreamble := ImportDeclaration | TypeDeclaration | GlobalDeclaration | UseDeclaration ImportDeclaration := "import" Name[( Name | DecimalDigit* [',' ...])] TypeDeclaration := "type" Name UserType GlobalDeclaration := "global" Name Declaration [',' ...] UseDeclaration := "use" UseClassGlobal [',' ...] UseClassGlobal := Name ['*' | {'/' Name*}] ClassBody := PrimaryProcedure {ClassProcedure | DependentProcedure | ProcedureSignature} PrimaryProcedure := ['*' DependentProcedure] Compiler Name ["root"] [DependentProcedure] Eoc ClassProcedure := Compiler Name [DependentProcedure] DependentProcedure := '=>' Name* ProcedureSignature := {MethodSignature | FunctionSignature} [Precondition] MethodSignature := "method" Name MethodParameter* FunctionSignature := "function" Name EntryParameter* ExitParameter