56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Factor
		
	
	
		
		
			
		
	
	
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Factor
		
	
	
| 
								 | 
							
								! Copyright (C) 2008 Doug Coleman.
							 | 
						||
| 
								 | 
							
								! See http://factorcode.org/license.txt for BSD license.
							 | 
						||
| 
								 | 
							
								USING: accessors kernel math math.order symbols regexp.parser
							 | 
						||
| 
								 | 
							
								words regexp.utils unicode.categories combinators.short-circuit ;
							 | 
						||
| 
								 | 
							
								IN: regexp.classes
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								GENERIC: class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: word class-member? ( obj class -- ? ) 2drop f ;
							 | 
						||
| 
								 | 
							
								M: integer class-member? ( obj class -- ? ) 2drop f ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: character-class-range class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    [ from>> ] [ to>> ] bi between? ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: any-char class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    2drop t ;
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								M: letter-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    drop letter? ;
							 | 
						||
| 
								 | 
							
								            
							 | 
						||
| 
								 | 
							
								M: LETTER-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    drop LETTER? ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: Letter-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    drop Letter? ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: ascii-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    drop ascii? ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: digit-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    drop digit? ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: alpha-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    drop alpha? ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: punctuation-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    drop punct? ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: java-printable-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    drop java-printable? ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: non-newline-blank-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    drop { [ blank? ] [ CHAR: \n = not ] } 1&& ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: control-character-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    drop control-char? ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: hex-digit-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    drop hex-digit? ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: java-blank-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    drop java-blank? ;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								M: unmatchable-class class-member? ( obj class -- ? )
							 | 
						||
| 
								 | 
							
								    2drop f ;
							 |