From 3f4f8c678dd835deeb0ad522cf266502ee0a109b Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Thu, 27 Oct 2011 15:17:49 -0700 Subject: [PATCH] Add a seq>dlist word and make a dlist literal DL{ Implement prettyprint on dlists. --- basis/dlists/dlists.factor | 12 ++++++++++-- basis/dlists/prettyprint/authors.txt | 1 + basis/dlists/prettyprint/prettyprint.factor | 10 ++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) create mode 100644 basis/dlists/prettyprint/authors.txt create mode 100644 basis/dlists/prettyprint/prettyprint.factor diff --git a/basis/dlists/dlists.factor b/basis/dlists/dlists.factor index 5ad627076f..710c9d94fb 100644 --- a/basis/dlists/dlists.factor +++ b/basis/dlists/dlists.factor @@ -1,8 +1,8 @@ ! Copyright (C) 2007, 2009 Mackenzie Straight, Doug Coleman, ! Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. -USING: combinators kernel math sequences accessors deques -search-deques summary hashtables fry math.order ; +USING: accessors combinators deques fry hashtables kernel math +math.order parser search-deques sequences summary vocabs.loader ; IN: dlists seq ( dlist -- seq ) [ ] collector [ dlist-each ] dip ; +: seq>dlist ( seq -- dlist ) + [ '[ _ push-back ] each ] keep ; + : 1dlist ( obj -- dlist ) [ push-front ] keep ; : dlist-filter ( ... dlist quot: ( ... value -- ... ? ) -- ... dlist' ) @@ -167,3 +170,8 @@ M: dlist clone [ '[ _ push-back ] dlist-each ] keep ; INSTANCE: dlist deque + +SYNTAX: DL{ \ } [ seq>dlist ] parse-literal ; + +{ "dlists" "prettyprint" } "dlists.prettyprint" require-when + diff --git a/basis/dlists/prettyprint/authors.txt b/basis/dlists/prettyprint/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/basis/dlists/prettyprint/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/basis/dlists/prettyprint/prettyprint.factor b/basis/dlists/prettyprint/prettyprint.factor new file mode 100644 index 0000000000..393cf07586 --- /dev/null +++ b/basis/dlists/prettyprint/prettyprint.factor @@ -0,0 +1,10 @@ +! Copyright (C) 2011 Doug Coleman. +! See http://factorcode.org/license.txt for BSD license. +USING: dlists kernel prettyprint.custom ; +IN: dlists.prettyprint + +M: dlist pprint-delims drop \ DL{ \ } ; +M: dlist >pprint-sequence dlist>seq ; +M: dlist pprint-narrow? drop f ; +M: dlist pprint* pprint-object ; +