Skip to content

Commit 6f5d68f

Browse files
Python: Support for underscores in numbers (#3039)
1 parent d8ef3d5 commit 6f5d68f

File tree

3 files changed

+20
-3
lines changed

3 files changed

+20
-3
lines changed

Diff for: components/prism-python.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ Prism.languages.python = {
5454
'keyword': /\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,
5555
'builtin': /\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,
5656
'boolean': /\b(?:True|False|None)\b/,
57-
'number': /(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?j?\b/i,
57+
'number': /\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?\b/i,
5858
'operator': /[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,
5959
'punctuation': /[{}[\];(),.:]/
6060
};

Diff for: components/prism-python.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: tests/languages/python/number_feature.test

+18-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,14 @@
77
0.3e-7
88
4.8e+1
99
42j
10+
0b_0001
11+
0b0_001
12+
0o_754
13+
0o7_540
14+
0x_BadFace
15+
0xBad_Face
16+
4_200
17+
4_200j
1018

1119
----------------------------------------------------
1220

@@ -19,7 +27,16 @@
1927
["number", "2.1E10"],
2028
["number", "0.3e-7"],
2129
["number", "4.8e+1"],
22-
["number", "42j"]
30+
["number", "42j"],
31+
["number", "0b_0001"],
32+
["number", "0b0_001"],
33+
["number", "0o_754"],
34+
["number", "0o7_540"],
35+
["number", "0x_BadFace"],
36+
["number", "0xBad_Face"],
37+
["number", "4_200"],
38+
["number", "4_200j"]
39+
2340
]
2441

2542
----------------------------------------------------

0 commit comments

Comments
 (0)