Modula-2 Reloaded

A Modern Typesafe & Literate Programming Notation

Site Menu

Project

Specification

Implementation

Recommendations

Reference

Needs Updating

Work in Progress

Wastebasket

Wiki Manual

edit SideBar

Pragmas

EBNF.Pragmas History

Hide minor edits - Show changes to output

2015-10-09 19:01 by trijezdci -
Changed line 334 from:
  ( '+' | '-' )? inPragmaTerm ( inPragmaOperL2 inPragmaTerm )*
to:
  inPragmaTerm ( inPragmaOperL2 inPragmaTerm )* | '-' inPragmaFactor
2015-09-17 18:26 by trijezdci -
Changed lines 57-58 from:
    StringLiteral | constQualident | '?' valuePragma
    ;
to:
  StringLiteral | constQualident | '?' valuePragma
  ;
Changed lines 72-73 from:
    ALIGN | ENCODING | valuePragmaSymbol
    ;
to:
  ALIGN | ENCODING | valuePragmaSymbol
  ;
2015-09-17 18:24 by trijezdci -
Changed line 7 from:
pragma :
to:
pragma :=
Changed line 16 from:
pragmaBody :
to:
pragmaBody :=
Changed line 29 from:
ctMsgPragma :
to:
ctMsgPragma :=
Changed line 38 from:
ctMsgMode :
to:
ctMsgMode :=
Changed line 47 from:
ctMsgComponentList :
to:
ctMsgComponentList :=
Changed line 56 from:
ctMsgComponent :
to:
ctMsgComponent :=
Changed line 64 from:
constQualident : qualident ;
to:
constQualident := qualident ;
Changed line 71 from:
valuePragma :
to:
valuePragma :=
Changed line 80 from:
valuePragmaSymbol : PragmaSymbol ;
to:
valuePragmaSymbol := PragmaSymbol ;
Changed line 87 from:
PragmaSymbol :
to:
PragmaSymbol :=
Changed line 96 from:
condCompPragma :
to:
condCompPragma :=
Changed line 105 from:
procDeclAttrPragma :
to:
procDeclAttrPragma :=
Changed line 114 from:
promiseToWritePragma :
to:
promiseToWritePragma :=
Changed line 123 from:
forwardDeclPragma :
to:
forwardDeclPragma :=
Changed line 132 from:
charEncodingPragma : 
to:
charEncodingPragma :=
Changed line 142 from:
codePointSampleList :
to:
codePointSampleList :=
Changed line 149 from:
codePointSample :
to:
codePointSample :=
Changed line 158 from:
quotedCharacter : StringLiteral ; /* single character only */
to:
quotedCharacter := StringLiteral ; /* single character only */
Changed line 165 from:
charCodeLiteral : NumberLiteral ; /* whole number only */
to:
charCodeLiteral := NumberLiteral ; /* whole number only */
Changed line 172 from:
memAlignmentPragma :
to:
memAlignmentPragma :=
Changed line 181 from:
bitPaddingPragma :
to:
bitPaddingPragma :=
Changed line 190 from:
purityAttrPragma :
to:
purityAttrPragma :=
Changed line 199 from:
varDeclAttrPragma :
to:
varDeclAttrPragma :=
Changed line 208 from:
deprecationPragma :
to:
deprecationPragma :=
Changed line 217 from:
genTimestampPragma :
to:
genTimestampPragma :=
Changed line 226 from:
datestamp :
to:
datestamp :=
Changed line 235 from:
timestamp :
to:
timestamp :=
Changed lines 244-254 from:
year : wholeNumber ;

month : wholeNumber ;

day : wholeNumber ;

hours : wholeNumber ;

minutes : wholeNumber ;

seconds : wholeNumber ;
to:
year := wholeNumber ;

month := wholeNumber ;

day := wholeNumber ;

hours := wholeNumber ;

minutes := wholeNumber ;

seconds := wholeNumber ;
Changed line 261 from:
utcOffset :
to:
utcOffset :=
Changed line 270 from:
memMappingPragma :
to:
memMappingPragma :=
Changed line 279 from:
ffiPragma :
to:
ffiPragma :=
Changed line 288 from:
ffidentPragma :
to:
ffidentPragma :=
Changed line 297 from:
implDefinedPragma :
to:
implDefinedPragma :=
Changed line 306 from:
implPrefix :
to:
implPrefix :=
Changed line 315 from:
inPragmaExpr :
to:
inPragmaExpr :=
Changed line 324 from:
inPragmaOperL1 :
to:
inPragmaOperL1 :=
Changed line 333 from:
inPragmaSimpleExpr :
to:
inPragmaSimpleExpr :=
Changed line 342 from:
inPragmaOperL2 :
to:
inPragmaOperL2 :=
Changed line 351 from:
inPragmaTerm :
to:
inPragmaTerm :=
Changed line 360 from:
inPragmaOperL3 :
to:
inPragmaOperL3 :=
Changed line 369 from:
inPragmaSimpleTerm :
to:
inPragmaSimpleTerm :=
Changed line 378 from:
inPragmaFactor :
to:
inPragmaFactor :=
Changed line 389 from:
inPragmaCtFunctionCall :
to:
inPragmaCtFunctionCall :=
2015-09-16 02:40 by trijezdci -
Added lines 1-2:
%silver%'''[-[[EBNF.IgnoreSymbols|<< Ignore Symbols]]-]'''%%
2015-09-15 17:15 by trijezdci -
Changed line 378 from:
  /* constQualident is covered by inPragmaCompileTimeFunctionCall */
