From 751dcb4bd1ee6d990552f1706a33fa9967f5f1a6 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Tue, 9 Oct 2012 08:47:34 -0500 Subject: [PATCH] adjust define-judgment-form's typesetting so that it tracks the lines of the premises in the source when deciding how to linebreak the premises of the typeest form --- collects/redex/private/pict.rkt | 64 ++++++++++++++---- collects/redex/tests/bitmap-test.rkt | 6 +- .../bmps-macosx/judgment-form-examples.png | Bin 21410 -> 19262 bytes 3 files changed, 52 insertions(+), 18 deletions(-) diff --git a/collects/redex/private/pict.rkt b/collects/redex/private/pict.rkt index 4d95adc35f..8ac72bb820 100644 --- a/collects/redex/private/pict.rkt +++ b/collects/redex/private/pict.rkt @@ -1076,7 +1076,8 @@ (inference-rules-pict (metafunc-proc-name (metafunction-proc mf)) (metafunc-proc-pict-info (metafunction-proc mf)) (map (λ (x) #f) (metafunc-proc-pict-info (metafunction-proc mf))) - (metafunc-proc-lang (metafunction-proc mf)))) + (metafunc-proc-lang (metafunction-proc mf)) + #f)) (define (render-pict make-pict filename) (cond @@ -1086,7 +1087,7 @@ (parameterize ([dc-for-text-size (make-object bitmap-dc% (make-object bitmap% 1 1))]) (make-pict))])) -(define (inference-rules-pict name all-eqns eqn-names lang) +(define (inference-rules-pict name all-eqns eqn-names lang judgment-form?) (define all-nts (language-nts lang)) (define (wrapper->pict lw) (lw->pict all-nts lw)) (define all-conclusions @@ -1096,21 +1097,55 @@ all-eqns)) (define-values (selected-eqns conclusions selected-eqn-names) (select-jf-cases all-eqns all-conclusions eqn-names)) - (define premisess (map (lambda (eqn) - (append (map wrapper->pict (list-ref eqn 2)) - (map (match-lambda - [(struct metafunc-extra-where (lhs rhs)) - (where-pict (wrapper->pict lhs) (wrapper->pict rhs))] - [(struct metafunc-extra-side-cond (expr)) - (wrapper->pict expr)] - [wrapper (wrapper->pict wrapper)]) - (list-ref eqn 1)))) - selected-eqns)) + + (define (wrapper->pict+lines lw) + (list (wrapper->pict lw) (lw-line lw) (+ (lw-line lw) (lw-line-span lw)))) + + ;; premises : (listof (listof pict)) + ;; each inner list of premises goes on the same line; each element + ;; of the outer list is a separate line + (define premisess + (for/list ([eqn (in-list selected-eqns)]) + ;; all-premises : (listof pict number[first-line] number [last-line]) + (define all-premises + (append (map wrapper->pict+lines (list-ref eqn 2)) + (map (match-lambda + [(struct metafunc-extra-where (lhs rhs)) + (list (where-pict (wrapper->pict lhs) (wrapper->pict rhs)) + (lw-line lhs) + (+ (lw-line rhs) (lw-line-span rhs)))] + [(struct metafunc-extra-side-cond (expr)) + (wrapper->pict+lines expr)] + [wrapper (wrapper->pict+lines wrapper)]) + (list-ref eqn 1)))) + (define sorted-premises (sort all-premises < #:key (λ (x) (list-ref x 1)))) + + ;; returns #t if the two premises share at least one line in common + (define (overlaps? premise1 premise2) + (<= (list-ref premise1 1) + (list-ref premise2 1) + (list-ref premise1 2))) + + (cond + [(not judgment-form?) (list (map car all-premises))] + [(null? sorted-premises) '()] + [else + (define line-grouped-premises (list (list (car sorted-premises)))) + (for ([prev-premise (in-list sorted-premises)] + [premise (in-list (cdr sorted-premises))]) + (cond + [(overlaps? prev-premise premise) + (set! line-grouped-premises (cons (cons premise (car line-grouped-premises)) + (cdr line-grouped-premises)))] + [else + (set! line-grouped-premises (cons (list premise) line-grouped-premises))])) + (reverse (map (λ (x) (reverse (map car x))) line-grouped-premises))]))) + ((relation-clauses-combine) (for/list ([conclusion (in-list conclusions)] [premises (in-list premisess)] [name (in-list selected-eqn-names)]) - (define top (apply hbl-append 20 premises)) + (define top (apply vc-append 4 (map (λ (premises) (apply hbl-append 20 premises)) premises))) (define line-w (max (pict-width top) (pict-width conclusion))) (define line (dc (λ (dc dx dy) (send dc draw-line dx dy (+ dx line-w) dy)) line-w 1)) @@ -1138,7 +1173,8 @@ #`(inference-rules-pict '#,(judgment-form-name jf) #,(judgment-form-lws jf) '#,(judgment-form-rule-names jf) - #,(judgment-form-lang jf)) + #,(judgment-form-lang jf) + #t) 'disappeared-use (syntax-local-introduce form-name))) diff --git a/collects/redex/tests/bitmap-test.rkt b/collects/redex/tests/bitmap-test.rkt index e073ffda9b..4a4e85a973 100644 --- a/collects/redex/tests/bitmap-test.rkt +++ b/collects/redex/tests/bitmap-test.rkt @@ -318,8 +318,7 @@ (define-judgment-form nats #:mode (uses-ellipses I) [(uses-ellipses (n ...)) - (lt2 n) ... - (sum z z z)]) + (lt2 n) ... (sum z z z)]) (btest (vc-append 10 @@ -352,8 +351,7 @@ #:mode (typeof I I O) #:contract (typeof Γ e τ) [(typeof Γ (e_1 e_2) τ) - (typeof Γ e_1 (τ_2 → τ)) - (typeof Γ e_2 τ_2)] + (typeof Γ e_1 (τ_2 → τ)) (typeof Γ e_2 τ_2)] [(typeof Γ (λ (x : τ) e) (τ → σ)) (typeof (extend Γ x τ) e σ)] [(typeof Γ x τ) diff --git a/collects/redex/tests/bmps-macosx/judgment-form-examples.png b/collects/redex/tests/bmps-macosx/judgment-form-examples.png index b7c15a71b4e48616ffcaa5f847cbe27c5335c529..50db2b3c42e61e3ba0f3ce624fa926d10b780f22 100644 GIT binary patch literal 19262 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

;M92rL<@cVBuN{n&WU%$C$ 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 literal 21410 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 S@#gPM5-l}7)vwAnQU3)(#T%ah