Skip to content

Commit b69d1c8

Browse files
authored
Allow underscores at more positions in grammar for numbers (#3681)
DecimalDigitsNoSingleUS and HexDigitsNoSingleUS previously did not accept underscores at the start and end at the same time, but DMD allows this. For example the hex literal `0x_1_` and the floating point literals `0_1_.0`, `1e_1_` and `0x_1_p_1_` are accepted by DMD, but were not allowed by the grammar. BinaryDigitsNoSingleUS was already correct. The grammar is also simplified by using optional parts instead of multiple rules.
1 parent 547ad46 commit b69d1c8

File tree

1 file changed

+3
-10
lines changed

1 file changed

+3
-10
lines changed

spec/lex.dd

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -676,9 +676,7 @@ $(GNAME DecimalDigitsUS):
676676
$(GLINK DecimalDigitUS) $(GSELF DecimalDigitsUS)
677677

678678
$(GNAME DecimalDigitsNoSingleUS):
679-
$(GLINK DecimalDigit)
680-
$(GLINK DecimalDigit) $(GLINK DecimalDigitsUS)
681-
$(GLINK DecimalDigitsUS) $(GLINK DecimalDigit)
679+
$(GLINK DecimalDigitsUS)$(OPT) $(GLINK DecimalDigit) $(GLINK DecimalDigitsUS)$(OPT)
682680

683681
$(GNAME DecimalDigitsNoStartingUS):
684682
$(GLINK DecimalDigit)
@@ -693,10 +691,7 @@ $(GNAME DecimalDigitUS):
693691
$(B _)
694692

695693
$(GNAME BinaryDigitsNoSingleUS):
696-
$(GLINK BinaryDigit)
697-
$(GLINK BinaryDigit) $(GLINK BinaryDigitsUS)
698-
$(GLINK BinaryDigitsUS) $(GLINK BinaryDigit)
699-
$(GLINK BinaryDigitsUS) $(GLINK BinaryDigit) $(GLINK BinaryDigitsUS)
694+
$(GLINK BinaryDigitsUS)$(OPT) $(GLINK BinaryDigit) $(GLINK BinaryDigitsUS)$(OPT)
700695

701696
$(GNAME BinaryDigitsUS):
702697
$(GLINK BinaryDigitUS)
@@ -729,9 +724,7 @@ $(GNAME HexDigitsUS):
729724
$(GLINK HexDigitUS) $(GSELF HexDigitsUS)
730725

731726
$(GNAME HexDigitsNoSingleUS):
732-
$(GLINK HexDigit)
733-
$(GLINK HexDigit) $(GLINK HexDigitsUS)
734-
$(GLINK HexDigitsUS) $(GLINK HexDigit)
727+
$(GLINK HexDigitsUS)$(OPT) $(GLINK HexDigit) $(GLINK HexDigitsUS)$(OPT)
735728

736729
$(GNAME HexDigitsNoStartingUS):
737730
$(GLINK HexDigit)

0 commit comments

Comments
 (0)