1This is METAFONT, Version 2.7182818 (preloaded base=trap 2014.1.7)  7 JAN 2014 18:11
2** &trap  trap
3(trap.mf
4{if}
5{known(0)}
6{not(true)}
7{false}
8{known("")}
9{true}
10
11/*\`'@#->begingroup.message(SUFFIX1)&str(SUFFIX0)&jobname&char.ASCII'`&s
12tr(SUFFIX2)!endgroup
13(SUFFIX0)<-/*\
14(SUFFIX1)<-`'
15(SUFFIX2)<-pass2
16{begingroup}
17{message}
18
19`'->begingroup'`endgroup
20(SUFFIX0)<-
21(SUFFIX1)<-`'
22{begingroup}
23
24'`->"\*/"
25{endgroup}
26{("\*/")&("/*\")}
27{jobname}
28{("\*//*\")&("trap")}
29
30'`->"\*/"
31{ASCII("\*/")}
32{char(92)}
33{("\*//*\trap")&("\")}
34{("\*//*\trap\")&("pass2!")}
35
36\*//*\trap\pass2!
37{endgroup}
38{outer}
39{let}
40{delimiters}
41
42! Missing symbolic token inserted.
43<inserted text>
44                 INACCESSIBLE
45l.21 ...t next=\; delimiters ^~7
46                                ! fi
47Sorry: You can't redefine a number, string, or expr.
48I've inserted an inaccessible symbol so that your
49definition will be completed without mixing me up too badly.
50
51! Extra tokens will be flushed.
52<to be read again>
53                   !
54l.21 ... next=\; delimiters ^~7!
55                                 fi
56I've just read as much of that statement as I could fathom,
57so a semicolon should have been next. It's very puzzling...
58but I'll try to get myself back together, by ignoring
59everything up to the next `;'. Please insert a semicolon
60now in front of anything that you don't want me to delete.
61(See Chapter 27 of The METAFONTbook for an example.)
62
63! Forbidden token found while scanning to the end of the statement.
64<inserted text>
65                ;
66<to be read again>
67                   \
68l.22 next\
69          ; % the second pass will now compute silently; the ...
70A previous error seems to have propagated,
71causing me to read past where you wanted me to stop.
72I'll try to recover; but if the error is serious,
73you'd better type `E' or `X' now and fix your file.
74
75{\}
76{batchmode}
77
78! An expression can't begin with `endgroup'.
79<inserted text>
80                0
81<to be read again>
82                   endgroup
83l.23 batchmode; ^~7,endgroup
84                             pausing:=1; exitif p exitif bool...
85I'm afraid I need some sort of value in order to continue,
86so I've tentatively inserted `0'. You may want to
87delete this zero and insert something else;
88see Chapter 27 of The METAFONTbook for an example.
89
90! Missing ` INACCESSIBLE' has been inserted.
91<to be read again>
92                   endgroup
93l.23 batchmode; ^~7,endgroup
94                             pausing:=1; exitif p exitif bool...
95I found no right delimiter to match a left one. So I've
96put one in, behind the scenes; this may fix the problem.
97
98! Extra `endgroup'.
99<recently read> endgroup
100
101l.23 batchmode; ^~7,endgroup
102                             pausing:=1; exitif p exitif bool...
103I'm not currently working on a `begingroup',
104so I had better not try to end anything.
105
106{pausing:=1}
107{exitif}
108{exitif}
109{pencircle}
110{endfor}
111! Extra `endfor'.
112l.23 ...ean pen pencircle endfor
113
114I'm not currently working on a for loop,
115so I had better not try to end anything.
116
117{scantokens}
118{begingroup}
119{message}
120{char(0)}
121{("^^@")&("watch this")}
122^^@watch this
123{-(1)}
124{char(-1)}
125{("pair p[],';")&("^^ff")}
126{endgroup}
127{pen(future pen)}
128{boolean(true)}
129{true}
130! No loop is in progress.
131<to be read again>
132                   pair
133<scantokens> pair
134                  p[],';^^ff
135<to be read again>
136                   path
137l.25 path
138          p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(...
139Why say `exitif' when there's nothing to exit from?
140
141>> p
142! Undefined condition will be treated as `false'.
143<to be read again>
144                   pair
145<scantokens> pair
146                  p[],';^^ff
147<to be read again>
148                   path
149l.25 path
150          p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(...
151The expression shown above should have had a definite
152true-or-false value. I'm changing it to `false'.
153
154{false}
155! Missing `;' has been inserted.
156<to be read again>
157                   pair
158<scantokens> pair
159                  p[],';^^ff
160<to be read again>
161                   path
162l.25 path
163          p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(...
164After `exitif <boolean exp>' I expect to see a semicolon.
165I shall pretend that one was there.
166
167{pair}
168! Text line contains an invalid character.
169<scantokens> pair p[],';^^ff
170
171<to be read again>
172                   path
173l.25 path
174          p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(...
175A funny symbol that I can't read has just been input.
176Continue, and I'll forget that it ever happened.
177
178{path}
179{-(2)}
180{-(1)}
181{turningnumber((xpart ',ypart '))}
182Path at line 25, before choices:
183(1,-2){curl 1}
184 ..(2,-1)
185 ..(2.5,0.5)
186 ..(1,2)
187 ..{curl 1}(0,2.5)
188
189Path at line 25, after choices:
190(1,-2)..controls (1.37755,-1.71404) and (1.71404,-1.37755)
191 ..(2,-1)..controls (2.33353,-0.55965) and (2.59729,-0.04124)
192 ..(2.5,0.5)..controls (2.36812,1.23369) and (1.6712,1.65662)
193 ..(1,2)..controls (0.66821,2.16974) and (0.33485,2.33641)
194 ..(0,2.5)
195
196{(unknown path qw)=(path)}
197{numeric}
198! Enormous number has been reduced.
199l.26 ...[$] ]]=10000000000000000
200                                ; "this string constant is in...
201I can't handle numbers bigger than about 4095.99998;
202so I've changed your constant to that maximum amount.
203
204{(p[[ [-1] ]])=(4095.99998)}
205## p[[ [-1] ]]=4095.99998
206! Incomplete string token has been flushed.
207l.26 ...g constant is incomplete
208
209Strings should finish on the same line as they began.
210I've deleted the partial string; you might want to
211insert another by typing, e.g., `I"new string"'.
212
213{string}
214! Declared variable conflicts with previous vardef.
215<to be read again>
216                   ,
217l.27 string foo[]p,
218                   p~if true:[]; p~000=char34&char200&char34;
219You can't use, e.g., `numeric foo[]' after `vardef foo'.
220Proceed, and I'll ignore the illegal redeclaration.
221
222{if}
223{true}
224{true}
225{char(34)}
226{char(200)}
227{(""")&("^^c8")}
228{char(34)}
229{(""^^c8")&(""")}
230{(unknown string p~0)=(""^^c8"")}
231{boolean}
232{fi}
233{showvariable}
234boolean.boolean=unknown boolean
235! OK.
236l.28 ...n; showvariable boolean;
237                                 def\\= =end enddef;
238
239{def}
240{picture}
241{show}
242{scantokens}
243{length("^^c8")}
244>> 1
245! OK.
246<recently read> ;
247
248l.29 ...w length scantokens p~0;
249
250
251{pen}
252! Illegal suffix of declared variable will be flushed.
253<to be read again>
254                   [
255<to be read again>
256                   "a"
257l.30 pen p~[]~,q["a"
258                    ,qq; p~1~=q=pencircle scaled mexp(-3016.5...
259Variables in declarations must consist entirely of
260names and collective subscripts, e.g., `x[]a'.
261Are you trying to use a reserved word in a variable name?
262I'm going to discard the junk I found here,
263up to the next comma or the end of the declaration.
264
265{pencircle}
266{-(3016.57654)}
267{mexp(-3016.57654)}
268{(future pen)scaled(0)}
269Pen polygon at line 30 (newly created):
270(0.5,0)
271 .. (0,0.5)
272 .. (-0.5,0)
273 .. (0,-0.5)
274 .. cycle
275
276{(unknown pen q)=(pen)}
277{(unknown pen p~1~)=(pen)}
278{transform}
279! Illegal suffix of declared variable will be flushed.
280<to be read again>
281                   0
282l.31 transform p,pp0
283                    ; if p=p:qq=makepen((1,0)..cycle) xscaled...
284Variables in declarations must consist entirely of
285names and collective subscripts, e.g., `x[]a'.
286Explicit subscripts like `x15a' aren't permitted.
287I'm going to discard the junk I found here,
288up to the next comma or the end of the declaration.
289
290{if}
291{((xpart p,ypart p,xxpart p,xypart p,yxpart p,yypart p))=((xpart p,ypart
292 p,xxpart p,xypart p,yxpart p,yypart p))}
293{true}
294Path at line 31, before choices:
295(1,0)
296 ..cycle
297
298Path at line 31, after choices:
299(1,0)..controls (1,0) and (1,0)
300 ..cycle
301
302{makepen(path)}
303{hex("1000")}
304! Number too large (4096).
305<to be read again>
306                   ;
307l.31 ...cle) xscaled hex "1000";
308                                fi
309I have trouble with numbers greater than 4095; watch out.
310
311{(future pen)xscaled(4096)}
312! Pen too large.
313<to be read again>
314                   ;
315l.31 ...cle) xscaled hex "1000";
316                                fi
317The cycle you specified has a coordinate of 4095.5 or more.
318So I've replaced it by the trivial path `(0,0)..cycle'.
319
320Pen polygon at line 31 (newly created):
321(0,0)
322 .. cycle
323
324{(unknown pen qq)=(pen)}
325{fi}
326Path at line 32, before choices:
327(0,0)
328 ..(1,0)
329 ..(0,1)
330 ..(0,0)
331 ..(1,0)
332 ..(0,1)
333 ..cycle
334
335Path at line 32, after choices:
336(0,0)..controls (0.29056,-0.29056) and (0.75859,-0.30772)
337 ..(1,0)..controls (1.51964,0.66237) and (0.66237,1.51964)
338 ..(0,1)..controls (-0.30772,0.75859) and (-0.29056,0.29056)
339 ..(0,0)..controls (0.29056,-0.29056) and (0.75859,-0.30772)
340 ..(1,0)..controls (1.51964,0.66237) and (0.66237,1.51964)
341 ..(0,1)..controls (-0.30772,0.75859) and (-0.29056,0.29056)
342 ..cycle
343
344{makepen(path)}
345! Pen cycle must be convex.
346<to be read again>
347                   ;
348l.32 ...)..(1,0)..(0,1)..cycle);
349
350The cycle you specified either has consecutive equal points
351or turns right or turns through more than 360 degrees.
352So I've replaced it by the trivial path `(0,0)..cycle'.
353
354Pen polygon at line 32 (newly created):
355(0,0)
356 .. cycle
357
358{qq:=pen}
359{vardef}
360! Missing parameter type; `expr' will be assumed.
361<to be read again>
362                   )
363l.33 ...ext suffix a,b endtext()
364                                )suffix@=show #@; p.a.b() end...
365You should've had `expr' or `suffix' or `text' here.
366
367{expandafter}
368{\}
369{let}
370
371\\->=end
372{outer}
373{pencircle}
374{(future pen)scaled(4.5)}
375{(future pen)yscaled(2)}
376Pen polygon at line 34 (newly created):
377(0.5,-4.5)
378 .. (1,-4)
379 .. (2,-2.5)
380 .. (2.5,0)
381 .. (2,2.5)
382 .. (1,4)
383 .. (0.5,4.5)
384 .. (-0.5,4.5)
385 .. (-1,4)
386 .. (-2,2.5)
387 .. (-2.5,0)
388 .. (-2,-2.5)
389 .. (-1,-4)
390 .. (-0.5,-4.5)
391 .. cycle
392
393{qq:=pen}
394{((6,12))-((xpart p7,ypart p7))}
395{((0,1))transformed((xpart p,ypart p,xxpart p,xypart p,yxpart p,yypart p
396))}
397{(x)-(x)}
398{(2)/(0)}
399>> 2
400! Division by zero.
401<to be read again>
402                   ,
403l.35 ...)transformed p=(2/(x-x),
404                                3/0)transformed p;
405You're trying to divide the quantity shown above the error
406message by zero. I'm going to divide it by one instead.
407
408! Division by zero.
409l.35 ...ansformed p=(2/(x-x),3/0
410                                )transformed p;
411I'll pretend that you meant to divide by 1.
412
413{((2,3))transformed((xpart p,ypart p,xxpart p,xypart p,yxpart p,yypart p
414))}
415{((linearform,linearform))=((linearform,linearform))}
416## yxpart p=-yypart p
417## xxpart p=-xypart p
418{((-xpart p7+6,-ypart p7+12))=((linearform,linearform))}
419## ypart p7=-ypart p-yypart p+12
420## xpart p7=-xpart p-xypart p+6
421{\}
422{if}
423{string(unknown string p~[-1])}
424{true}
425{(p0.1 0.2)-(p0.1 0.2)}
426! The token `endtext' is no longer a right delimiter.
427l.36 ...1.2-p.1.199999,1 endtext
428                                 transformed p;
429Strange: This token has lost its former meaning!
430I'll read it as a right delimiter this time;
431but watch out, I'll probably miss it later.
432
433{((0,1))transformed((xpart p,ypart p,-xypart p,xypart p,-yypart p,yypart
434 p))}
435{((linearform,linearform))=((linearform,linearform))}
436## ypart p=-yypart p+6
437#### ypart p7=6
438## xpart p=-xypart p+3
439#### xpart p7=3
440{(unknown path p1 2p)=((3,6))}
441{showstopping:=0}
442{showvariable}
443p=(-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p)
444p[]=pair
445p[][]=numeric
446p[][]p=unknown path
447p[][]p~=macro:(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup ETC.
448p[]~=unknown boolean
449p~=path
450p~[]=unknown string
451p~[]~=unknown pen
452p~[]~[][]=unknown picture
453p~[-1]=unknown string p~[-1]
454p~0=""^^c8""
455p~1~=pen
456p[[ [] ]]=numeric
457p[[ [-1] ]]=4095.99998
458p0.1 0.2=p0.1 0.2
459p1 2p=path
460p7=(3,6)
461{((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))=((-xy
462part p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))}
463{let}
464{let}
465{xxpart((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))
466}
467{(-xypart p)+(0.002)}
468{yxpart((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))
469}
470{((xpart p2,ypart p2))-((xpart p1,ypart p1))}
471{(1)*((linearform,linearform))}
472{((xpart p1,ypart p1))+((linearform,linearform))}
473{(y)+(0.00002)}
474{yypart((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))
475}
476{xypart((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))
477}
478{((5,y))=((yypart p,xypart p))}
479## y=xypart p
480## yypart p=5
481#### ypart p=1
482#### yxpart p=-5
483{((5,xypart p+0.00002))=((5,xypart p))}
484{((xpart p2,ypart p2))=((5,xypart p))}
485## ypart p2=xypart p
486## xpart p2=5
487{((-xypart p+0.002,-5))=((5,xypart p))}
488## xypart p=-5
489#### ypart p2=-5
490#### y=-5
491#### xpart p=8
492#### xxpart p=5
493! Inconsistent equation (off by -0.002).
494<to be read again>
495                   ;
496l.38 ...,y)=(yypart p,xypart p);
497
498The equation I just read contradicts what was said before.
499But don't worry; continue and I'll just ignore it.
500
501Path at line 39, before choices:
502(0,0)..controls (15,4) and (-15,-12)
503 ..(4,0)
504 ..cycle
505
506Path at line 39, after choices:
507(0,0)..controls (15,4) and (-15,-12)
508 ..(4,0)..controls (17.52783,8.54388) and (-15.45978,-4.12262)
509 ..cycle
510
511{reverse(path)}
512{(path)transformed((8,1,5,-5,-5,5))}
513{(path)=(unknown path p2 3p)}
514
515p1 2p~(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup.show(SUFFIX0);p(SUFF
516IX2)(SUFFIX3)((EXPR4)endgroup
517(SUFFIX0)<-p1 2p
518(SUFFIX1)<-~
519(SUFFIX2)<-
520(SUFFIX3)<-2 3p~
521! A primary expression can't begin with `right delimiter that matches ('
522.
523<inserted text>
524                0
525<to be read again>
526                   )
527l.40 ...000000001]2p~(,[2]3p~,-)
528                                =p~1~2[pausing];
529I'm afraid I need some sort of value in order to continue,
530so I've tentatively inserted `0'. You may want to
531delete this zero and insert something else;
532see Chapter 27 of The METAFONTbook for an example.
533
534{-(0)}
535(EXPR4)<-0
536(SUFFIX5)<-
537{begingroup}
538{show}
539>> Path at line 40:
540(3,6)
541
542
543p2 3p~(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup.show(SUFFIX0);p(SUFF
544IX2)(SUFFIX3)((EXPR4)endgroup
545(SUFFIX0)<-p2 3p
546(SUFFIX1)<-~
547! Missing `,' has been inserted.
548<to be read again>
549                   (0)
550p1 2p~->...IX2)(SUFFIX3)((EXPR4)
551                                endgroup
552<to be read again>
553                   =
554l.40 ...00000001]2p~(,[2]3p~,-)=
555                                p~1~2[pausing];
556I've finished reading a macro argument and am about to
557read another; the arguments weren't delimited correctly.
558You might want to delete some tokens before continuing.
559
560(SUFFIX2)<-
561! Missing `,' has been inserted.
562<to be read again>
563                   (0)
564p1 2p~->...IX2)(SUFFIX3)((EXPR4)
565                                endgroup
566<to be read again>
567                   =
568l.40 ...00000001]2p~(,[2]3p~,-)=
569                                p~1~2[pausing];
570I've finished reading a macro argument and am about to
571read another; the arguments weren't delimited correctly.
572You might want to delete some tokens before continuing.
573
574(SUFFIX3)<-
575! Missing `)' has been inserted.
576<to be read again>
577                   endgroup
578<to be read again>
579                   =
580l.40 ...00000001]2p~(,[2]3p~,-)=
581                                p~1~2[pausing];
582I've gotten to the end of the macro parameter list.
583You might want to delete some tokens before continuing.
584
585(EXPR4)<-0
586(SUFFIX5)<-
587{begingroup}
588{show}
589>> Path at line 40:
590(8,1)..controls (-48.68579,57.68579) and (52.91974,-43.91974)
591 ..(28,-19)..controls (-7,16) and (63,-54)
592 ..cycle
593
594>> (8,1,5,-5,-5,5)
595! Isolated expression.
596<to be read again>
597                   (
598p2 3p~->...;p(SUFFIX2)(SUFFIX3)(
599                                (EXPR4)endgroup
600<to be read again>
601                   endgroup
602<to be read again>
603                   =
604l.40 ...00000001]2p~(,[2]3p~,-)=
605                                p~1~2[pausing];
606I couldn't find an `=' or `:=' after the
607expression that is shown above this error message,
608so I guess I'll just ignore it and carry on.
609
610! Extra tokens will be flushed.
611<to be read again>
612                   (
613p2 3p~->...;p(SUFFIX2)(SUFFIX3)(
614                                (EXPR4)endgroup
615<to be read again>
616                   endgroup
617<to be read again>
618                   =
619l.40 ...00000001]2p~(,[2]3p~,-)=
620                                p~1~2[pausing];
621I've just read as much of that statement as I could fathom,
622so a semicolon should have been next. It's very puzzling...
623but I'll try to get myself back together, by ignoring
624everything up to the next `;'. Please insert a semicolon
625now in front of anything that you don't want me to delete.
626(See Chapter 27 of The METAFONTbook for an example.)
627
628{endgroup}
629{endgroup}
630{(vacuous)=(unknown picture p~1~2 1)}
631>> vacuous
632>> unknown picture p~1~2 1
633! Equation cannot be performed (vacuous=unknown picture).
634<to be read again>
635                   ;
636l.40 ...2]3p~,-)=p~1~2[pausing];
637
638I'm sorry, but I don't know how to make such things equal.
639(See the two expressions just above the error message.)
640
641{vardef}
642Runaway definition?
643if.p(SUFFIX1)(SUFFIX1)=(SUFFIX1)(SUFFIX1)p.fi
644! Forbidden token found while scanning the definition of p~[].
645<inserted text>
646                enddef
647<to be read again>
648                   ;
649l.41 ...iary t:=if p@ @=@ @p fi;
650                                 vardef p[][]p~[]=BAD; inner ;;
651I suspect you have forgotten an `enddef',
652causing me to read past where you wanted me to stop.
653I'll try to recover; but if the error is serious,
654you'd better type `E' or `X' now and fix your file.
655
656{vardef}
657! This variable already starts with a macro.
658l.41 ...@p fi; vardef p[][]p~[]=
659                                BAD; inner ;;
660After `vardef a' you can't say `vardef a.b'.
661So I'll have to discard this definition.
662
663Runaway definition?
664BAD
665! Forbidden token found while scanning the definition of a bad variable.
666<inserted text>
667                enddef
668<to be read again>
669                   ;
670l.41 ...i; vardef p[][]p~[]=BAD;
671                                 inner ;;
672I suspect you have forgotten an `enddef',
673causing me to read past where you wanted me to stop.
674I'll try to recover; but if the error is serious,
675you'd better type `E' or `X' now and fix your file.
676
677{inner}
678{show}
679{-(2)}
680
681p~[-2]@#<tertiary>->begingroup.if.p(SUFFIX1)(SUFFIX1)=(SUFFIX1)(SUFFIX1)
682p.fi.endgroup
683(SUFFIX0)<-p~
684(SUFFIX1)<-[-2]
685(SUFFIX2)<-~
686! A tertiary expression can't begin with `['.
687<inserted text>
688                0
689<to be read again>
690                   [
691<to be read again>
692                   (3000)
693<to be read again>
694                   ,
695l.42 show p~[-2]~[3000,
696                       x]++4000>path p3; showvariable p,P;
697I'm afraid I need some sort of value in order to continue,
698so I've tentatively inserted `0'. You may want to
699delete this zero and insert something else;
700see Chapter 27 of The METAFONTbook for an example.
701
702{(x)-(3000)}
703{(0)*(x-3000)}
704{(3000)+(0)}
705{(3000)++(4000)}
706(EXPR3)<-4999.99998
707{begingroup}
708{if}
709{(p[-2][-2])=(-2)}
710>> p[-2][-2]+2
711! Unknown relation will be considered false.
712<to be read again>
713                   [-2]
714p~[-2]->...1)=(SUFFIX1)(SUFFIX1)
715                                p.fi.endgroup
716<to be read again>
717                   >
718l.42 show p~[-2]~[3000,x]++4000>
719                                path p3; showvariable p,P;
720Oh dear. I can't decide if the expression above is positive,
721negative, or zero. So this comparison test won't be `true'.
722
723{false}
724! Missing `:' has been inserted.
725<to be read again>
726                   [-2]
727p~[-2]->...1)=(SUFFIX1)(SUFFIX1)
728                                p.fi.endgroup
729<to be read again>
730                   >
731l.42 show p~[-2]~[3000,x]++4000>
732                                path p3; showvariable p,P;
733There should've been a colon after the condition.
734I shall pretend that one was there.
735
736{endgroup}
737{path((xpart p3,ypart p3))}
738{(vacuous)>(false)}
739>> vacuous
740>> false
741! Not implemented: (vacuous)>(boolean).
742<to be read again>
743                   ;
744l.42 ...~[3000,x]++4000>path p3;
745                                 showvariable p,P;
746I'm afraid I don't know how to apply that operation to that
747combination of types. Continue, and I'll return the second
748argument (see above) as the result of the operation.
749
750>> false
751{showvariable}
752p=(8,1,5,-5,-5,5)
753p[]=pair
754p[][]=numeric
755p[][]p=unknown path
756p[][]p~=macro:(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup ETC.
757p[]~=unknown boolean
758p~=path
759p~[]@#=macro:<tertiary>->begingroup.if.p(SUFFIX1)(SUFFIX1) ETC.
760p[[ [] ]]=numeric
761p[[ [-1] ]]=4095.99998
762p[-2][-2]=p[-2][-2]
763p0.1 0.2=p0.1 0.2
764p1=(xpart p1,ypart p1)
765p1 2p=path
766p2=(5,-5)
767p2 3p=path
768p3=(xpart p3,ypart p3)
769p7=(3,6)
770> P=tag
771{numeric}
772{(2)*(alpha)}
773{(p3~)=(2alpha)}
774## alpha=0.5p3~
775{(1)/(-1)}
776{(3)*(beta)}
777{(p[-1]~)=(3beta)}
778## beta=0.33333p[-1]~
779{begingroup}
780{save}
781{showvariable}
782> p=tag
783{(3)*(0.33333(SAVED)p[-1]~)}
784{((SAVED)p[-1]~)=(1)}
785## (SAVED)p[-1]~=1
786#### beta=0.33333
787{restoring p}
788{endgroup}
789{showvariable}
790p=(8,1,5,-5,-5,5)
791p[]=pair
792p[][]=numeric
793p[][]p=unknown path
794p[][]p~=macro:(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup ETC.
795p[]~=numeric
796p~=path
797p~[]@#=macro:<tertiary>->begingroup.if.p(SUFFIX1)(SUFFIX1) ETC.
798p[[ [] ]]=numeric
799p[[ [-1] ]]=4095.99998
800p[-2][-2]=p[-2][-2]
801p[-1]~=1
802p0.1 0.2=p0.1 0.2
803p1=(xpart p1,ypart p1)
804p1 2p=path
805p2=(5,-5)
806p2 3p=path
807p3=(xpart p3,ypart p3)
808p3~=p3~
809p7=(3,6)
810{def}
811{def}
812! Missing `=' has been inserted.
813<to be read again>
814                   false
815l.45 ...enddef;def!primary!false
816                                ):!fi enddef;
817The next thing in this `def' should have been `=',
818because I've already looked at the definition heading.
819But don't worry; I'll pretend that an equals sign
820was present. Everything from here to `enddef'
821will be the replacement text of this macro.
822
823{def}
824{(path)scaled(-1)}
825Path at line 46, before choices:
826(1,-2)..controls (1.37755,-1.71404) and (1.71404,-1.37755)
827 ..(2,-1)..controls (2.33353,-0.55965) and (2.59729,-0.04124)
828 ..(2.5,0.5)..controls (2.36812,1.23369) and (1.6712,1.65662)
829 ..(1,2)..controls (0.66821,2.16974) and (0.33485,2.33641)
830 ..(0,2.5)
831 ..(-1,2)..controls (-1.37755,1.71404) and (-1.71404,1.37755)
832 ..(-2,1)..controls (-2.33353,0.55965) and (-2.59729,0.04124)
833 ..(-2.5,-0.5)..controls (-2.36812,-1.23369) and (-1.6712,-1.65662)
834 ..(-1,-2)..controls (-0.66821,-2.16974) and (-0.33485,-2.33641)
835 ..(0,-2.5)
836 ..cycle
837
838Path at line 46, after choices:
839(1,-2)..controls (1.37755,-1.71404) and (1.71404,-1.37755)
840 ..(2,-1)..controls (2.33353,-0.55965) and (2.59729,-0.04124)
841 ..(2.5,0.5)..controls (2.36812,1.23369) and (1.6712,1.65662)
842 ..(1,2)..controls (0.66821,2.16974) and (0.33485,2.33641)
843 ..(0,2.5)..controls (-0.37186,2.68167) and (-0.668,2.25146)
844 ..(-1,2)..controls (-1.37755,1.71404) and (-1.71404,1.37755)
845 ..(-2,1)..controls (-2.33353,0.55965) and (-2.59729,0.04124)
846 ..(-2.5,-0.5)..controls (-2.36812,-1.23369) and (-1.6712,-1.65662)
847 ..(-1,-2)..controls (-0.66821,-2.16974) and (-0.33485,-2.33641)
848 ..(0,-2.5)..controls (0.37186,-2.68167) and (0.668,-2.25146)
849 ..cycle
850
851{makepen(path)}
852Pen polygon at line 46 (newly created):
853(1,-2)
854 .. (2,-1)
855 .. (2.5,0.5)
856 .. (1,2)
857 .. (0,2.5)
858 .. (-1,2)
859 .. (-2,1)
860 .. (-2.5,-0.5)
861 .. (-1,-2)
862 .. (0,-2.5)
863 .. cycle
864
865{qq:=pen}
866{primarydef}
867{secondarydef}
868
869//<expr>->
870
871//<expr>->
872{pencircle}
873{length(path)}
874{(future pen)slanted(1)}
875{((3,6))-((5,-5))}
876
877_aa__<secondary>->if(true
878{(0.1)*(15)}
879{odd(1.50009)}
880{not(false)}
881{known((8,1,5,-5,-5,5))}
882{(true)and(true)}
883(EXPR0)<-true
884{if}
885{true}
886
887!<primary>->false):(EXPR0)fi
888(EXPR0)<-(5,-5)
889{false}
890{(true)or(false)}
891{true}
892{fi}
893{-((5,-5))}
894{-((5,-5))}
895{+(1)}
896{-(1)}
897>> -1
898! Improper curl has been replaced by 1.
899<to be read again>
900                   )
901l.51  {curl- +1)
902                ..tension atleast1..cycle sqrt2++sqrt2***[[]];
903A curl must be a known, nonnegative number.
904
905! Missing `}' has been inserted.
906<to be read again>
907                   )
908l.51  {curl- +1)
909                ..tension atleast1..cycle sqrt2++sqrt2***[[]];
910I've scanned a direction spec for part of a path,
911so a right brace should have come next.
912I shall pretend that one was there.
913
914Path at line 51, before choices:
915(-5,5)
916
917Path at line 51, after choices:
918(-5,5)
919
920Path at line 51, before choices:
921(3,6)..controls (5,-5) and (-5,5)
922 ..(-5,5)..tension atleast1
923 ..{2896.30943,-2896.30934}cycle
924
925Path at line 51, after choices:
926(3,6)..controls (5,-5) and (-5,5)
927 ..(-5,5)..controls (-3.29726,7.86205) and (0.64516,8.35484)
928 ..cycle
929
930! Missing `)' has been inserted.
931<to be read again>
932                   sqrt
933l.51 ...ion atleast1..cycle sqrt
934                                2++sqrt2***[[]];
935I found no right delimiter to match a left one. So I've
936put one in, behind the scenes; this may fix the problem.
937
938{((-2,11))subpath(path)}
939{reverse(path)}
940{makepen(path)}
941
942**->[[show(EXPR0)*(EXPR1)]]
943(EXPR0)<-future pen
944(EXPR1)<-future pen
945{begingroup}
946{show}
947{(future pen)*(future pen)}
948>> future pen
949>> future pen
950! Not implemented: (future pen)*(future pen).
951<to be read again>
952                   ]]
953<to be read again>
954                   sqrt
955l.51 ...ion atleast1..cycle sqrt
956                                2++sqrt2***[[]];
957I'm afraid I don't know how to apply that operation to that
958combination of types. Continue, and I'll return the second
959argument (see above) as the result of the operation.
960
961! Pen path must be a cycle.
962<to be read again>
963                   ]]
964<to be read again>
965                   sqrt
966l.51 ...ion atleast1..cycle sqrt
967                                2++sqrt2***[[]];
968I can't make a pen from the given path.
969So I've replaced it by the trivial path `(0,0)..cycle'.
970
971>> Pen polygon at line 51:
972(0,0)
973 .. cycle
974
975{endgroup}
976(EXPR0)<-vacuous
977{sqrt(2)}
978{sqrt(2)}
979{(1.41422)++(1.41422)}
980{begingroup}
981{endgroup}
982
983***->expandafter(EXPR1)scantokens"**oct"(EXPR0)
984(EXPR0)<-2
985(EXPR1)<-vacuous
986{expandafter}
987{scantokens}
988{oct(2)}
989>> 2
990! Not implemented: oct(known numeric).
991<to be read again>
992                   ;
993l.51 ...cle sqrt2++sqrt2***[[]];
994
995I'm afraid I don't know how to apply that operation to that
996particular type. Continue, and I'll simply return the
997argument (shown above) as the result of the operation.
998
999
1000**->[[show(EXPR0)*(EXPR1)]]
1001(EXPR0)<-vacuous
1002(EXPR1)<-2
1003{begingroup}
1004{show}
1005{(vacuous)*(2)}
1006>> vacuous
1007>> 2
1008! Not implemented: (vacuous)*(known numeric).
1009<to be read again>
1010                   ]]
1011<to be read again>
1012                   ;
1013l.51 ...cle sqrt2++sqrt2***[[]];
1014
1015I'm afraid I don't know how to apply that operation to that
1016combination of types. Continue, and I'll return the second
1017argument (see above) as the result of the operation.
1018
1019>> 2
1020{endgroup}
1021(EXPR0)<-vacuous
1022{begingroup}
1023{interim}
1024{-(20.5)}
1025{charcode:=-20.5}
1026{proofing:=-20.5}
1027{-(2048)}
1028{chardp:=-2048}
1029{shipout}
1030{nullpicture}
1031! Enormous chardp has been reduced.
1032<to be read again>
1033                   ]]
1034l.52 ...48;shipout nullpicture]]
1035                                ;
1036Font metric dimensions must be less than 2048pt.
1037
1038{restoring proofing=0}
1039{endgroup}
1040{if}
1041{-(275.50002)}
1042{charexists(-275.50002)}
1043{known(unknown path p0 0p)}
1044{(true)>(false)}
1045{known(path)}
1046{(true)=(true)}
1047{true}
1048{randomseed}
1049! Missing `:=' has been inserted.
1050<to be read again>
1051                   charcode
1052l.53 ... p~: randomseed charcode
1053                                ; fi
1054Always say `randomseed:=<numeric expression>'.
1055
1056{randomseed:=-20.5}
1057{fi}
1058{randomseed}
1059>> "goof"
1060! Unknown value will be ignored.
1061<to be read again>
1062                   ;
1063l.54 randomseed:="goof";
1064                         a[($,18++1+-+18),(2,3)]=b[(3,2),(1,$);
1065Your expression was too random for me to handle,
1066so I won't change the random seed just now.
1067
1068{(18)++(1)}
1069{(18.02776)+-+(18)}
1070{((2,3))-((-1,1))}
1071{(a)*((3,2))}
1072{((-1,1))+((3a,2a))}
1073! Missing `]' has been inserted.
1074<to be read again>
1075                   ;
1076l.54 ...8),(2,3)]=b[(3,2),(1,$);
1077
1078I've scanned an expression of the form `a[b,c',
1079so a right bracket should have come next.
1080I shall pretend that one was there.
1081
1082{((1,-1))-((3,2))}
1083{(b)*((-2,-3))}
1084{((3,2))+((-2b,-3b))}
1085{((3a-1,2a+1))=((-2b+3,-3b+2))}
1086## b=-0.66667a+0.33333
1087## a=2
1088#### b=-1
1089{show}
1090{(^)+(1)}
1091{(~)+(2)}
1092{-(1)}
1093{((^+1,~+2))slanted(-1)}
1094{-(2)}
1095{((linearform,~+2))yscaled(-2)}
1096{-((3,4))}
1097{((linearform,-2~-4))zscaled((-3,-4))}
1098>> (-5~-3^-13,10~-4^+16)
1099{((xpart pp,ypart pp,xxpart pp,xypart pp,yxpart pp,yypart pp))xscaled(9)
1100}
1101{((8,1,5,-5,-5,5))transformed((9xpart pp,ypart pp,9xxpart pp,9xypart pp,
1102yxpart pp,yypart pp))}
1103>> (9xpart pp+72xxpart pp+9xypart pp,ypart pp+8yxpart pp+yypart pp,45xxp
1104art pp-45xypart pp,-45xxpart pp+45xypart pp,5yxpart pp-5yypart pp,-5yxpa
1105rt pp+5yypart pp)
1106{((xpart pp,ypart pp,xxpart pp,xypart pp,yxpart pp,yypart pp))shifted((1
1107,2))}
1108{((8,1,5,-5,-5,5))transformed((8,1,5,-5,-5,5))}
1109{((xpart pp+1,ypart pp+2,xxpart pp,xypart pp,yxpart pp,yypart pp))transf
1110ormed((43,-34,50,-50,-50,50))}
1111>> (50xpart pp-50ypart pp-7,-50xpart pp+50ypart pp+16,50xxpart pp-50yxpa
1112rt pp,50xypart pp-50yypart pp,-50xxpart pp+50yxpart pp,-50xypart pp+50yy
1113part pp)
1114{(2)-(1)}
1115{(_0)*(1)}
1116{(1)+(_0)}
1117{-(_0+1)}
1118>> -_0-1
1119{show}
1120{normaldeviate}
1121{-(-2048)}
1122{uniformdeviate(2048)}
1123{angle((-0.41438,761.67789))}
1124{cosd(90.03117)}
1125{(200)*(-0.00055)}
1126{mexp(-0.10986)}
1127{sqrt(0.99957)}
1128{mlog(0.99979)}
1129{sind(-0.05469)}
1130{floor(-0.00096)}
1131>> -1
1132{string}
1133{(unknown string s2)=(unknown string s4)}
1134{(unknown string s1)=(unknown string s2)}
1135{(unknown string s3)=(unknown string s5)}
1136{(unknown string s2)=(unknown string s4)}
1137! Redundant equation.
1138<to be read again>
1139                   ;
1140l.58 ... s1=s2=s4; s3=s5; s1=s2;
1141                                 if s1<=s4<>(s1<>s3):show[[ch...
1142I already knew that this equation was true.
1143But perhaps no harm has been done; let's continue.
1144
1145{if}
1146{(unknown string s2)<=(unknown string s1)}
1147{(unknown string s2)<>(unknown string s5)}
1148>> unknown string s2
1149>> unknown string s5
1150! Unknown relation will be considered false.
1151<to be read again>
1152                   )
1153l.58 ...=s2; if s1<=s4<>(s1<>s3)
1154                                :show[[char34=s2:=s3]]fi;
1155The quantities shown above have not been equated.
1156
1157{(true)<>(false)}
1158{true}
1159{show}
1160{begingroup}
1161{char(34)}
1162{s2:=unknown string s5}
1163{(""")=(unknown string s2)}
1164{endgroup}
1165{fi}
1166>> vacuous
1167{(0.1)point(path)}
1168{begingroup}
1169{pencircle}
1170Pen polygon at line 59 (newly created):
1171(0.5,0)
1172 .. (0,0.5)
1173 .. (-0.5,0)
1174 .. (0,-0.5)
1175 .. cycle
1176
1177{endgroup}
1178{((3.24413,0.64801))penoffset(pen)}
1179{((0,-0.5))rotated(540)}
1180{((0,0.5))/(0.33333)}
1181{-(1.5)}
1182! Paths don't touch; `&' will be changed to `..'.
1183<to be read again>
1184                   )
1185l.60 ...tcontrol-1.5of(p~&cycle)
1186                                -precontrol1/2of p~(p~)=s1:=s...
1187When you join paths `p&q', the ending point of p
1188must be exactly equal to the starting point of q.
1189So I'm going to pretend that you said `p..q' instead.
1190
1191Path at line 60, before choices:
1192(0,0)..controls (15,4) and (-15,-12)
1193 ..(4,0)
1194 ..cycle
1195
1196Path at line 60, after choices:
1197(0,0)..controls (15,4) and (-15,-12)
1198 ..(4,0)..controls (17.52783,8.54388) and (-15.45978,-4.12262)
1199 ..cycle
1200
1201{(-1.5)postcontrol(path)}
1202{(0.5)precontrol(path)}
1203{((-2.75,-5))-((3.75,-1))}
1204! Missing `of' has been inserted for directiontime.
1205<to be read again>
1206                   (
1207l.60 ...cle)-precontrol1/2of p~(
1208                                p~)=s1:=s4:=s4;
1209I've got the first argument; will look now for the other.
1210
1211{((-6.5,-4))directiontime(path)}
1212{decimal(0.5)}
1213{((0,1.50003))substring("0.5")}
1214{s4:=unknown string s1}
1215{s1:=unknown string s4}
1216{("0.")=(unknown string s1)}
1217{path}
1218{length("  ")}
1219! Missing `,' has been inserted.
1220<to be read again>
1221                   }
1222l.61 ...p~[]; p~1=p2{length"  "}
1223                                &cycle; p~1=p2=p~0; p2..contr...
1224I've got the x coordinate of a path direction;
1225will look for the y coordinate next.
1226
1227! An expression can't begin with `}'.
1228<inserted text>
1229                0
1230<to be read again>
1231                   }
1232l.61 ...p~[]; p~1=p2{length"  "}
1233                                &cycle; p~1=p2=p~0; p2..contr...
1234I'm afraid I need some sort of value in order to continue,
1235so I've tentatively inserted `0'. You may want to
1236delete this zero and insert something else;
1237see Chapter 27 of The METAFONTbook for an example.
1238
1239Path at line 61, before choices:
1240(5,-5){4096,0}
1241 ..{4096,0}cycle
1242
1243Path at line 61, after choices:
1244(5,-5)..controls (5,-5) and (5,-5)
1245 ..cycle
1246
1247{(unknown path p~1)=(path)}
1248{((5,-5))=(unknown path p~0)}
1249{(path)=(path)}
1250! Redundant or inconsistent equation.
1251<to be read again>
1252                   ;
1253l.61 ..."  "}&cycle; p~1=p2=p~0;
1254                                 p2..controls-p2..cycle=p~2;(p7
1255An equation between already-known quantities can't help.
1256But don't worry; continue and I'll just ignore it.
1257
1258{-((5,-5))}
1259Path at line 61, before choices:
1260(5,-5)..controls (-5,5) and (-5,5)
1261 ..cycle
1262
1263Path at line 61, after choices:
1264(5,-5)..controls (-5,5) and (-5,5)
1265 ..cycle
1266
1267{(path)=(unknown path p~2)}
1268{length(path)}
1269Path at line 62, before choices:
1270(3,6)..tension 1.2
1271 ..(5,-5)..controls (5,-5) and (5,-5)
1272 ..(5,-5)
1273 ..(5,-5)..controls (-5,5) and (-5,5)
1274 ..(5,-5){0,4096}..tension 1 and atleast1
1275 ..cycle
1276
1277Path at line 62, after choices:
1278(3,6)..controls (-3.01212,4.82085) and (-1.0424,-6.01257)
1279 ..(5,-5)..controls (5,-5) and (5,-5)
1280 ..(5,-5)..controls (5,-5) and (5,-5)
1281 ..(5,-5)..controls (-5,5) and (-5,5)
1282 ..(5,-5)..controls (5,0.02791) and (4.99951,6.39217)
1283 ..cycle
1284
1285>> x
1286! Improper tension has been set to 1.
1287<to be read again>
1288                   ..
1289l.63  x..
1290         {curl1}-p7{curl hex "IsBad"}..tension.75and.74999..p...
1291The expression above should have been a number >=3/4.
1292
1293{-((3,6))}
1294{hex("IsBad")}
1295>> "IsBad"
1296! String contains illegal digits.
1297<to be read again>
1298                   }
1299l.63 ...l1}-p7{curl hex "IsBad"}
1300                                ..tension.75and.74999..p2{0,1...
1301I zeroed out characters that weren't hex digits.
1302
1303>> 0.74998
1304! Improper tension has been set to 1.
1305<to be read again>
1306                   ..
1307l.63 ...}..tension.75and.74999..
1308                                p2{0,1}&p2{_,'}..cycle:=p
1309The expression above should have been a number >=3/4.
1310
1311>> _
1312! Undefined x coordinate has been replaced by 0.
1313<to be read again>
1314                   ,
1315l.63 ...and.74999..p2{0,1}&p2{_,
1316                                '}..cycle:=p
1317I need a `known' x value for this part of the path.
1318The value I found (see above) was no good;
1319so I'll try to keep going by using zero instead.
1320(Chapter 27 of The METAFONTbook explains that
1321you might want to type `I ???' now.)
1322
1323>> (xpart ',ypart ')
1324! Undefined y coordinate has been replaced by 0.
1325<to be read again>
1326                   }
1327l.63 ...d.74999..p2{0,1}&p2{_,'}
1328                                ..cycle:=p
1329I need a `known' y value for this part of the path.
1330The value I found (see above) was no good;
1331so I'll try to keep going by using zero instead.
1332(Chapter 27 of The METAFONTbook explains that
1333you might want to type `I ???' now.)
1334
1335Path at line 63, before choices:
1336(3,6)..controls (-3.01212,4.82085) and (-1.0424,-6.01257)
1337 ..(5,-5)..controls (5,-5) and (5,-5)
1338 ..(5,-5)..controls (5,-5) and (5,-5)
1339 ..(5,-5)..controls (-5,5) and (-5,5)
1340 ..(5,-5)..controls (5,0.02791) and (4.99951,6.39217)
1341 ..(3,6)
1342 ..{curl 1}(-3,-6){curl 2989}..tension 0.75 and 1
1343 ..{0,4096}(5,-5){curl 1}
1344 ..cycle
1345
1346Path at line 63, after choices:
1347(3,6)..controls (-3.01212,4.82085) and (-1.0424,-6.01257)
1348 ..(5,-5)..controls (5,-5) and (5,-5)
1349 ..(5,-5)..controls (5,-5) and (5,-5)
1350 ..(5,-5)..controls (-5,5) and (-5,5)
1351 ..(5,-5)..controls (5,0.02791) and (4.99951,6.39217)
1352 ..(3,6)..controls (-2.44821,4.93144) and (-5.41408,-1.00029)
1353 ..(-3,-6)..controls (-3.70045,-12.19485) and (5,-11.61679)
1354 ..(5,-5)..controls (12.45406,-3.75087) and (10.41669,7.45464)
1355 ..cycle
1356
1357>> path
1358! Improper `:=' will be changed to `='.
1359l.63 ...p2{0,1}&p2{_,'}..cycle:=
1360                                p
1361I didn't find a variable name at the left of the `:=',
1362so I'm going to pretend that you said `=' instead.
1363
1364{(path)=(unknown path p~4)}
1365{-(9)}
1366{((3.5001,7.00002))subpath(path)}
1367{((-9,9))subpath(path)}
1368{(path)=(unknown path p~6)}
1369{show}
1370>> Path at line 65:
1371(-2.5,2.5)..controls (-2.49893,2.49893) and (0.00107,-0.00107)
1372 ..(5,-5)..controls (5,0.02791) and (4.99951,6.39217)
1373 ..(3,6)..controls (-2.44821,4.93144) and (-5.41408,-1.00029)
1374 ..(-3,-6)..controls (-3.70045,-12.19485) and (5,-11.61679)
1375 ..(5,-5)..controls (5.0001,-4.99998) and (5.00021,-4.99997)
1376 ..(5.00032,-4.99995)
1377
1378{((1,2))directiontime(path)}
1379>> 1
1380{-(1.00002)}
1381{((1,-1.00002))directiontime(path)}
1382>> 3.24937
1383Path at line 66, before choices:
1384(0,0)..controls (1,1) and (0,1)
1385 ..(1,0)
1386
1387Path at line 66, after choices:
1388(0,0)..controls (1,1) and (0,1)
1389 ..(1,0)
1390
1391{(unknown path p~3)=(path)}
1392{show}
1393Path at line 66, before choices:
1394(5,-5){-2896.30943,-2896.30934}
1395 ..{1831.78674,3663.57385}cycle
1396
1397Path at line 66, after choices:
1398(5,-5)..controls (5,-5) and (5,-5)
1399 ..cycle
1400
1401>> Path at line 66:
1402(5,-5)..controls (5,-5) and (5,-5)
1403 ..cycle
1404
1405{((0.31416,1))subpath(path)}
1406{((1,1))directiontime(path)}
1407{(1)-(0.31416)}
1408{(0.27097)*(0.68584)}
1409{(0.31416)+(0.18584)}
1410>> 0.5
1411{((0,0.25))subpath(path)}
1412{((0.25,1))subpath(path)}
1413Path at line 68, before choices:
1414(0,0)..controls (0.25,0.25) and (0.375,0.4375)
1415 ..(0.4375,0.5625)..controls (0.625,0.9375) and (0.25,0.75)
1416 ..(1,0)
1417
1418Path at line 68, after choices:
1419(0,0)..controls (0.25,0.25) and (0.375,0.4375)
1420 ..(0.4375,0.5625)..controls (0.625,0.9375) and (0.25,0.75)
1421 ..(1,0)
1422
1423! Missing `endtext' has been inserted.
1424<to be read again>
1425                   ;
1426l.68 ...~3)shifted begintext1,0;
1427
1428I found no right delimiter to match a left one. So I've
1429put one in, behind the scenes; this may fix the problem.
1430
1431{(path)shifted((1,0))}
1432{(unknown path p~5)=(path)}
1433{(2/3)*((xpart ',ypart '))}
1434{((0.66667xpart ',0.66667ypart '))zscaled((xpart ',ypart '))}
1435>> (0,0,xpart ',-ypart ',ypart ',xpart ')
1436! Transform components aren't all known.
1437<to be read again>
1438                   {
1439l.69 p~3:=2/3'zscaled'{
1440                       p~3}..controls(2,2/3(3))and penoffset(...
1441I'm unable to apply a partially specified transformation
1442except to a fully known pair or transform.
1443Proceed, and I'll omit the transformation.
1444
1445>> 0.66667xpart '
1446! Undefined x coordinate has been replaced by 0.
1447<to be read again>
1448                   {
1449l.69 p~3:=2/3'zscaled'{
1450                       p~3}..controls(2,2/3(3))and penoffset(...
1451I need a `known' x value for this part of the path.
1452The value I found (see above) was no good;
1453so I'll try to keep going by using zero instead.
1454(Chapter 27 of The METAFONTbook explains that
1455you might want to type `I ???' now.)
1456
1457>> 0.66667ypart '
1458! Undefined y coordinate has been replaced by 0.
1459<to be read again>
1460                   {
1461l.69 p~3:=2/3'zscaled'{
1462                       p~3}..controls(2,2/3(3))and penoffset(...
1463I need a `known' y value for this part of the path.
1464The value I found (see above) was no good;
1465so I'll try to keep going by using zero instead.
1466(Chapter 27 of The METAFONTbook explains that
1467you might want to type `I ???' now.)
1468
1469>> path
1470! Undefined coordinates have been replaced by (0,0).
1471<to be read again>
1472                   }
1473l.69 p~3:=2/3'zscaled'{p~3}
1474                           ..controls(2,2/3(3))and penoffset(...
1475I need x and y numbers for this part of the path.
1476The value I found (see above) was no good;
1477so I'll try to keep going by using zero instead.
1478(Chapter 27 of The METAFONTbook explains that
1479you might want to type `I ???' now.)
1480
1481{(2/3)*(3)}
1482{(1/2)*(x)}
1483{((0.5x,-5))penoffset((0,1))}
1484>> (0.5x,-5)
1485>> (0,1)
1486! Not implemented: penoffset(unknown pair)of(pair).
1487<to be read again>
1488                   (
1489l.69 ...enoffset(1/2x,y)of(0,1)(
1490                                1,0);
1491I'm afraid I don't know how to apply that operation to that
1492combination of types. Continue, and I'll return the second
1493argument (see above) as the result of the operation.
1494
1495! Missing `..' has been inserted.
1496<to be read again>
1497                   (
1498l.69 ...enoffset(1/2x,y)of(0,1)(
1499                                1,0);
1500A path join command should end with two dots.
1501
1502Path at line 69, before choices:
1503(0,0)..controls (2,2) and (0,1)
1504 ..(1,0)
1505
1506Path at line 69, after choices:
1507(0,0)..controls (2,2) and (0,1)
1508 ..(1,0)
1509
1510{p~3:=path}
1511{show}
1512{reverse(path)}
1513{(path)intersectiontimes(path)}
1514>> (0.17227,0.28339)
1515{(0.17227)point(path)}
1516>> (0.71329,0.78188)
1517{(1)-(0.28339)}
1518{(0.71661)point(path)}
1519>> (0.7133,0.78189)
1520{show}
1521{(path)shifted((0.01,0))}
1522{(path)intersectiontimes(path)}
1523{xpart((1.47693,1.18973))}
1524{(1.47693)point(path)}
1525{(path)shifted((0.01,0))}
1526{(path)intersectiontimes(path)}
1527{ypart((1.47693,1.18973))}
1528{(1.18973)point(path)}
1529{((1.50499,0.71521))-((1.495,0.71521))}
1530>> (0.01,0)
1531{begingroup}
1532{interim}
1533{tracingedges:=1}
1534{-(1)}
1535{-(1.00002)}
1536{(-1)+-+(-1.00002)}
1537! Pythagorean subtraction 1+-+1.00002 has been replaced by 0.
1538l.73 ...es:=1; e[-1+-+ -1.00001]
1539                                =nullpicture; addto e1 also[[
1540Since I don't take square roots of negative numbers,
1541I'm zeroing this one. Proceed, with fingers crossed.
1542
1543{nullpicture}
1544{(unknown picture e0)=(picture)}
1545{addto}
1546{begingroup}
1547{addto}
1548{(path)scaled(3)}
1549Path at line 74, before subdivision into octants:
1550(3,0)..controls (3.75,0.75) and (4.125,1.3125)
1551 ..(4.3125,1.6875)..controls (4.875,2.8125) and (3.75,2.25)
1552 ..(6,0)..controls (3.75,2.25) and (4.875,2.8125)
1553 ..(4.3125,1.6875)..controls (4.125,1.3125) and (3.75,0.75)
1554 ..cycle
1555
1556Cycle spec at line 74, after subdivision:
1557(3,0) % beginning in octant `NNE'
1558   ..controls (3.75,0.75) and (4.125,1.3125)
1559 ..(4.3125,1.6875) % segment 0
1560   ..controls (4.5,2.0625) and (4.5,2.25)
1561 ..(4.5,2.25) % segment 1
1562% entering octant `NNW'
1563% entering octant `WNW'
1564% entering octant `WSW'
1565% entering octant `SSW'
1566% entering octant `SSE'
1567   ..controls (4.5,2.25) and (4.5,1.5)
1568 ..(6,0) % segment 1
1569% entering octant `ESE'
1570% entering octant `ENE'
1571% entering octant `NNE'
1572% entering octant `NNW'
1573   ..controls (4.5,1.5) and (4.5,2.25)
1574 ..(4.5,2.25) % segment 2
1575% entering octant `WNW'
1576% entering octant `WSW'
1577% entering octant `SSW'
1578   ..controls (4.5,2.25) and (4.5,2.0625)
1579 ..(4.3125,1.6875) % segment 2
1580   ..controls (4.125,1.3125) and (3.75,0.75)
1581 ..(3,0) % segment 3
1582% entering octant `SSE'
1583% entering octant `ESE'
1584% entering octant `ENE'
1585 & cycle
1586
1587Tracing edges at line 74: (weight 1)
1588(4,0)(4,1)(5,1)(5,3)(4,3)(4,1)(5,1)(5,0)(6,0)(6,1)(5,1)(5,3)
1589(4,3)(4,1)(3,1)(3,0).
1590
1591{(unknown picture e1)=(unknown picture e2)}
1592{(picture)=(unknown picture e1)}
1593{cull}
1594{nullpicture}
1595{endgroup}
1596{show}
1597{-(4095)}
1598{(picture)shifted((4089,-4095))}
1599>> Edge structure at line 75:
1600row -4093: | 4093+ 4094-
1601row -4094: | 4093+ 4094-
1602row -4095: | 4092+ 4093- 4094+ 4095-
1603
1604{-(4095)}
1605{(picture)shifted((-4095,4092))}
1606{-(3)}
1607{(picture)shifted((-3,0))}
1608>> Edge structure at line 75:
1609row 4094: -4094+ -4093- -4094+ -4093- |
1610row 4093: -4094+ -4093- -4094+ -4093- |
1611row 4092: -4095+ -4092- -4093+ -4094- |
1612
1613{-(4095)}
1614{(picture)shifted((4089,-4095))}
1615! Too far to shift.
1616<to be read again>
1617                   ]]
1618l.76 e2 shifted(4089,-4095)]]
1619                             ;addto e1 also  e2 shifted(-2,$)...
1620I can't shift the picture as requested---it would
1621make some coordinates too large or too small.
1622Proceed, and I'll omit the transformation.
1623
1624>> Edge structure at line 76:
1625row 2: 4+ 5- 4+ 5- |
1626row 1: 4+ 5- 4+ 5- |
1627row 0: 3+ 6- 5+ 4- |
1628
1629{restoring tracingedges=32767.99998}
1630{endgroup}
1631{addto}
1632{-(2)}
1633{(picture)shifted((-2,-1))}
1634{-(4)}
1635{(picture)shifted((-4,-1))}
1636{e1:=picture}
1637{addto}
1638{(picture)rotated(89.999)}
1639! That transformation is too hard.
1640<to be read again>
1641                   +
1642l.77 ...e0 also e1rotated89.999+
1643                                e1scaled$; show e0 xscaled-10...
1644I can apply complicated transformations to paths,
1645but I can only do integer operations on pictures.
1646Proceed, and I'll omit the transformation.
1647
1648{(picture)scaled(-1)}
1649{(picture)+(picture)}
1650{show}
1651{-(10)}
1652{(picture)xscaled(-10)}
1653{(picture)yscaled(2)}
1654{(picture)xscaled(82)}
1655! Scaled picture would be too big.
1656<to be read again>
1657                   yscaled
1658l.78 yscaled
1659            683;addto e1 doublepath (0,9) withweight-3 withwe...
1660I can't xscale the picture as requested---it would
1661make some coordinates too large or too small.
1662Proceed, and I'll omit the transformation.
1663
1664{(picture)yscaled(683)}
1665! Scaled picture would be too big.
1666<to be read again>
1667                   ;
1668l.78 yscaled683;
1669                addto e1 doublepath (0,9) withweight-3 withwe...
1670I can't yscale the picture as requested---it would
1671make some coordinates too large or too small.
1672Proceed, and I'll omit the transformation.
1673
1674>> Edge structure at line 78:
1675row 5: -40- -50+ -40- -50+ |
1676row 4: -40- -50+ -40- -50+ |
1677row 3: -30+ 0- -10+ -20- -40- -50+ -40- -50+ | -10+ 0-
1678row 2: -30+ 0- -10+ -20- -40- -50+ -40- -50+ | -10+ 0-
1679row 1: 20- 10+ 20- 10+ -20+ -10- -20+ -10- -30- -60+ -50- -40+ |
1680 -10+ -10+ 0- 0- 10+ 20-
1681row 0: 20- 10+ 20- 10+ -20+ -10- -20+ -10- -30- -60+ -50- -40+ |
1682 -10+ -10+ 0- 0- 10+ 20-
1683row -1: 20- 10+ 20- 10+ -20+ -10- -20+ -10- | -20+ -10- 0+ 0+ 10-
1684 10-
1685row -2: 20- 10+ 20- 10+ -20+ -10- -20+ -10- | -20+ -10- 0+ 0+ 10-
1686 10-
1687row -3: 30- 0+ 10- 20+ | 0+ 10-
1688row -4: 30- 0+ 10- 20+ | 0+ 10-
1689
1690{addto}
1691{-(3)}
1692{turningnumber(path)}
1693! Weight must be -3, -2, -1, +1, +2, or +3.
1694<to be read again>
1695                   withpen
1696l.79  withpen
1697              pencircle xscaled(oct"180"++1) rotated-angle(64...
1698I'll ignore the bad `with' clause and look for another.
1699
1700{pencircle}
1701{oct("180")}
1702>> "180"
1703! String contains illegal digits.
1704<to be read again>
1705                   ++
1706l.79 ...ircle xscaled(oct"180"++
1707                                1) rotated-angle(64,$) shifte...
1708I zeroed out characters that weren't in the range 0..7.
1709
1710{(64)++(1)}
1711{(future pen)xscaled(64.00781)}
1712{angle((64,-1))}
1713{-(-0.89517)}
1714{(future pen)rotated(0.89517)}
1715{(future pen)shifted((9,8))}
1716Pen polygon at line 80 (newly created):
1717(9,7.5)
1718 .. (37.5,8)
1719 .. (41,8.5)
1720 .. (9,8.5)
1721 .. (-19.5,8)
1722 .. (-23,7.5)
1723 .. cycle
1724
1725Path at line 80, before choices:
1726(-1,-1){curl 1}
1727 ..(1,0)
1728 ..(1,1)
1729 ..(-1,0)
1730 ..{curl 1}cycle
1731
1732Path at line 80, after choices:
1733(-1,-1)..controls (-0.18568,-1.14464) and (0.62712,-0.73824)
1734 ..(1,0)..controls (1.16457,0.32584) and (1.21637,0.71506)
1735 ..(1,1)..controls (0.46898,1.69931) and (-0.7587,1.2167)
1736 ..(-1,0)..controls (-1.06546,-0.33012) and (-1.06546,-0.66988)
1737 ..cycle
1738
1739{makepen(path)}
1740{(future pen)xscaled(4095.49998)}
1741Pen polygon at line 80 (newly created):
1742(4095.49998,0)
1743 .. (4095.49998,1)
1744 .. (-4095.49998,0)
1745 .. (-4095.49998,-1)
1746 .. cycle
1747
1748Path at line 80, before subdivision into octants:
1749(0,9)..controls (0,9) and (0,9)
1750 ..cycle
1751
1752! Curve out of range.
1753<to be read again>
1754                   ;
1755l.80 ...cycle)xscaled4095.49999;
1756
1757At least one of the coordinates in the path I'm about to
1758digitize was really huge (potentially bigger than 4095).
1759So I've cut it back to the maximum size.
1760The results will probably be pretty wild.
1761
1762Cycle spec at line 80, after subdivision:
1763(0,0) % beginning in octant `ENE'
1764% entering octant `NNE'
1765% entering octant `NNW'
1766% entering octant `WNW'
1767% entering octant `WSW'
1768% entering octant `SSW'
1769% entering octant `SSE'
1770% entering octant `ESE'
1771 & cycle
1772
1773Tracing edges at line 80: (weight -3)
1774@ Octant ENE (2 offsets), from (-4095.49998,-1) to (4095.49998,0)
1775@ transition line 0, from (-4095.49998,-1) to (-4095.49998,-1)
1776@ transition line 1, from (-4095.49998,-1) to (4095.49998,0)
1777@ transition line 2, from (4095.49998,0) to (4095.49998,0)
1778(0,-1)
1779@ Octant NNE (1 offset), from (4095.49998,0) to (4095.49998,1)
1780@ transition line 2, from (4095.49998,0) to (4095.49998,0)
1781@ transition line 1, from (4095.49998,0) to (4095.49998,1)
1782(0,0)(4095,0)
1783@ Octant NNW (0 offsets), from (4095.49998,1) to (4095.49998,1)
1784@ transition line 0, from (4095.49998,1) to (4095.49998,1)
1785@ Octant WNW (0 offsets), from (4095.49998,1) to (4095.49998,1)
1786@ transition line 1, from (4095.49998,1) to (4095.49998,1)
1787@ Octant WSW (2 offsets), from (4095.49998,1) to (-4095.49998,0)
1788@ transition line 0, from (4095.49998,1) to (4095.49998,1)
1789@ transition line 1, from (4095.49998,1) to (-4095.49998,0)
1790@ transition line 2, from (-4095.49998,0) to (-4095.49998,0)
1791(4095,1)(0,1)
1792@ Octant SSW (1 offset), from (-4095.49998,0) to (-4095.49998,-1)
1793@ transition line 2, from (-4095.49998,0) to (-4095.49998,0)
1794@ transition line 1, from (-4095.49998,0) to (-4095.49998,-1)
1795(0,0)(-4095,0)
1796@ Octant SSE (0 offsets), from (-4095.49998,-1) to (-4095.49998,-1)
1797@ transition line 0, from (-4095.49998,-1) to (-4095.49998,-1)
1798@ Octant ESE (0 offsets), from (-4095.49998,-1) to (-4095.49998,-1)
1799@ transition line 1, from (-4095.49998,-1) to (-4095.49998,-1)
1800(-4095,-1).
1801
1802{show}
1803>> Edge structure at line 81:
1804row 1: | 0+ 1-
1805row 0: 0--- 4095+++ -2+ -1- -2+ -1- | 0+ 1-
1806row -1: -4095--- 0+++ -2+ -1- -2+ -1- | -1+ 0- 1+ 2-
1807row -2: -3+ 0- -1+ -2- |
1808
1809{totalweight(picture)}
1810>> -0.37476
1811{charcode:=5}
1812{chardp:=5}
1813{-(1.5)}
1814{xoffset:=-1.5}
1815{shipout}
1816[5]
1817Edge structure at line 81 (just shipped out):
1818row 1: | -1+ 0-
1819row 0: | -3+ -3+ -2- -2- -1--- -1+ 0- 4094+++
1820row -1: | -4096--- -3+ -3+ -2- -2- -2+ -1- -1+++ 0+ 1-
1821row -2: | -4+ -3- -2+ -1-
1822
1823{showstats}
1824Memory usage 1084&202 (749 still untouched)
1825String usage 24&92 (858&11309 still untouched)
1826{addto}
1827{(path)yscaled(0.01666)}
1828Path at line 82, before subdivision into octants:
1829(0,0)..controls (15,0.06665) and (-15,-0.19995)
1830 ..(4,0)..controls (-15,-0.19995) and (15,0.06665)
1831 ..cycle
1832
1833Cycle spec at line 82, after subdivision:
1834(0,0) % beginning in octant `ENE'
1835   ..controls (1.74272,0.00775) and (2.87802,0.01099)
1836 ..(3.55333,0.01099) % segment 0
1837% entering octant `ESE'
1838   ..controls (4.12251,0.01099) and (4.36491,0.00868)
1839 ..(4.36877,0.00482) % segment 0
1840% entering octant `SSE'
1841   ..controls (4.3688,0.00479) and (4.36882,0.00476)
1842 ..(4.36882,0.00473) % segment 0
1843% entering octant `SSW'
1844   ..controls (4.36882,0.0047) and (4.3688,0.00467)
1845 ..(4.36877,0.00464) % segment 0
1846% entering octant `WSW'
1847   ..controls (4.34875,-0.01538) and (-1.88759,-0.07579)
1848 ..(-2.48894,-0.07579) % segment 0
1849% entering octant `WNW'
1850   ..controls (-2.5191,-0.07579) and (-2.5351,-0.07564)
1851 ..(-2.53542,-0.07532) % segment 0
1852% entering octant `NNW'
1853% entering octant `NNE'
1854% entering octant `ENE'
1855   ..controls (-2.53209,-0.07199) and (-0.88672,-0.05144)
1856 ..(4,0) % segment 0
1857% entering octant `NNE'
1858% entering octant `NNW'
1859% entering octant `WNW'
1860% entering octant `WSW'
1861   ..controls (-0.88672,-0.05144) and (-2.5321,-0.072)
1862 ..(-2.53542,-0.07532) % segment 1
1863% entering octant `SSW'
1864% entering octant `SSE'
1865% entering octant `ESE'
1866   ..controls (-2.53511,-0.07562) and (-2.5191,-0.07579)
1867 ..(-2.48894,-0.07579) % segment 1
1868% entering octant `ENE'
1869   ..controls (-1.88759,-0.07579) and (4.34877,-0.01537)
1870 ..(4.36877,0.00464) % segment 1
1871% entering octant `NNE'
1872   ..controls (4.3688,0.00467) and (4.36882,0.0047)
1873 ..(4.36882,0.00473) % segment 1
1874% entering octant `NNW'
1875   ..controls (4.36882,0.00476) and (4.3688,0.00479)
1876 ..(4.36877,0.00482) % segment 1
1877% entering octant `WNW'
1878   ..controls (4.36491,0.00868) and (4.12251,0.01099)
1879 ..(3.55333,0.01099) % segment 1
1880% entering octant `WSW'
1881   ..controls (2.87802,0.01099) and (1.74272,0.00775)
1882 ..(0,0) % segment 1
1883% entering octant `SSW'
1884% entering octant `SSE'
1885% entering octant `ESE'
1886 & cycle
1887
1888Tracing edges at line 82: (weight 1)
1889(No new edges added.)
1890
1891{(picture)yscaled(0)}
1892{e3:=picture}
1893{autorounding:=2}
1894{addto}
1895Path at line 83, before choices:
1896(0.5,0){curl 1}
1897 ..{curl 1}(3.5,1.5)
1898
1899Path at line 83, after choices:
1900(0.5,0)..controls (1.5,0.5) and (2.5,1)
1901 ..(3.5,1.5)
1902
1903Path at line 83, before subdivision into octants:
1904(0.5,0)..controls (1.5,0.5) and (2.5,1)
1905 ..(3.5,1.5)..controls (2.5,1) and (1.5,0.5)
1906 ..cycle
1907
1908Cycle spec at line 83, after subdivision and double autorounding:
1909(0.5,0) % beginning in octant `ENE'
1910   ..controls (1.5,0.5) and (2.5,1)
1911 ..(3.5,1.5) % segment 0
1912% entering octant `NNE'
1913% entering octant `NNW'
1914% entering octant `WNW'
1915% entering octant `WSW'
1916   ..controls (2.5,1) and (1.5,0.5)
1917 ..(0.5,0) % segment 1
1918% entering octant `SSW'
1919% entering octant `SSE'
1920% entering octant `ESE'
1921 & cycle
1922
1923Tracing edges at line 83: (weight 2)
1924(2,0)(2,1)(4,1)(4,2)(4,1)(2,1)(2,0).
1925
1926{tracingspecs:=0}
1927Path at line 84, before choices:
1928(1,1)
1929 ..cycle
1930
1931Path at line 84, after choices:
1932(1,1)..controls (1,1) and (1,1)
1933 ..cycle
1934
1935{makepen(path)}
1936{(future pen)yscaled(1.5)}
1937Pen polygon at line 84 (newly created):
1938(1,1.5)
1939 .. cycle
1940
1941{q:=pen}
1942{((-1,yy))rotated((8,1,5,-5,-5,5))}
1943>> (8,1,5,-5,-5,5)
1944! Improper transformation argument.
1945<to be read again>
1946                   {
1947l.85 p~8=(($,yy)rotated p{
1948                          0,1}..{0,$}(1,0){0,$}..cycle)scaled...
1949The expression shown above has the wrong type,
1950so I can't transform anything using it.
1951Proceed, and I'll omit the transformation.
1952
1953>> yy
1954! Undefined y coordinate has been replaced by 0.
1955<to be read again>
1956                   {
1957l.85 p~8=(($,yy)rotated p{
1958                          0,1}..{0,$}(1,0){0,$}..cycle)scaled...
1959I need a `known' y value for this part of the path.
1960The value I found (see above) was no good;
1961so I'll try to keep going by using zero instead.
1962(Chapter 27 of The METAFONTbook explains that
1963you might want to type `I ???' now.)
1964
1965Path at line 85, before choices:
1966(-1,0){0,4096}
1967 ..{0,-4096}(1,0){0,-4096}
1968 ..{0,4096}cycle
1969
1970Path at line 85, after choices:
1971(-1,0)..controls (-1,1.33333) and (1,1.33333)
1972 ..(1,0)..controls (1,-1.33333) and (-1,-1.33333)
1973 ..cycle
1974
1975{(path)scaled(2)}
1976{(path)shifted((1000.49,9))}
1977{(unknown path p~8)=(path)}
1978{turningcheck:=1}
1979{addto}
1980>> (8,1,5,-5,-5,5)
1981! Improper type.
1982<to be read again>
1983                   withpen
1984l.86 ...n q withweight p withpen
1985                                 cycle p;
1986Next time say `withweight <known numeric expression>';
1987I'll ignore the bad `with' clause and look for another.
1988
1989{cycle((8,1,5,-5,-5,5))}
1990>> false
1991! Improper type.
1992<to be read again>
1993                   ;
1994l.86 ...eight p withpen cycle p;
1995
1996Next time say `withpen <known pen expression>';
1997I'll ignore the bad `with' clause and look for another.
1998
1999Tracing edges at line 86: (weight 1)
2000@ Octant NNE (0 offsets), from (999,10.5) to (999.15451,11.65451)
2001@ transition line 1, from (999.15451,11.65451) to (999.15451,11.65451)
2002(999,11)
2003@ Octant ENE (0 offsets), from (999.15451,11.65451) to (1001,12)
2004@ transition line 0, from (999.15451,11.65451) to (999.15451,11.65451)
2005@ Octant ESE (0 offsets), from (1001,12) to (1002.8455,11.6545)
2006@ transition line 1, from (1002.8455,11.6545) to (1002.8455,11.6545)
2007@ Octant SSE (0 offsets), from (1002.8455,11.6545) to (1003,10.5)
2008@ transition line 0, from (1002.8455,11.6545) to (1002.8455,11.6545)
2009(999,12)(1003,12)
2010@ Octant SSW (0 offsets), from (1003,10.5) to (1002.84549,9.34549)
2011@ transition line 1, from (1002.84549,9.34549) to (1002.84549,9.34549)
2012@ Octant WSW (0 offsets), from (1002.84549,9.34549) to (1001,9)
2013@ transition line 0, from (1002.84549,9.34549) to (1002.84549,9.34549)
2014@ Octant WNW (0 offsets), from (1001,9) to (999.1545,9.3455)
2015@ transition line 1, from (999.1545,9.3455) to (999.1545,9.3455)
2016@ Octant NNW (0 offsets), from (999.1545,9.3455) to (999,10.5)
2017@ transition line 0, from (999.1545,9.3455) to (999.1545,9.3455)
2018(1003,9)(999,9)(999,11).
2019
2020Tracing edges at line 86: (weight 1)
2021@ Octant SSE (0 offsets), from (999,10.5) to (999.15451,9.34549)
2022@ transition line 0, from (999,10.5) to (999,10.5)
2023(999,11)
2024@ Octant ESE (0 offsets), from (999.15451,9.34549) to (1001,9)
2025@ transition line 1, from (1001,9) to (1001,9)
2026@ Octant ENE (0 offsets), from (1001,9) to (1002.8455,9.3455)
2027@ transition line 0, from (1001,9) to (1001,9)
2028@ Octant NNE (0 offsets), from (1002.8455,9.3455) to (1003,10.5)
2029@ transition line 1, from (1003,10.5) to (1003,10.5)
2030(999,9)(1003,9)
2031@ Octant NNW (0 offsets), from (1003,10.5) to (1002.84549,11.65451)
2032@ transition line 0, from (1003,10.5) to (1003,10.5)
2033@ Octant WNW (0 offsets), from (1002.84549,11.65451) to (1001,12)
2034@ transition line 1, from (1001,12) to (1001,12)
2035@ Octant WSW (0 offsets), from (1001,12) to (999.1545,11.6545)
2036@ transition line 0, from (1001,12) to (1001,12)
2037@ Octant SSW (0 offsets), from (999.1545,11.6545) to (999,10.5)
2038@ transition line 1, from (999,10.5) to (999,10.5)
2039(1003,12)(999,12)(999,11).
2040
2041{begingroup}
2042{interim}
2043{(xx)=(0.1)}
2044## xx=0.1
2045{autorounding:=0.1}
2046{addto}
2047Tracing edges at line 87: (weight -2)
2048@ Octant NNE (0 offsets), from (999,10.5) to (999.38197,11.42706)
2049@ transition line 1, from (999.38197,11.42706) to (999.38197,11.42706)
2050@ Octant ENE (0 offsets), from (999.38197,11.42706) to (1001,12)
2051@ transition line 0, from (999.38197,11.42706) to (999.38197,11.42706)
2052(999,11)
2053@ Octant ESE (0 offsets), from (1001,12) to (1002.61804,11.42705)
2054@ transition line 1, from (1002.61804,11.42705) to (1002.61804,11.42705)
2055(999,12)(1003,12)
2056@ Octant SSE (0 offsets), from (1002.61804,11.42705) to (1003,10.5)
2057@ transition line 0, from (1002.61804,11.42705) to (1002.61804,11.42705)
2058@ Octant SSW (0 offsets), from (1003,10.5) to (1002.61803,9.57294)
2059@ transition line 1, from (1002.61803,9.57294) to (1002.61803,9.57294)
2060@ Octant WSW (0 offsets), from (1002.61803,9.57294) to (1001,9)
2061@ transition line 0, from (1002.61803,9.57294) to (1002.61803,9.57294)
2062@ Octant WNW (0 offsets), from (1001,9) to (999.38196,9.57295)
2063@ transition line 1, from (999.38196,9.57295) to (999.38196,9.57295)
2064(1003,9)(999,9)
2065@ Octant NNW (0 offsets), from (999.38196,9.57295) to (999,10.5)
2066@ transition line 0, from (999.38196,9.57295) to (999.38196,9.57295)
2067(999,11).
2068
2069{restoring autorounding=2}
2070{endgroup}
2071{-(14.5)}
2072{charext:=-14.5}
2073{chardp:=-14.5}
2074{chardx:=-14.5}
2075{shipout}
2076{-(picture)}
2077{(picture)-(picture)}
2078{-(picture)}
2079{turningnumber(path)}
2080{(6)*(-1)}
2081{(picture)shifted((0,-6))}
2082{(picture)+(picture)}
2083[5.-14]
2084Edge structure at line 88 (just shipped out):
2085row 11: | 998- 998+ 998++ 1002-- 1002- 1002+
2086row 10: | 998- 998+ 998++ 1002-- 1002- 1002+
2087row 9: | 998- 998+ 998++ 1002-- 1002- 1002+
2088row 5: | 998- 998+ 998++ 1002-- 1002- 1002+
2089row 4: | 998- 998+ 998++ 1002-- 1002- 1002+
2090row 3: | 998- 998+ 998++ 1002-- 1002- 1002+
2091row 2: | 3+ 3+ 3+ 3+ 4- 4- 4- 4-
2092row 1: | -1+ -1+ 0- 0- 1+ 2- 3+ 3+ 3+ 3+ 4- 4- 4- 4-
2093row 0: | -3+ -3+ -3+ -2- -2- -2- -1+ -1+ 0- 0- 0+ 0+ 1- 1- 2+ 2+
2094 3- 3- 4+ 4+ 5- 5-
2095row -1: | -3+ -3+ -2- -2- -2+ -2+ -1- -1- 0+ 0+ 0+ 1- 1- 1-
2096row -2: | -4+ -3- -2+ -2+ -1- -1-
2097row -4: | 3+ 3+ 4- 4-
2098row -5: | 3+ 3+ 4- 4-
2099row -6: | 2+ 3- 4+ 5-
2100
2101Path at line 89, before choices:
2102(0,0){curl 1}
2103 ..(1,0.5)
2104 ..(5,1.5)
2105 ..(7,2.5)
2106 ..(12,3.5)
2107 ..{curl 1}(13,4)
2108
2109Path at line 89, after choices:
2110(0,0)..controls (0.3153,0.20053) and (0.6504,0.36807)
2111 ..(1,0.5)..controls (2.29114,0.98723) and (3.72412,0.97192)
2112 ..(5,1.5)..controls (5.68967,1.78545) and (6.30771,2.22081)
2113 ..(7,2.5)..controls (8.58867,3.1407) and (10.3946,2.90645)
2114 ..(12,3.5)..controls (12.3506,3.62962) and (12.68594,3.7973)
2115 ..(13,4)
2116
2117{(unknown path p~9)=(path)}
2118{addto}
2119Tracing edges at line 89: (weight 1)
2120(1,0)(1,1)(5,1)(5,2)(7,2)(7,3)(12,3)(12,4)(12,3)(7,3)(7,2)(5,2)
2121(5,1)(1,1)(1,0).
2122
2123{smoothing:=1}
2124{addto}
2125Tracing edges at line 90: (weight 1)
2126(1,0)(1,1)(4,1)(4,2)(8,2)(8,3)(12,3)(12,4)(12,3)(8,3)(8,2)(4,2)
2127(4,1)(1,1)(1,0).
2128
2129{addto}
2130{-(4095)}
2131Path at line 91, before choices:
2132(-4095,0){curl 1}..tension 0.75 and 999
2133 ..{curl 1}(0,2)
2134
2135Path at line 91, after choices:
2136(-4095,0)..controls (-2275,0.88889) and (-1.36636,1.99933)
2137 ..(0,2)
2138
2139Tracing edges at line 91: (weight 1)
2140(-3071,0)(-3071,1)(-1024,1)(-1024,2)(-1024,1)(-3071,1)(-3071,0).
2141
2142{show}
2143{-(90)}
2144{(picture)rotated(-90)}
2145>> Edge structure at line 91:
2146
2147{(picture)+(picture)}
2148{(90)*(-1)}
2149{(picture)rotated(-90)}
2150{(picture)rotated(90)}
2151>> Edge structure at line 91:
2152row 2: | 4+++ 4+ 5--- 5-
2153row 1: | 0+++ 0+ 1--- 1- 2++ 3-- 4+++ 4+ 5--- 5-
2154row 0: | -2+++ -2+++ -1--- -1--- 0+++ 0+ 2--- 2- 3++ 4-- 5++ 6--
2155row -1: | -2+++ -2+ 0--- 0- 1+++ 1+++ 2--- 2---
2156row -2: | -3++ -2-- -1+++ -1+ 0--- 0-
2157
2158{if}
2159{if}
2160{elseif}
2161! Missing `:' has been inserted.
2162<inserted text>
2163                :
2164<to be read again>
2165                   elseif
2166l.92 if "a" if "ab">"b" elseif
2167                               path reverse (3,4): >="aa":foo...
2168
2169{("ab")>("b")}
2170{false}
2171{reverse((3,4))}
2172{path(path)}
2173{true}
2174{("a")>=("aa")}
2175{false}
2176{if}
2177{((xpart ',ypart '))-((1,yy))}
2178{((xpart '-1,linearform))<((xpart ',ypart '))}
2179{true}
2180{fi}
2181{else}
2182! Extra else.
2183l.93 ... if '-(1,yy)<': :fi else
2184                                 def dup text t=[[t;save endd...
2185I'm ignoring this; it doesn't match any if.
2186
2187{def}
2188{def}
2189{def}
2190
2191||<tertiary>->show.substring(EXPR0)of("a"
2192(EXPR0)<-(2,-1)
2193{show}
2194{("a")&("bc")}
2195{((2,-1))substring("abc")}
2196>> "ba"
2197{tertiarydef}
2198{def}
2199{show}
2200{((23.3,4.5))subpath(path)}
2201Path at line 100, before choices:
2202(0,0){curl 2}
2203 ..(13,4)..controls (12.84297,3.89865) and (12.68063,3.80606)
2204 ..(12.51372,3.72261){curl 3}
2205 ..{curl 4}(-1,-1){curl 4}
2206 ..{curl 2}cycle
2207
2208Path at line 100, after choices:
2209(0,0)..controls (-40.15552,-36.7088) and (58.71173,33.50317)
2210 ..(13,4)..controls (12.84297,3.89865) and (12.68063,3.80606)
2211 ..(12.51372,3.72261)..controls (8.00914,2.1484) and (3.50458,0.5742)
2212 ..(-1,-1)..controls (-0.66667,-0.66667) and (-0.33333,-0.33333)
2213 ..cycle
2214
2215>> Path at line 100:
2216(0,0)..controls (-40.15552,-36.7088) and (58.71173,33.50317)
2217 ..(13,4)..controls (12.84297,3.89865) and (12.68063,3.80606)
2218 ..(12.51372,3.72261)..controls (8.00914,2.1484) and (3.50458,0.5742)
2219 ..(-1,-1)..controls (-0.66667,-0.66667) and (-0.33333,-0.33333)
2220 ..cycle
2221
2222{numspecial}
2223{(2)+(3)}
2224
2225++->[[dup.showtoken(EXPR0);]];def.x.expr.z.of(EXPR1)=z.enddef;texts(x=((
2226EXPR1)+0)(EXPR1)+(EXPR1))("xx",foo((EXPR0)))=0]]
2227(EXPR0)<-path
2228(EXPR1)<-5
2229{begingroup}
2230
2231dup<text>->[[(TEXT0);save
2232(TEXT0)<-showtoken(path)
2233{begingroup}
2234{showtoken}
2235> (path)
2236{save}
2237{restoring ;}
2238{endgroup}
2239{def}
2240! Missing symbolic token inserted.
2241<inserted text>
2242                 INACCESSIBLE
2243++->...]];def.x.expr.z.of(EXPR1)
2244                                =z.enddef;texts(x=((EXPR1)+0)...
2245<to be read again>
2246                   ;
2247l.100 ...cle;numspecial p~++2+3;
2248                                [[
2249Sorry: You can't redefine a number, string, or expr.
2250I've inserted an inaccessible symbol so that your
2251definition will be completed without mixing me up too badly.
2252
2253
2254texts(TEXT0)(TEXT1)<expr>->for.n:=,for.n"yy":n,length.if.false:endfor(TE
2255XT1),(TEXT0),:if.string.n:forsuffixes.n=foo1,[foo(n)],':show(TEXT0),(TEX
2256T1)|(n;exitif.not('<='+((EXPR2),yy))endfor.for.m= :+endfor.for.m=alpha.s
2257tep-1.1 3$:+m.endfor.fi.endfor
2258(TEXT0)<-x=((5)+0)(5)+(5)
2259(TEXT1)<-"xx",foo((path))
2260(EXPR2)<-0
2261{for}
2262{for}
2263! Missing `=' has been inserted.
2264<to be read again>
2265                   "yy"
2266texts->for.n:=,for.n"yy"
2267                        :n,length.if.false:endfor(TEXT1),(TEX...
2268<to be read again>
2269                   ]]
2270<to be read again>
2271                   ;
2272l.100 ...cle;numspecial p~++2+3;
2273                                [[
2274The next thing in this loop should have been `=' or `:='.
2275But don't worry; I'll pretend that an equals sign
2276was present, and I'll look for the values next.
2277
2278{loop value="yy"}
2279{if}
2280{false}
2281{false}
2282! Incomplete if; all text was ignored after line 100.
2283<inserted text>
2284                fi
2285<to be read again>
2286                    ENDFOR
2287<for("yy")> ....if.false: ENDFOR
2288
2289texts->...length.if.false:endfor
2290                                (TEXT1),(TEXT0),:if.string.n:...
2291<to be read again>
2292                   ]]
2293<to be read again>
2294                   ;
2295l.100 ...cle;numspecial p~++2+3;
2296                                [[
2297A forbidden `outer' token occurred in skipped text.
2298This kind of error happens when you say `if...' and forget
2299the matching `fi'. I've inserted a `fi'; this might work.
2300
2301{[repeat the loop]}
2302{length("xx")}
2303
2304foo(TEXT2)->begingroup(TEXT2)endgroup
2305(SUFFIX0)<-
2306(SUFFIX1)<-foo
2307(TEXT2)<-(path)
2308{begingroup}
2309{endgroup}
2310
2311x<expr>of<primary>->(EXPR0)
2312{(5)+(0)}
2313(EXPR0)<-5
2314! Missing `of' has been inserted for x.
2315<to be read again>
2316                   (5)
2317<argument> x=((5)+0)(5)
2318                       +(5)
2319texts->...:endfor(TEXT1),(TEXT0)
2320                                ,:if.string.n:forsuffixes.n=f...
2321<to be read again>
2322                   ]]
2323<to be read again>
2324                   ;
2325l.100 ...cle;numspecial p~++2+3;
2326                                [[
2327I've got the first argument; will look now for the other.
2328
2329(EXPR1)<-5
2330{(5)+(5)}
2331{loop value="yy"}
2332{if}
2333{string("yy")}
2334{true}
2335{forsuffixes}
2336! Missing symbolic token inserted.
2337<inserted text>
2338                 INACCESSIBLE
2339<for("yy")> ...orsuffixes(EXPR0)
2340                                =foo1,[foo((EXPR0))],':show.x...
2341texts->...3$:+m.endfor.fi.endfor
2342
2343<to be read again>
2344                   ]]
2345<to be read again>
2346                   ;
2347l.100 ...cle;numspecial p~++2+3;
2348                                [[
2349Sorry: You can't redefine a number, string, or expr.
2350I've inserted an inaccessible symbol so that your
2351definition will be completed without mixing me up too badly.
2352
2353
2354foo(TEXT2)->begingroup(TEXT2)endgroup
2355(SUFFIX0)<-
2356(SUFFIX1)<-foo
2357(TEXT2)<-("yy")
2358{begingroup}
2359{endgroup}
2360>> "yy"
2361! Improper subscript has been replaced by zero.
2362<for("yy")> ...o1,[foo((EXPR0))]
2363                                ,':show.x=((5)+0)(5)+(5),"xx"...
2364texts->...3$:+m.endfor.fi.endfor
2365
2366<to be read again>
2367                   ]]
2368<to be read again>
2369                   ;
2370l.100 ...cle;numspecial p~++2+3;
2371                                [[
2372A bracketed subscript must have a known numeric value;
2373unfortunately, what I found was the value that appears just
2374above this error message. So I'll try a zero subscript.
2375
2376{loop value=foo1}
2377{show}
2378
2379x<expr>of<primary>->(EXPR0)
2380{(5)+(0)}
2381(EXPR0)<-5
2382! Missing `of' has been inserted for x.
2383<to be read again>
2384                   (5)
2385<for(foo1)> show.x=((5)+0)(5)
2386                             +(5),"xx",foo((path))|(("yy");ex...
2387<for("yy")> ...'+((0),yy))endfor
2388                                .for.m= :+endfor.for.m=alpha....
2389texts->...3$:+m.endfor.fi.endfor
2390
2391<to be read again>
2392                   ]]
2393<to be read again>
2394                   ;
2395l.100 ...cle;numspecial p~++2+3;
2396                                [[
2397I've got the first argument; will look now for the other.
2398
2399(EXPR1)<-5
2400{(5)+(5)}
2401>> 10
2402>> "xx"
2403foo(TEXT2)->begingroup(TEXT2)endgroup
2404(SUFFIX0)<-
2405(SUFFIX1)<-foo
2406(TEXT2)<-(path)
2407{begingroup}
2408{endgroup}
2409
2410|<suffix>->,(SUFFIX0)
2411! Missing `)' has been inserted.
2412<to be read again>
2413                   ("yy")
2414<for(foo1)> ...o((path))|(("yy")
2415                                ;exitif.not('<='+((0),yy)) EN...
2416<for("yy")> ...'+((0),yy))endfor
2417                                .for.m= :+endfor.for.m=alpha....
2418texts->...3$:+m.endfor.fi.endfor
2419
2420<to be read again>
2421                   ]]
2422<to be read again>
2423                   ;
2424l.100 ...cle;numspecial p~++2+3;
2425                                [[
2426I've gotten to the end of the macro parameter list.
2427You might want to delete some tokens before continuing.
2428
2429(SUFFIX0)<-
2430>> Path at line 100:
2431(0,0)..controls (15,4) and (-15,-12)
2432 ..(4,0)
2433
2434>> "yy"
2435{exitif}
2436{((xpart ',ypart '))+((0,yy))}
2437{((xpart ',ypart '))<=((xpart ',linearform))}
2438>> -yy
2439! Unknown relation will be considered false.
2440<to be read again>
2441                   )
2442<for(foo1)> ...ot('<='+((0),yy))
2443                                 ENDFOR
2444<for("yy")> ...'+((0),yy))endfor
2445                                .for.m= :+endfor.for.m=alpha....
2446texts->...3$:+m.endfor.fi.endfor
2447
2448<to be read again>
2449                   ]]
2450<to be read again>
2451                   ;
2452l.100 ...cle;numspecial p~++2+3;
2453                                [[
2454Oh dear. I can't decide if the expression above is positive,
2455negative, or zero. So this comparison test won't be `true'.
2456
2457{[repeat the loop]}
2458{loop value=0}
2459{not(false)}
2460{true}
2461{for}
2462{for}
2463>> 0.5p3~
2464! Improper initial value has been replaced by 0.
2465<to be read again>
2466                   step
2467<for("yy")> ....for.m=alpha.step
2468                                -1.1 3$:+m.endfor.fi ENDFOR
2469texts->...3$:+m.endfor.fi.endfor
2470
2471<to be read again>
2472                   ]]
2473<to be read again>
2474                   ;
2475l.100 ...cle;numspecial p~++2+3;
2476                                [[
2477When you say `for x=a step b until c',
2478the initial value `a' and the step size `b'
2479and the final value `c' must have known numeric values.
2480I'm zeroing this one. Proceed, with fingers crossed.
2481
2482{-(1.1)}
2483! Missing `until' has been inserted.
2484<to be read again>
2485                   3
2486<for("yy")> ...=alpha.step-1.1 3
2487                                $:+m.endfor.fi ENDFOR
2488texts->...3$:+m.endfor.fi.endfor
2489
2490<to be read again>
2491                   ]]
2492<to be read again>
2493                   ;
2494l.100 ...cle;numspecial p~++2+3;
2495                                [[
2496I assume you meant to say `until' after `step'.
2497So I'll look for the final value and colon next.
2498
2499{(3)*(-1)}
2500{loop value=0}
2501{[repeat the loop]}
2502{loop value=-1.1}
2503{+(0)}
2504{[repeat the loop]}
2505{loop value=-2.20001}
2506{(0)+(-1.1)}
2507{[repeat the loop]}
2508{fi}
2509{[repeat the loop]}
2510{loop value=2}
2511{if}
2512{string(2)}
2513{false}
2514{[repeat the loop]}
2515{loop value=path}
2516{if}
2517{string(path)}
2518{false}
2519{[repeat the loop]}
2520{loop value=10}
2521{if}
2522{string(10)}
2523{false}
2524{[repeat the loop]}
2525{(-1.1)+(-2.20001)}
2526{endgroup}
2527{begingroup}
2528{let}
2529{save}
2530{def}
2531{def}
2532
2533texts->input
2534{input}
2535(trap.mf
2536if->endinput?
2537{endinput}
2538{if}
2539{known(0)}
2540{not(true)}
2541{false}
2542)
2543! Incomplete if; all text was ignored after line 2.
2544<inserted text>
2545                fi
2546l.101 ...input enddef;texts trap
2547                                 ]];
2548The file ended while I was skipping conditional text.
2549This kind of error happens when you say `if...' and forget
2550the matching `fi'. I've inserted a `fi'; this might work.
2551
2552{restoring \}
2553{restoring if}
2554{endgroup}
2555
2556dup<text>->[[(TEXT0);save
2557Runaway text?
2558[[def.texts.secondary.x=primarydef.y++y=x@y.enddef;showtoken ETC.
2559! Forbidden token found while scanning a text argument.
2560<inserted text>
2561                endgroup
2562<to be read again>
2563                   \
2564l.102 ...showtoken++;x enddef]]\
2565                                ;
2566It seems that a right delimiter was left out,
2567causing me to read past where you wanted me to stop.
2568I'll try to recover; but if the error is serious,
2569you'd better type `E' or `X' now and fix your file.
2570
2571(TEXT0)<-[[def.texts.secondary.x=primarydef.y++y=x@y.enddef;showtoken++;
2572x.enddef]]
2573{begingroup}
2574{begingroup}
2575{def}
2576{endgroup}
2577{save}
2578! Missing symbolic token inserted.
2579<inserted text>
2580                 INACCESSIBLE
2581<to be read again>
2582                   \
2583l.102 ...showtoken++;x enddef]]\
2584                                ;
2585Sorry: You can't redefine my error-recovery tokens.
2586I've inserted an inaccessible symbol so that your
2587definition will be completed without mixing me up too badly.
2588
2589{\}
2590{proofing:=1}
2591
2592texts<secondary>->primarydef.y++y=(EXPR0)@y.enddef;showtoken++;(EXPR0)
2593(EXPR0)<-"a"
2594{primarydef}
2595{showtoken}
2596> ++=primarydef'd macro:
2597("a")@(EXPR1)
2598{("a")&("b")}
2599ab
2600texts<secondary>->primarydef.y++y=(EXPR0)@y.enddef;showtoken++;(EXPR0)
2601{(1.00002)*(a1)}
2602{-(1.00002a1)}
2603(EXPR0)<--1.00002a1
2604{primarydef}
2605{showtoken}
2606> ++=primarydef'd macro:
2607(-1.00002a1)@(EXPR1)
2608{(a2)+(a3)}
2609{(linearform)+(a4)}
2610{(linearform)+(a5)}
2611{(linearform)+(a6)}
2612{-(linearform)}
2613{(-1.00002a1)=(linearform)}
2614## a1=0.99998a6+0.99998a5+0.99998a4+0.99998a3+0.99998a2
2615{-((a3,a2))}
2616{((-a3,-a2))/(0.99998)}
2617{(a4)+(a5)}
2618{begingroup}
2619{showdependencies}
2620a1=0.99998a6+0.99998a5+0.99998a4+0.99998a3+0.99998a2
2621alpha=0.5p3~
2622{endgroup}
2623{(linearform)+(a6)}
2624{(a3)+(a4)}
2625{(linearform)+(a5)}
2626{(linearform)+(a6)}
2627{-((linearform,linearform))}
2628{((-1.00002a3,-1.00002a2))=((linearform,linearform))}
2629## a2=0.99998a6+0.99998a5+0.99998a4+0.99998a3
2630## a3=0.99998a6+0.99998a5+0.99998a4
2631{restoring  INACCESSIBLE}
2632{endgroup}
2633{(1.00002)*(0.25a4*4)}
2634{(0.25a4*4)+(1)}
2635{(0.25a5*4)+(0.25a6*4)}
2636{(0.25a4*4+1)=(linearform)}
2637## a4*4=0.99998a6*4+0.99998a5*4-3.99994
2638{(0.9)*(0.5p3~)}
2639{(0.45p3~)+(7)}
2640{alpha:=0.45p3~+7}
2641## alpha=0.45p3~+7
2642{showdependencies}
2643alpha=0.45p3~+7
2644a4=0.25a6*4+0.25a5*4-0.99998
2645a3=0.49998a6*4+0.49998a5*4-0.99997
2646a2=0.99997a6*4+0.99997a5*4-1.99992
2647a1=1.99992a6*4+1.99992a5*4-3.99982
2648{(0.66667)-(0.25a6*4)}
2649{(0.25a6*4)=(-0.25a6*4+0.66667)}
2650## a6*4=1.33334
2651{(0.25a5*4)=(0.33333)}
2652## a5*4=1.33331
2653#### a4=-0.33333
2654#### a3=0.33333
2655#### a2=0.66664
2656#### a1=1.33328
2657{cull}
2658{(4)*(0.33333)}
2659{chardp:=27}
2660{charcode:=27}
2661{openwindow}
2662! Improper `openwindow'.
2663<to be read again>
2664                   ;
2665l.107 ...) to (0,0) at "whoops";
2666                                 addto p; shipout p; cull p;
2667Say `openwindow k from (r0,c0) to (r1,c1) at (x,y)',
2668where all quantities are known and k is between 0 and 15.
2669
2670{addto}
2671>> (8,1,5,-5,-5,5)
2672! Not a suitable variable.
2673<to be read again>
2674                   ;
2675l.107 ...) at "whoops"; addto p;
2676                                 shipout p; cull p;
2677At this point I needed to see the name of a picture variable.
2678(Or perhaps you have indeed presented me with one; I might
2679have missed it, if it wasn't followed by the proper token.)
2680So I'll not change anything just now.
2681
2682{shipout}
2683! Variable p is the wrong type (transform).
2684<to be read again>
2685                   ;
2686l.107 ...s"; addto p; shipout p;
2687                                 cull p;
2688I was looking for a "known" picture variable.
2689So I'll not change anything just now.
2690
2691{cull}
2692>> (8,1,5,-5,-5,5)
2693! Not a suitable variable.
2694<to be read again>
2695                   ;
2696l.107 ...o p; shipout p; cull p;
2697
2698At this point I needed to see the name of a picture variable.
2699(Or perhaps you have indeed presented me with one; I might
2700have missed it, if it wasn't followed by the proper token.)
2701So I'll not change anything just now.
2702
2703{openwindow}
2704{-(0.5)}
2705
2706Calling BLANKRECTANGLE(0,0,0,0)
2707Calling UPDATESCREEN
2708{special}
2709>> (8,1,5,-5,-5,5)
2710! Unsuitable expression.
2711<to be read again>
2712                   ;
2713l.108 ...$) at (0,0); special p;
2714                                 numspecial "p";
2715The expression shown above has the wrong type to be output.
2716
2717{numspecial}
2718>> "p"
2719! Unsuitable expression.
2720<to be read again>
2721                   ;
2722l.108 ...cial p; numspecial "p";
2723
2724The expression shown above has the wrong type to be output.
2725
2726{openwindow}
2727{(32)*(1024)}
2728! Arithmetic overflow.
2729l.109 ....49999 from (0,32*1024)
2730                                 to (1,31*1057) at (0,0); shi...
2731Uh, oh. A little while ago one of the quantities that I was
2732computing got too large, so I'm afraid your answers will be
2733somewhat askew. You'll probably have to adopt different
2734tactics next time. But I shall try to carry on anyway.
2735
2736{(31)*(1057)}
2737
2738Calling BLANKRECTANGLE(100,100,0,1)
2739Calling UPDATESCREEN
2740{shipout}
2741[27.-14]
2742Edge structure at line 109 (just shipped out):
2743row 0: | -3++ -2-- -1++ 4094--
2744row -1: | -4096++ -3-- -2++ -1--
2745
2746{openwindow}
2747Path at line 110, before choices:
2748(0,0)
2749
2750Path at line 110, after choices:
2751(0,0)
2752
2753{length(path)}
2754
2755Calling BLANKRECTANGLE(0,2,0,4)
2756Calling UPDATESCREEN
2757{openwindow}
2758{length((-1,0))}
2759{-(5)}
2760
2761Calling BLANKRECTANGLE(1,10,1,3)
2762Calling UPDATESCREEN
2763{display}
2764{nullpicture}
2765>> picture
2766! Not a suitable variable.
2767<to be read again>
2768                   ;
2769l.112 display nullpicture;
2770                           display p inwindow 3; display p in...
2771At this point I needed to see the name of a picture variable.
2772(Or perhaps you have indeed presented me with one; I might
2773have missed it, if it wasn't followed by the proper token.)
2774So I'll not change anything just now.
2775
2776{display}
2777>> 3
2778! Bad window number.
2779<to be read again>
2780                   ;
2781l.112 ...; display p inwindow 3;
2782                                 display p inwindow 6;
2783It should be the number of an open window.
2784
2785{display}
2786! Variable p is the wrong type (transform).
2787<to be read again>
2788                   ;
2789l.112 ...; display p inwindow 6;
2790
2791I was looking for a "known" picture variable.
2792So I'll not change anything just now.
2793
2794{display}
2795
2796Calling BLANKRECTANGLE(1,10,1,3)
2797Calling PAINTROW(2,1;4,5,6,10)
2798Calling UPDATESCREEN
2799{cull}
2800! Enormous number has been reduced.
2801l.113 ...opping (0.1,4095.999999
2802                                ) withweight 3.5
2803I can't handle numbers bigger than about 4095.99998;
2804so I've changed your constant to that maximum amount.
2805
2806! Weight must be -3, -2, -1, +1, +2, or +3.
2807<to be read again>
2808                   withweight
2809l.114 withweight
2810                -3.5; display e0 inwindow 5.5; addto e0 also ...
2811I'll ignore the bad `with' clause and look for another.
2812
2813{-(3.5)}
2814! Bad culling amounts.
2815<to be read again>
2816                   ;
2817l.114 withweight-3.5;
2818                      display e0 inwindow 5.5; addto e0 also ...
2819Always cull by known amounts that exclude 0.
2820
2821{display}
2822
2823Calling BLANKRECTANGLE(1,10,1,3)
2824Calling PAINTROW(2,1;4,5,6,8,9,10)
2825Calling PAINTROW(1,1;6,7,8,9)
2826Calling UPDATESCREEN
2827{addto}
2828>> (8,1,5,-5,-5,5)
2829! Improper `addto'.
2830<to be read again>
2831                   ;
2832l.114 ...w 5.5; addto e0 also p;
2833                                 addto e0 contour 0;
2834This expression should have specified a known picture.
2835So I'll not change anything just now.
2836
2837{addto}
2838>> 0
2839! Improper `addto'.
2840<to be read again>
2841                   ;
2842l.114 ... p; addto e0 contour 0;
2843
2844This expression should have been a known path.
2845So I'll not change anything just now.
2846
2847{display}
2848
2849Calling BLANKRECTANGLE(0,2,0,4)
2850Calling PAINTROW(2,1;0,1)
2851Calling PAINTROW(1,1;0,1)
2852Calling PAINTROW(0,1;1,2)
2853Calling UPDATESCREEN
2854{addto}
2855! Not a cycle.
2856<to be read again>
2857                   ;
2858l.115 ...; addto e0 contour p~9;
2859
2860That contour should have ended with `..cycle' or `&cycle'.
2861So I'll not change anything just now.
2862
2863{display}
2864{(3)+(3)}
2865
2866Calling BLANKRECTANGLE(1,10,1,3)
2867Calling PAINTROW(2,1;4,5,6,10)
2868Calling UPDATESCREEN
2869{display}
2870{begingroup}
2871{vardef}
2872{endgroup}
2873! Variable e0e0 has been obliterated.
2874<to be read again>
2875                   ;
2876l.116 ...vardef e[]e=enddef;6]];
2877
2878It seems you did a nasty thing---probably by accident,
2879but nevertheless you nearly hornswoggled me...
2880While I was evaluating the right-hand side of this
2881command, something happened, and the left-hand side
2882is no longer a variable! So I won't change anything.
2883
2884{addto}
2885{display}
2886Calling PAINTROW(1,1;0,1,2)
2887Calling PAINTROW(0,0;0,1,2)
2888Calling UPDATESCREEN
2889{ligtable}
2890{display}
2891{display}
2892Calling UPDATESCREEN
2893{show}
2894{begingroup}
2895{interim}
2896{tracingcommands:=0}
2897
2898lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en
2899dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou
2900ndarychar+51.29999
2901(TEXT0)<-"g"
2902(TEXT1)<-=:|
2903
2904lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en
2905dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou
2906ndarychar+51.29999
2907(TEXT0)<-"h":"i"
2908(TEXT1)<-|=:
2909! Character h is already in a ligtable.
2910<to be read again>
2911                   :
2912<argument> "h":
2913               "i"
2914lig->...;ligtable(TEXT0):(TEXT0)
2915                                (TEXT1)0,skipto255;boundarych...
2916l.119 ...=:|); lig("h":"i")(|=:)
2917                                ;
2918It's not legal to label a character more than once.
2919So I'll not change anything just now.
2920
2921
2922lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en
2923dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou
2924ndarychar+51.29999
2925(TEXT0)<-"j"
2926(TEXT1)<-|=:>
2927
2928lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en
2929dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou
2930ndarychar+51.29999
2931(TEXT0)<-"k"
2932(TEXT1)<-=:|>
2933
2934lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en
2935dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou
2936ndarychar+51.29999
2937(TEXT0)<-"l"
2938(TEXT1)<-|=:|>
2939{restoring tracingcommands=2.1}
2940{endgroup}
2941>> vacuous
2942{begingroup}
2943{let}
2944{vardef}
2945{endgroup}
2946! Variable c.a1 has been obliterated.
2947<to be read again>
2948                   ;
2949l.121 ...;vardef b=enddef;1]] ];
2950                                 ligtable"m":0=:0,skipto5;
2951It seems you did a nasty thing---probably by accident,
2952but nevertheless you nearly hornswoggled me...
2953While I was evaluating the suffix of this variable,
2954something was redefined, and it's no longer a variable!
2955In order to get back on my feet, I've inserted `0' instead.
2956
2957{b1:=0}
2958! Variable b1 has been obliterated.
2959<to be read again>
2960                   ;
2961l.121 ...;vardef b=enddef;1]] ];
2962                                 ligtable"m":0=:0,skipto5;
2963It seems you did a nasty thing---probably by accident,
2964but nevertheless you nearly hornswoggled me...
2965While I was evaluating the right-hand side of this
2966command, something happened, and the left-hand side
2967is no longer a variable! So I won't change anything.
2968
2969{ligtable}
2970! A statement can't begin with `skipto'.
2971<to be read again>
2972                   !!
2973l.122 !!
2974        ; errhelp 0; errmessage "Be like Jane";
2975I was looking for the beginning of a new statement.
2976If you just proceed without changing anything, I'll ignore
2977everything up to the next `;'. Please insert a semicolon
2978now in front of anything that you don't want me to delete.
2979(See Chapter 27 of The METAFONTbook for an example.)
2980
2981! Extra tokens will be flushed.
2982<to be read again>
2983                   !!
2984l.122 !!
2985        ; errhelp 0; errmessage "Be like Jane";
2986I've just read as much of that statement as I could fathom,
2987so a semicolon should have been next. It's very puzzling...
2988but I'll try to get myself back together, by ignoring
2989everything up to the next `;'. Please insert a semicolon
2990now in front of anything that you don't want me to delete.
2991(See Chapter 27 of The METAFONTbook for an example.)
2992
2993{errhelp}
2994>> 0
2995! Not a string.
2996<to be read again>
2997                   ;
2998l.122 !!; errhelp 0;
2999                     errmessage "Be like Jane";
3000A message should be a known string expression.
3001
3002{errmessage}
3003! Be like Jane.
3004<to be read again>
3005                   ;
3006l.122 ...message "Be like Jane";
3007
3008This error message was generated by an `errmessage'
3009command, so I can't give any explicit help.
3010Pretend that you're Miss Marple: Examine all clues,
3011and deduce the truth by inspired guesses.
3012
3013{errhelp}
3014{errmessage}
3015! .
3016<to be read again>
3017                   ;
3018l.123 ...e%%%lp%"; errmessage"";
3019                                 errhelp ""; errmessage "Anot...
3020He%
3021lp
3022
3023
3024{errhelp}
3025{errmessage}
3026! Another.
3027<to be read again>
3028                   ;
3029l.123 ...; errmessage "Another";
3030
3031(That was another `errmessage'.)
3032
3033{headerbyte}
3034>> 0
3035! Improper location.
3036<to be read again>
3037                   ;
3038l.124 headerbyte 0;
3039                    headerbyte(48.5)substring(-9,9)of"long"; ...
3040I was looking for a known, positive number.
3041For safety's sake I'll ignore the present command.
3042
3043{headerbyte}
3044! Missing `:' has been inserted.
3045<to be read again>
3046                   substring
3047l.124 ...aderbyte(48.5)substring
3048                                (-9,9)of"long"; for\=0:\
3049A colon should follow a headerbyte or fontinfo location.
3050
3051{-(9)}
3052{((-9,9))substring("long")}
3053>> "long"
3054! Invalid code has been replaced by 0.
3055<to be read again>
3056                   ;
3057l.124 ...ubstring(-9,9)of"long";
3058                                 for\=0:\
3059I was looking for a number between 0 and 255, or for a
3060string of length 1. Didn't find it; will use 0 instead.
3061
3062{for}
3063Runaway loop?
3064! Forbidden token found while scanning the text of a for loop.
3065<inserted text>
3066                endfor
3067<to be read again>
3068                   \
3069l.124 ...-9,9)of"long"; for\=0:\
3070
3071I suspect you have forgotten an `endfor',
3072causing me to read past where you wanted me to stop.
3073I'll try to recover; but if the error is serious,
3074you'd better type `E' or `X' now and fix your file.
3075
3076{loop value=0}
3077{[repeat the loop]}
3078{\}
3079{headerbyte}
3080{(2)*(0.33333)}
3081{fontdimen}
3082{(2)*(0.33333)}
3083>> "q"
3084! Improper font parameter.
3085<to be read again>
3086                   ;
3087l.125 ..."; fontdimen 9:2a6,"q";
3088                                 fontdimen 1:2048;
3089I'm zeroing this one. Proceed, with fingers crossed.
3090
3091{fontdimen}
3092{fontmaking:=1}
3093{extensible}
3094! Missing `:' has been inserted.
3095<to be read again>
3096                   5
3097l.126 ...king:=1; extensible 5 5
3098                                ,"c"255.5,"d"; charlist 0:5:"...
3099I'm processing `extensible c: t,m,b,r'.
3100
3101! Missing `,' has been inserted.
3102<to be read again>
3103                   255.5
3104l.126 ...extensible 5 5,"c"255.5
3105                                ,"d"; charlist 0:5:"a":"d";
3106I'm processing `extensible c: t,m,b,r'.
3107
3108>> 255.5
3109! Invalid code has been replaced by 0.
3110<to be read again>
3111                   ,
3112l.126 ...xtensible 5 5,"c"255.5,
3113                                "d"; charlist 0:5:"a":"d";
3114I was looking for a number between 0 and 255, or for a
3115string of length 1. Didn't find it; will use 0 instead.
3116
3117{charlist}
3118! Character code 5 is already extensible.
3119<to be read again>
3120                   :
3121l.126 ...,"d"; charlist 0:5:"a":
3122                                "d";
3123It's not legal to label a character more than once.
3124So I'll not change anything just now.
3125
3126{ligtable}
3127! Too far to skip.
3128l.127 ligtable255:255::
3129                       "a"=:"b","d" kern -2048,"c":0:99.5:"e"...
3130At most 127 lig/kern steps can separate skipto1 from 1::.
3131
3132{-(2048)}
3133! Character code 0 is already in a charlist.
3134<to be read again>
3135                   :
3136l.127 ...","d" kern -2048,"c":0:
3137                                99.5:"e"|=:|"f",0kern';
3138It's not legal to label a character more than once.
3139So I'll not change anything just now.
3140
3141>> (xpart ',ypart ')
3142! Improper kern.
3143<to be read again>
3144                   ;
3145l.127 ...99.5:"e"|=:|"f",0kern';
3146
3147The amount of kern should be a known numeric value.
3148I'm zeroing this one. Proceed, with fingers crossed.
3149
3150{ligtable}
3151! Character code 5 is already extensible.
3152<to be read again>
3153                   :
3154l.128 ligtable 5:
3155                 0; def clear(text x)=interim x:=$ enddef; cl...
3156It's not legal to label a character more than once.
3157So I'll not change anything just now.
3158
3159! Illegal ligtable step.
3160<to be read again>
3161                   ;
3162l.128 ligtable 5:0;
3163                    def clear(text x)=interim x:=$ enddef; cl...
3164I was looking for `=:' or `kern' here.
3165
3166{def}
3167
3168clear(TEXT0)->interim(TEXT0):=$
3169(TEXT0)<-hppp
3170{interim}
3171{hppp:=-1}
3172{(0)=(0)}
3173! Redundant equation.
3174<to be read again>
3175                   ;
3176l.128 ...f; clear(hppp); vppp=0;
3177
3178I already knew that this equation was true.
3179But perhaps no harm has been done; let's continue.
3180
3181{begingroup}
3182
3183clear(TEXT0)->interim(TEXT0):=$
3184(TEXT0)<-tracingmacros
3185{interim}
3186{tracingmacros:=-1}
3187{interim}
3188{tracingcommands:=-1}
3189Runaway text?
3190tracingoutput
3191! Forbidden token found while scanning a text argument.
3192<inserted text>
3193                )
3194<to be read again>
3195                   \
3196l.129 ...); clear(tracingoutput\
3197                                ;
3198It seems that a right delimiter was left out,
3199causing me to read past where you wanted me to stop.
3200I'll try to recover; but if the error is serious,
3201you'd better type `E' or `X' now and fix your file.
3202
3203{restoring proofing=1}
3204{restoring tracingoutput=1}
3205{restoring tracingcommands=2.1}
3206{restoring tracingmacros=1}
3207{endgroup}
3208{def}
3209{def}
3210{addto}
3211Path at line 139, before choices:
3212(0,0){4096,0}
3213 ..{4096,0}(1,0){0,-4096}
3214 ..{0,4096}cycle
3215
3216Path at line 139, after choices:
3217(0,0)..controls (0.33333,0) and (0.66667,0)
3218 ..(1,0)..controls (1,-0.66667) and (0,-0.66667)
3219 ..cycle
3220
3221> 0 ENE 1 (ESE SSE) SSW WSW WNW NNW 0 (NNE)
3222! Backwards path (turning number is negative).
3223<to be read again>
3224                   ;
3225l.139 ....{0,1}cycle withpen qq;
3226
3227The path doesn't have a counterclockwise orientation,
3228so I'll probably have trouble drawing it.
3229(See Chapter 27 of The METAFONTbook for more help.)
3230
3231Tracing edges at line 139: (weight 1)
3232@ Octant ENE (2 offsets), from (2.5,-0.5) to (1.5,-2)
3233@ retrograde line from (2.5,-0.5) to (0.5,-2)
3234(3,0)(3,-1)(1,-1)
3235@ transition line 0, from (0.5,-2) to (0.5,-2)
3236@ transition line 1, from (1.5,-2) to (2.5,-1.5)
3237@ transition line 2, from (2.5,-1.5) to (3.5,-0.5)
3238(1,-2)(3,-2)(3,-1)(4,-1)
3239@ retrograde line from (3.5,-0.5) to (1.5,-2)
3240(4,0)(4,-1)(2,-1)
3241@ Octant ESE (2 offsets), from (1.5,-2) to (-1,0)
3242@ retrograde line from (1.5,-2) to (-1,0)
3243(2,-2)(1,-2)(1,-1)(0,-1)
3244@ transition line 3, from (-1,0) to (0.5,-1.5)
3245@ transition line 2, from (0.5,-1.5) to (1.5,-2)
3246@ transition line 1, from (1.5,-2) to (1.5,-2)
3247(0,0)(0,-1)(1,-1)
3248@ retrograde line from (1.5,-2) to (-1,0)
3249(1,-2)(1,-1)(0,-1)
3250@ Octant SSE (0 offsets), from (-1,0) to (-1,0)
3251@ transition line 0, from (-1,0) to (-1,0)
3252@ Octant SSW (2 offsets), from (-1,0) to (-0.82407,0.67593)
3253@ retrograde line from (-1,0) to (-0.5,1.5)
3254(0,0)(-1,0)(-1,1)(0,1)
3255@ transition line 3, from (-0.5,1.5) to (-0.5,1.5)
3256@ transition line 2, from (-0.5,1.5) to (-1,0)
3257@ transition line 1, from (-1.06265,-0.39499) to (-0.56265,1.10501)
3258@ transition line 2, from (-0.82407,0.67593) to (-1.32407,-0.82407)
3259@ transition line 1, from (-1.32407,-0.82407) to (-1.32407,-0.82407)
3260(0,2)(0,1)(-1,1)
3261@ retrograde line from (-1.32407,-0.82407) to (-0.82407,0.67593)
3262(-1,-1)
3263@ Octant WSW (2 offsets), from (-0.82407,0.67593) to (1,2)
3264@ retrograde line from (-0.82407,0.67593) to (1.17593,2.17593)
3265(-1,1)(0,1)
3266@ transition line 0, from (1.17593,2.17593) to (1.17593,2.17593)
3267@ transition line 1, from (1.17593,2.17593) to (0.17593,1.67593)
3268@ transition line 2, from (0,1.5) to (-1,0.5)
3269(0,2)
3270@ retrograde line from (-1,0.5) to (1,2)
3271(0,1)
3272@ Octant WNW (2 offsets), from (1,2) to (3.32407,0.17593)
3273@ retrograde line from (1,2) to (3.5,0)
3274(0,2)(2,2)(2,1)(3,1)
3275@ transition line 3, from (3.5,0) to (2,1.5)
3276@ transition line 2, from (1.82407,1.67593) to (0.82407,2.17593)
3277@ transition line 1, from (0.82407,2.17593) to (0.82407,2.17593)
3278(3,0)(3,1)(2,1)
3279@ retrograde line from (0.82407,2.17593) to (3.32407,0.17593)
3280(2,2)(2,1)(3,1)
3281@ Octant NNW (0 offsets), from (3.32407,0.17593) to (3,1)
3282@ transition line 0, from (3.32407,0.17593) to (3.32407,0.17593)
3283(3,0)
3284@ Octant NNE (2 offsets), from (3,1) to (2.5,-0.5)
3285@ retrograde line from (3,1) to (2.5,-0.5)
3286(3,1)
3287@ transition line 3, from (2.5,-0.5) to (2.5,-0.5)
3288@ transition line 2, from (2.5,-0.5) to (3,1)
3289@ transition line 1, from (3,1) to (3,1)
3290(3,0)
3291@ retrograde line from (3,1) to (2.5,-0.5)
3292(3,1)(3,0).
3293
3294
3295f(SUFFIX0)(EXPR1)(EXPR2)(TEXT3)->numeric.w;show(EXPR1);addto(SUFFIX0)con
3296tour(0,0)..(2,0)..(1,$)..(1,1)..cycle.withpen.qq;addto(SUFFIX0)doublepat
3297h(0,0){1,1}..{2,1}(2,1)withpen.qq;addto(SUFFIX0)doublepath(($,$){1,0}..(
32981,1){1,0})scaled0.5withpen.nullpen;cull(SUFFIX0)keeping(4,4)withweight1.
32995;
3300! Missing `]' has been inserted.
3301<to be read again>
3302                   ,
3303l.140 f(e[3,
3304            w); g(e3,transformed p,penoffset-(1,1.3)of(pencir...
3305I've seen a `[' and a subscript value, in a suffix,
3306so a right bracket should have come next.
3307I shall pretend that one was there.
3308
3309(SUFFIX0)<-e3
3310(EXPR1)<-unknown path w
3311! Missing argument to f.
3312<to be read again>
3313                   ;
3314l.140 f(e[3,w);
3315                g(e3,transformed p,penoffset-(1,1.3)of(pencir...
3316That macro has more parameters than you thought.
3317I'll continue by pretending that each missing argument
3318is either zero or null.
3319
3320(EXPR2)<-0
3321! Missing argument to f.
3322<to be read again>
3323                   ;
3324l.140 f(e[3,w);
3325                g(e3,transformed p,penoffset-(1,1.3)of(pencir...
3326That macro has more parameters than you thought.
3327I'll continue by pretending that each missing argument
3328is either zero or null.
3329
3330(TEXT3)<-
3331{numeric}
3332{show}
3333>> unknown path %CAPSULE1615
3334{addto}
3335Path at line 140, before choices:
3336(0,0)
3337 ..(2,0)
3338 ..(1,-1)
3339 ..(1,1)
3340 ..cycle
3341
3342Path at line 140, after choices:
3343(0,0)..controls (0.56189,-0.5286) and (1.43811,0.5286)
3344 ..(2,0)..controls (2.70831,-0.66634) and (1.66634,-1.70831)
3345 ..(1,-1)..controls (0.4714,-0.43811) and (1.5286,0.43811)
3346 ..(1,1)..controls (0.33366,1.70831) and (-0.70831,0.66634)
3347 ..cycle
3348
3349> 0 ESE ENE ESE 1 SSE SSW WSW WNW NNW 2 NNE NNW 3 WNW WSW SSW SSE ESE 0
3350! Strange path (turning number is zero).
3351<to be read again>
3352                   ;
3353f->.....(1,1)..cycle.withpen.qq;
3354                                addto(SUFFIX0)doublepath(0,0)...
3355<to be read again>
3356                   ;
3357l.140 f(e[3,w);
3358                g(e3,transformed p,penoffset-(1,1.3)of(pencir...
3359The path doesn't have a counterclockwise orientation,
3360so I'll probably have trouble drawing it.
3361(See Chapter 27 of The METAFONTbook for more help.)
3362
3363Tracing edges at line 140: (weight 1)
3364@ Octant ENE (2 offsets), from (0.26321,-2.6526) to (1.73679,-2.34741)
3365@ transition line 0, from (0.26321,-2.6526) to (0.26321,-2.6526)
3366@ transition line 1, from (1.73679,-2.34741) to (2.73679,-1.84741)
3367@ transition line 2, from (2.73679,-1.84741) to (3.73679,-0.84741)
3368(1,-3)(1,-2)(3,-2)
3369@ retrograde line from (3.73679,-0.84741) to (1.73679,-2.34741)
3370(3,-1)
3371@ Octant ESE (2 offsets), from (1.73679,-2.34741) to (-0.25465,-0.56029)
3372@ retrograde line from (1.73679,-2.34741) to (-0.76321,-0.34741)
3373(3,-2)(1,-2)(1,-1)(-1,-1)
3374@ transition line 3, from (-0.76321,-0.34741) to (0.73679,-1.84741)
3375@ transition line 2, from (0.73679,-1.84741) to (1.73679,-2.34741)
3376@ transition line 1, from (2.05333,-2.41772) to (1.05333,-1.91772)
3377@ transition line 2, from (1.24535,-2.06029) to (2.24535,-2.56029)
3378@ transition line 1, from (2.24535,-2.56029) to (2.24535,-2.56029)
3379(-1,0)(-1,-1)(0,-1)(0,-2)(2,-2)
3380@ retrograde line from (2.24535,-2.56029) to (-0.25465,-0.56029)
3381(2,-3)(2,-2)(1,-2)
3382@ Octant SSE (0 offsets), from (-0.25465,-0.56029) to (0,-1.13196)
3383@ transition line 0, from (-0.25465,-0.56029) to (-0.25465,-0.56029)
3384@ Octant SSW (2 offsets), from (0,-1.13196) to (0.25,-0.25)
3385@ retrograde line from (0,-1.13196) to (0.5,0.36804)
3386(1,-1)(0,-1)
3387@ transition line 3, from (0.5,0.36804) to (0.5,0.36804)
3388@ transition line 2, from (0.5,0.36804) to (0,-1.13196)
3389@ transition line 1, from (-0.04594,-1.41693) to (0.45406,0.08307)
3390@ transition line 2, from (0.25,-0.25) to (-0.25,-1.75)
3391@ transition line 1, from (-0.25,-1.75) to (-0.25,-1.75)
3392(0,0)
3393@ retrograde line from (-0.25,-1.75) to (0.25,-0.25)
3394(0,-2)
3395@ Octant WSW (2 offsets), from (0.25,-0.25) to (1.63197,1)
3396@ retrograde line from (0.25,-0.25) to (2.25,1.25)
3397(0,0)(1,0)
3398@ transition line 0, from (2.25,1.25) to (2.25,1.25)
3399@ transition line 1, from (2.25,1.25) to (1.25,0.75)
3400@ transition line 2, from (1.03186,0.59352) to (2.03186,1.09352)
3401@ transition line 1, from (1.63197,1) to (0.63197,0.5)
3402@ transition line 2, from (0.63197,0.5) to (-0.36803,-0.5)
3403(1,1)
3404@ retrograde line from (-0.36803,-0.5) to (1.63197,1)
3405(1,0)
3406@ Octant WNW (2 offsets), from (1.63197,1) to (3.56024,-0.74529)
3407@ retrograde line from (1.63197,1) to (4.13197,-1)
3408(1,1)(2,1)(2,0)(4,0)
3409@ transition line 3, from (4.13197,-1) to (2.63197,0.5)
3410@ transition line 2, from (2.63197,0.5) to (1.63197,1)
3411@ transition line 1, from (1.29863,1.07983) to (2.29863,0.57983)
3412@ transition line 2, from (2.06024,0.75471) to (1.06024,1.25471)
3413@ transition line 1, from (1.06024,1.25471) to (1.06024,1.25471)
3414(4,-1)(4,0)(3,0)
3415@ retrograde line from (1.06024,1.25471) to (3.56024,-0.74529)
3416(3,1)(2,1)(2,0)(3,0)
3417@ Octant NNW (0 offsets), from (3.56024,-0.74529) to (3.3474,-0.23679)
3418@ transition line 0, from (3.56024,-0.74529) to (3.56024,-0.74529)
3419(3,-1)
3420@ Octant NNE (2 offsets), from (3.3474,-0.23679) to (3.65259,1.23679)
3421@ retrograde line from (3.3474,-0.23679) to (2.8474,-1.73679)
3422(3,0)
3423@ transition line 3, from (2.8474,-1.73679) to (2.8474,-1.73679)
3424@ transition line 2, from (2.8474,-1.73679) to (3.3474,-0.23679)
3425@ transition line 1, from (3.65259,1.23679) to (3.65259,1.23679)
3426(3,-2)
3427@ Octant NNW (0 offsets), from (3.65259,1.23679) to (3.43976,1.74529)
3428@ transition line 0, from (3.65259,1.23679) to (3.65259,1.23679)
3429(3,1)(4,1)
3430@ Octant WNW (2 offsets), from (3.43976,1.74529) to (0.36803,4)
3431@ transition line 3, from (3.43976,1.74529) to (1.93976,3.24529)
3432@ transition line 2, from (1.70137,3.42017) to (0.70137,3.92017)
3433@ transition line 1, from (0.36803,4) to (0.36803,4)
3434(4,2)(3,2)(3,3)(2,3)
3435@ Octant WSW (2 offsets), from (0.36803,4) to (-2.25,2.25)
3436@ transition line 0, from (0.36803,4) to (0.36803,4)
3437@ transition line 1, from (-0.03186,3.90648) to (-1.03186,3.40648)
3438@ transition line 2, from (-1.25,3.25) to (-2.25,2.25)
3439(2,4)(-1,4)(-1,3)(-2,3)
3440@ Octant SSW (2 offsets), from (-2.25,2.25) to (-3,0.13196)
3441@ transition line 3, from (-2.25,2.25) to (-2.25,2.25)
3442@ transition line 2, from (-2.45406,1.91695) to (-2.95406,0.41695)
3443@ transition line 1, from (-3,0.13196) to (-3,0.13196)
3444(-2,2)(-3,2)
3445@ Octant SSE (0 offsets), from (-3,0.13196) to (-2.74533,-0.43973)
3446@ transition line 0, from (-3,0.13196) to (-3,0.13196)
3447@ Octant ESE (2 offsets), from (-2.74533,-0.43973) to (0.26321,-2.6526)
3448@ transition line 3, from (-2.74533,-0.43973) to (-1.24533,-1.93973)
3449@ transition line 2, from (-1.05331,-2.08229) to (-0.05331,-2.58229)
3450@ transition line 1, from (0.26321,-2.6526) to (0.26321,-2.6526)
3451(-3,-1)(-2,-1)(-2,-2)(0,-2)(0,-3).
3452
3453{addto}
3454Path at line 140, before choices:
3455(0,0){2896.30943,2896.30934}
3456 ..{3663.57385,1831.78674}(2,1)
3457
3458Path at line 140, after choices:
3459(0,0)..controls (0.53566,0.53566) and (1.32689,0.66344)
3460 ..(2,1)
3461
3462Tracing edges at line 140: (weight 1)
3463@ Octant ENE (2 offsets), from (0,-2.5) to (4,0)
3464@ transition line 0, from (0,-2.5) to (0,-2.5)
3465@ transition line 1, from (0,-2.5) to (1,-2)
3466@ transition line 2, from (1.607,-1.57747) to (0.607,-2.07747)
3467@ transition line 1, from (2,-1.5) to (3,-1)
3468@ transition line 2, from (3,-1) to (4,0)
3469(2,-2)(2,-1)(4,-1)
3470@ Octant NNE (2 offsets), from (4,0) to (4.5,1.5)
3471@ transition line 3, from (4,0) to (4,0)
3472@ transition line 2, from (4,0) to (4.5,1.5)
3473@ transition line 1, from (4.5,1.5) to (4.5,1.5)
3474(4,1)(5,1)
3475@ Octant NNW (0 offsets), from (4.5,1.5) to (4.5,1.5)
3476@ transition line 0, from (4.5,1.5) to (4.5,1.5)
3477@ Octant WNW (2 offsets), from (4.5,1.5) to (2,3.5)
3478@ transition line 3, from (4.5,1.5) to (3,3)
3479@ transition line 2, from (3,3) to (2,3.5)
3480@ transition line 1, from (2,3.5) to (2,3.5)
3481(5,2)(4,2)(4,3)(2,3)
3482@ Octant WSW (2 offsets), from (2,3.5) to (-2,1)
3483@ transition line 0, from (2,3.5) to (2,3.5)
3484@ transition line 1, from (0.607,2.92253) to (-0.393,2.42253)
3485@ transition line 2, from (-1,2) to (-2,1)
3486(2,4)(2,3)(0,3)(0,2)(-1,2)
3487@ Octant SSW (2 offsets), from (-2,1) to (-2.5,-0.5)
3488@ transition line 3, from (-2,1) to (-2,1)
3489@ transition line 2, from (-2,1) to (-2.5,-0.5)
3490@ transition line 1, from (-2.5,-0.5) to (-2.5,-0.5)
3491(-1,1)(-2,1)
3492@ Octant SSE (0 offsets), from (-2.5,-0.5) to (-2.5,-0.5)
3493@ transition line 0, from (-2.5,-0.5) to (-2.5,-0.5)
3494@ Octant ESE (2 offsets), from (-2.5,-0.5) to (0,-2.5)
3495@ transition line 3, from (-2.5,-0.5) to (-1,-2)
3496@ transition line 2, from (-1,-2) to (0,-2.5)
3497@ transition line 1, from (0,-2.5) to (0,-2.5)
3498(-2,-1)(-1,-1)(-1,-2).
3499
3500{addto}
3501Path at line 140, before choices:
3502(-1,-1){4096,0}
3503 ..{4096,0}(1,1)
3504
3505Path at line 140, after choices:
3506(-1,-1)..controls (0.10457,-1) and (-0.10457,1)
3507 ..(1,1)
3508
3509{(path)scaled(0.5)}
3510{nullpen}
3511Tracing edges at line 140: (weight 1)
3512(0,0)(0,1)(0,0).
3513
3514{cull}
3515
3516g(SUFFIX0)->show(SUFFIX0)
3517(SUFFIX0)<-e3
3518! Too many arguments to g;
3519  Missing `)' has been inserted.
3520l.140 f(e[3,w); g(e3,
3521                     transformed p,penoffset-(1,1.3)of(pencir...
3522I'm going to assume that the comma I just read was a
3523right delimiter, and then I'll begin expanding the macro.
3524You might want to delete some tokens before continuing.
3525
3526{show}
3527{(picture)transformed((8,1,5,-5,-5,5))}
3528>> Edge structure at line 140:
3529
3530{-((1,1.3))}
3531{pencircle}
3532{(future pen)scaled(20)}
3533{-(0.5)}
3534{(future pen)yscaled(-0.5)}
3535Pen polygon at line 140 (newly created):
3536(1.5,-5)
3537 .. (4.5,-4.5)
3538 .. (6,-4)
3539 .. (8,-3)
3540 .. (9.5,-1.5)
3541 .. (10,-0.5)
3542 .. (10,0.5)
3543 .. (9.5,1.5)
3544 .. (8,3)
3545 .. (6,4)
3546 .. (4.5,4.5)
3547 .. (1.5,5)
3548 .. (-1.5,5)
3549 .. (-4.5,4.5)
3550 .. (-6,4)
3551 .. (-8,3)
3552 .. (-9.5,1.5)
3553 .. (-10,0.5)
3554 .. (-10,-0.5)
3555 .. (-9.5,-1.5)
3556 .. (-8,-3)
3557 .. (-6,-4)
3558 .. (-4.5,-4.5)
3559 .. (-1.5,-5)
3560 .. cycle
3561
3562{((-1,-1.3))penoffset(pen)}
3563>> (-9.5,1.5)
3564Path at line 141, before choices:
3565(0,0)..controls (1,1) and (-1,1)
3566 ..(3,0)
3567
3568Path at line 141, after choices:
3569(0,0)..controls (1,1) and (-1,1)
3570 ..(3,0)
3571
3572{((0,1))directiontime(path)}
3573>> 0.33333
3574{(3.14159)point(path)}
3575{((3.14159,4))subpath(path)}
3576{((7.68668,2.72437))intersectiontimes(path)}
3577>> (0,0)
3578Path at line 143, before choices:
3579(-1,1.1){curl 1}
3580 ..{curl 1}(1,-1)
3581
3582Path at line 143, after choices:
3583(-1,1.1)..controls (-0.33333,0.40001) and (0.33333,-0.3)
3584 ..(1,-1)
3585
3586{(-1)precontrol((0,0))}
3587{(path)intersectiontimes((0,0))}
3588>> (-1,-1)
3589{addto}
3590{-(4094.99998)}
3591{-(0.00002)}
3592Path at line 144, before choices:
3593(-4094.99998,0){curl 1}
3594 ..{curl 1}(4094.99998,-0.00002)
3595
3596Path at line 144, after choices:
3597(-4094.99998,0)..controls (-1365,0) and (1365,-0.00002)
3598 ..(4094.99998,-0.00002)
3599
3600{pencircle}
3601{(0)penoffset(future pen)}
3602Pen polygon at line 145 (newly created):
3603(0.5,0)
3604 .. (0,0.5)
3605 .. (-0.5,0)
3606 .. (0,-0.5)
3607 .. cycle
3608
3609>> 0
3610>> pen
3611! Not implemented: penoffset(known numeric)of(pen).
3612<to be read again>
3613                   ;
3614l.145 pencircle;
3615                 addto e3 also e3 shifted (0,257); ,"flushed ...
3616I'm afraid I don't know how to apply that operation to that
3617combination of types. Continue, and I'll return the second
3618argument (see above) as the result of the operation.
3619
3620Tracing edges at line 145: (weight 1)
3621@ Octant ESE (1 offset), from (-4095.49998,0) to (4094.99998,-0.50002)
3622@ transition line 2, from (-4095.49998,0) to (-4094.99998,-0.5)
3623@ transition line 1, from (4094.99998,-0.50002) to (4094.99998,-0.50002)
3624(-4095,0)
3625@ Octant ENE (1 offset), from (4094.99998,-0.50002) to (4095.49998,-0.00
3626002)
3627@ transition line 0, from (4094.99998,-0.50002) to (4094.99998,-0.50002)
3628@ transition line 1, from (4094.99998,-0.50002) to (4095.49998,-0.00002)
3629(-4095,-1)(4095,-1)
3630@ Octant NNE (0 offsets), from (4095.49998,-0.00002) to (4095.49998,-0.0
36310002)
3632@ transition line 1, from (4095.49998,-0.00002) to (4095.49998,-0.00002)
3633@ Octant NNW (0 offsets), from (4095.49998,-0.00002) to (4095.49998,-0.0
36340002)
3635@ transition line 0, from (4095.49998,-0.00002) to (4095.49998,-0.00002)
3636@ Octant WNW (1 offset), from (4095.49998,-0.00002) to (-4094.99998,0.5)
3637@ transition line 2, from (4095.49998,-0.00002) to (4094.99998,0.49998)
3638@ transition line 1, from (-4094.99998,0.5) to (-4094.99998,0.5)
3639(4095,0)(-4095,0)
3640@ Octant WSW (1 offset), from (-4094.99998,0.5) to (-4095.49998,0)
3641@ transition line 0, from (-4094.99998,0.5) to (-4094.99998,0.5)
3642@ transition line 1, from (-4094.99998,0.5) to (-4095.49998,0)
3643(-4095,1)
3644@ Octant SSW (0 offsets), from (-4095.49998,0) to (-4095.49998,0)
3645@ transition line 1, from (-4095.49998,0) to (-4095.49998,0)
3646@ Octant SSE (0 offsets), from (-4095.49998,0) to (-4095.49998,0)
3647@ transition line 0, from (-4095.49998,0) to (-4095.49998,0)
3648(-4095,0).
3649
3650{addto}
3651{(picture)shifted((0,257))}
3652! A statement can't begin with `,'.
3653<to be read again>
3654                   ,
3655l.145 ...o e3 shifted (0,257); ,
3656                                "flushed with pride"; numeric...
3657I was looking for the beginning of a new statement.
3658If you just proceed without changing anything, I'll ignore
3659everything up to the next `;'. Please insert a semicolon
3660now in front of anything that you don't want me to delete.
3661(See Chapter 27 of The METAFONTbook for an example.)
3662
3663! Extra tokens will be flushed.
3664<to be read again>
3665                   ,
3666l.145 ...o e3 shifted (0,257); ,
3667                                "flushed with pride"; numeric...
3668I've just read as much of that statement as I could fathom,
3669so a semicolon should have been next. It's very puzzling...
3670but I'll try to get myself back together, by ignoring
3671everything up to the next `;'. Please insert a semicolon
3672now in front of anything that you don't want me to delete.
3673(See Chapter 27 of The METAFONTbook for an example.)
3674
3675{numeric}
3676{def}
3677
3678f(EXPR0)(EXPR1)(EXPR2)->showdependencies;tracingcapsules:=1;showdependen
3679cies;show1/3(3,6)*(((EXPR0)+(EXPR1))+((EXPR1)-(EXPR0))),(1,1)/sqrt2zscal
3680ed((EXPR0)+1,(EXPR0)+2)-((EXPR0)+1,(EXPR0)+2)rotated45,(0,1)zscaled(1,(E
3681XPR1)+2)-(1,(EXPR1)+2)rotated90
3682{(xx)+(1)}
3683{(xx+1)/(0.3)}
3684(EXPR0)<-3.3333xx+3.3333
3685{(yy)-(1)}
3686{(yy-1)/(0.5)}
3687(EXPR1)<-2yy-2
3688(EXPR2)<-(xx,0)
3689{showdependencies}
3690alpha=0.45p3~+7
3691{tracingcapsules:=1}
3692{showdependencies}
3693xpart %CAPSULE1359=xx
3694%CAPSULE1367=2yy-2
3695%CAPSULE1375 = 3.3333xx+3.3333
3696alpha=0.45p3~+7
3697{show}
3698{(1/3)*((3,6))}
3699{(3.3333xx+3.3333)+(2yy-2)}
3700{(2yy-2)-(3.3333xx+3.3333)}
3701{(linearform)+(linearform)}
3702{((1,2))*(4yy-4)}
3703>> (4yy-4,8yy-8)
3704{sqrt(2)}
3705{((1,1))/(1.41422)}
3706{(3.3333xx+3.3333)+(1)}
3707{(3.3333xx+3.3333)+(2)}
3708{((0.7071,0.7071))zscaled((3.3333xx+4.3333,3.3333xx+5.3333))}
3709{(3.3333xx+3.3333)+(1)}
3710{(3.3333xx+3.3333)+(2)}
3711{((3.3333xx+4.3333,3.3333xx+5.3333))rotated(45)}
3712{((-0.7071,4.71399xx+6.83531))-((-0.7071,4.71399xx+6.83531))}
3713>> (0,0)
3714{(2yy-2)+(2)}
3715{((0,1))zscaled((1,2yy))}
3716{(2yy-2)+(2)}
3717{((1,2yy))rotated(90)}
3718{((-2yy,1))-((-2yy,1))}
3719>> (0,0)
3720{(1000)*(o3)}
3721{(o1)-(o2)}
3722{(4000)*(linearform)}
3723{(1000o3)-(linearform)}
3724{(4000)*(o2)}
3725{(linearform)+(4000o2)}
3726{(linearform)+(9)}
3727{(0.01)*(o3)}
3728{-(0.01o3)}
3729{(3)*(ooo)}
3730{(-0.01o3)+(3ooo)}
3731{begingroup}
3732{(o2)+(o4)}
3733{(linearform)+(o5)}
3734{(linearform)-(20)}
3735{(9/10)*(linearform)}
3736{(oo)=(linearform)}
3737## oo=0.9o5+0.9o4+0.9o2-18
3738{(0.5)*(o2)}
3739{(o1)+(0.5o2)}
3740{(8/9)*(linearform)}
3741{(o5)=(linearform)}
3742## o5=0.44444o2+0.88889o1
3743{(o4)=(linearform)}
3744## o4=0.44444o2+0.88889o1
3745{(0.0001)*(o2)}
3746{-(0.0001o2)}
3747{(o6)=(-0.0001o2)}
3748## o6=-0.0001o2
3749{showdependencies}
3750o6=-0.0001o2
3751o4=0.44444o2+0.88889o1
3752o5=0.44444o2+0.88889o1
3753oo=1.7o2+1.6o1-18
3754%CAPSULE382 = 3ooo-0.01o3
3755xpart %CAPSULE1049 = 8000o2-4000o1+1000o3+9
3756xpart %CAPSULE1383=xpart '
3757ypart %CAPSULE1383=ypart '
3758alpha=0.45p3~+7
3759{numeric}
3760### 4000o1 = -xpart %CAPSULE1049+8000o2+1000o3+9
3761### -4.87383o2 = -oo-0.0004xpart %CAPSULE1049+0.39673o3-17.99643
3762#### o6=-0.00027
3763### -0.04366o3 = -o4+0.46689oo+8.40439
3764### -o4 = -o5
3765### 0.22894o5 = -%CAPSULE382+0.10689oo+3ooo+1.92412
3766{begingroup}
3767{pair}
3768### -alfa=-xpart %CAPSULE1494
3769{endgroup}
3770{xpart((xpart %CAPSULE1494,0))}
3771### -xpart %CAPSULE17=-%CAPSULE1176
3772{endgroup}
3773{(%CAPSULE382)+(%CAPSULE1176)}
3774### -%CAPSULE382=-%CAPSULE1893+%CAPSULE1176
3775### -%CAPSULE1893=-ypart %CAPSULE1049
3776{begingroup}
3777{save}
3778{(1)-(p$)}
3779{restoring p}
3780### p$=-ypart %CAPSULE604+1
3781{endgroup}
3782{(2/3)*((-ypart %CAPSULE604+1,ypart %CAPSULE604))}
3783### ypart %CAPSULE604=-xpart %CAPSULE604+1
3784### -0.66667xpart %CAPSULE604=-xpart %CAPSULE1889
3785{-((xpart %CAPSULE1889,-xpart %CAPSULE1889+0.66667))}
3786### xpart %CAPSULE1889=-xpart %CAPSULE1172
3787{((xpart %CAPSULE1049,ypart %CAPSULE1049))=((xpart %CAPSULE1172,-xpart %
3788CAPSULE1172-0.66667))}
3789## xpart %CAPSULE1172=-ypart %CAPSULE1049-0.66667
3790## ypart %CAPSULE1049=-xpart %CAPSULE1049-0.66667
3791### -xpart %CAPSULE1049=-xpart %CAPSULE1172
3792{((xpart ',ypart '))=((xpart %CAPSULE1172,-xpart %CAPSULE1172-0.66667))}
3793## xpart %CAPSULE1172=-ypart '-0.66667
3794## xpart '=-ypart '-0.66667
3795{begingroup}
3796{(0.5)*(ooo)}
3797{begingroup}
3798{numeric}
3799### -ooo=-%CAPSULE1494
3800{endgroup}
3801{(%CAPSULE1494)+(1)}
3802### -%CAPSULE1494=-%CAPSULE1350+1
3803{(1/2)*(%CAPSULE1350)}
3804### -0.5%CAPSULE1350=-%CAPSULE1367
3805{-(%CAPSULE1367)}
3806### %CAPSULE1367=-%CAPSULE1893
3807{(2)*(%CAPSULE1893)}
3808### -2%CAPSULE1893=-%CAPSULE1885
3809{(-0.5%CAPSULE1885-0.5)=(%CAPSULE1885)}
3810## %CAPSULE1885=-0.33333
3811{(oo)=(-0.33333)}
3812## oo=-0.33333
3813{endgroup}
3814{(4000)*(-0.33333)}
3815{yoffset:=-1333.31299}
3816{xoffset:=-1333.31299}
3817{for}
3818{sqrt(-1)}
3819! Square root of -1 has been replaced by 0.
3820l.153 for @=angle(sqrt$,
3821                        mlog$):charext:=uniformdeviate$;charh...
3822Since I don't take square roots of negative numbers,
3823I'm zeroing this one. Proceed, with fingers crossed.
3824
3825{mlog(-1)}
3826! Logarithm of -1 has been replaced by 0.
3827l.153 for @=angle(sqrt$,mlog$)
3828                              :charext:=uniformdeviate$;charh...
3829Since I don't take logs of non-positive numbers,
3830I'm zeroing this one. Proceed, with fingers crossed.
3831
3832{angle((0,0))}
3833! angle(0,0) is taken as zero.
3834l.153 for @=angle(sqrt$,mlog$):
3835                               charext:=uniformdeviate$;charh...
3836The `angle' between two identical points is undefined.
3837I'm zeroing this one. Proceed, with fingers crossed.
3838
3839Runaway loop?
3840charext:=uniformdeviate$;charht:=2048;granularity:=-8; ETC.
3841! Forbidden token found while scanning the text of a for loop.
3842<inserted text>
3843                endfor
3844<to be read again>
3845                   endtext
3846l.163 ... showstats; bye endtext
3847
3848I suspect you have forgotten an `endfor',
3849causing me to read past where you wanted me to stop.
3850I'll try to recover; but if the error is serious,
3851you'd better type `E' or `X' now and fix your file.
3852
3853{loop value=0}
3854{uniformdeviate(-1)}
3855{charext:=-0.00507}
3856{charht:=2048}
3857{-(8)}
3858{granularity:=-8}
3859{addto}
3860{-(100)}
3861{-(99)}
3862Path at line 163, before choices:
3863(0,-100)..tension 500
3864 ..(100,-99)..tension 3000
3865 ..cycle
3866
3867Path at line 163, after choices:
3868(0,-100)..controls (-36.92659,-103.51175) and (136.98943,-101.7726)
3869 ..(100,-99)..controls (99.9889,-98.99916) and (0.01108,-99.99895)
3870 ..cycle
3871
3872Tracing edges at line 163: (weight 1)
3873(-3,-101)(-3,-102)(71,-102)(71,-101)(99,-101)(99,-100)(103,-100)
3874(103,-99)(48,-99)(48,-100)(-7,-100)(-7,-101).
3875
3876{tracingoutput:=0}
3877{shipout}
3878! Enormous charht has been reduced.
3879<to be read again>
3880                   ;
3881<for(0)> ...=(EXPR0);shipout.e3;
3882                                special"bye";interim.char99="...
3883<inserted text> endfor
3884
3885<to be read again>
3886                   endtext
3887l.163 ... showstats; bye endtext
3888
3889Font metric dimensions must be less than 2048pt.
3890
3891[109]
3892{special}
3893{interim}
3894! The token `char' isn't an internal quantity.
3895<to be read again>
3896                   char
3897<for(0)> ...al"bye";interim.char
3898                                99="c";true=false;[[clear(tra...
3899<inserted text> endfor
3900
3901<to be read again>
3902                   endtext
3903l.163 ... showstats; bye endtext
3904
3905Something like `tracingonline' should follow `interim'.
3906
3907{char(99)}
3908{("c")=("c")}
3909! Redundant equation.
3910<to be read again>
3911                   ;
3912<for(0)> ...;interim.char99="c";
3913                                true=false;[[clear(tracingcom...
3914<inserted text> endfor
3915
3916<to be read again>
3917                   endtext
3918l.163 ... showstats; bye endtext
3919
3920I already knew that this equation was true.
3921But perhaps no harm has been done; let's continue.
3922
3923{true}
3924{false}
3925{(true)=(false)}
3926! Inconsistent equation.
3927<to be read again>
3928                   ;
3929<for(0)> ...ar99="c";true=false;
3930                                [[clear(tracingcommands);char...
3931<inserted text> endfor
3932
3933<to be read again>
3934                   endtext
3935l.163 ... showstats; bye endtext
3936
3937The equation I just read contradicts what was said before.
3938But don't worry; continue and I'll just ignore it.
3939
3940{begingroup}
3941
3942clear(TEXT0)->interim(TEXT0):=$
3943(TEXT0)<-tracingcommands
3944{interim}
3945{tracingcommands:=-1}
3946! Enormous charht has been reduced.
3947<to be read again>
3948                   ;
3949<for(0)> ...shipout+nullpicture;
3950                                "careful"for.for=(EXPR0)step2...
3951<inserted text> endfor
3952
3953<to be read again>
3954                   endtext
3955l.163 ... showstats; bye endtext
3956
3957Font metric dimensions must be less than 2048pt.
3958
3959[0]
3960careful METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT M
3961ETAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT M
3962ETAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT M
3963ETAFONT METAFONT METAFONT METAFONT
3964{restoring tracingcommands=2.1}
3965{endgroup}
3966{scrollmode}
3967
3968{char(31)}
3969{("hello again")&("^^_")}
3970hello again^^_
3971{save}
3972### -0.45p3~=-alpha+7
3973{-(0.043)}
3974{fillin:=-0.043}
3975{def}
3976{begingroup}
3977{tracingspecs:=1}
3978{show}
3979{nullpen}
3980
3981>> Pen polygon at line 163:
3982(0,0)
3983 .. cycle
3984
3985{makepath(pen)}
3986
3987>> Path at line 163:
3988(1,-2)..controls (1,-2) and (2,-1)
3989 ..(2,-1)..controls (2,-1) and (2.5,0.5)
3990 ..(2.5,0.5)..controls (2.5,0.5) and (1,2)
3991 ..(1,2)..controls (1,2) and (0,2.5)
3992 ..(0,2.5)..controls (0,2.5) and (-1,2)
3993 ..(-1,2)..controls (-1,2) and (-2,1)
3994 ..(-2,1)..controls (-2,1) and (-2.5,-0.5)
3995 ..(-2.5,-0.5)..controls (-2.5,-0.5) and (-1,-2)
3996 ..(-1,-2)..controls (-1,-2) and (0,-2.5)
3997 ..(0,-2.5)..controls (0,-2.5) and (1,-2)
3998 ..cycle
3999
4000{(pen)rotated(1)}
4001Pen polygon at line 163 (newly created):
4002(0.97366,1.51723)
4003 .. cycle
4004
4005{makepath(pen)}
4006
4007>> Path at line 163:
4008(0.97366,1.51723)..controls (0.97366,1.51723) and (0.97366,1.51723)
4009 ..cycle
4010
4011{pencircle}
4012{makepath(future pen)}
4013Pen polygon at line 163 (newly created):
4014(0.5,-0.5)
4015 .. (0.5,0.5)
4016 .. (-0.5,0.5)
4017 .. (-0.5,-0.5)
4018 .. cycle
4019
4020{(path)rotated(-1)}
4021
4022>> Path at line 163:
4023(0.4912,-0.50865)..controls (0.4912,-0.50865) and (0.50865,0.4912)
4024 ..(0.50865,0.4912)..controls (0.50865,0.4912) and (-0.4912,0.50865)
4025 ..(-0.4912,0.50865)..controls (-0.4912,0.50865) and (-0.50865,-0.4912)
4026 ..(-0.50865,-0.4912)..controls (-0.50865,-0.4912) and (0.4912,-0.50865)
4027 ..cycle
4028
4029{addto}
4030Path at line 163, before choices:
4031(0,2){0,-4096}
4032 ..{0,-4096}(0,1){0,-4096}
4033 ..{4096,0}(3,0){4096,0}
4034 ..{4096,0}(4,0){4096,0}
4035 ..{0,-4096}cycle
4036
4037Path at line 163, after choices:
4038(0,2)..controls (0,1.66667) and (0,1.33333)
4039 ..(0,1)..controls (0,-0.20886) and (1.63324,0)
4040 ..(3,0)..controls (3.33333,0) and (3.66667,0)
4041 ..(4,0)..controls (13.63031,0) and (0,10.64238)
4042 ..cycle
4043
4044Path at line 163, before choices:
4045(0,0)
4046 ..(5,2.9)
4047 ..(4,3)
4048 ..cycle
4049
4050Path at line 163, after choices:
4051(0,0)..controls (0.9363,-8.0181) and (11.81119,0.07109)
4052 ..(5,2.9)..controls (4.68596,3.03043) and (4.33879,3.02028)
4053 ..(4,3)..controls (1.86353,2.87216) and (-0.21431,1.83528)
4054 ..cycle
4055
4056{makepen(path)}
4057Pen polygon at line 163 (newly created):
4058(5,2.9)
4059 .. (4,3)
4060 .. (0,0)
4061 .. cycle
4062
4063Path at line 163, before subdivision into octants:
4064(0,2)..controls (0,1.66667) and (0,1.33333)
4065 ..(0,1)..controls (0,-0.20886) and (1.63324,0)
4066 ..(3,0)..controls (3.33333,0) and (3.66667,0)
4067 ..(4,0)..controls (13.63031,0) and (0,10.64238)
4068 ..cycle
4069
4070Cycle spec at line 163, after subdivision and double autorounding:
4071(1.5,0.00272) % beginning in octant `SSE'
4072   ..controls (1.5,-0.49254) and (1.63411,-0.82727)
4073 ..(1.8592,-1.05237) % segment 1
4074% entering octant `ESE'
4075   ..controls (2.23936,-1.43253) and (2.87909,-1.5)
4076 ..(3.57066,-1.5) % segment 1
4077% entering octant `ENE'
4078   ..controls (3.95114,-1.5) and (4.3473,-1.47957)
4079 ..(4.72458,-1.47957) % segment 1
4080   ..controls (5.08287,-1.47957) and (5.44116,-1.47957)
4081 ..(5.79944,-1.47957) % segment 2
4082   ..controls (7.35368,-1.47957) and (8.34424,-1.12393)
4083 ..(8.90538,-0.56279) % segment 3
4084% entering octant `NNE'
4085   ..controls (9.31982,-0.14835) and (9.5,0.37819)
4086 ..(9.5,0.95631) % segment 3
4087% entering octant `NNW'
4088   ..controls (9.5,2.00116) and (8.61821,3.4318)
4089 ..(7.41951,4.6305) % segment 3
4090% entering octant `WNW'
4091   ..controls (6.32909,5.72092) and (5.11603,6.5)
4092 ..(4.2104,6.5) % segment 3
4093% entering octant `WSW'
4094   ..controls (3.64668,6.5) and (3.12122,6.31134)
4095 ..(2.68588,5.876) % segment 3
4096% entering octant `SSW'
4097   ..controls (1.97163,5.16176) and (1.5,3.78351)
4098 ..(1.5,1.485) % segment 3
4099   ..controls (1.5,0.99092) and (1.5,0.49681)
4100 ..(1.5,0.00272) % segment 0
4101 & cycle
4102
4103Tracing edges at line 163: (weight 1)
4104@ Octant SSE (0 offsets), from (1.5,0.00272) to (1.8592,-1.05237)
4105@ transition line 0, from (1.5,0.00272) to (1.5,0.00272)
4106(2,0)
4107@ Octant ESE (0 offsets), from (1.8592,-1.05237) to (3.57066,-1.5)
4108@ transition line 1, from (3.57066,-1.5) to (3.57066,-1.5)
4109@ Octant ENE (2 offsets), from (3.57066,-1.5) to (13.90538,2.3372)
4110@ transition line 0, from (3.57066,-1.5) to (3.57066,-1.5)
4111@ transition line 1, from (8.41534,-0.93503) to (13.41534,1.96497)
4112@ transition line 2, from (13.90538,2.3372) to (13.90538,2.3372)
4113(2,-1)(9,-1)(9,0)(11,0)(11,1)(13,1)
4114@ Octant NNE (0 offsets), from (13.90538,2.3372) to (14.5,3.85631)
4115@ transition line 1, from (14.5,3.85631) to (14.5,3.85631)
4116(13,2)(14,2)
4117@ Octant NNW (0 offsets), from (14.5,3.85631) to (12.41951,7.53049)
4118@ transition line 0, from (14.5,3.85631) to (14.5,3.85631)
4119(14,6)(13,6)(13,7)(12,7)
4120@ Octant WNW (2 offsets), from (12.41951,7.53049) to (8.2104,9.5)
4121@ transition line 3, from (12.41951,7.53049) to (12.41951,7.53049)
4122@ transition line 2, from (9.38113,9.39124) to (8.38113,9.49124)
4123@ transition line 1, from (8.2104,9.5) to (8.2104,9.5)
4124(12,8)(11,8)(11,9)(8,9)
4125@ Octant WSW (2 offsets), from (8.2104,9.5) to (2.68588,5.876)
4126@ transition line 0, from (8.2104,9.5) to (8.2104,9.5)
4127@ transition line 1, from (6.92668,9.08539) to (2.92668,6.08539)
4128@ transition line 2, from (2.68588,5.876) to (2.68588,5.876)
4129(8,10)(8,9)(6,9)(6,8)(5,8)(5,7)(3,7)
4130@ Octant SSW (0 offsets), from (2.68588,5.876) to (1.5,0.00272)
4131@ transition line 1, from (1.5,0.00272) to (1.5,0.00272)
4132(3,6)(2,6)(2,0).
4133
4134Path at line 163, before subdivision into octants:
4135(0,2)..controls (0,10.64238) and (13.63031,0)
4136 ..(4,0)..controls (3.66667,0) and (3.33333,0)
4137 ..(3,0)..controls (1.63324,0) and (0,-0.20886)
4138 ..(0,1)..controls (0,1.33333) and (0,1.66667)
4139 ..cycle
4140
4141Cycle spec at line 163, after subdivision and double autorounding:
4142(2.68588,5.876) % beginning in octant `ENE'
4143   ..controls (3.12122,6.31134) and (3.64668,6.5)
4144 ..(4.2104,6.5) % segment 0
4145% entering octant `ESE'
4146   ..controls (5.11603,6.5) and (6.32909,5.72092)
4147 ..(7.41953,4.63048) % segment 0
4148% entering octant `SSE'
4149   ..controls (8.61824,3.43176) and (9.5,2.00116)
4150 ..(9.5,0.95631) % segment 0
4151% entering octant `SSW'
4152   ..controls (9.5,0.37819) and (9.31982,-0.14835)
4153 ..(8.90538,-0.56279) % segment 0
4154% entering octant `WSW'
4155   ..controls (8.34425,-1.12392) and (7.35368,-1.47957)
4156 ..(5.79944,-1.47957) % segment 0
4157   ..controls (5.44116,-1.47957) and (5.08287,-1.47957)
4158 ..(4.72458,-1.47957) % segment 1
4159   ..controls (4.3473,-1.47957) and (3.95114,-1.5)
4160 ..(3.57066,-1.5) % segment 2
4161% entering octant `WNW'
4162   ..controls (2.87909,-1.5) and (2.23936,-1.43253)
4163 ..(1.85919,-1.05235) % segment 2
4164% entering octant `NNW'
4165   ..controls (1.6341,-0.82726) and (1.5,-0.49254)
4166 ..(1.5,0.00272) % segment 2
4167% entering octant `NNE'
4168   ..controls (1.5,0.49681) and (1.5,0.99092)
4169 ..(1.5,1.485) % segment 3
4170   ..controls (1.5,3.78351) and (1.97165,5.16177)
4171 ..(2.68588,5.876) % segment 0
4172 & cycle
4173
4174Tracing edges at line 163: (weight 1)
4175@ Octant ENE (2 offsets), from (7.68588,8.776) to (4.2104,6.5)
4176@ retrograde line from (7.68588,8.776) to (2.68588,5.876)
4177(7,9)(7,8)(5,8)(5,7)(4,7)
4178@ transition line 0, from (2.68588,5.876) to (2.68588,5.876)
4179@ transition line 1, from (2.68588,5.876) to (7.68588,8.776)
4180@ transition line 2, from (8.13123,9.12088) to (3.13123,6.22089)
4181@ transition line 1, from (4.2104,6.5) to (9.2104,9.4)
4182@ transition line 2, from (9.2104,9.4) to (9.2104,9.4)
4183(4,6)(4,7)(6,7)(6,8)(8,8)
4184@ retrograde line from (9.2104,9.4) to (4.2104,6.5)
4185(8,9)(8,8)(6,8)
4186@ Octant ESE (0 offsets), from (4.2104,6.5) to (7.41953,4.63048)
4187@ transition line 1, from (7.41953,4.63048) to (7.41953,4.63048)
4188(6,7)(4,7)(4,6)(6,6)
4189@ Octant SSE (0 offsets), from (7.41953,4.63048) to (9.5,0.95631)
4190@ transition line 0, from (7.41953,4.63048) to (7.41953,4.63048)
4191(6,5)(8,5)(8,3)(9,3)
4192@ Octant SSW (0 offsets), from (9.5,0.95631) to (8.90538,-0.56279)
4193@ transition line 1, from (8.90538,-0.56279) to (8.90538,-0.56279)
4194@ Octant WSW (2 offsets), from (8.90538,-0.56279) to (7.57066,1.5)
4195@ retrograde line from (8.90538,-0.56279) to (12.90538,2.43721)
4196(9,-1)(9,0)(10,0)(10,1)(12,1)
4197@ transition line 0, from (12.90538,2.43721) to (12.90538,2.43721)
4198@ transition line 1, from (12.90538,2.43721) to (8.90538,-0.56279)
4199@ transition line 2, from (8.6665,-0.76936) to (12.6665,2.23064)
4200@ transition line 1, from (7.57066,1.5) to (3.57066,-1.5)
4201@ transition line 2, from (3.57066,-1.5) to (3.57066,-1.5)
4202(12,2)(8,2)(8,1)(6,1)(6,0)(5,0)
4203@ retrograde line from (3.57066,-1.5) to (7.57066,1.5)
4204(5,-1)(5,0)(6,0)(6,1)(8,1)
4205@ Octant WNW (2 offsets), from (7.57066,1.5) to (6.85919,1.84764)
4206@ retrograde line from (7.57066,1.5) to (8.57066,1.4)
4207(8,2)
4208@ transition line 3, from (8.57066,1.4) to (8.57066,1.4)
4209@ transition line 2, from (8.57066,1.4) to (7.57066,1.5)
4210@ transition line 1, from (6.95764,1.52585) to (7.95764,1.42584)
4211@ transition line 2, from (6.85919,1.84764) to (5.85919,1.94765)
4212@ transition line 1, from (5.85919,1.94765) to (5.85919,1.94765)
4213(8,1)
4214@ retrograde line from (5.85919,1.94765) to (6.85919,1.84764)
4215@ Octant NNW (0 offsets), from (6.85919,1.84764) to (6.5,2.90271)
4216@ transition line 0, from (6.85919,1.84764) to (6.85919,1.84764)
4217(8,2)(7,2)
4218@ Octant NNE (0 offsets), from (6.5,2.90271) to (7.68588,8.776)
4219@ transition line 1, from (7.68588,8.776) to (7.68588,8.776)
4220(7,9).
4221
4222{tracingonline:=1}
4223
4224f<expr>->let)=];let[=(;show._
4225(EXPR0)<-xx
4226{let}
4227{let}
4228{show}
4229>> _1
4230{showdependencies}
4231xpart '=-ypart '-0.66667
4232{qq:=pen}
4233{showstats}
4234Memory usage 1462&588 (104 still untouched)
4235String usage 41&161 (815&7634 still untouched)
4236{[repeat the loop]}
4237! A group begun on line 163 never ended.
4238<to be read again>
4239                   endtext
4240l.163 ... showstats; bye endtext
4241
4242I saw a `begingroup' back there that hasn't been matched
4243by `endgroup'. So I've inserted `endgroup' now.
4244
4245{endgroup}
4246 )
4247(end occurred when else on line 93 was incomplete)
4248(end occurred when if on line 36 was incomplete)
4249(end occurred when elseif on line 21 was incomplete)
4250Here is how much of METAFONT's memory you used:
4251 68 strings out of 883
4252 3752 string characters out of 11386
4253 2897 words of memory out of 3001
4254 289 symbolic tokens out of 2100
4255 8i,43n,14r,8p,167b stack positions out of 30i,100n,300r,150p,500b
4256
4257(illegal design size has been changed to 128pt)
4258(some chardp values had to be adjusted by as much as 0.5pt)
4259(local label 0:: was missing)
4260(local label 5:: was missing)
4261(4 font metric dimensions had to be decreased)
4262(You used 3w,2h,16d,2i,312l,301k,1e,10p metric file positions
4263  out of 256w,16h,16d,64i,5000l,500k,256e,50p)
4264
4265Font metrics written on trap.tfm.
4266Output written on trap.72270gf (5 characters, 1028 bytes).
4267