5.1 Module Body Structure

procedural-module-body = LINE-START  procedural-module-declaration-section  

                          LINE-START  procedural-module-code-section 
 class-module-body = LINE-START  class-module-declaration-section 
                     LINE-START  class-module-code-section 

Both procedural modules (section 4.2) and class modules (section 4.2) have module bodies (section 4.2) that consist of two parts, a declaration section (section 5.2) and a code section (section 5.3). Each section MUST occur as the first syntactic element of a physical line of its containing source file.

Throughout this specification the following common grammar rules are used for expressing various forms of entity (section 2.2) names:

 unrestricted-name = name / reserved-identifier 
 name = untyped-name / TYPED-NAME / file-number
 untyped-name = IDENTIFIER / FOREIGN-NAME