From e0edc702150b11541c1e1861d3832fdff3115fd7 Mon Sep 17 00:00:00 2001 From: Robby Findler Date: Fri, 15 Aug 2008 04:11:31 +0000 Subject: [PATCH] svn: r11269 --- collects/redex/HISTORY | 3 + collects/redex/pict.ss | 14 ++- collects/redex/private/bitmap-test.ss | 101 ++++++++++--------- collects/redex/private/bmps/language-nox.png | Bin 0 -> 3016 bytes collects/redex/redex.scrbl | 9 +- 5 files changed, 65 insertions(+), 62 deletions(-) create mode 100644 collects/redex/private/bmps/language-nox.png diff --git a/collects/redex/HISTORY b/collects/redex/HISTORY index 27bde4a65f..555d9a7a6a 100644 --- a/collects/redex/HISTORY +++ b/collects/redex/HISTORY @@ -3,6 +3,9 @@ v4.2 - added white-bracket-sizing to control how the brackets are typeset when rendering a metafunction. + - added render-* functions that make it easier to experiment + with typesetting at the REPL. + v4.1 (this is the first version that was included in the PLT distribution. Before this, Redex was in PLaneT). diff --git a/collects/redex/pict.ss b/collects/redex/pict.ss index b26fb97032..cfe27898f0 100644 --- a/collects/redex/pict.ss +++ b/collects/redex/pict.ss @@ -21,10 +21,9 @@ (->d ([rel reduction-relation?]) ([file (or/c false/c path-string?)] #:style [style reduction-rule-style/c]) - [result (lambda (x) - (if (path-string? file) - (void? x) - (pict? x)))])] + [result (if (path-string? file) + void? + pict?)])] [reduction-relation->pict (->* (reduction-relation?) (#:style reduction-rule-style/c) pict?)] @@ -37,10 +36,9 @@ (->d ([lang compiled-lang?]) ([file (or/c false/c path-string?)] #:nts [nts (or/c false/c (listof (or/c string? symbol?)))]) - [result (lambda (x) - (if (path-string? file) - (void? x) - (pict? x)))])]) + [result (if (path-string? file) + void? + pict?)])]) ; syntax (provide metafunction->pict diff --git a/collects/redex/private/bitmap-test.ss b/collects/redex/private/bitmap-test.ss index 7b91078e4c..0746e6f8fd 100644 --- a/collects/redex/private/bitmap-test.ss +++ b/collects/redex/private/bitmap-test.ss @@ -1,50 +1,53 @@ -(module bitmap-test mzscheme - (require "bitmap-test-util.ss" - "../main.ss") - - ;; tests: - ;; - language, - ;; - multi-line non-terminals, single-line non-terminals - (define-language lang - (e (e e) - x - (λ (x) e) - number) - (v number (λ (x) e)) - ((x y) variable-not-otherwise-mentioned)) - (test (render-language lang) "language.png") - - (define-extended-language lang++ lang - (e .... number (+ e e)) - (v .... number)) - - (test (render-language lang++) "extended-language.png") - - (define red - (reduction-relation - lang - (--> ((λ (x) e) v) (S x v e)))) - - ;; tests: reduction-relation - (test (render-reduction-relation red) - "reduction-relation.png") +#lang scheme +(require "bitmap-test-util.ss" + "../main.ss") - (test (render-reduction-relation - (extend-reduction-relation red lang (--> 1 2))) - "extended-reduction-relation.png") - - (define-metafunction lang - [(S x v e) e]) - - (test (render-metafunction S) - "metafunction.png") - - ;; in this test, teh `x' is italic and the 'z' is sf, since 'x' is in the grammar, and 'z' is not. - (test (render-lw - lang - (to-lw ((λ (x) (x x)) - (λ (z) (z z))))) - "lw.png") - - (printf "bitmap-test.ss: ") - (done)) +;; tests: +;; - language, +;; - multi-line non-terminals, single-line non-terminals +(define-language lang + (e (e e) + x + (λ (x) e) + number) + (v number (λ (x) e)) + ((x y) variable-not-otherwise-mentioned)) + +(test (render-language lang) "language.png") + +(test (render-language lang #:nts '(e v)) "language-nox.png") + +(define-extended-language lang++ lang + (e .... number (+ e e)) + (v .... number)) + +(test (render-language lang++) "extended-language.png") + +(define red + (reduction-relation + lang + (--> ((λ (x) e) v) (S x v e)))) + +;; tests: reduction-relation +(test (render-reduction-relation red) + "reduction-relation.png") + +(test (render-reduction-relation + (extend-reduction-relation red lang (--> 1 2))) + "extended-reduction-relation.png") + +(define-metafunction lang + [(S x v e) e]) + +(test (render-metafunction S) + "metafunction.png") + +;; in this test, teh `x' is italic and the 'z' is sf, since 'x' is in the grammar, and 'z' is not. +(test (render-lw + lang + (to-lw ((λ (x) (x x)) + (λ (z) (z z))))) + "lw.png") + +(printf "bitmap-test.ss: ") +(done) diff --git a/collects/redex/private/bmps/language-nox.png b/collects/redex/private/bmps/language-nox.png new file mode 100644 index 0000000000000000000000000000000000000000..107fbde941ed50b9acb4e11155dc73ebbfd66600 GIT binary patch literal 3016 zcmYjTc{r5q9-fdi)=(tNSQ8V&CuJ})MAjlP*|KH}g<~Hh2Kgk}#Y{q$v8FBrorbMGDqlem;xUCcK#s8FS zE0FeLkt;IMxF0$CJvWy-z(h>bIvmOC`E4uzo(Y3?8`$$kB-Cd6kNu3xpdZCF2<~4@ zZ+fvjNIiaI~|V>&w>gp02ys|DzN1Dy%v9pg18Rp|H?J z{`hBG8&1WyATN)&Rw8y${qSUWk(`s0bLf+BmxWXC&S$5tq?wy>$Q&jnCL97?7ckw$ zdHLj#jSc$j6b%a3&nID%?cgahI zun`h<$5kow@f9s(QB+ivmzNhPd||aHXp zQx$W=u!^+kXUX5Mv-`7bxM2tVn>3AxXv4xMijw3R$KAqKiavp$)!*Lp^foMkFoN`;Dfcj6&HN_G?W~r#CAP@*RzIPbH zOk?J~a%H9=Xeg;2<>jUomW}Y~$-D*pudJx(bN>v8d^y=ar%Zyh%~hCCT3WiXwnpme zs{H?hK(v#W*Va_6FDn@Ar1(B4A3Pm2FuX2YRNatj&mxp+~!!nVBS#{vNFb1?8#87#=f!=HkN14{J%0oPdzF zGZ5S$2zRV)Q)sP2I~Wum6Vm})PDSu-D><=A9d?P_CM%`jnI9Kt;OSXrN>FmvQ+~Z$ zpO;4k#Cx9M9BA%G6f0mX)Q$w*EDm8cX)YGp*0jg)j3E>tM?yvANwWnKiF9;*jL*Snqh(u3pe!dx zR7~v0C~KvZ|6D+=HPGh;Mp@6+qfk5mGLX(D^dBjs%uf%cX&V#N&CQ#s`l_m`0b5hC zC*vR59Tu0D4J5dgvxJ0%rl+QGIGmt>09bUvr?#o7X{9Rv+c!T_$_+K)gm#CX3CYy*U{Jd5z5B zhuO8vwMGKZIglw~AHc7*wbc)fN9G(J9bM+*^PXvVB9=JS7;;-q&TFpa6*!6k^y_fP z5ghfy4rcs8ZFPSB)v5L@giSARfS)ZoJ3ITn#6Lc@3l_}Wf%u^Pl}lI{0%0r7TUT2f zFQj?})I#0qm%SB3w1@HM=_csh9C1G=eq2H#lc%SrwU9_09$!*i{HzxjTP=tB41qvE zppWJytA2F@Fo}c?t=T{z1)@2G^rym}TqtQk&o@_8*VL%0s5~||N3wkV@+B!bSrn_E zKR7b-SSB^>c>ji!)HCYOc&;B5iX}Koj2A45W#y9tIv>k5(}WHgEq%g;tVF3fb-wHE zHDc!JIZ!RCt@1m{?fw!SUuLfUUclm?S>-U%q{Jc*oY#a&3EC1AXiV zx~r$BXJ(f2Pb;>AcR3J%X^KDjewLvAIr{cTTKn8 zfKsPnx@IJEPWB1ld6-jrEbT`)S9NtY$5ln_Touo~|4N`I_9$j&`41jPF;e~Y2lGZZ z$*kUOvIAw{>fvEk{rpLAaPW3r@}qjU3mvMLcJ5Dl-0nHU$l28Ka&t$>pBV#|RZ=2L zb3ZPbO9;Rl-+tDeQC9~qWmZ3-QmOH8!)rRex(yYSmO>3iBQ4<#m@|Zg#6mA#6%@`V zZ_6)eUa+fMNA2wG9o@da6ew}^TNVd^K$=0vHoiY zmX?$Z1;>7U5s~ba6y7rPkhNg~V4Ogu?+uqWHl{{LnMIvo{1X!sMb3tXZ0Y1%nLdgN z3JP$z0LHuRsms2v6_TY7r}CHkur$m34z=TiPXDFqV8QB%W)(8_^X%{DxNZoDXt<5*C&o+j*1gV*7)JPUjYs<@L z`2Pik8lGLKIi}4$-IR(UUW#i6T<_X#FF{zzG?UJr1Ck{xE342LPnnr{tAPr}Yxn@? zF`ObgWFYncUrHx0o`{|){K2!I#BDV7Tnw9BOGBqlBn%$8#n zPiw8WzBmKrko-3(Q6JR%QKYW!ZbRiPPd`bW?AgkxGy;LJf)`u_ShKaY1x7=i%^)>f z6bhxMcM%Jdl$2CfrU7YCbnbr$pJCpb5zGqI#@FeI{434^$fBWDAh-GzBOpulb{1>p z<#MHb(MQ-6bqC+g0-=TqZmefj7Uo}q