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

EBNF.NonTerminals History

Hide minor edits - Show changes to output

2015-10-09 18:57 by trijezdci -
Changed line 1396 from:
  ABS | LENGTH | EXISTS | SEEK | SUBSET | READ | READNEW | WRITE | WRITEF |
to:
  ABS | LENGTH | EXISTS | SUBSET | READ | READNEW | WRITE | WRITEF |
Changed line 1406 from:
  ( COUNT | VALUE ) bindingDifferentiator1?
to:
  ( COUNT | VALUE | SEEK ) bindingDifferentiator1?
2015-10-09 18:54 by trijezdci -
Changed line 599 from:
localAliases := identList | '*' ;
to:
localAliases := privateAliases ;
2015-10-09 18:51 by trijezdci -
Changed line 72 from:
!!!!!#3.2 MOre Import/Re-Export Libraries \
to:
!!!!!#3.2 More Import/Re-Export Libraries \
Changed lines 543-545 from:
[[#block]]
!!!!!#32 Block \
%silver%   [-[[SyntaxDiagrams.NonTerminals#block|syntax diagram]]%%-]
to:
[[#privateImport]]
!!!!!#31 Private Import \
%silver%   [-[[SyntaxDiagrams.NonTerminals#privateImport|syntax diagram]]%%-]
Changed lines 547-548 from:
block :=
  declaration* ( BEGIN statementSequence )? END
to:
privateImport :=
  IMPORT importLib ( ',' moreImportLibs | ALIAS privateAliases )?
Changed lines 552-554 from:
[[#declaration]]
!!!!!#33 Declaration \
%silver%   [-[[SyntaxDiagrams.NonTerminals#declaration|syntax diagram]]%%-]
to:
[[#importLib]]
!!!!!#31.1 Import Library \
%silver%   [-[[SyntaxDiagrams.NonTerminals#importLib|syntax diagram]]%%-]
Changed lines 556-561 from:
declaration :=
  CONST ( Ident '=' constExpression ';' )+ |
  TYPE ( typeDeclaration ';' )+ |
  VAR ( variableDeclaration ';' )+ |
  procedureHeader ';' block Ident ';'
  ;
to:
importLib := Ident ;
@]

[[#moreImportLibs]]
!!!!!#31.2 More Import Libraries \
%silver%   [-[[SyntaxDiagrams.NonTerminals#moreImportLibs|syntax diagram]]%%-]
[@
moreImportLibs := identList ;
@]

[[#privateAliases]]
!!!!!#31.3 Private Aliases \
%silver%   [-[[SyntaxDiagrams.NonTerminals#privateAliases|syntax diagram]]%%-]
[@
privateAliases := identList | '*' ;
@]

[[#block]]
!!!!!#32 Block \
%silver%   [-[[SyntaxDiagrams.NonTerminals#block|syntax diagram]]%%-]
[@
block :=
  declaration* ( BEGIN statementSequence )? END
  ;
@]

[[#declaration]]
!!!!!#33 Declaration \
%silver%   [-[[SyntaxDiagrams.NonTerminals#declaration|syntax diagram]]%%-]
[@

declaration :=
  CONST ( Ident '=' constExpression ';' )+ |
  TYPE ( typeDeclaration ';' )+ |
  VAR ( variableDeclaration ';' )+ |
  ALIAS localAliases FOR origin ';'
  procedureHeader ';' block Ident ';'
  ;
@]

[[#localAliases]]
!!!!!#33.1 Local Aliases \
%silver%   [-[[SyntaxDiagrams.NonTerminals#localAliases|syntax diagram]]%%-]
[@
localAliases := identList | '*' ;
@]

[[#origin]]
!!!!!#33.2 Origin \
%silver%   [-[[SyntaxDiagrams.NonTerminals#origin|syntax diagram]]%%-]
[@
origin := ( Ident '.' )+ '*' ;
2015-10-09 18:42 by trijezdci -
Changed line 29 from:
  ( importList ';' )* definition*
to:
  ( import ';' )* definition*
Changed lines 52-54 from:
[[#importList]]
!!!!!#3 Import List \
%silver%   [-[[SyntaxDiagrams.NonTerminals#importList|syntax diagram]]%%-]
to:
[[#import]]
!!!!!#3 Import \
%silver%   [-[[SyntaxDiagrams.NonTerminals#import|syntax diagram]]%%-]
Changed lines 56-57 from:
importList :=
  libGenDirective | importDirective
to:
import :=
  IMPORT impexLib ( ',' moreImpexLibs | ALIAS unqualifiedAliases )? |
  libGenDirective
Changed lines 62-64 from:
[[#libGenDirective]]
!!!!!#4 Library Generation Directive \
%silver%   [-[[SyntaxDiagrams.NonTerminals#libGenDirective|syntax diagram]]%%-]
to:
[[#impexLib]]
!!!!!#3.1 Import/Re-Export Library \
%silver%   [-[[SyntaxDiagrams.NonTerminals#impexLib|syntax diagram]]%%-]
Changed lines 66-67 from:
libGenDirective :=
  GENLIB libIdent FROM template FOR templateParamList END
to:
impexLib :=
  Ident reExport?
Changed lines 71-73 from:
[[#libIdent]][[#template]][[#placeholder]]
!!!!!#4
.1 Library Identifier, Template, Placeholder \
%silver%   [-[[SyntaxDiagrams.NonTerminals#libIdent|syntax diagram]]%%-]
to:
[[#moreImpexLibs]]
!!!!!#3.2 MOre Import/Re-Export Libraries \
%silver%   [-[[SyntaxDiagrams.NonTerminals#moreImpexLibs|syntax diagram]]%%-]
Changed lines 75-79 from:
libIdent := Ident ;

template := Ident ;

placeholder := Ident
;
to:
moreImpexLibs :=
  impexLib ( ',' impexLib )*
 
;
Changed lines 80-82 from:
[[#replacement]]
!!!!!#4.2 Replacement \
%silver%   [-[[SyntaxDiagrams.NonTerminals#replacement|syntax diagram]]%%-]
to:
[[#reExport]]
!!!!!#3.3 Re-Export Tag \
%silver%   [-[[SyntaxDiagrams.NonTerminals#reExport|syntax diagram]]%%-]
Changed lines 84-86 from:
replacement :=
  NumberLiteral | StringLiteral | ChevronText
 
;
to:
reExport := '+' ;
Changed lines 87-89 from:
[[#importDirective]]
!!!!!#5 Import Directive \
%silver%   [-[[SyntaxDiagrams.NonTerminals#importDirective|syntax diagram]]%%-]
to:
[[#unqualifiedAliases]]
!!!!!#3.4 Unqualified Aliases \
%silver%   [-[[SyntaxDiagrams.NonTerminals#unqualifiedAliases|syntax diagram]]%%-]
Changed lines 91-95 from:
importDirective :=
  FROM ( moduleIdent | ENUM enumTypeIdent )
    IMPORT ( identifiersToImport | importAll ) |
  IMPORT modulesToImport
 
;
to:
unqualifiedAliases := identList ;
Changed lines 94-96 from:
[[#enumTypeIdent]]
!!!!!#5.1 Enumeration Type Identifier \
%silver%   [-[[SyntaxDiagrams.NonTerminals#enumTypeIdent|syntax diagram]]%%-]
to:
[[#libGenDirective]]
!!!!!#4 Library Generation Directive \
%silver%   [-[[SyntaxDiagrams.NonTerminals#libGenDirective|syntax diagram]]%%-]
Changed lines 98-100 from:
enumTypeIdent := typeIdent ;
to:
libGenDirective :=
  GENLIB libIdent FROM template FOR templateParamList END
 
;
Changed lines 103-105 from:
[[#typeIdent]]
!!!!!#5.2 Type Identifier \
%silver%   [-[[SyntaxDiagrams.NonTerminals#typeIdent|syntax diagram]]%%-]
to:
[[#libIdent]][[#template]][[#placeholder]]
!!!!!#4
.1 Library Identifier, Template, Placeholder \
%silver%   [-[[SyntaxDiagrams.NonTerminals#libIdent|syntax diagram]]%%-]
Changed lines 107-111 from:
typeIdent := qualident ;
to:
libIdent := Ident ;

template := Ident ;

placeholder := Ident
;
Changed lines 114-116 from:
[[#identifiersToImport]][[#modulesToImport]]
!!!!!#5.3 Identifiers To Import, Modules To Import \
%silver%  
[-[[SyntaxDiagrams.NonTerminals#identifiersToImport|syntax diagram]]%%-]
to:
[[#replacement]]
!!!!!#4.2 Replacement \
%silver%  
[-[[SyntaxDiagrams.NonTerminals#replacement|syntax diagram]]%%-]
Changed lines 118-119 from:
identifiersToImport :=
  Ident reExport? ( ',' Ident reExport? )*
to:
replacement :=
  NumberLiteral | StringLiteral | ChevronText
Deleted lines 120-121:

modulesToImport := identifiersToImport ;
Changed lines 123-125 from:
[[#reExport]]
!!!!!#5.4 Re-Export \
%silver%   [-[[SyntaxDiagrams.NonTerminals#reExport|syntax diagram]]%%-]
to:
[[#identList]]
!!!!!#5 Identifier List \
%silver%   [-[[SyntaxDiagrams.NonTerminals#identList|syntax diagram]]%%-]
Changed lines 127-129 from:
reExport := '+' ;
to:
identList :=
   Ident ( ',' Ident )*
 
;
Changed lines 132-134 from:
[[#importAll]]
!!!!!#5.5 Import All \
%silver%   [-[[SyntaxDiagrams.NonTerminals#importAll|syntax diagram]]%%-]
to:
[[#definition]]
!!!!!#6 Definition \
%silver%   [-[[SyntaxDiagrams.NonTerminals#definition|syntax diagram]]%%-]
Changed lines 136-141 from:
importAll := '*' ;
to:
definition :=
  CONST ( constDefinition ';' )+ |
  TYPE ( typeDefinition ';' )+ |
  VAR ( identList '=' typeIdent ';' )+ |
  procedureHeader ';'
 
;
Changed lines 144-146 from:
[[#qualident]]
!!!!!#6 Qualified Identifier \
%silver%   [-[[SyntaxDiagrams.NonTerminals#qualident|syntax diagram]]%%-]
to:
[[#typeIdent]]
!!!!!#6.1 Type Identifier \
%silver%   [-[[SyntaxDiagrams.NonTerminals#typeIdent|syntax diagram]]%%-]
Changed lines 148-150 from:
qualident :=
  Ident ( '.' Ident )*
 
;
to:
typeIdent := qualident ;
Changed lines 151-153 from:
[[#definition]]
!!!!!#7 Definition \
%silver%   [-[[SyntaxDiagrams.NonTerminals#definition|syntax diagram]]%%-]
to:
[[#constDefinition]]
!!!!!#7 Constant Definition \
%silver%   [-[[SyntaxDiagrams.NonTerminals#constDefinition|syntax diagram]]%%-]
Changed lines 155-159 from:
definition :=
  CONST ( constDefinition ';' )+ |
  TYPE ( typeDefinition ';' )+ |
  VAR ( identList '=' typeIdent ';' )+ |
  procedureHeader ';'
to:
constDefinition :=
  ( '[' propertyToBindTo ']' | restrictedExport )?
  Ident '=' constExpression
Changed lines 161-163 from:
[[#constDefinition]]
!!!!!#8 Constant Definition \
%silver%   [-[[SyntaxDiagrams.NonTerminals#constDefinition|syntax diagram]]%%-]
to:
[[#constExpression]]
!!!!!#7.1 Constant Expression \
%silver%   [-[[SyntaxDiagrams.NonTerminals#constExpression|syntax diagram]]%%-]
Changed lines 165-168 from:
constDefinition :=
  ( '[' propertyToBindTo ']' | restrictedExport )?
  Ident '=' constExpression
 
;
to:
constExpression := expression ;
Changed lines 168-170 from:
[[#constExpression]]
!!!!!#8.1 Constant Expression \
%silver%   [-[[SyntaxDiagrams.NonTerminals#constExpression|syntax diagram]]%%-]
to:
[[#restrictedExport]]
!!!!!#7.2 Restricted Export \
%silver%   [-[[SyntaxDiagrams.NonTerminals#restrictedExport|syntax diagram]]%%-]
Changed line 172 from:
constExpression := expression ;
to:
restrictedExport := '*' ;
Changed lines 175-177 from:
[[#restrictedExport]]
!!!!!#8.2 Restricted Export \
%silver%   [-[[SyntaxDiagrams.NonTerminals#restrictedExport|syntax diagram]]%%-]
to:
[[#typeDefinition]]
!!!!!#8 Type Definition \
%silver%   [-[[SyntaxDiagrams.NonTerminals#typeDefinition|syntax diagram]]%%-]
Changed lines 179-181 from:
restrictedExport := '*' ;
to:
typeDefinition :=
  restrictedExport? Ident '=' ( type | OPAQUE )
 
;
Changed lines 184-186 from:
[[#typeDefinition]]
!!!!!#9 Type Definition \
%silver%   [-[[SyntaxDiagrams.NonTerminals#typeDefinition|syntax diagram]]%%-]
to:
[[#qualident]]
!!!!!#9 Qualified Identifier \
%silver%   [-[[SyntaxDiagrams.NonTerminals#qualident|syntax diagram]]%%-]
Changed lines 188-189 from:
typeDefinition :=
  restrictedExport? Ident '=' ( OPAQUE | type )
to:
qualident :=
  Ident ( '.' Ident )*
Changed lines 193-195 from:
[[#identList]]
!!!!!#10 Identifier List \
%silver%   [-[[SyntaxDiagrams.NonTerminals#identList|syntax diagram]]%%-]
to:
[[#type]]
!!!!!#10 Type \
%silver%   [-[[SyntaxDiagrams.NonTerminals#type|syntax diagram]]%%-]
Changed lines 197-199 from:
identList :=
    Ident ( ',' Ident )*
    ;
to:
type :=
  derivedType | equivType | subrangeType | enumType | setType |
  arrayType | recordType | pointerType | coroutineType | procedureType

  ;
Changed lines 203-205 from:
[[#type]]
!!!!!#11 Type \
%silver%   [-[[SyntaxDiagrams.NonTerminals#type|syntax diagram]]%%-]
to:
[[#derivedType]]
!!!!!#10.1 Derived Type \
%silver%   [-[[SyntaxDiagrams.NonTerminals#derivedType|syntax diagram]]%%-]
Changed lines 207-210 from:
type :=
  derivedType | equivType | subrangeType | enumType | setType |
  arrayType | recordType | pointerType | coroutineType | procedureType
 
;
to:
derivedType := typeIdent ;
Changed lines 210-212 from:
[[#derivedType]]
!!!!!#11.1 Derived Type \
%silver%   [-[[SyntaxDiagrams.NonTerminals#derivedType|syntax diagram]]%%-]
to:
[[#equivType]]
!!!!!#10.2 Equivalence Type \
%silver%   [-[[SyntaxDiagrams.NonTerminals#equivType|syntax diagram]]%%-]
Changed lines 214-216 from:
derivedType := typeIdent ;
to:
equivType :=
  ALIAS OF typeIdent | CONST dynamicTypeIdent
 
;
Changed lines 219-221 from:
[[#equivType]]
!!!!!#11.2 Equivalence Type \
%silver%   [-[[SyntaxDiagrams.NonTerminals#equivType|syntax diagram]]%%-]
to:
[[#dynamicTypeIdent]]
!!!!!#10.3 Dynamic Type Identifier \
%silver%   [-[[SyntaxDiagrams.NonTerminals#dynamicTypeIdent|syntax diagram]]%%-]
Changed lines 223-225 from:
equivType :=
  ALIAS OF typeIdent | CONST dynamicTypeIdent
 
;
to:
dynamicTypeIdent := typeIdent ;
Changed lines 226-228 from:
[[#dynamicTypeIdent]]
!!!!!#11.3 Dynamic Type Identifier \
%silver%   [-[[SyntaxDiagrams.NonTerminals#dynamicTypeIdent|syntax diagram]]%%-]
to:
[[#subrangeType]]
!!!!!#11 Subrange Type \
%silver%   [-[[SyntaxDiagrams.NonTerminals#subrangeType|syntax diagram]]%%-]
Changed lines 230-232 from:
dynamicTypeIdent := typeIdent ;
to:
subrangeType :=
  range OF ordinalOrScalarType
 
;
Changed lines 235-237 from:
[[#subrangeType]]
!!!!!#12 Subrange Type \
%silver%   [-[[SyntaxDiagrams.NonTerminals#subrangeType|syntax diagram]]%%-]
to:
[[#range]]
!!!!!#11.1 Range \
%silver%   [-[[SyntaxDiagrams.NonTerminals#range|syntax diagram]]%%-]
Changed lines 239-240 from:
subrangeType :=
  range OF ordinalOrScalarType
to:
range :=
  '[' greaterThan? constExpression '..' lessThan? constExpression ']'
Changed lines 244-246 from:
[[#range]]
!!!!!#12.1 Range \
%silver%   [-[[SyntaxDiagrams.NonTerminals#range|syntax diagram]]%%-]
to:
[[#greaterThan]]
!!!!!#11.2 Greater Than \
%silver%   [-[[SyntaxDiagrams.NonTerminals#greaterThan|syntax diagram]]%%-]
Changed lines 248-250 from:
range :=
  '[' greaterThan? constExpression '..' lessThan? constExpression ']'
 
;
to:
greaterThan := '>' ;
Changed lines 251-253 from:
[[#greaterThan]]
!!!!!#12.2 Greater Than \
%silver%   [-[[SyntaxDiagrams.NonTerminals#greaterThan|syntax diagram]]%%-]
to:
[[#lessThan]]
!!!!!#11.3 Less Than \
%silver%   [-[[SyntaxDiagrams.NonTerminals#lessThan|syntax diagram]]%%-]
Changed line 255 from:
greaterThan := '>' ;
to:
lessThan := '<' ;
Changed lines 258-260 from:
[[#lessThan]]
!!!!!#12.3 Less Than \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#lessThan|syntax diagram]]%%-]
to:
[[#ordinalOrScalarType]]
!!!!!#11.4 Ordinal Or Scalar Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ordinalOrScalarType|syntax diagram]]%%-]
Changed line 262 from:
lessThan := '<' ;
to:
ordinalOrScalarType := typeIdent ;
Changed lines 265-267 from:
[[#ordinalOrScalarType]]
!!!!!#12.4 Ordinal Or Scalar Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ordinalOrScalarType|syntax diagram]]%%-]
to:
[[#enumType]]
!!!!!#12 Enumeration Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#enumType|syntax diagram]]%%-]
Changed lines 269-271 from:
ordinalOrScalarType := typeIdent ;
to:
enumType :=
  '(' ( '+' enumTypeToExtend )? identList ')'
 
;
Changed lines 274-276 from:
[[#enumType]]
!!!!!#13 Enumeration Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#enumType|syntax diagram]]%%-]
to:
[[#enumTypeToExtend]]
!!!!!#12.1 Enumeration Type To Extend \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#enumTypeToExtend|syntax diagram]]%%-]
Changed lines 278-280 from:
enumType :=
  '(' ( '+' enumTypeToExtend )? identList ')'
 
;
to:
enumTypeToExtend := typeIdent ;
Changed lines 281-283 from:
[[#enumTypeToExtend]]
!!!!!#13.1 Enumeration Type To Extend \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#enumTypeToExtend|syntax diagram]]%%-]
to:
[[#enumTypeIdent]]
!!!!!#12.2 Enumeration Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#enumTypeIdent|syntax diagram]]%%-]
Changed line 285 from:
enumTypeToExtend := typeIdent ;
to:
enumTypeIdent := typeIdent ;
Changed line 289 from:
!!!!!#14 Set Type \
to:
!!!!!#13 Set Type \
Changed line 298 from:
!!!!!#15 Array Type \
to:
!!!!!#14 Array Type \
Changed line 307 from:
!!!!!#15.1 Value Count \
to:
!!!!!#14.1 Value Count \
Changed line 314 from:
!!!!!#16 Record Type \
to:
!!!!!#15 Record Type \
Changed line 323 from:
!!!!!#16.1 Field List \
to:
!!!!!#15.1 Field List \
Changed line 332 from:
!!!!!#16.2 Record Type To Extend \
to:
!!!!!#15.2 Record Type To Extend \
Changed line 339 from:
!!!!!#17 Pointer Type \
to:
!!!!!#16 Pointer Type \
Changed line 348 from:
!!!!!#18 Coroutine Type \
to:
!!!!!#17 Coroutine Type \
Changed line 357 from:
!!!!!#18.1 Associated Procedure Type \
to:
!!!!!#17.1 Associated Procedure Type \
Changed line 364 from:
!!!!!#19 Procedure Type \
to:
!!!!!#18 Procedure Type \
Changed line 373 from:
!!!!!#19.1 Formal Type \
to:
!!!!!#18.1 Formal Type \
Changed line 382 from:
!!!!!#20 Simple Formal Type \
to:
!!!!!#19 Simple Formal Type \
Changed line 391 from:
!!!!!#20.1 Casting Formal Type \
to:
!!!!!#19.1 Casting Formal Type \
Changed line 400 from:
!!!!!#20.2 Address Type Identifier \
to:
!!!!!#19.2 Address Type Identifier \
Changed line 409 from:
!!!!!#21 Attributed Formal Type \
to:
!!!!!#20 Attributed Formal Type \
Changed line 418 from:
!!!!!#22 Simple Variadic Formal Type \
to:
!!!!!#21 Simple Variadic Formal Type \
Changed line 427 from:
!!!!!#22.1 Required Number Of Arguments \
to:
!!!!!#21.1 Required Number Of Arguments \
Changed line 436 from:
!!!!!#22.2 Argument List Terminator \
to:
!!!!!#21.2 Argument List Terminator \
Changed line 445 from:
!!!!!#22.3 Constant Qualified Identifier \
to:
!!!!!#21.3 Constant Qualified Identifier \
Changed line 452 from:
!!!!!#23 Variadic Formal Type \
to:
!!!!!#22 Variadic Formal Type \
Changed line 463 from:
!!!!!#24 Non-Variadic Formal Type \
to:
!!!!!#23 Non-Variadic Formal Type \
Changed line 472 from:
!!!!!#25 Procedure Header \
to:
!!!!!#24 Procedure Header \
Changed line 482 from:
!!!!!#26 Procedure Signature \
to:
!!!!!#25 Procedure Signature \
Changed line 491 from:
!!!!!#27 Formal Parameters \
to:
!!!!!#26 Formal Parameters \
Changed line 501 from:
!!!!!#28 Attributed Formal Parameters \
to:
!!!!!#27 Attributed Formal Parameters \
Changed line 511 from:
!!!!!#29 Variadic Formal Parameters \
to:
!!!!!#28 Variadic Formal Parameters \
Changed line 522 from:
!!!!!#30 Non-Variadic Formal Parameters \
to:
!!!!!#29 Non-Variadic Formal Parameters \
Changed line 534 from:
!!!!!#31 Implementation Or Program Module \
to:
!!!!!#30 Implementation Or Program Module \
Changed line 539 from:
  ( importList ';' )* block moduleIdent '.'
to:
  ( privateImport ';' )* block moduleIdent '.'
2015-10-04 05:47 by trijezdci -
Changed line 29 from:
  (importList ';')* definition*
to:
  ( importList ';' )* definition*
2015-10-04 05:46 by trijezdci -
Changed line 156 from:
  VAR ( variableDeclaration ';' )+ |
to:
  VAR ( identList '=' typeIdent ';' )+ |
Changed lines 194-196 from:
[[#variableDeclaration]]
!!!!!#10 Variable Declaration \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#variableDeclaration|syntax diagram]]%%-]
to:
[[#identList]]
!!!!!#10 Identifier List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identList|syntax diagram]]%%-]
Changed lines 198-200 from:
variableDeclaration :=
  identList ':' ( range OF )? typeIdent
  ;
to:
identList :=
    Ident ( ',' Ident )*
 
  ;
Changed lines 203-205 from:
[[#identList]]
!!!!!#11 Identifier List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identList|syntax diagram]]%%-]
to:
[[#type]]
!!!!!#11 Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#type|syntax diagram]]%%-]
Changed lines 207-209 from:
identList :=
    Ident ( ',' Ident )*
    ;
to:
type :=
  derivedType | equivType | subrangeType | enumType | setType |
  arrayType | recordType | pointerType | coroutineType | procedureType

  ;
Changed lines 213-215 from:
[[#range]]
!!!!!#12 Range \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#range|syntax diagram]]%%-]
to:
[[#derivedType]]
!!!!!#11.1 Derived Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#derivedType|syntax diagram]]%%-]
Changed lines 217-219 from:
range :=
  '[' greaterThan? constExpression '..' lessThan? constExpression ']'
 
;
to:
derivedType := typeIdent ;
Changed lines 220-222 from:
[[#greaterThan]]
!!!!!#12.1 Greater Than \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#greaterThan|syntax diagram]]%%-]
to:
[[#equivType]]
!!!!!#11.2 Equivalence Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#equivType|syntax diagram]]%%-]
Changed lines 224-226 from:
greaterThan := '>' ;
to:
equivType :=
  ALIAS OF typeIdent | CONST dynamicTypeIdent
 
;
Changed lines 229-231 from:
[[#lessThan]]
!!!!!#12.2 Less Than \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#lessThan|syntax diagram]]%%-]
to:
[[#dynamicTypeIdent]]
!!!!!#11.3 Dynamic Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#dynamicTypeIdent|syntax diagram]]%%-]
Changed line 233 from:
lessThan := '<' ;
to:
dynamicTypeIdent := typeIdent ;
Changed lines 236-238 from:
[[#type]]
!!!!!#13 Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#type|syntax diagram]]%%-]
to:
[[#subrangeType]]
!!!!!#12 Subrange Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#subrangeType|syntax diagram]]%%-]
Changed lines 240-242 from:
type :=
  derivedType | equivType | subrangeType | enumType | setType |
  arrayType | recordType | pointerType | coroutineType | procedureType
to:
subrangeType :=
  range OF ordinalOrScalarType
Changed lines 245-247 from:
[[#derivedType]]
!!!!!#13.1 Derived Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#derivedType|syntax diagram]]%%-]
to:
[[#range]]
!!!!!#12.1 Range \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#range|syntax diagram]]%%-]
Changed lines 249-251 from:
derivedType := typeIdent ;
to:
range :=
  '[' greaterThan? constExpression '..' lessThan? constExpression ']'
 
;
Changed lines 254-256 from:
[[#equivType]]
!!!!!#13.2 Equivalence Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#equivType|syntax diagram]]%%-]
to:
[[#greaterThan]]
!!!!!#12.2 Greater Than \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#greaterThan|syntax diagram]]%%-]
Changed lines 258-260 from:
equivType :=
  ALIAS OF typeIdent | CONST dynamicTypeIdent
 
;
to:
greaterThan := '>' ;
Changed lines 261-263 from:
[[#subrangeType]]
!!!!!#13.3 Subrange Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#subrangeType|syntax diagram]]%%-]
to:
[[#lessThan]]
!!!!!#12.3 Less Than \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#lessThan|syntax diagram]]%%-]
Changed lines 265-267 from:
subrangeType :=
  range OF ordinalOrScalarType
 
;
to:
lessThan := '<' ;
Changed lines 268-269 from:
[[#dynamicTypeIdent]][[#ordinalOrScalarType]]
!!!!!#13.4 Dynamic Type Identifier, Ordinal Or Scalar Type \
to:
[[#ordinalOrScalarType]]
!!!!!#12.4 Ordinal Or Scalar Type \
Deleted lines 271-272:
dynamicTypeIdent := typeIdent ;
Changed line 276 from:
!!!!!#14 Enumeration Type \
to:
!!!!!#13 Enumeration Type \
Changed line 285 from:
!!!!!#14.1 Enumeration Type To Extend \
to:
!!!!!#13.1 Enumeration Type To Extend \
Changed line 292 from:
!!!!!#15 Set Type \
to:
!!!!!#14 Set Type \
Changed line 301 from:
!!!!!#16 Array Type \
to:
!!!!!#15 Array Type \
Changed line 310 from:
!!!!!#16.1 Value Count \
to:
!!!!!#15.1 Value Count \
Changed line 317 from:
!!!!!#17 Record Type \
to:
!!!!!#16 Record Type \
Changed line 326 from:
!!!!!#17.1 Field List \
to:
!!!!!#16.1 Field List \
Changed line 335 from:
!!!!!#17.2 Record Type To Extend \
to:
!!!!!#16.2 Record Type To Extend \
Changed line 342 from:
!!!!!#18 Pointer Type \
to:
!!!!!#17 Pointer Type \
Changed line 351 from:
!!!!!#19 Coroutine Type \
to:
!!!!!#18 Coroutine Type \
Changed line 360 from:
!!!!!#19.1 Associated Procedure Type \
to:
!!!!!#18.1 Associated Procedure Type \
Changed line 367 from:
!!!!!#20 Procedure Type \
to:
!!!!!#19 Procedure Type \
Changed line 376 from:
!!!!!#20.1 Formal Type \
to:
!!!!!#19.1 Formal Type \
Changed line 385 from:
!!!!!#21 Simple Formal Type \
to:
!!!!!#20 Simple Formal Type \
Changed line 394 from:
!!!!!#21.1 Casting Formal Type \
to:
!!!!!#20.1 Casting Formal Type \
Changed line 403 from:
!!!!!#21.2 Address Type Identifier \
to:
!!!!!#20.2 Address Type Identifier \
Changed line 412 from:
!!!!!#22 Attributed Formal Type \
to:
!!!!!#21 Attributed Formal Type \
Changed line 421 from:
!!!!!#23 Simple Variadic Formal Type \
to:
!!!!!#22 Simple Variadic Formal Type \
Changed line 430 from:
!!!!!#23.1 Required Number Of Arguments \
to:
!!!!!#22.1 Required Number Of Arguments \
Changed line 439 from:
!!!!!#23.2 Argument List Terminator \
to:
!!!!!#22.2 Argument List Terminator \
Changed line 448 from:
!!!!!#23.3 Constant Qualified Identifier \
to:
!!!!!#22.3 Constant Qualified Identifier \
Changed line 455 from:
!!!!!#24 Variadic Formal Type \
to:
!!!!!#23 Variadic Formal Type \
Changed line 466 from:
!!!!!#25 Non-Variadic Formal Type \
to:
!!!!!#24 Non-Variadic Formal Type \
Changed line 475 from:
!!!!!#26 Procedure Header \
to:
!!!!!#25 Procedure Header \
Changed line 485 from:
!!!!!#27 Procedure Signature \
to:
!!!!!#26 Procedure Signature \
Changed line 494 from:
!!!!!#28 Formal Parameters \
to:
!!!!!#27 Formal Parameters \
Changed line 504 from:
!!!!!#29 Attributed Formal Parameters \
to:
!!!!!#28 Attributed Formal Parameters \
Changed line 514 from:
!!!!!#30 Variadic Formal Parameters \
to:
!!!!!#29 Variadic Formal Parameters \
Changed line 525 from:
!!!!!#31 Non-Variadic Formal Parameters \
to:
!!!!!#30 Non-Variadic Formal Parameters \
Changed line 537 from:
!!!!!#32 Implementation Or Program Module \
to:
!!!!!#31 Implementation Or Program Module \
Changed line 547 from:
!!!!!#33 Block \
to:
!!!!!#32 Block \
Changed line 556 from:
!!!!!#34 Declaration \
to:
!!!!!#33 Declaration \
Changed line 568 from:
!!!!!#35 Type Declaration \
to:
!!!!!#34 Type Declaration \
Changed line 577 from:
!!!!!#35.1 Indeterminate Record Type \
to:
!!!!!#34.1 Indeterminate Record Type \
Changed line 586 from:
!!!!!#35.2 Indeterminate Field \
to:
!!!!!#34.2 Indeterminate Field \
Changed line 595 from:
!!!!!#35.3 Discriminant Field Identifier \
to:
!!!!!#34.3 Discriminant Field Identifier \
Added lines 599-607:
@]

[[#variableDeclaration]]
!!!!!#35 Variable Declaration \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#variableDeclaration|syntax diagram]]%%-]
[@
variableDeclaration :=
  identList ':' ( ( ARRAY valueCount OF )? typeIdent | subrangeType )
  ;
2015-10-04 05:34 by trijezdci -
Changed lines 937-938 from:
  NumberLiteral | StringLiteral | structuredValue | designatorOrFuncCall | '(' expression ')'
to:
  NumberLiteral | StringLiteral | structuredValue |
 
designatorOrFuncCall | '(' expression ')'
Changed line 947 from:
  designator '(' expressionList? ')'
to:
  designator ( '(' expressionList? ')' )?
2015-10-04 05:33 by trijezdci -
Changed line 937 from:
  NumberLiteral | StringLiteral | structuredValue | functionCall | '(' expression ')'
to:
  NumberLiteral | StringLiteral | structuredValue | designatorOrFuncCall | '(' expression ')'
Changed lines 941-943 from:
[[#functionCall]]
!!!!!#54.1 Function Call \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#functionCall|syntax diagram]]%%-]
to:
[[#designatorOrFuncCall]]
!!!!!#54.1 Designator Or Function Call \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#designatorOrFuncCall|syntax diagram]]%%-]
Changed line 945 from:
functionCall :=
to:
designatorOrFuncCall :=
2015-10-04 05:20 by trijezdci -
Changed line 862 from:
  ( '+' | '-' )? term ( operL2 term )*
to:
  term ( operL2 term )* | '-' simpleFactor
2015-09-28 07:22 by trijezdci -
Changed lines 257-258 from:
  ALIAS OF typeIdent |
 
CONST dynamicTypeIdent
to:
  ALIAS OF typeIdent | CONST dynamicTypeIdent
2015-09-28 07:21 by trijezdci -
Changed lines 240-241 from:
  typeIdent | subType | enumType | setType | arrayType |
  recordType | pointerType | coroutineType | procedureType
to:
  derivedType | equivType | subrangeType | enumType | setType |
  arrayType | recordType | pointerType | coroutineType | procedureType
Changed lines 245-247 from:
[[#subType]]
!!!!!#13.1 Sub-Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#subType|syntax diagram]]%%-]
to:
[[#derivedType]]
!!!!!#13.1 Derived Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#derivedType|syntax diagram]]%%-]
Changed lines 249-253 from:
subType :=
  ALIAS OF typeIdent |
  CONST dynamicTypeIdent |
  range OF ordinalOrScalarType
 
;
to:
derivedType := typeIdent ;
Changed lines 252-254 from:
[[#dynamicTypeIdent]][[#ordinalOrScalarType]]
!!!!!#13.2 Dynamic Type Identifier, Ordinal Or Scalar Type \
%silver% &nbsp;
[-[[SyntaxDiagrams.NonTerminals#ordinalOrScalarType|syntax diagram]]%%-]
to:
[[#equivType]]
!!!!!#13.2 Equivalence Type \
%silver% &nbsp;
[-[[SyntaxDiagrams.NonTerminals#equivType|syntax diagram]]%%-]
Changed lines 256-258 from:
dynamicTypeIdent := typeIdent ;

ordinalOrScalarType :=
typeIdent ;
to:
equivType :=
  ALIAS OF typeIdent |
  CONST dynamicTypeIdent
 
;
Changed lines 262-264 from:
[[#enumType]]
!!!!!#14 Enumeration Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#enumType|syntax diagram]]%%-]
to:
[[#subrangeType]]
!!!!!#13.3 Subrange Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#subrangeType|syntax diagram]]%%-]
Changed lines 266-267 from:
enumType :=
  '(' ( '+' enumTypeToExtend )? identList ')'
to:
subrangeType :=
  range OF ordinalOrScalarType
Changed lines 271-273 from:
[[#enumTypeToExtend]]
!!!!!#14.1 Enumeration Type To Extend \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#enumTypeToExtend|syntax diagram]]%%-]
to:
[[#dynamicTypeIdent]][[#ordinalOrScalarType]]
!!!!!#13.4 Dynamic Type Identifier, Ordinal Or Scalar Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ordinalOrScalarType|syntax diagram]]%%-]
Changed lines 275-277 from:
enumTypeToExtend := typeIdent ;
to:
dynamicTypeIdent := typeIdent ;

ordinalOrScalarType
:= typeIdent ;
Changed lines 280-282 from:
[[#setType]]
!!!!!#15 Set Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#setType|syntax diagram]]%%-]
to:
[[#enumType]]
!!!!!#14 Enumeration Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#enumType|syntax diagram]]%%-]
Changed lines 284-285 from:
setType :=
  SET OF enumTypeIdent
to:
enumType :=
  '(' ( '+' enumTypeToExtend )? identList ')'
Changed lines 289-291 from:
[[#arrayType]]
!!!!!#16 Array Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#arrayType|syntax diagram]]%%-]
to:
[[#enumTypeToExtend]]
!!!!!#14.1 Enumeration Type To Extend \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#enumTypeToExtend|syntax diagram]]%%-]
Changed lines 293-295 from:
arrayType :=
  ARRAY lessThan? valueCount ( ',' valueCount )* OF typeIdent
 
;
to:
enumTypeToExtend := typeIdent ;
Changed lines 296-298 from:
[[#valueCount]]
!!!!!#16.1 Value Count \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#valueCount|syntax diagram]]%%-]
to:
[[#setType]]
!!!!!#15 Set Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#setType|syntax diagram]]%%-]
Changed lines 300-302 from:
valueCount := constExpression ;
to:
setType :=
  SET OF enumTypeIdent
 
;
Changed lines 305-307 from:
[[#recordType]]
!!!!!#17 Record Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#recordType|syntax diagram]]%%-]
to:
[[#arrayType]]
!!!!!#16 Array Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#arrayType|syntax diagram]]%%-]
Changed lines 309-310 from:
recordType :=
  RECORD ( '(' recTypeToExtend ')' )? fieldList ( ';' fieldList )* )
to:
arrayType :=
  ARRAY lessThan? valueCount ( ',' valueCount )* OF typeIdent
Changed lines 314-316 from:
[[#fieldList]]
!!!!!#17.1 Field List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#fieldList|syntax diagram]]%%-]
to:
[[#valueCount]]
!!!!!#16.1 Value Count \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#valueCount|syntax diagram]]%%-]
Changed lines 318-320 from:
fieldList :
  restrictedExport? variableDeclaration ( '=' constExpression )?
 
;
to:
valueCount := constExpression ;
Changed lines 321-323 from:
[[#recTypeToExtend]]
!!!!!#17.2 Record Type To Extend \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#recTypeToExtend|syntax diagram]]%%-]
to:
[[#recordType]]
!!!!!#17 Record Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#recordType|syntax diagram]]%%-]
Changed lines 325-327 from:
recTypeToExtend := typeIdent ;
to:
recordType :=
  RECORD ( '(' recTypeToExtend ')' )? fieldList ( ';' fieldList )* )
 
;
Changed lines 330-332 from:
[[#pointerType]]
!!!!!#18 Pointer Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#pointerType|syntax diagram]]%%-]
to:
[[#fieldList]]
!!!!!#17.1 Field List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#fieldList|syntax diagram]]%%-]
Changed lines 334-335 from:
pointerType :=
  POINTER TO CONST? typeIdent
to:
fieldList :
  restrictedExport? variableDeclaration ( '=' constExpression )?
Changed lines 339-341 from:
[[#coroutineType]]
!!!!!#19 Coroutine Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#coroutineType|syntax diagram]]%%-]
to:
[[#recTypeToExtend]]
!!!!!#17.2 Record Type To Extend \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#recTypeToExtend|syntax diagram]]%%-]
Changed lines 343-345 from:
coroutineType :=
  COROUTINE '(' assocProcType ')'
 
;
to:
recTypeToExtend := typeIdent ;
Changed lines 346-348 from:
[[#assocProcType]]
!!!!!#19.1 Associated Procedure Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#assocProcType|syntax diagram]]%%-]
to:
[[#pointerType]]
!!!!!#18 Pointer Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#pointerType|syntax diagram]]%%-]
Changed lines 350-352 from:
assocProcType : typeIdent ;
to:
pointerType :=
  POINTER TO CONST? typeIdent
 
;
Changed lines 355-357 from:
[[#procedureType]]
!!!!!#20 Procedure Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureType|syntax diagram]]%%-]
to:
[[#coroutineType]]
!!!!!#19 Coroutine Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#coroutineType|syntax diagram]]%%-]
Changed lines 359-360 from:
procedureType :=
  PROCEDURE ( formalType ( ',' formalType )* )? ( ':' returnedType )?
to:
coroutineType :=
  COROUTINE '(' assocProcType ')'
Changed lines 364-366 from:
[[#formalType]]
!!!!!#20.1 Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#formalType|syntax diagram]]%%-]
to:
[[#assocProcType]]
!!!!!#19.1 Associated Procedure Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#assocProcType|syntax diagram]]%%-]
Changed lines 368-370 from:
formalType :=
  simpleFormalType | attributedFormalType | variadicFormalType
 
;
to:
assocProcType : typeIdent ;
Changed lines 371-373 from:
[[#simpleFormalType]]
!!!!!#21 Simple Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleFormalType|syntax diagram]]%%-]
to:
[[#procedureType]]
!!!!!#20 Procedure Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureType|syntax diagram]]%%-]
Changed lines 375-376 from:
simpleFormalType :=
  ( ARRAY OF )? typeIdent | castingFormalType
to:
procedureType :=
  PROCEDURE ( formalType ( ',' formalType )* )? ( ':' returnedType )?
Changed lines 380-382 from:
[[#castingFormalType]]
!!!!!#21.1 Casting Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#castingFormalType|syntax diagram]]%%-]
to:
[[#formalType]]
!!!!!#20.1 Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#formalType|syntax diagram]]%%-]
Changed lines 384-385 from:
castingFormalType :=
  CAST ( ARRAY OF OCTET | addressTypeIdent )
to:
formalType :=
  simpleFormalType | attributedFormalType | variadicFormalType
Changed lines 389-391 from:
[[#addressTypeIdent]]
!!!!!#21.2 Address Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#addressTypeIdent|syntax diagram]]%%-]
to:
[[#simpleFormalType]]
!!!!!#21 Simple Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleFormalType|syntax diagram]]%%-]
Changed lines 393-394 from:
addressTypeIdent :=
  ( UNSAFE '.' )? ADDRESS
to:
simpleFormalType :=
  ( ARRAY OF )? typeIdent | castingFormalType
Changed lines 398-400 from:
[[#attributedFormalType]]
!!!!!#22 Attributed Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#attributedFormalType|syntax diagram]]%%-]
to:
[[#castingFormalType]]
!!!!!#21.1 Casting Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#castingFormalType|syntax diagram]]%%-]
Changed lines 402-403 from:
attributedFormalType :=
  ( CONST | NEW | VAR ) ( simpleFormalType | simpleVariadicFormalType )
to:
castingFormalType :=
  CAST ( ARRAY OF OCTET | addressTypeIdent )
Changed lines 407-409 from:
[[#simpleVariadicFormalType]]
!!!!!#23 Simple Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleVariadicFormalType|syntax diagram]]%%-]
to:
[[#addressTypeIdent]]
!!!!!#21.2 Address Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#addressTypeIdent|syntax diagram]]%%-]
Changed lines 411-412 from:
simpleVariadicFormalType :=
  ARGLIST reqNumOfArgs? OF simpleFormalType terminator?
to:
addressTypeIdent :=
  ( UNSAFE '.' )? ADDRESS
Changed lines 416-418 from:
[[#reqNumOfArgs]]
!!!!!#23.1 Required Number Of Arguments \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#reqNumOfArgs|syntax diagram]]%%-]
to:
[[#attributedFormalType]]
!!!!!#22 Attributed Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#attributedFormalType|syntax diagram]]%%-]
Changed lines 420-421 from:
reqNumOfArgs :=
  greaterThan? constExpression
to:
attributedFormalType :=
  ( CONST | NEW | VAR ) ( simpleFormalType | simpleVariadicFormalType )
Changed lines 425-427 from:
[[#terminator]]
!!!!!#23.2 Argument List Terminator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#terminator|syntax diagram]]%%-]
to:
[[#simpleVariadicFormalType]]
!!!!!#23 Simple Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleVariadicFormalType|syntax diagram]]%%-]
Changed lines 429-430 from:
terminator :=
  '|' constQualident
to:
simpleVariadicFormalType :=
  ARGLIST reqNumOfArgs? OF simpleFormalType terminator?
Changed lines 434-436 from:
[[#constQualident]]
!!!!!#23.3 Constant Qualified Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constQualident|syntax diagram]]%%-]
to:
[[#reqNumOfArgs]]
!!!!!#23.1 Required Number Of Arguments \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#reqNumOfArgs|syntax diagram]]%%-]
Changed lines 438-440 from:
constQualident := qualident ;
to:
reqNumOfArgs :=
  greaterThan? constExpression
 
;
Changed lines 443-445 from:
[[#variadicFormalType]]
!!!!!#24 Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#variadicFormalType|syntax diagram]]%%-]
to:
[[#terminator]]
!!!!!#23.2 Argument List Terminator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#terminator|syntax diagram]]%%-]
Changed lines 447-450 from:
variadicFormalType :=
  ARGLIST reqNumOfArgs? OF
    ( '{' nonVariadicFormalType ( ';' nonVariadicFormalType )* '}' |
      simpleFormalType ) terminator?
to:
terminator :=
  '|' constQualident
Changed lines 452-454 from:
[[#nonVariadicFormalType]]
!!!!!#25 Non-Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#nonVariadicFormalType|syntax diagram]]%%-]
to:
[[#constQualident]]
!!!!!#23.3 Constant Qualified Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constQualident|syntax diagram]]%%-]
Changed lines 456-458 from:
nonVariadicFormalType :=
  ( CONST | NEW | VAR )? simpleFormalType
 
;
to:
constQualident := qualident ;
Changed lines 459-461 from:
[[#procedureHeader]]
!!!!!#26 Procedure Header \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureHeader|syntax diagram]]%%-]
to:
[[#variadicFormalType]]
!!!!!#24 Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#variadicFormalType|syntax diagram]]%%-]
Changed lines 463-465 from:
procedureHeader :=
  PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' | restrictedExport )?
  procedureSignature
to:
variadicFormalType :=
  ARGLIST reqNumOfArgs? OF
    ( '{' nonVariadicFormalType ( ';' nonVariadicFormalType )* '}' |
      simpleFormalType ) terminator?
Changed lines 470-472 from:
[[#procedureSignature]]
!!!!!#27 Procedure Signature \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureSignature|syntax diagram]]%%-]
to:
[[#nonVariadicFormalType]]
!!!!!#25 Non-Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#nonVariadicFormalType|syntax diagram]]%%-]
Changed lines 474-475 from:
procedureSignature :=
  Ident ( '(' formalParams ( ';' formalParams )* ')' )? ( ':' returnedType )?
to:
nonVariadicFormalType :=
  ( CONST | NEW | VAR )? simpleFormalType
Changed lines 479-481 from:
[[#formalParams]]
!!!!!#28 Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#formalParams|syntax diagram]]%%-]
to:
[[#procedureHeader]]
!!!!!#26 Procedure Header \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureHeader|syntax diagram]]%%-]
Changed lines 483-485 from:
formalParams :=
  identList ':' ( simpleFormalType | variadicFormalParams ) |
  attributedFormalParams
to:
procedureHeader :=
  PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' | restrictedExport )?
  procedureSignature
Changed lines 489-491 from:
[[#attributedFormalParams]]
!!!!!#29 Attributed Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#attributedFormalParams|syntax diagram]]%%-]
to:
[[#procedureSignature]]
!!!!!#27 Procedure Signature \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureSignature|syntax diagram]]%%-]
Changed lines 493-495 from:
attributedFormalParams :=
  ( CONST | NEW | VAR ) identList ':'
  ( simpleFormalType | simpleVariadicFormalType )
to:
procedureSignature :=
  Ident ( '(' formalParams ( ';' formalParams )* ')' )? ( ':' returnedType )?
Changed lines 498-500 from:
[[#variadicFormalParams]]
!!!!!#30 Variadic Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#variadicFormalParams|syntax diagram]]%%-]
to:
[[#formalParams]]
!!!!!#28 Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#formalParams|syntax diagram]]%%-]
Changed lines 502-505 from:
variadicFormalParams :=
  ARGLIST reqNumOfArgs? OF
 
   ( ( '{' nonVariadicFormalParams ( ';' nonVariadicFormalParams )* '}') |
      simpleFormalType ) terminator?
to:
formalParams :=
  identList ':' ( simpleFormalType | variadicFormalParams ) |
  attributedFormalParams
Changed lines 508-510 from:
[[#nonVariadicFormalParams]]
!!!!!#31 Non-Variadic Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#nonVariadicFormalParams|syntax diagram]]%%-]
to:
[[#attributedFormalParams]]
!!!!!#29 Attributed Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#attributedFormalParams|syntax diagram]]%%-]
Changed lines 512-513 from:
nonVariadicFormalParams :=
  ( CONST | NEW | VAR )? identList ':' simpleFormalType
to:
attributedFormalParams :=
  ( CONST | NEW | VAR ) identList ':'
  ( simpleFormalType | simpleVariadicFormalType )
Changed lines 518-523 from:
[[#ImplAndPrgmModuleSyntax]]
!!!!Implementation And Program Module Syntax

[[#implOrPrgmModule]]
!!!!!#32 Implementation Or Program Module \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#implOrPrgmModule
|syntax diagram]]%%-]
to:
[[#variadicFormalParams]]
!!!!!#30 Variadic Formal Parameters \
%silver% &nbsp;
[-[[SyntaxDiagrams.NonTerminals#variadicFormalParams|syntax diagram]]%%-]
Changed lines 522-524 from:
implOrPrgmModule :=
  IMPLEMENTATION? MODULE moduleIdent ';'
  ( importList ';' )* block moduleIdent '.'
to:
variadicFormalParams :=
  ARGLIST reqNumOfArgs? OF
    ( ( '{' nonVariadicFormalParams ( ';' nonVariadicFormalParams )* '}') |
      simpleFormalType ) terminator?
Changed lines 529-531 from:
[[#block]]
!!!!!#33 Block \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#block|syntax diagram]]%%-]
to:
[[#nonVariadicFormalParams]]
!!!!!#31 Non-Variadic Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#nonVariadicFormalParams|syntax diagram]]%%-]
Changed lines 533-534 from:
block :=
  declaration* ( BEGIN statementSequence )? END
to:
nonVariadicFormalParams :=
  ( CONST | NEW | VAR )? identList ':' simpleFormalType
Changed lines 538-540 from:
[[#declaration]]
!!!!!#34 Declaration \
%silver% &nbsp;
[-[[SyntaxDiagrams.NonTerminals#declaration|syntax diagram]]%%-]
to:
[[#ImplAndPrgmModuleSyntax]]
!!!!Implementation And Program Module Syntax

[[#implOrPrgmModule]]
!!!!!#32 Implementation Or Program Module \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#implOrPrgmModule
|syntax diagram]]%%-]
Changed lines 545-549 from:
declaration :=
  CONST ( Ident '=' constExpression ';' )+ |
  TYPE ( typeDeclaration
';' )+ |
  VAR ( variableDeclaration ';' )+ |
  procedureHeader ';' block Ident ';
'
to:
implOrPrgmModule :=
  IMPLEMENTATION? MODULE moduleIdent ';'
  ( importList ';' )* block moduleIdent '.'
Changed lines 551-553 from:
[[#typeDeclaration]]
!!!!!#35 Type Declaration \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeDeclaration|syntax diagram]]%%-]
to:
[[#block]]
!!!!!#33 Block \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#block|syntax diagram]]%%-]
Changed lines 555-556 from:
typeDeclaration :=
  Ident '=' ( type | indeterminateRecType )
to:
block :=
  declaration* ( BEGIN statementSequence )? END
Changed lines 560-562 from:
[[#indeterminateRecType]]
!!!!!#35.1 Indeterminate Record Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#indeterminateRecType|syntax diagram]]%%-]
to:
[[#declaration]]
!!!!!#34 Declaration \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#declaration|syntax diagram]]%%-]
Changed lines 564-565 from:
indeterminateRecType :=
  '~' RECORD ( variableDeclaration ';' )+ indeterminateField END
to:
declaration :=
  CONST ( Ident '=' constExpression ';' )+ |
  TYPE ( typeDeclaration ';' )+ |
  VAR ( variableDeclaration ';' )+ |
  procedureHeader ';' block Ident ';'
Changed lines 572-574 from:
[[#indeterminateField]]
!!!!!#35.2 Indeterminate Field \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#indeterminateField|syntax diagram]]%%-]
to:
[[#typeDeclaration]]
!!!!!#35 Type Declaration \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeDeclaration|syntax diagram]]%%-]
Changed lines 576-577 from:
indeterminateRecType :=
  '~' Ident ':' ARRAY '~' discriminantFieldIdent OF typeIdent END
to:
typeDeclaration :=
  Ident '=' ( type | indeterminateRecType )
Changed lines 581-583 from:
[[#discriminantFieldIdent]]
!!!!!#35.3 Discriminant Field Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#discriminantFieldIdent|syntax diagram]]%%-]
to:
[[#indeterminateRecType]]
!!!!!#35.1 Indeterminate Record Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#indeterminateRecType|syntax diagram]]%%-]
Changed lines 585-587 from:
discriminantFieldIdent := Ident ;
to:
indeterminateRecType :=
  '~' RECORD ( variableDeclaration ';' )+ indeterminateField END
 
;
Changed lines 590-592 from:
[[#statementSequence]]
!!!!!#36 Statement Sequence \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#statementSequence|syntax diagram]]%%-]
to:
[[#indeterminateField]]
!!!!!#35.2 Indeterminate Field \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#indeterminateField|syntax diagram]]%%-]
Changed lines 594-595 from:
statementSequence :=
  statement ( ';' statement )*
to:
indeterminateRecType :=
  '~' Ident ':' ARRAY '~' discriminantFieldIdent OF typeIdent END
Changed lines 599-601 from:
[[#statement]]
!!!!!#37 Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#statement|syntax diagram]]%%-]
to:
[[#discriminantFieldIdent]]
!!!!!#35.3 Discriminant Field Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#discriminantFieldIdent|syntax diagram]]%%-]
Changed lines 603-606 from:
statement :=
  memMgtOperation | updateOrProcCall | ifStatement | caseStatement |
  loopStatement | whileStatement | repeatStatement | forStatement | EXIT
 
;
to:
discriminantFieldIdent := Ident ;
Changed lines 606-608 from:
[[#memMgtOperation]]
!!!!!#38 Memory Management Operation \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#memMgtOperation|syntax diagram]]%%-]
to:
[[#statementSequence]]
!!!!!#36 Statement Sequence \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#statementSequence|syntax diagram]]%%-]
Changed lines 610-613 from:
memMgtOperation :=
  NEW designator ( OF initSize | := initValue )? |
  RETAIN designator |
  RELEASE designator
to:
statementSequence :=
  statement ( ';' statement )*
Changed lines 615-617 from:
[[#initSize]][[#initValue]]
!!!!!#38.1 Initialisation Size, Initialisation Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#initSize|syntax diagram]]%%-]
to:
[[#statement]]
!!!!!#37 Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#statement|syntax diagram]]%%-]
Changed lines 619-621 from:
initSize := expression ;

initValue := expression
;
to:
statement :=
  memMgtOperation | updateOrProcCall | ifStatement | caseStatement |
  loopStatement | whileStatement | repeatStatement | forStatement | EXIT
 
;
Changed lines 625-627 from:
[[#updateOrProcCall]]
!!!!!#39 Update Or Procedure Call \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#updateOrProcCall|syntax diagram]]%%-]
to:
[[#memMgtOperation]]
!!!!!#38 Memory Management Operation \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#memMgtOperation|syntax diagram]]%%-]
Changed lines 629-631 from:
updateOrProcCall :=
  designator ( incOrDecSuffix | ':=' expression | '(' expressionList ')' )? |
  COPY designator ':=' expression
to:
memMgtOperation :=
  NEW designator ( OF initSize | := initValue )? |
  RETAIN designator |
  RELEASE designator
Changed lines 636-638 from:
[[#incOrDecSuffix]]
!!!!!#39.1 Increment Or Decrement Suffix \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#incOrDecSuffix|syntax diagram]]%%-]
to:
[[#initSize]][[#initValue]]
!!!!!#38.1 Initialisation Size, Initialisation Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#initSize|syntax diagram]]%%-]
Changed lines 640-642 from:
incOrDecSuffix :=
  '++' | '--'
 
;
to:
initSize := expression ;

initValue := expression
;
Changed lines 645-647 from:
[[#returnStatement]]
!!!!!#40 Return Or Yield Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#returnStatement|syntax diagram]]%%-]
to:
[[#updateOrProcCall]]
!!!!!#39 Update Or Procedure Call \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#updateOrProcCall|syntax diagram]]%%-]
Changed lines 649-650 from:
returnStatement :=
  ( RETURN | YIELD ) expression?
to:
updateOrProcCall :=
  designator ( incOrDecSuffix | ':=' expression | '(' expressionList ')' )? |
  COPY designator ':=' expression
Changed lines 655-657 from:
[[#ifStatement]]
!!!!!#41 IF Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ifStatement|syntax diagram]]%%-]
to:
[[#incOrDecSuffix]]
!!!!!#39.1 Increment Or Decrement Suffix \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#incOrDecSuffix|syntax diagram]]%%-]
Changed lines 659-663 from:
ifStatement :=
  IF boolExpression THEN statementSequence
  ( ELSIF boolExpression THEN statementSequence )?
  ( ELSE statementSequence )?
  END
to:
incOrDecSuffix :=
  '++' | '--'
Changed lines 664-666 from:
[[#boolExpression]]
!!!!!#41.1 Boolean Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#boolExpression|syntax diagram]]%%-]
to:
[[#returnStatement]]
!!!!!#40 Return Or Yield Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#returnStatement|syntax diagram]]%%-]
Changed lines 668-670 from:
boolExpression := expression ;
to:
returnStatement :=
  ( RETURN | YIELD ) expression?
 
;
Changed lines 673-675 from:
[[#caseStatement]]
!!!!!#42 CASE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseStatement|syntax diagram]]%%-]
to:
[[#ifStatement]]
!!!!!#41 IF Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ifStatement|syntax diagram]]%%-]
Changed lines 677-678 from:
caseStatement :=
  CASE expression OF ( '|' case  )+ ( ELSE statementSequence )? END
to:
ifStatement :=
  IF boolExpression THEN statementSequence
  ( ELSIF boolExpression THEN statementSequence )?
  ( ELSE statementSequence )?
 
END
Changed lines 685-687 from:
[[#case]]
!!!!!#42.1 Case \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#case|syntax diagram]]%%-]
to:
[[#boolExpression]]
!!!!!#41.1 Boolean Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#boolExpression|syntax diagram]]%%-]
Changed lines 689-691 from:
case :=
  caseLabels ( ',' caseLabels )* ':' statementSequence
 
;
to:
boolExpression := expression ;
Changed lines 692-694 from:
[[#caseLabels]]
!!!!!#42.2 Case Labels \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseLabels|syntax diagram]]%%-]
to:
[[#caseStatement]]
!!!!!#42 CASE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseStatement|syntax diagram]]%%-]
Changed lines 696-697 from:
caseLabels :=
  constExpression ( '..' constExpression )?
to:
caseStatement :=
  CASE expression OF ( '|' case  )+ ( ELSE statementSequence )? END
Changed lines 701-703 from:
[[#loopStatement]]
!!!!!#43 LOOP Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#loopStatement|syntax diagram]]%%-]
to:
[[#case]]
!!!!!#42.1 Case \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#case|syntax diagram]]%%-]
Changed lines 705-706 from:
loopStatement :=
  LOOP statementSequence END
to:
case :=
  caseLabels ( ',' caseLabels )* ':' statementSequence
Changed lines 710-712 from:
[[#whileStatement]]
!!!!!#44 WHILE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#whileStatement|syntax diagram]]%%-]
to:
[[#caseLabels]]
!!!!!#42.2 Case Labels \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseLabels|syntax diagram]]%%-]
Changed lines 714-715 from:
whileStatement :=
  WHILE boolExpression DO statementSequence END
to:
caseLabels :=
  constExpression ( '..' constExpression )?
Changed lines 719-721 from:
[[#repeatStatement]]
!!!!!#45 REPEAT Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#repeatStatement|syntax diagram]]%%-]
to:
[[#loopStatement]]
!!!!!#43 LOOP Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#loopStatement|syntax diagram]]%%-]
Changed lines 723-724 from:
repeatStatement :=
  REPEAT statementSequence UNTIL boolExpression
to:
loopStatement :=
  LOOP statementSequence END
Changed lines 728-730 from:
[[#forStatement]]
!!!!!#46 FOR Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forStatement|syntax diagram]]%%-]
to:
[[#whileStatement]]
!!!!!#44 WHILE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#whileStatement|syntax diagram]]%%-]
Changed lines 732-733 from:
forStatement :=
  FOR forLoopVariants IN iterableEntity DO statementSequence END
to:
whileStatement :=
  WHILE boolExpression DO statementSequence END
Changed lines 737-739 from:
[[#forLoopVariants]]
!!!!!#46.1 FOR Loop Variants \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forLoopVariants|syntax diagram]]%%-]
to:
[[#repeatStatement]]
!!!!!#45 REPEAT Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#repeatStatement|syntax diagram]]%%-]
Changed lines 741-743 from:
forLoopVariants :=
  accessor ascOrDesc? ( ',' value )? |
  VALUE value ascOrDesc?
to:
repeatStatement :=
  REPEAT statementSequence UNTIL boolExpression
Changed lines 746-748 from:
[[#accessor]][[#value]]
!!!!!#46.2 Accessor, Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#accessor|syntax diagram]]%%-]
to:
[[#forStatement]]
!!!!!#46 FOR Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forStatement|syntax diagram]]%%-]
Changed lines 750-752 from:
accessor := Ident ;

value := Ident
;
to:
forStatement :=
  FOR forLoopVariants IN iterableExpr DO statementSequence END
 
;
Changed lines 755-757 from:
[[#iterableEntity]]
!!!!!#46.3 Iterable Entity \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#iterableEntity|syntax diagram]]%%-]
to:
[[#forLoopVariants]]
!!!!!#46.1 FOR Loop Variants \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forLoopVariants|syntax diagram]]%%-]
Changed lines 759-760 from:
iterableEntity :=
  designator | range OF ordinalType
to:
forLoopVariants :=
  accessor ascOrDesc? ( ',' value )? |
  VALUE value ascOrDesc?
  ;
@]

[[#accessor]][[#value]]
!!!!!#46.2 Accessor, Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#accessor|syntax diagram]]%%-]
[@
accessor := Ident ;

value := Ident ;
@]

[[#iterableExpr]]
!!!!!#46.3 Iterable Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#iterableExpr|syntax diagram]]%%-]
[@
iterableExpr :=
  designator | '[' expression '..' expression ']'
OF ordinalType
2015-09-28 03:31 by trijezdci -
Changed line 257 from:
!!!!!#13.2 Ordinal Or Scalar Type, Dynamic Type Identifier \
to:
!!!!!#13.2 Dynamic Type Identifier, Ordinal Or Scalar Type \
2015-09-28 03:30 by trijezdci -
Changed line 249 from:
derivedSubType :=
to:
subType :=
Changed line 256 from:
[[#ordinalOrScalarType]][[#dynamicTypeIdent]]
to:
[[#dynamicTypeIdent]][[#ordinalOrScalarType]]
2015-09-28 03:29 by trijezdci -
Changed line 240 from:
  typeIdent | derivedSubType | enumType | setType | arrayType |
to:
  typeIdent | subType | enumType | setType | arrayType |
Changed lines 245-247 from:
[[#derivedSubType]]
!!!!!#13.1 Derived Sub-Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#derivedSubType|syntax diagram]]%%-]
to:
[[#subType]]
!!!!!#13.1 Sub-Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#subType|syntax diagram]]%%-]
Changed lines 251-252 from:
  range OF ordinalOrScalarType |
  CONST dynamicTypeIdent
to:
  CONST dynamicTypeIdent |
  range OF ordinalOrScalarType
Added lines 260-261:
dynamicTypeIdent := typeIdent ;
Deleted lines 262-263:

dynamicTypeIdent := typeIdent ;
2015-09-27 15:50 by trijezdci -
Changed lines 606-607 from:
  loopStatement | whileStatement | repeatStatement | forStatement |
  ( RETURN | YIELD ) expression?
| EXIT
to:
  loopStatement | whileStatement | repeatStatement | forStatement | EXIT
Changed lines 649-651 from:
[[#ifStatement]]
!!!!!#40 IF Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ifStatement|syntax diagram]]%%-]
to:
[[#returnStatement]]
!!!!!#40 Return Or Yield Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#returnStatement|syntax diagram]]%%-]
Changed lines 653-657 from:
ifStatement :=
  IF boolExpression THEN statementSequence
  ( ELSIF boolExpression THEN statementSequence )?
  ( ELSE statementSequence )?
  END
to:
returnStatement :=
  ( RETURN | YIELD ) expression?
Changed lines 658-660 from:
[[#boolExpression]]
!!!!!#40.1 Boolean Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#boolExpression|syntax diagram]]%%-]
to:
[[#ifStatement]]
!!!!!#41 IF Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ifStatement|syntax diagram]]%%-]
Changed lines 662-667 from:
boolExpression := expression ;
to:
ifStatement :=
  IF boolExpression THEN statementSequence
  ( ELSIF boolExpression THEN statementSequence )?
  ( ELSE statementSequence )?
  END
 
;
Changed lines 670-672 from:
[[#caseStatement]]
!!!!!#41 CASE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseStatement|syntax diagram]]%%-]
to:
[[#boolExpression]]
!!!!!#41.1 Boolean Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#boolExpression|syntax diagram]]%%-]
Changed lines 674-676 from:
caseStatement :=
  CASE expression OF ( '|' case  )+ ( ELSE statementSequence )? END
 
;
to:
boolExpression := expression ;
Changed lines 677-679 from:
[[#case]]
!!!!!#41.1 Case \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#case|syntax diagram]]%%-]
to:
[[#caseStatement]]
!!!!!#42 CASE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseStatement|syntax diagram]]%%-]
Changed lines 681-682 from:
case :=
  caseLabels ( ',' caseLabels )* ':' statementSequence
to:
caseStatement :=
  CASE expression OF ( '|' case  )+ ( ELSE statementSequence )? END
Changed lines 686-688 from:
[[#caseLabels]]
!!!!!#41.2 Case Labels \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseLabels|syntax diagram]]%%-]
to:
[[#case]]
!!!!!#42.1 Case \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#case|syntax diagram]]%%-]
Changed lines 690-691 from:
caseLabels :=
  constExpression ( '..' constExpression )?
to:
case :=
  caseLabels ( ',' caseLabels )* ':' statementSequence
Changed lines 695-697 from:
[[#loopStatement]]
!!!!!#42 LOOP Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#loopStatement|syntax diagram]]%%-]
to:
[[#caseLabels]]
!!!!!#42.2 Case Labels \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseLabels|syntax diagram]]%%-]
Changed lines 699-700 from:
loopStatement :=
  LOOP statementSequence END
to:
caseLabels :=
  constExpression ( '..' constExpression )?
Changed lines 704-706 from:
[[#whileStatement]]
!!!!!#43 WHILE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#whileStatement|syntax diagram]]%%-]
to:
[[#loopStatement]]
!!!!!#43 LOOP Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#loopStatement|syntax diagram]]%%-]
Changed lines 708-709 from:
whileStatement :=
  WHILE boolExpression DO statementSequence END
to:
loopStatement :=
  LOOP statementSequence END
Changed lines 713-715 from:
[[#repeatStatement]]
!!!!!#44 REPEAT Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#repeatStatement|syntax diagram]]%%-]
to:
[[#whileStatement]]
!!!!!#44 WHILE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#whileStatement|syntax diagram]]%%-]
Changed lines 717-718 from:
repeatStatement :=
  REPEAT statementSequence UNTIL boolExpression
to:
whileStatement :=
  WHILE boolExpression DO statementSequence END
Changed lines 722-724 from:
[[#forStatement]]
!!!!!#45 FOR Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forStatement|syntax diagram]]%%-]
to:
[[#repeatStatement]]
!!!!!#45 REPEAT Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#repeatStatement|syntax diagram]]%%-]
Changed lines 726-727 from:
forStatement :=
  FOR forLoopVariants IN iterableEntity DO statementSequence END
to:
repeatStatement :=
  REPEAT statementSequence UNTIL boolExpression
Changed lines 731-733 from:
[[#forLoopVariants]]
!!!!!#45.1 FOR Loop Variants \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forLoopVariants|syntax diagram]]%%-]
to:
[[#forStatement]]
!!!!!#46 FOR Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forStatement|syntax diagram]]%%-]
Changed lines 735-737 from:
forLoopVariants :=
  accessor ascOrDesc? ( ',' value )? |
  VALUE value ascOrDesc?
to:
forStatement :=
  FOR forLoopVariants IN iterableEntity DO statementSequence END
Changed lines 740-742 from:
[[#accessor]][[#value]]
!!!!!#45.2 Accessor, Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#accessor|syntax diagram]]%%-]
to:
[[#forLoopVariants]]
!!!!!#46.1 FOR Loop Variants \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forLoopVariants|syntax diagram]]%%-]
Changed lines 744-746 from:
accessor := Ident ;

value := Ident
;
to:
forLoopVariants :=
  accessor ascOrDesc? ( ',' value )? |
  VALUE value ascOrDesc?
 
;
Changed lines 750-752 from:
[[#iterableEntity]]
!!!!!#45.3 Iterable Entity \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#iterableEntity|syntax diagram]]%%-]
to:
[[#accessor]][[#value]]
!!!!!#46.2 Accessor, Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#accessor|syntax diagram]]%%-]
Changed lines 754-756 from:
iterableEntity :=
  designator | range OF ordinalType
 
;
to:
accessor := Ident ;

value := Ident
;
Changed lines 759-761 from:
[[#ascOrDesc]]
!!!!!#45.4 Ascender Or Descender \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ascOrDesc|syntax diagram]]%%-]
to:
[[#iterableEntity]]
!!!!!#46.3 Iterable Entity \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#iterableEntity|syntax diagram]]%%-]
Changed lines 763-765 from:
ascOrDesc := incOrDecSuffix ;
to:
iterableEntity :=
  designator | range OF ordinalType
 
;
Changed lines 768-770 from:
[[#ordinalType]]
!!!!!#45.5 Ordinal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ordinalType|syntax diagram]]%%-]
to:
[[#ascOrDesc]]
!!!!!#46.4 Ascender Or Descender \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ascOrDesc|syntax diagram]]%%-]
Changed line 772 from:
ordinalType := typeIdent ;
to:
ascOrDesc := incOrDecSuffix ;
Changed lines 775-777 from:
[[#designator]]
!!!!!#46 Designator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#designator|syntax diagram]]%%-]
to:
[[#ordinalType]]
!!!!!#46.5 Ordinal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ordinalType|syntax diagram]]%%-]
Changed lines 779-781 from:
designator :=
  qualident designatorTail?
 
;
to:
ordinalType := typeIdent ;
Changed lines 782-784 from:
[[#designatorTail]]
!!!!!#46.1 Designator Tail \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#designatorTail|syntax diagram]]%%-]
to:
[[#designator]]
!!!!!#47 Designator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#designator|syntax diagram]]%%-]
Changed lines 786-787 from:
designatorTail :=
  ( ( '[' exprListOrSlice ']' | '^' ) ( '.' Ident )* )+
to:
designator :=
  qualident designatorTail?
Changed lines 791-793 from:
[[#exprListOrSlice]]
!!!!!#46.2 Expression List Or Slice \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#exprListOrSlice|syntax diagram]]%%-]
to:
[[#designatorTail]]
!!!!!#47.1 Designator Tail \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#designatorTail|syntax diagram]]%%-]
Changed lines 795-796 from:
exprListOrSlice :=
  expression ( ( ',' expression )* | '..' expression? )
to:
designatorTail :=
  ( ( '[' exprListOrSlice ']' | '^' ) ( '.' Ident )* )+
Changed lines 800-802 from:
[[#expressionList]]
!!!!!#47 Expression List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expressionList|syntax diagram]]%%-]
to:
[[#exprListOrSlice]]
!!!!!#47.2 Expression List Or Slice \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#exprListOrSlice|syntax diagram]]%%-]
Changed lines 804-805 from:
expressionList :=
  expression ( ',' expression )*
to:
exprListOrSlice :=
  expression ( ( ',' expression )* | '..' expression? )
Changed lines 809-811 from:
[[#expression]]
!!!!!#48 Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expression|syntax diagram]]%%-]
to:
[[#expressionList]]
!!!!!#48 Expression List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expressionList|syntax diagram]]%%-]
Changed lines 813-814 from:
expression :=
  simpleExpression ( operL1 simpleExpression )?
to:
expressionList :=
  expression ( ',' expression )*
Changed lines 818-820 from:
[[#operL1]]
!!!!!#48.1 Level-1 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL1|syntax diagram]]%%-]
to:
[[#expression]]
!!!!!#49 Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expression|syntax diagram]]%%-]
Changed lines 822-823 from:
operL1 :=
  '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp
to:
expression :=
  simpleExpression ( operL1 simpleExpression )?
Changed lines 827-829 from:
[[#identityOp]]
!!!!!#48.2 Identity Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identityOp|syntax diagram]]%%-]
to:
[[#operL1]]
!!!!!#49.1 Level-1 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL1|syntax diagram]]%%-]
Changed lines 831-833 from:
identityOp := '==' ;
to:
operL1 :=
  '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp
 
;
Changed lines 836-838 from:
[[#simpleExpression]]
!!!!!#49 Simple Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleExpression|syntax diagram]]%%-]
to:
[[#identityOp]]
!!!!!#49.2 Identity Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identityOp|syntax diagram]]%%-]
Changed lines 840-842 from:
simpleExpression :=
  ( '+' | '-' )? term ( operL2 term )*
 
;
to:
identityOp := '==' ;
Changed lines 843-845 from:
[[#operL2]]
!!!!!#49.1 Level-2 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL2|syntax diagram]]%%-]
to:
[[#simpleExpression]]
!!!!!#50 Simple Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleExpression|syntax diagram]]%%-]
Changed lines 847-848 from:
operL2 :=
  '+' | '-' | OR | concatOp
to:
simpleExpression :=
  ( '+' | '-' )? term ( operL2 term )*
Changed lines 852-854 from:
[[#concatOp]]
!!!!!#49.2 Concatenation Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#concatOp|syntax diagram]]%%-]
to:
[[#operL2]]
!!!!!#50.1 Level-2 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL2|syntax diagram]]%%-]
Changed lines 856-858 from:
concatOp := '&' ;
to:
operL2 :=
  '+' | '-' | OR | concatOp
 
;
Changed lines 861-863 from:
[[#term]]
!!!!!#50 Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#term|syntax diagram]]%%-]
to:
[[#concatOp]]
!!!!!#49.2 Concatenation Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#concatOp|syntax diagram]]%%-]
Changed lines 865-867 from:
term :=
  simpleTerm ( operL3 simpleTerm )*
 
;
to:
concatOp := '&' ;
Changed lines 868-870 from:
[[#operL3]]
!!!!!#50.1 Level-3 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL3|syntax diagram]]%%-]
to:
[[#term]]
!!!!!#51 Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#term|syntax diagram]]%%-]
Changed lines 872-873 from:
operL3 :=
  '*' | '/' | DIV | MOD | AND | setDiffOp
to:
term :=
  simpleTerm ( operL3 simpleTerm )*
Changed lines 877-879 from:
[[#setDiffOp]]
!!!!!#50.2 Set Difference Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#setDiffOp|syntax diagram]]%%-]
to:
[[#operL3]]
!!!!!#51.1 Level-3 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL3|syntax diagram]]%%-]
Changed lines 881-883 from:
setDiffOp := '\' ;
to:
operL3 :=
  '*' | '/' | DIV | MOD | AND | setDiffOp
 
;
Changed lines 886-888 from:
[[#simpleTerm]]
!!!!!#51 Simple Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleTerm|syntax diagram]]%%-]
to:
[[#setDiffOp]]
!!!!!#51.2 Set Difference Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#setDiffOp|syntax diagram]]%%-]
Changed lines 890-892 from:
simpleTerm :=
  NOT? factorOrTypeConv
 
;
to:
setDiffOp := '\' ;
Changed lines 893-895 from:
[[#factor]]
!!!!!#52 Factor \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#factor|syntax diagram]]%%-]
to:
[[#simpleTerm]]
!!!!!#52 Simple Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleTerm|syntax diagram]]%%-]
Changed lines 897-898 from:
factor :=
  simpleFactor ( typeConvOp typeIdent )?
to:
simpleTerm :=
  NOT? factorOrTypeConv
Changed lines 902-904 from:
[[#typeConvOp]]
!!!!!#52.1 Type Conversion Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeConvOp|syntax diagram]]%%-]
to:
[[#factor]]
!!!!!#53 Factor \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#factor|syntax diagram]]%%-]
Changed lines 906-908 from:
typeConvOp := '::' ;
to:
factor :=
  simpleFactor ( typeConvOp typeIdent )?
 
;
Changed lines 911-913 from:
[[#simpleFactor]]
!!!!!#53 Simple Factor \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleFactor|syntax diagram]]%%-]
to:
[[#typeConvOp]]
!!!!!#53.1 Type Conversion Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeConvOp|syntax diagram]]%%-]
Changed lines 915-917 from:
simpleFactor :=
  NumberLiteral | StringLiteral | structuredValue | functionCall | '(' expression ')'
 
;
to:
typeConvOp := '::' ;
Changed lines 918-920 from:
[[#functionCall]]
!!!!!#53.1 Function Call \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#functionCall|syntax diagram]]%%-]
to:
[[#simpleFactor]]
!!!!!#54 Simple Factor \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleFactor|syntax diagram]]%%-]
Changed lines 922-923 from:
functionCall :=
  designator '(' expressionList? ')'
to:
simpleFactor :=
  NumberLiteral | StringLiteral | structuredValue | functionCall | '(' expression ')'
Changed lines 927-929 from:
[[#structuredValue]]
!!!!!#54 Structured Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#structuredValue|syntax diagram]]%%-]
to:
[[#functionCall]]
!!!!!#54.1 Function Call \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#functionCall|syntax diagram]]%%-]
Changed lines 931-932 from:
structuredValue :=
  '{' valueComponent ( ',' valueComponent )* '}'
to:
functionCall :=
  designator '(' expressionList? ')'
Changed lines 936-938 from:
[[#valueComponent]]
!!!!!#54.1 Value Component \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#valueComponent|syntax diagram]]%%-]
to:
[[#structuredValue]]
!!!!!#54.2 Structured Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#structuredValue|syntax diagram]]%%-]
Changed lines 940-941 from:
valueComponent :=
  constExpression (( BY | '..' )? constExpression )? | runtimeExpression
to:
structuredValue :=
  '{' valueComponent ( ',' valueComponent )* '}'
Changed lines 945-947 from:
[[#runtimeExpression]]
!!!!!#54.2 Runtime Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#runtimeExpression|syntax diagram]]%%-]
to:
[[#valueComponent]]
!!!!!#54.3 Value Component \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#valueComponent|syntax diagram]]%%-]
[@
valueComponent :=
  constExpression (( BY | '..' )? constExpression )? | runtimeExpression
  ;
@]

[[#runtimeExpression]]
!!!!!#54.4 Runtime Expression \
2015-09-27 09:10 by trijezdci -
Changed line 320 from:
  restrictedExport? variableDeclaration
to:
  restrictedExport? variableDeclaration ( '=' constExpression )?
2015-09-24 14:40 by trijezdci -
Changed lines 1309-1310 from:
  '+' | '-' | '*' | '/' | '\' | '=' | '<' | '>' | '::' | IN | DIV | MOD | unaryMinus
to:
  '+' | '-' | '*' | '/' | '\' | '=' | '<' | '>' | '::' |
 
IN | DIV | MOD | unaryMinus
2015-09-24 14:39 by trijezdci -
Changed line 1300 from:
  '|' ( '++' | '--' )
to:
  ':' ( '++' | '--' )
Changed lines 1309-1310 from:
  '+' | '-' | '*' | '/' | '\' | '=' | '<' | '>' | '*.' | '::'
 
IN | DIV | MOD | unaryMinus
to:
  '+' | '-' | '*' | '/' | '\' | '=' | '<' | '>' | '::' | IN | DIV | MOD | unaryMinus
Changed line 1344 from:
  '|' '#'
to:
  ':' '#'
Changed line 1362 from:
  '|' ( ',' | '#' | '*' )
to:
  ':' ( ',' | '#' | '*' )
Changed line 1380 from:
  '|' ( ',' | '*' )
to:
  ':' ( ',' | '*' )
2015-09-24 14:36 by trijezdci -
Changed line 899 from:
  simpleFactor ( '::' typeIdent )?
to:
  simpleFactor ( typeConvOp typeIdent )?
Added lines 901-907:
@]

[[#typeConvOp]]
!!!!!#52.1 Type Conversion Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeConvOp|syntax diagram]]%%-]
[@
typeConvOp := '::' ;
2015-09-24 14:33 by trijezdci -
Changed line 895 from:
!!!!!#52 \
to:
!!!!!#52 Factor \
2015-09-24 14:30 by trijezdci -
Changed line 601 from:
!!!!!#36 Statement \
to:
!!!!!#37 Statement \
Changed line 612 from:
!!!!!#37 Memory Management Operation \
to:
!!!!!#38 Memory Management Operation \
Changed line 623 from:
!!!!!#37.1 Initialisation Size, Initialisation Value \
to:
!!!!!#38.1 Initialisation Size, Initialisation Value \
Changed line 632 from:
!!!!!#38 Update Or Procedure Call \
to:
!!!!!#39 Update Or Procedure Call \
Changed line 642 from:
!!!!!#38.1 Increment Or Decrement Suffix \
to:
!!!!!#39.1 Increment Or Decrement Suffix \
Changed line 651 from:
!!!!!#39 IF Statement \
to:
!!!!!#40 IF Statement \
Changed line 663 from:
!!!!!#39.1 Boolean Expression \
to:
!!!!!#40.1 Boolean Expression \
Changed line 670 from:
!!!!!#40 CASE Statement \
to:
!!!!!#41 CASE Statement \
Changed line 679 from:
!!!!!#40.1 Case \
to:
!!!!!#41.1 Case \
Changed line 688 from:
!!!!!#40.2 Case Labels \
to:
!!!!!#41.2 Case Labels \
Changed line 697 from:
!!!!!#41 LOOP Statement \
to:
!!!!!#42 LOOP Statement \
Changed line 706 from:
!!!!!#42 WHILE Statement \
to:
!!!!!#43 WHILE Statement \
Changed line 715 from:
!!!!!#43 REPEAT Statement \
to:
!!!!!#44 REPEAT Statement \
Changed line 724 from:
!!!!!#44 FOR Statement \
to:
!!!!!#45 FOR Statement \
Changed line 733 from:
!!!!!#44.1 FOR Loop Variants \
to:
!!!!!#45.1 FOR Loop Variants \
Changed line 743 from:
!!!!!#44.2 Accessor, Value \
to:
!!!!!#45.2 Accessor, Value \
Changed line 752 from:
!!!!!#44.3 Iterable Entity \
to:
!!!!!#45.3 Iterable Entity \
Changed line 761 from:
!!!!!#44.4 Ascender Or Descender \
to:
!!!!!#45.4 Ascender Or Descender \
Changed line 768 from:
!!!!!#44.5 Ordinal Type \
to:
!!!!!#45.5 Ordinal Type \
Changed line 775 from:
!!!!!#45 Designator \
to:
!!!!!#46 Designator \
Changed line 784 from:
!!!!!#45.1 Designator Tail \
to:
!!!!!#46.1 Designator Tail \
Changed line 793 from:
!!!!!#45.2 Expression List Or Slice \
to:
!!!!!#46.2 Expression List Or Slice \
Changed lines 801-803 from:
[[#expression]]
!!!!!#46 Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expression|syntax diagram]]%%-]
to:
[[#expressionList]]
!!!!!#47 Expression List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expressionList|syntax diagram]]%%-]
Changed lines 805-806 from:
expression :=
  simpleExpression ( operL1 simpleExpression )?
to:
expressionList :=
  expression ( ',' expression )*
Changed lines 810-812 from:
[[#operL1]]
!!!!!#46.1 Level-1 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL1|syntax diagram]]%%-]
to:
[[#expression]]
!!!!!#48 Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expression|syntax diagram]]%%-]
Changed lines 814-815 from:
operL1 :=
  '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp
to:
expression :=
  simpleExpression ( operL1 simpleExpression )?
Changed lines 819-821 from:
[[#identityOp]]
!!!!!#46.2 Identity Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identityOp|syntax diagram]]%%-]
to:
[[#operL1]]
!!!!!#48.1 Level-1 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL1|syntax diagram]]%%-]
Changed lines 823-825 from:
identityOp := '==' ;
to:
operL1 :=
  '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp
 
;
Changed lines 828-830 from:
[[#simpleExpression]]
!!!!!#47 Simple Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleExpression|syntax diagram]]%%-]
to:
[[#identityOp]]
!!!!!#48.2 Identity Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identityOp|syntax diagram]]%%-]
Changed lines 832-834 from:
simpleExpression :=
  ( '+' | '-' )? term ( operL2 term )*
 
;
to:
identityOp := '==' ;
Changed lines 835-837 from:
[[#operL2]]
!!!!!#47.1 Level-2 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL2|syntax diagram]]%%-]
to:
[[#simpleExpression]]
!!!!!#49 Simple Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleExpression|syntax diagram]]%%-]
Changed lines 839-840 from:
operL2 :=
  '+' | '-' | OR | concatOp
to:
simpleExpression :=
  ( '+' | '-' )? term ( operL2 term )*
Changed lines 844-846 from:
[[#concatOp]]
!!!!!#47.2 Concatenation Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#concatOp|syntax diagram]]%%-]
to:
[[#operL2]]
!!!!!#49.1 Level-2 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL2|syntax diagram]]%%-]
Changed lines 848-850 from:
concatOp := '&' ;
to:
operL2 :=
  '+' | '-' | OR | concatOp
 
;
Changed lines 853-855 from:
[[#term]]
!!!!!#48 Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#term|syntax diagram]]%%-]
to:
[[#concatOp]]
!!!!!#49.2 Concatenation Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#concatOp|syntax diagram]]%%-]
Changed lines 857-859 from:
term :=
  simpleTerm ( operL3 simpleTerm )*
 
;
to:
concatOp := '&' ;
Changed lines 860-862 from:
[[#operL3]]
!!!!!#48.1 Level-3 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL3|syntax diagram]]%%-]
to:
[[#term]]
!!!!!#50 Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#term|syntax diagram]]%%-]
Changed lines 864-865 from:
operL3 :=
  '*' | '/' | DIV | MOD | AND | setDiffOp
to:
term :=
  simpleTerm ( operL3 simpleTerm )*
Changed lines 869-871 from:
[[#setDiffOp]]
!!!!!#48.2 Set Difference Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#setDiffOp|syntax diagram]]%%-]
to:
[[#operL3]]
!!!!!#50.1 Level-3 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL3|syntax diagram]]%%-]
Changed lines 873-875 from:
setDiffOp := '\' ;
to:
operL3 :=
  '*' | '/' | DIV | MOD | AND | setDiffOp
 
;
Changed lines 878-880 from:
[[#simpleTerm]]
!!!!!#49 Simple Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleTerm|syntax diagram]]%%-]
to:
[[#setDiffOp]]
!!!!!#50.2 Set Difference Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#setDiffOp|syntax diagram]]%%-]
Changed lines 882-884 from:
simpleTerm :=
  NOT? factorOrTypeConv
 
;
to:
setDiffOp := '\' ;
Changed lines 885-887 from:
[[#factorOrTypeConv]]
!!!!!#50 Factor Or Type Conversion \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#factorOrTypeConv|syntax diagram]]%%-]
to:
[[#simpleTerm]]
!!!!!#51 Simple Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleTerm|syntax diagram]]%%-]
Changed lines 889-890 from:
factorOrTypeConv :=
  factor ( '::' typeIdent )?
to:
simpleTerm :=
  NOT? factorOrTypeConv
Changed line 895 from:
!!!!!#51 Factor \
to:
!!!!!#52 \
Changed lines 899-900 from:
  NumberLiteral | StringLiteral | structuredValue |
  '(' expression '
)' | designator actualParameters?
to:
  simpleFactor ( '::' typeIdent )?
Changed lines 903-905 from:
[[#actualParameters]]
!!!!!#52 Actual Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#actualParameters|syntax diagram]]%%-]
to:
[[#simpleFactor]]
!!!!!#53 Simple Factor \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleFactor|syntax diagram]]%%-]
Changed lines 907-908 from:
actualParameters :=
  '(' expressionList ')'
to:
simpleFactor :=
  NumberLiteral | StringLiteral | structuredValue | functionCall | '(' expression ')'
Changed lines 912-914 from:
[[#expressionList]]
!!!!!#53 Expression List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expressionList|syntax diagram]]%%-]
to:
[[#functionCall]]
!!!!!#53.1 Function Call \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#functionCall|syntax diagram]]%%-]
Changed lines 916-917 from:
expressionList :=
  expression ( ',' expression )*
to:
functionCall :=
  designator '(' expressionList? ')'
2015-09-24 14:22 by trijezdci -
Changed line 551 from:
  TYPE ( Ident '=' typeDeclTail ';' )+ |
to:
  TYPE ( typeDeclaration ';' )+ |
Changed lines 557-559 from:
[[#typeDeclTail]]
!!!!!#34.1 Type Declaration Tail \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeDeclTail|syntax diagram]]%%-]
to:
[[#typeDeclaration]]
!!!!!#35 Type Declaration \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeDeclaration|syntax diagram]]%%-]
Changed lines 561-562 from:
typeDeclTail :=
  type | indeterminateRecType
to:
typeDeclaration :=
  Ident '=' ( type | indeterminateRecType )
Changed line 567 from:
!!!!!#35 Indeterminate Record Type \
to:
!!!!!#35.1 Indeterminate Record Type \
Changed line 576 from:
!!!!!#35.1 Indeterminate Field \
to:
!!!!!#35.2 Indeterminate Field \
Changed line 585 from:
!!!!!#35.2 Discriminant Field Identifier \
to:
!!!!!#35.3 Discriminant Field Identifier \
Changed line 636 from:
  designator ( ':=' expression | incOrDecSuffix | actualParameters )? |
to:
  designator ( incOrDecSuffix | ':=' expression | '(' expressionList ')' )? |
2015-09-24 10:39 by trijezdci -
Changed line 580 from:
  ~ Ident ':' ARRAY ~ discriminantFieldIdent OF typeIdent END
to:
  '~' Ident ':' ARRAY '~' discriminantFieldIdent OF typeIdent END
2015-09-24 10:38 by trijezdci -
Changed line 571 from:
  '~' RECORD variableDeclaration ( ';" variableDeclaration )* indeterminateField END
to:
  '~' RECORD ( variableDeclaration ';' )+ indeterminateField END
Changed line 580 from:
  Ident ':' ARRAY discriminantFieldIdent OF typeIdent END
to:
  ~ Ident ':' ARRAY ~ discriminantFieldIdent OF typeIdent END
2015-09-24 10:10 by trijezdci -
Changed lines 311-313 from:
  RECORD
   ( fieldList ( ';' fieldList )* indeterminateField? |
      '(' recTypeToExtend ')'
fieldList ( ';' fieldList )* )
to:
  RECORD ( '(' recTypeToExtend ')' )? fieldList ( ';' fieldList )* )
2015-09-24 10:08 by trijezdci -
Changed lines 333-335 from:
[[#indeterminateField]]
!!!!!#17.3 Indeterminate Field \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#indeterminateField|syntax diagram]]%%-]
to:
[[#pointerType]]
!!!!!#18 Pointer Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#pointerType|syntax diagram]]%%-]
Changed lines 337-338 from:
indeterminateField :=
  '~' Ident ':' ARRAY discriminantFieldIdent OF typeIdent
to:
pointerType :=
  POINTER TO CONST? typeIdent
Changed lines 342-344 from:
[[#discriminantFieldIdent]]
!!!!!#17.4 Discriminant Field Ident \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#discriminantFieldIdent|syntax diagram]]%%-]
to:
[[#coroutineType]]
!!!!!#19 Coroutine Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#coroutineType|syntax diagram]]%%-]
Changed lines 346-348 from:
discriminantFieldIdent := Ident ;
to:
coroutineType :=
  COROUTINE '(' assocProcType ')'
 
;
Changed lines 351-353 from:
[[#pointerType]]
!!!!!#18 Pointer Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#pointerType|syntax diagram]]%%-]
to:
[[#assocProcType]]
!!!!!#19.1 Associated Procedure Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#assocProcType|syntax diagram]]%%-]
Changed lines 355-357 from:
pointerType :=
  POINTER TO CONST? typeIdent
 
;
to:
assocProcType : typeIdent ;
Changed lines 358-360 from:
[[#coroutineType]]
!!!!!#19 Coroutine Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#coroutineType|syntax diagram]]%%-]
to:
[[#procedureType]]
!!!!!#20 Procedure Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureType|syntax diagram]]%%-]
Changed lines 362-363 from:
coroutineType :=
  COROUTINE '(' assocProcType ')'
to:
procedureType :=
  PROCEDURE ( formalType ( ',' formalType )* )? ( ':' returnedType )?
Changed lines 367-369 from:
[[#assocProcType]]
!!!!!#19.1 Associated Procedure Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#assocProcType|syntax diagram]]%%-]
to:
[[#formalType]]
!!!!!#20.1 Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#formalType|syntax diagram]]%%-]
Changed lines 371-373 from:
assocProcType : typeIdent ;
to:
formalType :=
  simpleFormalType | attributedFormalType | variadicFormalType
 
;
Changed lines 376-378 from:
[[#procedureType]]
!!!!!#20 Procedure Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureType|syntax diagram]]%%-]
to:
[[#simpleFormalType]]
!!!!!#21 Simple Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleFormalType|syntax diagram]]%%-]
Changed lines 380-381 from:
procedureType :=
  PROCEDURE ( formalType ( ',' formalType )* )? ( ':' returnedType )?
to:
simpleFormalType :=
  ( ARRAY OF )? typeIdent | castingFormalType
Changed lines 385-387 from:
[[#formalType]]
!!!!!#20.1 Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#formalType|syntax diagram]]%%-]
to:
[[#castingFormalType]]
!!!!!#21.1 Casting Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#castingFormalType|syntax diagram]]%%-]
Changed lines 389-390 from:
formalType :=
  simpleFormalType | attributedFormalType | variadicFormalType
to:
castingFormalType :=
  CAST ( ARRAY OF OCTET | addressTypeIdent )
Changed lines 394-396 from:
[[#simpleFormalType]]
!!!!!#21 Simple Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleFormalType|syntax diagram]]%%-]
to:
[[#addressTypeIdent]]
!!!!!#21.2 Address Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#addressTypeIdent|syntax diagram]]%%-]
Changed lines 398-399 from:
simpleFormalType :=
  ( ARRAY OF )? typeIdent | castingFormalType
to:
addressTypeIdent :=
  ( UNSAFE '.' )? ADDRESS
Changed lines 403-405 from:
[[#castingFormalType]]
!!!!!#21.1 Casting Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#castingFormalType|syntax diagram]]%%-]
to:
[[#attributedFormalType]]
!!!!!#22 Attributed Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#attributedFormalType|syntax diagram]]%%-]
Changed lines 407-408 from:
castingFormalType :=
  CAST ( ARRAY OF OCTET | addressTypeIdent )
to:
attributedFormalType :=
  ( CONST | NEW | VAR ) ( simpleFormalType | simpleVariadicFormalType )
Changed lines 412-414 from:
[[#addressTypeIdent]]
!!!!!#21.2 Address Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#addressTypeIdent|syntax diagram]]%%-]
to:
[[#simpleVariadicFormalType]]
!!!!!#23 Simple Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleVariadicFormalType|syntax diagram]]%%-]
Changed lines 416-417 from:
addressTypeIdent :=
  ( UNSAFE '.' )? ADDRESS
to:
simpleVariadicFormalType :=
  ARGLIST reqNumOfArgs? OF simpleFormalType terminator?
Changed lines 421-423 from:
[[#attributedFormalType]]
!!!!!#22 Attributed Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#attributedFormalType|syntax diagram]]%%-]
to:
[[#reqNumOfArgs]]
!!!!!#23.1 Required Number Of Arguments \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#reqNumOfArgs|syntax diagram]]%%-]
Changed lines 425-426 from:
attributedFormalType :=
  ( CONST | NEW | VAR ) ( simpleFormalType | simpleVariadicFormalType )
to:
reqNumOfArgs :=
  greaterThan? constExpression
Changed lines 430-432 from:
[[#simpleVariadicFormalType]]
!!!!!#23 Simple Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleVariadicFormalType|syntax diagram]]%%-]
to:
[[#terminator]]
!!!!!#23.2 Argument List Terminator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#terminator|syntax diagram]]%%-]
Changed lines 434-435 from:
simpleVariadicFormalType :=
  ARGLIST reqNumOfArgs? OF simpleFormalType terminator?
to:
terminator :=
  '|' constQualident
Changed lines 439-441 from:
[[#reqNumOfArgs]]
!!!!!#23.1 Required Number Of Arguments \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#reqNumOfArgs|syntax diagram]]%%-]
to:
[[#constQualident]]
!!!!!#23.3 Constant Qualified Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constQualident|syntax diagram]]%%-]
Changed lines 443-445 from:
reqNumOfArgs :=
  greaterThan? constExpression
 
;
to:
constQualident := qualident ;
Changed lines 446-448 from:
[[#terminator]]
!!!!!#23.2 Argument List Terminator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#terminator|syntax diagram]]%%-]
to:
[[#variadicFormalType]]
!!!!!#24 Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#variadicFormalType|syntax diagram]]%%-]
Changed lines 450-451 from:
terminator :=
  '|' constQualident
to:
variadicFormalType :=
  ARGLIST reqNumOfArgs? OF
    ( '{' nonVariadicFormalType ( ';' nonVariadicFormalType )* '}' |
      simpleFormalType ) terminator?
Changed lines 457-459 from:
[[#constQualident]]
!!!!!#23.3 Constant Qualified Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constQualident|syntax diagram]]%%-]
to:
[[#nonVariadicFormalType]]
!!!!!#25 Non-Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#nonVariadicFormalType|syntax diagram]]%%-]
Changed lines 461-463 from:
constQualident := qualident ;
to:
nonVariadicFormalType :=
  ( CONST | NEW | VAR )? simpleFormalType
 
;
Changed lines 466-468 from:
[[#variadicFormalType]]
!!!!!#24 Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#variadicFormalType|syntax diagram]]%%-]
to:
[[#procedureHeader]]
!!!!!#26 Procedure Header \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureHeader|syntax diagram]]%%-]
Changed lines 470-473 from:
variadicFormalType :=
  ARGLIST reqNumOfArgs? OF
    ( '{' nonVariadicFormalType ( ';' nonVariadicFormalType )* '}' |
      simpleFormalType ) terminator?
to:
procedureHeader :=
  PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' | restrictedExport )?
  procedureSignature
Changed lines 476-478 from:
[[#nonVariadicFormalType]]
!!!!!#25 Non-Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#nonVariadicFormalType|syntax diagram]]%%-]
to:
[[#procedureSignature]]
!!!!!#27 Procedure Signature \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureSignature|syntax diagram]]%%-]
Changed lines 480-481 from:
nonVariadicFormalType :=
  ( CONST | NEW | VAR )? simpleFormalType
to:
procedureSignature :=
  Ident ( '(' formalParams ( ';' formalParams )* ')' )? ( ':' returnedType )?
Changed lines 485-487 from:
[[#procedureHeader]]
!!!!!#26 Procedure Header \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureHeader|syntax diagram]]%%-]
to:
[[#formalParams]]
!!!!!#28 Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#formalParams|syntax diagram]]%%-]
Changed lines 489-491 from:
procedureHeader :=
  PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' | restrictedExport )?
  procedureSignature
to:
formalParams :=
  identList ':' ( simpleFormalType | variadicFormalParams ) |
  attributedFormalParams
Changed lines 495-497 from:
[[#procedureSignature]]
!!!!!#27 Procedure Signature \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureSignature|syntax diagram]]%%-]
to:
[[#attributedFormalParams]]
!!!!!#29 Attributed Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#attributedFormalParams|syntax diagram]]%%-]
Changed lines 499-500 from:
procedureSignature :=
  Ident ( '(' formalParams ( ';' formalParams )* ')' )? ( ':' returnedType )?
to:
attributedFormalParams :=
  ( CONST | NEW | VAR ) identList ':'
  ( simpleFormalType | simpleVariadicFormalType )
Changed lines 505-507 from:
[[#formalParams]]
!!!!!#28 Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#formalParams|syntax diagram]]%%-]
to:
[[#variadicFormalParams]]
!!!!!#30 Variadic Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#variadicFormalParams|syntax diagram]]%%-]
Changed lines 509-511 from:
formalParams :=
  identList ':' ( simpleFormalType | variadicFormalParams ) |
  attributedFormalParams
to:
variadicFormalParams :=
  ARGLIST reqNumOfArgs? OF
 
   ( ( '{' nonVariadicFormalParams ( ';' nonVariadicFormalParams )* '}') |
      simpleFormalType ) terminator?
Changed lines 516-518 from:
[[#attributedFormalParams]]
!!!!!#29 Attributed Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#attributedFormalParams|syntax diagram]]%%-]
to:
[[#nonVariadicFormalParams]]
!!!!!#31 Non-Variadic Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#nonVariadicFormalParams|syntax diagram]]%%-]
Changed lines 520-522 from:
attributedFormalParams :=
  ( CONST | NEW | VAR ) identList ':'
  ( simpleFormalType | simpleVariadicFormalType )
to:
nonVariadicFormalParams :=
  ( CONST | NEW | VAR )? identList ':' simpleFormalType
Changed lines 525-527 from:
[[#variadicFormalParams]]
!!!!!#30 Variadic Formal Parameters \
%silver% &nbsp;
[-[[SyntaxDiagrams.NonTerminals#variadicFormalParams|syntax diagram]]%%-]
to:
[[#ImplAndPrgmModuleSyntax]]
!!!!Implementation And Program Module Syntax

[[#implOrPrgmModule]]
!!!!!#32 Implementation Or Program Module \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#implOrPrgmModule
|syntax diagram]]%%-]
Changed lines 532-535 from:
variadicFormalParams :=
  ARGLIST reqNumOfArgs? OF
 
  ( ( '{' nonVariadicFormalParams ( ';' nonVariadicFormalParams )* '}') |
      simpleFormalType ) terminator?
to:
implOrPrgmModule :=
  IMPLEMENTATION? MODULE moduleIdent ';'
  ( importList ';' )* block moduleIdent '.'
Changed lines 538-540 from:
[[#nonVariadicFormalParams]]
!!!!!#31 Non-Variadic Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#nonVariadicFormalParams|syntax diagram]]%%-]
to:
[[#block]]
!!!!!#33 Block \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#block|syntax diagram]]%%-]
Changed lines 542-543 from:
nonVariadicFormalParams :=
  ( CONST | NEW | VAR )? identList ':' simpleFormalType
to:
block :=
  declaration* ( BEGIN statementSequence )? END
Changed lines 547-552 from:
[[#ImplAndPrgmModuleSyntax]]
!!!!Implementation And Program Module Syntax

[[#implOrPrgmModule]]
!!!!!#32 Implementation Or Program Module \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#implOrPrgmModule
|syntax diagram]]%%-]
to:
[[#declaration]]
!!!!!#34 Declaration \
%silver% &nbsp;
[-[[SyntaxDiagrams.NonTerminals#declaration|syntax diagram]]%%-]
Changed lines 551-553 from:
implOrPrgmModule :=
  IMPLEMENTATION? MODULE moduleIdent ';'
  ( importList ';' )* block moduleIdent '.'
to:
declaration :=
  CONST ( Ident '=' constExpression ';' )+ |
  TYPE ( Ident
'=' typeDeclTail ';' )+ |
  VAR ( variableDeclaration ';' )+ |
  procedureHeader ';' block Ident ';
'
Changed lines 559-561 from:
[[#block]]
!!!!!#33 Block \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#block|syntax diagram]]%%-]
to:
[[#typeDeclTail]]
!!!!!#34.1 Type Declaration Tail \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeDeclTail|syntax diagram]]%%-]
Changed lines 563-564 from:
block :=
  declaration* ( BEGIN statementSequence )? END
to:
typeDeclTail :=
  type | indeterminateRecType
Changed lines 568-570 from:
[[#declaration]]
!!!!!#34 Declaration \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#declaration|syntax diagram]]%%-]
to:
[[#indeterminateRecType]]
!!!!!#35 Indeterminate Record Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#indeterminateRecType|syntax diagram]]%%-]
Changed lines 572-576 from:
declaration :=
  CONST ( Ident '=' constExpression ';' )+ |
  TYPE ( Ident '=' typeDeclTail ';' )+ |
  VAR ( variableDeclaration ';' )+ |
  procedureHeader ';' block Ident ';'
to:
indeterminateRecType :=
  '~' RECORD variableDeclaration ( ';" variableDeclaration )* indeterminateField END
Changed lines 577-579 from:
[[#typeDeclTail]]
!!!!!#34.1 Type Declaration Tail \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeDeclTail|syntax diagram]]%%-]
to:
[[#indeterminateField]]
!!!!!#35.1 Indeterminate Field \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#indeterminateField|syntax diagram]]%%-]
Changed lines 581-582 from:
typeDeclTail :=
  type | indeterminateRecType
to:
indeterminateRecType :=
  Ident ':' ARRAY discriminantFieldIdent OF typeIdent END
Changed lines 586-588 from:
[[#indeterminateRecType]]
!!!!!#35 Indeterminate Record Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#indeterminateRecType|syntax diagram]]%%-]
to:
[[#discriminantFieldIdent]]
!!!!!#35.2 Discriminant Field Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#discriminantFieldIdent|syntax diagram]]%%-]
Changed lines 590-592 from:
indeterminateRecType :=
  '~' RECORD variableDeclaration ( ';" variableDeclaration )* indeterminateField END
 
;
to:
discriminantFieldIdent := Ident ;
Changed lines 593-595 from:
[[#indeterminateField]]
!!!!!#35.1 Indeterminate Field \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#indeterminateField|syntax diagram]]%%-]
to:
[[#statementSequence]]
!!!!!#36 Statement Sequence \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#statementSequence|syntax diagram]]%%-]
Changed lines 597-598 from:
indeterminateRecType :=
  Ident ':' ARRAY discriminantFieldIdent OF typeIdent END
to:
statementSequence :=
  statement ( ';' statement )*
Deleted lines 599-605:
@]

[[#discriminantFieldIdent]]
!!!!!#35.2 Discriminant Field Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#discriminantFieldIdent|syntax diagram]]%%-]
[@
discriminantFieldIdent := Ident ;
2015-09-24 10:06 by trijezdci -
Changed lines 575-577 from:
[[#statementSequence]]
!!!!!#35 Statement Sequence \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#statementSequence|syntax diagram]]%%-]
to:
[[#typeDeclTail]]
!!!!!#34.1 Type Declaration Tail \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeDeclTail|syntax diagram]]%%-]
Changed lines 579-580 from:
statementSequence :=
  statement ( ';' statement )*
to:
typeDeclTail :=
  type | indeterminateRecType
Changed lines 584-586 from:
[[#statement]]
!!!!!#36 Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#statement|syntax diagram]]%%-]
to:
[[#indeterminateRecType]]
!!!!!#35 Indeterminate Record Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#indeterminateRecType|syntax diagram]]%%-]
Changed lines 588-591 from:
statement :=
  memMgtOperation | updateOrProcCall | ifStatement | caseStatement |
  loopStatement | whileStatement | repeatStatement | forStatement |
  ( RETURN | YIELD ) expression? | EXIT
to:
indeterminateRecType :=
  '~' RECORD variableDeclaration ( ';" variableDeclaration )* indeterminateField END
Changed lines 593-595 from:
[[#memMgtOperation]]
!!!!!#37 Memory Management Operation \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#memMgtOperation|syntax diagram]]%%-]
to:
[[#indeterminateField]]
!!!!!#35.1 Indeterminate Field \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#indeterminateField|syntax diagram]]%%-]
Changed lines 597-600 from:
memMgtOperation :=
  NEW designator ( OF initSize | := initValue )? |
  RETAIN designator |
  RELEASE designator
to:
indeterminateRecType :=
  Ident ':' ARRAY discriminantFieldIdent OF typeIdent END
Changed lines 602-604 from:
[[#initSize]][[#initValue]]
!!!!!#37.1 Initialisation Size, Initialisation Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#initSize|syntax diagram]]%%-]
to:
[[#discriminantFieldIdent]]
!!!!!#35.2 Discriminant Field Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#discriminantFieldIdent|syntax diagram]]%%-]
Changed lines 606-608 from:
initSize := expression ;

initValue := expression
;
to:
discriminantFieldIdent := Ident ;
Changed lines 609-611 from:
[[#updateOrProcCall]]
!!!!!#38 Update Or Procedure Call \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#updateOrProcCall|syntax diagram]]%%-]
to:
[[#statement]]
!!!!!#36 Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#statement|syntax diagram]]%%-]
Changed lines 613-615 from:
updateOrProcCall :=
  designator ( ':=' expression | incOrDecSuffix | actualParameters )? |
  COPY designator ':=' expression
to:
statement :=
  memMgtOperation | updateOrProcCall | ifStatement | caseStatement |
  loopStatement | whileStatement | repeatStatement | forStatement |
  ( RETURN | YIELD ) expression? | EXIT
Changed lines 620-622 from:
[[#incOrDecSuffix]]
!!!!!#38.1 Increment Or Decrement Suffix \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#incOrDecSuffix|syntax diagram]]%%-]
to:
[[#memMgtOperation]]
!!!!!#37 Memory Management Operation \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#memMgtOperation|syntax diagram]]%%-]
Changed lines 624-625 from:
incOrDecSuffix :=
  '++' | '--'
to:
memMgtOperation :=
  NEW designator ( OF initSize | := initValue )? |
  RETAIN designator |
  RELEASE designator
Changed lines 631-633 from:
[[#ifStatement]]
!!!!!#39 IF Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ifStatement|syntax diagram]]%%-]
to:
[[#initSize]][[#initValue]]
!!!!!#37.1 Initialisation Size, Initialisation Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#initSize|syntax diagram]]%%-]
Changed lines 635-640 from:
ifStatement :=
  IF boolExpression THEN statementSequence
  ( ELSIF boolExpression THEN statementSequence )?
  ( ELSE statementSequence )?
  END
 
;
to:
initSize := expression ;

initValue := expression
;
Changed lines 640-642 from:
[[#boolExpression]]
!!!!!#39.1 Boolean Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#boolExpression|syntax diagram]]%%-]
to:
[[#updateOrProcCall]]
!!!!!#38 Update Or Procedure Call \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#updateOrProcCall|syntax diagram]]%%-]
Changed lines 644-647 from:
boolExpression := expression ;
to:
updateOrProcCall :=
  designator ( ':=' expression | incOrDecSuffix | actualParameters )? |
  COPY designator ':=' expression
 
;
Changed lines 650-652 from:
[[#caseStatement]]
!!!!!#40 CASE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseStatement|syntax diagram]]%%-]
to:
[[#incOrDecSuffix]]
!!!!!#38.1 Increment Or Decrement Suffix \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#incOrDecSuffix|syntax diagram]]%%-]
Changed lines 654-655 from:
caseStatement :=
  CASE expression OF ( '|' case  )+ ( ELSE statementSequence )? END
to:
incOrDecSuffix :=
  '++' | '--'
Changed lines 659-661 from:
[[#case]]
!!!!!#40.1 Case \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#case|syntax diagram]]%%-]
to:
[[#ifStatement]]
!!!!!#39 IF Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ifStatement|syntax diagram]]%%-]
Changed lines 663-664 from:
case :=
  caseLabels ( ',' caseLabels )* ':' statementSequence
to:
ifStatement :=
  IF boolExpression THEN statementSequence
  ( ELSIF boolExpression THEN statementSequence )?
  ( ELSE statementSequence )?
  END
Changed lines 671-673 from:
[[#caseLabels]]
!!!!!#40.2 Case Labels \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseLabels|syntax diagram]]%%-]
to:
[[#boolExpression]]
!!!!!#39.1 Boolean Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#boolExpression|syntax diagram]]%%-]
Changed lines 675-677 from:
caseLabels :=
  constExpression ( '..' constExpression )?
 
;
to:
boolExpression := expression ;
Changed lines 678-680 from:
[[#loopStatement]]
!!!!!#41 LOOP Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#loopStatement|syntax diagram]]%%-]
to:
[[#caseStatement]]
!!!!!#40 CASE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseStatement|syntax diagram]]%%-]
Changed lines 682-683 from:
loopStatement :=
  LOOP statementSequence END
to:
caseStatement :=
  CASE expression OF ( '|' case  )+ ( ELSE statementSequence )? END
Changed lines 687-689 from:
[[#whileStatement]]
!!!!!#42 WHILE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#whileStatement|syntax diagram]]%%-]
to:
[[#case]]
!!!!!#40.1 Case \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#case|syntax diagram]]%%-]
Changed lines 691-692 from:
whileStatement :=
  WHILE boolExpression DO statementSequence END
to:
case :=
  caseLabels ( ',' caseLabels )* ':' statementSequence
Changed lines 696-698 from:
[[#repeatStatement]]
!!!!!#43 REPEAT Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#repeatStatement|syntax diagram]]%%-]
to:
[[#caseLabels]]
!!!!!#40.2 Case Labels \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseLabels|syntax diagram]]%%-]
Changed lines 700-701 from:
repeatStatement :=
  REPEAT statementSequence UNTIL boolExpression
to:
caseLabels :=
  constExpression ( '..' constExpression )?
Changed lines 705-707 from:
[[#forStatement]]
!!!!!#44 FOR Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forStatement|syntax diagram]]%%-]
to:
[[#loopStatement]]
!!!!!#41 LOOP Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#loopStatement|syntax diagram]]%%-]
Changed lines 709-710 from:
forStatement :=
  FOR forLoopVariants IN iterableEntity DO statementSequence END
to:
loopStatement :=
  LOOP statementSequence END
Changed lines 714-716 from:
[[#forLoopVariants]]
!!!!!#44.1 FOR Loop Variants \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forLoopVariants|syntax diagram]]%%-]
to:
[[#whileStatement]]
!!!!!#42 WHILE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#whileStatement|syntax diagram]]%%-]
Changed lines 718-720 from:
forLoopVariants :=
  accessor ascOrDesc? ( ',' value )? |
  VALUE value ascOrDesc?
to:
whileStatement :=
  WHILE boolExpression DO statementSequence END
Changed lines 723-725 from:
[[#accessor]][[#value]]
!!!!!#44.2 Accessor, Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#accessor|syntax diagram]]%%-]
to:
[[#repeatStatement]]
!!!!!#43 REPEAT Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#repeatStatement|syntax diagram]]%%-]
Changed lines 727-729 from:
accessor := Ident ;

value := Ident
;
to:
repeatStatement :=
  REPEAT statementSequence UNTIL boolExpression
 
;
Changed lines 732-734 from:
[[#iterableEntity]]
!!!!!#44.3 Iterable Entity \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#iterableEntity|syntax diagram]]%%-]
to:
[[#forStatement]]
!!!!!#44 FOR Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forStatement|syntax diagram]]%%-]
Changed lines 736-737 from:
iterableEntity :=
  designator | range OF ordinalType
to:
forStatement :=
  FOR forLoopVariants IN iterableEntity DO statementSequence END
Changed lines 741-743 from:
[[#ascOrDesc]]
!!!!!#44.4 Ascender Or Descender \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ascOrDesc|syntax diagram]]%%-]
to:
[[#forLoopVariants]]
!!!!!#44.1 FOR Loop Variants \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forLoopVariants|syntax diagram]]%%-]
Changed lines 745-748 from:
ascOrDesc := incOrDecSuffix ;
to:
forLoopVariants :=
  accessor ascOrDesc? ( ',' value )? |
  VALUE value ascOrDesc?
 
;
Changed lines 751-753 from:
[[#ordinalType]]
!!!!!#44.5 Ordinal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ordinalType|syntax diagram]]%%-]
to:
[[#accessor]][[#value]]
!!!!!#44.2 Accessor, Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#accessor|syntax diagram]]%%-]
Changed lines 755-757 from:
ordinalType := typeIdent ;
to:
accessor := Ident ;

value := Ident
;
Changed lines 760-762 from:
[[#designator]]
!!!!!#45 Designator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#designator|syntax diagram]]%%-]
to:
[[#iterableEntity]]
!!!!!#44.3 Iterable Entity \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#iterableEntity|syntax diagram]]%%-]
Changed lines 764-765 from:
designator :=
  qualident designatorTail?
to:
iterableEntity :=
  designator | range OF ordinalType
Changed lines 769-771 from:
[[#designatorTail]]
!!!!!#45.1 Designator Tail \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#designatorTail|syntax diagram]]%%-]
to:
[[#ascOrDesc]]
!!!!!#44.4 Ascender Or Descender \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ascOrDesc|syntax diagram]]%%-]
Changed lines 773-775 from:
designatorTail :=
  ( ( '[' exprListOrSlice ']' | '^' ) ( '.' Ident )* )+
 
;
to:
ascOrDesc := incOrDecSuffix ;
Changed lines 776-778 from:
[[#exprListOrSlice]]
!!!!!#45.2 Expression List Or Slice \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#exprListOrSlice|syntax diagram]]%%-]
to:
[[#ordinalType]]
!!!!!#44.5 Ordinal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ordinalType|syntax diagram]]%%-]
Changed lines 780-782 from:
exprListOrSlice :=
  expression ( ( ',' expression )* | '..' expression? )
 
;
to:
ordinalType := typeIdent ;
Changed lines 783-785 from:
[[#expression]]
!!!!!#46 Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expression|syntax diagram]]%%-]
to:
[[#designator]]
!!!!!#45 Designator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#designator|syntax diagram]]%%-]
Changed lines 787-788 from:
expression :=
  simpleExpression ( operL1 simpleExpression )?
to:
designator :=
  qualident designatorTail?
Changed lines 792-794 from:
[[#operL1]]
!!!!!#46.1 Level-1 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL1|syntax diagram]]%%-]
to:
[[#designatorTail]]
!!!!!#45.1 Designator Tail \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#designatorTail|syntax diagram]]%%-]
Changed lines 796-797 from:
operL1 :=
  '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp
to:
designatorTail :=
  ( ( '[' exprListOrSlice ']' | '^' ) ( '.' Ident )* )+
Changed lines 801-803 from:
[[#identityOp]]
!!!!!#46.2 Identity Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identityOp|syntax diagram]]%%-]
to:
[[#exprListOrSlice]]
!!!!!#45.2 Expression List Or Slice \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#exprListOrSlice|syntax diagram]]%%-]
Changed lines 805-807 from:
identityOp := '==' ;
to:
exprListOrSlice :=
  expression ( ( ',' expression )* | '..' expression? )
 
;
Changed lines 810-812 from:
[[#simpleExpression]]
!!!!!#47 Simple Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleExpression|syntax diagram]]%%-]
to:
[[#expression]]
!!!!!#46 Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expression|syntax diagram]]%%-]
Changed lines 814-815 from:
simpleExpression :=
  ( '+' | '-' )? term ( operL2 term )*
to:
expression :=
  simpleExpression ( operL1 simpleExpression )?
Changed lines 819-821 from:
[[#operL2]]
!!!!!#47.1 Level-2 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL2|syntax diagram]]%%-]
to:
[[#operL1]]
!!!!!#46.1 Level-1 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL1|syntax diagram]]%%-]
Changed lines 823-824 from:
operL2 :=
  '+' | '-' | OR | concatOp
to:
operL1 :=
  '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp
Changed lines 828-830 from:
[[#concatOp]]
!!!!!#47.2 Concatenation Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#concatOp|syntax diagram]]%%-]
to:
[[#identityOp]]
!!!!!#46.2 Identity Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identityOp|syntax diagram]]%%-]
Changed line 832 from:
concatOp := '&' ;
to:
identityOp := '==' ;
Changed lines 835-837 from:
[[#term]]
!!!!!#48 Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#term|syntax diagram]]%%-]
to:
[[#simpleExpression]]
!!!!!#47 Simple Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleExpression|syntax diagram]]%%-]
Changed lines 839-840 from:
term :=
  simpleTerm ( operL3 simpleTerm )*
to:
simpleExpression :=
  ( '+' | '-' )? term ( operL2 term )*
Changed lines 844-846 from:
[[#operL3]]
!!!!!#48.1 Level-3 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL3|syntax diagram]]%%-]
to:
[[#operL2]]
!!!!!#47.1 Level-2 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL2|syntax diagram]]%%-]
Changed lines 848-849 from:
operL3 :=
  '*' | '/' | DIV | MOD | AND | setDiffOp
to:
operL2 :=
  '+' | '-' | OR | concatOp
Changed lines 853-855 from:
[[#setDiffOp]]
!!!!!#48.2 Set Difference Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#setDiffOp|syntax diagram]]%%-]
to:
[[#concatOp]]
!!!!!#47.2 Concatenation Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#concatOp|syntax diagram]]%%-]
Changed line 857 from:
setDiffOp := '\' ;
to:
concatOp := '&' ;
Changed lines 860-862 from:
[[#simpleTerm]]
!!!!!#49 Simple Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleTerm|syntax diagram]]%%-]
to:
[[#term]]
!!!!!#48 Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#term|syntax diagram]]%%-]
Changed lines 864-865 from:
simpleTerm :=
  NOT? factorOrTypeConv
to:
term :=
  simpleTerm ( operL3 simpleTerm )*
Changed lines 869-871 from:
[[#factorOrTypeConv]]
!!!!!#50 Factor Or Type Conversion \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#factorOrTypeConv|syntax diagram]]%%-]
to:
[[#operL3]]
!!!!!#48.1 Level-3 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL3|syntax diagram]]%%-]
Changed lines 873-874 from:
factorOrTypeConv :=
  factor ( '::' typeIdent )?
to:
operL3 :=
  '*' | '/' | DIV | MOD | AND | setDiffOp
Changed lines 878-880 from:
[[#factor]]
!!!!!#51 Factor \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#factor|syntax diagram]]%%-]
to:
[[#setDiffOp]]
!!!!!#48.2 Set Difference Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#setDiffOp|syntax diagram]]%%-]
Changed lines 882-885 from:
factor :=
  NumberLiteral | StringLiteral | structuredValue |
  '(' expression ')' | designator actualParameters?
 
;
to:
setDiffOp := '\' ;
Changed lines 885-887 from:
[[#actualParameters]]
!!!!!#52 Actual Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#actualParameters|syntax diagram]]%%-]
to:
[[#simpleTerm]]
!!!!!#49 Simple Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleTerm|syntax diagram]]%%-]
Changed lines 889-890 from:
actualParameters :=
  '(' expressionList ')'
to:
simpleTerm :=
  NOT? factorOrTypeConv
Changed lines 894-896 from:
[[#expressionList]]
!!!!!#53 Expression List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expressionList|syntax diagram]]%%-]
to:
[[#factorOrTypeConv]]
!!!!!#50 Factor Or Type Conversion \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#factorOrTypeConv|syntax diagram]]%%-]
Changed lines 898-899 from:
expressionList :=
  expression ( ',' expression )*
to:
factorOrTypeConv :=
  factor ( '::' typeIdent )?
Changed lines 903-905 from:
[[#structuredValue]]
!!!!!#54 Structured Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#structuredValue|syntax diagram]]%%-]
to:
[[#factor]]
!!!!!#51 Factor \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#factor|syntax diagram]]%%-]
Changed lines 907-908 from:
structuredValue :=
  '{' valueComponent ( ',' valueComponent )* '}'
to:
factor :=
  NumberLiteral | StringLiteral | structuredValue |
 
'(' expression ')' | designator actualParameters?
Changed lines 913-915 from:
[[#valueComponent]]
!!!!!#54.1 Value Component \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#valueComponent|syntax diagram]]%%-]
to:
[[#actualParameters]]
!!!!!#52 Actual Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#actualParameters|syntax diagram]]%%-]
Changed lines 917-918 from:
valueComponent :=
  constExpression (( BY | '..' )? constExpression )? | runtimeExpression
to:
actualParameters :=
  '(' expressionList ')'
Changed lines 922-924 from:
[[#runtimeExpression]]
!!!!!#54.2 Runtime Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#runtimeExpression|syntax diagram]]%%-]
to:
[[#expressionList]]
!!!!!#53 Expression List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expressionList|syntax diagram]]%%-]
Changed lines 926-928 from:
runtimeExpression := expression ;
to:
expressionList :=
  expression ( ',' expression )*
 
;
Changed lines 931-936 from:
[[#BlueprintSyntax]]
!!!!Blueprint Syntax

[[#blueprint]]
!!!!!#55 Blueprint \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#blueprint
|syntax diagram]]%%-]
to:
[[#structuredValue]]
!!!!!#54 Structured Value \
%silver% &nbsp;
[-[[SyntaxDiagrams.NonTerminals#structuredValue|syntax diagram]]%%-]
Changed lines 935-939 from:
blueprint :=
  BLUEPRINT blueprintIdent ( '[' blueprintToRefine ']' )?
  ( FOR blueprintForTypeToExtend )? ';' ( REFERENTIAL identList ';' )?
  MODULE TYPE '=' ( typeClassification ( ';' literalCompatibility)? | NONE ) ';'
  ( constraint ';' )* ( requirement ';' )* END blueprintIdent '.
'
to:
structuredValue :=
  '{' valueComponent ( ',' valueComponent )* '}'
Changed lines 940-942 from:
[[#blueprintIdent]]
!!!!!#55.1 Blueprint Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#blueprintIdent|syntax diagram]]%%-]
to:
[[#valueComponent]]
!!!!!#54.1 Value Component \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#valueComponent|syntax diagram]]%%-]
Changed lines 944-946 from:
blueprintIdent := Ident ;
to:
valueComponent :=
  constExpression (( BY | '..' )? constExpression )? | runtimeExpression
 
;
Changed lines 949-951 from:
[[#blueprintToRefine]][[#blueprintForTypeToExtend]]
!!!!!#55.2 Blueprint To Refine, Blueprint For Type To Extend \
%silver% &nbsp;
[-[[SyntaxDiagrams.NonTerminals#blueprintToRefine|syntax diagram]]%%-]
to:
[[#runtimeExpression]]
!!!!!#54.2 Runtime Expression \
%silver% &nbsp;
[-[[SyntaxDiagrams.NonTerminals#runtimeExpression|syntax diagram]]%%-]
Changed lines 953-955 from:
blueprintToRefine := blueprintIdent ;

blueprintForTypeToExtend := blueprintIdent
;
to:
runtimeExpression := expression ;
Changed lines 956-958 from:
[[#typeClassification]]
!!!!!#56 Type Classification \
%silver% &nbsp;
[-[[SyntaxDiagrams.NonTerminals#typeClassification|syntax diagram]]%%-]
to:
[[#BlueprintSyntax]]
!!!!Blueprint Syntax

[[#blueprint]]
!!!!!#55 Blueprint \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#blueprint
|syntax diagram]]%%-]
Changed lines 963-965 from:
typeClassification :=
  '{' determinedClassification ( ';' refinableClassification )? ( ';' '*' )? '}'
  | '*'
to:
blueprint :=
  BLUEPRINT blueprintIdent ( '[' blueprintToRefine ']' )?
  ( FOR blueprintForTypeToExtend )? ';' ( REFERENTIAL identList ';' )?
  MODULE TYPE '=' ( typeClassification ( ';' literalCompatibility)? | NONE ) ';'
  ( constraint ';' )* ( requirement ';' )* END blueprintIdent '.
'
Changed lines 971-973 from:
[[#determinedClassification]]
!!!!!#56.1 Determined Classification \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#determinedClassification|syntax diagram]]%%-]
to:
[[#blueprintIdent]]
!!!!!#55.1 Blueprint Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#blueprintIdent|syntax diagram]]%%-]
Changed lines 975-977 from:
determinedClassification :=
  classificationIdent ( ',' classificationIdent )*
 
;
to:
blueprintIdent := Ident ;
Changed lines 978-980 from:
[[#refinableClassification]]
!!!!!#56.2 Refinable Classification \
%silver% &nbsp;
[-[[SyntaxDiagrams.NonTerminals#refinableClassification|syntax diagram]]%%-]
to:
[[#blueprintToRefine]][[#blueprintForTypeToExtend]]
!!!!!#55.2 Blueprint To Refine, Blueprint For Type To Extend \
%silver% &nbsp;
[-[[SyntaxDiagrams.NonTerminals#blueprintToRefine|syntax diagram]]%%-]
Changed lines 982-984 from:
refinableClassification :=
  '~' classificationIdent ( ',' '~' classificationIdent )*
 
;
to:
blueprintToRefine := blueprintIdent ;

blueprintForTypeToExtend := blueprintIdent
;
Changed lines 987-989 from:
[[#classificationIdent]]
!!!!!#56.3 Classification Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#classificationIdent|syntax diagram]]%%-]
to:
[[#typeClassification]]
!!!!!#56 Type Classification \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeClassification|syntax diagram]]%%-]
Changed lines 991-994 from:
classificationIdent := Ident ;
to:
typeClassification :=
  '{' determinedClassification ( ';' refinableClassification )? ( ';' '*' )? '}'
  | '*'
 
;
Changed lines 997-999 from:
[[#literalCompatibility]]
!!!!!#57 Literal Compatibility \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#literalCompatibility|syntax diagram]]%%-]
to:
[[#determinedClassification]]
!!!!!#56.1 Determined Classification \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#determinedClassification|syntax diagram]]%%-]
Changed lines 1001-1002 from:
literalCompatibility :=
  TLITERAL '=' protoLiteral ( '|' protoLiteral )*
to:
determinedClassification :=
  classificationIdent ( ',' classificationIdent )*
Changed lines 1006-1008 from:
[[#protoLiteral]]
!!!!!#57.1 Proto-Literal \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#protoLiteral|syntax diagram]]%%-]
to:
[[#refinableClassification]]
!!!!!#56.2 Refinable Classification \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#refinableClassification|syntax diagram]]%%-]
Changed lines 1010-1011 from:
protoLiteral :=
  protoLiteralIdent | structuredProtoLiteral
to:
refinableClassification :=
  '~' classificationIdent ( ',' '~' classificationIdent )*
Changed lines 1015-1017 from:
[[#protoLiteralIdent]]
!!!!!#57.2 Proto-Literal Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#protoLiteralIdent|syntax diagram]]%%-]
to:
[[#classificationIdent]]
!!!!!#56.3 Classification Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#classificationIdent|syntax diagram]]%%-]
Changed line 1019 from:
protoLiteralIdent := Ident ;
to:
classificationIdent := Ident ;
Changed lines 1022-1024 from:
[[#structuredProtoLiteral]]
!!!!!#58 Structured Proto-Literal \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#structuredProtoLiteral|syntax diagram]]%%-]
to:
[[#literalCompatibility]]
!!!!!#57 Literal Compatibility \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#literalCompatibility|syntax diagram]]%%-]
Changed lines 1026-1031 from:
structuredProtoLiteral :=
  '{'
   ( ARGLIST reqValueCount? OF
        ( '{' builtinOrReferential ( ',' builtinOrReferential
)* '}' |
          builtinOrReferential ) ) |
    builtinOrReferential '}'
to:
literalCompatibility :=
  TLITERAL '=' protoLiteral ( '|' protoLiteral )*
Changed lines 1031-1033 from:
[[#reqValueCount]]
!!!!!#58.1 Required Value Count \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#reqValueCount|syntax diagram]]%%-]
to:
[[#protoLiteral]]
!!!!!#57.1 Proto-Literal \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#protoLiteral|syntax diagram]]%%-]
Changed lines 1035-1036 from:
reqValueCount :=
  greaterThan? wholeNumber
to:
protoLiteral :=
  protoLiteralIdent | structuredProtoLiteral
Changed lines 1040-1041 from:
!!!!!#58.2 Greater Than \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#greaterThan|syntax diagram]]%%-]
to:
[[#protoLiteralIdent]]
!!!!!#57.2 Proto-Literal Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#protoLiteralIdent|syntax diagram]]%%-]
Changed line 1044 from:
greaterThan := '>' ;
to:
protoLiteralIdent := Ident ;
Changed lines 1047-1049 from:
[[#wholeNumber]]
!!!!!#58.3 Whole Number \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#wholeNumber|syntax diagram]]%%-]
to:
[[#structuredProtoLiteral]]
!!!!!#58 Structured Proto-Literal \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#structuredProtoLiteral|syntax diagram]]%%-]
Changed lines 1051-1057 from:
wholeNumber : NumberLiteral ;
to:
structuredProtoLiteral :=
  '{'
    ( ARGLIST reqValueCount? OF
        ( '{' builtinOrReferential ( ',' builtinOrReferential )* '}' |
          builtinOrReferential ) ) |
    builtinOrReferential '}'
 
;
Changed lines 1060-1062 from:
[[#builtinOrReferential]]
!!!!!#58.4 Built-in Type Or Referential Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#builtinOrReferential|syntax diagram]]%%-]
to:
[[#reqValueCount]]
!!!!!#58.1 Required Value Count \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#reqValueCount|syntax diagram]]%%-]
Changed lines 1064-1066 from:
builtinOrReferential := Ident ;
to:
reqValueCount :=
  greaterThan? wholeNumber
 
;
Changed lines 1069-1071 from:
[[#constraint]]
!!!!!#59 Constraint \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constraint|syntax diagram]]%%-]
to:
!!!!!#58.2 Greater Than \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#greaterThan|syntax diagram]]%%-]
Changed lines 1072-1074 from:
constraint :=
  constraintTerm ( oneWayDependency | mutualDependencyOrExclusion )
 
;
to:
greaterThan := '>' ;
Changed lines 1075-1077 from:
[[#constraintTerm]]
!!!!!#59.1 Constraint Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constraintTerm|syntax diagram]]%%-]
to:
[[#wholeNumber]]
!!!!!#58.3 Whole Number \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#wholeNumber|syntax diagram]]%%-]
Changed lines 1079-1082 from:
constraintTerm :=
  '(' classificationOrFlagIdent ')' |
  '[' bindableEntityOrProperty ']'
 
;
to:
wholeNumber : NumberLiteral ;
Changed lines 1082-1084 from:
[[#bindableEntityOrProperty]]
!!!!!#59.2 Bindable Entity Or Property \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableEntityOrProperty|syntax diagram]]%%-]
to:
[[#builtinOrReferential]]
!!!!!#58.4 Built-in Type Or Referential Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#builtinOrReferential|syntax diagram]]%%-]
Changed lines 1086-1088 from:
bindableEntityOrProperty :=
  entityToBindTo | propertyToBindTo
 
;
to:
builtinOrReferential := Ident ;
Changed lines 1089-1091 from:
[[#oneWayDependency]]
!!!!!#59.3 One-Way Dependency \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#oneWayDependency|syntax diagram]]%%-]
to:
[[#constraint]]
!!!!!#59 Constraint \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constraint|syntax diagram]]%%-]
Changed lines 1093-1094 from:
oneWayDependency :=
  '->' termList ( '|' termList )*
to:
constraint :=
  constraintTerm ( oneWayDependency | mutualDependencyOrExclusion )
Changed lines 1098-1100 from:
[[#mutualDependencyOrExclusion]]
!!!!!#59.4 Mutual Dependency Or Exclusion \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#mutualDependencyOrExclusion|syntax diagram]]%%-]
to:
[[#constraintTerm]]
!!!!!#59.1 Constraint Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constraintTerm|syntax diagram]]%%-]
Changed lines 1102-1103 from:
mutualDependencyOrExclusion :=
  ( '<>' | '><' ) termList
to:
constraintTerm :=
  '(' classificationOrFlagIdent ')' |
  '[' bindableEntityOrProperty ']'
Changed lines 1108-1110 from:
[[#termList]]
!!!!!#59.5 Term List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#termList|syntax diagram]]%%-]
to:
[[#bindableEntityOrProperty]]
!!!!!#59.2 Bindable Entity Or Property \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableEntityOrProperty|syntax diagram]]%%-]
Changed lines 1112-1113 from:
termList :=
  constraintTerm ( ',' constraintTerm )*
to:
bindableEntityOrProperty :=
  entityToBindTo | propertyToBindTo
Changed lines 1117-1119 from:
[[#classificationOrFlagIdent]]
!!!!!#59.6 Classification Or Flag Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#classificationOrFlagIdent|syntax diagram]]%%-]
to:
[[#oneWayDependency]]
!!!!!#59.3 One-Way Dependency \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#oneWayDependency|syntax diagram]]%%-]
Changed lines 1121-1123 from:
classificationOrFlagIdent := Ident ;
to:
oneWayDependency :=
  '->' termList ( '|' termList )*
 
;
Changed lines 1126-1128 from:
[[#requirement]]
!!!!!#60 Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#requirement|syntax diagram]]%%-]
to:
[[#mutualDependencyOrExclusion]]
!!!!!#59.4 Mutual Dependency Or Exclusion \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#mutualDependencyOrExclusion|syntax diagram]]%%-]
Changed lines 1130-1131 from:
requirement :=
  condition '->' ( typeRequirement | constRequirement | procRequirement )
to:
mutualDependencyOrExclusion :=
  ( '<>' | '><' ) termList
Changed lines 1135-1137 from:
[[#condition]]
!!!!!#60.1 Condition \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#condition|syntax diagram]]%%-]
to:
[[#termList]]
!!!!!#59.5 Term List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#termList|syntax diagram]]%%-]
Changed lines 1139-1140 from:
condition :=
  NOT? boolConstIdent
to:
termList :=
  constraintTerm ( ',' constraintTerm )*
Changed lines 1144-1146 from:
[[#boolConstIdent]]
!!!!!#60.2 Boolean Constant Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#boolConstIdent|syntax diagram]]%%-]
to:
[[#classificationOrFlagIdent]]
!!!!!#59.6 Classification Or Flag Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#classificationOrFlagIdent|syntax diagram]]%%-]
Changed line 1148 from:
boolConstIdent := Ident ;
to:
classificationOrFlagIdent := Ident ;
Changed lines 1151-1153 from:
[[#typeRequirement]]
!!!!!#60.3 Type Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeRequirement|syntax diagram]]%%-]
to:
[[#requirement]]
!!!!!#60 Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#requirement|syntax diagram]]%%-]
Changed lines 1155-1156 from:
typeRequirement :=
  TYPE typeDefinition
to:
requirement :=
  condition '->' ( typeRequirement | constRequirement | procRequirement )
Changed lines 1160-1162 from:
[[#constRequirement]]
!!!!!#61 Constant Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constRequirement|syntax diagram]]%%-]
to:
[[#condition]]
!!!!!#60.1 Condition \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#condition|syntax diagram]]%%-]
Changed lines 1164-1167 from:
constRequirement :=
  CONST
    ( '[' propertyToBindTo ']' ( simpleConstRequirement | '=' NONE ) |
      restrictedExport? simpleConstRequirement )
to:
condition :=
  NOT? boolConstIdent
Changed lines 1169-1171 from:
[[#simpleConstRequirement]]
!!!!!#61.1 Simple Constant Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleConstRequirement|syntax diagram]]%%-]
to:
[[#boolConstIdent]]
!!!!!#60.2 Boolean Constant Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#boolConstIdent|syntax diagram]]%%-]
Changed lines 1173-1175 from:
simpleConstRequirement :=
  Ident ( '=' constExpression | ':' builtinTypeIdent )
 
;
to:
boolConstIdent := Ident ;
Changed lines 1176-1177 from:
!!!!!#61.2 Constant Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constExpression|syntax diagram]]%%-]
to:
[[#typeRequirement]]
!!!!!#60.3 Type Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeRequirement|syntax diagram]]%%-]
Changed lines 1180-1182 from:
constExpression := expression ;
to:
typeRequirement :=
  TYPE typeDefinition
 
;
Changed lines 1185-1187 from:
[[#builtinTypeIdent]]
!!!!!#61.3 Built-in Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#builtinTypeIdent|syntax diagram]]%%-]
to:
[[#constRequirement]]
!!!!!#61 Constant Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constRequirement|syntax diagram]]%%-]
Changed lines 1189-1193 from:
builtinTypeIdent := Ident ;
to:
constRequirement :=
  CONST
    ( '[' propertyToBindTo ']' ( simpleConstRequirement | '=' NONE ) |
      restrictedExport? simpleConstRequirement )
 
;
Changed lines 1196-1197 from:
!!!!!#61.4 Restricted Export \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#restrictedExport|syntax diagram]]%%-]
to:
[[#simpleConstRequirement]]
!!!!!#61.1 Simple Constant Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleConstRequirement|syntax diagram]]%%-]
Changed lines 1200-1202 from:
restrictedExport := '*' ;
to:
simpleConstRequirement :=
  Ident ( '=' constExpression | ':' builtinTypeIdent )
 
;
Changed lines 1205-1207 from:
[[#propertyToBindTo]]
!!!!!#62 Property To Bind To \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#propertyToBindTo|syntax diagram]]%%-]
to:
!!!!!#61.2 Constant Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constExpression|syntax diagram]]%%-]
Changed lines 1208-1210 from:
propertyToBindTo :=
  memMgtProperty | collectionProperty | scalarProperty | TFLAGS
 
;
to:
constExpression := expression ;
Changed lines 1211-1213 from:
[[#memMgtProperty]]
!!!!!#62.1 Memory Management Property \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#memMgtProperty|syntax diagram]]%%-]
to:
[[#builtinTypeIdent]]
!!!!!#61.3 Built-in Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#builtinTypeIdent|syntax diagram]]%%-]
Changed lines 1215-1217 from:
memMgtProperty :=
  TDYN | TREFC
 
;
to:
builtinTypeIdent := Ident ;
Changed lines 1218-1220 from:
[[#collectionProperty]]
!!!!!#62.2 Collection Property \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#collectionProperty|syntax diagram]]%%-]
to:
!!!!!#61.4 Restricted Export \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#restrictedExport|syntax diagram]]%%-]
Changed lines 1221-1223 from:
collectionProperty :=
  TORDERED | TSORTED | TLIMIT
 
;
to:
restrictedExport := '*' ;
Changed lines 1224-1226 from:
[[#scalarProperty]]
!!!!!#62.3 Scalar Property \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#scalarProperty|syntax diagram]]%%-]
to:
[[#propertyToBindTo]]
!!!!!#62 Property To Bind To \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#propertyToBindTo|syntax diagram]]%%-]
Changed lines 1228-1229 from:
scalarProperty :=
  TSCALAR | TMAX | TMIN
to:
propertyToBindTo :=
  memMgtProperty | collectionProperty | scalarProperty | TFLAGS
Changed lines 1233-1235 from:
[[#procRequirement]]
!!!!!#63 Procedure Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procRequirement|syntax diagram]]%%-]
to:
[[#memMgtProperty]]
!!!!!#62.1 Memory Management Property \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#memMgtProperty|syntax diagram]]%%-]
Changed lines 1237-1240 from:
procRequirement :=
  PROCEDURE
    ( '[' ( entityToBindTo | COROUTINE ) ']' ( procedureSignature | '=' NONE ) |
      restrictedExport? procedureSignature )
to:
memMgtProperty :=
  TDYN | TREFC
Changed lines 1242-1244 from:
[[#entityToBindTo]]
!!!!!#64 Entity To Bind To \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#entityToBindTo|syntax diagram]]%%-]
to:
[[#collectionProperty]]
!!!!!#62.2 Collection Property \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#collectionProperty|syntax diagram]]%%-]
Changed lines 1246-1247 from:
entityToBindTo :=
  bindableResWord | bindableOperator | bindableMacro
to:
collectionProperty :=
  TORDERED | TSORTED | TLIMIT
Changed lines 1251-1253 from:
[[#bindableResWord]]
!!!!!#64.1 Bindable Reserved Word \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableResWord|syntax diagram]]%%-]
to:
[[#scalarProperty]]
!!!!!#62.3 Scalar Property \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#scalarProperty|syntax diagram]]%%-]
Changed lines 1255-1256 from:
bindableResWord :=
  NEW | RETAIN | RELEASE | COPY | bindableFor
to:
scalarProperty :=
  TSCALAR | TMAX | TMIN
Changed lines 1260-1262 from:
[[#bindableFor]]
!!!!!#64.2 Bindable FOR \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableFor|syntax diagram]]%%-]
to:
[[#procRequirement]]
!!!!!#63 Procedure Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procRequirement|syntax diagram]]%%-]
Changed lines 1264-1265 from:
bindableFor :=
  FOR forBindingDifferentiator?
to:
procRequirement :=
  PROCEDURE
    ( '[' ( entityToBindTo | COROUTINE ) ']' ( procedureSignature | '=' NONE ) |
      restrictedExport
? procedureSignature )
Changed lines 1271-1273 from:
[[#forBindingDifferentiator]]
!!!!!#64.3 FOR Binding Differentiator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forBindingDifferentiator|syntax diagram]]%%-]
to:
[[#entityToBindTo]]
!!!!!#64 Entity To Bind To \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#entityToBindTo|syntax diagram]]%%-]
Changed lines 1275-1276 from:
forBindingDifferentiator :=
  '|' ( '++' | '--' )
to:
entityToBindTo :=
  bindableResWord | bindableOperator | bindableMacro
Changed lines 1280-1282 from:
[[#bindableOperator]]
!!!!!#64.4 Bindable Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableOperator|syntax diagram]]%%-]
to:
[[#bindableResWord]]
!!!!!#64.1 Bindable Reserved Word \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableResWord|syntax diagram]]%%-]
Changed lines 1284-1286 from:
bindableOperator :=
  '+' | '-' | '*' | '/' | '\' | '=' | '<' | '>' | '*.' | '::'
  IN | DIV | MOD | unaryMinus
to:
bindableResWord :=
  NEW | RETAIN | RELEASE | COPY | bindableFor
Changed lines 1289-1291 from:
[[#unaryMinus]]
!!!!!#64.5 Unary Minus \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#unaryMinus|syntax diagram]]%%-]
to:
[[#bindableFor]]
!!!!!#64.2 Bindable FOR \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableFor|syntax diagram]]%%-]
Changed lines 1293-1295 from:
unaryMinus := '+/-' ;
to:
bindableFor :=
  FOR forBindingDifferentiator?
 
;
Changed lines 1298-1300 from:
[[#bindableMacro]]
!!!!!#64.6 Bindable Macro \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableMacro|syntax diagram]]%%-]
to:
[[#forBindingDifferentiator]]
!!!!!#64.3 FOR Binding Differentiator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forBindingDifferentiator|syntax diagram]]%%-]
Changed lines 1302-1304 from:
bindableMacro :=
  ABS | LENGTH | EXISTS | SEEK | SUBSET | READ | READNEW | WRITE | WRITEF |
  SXF | VAL | multiBindableMacro1 | multiBindableMacro2 | multiBindableMacro3
to:
forBindingDifferentiator :=
  '|' ( '++' | '--' )
Changed lines 1307-1309 from:
[[#multiBindableMacro1]]
!!!!!#64.7 Multi-Bindable Macro 1 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#multiBindableMacro1|syntax diagram]]%%-]
to:
[[#bindableOperator]]
!!!!!#64.4 Bindable Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableOperator|syntax diagram]]%%-]
Changed lines 1311-1312 from:
multiBindableMacro1 :=
  ( COUNT | VALUE ) bindingDifferentiator1?
to:
bindableOperator :=
  '+' | '-' | '*' | '/' | '\' | '=' | '<' | '>' | '*.' | '::'
  IN | DIV | MOD | unaryMinus
Changed lines 1317-1319 from:
[[#bindingDifferentiator1]]
!!!!!#64.8 Binding Differentiator 1 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindingDifferentiator1|syntax diagram]]%%-]
to:
[[#unaryMinus]]
!!!!!#64.5 Unary Minus \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#unaryMinus|syntax diagram]]%%-]
Changed lines 1321-1323 from:
bindingDifferentiator1 :=
  '|' '#'
 
;
to:
unaryMinus := '+/-' ;
Changed lines 1324-1326 from:
[[#multiBindableMacro2]]
!!!!!#64.9 Multi-Bindable Macro 2 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#multiBindableMacro2|syntax diagram]]%%-]
to:
[[#bindableMacro]]
!!!!!#64.6 Bindable Macro \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableMacro|syntax diagram]]%%-]
Changed lines 1328-1329 from:
multiBindableMacro2 :=
  ( STORE | INSERT | REMOVE ) bindingDifferentiator2?
to:
bindableMacro :=
  ABS | LENGTH | EXISTS | SEEK | SUBSET | READ | READNEW | WRITE | WRITEF |
  SXF | VAL | multiBindableMacro1 | multiBindableMacro2 | multiBindableMacro3
Changed lines 1334-1336 from:
[[#bindingDifferentiator2]]
!!!!!#64.10 Binding Differentiator 2 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindingDifferentiator2|syntax diagram]]%%-]
to:
[[#multiBindableMacro1]]
!!!!!#64.7 Multi-Bindable Macro 1 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#multiBindableMacro1|syntax diagram]]%%-]
Changed lines 1338-1339 from:
bindingDifferentiator2 :=
  '|' ( ',' | '#' | '*' )
to:
multiBindableMacro1 :=
  ( COUNT | VALUE ) bindingDifferentiator1?
Changed lines 1343-1345 from:
[[#multiBindableMacro3]]
!!!!!#64.11 Multi-Bindable Macro 3 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#multiBindableMacro3|syntax diagram]]%%-]
to:
[[#bindingDifferentiator1]]
!!!!!#64.8 Binding Differentiator 1 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindingDifferentiator1|syntax diagram]]%%-]
Changed lines 1347-1348 from:
multiBindableMacro3 :=
  APPEND bindingDifferentiator3?
to:
bindingDifferentiator1 :=
  '|' '#'
Changed lines 1352-1354 from:
[[#bindingDifferentiator3]]
!!!!!#64.12 Binding Differentiator 3 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindingDifferentiator3|syntax diagram]]%%-]
to:
[[#multiBindableMacro2]]
!!!!!#64.9 Multi-Bindable Macro 2 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#multiBindableMacro2|syntax diagram]]%%-]
Changed lines 1356-1357 from:
bindingDifferentiator3 :=
  '|' ( ',' | '*' )
to:
multiBindableMacro2 :=
  ( STORE | INSERT | REMOVE ) bindingDifferentiator2?
Added lines 1360-1386:

[[#bindingDifferentiator2]]
!!!!!#64.10 Binding Differentiator 2 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindingDifferentiator2|syntax diagram]]%%-]
[@
bindingDifferentiator2 :=
  '|' ( ',' | '#' | '*' )
  ;
@]

[[#multiBindableMacro3]]
!!!!!#64.11 Multi-Bindable Macro 3 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#multiBindableMacro3|syntax diagram]]%%-]
[@
multiBindableMacro3 :=
  APPEND bindingDifferentiator3?
  ;
@]

[[#bindingDifferentiator3]]
!!!!!#64.12 Binding Differentiator 3 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindingDifferentiator3|syntax diagram]]%%-]
[@
bindingDifferentiator3 :=
  '|' ( ',' | '*' )
  ;
@]
2015-09-24 09:10 by trijezdci -
Changed line 300 from:
!!!!!#16.1 Component Count \
to:
!!!!!#16.1 Value Count \
Changed line 303 from:
componentCount := constExpression ;
to:
valueCount := constExpression ;
2015-09-24 09:09 by trijezdci -
Changed line 295 from:
  ARRAY componentCount ( ',' componentCount )* OF typeIdent
to:
  ARRAY lessThan? valueCount ( ',' valueCount )* OF typeIdent
Changed line 299 from:
[[#componentCount]]
to:
[[#valueCount]]
Changed line 301 from:
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#componentCount|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#valueCount|syntax diagram]]%%-]
Changed line 569 from:
  TYPE ( Ident '=' type ';' )+ |
to:
  TYPE ( Ident '=' typeDeclTail ';' )+ |
2015-09-22 12:53 by trijezdci -
Changed line 849 from:
  '*' | '/' | DIV | MOD | AND | setDiffOp | dotProductOp
to:
  '*' | '/' | DIV | MOD | AND | setDiffOp
Deleted lines 857-863:
@]

[[#dotProductOp]]
!!!!!#48.3 Dot Product Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#dotProductOp|syntax diagram]]%%-]
[@
dotProductOp := '*.' ;
2015-09-22 11:25 by trijezdci -
Changed line 799 from:
  '=' | '#' | '<' | '<=' | '>' | '>=' | IN | concatOp | identityOp
to:
  '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp
Changed lines 803-805 from:
[[#concatOp]]
!!!!!#46.2 Concatenation Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#concatOp|syntax diagram]]%%-]
to:
[[#identityOp]]
!!!!!#46.2 Identity Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identityOp|syntax diagram]]%%-]
Changed line 807 from:
concatOp := '&' ;
to:
identityOp := '==' ;
Changed lines 810-812 from:
[[#identityOp]]
!!!!!#46.3 Identity Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identityOp|syntax diagram]]%%-]
to:
[[#simpleExpression]]
!!!!!#47 Simple Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleExpression|syntax diagram]]%%-]
Changed lines 814-816 from:
identityOp := '==' ;
to:
simpleExpression :=
  ( '+' | '-' )? term ( operL2 term )*
 
;
Changed lines 819-821 from:
[[#simpleExpression]]
!!!!!#47 Simple Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleExpression|syntax diagram]]%%-]
to:
[[#operL2]]
!!!!!#47.1 Level-2 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL2|syntax diagram]]%%-]
Changed lines 823-824 from:
simpleExpression :=
  ( '+' | '-' )? term ( operL2 term )*
to:
operL2 :=
  '+' | '-' | OR | concatOp
Changed lines 828-830 from:
[[#operL2]]
!!!!!#47.1 Level-2 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL2|syntax diagram]]%%-]
to:
[[#concatOp]]
!!!!!#47.2 Concatenation Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#concatOp|syntax diagram]]%%-]
Changed lines 832-834 from:
operL2 :=
  '+' | '-' | OR
 
;
to:
concatOp := '&' ;
2015-09-17 18:17 by trijezdci -
Changed line 14 from:
compilationUnit :
to:
compilationUnit :=
Changed line 26 from:
definitionModule :
to:
definitionModule :=
Changed lines 38-42 from:
moduleIdent : Ident ;

blueprintIdent : Ident ;

typeToExtend : Ident ;
to:
moduleIdent := Ident ;

blueprintIdent := Ident ;

typeToExtend := Ident ;
Changed line 49 from:
blueprintToObey : blueprintIdent ;
to:
blueprintToObey := blueprintIdent ;
Changed line 56 from:
importList :
to:
importList :=
Changed line 65 from:
libGenDirective :
to:
libGenDirective :=
Changed lines 74-78 from:
libIdent : Ident ;

template : Ident ;

placeholder : Ident ;
to:
libIdent := Ident ;

template := Ident ;

placeholder := Ident ;
Changed line 85 from:
replacement :
to:
replacement :=
Changed line 94 from:
importDirective :
to:
importDirective :=
Changed line 105 from:
enumTypeIdent : typeIdent ;
to:
enumTypeIdent := typeIdent ;
Changed line 112 from:
typeIdent : qualident ;
to:
typeIdent := qualident ;
Changed line 119 from:
identifiersToImport :
to:
identifiersToImport :=
Changed line 123 from:
modulesToImport : identifiersToImport ;
to:
modulesToImport := identifiersToImport ;
Changed line 130 from:
reExport : '+' ;
to:
reExport := '+' ;
Changed line 137 from:
importAll : '*' ;
to:
importAll := '*' ;
Changed line 144 from:
qualident :
to:
qualident :=
Changed line 153 from:
definition :
to:
definition :=
Changed line 165 from:
constDefinition :
to:
constDefinition :=
Changed line 175 from:
constExpression : expression ;
to:
constExpression := expression ;
Changed line 182 from:
restrictedExport : '*' ;
to:
restrictedExport := '*' ;
Changed line 189 from:
typeDefinition :
to:
typeDefinition :=
Changed line 198 from:
variableDeclaration :
to:
variableDeclaration :=
Changed line 207 from:
identList :
to:
identList :=
Changed line 216 from:
range :
to:
range :=
Changed line 225 from:
greaterThan : '>' ;
to:
greaterThan := '>' ;
Changed line 232 from:
lessThan : '<' ;
to:
lessThan := '<' ;
Changed line 239 from:
type :
to:
type :=
Changed line 249 from:
derivedSubType :
to:
derivedSubType :=
Changed lines 260-262 from:
ordinalOrScalarType : typeIdent ;

dynamicTypeIdent : typeIdent ;
to:
ordinalOrScalarType := typeIdent ;

dynamicTypeIdent := typeIdent ;
Changed line 269 from:
enumType :
to:
enumType :=
Changed line 278 from:
enumTypeToExtend : typeIdent ;
to:
enumTypeToExtend := typeIdent ;
Changed line 285 from:
setType :
to:
setType :=
Changed line 294 from:
arrayType :
to:
arrayType :=
Changed line 303 from:
componentCount : constExpression ;
to:
componentCount := constExpression ;
Changed line 310 from:
recordType :
to:
recordType :=
Changed line 330 from:
recTypeToExtend : typeIdent ;
to:
recTypeToExtend := typeIdent ;
Changed line 337 from:
indeterminateField :
to:
indeterminateField :=
Changed line 346 from:
discriminantFieldIdent : Ident ;
to:
discriminantFieldIdent := Ident ;
Changed line 353 from:
pointerType :
to:
pointerType :=
Changed line 362 from:
coroutineType :
to:
coroutineType :=
Changed line 378 from:
procedureType :
to:
procedureType :=
Changed line 387 from:
formalType :
to:
formalType :=
Changed line 396 from:
simpleFormalType :
to:
simpleFormalType :=
Changed line 405 from:
castingFormalType :
to:
castingFormalType :=
Changed line 414 from:
addressTypeIdent :
to:
addressTypeIdent :=
Changed line 423 from:
attributedFormalType :
to:
attributedFormalType :=
Changed line 432 from:
simpleVariadicFormalType :
to:
simpleVariadicFormalType :=
Changed line 441 from:
reqNumOfArgs :
to:
reqNumOfArgs :=
Changed line 450 from:
terminator :
to:
terminator :=
Changed line 459 from:
constQualident : qualident ;
to:
constQualident := qualident ;
Changed line 466 from:
variadicFormalType :
to:
variadicFormalType :=
Changed line 477 from:
nonVariadicFormalType :
to:
nonVariadicFormalType :=
Changed line 486 from:
procedureHeader :
to:
procedureHeader :=
Changed line 496 from:
procedureSignature :
to:
procedureSignature :=
Changed line 505 from:
formalParams :
to:
formalParams :=
Changed line 515 from:
attributedFormalParams :
to:
attributedFormalParams :=
Changed line 525 from:
variadicFormalParams :
to:
variadicFormalParams :=
Changed line 536 from:
nonVariadicFormalParams :
to:
nonVariadicFormalParams :=
Changed line 548 from:
implOrPrgmModule :
to:
implOrPrgmModule :=
Changed line 558 from:
block :
to:
block :=
Changed line 567 from:
declaration :
to:
declaration :=
Changed line 579 from:
statementSequence :
to:
statementSequence :=
Changed line 588 from:
statement :
to:
statement :=
Changed line 599 from:
memMgtOperation :
to:
memMgtOperation :=
Changed lines 610-612 from:
initSize : expression ;

initValue : expression ;
to:
initSize := expression ;

initValue := expression ;
Changed line 619 from:
updateOrProcCall :
to:
updateOrProcCall :=
Changed line 629 from:
incOrDecSuffix :
to:
incOrDecSuffix :=
Changed line 638 from:
ifStatement :
to:
ifStatement :=
Changed line 650 from:
boolExpression : expression ;
to:
boolExpression := expression ;
Changed line 657 from:
caseStatement :
to:
caseStatement :=
Changed line 666 from:
case :
to:
case :=
Changed line 675 from:
caseLabels :
to:
caseLabels :=
Changed line 684 from:
loopStatement :
to:
loopStatement :=
Changed line 693 from:
whileStatement :
to:
whileStatement :=
Changed line 702 from:
repeatStatement :
to:
repeatStatement :=
Changed line 711 from:
forStatement :
to:
forStatement :=
Changed line 720 from:
forLoopVariants :
to:
forLoopVariants :=
Changed lines 730-732 from:
accessor : Ident ;

value : Ident ;
to:
accessor := Ident ;

value := Ident ;
Changed line 739 from:
iterableEntity :
to:
iterableEntity :=
Changed line 748 from:
ascOrDesc : incOrDecSuffix ;
to:
ascOrDesc := incOrDecSuffix ;
Changed line 755 from:
ordinalType : typeIdent ;
to:
ordinalType := typeIdent ;
Changed line 762 from:
designator :
to:
designator :=
Changed line 771 from:
designatorTail :
to:
designatorTail :=
Changed line 780 from:
exprListOrSlice :
to:
exprListOrSlice :=
Changed line 789 from:
expression :
to:
expression :=
Changed line 798 from:
operL1 :
to:
operL1 :=
Changed line 807 from:
concatOp : '&' ;
to:
concatOp := '&' ;
Changed line 814 from:
identityOp : '==' ;
to:
identityOp := '==' ;
Changed line 821 from:
simpleExpression :
to:
simpleExpression :=
Changed line 830 from:
operL2 :
to:
operL2 :=
Changed line 839 from:
term :
to:
term :=
Changed line 848 from:
operL3 :
to:
operL3 :=
Changed line 857 from:
setDiffOp : '\' ;
to:
setDiffOp := '\' ;
Changed line 864 from:
dotProductOp : '*.' ;
to:
dotProductOp := '*.' ;
Changed line 871 from:
simpleTerm :
to:
simpleTerm :=
Changed line 880 from:
factorOrTypeConv :
to:
factorOrTypeConv :=
Changed line 889 from:
factor :
to:
factor :=
Changed line 899 from:
actualParameters :
to:
actualParameters :=
Changed line 908 from:
expressionList :
to:
expressionList :=
Changed line 917 from:
structuredValue :
to:
structuredValue :=
Changed line 926 from:
valueComponent :
to:
valueComponent :=
Changed line 935 from:
runtimeExpression : expression ;
to:
runtimeExpression := expression ;
Changed line 945 from:
blueprint :
to:
blueprint :=
Changed line 957 from:
blueprintIdent : Ident ;
to:
blueprintIdent := Ident ;
Changed lines 964-966 from:
blueprintToRefine : blueprintIdent ;

blueprintForTypeToExtend : blueprintIdent ;
to:
blueprintToRefine := blueprintIdent ;

blueprintForTypeToExtend := blueprintIdent ;
Changed line 973 from:
typeClassification :
to:
typeClassification :=
Changed line 983 from:
determinedClassification :
to:
determinedClassification :=
Changed line 992 from:
refinableClassification :
to:
refinableClassification :=
Changed line 1001 from:
classificationIdent : Ident ;
to:
classificationIdent := Ident ;
Changed line 1008 from:
literalCompatibility :
to:
literalCompatibility :=
Changed line 1017 from:
protoLiteral :
to:
protoLiteral :=
Changed line 1026 from:
protoLiteralIdent : Ident ;
to:
protoLiteralIdent := Ident ;
Changed line 1033 from:
structuredProtoLiteral :
to:
structuredProtoLiteral :=
Changed line 1046 from:
reqValueCount :
to:
reqValueCount :=
Changed line 1054 from:
greaterThan : '>' ;
to:
greaterThan := '>' ;
Changed line 1068 from:
builtinOrReferential : Ident ;
to:
builtinOrReferential := Ident ;
Changed line 1075 from:
constraint :
to:
constraint :=
Changed line 1084 from:
constraintTerm :
to:
constraintTerm :=
Changed line 1094 from:
bindableEntityOrProperty :
to:
bindableEntityOrProperty :=
Changed line 1103 from:
oneWayDependency :
to:
oneWayDependency :=
Changed line 1112 from:
mutualDependencyOrExclusion :
to:
mutualDependencyOrExclusion :=
Changed line 1121 from:
termList :
to:
termList :=
Changed line 1130 from:
classificationOrFlagIdent : Ident ;
to:
classificationOrFlagIdent := Ident ;
Changed line 1137 from:
requirement :
to:
requirement :=
Changed line 1146 from:
condition :
to:
condition :=
Changed line 1155 from:
boolConstIdent : Ident ;
to:
boolConstIdent := Ident ;
Changed line 1162 from:
typeRequirement :
to:
typeRequirement :=
Changed line 1171 from:
constRequirement :
to:
constRequirement :=
Changed line 1182 from:
simpleConstRequirement :
to:
simpleConstRequirement :=
Changed line 1190 from:
constExpression : expression ;
to:
constExpression := expression ;
Changed line 1197 from:
builtinTypeIdent : Ident ;
to:
builtinTypeIdent := Ident ;
Changed line 1203 from:
restrictedExport : '*' ;
to:
restrictedExport := '*' ;
Changed line 1210 from:
propertyToBindTo :
to:
propertyToBindTo :=
Changed line 1219 from:
memMgtProperty :
to:
memMgtProperty :=
Changed line 1228 from:
collectionProperty :
to:
collectionProperty :=
Changed line 1237 from:
scalarProperty :
to:
scalarProperty :=
Changed line 1246 from:
procRequirement :
to:
procRequirement :=
Changed line 1257 from:
entityToBindTo :
to:
entityToBindTo :=
Changed line 1266 from:
bindableResWord :
to:
bindableResWord :=
Changed line 1275 from:
bindableFor :
to:
bindableFor :=
Changed line 1284 from:
forBindingDifferentiator :
to:
forBindingDifferentiator :=
Changed line 1293 from:
bindableOperator :
to:
bindableOperator :=
Changed line 1303 from:
unaryMinus : '+/-' ;
to:
unaryMinus := '+/-' ;
Changed line 1310 from:
bindableMacro :
to:
bindableMacro :=
Changed line 1320 from:
multiBindableMacro1 :
to:
multiBindableMacro1 :=
Changed line 1329 from:
bindingDifferentiator1 :
to:
bindingDifferentiator1 :=
Changed line 1338 from:
multiBindableMacro2 :
to:
multiBindableMacro2 :=
Changed line 1347 from:
bindingDifferentiator2 :
to:
bindingDifferentiator2 :=
Changed line 1356 from:
multiBindableMacro3 :
to:
multiBindableMacro3 :=
Changed line 1365 from:
bindingDifferentiator3 :
to:
bindingDifferentiator3 :=
Changed line 1368 from:
@]
to:
@]
2015-09-16 02:35 by trijezdci -
2015-09-16 02:34 by trijezdci -
Changed line 1 from:
%silver%'''[-[[Spec.Grammar|Grammar]] | [[EBNF.Terminals|Terminals]]-]'''%%
to:
%silver%'''[-[[Spec.Grammar|<< Grammar]] | [[EBNF.Terminals|Terminals >>]]-]'''%%
2015-09-16 02:33 by trijezdci -
Changed line 1 from:
% silver%'''[-[[Spec.Grammar|Grammar]] | [[EBNF.Terminals|Terminals]]-]'''%%
to:
%silver%'''[-[[Spec.Grammar|Grammar]] | [[EBNF.Terminals|Terminals]]-]'''%%
2015-09-16 02:32 by trijezdci -
Added lines 1-2:
% silver%'''[-[[Spec.Grammar|Grammar]] | [[EBNF.Terminals|Terminals]]-]'''%%
2015-09-16 02:01 by trijezdci - changed factorOrNegation to simpleTerm
Changed line 838 from:
  factorOrNegation ( operL3 factorOrNegation )*
to:
  simpleTerm ( operL3 simpleTerm )*
Changed lines 865-867 from:
[[#factorOrNegation]]
!!!!!#49 Factor Or Negation \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#factorOrNegation|syntax diagram]]%%-]
to:
[[#simpleTerm]]
!!!!!#49 Simple Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleTerm|syntax diagram]]%%-]
Changed line 869 from:
factorOrNegation :
to:
simpleTerm :
2015-09-15 08:21 by trijezdci - anchoring
Added line 8:
[[#compilationUnit]]
Added line 32:
[[#moduleIdent]][[#blueprintIdent]][[#typeToExtend]]
Added line 43:
[[#blueprintToObey]]
Added line 50:
[[#importList]]
Added line 59:
[[#libGenDirective]]
Added line 68:
[[#libIdent]][[#template]][[#placeholder]]
Added line 79:
[[#replacement]]
Added line 88:
[[#importDirective]]
Added line 99:
[[#enumTypeIdent]]
Added line 106:
[[#typeIdent]]
Added line 113:
[[#identifiersToImport]][[#modulesToImport]]
Added line 124:
[[#reExport]]
Added line 131:
[[#importAll]]
Added line 138:
[[#qualident]]
Added line 147:
[[#definition]]
Added line 159:
[[#constDefinition]]
Added line 169:
[[#constExpression]]
Added line 176:
[[#restrictedExport]]
Added line 183:
[[#typeDefinition]]
Added line 192:
[[#variableDeclaration]]
Added line 201:
[[#identList]]
Added line 210:
[[#range]]
Added line 219:
[[#greaterThan]]
Added line 226:
[[#lessThan]]
Added line 233:
[[#type]]
Added line 243:
[[#derivedSubType]]
Added line 254:
[[#ordinalOrScalarType]][[#dynamicTypeIdent]]
Added line 263:
[[#enumType]]
Added line 272:
[[#enumTypeToExtend]]
Added line 279:
[[#setType]]
Added line 288:
[[#arrayType]]
Added line 297:
[[#componentCount]]
Added line 304:
[[#recordType]]
Added line 315:
[[#fieldList]]
Added line 324:
[[#recTypeToExtend]]
Added line 331:
[[#indeterminateField]]
Added line 340:
[[#discriminantFieldIdent]]
Added line 347:
[[#pointerType]]
Added line 356:
[[#coroutineType]]
Added line 365:
[[#assocProcType]]
Added line 372:
[[#procedureType]]
Added line 381:
[[#formalType]]
Added line 390:
[[#simpleFormalType]]
Added line 399:
[[#castingFormalType]]
Added line 408:
[[#addressTypeIdent]]
Added line 417:
[[#attributedFormalType]]
Added line 426:
[[#simpleVariadicFormalType]]
Added line 435:
[[#reqNumOfArgs]]
Added line 444:
[[#terminator]]
Added line 453:
[[#constQualident]]
Added line 460:
[[#variadicFormalType]]
Added line 471:
[[#nonVariadicFormalType]]
Added line 480:
[[#procedureHeader]]
Added line 490:
[[#procedureSignature]]
Added line 499:
[[#formalParams]]
Added line 509:
[[#attributedFormalParams]]
Added line 519:
[[#variadicFormalParams]]
Added line 530:
[[#nonVariadicFormalParams]]
Changed lines 542-543 from:
[[#implOrPrgmModule]] \
to:
[[#implOrPrgmModule]]
!!!!!#32 Implementation Or Program Module \
Deleted line 544:
!!!!!#32 Implementation Or Program Module
Added line 552:
[[#block]]
Added line 561:
[[#declaration]]
Added line 573:
[[#statementSequence]]
Added line 582:
[[#statement]]
Added line 593:
[[#memMgtOperation]]
Added line 604:
[[#initSize]][[#initValue]]
Added line 613:
[[#updateOrProcCall]]
Added line 623:
[[#incOrDecSuffix]]
Added line 632:
[[#ifStatement]]
Added line 644:
[[#boolExpression]]
Added line 651:
[[#caseStatement]]
Added line 660:
[[#case]]
Added line 669:
[[#caseLabels]]
Added line 678:
[[#loopStatement]]
Added line 687:
[[#whileStatement]]
Added line 696:
[[#repeatStatement]]
Added line 705:
[[#forStatement]]
Added line 714:
[[#forLoopVariants]]
Added line 724:
[[#accessor]][[#value]]
Added line 733:
[[#iterableEntity]]
Added line 742:
[[#ascOrDesc]]
Added line 749:
[[#ordinalType]]
Added line 756:
[[#designator]]
Added line 765:
[[#designatorTail]]
Added line 774:
[[#exprListOrSlice]]
Added line 783:
[[#expression]]
Added line 792:
[[#operL1]]
Added line 801:
[[#concatOp]]
Added line 808:
[[#identityOp]]
Added line 815:
[[#simpleExpression]]
Added line 824:
[[#operL2]]
Added line 833:
[[#term]]
Added line 842:
[[#operL3]]
Added line 851:
[[#setDiffOp]]
Added line 858:
[[#dotProductOp]]
Added line 865:
[[#factorOrNegation]]
Added line 874:
[[#factorOrTypeConv]]
Added line 883:
[[#factor]]
Added line 893:
[[#actualParameters]]
Added line 902:
[[#expressionList]]
Added line 911:
[[#structuredValue]]
Added line 920:
[[#valueComponent]]
Added line 929:
[[#runtimeExpression]]
Changed lines 939-940 from:
[[#blueprint]] \
to:
[[#blueprint]]
!!!!!#55 Blueprint \
Deleted line 941:
!!!!!#55 Blueprint
Added line 951:
[[#blueprintIdent]]
Added line 958:
[[#blueprintToRefine]][[#blueprintForTypeToExtend]]
Added line 967:
[[#typeClassification]]
Added line 977:
[[#determinedClassification]]
Added line 986:
[[#refinableClassification]]
Added line 995:
[[#classificationIdent]]
Added line 1002:
[[#literalCompatibility]]
Added line 1011:
[[#protoLiteral]]
Added line 1020:
[[#protoLiteralIdent]]
Added line 1027:
[[#structuredProtoLiteral]]
Added line 1040:
[[#reqValueCount]]
Added line 1055:
[[#wholeNumber]]
Added line 1062:
[[#builtinOrReferential]]
Added line 1069:
[[#constraint]]
Added line 1078:
[[#constraintTerm]]
Added line 1088:
[[#bindableEntityOrProperty]]
Added line 1097:
[[#oneWayDependency]]
Added line 1106:
[[#mutualDependencyOrExclusion]]
Added line 1115:
[[#termList]]
Added line 1124:
[[#classificationOrFlagIdent]]
Added line 1131:
[[#requirement]]
Added line 1140:
[[#condition]]
Added line 1149:
[[#boolConstIdent]]
Added line 1156:
[[#typeRequirement]]
Added line 1165:
[[#constRequirement]]
Added line 1176:
[[#simpleConstRequirement]]
Added line 1191:
[[#builtinTypeIdent]]
Added line 1204:
[[#propertyToBindTo]]
Added line 1213:
[[#memMgtProperty]]
Added line 1222:
[[#collectionProperty]]
Added line 1231:
[[#scalarProperty]]
Added line 1240:
[[#procRequirement]]
Added line 1251:
[[#entityToBindTo]]
Added line 1260:
[[#bindableResWord]]
Added line 1269:
[[#bindableFor]]
Added line 1278:
[[#forBindingDifferentiator]]
Added line 1287:
[[#bindableOperator]]
Added line 1297:
[[#unaryMinus]]
Added line 1304:
[[#bindableMacro]]
Added line 1314:
[[#multiBindableMacro1]]
Added line 1323:
[[#bindingDifferentiator1]]
Added line 1332:
[[#multiBindableMacro2]]
Added line 1341:
[[#bindingDifferentiator2]]
Added line 1350:
[[#multiBindableMacro3]]
Added line 1359:
[[#bindingDifferentiator3]]
2015-09-15 07:56 by trijezdci - anchoring
Changed lines 8-9 from:
!!!!!#1 Compilation Unit
to:
!!!!!#1 Compilation Unit \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#compilationUnit|syntax diagram]]%%-]
Changed lines 20-21 from:
!!!!!#2 Definition Module
to:
!!!!!#2 Definition Module \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#definitionModule|syntax diagram]]%%-]
Changed lines 31-32 from:
!!!!!#2.1 Module Identifier, Blueprint Identifier, Type To Extend
to:
!!!!!#2.1 Module Identifier, Blueprint Identifier, Type To Extend \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#moduleIdent|syntax diagram]]%%-]
Changed lines 41-42 from:
!!!!!#2.2 Blueprint To Obey
to:
!!!!!#2.2 Blueprint To Obey \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#blueprintToObey|syntax diagram]]%%-]
Changed lines 47-48 from:
!!!!!#3 Import List
to:
!!!!!#3 Import List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#importList|syntax diagram]]%%-]
Changed lines 55-56 from:
!!!!!#4 Library Generation Directive
to:
!!!!!#4 Library Generation Directive \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#libGenDirective|syntax diagram]]%%-]
Changed lines 63-64 from:
!!!!!#4.1 Library Identifier, Template, Placeholder
to:
!!!!!#4.1 Library Identifier, Template, Placeholder \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#libIdent|syntax diagram]]%%-]
Changed lines 73-74 from:
!!!!!#4.2 Replacement
to:
!!!!!#4.2 Replacement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#replacement|syntax diagram]]%%-]
Changed lines 81-82 from:
!!!!!#5 Import Directive
to:
!!!!!#5 Import Directive \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#importDirective|syntax diagram]]%%-]
Changed lines 91-92 from:
!!!!!#5.1 Enumeration Type Identifier
to:
!!!!!#5.1 Enumeration Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#enumTypeIdent|syntax diagram]]%%-]
Changed lines 97-98 from:
!!!!!#5.2 Type Identifier
to:
!!!!!#5.2 Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeIdent|syntax diagram]]%%-]
Changed lines 103-104 from:
!!!!!#5.3 Identifiers To Import, Modules To Import
to:
!!!!!#5.3 Identifiers To Import, Modules To Import \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identifiersToImport|syntax diagram]]%%-]
Changed lines 113-114 from:
!!!!!#5.4 Re-Export
to:
!!!!!#5.4 Re-Export \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#reExport|syntax diagram]]%%-]
Changed lines 119-120 from:
!!!!!#5.5 Import All
to:
!!!!!#5.5 Import All \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#importAll|syntax diagram]]%%-]
Changed lines 125-126 from:
!!!!!#6 Qualified Identifier
to:
!!!!!#6 Qualified Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#qualident|syntax diagram]]%%-]
Changed lines 133-134 from:
!!!!!#7 Definition
to:
!!!!!#7 Definition \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#definition|syntax diagram]]%%-]
Changed lines 144-145 from:
!!!!!#8 Constant Definition
to:
!!!!!#8 Constant Definition \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constDefinition|syntax diagram]]%%-]
Changed lines 153-154 from:
!!!!!#8.1 Constant Expression
to:
!!!!!#8.1 Constant Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constExpression|syntax diagram]]%%-]
Changed lines 159-160 from:
!!!!!#8.2 Restricted Export
to:
!!!!!#8.2 Restricted Export \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#restrictedExport|syntax diagram]]%%-]
Changed lines 165-166 from:
!!!!!#9 Type Definition
to:
!!!!!#9 Type Definition \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeDefinition|syntax diagram]]%%-]
Changed lines 173-174 from:
!!!!!#10 Variable Declaration
to:
!!!!!#10 Variable Declaration \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#variableDeclaration|syntax diagram]]%%-]
Changed lines 181-182 from:
!!!!!#11 Identifier List
to:
!!!!!#11 Identifier List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identList|syntax diagram]]%%-]
Changed lines 189-190 from:
!!!!!#12 Range
to:
!!!!!#12 Range \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#range|syntax diagram]]%%-]
Changed lines 197-198 from:
!!!!!#12.1 Greater Than
to:
!!!!!#12.1 Greater Than \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#greaterThan|syntax diagram]]%%-]
Changed lines 203-204 from:
!!!!!#12.2 Less Than
to:
!!!!!#12.2 Less Than \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#lessThan|syntax diagram]]%%-]
Changed lines 209-210 from:
!!!!!#13 Type
to:
!!!!!#13 Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#type|syntax diagram]]%%-]
Changed lines 218-219 from:
!!!!!#13.1 Derived Sub-Type
to:
!!!!!#13.1 Derived Sub-Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#derivedSubType|syntax diagram]]%%-]
Changed lines 228-229 from:
!!!!!#13.2 Ordinal Or Scalar Type, Dynamic Type Identifier
to:
!!!!!#13.2 Ordinal Or Scalar Type, Dynamic Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ordinalOrScalarType|syntax diagram]]%%-]
Changed lines 236-237 from:
!!!!!#14 Enumeration Type
to:
!!!!!#14 Enumeration Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#enumType|syntax diagram]]%%-]
Changed lines 244-245 from:
!!!!!#14.1 Enumeration Type To Extend
to:
!!!!!#14.1 Enumeration Type To Extend \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#enumTypeToExtend|syntax diagram]]%%-]
Changed lines 250-251 from:
!!!!!#15 Set Type
to:
!!!!!#15 Set Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#setType|syntax diagram]]%%-]
Changed lines 258-259 from:
!!!!!#16 Array Type
to:
!!!!!#16 Array Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#arrayType|syntax diagram]]%%-]
Changed lines 266-267 from:
!!!!!#16.1 Component Count
to:
!!!!!#16.1 Component Count \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#componentCount|syntax diagram]]%%-]
Changed lines 272-273 from:
!!!!!#17 Record Type
to:
!!!!!#17 Record Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#recordType|syntax diagram]]%%-]
Changed lines 282-283 from:
!!!!!#17.1 Field List
to:
!!!!!#17.1 Field List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#fieldList|syntax diagram]]%%-]
Changed lines 290-291 from:
!!!!!#17.2 Record Type To Extend
to:
!!!!!#17.2 Record Type To Extend \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#recTypeToExtend|syntax diagram]]%%-]
Changed lines 296-297 from:
!!!!!#17.3 Indeterminate Field
to:
!!!!!#17.3 Indeterminate Field \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#indeterminateField|syntax diagram]]%%-]
Changed lines 304-305 from:
!!!!!#17.4 Discriminant Field Ident
to:
!!!!!#17.4 Discriminant Field Ident \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#discriminantFieldIdent|syntax diagram]]%%-]
Changed lines 310-311 from:
!!!!!#18 Pointer Type
to:
!!!!!#18 Pointer Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#pointerType|syntax diagram]]%%-]
Changed lines 318-319 from:
!!!!!#19 Coroutine Type
to:
!!!!!#19 Coroutine Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#coroutineType|syntax diagram]]%%-]
Changed lines 326-327 from:
!!!!!#19.1 Associated Procedure Type
to:
!!!!!#19.1 Associated Procedure Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#assocProcType|syntax diagram]]%%-]
Changed lines 332-333 from:
!!!!!#20 Procedure Type
to:
!!!!!#20 Procedure Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureType|syntax diagram]]%%-]
Changed lines 340-341 from:
!!!!!#20.1 Formal Type
to:
!!!!!#20.1 Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#formalType|syntax diagram]]%%-]
Changed lines 348-349 from:
!!!!!#21 Simple Formal Type
to:
!!!!!#21 Simple Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleFormalType|syntax diagram]]%%-]
Changed lines 356-357 from:
!!!!!#21.1 Casting Formal Type
to:
!!!!!#21.1 Casting Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#castingFormalType|syntax diagram]]%%-]
Changed lines 364-365 from:
!!!!!#21.2 Address Type Identifier
to:
!!!!!#21.2 Address Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#addressTypeIdent|syntax diagram]]%%-]
Changed lines 372-373 from:
!!!!!#22 Attributed Formal Type
to:
!!!!!#22 Attributed Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#attributedFormalType|syntax diagram]]%%-]
Changed lines 380-381 from:
!!!!!#23 Simple Variadic Formal Type
to:
!!!!!#23 Simple Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleVariadicFormalType|syntax diagram]]%%-]
Changed lines 388-389 from:
!!!!!#23.1 Required Number Of Arguments
to:
!!!!!#23.1 Required Number Of Arguments \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#reqNumOfArgs|syntax diagram]]%%-]
Changed lines 396-397 from:
!!!!!#23.2 Argument List Terminator
to:
!!!!!#23.2 Argument List Terminator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#terminator|syntax diagram]]%%-]
Changed lines 404-405 from:
!!!!!#23.3 Constant Qualified Identifier
to:
!!!!!#23.3 Constant Qualified Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constQualident|syntax diagram]]%%-]
Changed lines 410-411 from:
!!!!!#24 Variadic Formal Type
to:
!!!!!#24 Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#variadicFormalType|syntax diagram]]%%-]
Changed lines 420-421 from:
!!!!!#25 Non-Variadic Formal Type
to:
!!!!!#25 Non-Variadic Formal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#nonVariadicFormalType|syntax diagram]]%%-]
Changed lines 428-429 from:
!!!!!#26 Procedure Header
to:
!!!!!#26 Procedure Header \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureHeader|syntax diagram]]%%-]
Changed lines 437-438 from:
!!!!!#27 Procedure Signature
to:
!!!!!#27 Procedure Signature \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procedureSignature|syntax diagram]]%%-]
Changed lines 445-446 from:
!!!!!#28 Formal Parameters
to:
!!!!!#28 Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#formalParams|syntax diagram]]%%-]
Changed lines 454-455 from:
!!!!!#29 Attributed Formal Parameters
to:
!!!!!#29 Attributed Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#attributedFormalParams|syntax diagram]]%%-]
Changed lines 463-464 from:
!!!!!#30 Variadic Formal Parameters
to:
!!!!!#30 Variadic Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#variadicFormalParams|syntax diagram]]%%-]
Changed lines 473-474 from:
!!!!!#31 Non-Variadic Formal Parameters
to:
!!!!!#31 Non-Variadic Formal Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#nonVariadicFormalParams|syntax diagram]]%%-]
Changed lines 484-485 from:
[[#implOrPrgmModule]]
to:
[[#implOrPrgmModule]] \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#implOrPrgmModule|syntax diagram]]%%-
]
Changed lines 494-495 from:
!!!!!#33 Block
to:
!!!!!#33 Block \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#block|syntax diagram]]%%-]
Changed lines 502-503 from:
!!!!!#34 Declaration
to:
!!!!!#34 Declaration \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#declaration|syntax diagram]]%%-]
Changed lines 513-514 from:
!!!!!#35 Statement Sequence
to:
!!!!!#35 Statement Sequence \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#statementSequence|syntax diagram]]%%-]
Changed lines 521-522 from:
!!!!!#36 Statement
to:
!!!!!#36 Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#statement|syntax diagram]]%%-]
Changed lines 531-532 from:
!!!!!#37 Memory Management Operation
to:
!!!!!#37 Memory Management Operation \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#memMgtOperation|syntax diagram]]%%-]
Changed lines 541-542 from:
!!!!!#37.1 Initial Size, Initial Value
to:
!!!!!#37.1 Initialisation Size, Initialisation Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#initSize|syntax diagram]]%%-]
Changed lines 549-550 from:
!!!!!#38 Update Or Procedure Call
to:
!!!!!#38 Update Or Procedure Call \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#updateOrProcCall|syntax diagram]]%%-]
Changed lines 558-559 from:
!!!!!#38.1 Increment Or Decrement Suffix
to:
!!!!!#38.1 Increment Or Decrement Suffix \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#incOrDecSuffix|syntax diagram]]%%-]
Changed lines 566-567 from:
!!!!!#39 IF Statement
to:
!!!!!#39 IF Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ifStatement|syntax diagram]]%%-]
Changed lines 577-578 from:
!!!!!#39.1 Boolean Expression
to:
!!!!!#39.1 Boolean Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#boolExpression|syntax diagram]]%%-]
Changed lines 583-584 from:
!!!!!#40 CASE Statement
to:
!!!!!#40 CASE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseStatement|syntax diagram]]%%-]
Changed lines 591-592 from:
!!!!!#40.1 Case
to:
!!!!!#40.1 Case \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#case|syntax diagram]]%%-]
Changed lines 599-600 from:
!!!!!#40.2 Case Labels
to:
!!!!!#40.2 Case Labels \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#caseLabels|syntax diagram]]%%-]
Changed lines 607-608 from:
!!!!!#41 LOOP Statement
to:
!!!!!#41 LOOP Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#loopStatement|syntax diagram]]%%-]
Changed lines 615-616 from:
!!!!!#42 WHILE Statement
to:
!!!!!#42 WHILE Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#whileStatement|syntax diagram]]%%-]
Changed lines 623-624 from:
!!!!!#43 REPEAT Statement
to:
!!!!!#43 REPEAT Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#repeatStatement|syntax diagram]]%%-]
Changed lines 631-632 from:
!!!!!#44 FOR Statement
to:
!!!!!#44 FOR Statement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forStatement|syntax diagram]]%%-]
Changed lines 639-640 from:
!!!!!#44.1 FOR Loop Variants
to:
!!!!!#44.1 FOR Loop Variants \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forLoopVariants|syntax diagram]]%%-]
Changed lines 648-649 from:
!!!!!#44.2 Accessor, Value
to:
!!!!!#44.2 Accessor, Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#accessor|syntax diagram]]%%-]
Changed lines 656-657 from:
!!!!!#44.3 Iterable Entity
to:
!!!!!#44.3 Iterable Entity \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#iterableEntity|syntax diagram]]%%-]
Changed lines 664-665 from:
!!!!!#44.4 Ascender Or Descender
to:
!!!!!#44.4 Ascender Or Descender \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ascOrDesc|syntax diagram]]%%-]
Changed lines 670-671 from:
!!!!!#44.5 Ordinal Type
to:
!!!!!#44.5 Ordinal Type \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#ordinalType|syntax diagram]]%%-]
Changed lines 676-677 from:
!!!!!#45 Designator
to:
!!!!!#45 Designator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#designator|syntax diagram]]%%-]
Changed lines 684-685 from:
!!!!!#45.1 Designator Tail
to:
!!!!!#45.1 Designator Tail \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#designatorTail|syntax diagram]]%%-]
Changed lines 692-693 from:
!!!!!#45.2 Expression List Or Slice
to:
!!!!!#45.2 Expression List Or Slice \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#exprListOrSlice|syntax diagram]]%%-]
Changed lines 700-701 from:
!!!!!#46 Expression
to:
!!!!!#46 Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expression|syntax diagram]]%%-]
Changed lines 708-709 from:
!!!!!#46.1 Level-1 Operator
to:
!!!!!#46.1 Level-1 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL1|syntax diagram]]%%-]
Changed lines 716-717 from:
!!!!!#46.2 Concatenation Operator
to:
!!!!!#46.2 Concatenation Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#concatOp|syntax diagram]]%%-]
Changed lines 722-723 from:
!!!!!#46.3 Identity Operator
to:
!!!!!#46.3 Identity Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#identityOp|syntax diagram]]%%-]
Changed lines 728-729 from:
!!!!!#47 Simple Expression
to:
!!!!!#47 Simple Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleExpression|syntax diagram]]%%-]
Changed lines 736-737 from:
!!!!!#47.1 Level-2 Operator
to:
!!!!!#47.1 Level-2 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL2|syntax diagram]]%%-]
Changed lines 744-745 from:
!!!!!#48 Term
to:
!!!!!#48 Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#term|syntax diagram]]%%-]
Changed lines 752-753 from:
!!!!!#48.1 Level-3 Operator
to:
!!!!!#48.1 Level-3 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#operL3|syntax diagram]]%%-]
Changed lines 760-761 from:
!!!!!#48.2 Set Difference Operator
to:
!!!!!#48.2 Set Difference Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#setDiffOp|syntax diagram]]%%-]
Changed lines 766-767 from:
!!!!!#48.3 Dot Product Operator
to:
!!!!!#48.3 Dot Product Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#dotProductOp|syntax diagram]]%%-]
Changed lines 772-773 from:
!!!!!#49 Factor Or Negation
to:
!!!!!#49 Factor Or Negation \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#factorOrNegation|syntax diagram]]%%-]
Changed lines 780-781 from:
!!!!!#50 Factor Or Type Conversion
to:
!!!!!#50 Factor Or Type Conversion \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#factorOrTypeConv|syntax diagram]]%%-]
Changed lines 788-789 from:
!!!!!#51 Factor
to:
!!!!!#51 Factor \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#factor|syntax diagram]]%%-]
Changed lines 797-798 from:
!!!!!#52 Actual Parameters
to:
!!!!!#52 Actual Parameters \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#actualParameters|syntax diagram]]%%-]
Changed lines 805-806 from:
!!!!!#53 Expression List
to:
!!!!!#53 Expression List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#expressionList|syntax diagram]]%%-]
Changed lines 813-814 from:
!!!!!#54 Structured Value
to:
!!!!!#54 Structured Value \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#structuredValue|syntax diagram]]%%-]
Changed lines 821-822 from:
!!!!!#54.1 Value Component
to:
!!!!!#54.1 Value Component \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#valueComponent|syntax diagram]]%%-]
Changed lines 829-830 from:
!!!!!#54.2 Runtime Expression
to:
!!!!!#54.2 Runtime Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#runtimeExpression|syntax diagram]]%%-]
Changed lines 838-839 from:
[[#blueprint]]
to:
[[#blueprint]] \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#blueprint|syntax diagram]]%%-
]
Changed lines 850-851 from:
!!!!!#55.1 Blueprint Identifier
to:
!!!!!#55.1 Blueprint Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#blueprintIdent|syntax diagram]]%%-]
Changed lines 856-857 from:
!!!!!#55.2 Blueprint To Refine, Blueprint For Type To Extend
to:
!!!!!#55.2 Blueprint To Refine, Blueprint For Type To Extend \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#blueprintToRefine|syntax diagram]]%%-]
Changed lines 864-865 from:
!!!!!#56 Type Classification
to:
!!!!!#56 Type Classification \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeClassification|syntax diagram]]%%-]
Changed lines 873-874 from:
!!!!!#56.1 Determined Classification
to:
!!!!!#56.1 Determined Classification \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#determinedClassification|syntax diagram]]%%-]
Changed lines 881-882 from:
!!!!!#56.2 Refinable Classification
to:
!!!!!#56.2 Refinable Classification \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#refinableClassification|syntax diagram]]%%-]
Changed lines 889-890 from:
!!!!!#56.3 Classification Identifier
to:
!!!!!#56.3 Classification Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#classificationIdent|syntax diagram]]%%-]
Changed lines 895-896 from:
!!!!!#57 Literal Compatibility
to:
!!!!!#57 Literal Compatibility \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#literalCompatibility|syntax diagram]]%%-]
Changed lines 903-904 from:
!!!!!#57.1 Proto-Literal
to:
!!!!!#57.1 Proto-Literal \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#protoLiteral|syntax diagram]]%%-]
Changed lines 911-912 from:
!!!!!#57.2 Proto-Literal Identifier
to:
!!!!!#57.2 Proto-Literal Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#protoLiteralIdent|syntax diagram]]%%-]
Changed lines 917-918 from:
!!!!!#58 Structured Proto-Literal
to:
!!!!!#58 Structured Proto-Literal \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#structuredProtoLiteral|syntax diagram]]%%-]
Changed lines 929-930 from:
!!!!!#58.1 Required Value Count
to:
!!!!!#58.1 Required Value Count \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#reqValueCount|syntax diagram]]%%-]
Changed lines 937-938 from:
!!!!!#58.2 Greater Than
to:
!!!!!#58.2 Greater Than \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#greaterThan|syntax diagram]]%%-]
Changed lines 943-944 from:
!!!!!#58.3 Whole Number
to:
!!!!!#58.3 Whole Number \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#wholeNumber|syntax diagram]]%%-]
Changed lines 949-950 from:
!!!!!#58.4 Built-in Type Or Referential Identifier
to:
!!!!!#58.4 Built-in Type Or Referential Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#builtinOrReferential|syntax diagram]]%%-]
Changed lines 955-956 from:
!!!!!#59 Constraint
to:
!!!!!#59 Constraint \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constraint|syntax diagram]]%%-]
Changed lines 963-964 from:
!!!!!#59.1 Constraint Term
to:
!!!!!#59.1 Constraint Term \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constraintTerm|syntax diagram]]%%-]
Changed lines 972-973 from:
!!!!!#59.2 Bindable Entity Or Property
to:
!!!!!#59.2 Bindable Entity Or Property \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableEntityOrProperty|syntax diagram]]%%-]
Changed lines 980-981 from:
!!!!!#59.3 One-Way Dependency
to:
!!!!!#59.3 One-Way Dependency \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#oneWayDependency|syntax diagram]]%%-]
Changed lines 988-989 from:
!!!!!#59.4 Mutual Dependency Or Exclusion
to:
!!!!!#59.4 Mutual Dependency Or Exclusion \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#mutualDependencyOrExclusion|syntax diagram]]%%-]
Changed lines 996-997 from:
!!!!!#59.5 Term List
to:
!!!!!#59.5 Term List \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#termList|syntax diagram]]%%-]
Changed lines 1004-1005 from:
!!!!!#59.6 Classification Or Flag Identifier
to:
!!!!!#59.6 Classification Or Flag Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#classificationOrFlagIdent|syntax diagram]]%%-]
Changed lines 1010-1011 from:
!!!!!#60 Requirement
to:
!!!!!#60 Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#requirement|syntax diagram]]%%-]
Changed lines 1018-1019 from:
!!!!!#60.1 Condition
to:
!!!!!#60.1 Condition \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#condition|syntax diagram]]%%-]
Changed lines 1026-1027 from:
!!!!!#60.2 Boolean Constant Identifier
to:
!!!!!#60.2 Boolean Constant Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#boolConstIdent|syntax diagram]]%%-]
Changed lines 1032-1033 from:
!!!!!#60.3 Type Requirement
to:
!!!!!#60.3 Type Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#typeRequirement|syntax diagram]]%%-]
Changed lines 1040-1041 from:
!!!!!#61 Constant Requirement
to:
!!!!!#61 Constant Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constRequirement|syntax diagram]]%%-]
Changed lines 1050-1051 from:
!!!!!#61.1 Simple Constant Requirement
to:
!!!!!#61.1 Simple Constant Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#simpleConstRequirement|syntax diagram]]%%-]
Changed lines 1058-1059 from:
!!!!!#61.2 Constant Expression
to:
!!!!!#61.2 Constant Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constExpression|syntax diagram]]%%-]
Changed lines 1064-1065 from:
!!!!!#61.3 Built-in Type Identifier
to:
!!!!!#61.3 Built-in Type Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#builtinTypeIdent|syntax diagram]]%%-]
Changed lines 1070-1071 from:
!!!!!#61.4 Restricted Export
to:
!!!!!#61.4 Restricted Export \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#restrictedExport|syntax diagram]]%%-]
Changed lines 1076-1077 from:
!!!!!#62 Property To Bind To
to:
!!!!!#62 Property To Bind To \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#propertyToBindTo|syntax diagram]]%%-]
Changed lines 1084-1085 from:
!!!!!#62.1 Memory Management Property
to:
!!!!!#62.1 Memory Management Property \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#memMgtProperty|syntax diagram]]%%-]
Changed lines 1092-1093 from:
!!!!!#62.2 Collection Property
to:
!!!!!#62.2 Collection Property \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#collectionProperty|syntax diagram]]%%-]
Changed lines 1100-1101 from:
!!!!!#62.3 Scalar Property
to:
!!!!!#62.3 Scalar Property \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#scalarProperty|syntax diagram]]%%-]
Changed lines 1108-1109 from:
!!!!!#63 Procedure Requirement
to:
!!!!!#63 Procedure Requirement \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#procRequirement|syntax diagram]]%%-]
Changed line 1111 from:
procedureRequirement :
to:
procRequirement :
Changed lines 1118-1119 from:
!!!!!#64 Entity To Bind To
to:
!!!!!#64 Entity To Bind To \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#entityToBindTo|syntax diagram]]%%-]
Changed lines 1126-1127 from:
!!!!!#64.1 Bindable Reserved Word
to:
!!!!!#64.1 Bindable Reserved Word \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableResWord|syntax diagram]]%%-]
Changed lines 1134-1135 from:
!!!!!#64.2 Bindable FOR
to:
!!!!!#64.2 Bindable FOR \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableFor|syntax diagram]]%%-]
Changed lines 1142-1143 from:
!!!!!#64.3 FOR Binding Differentiator
to:
!!!!!#64.3 FOR Binding Differentiator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#forBindingDifferentiator|syntax diagram]]%%-]
Changed lines 1150-1151 from:
!!!!!#64.4 Bindable Operator
to:
!!!!!#64.4 Bindable Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableOperator|syntax diagram]]%%-]
Changed lines 1159-1160 from:
!!!!!#64.5 Unary Minus
to:
!!!!!#64.5 Unary Minus \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#unaryMinus|syntax diagram]]%%-]
Changed lines 1165-1166 from:
!!!!!#64.6 Bindable Macro
to:
!!!!!#64.6 Bindable Macro \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindableMacro|syntax diagram]]%%-]
Changed lines 1174-1175 from:
!!!!!#64.7 Multi-Bindable Macro 1
to:
!!!!!#64.7 Multi-Bindable Macro 1 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#multiBindableMacro1|syntax diagram]]%%-]
Changed lines 1182-1183 from:
!!!!!#64.8 Binding Differentiator 1
to:
!!!!!#64.8 Binding Differentiator 1 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindingDifferentiator1|syntax diagram]]%%-]
Changed lines 1190-1191 from:
!!!!!#64.9 Multi-Bindable Macro 2
to:
!!!!!#64.9 Multi-Bindable Macro 2 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#multiBindableMacro2|syntax diagram]]%%-]
Changed lines 1198-1199 from:
!!!!!#64.10 Binding Differentiator 2
to:
!!!!!#64.10 Binding Differentiator 2 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindingDifferentiator2|syntax diagram]]%%-]
Changed lines 1206-1207 from:
!!!!!#64.11 Multi-Bindable Macro 3
to:
!!!!!#64.11 Multi-Bindable Macro 3 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#multiBindableMacro3|syntax diagram]]%%-]
Changed lines 1214-1215 from:
!!!!!#64.12 Binding Differentiator 3
to:
!!!!!#64.12 Binding Differentiator 3 \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#bindingDifferentiator3|syntax diagram]]%%-]
2015-09-15 05:56 by trijezdci -
Changed lines 2-3 from:
*[[#DefinitionModuleSyntax|Definition Module Syntax]] [[<<]]
*[[
#ImplAndPrgmModuleSyntax|Implementation And Program Module Syntax]] [[<<]]
to:
*[[#DefinitionModuleSyntax|Definition Module Syntax]]
*[[#ImplAndPrgmModuleSyntax|Implementation And Program Module Syntax]]
2015-09-15 05:56 by trijezdci -
Changed line 4 from:
*[[#BlueprintSyntax|BlueprintSyntax]]
to:
*[[#BlueprintSyntax|Blueprint Syntax]]
2015-09-15 05:56 by trijezdci -
Changed line 6 from:
---
to:
----
2015-09-15 05:54 by trijezdci -
Added lines 5-6:

---
2015-09-15 05:54 by trijezdci -
Changed line 1 from:
!!!!!Quick Links
to:
!!!!!Index
2015-09-15 05:53 by trijezdci - anchoring
Changed lines 2-4 from:
[[#DefinitionModuleSyntax|Definition Module Syntax]] [[<<]]
[[#ImplAndPrgmModuleSyntax|Implementation And Program Module Syntax]] [[<<]]
[[#BlueprintSyntax|BlueprintSyntax]]
to:
*[[#DefinitionModuleSyntax|Definition Module Syntax]] [[<<]]
*[[#ImplAndPrgmModuleSyntax|Implementation And Program Module Syntax]] [[<<]]
*[[#BlueprintSyntax|BlueprintSyntax]]
2015-09-15 05:52 by trijezdci - anchoring
Changed lines 2-3 from:
[[#DefinitionModuleSyntax|Definition Module Syntax]]
[[#ImplAndPrgmModuleSyntax|Definition Module Syntax]]
to:
[[#DefinitionModuleSyntax|Definition Module Syntax]] [[<<]]
[[
#ImplAndPrgmModuleSyntax|Implementation And Program Module Syntax]] [[<<]]
Changed line 9 from:
  [[#definitionModule |definitionModule]] | [[#implOrPrgmModule|implOrPrgmModule]] | [[#blueprint|blueprint]]
to:
  definitionModule | implOrPrgmModule | blueprint
2015-09-15 05:51 by trijezdci - anchoring
Added lines 1-5:
!!!!!Quick Links
[[#DefinitionModuleSyntax|Definition Module Syntax]]
[[#ImplAndPrgmModuleSyntax|Definition Module Syntax]]
[[#BlueprintSyntax|BlueprintSyntax]]

Changed line 9 from:
  definitionModule | implOrPrgmModule | blueprint
to:
  [[#definitionModule |definitionModule]] | [[#implOrPrgmModule|implOrPrgmModule]] | [[#blueprint|blueprint]]
Added line 13:
[[#DefinitionModuleSyntax]]
Added line 16:
[[#definitionModule]]
Added line 420:
[[#ImplAndPrgmModuleSyntax]]
Added line 423:
[[#implOrPrgmModule]]
Added line 730:
[[#BlueprintSyntax]]
Added line 733:
[[#blueprint]]
Changed line 1066 from:
@]
to:
@]
2015-09-14 16:20 by trijezdci -
Changed line 132 from:
!!!!!#8.2 Constant Expression
to:
!!!!!#8.2 Restricted Export
Changed line 345 from:
!!!!!#23.2 Constant Qualified Identifier
to:
!!!!!#23.3 Constant Qualified Identifier
2015-09-14 12:48 by trijezdci -
Deleted lines 0-1:
!!! (1) Non-Terminals
2015-09-14 12:47 by trijezdci - moved terminals (ebnf) to separate page
Added lines 1-1057:
!!! (1) Non-Terminals

!!!!!#1 Compilation Unit
[@
compilationUnit :
  definitionModule | implOrPrgmModule | blueprint
  ;
@]

!!!!Definition Module Syntax

!!!!!#2 Definition Module
[@
definitionModule :
  DEFINITION MODULE moduleIdent
  ( '[' blueprintToObey ']' )? ( FOR typeToExtend )? ';'
  (importList ';')* definition*
  END moduleIdent '.'
  ;
@]

!!!!!#2.1 Module Identifier, Blueprint Identifier, Type To Extend
[@
moduleIdent : Ident ;

blueprintIdent : Ident ;

typeToExtend : Ident ;
@]

!!!!!#2.2 Blueprint To Obey
[@
blueprintToObey : blueprintIdent ;
@]

!!!!!#3 Import List
[@
importList :
  libGenDirective | importDirective
  ;
@]

!!!!!#4 Library Generation Directive
[@
libGenDirective :
  GENLIB libIdent FROM template FOR templateParamList END
  ;
@]

!!!!!#4.1 Library Identifier, Template, Placeholder
[@
libIdent : Ident ;

template : Ident ;

placeholder : Ident ;
@]

!!!!!#4.2 Replacement
[@
replacement :
  NumberLiteral | StringLiteral | ChevronText
  ;
@]

!!!!!#5 Import Directive
[@
importDirective :
  FROM ( moduleIdent | ENUM enumTypeIdent )
    IMPORT ( identifiersToImport | importAll ) |
  IMPORT modulesToImport
  ;
@]

!!!!!#5.1 Enumeration Type Identifier
[@
enumTypeIdent : typeIdent ;
@]

!!!!!#5.2 Type Identifier
[@
typeIdent : qualident ;
@]

!!!!!#5.3 Identifiers To Import, Modules To Import
[@
identifiersToImport :
  Ident reExport? ( ',' Ident reExport? )*
  ;

modulesToImport : identifiersToImport ;
@]

!!!!!#5.4 Re-Export
[@
reExport : '+' ;
@]

!!!!!#5.5 Import All
[@
importAll : '*' ;
@]

!!!!!#6 Qualified Identifier
[@
qualident :
  Ident ( '.' Ident )*
  ;
@]

!!!!!#7 Definition
[@
definition :
  CONST ( constDefinition ';' )+ |
  TYPE ( typeDefinition ';' )+ |
  VAR ( variableDeclaration ';' )+ |
  procedureHeader ';'
  ;
@]

!!!!!#8 Constant Definition
[@
constDefinition :
  ( '[' propertyToBindTo ']' | restrictedExport )?
  Ident '=' constExpression
  ;
@]

!!!!!#8.1 Constant Expression
[@
constExpression : expression ;
@]

!!!!!#8.2 Constant Expression
[@
restrictedExport : '*' ;
@]

!!!!!#9 Type Definition
[@
typeDefinition :
  restrictedExport? Ident '=' ( OPAQUE | type )
  ;
@]

!!!!!#10 Variable Declaration
[@
variableDeclaration :
  identList ':' ( range OF )? typeIdent
  ;
@]

!!!!!#11 Identifier List
[@
identList :
    Ident ( ',' Ident )*
    ;
@]

!!!!!#12 Range
[@
range :
  '[' greaterThan? constExpression '..' lessThan? constExpression ']'
  ;
@]

!!!!!#12.1 Greater Than
[@
greaterThan : '>' ;
@]

!!!!!#12.2 Less Than
[@
lessThan : '<' ;
@]

!!!!!#13 Type
[@
type :
  typeIdent | derivedSubType | enumType | setType | arrayType |
  recordType | pointerType | coroutineType | procedureType
  ;
@]

!!!!!#13.1 Derived Sub-Type
[@
derivedSubType :
  ALIAS OF typeIdent |
  range OF ordinalOrScalarType |
  CONST dynamicTypeIdent
  ;
@]

!!!!!#13.2 Ordinal Or Scalar Type, Dynamic Type Identifier
[@
ordinalOrScalarType : typeIdent ;

dynamicTypeIdent : typeIdent ;
@]

!!!!!#14 Enumeration Type
[@
enumType :
  '(' ( '+' enumTypeToExtend )? identList ')'
  ;
@]

!!!!!#14.1 Enumeration Type To Extend
[@
enumTypeToExtend : typeIdent ;
@]

!!!!!#15 Set Type
[@
setType :
  SET OF enumTypeIdent
  ;
@]

!!!!!#16 Array Type
[@
arrayType :
  ARRAY componentCount ( ',' componentCount )* OF typeIdent
  ;
@]

!!!!!#16.1 Component Count
[@
componentCount : constExpression ;
@]

!!!!!#17 Record Type
[@
recordType :
  RECORD
    ( fieldList ( ';' fieldList )* indeterminateField? |
      '(' recTypeToExtend ')' fieldList ( ';' fieldList )* )
  ;
@]

!!!!!#17.1 Field List
[@
fieldList :
  restrictedExport? variableDeclaration
  ;
@]

!!!!!#17.2 Record Type To Extend
[@
recTypeToExtend : typeIdent ;
@]

!!!!!#17.3 Indeterminate Field
[@
indeterminateField :
  '~' Ident ':' ARRAY discriminantFieldIdent OF typeIdent
  ;
@]

!!!!!#17.4 Discriminant Field Ident
[@
discriminantFieldIdent : Ident ;
@]

!!!!!#18 Pointer Type
[@
pointerType :
  POINTER TO CONST? typeIdent
  ;
@]

!!!!!#19 Coroutine Type
[@
coroutineType :
  COROUTINE '(' assocProcType ')'
  ;
@]

!!!!!#19.1 Associated Procedure Type
[@
assocProcType : typeIdent ;
@]

!!!!!#20 Procedure Type
[@
procedureType :
  PROCEDURE ( formalType ( ',' formalType )* )? ( ':' returnedType )?
  ;
@]

!!!!!#20.1 Formal Type
[@
formalType :
  simpleFormalType | attributedFormalType | variadicFormalType
  ;
@]

!!!!!#21 Simple Formal Type
[@
simpleFormalType :
  ( ARRAY OF )? typeIdent | castingFormalType
  ;
@]

!!!!!#21.1 Casting Formal Type
[@
castingFormalType :
  CAST ( ARRAY OF OCTET | addressTypeIdent )
  ;
@]

!!!!!#21.2 Address Type Identifier
[@
addressTypeIdent :
  ( UNSAFE '.' )? ADDRESS
  ;
@]

!!!!!#22 Attributed Formal Type
[@
attributedFormalType :
  ( CONST | NEW | VAR ) ( simpleFormalType | simpleVariadicFormalType )
  ;
@]

!!!!!#23 Simple Variadic Formal Type
[@
simpleVariadicFormalType :
  ARGLIST reqNumOfArgs? OF simpleFormalType terminator?
  ;
@]

!!!!!#23.1 Required Number Of Arguments
[@
reqNumOfArgs :
  greaterThan? constExpression
  ;
@]

!!!!!#23.2 Argument List Terminator
[@
terminator :
  '|' constQualident
  ;
@]

!!!!!#23.2 Constant Qualified Identifier
[@
constQualident : qualident ;
@]

!!!!!#24 Variadic Formal Type
[@
variadicFormalType :
  ARGLIST reqNumOfArgs? OF
    ( '{' nonVariadicFormalType ( ';' nonVariadicFormalType )* '}' |
      simpleFormalType ) terminator?
  ;
@]

!!!!!#25 Non-Variadic Formal Type
[@
nonVariadicFormalType :
  ( CONST | NEW | VAR )? simpleFormalType
  ;
@]

!!!!!#26 Procedure Header
[@
procedureHeader :
  PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' | restrictedExport )?
  procedureSignature
  ;
@]

!!!!!#27 Procedure Signature
[@
procedureSignature :
  Ident ( '(' formalParams ( ';' formalParams )* ')' )? ( ':' returnedType )?
  ;
@]

!!!!!#28 Formal Parameters
[@
formalParams :
  identList ':' ( simpleFormalType | variadicFormalParams ) |
  attributedFormalParams
  ;
@]

!!!!!#29 Attributed Formal Parameters
[@
attributedFormalParams :
  ( CONST | NEW | VAR ) identList ':'
  ( simpleFormalType | simpleVariadicFormalType )
  ;
@]

!!!!!#30 Variadic Formal Parameters
[@
variadicFormalParams :
  ARGLIST reqNumOfArgs? OF
    ( ( '{' nonVariadicFormalParams ( ';' nonVariadicFormalParams )* '}') |
      simpleFormalType ) terminator?
  ;
@]

!!!!!#31 Non-Variadic Formal Parameters
[@
nonVariadicFormalParams :
  ( CONST | NEW | VAR )? identList ':' simpleFormalType
  ;
@]

!!!!Implementation And Program Module Syntax

!!!!!#32 Implementation Or Program Module
[@
implOrPrgmModule :
  IMPLEMENTATION? MODULE moduleIdent ';'
  ( importList ';' )* block moduleIdent '.'
  ;
@]

!!!!!#33 Block
[@
block :
  declaration* ( BEGIN statementSequence )? END
  ;
@]

!!!!!#34 Declaration
[@
declaration :
  CONST ( Ident '=' constExpression ';' )+ |
  TYPE ( Ident '=' type ';' )+ |
  VAR ( variableDeclaration ';' )+ |
  procedureHeader ';' block Ident ';'
  ;
@]

!!!!!#35 Statement Sequence
[@
statementSequence :
  statement ( ';' statement )*
  ;
@]

!!!!!#36 Statement
[@
statement :
  memMgtOperation | updateOrProcCall | ifStatement | caseStatement |
  loopStatement | whileStatement | repeatStatement | forStatement |
  ( RETURN | YIELD ) expression? | EXIT
  ;
@]

!!!!!#37 Memory Management Operation
[@
memMgtOperation :
  NEW designator ( OF initSize | := initValue )? |
  RETAIN designator |
  RELEASE designator
  ;
@]

!!!!!#37.1 Initial Size, Initial Value
[@
initSize : expression ;

initValue : expression ;
@]

!!!!!#38 Update Or Procedure Call
[@
updateOrProcCall :
  designator ( ':=' expression | incOrDecSuffix | actualParameters )? |
  COPY designator ':=' expression
  ;
@]

!!!!!#38.1 Increment Or Decrement Suffix
[@
incOrDecSuffix :
  '++' | '--'
  ;
@]

!!!!!#39 IF Statement
[@
ifStatement :
  IF boolExpression THEN statementSequence
  ( ELSIF boolExpression THEN statementSequence )?
  ( ELSE statementSequence )?
  END
  ;
@]

!!!!!#39.1 Boolean Expression
[@
boolExpression : expression ;
@]

!!!!!#40 CASE Statement
[@
caseStatement :
  CASE expression OF ( '|' case  )+ ( ELSE statementSequence )? END
  ;
@]

!!!!!#40.1 Case
[@
case :
  caseLabels ( ',' caseLabels )* ':' statementSequence
  ;
@]

!!!!!#40.2 Case Labels
[@
caseLabels :
  constExpression ( '..' constExpression )?
  ;
@]

!!!!!#41 LOOP Statement
[@
loopStatement :
  LOOP statementSequence END
  ;
@]

!!!!!#42 WHILE Statement
[@
whileStatement :
  WHILE boolExpression DO statementSequence END
  ;
@]

!!!!!#43 REPEAT Statement
[@
repeatStatement :
  REPEAT statementSequence UNTIL boolExpression
  ;
@]

!!!!!#44 FOR Statement
[@
forStatement :
  FOR forLoopVariants IN iterableEntity DO statementSequence END
  ;
@]

!!!!!#44.1 FOR Loop Variants
[@
forLoopVariants :
  accessor ascOrDesc? ( ',' value )? |
  VALUE value ascOrDesc?
  ;
@]

!!!!!#44.2 Accessor, Value
[@
accessor : Ident ;

value : Ident ;
@]

!!!!!#44.3 Iterable Entity
[@
iterableEntity :
  designator | range OF ordinalType
  ;
@]

!!!!!#44.4 Ascender Or Descender
[@
ascOrDesc : incOrDecSuffix ;
@]

!!!!!#44.5 Ordinal Type
[@
ordinalType : typeIdent ;
@]

!!!!!#45 Designator
[@
designator :
  qualident designatorTail?
  ;
@]

!!!!!#45.1 Designator Tail
[@
designatorTail :
  ( ( '[' exprListOrSlice ']' | '^' ) ( '.' Ident )* )+
  ;
@]

!!!!!#45.2 Expression List Or Slice
[@
exprListOrSlice :
  expression ( ( ',' expression )* | '..' expression? )
  ;
@]

!!!!!#46 Expression
[@
expression :
  simpleExpression ( operL1 simpleExpression )?
  ;
@]

!!!!!#46.1 Level-1 Operator
[@
operL1 :
  '=' | '#' | '<' | '<=' | '>' | '>=' | IN | concatOp | identityOp
  ;
@]

!!!!!#46.2 Concatenation Operator
[@
concatOp : '&' ;
@]

!!!!!#46.3 Identity Operator
[@
identityOp : '==' ;
@]

!!!!!#47 Simple Expression
[@
simpleExpression :
  ( '+' | '-' )? term ( operL2 term )*
  ;
@]

!!!!!#47.1 Level-2 Operator
[@
operL2 :
  '+' | '-' | OR
  ;
@]

!!!!!#48 Term
[@
term :
  factorOrNegation ( operL3 factorOrNegation )*
  ;
@]

!!!!!#48.1 Level-3 Operator
[@
operL3 :
  '*' | '/' | DIV | MOD | AND | setDiffOp | dotProductOp
  ;
@]

!!!!!#48.2 Set Difference Operator
[@
setDiffOp : '\' ;
@]

!!!!!#48.3 Dot Product Operator
[@
dotProductOp : '*.' ;
@]

!!!!!#49 Factor Or Negation
[@
factorOrNegation :
  NOT? factorOrTypeConv
  ;
@]

!!!!!#50 Factor Or Type Conversion
[@
factorOrTypeConv :
  factor ( '::' typeIdent )?
  ;
@]

!!!!!#51 Factor
[@
factor :
  NumberLiteral | StringLiteral | structuredValue |
  '(' expression ')' | designator actualParameters?
  ;
@]

!!!!!#52 Actual Parameters
[@
actualParameters :
  '(' expressionList ')'
  ;
@]

!!!!!#53 Expression List
[@
expressionList :
  expression ( ',' expression )*
  ;
@]

!!!!!#54 Structured Value
[@
structuredValue :
  '{' valueComponent ( ',' valueComponent )* '}'
  ;
@]

!!!!!#54.1 Value Component
[@
valueComponent :
  constExpression (( BY | '..' )? constExpression )? | runtimeExpression
  ;
@]

!!!!!#54.2 Runtime Expression
[@
runtimeExpression : expression ;
@]

!!!!Blueprint Syntax

!!!!!#55 Blueprint
[@
blueprint :
  BLUEPRINT blueprintIdent ( '[' blueprintToRefine ']' )?
  ( FOR blueprintForTypeToExtend )? ';' ( REFERENTIAL identList ';' )?
  MODULE TYPE '=' ( typeClassification ( ';' literalCompatibility)? | NONE ) ';'
  ( constraint ';' )* ( requirement ';' )* END blueprintIdent '.'
  ;
@]

!!!!!#55.1 Blueprint Identifier
[@
blueprintIdent : Ident ;
@]

!!!!!#55.2 Blueprint To Refine, Blueprint For Type To Extend
[@
blueprintToRefine : blueprintIdent ;

blueprintForTypeToExtend : blueprintIdent ;
@]

!!!!!#56 Type Classification
[@
typeClassification :
  '{' determinedClassification ( ';' refinableClassification )? ( ';' '*' )? '}'
  | '*'
  ;
@]

!!!!!#56.1 Determined Classification
[@
determinedClassification :
  classificationIdent ( ',' classificationIdent )*
  ;
@]

!!!!!#56.2 Refinable Classification
[@
refinableClassification :
  '~' classificationIdent ( ',' '~' classificationIdent )*
  ;
@]

!!!!!#56.3 Classification Identifier
[@
classificationIdent : Ident ;
@]

!!!!!#57 Literal Compatibility
[@
literalCompatibility :
  TLITERAL '=' protoLiteral ( '|' protoLiteral )*
  ;
@]

!!!!!#57.1 Proto-Literal
[@
protoLiteral :
  protoLiteralIdent | structuredProtoLiteral
  ;
@]

!!!!!#57.2 Proto-Literal Identifier
[@
protoLiteralIdent : Ident ;
@]

!!!!!#58 Structured Proto-Literal
[@
structuredProtoLiteral :
  '{'
    ( ARGLIST reqValueCount? OF
        ( '{' builtinOrReferential ( ',' builtinOrReferential )* '}' |
          builtinOrReferential ) ) |
    builtinOrReferential '}'
  ;
@]

!!!!!#58.1 Required Value Count
[@
reqValueCount :
  greaterThan? wholeNumber
  ;
@]

!!!!!#58.2 Greater Than
[@
greaterThan : '>' ;
@]

!!!!!#58.3 Whole Number
[@
wholeNumber : NumberLiteral ;
@]

!!!!!#58.4 Built-in Type Or Referential Identifier
[@
builtinOrReferential : Ident ;
@]

!!!!!#59 Constraint
[@
constraint :
  constraintTerm ( oneWayDependency | mutualDependencyOrExclusion )
  ;
@]

!!!!!#59.1 Constraint Term
[@
constraintTerm :
  '(' classificationOrFlagIdent ')' |
  '[' bindableEntityOrProperty ']'
  ;
@]

!!!!!#59.2 Bindable Entity Or Property
[@
bindableEntityOrProperty :
  entityToBindTo | propertyToBindTo
  ;
@]

!!!!!#59.3 One-Way Dependency
[@
oneWayDependency :
  '->' termList ( '|' termList )*
  ;
@]

!!!!!#59.4 Mutual Dependency Or Exclusion
[@
mutualDependencyOrExclusion :
  ( '<>' | '><' ) termList
  ;
@]

!!!!!#59.5 Term List
[@
termList :
  constraintTerm ( ',' constraintTerm )*
  ;
@]

!!!!!#59.6 Classification Or Flag Identifier
[@
classificationOrFlagIdent : Ident ;
@]

!!!!!#60 Requirement
[@
requirement :
  condition '->' ( typeRequirement | constRequirement | procRequirement )
  ;
@]

!!!!!#60.1 Condition
[@
condition :
  NOT? boolConstIdent
  ;
@]

!!!!!#60.2 Boolean Constant Identifier
[@
boolConstIdent : Ident ;
@]

!!!!!#60.3 Type Requirement
[@
typeRequirement :
  TYPE typeDefinition
  ;
@]

!!!!!#61 Constant Requirement
[@
constRequirement :
  CONST
    ( '[' propertyToBindTo ']' ( simpleConstRequirement | '=' NONE ) |
      restrictedExport? simpleConstRequirement )
  ;
@]

!!!!!#61.1 Simple Constant Requirement
[@
simpleConstRequirement :
  Ident ( '=' constExpression | ':' builtinTypeIdent )
  ;
@]

!!!!!#61.2 Constant Expression
[@
constExpression : expression ;
@]

!!!!!#61.3 Built-in Type Identifier
[@
builtinTypeIdent : Ident ;
@]

!!!!!#61.4 Restricted Export
[@
restrictedExport : '*' ;
@]

!!!!!#62 Property To Bind To
[@
propertyToBindTo :
  memMgtProperty | collectionProperty | scalarProperty | TFLAGS
  ;
@]

!!!!!#62.1 Memory Management Property
[@
memMgtProperty :
  TDYN | TREFC
  ;
@]

!!!!!#62.2 Collection Property
[@
collectionProperty :
  TORDERED | TSORTED | TLIMIT
  ;
@]

!!!!!#62.3 Scalar Property
[@
scalarProperty :
  TSCALAR | TMAX | TMIN
  ;
@]

!!!!!#63 Procedure Requirement
[@
procedureRequirement :
  PROCEDURE
    ( '[' ( entityToBindTo | COROUTINE ) ']' ( procedureSignature | '=' NONE ) |
      restrictedExport? procedureSignature )
  ;
@]

!!!!!#64 Entity To Bind To
[@
entityToBindTo :
  bindableResWord | bindableOperator | bindableMacro
  ;
@]

!!!!!#64.1 Bindable Reserved Word
[@
bindableResWord :
  NEW | RETAIN | RELEASE | COPY | bindableFor
  ;
@]

!!!!!#64.2 Bindable FOR
[@
bindableFor :
  FOR forBindingDifferentiator?
  ;
@]

!!!!!#64.3 FOR Binding Differentiator
[@
forBindingDifferentiator :
  '|' ( '++' | '--' )
  ;
@]

!!!!!#64.4 Bindable Operator
[@
bindableOperator :
  '+' | '-' | '*' | '/' | '\' | '=' | '<' | '>' | '*.' | '::'
  IN | DIV | MOD | unaryMinus
  ;
@]

!!!!!#64.5 Unary Minus
[@
unaryMinus : '+/-' ;
@]

!!!!!#64.6 Bindable Macro
[@
bindableMacro :
  ABS | LENGTH | EXISTS | SEEK | SUBSET | READ | READNEW | WRITE | WRITEF |
  SXF | VAL | multiBindableMacro1 | multiBindableMacro2 | multiBindableMacro3
  ;
@]

!!!!!#64.7 Multi-Bindable Macro 1
[@
multiBindableMacro1 :
  ( COUNT | VALUE ) bindingDifferentiator1?
  ;
@]

!!!!!#64.8 Binding Differentiator 1
[@
bindingDifferentiator1 :
  '|' '#'
  ;
@]

!!!!!#64.9 Multi-Bindable Macro 2
[@
multiBindableMacro2 :
  ( STORE | INSERT | REMOVE ) bindingDifferentiator2?
  ;
@]

!!!!!#64.10 Binding Differentiator 2
[@
bindingDifferentiator2 :
  '|' ( ',' | '#' | '*' )
  ;
@]

!!!!!#64.11 Multi-Bindable Macro 3
[@
multiBindableMacro3 :
  APPEND bindingDifferentiator3?
  ;
@]

!!!!!#64.12 Binding Differentiator 3
[@
bindingDifferentiator3 :
  '|' ( ',' | '*' )
  ;
@]