@@ -8,8 +8,10 @@ PRETOKEN_2015 = {
8
8
Double_quoted_literal_2015 |
9
9
Raw_double_quoted_literal_2015 |
10
10
Unterminated_literal_2015 |
11
- Float_literal |
12
- Reserved_float |
11
+ Float_literal_1 |
12
+ Reserved_float_empty_exponent |
13
+ Float_literal_2 |
14
+ Reserved_float_based |
13
15
Integer_literal |
14
16
Lifetime_or_label |
15
17
Raw_identifier |
@@ -27,8 +29,10 @@ PRETOKEN_2021 = {
27
29
Double_quoted_literal_2021 |
28
30
Raw_double_quoted_literal_2021 |
29
31
Reserved_literal_2021 |
30
- Float_literal |
31
- Reserved_float |
32
+ Float_literal_1 |
33
+ Reserved_float_empty_exponent |
34
+ Float_literal_2 |
35
+ Reserved_float_based |
32
36
Integer_literal |
33
37
Raw_lifetime_or_label_2021 |
34
38
Reserved_lifetime_or_label_prefix_2021 |
@@ -49,8 +53,10 @@ PRETOKEN_2024 = {
49
53
Raw_double_quoted_literal_2021 |
50
54
Reserved_literal_2021 |
51
55
Reserved_guard_2024 |
52
- Float_literal |
53
- Reserved_float |
56
+ Float_literal_1 |
57
+ Reserved_float_empty_exponent |
58
+ Float_literal_2 |
59
+ Reserved_float_based |
54
60
Integer_literal |
55
61
Raw_lifetime_or_label_2021 |
56
62
Reserved_lifetime_or_label_prefix_2021 |
@@ -166,9 +172,11 @@ DECIMAL_PART = { '0'..'9' ~ DECIMAL_DIGITS }
166
172
167
173
168
174
// ANCHOR: float_literal
169
- Float_literal = {
170
- FLOAT_BODY_WITH_EXPONENT ~ SUFFIX ? |
171
- FLOAT_BODY_WITHOUT_EXPONENT ~ !("e"|"E") ~ SUFFIX ? |
175
+ Float_literal_1 = {
176
+ FLOAT_BODY_WITH_EXPONENT ~ SUFFIX ?
177
+ }
178
+ Float_literal_2 = {
179
+ FLOAT_BODY_WITHOUT_EXPONENT ~ SUFFIX ? |
172
180
FLOAT_BODY_WITH_FINAL_DOT ~ !"." ~ !IDENT_START
173
181
}
174
182
@@ -188,40 +196,34 @@ FLOAT_BODY_WITH_FINAL_DOT = {
188
196
// ANCHOR_END: float_literal
189
197
190
198
// ANCHOR: reserved_float
191
- Reserved_float = {
192
- RESERVED_FLOAT_EMPTY_EXPONENT | RESERVED_FLOAT_BASED
193
- }
194
- RESERVED_FLOAT_EMPTY_EXPONENT = {
199
+ Reserved_float_empty_exponent = {
195
200
DECIMAL_PART ~ ("." ~ DECIMAL_PART ) ? ~
196
- ("e"|"E") ~ ("+"|"-") ?
201
+ ("e"|"E") ~ ("+"|"-")
197
202
}
198
- RESERVED_FLOAT_BASED = {
203
+ Reserved_float_based = {
199
204
(
200
205
("0b" | "0o") ~ LOW_BASE_PRETOKEN_DIGITS |
201
206
"0x" ~ HEXADECIMAL_DIGITS
202
207
) ~ (
203
- ("e"|"E") |
208
+ ("e"|"E") ~ ("+"|"-" | EXPONENT_DIGITS) |
204
209
"." ~ !"." ~ !IDENT_START
205
210
)
206
211
}
207
212
// ANCHOR_END: reserved_float
208
213
209
-
210
214
// ANCHOR: integer_literals
211
215
Integer_literal = {
212
216
( INTEGER_BINARY_LITERAL |
213
217
INTEGER_OCTAL_LITERAL |
214
218
INTEGER_HEXADECIMAL_LITERAL |
215
219
INTEGER_DECIMAL_LITERAL ) ~
216
- SUFFIX_NO_E ?
220
+ SUFFIX ?
217
221
}
218
222
219
223
INTEGER_BINARY_LITERAL = { "0b" ~ LOW_BASE_PRETOKEN_DIGITS }
220
224
INTEGER_OCTAL_LITERAL = { "0o" ~ LOW_BASE_PRETOKEN_DIGITS }
221
225
INTEGER_HEXADECIMAL_LITERAL = { "0x" ~ HEXADECIMAL_DIGITS }
222
226
INTEGER_DECIMAL_LITERAL = { DECIMAL_PART }
223
-
224
- SUFFIX_NO_E = { !("e"|"E") ~ SUFFIX }
225
227
// ANCHOR_END: integer_literals
226
228
227
229
0 commit comments