1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors arrays byte-arrays kernel make math
4 math.parser prettyprint sequences smalltalk.ast strings ;
7 GENERIC: smalltalk>string ( object -- string )
9 M: real smalltalk>string number>string ;
11 M: string smalltalk>string
14 [ dup CHAR: ' = [ dup , , ] [ , ] if ] each
18 GENERIC: array-element>string ( object -- string )
20 M: object array-element>string smalltalk>string ;
22 M: array array-element>string
23 [ array-element>string ] map " " join "(" ")" surround ;
25 M: array smalltalk>string
26 array-element>string "#" prepend ;
28 M: byte-array smalltalk>string
29 [ number>string ] { } map-as " " join "#[" "]" surround ;
31 M: symbol smalltalk>string
32 name>> smalltalk>string "#" prepend ;
34 M: object smalltalk>string unparse-short ;