mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 18:07:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			80 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # These are shared with test_tokenize and other test modules.
 | |
| #
 | |
| # Note: since several test cases filter out floats by looking for "e" and ".",
 | |
| # don't add hexadecimal literals that contain "e" or "E".
 | |
| VALID_UNDERSCORE_LITERALS = [
 | |
|     '0_0_0',
 | |
|     '4_2',
 | |
|     '1_0000_0000',
 | |
|     '0b1001_0100',
 | |
|     '0xffff_ffff',
 | |
|     '0o5_7_7',
 | |
|     '1_00_00.5',
 | |
|     '1_00_00.5e5',
 | |
|     '1_00_00e5_1',
 | |
|     '1e1_0',
 | |
|     '.1_4',
 | |
|     '.1_4e1',
 | |
|     '0b_0',
 | |
|     '0x_f',
 | |
|     '0o_5',
 | |
|     '1_00_00j',
 | |
|     '1_00_00.5j',
 | |
|     '1_00_00e5_1j',
 | |
|     '.1_4j',
 | |
|     '(1_2.5+3_3j)',
 | |
|     '(.5_6j)',
 | |
| ]
 | |
| INVALID_UNDERSCORE_LITERALS = [
 | |
|     # Trailing underscores:
 | |
|     '0_',
 | |
|     '42_',
 | |
|     '1.4j_',
 | |
|     '0x_',
 | |
|     '0b1_',
 | |
|     '0xf_',
 | |
|     '0o5_',
 | |
|     '0 if 1_Else 1',
 | |
|     # Underscores in the base selector:
 | |
|     '0_b0',
 | |
|     '0_xf',
 | |
|     '0_o5',
 | |
|     # Old-style octal, still disallowed:
 | |
|     '0_7',
 | |
|     '09_99',
 | |
|     # Multiple consecutive underscores:
 | |
|     '4_______2',
 | |
|     '0.1__4',
 | |
|     '0.1__4j',
 | |
|     '0b1001__0100',
 | |
|     '0xffff__ffff',
 | |
|     '0x___',
 | |
|     '0o5__77',
 | |
|     '1e1__0',
 | |
|     '1e1__0j',
 | |
|     # Underscore right before a dot:
 | |
|     '1_.4',
 | |
|     '1_.4j',
 | |
|     # Underscore right after a dot:
 | |
|     '1._4',
 | |
|     '1._4j',
 | |
|     '._5',
 | |
|     '._5j',
 | |
|     # Underscore right after a sign:
 | |
|     '1.0e+_1',
 | |
|     '1.0e+_1j',
 | |
|     # Underscore right before j:
 | |
|     '1.4_j',
 | |
|     '1.4e5_j',
 | |
|     # Underscore right before e:
 | |
|     '1_e1',
 | |
|     '1.4_e1',
 | |
|     '1.4_e1j',
 | |
|     # Underscore right after e:
 | |
|     '1e_1',
 | |
|     '1.4e_1',
 | |
|     '1.4e_1j',
 | |
|     # Complex cases with parens:
 | |
|     '(1+1.5_j_)',
 | |
|     '(1+1.5_j)',
 | |
| ]
 | 
