mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	bpo-36876: Re-organize the c-analyzer tool code. (gh-16841)
This is partly a cleanup of the code. It also is preparation for getting the variables from the source (cross-platform) rather than from the symbols. The change only touches the tool (and its tests).
This commit is contained in:
		
							parent
							
								
									ea55c51bd9
								
							
						
					
					
						commit
						e4c431ecf5
					
				
					 56 changed files with 1376 additions and 1179 deletions
				
			
		
							
								
								
									
										34
									
								
								Tools/c-analyzer/c_analyzer/parser/source.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								Tools/c-analyzer/c_analyzer/parser/source.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,34 @@ | |||
| from . import preprocessor | ||||
| 
 | ||||
| 
 | ||||
| def iter_clean_lines(lines): | ||||
|     incomment = False | ||||
|     for line in lines: | ||||
|         # Deal with comments. | ||||
|         if incomment: | ||||
|             _, sep, line = line.partition('*/') | ||||
|             if sep: | ||||
|                 incomment = False | ||||
|             continue | ||||
|         line, _, _ = line.partition('//') | ||||
|         line, sep, remainder = line.partition('/*') | ||||
|         if sep: | ||||
|             _, sep, after = remainder.partition('*/') | ||||
|             if not sep: | ||||
|                 incomment = True | ||||
|                 continue | ||||
|             line += ' ' + after | ||||
| 
 | ||||
|         # Ignore blank lines and leading/trailing whitespace. | ||||
|         line = line.strip() | ||||
|         if not line: | ||||
|             continue | ||||
| 
 | ||||
|         yield line | ||||
| 
 | ||||
| 
 | ||||
| def iter_lines(filename, *, | ||||
|                preprocess=preprocessor.run, | ||||
|                ): | ||||
|     content = preprocess(filename) | ||||
|     return iter(content.splitlines()) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Eric Snow
						Eric Snow