45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
| ! Copyright (C) 2009 Slava Pestov.
 | |
| ! See http://factorcode.org/license.txt for BSD license.
 | |
| USING: assocs debugger io kernel sequences source-files.errors
 | |
| summary accessors continuations make math.parser io.styles namespaces
 | |
| compiler.errors prettyprint ;
 | |
| IN: tools.errors
 | |
| 
 | |
| #! Tools for source-files.errors. Used by tools.tests and others
 | |
| #! for error reporting
 | |
| 
 | |
| M: source-file-error compute-restarts error>> compute-restarts ;
 | |
| 
 | |
| M: source-file-error error-help error>> error-help ;
 | |
| 
 | |
| CONSTANT: +listener-input+ "<Listener input>"
 | |
| 
 | |
| M: source-file-error summary
 | |
|     [
 | |
|         [ file>> [ % ": " % ] [ +listener-input+ % ] if* ]
 | |
|         [ line#>> [ # ] when* ] bi
 | |
|     ] "" make ;
 | |
| 
 | |
| M: source-file-error error.
 | |
|     [ summary print nl ]
 | |
|     [ asset>> [ "Asset: " write short. nl ] when* ]
 | |
|     [ error>> error. ]
 | |
|     tri ;
 | |
| 
 | |
| : errors. ( errors -- )
 | |
|     group-by-source-file sort-errors
 | |
|     [
 | |
|         [ nl "==== " write +listener-input+ or print nl ]
 | |
|         [ [ nl ] [ error. ] interleave ]
 | |
|         bi*
 | |
|     ] assoc-each ;
 | |
| 
 | |
| : :errors ( -- ) compiler-errors get values errors. ;
 | |
| 
 | |
| : :linkage ( -- ) linkage-errors get values errors. ;
 | |
| 
 | |
| M: not-compiled summary
 | |
|     word>> name>> "The word " " cannot be executed because it failed to compile" surround ;
 | |
| 
 | |
| M: not-compiled error.
 | |
|     [ summary print nl ] [ error>> error. ] bi ; |