aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/pretyping.dep.ps
blob: 5840820ab8153410ba3e52a3845b8e464d00d312 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
%!PS-Adobe-2.0
%%Creator: dot version uwin98 (01-26-98)
%%For: Bill Gates
%%Title: G
%%Pages: (atend)
%%BoundingBox: 36 36 576 153
%%EndComments
%%BeginProlog
save
/DotDict 200 dict def
DotDict begin

%%BeginResource: procset
/coord-font-family /Times-Roman def
/default-font-family /Times-Roman def
/coordfont coord-font-family findfont 8 scalefont def

/InvScaleFactor 1.0 def
/set_scale {
	dup 1 exch div /InvScaleFactor exch def
	dup scale
} bind def

% styles
/solid { } bind def
/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def
/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def
/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def
/bold { 2 setlinewidth } bind def
/filled { } bind def
/unfilled { } bind def
/rounded { } bind def
/diagonals { } bind def

% hooks for setting color 
/nodecolor { sethsbcolor } bind def
/edgecolor { sethsbcolor } bind def
/graphcolor { sethsbcolor } bind def
/nopcolor {pop pop pop} bind def

/beginpage {	% i j npages
	/npages exch def
	/j exch def
	/i exch def
	/str 10 string def
	npages 1 gt {
		gsave
			coordfont setfont
			0 0 moveto
			(() show i str cvs show (,) show j str cvs show ()) show
		grestore
	} if
} bind def

/set_font {
	findfont exch
	scalefont setfont
} def

% draw aligned label in bounding box aligned to current point
% alignfactor tells what fraction to place on the left.
% -.5 is centered.
/alignedtext {			% text labelwidth fontsz alignfactor
	/alignfactor exch def
	/fontsz exch def
	/width exch def
	/text exch def
	gsave
		% even if node or edge is dashed, don't paint text with dashes
		[] 0 setdash
		currentpoint newpath moveto
		text stringwidth pop
		alignfactor mul fontsz -.3 mul rmoveto
		text show
	grestore
} def

/boxprim {				% xcorner ycorner xsize ysize
		4 2 roll
		moveto
		2 copy
		exch 0 rlineto
		0 exch rlineto
		pop neg 0 rlineto
		closepath
} bind def

/ellipse_path {
	/ry exch def
	/rx exch def
	/y exch def
	/x exch def
	matrix currentmatrix
	newpath
	x y translate
	rx ry scale
	0 0 1 0 360 arc
	setmatrix
} bind def

/endpage { showpage } bind def

/layercolorseq
	[	% layer color sequence - darkest to lightest
		[0 0 0]
		[.2 .8 .8]
		[.4 .8 .8]
		[.6 .8 .8]
		[.8 .8 .8]
	]
def

/setlayer {/maxlayer exch def /curlayer exch def
	layercolorseq curlayer get
	aload pop sethsbcolor
	/nodecolor {nopcolor} def
	/edgecolor {nopcolor} def
	/graphcolor {nopcolor} def
} bind def

/onlayer { curlayer ne {invis} if } def

/onlayers {
	/myupper exch def
	/mylower exch def
	curlayer mylower lt
	curlayer myupper gt
	or
	{invis} if
} def

/curlayer 0 def

%%EndResource
%%EndProlog
%%BeginSetup
14 default-font-family set_font
% /arrowlength 10 def
% /arrowwidth 5 def
%%EndSetup
%%Page: 1 1
%%PageBoundingBox: 36 36 576 153
gsave
35 35 541 118 boxprim clip newpath
36 36 translate
0 0 1 beginpage
0.8207 set_scale
0 0 translate 0 rotate
0.000 0.000 0.000 graphcolor
14.00 /Times-Roman set_font

%	Multcase
gsave 10 dict begin
257 124 36 18 ellipse_path
stroke
gsave 10 dict begin
257 125 moveto (Multcase) 51 14.00 -0.50 alignedtext
end grestore
end grestore

