Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /smlnj-lib/trunk/PP/tests/test-html.sml
ViewVC logotype

Annotation of /smlnj-lib/trunk/PP/tests/test-html.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 651 - (view) (download)
Original Path: sml/trunk/src/smlnj-lib/PP/tests/test-html.sml

1 : monnier 7 (* test.sml
2 :     *
3 :     * COPYRIGHT (c) 1997 Bell Labs, Lucent Technologies.
4 :     *)
5 :    
6 :     CM.make(); (* to compile and load the PP library *)
7 :    
8 :     structure TextToken =
9 :     struct
10 :     type token = string
11 :     type style = HTMLDev.style
12 :     fun string t = t
13 :     fun style t = HTMLDev.styleTT
14 :     fun size t = String.size t
15 :     end;
16 :    
17 :     structure PP = PPDebugFn(PPStreamFn(
18 :     structure Token = TextToken
19 :     structure Device = HTMLDev));
20 :    
21 :     fun kw strm s = (
22 :     PP.pushStyle(strm, HTMLDev.styleB);
23 :     PP.string strm s;
24 :     PP.popStyle strm)
25 :    
26 :     fun withPP (name, wid) ppFn = let
27 :     val saveStrm = !PP.debugStrm
28 :     val _ = PP.debugStrm := TextIO.openAppend("out")
29 :     val ppDev = HTMLDev.openDev{wid=wid, textWid=NONE}
30 :     val ppStrm = PP.openStream ppDev
31 :     in
32 :     PP.pushStyle(ppStrm, HTMLDev.styleTT);
33 :     ppFn ppStrm;
34 :     PP.popStyle ppStrm;
35 :     PP.closeStream ppStrm;
36 :     PrHTML.prHTML {
37 :     putc = fn c => TextIO.output1 (TextIO.stdOut, c),
38 :     puts = fn s => TextIO.output (TextIO.stdOut, s)
39 :     } (HTML.HTML{
40 :     version = NONE,
41 :     head = [HTML.Head_TITLE name],
42 :     body = HTML.BODY{
43 :     background = NONE, bgcolor = NONE, text = NONE,
44 :     link = NONE, vlink = NONE, alink = NONE,
45 :     content = HTML.TextBlock(HTMLDev.done ppDev)
46 :     }
47 :     });
48 :     TextIO.closeOut (!PP.debugStrm);
49 :     PP.debugStrm := saveStrm
50 :     end;
51 :    
52 :     local
53 :     fun repeat c n = StringCvt.padLeft c n ""
54 :     fun simple1 (name, w, n, openBox) () =
55 :     withPP (name, w) (fn strm => (
56 :     openBox strm (PP.Rel 0);
57 :     PP.string strm (repeat #"x" n);
58 :     PP.cut strm;
59 :     PP.string strm (repeat #"y" n);
60 :     PP.cut strm;
61 :     PP.string strm (repeat #"z" n);
62 :     PP.closeBox strm))
63 :     fun simple2 (name, w, n, openBox1, openBox2) () =
64 :     withPP (name, w) (fn strm => (
65 :     openBox1 strm (PP.Rel 0);
66 :     PP.string strm (repeat #"v" n);
67 :     PP.cut strm;
68 :     openBox2 strm (PP.Abs 2);
69 :     PP.string strm (repeat #"w" n);
70 :     PP.cut strm;
71 :     PP.string strm (repeat #"x" n);
72 :     PP.cut strm;
73 :     PP.string strm (repeat #"y" n);
74 :     PP.closeBox strm;
75 :     PP.cut strm;
76 :     PP.string strm (repeat #"z" n);
77 :     PP.closeBox strm))
78 :     fun openHBox strm _ = PP.openHBox strm
79 :     in
80 :     val t01a = simple1 ("Test 01a [hbox]", 10, 2, openHBox)
81 :     val t01b = simple1 ("Test 01b [hbox]", 10, 3, openHBox)
82 :     val t02a = simple1 ("Test 02a [vbox]", 10, 2, PP.openVBox)
83 :     val t02b = simple1 ("Test 02b [vbox]", 10, 3, PP.openVBox)
84 :     val t03a = simple1 ("Test 03a [hvbox]", 10, 2, PP.openHVBox)
85 :     val t03b = simple1 ("Test 03b [hvbox]", 10, 4, PP.openHVBox)
86 :     val t04a = simple1 ("Test 04a [hovbox]", 10, 2, PP.openHOVBox)
87 :     val t04b = simple1 ("Test 04b [hovbox]", 10, 4, PP.openHOVBox)
88 :     val t05a = simple1 ("Test 05a [box]", 10, 2, PP.openBox)
89 :     val t05b = simple1 ("Test 05b [box]", 10, 4, PP.openBox)
90 :    
91 :     val t11a = simple2 ("Test 11a [hbox/hbox]", 10, 2, openHBox, openHBox)
92 :     val t11b = simple2 ("Test 11b [hbox/hbox]", 10, 3, openHBox, openHBox)
93 :     val t11c = simple2 ("Test 11c [hbox/hbox]", 10, 4, openHBox, openHBox)
94 :     val t12a = simple2 ("Test 12a [hbox/vbox]", 10, 2, openHBox, PP.openVBox)
95 :     val t12b = simple2 ("Test 12b [hbox/vbox]", 10, 3, openHBox, PP.openVBox)
96 :     val t12c = simple2 ("Test 12c [hbox/vbox]", 10, 4, openHBox, PP.openVBox)
97 :     val t13a = simple2 ("Test 13a [hbox/hvbox]", 10, 2, openHBox, PP.openHVBox)
98 :     val t13b = simple2 ("Test 13b [hbox/hvbox]", 10, 3, openHBox, PP.openHVBox)
99 :     val t13c = simple2 ("Test 13c [hbox/hvbox]", 10, 4, openHBox, PP.openHVBox)
100 :     val t14a = simple2 ("Test 14a [hbox/hovbox]", 10, 2, openHBox, PP.openHOVBox)
101 :     val t14b = simple2 ("Test 14b [hbox/hovbox]", 10, 3, openHBox, PP.openHOVBox)
102 :     val t14c = simple2 ("Test 14c [hbox/hovbox]", 10, 4, openHBox, PP.openHOVBox)
103 :     val t15a = simple2 ("Test 15a [hbox/box]", 10, 2, openHBox, PP.openBox)
104 :     val t15b = simple2 ("Test 15b [hbox/box]", 10, 3, openHBox, PP.openBox)
105 :     val t15c = simple2 ("Test 15c [hbox/box]", 10, 4, openHBox, PP.openBox)
106 :     val t16a = simple2 ("Test 16a [vbox/hbox]", 10, 2, PP.openVBox, openHBox)
107 :     val t16b = simple2 ("Test 16b [vbox/hbox]", 10, 3, PP.openVBox, openHBox)
108 :     val t16c = simple2 ("Test 16c [vbox/hbox]", 10, 4, PP.openVBox, openHBox)
109 :     val t17a = simple2 ("Test 17a [vbox/vbox]", 10, 2, PP.openVBox, PP.openVBox)
110 :     val t17b = simple2 ("Test 17b [vbox/vbox]", 10, 3, PP.openVBox, PP.openVBox)
111 :     val t17c = simple2 ("Test 17c [vbox/vbox]", 10, 4, PP.openVBox, PP.openVBox)
112 :     val t18a = simple2 ("Test 18a [vbox/hvbox]", 10, 2, PP.openVBox, PP.openHVBox)
113 :     val t18b = simple2 ("Test 18b [vbox/hvbox]", 10, 3, PP.openVBox, PP.openHVBox)
114 :     val t18c = simple2 ("Test 18c [vbox/hvbox]", 10, 4, PP.openVBox, PP.openHVBox)
115 :     val t19a = simple2 ("Test 19a [vbox/hovbox]", 10, 2, PP.openVBox, PP.openHOVBox)
116 :     val t19b = simple2 ("Test 19b [vbox/hovbox]", 10, 3, PP.openVBox, PP.openHOVBox)
117 :     val t19c = simple2 ("Test 19c [vbox/hovbox]", 10, 4, PP.openVBox, PP.openHOVBox)
118 :     val t20a = simple2 ("Test 20a [vbox/box]", 10, 2, PP.openVBox, PP.openBox)
119 :     val t20b = simple2 ("Test 20b [vbox/box]", 10, 3, PP.openVBox, PP.openBox)
120 :     val t20c = simple2 ("Test 20c [vbox/box]", 10, 4, PP.openVBox, PP.openBox)
121 :     val t21a = simple2 ("Test 21a [hvbox/hbox]", 10, 2, PP.openHVBox, openHBox)
122 :     val t21b = simple2 ("Test 21b [hvbox/hbox]", 10, 3, PP.openHVBox, openHBox)
123 :     val t21c = simple2 ("Test 21c [hvbox/hbox]", 10, 4, PP.openHVBox, openHBox)
124 :     val t22a = simple2 ("Test 22a [hvbox/vbox]", 10, 2, PP.openHVBox, PP.openVBox)
125 :     val t22b = simple2 ("Test 22b [hvbox/vbox]", 10, 3, PP.openHVBox, PP.openVBox)
126 :     val t22c = simple2 ("Test 22c [hvbox/vbox]", 10, 4, PP.openHVBox, PP.openVBox)
127 :     val t23a = simple2 ("Test 23a [hvbox/hvbox]", 10, 2, PP.openHVBox, PP.openHVBox)
128 :     val t23b = simple2 ("Test 23b [hvbox/hvbox]", 10, 3, PP.openHVBox, PP.openHVBox)
129 :     val t23c = simple2 ("Test 23c [hvbox/hvbox]", 10, 4, PP.openHVBox, PP.openHVBox)
130 :     val t24a = simple2 ("Test 24a [hvbox/hovbox]", 10, 2, PP.openHVBox, PP.openHOVBox)
131 :     val t24b = simple2 ("Test 24b [hvbox/hovbox]", 10, 3, PP.openHVBox, PP.openHOVBox)
132 :     val t24c = simple2 ("Test 24c [hvbox/hovbox]", 10, 4, PP.openHVBox, PP.openHOVBox)
133 :     val t25a = simple2 ("Test 25a [hvbox/box]", 10, 2, PP.openHVBox, PP.openBox)
134 :     val t25b = simple2 ("Test 25b [hvbox/box]", 10, 3, PP.openHVBox, PP.openBox)
135 :     val t25c = simple2 ("Test 25c [hvbox/box]", 10, 4, PP.openHVBox, PP.openBox)
136 :     val t26a = simple2 ("Test 26a [hovbox/hbox]", 10, 2, PP.openHOVBox, openHBox)
137 :     val t26b = simple2 ("Test 26b [hovbox/hbox]", 10, 3, PP.openHOVBox, openHBox)
138 :     val t26c = simple2 ("Test 26c [hovbox/hbox]", 10, 4, PP.openHOVBox, openHBox)
139 :     val t27a = simple2 ("Test 27a [hovbox/vbox]", 10, 2, PP.openHOVBox, PP.openVBox)
140 :     val t27b = simple2 ("Test 27b [hovbox/vbox]", 10, 3, PP.openHOVBox, PP.openVBox)
141 :     val t27c = simple2 ("Test 27c [hovbox/vbox]", 10, 4, PP.openHOVBox, PP.openVBox)
142 :     val t28a = simple2 ("Test 28a [hovbox/hvbox]", 10, 2, PP.openHOVBox, PP.openHVBox)
143 :     val t28b = simple2 ("Test 28b [hovbox/hvbox]", 10, 3, PP.openHOVBox, PP.openHVBox)
144 :     val t28c = simple2 ("Test 28c [hovbox/hvbox]", 10, 4, PP.openHOVBox, PP.openHVBox)
145 :     val t29a = simple2 ("Test 29a [hovbox/hovbox]", 10, 2, PP.openHOVBox, PP.openHOVBox)
146 :     val t29b = simple2 ("Test 29b [hovbox/hovbox]", 10, 3, PP.openHOVBox, PP.openHOVBox)
147 :     val t29c = simple2 ("Test 29c [hovbox/hovbox]", 10, 4, PP.openHOVBox, PP.openHOVBox)
148 :     val t30a = simple2 ("Test 30a [hovbox/box]", 10, 2, PP.openHOVBox, PP.openBox)
149 :     val t30b = simple2 ("Test 30b [hovbox/box]", 10, 3, PP.openHOVBox, PP.openBox)
150 :     val t30c = simple2 ("Test 30c [hovbox/box]", 10, 4, PP.openHOVBox, PP.openBox)
151 :     val t31a = simple2 ("Test 31a [box/hbox]", 10, 2, PP.openBox, openHBox)
152 :     val t31b = simple2 ("Test 31b [box/hbox]", 10, 3, PP.openBox, openHBox)
153 :     val t31c = simple2 ("Test 31c [box/hbox]", 10, 4, PP.openBox, openHBox)
154 :     val t32a = simple2 ("Test 32a [box/vbox]", 10, 2, PP.openBox, PP.openVBox)
155 :     val t32b = simple2 ("Test 32b [box/vbox]", 10, 3, PP.openBox, PP.openVBox)
156 :     val t32c = simple2 ("Test 32c [box/vbox]", 10, 4, PP.openBox, PP.openVBox)
157 :     val t33a = simple2 ("Test 33a [box/hvbox]", 10, 2, PP.openBox, PP.openHVBox)
158 :     val t33b = simple2 ("Test 33b [box/hvbox]", 10, 3, PP.openBox, PP.openHVBox)
159 :     val t33c = simple2 ("Test 33c [box/hvbox]", 10, 4, PP.openBox, PP.openHVBox)
160 :     val t34a = simple2 ("Test 34a [box/hovbox]", 10, 2, PP.openBox, PP.openHOVBox)
161 :     val t34b = simple2 ("Test 34b [box/hovbox]", 10, 3, PP.openBox, PP.openHOVBox)
162 :     val t34c = simple2 ("Test 34c [box/hovbox]", 10, 4, PP.openBox, PP.openHOVBox)
163 :     val t35a = simple2 ("Test 35a [box/box]", 10, 2, PP.openBox, PP.openBox)
164 :     val t35b = simple2 ("Test 35b [box/box]", 10, 3, PP.openBox, PP.openBox)
165 :     val t35c = simple2 ("Test 35c [box/box]", 10, 4, PP.openBox, PP.openBox)
166 :     end
167 :    
168 :     fun t40 () = withPP ("Test 20 [C code]", 20) (fn strm => (
169 :     PP.openHBox strm;
170 :     kw strm "if";
171 :     PP.space strm 1;
172 :     PP.string strm "(x < y)";
173 :     PP.space strm 1;
174 :     PP.string strm "{";
175 :     PP.openHVBox strm (PP.Abs 4);
176 :     PP.space strm 1;
177 :     PP.string strm "stmt1;"; PP.space strm 1;
178 :     PP.openHBox strm;
179 :     kw strm "if";
180 :     PP.space strm 1;
181 :     PP.string strm "(w < z)";
182 :     PP.space strm 1;
183 :     PP.string strm "{";
184 :     PP.openHVBox strm (PP.Abs 4);
185 :     PP.space strm 1; PP.string strm "stmt2;";
186 :     PP.space strm 1; PP.string strm "stmt3;";
187 :     PP.space strm 1; PP.string strm "stmt4;";
188 :     PP.closeBox strm; PP.newline strm;
189 :     PP.string strm "}";
190 :     PP.closeBox strm;
191 :     PP.space strm 1; PP.string strm "stmt5;";
192 :     PP.space strm 1; PP.string strm "stmt6;";
193 :     PP.closeBox strm; PP.newline strm;
194 :     PP.string strm "}";
195 :     PP.closeBox strm));
196 :    

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0