@@ -268,6 +268,9 @@ $(GNAME IdentifierStart):
268
268
$(I Letter)
269
269
$(I UniversalAlpha)
270
270
271
+ $(GNAME IdentifierStartError):
272
+ IdentifierStart
273
+
271
274
$(GNAME IdentifierChar):
272
275
$(GLINK IdentifierStart)
273
276
$(B 0)
@@ -282,6 +285,10 @@ Identifiers can be arbitrarily long, and are case sensitive.)
282
285
283
286
$(IMPLEMENTATION_DEFINED Identifiers starting with $(D __) (two underscores) are reserved.)
284
287
288
+ $(NOTE *IdentifierStartError* exists to enforce that a string or numeric literal
289
+ with a suffix is not immediately followed by an identifier without whitespace.)
290
+
291
+
285
292
$(H2 $(LNAME2 string_literals, String Literals))
286
293
287
294
$(GRAMMAR
@@ -342,9 +349,9 @@ $(GNAME EscapeSequence):
342
349
$(B \\) $(GLINK2 entity, NamedCharacterEntity)
343
350
344
351
$(GNAME StringPostfix):
345
- $(B c)
346
- $(B w)
347
- $(B d)
352
+ $(B c) $(GLINK IdentifierStartError)$(OPT)
353
+ $(B w) $(GLINK IdentifierStartError)$(OPT)
354
+ $(B d) $(GLINK IdentifierStartError)$(OPT)
348
355
349
356
$(GNAME DelimitedString):
350
357
$(B q") $(GLINK Delimiter) $(GLINK WysiwygCharacters)$(OPT) $(GLINK MatchingDelimiter) $(B ") $(GLINK StringPostfix)$(OPT)
@@ -625,7 +632,7 @@ $(H2 $(LNAME2 integerliteral, Integer Literals))
625
632
$(GRAMMAR_LEX
626
633
$(GNAME IntegerLiteral):
627
634
$(GLINK Integer)
628
- $(GLINK Integer) $(GLINK IntegerSuffix)
635
+ $(GLINK Integer) $(GLINK IntegerSuffix) $(GLINK IdentifierStartError)$(OPT)
629
636
630
637
$(GNAME Integer):
631
638
$(GLINK DecimalInteger)
@@ -832,8 +839,8 @@ $(H2 $(LNAME2 floatliteral, Floating Point Literals))
832
839
$(GRAMMAR_LEX
833
840
$(GNAME FloatLiteral):
834
841
$(GLINK Float)
835
- $(GLINK Float) $(GLINK Suffix)
836
- $(GLINK Integer) $(GLINK FloatSuffix)
842
+ $(GLINK Float) $(GLINK Suffix) $(GLINK IdentifierStartError)$(OPT)
843
+ $(GLINK Integer) $(GLINK FloatSuffix) $(GLINK IdentifierStartError)$(OPT)
837
844
$(GLINK Integer) $(GLINK ImaginarySuffix)
838
845
$(GLINK Integer) $(GLINK FloatSuffix) $(GLINK ImaginarySuffix)
839
846
$(GLINK Integer) $(GLINK RealSuffix) $(GLINK ImaginarySuffix)
0 commit comments