aboutsummaryrefslogtreecommitdiffhomepage
path: root/doc/parsing.dep.ps
blob: 95be9221033cd5c6bae3f65e37a9799491446732 (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
%!PS-Adobe-2.0
%%Creator: dot version uwin98 (01-26-98)
%%For: Bill Gates
%%Title: G
%%Pages: (atend)
%%BoundingBox: 36 36 576 158
%%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 158
gsave
35 35 541 123 boxprim clip newpath
36 36 translate
0 0 1 beginpage
0.8571 set_scale
0 0 translate 0 rotate
0.000 0.000 0.000 graphcolor
14.00 /Times-Roman set_font

%	Pcoq
gsave 10 dict begin
507 72 27 18 ellipse_path
stroke
gsave 10 dict begin
507 73 moveto (Pcoq) 28 14.00 -0.50 alignedtext
end grestore
end grestore

%	Coqast
gsave 10 dict begin
600 72 30 18 ellipse_path
stroke
gsave 10 dict begin
600 73 moveto (Coqast) 38 14.00 -0.50 alignedtext
end grestore
end grestore

%	Pcoq -> Coqast
newpath 534 72 moveto
542 72 551 72 560 72 curveto
stroke
newpath 560 70 moveto
570 72 lineto
560 75 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Extend
gsave 10 dict begin
321 72 30 18 ellipse_path
stroke
gsave 10 dict begin
321 73 moveto (Extend) 39 14.00 -0.50 alignedtext
end grestore
end grestore

%	Ast
gsave 10 dict begin
417 72 27 18 ellipse_path
stroke
gsave 10 dict begin
417 73 moveto (Ast) 19 14.00 -0.50 alignedtext
end grestore
end grestore

%	Extend -> Ast
newpath 351 72 moveto
360 72 371 72 380 72 curveto
stroke
newpath 380 70 moveto
390 72 lineto
380 75 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Ast -> Pcoq
newpath 444 72 moveto
452 72 461 72 470 72 curveto
stroke
newpath 470 70 moveto
480 72 lineto
470 75 lineto
closepath
gsave 0 setgray stroke grestore fill

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

%	Termast -> Ast
newpath 251 120 moveto
282 116 327 109 354 102 curveto
354 102 371 94 387 86 curveto
stroke
newpath 385 84 moveto
395 82 lineto
387 89 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Printer
gsave 10 dict begin
120 97 29 18 ellipse_path
stroke
gsave 10 dict begin
120 98 moveto (Printer) 38 14.00 -0.50 alignedtext
end grestore
end grestore

%	Printer -> Termast
newpath 147 104 moveto
157 107 169 110 180 113 curveto
stroke
newpath 180 110 moveto
189 116 lineto
179 115 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Esyntax
gsave 10 dict begin
219 70 33 18 ellipse_path
stroke
gsave 10 dict begin
219 71 moveto (Esyntax) 45 14.00 -0.50 alignedtext
end grestore
end grestore

%	Printer -> Esyntax
newpath 147 90 moveto
157 87 169 84 180 81 curveto
stroke
newpath 179 79 moveto
189 78 lineto
180 84 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Esyntax -> Extend
newpath 252 71 moveto
262 71 272 71 281 71 curveto
stroke
newpath 281 69 moveto
291 71 lineto
281 74 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Pretty
gsave 10 dict begin
27 97 27 18 ellipse_path
stroke
gsave 10 dict begin
27 98 moveto (Pretty) 33 14.00 -0.50 alignedtext
end grestore
end grestore

%	Pretty -> Printer
newpath 54 97 moveto
62 97 71 97 80 97 curveto
stroke
newpath 80 95 moveto
90 97 lineto
80 100 lineto
closepath
gsave 0 setgray stroke grestore fill

%	Astterm
gsave 10 dict begin
321 18 33 18 ellipse_path
stroke
gsave 10 dict begin
321 19 moveto (Astterm) 45 14.00 -0.50 alignedtext
end grestore
end grestore

%	Astterm -> Ast
newpath 344 31 moveto
357 38 374 48 388 56 curveto
stroke
newpath 388 53 moveto
396 60 lineto
386 58 lineto
closepath
gsave 0 setgray stroke grestore fill
endpage
grestore
%%PageTrailer
%%EndPage: 1
%%Trailer
%%Pages: 1
end
restore
%%EOF