24 lines
		
	
	
		
			787 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			787 B
		
	
	
	
		
			Factor
		
	
	
USING: kernel tools.test compiler.tree compiler.tree.builder
 | 
						|
compiler.tree.recursive compiler.tree.def-use
 | 
						|
compiler.tree.def-use.simplified accessors sequences sorting classes ;
 | 
						|
IN: compiler.tree.def-use.simplified
 | 
						|
 | 
						|
[ { #call #return } ] [
 | 
						|
    [ 1 dup reverse ] build-tree compute-def-use
 | 
						|
    first out-d>> first actually-used-by
 | 
						|
    [ node>> class ] map natural-sort
 | 
						|
] unit-test
 | 
						|
 | 
						|
: word-1 ( a -- b ) dup [ word-1 ] when ; inline recursive
 | 
						|
 | 
						|
[ { #introduce } ] [
 | 
						|
    [ word-1 ] build-tree analyze-recursive compute-def-use
 | 
						|
    last in-d>> first actually-defined-by
 | 
						|
    [ node>> class ] map natural-sort
 | 
						|
] unit-test
 | 
						|
 | 
						|
[ { #if #return } ] [
 | 
						|
    [ word-1 ] build-tree analyze-recursive compute-def-use
 | 
						|
    first out-d>> first actually-used-by
 | 
						|
    [ node>> class ] map natural-sort
 | 
						|
] unit-test |