Site Menu Project Specification Implementation Recommendations Reference Needs Updating Work in Progress Wastebasket Wiki Manual |
PragmasEBNF.Pragmas HistoryHide minor edits - Show changes to markup 2015-10-09 19:01
by -
Changed line 334 from:
( '+' | '-' )? inPragmaTerm ( inPragmaOperL2 inPragmaTerm )* to:
inPragmaTerm ( inPragmaOperL2 inPragmaTerm )* | '-' inPragmaFactor 2015-09-17 18:26
by -
Changed lines 57-58 from:
String Literal? | constQualident | '?' valuePragma
;
to:
String Literal? | constQualident | '?' valuePragma
;
Changed lines 72-73 from:
ALIGN | ENCODING | valuePragmaSymbol ; to:
ALIGN | ENCODING | valuePragmaSymbol ; 2015-09-17 18:24
by -
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 : Pragma Symbol? ; to:
valuePragmaSymbol := Pragma Symbol? ; Changed line 87 from:
to:
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 : String Literal? ; /* single character only */ to:
quotedCharacter := String Literal? ; /* single character only */ Changed line 165 from:
charCodeLiteral : Number Literal? ; /* whole number only */ to:
charCodeLiteral := Number Literal? ; /* 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-15 17:15
by -
Changed line 378 from:
/* constQualident is covered by inPragmaCompileTimeFunctionCall */ to:
/* constQualident is covered by inPragmaCtFunctionCall */ 2015-09-15 17:08
by -
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:
to:
Changed line 25 from:
to:
Changed line 27 from:
pragmaMSG : to:
ctMsgPragma : Changed line 90 from:
to:
Changed line 92 from:
to:
Changed line 94 from:
pragmaIF : to:
condCompPragma : Changed line 108 from:
to:
Changed line 110 from:
to:
Changed line 112 from:
pragmaOUT : to:
promiseToWritePragma : Changed line 117 from:
to:
Changed line 119 from:
to:
Changed line 121 from:
pragmaFORWARD : to:
forwardDeclPragma : Changed line 126 from:
to:
Changed line 128 from:
to:
Changed line 130 from:
pragmaENCODING : to:
charEncodingPragma : Changed line 166 from:
to:
Changed line 168 from:
to:
Changed lines 170-171 from:
pragmaALIGN : ALIGN '=' inPragmaExpression to:
memAlignmentPragma : ALIGN '=' inPragmaExpr Changed line 175 from:
to:
Changed line 177 from:
to:
Changed lines 179-180 from:
pragmaPADBITS : PADBITS '=' inPragmaExpression to:
bitPaddingPragma : PADBITS '=' inPragmaExpr Changed line 184 from:
to:
Changed line 186 from:
to:
Changed lines 188-189 from:
pragmaPURITY : PURITY '=' inPragmaExpression /* values 0 .. 3 */ to:
purityAttrPragma : PURITY '=' inPragmaExpr /* values 0 .. 3 */ Changed line 202 from:
to:
Changed line 204 from:
to:
Changed line 206 from:
pragmaDEPRECATED : to:
deprecationPragma : Changed line 211 from:
to:
Changed line 213 from:
to:
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:
to:
#13.3 Year, Month, Day, Hours, Minutes, Seconds \Deleted lines 252-253:
timezone : wholeNumber ; Changed lines 255-257 from:
#14 Body Of Memory Mapping Pragma syntax diagramto:
#13.4 UTC Offset syntax diagramChanged lines 259-260 from:
pragmaADDR : ADDR '=' inPragmaExpression to:
utcOffset : ( '+' | '-' ) wholeNumber Changed lines 264-266 from:
#15 Body Of Foreign Function Interface Pragma syntax diagramto:
#14 Body Of Memory Mapping Pragma syntax diagramChanged lines 268-269 from:
pragmaFFI : FFI '=' String Literal? /* "C", "Fortran", "CLR" or "JVM" */
to:
memMappingPragma : ADDR '=' inPragmaExpr Changed lines 273-275 from:
#16 Body Of Foreign Function Identifier Mapping Pragma syntax diagramto:
#15 Body Of Foreign Function Interface Pragma syntax diagramChanged lines 277-278 from:
pragmaFFIDENT : FFIDENT '=' String Literal? /* foreign library identifier */
to:
ffiPragma : FFI '=' String Literal? /* "C", "Fortran", "CLR" or "JVM" */
Changed lines 282-284 from:
#17 Body Of Implementation Defined Pragma syntax diagramto:
#16 Body Of Foreign Function Identifier Mapping Pragma syntax diagramChanged lines 286-287 from:
implDefinedPragma : ( implPrefix '.' )? Pragma Symbol? ( '=' inPragmaExpression )? '|' ctMsgMode
to:
ffidentPragma : FFIDENT '=' String Literal? /* foreign library identifier */
Changed lines 291-293 from:
#17.1 Implementation Prefix syntax diagramto:
#17 Body Of Implementation Defined Pragma syntax diagramChanged lines 295-296 from:
implPrefix : Letter Letter Or Digit?+
to:
implDefinedPragma : ( implPrefix '.' )? Pragma Symbol? ( '=' inPragmaExpr )? '|' ctMsgMode
Changed lines 300-302 from:
#18 In-Pragma Expression syntax diagramto:
#17.1 Implementation Prefix syntax diagramChanged lines 304-305 from:
inPragmaExpression : inPragmaSimpleExpr ( inPragmaOperL1 inPragmaSimpleExpr )? to:
implPrefix : Letter Letter Or Digit?+
Changed lines 309-311 from:
#18.1 In-Pragma Level-1 Operator syntax diagramto:
#18 In-Pragma Expression syntax diagramChanged lines 313-314 from:
inPragmaOperL1 : '=' | '#' | '<' | '<=' | '>' | '>=' to:
inPragmaExpression : inPragmaSimpleExpr ( inPragmaOperL1 inPragmaSimpleExpr )? Changed lines 318-320 from:
#19 In-Pragma Simple Expression syntax diagramto:
#18.1 In-Pragma Level-1 Operator syntax diagramChanged lines 322-323 from:
inPragmaSimpleExpr : ( '+' | '-' )? inPragmaTerm ( inPragmaOperL2 inPragmaTerm )* to:
inPragmaOperL1 : '=' | '#' | '<' | '<=' | '>' | '>=' Changed lines 327-329 from:
#19.1 In-Pragma Level-2 Operator syntax diagramto:
#19 In-Pragma Simple Expression syntax diagramChanged lines 331-332 from:
inPragmaOperL2 : '+' | '-' | OR to:
inPragmaSimpleExpr : ( '+' | '-' )? inPragmaTerm ( inPragmaOperL2 inPragmaTerm )* Changed lines 336-338 from:
#20 In-Pragma Term syntax diagramto:
#19.1 In-Pragma Level-2 Operator syntax diagramChanged lines 340-341 from:
inPragmaTerm : inPragmaSimpleTerm ( inPragmaOperL3 inPragmaSimpleTerm )* to:
inPragmaOperL2 : '+' | '-' | OR Changed lines 345-347 from:
#20.1 In-Pragma Level-3 Operator syntax diagramto:
#20 In-Pragma Term syntax diagramChanged lines 349-350 from:
inPragmaOperL3 : '*' | DIV | MOD | AND to:
inPragmaTerm : inPragmaSimpleTerm ( inPragmaOperL3 inPragmaSimpleTerm )* Changed lines 354-356 from:
#21 In-Pragma Simple Term syntax diagramto:
#20.1 In-Pragma Level-3 Operator syntax diagramChanged lines 358-359 from:
inPragmaSimpleTerm : NOT? inPragmaFactor to:
inPragmaOperL3 : '*' | DIV | MOD | AND Changed lines 363-365 from:
#22 In-Pragma Factor syntax diagramto:
#21 In-Pragma Simple Term syntax diagramChanged lines 367-370 from:
inPragmaFactor : Whole Number? |
/* constQualident is covered by inPragmaCompileTimeFunctionCall */
'(' inPragmaExpression ')' | inPragmaCompileTimeFunctionCall
to:
inPragmaSimpleTerm : NOT? inPragmaFactor Changed lines 372-374 from:
#23 In-Pragma Compile Time Function Call syntax diagramto:
#22 In-Pragma Factor syntax diagramChanged lines 376-377 from:
inPragmaCompileTimeFunctionCall : qualident ( '(' inPragmaExpression ( ',' inPragmaExpression )* ')' )? to:
inPragmaFactor : Whole Number? |
/* constQualident is covered by inPragmaCompileTimeFunctionCall */
'(' inPragmaExpr ')' | inPragmaCtFunctionCall
;
@] #23 In-Pragma Compile Time Function Call syntax diagram[@ inPragmaCtFunctionCall : qualident ( '(' inPragmaExpr ( ',' inPragmaExpr )* ')' )? 2015-09-15 14:57
by -
Added line 1:
Added line 10:
Added line 22:
Added line 31:
Added line 40:
Added line 49:
Added line 64:
Added line 73:
Added line 80:
Added line 89:
Added line 98:
Added line 107:
Added line 116:
Added line 125:
Added line 135:
Added line 151:
Added line 158:
Added line 165:
Added line 174:
Added line 183:
Added line 192:
Added line 201:
Added line 210:
Added line 219:
Added line 228:
Added line 237:
Added line 256:
Added line 265:
Added line 274:
Added line 283:
Added line 292:
Added line 301:
Added line 310:
Added line 319:
Added line 328:
Added line 337:
Added line 346:
Added line 355:
Added line 364:
Added line 375:
Changed line 382 from:
@] to:
@] 2015-09-15 14:38
by -
Changed line 274 from:
inPragmaSimpleExpression ( inPragmaOperL1 inPragmaSimpleExpression )? to:
inPragmaSimpleExpr ( inPragmaOperL1 inPragmaSimpleExpr )? Changed line 287 from:
to:
Changed line 289 from:
inPragmaSimpleExpression : to:
inPragmaSimpleExpr : 2015-09-15 14:35
by -
Changed line 132 from:
quotedCharacterLiteral '=' characterCodeLiteral to:
quotedCharacter '=' charCodeLiteral Changed lines 136-137 from:
#7.2 Quoted Character Literal syntax diagramto:
#7.2 Quoted Character syntax diagramChanged line 139 from:
quotedCharacterLiteral : String Literal? ; /* single character only */ to:
quotedCharacter : String Literal? ; /* single character only */ Changed line 143 from:
to:
Changed line 145 from:
characterCodeLiteral : Number Literal? ; /* whole number only */ to:
charCodeLiteral : Number Literal? ; /* whole number only */ 2015-09-15 14:31
by -
Changed line 45 from:
to:
Changed line 47 from:
compileTimeMsgComponent : to:
ctMsgComponent : 2015-09-15 14:30
by - anchoring
Changed lines 1-2 from:
#1 Pragmato:
#1 Pragma syntax diagramChanged lines 9-10 from:
#1.1 Pragma Bodyto:
#1.1 Pragma Body syntax diagramChanged lines 20-21 from:
#2 Body Of Compile Time Message Pragmato:
#2 Body Of Compile Time Message Pragma syntax diagramChanged lines 28-29 from:
#2.1 Message Modeto:
#2.1 Message Mode syntax diagramChanged lines 36-37 from:
#2.2 Message Component Listto:
#2.2 Message Component List syntax diagramChanged lines 44-45 from:
#2.3 Message Componentto:
#2.3 Message Component syntax diagramChanged lines 52-53 from:
#2.4 Constant Qualified Identifierto:
#2.4 Constant Qualified Identifier syntax diagramChanged lines 58-59 from:
#2.5 Value Pragmato:
#2.5 Value Pragma syntax diagramChanged lines 66-67 from:
#2.6 Value Pragma Symbolto:
#2.6 Value Pragma Symbol syntax diagramChanged lines 72-73 from:
#2.7 Pragma Symbolto:
#2.7 Pragma Symbol syntax diagramChanged lines 80-81 from:
#3 Body Of Conditional Compilation Pragmato:
#3 Body Of Conditional Compilation Pragma syntax diagramChanged lines 88-89 from:
#4 Body Of Procedure Declaration Attribute Pragmato:
#4 Body Of Procedure Declaration Attribute Pragma syntax diagramChanged lines 96-97 from:
#5 Body Of Promise-To-Write Pragmato:
#5 Body Of Promise-To-Write Pragma syntax diagramChanged lines 104-105 from:
#6 Body Of Forward Declaration Pragmato:
#6 Body Of Forward Declaration Pragma syntax diagramChanged lines 112-113 from:
#7 Body Of Character Encoding Pragmato:
#7 Body Of Character Encoding Pragma syntax diagramChanged lines 121-122 from:
#7.1a Code Point Sample Listto:
#7.1a Code Point Sample List syntax diagramChanged lines 136-137 from:
#7.2 Quoted Character Literalto:
#7.2 Quoted Character Literal syntax diagramChanged lines 142-143 from:
#7.3 Character Code Literalto:
#7.3 Character Code Literal syntax diagramChanged lines 148-149 from:
#8 Body Of Memory Alignment Pragmato:
#8 Body Of Memory Alignment Pragma syntax diagramChanged lines 156-157 from:
#9 Body Of Bit Padding Pragmato:
#9 Body Of Bit Padding Pragma syntax diagramChanged lines 164-165 from:
#10 Body Of Purity Attribute Pragmato:
#10 Body Of Purity Attribute Pragma syntax diagramChanged lines 172-173 from:
#11 Body Of Variable Declaration Attribute Pragmato:
#11 Body Of Variable Declaration Attribute Pragma syntax diagramChanged lines 180-181 from:
#12 Body Of Deprecation Pragmato:
#12 Body Of Deprecation Pragma syntax diagramChanged lines 188-189 from:
#13 Body Of Library Generation Timestamp Pragmato:
#13 Body Of Library Generation Timestamp Pragma syntax diagramChanged lines 196-197 from:
#13.1 Datestampto:
#13.1 Datestamp syntax diagramChanged lines 204-205 from:
#13.2 Timestampto:
#13.2 Timestamp syntax diagramChanged lines 212-213 from:
#13.3 Year, Month, Day, Hours, Minutes, Seconds, Timezoneto:
#13.3 Year, Month, Day, Hours, Minutes, Seconds, Timezone syntax diagramChanged lines 230-231 from:
#14 Body Of Memory Mapping Pragmato:
#14 Body Of Memory Mapping Pragma syntax diagramChanged lines 238-239 from:
#15 Body Of Foreign Function Interface Pragmato:
#15 Body Of Foreign Function Interface Pragma syntax diagramChanged lines 246-247 from:
#16 Body Of Foreign Function Identifier Mapping Pragmato:
#16 Body Of Foreign Function Identifier Mapping Pragma syntax diagramChanged lines 254-255 from:
#17 Body Of Implementation Defined Pragmato:
#17 Body Of Implementation Defined Pragma syntax diagramChanged lines 262-263 from:
#17.1 Implementation Prefixto:
#17.1 Implementation Prefix syntax diagramChanged lines 270-271 from:
#18 In-Pragma Expressionto:
#18 In-Pragma Expression syntax diagramChanged lines 278-279 from:
#18.1 In-Pragma Level-1 Operatorto:
#18.1 In-Pragma Level-1 Operator syntax diagramChanged lines 286-287 from:
#19 In-Pragma Simple Expressionto:
#19 In-Pragma Simple Expression syntax diagramChanged lines 294-295 from:
#19.1 In-Pragma Level-2 Operatorto:
#19.1 In-Pragma Level-2 Operator syntax diagramChanged lines 302-303 from:
#20 In-Pragma Termto:
#20 In-Pragma Term syntax diagramChanged lines 310-311 from:
#20.1 In-Pragma Level-3 Operatorto:
#20.1 In-Pragma Level-3 Operator syntax diagramChanged lines 318-319 from:
#21 In-Pragma Simple Termto:
#21 In-Pragma Simple Term syntax diagramChanged lines 326-327 from:
#22 In-Pragma Factorto:
#22 In-Pragma Factor syntax diagramChanged lines 336-337 from:
#23 In-Pragma Compile Time Function Callto:
#23 In-Pragma Compile Time Function Call syntax diagram2015-09-15 14:19
by -
Changed line 269 from:
inPragmaFactorOrNegation ( inPragmaOperL3 inPragmaFactorOrNegation )* to:
inPragmaSimpleTerm ( inPragmaOperL3 inPragmaSimpleTerm )* Changed line 280 from:
#21 In-Pragma Factor Or Negationto:
#21 In-Pragma Simple TermChanged line 282 from:
inPragmaFactorOrNegation : to:
inPragmaSimpleTerm : 2015-09-15 14:18
by -
Changed line 182 from:
hours ':' minutes ':' seconds '+' timezone to:
hours ':' minutes ':' seconds ( '+' | '-' ) timezone Changed line 234 from:
Letter Letter Or Digit?*
to:
Letter Letter Or Digit?+
2015-09-14 12:52
by - moved pragmas to separate page
Added lines 1-301:
#1 Pragmapragma : '<*' pragmaBody '*>' ; #1.1 Pragma BodypragmaBody : pragmaMSG | pragmaIF | procDeclAttrPragma | pragmaOUT | pragmaFORWARD | pragmaENCODING | pragmaALIGN | pragmaPADBITS | pragmaPURITY | varDeclAttrPragma | pragmaDEPRECATED | pragmaGENERATED | pragmaADDR | pragmaFFI | pragmaFFIDENT | implDefinedPragma ; #2 Body Of Compile Time Message PragmapragmaMSG : MSG '=' ctMsgMode ':' ctMsgComponentList ; #2.1 Message ModectMsgMode : INFO | WARN | ERROR | FATAL ; #2.2 Message Component ListctMsgComponentList : ctMsgComponent ( ',' ctMsgComponent )* ; #2.3 Message ComponentcompileTimeMsgComponent : StringLiteral | constQualident | '?' valuePragma ; #2.4 Constant Qualified IdentifierconstQualident : qualident ; #2.5 Value PragmavaluePragma : ALIGN | ENCODING | valuePragmaSymbol ; #2.6 Value Pragma SymbolvaluePragmaSymbol : PragmaSymbol ; #2.7 Pragma SymbolPragmaSymbol : Letter+ ; #3 Body Of Conditional Compilation PragmapragmaIF : ( IF | ELSIF ) inPragmaExpression | ELSE | END ; #4 Body Of Procedure Declaration Attribute PragmaprocDeclAttrPragma : INLINE | NOINLINE | BLOCKING | NORETURN ; #5 Body Of Promise-To-Write PragmapragmaOUT : OUT ; #6 Body Of Forward Declaration PragmapragmaFORWARD : FORWARD ( TYPE identList | procedureHeader ) ; #7 Body Of Character Encoding PragmapragmaENCODING : ENCODING '=' StringLiteral /* "ASCII" or "UTF8" */ ( ':' codePointSampleList )? ; #7.1a Code Point Sample ListcodePointSampleList : codePointSample ( ',' codePointSample )* ; #7.1b Code Point SamplecodePointSample : quotedCharacterLiteral '=' characterCodeLiteral ; #7.2 Quoted Character LiteralquotedCharacterLiteral : StringLiteral ; /* single character only */ #7.3 Character Code LiteralcharacterCodeLiteral : NumberLiteral ; /* whole number only */ #8 Body Of Memory Alignment PragmapragmaALIGN : ALIGN '=' inPragmaExpression ; #9 Body Of Bit Padding PragmapragmaPADBITS : PADBITS '=' inPragmaExpression ; #10 Body Of Purity Attribute PragmapragmaPURITY : PURITY '=' inPragmaExpression /* values 0 .. 3 */ ; #11 Body Of Variable Declaration Attribute PragmavarDeclAttrPragma : SINGLEASSIGN | LOWLATENCY | VOLATILE ; #12 Body Of Deprecation PragmapragmaDEPRECATED : DEPRECATED ; #13 Body Of Library Generation Timestamp PragmapragmaGENERATED : GENERATED template ',' datestamp ',' timestamp ; #13.1 Datestampdatestamp : year '-' month '-' day ; #13.2 Timestamptimestamp : hours ':' minutes ':' seconds '+' timezone ; #13.3 Year, Month, Day, Hours, Minutes, Seconds, Timezoneyear : wholeNumber ; month : wholeNumber ; day : wholeNumber ; hours : wholeNumber ; minutes : wholeNumber ; seconds : wholeNumber ; timezone : wholeNumber ; #14 Body Of Memory Mapping PragmapragmaADDR : ADDR '=' inPragmaExpression ; #15 Body Of Foreign Function Interface PragmapragmaFFI : FFI '=' StringLiteral /* "C", "Fortran", "CLR" or "JVM" */ ; #16 Body Of Foreign Function Identifier Mapping PragmapragmaFFIDENT : FFIDENT '=' StringLiteral /* foreign library identifier */ ; #17 Body Of Implementation Defined PragmaimplDefinedPragma : ( implPrefix '.' )? PragmaSymbol ( '=' inPragmaExpression )? '|' ctMsgMode ; #17.1 Implementation PrefiximplPrefix : Letter LetterOrDigit* ; #18 In-Pragma ExpressioninPragmaExpression : inPragmaSimpleExpression ( inPragmaOperL1 inPragmaSimpleExpression )? ; #18.1 In-Pragma Level-1 OperatorinPragmaOperL1 : '=' | '#' | '<' | '<=' | '>' | '>=' ; #19 In-Pragma Simple ExpressioninPragmaSimpleExpression : ( '+' | '-' )? inPragmaTerm ( inPragmaOperL2 inPragmaTerm )* ; #19.1 In-Pragma Level-2 OperatorinPragmaOperL2 : '+' | '-' | OR ; #20 In-Pragma TerminPragmaTerm : inPragmaFactorOrNegation ( inPragmaOperL3 inPragmaFactorOrNegation )* ; #20.1 In-Pragma Level-3 OperatorinPragmaOperL3 : '*' | DIV | MOD | AND ; #21 In-Pragma Factor Or NegationinPragmaFactorOrNegation : NOT? inPragmaFactor ; #22 In-Pragma FactorinPragmaFactor : WholeNumber | /* constQualident is covered by inPragmaCompileTimeFunctionCall */ '(' inPragmaExpression ')' | inPragmaCompileTimeFunctionCall ; #23 In-Pragma Compile Time Function CallinPragmaCompileTimeFunctionCall : qualident ( '(' inPragmaExpression ( ',' inPragmaExpression )* ')' )? ; |