@@ -318,28 +318,37 @@ if s:Python2Syntax()
318
318
319
319
syn match pythonOctError ' \< 0[oO]\=\o *[8-9]\d *[lL]\=\> ' display
320
320
syn match pythonBinError ' \< 0[bB][01]*[2-9]\d *[lL]\=\> ' display
321
+
322
+ syn match pythonFloat ' \.\d\+\% ([eE][+-]\=\d\+\)\= [jJ]\=\> ' display
323
+ syn match pythonFloat ' \<\d\+ [eE][+-]\=\d\+ [jJ]\=\> ' display
324
+ syn match pythonFloat ' \<\d\+\.\d *\% ([eE][+-]\=\d\+\)\= [jJ]\= ' display
321
325
else
322
- syn match pythonHexError ' \< 0[xX]\x *[g-zG-Z]\x *\> ' display
323
326
syn match pythonOctError ' \< 0[oO]\=\o *\D\+\d *\> ' display
327
+ " pythonHexError comes after pythonOctError so that 0xffffl is pythonHexError
328
+ syn match pythonHexError ' \< 0[xX]\x *[g-zG-Z]\x *\> ' display
324
329
syn match pythonBinError ' \< 0[bB][01]*\D\+\d *\> ' display
325
330
326
- syn match pythonHexNumber ' \< 0[xX]\x\+ \>' display
327
- syn match pythonOctNumber ' \< 0[oO]\o\+ \>' display
328
- syn match pythonBinNumber ' \< 0[bB][01]\+ \>' display
331
+ syn match pythonHexNumber ' \< 0[xX][_0-9a-fA-F]* \x \>' display
332
+ syn match pythonOctNumber ' \< 0[oO][_0-7]* \o \>' display
333
+ syn match pythonBinNumber ' \< 0[bB][_01]*[ 01]\> ' display
329
334
330
- syn match pythonNumberError ' \<\d\+\D\> ' display
331
- syn match pythonNumberError ' \< 0\d\+\> ' display
335
+ syn match pythonNumberError ' \<\d [_0-9]*\D\> ' display
336
+ syn match pythonNumberError ' \< 0[_0-9]\+\> ' display
337
+ syn match pythonNumberError ' \< 0_x\S *\> ' display
338
+ syn match pythonNumberError ' \< 0[bBxXoO][_0-9a-fA-F]*_\> ' display
339
+ syn match pythonNumberError ' \<\d [_0-9]*_\> ' display
332
340
syn match pythonNumber ' \<\d\> ' display
333
- syn match pythonNumber ' \< [1-9]\d\+\> ' display
334
- syn match pythonNumber ' \<\d\+ [jJ]\> ' display
341
+ syn match pythonNumber ' \< [1-9][_0-9]*\d\> ' display
342
+ syn match pythonNumber ' \<\d [jJ]\> ' display
343
+ syn match pythonNumber ' \< [1-9][_0-9]*\d [jJ]\> ' display
335
344
336
345
syn match pythonOctError ' \< 0[oO]\=\o *[8-9]\d *\> ' display
337
346
syn match pythonBinError ' \< 0[bB][01]*[2-9]\d *\> ' display
338
- endif
339
347
340
- syn match pythonFloat ' \.\d\+\% ([eE][+-]\=\d\+\)\= [jJ]\=\> ' display
341
- syn match pythonFloat ' \<\d\+ [eE][+-]\=\d\+ [jJ]\=\> ' display
342
- syn match pythonFloat ' \<\d\+\.\d *\% ([eE][+-]\=\d\+\)\= [jJ]\= ' display
348
+ syn match pythonFloat ' \.\d\% ([_0-9]*\d\)\=\% ([eE][+-]\=\d\% ([_0-9]*\d\)\=\)\= [jJ]\=\> ' display
349
+ syn match pythonFloat ' \<\d\% ([_0-9]*\d\)\= [eE][+-]\=\d\% ([_0-9]*\d\)\= [jJ]\=\> ' display
350
+ syn match pythonFloat ' \<\d\% ([_0-9]*\d\)\=\.\d\% ([_0-9]*\d\)\=\% ([eE][+-]\=\d\% ([_0-9]*\d\)\=\)\= [jJ]\= ' display
351
+ endif
343
352
344
353
"
345
354
" Builtin objects and types
0 commit comments