Add support in Dart.g for separators in numeric literals

Change-Id: I2b0ba97b9b89803b28358b94959e31276eda3af2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/387222
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
This commit is contained in:
Erik Ernst
2024-09-27 12:24:40 +00:00
committed by Commit Queue
parent 582abe2bbb
commit ec891471f5
2 changed files with 34 additions and 12 deletions
+17 -6
View File
@@ -4,6 +4,8 @@
// CHANGES:
//
// v0.50 Add support for digit separators in numeric literals.
//
// v0.49 Add support for static and top-level members with no implementation.
//
// v0.48 Add support for enhanced parts.
@@ -1734,7 +1736,12 @@ DIGIT
fragment
EXPONENT
: ('e' | 'E') ('+' | '-')? DIGIT+
: ('e' | 'E') ('+' | '-')? DIGITS
;
fragment
DIGITS
: DIGIT ('_'* DIGIT)*
;
fragment
@@ -1744,6 +1751,11 @@ HEX_DIGIT
| DIGIT
;
fragment
HEX_DIGITS
: HEX_DIGIT ('_'* HEX_DIGIT)*
;
// Reserved words (if updated, update `reservedWord` as well).
ASSERT
@@ -2031,14 +2043,13 @@ WHEN
// Lexical tokens that are not words.
NUMBER
: DIGIT+ '.' DIGIT+ EXPONENT?
| DIGIT+ EXPONENT?
| '.' DIGIT+ EXPONENT?
: DIGITS ('.' DIGITS)? EXPONENT?
| '.' DIGITS EXPONENT?
;
HEX_NUMBER
: '0x' HEX_DIGIT+
| '0X' HEX_DIGIT+
: '0x' HEX_DIGITS
| '0X' HEX_DIGITS
;
RAW_SINGLE_LINE_STRING
+17 -6
View File
@@ -4,6 +4,8 @@
// CHANGES:
//
// v0.51 Add support for digit separators in numeric literals.
//
// v0.50 Add support for static and top-level members with no implementation.
//
// v0.49 Add support for enhanced parts.
@@ -1740,7 +1742,12 @@ DIGIT
fragment
EXPONENT
: ('e' | 'E') ('+' | '-')? DIGIT+
: ('e' | 'E') ('+' | '-')? DIGITS
;
fragment
DIGITS
: DIGIT ('_'* DIGIT)*
;
fragment
@@ -1750,6 +1757,11 @@ HEX_DIGIT
| DIGIT
;
fragment
HEX_DIGITS
: HEX_DIGIT ('_'* HEX_DIGIT)*
;
// Reserved words (if updated, update `reservedWord` as well).
ASSERT
@@ -2037,14 +2049,13 @@ WHEN
// Lexical tokens that are not words.
NUMBER
: DIGIT+ '.' DIGIT+ EXPONENT?
| DIGIT+ EXPONENT?
| '.' DIGIT+ EXPONENT?
: DIGITS ('.' DIGITS)? EXPONENT?
| '.' DIGITS EXPONENT?
;
HEX_NUMBER
: '0x' HEX_DIGIT+
| '0X' HEX_DIGIT+
: '0x' HEX_DIGITS
| '0X' HEX_DIGITS
;
RAW_SINGLE_LINE_STRING