From ce211ac3640eefcdd91021d67aa3099ca1020a5c Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Fri, 17 Sep 2010 11:39:07 -0500 Subject: [PATCH] adjusted metafunction application rendering so that ellipses do not get commas put in front of them --- collects/redex/private/core-layout.rkt | 10 +++++++--- collects/redex/tests/bitmap-test.rkt | 12 ++++++++++++ collects/redex/tests/bmps-macosx/rdups.png | Bin 0 -> 4093 bytes 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 collects/redex/tests/bmps-macosx/rdups.png diff --git a/collects/redex/private/core-layout.rkt b/collects/redex/private/core-layout.rkt index 763124bc46..c10b4870ee 100644 --- a/collects/redex/private/core-layout.rkt +++ b/collects/redex/private/core-layout.rkt @@ -258,9 +258,13 @@ (just-after (close-white-square-bracket) last)))] [(null? (cddr lst)) (cons (car lst) (loop (cdr lst)))] - [else (list* (car lst) - (just-after (basic-text "," (default-style)) (car lst)) - (loop (cdr lst)))])))) + [else + (if (eq? '... (lw-e (cadr lst))) + (cons (car lst) + (loop (cdr lst))) + (list* (car lst) + (just-after (basic-text "," (default-style)) (car lst)) + (loop (cdr lst))))])))) (define (just-before what lw) (build-lw (if (symbol? what) diff --git a/collects/redex/tests/bitmap-test.rkt b/collects/redex/tests/bitmap-test.rkt index 6efb9e7ed5..4b0c5a40d4 100644 --- a/collects/redex/tests/bitmap-test.rkt +++ b/collects/redex/tests/bitmap-test.rkt @@ -187,6 +187,18 @@ ;; make sure two metafunctions simultaneously rewritten line up properly (test (render-metafunctions S T TL) "metafunctions-multiple.png") +;; make sure that the ellipses don't have commas before them. +(define-metafunction lang + rdups : x ... -> (x ...) + [(rdups x_1 x_2 ... x_1 x_3 ...) + (rdups x_2 ... x_1 x_3 ...)] + [(rdups x_1 x_2 ...) + (x_1 x_3 ...) + (where (x_3 ...) (rdups x_2 ...))] + [(rdups) ()]) + +(test (render-metafunction rdups) "rdups.png") + ;; Non-terminal superscripts (test (render-lw lang (to-lw (x_^abcdef x_q^abcdef))) "superscripts.png") diff --git a/collects/redex/tests/bmps-macosx/rdups.png b/collects/redex/tests/bmps-macosx/rdups.png new file mode 100644 index 0000000000000000000000000000000000000000..7bb959b60090f457ed0fddaa07956c4d7f4f6aa2 GIT binary patch literal 4093 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