Site Menu Project Specification Implementation Recommendations Reference Needs Updating Work in Progress Wastebasket Wiki Manual |
Non TerminalsEBNF.NonTerminals HistoryHide minor edits - Show changes to markup 2015-10-09 18:57
by -
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 -
Changed line 599 from:
localAliases := identList | '*' ; to:
localAliases := privateAliases ; 2015-10-09 18:51
by -
Changed line 72 from:
to:
#3.2 More Import/Re-Export Libraries \Changed lines 543-545 from:
#32 Block syntax diagramto:
#31 Private Import syntax diagramChanged lines 547-548 from:
block := declaration* ( BEGIN statementSequence )? END to:
privateImport := IMPORT importLib ( ',' moreImportLibs | ALIAS privateAliases )? Changed lines 552-554 from:
#33 Declaration syntax diagramto:
#31.1 Import Library syntax diagramChanged lines 556-561 from:
declaration := CONST ( Ident '=' constExpression ';' )+ | TYPE ( typeDeclaration ';' )+ | VAR ( variableDeclaration ';' )+ | procedureHeader ';' block Ident ';' ; to:
importLib := Ident ; @] #31.2 More Import Libraries syntax diagrammoreImportLibs := identList ; #31.3 Private Aliases syntax diagramprivateAliases := identList | '*' ;
#32 Block syntax diagramblock := declaration* ( BEGIN statementSequence )? END ;
#33 Declaration syntax diagramdeclaration := CONST ( Ident '=' constExpression ';' )+ | TYPE ( typeDeclaration ';' )+ | VAR ( variableDeclaration ';' )+ | ALIAS localAliases FOR origin ';' procedureHeader ';' block Ident ';' ; #33.1 Local Aliases syntax diagramlocalAliases := identList | '*' ; #33.2 Origin syntax diagram[@ origin := ( Ident '.' )+ '*' ; 2015-10-09 18:42
by -
Changed line 29 from:
( importList ';' )* definition* to:
( import ';' )* definition* Changed lines 52-54 from:
#3 Import List syntax diagramto:
#3 Import syntax diagramChanged lines 56-57 from:
importList := libGenDirective | importDirective to:
import := IMPORT impexLib ( ',' moreImpexLibs | ALIAS unqualifiedAliases )? | libGenDirective Changed lines 62-64 from:
#4 Library Generation Directive syntax diagramto:
#3.1 Import/Re-Export Library syntax diagramChanged lines 66-67 from:
libGenDirective := GENLIB libIdent FROM template FOR templateParamList END to:
impexLib := Ident reExport? Changed lines 71-73 from:
#4.1 Library Identifier, Template, Placeholder syntax diagramto:
#3.2 M Ore? Import/Re-Export Libraries syntax diagramChanged lines 75-79 from:
libIdent := Ident ; template := Ident ; placeholder := Ident ; to:
moreImpexLibs := impexLib ( ',' impexLib )* ; Changed lines 80-82 from:
#4.2 Replacement syntax diagramto:
#3.3 Re-Export Tag syntax diagramChanged lines 84-86 from:
replacement := Number Literal? | String Literal? | Chevron Text? ; to:
reExport := '+' ; Changed lines 87-89 from:
#5 Import Directive syntax diagramto:
#3.4 Unqualified Aliases syntax diagramChanged lines 91-95 from:
importDirective := FROM ( moduleIdent | ENUM enumTypeIdent ) IMPORT ( identifiersToImport | importAll ) | IMPORT modulesToImport ; to:
unqualifiedAliases := identList ; Changed lines 94-96 from:
#5.1 Enumeration Type Identifier syntax diagramto:
#4 Library Generation Directive syntax diagramChanged lines 98-100 from:
enumTypeIdent := typeIdent ; to:
libGenDirective := GENLIB libIdent FROM template FOR templateParamList END ; Changed lines 103-105 from:
#5.2 Type Identifier syntax diagramto:
#4.1 Library Identifier, Template, Placeholder syntax diagramChanged lines 107-111 from:
typeIdent := qualident ; to:
libIdent := Ident ; template := Ident ; placeholder := Ident ; Changed lines 114-116 from:
#5.3 Identifiers To Import, Modules To Import syntax diagramto:
#4.2 Replacement syntax diagramChanged lines 118-119 from:
identifiersToImport := Ident reExport? ( ',' Ident reExport? )* to:
replacement := Number Literal? | String Literal? | Chevron Text? Deleted lines 120-121:
modulesToImport := identifiersToImport ; Changed lines 123-125 from:
#5.4 Re-Export syntax diagramto:
#5 Identifier List syntax diagramChanged lines 127-129 from:
reExport := '+' ; to:
identList := Ident ( ',' Ident )* ; Changed lines 132-134 from:
#5.5 Import All syntax diagramto:
#6 Definition syntax diagramChanged lines 136-141 from:
importAll := '*' ; to:
definition := CONST ( constDefinition ';' )+ | TYPE ( typeDefinition ';' )+ | VAR ( identList '=' typeIdent ';' )+ | procedureHeader ';' ; Changed lines 144-146 from:
#6 Qualified Identifier syntax diagramto:
#6.1 Type Identifier syntax diagramChanged lines 148-150 from:
qualident := Ident ( '.' Ident )* ; to:
typeIdent := qualident ; Changed lines 151-153 from:
#7 Definition syntax diagramto:
#7 Constant Definition syntax diagramChanged lines 155-159 from:
definition := CONST ( constDefinition ';' )+ | TYPE ( typeDefinition ';' )+ | VAR ( identList '=' typeIdent ';' )+ | procedureHeader ';' to:
constDefinition := ( '[' propertyToBindTo ']' | restrictedExport )? Ident '=' constExpression Changed lines 161-163 from:
#8 Constant Definition syntax diagramto:
#7.1 Constant Expression syntax diagramChanged lines 165-168 from:
constDefinition := ( '[' propertyToBindTo ']' | restrictedExport )? Ident '=' constExpression ; to:
constExpression := expression ; Changed lines 168-170 from:
#8.1 Constant Expression syntax diagramto:
#7.2 Restricted Export syntax diagramChanged line 172 from:
constExpression := expression ; to:
restrictedExport := '*' ; Changed lines 175-177 from:
#8.2 Restricted Export syntax diagramto:
#8 Type Definition syntax diagramChanged lines 179-181 from:
restrictedExport := '*' ; to:
typeDefinition := restrictedExport? Ident '=' ( type | OPAQUE ) ; Changed lines 184-186 from:
#9 Type Definition syntax diagramto:
#9 Qualified Identifier syntax diagramChanged lines 188-189 from:
typeDefinition := restrictedExport? Ident '=' ( OPAQUE | type ) to:
qualident := Ident ( '.' Ident )* Changed lines 193-195 from:
#10 Identifier List syntax diagramto:
#10 Type syntax diagramChanged lines 197-199 from:
identList := Ident ( ',' Ident )* ; to:
type := derivedType | equivType | subrangeType | enumType | setType | arrayType | recordType | pointerType | coroutineType | procedureType ; Changed lines 203-205 from:
#11 Type syntax diagramto:
#10.1 Derived Type syntax diagramChanged lines 207-210 from:
type := derivedType | equivType | subrangeType | enumType | setType | arrayType | recordType | pointerType | coroutineType | procedureType ; to:
derivedType := typeIdent ; Changed lines 210-212 from:
#11.1 Derived Type syntax diagramto:
#10.2 Equivalence Type syntax diagramChanged lines 214-216 from:
derivedType := typeIdent ; to:
equivType := ALIAS OF typeIdent | CONST dynamicTypeIdent ; Changed lines 219-221 from:
#11.2 Equivalence Type syntax diagramto:
#10.3 Dynamic Type Identifier syntax diagramChanged lines 223-225 from:
equivType := ALIAS OF typeIdent | CONST dynamicTypeIdent ; to:
dynamicTypeIdent := typeIdent ; Changed lines 226-228 from:
#11.3 Dynamic Type Identifier syntax diagramto:
#11 Subrange Type syntax diagramChanged lines 230-232 from:
dynamicTypeIdent := typeIdent ; to:
subrangeType := range OF ordinalOrScalarType ; Changed lines 235-237 from:
#12 Subrange Type syntax diagramto:
#11.1 Range syntax diagramChanged lines 239-240 from:
subrangeType := range OF ordinalOrScalarType to:
range := '[' greaterThan? constExpression '..' lessThan? constExpression ']' Changed lines 244-246 from:
#12.1 Range syntax diagramto:
#11.2 Greater Than syntax diagramChanged lines 248-250 from:
range := '[' greaterThan? constExpression '..' lessThan? constExpression ']' ; to:
greaterThan := '>' ; Changed lines 251-253 from:
#12.2 Greater Than syntax diagramto:
#11.3 Less Than syntax diagramChanged line 255 from:
greaterThan := '>' ; to:
lessThan := '<' ; Changed lines 258-260 from:
#12.3 Less Than syntax diagramto:
#11.4 Ordinal Or Scalar Type syntax diagramChanged line 262 from:
lessThan := '<' ; to:
ordinalOrScalarType := typeIdent ; Changed lines 265-267 from:
#12.4 Ordinal Or Scalar Type syntax diagramto:
#12 Enumeration Type syntax diagramChanged lines 269-271 from:
ordinalOrScalarType := typeIdent ; to:
enumType := '(' ( '+' enumTypeToExtend )? identList ')' ; Changed lines 274-276 from:
#13 Enumeration Type syntax diagramto:
#12.1 Enumeration Type To Extend syntax diagramChanged lines 278-280 from:
enumType := '(' ( '+' enumTypeToExtend )? identList ')' ; to:
enumTypeToExtend := typeIdent ; Changed lines 281-283 from:
#13.1 Enumeration Type To Extend syntax diagramto:
#12.2 Enumeration Type Identifier syntax diagramChanged 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 -
Changed line 29 from:
(importList ';')* definition* to:
( importList ';' )* definition* 2015-10-04 05:46
by -
Changed line 156 from:
VAR ( variableDeclaration ';' )+ | to:
VAR ( identList '=' typeIdent ';' )+ | Changed lines 194-196 from:
#10 Variable Declaration syntax diagramto:
#10 Identifier List syntax diagramChanged lines 198-200 from:
variableDeclaration := identList ':' ( range OF )? typeIdent ; to:
identList := Ident ( ',' Ident )* ; Changed lines 203-205 from:
#11 Identifier List syntax diagramto:
#11 Type syntax diagramChanged lines 207-209 from:
identList := Ident ( ',' Ident )* ; to:
type := derivedType | equivType | subrangeType | enumType | setType | arrayType | recordType | pointerType | coroutineType | procedureType ; Changed lines 213-215 from:
#12 Range syntax diagramto:
#11.1 Derived Type syntax diagramChanged lines 217-219 from:
range := '[' greaterThan? constExpression '..' lessThan? constExpression ']' ; to:
derivedType := typeIdent ; Changed lines 220-222 from:
#12.1 Greater Than syntax diagramto:
#11.2 Equivalence Type syntax diagramChanged lines 224-226 from:
greaterThan := '>' ; to:
equivType := ALIAS OF typeIdent | CONST dynamicTypeIdent ; Changed lines 229-231 from:
#12.2 Less Than syntax diagramto:
#11.3 Dynamic Type Identifier syntax diagramChanged line 233 from:
lessThan := '<' ; to:
dynamicTypeIdent := typeIdent ; Changed lines 236-238 from:
#13 Type syntax diagramto:
#12 Subrange Type syntax diagramChanged 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:
#13.1 Derived Type syntax diagramto:
#12.1 Range syntax diagramChanged lines 249-251 from:
derivedType := typeIdent ; to:
range := '[' greaterThan? constExpression '..' lessThan? constExpression ']' ; Changed lines 254-256 from:
#13.2 Equivalence Type syntax diagramto:
#12.2 Greater Than syntax diagramChanged lines 258-260 from:
equivType := ALIAS OF typeIdent | CONST dynamicTypeIdent ; to:
greaterThan := '>' ; Changed lines 261-263 from:
#13.3 Subrange Type syntax diagramto:
#12.3 Less Than syntax diagramChanged lines 265-267 from:
subrangeType := range OF ordinalOrScalarType ; to:
lessThan := '<' ; Changed lines 268-269 from:
#13.4 Dynamic Type Identifier, Ordinal Or Scalar Type \to:
#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:
@]
#35 Variable Declaration syntax diagram[@ variableDeclaration := identList ':' ( ( ARRAY valueCount OF )? typeIdent | subrangeType ) ; 2015-10-04 05:34
by -
Changed lines 937-938 from:
Number Literal? | String Literal? | structuredValue | designatorOrFuncCall | '(' expression ')' to:
Number Literal? | String Literal? | structuredValue | designatorOrFuncCall | '(' expression ')' Changed line 947 from:
designator '(' expressionList? ')' to:
designator ( '(' expressionList? ')' )? 2015-10-04 05:33
by -
Changed line 937 from:
Number Literal? | String Literal? | structuredValue | functionCall | '(' expression ')' to:
Number Literal? | String Literal? | structuredValue | designatorOrFuncCall | '(' expression ')' Changed lines 941-943 from:
#54.1 Function Call syntax diagramto:
#54.1 Designator Or Function Call syntax diagramChanged line 945 from:
functionCall := to:
designatorOrFuncCall := 2015-10-04 05:20
by -
Changed line 862 from:
( '+' | '-' )? term ( operL2 term )* to:
term ( operL2 term )* | '-' simpleFactor 2015-09-28 07:22
by -
Changed lines 257-258 from:
ALIAS OF typeIdent | CONST dynamicTypeIdent to:
ALIAS OF typeIdent | CONST dynamicTypeIdent 2015-09-28 07:21
by -
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:
#13.1 Sub-Type syntax diagramto:
#13.1 Derived Type syntax diagramChanged lines 249-253 from:
subType := ALIAS OF typeIdent | CONST dynamicTypeIdent | range OF ordinalOrScalarType ; to:
derivedType := typeIdent ; Changed lines 252-254 from:
#13.2 Dynamic Type Identifier, Ordinal Or Scalar Type syntax diagramto:
#13.2 Equivalence Type syntax diagramChanged lines 256-258 from:
dynamicTypeIdent := typeIdent ; ordinalOrScalarType := typeIdent ; to:
equivType := ALIAS OF typeIdent | CONST dynamicTypeIdent ; Changed lines 262-264 from:
#14 Enumeration Type syntax diagramto:
#13.3 Subrange Type syntax diagramChanged lines 266-267 from:
enumType := '(' ( '+' enumTypeToExtend )? identList ')' to:
subrangeType := range OF ordinalOrScalarType Changed lines 271-273 from:
#14.1 Enumeration Type To Extend syntax diagramto:
#13.4 Dynamic Type Identifier, Ordinal Or Scalar Type syntax diagramChanged lines 275-277 from:
enumTypeToExtend := typeIdent ; to:
dynamicTypeIdent := typeIdent ; ordinalOrScalarType := typeIdent ; Changed lines 280-282 from:
#15 Set Type syntax diagramto:
#14 Enumeration Type syntax diagramChanged lines 284-285 from:
setType := SET OF enumTypeIdent to:
enumType := '(' ( '+' enumTypeToExtend )? identList ')' Changed lines 289-291 from:
#16 Array Type syntax diagramto:
#14.1 Enumeration Type To Extend syntax diagramChanged lines 293-295 from:
arrayType := ARRAY lessThan? valueCount ( ',' valueCount )* OF typeIdent ; to:
enumTypeToExtend := typeIdent ; Changed lines 296-298 from:
#16.1 Value Count syntax diagramto:
#15 Set Type syntax diagramChanged lines 300-302 from:
valueCount := constExpression ; to:
setType := SET OF enumTypeIdent ; Changed lines 305-307 from:
#17 Record Type syntax diagramto:
#16 Array Type syntax diagramChanged lines 309-310 from:
recordType := RECORD ( '(' recTypeToExtend ')' )? fieldList ( ';' fieldList )* ) to:
arrayType := ARRAY lessThan? valueCount ( ',' valueCount )* OF typeIdent Changed lines 314-316 from:
#17.1 Field List syntax diagramto:
#16.1 Value Count syntax diagramChanged lines 318-320 from:
fieldList : restrictedExport? variableDeclaration ( '=' constExpression )? ; to:
valueCount := constExpression ; Changed lines 321-323 from:
#17.2 Record Type To Extend syntax diagramto:
#17 Record Type syntax diagramChanged lines 325-327 from:
recTypeToExtend := typeIdent ; to:
recordType := RECORD ( '(' recTypeToExtend ')' )? fieldList ( ';' fieldList )* ) ; Changed lines 330-332 from:
#18 Pointer Type syntax diagramto:
#17.1 Field List syntax diagramChanged lines 334-335 from:
pointerType := POINTER TO CONST? typeIdent to:
fieldList : restrictedExport? variableDeclaration ( '=' constExpression )? Changed lines 339-341 from:
#19 Coroutine Type syntax diagramto:
#17.2 Record Type To Extend syntax diagramChanged lines 343-345 from:
coroutineType := COROUTINE '(' assocProcType ')' ; to:
recTypeToExtend := typeIdent ; Changed lines 346-348 from:
#19.1 Associated Procedure Type syntax diagramto:
#18 Pointer Type syntax diagramChanged lines 350-352 from:
assocProcType : typeIdent ; to:
pointerType := POINTER TO CONST? typeIdent ; Changed lines 355-357 from:
#20 Procedure Type syntax diagramto:
#19 Coroutine Type syntax diagramChanged lines 359-360 from:
procedureType := PROCEDURE ( formalType ( ',' formalType )* )? ( ':' returnedType )? to:
coroutineType := COROUTINE '(' assocProcType ')' Changed lines 364-366 from:
#20.1 Formal Type syntax diagramto:
#19.1 Associated Procedure Type syntax diagramChanged lines 368-370 from:
formalType := simpleFormalType | attributedFormalType | variadicFormalType ; to:
assocProcType : typeIdent ; Changed lines 371-373 from:
#21 Simple Formal Type syntax diagramto:
#20 Procedure Type syntax diagramChanged lines 375-376 from:
simpleFormalType := ( ARRAY OF )? typeIdent | castingFormalType to:
procedureType := PROCEDURE ( formalType ( ',' formalType )* )? ( ':' returnedType )? Changed lines 380-382 from:
#21.1 Casting Formal Type syntax diagramto:
#20.1 Formal Type syntax diagramChanged lines 384-385 from:
castingFormalType := CAST ( ARRAY OF OCTET | addressTypeIdent ) to:
formalType := simpleFormalType | attributedFormalType | variadicFormalType Changed lines 389-391 from:
#21.2 Address Type Identifier syntax diagramto:
#21 Simple Formal Type syntax diagramChanged lines 393-394 from:
addressTypeIdent := ( UNSAFE '.' )? ADDRESS to:
simpleFormalType := ( ARRAY OF )? typeIdent | castingFormalType Changed lines 398-400 from:
#22 Attributed Formal Type syntax diagramto:
#21.1 Casting Formal Type syntax diagramChanged lines 402-403 from:
attributedFormalType := ( CONST | NEW | VAR ) ( simpleFormalType | simpleVariadicFormalType ) to:
castingFormalType := CAST ( ARRAY OF OCTET | addressTypeIdent ) Changed lines 407-409 from:
#23 Simple Variadic Formal Type syntax diagramto:
#21.2 Address Type Identifier syntax diagramChanged lines 411-412 from:
simpleVariadicFormalType := ARGLIST reqNumOfArgs? OF simpleFormalType terminator? to:
addressTypeIdent := ( UNSAFE '.' )? ADDRESS Changed lines 416-418 from:
#23.1 Required Number Of Arguments syntax diagramto:
#22 Attributed Formal Type syntax diagramChanged lines 420-421 from:
reqNumOfArgs := greaterThan? constExpression to:
attributedFormalType := ( CONST | NEW | VAR ) ( simpleFormalType | simpleVariadicFormalType ) Changed lines 425-427 from:
#23.2 Argument List Terminator syntax diagramto:
#23 Simple Variadic Formal Type syntax diagramChanged lines 429-430 from:
terminator := '|' constQualident to:
simpleVariadicFormalType := ARGLIST reqNumOfArgs? OF simpleFormalType terminator? Changed lines 434-436 from:
#23.3 Constant Qualified Identifier syntax diagramto:
#23.1 Required Number Of Arguments syntax diagramChanged lines 438-440 from:
constQualident := qualident ; to:
reqNumOfArgs := greaterThan? constExpression ; Changed lines 443-445 from:
#24 Variadic Formal Type syntax diagramto:
#23.2 Argument List Terminator syntax diagramChanged lines 447-450 from:
variadicFormalType := ARGLIST reqNumOfArgs? OF ( '{' nonVariadicFormalType ( ';' nonVariadicFormalType )* '}' | simpleFormalType ) terminator? to:
terminator := '|' constQualident Changed lines 452-454 from:
#25 Non-Variadic Formal Type syntax diagramto:
#23.3 Constant Qualified Identifier syntax diagramChanged lines 456-458 from:
nonVariadicFormalType := ( CONST | NEW | VAR )? simpleFormalType ; to:
constQualident := qualident ; Changed lines 459-461 from:
#26 Procedure Header syntax diagramto:
#24 Variadic Formal Type syntax diagramChanged lines 463-465 from:
procedureHeader := PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' | restrictedExport )? procedureSignature to:
variadicFormalType := ARGLIST reqNumOfArgs? OF ( '{' nonVariadicFormalType ( ';' nonVariadicFormalType )* '}' | simpleFormalType ) terminator? Changed lines 470-472 from:
#27 Procedure Signature syntax diagramto:
#25 Non-Variadic Formal Type syntax diagramChanged lines 474-475 from:
procedureSignature := Ident ( '(' formalParams ( ';' formalParams )* ')' )? ( ':' returnedType )? to:
nonVariadicFormalType := ( CONST | NEW | VAR )? simpleFormalType Changed lines 479-481 from:
#28 Formal Parameters syntax diagramto:
#26 Procedure Header syntax diagramChanged lines 483-485 from:
formalParams := identList ':' ( simpleFormalType | variadicFormalParams ) | attributedFormalParams to:
procedureHeader := PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' | restrictedExport )? procedureSignature Changed lines 489-491 from:
#29 Attributed Formal Parameters syntax diagramto:
#27 Procedure Signature syntax diagramChanged lines 493-495 from:
attributedFormalParams := ( CONST | NEW | VAR ) identList ':' ( simpleFormalType | simpleVariadicFormalType ) to:
procedureSignature := Ident ( '(' formalParams ( ';' formalParams )* ')' )? ( ':' returnedType )? Changed lines 498-500 from:
#30 Variadic Formal Parameters syntax diagramto:
#28 Formal Parameters syntax diagramChanged lines 502-505 from:
variadicFormalParams := ARGLIST reqNumOfArgs? OF ( ( '{' nonVariadicFormalParams ( ';' nonVariadicFormalParams )* '}') | simpleFormalType ) terminator? to:
formalParams := identList ':' ( simpleFormalType | variadicFormalParams ) | attributedFormalParams Changed lines 508-510 from:
#31 Non-Variadic Formal Parameters syntax diagramto:
#29 Attributed Formal Parameters syntax diagramChanged lines 512-513 from:
nonVariadicFormalParams := ( CONST | NEW | VAR )? identList ':' simpleFormalType to:
attributedFormalParams := ( CONST | NEW | VAR ) identList ':' ( simpleFormalType | simpleVariadicFormalType ) Changed lines 518-523 from:
to:
#30 Variadic Formal Parameters syntax diagramChanged 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:
#33 Block syntax diagramto:
#31 Non-Variadic Formal Parameters syntax diagramChanged lines 533-534 from:
block := declaration* ( BEGIN statementSequence )? END to:
nonVariadicFormalParams := ( CONST | NEW | VAR )? identList ':' simpleFormalType Changed lines 538-540 from:
#34 Declaration syntax diagramto:
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:
#35 Type Declaration syntax diagramto:
#33 Block syntax diagramChanged lines 555-556 from:
typeDeclaration := Ident '=' ( type | indeterminateRecType ) to:
block := declaration* ( BEGIN statementSequence )? END Changed lines 560-562 from:
#35.1 Indeterminate Record Type syntax diagramto:
#34 Declaration syntax diagramChanged 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:
#35.2 Indeterminate Field syntax diagramto:
#35 Type Declaration syntax diagramChanged lines 576-577 from:
indeterminateRecType := ' Ident ':' ARRAY ' discriminantFieldIdent OF typeIdent END to:
typeDeclaration := Ident '=' ( type | indeterminateRecType ) Changed lines 581-583 from:
#35.3 Discriminant Field Identifier syntax diagramto:
#35.1 Indeterminate Record Type syntax diagramChanged lines 585-587 from:
discriminantFieldIdent := Ident ; to:
indeterminateRecType := '~' RECORD ( variableDeclaration ';' )+ indeterminateField END ; Changed lines 590-592 from:
#36 Statement Sequence syntax diagramto:
#35.2 Indeterminate Field syntax diagramChanged lines 594-595 from:
statementSequence := statement ( ';' statement )* to:
indeterminateRecType := ' Ident ':' ARRAY ' discriminantFieldIdent OF typeIdent END Changed lines 599-601 from:
#37 Statement syntax diagramto:
#35.3 Discriminant Field Identifier syntax diagramChanged lines 603-606 from:
statement := memMgtOperation | updateOrProcCall | ifStatement | caseStatement | loopStatement | whileStatement | repeatStatement | forStatement | EXIT ; to:
discriminantFieldIdent := Ident ; Changed lines 606-608 from:
#38 Memory Management Operation syntax diagramto:
#36 Statement Sequence syntax diagramChanged lines 610-613 from:
memMgtOperation := NEW designator ( OF initSize | := initValue )? | RETAIN designator | RELEASE designator to:
statementSequence := statement ( ';' statement )* Changed lines 615-617 from:
#38.1 Initialisation Size, Initialisation Value syntax diagramto:
#37 Statement syntax diagramChanged lines 619-621 from:
initSize := expression ; initValue := expression ; to:
statement := memMgtOperation | updateOrProcCall | ifStatement | caseStatement | loopStatement | whileStatement | repeatStatement | forStatement | EXIT ; Changed lines 625-627 from:
#39 Update Or Procedure Call syntax diagramto:
#38 Memory Management Operation syntax diagramChanged 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:
#39.1 Increment Or Decrement Suffix syntax diagramto:
#38.1 Initialisation Size, Initialisation Value syntax diagramChanged lines 640-642 from:
incOrDecSuffix := | ; to:
initSize := expression ; initValue := expression ; Changed lines 645-647 from:
#40 Return Or Yield Statement syntax diagramto:
#39 Update Or Procedure Call syntax diagramChanged lines 649-650 from:
returnStatement := ( RETURN | YIELD ) expression? to:
updateOrProcCall := designator ( incOrDecSuffix | ':=' expression | '(' expressionList ')' )? | COPY designator ':=' expression Changed lines 655-657 from:
#41 IF Statement syntax diagramto:
#39.1 Increment Or Decrement Suffix syntax diagramChanged lines 659-663 from:
ifStatement := IF boolExpression THEN statementSequence ( ELSIF boolExpression THEN statementSequence )? ( ELSE statementSequence )? END to:
incOrDecSuffix := | Changed lines 664-666 from:
#41.1 Boolean Expression syntax diagramto:
#40 Return Or Yield Statement syntax diagramChanged lines 668-670 from:
boolExpression := expression ; to:
returnStatement := ( RETURN | YIELD ) expression? ; Changed lines 673-675 from:
#42 CASE Statement syntax diagramto:
#41 IF Statement syntax diagramChanged 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:
#42.1 Case syntax diagramto:
#41.1 Boolean Expression syntax diagramChanged lines 689-691 from:
case := caseLabels ( ',' caseLabels )* ':' statementSequence ; to:
boolExpression := expression ; Changed lines 692-694 from:
#42.2 Case Labels syntax diagramto:
#42 CASE Statement syntax diagramChanged lines 696-697 from:
caseLabels := constExpression ( '..' constExpression )? to:
caseStatement := CASE expression OF ( '|' case )+ ( ELSE statementSequence )? END Changed lines 701-703 from:
#43 LOOP Statement syntax diagramto:
#42.1 Case syntax diagramChanged lines 705-706 from:
loopStatement := LOOP statementSequence END to:
case := caseLabels ( ',' caseLabels )* ':' statementSequence Changed lines 710-712 from:
#44 WHILE Statement syntax diagramto:
#42.2 Case Labels syntax diagramChanged lines 714-715 from:
whileStatement := WHILE boolExpression DO statementSequence END to:
caseLabels := constExpression ( '..' constExpression )? Changed lines 719-721 from:
#45 REPEAT Statement syntax diagramto:
#43 LOOP Statement syntax diagramChanged lines 723-724 from:
repeatStatement := REPEAT statementSequence UNTIL boolExpression to:
loopStatement := LOOP statementSequence END Changed lines 728-730 from:
#46 FOR Statement syntax diagramto:
#44 WHILE Statement syntax diagramChanged lines 732-733 from:
forStatement := FOR forLoopVariants IN iterableEntity DO statementSequence END to:
whileStatement := WHILE boolExpression DO statementSequence END Changed lines 737-739 from:
#46.1 FOR Loop Variants syntax diagramto:
#45 REPEAT Statement syntax diagramChanged lines 741-743 from:
forLoopVariants := accessor ascOrDesc? ( ',' value )? | VALUE value ascOrDesc? to:
repeatStatement := REPEAT statementSequence UNTIL boolExpression Changed lines 746-748 from:
#46.2 Accessor, Value syntax diagramto:
#46 FOR Statement syntax diagramChanged lines 750-752 from:
accessor := Ident ; value := Ident ; to:
forStatement := FOR forLoopVariants IN iterableExpr DO statementSequence END ; Changed lines 755-757 from:
#46.3 Iterable Entity syntax diagramto:
#46.1 FOR Loop Variants syntax diagramChanged lines 759-760 from:
iterableEntity := designator | range OF ordinalType to:
forLoopVariants := accessor ascOrDesc? ( ',' value )? | VALUE value ascOrDesc? ; @]
#46.2 Accessor, Value syntax diagramaccessor := Ident ; value := Ident ; #46.3 Iterable Expression syntax diagram[@ iterableExpr := designator | '[' expression '..' expression ']' OF ordinalType 2015-09-28 03:31
by -
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 -
Changed line 249 from:
derivedSubType := to:
subType := Changed line 256 from:
to:
2015-09-28 03:29
by -
Changed line 240 from:
typeIdent | derivedSubType | enumType | setType | arrayType | to:
typeIdent | subType | enumType | setType | arrayType | Changed lines 245-247 from:
#13.1 Derived Sub-Type syntax diagramto:
#13.1 Sub-Type syntax diagramChanged 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 -
Changed lines 606-607 from:
loopStatement | whileStatement | repeatStatement | forStatement | ( RETURN | YIELD ) expression? | EXIT to:
loopStatement | whileStatement | repeatStatement | forStatement | EXIT Changed lines 649-651 from:
#40 IF Statement syntax diagramto:
#40 Return Or Yield Statement syntax diagramChanged 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:
#40.1 Boolean Expression syntax diagramto:
#41 IF Statement syntax diagramChanged lines 662-667 from:
boolExpression := expression ; to:
ifStatement := IF boolExpression THEN statementSequence ( ELSIF boolExpression THEN statementSequence )? ( ELSE statementSequence )? END ; Changed lines 670-672 from:
#41 CASE Statement syntax diagramto:
#41.1 Boolean Expression syntax diagramChanged lines 674-676 from:
caseStatement := CASE expression OF ( '|' case )+ ( ELSE statementSequence )? END ; to:
boolExpression := expression ; Changed lines 677-679 from:
#41.1 Case syntax diagramto:
#42 CASE Statement syntax diagramChanged lines 681-682 from:
case := caseLabels ( ',' caseLabels )* ':' statementSequence to:
caseStatement := CASE expression OF ( '|' case )+ ( ELSE statementSequence )? END Changed lines 686-688 from:
#41.2 Case Labels syntax diagramto:
#42.1 Case syntax diagramChanged lines 690-691 from:
caseLabels := constExpression ( '..' constExpression )? to:
case := caseLabels ( ',' caseLabels )* ':' statementSequence Changed lines 695-697 from:
#42 LOOP Statement syntax diagramto:
#42.2 Case Labels syntax diagramChanged lines 699-700 from:
loopStatement := LOOP statementSequence END to:
caseLabels := constExpression ( '..' constExpression )? Changed lines 704-706 from:
#43 WHILE Statement syntax diagramto:
#43 LOOP Statement syntax diagramChanged lines 708-709 from:
whileStatement := WHILE boolExpression DO statementSequence END to:
loopStatement := LOOP statementSequence END Changed lines 713-715 from:
#44 REPEAT Statement syntax diagramto:
#44 WHILE Statement syntax diagramChanged lines 717-718 from:
repeatStatement := REPEAT statementSequence UNTIL boolExpression to:
whileStatement := WHILE boolExpression DO statementSequence END Changed lines 722-724 from:
#45 FOR Statement syntax diagramto:
#45 REPEAT Statement syntax diagramChanged lines 726-727 from:
forStatement := FOR forLoopVariants IN iterableEntity DO statementSequence END to:
repeatStatement := REPEAT statementSequence UNTIL boolExpression Changed lines 731-733 from:
#45.1 FOR Loop Variants syntax diagramto:
#46 FOR Statement syntax diagramChanged 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:
#45.2 Accessor, Value syntax diagramto:
#46.1 FOR Loop Variants syntax diagramChanged lines 744-746 from:
accessor := Ident ; value := Ident ; to:
forLoopVariants := accessor ascOrDesc? ( ',' value )? | VALUE value ascOrDesc? ; Changed lines 750-752 from:
#45.3 Iterable Entity syntax diagramto:
#46.2 Accessor, Value syntax diagramChanged lines 754-756 from:
iterableEntity := designator | range OF ordinalType ; to:
accessor := Ident ; value := Ident ; Changed lines 759-761 from:
#45.4 Ascender Or Descender syntax diagramto:
#46.3 Iterable Entity syntax diagramChanged lines 763-765 from:
ascOrDesc := incOrDecSuffix ; to:
iterableEntity := designator | range OF ordinalType ; Changed lines 768-770 from:
#45.5 Ordinal Type syntax diagramto:
#46.4 Ascender Or Descender syntax diagramChanged line 772 from:
ordinalType := typeIdent ; to:
ascOrDesc := incOrDecSuffix ; Changed lines 775-777 from:
#46 Designator syntax diagramto:
#46.5 Ordinal Type syntax diagramChanged lines 779-781 from:
designator := qualident designatorTail? ; to:
ordinalType := typeIdent ; Changed lines 782-784 from:
#46.1 Designator Tail syntax diagramto:
#47 Designator syntax diagramChanged lines 786-787 from:
designatorTail := ( ( '[' exprListOrSlice ']' | '^' ) ( '.' Ident )* )+ to:
designator := qualident designatorTail? Changed lines 791-793 from:
#46.2 Expression List Or Slice syntax diagramto:
#47.1 Designator Tail syntax diagramChanged lines 795-796 from:
exprListOrSlice := expression ( ( ',' expression )* | '..' expression? ) to:
designatorTail := ( ( '[' exprListOrSlice ']' | '^' ) ( '.' Ident )* )+ Changed lines 800-802 from:
#47 Expression List syntax diagramto:
#47.2 Expression List Or Slice syntax diagramChanged lines 804-805 from:
expressionList := expression ( ',' expression )* to:
exprListOrSlice := expression ( ( ',' expression )* | '..' expression? ) Changed lines 809-811 from:
#48 Expression syntax diagramto:
#48 Expression List syntax diagramChanged lines 813-814 from:
expression := simpleExpression ( operL1 simpleExpression )? to:
expressionList := expression ( ',' expression )* Changed lines 818-820 from:
#48.1 Level-1 Operator syntax diagramto:
#49 Expression syntax diagramChanged lines 822-823 from:
operL1 := '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp to:
expression := simpleExpression ( operL1 simpleExpression )? Changed lines 827-829 from:
#48.2 Identity Operator syntax diagramto:
#49.1 Level-1 Operator syntax diagramChanged lines 831-833 from:
identityOp := '==' ; to:
operL1 := '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp ; Changed lines 836-838 from:
#49 Simple Expression syntax diagramto:
#49.2 Identity Operator syntax diagramChanged lines 840-842 from:
simpleExpression := ( '+' | '-' )? term ( operL2 term )* ; to:
identityOp := '==' ; Changed lines 843-845 from:
#49.1 Level-2 Operator syntax diagramto:
#50 Simple Expression syntax diagramChanged lines 847-848 from:
operL2 := '+' | '-' | OR | concatOp to:
simpleExpression := ( '+' | '-' )? term ( operL2 term )* Changed lines 852-854 from:
#49.2 Concatenation Operator syntax diagramto:
#50.1 Level-2 Operator syntax diagramChanged lines 856-858 from:
concatOp := '&' ; to:
operL2 := '+' | '-' | OR | concatOp ; Changed lines 861-863 from:
#50 Term syntax diagramto:
#49.2 Concatenation Operator syntax diagramChanged lines 865-867 from:
term := simpleTerm ( operL3 simpleTerm )* ; to:
concatOp := '&' ; Changed lines 868-870 from:
#50.1 Level-3 Operator syntax diagramto:
#51 Term syntax diagramChanged lines 872-873 from:
operL3 := '*' | '/' | DIV | MOD | AND | setDiffOp to:
term := simpleTerm ( operL3 simpleTerm )* Changed lines 877-879 from:
#50.2 Set Difference Operator syntax diagramto:
#51.1 Level-3 Operator syntax diagramChanged lines 881-883 from:
setDiffOp := '\' ; to:
operL3 := '*' | '/' | DIV | MOD | AND | setDiffOp ; Changed lines 886-888 from:
#51 Simple Term syntax diagramto:
#51.2 Set Difference Operator syntax diagramChanged lines 890-892 from:
simpleTerm := NOT? factorOrTypeConv ; to:
setDiffOp := '\' ; Changed lines 893-895 from:
#52 Factor syntax diagramto:
#52 Simple Term syntax diagramChanged lines 897-898 from:
factor := simpleFactor ( typeConvOp typeIdent )? to:
simpleTerm := NOT? factorOrTypeConv Changed lines 902-904 from:
#52.1 Type Conversion Operator syntax diagramto:
#53 Factor syntax diagramChanged lines 906-908 from:
typeConvOp := '::' ; to:
factor := simpleFactor ( typeConvOp typeIdent )? ; Changed lines 911-913 from:
#53 Simple Factor syntax diagramto:
#53.1 Type Conversion Operator syntax diagramChanged lines 915-917 from:
simpleFactor := Number Literal? | String Literal? | structuredValue | functionCall | '(' expression ')' ; to:
typeConvOp := '::' ; Changed lines 918-920 from:
#53.1 Function Call syntax diagramto:
#54 Simple Factor syntax diagramChanged lines 922-923 from:
functionCall := designator '(' expressionList? ')' to:
simpleFactor := Number Literal? | String Literal? | structuredValue | functionCall | '(' expression ')' Changed lines 927-929 from:
#54 Structured Value syntax diagramto:
#54.1 Function Call syntax diagramChanged lines 931-932 from:
structuredValue := '{' valueComponent ( ',' valueComponent )* '}' to:
functionCall := designator '(' expressionList? ')' Changed lines 936-938 from:
#54.1 Value Component syntax diagramto:
#54.2 Structured Value syntax diagramChanged lines 940-941 from:
valueComponent := constExpression (( BY | '..' )? constExpression )? | runtimeExpression to:
structuredValue := '{' valueComponent ( ',' valueComponent )* '}' Changed lines 945-947 from:
#54.2 Runtime Expression syntax diagramto:
#54.3 Value Component syntax diagramvalueComponent := constExpression (( BY | '..' )? constExpression )? | runtimeExpression ;
#54.4 Runtime Expression \2015-09-27 09:10
by -
Changed line 320 from:
restrictedExport? variableDeclaration to:
restrictedExport? variableDeclaration ( '=' constExpression )? 2015-09-24 14:40
by -
Changed lines 1309-1310 from:
'+' | '-' | '*' | '/' | '\' | '=' | '<' | '>' | '::' | IN | DIV | MOD | unaryMinus to:
'+' | '-' | '*' | '/' | '\' | '=' | '<' | '>' | '::' | IN | DIV | MOD | unaryMinus 2015-09-24 14:39
by -
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 -
Changed line 899 from:
simpleFactor ( '::' typeIdent )? to:
simpleFactor ( typeConvOp typeIdent )? Added lines 901-907:
2015-09-24 14:30
by -
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:
#46 Expression syntax diagramto:
#47 Expression List syntax diagramChanged lines 805-806 from:
expression := simpleExpression ( operL1 simpleExpression )? to:
expressionList := expression ( ',' expression )* Changed lines 810-812 from:
#46.1 Level-1 Operator syntax diagramto:
#48 Expression syntax diagramChanged lines 814-815 from:
operL1 := '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp to:
expression := simpleExpression ( operL1 simpleExpression )? Changed lines 819-821 from:
#46.2 Identity Operator syntax diagramto:
#48.1 Level-1 Operator syntax diagramChanged lines 823-825 from:
identityOp := '==' ; to:
operL1 := '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp ; Changed lines 828-830 from:
#47 Simple Expression syntax diagramto:
#48.2 Identity Operator syntax diagramChanged lines 832-834 from:
simpleExpression := ( '+' | '-' )? term ( operL2 term )* ; to:
identityOp := '==' ; Changed lines 835-837 from:
#47.1 Level-2 Operator syntax diagramto:
#49 Simple Expression syntax diagramChanged lines 839-840 from:
operL2 := '+' | '-' | OR | concatOp to:
simpleExpression := ( '+' | '-' )? term ( operL2 term )* Changed lines 844-846 from:
#47.2 Concatenation Operator syntax diagramto:
#49.1 Level-2 Operator syntax diagramChanged lines 848-850 from:
concatOp := '&' ; to:
operL2 := '+' | '-' | OR | concatOp ; Changed lines 853-855 from:
#48 Term syntax diagramto:
#49.2 Concatenation Operator syntax diagramChanged lines 857-859 from:
term := simpleTerm ( operL3 simpleTerm )* ; to:
concatOp := '&' ; Changed lines 860-862 from:
#48.1 Level-3 Operator syntax diagramto:
#50 Term syntax diagramChanged lines 864-865 from:
operL3 := '*' | '/' | DIV | MOD | AND | setDiffOp to:
term := simpleTerm ( operL3 simpleTerm )* Changed lines 869-871 from:
#48.2 Set Difference Operator syntax diagramto:
#50.1 Level-3 Operator syntax diagramChanged lines 873-875 from:
setDiffOp := '\' ; to:
operL3 := '*' | '/' | DIV | MOD | AND | setDiffOp ; Changed lines 878-880 from:
#49 Simple Term syntax diagramto:
#50.2 Set Difference Operator syntax diagramChanged lines 882-884 from:
simpleTerm := NOT? factorOrTypeConv ; to:
setDiffOp := '\' ; Changed lines 885-887 from:
#50 Factor Or Type Conversion syntax diagramto:
#51 Simple Term syntax diagramChanged lines 889-890 from:
factorOrTypeConv := factor ( '::' typeIdent )? to:
simpleTerm := NOT? factorOrTypeConv Changed line 895 from:
#51 Factor \to:
#52 \Changed lines 899-900 from:
Number Literal? | String Literal? | structuredValue | '(' expression ')' | designator actualParameters? to:
simpleFactor ( '::' typeIdent )? Changed lines 903-905 from:
#52 Actual Parameters syntax diagramto:
#53 Simple Factor syntax diagramChanged lines 907-908 from:
actualParameters := '(' expressionList ')' to:
simpleFactor := Number Literal? | String Literal? | structuredValue | functionCall | '(' expression ')' Changed lines 912-914 from:
#53 Expression List syntax diagramto:
#53.1 Function Call syntax diagramChanged lines 916-917 from:
expressionList := expression ( ',' expression )* to:
functionCall := designator '(' expressionList? ')' 2015-09-24 14:22
by -
Changed line 551 from:
TYPE ( Ident '=' typeDeclTail ';' )+ | to:
TYPE ( typeDeclaration ';' )+ | Changed lines 557-559 from:
#34.1 Type Declaration Tail syntax diagramto:
#35 Type Declaration syntax diagramChanged 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 -
Changed line 580 from:
~ Ident ':' ARRAY ~ discriminantFieldIdent OF typeIdent END to:
' Ident ':' ARRAY ' discriminantFieldIdent OF typeIdent END 2015-09-24 10:38
by -
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 -
Changed lines 311-313 from:
RECORD ( fieldList ( ';' fieldList )* indeterminateField? | '(' recTypeToExtend ')' fieldList ( ';' fieldList )* ) to:
RECORD ( '(' recTypeToExtend ')' )? fieldList ( ';' fieldList )* ) 2015-09-24 10:08
by -
Changed lines 333-335 from:
#17.3 Indeterminate Field syntax diagramto:
#18 Pointer Type syntax diagramChanged lines 337-338 from:
indeterminateField := '~' Ident ':' ARRAY discriminantFieldIdent OF typeIdent to:
pointerType := POINTER TO CONST? typeIdent Changed lines 342-344 from:
#17.4 Discriminant Field Ident syntax diagramto:
#19 Coroutine Type syntax diagramChanged lines 346-348 from:
discriminantFieldIdent := Ident ; to:
coroutineType := COROUTINE '(' assocProcType ')' ; Changed lines 351-353 from:
#18 Pointer Type syntax diagramto:
#19.1 Associated Procedure Type syntax diagramChanged lines 355-357 from:
pointerType := POINTER TO CONST? typeIdent ; to:
assocProcType : typeIdent ; Changed lines 358-360 from:
#19 Coroutine Type syntax diagramto:
#20 Procedure Type syntax diagramChanged lines 362-363 from:
coroutineType := COROUTINE '(' assocProcType ')' to:
procedureType := PROCEDURE ( formalType ( ',' formalType )* )? ( ':' returnedType )? Changed lines 367-369 from:
#19.1 Associated Procedure Type syntax diagramto:
#20.1 Formal Type syntax diagramChanged lines 371-373 from:
assocProcType : typeIdent ; to:
formalType := simpleFormalType | attributedFormalType | variadicFormalType ; Changed lines 376-378 from:
#20 Procedure Type syntax diagramto:
#21 Simple Formal Type syntax diagramChanged lines 380-381 from:
procedureType := PROCEDURE ( formalType ( ',' formalType )* )? ( ':' returnedType )? to:
simpleFormalType := ( ARRAY OF )? typeIdent | castingFormalType Changed lines 385-387 from:
#20.1 Formal Type syntax diagramto:
#21.1 Casting Formal Type syntax diagramChanged lines 389-390 from:
formalType := simpleFormalType | attributedFormalType | variadicFormalType to:
castingFormalType := CAST ( ARRAY OF OCTET | addressTypeIdent ) Changed lines 394-396 from:
#21 Simple Formal Type syntax diagramto:
#21.2 Address Type Identifier syntax diagramChanged lines 398-399 from:
simpleFormalType := ( ARRAY OF )? typeIdent | castingFormalType to:
addressTypeIdent := ( UNSAFE '.' )? ADDRESS Changed lines 403-405 from:
#21.1 Casting Formal Type syntax diagramto:
#22 Attributed Formal Type syntax diagramChanged lines 407-408 from:
castingFormalType := CAST ( ARRAY OF OCTET | addressTypeIdent ) to:
attributedFormalType := ( CONST | NEW | VAR ) ( simpleFormalType | simpleVariadicFormalType ) Changed lines 412-414 from:
#21.2 Address Type Identifier syntax diagramto:
#23 Simple Variadic Formal Type syntax diagramChanged lines 416-417 from:
addressTypeIdent := ( UNSAFE '.' )? ADDRESS to:
simpleVariadicFormalType := ARGLIST reqNumOfArgs? OF simpleFormalType terminator? Changed lines 421-423 from:
#22 Attributed Formal Type syntax diagramto:
#23.1 Required Number Of Arguments syntax diagramChanged lines 425-426 from:
attributedFormalType := ( CONST | NEW | VAR ) ( simpleFormalType | simpleVariadicFormalType ) to:
reqNumOfArgs := greaterThan? constExpression Changed lines 430-432 from:
#23 Simple Variadic Formal Type syntax diagramto:
#23.2 Argument List Terminator syntax diagramChanged lines 434-435 from:
simpleVariadicFormalType := ARGLIST reqNumOfArgs? OF simpleFormalType terminator? to:
terminator := '|' constQualident Changed lines 439-441 from:
#23.1 Required Number Of Arguments syntax diagramto:
#23.3 Constant Qualified Identifier syntax diagramChanged lines 443-445 from:
reqNumOfArgs := greaterThan? constExpression ; to:
constQualident := qualident ; Changed lines 446-448 from:
#23.2 Argument List Terminator syntax diagramto:
#24 Variadic Formal Type syntax diagramChanged lines 450-451 from:
terminator := '|' constQualident to:
variadicFormalType := ARGLIST reqNumOfArgs? OF ( '{' nonVariadicFormalType ( ';' nonVariadicFormalType )* '}' | simpleFormalType ) terminator? Changed lines 457-459 from:
#23.3 Constant Qualified Identifier syntax diagramto:
#25 Non-Variadic Formal Type syntax diagramChanged lines 461-463 from:
constQualident := qualident ; to:
nonVariadicFormalType := ( CONST | NEW | VAR )? simpleFormalType ; Changed lines 466-468 from:
#24 Variadic Formal Type syntax diagramto:
#26 Procedure Header syntax diagramChanged lines 470-473 from:
variadicFormalType := ARGLIST reqNumOfArgs? OF ( '{' nonVariadicFormalType ( ';' nonVariadicFormalType )* '}' | simpleFormalType ) terminator? to:
procedureHeader := PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' | restrictedExport )? procedureSignature Changed lines 476-478 from:
#25 Non-Variadic Formal Type syntax diagramto:
#27 Procedure Signature syntax diagramChanged lines 480-481 from:
nonVariadicFormalType := ( CONST | NEW | VAR )? simpleFormalType to:
procedureSignature := Ident ( '(' formalParams ( ';' formalParams )* ')' )? ( ':' returnedType )? Changed lines 485-487 from:
#26 Procedure Header syntax diagramto:
#28 Formal Parameters syntax diagramChanged lines 489-491 from:
procedureHeader := PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' | restrictedExport )? procedureSignature to:
formalParams := identList ':' ( simpleFormalType | variadicFormalParams ) | attributedFormalParams Changed lines 495-497 from:
#27 Procedure Signature syntax diagramto:
#29 Attributed Formal Parameters syntax diagramChanged lines 499-500 from:
procedureSignature := Ident ( '(' formalParams ( ';' formalParams )* ')' )? ( ':' returnedType )? to:
attributedFormalParams := ( CONST | NEW | VAR ) identList ':' ( simpleFormalType | simpleVariadicFormalType ) Changed lines 505-507 from:
#28 Formal Parameters syntax diagramto:
#30 Variadic Formal Parameters syntax diagramChanged lines 509-511 from:
formalParams := identList ':' ( simpleFormalType | variadicFormalParams ) | attributedFormalParams to:
variadicFormalParams := ARGLIST reqNumOfArgs? OF ( ( '{' nonVariadicFormalParams ( ';' nonVariadicFormalParams )* '}') | simpleFormalType ) terminator? Changed lines 516-518 from:
#29 Attributed Formal Parameters syntax diagramto:
#31 Non-Variadic Formal Parameters syntax diagramChanged lines 520-522 from:
attributedFormalParams := ( CONST | NEW | VAR ) identList ':' ( simpleFormalType | simpleVariadicFormalType ) to:
nonVariadicFormalParams := ( CONST | NEW | VAR )? identList ':' simpleFormalType Changed lines 525-527 from:
#30 Variadic Formal Parameters syntax diagramto:
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:
#31 Non-Variadic Formal Parameters syntax diagramto:
#33 Block syntax diagramChanged lines 542-543 from:
nonVariadicFormalParams := ( CONST | NEW | VAR )? identList ':' simpleFormalType to:
block := declaration* ( BEGIN statementSequence )? END Changed lines 547-552 from:
to:
#34 Declaration syntax diagramChanged 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:
#33 Block syntax diagramto:
#34.1 Type Declaration Tail syntax diagramChanged lines 563-564 from:
block := declaration* ( BEGIN statementSequence )? END to:
typeDeclTail := type | indeterminateRecType Changed lines 568-570 from:
#34 Declaration syntax diagramto:
#35 Indeterminate Record Type syntax diagramChanged 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:
#34.1 Type Declaration Tail syntax diagramto:
#35.1 Indeterminate Field syntax diagramChanged lines 581-582 from:
typeDeclTail := type | indeterminateRecType to:
indeterminateRecType := Ident ':' ARRAY discriminantFieldIdent OF typeIdent END Changed lines 586-588 from:
#35 Indeterminate Record Type syntax diagramto:
#35.2 Discriminant Field Identifier syntax diagramChanged lines 590-592 from:
indeterminateRecType := '~' RECORD variableDeclaration ( ';" variableDeclaration )* indeterminateField END ; to:
discriminantFieldIdent := Ident ; Changed lines 593-595 from:
#35.1 Indeterminate Field syntax diagramto:
#36 Statement Sequence syntax diagramChanged lines 597-598 from:
indeterminateRecType := Ident ':' ARRAY discriminantFieldIdent OF typeIdent END to:
statementSequence := statement ( ';' statement )* Deleted lines 599-605:
2015-09-24 10:06
by -
Changed lines 575-577 from:
#35 Statement Sequence syntax diagramto:
#34.1 Type Declaration Tail syntax diagramChanged lines 579-580 from:
statementSequence := statement ( ';' statement )* to:
typeDeclTail := type | indeterminateRecType Changed lines 584-586 from:
#36 Statement syntax diagramto:
#35 Indeterminate Record Type syntax diagramChanged 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:
#37 Memory Management Operation syntax diagramto:
#35.1 Indeterminate Field syntax diagramChanged 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:
#37.1 Initialisation Size, Initialisation Value syntax diagramto:
#35.2 Discriminant Field Identifier syntax diagramChanged lines 606-608 from:
initSize := expression ; initValue := expression ; to:
discriminantFieldIdent := Ident ; Changed lines 609-611 from:
#38 Update Or Procedure Call syntax diagramto:
#36 Statement syntax diagramChanged 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:
#38.1 Increment Or Decrement Suffix syntax diagramto:
#37 Memory Management Operation syntax diagramChanged lines 624-625 from:
incOrDecSuffix := | to:
memMgtOperation := NEW designator ( OF initSize | := initValue )? | RETAIN designator | RELEASE designator Changed lines 631-633 from:
#39 IF Statement syntax diagramto:
#37.1 Initialisation Size, Initialisation Value syntax diagramChanged 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:
#39.1 Boolean Expression syntax diagramto:
#38 Update Or Procedure Call syntax diagramChanged lines 644-647 from:
boolExpression := expression ; to:
updateOrProcCall := designator ( ':=' expression | incOrDecSuffix | actualParameters )? | COPY designator ':=' expression ; Changed lines 650-652 from:
#40 CASE Statement syntax diagramto:
#38.1 Increment Or Decrement Suffix syntax diagramChanged lines 654-655 from:
caseStatement := CASE expression OF ( '|' case )+ ( ELSE statementSequence )? END to:
incOrDecSuffix := | Changed lines 659-661 from:
#40.1 Case syntax diagramto:
#39 IF Statement syntax diagramChanged 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:
#40.2 Case Labels syntax diagramto:
#39.1 Boolean Expression syntax diagramChanged lines 675-677 from:
caseLabels := constExpression ( '..' constExpression )? ; to:
boolExpression := expression ; Changed lines 678-680 from:
#41 LOOP Statement syntax diagramto:
#40 CASE Statement syntax diagramChanged lines 682-683 from:
loopStatement := LOOP statementSequence END to:
caseStatement := CASE expression OF ( '|' case )+ ( ELSE statementSequence )? END Changed lines 687-689 from:
#42 WHILE Statement syntax diagramto:
#40.1 Case syntax diagramChanged lines 691-692 from:
whileStatement := WHILE boolExpression DO statementSequence END to:
case := caseLabels ( ',' caseLabels )* ':' statementSequence Changed lines 696-698 from:
#43 REPEAT Statement syntax diagramto:
#40.2 Case Labels syntax diagramChanged lines 700-701 from:
repeatStatement := REPEAT statementSequence UNTIL boolExpression to:
caseLabels := constExpression ( '..' constExpression )? Changed lines 705-707 from:
#44 FOR Statement syntax diagramto:
#41 LOOP Statement syntax diagramChanged lines 709-710 from:
forStatement := FOR forLoopVariants IN iterableEntity DO statementSequence END to:
loopStatement := LOOP statementSequence END Changed lines 714-716 from:
#44.1 FOR Loop Variants syntax diagramto:
#42 WHILE Statement syntax diagramChanged lines 718-720 from:
forLoopVariants := accessor ascOrDesc? ( ',' value )? | VALUE value ascOrDesc? to:
whileStatement := WHILE boolExpression DO statementSequence END Changed lines 723-725 from:
#44.2 Accessor, Value syntax diagramto:
#43 REPEAT Statement syntax diagramChanged lines 727-729 from:
accessor := Ident ; value := Ident ; to:
repeatStatement := REPEAT statementSequence UNTIL boolExpression ; Changed lines 732-734 from:
#44.3 Iterable Entity syntax diagramto:
#44 FOR Statement syntax diagramChanged lines 736-737 from:
iterableEntity := designator | range OF ordinalType to:
forStatement := FOR forLoopVariants IN iterableEntity DO statementSequence END Changed lines 741-743 from:
#44.4 Ascender Or Descender syntax diagramto:
#44.1 FOR Loop Variants syntax diagramChanged lines 745-748 from:
ascOrDesc := incOrDecSuffix ; to:
forLoopVariants := accessor ascOrDesc? ( ',' value )? | VALUE value ascOrDesc? ; Changed lines 751-753 from:
#44.5 Ordinal Type syntax diagramto:
#44.2 Accessor, Value syntax diagramChanged lines 755-757 from:
ordinalType := typeIdent ; to:
accessor := Ident ; value := Ident ; Changed lines 760-762 from:
#45 Designator syntax diagramto:
#44.3 Iterable Entity syntax diagramChanged lines 764-765 from:
designator := qualident designatorTail? to:
iterableEntity := designator | range OF ordinalType Changed lines 769-771 from:
#45.1 Designator Tail syntax diagramto:
#44.4 Ascender Or Descender syntax diagramChanged lines 773-775 from:
designatorTail := ( ( '[' exprListOrSlice ']' | '^' ) ( '.' Ident )* )+ ; to:
ascOrDesc := incOrDecSuffix ; Changed lines 776-778 from:
#45.2 Expression List Or Slice syntax diagramto:
#44.5 Ordinal Type syntax diagramChanged lines 780-782 from:
exprListOrSlice := expression ( ( ',' expression )* | '..' expression? ) ; to:
ordinalType := typeIdent ; Changed lines 783-785 from:
#46 Expression syntax diagramto:
#45 Designator syntax diagramChanged lines 787-788 from:
expression := simpleExpression ( operL1 simpleExpression )? to:
designator := qualident designatorTail? Changed lines 792-794 from:
#46.1 Level-1 Operator syntax diagramto:
#45.1 Designator Tail syntax diagramChanged lines 796-797 from:
operL1 := '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp to:
designatorTail := ( ( '[' exprListOrSlice ']' | '^' ) ( '.' Ident )* )+ Changed lines 801-803 from:
#46.2 Identity Operator syntax diagramto:
#45.2 Expression List Or Slice syntax diagramChanged lines 805-807 from:
identityOp := '==' ; to:
exprListOrSlice := expression ( ( ',' expression )* | '..' expression? ) ; Changed lines 810-812 from:
#47 Simple Expression syntax diagramto:
#46 Expression syntax diagramChanged lines 814-815 from:
simpleExpression := ( '+' | '-' )? term ( operL2 term )* to:
expression := simpleExpression ( operL1 simpleExpression )? Changed lines 819-821 from:
#47.1 Level-2 Operator syntax diagramto:
#46.1 Level-1 Operator syntax diagramChanged lines 823-824 from:
operL2 := '+' | '-' | OR | concatOp to:
operL1 := '=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp Changed lines 828-830 from:
#47.2 Concatenation Operator syntax diagramto:
#46.2 Identity Operator syntax diagramChanged line 832 from:
concatOp := '&' ; to:
identityOp := '==' ; Changed lines 835-837 from:
#48 Term syntax diagramto:
#47 Simple Expression syntax diagramChanged lines 839-840 from:
term := simpleTerm ( operL3 simpleTerm )* to:
simpleExpression := ( '+' | '-' )? term ( operL2 term )* Changed lines 844-846 from:
#48.1 Level-3 Operator syntax diagramto:
#47.1 Level-2 Operator syntax diagramChanged lines 848-849 from:
operL3 := '*' | '/' | DIV | MOD | AND | setDiffOp to:
operL2 := '+' | '-' | OR | concatOp Changed lines 853-855 from:
#48.2 Set Difference Operator syntax diagramto:
#47.2 Concatenation Operator syntax diagramChanged line 857 from:
setDiffOp := '\' ; to:
concatOp := '&' ; Changed lines 860-862 from:
#49 Simple Term syntax diagramto:
#48 Term syntax diagramChanged lines 864-865 from:
simpleTerm := NOT? factorOrTypeConv to:
term := simpleTerm ( operL3 simpleTerm )* Changed lines 869-871 from:
#50 Factor Or Type Conversion syntax diagramto:
#48.1 Level-3 Operator syntax diagramChanged lines 873-874 from:
factorOrTypeConv := factor ( '::' typeIdent )? to:
operL3 := '*' | '/' | DIV | MOD | AND | setDiffOp Changed lines 878-880 from:
#51 Factor syntax diagramto:
#48.2 Set Difference Operator syntax diagramChanged lines 882-885 from:
factor := Number Literal? | String Literal? | structuredValue | '(' expression ')' | designator actualParameters? ; to:
setDiffOp := '\' ; Changed lines 885-887 from:
#52 Actual Parameters syntax diagramto:
#49 Simple Term syntax diagramChanged lines 889-890 from:
actualParameters := '(' expressionList ')' to:
simpleTerm := NOT? factorOrTypeConv Changed lines 894-896 from:
#53 Expression List syntax diagramto:
#50 Factor Or Type Conversion syntax diagramChanged lines 898-899 from:
expressionList := expression ( ',' expression )* to:
factorOrTypeConv := factor ( '::' typeIdent )? Changed lines 903-905 from:
#54 Structured Value syntax diagramto:
#51 Factor syntax diagramChanged lines 907-908 from:
structuredValue := '{' valueComponent ( ',' valueComponent )* '}' to:
factor := Number Literal? | String Literal? | structuredValue | '(' expression ')' | designator actualParameters? Changed lines 913-915 from:
#54.1 Value Component syntax diagramto:
#52 Actual Parameters syntax diagramChanged lines 917-918 from:
valueComponent := constExpression (( BY | '..' )? constExpression )? | runtimeExpression to:
actualParameters := '(' expressionList ')' Changed lines 922-924 from:
#54.2 Runtime Expression syntax diagramto:
#53 Expression List syntax diagramChanged lines 926-928 from:
runtimeExpression := expression ; to:
expressionList := expression ( ',' expression )* ; Changed lines 931-936 from:
to:
#54 Structured Value syntax diagramChanged 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:
#55.1 Blueprint Identifier syntax diagramto:
#54.1 Value Component syntax diagramChanged lines 944-946 from:
blueprintIdent := Ident ; to:
valueComponent := constExpression (( BY | '..' )? constExpression )? | runtimeExpression ; Changed lines 949-951 from:
#55.2 Blueprint To Refine, Blueprint For Type To Extend syntax diagramto:
#54.2 Runtime Expression syntax diagramChanged lines 953-955 from:
blueprintToRefine := blueprintIdent ; blueprintForTypeToExtend := blueprintIdent ; to:
runtimeExpression := expression ; Changed lines 956-958 from:
#56 Type Classification syntax diagramto:
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:
#56.1 Determined Classification syntax diagramto:
#55.1 Blueprint Identifier syntax diagramChanged lines 975-977 from:
determinedClassification := classificationIdent ( ',' classificationIdent )* ; to:
blueprintIdent := Ident ; Changed lines 978-980 from:
#56.2 Refinable Classification syntax diagramto:
#55.2 Blueprint To Refine, Blueprint For Type To Extend syntax diagramChanged lines 982-984 from:
refinableClassification := ' classificationIdent ( ',' ' classificationIdent )* ; to:
blueprintToRefine := blueprintIdent ; blueprintForTypeToExtend := blueprintIdent ; Changed lines 987-989 from:
#56.3 Classification Identifier syntax diagramto:
#56 Type Classification syntax diagramChanged lines 991-994 from:
classificationIdent := Ident ; to:
typeClassification := '{' determinedClassification ( ';' refinableClassification )? ( ';' '*' )? '}' | '*' ; Changed lines 997-999 from:
#57 Literal Compatibility syntax diagramto:
#56.1 Determined Classification syntax diagramChanged lines 1001-1002 from:
literalCompatibility := TLITERAL '=' protoLiteral ( '|' protoLiteral )* to:
determinedClassification := classificationIdent ( ',' classificationIdent )* Changed lines 1006-1008 from:
#57.1 Proto-Literal syntax diagramto:
#56.2 Refinable Classification syntax diagramChanged lines 1010-1011 from:
protoLiteral := protoLiteralIdent | structuredProtoLiteral to:
refinableClassification := ' classificationIdent ( ',' ' classificationIdent )* Changed lines 1015-1017 from:
#57.2 Proto-Literal Identifier syntax diagramto:
#56.3 Classification Identifier syntax diagramChanged line 1019 from:
protoLiteralIdent := Ident ; to:
classificationIdent := Ident ; Changed lines 1022-1024 from:
#58 Structured Proto-Literal syntax diagramto:
#57 Literal Compatibility syntax diagramChanged lines 1026-1031 from:
structuredProtoLiteral := '{' ( ARGLIST reqValueCount? OF ( '{' builtinOrReferential ( ',' builtinOrReferential )* '}' | builtinOrReferential ) ) | builtinOrReferential '}' to:
literalCompatibility := TLITERAL '=' protoLiteral ( '|' protoLiteral )* Changed lines 1031-1033 from:
#58.1 Required Value Count syntax diagramto:
#57.1 Proto-Literal syntax diagramChanged lines 1035-1036 from:
reqValueCount := greaterThan? wholeNumber to:
protoLiteral := protoLiteralIdent | structuredProtoLiteral Changed lines 1040-1041 from:
#58.2 Greater Than syntax diagramto:
#57.2 Proto-Literal Identifier syntax diagramChanged line 1044 from:
greaterThan := '>' ; to:
protoLiteralIdent := Ident ; Changed lines 1047-1049 from:
#58.3 Whole Number syntax diagramto:
#58 Structured Proto-Literal syntax diagramChanged lines 1051-1057 from:
wholeNumber : Number Literal? ; to:
structuredProtoLiteral := '{' ( ARGLIST reqValueCount? OF ( '{' builtinOrReferential ( ',' builtinOrReferential )* '}' | builtinOrReferential ) ) | builtinOrReferential '}' ; Changed lines 1060-1062 from:
#58.4 Built-in Type Or Referential Identifier syntax diagramto:
#58.1 Required Value Count syntax diagramChanged lines 1064-1066 from:
builtinOrReferential := Ident ; to:
reqValueCount := greaterThan? wholeNumber ; Changed lines 1069-1071 from:
#59 Constraint syntax diagramto:
#58.2 Greater Than syntax diagramChanged lines 1072-1074 from:
constraint := constraintTerm ( oneWayDependency | mutualDependencyOrExclusion ) ; to:
greaterThan := '>' ; Changed lines 1075-1077 from:
#59.1 Constraint Term syntax diagramto:
#58.3 Whole Number syntax diagramChanged lines 1079-1082 from:
constraintTerm := '(' classificationOrFlagIdent ')' | '[' bindableEntityOrProperty ']' ; to:
wholeNumber : Number Literal? ; Changed lines 1082-1084 from:
#59.2 Bindable Entity Or Property syntax diagramto:
#58.4 Built-in Type Or Referential Identifier syntax diagramChanged lines 1086-1088 from:
bindableEntityOrProperty := entityToBindTo | propertyToBindTo ; to:
builtinOrReferential := Ident ; Changed lines 1089-1091 from:
#59.3 One-Way Dependency syntax diagramto:
#59 Constraint syntax diagramChanged lines 1093-1094 from:
oneWayDependency := '->' termList ( '|' termList )* to:
constraint := constraintTerm ( oneWayDependency | mutualDependencyOrExclusion ) Changed lines 1098-1100 from:
#59.4 Mutual Dependency Or Exclusion syntax diagramto:
#59.1 Constraint Term syntax diagramChanged lines 1102-1103 from:
mutualDependencyOrExclusion := ( '<>' | '><' ) termList to:
constraintTerm := '(' classificationOrFlagIdent ')' | '[' bindableEntityOrProperty ']' Changed lines 1108-1110 from:
#59.5 Term List syntax diagramto:
#59.2 Bindable Entity Or Property syntax diagramChanged lines 1112-1113 from:
termList := constraintTerm ( ',' constraintTerm )* to:
bindableEntityOrProperty := entityToBindTo | propertyToBindTo Changed lines 1117-1119 from:
#59.6 Classification Or Flag Identifier syntax diagramto:
#59.3 One-Way Dependency syntax diagramChanged lines 1121-1123 from:
classificationOrFlagIdent := Ident ; to:
oneWayDependency := '->' termList ( '|' termList )* ; Changed lines 1126-1128 from:
#60 Requirement syntax diagramto:
#59.4 Mutual Dependency Or Exclusion syntax diagramChanged lines 1130-1131 from:
requirement := condition '->' ( typeRequirement | constRequirement | procRequirement ) to:
mutualDependencyOrExclusion := ( '<>' | '><' ) termList Changed lines 1135-1137 from:
#60.1 Condition syntax diagramto:
#59.5 Term List syntax diagramChanged lines 1139-1140 from:
condition := NOT? boolConstIdent to:
termList := constraintTerm ( ',' constraintTerm )* Changed lines 1144-1146 from:
#60.2 Boolean Constant Identifier syntax diagramto:
#59.6 Classification Or Flag Identifier syntax diagramChanged line 1148 from:
boolConstIdent := Ident ; to:
classificationOrFlagIdent := Ident ; Changed lines 1151-1153 from:
#60.3 Type Requirement syntax diagramto:
#60 Requirement syntax diagramChanged lines 1155-1156 from:
typeRequirement := TYPE typeDefinition to:
requirement := condition '->' ( typeRequirement | constRequirement | procRequirement ) Changed lines 1160-1162 from:
#61 Constant Requirement syntax diagramto:
#60.1 Condition syntax diagramChanged lines 1164-1167 from:
constRequirement := CONST ( '[' propertyToBindTo ']' ( simpleConstRequirement | '=' NONE ) | restrictedExport? simpleConstRequirement ) to:
condition := NOT? boolConstIdent Changed lines 1169-1171 from:
#61.1 Simple Constant Requirement syntax diagramto:
#60.2 Boolean Constant Identifier syntax diagramChanged lines 1173-1175 from:
simpleConstRequirement := Ident ( '=' constExpression | ':' builtinTypeIdent ) ; to:
boolConstIdent := Ident ; Changed lines 1176-1177 from:
#61.2 Constant Expression syntax diagramto:
#60.3 Type Requirement syntax diagramChanged lines 1180-1182 from:
constExpression := expression ; to:
typeRequirement := TYPE typeDefinition ; Changed lines 1185-1187 from:
#61.3 Built-in Type Identifier syntax diagramto:
#61 Constant Requirement syntax diagramChanged lines 1189-1193 from:
builtinTypeIdent := Ident ; to:
constRequirement := CONST ( '[' propertyToBindTo ']' ( simpleConstRequirement | '=' NONE ) | restrictedExport? simpleConstRequirement ) ; Changed lines 1196-1197 from:
#61.4 Restricted Export syntax diagramto:
#61.1 Simple Constant Requirement syntax diagramChanged lines 1200-1202 from:
restrictedExport := '*' ; to:
simpleConstRequirement := Ident ( '=' constExpression | ':' builtinTypeIdent ) ; Changed lines 1205-1207 from:
#62 Property To Bind To syntax diagramto:
#61.2 Constant Expression syntax diagramChanged lines 1208-1210 from:
propertyToBindTo := memMgtProperty | collectionProperty | scalarProperty | TFLAGS ; to:
constExpression := expression ; Changed lines 1211-1213 from:
#62.1 Memory Management Property syntax diagramto:
#61.3 Built-in Type Identifier syntax diagramChanged lines 1215-1217 from:
memMgtProperty := TDYN | TREFC ; to:
builtinTypeIdent := Ident ; Changed lines 1218-1220 from:
#62.2 Collection Property syntax diagramto:
#61.4 Restricted Export syntax diagramChanged lines 1221-1223 from:
collectionProperty := TORDERED | TSORTED | TLIMIT ; to:
restrictedExport := '*' ; Changed lines 1224-1226 from:
#62.3 Scalar Property syntax diagramto:
#62 Property To Bind To syntax diagramChanged lines 1228-1229 from:
scalarProperty := TSCALAR | TMAX | TMIN to:
propertyToBindTo := memMgtProperty | collectionProperty | scalarProperty | TFLAGS Changed lines 1233-1235 from:
#63 Procedure Requirement syntax diagramto:
#62.1 Memory Management Property syntax diagramChanged lines 1237-1240 from:
procRequirement := PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' ( procedureSignature | '=' NONE ) | restrictedExport? procedureSignature ) to:
memMgtProperty := TDYN | TREFC Changed lines 1242-1244 from:
#64 Entity To Bind To syntax diagramto:
#62.2 Collection Property syntax diagramChanged lines 1246-1247 from:
entityToBindTo := bindableResWord | bindableOperator | bindableMacro to:
collectionProperty := TORDERED | TSORTED | TLIMIT Changed lines 1251-1253 from:
#64.1 Bindable Reserved Word syntax diagramto:
#62.3 Scalar Property syntax diagramChanged lines 1255-1256 from:
bindableResWord := NEW | RETAIN | RELEASE | COPY | bindableFor to:
scalarProperty := TSCALAR | TMAX | TMIN Changed lines 1260-1262 from:
#64.2 Bindable FOR syntax diagramto:
#63 Procedure Requirement syntax diagramChanged lines 1264-1265 from:
bindableFor := FOR forBindingDifferentiator? to:
procRequirement := PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' ( procedureSignature | '=' NONE ) | restrictedExport? procedureSignature ) Changed lines 1271-1273 from:
#64.3 FOR Binding Differentiator syntax diagramto:
#64 Entity To Bind To syntax diagramChanged lines 1275-1276 from:
forBindingDifferentiator := '|' ( | ) to:
entityToBindTo := bindableResWord | bindableOperator | bindableMacro Changed lines 1280-1282 from:
#64.4 Bindable Operator syntax diagramto:
#64.1 Bindable Reserved Word syntax diagramChanged lines 1284-1286 from:
bindableOperator := '+' | '-' | '*' | '/' | '\' | '=' | '<' | '>' | '*.' | '::' IN | DIV | MOD | unaryMinus to:
bindableResWord := NEW | RETAIN | RELEASE | COPY | bindableFor Changed lines 1289-1291 from:
#64.5 Unary Minus syntax diagramto:
#64.2 Bindable FOR syntax diagramChanged lines 1293-1295 from:
unaryMinus := '+/-' ; to:
bindableFor := FOR forBindingDifferentiator? ; Changed lines 1298-1300 from:
#64.6 Bindable Macro syntax diagramto:
#64.3 FOR Binding Differentiator syntax diagramChanged 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:
#64.7 Multi-Bindable Macro 1 syntax diagramto:
#64.4 Bindable Operator syntax diagramChanged lines 1311-1312 from:
multiBindableMacro1 := ( COUNT | VALUE ) bindingDifferentiator1? to:
bindableOperator := '+' | '-' | '*' | '/' | '\' | '=' | '<' | '>' | '*.' | '::' IN | DIV | MOD | unaryMinus Changed lines 1317-1319 from:
#64.8 Binding Differentiator 1 syntax diagramto:
#64.5 Unary Minus syntax diagramChanged lines 1321-1323 from:
bindingDifferentiator1 := '|' '#' ; to:
unaryMinus := '+/-' ; Changed lines 1324-1326 from:
#64.9 Multi-Bindable Macro 2 syntax diagramto:
#64.6 Bindable Macro syntax diagramChanged 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:
#64.10 Binding Differentiator 2 syntax diagramto:
#64.7 Multi-Bindable Macro 1 syntax diagramChanged lines 1338-1339 from:
bindingDifferentiator2 := '|' ( ',' | '#' | '*' ) to:
multiBindableMacro1 := ( COUNT | VALUE ) bindingDifferentiator1? Changed lines 1343-1345 from:
#64.11 Multi-Bindable Macro 3 syntax diagramto:
#64.8 Binding Differentiator 1 syntax diagramChanged lines 1347-1348 from:
multiBindableMacro3 := APPEND bindingDifferentiator3? to:
bindingDifferentiator1 := '|' '#' Changed lines 1352-1354 from:
#64.12 Binding Differentiator 3 syntax diagramto:
#64.9 Multi-Bindable Macro 2 syntax diagramChanged lines 1356-1357 from:
bindingDifferentiator3 := '|' ( ',' | '*' ) to:
multiBindableMacro2 := ( STORE | INSERT | REMOVE ) bindingDifferentiator2? Added lines 1360-1386:
#64.10 Binding Differentiator 2 syntax diagrambindingDifferentiator2 := '|' ( ',' | '#' | '*' ) ;
#64.11 Multi-Bindable Macro 3 syntax diagrammultiBindableMacro3 := APPEND bindingDifferentiator3? ;
#64.12 Binding Differentiator 3 syntax diagrambindingDifferentiator3 := '|' ( ',' | '*' ) ; 2015-09-24 09:10
by -
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 -
Changed line 295 from:
ARRAY componentCount ( ',' componentCount )* OF typeIdent to:
ARRAY lessThan? valueCount ( ',' valueCount )* OF typeIdent Changed line 299 from:
to:
Changed line 301 from:
to:
Changed line 569 from:
TYPE ( Ident '=' type ';' )+ | to:
TYPE ( Ident '=' typeDeclTail ';' )+ | 2015-09-22 12:53
by -
Changed line 849 from:
'*' | '/' | DIV | MOD | AND | setDiffOp | dotProductOp to:
'*' | '/' | DIV | MOD | AND | setDiffOp Deleted lines 857-863:
2015-09-22 11:25
by -
Changed line 799 from:
'=' | '#' | '<' | '<=' | '>' | '>=' | IN | concatOp | identityOp to:
'=' | '#' | '<' | '<=' | '>' | '>=' | IN | identityOp Changed lines 803-805 from:
#46.2 Concatenation Operator syntax diagramto:
#46.2 Identity Operator syntax diagramChanged line 807 from:
concatOp := '&' ; to:
identityOp := '==' ; Changed lines 810-812 from:
#46.3 Identity Operator syntax diagramto:
#47 Simple Expression syntax diagramChanged lines 814-816 from:
identityOp := '==' ; to:
simpleExpression := ( '+' | '-' )? term ( operL2 term )* ; Changed lines 819-821 from:
#47 Simple Expression syntax diagramto:
#47.1 Level-2 Operator syntax diagramChanged lines 823-824 from:
simpleExpression := ( '+' | '-' )? term ( operL2 term )* to:
operL2 := '+' | '-' | OR | concatOp Changed lines 828-830 from:
#47.1 Level-2 Operator syntax diagramto:
#47.2 Concatenation Operator syntax diagramChanged lines 832-834 from:
operL2 := '+' | '-' | OR ; to:
concatOp := '&' ; 2015-09-17 18:17
by -
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 - 2015-09-16 02:01
by - changed factorOrNegation to simpleTerm
Changed line 838 from:
factorOrNegation ( operL3 factorOrNegation )* to:
simpleTerm ( operL3 simpleTerm )* Changed lines 865-867 from:
#49 Factor Or Negation syntax diagramto:
#49 Simple Term syntax diagramChanged line 869 from:
factorOrNegation : to:
simpleTerm : 2015-09-15 08:21
by - anchoring
Added line 8:
Added line 32:
Added line 43:
Added line 50:
Added line 59:
Added line 68:
Added line 79:
Added line 88:
Added line 99:
Added line 106:
Added line 113:
Added line 124:
Added line 131:
Added line 138:
Added line 147:
Added line 159:
Added line 169:
Added line 176:
Added line 183:
Added line 192:
Added line 201:
Added line 210:
Added line 219:
Added line 226:
Added line 233:
Added line 243:
Added line 254:
Added line 263:
Added line 272:
Added line 279:
Added line 288:
Added line 297:
Added line 304:
Added line 315:
Added line 324:
Added line 331:
Added line 340:
Added line 347:
Added line 356:
Added line 365:
Added line 372:
Added line 381:
Added line 390:
Added line 399:
Added line 408:
Added line 417:
Added line 426:
Added line 435:
Added line 444:
Added line 453:
Added line 460:
Added line 471:
Added line 480:
Added line 490:
Added line 499:
Added line 509:
Added line 519:
Added line 530:
Changed lines 542-543 from:
\ to:
#32 Implementation Or Program Module \Deleted line 544:
#32 Implementation Or Program ModuleAdded line 552:
Added line 561:
Added line 573:
Added line 582:
Added line 593:
Added line 604:
Added line 613:
Added line 623:
Added line 632:
Added line 644:
Added line 651:
Added line 660:
Added line 669:
Added line 678:
Added line 687:
Added line 696:
Added line 705:
Added line 714:
Added line 724:
Added line 733:
Added line 742:
Added line 749:
Added line 756:
Added line 765:
Added line 774:
Added line 783:
Added line 792:
Added line 801:
Added line 808:
Added line 815:
Added line 824:
Added line 833:
Added line 842:
Added line 851:
Added line 858:
Added line 865:
Added line 874:
Added line 883:
Added line 893:
Added line 902:
Added line 911:
Added line 920:
Added line 929:
Changed lines 939-940 from:
\ to:
#55 Blueprint \Deleted line 941:
#55 BlueprintAdded line 951:
Added line 958:
Added line 967:
Added line 977:
Added line 986:
Added line 995:
Added line 1002:
Added line 1011:
Added line 1020:
Added line 1027:
Added line 1040:
Added line 1055:
Added line 1062:
Added line 1069:
Added line 1078:
Added line 1088:
Added line 1097:
Added line 1106:
Added line 1115:
Added line 1124:
Added line 1131:
Added line 1140:
Added line 1149:
Added line 1156:
Added line 1165:
Added line 1176:
Added line 1191:
Added line 1204:
Added line 1213:
Added line 1222:
Added line 1231:
Added line 1240:
Added line 1251:
Added line 1260:
Added line 1269:
Added line 1278:
Added line 1287:
Added line 1297:
Added line 1304:
Added line 1314:
Added line 1323:
Added line 1332:
Added line 1341:
Added line 1350:
Added line 1359:
2015-09-15 07:56
by - anchoring
Changed lines 8-9 from:
#1 Compilation Unitto:
#1 Compilation Unit syntax diagramChanged lines 20-21 from:
#2 Definition Moduleto:
#2 Definition Module syntax diagramChanged lines 31-32 from:
#2.1 Module Identifier, Blueprint Identifier, Type To Extendto:
#2.1 Module Identifier, Blueprint Identifier, Type To Extend syntax diagramChanged lines 41-42 from:
#2.2 Blueprint To Obeyto:
#2.2 Blueprint To Obey syntax diagramChanged lines 47-48 from:
#3 Import Listto:
#3 Import List syntax diagramChanged lines 55-56 from:
#4 Library Generation Directiveto:
#4 Library Generation Directive syntax diagramChanged lines 63-64 from:
#4.1 Library Identifier, Template, Placeholderto:
#4.1 Library Identifier, Template, Placeholder syntax diagramChanged lines 73-74 from:
#4.2 Replacementto:
#4.2 Replacement syntax diagramChanged lines 81-82 from:
#5 Import Directiveto:
#5 Import Directive syntax diagramChanged lines 91-92 from:
#5.1 Enumeration Type Identifierto:
#5.1 Enumeration Type Identifier syntax diagramChanged lines 97-98 from:
#5.2 Type Identifierto:
#5.2 Type Identifier syntax diagramChanged lines 103-104 from:
#5.3 Identifiers To Import, Modules To Importto:
#5.3 Identifiers To Import, Modules To Import syntax diagramChanged lines 113-114 from:
#5.4 Re-Exportto:
#5.4 Re-Export syntax diagramChanged lines 119-120 from:
#5.5 Import Allto:
#5.5 Import All syntax diagramChanged lines 125-126 from:
#6 Qualified Identifierto:
#6 Qualified Identifier syntax diagramChanged lines 133-134 from:
#7 Definitionto:
#7 Definition syntax diagramChanged lines 144-145 from:
#8 Constant Definitionto:
#8 Constant Definition syntax diagramChanged lines 153-154 from:
#8.1 Constant Expressionto:
#8.1 Constant Expression syntax diagramChanged lines 159-160 from:
#8.2 Restricted Exportto:
#8.2 Restricted Export syntax diagramChanged lines 165-166 from:
#9 Type Definitionto:
#9 Type Definition syntax diagramChanged lines 173-174 from:
#10 Variable Declarationto:
#10 Variable Declaration syntax diagramChanged lines 181-182 from:
#11 Identifier Listto:
#11 Identifier List syntax diagramChanged lines 189-190 from:
#12 Rangeto:
#12 Range syntax diagramChanged lines 197-198 from:
#12.1 Greater Thanto:
#12.1 Greater Than syntax diagramChanged lines 203-204 from:
#12.2 Less Thanto:
#12.2 Less Than syntax diagramChanged lines 209-210 from:
#13 Typeto:
#13 Type syntax diagramChanged lines 218-219 from:
#13.1 Derived Sub-Typeto:
#13.1 Derived Sub-Type syntax diagramChanged lines 228-229 from:
#13.2 Ordinal Or Scalar Type, Dynamic Type Identifierto:
#13.2 Ordinal Or Scalar Type, Dynamic Type Identifier syntax diagramChanged lines 236-237 from:
#14 Enumeration Typeto:
#14 Enumeration Type syntax diagramChanged lines 244-245 from:
#14.1 Enumeration Type To Extendto:
#14.1 Enumeration Type To Extend syntax diagramChanged lines 250-251 from:
#15 Set Typeto:
#15 Set Type syntax diagramChanged lines 258-259 from:
#16 Array Typeto:
#16 Array Type syntax diagramChanged lines 266-267 from:
#16.1 Component Countto:
#16.1 Component Count syntax diagramChanged lines 272-273 from:
#17 Record Typeto:
#17 Record Type syntax diagramChanged lines 282-283 from:
#17.1 Field Listto:
#17.1 Field List syntax diagramChanged lines 290-291 from:
#17.2 Record Type To Extendto:
#17.2 Record Type To Extend syntax diagramChanged lines 296-297 from:
#17.3 Indeterminate Fieldto:
#17.3 Indeterminate Field syntax diagramChanged lines 304-305 from:
#17.4 Discriminant Field Identto:
#17.4 Discriminant Field Ident syntax diagramChanged lines 310-311 from:
#18 Pointer Typeto:
#18 Pointer Type syntax diagramChanged lines 318-319 from:
#19 Coroutine Typeto:
#19 Coroutine Type syntax diagramChanged lines 326-327 from:
#19.1 Associated Procedure Typeto:
#19.1 Associated Procedure Type syntax diagramChanged lines 332-333 from:
#20 Procedure Typeto:
#20 Procedure Type syntax diagramChanged lines 340-341 from:
#20.1 Formal Typeto:
#20.1 Formal Type syntax diagramChanged lines 348-349 from:
#21 Simple Formal Typeto:
#21 Simple Formal Type syntax diagramChanged lines 356-357 from:
#21.1 Casting Formal Typeto:
#21.1 Casting Formal Type syntax diagramChanged lines 364-365 from:
#21.2 Address Type Identifierto:
#21.2 Address Type Identifier syntax diagramChanged lines 372-373 from:
#22 Attributed Formal Typeto:
#22 Attributed Formal Type syntax diagramChanged lines 380-381 from:
#23 Simple Variadic Formal Typeto:
#23 Simple Variadic Formal Type syntax diagramChanged lines 388-389 from:
#23.1 Required Number Of Argumentsto:
#23.1 Required Number Of Arguments syntax diagramChanged lines 396-397 from:
#23.2 Argument List Terminatorto:
#23.2 Argument List Terminator syntax diagramChanged lines 404-405 from:
#23.3 Constant Qualified Identifierto:
#23.3 Constant Qualified Identifier syntax diagramChanged lines 410-411 from:
#24 Variadic Formal Typeto:
#24 Variadic Formal Type syntax diagramChanged lines 420-421 from:
#25 Non-Variadic Formal Typeto:
#25 Non-Variadic Formal Type syntax diagramChanged lines 428-429 from:
#26 Procedure Headerto:
#26 Procedure Header syntax diagramChanged lines 437-438 from:
#27 Procedure Signatureto:
#27 Procedure Signature syntax diagramChanged lines 445-446 from:
#28 Formal Parametersto:
#28 Formal Parameters syntax diagramChanged lines 454-455 from:
#29 Attributed Formal Parametersto:
#29 Attributed Formal Parameters syntax diagramChanged lines 463-464 from:
#30 Variadic Formal Parametersto:
#30 Variadic Formal Parameters syntax diagramChanged lines 473-474 from:
#31 Non-Variadic Formal Parametersto:
#31 Non-Variadic Formal Parameters syntax diagramChanged lines 484-485 from:
to:
Changed lines 494-495 from:
#33 Blockto:
#33 Block syntax diagramChanged lines 502-503 from:
#34 Declarationto:
#34 Declaration syntax diagramChanged lines 513-514 from:
#35 Statement Sequenceto:
#35 Statement Sequence syntax diagramChanged lines 521-522 from:
#36 Statementto:
#36 Statement syntax diagramChanged lines 531-532 from:
#37 Memory Management Operationto:
#37 Memory Management Operation syntax diagramChanged lines 541-542 from:
#37.1 Initial Size, Initial Valueto:
#37.1 Initialisation Size, Initialisation Value syntax diagramChanged lines 549-550 from:
#38 Update Or Procedure Callto:
#38 Update Or Procedure Call syntax diagramChanged lines 558-559 from:
#38.1 Increment Or Decrement Suffixto:
#38.1 Increment Or Decrement Suffix syntax diagramChanged lines 566-567 from:
#39 IF Statementto:
#39 IF Statement syntax diagramChanged lines 577-578 from:
#39.1 Boolean Expressionto:
#39.1 Boolean Expression syntax diagramChanged lines 583-584 from:
#40 CASE Statementto:
#40 CASE Statement syntax diagramChanged lines 591-592 from:
#40.1 Caseto:
#40.1 Case syntax diagramChanged lines 599-600 from:
#40.2 Case Labelsto:
#40.2 Case Labels syntax diagramChanged lines 607-608 from:
#41 LOOP Statementto:
#41 LOOP Statement syntax diagramChanged lines 615-616 from:
#42 WHILE Statementto:
#42 WHILE Statement syntax diagramChanged lines 623-624 from:
#43 REPEAT Statementto:
#43 REPEAT Statement syntax diagramChanged lines 631-632 from:
#44 FOR Statementto:
#44 FOR Statement syntax diagramChanged lines 639-640 from:
#44.1 FOR Loop Variantsto:
#44.1 FOR Loop Variants syntax diagramChanged lines 648-649 from:
#44.2 Accessor, Valueto:
#44.2 Accessor, Value syntax diagramChanged lines 656-657 from:
#44.3 Iterable Entityto:
#44.3 Iterable Entity syntax diagramChanged lines 664-665 from:
#44.4 Ascender Or Descenderto:
#44.4 Ascender Or Descender syntax diagramChanged lines 670-671 from:
#44.5 Ordinal Typeto:
#44.5 Ordinal Type syntax diagramChanged lines 676-677 from:
#45 Designatorto:
#45 Designator syntax diagramChanged lines 684-685 from:
#45.1 Designator Tailto:
#45.1 Designator Tail syntax diagramChanged lines 692-693 from:
#45.2 Expression List Or Sliceto:
#45.2 Expression List Or Slice syntax diagramChanged lines 700-701 from:
#46 Expressionto:
#46 Expression syntax diagramChanged lines 708-709 from:
#46.1 Level-1 Operatorto:
#46.1 Level-1 Operator syntax diagramChanged lines 716-717 from:
#46.2 Concatenation Operatorto:
#46.2 Concatenation Operator syntax diagramChanged lines 722-723 from:
#46.3 Identity Operatorto:
#46.3 Identity Operator syntax diagramChanged lines 728-729 from:
#47 Simple Expressionto:
#47 Simple Expression syntax diagramChanged lines 736-737 from:
#47.1 Level-2 Operatorto:
#47.1 Level-2 Operator syntax diagramChanged lines 744-745 from:
#48 Termto:
#48 Term syntax diagramChanged lines 752-753 from:
#48.1 Level-3 Operatorto:
#48.1 Level-3 Operator syntax diagramChanged lines 760-761 from:
#48.2 Set Difference Operatorto:
#48.2 Set Difference Operator syntax diagramChanged lines 766-767 from:
#48.3 Dot Product Operatorto:
#48.3 Dot Product Operator syntax diagramChanged lines 772-773 from:
#49 Factor Or Negationto:
#49 Factor Or Negation syntax diagramChanged lines 780-781 from:
#50 Factor Or Type Conversionto:
#50 Factor Or Type Conversion syntax diagramChanged lines 788-789 from:
#51 Factorto:
#51 Factor syntax diagramChanged lines 797-798 from:
#52 Actual Parametersto:
#52 Actual Parameters syntax diagramChanged lines 805-806 from:
#53 Expression Listto:
#53 Expression List syntax diagramChanged lines 813-814 from:
#54 Structured Valueto:
#54 Structured Value syntax diagramChanged lines 821-822 from:
#54.1 Value Componentto:
#54.1 Value Component syntax diagramChanged lines 829-830 from:
#54.2 Runtime Expressionto:
#54.2 Runtime Expression syntax diagramChanged lines 838-839 from:
to:
Changed lines 850-851 from:
#55.1 Blueprint Identifierto:
#55.1 Blueprint Identifier syntax diagramChanged lines 856-857 from:
#55.2 Blueprint To Refine, Blueprint For Type To Extendto:
#55.2 Blueprint To Refine, Blueprint For Type To Extend syntax diagramChanged lines 864-865 from:
#56 Type Classificationto:
#56 Type Classification syntax diagramChanged lines 873-874 from:
#56.1 Determined Classificationto:
#56.1 Determined Classification syntax diagramChanged lines 881-882 from:
#56.2 Refinable Classificationto:
#56.2 Refinable Classification syntax diagramChanged lines 889-890 from:
#56.3 Classification Identifierto:
#56.3 Classification Identifier syntax diagramChanged lines 895-896 from:
#57 Literal Compatibilityto:
#57 Literal Compatibility syntax diagramChanged lines 903-904 from:
#57.1 Proto-Literalto:
#57.1 Proto-Literal syntax diagramChanged lines 911-912 from:
#57.2 Proto-Literal Identifierto:
#57.2 Proto-Literal Identifier syntax diagramChanged lines 917-918 from:
#58 Structured Proto-Literalto:
#58 Structured Proto-Literal syntax diagramChanged lines 929-930 from:
#58.1 Required Value Countto:
#58.1 Required Value Count syntax diagramChanged lines 937-938 from:
#58.2 Greater Thanto:
#58.2 Greater Than syntax diagramChanged lines 943-944 from:
#58.3 Whole Numberto:
#58.3 Whole Number syntax diagramChanged lines 949-950 from:
#58.4 Built-in Type Or Referential Identifierto:
#58.4 Built-in Type Or Referential Identifier syntax diagramChanged lines 955-956 from:
#59 Constraintto:
#59 Constraint syntax diagramChanged lines 963-964 from:
#59.1 Constraint Termto:
#59.1 Constraint Term syntax diagramChanged lines 972-973 from:
#59.2 Bindable Entity Or Propertyto:
#59.2 Bindable Entity Or Property syntax diagramChanged lines 980-981 from:
#59.3 One-Way Dependencyto:
#59.3 One-Way Dependency syntax diagramChanged lines 988-989 from:
#59.4 Mutual Dependency Or Exclusionto:
#59.4 Mutual Dependency Or Exclusion syntax diagramChanged lines 996-997 from:
#59.5 Term Listto:
#59.5 Term List syntax diagramChanged lines 1004-1005 from:
#59.6 Classification Or Flag Identifierto:
#59.6 Classification Or Flag Identifier syntax diagramChanged lines 1010-1011 from:
#60 Requirementto:
#60 Requirement syntax diagramChanged lines 1018-1019 from:
#60.1 Conditionto:
#60.1 Condition syntax diagramChanged lines 1026-1027 from:
#60.2 Boolean Constant Identifierto:
#60.2 Boolean Constant Identifier syntax diagramChanged lines 1032-1033 from:
#60.3 Type Requirementto:
#60.3 Type Requirement syntax diagramChanged lines 1040-1041 from:
#61 Constant Requirementto:
#61 Constant Requirement syntax diagramChanged lines 1050-1051 from:
#61.1 Simple Constant Requirementto:
#61.1 Simple Constant Requirement syntax diagramChanged lines 1058-1059 from:
#61.2 Constant Expressionto:
#61.2 Constant Expression syntax diagramChanged lines 1064-1065 from:
#61.3 Built-in Type Identifierto:
#61.3 Built-in Type Identifier syntax diagramChanged lines 1070-1071 from:
#61.4 Restricted Exportto:
#61.4 Restricted Export syntax diagramChanged lines 1076-1077 from:
#62 Property To Bind Toto:
#62 Property To Bind To syntax diagramChanged lines 1084-1085 from:
#62.1 Memory Management Propertyto:
#62.1 Memory Management Property syntax diagramChanged lines 1092-1093 from:
#62.2 Collection Propertyto:
#62.2 Collection Property syntax diagramChanged lines 1100-1101 from:
#62.3 Scalar Propertyto:
#62.3 Scalar Property syntax diagramChanged lines 1108-1109 from:
#63 Procedure Requirementto:
#63 Procedure Requirement syntax diagramChanged line 1111 from:
procedureRequirement : to:
procRequirement : Changed lines 1118-1119 from:
#64 Entity To Bind Toto:
#64 Entity To Bind To syntax diagramChanged lines 1126-1127 from:
#64.1 Bindable Reserved Wordto:
#64.1 Bindable Reserved Word syntax diagramChanged lines 1134-1135 from:
#64.2 Bindable FORto:
#64.2 Bindable FOR syntax diagramChanged lines 1142-1143 from:
#64.3 FOR Binding Differentiatorto:
#64.3 FOR Binding Differentiator syntax diagramChanged lines 1150-1151 from:
#64.4 Bindable Operatorto:
#64.4 Bindable Operator syntax diagramChanged lines 1159-1160 from:
#64.5 Unary Minusto:
#64.5 Unary Minus syntax diagramChanged lines 1165-1166 from:
#64.6 Bindable Macroto:
#64.6 Bindable Macro syntax diagramChanged lines 1174-1175 from:
#64.7 Multi-Bindable Macro 1to:
#64.7 Multi-Bindable Macro 1 syntax diagramChanged lines 1182-1183 from:
#64.8 Binding Differentiator 1to:
#64.8 Binding Differentiator 1 syntax diagramChanged lines 1190-1191 from:
#64.9 Multi-Bindable Macro 2to:
#64.9 Multi-Bindable Macro 2 syntax diagramChanged lines 1198-1199 from:
#64.10 Binding Differentiator 2to:
#64.10 Binding Differentiator 2 syntax diagramChanged lines 1206-1207 from:
#64.11 Multi-Bindable Macro 3to:
#64.11 Multi-Bindable Macro 3 syntax diagramChanged lines 1214-1215 from:
#64.12 Binding Differentiator 3to:
#64.12 Binding Differentiator 3 syntax diagram2015-09-15 05:52
by - anchoring
Changed lines 2-3 from:
to:
Changed line 9 from:
to:
definitionModule | implOrPrgmModule | blueprint 2015-09-15 05:51
by - anchoring
Added lines 1-5:
Changed line 9 from:
definitionModule | implOrPrgmModule | blueprint to:
Added line 13:
Added line 16:
Added line 420:
Added line 423:
Added line 730:
Added line 733:
Changed line 1066 from:
@] to:
@] 2015-09-14 16:20
by -
Changed line 132 from:
#8.2 Constant Expressionto:
#8.2 Restricted ExportChanged line 345 from:
#23.2 Constant Qualified Identifierto:
#23.3 Constant Qualified Identifier2015-09-14 12:47
by - moved terminals (ebnf) to separate page
Added lines 1-1057:
(1) Non-Terminals#1 Compilation UnitcompilationUnit : definitionModule | implOrPrgmModule | blueprint ; Definition Module Syntax#2 Definition ModuledefinitionModule : DEFINITION MODULE moduleIdent ( '[' blueprintToObey ']' )? ( FOR typeToExtend )? ';' (importList ';')* definition* END moduleIdent '.' ; #2.1 Module Identifier, Blueprint Identifier, Type To ExtendmoduleIdent : Ident ; blueprintIdent : Ident ; typeToExtend : Ident ; #2.2 Blueprint To ObeyblueprintToObey : blueprintIdent ; #3 Import ListimportList : libGenDirective | importDirective ; #4 Library Generation DirectivelibGenDirective : GENLIB libIdent FROM template FOR templateParamList END ; #4.1 Library Identifier, Template, PlaceholderlibIdent : Ident ; template : Ident ; placeholder : Ident ; #4.2 Replacementreplacement : NumberLiteral | StringLiteral | ChevronText ; #5 Import DirectiveimportDirective : FROM ( moduleIdent | ENUM enumTypeIdent ) IMPORT ( identifiersToImport | importAll ) | IMPORT modulesToImport ; #5.1 Enumeration Type IdentifierenumTypeIdent : typeIdent ; #5.2 Type IdentifiertypeIdent : qualident ; #5.3 Identifiers To Import, Modules To ImportidentifiersToImport : Ident reExport? ( ',' Ident reExport? )* ; modulesToImport : identifiersToImport ; #5.4 Re-ExportreExport : '+' ; #5.5 Import AllimportAll : '*' ; #6 Qualified Identifierqualident : Ident ( '.' Ident )* ; #7 Definitiondefinition : CONST ( constDefinition ';' )+ | TYPE ( typeDefinition ';' )+ | VAR ( variableDeclaration ';' )+ | procedureHeader ';' ; #8 Constant DefinitionconstDefinition : ( '[' propertyToBindTo ']' | restrictedExport )? Ident '=' constExpression ; #8.1 Constant ExpressionconstExpression : expression ; #8.2 Constant ExpressionrestrictedExport : '*' ; #9 Type DefinitiontypeDefinition : restrictedExport? Ident '=' ( OPAQUE | type ) ; #10 Variable DeclarationvariableDeclaration : identList ':' ( range OF )? typeIdent ; #11 Identifier ListidentList : Ident ( ',' Ident )* ; #12 Rangerange : '[' greaterThan? constExpression '..' lessThan? constExpression ']' ; #12.1 Greater ThangreaterThan : '>' ; #12.2 Less ThanlessThan : '<' ; #13 Typetype : typeIdent | derivedSubType | enumType | setType | arrayType | recordType | pointerType | coroutineType | procedureType ; #13.1 Derived Sub-TypederivedSubType : ALIAS OF typeIdent | range OF ordinalOrScalarType | CONST dynamicTypeIdent ; #13.2 Ordinal Or Scalar Type, Dynamic Type IdentifierordinalOrScalarType : typeIdent ; dynamicTypeIdent : typeIdent ; #14 Enumeration TypeenumType : '(' ( '+' enumTypeToExtend )? identList ')' ; #14.1 Enumeration Type To ExtendenumTypeToExtend : typeIdent ; #15 Set TypesetType : SET OF enumTypeIdent ; #16 Array TypearrayType : ARRAY componentCount ( ',' componentCount )* OF typeIdent ; #16.1 Component CountcomponentCount : constExpression ; #17 Record TyperecordType : RECORD ( fieldList ( ';' fieldList )* indeterminateField? | '(' recTypeToExtend ')' fieldList ( ';' fieldList )* ) ; #17.1 Field ListfieldList : restrictedExport? variableDeclaration ; #17.2 Record Type To ExtendrecTypeToExtend : typeIdent ; #17.3 Indeterminate FieldindeterminateField : '~' Ident ':' ARRAY discriminantFieldIdent OF typeIdent ; #17.4 Discriminant Field IdentdiscriminantFieldIdent : Ident ; #18 Pointer TypepointerType : POINTER TO CONST? typeIdent ; #19 Coroutine TypecoroutineType : COROUTINE '(' assocProcType ')' ; #19.1 Associated Procedure TypeassocProcType : typeIdent ; #20 Procedure TypeprocedureType : PROCEDURE ( formalType ( ',' formalType )* )? ( ':' returnedType )? ; #20.1 Formal TypeformalType : simpleFormalType | attributedFormalType | variadicFormalType ; #21 Simple Formal TypesimpleFormalType : ( ARRAY OF )? typeIdent | castingFormalType ; #21.1 Casting Formal TypecastingFormalType : CAST ( ARRAY OF OCTET | addressTypeIdent ) ; #21.2 Address Type IdentifieraddressTypeIdent : ( UNSAFE '.' )? ADDRESS ; #22 Attributed Formal TypeattributedFormalType : ( CONST | NEW | VAR ) ( simpleFormalType | simpleVariadicFormalType ) ; #23 Simple Variadic Formal TypesimpleVariadicFormalType : ARGLIST reqNumOfArgs? OF simpleFormalType terminator? ; #23.1 Required Number Of ArgumentsreqNumOfArgs : greaterThan? constExpression ; #23.2 Argument List Terminatorterminator : '|' constQualident ; #23.2 Constant Qualified IdentifierconstQualident : qualident ; #24 Variadic Formal TypevariadicFormalType : ARGLIST reqNumOfArgs? OF ( '{' nonVariadicFormalType ( ';' nonVariadicFormalType )* '}' | simpleFormalType ) terminator? ; #25 Non-Variadic Formal TypenonVariadicFormalType : ( CONST | NEW | VAR )? simpleFormalType ; #26 Procedure HeaderprocedureHeader : PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' | restrictedExport )? procedureSignature ; #27 Procedure SignatureprocedureSignature : Ident ( '(' formalParams ( ';' formalParams )* ')' )? ( ':' returnedType )? ; #28 Formal ParametersformalParams : identList ':' ( simpleFormalType | variadicFormalParams ) | attributedFormalParams ; #29 Attributed Formal ParametersattributedFormalParams : ( CONST | NEW | VAR ) identList ':' ( simpleFormalType | simpleVariadicFormalType ) ; #30 Variadic Formal ParametersvariadicFormalParams : ARGLIST reqNumOfArgs? OF ( ( '{' nonVariadicFormalParams ( ';' nonVariadicFormalParams )* '}') | simpleFormalType ) terminator? ; #31 Non-Variadic Formal ParametersnonVariadicFormalParams : ( CONST | NEW | VAR )? identList ':' simpleFormalType ; Implementation And Program Module Syntax#32 Implementation Or Program ModuleimplOrPrgmModule : IMPLEMENTATION? MODULE moduleIdent ';' ( importList ';' )* block moduleIdent '.' ; #33 Blockblock : declaration* ( BEGIN statementSequence )? END ; #34 Declarationdeclaration : CONST ( Ident '=' constExpression ';' )+ | TYPE ( Ident '=' type ';' )+ | VAR ( variableDeclaration ';' )+ | procedureHeader ';' block Ident ';' ; #35 Statement SequencestatementSequence : statement ( ';' statement )* ; #36 Statementstatement : memMgtOperation | updateOrProcCall | ifStatement | caseStatement | loopStatement | whileStatement | repeatStatement | forStatement | ( RETURN | YIELD ) expression? | EXIT ; #37 Memory Management OperationmemMgtOperation : NEW designator ( OF initSize | := initValue )? | RETAIN designator | RELEASE designator ; #37.1 Initial Size, Initial ValueinitSize : expression ; initValue : expression ; #38 Update Or Procedure CallupdateOrProcCall : designator ( ':=' expression | incOrDecSuffix | actualParameters )? | COPY designator ':=' expression ; #38.1 Increment Or Decrement SuffixincOrDecSuffix : '++' | '--' ; #39 IF StatementifStatement : IF boolExpression THEN statementSequence ( ELSIF boolExpression THEN statementSequence )? ( ELSE statementSequence )? END ; #39.1 Boolean ExpressionboolExpression : expression ; #40 CASE StatementcaseStatement : CASE expression OF ( '|' case )+ ( ELSE statementSequence )? END ; #40.1 Casecase : caseLabels ( ',' caseLabels )* ':' statementSequence ; #40.2 Case LabelscaseLabels : constExpression ( '..' constExpression )? ; #41 LOOP StatementloopStatement : LOOP statementSequence END ; #42 WHILE StatementwhileStatement : WHILE boolExpression DO statementSequence END ; #43 REPEAT StatementrepeatStatement : REPEAT statementSequence UNTIL boolExpression ; #44 FOR StatementforStatement : FOR forLoopVariants IN iterableEntity DO statementSequence END ; #44.1 FOR Loop VariantsforLoopVariants : accessor ascOrDesc? ( ',' value )? | VALUE value ascOrDesc? ; #44.2 Accessor, Valueaccessor : Ident ; value : Ident ; #44.3 Iterable EntityiterableEntity : designator | range OF ordinalType ; #44.4 Ascender Or DescenderascOrDesc : incOrDecSuffix ; #44.5 Ordinal TypeordinalType : typeIdent ; #45 Designatordesignator : qualident designatorTail? ; #45.1 Designator TaildesignatorTail : ( ( '[' exprListOrSlice ']' | '^' ) ( '.' Ident )* )+ ; #45.2 Expression List Or SliceexprListOrSlice : expression ( ( ',' expression )* | '..' expression? ) ; #46 Expressionexpression : simpleExpression ( operL1 simpleExpression )? ; #46.1 Level-1 OperatoroperL1 : '=' | '#' | '<' | '<=' | '>' | '>=' | IN | concatOp | identityOp ; #46.2 Concatenation OperatorconcatOp : '&' ; #46.3 Identity OperatoridentityOp : '==' ; #47 Simple ExpressionsimpleExpression : ( '+' | '-' )? term ( operL2 term )* ; #47.1 Level-2 OperatoroperL2 : '+' | '-' | OR ; #48 Termterm : factorOrNegation ( operL3 factorOrNegation )* ; #48.1 Level-3 OperatoroperL3 : '*' | '/' | DIV | MOD | AND | setDiffOp | dotProductOp ; #48.2 Set Difference OperatorsetDiffOp : '\' ; #48.3 Dot Product OperatordotProductOp : '*.' ; #49 Factor Or NegationfactorOrNegation : NOT? factorOrTypeConv ; #50 Factor Or Type ConversionfactorOrTypeConv : factor ( '::' typeIdent )? ; #51 Factorfactor : NumberLiteral | StringLiteral | structuredValue | '(' expression ')' | designator actualParameters? ; #52 Actual ParametersactualParameters : '(' expressionList ')' ; #53 Expression ListexpressionList : expression ( ',' expression )* ; #54 Structured ValuestructuredValue : '{' valueComponent ( ',' valueComponent )* '}' ; #54.1 Value ComponentvalueComponent : constExpression (( BY | '..' )? constExpression )? | runtimeExpression ; #54.2 Runtime ExpressionruntimeExpression : expression ; Blueprint Syntax#55 Blueprintblueprint : BLUEPRINT blueprintIdent ( '[' blueprintToRefine ']' )? ( FOR blueprintForTypeToExtend )? ';' ( REFERENTIAL identList ';' )? MODULE TYPE '=' ( typeClassification ( ';' literalCompatibility)? | NONE ) ';' ( constraint ';' )* ( requirement ';' )* END blueprintIdent '.' ; #55.1 Blueprint IdentifierblueprintIdent : Ident ; #55.2 Blueprint To Refine, Blueprint For Type To ExtendblueprintToRefine : blueprintIdent ; blueprintForTypeToExtend : blueprintIdent ; #56 Type ClassificationtypeClassification : '{' determinedClassification ( ';' refinableClassification )? ( ';' '*' )? '}' | '*' ; #56.1 Determined ClassificationdeterminedClassification : classificationIdent ( ',' classificationIdent )* ; #56.2 Refinable ClassificationrefinableClassification : '~' classificationIdent ( ',' '~' classificationIdent )* ; #56.3 Classification IdentifierclassificationIdent : Ident ; #57 Literal CompatibilityliteralCompatibility : TLITERAL '=' protoLiteral ( '|' protoLiteral )* ; #57.1 Proto-LiteralprotoLiteral : protoLiteralIdent | structuredProtoLiteral ; #57.2 Proto-Literal IdentifierprotoLiteralIdent : Ident ; #58 Structured Proto-LiteralstructuredProtoLiteral : '{' ( ARGLIST reqValueCount? OF ( '{' builtinOrReferential ( ',' builtinOrReferential )* '}' | builtinOrReferential ) ) | builtinOrReferential '}' ; #58.1 Required Value CountreqValueCount : greaterThan? wholeNumber ; #58.2 Greater ThangreaterThan : '>' ; #58.3 Whole NumberwholeNumber : NumberLiteral ; #58.4 Built-in Type Or Referential IdentifierbuiltinOrReferential : Ident ; #59 Constraintconstraint : constraintTerm ( oneWayDependency | mutualDependencyOrExclusion ) ; #59.1 Constraint TermconstraintTerm : '(' classificationOrFlagIdent ')' | '[' bindableEntityOrProperty ']' ; #59.2 Bindable Entity Or PropertybindableEntityOrProperty : entityToBindTo | propertyToBindTo ; #59.3 One-Way DependencyoneWayDependency : '->' termList ( '|' termList )* ; #59.4 Mutual Dependency Or ExclusionmutualDependencyOrExclusion : ( '<>' | '><' ) termList ; #59.5 Term ListtermList : constraintTerm ( ',' constraintTerm )* ; #59.6 Classification Or Flag IdentifierclassificationOrFlagIdent : Ident ; #60 Requirementrequirement : condition '->' ( typeRequirement | constRequirement | procRequirement ) ; #60.1 Conditioncondition : NOT? boolConstIdent ; #60.2 Boolean Constant IdentifierboolConstIdent : Ident ; #60.3 Type RequirementtypeRequirement : TYPE typeDefinition ; #61 Constant RequirementconstRequirement : CONST ( '[' propertyToBindTo ']' ( simpleConstRequirement | '=' NONE ) | restrictedExport? simpleConstRequirement ) ; #61.1 Simple Constant RequirementsimpleConstRequirement : Ident ( '=' constExpression | ':' builtinTypeIdent ) ; #61.2 Constant ExpressionconstExpression : expression ; #61.3 Built-in Type IdentifierbuiltinTypeIdent : Ident ; #61.4 Restricted ExportrestrictedExport : '*' ; #62 Property To Bind TopropertyToBindTo : memMgtProperty | collectionProperty | scalarProperty | TFLAGS ; #62.1 Memory Management PropertymemMgtProperty : TDYN | TREFC ; #62.2 Collection PropertycollectionProperty : TORDERED | TSORTED | TLIMIT ; #62.3 Scalar PropertyscalarProperty : TSCALAR | TMAX | TMIN ; #63 Procedure RequirementprocedureRequirement : PROCEDURE ( '[' ( entityToBindTo | COROUTINE ) ']' ( procedureSignature | '=' NONE ) | restrictedExport? procedureSignature ) ; #64 Entity To Bind ToentityToBindTo : bindableResWord | bindableOperator | bindableMacro ; #64.1 Bindable Reserved WordbindableResWord : NEW | RETAIN | RELEASE | COPY | bindableFor ; #64.2 Bindable FORbindableFor : FOR forBindingDifferentiator? ; #64.3 FOR Binding DifferentiatorforBindingDifferentiator : '|' ( '++' | '--' ) ; #64.4 Bindable OperatorbindableOperator : '+' | '-' | '*' | '/' | '\' | '=' | '<' | '>' | '*.' | '::' IN | DIV | MOD | unaryMinus ; #64.5 Unary MinusunaryMinus : '+/-' ; #64.6 Bindable MacrobindableMacro : ABS | LENGTH | EXISTS | SEEK | SUBSET | READ | READNEW | WRITE | WRITEF | SXF | VAL | multiBindableMacro1 | multiBindableMacro2 | multiBindableMacro3 ; #64.7 Multi-Bindable Macro 1multiBindableMacro1 : ( COUNT | VALUE ) bindingDifferentiator1? ; #64.8 Binding Differentiator 1bindingDifferentiator1 : '|' '#' ; #64.9 Multi-Bindable Macro 2multiBindableMacro2 : ( STORE | INSERT | REMOVE ) bindingDifferentiator2? ; #64.10 Binding Differentiator 2bindingDifferentiator2 : '|' ( ',' | '#' | '*' ) ; #64.11 Multi-Bindable Macro 3multiBindableMacro3 : APPEND bindingDifferentiator3? ; #64.12 Binding Differentiator 3bindingDifferentiator3 : '|' ( ',' | '*' ) ; |