@@ -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,11 @@ 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 $(GLINK StringPostfix)
289
+ or numeric literal with a suffix is not immediately followed by an identifier
290
+ without whitespace.)
291
+
292
+
285
293
$(H2 $(LNAME2 string_literals, String Literals))
286
294
287
295
$(GRAMMAR
@@ -342,9 +350,9 @@ $(GNAME EscapeSequence):
342
350
$(B \\) $(GLINK2 entity, NamedCharacterEntity)
343
351
344
352
$(GNAME StringPostfix):
345
- $(B c)
346
- $(B w)
347
- $(B d)
353
+ $(B c) $(GLINK IdentifierStartError)$(OPT)
354
+ $(B w) $(GLINK IdentifierStartError)$(OPT)
355
+ $(B d) $(GLINK IdentifierStartError)$(OPT)
348
356
349
357
$(GNAME DelimitedString):
350
358
$(B q") $(GLINK Delimiter) $(GLINK WysiwygCharacters)$(OPT) $(GLINK MatchingDelimiter) $(B ") $(GLINK StringPostfix)$(OPT)
@@ -625,7 +633,7 @@ $(H2 $(LNAME2 integerliteral, Integer Literals))
625
633
$(GRAMMAR_LEX
626
634
$(GNAME IntegerLiteral):
627
635
$(GLINK Integer)
628
- $(GLINK Integer) $(GLINK IntegerSuffix)
636
+ $(GLINK Integer) $(GLINK IntegerSuffix) $(GLINK IdentifierStartError)$(OPT)
629
637
630
638
$(GNAME Integer):
631
639
$(GLINK DecimalInteger)
@@ -841,9 +849,11 @@ $(H2 $(LNAME2 floatliteral, Floating Point Literals))
841
849
842
850
$(GRAMMAR_LEX
843
851
$(GNAME FloatLiteral):
844
- $(GLINK Float) $(GLINK Suffix)$(OPT)
845
- $(GLINK Integer) $(GLINK FloatSuffix) $(GLINK ImaginarySuffix)$(OPT)
852
+ $(GLINK Float)
853
+ $(GLINK Float) $(GLINK Suffix) $(GLINK IdentifierStartError)$(OPT)
854
+ $(GLINK Integer) $(GLINK FloatSuffix) $(GLINK IdentifierStartError)$(OPT)
846
855
$(GLINK Integer) $(GLINK RealSuffix)$(OPT) $(GLINK ImaginarySuffix)
856
+ $(GLINK Integer) $(GLINK FloatSuffix) $(GLINK ImaginarySuffix)
847
857
848
858
$(GNAME Float):
849
859
$(GLINK DecimalFloat)
0 commit comments