%	Evarutil
gsave 10 dict begin
370 124 33 18 ellipse_path
stroke
gsave 10 dict begin
370 125 moveto (Evarutil) 45 14.00 -0.50 alignedtext
end grestore
end grestore

%	Multcase -> Evarutil
newpath 293 124 moveto
304 124 316 124 327 124 curveto
stroke
newpath 327 122 moveto
337 124 lineto
327 127 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Pretype_errors
gsave 10 dict begin
498 124 51 18 ellipse_path
stroke
gsave 10 dict begin
498 125 moveto (Pretype_errors) 82 14.00 -0.50 alignedtext
end grestore
end grestore

%	Evarutil -> Pretype_errors
newpath 403 124 moveto
413 124 425 124 436 124 curveto
stroke
newpath 436 122 moveto
446 124 lineto
436 127 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Recordops
gsave 10 dict begin
370 70 40 18 ellipse_path
stroke
gsave 10 dict begin
370 71 moveto (Recordops) 59 14.00 -0.50 alignedtext
end grestore
end grestore

%	Classops
gsave 10 dict begin
498 70 35 18 ellipse_path
stroke
gsave 10 dict begin
498 71 moveto (Classops) 49 14.00 -0.50 alignedtext
end grestore
end grestore

%	Recordops -> Classops
newpath 410 70 moveto
424 70 440 70 454 70 curveto
stroke
newpath 453 68 moveto
463 70 lineto
453 73 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Pretyping
gsave 10 dict begin
38 72 37 18 ellipse_path
stroke
gsave 10 dict begin
38 73 moveto (Pretyping) 54 14.00 -0.50 alignedtext
end grestore
end grestore

%	Pretyping -> Multcase
newpath 65 85 moveto
81 91 99 99 112 102 curveto
139 109 183 115 215 119 curveto
stroke
newpath 212 116 moveto
222 120 lineto
212 121 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Coercion
gsave 10 dict begin
148 72 36 18 ellipse_path
stroke
gsave 10 dict begin
148 73 moveto (Coercion) 51 14.00 -0.50 alignedtext
end grestore
end grestore

%	Pretyping -> Coercion
newpath 76 72 moveto
84 72 93 72 102 72 curveto
stroke
newpath 102 70 moveto
112 72 lineto
102 75 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Retyping
gsave 10 dict begin
148 18 36 18 ellipse_path
stroke
gsave 10 dict begin
148 19 moveto (Retyping) 51 14.00 -0.50 alignedtext
end grestore
end grestore

%	Pretyping -> Retyping
newpath 64 59 moveto
79 51 98 42 114 35 curveto
stroke
newpath 112 33 moveto
122 31 lineto
114 38 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Evarconv
gsave 10 dict begin
257 70 37 18 ellipse_path
stroke
gsave 10 dict begin
257 71 moveto (Evarconv) 53 14.00 -0.50 alignedtext
end grestore
end grestore

%	Coercion -> Evarconv
newpath 184 71 moveto
192 71 201 71 210 71 curveto
stroke
newpath 210 69 moveto
220 71 lineto
210 74 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Rawterm
gsave 10 dict begin
622 124 36 18 ellipse_path
stroke
gsave 10 dict begin
622 125 moveto (Rawterm) 51 14.00 -0.50 alignedtext
end grestore
end grestore

%	Pretype_errors -> Rawterm
newpath 550 124 moveto
559 124 568 124 576 124 curveto
stroke
newpath 576 122 moveto
586 124 lineto
576 127 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Evarconv -> Evarutil
newpath 283 83 moveto
299 91 320 101 337 108 curveto
stroke
newpath 337 105 moveto
345 112 lineto
335 110 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Evarconv -> Recordops
newpath 294 70 moveto
302 70 311 70 320 70 curveto
stroke
newpath 320 68 moveto
330 70 lineto
320 73 lineto
closepath
gsave 0 setgray stroke grestore fill
endpage
grestore
%%PageTrailer
%%EndPage: 1
%%Trailer
%%Pages: 1
end
restore
%%EOF