diff --git a/basis/struct-arrays/prettyprint/prettyprint.factor b/basis/struct-arrays/prettyprint/prettyprint.factor index 352def9055..dcf57fb454 100644 --- a/basis/struct-arrays/prettyprint/prettyprint.factor +++ b/basis/struct-arrays/prettyprint/prettyprint.factor @@ -9,5 +9,11 @@ M: struct-array pprint-delims M: struct-array >pprint-sequence [ >array ] [ class>> ] bi prefix ; -M: struct-array pprint* pprint-object ; +: pprint-struct-array-pointer ( struct-array -- ) + \ struct-array@ pprint-word + [ class>> ] [ underlying>> ] [ length>> ] tri [ pprint* ] tri@ ; + +M: struct-array pprint* + [ pprint-object ] + [ pprint-struct-array-pointer ] pprint-c-object ; diff --git a/basis/struct-arrays/struct-arrays.factor b/basis/struct-arrays/struct-arrays.factor index 2161041a3f..3f8cba56e2 100755 --- a/basis/struct-arrays/struct-arrays.factor +++ b/basis/struct-arrays/struct-arrays.factor @@ -71,6 +71,9 @@ M: struct-type ( alien len c-type -- array ) SYNTAX: struct-array{ \ } scan-word [ >struct-array ] curry parse-literal ; +SYNTAX: struct-array@ + scan-word [ scan-object scan-object ] dip parsed ; + USING: vocabs vocabs.loader ; "prettyprint" vocab [ "struct-arrays.prettyprint" require ] when