20 lines
		
	
	
		
			614 B
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			614 B
		
	
	
	
		
			Factor
		
	
	
| ! by blei on #concatenative
 | |
| USING: kernel sequences math locals make multiline ;
 | |
| IN: nested-comments
 | |
| 
 | |
| :: (subsequences-at) ( sseq seq n -- )
 | |
|     sseq seq n start*
 | |
|     [ dup , sseq length + [ sseq seq ] dip (subsequences-at) ]
 | |
|     when* ;
 | |
| 
 | |
| : subsequences-at ( sseq seq -- indices )
 | |
|     [ 0 (subsequences-at) ] { } make ;
 | |
| 
 | |
| : count-subsequences ( sseq seq -- i )
 | |
|     subsequences-at length ;
 | |
| 
 | |
| : parse-all-(* ( parsed-vector left-to-parse -- parsed-vector )
 | |
|     1 - "*)" parse-multiline-string [ "(*" ] dip
 | |
|     count-subsequences + dup 0 > [ parse-all-(* ] [ drop ] if ;
 | |
| 
 | |
| SYNTAX: (* 1 parse-all-(* ; |