1 ! Copyright (C) 2007, 2008 Slava Pestov, Eduardo Cavazos.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors kernel locals locals.types prettyprint.backend
4 prettyprint.custom prettyprint.sections sequences words ;
7 : pprint-var ( var -- )
8 ! Prettyprint a read/write local as its writer, just like
9 ! in the input syntax: [| x! | ... x 3 + x! ]
11 "local-writer" word-prop
14 : pprint-vars ( vars -- ) [ pprint-var ] each ;
19 dup vars>> pprint-vars
21 f <inset body>> pprint-elements block>
25 : pprint-let ( let word -- )
27 <block body>> pprint-elements block>
30 M: let pprint* \ [let pprint-let ;
34 [ <block \ :> pprint-word local>> pprint-var block> ]
38 dup locals>> [ word? ] all?
39 [ <block \ :> pprint-word "(" text locals>> [ pprint-var ] each ")" text block> ]