Fix tr for chars > 255
							parent
							
								
									bf47ff4007
								
							
						
					
					
						commit
						e58f41da40
					
				| 
						 | 
					@ -5,3 +5,4 @@ TR: tr-test ch>upper "ABC" "XYZ" ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
[ "XXYY" ] [ "aabb" tr-test ] unit-test
 | 
					[ "XXYY" ] [ "aabb" tr-test ] unit-test
 | 
				
			||||||
[ "XXYY" ] [ "AABB" tr-test ] unit-test
 | 
					[ "XXYY" ] [ "AABB" tr-test ] unit-test
 | 
				
			||||||
 | 
					[ { 12345 } ] [ { 12345 } tr-test ] unit-test
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
! Copyright (C) 2008 Slava Pestov.
 | 
					! Copyright (C) 2008 Slava Pestov.
 | 
				
			||||||
! See http://factorcode.org/license.txt for BSD license.
 | 
					! See http://factorcode.org/license.txt for BSD license.
 | 
				
			||||||
USING: byte-arrays strings sequences sequences.private
 | 
					USING: byte-arrays strings sequences sequences.private
 | 
				
			||||||
fry kernel words parser lexer assocs ;
 | 
					fry kernel words parser lexer assocs math.order ;
 | 
				
			||||||
IN: tr
 | 
					IN: tr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<PRIVATE
 | 
					<PRIVATE
 | 
				
			||||||
| 
						 | 
					@ -15,15 +15,17 @@ IN: tr
 | 
				
			||||||
: create-tr ( token -- word )
 | 
					: create-tr ( token -- word )
 | 
				
			||||||
    create-in dup tr-hints ;
 | 
					    create-in dup tr-hints ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					: tr-quot ( mapping -- quot )
 | 
				
			||||||
 | 
					    '[ [ dup 0 255 between? [ , nth-unsafe ] when ] map ] ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: define-tr ( word mapping -- )
 | 
					: define-tr ( word mapping -- )
 | 
				
			||||||
    '[ [ , nth ] map ]
 | 
					    tr-quot (( seq -- translated )) define-declared ;
 | 
				
			||||||
    (( seq -- translated ))
 | 
					
 | 
				
			||||||
    define-declared ;
 | 
					: fast-tr-quot ( mapping -- quot )
 | 
				
			||||||
 | 
					    '[ [ , nth-unsafe ] change-each ] ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
: define-fast-tr ( word mapping -- )
 | 
					: define-fast-tr ( word mapping -- )
 | 
				
			||||||
    '[ [ , nth-unsafe ] change-each ]
 | 
					    fast-tr-quot (( seq -- )) define-declared ;
 | 
				
			||||||
    (( seq -- ))
 | 
					 | 
				
			||||||
    define-declared ;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
PRIVATE>
 | 
					PRIVATE>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue