File tree Expand file tree Collapse file tree 3 files changed +18
-5
lines changed
com.oracle.graal.python.test/src/tests
com.oracle.graal.python/src/com/oracle/graal/python/parser Expand file tree Collapse file tree 3 files changed +18
-5
lines changed Original file line number Diff line number Diff line change @@ -114,3 +114,10 @@ def newhook(value):
114
114
assert got_value == 6
115
115
finally :
116
116
sys .displayhook = oldhook
117
+
118
+
119
+ def test_underscore_in_numbers ():
120
+ assert eval ('1_0' ) == 10
121
+ assert eval ('0b1_1' ) == 0b11
122
+ assert eval ('0o1_7' ) == 0o17
123
+ assert eval ('0x1_f' ) == 0x1f
Original file line number Diff line number Diff line change @@ -791,7 +791,8 @@ public static String unescapeJavaString(String st) {
791
791
return sb .toString ();
792
792
}
793
793
794
- private Object parseNumber (String text ) {
794
+ private Object parseNumber (String inputText ) {
795
+ String text = inputText .replace ("_" , "" );
795
796
if (text .endsWith ("j" ) || text .endsWith ("J" ) || text .contains ("." )) {
796
797
return parseDottedNumber (text );
797
798
} else {
Original file line number Diff line number Diff line change @@ -411,7 +411,7 @@ BYTES_LITERAL
411
411
412
412
// / decimalinteger ::= nonzerodigit digit* | "0"+
413
413
DECIMAL_INTEGER
414
- : NON_ZERO_DIGIT DIGIT *
414
+ : NON_ZERO_DIGIT DECIMAL_DIGIT *
415
415
| ' 0' +
416
416
;
417
417
@@ -541,19 +541,24 @@ fragment DIGIT
541
541
: [0-9]
542
542
;
543
543
544
+ // / decimal integer digit ::= "0"..."9"
545
+ fragment DECIMAL_DIGIT
546
+ : [0-9_]
547
+ ;
548
+
544
549
// / octdigit ::= "0"..."7"
545
550
fragment OCT_DIGIT
546
- : [0-7 ]
551
+ : [0-7_ ]
547
552
;
548
553
549
554
// / hexdigit ::= digit | "a"..."f" | "A"..."F"
550
555
fragment HEX_DIGIT
551
- : [0-9a-fA-F ]
556
+ : [0-9a-fA-F_ ]
552
557
;
553
558
554
559
// / bindigit ::= "0" | "1"
555
560
fragment BIN_DIGIT
556
- : [01 ]
561
+ : [01_ ]
557
562
;
558
563
559
564
// / pointfloat ::= [intpart] fraction | intpart "."
You can’t perform that action at this time.
0 commit comments