| 
									
										
										
										
											2009-09-19 15:14:47 -04:00
										 |  |  | ! Copyright (C) 2009 blei, Doug Coleman. | 
					
						
							|  |  |  | ! See http://factorcode.org/license.txt for BSD license. | 
					
						
							| 
									
										
										
										
											2011-11-03 14:47:57 -04:00
										 |  |  | USING: kernel locals make math multiline sequences ;
 | 
					
						
							| 
									
										
										
										
											2009-06-05 02:29:36 -04:00
										 |  |  | IN: nested-comments | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-19 15:14:47 -04:00
										 |  |  | : (count-subsequences) ( count substring string n -- count' )
 | 
					
						
							|  |  |  |     [ 2dup ] dip start* [ | 
					
						
							|  |  |  |         pick length +
 | 
					
						
							|  |  |  |         [ 1 + ] 3dip (count-subsequences) | 
					
						
							|  |  |  |     ] [ | 
					
						
							|  |  |  |         2drop
 | 
					
						
							|  |  |  |     ] if* ;
 | 
					
						
							| 
									
										
										
										
											2009-06-05 02:29:36 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-19 15:14:47 -04:00
										 |  |  | : count-subsequences ( subseq seq -- n )
 | 
					
						
							|  |  |  |     [ 0 ] 2dip 0 (count-subsequences) ;
 | 
					
						
							| 
									
										
										
										
											2009-06-05 02:29:36 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-19 15:14:47 -04:00
										 |  |  | : parse-nestable-comment ( parsed-vector left-to-parse -- parsed-vector )
 | 
					
						
							|  |  |  |     1 - "*)" parse-multiline-string | 
					
						
							|  |  |  |     [ "(*" ] dip
 | 
					
						
							|  |  |  |     count-subsequences + dup 0 > [ parse-nestable-comment ] [ drop ] if ;
 | 
					
						
							| 
									
										
										
										
											2009-06-05 02:29:36 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-19 15:14:47 -04:00
										 |  |  | SYNTAX: (* 1 parse-nestable-comment ;
 |