aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/pretyping.dep.ps
blob: 9e5348ac43044800dc8ce75cbcbc075747ac924e (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
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
%!PS-Adobe-2.0
%%Creator: dot version uwin98 (01-26-98)
%%For: (jacek) Jacek Chrzaszcz
%%Title: G
%%Pages: (atend)
%%BoundingBox: 36 36 577 188
%%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 577 188
gsave
35 35 542 153 boxprim clip newpath
36 36 translate
0 0 1 beginpage
0.6308 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
347 70 36 18 ellipse_path
stroke
gsave 10 dict begin
347 71 moveto (Multcase) 51 14.00 -0.50 alignedtext
end grestore
end grestore

%	Evarutil
gsave 10 dict begin
460 72 33 18 ellipse_path
stroke
gsave 10 dict begin
460 73 moveto (Evarutil) 45 14.00 -0.50 alignedtext
end grestore
end grestore

%	Multcase -> Evarutil
newpath 383 71 moveto
394 71 406 71 417 71 curveto
stroke
newpath 417 69 moveto
427 71 lineto
417 74 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Pretype_errors
gsave 10 dict begin
588 72 51 18 ellipse_path
stroke
gsave 10 dict begin
588 73 moveto (Pretype_errors) 82 14.00 -0.50 alignedtext
end grestore
end grestore

%	Evarutil -> Pretype_errors
newpath 493 72 moveto
503 72 515 72 526 72 curveto
stroke
newpath 526 70 moveto
536 72 lineto
526 75 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Tacred
gsave 10 dict begin
712 180 29 18 ellipse_path
stroke
gsave 10 dict begin
712 181 moveto (Tacred) 38 14.00 -0.50 alignedtext
end grestore
end grestore

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

%	Tacred -> Retyping
newpath 742 180 moveto
752 180 763 180 774 180 curveto
stroke
newpath 774 178 moveto
784 180 lineto
774 183 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Syntax_def
gsave 10 dict begin
588 126 42 18 ellipse_path
stroke
gsave 10 dict begin
588 127 moveto (Syntax_def) 63 14.00 -0.50 alignedtext
end grestore
end grestore

%	Rawterm
gsave 10 dict begin
712 99 36 18 ellipse_path
stroke
gsave 10 dict begin
712 100 moveto (Rawterm) 51 14.00 -0.50 alignedtext
end grestore
end grestore

%	Syntax_def -> Rawterm
newpath 626 118 moveto
640 115 655 111 669 108 curveto
stroke
newpath 669 106 moveto
679 106 lineto
670 110 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Recordops
gsave 10 dict begin
460 222 40 18 ellipse_path
stroke
gsave 10 dict begin
460 223 moveto (Recordops) 59 14.00 -0.50 alignedtext
end grestore
end grestore

%	Classops
gsave 10 dict begin
588 180 35 18 ellipse_path
stroke
gsave 10 dict begin
588 181 moveto (Classops) 49 14.00 -0.50 alignedtext
end grestore
end grestore

%	Recordops -> Classops
newpath 493 211 moveto
510 206 532 199 549 193 curveto
stroke
newpath 548 191 moveto
558 190 lineto
549 196 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Classops -> Tacred
newpath 623 180 moveto
639 180 657 180 673 180 curveto
stroke
newpath 672 178 moveto
682 180 lineto
672 183 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Classops -> Rawterm
newpath 615 169 moveto
625 165 634 160 640 156 curveto
654 147 672 133 687 121 curveto
stroke
newpath 685 120 moveto
694 115 lineto
688 123 lineto
closepath
gsave 0 setgray stroke grestore fill

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

%	Cases
gsave 10 dict begin
139 178 27 18 ellipse_path
stroke
gsave 10 dict begin
139 179 moveto (Cases) 32 14.00 -0.50 alignedtext
end grestore
end grestore

%	Pretyping -> Cases
newpath 76 178 moveto
85 178 94 178 102 178 curveto
stroke
newpath 102 176 moveto
112 178 lineto
102 181 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Coercion
gsave 10 dict begin
238 178 36 18 ellipse_path
stroke
gsave 10 dict begin
238 179 moveto (Coercion) 51 14.00 -0.50 alignedtext
end grestore
end grestore

%	Cases -> Coercion
newpath 166 178 moveto
174 178 183 178 192 178 curveto
stroke
newpath 192 176 moveto
202 178 lineto
192 181 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Pretype_errors -> Rawterm
newpath 632 82 moveto
644 84 657 87 669 90 curveto
stroke
newpath 670 88 moveto
679 92 lineto
669 92 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Evarconv
gsave 10 dict begin
347 178 37 18 ellipse_path
stroke
gsave 10 dict begin
347 179 moveto (Evarconv) 53 14.00 -0.50 alignedtext
end grestore
end grestore

%	Evarconv -> Evarutil
newpath 371 164 moveto
376 161 381 157 384 154 curveto
400 140 423 114 440 95 curveto
stroke
newpath 437 94 moveto
446 89 lineto
441 98 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Evarconv -> Recordops
newpath 376 189 moveto
390 194 406 200 421 206 curveto
stroke
newpath 422 204 moveto
430 210 lineto
420 208 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Typing
gsave 10 dict begin
460 168 30 18 ellipse_path
stroke
gsave 10 dict begin
460 169 moveto (Typing) 40 14.00 -0.50 alignedtext
end grestore
end grestore

%	Evarconv -> Typing
newpath 384 175 moveto
396 174 409 173 421 172 curveto
stroke
newpath 420 170 moveto
430 171 lineto
420 175 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Detyping
gsave 10 dict begin
588 18 36 18 ellipse_path
stroke
gsave 10 dict begin
588 19 moveto (Detyping) 52 14.00 -0.50 alignedtext
end grestore
end grestore

%	Detyping -> Rawterm
newpath 616 30 moveto
625 34 634 38 640 42 curveto
653 51 671 65 687 77 curveto
stroke
newpath 688 75 moveto
694 83 lineto
685 78 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Coercion -> Evarconv
newpath 274 178 moveto
282 178 291 178 300 178 curveto
stroke
newpath 300 176 moveto
310 178 lineto
300 181 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Class
gsave 10 dict begin
347 124 27 18 ellipse_path
stroke
gsave 10 dict begin
347 125 moveto (Class) 30 14.00 -0.50 alignedtext
end grestore
end grestore

%	Class -> Classops
newpath 374 126 moveto
408 128 466 133 500 138 curveto
514 141 524 150 536 156 curveto
541 158 549 162 556 165 curveto
stroke
newpath 554 161 moveto
562 168 lineto
552 166 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Class -> Typing
newpath 370 133 moveto
386 139 408 147 425 154 curveto
stroke
newpath 426 152 moveto
434 158 lineto
424 156 lineto
closepath
gsave 0 setgray stroke grestore fill
endpage
grestore
%%PageTrailer
%%EndPage: 1
%%Trailer
%%Pages: 1
end
restore
%%EOF