to:
  /* constQualident is covered by inPragmaCtFunctionCall */
2015-09-15 17:14 by trijezdci -
Changed line 313 from:
inPragmaExpression :
to:
inPragmaExpr :
2015-09-15 17:08 by trijezdci -
Changed lines 15-19 from:
  pragmaMSG | pragmaIF | procDeclAttrPragma | pragmaOUT | pragmaFORWARD |
  pragmaENCODING | pragmaALIGN | pragmaPADBITS | pragmaPURITY |
  varDeclAttrPragma | pragmaDEPRECATED | pragmaGENERATED |
  pragmaADDR | pragmaFFI | pragmaFFIDENT | implDefinedPragma
 ;
to:
  ctMsgPragma | condCompPragma | procDeclAttrPragma | promiseToWritePragma |
  forwardDeclPragma | charEncodingPragma | memAlignmentPragma |
  bitPaddingPragma | purityAttrPragma | varDeclAttrPragma | deprecationPragma |
  genTimestampPragma | memMappingPragma | ffiPragma | ffidentPragma |
  implDefinedPragma
  ;
Changed line 23 from:
[[#pragmaMSG]]
to:
[[#ctMsgPragma]]
Changed line 25 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaMSG|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#ctMsgPragma|syntax diagram]]%%-]
Changed line 27 from:
pragmaMSG :
to:
ctMsgPragma :
Changed line 90 from:
[[#pragmaIF]]
to:
[[#condCompPragma]]
Changed line 92 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaIF|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#condCompPragma|syntax diagram]]%%-]
Changed line 94 from:
pragmaIF :
to:
condCompPragma :
Changed line 108 from:
[[#pragmaOUT]]
to:
[[#promiseToWritePragma]]
Changed line 110 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaOUT|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#promiseToWritePragma|syntax diagram]]%%-]
Changed line 112 from:
pragmaOUT :
to:
promiseToWritePragma :
Changed line 117 from:
[[#pragmaFORWARD]]
to:
[[#forwardDeclPragma]]
Changed line 119 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaFORWARD|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#forwardDeclPragma|syntax diagram]]%%-]
Changed line 121 from:
pragmaFORWARD :
to:
forwardDeclPragma :
Changed line 126 from:
[[#pragmaENCODING]]
to:
[[#charEncodingPragma]]
Changed line 128 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaENCODING|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#charEncodingPragma|syntax diagram]]%%-]
Changed line 130 from:
pragmaENCODING :
to:
charEncodingPragma :
Changed line 166 from:
[[#pragmaALIGN]]
to:
[[#memAlignmentPragma]]
Changed line 168 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaALIGN|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#memAlignmentPragma|syntax diagram]]%%-]
Changed lines 170-171 from:
pragmaALIGN :
  ALIGN '=' inPragmaExpression
to:
memAlignmentPragma :
  ALIGN '=' inPragmaExpr
Changed line 175 from:
[[#pragmaPADBITS]]
to:
[[#bitPaddingPragma]]
Changed line 177 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaPADBITS|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#bitPaddingPragma|syntax diagram]]%%-]
Changed lines 179-180 from:
pragmaPADBITS :
  PADBITS '=' inPragmaExpression
to:
bitPaddingPragma :
  PADBITS '=' inPragmaExpr
Changed line 184 from:
[[#pragmaPURITY]]
to:
[[#purityAttrPragma]]
Changed line 186 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaPURITY|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#purityAttrPragma|syntax diagram]]%%-]
Changed lines 188-189 from:
pragmaPURITY :
  PURITY '=' inPragmaExpression /* values 0 .. 3 */
to:
purityAttrPragma :
  PURITY '=' inPragmaExpr /* values 0 .. 3 */
Changed line 202 from:
[[#pragmaDEPRECATED]]
to:
[[#deprecationPragma]]
Changed line 204 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaDEPRECATED|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#deprecationPragma|syntax diagram]]%%-]
Changed line 206 from:
pragmaDEPRECATED :
to:
deprecationPragma :
Changed line 211 from:
[[#pragmaGENERATED]]
to:
[[#genTimestampPragma]]
Changed line 213 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaGENERATED|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#genTimestampPragma|syntax diagram]]%%-]
Changed line 215 from:
pragmaGENERATED :
to:
genTimestampPragma :
Changed line 234 from:
  hours ':' minutes ':' seconds ( '+' | '-' ) timezone
to:
  hours ':' minutes ':' seconds utcOffset?
Changed lines 238-239 from:
[[#year]][[#month]][[#day]][[#hours]][[#minutes]][[#seconds]][[#timezone]]
!!!!!#13.3 Year, Month, Day, Hours, Minutes, Seconds, Timezone \
to:
[[#year]][[#month]][[#day]][[#hours]][[#minutes]][[#seconds]]
!!!!!#13.3 Year, Month, Day, Hours, Minutes, Seconds \
Deleted lines 252-253:

timezone : wholeNumber ;
Changed lines 255-257 from:
[[#pragmaADDR]]
!!!!!#14 Body Of Memory Mapping Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaADDR|syntax diagram]]%%-]
to:
[[#utcOffset]]
!!!!!#13.4 UTC Offset \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#utcOffset|syntax diagram]]%%-]
Changed lines 259-260 from:
pragmaADDR :
  ADDR '=' inPragmaExpression
to:
utcOffset :
  ( '+' | '-' ) wholeNumber
Changed lines 264-266 from:
[[#pragmaFFI]]
!!!!!#15 Body Of Foreign Function Interface Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaFFI|syntax diagram]]%%-]
to:
[[#memMappingPragma]]
!!!!!#14 Body Of Memory Mapping Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#memMappingPragma|syntax diagram]]%%-]
Changed lines 268-269 from:
pragmaFFI :
  FFI '=' StringLiteral /* "C", "Fortran", "CLR" or "JVM" */
to:
memMappingPragma :
  ADDR '=' inPragmaExpr
Changed lines 273-275 from:
[[#pragmaFFIDENT]]
!!!!!#16 Body Of Foreign Function Identifier Mapping Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaFFIDENT|syntax diagram]]%%-]
to:
[[#ffiPragma]]
!!!!!#15 Body Of Foreign Function Interface Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#ffiPragma|syntax diagram]]%%-]
Changed lines 277-278 from:
pragmaFFIDENT :
  FFIDENT '=' StringLiteral /* foreign library identifier */
to:
ffiPragma :
  FFI '=' StringLiteral /* "C", "Fortran", "CLR" or "JVM" */
Changed lines 282-284 from:
[[#implDefinedPragma]]
!!!!!#17 Body Of Implementation Defined Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#implDefinedPragma|syntax diagram]]%%-]
to:
[[#ffidentPragma]]
!!!!!#16 Body Of Foreign Function Identifier Mapping Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#ffidentPragma|syntax diagram]]%%-]
Changed lines 286-287 from:
implDefinedPragma :
  ( implPrefix '.' )? PragmaSymbol ( '=' inPragmaExpression )? '|' ctMsgMode
to:
ffidentPragma :
  FFIDENT '=' StringLiteral /* foreign library identifier */
Changed lines 291-293 from:
[[#implPrefix]]
!!!!!#17.1 Implementation Prefix \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#implPrefix|syntax diagram]]%%-]
to:
[[#implDefinedPragma]]
!!!!!#17 Body Of Implementation Defined Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#implDefinedPragma|syntax diagram]]%%-]
Changed lines 295-296 from:
implPrefix :
  Letter LetterOrDigit+
to:
implDefinedPragma :
  ( implPrefix '.' )? PragmaSymbol ( '=' inPragmaExpr )? '|' ctMsgMode
Changed lines 300-302 from:
[[#inPragmaExpression]]
!!!!!#18 In-Pragma Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaExpression|syntax diagram]]%%-]
to:
[[#implPrefix]]
!!!!!#17.1 Implementation Prefix \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#implPrefix|syntax diagram]]%%-]
Changed lines 304-305 from:
inPragmaExpression :
  inPragmaSimpleExpr ( inPragmaOperL1 inPragmaSimpleExpr )?
to:
implPrefix :
  Letter LetterOrDigit+
Changed lines 309-311 from:
[[#inPragmaOperL1]]
!!!!!#18.1 In-Pragma Level-1 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaOperL1|syntax diagram]]%%-]
to:
[[#inPragmaExpr]]
!!!!!#18 In-Pragma Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaExpr|syntax diagram]]%%-]
Changed lines 313-314 from:
inPragmaOperL1 :
  '=' | '#' | '<' | '<=' | '>' | '>='
to:
inPragmaExpression :
  inPragmaSimpleExpr ( inPragmaOperL1 inPragmaSimpleExpr )?
Changed lines 318-320 from:
[[#inPragmaSimpleExpr]]
!!!!!#19 In-Pragma Simple Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaSimpleExpr|syntax diagram]]%%-]
to:
[[#inPragmaOperL1]]
!!!!!#18.1 In-Pragma Level-1 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaOperL1|syntax diagram]]%%-]
Changed lines 322-323 from:
inPragmaSimpleExpr :
  ( '+' | '-' )? inPragmaTerm ( inPragmaOperL2 inPragmaTerm )*
to:
inPragmaOperL1 :
  '=' | '#' | '<' | '<=' | '>' | '>='
Changed lines 327-329 from:
[[#inPragmaOperL2]]
!!!!!#19.1 In-Pragma Level-2 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaOperL2|syntax diagram]]%%-]
to:
[[#inPragmaSimpleExpr]]
!!!!!#19 In-Pragma Simple Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaSimpleExpr|syntax diagram]]%%-]
Changed lines 331-332 from:
inPragmaOperL2 :
  '+' | '-' | OR
to:
inPragmaSimpleExpr :
  ( '+' | '-' )? inPragmaTerm ( inPragmaOperL2 inPragmaTerm )*
Changed lines 336-338 from:
[[#inPragmaTerm]]
!!!!!#20 In-Pragma Term \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaTerm|syntax diagram]]%%-]
to:
[[#inPragmaOperL2]]
!!!!!#19.1 In-Pragma Level-2 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaOperL2|syntax diagram]]%%-]
Changed lines 340-341 from:
inPragmaTerm :
  inPragmaSimpleTerm ( inPragmaOperL3 inPragmaSimpleTerm )*
to:
inPragmaOperL2 :
  '+' | '-' | OR
Changed lines 345-347 from:
[[#inPragmaOperL3]]
!!!!!#20.1 In-Pragma Level-3 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaOperL3|syntax diagram]]%%-]
to:
[[#inPragmaTerm]]
!!!!!#20 In-Pragma Term \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaTerm|syntax diagram]]%%-]
Changed lines 349-350 from:
inPragmaOperL3 :
  '*' | DIV | MOD | AND
to:
inPragmaTerm :
  inPragmaSimpleTerm ( inPragmaOperL3 inPragmaSimpleTerm )*
Changed lines 354-356 from:
[[#inPragmaSimpleTerm]]
!!!!!#21 In-Pragma Simple Term \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaSimpleTerm|syntax diagram]]%%-]
to:
[[#inPragmaOperL3]]
!!!!!#20.1 In-Pragma Level-3 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaOperL3|syntax diagram]]%%-]
Changed lines 358-359 from:
inPragmaSimpleTerm :
  NOT? inPragmaFactor
to:
inPragmaOperL3 :
  '*' | DIV | MOD | AND
Changed lines 363-365 from:
[[#inPragmaFactor]]
!!!!!#22 In-Pragma Factor \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaFactor|syntax diagram]]%%-]
to:
[[#inPragmaSimpleTerm]]
!!!!!#21 In-Pragma Simple Term \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaSimpleTerm|syntax diagram]]%%-]
Changed lines 367-370 from:
inPragmaFactor :
  WholeNumber |
  /* constQualident is covered by inPragmaCompileTimeFunctionCall */
  '(' inPragmaExpression ')' | inPragmaCompileTimeFunctionCall
to:
inPragmaSimpleTerm :
  NOT? inPragmaFactor
Changed lines 372-374 from:
[[#inPragmaCompileTimeFunctionCall]]
!!!!!#23 In-Pragma Compile Time Function Call \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaCompileTimeFunctionCall|syntax diagram]]%%-]
to:
[[#inPragmaFactor]]
!!!!!#22 In-Pragma Factor \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaFactor|syntax diagram]]%%-]
Changed lines 376-377 from:
inPragmaCompileTimeFunctionCall :
  qualident ( '(' inPragmaExpression ( ',' inPragmaExpression )* ')' )?
to:
inPragmaFactor :
  WholeNumber |
  /* constQualident is covered by inPragmaCompileTimeFunctionCall */
  '(' inPragmaExpr ')' | inPragmaCtFunctionCall
  ;
@]

[[#inPragmaCtFunctionCall]]
!!!!!#23 In-Pragma Compile Time Function Call \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaCtFunctionCall|syntax diagram]]%%-]
[@
inPragmaCtFunctionCall :
  qualident ( '(' inPragmaExpr ( ',' inPragmaExpr
)* ')' )?
2015-09-15 14:57 by trijezdci -
Added line 1:
[[#pragma]]
Added line 10:
[[#pragmaBody]]
Added line 22:
[[#pragmaMSG]]
Added line 31:
[[#ctMsgMode]]
Added line 40:
[[#ctMsgComponentList]]
Added line 49:
[[#ctMsgComponent]]
Added line 64:
[[#valuePragma]]
Added line 73:
[[#valuePragmaSymbol]]
Added line 80:
[[#PragmaSymbol]]
Added line 89:
[[#pragmaIF]]
Added line 98:
[[#procDeclAttrPragma]]
Added line 107:
[[#pragmaOUT]]
Added line 116:
[[#pragmaFORWARD]]
Added line 125:
[[#pragmaENCODING]]
Added line 135:
[[#codePointSampleList]]
Added line 151:
[[#quotedCharacter]]
Added line 158:
[[#charCodeLiteral]]
Added line 165:
[[#pragmaALIGN]]
Added line 174:
[[#pragmaPADBITS]]
Added line 183:
[[#pragmaPURITY]]
Added line 192:
[[#varDeclAttrPragma]]
Added line 201:
[[#pragmaDEPRECATED]]
Added line 210:
[[#pragmaGENERATED]]
Added line 219:
[[#datestamp]]
Added line 228:
[[#timestamp]]
Added line 237:
[[#year]][[#month]][[#day]][[#hours]][[#minutes]][[#seconds]][[#timezone]]
Added line 256:
[[#pragmaADDR]]
Added line 265:
[[#pragmaFFI]]
Added line 274:
[[#pragmaFFIDENT]]
Added line 283:
[[#implDefinedPragma]]
Added line 292:
[[#implPrefix]]
Added line 301:
[[#inPragmaExpression]]
Added line 310:
[[#inPragmaOperL1]]
Added line 319:
[[#inPragmaSimpleExpr]]
Added line 328:
[[#inPragmaOperL2]]
Added line 337:
[[#inPragmaTerm]]
Added line 346:
[[#inPragmaOperL3]]
Added line 355:
[[#inPragmaSimpleTerm]]
Added line 364:
[[#inPragmaFactor]]
Added line 375:
[[#inPragmaCompileTimeFunctionCall]]
Changed line 382 from:
@]
to:
@]
2015-09-15 14:38 by trijezdci -
Changed line 274 from:
  inPragmaSimpleExpression ( inPragmaOperL1 inPragmaSimpleExpression )?
to:
  inPragmaSimpleExpr ( inPragmaOperL1 inPragmaSimpleExpr )?
Changed line 287 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaSimpleExpression|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaSimpleExpr|syntax diagram]]%%-]
Changed line 289 from:
inPragmaSimpleExpression :
to:
inPragmaSimpleExpr :
2015-09-15 14:35 by trijezdci -
Changed line 132 from:
  quotedCharacterLiteral '=' characterCodeLiteral
to:
  quotedCharacter '=' charCodeLiteral
Changed lines 136-137 from:
!!!!!#7.2 Quoted Character Literal \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#quotedCharacterLiteral|syntax diagram]]%%-]
to:
!!!!!#7.2 Quoted Character \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#quotedCharacter|syntax diagram]]%%-]
Changed line 139 from:
quotedCharacterLiteral : StringLiteral ; /* single character only */
to:
quotedCharacter : StringLiteral ; /* single character only */
Changed line 143 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#characterCodeLiteral|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#charCodeLiteral|syntax diagram]]%%-]
Changed line 145 from:
characterCodeLiteral : NumberLiteral ; /* whole number only */
to:
charCodeLiteral : NumberLiteral ; /* whole number only */
2015-09-15 14:31 by trijezdci -
Changed line 45 from:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#compileTimeMsgComponent|syntax diagram]]%%-]
to:
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#ctMsgComponent|syntax diagram]]%%-]
Changed line 47 from:
compileTimeMsgComponent :
to:
ctMsgComponent :
2015-09-15 14:30 by trijezdci - anchoring
Changed lines 1-2 from:
!!!!!#1 Pragma
to:
!!!!!#1 Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragma|syntax diagram]]%%-]
Changed lines 9-10 from:
!!!!!#1.1 Pragma Body
to:
!!!!!#1.1 Pragma Body \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaBody|syntax diagram]]%%-]
Changed lines 20-21 from:
!!!!!#2 Body Of Compile Time Message Pragma
to:
!!!!!#2 Body Of Compile Time Message Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaMSG|syntax diagram]]%%-]
Changed lines 28-29 from:
!!!!!#2.1 Message Mode
to:
!!!!!#2.1 Message Mode \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#ctMsgMode|syntax diagram]]%%-]
Changed lines 36-37 from:
!!!!!#2.2 Message Component List
to:
!!!!!#2.2 Message Component List \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#ctMsgComponentList|syntax diagram]]%%-]
Changed lines 44-45 from:
!!!!!#2.3 Message Component
to:
!!!!!#2.3 Message Component \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#compileTimeMsgComponent|syntax diagram]]%%-]
Changed lines 52-53 from:
!!!!!#2.4 Constant Qualified Identifier
to:
!!!!!#2.4 Constant Qualified Identifier \
%silver% &nbsp; [-[[SyntaxDiagrams.NonTerminals#constQualident|syntax diagram]]%%-]
Changed lines 58-59 from:
!!!!!#2.5 Value Pragma
to:
!!!!!#2.5 Value Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#valuePragma|syntax diagram]]%%-]
Changed lines 66-67 from:
!!!!!#2.6 Value Pragma Symbol
to:
!!!!!#2.6 Value Pragma Symbol \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#valuePragmaSymbol|syntax diagram]]%%-]
Changed lines 72-73 from:
!!!!!#2.7 Pragma Symbol
to:
!!!!!#2.7 Pragma Symbol \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#PragmaSymbol|syntax diagram]]%%-]
Changed lines 80-81 from:
!!!!!#3 Body Of Conditional Compilation Pragma
to:
!!!!!#3 Body Of Conditional Compilation Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaIF|syntax diagram]]%%-]
Changed lines 88-89 from:
!!!!!#4 Body Of Procedure Declaration Attribute Pragma
to:
!!!!!#4 Body Of Procedure Declaration Attribute Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#procDeclAttrPragma|syntax diagram]]%%-]
Changed lines 96-97 from:
!!!!!#5 Body Of Promise-To-Write Pragma
to:
!!!!!#5 Body Of Promise-To-Write Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaOUT|syntax diagram]]%%-]
Changed lines 104-105 from:
!!!!!#6 Body Of Forward Declaration Pragma
to:
!!!!!#6 Body Of Forward Declaration Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaFORWARD|syntax diagram]]%%-]
Changed lines 112-113 from:
!!!!!#7 Body Of Character Encoding Pragma
to:
!!!!!#7 Body Of Character Encoding Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaENCODING|syntax diagram]]%%-]
Changed lines 121-122 from:
!!!!!#7.1a Code Point Sample List
to:
!!!!!#7.1a Code Point Sample List \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#codePointSampleList|syntax diagram]]%%-]
Changed lines 136-137 from:
!!!!!#7.2 Quoted Character Literal
to:
!!!!!#7.2 Quoted Character Literal \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#quotedCharacterLiteral|syntax diagram]]%%-]
Changed lines 142-143 from:
!!!!!#7.3 Character Code Literal
to:
!!!!!#7.3 Character Code Literal \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#characterCodeLiteral|syntax diagram]]%%-]
Changed lines 148-149 from:
!!!!!#8 Body Of Memory Alignment Pragma
to:
!!!!!#8 Body Of Memory Alignment Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaALIGN|syntax diagram]]%%-]
Changed lines 156-157 from:
!!!!!#9 Body Of Bit Padding Pragma
to:
!!!!!#9 Body Of Bit Padding Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaPADBITS|syntax diagram]]%%-]
Changed lines 164-165 from:
!!!!!#10 Body Of Purity Attribute Pragma
to:
!!!!!#10 Body Of Purity Attribute Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaPURITY|syntax diagram]]%%-]
Changed lines 172-173 from:
!!!!!#11 Body Of Variable Declaration Attribute Pragma
to:
!!!!!#11 Body Of Variable Declaration Attribute Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#varDeclAttrPragma|syntax diagram]]%%-]
Changed lines 180-181 from:
!!!!!#12 Body Of Deprecation Pragma
to:
!!!!!#12 Body Of Deprecation Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaDEPRECATED|syntax diagram]]%%-]
Changed lines 188-189 from:
!!!!!#13 Body Of Library Generation Timestamp Pragma
to:
!!!!!#13 Body Of Library Generation Timestamp Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaGENERATED|syntax diagram]]%%-]
Changed lines 196-197 from:
!!!!!#13.1 Datestamp
to:
!!!!!#13.1 Datestamp \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#datestamp|syntax diagram]]%%-]
Changed lines 204-205 from:
!!!!!#13.2 Timestamp
to:
!!!!!#13.2 Timestamp \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#timestamp|syntax diagram]]%%-]
Changed lines 212-213 from:
!!!!!#13.3 Year, Month, Day, Hours, Minutes, Seconds, Timezone
to:
!!!!!#13.3 Year, Month, Day, Hours, Minutes, Seconds, Timezone \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#year|syntax diagram]]%%-]
Changed lines 230-231 from:
!!!!!#14 Body Of Memory Mapping Pragma
to:
!!!!!#14 Body Of Memory Mapping Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaADDR|syntax diagram]]%%-]
Changed lines 238-239 from:
!!!!!#15 Body Of Foreign Function Interface Pragma
to:
!!!!!#15 Body Of Foreign Function Interface Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaFFI|syntax diagram]]%%-]
Changed lines 246-247 from:
!!!!!#16 Body Of Foreign Function Identifier Mapping Pragma
to:
!!!!!#16 Body Of Foreign Function Identifier Mapping Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#pragmaFFIDENT|syntax diagram]]%%-]
Changed lines 254-255 from:
!!!!!#17 Body Of Implementation Defined Pragma
to:
!!!!!#17 Body Of Implementation Defined Pragma \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#implDefinedPragma|syntax diagram]]%%-]
Changed lines 262-263 from:
!!!!!#17.1 Implementation Prefix
to:
!!!!!#17.1 Implementation Prefix \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#implPrefix|syntax diagram]]%%-]
Changed lines 270-271 from:
!!!!!#18 In-Pragma Expression
to:
!!!!!#18 In-Pragma Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaExpression|syntax diagram]]%%-]
Changed lines 278-279 from:
!!!!!#18.1 In-Pragma Level-1 Operator
to:
!!!!!#18.1 In-Pragma Level-1 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaOperL1|syntax diagram]]%%-]
Changed lines 286-287 from:
!!!!!#19 In-Pragma Simple Expression
to:
!!!!!#19 In-Pragma Simple Expression \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaSimpleExpression|syntax diagram]]%%-]
Changed lines 294-295 from:
!!!!!#19.1 In-Pragma Level-2 Operator
to:
!!!!!#19.1 In-Pragma Level-2 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaOperL2|syntax diagram]]%%-]
Changed lines 302-303 from:
!!!!!#20 In-Pragma Term
to:
!!!!!#20 In-Pragma Term \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaTerm|syntax diagram]]%%-]
Changed lines 310-311 from:
!!!!!#20.1 In-Pragma Level-3 Operator
to:
!!!!!#20.1 In-Pragma Level-3 Operator \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaOperL3|syntax diagram]]%%-]
Changed lines 318-319 from:
!!!!!#21 In-Pragma Simple Term
to:
!!!!!#21 In-Pragma Simple Term \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaSimpleTerm|syntax diagram]]%%-]
Changed lines 326-327 from:
!!!!!#22 In-Pragma Factor
to:
!!!!!#22 In-Pragma Factor \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaFactor|syntax diagram]]%%-]
Changed lines 336-337 from:
!!!!!#23 In-Pragma Compile Time Function Call
to:
!!!!!#23 In-Pragma Compile Time Function Call \
%silver% &nbsp; [-[[SyntaxDiagrams.Pragmas#inPragmaCompileTimeFunctionCall|syntax diagram]]%%-]
2015-09-15 14:19 by trijezdci -
Changed line 269 from:
  inPragmaFactorOrNegation ( inPragmaOperL3 inPragmaFactorOrNegation )*
to:
  inPragmaSimpleTerm ( inPragmaOperL3 inPragmaSimpleTerm )*
Changed line 280 from:
!!!!!#21 In-Pragma Factor Or Negation
to:
!!!!!#21 In-Pragma Simple Term
Changed line 282 from:
inPragmaFactorOrNegation :
to:
inPragmaSimpleTerm :
2015-09-15 14:18 by trijezdci -
Changed line 182 from:
  hours ':' minutes ':' seconds '+' timezone
to:
  hours ':' minutes ':' seconds ( '+' | '-' ) timezone
Changed line 234 from:
  Letter LetterOrDigit*
to:
  Letter LetterOrDigit+
2015-09-14 12:52 by trijezdci - moved pragmas to separate page
Added lines 1-301:
!!!!!#1 Pragma
[@
pragma :
  '<*' pragmaBody '*>'
  ;
@]

!!!!!#1.1 Pragma Body
[@
pragmaBody :
  pragmaMSG | pragmaIF | procDeclAttrPragma | pragmaOUT | pragmaFORWARD |
  pragmaENCODING | pragmaALIGN | pragmaPADBITS | pragmaPURITY |
  varDeclAttrPragma | pragmaDEPRECATED | pragmaGENERATED |
  pragmaADDR | pragmaFFI | pragmaFFIDENT | implDefinedPragma
 ;
@]

!!!!!#2 Body Of Compile Time Message Pragma
[@
pragmaMSG :
  MSG '=' ctMsgMode ':' ctMsgComponentList
  ;
@]

!!!!!#2.1 Message Mode
[@
ctMsgMode :
  INFO | WARN | ERROR | FATAL
  ;
@]

!!!!!#2.2 Message Component List
[@
ctMsgComponentList :
  ctMsgComponent ( ',' ctMsgComponent )*
  ;
@]

!!!!!#2.3 Message Component
[@
compileTimeMsgComponent :
    StringLiteral | constQualident | '?' valuePragma
    ;
@]

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

!!!!!#2.5 Value Pragma
[@
valuePragma :
    ALIGN | ENCODING | valuePragmaSymbol
    ;
@]

!!!!!#2.6 Value Pragma Symbol
[@
valuePragmaSymbol : PragmaSymbol ;
@]

!!!!!#2.7 Pragma Symbol
[@
PragmaSymbol :
  Letter+
  ;
@]

!!!!!#3 Body Of Conditional Compilation Pragma
[@
pragmaIF :
  ( IF | ELSIF ) inPragmaExpression | ELSE | END
  ;
@]

!!!!!#4 Body Of Procedure Declaration Attribute Pragma
[@
procDeclAttrPragma :
  INLINE | NOINLINE | BLOCKING | NORETURN
  ;
@]

!!!!!#5 Body Of Promise-To-Write Pragma
[@
pragmaOUT :
  OUT
  ;
@]

!!!!!#6 Body Of Forward Declaration Pragma
[@
pragmaFORWARD :
  FORWARD ( TYPE identList | procedureHeader )
  ;
@]

!!!!!#7 Body Of Character Encoding Pragma
[@
pragmaENCODING :
  ENCODING '=' StringLiteral /* "ASCII" or "UTF8" */
  ( ':' codePointSampleList )?
  ;
@]

!!!!!#7.1a Code Point Sample List
[@
codePointSampleList :
  codePointSample ( ',' codePointSample )*
  ;
@]

!!!!!#7.1b Code Point Sample
[@
codePointSample :
  quotedCharacterLiteral '=' characterCodeLiteral
  ;
@]

!!!!!#7.2 Quoted Character Literal
[@
quotedCharacterLiteral : StringLiteral ; /* single character only */
@]

!!!!!#7.3 Character Code Literal
[@
characterCodeLiteral : NumberLiteral ; /* whole number only */
@]

!!!!!#8 Body Of Memory Alignment Pragma
[@
pragmaALIGN :
  ALIGN '=' inPragmaExpression
  ;
@]

!!!!!#9 Body Of Bit Padding Pragma
[@
pragmaPADBITS :
  PADBITS '=' inPragmaExpression
  ;
@]

!!!!!#10 Body Of Purity Attribute Pragma
[@
pragmaPURITY :
  PURITY '=' inPragmaExpression /* values 0 .. 3 */
  ;
@]

!!!!!#11 Body Of Variable Declaration Attribute Pragma
[@
varDeclAttrPragma :
  SINGLEASSIGN | LOWLATENCY | VOLATILE
  ;
@]

!!!!!#12 Body Of Deprecation Pragma
[@
pragmaDEPRECATED :
  DEPRECATED
  ;
@]

!!!!!#13 Body Of Library Generation Timestamp Pragma
[@
pragmaGENERATED :
  GENERATED template ',' datestamp ',' timestamp
  ;
@]

!!!!!#13.1 Datestamp
[@
datestamp :
  year '-' month '-' day
  ;
@]

!!!!!#13.2 Timestamp
[@
timestamp :
  hours ':' minutes ':' seconds '+' timezone
  ;
@]

!!!!!#13.3 Year, Month, Day, Hours, Minutes, Seconds, Timezone
[@
year : wholeNumber ;

month : wholeNumber ;

day : wholeNumber ;

hours : wholeNumber ;

minutes : wholeNumber ;

seconds : wholeNumber ;

timezone : wholeNumber ;
@]

!!!!!#14 Body Of Memory Mapping Pragma
[@
pragmaADDR :
  ADDR '=' inPragmaExpression
  ;
@]

!!!!!#15 Body Of Foreign Function Interface Pragma
[@
pragmaFFI :
  FFI '=' StringLiteral /* "C", "Fortran", "CLR" or "JVM" */
  ;
@]

!!!!!#16 Body Of Foreign Function Identifier Mapping Pragma
[@
pragmaFFIDENT :
  FFIDENT '=' StringLiteral /* foreign library identifier */
  ;
@]

!!!!!#17 Body Of Implementation Defined Pragma
[@
implDefinedPragma :
  ( implPrefix '.' )? PragmaSymbol ( '=' inPragmaExpression )? '|' ctMsgMode
  ;
@]

!!!!!#17.1 Implementation Prefix
[@
implPrefix :
  Letter LetterOrDigit*
  ;
@]

!!!!!#18 In-Pragma Expression
[@
inPragmaExpression :
  inPragmaSimpleExpression ( inPragmaOperL1 inPragmaSimpleExpression )?
  ;
@]

!!!!!#18.1 In-Pragma Level-1 Operator
[@
inPragmaOperL1 :
  '=' | '#' | '<' | '<=' | '>' | '>='
  ;
@]

!!!!!#19 In-Pragma Simple Expression
[@
inPragmaSimpleExpression :
  ( '+' | '-' )? inPragmaTerm ( inPragmaOperL2 inPragmaTerm )*
  ;
@]

!!!!!#19.1 In-Pragma Level-2 Operator
[@
inPragmaOperL2 :
  '+' | '-' | OR
  ;
@]

!!!!!#20 In-Pragma Term
[@
inPragmaTerm :
  inPragmaFactorOrNegation ( inPragmaOperL3 inPragmaFactorOrNegation )*
  ;
@]

!!!!!#20.1 In-Pragma Level-3 Operator
[@
inPragmaOperL3 :
  '*' | DIV | MOD | AND
  ;
@]

!!!!!#21 In-Pragma Factor Or Negation
[@
inPragmaFactorOrNegation :
  NOT? inPragmaFactor
  ;
@]

!!!!!#22 In-Pragma Factor
[@
inPragmaFactor :
  WholeNumber |
  /* constQualident is covered by inPragmaCompileTimeFunctionCall */
  '(' inPragmaExpression ')' | inPragmaCompileTimeFunctionCall
  ;
@]

!!!!!#23 In-Pragma Compile Time Function Call
[@
inPragmaCompileTimeFunctionCall :
  qualident ( '(' inPragmaExpression ( ',' inPragmaExpression )* ')' )?
  ;
@]