Modula-2 Reloaded

A Modern Typesafe & Literate Programming Notation

Site Menu

Project

Specification

Implementation

Recommendations

Reference

Needs Updating

Work in Progress

Wastebasket

Wiki Manual

edit SideBar

Non Terminals

Index

#1 Compilation Unit   EBNF

Definition Module Syntax

#2 Definition Module   EBNF

#2.1 Module Identifier, Blueprint Identifier, Type To Extend   EBNF

#2.2 Blueprint To Obey   EBNF

#3 Import   EBNF

#3.1 Import/Re-Export Library   EBNF

#3.2 More Import/Re-Export Libraries   EBNF

#3.3 Re-Export Tag   EBNF#3.4 Unqualified Aliases   EBNF

#4 Library Generation Directive   EBNF

#4.1 Library Identifier, Template, Placeholder   EBNF

#4.2 Replacement   EBNF

#5 Identifier List   EBNF

#6 Definition   EBNF

#6.1 Type Identifier   EBNF

#7 Constant Definition   EBNF

#7.1 Constant Expression   EBNF#7.2 Restricted Export   EBNF

#8 Type Definition   EBNF

#9 Qualified Identifier   EBNF

#10 Type   EBNF

#10.1 Derived Type   EBNF

#10.2 Equivalence Type   EBNF

#10.3 Dynamic Type Identifier   EBNF

#11 Subrange Type   EBNF

#11.1 Range   EBNF

#11.2 Greater Than   EBNF#11.3 Less Then   EBNF#11.4 Ordinal Or Scalar Type   EBNF

#12 Enumeration Type   EBNF

#12.1 Enumeration Type To Extend   EBNF#12.2 Enumeration Type Identifier   EBNF

#13 Set Type   EBNF

#14 Array Type   EBNF

#14.1 Value Count   EBNF

#15 Record Type   EBNF

#15.1 Field List   EBNF

#15.2 Record Type To Extend

#16 Pointer Type   EBNF

#17 Coroutine Type   EBNF

#17.1 Associated Procedure Type   EBNF

#18 Procedure Type   EBNF

#18.1 Formal Type   EBNF

#19 Simple Formal Type   EBNF

#19.1 Casting Formal Type   EBNF

#19.2 Address Type Identifier   EBNF

#20 Attributed Formal Type   EBNF

#21 Simple Variadic Formal Type   EBNF

#21.1 Required Number Of Arguments   EBNF

#21.2 Argument List Terminator   EBNF#21.3 Constant Qualified Identifier   EBNF

#22 Variadic Formal Type   EBNF

#23 Non-Variadic Formal Type   EBNF

#24 Procedure Header   EBNF

#25 Procedure Signature   EBNF

#26 Formal Parameters   EBNF

#27 Attributed Formal Parameters   EBNF

#28 Variadic Formal Parameters   EBNF

#29 Non-Variadic Formal Parameters   EBNF

Implementation And Program Module Syntax

#30 Implementation Or Program Module   EBNF

#31 Private Import   EBNF

#31.1 Import Library   EBNF#31.2 More Import Libraries   EBNF

#31.3 Private Aliases   EBNF

#32 Block   EBNF

#33 Declaration   EBNF

#33.1 Local Aliases   EBNF

#33.2 Origin   EBNF

#34 Type Declaration   EBNF

#34.1 Indeterminate Record Type   EBNF

#34.2 Indeterminate Field   EBNF

#34.3 Discriminant Field Identifier   EBNF

#35 Variable Declaration   EBNF

#36 Statement Sequence   EBNF

#37 Statement   EBNF

#38 Memory Management Operation   EBNF

#38.1 Initialisation Size, Initialisation Value   EBNF

#39 Update Or Procedure Call   EBNF

#39.1 Increment Or Decrement Suffix   EBNF

#40 Return Or Yield Statement   EBNF

#41 IF Statement   EBNF

#41.1 Boolean Expression   EBNF

#42 CASE Statement   EBNF

#42.1 Case   EBNF

#42.2 Case Labels   EBNF

#43 LOOP Statement   EBNF

#44 WHILE Statement   EBNF

#45 REPEAT Statement   EBNF

#46 FOR Statement   EBNF

#46.1 FOR Loop Variants   EBNF

#46.2 Accessor, Value   EBNF#46.3 Ascender Or Descender   EBNF

#46.4 Iterable Expression   EBNF

#46.5 Ordinal Range   EBNF

#46.6 Ordinal Type   EBNF

#47 Designator   EBNF

#47.1 Designator Tail   EBNF

#47.2 Expression List Or Slice   EBNF

#48 Expression List   EBNF

#49 Expression   EBNF

#49.1 Level-1 Operator   EBNF

#49.2 Identity Operator   EBNF

#50 Simple Expression   EBNF

#50.1 Level-2 Operator   EBNF

#50.2 Concatenation Operator   EBNF

#51 Term   EBNF

#51.1 Level-3 Operator   EBNF

#51.2 Set Difference Operator   EBNF

#52 Simple Term   EBNF

#53 Factor   EBNF

#53.1 Type Conversion Operator   EBNF

#54 Simple Factor   EBNF

#54.1 Designator Or Function Call   EBNF

#54.2 Structured Value   EBNF

#54.3 Value Component   EBNF

#54.4 Runtime Expression   EBNF

Blueprint Syntax

#55 Blueprint   EBNF

#55.1 Blueprint Identifier   EBNF#55.2 Blueprint To Refine, Blueprint For Type To Extend   EBNF

#56 Type Classification   EBNF

#56.1 Determined Classification   EBNF#56.2 Refinable Classification   EBNF

#56.3 Classification Identifier   EBNF

#57 Literal Compatibility   EBNF

#57.1 Proto Literal   EBNF

#57.2 Proto Literal Identifier   EBNF

#58 Structured Proto Literal   EBNF

#58.1 Required Value Count   EBNF

#58.2 Greater Than   EBNF#58.3 Whole Number   EBNF#58.4 Built-in Type Or Referential   EBNF

#59 Constraint   EBNF

#59.1 Constraint Term   EBNF

#59.2 Bindable Entity Or Property   EBNF

#59.3 One-Way Dependency   EBNF

#59.4 Mutual Dependency Or Exclusion   EBNF

#59.5 Term List   EBNF

#59.6 Classification Or Flag Identifier   EBNF

#60 Requirement   EBNF

#60.1 Condition   EBNF

#60.2 Boolean Constant Identifier   EBNF#60.3 Type Requirement   EBNF

#61 Constant Requirement   EBNF

#61.1 Simple Constant Requirement   EBNF

#61.2 Constant Expression   EBNF#61.3 Built-in Type Identifier   EBNF#61.4 Restricted Export   EBNF

#62 Property To Bind To   EBNF

#62.1 Memory Management Property   EBNF

#62.2 Collection Property   EBNF

#62.3 Scalar Property   EBNF

#63 Procedure Requirement   EBNF

#64 Entity To Bind To   EBNF

#64.1 Bindable Reserved Word   EBNF

#64.2 Bindable FOR   EBNF

#64.3 FOR Binding Differentiator   EBNF

#64.4 Bindable Operator   EBNF

#64.5 Unary Minus   EBNF

#64.6 Bindable Macro   EBNF

#64.7 Multi-Bindable Macro 1   EBNF

#64.8 Binding Differentiator 1   EBNF

#64.9 Multi-Bindable Macro 2   EBNF

#64.10 Binding Differentiator 2   EBNF

#64.11 Multi-Bindable Macro 3   EBNF

#64.12 Binding Differentiator 3   EBNF