Foreword
1. Scope
2. Reference
3. Definitions
3.1 Dynamic-Violation
3.2 Error
3.3 Extension
3.4 Implementation-Defined
3.5 Implementation-Dependent
3.6 Processor
4. Definitional Conventions
5. Compliance
5.1 Processors
5.2 Programs
6. Requirements
6.1 Lexical Tokens
6.1.1 General
6.1.2 Special-Symbols
6.1.3 Identifiers
6.1.4 Remote-Directives
6.1.5 Interface Directives
6.1.6 Implementation-Directives
6.1.7 Numbers
6.1.8 Labels
6.1.9 Character-Strings
6.1.10 Token Separators
6.1.11 Lexical Alternatives
6.2 Blocks, Scopes, Activations, and States
6.2.1 Blocks
6.2.2 Scopes
6.2.3 Activations
6.2.4 States
6.3 Constants
6.3.1 General
6.3.2 Example of a Constant-Definition-Part
6.4 Types and Schemata
6.4.1 Type-Definitions
6.4.2 Simple-Types
6.4.2.1 General
6.4.2.2 Required Simple-Types and Associated Constants
6.4.2.3 Enumerated-types
6.4.2.4 Subrange-Types
6.4.2.5 Restricted-Types
6.4.3 Structured-Types
6.4.3.1 General
6.4.3.2 Array-Types
6.4.3.3 String-Types
6.4.3.3.1 General
6.4.3.3.2 Fixed-String-Types
6.4.3.3.3 Variable-String-Types
6.4.3.4 Record-Types
6.4.3.5 Set-Types
6.4.3.6 File-Types
6.4.4 Pointer-Types
6.4.5 Compatible Types
6.4.6 Assignment-Compatibility
6.4.7 Schema-Definitions
6.4.8 Discriminated-Schemata
6.4.9 Type-Inquiry
6.4.10 Example of a Type-Definition-Part
6.5 Declarations and Denotations of Variables
6.5.1 Variable-Declarations
6.5.2 Entire-Variables
6.5.3 Component-Variables
6.5.3.1 General
6.5.3.2 Indexed-Variables
6.5.3.3 Field-Designators
6.5.4 Identified-Variables
6.5.5 Buffer-Variables
6.5.6 Substring-Variables
6.6 Initial States
6.7 Procedure and Function Declarations
6.7.1 Procedure-Declarations
6.7.2 Function-Declarations
6.7.3 Parameters
6.7.3.1 General
6.7.3.2 Value Parameters
6.7.3.3 Varaible Parameters
6.7.3.4 Procedural Parameters
6.7.3.5 Functional Parameters
6.7.3.6 Parameter List Congruity
6.7.3.7 Conformant Array Parameters
6.7.3.7.1 General
6.7.3.7.2 Value Conformant Arrays
6.7.3.7.3 Variable Conformant Arrays
6.7.3.8 Conformability
6.7.4 Required Procedures and Functions
6.7.5 Required Procedures
6.7.5.1 General
6.7.5.2 File Handling Procedures
6.7.5.3 Dynamic Allocation Procedures
6.7.5.4 Transfer Procedures
6.7.5.5 String Procedures
6.7.5.6 Binding Procedures
6.7.5.7 Control Procedures
6.7.5.8 Time Procedures
6.7.6 Required Functions
6.7.6.1 General
6.7.6.2 Arithmetic Functions
6.7.6.3 Transfer Functions
6.7.6.4 Ordinal Functions
6.7.6.5 Boolean Functions
6.7.6.6 Direct-Access Position Functions
6.7.6.7 String Functions
6.7.6.8 Binding Functions
6.7.6.9 Time Functions
6.8 Expressions
6.8.1 General
6.8.2 Constant-Expressions
6.8.3 Operators
6.8.3.1 General
6.8.3.2 Arithmetic Operators
6.8.3.3 Boolean Operators
6.8.3.4 Set Operators
6.8.3.5 Relational Operators
6.8.3.6 String Operator
6.8.4 Schema-Discriminants
6.8.5 Function-Designators
6.8.6 Function-Accesses
6.8.6.1 General
6.8.6.2 Indexed-Function-Accesses
6.8.6.3 Record-Function-Accesses
6.8.6.4 Function-Identified-Variables
6.8.6.5 Substring-Function-Accesses
6.8.7 Structured-Value-Constructors
6.8.7.1 General
6.8.7.2 Array-Values
6.8.7.3 Record-Values
6.8.7.4 Set-Values
6.8.8 Constant-Accesses
6.8.8.1 General
6.8.8.2 Indexed-Constants
6.8.8.3 Field-Designated-Constants
6.8.8.4 Substring-Constants
6.9 Statements
6.9.1 General
6.9.2 Simple-Statements
6.9.2.1 General
6.9.2.2 Assignment-Statements
6.9.2.3 Procedure-Statements
6.9.2.4 Goto-Statements
6.9.3 Structured-Statements
6.9.3.1 General
6.9.3.2 Compound-Statements
6.9.3.3 Conditional-Statements
6.9.3.4 If-Statements
6.9.3.5 Case-Statements
6.9.3.6 Repetitive-Statements
6.9.3.7 Repeat-Statements
6.9.3.8 While-Statements
6.9.3.9 For-Statements
6.9.3.9.1 General
6.9.3.9.2 Sequence-Iteration
6.9.3.9.3 Set-Member-Iteration
6.9.3.10 With-Statements
6.9.4 Threats
6.10 Input and Output
6.10.1 The Procedure Read
6.10.2 The Procedure Readln
6.10.3 The Procedure Write
6.10.3.1 Write-Parameters
6.10.3.2 Char-Type
6.10.3.3 Integer-Type
6.10.3.4 Real-Type
6.10.3.4.1 The Floating-Point Representation
6.10.3.4.2 The Fixed-Point Representation
6.10.3.5 Boolean-Type
6.10.3.6 String-Types
6.10.4 The Procedure Writeln
6.10.5 The Procedure Page
6.11 Modules
6.11.1 Module-Declarations
6.11.2 Export-Part
6.11.3 Import-Specifications
6.11.4 Required Interfaces
6.11.4.1 General
6.11.4.2 StandardInput and StandardOutput
6.11.5 Example of a Module
6.11.6 Examples of Program-Components That Are Module-
Declarations
6.11.7 Example of Exporting a Range of Enumerated-Type
Values
6.12 Main-Program-Declarations
6.13 Programs
APPENDICES
Appendix A
A.1 Collected Syntax
A.2 Index of Terminals
A.3 Index of Nonterminals
A.4 Syntax Diagrams
Appendix B Incompatibilities with Pascal Standards
Appendix C Required Identifiers
Appendix D Errors and Dynamic-Violations
Appendix E Implementation-Defined Features
Appendix F Implementation-Dependent Features
Appendix G Bibliography
Index