%! % This is the prolog used by OzTeX 1.6 to convert a DVI file into PostScript. % Set dev to "LW" if LaserWriter, "LINO" if Linotronic, or "?" if unknown: /dev (?) def statusdict /product known { statusdict /product get (LaserWriter) anchorsearch { pop pop /dev (LW) def } { pop } ifelse statusdict /product get (Linotype) anchorsearch { pop pop /dev (LINO) def } { pop } ifelse } if /@setup { % set up OzTeX's coordinate system /res exch def % desired resolution (defines dots per inch) /voff exch def % vertical offset (in dots) /hoff exch def % horizontal offset (in dots) /ht exch def % paper height (in dots) /wd exch def % paper width (in dots) /land wd ht gt def % print in landscape orientation? /oshift ht res sub neg def % vertical shift (in dots) for portrait origin dev (?) eq % unknown device? { land { % landscape 90 rotate % rotate axes 90deg anticlockwise 72 res div dup neg scale % units now device dots res dup translate % move to TeX origin voff neg hoff translate % adjust TeX origin if necessary } { % portrait 72 res div dup neg scale % units now device dots res oshift translate % move to TeX origin hoff voff translate % adjust TeX origin if necessary } ifelse } if dev (LW) eq % LaserWriter? { % Display model and version in OzTeX window: % (\rmodel = ) print statusdict /product get print % (\rversion = ) print version print (\r) print flush land { % landscape 90 rotate % rotate axes 90deg anticlockwise 72 res div dup neg scale % units now device dots res dup translate % move to TeX origin voff neg hoff translate % adjust TeX origin if necessary % Model-specific adjustments to origin can be made here: statusdict /product get (LaserWriter) eq { -90 0 translate % move left a bit } { statusdict /product get (LaserWriter Plus) eq { -32 0 translate % move left a bit } { statusdict /product get (LaserWriter II NTX) eq { -20 0 translate % move left a bit } { statusdict /product get (LaserWriter IIg) eq { 0 0 translate } { % some other model 0 0 translate } ifelse } ifelse } ifelse } ifelse } { % portrait 72 res div dup neg scale % units now device dots res oshift translate % move to TeX origin hoff voff translate % adjust TeX origin if necessary % Model-specific adjustments to origin can be made here: statusdict /product get (LaserWriter) eq { 0 22 translate % move down a bit } { statusdict /product get (LaserWriter Plus) eq { 0 0 translate } { statusdict /product get (LaserWriter II NTX) eq { 0 14 translate % move down a bit } { statusdict /product get (LaserWriter IIg) eq { 0 0 translate } { % some other model 0 0 translate } ifelse } ifelse } ifelse } ifelse } ifelse % The matrix produced above can cause scaling problems, % so round each matrix value to nearest integer and use setmatrix: matrix currentmatrix dup dup 0 get round cvi 0 exch put dup dup 1 get round cvi 1 exch put dup dup 2 get round cvi 2 exch put dup dup 3 get round cvi 3 exch put dup dup 4 get round cvi 4 exch put dup dup 5 get round cvi 5 exch put setmatrix % Display new matrix in OzTeX window: % matrix currentmatrix % dup 0 get ( ) cvs print ( ) print % dup 1 get ( ) cvs print ( ) print % dup 2 get ( ) cvs print ( ) print % dup 3 get ( ) cvs print ( ) print % dup 4 get ( ) cvs print ( ) print % dup 5 get ( ) cvs print (\r) print flush % pop } if dev (LINO) eq % Linotronic? { land { % landscape 90 rotate % rotate axes 90deg anticlockwise 72 res div dup neg scale % units now device dots res dup translate % move to TeX origin voff neg hoff translate % adjust TeX origin if necessary } { % portrait newpath clippath pathbbox % push LLx LLy URx URy (URy = ht in pts) /paperht exch 72 div def % paper height in inches pop pop pop % remove URx LLy LLx 72 res div dup neg scale % units now device dots res paperht res mul neg res add translate % move to TeX origin hoff voff translate % adjust TeX origin if necessary } ifelse } if % Some fine-tuning of the code used to draw a rule is necessary. % Use page 18 in nasty.dvi to check results: dev (LW) eq % LaserWriter? { version cvr 38.0 le % early model? { land { % landscape /r % set a wd by ht rule at h,v { newpath moveto % move to h,v /ht exch 1 sub def % reduce height by 1 /wd exch 1 sub def % ditto for width wd 0 rlineto 0 ht neg rlineto wd neg 0 rlineto fill } bind def } { % portrait /r % set a wd by ht rule at h,v { newpath 1 add moveto % move to h,v+1 /ht exch 1 sub def % reduce height by 1 /wd exch 1 sub def % ditto for width wd 0 rlineto 0 ht neg rlineto wd neg 0 rlineto fill } bind def } ifelse } if version cvr 2000.0 gt % IIg or newer model? { /r % set a wd by ht rule at h,v { newpath 1 add moveto % move to h,v+1 /ht exch def % set height /wd exch def % set width wd 0 rlineto 0 ht neg rlineto wd neg 0 rlineto fill } bind def } if } if /mtrx 6 array def mtrx currentmatrix pop % save our new transformation matrix } def % end of @setup % @saveVM and @restoreVM are only used if we are conserving VM % by downloading font bitmaps more often: /@saveVM {/prefontVM save def} def /@restoreVM {prefontVM restore} def /@newfont % create new font dict { /maxchcode exch def /fontid exch def fontid 7 dict def fontid load begin /FontType 3 def /FontMatrix [1 0 0 -1 0 0] def % -1 because y scale is negative /FontBBox [0 0 1 1] def /BitMaps maxchcode 1 add array def /BuildChar {CharBuilder} def /Encoding 256 array def 0 1 255 {Encoding exch /.notdef put} for % The above 2 lines fix a definefont error that occurs on some printers % (eg. the LaserWriter NTX-J). If you have an old LaserWriter and % now get VM errors then you might want to revert to the old code: % % /Encoding maxchcode 1 add array def % 0 1 maxchcode {Encoding exch /.notdef put} for end fontid fontid load definefont pop } def % The char data, a bitmap descriptor, is an array with 6 elements; % element 0 is either a hex string or an array of hex strings (the latter % is required for large PK chars with more than 65535 hex digits): /ch-image {ch-data 0 get dup type /stringtype ne {N get /N N 1 add def} if } def % hex string /ch-width {ch-data 1 get} def % the number of pixels across /ch-height {ch-data 2 get} def % the number of pixels tall /ch-xoff {ch-data 3 get} def % number of pixels to left of origin /ch-yoff {ch-data 4 get} def % number of pixels below origin /ch-advw {ch-data 5 get} def % advance width % The following character builder looks up the char data in the BitMaps array % and paints the character: /CharBuilder % image one char { /ch-code exch def % save the char code /font-dict exch def % and the font dict /ch-data font-dict /BitMaps get ch-code get def /N 0 def ch-advw 0 ch-xoff neg ch-height ch-yoff sub 1 sub neg % -xo , -(ht-yo-1) ch-width ch-xoff sub 1 sub ch-yoff % (wd-xo-1) , yo setcachedevice ch-width ch-height true [1 0 0 -1 ch-xoff ch-yoff] % bitmap sent top to bottom {ch-image} imagemask } def /sf {setfont} def % set current font /dc % define new character { /ch-code exch def /ch-data exch def % The following code should be enabled if you have an old LaserWriter. % It attempts to overcome a bug that causes the printer to crash % and print a test page rather then report a VMerror. % % vmstatus % returns: savelevel vmused vmmax % 10000 sub gt % is vmused > (vmmax-10000)? % { pop VMERROR } % causes error message (avoiding crash) % { pop } % pop savelevel % ifelse currentfont /BitMaps get ch-code ch-data put currentfont /Encoding get ch-code dup ( ) cvs cvn put % generate unique name } bind def /@bop0 {pop} def % begin DVI page n /@bop1 % begin setting DVI page n { pop % throw away page number initgraphics % start with a clean slate mtrx setmatrix % switch to our TeX coordinate system /prepageVM save def % save state of VM at start of page } def /@eop % end DVI page n { pop % throw away page number prepageVM restore % restore VM to state at start of page showpage } def /@end { } def % end of file % h and s are used to typeset downloaded bitmap fonts: /h {exch 0 rmoveto show} bind def % move right by dh and show (...) /s {3 1 roll moveto show} bind def % move to h,v and show (...) % H and S are used to typeset PostScript fonts. % We can't use relative horizontal positioning because the advance widths in % a PostScript font are not integers and rounding errors would accumulate: /H {exch v moveto show} bind def % move to h,v and show (...) /S % ditto, and save v position { 3 1 roll 1 add % v+1 to match baseline of bitmap fonts dup /v exch def moveto show } bind def % r is used to typeset a rule: /r % set a wd by ht rule at h,v { newpath moveto % move to h,v /ht exch 1 sub def % reduce height by 1 /wd exch 1 sub def % ditto for width wd 0 rlineto 0 ht neg rlineto wd neg 0 rlineto fill } bind def % Following procedures are invoked as the result of \special{file}. % We change all scaling and graphics back to defaults, but shift the origin % to the current position on the page: /@bsp { /vmag exch def % vertical scaling /hmag exch def % horizontal scaling moveto % move to h,v gsave /prespecialVM save def % save showpage, TeX procedures etc. currentpoint transform initgraphics itransform translate hmag vmag scale land { 90 rotate } if % rotate axes if landscape /showpage { } def % user does not have to remove showpage } bind def /@esp { prespecialVM restore % restore saved showpage value etc. grestore } bind def % Following procedures are invoked as the result of \special{epsf=file}. % Note that @bepsf and @eepsf are currently identical to @bsp and @esp % but it is a good idea to allow for future changes: /@bepsf { /vmag exch def % vertical scaling /hmag exch def % horizontal scaling moveto % move to h,v gsave /prespecialVM save def % save showpage, TeX procedures etc. currentpoint transform initgraphics itransform translate hmag vmag scale land { 90 rotate } if % rotate axes if landscape /showpage { } def % user does not have to remove showpage } bind def /@eepsf { prespecialVM restore % restore saved showpage value etc. grestore } bind def % Here is the code to handle bitmaps generated by PICT/PNTG \specials: /@bitmap { /vmag exch def % vertical scaling /hmag exch def % horizontal scaling /vres exch def % vertical resolution of bitmap /hres exch def % horizontal resolution of bitmap /ht exch def % height /wd exch def % width /hexstring ht string def gsave 1 add translate % set origin to h,v+1 res hres div wd mul hmag mul res vres div ht mul vmag mul neg scale wd ht true [ wd 0 0 ht neg 0 ht ] { currentfile hexstring readhexstring pop } imagemask grestore } def % Here are the definitions needed to handle PostScript fonts: /sp % scaled pts to device dots { 16#10000 div % scaled pts to pts res mul 72.27 div % pts to device dots } bind def /PSfont { /fontname exch def % printer font name /dotsize exch def % scaled dot size /done false def % check if fontname is one of the special printer font names % appearing in the current config file's PS font list: fontname /Slanted-Times-Roman eq { /Times-Roman findfont [1 0 .167 -1 0 0] makefont dotsize scalefont setfont /done true def } if % other nice tricks can be included here if the appropriate PS font % specification is added to the current config file: % fontname /Extended-Times-Roman eq % { /Times-Roman findfont [1.2 0 0 -1 0 0] makefont % dotsize scalefont setfont % /done true def % } if done not { fontname findfont [1 0 0 -1 0 0] makefont dotsize scalefont setfont } if } bind def % count 0 gt % { (\r *** Bug in DVItoPS.ps: stuff left on stack *** \r) print flush % } if % --------------- end of OzTeX's prolog --------------- 2480 3496 0 0 300 @setup 1 @bop0 /cmr10.746 127 @newfont /cmr17.300 127 @newfont /cmr10.432 127 @newfont cmr17.300 sf [ 48 50 -4 48 49] 82 dc [<001FC00000F0780001C01C00070007000F0007801E0003C01C0001C03C0001E03C0001 E0780000F0780000F0780000F0F80000F8F80000F8F80000F8F80000F8F80000F8F80000 F8F80000F8F80000F8780000F07C0001F03C0001E03C0001E01E0003C01E0003C00F0007 8007800F0001C01C0000F07800001FC000> 32 31 -2 30 33] 111 dc [<01FC100E03301800F0300070600030E00030E00010E00010E00010F00010F800007E00 003FF0001FFF000FFFC003FFE0003FF00001F80000F880003C80003C80001CC0001CC000 1CE0001CE00018F00038F00030EC0060C301C080FE00> 24 31 -2 30 26] 115 dc [ 48 49 -4 48 50] 78 dc [<78FCFCFCFC78> 8 6 -6 5 18] 46 dc [ 72 50 -1 48 68] 87 dc [<07000F801F801F800F8007000000000000000000000000000000000000000000000001 801F80FF80FF800F80078007800780078007800780078007800780078007800780078007 800780078007800780078007800780078007800FC0FFF8FFF8> 16 48 -2 47 18] 105 dc [<01803F80FF80FF800F8007800780078007800780078007800780078007800780078007 800780078007800780078007800780078007800780078007800780078007800780078007 80078007800780078007800780078007800780078007800FC0FFFCFFFC> 16 50 -2 49 18] 108 dc [<00FE00000303C0000C00E00010007000100038003C003C003E001C003E001E003E001E 0008001E0000001E0000001E0000001E00000FFE0000FC1E0003E01E000F801E001F001E 003E001E003C001E007C001E00F8001E04F8001E04F8001E04F8003E04F8003E0478003E 047C005E043E008F080F0307F003FC03E0> 32 31 -3 30 33] 97 dc [<0180FE001FC0003F83078060F000FF8C03C1807800FF9001E2003C000FA001E4003C00 07A000F4001E0007C000F8001E0007C000F8001E00078000F0001E00078000F0001E0007 8000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E000780 00F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000 F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0001E00078000F0 001E00078000F0001E00078000F0001E000FC001F8003F00FFFC1FFF83FFF0FFFC1FFF83 FFF0> 56 31 -2 30 56] 109 dc cmr10.746 sf [ 64 71 -3 70 67] 70 dc [<01FE00003FC000FFFE001FFFC000FFFE001FFFC000FFFE001FFFC00003FE00007FC000 01FE00003FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000 FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE 00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00 001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE0000 1FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001F C00000FE00001FC00000FE00001FC00000FE00003FC00000FE00003FC00000FE00003FC0 0000FE00007FC000007E00007FC000007E0000FFC000007F0000DFC000003F0001DFE000 001F80039FF000000FC0071FFFC00007F01E1FFFC00001FFF81FFFC000003FE01FE000> 56 46 -4 44 57] 117 dc [<01FC007F800000FFFC03FFF00000FFFC0781FC0000FFFC1E00FE000003FC38007F0000 01FC70003F000000FCE0003F800000FCC0003F800000FDC0001FC00000FD80001FC00000 FF80001FC00000FF00001FC00000FF00001FC00000FF00001FC00000FE00001FC00000FE 00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00 001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE0000 1FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001F C00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC0 0000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC00000FE00001FC000 03FF80007FF000FFFFFE1FFFFFC0FFFFFE1FFFFFC0FFFFFE1FFFFFC0> 56 45 -4 44 57] 110 dc [<00007F80000003FFF000000FC0FC00003F003F00007E001F8001FC000FC003F8000FE0 07F00007F007F00003F00FE00003F81FE00003F81FC00001FC3FC00001FC3FC00001FC7F C00001FC7F800001FE7F800000FE7F800000FEFF800000FEFF800000FEFFFFFFFFFEFFFF FFFFFEFF80000000FF80000000FF80000000FF80000000FF80000000FF80000000FF8000 00007F800000007F800000007FC00000003FC00000003FC000000E3FC000000E1FE00000 1E0FE000001C0FF000003C07F000003803F800007801FC0000F000FC0001E0007F0003C0 001F8007800007E03E000001FFF80000003FC000> 40 47 -3 45 46] 101 dc [<01FE00FFFE00FFFE00FFFE0003FE0001FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0003FF80FFFFFEFFFFFEFFFF FE> 24 72 -3 71 28] 108 dc [ 104 72 -2 70 106] 87 dc [<01FE0000000000FFFE0000000000FFFE0000000000FFFE000000000003FE0000000000 01FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000 FE000000000000FE000000000000FE000000000000FE000000000000FE000000000000FE 000000000000FE000000000000FE000000000000FE000000000000FE000000000000FE00 0000000000FE000000000000FE000000000000FE000000000000FE000000000000FE0000 00000000FE000000000000FE00FF00000000FE07FFF0000000FE1F01FC000000FE78007F 000000FEF0001F800000FFE0000FC00000FFC00007E00000FF800007F00000FF000003F8 0000FF000001FC0000FE000001FE0000FE000001FE0000FE000000FF0000FE000000FF00 00FE000000FF8000FE000000FF8000FE0000007F8000FE0000007F8000FE0000007FC000 FE0000007FC000FE0000007FC000FE0000007FC000FE0000007FC000FE0000007FC000FE 0000007FC000FE0000007FC000FE0000007FC000FE0000007FC000FE0000007F8000FE00 00007F8000FE000000FF8000FE000000FF0000FE000000FF0000FE000000FF0000FE0000 01FE0000FE000001FC0000FF000003FC0000FF000003F80000FF800007F00000FFC0000F E00000F9E0001FC00000F8F0003F800000F078007E000000F01E03F8000000E00FFFE000 00000001FE000000> 56 73 -3 71 57] 98 dc [ 72 72 -3 70 77] 85 dc [<001FF8060000FFFF0E0003F007FE000F8001FE001F0000FE003E00007E003C00003E00 7C00003E007800001E00F800001E00F800000E00F800000E00FC00000E00FC00000E00FE 00000E00FF000000007FC00000007FF80000003FFFE000003FFFFE00001FFFFF800007FF FFE00003FFFFF80000FFFFFC00001FFFFE000001FFFF0000000FFF00000001FF80000000 7F80E000003FC0E000001FC0E000000FC0F000000FC0F0000007C0F0000007C0F8000007 C0F8000007C0FC00000780FC00000F80FE00000F80FE00000F00FF00001E00FF80003C00 F9E0007800F0F803F000E03FFFC000C007FC0000> 40 47 -3 45 41] 115 dc [<01FC01F800FFFC0FFE00FFFC1E1F00FFFC383F8003FC707FC001FCE07FC000FCC07FC0 00FDC07FC000FD807FC000FD803F8000FF800E0000FF00000000FF00000000FF00000000 FF00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE 00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00 000000FE00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE0000 0000FE00000000FE00000000FE00000000FE00000000FF00000003FF800000FFFFFF8000 FFFFFF8000FFFFFF8000> 40 45 -3 44 40] 114 dc [<1F003F807FC0FFE0FFE0FFE0FFF0FFF07FF03FB01F3000300030003000300070006000 60006000E000C001C001800380030007000E000C001C0038003000> 16 31 -9 71 29] 39 dc [ 88 71 -3 70 95] 77 dc [<0003FE000000001FFFC00000007E03F0000001F000FC000003C0007E00000780003F00 0007C0003F80000FF0001FC0000FF8000FE0000FF8000FE0000FF8000FE0000FF80007F0 000FF80007F00007F00007F00001C00007F00000000007F00000000007F00000000007F0 0000000007F000000001FFF00000007FFFF0000003FF87F000001FF007F000007F8007F0 0001FE0007F00003FC0007F0000FF80007F0001FF00007F0001FE00007F0003FC00007F0 007FC00007F0007F800007F01C7F800007F01CFF000007F01CFF000007F01CFF000007F0 1CFF00000FF01CFF00000FF01CFF00001FF01CFF80001BF01C7F80003BF01C3FC00071F8 381FE000E1F8380FF001C0FC7003FC0780FFE000FFFE003FC0001FF8001F80> 48 47 -4 45 52] 97 dc cmr10.432 sf [ 48 42 -1 40 45] 86 dc [<00100000700001F0000FF000FEF000F0F00000F00000F00000F00000F00000F00000F0 0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0 0000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F00000F0 0000F00001F8007FFFE07FFFE0> 24 40 -5 39 30] 49 dc [<78FCFCFCFC78> 8 6 -5 5 17] 46 dc [<007F000001C1C0000780F0000F0078000E0038001C001C003C001E003C001E003C001E 0078000F0078000F0078000F0078000F00F8000F80F8000F80F8000F80F8000F80F8000F 80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F 80F8000F8078000F0078000F0078000F0078000F003C001E003C001E003C001E001C001C 000E0038000F0078000780F00001C1C000007F0000> 32 41 -2 39 30] 48 dc [<001F000070C000E1E001C3E003C3E00381C00780800780000780000780000780000780 00078000078000078000078000FFFE00FFFE000780000780000780000780000780000780 000780000780000780000780000780000780000780000780000780000780000780000780 0007800007800007800007C000FFFE00FFFE00> 24 42 -1 41 18] 102 dc [<007F000001C1C000070070000E0038001C001C003C001E003C001E0078000F0078000F 00F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F80F8000F8078000F 0078000F003C001E003C001E001E003C000E0038000700700001C1C000007F0000> 32 26 -2 25 30] 111 dc [<0787C0FF98E0FF91F00FA1F007C1F007C0E007C0000780000780000780000780000780 0007800007800007800007800007800007800007800007800007800007800007800007C0 00FFFE00FFFE00> 24 26 -1 25 23] 114 dc [ 40 41 -2 40 39] 70 dc [<07800780FF80FF80FF80FF800F800F8007800780078007800780078007800780078007 800780078007800780078007800780078007800780078007800780078007800780078007 80078007800780078007800F8007800F800380178001C027C000E047FC003F87FC> 32 26 -1 25 33] 117 dc [<0783F800FF8C1C00FF900E000FA0070007A0078007C0078007C0078007800780078007 800780078007800780078007800780078007800780078007800780078007800780078007 80078007800780078007800780078007800780078007800780FFFCFFFCFFFCFFFC> 32 26 -1 25 33] 110 dc [<007E0003C3800700E00E00F01C00703C00783C003878003C78003CF8003CF8003CFFFF FCF80000F80000F80000F80000F800007800007C00003C00043C00041E00080E00100700 2001C0C0007F00> 24 26 -2 25 27] 101 dc [<0780FF80FF800F80078007800780078007800780078007800780078007800780078007 800780078007800780078007800780078007800780078007800780078007800780078007 800780078007800780FFFCFFFC> 16 42 -1 41 17] 108 dc [ 64 42 -1 40 61] 87 dc [<07800000FF800000FF8000000F80000007800000078000000780000007800000078000 00078000000780000007800000078000000780000007800000078000000783F000078C1C 0007B0070007A0038007C003C0078001E0078001E0078000F0078000F0078000F8078000 F8078000F8078000F8078000F8078000F8078000F8078000F0078000F0078001F0078001 E0078001C007C003C00740078007200E0006181C000407E000> 32 42 -1 41 33] 98 dc [<007F000003FFC0000701F0000C00F80010007C001C007C003E007E003E003E003E003E 001E003E000C007E0000007C0000007C00000078000000F0000000E0000001C000000700 0000FF00000001E0000000F0000000780000003C0000003E0000001F0000001F0000001F 8000001F8030001F8078001F80FC001F80FC001F80FC001F00F8001F0040003F0040003E 0030007C001800F8000F01F00003FFC000007F0000> 32 41 -2 39 30] 51 dc [ 56 41 -2 40 55] 77 dc [<01FC00000E0780001001C0003C00E0003E00F0003E0078001C00780008007800000078 000000780000007800007FF80003E078000F8078001F0078003E0078007C007800780078 20F8007820F8007820F8007820F800F8207C00F8203C013C401F063FC007F80F00> 32 26 -2 25 30] 97 dc [ 32 38 -1 25 32] 121 dc [<007F000001FFC00007C1E0000F0070001E0038001C003C003C001C0078001E0078001E 00F8000F00F8000F00F8000F00F8000F00F8000F80F8000F80F8000F80F8000F8078000F 8078001F803C001F803C001F801C002F800E004F800700CF8003810F80007E0F8000000F 0000000F0000000F0000001E0000001E0000001E0000003C001C003C003E0078003E0070 003C00E0001801C0001C0780000FFE000003F80000> 32 41 -2 39 30] 57 dc [<00FE0007FF800E07E01803F02001F82000F840007C40007CF8007EFC007EFC003EFC00 3EFC003E78007E00007E00007C00007C0000F80000F80001F00001E00003C00007800007 00000E00001C0000380000700000600000C0000180020300020600040C00041800041000 0C3FFFFC7FFFF8FFFFF8FFFFF8> 24 40 -3 39 30] 50 dc 1 @bop1 cmr17.300 sf 603 1151(Ross)s 21(N.)h 21(Williams)h cmr10.746 sf 258 823(F)s -9(unnel)h 1(W)h -9(eb)h 37(User's)h 34(Man)h -3(ual)h cmr10.432 sf 519 1343(V1.0)s 19(for)h 20(F)h -5(unnelW)h -5(eb)h 20(V3.0)h 725 1536(Ma)s -2(y)h 20(1992)h 1 @eop 2 @bop0 /cmr10.300 127 @newfont /cmsy10.300 127 @newfont cmsy10.300 sf [<0001FC0000000FFF8000003E03E00000F000780001C0001C000380000E000700000700 0E000003801C000001C018000000C038000000E030000000607000000070600000003060 00000030E000000038C000000018C000000018C000000018C000000018C000000018C000 000018C000000018E0000000386000000030600000003070000000703000000060380000 00E018000000C01C000001C00E0000038007000007000380000E0001C0001C0000F00078 00003E03E000000FFF80000001FC0000> 40 39 -2 29 42] 13 dc cmr10.300 sf [<001F808000E0618001801980070007800E0003801C0003801C00018038000180780000 807800008070000080F0000000F0000000F0000000F0000000F0000000F0000000F00000 00F0000000700000807800008078000080380000801C0001001C0001000E000200070004 000180080000E03000001FC000> 32 30 -2 28 30] 67 dc [<03F0000E1C00180600300300700380600180E001C0E001C0E001C0E001C0E001C0E001 C06001807003803003001806000E1C0003F000> 24 18 -1 17 21] 111 dc [ 24 26 -1 17 23] 112 dc [ 24 26 -1 17 22] 121 dc [ 16 18 -1 17 16] 114 dc [<18003C003C0018000000000000000000000000000000FC001C001C001C001C001C001C 001C001C001C001C001C001C001C001C001C001C00FF80> 16 29 -1 28 12] 105 dc [<00038003C4C00C38C01C3880181800381C00381C00381C00381C001818001C38000C30 0013C0001000003000001800001FF8001FFF001FFF803003806001C0C000C0C000C0C000 C06001803003001C0E0007F800> 24 28 -1 18 21] 103 dc [ 24 29 -1 28 23] 104 dc [<04000400040004000C000C001C003C00FFE01C001C001C001C001C001C001C001C001C 001C101C101C101C101C100C100E2003C0> 16 26 -1 25 16] 116 dc [<07E00C301878307870306000E000E000E000E000E000E00060007004300418080C3007 C0> 16 18 -2 17 18] 99 dc [<030007003F00C700070007000700070007000700070007000700070007000700070007 00070007000700070007000700070007000F80FFF8> 16 28 -4 27 21] 49 dc [<03C00C301818300C700C600EE006E006E007E007E007E007E0076007700F300F18170C 2707C700060006000E300C780C78187010203030C00F80> 16 29 -2 27 21] 57 dc [<07C01830201C400C400EF00FF80FF807F8077007000F000E000E001C001C0038007000 6000C00180030006010C01180110023FFE7FFEFFFE> 16 28 -2 27 21] 50 dc [ 32 29 -2 27 31] 82 dc [<1F9030704030C010C010E010F8007F803FE00FF000F880388018C018C018E010D0608F C0> 16 18 -1 17 16] 115 dc [ 32 28 -2 27 31] 78 dc [<60F0F060> 8 4 -4 3 12] 46 dc [ 40 29 -1 27 43] 87 dc [ 16 29 -1 28 12] 108 dc [<1FC000307000783800781C00301C00001C00001C0001FC000F1C00381C00701C00601C 00E01C40E01C40E01C40603C40304E801F8700> 24 18 -2 17 21] 97 dc [ 40 18 -1 17 36] 109 dc [ 24 28 -2 27 28] 80 dc [<03E00C301818300C700E6006E006FFFEE000E000E000E00060007002300218040C1803 E0> 16 18 -1 17 18] 101 dc [ 24 18 -1 17 23] 110 dc [<003F0000070000070000070000070000070000070000070000070000070000070003E7 000C1700180F00300700700700600700E00700E00700E00700E00700E00700E007006007 00700700300700180F000C370007C7E0> 24 29 -2 28 23] 100 dc [ 24 29 -1 28 22] 107 dc [ 24 29 -1 28 23] 98 dc [ 24 18 -1 17 23] 117 dc [ 24 18 -1 17 22] 118 dc [<00F8018C071E061E0E0C0E000E000E000E000E000E00FFE00E000E000E000E000E000E 000E000E000E000E000E000E000E000E000E000E007FE0> 16 29 0 28 13] 102 dc 2 @bop1 cmsy10.300 sf 372 2675(\015)s cmr10.300 sf 177 2675(Cop)s -1(yrigh)h -1(t)h 384 2674(c)s 428 2675(1992)s 12(Ross)h 14(N.)h 14(Willia)h -1(m)h -1(s.)h 177 2750(P)s -1(ermission)h 17(is)h 17(gran)h -1(ted)h 17(to)h 18(mak)h -1(e)h 15(and)h 18(distribute)h 18(v)h -1(erbatim)h 15(copies)h 18(of)h 17(this)h 18(man)h -1(ual)h 14(pro)h -1(vided)h 18(that)h 17(the)h 177 2800(cop)s -1(yrigh)h -1(t)h 14(notice)h 14(and)h 14(this)h 14(p)h 1(ermission)h 12(notice)h 15(are)h 14(preserv)h -1(ed)h 16(on)h 14(all)h 12(copies.)h 1053 2940(1)s 1772 2 177 2597 r 1772 2 177 2835 r 2 @eop 3 @bop0 3 @bop1 cmr10.300 sf 1053 2940(2)s 3 @eop 4 @bop0 /cmbx10.746 127 @newfont /cmbx10.300 127 @newfont /cmmi10.300 127 @newfont cmbx10.746 sf [<000000003FFE00000E0000000FFFFFC0001E0000007FFFFFF8003E000003FFFFFFFE00 FE00000FFFFFFFFF81FE00003FFFF800FFC3FE0000FFFF80000FF7FE0001FFFC000003FF FE0007FFF0000001FFFE000FFFC00000007FFE001FFF800000003FFE003FFF000000001F FE007FFE000000000FFE00FFFC0000000007FE01FFF80000000007FE03FFF00000000003 FE03FFF00000000001FE07FFE00000000001FE07FFE00000000000FE0FFFC00000000000 FE0FFFC000000000007E1FFFC000000000007E1FFF8000000000007E3FFF800000000000 7E3FFF8000000000003E3FFF8000000000003E7FFF8000000000003E7FFF000000000000 3E7FFF000000000000007FFF00000000000000FFFF00000000000000FFFF000000000000 00FFFF00000000000000FFFF00000000000000FFFF00000000000000FFFF000000000000 00FFFF00000000000000FFFF00000000000000FFFF00000000000000FFFF000000000000 00FFFF00000000000000FFFF00000000000000FFFF000000000000007FFF000000000000 007FFF000000000000007FFF000000000000007FFF8000000000003E3FFF800000000000 3E3FFF8000000000003E3FFF8000000000003E1FFF8000000000003E1FFFC00000000000 3E0FFFC000000000007C0FFFC000000000007C07FFE000000000007C07FFE00000000000 F803FFF00000000000F803FFF00000000001F801FFF80000000001F000FFFC0000000003 E0007FFE0000000007E0003FFF000000000FC0001FFF800000001F80000FFFC00000003F 000007FFF0000000FE000001FFFC000001FC000000FFFF80000FF80000003FFFF8007FF0 0000000FFFFFFFFFC000000003FFFFFFFF00000000007FFFFFFC00000000000FFFFFE000 00000000003FFE000000> 72 73 -7 71 86] 67 dc [<00000FFF0000000000FFFFF000000007FFFFFE0000001FFFFFFF8000003FFC03FFC000 00FFE0007FF00001FF80001FF80003FF00000FFC0007FE000007FE000FFE000007FF000F FC000003FF001FFC000003FF803FFC000003FFC03FF8000001FFC03FF8000001FFC07FF8 000001FFE07FF8000001FFE07FF8000001FFE0FFF8000001FFF0FFF8000001FFF0FFF800 0001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF8000001FFF0FFF80000 01FFF0FFF8000001FFF0FFF8000001FFF07FF8000001FFE07FF8000001FFE07FF8000001 FFE07FF8000001FFE03FFC000003FFC03FFC000003FFC01FFC000003FF801FFE000007FF 800FFE000007FF0007FF00000FFE0003FF80001FFC0001FFC0003FF80000FFE0007FF000 007FFC03FFE000001FFFFFFF80000007FFFFFE00000000FFFFF0000000000FFF000000> 56 46 -3 45 59] 111 dc [<007FC001FFC00000FFFFC00FFFF80000FFFFC03FFFFE0000FFFFC0FFFFFF0000FFFFC1 FC07FF8000FFFFC3E003FFC00003FFC7C001FFC00001FFCF0001FFE00001FFDE0000FFE0 0001FFDC0000FFE00001FFFC0000FFF00001FFF80000FFF00001FFF00000FFF00001FFF0 0000FFF00001FFF00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0 0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0 0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0 0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0 0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0 0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0 0000FFF000FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFFE0FFFFFFC07FFFFF E0FFFFFFC07FFFFFE0> 64 46 -4 45 66] 110 dc [<0001F000000001F000000001F000000001F000000001F000000001F000000003F00000 0003F000000003F000000007F000000007F000000007F00000000FF00000000FF0000000 1FF00000003FF00000003FF00000007FF0000001FFF0000003FFF000000FFFFFFFC0FFFF FFFFC0FFFFFFFFC0FFFFFFFFC0FFFFFFFFC000FFF0000000FFF0000000FFF0000000FFF0 000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF000 0000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF00000 00FFF0000000FFF0000000FFF0000000FFF0000000FFF0000000FFF001F000FFF001F000 FFF001F000FFF001F000FFF001F000FFF001F000FFF001F000FFF001F000FFF001F0007F F001E0007FF803E0003FF803E0003FFC07C0001FFE0F80000FFFFF800007FFFE000001FF FC0000001FF000> 40 66 -2 65 46] 116 dc [<00001FFE00000001FFFFE0000007FFFFF800001FFFFFFE00007FFC07FF0000FFE001FF 8001FFC0007FC003FF80003FE007FF00003FF00FFE00001FF01FFE00000FF81FFC00000F F83FFC00000FFC3FFC000007FC7FFC000007FC7FF8000007FC7FF8000007FE7FF8000007 FEFFF8000007FEFFF8000007FEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFFFEFFFFFFFFFF FCFFF800000000FFF800000000FFF800000000FFF8000000007FF8000000007FF8000000 007FFC000000003FFC000000003FFC000000003FFC0000001C1FFE0000003E0FFE000000 3E07FF0000007E07FF000000FC03FF800001F801FFC00003F0007FF0001FE0003FFE00FF C0001FFFFFFF800007FFFFFE000000FFFFF80000000FFF8000> 48 46 -3 45 54] 101 dc [<000FFF00E0007FFFF3E001FFFFFFE007FFFFFFE00FF800FFE01FC0001FE03F80000FE0 3F000007E07F000003E07F000003E0FF000003E0FF000003E0FF800003E0FFC0000000FF F0000000FFFE000000FFFFF800007FFFFFC0007FFFFFF0003FFFFFFC001FFFFFFF000FFF FFFF8007FFFFFFC003FFFFFFE000FFFFFFF0003FFFFFF00003FFFFF800001FFFF8000000 FFFC0000001FFC7800000FFCF8000007FCF8000003FCFC000003FCFC000003FCFE000003 F8FE000003F8FF000003F8FF800007F0FFC0000FF0FFF0001FE0FFFC00FFC0FFFFFFFF80 FC7FFFFE00F81FFFF800E003FF8000> 40 46 -4 45 47] 115 dc cmbx10.300 sf [ 32 28 -2 27 33] 80 dc [ 24 18 -1 17 20] 114 dc [<01FC000F07001C03803C01C07801C07801E0F801E0F801E0FFFFE0F80000F80000F800 007800007C00603C00601E00C00F038001FC00> 24 18 -1 17 22] 101 dc [<007F0001E38003C7C00787C00F87C00F83800F80000F80000F80000F80000F8000FFF8 00FFF8000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80 000F80000F80000F80007FF8007FF800> 24 29 0 28 15] 102 dc [<0FF8001C1E003E0F803E07803E07C01C07C00007C0007FC007E7C01F07C03C07C07C07 C0F807C0F807C0F807C0780BC03E13F80FE1F8> 24 18 -1 17 23] 97 dc [<03FC000E0E001C1F003C1F00781F00780E00F80000F80000F80000F80000F80000F800 007800007801803C01801C03000E0E0003F800> 24 18 -2 17 21] 99 dc [<03F8000FFE001E0F003C07807807807803C0F803C0F803C0F803E0F803E0F803E0F803 E07807E03807E03C0BE00E1BE003E3E00003E00003C00003C03807C07C07807C0700780F 00383C001FF8000FE000> 24 27 -2 26 24] 57 dc [<00038000000380000007C0000007C0000007C000000FE000000FE000001FF000001BF0 00001BF0000031F8000031F8000061FC000060FC0000E0FE0000C07E0000C07E0001803F 0001FFFF0003FFFF8003001F8003001F8006000FC006000FC00E000FE00C0007E0FFC07F FEFFC07FFE> 32 28 -2 27 36] 65 dc [ 24 29 -1 28 25] 107 dc [ 24 18 -1 17 27] 110 dc [<01FC000F07801C01C03C01E07800F07800F0F800F8F800F8F800F8F800F8F800F8F800 F87800F07800F03C01E01E03C00F078001FC00> 24 18 -1 17 24] 111 dc [ 32 18 -1 17 34] 119 dc [ 16 29 -1 28 14] 108 dc [<000FF0000FF00001F00001F00001F00001F00001F00001F00001F00001F00001F001F9 F00F07F01C03F03C01F07801F07801F0F801F0F801F0F801F0F801F0F801F0F801F07801 F07801F03C01F01C03F00F0FFE03F9FE> 24 29 -2 28 27] 100 dc [<03F8F00E0F381E0F381C07303C07803C07803C07803C07801C07001E0F000E0E001BF8 001000001800001800001FFF001FFFC00FFFE01FFFF07801F8F00078F00078F000787000 707800F01E03C007FF00> 24 27 -1 17 24] 103 dc [ 40 18 -1 17 40] 109 dc [<0300030003000300070007000F000F003FFCFFFC1F001F001F001F001F001F001F001F 001F001F0C1F0C1F0C1F0C0F08079803F0> 16 26 -1 25 19] 116 dc [<1FD830786018E018E018F000FF807FE07FF01FF807FC007CC01CC01CE01CE018F830CF C0> 16 18 -2 17 19] 115 dc [<00600001E0000FE000FFE000F3E00003E00003E00003E00003E00003E00003E00003E0 0003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E00003E0 0003E0007FFF807FFF80> 24 27 -3 26 24] 49 dc [<1E003F003F003F003F001E00000000000000000000000000FF00FF001F001F001F001F 001F001F001F001F001F001F001F001F001F001F00FFE0FFE0> 16 30 -1 29 14] 105 dc [ 32 28 -2 27 37] 78 dc [<03F8001FFE003C1F003C0F807C07C07E07C07C07C03807C0000F80000F80001E00003C 0003F800001E00000F800007C00007C00007E03007E07807E0FC07E0FC07E0FC07C0780F 80781F001FFE0007F800> 24 27 -2 26 24] 51 dc [<7FFFFFE07FFFFFE0781F81E0701F80E0601F8060E01F8070C01F8030C01F8030C01F80 30C01F8030001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F80 00001F8000001F8000001F8000001F8000001F8000001F8000001F8000001F800007FFFE 0007FFFE00> 32 28 -2 27 33] 84 dc [ 24 18 -1 17 27] 117 dc [ 16 28 -1 27 18] 73 dc [<1801801FFF001FFE001FFC001FF8001FC00018000018000018000018000019F8001E0E 00180F801007800007C00007E00007E00007E07807E0F807E0F807E0F807C0F007C0600F 80381F001FFE0007F000> 24 27 -2 26 24] 53 dc cmr10.300 sf [ 24 28 -2 27 26] 76 dc [<0FE03038401CE00EF00EF00EF00E000C001C0030006000C00080018001000100010001 0001000100000000000000000000000300078007800300> 16 29 -2 28 20] 63 dc [<300C3FF83FF03FC020002000200020002000200023E024302818301C200E000E000F00 0F000F600FF00FF00FF00F800E401E401C2038187007C0> 16 29 -2 27 21] 53 dc [ 24 28 -2 27 27] 70 dc [<03E00C301008200C20066006600660067006780C3E083FB01FE007F007F818FC307E60 1E600FC007C003C003C003C00360026004300C1C1007E0> 16 29 -2 27 21] 56 dc [<07E01830201C201C781E780E781E381E001C001C00180030006007E00030001C001C00 0E000F000F700FF80FF80FF80FF00E401C201C183007E0> 16 29 -2 27 21] 51 dc [<7FFFFFC0700F01C0600F00C0400F0040400F0040C00F0020800F0020800F0020800F00 20000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F00 00000F0000000F0000000F0000000F0000000F0000000F0000000F0000000F0000001F80 0003FFFC00> 32 28 -1 27 30] 84 dc [<000C00000C00001C00003C00003C00005C0000DC00009C00011C00031C00021C00041C 000C1C00081C00101C00301C00201C00401C00C01C00FFFFC0001C00001C00001C00001C 00001C00001C00001C0001FFC0> 24 28 -1 27 21] 52 dc [<000600000006000000060000000F0000000F0000000F00000017800000178000001780 000023C0000023C0000023C0000041E0000041E0000041E0000080F0000080F0000180F8 000100780001FFF80003007C0002003C0002003C0006003E0004001E0004001E000C001F 001E001F00FF80FFF0> 32 29 -1 28 31] 65 dc [ 32 28 -2 27 31] 72 dc [ 32 28 -2 27 32] 68 dc [<03C00C301818300C300C700E60066006E007E007E007E007E007E007E007E007E007E0 07E007E007E00760066006700E300C300C18180C3007E0> 16 29 -2 27 21] 48 dc [<00F0030C06040C0E181E301E300C700070006000E3E0E430E818F00CF00EE006E007E0 07E007E007E007600760077006300E300C18180C3003E0> 16 29 -2 27 21] 54 dc [ 40 28 -2 27 38] 77 dc [<07E0801C1980300580700380600180E00180E00080E00080E00080F00000F800007C00 007FC0003FF8001FFE0007FF0000FF80000F800007C00003C00001C08001C08001C08001 C0C00180C00180E00300D00200CC0C0083F800> 24 30 -2 28 23] 83 dc [ 16 28 -1 27 15] 73 dc [<7FFC70386038407040F040E041C003C0038007000F040E041C043C0C380870087038FF F8> 16 18 -1 17 18] 122 dc [ 24 28 -2 27 28] 69 dc [<7F8FF00F03800F030007020003840001C80001D80000F00000700000780000F800009C 00010E00020E000607000403801E07C0FF0FF8> 24 18 0 17 22] 120 dc [<4000007FFF807FFF007FFF004002008004008004008008000010000010000020000060 0000400000C00000C00001C0000180000180000380000380000380000380000780000780 00078000078000078000078000030000> 24 29 -2 27 21] 55 dc [<003F800000E0E0000380380007001C000E000E001C0007003C00078038000380780003 C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001 E0F00001E0700001C0780003C0780003C0380003803C0007801C0007000E000E0007001C 000380380000E0E000003F8000> 32 30 -2 28 32] 79 dc [ 32 18 -1 17 30] 119 dc [ 32 29 -2 27 31] 85 dc cmmi10.300 sf [<60F0F060> 8 4 -4 3 12] 58 dc 4 @bop1 cmbx10.746 sf 177 401(Con)s -3(ten)h -3(ts)h cmbx10.300 sf 177 687(Preface)s 1592(9)h 177 808(Ac)s -1(kno)h -1(wledgemen)h -2(ts)h 1325(11)h 177 928(Presen)s -1(tati)h -1(on)h 13(Notes)h 1323(13)h 177 1048(1)s 38(A)h 16(T)h -4(utorial)h 14(In)h -1(tro)h 1(duct)h -1(ion)h 1160(15)h cmr10.300 sf 239 1126(1.1)s 42(What)h 13(is)h 14(Literate)h 15(Programm)h -1(i)h -1(ng?)h 987(15)h 239 1204(1.2)s 42(What)h 13(is)h 14(F)h -3(unnelW)h -3(eb?)h 1190(18)h 239 1281(1.3)s 42(The)h 14(Name)h 13(F)h -3(unnelW)h -3(eb)h 1164(19)h 239 1359(1.4)s 42(A)h 14(F)h -3(unnelW)h -3(eb)h 13(T)h -3(utorial)h 1162(19)h 239 1437(1.5)s 42(A)h 14(Hello)h 13(W)h -3(orld)h 13(Do)h 1(cumen)h -1(t)h 1108(20)h 239 1514(1.6)s 42(Macro)h 14(F)h -3(acilities)h 1283(22)h 335 1592(1.6.1)s 46(Simple)h 12(Macros)h 1173(22)h 335 1670(1.6.2)s 46(Num)h -1(b)h 1(er)h 13(of)h 13(Times)h 13(Called)h 991(23)h 335 1747(1.6.3)s 46(Inden)h -1(tation)h 1229(25)h 335 1825(1.6.4)s 46(Additiv)h -1(e)h 13(Macros)h 1140(26)h 335 1903(1.6.5)s 46(P)h -1(arameterized)h 14(Macros)h 1035(28)h 335 1980(1.6.6)s 46(Macro)h 14(Expansion)h 1122(30)h 335 2058(1.6.7)s 46(Include)h 14(Files)h 1208(30)h 239 2136(1.7)s 42(T)h -1(yp)h 1(esetting)h 15(F)h -3(acilities)h 1181(32)h 335 2213(1.7.1)s 46(Ov)h -1(erview)h 1270(32)h 335 2291(1.7.2)s 46(T)h -1(yp)h 1(esetter)h 16(Indep)h 1(endence)h 986(34)h 335 2369(1.7.3)s 46(Hierarc)h -1(hical)h 14(Structure)h 1039(34)h 335 2446(1.7.4)s 46(Understanding)h 14(the)h 15(Prin)h -1(ted)h 14(Do)h 1(cumen)h -1(tation)h 658(35)h 335 2524(1.7.5)s 46(Literals)h 14(and)h 13(Emphasis)h 1033(37)h 335 2602(1.7.6)s 46(Adding)h 13(a)h 14(Header)h 15(P)h -1(age)h 1029(37)h 335 2679(1.7.7)s 46(Comm)h -1(en)h -1(ts)h 1245(37)h 239 2757(1.8)s 42(A)h 14(Complete)h 13(Example)h 1180(38)h 239 2835(1.9)s 42(Summ)h -1(ary)h 1396(39)h 1053 2940(3)s cmmi10.300 sf 930 1126(:)s 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 1204(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 1281(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 1359(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 833 1437(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 640 1514(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 1592(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 930 1670(:)s 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 704 1747(:)s 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 1825(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 898 1903(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 1980(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 2058(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 2136(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 672 2213(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 962 2291(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 898 2369(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1285 2446(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 898 2524(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 898 2602(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 672 2679(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 2757(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 543 2835(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 4 @eop 5 @bop0 cmbx10.300 sf [<07F8001FFE00383F80780FC0FC07C0FC07E0FC03E0FC03E07803E00007E00007C00007 C0000F80001F00001E0000380000700000E0000180600300600600600800E01FFFC03FFF C07FFFC0FFFFC0FFFFC0> 24 27 -2 26 24] 50 dc [ 32 28 -2 27 30] 70 dc [ 48 28 -1 27 49] 87 dc [ 24 29 -1 28 27] 98 dc [ 32 28 -2 27 37] 72 dc [<000180000380000780000F80001F80003F80006F8000CF80008F80018F80030F80060F 800C0F80180F80300F80600F80C00F80FFFFF8FFFFF8000F80000F80000F80000F80000F 80000F8001FFF801FFF8> 24 27 -1 26 24] 52 dc [ 32 28 -2 27 37] 68 dc [<003FC00001F0300003C0380007C07C000F807C000F807C000F8038000F8000000F8000 000F8000000F800000FFFFFC00FFFFFC000F807C000F807C000F807C000F807C000F807C 000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C 007FE1FF807FE1FF80> 32 29 0 28 27] 12 dc [<007E0003FF000781800F03C01E07C03C07C03C0380780000780000F80000F8F800FB0E 00FA0780FC0380FC03C0F803E0F803E0F803E0F803E07803E07803E07803C03C03C03C07 801E0F0007FE0003F800> 24 27 -2 26 24] 54 dc cmr10.300 sf [<003F800000E0E0000380380007001C000E000E001C0007003C00078038000380780003 C0780003C0700001C0F00001E0F00001E0F00001E0F00001E0F00001E0F00001E0F00001 E0F00001E0700001C0780003C0780003C0380003803C0E07801C1107000E208E0007205C 0003A0780000F0E020003FE0200000602000003060000038E000003FC000003FC000001F 8000000F00> 32 37 -2 28 32] 81 dc [<003F07E00001C09C18000380F018000701F03C000E01E03C000E00E018000E00E00000 0E00E000000E00E000000E00E000000E00E00000FFFFFFFC000E00E01C000E00E01C000E 00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00 E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C007FC7FC FF80> 40 29 0 28 35] 14 dc [ 24 28 -2 27 29] 66 dc [<001F808000E0618001801980070007800E0003801C0003801C00018038000180780000 807800008070000080F0000000F0000000F0000000F0000000F0000000F0000000F000FF F0F0000F80700007807800078078000780380007801C0007801C0007800E00078007000B 800180118000E06080001F8000> 32 30 -2 28 33] 71 dc [<03C1000C3300180B00300F00700700700700E00700E00700E00700E00700E00700E007 00600700700700300F00180F000C370007C7000007000007000007000007000007000007 00000700003FE0> 24 26 -2 17 22] 113 dc 5 @bop1 cmbx10.300 sf 177 42(2)s 38(F)h -4(unnelW)h -4(eb)h 14(Hin)h -1(ts)h 1296(41)h 177 1719(3)s 38(F)h -4(unnelW)h -4(eb)h 14(De\014nit)h -1(i)h -1(on)h 1202(63)h cmr10.300 sf 239 116(2.1)s 42(Macro)h 14(Names)h 1322(41)h 239 190(2.2)s 42(Quic)h -1(k)h 14(Names)h 1330(42)h 239 265(2.3)s 42(F)h -3(unnelW)h -3(eb)h 13(the)h 15(Martinet)h 1123(42)h 239 339(2.4)s 42(Fiddling)h 12(With)h 14(End)h 14(of)h 13(Lines)h 1069(43)h 239 413(2.5)s 42(F)h -3(udging)h 13(Conditionals)h 1182(44)h 239 488(2.6)s 42(Changing)h 13(the)h 14(Strength)h 15(of)h 13(Headings)h 931(46)h 239 562(2.7)s 42(E\016ciency)h 14(Notes)h 1282(47)h 239 636(2.8)s 42(In)h -1(teractiv)h -1(e)h 15(Mo)h 1(de)h 1263(47)h 239 711(2.9)s 42(Setting)h 14(Up)h 14(Default)h 13(Options)h 1070(49)h 239 785(2.10)s 21(F)h -3(unnelW)h -3(eb)h 13(and)h 14(Mak)h -1(e)h 1176(49)h 239 860(2.11)s 21(The)h 14(Dangers)h 14(of)h 14(F)h -3(unnelW)h -3(eb)h 1074(50)h 239 934(2.12)s 21(Wholistic)h 13(Debugging)h 1192(53)h 239 1008(2.13)s 21(Examples)h 13(of)h 13(F)h -3(unnelW)h -3(eb)h 13(Applications)h 891(53)h 335 1083(2.13.1)s 25(Analyzing)h 13(the)h 14(Monster)h 15(P)h -1(ostscript)h 15(Header)h 15(File)h 602(54)h 335 1157(2.13.2)s 25(Making)h 13(Ada)h 13(ADTs)h 14(more)h 13(A)h 943(55)h 335 1231(2.13.3)s 25(Multiple)h 13(Language)h 13(Systems)h 938(55)h 335 1306(2.13.4)s 25(The)h 14(Case)h 14(of)h 14(the)h 14(Small)h 12(F)h -3(unction)h 860(56)h 335 1380(2.13.5)s 25(When)h 14(Comm)h -1(en)h -1(ts)h 12(are)h 15(Bad)h 969(57)h 335 1455(2.13.6)s 25(Do)h 1(cumen)h -1(ts)h 13(That)h 14(Share)h 14(T)h -3(ext)h 921(58)h 335 1529(2.13.7)s 25(Generics)h 1285(59)h 239 1603(2.14)s 21(Summ)h -1(ary)h 1396(62)h 239 1793(3.1)s 42(In)h -1(tro)h 1(duction)h 1345(63)h 239 1868(3.2)s 42(Notation)h 1411(63)h 239 1942(3.3)s 42(T)h -3(erminolo)h -1(gy)h 1344(63)h 239 2017(3.4)s 42(An)h 14(Arc)h -1(hitectural)h 15(Ov)h -1(erview)h 1081(64)h 239 2091(3.5)s 42(Diagnostics)h 1364(65)h 239 2165(3.6)s 42(T)h -1(yp)h 1(esetter)h 16(Indep)h 1(endence)h 1119(65)h 239 2240(3.7)s 42(Comm)h -1(and)h 12(Line)h 13(In)h -1(terface)h 1122(66)h 335 2314(3.7.1)s 46(In)h -1(v)h -1(oking)h 12(F)h -3(unnelW)h -3(eb)h 1066(66)h 335 2388(3.7.2)s 46(Comm)h -1(a)h -1(nd)h 12(Line)h 14(Argumen)h -1(ts)h 947(67)h 335 2463(3.7.3)s 46(Options)h 1296(68)h 239 2537(3.8)s 42(File)h 13(Name)h 13(Inheritance)h 1168(70)h 239 2612(3.9)s 42(F)h -3(unnelW)h -3(eb)h 13(Startup)h 1217(70)h 239 2686(3.10)s 21(Scanner)h 1430(71)h 335 2760(3.10.1)s 25(Basic)h 14(Input)h 14(File)h 14(Pro)h 1(cessing)h 942(71)h 335 2835(3.10.2)s 25(Sp)h 1(ecial)h 14(Sequences)h 1118(72)h 1053 2940(4)s cmmi10.300 sf 607 116(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 607 190(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 265(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 866 339(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 413(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 995 488(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 640 562(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 672 636(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 866 711(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 785(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 866 860(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 934(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1027 1008(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1318 1083(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 995 1157(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 995 1231(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1059 1306(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 962 1380(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1027 1455(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 640 1529(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 543 1603(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 575 1793(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 510 1868(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 575 1942(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 866 2017(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 575 2091(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 833 2165(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 2240(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 866 2314(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 995 2388(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 640 2463(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 2537(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 704 2612(:)s 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 510 2686(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 995 2760(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 833 2835(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 5 @eop 6 @bop0 cmr10.300 sf [ 32 29 -1 27 31] 86 dc [<00030003000700060006000E000C001C0018001800380030003000700060006000E000 C000C001C001800380030003000700060006000E000C000C001C00180018003800300070 0060006000E000C000C000> 16 41 -2 30 21] 47 dc 6 @bop1 cmr10.300 sf 335 42(3.10.3)s 25(Setting)h 14(the)h 14(Sp)h 1(ecial)h 14(Character)h 904(74)h 335 115(3.10.4)s 25(Inserting)h 14(the)h 15(Sp)h 1(ecial)h 14(Character)h 14(in)h -1(to)h 14(the)h 14(T)h -3(ext)h 619(74)h 335 189(3.10.5)s 25(Inserting)h 14(Arbitrary)h 14(Characters)h 16(in)h -1(to)h 13(the)h 14(T)h -3(ext)h 629(74)h 335 262(3.10.6)s 25(Comm)h -1(en)h -1(ts)h 1245(75)h 335 336(3.10.7)s 25(Quic)h -1(k)h 14(Names)h 1197(76)h 335 409(3.10.8)s 25(Inserting)h 14(End)h 14(of)h 14(Line)h 14(Mark)h -1(ers)h 890(76)h 335 483(3.10.9)s 25(Suppressing)h 15(End)h 14(of)h 13(Line)h 14(Mark)h -1(ers)h 836(77)h 335 556(3.10.10)s 4(Include)h 14(Files)h 1208(77)h 335 630(3.10.11)s 4(Pragmas)h 1280(78)h 468 703(3.10.11.)s -1(1)h 9(Inden)h -1(tation)h 1059(78)h 468 777(3.10.11.)s -1(2)h 9(Maxim)h -1(um)h 10(Input)h 14(Line)h 14(Length)h 738(79)h 468 850(3.10.11.)s -1(3)h 9(Maxim)h -1(um)h 10(Output)h 15(File)h 13(Line)h 14(Length)h 622(79)h 468 924(3.10.11.)s -1(4)h 9(T)h -1(yp)h 1(esetter)h 1076(80)h 335 997(3.10.12)s 4(F)h -3(reestanding)h 14(T)h -1(yp)h 1(esetter)h 16(Directiv)h -1(es)h 806(81)h 468 1071(3.10.12.)s -1(1)h 9(New)h 14(P)h -1(age)h 1089(81)h 468 1144(3.10.12.)s -1(2)h 9(T)h -3(able)h 13(of)h 13(Con)h -1(ten)h -1(ts)h 947(81)h 468 1218(3.10.12.)s -1(3)h 9(V)h -3(ertical)h 14(Skip)h 1034(81)h 468 1291(3.10.12.)s -1(4)h 9(Title)h 1181(82)h 335 1365(3.10.13)s 4(Scanner/P)h -1(arser)h 16(In)h -1(terface)h 989(82)h 239 1438(3.11)s 21(P)h -1(arser)h 1458(82)h 335 1512(3.11.1)s 25(High)h 13(Lev)h -1(el)h 14(Structure)h 1061(82)h 335 1585(3.11.2)s 25(F)h -3(ree)h 14(T)h -3(ext)h 1266(83)h 335 1659(3.11.3)s 25(T)h -1(yp)h 1(esetter)h 16(Directiv)h -1(es)h 1051(83)h 468 1732(3.11.3.)s -1(1)h 30(Section)h 1138(83)h 468 1806(3.11.3.)s -1(2)h 30(Literal)h 13(Directiv)h -1(e)h 972(84)h 468 1879(3.11.3.)s -1(3)h 30(Emphasis)h 13(Directiv)h -1(e)h 918(85)h 335 1953(3.11.4)s 25(Macros)h 1309(85)h 468 2026(3.11.4.)s -1(1)h 30(Names)h 1147(86)h 468 2100(3.11.4.)s -1(2)h 30(F)h -3(ormal)h 11(P)h -1(arameter)h 14(Lists)h 839(86)h 335 2173(3.11.5)s 25(Expressions)h 1228(86)h 335 2247(3.11.6)s 25(Macro)h 14(Calls)h 1220(86)h 335 2320(3.11.7)s 25(F)h -3(ormal)h 11(P)h -1(arameters)h 1093(87)h 335 2394(3.11.8)s 25(Macros)h 14(are)h 15(Static)h 1119(87)h 239 2467(3.12)s 21(Analyser)h 1413(88)h 239 2541(3.13)s 21(T)h -3(angle)h 1450(88)h 239 2614(3.14)s 21(W)h -3(ea)h -1(v)h -1(e)h 1455(89)h 335 2688(3.14.1)s 25(T)h -3(arget)h 13(T)h -1(yp)h 1(esetter)h 1114(89)h 335 2761(3.14.2)s 25(Cross)h 14(Reference)h 16(Num)h -1(b)h 1(ering)h 934(89)h 239 2835(3.15)s 21(F)h -3(unnelW)h -3(eb)h 13(Shell)h 1267(90)h 1053 2940(5)s cmmi10.300 sf 1027 42(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1318 115(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1318 189(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 672 262(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 336(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1059 409(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1092 483(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 556(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 640 630(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 866 703(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1188 777(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1318 850(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 866 924(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1124 997(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 833 1071(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 995 1144(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 898 1218(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 1291(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 930 1365(:)s 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 478 1438(:)s 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 866 1512(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 672 1585(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 898 1659(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 1732(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 962 1806(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1027 1879(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 640 1953(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 2026(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1092 2100(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 704 2173(:)s 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 704 2247(:)s 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 833 2320(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 2394(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 510 2467(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 478 2541(:)s 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 478 2614(:)s 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 833 2688(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 995 2761(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 672 2835(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 6 @eop 7 @bop0 cmbx10.300 sf [<03F8000F1E001C07003C07803803807803C07803C07803C0F803E0F803E0F803E0F803 E0F803E0F803E0F803E0F803E0F803E0F803E0F803E0F803E07803C07803C03803803C07 801C07000F1E0003F800> 24 27 -2 26 24] 48 dc cmr10.300 sf [<007E0001C1800301800703C00E03C00E01800E00000E00000E00000E00000E0000FFFF C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 C00E01C00E01C00E01C00E01C07F87F8> 24 29 0 28 23] 12 dc [<007E1F0001C1B1800303E3C00703C3C00E03C1800E01C0000E01C0000E01C0000E01C0 000E01C0000E01C000FFFFFC000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0 000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0000E01C0 000E01C0007F87FC00> 32 29 0 28 24] 11 dc 7 @bop1 cmbx10.300 sf 177 2388(4)s 38(F)h -4(unnelW)h -4(eb)h 14(Installat)h -1(ion)h 1147(101)h cmr10.300 sf 335 42(3.15.1)s 25(In)h -1(tro)h 1(duction)h 1212(90)h 335 116(3.15.2)s 25(Return)h 14(Statuses)h 1149(90)h 335 190(3.15.3)s 25(Comm)h -1(a)h -1(nd)h 12(Line)h 14(Length)h 1019(91)h 335 265(3.15.4)s 25(String)h 13(Substitution)h 1091(91)h 335 339(3.15.5)s 25(Ho)h -1(w)h 13(a)h 14(Comm)h -1(and)h 12(Line)h 13(is)h 14(Pro)h 1(cesse)h 1(d)h 799(92)h 335 413(3.15.6)s 25(Options)h 1296(92)h 335 488(3.15.7)s 25(Shell)h 13(Comm)h -1(ands)h 1133(93)h 468 562(3.15.7.)s -1(1)h 30(Absen)h -1(t)h 1143(93)h 468 636(3.15.7.)s -1(2)h 30(Co)h 1(dify)h 1147(93)h 468 711(3.15.7.)s -1(3)h 30(Compare)h 1104(93)h 468 785(3.15.7.)s -1(4)h 30(De\014ne)h 1155(94)h 468 860(3.15.7.)s -1(5)h 30(Di\013)h 1201(94)h 468 934(3.15.7.)s -1(6)h 30(Di\013summ)h -1(ary)h 1032(95)h 468 1008(3.15.7.)s -1(7)h 30(Di\013zero)h 1128(95)h 468 1083(3.15.7.)s -1(8)h 30(Eneo)h 1179(95)h 468 1157(3.15.7.)s -1(9)h 30(Execute)h 1126(96)h 468 1231(3.15.7.)s -1(10)h 9(Exists)h 1159(96)h 468 1306(3.15.7.)s -1(11)h 9(Fixeols)h 1141(96)h 468 1380(3.15.7.)s -1(12)h 9(Fw)h 1212(97)h 468 1455(3.15.7.)s -1(13)h 9(Help)h 1185(97)h 468 1529(3.15.7.)s -1(14)h 9(Here)h 1186(98)h 468 1603(3.15.7.)s -1(15)h 9(Quit)h 1186(98)h 468 1678(3.15.7.)s -1(16)h 9(Set)h 1212(98)h 468 1752(3.15.7.)s -1(17)h 9(Sho)h -1(w)h 1173(98)h 468 1826(3.15.7.)s -1(18)h 9(Skipto)h 1152(98)h 468 1901(3.15.7.)s -1(19)h 9(Status)h 1154(99)h 468 1975(3.15.7.)s -1(20)h 9(T)h -3(olerate)h 1100(100)h 468 2049(3.15.7.)s -1(21)h 9(T)h -3(race)h 1149(100)h 468 2124(3.15.7.)s -1(22)h 9(W)h -3(rite)h 1147(100)h 468 2198(3.15.7.)s -1(23)h 9(W)h -3(riteu)h 1124(100)h 239 2273(3.16)s 21(Concluding)h 13(Remarks)h 1173(100)h 239 2463(4.1)s 42(Obtaining)h 13(a)h 14(Cop)h -1(y)h 13(of)h 13(F)h -3(unnelW)h -3(eb)h 962(101)h 239 2537(4.2)s 42(Establishing)h 13(The)h 15(Directory)h 14(T)h -3(ree)h 966(102)h 335 2612(4.2.1)s 46(Admin)h 12(Directory)h 1111(102)h 335 2686(4.2.2)s 46(Answ)h -1(ers)h 15(Directory)h 1084(102)h 335 2760(4.2.3)s 46(Hac)h -1(kman)h 12(Directory)h 1065(103)h 335 2835(4.2.4)s 46(Results)h 14(Directory)h 1102(103)h 1053 2940(6)s cmmi10.300 sf 736 42(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 116(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 930 190(:)s 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 833 265(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1124 339(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 640 413(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 488(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 562(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 636(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 833 711(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 785(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 860(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 898 934(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 1008(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 1083(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 1157(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 1231(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 1306(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 1380(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 1455(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 1529(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 1603(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 1678(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 1752(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 1826(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 1901(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 1975(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 2049(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 2124(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 2198(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 2273(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 962 2463(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 962 2537(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 2612(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 833 2686(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 833 2760(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 2835(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 7 @eop 8 @bop0 cmbx10.300 sf [<000FF008007FFE3801FC07F807E001F80F8000781F0000783F0000383E0000387E0000 187C000018FC000000FC000000FC000000FC000000FC000000FC000000FC007FFFFC007F FF7C0001F87E0001F83E0001F83F0001F81F0001F80F8001F807E001F801FC07F8007FFE 78000FF818> 32 28 -3 27 38] 71 dc [ 24 26 -1 17 25] 121 dc [ 32 28 -2 27 34] 66 dc [ 40 28 -2 27 36] 82 dc [<6000007FFFE07FFFE07FFFC07FFF807FFF80E00300C00600C00C00C018000030000030 0000600000E00000E00001E00001C00003C00003C00003C00003C00007C00007C00007C0 0007C00007C00007C000038000> 24 28 -3 27 24] 55 dc [ 24 18 -1 17 25] 120 dc cmr10.300 sf [<60F0F8680808081010204080> 8 12 -4 28 12] 39 dc 8 @bop1 cmbx10.300 sf 177 756(5)s 38(F)h -4(unnelW)h -4(eb)h 14(Admini)h -1(str)h -1(ati)h -1(on)h 1067(109)h 177 1694(A)s 26(Glossary)h 1456(115)h 177 1810(B)s 28(References)h 1412(117)h 177 1926(Index)s 1581(117)h cmr10.300 sf 335 42(4.2.5)s 46(Scripts)h 14(Directory)h 1110(103)h 335 116(4.2.6)s 46(Sources)h 15(Directory)h 1098(103)h 335 191(4.2.7)s 46(T)h -3(ests)h 14(Directory)h 1141(104)h 335 266(4.2.8)s 46(Userman)h 13(Directory)h 1074(105)h 239 340(4.3)s 42(Compil)h -1(ing)h 12(F)h -3(unnelW)h -3(eb)h 1147(105)h 239 415(4.4)s 42(T)h -3(esting)h 14(F)h -3(unnelW)h -3(eb)h 1201(105)h 239 490(4.5)s 42(Installing)h 12(F)h -3(unnelW)h -3(eb)h 1165(106)h 239 565(4.6)s 42(Prin)h -1(ting)h 13(Man)h -1(uals)h 1236(107)h 239 639(4.7)s 42(Installation)h 12(Problems?)h 1142(107)h 239 830(5.1)s 42(In)h -1(tro)h 1(duction)h 1325(109)h 239 905(5.2)s 42(The)h 14(User's)h 15(Comm)h -1(itm)h -2(en)h -1(t)h 13(T)h -3(o)h 13(F)h -3(unnelW)h -3(eb)h 825(109)h 239 980(5.3)s 42(Do)h 1(cumen)h -1(tation)h 1272(110)h 239 1054(5.4)s 42(Registration)h 1329(110)h 239 1129(5.5)s 42(Supp)h 1(ort)h 1406(110)h 239 1204(5.6)s 42(Cop)h -1(yrigh)h -1(t)h 1370(112)h 239 1279(5.7)s 42(No)h -1(w)h -1(arran)h -1(t)h -1(y)h 1339(112)h 239 1353(5.8)s 42(Distribution)h 1330(113)h 239 1428(5.9)s 42(Mo)h 1(di\014cation)h 1323(113)h 239 1503(5.10)s 21(V)h -3(ersions)h 1402(114)h 239 1577(5.11)s 21(FTP)h 14(Arc)h -1(hiv)h -1(e)h 14(and)h 14(Author)h 1090(114)h 1053 2940(7)s cmmi10.300 sf 801 42(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 801 116(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 191(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 833 266(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 340(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 704 415(:)s 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 736 490(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 672 565(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 769 639(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 575 830(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 1092 905(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 640 980(:)s 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 575 1054(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 510 1129(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 543 1204(:)s 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 575 1279(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 575 1353(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 575 1428(:)s 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 510 1503(:)s 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 833 1577(:)s 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 21(:)h 20(:)h 20(:)h 8 @eop 9 @bop0 9 @bop1 cmr10.300 sf 1053 2940(8)s 9 @eop 10 @bop0 /cmti10.300 127 @newfont cmbx10.746 sf [ 72 71 -4 70 81] 80 dc [<00FF803F8000FFFF80FFF000FFFF83FFFC00FFFF87FFFE00FFFF8FC3FF00FFFF8F07FF 0003FF9E0FFF8001FFBC0FFF8001FFB80FFF8001FFF80FFF8001FFF00FFF8001FFF007FF 0001FFF007FF0001FFE003FE0001FFE000F80001FFE000000001FFE000000001FFC00000 0001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000 0001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000 0001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC00000 0001FFC000000001FFC000000001FFC000000001FFC000000001FFC0000000FFFFFFE000 00FFFFFFE00000FFFFFFE00000FFFFFFE00000FFFFFFE00000> 48 46 -4 45 49] 114 dc [<000000FFC000000007FFF80000003FFFFC000000FFFFFF000001FFC1FF000007FF03FF 80000FFC03FF80000FF807FFC0001FF807FFC0003FF007FFC0003FF007FFC0003FE003FF 80007FE003FF80007FE001FF00007FE000FE00007FE0003800007FE0000000007FE00000 00007FE0000000007FE0000000007FE0000000007FE0000000007FE0000000007FE00000 00007FE0000000007FE0000000FFFFFFFE0000FFFFFFFE0000FFFFFFFE0000FFFFFFFE00 00FFFFFFFE0000007FF0000000007FF0000000007FF0000000007FF0000000007FF00000 00007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF00000 00007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF00000 00007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF00000 00007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF00000 00007FF0000000007FF0000000007FF0000000007FF0000000007FF0000000007FF00000 00007FF00000003FFFFFF800003FFFFFF800003FFFFFF800003FFFFFF800003FFFFFF800 00> 48 72 -3 71 36] 102 dc [<0007FFFC000000007FFFFFC0000001FFFFFFF8000003FFFFFFFE000007FE001FFF0000 07FF0003FFC0000FFF8001FFE0000FFF8000FFF0000FFF80007FF0000FFF80007FF8000F FF80007FF80007FF00003FFC0007FF00003FFC0003FE00003FFC0000F800003FFC000000 00003FFC00000000003FFC00000000003FFC00000000003FFC00000007FFFFFC000000FF FFFFFC000007FFFFFFFC00003FFFE03FFC0000FFFE003FFC0003FFF0003FFC0007FFC000 3FFC000FFF00003FFC001FFE00003FFC003FFC00003FFC007FF800003FFC007FF800003F FC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC00FFF000003FFC 00FFF000007FFC007FF80000FFFC007FF80001EFFC003FFC0003EFFC003FFF0007CFFF00 0FFFC03F8FFFF807FFFFFF07FFFC01FFFFFC03FFFC007FFFF001FFFC0003FF80007FF8> 56 46 -3 45 58] 97 dc [<00001FFFC0000000FFFFF8000007FFFFFE00001FFFFFFF80007FFC00FFC000FFE001FF C001FFC003FFE003FF8003FFE007FF0003FFE00FFE0003FFE00FFE0003FFE01FFC0001FF C01FFC0001FFC03FFC0000FF803FFC00003E007FF8000000007FF8000000007FF8000000 00FFF800000000FFF800000000FFF800000000FFF800000000FFF800000000FFF8000000 00FFF800000000FFF800000000FFF800000000FFF8000000007FF8000000007FF8000000 007FFC000000003FFC000000003FFC000000001FFC000000F81FFE000000F80FFE000000 F80FFF000001F007FF800003F003FFC00007E001FFE0000FC000FFF0001F80007FFE00FF 00001FFFFFFE000007FFFFF8000000FFFFE00000001FFE0000> 48 46 -4 45 53] 99 dc cmti10.300 sf [<07870004D98008E0C008E0C011C0E011C0E001C0E001C0E00381C00381C00381C00381 800703800703000707000706000E8C000E70000E00000E00001C00001C00001C00001C00 003C0000FF8000> 24 26 -1 17 21] 112 dc [<3C3C26C2468747078E068E000E000E001C001C001C001C003800380038003800700030 00> 16 18 -4 17 18] 114 dc [<03CC063C0C3C181C3838303870387038E070E070E070E070E0E2C0E2C0E261E462643C 38> 16 18 -5 17 21] 97 dc [<01F007080C08181C3838300070007000E000E000E000E000E000E008E010602030C01F 00> 16 18 -5 17 19] 99 dc [<00C001C001C001C00380038003800380FFE00700070007000E000E000E000E001C001C 001C001C00384038403840388019000E00> 16 26 -3 25 14] 116 dc [<01800380010000000000000000000000000000001C002600470047008E008E000E001C 001C001C0038003800710071007100720072003C00> 16 28 -4 27 13] 105 dc [<1F800380038007000700070007000E000E000E000E001C001C001C001C003800380038 0038007000700070007000E400E400E400E40068003800> 16 29 -4 28 11] 108 dc cmbx10.300 sf [ 8 41 -4 30 13] 91 dc [ 32 28 -2 27 37] 75 dc [ 24 29 -1 28 27] 104 dc [<03F8000FFF001C07803003803001C07001C07801C07E01C07F83807FC3003FF6001FFC 000FFE0007FF801DFF80387FC0781FE0F007E0F003E0F001E0F001E0F001E07801C07803 803E07801FFE0003F800> 24 27 -2 26 24] 56 dc [ 8 41 -1 30 13] 93 dc [<78FCFCFCFC78> 8 6 -3 5 13] 46 dc [<78FCFCFEFE7A0202040408083040> 8 14 -3 5 13] 44 dc [ 40 28 -2 27 45] 77 dc cmr10.300 sf [<60F0F0701010101020204080> 8 12 -4 3 12] 44 dc [ 32 28 -2 27 32] 75 dc [ 16 2 0 9 14] 45 dc [<7FF0FFC00FC03E000780180003C0180003E0100001E0200001F0600000F04000007880 00007D8000003D0000001E0000001F0000000F0000000F8000000F80000013C0000023E0 000021E0000041F00000C0F8000080780001007C0003003C0002001E0006001F001F003F 80FFC0FFF0> 32 28 -1 27 31] 88 dc [ 48 1 0 11 42] 124 dc [<60F0F0F0F0F0F0F060606060606060606060606060000000000060F0F060> 8 30 -4 29 12] 33 dc [<00C001E001E000C000000000000000000000000000000FE000E000E000E000E000E000 E000E000E000E000E000E000E000E000E000E000E000E000E000E000E060E0F0C0F1C061 803E00> 16 37 3 28 13] 106 dc [<004000800100020006000C000C0018001800300030007000600060006000E000E000E0 00E000E000E000E000E000E000E000E000E000600060006000700030003000180018000C 000C0006000200010000800040> 16 42 -3 30 16] 40 dc [<800040002000100018000C000C000600060003000300038001800180018001C001C001 C001C001C001C001C001C001C001C001C001C0018001800180038003000300060006000C 000C0018001000200040008000> 16 42 -2 30 16] 41 dc [<007FC001C1C00303C00703C00E01C00E01C00E01C00E01C00E01C00E01C00E01C0FFFF C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01C00E01 C00E01C00E01C00E01C00E01C07FCFF8> 24 29 0 28 23] 13 dc 10 @bop1 cmbx10.746 sf 177 399(Preface)s cmti10.300 sf 177 1287(pr)s -2(actic)h -2(al)h cmbx10.300 sf 1446 639([Kn)s -1(uth83])h 177 2059(Ross)s 15(N.)h 17(Willi)h -1(ams)h 177 2109(Adelaide,)s 14(Australi)h -1(a)h 177 2159(Ma)s -1(y)h 16(1992)h cmr10.300 sf 177 639(When,)s 17(in)h 16(1986,)h 16(I)h 16(\014rst)h 18(read)h 17(Donald)h 15(Kn)h -1(uth's)h 17(tec)h -1(hnical)h 17(rep)h 1(ort)h 18(on)h 16(W)h -3(eb)h 210(,)h 15(and)h 16(tried)h 17(W)h -3(eb)h 177 689(out,)s 16(I)h 15(w)h -1(as)h 16(sim)h -1(ultaneously)h 13(excited)h 17(b)h -1(y)h 15(Kn)h -1(uth's)h 16(idea)h 15(of)h 15(literate)h 16(programm)h -1(ing,)h 13(and)h 16(disapp)h 1(oin)h -1(ted)h 15(b)h -1(y)h 177 739(his)s 14(impl)h -1(emen)h -1(tati)h -1(on)h 12(of)h 13(it.)h 18(I)h 13(w)h -1(as)h 14(excited)h 14(b)h 1(ecause)h 16(I)h 13(could)h 14(sense)h 15(the)h 14(p)h 1(oten)h -1(tial)h 14(for)h 13(the)h 14(literate)h 14(st)h -1(yle)h 14(to)h 177 789(transform)s 14(the)h 15(state)h 15(of)h 14(mind)h 13(of)h 14(the)h 15(programm)h -1(er,)h 13(but)h 15(w)h -1(as)h 14(disapp)h 1(oin)h -1(ted)h 14(b)h -1(y)h 15(W)h -3(eb's)h 14(rigidit)h -1(y)h 13(and)h 14(lac)h -1(k)h 177 839(of)s 15(practicalit)h -1(y)h -3(,)h 14(whic)h -1(h)h 15(seemed)h 16(to)h 15(b)h 1(etra)h -1(y)h 15(this)h 16(p)h 1(oten)h -1(tial.)h 21(The)h 16(W)h -3(eb)h 15(I)h 15(used)h 16(w)h -1(as)h 15(P)h -1(ascal-sp)h 1(eci\014c,)h 17(T)h 1881 848(E)s 1904 839(X-)s 177 888(sp)s 1(eci\014c,)h 13(and)h 11(applied)h 10(to)h 1(o)h 11(man)h -1(y)h 9(constrain)h -1(ts)h 11(to)h 11(the)h 12(programm)h -1(i)h -1(ng)h 9(pro)h 1(cess.)h 19(In)h 11(particular,)h 11(it)h 11(insisted)h 11(on)h 177 938(taking)s 13(con)h -1(trol)h 13(of)h 13(the)h 14(program)h 12(text,)h 13(mangli)h -1(ng)h 12(the)h 14(co)h 1(de)h 14(in)h 13(the)h 14(P)h -1(ascal)h 13(output)h 14(\014les,)h 13(and)h 14(imp)h 1(osing)h 11(its)h 177 988(o)s -1(wn)h 13(rather)h 13(rigid)h 12(ideas)h 13(ab)h 1(out)h 13(inden)h -1(ting)h 12(in)h 12(the)h 14(T)h 1026 997(E)s 1049 988(X)s 13(output.)h 18(All)h 12(this,)h 12(com)h -1(bined)h 12(with)h 12(the)h 14(complexit)h -1(y)h 177 1038(of)s 13(the)h 15(to)h 1(ol,)h 13(led)h 14(me)h 12(to)h 14(come)h 13(to)h 14(p)h 1(erceiv)h -1(e)h 15(W)h -3(eb)h 14(as)h 14(problem)h 12(rather)h 15(than)h 14(solution.)h 177 1112(Despite)s 15(all)h 14(this,)h 14(I)h 15(w)h -1(as)h 14(w)h -1(ell)h 14(and)h 14(truly)h 15(ho)h 1(ok)h -1(ed)h 14(on)h 15(the)h 15(idea)h 14(of)h 14(literate)h 15(programm)h -1(ing)h -1(.)h 18(The)h 15(inevitable)h 177 1162(result)s 15(w)h -1(as)h 14(that)h 14(I)h 13(designed)h 15(and)h 14(impl)h -1(em)h -1(en)h -1(ted)h 13(m)h -1(y)h 12(o)h -1(wn)h 14(v)h -1(ersion)h 14(of)h 13(W)h -3(eb)h 14(|)h 13(F)h -3(unnelW)h -3(eb!)h 177 1237(F)s -3(unnelW)h -3(eb)h 10(is)h 11(not)h 10(the)h 12(most)h 9(sophisticated)h 12(literate)h 10(programm)h -1(ing)h 8(to)h 1(ol)h 10(a)h -1(v)h -2(ailable,)h 9(but)h 11(it)h 10(is)h 11(an)h 10(extremely)h 342 1287(to)s 1(ol,)h 12(striving)h 12(for)h 12(simplicit)h -1(y)h 11(and)h 12(p)h 1(ortabilit)h -1(y)h 12(in)h 12(all)h 11(areas.)h 18(Not)h 13(only)h 12(is)h 13(F)h -3(unnelW)h -3(eb)h 12(language-)h 177 1337(indep)s 1(enden)h -1(t,)h 23(and)h 20(to)h 20(some)h 19(exten)h -1(t)h 21(t)h -1(yp)h 1(esetter)h 23(indep)h 1(enden)h -1(t,)h 22(but)h 21(its)h 20(implem)h -1(en)h -1(tatio)h -1(n)h 18(also)h 20(stresses)h 177 1386(p)s 1(ortabilit)h -1(y)h -3(,)h 14(b)h 1(eing)h 15(written)h 16(in)h 15(C,)h 15(and)h 16(curren)h -1(tly)h 16(op)h 1(erating)h 16(on)h 15(four)h 15(ma)h 2(jor)h 14(platforms)h 14(\(Sun,)h 15(V)h -3(ax,)h 15(PC,)h 177 1436(Mac\).)s 18(F)h -3(unnelW)h -3(eb)h 13(allo)h -1(ws)h 12(the)h 15(programm)h -1(er)h 12(total)h 12(con)h -1(trol)h 14(o)h -1(v)h -1(er)h 13(the)h 14(output)h 14(\014le,)h 13(making)h 11(it)h 13(suitable)h 13(for)h 177 1486(use)s 18(with)h 16(all)h 16(sorts)h 17(of)h 16(format-sensitiv)h -1(e)h 16(languages.)h 26(It)h 17(also)h 16(allo)h -1(ws)h 15(con)h -1(trol)h 17(o)h -1(v)h -1(er)h 16(its)h 17(o)h -1(wn)h 16(source)h 18(co)h 1(de,)h 177 1536(whic)s -1(h)h 11(has)h 11(b)h 1(een)h 12(released)h 12(under)h 12(a)h 10(GNU)h 11(license.)h 18(F)h -3(unnelW)h -3(eb)h 10(is)h 11(quite)h 11(solid,)h 10(ha)h -1(ving)h 10(to)h 11(pass)h 11(a)h 11(regression)h 177 1586(testing)s 17(suite)h 18(of)h 16(o)h -1(v)h -1(er)h 17(200)h 16(tests)h 18(b)h 1(efore)h 17(b)h 1(eing)h 17(released.)h 28(Finally)h -3(,)h 15(F)h -3(unnelW)h -3(eb)h 16(is)h 17(w)h -1(ell)h 16(do)h 1(cumen)h -1(ted)h 17(b)h -1(y)h 177 1636(this)s 14(man)h -1(ual)h 12(whic)h -1(h)h 13(pro)h -1(vides)h 14(a)h 14(tutorial,)h 13(adv)h -2(anced)h 14(hin)h -1(ts,)h 13(and)h 14(a)h 13(language)h 13(de\014nition.)h 177 1710(I)s 11(w)h -1(ould)h 9(lik)h -1(e)h 10(to)h 10(dedicate)h 12(F)h -3(unnelW)h -3(eb)h 10(and)h 10(this)h 10(man)h -1(ual)h 8(to)h 11(Donald)h 9(Kn)h -1(uth)h 11(and)h 10(his)h 11(literate)h 10(programm)h -1(ing)h 177 1760(to)s 1(ol)h 10(W)h -3(eb.)h 17(Although)h 10(this)h 10(man)h -1(ual)h 9(is)h 10(somewhat)h 10(critical)h 10(of)h 10(some)h 10(asp)h 1(ects)h 12(of)h 10(W)h -3(eb,)h 11(this)h 10(criticism)h 10(is)h 10(really)h 177 1810(a)s 13(pro)h 1(duct)h 14(of)h 12(di\013ering)h 13(design)h 13(goals.)h 17(Kn)h -1(uth)h 14(designed)h 13(a)h 13(paradigm)h 11(\(literate)h 13(programm)h -1(ing\))h 11(and)h 13(a)h 12(to)h 1(ol)h 177 1860(\(W)s -3(eb\))h 20(aimed)h 19(at)h 20(the)h 21(highest)h 20(pitc)h -1(h)h 21(of)h 19(program)h 19(presen)h -1(tation)h 21(and)h 20(t)h -1(yp)h 1(esetting.)h 38(F)h -3(unnelW)h -3(eb)h 20(aim)h -1(s)h 177 1910(lo)s -1(w)h -1(er,)h 13(relaxing)h 12(constrain)h -1(ts,)h 13(and)h 13(making)h 11(comprom)h -1(ises)h 12(in)h 12(order)h 14(to)h 13(ac)h -1(hiev)h -1(e)h 13(simplicit)h -1(y)h -3(,)h 10(\015exibilit)h -1(y)h -3(,)h 11(and)h 177 1959(p)s 1(ortabilit)h -1(y)h -3(.)h 16(The)h 12(result)h 12(is)h 11(a)h 11(practical)h 12(to)h 1(ol)h 11(whic)h -1(h)h 11(I)h 11(hop)h 1(e)h 12(will)h 10(attract)h 12(more)h 11(p)h 1(eople)h 12(to)h 11(the)h 12(literate)h 12(st)h -1(yle.)h 1053 2940(9)s 10 @eop 11 @bop0 11 @bop1 cmr10.300 sf 1042 2940(10)s 11 @eop 12 @bop0 /cmtt10.300 127 @newfont cmbx10.746 sf [<0000000003E000000000000000000007F000000000000000000007F000000000000000 00000FF80000000000000000000FF80000000000000000000FF80000000000000000001F FC0000000000000000001FFC0000000000000000003FFE0000000000000000003FFE0000 000000000000007FFF0000000000000000007FFF0000000000000000007FFF0000000000 00000000FFFF800000000000000000FFFF800000000000000001FFFFC000000000000000 01FFFFC00000000000000001FFFFC00000000000000003FFFFE00000000000000003EFFF E00000000000000007EFFFF00000000000000007CFFFF00000000000000007C7FFF00000 00000000000FC7FFF8000000000000000F83FFF8000000000000001F83FFFC0000000000 00001F03FFFC000000000000001F01FFFC000000000000003F01FFFE000000000000003E 00FFFE000000000000007E00FFFF000000000000007C007FFF00000000000000FC007FFF 80000000000000F8007FFF80000000000000F8003FFF80000000000001F8003FFFC00000 00000001F0001FFFC0000000000003F0001FFFE0000000000003E0001FFFE00000000000 03E0000FFFE0000000000007E0000FFFF0000000000007C00007FFF000000000000FC000 07FFF800000000000F800007FFF800000000000F800003FFF800000000001F800003FFFC 00000000001F000001FFFC00000000003FFFFFFFFFFE00000000003FFFFFFFFFFE000000 00007FFFFFFFFFFF00000000007FFFFFFFFFFF00000000007FFFFFFFFFFF0000000000FC 0000007FFF8000000000F80000003FFF8000000001F80000003FFFC000000001F0000000 3FFFC000000001F00000001FFFC000000003F00000001FFFE000000003E00000000FFFE0 00000007E00000000FFFF000000007C00000000FFFF000000007C000000007FFF0000000 0FC000000007FFF80000000F8000000003FFF80000001F8000000003FFFC0000001F0000 000003FFFC0000007FC000000001FFFC0000FFFFFFC00007FFFFFFFF80FFFFFFC00007FF FFFFFF80FFFFFFC00007FFFFFFFF80FFFFFFC00007FFFFFFFF80FFFFFFC00007FFFFFFFF 80> 88 72 -4 71 90] 65 dc [<007FC000000000FFFFC000000000FFFFC000000000FFFFC000000000FFFFC000000000 FFFFC00000000003FFC00000000001FFC00000000001FFC00000000001FFC00000000001 FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FF C00000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC0 0000000001FFC00000000001FFC00000000001FFC00000000001FFC00000000001FFC000 00000001FFC0007FFFF801FFC0007FFFF801FFC0007FFFF801FFC0007FFFF801FFC0007F FFF801FFC0000FFE0001FFC00007F00001FFC0000FE00001FFC0003FC00001FFC0007F80 0001FFC000FE000001FFC001FC000001FFC007F8000001FFC00FF0000001FFC01FC00000 01FFC03F80000001FFC0FF00000001FFC1FE00000001FFC3FF00000001FFCFFF80000001 FFDFFFC0000001FFFFFFC0000001FFFFFFE0000001FFFFFFF0000001FFFCFFF8000001FF F87FFC000001FFE03FFC000001FFC01FFE000001FFC01FFF000001FFC00FFF800001FFC0 07FFC00001FFC003FFC00001FFC001FFE00001FFC001FFF00001FFC000FFF80001FFC000 7FFC0001FFC0003FFC0001FFC0001FFE0001FFC0000FFF0001FFC0000FFF8001FFC0000F FFC0FFFFFF807FFFFFFFFFFF807FFFFFFFFFFF807FFFFFFFFFFF807FFFFFFFFFFF807FFF FF> 56 72 -4 71 63] 107 dc [ 80 46 -3 45 86] 119 dc [<007FC000FFFFC000FFFFC000FFFFC000FFFFC000FFFFC00003FFC00001FFC00001FFC0 0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0 0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0 0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0 0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0 0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0 0001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC00001FFC0 0001FFC00001FFC00001FFC00001FFC000FFFFFF80FFFFFF80FFFFFF80FFFFFF80FFFFFF 80> 32 72 -4 71 32] 108 dc [<00000000007FC00000000000FFFFC00000000000FFFFC00000000000FFFFC000000000 00FFFFC00000000000FFFFC0000000000003FFC0000000000001FFC0000000000001FFC0 000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000000000 0001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0 000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000000000 0001FFC0000000000001FFC0000000000001FFC0000000000001FFC00000000FFC01FFC0 000000FFFF81FFC0000007FFFFE1FFC000001FFFFFF9FFC000007FFC03FFFFC00000FFF0 007FFFC00001FFC0001FFFC00003FF80000FFFC00007FF000007FFC0000FFE000003FFC0 000FFE000003FFC0001FFC000003FFC0001FFC000003FFC0003FFC000003FFC0003FFC00 0003FFC0007FF8000003FFC0007FF8000003FFC0007FF8000003FFC000FFF8000003FFC0 00FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF800 0003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC000FFF8000003FFC0 007FF8000003FFC0007FF8000003FFC0007FF8000003FFC0003FF8000003FFC0003FFC00 0003FFC0003FFC000003FFC0001FFC000003FFC0001FFC000003FFC0000FFE000007FFC0 0007FF00000FFFC00003FF00001FFFC00001FFC0003FFFC00000FFE000FFFFE000007FF8 07FBFFFF80001FFFFFF3FFFF800007FFFFC3FFFF800001FFFF03FFFF8000001FF803FFFF 80> 64 72 -4 71 66] 100 dc [<00000000001F8000007FF000FFE00007FFFF03FFF0001FFFFFC7FFF0007FFFFFFFC7F8 00FFE03FFE0FF801FF800FFC0FF803FF0007FE0FF807FE0003FF07F007FE0003FF07F00F FC0001FF81C00FFC0001FF80000FFC0001FF80001FFC0001FFC0001FFC0001FFC0001FFC 0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0001FFC0000FFC0001FF80000FFC00 01FF80000FFC0001FF800007FE0003FF000007FE0003FF000003FF0007FE000001FF800F FC000000FFE03FF8000001FFFFFFF0000001DFFFFFC0000003C7FFFF00000003C07FF000 000007C0000000000007C0000000000007C0000000000007C0000000000007E000000000 0007F0000000000007F8000000000007FFFFFFF0000007FFFFFFFF000003FFFFFFFFE000 03FFFFFFFFF80001FFFFFFFFFE0001FFFFFFFFFF0000FFFFFFFFFF80007FFFFFFFFF8003 FFFFFFFFFFC00FFFFFFFFFFFC01FF800001FFFE03FE0000001FFE07FC00000007FF07FC0 0000003FF0FF800000001FF0FF800000001FF0FF800000001FF0FF800000001FF0FF8000 00001FF07FC00000003FE07FC00000003FE03FE00000007FC03FF0000000FFC01FFC0000 03FF800FFF00000FFF0003FFF000FFFC0000FFFFFFFFF000003FFFFFFFC0000007FFFFFE 000000003FFFC00000> 56 68 -3 46 59] 103 dc [<007FC001FFC00000FFE00000FFFFC00FFFF80007FFFC0000FFFFC03FFFFE001FFFFF00 00FFFFC0FFFFFF007FFFFF8000FFFFC1FC07FF80FE03FFC000FFFFC3E003FFC1F001FFE0 0003FFC7C001FFC3E000FFE00001FFCF0001FFE78000FFF00001FFDE0000FFEF00007FF0 0001FFDC0000FFEE00007FF00001FFFC0000FFFE00007FF80001FFF80000FFFC00007FF8 0001FFF00000FFF800007FF80001FFF00000FFF800007FF80001FFF00000FFF800007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF80001FFE00000FFF000007FF8 0001FFE00000FFF000007FF80001FFE00000FFF000007FF800FFFFFFC07FFFFFE03FFFFF F0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFFF0FFFFFFC07FFFFFE03FFFFF F0FFFFFFC07FFFFFE03FFFFFF0> 96 46 -4 45 101] 109 dc cmbx10.300 sf [ 24 18 -1 17 25] 118 dc [<07F8201FFEE03C07E07801E07000E0F000E0F00060F00060F80000FE0000FFE0007FFE 003FFF003FFF800FFFC007FFE0007FE00003F00001F00000F0C000F0C000F0C000E0E000 E0F001C0FC03C0EFFF0083FC00> 24 28 -3 27 27] 83 dc [<07FFF007FFF0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F 80001F80001F80001F80001F80001F80001F80001F80001F80301F80781F80FC1F80FC1F 80FC1F00783E00387C000FF000> 24 28 -1 27 25] 74 dc cmtt10.300 sf [<003F00007F00003F0000070000070000070000070003C7000FF7003FFF003C1F00780F 00F00700F00700E00700E00700E00700E00700F00700F00F00781F007C3F003FFFE01FF7 F007C7E0> 24 25 -1 24 22] 100 dc [<1FE0007FF8007FFC00783C00301E00000E00000E0003FE001FFE007E0E00F00E00E00E 00E00E00F01E00F83E007FFFE03FE7E00F83E0> 24 18 -2 17 22] 97 dc [<7F1FC0FF1FE07F1FC01C07001E0F000E0E000E0E000E0E00071C00071C00071C00071C 0003B80003B80003B80001F00001F00000E000> 24 18 -1 17 22] 118 dc [<03E00FF81FFC3C1E780E7007E007FFFFFFFFFFFFE000E000700778073C0F1FFE0FFC03 F0> 16 18 -3 17 22] 101 dc [<00F80003FE000FFF001F0F803E3F803C7F8078FFC071E7C0F1C3C0E3C3C0E381C0E381 C0E381C0E381C0E381C0E3C3C0F1C38071E78078FF003C7E003E3C001F03C00FFFC003FF 0000FC00> 24 25 -2 24 22] 64 dc [<03F80FFE1FFE3C1E780C7000F000E000E000E000E000F000700778073E0F1FFE0FFC03 F0> 16 18 -3 17 22] 99 dc [<0FEC3FFC7FFCF03CE01CE01CF0007F801FF007FC003EE00EE00EF00EF81EFFFCFFF8C7 E0> 16 18 -3 17 22] 115 dc [<70F8F8F870> 8 5 -8 4 22] 46 dc [ 24 25 -2 24 22] 108 dc [<018003C003C0018000000000000000007FC07FC07FC001C001C001C001C001C001C001 C001C001C001C001C001C07FFFFFFF7FFF> 16 26 -3 25 22] 105 dc [<7E1F80FE3F807E1F800E03800E03800E03800E03800E03800E03800E03800E03800E03 800E03800E07800F0F800FFFF007FFF803E3F0> 24 18 0 17 22] 117 dc [ 24 18 0 17 22] 109 dc [<03E0000FF8001FFC003C1E00780F00700700E00380E00380E00380E00380E00380F007 80700700780F003C1E001FFC000FF80003E000> 24 18 -2 17 22] 111 dc [<7E3C00FEFF007FFF800F87800F03800F03800E03800E03800E03800E03800E03800E03 800E03800E03800E03807FC7F0FFE7F87FC7F0> 24 18 0 17 22] 110 dc [<0300000700000700000700000700007FFF00FFFF00FFFF000700000700000700000700 0007000007000007000007010007038007038007078007878003FF0003FE0000F800> 24 23 -1 22 22] 116 dc [ 24 18 -1 17 22] 114 dc [<003000780078003000000000000000001FF81FF81FF800380038003800380038003800 380038003800380038003800380038003800380038003800386070F0F0FFE07FC03F80> 16 35 -2 25 22] 106 dc [<7F1FC0FF9FE07F1FC01C07000E07000E0E000E0E00070E00071C00071C00039C00039C 0003980001B80001B80000F00000F00000F00000E00000E00000E00001C00079C0007BC0 007F80003F00003C0000> 24 27 -1 17 22] 121 dc [ 24 18 -1 17 22] 119 dc [<7E0000FE00007E00000E00000E00000E00000E00000E3E000EFF800FFFC00F83E00F01 E00E00F00E00F00E00700E00700E00700E00700E00F00F00E00F01E00F83C00FFFC00EFF 00063C00> 24 25 0 24 22] 98 dc [<7E0000FE00007E00000E00000E00000E00000E00000E7FE00E7FE00E7FE00E0F000E1E 000E3C000E78000EF0000FF0000FF8000FBC000F1E000E0E000E07000E07807F87F0FFCF F07F87F0> 24 25 0 24 22] 107 dc [<7E0000FE00007E00000E00000E00000E00000E00000E3C000EFF000FFF800F87800F03 800F03800E03800E03800E03800E03800E03800E03800E03800E03800E03807FC7F0FFE7 F87FC7F0> 24 25 0 24 22] 104 dc 12 @bop1 cmbx10.746 sf 177 399(Ac)s -3(kno)h -3(wledgemen)h -3(ts)h cmbx10.300 sf 488 645(Da)s -1(vid)h 18(Hulse)h 430 1018(Simon)s 14(Hac)h -1(k)h -1(ett)h 438 1193(Jerem)s -1(y)h 17(Begg)h 450 1317(Barry)s 57(Dwy)h -1(er)h 772(Roger)h 57(Brissend)h -1(en)h 177 1591(Ross)s 15(N.)h 17(Willi)h -1(ams)h 177 1641(Adelaide,)s 14(Australi)h -1(a)h 177 1691(Ma)s -1(y)h 16(1992)h cmtt10.300 sf 781 645(dave@cs.adela)s -1(ide.e)h -1(du.au)h 768 1018(simon@internod)s -1(e.com)h -1(.au)h 744 1193(jeremy@vsm.c)s -1(om.au)h 832 1317(dwyer@cs.ad)s -1(elaid)h -1(e.edu)h -1(.au)h 193 1367(rjb@koala.harv)s -1(ard.e)h -1(du)h cmr10.300 sf 177 645(Man)s -1(y)h 16(thanks)h 17(to)h 294(\()h 503(\))h 15(for)h 17(translating)h 16(the)h 17(original)h 15(v)h -1(ersion)h 177 695(of)s 15(F)h -3(unnelW)h -3(eb)h 15(\(F)h -3(unnelW)h -3(eb)h 16(V1\))h 15(from)h 14(Ada)h 16(in)h -1(to)h 15(C)h 15(and)h 16(getting)h 15(it)h 16(to)h 15(w)h -1(ork)h 15(on)h 16(Unix)h 15(and)h 16(a)h 15(PC.)h 15(The)h 177 744(C)s 17(co)h 1(de)h 18(written)h 17(b)h -1(y)h 17(Da)h -1(vid)h 15(\(F)h -3(unnelW)h -3(eb)h 17(V2\))h 16(formed)h 16(the)h 17(basis)h 17(of)h 17(F)h -3(unnelW)h -3(eb)h 16(V3,)h 17(but)h 17(w)h -1(as)h 17(en)h -1(tirely)h 177 794(rewritten)s 18(during)h 17(the)h 18(in)h -1(tensiv)h -1(e)h 17(re\014nemen)h -1(t)h 18(and)h 16(feature-injection)h 18(p)h 1(erio)h 1(d)h 17(leading)h 16(up)h 17(to)h 17(this)h 18(release)h 177 844(\(F)s -3(unnelW)h -3(eb)h 12(V3)h 12(is)h 11(ab)h 1(out)h 12(three)h 13(times)h 11(the)h 13(size)h 13(of)h 11(F)h -3(unnelW)h -3(eb)h 11(V2\).)h 18(Nev)h -1(ertheless,)h 14(without)h 12(this)h 12(imp)h 1(or-)h 177 894(tan)s -1(t)h 13(\014rst)h 15(translation)h 12(step,)h 14(I)h 14(w)h -1(ould)h 12(probably)h 13(not)h 13(ha)h -1(v)h -1(e)h 13(found)h 13(the)h 14(motiv)h -2(atio)h -1(n)h 12(to)h 13(dev)h -1(elop)h 13(F)h -3(unnelW)h -3(eb)h 177 944(to)s 14(its)h 14(presen)h -1(t)h 15(state.)h 177 1018(Thanks)s 14(go)h 12(to)h 335(\()h 482(\))h 11(of)h 13(In)h -1(terno)h 1(de)h 14(Systems)h 13(Pt)h -1(y)h 14(Ltd)h 13(for)h 13(the)h 177 1068(use)s 18(of)h 16(his)h 17(Sun,)h 18(Mac,)h 18(and)h 16(PC,)h 17(for)h 17(assistance)h 18(in)h 17(p)h 1(orting)h 16(F)h -3(unnelW)h -3(eb)h 17(to)h 17(the)h 17(Sun)h 18(and)h 16(PC,)h 17(and)h 17(for)h 177 1118(helpful)s 13(discussions.)h 177 1193(Thanks)s 16(go)h 16(to)h 305(\()h 372(\))h 14(of)h 16(VSM)h 16(Soft)h -1(w)h -1(are)h 15(Services)h 18(for)h 15(the)h 17(use)h 17(of)h 15(his)h 177 1243(V)s -5(AX,)h 14(and)h 14(for)h 14(assistance)h 15(with)h 13(the)h 15(VMS-sp)h 1(eci\014c)h 15(co)h 1(de.)h 177 1317(Thanks)s 50(to)h 417(\()h 525(\))h 48(and)h 177 1367(\()s 460(\))h 16(for)h 18(trying)h 18(out)h 18(F)h -3(unnelW)h -3(eb)h 18(V)h -3(ersion)h 18(1)h 18(in)h 18(1987)h 17(and)h 18(pro)h -1(viding)h 17(v)h -2(aluable)h 177 1417(feedbac)s -1(k.)h 177 1492(Thanks)s 14(to)h 14(Donald)h 13(Kn)h -1(uth)h 14(for)h 13(establishing)h 14(the)h 14(idea)h 14(of)h 13(literate)h 14(programm)h -1(ing)h 12(in)h 13(the)h 15(\014rst)h 14(place.)h 1042 2940(11)s 12 @eop 13 @bop0 13 @bop1 cmr10.300 sf 1042 2940(12)s 13 @eop 14 @bop0 /cmcsc10.300 127 @newfont cmmi10.300 sf [<0000038000000F0000003C000000F0000003C000000F0000003C000000F0000003C000 000F0000003C000000F0000000F00000003C0000000F00000003C0000000F00000003C00 00000F00000003C0000000F00000003C0000000F0000000380> 32 24 -3 21 32] 60 dc [ 32 24 -3 21 32] 62 dc cmcsc10.300 sf [<00200000700000700000700000B80000B80000B800011C00011C00011C00020E00020E 0004070004070007FF000803800803800803801801C03803C0FE0FF8> 24 21 -1 20 25] 97 dc cmti10.300 sf [<0001FC000703000C03001C07001C0300180000380000380000380000380000700007FF FC00701C00701C00701C00E03800E03800E03800E03800E07001C07001C07001C07001C0 E201C0E201C0E20380E4038064038038038000030000070000060000C60000E40000CC00 00700000> 24 37 1 28 23] 12 dc [<01F006080C080C1C18181C001F001FC00FF007F0007800386030E030C030806060C01F 00> 16 18 -3 17 17] 115 dc [<1E0300270700470700470700870E00870E000E0E000E0E001C1C001C1C001C1C001C1C 003838803838801838801839001C5900078E00> 24 18 -4 17 22] 117 dc [<0FC00001C00001C0000380000380000380000380000700000700000700000700000E78 000E8C000F0E000E0E001C0E001C0E001C0E001C0E00381C00381C00381C003838007038 80703880707080707100E03200601C00> 24 29 -3 28 21] 104 dc [<01E007180C0C180C380C300E700E700EE01CE01CE01CE018E038E030E06060C031801E 00> 16 18 -5 17 21] 111 dc [<1E03270747074707870E870E0E0E0E0E1C1C1C1C1C1C1C1C38383838183818381C7007 F00070007000E0E0C0E1C0818047003C00> 16 26 -4 17 20] 121 dc [<01E007100C1018083810701070607F80E000E000E000E000E000E0086010602030C01F 00> 16 18 -5 17 19] 101 dc cmbx10.746 sf [<00FC0001FF0003FF8007FFC00FFFC01FFFE01FFFE01FFFE01FFFE01FFFE01FFFE00FFF C007FFC003FF8001FF0000FC000000000000000000000000000000000000000000000000 00000000000000000000007FC0FFFFC0FFFFC0FFFFC0FFFFC0FFFFC003FFC001FFC001FF C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FF C001FFC001FFC001FFC001FFC001FFC001FFC001FFC001FFC0FFFFFFFFFFFFFFFFFFFFFF FFFFFFFF> 24 73 -4 72 32] 105 dc [ 88 71 -4 70 93] 78 dc cmtt10.300 sf [<01800380038007800F807F80FF80738003800380038003800380038003800380038003 8003800380038003807FF87FFC7FF8> 16 25 -4 24 22] 49 dc [<3FFE003FFE003FFE003800003800003800003800003800003800003800003BF0003FFC 003FFE003C0F00300700000780000380600380F00380F00780F00F00F81F007FFE001FF8 0007E000> 24 25 -2 24 22] 53 dc [<03E0000FF8001FFC001E3C00380E00780F00700700700700E00380E00380E00380E003 80E00380E00380E00380E00380F00780700700700700780F003C1E001E3C001FFC000FF8 0003E000> 24 25 -2 24 22] 48 dc [<03E3C00FFFE01FFFE01E3CC03C1E00380E00380E00380E003C1E001E3C001FFC001FF8 003BE0003800003800001FFC001FFF003FFFC07803C0F001E0E000E0E000E0E000E0F001 E07C07C03FFF800FFE0003F800> 24 28 -1 17 22] 103 dc [<7E3E00FEFF807FFFC00F83E00F01E00E00F00E00F00E00700E00700E00700E00700E00 F00F00E00F01E00F83C00FFFC00EFF000E3C000E00000E00000E00000E00000E00000E00 007FC000FFE0007FC000> 24 27 0 17 22] 112 dc cmbx10.300 sf [<78FCFCFCFC7800000000000078FCFCFCFC78> 8 18 -3 17 13] 58 dc [ 24 26 -1 17 27] 112 dc [ 24 28 -2 27 29] 76 dc 14 @bop1 cmmi10.300 sf 190 689(<)s 189(><)h 76(>)h cmcsc10.300 sf 1644 933(a)s 1431 1058(a)s 1695 1107(a)s 754 1332(a)s cmti10.300 sf 222 689(\014rstauthor)s 64(ye)h -2(ar)h cmbx10.746 sf 177 399(Presen)s -3(tation)h 42(Notes)h cmtt10.300 sf 316 938(akt150@cscgpo.)s -1(anu.e)h -1(du.au)h 1538 1063(verbatim)s cmbx10.300 sf 177 639(References:)s 177 689([)s 393(])h 177 764(Sp)s 1(ecial)h 11(terms:)h 177 888(T)s -1(yp)h 1(esetting)h -1(:)h 1740 938([Kn)s -1(uth84])h 177 988([Lamp)s 1(ort86])h 177 1063(Graphics:)s 177 1237(Kno)s -1(wn)h 13(t)h -1(yp)h 1(esetti)h -1(ng)h 11(probl)h -1(ems:)h cmr10.300 sf 456 639(All)s 24(reference)h 1(s)h 28(are)h 25(set)h 27(in)h 25(b)h 1(old)h 24(and)h 26(are)h 25(cited)h 26(in)h 25(square)h 26(brac)h -1(k)h -1(ets)h 27(in)h 25(the)h 26(form)h 596 689(.)s 19(All)h 13(references)h 16(cited)h 14(in)h 13(the)h 13(text)h 14(app)h 1(ear)h 14(in)h 13(the)h 14(reference)h 15(list)h 13(and)h 13(the)h 14(index.)h 487 764(New)s 12(or)h 11(imp)h 1(ortan)h -1(t)h 10(terminolog)h -1(y)h 10(has)h 11(b)h 1(een)h 13(set)h 12(in)h 11(b)h 1(old)h 11(face)h 12(and)h 11(app)h 1(ears)h 12(in)h 11(the)h 12(index.)h 177 814(A)s 14(glossary)h 14(app)h 1(ears)h 14(as)h 14(an)h 14(app)h 1(endix.)h 510 888(This)s 41(do)h 1(cumen)h -1(t)h 40(w)h -1(as)h 40(prepared)h 42(b)h -1(y)h 40(the)h 41(author)h 40(using)h 41(Andrew)h 41(T)h -3(rev)h -1(or-)h 177 938(ro)s -1(w's)h 29(\()h 525(\))h 28(implem)h -1(en)h -1(tatio)h -1(n)h 28(\(OzT)h -3(eX\))h 30(of)h 29(the)h 30(T)h 1558 947(E)s 1581 938(X/L)s 4(T)h 1686 951(E)s 1709 938(X)s 447 988(t)s -1(yp)h 1(esetting)h 15(system)h 13(running)h 14(on)h 14(a)h 13(Macin)h -1(tosh-SE.)h 394 1063(All)s 11(diagram)h -1(s)h 10(ha)h -1(v)h -1(e)h 11(b)h 1(een)h 13(constructed)h 13(out)h 11(of)h 11(text)h 12(using)h 11(the)h 12(L)h 4(T)h 1473 1076(E)s 1496 1063(X)s 197(en)h -1(vironmen)h -1(t)h 177 1112(so)s 17(as)h 16(to)h 17(allo)h -1(w)h 15(this)h 16(do)h 1(cumen)h -1(t)h 16(to)h 17(b)h 1(e)h 17(disseminated)h 15(electronically)h 17(and)h 16(prin)h -1(ted)h 17(using)h 16(L)h 4(T)h 1737 1125(E)s 1761 1112(X)s 16(without)h 177 1162(access)s 16(to)h 14(the)h 14(author's)h 14(dra)h -1(wing)h 13(to)h 1(ols.)h 805 1237(While)s 11(ev)h -1(ery)h 12(attempt)h 11(has)h 12(b)h 1(een)h 12(made)h 10(to)h 12(giv)h -1(e)h 11(a)h 11(go)h 1(o)h 1(d)h 11(presen)h -1(tation)h 177 1287(within)s 12(the)h 13(time)h 11(a)h -1(v)h -2(ailabl)h -1(e,)h 11(some)h 12(shortcuts)h 14(ha)h -1(v)h -1(e)h 12(had)h 12(to)h 12(b)h 1(e)h 13(tak)h -1(en.)h 18(In)h 13(particular,)h 12(the)h 13(author)h 12(has)h 13(b)h 1(een)h 177 1337(unable)s 14(to)h 14(w)h -1(ork)h 13(out)h 14(ho)h -1(w)h 14(to)h 13(get)h 14(L)h 4(T)h 796 1350(E)s 820 1337(X)s 14(to)h 14(suppress)h 15(blank)h 14(pages)h 14(at)h 13(the)h 15(start)h 14(of)h 14(c)h -1(hapters.)h 1042 2940(13)s 14 @eop 15 @bop0 15 @bop1 cmr10.300 sf 1042 2940(14)s 15 @eop 16 @bop0 /cmbx10.622 127 @newfont /cmbx10.432 127 @newfont cmbx10.622 sf [<0000001FFF000070000001FFFFE000F000000FFFFFFC01F000007FFFFFFF03F00001FF FE007F87F00007FFE0000FEFF0000FFF000003FFF0003FFE000001FFF0007FF8000000FF F000FFF00000007FF001FFE00000003FF003FFC00000001FF003FF800000001FF007FF80 0000000FF00FFF0000000007F00FFF0000000007F01FFE0000000007F01FFE0000000003 F03FFC0000000003F03FFC0000000003F07FFC0000000001F07FFC0000000001F07FFC00 00000001F07FF8000000000000FFF8000000000000FFF8000000000000FFF80000000000 00FFF8000000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF800 0000000000FFF8000000000000FFF8000000000000FFF8000000000000FFF80000000000 00FFF80000000000007FF80000000000007FFC0000000000007FFC0000000000F07FFC00 00000000F03FFC0000000000F03FFC0000000000F01FFE0000000000F01FFE0000000001 F00FFF0000000001E00FFF0000000003E007FF8000000003E003FF8000000007C003FFC0 00000007C001FFE00000000F8000FFF00000001F00007FF80000003E00003FFE0000007C 00000FFF000001F8000007FFE00007F0000001FFFE003FC00000007FFFFFFF800000000F FFFFFC0000000001FFFFF000000000001FFF000000> 64 61 -5 59 71] 67 dc [<00FF00000000FFFF00000000FFFF00000000FFFF00000000FFFF0000000007FF000000 0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000 0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000 0003FF0000000003FF0000000003FF0000000003FF0000000003FF007FC00003FF01FFF8 0003FF07FFFE0003FF1F03FF0003FF3C01FF0003FF7801FF8003FF7000FF8003FFE000FF C003FFC000FFC003FFC000FFC003FF8000FFC003FF8000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFFFFFFFFFC3FFF FF> 48 60 -4 59 55] 104 dc [<001FFF00000001FFFFF0000007FFFFFC00000FF807FF00001FF801FF80001FFC00FFC0 001FFC007FE0001FFC007FE0001FFC007FF0001FFC003FF0000FF8003FF00007F0003FF0 0001C0003FF0000000003FF0000000003FF0000000003FF0000000FFFFF000000FFFFFF0 00007FF83FF00003FF803FF00007FE003FF0001FFC003FF0003FF8003FF0007FF0003FF0 007FE0003FF000FFE0003FF000FFC0003FF000FFC0003FF000FFC0003FF000FFC0007FF0 00FFC0007FF000FFE000FFF0007FF001DFF0003FF803DFF8001FFC0F8FFFF00FFFFE0FFF F001FFFC07FFF0003FE000FFF0> 48 38 -3 37 48] 97 dc [<00FF01FF8000FFFF0FFFF000FFFF3FFFFC00FFFFFE03FF00FFFFF001FFC003FFE0007F E003FF80007FF003FF80003FF803FF00001FF803FF00001FFC03FF00000FFC03FF00000F FE03FF00000FFE03FF00000FFE03FF000007FF03FF000007FF03FF000007FF03FF000007 FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007FF03FF000007 FF03FF00000FFE03FF00000FFE03FF00000FFE03FF00001FFC03FF00001FFC03FF00001F F803FF80003FF003FFC0007FF003FFE000FFE003FFF001FF8003FFFC07FF0003FF3FFFFC 0003FF0FFFF00003FF01FF000003FF0000000003FF0000000003FF0000000003FF000000 0003FF0000000003FF0000000003FF0000000003FF0000000003FF0000000003FF000000 0003FF0000000003FF0000000003FF00000000FFFFFC000000FFFFFC000000FFFFFC0000 00FFFFFC000000> 48 55 -3 37 55] 112 dc [<0007800000078000000780000007800000078000000F8000000F8000000F8000000F80 00001F8000001F8000003F8000003F8000007F800000FF800001FF800007FF80001FFFFF F0FFFFFFF0FFFFFFF0FFFFFFF001FF800001FF800001FF800001FF800001FF800001FF80 0001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF800001FF80 0001FF800001FF800001FF800001FF800001FF803C01FF803C01FF803C01FF803C01FF80 3C01FF803C01FF803C01FF803C00FF807800FFC078007FC0F8007FE1F0001FFFE00007FF C00001FF00> 32 55 -2 54 38] 116 dc [<0001FFC000000FFFF800003FFFFE0000FF80FF0001FE003F8007FC001FC00FF8000FE0 0FF8000FF01FF00007F03FF00007F83FF00007F87FE00007F87FE00003FC7FE00003FC7F E00003FCFFE00003FCFFFFFFFFFCFFFFFFFFFCFFFFFFFFFCFFE0000000FFE0000000FFE0 000000FFE00000007FE00000007FE00000007FE00000003FE00000003FF000003C1FF000 003C1FF000003C0FF800007807FC0000F803FE0001F001FF0007E000FFC03FC0003FFFFF 000007FFFC000000FFE000> 40 38 -3 37 45] 101 dc [<00FE03F000FFFE0FFE00FFFE3FFF80FFFE3C7FC0FFFE707FC007FEF0FFE003FEE0FFE0 03FEC0FFE003FFC0FFE003FF80FFE003FF807FC003FF803F8003FF800E0003FF00000003 FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF 00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00000003FF00 000003FF00000003FF00000003FF00000003FF00000003FF000000FFFFFE0000FFFFFE00 00FFFFFE0000FFFFFE0000> 40 38 -3 37 41] 114 dc [<00001E000000003E00000000FE00000003FE0000003FFE0000FFFFFE0000FFFFFE0000 FFFFFE0000FFCFFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000 0FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000F FE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE 0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE00 00000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000 000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE0000000FFE000000 0FFE0000000FFE00007FFFFFFFC07FFFFFFFC07FFFFFFFC07FFFFFFFC0> 40 56 -7 55 49] 49 dc cmbx10.746 sf [<3FFFFFFFFFFFFFFFFF003FFFFFFFFFFFFFFFFF003FFFFFFFFFFFFFFFFF003FFFFFFFFF FFFFFFFF003FFFFFFFFFFFFFFFFF003FFF0003FFF8003FFF007FF80003FFF80007FF807F E00003FFF80001FF807FC00003FFF80000FF807F800003FFF800007F807F000003FFF800 003F807F000003FFF800003F807E000003FFF800001F807E000003FFF800001F807E0000 03FFF800000F807C000003FFF800000F807C000003FFF800000F807C000003FFF800000F 807C000003FFF800000F80FC000003FFF800000FC0F8000003FFF8000007C0F8000003FF F8000007C0F8000003FFF8000007C0F8000003FFF8000007C0F8000003FFF8000007C000 000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF800 00000000000003FFF80000000000000003FFF80000000000000003FFF800000000000000 03FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF8000000 0000000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FF F80000000000000003FFF80000000000000003FFF80000000000000003FFF80000000000 000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF800 00000000000003FFF80000000000000003FFF80000000000000003FFF800000000000000 03FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF8000000 0000000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FF F80000000000000003FFF80000000000000003FFF80000000000000003FFF80000000000 000003FFF80000000000000003FFF80000000000000003FFF80000000000000003FFF800 0000000003FFFFFFFFFFF800000003FFFFFFFFFFF800000003FFFFFFFFFFF800000003FF FFFFFFFFF800000003FFFFFFFFFFF80000> 80 70 -4 69 83] 84 dc [<007FE000003FF000FFFFE0007FFFF000FFFFE0007FFFF000FFFFE0007FFFF000FFFFE0 007FFFF000FFFFE0007FFFF00003FFE00001FFF00001FFE00000FFF00001FFE00000FFF0 0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0 0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0 0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0 0000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF0 0001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE00000FFF00001FFE0 0000FFF00001FFE00000FFF00001FFE00001FFF00001FFE00001FFF00001FFE00001FFF0 0001FFE00003FFF00000FFE00007FFF00000FFE0000F7FF000007FE0001F7FF000007FF0 003E7FF800003FFC00FC7FFFE0001FFFFFF87FFFE00007FFFFE07FFFE00001FFFF807FFF E000003FFE007FFFE0> 64 46 -4 45 66] 117 dc [ 40 71 -3 70 45] 73 dc cmbx10.432 sf [<000E00001E00007E0007FE00FFFE00FFFE00F8FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE0000FE 007FFFFE7FFFFE7FFFFE> 24 39 -5 38 34] 49 dc [<1C007F00FF80FF80FF80FF80FF807F001C00> 16 9 -5 8 19] 46 dc [ 72 41 -1 40 71] 87 dc [ 40 42 -3 41 38] 104 dc [<01FF800007FFF0000F81FC001FC0FE001FC07F001FC07F001FC03F800F803F8000003F 8000003F8000003F80000FFF8000FFFF8007FC3F801FE03F803F803F807F803F807F003F 80FE003F80FE003F80FE003F80FE007F80FF007F807F00FFC03F83DFFC0FFF0FFC01FC03 FC> 32 27 -2 26 33] 97 dc [<00700000700000700000700000F00000F00000F00001F00003F00003F00007F0001FFF F0FFFFF0FFFFF007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0 0007F00007F00007F00007F03807F03807F03807F03807F03807F03807F03803F87001F8 F000FFE0001F80> 24 38 -1 37 27] 116 dc [<07001FC01FE03FE03FE03FE01FE01FC007000000000000000000000000000000FFE0FF E0FFE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00FE00F E00FE00FE00FE00FE0FFFEFFFEFFFE> 16 43 -3 42 20] 105 dc [<03FE300FFFF03E03F07800F07000F0F00070F00070F80070FC0000FFE000FFFE007FFF C03FFFE01FFFF007FFF800FFFC0003FC0000FCE0007CE0003CF0003CF0003CF80078FC00 78FF01F0F7FFC0C1FF00> 24 27 -2 26 27] 115 dc [ 40 41 -3 40 41] 76 dc [<003FE00001FFF80003F07E000FE03F001FC01F803F800FC03F800FC07F000FC07F0007 E0FF0007E0FF0007E0FF0007E0FFFFFFE0FFFFFFE0FF000000FF000000FF000000FF0000 007F0000007F8000003F8000E03F8001E01FC001C00FE003C003F81F8000FFFE00001FF0 00> 32 27 -2 26 32] 101 dc [ 24 27 -2 26 28] 114 dc [ 40 41 -3 40 47] 80 dc [<003FE00001FFFC0003F07E000FC01F801F800FC03F800FE03F0007E07F0007F07F0007 F07F0007F0FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007F8FF0007 F87F0007F07F0007F03F800FE03F800FE01F800FC00FC01F8007F07F0001FFFC00003FE0 00> 32 27 -2 26 34] 111 dc [<00FF81F003FFE7FC0FC1FE7C1F80FC7C3F80FE7C3F007E107F007F007F007F007F007F 007F007F007F007F007F007F003F007E003F80FE001F80FC000FC1F8001FFFE00018FF80 00380000003C0000003C0000003E0000003FFFF8003FFFFF001FFFFFC00FFFFFE007FFFF F01FFFFFF07E0007F87C0001F8F80001F8F80000F8F80000F8F80000F8FC0001F87E0003 F03F0007E00FC01F8003FFFE00007FF000> 32 40 -2 26 34] 103 dc [ 56 27 -3 26 60] 109 dc [ 40 27 -3 26 38] 110 dc [<01FF000FFFE03E03F87803FC7801FCFE01FEFE01FEFE01FEFE01FE7C01FE3803FC0003 FC0007F0000FE0000F80001F00001E00003C00003C000078000078000070000070000070 0000700000700000700000000000000000000000000000000000000000700001FC0003FE 0003FE0003FE0003FE0003FE0001FC00007000> 24 42 -4 41 32] 63 dc cmbx10.300 sf [ 16 4 -1 10 16] 45 dc cmr10.300 sf [<08081010202040404040808080808080B0B0F8F878783030> 16 12 -6 28 21] 92 dc [<6060F0F0F8F8686808080808080810101010202040408080> 16 12 -1 28 21] 34 dc [<003F07FC0001C0DC1C000381F03C000701F03C000E01E01C000E00E01C000E00E01C00 0E00E01C000E00E01C000E00E01C000E00E01C00FFFFFFFC000E00E01C000E00E01C000E 00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00 E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C000E00E01C007FC7FC FF80> 40 29 0 28 35] 15 dc [<60F0F0600000000000000000000060F0F060> 8 18 -4 17 12] 58 dc 16 @bop1 cmbx10.622 sf 177 378(Chapter)s 34(1)h cmbx10.746 sf 177 610(A)s 40(T)h -10(utorial)h 41(In)h -3(tro)h 3(duction)h cmbx10.432 sf 177 876(1.1)s 70(What)h 23(is)h 22(Literate)h 22(Programm)h -2(i)h -1(ng?)h cmbx10.300 sf 227 1116(literate)s 11(programming)h 1470 1963(Figure)s 14(1)h 295 2536(Re-orderin)s -1(g)h 14(of)h 16(co)h 1(de:)h 775 2635([BSI82])s cmr10.300 sf 177 992(A)s 20(traditional)h 18(computer)h 19(program)h 18(consists)h 20(of)h 19(a)h 19(text)h 20(\014le)h 19(con)h -1(taining)h 19(program)h 18(co)h 1(de.)h 35(Scattered)h 21(in)h 177 1041(amongst)s 12(the)h 15(program)h 12(co)h 1(de)h 15(are)h 14(commen)h -1(ts)h 12(whic)h -1(h)h 14(describ)h 1(e)h 16(the)h 14(v)h -2(arious)h 13(parts)h 15(of)h 13(the)h 15(co)h 1(de.)h 177 1116(In)s 468(the)h 13(emphasis)h 11(is)h 12(rev)h -1(ersed.)h 20(Instead)h 13(of)h 11(writing)h 11(co)h 1(de)h 13(con)h -1(taining)h 11(do)h 1(cumen-)h 177 1166(tation,)s 11(the)h 13(literate)h 12(programm)h -1(er)h 11(writes)h 12(do)h 1(cumen)h -1(tation)h 11(con)h -1(taining)h 11(co)h 1(de.)h 18(No)h 11(longer)h 12(do)h 1(es)h 13(the)h 12(English)h 177 1216(commen)s -1(tary)h 9(injected)h 12(in)h -1(to)h 11(a)h 11(program)h 10(ha)h -1(v)h -1(e)h 11(to)h 11(b)h 1(e)h 12(hidden)h 11(in)h 11(comm)h -1(en)h -1(t)h 10(delimiters)h 10(at)h 12(the)h 11(top)h 12(of)h 10(the)h 12(\014le,)h 177 1266(or)s 15(under)h 15(pro)h 1(cedure)h 16(headings,)h 14(or)h 15(at)h 14(the)h 15(end)h 15(of)h 14(lines.)h 19(Instead,)h 15(it)h 14(is)h 14(wrenc)h -1(hed)h 16(in)h -1(to)h 14(the)h 15(da)h -1(yligh)h -1(t)h 13(and)h 177 1315(made)s 16(the)h 17(main)h 15(fo)h 1(cus.)h 26(The)h 17(\\program")h 15(then)h 17(b)h 1(ecomes)h 17(primarily)h 14(a)h 17(do)h 1(cumen)h -1(t)h 16(directed)h 18(at)h 17(h)h -1(umans,)h 177 1365(with)s 12(the)h 13(co)h 1(de)h 14(b)h 1(eing)h 12(herded)h 14(b)h 1(et)h -1(w)h -1(een)h 14(\\co)h 1(de)h 13(delimi)h -1(ters")h 12(from)h 11(where)h 13(it)h 12(can)h 13(b)h 1(e)h 13(extracted)h 14(and)h 12(sh)h -1(u\017ed)h 177 1415(out)s 14(sidew)h -1(a)h -1(ys)h 14(to)h 14(the)h 14(language)h 13(system)h 14(b)h -1(y)h 13(literate)h 15(programm)h -1(i)h -1(ng)h 12(to)h 1(ols.)h 177 1490(The)s 15(e\013ect)h 17(of)h 14(this)h 15(simple)h 13(shift)h 14(of)h 15(emphasis)h 13(can)h 15(b)h 1(e)h 16(so)h 15(profound)h 14(as)h 15(to)h 14(c)h -1(hange)h 15(one's)h 15(whole)h 15(approac)h -1(h)h 177 1540(to)s 14(programm)h -1(ing.)h 17(Under)h 15(the)h 15(literate)h 15(programm)h -1(ing)h 12(paradigm)h -1(,)h 12(the)h 15(cen)h -1(tral)h 15(activit)h -1(y)h 14(of)h 13(programm)h -1(ing)h 177 1589(b)s 1(ecomes)h 15(that)h 15(of)h 14(con)h -1(v)h -1(eying)h 14(meaning)h 13(to)h 15(other)h 15(in)h -1(telligen)h -1(t)h 14(b)h 1(eings)h 15(rather)h 15(than)h 15(merely)h 14(con)h -1(vincing)h 14(the)h 177 1639(computer)s 16(to)h 16(b)h 1(eha)h -1(v)h -1(e)h 16(in)h 16(a)h 16(particular)h 16(w)h -1(a)h -1(y)h -3(.)h 23(It)h 16(is)h 16(the)h 17(di\013erence)h 18(b)h 1(et)h -1(w)h -1(een)h 17(p)h 1(erforming)h 15(and)h 16(exp)h 1(osing)h 16(a)h 177 1689(magic)s 12(tric)h -1(k.)h 177 1764(In)s 18(order)h 18(to)h 18(program)h 16(in)h 18(a)h 17(literate)h 18(st)h -1(yle,)h 19(particular)h 17(to)h 1(ols)h 18(are)h 18(required.)h 30(The)h 19(traditional)h 16(approac)h -1(h)h 177 1814(\(used)s 15(in)h 14(the)h 14(F)h -3(unnelW)h -3(eb)h 14(system\))h 14(is)h 14(to)h 13(ha)h -1(v)h -1(e)h 14(some)h 13(sort)h 15(of)h 13(text-\014le-in/text-\014le-out)h 14(utilit)h -1(y)h 13(that)h 14(reads)h 177 1863(a)s 20(literate)h 19(program)h 18(\(con)h -1(taining)h 19(a)h 20(program)h 18(comm)h -1(en)h -1(tary)h 18(p)h 1(epp)h 1(ered)h 22(with)h 19(scraps)h 21(of)h 19(program)h 18(text\))h 177 1913(and)s 16(writes)h 16(out)h 16(a)h 16(\014le)h 16(con)h -1(taining)h 14(all)h 15(the)h 16(program)h 15(co)h 1(de)h 16(and)h 16(a)h 15(\014le)h 16(con)h -1(taining)h 15(t)h -1(yp)h 1(esetter)h 18(comma)h -1(nds)h 177 1963(representing)s 15(the)h 14(en)h -1(tire)h 15(input)h 13(do)h 1(cumen)h -1(t,)h 13(do)h 1(cumen)h -1(tation,)h 13(co)h 1(de,)h 14(and)h 14(all)h 12(\()h 175(\).)h 177 2038(Giv)s -1(en)h 15(the)h 16(coming)h 14(age)h 15(of)h 15(h)h -1(yp)h 1(ertext)h 17(systems,)h 15(this)h 16(is)h 15(probably)h 15(not)h 16(the)h 16(b)h 1(est)h 16(approac)h -1(h.)h 23(Ho)h -1(w)h -1(ev)h -1(er,)h 16(it)h 177 2087(do)s 1(es)h 12(mesh)h 11(b)h 1(eautifully)h 10(with)h 11(curren)h -1(t)h 13(text)h 12(\014les)h 12(and)h 11(comma)h -1(nd)h 10(line)h 11(in)h -1(terfaces,)h 12(the)h 12(exp)h 1(ectation)h 12(of)h 11(linear)h 177 2137(presen)s -1(tations)h 15(in)h 14(the)h 14(do)h 1(cumen)h -1(ts)h 14(w)h -1(e)h 14(read,)h 14(and)h 14(the)h 15(particular)h 13(requiremen)h -1(ts)h 15(of)h 13(curren)h -1(t)h 15(programm)h -1(ing)h 177 2187(languages)s 14(and)h 13(t)h -1(yp)h 1(esetting)h 15(systems.)h 18(It)h 14(is)h 14(certainly)h 14(not)h 14(a)h 13(bad)h 14(approac)h -1(h.)h 177 2262(With)s 16(this)h 17(structure)h 18(in)h 16(place,)h 17(the)h 17(literate)h 17(programm)h -1(ing)h 14(system)h 16(can)h 17(pro)h -1(vide)h 16(far)h 16(more)h 16(than)h 16(just)h 17(a)h 177 2312(rev)s -1(ersal)h 18(of)h 16(the)h 18(priorit)h -1(y)h 16(of)h 17(comm)h -1(en)h -1(ts)h 16(and)h 17(co)h 1(de.)h 28(In)h 17(its)h 17(full)h 15(blo)h -1(wn)h 17(form,)h 15(a)h 17(go)h 1(o)h 1(d)h 16(literate)h 18(program-)h 177 2361(ming)s 14(facilit)h -1(y)h 14(can)h 15(pro)h -1(vide)h 16(total)h 15(supp)h 1(ort)h 16(for)h 15(the)h 16(essen)h -1(tial)h 16(thrust)h 17(of)h 15(literate)h 16(programm)h -1(i)h -1(ng,)h 13(whic)h -1(h)h 16(is)h 177 2411(that)s 15(computer)h 15(programs)h 14(should)h 15(b)h 1(e)h 16(written)h 16(more)h 14(for)h 15(the)h 16(h)h -1(uman)h 14(reader)h 16(than)h 15(for)h 15(the)h 16(compiler.)h 21(In)h 177 2461(particular,)s 13(a)h 14(literate)h 14(programm)h -1(ing)h 11(system)h 14(can)h 14(pro)h -1(vide:)h 743 2536(Programm)s -1(i)h -1(ng)h 12(languages)h 14(often)h 14(force)h 15(the)h 15(programm)h -1(er)h 13(to)h 14(giv)h -1(e)h 295 2586(the)s 14(v)h -2(arious)h 12(parts)h 13(of)h 12(a)h 13(computer)h 12(program)h 11(in)h 12(a)h 13(particular)h 12(order.)h 19(F)h -3(or)h 12(example,)h 11(the)h 14(P)h -1(as-)h 295 2635(cal)s 13(programm)h -1(ing)h 11(language)h 165(imp)h 1(oses)h 12(the)h 14(ordering:)h 17(constan)h -1(ts,)h 14(t)h -1(yp)h 1(es,)h 14(v)h -2(ariables,)h 295 2685(pro)s 1(cedures)h 1(,)h 15(co)h 1(de.)h 20(P)h -1(ascal)h 14(also)h 14(requires)h 15(that)h 15(pro)h 1(cedures)h 16(app)h 1(ear)h 15(in)h 14(an)h 14(order)h 15(consisten)h -1(t)h 295 2735(with)s 15(the)h 15(partial)h 14(ordering)h 15(imp)h 1(osed)h 13(b)h -1(y)h 15(the)h 15(static)h 15(call)h 14(graph)h 15(\(but)h 15(forw)h -1(ard)h 15(declarations)h 295 2785(allo)s -1(w)h 13(this)h 15(to)h 15(b)h 1(e)h 15(b)h -1(ypassed\).)h 21(In)h 15(con)h -1(trast,)h 15(the)h 16(literate)h 15(st)h -1(yle)h 14(requires)h 16(that)h 15(the)h 15(program-)h 295 2835(mer)s 11(b)h 1(e)h 13(free)h 12(to)h 12(presen)h -1(t)h 13(the)h 12(computer)h 12(program)h 10(in)h 11(an)h -1(y)h 12(order)h 12(whatso)h 1(ev)h -1(er.)h 19(The)h 12(facilit)h -1(y)h 10(to)h 1042 2940(15)s 16 @eop 17 @bop0 /cmr8.300 127 @newfont cmr8.300 sf [ 24 23 -1 22 22] 76 dc [<183C3C1800000000007C1C1C1C1C1C1C1C1C1C1C1C1CFF> 8 23 0 22 10] 105 dc [<080008000800180018003800FF80380038003800380038003800380038403840384038 401C800F00> 16 20 -1 19 14] 116 dc [<0FC0186030307038E018FFF8E000E000E000600070083010183007C0> 16 14 -1 13 16] 101 dc [ 16 14 0 13 14] 114 dc [<1FC0386038301038003803F81E3830387038E039E039E07970FF1F1E> 16 14 -1 13 18] 97 dc [ 24 20 0 13 20] 112 dc [<07C018303018600C600CE00EE00EE00EE00EE00E701C3018183007C0> 16 14 -1 13 18] 111 dc [<0F9E18E33060707070707070306018C02F80200060003FE03FF83FFC600EC006C006C0 06600C38380FE0> 16 21 -1 13 18] 103 dc [ 32 14 0 13 30] 109 dc [ 24 14 0 13 20] 110 dc [ 16 23 0 22 10] 108 dc [<1F4060C0C040C040E000FF007F801FC001E080608060C060E0C09F00> 16 14 -1 13 14] 115 dc [<07F01838303870106000E000E000E000E000600070083008183007C0> 16 14 -1 13 16] 99 dc [ 24 14 0 13 20] 117 dc [<007E00000E00000E00000E00000E00000E00000E00000E00000E0007CE001C3E00300E 00700E00600E00E00E00E00E00E00E00E00E00600E00700E00301E00182E0007CFC0> 24 23 -1 22 20] 100 dc [ 24 23 0 22 20] 98 dc [ 16 14 -1 13 16] 122 dc [<03E006700E701C201C001C001C001C001C00FF801C001C001C001C001C001C001C001C 001C001C001C001C00FF80> 16 23 0 22 11] 102 dc [ 24 14 -1 13 25] 119 dc [ 16 20 -1 13 19] 121 dc [<60F0F060> 8 4 -3 3 10] 46 dc [ 24 23 -1 22 26] 72 dc [ 16 14 -1 13 19] 118 dc [<60F0F070101020204040> 8 10 -3 3 10] 44 dc [<00FC000782000E07001C07001C02001C00001C00001C00001C0000FFFF001C07001C07 001C07001C07001C07001C07001C07001C07001C07001C07001C07001C0700FF1FE0> 24 23 0 22 20] 12 dc [ 24 23 0 22 20] 104 dc cmtt10.300 sf [<01C00001C00001C00001C00001C00001C00001C00001C000FFFF80FFFF80FFFF8001C0 0001C00001C00001C00001C00001C00001C00001C000> 24 19 -2 21 22] 43 dc [ 24 3 -2 13 22] 45 dc [ 8 32 -9 28 22] 124 dc [ 24 25 -1 24 22] 70 dc [<001F00007F8000FF8001E78001C30001C00001C0007FFF00FFFF00FFFF0001C00001C0 0001C00001C00001C00001C00001C00001C00001C00001C00001C00001C0003FFE007FFF 003FFE00> 24 25 -1 24 22] 102 dc [<7FFFE0FFFFE0FFFFE0E0E0E0E0E0E0E0E0E0E0E0E000E00000E00000E00000E00000E0 0000E00000E00000E00000E00000E00000E00000E00000E00000E00000E00007FC000FFE 0007FC00> 24 25 -1 24 22] 84 dc [<00E001E007C007000F001E003C0038007800700070007000F000E000E000E000E000E0 00E000E000F000700070007000780038003C001E000F00070007C001E000E0> 16 33 -6 28 22] 40 dc [ 16 33 -4 28 22] 41 dc [ 24 25 -1 24 22] 76 dc [<7FF800FFFE007FFF001C0F801C03801C03C01C01C01C01C01C01C01C03C01C03801C0F 801FFF001FFE001FF8001C00001C00001C00001C00001C00001C00001C00007F0000FF80 007F0000> 24 25 -1 24 22] 80 dc [<7FF800FFFE007FFF001C0F001C07801C03C01C01C01C01C01C01E01C00E01C00E01C00 E01C00E01C00E01C00E01C00E01C00E01C01C01C01C01C03C01C07801C0F807FFF00FFFE 007FF800> 24 25 0 24 22] 68 dc [<01F18007FF800FFF801F0F803C0780780780780380700380F00000E00000E00000E000 00E00000E00000E00000E00000F000007003807803807803803C07801F0F000FFE0007FC 0001F000> 24 25 -2 24 22] 67 dc [<7F1FC07F3FC07F1FC00F1C00073C0003B80003F00001F00000E00001E00001F00003B8 00073C00071C000E0E007F1FC0FF3FE07F1FC0> 24 18 -1 17 22] 120 dc 17 @bop1 cmbx10.300 sf 465 2117(Figure)s 15(1)h cmr10.300 sf 641 2117(:)s 17(T)h -3(raditional)h 12(arc)h -1(hitecture)h 16(of)h 13(literate)h 14(programm)h -1(ing)h 11(to)h 1(ols.)h 1042 2940(16)s cmr8.300 sf 343 1876(Literate)s 14(programm)h -1(ing)h 13(to)h 1(ols)h 15(could)h 15(b)h 1(e)h 15(organized)h 13(in)h 16(a)h 16(n)h -1(um)h -1(b)h 1(er)h 14(of)h 15(w)h -1(a)h -1(ys.)h 28(Ho)h -1(w)h -1(ev)h -1(er,)h 17(to)h 15(\014t)h 16(in)h 15(with)h 281 1926(curren)s -1(t)h 9(\014le)h 10(and)h 11(comma)h -1(nd)h 9(line)h 10(based)h 10(en)h -1(viron)h -1(men)h -2(ts,)h 9(most)h 10(to)h 1(ols)h 10(conform)h 9(to)h 10(the)h 11(traditio)h -1(nal)h 9(arc)h -1(hitec)h -1(tur)h -1(e)h 281 1976(sho)s -1(wn)h 8(here)h 8(in)h 9(whic)h -1(h)h 9(the)h 8(user)h 8(feeds)h 8(in)h 9(a)h 8(\014le)h 9(con)h -1(taini)h -1(ng)h 7(a)h 9(literate)h 7(program)h -1(,)h 8(and)h 8(the)h 8(literate)h 7(programm)h -1(in)h -1(g)h 281 2026(utilit)s -1(y)h 10(generate)h -1(s)h 10(program)h 9(\014les)h 11(and)h 10(a)h 12(do)h 1(cume)h -1(n)h -1(ta)h -1(tion)h 9(\014le.)h cmtt10.300 sf 526 789(+-----------)s -1(-----)h -1(-----)h -1(----)h -1(-----)h -1(-----)h -1(-----)h -1(-+)h 526 838(|)s 21(File)h 21(containing)h 20(the)h 21(program)h 21(description)h 19(|)h 526 888(|)s 21(peppered)h 21(with)h 21(scraps)h 20(of)h 21(program)h 21(code.)h 64(|)h 526 938(|)s 21(This)h 21(is)h 22(what)h 21(the)h 21(programmer)h 20(works)h 20(on.)h 65(|)h 526 988(|)s 218(\(e.g.)h 20(sloth.web\))h 325(|)h 526 1038(+-----------)s -1(-----)h -1(-----)h -1(----)h -1(-----)h -1(-----)h -1(-----)h -1(-+)h 962 1087(|)s 962 1137(v)s 657 1187(o----------)s -1(-----)h -1(----)h -1(-----)h -1(---o)h 657 1237(|)s 21(Literate)h 20(Programming)h 20(Tool)h 21(|)h 657 1287(o----------)s -1(-----)h -1(----)h -1(-----)h -1(---o)h 962 1336(|)s 526 1386(+-----------)s -1(-----)h -1(---+-)h -1(----)h -1(-----)h -1(-----)h -1(----+)h 526 1436(|)s 850(|)h 526 1486(v)s 850(v)h 330 1536(+----------)s -1(-----)h -1(---+)h 237(+-------------)h -1(-----)h -1(-----)h -1(-----)h -1(----)h -1(--+)h 330 1586(|)s 65(Traditional)h 85(|)h 239(|)h 22(Documentatio)h -1(n)h 20(file)h 21(suitable)h 20(for)h 43(|)h 330 1635(|)s 21(Computer)h 20(Program)h 21(|)h 239(|)h 22(input)h 21(into)h 21(a)h 21(typesetting)h 20(program)h 20(|)h 330 1685(|)s 43(\(e.g.)h 21(sloth.c\))h 42(|)h 239(|)h 174(\(e.g.)h 21(sloth.tex\))h 216(|)h 330 1735(+----------)s -1(-----)h -1(---+)h 237(+-------------)h -1(-----)h -1(-----)h -1(-----)h -1(----)h -1(--+)h 17 @eop 18 @bop0 cmsy10.300 sf [<020000000004000000000400000000080000000010000000002000000000FFFFFFFFF0 FFFFFFFFF0200000000010000000000800000000040000000004000000000200000000> 40 14 -3 16 42] 32 dc cmtt10.300 sf [<000180000780001F80003E0000F80001F00007C0000F80003E0000FC0000F00000FC00 003E00000F800007C00001F00000F800003E00001F80000780000180> 24 21 -2 22 22] 60 dc [<70F8F8F870000000000000000070F8F8F870> 8 18 -8 17 22] 58 dc [<7FFF00FFFF80FFFF80000000000000000000000000000000FFFF80FFFF807FFF00> 24 11 -2 17 22] 61 dc [<387C7C7C380000000000000000387C7C7C3C1C3C38F8F060> 8 24 -7 17 22] 59 dc cmti10.300 sf [<3C1E0780266318C04683A0E04703C0E08E0380E08E0380E00E0380E00E0380E01C0701 C01C0701C01C0701C01C070380380E0388380E0388380E0708380E0710701C0320300C01 C0> 32 18 -4 17 34] 109 dc [<1E01832703874703874703838707018707010E07010E07011C0E021C0E021C0E021C0E 04180C04181C04181C081C1C100C263007C3C0> 24 18 -4 17 28] 119 dc [<3C3C002646004687004707008E07008E07000E07000E07001C0E001C0E001C0E001C1C 00381C40381C40383840383880701900300E00> 24 18 -4 17 23] 110 dc [<0003C0000670000C70001C60001C00001C0000380000380000380000380000380003FF 8000700000700000700000700000700000E00000E00000E00000E00000E00001C00001C0 0001C00001C00001C000038000038000038000030000030000070000C60000E60000CC00 00780000> 24 37 1 28 13] 102 dc [<001F80000380000380000700000700000700000700000E00000E00000E00000E0003DC 00063C000C3C00181C00383800303800703800703800E07000E07000E07000E07000E0E2 00C0E200C0E20061E4006264003C3800> 24 29 -5 28 21] 100 dc [<00F3018F030F06070E0E0C0E1C0E1C0E381C381C381C381C383830383038187818F00F 700070007000E000E0C0C0E1C0C3007E00> 16 26 -3 17 19] 103 dc cmbx10.300 sf [<001FE02000FFF8E003F80FE007C003E00F8001E01F0000E03E0000E03E0000607E0000 607C000060FC000000FC000000FC000000FC000000FC000000FC000000FC000000FC0000 007C0000607E0000603E0000603E0000C01F0000C00F80018007C0030003F80E0000FFFC 00001FE000> 32 28 -3 27 34] 67 dc cmr10.300 sf [<0006000000060000000600000006000000060000000600000006000000060000000600 0000060000000600000006000000060000FFFFFFE0FFFFFFE00006000000060000000600 000006000000060000000600000006000000060000000600000006000000060000000600 0000060000> 32 28 -2 23 32] 43 dc [<60F0F0600000000000000000000060F0F0701010101020204080> 8 26 -4 17 12] 59 dc 18 @bop1 cmmi10.300 sf 488 1098(<)s cmsy10.300 sf 531 1147( )s cmtt10.300 sf 264 745(while)s 21(sloth 32 39 -3 38 34] 50 dc [ 40 41 -3 40 43] 70 dc [ 40 27 -3 26 38] 117 dc [ 16 42 -3 41 20] 108 dc [ 40 42 -2 41 38] 98 dc cmr8.300 sf [ 24 23 -1 22 23] 70 dc [ 40 23 -1 22 36] 87 dc cmtt10.300 sf [<7F07F0FF8FF87F07F01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01C01 C01C01C01C01C01C01C01C01C01C01C01C01C01C01C00E03800E038007070007FF0003FE 0000F800> 24 25 0 24 22] 85 dc [<7E1FC0FF3FE07F1FC01D07001D87001D87001D87001DC7001DC7001CC7001CC7001CE7 001CE7001CE7001C67001C67001C77001C77001C37001C37001C37001C17007F1F00FF9F 007F0F00> 24 25 -1 24 22] 78 dc [<7FFFC0FFFFC07FFFC01C01C01C01C01C01C01C01C01C00001C00001C1C001C1C001FFC 001FFC001FFC001C1C001C1C001C00001C00E01C00E01C00E01C00E01C00E07FFFE0FFFF E07FFFE0> 24 25 -1 24 22] 69 dc [ 24 25 -1 24 22] 87 dc [<7FF800FFFE007FFF001C0F001C07801C03801C03801C03801C07801C07001FFF001FFE 001FFE001C1F001C03801C03C01C01C01C01C01C01C01C01C01C03C01C07807FFF80FFFF 007FFC00> 24 25 -1 24 22] 66 dc 19 @bop1 cmti10.300 sf 1539 1730(simple)s cmbx10.432 sf 177 42(1.2)s 70(What)h 23(is)h 22(F)h -6(unnelW)h -6(eb?)h cmr8.300 sf 343 1174(F)s -3(unnelW)h -3(eb)h 10(follo)h -1(ws)h 11(the)h 11(traditio)h -1(na)h -1(l)h 10(arc)h -1(hitect)h -1(ure)h 9(of)h 11(literate)h 10(program)h -1(min)h -1(g)h 10(to)h 1(ols.)h cmbx10.300 sf 910 210(input)s 16(\014le)h 462(pro)h 1(duct)h 17(\014les)h 177 260(do)s 1(cumen)h -1(tati)h -1(on)h 13(\014le)h 29(Figure)h 14(2)h 709 1266(Figure)s 14(2)h 862 1527(output)s 12(\014les)h 295 1730(Simpli)s -1(ci)h -1(t)h -1(y:)h 295 1957(Reliabi)s -1(li)h -1(t)h -2(y:)h 295 2283(Language)s 16(and)h 17(T)h -1(yp)h 1(esetter)h 15(Indep)h 1(endence:)h 1320 2332([BSI82])s 593 2382([Kn)s -1(uth8)h -1(4])h 295 2559(P)s -1(ortabil)h -1(i)h -1(t)h -2(y:)h 295 2735(Con)s -1(troll)h -1(abl)h -1(e:)h cmtt10.300 sf 828 210(.fw)s 831 386(+-----------)s -1(+)h 831 436(|)s 22(sloth.fw)h 41(|)h 831 485(+-----------)s -1(+)h 962 535(|)s 962 585(v)s 744 635(o-----------)s -1(----)h -1(----o)h 744 685(|)s 21(FUNNELWEB)h 20(Program)h 21(|)h 744 734(o-----------)s -1(----)h -1(----o)h 962 784(|)s 526 834(+-----------)s -1(-----)h -1(---+-)h -1(----)h -1(-----)h -1(-----)h -1(-+)h 526 884(|)s 784(|)h 526 934(v)s 784(v)h 221 983(+----------)s -1(-----)h -1(-----)h -1(-----)h -1(----+)h 85(+---------)h -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(---+)h 221 1033(|)s 21(Product)h 21(File)h 21(\(e.g.)h 20(sloth.c\))h 21(|)h 87(|)h 21(Documentation)h 19(File)h 21(\(sloth.tex\))h 20(|)h 221 1083(+----------)s -1(-----)h -1(-----)h -1(-----)h -1(----+)h 85(+---------)h -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(---+)h cmr10.300 sf 177 160(F)s -3(unnelW)h -3(eb)h 10(is)h 11(a)h 11(particular)h 10(literate)h 11(programm)h -1(ing)h 8(system)h 11(that)h 11(is)h 10(implem)h -1(en)h -1(ted)h 10(b)h -1(y)h 10(a)h 11(single)h 10(C)h 11(program.)h 177 210(F)s -3(unnelW)h -3(eb)h 16(tak)h -1(es)h 17(as)h 16(input)h 17(a)h 16(single)h 306(and)h 16(writes)h 17(one)h 17(or)h 16(more)h 296(and)h 16(a)h 579 260(\()s 175(\).)h 884 1266(:)s 18(Arc)h -1(hitecture)h 16(of)h 14(F)h -3(unnelW)h -3(eb.)h 177 1378(In)s 10(literate)h 9(programmi)h -1(ng)h 7(systems,)h 10(it)h 10(is)h 9(usual)h 9(to)h 10(refer)h 10(to)h 10(the)h 10(pro)h 1(duct)h 10(\014le)h 10(as)h 10(a)h 9(\\program)h 7(\014le".)h 17(Ho)h -1(w)h -1(ev)h -1(er,)h 177 1427(as)s 19(F)h -3(unnelW)h -3(eb)h 18(is)h 18(a)h 18(general)h 19(to)h 1(ol)h 18(that)h 18(can)h 19(b)h 1(e)h 19(used)h 20(to)h 18(prepare)h 20(all)h 17(sorts)h 19(of)h 18(text)h 19(\014les)h 19(that)h 19(are)h 19(not)h 177 1477(computer)s 18(programs,)h 18(the)h 18(more)h 18(generic)h 19(term)h 17(\\pro)h 1(duct)h 19(\014le")h 18(w)h -1(as)h 18(c)h -1(hosen.)h 32(Pro)h 1(duct)h 20(\014les)h 18(should)h 18(b)h 1(e)h 177 1527(carefully)s 13(distinguished)h 13(from)h 11(the)h 14(term)h 261(whic)h -1(h)h 13(refers)h 14(to)h 13(all)h 12(of)h 12(the)h 14(output)h 13(\014les)h 14(pro)h 1(duced)h 177 1577(b)s -1(y)h 14(F)h -3(unnelW)h -3(eb.)h 177 1654(F)s -3(unnelW)h -3(eb)h 14(is)h 13(distinguished)h 14(b)h -1(y)h 14(the)h 14(follo)h -1(wing)h 12(c)h -1(haracteristics:)h 539 1730(A)s 15(go)h -1(v)h -1(erning)h 15(design)h 15(goal)h 14(of)h 15(F)h -3(unnelW)h -3(eb)h 14(is)h 15(to)h 15(pro)h -1(vide)h 15(a)h 145(to)h 1(ol)h 15(that)h 295 1780(could)s 17(b)h 1(e)h 17(easily)h 16(learn)h -1(t)h 17(and)h 16(completely)h 16(mastered.)h 26(This)h 17(man)h -1(ual)h 14(is)h 17(thic)h -1(k)h 16(b)h 1(ecause)h 19(it)h 16(is)h 295 1830(comprehensiv)s -1(e)h 17(and)h 15(lingers)h 16(on)h 16(the)h 17(w)h -1(a)h -1(ys)h 16(in)h 15(whic)h -1(h)h 16(F)h -3(unnelW)h -3(eb)h 16(can)h 16(b)h 1(e)h 16(used.)h 26(The)h 16(to)h 1(ol)h 295 1880(itself)s 14(is)h 14(quite)h 13(simple.)h 549 1957(Another)s 17(design)h 17(goal)h 16(is)h 17(to)h 16(pro)h -1(vide)h 17(a)h 16(to)h 1(ol)h 16(that)h 17(will)h 15(protect)h 18(the)h 18(user)h 18(as)h 295 2007(m)s -1(uc)h -1(h)h 18(as)h 19(p)h 1(ossible)h 19(from)h 17(silly)h 18(errors.)h 34(Macro)h 19(prepro)h 1(ces)h 1(sors)h 21(are)h 20(notorious)h 18(for)h 19(causing)h 295 2056(obscure)s 22(errors.)h 38(Ev)h -1(ery)h 21(attempt)h 19(has)h 20(b)h 1(een)h 22(made)h 19(in)h 19(F)h -3(unnelW)h -3(eb)h 20(to)h 20(k)h -1(eep)h 21(the)h 21(syn)h -1(tax)h 295 2106(robust.)s 31(F)h -3(or)h 18(example,)h 17(in)h 18(F)h -3(unnelW)h -3(eb)h 17(the)h 19(syn)h -1(tax)h 18(of)h 17(macro)h 17(calls)h 18(has)h 18(b)h 1(een)h 19(purp)h 1(osely)h 295 2156(designed)s 21(to)h 19(b)h 1(e)h 21(highly)h 19(visible)h 19(so)h 20(that)h 20(the)h 20(reader)h 21(is)h 20(alw)h -1(a)h -1(ys)h 18(a)h -1(w)h -1(are)h 20(when)h 20(the)h 21(macro)h 295 2206(facilit)s -1(y)h 12(is)h 14(b)h 1(eing)h 14(in)h -1(v)h -1(ok)h -1(ed.)h 1169 2283(Unlik)s -1(e)h 14(Kn)h -1(uth's)h 16(original)h 13(W)h -3(eb)h 15(system)h 295 2332(whic)s -1(h)h 16(w)h -1(as)h 16(sp)h 1(eci\014c)h 17(to)h 16(the)h 17(P)h -1(ascal)h 16(programm)h -1(i)h -1(ng)h 14(language)h 168(and)h 16(the)h 16(T)h 1667 2341(E)s 1690 2332(X)s 16(t)h -1(yp)h 1(e-)h 295 2382(setting)s 16(language)h 209(,)h 14(F)h -3(unnelW)h -3(eb)h 14(striv)h -1(es)h 17(to)h 15(b)h 1(e)h 16(language)h 14(and)h 15(t)h -1(yp)h 1(esetter)h 18(inde-)h 295 2432(p)s 1(enden)h -1(t.)h 19(The)h 14(curren)h -1(t)h 14(v)h -1(ersion)h 13(of)h 13(F)h -3(unnelW)h -3(eb)h 12(is)h 13(completely)h 12(language)h 12(indep)h 1(enden)h -1(t,)h 14(but)h 295 2482(is)s 14(still)h 13(somewhat)h 13(dep)h 1(enden)h -1(t)h 16(on)h 13(the)h 15(T)h 965 2491(E)s 988 2482(X)s 14(t)h -1(yp)h 1(esetter)h 16(language.)h 551 2559(F)s -3(unnelW)h -3(eb)h 10(has)h 10(b)h 1(een)h 12(written)h 11(in)h 10(the)h 11(C)h 10(programm)h -1(ing)h 8(language)h 9(with)h 10(great)h 295 2608(emphasis)s 14(on)h 14(p)h 1(ortabilit)h -1(y)h -3(.)h 18(F)h -3(unnelW)h -3(eb)h 14(curren)h -1(tly)h 15(runs)h 16(on)h 14(the)h 15(Sun,)h 14(V)h -5(AX,)h 15(IBM)h 15(PC,)h 14(and)h 295 2658(Mac.)s 583 2735(F)s -3(unnelW)h -3(eb)h 10(is)h 11(an)h 10(extremely)h 11(con)h -1(trollable)h 10(to)h 1(ol.)h 16(T)h -3(o)h 11(protect)h 12(users')h 12(in)h -1(v)h -1(est-)h 295 2785(men)s -1(t)h 11(in)h 12(source)h 13(\014les)h 13(constructed)h 14(in)h 12(the)h 12(F)h -3(unnelW)h -3(eb)h 12(macro)h 11(language,)h 11(the)h 12(C)h 12(source)h 14(co)h 1(de)h 295 2835(to)s 15(F)h -3(unnelW)h -3(eb)h 14(has)h 15(b)h 1(een)h 16(released)h 16(under)h 16(GNU)h 14(license.)h 22(This)h 14(means)h 14(that)h 15(it)h 14(will)h 14(alw)h -1(a)h -1(ys)h 1042 2940(18)s 19 @eop 20 @bop0 cmbx10.300 sf [<7FFFFC7FFFFC7E01F87803F87003F0E007E0E007E0C00FC0C01FC0C01F80003F00007F 00007E0000FC0000FC0001F80003F80603F00607E0060FE0060FC00E1F800E1F801C3F00 1C7F003C7E00FCFFFFFCFFFFFC> 24 28 -3 27 29] 90 dc [ 32 28 -2 27 31] 69 dc cmbx10.432 sf [<007F800003FFF00007FFFC001F81FE001F00FF003F80FF003F807F803FC07F803F807F 803F807F801F007F800000FF800000FF000000FF000001FE000003F8000007F00000FFC0 0000FFF0000001FC000000FF0000007F8000007FC000003FC000003FE000003FE000003F E03C003FE07E003FE0FF003FE0FF003FE0FF003FC0FF007FC0FE007F807C00FF803F01FF 001FFFFC0007FFF00000FF8000> 32 39 -3 38 34] 51 dc [<7FFFFFFFFFC07FFFFFFFFFC07FFFFFFFFFC07F803FC03FC07E003FC007C078003FC003 C078003FC003C070003FC001C0F0003FC001E0F0003FC001E0E0003FC000E0E0003FC000 E0E0003FC000E0E0003FC000E0E0003FC000E000003FC0000000003FC0000000003FC000 0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000 0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000 0000003FC0000000003FC0000000003FC0000000003FC0000000003FC0000000003FC000 0000003FC00000007FFFFFE000007FFFFFE000007FFFFFE000> 48 40 -2 39 48] 84 dc [ 48 41 -3 40 54] 78 dc [<00000E0000001E0000003E0000007E000000FE000000FE000001FE000003FE0000077E 00000E7E00000E7E00001C7E0000387E0000707E0000E07E0000E07E0001C07E0003807E 0007007E000E007E000E007E001C007E0038007E0070007E00E0007E00FFFFFFF8FFFFFF F8FFFFFFF80000FE000000FE000000FE000000FE000000FE000000FE000000FE000000FE 00007FFFF8007FFFF8007FFFF8> 32 39 -2 38 34] 52 dc [<000003800000000007C00000000007C0000000000FE0000000000FE0000000000FE000 0000001FF0000000001FF0000000003FF8000000003FF8000000003FF80000000073FC00 00000073FC00000000F3FE00000000E1FE00000000E1FE00000001C0FF00000001C0FF00 000003C0FF80000003807F80000007807FC0000007003FC0000007003FC000000E003FE0 00000E001FE000001E001FF000001C000FF000001FFFFFF000003FFFFFF800003FFFFFF8 0000780007FC0000700003FC0000700003FC0000E00001FE0000E00001FE0001E00001FF 0001C00000FF0001C00000FF00FFFE001FFFFEFFFE001FFFFEFFFE001FFFFE> 48 41 -2 40 52] 65 dc cmtt10.300 sf [<000180000380000380000700000700000E00000E00001C00001C000038000038000070 0000700000E00000E00001C00001C0000380000380000700000700000E00000E00001C00 001C0000380000380000700000700000E00000E00000C00000> 24 32 -2 28 22] 47 dc [<00F80003FE000FFF001F0F003E0F003C0F00780600700000F00000F3F800EFFE00FFFE 00F80F00F00780F00780E00380F00380F00380700380780780780F003C1F001FFE000FF8 0003E000> 24 25 -2 24 22] 54 dc cmti10.300 sf [<01FFFFC0003C01C0003800C00038008000380080003800800070008000700080007020 800070200000E0400000E0400000E0C00000FFC00001C0800001C0800001C0800001C080 0003810000038000000380000003800000070000000700000007000000070000000F0000 00FFF00000> 32 28 -3 27 27] 70 dc [ 40 29 -9 27 41] 87 dc [<3F00070007000E000E000E000E001C001C001C001C0039C03E60383038307038703870 387038E070E070E070E060E0E0C0C0C1C0618063003C00> 16 29 -5 28 19] 98 dc [<01FFCFFE003C01E0003801C0003801C0003801C0003801C00070038000700380007003 800070038000E0070000E0070000E0070000FFFF0001C00E0001C00E0001C00E0001C00E 0003801C0003801C0003801C0003801C00070038000700380007003800070038000F0078 00FFE7FF00> 32 28 -3 27 31] 72 dc [<0FC00001C00001C0000380000380000380000380000700000700000700000700000E0F 000E11000E23800E43801C83001C80001D00001E00003F800039C00038E00038E00070E2 0070E20070E20070E400E06400603800> 24 29 -3 28 19] 107 dc [<183C3C3C0404080810204080> 8 12 -9 28 13] 39 dc [<01FE0007F8003E000780002E000F00002E001700002E001700002E002700004E002E00 004E004E00004E004E00004E008E00008E011C00008E011C00008E021C00008E021C0001 070438000107043800010708380001071038000207107000020720700002072070000207 407000040740E000040780E000040700E0000C0700E0001C0601E000FF861FFC00> 40 28 -3 27 37] 77 dc [<0000180000001800000038000000380000007800000078000000B8000001B800000138 000002380000023C0000041C0000041C0000081C0000181C0000101C0000201C0000201C 00007FFC0000401C0000801C0001801C0001001C0002001C0002001C0004000E000C000E 001C001E00FF00FFC0> 32 29 -2 28 31] 65 dc [<070E0019910010E38020E38041C30041C00001C00001C0000380000380000380000380 00070200670200E70400CB04008B080070F000> 24 18 -3 17 19] 120 dc [<060F0F06000000000000000000003078F060> 8 18 -4 17 13] 58 dc [<1FFFFFC01C0701C0300E00C0200E0080600E0080400E0080401C0080801C0080801C00 80001C000000380000003800000038000000380000007000000070000000700000007000 0000E0000000E0000000E0000000E0000001C0000001C0000001C0000001C0000003C000 007FFE0000> 32 28 -7 27 30] 84 dc [<01FFE0003C0000380000380000380000380000700000700000700000700000E00000E0 0000E00000E00001C00001C00001C00001C0000380080380080380080380100700100700 300700600700E00E03C0FFFFC0> 24 28 -3 27 26] 76 dc cmr10.300 sf [ 32 28 0 27 31] 89 dc 20 @bop1 cmcsc10.300 sf 1727 2405(a)s cmbx10.300 sf 295 217(A)s 18(Pro)h 1(ducti)h -1(on)h 15(T)h -4(o)h 1(ol:)h 592 1204([ANZE])s 281 1450(F)s 807 1699([Humphries91])s cmbx10.432 sf 177 660(1.3)s 70(The)h 22(Name)h 20(F)h -6(unnelW)h -6(eb)h 177 1866(1.4)s 70(A)h 23(F)h -6(unnelW)h -6(eb)h 22(T)h -6(utorial)h cmtt10.300 sf 473 2509(/fwdir/user)s -1(man/c)h -1(h1.te)h -1(x)h 231 2559(/fwdir/test)s -1(s/)h 413(ex01.fw)h 174(ex16.fw)h 707 2609(hi01.fw)s 168(hi10.fw)h 1030 2785(fw)s cmti10.300 sf 1421 493(F)s -3(unnelWeb)h 12(Hacker's)h 10(Manual)h 1498 955(A)s -1(tr)h -2(ax)h 12(r)h -2(obustus)h 626 1649(A)s 15(Me)h -2(gastar's)h 14(Mantr)h -2(as:)h 19(Things)h 15(that)h 15(Me)h -2(an)h 16(a)h 15(L)h -2(ot)h 15(to)h 14(Me)h cmr10.300 sf 295 42(b)s 1(e)h 17(a)h -1(v)h -2(aila)h -1(ble)h 14(to)h 16(ev)h -1(ery)h -1(one.)h 24(F)h -3(urthermore,)h 16(license)h 17(has)h 15(b)h 1(een)h 17(gran)h -1(ted)h 16(for)h 16(the)h 16(F)h -3(unnelW)h -3(eb)h 295 91(User's)s 17(Man)h -1(ual)h 15(and)h 16(F)h -3(unnelW)h -3(eb)h 15(Hac)h -1(k)h -1(er's)h 17(Man)h -1(ual)h 15(to)h 15(b)h 1(e)h 17(copied)h 16(freely)h 16(so)h 16(long)h 15(as)h 16(they)h 295 141(are)s 14(not)h 13(mo)h 1(di\014ed.)h 16(All)h 12(this)h 13(means)h 13(that)h 13(F)h -3(unnelW)h -3(eb)h 12(is)h 13(not)h 13(going)h 12(to)h 13(disapp)h 1(ear)h 13(suddenly)h -3(.)h 725 217(Ab)s 1(o)h -1(v)h -1(e)h 16(all,)h 13(F)h -3(unnelW)h -3(eb)h 15(has)h 15(b)h 1(een)h 16(designed)h 16(to)h 15(b)h 1(e)h 16(a)h 14(pro)h 1(duction)h 295 267(to)s 1(ol)h 12(and)h 13(ev)h -1(ery)h 13(e\013ort)h 13(has)h 13(b)h 1(een)h 14(made)h 11(to)h 12(ensure)h 15(that)h 12(it)h 12(will)h 11(op)h 1(erate)h 14(e\013ectiv)h -1(ely)h 13(in)h 13(a)h 12(pro-)h 295 317(fessional)s 13(en)h -1(vironmen)h -1(t.)h 16(F)h -3(unnelW)h -3(eb)h 13(is)h 13(\\op)h 1(en")h 13(and)h 13(p)h 1(ortable.)h 18(There)h 14(is)h 13(a)h 12(comprehensiv)h -1(e)h 295 367(user)s 18(man)h -1(ual.)h 24(Its)h 17(error)h 17(messages)h 17(are)h 17(comprehensiv)h -1(e.)h 26(It)h 17(is)h 16(fast.)h 26(Finally)h -3(,)h 15(it)h 16(has)h 17(b)h 1(een)h 295 417(designed)s 15(with)h 13(the)h 15(exp)h 1(erience)h 16(of)h 13(three)h 15(y)h -1(ears)h 15(of)h 13(using)h 14(F)h -3(unnelW)h -3(eb)h 13(V1.)h 177 493(F)s -3(or)h 9(more)h 9(informati)h -1(on)h 8(on)h 9(the)h 10(history)h 10(and)h 9(design)h 10(of)h 9(F)h -3(unnelW)h -3(eb,)h 9(see)h 11(the)h 525(.)h 177 779(The)s 16(name)h 14(\\F)h -3(unnelW)h -3(eb")h 14(w)h -1(as)h 15(c)h -1(hosen)h 17(b)h 1(ecause)h 17(it)h 14(con)h -1(tains)h 16(the)h 16(name)h 14(\\WEB",)h 14(whic)h -1(h)h 15(is)h 15(the)h 16(name)h 14(of)h 177 828(Kn)s -1(uth's)h 14(system.)h 18(It)h 14(w)h -1(as)h 14(also)h 13(c)h -1(hosen)h 15(b)h 1(ecause)h 16(it)h 13(has)h 14(a)h 14(distinctly)h 13(Australian)h 14(\015a)h -1(v)h -1(our.)h 177 905(F)s -3(unnel-w)h -1(eb)h 17(spiders)h 17(are)h 17(found)h 16(in)h 16(Northern)h 18(and)h 16(Eastern)h 18(Australia.)h 26(They)h 16(are)h 17(ab)h 1(out)h 17(three)h 18(to)h 16(four)h 177 955(cen)s -1(timetres)h 12(long)h 10(and)h 10(are)h 12(v)h -1(ery)h 11(p)h 1(oisonous.)h 17(The)h 11(Sydney)h 11(F)h -3(unnel-w)h -1(eb)h 11(spider)h 12(\()h 260(\),)h 11(comm)h -1(on)h 177 1004(in)s 15(Sydney)h -3(,)h 15(has)h 16(caused)h 16(the)h 16(most)h 14(trouble)h 16(and)h 15(has)h 16(b)h 1(een)h 16(resp)h 1(onsible)h 17(for)h 15(sev)h -1(eral)h 16(deaths.)h 23(F)h -3(unnel-w)h -1(eb)h 177 1054(spiders)s 16(lo)h -1(v)h -1(e)h 15(to)h 15(cra)h -1(wl)h 14(in)h -1(to)h 15(temp)h 1(orarily)h 13(discarded)h 16(sho)h 1(es)h 16(where)h 17(they)h 15(later)h 15(react)h 16(in)h 15(a)h 15(hostile)h 15(manner)h 177 1104(to)s 16(an)h 16(unsusp)h 1(ecting)h 17(fo)h 1(ot.)h 24(They)h 17(are)h 16(kno)h -1(wn)h 16(to)h 15(hang)h 16(on)h 16(once)h 16(they)h 17(sink)h 16(their)h 16(fangs)h 16(in.)h 24(F)h -3(unnel-w)h -1(eb)h 177 1154(spiders)s 17(deriv)h -1(e)h 16(their)h 17(name)h 15(from)h 14(the)h 16(shap)h 1(e)h 17(of)h 15(their)h 16(w)h -1(ebs)h 17(whic)h -1(h)h 16(are)h 16(horizon)h -1(tally-ali)h -1(gned)h 15(narro)h -1(wing)h 177 1204(tub)s 1(es,)h 15(op)h 1(en)h 14(at)h 14(one)h 14(end)h 159(.)h 177 1280(The)s 17(F)h -3(unnel-w)h -1(eb)h 16(spider,)h 16(lik)h -1(e)h 16(the)h 16(tiger)h 17(snak)h -1(e)h 16(and)h 16(the)h 17(white)h 16(p)h 1(oin)h -1(ter)h 16(shark,)h 16(is)h 16(secretly)h 18(regarded)h 17(b)h -1(y)h 177 1330(Australians)s 14(as)h 14(a)h 14(kind)h 13(of)h 13(national)h 13(treasure.)h 325 1450(is)s 14(for)h 13(F)h -3(unnel-w)h -1(eb)h 281 1500(Our)s 14(furry-legged)h 14(fo)h 1(e.)h 281 1550(He)s 14(sleeps)h 15(in)h 14(y)h -1(our)h 14(slipp)h 1(er)h 281 1599(And)s 14(breakfasts)h 15(on)h 13(to)h 1(e.)h 281 1649(|)s 13(One)h 15(v)h -1(erse)h 15(from)h 999(,)h 378 1699(b)s -1(y)h 13(Dame)h 13(Edna)h 14(Ev)h -1(erage)h 307(.)h 177 1985(The)s 19(remainder)h 18(of)h 18(this)h 19(c)h -1(hapter)h 20(consists)h 20(of)h 18(an)h 18(in)h -1(tro)h 1(ductory)h 19(tutorial)h 18(on)h 18(F)h -3(unnelW)h -3(eb.)h 32(Ideally)h 18(y)h -1(ou)h 177 2034(should)s 13(ha)h -1(v)h -1(e)h 12(a)h 13(w)h -1(orking)h 11(v)h -1(ersion)h 13(of)h 12(F)h -3(unnelW)h -3(eb)h 12(in)h 13(fron)h -1(t)h 12(of)h 12(y)h -1(ou)h 12(when)h 14(reading)h 12(this)h 13(c)h -1(hapter)h 14(so)h 12(that)h 13(y)h -1(ou)h 177 2084(can)s 14(try)h 14(out)h 13(the)h 14(examples)h 13(y)h -1(ourself.)h 17(There)h 15(is)h 13(no)h 13(need)h 15(to)h 13(try)h 14(all)h 12(the)h 14(examples)h 13(so)h 13(long)h 13(as)h 13(y)h -1(ou)h 13(t)h -1(yp)h 1(e)h 14(in)h 177 2134(enough)s 16(to)h 15(feel)h 15(comfortable)h 14(with)h 15(what)h 15(y)h -1(ou)h 15(are)h 16(reading.)h 22(There)h 16(is)h 15(no)h 15(harm)h 14(in)h 15(reading)h 15(this)h 16(c)h -1(hapter)h 177 2184(o\017ine)s 13(to)h 1(o,)h 14(so)h 13(long)h 13(as)h 14(y)h -1(ou)h 14(get)h 14(to)h 14(the)h 14(computer)h 14(within)h 13(a)h 13(couple)h 14(of)h 14(da)h -1(ys)h 13(to)h 14(reinforce)h 15(what)h 14(y)h -1(ou)h 13(ha)h -1(v)h -1(e)h 177 2234(read.)s 177 2310(F)s -3(or)h 13(b)h 1(est)h 15(e\013ect,)h 15(y)h -1(ou)h 13(should)h 13(create)h 15(a)h 13(new,)h 13(temp)h 1(orary)h -3(,)h 12(empt)h -1(y)h 13(directory)h 14(in)h 13(whic)h -1(h)h 13(to)h 14(exp)h 1(erimen)h -1(t)h 13(with)h 177 2360(F)s -3(unnelW)h -3(eb.)h 21(That)h 15(w)h -1(a)h -1(y)h -3(,)h 14(it)h 15(will)h 13(b)h 1(e)h 16(more)h 14(ob)h -1(vious)h 14(when)h 16(F)h -3(unnelW)h -3(eb)h 14(creates)h 17(an)h 15(output)h 15(\014le.)h 22(Y)h -3(ou)h 15(can)h 177 2410(either)s 14(t)h -1(yp)h 1(e)h 13(in)h 12(the)h 13(examples)h 11(in)h 12(this)h 13(c)h -1(hapter)h 13(directly)h -3(,)h 12(or)h 13(cop)h -1(y)h 12(and)h 13(paste)h 13(them)h 12(from)h 10(the)h 14(L)h 4(T)h 1769 2423(E)s 1792 2410(X)s 12(source)h 177 2459(\014le)s 11(for)h 11(this)h 12(c)h -1(hapter)h 12(or)h 11(the)h 12(F)h -3(unnelW)h -3(eb)h 11(test)h 12(suite.)h 18(The)h 12(source)h 12(\014le)h 11(for)h 11(this)h 12(c)h -1(hapter)h 12(should)h 11(b)h 1(e)h 12(a)h -1(v)h -2(ailabl)h -1(e)h 177 2509(in)s 14(a)h 14(\014le)h 14(suc)h -1(h)h 15(as)h 495(.)h 17(The)h 14(test)h 16(suite)h 14(should)h 14(b)h 1(e)h 15(a)h -1(v)h -2(ailabl)h -1(e)h 13(in)h 13(a)h 14(directory)h 15(suc)h -1(h)h 177 2559(as)s 302(.)h 24(The)h 16(test)h 18(\014les)h 17(called)h 185(through)h 185(con)h -1(tain)h 16(the)h 17(examples)h 16(in)h 16(this)h 177 2609(c)s -1(hapter.)h 19(The)h 14(test)h 14(\014les)h 14(called)h 179(through)h 179(con)h -1(tain)h 13(the)h 14(examples)h 13(in)h 12(the)h 14(next)h 14(c)h -1(hapter.)h 177 2685(If)s 15(y)h -1(ou)h 14(do)h 14(not)h 15(y)h -1(et)h 15(ha)h -1(v)h -1(e)h 15(an)h 14(installed)h 15(cop)h -1(y)h 14(of)h 15(F)h -3(unnelW)h -3(eb,)h 14(refer)h 15(to)h 15(Chapter)h 16(4)h 14(for)h 14(full)h 14(details)h 15(on)h 14(ho)h -1(w)h 177 2735(to)s 15(obtain)h 15(and)h 15(install)h 14(a)h 15(cop)h -1(y)h 15(of)h 14(F)h -3(unnelW)h -3(eb.)h 22(If)h 15(y)h -1(ou)h 14(are)h 16(not)h 15(sure)h 16(if)h 15(y)h -1(ou)h 14(ha)h -1(v)h -1(e)h 15(an)h 15(installed)h 15(cop)h -1(y)h -3(,)h 15(try)h 177 2785(in)s -1(v)h -1(oking)h 13(F)h -3(unnelW)h -3(eb)h 15(b)h -1(y)h 14(giving)h 14(the)h 16(comm)h -1(and)h 13(\\)h 44(".)h 20(If)h 15(this)h 15(yields)h 14(an)h 15(error)h 16(suc)h -1(h)h 16(as)h 15(\\comm)h -1(and)h 13(not)h 177 2835(found")s 13(then)h 15(y)h -1(ou)h 13(do)h 14(not)h 14(ha)h -1(v)h -1(e)h 14(a)h 13(prop)h 1(erly)h 14(installed)h 14(v)h -1(ersion)h 14(of)h 13(F)h -3(unnelW)h -3(eb.)h 1042 2940(19)s 20 @eop 21 @bop0 /cmr7.300 127 @newfont /cmr6.300 127 @newfont /cmtt8.300 127 @newfont cmr7.300 sf [<0C001C00EC000C000C000C000C000C000C000C000C000C000C000C000C000C000C000C 00FFC0> 16 19 -3 18 17] 49 dc cmr6.300 sf [<0C003C00CC000C000C000C000C000C000C000C000C000C000C000C000C00FF80> 16 16 -2 15 15] 49 dc cmtt8.300 sf [<03E00FF81E3C3C1C78FE71FEF39EE79EE70EE70EE70EE70EE79EF39C71F878F03C001E 0E0FFE03F8> 16 20 -1 19 18] 64 dc [ 16 9 -1 14 18] 61 dc cmsy10.300 sf [<003C00E001C00180038003800380038003800380038003800380038003800380038003 0007001C00F0001C00070003000380038003800380038003800380038003800380038003 800380018001C000E0003C> 16 41 -3 30 21] 102 dc [ 16 41 -3 30 21] 103 dc cmbx10.432 sf [<0C0003000F803F000FFFFE000FFFFE000FFFFC000FFFF8000FFFE0000FFFC0000FFE00 000E0000000E0000000E0000000E0000000E0000000E0000000E7FC0000FFFF8000F80FE 000E007F000C003F8000003F8000001FC000001FC000001FE000001FE018001FE07E001F E0FE001FE0FE001FE0FE001FE0FE001FE0FE001FC078003FC078003F803C007F001F01FE 000FFFFC0003FFF00000FF8000> 32 39 -3 38 34] 53 dc [ 48 41 -3 40 54] 72 dc [<00003FF80000003FF80000003FF800000003F800000003F800000003F800000003F800 000003F800000003F800000003F800000003F800000003F800000003F800000003F80000 0003F800001FE3F80000FFFBF80003F03FF8000FE00FF8001FC007F8003F8003F8003F80 03F8007F8003F8007F0003F800FF0003F800FF0003F800FF0003F800FF0003F800FF0003 F800FF0003F800FF0003F800FF0003F800FF0003F8007F0003F8007F0003F8003F8003F8 003F8007F8001FC00FF8000FE01FF80003F03FFF8000FFF3FF80003FC3FF80> 40 42 -2 41 38] 100 dc [ 48 41 -3 40 53] 68 dc [<001FF80000FFFE0003F01F000FE03F801FC03F803F803F803F803F807F801F007F0000 00FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF0000 007F0000007F8000003F8001C03FC001C01FC003C00FE0078003F01F0000FFFC00001FE0 00> 32 27 -2 26 31] 99 dc cmbx10.300 sf [<03F0600F0CE01E07E03C03E07C03E07803E0F803E0F803E0F803E0F803E0F803E0F803 E07803E07C03E03C03E01C07E00E0FE003F3E00003E00003E00003E00003E00003E00003 E0001FFC001FFC> 24 26 -2 17 25] 113 dc cmr8.300 sf [<7FFFF86038184038084038088038048038048038040038000038000038000038000038 0000380000380000380000380000380000380000380000380000380000380007FFC0> 24 23 -1 22 25] 84 dc [ 16 14 -1 13 19] 120 dc [<07C2001C2600381E00700E00600E00E00E00E00E00E00E00E00E00600E00700E00301E 001C2E0007CE00000E00000E00000E00000E00000E00007FC0> 24 20 -1 13 19] 113 dc cmti10.300 sf [<01FFC0003C0000380000380000380000380000700000700000700000700000E00000E0 0000E00000E00001C00001C00001C00001C0000380000380000380000380000700000700 000700000700000F0000FFE000> 24 28 -2 27 16] 73 dc [<183878380808101020404080> 8 12 -3 3 13] 44 dc [<3078F060> 8 4 -4 3 13] 46 dc [<01FFF800003C0E00003807000038038000380380003803800070078000700780007007 8000700F0000E00E0000E01C0000E0700000FFC00001C0C00001C0600001C0700001C070 00038070000380700003807000038070000700F0000700F0400700F0400700F0800F0078 80FFE0790000001E00> 32 29 -3 27 30] 82 dc [<0003F020001E0C60003002E000E003C001C001C0038001C0070000C00E0000801E0000 801C0000803C0000803C000000780000007800000078000000F0000000F0000000F00000 00F0000000F0000400F0000400F0000400F0000800700008007000100038002000180040 000C0180000706000001F80000> 32 30 -6 28 30] 67 dc [<0001800001C0000380000380000380000300000700000700000600000E00000C00001C 0000180000180000300000300000600000400000C600018E00010E00020E00061C000C1C 00181C003F1C0040F800803F0000380000380000700000700000700000700000E0000060 00> 24 36 -2 27 21] 52 dc [<01FC03FE001C0070003C0060002E0040002E0040002E00400047008000470080004700 80004380800083810000838100008181000081C1000101C2000101C2000100E2000100E2 000200E4000200740002007400020074000400380004003800040038000C0018001C0010 00FF801000> 32 28 -3 27 31] 78 dc cmtt10.300 sf [<1FFC003FFE007FFF00780F00F00780E00380E00380E00380E00380E00380E00380E003 80E00380E00380E00380E00380E00380E00380E00380F00780F00780780F007FFF003FFE 001FFC00> 24 25 -2 24 22] 79 dc [ 24 21 -2 22 22] 62 dc [<001F80007F8001FF8001E00001C00001C00001C00001C00001C00001C00001C00001C0 0001C00003C0007F8000FF0000FF00007F800003C00001C00001C00001C00001C00001C0 0001C00001C00001C00001C00001E00001FF80007F80001F80> 24 32 -2 28 22] 123 dc [<7F1FC0FFBFE07F1FC01C07001C07001C07001C07001C07001C07001C07001FFF001FFF 001FFF001C07001C07001C07001C07001C07001C07001C07001C07001C07007F1FC0FFBF E07F1FC0> 24 25 -1 24 22] 72 dc [ 24 32 -2 28 22] 125 dc [ 16 25 -3 24 22] 73 dc [<07E3001FFF007FFF00781F00F00F00E00700E00700E00000F000007800007F80001FF0 0007FC0000FE00000F00000780000380000380E00380E00380F00780F80F00FFFE00FFFC 00C7F000> 24 25 -2 24 22] 83 dc [<03E30007FF001FFF003E1F003C0F00780F00780700700700F00000E00000E00000E000 00E00000E03F80E07FC0E03F80F00700700700780F00780F003C0F003E1F001FFF0007FF 0003E700> 24 25 -2 24 22] 71 dc [<7FE000FFF8007FFC001C1E001C0F001C07001C07001C07001C07001C0F001C1E001FFC 001FF8001FFC001C1C001C0E001C0E001C0E001C0E001C0E201C0E701C0E707F07E0FF87 E07F03C0> 24 25 -1 24 22] 82 dc [ 16 11 -4 24 22] 34 dc [<0387000387000387000387000387000387007FFFC0FFFFE0FFFFE0070E00070E00070E 000E1C000E1C000E1C000E1C00FFFFE0FFFFE07FFFC01C38001C38001C38001C38001C38 001C3800> 24 25 -1 24 22] 35 dc cmr10.300 sf [<1FFF00F800780078007800780078007800780078007800780078007800780078007800 780078007800787078F878F878F878F0F040E021C01F00> 16 29 -1 27 21] 74 dc [<7FFFF07C01F07001E06003C06003C0400780400F80400F00401E00001E00003C00007C 0000780000F00000F00001E00003E00003C0100780100780100F00101F00301E00203C00 203C00607800E0F803E0FFFFE0> 24 28 -2 27 25] 90 dc 21 @bop1 cmr7.300 sf 391 2642(1)s cmr6.300 sf 223 2783(1)s cmtt8.300 sf 1914 2795(@=)s cmsy10.300 sf 199 1869(f)s 120(g)h 1313 2387(g)s cmbx10.432 sf 177 42(1.5)s 70(A)h 23(Hell)h -1(o)h 21(W)h -6(orld)h 24(Do)h 2(cum)h -1(e)h -1(n)h -2(t)h cmbx10.300 sf 1462 1420(sp)s 1(ecial)h 18(c)h -1(haracter)h 378 1470(sp)s 1(ecial)h 15(sequence)h cmr8.300 sf 241 2795(The)s 11(only)h 11(exceptio)h -1(n)h 10(to)h 11(this)h 11(rule)h 10(o)h 1(ccurs)h 11(where)h 11(the)h 10(user)h 11(has)h 11(explicitly)h 9(c)h -1(hanged)h 9(the)h 11(sp)h 1(ecial)h 10(c)h -1(haracter)h 9(using)h 11(the)h 177 2835(sp)s 1(ecial)h 10(sequence.)h cmti10.300 sf 177 701(If)s 18(this)h 18(c)h -2(ommand)h 19(do)h -2(esn)h -4('t)h 18(work,)h 18(then)h 19(chanc)h -2(es)h 19(ar)h -2(e)h 18(that)h 18(F)h -3(unnelWeb)h 20(has)h 18(not)h 19(b)h -2(e)h -2(en)h 18(instal)h 2(le)h -2(d)h 18(on)h 19(your)h 177 751(machine.)s 20(R)h -2(efer)h 14(to)h 15(Chapter)h 15(4)h 15(for)h 14(ful)h 2(l)h 14(details)h 15(on)h 15(how)h 15(to)h 15(obtain)h 15(and)h 16(instal)h 2(l)h 14(a)h 15(c)h -2(opy)h 15(of)h 15(F)h -3(unnelWeb.)h 1199 1988(is)s 356(c)h -2(ould)h 1807 2437(Nothing)s 177 2487(sp)s -2(e)h -2(cial)h 15(happ)h -2(ens)h 16(unless)h 15(the)h 15(sp)h -2(e)h -2(cial)h 14(char)h -2(acter)h 51(app)h -2(e)h -2(ars.)h cmtt10.300 sf 638 252(hello.fw)s 177 402(@O@@{H)h -1(ello)h 19(World@+@})h 1203 502(fw)s 177 602(fw)s 22(hello)h 1485 821(hello.lis)s 177 1021(hello.lis)s 64(-)h 21(The)h 21(LISTING)h 21(file.)h 177 1071(hello.txt)s 64(-)h 21(The)h 21(PRODUCT)h 21(file.)h 456 1170(hello.txt)s 843(Hello)h 21(World)h 177 1320(@O@@{H)h -1(ello)h 19(World@+@})h 1196 1420(@)s 177 1570(@O)s 43(@<)h 44("hello.txt)h -1(")h 42(@>)h 43(@{)h 43("Hello)h 21(World")h 42(@+)h 43(@})h 259 1669(@)s 836 1719(@<)s 94(@>)h 682(@O)h 177 1869(@)s 119(@)h 856(@+)h 955 2038(@)s 177 2138(Warning:)s 20(This)h 21(example)h 21(is)h 21(NOT)h 21(legal)h 21(FunnelWeb.)h 177 2238(#hello.txt{He)s -1(llo)h 20(World+})h 1692 2338(#)s 1429 2387(+)s 973 2487(@)s 177 2657(@)s cmr10.300 sf 177 153(Just)s 20(as)h 19(one)h 19(starts)h 21(the)h 19(pro)h 1(cess)h 21(of)h 18(learning)h 19(a)h 19(new)h 19(programm)h -1(ing)h 17(language)h 18(with)h 18(a)h 19(\\Hello)h 18(W)h -3(orld")h 177 202(program,)s 14(when)h 16(learning)h 14(F)h -3(unnelW)h -3(eb,)h 15(y)h -1(ou)h 15(can)h 16(start)h 16(with)h 15(a)h 15(\\Hello)h 14(W)h -3(orld")h 14(do)h 1(cumen)h -1(t!)h 22(And)h 16(here)h 16(it)h 177 252(is!)s 20(Edit)h 14(a)h 14(text)h 15(\014le)h 15(called)h 202(and)h 15(put)h 14(the)h 15(follo)h -1(wing)h 12(text)h 15(in)h 14(it.)h 19(\(Note:)h 20(The)h 15(second)h 15(c)h -1(haracter)h 177 302(is)s 14(the)h 14(letter)h 15(\\Oh",)h 13(not)h 14(the)h 15(digit)h 13(\\Zero"\).)h 177 502(T)s -3(o)h 13(\\run")h 14(this)h 14(\\program",)h 11(in)h -1(v)h -1(ok)h -1(e)h 13(F)h -3(unnelW)h -3(eb)h 14(using)h 13(the)h 15(\\)h 44(")h 13(comm)h -1(and)h 12(as)h 14(follo)h -1(ws.)h 177 821(There)s 18(should)h 16(b)h 1(e)h 17(no)h 16(errors.)h 28(If)h 16(there)h 17(are,)h 18(ha)h -1(v)h -1(e)h 16(a)h 16(lo)h 1(ok)h 16(at)h 16(the)h 17(listing)h 15(\014le)h 215(,)h 15(whic)h -1(h)h 16(should)h 177 871(con)s -1(tain)h 12(an)h 12(explanation)h 11(of)h 12(the)h 12(error,)h 13(and)h 12(compare)h 12(the)h 13(area)h 12(in)h 12(the)h 13(\014le)h 12(where)h 13(the)h 13(error)h 13(o)h 1(ccurred)h 14(with)h 177 921(the)s 15(text)h 14(ab)h 1(o)h -1(v)h -1(e.)h 18(If)h 13(there)h 16(are)h 14(no)h 14(errors,)h 14(y)h -1(ou)h 14(will)h 12(\014nd)h 14(that)h 14(the)h 15(follo)h -1(wi)h -1(ng)h 12(t)h -1(w)h -1(o)h 13(\014les)h 14(ha)h -1(v)h -1(e)h 14(b)h 1(een)h 15(created.)h 177 1170(T)s -3(ak)h -1(e)h 14(a)h 15(lo)h 1(ok)h 14(at)h 212(.)h 19(It)h 15(should)h 14(con)h -1(tain)h 15(a)h 14(single)h 15(line)h 14(with)h 14(the)h 16(text)h 256(.)h 20(Let's)h 15(tak)h -1(e)h 177 1220(another)s 14(lo)h 1(ok)h 13(at)h 14(the)h 15(input)h 13(\014le.)h 177 1420(The)s 17(whole)h 17(structure)h 19(of)h 16(the)h 17(input)h 17(\014le)h 17(is)h 16(con)h -1(trolled)h 17(b)h -1(y)h 16(\\)h 22(",)h 17(called)h 16(the)h 371(,)h 16(whic)h -1(h)h 177 1470(in)s -1(tro)h 1(duces)h 356(s.)h 17(A)h 14(scanner's-ey)h -1(e)h 15(view)h 14(of)h 13(the)h 15(comm)h -1(and)h 12(line)h 13(lo)h 1(oks)h 14(lik)h -1(e)h 13(this:)h 177 1669(The)s 43(c)h -1(haracter)h 11(con)h -1(trols)h 10(ev)h -1(erything.)h 17(In)h 10(this)h 11(\014le)h 10(w)h -1(e)h 10(ha)h -1(v)h -1(e)h 10(six)h 10(di\013eren)h -1(t)h 11(sp)h 1(ecial)h 10(sequences)h 13(that)h 10(together)h 177 1719(form)s 12(a)h 14(single)h 13(macro)h 13(de\014nition.)h 18(The)h 72(and)h 71(delimi)h -1(t)h 12(the)h 15(name)h 13(of)h 13(the)h 14(macro.)h 17(The)h 72(signals)h 13(the)h 177 1769(start)s 13(of)h 12(the)h 13(macro)h 11(de\014nition)h 12(and)h 12(indicates)h 13(that)h 12(the)h 13(macro)h 11(is)h 13(to)h 12(b)h 1(e)h 13(connected)h 14(to)h 12(a)h 12(pro)h 1(duct)h 14(\014le)h 12(with)h 177 1819(the)s 15(same)h 13(name)h 13(as)h 14(the)h 14(macro)h 13(\(This)h 14(is)h 14(is)h 14(wh)h -1(y)h 13(w)h -1(e)h 15(got)h 13(a)h 14(pro)h 1(duct)h 15(\014le)h 14(when)h 14(w)h -1(e)h 14(ran)h 14(F)h -3(unnelW)h -3(eb\).)h 18(The)h 236 1869(and)s 74(delimit)h 14(the)h 16(b)h 1(o)h 1(dy)h 16(of)h 16(the)h 16(macro.)h 23(Finally)h -3(,)h 14(the)h 76(instructs)h 18(that)h 16(an)h 15(end)h 17(of)h 15(line)h 16(sequence)h 177 1918(should)s 14(b)h 1(e)h 14(inserted)h 16(at)h 13(that)h 14(p)h 1(oin)h -1(t)h 14(in)h 13(the)h 15(pro)h 1(duct)h 14(\014le.)h 177 1988(If)s 10(y)h -1(ou)h 10(think)h 9(this)h 10(syn)h -1(tax)h 10(lo)h 1(oks)h 10(messy)h -3(,)h 10(then)h 10(y)h -1(ou're)h 10(righ)h -1(t.)h 17(It)h 50(messy)h -3(.)h 15(F)h -3(unnelW)h -3(eb)h 112(ha)h -1(v)h -1(e)h 10(emplo)h -1(y)h -1(ed)h 177 2038(a)s 14(\\simpler")h 12(notation)h 13(in)h 13(whic)h -1(h)h 14(more)h 13(of)h 13(the)h 50(sequence)h 1(s)h 16(w)h -1(ere)h 15(elimi)h -1(nated.)h 17(F)h -3(or)h 13(example:)h 177 2338(Ho)s -1(w)h -1(ev)h -1(er,)h 14(if)h 13(suc)h -1(h)h 14(a)h 13(syn)h -1(tax)h 14(w)h -1(ere)h 15(used,)h 14(the)h 14(user)h 15(\(y)h -1(ou!\))h 18(w)h -1(ould)h 12(ha)h -1(v)h -1(e)h 14(to)h 13(remem)h -1(b)h 1(er)h 13(that)h 49(starts)h 15(a)h 13(new)h 177 2387(macro.)s 18(Y)h -3(ou)h 14(w)h -1(ould)h 14(also)h 13(ha)h -1(v)h -1(e)h 15(to)h 14(remem)h -1(b)h 1(er)h 13(that)h 15(the)h 15(c)h -1(haracters)h 51(and)h 50(cannot)h 15(b)h 1(e)h 15(used)h 15(in)h 14(a)h 14(macro)h 177 2437(b)s 1(o)h 1(dy)h 17(without)h 16(a)h 17(fuss.)h 27(And)h 17(so)h 17(on.)h 27(F)h -3(unnelW)h -3(eb)h 16(is)h 17(messier,)h 17(but)h 17(pro)h -1(vides)h 17(one)h 17(simple)h 15(rule:)h 177 2557(This)s 13(means)h 13(that)h 13(in)h 13(F)h -3(unnelW)h -3(eb,)h 13(y)h -1(ou)h 13(can)h 13(lo)h 1(ok)h 13(at)h 13(large)h 13(blo)h 1(c)h -1(ks)h 13(of)h 13(text)h 14(in)h 13(the)h 14(con\014dence)h 15(that)h 13(\(unlik)h -1(e)h 177 2607(for)s 13(the)h 13(C)h 13(pre-pro)h 1(cess)h 1(or\))h 15(there)h 14(are)h 13(no)h 13(macro)h 12(calls)h 12(hidden)h 13(in)h 13(there.)h 19(If)h 12(there)h 15(w)h -1(ere,)h 13(there)h 14(w)h -1(ould)h 12(b)h 1(e)h 14(an)h 213 2657(c)s -1(haracter!)h 177 2727(Let's)s 14(tak)h -1(e)h 14(another)h 15(lo)h 1(ok)h 13(at)h 13(the)h 15(hello)h 13(w)h -1(orld)h 13(program.)h 1042 2940(20)s 709 2 177 2757 r 21 @eop 22 @bop0 cmr6.300 sf [<1F00618040C08060C0600060006000C00180030006000C00102020207FC0FFC0> 16 16 -1 15 15] 50 dc cmr7.300 sf [<1F0060C06060F070F030603000700070006000C001C00180020004000810101020207F E0FFE0> 16 19 -2 18 17] 50 dc cmr8.300 sf [ 16 23 -1 22 13] 73 dc [ 24 23 -1 22 27] 75 dc [<60F0F070101020204040> 8 10 -3 22 10] 39 dc [ 24 23 -1 22 24] 69 dc [ 24 23 -1 22 25] 66 dc [ 24 23 0 22 19] 107 dc [<204020404080408081008100E1C0F1E0F1E060C0> 16 10 -5 22 18] 92 dc [<60C0F1E0F1E070E0102010202040204040804080> 16 10 -1 22 18] 34 dc cmtt10.300 sf [<0C1E3C7870F0E0E0E0F0F87830> 8 13 -8 27 22] 96 dc [<183C3E1E0E0E0E1E1C3C78F060> 8 13 -7 24 22] 39 dc [<00E00001F00001F00001B00001B00003B80003B80003B800031800071C00071C00071C 00071C00071C000E0E000E0E000FFE000FFE001FFF001C07001C07001C07007F1FC0FF1F E07F1FC0> 24 25 -1 24 22] 65 dc [ 24 25 -1 24 22] 77 dc [<7F1F807F3F807F1F800E1E000E1C00073C0007380003B80003F00001F00001E00000E0 0001E00001F00003F00003B80007B800071C00071C000E0E000E0E001C07007F1FC0FF1F E07F1FC0> 24 25 -1 24 22] 88 dc [<60F0F0F0F0F0F0F0F0F0F0F0F0F0F0F0600000000060F0F060> 8 25 -9 24 22] 33 dc 22 @bop1 cmr6.300 sf 223 2744(2)s cmr7.300 sf 1681 2652(2)s cmbx10.300 sf 295 2667(T)s -4(angling)h 1013(W)h -4(ea)h -1(ving)h cmti10.300 sf 1095 1717(no)s 1466 1817(pr)s -2(o)h -2(duct)h 17(\014le)h 506 1867(do)s -2(cumentation)h 17(\014le)h cmr8.300 sf 241 2756(In)s 8(F)h -3(unnelW)h -3(eb,)h 7(these)h 8(t)h -1(w)h -1(o)h 9(function)h -1(s)h 7(are)h 9(asp)h 1(ects)h 7(of)h 8(a)h 9(single)h 7(computer)h 7(program)h -1(.)h 13(Ho)h -1(w)h -1(ev)h -1(er,)h 8(in)h 9(Kn)h -1(uth's)h 7(WEB)h 10(system,)h 177 2795(the)s 10(t)h -1(w)h -1(o)h 12(functio)h -1(ns)h 9(are)h 11(em)h -1(b)h 1(o)h 1(d)h -1(ied)h 9(in)h 10(t)h -1(w)h -1(o)h 12(separate)h 9(compu)h -1(ter)h 9(program)h -1(s)h 9(called)h 10(T)h -3(angle)h 10(and)h 10(W)h -3(ea)h -1(v)h -1(e,)h 10(presumabl)h -1(y)h 9(b)h 1(ecause,)h 177 2835(as)s 11(ev)h -1(ery)h -1(one)h 10(kno)h -1(ws,)h 10(\\it)h 11(tak)h -1(es)h 11(t)h -1(w)h -1(o)h 11(to)h 11(T)h -3(angle".)h cmtt10.300 sf 177 42(@O@@{H)h -1(ello)h 19(World@+@})h 177 643(This)s 21(hello)h 21(world)h 21(document)h 20(was)h 21(created)h 20(by)h 22(-insert)h 20(your)h 21(name)h 21(here-.)h 177 743(@O@@{H)h -1(ello)h 19(World@+@})h 177 842(It)s 22(writes)h 20(out)h 21(a)h 22(file)h 21(called)h 20(hello.txt)h 20(containing)h 20(the)h 21(string)h 21(``Hello)h 20(World''.)h 1154 977(+t)s 177 1113(fw)s 22(hello)h 20(+t)h 177 1383(hello.lis)s 64(-)h 21(A)h 22(LISTING)h 151(file.)h 177 1433(hello.tex)s 64(-)h 21(A)h 22(DOCUMENTATIO)h -1(N)h 20(file)h 21(\(in)h 21(TeX)h 21(format\).)h 177 1482(hello.txt)s 64(-)h 21(A)h 22(PRODUCT)h 151(file.)h 451 1618(hello.txt)s 734(hello.txt)h 1780 1667(@O)s 1753 1717(hello.tex)s 1567 1767(+t)s 1136 1817(hello.txt)s 177 1867(hello.tex)s 177 2101(tex)s 21(hello)h 392(!)h 21(Typeset)h 21(the)h 21(documentati)h -1(on.)h 177 2151(lpr)s 21(-Pcslw)h 21(-d)h 21(hello.dvi)h 86(!)h 21(Print)h 21(the)h 21(typeset)h 20(documentation.)h cmr10.300 sf 177 177(In)s 14(its)h 13(curren)h -1(t)h 16(form,)h 11(it)h 13(consists)h 15(of)h 13(a)h 13(single)h 13(macro)h 13(de\014nition.)h 17(This)h 14(de\014nition,)h 13(while)h 13(completely)h 12(v)h -2(alid)h 177 226(on)s 14(its)h 14(o)h -1(wn,)h 13(only)h 13(represen)h -1(ts)h 16(half)h 13(the)h 15(p)h 1(o)h -1(w)h -1(er)h 14(of)h 13(F)h -3(unnelW)h -3(eb.)h 17(In)h 14(fact)h 14(y)h -1(ou)h 14(could)h 13(sa)h -1(y)h 14(that)h 14(it)h 13(is)h 14(a)h 14(\\Hello)h 177 276(Northern)s 15(Hemisphere)h 14(Program".)h 16(T)h -3(o)h 13(turn)h 14(it)h 13(in)h -1(to)h 13(a)h 13(prop)h 1(er)h 15(F)h -3(unnelW)h -3(eb)h 13(\\Hello)h 13(W)h -3(orld")h 12(program,)h 12(w)h -1(e)h 177 326(need)s 15(to)h 14(add)h 13(some)h 13(do)h 1(cumen)h -1(tation!)h 177 408(A)s 17(F)h -3(unnelW)h -3(eb)h 17(input)h 16(\014le)h 17(consists)h 18(of)h 17(a)h 16(sequence)h 19(of)h 17(macro)h 15(de\014nitions)h 17(surrounded)h 18(b)h -1(y)h 17(a)h 17(sea)h 17(of)h 17(do)h 1(c-)h 177 458(umen)s -1(tation)h 15(whic)h -1(h)h 16(is)h 17(just)h 17(ordinary)h 16(text.)h 26(Mo)h 1(dify)h 16(y)h -1(our)h 16(hello)h 16(w)h -1(orld)h 16(do)h 1(cumen)h -1(t)h 16(so)h 17(that)h 16(it)h 17(lo)h 1(oks)h 16(lik)h -1(e)h 177 508(this:)s 177 977(No)s -1(w)h 14(run)h 14(it)h 13(through)h 14(F)h -3(unnelW)h -3(eb,)h 13(but)h 14(this)h 14(time,)h 12(add)h 14(a)h 71(to)h 14(the)h 14(command)h 11(line.)h 177 1248(If)s 14(all)h 12(go)h 1(es)h 15(w)h -1(ell,)h 12(y)h -1(ou)h 14(should)h 13(\014nd)h 14(that)h 14(y)h -1(ou)h 14(no)h -1(w)h 13(ha)h -1(v)h -1(e)h 177 1618(T)s -3(ak)h -1(e)h 13(a)h 13(lo)h 1(ok)h 13(at)h 211(.)h 16(Y)h -3(ou)h 13(will)h 12(\014nd)h 14(that)h 13(it)h 13(is)h 13(iden)h -1(tical)h 13(to)h 14(the)h 223(of)h 13(the)h 14(previous)h 14(run.)h 177 1667(Only)s 14(macro)h 13(de\014nitions)h 15(a\013ect)h 15(the)h 15(pro)h 1(duct)h 15(\014les)h 15(that)h 14(F)h -3(unnelW)h -3(eb)h 14(pro)h 1(duces)h 16(\(as)h 14(a)h 14(result)h 15(of)h 72(macro)h 177 1717(de\014nitions\).)s 23(The)h 16(surrounding)h 15(do)h 1(cumen)h -1(tation)h 14(has)h 76(e\013ect.)h 24(In)h 16(con)h -1(trast,)h 16(the)h 16(new)h 15(\014le,)h 177 1767(\(ha)s -1(v)h -1(e)h 18(a)h 18(lo)h 1(ok)h 16(at)h 18(it)h 18(no)h -1(w\))h 17(whic)h -1(h)h 18(w)h -1(as)h 18(created)h 19(as)h 18(a)h 18(result)h 18(of)h 18(y)h -1(our)h 17(adding)h 17(the)h 80(option)h 17(con)h -1(tains)h 18(a)h 177 1817(fairly)s 15(full)h 15(represen)h -1(tation)h 18(of)h 15(the)h 17(input)h 16(\014le.)h 25(Whereas)h 230(is)h 16(the)h 235(of)h 16(F)h -3(unnelW)h -3(eb,)h 389 1867(is)s 15(the)h 350(.)h 24(T)h -3(ry)h 15(t)h -1(yp)h 1(esetting)h 16(the)h 17(do)h 1(cumen)h -1(tation)h 14(\014le)h 16(no)h -1(w)h 15(using)h 15(the)h 17(T)h 1895 1876(E)s 1918 1867(X)s 177 1916(t)s -1(yp)h 1(esetting)h 21(program.)h 36(Then)h 20(prin)h -1(t)h 20(it.)h 37(The)h 21(follo)h -1(wi)h -1(ng)h 18(comma)h -1(nds)h 19(are)h 21(an)h 19(example)h 19(of)h 20(the)h 21(sort)h 20(of)h 177 1966(comma)s -1(nds)h 13(y)h -1(ou)h 13(will)h 12(ha)h -1(v)h -1(e)h 14(to)h 14(giv)h -1(e)h 13(to)h 14(do)h 14(this.)h 177 2286(The)s 14(result)h 14(should)h 13(b)h 1(e)h 13(a)h 13(single)h 13(page)h 13(con)h -1(taining)h 12(the)h 14(t)h -1(w)h -1(o)h 12(lines)h 13(of)h 13(do)h 1(cumen)h -1(tation)h 12(along)h 12(with)h 12(a)h 13(t)h -1(yp)h 1(eset)h 177 2336(representation)s 12(of)h 11(the)h 13(macro.)h 16(A)h -1(t)h 11(this)h 12(p)h 1(oin)h -1(t,)h 11(y)h -1(ou)h 11(ha)h -1(v)h -1(e)h 12(exercised)h 13(the)h 13(t)h -1(w)h -1(o)h 11(main)h 9(asp)h 1(ects)h 14(of)h 11(F)h -3(unnelW)h -3(eb.)h 177 2386(Starting)s 12(with)h 12(an)h 12(input)h 12(\014le)h 12(con)h -1(taining)h 12(macros)h 11(\(or)h 12(in)h 12(this)h 13(case)h 13(macro\))h 11(and)h 12(do)h 1(cumen)h -1(tation,)h 11(y)h -1(ou)h 12(ha)h -1(v)h -1(e)h 177 2436(success)s 1(fully)h 14(generated)h 15(a)h 14(pro)h 1(duct)h 14(\014le)h 14(based)h 14(on)h 14(the)h 14(macros,)h 13(and)h 13(a)h 14(do)h 1(cumen)h -1(tation)h 12(\014le,)h 13(based)h 15(on)h 13(the)h 177 2486(en)s -1(tire)h 15(do)h 1(cumen)h -1(t.)h 17(Congratulations!)h 177 2568(The)s 11(remainder)h 9(of)h 9(this)h 10(tutorial)h 9(is)h 10(divided)h 9(in)h -1(to)h 10(t)h -1(w)h -1(o)h 9(parts,)h 11(whic)h -1(h)h 10(fo)h 1(cus)h 10(on)h 10(F)h -3(unnelW)h -3(eb's)h 9(macro)h 9(facilities)h 177 2618(and)s 15(its)h 16(t)h -1(yp)h 1(esetting)h 16(facilities.)h 22(By)h 16(tradition,)h 14(the)h 16(generation)h 16(of)h 15(program)h 14(\014les)h 15(from)h 14(a)h 15(literate)h 16(text)h 16(is)h 177 2667(called)s 196(,)h 11(and)h 14(the)h 14(generation)h 14(of)h 13(t)h -1(yp)h 1(eset)h 16(do)h 1(cumen)h -1(tation)h 12(is)h 14(called)h 193(.)h 1042 2940(21)s 709 2 177 2717 r 22 @eop 23 @bop0 /cmbx12.300 127 @newfont cmbx10.300 sf [<003FE00001F07C0003C01E000F800F801F0007C01E0003C03E0003E07E0003F07C0001 F07C0001F0FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001 F87C0001F07E0003F07E0003F03E0003E03F0007E01F0007C00F800F8003C01E0001F07C 00003FE000> 32 28 -3 27 36] 79 dc cmbx12.300 sf [<00180000780001F800FFF800FFF80001F80001F80001F80001F80001F80001F80001F8 0001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F80001F8 0001F80001F80001F80001F80001F80001F8007FFFE07FFFE0> 24 32 -4 31 28] 49 dc [<387CFEFEFE7C38> 8 7 -4 6 16] 46 dc [<001F8000FFE003F07007C0F00F01F81F01F83E01F83E01F87E00F07C00007C0000FC08 00FC7FC0FCFFE0FD80F0FF00F8FE007CFE007CFC007EFC007EFC007EFC007E7C007E7C00 7E7C007E3C007C3E007C1E00F80F00F00783E003FFC000FF00> 24 32 -2 31 28] 54 dc [<01FC0407FF8C1F03FC3C007C7C003C78001C78001CF8000CF8000CFC000CFC0000FF00 00FFE0007FFF007FFFC03FFFF01FFFF80FFFFC03FFFE003FFE0003FF00007F00003F0000 3FC0001FC0001FC0001FE0001EE0001EF0003CFC003CFF00F8C7FFE080FF80> 24 34 -3 33 31] 83 dc [<1C003F007F007F007F003F001C000000000000000000000000000000FF00FF001F001F 001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F001F00FFE0FF E0> 16 36 -2 35 16] 105 dc [ 48 22 -2 21 48] 109 dc [ 32 32 -2 21 31] 112 dc [ 16 35 -2 34 16] 108 dc [<00FE0007FF800F87C01E01E03E01F07C00F07C00F8FC00F8FC00F8FFFFF8FFFFF8FC00 00FC0000FC00007C00007C00007E00003E00181F00300FC07003FFC000FF00> 24 22 -2 21 26] 101 dc [ 48 34 -2 33 53] 77 dc [<07FC001FFF803F07C03F03E03F01E03F01F01E01F00001F00001F0003FF003FDF01FC1 F03F01F07E01F0FC01F0FC01F0FC01F0FC01F07E02F07E0CF81FF87F07E03F> 24 22 -2 21 27] 97 dc [<00FF8007FFE00F83F01F03F03E03F07E03F07C01E07C0000FC0000FC0000FC0000FC00 00FC0000FC00007C00007E00007E00003E00301F00600FC0E007FF8000FE00> 24 22 -2 21 25] 99 dc [ 24 22 -2 21 23] 114 dc [<00FE0007FFC00F83E01E00F03E00F87C007C7C007C7C007CFC007EFC007EFC007EFC00 7EFC007EFC007EFC007E7C007C7C007C3E00F81F01F00F83E007FFC000FE00> 24 22 -2 21 28] 111 dc [<0FF3003FFF00781F00600700E00300E00300F00300FC00007FE0007FF8003FFE000FFF 0001FF00000F80C00780C00380E00380E00380F00700FC0E00EFFC00C7F000> 24 22 -2 21 22] 115 dc cmbx10.432 sf [<0007F000003FFC0000FFFF0001FC0F0007F01F800FE03F800FC03F801FC03F803F803F 803F801F007F8000007F0000007F0000007F000000FF000000FF0FC000FF3FF800FF70FE 00FFE03F00FFC03F80FF801FC0FF801FC0FF801FC0FF001FE0FF001FE0FF001FE0FF001F E07F001FE07F001FE07F001FE07F001FE03F801FC03F801FC01F803F800FC03F8007E0FF 0003FFFC0000FFF000003FC000> 32 39 -3 38 34] 54 dc [ 64 41 -3 40 65] 77 dc cmtt10.300 sf [<00C00001C00001C00001C00007F0001FFC003FFF007DCF00F1C780E1C780E1C780E1C7 80F1C30079C0007FC0001FF00007FC0001FE0001CF0001C780F1C380F1C380F1C380E1C7 80F1C78079DF003FFE001FFC0007E00001C00001C00000C000> 24 32 -2 28 22] 36 dc 23 @bop1 cmbx10.300 sf 502 847(O)s cmbx12.300 sf 177 490(1.6.1)s 55(Simple)h 17(Macros)h cmbx10.432 sf 177 42(1.6)s 70(Macro)h 24(F)h -6(acili)h -1(ti)h -1(es)h cmtt10.300 sf 177 692(@O@@{H)h -1(ello)h 19(World@+@})h 358 847(@O)s 1383(@$)h 373 947(@O)s 177 1051(@O@@{@)h -1(@+@)h -1(})h 177 1151(@$@==@{He)s -1(llo@})h 177 1201(@$@==@{Wo)s -1(rld@})h 177 1300(@$@==@)h -1({@)h 20(@@})h 177 1510(fw)s 22(hello)h 177 1719(Hello)s 21(World)h 249 1873(@O)s 177 1923(@)s 896 1973(@<)s 94(@>)h 1036 2044(@)s 477 2094(hello.txt)s 478(@$)h 1200 2144(==)s 1333 2194(@)s 392 2244(H)s 94(W)h cmr10.300 sf 177 154(The)s 13(hello)h 11(w)h -1(orld)h 12(program)h 11(of)h 11(the)h 13(previous)h 13(section)h 13(exercised)h 14(b)h 1(oth)h 13(the)h 12(macro)h 12(expansion)h 12(\(pro)h 1(duct-\014le\))h 177 204(asp)s 1(ect)h 14(of)h 12(F)h -3(unnelW)h -3(eb,)h 12(and)h 13(the)h 14(t)h -1(yp)h 1(esetting)h 13(\(do)h 1(cumen)h -1(tation)h 12(\014le\))h 13(asp)h 1(ect)h 14(of)h 12(F)h -3(unnelW)h -3(eb.)h 17(This)h 13(section)h 177 254(con)s -1(tains)h 14(an)h 14(exp)h 1(osition)h 14(of)h 13(the)h 15(macro)h 13(facilities,)h 12(and)h 14(totally)h 13(ignores)h 14(the)h 15(do)h 1(cumen)h -1(tation)h 13(side.)h 19(This)h 14(is)h 177 303(partly)s 12(to)h 12(increase)h 13(the)h 13(fo)h 1(cus)h 13(of)h 11(the)h 13(tutorial,)h 11(and)h 12(partly)h 12(b)h 1(ecause)h 14(do)h 1(cumen)h -1(tation)h 11(is)h 12(usually)h 11(bulky)h 12(and)h 177 353(w)s -1(ould)h 13(tak)h -1(e)h 14(to)h 1(o)h 14(long)h 13(for)h 13(the)h 15(reader)h 15(to)h 14(t)h -1(yp)h 1(e)h 14(in)h 13(to)h 14(mak)h -1(e)h 13(the)h 14(tutorial)h 13(e\013ectiv)h -1(e.)h 177 588(The)s 14(original)h 13(\\Hello)h 13(W)h -3(orld")h 12(program)h 12(consisted)h 15(of)h 13(a)h 14(single)h 14(macro)h 12(de\014nition.)h 177 797(In)s 16(fact,)h 16(this)h 16(is)h 16(a)h 16(rather)h 17(exceptional)h 16(macro,)h 15(as)h 16(it)h 16(causes)h 17(its)h 16(expansion)h 16(to)h 16(b)h 1(e)h 17(written)h 16(to)h 16(a)h 16(pro)h 1(duct)h 177 847(\014le.)s 28(The)h 78(\(for)h 53(utput\))h 18(signals)h 16(this.)h 28(In)h 17(F)h -3(unnelW)h -3(eb,)h 17(most)h 16(macros)h 16(are)h 18(de\014ned)h 18(using)h 61(.)h 27(This)h 177 897(results)s 16(in)h 14(a)h 14(macro)h 13(that)h 15(do)h 1(es)h 15(not)h 14(generate)h 16(a)h 14(pro)h 1(duct)h 15(\014le,)h 15(but)h 14(whic)h -1(h)h 15(can)h 14(b)h 1(e)h 15(called)h 15(in)h 14(other)h 15(macros)h 177 947(\(including)s 71(macros\).)h 17(Let)h 14(us)h 15(expand)h 14(the)h 14(hello)h 13(w)h -1(orld)h 14(program)h 12(to)h 14(include)h 14(some)h 13(other)h 14(macros.)h 177 1405(T)s -1(yp)h 1(e)h 14(in)h 14(the)h 14(\014le)h 14(and)h 14(run)h 14(it)h 14(through)h 14(F)h -3(unnelW)h -3(eb)h 13(using)h 14(the)h 14(comm)h -1(and:)h 177 1614(The)s 14(pro)h 1(duct)h 15(\014le)h 14(\(result.out\))h 15(should)h 13(lo)h 1(ok)h 13(lik)h -1(e)h 13(this:)h 177 1823(This)s 16(short)h 17(program)h 15(illustrates)h 16(some)h 16(of)h 15(the)h 17(features)h 18(of)h 15(ordinary)h 16(macros)h 16(in)h 16(F)h -3(unnelW)h -3(eb.)h 24(Consider)h 177 1873(the)s 72(macro.)h 17(Instead)h 14(of)h 14(con)h -1(taining)h 12(straigh)h -1(t)h 14(text)h 15(\(\\Hello)h 13(W)h -3(orld"\),)h 12(it)h 13(no)h -1(w)h 14(con)h -1(tains)h 13(the)h 15(macro)h 13(call)h 462 1923(.)s 21(A)h 16(F)h -3(unnelW)h -3(eb)h 15(macro)h 14(can)h 15(b)h 1(e)h 17(called)h 15(from)h 13(within)h 15(the)h 16(b)h 1(o)h 1(dy)h 16(of)h 14(another)h 16(macro)h 15(just)h 177 1973(b)s -1(y)h 14(giving)h 12(the)h 15(macro)h 12(name)h 13(delimited)h 12(in)h 71(and)h 58(.)h 177 2044(A)s -1(t)h 12(the)h 13(b)h 1(ottom)h 10(of)h 12(the)h 12(\014le)h 12(is)h 12(the)h 13(de\014nition)h 11(of)h 12(the)h 307(macro.)h 17(The)h 12(de\014nition)h 12(is)h 11(similar)h 10(to)h 177 2094(the)s 14(de\014nition)h 12(of)h 221(except)h 14(that)h 13(it)h 13(starts)h 14(with)h 68(to)h 13(indicate)h 13(that)h 13(no)h 12(pro)h 1(duct)h 14(\014le)h 13(is)h 13(desired)h 177 2144(from)s 12(this)h 14(macro)h 13(\(directly\).)h 18(It)h 14(also)h 13(emplo)h -1(ys)h 13(the)h 14(optional)h 70(syn)h -1(tax)h 14(whic)h -1(h)h 13(has)h 14(no)h 14(seman)h -1(tic)h 13(impact,)h 177 2194(but)s 17(can)h 16(b)h 1(e)h 17(used)h 17(to)h 16(mak)h -1(e)h 15(de\014nitions)h 16(clearer.)h 27(The)h 17(b)h 1(o)h 1(dy)h 16(of)h 16(the)h 316(macro)h 15(consists)h 17(of)h 177 2244(calls)s 14(to)h 13(the)h 50(and)h 50(macros)h 13(whic)h -1(h)h 14(are)h 14(de\014ned)h 15(imm)h -1(edia)h -1(tely)h 12(ab)h 1(o)h -1(v)h -1(e.)h 177 2315(Note)s 15(that)h 15(the)h 15(macros)h 14(are)h 15(not)h 15(constrained)h 15(to)h 15(b)h 1(e)h 15(de\014ned)h 15(in)h 15(an)h -1(y)h 14(particular)h 14(order.)h 21(One)h 16(of)h 14(the)h 15(main)h 177 2365(features)s 16(of)h 14(literate)h 15(programm)h -1(i)h -1(ng)h 13(to)h 1(ols)h 14(is)h 15(that)h 14(they)h 16(allo)h -1(w)h 13(the)h 15(di\013eren)h -1(t)h 15(parts)h 16(of)h 14(the)h 15(text)h 15(do)h 1(cumen)h -1(t)h 177 2415(b)s 1(eing)h 14(dev)h -1(elop)h 1(ed)h 15(\(usually)h 13(a)h 13(computer)h 14(program\))h 12(to)h 14(b)h 1(e)h 15(la)h -1(y)h -1(ed)h 13(out)h 14(in)h 13(an)h -1(y)h 14(order.)h 18(So)h 14(long)h 13(as)h 14(there)h 15(is)h 14(a)h 177 2464(de\014nition)s 14(somewhere)h 14(in)h 13(the)h 15(input)h 13(\014le)h 14(for)h 14(ev)h -1(ery)h 15(macro)h 12(call,)h 13(F)h -3(unnelW)h -3(eb)h 13(will)h 13(sort)h 14(it)h 13(all)h 13(out.)h 177 2536(In)s 14(fact,)h 14(F)h -3(unnelW)h -3(eb's)h 14(macro)h 13(facilit)h -1(y)h 12(is)h 14(v)h -1(ery)h 15(simple.)h 17(Unlik)h -1(e)h 14(man)h -1(y)h 12(macro)h 13(prepro)h 1(cess)h 1(ors)h 16(whic)h -1(h)h 14(allo)h -1(w)h 177 2586(macros)s 11(to)h 11(de\014ne)h 13(other)h 12(macros,)h 11(F)h -3(unnelW)h -3(eb)h 11(completely)h 10(\014nishes)h 12(parsing)h 12(and)h 11(analysing)h 10(the)h 13(macros)h 10(in)h 177 2635(the)s 14(input)h 12(\014le)h 13(b)h 1(efore)h 13(it)h 13(starts)h 14(expanding)h 12(them)h 12(in)h -1(to)h 12(pro)h 1(duct)h 14(\014les.)h 18(Other)h 14(prepro)h 1(cessors)h 15(allo)h -1(w)h 12(macros)h 177 2685(to)s 15(b)h 1(e)h 16(rede\014ned)h 16(lik)h -1(e)h 15(v)h -2(ariables)h 14(\(as)h 15(in,)h 15(sa)h -1(y)h -3(,)h 14(T)h 950 2694(E)s 973 2685(X\))s 15(taking)h 14(on)h 15(man)h -1(y)h 13(di\013eren)h -1(t)h 16(v)h -2(alues)h 15(as)h 15(the)h 15(macro)h 14(pre-)h 177 2735(pro)s 1(cessor)h 13(tra)h -1(v)h -1(els)h 11(through)h 11(the)h 11(input)h 11(\014le.)h 17(In)h 10(con)h -1(trast,)h 12(F)h -3(unnelW)h -3(eb)h 10(has)h 11(no)h 11(concept)h 12(of)h 10(\\di\013eren)h -1(t)h 12(times")h 177 2785(and)s 13(treats)h 14(the)h 13(input)h 12(as)h 13(one)h 13(h)h -1(uge)h 13(static)h 13(orderless,)h 14(timeless,)h 12(collection)h 12(of)h 12(de\014nitions.)h 18(In)h 13(F)h -3(unnelW)h -3(eb,)h 177 2835(there)s 15(is)h 14(only)h 13(ev)h -1(er)h 15(one)h 14(time,)h 12(and)h 14(so)h 14(there)h 15(can)h 14(only)h 13(ev)h -1(er)h 15(b)h 1(e)h 14(one)h 15(v)h -2(alue/de\014nition)h 12(for)h 14(eac)h -1(h)h 14(macro.)h 1042 2940(22)s 23 @eop 24 @bop0 cmbx12.300 sf [<03FC000FFF003C1FC07007E07C07F0FE03F0FE03F8FE03F8FE01F87C01F83803F80003 F80003F00003F00007E00007C0000F80001F00003E0000380000700000E01801C0180380 180700180E00380FFFF01FFFF03FFFF07FFFF0FFFFF0FFFFF0> 24 32 -3 31 28] 50 dc [ 40 34 -2 33 44] 78 dc [ 32 22 -2 21 31] 117 dc [ 32 35 -2 34 31] 98 dc [<003F8000FFC001E3E003C7E007C7E00F87E00F83C00F80000F80000F80000F80000F80 000F8000FFFC00FFFC000F80000F80000F80000F80000F80000F80000F80000F80000F80 000F80000F80000F80000F80000F80000F80000F80000F80000F80007FF8007FF800> 24 35 -1 34 17] 102 dc [<7FFFFFFF807FFFFFFF807E03F80F807803F807807003F803806003F80180E003F801C0 E003F801C0C003F800C0C003F800C0C003F800C0C003F800C00003F800000003F8000000 03F800000003F800000003F800000003F800000003F800000003F800000003F800000003 F800000003F800000003F800000003F800000003F800000003F800000003F800000003F8 00000003F800000003F800000003F8000003FFFFF80003FFFFF800> 40 34 -2 33 39] 84 dc [<0003FE0080001FFF818000FF01E38001F8003F8003E0001F8007C0000F800F80000780 1F800007803F000003803F000003807F000001807E000001807E00000180FE00000000FE 00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000000007E00 0000007E000001807F000001803F000001803F000003801F800003000F8000030007C000 060003F0000C0001F800380000FF00F000001FFFC0000003FE0000> 40 34 -3 33 40] 67 dc [<0001FE000001FE0000003E0000003E0000003E0000003E0000003E0000003E0000003E 0000003E0000003E0000003E0000003E0001FC3E0007FFBE000F81FE001F007E003E003E 007E003E007C003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E00FC003E 00FC003E007C003E007C003E003E007E001E00FE000F83BE0007FF3FC001FC3FC0> 32 35 -2 34 31] 100 dc cmtt10.300 sf [ 24 32 -2 28 22] 92 dc 24 @bop1 cmsy10.300 sf 199 489(f)s 948 588(f)s 116(g)h cmti10.300 sf 1664 710(do)s -2(esn)h -4('t)h cmbx12.300 sf 177 42(1.6.2)s 55(Num)h -2(b)h 2(er)h 17(of)h 19(Times)h 17(Called)h cmtt10.300 sf 1082 339(@-)s 1359 389(@-)s 177 489(@)s 926 588(@)s 115(@)h 853 660(hello.fw)s 177 865(@O@)s -1(==@{@)h -1(-)h 177 914(@)h 177 964(@)h 177 1014(@)h 177 1064(@})s 177 1163(@$@==@{@)h -1(-)h 177 1213(main\(\))s 177 1263({)s 199 1313(doit\(\);)s 177 1363(})s 177 1413(@})s 177 1512(@$@==)h -1(@{@-)h 177 1562(void)s 21(doit\(\))h 177 1612({)s 199 1662(int)s 21(i;)h 199 1711(for)s 21(\(i=0;i<10;i++)h -1(\))h 243 1761({)s 264 1811(@)s 264 1861(@)s 243 1911(})s 177 1960(}@})s 177 2060(@$@==)s -1(@{@-)h 177 2110(printf\("Hello)s 19(World!"\);)h 177 2160(printf\("\\n"\);)s -1(@})h 177 2259(@$@==@)s -1({scan)h -1(f@})h 177 2359(@$@==@{)h -1(@-)h 177 2409(#include)s 20()h 177 2459(#include)s 20(@})h cmr10.300 sf 177 140(So)s 15(far)h 15(w)h -1(e)h 15(ha)h -1(v)h -1(e)h 15(seen)h 17(only)h 14(tin)h -1(y)h -3(,)h 14(degenerate)h 17(input)h 15(\014les.)h 22(The)h 16(next)h 16(example)h 14(mo)h -1(v)h -1(es)h 13(up)h 16(to)h 15(the)h 16(lev)h -1(el)h 14(of)h 177 190(\\trivial",)s 10(but)h 11(starts)h 13(to)h 11(con)h -1(v)h -1(ey)h 11(the)h 12(\015a)h -1(v)h -1(our)h 11(of)h 11(the)h 12(w)h -1(a)h -1(y)h 11(F)h -3(unnelW)h -3(eb)h 10(can)h 12(b)h 1(e)h 12(used)h 12(in)h 11(practice.)h 18(Normally)h -4(,)h 177 240(there)s 17(w)h -1(ould)h 14(b)h 1(e)h 16(do)h 1(cumen)h -1(tation)h 14(text)h 16(app)h 1(earing)h 15(b)h 1(et)h -1(w)h -1(een)h 17(the)h 16(macros,)h 14(but)h 16(this)h 15(has)h 15(b)h 1(een)h 17(omitted)h 14(so)h 177 289(as)s 16(to)h 15(k)h -1(eep)h 17(the)h 16(fo)h 1(cus)h 16(on)h 16(the)h 16(macros)h 15(themselv)h -1(es.)h 23(Although)h 15(the)h 17(next)h 16(example)h 14(is)h 16(m)h -1(uc)h -1(h)h 14(longer)h 16(than)h 177 339(the)s 17(previous)h 17(example,)h 16(the)h 17(only)h 16(new)h 17(construct)h 18(is)h 77(whic)h -1(h)h 16(can)h 17(app)h 1(ear)h 17(only)h 16(at)h 16(the)h 17(end)h 17(of)h 16(a)h 17(line,)h 177 389(and)s 14(suppresses)h 17(it,)h 13(prev)h -1(en)h -1(ting)h 14(it)h 14(from)h 12(app)h 1(earing)h 14(in)h 14(the)h 14(text.)h 19(The)h 72(construct)h 16(allo)h -1(ws)h 12(the)h 15(text)h 15(of)h 13(a)h 177 439(macro)s 13(to)h 13(b)h 1(e)h 14(aligned)h 13(at)h 14(the)h 14(left)h 14(margi)h -1(n,)h 12(rather)h 14(than)h 14(ha)h -1(ving)h 12(the)h 15(\014rst)h 14(line)h 13(hanging)h 13(at)h 14(the)h 14(end)h 14(of)h 13(the)h 220 489(.)s 20(F)h -3(unnelW)h -3(eb)h 14(could)h 15(ha)h -1(v)h -1(e)h 14(b)h 1(een)h 16(set)h 16(up)h 15(so)h 14(that)h 15(this)h 15(end)h 15(of)h 14(line)h 14(mark)h -1(er)h 14(w)h -1(as)h 15(suppressed.)h 23(Ho)h -1(w)h -1(ev)h -1(er,)h 177 538(it)s 14(w)h -1(ould)h 14(ha)h -1(v)h -1(e)h 14(b)h 1(een)h 16(a)h 14(sp)h 1(ecial)h 15(case)h 15(that)h 14(w)h -1(ould)h 14(ha)h -1(v)h -1(e)h 14(brok)h -1(en)h 15(the)h 15(v)h -1(ery)h 15(memo)h -1(rable)h 13(rule)h 14(\\the)h 15(text)h 15(of)h 14(a)h 177 588(macro)s 13(is)h 14(the)h 14(text)h 15(app)h 1(earing)h 13(b)h 1(et)h -1(w)h -1(een)h 15(the)h 71(and)h 57(".)h 177 660(T)s -1(yp)h 1(e)h 16(the)h 16(follo)h -1(wing)h 14(text)h 16(in)h -1(to)h 15(the)h 16(\014le)h 206(and)h 15(run)h 16(it)h 15(through)h 16(F)h -3(unnelW)h -3(eb.)h 23(The)h 16(\014le)h 16(con)h -1(tains)h 177 710(some)s 9(in)h -1(ten)h -1(tional)h 9(errors)h 12(so)h 10(b)h 1(e)h 11(sure)h 11(to)h 10(t)h -1(yp)h 1(e)h 10(it)h 10(in)h 10(exactly)h 10(and)h 10(w)h -1(orry)h 10(only)h 10(if)h 9(F)h -3(unnelW)h -3(eb)h 141(generate)h 177 759(some)s 13(errors.)h 177 2564(What)s 14(happ)h 1(ened?)h 21(W)h -3(ell,)h 13(if)h 13(y)h -1(ou)h 14(ha)h -1(v)h -1(en't)h 14(t)h -1(yp)h 1(ed)h 16(the)h 15(\014le)h 14(in)h 14(prop)h 1(erly)h -3(,)h 14(y)h -1(ou)h 14(ma)h -1(y)h 13(get)h 14(some)h 14(miscellaneous)h 177 2614(syn)s -1(tax)h 12(errors.)h 18(Fix)h 12(these)h 13(b)h 1(efore)h 12(con)h -1(tin)h -1(uing.)h 16(If)h 12(the)h 12(\014le)h 12(has)h 12(b)h 1(een)h 12(correctly)h 13(t)h -1(yp)h 1(ed,)h 12(y)h -1(ou)h 12(should)h 11(b)h 1(e)h 12(faced)h 177 2663(with)s 14(some)h 13(error)h 15(messages)h 14(to)h 13(do)h 14(with)h 13(the)h 15(n)h -1(um)h -1(b)h 1(er)h 13(of)h 13(times)h 13(some)h 13(of)h 14(the)h 14(macros)h 13(are)h 14(called.)h 177 2735(By)s 15(default,)h 14(F)h -3(unnelW)h -3(eb)h 14(insists)h 15(that)h 15(eac)h -1(h)h 15(macro)h 13(de\014ned)h 16(is)h 14(in)h -1(v)h -1(ok)h -1(ed)h 14(exactly)h 15(once.)h 21(Ho)h -1(w)h -1(ev)h -1(er,)h 15(the)h 15(\014le)h 177 2785(ab)s 1(o)h -1(v)h -1(e)h 16(de\014nes)h 18(macros)h 15(that)h 16(are)h 17(used)h 17(more)h 15(than)h 16(once)h 17(and)h 16(a)h 16(macro)h 15(that)h 17(is)h 16(not)h 16(used)h 17(at)h 16(all.)h 24(Let)h 16(us)h 177 2835(examine)s 13(the)h 14(errors.)h 1042 2940(23)s 24 @eop 25 @bop0 cmtt10.300 sf [<7FFF80FFFF80FFFF80E00700E00F00E01E00E01C00003C0000780000700000F00001E0 0001C00003C0000780000700000F00001E03801C03803C0380780380700380FFFF80FFFF 80FFFF80> 24 25 -2 24 22] 90 dc 25 @bop1 cmbx10.300 sf 1098 1145(Z)s 304(M)h cmtt10.300 sf 1367 42(Include)s 20(Files)h 1377 217(@)h 1083 317(@)s 565 367(@)h 488(@)h 929 744(@)s 1018 870(@)s 177 920(@)s 961 1145(@Z)s 288(@M)h 866 1195(@Z)s 471 1245(@M)s 177 1540(@O@)s -1(==@{@)h -1(-)h 177 1589(@)h 177 1639(@)s 177 1689(@)h 177 1739(@})s 177 1838(@$@==@{@)h -1(-)h 177 1888(main\(\))s 177 1938({)s 199 1988(doit\(\);)s 177 2038(})s 177 2087(@})s 177 2187(@$@==@{)h -1(@-)h 177 2237(void)s 21(doit\(\))h 177 2287({)s 199 2337(int)s 21(i;)h 199 2386(for)s 21(\(i=0;i<10;i++)h -1(\))h 243 2436({)s 264 2486(@)s 264 2536(@)s 243 2586(})s 177 2635(}@})s 177 2735(@$@@M)s -1(==@{@)h -1(-)h 177 2785(printf\("Hello)s 19(World!"\);)h 177 2835(printf\("\\n"\);)s -1(@})h cmr10.300 sf 177 42(First,)s 15(w)h -1(e)h 15(see)h 16(that)h 14(F)h -3(unnelW)h -3(eb)h 14(has)h 15(alerted)h 15(us)h 15(to)h 15(the)h 15(fact)h 15(that)h 14(the)h 313(macro)h 14(has)h 15(b)h 1(een)h 177 91(called)s 12(t)h -1(wice.)h 18(Once)h 14(alerted)h 13(to)h 13(this,)h 12(a)h 12(quic)h -1(k)h 13(lo)h 1(ok)h 11(at)h 13(the)h 13(program)h 11(con)h -1(vinces)h 13(us)h 13(that)h 13(calling)h 11(the)h 13(macro)h 177 141(t)s -1(wice)h 14(is)h 14(a)h 14(mistak)h -1(e,)h 12(and)h 13(that)h 14(one)h 14(of)h 14(the)h 14(calls)h 14(should)h 13(b)h 1(e)h 15(elimina)h -1(ted.)h 177 217(Second,)s 12(w)h -1(e)h 10(note)h 11(that)h 10(F)h -3(unnelW)h -3(eb)h 10(has)h 11(alerted)h 11(us)h 11(to)h 10(the)h 11(fact)h 10(that)h 11(the)h 326(macro)h 10(is)h 10(nev)h -1(er)h 177 267(called.)s 18(Again,)h 12(a)h 13(quic)h -1(k)h 13(lo)h 1(ok)h 13(at)h 13(the)h 14(program)h 12(tells)h 13(us)h 14(that)h 13(this)h 14(is)h 13(a)h 13(mistak)h -1(e)h 12(\(and)h 13(a)h 13(v)h -1(ery)h 14(comm)h -1(on)h 12(one)h 177 317(in)s 15(the)h 16(use)h 17(of)h 15(F)h -3(unnelW)h -3(eb\),)h 15(and)h 15(that)h 16(a)h 15(call)h 15(to)h 15(the)h 337(macro)h 14(should)h 16(b)h 1(e)h 16(inserted)h 17(just)h 177 367(ab)s 1(o)h -1(v)h -1(e)h 14(the)h 14(call)h 13(to)h 14(the)h 377(macro)h 13(in)h 13(the)h 15(de\014nition)h 13(of)h 255(.)h 177 443(These)s 13(t)h -1(w)h -1(o)h 12(cases)h 13(demonstrate)h 12(wh)h -1(y)h 12(these)h 13(c)h -1(hec)h -1(ks)h 14(ha)h -1(v)h -1(e)h 11(b)h 1(een)h 13(placed)h 13(in)h 11(F)h -3(unnelW)h -3(eb.)h 17(It)h 12(is)h 12(nearly)h 12(alw)h -1(a)h -1(ys)h 177 492(acceptable)s 16(for)h 15(a)h 14(macro)h 14(to)h 15(b)h 1(e)h 15(called)h 15(once.)h 22(Ho)h -1(w)h -1(ev)h -1(er,)h 15(if)h 14(a)h 15(macro)h 14(is)h 14(not)h 15(called)h 15(at)h 15(all,)h 13(or)h 15(called)h 15(more)h 177 542(than)s 14(once,)h 14(this)h 14(is)h 14(often)h 14(a)h 13(sign)h 14(that)h 14(the)h 14(user)h 15(has)h 14(made)h 13(a)h 14(mistak)h -1(e.)h 177 618(These)s 19(c)h -1(hec)h -1(ks)h 19(ha)h -1(v)h -1(e)h 17(a)h 17(dark)h 17(side)h 18(to)h 1(o.)h 28(In)h 18(addition)h 16(to)h 17(the)h 18(errors)h 19(men)h -1(tioned)h 16(ab)h 1(o)h -1(v)h -1(e,)h 18(F)h -3(unnelW)h -3(eb)h 17(has)h 177 668(generated)s 15(t)h -1(w)h -1(o)h 14(simil)h -1(ar)h 12(errors)h 15(that)h 14(do)h 14(not)h 14(help)h 14(us.)h 177 744(First,)s 15(w)h -1(e)h 14(are)h 15(alerted)h 15(to)h 14(the)h 15(fact)h 14(that)h 15(the)h 225(macro)h 13(has)h 15(b)h 1(een)h 15(called)h 14(t)h -1(wice.)h 20(Clearly)h -3(,)h 13(in)h 14(this)h 177 794(case,)s 15(this)h 14(is)h 13(not)h 14(a)h 14(problem,)h 12(and)h 13(so)h 14(here)h 15(F)h -3(unnelW)h -3(eb's)h 14(fussiness)h 15(is)h 14(a)h 13(n)h -1(uisance.)h 177 870(Second,)s 22(w)h -1(e)h 20(are)h 20(alerted)h 20(to)h 20(the)h 20(fact)h 20(that)h 20(the)h 214(macro)h 19(has)h 20(nev)h -1(er)h 20(b)h 1(een)h 21(called.)h 36(Lik)h -1(e)h 19(the)h 392 920(macro,)s 18(this)h 18(macro)h 17(w)h -1(as)h 19(de\014ned)h 19(as)h 19(a)h 18(notational)h 17(con)h -1(v)h -1(enience,)h 20(and)h 18(clearly)h 19(it)h 18(do)h 1(es)h 19(not)h 177 969(matter)s 13(here)h 15(if)h 13(it)h 14(is)h 14(not)h 14(used.)h 18(Again,)h 13(F)h -3(unnelW)h -3(eb)h 13(is)h 14(b)h 1(eing)h 14(a)h 14(n)h -1(uisance.)h 177 1045(The)s 19(four)h 18(cases)h 20(ab)h 1(o)h -1(v)h -1(e)h 18(demonstrate)h 19(the)h 19(ligh)h -1(t)h 17(and)h 18(dark)h 19(side)h 18(of)h 18(F)h -3(unnelW)h -3(eb's)h 18(insistence)h 20(that)h 18(eac)h -1(h)h 177 1095(macro)s 10(b)h 1(e)h 12(called)h 11(exactly)h 12(once.)h 17(T)h -3(o)h 11(resolv)h -1(e)h 12(the)h 12(con\015ict)h 11(without)h 11(reducing)h 12(the)h 12(strength)h 12(of)h 11(the)h 12(c)h -1(hec)h -1(king,)h 177 1145(F)s -3(unnelW)h -3(eb)h 14(pro)h -1(vides)h 14(t)h -1(w)h -1(o)h 13(sp)h 1(ecial)h 14(sequence)h 1(s)h 73(\(for)h 43(ero\))h 15(and)h 71(\(for)h 59(an)h -1(y\))h 13(that)h 14(can)h 15(b)h 1(e)h 14(attac)h -1(hed)h 177 1195(to)s 15(macro)h 13(de\014nitions.)h 20(Presenc)h 1(e)h 17(of)h 14(the)h 73(tag)h 14(allo)h -1(ws)h 14(the)h 15(designated)h 15(macro)h 14(to)h 14(b)h 1(e)h 15(called)h 15(zero)h 15(times.)h 177 1245(Presence)s 18(of)h 14(the)h 74(tag)h 15(allo)h -1(ws)h 13(the)h 16(designated)h 15(macro)h 14(to)h 15(b)h 1(e)h 15(called)h 15(more)h 14(than)h 15(once.)h 21(A)h 15(single)h 15(macro)h 177 1294(ma)s -1(y)h 12(carry)h 15(b)h 1(oth)h 14(tags.)h 18(It)h 14(is)h 13(alw)h -1(a)h -1(ys)h 13(true)h 15(that)h 14(all)h 12(macros)h 14(are)h 14(allo)h -1(w)h -1(ed)h 12(to)h 14(b)h 1(e)h 15(called)h 13(exactly)h 14(once.)h 177 1370(Here)s 20(is)h 18(the)h 19(revised)h 19(program)h 17(with)h 18(the)h 19(errors)h 19(\014xed,)h 20(b)h -1(y)h 18(elimina)h -1(ting)h 16(or)h 19(adding)h 17(macro)h 17(calls,)h 19(or)h 18(b)h -1(y)h 177 1420(adding)s 13(tags.)h 18(T)h -3(ry)h 14(pro)h 1(cessing)h 15(the)h 14(\014le)h 14(no)h -1(w.)h 18(There)h 15(should)h 14(b)h 1(e)h 14(no)h 14(errors.)h 1042 2940(24)s 25 @eop 26 @bop0 cmbx12.300 sf [<00FE0007FFC00F07E01E03F03F03F03F81F83F81F83F81F81F03F81F03F00003F00003 E00007C0001F8001FE0001FF000007C00001F00001F80000FC0000FC3C00FE7E00FEFF00 FEFF00FEFF00FEFF00FC7E01FC7801F81E07F00FFFC001FE00> 24 32 -2 31 28] 51 dc [ 24 34 -1 33 21] 73 dc [ 32 22 -2 21 31] 110 dc [<0180000180000180000180000380000380000780000780000F80003F8000FFFF00FFFF 000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F80000F81 800F81800F81800F81800F81800F830007C30003FE0000F800> 24 32 -1 31 22] 116 dc cmtt10.300 sf [ 16 32 -8 28 22] 91 dc [ 16 32 -1 28 22] 93 dc [<7F0FE0FF8FF07F0FE01C07801C0F001C0E001C1C001C3C001C78001CF0001CE0001DF0 001FF0001FF8001F38001E1C001C1C001C0E001C0E001C07001C07001C03807F07E0FF8F F07F07E0> 24 25 0 24 22] 75 dc [<07F0001FFC003FFE007C1F00F00780E00380E00380E003807007007C1F001FFC0007F0 001FFC003C1E00700700F00780E00380E00380E00380F007807007007C1F003FFE001FFC 0007F000> 24 25 -2 24 22] 56 dc [<07E0001FFC007FFE00781F00780F00780700000700000F00000F00003E0007FC0007F8 0007FC00001E00000700000780000380000380F00380F00780F00700F81F007FFE003FFC 0007E000> 24 25 -2 24 22] 51 dc [ 24 25 -1 24 22] 86 dc [ 24 25 -1 24 22] 89 dc [<03E0000FF8003FFC007C1E00780F00F00700E00700E00780E00780E00380F00780F007 80780F803FFF803FFB800FE380000780000700300F00780E00781E00787C007FF8003FE0 000F8000> 24 25 -2 24 22] 57 dc 26 @bop1 cmbx12.300 sf 177 450(1.6.3)s 55(Inden)h -2(tation)h cmbx10.300 sf 466 1912(pragma)s 1244 2305([Kn)s -1(uth83])h 1010 2455([Kn)s -1(uth83])h cmtt10.300 sf 177 91(@$@@Z=)s -1(=@{sc)h -1(anf@})h 177 191(@$@==@{)h -1(@-)h 177 241(#include)s 20()h 177 291(#include)s 20(@})h 486 560(print)s 243 741({)s 264 791(printf\("Hello)s 19(World!"\);)h 177 841(printf\("\\n"\);)s 264 891(printf\("Hello)s 19(World!"\);)h 177 941(printf\("\\n"\);)s 243 990(})s 1208 1121(hello.c)s 243 1252({)s 264 1302(printf\("Hello)s 19(World!"\);)h 264 1352(printf\("\\n"\);)s 264 1402(printf\("Hello)s 19(World!"\);)h 264 1452(printf\("\\n"\);)s 243 1502(})s 177 2044(@p)s 22(indentatio)h -1(n)h 20(=)h 22(none)h 177 2586(IF)s 22(R=0)h 21(THEN)h 21(XREF[P]:=XR)h -1(EFPTR)h 19(ELSE)h 21(XMEM[R].XLINK)h -1(FIELD)h -1(:=XRE)h -1(FPTR;)h -1(END;{)h -1(:51})h 177 2635({58:}FUNCTION)s 19(IDLOOKUP\(T:EIG)h -1(HTBIT)h -1(S\):NA)h -1(MEPO)h -1(INTER)h -1(;LABE)h -1(L)h 20(31;)h 177 2685(VAR)s 21(I:0..LONGBUFSI)h -1(ZE;H:)h -1(0..HA)h -1(SHSIZ)h -1(E;K:0)h -1(..MA)h -1(XBYTE)h -1(S;W:0)h -1(..1;)h 177 2735(L:0..LONGBUFS)s -1(IZE;P)h -1(:NAME)h -1(POINT)h -1(ER;BE)h -1(GIN)h 20(L:=IDLOC-I)h -1(DFIRS)h -1(T;{59)h -1(:})h 177 2785(H:=BUFFER[IDF)s -1(IRST])h -1(;I=ID)h -1(FIRST)h -1(+1;)h 177 2835(WHILE)s 21(I 24 32 -2 31 28] 52 dc [<000070000000007000000000F800000000F800000000F800000001FC00000001FC0000 0003FE00000003FE00000003FE00000006FF000000067F0000000E7F8000000C3F800000 0C3F800000183FC00000181FC00000381FE00000300FE00000300FE00000600FF0000060 07F00000E007F80000FFFFF80000FFFFF800018001FC00018001FC00038001FE00030000 FE00030000FE000600007F000600007F00FFE00FFFF8FFE00FFFF8> 40 34 -2 33 42] 65 dc [ 32 22 -1 21 30] 118 dc cmtt10.300 sf [<01C00001C00001C00001C00071C700F9CF807FFF001FFC0007F00007F0001FFC007FFF 00F9CF8071C70001C00001C00001C00001C000> 24 18 -2 21 22] 42 dc [<387C7E7E3E0E1E3C7CF860> 8 11 -7 4 22] 44 dc [ 24 3 -2 -2 22] 95 dc 27 @bop1 cmbx10.300 sf 1015 679(additi)s -1(v)h -1(e)h 13(macro)h cmbx12.300 sf 177 529(1.6.4)s 55(Additiv)h -2(e)h 18(Macros)h cmtt10.300 sf 400 839(+=)s 204(==)h 177 1290(@!***********)s -1(*****)h -1(*****)h -1(*****)h -1(****)h 177 1390(@O@==@{)h -1(@-)h 177 1440(program)s 21(adt\(input,)h -1(outpu)h -1(t\);)h 177 1490(@)s 177 1540(@)s 177 1589(@)h 177 1639(begin)s 21(startproc;)h 20(end.)h 177 1689(@})s 177 1789(@!***********)s -1(*****)h -1(*****)h -1(*****)h -1(****)h 177 1888(@$@+=)s -1(@{@-)h 177 1938(type)s 21(buffer_type)h 20(=)h 243 1988(record)s 243 2038(length)s 20(:)h 22(integer;)h 243 2087(buf)s 21(:)h 21(array[1..100])h 19(of)h 22(char;)h 243 2137(end;)s 177 2187(@})s 177 2287(@$@+=@)h -1({@-)h 177 2337(bigbuf)s 21(:)h 21(buffer_type;)h 177 2386(@})s 177 2486(@$@+=)h -1(@{@-)h 177 2536(procedure)s 20(buf_init)h 20(\(var)h 21(b)h 22(:)h 21(buffer_type)h 325(\))h 22({Body)h 20(of)h 22(buf_init})h 177 2586(procedure)s 20(buf_add)h 42(\(var)h 21(b)h 22(:)h 21(buffer_type;)h 107(ch)h 21(:)h 22(char\))h 21({Body)h 20(of)h 22(buf_add})h 177 2635(procedure)s 20(buf_get)h 42(\(var)h 21(b)h 22(:)h 21(buffer_type;)h 20(var)h 21(ch)h 21(:)h 22(char\))h 21({Body)h 20(of)h 22(buf_get})h 177 2685(@})s 177 2785(@!***********)s -1(*****)h -1(*****)h -1(*****)h -1(****)h cmr10.300 sf 177 42(Kn)s -1(uth's)h 13(theory)h 13(is)h 12(that)h 12(the)h 13(program)h 11(generated)h 13(b)h -1(y)h 12(a)h 12(literate)h 13(programm)h -1(i)h -1(ng)h 10(system)h 13(should)h 12(b)h 1(e)h 13(treated)h 177 91(as)s 20(ob)h 2(ject)h 21(co)h 1(de)h 21(and)h 20(hence)h 21(should)h 20(lo)h 1(ok)h 19(lik)h -1(e)h 19(ob)h 2(ject)h 21(co)h 1(de)h 20(to)h 1(o.)h 36(While)h 20(this)h 20(ma)h -1(y)h 18(b)h 1(e)h 20(an)h 20(admirabl)h -1(e)h 177 141(approac)s -1(h)h 17(in)h 17(the)h 18(long)h 17(run,)h 18(the)h 17(presen)h -1(t)h 19(programm)h -1(ing)h 15(en)h -1(vironmen)h -1(t)h 16(is)h 17(one)h 18(of)h 17(fault)h -1(y)h 16(compilers)h 16(and)h 177 191(buggy)s 12(to)h 1(ols.)h 18(The)h 13(F)h -3(unnelW)h -3(eb)h 12(view)h 13(is)h 13(that,)h 12(in)h 12(this)h 13(en)h -1(vironmen)h -1(t,)h 12(the)h 13(programm)h -1(er)h 12(needs)h 14(all)h 11(the)h 14(help)h 177 241(he)s 17(can)h 17(get)h 17(and)h 16(that)h 17(therefore)h 18(he)h 17(should)h 16(b)h 1(e)h 17(allo)h -1(w)h -1(ed)h 16(total)h 15(con)h -1(trol)h 17(o)h -1(v)h -1(er)h 16(the)h 17(pro)h 1(duct)h 18(\014le.)h 26(Another)h 177 291(reason)s 12(for)h 12(F)h -3(unnelW)h -3(eb's)h 11(pro)h -1(viding)h 10(total)h 11(con)h -1(trol)h 11(o)h -1(v)h -1(er)h 12(the)h 12(pro)h 1(duct)h 13(\014le,)h 11(is)h 12(that)h 12(F)h -3(unnelW)h -3(eb)h 11(is)h 11(in)h -1(tended)h 177 340(to)s 17(b)h 1(e)h 19(target)h 17(language)h 17(indep)h 1(enden)h -1(t,)h 19(and)h 17(so)h 18(ev)h -1(en)h 18(if)h 17(Kn)h -1(uth's)h 17(view)h 18(w)h -1(ere)h 18(adopted,)h 18(it)h 17(w)h -1(ould)h 17(not)h 17(b)h 1(e)h 177 390(clear)s 14(what)h 14(a)h 14(legitim)h -1(ate)h 13(transformation)h 12(of)h 13(the)h 14(text)h 15(could)h 13(b)h 1(e.)h 177 629(Sometim)s -1(es)h 15(it)h 16(is)h 17(con)h -1(v)h -1(enien)h -1(t)h 16(to)h 17(build)h 15(up)h 17(the)h 17(de\014nition)h 16(of)h 15(a)h 16(macro)h 16(in)h 15(stages)h 18(throughout)h 16(the)h 17(input)h 177 679(\014le.)s 18(In)h 13(F)h -3(unnelW)h -3(eb,)h 13(this)h 13(can)h 13(b)h 1(e)h 14(done)h 14(using)h 13(an)h 323(.)h 17(An)h 14(additiv)h -1(e)h 12(macro)h 12(is)h 13(iden)h -1(tical)h 13(to)h 177 728(an)s 14(ordinary)h 13(macro)h 13(except)h 15(that)h 228 839(1.)s 20(It)h 14(has)h 71(instead)h 15(of)h 57(.)h 228 920(2.)s 20(It)h 13(can)h 13(b)h 1(e)h 13(de\014ned)h 14(in)h 12(one)h 13(or)h 12(more)h 12(parts)h 13(throughout)h 13(the)h 13(input)h 13(\014le.)h 17(The)h 13(de\014nition)h 13(of)h 12(the)h 13(macro)h 281 970(is)s 14(the)h 14(concatenation)h 14(of)h 14(all)h 12(the)h 15(parts)h 14(in)h 14(the)h 14(order)h 15(in)h 13(whic)h -1(h)h 14(they)h 14(app)h 1(ear.)h 177 1080(The)s 13(follo)h -1(wi)h -1(ng)h 10(example)h 10(sho)h -1(ws)h 13(ho)h -1(w)h 11(additiv)h -1(e)h 11(macros)h 11(can)h 12(b)h 1(e)h 13(used)h 13(to)h 12(scatter)h 13(and)h 12(regroup)h 12(informati)h -1(on,)h 177 1130(in)s 16(this)h 17(case)h 17(assisting)h 17(in)h 16(the)h 17(lucid)h 16(construction)h 17(of)h 16(a)h 16(data)h 16(abstraction)h 17(in)h 16(a)h 16(language)h 16(\(P)h -1(ascal\))h 17(that)h 177 1180(do)s 1(es)h 15(not)h 14(supp)h 1(ort)h 14(them)h 13(explicitly)h -3(.)h 1042 2940(26)s 27 @eop 28 @bop0 28 @bop1 cmtt10.300 sf 177 42(@$@+=)s -1(@{@-)h 177 91(type)s 21(complex_type)h 19(=)h 22(record)h 21(r,i)h 21(:)h 21(real;)h 21(end;)h 177 141(@})s 177 241(@$@+=)h -1(@{@-)h 177 291(procedure)s 20(cm_set)h 21(\(var)h 21(c:)h 21(complex_type;)h 19(a,b:)h 21(real\))h 195({Body)h 21(of)h 21(cm_set})h 177 340(procedure)s 20(cm_add)h 21(\(a,b:)h 20(complex_type;)h 20(var)h 21(c:)h 21(complex_type\))h 19({Body)h 21(of)h 21(cm_add})h 177 390({Other)s 21(procedures)h 19(and)h 22(functions})h 177 440(@})s 177 540(@!***********)s -1(*****)h -1(*****)h -1(*****)h -1(****)h 177 639({...more)s 20(pieces)h 21(of)h 21(program...})h 177 739(@!***********)s -1(*****)h -1(*****)h -1(*****)h -1(****)h 177 1540(@!***********)s -1(*****)h -1(*****)h -1(*****)h -1(****)h 177 1639(@O@==@{)h -1(@-)h 177 1689(program)s 21(adt\(input,)h -1(outpu)h -1(t\);)h 177 1739(@)s 177 1789(@)s 177 1838(@)h 177 1888(begin)s 21(startproc;)h 20(end.)h 177 1938(@})s 177 2038(@$@==)s -1(@{@-)h 177 2087(@)h 177 2137(@)h 177 2187(@})s 177 2287(@$@==@)h -1({@-)h 177 2337(@)h 177 2386(@})s 177 2486(@$@==)h -1(@{@-)h 177 2536(@)h 177 2586(@)h 177 2635(@})s 177 2735(@!***********)s -1(*****)h -1(*****)h -1(*****)h -1(****)h 177 2835(@$@==@{@-)h cmr10.300 sf 177 853(It)s 18(is)h 17(imp)h 1(ortan)h -1(t)h 16(to)h 17(remem)h -1(b)h 1(er)h 17(that)h 17(the)h 18(de\014nition)h 17(of)h 17(eac)h -1(h)h 18(macro)h 16(do)h 1(es)h 19(not)h 17(c)h -1(hange)h 18(throughout)h 17(the)h 177 903(input)s 13(\014le.)h 18(F)h -3(unnelW)h -3(eb)h 13(parses)h 15(the)h 14(en)h -1(tire)h 14(input)h 13(\014le)h 14(and)h 13(assem)h -1(bles)h 13(all)h 12(the)h 14(macro)h 13(de\014nitions)h 13(b)h 1(efore)h 14(it)h 177 953(ev)s -1(en)h 15(starts)h 15(to)h 14(expand)h 15(macros.)h 18(As)h 15(a)h 14(result,)h 15(eac)h -1(h)h 14(additiv)h -1(e)h 14(macro)h 13(can)h 14(only)h 14(ha)h -1(v)h -1(e)h 14(one)h 14(de\014nition,)h 14(and)h 177 1003(that)s 14(de\014nition)h 14(is)h 13(the)h 15(concatenation)h 14(of)h 13(all)h 13(its)h 14(parts.)h 177 1077(The)s 19(example)h 16(ab)h 1(o)h -1(v)h -1(e)h 18(sho)h -1(ws)h 18(ho)h -1(w)h 18(additiv)h -1(e)h 17(macros)h 17(can)h 18(b)h 1(e)h 19(used)h 19(to)h 17(rearrange)h 19(the)h 19(presen)h -1(tation)h 19(of)h 17(a)h 177 1126(computer)s 18(program)h 16(in)h 18(the)h 18(order)h 19(in)h 17(whic)h -1(h)h 18(the)h 18(user)h 19(wishes)h 19(to)h 18(discuss)h 19(it)h 17(rather)h 19(than)h 18(the)h 19(order)h 18(in)h 177 1176(whic)s -1(h)h 19(the)h 20(compil)h -1(er)h 18(requires)h 20(that)h 19(it)h 19(b)h 1(e)h 19(consumed.)h 33(It)h 19(is)h 19(easy)h -3(,)h 20(ho)h -1(w)h -1(ev)h -1(er,)h 20(to)h 19(abuse)h 19(the)h 20(feature)h 19(of)h 177 1226(additiv)s -1(e)h 15(macros.)h 24(In)h 15(man)h -1(y)h 14(cases,)h 18(the)h 16(same)h 15(e\013ect)h 18(can)h 16(b)h 1(e)h 17(obtained)h 15(more)h 15(clearly)h 16(b)h -1(y)h 16(replacing)h 15(eac)h -1(h)h 177 1276(part)s 12(of)h 10(an)h 11(additiv)h -1(e)h 11(macro)h 10(in-situ)h 11(using)h 11(uniquely)h 10(named)h 10(non-additiv)h -1(e)h 11(macros,)h 10(and)h 11(then)h 12(collect)h 12(them)h 177 1326(together)s 15(as)h 13(a)h 14(group)h 13(at)h 14(the)h 14(p)h 1(oin)h -1(t)h 13(where)h 15(the)h 14(additiv)h -1(e)h 13(macro)h 12(is)h 13(called.)h 18(Doing)h 12(this)h 14(is)h 13(more)h 13(w)h -1(ork,)h 13(and)h 177 1376(is)s 15(more)h 13(error)h 16(prone,)h 14(but)h 15(can)h 15(result)h 15(in)h 14(a)h 15(clearer)h 15(exp)h 1(osition.)h 20(The)h 15(follo)h -1(wing)h 12(program)h 13(illustrates)h 15(this)h 177 1425(alternativ)s -1(e)h 14(approac)h -1(h.)h 1042 2940(27)s 28 @eop 29 @bop0 cmbx12.300 sf [<1000201E01E01FFFC01FFF801FFF001FFE001FF8001BC0001800001800001800001800 0019FC001FFF001E0FC01807E01803E00003F00003F00003F80003F83803F87C03F8FE03 F8FE03F8FC03F0FC03F07007E03007C01C1F800FFF0003F800> 24 32 -3 31 28] 53 dc [ 32 34 -2 33 38] 80 dc [<7FFFF07FFFF07C03E07007C0600FC0E01F80C01F00C03E00C07E0000FC0000F80001F0 0003F03007E03007C0300F80701F80703F00603E00E07C03E0FFFFE0FFFFE0> 24 22 -2 21 25] 122 dc cmtt10.300 sf [<07E0001FF8007FFE00783F00F00F00F00780F00380F003800003800003800007800007 00000F00001E00003C0000780000F00003E0000780000F00001E03803C03807FFF80FFFF 807FFF80> 24 25 -2 24 22] 50 dc [<007C0000FC0000DC0001DC00039C00039C00071C000F1C000E1C001E1C003C1C00381C 00781C00F01C00FFFFE0FFFFE0FFFFE0001C00001C00001C00001C00001C0001FFC001FF C001FFC0> 24 25 -1 24 22] 52 dc [ 24 26 -2 25 22] 55 dc 29 @bop1 cmbx12.300 sf 177 2155(1.6.5)s 55(P)h -2(arameterized)h 17(Macros)h cmtt10.300 sf 177 42(type)s 21(buffer_type)h 20(=)h 21(record)h 591 91(length)s 21(:)h 21(integer;)h 591 141(buf)s 21(:)h 22(array[1..100])h 19(of)h 21(char;)h 591 191(end;)s 177 241(@})s 177 340(@$@==)h -1(@{@-)h 177 390(bigbuf)s 21(:)h 21(buffer_type;)h 177 440(@})s 177 540(@$@)h -1(==@{@)h -1(-)h 177 589(procedure)s 20(buf_init\(var)h 19(b)h 22(:)h 22(buffer_type)h -1(\))h 20({Body)h 21(of)h 21(buf_init})h 177 639(procedure)s 20(buf_add\(var)h 20(b)h 21(:)h 22(buffer_type;)h 19(ch)h 21(:)h 22(char\))h 21({Body)h 21(of)h 21(buf_add})h 177 689(procedure)s 20(buf_get\(var)h 20(b)h 21(:)h 22(buffer_type;)h 19(var)h 21(ch)h 22(:)h 21(char\))h 21({Body)h 21(of)h 21(buf_get})h 177 739(@})s 177 839(@!***********)s -1(*****)h -1(*****)h -1(*****)h -1(****)h 177 938(@$@==@{@)h -1(-)h 177 988(type)s 21(complex_type)h 19(=)h 22(record)h 21(r,i)h 21(:)h 21(real;)h 21(end;)h 177 1038(@})s 177 1137(@$@+=@{)h -1(@-)h 177 1187(procedure)s 20(cm_set\(var)h 20(c:)h 21(complex_type;)h 19(a,b)h 21(:)h 22(real\))h 43({Body)h 20(of)h 22(cm_set})h 177 1237(procedure)s 20(cm_add\(a,b)h 20(:)h 21(complex_type;)h 20(var)h 21(c:)h 21(complex_type\))h 19({Body)h 21(of)h 21(cm_add})h 177 1287({Other)s 21(procedures)h 19(and)h 22(functions})h 177 1337(@})s 177 1436(@!***********)s -1(*****)h -1(*****)h -1(*****)h -1(****)h 177 1536({...more)s 20(pieces)h 21(of)h 21(program...})h 177 1636(@!***********)s -1(*****)h -1(*****)h -1(*****)h -1(****)h 1049 1917(@Z)s 97(@M)h 656 2354(@1)s 25(@2)h 25(@3)h 25(@4)h 25(@5)h 25(@6)h 25(@7)h 25(@8)h 106(@9)h 1578 2476(@1)s 48(@9)h 177 2735(@$@@\(@3@\)@)h -1(M==@{)h -1(@-)h 177 2785(@1)s 177 2835(while)s 21(\(@2\))h cmr10.300 sf 177 1745(One)s 16(of)h 14(adv)h -2(an)h -1(tages)h 14(of)h 14(F)h -3(unnelW)h -3(eb)h 14(\(and)h 15(literate)h 15(programm)h -1(i)h -1(ng)h 13(in)h 14(general\))h 15(is)h 15(that)h 14(\(as)h 15(sho)h -1(wn)h 15(ab)h 1(o)h -1(v)h -1(e\))h 177 1794(it)s 12(allo)h -1(ws)h 11(the)h 13(user)h 13(to)h 12(la)h -1(y)h 11(out)h 12(the)h 13(program)h 11(in)h 11(whatev)h -1(er)h 13(order)h 13(is)h 12(desired)h 14(with)h 11(near)h 13(total)h 12(indep)h 1(endence)h 177 1844(from)s 12(the)h 15(ordering)h 14(requiremen)h -1(ts)h 14(of)h 13(the)h 15(target)h 14(programm)h -1(ing)h 11(language.)h 177 1917(Additiv)s -1(e)h 15(macros)h 14(are)h 15(allo)h -1(w)h -1(ed)h 14(to)h 15(b)h 1(e)h 16(tagged)h 15(with)h 73(and)h 74(just)h 15(as)h 15(other)h 16(macros)h 14(can,)h 15(but)h 15(the)h 16(tags)h 177 1967(m)s -1(ust)h 9(app)h 1(ear)h 11(only)h 9(on)h 10(the)h 11(\014rst)h 11(de\014nition)h 10(of)h 10(the)h 10(macro.)h 16(Additiv)h -1(e)h 10(macros)h 9(cannot)h 11(b)h 1(e)h 10(connected)h 12(directly)h 177 2017(to)s 14(pro)h 1(duct)h 15(\014les.)h 177 2254(No)s 13(self-resp)h 1(ecting)h 15(macro)h 12(prepro)h 1(cessor)h 16(w)h -1(ould)h 12(b)h 1(e)h 14(complete)h 12(without)h 13(some)h 12(form)h 12(of)h 12(macro)h 12(parameter-)h 177 2304(ization,)s 13(and)h 14(F)h -3(unnelW)h -3(eb)h 14(is)h 14(no)h 14(exception.)h 20(F)h -3(unnelW)h -3(eb)h 14(allo)h -1(ws)h 13(eac)h -1(h)h 15(macro)h 13(to)h 14(ha)h -1(v)h -1(e)h 14(from)h 12(zero)h 16(to)h 14(nine)h 177 2354(formal)s 12(parameters)h 14(named)h 56(,)h 57(,)h 57(,)h 57(,)h 57(,)h 57(,)h 57(,)h 57(,)h 13(and)h 58(.)h 177 2427(T)s -3(o)h 11(de\014ne)h 13(a)h 12(macro)h 11(with)h 12(one)h 12(or)h 12(more)h 11(parameters,)h 12(insert)h 12(a)h 12(formal)h 10(parameter)h 11(list)h 12(just)h 12(after)h 12(the)h 13(macro)h 177 2476(name)s 13(in)h 14(the)h 15(macro)h 14(de\014nition.)h 19(Because)h 16(macro)h 14(parameters)h 14(ha)h -1(v)h -1(e)h 14(\014xed)h 15(names)h 14(\()h 44(.)h 7(.)h 7(.)h 42(\),)h 14(there)h 16(is)h 14(no)h 177 2526(need)s 19(to)h 17(sp)h 1(ecify)h 18(the)h 18(names)h 16(of)h 17(formal)h 15(parameters)h 18(in)h 17(the)h 18(formal)h 15(parameter)h 17(list.)h 28(All)h 16(that)h 18(need)h 18(b)h 1(e)h 177 2576(con)s -1(v)h -1(ey)h -1(ed)h 14(is)h 14(ho)h -1(w)h 13(man)h -1(y)h 12(parameters)h 14(the)h 14(macro)h 12(has.)h 19(Here)h 15(is)h 13(an)h 14(example)h 12(of)h 13(the)h 14(de\014nition)h 14(of)h 13(a)h 13(macro)h 177 2626(ha)s -1(ving)h 13(three)h 15(parameters:)h 1042 2940(28)s 29 @eop 30 @bop0 cmmi10.300 sf [<0003F800000E0E000038038000E001C001C001C0038000E0070000E00F0000F01E0000 F01C0000F03C0000F03C0000F0780000F0780000F0780000F0F00001E0F00001E0F00001 E0F00003C0F00003C0F0000780F0000780F0000F0070000E0070001C00380038003C0070 001C01C0000707800001FC0000> 32 30 -2 28 32] 79 dc [<381F004E61804681C04701C08F01C08E01C00E01C00E01C01C03801C03801C03801C07 00380710380710380E10380E20700640300380> 24 18 -2 17 25] 110 dc cmtt10.300 sf [<07C7001FF7003FFF007C3F00781F00F00F00F00700E00700E00700E00700E00700F007 00F00F00781F007C3F003FFF001FF70007C7000007000007000007000007000007000007 00003FE0007FF0003FE0> 24 27 -2 17 22] 113 dc [<3801807C0380FE0380FE0700EE0700EE0E00EE0E00EE0E00FE1C00FE1C007C38003838 0000700000700000700000E00000E00001C00001C00001C0000380000383800707C0070F E00E0EE00E0EE00E0EE01C0EE01C0EE0380FE03807C0180380> 24 32 -1 28 22] 37 dc 30 @bop1 cmr7.300 sf 444 1754(2)s cmmi10.300 sf 1279 1719(O)s 17(n)h 370 1769(O)s 17(n)h 320(n)h cmti10.300 sf 1784 410(sep)s -2(ar)h -2(ate)h -2(d)h cmr10.300 sf 177 310(T)s -3(o)h 11(call)h 11(a)h 11(parameterized)h 12(macro,)h 10(an)h 12(actual)h 11(parameter)h 11(list)h 12(m)h -1(ust)h 10(b)h 1(e)h 12(supplied)h 12(that)h 12(con)h -1(tains)h 11(exactly)h 12(the)h 177 360(same)s 15(n)h -1(um)h -1(b)h 1(er)h 15(of)h 14(actual)h 16(parameters)h 15(as)h 16(there)h 16(are)h 16(formal)h 13(parameters)h 16(in)h 15(the)h 16(de\014nition)h 15(of)h 15(the)h 16(macro)h 177 410(b)s 1(eing)h 17(called.)h 26(An)h 16(actual)h 17(parameter)h 16(list)h 16(is)h 17(delimi)h -1(ted)h 15(b)h -1(y)h 77(and)h 60(,)h 17(and)h 16(parameters)h 17(are)h 177 459(b)s -1(y)h 13(\\)h 44(".)h 17(The)h 13(actual)h 13(parameters)h 13(themselv)h -1(es)h 14(are)h 13(general)h 14(F)h -3(unnelW)h -3(eb)h 12(expressions)h 15(\(see)h 14(Chapter)h 14(3)h 13(for)h 177 509(the)s 13(exact)h 13(syn)h -1(tax\))h 12(and)h 13(can)h 12(b)h 1(e)h 13(inserted)h 14(in)h -1(to)h 11(the)h 13(list)h 12(directly)h 12(or)h 13(can)h 12(b)h 1(e)h 13(delimited)h 11(b)h -1(y)h 68(so)h 12(as)h 12(to)h 12(allo)h -1(w)h 177 559(some)s 15(white)h 15(space)h 16(to)h 15(assist)h 16(in)h 15(formatting)h 13(the)h 16(actual)h 14(parameters.)h 23(Here)h 16(are)h 16(some)h 14(examples)h 15(of)h 14(calls)h 177 609(of)s 13(the)h 247(macro)h 12(de\014ned)h 15(ab)h 1(o)h -1(v)h -1(e.)h 177 1494(A)s 19(few)h 19(rules)h 19(ab)h 1(out)h 18(parameterized)h 19(macros)h 18(are)h 19(w)h -1(orth)h 19(men)h -1(tioning.)h 30(Macros)h 19(that)h 19(do)h 18(not)h 19(ha)h -1(v)h -1(e)h 18(an)h -1(y)h 177 1544(parameters)s 14(m)h -1(ust)h 13(ha)h -1(v)h -1(e)h 13(no)h 14(formal)h 11(or)h 14(actual)h 14(parameter)h 13(lists.)h 18(Additiv)h -1(e)h 14(macros)h 13(can)h 14(ha)h -1(v)h -1(e)h 13(parameters,)h 177 1594(but)s 14(the)h 15(formal)h 11(parameter)h 14(list)h 13(m)h -1(ust)h 13(app)h 1(ear)h 14(in)h 14(the)h 14(\014rst)h 15(de\014nition)h 13(part)h 14(only)h -3(.)h 177 1670(Here)s 18(is)h 17(another)h 17(example)h 15(of)h 16(the)h 17(use)h 18(of)h 16(parameterized)h 16(macros.)h 26(This)h 16(time,)h 16(parameters)h 17(and)h 16(macro)h 177 1719(calls)s 16(are)h 16(used)h 16(in)h 16(a)h 15(F)h -3(unnelW)h -3(eb)h 15(input)h 16(\014le)h 16(that)h 16(constructs)h 17(an)h 49(\()h 25(\))h 16(represen)h -1(tation)h 17(of)h 15(a)h 16(song)h 15(whose)h 177 1769(full)s 13(size)h 14(is)h 47(\()h 44(\))h 14(in)h 13(the)h 15(n)h -1(um)h -1(b)h 1(er)h 52(of)h 13(unique)h 14(lines.)h 1042 2940(29)s cmtt10.300 sf 221 42({)s 243 91(@3)s 221 141(})s 177 191(@})s 1195 410(@\()s 99(@\))h 255 459(@,)s 1652 509(@")s 296 609(While)s 21(loop)h 177 728(@!)s 22(First)h 20(form)h 21(of)h 22(actual)h 20(parameters)h 20(without)h 20(whitespace)h 20(and)h 21(double)h 21(quotes.)h 177 778(@@\(x=)h -1(1;@,x)h -1(<=10@)h -1(,prin)h -1(tf\("X)h -1(=%u\\)h -1(n",x\))h -1(;@\))h 177 877(@!)s 22(Second)h 20(form)h 21(of)h 21(actual)h 21(parameters.)h 20(The)h 21(double)h 20(quotes)h 21(allow)h 21(non-active)h 177 927(@!)s 22(whitespace)h 19(that)h 21(helps)h 21(to)h 21(lay)h 22(out)h 21(the)h 21(actual)h 20(parameters)h 20(neatly.)h 177 977(@!)s 22(This)h 21(call)h 20(is)h 22(functionally)h 19(identical)h 20(to)h 21(the)h 22(one)h 21(above.)h 177 1027(@@\()h 243 1076(@"x:=1;@")s 19(@,)h 243 1126(@"x<=10@")s 19(@,)h 243 1176(@"printf\(")s -1(X=%u\\)h -1(n",x\))h -1(;@")h 20(@\))h 177 1276(@!)s 22(The)h 21(two)h 21(forms)h 21(can)h 21(be)h 21(mixed)h 21(in)h 21(a)h 22(single)h 20(call.)h 177 1325(@@\(x=)h -1(1;@,x)h -1(<=10@)h -1(,)h 482 1375(@"printf\("X=%u)s -1(\\n",x)h -1(\);@")h 19(@\))h 177 1938(@O@==)h -1(@{@-)h 177 1988(The)s 21(Twelve)h 21(Bugs)h 21(of)h 21(Christmas)h 177 2038(-------------)s -1(-----)h -1(-----)h -1(-----)h 177 2087(@@\(@")s -1(first)h -1(@")h 85(@,@<1@>@\))h 177 2137(@@\(@")s -1(secon)h -1(d@")h 63(@,@<2@>@\))h 177 2187(@@\(@")s -1(third)h -1(@")h 85(@,@<3@>@\))h 177 2237(@@\(@")s -1(fourt)h -1(h@")h 63(@,@<4@>@\))h 177 2287(@@\(@")s -1(fifth)h -1(@")h 85(@,@<5@>@\))h 177 2337(@@\(@")s -1(sixth)h -1(@")h 85(@,@<6@>@\))h 177 2386(@@\(@")s -1(seven)h -1(th@")h 41(@,@<7@>@\))h 177 2436(@@\(@")s -1(eight)h -1(h@")h 63(@,@<8@>@\))h 177 2486(@@\(@")s -1(ninth)h -1(@")h 85(@,@<9@>@\))h 177 2536(@@\(@")s -1(tenth)h -1(@")h 85(@,@@\))h 177 2586(@@\(@")s -1(eleve)h -1(nth@")h 19(@,@@\))h 177 2635(@@\(@")s -1(twelf)h -1(th@")h 41(@,@@\))h 177 2735(This)s 21(song)h 21(appeared)h 20(in)h 22(the)h 21(internet)h 20(newsgroup)h 20(rec.humor.fu)h -1(nny)h 20(on)h 21(24-Dec-1991.)h 177 2785(It)s 22(was)h 21(contributed)h 19(by)h 22(Pat)h 21(Scannell)h 20(\(scannell@@d)h -1(arkst)h -1(ar.ma)h -1(30.bu)h -1(ll.co)h -1(m\).)h 177 2835(@})s 30 @eop 31 @bop0 cmbx12.300 sf [ 32 34 -2 33 37] 69 dc [ 32 22 -1 21 30] 120 dc [<6000007800007FFFFE7FFFFE7FFFFC7FFFF87FFFF87FFFF0E00060E000C0C00180C003 00C00300000600000C00001C0000180000380000780000780000F00000F00000F00001F0 0001F00001F00003F00003F00003F00003F00003F00003F00003F00001E000> 24 34 -3 33 28] 55 dc [ 32 34 -2 33 35] 70 dc cmtt10.300 sf [<1FFC003FFE007FFF00780F00F00780E00380E00380E00380E00380E00380E00380E003 80E00380E00380E00380E00380E00380E00380E0E380E1E380F0F780787F007FFF003FFE 001FFC00001C00001E00000E00000F00000700000700> 24 31 -2 24 22] 81 dc 31 @bop1 cmti10.300 sf 1786 1550(input)s cmbx12.300 sf 177 1028(1.6.6)s 55(Macro)h 19(Expansion)h 177 2373(1.6.7)s 55(Include)h 18(Files)h cmtt10.300 sf 177 91(@$@@\()s -1(@2@\)@)h -1(M==@{)h -1(@-)h 177 141(For)s 21(the)h 22(@1)h 21(bug)h 21(of)h 21(Christmas,)h 20(my)h 22(manager)h 20(said)h 21(to)h 21(me)h 286 191(@2)s 177 241(@})s 177 340(@$@<1@>@M==@{)s -1(See)h 20(if)h 21(they)h 21(can)h 21(do)h 22(it)h 21(again.@})h 177 390(@$@<2@>@M==@{)s -1(Ask)h 20(them)h 21(how)h 21(they)h 21(did)h 21(it)h 21(and@+@<1@>@})h 177 440(@$@<3@>@M==@{)s -1(Try)h 20(to)h 21(reproduce)h 20(it@+@<2@>@})h 177 490(@$@<4@>@M==@{)s -1(Run)h 20(with)h 21(the)h 21(debugger@+@<)h -1(3@>@)h -1(})h 177 540(@$@<5@>@M==@{)s -1(Ask)h 20(for)h 21(a)h 21(dump@+@<4@>@})h 177 589(@$@<6@>@M==@{)s -1(Reins)h -1(tall)h 19(the)h 22(software@+@)h -1(<5@>)h -1(@})h 177 639(@$@<7@>@M==@{)s -1(Say)h 20(they)h 21(need)h 21(an)h 21(upgrade@+@<6)h -1(@>@})h 177 689(@$@<8@>@M==@{)s -1(Find)h 19(a)h 22(way)h 21(around)h 21(it@+@<7@>@})h 177 739(@$@<9@>@M==@{)s -1(Blame)h 19(it)h 22(on)h 21(the)h 21(hardware@+@<8)h -1(@>@})h 177 789(@$@@M==@{)s -1(Chang)h -1(e)h 20(the)h 21(documentation@)h -1(+@<9)h -1(@>@})h 177 839(@$@@M==@{)s -1(Say)h 20(it's)h 21(not)h 21(supported@+@)h -1()h -1(@})h 177 888(@$@@M==@{)s -1(Tell)h 19(them)h 21(it's)h 21(a)h 22(feature@+@@})h 177 1786(@!)s 22(FunnelWeb)h 19(copes)h 21(well)h 21(with)h 21(the)h 21(following)h 20(macro)h 21(definitions.)h 177 1835(@!)s 22(\(Providing)h 19(that)h 21(it)h 22(has)h 21(a)h 21(little)h 21(over)h 21(ten)h 21(megabytes)h 20(of)h 21(memory\).)h 177 1935(@O@==@)h -1({@)h -1(@\(@@\)@)h -1(+@})h 177 2035(@$@@\()s -1(@1@\)=)h -1(=@{"@)h -1(1"@})h 177 2134(@$@==)h -1(@{@-)h 177 2184(...Ten)s 21(Megabytes)h 20(of)h 21(Text...)h 177 2234(@})s 1520 2523(@i)s 952 2673(camera.txt)s 177 2785('Cos)s 21(I)h 22(shoot)h 20(with)h 21(a)h 22(camera)h 21(instead)h 20(of)h 21(a)h 22(gun.)h 177 2835(The)s 21(animals)h 21(flock)h 20(to)h 22(be)h 21(petted)h 21(and)h 21(fed,)h cmr10.300 sf 177 1128(One)s 19(of)h 18(the)h 18(strengths)h 20(of)h 17(F)h -3(unnelW)h -3(eb)h 18(is)h 18(that,)h 19(when)h 18(writing)h 18(pro)h 1(duct)h 19(\014les,)h 19(it)h 18(do)h 1(es)h 19(not)h 18(attempt)h 17(to)h 177 1178(ev)s -2(aluate)h 17(an)h -1(y)h 16(text)h 17(expression)h 18(\(e.g.)h 16(text)h 17(blo)h 1(c)h -1(k,)h 17(parameter,)h 17(macro)h 15(call\))h 16(in)h 16(memory)h 15(and)h 16(then)h 17(write)h 177 1228(the)s 16(result)h 15(out.)h 22(Instead,)h 15(it)h 15(alw)h -1(a)h -1(ys)h 14(writes)h 15(out)h 15(what)h 15(it)h 15(is)h 14(expanding)h 15(dynamicall)h -1(y)h 13(and)h 15(directly)h -3(.)h 21(This)h 177 1277(means)s 13(that)h 14(the)h 15(user)h 14(need)h 15(not)h 14(fear)h 14(de\014ning)h 14(macros)h 13(that)h 14(expand)h 14(to)h 13(h)h -1(uge)h 14(amoun)h -1(ts)h 13(of)h 13(text)h 14(and)h 14(then)h 177 1327(calling)s 11(those)h 13(macros)h 11(in)h 11(other)h 13(macros,)h 11(or)h 12(passing)h 12(those)h 13(h)h -1(uge)h 12(macros)h 11(as)h 12(parameters)h 13(to)h 11(other)h 13(macros.)h 177 1377(In)s 12(all)h 10(cases,)h 12(F)h -3(unnelW)h -3(eb)h 11(expands)h 12(directly)h 12(to)h 11(the)h 12(pro)h 1(duct)h 12(\014le,)h 12(and)h 11(there)h 13(can)h 11(b)h 1(e)h 12(no)h 11(danger)h 12(in)h 11(running)h 177 1427(out)s 13(of)h 12(memory)h 11(during)h 13(expansion)h 12(\(except)h 15(for)h 13(running)h 12(out)h 13(of)h 12(stac)h -1(k)h 14(space)h 14(and)h 13(other)h 13(marginall)h -1(y)h 11(used)h 177 1477(resources)s 16(in)h 14(pathological)h 12(cases\).)h 177 1550(The)s 17(only)h 15(thing)h 16(to)h 15(remem)h -1(b)h 1(er)h 16(in)h 15(this)h 16(regard)h 17(is)h 16(that)h 16(F)h -3(unnelW)h -3(eb)h 16(alw)h -1(a)h -1(ys)h 15(stores)h 17(the)h 17(en)h -1(tire)h 126(\014le)h 177 1600(and)s 14(all)h 13(included)h 14(\014les,)h 13(in)h 14(their)h 14(en)h -1(tiret)h -1(y)h 15(in)h 13(memo)h -1(ry)h -3(,)h 11(for)h 14(the)h 14(duration)h 14(of)h 13(the)h 15(run.)h 177 1674(Here)s 15(is)h 14(an)h 14(example,)h 12(that)h 14(illustrates)h 14(ho)h -1(w)h 13(robust)h 15(F)h -3(unnelW)h -3(eb)h 13(is:)h 177 2474(F)s -3(unnelW)h -3(eb)h 20(pro)h -1(vides)h 20(a)h 20(nested)h 22(include)h 20(\014le)h 21(facilit)h -1(y)h 18(that)h 20(can)h 21(b)h 1(e)h 21(used)h 21(for)h 20(a)h 20(n)h -1(um)h -1(b)h 1(er)h 19(of)h 20(purp)h 1(oses.)h 177 2523(When)s 16(F)h -3(unnelW)h -3(eb)h 15(runs)h 16(in)h -1(to)h 15(a)h 16(single)h 15(line)h 15(con)h -1(taining)h 14(the)h 17(sp)h 1(ecial)h 15(sequence)h 77(follo)h -1(w)h -1(ed)h 14(b)h -1(y)h 16(a)h 15(blank,)h 177 2573(follo)s -1(w)h -1(ed)h 10(b)h -1(y)h 10(a)h 11(\014le)h 11(name,)h 10(it)h 10(reads)h 12(in)h 11(the)h 11(designated)h 12(\014le)h 11(and)h 11(replaces)h 12(the)h 12(line)h 10(con)h -1(taining)h 10(the)h 12(comm)h -1(and)h 177 2623(\(including)s 13(the)h 13(end)h 14(of)h 13(line)h 12(mark)h -1(er)h 13(at)h 13(the)h 14(end)h 13(of)h 13(the)h 14(line\))h 13(with)h 13(the)h 13(en)h -1(tire)h 14(con)h -1(ten)h -1(ts)h 15(of)h 12(the)h 14(designated)h 177 2673(\014le.)s 18(F)h -3(or)h 14(example,)h 12(if)h 13(there)h 15(w)h -1(as)h 14(a)h 13(\014le)h 14(called)h 246(con)h -1(taining)h 12(the)h 15(t)h -1(w)h -1(o)h 13(lines:)h 1042 2940(30)s 31 @eop 32 @bop0 cmtt10.300 sf [<07FE07FF07FE0038003800380038003800380038003800380038003800380038003800 3800386038F038F0707FF07FE01F80> 16 25 -3 24 22] 74 dc 32 @bop1 cmtt10.300 sf 595 42(poem.fw)s 177 152(I)s 22(like)h 21(to)h 21(go)h 21(shooting,)h 20(it's)h 21(a)h 22(whole)h 21(lot)h 21(of)h 21(fun,)h 177 202(@i)s 22(camera.txt)h 177 251(Cos)s 21(they)h 21(know)h 21(my)h 22(camera)h 20(isn't)h 21(loaded)h 21(with)h 20(lead.)h 177 301(-)s 22(RNW,)h 21(04-Jan-1991)h -1(.)h 844 412(poem.fw)s 177 522(I)s 22(like)h 21(to)h 21(go)h 21(shooting,)h 20(it's)h 21(a)h 22(whole)h 21(lot)h 21(of)h 21(fun,)h 177 572('Cos)s 21(I)h 22(shoot)h 20(with)h 21(a)h 22(camera)h 21(instead)h 20(of)h 21(a)h 22(gun.)h 177 621(The)s 21(animals)h 21(flock)h 20(to)h 22(be)h 21(petted)h 21(and)h 21(fed,)h 177 671('Cos)s 21(they)h 21(know)h 21(my)h 21(camera)h 21(isn't)h 21(loaded)h 20(with)h 21(lead.)h 177 721(-)s 22(RNW,)h 21(04-Jan-1991)h -1(.)h 1518 931(main.fw)s 177 1041(@O@==)h -1(@{@-)h 177 1091(@i)s 22(inc.fw)h 177 1141(This)s 21(is)h 22(the)h 21(text)h 21(of)h 21(the)h 21(sloth)h 21(macro.)h 177 1191(@})s 177 1411(@)s 177 1461(@})s 177 1561(@$@==)s -1(@{@-)h 833 1671(main.fw)s 177 1781(@O@==)h -1(@{@-)h 177 1831(@)s 177 1881(@})s 177 1981(@$@==)s -1(@{@-)h 177 2030(This)s 21(is)h 22(the)h 21(text)h 21(of)h 21(the)h 21(sloth)h 21(macro.)h 177 2080(@})s 1299 2240(=)h 772 2413(+I)s 198 2662(@i)s cmr10.300 sf 177 42(and)s 14(another)h 14(\014le)h 14(called)h 180(con)h -1(taining)h 13(the)h 14(follo)h -1(wing)h 12(four)h 13(lines)h 177 412(Then,)s 14(if)h 13(F)h -3(unnelW)h -3(eb)h 13(w)h -1(ere)h 15(to)h 14(pro)h 1(cess)h 170(,)h 12(the)h 14(result)h 15(w)h -1(ould)h 13(b)h 1(e)h 14(as)h 14(if)h 13(F)h -3(unnelW)h -3(eb)h 14(had)h 13(read)h 15(in:)h 177 831(F)s -3(unnelW)h -3(eb)h 11(expands)h 11(include)h 11(\014les)h 12(b)h 1(efore)h 11(it)h 11(starts)h 12(scanning)h 11(and)h 11(parsing)h 10(the)h 12(included)h 11(text.)h 18(The)h 11(result)h 177 881(is)s 17(that)h 16(include)h 17(\014les)h 17(can)h 17(con)h -1(tain)h 16(an)h -1(ything)h 16(that)h 16(can)h 17(b)h 1(e)h 17(found)h 17(in)h 16(a)h 16(F)h -3(unnelW)h -3(eb)h 16(\014le.)h 26(The)h 17(follo)h -1(wing)h 177 931(example)s 13(illustrates)h 14(the)h 14(lev)h -1(el)h 14(at)h 14(whic)h -1(h)h 13(the)h 15(include)h 14(mec)h -1(hanism)h 11(op)h 1(erates.)h 20(If)h 180(con)h -1(tains)h 177 1301(and)s 14(inc.fw)h 13(con)h -1(tains)h 177 1671(Then)s 15(if)h 13(F)h -3(unnelW)h -3(eb)h 13(w)h -1(ere)h 15(applied)h 13(to)h 168(,)h 12(it)h 13(w)h -1(ould)h 13(see:)h 177 2190(whic)s -1(h)h 17(it)h 17(w)h -1(ould)h 16(pro)h 1(cess)h 19(in)h 17(the)h 18(normal)h 15(manner.)h 27(The)h 18(only)h 16(sp)h 1(ecial)h 17(sequence)h 20(pro)h 1(cessing)h 18(that)h 17(tak)h -1(es)h 177 2240(place)s 12(at)h 12(a)h 11(lev)h -1(el)h 12(lo)h -1(w)h -1(er)h 11(than)h 12(include)h 12(\014les)h 12(is)h 12(the)h 12(pro)h 1(cessing)h 13(of)h 11(the)h 504(sequence)h 177 2290(whic)s -1(h)h 14(c)h -1(hanges)h 15(the)h 14(sp)h 1(ecial)h 14(c)h -1(haracter.)h 177 2363(A)s 14(few)h 13(other)h 14(facts)h 14(ab)h 1(out)h 13(include)h 13(\014les)h 14(are)h 14(w)h -1(orth)h 13(men)h -1(tioning)h 11(here.)h 19(Include)h 14(\014les)h 14(inherit)h 13(the)h 14(directory)h 177 2413(sp)s 1(eci\014cation)h 18(supplied)h 18(using)h 17(the)h 79(comm)h -1(and)h 16(line)h 17(option.)h 28(The)h 17(sp)h 1(ecial)h 18(c)h -1(haracter)h 19(is)h 17(sa)h -1(v)h -1(ed)h 18(at)h 17(the)h 177 2463(start)s 15(of)h 13(eac)h -1(h)h 14(include)h 14(\014le)h 14(and)h 14(restored)h 16(to)h 13(its)h 14(previous)h 15(v)h -2(alue)h 13(at)h 14(the)h 14(end)h 14(of)h 14(eac)h -1(h)h 14(include)h 14(\014le.)h 18(Include)h 177 2513(\014les)s 14(can)h 14(b)h 1(e)h 14(nested)h 15(up)h 14(to)h 13(ten)h 15(lev)h -1(els.)h 17(Recursiv)h -1(e)h 15(included)h 14(\014les)h 14(will)h 12(alw)h -1(a)h -1(ys)h 12(cause)h 15(an)h 13(in\014nite)h 14(recursion)h 177 2562(as)s 13(there)h 14(is)h 12(no)h 12(b)h 1(ottoming)h 11(out)h 12(mec)h -1(hanism)h 10(a)h -1(v)h -2(ailable.)h 16(Include)h 13(\014les)h 13(m)h -1(ust)h 11(con)h -1(tain)h 12(an)h 13(in)h -1(teger)h 13(n)h -1(um)h -1(b)h 1(er)h 11(of)h 177 2612(lines)s 13(\(i.e.)h 13(the)h 14(last)h 13(line)h 13(m)h -1(ust)h 12(b)h 1(e)h 14(terminated)h 12(with)h 13(an)h 13(end)h 14(of)h 13(line)h 13(mark)h -1(er\).)h 17(Once)h 14(F)h -3(unnelW)h -3(eb)h 13(has)h 13(seen)h 177 2662(\\)s 65(")h 14(at)h 14(the)h 15(start)h 14(of)h 14(a)h 13(line,)h 14(it)h 13(will)h 13(grab)h 14(the)h 14(rest)h 16(of)h 13(the)h 15(line)h 13(ra)h -1(w)h 14(and)h 14(treat)h 15(it)h 13(as)h 14(a)h 14(\014le)h 14(name.)h 18(There)h 177 2712(is)s 14(no)h 14(place)h 14(on)h 13(the)h 15(line)h 13(for)h 14(things)h 13(lik)h -1(e)h 14(F)h -3(unnelW)h -3(eb)h 13(comm)h -1(en)h -1(ts)h 13(\(see)h 15(later\))h 14(or)h 14(extraneous)h 15(text.)h 177 2785(Include)s 21(\014les)h 20(can)h 21(b)h 1(e)h 20(used)h 21(for)h 20(man)h -1(y)h 18(purp)h 1(oses,)h 23(but)h 20(are)h 20(particularly)h 20(useful)h 20(for)h 20(hauling)h 18(in)h 20(macro)h 177 2835(libraries.)s 1042 2940(31)s 32 @eop 33 @bop0 cmr6.300 sf [<1F00218060C060C000C0008001800F00008000400060C060C060804060801F00> 16 16 -1 15 15] 51 dc [<0300030007000F000B001300330023004300C300FFE003000300030003001FE0> 16 16 -1 15 15] 52 dc cmr7.300 sf [<0FC030707038703870380038003000E00FC0007000380018001C601CF01CF018E03860 701FC0> 16 19 -1 18 17] 51 dc [<006000E000E00160026006600C600860106020606060C060FFFC006000600060006000 6003FC> 16 19 -1 18 17] 52 dc cmbx12.300 sf [<0007FC0000003FFF800000FC07E00003F001F80007E000FC000FC0007E001F80003F00 1F80003F003F00001F803F00001F807F00001FC07E00000FC07E00000FC0FE00000FE0FE 00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00 000FE07E00000FC07F00001FC07F00001FC03F00001F803F80003F801F80003F000FC000 7E0007E000FC0003F001F80000FC07E000003FFF80000007FC0000> 40 34 -3 33 42] 79 dc [ 40 22 -1 21 40] 119 dc cmbx10.432 sf [<380000003E0000003FFFFFF03FFFFFF03FFFFFF07FFFFFE07FFFFFC07FFFFFC07FFFFF 8070000F0070001E0070003C00E0003800E0007800E000F0000001E0000003C0000003C0 000007800000078000000F0000001F0000001F0000001F0000003F0000003F0000003E00 00007E0000007E0000007E0000007E000000FE000000FE000000FE000000FE000000FE00 0000FE000000FE000000FE000000FE000000380000> 32 41 -4 40 34] 55 dc [ 40 39 -1 26 36] 121 dc [ 40 39 -2 26 38] 112 dc cmr8.300 sf [<001000003800003800003800005C00005C00005C00008E00008E00008E000107000107 0003078002038002038007FFC00401C00401C00800E00800E01800E03800F0FE03FE> 24 23 -1 22 26] 65 dc [<0FE030306018701C701C001C00180038006007E000300018000C000E000EE00EE00EC0 0C401830300FE0> 16 21 -1 20 18] 51 dc [<07C018303018701C600C600CE00EE00EE00EE00EE00EE00EE00EE00EE00E600C600C70 1C30181C7007C0> 16 21 -1 20 18] 48 dc [<1C00183200386180706161F0E09EE0E080C0E081C0E08180E08380E08700610600610E 00321C001C18380038640070C20060C200E1C101C1C10181C10381C10301C10701C10E00 C20C00C21C0064180038> 24 27 -2 24 29] 37 dc [<40007FFE7FFC7FF8C008801080200040008000800100010003000200060006000E000E 000E000E000E000400> 16 22 -2 21 18] 55 dc [<0102040C1818303070606060E0E0E0E0E0E0E0E0E0E060606070303018180C040201> 8 34 -3 24 14] 40 dc [<8040203018180C0C0E060606070707070707070707070606060E0C0C181830204080> 8 34 -2 24 14] 41 dc [<0FC4302C601C400CC004C004C004E00070007F003FE00FF801FC001C000E0006800680 068006C004E008D81087E0> 16 23 -2 22 20] 83 dc [ 24 23 -1 22 26] 88 dc 33 @bop1 cmr6.300 sf 223 2625(3)s 223 2744(4)s cmr7.300 sf 270 292(3)s 1929 1309(4)s cmbx12.300 sf 177 574(1.7.1)s 55(Ov)h -2(erview)h cmbx10.432 sf 177 42(1.7)s 70(T)h -2(yp)h 2(esetting)h 21(F)h -6(aciliti)h -1(e)h -1(s)h cmbx10.300 sf 1278 1100(macro)s 14(de\014ni)h -1(ti)h -1(ons)h 21(directiv)h -2(es)h 177 1150(free)s 15(text)h cmr8.300 sf 241 2637(As)s 12(an)h 11(exampl)h -1(e,)h 10(the)h 10(author)h 10(used)h 11(F)h -3(unnelW)h -3(eb)h 9(to)h 11(dev)h -1(elop)h 10(a)h 11(largish)h 10(compute)h -1(r)h 10(program)h 9(and)h 11(found)h 10(that)h 10(on)h 11(a)h -1(v)h -1(erage)h 177 2677(his)s 11(st)h -1(yle)h 11(of)h 11(using)h 10(F)h -3(unnelW)h -3(eb)h 10(resulted)h 9(in)h 12(ab)h 1(out)h 9(30%)h 12(do)h 1(cume)h -1(n)h -1(ta)h -1(tion)h 9(and)h 11(70%)h 11(macros)h 10(\(co)h 1(de\))h 10(\(measu)h -1(red)h 9(b)h -1(y)h 11(n)h -1(um)h -1(b)h 1(ers)h 177 2716(of)s 11(lines\).)h 241 2756(Here)s 13(the)h 14(term)h 12(\\t)h -1(yp)h 1(eset")h 12(is)h 14(used)h 13(lo)h 1(osely)h 12(to)h 14(refer)h 12(to)h 14(F)h -3(unnelW)h -3(eb's)h 12(generati)h -1(on)h 12(of)h 13(t)h -1(yp)h 1(esetter)h 12(comma)h -1(nds)h 12(for)h 13(eac)h -1(h)h 177 2795(construct)s 11(in)h 12(the)h 12(input)h 12(\014le.)h 18(Strictly)h -3(,)h 11(the)h 12(term)h 12(should)h 11(b)h 1(e)h 13(used)h 12(only)h 11(to)h 13(describ)h 1(e)h 11(the)h 12(actions)h 11(of)h 12(a)h 13(t)h -1(yp)h 1(esetter)h 10(program)h 177 2835(\(e.g.)s 11(T)h 275 2842(E)s 295 2835(X\).)s cmtt10.300 sf 177 1424(tt)s 22(font)h 1651 1599(example.fw)s 1051 1648(fw)s 21(example)h 21(+t)h 159(+t)h 928 1698(example.tex)s 504 1748(example.out)s 93(example.tex)h 177 1865(You)s 21(are)h 22(reading)h 20(some)h 21(free)h 21(text)h 21(before)h 20(the)h 21(macro.)h 21(Free)h 21(text)h 21(can)h 21(consist)h 177 1915(of)s 22(any)h 21(text)h 21(\(not)h 21(containing)h 19(the)h 22(FunnelWeb)h 19(special)h 21(character\))h 20(including)h 177 1965(typesetter)s 20(commands)h 177 2014(such)s 21(as)h 22($,)h 21(%,)h 21(#,)h 22(and)h 21(\\TeX{})h 20(which)h 177 2064(will)s 21(be)h 22(typeset)h 20(to)h 21(appear)h 21(exactly)h 20(as)h 22(they)h 20(do)h 22(in)h 21(the)h 21(input)h 21(file!)h 177 2114(Look)s 21(out!)h 21(Here)h 21(comes)h 21(a)h 21(macro!)h 177 2214(@O@=)h -1(=@{@-)h 177 2263(This)s 21(text)h 21(is)h 21(part)h 21(of)h 177 2313(a)s 22(macro)h 21(definition)h -1(.)h 177 2363(@})s 177 2463(This)s 21(is)h 22(free)h 20(text)h 21(following)h 20(the)h 22(macro.)h 20(This)h 21(sentence)h 20(contains)h 177 2513(two)s 21(@{inline@})h 20(typesetter)h 20(@/directives)h -1(@/.)h 177 2562(Now)s 21(here)h 21(is)h 22(a)h 21(non-inline)h 20(typesetting)h 20(directive.)h cmr10.300 sf 177 158(The)s 14(\014rst)h 14(half)h 12(of)h 12(this)h 13(tutorial)h 12(fo)h 1(cuses)h 15(solely)h 12(on)h 13(the)h 14(macro)h 12(facilities)h 12(of)h 12(F)h -3(unnelW)h -3(eb)h 13(\(whic)h -1(h)h 13(it)h 13(more)h 12(or)h 177 208(less)s 15(co)h -1(v)h -1(ers)h 15(completely\).)h 17(As)h 15(a)h 13(result,)h 15(the)h 14(example)h 13(do)h 1(cumen)h -1(ts)h 14(y)h -1(ou)h 13(ha)h -1(v)h -1(e)h 14(seen)h 16(so)h 14(far)h 13(ha)h -1(v)h -1(e)h 14(b)h 1(een)h 15(gross)h 177 257(distortions)s 19(of)h 19(\\normal")h 17(F)h -3(unnelW)h -3(eb)h 18(do)h 1(cumen)h -1(ts)h 19(whic)h -1(h)h 19(often)h 20(con)h -1(tain)h 18(as)h 20(m)h -1(uc)h -1(h)h 18(do)h 1(cumen)h -1(tation)h 18(as)h 177 307(co)s 1(de.)h 37(While)h 12(there)h 15(are)h 13(applications)h 12(where)h 14(F)h -3(unnelW)h -3(eb)h 12(can)h 14(b)h 1(e)h 13(used)h 14(solely)h 12(as)h 13(a)h 13(macro)h 12(prepro)h 1(cessor,)h 177 357(most)s 13(applications)h 13(will)h 12(use)h 15(its)h 14(t)h -1(yp)h 1(esetting)h 15(facilities)h 12(as)h 14(w)h -1(ell.)h 177 432(This)s 14(section)h 15(restores)h 15(the)h 15(balance)h 14(in)h 13(this)h 14(tutorial)h 13(b)h -1(y)h 14(presen)h -1(ting)h 15(F)h -3(unnelW)h -3(eb's)h 13(t)h -1(yp)h 1(esetting)h 15(facilities.)h 177 676(The)s 12(macro)h 10(de\014nitions)h 11(discussed)h 12(in)h 11(the)h 12(macro)h 10(tutorial)h 10(completely)h 10(de\014ne)h 12(the)h 12(con)h -1(ten)h -1(ts)h 12(of)h 10(the)h 12(pro)h 1(duct)h 177 726(\014les)s 19(that)h 18(F)h -3(unnelW)h -3(eb)h 17(will)h 17(generate.)h 32(These)h 19(macro)h 17(de\014nitions)h 18(can)h 18(b)h 1(e)h 19(arranged)h 18(in)h 18(an)h -1(y)h 17(order)h 19(and)h 177 776(nothing)s 14(external)h 14(to)h 14(them)h 13(can)h 15(a\013ect)h 15(the)h 15(con)h -1(ten)h -1(ts)h 15(of)h 13(the)h 15(pro)h 1(duct)h 15(\014les.)h 19(The)h 15(macros)h 13(can)h 14(b)h 1(e)h 15(though)h -1(t)h 177 826(of)s 13(as)h 14(a)h 14(group)h 14(of)h 13(self-con)h -1(tained)h 14(islands.)h 177 901(Although)s 13(F)h -3(unnelW)h -3(eb)h 12(will)h 12(can)h 14(pro)h 1(cess)h 15(the)h 13(macros)h 13(all)h 12(on)h 13(their)h 13(o)h -1(wn,)h 13(the)h 13(full)h 12(p)h 1(o)h -1(w)h -1(er)h 14(of)h 12(F)h -3(unnelW)h -3(eb)h 13(is)h 177 950(realized)s 15(only)h 14(when)h 16(the)h 15(macros)h 14(are)h 16(surrounded)h 16(b)h -1(y)h 14(a)h 15(sea)h 15(of)h 14(do)h 1(cumen)h -1(tation.)h 20(This)h 15(sea)h 15(can)h 15(tak)h -1(e)h 15(t)h -1(w)h -1(o)h 177 1000(forms:)s 18(directiv)h -1(es)h 15(and)h 14(free)h 15(text.)h 20(Some)h 13(of)h 14(the)h 15(directiv)h -1(es)h 15(con)h -1(trol)h 14(things)h 14(suc)h -1(h)h 15(as)h 15(the)h 15(maxim)h -3(um)h 11(input)h 177 1050(line)s 9(length.)h 17(Ho)h -1(w)h -1(ev)h -1(er,)h 10(most)h 9(of)h 8(them)h 9(are)h 10(t)h -1(yp)h 1(esetting)h 11(directiv)h -1(es)h 10(that)h 10(a\013ect)h 10(the)h 11(prin)h -1(ted)h 9(do)h 1(cumen)h -1(tation.)h 177 1100(Th)s -1(us)h 12(a)h 12(F)h -3(unnelW)h -3(eb)h 12(do)h 1(cumen)h -1(t)h 11(can)h 12(b)h 1(e)h 13(view)h -1(ed)h 12(as)h 12(a)h 12(sequence)h 14(of)h 370(,)h 211(,)h 10(and)h 356 1150(.)s 177 1225(Unlik)s -1(e)h 10(the)h 12(pro)h 1(duct)h 11(\014les)h 11(whic)h -1(h)h 11(consist)h 11(of)h 11(unscram)h -1(bled)h 10(macro)h 9(calls,)h 11(the)h 11(do)h 1(cumen)h -1(tation)h 10(\014le)h 10(is)h 11(more)h 10(or)h 177 1274(less)s 10(a)h 9(direct)h 10(represe)h 1(n)h -1(tation)h 10(of)h 9(the)h 10(input)h 9(\014le.)h 17(Eac)h -1(h)h 9(part)h 10(of)h 9(the)h 10(input)h 9(\014le)h 9(app)h 1(ears)h 10(in)h 9(the)h 10(do)h 1(cumen)h -1(tation)h 177 1324(\014le)s 11(in)h 10(the)h 11(order)h 12(in)h 10(whic)h -1(h)h 11(it)h 10(app)h 1(ears)h 12(in)h 10(the)h 11(input)h 11(\014le.)h 17(Ho)h -1(w)h -1(ev)h -1(er,)h 11(eac)h -1(h)h 11(di\013eren)h -1(t)h 12(kind)h 10(of)h 10(part)h 11(is)h 11(t)h -1(yp)h 1(eset)h 177 1374(in)s 13(a)h 13(di\013eren)h -1(t)h 15(manner.)h 17(Macros)h 14(are)h 14(t)h -1(yp)h 1(eset)h 15(in)h 13(a)h 13(particular)h 13(st)h -1(yle,)h 14(with)h 13(the)h 14(macro)h 12(b)h 1(o)h 1(dy)h 14(app)h 1(earing)h 13(in)h 342 1424(\(see)s 13(some)h 11(F)h -3(unnelW)h -3(eb)h 12(prin)h -1(ted)h 12(do)h 1(cumen)h -1(tation)h 11(for)h 12(an)h 11(example\).)h 17(T)h -1(yp)h 1(esetter)h 14(directiv)h -1(es)h 13(ha)h -1(v)h -1(e)h 177 1474(sp)s 1(eci\014c)h 16(de\014ned)h 15(e\013ects)h 16(\(more)h 13(later\).)h 18(F)h -3(ree)h 15(text)h 14(is)h 14(t)h -1(yp)h 1(eset)h 15(exactly)h 14(as)h 14(it)h 14(is,)h 13(except)h 15(that)h 14(eac)h -1(h)h 15(blo)h 1(c)h -1(k)h 13(of)h 177 1524(text)s 15(b)h 1(et)h -1(w)h -1(een)h 15(blank)h 13(lines)h 14(is)h 14(\014lled)h 13(and)h 14(justi\014ed)h 14(as)h 14(a)h 14(paragraph.)h 177 1599(The)s 13(follo)h -1(wing)h 10(example)h 12(demonstrates)h 13(ho)h -1(w)h 12(all)h 11(this)h 13(w)h -1(orks.)h 17(T)h -1(yp)h 1(e)h 13(in)h 13(the)h 13(follo)h -1(wi)h -1(ng)h 11(as)h 243(and)h 177 1648(run)s 15(it)h 15(through)h 14(F)h -3(unnelW)h -3(eb)h 14(with)h 15(the)h 15(comma)h -1(nd)h 13(\\)h 284(".)h 19(The)h 15(\\)h 44(")h 14(instructs)h 16(F)h -3(unnelW)h -3(eb)h 177 1698(to)s 19(generate)h 20(a)h 19(do)h 1(cumen)h -1(tation)h 18(\014le)h 19(called)h 261(.)h 31(Run)h 19(the)h 19(\014le)h 19(through)h 20(T)h 1643 1707(E)s 1666 1698(X)s 19(and)h 19(prin)h -1(t)h 19(it.)h 177 1748(Examine)s 13(the)h 14(\014les)h 268(and)h 255(.)h 1042 2940(32)s 709 2 177 2599 r 33 @eop 34 @bop0 cmbx10.300 sf [ 40 28 -1 27 36] 89 dc [<78FCFCFEFE7A0202040408083040> 8 14 -3 28 13] 39 dc [<7FFE1FFE007FFE1FFE0007F001800003F803800001FC07000000FC06000000FE0C0000 007F1C0000003F380000003FB00000001FE00000000FE00000000FE000000007F0000000 03F800000007F80000000FFC0000000CFE000000187E000000387F000000703F80000060 1F800000C01FC00001C00FE000018007F000030007F000FFF03FFF80FFF03FFF80> 40 28 -1 27 36] 88 dc 34 @bop1 cmsy10.300 sf 338 2835(f)s 154(g)h 334(f)h 131(g)h cmbx10.300 sf 295 1876(Y)s -4(ou)h 11(don't)h 9(ha)h -1(v)h -1(e)h 10(to)h 10(kno)h -1(w)h 11(T)h -4(eX:)h 295 2003(In)s 16(order:)h 295 2080(F)s -4(ree)h 17(text:)h 295 2256(T)s -4(eX)h 20(co)h 1(des:)h 295 2482(fw)s 17(sequences:)h 295 2609(The)s 19(macro:)h 295 2735(T)s -1(yp)h 1(esetter)h 16(directiv)h -1(es)h -1(:)h cmtt10.300 sf 177 91(@t)s 22(new_page)h 177 191(This)s 21(sentence)h 20(will)h 21(appear)h 21(on)h 21(the)h 21(next)h 21(page.)h 491 312(example.tex)s 177 533(You)s 21(are)h 22(reading)h 20(some)h 21(free)h 21(text)h 21(before)h 20(the)h 21(macro.)h 21(Free)h 21(text)h 21(can)h 21(consist)h 177 583(of)s 22(any)h 21(text)h 21(\(not)h 21(containing)h 19(the)h 22(FunnelWeb)h 19(special)h 21(character\))h 20(including)h 177 632(typesetter)s 20(commands)h 177 682(such)s 21(as)h 22(\\$,)h 21(\\%,)h 21(\\#,)h 21(and)h 21($\\backslash$Te)h -1(X$\\{)h -1($$\\}$)h 19(which)h 177 732(will)s 21(be)h 22(typeset)h 20(to)h 21(appear)h 21(exactly)h 20(as)h 22(they)h 20(do)h 22(in)h 21(the)h 21(input)h 21(file!)h 177 782(Look)s 21(out!)h 21(Here)h 21(comes)h 21(a)h 21(macro!)h 177 882(\\fwbeginmacro)s 177 931(\\fwfilename{e)s -1(xampl)h -1(e.out)h -1(}{1}\\)h -1(fwequ)h -1(als)h 20(\\fwodef)h 20(\\fwbtx[This)h 19(text)h 21(is)h 22(part)h 21(of)h 177 981(a)s 22(macro)h 21(definition)h -1(.)h 177 1031(]fwetx=%)s 177 1081(\\fwcdef)s 177 1131(\\fwbeginmacro)s -1(notes)h 177 1180(\\fwisafile{Th)s -1(is)h 20(macro)h 21(is)h 21(attached)h 20(to)h 22(an)h 21(output)h 20(file.})h 177 1230(\\fwendmacrono)s -1(tes)h 177 1280(\\fwendmacro)s 177 1380(This)s 21(is)h 22(free)h 20(text)h 21(following)h 20(the)h 22(macro.)h 20(This)h 21(sentence)h 20(contains)h 177 1430(two)s 21(\\fwlit{inline})h 19(typesetter)h 20(\\fwemp{direc)h -1(tives)h -1(}.)h 177 1479(Now)s 21(here)h 21(is)h 22(a)h 21(non-inline)h 20(typesetting)h 20(directive.)h 177 1579(\\fwnewpage)s 177 1679(This)s 21(sentence)h 20(will)h 21(appear)h 21(on)h 21(the)h 21(next)h 21(page.)h 778 1800(example.tex)s 1247 2306($)s 269(\\$)h 684 2482(fw)s 297(\\fwbeginma)h -1(cro)h 316 2835(@)s 21(inline@)h 223(\\fwlit)h 21(inlin)h -1(e)h cmr10.300 sf 177 312(A)s -1(t)h 12(the)h 13(top)h 11(of)h 12(the)h 263(do)h 1(cumen)h -1(tation)h 11(\014le)h 12(will)h 10(b)h 1(e)h 13(a)h 11(set)h 13(of)h 11(T)h 1383 321(E)s 1406 312(X)s 12(macro)h 11(de\014nitions.)h 17(The)h 13(T)h 1895 321(E)s 1918 312(X)s 177 362(co)s 1(de)h 13(corresp)h 1(onding)h 14(to)h 12(the)h 13(input)h 12(ab)h 1(o)h -1(v)h -1(e)h 12(app)h 1(ears)h 13(at)h 12(the)h 13(end)h 13(of)h 12(the)h 13(\014le.)h 18(It)h 12(should)h 12(lo)h 1(ok)h 12(something)h 11(lik)h -1(e)h 177 412(this.)s 177 1800(The)s 14(follo)h -1(wing)h 12(p)h 1(oin)h -1(ts)h 14(explain)h 13(the)h 268(\014le.)h 896 1876(If)s 9(y)h -1(ou)h 9(don't)h 9(kno)h -1(w)h 9(T)h 1238 1885(E)s 1261 1876(X,)s 9(don't)h 9(pa)h -1(y)h 9(to)h 1(o)h 10(m)h -1(uc)h -1(h)h 8(atten)h -1(tion)h 295 1926(to)s 14(this)h 14(section.)h 19(Y)h -3(ou)h 13(don't)h 13(need)h 15(to)h 14(kno)h -1(w)h 13(T)h 1054 1935(E)s 1078 1926(X)s 13(to)h 14(use)h 15(F)h -3(unnelW)h -3(eb.)h 499 2003(F)s -3(unnelW)h -3(eb)h 13(has)h 14(merely)h 14(transformed)h 13(the)h 14(input.)h 18(It)h 14(hasn't)h 14(rearranged)h 15(it.)h 522 2080(Most)s 15(of)h 15(the)h 16(free)h 17(text)h 16(has)h 15(b)h 1(een)h 17(simply)h 13(copied)h 16(o)h -1(v)h -1(er.)h 23(The)h 16(T)h 1580 2089(E)s 1603 2080(X)s 15(t)h -1(yp)h 1(esetter)h 295 2129(justi\014es)s 14(and)h 13(\014lls)h 13(all)h 11(paragraphs)h 14(fed)h 13(to)h 13(it)h 13(b)h -1(y)h 12(default,)h 13(so)h 13(most)h 12(of)h 13(the)h 13(text)h 14(has)h 13(just)h 14(b)h 1(een)h 295 2179(copied)s 14(v)h -1(erbatim.)h 554 2256(The)s 17(c)h -1(haracters)h 19(and)h 17(sequences)h 19(whic)h -1(h)h 17(T)h 1263 2265(E)s 1286 2256(X)s 17(treats)h 18(as)h 17(sp)h 1(ecial)h 18(ha)h -1(v)h -1(e)h 17(b)h 1(een)h 295 2306(neutralized)s 12(in)h 10(the)h 12(do)h 1(cumen)h -1(tation)h 9(\014le.)h 17(F)h -3(or)h 11(example,)h 9(\\)h 22(")h 11(has)h 11(b)h 1(ecome)h 10(\\)h 44(".)h 16(By)h 11(default,)h 295 2356(F)s -3(unnelW)h -3(eb)h 12(allo)h -1(ws)h 11(the)h 13(user)h 13(to)h 12(write)h 12(an)h -1(y)h 12(text)h 13(as)h 12(free)h 13(text)h 13(and)h 12(not)h 12(ha)h -1(v)h -1(e)h 12(to)h 12(w)h -1(orry)h 12(ab)h 1(out)h 295 2405(acciden)s -1(tally)h 14(in)h -1(v)h -1(oking)h 12(t)h -1(yp)h 1(esetter)h 16(features.)h 598 2482(The)s 73(sequences)h 17(\(e.g.)h 300(\))h 13(in)h -1(v)h -1(ok)h -1(e)h 14(T)h 1491 2491(E)s 1514 2482(X)s 15(macros)h 14(de\014ned)h 295 2532(earlier)s 14(in)h 14(the)h 14(do)h 1(cumen)h -1(tation)h 13(\014le)h 14(\(and)h 14(not)h 13(sho)h -1(wn)h 14(here\).)h 561 2609(The)s 17(macro)h 15(is)h 17(t)h -1(yp)h 1(eset)h 18(using)h 16(a)h 16(set)h 18(of)h 16(prede\014ned)h 18(T)h 1460 2618(E)s 1484 2609(X)s 16(macros.)h 26(See)h 17(the)h 295 2658(prin)s -1(ted)h 15(do)h 1(cumen)h -1(tation)h 12(to)h 14(see)h 15(what)h 14(this)h 14(lo)h 1(oks)h 13(lik)h -1(e)h 13(on)h 14(pap)h 1(er.)h 774 2735(Unlik)s -1(e)h 15(the)h 16(T)h 1002 2744(E)s 1025 2735(X)s 16(comm)h -1(and)h 14(sequences)h 18(\(whic)h -1(h)h 16(w)h -1(ere)h 17(neutral-)h 295 2785(ized\),)s 16(the)h 16(F)h -3(unnelW)h -3(eb)h 15(t)h -1(yp)h 1(esetter)h 17(directiv)h -1(es)h 16(turn)h 16(in)h -1(to)h 14(T)h 1286 2794(E)s 1310 2785(X)s 15(macro)h 14(calls.)h 22(F)h -3(or)h 14(example,)h 295 2835(\\)s 218(")h 11(b)h 1(ecame)h 14(\\)h 305(".)h 1042 2940(33)s 34 @eop 35 @bop0 cmbx12.300 sf [ 32 32 -1 21 30] 121 dc [ 40 34 -2 33 44] 72 dc [ 32 35 -2 34 31] 104 dc 35 @bop1 cmcsc10.300 sf 617 2406(a)s 1182(a)h cmbx10.300 sf 1737 585(t)s -1(yp)h 1(esetter)h 177 635(indep)s 1(end)h -1(en)h -2(t)h cmbx12.300 sf 177 333(1.7.2)s 55(T)h -2(yp)h 2(esetter)h 17(Indep)h 2(endence)h 177 1885(1.7.3)s 55(Hierarc)h -2(hical)h 18(Structure)h cmtt10.300 sf 177 1201(@p)s 22(typesetter)h 19(=)h 22(tex)h 364 2361(@A)s 23(@B)h 23(@C)h 23(@D)h 103(@E)h 898(@A)h 762 2411(\\chapter)s 123(@E)h 177 2461(\\subsubsubsec)s -1(tion)h 1209 2635(@<)s 98(@>)h 440 2685(@A)s cmr10.300 sf 177 42(In)s 16(summ)h -1(ary)h -3(,)h 13(F)h -3(unnelW)h -3(eb)h 15(pro)h 1(duces)h 17(t)h -1(yp)h 1(eset)h 17(do)h 1(cumen)h -1(tation)h 14(that)h 15(transforms,)h 15(but)h 15(do)h 1(es)h 16(not)h 16(reorder,)h 177 91(the)s 14(input)h 13(\014le.)h 18(Macros)h 14(are)h 14(t)h -1(yp)h 1(eset)h 15(in)h 13(a)h 13(sp)h 1(eci\014c)h 15(st)h -1(yle.)h 18(F)h -3(unnelW)h -3(eb)h 13(t)h -1(yp)h 1(esetter)h 16(directiv)h -1(es)h 15(ha)h -1(v)h -1(e)h 13(partic-)h 177 141(ular)s 15(w)h -1(ell-de\014ned)h 15(e\013ects.)h 23(F)h -3(ree)h 16(text)h 16(is)h 15(\014lled)h 14(and)h 15(justi\014ed,)h 15(but)h 15(will)h 14(otherwise)h 16(app)h 1(ear)h 15(in)h 15(the)h 15(prin)h -1(ted)h 177 191(do)s 1(cumen)h -1(tation)h 13(exactly)h 14(as)h 14(it)h 13(app)h 1(ears)h 15(in)h 13(the)h 15(input)h 14(\014le.)h 177 436(Although)s 16(the)h 17(curren)h -1(t)h 18(v)h -1(ersion)h 16(of)h 16(F)h -3(unnelW)h -3(eb)h 15(can)h 17(only)h 15(generate)h 18(do)h 1(cumen)h -1(tation)h 15(\014les)h 17(in)h 16(T)h 1783 445(E)s 1806 436(X)s 16(form,)h 177 485(it)s 18(encourages)h 20(t)h -1(yp)h 1(esetter)h 21(indep)h 1(endence)h 21(b)h -1(y)h 18(neutralizing)h 18(all)h 17(T)h 1280 494(E)s 1303 485(X)s 19(con)h -1(trol)h 18(sequences)h 21(b)h 1(efore)h 20(writing)h 177 535(them)s 19(out.)h 34(The)h 20(result)h 20(is)h 19(that)h 20(y)h -1(ou)h 19(don't)h 18(ha)h -1(v)h -1(e)h 20(w)h -1(orry)h 19(ab)h 1(out)h 19(upsetting)h 20(or)h 19(dep)h 1(ending)h 20(on)h 19(T)h 1831 544(E)s 1855 535(X)s 19(b)h -1(y)h 177 585(acciden)s -1(tally)h 11(including)h 11(some)h 11(sp)h 1(ecial)h 12(c)h -1(haracter)h 13(or)h 12(sequence.)h 19(By)h 12(default)h 12(y)h -1(our)h 11(input)h 12(\014le)h 12(is)h 436 635(.)s 177 710(This)s 13(sc)h -1(heme)h 13(di\013ers)h 14(from)h 11(other)h 13(literate)h 13(programm)h -1(ing)h 11(to)h 1(ols,)h 12(including)h 12(all)h 11(earlier)h 14(v)h -1(ersions)h 13(of)h 12(F)h -3(unnel-)h 177 760(W)s -3(eb,)h 13(whic)h -1(h)h 13(cop)h -1(y)h 13(their)h 14(free)h 14(text)h 14(directly)h 13(to)h 13(the)h 14(do)h 1(cumen)h -1(tation)h 12(\014le,)h 13(the)h 14(justi\014cation)h 13(b)h 1(eing)h 13(that)h 13(the)h 177 810(programm)s -1(er)h 11(can)h 13(use)h 13(the)h 13(full)h 11(p)h 1(o)h -1(w)h -1(er)h 12(of)h 12(the)h 13(t)h -1(yp)h 1(esetter)h 14(language)h 12(to)h 12(describ)h 1(e)h 14(the)h 13(program.)h 15(The)h 13(disad-)h 177 859(v)s -2(an)h -1(tages)h 14(of)h 13(doing)h 13(this)h 14(are)h 14(\014rst)h 15(that)h 14(the)h 14(programm)h -1(er)h 13(is)h 14(required)h 14(to)h 14(kno)h -1(w)h 13(the)h 15(t)h -1(yp)h 1(esetting)h 15(language)h 177 909(and)s 16(second)h 17(that)h 16(the)h 16(input)h 16(\014le)h 16(b)h 1(ecomes)h 16(t)h -1(yp)h 1(esetter)h 18(dep)h 1(enden)h -1(t.)h 25(F)h -3(unnelW)h -3(eb)h 16(a)h -1(v)h -1(oids)h 14(these)h 18(problems)h 177 959(b)s -1(y)h 14(knobbling)h 12(the)h 15(free)h 15(text)h 14(b)h 1(e)h 15(default.)h 177 1034(Ho)s -1(w)h -1(ev)h -1(er,)h 13(F)h -3(unnelW)h -3(eb)h 13(do)h 1(es)h 14(pro)h -1(vide)h 13(a)h 12(trap)h 1(do)h 1(or)h 14(for)h 12(those)h 14(who)h 13(w)h -1(an)h -1(t)h 13(their)h 13(free)h 14(text)h 14(to)h 13(b)h 1(e)h 13(fed)h 13(directly)h 177 1084(to)s 14(T)h 251 1093(E)s 274 1084(X.)s 13(T)h -3(o)h 14(op)h 1(en)h 14(the)h 14(trap)h 1(do)h 1(or,)h 14(simply)h 12(include)h 14(the)h 14(follo)h -1(wing)h 11(pragma)h 12(somewhere)h 15(in)h 13(y)h -1(our)h 14(input)h 13(\014le.)h 177 1319(See)s 15(Section)h 14(3.11.2)h 12(for)h 14(more)h 13(inform)h -1(ation.)h 177 1394(F)s -3(unnelW)h -3(eb)h 10(lea)h -1(v)h -1(es)h 11(the)h 12(degree)h 12(to)h 10(whic)h -1(h)h 11(the)h 11(user)h 12(wishes)h 12(to)h 10(bind)h 11(a)h 10(particular)h 11(do)h 1(cumen)h -1(t)h 10(to)h 11(a)h 10(particular)h 177 1444(t)s -1(yp)h 1(esetter)h 15(up)h 13(to)h 12(the)h 14(user.)h 18(In)h 13(some)h 12(cases,)h 13(the)h 14(extra)h 13(t)h -1(yp)h 1(esetting)h 13(p)h 1(o)h -1(w)h -1(er)h 13(ma)h -1(y)h 11(comp)h 1(ensate)h 13(for)h 12(the)h 13(lac)h -1(k)h 177 1493(of)s 14(p)h 1(ortabilit)h -1(y)h -3(.)h 18(Ho)h -1(w)h -1(ev)h -1(er,)h 15(as)h 14(a)h 14(rule,)h 15(it)h 14(is)h 14(b)h 1(est)h 16(to)h 14(a)h -1(v)h -1(oid)h 13(t)h -1(yp)h 1(esetter-s)h 1(p)h 1(ec)h 1(i\014c)h 16(comma)h -1(nds,)h 13(so)h 15(as)h 14(to)h 14(allo)h -1(w)h 177 1543(y)s -1(our)h 17(input)h 17(\014les)h 18(to)h 17(b)h 1(e)h 17(formatted)h 16(at)h 17(a)h 17(later)h 18(date)h 17(for)h 17(di\013eren)h -1(t)h 18(t)h -1(yp)h 1(esetter)h 1(s.)h 30(F)h -3(unnelW)h -3(eb)h 16(includes)h 18(a)h 177 1593(n)s -1(um)h -1(b)h 1(er)h 14(of)h 14(its)h 14(o)h -1(wn)h 15(t)h -1(yp)h 1(esetter)h 16(commands)h 13(so)h 14(as)h 15(to)h 14(supp)h 1(ort)h 16(t)h -1(yp)h 1(esetter-indep)h 1(e)h 1(nden)h -1(t)h 17(input)h 14(\014les.)h 20(The)h 177 1643(follo)s -1(wing)h 12(sections)h 16(describ)h 1(e)h 16(some)h 13(of)h 14(these)h 16(comm)h -1(ands.)h 18(In)h 15(particular,)h 13(the)h 16(next)h 14(section)h 16(describ)h 1(es)h 16(the)h 177 1693(most)s 15(p)h 1(o)h -1(w)h -1(erful)h 15(F)h -3(unnelW)h -3(eb)h 15(t)h -1(yp)h 1(esetting)h 16(directiv)h -1(es)h 17(whic)h -1(h)h 15(allo)h -1(w)h 14(the)h 16(user)h 17(to)h 15(structure)h 18(the)h 16(do)h 1(cumen)h -1(t)h 177 1742(hierarc)s -1(hically)h -3(.)h 177 1987(The)s 19(tree)h 20(structure)h 20(is)h 19(one)h 18(of)h 18(the)h 19(most)h 17(e\013ectiv)h -1(e)h 20(structuring)h 20(to)h 1(ols)h 18(that)h 18(exists,)h 20(deriving)h 18(its)h 18(p)h 1(o)h -1(w)h -1(er)h 177 2037(from)s 13(the)h 15(principal)h 14(of)h 14(divide)h 15(and)h 14(conquor.)h 21(So)h 14(e\013ectiv)h -1(e)h 16(is)h 15(it)h 14(that)h 15(the)h 15(in)h -1(ternal)h 14(organization)h 14(of)h 14(most)h 177 2087(tec)s -1(hnical)h 17(b)h 1(o)h 1(oks)h 17(are)h 18(tree)h 18(structures)h 19(whic)h -1(h)h 17(are)h 18(concisely)h 17(summari)h -1(zed)h 16(in)h 17(the)h 17(table)h 17(of)h 16(con)h -1(ten)h -1(ts.)h 29(In)h 177 2136(con)s -1(trast,)h 14(computer)h 12(programs)h 12(are)h 14(usually)h 12(presen)h -1(ted)h 15(as)h 13(\015at)h 13(sequences)h 16(of)h 12(text)h 14(to)h 13(b)h 1(e)h 13(consumed)h 13(b)h -1(y)h 13(an)h 177 2186(anon)s -1(ymous)h 12(compiler.)h 177 2261(In)s 20(order)h 21(to)h 19(bring)h 20(program)h 18(do)h 1(cumen)h -1(tation)h 19(up)h 20(to)h 19(the)h 21(structural)h 21(sophistication)h 19(comm)h -1(onplace)h 18(in)h 177 2311(tec)s -1(hnical)h 12(b)h 1(o)h 1(oks,)h 12(F)h -3(unnelW)h -3(eb)h 11(pro)h -1(vides)h 11(\014v)h -1(e)h 12(lev)h -1(els)h 12(of)h 10(section)h 13(headings)h 11(implem)h -1(en)h -1(ted)h 10(b)h -1(y)h 12(the)h 12(\014v)h -1(e)h 12(sp)h 1(ecial)h 177 2361(sequences)s 59(,)h 55(,)h 55(,)h 55(,)h 12(and)h 56(.)h 11(These)h 13(m)h -1(ust)h 11(alw)h -1(a)h -1(ys)h 12(app)h 1(ear)h 12(at)h 12(the)h 13(start)h 13(of)h 11(a)h 12(line.)h 73(is)h 12(the)h 12(highest)h 177 2411(lev)s -1(el)h 21(section)h 21(\(e.g.)h 20(lik)h -1(e)h 20(L)h 4(T)h 659 2424(E)s 683 2411(X's)s 196(\))h 20(and)h 85(is)h 20(the)h 22(lo)h -1(w)h -1(est)h 20(lev)h -1(el)h 21(section)h 21(\(e.g.)h 20(lik)h -1(e)h 20(L)h 4(T)h 1866 2424(E)s 1890 2411(X's)s 550 2461(\).)s 31(Section)h 19(headings)h 19(can)h 19(app)h 1(ear)h 19(an)h -1(ywhere)h 20(in)h 18(the)h 19(free)h 20(text)h 20(of)h 18(a)h 18(F)h -3(unnelW)h -3(eb)h 177 2510(input)s 14(\014le)h 14(\(i.e.)h 13(an)h -1(ywhere)h 14(except)h 16(inside)h 14(a)h 13(macro)h 13(de\014nition\).)h 177 2586(Eac)s -1(h)h 16(section)h 16(heading)h 15(in)h 15(a)h 15(F)h -3(unnelW)h -3(eb)h 15(do)h 1(cumen)h -1(t)h 14(has)h 16(an)h 15(asso)h 1(ciated)h 16(name.)h 21(The)h 16(name)h 14(of)h 15(a)h 15(section)h 177 2635(can)s 17(b)h 1(e)h 16(pro)h -1(vided)h 17(explicitly)h 15(b)h -1(y)h 16(supplying)h 15(it)h 16(delimited)h 15(b)h -1(y)h 75(and)h 76(imm)h -1(ediately)h 14(after)h 16(the)h 17(section)h 177 2685(sequence)s 15(\(e.g.)h 57(\),)h 12(or)h 13(impli)h -1(citly)h 11(b)h -1(y)h 12(not)h 13(pro)h -1(viding)h 12(an)h 13(explicit)h 12(name,)h 12(in)h 12(whic)h -1(h)h 13(case)h 14(the)h 14(section)h 13(tak)h -1(es)h 177 2735(the)s 11(name)h 10(of)h 10(the)h 11(\014rst)h 11(macro)h 10(de\014ned)h 11(b)h 1(et)h -1(w)h -1(een)h 12(the)h 12(section)h 11(header)h 11(in)h 11(question)h 10(and)h 11(the)h 11(follo)h -1(wing)h 8(section)h 177 2785(header.)s 18(An)h 12(error)h 13(is)h 11(generated)h 13(if)h 11(a)h 11(section)h 12(has)h 12(not)h 11(b)h 1(een)h 13(giv)h -1(en)h 11(an)h 12(explicit)h 11(name)h 10(and)h 11(do)h 1(es)h 13(not)h 11(con)h -1(tain)h 177 2835(an)s -1(y)h 14(macro)h 12(de\014nitions.)h 18(Here)h 15(are)h 15(some)h 13(example)h 12(headings:)h 1042 2940(34)s 35 @eop 36 @bop0 cmsy10.300 sf [ 32 2 -3 10 32] 0 dc cmbx12.300 sf [ 40 34 -2 33 43] 85 dc [<03FC1E0FFF7F1F0F8F3E07CF3C03C07C03E07C03E07C03E07C03E07C03E03C03C03E07 C01F0F801FFF0013FC003000003000003800003FFF801FFFF00FFFF81FFFFC3800FC7000 3EF0001EF0001EF0001EF0001E78003C7C007C3F01F80FFFE001FF00> 24 33 -2 21 28] 103 dc [ 40 34 -2 33 43] 68 dc 36 @bop1 cmsy10.300 sf 1752 1080(\000)s cmmi10.300 sf 611 1080(n)s 1084(n)h cmbx12.300 sf 177 1869(1.7.4)s 55(Understanding)h 19(the)h 18(Prin)h -2(ted)h 19(Do)h 2(cumen)h -2(tati)h -1(on)h cmtt10.300 sf 177 42(@A@)h 177 91(@B@)h 177 141(@C@)h 177 191(@C@)h 177 241(@B@)h 177 291(@C@)h 177 340(@C@)h 177 440(@C)s 22(This)h 21(heading)h 20(hasn't)h 20(been)h 21(given)h 21(an)h 22(explicit)h 20(name,)h 20(but)h 22(will)h 21(inherit)h 20(the)h 177 490(name)s 21(\\p{Save)h 20(the)h 22(rest)h 21(of)h 21(the)h 21(world})h 21(from)h 21(the)h 21(macro)h 21(definition)h 19(below.)h 177 589(@$@@Z==@{)h -1(...@)h -1(})h 1406 1129(@C)s 455(@A)h 876 1179(@B)s 177 1296(@A@)h 177 1346(@C@)h 177 1512(@A)s 177 1628(This)s 21(FunnelWeb)h 20(input)h 21(file)h 21(is)h 21(in)h 22(error)h 20(because)h 21(its)h 21(first)h 21(section)h 20(heading)h 177 1678(is)s 22(at)h 21(level)h 21(C)h 21(rather)h 21(than)h 21(level)h 21(A.)h 177 1728(@C@<2@>)s 177 2137(@A@)h 177 2237(@t)s 22(table_of_c)h -1(onten)h -1(ts)h 177 2337(@A@)h 177 2436(The)s 21(following)h 20(macro)h 21(contain)h 20(comments)h 21(that)h 20(provide)h 21(moral)h 21(support)h 20(in)h 21(the)h 177 2486(output)s 21(code.)h 177 2586(@$@@M==)h -1(@{)h 177 2635(--)s 22(Shift)h 20(to)h 22(the)h 21(left!)h 177 2685(--)s 22(Shift)h 20(to)h 22(the)h 21(right!)h 177 2735(--)s 22(Pop)h 21(up,)h 21(push)h 21(down!)h 177 2785(--)s 22(Byte!)h 20(Byte!)h 21(Byte!)h 177 2835(--)s 22(\(From)h 20("The)h 21(New)h 21(Hacker's)h 21(Dictionary")h -1(\).)h cmr10.300 sf 177 706(The)s 16(feature)h 17(of)h 15(ha)h -1(ving)h 15(unnamed)h 14(sections)h 17(inherit)h 16(the)h 16(name)h 15(of)h 15(the)h 16(\014rst)h 17(macro)h 15(de\014ned)h 16(within)h 15(their)h 177 756(scop)s 1(e)h 14(is)h 13(presen)h -1(t)h 14(b)h 1(ecause)h 14(a)h 13(comm)h -1(on)h 10(st)h -1(yle)h 13(of)h 12(writing)h 12(in)h 12(F)h -3(unnelW)h -3(eb)h 13(is)h 12(to)h 13(ha)h -1(v)h -1(e)h 12(one)h 13(section)h 13(p)h 1(er)h 14(macro)h 177 806(de\014nition.)s 26(Because,)h 19(under)h 17(this)h 17(st)h -1(yle,)h 17(eac)h -1(h)h 17(section)h 17(describ)h 1(es)h 19(a)h 16(single)h 17(macro,)h 15(it)h 17(usually)h 15(turns)h 18(out)h 177 855(that)s 12(the)h 13(macro)h 11(name)h 11(mak)h -1(es)h 11(a)h 12(go)h 1(o)h 1(d)h 12(name)h 11(for)h 12(the)h 13(section)h 13(to)h 1(o.)h 17(The)h 13(inheritance)h 13(mec)h -1(hanism)h 9(prev)h -1(en)h -1(ts)h 177 905(duplication)s 13(of)h 13(the)h 15(name.)h 177 980(Apart)s 12(from)h 10(the)h 12(requiremen)h -1(t)h 12(that)h 12(eac)h -1(h)h 12(section)h 12(ha)h -1(v)h -1(e)h 12(an)h 11(explicit)h 11(or)h 12(impli)h -1(cit)h 10(name)h 11(and)h 11(that)h 12(its)h 12(sp)h 1(ecial)h 177 1030(sequence)s 21(app)h 1(ear)h 19(at)h 18(the)h 19(start)h 19(of)h 18(a)h 18(line,)h 19(the)h 19(only)h 18(other)h 19(restriction)h 19(on)h 19(section)h 19(headings)h 18(is)h 19(that)h 18(a)h 177 1080(section)s 14(heading)h 12(at)h 13(lev)h -1(el)h 50(cannot)h 13(app)h 1(ear)h 13(imm)h -1(ediately)h 10(after)h 13(a)h 13(section)h 13(heading)h 13(at)h 13(lev)h -1(el)h 83(1)h 13(or)h 13(less.)h 177 1129(In)s 17(other)h 17(w)h -1(ords,)h 16(the)h 17(hierarc)h -1(h)h -1(y)h 17(cannot)h 17(b)h 1(e)h 17(brok)h -1(en.)h 26(F)h -3(or)h 16(example,)h 15(an)h 76(cannot)h 17(app)h 1(ear)h 16(after)h 17(an)h 177 1179(heading)s 14(unless)h 14(there)h 16(is)h 13(an)h 14(in)h -1(terv)h -1(ening)h 71(heading.)h 177 1462(This)s 14(rule)h 14(extends)h 16(to)h 14(the)h 15(start)h 14(of)h 14(the)h 14(\014le;)h 14(if)h 13(there)h 16(are)h 14(an)h -1(y)h 14(headings)h 14(at)h 14(all,)h 12(the)h 15(\014rst)h 15(one)h 14(m)h -1(ust)h 13(b)h 1(e)h 15(an)h 235 1512(heading.)s 17(The)h 15(follo)h -1(wi)h -1(ng)h 12(\014le,)h 13(while)h 14(short,)h 14(is)h 13(in)h 14(error.)h 177 1971(T)s -1(yp)h 1(e)h 19(in)h 18(the)h 19(follo)h -1(wi)h -1(ng)h 16(\014le,)h 19(and)h 19(use)h 19(F)h -3(unnelW)h -3(eb)h 18(and)h 18(T)h 1173 1980(E)s 1196 1971(X)s 18(to)h 19(generate)h 19(the)h 19(corresp)h 1(onding)h 19(prin)h -1(ted)h 177 2021(do)s 1(cumen)h -1(tation.)h 1042 2940(35)s 36 @eop 37 @bop0 cmti10.300 sf [<03C4062C0C3C181C3838303870387038E070E070E070E070E0E0C0E0C0E061E063C03D C001C001C0038003800380038007803FF0> 16 26 -5 17 19] 113 dc 37 @bop1 cmti10.300 sf 1595 1931(hier)s -2(ar)h -2(chic)h -2(al)h 2(ly)h 326 1980(indep)s -2(endently)h 585(se)h -2(quential)h 2(ly)h 835 2536(c)s -2(al)h 2(l)h cmtt10.300 sf 177 42(@})s 177 141(The)s 21(next)h 21(macro)h 21(is)h 21(similar)h 21(but)h 21(is)h 21(distributed)h 20(throughout)h 20(the)h 21(program.)h 177 191(@$@+=@{@+--)h 19(Pointer)h 21(to)h 21(the)h 21(left@+@})h 177 291(@A@)h 177 390(@B@)h 177 440(@$@+=@{--)h 20(Pointer)h 20(to)h 21(the)h 21(right@+@})h 177 490(@$@@Z==@{t)h -1(ype)h 20(stack)h 20(=)h 22(record)h 20(...)h 22(end;@})h 177 589(@B@)h 177 639(@$@+=@{--)h 20(Hack)h 21(that)h 21(code@+@})h 177 689(@$@@Z=)h -1(=@{@-)h 177 739(procedure)s 20(push\(var)h 20(b:stack;)h 20(v:value\);)h 20(@)h 21({...}@})h 177 839(@B@)h 177 888(@$@+=@{--)h 20(Tight!)h 20(Tight!)h 21(Tight!@+@})h 177 938(@$@@Z==)h -1(@{@-)h 177 988(procedure)s 20(pop\(var)h 20(b:stack\);)h 20(@)h 21({...}@})h 177 1088(@B@)h 177 1137(@$@+=@{--)h 20(\(RNW,)h 20(04-Jan-1991\).@)h -1(+@})h 177 1187(@$@@Z)h -1(==@{@)h -1(-)h 177 1237(procedure)s 20(rough\(var)h 20(b:stack\);)h 20(@)h 20({...}@})h 177 1337(@O@==@)h -1({dumm)h -1(y@+@})h 566 1678(@t)s 177 2635(tt)s 22(font)h cmr10.300 sf 177 1525(An)s 15(examination)h 13(of)h 14(the)h 16(prin)h -1(ted)h 15(do)h 1(cumen)h -1(tation)h 14(rev)h -1(eals)h 16(a)h 15(lot)h 14(ab)h 1(out)h 15(ho)h -1(w)h 15(F)h -3(unnelW)h -3(eb's)h 14(presen)h -1(tation)h 177 1574(w)s -1(orks.)h 177 1678(First,)s 13(notice)h 13(ho)h -1(w)h 13(the)h 70(t)h -1(yp)h 1(esetter)h 15(directiv)h -1(e)h 14(at)h 12(the)h 14(top)h 13(of)h 12(the)h 13(\014le)h 13(has)h 13(caused)h 14(a)h 13(table)h 13(of)h 12(con)h -1(ten)h -1(ts)h 14(to)h 177 1728(app)s 1(ear.)h 24(This)h 15(is)h 16(one)h 15(of)h 15(F)h -3(unnelW)h -3(eb's)h 15(t)h -1(yp)h 1(esetting)h 17(features)h 16(and)h 16(is)h 15(discussed)h 18(in)h 15(a)h 15(later)h 16(section.)h 23(The)h 177 1777(table)s 14(of)h 13(con)h -1(ten)h -1(ts)h 15(sho)h -1(ws)h 14(that)h 14(the)h 15(sections)h 15(ha)h -1(v)h -1(e)h 14(b)h 1(een)h 15(n)h -1(um)h -1(b)h 1(ered)h 13(hierarc)h -1(hically)h -3(.)h 177 1881(No)s -1(w)h 18(tak)h -1(e)h 19(a)h 18(lo)h 1(ok)h 18(at)h 18(the)h 19(t)h -1(yp)h 1(eset)h 21(macro)h 17(de\014nitions.)h 32(Most)h 19(imp)h 1(ortan)h -1(t)h 17(are)h 19(the)h 19(n)h -1(um)h -1(b)h 1(ers)h 18(in)h 18(square)h 177 1931(brac)s -1(k)h -1(ets)h 19(that)h 18(follo)h -1(w)h 16(eac)h -1(h)h 18(macro)h 17(name.)h 28(As)h 19(w)h -1(ell)h 17(as)h 18(n)h -1(um)h -1(b)h 1(ering)h 16(the)h 18(headings)h 259(,)h 17(F)h -3(un-)h 177 1980(nelW)s -3(eb)h 276(n)h -1(um)h -1(b)h 1(ers)h 15(the)h 15(macro)h 14(de\014nitions)h 224(.)h 21(The)h 16(\014rst)h 16(macro)h 13(de\014nition)h 15(\(for)h 177 2030(\\Programm)s -1(er's)h 17(Cheer"\))h 19(is)h 17(n)h -1(um)h -1(b)h 1(ered)h 18(1.)h 30(The)h 19(second)h 19(\(for)h 17(\\Hac)h -1(k)h -1(er's)h 19(Cheer"\))h 19(is)h 18(n)h -1(um)h -1(b)h 1(ered)h 17(2)h 18(and)h 177 2080(so)s 17(on.)h 27(Note)h 17(that)h 17(it)h 16(is)h 17(not)h 16(macros)h 16(that)h 17(are)h 17(n)h -1(um)h -1(b)h 1(ered,)h 17(but)h 17(macro)h 16(de\014nitions.)h 26(The)h 18(distinction)h 16(is)h 177 2130(necessary)s 14(b)h 1(ecause)h 14(some)h 11(macros)h 11(\(suc)h -1(h)h 13(as)h 12(the)h 13(\\Hac)h -1(k)h -1(er's)h 12(Cheer")h 13(macro\))h 11(are)h 12(additiv)h -1(e.)h 17(It)h 12(is)h 12(imp)h 1(ortan)h -1(t)h 177 2180(to)s 16(realize)h 16(that)h 15(there)h 17(is)h 16(no)h 15(relationship)h 15(b)h 1(et)h -1(w)h -1(een)h 17(the)h 16(n)h -1(um)h -1(b)h 1(ers)h 16(of)h 15(the)h 16(headings)h 15(and)h 16(the)h 16(n)h -1(um)h -1(b)h 1(ers)h 15(of)h 177 2229(the)s 15(macro)h 12(de\014nitions.)h 177 2333(No)s -1(w)h 13(tak)h -1(e)h 13(a)h 12(lo)h 1(ok)h 12(at)h 13(the)h 13(notes)h 14(b)h 1(eneath)h 13(the)h 14(b)h 1(o)h 1(dy)h 13(of)h 12(eac)h -1(h)h 13(macro)h 12(de\014nition.)h 17(All)h 12(macro)h 12(de\014nitions)h 12(are)h 177 2383(follo)s -1(w)h -1(ed)h 14(b)h -1(y)h 16(a)h 15(note)h 16(indicating)h 14(the)h 17(de\014nitions)h 15(in)h 15(whic)h -1(h)h 16(the)h 16(macro)h 14(is)h 16(called.)h 23(Additiv)h -1(e)h 15(macros)h 15(ha)h -1(v)h -1(e)h 177 2432(an)s 14(additional)h 12(list,)h 13(listing)h 13(the)h 14(de\014nitions)h 14(in)h 13(whic)h -1(h)h 14(they)h 15(are)h 14(de\014ned.)h 177 2536(Finally)s -3(,)h 20(tak)h -1(e)h 20(a)h 20(lo)h 1(ok)h 19(at)h 21(the)h 21(macro)h 101(of)h 19(\\Programm)h -1(er's)h 19(Cheer")h 21(in)h 20(section)h 21(3.2)h 20(of)h 19(the)h 21(prin)h -1(ted)h 177 2586(do)s 1(cumen)h -1(tation.)h 18(Macro)h 15(calls)h 14(are)h 14(set)h 15(in)h 14(slan)h -1(ted)h 15(roman)h 12(\(so)h 15(that)h 14(they)h 15(can)h 15(b)h 1(e)h 14(distinguished)h 15(from)h 12(the)h 344 2635(co)s 1(de\))h 16(and)h 14(are)h 15(follo)h -1(w)h -1(ed)h 13(b)h -1(y)h 14(the)h 15(n)h -1(um)h -1(b)h 1(er)h 14(of)h 14(the)h 15(de\014ning)h 15(macro)h 13(de\014nition.)h 20(In)h 14(this)h 15(case,)h 15(the)h 177 2685(macro)s 12(w)h -1(as)h 13(de\014ned)h 14(in)h 12(de\014nition)h 13(1.)h 17(F)h -3(urther)h 14(do)h -1(wn,)h 12(the)h 14(call)h 12(to)h 13(the)h 14(\\Hac)h -1(k)h -1(er's)h 13(Cheer")h 14(macro)h 11(indicates)h 177 2735(that)s 12(the)h 13(macro)h 11(w)h -1(as)h 12(de\014ned)h 13(in)h 12(de\014nition)h 11(2.)h 18(In)h 12(fact)h 12(the)h 12(macro)h 11(is)h 12(additiv)h -1(e)h 12(and)h 11(de\014nition)h 12(2)h 12(is)h 12(just)h 12(the)h 177 2785(\014rst)s 12(of)h 10(man)h -1(y)h 9(de\014nitions.)h 17(T)h -3(o)h 10(list)h 11(all)h 10(de\014nitions)h 10(in)h 11(a)h 10(call)h 11(to)h 10(an)h 11(additiv)h -1(e)h 10(macro)h 10(w)h -1(ould)h 10(b)h 1(e)h 12(unnecessarily)h 177 2835(messy)s -3(.)h 1042 2940(36)s 37 @eop 38 @bop0 cmbx12.300 sf [ 32 34 -2 33 34] 76 dc cmtt10.300 sf [<3FFFC07FFFC07FFFC0700780700F00701E00003C0000780001F00003E0000780000F00 001E01C03C01C07801C0FFFFC0FFFFC0FFFFC0> 24 18 -1 17 22] 122 dc 38 @bop1 cmsy10.300 sf 1346 469(f)s 88(g)h 470 518(f)s 88(g)h cmbx12.300 sf 177 42(1.7.5)s 55(Literals)h 17(and)h 20(Emphasis)h 177 1055(1.7.6)s 55(Adding)h 19(a)h 19(Header)h 18(P)h -2(age)h 177 2632(1.7.7)s 55(Commen)h -2(ts)h cmtt10.300 sf 618 244(topval)s 339(stack)h 15(pop)h 1324 469(@)s 21(...@)h 115(@/...@/)h 448 518(@)s 21(...@)h 574 568(@/...@/)s 177 812(The)s 21(following)h 20(procedure)h 20(@{put_sloth@})h 19(writes)h 21(the)h 21(@{sloth@})h 20(variable)h 20(to)h 177 861(the)s 21(output)h 21(file.)h 21(Note:)h 20(@/The)h 21(output)h 21(file)h 21(must)h 21(be)h 21(opened)h 21(for)h 21(writing)h 177 911(at)s 22(this)h 21(point)h 20(or)h 22(the)h 21(program)h 20(will)h 21(crash!@/)h 1423 1307(@t)s 177 1524(@t)s 22(vskip)h 20(40)h 22(mm)h 177 1574(@t)s 22(title)h 20(titlefont)h 20(centre)h 21("Hairy)h 20(Wombat")h 177 1624(@t)s 22(title)h 20(titlefont)h 20(centre)h 21("Simulation")h 177 1674(@t)s 22(vskip)h 20(10)h 22(mm)h 177 1723(@t)s 22(title)h 20(smalltitlefont)h 19(centre)h 21("A)h 21(Program)h 20(in)h 22(Six)h 21(Parts")h 177 1773(@t)s 22(title)h 20(smalltitlefont)h 19(centre)h 21("Simulating)h 19(the)h 21(Life)h 21(of)h 22(Some)h 21(Hairy)h 21(Wombats")h 177 1823(@t)s 22(vskip)h 20(20)h 22(mm)h 177 1873(@t)s 22(title)h 20(normalfont)h 20(left)h 21("By)h 21(Zqitzypbuswap)h -1(zra)h 20(Ypongtatosl)h -1(rtzz")h 177 1923(@t)s 22(new_page)h 177 1973(@t)s 22(table_of_c)h -1(onten)h -1(ts)h 177 2022(@t)s 22(new_page)h 262 2140(@t)s 1534(vskip)h 1840 2190(title)s 1182 2290(title)s 639 2340(titlefont)s 26(smalltitlefon)h -1(t)h 110(normalfont)h 177 2389(title)s 1092(left)h 27(right)h 108(centre)h 177 2439(new)s 15(page)h 1245(table)h 14(of)h 15(contents)h 1002 2735(@!)s 651 2835(@i)s 168(@p)h 256(@t)h cmr10.300 sf 177 144(When)s 17(writing)h 16(ab)h 1(out)h 17(program)h 15(co)h 1(de,)h 18(it)h 17(is)h 17(often)h 17(desirable)h 17(to)h 17(b)h 1(e)h 17(able)h 17(to)h 17(indicate)h 16(that)h 17(a)h 17(particular)h 177 194(w)s -1(ord)h 11(or)h 11(phrase)h 12(b)h 1(e)h 12(t)h -1(yp)h 1(eset)h 13(in)h 10(the)h 12(same)h 10(manner)h 10(as)h 11(the)h 12(co)h 1(de)h 12(b)h 1(eing)h 11(discussed.)h 19(F)h -3(or)h 11(example,)h 10(one)h 11(migh)h -1(t)h 177 244(talk)s 16(ab)h 1(out)h 17(the)h 17(v)h -2(ariable)h 163(or)h 16(the)h 18(pro)h 1(cedure)h 225(and)h 16(wish)h 17(for)h 16(them)h 16(to)h 16(b)h 1(e)h 18(t)h -1(yp)h 1(eset)h 18(as)h 177 294(they)s 15(are)h 14(in)h 13(this)h 15(sen)h -1(tence.)h 20(This,)h 13(of)h 14(course,)h 15(is)h 13(simple)h 13(to)h 14(do)h 13(using)h 14(T)h 1355 303(E)s 1378 294(X)s 14(macros,)h 13(but)h 14(use)h 15(of)h 13(the)h 15(\(more)h 177 343(general\))s 16(F)h -3(unnelW)h -3(eb)h 15(t)h -1(yp)h 1(esetting)h 16(directiv)h -1(es)h 16(to)h 16(do)h 15(the)h 16(same)h 14(w)h -1(ork)h 15(has)h 16(the)h 16(added)h 15(b)h 1(ene\014t)h 17(of)h 15(k)h -1(eeping)h 177 393(the)s 15(do)h 1(cumen)h -1(t)h 13(p)h 1(ortable)h 14(to)h 14(other)h 14(t)h -1(yp)h 1(esetter)h 1(s.)h 177 469(F)s -3(unnelW)h -3(eb)h 14(pro)h -1(vides)h 15(t)h -1(w)h -1(o)h 14(in-text)h 14(t)h -1(yp)h 1(e)h 15(mo)h 1(di\014cation)h 13(constructs:)h 186(and)h 181(where)h 16(.)h 7(.)h 7(.)h 13(is)h 177 518(ra)s -1(w)h 15(text.)h 20(The)h 180(construct)h 16(sets)h 16(the)h 16(enclosed)h 15(text)h 15(in)h 14(the)h 16(same)h 13(manner)h 14(as)h 15(the)h 15(text)h 15(of)h 14(macro)h 177 568(de\014nitions)s 10(is)h 10(set.)h 18(The)h 173(construct)h 12(emphasises)h 10(its)h 11(enclosed)h 11(text)h 11(in)h 9(some)h 10(t)h -1(yp)h 1(esetter-de)h 1(p)h 1(ende)h 1(n)h -1(t)h 177 618(fashion.)s 17(T)h -1(ypically)h 13(the)h 14(emphasised)h 14(text)h 14(is)h 14(set)h 15(in)h 13(italics.)h 177 693(Here)s 15(is)h 14(an)h 14(example)h 12(of)h 14(ho)h -1(w)h 13(these)h 15(constructs)h 16(migh)h -1(t)h 12(b)h 1(e)h 15(used:)h 177 1157(F)s -3(unnelW)h -3(eb)h 19(pro)h -1(vides)h 20(a)h 19(few)h 20(t)h -1(yp)h 1(esetter-indep)h 1(e)h 1(nden)h -1(t)h 22(t)h -1(yp)h 1(esetting)h 21(constructs)h 21(whic)h -1(h)h 20(are)h 20(sp)h 1(eci\014cally)h 177 1207(designed)s 14(for)h 13(the)h 13(construction)h 15(of)h 12(header)h 14(pages.)h 18(These)h 15(constructs)h 15(are)h 13(usually)h 13(b)h 1(est)h 14(placed)h 13(at)h 13(the)h 14(top)h 177 1257(of)s 12(y)h -1(our)h 11(input)h 12(\014le,)h 12(but)h 13(can)h 12(b)h 1(e)h 13(placed)h 12(an)h -1(ywhere)h 13(the)h 12(do)h 1(cumen)h -1(t)h 12(if)h 11(desired)h 13(to)h 12(create)h 14(header)h 13(pages)h 12(righ)h -1(t)h 177 1307(through.)s 24(The)h 16(t)h -1(w)h -1(o)h 15(main)h 14(restrictions)h 17(on)h 15(these)h 17(constructs)h 18(is)h 16(that)h 16(the)h 75(m)h -1(ust)h 15(start)h 16(at)h 16(the)h 16(start)h 16(of)h 177 1356(a)s 17(line)h 16(\(whic)h -1(h)h 17(cannot)h 17(con)h -1(tain)h 16(comm)h -1(en)h -1(ts\),)h 16(and)h 17(that)h 17(the)h 17(constructs)h 19(cannot)h 17(app)h 1(ear)h 17(inside)h 17(a)h 16(macro)h 177 1406(de\014nition.)s 18(Here)h 15(is)h 14(what)h 13(the)h 15(top)h 14(of)h 13(an)h 14(input)h 13(\014le)h 14(migh)h -1(t)h 12(lo)h 1(ok)h 13(lik)h -1(e:)h 177 2140(The)s 70(at)h 13(the)h 14(start)h 14(of)h 12(eac)h -1(h)h 14(line)h 12(indicates)h 14(that)h 13(eac)h -1(h)h 13(en)h -1(tire)h 14(line)h 13(is)h 13(a)h 13(t)h -1(yp)h 1(esetter)h 15(directiv)h -1(e.)h 18(The)h 177 2190(directiv)s -1(e)h 16(instructs)h 17(F)h -3(unnelW)h -3(eb)h 15(to)h 16(skip)h 15(some)h 15(v)h -1(ertical)h 15(space)h 17(\(measured)h 16(in)h 15(mil)h -1(li)h -1(m)h -1(etres\).)h 23(The)h 177 2240(directiv)s -1(e)h 15(instructs)h 16(F)h -3(unnelW)h -3(eb)h 14(to)h 15(p)h 1(osition)h 14(a)h 14(string)h 14(of)h 14(text)h 16(on)h 14(a)h 14(single)h 14(line)h 14(of)h 14(its)h 15(o)h -1(wn.)h 20(Options)h 14(are)h 177 2290(pro)s -1(vided)h 16(for)h 16(fon)h -1(t)h 15(and)h 16(alignmen)h -1(t.)h 23(The)h 16(\014rst)h 17(w)h -1(ord)h 16(after)h 141(is)h 16(the)h 17(fon)h -1(t)h 15(whic)h -1(h)h 16(can)h 17(b)h 1(e)h 16(one)h 17(of)h 15(\(in)h 177 2340(decreasing)s 18(order)h 17(of)h 15(size\))h 216(,)h 321(,)h 15(and)h 236(.)h 23(The)h 17(second)h 17(w)h -1(ord)h 17(after)h 301 2389(is)s 16(the)h 16(desired)h 16(alignm)h -1(en)h -1(t)h 14(of)h 15(the)h 16(text.)h 23(The)h 16(options)h 15(here)h 16(are)h 104(,)h 125(,)h 14(and)h 147(.)h 21(The)h 362 2439(directiv)s -1(e)h 16(instructs)h 18(F)h -3(unnelW)h -3(eb)h 15(to)h 16(skip)h 16(to)h 16(a)h 16(new)h 17(page.)h 25(Finally)h -3(,)h 14(the)h 177 2489(directiv)s -1(e)h 15(instructs)h 15(F)h -3(unnelW)h -3(eb)h 13(to)h 14(insert)h 15(a)h 13(table)h 14(of)h 13(con)h -1(ten)h -1(ts)h 15(at)h 14(that)h 14(p)h 1(oin)h -1(t)h 13(in)h 14(the)h 14(text.)h 177 2735(A)s 14(F)h -3(unnelW)h -3(eb)h 14(comm)h -1(en)h -1(t)h 12(commences)h 13(with)h 14(the)h 77(sequence)h 16(and)h 13(con)h -1(tin)h -1(ues)h 15(up)h 14(to,)h 13(but)h 14(not)h 14(including,)h 177 2785(the)s 15(end)h 14(of)h 14(line)h 14(mark)h -1(er)h 13(at)h 14(the)h 14(end)h 15(of)h 13(the)h 15(line)h 14(that)h 14(the)h 15(comm)h -1(en)h -1(t)h 12(sequence)h 17(is)h 14(on.)h 18(Comm)h -1(en)h -1(ts)h 13(can)h 14(b)h 1(e)h 177 2835(placed)s 14(on)h 14(an)h -1(y)h 13(line)h 14(except)h 73(include,)h 70(pragma,)h 12(and)h 71(t)h -1(yp)h 1(esetter)h 16(directiv)h -1(e)h 15(lines.)h 1042 2940(37)s 14 2 1202 244 r 14 2 246 2439 r 14 2 1704 2439 r 14 2 1762 2439 r 38 @eop 39 @bop0 cmbx10.432 sf [<003FC00001FFF00003FFFC000FC07E000F003F001F001F001E001F803E000F803E000F 803F000F803F800F803FC01F803FF01F003FFC3F001FFE7E001FFFF8000FFFE00007FFF8 0001FFFC0001FFFF0007FFFF801F8FFF803F03FFC07E01FFC07C007FE0FC001FE0F8000F E0F80007E0F80003E0F80003E0F80003E0FC0003C07C0007C07E0007803F000F801FC03F 000FFFFC0003FFF800007FC000> 32 39 -3 38 34] 56 dc [<00003FF001800003FFFE0780000FFFFF8F80003FF007FF8000FF8001FF8001FE00007F 8007FC00003F8007F800001F800FF000000F801FE000000F803FE0000007803FC0000007 807FC0000003807FC0000003807FC000000380FF8000000000FF8000000000FF80000000 00FF8000000000FF8000000000FF8000000000FF8000000000FF8000000000FF80000000 00FF8000000000FF80000000007FC0000000007FC0000003807FC0000003803FC0000003 803FE0000003801FE0000007800FF00000070007F800000F0007FC00001E0001FE00003C 0000FF8000F800003FF007F000000FFFFFC0000003FFFF000000003FF80000> 48 41 -4 40 50] 67 dc [ 40 41 -3 40 45] 69 dc [ 40 27 -1 26 36] 120 dc cmtt10.300 sf [<0FE03FF87FFCF01EF00EF00E601E007C00F801F003E003C00380038003800380030000 000000000000000300078007800300> 16 25 -3 24 22] 63 dc 39 @bop1 cmbx10.432 sf 177 564(1.8)s 70(A)h 23(Com)h -1(pl)h -1(et)h -1(e)h 21(Exampl)h -1(e)h cmr10.300 sf 177 42(The)s 17(text)h 16(follo)h -1(wing)h 14(the)h 17(F)h -3(unnelW)h -3(eb)h 15(comm)h -1(en)h -1(t)h 15(sequence)h 87(will)h 15(not)h 16(app)h 1(ear)h 16(in)h 16(the)h 16(pro)h 1(duct)h 17(\014les)h 17(or)h 177 91(the)s 13(do)h 1(cumen)h -1(tation)h 11(\014le.)h 17(It)h 12(is)h 12(only)h 12(for)h 11(the)h 13(ey)h -1(es)h 13(of)h 12(those)h 13(who)h 11(b)h 1(other)h 13(to)h 12(lo)h 1(ok)h 12(at)h 12(the)h 12(original)h 88(input)h 177 141(\014le.)s 18(T)h -1(ypically)h 12(F)h -3(unnelW)h -3(eb)h 14(comm)h -1(en)h -1(ts)h 13(are)h 14(used)h 15(to)h 13(describ)h 1(e)h 16(the)h 14(w)h -1(a)h -1(y)h 14(in)h 13(whic)h -1(h)h 14(particular)h 13(F)h -3(unnelW)h -3(eb)h 177 191(constructs)s 16(are)h 14(b)h 1(eing)h 14(used.)h 19(Example:)h 177 679(T)s -3(o)h 16(\014nish)h 17(o\013)h 16(the)h 17(c)h -1(hapter,)h 18(a)h 16(complete)h 16(example)h 15(of)h 16(a)h 17(F)h -3(unnelW)h -3(eb)h 16(input)h 16(\014le)h 17(is)h 16(presen)h -1(ted.)h 28(Although)h 177 729(unrealistically)s 13(short,)h 14(it)h 13(giv)h -1(es)h 14(a)h 14(b)h 1(etter)h 15(idea)h 14(of)h 13(what)h 14(a)h 13(t)h -1(ypical)h 13(F)h -3(unnelW)h -3(eb)h 93(\014le)h 14(lo)h 1(oks)h 13(lik)h -1(e.)h 1042 2940(38)s cmtt10.300 sf 1179 42(@!)s 1775 91(.fw)s 177 304(@!)s 22(This)h 21(macro)h 20(is)h 22(really)h 20(revolting.)h 20(Please)h 20(forgive)h 21(me.)h 21(I)h 22(had)h 21(to)h 21(do)h 22(it!)h 177 354(@$@==@{@-)h 177 404(@#X@\(@#Y@\(@#Z)s -1(@,@"@)h -1(#Z@"@)h -1(\)=6@,)h -1(Teapo)h -1(t@,@")h -1(@#Q@)h -1(\(45@\))h -1(@"@,T)h -1(iger@)h -1(\)@})h 1490 729(.fw)s 177 842(@!-----------)s -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(---!)h 177 892(@!)s 43(Start)h 21(of)h 21(FunnelWeb)h 20(Example)h 21(.fw)h 21(File)h 43(!)h 177 942(@!-----------)s -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(---!)h 177 1041(@t)s 22(vskip)h 20(40)h 22(mm)h 177 1091(@t)s 22(title)h 20(titlefont)h 20(centre)h 21("Powers:")h 177 1141(@t)s 22(title)h 20(titlefont)h 20(centre)h 21("An)h 21(Example)h 20(of")h 177 1191(@t)s 22(title)h 20(titlefont)h 20(centre)h 21("A)h 21(Short")h 177 1241(@t)s 22(title)h 20(titlefont)h 20(centre)h 21("FunnelWeb)h 20(.fw)h 21(File")h 177 1290(@t)s 22(vskip)h 20(10)h 22(mm)h 177 1340(@t)s 22(title)h 20(smalltitlefont)h 19(centre)h 21("by)h 21(Ross)h 21(Williams")h 177 1390(@t)s 22(title)h 20(smalltitlefont)h 19(centre)h 21("26)h 21(January)h 20(1992")h 177 1440(@t)s 22(vskip)h 20(20)h 22(mm)h 177 1490(@t)s 22(table_of_c)h -1(onten)h -1(ts)h 177 1589(@A@)h 177 1689(This)s 43(program)h 20(writes)h 43(out)h 21(each)h 43(of)h 21(the)h 43(first)h 21(@{p@})h 42(powers)h 21(of)h 43(the)h 21(first)h 43(@{n@})h 177 1739(integers.)s 20(These)h 43(constant)h 20(parameters)h 20(are)h 21(located)h 42(here)h 21(so)h 21(that)h 21(they)h 43(are)h 21(easy)h 21(to)h 177 1789(change.)s 177 1888(@$@==@)h -1({@-)h 177 1938(n)s 22(:)h 21(constant)h 20(natural)h 21(:=)h 21(10;)h 109(--)h 21(How)h 21(many)h 21(numbers?)h 20(\(Ans:)h 21([1,n]\).)h 177 1988(p)s 22(:)h 21(constant)h 20(natural)h 21(:=)h 43(5;)h 109(--)h 21(How)h 21(many)h 21(powers?)h 42(\(Ans:)h 21([1,p]\).@})h 177 2087(@B)s 22(Here)h 21(is)h 43(the)h 21(outline)h 20(of)h 22(the)h 43(program.)h 20(This)h 21(FunnelWeb)h 20(file)h 42(generates)h 20(a)h 22(single)h 177 2137(Ada)s 21(output)h 21(file)h 43(called)h 20(@{Power.ada@}.)h 19(The)h 21(main)h 21(program)h 21(consists)h 42(of)h 21(a)h 21(loop)h 21(that)h 177 2187(iterates)s 20(once)h 21(for)h 21(each)h 21(number)h 21(to)h 21(be)h 22(written)h 20(out.)h 177 2287(@O@==@)h -1({@-)h 177 2337(@)h 177 2436(procedure)s 20(example)h 20(is)h 243 2486(@)h 177 2536(begin)s 21(--)h 21(example)h 243 2586(for)s 21(i)h 21(in)h 22(1..n)h 21(loop)h 308 2635(@)h 243 2685(end)s 21(loop;)h 177 2735(end)s 21(example;)h 177 2785(@})s 39 @eop 40 @bop0 cmbx10.432 sf [<007F800001FFF00007FFF8000FE0FE001FC07E003F803F007F003F807F003F80FF001F C0FF001FC0FF001FC0FF001FC0FF001FE0FF001FE0FF001FE0FF001FE07F003FE07F003F E07F003FE03F807FE01F80FFE00FE1DFE003FF9FE0007E1FE000001FE000001FC000001F C000001FC000003FC01F003F803F803F803F807F003F807F003F80FE003F01FC001E03F8 000FFFE00007FF800001FE0000> 32 39 -3 38 34] 57 dc [<007F806003FFF0E00FFFFFE01F807FE03F001FE07E0007E07E0003E07C0003E0FC0001 E0FC0001E0FC0000E0FE0000E0FE0000E0FF000000FFC000007FFE00007FFFE0003FFFFC 003FFFFF001FFFFF8007FFFFC003FFFFE000FFFFF00007FFF000007FF000000FF8000007 F8000003F8E00003F8E00001F8E00001F8E00001F8F00001F8F00001F0F80003F0FC0003 E0FF0007E0FFE01FC0FFFFFF00E0FFFE00C01FF000> 32 41 -4 40 38] 83 dc cmtt10.300 sf [<03800007E0000FE0001E70001C70001C70001C70001C77E01CE7E01DE7E00FC7000F8E 000F0E001E0E003F1C007F1C00739C00E3F800E1F800E0F1C0E0F1C071F9C07FFFC03F9F 801E0700> 24 25 -1 24 22] 38 dc 40 @bop1 cmbx10.432 sf 177 1399(1.9)s 70(Sum)h -1(m)h -2(ary)h cmr10.300 sf 177 1515(This)s 17(c)h -1(hapter)h 18(has)h 17(pro)h -1(vided)h 17(an)h 17(in)h -1(tro)h 1(duction)h 17(to)h 17(F)h -3(unnelW)h -3(eb)h 16(and)h 17(a)h 17(tutorial)h 16(that)h 18(co)h -1(v)h -1(ers)h 17(most)h 16(of)h 17(its)h 177 1565(features.)s 18(F)h -3(unnelW)h -3(eb's)h 11(functionalit)h -1(y)h 10(can)h 11(b)h 1(e)h 12(split)h 11(in)h -1(to)h 11(t)h -1(w)h -1(o)h 11(parts:)h 17(a)h 11(macro)h 10(prepro)h 1(cess)h 1(or,)h 13(and)h 11(supp)h 1(ort)h 177 1615(for)s 12(t)h -1(yp)h 1(esetting.)h 18(The)h 13(reader)h 13(should)h 12(b)h 1(e)h 12(a)h -1(w)h -1(are)h 12(that)h 12(the)h 13(examples)h 11(in)h 11(this)h 12(c)h -1(hapter,)h 13(constructed)h 14(as)h 12(they)h 177 1664(w)s -1(ere)h 13(to)h 11(demonstrate)h 11(particular)h 11(features)h 13(of)h 11(F)h -3(unnelW)h -3(eb,)h 11(do)h 11(not)h 11(presen)h -1(t)h 13(a)h 11(realistic)h 12(picture)h 12(of)h 11(the)h 12(b)h 1(est)h 177 1714(use)s 15(of)h 14(the)h 15(to)h 1(ol.)h 19(Only)h 14(the)h 15(\014nal)h 14(example)h 13(of)h 14(this)h 15(c)h -1(hapter)h 15(comes)h 14(close.)h 20(The)h 15(reader)h 16(should)h 14(study)h 15(this)h 177 1764(last)s 15(example)h 14(carefully)h 15(and)h 15(then)h 16(write)h 15(some)h 14(real)h 15(programs)h 14(using)h 15(F)h -3(unnelW)h -3(eb)h 15(b)h 1(efore)h 16(pro)h 1(ceeding)h 16(to)h 177 1814(Chapter)s 12(2)h 11(whic)h -1(h)h 11(pro)h -1(vides)h 11(more)h 10(adv)h -2(anced)h 11(information.)h 15(A)h -1(t)h 11(this)h 11(stage)h 12(it)h 10(do)h 1(es)h 12(not)h 11(particularly)h 10(matter)h 177 1864(exactly)s 12(ho)h -1(w)h 10(y)h -1(ou)h 11(use)h 12(F)h -3(unnelw)h -1(eb,)h 12(as)h 11(ev)h -1(ery)h -1(one)h 12(dev)h -1(elops)h 12(their)h 11(o)h -1(wn)h 11(st)h -1(yle)h 12(an)h -1(yw)h -1(a)h -1(y)h -3(.)h 15(The)h 12(imp)h 1(ortan)h -1(t)h 9(thing)h 177 1914(is)s 14(to)h 14(try)h 14(it.)h 1042 2940(39)s cmtt10.300 sf 177 42(@B)s 22(In)h 21(this)h 21(section,)h 42(we)h 21(pull)h 21(in)h 22(the)h 21(packages)h 20(that)h 21(this)h 21(program)h 42(needs)h 21(to)h 21(run.)h 21(In)h 177 91(fact,)s 21(all)h 21(we)h 21(need)h 21(is)h 22(the)h 21(IO)h 21(package)h 21(so)h 21(that)h 21(we)h 21(can)h 22(write)h 20(out)h 22(the)h 21(results.)h 20(To)h 21(use)h 177 141(the)s 21(IO)h 22(package,)h 20(we)h 21(first)h 21(of)h 21(all)h 22(need)h 42(to)h 22(haul)h 21(it)h 21(in)h 21(\(@{with)h 21(text_io@}\))h 19(and)h 22(then)h 177 191(we)s 22(need)h 21(to)h 21(make)h 21(all)h 21(its)h 21(identifiers)h 20(visible)h 20(at)h 21(the)h 22(top)h 21(level)h 21(\(@{use)h 20(text_io@}\).)h 177 291(@$@=)h -1(=@{wi)h -1(th)h 20(text_io;)h 20(use)h 21(text_io;@})h 177 390(@B)s 22(Here)h 21(is)h 43(the)h 21(bit)h 21(that)h 21(writes)h 21(out)h 43(the)h 21(first)h 20(@{p@})h 21(powers)h 21(of)h 43(@{i@}.)h 20(The)h 22(power)h 177 440(values)s 43(are)h 42(calculated)h 42(incrementally)h 41(in)h 43(@{ip@})h 42(to)h 44(avoid)h 42(the)h 43(use)h 43(of)h 43(the)h 177 490(exponentiatio)s -1(n)h 20(operator.)h 177 589(@$@==@{@-)h 177 639(declare)s 243 689(ip)s 21(:)h 22(natural)h 20(:=)h 21(1;)h 177 739(begin)s 243 789(for)s 21(power)h 20(in)h 22(1..p)h 21(loop)h 308 839(ip:=ip*i;)s 308 888(put\(natural')s -1(image)h -1(\(ip\))h 19(&)h 22(")h 22("\);)h 243 938(end)s 21(loop;)h 243 988(new_line;)s 177 1038(end;@})s 177 1137(@!-----------)s -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(---!)h 177 1187(@!)s 65(End)h 21(of)h 22(FunnelWeb)h 20(Example)h 20(.fw)h 21(File)h 65(!)h 177 1237(@!-----------)s -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(---!)h 40 @eop 41 @bop0 41 @bop1 cmr10.300 sf 1042 2940(40)s 41 @eop 42 @bop0 cmbx10.622 sf [<0007FE0000007FFFE00001FFFFF80003FFFFFE000FF01FFF001FC007FFC03F0003FFE0 7E0001FFE07FC000FFF07FE000FFF8FFF0007FF8FFF0007FF8FFF0003FFCFFF0003FFCFF F0003FFCFFF0003FFC7FE0003FFC7FE0003FFC1F80003FFC0000003FFC0000003FF80000 007FF80000007FF80000007FF0000000FFE0000000FFE0000001FFC0000003FF80000003 FF00000007FE0000000FF80000001FF00000001FE00000003F800000007F00000000FE00 000001FC00000003F0003C0007E0003C000FC0003C001F800078003F000078007C000078 00F80000F800F00000F801FFFFFFF803FFFFFFF007FFFFFFF00FFFFFFFF01FFFFFFFF03F FFFFFFF07FFFFFFFF0FFFFFFFFF0FFFFFFFFE0FFFFFFFFE0FFFFFFFFE0> 40 56 -5 55 49] 50 dc cmbx10.746 sf [ 72 70 -4 69 75] 70 dc [ 120 72 -3 70 123] 87 dc [<007FC00000000000FFFFC00000000000FFFFC00000000000FFFFC00000000000FFFFC0 0000000000FFFFC0000000000003FFC0000000000001FFC0000000000001FFC000000000 0001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0 000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC000000000 0001FFC0000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC0 000000000001FFC0000000000001FFC0000000000001FFC0000000000001FFC00FFC0000 0001FFC07FFFC0000001FFC3FFFFF0000001FFCFFFFFFC000001FFDFF00FFF000001FFFF 8003FF800001FFFE0001FFC00001FFF800007FE00001FFF000007FF00001FFE000003FF8 0001FFE000001FFC0001FFE000001FFC0001FFE000001FFE0001FFE000001FFE0001FFE0 00000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000000FFF 8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE0 00000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF8001FFE000000FFF 8001FFE000000FFF0001FFE000000FFF0001FFE000000FFF0001FFE000001FFE0001FFE0 00001FFE0001FFE000001FFC0001FFE000001FFC0001FFE000003FF80001FFF000003FF8 0001FFF800007FF00001FFFC0000FFE00001FFFE0001FFC00001FFBF0007FF800001FF1F E01FFE000001FE0FFFFFFC000001FC03FFFFF0000001F800FFFF80000001F0001FF80000 00> 64 72 -4 71 66] 98 dc [ 88 71 -4 70 93] 72 dc cmtt10.300 sf [<1C303F78FFF8F7E061C0> 16 5 -4 24 22] 126 dc 42 @bop1 cmbx10.622 sf 177 373(Chapter)s 34(2)h cmbx10.432 sf 177 1363(2.1)s 70(Macro)h 24(Nam)h -1(es)h cmti10.300 sf 1738 838(this)s 611 1744(identic)s -2(al)h cmbx10.746 sf 177 602(F)s -10(unnelW)h -10(eb)h 41(Hin)h -3(ts)h cmbx10.300 sf 295 1645(Names)s 16(are)h 15(case)h 16(sensiti)h -1(v)h -1(e)h 14(and)h 15(exact)h 15(matc)h -1(hing:)h 295 1815(Names)s 13(can)h 12(con)h -1(tain)h 11(an)h -1(y)h 12(prin)h -1(t)h -1(abl)h -1(e)h 11(c)h -1(haracter:)h 295 2665(Names)s 16(m)h -1(ust)h 13(b)h 1(e)h 15(no)h 15(more)h 14(than)h 14(a)h 16(maxim)h -1(um)h 13(limit)h 13(in)h 14(length)h -1(:)h cmtt10.300 sf 1032 1157(/fwdir/tests)s -1(/)h 479(hi01.fw)h 334 1207(hi10.fw)s 352 2115(@)h 352 2165(@<@>)s 352 2215(@<453)s 20(#$)h 22(%&#)h 21(--===~~1">>>)h -1(@>)h 352 2265(@<<@>)s 352 2314(@<<>@>)s 352 2364(@)h 352 2414(@<)s 152(!)h 108(@>)h 352 2464(@)h 352 2514(@<"Who's)s 20(been)h 21(hacking)h 20(MY)h 21(program")h 20(said)h 21(Father)h 21(Bear.@>)h 352 2564(@)h cmr10.300 sf 177 838(Whereas)s 12(Chapter)h 11(1)h 11(pro)h -1(vides)h 11(an)h 10(in)h -1(tro)h 1(duction)h 11(to)h 11(F)h -3(unnelW)h -3(eb)h 10(and)h 10(Chapter)h 12(3)h 10(a)h 11(de\014nition,)h 86(c)h -1(hapter)h 177 888(con)s -1(tains)h 13(hin)h -1(ts)h 13(ab)h 1(out)h 12(ho)h -1(w)h 12(F)h -3(unnelW)h -3(eb)h 13(can)h 13(b)h 1(e)h 13(used.)h 19(This)h 12(c)h -1(hapter)h 14(probably)h 12(should)h 12(not)h 13(b)h 1(e)h 13(read)h 14(un)h -1(til)h 177 938(the)s 17(reader)h 17(has)h 16(already)h 16(commenced)h 15(using)h 16(F)h -3(unnelW)h -3(eb,)h 16(or)h 16(at)h 15(the)h 17(v)h -1(ery)h 17(least,)h 16(tried)h 16(out)h 16(some)h 16(of)h 15(the)h 177 987(examples)s 14(in)h 15(Chapter)h 16(1.)h 21(Those)h 15(who)h 15(\014nd)h 15(themselv)h -1(es)h 16(using)h 14(F)h -3(unnelW)h -3(eb)h 15(frequen)h -1(tly)h 15(should)h 15(read)h 16(this)h 177 1037(c)s -1(hapter)h 15(at)h 14(some)h 13(stage)h 14(so)h 14(as)h 14(to)h 14(ensure)h 15(that)h 14(they)h 15(are)h 14(getting)h 14(the)h 14(most)h 13(out)h 14(of)h 13(it.)h 177 1108(Most)s 19(of)h 18(the)h 19(examples)h 18(in)h 18(this)h 19(c)h -1(hapter)h 20(ha)h -1(v)h -1(e)h 18(b)h 1(een)h 20(placed)h 19(in)h 18(the)h 19(F)h -3(unnelW)h -3(eb)h 19(regression)h 20(test)h 19(suite)h 177 1157(whic)s -1(h)h 14(should)h 14(b)h 1(e)h 14(a)h -1(v)h -2(ailabl)h -1(e)h 13(in)h 13(a)h 14(directory)h 14(called)h 299(.)h 16(The)h 14(\014les)h 15(to)h 13(examine)h 13(are)h 177 1207(through)s 168(.)h 177 1475(When)s 17(using)h 16(F)h -3(unnelW)h -3(eb,)h 16(the)h 17(c)h -1(hoice)h 17(of)h 16(macro)h 15(names)h 16(can)h 16(b)h 1(e)h 17(as)h 17(imp)h 1(ortan)h -1(t)h 15(to)h 16(the)h 17(readabilit)h -1(y)h 15(of)h 16(a)h 177 1525(program)s 13(as)h 14(the)h 15(c)h -1(hoice)h 15(of)h 14(program)h 13(iden)h -1(ti\014ers,)h 14(and)h 14(it)h 14(is)h 15(imp)h 1(ortan)h -1(t)h 12(that)h 15(the)h 15(user)h 15(kno)h -1(w)h 14(the)h 15(range)h 14(of)h 177 1574(options)s 14(a)h -1(v)h -2(aila)h -1(ble.)h 1267 1645(Macro)s 13(names)h 13(are)h 14(case)h 15(sensitiv)h -1(e)h 295 1695(and)s 13(are)h 12(matc)h -1(hed)h 12(exactly)h -3(.)h 17(The)h 13(strings)h 13(used)h 13(as)h 13(a)h 12(macro)h 11(name)h 11(at)h 12(the)h 13(p)h 1(oin)h -1(t)h 12(of)h 12(de\014nition)h 295 1744(and)s 14(call)h 13(m)h -1(ust)h 13(b)h 1(e)h 180(for)h 14(the)h 14(connection)h 15(to)h 13(b)h 1(e)h 15(made.)h 1208 1815(F)s -3(unnelW)h -3(eb)h 10(is)h 11(less)h 12(restrictiv)h -1(e)h 12(ab)h 1(out)h 295 1865(its)s 19(macro)h 16(names)h 18(than)h 18(most)h 17(programm)h -1(ing)h 16(languages)h 17(are)h 19(ab)h 1(out)h 18(their)h 19(iden)h -1(ti\014ers.)h 32(A)h 295 1914(F)s -3(unnelW)h -3(eb)h 15(macro)h 13(name)h 14(can)h 15(con)h -1(tain)h 15(an)h -1(y)h 14(sequence)h 17(of)h 15(prin)h -1(table)h 14(c)h -1(haracters,)h 17(including)h 295 1964(blanks)s 12(and)h 11(punctuation.)h 18(Names)h 11(can)h 12(start)h 12(and)h 12(end)h 12(with)h 11(an)h -1(y)h 12(c)h -1(haracter.)h 18(Names)h 11(cannot)h 295 2014(cross)s 15(line)h 14(b)h 1(oundaries.)h 18(The)h 15(follo)h -1(wi)h -1(ng)h 12(are)h 14(all)h 13(legal)h 13(macro)h 12(names:)h 1521 2665(Names)s 12(can)h 14(b)h 1(e)h 14(no)h 295 2714(longer)s 12(than)h 13(a)h 12(prede\014ned)h 14(maxim)h -2(um)h 9(length.)h 17(Curren)h -1(tly)h 13(this)h 12(length)h 13(cannot)h 12(b)h 1(e)h 14(mo)h 1(di\014ed.)h 177 2785(T)s -1(ypically)h -3(,)h 8(macro)h 9(names)h 9(will)h 8(consist)h 11(of)h 9(a)h 10(short)h 10(English)h 10(phrase)h 10(or)h 10(sen)h -1(tence)h 12(that)h 10(describ)h 1(es)h 12(the)h 11(con)h -1(ten)h -1(ts)h 177 2835(of)s 13(the)h 15(macro.)h 1042 2940(41)s 42 @eop 43 @bop0 cmbx10.432 sf [<0000FFE000000007FFFC0000003FC07F8000007F001FC00001FC0007F00003F80003F8 0007F00001FC000FF00001FE001FE00000FF001FE00000FF003FC000007F803FC000007F 807FC000007FC07FC000007FC07F8000003FC07F8000003FC0FF8000003FE0FF8000003F E0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003F E0FF8000003FE0FF8000003FE07F8000003FC07F8000003FC07FC000007FC03FC000007F 803FC000007F801FE00000FF001FE01F00FF000FF07FC1FE0007F0E0E1FC0003F8C073F8 0001FCC077F00000FFC03FE000003FE07F8000000FFFFE00000000FFFE00600000001F00 600000001F00E00000001FC1E00000000FFFE00000000FFFE00000000FFFC00000000FFF C000000007FFC000000007FF8000000003FF0000000001FE00000000007800> 48 53 -4 40 52] 81 dc [ 32 42 -2 41 36] 107 dc cmtt10.300 sf [<03000F803FE0FDF8F0784010> 16 6 -4 24 22] 94 dc 43 @bop1 cmti10.300 sf 1385 863(same)s 16(name)h 1474 1540(input)s cmbx10.432 sf 177 42(2.2)s 70(Quic)h -2(k)h 22(Nam)h -1(es)h 177 1200(2.3)s 70(F)h -6(unnelW)h -6(eb)h 22(the)h 23(Martinet)h cmtt10.300 sf 507 257(@<@>)s 1319 481(#)s 177 647(@#A)s 109(@#|)h 108(@#&)h 108(@#m)h 1189 863(@#A)s 719 913(@)s 1570 988(@>)s 1603 1540(.fw)s 549 2511(.fw)s 1181 2660(@^)s 1367 2785(@Z)s 293(@M)h cmbx10.300 sf 1709 381(quic)s -1(k)h 17(name)h 295 1490(T)s -4(railing)h 14(blanks)h 15(in)h 15(the)h 16(input)h 14(\014le:)h 295 1714(Input)s 19(line)h 18(length)h -1(:)h 295 1888(Pro)s 1(duct)h 18(\014le)h 19(line)h 18(length)h -1(:)h 295 2262(Con)s -1(trol)h 15(c)h -1(haracters:)h 295 2735(Num)s -1(b)h 1(er)h 16(of)h 16(in)h -1(v)h -1(o)h 1(catio)h -1(ns:)h cmr10.300 sf 177 157(Sometim)s -1(es)h 15(a)h 16(particular)h 16(macro)h 16(m)h -1(ust)h 15(b)h 1(e)h 17(used)h 17(extremely)h 16(often.)h 25(When)h 17(this)h 16(happ)h 1(ens)h 17(it)h 16(is)h 16(desirable)h 177 207(to)s 14(mak)h -1(e)h 13(the)h 15(macro's)h 13(name)h 13(as)h 14(short)h 15(as)h 14(p)h 1(ossible.)h 20(The)h 15(shortest)h 15(ordinary)h 14(F)h -3(unnelW)h -3(eb)h 14(macro)h 13(name)h 13(is)h 177 257(the)s 14(empt)h -1(y)h 13(name)h 13(\\)h 88(",)h 12(whic)h -1(h)h 13(is)h 14(four)h 13(c)h -1(haracters)h 16(long.)h 17(Single-c)h -1(haracter)h 14(names)h 13(are)h 14(\014v)h -1(e)h 14(c)h -1(haracters)h 177 307(long.)s 177 381(T)s -3(o)h 15(cater)h 17(for)h 15(the)h 16(cases)h 17(where)h 17(really)h 15(short)h 16(names)h 15(are)h 16(needed,)h 17(F)h -3(unnelW)h -3(eb)h 15(pro)h -1(vides)h 16(a)h 177 431(syn)s -1(tax)h 13(that)h 14(allo)h -1(ws)h 12(one-c)h -1(haracter)h 14(macro)h 12(names)h 13(to)h 13(b)h 1(e)h 14(sp)h 1(eci\014ed)h 14(in)h 13(t)h -1(w)h -1(o)h 13(less)h 14(c)h -1(haracters.)h 19(Quic)h -1(k)h 14(names)h 177 481(tak)s -1(e)h 20(the)h 21(form)h 18(of)h 20(the)h 21(sp)h 1(ecial)h 20(c)h -1(haracter,)h 22(follo)h -1(w)h -1(ed)h 19(b)h -1(y)h 20(a)h 20(hash)h 20(\()h 22(\))h 20(follo)h -1(w)h -1(ed)h 18(b)h -1(y)h 20(a)h 20(single)h 20(c)h -1(haracter.)h 177 531(Examples:)s 177 763(This)s 17(form)h 14(of)h 16(macro)h 15(name)h 16(has)h 16(the)h 17(same)h 16(syn)h -1(tactic)h 17(functionalit)h -1(y)h 15(as)h 17(an)h 16(ordinary)h 16(name)h 15(and)h 16(can)h 17(b)h 1(e)h 177 813(substituted)s 17(wherev)h -1(er)h 17(an)h 16(ordinary)h 15(name)h 15(can)h 15(b)h 1(e.)h 24(In)h 16(fact)h 16(quic)h -1(k)h 15(names)h 15(liv)h -1(e)h 15(in)h 15(the)h 16(same)h 15(namespace)h 177 863(as)s 15(ordinary)h 15(macro)h 13(names.)h 21(F)h -3(or)h 15(example)h 13(the)h 16(quic)h -1(kname)h 94(is)h 14(the)h 236(\(refers)h 16(to)h 15(the)h 16(same)h 177 913(macro\))s 13(as)h 14(the)h 14(ordinary)h 14(name)h 123(.)h 177 988(Because)s 13(quic)h -1(k)h 10(names)h 10(lo)h 1(ok)h 10(syn)h -1(tactically)h 10(\\op)h 1(en")h 11(\(i.e.)h 10(they)h 11(do)h 11(not)h 10(ha)h -1(v)h -1(e)h 11(a)h 11(closing)h 53(as)h 11(ordinary)h 11(names)h 177 1037(do\),)s 13(it)h 14(is)h 14(b)h 1(est)h 15(to)h 14(a)h -1(v)h -1(oid)h 12(them)h 13(except)h 15(where)h 15(a)h 14(macro)h 13(m)h -1(ust)h 13(b)h 1(e)h 14(called)h 14(v)h -1(ery)h 14(often.)h 177 1315(There)s 13(are)h 13(man)h -1(y)h 10(w)h -1(a)h -1(ys)h 12(in)h 12(whic)h -1(h)h 12(a)h 12(macro)h 11(prepro)h 1(cessor)h 14(can)h 13(cause)h 13(unexp)h 1(ected)h 14(di\016culties.)h 17(F)h -3(unnelW)h -3(eb)h 177 1365(seeks)s 17(to)h 14(a)h -1(v)h -1(oid)h 14(man)h -1(y)h 13(of)h 14(these)h 17(problems)h 14(b)h -1(y)h 14(p)h 1(erforming)h 14(a)h 14(n)h -1(um)h -1(b)h 1(er)h 14(of)h 15(c)h -1(hec)h -1(ks.)h 22(This)h 15(section)h 16(describ)h 1(es)h 177 1415(some)s 13(of)h 13(the)h 15(c)h -1(hec)h -1(ks)h 15(that)h 14(F)h -3(unnelW)h -3(eb)h 13(p)h 1(erforms.)h 986 1490(T)s -3(railing)h 12(blanks)h 14(are)h 15(usually)h 14(not)h 14(dangerous,)h 14(but)h 295 1540(F)s -3(unnelW)h -3(eb)h 19(disallo)h -1(ws)h 17(them)h 19(an)h -1(yw)h -1(a)h -1(y)h -3(.)h 31(All)h 18(trailing)h 18(blanks)h 18(in)h 19(the)h 132(\()h 84(\014le\))h 19(are)h 295 1589(\015agged)s 16(as)h 17(errors)h 17(b)h -1(y)h 16(F)h -3(unnelW)h -3(eb.)h 25(F)h -3(unnelW)h -3(eb)h 15(do)h 1(es)h 17(not)h 16(\015ag)h 16(trailing)h 15(blanks)h 16(in)h 16(an)h -1(y)h 15(of)h 295 1639(its)s 14(output)h 14(\014les.)h 697 1714(F)s -3(unnelW)h -3(eb)h 17(has)h 17(a)h 18(maxim)h -3(um)h 14(input)h 18(line)h 17(length.)h 29(If)h 17(F)h -3(unnelW)h -3(eb)h 295 1764(reads)s 18(an)h 16(input)h 17(line)h 16(longer)h 16(than)h 17(this)h 16(length,)h 17(it)h 16(\015ags)h 17(the)h 17(line)h 16(with)h 16(an)h 17(error)h 17(message.)h 295 1813(The)s 15(maxi)h -1(m)h -2(um)h 10(length)h 14(can)h 14(b)h 1(e)h 15(c)h -1(hanged)h 14(using)h 14(a)h 13(pragma)h 12(\(see)h 16(Chapter)h 14(3\).)h 831 1888(F)s -3(unnelW)h -3(eb)h 16(w)h -1(atc)h -1(hes)h 18(the)h 18(length)h 18(of)h 16(output)h 18(lines)h 17(and)h 17(all)h 295 1938(output)s 18(lines)h 17(longer)h 17(than)h 18(the)h 18(lim)h -1(it)h 15(are)h 18(\015agged)h 17(with)h 17(error)h 18(messages.)h 29(The)h 18(maxim)h -3(um)h 295 1988(length)s 19(can)h 19(b)h 1(e)h 19(c)h -1(hanged)h 20(using)h 18(a)h 19(pragma)h 16(\(see)h 21(Chapter)h 19(3\).)h 33(That)h 18(F)h -3(unnelW)h -3(eb)h 18(p)h 1(olices)h 295 2038(output)s 14(lines)h 13(is)h 14(v)h -1(ery)h 13(imp)h 1(ortan)h -1(t.)h 16(Some)h 13(programs)h 12(can)h 14(b)h 1(eha)h -1(v)h -1(e)h 13(v)h -1(ery)h 14(strangely)h 14(if)h 12(they)h 14(get)h 295 2087(an)s 16(input)h 16(line)h 16(that)h 16(is)h 17(to)h 1(o)h 16(long)h 15(\(e.g.)h 16(F)h -3(ortran)h 16(compilers)h 15(can)h 16(simply)h 15(ignore)h 16(text)h 16(past)h 17(a)h 295 2137(certain)s 15(column!\))h 17(and)h 14(once)h 15(F)h -3(unnelW)h -3(eb)h 13(starts)h 15(expanding)h 14(macros)h 13(using)h 14(inden)h -1(tation,)h 13(it)h 295 2187(is)s 14(sometim)h -1(es)h 13(not)h 14(ob)h -1(vious)h 13(ho)h -1(w)h 14(wide)h 13(the)h 15(pro)h 1(duct)h 15(\014le)h 14(will)h 12(b)h 1(e.)h 718 2262(The)s 16(presence)h 17(of)h 15(con)h -1(trol)h 15(c)h -1(haracters)h 17(in)h 14(a)h 15(text)h 16(\014le)h 15(can)h 15(result)h 16(in)h 295 2312(some)s 11(confusing)h 11(b)h 1(eha)h -1(viour)h 12(do)h -1(wnstream)h 11(when)h 12(the)h 12(\014le)h 12(is)h 11(presen)h -1(ted)h 14(to)h 11(v)h -2(arious)h 11(programs.)h 295 2361(Unfortunately)s -3(,)h 13(some)h 12(text)h 14(editors)h 14(allo)h -1(w)h 12(con)h -1(trol)h 13(c)h -1(haracters)h 15(to)h 14(b)h 1(e)h 14(inserted)h 14(in)h -1(to)h 13(the)h 14(text)h 295 2411(rather)s 16(to)h 1(o)h 16(easily)h -3(,)h 14(and)h 15(it)h 15(is)h 15(all)h 14(to)h 1(o)h 15(easy)h 16(to)h 15(b)h 1(e)h 16(tripp)h 1(ed)h 16(up.)h 23(F)h -3(unnelW)h -3(eb)h 15(prev)h -1(en)h -1(ts)h 16(these)h 295 2461(problems)s 14(b)h -1(y)h 14(\015agging)h 13(with)h 15(diagnostics)h 14(all)h 13(non-end-of-line)h 14(con)h -1(trol)h 14(c)h -1(haracters)h 17(detected)h 295 2511(in)s 16(the)h 17(input)h 16(\()h 66(\))h 16(\014le)h 17(\(ev)h -1(en)h 17(T)h -3(ABs\).)h 26(The)h 17(result)h 17(is)h 16(that)h 17(the)h 17(user)h 17(is)h 17(guaran)h -1(teed)h 17(that)h 295 2561(pro)s 1(duct)h 15(\014les)h 14(generated)h 15(from)h 12(F)h -3(unnelW)h -3(eb)h 13(con)h -1(tain)h 14(no)h 13(unin)h -1(ten)h -1(tional)h 13(con)h -1(trol)h 13(c)h -1(haracters.)h 295 2610(This)s 13(said,)h 13(F)h -3(unnelW)h -3(eb)h 12(do)h 1(es)h 14(allo)h -1(w)h 11(the)h 14(insertion)h 13(of)h 13(con)h -1(trol)h 12(c)h -1(haracters)h 15(in)h 13(the)h 13(output)h 14(\014le)h 295 2660(b)s -1(y)h 14(explicitly)h 13(sp)h 1(ecifying)h 14(them)h 13(in)h 13(the)h 15(text)h 14(using)h 14(a)h 71(con)h -1(trol)h 13(sequence)h 1(.)h 805 2735(F)s -3(unnelW)h -3(eb)h 14(c)h -1(hec)h -1(ks)h 16(the)h 15(n)h -1(um)h -1(b)h 1(er)h 14(of)h 14(times)h 13(that)h 15(eac)h -1(h)h 15(macro)h 295 2785(is)s 18(called)h 17(and)h 17(issues)h 19(an)h 17(error)h 19(if)h 16(the)h 19(total)h 16(is)h 18(not)h 17(one.)h 29(The)h 80(\(for)h 17(zero\))h 18(and)h 79(\(for)h 295 2835(man)s -1(y\))h 12(macro)h 13(attributes)h 15(can)h 14(b)h 1(e)h 14(used)h 15(to)h 14(b)h -1(ypass)h 14(these)h 15(c)h -1(hec)h -1(ks.)h 1042 2940(42)s 43 @eop 44 @bop0 cmbx10.432 sf [<0007F0003FFC00FE3E01FC7F03F87F03F87F07F07F07F03E07F00007F00007F00007F0 0007F00007F00007F000FFFFC0FFFFC0FFFFC007F00007F00007F00007F00007F00007F0 0007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F00007F0 0007F00007F00007F0007FFF807FFF807FFF80> 24 42 -2 41 21] 102 dc 44 @bop1 cmr7.300 sf 1483 76(1)s cmr6.300 sf 223 2783(1)s cmsy10.300 sf 1459 733(f)s 331(g)h 471 2675(g)s cmbx10.300 sf 295 42(Recursion:)s cmbx10.432 sf 177 399(2.4)s 70(Fiddling)h 21(With)h 22(End)h 24(of)h 23(Lines)h cmti10.300 sf 981 141(static)s 177 733(the)s 17(b)h -2(o)h -2(dy)h 17(of)h 17(a)h 17(macr)h -2(o)h 16(c)h -2(onsists)h 17(of)h 17(exactly)h 17(the)h 16(text)h 17(b)h -2(etwe)h -2(en)h 17(the)h 16(op)h -2(ening)h 77(and)h 18(the)h 17(closing)h cmr8.300 sf 241 2795(A)s 13(sp)h 1(ecial)h 12(case)h 12(exists)h 12(where)h 13(there)h 11(is)h 13(recursion)h 11(but)h 12(no)h 13(con)h -1(ten)h -1(t.)h 18(In)h 12(this)h 13(case,)h 12(the)h 13(expansi)h -1(on)h 11(is)h 13(\014nite)h 12(\(the)h 12(empt)h -1(y)h 177 2835(string\))s 10(ev)h -1(en)h 10(though)h 10(the)h 11(op)h 1(eratio)h -1(n)h 10(of)h 11(expandi)h -1(ng)h 9(is)h 12(in\014nite.)h 13(F)h -3(unnelW)h -3(eb)h 10(do)h 1(es)h 10(not)h 11(treat)h 10(this)h 11(case)h 11(sp)h 1(ecially)h -4(.)h cmtt10.300 sf 1437 733(@)s 330(@)h 177 961(while)s 21(the_walrus_i)h -1(s_sle)h -1(epy)h 20(do)h 243 1011(begin)s 243 1061(writeln\('z)s -1(zzzzz)h -1(z'\);)h 243 1111(@)h 243 1161(writeln\('U)s -1(mphar)h -1(umpha)h -1(...'\))h -1(;)h 243 1211(end;)s 297 1317()h 177 1423(@$@==@{)h 177 1473(wake_up_the_w)s -1(alrus)h -1(\(the_)h -1(walru)h -1(s\);)h 177 1523(@})s 380 1629()h 177 1736(while)s 21(the_walrus_i)h -1(s_sle)h -1(epy)h 20(do)h 243 1786(begin)s 243 1835(writeln\("z)s -1(zzzzz)h -1(z"\);)h 243 1935(wake_up_th)s -1(e_wal)h -1(rus\(t)h -1(he_wa)h -1(lrus\))h -1(;)h 243 2035(writeln\("U)s -1(mphar)h -1(umpha)h -1(..."\))h -1(;)h 243 2085(end;)s 1774 2191()h 177 2397(@$@==@{)h -1(@-)h 177 2447(wake_up_the_w)s -1(alrus)h -1(\(the_)h -1(walru)h -1(s\);@})h 449 2675(@)s cmr10.300 sf 546 42(Because)s 21(F)h -3(unnelW)h -3(eb)h 19(do)h 1(es)h 20(not)h 20(pro)h -1(vide)h 19(an)h -1(y)h 19(conditional)h 18(constructs,)h 23(all)h 295 91(recursiv)s -1(ely)h 17(de\014ned)h 17(macros)h 15(m)h -1(ust,)h 15(b)h -1(y)h 15(de\014nition,)h 16(expand)h 16(in\014nitely)h -3(,)h 33(and)h 16(are)h 16(therefore)h 295 141(unacceptable.)s 37(F)h -3(unnelW)h -3(eb)h 20(p)h 1(erforms)h 137(c)h -1(hec)h -1(ks)h 21(to)h 20(detect)h 21(recursion,)h 22(detecting)h 21(it)h 295 191(b)s 1(efore)h 13(macro)h 10(expansion)h 12(comm)h -1(ences.)h 17(The)h 13(user)h 12(need)h 13(not)h 12(fear)h 12(that)h 12(F)h -3(unnelW)h -3(eb)h 11(will)h 10(lo)h 1(c)h -1(k)h 295 241(up)s 14(or)h 14(sp)h 1(ew)h 15(forth)h 14(if)h 13(a)h 13(recursiv)h -1(e)h 16(macro)h 12(is)h 14(acciden)h -1(tally)h 13(sp)h 1(eci\014ed.)h 177 512(One)s 13(of)h 12(the)h 13(\014ddly)h 12(asp)h 1(ects)h 15(of)h 11(programm)h -1(ing)h 10(with)h 12(F)h -3(unnelW)h -3(eb)h 12(is)h 13(coping)h 12(with)h 12(end)h 13(of)h 12(lines.)h 17(If)h 12(y)h -1(ou)h 12(w)h -1(an)h -1(t)h 177 562(y)s -1(our)h 17(pro)h 1(duct)h 18(\014le)h 16(to)h 17(b)h 1(e)h 18(w)h -1(ell)h 16(inden)h -1(ted)h 17(without)h 17(m)h -1(ulti)h -1(ple)h 15(blank)h 16(lines)h 17(or)h 17(co)h 1(de)h 17(run-ons,)h 18(y)h -1(ou)h 16(ha)h -1(v)h -1(e)h 17(to)h 177 612(sp)s 1(end)h 15(a)h 14(little)h 13(time)h 12(w)h -1(orking)h 13(out)h 14(ho)h -1(w)h 14(the)h 14(end)h 15(of)h 13(line)h 13(mark)h -1(ers)h 14(get)h 14(mo)h -1(v)h -1(ed)h 12(around.)h 177 684(The)s 16(rule)h 16(to)h 15(remem)h -1(b)h 1(er)h 15(is)h 15(that,)h 15(disregarding)h 16(the)h 16(e\013ects)h 17(of)h 15(sp)h 1(ecial)h 16(sequences)h 18(within)h 14(a)h 15(macro)h 15(b)h 1(o)h 1(dy)h -3(,)h 1832 733(.)s 24(This)h 177 783(text)s 15(includes)h 14(end)h 14(of)h 14(line)h 13(mark)h -1(ers.)h 177 855(If)s 14(for)h 13(example)h 13(y)h -1(ou)h 13(call)h 13(a)h 14(macro)h 13(in)h 13(a)h 14(sequence)h 16(of)h 13(co)h 1(de.)h 7(.)h 7(.)h 177 1317(where)s 465(is)h 14(de\014ned)h 15(as)h 14(follo)h -1(ws)h 177 1629(then)s 15(when)h 464(is)h 14(expanded)h 14(y)h -1(ou)h 14(will)h 12(get)h 177 2191(The)s 13(blank)h 12(lines)h 13(w)h -1(ere)h 13(in)h -1(tro)h 1(duced)h 14(b)h -1(y)h 12(the)h 14(end)h 13(on)h 12(line)h 13(mark)h -1(ers)h 12(included)h 13(in)h 12(the)h 13(de\014nition)h 12(of)h 418 2241(.)s 19(A)h 15(go)h 1(o)h 1(d)h 14(solution)h 13(to)h 15(this)h 15(problem)h 13(is)h 14(to)h 15(suppress)h 16(the)h 15(end)h 15(of)h 14(line)h 15(mark)h -1(ers)h 13(b)h -1(y)h 15(de\014ning)h 177 2291(the)s 15(macro)h 12(as)h 14(follo)h -1(ws)h 177 2553(This)s 14(is)h 14(the)h 14(usual)h 14(form)h 12(of)h 13(macro)h 13(de\014nitions)h 14(in)h 13(F)h -3(unnelW)h -3(eb)h 14(\014les.)h 177 2625(In)s 14(additiv)h -1(e)h 13(macros,)h 13(this)h 14(format)h 12(do)h 1(es)h 15(not)h 14(w)h -1(ork)h 13(prop)h 1(erly)h 15(b)h 1(ecause)h 15(the)h 15(end)h 15(of)h 13(line)h 13(that)h 14(is)h 14(suppresse)h 1(d)h 177 2675(b)s -1(y)h 13(the)h 14(trailing)h 67(do)h 1(es)h 14(not)h 13(get)h 13(replaced)h 15(b)h -1(y)h 12(the)h 14(end)h 14(of)h 12(line)h 13(at)h 13(the)h 14(end)h 13(of)h 13(the)h 14(macro)h 12(in)h -1(v)h -1(o)h 1(cation.)h 16(F)h -3(or)h 177 2725(example)s 13(the)h 14(de\014nition)h 1042 2940(43)s 709 2 177 2757 r 44 @eop 45 @bop0 45 @bop1 cmsy10.300 sf 570 759(g)s cmbx10.432 sf 177 1950(2.5)s 70(F)h -6(udging)h 24(Conditionals)h cmtt10.300 sf 177 42(@$@+=@{)h -1(@-)h 177 91(wake_up_the_w)s -1(alrus)h -1(_once)h -1(\(the_)h -1(walru)h -1(s\);@})h 177 318(@$@+=@{)h -1(@-)h 177 368(wake_up_the_w)s -1(alrus)h -1(_agai)h -1(n\(the)h -1(_walr)h -1(us\);@)h -1(})h 177 595(@$@==@{)h -1(@-)h 177 645(wake_up_the_w)s -1(alrus)h -1(_once)h -1(\(the_)h -1(walru)h -1(s\);wa)h -1(ke_u)h -1(p_the)h -1(_walr)h -1(us_ag)h -1(ain\(t)h -1(he_wa)h -1(lrus)h -1(\);@})h 548 759(@)s 177 922(@$@+=@{)h -1(@-)h 177 972(wake_up_the_w)s -1(alrus)h -1(_once)h -1(\(the_)h -1(walru)h -1(s\);)h 177 1022(@})s 177 1249(@$@+=@{)h -1(@-)h 177 1299(wake_up_the_w)s -1(alrus)h -1(_agai)h -1(n\(the)h -1(_walr)h -1(us\);@)h -1(})h 177 1526(@$@==@{)h -1(@-)h 177 1576(wake_up_the_w)s -1(alrus)h -1(_once)h -1(\(the_)h -1(walru)h -1(s\);)h 177 1625(wake_up_the_w)s -1(alrus)h -1(_agai)h -1(n\(the)h -1(_walr)h -1(us\);@)h -1(})h 421 2115(#ifdef)s 1804 2685(--)s 1169 2835(--)s cmr10.300 sf 177 205(later)s 14(follo)h -1(w)h -1(ed)h 12(b)h -1(y)h 177 482(is)s 14(equiv)h -2(alen)h -1(t)h 13(to)h 14(the)h 14(single)h 14(de\014nition)h 177 759(Putting)s 14(the)h 15(trailing)h 70(on)h 14(a)h 14(new)h 15(line)h 14(at)h 14(the)h 15(end)h 15(of)h 14(the)h 14(macro)h 14(\(except)h 15(for)h 14(the)h 15(last)h 15(de\014nition)h 13(part\))h 177 809(solv)s -1(es)h 14(the)h 15(problem.)h 177 1135(later)s 14(follo)h -1(w)h -1(ed)h 12(b)h -1(y)h 177 1412(is)s 14(equiv)h -2(alen)h -1(t)h 13(to)h 14(the)h 14(single)h 14(de\014nition)h 177 1739(Managing)s 12(end)h 14(of)h 13(line)h 13(mark)h -1(ers)h 13(is)h 13(tric)h -1(ky)h -3(,)h 13(but)h 14(once)h 14(y)h -1(ou)h 13(establish)h 13(a)h 14(con)h -1(v)h -1(en)h -1(tion)h 13(for)h 13(coping)h 13(with)h 13(them,)h 177 1789(the)s 15(problem)h 12(disapp)h 1(ears)h 15(in)h -1(to)h 13(the)h 15(bac)h -1(kground.)h 177 2065(As)s 13(a)h 13(macro)h 11(prepro)h 1(cess)h 1(or,)h 14(the)h 13(facilit)h -1(y)h 11(that)h 13(F)h -3(unnelW)h -3(eb)h 12(most)h 12(ob)h -1(viously)h 11(lac)h -1(ks)h 12(is)h 13(a)h 12(conditional)h 11(facilit)h -1(y)h 177 2115(\(suc)s -1(h)h 19(as)h 17(C's)h 150(\).)h 28(It)h 18(migh)h -1(t,)h 16(therefore,)h 20(come)h 16(as)h 18(a)h 17(surprise)h 19(to)h 18(kno)h -1(w)h 17(that)h 18(the)h 18(\014rst)h 19(v)h -1(ersion)h 17(of)h 177 2164(F)s -3(unnelW)h -3(eb)h 17(actually)h 17(had)h 17(a)h 17(built)h 17(in)h 17(conditional)h 17(facilit)h -1(y)h -4(.)h 27(The)h 18(facilit)h -1(y)h 16(allo)h -1(w)h -1(ed)h 17(the)h 18(programm)h -1(er)h 16(to)h 177 2214(sp)s 1(ecify)h 14(a)h 12(construct)h 14(that)h 13(w)h -1(ould)h 12(select)h 14(from)h 11(one)h 13(of)h 13(a)h 12(n)h -1(um)h -1(b)h 1(er)h 12(of)h 12(macro)h 12(expressions)h 14(dep)h 1(ending)h 14(on)h 12(the)h 177 2264(v)s -2(alue)h 13(of)h 14(a)h 13(con)h -1(trolling)h 13(macro)h 12(expression.)h 177 2338(In)s 14(three)h 15(y)h -1(ears)h 15(the)h 14(construct)h 16(w)h -1(as)h 14(nev)h -1(er)h 14(used.)h 177 2412(The)s 13(reason)h 13(w)h -1(as)h 12(that)h 13(conditional)h 11(constructs)h 14(could)h 12(b)h 1(e)h 14(fudged)h 12(nearly)h 12(as)h 13(easily)h 12(as)h 12(they)h 13(could)h 12(b)h 1(e)h 13(used.)h 177 2462(Because)s 16(of)h 14(this,)h 13(the)h 15(in)h -1(built)h 13(conditional)h 12(feature)h 15(w)h -1(as)h 14(remo)h -1(v)h -1(ed)h 13(in)h 14(the)h 15(curren)h -1(t)h 15(v)h -1(ersion)h 14(of)h 14(F)h -3(unnelW)h -3(eb.)h 177 2512(Not)s 12(only)h 10(did)h 11(this)h 12(simpli)h -1(fy)h 9(the)h 12(program,)h 10(but)h 11(is)h 12(also)h 10(allo)h -1(w)h -1(ed)h 11(recursiv)h -1(e)h 12(macros)h 11(to)h 11(b)h 1(e)h 12(detected)h 14(through)h 177 2561(static)s 14(analysis)h 14(rather)h 14(than)h 14(during)h 14(macro)h 12(expansion.)h 177 2635(There)s 18(are)h 18(t)h -1(w)h -1(o)h 16(basic)h 17(w)h -1(a)h -1(ys)h 17(to)h 17(fudge)h 17(a)h 16(conditional.)h 26(First,)h 18(the)h 17(commen)h -1(t)h 15(facilit)h -1(y)h 16(of)h 16(the)h 17(target)h 18(pro-)h 177 2685(gramm)s -1(ing)h 12(language)h 13(ma)h -1(y)h 12(b)h 1(e)h 15(emplo)h -1(y)h -1(ed.)h 17(F)h -3(or)h 13(example,)h 13(in)h 13(Ada,)h 14(comm)h -1(en)h -1(ts)h 13(commence)h 13(with)h 14(\\)h 44(")h 13(and)h 177 2735(terminate)s 13(at)h 14(the)h 15(end)h 14(of)h 14(the)h 14(line.)h 18(Using)h 14(this)h 14(fact,)h 14(it)h 13(is)h 14(easy)h 15(to)h 13(construct)h 16(macros)h 13(that)h 14(can)h 14(b)h 1(e)h 15(called)h 177 2785(at)s 12(the)h 12(start)h 13(of)h 11(eac)h -1(h)h 12(target)h 12(line)h 12(and)h 11(whic)h -1(h)h 12(turn)h 12(on)h 12(and)h 11(o\013)h 12(the)h 12(lines)h 12(so)h 12(mark)h -1(ed)h 10(b)h -1(y)h 12(de\014ning)h 12(the)h 12(macro)h 177 2835(to)s 14(b)h 1(e)h 14(the)h 15(empt)h -1(y)h 13(string)h 14(\(ON\))h 14(or)h 14(the)h 15(comm)h -1(en)h -1(t)h 12(sym)h -1(b)h 1(ol)h 12(\()h 44(\))h 14(\(OFF\).)h 14(F)h -3(or)h 14(example:)h 1042 2940(44)s 45 @eop 46 @bop0 46 @bop1 cmr10.300 sf 177 1051(The)s 16(other)h 15(w)h -1(a)h -1(y)h 14(to)h 15(fudge)h 15(a)h 14(conditional)h 14(is)h 15(to)h 15(de\014ne)h 15(a)h 15(macro)h 14(with)h 14(a)h 15(single)h 15(parameter.)h 20(A)h 15(call)h 14(to)h 15(the)h 177 1101(macro)s 15(is)h 15(then)h 17(wrapp)h 1(ed)h 17(around)h 15(all)h 15(the)h 16(conditional)h 15(co)h 1(de)h 17(in)h 15(the)h 16(program.)h 23(The)h 16(macro)h 15(can)h 16(then)h 16(b)h 1(e)h 177 1151(de\014ned)s 15(to)h 14(presen)h -1(t)h 15(or)h 14(ignore)h 14(the)h 14(co)h 1(de)h 15(of)h 13(its)h 14(argumen)h -1(t.)h 17(F)h -3(or)h 14(example:)h 177 2223(In)s 16(languages)h 16(that)h 16(allo)h -1(w)h 15(m)h -1(ulti)h -1(-li)h -1(ne)h 15(comm)h -1(en)h -1(ts)h 15(\(e.g.)h 16(C)h 16(with)h 75(and)h 60(\),)h 16(commen)h -1(ts)h 15(can)h 16(b)h 1(e)h 17(used)h 17(to)h 177 2273(eliminate)s 12(the)h 15(conditioned)h 13(co)h 1(de)h 15(rather)h 15(than)h 14(absence.)h 19(F)h -3(or)h 14(example:)h 177 2499(\(Note:)s 22(If)h 15(this)h 16(example)h 14(w)h -1(ere)h 17(ev)h -1(er)h 16(actually)h 15(used,)h 16(the)h 17(programm)h -1(er)h 14(w)h -1(ould)h 15(ha)h -1(v)h -1(e)h 15(to)h 15(b)h 1(e)h 17(careful)h 15(not)h 16(to)h 177 2548(place)s 14(commen)h -1(ts)h 12(in)h 14(the)h 14(argumen)h -1(t)h 13(co)h 1(de.)h 19(Nested)h 15(commen)h -1(ts)h 12(in)h 14(C)h 14(are)h 14(non-p)h 1(ortable.\))h 177 2622(The)s 13(parameterized)h 12(macro)h 11(idea)h 11(can)h 13(b)h 1(e)h 12(generalized)h 13(to)h 12(supp)h 1(ort)h 13(the)h 12(c)h -1(hoice)h 13(of)h 11(more)h 11(than)h 12(one)h 12(m)h -1(utually)h 177 2672(exclusiv)s -1(e)h 15(alternativ)h -1(e.)h 17(F)h -3(or)h 14(example:)h 1042 2940(45)s cmtt10.300 sf 177 42(@A@)h 177 141(The)s 21(following)h 20(macro)h 21(determines)h 20(whether)h 20(debug)h 21(code)h 21(will)h 21(be)h 21(included)h 20(in)h 22(the)h 177 191(program.)s 20(All)h 21(lines)h 21(of)h 22(debug)h 20(code)h 21(commence)h 20(with)h 21(a)h 22(call)h 21(to)h 21(this)h 21(macro)h 21(and)h 21(so)h 177 241(we)s 22(can)h 21(turn)h 21(all)h 21(that)h 21(code)h 21(on)h 21(or)h 22(off)h 21(here)h 21(by)h 21(defining)h 20(this)h 21(macro)h 21(to)h 21(be)h 22(either)h 177 291(empty)s 21(or)h 21(the)h 21(single-line)h 20(comment)h 20(symbol)h 21(\(\\p{--}\).)h 20(Note)h 21(the)h 21(use)h 21(of)h 22(a)h 177 340(quick)s 21(macro)h 21(name.)h 177 440(@$@#D@M==@{@})s 106(@!)h 22(Turns)h 21(the)h 21(debug)h 21(code)h 20(ON.)h 177 490(@!)s 22(Use)h 21(this)h 21(definition)h 19(to)h 22(turn)h 21(the)h 21(debug)h 21(code)h 21(OFF:)h 21(@$@#D==@{--)h -1(@})h 177 589(...)s 21(then)h 21(later)h 21(in)h 21(the)h 22(file...)h 177 689(@$@==@{@-)h 177 739(while)s 21(sloth=walrus!)h -1(!!!!!)h -1(!"\);)h 243 839(@#D)s 21(assert\(time)h -1(r=timer)h -1(max!!)h -1(!"\);)h 243 888(inc\(sloth\))s -1(;)h 177 938(end)s 21(loop@})h 177 1263(@A@)h 177 1363(The)s 21(following)h 20(macro)h 21(determines)h 20(whether)h 20(debug)h 21(code)h 21(will)h 21(be)h 21(included)h 20(in)h 22(the)h 177 1413(program.)s 20(All)h 21(debug)h 21(code)h 21(is)h 22(wrapped)h 20(by)h 21(a)h 22(call)h 21(to)h 21(this)h 21(macro)h 21(and)h 21(so)h 177 1463(we)s 22(can)h 21(turn)h 21(all)h 21(the)h 21(debug)h 21(code)h 21(on)h 21(or)h 22(off)h 21(here)h 21(by)h 21(defining)h 20(this)h 21(macro)h 21(to)h 21(be)h 177 1513(either)s 21(empty)h 20(or)h 22(its)h 21(parameter.)h 177 1612(@$@#D@\(@1@\)@M)s -1(==@{@)h -1(1@})h 107(@!)h 21(Turns)h 21(the)h 21(debug)h 21(code)h 21(ON.)h 177 1662(@!)s 22(Use)h 21(this)h 21(definition)h 19(to)h 22(turn)h 21(the)h 21(debug)h 21(code)h 21(OFF:)h 21(@$@#D@\(@1@\))h -1(==@{@)h -1(})h 177 1762(...)s 21(then)h 21(later)h 21(in)h 21(the)h 22(file...)h 177 1861(@$@==@{@-)h 177 1911(while)s 21(sloth=walrus)h -1(!!!!!)h -1(!!"\);)h 352 2011(assert\(tim)s -1(er=time)h -1(rmax!)h -1(!!"\);)h -1(@\))h 243 2060(inc\(sloth\))s -1(;)h 177 2110(end)s 21(loop@})h 1250 2223(/*)s 98(*/)h 177 2386(@$@#D@\(@1@\)@M)s -1(==@{/)h -1(*)h 20(@1)h 21(*/@})h 87(@!)h 21(Comments)h 20(out)h 21(the)h 22(debug)h 20(code)h 177 2785(@A)s 22(This)h 21(module)h 20(contains)h 20(non-portable)h 20(code)h 20(that)h 21(must)h 21(execute)h 21(on)h 21(Hewlett)h 177 2835(Packard,)s 20(Sun,)h 21(and)h 21(DEC)h 22(workstation)h -1(s.)h 20(The)h 21(following)h 20(FunnelWeb)h 20(macro)h 21(is)h 46 @eop 47 @bop0 47 @bop1 cmbx10.432 sf 177 1099(2.6)s 70(Changing)h 23(the)h 22(Strength)h 24(of)h 23(Headings)h cmtt10.300 sf 177 42(defined)s 21(to)h 21(choose)h 20(between)h 21(these)h 21(three.)h 20(The)h 21(first)h 21(parameter)h 20(is)h 21(the)h 22(HP)h 21(code,)h 177 91(the)s 21(second)h 21(is)h 21(the)h 21(Sun)h 22(code,)h 20(and)h 22(the)h 21(third)h 20(is)h 22(the)h 21(DEC)h 21(code.)h 21(Whichever)h 177 141(parameter)s 20(constitutes)h 20(the)h 21(body)h 21(of)h 21(this)h 21(macro)h 21(determines)h 20(which)h 177 191(machine)s 21(the)h 21(code)h 21(is)h 21(being)h 21(targeted\\not)h -1(e{Di)h -1(ction)h -1(ary)h 20(says)h 21(only)h 21(one)h 21(t)h 177 241(in)s 22(targeted.})h 19(for.)h 177 340(@$@@\(@3@\))h -1(@M==@)h -1({@1@)h -1(})h 42(@!)h 21(Configure)h 20(for)h 21(HP.)h 177 440(...then)s 21(later)h 20(in)h 22(the)h 21(file...)h 177 540(@@\()h 177 589(@"get_command)s -1(_line)h -1(\(coml)h -1(ine\)@)h -1(")h 238(@,)h 21(@!)h 22(HP.)h 177 639(@"scan_comman)s -1(d_lin)h -1(e\(128)h -1(,coml)h -1(ine\);)h -1(@")h 107(@,)h 21(@!)h 22(Sun.)h 177 689(@"dcl_get_com)s -1(mand_)h -1(line\()h -1(comli)h -1(ne,25)h -1(6\);@")h 41(@\))h 21(@!)h 22(DEC.)h 941 1211(@A)s 29(@B)h 29(@C)h 29(@D)h 114(@E)h 1274 1261(@A)s 753 1752(fwliba)s 47(fwlibe)h 323 1851(fwseca)s 48(fwsece)h 177 2005(\\def\\fwseca#1)s -1(#2{\\f)h -1(wliba)h -1({#1}{)h -1(#2}})h 177 2055(\\def\\fwsecb#1)s -1(#2{\\f)h -1(wlibb)h -1({#1}{)h -1(#2}})h 177 2104(\\def\\fwsecc#1)s -1(#2{\\f)h -1(wlibc)h -1({#1}{)h -1(#2}})h 177 2154(\\def\\fwsecd#1)s -1(#2{\\f)h -1(wlibd)h -1({#1}{)h -1(#2}})h 177 2204(\\def\\fwsece#1)s -1(#2{\\f)h -1(wlibe)h -1({#1}{)h -1(#2}})h 177 2461(@p)s 22(typesetter)h 19(=)h 22(tex)h 177 2511(\\def\\fwseca#1)s -1(#2{\\f)h -1(wlibc)h -1({#1}{)h -1(#2}})h 356 2614(@A)s 1009(@C)h 278(typesetter)h 1370 2785(@D)s 93(@E)h 388 2835(@E)s cmr10.300 sf 177 793(Of)s 13(course,)h 13(this)h 13(could)h 12(also)h 12(b)h 1(e)h 13(p)h 1(erformed)h 12(using)h 13(three)h 14(separate)h 13(macros.)h 17(The)h 13(main)h 10(adv)h -2(an)h -1(tage)h 12(of)h 12(using)h 177 842(a)s 15(single)h 15(macro)h 15(is)h 15(that)h 15(the)h 17(m)h -1(utual)h 13(exclusivit)h -1(y)h 15(is)h 15(enforced.)h 24(Also,)h 15(b)h 1(ecause)h 17(F)h -3(unnelW)h -3(eb)h 15(ensures)h 18(that)h 177 892(the)s 15(n)h -1(um)h -1(b)h 1(er)h 14(of)h 14(formal)h 12(and)h 15(actual)h 14(parameters)h 15(are)h 15(the)h 15(same,)h 13(this)h 15(metho)h 1(d)h 14(lessens)h 16(the)h 15(c)h -1(hance)h 15(that)h 15(a)h 177 942(mac)s -1(hine)h 13(will)h 12(b)h 1(e)h 15(forgotten)h 14(in)h 13(some)h 13(places.)h 177 1211(F)s -3(unnelW)h -3(eb)h 18(pro)h -1(vides)h 18(\014v)h -1(e)h 18(heading)h 18(lev)h -1(els:)h 70(,)h 61(,)h 61(,)h 61(,)h 18(and)h 79(to)h 18(whic)h -1(h)h 18(it)h 17(binds)h 19(\014v)h -1(e)h 18(di\013eren)h -1(t)h 177 1261(t)s -1(yp)h 1(ographical)h 16(strengths.)h 28(These)h 17(bindings)h 16(are)h 17(static;)h 18(a)h 17(lev)h -1(el)h 76(heading)h 16(will)h 15(alw)h -1(a)h -1(ys)h 16(b)h 1(e)h 17(t)h -1(yp)h 1(eset)h 18(in)h 177 1311(a)s 16(particular)h 16(fon)h -1(t)h 16(size)h 17(regardless)h 18(of)h 16(the)h 16(size)h 18(of)h 15(the)h 17(do)h 1(cumen)h -1(t.)h 25(The)h 17(fon)h -1(t)h 16(sizes)h 17(ha)h -1(v)h -1(e)h 16(b)h 1(een)h 18(preset)h 18(to)h 177 1361(b)s 1(e)h 17(\\reasonable")h 15(for)h 16(a)h 15(range)h 16(of)h 15(do)h 1(cumen)h -1(t)h 16(sizes,)h 17(but)h 16(ma)h -1(y)h 13(b)h 1(e)h 17(inappropriate)h 15(for)h 16(v)h -1(ery)h 16(small)h 13(or)h 16(large)h 177 1410(do)s 1(cumen)h -1(ts.)h 177 1482(F)s -3(unnelW)h -3(eb)h 13(do)h 1(es)h 14(not)h 13(curren)h -1(tly)h 14(pro)h -1(vide)h 14(an)h 13(\\o\016cial")h 11(w)h -1(a)h -1(y)h 13(\(e.g.)h 12(a)h 13(pragma\))h 12(to)h 13(c)h -1(hange)h 14(the)h 14(t)h -1(yp)h 1(esetting)h 177 1531(strength)s 13(of)h 12(headings.)h 17(This)h 12(feature)h 12(migh)h -1(t)h 10(b)h 1(e)h 13(added)h 12(in)h 11(later)h 12(v)h -1(ersions.)h 18(Mean)h -1(while,)h 12(a)h 11(hac)h -1(k)h 12(is)h 12(a)h -1(v)h -2(ailabl)h -1(e)h 177 1581(that)s 17(will)h 15(do)h 16(the)h 18(job,)h 16(pro)h -1(viding)h 15(that)h 17(y)h -1(ou)h 16(do)h 17(not)h 16(mind)h 15(the)h 17(hac)h -1(k)h 17(b)h 1(eing)h 17(T)h 1490 1590(E)s 1513 1581(X-sp)s 1(eci\014c)h 18(and)h 16(probably)h 177 1631(F)s -3(unnelW)h -3(eb-v)h -1(ersion)h 14(sp)h 1(eci\014c.)h 177 1702(Inside)s 14(the)h 15(set)h 14(of)h 13(T)h 504 1711(E)s 528 1702(X)s 13(macro)h 13(de\014nitions)h 13(that)h 14(F)h -3(unnelW)h -3(eb)h 13(writes)h 15(at)h 13(the)h 15(top)h 13(of)h 14(ev)h -1(ery)h 14(do)h 1(cumen)h -1(tation)h 177 1752(\014le)s 11(are)h 12(\014v)h -1(e)h 11(\\library")h 10(de\014nitions)h 143(.)h 7(.)h 7(.)h 139(whic)h -1(h)h 11(pro)h -1(vide)h 11(\014v)h -1(e)h 11(di\013eren)h -1(t)h 12(t)h -1(yp)h 1(esetting)h 12(strengths)h 177 1802(for)s 15(headings.)h 23(Near)h 16(the)h 17(end)h 16(of)h 15(the)h 16(set)h 16(of)h 15(de\014nitions,)h 16(F)h -3(unnelW)h -3(eb)h 15(binds)h 15(these)h 17(macros)h 15(to)h 15(\014v)h -1(e)h 16(other)h 177 1851(macros)s 150(.)h 7(.)h 7(.)h 147(whic)h -1(h)h 19(are)h 20(in)h -1(v)h -1(ok)h -1(ed)h 18(directly)h 20(in)h 18(the)h 20(generated)h 20(T)h 1511 1860(E)s 1535 1851(X)s 19(co)h 1(de)h 20(to)h 19(t)h -1(yp)h 1(eset)h 20(the)h 177 1901(headings.)s 177 2308(This)s 10(means)h 10(that)h 11(the)h 11(t)h -1(yp)h 1(esetting)h 11(strength)h 12(of)h 9(the)h 11(headings)h 11(in)h 10(a)h 10(F)h -3(unnelW)h -3(eb)h 10(do)h 1(cumen)h -1(t)h 10(can)h 10(b)h 1(e)h 11(c)h -1(hanged)h 177 2357(b)s -1(y)h 14(rede\014ning)h 14(these)h 16(macros)h 13(at)h 13(the)h 15(top)h 14(of)h 13(a)h 14(F)h -3(unnelW)h -3(eb)h 13(do)h 1(cumen)h -1(t.)h 17(F)h -3(or)h 14(example:)h 177 2614(w)s -1(ould)h 10(set)h 65(headings)h 10(at)h 11(the)h 10(same)h 10(strength)h 12(as)h 10(the)h 11(default)h 10(strength)h 12(of)h 63(headings.)h 17(The)h 177 2664(directiv)s -1(e)h 15(is)h 13(necessary)h 16(to)h 14(ensure)h 15(that)h 14(the)h 14(T)h 935 2673(E)s 958 2664(X)s 14(con)h -1(trol)h 14(sequences)h 16(get)h 14(through)h 14(to)h 14(the)h 14(do)h 1(cumen)h -1(tation)h 177 2714(\014le)s 14(un\014ltered.)h 177 2785(The)s 14(follo)h -1(wing)h 11(will)h 12(tone)h 14(do)h -1(wn)h 13(all)h 12(headings)h 13(b)h -1(y)h 13(t)h -1(w)h -1(o)h 13(lev)h -1(els)h 14(\(with)h 13(the)h 71(and)h 70(lev)h -1(els)h 14(b)h 1(eing)h 13(allo)h 1(cated)h 177 2835(the)s 15(default)h 71(t)h -1(yp)h 1(esetting)h 14(strength)h 16(b)h 1(ecause)h 15(there)h 15(is)h 14(nothing)h 13(w)h -1(eak)h -1(er\).)h 1042 2940(46)s 47 @eop 48 @bop0 /cmmi8.300 127 @newfont cmmi8.300 sf [<383C0044C6004702004602008E06000C06000C06000C0C00180C00180C401818401818 80300880300F00> 24 14 -1 13 21] 110 dc cmbx10.432 sf [<0001FF803FE000001FFFE3FFF800007F80FFF01E0000FE007FC01F0003FC01FF803F80 03F801FF007F8007F001FE007F8007F001FE007F8007F001FE007F8007F001FE003F0007 F000FE001E0007F000FE00000007F000FE00000007F000FE00000007F000FE000000FFFF FFFFFFFF80FFFFFFFFFFFF80FFFFFFFFFFFF8007F000FE003F8007F000FE003F8007F000 FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE 003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE00 3F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F8007F000FE003F 8007F000FE003F8007F000FE003F8007F000FE003F807FFF0FFFE3FFF87FFF0FFFE3FFF8 7FFF0FFFE3FFF8> 56 42 -1 41 57] 14 dc [ 24 41 -2 40 26] 73 dc [ 40 27 -1 26 36] 118 dc 48 @bop1 cmr7.300 sf 919 849(2)s cmr6.300 sf 223 2823(2)s cmmi8.300 sf 539 2835(n)s 395(n)h cmbx10.300 sf 295 814(Memory:)s 295 1039(Sp)s 1(eed:)h 295 1612(Macro)s 17(expansion:)h cmbx10.432 sf 177 622(2.7)s 70(E\016ciency)h 21(Notes)h 177 2025(2.8)s 70(In)h -2(teractiv)h -2(e)h 21(Mo)h 2(de)h cmr8.300 sf 241 2835(If)s 11(a)h 11(\014le)h 11(is)h 12(include)h -1(d)h 43(times,)h 10(F)h -3(unnelW)h -3(eb)h 10(k)h -1(eeps)h 43(copies)h 10(in)h 11(memory)h -3(.)h cmtt10.300 sf 177 42(@p)s 22(typesetter)h 19(=)h 22(tex)h 177 91(\\def\\fwseca#1)s -1(#2{\\f)h -1(wlibc)h -1({#1}{)h -1(#2}})h 177 141(\\def\\fwsecb#1)s -1(#2{\\f)h -1(wlibd)h -1({#1}{)h -1(#2}})h 177 191(\\def\\fwsecc#1)s -1(#2{\\f)h -1(wlibe)h -1({#1}{)h -1(#2}})h 177 241(\\def\\fwsecd#1)s -1(#2{\\f)h -1(wlibe)h -1({#1}{)h -1(#2}})h 177 291(\\def\\fwsece#1)s -1(#2{\\f)h -1(wlibe)h -1({#1}{)h -1(#2}})h 391 1238(@+)s 286 2709(!)s 327(-)h 21(Comment.)h 21(Ignores)h 20(the)h 21(whole)h 21(line.)h 286 2759(EXECUTE)s 20(fn)h 131(-)h 21(Execute)h 21(the)h 21(specified)h 20(file.)h cmr10.300 sf 177 408(These)s 17(de\014nitions)h 16(a\013ect)h 16(only)h 15(the)h 16(headings)h 15(that)h 16(follo)h -1(w)h 14(them,)h 14(and)h 16(so)h 15(they)h 16(should)h 16(b)h 1(e)h 16(placed)h 16(at)h 15(the)h 177 458(top)s 14(of)h 13(the)h 15(F)h -3(unnelW)h -3(eb)h 13(input)h 14(\014le.)h 177 739(The)s 14(follo)h -1(wing)h 12(notes)h 14(are)h 15(w)h -1(orth)h 14(k)h -1(eeping)h 13(in)h 14(mind)h 12(when)h 14(using)h 14(F)h -3(unnelW)h -3(eb.)h 501 814(When)s 12(F)h -3(unnelW)h -3(eb)h 11(pro)h 1(cesses)h 14(an)h 11(input)h 11(\014le,)h 11(it)h 11(reads)h 12(the)h 12(en)h -1(tire)h 12(input)h 11(\014le,)h 12(and)h 295 864(all)s 14(the)h 15(included)h 15(\014les)h 15(in)h -1(to)h 15(mem)h -1(ory)h -3(.)h 37(This)h 15(organization)h 13(do)h 1(es)h 16(not)h 15(p)h 1(ose)h 15(a)h 15(constrain)h -1(t)h 15(on)h 295 914(mac)s -1(hines)h 13(with)h 14(large)h 13(memo)h -1(ries,)h 12(but)h 14(could)h 14(presen)h -1(t)h 15(a)h 14(problem)h 12(on)h 14(the)h 14(smaller)h 13(mac)h -1(hines)h 295 964(suc)s -1(h)h 15(as)h 14(the)h 14(PC.)h 451 1039(F)s -3(unnelW)h -3(eb)h 12(is)h 12(not)h 12(a)h 12(slo)h -1(w)h 12(program.)h 16(Ho)h -1(w)h -1(ev)h -1(er,)h 12(it)h 12(is)h 12(not)h 13(particularly)h 11(fast)h 12(either.)h 295 1089(If)s 17(the)h 17(sp)h 1(eed)h 18(at)h 17(whic)h -1(h)h 17(F)h -3(unnelW)h -3(eb)h 16(runs)h 17(is)h 17(imp)h 1(ortan)h -1(t)h 15(to)h 17(y)h -1(ou,)h 16(then)h 18(the)h 17(thing)h 16(to)h 17(k)h -1(eep)h 295 1138(in)s 15(mind)h 12(is)h 15(that)h 15(F)h -3(unnelW)h -3(eb)h 14(has)h 15(b)h 1(een)h 16(optimi)h -1(zed)h 14(to)h 15(deal)h 14(e\016cien)h -1(tly)h 15(with)h 14(large)h 14(slabs)h 15(of)h 295 1188(text.)s 23(F)h -3(unnelW)h -3(eb)h 15(treats)h 16(input)h 15(\014les)h 15(as)h 16(a)h 15(sequence)h 17(of)h 15(text)h 15(slabs)h 16(and)h 15(sp)h 1(ecial)h 15(sequences)h 295 1238(\(e.g.)s 61(\))h 18(and)h 17(whenev)h -1(er)h 19(it)h 17(hits)h 18(a)h 18(sp)h 1(ecial)h 18(sequence,)h 20(it)h 17(has)h 18(to)h 17(stop)h 18(and)h 18(think.)h 29(Th)h -1(us,)h 295 1288(while)s 19(a)h 18(ten)h 19(megab)h -1(yte)h 18(text)h 20(slab)h 18(w)h -1(ould)h 18(b)h 1(e)h 19(manipulated)h 17(as)h 19(a)h 19(single)h 18(tok)h -1(en,)h 20(in)h 18(a)h 19(few)h 295 1338(mill)s -1(iseconds,)h 12(a)h 13(simila)h -1(r)h 12(ten)h 14(megab)h -1(yte)h 12(c)h -1(h)h -1(unk)h 13(\014lled)h 13(with)h 12(sp)h 1(ecial)h 14(sequences)h 15(w)h -1(ould)h 13(tak)h -1(e)h 13(a)h 295 1388(lot)s 16(longer.)h 25(If)h 16(F)h -3(unnelW)h -3(eb)h 15(is)h 16(running)h 16(slo)h -1(wly)h -3(,)h 15(lo)h 1(ok)h 15(to)h 16(see)h 18(if)h 15(the)h 17(input)h 16(con)h -1(tains)h 16(a)h 16(high)h 295 1437(densit)s -1(y)h 14(of)h 13(sp)h 1(ecial)h 14(sequences)h 1(.)h 20(This)h 13(can)h 14(sometim)h -1(es)h 13(happ)h 1(en)h 14(if)h 13(F)h -3(unnelW)h -3(eb)h 13(is)h 13(b)h 1(eing)h 14(used)h 295 1487(as)s 13(a)h 12(bac)h -1(k)h -1(end)h 13(macro)h 11(pro)h 1(cessor)h 14(and)h 13(its)h 12(input)h 12(is)h 13(b)h 1(eing)h 12(generated)h 14(automatical)h -1(ly)h 10(b)h -1(y)h 13(some)h 295 1537(other)s 15(program.)h 684 1612(When)s 15(tangling)h 13(\(expanding)h 15(macros\),)h 13(F)h -3(unnelW)h -3(eb)h 14(nev)h -1(er)h 16(expands)h 295 1662(a)s 11(macro)h 10(expression)h 12(in)h -1(to)h 10(memo)h -1(ry;)h 10(it)h 10(alw)h -1(a)h -1(ys)h 10(writes)h 12(it)h 11(to)h 10(the)h 12(pro)h 1(duct)h 12(\014le)h 11(as)h 11(it)h 10(go)h 1(es.)h 18(This)h 295 1712(is)s 10(a)h 11(p)h 1(o)h -1(w)h -1(erful)h 9(fact,)h 11(b)h 1(ecause)h 12(it)h 10(means)h 9(that)h 11(y)h -1(ou)h 10(can)h 10(write)h 11(macros)h 9(con)h -1(taining)h 10(an)h 10(unlimi)h -1(ted)h 295 1762(amoun)s -1(t)h 11(of)h 12(text,)h 13(and)h 12(pass)h 13(suc)h -1(h)h 13(macros)h 12(as)h 13(parameters)h 12(to)h 13(other)h 13(macros)h 11(without)h 12(b)h 1(ecom-)h 295 1812(ing)s 15(concerned)h 18(ab)h 1(out)h 16(o)h -1(v)h -1(er\015o)h -1(wing)h 15(some)h 15(kind)h 15(of)h 16(bu\013er)h 17(mem)h -1(ory)h -3(.)h 22(In)h 16(short,)h 16(F)h -3(unnelW)h -3(eb)h 295 1861(do)s 1(es)h 15(not)h 14(imp)h 1(ose)h 12(an)h -1(y)h 14(limi)h -1(ts)h 12(on)h 14(the)h 15(size)h 14(of)h 13(macro)h 13(b)h 1(o)h 1(dies)h 14(or)h 14(their)h 15(expansions.)h 177 2142(As)s 15(w)h -1(ell)h 13(as)h 15(ha)h -1(ving)h 13(a)h 14(comm)h -1(and)h 12(line)h 14(in)h -1(terface)h 15(with)h 14(lots)h 14(of)h 14(options,)h 13(F)h -3(unnelW)h -3(eb)h 14(also)h 14(pro)h -1(vides)h 14(a)h 14(com-)h 177 2192(mand)s 10(language)h 11(and)h 11(a)h 12(mo)h 1(de)h 10(\(\\in)h -1(teractiv)h -1(e)h 12(mo)h 1(de"\))h 10(in)h 12(whic)h -1(h)h 11(comm)h -1(ands)h 10(in)h 11(the)h 13(language)h 10(can)h 12(b)h 1(e)h 12(t)h -1(yp)h 1(ed)h 177 2242(in)s -1(teractiv)h -1(ely)h -3(.)h 26(The)h 17(F)h -3(unnelW)h -3(eb)h 16(comma)h -1(nd)h 15(in)h -1(terpreter)h 19(w)h -1(as)h 16(created)h 18(primarily)h 15(to)h 16(supp)h 1(ort)h 18(regression)h 177 2292(testing,)s 14(but)h 14(can)h 14(also)h 13(b)h 1(e)h 15(useful)h 14(to)h 14(F)h -3(unnelW)h -3(eb)h 13(users.)h 177 2367(F)s -3(unnelW)h -3(eb's)h 10(comm)h -1(and)h 8(in)h -1(terpreter)h 12(reads)h 11(one)h 10(comm)h -1(and)h 8(p)h 1(er)h 11(line)h 10(and)h 10(can)h 10(read)h 10(a)h 10(stream)h 10(of)h 9(comma)h -1(nds)h 177 2417(either)s 12(from)h 10(a)h 11(text)h 12(\014le,)h 11(or)h 12(from)h 9(the)h 12(console.)h 18(The)h 12(in)h -1(terpreter)h 13(can)h 11(understand)h 13(o)h -1(v)h -1(er)h 11(t)h -1(w)h -1(en)h -1(t)h -1(y)h 12(comm)h -1(ands.)h 177 2466(See)s 17(Chapter)h 16(3)h 15(for)h 15(a)h 15(full)h 14(list.)h 22(Ho)h -1(w)h -1(ev)h -1(er,)h 16(most)h 14(of)h 15(them)h 15(w)h -1(ere)h 16(designed)h 16(to)h 15(supp)h 1(ort)h 17(regression)h 16(testing)h 177 2516(and)s 14(will)h 12(not)h 14(b)h 1(e)h 15(of)h 13(use)h 15(to)h 13(the)h 15(casual)h 14(user.)h 177 2592(The)s 14(commands)h 12(that)h 14(are)h 14(of)h 13(greatest)h 16(use)h 14(to)h 14(the)h 15(casual)h 13(user)h 15(are:)h 1042 2940(47)s 709 2 177 2796 r 48 @eop 49 @bop0 49 @bop1 cmti10.300 sf 1884 654(any)s cmbx10.300 sf 676 423(F)s -4(unnelW)h -4(eb)h 13(prop)h 1(er)h cmtt10.300 sf 286 42(FW)s 22(options)h 129(-)h 21(Invoke)h 21(FunnelWeb-pr)h -1(oper)h 19(once.)h 286 91(SET)s 21(options)h 108(-)h 21(Sets)h 21(options.)h 286 141(SHOW)s 261(-)h 21(Displays)h 21(currently)h 19(active)h 21(options.)h 286 191(TRACE)s 21(ON)h 174(-)h 21(Turns)h 21(command)h 21(tracing)h 20(ON.)h 286 241(QUIT)s 261(-)h 21(Quits)h 21(FunnelWeb.)h 1202 423(FW)s 1472 523(+F)s 282 654(SET)s 741(FW)h 283 785(SHOW)s 1754 866(TRACE)s 20(ON)h 713 1047(typeset.fws)s 177 1179(trace)s 21(on)h 177 1229(!This)s 21(script)h 20(typesets)h 21(the)h 21(whole)h 21(program.)h 177 1279(!)s 22(Set)h 21(no)h 21(listing)h 21(file,)h 20(no)h 22(product)h 20(files,)h 21(but)h 21(specify)h 20(a)h 22(documentatio)h -1(n)h 20(file)h 177 1328(!)s 22(and)h 21(specify)h 20(the)h 21(directory)h 20(into)h 21(which)h 21(it)h 21(should)h 21(be)h 21(placed.)h 177 1378(set)s 21(-L)h 22(-O)h 21(+T/usr/ross/t)h -1(ypese)h -1(t/)h 177 1428(fw)s 22(prog1)h 177 1478(fw)s 22(prog2)h 177 1528(fw)s 22(prog3)h 177 1578(fw)s 22(prog4)h 1885 1710(+X)s 1442 1760()h 198 1810(.fws)s 177 1942(fw)s 22(+xtypeset)h 177 2207(fw)s 22(+k)h 177 2472(execute)s 21(typeset)h cmr10.300 sf 177 373(T)s -3(o)h 16(distinguish)h 17(here)h 18(b)h 1(et)h -1(w)h -1(een)h 18(in)h -1(v)h -1(o)h 1(cations)h 16(of)h 16(the)h 18(F)h -3(unnelW)h -3(eb)h 16(program)h 15(and)h 17(F)h -3(unnelW)h -3(eb)h 16(runs)h 18(inside)h 177 423(the)s 14(shell,)h 14(w)h -1(e)h 14(call)h 13(the)h 14(latter)h 405(.)h 17(The)h 14(\\)h 44(")h 12(command)h 11(in)h -1(v)h -1(ok)h -1(es)h 14(F)h -3(unnelW)h -3(eb)h 13(prop)h 1(er)h 177 473(with)s 14(the)h 14(sp)h 1(eci\014ed)h 15(options)h 14(whic)h -1(h)h 13(tak)h -1(e)h 14(the)h 15(same)h 12(syn)h -1(tax)h 14(as)h 14(they)h 14(do)h 14(on)h 13(the)h 15(comm)h -1(and)h 12(line.)h 17(The)h 15(only)h 177 523(restriction)s 15(is)h 14(that)h 14(none)h 14(of)h 14(the)h 14(action)h 14(options)h 13(can)h 15(b)h 1(e)h 14(turned)h 15(on)h 14(except)h 15(\\)h 44(")h 13(whic)h -1(h)h 14(m)h -1(ust)h 13(b)h 1(e)h 15(turned)h 177 572(on.)s 177 654(The)s 13(\\)h 66(")h 12(comma)h -1(nd)h 11(has)h 13(the)h 14(same)h 12(syn)h -1(tax)h 12(as)h 13(the)h 14(\\)h 44(")h 12(comm)h -1(and)h 11(except)h 14(that)h 13(it)h 13(do)h 1(es)h 13(not)h 13(allo)h -1(w)h 177 703(action)s 13(options)h 13(to)h 13(b)h 1(e)h 14(sp)h 1(eci\014ed.)h 19(It's)h 14(sole)h 13(e\013ect)h 15(is)h 13(to)h 13(set)h 15(default)h 12(option)h 13(v)h -2(alues)h 13(for)h 13(the)h 14(rest)h 14(of)h 13(the)h 14(run.)h 177 785(The)s 14(\\)h 88(")h 13(comm)h -1(and)h 12(displa)h -1(ys)h 13(the)h 15(curren)h -1(t)h 15(default)h 14(options.)h 177 866(By)s 12(default,)h 12(F)h -3(unnelW)h -3(eb)h 11(do)h 1(es)h 13(not)h 12(ec)h -1(ho)h 13(the)h 12(comma)h -1(nds)h 11(that)h 12(it)h 11(pro)h 1(cesse)h 1(s)h 14(in)h 12(a)h 11(script.)h 19(The)h 12(\\)h 174(")h 177 916(comma)s -1(nd)h 12(turns)h 15(on)h 14(suc)h -1(h)h 14(tracing.)h 177 997(These)s 17(comm)h -1(ands)h 13(can)h 16(b)h 1(e)h 15(com)h -1(bined)h 14(to)h 15(streamline)h 14(the)h 16(use)h 16(of)h 15(F)h -3(unnelW)h -3(eb.)h 21(F)h -3(or)h 15(example,)h 13(y)h -1(ou)h 15(migh)h -1(t)h 177 1047(wish)s 14(to)h 14(create)h 15(a)h 14(script)h 14(called)h 267(to)h 14(pro)h 1(cess)h 16(a)h 13(whole)h 14(group)h 14(of)h 13(\014les.)h 177 1710(There)s 12(are)h 10(a)h 10(few)h 11(w)h -1(a)h -1(ys)h 10(in)h 9(whic)h -1(h)h 11(this)h 10(script)h 11(can)h 11(b)h 1(e)h 10(run.)h 18(The)h 10(simplest)h 10(is)h 10(simply)h 8(to)h 10(sp)h 1(ecify)h 11(it)h 10(in)h 10(the)h 11(\\)h 44(")h 177 1760(option)s 11(of)h 10(a)h 11(F)h -3(unnelW)h -3(eb)h 11(in)h -1(v)h -1(o)h 1(cation.)h 16(F)h -3(unnelW)h -3(eb)h 11(shellscripts)h 12(default)h 11(to)h 11(\\)h 410(")h 9(and)h 177 1810(\\)s 88(".)h 177 2074(The)s 14(second)h 15(alternativ)h -1(e)h 14(is)h 14(to)h 14(en)h -1(ter)h 15(in)h -1(teractiv)h -1(e)h 14(mo)h 1(de.)h 177 2339(F)s -3(rom)h 12(there,)h 15(y)h -1(ou)h 13(can)h 14(execute)h 16(the)h 15(script)h 14(using:)h 177 2604(In)s -1(teractiv)h -1(e)h 13(mo)h 1(de)h 11(could)h 12(b)h 1(e)h 13(v)h -1(ery)h 12(useful)h 12(to)h 12(those)h 13(with)h 12(m)h -1(ultipl)h -1(e-windo)h -1(w)h 10(w)h -1(orkstations.)h 17(The)h 13(user)h 13(could)h 177 2654(create)s 12(a)h 11(windo)h -1(w)h 9(con)h -1(taining)h 10(an)h 10(in)h -1(teractiv)h -1(e)h 11(session)h 12(of)h 10(F)h -3(unnelW)h -3(eb,)h 10(and)h 10(then)h 12(switc)h -1(h)h 11(b)h 1(et)h -1(w)h -1(een)h 12(windo)h -1(ws,)h 177 2704(editing,)s 13(and)h 14(executing)h 14(F)h -3(unnelW)h -3(eb)h 14(prop)h 1(er)h 15(and)h 13(other)h 15(programs.)h 177 2785(If)s 11(y)h -1(ou)h 10(\014nd)h 12(y)h -1(ourself)h 11(using)h 10(the)h 12(comm)h -1(and)h 9(in)h -1(terpreter)h 13(a)h 11(lot,)h 11(b)h 1(e)h 11(sure)h 12(to)h 11(read)h 12(ab)h 1(out)h 11(the)h 11(other)h 12(comma)h -1(nds)h 177 2835(that)s 14(are)h 14(a)h -1(v)h -2(ailable)h 12(in)h 13(Chapter)h 15(3.)h 1042 2940(48)s 14 2 1621 1760 r 49 @eop 50 @bop0 cmbx10.300 sf [<040100180600200800200800401000401000802000802000BC2F00FE3F80FE3F807E1F 807E1F803C0F00> 24 14 -5 28 25] 92 dc [<781E00FC3F00FC3F00FE3F80FE3F807A1E800200800200800401000401000802000802 00300C00401000> 24 14 -2 28 25] 34 dc cmbx10.432 sf [ 48 41 -3 40 53] 85 dc [<0000FFE000000007FFFC0000003FC07F8000007F001FC00001FC0007F00003F80003F8 0007F00001FC000FF00001FE001FE00000FF001FE00000FF003FC000007F803FC000007F 807FC000007FC07F8000003FC07F8000003FC07F8000003FC0FF8000003FE0FF8000003F E0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003FE0FF8000003F E0FF8000003FE0FF8000003FE07F8000003FC07FC000007FC07FC000007FC03FC000007F 803FC000007F801FE00000FF001FE00000FF000FF00001FE0007F00001FC0003F80003F8 0001FC0007F00000FF001FE000003FC07F8000000FFFFE00000000FFE00000> 48 41 -4 40 52] 79 dc [<003F800001FFF00007E0FC000FC07E001F803F001F803F003F001F803F001F807F001F C07F001FC07F001FC07F001FC0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001F E0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001FE0FF001F E07F001FC07F001FC07F001FC07F001FC03F001F803F001F801F803F001F803F000FC07E 0007E0FC0001FFF000003F8000> 32 39 -3 38 34] 48 dc cmti10.300 sf [<1E06270E470E4706870287020E020E021C041C041C041C0818083808181018200C4007 80> 16 18 -4 17 19] 118 dc [<00C001E001E001E001C003C003C003800380038003000700070006000600060004000C 000C00080008000000000000000000000030007800F0006000> 16 30 -4 29 13] 33 dc 50 @bop1 cmbx10.300 sf 295 284(De\014ne)s 12(an)h 13(\\alias":)h 295 460(Create)s 18(a)h 17(script)h 16(called)h 16(\\)h 220(":)h cmbx10.432 sf 177 42(2.9)s 70(Setting)h 21(Up)h 23(Default)h 22(Options)h 177 1219(2.10)s 70(F)h -6(unnelW)h -6(eb)h 23(and)h 23(Mak)h -2(e)h cmti10.300 sf 295 709(after)s 1733 2235(even)s 17(though)h 177 2285(it)s 14(may)h 15(b)h -2(e)h 14(identic)h -2(al)h 14(to)h 14(the)h 15(pr)h -2(evious)h 14(version!)h 1755 2609(exactly)s 1380 2659(never)s 15(write)h 13(the)h 15(pr)h -2(o)h -2(duct)h 14(\014le)h cmtt10.300 sf 1188 284(alias)s 791 460(fwinit.fws)s 543 510(fwinit.fws)s 693 609(set)s 1257 659(set)s 177 1053(alias)s 21(fw)h 21(fw)h 22(-L)h 21(-O)h 21(+T)h 358 1336(Make)s 177 1436(Make)s 715 1535(.fw)s 697(Make)h 1352 1661(.fw)s 796 1711(.fw)s 790 1760(.fw)s 1483 1860(.fw)s 667 1986(prog.fw)s 485(proc.spec)h 260 2035(prog.body)s 1468 2135(prog.fw)s 1459 2460(D)s 521 2510(+D)s 1113 2609(x.dat)s 694 2659(x.dat)s 244 2709(x.dat)s 893(Make)h cmr10.300 sf 177 159(If)s 14(y)h -1(ou)h 15(do)h 14(not)h 15(lik)h -1(e)h 14(F)h -3(unnelW)h -3(eb's)h 14(default)h 14(settings)h 16(for)h 14(its)h 15(comm)h -1(and)h 13(line)h 14(options,)h 14(there)h 16(are)h 15(a)h 14(n)h -1(um)h -1(b)h 1(er)h 177 209(of)s 13(w)h -1(a)h -1(ys)h 14(in)h 13(whic)h -1(h)h 14(y)h -1(ou)h 14(can)h 14(c)h -1(hange)h 14(them.)h 678 284(Use)s 12(y)h -1(our)h 12(op)h 1(erating)h 11(system)h 12(\\)h 110(")h 10(facilit)h -1(y)h 10(to)h 12(create)h 13(an)h 11(alias)h 11(for)h 295 334(F)s -3(unnelW)h -3(eb)h 13(con)h -1(taining)h 12(the)h 13(desired)h 15(options.)h 17(F)h -3(unnelW)h -3(eb)h 12(pro)h 1(cesse)h 1(s)h 15(options)h 13(from)h 11(left)h 13(to)h 295 384(righ)s -1(t,)h 13(so)h 14(y)h -1(ou)h 14(can)h 14(o)h -1(v)h -1(erride)h 14(these)h 15(defaults)h 14(later)h 14(if)h 13(y)h -1(ou)h 14(wish.)h 1068 460(When)s 16(F)h -3(unnelW)h -3(eb)h 15(starts)h 16(up,)h 15(it)h 15(executes)h 18(a)h 295 510(script)s 12(called)h 10(\\)h 220(")h 9(if)h 10(suc)h -1(h)h 11(a)h 11(script)h 11(exists)h 12(in)h 10(the)h 12(curren)h -1(t)h 12(directory)h -3(.)h 17(Y)h -3(ou)h 11(can)h 11(use)h 295 560(this)s 14(fact)h 13(to)h 14(set)h 14(options)h 13(b)h 1(efore)h 15(the)h 14(run)h 14(of)h 13(F)h -3(unnelW)h -3(eb)h 13(prop)h 1(er)h 14(b)h -1(y)h 13(creating)h 14(suc)h -1(h)h 15(a)h 13(script)h 295 609(and)s 15(placing)h 13(a)h 15(single)h 14(\\)h 66(")h 13(command)h 12(in)h 14(it)h 15(con)h -1(taining)h 13(the)h 15(desired)h 16(options.)h 20(The)h 15(main)h 295 659(trouble)s 14(with)h 13(this)h 14(approac)h -1(h)h 13(is)h 13(that)h 14(the)h 14(options)h 13(in)h 13(the)h 93(comm)h -1(and)h 11(will)h 12(b)h 1(e)h 14(pro)h 1(cesse)h 1(d)h 391 709(the)s 12(comma)h -1(nd)h 10(line)h 11(options,)h 11(whic)h -1(h)h 12(means)h 10(that)h 12(y)h -1(ou)h 11(w)h -1(on't)h 11(b)h 1(e)h 12(able)h 11(to)h 12(o)h -1(v)h -1(erride)h 11(them)h 295 759(on)s 14(the)h 14(command)h 12(line.)h 177 835(F)s -3(or)h 13(example,)h 12(y)h -1(ou)h 13(migh)h -1(t)h 12(b)h 1(e)h 14(in)h -1(v)h -1(olv)h -1(ed)h 12(more)h 13(with)h 13(presen)h -1(ting)h 14(programs)h 13(than)h 13(with)h 13(running)h 14(them,)h 12(and)h 177 884(w)s -1(an)h -1(t)h 11(F)h -3(unnelW)h -3(eb)h 11(to)h 12(generate)h 13(a)h 11(do)h 1(cumen)h -1(tation)h 10(\014le)h 12(b)h -1(y)h 11(default,)h 11(but)h 12(not)h 12(to)h 11(pro)h 1(duce)h 13(listing)h 10(or)h 12(pro)h 1(duct)h 177 934(\014les)s 14(b)h -1(y)h 14(default.)h 18(In)h 14(Unix)h 13(y)h -1(ou)h 14(could)h 13(do)h 14(this)h 14(with:)h 177 1336(The)s 11(Unix)h 108(program)h 9(allo)h -1(ws)h 10(a)h 10(set)h 12(of)h 10(dep)h 1(endencies)h 13(b)h 1(et)h -1(w)h -1(een)h 12(a)h 10(set)h 12(of)h 10(\014les)h 11(to)h 11(b)h 1(e)h 11(describ)h 1(ed,)h 13(and)h 10(then)h 177 1386(uses)s 16(these)h 15(dep)h 1(endenc)h 1(ies)h 16(to)h 14(con)h -1(trol)h 14(the)h 15(w)h -1(a)h -1(y)h 14(in)h 14(whic)h -1(h)h 14(the)h 15(\014les)h 15(are)h 14(created)h 16(and)h 14(up)h 1(dated.)h 20(T)h -1(ypically)h -3(,)h 278 1436(is)s 13(used)h 15(to)h 13(con)h -1(trol)h 13(the)h 15(pro)h 1(cess)h 15(of)h 13(transforming)h 12(a)h 13(collection)h 13(of)h 13(source)h 15(co)h 1(de)h 14(\014les)h 14(to)h 13(one)h 14(or)h 14(more)h 177 1485(executable)s 17(\014les.)h 24(As)h 16(the)h 16(use)h 16(of)h 15(F)h -3(unnelW)h -3(eb)h 15(implies)h 14(an)h 15(extra)h 16(stage)h 17(to)h 15(this)h 16(pro)h 1(cess,)h 17(it)h 15(is)h 16(natural)h 15(to)h 177 1535(include)s 13(the)h 12(transformation)h 11(of)h 89(\014les)h 13(to)h 12(source)h 13(co)h 1(de)h 13(\014les)h 13(as)h 12(part)h 13(of)h 11(the)h 113(pro)h 1(cess.)h 19(This)h 12(is)h 12(easy)h 177 1585(to)s 14(do,)h 13(but)h 14(the)h 15(user)h 15(should)h 13(b)h 1(e)h 15(a)h -1(w)h -1(are)h 14(of)h 13(one)h 14(asp)h 1(ect)h 15(of)h 13(F)h -3(unnelW)h -3(eb)h 14(whic)h -1(h)h 14(can)h 14(cause)h 15(problems.)h 177 1661(It)s 12(is)h 12(often)h 13(useful,)h 12(when)h 12(using)h 12(F)h -3(unnelW)h -3(eb,)h 12(to)h 12(create)h 13(a)h 12(F)h -3(unnelW)h -3(eb)h 89(\014le)h 13(that)h 12(generates)h 14(more)h 11(than)h 177 1711(one)s 14(pro)h 1(duct)h 14(\014le.)h 18(That)h 13(is,)h 13(a)h 13(single)h 92(\014le)h 14(ma)h -1(y)h 11(ha)h -1(v)h -1(e)h 13(man)h -1(y)h 12(macro)h 12(de\014nitions)h 13(connected)h 16(to)h 13(pro)h 1(duct)h 177 1760(\014les)s 13(so)h 13(that)h 12(when)h 13(the)h 13(F)h -3(unnelW)h -3(eb)h 90(\014le)h 12(is)h 13(pro)h 1(cessed)h 14(b)h -1(y)h 13(F)h -3(unnelW)h -3(eb,)h 11(sev)h -1(eral)h 13(\014les)h 13(are)h 13(created.)h 19(F)h -3(or)h 177 1810(example,)s 16(this)h 16(facilit)h -1(y)h 15(has)h 17(b)h 1(een)h 17(used)h 18(to)h 16(great)h 17(e\013ect)h 18(to)h 17(place)h 16(the)h 17(description)h 18(of)h 16(an)h 16(Ada)h 16(pac)h -1(k)h -2(age's)h 177 1860(pac)s -1(k)h -2(age)h 14(sp)h 1(eci\014cation)h 14(\014le)h 14(and)h 14(pac)h -1(k)h -2(age)h 13(b)h 1(o)h 1(dy)h 14(\014le)h 14(in)h 14(the)h 14(same)h 13(F)h -3(unnelW)h -3(eb)h 93(\014le.)h 177 1936(The)s 17(use)h 18(of)h 16(m)h -1(ultipl)h -1(e)h 15(pro)h 1(duct)h 18(\014les,)h 17(ho)h -1(w)h -1(ev)h -1(er,)h 18(pro)h -1(v)h -1(ok)h -1(es)h 16(a)h 17(problem)h 15(with)h 16(dep)h 1(endenc)h 1(ies.)h 28(Supp)h 1(ose)h 18(for)h 177 1986(example)s 9(that)h 10(a)h 10(F)h -3(unnelW)h -3(eb)h 172(pro)h 1(duces)h 12(t)h -1(w)h -1(o)h 9(pro)h 1(duct)h 12(\014les)h 216(\(a)h 10(pac)h -1(k)h -2(age)h 10(sp)h 1(eci\014cation\))h 177 2035(and)s 229(\(a)h 16(pac)h -1(k)h -2(age)h 15(b)h 1(o)h 1(dy\).)h 26(If)h 16(the)h 16(pac)h -1(k)h -2(age)h 16(is)h 16(accesse)h 1(d)h 18(in)h 16(the)h 16(w)h -1(a)h -1(y)h 16(that)h 16(pac)h -1(k)h -2(ages)h 16(normally)h 177 2085(are,)s 19(it)h 17(will)h 16(b)h 1(e)h 18(quite)h 17(commo)h -1(n)h 16(for)h 17(the)h 18(programm)h -1(er)h 16(to)h 18(w)h -1(an)h -1(t)h 17(to)h 17(mo)h 1(dify)h 15(the)h 18(pac)h -1(k)h -2(age)h 18(b)h 1(o)h 1(dy)h 17(without)h 177 2135(mo)s 1(difyi)h -1(ng)h 13(the)h 15(program)h 13(sp)h 1(eci\014cation.)h 20(So)h 14(the)h 16(programm)h -1(er)h 13(will)h 13(edit)h 14(the)h 183(\014le)h 14(to)h 14(c)h -1(hange)h 15(the)h 177 2185(pac)s -1(k)h -2(age)h 11(b)h 1(o)h 1(dy)h -3(.)h 17(The)h 12(result)h 12(of)h 10(running)h 11(this)h 12(through)h 11(F)h -3(unnelW)h -3(eb)h 11(will)h 10(b)h 1(e)h 12(the)h 12(desired)h 12(new)h 12(pac)h -1(k)h -2(age)h 11(b)h 1(o)h 1(dy)h 177 2235(\014le.)s 23(Ho)h -1(w)h -1(ev)h -1(er,)h 16(F)h -3(unnelW)h -3(eb)h 15(will)h 14(also)h 15(pro)h 1(duce)h 17(a)h 15(new)h 16(pac)h -1(k)h -2(age)h 15(sp)h 1(eci\014cation)h 16(pro)h 1(duct)h 17(\014le)h 965 2285(The)s 14(result)h 14(is)h 13(that)h 13(the)h 14(newly)h 13(created)h 15(\(with)h 13(a)h 13(recen)h -1(t)h 15(\014le)h 177 2334(date\))s 16(sp)h 1(eci\014cation)h 17(pac)h -1(k)h -2(age)h 15(\014le)h 15(could)h 16(pro)h -1(v)h -1(ok)h -1(e)h 15(a)h 15(h)h -1(uge)h 16(remak)h -1(e)h 15(of)h 15(m)h -1(uc)h -1(h)h 14(of)h 15(the)h 17(program)h 14(in)h 15(whic)h -1(h)h 15(it)h 177 2384(resides.)s 177 2460(T)s -3(o)h 18(solv)h -1(e)h 19(the)h 19(problem,)h 18(F)h -3(unnelW)h -3(eb)h 19(includes)h 19(a)h 19(comm)h -1(and)h 17(line)h 18(option)h 18(\()h 41(for)h 18(Delete\),)h 21(whic)h -1(h)h 18(when)h 177 2510(turned)s 17(on)h 16(\(using)h 16(\\)h 44("\))h 16(causes)h 17(F)h -3(unnelW)h -3(eb)h 16(to)h 16(suppress)h 18(pro)h 1(duct)h 17(and)h 16(do)h 1(cumen)h -1(tation)h 15(\014les)h 16(that)h 16(are)h 177 2560(iden)s -1(tical)h 12(to)h 13(the)h 13(previously)h 12(existing)h 13(v)h -1(ersions)h 13(of)h 12(the)h 13(same)h 12(\014les.)h 18(F)h -3(or)h 12(example,)h 11(if,)h 12(during)h 12(a)h 12(F)h -3(unnelW)h -3(eb)h 177 2609(run,)s 13(a)h 13(macro)h 11(w)h -1(as)h 13(connected)h 15(to)h 13(a)h 12(pro)h 1(duct)h 14(\014le)h 13(called)h 122(,)h 12(and)h 13(the)h 13(macro)h 12(expanded)h 13(to)h 149(the)h 177 2659(same)s 13(text)h 14(as)h 13(is)h 14(con)h -1(tained)h 13(in)h 135(then)h 14(F)h -3(unnelW)h -3(eb)h 13(w)h -1(ould)h 13(simply)h 497(,)h 13(the)h 177 2709(\014le)s 137(w)h -1(ould)h 13(b)h 1(e)h 14(un)h -1(touc)h -1(hed)h 15(and,)h 13(as)h 14(a)h 14(result,)h 14(no)h 14(further)h 115(propagations)h 14(w)h -1(ould)h 13(tak)h -1(e)h 14(place.)h 177 2785(F)s -3(unnelW)h -3(eb)h 12(implem)h -1(en)h -1(ts)h 12(this)h 13(feature)h 13(b)h -1(y)h 13(writing)h 12(eac)h -1(h)h 13(pro)h 1(duct)h 14(\014le)h 13(to)h 12(a)h 13(temp)h 1(orary)h 12(\014le)h 13(with)h 12(a)h 13(temp)h 1(o-)h 177 2835(rary)s 16(\014le)h 15(name.)h 21(It)h 15(then)h 16(compares)h 15(the)h 16(temp)h 1(orary)h 14(\014le)h 15(with)h 15(the)h 16(target)h 16(\014le.)h 22(If)h 15(the)h 16(t)h -1(w)h -1(o)h 14(are)h 16(iden)h -1(tical,)h 1042 2940(49)s 50 @eop 51 @bop0 cmbx10.300 sf [<3FFF803C1F00303F00303E00607C0060FC0060F80001F00003F00007E00007C1800F81 801F81801F03803E03007E07007C0F00FFFF00> 24 18 -1 17 21] 122 dc cmr8.300 sf [ 24 23 -1 22 26] 82 dc [ 24 23 -1 22 24] 80 dc 51 @bop1 cmr6.300 sf 223 2744(3)s cmr7.300 sf 952 776(3)s cmtt10.300 sf 365 165(D)s 1215(Make)h cmbx10.432 sf 177 376(2.11)s 70(The)h 23(Dangers)h 23(of)h 23(F)h -6(unnelW)h -6(eb)h cmbx10.300 sf 295 865(Spaghetti)s 15(organizati)h -1(on:)h 295 1188(Boring)s 16(organizati)h -1(on:)h 295 1561(P)s -1(o)h 1(or)h 15(random)h 14(access:)h 295 2083(T)s -4(o)h 1(o-in)h -1(terde)h -1(p)h 1(end)h -1(en)h -2(t)h 16(do)h 1(cumen)h -1(t)h -1(ati)h -1(on:)h cmr8.300 sf 241 2756(The)s 11(fact)h 11(that)h 11(these)h 11(faults)h 10(are)h 11(listed)h 11(here)h 11(do)h 1(es)h 10(not)h 11(mean)h 11(that)h 11(the)h 11(author)h 10(has)h 11(elimina)h -1(ted)h 9(them)h 11(in)h 11(his)h 12(o)h -1(wn)h 11(w)h -1(ork.)h 177 2795(Rather,)s 8(it)h 8(is)h 8(mainly)h 7(the)h 8(author')h -1(s)h 7(o)h -1(wn)h 8(mistak)h -1(es)h 7(that)h 7(ha)h -1(v)h -1(e)h 8(resulted)h 6(in)h 8(this)h 8(list)h 8(b)h 1(eing)h 7(compile)h -1(d.)h 13(The)h 8(author)h 7(immedi)h -1(ate)h -1(ly)h 177 2835(confesses)s 10(to)h 11(sev)h -1(eral)h 10(of)h 11(the)h 11(faults)h 10(listed)h 10(here,)h 11(most)h 10(notably)h 9(that)h 11(of)h 11(P)h -1(a)h -1(vlo)h -1(v)h 10(do)h 1(cumen)h -2(tat)h -1(ion)h -1(.)h cmr10.300 sf 177 42(it)s 18(deletes)h 19(the)h 18(temp)h 1(orary)h 17(\014le.)h 30(If)h 17(the)h 18(t)h -1(w)h -1(o)h 17(are)h 19(di\013eren)h -1(t)h 18(it)h 18(deletes)h 19(the)h 18(target)h 18(\014le)h 18(and)h 18(renames)h 17(the)h 177 91(temp)s 1(orary)h 13(\014le)h 14(to)h 14(the)h 14(target)h 15(\014le.)h 177 165(Use)s 11(of)h 10(the)h 43(facilit)h -1(y)h 8(means)h 10(that)h 10(the)h 11(programm)h -1(er)h 9(need)h 11(not)h 10(b)h 1(e)h 11(punished)h 11(\(b)h -1(y)h 10(extra)h 108(propagations\))h 177 215(for)s 14(describing)h 14(more)h 13(than)h 14(one)h 14(pro)h 1(duct)h 15(\014le)h 14(in)h 13(the)h 15(same)h 13(F)h -3(unnelW)h -3(eb)h 13(\014le.)h 177 492(Lik)s -1(e)h 15(man)h -1(y)h 13(to)h 1(ols)h 15(that)h 15(are)h 16(general)h 15(and)h 15(\015exible,)h 15(F)h -3(unnelW)h -3(eb)h 15(can)h 15(b)h 1(e)h 16(used)h 16(in)h 15(a)h 15(v)h -2(ariet)h -1(y)h 14(of)h 15(w)h -1(a)h -1(ys,)h 15(b)h 1(oth)h 177 541(go)s 1(o)h 1(d)h 16(and)h 17(bad.)h 26(One)h 18(of)h 16(the)h 17(original)h 15(app)h 1(eals)h 17(of)h 16(the)h 17(literate)h 17(approac)h -1(h)h 17(to)h 16(programm)h -1(ing)h 14(for)h 17(Kn)h -1(uth,)h 177 591(the)s 18(in)h -1(v)h -1(en)h -1(tor)h 17(of)h 16(literate)h 18(programm)h -1(i)h -1(ng,)h 16(w)h -1(as)h 17(that)h 17(it)h 17(allo)h -1(ws)h 16(the)h 18(programm)h -1(er)h 16(to)h 17(describ)h 1(e)h 19(the)h 17(target)h 177 641(program)s 12(b)h 1(ottom)h 12(up,)h 13(top)h 13(do)h -1(wn,)h 13(size)h 14(to)h 13(side,)h 13(or)h 14(c)h -1(haotically)h 12(if)h 12(desired.)h 19(The)h 14(\015exibilit)h -1(y)h 12(that)h 13(this)h 14(st)h -1(yle)h 177 691(of)s 15(programm)h -1(i)h -1(ng)h 13(lea)h -1(v)h -1(es)h 15(m)h -1(uc)h -1(h)h 14(ro)h 1(om)h 13(for)h 15(bad)h 15(do)h 1(cumen)h -1(tation)h 13(as)h 15(w)h -1(ell)h 15(as)h 15(go)h 1(o)h 1(d)h 14(do)h 1(cumen)h -1(tation.)h 20(Y)h -3(ears)h 177 741(of)s 16(exp)h 1(erience)h 19(with)h 17(F)h -3(unnelW)h -3(eb)h 16(has)h 17(rev)h -1(ealed)h 17(the)h 18(follo)h -1(wi)h -1(ng)h 15(st)h -1(ylistic)h 16(pitfalls)h 16(whic)h -1(h)h 16(the)h 18(exp)h 1(erienced)h 177 791(F)s -3(unnelW)h -3(eb)h 14(user)h 15(should)h 13(tak)h -1(e)h 14(care)h 15(to)h 14(a)h -1(v)h -1(oid.)h 803 865(By)s 16(far)h 15(the)h 16(w)h -1(orst)h 16(problem)h 14(that)h 15(arises)h 16(in)h 15(connection)h 16(with)h 295 914(the)s 20(literate)h 18(st)h -1(yle)h 19(o)h 1(ccurs)h 20(where)h 20(the)h 20(programm)h -1(er)h 17(has)h 19(used)h 19(the)h 20(literate)h 19(to)h 1(ol)h 18(to)h 18(com-)h 295 964(pletely)s 17(scram)h -1(ble)h 15(the)h 17(program)h 14(so)h 17(that)h 16(the)h 17(program)h 14(is)h 16(describ)h 1(ed)h 18(and)h 16(la)h -1(y)h -1(ed)h 16(out)h 16(in)h 16(an)h 295 1014(unordered,)s 19(undisciplined)h 17(\\stream)h 16(of)h 16(consciousness".)h 29(In)h 17(suc)h -1(h)h 18(cases)h 18(the)h 18(programm)h -1(er)h 295 1064(ma)s -1(y)h 11(b)h 1(e)h 13(using)h 13(the)h 13(literate)h 13(st)h -1(yle)h 12(as)h 13(a)h 12(crutc)h -1(h)h 14(to)h 13(a)h -1(v)h -1(oid)h 11(ha)h -1(ving)h 11(to)h 13(think)h 12(ab)h 1(out)h 13(structuring)h 295 1114(the)s 15(presen)h -1(tation.)h 745 1188(A)s -1(t)h 15(the)h 16(other)h 16(extreme,)h 15(a)h 15(program)h 14(ma)h -1(y)h 13(b)h 1(e)h 16(organized)h 15(in)h 15(suc)h -1(h)h 295 1238(a)s 16(strict)h 16(w)h -1(a)h -1(y)h 16(that)h 15(it)h 16(is)h 16(essen)h -1(tially)h 15(laid)h 15(out)h 16(in)h 15(the)h 17(order)h 16(most)h 15(\\desired")h 16(b)h -1(y)h 16(the)h 16(target)h 295 1287(programm)s -1(ing)h 13(language.)h 21(F)h -3(or)h 15(example,)h 14(eac)h -1(h)h 16(macro)h 14(migh)h -1(t)h 13(con)h -1(tain)h 15(a)h 15(single)h 15(pro)h 1(cedure,)h 295 1337(with)s 15(all)h 13(the)h 15(macros)h 14(b)h 1(eing)h 15(called)h 14(b)h -1(y)h 15(a)h 14(macro)h 14(connected)h 16(to)h 15(a)h 14(\014le)h 15(at)h 14(the)h 16(top.)h 20(In)h 15(man)h -1(y)h 295 1387(cases)s 20(a)h 19(b)h 1(oring)h 18(structure)h 21(ma)h -1(y)h 17(b)h 1(e)h 19(en)h -1(tirely)h 19(appropriate,)h 20(but)h 19(the)h 19(programm)h -1(er)h 18(should)h 295 1437(b)s 1(e)h 18(w)h -1(arned)h 17(that)h 16(it)h 17(is)h 16(easy)h 17(to)h 17(slip)h 16(in)h -1(to)h 16(suc)h -1(h)h 18(a)h 16(normativ)h -1(e)h 15(st)h -1(yle,)h 17(largely)h 16(forgetting)h 16(the)h 295 1487(descriptiv)s -1(e)h 15(structural)h 15(p)h 1(o)h -1(w)h -1(er)h 14(that)h 14(F)h -3(unnelW)h -3(eb)h 14(pro)h -1(vides.)h 742 1561(Using)s 14(F)h -3(unnelW)h -3(eb,)h 12(it)h 13(is)h 14(quite)h 13(p)h 1(ossible)h 14(to)h 13(write)h 14(programs)h 12(lik)h -1(e)h 295 1611(no)s -1(v)h -1(els)h 15(|)h 14(to)h 14(b)h 1(e)h 15(read)h 15(from)h 13(co)h -1(v)h -1(er)h 15(to)h 14(co)h -1(v)h -1(er.)h 21(Sometim)h -1(es)h 14(the)h 15(story)h 15(is)h 14(v)h -1(ery)h 15(exciting,)h 14(with)h 295 1660(data)s 16(structures)h 19(maki)h -1(ng)h 14(dashing)h 16(triumphs)h 15(and)h 16(optimized)h 15(co)h 1(de)h 17(bringing)h 15(the)h 16(story)h 17(to)h 295 1710(a)s 14(satisfying)h 12(conclusion.)h 18(These)h 15(programs)h 13(can)h 13(b)h 1(e)h 15(w)h -1(orks)h 13(of)h 13(art.)h 18(Unfortunately)h -3(,)h 13(without)h 295 1760(careful)s 11(construction,)h 12(suc)h -1(h)h 11(\\no)h -1(v)h -1(el-programs")h 8(can)h 11(b)h 1(ecome)h 10(v)h -1(ery)h 11(hard)h 11(to)h 10(access)h 13(randomly)h 295 1810(b)s -1(y)h 18(\(sa)h -1(y\))h 19(a)h 18(main)h -1(tenance)h 17(programmer)h 17(who)h 18(wishes)h 19(only)h 17(to)h 19(div)h -1(e)h 18(in)h 18(and)h 18(\014x)h 18(a)h 18(sp)h 1(eci\014c)h 295 1860(problem.)s 17(If)h 14(the)h 14(en)h -1(tire)h 15(program)h 12(is)h 14(scram)h -1(bled)h 13(for)h 13(sequen)h -1(tial)h 14(exp)h 1(osition,)h 13(it)h 14(can)h 14(b)h 1(e)h 15(hard)h 295 1909(to)s 14(\014nd)h 15(the)h 14(parts)h 15(relating)h 14(to)h 14(a)h 14(single)h 14(function.)h 18(Someho)h -1(w)h 13(a)h 14(balance)h 14(m)h -1(ust)h 13(b)h 1(e)h 15(struc)h -1(k)h 15(in)h 295 1959(the)s 16(do)h 1(cumen)h -1(t)h 15(b)h 1(et)h -1(w)h -1(een)h 16(the)h 16(needs)h 17(of)h 14(the)h 16(sequen)h -1(tial)h 15(and)h 15(of)h 15(the)h 16(random-access)h 15(reader.)h 295 2009(This)s 14(balance)h 14(will)h 12(dep)h 1(end)h 16(on)h 13(the)h 15(in)h -1(tended)h 14(use)h 15(of)h 13(the)h 15(program.)h 1068 2083(Sometim)s -1(es,)h 14(when)h 16(editing)h 15(a)h 15(program)h 14(writ-)h 295 2133(ten)s 17(using)h 17(F)h -3(unnelW)h -3(eb,)h 16(one)h 17(kno)h -1(ws)h 16(ho)h -1(w)h 16(to)h 16(mo)h 1(dify)h 15(the)h 17(program,)h 15(but)h 16(one)h 17(is)h 17(unsure)h 17(of)h 295 2183(ho)s -1(w)h 16(to)h 17(up)h 1(date)h 17(the)h 17(surrounding)h 16(do)h 1(cumen)h -1(tation!)h 25(The)h 16(do)h 1(cumen)h -1(tation)h 16(ma)h -1(y)h 14(b)h 1(e)h 17(w)h -1(o)h -1(v)h -1(en)h 295 2233(in)s -1(to)h 15(suc)h -1(h)h 15(a)h 15(net)h -1(w)h -1(ork)h 16(of)h 14(facts)h 15(that)h 16(it)h 14(seems)h 16(that)h 15(c)h -1(hanging)h 14(a)h 15(small)h 13(piece)h 15(of)h 15(co)h 1(de)h 16(could)h 295 2282(in)s -1(v)h -2(alidate)h 16(man)h -1(y)h 15(pieces)h 19(of)h 16(do)h 1(cumen)h -1(tation)h 16(scattered)h 20(throughout)h 17(the)h 18(do)h 1(cumen)h -1(t.)h 27(The)h 295 2332(do)s 1(cumen)h -1(tation)h 12(b)h 1(ecomes)h 13(a)h 13(big)h 13(tar)h 13(pit)h 13(in)h 12(whic)h -1(h)h 13(mo)h -1(v)h -1(em)h -1(en)h -1(t)h 12(is)h 13(imp)h 1(ossible.)h 16(F)h -3(or)h 12(example,)h 295 2382(if)s 18(y)h -1(ou)h 18(ha)h -1(v)h -1(e)h 18(talk)h -1(ed)h 18(ab)h 1(out)h 19(a)h 18(particular)h 18(data)h 18(structure)h 21(in)h -1(v)h -2(arian)h -1(t)h 17(throughout)h 18(a)h 18(do)h 1(cu-)h 295 2432(men)s -1(t,)h 17(c)h -1(hanging)h 16(that)h 17(in)h -1(v)h -2(arian)h -1(t)h 15(in)h 17(a)h 16(small)h 15(w)h -1(a)h -1(y)h 16(could)h 17(mean)h 16(ha)h -1(ving)h 16(to)h 17(up)h 1(date)h 17(all)h 16(the)h 295 2482(do)s 1(cumen)h -1(tation)h 18(without)h 18(touc)h -1(hing)h 19(m)h -1(uc)h -1(h)h 18(co)h 1(de.)h 33(In)h 19(suc)h -1(h)h 20(cases,)h 21(the)h 19(do)h 1(cumen)h -1(tation)h 18(is)h 295 2531(to)s 1(o)h 14(in)h -1(terdep)h 1(enden)h -1(t.)h 21(This)h 14(could)h 14(b)h 1(e)h 15(symptom)h -1(atic)h 12(of)h 14(an)h 13(excessibly)h 16(in)h -1(terconnected)h 16(pro-)h 295 2581(gram,)s 16(or)h 16(of)h 16(an)h 17(excessiv)h -1(ely)h 18(v)h -1(erb)h 1(ose)h 18(or)h 16(redundan)h -1(t)h 18(do)h 1(cumen)h -1(ting)h 15(st)h -1(yle.)h 27(In)h 17(an)h -1(y)h 16(case,)h 18(a)h 295 2631(balance)s 13(m)h -1(ust)h 12(b)h 1(e)h 13(struc)h -1(k)h 14(b)h 1(et)h -1(w)h -1(een)h 15(the)h 13(con)h -1(v)h -1(ersational)h 12(st)h -1(yle)h 13(that)h 13(encourages)h 15(redundancy)h 295 2681(\(b)s -1(y)h 11(men)h -1(tioning)h 8(things)h 11(man)h -1(y)h 9(times\))h 10(and)h 10(the)h 12(normal)h -1(ized)h 10(database)h 11(approac)h -1(h)h 10(where)h 12(eac)h -1(h)h 1042 2940(50)s 709 2 177 2717 r 51 @eop 52 @bop0 cmr8.300 sf [ 24 23 -1 22 26] 78 dc [<60F0F06000000000000060F0F060> 8 14 -3 13 10] 58 dc [<0F8030E040708030C038E0384038003800700070006000C00180030006000C08080810 183FF07FF0FFF0> 16 21 -2 20 18] 50 dc [<03000700FF000700070007000700070007000700070007000700070007000700070007 00070007007FF0> 16 21 -2 20 18] 49 dc [<01F00608080C181C301C70006000E000E3E0EC30F018F00CE00EE00EE00E600E600E30 0C3018183007C0> 16 21 -1 20 18] 54 dc 52 @bop1 cmr7.300 sf 1067 448(4)s cmr6.300 sf 223 2823(4)s cmti10.300 sf 1202 314(no)s cmr8.300 sf 241 2835(Note:)s 15(This)h 11(is)h 12(not)h 10(a)h 12(criticism)h 9(of)h 11(2167A,)h 11(only)h 10(of)h 12(the)h 10(w)h -1(a)h -1(y)h 12(it)h 11(is)h 12(sometim)h -1(es)h 10(used.)h cmbx10.300 sf 295 164(P)s -1(a)h -1(vlo)h -1(v)h 12(do)h 1(cumen)h -1(tati)h -1(on:)h 1317 513([Strunk79])s 295 885(Dupli)s -1(cate)h 11(do)h 1(cumen)h -1(tati)h -1(on)h -1(:)h 295 2150(Ov)s -1(erdo)h 1(cumen)h -1(t)h -1(in)h -1(g:)h 1645 2722([Gries81])s cmtt10.300 sf 1787 264(@C)s 177 1443(@A)s 22(Here)h 21(is)h 21(the)h 21(header)h 21(comment)h 20(for)h 21(the)h 21(list)h 21(package)h 21(specificati)h -1(on.)h 177 1493(The)s 21(reader)h 21(should)h 20(read)h 21(these)h 21(comments)h 20(carefully)h 20(as)h 22(they)h 21(define)h 20(a)h 22(list.)h 177 1542(There)s 21(is)h 21(no)h 22(need)h 21(to)h 21(duplicate)h 20(the)h 21(comments)h 20(in)h 22(this)h 21(text.)h 177 1642(@$@==@{)h -1(@-)h 177 1692(--)s 22(LIST)h 21(PACKAGE)h 177 1742(--)s 22(==========)h -1(==)h 177 1792(--)s 22(*)h 21(A)h 22(LIST)h 21(consists)h 20(of)h 21(zero)h 21(or)h 22(more)h 21(ITEMS.)h 177 1841(--)s 22(*)h 21(The)h 21(items)h 21(are)h 21(numbered)h 20(1)h 22(to)h 21(N)h 22(where)h 21(N)h 21(is)h 22(the)h 21(number)h 20(of)h 22(items)h 21(in)h 21(the)h 21(list.)h 177 1891(--)s 22(*)h 21(If)h 22(the)h 21(list)h 21(is)h 21(non-empty,)h 20(item)h 21(1)h 21(is)h 22(called)h 20(the)h 21(HEAD)h 21(of)h 22(the)h 21(list.)h 177 1941(--)s 22(*)h 21(If)h 22(the)h 21(list)h 21(is)h 21(non-empty,)h 20(item)h 21(N)h 21(is)h 22(called)h 20(the)h 21(TAIL)h 21(of)h 22(the)h 21(list.)h 177 1991(--)s 22(...)h 177 2041(@})s cmr10.300 sf 295 42(fact)s 17(is)h 16(giv)h -1(en)h 16(at)h 16(only)h 16(one)h 16(p)h 1(oin)h -1(t,)h 16(and)h 17(the)h 17(reader)h 17(is)h 17(left)h 16(to)h 16(\014gure)h 17(out)h 16(the)h 17(implicatio)h -1(ns)h 295 91(throughout)s 14(the)h 15(do)h 1(cumen)h -1(t.)h 789 164(By)s 13(placing)h 11(so)h 12(m)h -1(uc)h -1(h)h 11(emphasis)h 11(on)h 12(the)h 12(do)h 1(cumen)h -1(tation,)h 11(F)h -3(un-)h 295 214(nelW)s -3(eb)h 16(naturally)h 16(pro)h -1(vides)h 17(slots)h 16(where)h 18(do)h 1(cumen)h -1(tation)h 15(\\should")h 16(go.)h 25(F)h -3(or)h 17(example,)h 15(a)h 295 264(F)s -3(unnelW)h -3(eb)h 16(user)h 18(ma)h -1(y)h 15(feel)h 16(that)h 17(there)h 18(ma)h -1(y)h 14(b)h 1(e)h 17(a)h 17(rather)h 17(unpleasan)h -1(t)h 17(gap)h 16(b)h 1(et)h -1(w)h -1(een)h 18(a)h 295 314(mark)s -1(er)h 16(and)h 17(the)h 17(follo)h -1(wing)h 14(macro.)h 25(In)h 17(man)h -1(y)h 15(cases)h 79(commen)h -1(tary)h 15(is)h 16(needed)h 18(and)h 17(the)h 295 363(zone)s 13(is)h 12(b)h 1(etter)h 14(left)h 12(blank)h 12(rather)h 13(than)h 13(b)h 1(eing)h 12(\014lled)h 12(with)h 12(the)h 13(kind)h 11(of)h 12(uninformativ)h -2(e)h 11(w)h -1(a\017e)h 295 413(one)s 17(often)h 18(\014nds)h 17(\014lling)h 15(the)h 18(slots)h 17(of)h 17(structured)h 19(do)h 1(cumen)h -1(tation)h 16(written)h 17(according)h 17(to)h 17(a)h 295 463(mili)s -1(tary)h 11(standards)h 14(\(e.g.)h 12(MIL-STD-2167A\).)h 30(The)h 13(lesson)h 14(is)h 12(to)h 13(add)h 13(do)h 1(cumen)h -1(tation)h 11(only)h 295 513(when)s 12(it)h 10(adds)h 12(something.)h 15(The)h 12(lesson)h 11(in)h 11(Strunk)h 11(and)h 11(White)h 228(\(p.)h 11(23\))h 10(holds)h 11(for)h 295 563(program)s 13(do)h 1(cumen)h -1(tation)h 12(as)h 14(it)h 14(do)h 1(es)h 14(for)h 14(other)h 14(writing:)h 18(\\Vigorous)h 13(writing)h 13(is)h 14(concise.)h 19(A)h 295 613(sen)s -1(tence)h 14(should)h 11(con)h -1(tain)h 11(no)h 10(unnecess)h 1(ary)h 13(w)h -1(ords,)h 11(a)h 11(paragraph)h 11(no)h 11(unnecessary)h 14(sen)h -1(tences,)h 295 662(for)s 15(the)h 15(same)h 14(reason)h 15(that)h 14(a)h 15(dra)h -1(wing)h 14(should)h 14(ha)h -1(v)h -1(e)h 14(no)h 15(unnecessary)h 17(lines)h 14(and)h 15(a)h 14(mac)h -1(hine)h 295 712(no)s 14(unnecessary)h 16(parts.)h 19(This)h 13(requires)h 16(not)h 13(that)h 14(the)h 15(writer)h 14(mak)h -1(e)h 13(all)h 12(his)h 14(sen)h -1(tences)h 17(short,)h 295 762(or)s 14(that)h 13(he)h 14(a)h -1(v)h -1(oid)h 13(all)h 12(detail)h 13(and)h 13(treat)h 15(his)h 13(sub)h 2(jects)h 16(only)h 12(in)h 13(outline,)h 13(but)h 14(that)h 13(ev)h -1(ery)h 15(w)h -1(ord)h 295 812(tell.".)s 850 885(Where)s 12(the)h 12(programm)h -1(er)h 10(is)h 11(generating)h 11(pro)h 1(duct)h 12(\014les)h 12(that)h 295 935(m)s -1(ust)h 17(exist)h 17(on)h 17(their)h 18(o)h -1(wn)h 17(within)h 16(the)h 18(en)h -1(tire)h 18(programm)h -1(ing)h 15(en)h -1(vironmen)h -1(t)h 16(\(e.g.)h 17(the)h 18(case)h 295 984(of)s 17(a)h 18(programm)h -1(er)h 16(in)h 18(a)h 17(team)h 17(who)h 18(is)h 17(using)h 18(F)h -3(unnelW)h -3(eb)h 17(for)h 17(his)h 18(o)h -1(wn)h 18(b)h 1(ene\014t)h 19(but)h 18(m)h -1(ust)h 295 1034(generate)s 14(\(sa)h -1(y\))h 13(comm)h -1(en)h -1(ted)h 12(Ada)h 13(sp)h 1(eci\014cation)h 13(pac)h -1(k)h -2(age)h 12(\014les\))h 14(there)h 14(is)h 12(a)h 13(tendency)h 14(for)h 12(the)h 295 1084(commen)s -1(ts)h 16(in)h 17(the)h 18(target)h 17(co)h 1(de)h 18(to)h 18(duplicate)h 17(the)h 18(comm)h -1(en)h -1(tary)h 16(in)h 17(the)h 18(F)h -3(unnelW)h -3(eb)h 17(text.)h 295 1134(This)s 11(ma)h -1(y)h 9(or)h 11(ma)h -1(y)h 9(not)h 11(b)h 1(e)h 12(a)h 11(problem,)h 10(dep)h 1(ending)h 11(on)h 11(the)h 12(exact)h 11(situation.)h 17(Ho)h -1(w)h -1(ev)h -1(er,)h 11(if)h 11(this)h 295 1184(is)s 11(happ)h 1(ening,)h 11(it)h 11(is)h 10(certainly)h 11(w)h -1(orth)h 11(the)h 12(programm)h -1(er)h 9(sp)h 1(ending)h 12(some)h 10(time)h 10(deciding)h 10(if)h 10(one)h 295 1233(or)s 13(other)h 13(of)h 12(the)h 13(F)h -3(unnelW)h -3(eb)h 12(or)h 13(inline-comm)h -2(en)h -1(t)h 11(do)h 1(cumen)h -1(tation)h 12(should)h 12(b)h 1(e)h 13(discarded.)h 19(In)h 295 1283(man)s -1(y)h 11(cases,)h 14(a)h 12(mixture)h 12(can)h 12(b)h 1(e)h 14(used,)h 13(with)h 12(the)h 13(F)h -3(unnelW)h -3(eb)h 12(do)h 1(cumen)h -1(tation)h 12(referring)h 13(the)h 295 1333(reader)s 15(to)h 14(the)h 15(inline)h 13(comm)h -1(en)h -1(ts)h 13(where)h 15(they)h 14(are)h 14(presen)h -1(t.)h 20(F)h -3(or)h 14(example:)h 699 2150(Another)s 16(evil)h 15(that)h 15(can)h 15(arise)h 16(when)h 15(using)h 15(F)h -3(unnelW)h -3(eb)h 15(is)h 15(to)h 15(o)h -1(v)h -1(er-)h 295 2200(do)s 1(cumen)h -1(t)h 18(the)h 19(target)h 19(program.)h 29(In)h 19(some)h 17(of)h 18(Kn)h -1(uth's)h 18(earlier)h 19(\(e.g.)h 17(1984\))h 18(examples)h 17(of)h 295 2250(literate)s 11(programm)h -1(ing,)h 9(eac)h -1(h)h 11(v)h -2(ariable)h 10(is)h 11(giv)h -1(en)h 10(its)h 11(o)h -1(wn)h 10(description)h 12(and)h 10(eac)h -1(h)h 12(piece)h 12(of)h 10(co)h 1(de)h 295 2300(has)s 16(a)h 15(detailed)h 15(explanation.)h 22(This)h 16(lev)h -1(el)h 15(of)h 15(analysis,)h 14(while)h 15(justi\014ed)h 16(for)h 15(tric)h -1(ky)h 16(tracts)h 16(of)h 295 2350(co)s 1(de,)h 13(is)h 12(probably)h 12(not)h 12(w)h -1(arran)h -1(ted)h 13(for)h 12(most)h 11(of)h 12(the)h 13(co)h 1(de)h 13(that)h 12(constitutes)h 14(most)h 11(programs.)h 295 2400(Suc)s -1(h)h 18(o)h -1(v)h -1(er-commen)h -1(ting)h 15(can)h 18(ev)h -1(en)h 18(ha)h -1(v)h -1(e)h 17(the)h 18(detrimen)h -1(tal)h 17(a\013ect)h 18(of)h 17(obscuring)h 18(the)h 18(co)h 1(de,)h 295 2449(making)s 11(it)h 12(hard)h 13(to)h 13(understand)h 14(b)h 1(ecause)h 15(it)h 12(is)h 13(so)h 13(scattered)h 15(\(see)h 14(\\spaghetti)h 13(organization")h 295 2499(earlier\).)s 18(It)h 12(is)h 12(up)h 12(to)h 12(the)h 13(user)h 13(to)h 12(decide)h 13(when)h 12(a)h 12(stretc)h -1(h)h 14(of)h 11(just)h 13(a)h 11(few)h 13(lines)h 12(of)h 11(co)h 1(de)h 13(should)h 295 2549(b)s 1(e)h 15(pulled)h 13(to)h 14(bits)h 14(and)h 14(analysed)h 13(and)h 14(when)h 15(it)h 13(is)h 14(clearer)h 15(to)h 14(lea)h -1(v)h -1(e)h 13(it)h 14(alone.)h 295 2622(In)s 16(the)h 16(case)h 16(where)h 17(there)h 17(are)h 15(a)h 16(few)h 15(rather)h 16(tric)h -1(ky)h 16(lines)h 15(of)h 15(co)h 1(de,)h 16(a)h 15(detailed)h 16(explanation)h 295 2672(ma)s -1(y)h 10(b)h 1(e)h 13(appropriate.)h 17(The)h 12(follo)h -1(wing)h 10(example)h 10(con)h -1(tains)h 12(a)h 11(solution)h 11(to)h 12(a)h 12(problem)h 10(outlined)h 295 2722(in)s 14(section)h 14(16.3)h 13(of)h 13(the)h 14(b)h 1(o)h 1(ok)h 14(\\The)h 14(Science)h 15(of)h 13(Programm)h -1(ing")h 11(b)h -1(y)h 14(Da)h -1(vid)h 12(Gries)h 295 2771(.)s 1042 2940(51)s 709 2 177 2796 r 52 @eop 53 @bop0 53 @bop1 cmr10.300 sf 295 2827(Where)s 15(the)h 14(co)h 1(de)h 15(is)h 14(more)h 13(ob)h -1(vious,)h 12(it)h 14(is)h 14(often)h 14(b)h 1(etter)h 15(to)h 14(let)h 14(the)h 14(co)h 1(de)h 15(sp)h 1(eak)h 15(for)h 13(itself.)h 1042 2940(52)s cmtt10.300 sf 177 42(@C@)h 177 141(This)s 21(section)h 20(contains)h 21(a)h 21(solution)h 20(to)h 22(a)h 21(problem)h 21(outlined)h 20(in)h 21(section)h 21(16.3)h 20(of)h 177 191(the)s 21(book)h 21(@/The)h 21(Science)h 20(of)h 22(Programming@)h -1(/)h 20(by)h 21(David)h 21(Gries[Gries81)h -1(].)h 177 291(@D)s 22(Given)h 20(a)h 22(sorted)h 20(array)h 21(@{b[1..N]@})h 20(of)h 21(integers,)h 20(we)h 21(wish)h 21(to)h 22(determine)h 20(the)h 177 340(@/length@/)s 20(of)h 21(the)h 21(longest)h 21(run)h 21(of)h 21(identically)h 20(valued)h 20(elements)h 21(in)h 21(the)h 21(array.)h 177 390(This)s 21(problem)h 20(is)h 22(defined)h 20(by)h 22(the)h 21(following)h 20(preconditio)h -1(n)h 20(and)h 21(postcondition)h -1(.)h 177 490(@$@)h -1(==@{/)h -1(*)h 20(Pre:)h 21(sorted\(b\).)h 20(*/@})h 177 540(@$@==@{)h -1(@-)h 177 589(/*)s 22(Post:)h 20(sorted\(b\))h 20(and)h 21(p)h 22(is)h 21(the)h 22(length)h 20(of)h 21(the)h 22(longest)h 20(run)h 21(in)h 22(b[1..N].)h 20(*/@})h 177 689(@D)s 22(We)h 21(approach)h 20(a)h 22(solution)h 20(to)h 21(the)h 21(problem)h 21(by)h 21(deciding)h 20(to)h 22(try)h 21(the)h 21(approach)h 20(of)h 177 739(scanning)s 20(through)h 21(the)h 21(array)h 21(one)h 21(element)h 20(at)h 21(a)h 22(time)h 21(maintaining)h 20(a)h 21(useful)h 177 789(invariant)s 20(through)h 20(each)h 21(iteration.)h 20(A)h 22(loop)h 21(variable)h 177 839(array)s 21(index)h 21(@{i@})h 20(is)h 22(created)h 20(for)h 21(this)h 21(purpose.)h 20(The)h 22(bound)h 20(function)h 21(is)h 177 888(@{N-i@}.)s 20(Here)h 21(is)h 22(the)h 21(invariant.)h 177 988(@$@==@)h -1({@-)h 177 1038(/*)s 22(Invariant:)h 19(sorted\(b\))h 20(and)h 21(1<=i<=N)h 21(and)h 239(*/)h 177 1088(/*)s 261(p)h 22(is)h 21(len)h 21(of)h 22(longest)h 20(run)h 21(in)h 22(b[1..i].)h 20(*/@})h 177 1187(@D)s 22(Establishi)h -1(ng)h 20(the)h 21(invariant)h 20(above)h 21(in)h 21(the)h 21(initial,)h 20(degenerate)h 20(case)h 21(is)h 21(easy.)h 177 1287(@$@)h -1(==@{i)h -1(=1;)h 20(p=1;@})h 177 1386(@D)s 22(At)h 21(this)h 21(stage,)h 20(we)h 22(have)h 21(the)h 21(following)h 20(loop)h 21(structure.)h 20(Note)h 21(that)h 21(when)h 20(both)h 177 1436(the)s 21(invariant)h 20(and)h 21(@{i)h 22(!=)h 21(N@})h 21(are)h 21(true,)h 21(the)h 21(postcondition)h 19(holds)h 21(and)h 21(the)h 21(loop)h 177 1486(can)s 21(terminate.)h 177 1586(@$@==@{)h -1(@-)h 177 1636(@)h 177 1685(@)h 177 1735(while)s 21(\(i)h 21(!=)h 22(N\))h 221 1785({)s 243 1835(@)h 243 1885(@)h 221 1934(})s 177 1984(@)h 177 2034(@})s 177 2134(@D)s 22(Now)h 21(there)h 20(remains)h 21(only)h 21(the)h 21(loop)h 21(body)h 21(whose)h 21(sole)h 21(task)h 21(is)h 21(to)h 21(increase)h 20(@{i@})h 177 2183(\(and)s 21(so)h 22(decrease)h 20(the)h 21(value)h 21(of)h 21(the)h 21(bound)h 21(function\))h 20(while)h 21(maintaining)h 19(the)h 177 2233(invariant.)s 20(If)h 21(@{p@})h 21(is)h 21(the)h 22(length)h 20(of)h 22(the)h 21(longest)h 20(run)h 177 2283(seen)s 21(so)h 22(far)h 21(\(i.e.)h 20(in)h 22(b[1..i]\),)h 20(then,)h 21(because)h 20(the)h 21(array)h 21(is)h 21(sorted,)h 177 2333(the)s 21(extension)h 20(of)h 22(our)h 21(array)h 21(range)h 20(to)h 177 2383(@{b[1..i+1]@})s 19(can)h 21(only)h 21(result)h 21(in)h 21(an)h 22(increase)h 20(in)h 21(@{p@})h 21(if)h 21(the)h 22(new)h 21(element)h 177 2433(terminates)s 20(a)h 21(run)h 22(of)h 21(length)h 21(@{p+1@}.)h 20(The)h 21(increase)h 20(can)h 21(be)h 22(at)h 21(most)h 21(1.)h 21(Because)h 177 2482(the)s 21(array)h 21(is)h 21(sorted,)h 21(we)h 21(need)h 177 2532(only)s 21(compare)h 20(the)h 22(endpoints)h 20(of)h 21(this)h 21(possible)h 20(run)h 21(to)h 22(see)h 21(if)h 21(it)h 22(exists.)h 20(This)h 177 2582(is)s 22(performed)h 19(as)h 22(shown)h 21(below.)h 177 2682(@$@==@{i++;)h 19(if)h 22(\(b[i])h 20(!=)h 22(b[i-p]\))h 20(p++;@})h 53 @eop 54 @bop0 54 @bop1 cmbx10.300 sf 1302 1112(wholisti)s -1(c)h 12(debuggin)h -1(g)h cmbx10.432 sf 177 932(2.12)s 70(Wholistic)h 20(Debugging)h 177 2605(2.13)s 70(Example)h -1(s)h 21(of)h 23(F)h -6(unnelW)h -6(eb)h 23(Applicati)h -1(ons)h cmti10.300 sf 1523 1062(debugging)s 1425 1346(the)s 16(c)h -2(o)h -2(de)h 17(must)h 16(not)h 17(b)h -2(e)h 16(in)h 16(go)h -2(o)h -2(d)h 177 1396(enough)s 19(shap)h -2(e)h 19(if)h 18(such)h 18(a)h 18(bug)h 19(c)h -2(an)h 18(arise.)h cmtt10.300 sf 177 42(@C)s 22(The)h 21(following)h 20(function)h 20(compares)h 20(two)h 21(C~strings)h 20(and)h 21(returns)h 21(TRUE)h 21(iff)h 21(they)h 177 91(are)s 21(identical.)h 177 191(@$@==@{@-)h 177 241(bool)s 21(comp\(p,q\))h 177 291(char)s 21(*p,*q;)h 177 340({)s 199 390(while)s 21(\(TRUE\))h 243 440({)s 264 490(if)s 22(\(*p)h 21(!=)h 21(*q)h 43(\))h 22(return)h 21(FALSE;)h 264 540(if)s 22(\(*p)h 21(==)h 21('\\0'\))h 21(return)h 21(TRUE;)h 264 589(p++;)s 21(q++;)h 243 639(})s 177 689(})s 177 739(@})s cmr10.300 sf 177 1062(Surprising)s 19(though)h 18(it)h 18(ma)h -1(y)h 16(b)h 1(e,)h 20(F)h -3(unnelW)h -3(eb)h 18(has)h 18(a)h 19(k)h -1(ey)h 18(role)h 18(to)h 19(pla)h -1(y)h 17(in)h 18(the)h 213(of)h 17(programs.)h 177 1112(Long)s 12(exp)h 1(erience)h 14(in)h 12(programm)h -1(ing)h 10(has)h 13(led)h 12(me)h 11(to)h 12(the)h 13(concept)h 14(of)h 424(.)h 15(When)h 13(most)h 177 1162(programm)s -1(ers)h 14(detect)h 16(a)h 14(bug,)h 14(their)h 14(\014rst)h 15(reaction)h 15(seems)h 15(to)h 14(b)h 1(e)h 15(to)h 14(jump)h 13(in)h -1(to)h 14(the)h 15(debugger)h 15(where)h 15(they)h 177 1212(often)s 14(sp)h 1(end)h 15(man)h -1(y)h 13(hours)h 14(stepping)h 15(through)h 14(endless)h 15(stretc)h -1(hes)h 17(of)h 13(co)h 1(de)h 15(and)h 14(generally)h 14(w)h -1(asting)h 13(a)h 14(lot)h 13(of)h 177 1261(time.)s 177 1346(In)s 16(con)h -1(trast,)h 16(m)h -1(y)h 13(\014rst)h 16(reaction)h 16(when)h 16(I)h 15(detect)h 17(a)h 15(bug)h 16(is)h 15(to)h 15(realize)h 16(that)h 904 1396(The)s 18(presence)h 20(of)h 17(the)h 18(bug)h 17(is)h 17(tak)h -1(en)h 17(as)h 18(symptom)h -1(atic)h 15(of)h 17(the)h 177 1446(lac)s -1(k)h 17(of)h 16(general)h 18(health)h 17(of)h 16(the)h 18(co)h 1(de.)h 29(If)h 17(that)h 17(bug)h 17(o)h 1(ccurred,)h 19(wh)h -1(y)h 17(not)h 17(another?)h 28(In)h 18(resp)h 1(onse)h 19(to)h 17(this)h 177 1495(realization,)s 12(m)h -1(y)h 11(reaction)h 13(is)h 13(not)h 13(to)h 13(en)h -1(ter)h 14(the)h 13(debugger,)h 13(but)h 14(rather)h 13(to)h 13(return)h 14(to)h 13(the)h 13(original)h 11(co)h 1(de)h 14(and)h 177 1545(tend)s 18(it)h 16(lik)h -1(e)h 17(a)h 16(garden,)h 18(adding)h 16(more)h 16(comm)h -1(en)h -1(ts,)h 16(rew)h -1(orking)h 17(the)h 18(grott)h -1(y)h 16(bits,)h 18(adding)h 16(assertions,)h 18(and)h 177 1595(lo)s 1(oking)h 15(for)h 16(faults.)h 26(In)h 16(man)h -1(y)h 15(cases,)h 18(the)h 17(searc)h -1(h)h 18(for)h 16(faults)h 16(do)h 1(es)h 17(not)h 16(ev)h -1(en)h 17(cen)h -1(tre)h 19(on)h 16(the)h 17(sp)h 1(eci\014c)h 18(bug)h 177 1645(that)s 14(arose,)h 14(but)h 14(do)h 1(es)h 15(tend)h 14(to)h 14(fo)h 1(cus)h 14(on)h 14(the)h 15(area)h 14(of)h 13(co)h 1(de)h 15(where)h 15(the)h 14(bug)h 14(is)h 14(lik)h -1(ely)h 12(to)h 14(b)h 1(e.)h 177 1729(The)s 15(result)h 15(is)h 14(often)h 14(that)h 15(the)h 15(original)h 12(bug)h 14(is)h 15(lo)h 1(cated)h 14(more)h 13(quic)h -1(kly)h 14(than)h 14(it)h 14(w)h -1(ould)h 13(ha)h -1(v)h -1(e)h 15(b)h 1(een)h 15(had)h 14(the)h 177 1779(debugger)s 16(b)h 1(een)h 17(in)h -1(v)h -1(olv)h -1(ed.)h 21(But)h 16(ev)h -1(en)h 15(if)h 15(it)h 15(isn't,)h 15(there)h 16(are)h 16(other)h 16(b)h 1(ene\014ts.)h 24(A)h 15(programm)h -1(er)h 14(who)h 15(en)h -1(ters)h 177 1829(the)s 15(debugger)h 14(ma)h -1(y)h 12(sta)h -1(y)h 14(there)h 16(for)h 13(hours)h 14(and)h 14(still)h 13(not)h 14(\014nd)h 14(the)h 15(bug.)h 18(The)h 14(result)h 15(is)h 13(frustration)h 14(and)h 14(no)h 177 1879(p)s 1(ositiv)h -1(e)h 10(gain)h 10(at)h 10(all.)h 15(In)h 11(con)h -1(trast,)h 11(b)h -1(y)h 10(tending)h 10(to)h 10(the)h 11(co)h 1(de,)h 12(the)h 11(programm)h -1(er)h 9(is)h 10(making)h 8(forw)h -1(ard)h 10(progress)h 177 1929(at)s 15(all)h 14(times)h 15(\(the)h 16(co)h 1(de)h 16(is)h 15(constan)h -1(tly)h 15(impro)h -1(ving\))h 13(ev)h -1(en)h 16(if)h 15(the)h 16(bug)h 15(is)h 15(not)h 15(imm)h -1(ediately)h 13(found.)h 22(A)h -1(t)h 15(the)h 177 1979(end)s 17(of)h 15(ten)h 17(hours,)h 17(the)h 17(programm)h -1(er)h 15(can)h 16(at)h 16(least)h 16(feel)h 17(that)h 16(the)h 17(co)h 1(de)h 17(is)h 16(\\ten)h 16(hours)h 17(b)h 1(etter",)h 17(whereas)h 177 2028(the)s 15(debugger)h 16(freak)h 14(will)h 13(lik)h -1(ely)h 13(feel)h 15(defeated.)h 21(All)h 13(this)h 15(mak)h -1(es)h 13(co)h 1(de)h 15(tending)h 15(b)h 1(etter)h 16(psyc)h -1(hologically)h 13(as)h 177 2078(w)s -1(ell)h 13(as)h 14(a)h 14(more)h 13(e\016cien)h -1(t)h 14(approac)h -1(h)h 14(to)h 14(debugging.)h 177 2163(I)s 19(call)h 18(this)h 19(tec)h -1(hnique)h 19(wholistic)h 18(debugging,)h 19(for)h 18(it)h 19(is)h 18(lik)h -1(e)h 18(the)h 20(di\013erence)h 20(b)h 1(et)h -1(w)h -1(een)h 20(con)h -1(v)h -1(en)h -1(tional)h 18(and)h 177 2213(wholistic)s 15(medicine.)h 20(Go)h 15(to)h 15(a)h 14(con)h -1(v)h -1(en)h -1(tional)h 14(do)h 1(ctor)h 16(with)h 15(a)h 14(headac)h -1(he)h 16(and)h 15(he)h 16(migh)h -1(t)h 13(send)h 16(o\013)h 15(for)h 14(head)h 177 2262(X-ra)s -1(ys,)h 20(p)h 1(erform)h 18(allergy)h 18(tests)h 20(and)h 19(p)h 1(erform)h 18(man)h -1(y)h 17(other)h 19(debugging)h 18(activities.)h 33(Go)h 18(to)h 19(a)h 18(wholistic)h 177 2312(do)s 1(ctor)h 16(with)h 15(the)h 15(same)h 14(problem)h 14(and)h 15(he)h 16(mig)h -1(h)h -1(t)h 14(lo)h 1(ok)h 14(to)h 15(see)h 16(if)h 14(y)h -1(ou)h 15(are)h 15(\014t,)h 15(assess)h 17(y)h -1(our)h 15(men)h -1(tal)h 13(health,)h 177 2362(and)s 15(ask)h 16(y)h -1(ou)h 15(if)h 14(y)h -1(our)h 16(marriag)h -1(e)h 14(is)h 16(w)h -1(orking.)h 21(Both)h 16(approac)h -1(hes)h 16(are)h 16(appropriate)h 15(at)h 16(di\013eren)h -1(t)h 16(times.)h 22(In)h 177 2412(programm)s -1(ing,)h 11(the)h 14(wholistic)h 14(approac)h -1(h)h 13(is)h 14(not)h 14(used)h 15(enough.)h 177 2735(Despite)s 16(\(or)h 16(p)h 1(erhaps)h 16(b)h 1(ecause)h 18(of)h 3(\))h 15(its)h 15(\015exibilit)h -1(y)h 14(and)h 15(simplicit)h -1(y)h -3(,)h 13(F)h -3(unnelW)h -3(eb)h 15(can)h 15(b)h 1(e)h 17(applied)h 14(to)h 16(quite)h 177 2785(a)s 15(n)h -1(um)h -1(b)h 1(er)h 14(of)h 15(di\013eren)h -1(t)h 16(text)h 16(pro)h 1(cessing)h 16(and)h 15(do)h 1(cumen)h -1(ting)h 14(problems.)h 21(This)h 15(section)h 16(describ)h 1(es)h 17(some)h 14(of)h 177 2835(the)s 15(more)h 13(in)h -1(teresting)h 14(real)h 14(problems)h 13(that)h 14(F)h -3(unnelW)h -3(eb)h 13(has)h 14(solv)h -1(ed.)h 1042 2940(53)s 54 @eop 55 @bop0 cmsy10.300 sf [<07E01FF83FFC7FFE7FFEFFFFFFFFFFFFFFFFFFFFFFFF7FFE7FFE3FFC1FF807E0> 16 16 -2 17 21] 15 dc cmti10.300 sf [<01FFFE00003C0780003801C0003801C0003800E0003800E0007000F000700070007000 70007000F000E000F000E000F000E000F000E000F001C001E001C001E001C001E001C001 C0038003C003800380038007800380070007000E0007001C0007003800070070000E01C0 00FFFF0000> 32 28 -3 27 31] 68 dc 55 @bop1 cmsy10.300 sf 239 1019(\017)s 239 1150(\017)s cmti10.300 sf 829 191(MacDr)s -2(aw)h cmbx12.300 sf 177 42(2.13.1)s 55(Analyzing)h 19(the)h 18(Monster)h 18(P)h -2(ostscript)h 19(Header)h 18(File)h cmtt10.300 sf 1696 191(insert)s 1159 1200(begin)s 97(end)h 592 1531(@)s 451(@@)h 177 1888(@O@==@)h -1({@-)h 177 1938(Unreadable)s 20(Postscript)h 20(code)h 177 1988(@)h 177 2038(Unreadable)s 20(Postscript)h 20(code)h 177 2087(@)h 177 2137(Unreadable)s 20(Postscript)h 20(code)h 177 2187(@})s 177 2287(@A)s 22(This)h 21(routine)h 20(looks)h 21(as)h 21(if)h 21(it)h 22(does)h 21(this,)h 20(but)h 22(really)h 20(is)h 22(does)h 21(that,)h 177 2337(blah,)s 21(blah)h 21(blah.)h 177 2436(@$@==@{)h -1(@-)h 177 2486(/print)s 21({)h 21(push)h 21(pop)h 21(pop)h 22(push)h 21(turn)h 21(around)h 20(and)h 21(jump)h 21(up)h 22(and)h 21(down)h 21(and)h 21(print)h 21(it})h 21(def)h 177 2536(@})s 177 2635(@A)s 22(This)h 21(routine)h 20(zaps)h 21(the...)h 177 2735(@$@=)h -1(=@{@-)h 177 2785(/zap)s 21({)h 22(push)h 21(pop)h 21(pop)h 21(push)h 21(turn)h 21(around)h 21(and)h 21(jump)h 21(up)h 21(and)h 21(down)h 21(and)h 21(print)h 21(it})h 21(def)h 177 2835(@})s cmr10.300 sf 177 141(During)s 14(m)h -1(y)h 12(Ph.D.)h 13(candidature,)h 14(I)h 14(determined)h 14(at)h 14(one)h 14(p)h 1(oin)h -1(t)h 14(that)h 14(it)h 14(w)h -1(ould)h 13(b)h 1(e)h 15(v)h -1(ery)h 14(desirable)h 14(to)h 14(auto-)h 177 191(maticall)s -1(y)h 14(insert)h 16(diagrams)h 13(from)h 14(the)h 205(program)h 14(on)h 15(m)h -1(y)h 14(Macin)h -1(tosh)h 15(in)h -1(to)h 15(T)h 1627 200(E)s 1650 191(X)s 147(ions)h 14(in)h 177 240(m)s -1(y)h 12(thesis.)h 20(This)h 14(w)h -1(ould)h 13(allo)h -1(w)h 12(diagrams)h 12(to)h 14(\015oat)h 13(around)h 14(with)h 14(the)h 15(text)h 14(and)h 14(b)h 1(e)h 15(prin)h -1(ted)h 14(automatical)h -1(ly)h 177 290(rather)s 18(than)h 17(ha)h -1(ving)h 17(to)h 17(b)h 1(e)h 17(prin)h -1(ted)h 18(separately)h 18(and)h 17(stuc)h -1(k)h 18(in)h 17(with)h 17(real)h 17(glue.)h 27(On)h 18(the)h 18(face)h 17(of)h 17(it,)h 17(the)h 177 340(problem)s 13(seemed)h 15(inheren)h -1(tly)h 15(solv)h -2(able)h 13(as)h 15(the)h 15(Macin)h -1(tosh)h 15(could)h 14(generate)h 16(P)h -1(ostScript)h 15(for)h 14(eac)h -1(h)h 15(diagram)h 177 390(and)s 14(this)h 14(P)h -1(ostScript)h 15(could)h 13(presumably)h 13(b)h 1(e)h 15(inserted)h 15(in)h -1(to)h 13(the)h 14(P)h -1(ostScript)h 15(generated)h 15(using)h 14(T)h 1768 399(E)s 1791 390(X.)s 177 462(The)s 19(only)h 17(trouble)h 18(w)h -1(as)h 18(that)h 18(the)h 19(Macin)h -1(tosh)h 18(P)h -1(ostScript)h 19(co)h 1(de)h 19(for)h 18(the)h 18(diagrams)h 17(relied)h 18(on)h 18(an)h 18(Apple)h 177 512(P)s -1(ostScript)h 15(header)h 14(\014le.)h 18(This)h 14(mean)h -1(t)h 13(that)h 13(the)h 15(header)h 15(\014le)h 13(had)h 14(to)h 13(b)h 1(e)h 15(included)h 14(at)h 13(the)h 15(start)h 14(of)h 13(the)h 15(T)h 1895 521(E)s 1918 512(X)s 177 562(P)s -1(ostScript)h 12(if)h 9(the)h 12(inserted)h 12(P)h -1(ostScript)h 11(for)h 10(the)h 11(diagrams)h 9(w)h -1(as)h 11(to)h 10(w)h -1(ork.)h 17(Unfortunately)h -3(,)h 10(merely)h 10(including)h 177 612(the)s 17(header)h 17(\014le)h 16(at)h 16(the)h 16(top)h 16(didn't)h 15(w)h -1(ork,)h 16(and)h 16(it)h 16(turned)h 17(out)h 15(that)h 17(a)h 15(rather)h 17(detailed)h 16(analysis)h 15(of)h 16(some)h 177 662(parts)s 13(of)h 11(the)h 12(Apple)h 12(header)h 13(\014le)h 12(w)h -1(as)h 12(required)h 13(in)h 11(order)h 13(to)h 11(p)h 1(erform)h 11(the)h 13(necessary)h 14(surgery)h 13(on)h 11(the)h 13(header)h 177 712(\014le)s 14(to)h 13(mak)h -1(e)h 12(it)h 13(w)h -1(ork.)h 18(This)h 13(analysis)h 13(w)h -1(as)h 13(sev)h -1(erely)h 15(aggra)h -1(v)h -2(ated)h 13(b)h -1(y)h 13(the)h 14(fact)h 14(that)h 13(the)h 14(P)h -1(ostScript)h 15(header)h 177 761(\014le)s 14(w)h -1(as)h 14(virtually)h 12(unreadable.)h 18(Basically)h 13(it)h 14(w)h -1(as)h 13(ab)h 1(out)h 14(50K)h 14(of)h 13(in)h -1(terw)h -1(o)h -1(v)h -1(en)h 13(de\014nitions,)h 14(that)h 14(lo)h 1(ok)h -1(ed)h 13(as)h 177 811(if)s 12(it)h 12(had)h 12(b)h 1(een)h 14(run)h 13(through)h 12(a)h 12(w)h -1(ord)h 13(pro)h 1(cessor.)h 19(There)h 14(w)h -1(as)h 12(no)h 12(w)h -1(a)h -1(y)h 12(that)h 13(the)h 13(co)h 1(de)h 13(could)h 12(b)h 1(e)h 14(understo)h 1(o)h 1(d)h 177 861(clearly)s 14(without)h 13(some)h 13(kind)h 13(of)h 14(reformatting.)h 16(Tw)h -1(o)h 13(other)h 15(asp)h 1(ects)h 15(of)h 13(the)h 15(problem)h 12(further)h 15(complicated)h 177 911(the)s 15(analysis:)h 281 1019(The)s 12(de\014nitions)h 13(of)h 11(in)h -1(terest)h 13(\(i.e.)h 12(the)h 12(ones)h 13(causing)h 12(the)h 13(problems\))h 11(w)h -1(ere)h 13(scattered)h 14(throughout)h 12(the)h 281 1069(\014le.)s 281 1150(Man)s -1(y)h 17(de\014nitions)h 18(could)h 18(not)h 18(b)h 1(e)h 19(mo)h -1(v)h -1(ed.)h 28(F)h -3(or)h 18(one)h 18(or)h 18(more)h 17(reasons)h 19(\(e.g.)h 17(to)h 18(k)h -1(eep)h 19(a)h 17(de\014nition)h 281 1200(within)s 15(the)h 16(activ)h -2(ation)h 15(of)h 15(a)h 16(particular)h 15(dictionary)h 140(and)h 82(\))h 15(it)h 16(w)h -1(ould)h 15(ha)h -1(v)h -1(e)h 16(b)h 1(een)h 17(un)h -1(wise)h 281 1250(to)s 14(mo)h -1(v)h -1(e)h 12(the)h 14(de\014nitions)h 14(of)h 14(in)h -1(terest)h 15(to)h 13(the)h 15(same)h 13(p)h 1(oin)h -1(t)h 13(in)h 14(the)h 14(\014le.)h 177 1358(In)s 13(fact)h 13(the)h 14(\014le)h 13(w)h -1(as)h 13(so)h 13(messy)h 13(and)h 13(complicated)h 12(that,)h 12(as)h 14(a)h 12(rule,)h 13(it)h 13(had)h 13(to)h 13(b)h 1(e)h 14(handled)h 13(with)h 12(kid)h 13(glo)h -1(v)h -1(es.)h 177 1408(It)s 14(w)h -1(ould)h 13(ha)h -1(v)h -1(e)h 14(b)h 1(een)h 15(un)h -1(wise)h 14(to)h 14(re-arrange)h 14(the)h 15(de\014nitions)h 14(or)h 14(to)h 13(insert)h 15(comm)h -1(en)h -1(ts.)h 177 1481(T)s -3(o)h 18(m)h -1(y)h 17(surprise,)h 21(F)h -3(unnelW)h -3(eb)h 18(pro)h -1(vided)h 18(an)h 19(unexp)h 1(ected)h 21(solution)h 17(to)h 19(the)h 19(problem.)h 31(First)h 19(I)h 19(replaced)h 177 1531(all)s 17(o)h 1(ccurrences)h 20(of)h 17(the)h 58(in)h 17(the)h 18(header)h 19(\014le)h 18(with)h 61(.)h 29(Second,)h 19(I)h 17(placed)h 18(the)h 18(en)h -1(tire)h 19(header)h 18(\014le)h 18(in)h 17(a)h 177 1580(F)s -3(unnelW)h -3(eb)h 14(macro)h 13(de\014nition)h 14(connected)h 17(to)h 14(a)h 14(pro)h 1(duct)h 15(\014le.)h 20(I)h 14(then)h 16(pro)h 1(cessed)h 16(the)h 15(\014le)h 15(and)h 14(c)h -1(hec)h -1(k)h -1(ed)h 16(to)h 177 1630(mak)s -1(e)h 15(sure)h 17(that)h 17(the)h 16(pro)h 1(duct)h 18(\014le)h 16(w)h -1(as)h 16(iden)h -1(tical)h 16(to)h 16(the)h 17(original)h 14(\014le.)h 25(By)h 17(doing)h 15(all)h 15(this)h 16(I)h 16(had)h 17(placed)h 177 1680(the)s 16(header)h 16(\014le)h 16(under)h 16(F)h -3(unnelW)h -3(eb)h 14(con)h -1(trol.)h 22(I)h 16(then)h 15(left)h 15(the)h 16(macro)h 14(de\014nition)h 15(largely)h 15(un)h -1(touc)h -1(hed,)h 16(but)h 177 1730(replaced)s 21(the)h 20(P)h -1(ostScript)h 20(de\014nitions)h 19(of)h 19(in)h -1(terest)h 21(with)h 19(F)h -3(unnelW)h -3(eb)h 19(macro)h 18(calls,)h 20(mo)h -1(ving)h 17(the)h 20(actual)h 177 1780(P)s -1(ostScript)h 15(de\014nitions)h 14(in)h -1(to)h 13(F)h -3(unnelW)h -3(eb)h 13(macro)h 13(de\014nitions)h 14(at)h 14(the)h 14(end)h 14(of)h 14(the)h 14(F)h -3(unnelW)h -3(eb)h 14(\014le.)h 1042 2940(54)s 55 @eop 56 @bop0 cmbx12.300 sf [ 32 35 -2 34 30] 107 dc 56 @bop1 cmbx10.300 sf 714 390(Z)s 927 1113(pac)s -1(k)h -3(age)h 1358 1462([DOD83])s cmbx12.300 sf 177 960(2.13.2)s 55(Making)h 19(Ada)h 19(ADTs)h 19(more)h 17(A)h 177 2031(2.13.3)s 55(Multiple)h 18(Language)h 18(Systems)h cmr10.300 sf 177 42(Use)s 19(of)h 18(F)h -3(unnelW)h -3(eb)h 18(mean)h -1(t)h 17(that)h 18(I)h 18(w)h -1(as)h 19(able)h 18(to)h 18(pluc)h -1(k)h 18(out)h 18(the)h 19(de\014nitions)h 18(of)h 18(in)h -1(terest)h 19(\(a)h 18(v)h -1(ery)h 19(small)h 177 91(part)s 19(of)h 17(the)h 19(whole)h 19(\014le\))h 18(and)h 18(collect)h 19(them)h 18(as)h 18(a)h 18(group)h 18(at)h 19(the)h 19(end)h 18(of)h 18(the)h 19(\014le)h 19(where)h 19(they)h 19(could)h 18(b)h 1(e)h 177 141(studied.)s 18(Because)h 13(eac)h -1(h)h 12(de\014nition)h 10(w)h -1(as)h 12(safely)h 10(con)h -1(tained)h 12(in)h 10(a)h 11(macro,)h 10(it)h 11(w)h -1(as)h 11(p)h 1(ossible)h 11(to)h 11(write)h 12(a)h 11(detailed)h 177 191(commen)s -1(tary)h 13(of)h 15(eac)h -1(h)h 15(routine)h 16(without)h 14(fear)h 16(of)h 14(a\013ecting)h 16(the)h 15(\014nal)h 15(P)h -1(ostScript)h 16(co)h 1(de)h 16(in)h 14(an)h -1(y)h 15(w)h -1(a)h -1(y)h 14(at)h 15(all.)h 177 241(Once)s 16(this)h 15(analysis)h 13(w)h -1(as)h 15(completed,)h 14(it)h 14(w)h -1(as)h 14(p)h 1(ossible)h 15(to)h 15(p)h 1(erform)h 13(surgery)h 16(on)h 14(the)h 16(o\013ending)h 14(P)h -1(ostScript)h 177 291(de\014nitions)s 18(in)h 17(an)h 18(extremely)h 17(con)h -1(trolled)h 18(w)h -1(a)h -1(y)h -3(.)h 28(In)h 18(particular,)h 18(the)h 19(F)h -3(unnelW)h -3(eb)h 17(input)h 17(\014le)h 18(serv)h -1(ed)h 19(as)h 18(a)h 177 340(rep)s 1(ository)h 17(for)h 17(all)h 15(the)h 17(di\013eren)h -1(t)h 18(v)h -1(ersions)h 17(of)h 16(particular)h 16(routines)h 17(that)h 17(w)h -1(ere)h 17(tried)h 17(in)h 17(order)h 17(to)h 16(get)h 17(the)h 177 390(de\014nitions)s 17(to)h 17(w)h -1(ork.)h 27(A)h 17(new)h 17(\()h 29(ero\))h 18(macro)h 15(w)h -1(as)h 17(created)h 19(for)h 16(eac)h -1(h)h 18(v)h -1(ersion)h 17(of)h 16(eac)h -1(h)h 18(de\014nition,)h 16(and)h 17(a)h 177 440(commen)s -1(tary)h 12(of)h 13(ho)h -1(w)h 14(it)h 13(p)h 1(erformed)h 14(added)h 14(ab)h 1(o)h -1(v)h -1(e)h 13(it.)h 177 516(This)s 11(case)h 11(demonstrates)h 12(that)h 10(F)h -3(unnelW)h -3(eb)h 10(is)h 11(an)h 11(extremely)h 10(p)h 1(o)h -1(w)h -1(erful)h 10(to)h 1(ol)h 10(for)h 10(dissecting)h 12(and)h 10(do)h 1(cumen)h -1(t-)h 177 566(ing)s 15(cryptic)h 16(text)h 16(\014les.)h 22(Through)h 16(the)h 16(use)h 16(of)h 14(macros,)h 15(particular)h 15(parts)h 16(of)h 14(the)h 16(\014le)h 16(can)h 15(b)h 1(e)h 16(isolated)h 15(and)h 177 616(discussed)s 17(without)h 15(a\013ecting)h 15(the)h 16(\014nal)h 15(pro)h 1(duct)h 16(\014le)h 15(in)h 15(an)h -1(y)h 14(w)h -1(a)h -1(y)h -3(.)h 21(In)h 15(the)h 16(example)h 14(ab)h 1(o)h -1(v)h -1(e,)h 15(only)h 14(a)h 15(small)h 177 665(part)s 12(of)h 11(the)h 13(\014le)h 11(w)h -1(as)h 12(analysed,)h 11(the)h 13(rest)h 13(b)h 1(eing)h 11(left)h 12(as)h 12(a)h 11(blob,)h 11(but)h 12(in)h 12(the)h 12(general)h 12(case,)h 13(a)h 11(cryptic)h 12(text)h 13(\014le)h 177 715(could)s 15(b)h 1(e)h 15(inserted)h 16(in)h -1(to)h 14(F)h -3(unnelW)h -3(eb)h 14(and)h 15(then)h 15(incremen)h -1(tally)h 13(dissected)h 17(\(and)h 15(p)h 1(ossibly)h 14(mo)h 1(di\014ed\))h 14(un)h -1(til)h 177 765(the)s 18(result)h 18(is)h 18(a)h 17(fully)h 16(do)h 1(cumen)h -1(ted)h 17(literate)h 18(program.)h 27(That)h 17(this)h 17(can)h 18(b)h 1(e)h 18(done)h 17(without)h 17(a\013ecting)h 18(the)h 177 815(actual)s 14(pro)h 1(duct)h 14(\014le)h 14(demonstrates)h 15(the)h 14(high)h 13(degree)h 16(of)h 13(descriptiv)h -1(e)h 15(con)h -1(trol)h 13(that)h 14(F)h -3(unnelW)h -3(eb)h 14(pro)h -1(vides.)h 177 1063(Lik)s -1(e)h 13(man)h -1(y)h 12(mo)h 1(dern)h 12(programm)h -1(ing)h 11(languages,)h 13(Ada)h 13(pro)h -1(vides)h 14(mec)h -1(hanism)h -1(s)h 12(for)h 13(hiding)h 12(information)h 11(and)h 177 1113(structure.)s 25(In)h 16(particular,)h 15(Ada)h 15(pro)h -1(vides)h 16(a)h 192(facilit)h -1(y)h 13(that)h 16(allo)h -1(ws)h 14(the)h 16(programm)h -1(er)h 15(to)h 15(declare)h 177 1163(ob)s 2(jects)h 15(in)h 13(a)h 13(pac)h -1(k)h -2(age)h 14(de\014nition)h 13(and)h 13(de\014ne)h 15(them)h 13(in)h 13(a)h 13(corresp)h 1(onding)h 15(pac)h -1(k)h -2(age)h 13(b)h 1(o)h 1(dy)h -3(.)h 17(This)h 14(w)h -1(orks)h 13(w)h -1(ell)h 177 1213(for)s 14(functions)h 14(and)h 14(pro)h 1(cedures.)h 20(Ho)h -1(w)h -1(ev)h -1(er,)h 14(in)h 14(the)h 14(case)h 15(of)h 14(t)h -1(yp)h 1(es,)h 14(implem)h -1(en)h -1(tation)h 12(issues)h 15(\(in)h 13(particular,)h 177 1262(the)s 14(need)h 15(to)h 13(kno)h -1(w)h 13(the)h 14(size)h 15(of)h 13(exp)h 1(orted)h 14(t)h -1(yp)h 1(es\))h 15(ha)h -1(v)h -1(e)h 13(led)h 14(the)h 14(designers)h 15(of)h 12(Ada)h 14(to)h 13(force)h 14(the)h 14(placemen)h -1(t)h 177 1312(of)s 13(priv)h -2(ate)h 13(t)h -1(yp)h 1(e)h 13(de\014nitions)h 13(in)h 13(the)h 14(de\014nition)h 12(pac)h -1(k)h -2(age)h 13(rather)h 14(than)h 13(the)h 14(implem)h -1(en)h -1(tatio)h -1(n)h 11(pac)h -1(k)h -2(age.)h 18(This)h 177 1362(means)s 12(that)h 13(some)h 13(impl)h -1(em)h -1(en)h -1(tation)h 11(details)h 13(are)h 13(presen)h -1(t)h 15(in)h 12(the)h 14(pac)h -1(k)h -2(age)h 13(de\014nition)h 12(for)h 13(all)h 12(to)h 13(see.)h 19(While)h 177 1412(not)s 21(actually)h 19(dangerous)h 21(\(the)h 22(user)h 22(of)h 19(the)h 22(pac)h -1(k)h -2(age)h 20(cannot)h 21(mak)h -1(e)h 19(use)h 21(of)h 20(the)h 21(information)h 18(without)h 177 1462(recourse)s 15(to)h 12(\\Chapter)h 13(13")h 12(of)h 12(the)h 14(Ada)h 12(Language)h 12(Reference)h 15(Man)h -1(ual)h 184(\),)h 11(this)h 12(asp)h 1(ect)h 14(of)h 12(Ada)h 13(is)h 177 1512(certainly)s 14(unpleasan)h -1(t.)h 177 1588(During)s 9(the)h 11(dev)h -1(elopmen)h -1(t)h 9(of)h 10(some)h 9(Ada)h 10(programs,)h 9(F)h -3(unnelW)h -3(eb)h 9(w)h -1(as)h 10(used)h 11(to)h 10(solv)h -1(e)h 10(this)h 10(problem.)h 15(Instead)h 177 1637(of)s 18(creating)h 20(a)h 18(separate)h 20(\014le)h 19(for)h 19(the)h 19(pac)h -1(k)h -2(age)h 19(sp)h 1(eci\014cation)h 20(and)h 18(pac)h -1(k)h -2(age)h 19(b)h 1(o)h 1(dy)h -3(,)h 19(a)h 19(single)h 18(F)h -3(unnelW)h -3(eb)h 177 1687(\014le)s 19(w)h -1(as)h 18(created)h 20(con)h -1(taining)h 17(t)h -1(w)h -1(o)h 18(sections,)h 20(one)h 19(for)h 18(the)h 19(eac)h -1(h)h 19(pac)h -1(k)h -2(age)h 18(part.)h 31(The)h 19(\\priv)h -2(ate")h 18(part)h 18(of)h 177 1737(the)s 19(pac)h -1(k)h -2(age)h 18(sp)h 1(eci\014cation)h 19(w)h -1(as)h 18(then)h 18(mo)h -1(v)h -1(ed)h 17(\(using)h 18(a)h 18(F)h -3(unnelW)h -3(eb)h 17(macro)h 17(de\014nition\))h 18(to)h 18(the)h 19(section)h 177 1787(describing)s 18(the)h 19(pac)h -1(k)h -2(age)h 17(b)h 1(o)h 1(dy)h -3(.)h 29(Readers)h 18(who)h 18(wished)h 18(only)h 16(to)h 18(read)h 18(the)h 18(pac)h -1(k)h -2(age)h 18(sp)h 1(eci\014cation)h 18(could)h 177 1837(read)s 13(only)h 11(the)h 13(\014rst)h 13(part,)h 12(whic)h -1(h)h 12(con)h -1(tained)h 12(a)h 12(fully)h 10(do)h 1(cumen)h -1(ted)h 13(description)h 12(not)h 12(con)h -1(taining)h 11(the)h 13(priv)h -2(ate)h 177 1886(de\014nition.)s 177 2135(With)s 10(the)h 11(prev)h -2(alence)h 12(of)h 10(op)h 1(en)h 11(systems)h 11(and)h 10(m)h -1(ulti-v)h -2(endor)h 10(computing,)h 9(it)h 10(is)h 10(often)h 11(necessary)h 13(to)h 10(construct)h 177 2185(systems)s 20(consisting)h 20(of)h 19(programs)h 18(written)h 20(in)h 20(a)h 19(n)h -1(um)h -1(b)h 1(er)h 19(of)h 19(di\013eren)h -1(t)h 21(programm)h -1(i)h -1(ng)h 18(languages)h 19(for)h 19(a)h 177 2234(n)s -1(um)h -1(b)h 1(er)h 15(of)h 14(di\013eren)h -1(t)h 17(systems.)h 22(F)h -3(or)h 15(example,)h 14(a)h 15(particular)h 15(functionalit)h -1(y)h 14(migh)h -1(t)h 13(b)h 1(e)h 16(implem)h -1(en)h -1(ted)h 14(b)h -1(y)h 15(a)h 177 2284(shellscript)s 19(\(in)h -1(v)h -1(ok)h -1(ed)h 17(b)h -1(y)h 17(the)h 18(user\))h 19(that)h 18(calls)h 17(a)h 18(C)h 17(program)h 16(that)h 18(mak)h -1(es)h 17(a)h 17(net)h -1(w)h -1(ork)h 18(connection)h 19(to)h 17(a)h 177 2334(P)s -1(ascal)h 15(program)h 14(that)h 15(queries)h 16(a)h 15(database.)h 23(Quite)h 15(often)h 16(all)h 14(these)h 16(programs)h 14(m)h -1(ust)h 15(conspire)h 16(closely)h 15(to)h 177 2384(execute)s 19(their)h 17(function.)h 25(In)h 17(the)h 17(normal)h 14(case,)h 18(they)h 17(m)h -1(ust)h 16(b)h 1(e)h 17(written)h 17(separately)h -3(.)h 26(F)h -3(unnelW)h -3(eb)h 16(allo)h -1(ws)h 177 2434(them)s 13(to)h 14(b)h 1(e)h 14(written)h 15(as)h 14(a)h 13(whole.)h 177 2510(By)s 19(creating)h 18(a)h 18(single)h 18(F)h -3(unnelW)h -3(eb)h 18(\014le)h 18(that)h 18(creates)h 20(man)h -1(y)h 16(pro)h 1(duct)h 19(\014les)h 19(in)h 18(di\013eren)h -1(t)h 19(languages,)h 18(the)h 177 2559(programm)s -1(er)h 15(can)h 16(describ)h 1(e)h 18(the)h 16(in)h -1(teraction)h 16(b)h 1(et)h -1(w)h -1(een)h 18(the)h 16(di\013eren)h -1(t)h 17(programs)h 15(in)h 15(an)h -1(y)h 16(manner)h 15(desired.)h 177 2609(F)s -3(urthermore,)h 14(b)h 1(ecause)h 16(the)h 14(di\013eren)h -1(t)h 15(pro)h 1(duct)h 15(\014les)h 15(are)h 15(all)h 12(created)h 16(in)h 14(the)h 14(same)h 14(\\text)h 14(space")h 15(\(i.e.)h 13(in)h 14(a)h 177 2659(single)s 14(F)h -3(unnelW)h -3(eb)h 13(\014le\),)h 14(it)h 13(is)h 14(easy)h 14(for)h 14(them)h 13(to)h 14(share)h 14(informatio)h -1(n.)h 177 2735(F)s -3(or)h 15(example,)h 13(in)h 15(one)h 15(real)h 15(application)h 13(F)h -3(unnelW)h -3(eb)h 15(w)h -1(as)h 15(used)h 15(to)h 15(create)h 17(a)h 14(system)h 15(for)h 15(prin)h -1(ting)h 14(\014les)h 15(on)h 177 2785(a)s 17(laser)h 18(prin)h -1(ter)h 18(connected)h 20(to)h 17(a)h 17(remote)h 17(V)h -3(ax)h 17(Unix)h 17(mac)h -1(hine)h 17(from)h 15(a)h 18(lo)h 1(cal)h 16(V)h -3(ax)h 17(VMS)h 18(mac)h -1(hine.)h 27(The)h 177 2835(system)s 18(consisted)h 19(of)h 18(t)h -1(w)h -1(o)h 18(\014les:)h 27(a)h 18(VMS)h 18(DCL)h 18(comm)h -1(and)h 16(pro)h 1(cedure)h 20(to)h 18(run)h 19(on)h 18(the)h 18(lo)h 1(cal)h 18(no)h 1(de,)h 19(and)h 1042 2940(55)s 56 @eop 57 @bop0 57 @bop1 cmti10.300 sf 1616 2672(lo)s -2(c)h -2(al)h cmbx12.300 sf 177 2248(2.13.4)s 55(The)h 19(Case)h 19(of)h 19(the)h 18(Small)h 17(F)h -5(unction)h cmtt10.300 sf 458 464(printfile.)s -1(tmp)h 177 677(@A)s 22(The)h 21(following)h 20(macro)h 20(contains)h 21(the)h 21(temporary)h 20(file)h 21(name)h 21(used)h 21(to)h 21(allow)h 21(the)h 177 726(two)s 21(shellscripts)h 20(to)h 21(transfer)h 20(each)h 21(file)h 21(to)h 21(be)h 22(printed.)h 177 826(@$@@M=)h -1(=@{pr)h -1(intme)h -1(.txt@)h -1(})h 177 926(@A)s 22(Here)h 21(are)h 21(the)h 21(scripts)h 20(for)h 21(the)h 22(local)h 20(VMS)h 21(node)h 21(and)h 22(the)h 21(remote)h 20(UNIX)h 21(node.)h 177 1025(@O@==@{)h -1(@-)h 177 1075(DCL)s 21(commands)h 177 1125(copy)s 21(@)h 19(unixnode::)h 177 1175(DCL)s 21(commands)h 177 1225(@})s 177 1324(@O@==)h -1(@{@-)h 177 1374(unix)s 21(commands)h 177 1424(print)s 21(@)h 177 1474(unix)s 21(commands)h 177 1523(@})s 272 1686(.fw)s 957(.fw)h 632 2399(a:=3;)s 177 2835(a=b*3.14159;)s 19(c=d)h 22(%)h 21(256;)h 21(e=e+1;)h cmr10.300 sf 177 42(a)s 16(Unix)h 17(shellscript)h 17(to)h 16(run)h 17(on)h 17(the)h 17(remote)h 16(no)h 1(de.)h 27(The)h 17(user,)h 18(b)h -1(y)h 16(giving)h 15(the)h 17(prin)h -1(t)h 17(comm)h -1(and,)h 15(in)h -1(v)h -1(ok)h -1(ed)h 177 91(the)s 15(lo)h 1(cal)h 14(VMS)h 15(comma)h -1(nd)h 13(pro)h 1(cedure,)h 17(whic)h -1(h)h 14(in)h 14(turn)h 16(\014red)h 15(up)h 15(the)h 15(remote)h 15(Unix)h 14(shellscript.)h 21(The)h 15(t)h -1(w)h -1(o)h 177 141(scripts)s 15(then)h 15(co)h 1(op)h 1(erated)h 15(to)h 14(transfer)h 15(the)h 14(\014les)h 14(to)h 14(b)h 1(e)h 15(prin)h -1(ted)h 14(and)h 14(prin)h -1(t)h 13(them.)h 177 215(In)s 11(addition)h 10(to)h 11(its)h 11(usual)h 10(do)h 1(cumen)h -1(tation)h 10(p)h 1(o)h -1(w)h -1(ers,)h 12(F)h -3(unnelW)h -3(eb)h 10(assisted)h 12(in)h 10(the)h 12(creation)h 11(of)h 11(this)h 11(system)h 10(in)h 177 265(t)s -1(w)h -1(o)h 12(sp)h 1(ecial)h 12(w)h -1(a)h -1(ys.)h 17(First,)h 13(it)h 11(allo)h -1(w)h -1(ed)h 11(pieces)h 13(of)h 12(co)h 1(de)h 13(from)h 10(the)h 13(t)h -1(w)h -1(o)h 11(di\013eren)h -1(t)h 14(comm)h -1(and)h 10(pro)h 1(cedures)h 14(to)h 12(b)h 1(e)h 177 315(partially)s 12(in)h -1(terw)h -1(o)h -1(v)h -1(en)h 13(in)h 13(a)h 13(description)h 14(of)h 13(their)h 13(in)h -1(teraction.)h 18(This)h 13(is)h 14(just)h 13(not)h 13(p)h 1(ossible)h 14(with)h 13(comm)h -1(en)h -1(ts.)h 177 364(Second,)s 19(it)h 17(facilitated)h 17(the)h 18(use)h 19(of)h 17(shared)h 19(inform)h -1(ation.)h 27(F)h -3(or)h 17(example,)h 17(under)h 19(some)h 16(conditions,)h 18(eac)h -1(h)h 177 414(\014le)s 15(to)h 14(b)h 1(e)h 15(prin)h -1(ted)h 15(w)h -1(ould)h 14(b)h 1(e)h 15(renamed)h 14(and)h 15(copied)h 14(to)h 15(the)h 15(remote)h 14(system)h 14(using)h 15(a)h 14(particular)h 14(constan)h -1(t)h 177 464(\014lename)s 15(\(e.g.)h 15(\\)h 285("\).)h 21(F)h -3(unnelW)h -3(eb)h 15(allo)h -1(w)h -1(ed)h 15(this)h 15(constan)h -1(t)h 17(\014lename)h 14(to)h 16(b)h 1(e)h 16(included)h 16(in)h 15(a)h 177 514(single)s 17(macro)h 15(de\014nition)h 17(whic)h -1(h)h 17(w)h -1(as)h 17(in)h -1(v)h -1(ok)h -1(ed)h 16(in)h 16(the)h 18(de\014nition)h 16(of)h 17(eac)h -1(h)h 17(of)h 16(the)h 18(scripts.)h 28(This)h 17(ensured)h 177 564(that)s 14(the)h 15(t)h -1(w)h -1(o)h 13(scripts)h 15(used)h 15(the)h 14(same)h 13(name.)h 177 1636(In)s 13(the)h 14(case)h 14(of)h 12(the)h 14(prin)h -1(ting)h 12(system,)h 13(the)h 14(en)h -1(tire)h 13(system)h 13(w)h -1(as)h 13(describ)h 1(ed)h 15(and)h 13(de\014ned)h 14(in)h 13(a)h 12(single)h 13(F)h -3(unnel-)h 177 1686(W)s -3(eb)h 94(\014le.)h 19(In)h 15(larger)h 14(systems)h 14(con)h -1(taining)h 14(man)h -1(y)h 12(F)h -3(unnelW)h -3(eb)h 93(\014les)h 15(for)h 14(man)h -1(y)h 13(di\013eren)h -1(t)h 15(mo)h 1(dules)h 177 1736(in)s 13(man)h -1(y)h 11(di\013eren)h -1(t)h 13(languages,)h 13(the)h 13(same)h 12(tric)h -1(k)h 13(can)h 13(b)h 1(e)h 14(pulled)h 12(b)h -1(y)h 13(placing)h 12(F)h -3(unnelW)h -3(eb)h 12(macro)h 12(de\014nitions)h 177 1786(for)s 12(shared)h 13(v)h -2(alues)h 11(in)h -1(to)h 12(F)h -3(unnelW)h -3(eb)h 11(include)h 12(\014les.)h 18(F)h -3(or)h 11(example,)h 11(a)h 12(suite)h 12(of)h 11(implem)h -1(en)h -1(tations)h 10(of)h 12(net)h -1(w)h -1(ork)h 177 1836(no)s 1(des,)h 18(with)h 17(eac)h -1(h)h 18(impl)h -1(em)h -1(en)h -1(tation)h 15(b)h 1(eing)h 17(in)h 17(a)h 17(di\013eren)h -1(t)h 18(programm)h -1(i)h -1(ng)h 15(language)h 16(for)h 17(a)h 17(di\013eren)h -1(t)h 18(tar-)h 177 1885(get)s 15(mac)h -1(hine,)h 13(could)h 15(all)h 13(share)h 15(a)h 15(table)h 14(of)h 14(con\014guration)h 15(constan)h -1(ts)h 15(de\014ned)h 16(in)h 14(macros)h 14(in)h 14(a)h 14(F)h -3(unnelW)h -3(eb)h 177 1935(include)s 14(\014le.)h 177 2009(In)s 15(summa)h -1(ry)h -3(,)h 12(F)h -3(unnelW)h -3(eb's)h 15(macro)h 13(and)h 15(include)h 15(\014le)h 14(mec)h -1(hanisms)h 13(pro)h -1(vide)h 15(a)h 14(simple)h 14(w)h -1(a)h -1(y)h 14(for)h 14(programs)h 177 2059(written)s 13(in)h 12(di\013eren)h -1(t)h 14(languages)h 12(to)h 12(share)h 13(informatio)h -1(n.)h 16(This)h 12(reduces)h 15(redundancy)h 14(b)h 1(et)h -1(w)h -1(een)h 13(the)h 14(systems)h 177 2109(and)s 14(hence)h 15(the)h 15(c)h -1(hance)h 15(of)h 13(inconsistencies)h 15(arising.)h 177 2349(Often,)s 14(when)h 13(programm)h -1(ing,)h 11(there)h 14(is)h 13(a)h 13(need)h 14(for)h 13(a)h 13(co)h 1(de)h 14(abstraction)h 14(facilit)h -1(y)h 11(that)h 14(op)h 1(erates)h 14(at)h 13(the)h 14(text)h 177 2399(lev)s -1(el.)h 26(If)h 17(the)h 17(statemen)h -1(t)h 17(\\)h 110(")h 16(o)h 1(ccurs)h 19(often,)h 17(it)h 16(ma)h -1(y)h 15(b)h 1(e)h 17(b)h 1(est)h 18(simply)h 15(to)h 16(rep)h 1(eat)h 18(it)h 17(v)h -1(erbatim.)h 25(If)h 16(a)h 177 2449(sequence)s 14(of)h 11(one)h 11(h)h -1(undred)h 12(statemen)h -1(ts)h 12(is)h 11(rep)h 1(eated)h 14(often,)h 11(it)h 11(is)h 11(normal)h 10(to)h 11(remo)h -1(v)h -1(e)h 10(the)h 12(co)h 1(de)h 13(to)h 11(a)h 11(function)h 177 2498(and)s 14(replace)h 15(the)h 15(o)h 1(ccurrences)h 17(b)h -1(y)h 13(a)h 14(function)h 14(call.)h 17(Ho)h -1(w)h -1(ev)h -1(er,)h 14(in)h 14(b)h 1(et)h -1(w)h -1(een)h 15(these)h 16(t)h -1(w)h -1(o)h 13(extremes)h 15(are)h 14(cases)h 177 2548(where)s 16(a)h 15(particular)h 14(sequence)h 18(of)h 14(co)h 1(de)h 16(is)h 14(long)h 14(enough)h 15(and)h 15(app)h 1(ears)h 16(often)h 15(enough)h 15(to)h 14(b)h 1(e)h 16(troublesome,)h 177 2598(but)s 14(whic)h -1(h)h 14(is)h 14(b)h 1(ound)h 14(so)h 14(messily)h 12(to)h 14(its)h 14(en)h -1(vironmen)h -1(t)h 13(as)h 14(to)h 13(mak)h -1(e)h 13(a)h 13(function)h 14(call)h 13(cum)h -1(b)h 1(ersome.)h 177 2672(F)s -3(or)h 10(example,)h 10(the)h 11(follo)h -1(wing)h 8(line)h 10(of)h 11(statemen)h -1(ts)h 10(\(referring)h 12(to)h 10(\014v)h -1(e)h 11(v)h -2(ariables)h 10(declared)h 101(to)h 11(a)h 10(function\))h 177 2722(migh)s -1(t)h 12(app)h 1(ear)h 14(ten)h 15(times)h 13(in)h 13(a)h 14(function:)h 1042 2940(56)s 57 @eop 58 @bop0 cmbx12.300 sf [ 56 34 -1 33 58] 87 dc [ 40 34 -2 33 40] 66 dc 58 @bop1 cmsy10.300 sf 239 2186(\017)s 239 2362(\017)s 239 2488(\017)s 239 2565(\017)s 239 2642(\017)s cmbx12.300 sf 177 1580(2.13.5)s 55(When)h 19(Comme)h -1(n)h -2(ts)h 17(are)h 19(Bad)h cmtt10.300 sf 177 284(void)s 21(frobit\(a,b,c,)h -1(d,e\))h 177 334(float)s 21(*a,b;)h 177 384(int)s 21(*c,d;)h 177 434(unsigned)s 20(*e;)h 177 484({*a=b)s 21(<<)h 21(8;)h 22(*c=d)h 21(%)h 21(256;)h 21(*e=*e+1;})h 177 671(frobit\(&a,b,&)s -1(c,d,&)h -1(e\);)h 453 1725(REM)s 840 2186(.h)s cmr10.300 sf 177 42(No)s -1(w)h 11(the)h 12(\\normal")h 9(rule)h 12(of)h 11(programm)h -1(i)h -1(ng)h 10(sa)h -1(ys)h 11(that)h 12(these)h 13(statemen)h -1(ts)h 12(should)h 11(b)h 1(e)h 12(placed)h 12(in)h 11(a)h 11(pro)h 1(cedure)h 177 91(\(also)s 12(called)h 13(a)h 12(\\function")h 12(in)h 13(the)h 13(C)h 13(programm)h -1(i)h -1(ng)h 11(language)h 12(used)h 13(in)h 13(this)h 12(example\),)h 12(but)h 13(here)h 14(\014v)h -1(e)h 13(lo)h 1(cal)h 177 141(v)s -2(ariables)h 16(are)h 17(used.)h 27(Use)h 17(of)h 16(a)h 16(pro)h 1(cedure)h 18(\(function\))h 17(w)h -1(ould)h 15(result)h 18(in)h 16(a)h 16(pro)h 1(cedure)h 18(de\014nition)h 16(lo)h 1(oking)h 177 191(something)s 13(lik)h -1(e:)h 177 577(and)s 14(a)h 13(pro)h 1(cedure)h 16(call)h 13(something)h 13(lik)h -1(e)h 177 764(This)s 14(mig)h -1(h)h -1(t)h 12(b)h 1(e)h 14(w)h -1(ork)h -2(able)h 13(in)h 13(a)h 13(language)h 12(that)h 14(allo)h -1(w)h -1(ed)h 12(formal)h 11(parameters)h 14(to)h 13(b)h 1(e)h 14(sp)h 1(eci\014ed)h 15(to)h 14(b)h 1(e)h 14(b)h 1(ound)h 177 814(only)s 11(to)h 12(particular)h 11(v)h -2(ariables.)h 17(Simi)h -1(larl)h -1(y)h -3(,)h 9(it)h 12(migh)h -2(t)h 10(b)h 1(e)h 13(p)h 1(ossible)h 11(to)h 12(a)h -1(v)h -1(oid)h 10(the)h 13(parameter)h 11(list)h 11(in)h 11(languages)h 177 864(that)s 17(supp)h 1(ort)h 18(lo)h 1(cal)h 16(pro)h 1(cedures)h 19(that)h 17(can)h 17(access)h 19(non-lo)h 1(cal)h 16(v)h -2(ariables)h 16(\(suc)h -1(h)h 18(as)h 16(P)h -1(ascal\).)h 28(Ho)h -1(w)h -1(ev)h -1(er,)h 17(in)h 177 914(our)s 12(example)h 11(here,)h 13(in)h 11(the)h 13(C)h 12(programm)h -1(i)h -1(ng)h 10(language,)h 11(these)h 13(options)h 12(are)h 12(not)h 12(a)h -1(v)h -2(ailable,)h 10(and)h 12(so)h 12(w)h -1(e)h 12(m)h -1(ust)h 177 964(either)s 14(create)h 15(a)h 12(function)h 13(with)h 13(\014v)h -1(e)h 13(parameters,)h 13(or)h 13(use)h 14(the)h 13(C)h 13(macro)h 12(prepro)h 1(ces)h 1(sor)h 15(\(the)h 14(b)h 1(est)h 14(solution\).)h 177 1013(F)s -3(unnelW)h -3(eb)h 11(pro)h -1(vides)h 11(the)h 12(same)h 11(macro)h 10(facilit)h -1(y)h 9(for)h 11(languages)h 11(that)h 11(do)h 11(not)h 12(ha)h -1(v)h -1(e)h 11(a)h 11(built-in)h 10(prepro)h 1(cessor.)h 177 1082(In)s 13(particularly)h 13(sp)h 1(eed-stre)h 1(sse)h 1(d)h 15(applications,)h 12(the)h 14(programm)h -1(er)h 12(ma)h -1(y)h 11(b)h 1(e)h 14(reluctan)h -1(t)h 14(to)h 13(remo)h -1(v)h -1(e)h 13(co)h 1(de)h 14(to)h 13(a)h 177 1131(pro)s 1(cedure)h 16(b)h 1(ecause)h 16(of)h 13(the)h 14(pro)h 1(cedure-c)h 1(all)h 14(o)h -1(v)h -1(erhead.)h 19(F)h -3(unnelW)h -3(eb)h 13(macros)h 13(can)h 14(help)h 14(there)h 15(to)h 1(o.)h 177 1200(In)s 13(summary)h -4(,)h 11(there)h 14(sometimes)h 11(arises)h 14(in)h 13(programm)h -1(i)h -1(ng)h 11(situations)h 13(where)h 14(the)h 13(cost)h 14(of)h 12(de\014ning)h 13(a)h 13(pro)h 1(ce-)h 177 1249(dure)s 12(is)h 10(higher)h 11(than)h 11(the)h 12(b)h 1(ene\014ts)h 12(it)h 11(will)h 9(b)h 1(esto)h -1(w.)h 18(Comm)h -1(o)h -1(n)h 9(reasons)h 12(for)h 11(this)h 10(are)h 12(the)h 11(run-time)h 10(pro)h 1(cedure)h 177 1299(o)s -1(v)h -1(erhead)h 13(and)h 13(the)h 13(messy)h 12(binding)h 12(problems)h 11(caused)h 14(b)h -1(y)h 13(remo)h -1(ving)h 10(target)h 13(co)h 1(de)h 14(from)h 11(its)h 12(target)h 14(con)h -1(text.)h 177 1349(F)s -3(unnelW)h -3(eb)h 14(can)h 14(help)h 14(in)h 14(these)h 15(situations)h 14(b)h -1(y)h 14(allo)h -1(wing)h 12(the)h 14(programm)h -1(er)h 13(to)h 14(de\014ne)h 15(a)h 14(text)h 15(macro.)h 17(This)h 177 1399(a)s -1(v)h -1(oids)h 15(all)h 15(the)h 16(problems)h 15(and)h 15(pro)h -1(vides)h 16(an)h 16(additional)h 14(incen)h -1(tiv)h -1(e)h 16(for)h 15(the)h 17(programm)h -1(er)h 14(to)h 16(describ)h 1(e)h 17(the)h 177 1449(piece)s 15(of)h 13(co)h 1(de)h 15(so)h 14(isolated.)h 177 1676(In)s 16(the)h 17(\\go)h 1(o)h 1(d)h 16(old)h 15(da)h -1(ys")h 16(of)h 16(small)h 14(mac)h -1(hine)h 15(mem)h -1(ories)h 15(and)h 16(in)h -1(terpreted)h 18(BASIC,)h 16(programm)h -1(ers)h 16(w)h -1(ould)h 177 1725(eliminate)s 14(the)h 16(\\)h 66(")h 14(statemen)h -1(ts)h 15(\(commen)h -1(ts\))h 14(from)h 14(their)h 16(BASIC)h 16(programs)h 14(so)h 15(as)h 16(to)h 15(sa)h -1(v)h -1(e)h 16(space)h 16(and)h 177 1775(increase)s 14(execution)h 14(sp)h 1(eed.)h 19(Whilst)h 13(this)h 13(w)h -1(as)h 13(ob)h -1(viously)h 11(an)h 13(appalling)h 11(programm)h -1(ing)h 11(practice,)h 13(the)h 14(small)h 177 1825(memori)s -1(es)h 13(and)h 14(slo)h -1(w)h 13(micropro)h 1(cessors)h 15(often)h 14(made)h 12(this)h 14(tempting,)h 12(if)h 13(not)h 14(necessary)h -3(.)h 177 1893(Thankfully)s -3(,)h 9(times)h 10(ha)h -1(v)h -1(e)h 11(c)h -1(hanged)h 12(since)h 11(then,)h 12(and)h 11(most)h 10(co)h 1(de)h 12(is)h 11(no)h -1(w)h 10(compiled)h 10(rather)h 12(than)h 11(in)h -1(terpreted.)h 177 1943(Ho)s -1(w)h -1(ev)h -1(er,)h 19(from)h 17(time)h 16(to)h 18(time)h 17(one)h 18(still)h 17(runs)h 19(in)h -1(to)h 18(an)h 17(en)h -1(vironmen)h -1(t)h 17(or)h 18(situation,)h 18(or)h 19(sp)h 1(ecial-purp)h 1(ose)h 177 1993(language,)s 21(where)h 22(comm)h -1(en)h -1(ts)h 20(are)h 21(either)h 21(una)h -1(v)h -2(ailable)h 19(\(no)h 20(commen)h -1(t)h 19(feature\))h 21(or)h 21(undesirable.)h 39(Here)h 177 2043(F)s -3(unnelW)h -3(eb)h 12(can)h 13(b)h 1(e)h 13(used)h 13(to)h 13(fully)h 11(do)h 1(cumen)h -1(t)h 12(the)h 13(co)h 1(de)h 13(without)h 12(resulting)h 13(in)h 12(an)h -1(y)h 12(comm)h -1(en)h -1(ts)h 11(in)h 12(the)h 13(\014nal)h 177 2092(co)s 1(de)h 15(at)h 14(all.)h 16(F)h -3(or)h 14(example:)h 281 2186(Comm)s -1(en)h -1(ts)h 16(in)h 16(frequen)h -1(tly)h 18(used)h 78(header)h 18(\014les)h 18(in)h 16(C)h 17(programs)h 16(can)h 17(ha)h -1(v)h -1(e)h 17(a)h 17(signi\014can)h -1(t)h 16(impact)h 281 2236(on)s 15(compila)h -1(tion)h 13(sp)h 1(eed.)h 23(Often)h 16(suc)h -1(h)h 15(header)h 17(\014les)h 15(are)h 15(fairly)h 14(cryptic)h 16(and)h 15(really)h 14(ough)h -1(t)h 15(to)h 15(b)h 1(e)h 15(w)h -1(ell)h 281 2286(comm)s -1(en)h -1(ted,)h 13(but)h 14(their)h 14(authors)h 14(are)h 15(reluctan)h -1(t)h 14(to.)h 281 2362(Comm)s -1(en)h -1(ts)h 17(are)h 20(undesirable)h 19(in)h 18(P)h -1(ostScript)h 20(header)h 20(\014les)h 19(that)h 19(m)h -1(ust)h 18(b)h 1(e)h 19(transferred)h 21(rep)h 1(eatedly)h 281 2412(along)s 13(comm)h -2(unicati)h -1(ons)h 12(c)h -1(hannels)h 15(\(e.g.)h 13(the)h 15(Apple)h 14(Macin)h -1(tosh)h 14(LaserW)h -3(riter)h 14(header)h 15(\014le\).)h 281 2488(In)s -1(terpreted)h 16(programs)h 13(in)h 13(em)h -1(b)h 1(edded)h 14(systems.)h 281 2565(Hand)s 14(written)h 14(mac)h -1(hine)h 13(co)h 1(de)h 14(in)h 14(hex)h 14(dump)h 13(form)h 12(could)h 14(b)h 1(e)h 14(commen)h -1(ted.)h 281 2642(A)s 16(programm)h -1(er)h 14(ma)h -1(y)h 13(wish)h 16(to)h 15(annotate)h 15(a)h 16(text)h 16(data)h 15(\014le)h 15(con)h -1(taining)h 15(lists)h 15(of)h 15(n)h -1(um)h -1(b)h 1(ers)h 15(that)h 16(is)h 15(to)h 281 2691(b)s 1(e)h 13(fed)h 12(in)h -1(to)h 12(a)h 11(statistical)h 12(program)h 11(that)h 12(do)h 1(es)h 13(not)h 12(pro)h -1(vide)h 12(an)h -1(y)h 12(comm)h -1(en)h -1(t)h 11(facilit)h -1(y)h 10(for)h 12(its)h 12(input)h 12(\014le.)h 177 2785(In)s 12(all)h 11(these)h 13(situations,)h 11(F)h -3(unnelW)h -3(eb)h 12(allo)h -1(ws)h 10(full)h 11(in)h -1(tegrated)h 12(do)h 1(cumen)h -1(tation)h 10(without)h 12(an)h -1(y)h 11(impact)h 11(on)h 11(the)h 177 2835(\014nal)s 13(co)h 1(de.)h 1042 2940(57)s 58 @eop 59 @bop0 59 @bop1 cmbx12.300 sf 177 42(2.13.6)s 55(Do)h 2(cumen)h -2(ts)h 17(That)h 19(Share)h 19(T)h -5(ext)h cmtt10.300 sf 177 537(@O@=)h -1(=@{@<)h -1(M1@>@)h -1(+@})h 177 587(@O@=)h -1(=@{@<)h -1(M2@>@)h -1(+@})h 177 687(@$@+=@{@)s -1()h -1(@})h 177 736(@$@+=@{@)s -1()h -1(@})h 177 786(@$@@M==@)s -1({Firs)h -1(t)h 20(lump)h 21(of)h 21(text)h 21(shared)h 21(by)h 21(both)h 21(documents.@+@})h 177 886(@$@+=@{T)s -1(ext)h 20(for)h 21(first)h 21(document@+@)h -1(})h 177 936(@$@+=@{T)s -1(ext)h 20(for)h 21(second)h 20(document@+@})h 177 1035(@$@+=@{@)s -1()h -1(@})h 177 1085(@$@+=@{@)s -1()h -1(@})h 177 1135(@$@@M==@)s -1({Seco)h -1(nd)h 20(lump)h 21(of)h 21(text)h 21(shared)h 21(by)h 21(both)h 21(documents.@+@)h -1(})h 177 1521(@!)s 22(Set)h 21(the)h 21(definition)h 20(of)h 21(@#D)h 21(to)h 177 1571(@!)s 87(@1)h 21(to)h 22(create)h 20(the)h 21(shareholders)h 20(report.)h 177 1621(@!)s 87(@2)h 21(to)h 22(create)h 20(the)h 21(customers)h 20(report.)h 177 1670(@$@#D@\(@2@\)@M)s -1(==@{@)h -1(1@})h 177 1770(@O@==)h -1(@{@-)h 177 1820(1992)s 21(ANNUAL)h 21(REPORT)h 20(TO)h 22(@#D@\(Shareh)h -1(older)h -1(s@,C)h -1(ustom)h -1(ers@\))h 177 1870(=============)s -1(=====)h -1(====@)h -1(#D@\(=)h -1(=====)h -1(=====)h -1(=@,=)h -1(=====)h -1(===@\))h 177 1919(This)s 21(has)h 21(been)h 21(a)h 22(very)h 21(good)h 21(year)h 21(for)h 21(The)h 21(Very)h 21(Big)h 21(Corporation)h 20(of)h 21(America.)h 177 1969(With)s 21(your)h 21(help,)h 21(we)h 21(have)h 21(been)h 21(able)h 21(to)h 22(successful)h -1(ly)h 177 2019(@#D@\(@"screw)s 19(the)h 22(customers)h 20(for)h 21(every)h 21(cent)h 20(they)h 21(have@"@,)h 286 2069(@"knock)s 20(the)h 22(shareholder)h -1(s)h 20(into)h 21(submission)h 20(to)h 21(bring)h 21(you)h 21(lower)h 21(prices@"@\).)h 177 2119(With)s 21(gross)h 21(earnings)h 20(approaching)h 20(six)h 21(trillion)h 20(dollars,)h 20(we)h 21(have)h 21(been)h 21(able)h 21(to)h 177 2168(@#D@\(@"increa)s -1(se)h 20(dividends@"@)h -1(,)h 286 2218(@"lower)s 20(prices@"@\).)h 177 2268(We)s 22(expect)h 20(to)h 21(have)h 21(an)h 22(even)h 21(better)h 20(year)h 21(next)h 21(year.)h 177 2318(@})s cmr10.300 sf 177 144(F)s -3(unnelW)h -3(eb)h 13(is)h 13(v)h -1(ery)h 14(useful)h 14(when)h 14(preparing)h 13(m)h -1(ultiple)h 12(do)h 1(cumen)h -1(ts)h 13(that)h 14(m)h -1(ust)h 12(share)h 14(large)h 13(slabs)h 14(of)h 13(iden-)h 177 194(tical)s 13(text)h 15(that)h 14(are)h 14(b)h 1(eing)h 14(constan)h -1(tly)h 14(mo)h 1(di\014ed.)h 177 270(F)s -3(or)h 14(example)h 12(someone)h 13(preparing)h 14(t)h -1(w)h -1(o)h 14(sligh)h -1(tly)h 12(di\013eren)h -1(t)h 15(user)h 15(man)h -1(ual)h -1(s)h 13(for)h 13(t)h -1(w)h -1(o)h 13(sligh)h -1(tly)h 13(di\013eren)h -1(t)h 15(audi-)h 177 319(ences)s 16(migh)h -1(t)h 12(w)h -1(an)h -1(t)h 13(the)h 14(man)h -1(uals)h 12(to)h 14(share)h 15(large)h 13(slabs)h 14(of)h 13(text,)h 14(while)h 14(still)h 13(allo)h -1(wing)h 11(di\013erences)h 16(b)h 1(et)h -1(w)h -1(een)h 177 369(them.)s 18(The)h 15(follo)h -1(wi)h -1(ng)h 12(example)h 13(sho)h -1(ws)h 14(ho)h -1(w)h 14(this)h 14(can)h 15(b)h 1(e)h 14(done.)h 20(The)h 14(co)h 1(de)h 15(is)h 14(cluttered,)h 15(but)h 15(this)h 14(clutter)h 177 419(w)s -1(ould)h 13(not)h 14(b)h 1(e)h 15(a)h 13(problem)h 13(if)h 13(the)h 14(lumps)h 13(of)h 13(text)h 14(w)h -1(ere)h 15(mo)h 1(derately)h 13(large.)h 177 1253(An)s 16(alternativ)h -1(e)h 16(approac)h -1(h,)h 15(whic)h -1(h)h 16(migh)h -1(t)h 14(w)h -1(ork)h 15(b)h 1(etter)h 17(in)h 16(situations)h 15(where)h 17(there)h 17(are)h 16(man)h -1(y)h 14(small)h 14(dif-)h 177 1303(ferences)s 18(b)h 1(et)h -1(w)h -1(een)h 17(the)h 16(t)h -1(w)h -1(o)h 15(do)h 1(cumen)h -1(ts)h 16(rather)h 16(than)h 16(a)h 15(few)h 16(large)h 15(ones,)h 17(is)h 15(to)h 16(de\014ne)h 16(a)h 16(macro)h 14(with)h 15(t)h -1(w)h -1(o)h 177 1353(argumen)s -1(ts,)h 11(one)h 12(for)h 11(eac)h -1(h)h 12(pro)h 1(duct)h 12(\014le)h 12(do)h 1(cumen)h -1(t.)h 17(W)h -3(rite)h 11(the)h 12(do)h 1(cumen)h -1(t)h 11(from)h 10(top)h 11(to)h 12(b)h 1(ottom,)h 10(but)h 12(place)h 177 1403(all)s 13(stretc)h -1(hes)h 16(that)h 14(di\013er)h 14(b)h 1(et)h -1(w)h -1(een)h 16(the)h 14(t)h -1(w)h -1(o)h 14(do)h 1(cumen)h -1(ts)h 13(in)h 14(a)h 13(macro)h 13(call.)h 177 2436(One)s 17(application)h 16(where)h 17(text)h 17(sharing)h 17(can)h 16(b)h 1(e)h 18(particularly)h 15(useful)h 17(is)h 16(in)h 16(the)h 18(preparation)h 16(of)h 16(computer)h 177 2486(do)s 1(cumen)h -1(tation)h 10(con)h -1(taining)h 10(examples.)h 17(F)h -3(or)h 11(example,)h 10(a)h 11(b)h 1(o)h 1(ok)h 11(describing)h 11(a)h 11(new)h 12(programm)h -1(ing)h 9(language)h 177 2536(migh)s -1(t)h 11(b)h 1(e)h 14(full)h 11(of)h 13(examples)h 12(of)h 12(small)h 11(programs)h 12(written)h 13(in)h 13(the)h 14(language)h 12(whic)h -1(h)h 13(the)h 13(user)h 14(migh)h -1(t)h 11(w)h -1(an)h -1(t)h 13(to)h 177 2586(try)s 13(without)h 13(ha)h -1(ving)h 12(to)h 13(t)h -1(yp)h 1(e)h 13(them)h 12(all)h 12(in.)h 17(The)h 14(\\default")h 12(approac)h -1(h)h 13(of)h 12(k)h -1(eeping)h 13(a)h 13(cop)h -1(y)h 13(of)h 12(the)h 14(examples)h 177 2635(in)s 13(the)h 14(text)h 14(of)h 12(the)h 14(b)h 1(o)h 1(ok)h 13(and)h 13(another)h 14(cop)h -1(y)h 13(in)h 13(separate)h 14(\014les)h 14(is)h 13(cum)h -1(b)h 1(ersome)h 12(and)h 13(error)h 15(prone,)h 13(b)h 1(ecause)h 177 2685(b)s 1(oth)h 14(\014les)h 14(ha)h -1(v)h -1(e)h 14(to)h 14(b)h 1(e)h 14(up)h 1(dated)h 15(whenev)h -1(er)h 15(an)h 13(example)h 13(is)h 14(c)h -1(hanged.)h 18(A)h 14(more)h 13(sophisticated)h 14(approac)h -1(h)h 14(is)h 177 2735(to)s 11(store)h 11(eac)h -1(h)h 11(example)h 9(in)h 11(a)h 10(separate)h 12(\014le,)h 10(and)h 11(then)h 11(use)h 11(the)h 12(\\include)h 10(\014le")h 10(facilit)h -1(y)h 9(of)h 10(the)h 11(w)h -1(ord)h 11(pro)h 1(cessor)h 177 2785(to)s 15(include)h 15(eac)h -1(h)h 16(example)h 14(in)h 15(the)h 15(text.)h 23(This)h 15(is)h 15(a)h 15(b)h 1(etter)h 16(solution,)h 14(but)h 16(su\013ers)h 17(from)h 13(a)h 15(few)h 15(dra)h -1(wbac)h -1(ks.)h 177 2835(First,)s 17(when)h 16(editing)h 16(the)h 17(b)h 1(o)h 1(ok)h 16(in)h 16(a)h 15(w)h -1(ord)h 16(pro)h 1(cessor,)h 19(the)h 16(examples)h 16(in)h 15(the)h 17(b)h 1(o)h 1(ok)h 16(will)h 15(not)h 16(b)h 1(e)h 16(directly)h 1042 2940(58)s 59 @eop 60 @bop0 cmbx12.300 sf [<0003FE0040001FFFC0C0007F00F1C001F8003FC003F0000FC007C00007C00FC00003C0 1F800003C03F000001C03F000001C07F000000C07E000000C07E000000C0FE00000000FE 00000000FE00000000FE00000000FE00000000FE00000000FE00000000FE000FFFFC7E00 0FFFFC7F00001FC07F00001FC03F00001FC03F00001FC01F80001FC00FC0001FC007E000 1FC003F0001FC001FC003FC0007F80E7C0001FFFC3C00003FF00C0> 40 34 -3 33 44] 71 dc 60 @bop1 cmbx12.300 sf 177 1866(2.13.7)s 55(Generics)h cmtt10.300 sf 1241 316(.fw)s 177 534(@O@==@{)h -1(@#B@})h 177 633(@$@#B+=@{@-)s 177 683(The)s 21(first)h 21(step)h 21(to)h 21(learning)h 21(the)h 21(object)h 20(oriented)h 20(AdaCgol++)h 20(language)h 21(is)h 21(to)h 21(examine)h 177 733(a)s 22(hello)h 21(world)h 20(program.)h 177 832(\\start{verbat)s -1(im})h 177 882(@)s 177 932(\\finish{verba)s -1(tim})h 177 982(@})s 177 1081(@$@==@{)s -1(read)h 19(iopack@+Enter)h 20(!World~!)h 20(!Hello~!)h 20(ex)h 21(pr)h 22(flu)h 21(X[1]@})h 177 1131(@O@==)s -1(@{@@)h -1(})h 177 1231(@$@#B+=@{@-)s 177 1281(To)s 22(understand)h 19(the)h 21(program,)h 21(think)h 20(of)h 22(the)h 21(execution)h 20(state)h 21(as)h 21(a)h 22(plate)h 20(of)h 22(cheese...)h 177 1331(@})s 1392 1448(@#B)s 177 2835(@$@@\(@2)h -1(@\)==@)h -1({@-)h cmr10.300 sf 177 42(accessible)s 19(or)h 18(visible.)h 29(T)h -3(o)h 17(see)h 19(an)h 17(example,)h 17(the)h 18(writer)h 18(w)h -1(ould)h 17(ha)h -1(v)h -1(e)h 18(to)h 17(op)h 1(en)h 19(the)h 18(\014le)h 18(con)h -1(taining)h 16(the)h 177 91(example)s 11(in)h 11(a)h 12(separate)h 13(windo)h -1(w.)h 17(This)h 12(could)h 11(b)h 1(ecome)h 12(tedious)h 12(if)h 12(the)h 12(text)h 13(con)h -1(tained)h 12(man)h -1(y)h 10(examples,)h 11(as)h 177 141(man)s -1(y)h 12(texts)h 15(do.)h 17(F)h -3(urthermore,)h 13(there)h 15(is)h 14(a)h 13(risk)h 14(that)h 13(some)h 13(example)h 12(\014les)h 14(will)h 13(b)h 1(e)h 14(included)h 14(in)h 13(the)h 14(wrong)h 177 191(place.)s 18(Second,)h 12(b)h 1(ecause)h 14(the)h 12(b)h 1(o)h 1(ok)h 12(is)h 11(dep)h 1(enden)h -1(t)h 14(on)h 11(the)h 13(included)h 11(\014les,)h 13(the)h 12(b)h 1(o)h 1(ok)h 11(will)h 11(end)h 12(up)h 12(consisting)h 177 241(of)s 13(a)h 14(directory)h 15(of)h 13(a)h 14(h)h -1(undred)h 14(or)h 14(more)h 13(\014les)h 14(instead)h 14(of)h 14(just)h 14(a)h 13(few.)h 177 316(An)s 13(alternativ)h -1(e)h 12(solution)h 12(is)h 12(to)h 13(construct)h 14(a)h 12(single)h 13(F)h -3(unnelW)h -3(eb)h 89(\014le)h 13(that,)h 12(when)h 13(pro)h 1(cesse)h 1(d,)h 14(pro)h 1(duces)h 177 366(b)s 1(oth)h 16(the)h 16(b)h 1(o)h 1(ok)h 16(\014le)h 16(and)h 15(the)h 17(example)h 14(\014les.)h 24(This)h 16(solution)h 15(assumes)h 15(that)h 16(the)h 16(b)h 1(o)h 1(ok)h 16(consists)h 17(of)h 15(a)h 15(text)h 177 416(\014le)s 14(con)h -1(taining)h 13(comm)h -1(ands)h 12(for)h 14(a)h 13(t)h -1(yp)h 1(esette)h 1(r)h 16(suc)h -1(h)h 14(as)h 14(T)h 1112 425(E)s 1135 416(X.)s 177 1448(Most)s 12(of)h 11(the)h 12(\014le)h 11(will)h 10(consist)h 12(of)h 11(part)h 12(de\014nitions)h 11(of)h 11(the)h 12(additiv)h -1(e)h 11(macro)h 76(.)h 11(The)h 12(de\014nition)h 11(is)h 11(\\brok)h -1(en")h 177 1498(to)s 14(allo)h -1(w)h 12(a)h 14(macro)h 12(de\014nition,)h 13(wherev)h -1(er)h 16(an)h 14(example)h 12(app)h 1(ears.)h 177 1573(The)s 10(example)h 9(ab)h 1(o)h -1(v)h -1(e)h 9(is)h 9(a)h 10(little)h 9(messy)h 9(b)h 1(ecause)h 11(F)h -3(unnelW)h -3(eb)h 9(do)h 1(es)h 11(not)h 9(allo)h -1(w)h 8(macros)h 9(connected)h 11(to)h 10(pro)h 1(duct)h 177 1623(\014les)s 18(to)h 17(b)h 1(e)h 18(called,)h 17(and)h 17(it)h 17(do)h 1(es)h 18(not)h 17(ha)h -1(v)h -1(e)h 17(text)h 18(expressions)h 19(that)h 17(write)h 17(to)h 18(an)h 17(pro)h 1(duct)h 18(\014le)h 17(as)h 17(w)h -1(ell)h 17(as)h 177 1673(ev)s -2(aluating)h 14(to)h 15(text.)h 22(Nev)h -1(ertheless,)h 17(it)h 15(presen)h -1(ts)h 17(a)h 15(fairly)h 14(clean)h 15(solution)h 14(to)h 15(the)h 16(problem)h 14(of)h 14(k)h -1(eeping)h 15(the)h 177 1723(example)s 13(programs)h 12(in)h 14(a)h 13(computing)h 13(text)h 14(up)h 14(to)h 14(date.)h 177 1968(It)s 13(is)h 13(w)h -1(ell)h 12(kno)h -1(wn)h 13(that)h 13(generics)h 14(in)h 13(programm)h -1(i)h -1(ng)h 11(languages)h 12(are)h 14(closely)h 13(aligned)h 12(with)h 12(textual)h 13(substitu-)h 177 2018(tion.)s 16(In)h 11(fact,)h 10(a)h 10(go)h 1(o)h 1(d)h 10(w)h -1(a)h -1(y)h 10(to)h 10(understand)h 12(the)h 11(generic)h 11(facilit)h -1(y)h 9(of)h 9(a)h 10(new)h 11(programm)h -1(ing)h 8(language)h 9(is)h 11(to)h 10(ask)h 177 2068(oneself)s 15(the)h 15(question)h 15(\\In)h 14(what)h 14(w)h -1(a)h -1(y)h 14(do)h 1(es)h 15(this)h 15(generic)h 15(facilit)h -1(y)h 13(di\013er)h 15(from)h 12(simple)h 13(text)h 15(substitution?")h 177 2118(The)s 18(di\013erences)h 1(,)h 20(if)h 16(an)h -1(y)h -3(,)h 17(t)h -1(ypically)h 17(ha)h -1(v)h -1(e)h 17(to)h 17(do)h 18(with)h 17(the)h 18(di\013erence)h 20(in)h 17(scoping)h 17(b)h 1(et)h -1(w)h -1(een)h 19(textual)h 18(and)h 177 2168(in)s -1(telligen)h -1(t)h 15(substitution)h 15(and)h 16(whether)h 17(the)h 16(generic)h 16(co)h 1(de)h 17(is)h 15(shared)h 17(or)h 15(copied)h 16(b)h -1(y)h 16(the)h 16(impl)h -1(emen)h -1(tati)h -1(on.)h 177 2217(In)s 14(most)h 13(cases)h 15(the)h 14(di\013erences)h 17(are)h 14(quite)h 14(minor.)h 177 2293(Because)s 15(generic)h 15(facilities)h 12(are)h 13(so)h 14(closely)h 13(aligned)h 12(with)h 13(text)h 14(substitution,)h 13(it)h 13(is)h 13(p)h 1(ossible)h 14(to)h 13(use)h 14(F)h -3(unnel-)h 177 2343(W)s -3(eb's)h 16(parameterized)h 16(macros)h 16(to)h 16(pro)h -1(vide)h 16(generics)h 17(in)h 16(programm)h -1(i)h -1(ng)h 14(languages)h 16(that)h 16(do)h 16(not)h 16(supp)h 1(ort)h 177 2392(generics.)s 27(Simply)h 14(write)h 17(a)h 16(F)h -3(unnelW)h -3(eb)h 15(macro)h 16(whose)h 17(parameters)h 16(are)h 17(the)h 17(parameters)h 16(of)h 16(the)h 17(generic)h 177 2442(and)s 14(whose)h 14(b)h 1(o)h 1(dy)h 14(is)h 14(the)h 15(generic)h 14(ob)h 2(ject.)h 177 2518(The)s 16(follo)h -1(wing)h 13(F)h -3(unnelW)h -3(eb)h 16(\014le)h 15(giv)h -1(es)h 16(an)h 15(example)h 15(of)h 15(a)h 15(fully)h 15(w)h -1(ork)h -1(ed)h 15(V)h -3(ax)h 15(P)h -1(ascal)h 16(generic)h 17(set)h 16(pac)h -1(k)h -2(age)h 177 2567(implem)s -1(en)h -1(ted)h 14(using)h 15(F)h -3(unnelW)h -3(eb)h 14(parameterized)h 15(macros.)h 21(The)h 15(pac)h -1(k)h -2(age)h 15(w)h -1(as)h 15(written)h 15(b)h -1(y)h 15(Barry)h 16(Dwy)h -1(er)h 177 2617(of)s 12(the)h 14(Computer)h 11(Science)h 15(Departmen)h -1(t)h 12(of)h 12(the)h 13(Univ)h -1(ersit)h -1(y)h 13(of)h 12(Adelaide)h 12(in)h 13(1987)h 11(and)h 13(w)h -1(as)h 12(emailed)h 11(to)h 13(me)h 177 2667(on)s 16(11)h 15(No)h -1(v)h -1(em)h -1(b)h 1(er)h 14(1987.)h 23(The)h 16(generic)h 16(pac)h -1(k)h -2(age)h 15(pro)h -1(vides)h 16(a)h 15(set)h 17(abstraction)h 16(impl)h -1(emen)h -1(ted)h 14(using)h 15(link)h -1(ed)h 177 2717(lists.)s 18(Note)h 14(the)h 15(clev)h -1(er)h 15(use)h 14(of)h 14(the)h 14(instan)h -1(tiation)h 13(parameters)h 14(in)h 13(t)h -1(yp)h 1(e,)h 14(function,)h 13(and)h 14(pro)h 1(cedure)h 16(names.)h 1042 2940(59)s 60 @eop 61 @bop0 61 @bop1 cmr10.300 sf 1042 2940(60)s cmtt10.300 sf 177 42(@!)s 22(@1)h 21(is)h 21(the)h 21(base)h 21(type,)h 21(@2)h 22(is)h 21(the)h 21(set)h 21(type.)h 177 91([inherit)s 20(\('@1'\),)h 21(environment)h 19(\('@2'\)])h 177 191(module)s 21(@2;)h 177 291(type)s 43(@2)h 21(=)h 22(^@2Record;)h 308 340(@2Record)s 20(=)h 22(record)h 373 390(Member:)s 21(@1;)h 373 440(Next:)s 21(@2;)h 373 490(end;)s 177 589(procedure)s 20(Null@2)h 21(\(var)h 21(Result:)h 20(@2\);)h 177 639(begin)s 21(new)h 21(\(Result\);)h 177 689(Result^.Membe)s -1(r)h 20(:=)h 21(\(-)h 22(MaxInt\)::@1;)h 177 739(Result^.Next)s 19(:=)h 22(nil)h 21(end;)h 177 839(function)s 20(IsNull@2)h 20(\(S:)h 22(@2\):)h 21(boolean;)h 177 888(begin)s 21(IsNull@2)h 20(:=)h 21(S^.Member::inte)h -1(ger)h 20(=)h 21(-)h 22(MaxInt)h 20(end;)h 177 988(procedure)s 20(ForEach@1)h 20(\(S:)h 21(@2;)h 21(procedure)h 20(DoIt)h 21(\(i:)h 21(@1\)\);)h 177 1038(var)s 65(ThisS,)h 20(NextS:)h 21(@2;)h 177 1088(begin)s 21(ThisS)h 21(:=)h 21(S;)h 177 1137(while)s 21(ThisS^.Membe)h -1(r::in)h -1(teger)h 19(<>)h 22(-)h 21(MaxInt)h 21(do)h 243 1187(begin)s 20(NextS)h 21(:=)h 21(ThisS^.Next;)h 243 1237(DoIt)s 21(\(ThisS^.Me)h -1(mber\))h -1(;)h 243 1287(ThisS)s 20(:=)h 22(NextS)h 20(end;)h 177 1337(end;)s 177 1436(function)s 20(First@1)h 21(\(S:)h 21(@2\):)h 21(@1;)h 177 1486(begin)s 21(First@1)h 20(:=)h 22(S^.Member)h 20(end;)h 177 1586(function)s 20(Is@1InSet)h 20(\(i:)h 21(@1;)h 22(S:)h 21(@2\):)h 21(boolean;)h 243 1636(procedure)s 19(TestEquals)h 20(\(j:)h 21(@1\);)h 243 1685(begin)s 20(if)h 22(Equal@1)h 20(\(i,)h 21(j\))h 22(then)h 21(Is@1InSet)h 19(:=)h 22(true;)h 21(end;)h 177 1735(begin)s 21(Is@1InSet)h 20(:=)h 21(false;)h 21(ForEach@1)h 20(\(S,)h 21(TestEquals\);)h 19(end;)h 177 1835(function)s 20(Includes@2)h 20(\(S1,)h 21(S2:)h 21(@2\):)h 21(boolean;)h 177 1885(var)s 21(Result:)h 21(boolean;)h 243 1934(procedure)s 19(TestIfInS1)h 20(\(i:)h 21(@1\);)h 243 1984(begin)s 20(if)h 22(Result)h 20(then)h 21(if)h 22(not)h 21(Is@1InSet)h 20(\(i,)h 21(S1\))h 21(then)h 21(Result)h 21(:=)h 21(false;)h 20(end;)h 177 2034(begin)s 21(Result)h 20(:=)h 22(true;)h 177 2084(ForEach@1)s 20(\(S2,)h 21(TestIfInS1\);)h 177 2134(Includes@2)s 20(:=)h 21(Result)h 21(end;)h 177 2233(function)s 20(Disjoint@2s)h 20(\(S1,)h 21(S2:)h 21(@2\):)h 21(boolean;)h 177 2283(var)s 21(Result:)h 21(boolean;)h 243 2333(procedure)s 19(TestIfInS1)h 20(\(i:)h 21(@1\);)h 243 2383(begin)s 20(if)h 22(Result)h 20(then)h 21(if)h 22(Is@1InSet)h 20(\(i,)h 21(S1\))h 21(then)h 21(Result)h 20(:=)h 22(false;)h 20(end;)h 177 2433(begin)s 21(Result)h 20(:=)h 22(true;)h 177 2482(ForEach@1)s 20(\(S2,)h 21(TestIfInS1\);)h 177 2532(Disjoint@2s)s 20(:=)h 21(Result)h 21(end;)h 177 2632(function)s 20(Equal@2)h 21(\(S1,)h 21(S2:)h 21(@2\):)h 21(boolean;)h 177 2682(begin)s 177 2731(Equal@2)s 21(:=)h 21(Includes@2)h 20(\(S1,)h 21(S2\))h 21(and)h 21(Includes@2)h 20(\(S2,)h 21(S1\);)h 177 2781(end;)s 61 @eop 62 @bop0 62 @bop1 cmti10.300 sf 1502 2458(with)s 13(c)h -2(omplete)h 13(typ)h -2(esafety.)h cmr10.300 sf 177 2408(A)s 12(great)h 13(adv)h -2(an)h -1(tage)h 11(of)h 11(the)h 13(approac)h -1(h)h 12(re\015ected)h 14(in)h 12(the)h 12(ab)h 1(o)h -1(v)h -1(e)h 12(example)h 11(is)h 12(that)h 12(it)h 12(allo)h -1(ws)h 10(the)h 13(programm)h -1(er)h 177 2458(to)s 12(construct)h 14(a)h 11(generic)h 13(ob)h 2(ject)h 13(in)h 12(a)h 11(language)h 12(that)h 12(do)h 1(es)h 12(not)h 12(supply)h 12(generics,)h 177 2507(This)s 13(con)h -1(trasts)h 14(to)h 12(the)h 14(approac)h -1(h)h 12(that)h 13(migh)h -1(t)h 11(b)h 1(e)h 13(used)h 14(in)h 12(a)h 13(language)h 12(suc)h -1(h)h 13(as)h 13(C)h 13(where)h 14(the)h 13(programm)h -1(er)h 177 2557(migh)s -1(t)h 11(c)h -1(ho)h 1(ose)h 13(to)h 13(construct)h 14(a)h 12(\\generic")h 13(pac)h -1(k)h -2(age)h 12(b)h -1(y)h 13(parameterizing)h 12(a)h 12(pac)h -1(k)h -2(age)h 12(with)h 12(p)h 1(oin)h -1(ters)h 14(to)h 100(.)h 177 2607(The)s 14(resulting)h 13(pac)h -1(k)h -2(age)h 13(is)h 13(p)h 1(o)h -1(w)h -1(erful)h 13(but)h 13(extremely)h 13(un)h -1(t)h -1(yp)h 1(esafe.)h 18(Suc)h -1(h)h 14(a)h 13(generic)h 14(list)h 12(pac)h -1(k)h -2(age)h 13(is)h 13(used)h 14(in)h 177 2657(the)s 13(co)h 1(de)h 14(of)h 12(F)h -3(unnelW)h -3(eb)h 12(itself)h 12(and)h 13(caused)h 14(no)h 12(end)h 13(of)h 12(problems,)h 12(as)h 12(the)h 14(compiler)h 11(had)h 12(no)h 13(w)h -1(a)h -1(y)h 12(of)h 12(telling)h 177 2707(if)s 19(p)h 1(oin)h -1(ters)h 20(to)h 19(the)h 20(correctly)h 21(t)h -1(yp)h 1(ed)h 20(ob)h 2(ject)h 20(w)h -1(ere)h 21(b)h 1(eing)h 19(handed)h 20(to)h 20(the)h 20(correct)h 21(list-ob)h 2(ject/function)h 177 2757(com)s -1(bination.)h 177 2835(The)s 19(ma)h 2(jor)h 18(disadv)h -2(an)h -1(tage)h 18(of)h 18(the)h 19(text)h 20(generic)h 20(approac)h -1(h)h 18(is)h 19(that)h 19(it)h 19(causes)h 20(the)h 19(co)h 1(de)h 20(of)h 18(the)h 20(generic)h 1042 2940(61)s cmtt10.300 sf 177 42(procedure)s 20(Insert@1)h 20(\(i:)h 21(@1;)h 22(var)h 21(S:)h 21(@2\);)h 177 91(var)s 65(This,)h 21(Pred,)h 20(Succ:)h 21(@2;)h 177 141(begin)s 177 191(if)s 22(not)h 21(Is@1InSet)h 20(\(i,)h 21(S\))h 21(then)h 243 241(begin)s 243 291(Pred)s 21(:=)h 21(nil;)h 21(Succ)h 21(:=)h 21(S;)h 243 340(while)s 20(Succ^.Member::)h -1(integ)h -1(er)h 20(>)h 21(i::integer)h 20(do)h 21(begin)h 308 390(Pred)s 21(:=)h 21(Succ;)h 21(Succ)h 21(:=)h 21(Succ^.Next)h 20(end;)h 243 440(if)s 21(Succ^.Member)h -1(::int)h -1(eger)h 19(<)h 22(i::integer)h 20(then)h 21(begin)h 308 490(new)s 21(\(This\);)h 20(This^.Next)h 20(:=)h 22(Succ;)h 20(This^.Member)h 20(:=)h 21(i;)h 308 540(if)s 21(Pred)h 21(<>)h 22(nil)h 21(then)h 21(Pred^.Next)h 20(:=)h 21(This)h 21(else)h 21(S)h 21(:=)h 22(This;)h 308 589(end;)s 243 639(end;)s 177 689(end;)s 177 789(procedure)s 20(Insert@1s)h 20(\(S1:)h 21(@2;)h 21(var)h 21(S2:)h 22(@2\);)h 177 839(var)s 65(This,)h 21(Pred,)h 20(Succ:)h 21(@2;)h 243 888(procedure)s 19(Add@1)h 21(\(i:)h 21(@1\);)h 243 938(begin)s 20(Insert@1)h 20(\(i,)h 22(S2\))h 21(end;)h 177 988(begin)s 177 1038(ForEach@1)s 20(\(S1,)h 21(Add@1\);)h 177 1088(end;)s 177 1187(procedure)s 20(Remove@1)h 20(\(i:)h 21(@1;)h 22(var)h 21(S:)h 21(@2\);)h 177 1237(var)s 65(Pred,)h 21(This:)h 20(@2;)h 177 1287(begin)s 177 1337(Pred)s 21(:=)h 22(nil;)h 20(This)h 21(:=)h 22(S;)h 177 1386(while)s 21(not)h 21(Equal@1)h 20(\(This^.Member,)h 19(i\))h 22(do)h 21(begin)h 243 1436(Pred)s 21(:=)h 21(This;)h 21(This)h 21(:=)h 21(This^.Next)h 20(end;)h 177 1486(if)s 22(Pred)h 21(<>)h 21(nil)h 21(then)h 21(Pred^.Next)h 20(:=)h 21(This^.Next)h 20(else)h 21(S)h 21(:=)h 22(This^.Next;)h 177 1536(Dispose)s 21(\(This\);)h 177 1586(end;)s 177 1685(procedure)s 20(Dispose@2)h 20(\(var)h 21(S:)h 21(@2\);)h 177 1735(var)s 65(Old:)h 21(@2;)h 177 1785(begin)s 177 1835(while)s 21(S)h 22(<>)h 21(nil)h 21(do)h 21(begin)h 21(Old)h 21(:=)h 22(S;)h 21(S)h 22(:=)h 21(S^.Next;)h 20(Dispose)h 21(\(Old\))h 20(end;)h 177 1885(end;)s 177 1984(end.)s 177 2034(@})s 177 2134(@O@==)h -1(@{@-)h 221 2183(@@\(@")h -1(NaryT)h -1(ree@")h -1(@,@")h -1(NaryT)h -1(reeSe)h -1(t@"@\))h -1(@})h 177 2233(@O@==@{)h -1(@-)h 221 2283(@@\(@")h -1(NaryT)h -1(reeSe)h -1(t@"@)h -1(,@"Na)h -1(ryTre)h -1(eSetS)h -1(et@"@)h -1(\)@})h 1850 2557(void)s 62 @eop 63 @bop0 63 @bop1 cmtt10.300 sf 1704 216(void)s cmbx10.432 sf 177 627(2.14)s 70(Summ)h -3(ary)h cmr10.300 sf 177 42(ob)s 2(ject)h 19(to)h 18(b)h 1(e)h 19(duplicated)h 18(once)h 19(for)h 17(eac)h -1(h)h 19(instan)h -1(tiation.)h 29(Dep)h 1(ending)h 19(on)h 18(the)h 18(n)h -1(um)h -1(b)h 1(er)h 18(and)h 18(size)h 19(of)h 17(the)h 177 91(instan)s -1(tiations,)h 13(this)h 14(ma)h -1(y)h 11(or)h 14(ma)h -1(y)h 12(not)h 14(b)h 1(e)h 15(acceptable.)h 177 166(Where)s 22(the)h 21(duplication)h 20(of)h 20(co)h 1(de)h 21(is)h 21(unacceptable,)h 23(a)h 20(h)h -1(ybrid)h 21(approac)h -1(h)h 20(ma)h -1(y)h 19(b)h 1(e)h 21(tak)h -1(en.)h 39(As)h 21(in)h 20(the)h 177 216(C)s 16(example,)h 14(the)h 16(programm)h -1(er)h 14(could)h 15(write)h 16(a)h 15(single)h 15(generic)h 16(pac)h -1(k)h -2(age)h 15(using)h 15(p)h 1(oin)h -1(ters)h 16(to)h 118(or)h 16(some)h 177 266(other)s 16(un)h -1(t)h -1(yp)h 1(esafe)h 16(mec)h -1(hanism.)h 19(Then)h 16(the)h 16(programm)h -1(er)h 14(creates)h 17(a)h 15(F)h -3(unnelW)h -3(eb)h 14(generic)h 16(pac)h -1(k)h -2(age)h 15(whose)h 177 315(functions)s 15(do)h 14(nothing)h 13(more)h 14(than)h 14(call)h 14(the)h 15(functions)h 14(of)h 14(the)h 15(un)h -1(t)h -1(yp)h 1(esafe)h 15(pac)h -1(k)h -2(age,)h 14(and)h 14(whose)h 15(t)h -1(yp)h 1(es)h 15(do)h 177 365(nothing)s 14(more)h 14(than)h 14(con)h -1(tain)h 14(the)h 15(t)h -1(yp)h 1(es)h 16(of)h 13(the)h 16(un)h -1(t)h -1(yp)h 1(esafe)h 15(pac)h -1(k)h -2(age.)h 19(This)h 15(solution)h 13(in)h -1(v)h -1(olv)h -1(es)h 14(the)h 15(use)h 15(of)h 177 415(un)s -1(t)h -1(yp)h 1(esafe)h 17(programm)h -1(i)h -1(ng,)h 14(but)h 16(this)h 16(is)h 16(a)h 16(one-o\013)h 16(and)h 16(if)h 15(done)h 16(carefully)h 16(and)h 16(correctly)h -3(,)h 16(the)h 17(result)h 17(can)h 177 465(b)s 1(e)h 15(a)h 13(t)h -1(yp)h 1(esafe)h 15(generic)h 15(pac)h -1(k)h -2(age)h 13(in)h -1(v)h -1(olving)h 12(minim)h -2(al)h 11(co)h 1(de)h 15(duplication.)h 177 743(This)s 16(c)h -1(hapter)h 17(has)h 16(describ)h 1(ed)h 18(some)h 15(of)h 16(the)h 16(\014ner)h 17(asp)h 1(ects)h 18(of)h 15(the)h 17(use)h 17(of)h 15(F)h -3(unnelW)h -3(eb.)h 24(Throughout,)h 16(the)h 177 793(p)s 1(o)h -1(w)h -1(er)h 15(and)h 14(danger)h 14(of)h 14(F)h -3(unnelW)h -3(eb)h 13(as)h 14(a)h 14(general)h 15(text-rearranging)h 14(prepro)h 1(cess)h 1(or)h 16(has)h 14(b)h 1(een)h 16(emphasised.)h 177 843(F)s -3(unnelW)h -3(eb)h 16(can)h 16(b)h 1(e)h 17(used)h 17(b)h 1(oth)h 16(to)h 16(mak)h -1(e)h 14(programs)h 15(more)h 15(readable)h 16(or)h 16(more)h 15(obscure.)h 26(It)h 16(is)h 16(up)h 16(to)h 16(the)h 177 892(programm)s -1(er)h 13(to)h 13(ensure)h 16(that)h 14(F)h -3(unnelW)h -3(eb)h 13(is)h 14(used)h 15(prop)h 1(erly)h -3(.)h 1042 2940(62)s 63 @eop 64 @bop0 cmbx10.622 sf [<0003FF8000001FFFF000007FFFFE0000FE03FF0003F001FFC007E000FFE007C0007FF0 0FF0007FF00FFC007FF81FFC007FF81FFE007FF81FFE007FF81FFE007FF81FFE007FF81F FE007FF80FFC007FF80FFC007FF003F000FFF0000000FFE0000000FFE0000001FFC00000 01FF80000003FF00000007FC0000001FF800000FFFC000000FFF8000000FFFF800000003 FE00000001FF80000000FFE00000007FF00000003FF80000003FFC0000003FFE0000001F FE0000001FFE0200001FFF1FC0001FFF3FE0001FFF7FF0001FFFFFF8001FFFFFF8001FFF FFF8001FFFFFF8001FFFFFF8001FFEFFF8003FFEFFF0003FFC7FE0003FFC7FC0007FF83F 80007FF01FE000FFE00FFC03FFC003FFFFFF8001FFFFFE00003FFFF0000007FF8000> 40 57 -4 55 49] 51 dc cmbx10.746 sf [ 80 71 -4 70 91] 68 dc [<00000007FF800000000001FFFFF0000000000FFFFFFC000000003FFFFFFE00000000FF FC00FF00000001FFC0003F80000007FF00007FC000000FFE0001FFC000001FFC0001FFE0 00001FF80003FFE000003FF00003FFE000003FF00003FFE000007FE00003FFE000007FE0 0003FFE000007FE00003FFE000007FE00003FFE000007FE00001FFC000007FE00000FF80 00007FE000003E0000007FE00000000000007FE00000000000007FE00000000000007FE0 0000000000007FE00000000000007FE00000000000007FE0003FFFF000FFFFFFFFFFFFF0 00FFFFFFFFFFFFF000FFFFFFFFFFFFF000FFFFFFFFFFFFF000FFFFFFFFFFFFF000007FF0 0000FFF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0 00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0 00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0 00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0 00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0 00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0 00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0 00007FF000007FF000007FF000007FF000007FF000007FF000007FF000007FF0003FFFFF E03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFFE03FFFFF E0> 64 72 -2 71 66] 12 dc cmr8.300 sf [<00FC000303000E01C01C00E0380070300030700038600018E0001CE0001CE0001CE000 1CE0001CE0001CE0001C7000387000383000303800701C00E00E01C003030000FC00> 24 23 -2 22 27] 79 dc cmr10.300 sf [<7FFFFFC0FFFFFFE0000000000000000000000000000000000000000000000000000000 0000000000FFFFFFE07FFFFFC0> 32 12 -2 15 32] 61 dc 64 @bop1 cmr7.300 sf 1368 2752(1)s cmr6.300 sf 223 2823(1)s cmmi10.300 sf 1699 2017(<)s 121(>)h 326 2067(<)s 121(>)h cmsy10.300 sf 588 1749(f)s 220(g)h 270 1849(f)s 176(g)h 512 1899(f)s 198(g)h cmbx10.622 sf 177 372(Chapter)s 34(3)h cmbx10.746 sf 177 598(F)s -10(unnelW)h -10(eb)h 41(De\014niti)h 1(on)h cmbx10.300 sf 295 2549(Journal)s 10(\014le:)h 295 2718(Pro)s 1(duct)h 19(\014le:)h cmbx10.432 sf 177 858(3.1)s 70(In)h -2(tro)h 2(duction)h 177 1490(3.2)s 70(Notation)h 177 2320(3.3)s 70(T)h -6(erm)h -1(i)h -1(nology)h cmtt10.300 sf 1747 1649("string")s 996 1699([optional])s 609 1749(zeroormore)s 291 1849(sixtimes)s 21(6)h 384 1899(+)s 127(oneormore)h 21(+)h 457(::=)h 198 1948(=)s 1241 2117(@)s cmr8.300 sf 241 2835(Other)s 11(names)h 10(consider)h -1(ed)h 9(for)h 11(this)h 11(w)h -1(ere:)h 15(generated)h 9(\014le,)h 11(expand)h -1(ed)h 9(\014le,)h 11(result)h 10(\014le,)h 11(program)h 9(\014le,)h 11(and)h 10(tangle)h 10(\014le.)h cmr10.300 sf 177 968(This)s 15(purp)h 1(ose)h 16(of)h 14(this)h 15(c)h -1(hapter)h 15(is)h 15(to)h 15(pro)h -1(vide)h 14(a)h 15(complete)h 14(and)h 14(consisten)h -1(t)h 16(de\014nition)h 15(of)h 14(the)h 15(F)h -3(unnelW)h -3(eb)h 177 1018(input)s 16(language)h 14(and)h 16(the)h 16(b)h 1(eha)h -1(viour)h 15(of)h 15(the)h 16(F)h -3(unnelW)h -3(eb)h 15(program.)h 22(Usually)h -3(,)h 14(a)h 16(c)h -1(hapter)h 16(suc)h -1(h)h 17(as)h 15(this)h 16(is)h 177 1068(called)s 12(a)h 12(\\reference)h 14(man)h -1(ual)h -1(",)h 10(but)h 12(this)h 12(c)h -1(hapter)h 13(is)h 12(in)h -1(tended)h 12(to)h 12(go)h 12(further)h 12(b)h -1(y)h 12(actually)h 11(de\014ning)h 12(the)h 13(lan-)h 177 1118(guage)s 12(and)h 11(program.)h 16(This)h 12(c)h -1(hapter)h 12(tak)h -1(es)h 12(precede)h 1(nce)h 14(o)h -1(v)h -1(er)h 12(all)h 10(other)h 13(c)h -1(hapters)h 13(and)h 11(all)h 11(implem)h -1(en)h -1(tatio)h -1(ns)h 177 1167(of)s 13(F)h -3(unnelW)h -3(eb.)h 18(If)h 13(an)h 14(implem)h -1(en)h -1(tation)h 11(con)h -1(tradicts)h 15(this)h 14(c)h -1(hapter,)h 14(then)h 15(the)h 15(impl)h -1(em)h -1(en)h -1(tation)h 12(is)h 14(wrong.)h 177 1236(This)s 17(is)h 17(the)h 18(c)h -1(hapter)h 19(that)h 17(y)h -1(ou)h 17(should)h 17(turn)h 17(if)h 17(y)h -1(ou)h 17(\014nd)h 17(y)h -1(ourself)h 17(asking)h 17(a)h 17(sp)h 1(eci\014c)h 18(question)h 18(ab)h 1(out)h 17(a)h 177 1286(sp)s 1(eci\014c)h 17(asp)h 1(ect)h 16(of)h 15(F)h -3(unnelW)h -3(eb.)h 21(In)h 15(man)h -1(y)h 13(cases)h 17(it)h 15(will)h 13(b)h 1(e)h 16(con)h -1(v)h -1(enien)h -1(t)h 16(to)h 14(access)h 17(this)h 16(c)h -1(hapter)h 16(through)h 177 1336(the)s 15(index.)h 177 1600(A)s 17(particular)h 17(v)h -2(arian)h -1(t)h 16(of)h 16(EBNF)h 18(\(Extended)h 18(Bac)h -1(h)h -1(us)h 18(Naur)h 17(F)h -3(orm\))h 15(will)h 16(b)h 1(e)h 17(used)h 18(to)h 17(describ)h 1(e)h 19(the)h 17(F)h -3(un-)h 177 1649(nelW)s -3(eb)h 18(syn)h -1(tax.)h 32(In)h 18(this)h 18(v)h -2(arian)h -1(t,)h 18(literal)h 18(strings)h 18(are)h 19(delimited)h 17(b)h -1(y)h 18(double)h 18(quotes)h 19(\(e.g.)h 194(\),)h 177 1699(optional)s 15(constructs)h 18(b)h -1(y)h 17(square)h 17(brac)h -1(k)h -1(ets)h 17(\(e.g.)h 236(\),)h 14(and)h 17(constructs)h 18(rep)h 1(eated)h 18(zero)h 17(or)h 17(more)h 177 1749(times)s 19(b)h -1(y)h 19(braces)h 21(\(e.g.)h 280(\).)h 34(Constructs)h 21(to)h 19(b)h 1(e)h 20(rep)h 1(eated)h 22(a)h 19(\014xed)h 20(n)h -1(um)h -1(b)h 1(er)h 19(of)h 19(times)h 18(are)h 177 1799(enclosed)s 18(in)h 16(braces)h 17(follo)h -1(w)h -1(ed)h 15(b)h -1(y)h 17(a)h 16(decimal)h 14(n)h -1(um)h -1(b)h 1(er)h 16(indicating)h 16(the)h 17(n)h -1(um)h -1(b)h 1(er)h 15(of)h 16(times)h 16(to)h 16(b)h 1(e)h 17(rep)h 1(eated)h 177 1849(\(e.g.)s 254(\).)h 19(Constructs)h 17(to)h 15(b)h 1(e)h 15(rep)h 1(eated)h 17(one)h 15(or)h 15(more)h 14(times)h 14(are)h 15(enclosed)h 16(in)h 15(braces)h 16(and)h 15(fol-)h 177 1899(lo)s -1(w)h -1(ed)h 13(b)h -1(y)h 14(a)h 49(\(e.g.)h 275(\).)h 16(The)h 14(traditional)h 12(BNF)h 15(\\)h 66(")h 12(is)h 14(replaced)h 15(b)h -1(y)h 13(the)h 15(visually)h 12(simpler)h 177 1948(\\)s 22(".)h 17(The)h 15(traditional)h 12(BNF)h 15(angle)h 13(brac)h -1(k)h -1(ets)h 15(are)h 14(abandoned.)h 177 2017(Although)s 10(F)h -3(unnelW)h -3(eb)h 10(allo)h -1(ws)h 9(the)h 11(sp)h 1(ecial)h 11(c)h -1(haracter)h 11(to)h 11(b)h 1(e)h 11(c)h -1(hanged)h 10(using)h 11(the)h 11(construct)h 12(\\)h 32(sp)h 1(ecial)h 32(=",)h 177 2067(use)s 19(of)h 18(\\)h 32(sp)h 1(ecial)h 32(")h 19(to)h 18(refer)h 19(to)h 19(F)h -3(unnelW)h -3(eb's)h 17(sp)h 1(ecial)h 19(c)h -1(haracter)h 20(is)h 18(cum)h -1(b)h 1(ersome)h 17(and)h 18(abstract.)h 33(T)h -3(o)h 177 2117(simplif)s -1(y)h 18(the)h 19(presen)h -1(tation,)h 21(the)h 20(default)h 19(sp)h 1(ecial)h 19(c)h -1(haracter)h 21(\\)h 22(")h 18(is)h 19(used)h 20(throughout)h 20(this)h 19(c)h -1(hapter)h 20(to)h 177 2167(represent)s 15(the)h 15(sp)h 1(ecial)h 14(c)h -1(haracter.)h 177 2430(A)s 14(sp)h 1(eci\014c)h 16(terminology)h 12(has)h 14(arisen)h 15(for)h 14(dealing)h 13(with)h 14(F)h -3(unnelW)h -3(eb.)h 18(Some)h 13(particularly)h 13(useful)h 15(examples)h 177 2480(are:)s 557 2549(An)s 11(output)h 11(\014le)h 11(con)h -1(taining)h 10(a)h 10(cop)h -1(y)h 11(of)h 10(the)h 12(output)h 11(sen)h -1(t)h 11(to)h 11(the)h 12(user's)h 11(console)h 295 2599(during)s 14(an)h 15(in)h -1(v)h -1(o)h 1(cation)h 13(of)h 14(F)h -3(unnelW)h -3(eb.)h 19(In)h 15(other)h 15(systems,)h 14(this)h 15(\014le)h 15(is)h 14(sometim)h -1(es)h 14(called)h 14(a)h 295 2649(\\log)s 13(\014le".)h 586 2718(An)s 18(output)h 18(\014le,)h 18(generated)h 19(b)h -1(y)h 17(the)h 18(T)h -3(angle)h 17(comp)h 1(onen)h -1(t)h 17(of)h 17(F)h -3(unnelW)h -3(eb,)h 295 2767(that)s 14(con)h -1(tains)h 14(the)h 15(expansion)h 13(of)h 14(the)h 14(macros)h 13(in)h 14(the)h 14(input)h 14(\014le.)h 1042 2940(63)s 709 2 177 2796 r 64 @eop 65 @bop0 cmbx10.432 sf [ 48 27 -1 26 50] 119 dc cmbx10.300 sf [<007800FC00FC00FC00FC007800000000000000000000000003FC03FC007C007C007C00 7C007C007C007C007C007C007C007C007C007C007C007C007C007C007C707CF87CF878F8 F070E01F80> 16 38 3 29 15] 106 dc 65 @bop1 cmbx10.432 sf 177 250(3.4)s 70(An)h 23(Arc)h -2(hitectural)h 20(Ov)h -2(erview)h cmr8.300 sf 343 2290(F)s -3(unnelW)h -3(eb)h 9(pro)h 1(cesses)h 9(eac)h -1(h)h 9(input)h 9(\014le)h 10(in)h 11(a)h 10(sequence)h 8(of)h 11(phases.)h 13(If)h 11(an)h 10(error)h 9(o)h 1(ccurs)h 9(during)h 9(a)h 11(phase,)h 9(no)h 281 2340(subsequen)s -2(t)h 10(phases)h 10(are)h 11(execute)h -1(d.)h cmbx10.300 sf 1866 363(Fig-)s 177 413(ure)s 15(3)h 1702 485(input)s 17(\014le)h 248 535(F)s -4(unnelW)h -4(eb)h 13(\014le)h 1241(phases)h 635 585(output)s 18(\014les)h 357(journal)h 18(\014le)h 1693 635(listi)s -1(ng)h 18(\014le)h 1532 685(do)s 1(cumen)h -1(tati)h -1(on)h 998 784(pro)s 1(duct)h 13(\014les)h 673 2431(Figure)s 14(3)h 295 2613(The)s 14(Scanner)h 295 2785(The)s 19(P)h -1(arser)h cmtt10.300 sf 373 1103(.fw)s 21(Input)h 21(File)h 21(\(FunnelWeb)h 20(file\))h 635 1153(V)s 526 1202(+---------+)s 390(\\)h 526 1252(|)s 21(Scanner)h 21(|)h 392(|)h 526 1302(+---------+)s 390(|)h 635 1352(V)s 501(|)h 526 1402(+--------+)s 412(|)h 526 1451(|)s 21(Parser)h 21(|)h 414(|)h 526 1501(+--------+)s 412(|)h 635 1551(V)s 501(|)h 526 1601(+----------+)s 368(>-------+---)h -1(-----)h -1(----+)h 526 1651(|)s 21(Analyser)h 21(|)h 370(|)h 152(|)h 262(|)h 526 1701(+----------+)s 368(|)h 152(|)h 262(|)h 635 1750(V)s 501(|)h 152(|)h 262(|)h 373 1800(+-----------+-)s -1(-----)h -1(-----)h -1(-+)h 216(|)h 152(V)h 262(V)h 373 1850(V)s 523(V)h 218(|)h 152(|)h 262(|)h 286 1900(+--------+)s 325(+-------+)h 129(|)h 152(|)h 262(|)h 286 1950(|)s 22(Tangle)h 20(|)h 327(|)h 22(Weave)h 20(|)h 131(|)h 152(|)h 262(|)h 286 1999(+--------+)s 325(+-------+)h 129(/)h 152(|)h 262(|)h 373 2049(|)s 523(|)h 392(|)h 262(|)h 373 2099(V)s 523(V)h 392(V)h 262(V)h 243 2149(Product)s 20(Files)h 195(Documentation)h 19(File)h 86(Listing)h 21(File)h 43(Journal)h 20(File)h cmr10.300 sf 177 42(A)s 14(complete)h 13(list)h 13(of)h 13(all)h 12(the)h 15(sp)h 1(ecial)h 14(F)h -3(unnelW)h -3(eb)h 13(terminology)h 11(app)h 1(ears)h 15(in)h 13(the)h 14(glossary)h -3(.)h 17(Be)h 15(sure)h 14(to)h 14(refer)h 177 91(to)s 14(it)h 13(if)h 13(an)h -1(y)h 14(of)h 13(the)h 15(terms)h 13(used)h 15(are)h 14(unclear.)h 177 363(An)s 18(understanding)h 17(of)h 17(the)h 18(in)h -1(ternals)h 17(of)h 17(F)h -3(unnelW)h -3(eb)h 16(assists)h 19(with)h 16(understanding)h 18(its)h 17(op)h 1(eration)h 18(\()h 285 413(\).)s 177 485(During)s 16(a)h 17(single)h 17(run,)h 17(F)h -3(unnelW)h -3(eb)h 17(reads)h 18(and)h 16(pro)h 1(cesse)h 1(s)h 19(a)h 17(single)h 16(input)h 17(\014le)h 17(called)h 17(the)h 227(or)h 177 535(the)s 327(.)h 17(The)h 14(\014le)h 14(is)h 13(pro)h 1(cessed)h 16(b)h -1(y)h 13(passing)h 14(it)h 13(through)h 14(a)h 13(series)h 15(of)h 13(stages)h 14(called)h 151(.)h 177 585(The)s 19(result)h 18(is)h 18(that)h 18(some)h 277(are)h 19(generated.)h 32(A)h 266(is)h 18(generated)h 19(con)h -1(taining)h 17(a)h 177 635(cop)s -1(y)h 18(of)h 18(the)h 18(messages)h 18(that)h 19(app)h 1(ear)h 18(on)h 18(the)h 19(console)h 18(during)h 18(the)h 18(F)h -3(unnelW)h -3(eb)h 18(run.)h 31(A)h 246(is)h 177 685(created)s 14(con)h -1(taining)h 12(a)h 13(summ)h -1(ary)h 11(of)h 12(the)h 14(run,)h 13(including)h 11(an)h -1(y)h 13(error)h 13(messages.)h 18(A)h 336(\014le)h 13(is)h 177 734(generated)s 16(con)h -1(taining)h 13(t)h -1(yp)h 1(esetter)h 16(commands)h 12(that)h 15(when)h 14(fed)h 15(in)h -1(to)h 13(a)h 14(t)h -1(yp)h 1(esetter)h 17(program)h 12(will)h 13(result)h 15(in)h 177 784(prin)s -1(ted)h 14(do)h 1(cumen)h -1(tation.)h 16(Finally)h -3(,)h 11(one)h 14(or)h 13(more)h 285(are)h 14(generated)h 14(con)h -1(taining)h 13(the)h 13(result)h 14(of)h 177 834(unscram)s -1(bling)h 12(the)h 15(macro)h 12(de\014nitions)h 14(of)h 14(the)h 14(input)h 14(\014le.)h 177 906(These)s 15(\014les)h 15(need)h 15(not)h 14(all)h 13(b)h 1(e)h 14(generated)h 16(on)h 13(an)h -1(y)h 14(particular)h 14(F)h -3(unnelW)h -3(eb)h 13(run.)h 19(Whether)h 15(eac)h -1(h)h 15(output)h 14(\014le)h 177 956(app)s 1(ears)h 15(is)h 14(con)h -1(trolled)h 13(b)h -1(y)h 14(comm)h -1(and)h 12(line)h 13(options.)h 848 2431(:)s 18(F)h -3(unnelW)h -3(eb's)h 13(pro)h 1(cessing)h 15(phases.)h 177 2541(The)s 14(phases)h 15(are)h 15(brie\015y)h 14(describ)h 1(ed)h 16(b)h 1(elo)h -1(w.)h 568 2613(reads)s 13(the)h 13(input)h 12(\014le,)h 12(expands)h 13(and)h 12(reads)h 13(in)h 11(include)h 13(\014les,)h 12(scans)h 13(the)h 13(input)h 295 2663(stream,)s 17(pro)h 1(cesses)h 19(pragmas)h 16(and)h 16(t)h -1(yp)h 1(esetter)h 19(directiv)h -1(es,)h 18(and)h 17(parses)h 18(all)h 16(the)h 17(F)h -3(unnelW)h -3(eb)h 295 2713(sp)s 1(ecial)h 14(sequence)h 1(s.)h 20(The)h 14(result)h 15(is)h 14(a)h 13(list)h 14(of)h 13(tok)h -1(ens)h 14(that)h 14(is)h 14(handed)h 14(to)h 14(the)h 15(parser.)h 548 2785(reads)s 18(the)h 18(scanner's)h 18(tok)h -1(en)h 17(list)h 17(and)h 17(parses)h 18(it,)h 17(constructing)h 18(a)h 17(do)h 1(cumen)h -1(t)h 295 2835(list)s 14(and)h 13(a)h 14(macro)h 13(table.)h 18(whic)h -1(h)h 13(are)h 15(passed)h 15(to)h 13(later)h 14(phases.)h 1042 2940(64)s 65 @eop 66 @bop0 /cmbx8.300 127 @newfont cmtt8.300 sf [<1FF07FF0E070C070E000FF003FE00FF00078E018E018F038FFF0DFC0> 16 14 -2 13 18] 115 dc [<0E000E000E000E00FFF8FFF80E000E000E000E000E000E000E000E380E380E7807F003 C0> 16 18 -1 17 18] 116 dc [<01F801F8003800380038003807B81FF838787078F038E038E038E038E038F038707878 F81FFF0FBF> 16 20 -1 19 18] 100 dc [ 16 20 -1 19 18] 108 dc [<06000F000F000600000000000000FF00FF000700070007000700070007000700070007 000700FFF8FFF8> 16 21 -3 20 18] 105 dc [ 16 20 0 19 18] 98 dc [<60F0F060> 8 4 -7 3 18] 46 dc [ 24 20 0 19 18] 104 dc cmbx8.300 sf [ 8 33 -3 24 11] 91 dc [ 32 23 -2 22 32] 75 dc [<07F01C18380C78067007F007F007FFFFF000F0007000780038031E0603FC> 16 15 -1 14 19] 101 dc [ 16 15 -2 14 17] 114 dc [ 24 15 -2 14 23] 110 dc [<387C7C7C3800000000FCFC3C3C3C3C3C3C3C3C3C3C3CFFFF> 8 24 -1 23 11] 105 dc [<0FCF001873803033807038007038007038007038003030001860002FC0002000003000 003FF8003FFE003FFF00700780E00380E00380E00380700700380E000FF800> 24 22 -1 14 20] 103 dc [ 24 23 -2 22 23] 104 dc [<0FE0003838003C1C003C1E00181E00001E0000FE000F9E003C1E00781E00F01E00F01E 00F01E00786FC01F87C0> 24 15 -1 14 20] 97 dc [<07E01FF03838701C701C781C7E1C7FB83FF01FF00FF83BFC70FEE03EE01EE00EE00EF0 0C78183FF00FE0> 16 21 -2 20 20] 56 dc [ 8 33 0 24 11] 93 dc cmti10.300 sf [ 16 3 -3 9 15] 45 dc cmr8.300 sf [<00FC100383300E00B01C0070380030300030700010600010E00010E00000E00000E000 00E00000E00000E000106000107000103000203800201C00400E008003830000FC00> 24 23 -2 22 25] 67 dc [<20303FE03FC0240020002000200020002F8030E020700030003800384038E038E03880 30406020C01F00> 16 21 -2 20 18] 53 dc 66 @bop1 cmr7.300 sf 1378 2439(2)s cmr6.300 sf 223 2823(2)s cmtt8.300 sf 1026 2835(stdlib.)s -1(h)h cmbx8.300 sf 1255 2835([Kernighan88])s cmtt10.300 sf 245 2405(EXIT)s 15(SUCCESS)h 959(EXIT)h 15(FAILURE)h cmti10.300 sf 1220 1009(incr)s -2(e)h -2(ases)h 1206 2718(tar)s -2(get-language)h cmbx10.432 sf 177 799(3.5)s 70(Diagnostics)h 177 2608(3.6)s 70(T)h -2(yp)h 2(esetter)h 21(Indep)h 2(endence)h cmr8.300 sf 241 2835(F)s -3(rom)h 10(the)h 11(sym)h -1(b)h 1(ols)h 10(of)h 11(the)h 11(ANSI)h 12(standard)h 9(C)h 12(library)h 153(.)h 13(See)h 261(,)h 11(p.252.)h cmbx10.300 sf 295 42(The)s 20(Analyser)h 295 260(T)s -4(angle)h 295 378(W)s -4(ea)h -1(v)h -1(e)h 1432 447(F)s -4(unnelW)h -4(eb)h 15(prop)h 1(er)h 526 496(F)s -4(unnel)h -1(W)h -4(eb)h 19(program)h 295 1246(W)s -4(arning:)h 295 1414(Error:)s 295 1632(Sev)s -1(ere)h 15(Error:)h 295 1750(F)s -4(atal)h 12(Error:)h 295 1969(Assertion)s 12(Error:)h cmr10.300 sf 599 42(examines)s 16(the)h 18(macro)h 16(table)h 18(generated)h 18(b)h -1(y)h 17(the)h 18(parser)h 19(and)h 17(p)h 1(erforms)h 17(a)h 295 91(n)s -1(um)h -1(b)h 1(er)h 12(of)h 11(c)h -1(hec)h -1(ks)h 14(of)h 11(the)h 13(macro)h 11(structures)h 15(that)h 12(the)h 13(parser)h 13(could)h 12(not)h 12(mak)h -1(e)h 11(on)h 12(its)h 12(single)h 295 141(pass.)s 17(F)h -3(or)h 10(example,)h 9(the)h 10(analyser)h 10(detects)h 12(and)h 10(\015ags)h 10(un)h -1(used)h 11(macros)h 9(and)h 10(recursiv)h -1(e)h 11(macros.)h 295 191(The)s 15(analyser)h 14(forms)h 12(the)h 15(\014nal)h 13(stage)h 14(of)h 13(F)h -3(unnelW)h -3(eb's)h 14(fron)h -1(t-end)h 14(pro)h 1(cessing.)h 448 260(expands)s 14(certain)h 15(macros)h 14(in)h 14(the)h 15(macro)h 13(table)h 14(to)h 14(generate)h 16(one)h 14(or)h 14(more)h 14(pro)h 1(duct)h 295 309(\014les.)s 444 378(uses)s 15(the)h 15(do)h 1(cumen)h -1(t)h 13(list)h 13(to)h 14(generate)h 15(a)h 14(do)h 1(cumen)h -1(tation)h 13(\014le.)h 177 447(A)s 15(single)h 15(run)h 16(through)h 15(these)h 17(phases)h 16(constitutes)h 17(a)h 15(single)h 15(in)h -1(v)h -1(o)h 1(cation)h 13(of)h 408(.)h 20(Most)h 177 496(in)s -1(v)h -1(o)h 1(cations)h 17(of)h 18(the)h 468(will)h 17(consist)h 19(only)h 17(of)h 17(a)h 18(single)h 18(execution)h 19(of)h 17(F)h -3(unnelW)h -3(eb)h 177 546(prop)s 1(er.)h 18(Ho)h -1(w)h -1(ev)h -1(er,)h 12(F)h -3(unnelW)h -3(eb)h 11(also)h 11(pro)h -1(vides)h 11(a)h 11(comma)h -1(nd)h 10(shell)h 11(that)h 11(pro)h -1(vides)h 12(man)h -1(y)h 9(useful)h 12(comm)h -1(ands,)h 177 596(including)s 15(a)h 15(command)h 14(to)h 15(in)h -1(v)h -1(ok)h -1(e)h 15(F)h -3(unnelW)h -3(eb)h 15(prop)h 1(er.)h 25(Discussion)h 16(of)h 15(the)h 17(comm)h -1(and)h 14(shell)h 15(is)h 16(deferred)h 177 646(un)s -1(til)h 13(Section)h 14(3.15.)h 177 909(During)s 16(execution,)h 17(F)h -3(unnelW)h -3(eb)h 16(pro)h 1(ceeds)h 19(cautiously)h 16(with)h 16(eac)h -1(h)h 17(of)h 16(its)h 16(phases,)h 18(only)h 16(pro)h 1(ceeding)h 17(with)h 177 959(the)s 19(next)h 19(phase)h 18(if)h 18(the)h 18(previous)h 19(phase)h 19(has)h 18(b)h 1(een)h 19(success)h 1(ful.)h 32(This)h 18(means)h 17(that,)h 19(when)h 18(debugging)h 18(a)h 177 1009(F)s -3(unnelW)h -3(eb)h 15(\014le,)h 16(y)h -1(ou)h 15(ma)h -1(y)h 13(\014nd)h 16(that)h 16(the)h 16(n)h -1(um)h -1(b)h 1(er)h 15(of)h 15(errors)h 194(after)h 16(y)h -1(ou)h 15(\014x)h 15(some)h 15(of)h 15(them,)h 15(as)h 177 1059(y)s -1(ou)h 14(will)h 12(b)h 1(e)h 14(exp)h 1(osing)h 14(y)h -1(ourself)h 14(to)h 14(the)h 14(next)h 15(F)h -3(unnelW)h -3(eb)h 13(phase.)h 177 1127(F)s -3(unnelW)h -3(eb)h 15(emplo)h -1(ys)h 15(\014v)h -1(e)h 16(lev)h -1(els)h 16(of)h 15(diagnostics)h 16(at)h 15(di\013eren)h -1(t)h 17(lev)h -1(els)h 16(of)h 15(sev)h -1(erit)h -1(y)h -3(.)h 24(Sev)h -1(erit)h -1(y)h 17(is)h 15(de\014ned)h 17(in)h 177 1177(terms)s 14(of)h 13(the)h 15(lev)h -1(el)h 13(of)h 13(activit)h -1(y)h 13(at)h 14(whic)h -1(h)h 14(the)h 14(diagnostic)h 14(causes)h 15(F)h -3(unnelW)h -3(eb)h 13(to)h 14(ab)h 1(ort.)h 504 1246(A)s 12(w)h -1(arning)h 11(do)h 1(es)h 12(not)h 12(cause)h 13(F)h -3(unnelW)h -3(eb)h 11(to)h 11(terminate)h 11(or)h 12(curtail)h 11(its)h 12(op)h 1(eration)h 295 1295(in)s 13(an)h -1(y)h 12(w)h -1(a)h -1(y)h -3(,)h 11(but)h 13(serv)h -1(es)h 14(merely)h 12(to)h 13(w)h -1(arn)h 12(the)h 14(user)h 14(of)h 12(particular)h 12(conditions)h 13(that)h 12(migh)h -1(t)h 11(b)h 1(e)h 295 1345(symptoma)s -1(tic)h 12(of)h 14(deep)h 1(er)h 15(problems.)h 442 1414(An)s 15(error)h 16(causes)h 15(F)h -3(unnelW)h -3(eb)h 14(to)h 15(terminate)h 14(pro)h 1(cessing)h 15(of)h 14(the)h 15(curren)h -1(t)h 16(input)h 15(\014le)h 295 1464(at)s 12(the)h 12(end)h 12(of)h 11(the)h 12(curren)h -1(t)h 13(phase.)h 18(F)h -3(or)h 11(example,)h 11(if)h 10(an)h 12(error)h 12(o)h 1(ccurs)h 13(during)h 12(scanning,)h 11(F)h -3(un-)h 295 1514(nelW)s -3(eb)h 15(will)h 14(con)h -1(tin)h -1(ue)h 16(scanning)h 15(\(and)h 15(p)h 1(ossibly)h 15(generate)h 17(further)h 16(scanning)h 15(diagnostics\),)h 295 1563(but)s 14(will)h 13(not)h 14(in)h -1(v)h -1(ok)h -1(e)h 13(the)h 14(parser.)h 594 1632(A)s 15(sev)h -1(ere)h 16(error)h 15(\(or)h 14(\\sev)h -1(ere")h 16(for)h 14(short\))h 15(is)h 14(the)h 15(same)h 13(as)h 15(an)h 14(error)h 15(except)h 295 1682(that)s 14(F)h -3(unnelW)h -3(eb)h 14(terminates)h 13(the)h 15(curren)h -1(t)h 15(phase)h 15(imm)h -2(ediately)h -3(.)h 556 1750(A)s 11(fatal)h 9(error)h 12(causes)h 12(F)h -3(unnelW)h -3(eb)h 10(not)h 11(only)h 10(to)h 10(terminate)h 11(the)h 11(curren)h -1(t)h 12(phase)h 295 1800(and)s 13(run)h 13(imm)h -2(ediately)h -3(,)h 10(but)h 13(also)h 12(to)h 12(terminate)h 12(total)h 12(F)h -3(unnelW)h -3(eb)h 12(pro)h 1(cessing)h 14(imm)h -1(ediately)h -4(.)h 295 1850(A)s 14(sev)h -1(ere)h 16(error)h 15(will)h 12(not)h 14(cause)h 15(a)h 13(F)h -3(unnelW)h -3(eb)h 13(script)h 15(to)h 14(terminate,)h 13(but)h 14(a)h 13(fatal)h 13(error)h 15(will.)h 295 1900(A)s 14(fatal)h 13(error)h 15(causes)h 15(F)h -3(unnelW)h -3(eb)h 13(to)h 14(return)h 15(con)h -1(trol)h 14(to)h 14(the)h 14(op)h 1(erating)h 14(system.)h 652 1969(An)s 13(assertion)h 13(error)h 14(o)h 1(ccurs)h 14(if)h 12(F)h -3(unnelW)h -3(eb)h 12(detects)h 14(an)h 13(in)h -1(ternal)h 12(incon-)h 295 2018(sistency)s -3(,)h 13(in)h 12(whic)h -1(h)h 12(case)h 13(F)h -3(unnelW)h -3(eb)h 11(terminates)h 12(imm)h -1(ediately)h 10(and)h 12(ungracefully)h -3(.)h 16(Suc)h -1(h)h 13(an)h 295 2068(error)s 16(can)h 16(o)h 1(ccur)h 16(only)h 14(if)h 15(there)h 16(are)h 16(bugs)h 15(in)h 15(F)h -3(unnelW)h -3(eb.)h 22(With)h 14(luc)h -1(k,)h 15(suc)h -1(h)h 16(errors)h 16(will)h 14(b)h 1(e)h 295 2118(extremely)s 14(rare.)h 177 2187(F)s -3(unnelW)h -3(eb)h 10(indicates)h 10(the)h 11(lev)h -1(el)h 9(of)h 10(sev)h -1(erit)h -1(y)h 11(of)h 9(eac)h -1(h)h 11(diagnostic)h 9(that)h 10(it)h 10(issues)h 11(b)h -1(y)h 10(starting)h 10(eac)h -1(h)h 10(diagnostic)h 177 2236(either)s 11(with)h 10(the)h 11(full)h 9(name)h 9(of)h 10(the)h 11(sev)h -1(erit)h -1(y)h 10(lev)h -1(el)h 10(or)h 11(with)h 10(just)h 10(the)h 11(\014rst)h 11(letter)h 11(of)h 10(the)h 11(sev)h -1(erit)h -1(y)h 10(lev)h -1(el)h 10(follo)h -1(w)h -1(ed)h 177 2286(b)s -1(y)h 14(a)h 13(colon.)h 177 2355(F)s -3(unnelW)h -3(eb)h 12(con)h -1(v)h -1(eys)h 13(the)h 12(presence)h 15(or)h 12(absence)h 14(of)h 11(diagnostics)h 12(at)h 12(the)h 13(op)h 1(erating)h 12(system)h 12(lev)h -1(el)h 12(b)h -1(y)h 12(return-)h 177 2405(ing)s 280(status)h 13(if)h 12(no)h 12(diagnostics)h 12(o)h 1(ccurred)h 14(during)h 13(the)h 13(run)h 12(and)h 281(status)h 13(if)h 12(one)h 177 2454(or)s 14(more)h 13(diagnostics)h 14(\(including)h 13(w)h -1(arnings\))h 13(o)h 1(ccurred)h 16(during)h 13(the)h 15(run.)h 177 2718(One)s 16(of)h 15(the)h 15(design)h 16(goals)h 14(of)h 14(F)h -3(unnelW)h -3(eb)h 15(w)h -1(as)h 15(to)h 15(pro)h -1(vide)h 15(a)h 303(indep)h 1(enden)h -1(t)h 17(literate)h 15(pro-)h 177 2768(gramm)s -1(ing)h 10(system.)h 18(This)h 12(goal)h 12(has)h 13(b)h 1(een)h 14(ac)h -1(hiev)h -1(ed)h 13(simply)h 11(b)h -1(y)h 13(treating)h 12(the)h 14(text)h 13(written)h 14(to)h 12(the)h 14(pro)h 1(duct)h 1042 2940(65)s 14 2 336 2405 r 14 2 1552 2405 r 709 2 177 2797 r 66 @eop 67 @bop0 67 @bop1 cmti10.300 sf 1776 42(typ)s -2(esetter)h 409 1610(verb)s cmbx10.300 sf 1737 653(t)s -1(yp)h 1(esetter)h 177 702(directiv)s -2(es)h cmbx12.300 sf 177 1400(3.7.1)s 55(In)h -2(v)h -2(oking)h 19(F)h -5(unnelW)h -5(eb)h cmbx10.432 sf 177 1266(3.7)s 70(Com)h -1(m)h -3(and)h 22(Line)h 22(In)h -2(terface)h cmtt10.300 sf 944 42(tt)s 21(font)h 476 852(typesetter)s 177 1793($)s 22(rename)h 20(file1)h 21(file2)h 650 1926(rename)s 687(file1)h 20(file2)h 739 1976($)s 355(2)h 1244 2519(fw)s 177 2652(FunnelWeb_ver)s -1(b)h 20(=)h 43("fw")h 1110 2785(funweb)s 66(fun)h 147(funnelweb)h 177 2835(web)s 64(fweb)h cmr10.300 sf 177 42(\014le)s 15(as)h 15(homogeneous)h 14(and)h 15(t)h -1(yp)h 1(esetting)h 16(it)h 15(in)h 168(.)h 21(A)h 15(secondary)h 16(goal)h 14(w)h -1(as)h 15(to)h 15(pro)h -1(vide)h 15(a)h 177 91(indep)s 1(enden)h -1(t)h 16(literate)h 15(programmi)h -1(ng)h 13(system.)h 21(By)h 15(this)h 15(is)h 14(mean)h -1(t)h 14(that)h 15(it)h 14(b)h 1(e)h 16(p)h 1(ossible)h 15(to)h 15(create)h 16(F)h -3(unnel-)h 177 141(W)s -3(eb)h 13(input)h 13(\014les)h 14(that)h 13(do)h 13(not)h 14(con)h -1(tain)h 12(t)h -1(yp)h 1(esetter)h 1(-sp)h 1(e)h 1(ci\014c)h 15(comma)h -1(nds.)h 17(T)h -3(o)h 12(a)h 13(lesser)h 15(exten)h -1(t)h 14(this)h 14(goal)h 12(has)h 177 191(also)s 13(b)h 1(een)h 15(ac)h -1(hiev)h -1(ed.)h 177 272(The)s 16(di\016cult)h -1(y)h 15(with)h 16(pro)h -1(viding)h 15(t)h -1(yp)h 1(esetter-indep)h 1(e)h 1(nden)h -1(t)h 18(t)h -1(yp)h 1(esetting)h 17(is)h 16(that)h 15(eac)h -1(h)h 17(desired)h 17(t)h -1(yp)h 1(esetting)h 177 322(feature)s 14(m)h -1(ust)h 12(b)h 1(e)h 13(recreate)h 1(d)h 15(in)h 12(a)h 13(t)h -1(yp)h 1(esetter-indep)h 1(e)h 1(nden)h -1(t)h 15(F)h -3(unnelW)h -3(eb)h 13(t)h -1(yp)h 1(esetting)h 14(construct)h 14(that)h 13(F)h -3(un-)h 177 372(nelW)s -3(eb)h 12(can)h 11(translate)h 13(in)h -1(to)h 11(whatev)h -1(er)h 12(t)h -1(yp)h 1(esetting)h 13(language)h 10(is)h 12(b)h 1(eing)h 12(targeted)h 12(b)h -1(y)h 12(W)h -3(ea)h -1(v)h -1(e.)h 16(T)h -3(ak)h -1(en)h 12(to)h 11(the)h 177 422(extreme,)s 14(this)h 14(w)h -1(ould)h 14(result)h 15(in)h 13(F)h -3(unnelW)h -3(eb)h 14(pro)h -1(viding)h 13(the)h 15(full)h 13(syn)h -1(tactic)h 15(and)h 14(seman)h -1(tic)h 13(p)h 1(o)h -1(w)h -1(er)h 14(of)h 14(T)h 1883 431(E)s 1906 422(X,)s 177 472(but)s 18(with)h 16(a)h 17(more)h 16(generic,)h 19(F)h -3(unnelW)h -3(eb-sp)h 1(eci\014c)h 18(syn)h -1(tax.)h 27(This)h 17(w)h -1(as)h 17(unfeasible)h 17(in)h 17(the)h 18(time)h 15(a)h -1(v)h -2(ailable,)h 177 521(and)s 14(undesirable)h 14(as)h 14(w)h -1(ell.)h 177 603(The)s 22(compromi)h -1(se)h 21(struc)h -1(k)h 22(in)h 22(the)h 22(F)h -3(unnelW)h -3(eb)h 21(design)h 22(is)h 21(to)h 22(pro)h -1(vide)h 21(a)h 22(set)h 22(of)h 21(primitiv)h -1(e)h 20(t)h -1(yp)h 1(esetter-)h 177 653(indep)s 1(enden)h -1(t)h 15(t)h -1(yp)h 1(esetting)h 14(features)h 15(that)h 14(are)h 14(impl)h -1(em)h -1(en)h -1(ted)h 13(b)h -1(y)h 13(F)h -3(unnelW)h -3(eb.)h 17(These)h 15(are)h 14(the)h 378 702(.)s 33(If)h 20(the)h 20(user)h 21(is)h 19(prepared)h 21(to)h 20(restrict)h 21(to)h 19(these)h 21(directiv)h -1(es,)h 22(then)h 20(the)h 21(user's)h 20(F)h -3(unnelW)h -3(eb)h 177 752(do)s 1(cumen)h -1(t)h 16(will)h 15(b)h 1(e)h 16(b)h 1(oth)h 17(target-language)h 15(and)h 16(t)h -1(yp)h 1(esetter)h 19(indep)h 1(enden)h -1(t.)h 26(Ho)h -1(w)h -1(ev)h -1(er,)h 17(if)h 15(the)h 17(user)h 17(wishes)h 177 802(to)s 16(use)h 17(the)h 16(more)h 15(sophisticated)h 17(features)h 17(of)h 15(the)h 17(target)h 16(t)h -1(yp)h 1(esetting)h 17(system,)h 16(the)h 16(user)h 17(can)h 17(sp)h 1(ecify)h 16(the)h 177 852(t)s -1(yp)h 1(esetter)h 16(in)h 13(a)h 14(\\)h 220(")h 11(pragma)h 12(and)h 13(then)h 15(place)h 13(t)h -1(yp)h 1(esette)h 1(r)h 16(comm)h -1(ands)h 12(in)h 13(the)h 14(free)h 15(text)h 14(of)h 13(the)h 177 902(F)s -3(unnelW)h -3(eb)h 15(do)h 1(cumen)h -1(t)h 15(where)h 17(they)h 16(will)h 14(b)h 1(e)h 16(passed)h 16(v)h -1(erbatim)h 14(to)h 15(the)h 16(do)h 1(cumen)h -1(tation)h 15(\014le.)h 22(The)h 16(c)h -1(hoice)h 177 952(of)s 13(the)h 15(trade-o\013)h 14(b)h 1(et)h -1(w)h -1(een)h 16(t)h -1(yp)h 1(esetter)h 16(indep)h 1(endence)h 16(and)h 14(t)h -1(yp)h 1(esetting)h 14(p)h 1(o)h -1(w)h -1(er)h 15(is)h 13(left)h 14(to)h 14(the)h 14(user.)h 177 1033(This)s 14(said,)h 13(exp)h 1(erience)h 17(with)h 13(F)h -3(unnelW)h -3(eb)h 14(V1)h 14(o)h -1(v)h -1(er)h 14(a)h 13(three)h 16(y)h -1(ear)h 14(p)h 1(erio)h 1(d,)h 14(indicates)h 14(that)h 14(the)h 15(t)h -1(yp)h 1(esetting)h 177 1083(facilities)s 13(pro)h -1(vided)h 14(b)h -1(y)h 13(F)h -3(unnelW)h -3(eb)h 14(are)h 14(su\016cien)h -1(t)h 14(for)h 14(most)h 13(do)h 1(cumen)h -1(tation.)h 177 1511(When)s 14(a)h 13(user)h 15(in)h -1(v)h -1(ok)h -1(es)h 13(F)h -3(unnelW)h -3(eb)h 13(at)h 13(the)h 14(op)h 1(erating)h 14(system)h 13(comm)h -1(and)h 12(lev)h -1(el,)h 12(the)h 15(user)h 14(m)h -1(ust)h 13(pro)h -1(vide)h 13(a)h 177 1561(comma)s -1(nd)h 14(line)h 16(instructing)h 16(F)h -3(unnelW)h -3(eb)h 16(what)h 16(to)h 16(do.)h 24(T)h -1(ypically)h 14(an)h 16(op)h 1(erating)h 16(system)h 16(comm)h -1(and)h 14(line)h 177 1610(consists)s 14(of)h 12(a)h 101(indicating)h 11(that)h 13(a)h 13(particular)h 13(program)h 11(should)h 13(b)h 1(e)h 13(run,)h 13(follo)h -1(w)h -1(ed)h 12(b)h -1(y)h 12(a)h 13(list)h 12(of)h 13(options.)h 177 1660(F)s -3(or)h 14(example:)h 177 1926(In)s 20(this)h 19(case,)h 22(the)h 20(v)h -1(erb)h 20(is)h 169(and)h 20(the)h 20(comm)h -1(and)h 17(line)h 20(options)h 19(are)h 260(.)h 34(The)h 20(en)h -1(tire)h 177 1976(comma)s -1(nd)h 12(line)h 14(b)h 1(egins)h 14(with)h 13(the)h 51(and)h 13(ends)h 15(with)h 14(the)h 36(.)h 177 2057(Op)s 1(erating)h 11(systems)h 11(di\013er)h 11(greatly)h 10(in)h 10(the)h 11(depth)h 11(with)h 11(whic)h -1(h)h 10(they)h 11(pro)h 1(cess)h 12(their)h 11(comma)h -1(nd)h 9(lines,)h 11(ranging)h 177 2107(from)s 8(systems)h 10(that)h 10(simply)h 7(pass)h 10(the)h 11(en)h -1(tire)h 10(comm)h -1(and)h 8(line)h 9(string)h 10(to)h 9(the)h 11(in)h -1(v)h -1(ok)h -1(ed)h 8(program)h 8(\(e.g.)h 10(MSDOS\))h 177 2157(through)s 14(to)h 14(systems)h 14(that)h 13(p)h 1(erform)h 13(complete)h 14(comm)h -1(and)h 12(line)h 13(parsing)h 13(\(e.g.)h 14(VMS\).)h 13(Syn)h -1(tax)h 14(con)h -1(v)h -1(en)h -1(tions)h 177 2207(v)s -2(ary)h 14(considerably)h -3(.)h 177 2288(So)s 18(as)h 18(to)h 18(ac)h -1(hiev)h -1(e)h 19(maxi)h -1(m)h -2(um)h 14(p)h 1(ortabilit)h -1(y)h 17(and)h 18(consistency)h 20(of)h 17(in)h -1(v)h -1(o)h 1(cation)h 17(across)h 19(di\013eren)h -1(t)h 19(platforms,)h 177 2338(F)s -3(unnelW)h -3(eb)h 19(reads)h 20(its)h 19(comma)h -1(nd)h 18(line)h 18(as)h 20(a)h 19(ra)h -1(w)h 19(string)h 19(and)h 19(p)h 1(erforms)h 19(all)h 18(its)h 19(o)h -1(wn)h 19(parsing.)h 34(This)h 19(is)h 177 2388(p)s 1(ortable)h 12(b)h 1(ecause,)h 14(at)h 11(the)h 13(v)h -1(ery)h 12(least,)h 12(all)h 11(op)h 1(erating)h 11(systems)h 12(allo)h -1(w)h 11(in)h -1(v)h -1(ok)h -1(ed)h 11(programs)h 10(access)h 14(to)h 12(the)h 12(ra)h -1(w)h 177 2438(comma)s -1(nd)h 12(line.)h 177 2519(The)s 14(command)h 12(v)h -1(erb)h 14(used)h 15(to)h 13(in)h -1(v)h -1(ok)h -1(e)h 13(F)h -3(unnelW)h -3(eb)h 14(should)h 14(b)h 1(e)h 14(\\)h 44(".)h 177 2785(If)s 14(this)h 14(v)h -1(erb)h 15(is)h 14(not)h 14(a)h -1(v)h -2(aila)h -1(ble,)h 12(some)h 13(alternativ)h -1(es)h 14(are)h 15(\\)h 132(",)h 12(\\)h 66(",)h 12(and)h 14(\\)h 198(".)h 16(The)h 15(v)h -1(erbs)h 256 2835(or)s 115(should)h 14(b)h 1(e)h 14(a)h -1(v)h -1(oided)h 13(as)h 14(they)h 15(are)h 14(the)h 15(names)h 13(of)h 13(other)h 14(literate)h 15(programm)h -1(i)h -1(ng)h 12(systems.)h 1042 2940(66)s 67 @eop 68 @bop0 cmti10.300 sf [<0001FC3C00060E67000C0EC7001C0DC6001C01C0003801C00038038000380380003803 80003803800070038007FFFFF800700700007007000070070000E0070000E00E0000E00E 0000E00E0000E00E0001C00E0001C01C0001C01C0001C01C0001C01C0003801C00038038 00038038000380380003003800070030000700700006006000C6606000E470C000C86180 00703E0000> 32 37 1 28 25] 11 dc 68 @bop1 cmbx12.300 sf 177 42(3.7.2)s 55(Command)h 17(Line)h 18(Argumen)h -2(ts)h cmbx10.300 sf 177 208(argumen)s -1(ts)h 942 777(sign)s 281(letter)h 313(string)h 1258 1632(options)s cmti10.300 sf 1430 543(insensitive)s 1784 593(pr)s -2(eserves)h 386 1781(string)s 144(b)h -2(o)h -2(ole)h -2(an)h 1016(on)h 68(o\013)h 177 2066(indep)s -2(endently)h 242 2400(o\013)s cmtt10.300 sf 177 350(FunnelWeb_com)s -1(mand_)h -1(line)h 19(=)h 22(FunnelWeb_ver)h -1(b)h 20({{")h 21("}+)h 21(argument})h 177 970(argument)s 42(=)h 22(sign)h 21(id_letter)h 20([non_blank_)h -1(stri)h -1(ng])h 177 1020(sign)s 130(=)h 22("+")h 21(|)h 21("-")h 22(|)h 21("=")h 177 1069(id_letter)s 20(=)h 22("B")h 21(|)h 21("C")h 22(|)h 21("D")h 21(|)h 22("F")h 21(|)h 22("H")h 21(|"I")h 21(|)h 21("J")h 22(|)h 21("K")h 21(|)h 439 1119("L")s 21(|)h 21("O")h 22(|)h 21("Q")h 21(|)h 22("S")h 21(|)h 22("T")h 21(|)h 21("W")h 22(|)h 21("X")h 177 1404(argument)s 20(=)h 22(non_blank_st)h -1(ring_)h -1(not_b)h -1(eginn)h -1(ing_)h -1(with_)h -1(+_=_o)h -1(r_-)h 1212 1547(+F)s 655 2066(+)s 613(-)h 615(=)h 1147 2350(fw)s 21(+t)h 21(-t)h 339(t)h 1680 2500(.typ)s 1127 2550(.login)s 177 2692(alias)s 21(fw)h 21(fw)h 22(+d)h 21(+t.typ)h cmr10.300 sf 177 158(F)s -3(ollo)h -1(wing)h 14(the)h 17(v)h -1(erb)h 17(is)h 17(the)h 17(b)h 1(o)h 1(dy)h 17(of)h 16(the)h 17(comm)h -1(and)h 15(line)h 16(whic)h -1(h)h 16(F)h -3(unnelW)h -3(eb)h 16(parses)h 18(in)h -1(to)h 16(zero)h 17(or)h 17(more)h 409 208(separated)s 15(b)h -1(y)h 13(runs)h 15(of)h 13(one)h 14(or)h 14(more)h 13(blanks.)h 177 493(Because)s 19(some)h 15(op)h 1(erating)h 16(systems)h 17(con)h -1(v)h -1(ert)h 17(their)h 17(comm)h -1(and)h 15(line)h 16(to)h 16(upp)h 1(er)h 17(case)h 18(b)h 1(efore)h 17(handing)h 16(it)h 16(to)h 177 543(the)s 17(in)h -1(v)h -1(ok)h -1(ed)h 16(program,)h 15(F)h -3(unnelW)h -3(eb)h 16(has)h 17(b)h 1(een)h 18(constructed)h 18(so)h 17(as)h 17(to)h 16(b)h 1(e)h 224(to)h 16(the)h 17(case)h 18(of)h 16(its)h 177 593(comma)s -1(nd)h 10(line)h 11(argumen)h -1(ts.)h 16(Ho)h -1(w)h -1(ev)h -1(er,)h 12(when)h 12(dealing)h 11(in)h -1(ternally)h 10(with)h 12(argumen)h -1(ts,)h 10(F)h -3(unnelW)h -3(eb)h 177 642(the)s 15(case)h 16(of)h 14(its)h 15(comm)h -1(and)h 12(line)h 15(argumen)h -1(ts)h 13(so)h 15(that)h 15(it)h 14(will)h 13(b)h 1(e)h 15(able)h 15(to)h 14(op)h 1(erate)h 16(with)h 14(op)h 1(erating)h 15(systems)h 177 692(\(suc)s -1(h)h 15(as)h 14(Unix\))h 14(whose)h 14(\014le)h 14(names)h 13(are)h 14(case)h 15(dep)h 1(enden)h -1(t.)h 177 777(A)s 12(v)h -2(alid)h 9(F)h -3(unnelW)h -3(eb)h 11(argumen)h -1(t)h 10(consists)h 13(of)h 10(a)h 95(,)h 10(an)h 11(iden)h -1(tifying)h 126(,)h 9(and)h 11(an)h 11(optional)h 142(with)h 177 827(no)s 14(spaces)h 15(separating)h 14(them.)h 177 1262(In)s 14(addition)h 13(there)h 15(is)h 14(a)h 13(sp)h 1(ecial)h 14(form)h 13(of)h 13(argumen)h -1(t)h 13(that)h 14(do)h 1(es)h 14(not)h 14(b)h 1(egin)h 14(with)h 13(a)h 14(sign.)h 177 1547(This)s 14(form)h 12(is)h 14(exactly)h 14(equiv)h -2(alen)h -1(t)h 13(to)h 14(the)h 14(same)h 13(string)h 14(with)h 14(\\)h 44(")h 13(prep)h 1(ended)h 16(to)h 13(it.)h 177 1632(The)s 11(seman)h -1(tic)h 10(e\013ect)h 12(of)h 10(these)h 12(argumen)h -1(ts)h 9(is)h 11(de\014ned)h 11(in)h 10(terms)h 10(of)h 172(whic)h -1(h)h 11(are)h 10(the)h 11(in)h -1(ternal)h 11(param-)h 177 1682(eters)s 17(of)h 15(F)h -3(unnelW)h -3(eb)h 15(and)h 15(whic)h -1(h)h 15(corresp)h 1(ond)h 17(closely)h 16(with)h 15(the)h 16(set)h 16(of)h 15(legal)h 14(command)h 13(line)h 15(argumen)h -1(ts.)h 177 1732(F)s -3(unnelW)h -3(eb)h 15(has)h 15(a)h 15(prede\014ned)h 17(set)h 16(of)h 14(options)h 15(eac)h -1(h)h 15(iden)h -1(ti\014ed)h 15(b)h -1(y)h 15(an)h 15(iden)h -1(tifying)h 14(letter)h 16(ha)h -1(ving)h 14(t)h -1(w)h -1(o)h 14(at-)h 177 1781(tributes:)s 22(a)h 118(,)h 15(and)h 15(a)h 143(.)h 23(The)h 15(b)h 1(o)h 1(olean)h 15(determines)h 15(whether)h 17(an)h 15(option)h 14(is)h 15(turned)h 76(or)h 61(.)h 177 1831(The)s 14(string)h 14(con)h -1(tains)h 14(additional)h 12(informatio)h -1(n)h 12(dep)h 1(ending)h 15(on)h 13(the)h 15(option.)h 177 1916(When)s 13(F)h -3(unnelW)h -3(eb)h 12(starts)h 14(up,)h 12(its)h 13(options)h 13(ha)h -1(v)h -1(e)h 12(prede\014ned)h 15(default)h 12(v)h -2(alues.)h 17(F)h -3(unnelW)h -3(eb)h 12(then)h 14(parses)h 14(its)h 177 1966(comma)s -1(nd)h 15(line)h 16(sequen)h -1(tially)h 16(from)h 14(left)h 16(to)h 17(righ)h -1(t)h 16(executing)h 17(the)h 17(e\013ect)h 18(of)h 16(eac)h -1(h)h 17(argumen)h -1(t)h 15(on)h 16(the)h 17(argu-)h 177 2016(men)s -1(t's)h 14(corresp)h 1(onding)h 15(option.)h 20(The)h 15(sign)h 14(and)h 15(the)h 15(string)h 14(comp)h 1(onen)h -1(ts)h 15(of)h 14(the)h 15(argumen)h -1(t)h 13(are)h 15(pro)h 1(cesse)h 1(d)h 422 2066(.)s 31(A)h 18(sign)h 17(of)h 57(turns)h 19(the)h 18(option)h 17(on.)h 30(A)h 18(sign)h 17(of)h 57(turns)h 18(the)h 19(option)h 17(o\013.)h 29(A)h 18(sign)h 18(of)h 177 2116(lea)s -1(v)h -1(es)h 16(the)h 17(option's)h 15(b)h 1(o)h 1(olean)h 16(attribute)h 16(unc)h -1(hanged.)h 25(The)h 16(argumen)h -1(t)h 15(string)h 16(replaces)h 17(the)h 17(string)h 16(of)h 15(the)h 177 2166(corresp)s 1(onding)h 16(option,)h 14(unless)h 15(the)h 16(argumen)h -1(t)h 13(string)h 15(is)h 15(empt)h -1(y)h -3(,)h 13(in)h 14(whic)h -1(h)h 15(case)h 16(the)h 15(option)h 14(string)h 15(is)h 15(not)h 177 2215(c)s -1(hanged.)h 177 2301(Because)s 20(F)h -3(unnelW)h -3(eb)h 17(pro)h 1(cesses)h 20(its)h 18(comma)h -1(nd)h 16(line)h 18(argumen)h -1(ts)h 17(from)h 16(left)h 17(to)h 18(righ)h -1(t,)h 18(a)h 17(later)h 18(argumen)h -1(t)h 177 2350(can)s 16(cancel)h 17(the)h 17(e\013ect)h 18(of)h 15(an)h 16(earlier)h 16(one.)h 25(F)h -3(or)h 16(example)h 205(will)h 15(result)h 16(in)h 16(the)h 55(option)h 15(ending)h 177 2400(up)s 65(.)h 32(This)h 18(allo)h -1(ws)h 17(users)h 20(to)h 18(set)h 19(up)h 18(their)h 19(o)h -1(wn)h 18(default)h 18(argumen)h -1(ts)h 18(b)h -1(y)h 18(de\014ning)h 18(a)h 18(sym)h -1(b)h 1(ol)h 17(in)h 17(their)h 177 2450(op)s 1(erating)h 13(system's)h 13(comm)h -1(and)h 11(language.)h 17(F)h -3(or)h 13(example,)h 11(a)h 13(Unix)h 12(user)h 15(who)h 12(w)h -1(an)h -1(ts)h 13(F)h -3(unnelW)h -3(eb)h 13(to)h 13(delete)h 177 2500(all)s 11(iden)h -1(tical)h 12(output)h 12(\014les)h 12(and)h 12(create)h 14(a)h 12(do)h 1(cumen)h -1(tation)h 11(\014le)h 12(on)h 12(eac)h -1(h)h 13(run)h 12(with)h 12(a)h 12(default)h 111(extension)h 177 2550(could)s 14(simply)h 12(place)h 14(the)h 14(follo)h -1(wing)h 12(de\014nition)h 13(in)h 13(their)h 15(\\)h 132(")h 12(\014le.)h 177 2835(These)s 15(default)h 14(options)h 13(can)h 14(then)h 15(later)h 14(b)h 1(e)h 14(easily)h 14(o)h -1(v)h -1(erridden)h 14(on)h 14(the)h 14(comma)h -1(nd)h 12(line.)h 1042 2940(67)s 68 @eop 69 @bop0 69 @bop1 cmbx12.300 sf 177 42(3.7.3)s 55(Options)h cmbx10.300 sf 295 273(B1)s 49(B6:)h 36(T)h -4(racedumps:)h 295 1331(B7:)s 21(Determi)h -1(ni)h -1(sm:)h 295 1607(C:)s 18(Listi)h -1(ng)h 14(File)h 15(Con)h -1(text:)h 295 1983(D:)s 19(Delete)h 17(Iden)h -1(tical)h 16(Output)h 17(Files:)h 295 2608(F:)s 19(F)h -4(unnelW)h -4(eb)h 16(Input)h 17(File:)h 295 2785(H:)s 21(Displ)h -1(a)h -1(y)h 18(Help)h 19(Message:)h cmtt10.300 sf 1484 423(1..6)s 850 1154(B)s 749(B)h 1722 1204(+B134)s 607 1254(B1)s 25(B3)h 106(B4)h 29(-B1)h 310(B1)h 30(Default:)h 20(-B123456)h 798 1331(B7)s 366 1481(B7)s 1242(B)h 500 1530(+B7)s 25(-B7)h 29(Default:)h 20(-B7)h 901 1607(C)s 1787 1856(+C)s 702 1906(+C100)s 24(+C10)h 30(Default:)h 20(+C2)h 458 2182(stack.h)s 863(stack.h)h 742 2232(stack.h)s 911 2282(stack.h)s 1240 2332(make)s 648 2382(stack.fw)s 772(stack.h)h 295 2432(stack.c)s 333(stack.fw)h 218(stack.c)h 348(stack.h)h 1216 2481(#include)s 20(stack.h)h 879 2531(+D)s 299(-D)h 25(+D)h 25(Default:)h 20(-D)h 1601 2658(+Fsloth.fw)s 295 2708(+Fwalrus)s 24(-F)h 25(Default:)h 20(-F)h cmr10.300 sf 177 146(F)s -3(unnelW)h -3(eb's)h 14(options)h 15(are)h 15(in)h -1(ternal)h 14(parameters)h 15(whic)h -1(h)h 15(can)h 15(b)h 1(e)h 15(mo)h 1(di\014ed)h 13(b)h -1(y)h 15(corresp)h 1(onding)h 16(argumen)h -1(ts)h 177 196(on)s 14(F)h -3(unnelW)h -3(eb's)h 13(comm)h -1(and)h 12(line.)h 18(A)h 14(description)h 14(of)h 14(eac)h -1(h)h 14(argumen)h -1(t)h 13(and)h 13(option)h 14(follo)h -1(ws.)h 353 273(.)s 7(.)h 7(.)h 405(These)h 22(six)h 20(options)h 21(ha)h -1(v)h -1(e)h 20(b)h 1(een)h 22(pro)h -1(vided)h 20(to)h 21(assist)h 21(in)h 20(the)h 295 323(debugging)s 18(and)h 19(testing)h 19(of)h 18(F)h -3(unnelW)h -3(eb.)h 32(They)h 19(determine)h 19(whic)h -1(h)h 18(of)h 18(six)h 19(p)h 1(ossible)h 19(trace)h 295 373(dumps)s 19(are)h 20(to)h 19(b)h 1(e)h 20(written)h 20(to)h 19(the)h 21(listing)h 18(\014le.)h 35(Only)h 19(the)h 20(b)h 1(o)h 1(olean)h 19(attributes)h 20(of)h 19(these)h 295 423(options)s 14(are)h 14(ev)h -1(er)h 15(used.)h 19(The)h 14(six)h 14(dumps)h 13(are)h 14(iden)h -1(ti\014ed)h 14(b)h -1(y)h 14(the)h 14(digits)h 114(as)h 14(follo)h -1(ws:)h 228 545(1.)s 20(Dump)h 12(a)h 14(hexdump)h 13(of)h 13(eac)h -1(h)h 15(mapp)h 1(ed)h 12(input)h 14(and)h 14(include)h 14(\014le.)h 228 632(2.)s 20(Dump)h 12(the)h 15(global)h 12(line)h 13(list)h 14(created)h 15(b)h -1(y)h 14(the)h 14(scanner.)h 228 720(3.)s 20(Dump)h 12(the)h 15(tok)h -1(en)h 14(list)h 13(created)h 16(b)h -1(y)h 13(the)h 15(scanner.)h 228 807(4.)s 20(Dump)h 12(the)h 15(macro)h 12(table)h 14(created)h 16(b)h -1(y)h 13(the)h 15(parser.)h 228 895(5.)s 20(Dump)h 12(the)h 15(do)h 1(cumen)h -1(t)h 13(list)h 14(created)h 15(b)h -1(y)h 14(the)h 14(parser.)h 228 983(6.)s 20(Dump)h 12(a)h 14(table)h 14(summ)h -1(arizing)h 11(CPU)h 15(and)h 13(real)h 14(time)h 13(usage.)h 295 1105(Because)s 18(these)h 16(options)h 15(are)h 16(so)h 16(closely)h 15(related,)h 16(a)h 15(hac)h -1(k)h 15(has)h 16(b)h 1(een)h 17(pulled)h 15(to)h 15(enable)h 15(them)h 295 1154(to)s 16(all)h 16(to)h 16(b)h 1(e)h 17(con)h -1(trolled)h 16(b)h -1(y)h 16(the)h 55(argumen)h -1(t.)h 24(The)h 17(string)h 16(argumen)h -1(t)h 16(to)h 16(the)h 55(argumen)h -1(t)h 295 1204(determines)s 15(whic)h -1(h)h 14(of)h 13(the)h 15(six)h 14(options)h 14(are)h 14(to)h 14(b)h 1(e)h 15(a\013ected)h 15(b)h -1(y)h 14(the)h 15(sign.)h 18(Examples:)h 295 1254(turns)s 15(on)h 14(options)h 57(,)h 57(,)h 13(and)h 58(.)h 97(turns)h 14(o\013)h 14(option)h 57(.)h 390(.)h 688 1331(If)s 12(the)h 69(option)h 12(is)h 12(turned)h 13(on,)h 12(F)h -3(unnelW)h -3(eb)h 12(suppresse)h 1(s)h 14(the)h 13(output)h 295 1381(of)s 13(an)h -1(ything)h 13(non-deterministic,)h 13(or)h 14(mac)h -1(hine)h 12(dep)h 1(enden)h -1(t.)h 20(This)h 14(assists)h 14(in)h 14(regression)h 15(test-)h 295 1431(ing.)s 23(Only)h 16(the)h 16(b)h 1(o)h 1(olean)h 15(attribute)h 16(is)h 16(used)h 17(in)h 15(this)h 16(option.)h 22(This)h 16(option)h 15(is)h 15(con)h -1(trolled)h 16(b)h -1(y)h 295 1481(the)s 71(argumen)h -1(t)h 13(whic)h -1(h)h 13(falls)h 12(under)h 14(the)h 14(same)h 13(argumen)h -1(t)h 12(syn)h -1(tax)h 14(as)h 13(the)h 14(other)h 49(options.)h 295 1530(Examples:)s 83(,)h 79(.)h 279(.)h 815 1607(The)s 51(option)h 14(is)h 14(alw)h -1(a)h -1(ys)h 14(turned)h 15(on)h 15(and)h 14(cannot)h 15(b)h 1(e)h 15(turned)h 295 1657(o\013.)s 24(Its)h 16(only)h 15(attribute)h 16(is)h 16(a)h 16(n)h -1(um)h -1(b)h 1(er)h 15(whic)h -1(h)h 15(determines)h 16(the)h 17(n)h -1(um)h -1(b)h 1(er)h 15(of)h 15(lines)h 16(of)h 15(con)h -1(text)h 295 1707(that)s 18(the)h 18(lister)h 18(will)h 16(place)h 17(around)h 18(lines)h 17(\015agged)h 17(with)h 17(diagnostics)h 17(in)h 17(the)h 19(listing)h 16(\014le)h 17(\(if)h 295 1757(a)s 16(listing)h 14(\014le)h 16(is)h 16(written\).)h 24(A)h 16(v)h -2(alue)h 15(of)h 16(100)h 15(indicates)h 16(in\014nite)h 15(con)h -1(text)h 17(whic)h -1(h)h 16(means)h 15(that)h 295 1807(the)s 18(en)h -1(tire)h 17(listing)h 15(\014le)h 17(will)h 15(b)h 1(e)h 17(written)h 18(out)h 16(if)h 16(a)h 16(single)h 16(diagnostic)h 16(o)h 1(ccurs.)h 28(The)h 17(v)h -2(alue)h 16(of)h 295 1856(this)s 16(n)h -1(um)h -1(b)h 1(er)h 15(can)h 16(b)h 1(e)h 16(sp)h 1(eci\014ed)h 18(b)h -1(y)h 15(sp)h 1(ecifying)h 16(it)h 15(as)h 16(a)h 15(string)h 16(of)h 15(decimal)h 14(digits)h 15(to)h 16(the)h 295 1906(argumen)s -1(t.)h 17(Examples:)h 127(,)h 100(.)h 280(.)h 1023 1983(Only)s 16(the)h 17(b)h 1(o)h 1(olean)h 17(attribute)h 17(of)h 15(this)h 17(option)h 16(is)h 295 2033(used.)s 23(When)h 15(turned)h 16(on,)h 15(the)h 16(option)h 14(causes)h 16(the)h 16(suppression)h 17(\(deletion\))h 15(of)h 14(pro)h 1(duct)h 16(\014les)h 295 2083(and)s 19(do)h 1(cumen)h -1(tation)h 18(\014les)h 20(\(but)h 20(not)h 19(listing)h 18(or)h 19(journal)h 19(\014les\))h 19(that)h 20(are)h 19(iden)h -1(tical)h 19(to)h 19(the)h 295 2133(curren)s -1(tly)h 14(existing)h 13(\014les)h 14(of)h 13(the)h 13(same)h 13(name.)h 16(F)h -3(or)h 13(example,)h 12(if)h 12(F)h -3(unnelW)h -3(eb)h 13(is)h 13(instructed)h 15(to)h 295 2182(generate)s 176(as)h 11(an)h 11(pro)h 1(duct)h 12(\014le,)h 11(and)h 10(the)h 12(text)h 11(to)h 11(b)h 1(e)h 12(written)h 11(to)h 175(is)h 10(iden)h -1(tical)h 295 2232(to)s 12(the)h 13(curren)h -1(tly)h 13(existing)h 166(,)h 11(then)h 13(F)h -3(unnelW)h -3(eb)h 11(will)h 11(simply)h 10(not)h 12(write)h 13(an)h -1(y)h 12(pro)h 1(duct)h 295 2282(\014le,)s 13(lea)h -1(ving)h 11(the)h 13(curren)h -1(tly)h 14(existing)h 177(as)h 13(it)h 12(is)h 13(\(and)h 13(in)h 12(particular)h 12(lea)h -1(ving)h 12(the)h 13(\014le's)h 295 2332(date)s 11(attribute)h 11(the)h 11(same\).)h 17(This)h 10(prev)h -1(en)h -1(ts)h 12(unnecessary)h 110(propagations.)h 16(F)h -3(or)h 10(example,)h 295 2382(in)s 16(a)h 15(C)h 16(program,)h 14(if)h 205(is)h 16(a)h 15(F)h -3(unnelW)h -3(eb)h 16(input)h 15(\014le)h 16(that)h 16(generates)h 186(and)h 449 2432(,)s 9(a)h 10(mo)h 1(di\014catio)h -1(n)h 8(to)h 194(that)h 10(a\013ects)h 174(but)h 10(do)h 1(es)h 11(not)h 9(a\013ect)h 295 2481(will)s 10(not)h 12(pro)h -1(v)h -1(ok)h -1(e)h 11(the)h 13(recompilatio)h -1(n)h 10(of)h 11(mo)h 1(dules)h 11(that)h 362(,)h 10(so)h 12(long)h 10(as)h 12(the)h 295 2531(in)s -1(terv)h -1(ening)h 14(F)h -3(unnelW)h -3(eb)h 13(run)h 15(has)h 71(set.)h 19(Examples:)h 61(,)h 57(.)h 253(.)h 860 2608(If)s 16(this)h 16(option)h 16(is)h 16(turned)h 17(on,)h 16(F)h -3(unnelW)h -3(eb)h 16(pro)h 1(cesses)h 19(the)h 295 2658(input)s 20(\014le)h 21(whose)h 20(name)h 19(is)h 20(sp)h 1(eci\014ed)h 22(b)h -1(y)h 20(the)h 21(option)h 20(string.)h 37(Examples:)h 249(,)h 471 2708(,)s 56(.)h 253(.)h 873 2785(If)s 17(this)h 17(option)h 17(is)h 17(turned)h 19(on,)h 17(F)h -3(unnelW)h -3(eb)h 17(displa)h -1(ys)h 17(the)h 295 2835(message)s 14(sp)h 1(eci\014ed)h 15(b)h -1(y)h 13(the)h 14(argumen)h -1(t)h 12(string.)h 18(Eac)h -1(h)h 14(message)h 14(has)h 13(a)h 13(name.)h 17(The)h 14(main)h 12(help)h 1042 2940(68)s 69 @eop 70 @bop0 cmtt8.300 sf [ 16 20 -1 19 18] 84 dc cmbx10.300 sf [<003FE00001F07C0003C01E000F800F801F0007C01F0007C03E0003E07E0003F07C0001 F07C0001F0FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001F8FC0001 F87C0001F07C0001F07E0003F03E0003E03E0703E01F08C7C00F906F8003D03E0001F87C 00003FF8080000180800001C1800001FF800001FF800000FF000000FF0000007E0000003 C0> 32 36 -3 27 36] 81 dc 70 @bop1 cmr7.300 sf 1034 1913(3)s cmr6.300 sf 223 2783(3)s cmtt8.300 sf 774 2795(T)s cmr8.300 sf 241 2795(This)s 17(option)h 16(is)h 17(con)h -1(troll)h -1(ed)h 15(b)h -1(y)h 17(the)h 52(comma)h -1(nd)h 15(line)h 16(argumen)h -1(t)h 15(b)h 1(ecause)h 15(do)h 1(cumen)h -1(t)h -1(ati)h -1(on)h 15(\014les)h 17(used)h 16(to)h 17(b)h 1(e)h 17(called)h 177 2835(t)s -1(yp)h 1(esetter)h 9(\014les.)h cmbx10.300 sf 295 165(I:)s 16(Include)h 14(default)h 14(\014le)h 14(sp)h 1(eci\014cation)h -1(:)h 295 388(J:)s 17(Journal)h 14(File:)h 295 711(K:)s 20(Keyb)h 1(oard:)h 295 885(L:)s 17(Listin)h -1(g)h 15(File:)h 295 1058(O:)s 18(Pro)h 1(duct)h 15(Files:)h 1254 1208(O)s 295 1332(Q:)s 15(Quiet:)h 295 1605(S:)s 13(Screen:)h 295 1928(T:)s 18(Do)h 1(cumen)h -1(tati)h -1(on)h 15(\014le:)h 295 2201(W:)s 18(Width)h 16(of)h 16(Pro)h 1(duct)h 16(Files:)h 295 2673(X:)s 19(Execute:)h cmtt10.300 sf 641 42(menu)s 295 91(+Hregistration)s 23(+Hoptions)h 28(Default:)h 20(-Hmenu)h 743 315(=I/usr/dave/inc)s -1(ludes)h -1(/)h 28(Default:)h 20(+I)h 1391 488(Q)s 295 638(+Jjournfile)s 23(-J)h 25(Default:)h 20(-J)h 873 811(+K)s 25(-K)h 25(Default:)h 20(-K)h 1079 985(+L)s 25(-L)h 25(+Llisting.lis)h 28(Default:)h 20(-L)h 1809 1158(O)s 1776 1208(-O)s 295 1258(+O/usr/dave/pr)s -1(oduct)h -1(/)h 28(Default:)h 20(+O)h 1132 1531(-Q)s 25(+Q)h 25(Default:)h 20(-Q)h 1117 1754(S)s 295 1854(-S)s 25(+S6)h 25(+S0)h 29(Default:)h 20(-S)h 1201 2127(-T)s 25(+Tsloth.tex)h 28(Default:)h 20(-T)h 1521 2350(W)s 367 2599(W)s 625(-W)h 25(+W100)h 29(Default:)h 20(-W80)h 1289 2723(+Xmaster)s 23(-X)h 25(Default:)h 21(-X)h cmr10.300 sf 295 42(message)s 16(is)h 16(called)h 15(\\)h 88(")h 15(and)h 16(con)h -1(tains)h 16(a)h 15(list)h 16(of)h 15(the)h 16(other)h 17(help)h 16(messages.)h 24(Examples:)h 602 91(,)s 210(.)h 344(.)h 1038 165(This)s 14(option)h 13(is)h 14(alw)h -1(a)h -1(ys)h 12(turned)h 15(on)h 14(and)h 13(cannot)h 295 215(b)s 1(e)h 16(turned)h 16(o\013.)h 22(Its)h 16(string)h 15(attribute)h 16(is)h 15(used)h 16(as)h 15(the)h 16(default)h 15(\014le)h 15(sp)h 1(eci\014cation)h 16(for)h 15(include)h 295 265(\014les.)s 18(Usually)h 12(this)h 12(option)h 12(is)h 12(used)h 13(to)h 12(sp)h 1(ecify)h 13(a)h 12(directory)h 13(from)h 11(whic)h -1(h)h 12(include)h 12(\014les)h 13(should)h 295 315(b)s 1(e)h 15(obtained.)h 18(Examples:)h 476(.)h 256(.)h 636 388(If)s 14(this)h 14(option)h 14(is)h 14(turned)h 16(on,)h 14(F)h -3(unnelW)h -3(eb)h 14(generates)h 16(a)h 14(journal)h 14(\014le.)h 20(A)h 295 438(journal)s 15(\014le)h 16(con)h -1(tains)h 16(a)h 16(log)h 15(of)h 15(all)h 15(the)h 17(console)h 16(input)h 16(and)h 16(output)h 16(to)h 16(F)h -3(unnelW)h -3(eb)h 15(during)h 295 488(a)s 16(single)h 16(in)h -1(v)h -1(o)h 1(cation)h 15(of)h 16(the)h 17(F)h -3(unnelW)h -3(eb)h 16(program)h 15(\(Note:)h 23(The)h 55(option)h 15(do)h 1(es)h 17(not)h 17(a\013ect)h 295 538(this.\).)s 23(The)h 16(journal)h 15(\014le)h 15(is)h 16(particularly)h 15(useful)h 15(for)h 15(examining)h 14(what)h 15(happ)h 1(ened)h 17(during)h 15(a)h 295 588(F)s -3(unnelW)h -3(eb)h 13(shell)h 14(run.)h 18(The)h 15(string)h 13(attribute)h 15(is)h 13(the)h 15(name)h 12(of)h 13(the)h 14(journal)h 13(\014le.)h 18(Examples:)h 537 638(,)s 55(.)h 253(.)h 608 711(If)s 16(this)h 17(option)h 16(is)h 16(turned)h 18(on,)h 16(F)h -3(unnelW)h -3(eb)h 16(en)h -1(ters)h 18(an)h 17(in)h -1(teractiv)h -1(e)h 17(mo)h 1(de)h 295 761(in)s 19(whic)h -1(h)h 19(the)h 20(user)h 21(can)h 19(en)h -1(ter)h 20(F)h -3(unnelW)h -3(eb)h 19(shell)h 19(commands)h 17(in)h -1(teractiv)h -1(ely)h -3(.)h 34(The)h 20(string)h 295 811(attribute)s 15(is)h 13(un)h -1(used.)h 19(Examples:)h 61(,)h 57(.)h 253(.)h 625 885(If)s 14(this)h 15(option)h 13(is)h 15(turned)h 15(on,)h 14(F)h -3(unnelW)h -3(eb)h 14(generates)h 16(a)h 15(listing)h 13(\014le)h 15(con-)h 295 935(taining)s 13(a)h 13(summary)h 11(of)h 13(a)h 14(run)h 14(on)h 13(F)h -3(unnelW)h -3(eb)h 14(prop)h 1(er.)h 18(The)h 15(string)h 13(argumen)h -1(t)h 13(is)h 14(the)h 14(name)h 295 985(of)s 14(the)h 14(listing)h 13(\014le)h 14(to)h 13(b)h 1(e)h 15(created.)h 19(Examples:)h 61(,)h 57(,)h 299(.)h 256(.)h 680 1058(If)s 15(this)h 15(option)h 14(is)h 15(turned)h 16(on,)h 14(F)h -3(unnelW)h -3(eb)h 15(generates)h 16(a)h 15(pro)h 1(duct)h 16(\014le)h 295 1108(for)s 14(eac)h -1(h)h 15(macro)h 13(in)h 13(the)h 15(input)h 14(\014le)h 14(that)h 14(is)h 14(b)h 1(ound)h 14(to)h 14(an)h 14(output)h 15(\014le.)h 18(The)h 15(string)h 14(attribute)h 295 1158(con)s -1(tributes)h 22(to)h 20(the)h 21(name)h 19(of)h 20(the)h 21(pro)h 1(duct)h 21(\014les.)h 38(This)h 20(option)h 20(is)h 20(con)h -1(trolled)h 20(b)h -1(y)h 20(the)h 295 1208(argumen)s -1(t)h 18(b)h 1(ecause)h 21(pro)h 1(duct)h 19(\014les)h 19(used)h 20(to)h 19(b)h 1(e)h 19(called)h 19(\\)h 36(utput)h 19(\014les"\).)h 33(Examples:)h 71(,)h 733 1258(.)s 256(.)h 506 1332(If)s 12(this)h 12(option)h 12(is)h 12(turned)h 14(on,)h 12(F)h -3(unnelW)h -3(eb)h 11(suppresse)h 1(s)h 15(all)h 11(output)h 12(to)h 13(the)h 13(screen)h 295 1381(\(standard)s 17(output\))h 16(unless)h 16(one)h 16(or)h 16(more)h 15(errors)h 17(o)h 1(ccur,)h 17(in)h 15(whic)h -1(h)h 16(case)h 17(a)h 15(single)h 16(line)h 15(sum-)h 295 1431(marizing)s 12(the)h 14(errors)h 15(is)h 13(sen)h -1(t)h 15(to)h 13(standard)h 14(output)h 14(at)h 13(the)h 15(end)h 14(of)h 13(the)h 14(run.)h 18(If)h 13(this)h 14(option)h 13(is)h 295 1481(turned)s 16(o\013,)h 14(F)h -3(unnelW)h -3(eb)h 14(writes)h 15(to)h 15(the)h 15(console)h 15(in)h 14(its)h 14(normal)h 13(garrulous)h 14(w)h -1(a)h -1(y)h -3(.)h 19(The)h 15(string)h 295 1531(attribute)s 15(is)h 13(un)h -1(used)h 15(in)h 14(this)h 14(option.)h 17(Examples:)h 61(,)h 57(.)h 253(.)h 517 1605(If)s 11(this)h 12(option)h 11(is)h 11(turned)h 13(on,)h 11(F)h -3(unnelW)h -3(eb)h 12(writes)h 12(all)h 10(diagnostics)h 12(to)h 11(the)h 13(screen)h 295 1654(\(standard)s 15(output\))h 15(as)h 15(w)h -1(ell)h 14(as)h 14(to)h 15(the)h 15(listing)h 14(\014le.)h 20(By)h 14(default,)h 14(they)h 15(are)h 15(sen)h -1(t)h 16(only)h 14(to)h 14(the)h 295 1704(listing)s 16(\014le.)h 28(This)h 17(option)h 17(has)h 17(a)h 17(single)h 16(n)h -1(umerical)h 16(attribute)h 18(that)h 17(can)h 17(b)h 1(e)h 18(sp)h 1(eci\014ed)h 19(as)h 17(a)h 295 1754(decimal)s 10(string)h 12(in)h 12(the)h 12(string)h 12(comp)h 1(onen)h -1(t)h 11(of)h 11(the)h 46(argumen)h -1(t.)h 16(The)h 12(n)h -1(um)h -1(b)h 1(er)h 11(is)h 12(the)h 12(n)h -1(um)h -1(b)h 1(er)h 295 1804(of)s 12(lines)h 11(of)h 12(con)h -1(text)h 12(that)h 12(should)h 12(surround)h 12(eac)h -1(h)h 13(diagnostic)h 11(sen)h -1(t)h 13(to)h 11(the)h 13(screen.)h 19(Examples:)h 339 1854(,)s 79(,)h 79(.)h 257(.)h 793 1928(If)s 14(this)h 16(option)h 33(is)h 14(turned)h 17(on,)h 14(F)h -3(unnelW)h -3(eb)h 15(generates)h 17(a)h 14(do)h 1(c-)h 295 1977(umen)s -1(tation)h 13(\014le)h 15(in)h 15(T)h 657 1986(E)s 680 1977(X)s 15(format.)h 19(The)h 15(string)h 15(argumen)h -1(t)h 14(con)h -1(tributes)h 16(to)h 15(the)h 15(name)h 14(of)h 14(the)h 295 2027(do)s 1(cumen)h -1(tation)h 14(\014le)h 15(to)h 15(b)h 1(e)h 15(created.)h 23(By)h 15(default)h 14(this)h 15(option)h 14(is)h 15(turned)h 16(o\013,)h 15(as)h 14(exp)h 1(erience)h 295 2077(has)s 15(sho)h -1(wn)h 14(that)h 14(most)h 13(F)h -3(unnelW)h -3(eb)h 14(runs)h 14(are)h 15(made)h 13(during)h 14(program)h 12(dev)h -1(elopmen)h -1(t;)h 13(do)h 1(cu-)h 295 2127(men)s -1(tation)h 12(runs)h 15(o)h 1(ccur)h 15(far)h 14(more)h 12(rarely)h -3(.)h 18(Examples:)h 61(,)h 255(.)h 256(.)h 901 2201(If)s 15(this)h 15(option)h 14(is)h 15(turned)h 16(on,)h 15(a)h 15(lim)h -1(it)h 13(is)h 15(placed)h 15(on)h 15(the)h 295 2250(length)s 14(of)h 14(lines)h 14(in)h 14(pro)h 1(duct)h 15(\014les)h 15(generated)h 15(during)h 14(the)h 15(run.)h 20(Lines)h 14(that)h 14(breac)h -1(h)h 16(the)h 14(limit)h 295 2300(are)s 18(\015agged)h 17(with)h 17(error)h 18(messages.)h 28(This)h 17(option)h 17(has)h 17(a)h 17(single)h 17(n)h -1(umerical)h 16(attribute)h 18(that)h 295 2350(can)s 14(b)h 1(e)h 15(sp)h 1(eci\014ed)h 16(as)h 14(a)h 13(decimal)h 13(string)h 14(in)h 13(the)h 15(string)h 14(comp)h 1(onen)h -1(t)h 13(of)h 14(the)h 50(argumen)h -1(t.)h 17(The)h 295 2400(n)s -1(um)h -1(b)h 1(er)h 16(is)h 17(the)h 18(sp)h 1(eci\014ed)h 18(maxim)h -3(um)h 14(width.)h 26(This)h 17(option)h 16(is)h 17(one)h 17(of)h 16(t)h -1(w)h -1(o)h 17(lim)h -1(its)h 15(that)h 17(are)h 295 2450(placed)s 19(on)h 18(the)h 19(width)h 18(of)h 17(pro)h 1(duct)h 19(\014les.)h 32(The)h 18(other)h 19(limi)h -1(t)h 17(is)h 18(an)h 18(attribute)h 18(of)h 18(the)h 19(input)h 295 2500(\014le)s 15(that)h 14(defaults)h 15(to)h 15(80)h 14(c)h -1(haracters,)h 16(but)h 14(can)h 15(b)h 1(e)h 15(raised)h 15(or)h 15(lo)h -1(w)h -1(ered)h 15(using)h 14(an)h 14(output)h 15(line)h 295 2549(length)s 14(pragma.)h 16(The)h 13(width)h 14(that)h 13(is)h 13(enforced)h 15(is)h 13(the)h 14(lo)h -1(w)h -1(er)h 13(of)h 13(this)h 13(v)h -2(alue)h 13(and)h 13(the)h 15(v)h -2(alue)h 12(of)h 295 2599(the)s 50(option)h 14(\(if)h 13(turned)h 15(on\).)h 18(Examples:)h 60(,)h 123(.)h 301(.)h 564 2673(If)s 16(this)h 15(option)h 15(is)h 16(turned)h 16(on,)h 16(F)h -3(unnelW)h -3(eb)h 15(executes)h 17(the)h 17(F)h -3(unnelW)h -3(eb)h 15(shell)h 295 2723(script)s 15(\014le)h 14(sp)h 1(eci\014ed)h 15(b)h -1(y)h 14(the)h 14(string)h 14(attribute.)h 19(Examples:)h 193(,)h 55(.)h 254(.)h 1042 2940(69)s 709 2 177 2757 r 70 @eop 71 @bop0 71 @bop1 cmti10.300 sf 1578 480(network)s 13(no)h -2(de)h 26(devic)h -2(e)h 177 530(name)s cmbx10.432 sf 177 42(3.8)s 70(File)h 21(Nam)h -1(e)h 21(Inheritance)h 177 2620(3.9)s 70(F)h -6(unnelW)h -6(eb)h 22(Startup)h cmbx10.300 sf 262 480(directory)s 23(name)h 104(extension)h 1478 2735(Action)s 19(options)h 1759 2785(Ordinary)s 177 2835(options)s cmtt10.300 sf 769 819(@i)s 739(@o)h 427 869(+x)s 134(+f)h 120(+i)h 138(+j)h 143(+l)h 134(+t)h 192(+o)h 448 919(.fws)s 90(.fw)h 98(.fwi)h 94(.jrn)h 99(.lis)h 90(.tex)h 769 969(+f)s 138(+f)h 143(+f)h 134(+f)h 1429 1133(+)s 1358 1183(+F)s 177 1522(fw)s 22(/usr/ross/)h -1(work/)h -1(sloth)h -1(.fw)h 20(+twalrus)h 1324 1736(+T)s 198 1786(walrus)s 667 1836(walrus)s 833(walrus)h 1226 1886(.tex)s 790 1935(.tex)s 736(walrus)h 249 2035(.tex)s 487(walrus.tex)h 510(+F)h 469 2085(/usr/ross/wor)s -1(k/slo)h -1(th.fw)h 584(/usr/ross)h -1(/work)h -1(/)h 400 2135(sloth)s 525(.fw)h 158(walrus.tex)h 1095 2234(/usr/ross/w)s -1(ork/w)h -1(alrus)h -1(.tex)h 1103 2284(/usr/ross/pla)s -1(y/)h cmr10.300 sf 177 157(During)s 10(a)h 11(single)h 10(run)h 11(of)h 10(F)h -3(unnelW)h -3(eb,)h 10(F)h -3(unnelW)h -3(eb)h 11(can)h 11(pro)h 1(duce)h 11(man)h -1(y)h 9(di\013eren)h -1(t)h 12(output)h 11(\014les.)h 17(As)h 11(it)h 11(w)h -1(ould)h 177 207(b)s 1(e)h 13(v)h -1(ery)h 13(tedious)h 13(to)h 12(ha)h -1(v)h -1(e)h 12(to)h 12(sp)h 1(ecify)h 13(the)h 13(name)h 12(of)h 11(eac)h -1(h)h 13(of)h 12(these)h 14(\014les)h 13(explicitly)h 11(eac)h -1(h)h 13(time)h 11(F)h -3(unnelW)h -3(eb)h 12(is)h 177 257(run,)s 12(F)h -3(unnelW)h -3(eb)h 10(pro)h -1(vides)h 12(a)h 11(system)h 11(of)h 10(defaults)h 11(that)h 11(allo)h -1(ws)h 10(the)h 12(user)h 12(to)h 11(sp)h 1(ecify)h 12(the)h 12(minim)h -3(um)h 8(required)h 177 306(to)s 15(success)h 1(fully)h 16(complete)h 14(the)h 16(run.)h 23(T)h -3(o)h 14(do)h 15(this)h 16(F)h -3(unnelW)h -3(eb)h 14(allo)h -1(ws)h 14(\014le)h 16(sp)h 1(eci\014cations)h 16(to)h 15(inherit)h 15(\014elds)h 177 356(from)s 12(one)h 14(another.)h 177 430(F)s -3(unnelW)h -3(eb)h 18(structures)h 21(\014lenames)h 18(in)h -1(to)h 18(three)h 20(\014elds)h 19(whic)h -1(h)h 18(are)h 19(inherited)h 19(indep)h 1(enden)h -1(tly)h -3(.)h 32(The)h 19(\014elds)h 177 480(are:)s 210(,)h 123(,)h 12(and)h 211(.)h 16(On)h 13(systems)h 13(ha)h -1(ving)h 12(other)h 14(\014elds)h 13(\(e.g.)h 250(,)h 274 530(\),)s 11(the)h 11(extra)h 11(\014elds)h 11(are)h 11(considered)h 11(to)h 10(b)h 1(e)h 11(part)h 11(of)h 9(the)h 11(directory)h 11(\014eld.)h 17(V)h -3(ersion)h 11(n)h -1(um)h -1(b)h 1(ers)h 10(are)h 10(ignored.)h 177 580(A)s 14(\014eld)h 14(can)h 14(inherit)h 14(a)h 14(v)h -2(alue)h 13(if)h 13(its)h 14(curren)h -1(t)h 15(v)h -2(alue)h 13(is)h 14(the)h 15(empt)h -1(y)h 12(string.)h 177 654(The)s 14(follo)h -1(wing)h 12(table)h 14(giv)h -1(es)h 13(the)h 15(full)h 12(inheritance)h 15(sc)h -1(heme)h 14(used)h 15(in)h 13(F)h -3(unnelW)h -3(eb.)h 427 768(Script)s 70(Input)h 64(Include)h 50(Journal)h 50(List)h 108(Do)h 1(cumen)h -1(t)h 49(Pro)h 1(duct)h 427 919(\\)s 88(")h 48(\\)h 66(")h 56(\\)h 88(")h 52(\\)h 88(")h 57(\\)h 88(")h 48(\\)h 88(")h 427 1019(DefDir)s 55(Defdir)h 50(Defdir)h 68(Defdir)h 73(Defdir)h 64(Defdir)h 122(Defdir)h 177 1133(The)s 13(table)h 13(is)h 12(arranged)h 13(with)h 12(items)h 12(of)h 12(highest)h 12(priorit)h -1(y)h 12(at)h 13(the)h 13(top.)h 17(The)h 13(\\)h 198(")h 10(cells)h 13(refer)h 14(to)h 12(the)h 177 1183(\014le)s 13(sp)h 1(eci\014cation)h 14(supplied)h 14(in)h 12(the)h 14(giv)h -1(en)h 13(comm)h -1(and)h 11(line)h 13(argumen)h -1(t.)h 17(\\)h 44(")h 12(is)h 13(the)h 14(name)h 12(of)h 12(the)h 14(input)h 13(\014le.)h 177 1233(\\Defdir")s 17(refers)h 19(to)h 18(the)h 18(default)h 17(directory)h 19(sp)h 1(eci\014cation)h 18(pro)h -1(vided)h 18(b)h -1(y)h 17(the)h 18(op)h 1(erating)h 18(system.)h 29(Empt)h -1(y)h 177 1283(cells)s 14(do)h 14(not)h 14(con)h -1(tribute.)h 177 1357(The)s 14(follo)h -1(wing)h 11(example)h 13(sho)h -1(ws)h 14(ho)h -1(w)h 13(the)h 14(table)h 14(is)h 13(used.)h 19(Supp)h 1(ose)h 15(that)h 14(the)h 14(user)h 15(in)h -1(v)h -1(ok)h -1(ed)h 13(F)h -3(unnelW)h -3(eb)h 13(as)h 177 1407(follo)s -1(ws:)h 177 1636(T)s -3(o)h 19(w)h -1(ork)h 19(out)h 19(what)h 20(the)h 20(do)h 1(cumen)h -1(tation)h 18(\014le)h 20(should)h 19(b)h 1(e)h 20(called,)h 20(F)h -3(unnelW)h -3(eb)h 19(starts)h 21(with)h 19(the)h 20(empt)h -1(y)h 177 1686(string)s 17(and)h 17(then)h 18(w)h -1(orks)h 17(do)h -1(wn)h 17(the)h 18(Do)h 1(cumen)h -1(t)h 16(column)h 15(of)h 17(the)h 18(table.)h 27(The)h 18(top)h 17(en)h -1(try)h 17(is)h 17(empt)h -1(y)h 16(so)h 18(w)h -1(e)h 177 1736(ignore)s 18(it)h 17(and)h 17(pro)h 1(ceed)h 20(to)h 17(the)h 19(second)h 18(en)h -1(try)h 19(whic)h -1(h)h 17(consists)h 19(of)h 17(\\)h 44(".)h 16(The)h 18(user)h 19(sp)h 1(eci\014ed)h 19(the)h 19(string)h 177 1786(\\)s 132(")h 16(as)h 18(the)h 18(v)h -2(alue)h 17(of)h 17(this)h 18(option,)h 17(and)h 18(as)h 18(our)h 17(curren)h -1(t)h 19(\(empt)h -1(y\))h 17(string)h 18(do)h 1(es)h 19(not)h 17(ha)h -1(v)h -1(e)h 18(a)h 17(name)h 177 1836(\014eld,)s 14(w)h -1(e)h 14(insert)h 15(the)h 15(string)h 14(\\)h 132(")h 12(in)h -1(to)h 14(the)h 15(name)h 12(\014eld,)h 14(resulting)h 14(in)h 14(the)h 15(string)h 14(\\)h 132(".)h 17(Mo)h -1(ving)h 177 1886(do)s -1(wn)h 14(to)h 14(the)h 15(next)h 14(ro)h -1(w,)h 14(w)h -1(e)h 14(encoun)h -1(ter)h 16(the)h 15(constan)h -1(t)h 14(string)h 15(\\)h 88(".)h 17(This)h 14(string)h 14(consists)h 15(of)h 14(an)h 14(empt)h -1(y)h 177 1935(directory)s 17(and)h 15(name)h 15(\014eld,)h 16(but)h 16(a)h 15(\\)h 88(")h 15(\014le)h 16(extension.)h 24(As)h 16(our)h 16(curren)h -1(t)h 17(string)h 16(\\)h 132(",)h 14(do)h 1(es)h 17(not)h 177 1985(already)s 16(ha)h -1(v)h -1(e)h 16(a)h 16(\014le)h 17(extension)h 17(\(i.e.)h 15(the)h 17(\014le)h 16(extension)h 17(\014eld)h 17(of)h 15(our)h 17(curren)h -1(t)h 17(string)h 17(is)h 16(empt)h -1(y\),)h 15(w)h -1(e)h 17(add)h 177 2035(in)s 16(\\)h 88(",)h 15(resulting)h 16(in)h 16(the)h 17(string)h 16(\\)h 219(".)h 23(Next)h 17(w)h -1(e)h 16(encoun)h -1(ter)h 18(the)h 17(\\)h 44(")h 15(\014eld)h 16(whic)h -1(h)h 16(is)h 16(the)h 177 2085(input)s 12(\014lename)h 11(\\)h 503(")h 10(consisting)h 13(of)h 11(a)h 12(directory)h 13(\014eld)h 13(\\)h 328(",)h 10(a)h 177 2135(name)s 13(\014eld)h 15(\\)h 110(",)h 12(and)h 15(a)h 14(\014le)h 14(extension)h 15(\014eld)h 15(\\)h 66(".)h 18(Our)h 15(\\)h 220(")h 12(string)h 14(already)h 14(has)h 15(name)h 177 2184(and)s 14(\014le)h 14(extension)h 15(\014elds,)h 13(but)h 15(its)h 14(directory)h 14(\014eld)h 14(is)h 14(empt)h -1(y)h -3(,)h 12(and)h 14(so)h 14(w)h -1(e)h 14(add)h 14(in)h 13(the)h 15(directory)h 15(\014eld)h 14(from)h 177 2234(the)s 13(input)h 13(\014le)h 13(sp)h 1(eci\014cation,)h 13(resulting)h 13(in)h 12(the)h 13(string)h 13(\\)h 546(".)h 16(Finally)h -3(,)h 10(w)h -1(e)h 13(hit)h 177 2284(the)s 15(default)h 14(directory)h 16(sp)h 1(eci\014cation,)h 15(whic)h -1(h)h 14(is)h 15(\(sa)h -1(y\))h 14(\\)h 329(".)h 18(Ho)h -1(w)h -1(ev)h -1(er,)h 14(as)h 15(the)h 15(directory)h 177 2334(\014eld)s 14(of)h 13(our)h 14(w)h -1(alrus)h 14(string)h 14(is)h 14(already)h 13(full,)h 12(it)h 14(has)h 14(no)h 14(e\013ect.)h 177 2408(In)s 17(general,)h 16(there)h 18(is)h 17(no)h 16(need)h 17(to)h 17(remem)h -1(b)h 1(er)h 15(the)h 17(exact)h 17(details)h 17(of)h 15(F)h -3(unnelW)h -3(eb's)h 16(\014lename)h 16(inheritance.)h 177 2458(The)s 14(imp)h 1(ortan)h -1(t)h 13(thing)h 13(is)h 14(to)h 14(kno)h -1(w)h 13(that)h 14(it)h 13(exists,)h 14(and)h 14(to)h 14(use)h 15(it.)h 177 2735(F)s -3(unnelW)h -3(eb's)h 18(comm)h -1(and)h 16(line)h 18(options)h 17(can)h 19(b)h 1(e)h 18(divided)h 18(in)h -1(to)h 17(t)h -1(w)h -1(o)h 18(groups.)h 361(instruct)h 177 2785(F)s -3(unnelW)h -3(eb)h 19(to)h 19(p)h 1(erforms)h 19(some)h 19(sort)h 20(of)h 19(indep)h 1(enden)h -1(t)h 21(action)h 19(suc)h -1(h)h 20(as)h 19(pro)h 1(cessing)h 21(a)h 19(\014le.)h 342 2835(merely)s 13(mo)h 1(dify)h 12(the)h 14(w)h -1(a)h -1(y)h 14(in)h 13(whic)h -1(h)h 14(F)h -3(unnelW)h -3(eb)h 13(executes)h 16(the)h 15(actions.)h 1042 2940(70)s 1323 2 402 733 r 2 50 401 783 r 2 50 579 783 r 2 50 743 783 r 2 50 925 783 r 2 50 1112 783 r 2 50 1290 783 r 2 50 1526 783 r 2 50 1723 783 r 1323 2 402 785 r 2 50 401 834 r 2 50 579 834 r 2 50 743 834 r 2 50 925 834 r 2 50 1112 834 r 2 50 1290 834 r 2 50 1526 834 r 2 50 1723 834 r 2 50 401 884 r 2 50 579 884 r 2 50 743 884 r 2 50 925 884 r 2 50 1112 884 r 2 50 1290 884 r 2 50 1526 884 r 2 50 1723 884 r 2 50 401 934 r 2 50 579 934 r 2 50 743 934 r 2 50 925 934 r 2 50 1112 934 r 2 50 1290 934 r 2 50 1526 934 r 2 50 1723 934 r 2 50 401 984 r 2 50 579 984 r 2 50 743 984 r 2 50 925 984 r 2 50 1112 984 r 2 50 1290 984 r 2 50 1526 984 r 2 50 1723 984 r 2 50 401 1034 r 2 50 579 1034 r 2 50 743 1034 r 2 50 925 1034 r 2 50 1112 1034 r 2 50 1290 1034 r 2 50 1526 1034 r 2 50 1723 1034 r 1323 2 402 1036 r 71 @eop 72 @bop0 cmbx12.300 sf [<00FE0007FFC00F83E01F01F03E00F83E00F87C007C7C007C7C007CFC007CFC007EFC00 7EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007EFC007E7C00 7C7C007C7C007C3E00F83E00F81F01F00F83E007FFC000FE00> 24 32 -2 31 28] 48 dc cmbx10.300 sf [ 32 28 -2 27 37] 85 dc cmr10.300 sf [ 24 1 0 11 21] 123 dc 72 @bop1 cmbx10.432 sf 177 1588(3.10)s 70(Scanner)h cmbx12.300 sf 177 1879(3.10.1)s 55(Basic)h 19(Input)h 19(File)h 17(Pro)h 2(cessing)h cmtt10.300 sf 696 42(+F)s 23(+K)h 24(+X)h 101(+H)h 503 427(fwinit.fws)s 1133 527(set)s 1628 645(+X)s 1622 763(+F)s 1400 881(+H)s 1138 999(+K)s 214 1335(+Xscript.fws)s 1048(+Hcommand)h 1239 2727(@p)s 21(maximum)h 14(input)h 15(line)h 15(length)h cmbx10.300 sf 295 377(Initial)s -1(izati)h -1(on)h 17(script:)h 295 645(Execute)s 13(argumen)h -1(t)h 11(script:)h 295 763(Pro)s 1(cess)h 20(input)h 17(\014le:)h 295 881(Displa)s -1(y)h 17(help)h 17(message:)h 295 999(In)s -1(teractiv)h -1(e)h 13(mo)h 1(de:)h 1790 1974(mapp)s 1(er)h 295 2192(File)s 10(T)h -4(erminati)h -1(on)h -1(:)h 295 2459(Unprin)s -2(tab)h -1(le)h 15(Characters:)h 295 2627(Line)s 22(Lengths:)h cmr10.300 sf 177 42(The)s 13(four)h 11(action)h 12(options)h 12(are:)h 61(,)h 55(,)h 56(,)h 11(and)h 55(.)h 12(F)h -3(or)h 11(F)h -3(unnelW)h -3(eb)h 12(to)h 12(b)h 1(e)h 12(success)h 1(fully)h 13(in)h -1(v)h -1(ok)h -1(ed,)h 11(at)h 12(least)h 177 91(one)s 17(action)h 16(option)h 16(m)h -1(ust)h 16(b)h 1(e)h 17(sp)h 1(eci\014ed.)h 28(If)h 16(zero)h 18(action)h 16(options)h 16(are)h 18(sp)h 1(eci\014ed,)h 18(F)h -3(unnelW)h -3(eb)h 16(terminates)h 177 141(with)s 14(failure)h 13(status.)h 19(If)h 14(more)h 13(than)h 14(one)h 14(action)h 14(option)h 13(is)h 14(sp)h 1(eci\014ed,)h 15(F)h -3(unnelW)h -3(eb)h 13(p)h 1(erforms)h 14(the)h 14(sp)h 1(eci\014ed)h 177 191(actions)s 14(in)h 14(a)h 13(prede\014ned)h 16(order.)h 177 259(Assuming)s 14(that)h 15(the)h 15(user)h 16(has)h 15(sp)h 1(eci\014ed)h 16(at)h 15(least)h 15(one)h 15(action,)h 14(the)h 15(order)h 16(in)h 14(whic)h -1(h)h 15(actions)h 15(are)h 15(executed)h 177 309(is)s 14(as)h 14(follo)h -1(ws:)h 738 377(F)s -3(unnelW)h -3(eb)h 17(starts)h 18(b)h -1(y)h 17(lo)h 1(oking)h 16(in)h 17(the)h 18(curren)h -1(t)h 19(directory)h 18(for)h 17(a)h 295 427(\014le)s 15(called)h 15(\\)h 220(")h -1(.)h 20(If)h 14(it)h 15(do)h 1(esn't)h 15(\014nd)h 16(one,)h 15(it)h 14(do)h 1(esn't)h 16(raise)h 15(an)h -1(y)h 14(error.)h 23(If)h 14(it)h 15(do)h 1(es)h 295 477(\014nd)s 13(one,)h 13(it)h 12(executes)h 15(it)h 12(as)h 13(a)h 12(F)h -3(unnelW)h -3(eb)h 13(shellscript.)h 18(Initialization)h 10(scripts)h 14(are)h 13(useful)h 13(for)h 295 527(setting)s 13(up)h 11(F)h -3(unnelW)h -3(eb)h 12(options)h 11(\(e.g.)h 11(using)h 12(the)h 12(\\)h 66(")h 11(comma)h -1(nd)h 10(without)h 12(ha)h -1(ving)h 10(to)h 12(t)h -1(yp)h 1(e)h 295 577(them)s 13(eac)h -1(h)h 15(time\).)h 835 645(If)s 11(a)h 11(shellscript)h 12(has)h 12(b)h 1(een)h 12(sp)h 1(eci\014ed)h 13(using)h 11(the)h 12(\\)h 44(")h 11(option,)h 295 695(F)s -3(unnelW)h -3(eb)h 14(executes)h 16(it.)h 706 763(If)s 17(the)h 19(user)h 18(has)h 18(sp)h 1(eci\014ed)h 19(an)h 18(input)h 17(\014le)h 18(using)h 17(the)h 18(\\)h 44(")h 17(option,)h 295 813(then)s 15(this)h 14(is)h 14(pro)h 1(cessed)h 16(next)h 14(\(b)h -1(y)h 14(F)h -3(unnelW)h -3(eb)h 13(prop)h 1(er\).)h 783 881(If)s 16(the)h 17(user)h 18(requested,)h 19(using)h 16(the)h 18(\\)h 44(")h 15(option,)h 17(that)h 16(a)h 17(help)h 295 931(message)s 14(b)h 1(e)h 14(displa)h -1(y)h -1(ed,)h 13(the)h 15(message)h 13(is)h 14(displa)h -1(y)h -1(ed)h 13(at)h 14(this)h 14(time.)h 681 999(If)s 13(the)h 13(user)h 15(sp)h 1(eci\014ed)h 15(the)h 13(\\)h 44(")h 13(option,)h 12(F)h -3(unnelW)h -3(eb)h 13(en)h -1(ters)h 14(in)h -1(terac-)h 295 1049(tiv)s -1(e)h 14(\(k)h -1(eyb)h 1(oard\))h 14(mo)h 1(de.)h 177 1117(F)s -3(unnelW)h -3(eb)h 12(pro)h 1(cesses)h 15(these)h 14(actions)h 12(in)h 12(the)h 13(ab)h 1(o)h -1(v)h -1(e)h 12(order)h 14(regardless)h 13(of)h 12(the)h 13(order)h 13(in)h 12(whic)h -1(h)h 12(they)h 13(app)h 1(ear)h 177 1167(on)s 14(the)h 14(comma)h -1(nd)h 12(line.)h 177 1236(It)s 17(ma)h -1(y)h 15(b)h 1(e)h 17(hard)h 17(to)h 17(see)h 17(ho)h -1(w)h 17(some)h 16(of)h 16(these)h 18(actions)h 17(migh)h -2(t)h 15(b)h 1(e)h 18(com)h -1(bined.)h 25(Nev)h -1(ertheless,)h 19(F)h -3(unnelW)h -3(eb)h 177 1285(allo)s -1(ws)h 17(this.)h 31(F)h -3(or)h 18(example,)h 18(a)h 18(user)h 19(migh)h -1(t)h 16(wish)h 18(to)h 18(pro)h 1(cess)h 20(a)h 18(batc)h -1(h)h 19(of)h 18(\014les)h 18(as)h 18(sp)h 1(eci\014ed)h 20(in)h 18(a)h 18(script)h 177 1335(\(\\)s 264(")h -1(\),)h 14(b)h 1(e)h 16(reminded)h 15(of)h 15(the)h 16(in)h -1(teractiv)h -1(e)h 15(comma)h -1(nds)h 14(a)h -1(v)h -2(ailable)h 14(\(\\)h 198(")h -1(\),)h 14(and)h 15(then)h 177 1385(en)s -1(ter)h 12(in)h -1(teractiv)h -1(e)h 12(mo)h 1(de)h 10(so)h 11(as)h 11(to)h 11(b)h 1(e)h 12(able)h 10(to)h 11(repro)h 1(cess)h 14(\014les)h 11(for)h 11(whic)h -1(h)h 11(F)h -3(unnelW)h -3(eb)h 10(rep)h 1(orted)h 13(errors)h 12(\(after)h 177 1435(correcting)s 15(the)h 15(errors)h 15(in)h 13(a)h 14(di\013eren)h -1(t)h 15(w)h -1(orkstation)h 13(windo)h -1(w\).)h 177 1697(The)s 16(scanner)h 17(reads)h 16(in)h 15(the)h 16(input)h 15(\014le)h 15(and)h 15(pro)h 1(duces)h 17(a)h 15(list)h 15(of)h 15(tok)h -1(ens)h 16(whic)h -1(h)h 15(it)h 15(hands)h 15(on)h -1(to)h 15(the)h 16(parser.)h 177 1747(In)s 12(addition,)h 11(some)h 12(input)h 12(constructs)h 14(ma)h -1(y)h 11(cause)h 13(the)h 13(scanner)h 14(to)h 12(mo)h 1(dify)h 10(some)h 11(of)h 12(F)h -3(unnelW)h -3(eb's)h 12(options.)h 177 1974(In)s 14(order)h 15(to)h 14(read)h 15(in)h 14(an)h 14(input)h 14(\014le)h 14(or)h 14(include)h 15(\014le,)h 14(the)h 14(scanner)h 16(calls)h 14(a)h 14(submo)h 1(dule)h 13(called)h 14(the)h 177 2024(that)s 12(reads)h 12(a)h 11(\014le)h 12(in)h 11(and)h 11(creates)h 14(a)h 11(con)h -1(tiguous)h 11(cop)h -1(y)h 12(of)h 11(it)h 11(in)h 11(memo)h -1(ry)h -3(.)h 15(The)h 12(scanner)h 13(then)h 12(p)h 1(erforms)h 11(three)h 177 2074(c)s -1(hec)h -1(ks)h 18(on)h 16(the)h 17(\014le,)h 17(the)h 17(\014rst)h 17(\(\014le)h 17(termination\))h 15(of)h 16(whic)h -1(h)h 16(is)h 16(p)h 1(erformed)h 16(b)h 1(efore)h 18(scanning)h 16(commences,)h 177 2124(and)s 14(the)h 14(other)h 15(t)h -1(w)h -1(o)h 13(of)h 14(whic)h -1(h)h 13(tak)h -1(e)h 14(place)h 14(during)h 14(scanning)h 14(b)h 1(efore)h 14(eac)h -1(h)h 15(line)h 13(is)h 14(scanned.)h 670 2192(The)s 10(\014rst)h 10(c)h -1(hec)h -1(k)h 11(the)h 10(scanner)h 11(mak)h -1(es)h 8(is)h 9(whether)h 11(the)h 10(\014le)h 10(is)h 9(terminated)h 295 2242(prop)s 1(erly)h -3(.)h 19(A)h 14(\014le)h 14(is)h 14(considered)h 16(to)h 14(b)h 1(e)h 14(prop)h 1(erly)h 15(terminated)h 13(if)h 14(it)h 13(either)h 15(con)h -1(tains)h 14(no)h 14(lines,)h 295 2291(or)s 17(if)h 16(the)h 17(last)h 17(line)h 16(in)h 16(the)h 18(\014le)h 16(is)h 17(terminated)h 16(b)h -1(y)h 17(an)h 16(end-of-line)h 16(mark)h -1(er.)h 26(If)h 16(the)h 17(scanner)h 295 2341(detects)s 19(that)h 17(an)h 16(input)h 16(\014le)h 17(is)h 17(not)h 16(prop)h 1(erly)h 17(terminated,)h 16(it)h 17(adds)h 16(an)h 17(end-of-line)h 16(mark)h -1(er)h 295 2391(itself)s 14(\(to)h 14(the)h 14(cop)h -1(y)h 14(in)h 13(memory)h 12(only\).)h 826 2459(The)s 16(second)h 17(c)h -1(hec)h -1(k)h 16(the)h 16(scanner)h 17(mak)h -1(es)h 14(is)h 16(for)h 15(unprin)h -1(table)h 295 2509(c)s -1(haracters)h 18(\(ASCI)h 1(I)h 17(0{31)h 15(and)h 16(127{255)h 15(\(except)h 18(for)h 16(EOL\(10\)\)\))h 17(whic)h -1(h)h 16(it)h 16(\015ags)h 16(as)h 16(errors)h 295 2559(and)s 14(replaces)h 15(b)h -1(y)h 14(question)h 14(marks.)h 620 2627(The)s 21(third)h 21(c)h -1(hec)h -1(k)h 21(the)h 22(scanner)h 22(mak)h -1(es)h 19(is)h 21(input)h 21(line)h 20(length.)h 38(When)h 295 2677(F)s -3(unnelW)h -3(eb)h 18(starts)h 18(up,)h 19(a)h 17(default)h 18(maxim)h -3(um)h 15(input)h 17(line)h 18(length)h 18(of)h 17(80)h 17(is)h 18(set.)h 31(This)h 17(can)h 295 2727(b)s 1(e)h 22(c)h -1(hanged)h 21(dynamical)h -1(ly)h 19(during)h 20(scanning)h 21(using)h 20(a)h 295 2777(pragma.)s 17(If)h 13(the)h 15(n)h -1(um)h -1(b)h 1(er)h 13(of)h 13(c)h -1(haracters)h 16(on)h 14(a)h 13(line)h 14(\(not)h 14(including)h 13(the)h 14(end)h 15(of)h 13(line)h 13(mark)h -1(er\))h 295 2827(exceeds)s 16(this)h 14(limi)h -1(t,)h 12(F)h -3(unnelW)h -3(eb)h 13(generates)h 16(an)h 13(error.)h 1042 2940(71)s 14 2 1461 2727 r 14 2 1585 2727 r 14 2 1688 2727 r 72 @eop 73 @bop0 /cmti8.300 127 @newfont cmbx12.300 sf [<00FE030007FF87000FC1C7001F006F003F003F007E003F007E001F007C001F00FC001F 00FC001F00FC001F00FC001F00FC001F00FC001F00FC001F007E001F007E001F003E003F 001F007F000FC1DF0007FF9F0001FC1F0000001F0000001F0000001F0000001F0000001F 0000001F0000001F0000001F000000FFE00000FFE0> 32 32 -2 21 30] 113 dc cmti8.300 sf [<07800C4018E018E038001E001F8007C000C060C0E0C0C180C3003E00> 16 14 -3 13 15] 115 dc [<1C702288230C230C460C060C060C060C0C180C180C100C301A601B8018001800300030 003000FC00> 16 20 -2 13 18] 112 dc [<07001880304060404080FF00C000C000C0008000C040C08043003C00> 16 14 -5 13 16] 101 dc [<03C00C6018E030E030006000600060004000C0004020604021801E00> 16 14 -4 13 16] 99 dc [<030706000000000000384C4C4C8C181818303262622438> 8 23 -3 22 11] 105 dc [<072008E018E0306030C060C060C060C0C180C188C1884388659038E0> 16 14 -4 13 18] 97 dc [<3E0C0C0C0C181818183030303060606060C0D0D0D0D060> 8 23 -4 22 9] 108 dc [<1F0006000600060006000C000C000C000C0019C01A601C201830306030603060306060 C060C461846188C098C0E0> 16 23 -3 22 18] 104 dc [<38F04518463846308C000C000C000C00180018001800180030003000> 16 14 -3 13 15] 114 dc [<030003000600060006000600FF800C000C000C00180018001800180030003100310031 0032001C00> 16 20 -3 19 12] 116 dc [<072008A018E0306030C060C060C060C0C180C180C180438067003B0003000300060006 0006003F80> 16 20 -4 13 16] 113 dc [<1C0826184618461886300C300C300C30186018621862186208E40738> 16 14 -3 13 19] 117 dc [<387044984708460C8C180C180C180C18183018311861186230263038> 16 14 -3 13 20] 110 dc 73 @bop1 cmr6.300 sf 223 2704(4)s cmr7.300 sf 1931 179(4)s cmmi10.300 sf 1469 529(<)s 121(>)h 22(<)h 208(>)h 850 579(<)s 121(>)h cmbx12.300 sf 177 42(3.10.2)s 55(Sp)h 2(ecial)h 18(Sequences)h cmti8.300 sf 1620 2795(sp)s -2(e)h -2(cial)h 16(char)h -2(acter)h 177 2835(sp)s -2(e)h -2(cial)h 14(se)h -2(quenc)h -2(e)h cmbx10.300 sf 1581 194(sp)s 1(ecial)h 14(c)h -1(haracter)h 538 244(sp)s 1(ecial)h 17(sequence)h 1815 1128(simple)s 177 1178(sequence)s cmr8.300 sf 241 2716(This)s 10(sort)h 10(of)h 11(c)h -1(haracte)h -1(r)h 9(is)h 11(often)h 9(referred)h 9(to)h 10(as)h 11(the)h 10(\\escap)h 1(e)h 9(c)h -1(haract)h -1(er")h 8(or)h 11(the)h 10(\\con)h -1(tro)h -1(l)h 9(c)h -1(haracter)h -1(")h 9(in)h 10(other)h 10(systems.)h 177 2756(Ho)s -1(w)h -1(ev)h -1(er,)h 15(as)h 14(there)h 14(is)h 14(great)h 14(p)h 1(oten)h -1(ti)h -1(al)h 13(to)h 14(confuse)h 13(these)h 13(names)h 13(with)h 15(the)h 13(\\escap)h 1(e")h 13(c)h -1(haracte)h -1(r)h 13(\(ASCI)h 1(I)h 14(27\))h 14(and)h 14(ASCI)h 1(I)h 177 2795(\\con)s -1(trol")h 11(c)h -1(haracte)h -1(rs,)h 12(the)h 12(term)h 12(\\sp)h 1(ecial")h 11(has)h 13(b)h 1(een)h 12(c)h -1(hosen)h 12(instead.)h 18(This)h 14(results)h 12(in)h 12(the)h 13(terms)h 284(and)h 420 2835(.)s cmtt10.300 sf 177 411(input_file)s 20(=)h 21({ordinary_text)h 19(|)h 22(special_sequ)h -1(ence})h 857 529(@)s 775(=)h 973 629(@)s 417 1128(-)s 718(S)h 1197 1228(C)s 177 1395(ASC)s 43(SEQ)h 43(COMMENT)h 177 1445(-------------)s -1(----)h 177 1495(000)s 152(\\)h 177 1545(016)s 174(|)h 21(Unprintable)h 20(characters)h 20(and)h 21(hence)h 21(illegal)h 20(specials.)h 177 1595(031)s 152(/)h 177 1644(032)s 43(@)h 87(-)h 22(Illegal)h 20(\(space\).)h 177 1694(033)s 43(@!)h 65(C)h 22(Comment.)h 177 1744(034)s 43(@")h 65(S)h 22(Parameter)h 20(delimeter.)h 177 1794(035)s 43(@#)h 65(C)h 22(Short)h 20(name)h 21(sequence.)h 177 1844(036)s 43(@$)h 65(S)h 22(Start)h 20(of)h 22(macro)h 21(definition.)h 177 1894(037)s 43(@%)h 65(-)h 22(Illegal.)h 177 1943(038)s 43(@&)h 65(-)h 22(Illegal.)h 177 1993(039)s 43(@')h 65(-)h 22(Illegal.)h 177 2043(040)s 43(@\()h 65(S)h 22(Open)h 21(parameter)h 20(list.)h 177 2093(041)s 43(@\))h 65(S)h 22(Close)h 20(parameter)h 20(list.)h 177 2143(042)s 43(@*)h 65(-)h 22(Illegal.)h 177 2192(043)s 43(@+)h 65(C)h 22(Insert)h 20(newline.)h 177 2242(044)s 43(@,)h 65(S)h 22(Parameter)h 20(separator.)h 177 2292(045)s 43(@-)h 65(C)h 22(Suppress)h 20(end)h 21(of)h 21(line)h 21(marker.)h 177 2342(046)s 43(@.)h 65(-)h 22(Illegal.)h 177 2392(047)s 43(@/)h 65(S)h 22(Open)h 21(or)h 21(close)h 21(emphasised)h 20(text.)h 177 2441(048)s 43(@0)h 65(-)h 22(Illegal.)h 177 2491(049)s 43(@1)h 65(S)h 22(Formal)h 20(parameter)h 20(1.)h 177 2541(050)s 43(@2)h 65(S)h 22(Formal)h 20(parameter)h 20(2.)h 177 2591(051)s 43(@3)h 65(S)h 22(Formal)h 20(parameter)h 20(3.)h 177 2641(052)s 43(@4)h 65(S)h 22(Formal)h 20(parameter)h 20(4.)h cmr10.300 sf 177 144(The)s 11(scanner)h 11(scans)h 11(the)h 11(input)h 9(\014le)h 10(from)h 9(top)h 10(to)h 10(b)h 1(ottom,)h 8(left)h 10(to)h 10(righ)h -1(t,)h 10(treating)h 10(the)h 11(input)h 10(as)h 10(ordinary)h 9(text)h 177 194(\(to)s 14(b)h 1(e)h 14(handed)h 14(directly)h 13(to)h 14(the)h 14(parser)h 14(as)h 14(a)h 13(text)h 14(tok)h -1(en\))h 14(unless)h 14(it)h 13(encoun)h -1(ters)h 15(the)h 177 244(whic)s -1(h)h 16(in)h -1(tro)h 1(duces)h 17(a)h 359(.)h 23(Th)h -1(us,)h 17(the)h 16(scanner)h 18(partitions)h 15(the)h 17(input)h 16(\014le)h 16(in)h -1(to)h 15(ordinary)h 177 293(text)s 15(and)h 13(sp)h 1(ecial)h 15(sequences.)h 177 529(Up)s 1(on)h 11(startup,)h 11(the)h 11(sp)h 1(ecial)h 11(c)h -1(haracter)h 12(is)h 32(,)h 11(but)h 11(it)h 10(can)h 10(b)h 1(e)h 12(c)h -1(hanged)h 10(using)h 11(the)h 43(sp)h 1(ecial)h 86(new)h 16(sp)h 1(ecial)h 177 579(sp)s 1(ecial)h 15(sequence.)h 22(Rather)h 15(than)h 15(using)h 46(sp)h 1(ecial)h 48(whenev)h -1(er)h 16(the)h 15(sp)h 1(ecial)h 15(c)h -1(haracter)h 16(app)h 1(ears,)h 15(this)h 15(do)h 1(c-)h 177 629(umen)s -1(t)h 18(uses)h 21(the)h 20(default)h 18(sp)h 1(ecial)h 20(c)h -1(haracter)h 20(\\)h 22(")h 19(to)h 19(represen)h -1(t)h 21(the)h 20(curren)h -1(t)h 21(sp)h 1(ecial)h 19(c)h -1(haracter.)h 35(More)h 177 679(imp)s 1(ortan)h -1(tly)h -4(,)h 14(F)h -3(unnelW)h -3(eb's)h 15(error)h 16(messages)h 16(all)h 14(use)h 16(the)h 16(default)h 16(sp)h 1(ecial)h 15(c)h -1(haracter)h 17(in)h 15(their)h 16(error)h 17(mes-)h 177 728(sages)s 15(ev)h -1(en)h 14(if)h 13(the)h 15(sp)h 1(ecial)h 14(c)h -1(haracter)h 15(has)h 14(b)h 1(een)h 15(c)h -1(hanged.)h 177 804(An)s 17(o)h 1(ccurrence)h 19(of)h 15(the)h 17(sp)h 1(ecial)h 17(c)h -1(haracter)h 17(in)h 16(the)h 17(input)h 16(\014le)h 16(in)h -1(tro)h 1(duces)h 18(a)h 16(sp)h 1(ecial)h 16(sequence.)h 28(The)h 16(kind)h 177 853(of)s 14(sp)h 1(ecial)h 14(sequence)h 16(is)h 14(determined)h 14(b)h -1(y)h 14(the)h 15(c)h -1(haracter)h 16(follo)h -1(wi)h -1(ng)h 12(the)h 15(sp)h 1(ecial)h 14(c)h -1(haracter.)h 20(Only)h 14(prin)h -1(table)h 177 903(c)s -1(haracters)h 16(can)h 14(follo)h -1(w)h 12(the)h 14(sp)h 1(ecial)h 14(c)h -1(haracter.)h 177 979(The)s 17(follo)h -1(wi)h -1(ng)h 14(list)h 16(giv)h -1(es)h 16(all)h 14(the)h 17(p)h 1(ossible)h 16(c)h -1(haracters)h 18(that)h 16(can)h 17(follo)h -1(w)h 14(the)h 16(sp)h 1(ecial)h 17(c)h -1(haracter,)h 17(and)h 16(the)h 177 1028(legalit)s -1(y)h 12(of)h 12(eac)h -1(h)h 14(sequence.)h 20(The)h 13(\014rst)h 14(column)h 12(giv)h -1(es)h 12(the)h 14(ASCI)h 1(I)h 13(n)h -1(um)h -1(b)h 1(er)h 13(of)h 12(eac)h -1(h)h 14(ASCI)h 1(I)h 13(c)h -1(haracter.)h 19(The)h 177 1078(second)s 12(column)h 10(giv)h -1(es)h 10(the)h 12(sp)h 1(ecial)h 11(sequence)h 13(for)h 11(that)h 11(c)h -1(haracter.)h 19(The)h 11(next)h 12(column)h 9(con)h -1(tains)h 11(one)h 11(of)h 10(three)h 177 1128(c)s -1(haracters:)h 25(\\)h 22(")h 16(means)h 16(that)h 17(the)h 17(sequence)h 19(is)h 16(illegal.)h 24(\\)h 22(")h 16(indicates)h 17(that)h 17(the)h 17(sequence)h 19(is)h 16(a)h 380 1178(\(with)s 20(no)h 19(attributes)h 20(or)h 20(side)h 19(e\013ects\))h 22(that)h 19(app)h 1(ears)h 21(exactly)h 19(as)h 20(sho)h -1(wn)h 19(and)h 19(is)h 20(con)h -1(v)h -1(erted)h 177 1228(directly)s 19(in)h -1(to)h 17(a)h 18(tok)h -1(en)h 19(and)h 18(fed)h 18(to)h 18(the)h 19(parser.)h 33(Finally)h -3(,)h 17(\\)h 22(")h 17(indicates)h 19(that)h 18(the)h 19(sp)h 1(ecial)h 18(sequence)h 21(is)h 177 1278(complex,)s 12(p)h 1(ossibly)h 14(ha)h -1(ving)h 13(a)h 13(follo)h -1(wing)h 11(syn)h -1(tax)h 14(or)h 14(pro)h 1(ducing)h 14(funn)h -1(y)h 14(side)h 14(e\013ects.)h 1042 2940(72)s 13 2 1781 529 r 709 2 177 2678 r 73 @eop 74 @bop0 74 @bop1 cmti10.300 sf 1346 2685(nothing)s 12(happ)h -2(ens)h 13(unless)h 12(the)h 11(sp)h -2(e)h -2(cial)h 177 2735(char)s -2(acter)h 17(is)h 17(se)h -2(en.)h cmr10.300 sf 177 2685(The)s 11(most)h 9(imp)h 1(ortan)h -1(t)h 8(thing)h 10(to)h 10(remem)h -1(b)h 1(er)h 10(ab)h 1(out)h 10(the)h 11(scanner)h 11(is)h 10(that)h 525 2735(There)s 18(are)h 16(no)h 17(funn)h -1(y)h 16(sequences)h 19(that)h 17(will)h 15(cause)h 17(strange)h 18(things)h 16(to)h 17(happ)h 1(en.)h 26(The)h 177 2785(b)s 1(est)h 16(w)h -1(a)h -1(y)h 14(to)h 14(view)h 15(a)h 14(F)h -3(unnelW)h -3(eb)h 14(do)h 1(cumen)h -1(t)h 14(at)h 15(the)h 15(scanner)h 16(lev)h -1(el)h 14(is)h 14(as)h 15(a)h 14(b)h 1(o)h 1(dy)h 15(of)h 14(text)h 15(punctuated)h 16(b)h -1(y)h 177 2835(sp)s 1(ecial)h 14(sequence)h 1(s)h 16(that)h 14(serv)h -1(e)h 15(to)h 14(structure)h 16(the)h 14(text)h 15(at)h 13(a)h 14(higher)h 14(lev)h -1(el.)h 1042 2940(73)s cmtt10.300 sf 177 42(053)s 43(@5)h 65(S)h 22(Formal)h 20(parameter)h 20(5.)h 177 91(054)s 43(@6)h 65(S)h 22(Formal)h 20(parameter)h 20(6.)h 177 141(055)s 43(@7)h 65(S)h 22(Formal)h 20(parameter)h 20(7.)h 177 191(056)s 43(@8)h 65(S)h 22(Formal)h 20(parameter)h 20(8.)h 177 241(057)s 43(@9)h 65(S)h 22(Formal)h 20(parameter)h 20(9.)h 177 291(058)s 43(@:)h 65(-)h 22(Illegal.)h 177 340(059)s 43(@;)h 65(-)h 22(Illegal.)h 177 390(060)s 43(@<)h 65(S)h 22(Open)h 21(macro)h 20(name.)h 177 440(061)s 43(@=)h 65(C)h 22(Set)h 21(special)h 20(character.)h 177 490(062)s 43(@>)h 65(S)h 22(Close)h 20(macro)h 21(name.)h 177 540(063)s 43(@?)h 65(-)h 22(Illegal.)h 20(Reserved)h 20(for)h 21(future)h 21(use.)h 177 589(064)s 43(@@)h 65(C)h 22(Insert)h 20(special)h 21(character)h 20(into)h 20(text.)h 177 639(065)s 43(@A)h 65(S)h 22(New)h 21(section)h 20(\(level)h 21(1\).)h 177 689(066)s 43(@B)h 65(S)h 22(New)h 21(section)h 20(\(level)h 21(2\).)h 177 739(067)s 43(@C)h 65(S)h 22(New)h 21(section)h 20(\(level)h 21(3\).)h 177 789(068)s 43(@D)h 65(S)h 22(New)h 21(section)h 20(\(level)h 21(4\).)h 177 839(069)s 43(@E)h 65(S)h 22(New)h 21(section)h 20(\(level)h 21(5\).)h 177 888(070)s 43(@F)h 65(-)h 22(Illegal.)h 177 938(071)s 43(@G)h 65(-)h 22(Illegal.)h 177 988(072)s 43(@H)h 65(-)h 22(Illegal.)h 177 1038(073)s 43(@I)h 65(C)h 22(Include)h 20(file.)h 177 1088(074)s 43(@J)h 65(-)h 22(Illegal.)h 177 1137(075)s 43(@K)h 65(-)h 22(Illegal.)h 177 1187(076)s 43(@L)h 65(-)h 22(Illegal.)h 177 1237(077)s 43(@M)h 65(S)h 22(Tag)h 21(macro)h 21(as)h 21(being)h 21(allowed)h 20(to)h 21(be)h 22(called)h 20(many)h 21(times.)h 177 1287(078)s 43(@N)h 65(-)h 22(Illegal.)h 177 1337(079)s 43(@O)h 65(S)h 22(New)h 21(macro)h 21(attached)h 20(to)h 21(product)h 20(file.)h 21(Has)h 21(to)h 22(be)h 21(at)h 22(start)h 20(of)h 22(line.)h 177 1386(080)s 43(@P)h 65(C)h 22(Pragma.)h 177 1436(081)s 43(@Q)h 65(-)h 22(Illegal.)h 177 1486(082)s 43(@R)h 65(-)h 22(Illegal.)h 177 1536(083)s 43(@S)h 65(-)h 22(Illegal.)h 177 1586(084)s 43(@T)h 65(C)h 22(Typesetter)h 19(directive.)h 177 1636(085)s 43(@U)h 65(-)h 22(Illegal.)h 177 1685(086)s 43(@V)h 65(-)h 22(Illegal.)h 177 1735(087)s 43(@W)h 65(-)h 22(Illegal.)h 177 1785(088)s 43(@X)h 65(-)h 22(Illegal.)h 177 1835(089)s 43(@Y)h 65(-)h 22(Illegal.)h 177 1885(090)s 43(@Z)h 65(S)h 22(Tags)h 21(macro)h 20(as)h 22(being)h 21(allowed)h 20(to)h 21(be)h 22(called)h 20(zero)h 21(times.)h 177 1934(091)s 43(@[)h 65(-)h 22(Illegal.)h 20(Reserved)h 20(for)h 21(future)h 21(use.)h 177 1984(092)s 43(@\\)h 65(-)h 22(Illegal.)h 177 2034(093)s 43(@])h 65(-)h 22(Illegal.)h 20(Reserved)h 20(for)h 21(future)h 21(use.)h 177 2084(094)s 43(@^)h 65(C)h 22(Insert)h 20(control)h 21(character)h 20(into)h 20(text)h 177 2134(095)s 43(@_)h 65(-)h 22(Illegal.)h 177 2183(096)s 43(@`)h 65(-)h 22(Illegal.)h 177 2233(097)s 43(@a)h 65(\\)h 177 2283(109)s 43(@m)h 87(|)h 21(Identical)h 20(to)h 22(@A..@Z.)h 177 2333(122)s 43(@z)h 65(/)h 177 2383(123)s 43(@{)h 65(S)h 22(Open)h 21(macro)h 20(body/Open)h 20(literal)h 21(directive.)h 177 2433(124)s 43(@|)h 65(-)h 22(Illegal.)h 177 2482(125)s 43(@})h 65(S)h 22(Close)h 20(macro)h 21(body/Close)h 20(literal)h 20(directive.)h 177 2532(126)s 43(@~)h 65(-)h 22(Illegal.)h 177 2582(127)s 21(to)h 22(255)h 21(are)h 21(not)h 21(standard)h 20(printable)h 20(ASCII)h 21(characters)h 20(and)h 21(are)h 21(illegal.)h 74 @eop 75 @bop0 cmmi10.300 sf [<60F0F0701010101020204080> 8 12 -4 3 12] 59 dc cmr10.300 sf [ 8 41 -4 30 12] 91 dc [ 8 41 0 30 12] 93 dc 75 @bop1 cmmi10.300 sf 1138 349(<)s 121(>)h 22(<)h 270(>)h 231 498(;)s 565 905(<)s 121(>)h cmbx12.300 sf 177 243(3.10.3)s 55(Setting)h 18(the)h 18(Sp)h 2(ecial)h 18(Character)h 177 799(3.10.4)s 55(Inserting)h 18(the)h 18(Sp)h 2(ecial)h 18(Character)h 19(in)h -2(to)h 18(the)h 18(T)h -5(ext)h 177 1206(3.10.5)s 55(Inserting)h 18(Arbitrary)h 18(Characters)h 19(in)h -2(to)h 19(the)h 18(T)h -5(ext)h cmtt10.300 sf 1323 349(=)s 177 399(@=#)s 858(#)h 674 598(@)s 626 648(@)s 750 905(@)s 388 955(@)s 528 1005(P)s 343(P@)h 233(P)h 452(@@#@=#@#@#=)h -1(@@@)h 418 1055(@#@#@)s 345 1412(@^)s 177 1636(control_seque)s -1(nce)h 20(=)h 21("@^")h 21(char_spec)h 177 1686(char_spec)s 173(=)h 21(binary)h 21(|)h 21(octal)h 21(|)h 22(decimal)h 20(|)h 22(hexadecimal)h 177 1736(binary)s 239(=)h 21(\("b")h 21(|)h 22("B"\))h 282("\(")h 21({binary_digit}8)h 41("\)")h 177 1786(octal)s 261(=)h 21(\("o")h 21(|)h 22("O")h 21(|)h 22("q")h 21(|)h 21("Q"\))h 21("\(")h 21({octal_digit}3)h 63("\)")h 177 1835(decimal)s 217(=)h 21(\("d")h 21(|)h 22("D"\))h 282("\(")h 21({decimal_digit})h -1(3)h 20("\)")h 177 1885(hexadecimal)s 129(=)h 21(\("h")h 21(|)h 22("H")h 21(|)h 22("x")h 21(|)h 21("X"\))h 21("\(")h 21({hex_digit}2)h 107("\)")h 177 1935(binary_digit)s 107(=)h 21("0")h 21(|)h 22("1")h 177 1985(octal_digit)s 129(=)h 21(binary_digit)h 20(|)h 21("2")h 21(|)h 22("3")h 21(|)h 22("4")h 21(|)h 21("5")h 22(|)h 21("6")h 21(|)h 22("7")h 177 2035(decimal_digit)s 85(=)h 21(octal_digit)h 20(|)h 21("8")h 22(|)h 21("9")h 177 2085(hex_digit)s 173(=)h 21(decimal_digit)h 19(|)h 22("A")h 21(|)h 22("B")h 21(|)h 21("C")h 22(|)h 21("D")h 21(|)h 22("E")h 21(|)h 22("F")h 896 2134(|)s 22("a")h 21(|)h 22("b")h 21(|)h 21("c")h 22(|)h 21("d")h 21(|)h 22("e")h 21(|)h 22("f")h 177 2383(@!)s 22(Unix)h 21(Make)h 20(requires)h 21(that)h 21(productions)h 19(commence)h 20(with)h 21(tab)h 21(characters.)h 177 2433(@^D\(009\)prog.)s -1(o)h 20(<-)h 21(prog.c)h 619 2557(9)s 687(009)h 1084 2735(@^)s cmr10.300 sf 177 42(The)s 18(remaining)h 15(description)h 18(of)h 17(the)h 18(scanner)h 19(consists)h 18(of)h 17(a)h 17(detailed)h 17(description)h 18(of)h 17(the)h 18(e\013ect)h 19(of)h 16(eac)h -1(h)h 177 91(complex)s 13(sp)h 1(ecial)h 14(sequence.)h 177 349(The)s 16(sp)h 1(ecial)h 15(c)h -1(haracter)h 16(can)h 15(b)h 1(e)h 16(set)h 15(using)h 15(the)h 16(sequence)h 49(sp)h 1(ecial)h 86(newsp)h 1(ec)h 1(ialc)h -1(har)h 32(.)h 22(F)h -3(or)h 15(example,)h 256 399(w)s -1(ould)h 13(c)h -1(hange)h 15(the)h 14(sp)h 1(ecial)h 14(c)h -1(haracter)h 15(to)h 14(a)h 14(hash)h 14(\()h 22(\))h 13(c)h -1(haracter.)h 20(The)h 14(sp)h 1(ecial)h 14(c)h -1(haracter)h 15(ma)h -1(y)h 12(b)h 1(e)h 15(set)h 177 449(to)s 12(an)h -1(y)h 11(prin)h -1(table)h 11(ASCI)h 1(I)h 12(c)h -1(haracter)h 13(except)h 13(the)h 13(blank)h 11(c)h -1(haracter)h 13(\(i.e.)h 11(an)h -1(y)h 11(c)h -1(haracter)h 13(in)h 11(the)h 13(ASCI)h 1(I)h 12(range)h 177 498([33)s 19(126])h -1(\).)h 16(In)h 12(normal)h 11(use,)h 13(it)h 12(should)h 12(not)h 12(b)h 1(e)h 13(necessary)h 15(to)h 12(c)h -1(hange)h 13(the)h 13(sp)h 1(ecial)h 12(c)h -1(haracter)h 14(of)h 12(F)h -3(unnelW)h -3(eb,)h 177 548(and)s 17(it)h 16(is)h 17(probably)h 16(b)h 1(est)h 18(to)h 16(a)h -1(v)h -1(oid)h 16(c)h -1(hanging)h 16(the)h 17(sp)h 1(ecial)h 17(c)h -1(haracter)h 18(so)h 17(as)h 17(not)h 16(to)h 17(confuse)h 17(F)h -3(unnelW)h -3(eb)h 177 598(readers)s 17(conditioned)h 16(to)h 15(the)h 54(c)h -1(haracter.)h 25(Ho)h -1(w)h -1(ev)h -1(er,)h 16(the)h 17(feature)h 16(is)h 16(v)h -1(ery)h 16(useful)h 15(where)h 17(the)h 17(text)h 16(b)h 1(eing)h 177 648(prepared)s 15(con)h -1(tains)h 14(man)h -1(y)h 48(c)h -1(haracters)h 15(\(e.g.)h 14(a)h 13(list)h 14(of)h 13(in)h -1(ternet)h 15(electronic)h 15(mail)h 11(addresses\).)h 177 905(The)s 13(sp)h 1(ecial)h 12(sequence)h 47(sp)h 1(ecial)h 67(inserts)h 13(the)h 13(sp)h 1(ecial)h 13(c)h -1(haracter)h 13(in)h -1(to)h 12(the)h 13(text)h 12(as)h 13(if)h 11(it)h 12(w)h -1(ere)h 13(not)h 13(sp)h 1(ecial)h 177 955(at)s 14(all.)h 18(The)h 50(of)h 13(this)h 15(sequence)h 16(has)h 14(nothing)h 14(to)h 13(do)h 14(with)h 14(the)h 15(curren)h -1(t)h 15(sp)h 1(ecial)h 15(c)h -1(haracter.)h 20(If)h 14(the)h 14(curren)h -1(t)h 177 1005(sp)s 1(ecial)h 12(c)h -1(haracter)h 13(is)h 45(then)h 12(the)h 12(sequence)h 69(will)h 10(insert)h 13(a)h 44(in)h -1(to)h 11(the)h 12(text.)h 18(Example:)h 177 1055(translates)s 15(to)h 124(.)h 177 1313(While)s 13(F)h -3(unnelW)h -3(eb)h 14(do)h 1(es)h 15(not)h 14(tolerate)h 14(unprin)h -1(table)h 14(c)h -1(haracters)h 16(in)h 13(the)h 15(input)h 14(\014le)h 14(\(except)h 15(for)h 14(the)h 15(end)h 14(of)h 177 1362(line)s 13(c)h -1(haracter\),)h 14(it)h 12(do)h 1(es)h 14(allo)h -1(w)h 11(the)h 13(user)h 14(to)h 13(sp)h 1(ecify)h 14(that)h 12(unprin)h -1(table)h 13(c)h -1(haracters)h 15(app)h 1(ear)h 13(in)h 12(the)h 14(pro)h 1(duct)h 177 1412(\014le.)s 18(The)h 71(sequence)h 16(inserts)h 15(a)h 13(single)h 13(c)h -1(haracter)h 15(of)h 13(the)h 15(user's)h 14(c)h -1(ho)h 1(osing)h 14(in)h -1(to)h 13(the)h 14(text.)h 18(The)h 14(c)h -1(haracter)h 177 1462(can)s 19(b)h 1(e)h 19(sp)h 1(eci\014ed)h 21(b)h -1(y)h 18(giving)h 17(its)h 19(ASCI)h 1(I)h 19(n)h -1(um)h -1(b)h 1(er)h 18(in)h 18(one)h 19(of)h 18(four)h 19(bases:)h 28(binary)h -3(,)h 19(o)h 1(ctal,)h 19(decimal,)h 18(and)h 177 1512(hexadecimal.)s 17(Here)h 15(is)h 14(the)h 14(syn)h -1(tax:)h 177 2259(Example:)s 177 2557(Note)s 16(that)h 16(the)h 16(decimal)h 14(\\)h 22(")h 15(is)h 15(expressed)h 18(with)h 15(leading)h 15(zeros)h 17(as)h 15(\\)h 66(".)h 22(F)h -3(unnelW)h -3(eb)h 15(requires)h 17(a)h 15(\014xed)h 177 2607(n)s -1(um)h -1(b)h 1(er)h 13(of)h 13(digits)h 13(for)h 13(eac)h -1(h)h 14(base.)h 19(Eigh)h -1(t)h 13(digits)h 13(for)h 13(base)h 14(t)h -1(w)h -1(o,)h 13(three)h 15(digits)h 13(for)h 13(base)h 14(ten,)h 14(three)h 15(digits)h 13(for)h 177 2657(base)s 15(eigh)h -1(t)h 13(and)h 14(t)h -1(w)h -1(o)h 13(digits)h 14(for)h 13(base)h 15(sixteen.)h 177 2735(F)s -3(unnelW)h -3(eb)h 16(treats)h 17(the)h 17(c)h -1(haracter)h 17(resulting)h 16(from)h 14(a)h 76(sequence)h 18(as)h 16(ordinary)h 16(text)h 16(in)h 16(ev)h -1(ery)h 17(sense.)h 26(If)h 177 2785(y)s -1(our)h 13(input)h 14(\014le)h 13(con)h -1(tains)h 14(man)h -1(y)h 11(instances)h 15(of)h 13(a)h 13(particular)h 14(con)h -1(trol)h 13(c)h -1(haracter,)h 14(y)h -1(ou)h 14(can)h 13(pac)h -1(k)h -2(age)h 13(it)h 14(up)h 13(in)h 177 2835(a)s 14(macro)h 12(lik)h -1(e)h 14(an)h -1(y)h 13(other)h 14(text.)h 19(In)h 14(particular,)h 13(quic)h -1(k)h 14(names)h 13(can)h 14(b)h 1(e)h 14(used)h 15(to)h 14(great)h 14(e\013ect:)h 1042 2940(74)s 75 @eop 76 @bop0 76 @bop1 cmbx12.300 sf 177 736(3.10.6)s 55(Commen)h -2(ts)h cmtt10.300 sf 177 42(@!)s 22(Unix)h 21("Make")h 20(requires)h 20(that)h 21(productions)h 20(commence)h 20(with)h 21(tab)h 21(characters.)h 177 91(@!)s 22(So)h 21(we)h 21(define)h 21(a)h 21(macro)h 21(with)h 21(a)h 22(quick)h 21(name)h 20(as)h 22(a)h 21(tab)h 22(character.)h 177 141($@#T@{@^D\(009)s -1(\)@})h 177 191(@!)s 22(And)h 21(use)h 21(it)h 21(in)h 22(our)h 21(productions.)h 177 241(@#Tprog.o)s 20(<-)h 21(prog.c)h 177 291(@#Ta.out)s 20(<-)h 22(prog.o)h 805 835(@!)s 534 934(@i)s 66(@t)h 147(@p)h 177 1215(@!)s 22(I)h 21(have)h 21(used)h 21(a)h 22(quick)h 20(macro)h 21(for)h 21(this)h 21(definition)h 20(as)h 21(it)h 22(will)h 21(be)h 21(used)h 21(often.)h 177 1264(@$@#C@{--@})s 177 1530(for)s 21(\(i=0;i 24 18 -2 17 24] 120 dc cmbx12.300 sf [<0007FC0000003FFF800000FC07E00003F001F80007E000FC000FC0007E001F80003F00 1F80003F003F00001F803F00001F807F00001FC07E00000FC07E00000FC0FE00000FE0FE 00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00000FE0FE00 000FE07E00000FC07F00001FC07F00001FC03F00001F803F81F03F801F83F83F000FC70C 7E0007E606FC0003F607F80000FF07E000003FFF80000007FF80200000038020000001C0 20000001E0E0000001FFE0000001FFC0000000FFC0000000FFC00000007F800000007F00 0000001E00> 40 44 -3 33 42] 81 dc [<00FE0003FFC00601E00C00701800701800383800383C00383F00383F80783FE0701FF8 E01FFFC00FFF8007FFC003FFE007FFF01E7FF83C1FFC7807FC7801FEF000FEF0003EF000 1EF0001EF0001CF8001C7800383C00381F01F00FFFC001FF00> 24 32 -2 31 28] 56 dc 77 @bop1 cmmi10.300 sf 421 248(x)s 134(x)h cmbx10.300 sf 590 148(quic)s -1(k)h 14(name)h cmbx12.300 sf 177 42(3.10.7)s 55(Quic)h -2(k)h 19(Names)h 177 1478(3.10.8)s 55(Inserting)h 18(End)h 19(of)h 19(Line)h 17(Mark)h -2(ers)h cmtt10.300 sf 1294 198(@)s 377 248(@#)s 177 374(quick_name)s 20(=)h 21("@#")h 21(non_space_print)h -1(able)h 1842 499(@#X)s 429 549(@)s 177 775(@!)s 22(Define)h 20(@)h 21(as)h 21("")h 22(to)h 21(turn)h 21(on)h 21(debug)h 21(code)h 21(and)h 21("--")h 21(to)h 22(turn)h 21(it)h 21(off.)h 177 824(@$@@{--@})s 177 874(@assert\(b)s -1(>3\);)h 177 924(@if)s 21(x>7)h 21(then)h 21(write\("erro)h -1(r"\))h 20(end)h 21(if)h 177 1175(@!)s 22(Define)h 20(@#|)h 21(as)h 22("")h 21(to)h 21(turn)h 21(on)h 22(debug)h 21(code)h 20(and)h 22("--")h 21(to)h 21(turn)h 21(it)h 21(off.)h 177 1225(@$@#|@{--@})s 177 1275(@#|assert\(b>3)s -1(\);)h 177 1325(@#|if)s 21(x>7)h 21(then)h 21(write\("error")h -1(\))h 20(end)h 21(if)h 1448 1585(@+)s 177 1860(Animal)s 21(=)h 21(Kangaroo)h 177 1910(Size)s 65(=)h 21(Medium)h 177 1959(Speed)s 43(=)h 21(Fast)h 177 2059(Animal)s 21(=)h 21(Sloth)h 177 2109(Size)s 65(=)h 21(Medium)h 177 2159(Speed)s 43(=)h 21(Slow)h 177 2258(Animal)s 21(=)h 21(Walrus)h 177 2308(Size)s 65(=)h 21(Big)h 177 2358(Speed)s 43(=)h 21(Medium)h 177 2609(Animal)s 21(=)h 21(Kangaroo)h 42(@+Size)h 21(=)h 21(Medium)h 43(@+Speed)h 20(=)h 22(Fast)h 86(@+)h 177 2659(Animal)s 21(=)h 21(Sloth)h 108(@+Size)h 21(=)h 21(Medium)h 43(@+Speed)h 20(=)h 22(Slow)h 86(@+)h 177 2709(Animal)s 21(=)h 21(Walrus)h 86(@+Size)h 21(=)h 21(Big)h 109(@+Speed)h 20(=)h 22(Medium)h 42(@+)h cmr10.300 sf 177 148(F)s -3(unnelW)h -3(eb)h 13(pro)h -1(vides)h 13(a)h 261(syn)h -1(tax)h 13(as)h 13(an)h 13(alternativ)h -1(e,)h 12(for)h 13(macros)h 12(whose)h 13(name)h 12(consists)h 14(of)h 12(a)h 177 198(single)s 11(c)h -1(haracter,)h 12(to)h 10(the)h 12(angle)h 10(brac)h -1(k)h -1(et)h 11(syn)h -1(tax)h 11(usually)h 10(used)h 12(\(e.g.)h 208(\).)h 15(A)h 11(quic)h -1(k)h 10(name)h 10(sequence)h 177 248(consists)s 15(of)h 94(where)h 40(,)h 13(the)h 14(name)h 13(of)h 13(the)h 15(macro,)h 12(can)h 14(b)h 1(e)h 14(an)h -1(y)h 14(prin)h -1(table)h 13(c)h -1(haracter)h 16(except)h 15(space.)h 177 499(The)s 14(result)h 14(is)h 13(iden)h -1(tical)h 12(to)h 13(the)h 14(equiv)h -2(alen)h -1(t)h 12(ordinary)h 13(name)h 12(syn)h -1(tax,)h 13(but)h 13(is)h 13(shorter.)h 19(F)h -3(or)h 13(example,)h 90(is)h 177 549(equiv)s -2(alen)h -1(t)h 15(to)h 126(.)h 22(This)h 16(shorter)h 17(w)h -1(a)h -1(y)h 15(of)h 15(writing)h 15(one-c)h -1(haracter)h 18(macro)h 14(names)h 15(is)h 16(more)h 14(con)h -1(v)h -1(enien)h -1(t)h 177 599(where)s 14(a)h 13(macro)h 12(m)h -1(ust)h 12(b)h 1(e)h 13(used)h 14(v)h -1(ery)h 13(often.)h 18(F)h -3(or)h 12(example,)h 12(the)h 13(macro)h 12(calls)h 13(in)h 12(the)h 14(follo)h -1(wi)h -1(ng)h 11(fragmen)h -1(t)h 11(of)h 177 649(an)s 14(Ada)h 14(program)h 12(are)h 14(a)h 14(little)h 13(clumsy)h -3(.)h 177 1050(The)s 14(calls)h 14(can)h 14(b)h 1(e)h 15(shortened)h 15(using)h 14(the)h 14(alternativ)h -1(e)h 14(syn)h -1(tax.)h 177 1585(An)s 11(end)h 11(of)h 10(line)h 10(mark)h -1(er/c)h -1(haracter)h 11(can)h 11(b)h 1(e)h 11(inserted)h 12(in)h -1(to)h 10(the)h 11(text)h 12(using)h 10(the)h 66(sequence.)h 19(This)h 10(is)h 11(exactly)h 177 1635(equiv)s -2(alen)h -1(t)h 15(to)h 16(a)h 16(real)h 16(end)h 16(of)h 16(line)h 15(in)h 16(the)h 16(text)h 17(at)h 15(the)h 17(p)h 1(oin)h -1(t)h 15(where)h 18(it)h 15(o)h 1(ccurs.)h 26(While)h 15(this)h 16(feature)h 17(ma)h -1(y)h 177 1684(sound)s 12(rather)h 13(useless,)h 14(it)h 11(is)h 12(v)h -1(ery)h 13(useful)h 12(for)h 12(la)h -1(ying)h 10(out)h 12(the)h 12(input)h 12(\014le.)h 18(F)h -3(or)h 11(example,)h 11(the)h 13(follo)h -1(wi)h -1(ng)h 10(input)h 177 1734(data)s 14(for)h 13(a)h 14(database)h 14(program)h 177 2484(can)s 14(b)h 1(e)h 15(con)h -1(v)h -1(erted)h 15(in)h -1(to)h 177 2835(whic)s -1(h)h 14(is)h 14(easier)h 14(to)h 14(read,)h 14(and)h 14(more)h 13(easily)h 13(allo)h -1(ws)h 13(comparisons)h 12(b)h 1(et)h -1(w)h -1(een)h 16(records.)h 1042 2940(76)s 77 @eop 78 @bop0 cmbx12.300 sf [<01FE0007FF800F83E01E01F03E00F07C00F87C0078FC007CFC007CFC007CFC007EFC00 7EFC007EFC007E7C00FE7C00FE3E01FE1E037E0FFE7E07FC7E00207E00007C00007C1E00 7C3F00F83F00F83F00F03F01E01E03C01C0F800FFE0003F800> 24 32 -2 31 28] 57 dc 78 @bop1 cmsy10.300 sf 1130 486(f)s cmti10.300 sf 1621 187(exactly)s cmbx10.300 sf 1445 2398(inpu)s -1(t)h 14(\014le)h 690 2447(inclu)s -1(de)h 14(\014les)h cmbx12.300 sf 177 42(3.10.9)s 55(Suppressing)h 19(End)h 19(of)h 19(Line)h 17(Mark)h -2(ers)h 177 1155(3.10.10)s 55(Include)h 18(Files)h cmtt10.300 sf 1028 137(@-)s 660(@-)h 1238 237(@!)s 637 287(@-)s 1224(@-)h 943 386(@+)s 1108 486(@)s 177 583(@$@@)s -1({@-)h 177 633(I)s 22(am)h 21(the)h 21(walrus!@})h 177 826(@$@@)s -1({I)h 20(am)h 21(the)h 21(walrus!@})h 638 922(@!)s 1041(@-)h 473 1301(@i)s 21()h 261 1519(@i)s 738 1619(@!)s 177 1715("Uh)s 21(Oh,)h 22(It's)h 20(the)h 22(Fuzz.)h 20(We're)h 21(busted!")h 20(said)h 21(Baby)h 21(Bear.)h 177 1765(@i)s 22(mr_plod.tx)h -1(t)h 177 1815("Quick!)s 21(Flush)h 20(the)h 21(stash)h 21(down)h 21(the)h 21(dunny)h 21(and)h 21(let's)h 21(split.")h 20(said)h 21(Father)h 21(Bear.)h 625 1912(mr)s 15(plod.txt)h 177 2008("'Ello,)s 21('Ello,)h 20('Ello!)h 21(What's)h 20(all)h 21(this)h 21('ere)h 21(then?")h 21(Mr)h 21(Plod)h 21(exclaimed.)h 177 2201("Uh)s 21(Oh,)h 22(It's)h 20(the)h 22(Fuzz.)h 20(We're)h 21(busted!")h 20(said)h 21(Baby)h 21(Bear.)h 177 2251("'Ello,)s 21('Ello,)h 20('Ello!)h 21(What's)h 20(all)h 21(this)h 21('ere)h 21(then?")h 21(Mr)h 21(Plod)h 21(exclaimed.)h 177 2301("Quick!)s 21(Flush)h 20(the)h 21(stash)h 21(down)h 21(the)h 21(dunny)h 21(and)h 21(let's)h 21(split.")h 20(said)h 21(Father)h 21(Bear.)h 1124 2635(@)s cmr10.300 sf 177 137(End)s 15(of)h 15(line)h 14(mark)h -1(ers)h 15(can)h 15(b)h 1(e)h 15(suppresse)h 1(d)h 17(b)h -1(y)h 14(the)h 74(sequence)h 1(.)h 23(A)h 15(single)h 14(o)h 1(ccurrenc)h 1(e)h 17(of)h 14(a)h 74(sequence)h 177 187(serv)s -1(es)h 20(to)h 18(suppress)h 20(only)h 18(the)h 18(end)h 19(of)h 18(line)h 17(mark)h -1(er)h 18(follo)h -1(wi)h -1(ng)h 16(it)h 18(and)h 18(m)h -1(ust)h 17(app)h 1(ear)h 160(b)h 1(efore)h 19(the)h 177 237(end)s 17(of)h 16(line)h 17(mark)h -1(er)h 15(to)h 17(b)h 1(e)h 17(suppresse)h 1(d.)h 28(No)h 17(trailing)h 15(spaces,)h 89(comm)h -1(en)h -1(ts,)h 16(or)h 16(an)h -1(y)h 17(other)h 17(c)h -1(haracters)h 177 287(are)s 15(p)h 1(ermitted)h 15(b)h 1(et)h -1(w)h -1(een)h 16(a)h 72(sequence)h 17(and)h 14(the)h 15(end)h 15(of)h 14(line)h 14(that)h 15(it)h 14(is)h 15(supp)h 1(osed)h 16(to)h 14(suppress.)h 22(The)h 177 337(sequence)s 17(is)h 14(useful)h 14(for)h 14(constructing)h 15(long)h 14(output)h 14(lines)h 14(without)h 14(them)h 14(ha)h -1(ving)h 13(to)h 14(app)h 1(ear)h 15(in)h 14(the)h 14(input.)h 177 386(It)s 12(can)h 13(also)h 11(b)h 1(e)h 13(used)h 13(in)h 11(the)h 13(same)h 11(w)h -1(a)h -1(y)h 12(as)h 12(the)h 68(w)h -1(as)h 12(used)h 13(in)h 12(the)h 12(previous)h 13(section)h 13(to)h 12(assist)h 12(in)h 12(exp)h 1(osing)h 177 436(the)s 17(structure)h 19(of)h 15(output)h 17(text)h 17(without)h 15(a\013ecting)h 17(the)h 17(output)h 16(text)h 17(itself.)h 25(Finally)h -3(,)h 15(it)h 16(is)h 16(in)h -1(v)h -2(aluabl)h -1(e)h 15(for)h 177 486(suppressing)s 15(the)h 15(EOL)h 14(after)h 14(the)h 15(op)h 1(ening)h 13(macro)h 13(text)h 71(construct.)h 20(F)h -3(or)h 13(example:)h 177 729(is)s 14(equiv)h -2(alen)h -1(t)h 13(to)h 177 922(The)s 14(comm)h -1(en)h -1(t)h 12(construct)h 15(\()h 44(\))h 18(can)h 13(also)h 13(b)h 1(e)h 13(used)h 14(to)h 13(suppress)h 15(end)h 14(of)h 13(lines.)h 17(Ho)h -1(w)h -1(ev)h -1(er,)h 14(the)h 70(construct)h 177 972(should)s 15(b)h 1(e)h 15(preferred)h 17(for)h 14(this)h 15(purp)h 1(ose)h 16(as)h 14(it)h 15(mak)h -1(es)h 13(explicit)h 15(the)h 15(programm)h -1(er's)h 13(in)h -1(ten)h -1(t)h 15(to)h 14(suppress)h 17(the)h 177 1022(end)s 15(of)h 13(line.)h 177 1251(F)s -3(unnelW)h -3(eb)h 12(pro)h -1(vides)h 13(an)h 13(include)h 13(\014le)h 12(facilit)h -1(y)h 11(with)h 13(a)h 12(maxim)h -2(um)h 9(depth)h 13(of)h 12(10.)h 18(When)h 13(F)h -3(unnelW)h -3(eb)h 12(sees)h 14(a)h 177 1301(line)s 14(of)h 13(the)h 15(form)h 297(,)h 12(it)h 14(replaces)h 15(the)h 15(en)h -1(tire)h 14(line)h 14(\(including)h 13(the)h 15(EOL\))h 14(with)h 14(the)h 15(con)h -1(ten)h -1(ts)h 177 1350(of)s 11(the)h 12(sp)h 1(eci\014ed)h 13(include)h 12(\014le.)h 17(F)h -3(unnelW)h -3(eb's)h 11(include)h 11(\014le)h 12(facilit)h -1(y)h 10(is)h 11(in)h -1(tended)h 12(to)h 12(op)h 1(erate)h 12(at)h 11(the)h 13(line)h 11(lev)h -1(el.)h 177 1400(If)s 15(the)h 16(last)h 15(line)h 15(of)h 14(the)h 16(include)h 16(\014le)h 15(is)h 15(not)h 15(terminated)h 15(b)h -1(y)h 15(an)h 15(EOL,)h 15(F)h -3(unnelW)h -3(eb)h 15(issues)h 16(a)h 15(w)h -1(arning)h 15(and)h 177 1450(in)s -1(terts)h 15(one)h 14(\(in)h 13(the)h 15(cop)h -1(y)h 14(in)h 13(memory\).)h 177 1519(The)s 70(construct)h 14(is)h 13(illegal)h 11(if)h 12(it)h 12(app)h 1(ears)h 14(an)h -1(ywhere)h 13(except)h 15(at)h 12(the)h 14(start)h 13(of)h 12(a)h 13(line.)h 17(The)h 13(construct)h 15(m)h -1(ust)h 177 1569(b)s 1(e)h 13(follo)h -1(w)h -1(ed)h 11(b)h -1(y)h 12(a)h 12(single)h 12(blank.)h 17(The)h 13(\014le)h 12(name)h 11(is)h 12(de\014ned)h 14(to)h 12(b)h 1(e)h 13(ev)h -1(erything)h 13(b)h 1(et)h -1(w)h -1(een)h 13(the)h 13(blank)h 12(and)h 12(the)h 177 1619(end)s 15(of)h 13(the)h 14(line)h 14(\(no)h 14(comm)h -1(en)h -1(ts)h 13(\()h 44(\))h 18(please!\).)h 18(Example:)h 17(If)h 13(the)h 15(input)h 13(\014le)h 14(is)h 177 1912(and)s 14(there)h 15(is)h 14(a)h 13(\014le)h 14(called)h 261(con)h -1(taining)h 177 2105(then)s 15(the)h 14(scanner)h 15(translates)h 15(the)h 15(input)h 13(\014le)h 14(in)h -1(to)h 177 2398(As)s 14(a)h 14(p)h 1(oin)h -1(t)h 13(of)h 13(terminology)h -4(,)h 11(F)h -3(unnelW)h -3(eb)h 14(calls)h 13(the)h 14(original)h 12(input)h 14(\014le)h 13(the)h 217(and)h 13(calls)h 14(include)h 177 2447(\014les)s 14(and)h 14(their)h 14(included)h 14(\014les)h 262(.)h 177 2516(The)s 13(include)h 12(\014le)h 12(construct)h 14(op)h 1(erates)h 14(at)h 12(a)h 12(v)h -1(ery)h 12(lo)h -1(w)h 12(lev)h -1(el.)h 17(An)h 12(include)h 13(line)h 11(can)h 13(app)h 1(ear)h 12(an)h -1(ywhere)h 13(in)h 12(the)h 177 2566(input)s 14(\014le)h 14(regardless)h 15(of)h 13(the)h 15(con)h -1(text)h 14(of)h 13(the)h 15(surrounding)h 14(lines.)h 177 2635(F)s -3(unnelW)h -3(eb)h 11(sets)h 13(the)h 13(sp)h 1(ecial)h 12(c)h -1(haracter)h 13(to)h 11(the)h 13(default)h 11(\()h 22(\))h 12(at)h 12(the)h 12(start)h 12(of)h 11(eac)h -1(h)h 13(include)h 11(\014le)h 12(and)h 12(restores)h 177 2685(it)s 13(to)h 13(its)h 12(previous)h 14(v)h -2(alue)h 12(at)h 13(the)h 13(end)h 14(of)h 12(the)h 14(include)h 13(\014le.)h 17(This)h 13(allo)h -1(ws)h 12(macro)h 12(libraries)h 12(to)h 13(b)h 1(e)h 14(constructed)h 177 2735(and)s 12(included)h 11(that)h 12(are)h 12(indep)h 1(enden)h -1(t)h 13(of)h 11(the)h 12(prev)h -2(ailing)h 10(sp)h 1(ecial)h 11(c)h -1(haracter)h 13(at)h 12(the)h 12(p)h 1(oin)h -1(t)h 11(of)h 11(inclusion.)h 16(The)h 177 2785(same)s 16(go)h 1(es)h 17(for)h 16(the)h 17(input)h 16(line)h 16(length)h 16(limit)h 14(whic)h -1(h)h 16(is)h 17(reset)h 18(to)h 16(the)h 17(default)h 16(v)h -2(alue)h 16(at)h 16(the)h 17(start)h 17(of)h 16(eac)h -1(h)h 177 2835(include)s 14(\014le)h 14(and)h 14(restored)h 15(to)h 14(its)h 14(previous)h 14(v)h -2(alue)h 13(afterw)h -1(ards.)h 1042 2940(77)s 14 2 672 1912 r 78 @eop 79 @bop0 79 @bop1 cmti10.300 sf 1350 193(pr)s -2(agma)h cmbx12.300 sf 177 42(3.10.11)s 55(Pragmas)h cmbx10.300 sf 1100 193(pragma)s 177 1418(3.10.11.1)s 48(Inden)h -1(tat)h -1(ion)h 556 2402(no)s 15(inden)h -2(tati)h -1(on)h 556 2835(blank)s 14(inden)h -1(t)h -1(ati)h -1(on)h cmtt10.300 sf 1688 268(@p)s 177 485(pragma)s 21(=)h 21(pragma_ident)h 20(|)h 21(pragma_mill)h 20(|)h 21(pragma_moll)h 20(|)h 21(pragma_typesett)h -1(er)h 177 719(s)s 174(=)h 22({")h 21("}+)h 177 768(ps)s 152(=)h 22(\("@p")h 21(|)h 21("@P"\))h 21(")h 22(")h 177 818(number)s 64(=)h 22({)h 21(decimal_digit)h 20(}+)h 177 868(numorinf)s 20(=)h 22(number)h 20(|)h 22("infinity")h 177 1836(@$@@{@)h -1(-)h 177 1886(i=1;)s 177 1936(while)s 21(\(i<=N\))h 243 1986(@)h 177 2036(endwhile)s 177 2085(@})s 177 2185(@$@@{@-)h 177 2235(a[i]:=0;)s 177 2285(i:=i+1;@})s 177 2518(i=1;)s 177 2568(while)s 21(\(i<=N\))h 243 2618(a[i]:=0;)s 177 2668(i:=i+1;)s 177 2718(endwhile)s cmr10.300 sf 177 143(Most)s 19(to)h 1(ols)h 19(ha)h -1(v)h -1(e)h 18(to)h 19(supp)h 1(ort)h 19(some)h 18(essen)h -1(tial,)h 20(but)h 19(rather)h 20(inelegan)h -1(t)h 18(features.)h 33(In)h 19(F)h -3(unnelW)h -3(eb)h 18(these)h 177 193(messy)s 14(bits)h 14(ha)h -1(v)h -1(e)h 13(all)h 13(b)h 1(een)h 15(stu\013ed)h 15(in)h -1(to)h 13(the)h 15(scanner's)h 185(\(for)h 146(tic\))h 14(construct.)h 177 268(A)s 15(pragma)h 13(consists)h 16(of)h 14(a)h 15(single)h 14(line)h 14(of)h 14(input)h 15(\(including)h 14(the)h 15(EOL\))h 16(comm)h -1(encing)h 13(with)h 59(.)h 20(This)h 15(m)h -1(ust)h 177 318(b)s 1(e)h 15(follo)h -1(w)h -1(ed)h 13(b)h -1(y)h 14(a)h 14(single)h 14(space,)h 14(and)h 14(then)h 15(the)h 15(pragma)h 13(v)h -1(erb.)h 19(This)h 14(m)h -1(ust)h 14(b)h 1(e)h 14(follo)h -1(w)h -1(ed)h 13(b)h -1(y)h 14(a)h 14(sequence)h 16(of)h 177 368(zero)s 15(or)h 14(more)h 13(argumen)h -1(ts)h 13(separated)h 15(b)h -1(y)h 14(one)h 14(or)h 14(more)h 12(spaces.)h 20(F)h -3(our)h 13(pragmas)h 13(are)h 14(a)h -1(v)h -2(ailabl)h -1(e)h 177 602(The)s 14(follo)h -1(wing)h 12(syn)h -1(tax)h 14(de\014nitions)h 13(assist)h 15(in)h 13(de\014ning)h 14(the)h 15(pragmas.)h 177 985(The)s 14(argumen)h -1(ts)h 14(to)h 13(pragmas)h 13(are)h 14(case-sensitiv)h -1(e)h 15(and)h 14(m)h -1(ust)h 13(b)h 1(e)h 14(sp)h 1(eci\014ed)h 16(in)h 13(lo)h -1(w)h -1(er)h 14(case.)h 177 1060(Pragmas)s 13(are)h 14(pro)h 1(cessed)h 16(and)h 13(consumed)h 14(en)h -1(tirely)h 14(b)h -1(y)h 13(the)h 15(scanner.)h 19(The)h 14(parser)h 15(nev)h -1(er)h 15(sees)h 15(them)h 13(and)h 14(so)h 177 1110(they)s 16(can)h 15(pla)h -1(y)h 14(no)h 15(part)h 16(in)h 14(the)h 16(parser)h 16(lev)h -1(el)h 15(syn)h -1(tax.)h 22(As)h 15(a)h 15(result,)h 16(pragma)h 13(lines)h 15(can)h 15(app)h 1(ear)h 16(an)h -1(ywhere)h 177 1160(in)s 16(the)h 16(en)h -1(tire)h 16(input)h 16(\014le)h 16(regardless)h 17(of)h 15(the)h 16(surrounding)h 16(con)h -1(text)h 17(\(e.g.)h 15(ev)h -1(en)h 17(in)h 15(the)h 16(middle)h 14(of)h 15(a)h 16(macro)h 177 1209(de\014nition\).)s 18(The)h 14(sole)h 14(e\013ect)h 16(of)h 13(a)h 14(pragma)h 12(is)h 13(to)h 14(mo)h 1(dify)h 12(some)h 13(in)h -1(ternal)h 13(parameter)h 14(of)h 13(F)h -3(unnelW)h -3(eb.)h 177 1284(The)s 14(follo)h -1(wing)h 12(sections)h 15(describ)h 1(e)h 15(the)h 15(four)h 13(F)h -3(unnelW)h -3(eb)h 14(pragmas.)h 177 1520(When)s 18(F)h -3(unnelW)h -3(eb)h 18(expands)h 18(a)h 18(macro,)h 17(it)h 17(can)h 18(do)h 18(so)h 18(in)h 17(t)h -1(w)h -1(o)h 18(w)h -1(a)h -1(ys.)h 29(First)h 18(it)h 18(can)h 18(treat)h 19(the)h 18(text)h 18(it)h 18(is)h 177 1570(pro)s 1(cessing)h 16(as)h 14(a)h 14(one-dimensional)h 12(stream)h 14(of)h 14(text,)h 15(and)h 14(merely)h 13(insert)h 15(the)h 15(b)h 1(o)h 1(dy)h 15(of)h 14(the)h 15(macro)h 13(in)h 14(place)h 177 1620(of)s 11(the)h 11(macro)h 10(call.)h 17(Second,)h 12(it)h 10(can)h 12(treat)h 12(the)h 11(text)h 12(of)h 11(the)h 11(macro)h 10(as)h 11(a)h 11(t)h -1(w)h -1(o)h 11(dimensional)h 9(ob)h 2(ject)h 12(and)h 11(inden)h -1(t)h 177 1670(eac)s -1(h)h 15(line)h 14(of)h 14(the)h 15(macro)h 14(b)h 1(o)h 1(dy)h 14(b)h -1(y)h 14(the)h 16(amoun)h -1(t)h 12(that)h 15(the)h 15(macro)h 13(call)h 14(itself)h 14(w)h -1(as)h 15(inden)h -1(ted.)h 20(Consider)h 15(the)h 177 1719(follo)s -1(wing)h 11(macros.)h 177 2402(Under)s 15(the)h 14(regime)h 13(of)h 331(the)h 15(lo)h 1(op)h 13(structure)h 16(macro)h 12(expands)h 15(to:)h 177 2835(Under)s 15(the)h 14(regime)h 13(of)h 395(the)h 15(lo)h 1(op)h 13(structure)h 16(macro)h 13(expands)h 14(to:)h 1042 2940(78)s 79 @eop 80 @bop0 80 @bop1 cmti10.300 sf 1031 1742(dynamic)s -2(al)h 2(ly)h cmbx10.300 sf 177 1242(3.10.11.2)s 48(Maxim)h -1(um)h 15(Input)h 14(Line)h 14(Length)h 177 2358(3.10.11.3)s 48(Maxim)h -1(um)h 15(Output)h 13(File)h 14(Line)h 15(Length)h cmtt10.300 sf 177 42(i=1;)s 177 91(while)s 21(\(i<=N\))h 243 141(a[i]:=0;)s 243 191(i:=i+1;)s 177 241(endwhile)s 259 363(indentation)s 177 535(pragma_ident)s 19(=)h 22(ps)h 21("indentation")h 20(s)h 21("=")h 21(s)h 22(\("blank")h 20(|)h 22("none"\))h 177 780(@p)s 22(indentatio)h -1(n)h 20(=)h 22(blank)h 177 830(@p)s 22(indentatio)h -1(n)h 20(=)h 22(none)h 177 1619(pragma_mill)s 20(=)h 21(ps)h 22("maximum_in)h -1(put_l)h -1(ine_l)h -1(engt)h -1(h")h 20(s)h 21("=")h 22(s)h 21(numorinf)h 177 2835(pragma_moll)s 20(=)h 21(ps)h 22("maximum_ou)h -1(tput_)h -1(line_)h -1(leng)h -1(th")h 20(s)h 21("=")h 21(s)h 22(numorinf)h cmr10.300 sf 177 363(The)s 261(pragma)h 9(determines)h 10(whic)h -1(h)h 11(of)h 10(these)h 12(t)h -1(w)h -1(o)h 9(regimes)h 10(will)h 9(b)h 1(e)h 11(used)h 12(to)h 10(expand)h 11(the)h 11(macros)h 177 413(when)s 15(constructing)h 14(the)h 15(pro)h 1(duct)h 15(\014les.)h 18(The)h 14(syn)h -1(tax)h 14(of)h 14(the)h 14(pragma)h 12(is:)h 177 658(Its)s 15(t)h -1(w)h -1(o)h 13(forms)h 12(lo)h 1(ok)h 13(lik)h -1(e)h 13(this:)h 177 952(In)s 13(the)h 14(curren)h -1(t)h 15(v)h -1(ersion)h 14(of)h 12(F)h -3(unnelW)h -3(eb,)h 13(the)h 14(inden)h -1(tation)h 12(regime)h 12(is)h 14(an)h 13(attribute)h 13(that)h 14(is)h 13(attac)h -1(hed)h 14(to)h 13(an)h 177 1002(en)s -1(tire)h 13(run)h 13(of)h 11(T)h -3(angle;)h 12(it)h 12(is)h 12(not)h 12(p)h 1(ossible)h 13(to)h 12(bind)h 12(it)h 12(to)h 12(particular)h 12(pro)h 1(duct)h 13(\014les)h 13(or)h 12(to)h 12(particular)h 12(macros.)h 177 1052(As)s 13(a)h 11(result,)h 13(it)h 11(do)h 1(esn't)h 13(matter)h 11(where)h 13(inden)h -1(tation)h 12(pragmas)h 10(o)h 1(ccur)h 13(in)h 12(the)h 12(input)h 12(\014le)h 12(or)h 12(ho)h -1(w)h 11(man)h -1(y)h 10(there)h 177 1102(are)s 14(so)h 14(long)h 13(as)h 14(they)h 15(are)h 14(all)h 13(the)h 14(same.)h 17(By)h 14(default)h 14(F)h -3(unnelW)h -3(eb)h 13(uses)h 15(blank)h 14(inden)h -1(tation.)h 177 1348(F)s -3(unnelW)h -3(eb)h 19(generates)h 21(an)h 19(error)h 20(for)h 19(eac)h -1(h)h 20(input)h 19(line)h 19(that)h 19(exceeds)h 22(a)h 19(certain)h 20(maxi)h -1(m)h -2(um)h 16(n)h -1(um)h -1(b)h 1(er)h 18(of)h 177 1397(c)s -1(haracters.)h 20(A)h -1(t)h 13(the)h 14(start)h 14(of)h 13(the)h 14(pro)h 1(cessing)h 15(of)h 12(eac)h -1(h)h 14(input)h 13(\014le)h 14(and)h 13(eac)h -1(h)h 14(include)h 13(\014le,)h 13(this)h 14(maxi)h -1(m)h -2(um)h 10(is)h 177 1447(set)s 15(to)h 14(a)h 14(default)h 14(v)h -2(alue)h 14(of)h 13(80.)h 19(Ho)h -1(w)h -1(ev)h -1(er,)h 14(the)h 15(maxim)h -3(um)h 11(can)h 15(b)h 1(e)h 15(c)h -1(hanged)h 14(using)h 14(a)h 14(maxim)h -3(um)h 11(input)h 14(line)h 177 1497(length)s 14(pragma.)h 177 1742(The)s 15(maxim)h -3(um)h 11(input)h 14(line)h 13(length)h 15(can)h 14(b)h 1(e)h 15(v)h -2(aried)h 242(throughout)h 14(the)h 15(input)h 14(\014le.)h 19(Eac)h -1(h)h 14(maxi-)h 177 1792(m)s -1(um)h 7(input)h 9(line)h 9(length)h 10(pragma's)h 8(scop)h 1(e)h 10(co)h -1(v)h -1(ers)h 11(the)h 10(line)h 9(follo)h -1(wing)h 7(the)h 10(pragma)h 8(through)h 10(to)h 9(and)h 10(including)h 177 1841(the)s 17(next)h 17(maxim)h -3(um)h 13(input)h 16(line)h 16(length)h 17(pragma,)h 14(but)h 17(not)h 16(co)h -1(v)h -1(ering)h 16(an)h -1(y)h 16(in)h -1(terv)h -1(ening)h 16(include)h 17(\014les.)h 26(A)h -1(t)h 177 1891(the)s 14(start)h 14(of)h 13(an)h 13(include)h 14(\014le,)h 13(F)h -3(unnelW)h -3(eb)h 13(resets)h 15(the)h 14(maxim)h -2(um)h 10(input)h 13(line)h 13(length)h 13(to)h 14(the)h 14(default)h 13(v)h -2(alue.)h 177 1941(It)s 14(restores)h 16(it)h 14(to)h 13(its)h 14(previous)h 14(v)h -2(alue)h 14(at)h 13(the)h 15(end)h 14(of)h 14(the)h 14(include)h 14(\014le.)h 177 2018(This)s 18(pragma)h 17(is)h 18(useful)h 18(for)h 18(detecting)h 20(text)h 19(that)h 18(has)h 19(stra)h -1(y)h -1(ed)h 19(o\013)h 18(the)h 19(righ)h -1(t)h 18(side)h 18(of)h 18(the)h 19(screen)h 20(when)h 177 2068(editing.)s 25(If)h 16(y)h -1(ou)h 15(use)h 17(F)h -3(unnelW)h -3(eb,)h 16(and)h 16(set)h 18(the)h 16(maxim)h -2(um)h 13(input)h 16(line)h 15(length)h 17(to)h 16(b)h 1(e)h 17(the)h 16(width)h 16(of)h 16(y)h -1(our)h 177 2118(editing)s 16(windo)h -1(w,)h 16(y)h -1(ou)h 16(will)h 14(nev)h -1(er)h 18(b)h 1(e)h 17(caugh)h -1(t)h 16(b)h -1(y)h -3(,)h 16(for)h 16(example,)h 15(o\013-screen)h 18(op)h 1(ening)h 16(commen)h -1(t)h 15(sym)h -1(b)h 1(ols.)h 177 2168(Y)s -3(ou)h 12(can)h 12(also)h 11(b)h 1(e)h 13(sure)h 13(that)h 12(y)h -1(our)h 12(source)h 13(text)h 12(can)h 13(b)h 1(e)h 12(prin)h -1(ted)h 13(ra)h -1(w,)h 11(if)h 11(necess)h 1(ary)h -3(,)h 13(without)h 11(lines)h 12(wrapping)h 177 2218(around.)s 177 2463(As)s 13(w)h -1(ell)h 11(as)h 13(k)h -1(eeping)h 12(an)h 12(ey)h -1(e)h 13(on)h 12(input)h 12(line)h 12(lengths,)h 12(F)h -3(unnelW)h -3(eb)h 12(also)h 12(k)h -1(eeps)h 13(an)h 12(ey)h -1(e)h 13(on)h 12(the)h 13(line)h 12(lengths)h 12(of)h 177 2513(pro)s 1(duct)h 11(\014les)h 10(and)h 10(\015ags)h 10(all)h 9(lines)h 10(longer)h 10(than)h 10(a)h 9(certain)h 11(limi)h -1(t)h 8(with)h 10(error)h 11(messages.)h 17(Unlik)h -1(e)h 9(the)h 11(maxim)h -3(um)h 177 2563(input)s 17(line)h 16(length,)h 17(whic)h -1(h)h 17(can)h 17(v)h -2(ary)h 16(dynamicall)h -1(y)h 15(throughout)h 17(the)h 17(input)h 17(\014le,)h 17(the)h 17(maxim)h -3(um)h 14(pro)h 1(duct)h 177 2613(\014le)s 18(line)h 16(length)h 18(remains)h 16(\014xed)h 18(throughout)h 17(the)h 18(generation)h 18(of)h 17(all)h 16(the)h 18(pro)h 1(duct)h 18(\014les.)h 29(The)h 18(maxim)h -3(um)h 177 2662(pro)s 1(duct)h 15(\014le)h 14(line)h 13(length)h 14(pragma)h 11(allo)h -1(ws)h 13(this)h 14(v)h -2(alue)h 13(to)h 13(b)h 1(e)h 15(set.)h 19(If)h 13(there)h 15(is)h 14(more)h 12(than)h 14(one)h 14(suc)h -1(h)h 15(pragma)h 177 2712(in)s 14(an)h 13(input)h 14(\014le,)h 13(the)h 15(pragmas)h 12(m)h -1(ust)h 13(all)h 13(sp)h 1(ecify)h 14(the)h 15(same)h 13(v)h -2(alue.)h 1042 2940(79)s 80 @eop 81 @bop0 cmsy10.300 sf [<0000600000600000E00000C00001C0000180000380000300000700000600000600000E 00000C00001C0000180000380000300000700000600000E00000C00000C00001C0000180 000380000300000700000600000E00000C00000C00001C00001800003800003000007000 00600000E00000C00000C00000> 24 40 -6 29 0] 54 dc 81 @bop1 cmsy10.300 sf 619 2118(6)s cmti10.300 sf 295 1535(dir)s -2(e)h -2(ctly)h cmbx10.300 sf 177 524(3.10.11.4)s 48(T)h -1(yp)h 1(esetter)h 295 1485(Handling)s 18(of)h 19(free)h 18(text:)h 295 1968(Restricti)s -1(ons)h 14(on)h 16(the)h 16(target)h 15(t)h -1(yp)h 1(esetter)h -1(:)h cmtt10.300 sf 1905 126(+W)s 270 639(typesetter)s 177 879(pragma_typese)s -1(tter)h 19(=)h 22(ps)h 21("typesetter")h 20(s)h 21("=")h 21(s)h 22(\("none")h 20(|)h 22("tex"\))h 177 1161(@)s 22(typesetter)h 19(=)h 22(none)h 177 1210(@)s 22(typesetter)h 19(=)h 22(tex)h 567 1401(none)s 1224 1485(none)s 434 1585(\\centerline)s 876 1635(none)s 1114 1784(none)s 431 1834($)s 1077 1884(\\$)s 383 2118(typesetter)s 67(none)h 1363 2168(troff)s 1100 2217(typesetter)s 20(=)h 22(tex)h 1134 2317(none)s 177 2501(none)s 1229(typesetter)h 20(=)h 22(x)h 343 2651(typesetter)s 792 2735(typesetter)s 619(@p)h 793 2785(@t)s cmr10.300 sf 177 42(The)s 14(default)h 14(v)h -2(alue)h 13(is)h 14(80)h 13(c)h -1(haracters.)h 177 126(This)s 14(pragma)h 13(is)h 14(only)h 13(one)h 15(of)h 14(t)h -1(w)h -1(o)h 13(constrain)h -1(ts)h 15(on)h 14(the)h 15(length)h 14(of)h 14(the)h 15(lines)h 14(of)h 14(the)h 15(pro)h 1(duct)h 15(\014les.)h 20(The)h 177 176(comma)s -1(nd)h 13(line)h 15(option)h 14(also)h 14(con)h -1(tributes.)h 22(The)h 15(actual)h 14(v)h -2(alue)h 15(that)h 14(F)h -3(unnelW)h -3(eb)h 15(uses)h 16(is)h 14(the)h 16(minim)h -3(um)h 11(of)h 177 226(the)s 15(lim)h -1(its)h 12(sp)h 1(eci\014ed)h 16(in)h 13(the)h 15(comm)h -1(and)h 12(line)h 13(and)h 14(pragmas.)h 177 310(F)s -3(unnelW)h -3(eb)h 16(do)h 1(es)h 17(not)h 16(monitor)h 14(the)h 17(length)h 16(of)h 16(the)h 17(lines)h 16(of)h 15(its)h 16(other)h 17(output)h 17(\014les)h 16(\(journal)h 16(\014le,)h 16(listing)h 177 360(\014le,)s 14(do)h 1(cumen)h -1(tation)h 12(\014le\).)h 177 639(The)s 261(pragma)h 19(allo)h -1(ws)h 20(the)h 22(user)h 23(to)h 21(sp)h 1(ecify)h 22(whether)h 22(the)h 22(input)h 21(\014le)h 21(is)h 21(supp)h 1(osed)h 23(to)h 21(b)h 1(e)h 177 689(t)s -1(yp)h 1(esetter)h 1(-indep)h 1(ende)h 1(n)h -1(t,)h 14(or)h 11(whether)h 14(it)h 11(con)h -1(tains)h 12(comm)h -1(ands)h 10(in)h 12(a)h 11(particular)h 12(t)h -1(yp)h 1(esetter)h 14(language.)h 16(The)h 177 739(pragma)s 12(has)h 14(the)h 15(follo)h -1(wi)h -1(ng)h 12(syn)h -1(tax.)h 177 1020(The)s 14(t)h -1(w)h -1(o)h 14(forms)h 12(of)h 14(the)h 14(pragma)h 12(lo)h 1(ok)h 13(lik)h -1(e)h 13(this.)h 177 1351(A)s 17(source)h 18(\014le)h 17(can)h 17(con)h -1(tain)h 16(more)h 16(than)h 17(one)h 17(t)h -1(yp)h 1(esetter)h 19(pragma,)h 15(but)h 17(they)h 18(m)h -1(ust)h 15(all)h 16(sp)h 1(ecify)h 17(the)h 18(same)h 177 1401(v)s -2(alue.)h 18(The)h 14(default)h 13(is)h 102(.)h 17(The)h 15(t)h -1(yp)h 1(esetter)h 16(setting)h 14(a\013ects)h 15(t)h -1(w)h -1(o)h 14(things:)h 784 1485(If)s 17(the)h 17(t)h -1(yp)h 1(esette)h 1(r)h 19(is)h 17(not)h 105(,)h 17(W)h -3(ea)h -1(v)h -1(e)h 16(writes)h 18(the)h 18(free)h 18(text)h 440 1535(to)s 16(the)h 16(do)h 1(cumen)h -1(tation)h 14(\014le)h 15(without)h 15(c)h -1(hanging)h 15(it)h 14(whatso)h 1(ev)h -1(er.)h 24(This)h 15(means)h 15(that)h 295 1585(if)s 12(\(sa)h -1(y\))h 264(app)h 1(ears)h 13(in)h 12(the)h 13(input)h 12(\014le,)h 12(it)h 12(will)h 11(copied)h 13(directly)h 12(to)h 12(the)h 13(do)h 1(cumen-)h 295 1635(tation)s 17(\014le.)h 27(If)h 17(the)h 18(t)h -1(yp)h 1(esetter)h 19(is)h 105(,)h 16(W)h -3(ea)h -1(v)h -1(e)h 17(in)h -1(tercepts)h 19(an)h -1(y)h 16(c)h -1(haracters)h 19(or)h 17(sequences)h 295 1685(that)s 17(mig)h -1(h)h -1(t)h 15(ha)h -1(v)h -1(e)h 16(a)h 16(sp)h 1(ecial)h 16(meaning)h 15(to)h 16(the)h 17(target)h 16(t)h -1(yp)h 1(esetter)h 19(and)h 16(replaces)h 18(them)h 15(with)h 295 1734(t)s -1(yp)h 1(esetter)h 16(comm)h -1(ands)h 12(to)h 13(t)h -1(yp)h 1(eset)h 15(the)h 14(sequences)h 16(so)h 13(that)h 14(they)h 14(will)h 12(app)h 1(ear)h 14(as)h 13(they)h 14(do)h 13(in)h 295 1784(the)s 17(input.)h 26(F)h -3(or)h 16(example,)h 15(if)h 15(the)h 17(t)h -1(yp)h 1(esette)h 1(r)h 18(is)h 120(and)h 16(the)h 17(target)h 17(t)h -1(yp)h 1(esetter)h 19(is)h 16(T)h 1765 1793(E)s 1788 1784(X,)s 295 1834(then)s 17(if)h 52(\(the)h 16(T)h 581 1843(E)s 604 1834(X)s 16(\\mathem)h -1(atics)h 14(mo)h 1(de")h 14(c)h -1(haracter\))h 17(app)h 1(ears)h 17(in)h 15(the)h 16(input)h 15(\014le,)h 16(it)h 15(will)h 295 1884(b)s 1(e)h 15(b)h 1(e)h 14(written)h 15(to)h 13(the)h 15(do)h 1(cumen)h -1(tation)h 13(\014le)h 13(as)h 58(.)h 1099 1968(A)s -1(t)h 15(a)h 14(later)h 14(date,)h 15(di\013eren)h -1(t)h 15(w)h -1(ea)h -1(v)h -1(e)h 15(mo)h 1(dules)h 295 2018(migh)s -1(t)h 12(b)h 1(e)h 15(incorp)h 1(orated)h 15(in)h -1(to)h 14(F)h -3(unnelW)h -3(eb)h 14(to)h 14(cater)h 15(for)h 14(a)h 14(v)h -2(ariet)h -1(y)h 14(of)h 13(di\013eren)h -1(t)h 15(t)h -1(yp)h 1(esette)h 1(rs.)h 295 2068(If)s 19(this)h 18(happ)h 1(ens,)h 21(it)h 18(will)h 18(b)h 1(e)h 19(imp)h 1(ortan)h -1(t)h 17(to)h 19(ensure)h 20(that)h 19(t)h -1(yp)h 1(esetter-sp)h 2(eci\014c)h 21(source)h 20(\014les)h 295 2118(\(i.e.)s 254(=)h 107(\))h 17(are)h 19(not)h 19(pro)h 1(cessed)h 20(with)h 18(di\013eren)h -1(t)h 20(target)h 19(t)h -1(yp)h 1(esetters.)h 34(F)h -3(or)h 295 2168(example,)s 18(a)h 18(user)h 19(migh)h -1(t)h 16(inno)h 1(cen)h -1(tly)h 18(attempt)h 17(to)h 18(generate)h 20(a)h 145(do)h 1(cumen)h -1(tation)h 17(\014le)h 295 2217(from)s 16(a)h 17(F)h -3(unnelW)h -3(eb)h 17(source)h 19(\014le)h 17(con)h -1(taining)h 16(a)h 383(\(and)h 18(b)h -1(y)h 17(impl)h -1(ication)h 295 2267(T)s 318 2276(E)s 341 2267(X)s 20(con)h -1(trol)h 19(sequences\).)h 36(The)h 20(pragma)h 17(could)h 19(also)h 19(b)h 1(e)h 20(useful)h 19(for)h 19(catc)h -1(hing)h 19(t)h -1(yp)h 1(esetter)h 295 2317(clashes)s 12(in)h 11(source)h 12(and)h 11(include)h 11(\014les.)h 18(The)h 11(setting)h 110(is)h 11(sp)h 1(ecial)h 11(b)h 1(ecause)h 13(it)h 10(is)h 11(guaran)h -1(teed)h 295 2367(to)s 14(w)h -1(ork)h 14(with)h 13(an)h -1(y)h 14(future)h 14(target)h 14(t)h -1(yp)h 1(esette)h 1(r.)h 177 2451(The)s 16(aim)h 13(of)h 14(all)h 14(this)h 15(is)h 15(to)h 15(ensure)h 16(that)h 16(an)h -1(y)h 14(t)h -1(yp)h 1(esetter)h 17(dep)h 1(endenc)h 1(y)h 17(is)h 15(correctly)h 16(pro)h 1(claimed.)h 20(Because)h 277 2501(is)s 13(the)h 14(default)h 13(t)h -1(yp)h 1(esetter,)h 15(a)h 13(user)h 14(who)h 13(creates)h 15(a)h 13(source)h 15(\014le)h 13(without)h 13(a)h 331(pragma)h 177 2551(will)s 10(so)h 1(on)h 12(\014nd)h 12(that)h 12(the)h 13(con)h -1(trol)h 11(sequences)h 14(they)h 13(are)h 12(inserting)h 12(in)h -1(to)h 11(the)h 12(source)h 13(do)h 1(cumen)h -1(t)h 12(are)h 12(app)h 1(earing)h 177 2601(v)s -1(erbatim)h 14(in)h 15(the)h 15(prin)h -1(ted)h 16(do)h 1(cumen)h -1(tation!)h 21(In)h 15(order)h 16(to)h 15(activ)h -2(ate)h 15(these)h 16(sequence)h 1(s,)h 17(they)h 16(will)h 13(b)h 1(e)h 16(forced)h 177 2651(to)s 14(add)h 14(a)h 245(pragma,)h 12(th)h -1(us)h 14(making)h 11(the)h 15(dep)h 1(endency)h 16(explicit.)h 177 2735(It)s 15(ma)h -1(y)h 12(seem)h 15(strange)h 15(to)h 14(place)h 15(the)h 247(setting)h 15(facilit)h -1(y)h 13(within)h 14(a)h 14(pragma)h 13(\()h 44(\))h 14(when)h 15(there)h 16(is)h 177 2785(a)s 14(separate)h 16(t)h -1(yp)h 1(esetting)h 16(construct)h 16(\()h 44(\).)h 20(This)h 15(has)h 15(b)h 1(een)h 15(done)h 15(to)h 15(sustain)h 15(the)h 15(rule)h 15(of)h 14(th)h -1(um)h -1(b)h 13(that)h 15(sa)h -1(ys)h 177 2835(that)s 14(pragmas)h 12(do)h 14(not)h 14(participate)h 14(in)h 13(the)h 15(parser-lev)h -1(el)h 14(syn)h -1(tax,)h 14(but)h 14(t)h -1(yp)h 1(esetter)h 16(directiv)h -1(es)h 15(do.)h 1042 2940(80)s 81 @eop 82 @bop0 cmbx10.300 sf [ 40 28 -1 27 36] 86 dc 82 @bop1 cmbx12.300 sf 177 42(3.10.12)s 55(F)h -5(reestanding)h 19(T)h -2(yp)h 2(esetter)h 16(Directiv)h -2(es)h cmbx10.300 sf 367 191(inlin)s -1(e)h 93(freestandi)h -1(ng)h 177 853(3.10.12.1)s 48(New)h 17(P)h -1(age)h 177 1624(3.10.12.2)s 48(T)h -4(able)h 15(of)h 15(Con)h -1(ten)h -1(ts)h 177 2345(3.10.12.3)s 48(V)h -4(ertical)h 14(Skip)h cmtt10.300 sf 177 673(ftd)s 21(=)h 22(ftd_newpage)h 19(|)h 22(ftd_toc)h 20(|)h 22(ftd_vskip)h 20(|)h 21(ftd_title)h 177 723(ts)s 43(=)h 22("@t)h 21(")h 177 1063(ftd_newpage)s 20(=)h 21(ts)h 22("new_page")h 177 1284(@t)s 22(new_page)h 177 1834(ftd_toc)s 21(=)h 21(ts)h 21("table_of_conte)h -1(nts")h 177 2055(@t)s 22(table_of_c)h -1(onten)h -1(ts)h 177 2605(ftd_vskip)s 20(=)h 22(ts)h 21("vskip")h 20(s)h 22(number)h 21(s)h 21("mm")h 177 2825(@t)s 22(vskip)h 20(26)h 22(mm)h cmr10.300 sf 177 141(F)s -3(unnelW)h -3(eb)h 12(pro)h -1(vides)h 12(t)h -1(w)h -1(o)h 12(kinds)h 12(of)h 12(t)h -1(yp)h 1(esetter)h 15(directiv)h -1(e)h 13(to)h 12(assist)h 13(the)h 12(user)h 14(to)h 12(pro)h 1(duce)h 13(do)h 1(cumen)h -1(tation.)h 177 191(These)s 16(are)h 143(and)h 271(.)h 17(Unlik)h -1(e)h 14(pragmas,)h 12(eac)h -1(h)h 15(of)h 14(these)h 15(categories)h 15(of)h 14(directiv)h -1(e)h 15(partic-)h 177 241(ipates)s 15(in)h 14(the)h 15(parser-lev)h -1(el)h 16(syn)h -1(tax)h 14(and)h 15(can)h 15(app)h 1(ear)h 15(only)h 13(in)h 15(certain)h 15(con)h -1(texts)h 15(\(see)h 16(the)h 16(parser)h 15(section\).)h 177 291(Inline)s 14(directiv)h -1(es)h 16(are)h 15(designed)h 15(to)h 14(b)h 1(e)h 15(used)h 16(within)h 14(paragraphs)h 14(to)h 15(alter)h 14(the)h 15(lo)h 1(ok)h 14(of)h 14(the)h 15(enclosed)h 16(text.)h 177 341(F)s -3(reestanding)h 15(t)h -1(yp)h 1(esette)h 1(r)h 16(directiv)h -1(es)h 16(are)h 15(designed)h 16(to)h 14(app)h 1(ear)h 16(on)h 14(lines)h 15(of)h 14(their)h 15(o)h -1(wn)h 14(and)h 15(ha)h -1(v)h -1(e)h 15(a)h 14(bigger)h 177 390(t)s -1(yp)h 1(ographical)h 13(impact.)h 177 463(The)s 18(syn)h -1(tax)h 17(of)h 16(freestanding)h 18(t)h -1(yp)h 1(esetter)h 20(directiv)h -1(es)h 18(is)h 17(almo)h -1(st)h 16(iden)h -1(tical)h 17(to)h 17(that)h 17(of)h 16(pragmas.)h 27(All)h 16(the)h 177 513(same)s 11(syn)h -1(tax)h 13(rules)h 12(apply)h 12(\(except)h 14(that)h 12(the)h 13(actual)h 11(k)h -1(eyw)h -1(ords)h 13(are)h 12(di\013eren)h -1(t\).)h 19(The)h 13(follo)h -1(wi)h -1(ng)h 10(subsections)h 177 563(describ)s 1(e)h 16(the)h 14(four)h 14(t)h -1(yp)h 1(esetter)h 16(directiv)h -1(es)h 15(a)h -1(v)h -2(ailabl)h -1(e.)h 177 953(The)s 14(new)h 15(page)h 14(pragma)h 12(is)h 13(a)h 14(t)h -1(yp)h 1(esetting)h 15(pragma)h 12(with)h 13(the)h 15(follo)h -1(wing)h 11(syn)h -1(tax.)h 177 1174(It)s 14(only)h 13(form)h 12(lo)h 1(oks)h 14(lik)h -1(e)h 13(this.)h 177 1394(Its)s 15(sole)h 14(e\013ect)h 16(is)h 14(to)h 14(cause)h 16(a)h 14(\\skip)h 14(to)h 14(a)h 14(new)h 14(page")h 14(command)h 12(to)h 14(b)h 1(e)h 15(inserted)h 16(in)h -1(to)h 13(the)h 15(do)h 1(cumen)h -1(tation)h 177 1444(\014le.)s 21(The)h 15(new)h 16(page)h 14(command)h 13(is)h 14(suc)h -1(h)h 16(that)h 15(if)h 14(the)h 15(t)h -1(yp)h 1(esetter)h 17(is)h 15(already)h 15(at)h 14(the)h 16(top)h 14(of)h 15(a)h 14(page,)h 15(it)h 14(will)h 177 1494(skip)s 14(to)h 14(the)h 14(top)h 14(of)h 13(the)h 15(next)h 14(page.)h 177 1724(The)s 14(new)h 15(page)h 14(pragma)h 12(is)h 13(a)h 14(t)h -1(yp)h 1(esetting)h 15(pragma)h 12(with)h 13(the)h 15(follo)h -1(wing)h 11(syn)h -1(tax.)h 177 1944(It)s 14(only)h 13(form)h 12(lo)h 1(oks)h 14(lik)h -1(e)h 13(this.)h 177 2165(Its)s 16(sole)h 15(e\013ect)h 16(is)h 15(to)h 15(instruct)h 16(W)h -3(ea)h -1(v)h -1(e)h 15(to)h 14(insert)h 16(a)h 15(table)h 15(of)h 14(con)h -1(ten)h -1(ts)h 16(at)h 15(this)h 15(p)h 1(oin)h -1(t)h 15(in)h 14(the)h 16(prin)h -1(ted)h 16(do)h 1(cu-)h 177 2215(men)s -1(tation.)h 16(This)h 14(pragma)h 12(do)h 1(es)h 15(not)h 14(skip)h 13(to)h 14(a)h 14(top)h 14(of)h 13(a)h 13(new)h 15(page)h 14(\014rst.)h 177 2445(The)s 12(v)h -1(ertical)h 11(skip)h 11(pragma)h 10(is)h 11(a)h 11(t)h -1(yp)h 1(esetting)h 13(pragma)h 9(that)h 12(instructs)h 12(W)h -3(ea)h -1(v)h -1(e)h 11(to)h 11(insert)h 13(a)h 11(sp)h 1(eci\014ed)h 13(amoun)h -1(t)h 177 2495(of)s 13(v)h -1(ertical)h 14(space)h 15(in)h -1(to)h 13(the)h 15(do)h 1(cumen)h -1(tation.)h 17(The)h 14(pragma)h 12(has)h 14(the)h 14(follo)h -1(wing)h 12(syn)h -1(tax.)h 177 2715(F)s -3(or)h 14(example:)h 1042 2940(81)s 82 @eop 83 @bop0 cmbx12.300 sf [<0000180000380000380000700000700000E00000E00000E00001C00001C00003800003 80000380000700000700000700000E00000E00001C00001C00001C000038000038000070 0000700000700000E00000E00001C00001C00001C0000380000380000700000700000700 000E00000E00000E00001C00001C0000380000380000380000700000700000E00000E000 00C00000> 24 49 -3 36 28] 47 dc 83 @bop1 cmbx10.432 sf 177 1641(3.11)s 70(P)h -2(arser)h cmti10.300 sf 829 1321(the)s 16(sc)h -2(anner)h 16(\014nishes)h 17(running)h 16(b)h -2(efor)h -2(e)h 16(the)h 16(p)h -2(arser)h 15(starts)h 15(running.)h cmbx12.300 sf 177 1039(3.10.13)s 55(Scanner/P)h -2(arser)h 20(In)h -2(terface)h 177 2335(3.11.1)s 55(High)h 19(Lev)h -2(el)h 17(Structure)h cmbx10.300 sf 177 42(3.10.12.4)s 48(Title)h 861 1860(text)s 20(tok)h -1(ens)h 28(sp)h 1(ecial)h 19(tok)h -1(ens)h 113(t)h -1(yp)h 1(esetter)h 18(directi)h -1(v)h -1(e)h 177 1910(tok)s -1(ens)h cmtt10.300 sf 177 269(ftd_title)s 20(=)h 22(ts)h 21("title")h 20(s)h 22(font)h 21(s)h 22(alignment)h 19(text)h 177 319(font)s 130(=)h 22("normalfont)h -1(")h 20(|)h 22("titlefont")h 19(|)h 22("smalltitle)h -1(font")h 177 369(alignment)s 20(=)h 22("left")h 20(|)h 22("centre")h 20(|)h 22("right")h 177 419(text)s 130(=)h 22("""")h 21({printable_)h -1(char})h 19("""")h 177 890(@t)s 22(title)h 20(smalltitlefont)h 19(centre)h 21("How)h 21(to)h 21(Flip)h 21(a)h 22(Bit")h 378 1471(vskip)s 177 2613(input_file)s 20(=)h 21({text)h 21(|)h 22(macro)h 21(|)h 21(directive})h cmr10.300 sf 177 147(The)s 14(title)h 14(pragma)h 12(is)h 14(a)h 13(t)h -1(yp)h 1(esetting)h 15(pragma)h 12(with)h 14(the)h 14(follo)h -1(wing)h 12(syn)h -1(tax.)h 177 541(It's)s 17(e\013ect)h 19(is)h 16(to)h 17(instruct)h 18(W)h -3(ea)h -1(v)h -1(e)h 16(to)h 17(insert)h 18(a)h 16(single)h 17(line)h 16(in)h -1(to)h 16(the)h 18(prin)h -1(ted)h 17(do)h 1(cumen)h -1(tation)h 16(con)h -1(taining)h 177 591(the)s 14(sp)h 1(eci\014ed)h 16(text)h 14(set)h 14(in)h 13(the)h 15(sp)h 1(eci\014ed)h 15(fon)h -1(t)h 13(and)h 13(aligned)h 13(in)h 13(the)h 14(sp)h 1(eci\014ed)h 16(manner.)h 17(The)h 14(double)h 13(quotes)h 177 641(delimiting)s 13(the)h 16(text)h 16(are)h 15(for)h 16(sho)h -1(w)h 15(only;)h 15(if)h 14(y)h -1(ou)h 15(w)h -1(an)h -1(t)h 15(to)h 15(put)h 16(a)h 15(double)h 15(quote)h 16(in)h 15(the)h 16(string,)h 15(y)h -1(ou)h 15(don't)h 177 691(need)s 15(to)h 14(double)h 14(them.)h 177 768(Here)s 15(is)h 14(an)h 14(example)h 12(of)h 14(the)h 14(pragma.)h 177 1144(If)s 12(the)h 12(scanner)h 14(terminates)h 11(without)h 12(an)h -1(y)h 11(errors,)h 13(con)h -1(trol)h 12(is)h 12(passed)h 13(to)h 12(the)h 12(parser.)h 19(The)h 12(parser)h 13(parses)h 13(the)h 177 1194(tok)s -1(en)h 14(list)h 13(generated)h 15(b)h -1(y)h 14(the)h 14(scanner.)h 19(The)h 15(tok)h -1(en)h 13(list)h 14(consists)h 14(of)h 13(text)h 15(scraps,)h 14(freestanding)h 14(t)h -1(yp)h 1(esette)h 1(r)h 177 1244(directiv)s -1(es,)h 15(and)h 13(sp)h 1(ecial)h 14(sequence)h 16(tok)h -1(ens.)h 177 1321(The)s 16(user)h 16(should)h 15(b)h 1(ear)h 16(in)h 14(mind)h 13(that)h 177 1371(This)s 15(means)h 15(that)h 15(the)h 15(scanner)h 17(cannot)h 15(b)h 1(e)h 16(in\015uenced)h 16(in)h 15(an)h -1(y)h 15(w)h -1(a)h -1(y)h 14(b)h -1(y)h 15(higher)h 15(order)h 16(structures)h 18(suc)h -1(h)h 16(as)h 177 1421(the)s 13(parser)h 13(migh)h -1(t)h 10(parse.)h 18(F)h -3(or)h 12(example,)h 11(it)h 11(is)h 12(imp)h 1(ossible)h 11(to)h 12(write)h 12(a)h 12(F)h -3(unnelW)h -3(eb)h 11(macro)h 11(to)h 12(include)h 12(a)h 12(\014le,)h 177 1471(or)s 14(insert)h 15(a)h 136(pragma)h 12(in)h -1(to)h 13(the)h 15(input)h 13(text.)h 177 1760(By)s 19(the)h 18(time)h 17(the)h 19(parser)h 19(starts,)h 20(the)h 19(scanner)h 20(has)h 18(completely)h 17(terminated.)h 30(A)h -1(t)h 18(this)h 19(p)h 1(oin)h -1(t,)h 18(it)h 18(is)h 18(not)h 177 1810(p)s 1(ossible)h 15(for)h 14(an)h -1(y)h 14(more)h 13(\014les)h 15(to)h 14(b)h 1(e)h 15(included,)h 14(and)h 15(sp)h 1(ecial)h 14(c)h -1(haracters)h 17(are)h 14(no)h 15(longer)h 14(presen)h -1(t)h 16(to)h 14(confuse)h 177 1860(things.)s 29(All)h 17(that)h 18(remains)h 16(is)h 18(a)h 17(list)h 17(of)h 257(,)h 311(,)h 17(and)h 312 1910(.)s 17(T)h -3(ext)h 13(tok)h -1(ens)h 15(consist)h 14(en)h -1(tirely)h 14(of)h 13(sequences)h 16(of)h 14(prin)h -1(table)h 13(c)h -1(haracters)h 16(and)h 13(end)h 14(of)h 14(line)h 13(mark)h -1(ers.)h 177 1959(Sp)s 1(ecial)h 13(tok)h -1(ens)h 14(represen)h -1(t)h 15(the)h 14(sp)h 1(ecial)h 13(sequences)h 16(that)h 13(the)h 14(scanner)h 14(found)h 13(in)h 12(the)h 14(input)h 13(\014le.)h 18(T)h -1(yp)h 1(esetter)h 177 2009(directiv)s -1(e)h 12(tok)h -1(ens)h 13(represen)h -1(t)h 14(the)h 12(freestanding)h 12(t)h -1(yp)h 1(esetter)h 14(directiv)h -1(es)h 13(that)h 12(the)h 12(scanner)h 13(encoun)h -1(tered.)h 19(The)h 177 2059(parser)s 13(consumes)h 12(the)h 12(tok)h -1(en)h 12(list)h 12(and)h 11(builds)h 12(a)h 11(macro)h 11(table)h 11(that)h 12(is)h 12(later)h 12(used)h 12(to)h 12(generate)h 13(pro)h 1(duct)h 13(\014les.)h 177 2109(It)s 14(also)h 13(constructs)h 16(a)h 14(do)h 1(cumen)h -1(t)h 13(list)h 14(that)h 14(is)h 13(used)h 15(to)h 14(generate)h 15(the)h 15(do)h 1(cumen)h -1(tation)h 12(\014le.)h 177 2186(The)s 14(syn)h -1(tax)h 14(rules)h 15(app)h 1(earing)h 14(in)h 13(the)h 14(follo)h -1(wing)h 12(sections)h 15(refer)h 15(to)h 13(the)h 15(tok)h -1(en)h 14(list.)h 177 2440(A)s -1(t)h 13(the)h 13(highest)h 13(lev)h -1(el,)h 12(the)h 13(F)h -3(unnelW)h -3(eb)h 12(parser)h 14(parses)h 13(the)h 14(input)h 12(\014le)h 12(\(tok)h -1(en)h 13(list\))h 12(in)h -1(to)h 12(a)h 13(sequence)h 14(of)h 12(text)h 177 2490(scraps,)s 15(macro)h 12(de\014nitions,)h 14(and)h 14(t)h -1(yp)h 1(esetter)h 16(directiv)h -1(es.)h 177 2735(All)s 20(three)h 22(of)h 20(these)h 22(kinds)h 21(of)h 20(comp)h 1(onen)h -1(ts)h 20(con)h -1(tribute)h 21(to)h 21(the)h 21(do)h 1(cumen)h -1(tation)h 19(\014le,)h 22(but)h 21(only)h 20(macro)h 177 2785(de\014nitions)s 15(con)h -1(tribute)h 15(to)h 14(the)h 15(pro)h 1(duct)h 16(\014les.)h 20(If)h 14(all)h 14(the)h 15(free)h 15(text)h 15(and)h 15(directiv)h -1(es)h 15(w)h -1(ere)h 16(remo)h -1(v)h -1(ed)h 13(from)h 13(a)h 177 2835(F)s -3(unnelW)h -3(eb)h 14(input)h 13(\014le,)h 14(the)h 14(pro)h 1(duct)h 15(\014les)h 14(w)h -1(ould)h 13(not)h 14(b)h 1(e)h 15(a\013ected.)h 1042 2940(82)s 83 @eop 84 @bop0 84 @bop1 cmbx12.300 sf 177 42(3.11.2)s 55(F)h -5(ree)h 19(T)h -5(ext)h 177 1671(3.11.3)s 55(T)h -2(yp)h 2(esetter)h 17(Directiv)h -2(es)h cmbx10.300 sf 177 142(F)s -4(ree)h 18(text)h 1243 1821(freestandi)s -1(n)h -1(g)h 18(t)h -1(yp)h 1(esetter)h 18(directi)h -1(v)h -1(es)h 356 1871(inlin)s -1(e)h 14(t)h -1(yp)h 1(esetter)h 14(directi)h -1(v)h -1(es)h 177 2374(3.11.3.1)s 48(Section)h cmtt10.300 sf 177 403(free_text)s 129(=)h 22(ordinary_te)h -1(xt)h 177 452(ordinary_text)s 41(=)h 22({ordinary_c)h -1(har)h 20(|)h 21(eol)h 21(|)h 22(text_special)h -1(}+)h 177 502(text_special)s 63(=)h 22("@+")h 21(|)h 21("@@")h 21(|)h 22("@^")h 21(char_spec)h 177 552(ordinary_char)s 41(=)h 22(")h 21(".."~"-special)h 177 775(This@@)s 21(is)h 21(a)h 22(very@+)h 20(messy)h 177 825(@^D\(009\)chunk)s 19(of)h 22(text)h 21(indeed.)h 177 875(But)s 21(FunnelWeb)h 20(still)h 21(views)h 21(it)h 21(as)h 177 925(a)s 22(single)h 20(chunk)h 21(of)h 21(text.)h 177 2082(directive)s 20(=)h 22(ftd)h 21(|)h 21(itd)h 177 2131(itd)s 152(=)h 22(section)h 20(|)h 22(literal)h 20(|)h 22(emphasis)h 177 2735(section)s 64(=)h 22("@")h 21(levelchar)h 20([name])h 177 2785(levelchar)s 20(=)h 22("A")h 21(|)h 21("B")h 22(|)h 21("C")h 21(|)h 22("D")h 21(|)h 22("E")h 21(|)h 439 2835("a")s 21(|)h 21("b")h 22(|)h 21("c")h 21(|)h 22("d")h 21(|)h 22("e")h cmr10.300 sf 386 142(is)s 16(an)h -1(y)h 15(text)h 17(that)h 17(is)h 16(not)h 16(part)h 16(of)h 16(a)h 16(macro)h 15(de\014nition)h 15(or)h 17(a)h 16(directiv)h -1(e.)h 25(A)h 16(scrap)h 18(of)h 15(free)h 17(text)h 177 192(consists)s 20(of)h 17(a)h 18(sequence)h 21(of)h 18(items)h 17(dra)h -1(wn)h 18(from)h 17(the)h 19(follo)h -1(wi)h -1(ng)h 17(list:)h 26(non-sp)h 1(ecial)h 18(prin)h -1(table)h 18(c)h -1(haracters,)h 177 241(insert-eol)s 17(sp)h 1(ecial)h 17(sequences)h 1(,)h 19(insert)h 17(sp)h 1(ecial)h 17(c)h -1(haracter)h 18(sp)h 1(ecial)h 17(sequences)h 1(,)h 18(insert)h 18(arbitrary)h 16(c)h -1(haracter)h 177 291(sp)s 1(ecial)h 14(sequence)h 1(.)h 177 664(An)s 14(example)h 13(of)h 13(some)h 13(rather)h 15(messy)h 13(free)h 15(text)h 15(is)h 13(as)h 14(follo)h -1(ws:)h 177 1036(F)s -3(unnelW)h -3(eb)h 16(nev)h -1(er)h 17(sees)h 19(t)h -1(w)h -1(o)h 15(text)h 18(c)h -1(h)h -1(unks)h 17(next)h 17(to)h 16(eac)h -1(h)h 17(other)h 17(in)h 16(the)h 17(input;)h 17(they)h 17(are)h 17(alw)h -1(a)h -1(ys)h 15(merged)h 177 1086(in)s -1(to)h 13(a)h 14(single)h 13(text)h 15(tok)h -1(en.)h 177 1159(The)s 18(free)h 17(text)h 18(in)h 17(an)h 17(input)h 16(\014le)h 17(do)h 1(es)h 18(not)h 17(a\013ect)h 18(the)h 18(pro)h 1(duct)h 18(\014les.)h 28(Ho)h -1(w)h -1(ev)h -1(er,)h 17(b)h -1(y)h 17(default,)h 17(it)h 17(app)h 1(ears)h 177 1209(in)s 17(the)h 17(prin)h -1(ted)h 18(do)h 1(cumen)h -1(tation)h 16(exactly)h 17(as)h 17(it)h 16(is)h 17(giv)h -1(en)h 17(in)h 16(the)h 18(input)h 17(\014le,)h 17(except)h 19(that)h 17(it)h 16(is)h 17(\014lled)h 17(and)h 177 1259(justi\014ed)s 14(in)h -1(to)h 14(paragraphs.)h 177 1332(An)s -1(y)h 20(prin)h -1(table)h 19(c)h -1(haracter)h 21(or)h 19(particular)h 19(sequence)h 22(of)h 19(c)h -1(haracters)h 21(ma)h -1(y)h 18(app)h 1(ear)h 20(in)h 19(the)h 20(free)h 20(text)h 20(of)h 19(a)h 177 1382(do)s 1(cumen)h -1(t.)h 30(F)h -3(unnelW)h -3(eb)h 18(ensures)h 20(that)h 18(they)h 18(will)h 17(app)h 1(ear)h 18(exactly)h 19(as)h 18(giv)h -1(en)h 17(in)h 18(the)h 18(input)h 18(\014le,)h 19(ev)h -1(en)h 19(if)h 177 1432(they)s 15(happ)h 1(en)h 15(to)h 14(b)h 1(e)h 14(escap)h 1(e)h 16(c)h -1(haracters)h 16(or)h 14(comma)h -1(nds)h 13(in)h 14(the)h 14(target)h 15(t)h -1(yp)h 1(esetter.)h 21(Ho)h -1(w)h -1(ev)h -1(er,)h 14(F)h -3(unnelW)h -3(eb)h 177 1482(also)s 17(pro)h -1(vides)h 18(a)h 18(sp)h 1(ecial)h 18(mo)h 1(de)h 16(that)h 18(allo)h -1(ws)h 17(this)h 17(censoring)h 19(to)h 17(b)h 1(e)h 19(o)h -1(v)h -1(erridden.)h 30(See)h 18(Section)h 18(for)h 18(more)h 177 1532(informati)s -1(on.)h 177 1771(F)s -3(unnelW)h -3(eb)h 15(pro)h -1(vides)h 16(a)h 16(v)h -2(ariet)h -1(y)h 15(of)h 15(t)h -1(yp)h 1(esetter)h 18(directiv)h -1(es)h 16(to)h 16(assist)h 16(the)h 16(user)h 17(to)h 16(t)h -1(yp)h 1(eset)h 17(the)h 16(do)h 1(cumen)h -1(t)h 177 1821(in)s 17(a)h 17(t)h -1(yp)h 1(esetter)h 1(-indep)h 1(ende)h 1(n)h -1(t)h 19(w)h -1(a)h -1(y)h -3(.)h 28(These)h 18(are)h 18(divided)h 17(in)h -1(to)h 177 1871(\(ftd\))s 14(and)h 586(\(itd\).)h 18(The)h 15(in)h -1(ternal)h 14(syn)h -1(tax)h 14(of)h 13(the)h 15(freestanding)h 14(t)h -1(yp)h 1(esette)h 1(r)h 177 1920(directiv)s -1(es)h 14(has)h 14(already)h 13(b)h 1(een)h 14(discussed)h 15(in)h 13(the)h 14(scanner)h 15(section.)h 18(The)h 14(follo)h -1(wing)h 11(syn)h -1(tax)h 13(rule)h 13(de\014nes)h 15(the)h 177 1970(con)s -1(text)h 15(in)h 13(whic)h -1(h)h 14(these)h 15(constructs)h 16(can)h 14(app)h 1(ear.)h 177 2243(The)s 14(remainder)h 14(of)h 13(this)h 14(section)h 15(describ)h 1(es)h 16(the)h 14(inline)h 13(t)h -1(yp)h 1(esetter)h 16(directiv)h -1(es.)h 177 2474(The)s 19(section)h 18(directiv)h -1(e)h 19(pro)h -1(vides)h 18(a)h 17(w)h -1(a)h -1(y)h 18(for)h 17(the)h 19(user)h 19(to)h 17(structure)h 20(the)h 19(program)h 16(and)h 18(do)h 1(cumen)h -1(tation)h 177 2524(in)s -1(to)h 16(a)h 16(hierarc)h -1(hical)h 17(tree)h 18(structure,)h 18(just)h 17(as)h 17(in)h 16(most)h 15(large)h 17(do)h 1(cumen)h -1(ts.)h 26(A)h 16(section)h 18(construct)h 18(consists)h 177 2574(of)s 17(a)h 17(case-insensitiv)h -1(e)h 18(iden)h -1(tifying)h 16(letter,)h 19(whic)h -1(h)h 17(determines)h 18(the)h 18(absolute)h 17(lev)h -1(el)h 17(of)h 17(the)h 18(section)h 18(in)h 17(the)h 177 2623(do)s 1(cumen)h -1(t,)h 13(and)h 14(an)h 13(optional)h 13(section)h 15(name,)h 12(whic)h -1(h)h 14(has)h 14(exactly)h 14(the)h 14(same)h 13(syn)h -1(tax)h 14(as)h 14(a)h 13(macro)h 13(name.)h 1042 2940(83)s 84 @eop 85 @bop0 85 @bop1 cmcsc10.300 sf 1691 213(a)s 752 263(a)s cmti10.300 sf 376 495(must)s 586 644(inherits)s 448 2658(any)s cmbx10.300 sf 177 1832(3.11.3.2)s 48(Literal)h 13(Directiv)h -1(e)h cmtt10.300 sf 385 91(@i)s 64(@p)h 141(@t)h 1527 218(A)s 574 268(E)s 1403 318(A)s 841 368(@D)s 341(@C)h 744 821(\\)s 177 1021(@A@)h 177 1120(This)s 21(is)h 22(the)h 21(main)h 21(simulation)h 19(module)h 21(for)h 21(planet)h 21(earth,)h 20(simulated)h 20(down)h 21(to)h 21(the)h 177 1170(molecular)s 20(level.)h 21(This)h 21(is)h 21(a)h 22(REALLY)h 20(big)h 21(program.)h 20(I)h 22(mean)h 21(really)h 21(big.)h 21(I)h 21(mean,)h 177 1220(if)s 22(you)h 21(thought)h 20(the)h 21(X-Windows)h 20(source)h 21(code)h 21(was)h 21(big,)h 21(you're)h 20(in)h 22(for)h 21(a)h 22(shock...)h 177 1320(@B)s 22(We)h 21(start)h 21(by)h 21(looking)h 20(at)h 22(the)h 21(code)h 21(for)h 21(six)h 21(legged)h 21(stick)h 21(insects)h 20(as)h 21(they)h 177 1370(form)s 21(a)h 22(good)h 21(example)h 20(of)h 21(a)h 22(typical)h 20(object-oriente)h -1(d)h 20(animal)h 21(implementat)h -1(ion.)h 177 1469(@$@@{@)h -1(-)h 177 1519(slsi.creep;)s 20(slsi.crawl;)h 19(slsi.creep;@})h 667 2136(p)s 683(tt)h 21(font)h 902 2263(tt)s 21(font)h 177 2436(literal)s 21(=)h 21("@{")h 21(ordinary_text)h 19("@}")h 1073 2658(ordinary)s 14(text)h 985 2708(tt)s 21(font)h cmr10.300 sf 177 42(The)s 15(section)h 14(construct)h 16(is)h 14(not)h 14(quite)h 14(\\inline")h 13(as)h 14(it)h 14(m)h -1(ust)h 13(app)h 1(ear)h 14(only)h 13(at)h 14(the)h 15(start)h 15(of)h 13(a)h 14(line.)h 18(Ho)h -1(w)h -1(ev)h -1(er,)h 177 91(unlik)s -1(e)h 10(the)h 11(\\)h 44(",)h 10(\\)h 44(",)h 10(and)h 10(\\)h 44(")h 10(constructs,)h 13(it)h 10(do)h 1(es)h 11(not)h 11(consume)h 10(the)h 11(remainder)h 10(of)h 10(the)h 11(line)h 11(\(although)h 177 141(it)s 14(w)h -1(ould)h 13(b)h 1(e)h 14(silly)h 13(to)h 14(place)h 14(an)h -1(ything)h 13(on)h 13(the)h 15(same)h 13(line)h 13(an)h -1(yw)h -1(a)h -1(y\).)h 177 218(F)s -3(unnelW)h -3(eb)h 10(pro)h -1(vides)h 11(\014v)h -1(e)h 11(lev)h -1(els)h 11(of)h 10(sections,)h 12(ranging)h 10(from)h 9(the)h 11(highest)h 11(lev)h -1(el)h 10(of)h 43(\(lik)h -1(e)h 10(a)h 11(L)h 4(T)h 1733 231(E)s 1756 218(X)s 11(c)h -1(hapter\))h 177 268(to)s 15(the)h 16(lo)h -1(w)h -1(est)h 16(lev)h -1(el)h 15(of)h 52(\(lik)h -1(e)h 15(a)h 15(L)h 4(T)h 794 281(E)s 817 268(X)s 16(subsubsubsect)h 1(ion\).)h 24(F)h -3(unnelW)h -3(eb)h 14(input)h 16(\014les)h 15(need)h 17(not)h 15(con)h -1(tain)h 177 318(an)s -1(y)h 13(sections)h 15(at)h 13(all,)h 12(but)h 14(if)h 13(they)h 14(do,)h 13(the)h 14(\014rst)h 14(section)h 15(m)h -1(ust)h 12(b)h 1(e)h 14(at)h 14(lev)h -1(el)h 35(,)h 13(and)h 13(follo)h -1(wing)h 11(sections)h 15(m)h -1(ust)h 177 368(not)s 17(skip)h 17(hierarc)h -1(hical)h 17(lev)h -1(els)h 18(\(e.g.)h 16(an)h 78(cannot)h 17(follo)h -1(w)h 16(an)h 61(\).)h 16(F)h -3(unnelW)h -3(eb)h 17(generates)h 19(an)h 17(error)h 18(if)h 16(a)h 177 418(lev)s -1(el)h 14(is)h 13(skipp)h 1(ed.)h 177 495(All)s 9(section)h 108(ha)h -1(v)h -1(e)h 10(names)h 9(asso)h 1(ciated)h 11(with)h 9(them,)h 10(but)h 10(for)h 10(con)h -1(v)h -1(enience,)h 11(the)h 11(section)h 11(name)h 8(is)h 10(optional)h 177 545(if)s 16(the)h 18(section)h 18(con)h -1(tains)h 17(one)h 17(or)h 17(more)h 17(macro)h 15(de\014nitions)h 18(\(i.e.)h 16(at)h 17(least)h 17(one)h 17(macro)h 16(de\014nition)h 17(app)h 1(ears)h 177 594(b)s 1(et)h -1(w)h -1(een)h 19(the)h 18(section)h 18(construct)h 19(in)h 17(question)h 17(and)h 18(the)h 18(next)h 18(section)h 18(construct)h 19(in)h 17(the)h 17(input)h 18(\014le.\).)h 28(In)h 177 644(this)s 19(case,)h 19(the)h 19(section)h 175(the)h 19(name)h 17(of)h 18(the)h 19(\014rst)h 19(macro)h 17(de\014ned)h 19(in)h 18(the)h 19(section.)h 32(This)h 18(feature)h 177 694(streamlines)s 14(the)h 14(input)h 14(\014le,)h 13(a)h -1(v)h -1(oiding)h 12(duplicate)h 14(name)h 13(inconsistencies.)h 177 771(An)s -1(y)h 13(sequence)h 15(of)h 12(prin)h -1(table)h 12(c)h -1(haracters)h 15(can)h 13(b)h 1(e)h 13(used)h 14(in)h 12(the)h 14(section)h 13(name,)h 11(ev)h -1(en)h 14(the)h 13(target)h 14(t)h -1(yp)h 1(esetter's)h 177 821(escap)s 1(e)h 16(sequence)h 16(\(e.g.)h 13(in)h 13(T)h 643 830(E)s 667 821(X,)s 13(\\)h 22("\).)h 177 898(The)s 14(follo)h -1(wing)h 12(example)h 12(demonstrates)h 15(the)h 14(section)h 15(construct.)h 177 1641(In)s 15(the)h 16(ab)h 1(o)h -1(v)h -1(e)h 15(example,)h 13(the)h 16(name)h 14(for)h 14(the)h 16(lev)h -1(el)h 15(A)h 15(section)h 16(is)h 15(pro)h -1(vided)h 15(explicitly)h -3(,)h 13(while)h 15(the)h 15(name)h 14(for)h 177 1691(the)s 15(lev)h -1(el)h 13(B)h 14(section)h 15(will)h 12(b)h 1(e)h 15(inherited)h 14(from)h 12(the)h 15(macro)h 13(name.)h 177 1937(Exp)s 1(erience)h 16(has)h 13(sho)h -1(wn)h 14(that)h 14(one)h 13(of)h 13(the)h 14(most)h 13(comm)h -1(on)h 12(t)h -1(yp)h 1(esetting)h 14(requiremen)h -1(t)h 14(is)h 13(that)h 14(of)h 13(b)h 1(eing)h 13(able)h 177 1987(to)s 16(t)h -1(yp)h 1(eset)h 17(small)h 14(program)h 14(fragmen)h -1(ts)h 14(in)h 16(the)h 16(middle)h 14(of)h 15(the)h 17(do)h 1(cumen)h -1(ting)h 14(free)h 17(text.)h 24(T)h -1(ypically)h 14(there)h 177 2037(is)s 14(a)h 14(frequen)h -1(t)h 15(need)h 15(to)h 14(refer)h 15(to)h 14(program)h 13(iden)h -1(ti\014ers,)h 14(and)h 14(it)h 14(assists)h 15(the)h 15(reader)h 15(to)h 14(ha)h -1(v)h -1(e)h 14(suc)h -1(h)h 15(iden)h -1(ti\014ers)h 177 2087(t)s -1(yp)h 1(eset)h 15(in)h 12(the)h 14(same)h 12(manner)h 12(as)h 13(the)h 14(program)h 11(text)h 14(in)h 12(the)h 14(macro)h 11(de\014nition.)h 18(F)h -3(unnelW)h -3(eb)h 12(V1)h 13(de\014ned)h 14(a)h 177 2136(T)s 200 2145(E)s 223 2136(X)s 13(macro)h 12(for)h 13(this)h 13(\(called)h 35(\))h 13(that)h 13(simply)h 11(t)h -1(yp)h 1(eset)h 14(its)h 13(argumen)h -1(t)h 12(in)h 166(.)h 17(This)h 13(pro)h -1(v)h -1(ed)h 13(so)h 13(useful,)h 177 2186(that)s 14(the)h 15(facilit)h -1(y)h 12(has)h 14(b)h 1(een)h 15(made)h 13(t)h -1(yp)h 1(esetter-indep)h 1(e)h 1(nden)h -1(t)h 16(in)h 13(F)h -3(unnelW)h -3(eb)h 14(V3.)h 177 2263(T)s -3(o)h 13(sp)h 1(ecify)h 14(that)h 13(some)h 13(text)h 14(b)h 1(e)h 14(t)h -1(yp)h 1(eset)h 15(in)h 166(,)h 12(enclose)h 15(the)h 14(text)h 14(in)h 13(curly)h 13(brace)h 15(sp)h 1(ecial)h 13(sequences)h 177 2313(as)s 14(follo)h -1(ws.)h 177 2558(As)s 10(in)h 10(macro)h 8(names,)h 9(section)h 11(names,)h 9(and)h 10(macro)h 8(b)h 1(o)h 1(dies,)h 11(the)h 10(text)h 10(con)h -1(tained)h 10(within)h 9(the)h 10(literal)h 9(construct)h 177 2608(is)s 16(protected)h 19(b)h -1(y)h 16(F)h -3(unnelW)h -3(eb)h 16(from)h 15(an)h -1(y)h 16(non-literal)h 15(in)h -1(terpretation)h 17(b)h -1(y)h 16(the)h 17(t)h -1(yp)h 1(esetter)h 19(and)h 16(the)h 17(user)h 18(is)h 177 2658(free)s 15(to)h 13(enclose)h 93(text)h 14(co)h -1(v)h -1(ered)h 15(b)h -1(y)h 13(the)h 14(de\014nition)h 291(.)h 17(F)h -3(unnelW)h -3(eb)h 13(guaran)h -1(tees)h 15(that,)h 13(no)h 177 2708(matter)s 12(what)h 13(the)h 13(text)h 13(is,)h 12(it)h 12(will)h 12(b)h 1(e)h 13(t)h -1(yp)h 1(eset)h 14(in)h 177(exactly)h 13(as)h 12(it)h 13(app)h 1(ears.)h 18(Ho)h -1(w)h -1(ev)h -1(er,)h 13(the)h 13(text)h 13(will)h 177 2757(b)s 1(e)h 15(\014lled)h 13(and)h 14(justi\014ed)h 14(in)h -1(to)h 13(a)h 14(paragraph)h 13(as)h 14(usual.)h 177 2835(Here)s 15(is)h 14(an)h 14(example)h 12(of)h 14(the)h 14(use)h 15(of)h 13(the)h 15(construct:)h 1042 2940(84)s 14 2 1252 2658 r 85 @eop 86 @bop0 86 @bop1 cmti10.300 sf 1208 2835(distribute)s -2(d)h cmbx12.300 sf 177 1145(3.11.4)s 55(Macros)h cmbx10.300 sf 177 322(3.11.3.3)s 48(Emphasis)h 14(Directiv)h -1(e)h 1338 1295(macro)s 17(name)h 104(macro)h 17(b)h 1(o)h 1(dy)h 440 1345(expression)s 809 2785(additi)s -1(v)h -1(el)h -1(y)h 13(de\014ned)h cmtt10.300 sf 177 42(@C)s 22(The)h 21(@{WOMBAT@})h 19(\(Waste)h 21(Of)h 21(Money,)h 21(Brains,)h 20(And)h 21(Time\))h 21(function)h 177 91(calls)s 21(the)h 21(@{kangaroo@})h 19(input)h 21(function)h 20(which)h 21(has)h 21(been)h 177 141(known)s 21(to)h 21(cause)h 21(keybounce.)h 177 191(This)s 21(keybounce)h 20(can)h 21(be)h 22(dampened)h 20(using)h 21(the)h 21(@{wet_sloth)h -1(@})h 20(subsystem.)h 177 633(emphasise)s 20(=)h 22("@/")h 21(ordinary_te)h -1(xt)h 20("@/")h 177 857(@C)s 22(What)h 21(you)h 21(@/really@/)h 19(need,)h 21(of)h 22(course,)h 20(is)h 21(a)h 22(@/great@/,)h 20(@/big@/,)h 177 906(network)s 21(with)h 20(packets)h 21(just)h 21(flying)h 20(@/everywhere@/)h -1(.)h 177 956(This)s 21(section)h 20(implements)h 20(an)h 22(interface)h 177 1006(to)s 22(such)h 21(a)h 21(@/humungeous@)h -1(/)h 20(network.)h 177 1507(macro)s 21(=)h 22(\("@O")h 20(|)h 22("@$"\))h 21(name)h 21([formal_par)h -1(amet)h -1(er_li)h -1(st])h 352 1556(["@Z"])s 20(["@M"])h 21(["==")h 20(|)h 22("+="])h 21("@{")h 21(expression)h 19("@}")h 1001 1718(@O)s 1024 1768(@$)s 1729 1941(@Z)s 732 2040(@M)s 967 2090(@Z)s 96(@M)h 1032 2462(@M)s 493 2586(==)s 966 2635(+=)s 906 2835(==)s cmr10.300 sf 177 422(The)s 14(emphasis)h 12(directiv)h -1(e)h 14(is)h 13(v)h -1(ery)h 14(simil)h -1(ar)h 12(to)h 13(the)h 14(literal)h 12(directiv)h -1(e)h 14(except)h 15(that)h 13(it)h 13(causes)h 15(its)h 13(argumen)h -1(t)h 12(to)h 177 472(b)s 1(e)h 13(t)h -1(yp)h 1(eset)h 15(in)h 12(an)h 12(emphasised)h 13(manner)h 11(\(e.g.)h 13(italics\).)h 17(Lik)h -1(e)h 12(the)h 13(literal)h 12(directiv)h -1(e,)h 13(the)h 13(emphasis)h 12(directiv)h -1(e)h 177 522(protects)s 16(its)h 14(text)h 14(argumen)h -1(t.)h 177 745(Example:)s 177 1245(The)s 19(third)h 18(category)h 19(of)h 17(construct)h 20(app)h 1(earing)h 18(at)h 18(the)h 19(highest)h 18(syn)h -1(tactic)h 19(lev)h -1(el)h 18(in)h 17(a)h 18(F)h -3(unnelW)h -3(eb)h 18(input)h 177 1295(\014le)s 16(is)h 15(the)h 16(macro)h 14(de\014nition.)h 23(A)h 15(macro)h 14(de\014nition)h 16(binds)h 15(a)h 15(unique)h 288(to)h 15(a)h 177 1345(con)s -1(taining)h 15(an)h 247(consisting)h 16(of)h 15(text,)h 16(calls)h 15(to)h 16(other)h 16(macros,)h 14(and)h 16(formal)h 13(parameters.)h 23(The)h 177 1395(syn)s -1(tax)h 14(for)h 14(a)h 13(macro)h 13(de\014nition)h 13(is)h 14(as)h 14(follo)h -1(ws:)h 177 1668(The)s 21(complexit)h -1(y)h 18(of)h 19(the)h 21(macro)h 18(de\014nition)h 20(syn)h -1(tax)h 20(is)h 20(mostly)h 18(to)h 20(enable)h 20(the)h 21(user)h 21(to)h 19(attac)h -1(h)h 20(v)h -2(arious)h 177 1718(attributes)s 17(to)h 16(the)h 16(macro.)h 23(If)h 16(the)h 16(user)h 17(c)h -1(ho)h 1(oses)h 61(,)h 15(then)h 17(the)h 16(macro)h 15(cannot)h 16(b)h 1(e)h 17(called,)h 16(but)h 16(is)h 15(instead)h 177 1768(attac)s -1(hed)h 15(to)h 14(a)h 14(pro)h 1(duct)h 15(\014le.)h 19(If)h 14(the)h 15(user)h 16(c)h -1(ho)h 1(oses)h 59(,)h 13(then)h 15(the)h 15(macro)h 13(is)h 14(an)h 14(ordinary)h 14(macro)h 13(de\014nition)h 177 1817(that)s 14(is)h 14(not)h 14(attac)h -1(hed)h 14(to)h 14(a)h 13(\014le.)h 177 1891(By)s 13(default,)h 12(a)h 12(non-\014le)h 12(macro)h 11(m)h -1(ust)h 11(b)h 1(e)h 13(in)h -1(v)h -1(ok)h -1(ed)h 12(exactly)h 12(once)h 13(b)h -1(y)h 12(one)h 13(other)h 13(macro.)h 16(Macros)h 13(that)h 13(aren't)h 177 1941(are)s 19(\015agged)h 17(with)h 18(errors)h 20(b)h -1(y)h 17(the)h 19(F)h -3(unnelW)h -3(eb)h 18(analyser.)h 30(Ho)h -1(w)h -1(ev)h -1(er,)h 19(if)h 17(the)h 19(user)h 19(uses)h 19(the)h 81(sequence)h 177 1990(in)s 17(the)h 18(macro)h 16(de\014nition,)h 17(the)h 18(macro)h 16(is)h 17(then)h 18(p)h 1(ermitted)h 17(to)h 17(b)h 1(e)h 18(in)h -1(v)h -1(ok)h -1(ed)h 17(zero)h 18(times,)h 16(as)h 18(w)h -1(ell)h 16(as)h 18(once.)h 177 2040(Simil)s -1(arly)h -4(,)h 14(if)h 15(the)h 17(user)h 17(uses)h 17(the)h 76(sequence)h 18(in)h 16(the)h 16(macro)h 15(de\014nition,)h 16(the)h 16(macro)h 15(is)h 16(p)h 1(ermitted)h 15(to)h 16(b)h 1(e)h 177 2090(called)s 15(man)h -1(y)h 13(times)h 14(as)h 15(w)h -1(ell)h 14(as)h 15(once.)h 22(If)h 15(b)h 1(oth)h 73(and)h 74(are)h 15(presen)h -1(t)h 16(then)h 16(the)h 16(macro)h 13(is)h 15(p)h 1(ermitted)h 15(to)h 177 2140(b)s 1(e)h 15(in)h -1(v)h -1(ok)h -1(ed)h 13(zero,)h 14(one,)h 14(or)h 13(man)h -1(y)h 12(times.)h 177 2213(The)s 15(purp)h 1(ose)h 15(of)h 13(enforcing)h 14(the)h 15(default)h 14(\\exactly)h 14(one)h 14(call")h 13(rule)h 15(is)h 14(to)h 13(\015ag)h 14(pieces)h 15(of)h 14(co)h 1(de)h 15(that)h 14(the)h 15(user)h 177 2263(ma)s -1(y)h 12(ha)h -1(v)h -1(e)h 14(de\014ned)h 14(in)h 14(a)h 13(macro)h 13(but)h 14(not)h 13(ho)h 1(ok)h -1(ed)h 14(in)h -1(to)h 13(the)h 14(rest)h 15(of)h 13(the)h 15(program.)h 16(Exp)h 1(erience)h 16(sho)h -1(ws)h 14(that)h 177 2313(this)s 18(is)h 17(a)h 17(comm)h -1(on)h 16(error.)h 29(Simila)h -1(rly)h -3(,)h 15(it)h 17(can)h 18(b)h 1(e)h 18(dangerous)h 18(to)h 17(m)h -1(ultiply)h 15(in)h -1(v)h -1(ok)h -1(e)h 17(a)h 17(macro)h 16(in)h -1(tended)h 18(to)h 177 2363(b)s 1(e)h 19(in)h -1(v)h -1(ok)h -1(ed)h 17(only)h 18(once.)h 31(F)h -3(or)h 18(example,)h 18(it)h 17(ma)h -1(y)h 17(b)h 1(e)h 18(dangerous)h 19(to)h 18(in)h -1(v)h -1(ok)h -1(e)h 17(a)h 18(scrap)h 19(of)h 18(non-idemp)h 1(oten)h -1(t)h 177 2413(initializatio)s -1(n)h 13(co)h 1(de)h 15(in)h 13(t)h -1(w)h -1(o)h 14(di\013eren)h -1(t)h 15(parts)h 15(of)h 14(the)h 14(main)h 12(function)h 14(of)h 14(a)h 14(program!)h 17(Ho)h -1(w)h -1(ev)h -1(er,)h 14(F)h -3(unnelW)h -3(eb)h 177 2462(will)s 15(not)h 17(generate)h 18(an)h 17(error)h 17(if)h 16(a)h 17(macro)h 15(without)h 77(is)h 16(called)h 17(b)h -1(y)h 16(another)h 17(macro)h 16(that)h 17(is)h 16(called)h 17(more)h 177 2512(than)s 14(once.)h 177 2586(If)s 13(the)h 14(text)h 14(string)h 71(\(or)h 14(nothing\))h 12(follo)h -1(ws)h 12(the)h 14(macro)h 13(name,)h 12(the)h 14(expression)h 14(that)h 14(follo)h -1(ws)h 12(is)h 13(the)h 14(en)h -1(tire)h 177 2635(text)s 17(of)h 15(the)h 17(macro)h 15(b)h 1(o)h 1(dy)h -3(.)h 24(If)h 15(the)h 17(text)h 17(string)h 75(follo)h -1(ws)h 15(the)h 16(macro)h 15(name,)h 15(then)h 17(more)h 15(than)h 16(one)h 16(suc)h -1(h)h 177 2685(de\014nition)s 13(is)h 12(allo)h -1(w)h -1(ed)h 12(\(but)h 13(not)h 13(required\))h 14(in)h 12(the)h 14(do)h 1(cumen)h -1(t)h 12(and)h 13(the)h 14(b)h 1(o)h 1(dy)h 13(of)h 12(the)h 13(macro)h 12(consists)h 14(of)h 12(the)h 177 2735(concatenation)s 17(of)h 17(all)h 15(suc)h -1(h)h 18(expressions)h 18(in)h 16(the)h 18(order)h 17(in)h 17(whic)h -1(h)h 16(they)h 18(o)h 1(ccur)h 18(in)h 16(the)h 17(input)h 17(\014le.)h 27(Suc)h -1(h)h 17(a)h 177 2785(macro)s 12(is)h 12(said)h 13(to)h 12(b)h 1(e)h 14(additiv)h -1(e)h 11(and)h 13(is)h 385(.)h 15(Th)h -1(us)h 13(a)h 13(macro)h 11(b)h 1(o)h 1(dy)h 13(can)h 13(either)h 13(b)h 1(e)h 14(de\014ned)h 177 2835(in)s 14(one)h 15(place)h 15(using)h 14(one)h 15(de\014nition)h 14(\(using)h 58(\))h 14(or)h 15(it)h 14(can)h 15(b)h 1(e)h 218(throughout)h 14(the)h 15(input)h 15(\014le)h 14(in)h 14(a)h 1042 2940(85)s 86 @eop 87 @bop0 87 @bop1 cmti10.300 sf 668 1507(how)s 14(many)h 1529 2259(de\014nition)s cmbx12.300 sf 177 1977(3.11.5)s 55(Expressions)h 177 2580(3.11.6)s 55(Macro)h 19(Calls)h cmbx10.300 sf 177 409(3.11.4.1)s 48(Names)h 177 1076(3.11.4.2)s 48(F)h -4(ormal)h 15(P)h -1(arameter)h 14(Lists)h cmtt10.300 sf 1064 42(+=)s 224(==)h 91(+=)h 558 91(==)s 539 218(@Z)s 93(@M)h 568 268(+=)s 1687 713(@<\\medskip@>)s 177 885(name)s 130(=)h 22("@<")h 21(name_text)h 20("@>")h 177 935(name_text)s 20(=)h 22({ordinary_c)h -1(har)h 20(|)h 21(text_special})h 1481 1181(@1)s 24(@2)h 98(@9)h 177 1729(formal_parame)s -1(ter_l)h -1(ist)h 20(=)h 21("@\(")h 21(formal_parame)h -1(ter)h 20("@\)".)h 177 1779(formal_parame)s -1(ter)h 20(=)h 21("@1")h 21(|)h 22("@2")h 21(|)h 21("@3")h 21(|)h 22("@4")h 21(|)h 21("@5")h 21(|)h 591 1828("@6")s 21(|)h 22("@7")h 21(|)h 21("@8")h 21(|)h 22("@9")h 177 2431(expression)s 20(=)h 21({ordinary_text)h 19(|)h 22(macro_call)h 20(|)h 21(formal_paramet)h -1(er})h cmr10.300 sf 177 42(sequence)s 15(of)h 11(one)h 13(or)h 12(more)h 11(macro)h 11(de\014nitions)h 12(\(using)h 56(\).)h 17(If)h 12(neither)h 69(and)h 68(are)h 13(presen)h -1(t,)h 13(F)h -3(unnelW)h -3(eb)h 177 91(assumes)s 14(a)h 14(default)h 13(of)h 57(.)h 177 169(Macros)s 13(attac)h -1(hed)h 13(to)h 12(pro)h 1(duct)h 13(\014les)h 12(cannot)h 13(b)h 1(e)h 12(additiv)h -1(ely)h 11(de\014ned.)h 19(Additiv)h -1(ely)h 11(de\014ned)h 13(macros)h 12(can)h 12(ha)h -1(v)h -1(e)h 177 218(parameter)s 13(lists)h 13(and)h 69(and)h 69(attributes,)h 14(but)h 13(these)h 14(m)h -1(ust)h 12(b)h 1(e)h 14(sp)h 1(eci\014ed)h 14(only)h 12(in)h 13(the)h 13(\014rst)h 14(de\014nition)h 12(of)h 177 268(the)s 15(macro.)h 16(Ho)h -1(w)h -1(ev)h -1(er,)h 72(m)h -1(ust)h 13(app)h 1(ear)h 14(in)h 13(eac)h -1(h)h 15(de\014nition.)h 177 514(Names)s 16(are)h 16(used)h 18(to)h 16(iden)h -1(tify)h 15(macros)h 15(and)h 17(sections.)h 26(A)h 16(name)h 15(consists)h 18(of)h 15(a)h 16(sequence)h 19(of)h 15(from)h 15(zero)h 17(to)h 177 564(80)s 12(prin)h -1(table)h 13(c)h -1(haracters,)h 14(including)h 12(the)h 13(blank)h 12(c)h -1(haracter.)h 20(End)h 13(of)h 12(line)h 12(c)h -1(haracters)h 15(are)h 13(not)h 13(p)h 1(ermitted)h 12(in)h 177 613(names.)s 19(Names)h 13(are)h 15(case)h 15(sensitiv)h -1(e;)h 15(t)h -1(w)h -1(o)h 14(di\013eren)h -1(t)h 15(macros)h 13(are)h 15(p)h 1(ermitted)h 14(to)h 14(ha)h -1(v)h -1(e)h 15(names)h 13(that)h 14(di\013er)h 15(in)h 177 663(case)s 15(only)h -3(.)h 16(Lik)h -1(e)h 14(free)h 14(text,)h 14(names)h 12(are)h 14(t)h -1(yp)h 1(eset)h 15(b)h -1(y)h 14(F)h -3(unnelW)h -3(eb)h 13(and)h 13(are)h 14(safe)h 14(from)h 12(misin)h -2(terpretation)h 13(b)h -1(y)h 177 713(the)s 17(target)h 16(t)h -1(yp)h 1(esette)h 1(r.)h 26(F)h -3(or)h 16(example,)h 15(it)h 16(is)h 16(quite)h 16(acceptable)h 17(to)h 16(use)h 17(the)h 17(macro)h 14(name)h 177 763(ev)s -1(en)h 15(if)h 13(the)h 14(target)h 15(t)h -1(yp)h 1(esetter)h 16(is)h 14(T)h 764 772(E)s 787 763(X.)s 177 1181(F)s -3(unnelW)h -3(eb)h 13(allo)h -1(ws)h 11(macros)h 12(to)h 13(ha)h -1(v)h -1(e)h 13(up)h 13(to)h 13(nine)h 13(macro)h 11(parameters,)h 13(named)h 56(,)h 56(,)h 12(.)h 7(.)h 7(.)h -1(,)h 57(.)h 17(If)h 12(a)h 13(macro)h 177 1230(do)s 1(es)h 12(not)h 12(ha)h -1(v)h -1(e)h 11(a)h 11(formal)h 9(parameter)h 11(list,)h 11(it)h 11(is)h 12(de\014ned)h 12(to)h 11(ha)h -1(v)h -1(e)h 12(no)h 11(parameters,)h 11(and)h 12(an)h 11(actual)h 11(parameter)h 177 1280(list)s 15(m)h -1(ust)h 15(not)h 15(app)h 1(ear)h 16(at)h 15(the)h 16(p)h 1(oin)h -1(t)h 15(of)h 15(call.)h 22(If)h 15(a)h 16(macro)h 14(has)h 16(a)h 15(formal)h 13(parameter)h 15(list,)h 15(it)h 15(is)h 15(de\014ned)h 17(to)h 177 1330(ha)s -1(v)h -1(e)h 17(one)h 18(or)h 17(more)h 16(parameters,)h 17(and)h 18(a)h 16(corresp)h 1(onding)h 19(actual)h 16(parameter)h 17(m)h -1(ust)h 16(b)h 1(e)h 18(supplied)h 17(for)h 17(eac)h -1(h)h 177 1380(formal)s 12(parameter,)h 13(at)h 13(the)h 15(p)h 1(oin)h -1(t)h 13(of)h 14(call.)h 177 1457(Because)s 19(F)h -3(unnelW)h -3(eb)h 15(parameters)h 17(ha)h -1(v)h -1(e)h 16(predictable)h 17(names,)h 16(the)h 17(only)h 16(informati)h -1(on)h 14(that)h 17(a)h 16(formal)h 14(pa-)h 177 1507(rameter)s 12(list)h 12(need)h 14(con)h -1(v)h -1(ey)h 12(is)h 207(parameters)h 12(a)h 12(macro)h 11(has.)h 18(F)h -3(or)h 12(this)h 12(reason)h 13(a)h 12(formal)h 10(parameter)h 177 1557(list)s 19(tak)h -1(es)h 19(the)h 20(form)h 17(of)h 19(the)h 19(highest)h 20(n)h -1(um)h -1(b)h 1(ered)h 18(formal)h 17(parameter)h 19(desired,)h 21(enclosed)h 20(in)h 19(paren)h -1(theses)h 177 1606(sequences)s 1(.)h 177 2082(Expressions)s 19(are)h 17(F)h -3(unnelW)h -3(eb's)h 16(most)h 16(p)h 1(o)h -1(w)h -1(erful)h 17(form)h 15(of)h 17(expressing)h 18(a)h 16(text)h 18(string.)h 28(Macro)h 17(b)h 1(o)h 1(dies)h 17(are)h 177 2132(de\014ned)s 15(as)h 14(expressions.)h 20(Actual)h 14(parameters)h 14(consist)h 14(of)h 13(expressions.)h 177 2209(An)s 15(expression)h 16(consists)h 16(of)h 14(a)h 14(sequence)h 17(of)h 14(zero)h 16(or)h 14(more)h 14(expression)h 16(elemen)h -1(ts.)h 21(An)h 14(expression)h 16(elemen)h -1(t)h 177 2259(can)s 18(b)h 1(e)h 18(ordinary)h 16(text,)h 19(a)h 17(macro)h 16(call,)h 17(or)h 17(a)h 17(formal)h 15(parameter)h 17(of)h 16(the)h 18(macro)h 204(in)h 17(whic)h -1(h)h 17(the)h 177 2309(formal)s 12(parameter)h 13(o)h 1(ccurs.)h 177 2685(A)s 16(macro)h 14(call)h 15(consists)h 17(of)h 15(a)h 15(name)h 15(optionally)h 13(follo)h -1(w)h -1(ed)h 14(b)h -1(y)h 16(an)h 15(actual)h 15(parameter)h 16(list.)h 22(The)h 16(n)h -1(um)h -1(b)h 1(er)h 15(of)h 177 2735(parameters)s 18(in)h 17(the)h 18(actual)h 18(parameter)h 17(list)h 17(m)h -1(ust)h 17(b)h 1(e)h 18(the)h 19(same)h 16(as)h 18(the)h 18(n)h -1(um)h -1(b)h 1(er)h 17(of)h 18(formal)h 15(parameters)h 177 2785(sp)s 1(eci\014ed)h 18(in)h 15(the)h 16(de\014nition)h 16(of)h 15(the)h 17(macro.)h 22(If)h 16(the)h 16(macro)h 15(has)h 16(no)h 16(formal)h 13(parameter)h 15(list,)h 16(its)h 16(call)h 15(m)h -1(ust)h 177 2835(ha)s -1(v)h -1(e)h 14(no)h 14(actual)h 13(parameter)h 14(list.)h 1042 2940(86)s 87 @eop 88 @bop0 88 @bop1 cmti10.300 sf 739 2368(macr)s -2(o)h 18(de\014nition)h 103(macr)h -2(o)h 19(exp)h -2(ansion)h cmbx12.300 sf 177 1273(3.11.7)s 55(F)h -5(ormal)h 18(P)h -2(arameters)h 177 2272(3.11.8)s 55(Macros)h 19(are)h 19(Static)h cmtt10.300 sf 177 42(macro_call)s 260(=)h 21(name)h 21([actual_param)h -1(eter_)h -1(list])h 177 91(actual_parame)s -1(ter_l)h -1(ist)h 20(=)h 21("@\(")h 21(actpar)h 21({)h 21("@,")h 21(actpar)h 21(})h 21("@\)")h 177 141(actpar)s 348(=)h 21(expression)h 20(|)h 700 191(\()s 22(whitespace)h 20("@""")h 20(expression)h 20("@""")h 21(whitespace)h 19(\))h 177 241(whitespace)s 260(=)h 21({")h 22(")h 21(|)h 22(eol})h 177 629(@@\()h 243 679(@"x:=1;@")s 41(@,)h 243 729(@"x<=10;@")s 19(@,)h 243 779(@"print)s 20("x=%u,)h 20(x^2=%u",x,x*x;)h 243 828(x:=x+1;@+@)s -1(")h 177 878(@\))s 177 978(@@\()s -1(red@,)h -1(green)h -1(@,blu)h -1(e@,ye)h -1(llow@)h -1(\))h 177 1712(@$@@\(@1)s -1(@\)=@{)h -1(A)h 20(walrus)h 21(in)h 21(@1)h 21(is)h 22(a)h 21(walrus)h 21(in)h 21(vain.@})h 177 1762(@$@@\(@1)s -1(@\)=@{)h -1(@@\(S)h -1(@1n@\))h -1(@})h 177 1951(@@\(pai@)s -1(\))h 177 2140(A)s 22(walrus)h 20(in)h 22(Spain)h 20(is)h 22(a)h 21(walrus)h 21(in)h 21(vain.)h 815 2666(vskip)s cmr10.300 sf 177 335(F)s -3(unnelW)h -3(eb)h 15(allo)h -1(ws)h 14(parameters)h 15(to)h 16(b)h 1(e)h 15(passed)h 17(directly)h -3(,)h 15(or)h 15(delimited)h 14(b)h -1(y)h 15(sp)h 1(ecial)h 15(double)h 16(quotes.)h 22(Eac)h -1(h)h 177 385(form)s 15(is)h 16(useful)h 16(under)h 17(di\013eren)h -1(t)h 17(circumstances.)h 26(Direct)h 17(sp)h 1(eci\014cation)h 17(is)h 16(useful)h 16(where)h 18(the)h 17(parameters)h 177 435(are)s 14(short)h 14(and)h 13(can)h 14(b)h 1(e)h 14(all)h 13(placed)h 13(on)h 14(one)h 13(line.)h 18(Double)h 13(quoted)h 14(parameters)h 13(allo)h -1(w)h 12(whitespace)h 15(on)h 13(either)h 177 485(side)s 19(\(that)h 19(is)h 19(not)h 19(considered)h 20(part)h 19(of)h 18(the)h 20(parameter\))h 18(and)h 19(are)h 19(useful)h 19(for)h 19(la)h -1(ying)h 17(out)h 18(rather)h 20(messy)h 177 535(parameters.)s 18(Here)h 15(are)h 15(examples)h 13(of)h 13(the)h 14(t)h -1(w)h -1(o)h 14(forms.)h 177 1072(As)s 15(sho)h -1(wn,)h 13(the)h 14(t)h -1(w)h -1(o)h 14(forms)h 12(ma)h -1(y)h 12(b)h 1(e)h 15(mixed)h 12(within)h 13(the)h 15(same)h 13(parameter)h 13(list.)h 177 1141(Exp)s 1(erience)h 16(has)h 14(sho)h -1(wn)h 14(that)h 14(the)h 14(v)h -2(ast)h 14(ma)h 2(jorit)h -1(y)h 12(of)h 13(macros)h 13(ha)h -1(v)h -1(e)h 14(no)h 13(parameters.)h 177 1368(F)s -3(ormal)h 15(parameters)h 17(can)h 18(app)h 1(ear)h 18(in)h 17(the)h 18(expressions)h 19(formi)h -1(ng)h 16(macro)h 16(b)h 1(o)h 1(dies)h 17(in)h 17(accordance)h 19(with)h 17(the)h 177 1418(syn)s -1(tax)h 21(rules)h 21(de\014ned)h 22(ab)h 1(o)h -1(v)h -1(e.)h 38(A)h 21(formal)h 18(parameter)h 21(expands)h 21(to)h 21(the)h 21(text)h 22(of)h 20(the)h 21(expansion)h 21(of)h 20(its)h 177 1468(corresp)s 1(onding)h 16(actual)h 15(parameter.)h 21(There)h 16(is)h 15(nothing)h 14(prev)h -1(en)h -1(ting)h 16(a)h 15(formal)h 12(parameter)h 15(b)h 1(eing)h 15(pro)h -1(vided)h 177 1518(as)s 15(part)h 16(of)h 14(an)h 15(expression)h 16(that)h 16(forms)h 13(an)h 15(actual)h 15(parameter.)h 21(In)h 16(that)h 15(happ)h 1(ens,)h 16(the)h 15(formal)h 13(parameter)h 177 1568(is)s 15(b)h 1(ound)h 16(to)h 15(the)h 16(actual)h 15(parameter)h 14(of)h 15(the)h 16(calling)h 14(macro,)h 14(not)h 15(the)h 16(called)h 15(macro.)h 21(After)h 16(the)h 15(follo)h -1(wing)h 177 1618(de\014nitions,)s 177 1856(the)s 15(call)h 177 2045(will)s 13(result)h 14(in)h 14(the)h 14(expansion)h 177 2368(In)s 18(F)h -3(unnelW)h -3(eb,)h 18(the)h 18(actions)h 18(of)h 336(and)h 341(o)h 1(ccur)h 19(during)h 17(t)h -1(w)h -1(o)h 18(separate)h 177 2417(phases)s 13(\(parser)h 14(and)h 12(tangle\))h 12(and)h 12(cannot)h 12(b)h 1(e)h 13(in)h -1(terlea)h -1(v)h -1(ed.)h 18(As)h 12(a)h 12(result,)h 13(the)h 13(F)h -3(unnelW)h -3(eb)h 11(macro)h 11(facilit)h -1(y)h 11(is)h 177 2467(completely)s 13(static.)h 18(It)h 14(is)h 14(not)h 14(p)h 1(ossible)h 14(for)h 13(one)h 14(macro)h 13(to)h 14(de\014ne)h 15(another)h 14(while)h 13(the)h 15(\014rst)h 14(macro)h 13(is)h 14(b)h 1(eing)h 177 2517(expanded;)s 18(eac)h -1(h)h 17(m)h -1(ust)h 15(b)h 1(e)h 17(de\014ned)h 18(statically)h -3(.)h 24(It)h 17(is)h 16(not)h 16(p)h 1(ossible)h 17(to)h 16(de\014ne)h 18(a)h 16(macro)h 15(to)h 16(ev)h -1(en)h 17(assist)h 17(in)h 177 2567(the)s 17(de\014nition)h 15(of)h 15(other)h 17(macros.)h 23(Because)h 18(the)h 16(scanner,)h 17(parser,)h 17(analyser,)h 16(and)h 16(tangler)h 16(phases)h 17(are)h 16(all)h 177 2617(in)s -1(v)h -1(ok)h -1(ed)h 14(sequen)h -1(tially)h -3(,)h 13(there)h 15(is)h 14(no)h 15(ro)h 1(om)h 12(for)h 14(feedbac)h -1(k)h 15(of)h 14(de\014nitions)h 14(b)h 1(et)h -1(w)h -1(een)h 16(di\013eren)h -1(t)h 15(lev)h -1(els)h 14(\(e.g.)h 14(the)h 177 2666(user)s 15(cannot)h 14(de\014ne)h 15(a)h 14(macro)h 12(for)h 14(the)h 137(pragma\).)h 177 2735(This)s 17(lac)h -1(k)h 16(of)h 16(p)h 1(o)h -1(w)h -1(er)h 17(is)h 16(fully)h 15(in)h -1(ten)h -1(tional.)h 25(By)h 17(totally)h 15(excluding)h 17(the)h 17(more)h 16(incomprehensible)h 16(w)h -1(a)h -1(ys)h 16(in)h 177 2785(whic)s -1(h)h 13(a)h 14(general)h 13(purp)h 1(ose)h 15(macro)h 12(prepro)h 1(cessor)h 16(can)h 13(b)h 1(e)h 14(used,)h 14(F)h -3(unnelW)h -3(eb)h 13(pro)h -1(vides)h 14(de\014nite)h 14(guaran)h -1(tees)h 177 2835(to)s 14(the)h 14(reader)h 15(of)h 14(its)h 14(input)h 13(\014les:)h 1042 2940(87)s 88 @eop 89 @bop0 89 @bop1 cmmi10.300 sf 887 91(<)s cmsy10.300 sf 239 42(\017)s 239 177(\017)s 239 778(\017)s 239 864(\017)s 239 949(\017)s 239 1035(\017)s 239 1120(\017)s 239 1205(\017)s 239 1291(\017)s 239 1376(\017)s 239 1461(\017)s cmbx10.432 sf 177 343(3.12)s 70(Analyser)h 177 2316(3.13)s 70(T)h -6(angle)h cmtt10.300 sf 984 91(#)s 986 1205(@Z)s 1184 1291(@M)s 177 2051(@@\(@<)s -1(Sloth)h -1(@>@\(W)h -1(alrus)h -1(@\)@\))h 107(@!)h 21(LEGAL)h 64(recursive)h 20(invocation.)h 177 2150(@$@=)s -1(=@{@<)h -1(Teapo)h -1(t@>@})h 194(@!)h 21(ILLEGAL)h 20(recursive)h 20(definition.)h 983 2484(+O)s 1648 2533(@O)s 1034 2659(@O)s cmr10.300 sf 281 42(F)s -3(unnelW)h -3(eb)h 15(guaran)h -1(tees)h 16(that)h 15(a)h 15(piece)h 16(of)h 14(text)h 16(do)h 1(es)h 16(not)h 15(con)h -1(tain)h 15(a)h 15(macro)h 14(call)h 14(unless)h 16(it)h 15(con)h -1(tains)h 281 91(the)s 14(sp)h 1(ecial)h 15(c)h -1(haracter)h 15(follo)h -1(w)h -1(ed)h 12(b)h -1(y)h 60(or)h 36(.)h 281 177(F)s -3(unnelW)h -3(eb)h 13(allo)h -1(ws)h 13(calls)h 13(to)h 14(b)h 1(e)h 15(made)h 12(to)h 14(macros)h 13(that)h 14(are)h 14(de\014ned)h 15(later)h 14(in)h 14(the)h 14(input)h 14(\014le.)h 177 460(The)s 14(e\013ect)h 14(of)h 12(the)h 14(parser)h 14(is)h 13(to)h 13(construct)h 14(a)h 13(macro)h 11(table)h 13(con)h -1(taining)h 12(a)h 13(represen)h -1(tation)h 14(of)h 12(all)h 12(the)h 14(macros)h 177 510(de\014ned)s 19(within)h 17(the)h 19(do)h 1(cumen)h -1(t,)h 18(and)h 17(a)h 18(do)h 1(cumen)h -1(t)h 17(list)h 18(whic)h -1(h)h 17(con)h -1(tains)h 18(a)h 18(complete)h 17(represen)h -1(tation)h 19(of)h 177 560(the)s 18(en)h -1(tire)h 19(do)h 1(cumen)h -1(t.)h 28(If)h 18(there)h 19(are)h 18(no)h 17(error)h 19(diagnostics)h 17(\(or)h 18(w)h -1(orse\))h 18(at)h 18(the)h 18(end)h 18(of)h 17(the)h 18(parser)h 19(run,)h 177 610(F)s -3(unnelW)h -3(eb)h 11(in)h -1(v)h -1(ok)h -1(es)h 12(the)h 12(analyser)h 12(whic)h -1(h)h 11(tests)h 14(for)h 11(the)h 12(follo)h -1(wing)h 9(conditions)h 12(and)h 11(\015ags)h 12(them)h 11(with)h 11(errors)h 177 659(if)s 13(they)h 15(arise.)h 281 778(No)s 14(macros)h 13(de\014ned)h 15(in)h 13(the)h 15(input)h 13(\014le.)h 281 864(No)s 14(macros)h 13(connected)h 15(to)h 14(output)h 14(\014les.)h 281 949(Call)s 13(of)h 13(an)h 14(unde\014ned)h 15(macro.)h 281 1035(Call)s 13(ha)h -1(ving)h 12(the)h 15(wrong)h 13(n)h -1(um)h -1(b)h 1(er)h 14(of)h 13(parameters.)h 281 1120(Call)s 13(of)h 13(a)h 13(macro)h 13(that)h 14(is)h 14(connected)h 15(to)h 14(an)h 14(output)h 14(\014le.)h 281 1205(No)s 14(calls)h 13(made)h 13(to)h 14(a)h 13(macro)h 13(without)h 13(the)h 72(option.)h 281 1291(More)s 14(than)h 14(one)h 14(call)h 13(made)h 13(to)h 14(a)h 13(macro)h 13(without)h 14(the)h 71(option.)h 281 1376(Directly)s 14(or)h 14(indirectly)h 13(recursiv)h -1(ely)h 15(de\014ned)h 15(macros.)h 281 1461(Unnamed)s 13(sections)h 15(that)h 14(con)h -1(tain)h 13(no)h 14(macro)h 13(de\014nitions.)h 177 1581(F)s -3(unnelW)h -3(eb)h 15(p)h 1(erforms)h 14(a)h 15(static)h 15(analysis)h 15(to)h 14(detect)h 17(recursion.)h 23(Unfortunately)h -3(,)h 14(the)h 16(recursion)h 16(detection)h 177 1630(algorithm)s 18(\015ags)h 20(all)h 19(macros)h 19(that)h 20(ha)h -1(v)h -1(e)h 20(an)h 20(in\014nite)h 20(expansion)h 20(rather)h 21(than)h 21(just)h 20(all)h 19(macros)h 19(with)h 20(a)h 177 1680(recursiv)s -1(e)h 15(de\014nition.)h 17(If)h 13(A)h 13(calls)h 13(B,)h 13(and)h 13(B)h 13(calls)h 13(C,)h 13(and)h 13(C)h 13(calls)h 12(B,)h 13(then)h 14(F)h -3(unnelW)h -3(eb)h 13(will)h 11(\015ag)h 13(A)h 13(as)h 13(w)h -1(ell)h 177 1730(as)s 14(B)h 14(and)h 14(C.)h 13(It)h 14(is)h 14(hop)h 1(ed)h 15(that)h 13(this)h 14(problem)h 13(will)h 12(b)h 1(e)h 15(\014xed)h 14(in)h 14(a)h 13(later)h 14(v)h -1(ersion.)h 177 1806(Because)s 17(F)h -3(unnelW)h -3(eb)h 14(do)h 1(es)h 15(not)h 14(pro)h -1(vide)h 15(an)h -1(y)h 14(kind)h 14(of)h 14(conditional)h 13(feature,)h 15(the)h 15(prev)h -1(en)h -1(tion)h 15(of)h 14(recursion)h 177 1856(do)s 1(es)h 15(not)h 14(represen)h -1(t)h 16(a)h 13(curtailmen)h -1(t)h 13(of)h 13(expressiv)h -1(e)h 16(p)h 1(o)h -1(w)h -1(er.)h 177 1932(Macros)s 15(ma)h -1(y)h 12(b)h 1(e)h 14(in)h -1(v)h -1(ok)h -1(ed)h 13(recursiv)h -1(ely)h -3(,)h 14(but)h 14(ma)h -1(y)h 12(not)h 14(b)h 1(e)h 14(recursiv)h -1(e.)h 20(Th)h -1(us:)h 177 2434(If)s 17(the)h 17(scanner,)h 19(parser,)h 18(and)h 17(analyser)h 17(ha)h -1(v)h -1(e)h 17(successfully)h 18(\(i.e.)h 16(with)h 17(no)h 16(errors,)h 19(sev)h -1(ere)h 18(errors,)h 19(or)h 17(fatal)h 177 2484(errors\))s 20(completed,)h 19(and)h 18(the)h 19(T)h -3(angle)h 18(option)h 18(\()h 44(\))h 18(is)h 18(turned)h 20(on)h 18(\(it)h 19(is)h 18(b)h -1(y)h 18(default\),)h 19(then)h 20(the)h 19(T)h -3(angle)h 177 2533(comp)s 1(onen)h -1(t)h 12(of)h 13(F)h -3(unnelW)h -3(eb)h 12(is)h 13(in)h -1(v)h -1(ok)h -1(ed)h 12(to)h 12(generate)h 15(the)h 13(pro)h 1(duct)h 14(\014les)h 13(sp)h 1(eci\014ed)h 15(in)h 12(the)h 70(macros)h 12(of)h 12(the)h 177 2583(input)s 14(\014le.)h 177 2659(The)s 17(op)h 1(eration)h 16(of)h 15(T)h -3(angle)h 15(is)h 16(v)h -1(ery)h 17(simple.)h 23(Eac)h -1(h)h 76(macro)h 15(is)h 16(expanded)h 16(and)h 16(written)h 17(to)h 16(a)h 16(\014le)h 16(of)h 15(the)h 177 2709(same)s 14(name.)h 20(As)h 15(there)h 17(are)h 15(a)h 14(\014nite)h 15(n)h -1(um)h -1(b)h 1(er)h 15(of)h 14(macros,)h 14(and)h 14(the)h 16(analyser)h 15(guaran)h -1(tees)h 16(that)h 15(the)h 15(macro)h 177 2759(structure)s 16(is)h 14(non-recursiv)h -1(e,)h 15(T)h -3(angle)h 13(is)h 13(guaran)h -1(teed)h 15(to)h 13(terminate.)h 177 2835(Three)s 15(remaining)h 12(p)h 1(oin)h -1(ts)h 14(are)h 14(w)h -1(orth)h 14(discussing.)h 1042 2940(88)s 89 @eop 90 @bop0 cmbx12.300 sf [ 40 34 -2 33 42] 82 dc 90 @bop1 cmtt10.300 sf 730 316(+w)s 958 1455(+T)s 366 2785(+=)s cmbx10.432 sf 177 1297(3.14)s 70(W)h -6(ea)h -2(v)h -2(e)h cmbx12.300 sf 177 1735(3.14.1)s 55(T)h -5(arget)h 19(T)h -2(yp)h 2(esetter)h 177 2108(3.14.2)s 55(Cross)h 20(Reference)h 16(Num)h -2(b)h 2(ering)h cmti10.300 sf 1674 1096(expr)s -2(ession)h 1373 1455(o\013)s 1252 2202(numb)s -2(ers)h 923 2369(no)s 13(r)h -2(elation)h 460 2536(se)s -2(ctions)h 352 2635(macr)s -2(o)h 16(de\014nitions)h 1636 2685(macr)s -2(o)h 14(de\014nitions)h 630 2735(macr)s -2(os)h cmr10.300 sf 228 42(1.)s 20(T)h -3(angle)h 12(expands)h 13(macros)h 13(using)h 12(blank)h 12(inden)h -1(tation)h 13(unless)h 13(the)h 14(user)h 14(has)h 13(sp)h 1(eci\014ed)h 15(otherwise)h 14(in)h 12(an)h 281 91(inden)s -1(tation)h 13(pragma)h 12(in)h 14(the)h 14(input)h 14(\014le)h 14(\(see)h 15(Section)h 14(3.10.11.1)h -1(\).)h 228 167(2.)s 20(T)h -3(angle)h 17(k)h -1(eeps)h 20(trac)h -1(k)h 19(of)h 17(the)h 19(length)h 19(of)h 18(the)h 19(lines)h 18(that)h 18(it)h 18(is)h 19(writing)h 17(and)h 19(issues)h 19(an)h 18(error)h 20(if)h 17(an)h -1(y)h 281 217(line)s 14(of)h 13(an)h -1(y)h 14(pro)h 1(duct)h 15(\014le)h 14(that)h 14(it)h 14(generates)h 16(is)h 13(longer)h 14(than)h 14(the)h 15(maxim)h -3(um)h -1(.)h 17(The)h 14(maxim)h -3(um)h 11(is)h 14(the)h 281 266(minim)s -3(um)h 10(of)h 12(a)h 13(v)h -2(alue)h 13(defaulted)h 13(or)h 13(sp)h 1(eci\014ed)h 15(in)h 12(the)h 14(input)h 13(\014le)h 13(\(Section)h 14(3.10.11.)h -1(3\),)h 11(and)h 13(the)h 13(v)h -2(alue)h 281 316(\(if)s 13(an)h -1(y\))h 14(pro)h -1(vided)h 13(b)h -1(y)h 14(the)h 72(comm)h -1(and)h 12(line)h 14(argumen)h -1(t)h 12(\(Section)h 15(3.7.3\).)h 228 392(3.)s 20(It)h 14(is)h 13(w)h -1(orth)h 13(the)h 15(user)h 14(obtaining)h 12(some)h 13(understanding)h 14(of)h 13(the)h 14(resources)h 16(that)h 14(F)h -3(unnelW)h -3(eb)h 13(requires)h 281 441(to)s 14(p)h 1(erform)h 13(its)h 14(task.)h 177 531(When)s 10(F)h -3(unnelW)h -3(eb's)h 10(scanner)h 11(executes,)h 13(it)h 9(reads)h 11(eac)h -1(h)h 10(\014le)h 10(in)h -1(to)h 10(mem)h -1(ory)h 8(where)h 11(it)h 10(is)h 10(k)h -1(ept)h 10(for)h 10(the)h 10(duration)h 177 581(of)s 11(the)h 12(run.)h 18(Th)h -1(us,)h 12(there)h 12(m)h -1(ust)h 11(b)h 1(e)h 12(ro)h 1(om)h 10(in)h 11(memo)h -1(ry)h 10(for)h 11(the)h 12(en)h -1(tire)h 13(input)h 11(\014le,)h 11(including)h 11(all)h 10(include)h 12(\014les.)h 177 631(While)s 16(this)h 17(approac)h -1(h)h 17(ma)h -1(y)h 15(seem)h 17(exp)h 1(ensiv)h -1(e)h 18(in)h 16(memory)h -3(,)h 15(it)h 16(is)h 17(almost)h 15(necessary)h 19(in)h 17(order)h 17(to)h 17(supp)h 1(ort)h 177 680(forw)s -1(ard)h 13(references.)h 20(T)h -3(o)h 12(merely)h 12(scan)h 13(the)h 14(input)h 12(\014le,)h 13(recording)h 13(the)h 14(macro)h 11(names,)h 12(but)h 13(lea)h -1(ving)h 12(the)h 13(text)h 177 730(on)s 14(disk,)h 13(w)h -1(ould)h 13(require)h 15(man)h -1(y)h 12(random)h 12(access)h 16(disk)h 14(seeks.)h 177 797(In)s 15(con)h -1(trast,)h 16(F)h -3(unnelW)h -3(eb)h 15(nev)h -1(er)h 16(builds)h 14(an)h 15(in)h -1(ternal)h 15(represen)h -1(tation)h 17(of)h 14(the)h 16(pro)h 1(duct)h 16(\014le.)h 22(Instead,)h 15(eac)h -1(h)h 177 847(piece)s 13(of)h 11(output)h 12(is)h 11(written)h 12(imm)h -1(ediately)h 9(to)h 12(the)h 12(pro)h 1(duct)h 13(\014le.)h 17(This)h 11(means)h 11(that)h 12(as)h 12(long)h 10(as)h 12(the)h 12(input)h 12(\014le)h 177 897(\014ts)s 15(in)h 13(memory)h -4(,)h 12(the)h 14(pro)h 1(duct)h 15(\014le)h 14(can)h 14(b)h 1(e)h 15(arbitrarily)h 13(large.)h 18(It)h 14(also)h 13(means)h 14(that)h 14(users)h 15(need)h 15(not)h 14(fear)h 14(to)h 177 947(de\014ne)s 14(or)h 13(call)h 12(macros)h 12(that)h 13(they)h 13(kno)h -1(w)h 12(will)h 12(expand)h 13(to)h 12(megab)h -1(ytes)h 12(of)h 13(text.)h 18(Nor)h 13(need)h 13(they)h 14(fear)h 13(placing)h 177 997(a)s 16(call)h 16(to)h 16(suc)h -1(h)h 17(a)h 16(macro)h 15(as)h 16(part)h 16(of)h 16(an)h 16(actual)h 16(parameter.)h 25(F)h -3(unnelW)h -3(eb)h 15(do)h 1(es)h 17(not)h 17(ev)h -1(er)h 17(expand)h 16(actual)h 177 1046(parameters)s 19(in)h -1(ternally)h -3(.)h 31(In)h 18(fact,)h 20(it)h 18(do)h 1(es)h 19(not)h 19(expand)h 19(them)h 18(un)h -1(til)h 17(it)h 19(hits)h 18(the)h 20(corresp)h 1(onding)h 19(formal)h 177 1096(parameter)s 13(during)h 13(its)h 13(expansion)h 13(of)h 13(the)h 14(called)h 12(macro.)h 17(A)h -1(t)h 13(that)h 13(p)h 1(oin)h -1(t,)h 13(it)h 13(lo)h 1(oks)h 12(up)h 14(the)h 212(\(not)h 177 1146(the)s 15(expansion)h 13(of)h 14(the)h 14(expression\))h 15(for)h 14(the)h 14(corresp)h 1(onding)h 15(actual)h 14(parameter,)h 13(and)h 14(starts)h 15(expanding)h 13(it.)h 177 1405(If)s 17(the)h 17(scanner,)h 19(parser,)h 18(and)h 17(analyser)h 17(ha)h -1(v)h -1(e)h 17(successfully)h 18(\(i.e.)h 16(with)h 17(no)h 16(errors,)h 19(sev)h -1(ere)h 18(errors,)h 19(or)h 17(fatal)h 177 1455(errors\))s 17(completed,)h 15(and)h 15(the)h 16(W)h -3(ea)h -1(v)h -1(e)h 15(option)h 14(\()h 44(\))h 15(is)h 16(turned)h 16(on)h 15(\(it)h 15(is)h 77(b)h -1(y)h 15(default\),)h 15(then)h 16(the)h 16(W)h -3(ea)h -1(v)h -1(e)h 177 1505(comp)s 1(onen)h -1(t)h 12(of)h 12(F)h -3(unnelW)h -3(eb)h 11(is)h 13(in)h -1(v)h -1(ok)h -1(ed)h 11(to)h 12(generate)h 14(a)h 12(text)h 13(\014le)h 13(in)h 11(the)h 13(format)h 11(of)h 12(a)h 12(particular)h 12(t)h -1(yp)h 1(esetter.)h 177 1555(The)s 11(result,)h 12(when)h 11(fed)h 11(through)h 11(the)h 12(particular)h 10(t)h -1(yp)h 1(esetter)h 13(and)h 11(prin)h -1(ted,)h 11(is)h 11(a)h 10(fully)h 10(t)h -1(yp)h 1(eset)h 12(represe)h 1(n)h -1(tation)h 177 1605(of)s 13(the)h 15(en)h -1(tire)h 15(input)h 13(\014le)h 14(complete)h 13(with)h 14(cross)h 15(referencing)h 15(informatio)h -1(n.)h 177 1829(Curren)s -1(tly)h -3(,)h 14(F)h -3(unnelW)h -3(eb)h 14(pro)h 1(duces)h 16(do)h 1(cumen)h -1(tation)h 13(\014les)h 15(in)h 14(the)h 15(format)h 12(of)h 14(only)h 14(one)h 14(t)h -1(yp)h 1(esette)h 1(r)h 16(|)h 14(T)h 1883 1838(E)s 1906 1829(X.)s 177 1879(Ho)s -1(w)h -1(ev)h -1(er,)h 13(the)h 14(W)h -3(ea)h -1(v)h -1(e)h 12(pac)h -1(k)h -2(age)h 13(of)h 12(F)h -3(unnelW)h -3(eb)h 12(is)h 13(fairly)h 12(small)h -1(,)h 11(and)h 13(it)h 12(is)h 13(hop)h 1(ed)h 13(that)h 13(it)h 13(can)h 13(b)h 1(e)h 14(rewritten)h 177 1928(so)s 13(as)h 12(to)h 12(pro)h -1(vide)h 12(a)h 12(collection)h 12(of)h 12(t)h -1(yp)h 1(esetter)h 14(mo)h 1(dules)h 11(from)h 11(whic)h -1(h)h 12(the)h 13(user)h 13(will)h 11(b)h 1(e)h 13(able)h 12(to)h 12(c)h -1(ho)h 1(ose)h 13(using)h 177 1978(a)s 14(comm)h -1(and)h 12(line)h 13(argumen)h -1(t.)h 177 2202(When)s 17(F)h -3(unnelW)h -3(eb)h 17(pro)h 1(duces)h 19(its)h 17(t)h -1(yp)h 1(eset)h 18(do)h 1(cumen)h -1(tation,)h 16(it)h 184(eac)h -1(h)h 18(section)h 18(and)h 16(eac)h -1(h)h 18(macro)h 177 2252(de\014nition)s 16(and)h 17(cross)h 18(references)h 19(the)h 18(macro)h 15(de\014nitions.)h 27(The)h 17(exact)h 17(sc)h -1(heme)h 17(used)h 18(has)h 16(b)h 1(een)h 18(carefully)h 177 2302(though)s -1(t)h 14(out.)h 18(Ho)h -1(w)h -1(ev)h -1(er,)h 14(as)h 14(it)h 13(can)h 14(b)h 1(e)h 15(a)h 13(little)h 13(confusing)h 14(to)h 14(the)h 14(b)h 1(eginner,)h 14(it)h 14(is)h 14(explained)h 13(here)h 15(in)h 14(full.)h 177 2369(The)s 11(most)h 10(imp)h 1(ortan)h -1(t)h 9(thing)h 10(is)h 11(that)h 11(there)h 12(is)h 215(b)h 1(et)h -1(w)h -1(een)h 12(the)h 11(macro)h 10(n)h -1(um)h -1(b)h 1(ering)h 9(and)h 11(the)h 11(section)h 177 2419(n)s -1(um)h -1(b)h 1(ering.)h 28(In)h 17(Kn)h -1(uth's)h 18(W)h -3(eb)h 17(there)h 19(are)h 18(only)h 17(section)h 18(n)h -1(um)h -1(b)h 1(ers.)h 29(In)h 18(F)h -3(unnelW)h -3(eb,)h 17(the)h 18(n)h -1(um)h -1(b)h 1(ering)h 16(of)h 177 2469(sections)s 15(and)h 14(macros)h 13(is)h 14(separated.)h 177 2536(In)s 15(F)h -3(unnelW)h -3(eb,)h 170(are)h 16(n)h -1(um)h -1(b)h 1(ered)h 14(hierarc)h -1(hically)h 15(in)h 14(ascending)h 15(order.)h 22(F)h -3(or)h 15(example,)h 13(the)h 16(second)h 177 2586(lev)s -1(el-C)h 18(section)h 20(of)h 18(the)h 20(third)h 18(lev)h -1(el-B)h 19(section)h 20(of)h 18(the)h 19(\014rst)h 20(lev)h -1(el-A)h 18(section)h 20(is)h 19(n)h -1(um)h -1(b)h 1(ered)h 18(\\1.3.2".)h 31(In)h 177 2635(con)s -1(trast,)h 348(are)h 16(n)h -1(um)h -1(b)h 1(ered)h 16(sequen)h -1(tially)h 15(in)h 16(ascending)h 16(order.)h 24(F)h -3(or)h 16(example,)h 15(the)h 16(\014rst)h 177 2685(macro)s 12(de\014nition)h 13(is)h 13(n)h -1(um)h -1(b)h 1(er)h 12(1,)h 12(the)h 14(second)h 14(is)h 13(n)h -1(um)h -1(b)h 1(er)h 13(2,)h 12(and)h 13(so)h 13(on.)h 18(Note)h 13(that)h 13(it)h 13(is)h 177 2735(that)s 18(are)h 18(n)h -1(um)h -1(b)h 1(ered,)h 18(not)h 145(.)h 29(This)h 17(distinction)h 18(is)h 17(necessary)h 20(b)h 1(ecause)h 19(additiv)h -1(e)h 17(macros)h 16(\(i.e.)h 17(the)h 177 2785(ones)s 16(with)h 58(\))h 14(can)h 15(b)h 1(e)h 16(de\014ned)h 16(b)h -1(y)h 14(a)h 15(collection)h 14(of)h 14(partial)h 14(de\014nitions)h 15(scattered)h 17(throughout)h 15(the)h 15(input)h 177 2835(\014le.)s 18(A)h 14(single)h 14(additiv)h -1(e)h 13(macro)h 12(ma)h -1(y)h 12(b)h 1(e)h 15(de\014ned)h 15(in)h 13(de\014nitions)h 14(5,)h 13(67,)h 13(128,)h 13(and)h 14(153.)h 1042 2940(89)s 90 @eop 91 @bop0 91 @bop1 cmti10.300 sf 956 769(nothing)s 1234 2560(not)s cmbx10.432 sf 177 42(3.15)s 70(F)h -6(unnelW)h -6(eb)h 23(Shell)h cmtt10.300 sf 786 1193(+K)s 57(+X)h 1606 1243(fwinit.fws)s 1250 1938(diff)s 672 2835(tolerate)s cmbx12.300 sf 177 167(3.15.1)s 55(In)h -2(tro)h 2(duction)h 177 2082(3.15.2)s 55(Return)h 18(Statuses)h cmbx10.300 sf 366 1018(F)s -4(unnelW)h -4(eb)h 14(command)h 15(shell)h 295 2309(Success)s 295 2385(W)s -4(arning)h 295 2510(Error)s 295 2685(Sev)s -1(ere)h 23(error)h cmr10.300 sf 177 269(One)s 19(of)h 18(the)h 19(goals)h 17(of)h 17(F)h -3(unnelW)h -3(eb)h 18(is)h 18(that)h 18(it)h 18(m)h -1(ust)h 17(b)h 1(e)h 19(extremely)h 18(p)h 1(ortable.)h 31(Huge)h 19(e\013orts,)h 20(desp)h 1(erate)h 177 319(actions,)s 18(and)h 18(great)h 18(sacri\014ces)h 19(w)h -1(ere)h 18(made)h 17(in)h 17(the)h 18(name)h 17(of)h 17(p)h 1(ortabilit)h -1(y)h -3(.)h 27(F)h -3(or)h 17(example,)h 17(F)h -3(unnelW)h -3(eb)h 17(is)h 177 369(written)s 15(in)h 13(C.)h 177 444(An)s 15(equally)h 13(imp)h 1(ortan)h -1(t)h 13(goal)h 13(w)h -1(as)h 15(that)h 14(of)h 14(correctnes)h 1(s)h 17(and)h 14(reliabilit)h -1(y)h -3(.)h 17(T)h -3(o)h 14(this)h 15(end,)h 14(it)h 14(w)h -1(as)h 15(determined)h 177 494(that)s 12(a)h 11(large)h 11(automated)h 10(suite)h 12(of)h 11(test)h 12(programs)h 10(b)h 1(e)h 12(prepared)h 13(to)h 11(assist)h 12(in)h 11(regression)h 13(testing.)h 17(Preparing)h 177 544(the)s 15(test)h 15(suite)h 14(w)h -1(as)h 14(tedious,)h 14(but)h 14(ac)h -1(hiev)h -2(able.)h 17(Automating)h 12(it)h 13(p)h 1(ortably)h 14(w)h -1(as)h 14(more)h 13(di\016cult.)h 177 619(The)s 14(di\016cult)h -1(y)h 12(faced)h 14(w)h -1(as)h 13(that)h 13(if)h 12(F)h -3(unnelW)h -3(eb)h 13(w)h -1(as)h 13(implem)h -1(en)h -1(ted)h 12(in)h 13(the)h 13(form)h 12(of)h 12(a)h 13(utilit)h -1(y)h 12(that)h 13(could)h 13(b)h 1(e)h 177 669(in)s -1(v)h -1(ok)h -1(ed)h 14(from)h 14(the)h 15(op)h 1(erating)h 15(system)h 15(comma)h -1(nd)h 14(language,)h 14(the)h 15(only)h 15(w)h -1(a)h -1(y)h 14(to)h 15(set)h 16(up)h 15(regression)h 16(testing)h 177 719(w)s -1(as)h 11(in)h 10(the)h 11(comma)h -1(nd)h 9(language)h 10(of)h 10(the)h 11(op)h 1(erating)h 11(system)h 10(of)h 10(the)h 11(target)h 11(mac)h -1(hine)h 10(\(shellscripts)h 12(for)h 10(UNIX,)h 177 769(DCL)s 11(for)h 12(VMS,)h 11(batc)h -1(h)h 12(\014les)h 12(for)h 11(MSDOS,)h 11(and)h 158(on)h 11(the)h 12(Macin)h -1(tosh\).)h 18(The)h 12(h)h -1(uge)h 11(v)h -2(ariation)h 10(in)h 11(these)h 177 819(comma)s -1(nd)h 14(languages)h 15(led)h 15(to)h 15(the)h 16(conclusion)h 16(that)h 15(either)h 16(the)h 16(automation)h 13(of)h 15(regression)h 17(testing)h 16(w)h -1(ould)h 177 868(ha)s -1(v)h -1(e)h 18(to)h 19(b)h 1(e)h 19(rewritten)h 20(on)h 18(eac)h -1(h)h 19(target)h 19(mac)h -1(hine,)h 18(or)h 18(a)h 18(small)h 17(comm)h -1(and)h 16(language)h 18(w)h -1(ould)h 18(ha)h -1(v)h -1(e)h 18(to)h 18(b)h 1(e)h 177 918(created)s 18(within)h 15(F)h -3(unnelW)h -3(eb.)h 24(In)h 17(the)h 16(end,)h 17(the)h 17(t)h -1(win)h 15(goals)h 16(of)h 15(p)h 1(ortabilit)h -1(y)h 15(and)h 16(regression)h 17(testing)h 17(w)h -1(ere)h 177 968(considered)s 17(so)h 16(imp)h 1(ortan)h -1(t)h 14(that)h 16(a)h 15(small)h 13(comma)h -1(nd)h 14(shell)h 16(w)h -1(as)h 15(constructed)h 18(inside)h 16(F)h -3(unnelW)h -3(eb.)h 22(This)h 16(is)h 177 1018(called)s 14(the)h 577(,)h 12(or)h 13(just)h 15(\\the)h 14(shell")h 13(for)h 14(short.)h 177 1093(By)s 16(default,)h 15(when)h 17(F)h -3(unnelW)h -3(eb)h 15(is)h 15(in)h -1(v)h -1(ok)h -1(ed,)h 15(it)h 16(do)h 1(es)h 16(not)h 16(en)h -1(ter)h 17(its)h 15(shell.)h 24(If)h 15(just)h 16(giv)h -1(en)h 15(the)h 16(name)h 15(of)h 15(an)h 177 1143(input)s 11(\014le,)h 10(it)h 10(will)h 9(simple)h 9(pro)h 1(cess)h 13(the)h 11(input)h 10(\014le)h 11(in)h 10(the)h 11(normal)h 9(manner)h 9(and)h 11(then)h 11(terminate.)h 16(T)h -3(o)h 10(instruct)h 177 1193(F)s -3(unnelW)h -3(eb)h 10(to)h 10(in)h -1(v)h -1(ok)h -1(e)h 9(its)h 10(shell,)h 10(the)h 64(or)h 64(comm)h -1(and)h 8(line)h 9(option)h 10(m)h -1(ust)h 9(b)h 1(e)h 10(sp)h 1(eci\014ed)h 12(when)h 10(F)h -3(unnelW)h -3(eb)h 177 1243(is)s 12(in)h -1(v)h -1(ok)h -1(ed)h 12(from)h 11(the)h 13(op)h 1(erating)h 12(system.)h 17(It)h 13(is)h 12(also)h 12(in)h -1(v)h -1(ok)h -1(ed)h 12(up)h 1(on)h 12(startup)h 13(if)h 12(the)h 13(\014le)h 243(exists.)h 177 1318(Most)s 16(F)h -3(unnelW)h -3(eb)h 15(users)h 17(will)h 14(nev)h -1(er)h 17(need)h 17(to)h 15(use)h 16(the)h 17(shell)h 15(and)h 16(need)h 16(not)h 16(ev)h -1(en)h 16(kno)h -1(w)h 15(ab)h 1(out)h 16(it.)h 23(There)h 177 1368(are)s 14(four)h 14(main)h 12(uses)h 15(of)h 13(the)h 15(shell:)h 228 1486(1.)s 20(As)h 14(a)h 14(to)h 1(ol)h 13(to)h 14(supp)h 1(ort)h 14(automated)h 13(regression)h 15(testing.)h 228 1570(2.)s 20(As)h 17(a)h 16(dev)h -1(elopmen)h -1(t)h 15(to)h 1(ol)h 15(on)h 16(mac)h -1(hines)h 16(that)h 16(do)h 16(not)h 16(ha)h -1(v)h -1(e)h 16(a)h 16(built)h 16(in)h 16(shell)h 16(\(e.g.)h 15(the)h 17(Macin)h -1(tosh\).)h 281 1620(The)s 14(shell)h 14(can)h 14(b)h 1(e)h 15(used)h 14(to)h 14(pro)h 1(cess)h 16(whole)h 14(groups)h 14(of)h 13(\014les)h 14(automaticall)h -1(y)h -3(.)h 228 1705(3.)s 20(As)h 16(a)h 15(con)h -1(v)h -1(enience.)h 24(A)h 16(user)h 17(w)h -1(orking)h 14(on)h 15(a)h 16(m)h -1(ulti)h -1(-tasking,)h 13(m)h -1(ulti-wi)h -1(ndo)h -1(w)h 13(w)h -1(orkstation)h 15(ma)h -1(y)h 14(wish)h 281 1754(to)s 14(k)h -1(eep)h 15(an)h 14(in)h -1(teractiv)h -1(e)h 14(session)h 15(of)h 14(F)h -3(unnelW)h -3(eb)h 14(going)h 13(in)h 13(one)h 15(windo)h -1(w)h 13(rather)h 15(than)h 14(ha)h -1(ving)h 13(to)h 14(run)h 281 1804(up)s 14(the)h 14(utilit)h -1(y)h 13(eac)h -1(h)h 14(time)h 13(it)h 13(is)h 14(required.)h 228 1889(4.)s 20(As)h 15(a)h 15(con)h -1(v)h -1(enien)h -1(t)h 15(v)h -1(ehicle)h 15(for)h 15(enclosing)h 15(utilities.)h 20(The)h 15(F)h -3(unnelW)h -3(eb)h 15(shell)h 15(con)h -1(tains)h 15(useful)h 15(general)h 281 1938(purp)s 1(ose)h 15(comm)h -1(ands)h 12(suc)h -1(h)h 15(as)h 14(the)h 15(di\013erences)h 16(comm)h -1(and)h 100(.)h 177 2184(The)s 18(hierarc)h -1(h)h -1(y)h 17(of)h 17(diagnostics)h 17(describ)h 1(ed)h 19(in)h 16(Section)h 18(3.5)h 16(is)h 17(also)h 17(used)h 18(in)h 16(the)h 18(shell)h 17(comm)h -1(ands.)h 26(Eac)h -1(h)h 177 2234(shell)s 14(comm)h -1(and)h 12(returns)h 15(a)h 14(status)h 15(whic)h -1(h)h 14(can)h 14(a\013ect)h 15(further)h 14(pro)h 1(cessing.)h 464 2309(status)s 15(is)h 14(the)h 14(normal)h 12(comm)h -1(and)h 12(return)h 15(status.)h 489 2385(status)s 17(is)h 15(returned)h 18(if)h 15(some)h 14(minor)h 14(problem)h 15(arose)h 16(with)h 15(the)h 17(execution)h 16(of)h 15(the)h 295 2435(comma)s -1(nd.)h 426 2510(status)s 17(is)h 17(returned)h 18(if)h 16(a)h 16(signi\014can)h -1(t)h 17(problem)h 15(arises)h 17(during)h 16(the)h 18(execution)h 17(of)h 16(the)h 295 2560(comma)s -1(nd.)h 24(Ho)h -1(w)h -1(ev)h -1(er,)h 17(unlik)h -1(e)h 16(a)h 16(sev)h -1(ere)h 19(error,)h 17(it)h 16(do)h 1(es)h 92(cause)h 18(termination)h 14(of)h 16(the)h 17(en-)h 295 2610(closing)s 14(shellscript.)h 580 2685(status)s 22(is)h 21(returned)h 22(if)h 20(a)h 20(problem)h 20(arises)h 21(during)h 21(the)h 21(execution)h 22(of)h 20(the)h 295 2735(comma)s -1(nd)h 17(that)h 19(prev)h -1(en)h -1(ts)h 20(the)h 19(comm)h -1(and)h 17(from)h 17(deliv)h -1(ering)h 18(on)h 18(its)h 19(\\promise".)h 30(A)h 19(sev)h -1(ere)h 295 2785(error)s 12(causes)h 12(F)h -3(unnelW)h -3(eb)h 10(to)h 10(ab)h 1(ort)h 11(the)h 11(script)h 11(\(and)h 11(an)h -1(y)h 10(stac)h -1(k)h -1(ed)h 11(scripts\))h 12(to)h 10(the)h 11(in)h -1(teractiv)h -1(e)h 295 2835(lev)s -1(el.)h 18(\(Ho)h -1(w)h -1(ev)h -1(er,)h 14(the)h 203(comm)h -1(and)h 12(allo)h -1(ws)h 12(this)h 14(to)h 14(b)h 1(e)h 15(temp)h 1(orarily)h 12(o)h -1(v)h -1(erridden\).)h 1042 2940(90)s 91 @eop 92 @bop0 92 @bop1 cmsy10.300 sf 239 2268(\017)s 239 2408(\017)s 239 2547(\017)s 239 2637(\017)s 239 2827(\017)s cmti10.300 sf 1810 2268(no)s 16(lo)h -2(c)h -2(al)h 281 2318(variables)s cmbx10.300 sf 295 42(F)s -4(atal)h 15(error)h 295 219(Assertion)s 16(error)h cmbx12.300 sf 177 798(3.15.3)s 55(Command)h 17(Line)h 18(Length)h 177 1056(3.15.4)s 55(String)h 19(Substitution)h cmtt10.300 sf 865 497(fw)s 670 596(status)s 1736 1212($0..$9)s 177 1262($A..$Z)s 263 1390(define)s 1234(define)h 177 1742(define)s 21(3)h 21("/root/usr/usr)h -1(s/use)h -1(rs/us)h -1(ers5/)h -1(this)h -1(user/)h -1(workd)h -1(ir/fw)h -1(dir/t)h -1(estdi)h -1(r")h 177 1792(define)s 21(M)h 21("/user/local/r)h -1(ubbis)h -1(h/bin)h -1(/fw")h 177 1841(define)s 21(Q)h 21("You)h 21(don't)h 21(need)h 21(to)h 21(double")h 21(double)h 20(quotes")h 1051 2408(execute)s 722(0)h 438 2458(9)s 1480 2547($$)s 740 2637($/)s 1694 2687(/)s 179(])h 411 2737(:)s 157(\\)h cmr10.300 sf 532 42(status)s 14(is)h 13(returned)h 15(if)h 12(a)h 13(problem)h 12(arises)h 13(that)h 13(is)h 13(so)h 14(serious)h 13(that)h 13(execution)h 14(of)h 295 91(F)s -3(unnelW)h -3(eb)h 10(cannot)h 10(con)h -1(tin)h -1(ue.)h 17(A)h 10(fatal)h 9(error)h 11(causes)h 11(F)h -3(unnelW)h -3(eb)h 9(to)h 10(ab)h 1(ort)h 10(to)h 10(the)h 11(op)h 1(erating)h 295 141(system)s 14(lev)h -1(el.)h 631 219(status)s 17(is)h 16(nev)h -1(er)h 16(returned.)h 26(If)h 15(an)h 16(assertion)h 16(error)h 17(o)h 1(ccurs,)h 17(F)h -3(unnelW)h -3(eb)h 295 269(b)s 1(om)h -1(bs)h 14(out)h 14(ungracefully)h 14(to)h 14(the)h 15(op)h 1(erating)h 15(system.)h 19(Assertion)h 16(errors)h 15(should)h 15(nev)h -1(er)h 15(hap-)h 295 319(p)s 1(en.)h 19(If)h 13(they)h 15(do,)h 13(then)h 15(there)h 15(is)h 14(a)h 13(bug)h 14(in)h 13(F)h -3(unnelW)h -3(eb.)h 177 397(T)s -3(o)h 17(b)h 1(e)h 19(precise,)h 20(the)h 19(status)h 18(returned)h 20(b)h -1(y)h 18(eac)h -1(h)h 18(command)h 16(is)h 17(a)h 18(v)h -1(ector)h 19(of)h 17(n)h -1(um)h -1(b)h 1(ers)h 18(b)h 1(eing)h 18(the)h 18(n)h -1(um)h -1(b)h 1(er)h 177 447(of)s 15(eac)h -1(h)h 16(of)h 15(the)h 16(di\013eren)h -1(t)h 16(kinds)h 15(of)h 15(diagnostic)h 15(generated)h 17(b)h -1(y)h 15(the)h 16(comm)h -1(and.)h 21(Usually)h 14(only)h 15(one)h 15(kind)h 15(of)h 177 497(diagnostic)s 12(is)h 12(generated.)h 19(Ho)h -1(w)h -1(ev)h -1(er,)h 13(the)h 69(comm)h -1(and)h 11(and)h 12(a)h 12(few)h 13(of)h 12(the)h 13(other)h 13(comm)h -1(ands)h 11(can)h 12(generate)h 177 546(more)s 16(than)h 17(one)h 17(kind)h 16(of)h 17(diagnostic.)h 26(These)h 18(status)h 18(v)h -1(ectors)h 18(are)h 17(summed)h 15(in)h -1(ternally)h 16(where)h 18(they)h 18(ma)h -1(y)h 177 596(later)s 13(b)h 1(e)h 14(accessed)h 15(using)h 13(the)h 157(comm)h -1(and.)h 16(Ho)h -1(w)h -1(ev)h -1(er,)h 13(the)h 14(curren)h -1(t)h 14(diagnostic)h 12(state)h 14(ev)h -2(ap)h 1(orates)h 14(as)h 177 646(so)s 1(on)h 14(as)h 14(the)h 15(next)h 14(comm)h -1(and)h 12(is)h 14(encoun)h -1(tered.)h 177 904(The)s 14(maxim)h -2(um)h 10(length)h 14(of)h 13(a)h 14(shell)h 14(comm)h -1(and)h 12(line)h 13(is)h 14(guaran)h -1(teed)h 14(to)h 14(b)h 1(e)h 15(at)h 13(least)h 14(300)h 14(c)h -1(haracters.)h 177 1162(Most)s 18(comm)h -1(and)h 15(shells)h 18(pro)h -1(vide)h 17(some)h 17(form)h 16(of)h 16(string)h 18(substitution)h 18(so)h 17(as)h 18(to)h 17(pro)h -1(vide)h 17(some)h 17(degree)h 18(of)h 177 1212(parameterization.)s 21(The)h 16(F)h -3(unnelW)h -3(eb)h 15(shell)h 15(pro)h -1(vides)h 16(36)h 14(di\013eren)h -1(t)h 17(string)h 15(v)h -2(ariables)h 15(named)h 160(and)h 325 1262(\(case)s 18(insensitiv)h -1(e\).)h 28(Eac)h -1(h)h 17(v)h -2(ariable)h 16(can)h 18(hold)h 16(a)h 17(string)h 17(con)h -1(taining)h 16(an)h -1(y)h 16(sequence)h 20(of)h 16(prin)h -1(table)h 177 1312(c)s -1(haracters)h 16(and)h 14(can)h 14(b)h 1(e)h 14(as)h 14(long)h 13(as)h 14(a)h 14(comm)h -1(and)h 12(line.)h 177 1390(The)s 160(comm)h -1(and)h 12(allo)h -1(ws)h 13(the)h 14(user)h 16(to)h 14(assign)h 13(a)h 14(v)h -2(alue)h 14(to)h 14(these)h 15(v)h -2(ariables.)h 18(The)h 160(comm)h -1(and)h 177 1439(tak)s -1(es)h 15(t)h -1(w)h -1(o)h 13(argumen)h -1(ts.)h 18(The)h 14(\014rst)h 15(is)h 14(the)h 15(digit)h 13(or)h 14(letter)h 15(of)h 13(the)h 15(v)h -2(ariable)h 13(to)h 13(b)h 1(e)h 15(de\014ned.)h 20(The)h 14(second)h 15(is)h 14(a)h 177 1489(double)s 13(quote)h 14(delimited)h 12(string)h 13(b)h 1(eing)h 13(the)h 14(string)h 14(v)h -2(alue)h 12(to)h 14(b)h 1(e)h 14(assigned)h 13(to)h 13(the)h 14(v)h -2(ariable.)h 17(If)h 13(y)h -1(ou)h 13(w)h -1(an)h -1(t)h 13(to)h 177 1539(include)s 14(a)h 14(double)h 13(quote)h 15(c)h -1(haracter)h 15(within)h 13(the)h 15(string,)h 13(y)h -1(ou)h 13(don't)h 14(need)h 15(to)h 13(double)h 14(it.)h 177 1617(Examples:)s 177 1966(Only)s 13(the)h 14(iden)h -1(tifying)h 11(c)h -1(haracter)h 15(of)h 12(the)h 14(v)h -2(ariable)h 12(b)h 1(eing)h 13(assigned)h 13(is)h 13(used)h 14(in)h 13(the)h 13(de\014nition.)h 18(This)h 13(syn)h -1(tax)h 177 2016(is)s 18(a)h 18(simple)h 17(w)h -1(a)h -1(y)h 17(of)h 18(prev)h -1(en)h -1(ting)h 18(the)h 19(v)h -2(ariable)h 17(from)h 16(b)h 1(eing)h 19(substituted)h 19(b)h 1(efore)h 19(it)h 18(has)h 18(a)h 18(c)h -1(hance)h 19(to)h 18(b)h 1(e)h 177 2066(de\014ned!)s 177 2144(The)s 14(follo)h -1(wing)h 12(p)h 1(oin)h -1(ts)h 14(clean)h 14(up)h 14(the)h 14(remaining)h 12(seman)h -1(tic)h 13(details:)h 281 2268(There)s 16(is)h 15(only)h 15(one)h 15(set)h 16(of)h 15(v)h -2(ariables)h 14(and)h 15(they)h 16(are)h 15(global)h 14(to)h 15(all)h 14(shellscripts.)h 23(There)h 16(are)h 439 2318(.)s 281 2408(When)s 20(a)h 21(shellscript)h 21(is)h 20(in)h -1(v)h -1(ok)h -1(ed)h 19(using)h 20(the)h 194(comma)h -1(nd,)h 20(the)h 21(substitution)h 20(v)h -2(ariables)h 281 2458(through)s 50(are)h 14(a\013ected.)h 19(See)h 15(Section)h 14(3.15.7.9)h 12(for)h 13(more)h 13(details.)h 281 2547(If)s 13(y)h -1(ou)h 14(w)h -1(an)h -1(t)h 13(to)h 14(include)h 14(a)h 14(dollar)h 12(sign)h 14(c)h -1(haracter)h 15(in)h 14(a)h 13(comma)h -1(nd)h 12(use)h 15(\\)h 44(".)h 281 2637(F)s -3(unnelW)h -3(eb)h 14(also)h 14(de\014nes)h 15(\\)h 44(")h 14(whic)h -1(h)h 14(translates)h 15(to)h 15(the)h 15(c)h -1(haracter)h 15(that)h 15(separates)h 16(directory)h 15(and)h 281 2687(\014le)s 21(name)h 21(\014elds)h 21(in)h 21(\014le)h 22(names)h 21(on)h 21(the)h 22(host)h 22(mac)h -1(hine.)h 39(F)h -3(or)h 21(example:)h 32(Sun=\\)h 22(",)h 22(V)h -3(ax=\\)h 22(",)h 281 2737(Mac=\\)s 22(",)h 13(PC=\\)h 22(".)h 281 2827(Substitution)s 14(is)h 13(not)h 14(p)h 1(erformed)h 14(recursiv)h -1(ely)h -3(.)h 1042 2940(91)s 92 @eop 93 @bop0 93 @bop1 cmbx12.300 sf 177 42(3.15.5)s 55(Ho)h -2(w)h 20(a)h 19(Command)h 17(Line)h 17(is)h 19(Pro)h 2(cessed)h 177 1343(3.15.6)s 55(Options)h cmtt10.300 sf 921 965(!)s 1383 2002(+F)s 652 2151(fw)s 177 2201(set)s 101(fw)h 177 2393($)s 22(fw)h 21(+k)h 22(+t)h 261(!)h 21(Original)h 20(invocation)h 20(of)h 21(FunnelWeb)h 20(from)h 21(OS.)h 657 2443(!)s 21(Shell)h 21(options)h 20(are)h 21(now)h 22(default)h 20(with)h 21("+t".)h 177 2493(FunnelWeb>fw)s 19(sloth)h 87(!)h 21(Equivalent)h 20(to)h 21(fw)h 22(sloth)h 20(+t.)h 177 2543(FunnelWeb>set)s 19(-l)h 131(!)h 21(Change)h 21(the)h 21(l)h 22(shell)h 20(option.)h 177 2593(FunnelWeb>fw)s 19(sloth)h 21(+q)h 22(!)h 21(Equivalent)h 20(to)h 21(fw)h 22(sloth)h 20(+t)h 22(-l)h 21(+q.)h 177 2642(FunnelWeb>fw)s 19(sloth)h 87(!)h 21(Equivalent)h 20(to)h 21(fw)h 22(sloth)h 20(+t)h 22(-l.)h 286 2835(fw)s cmr10.300 sf 177 158(When)s 13(F)h -3(unnelW)h -3(eb)h 12(reads)h 14(in)h 12(a)h 13(comm)h -1(and)h 11(line)h 12(\(from)h 11(the)h 14(console)h 13(or)h 13(a)h 12(script)h 14(\014le\),)h 13(it)h 12(pro)h 1(cesses)h 15(it)h 13(in)h 12(the)h 177 208(follo)s -1(wing)h 11(sequence)h 1(:)h 228 350(1.)s 20(The)h 14(comm)h -1(and)h 11(line)h 13(is)h 14(c)h -1(hec)h -1(k)h -1(ed)h 14(for)h 13(non-prin)h -1(table)h 13(c)h -1(haracters.)h 20(If)h 13(there)h 14(are)h 14(an)h -1(y)h -3(,)h 12(they)h 14(are)h 14(\015agged)h 281 400(with)s 13(a)h 14(sev)h -1(ere)h 16(error.)h 228 504(2.)s 20(All)h 11(dollar)h 10(string)h 12(substitution)h 12(v)h -2(ariables)h 11(in)h 11(the)h 13(comm)h -1(and)h 10(line)h 11(are)h 12(replaced)h 13(b)h -1(y)h 11(their)h 12(corresp)h 1(ond-)h 281 554(ing)s 15(string.)h 25(The)h 17(comm)h -1(and)h 14(line)h 16(is)h 15(pro)h 1(cesse)h 1(d)h 18(from)h 14(left)h 16(to)h 16(righ)h -1(t.)h 24(Substitutions)h 17(are)h 16(p)h 1(erformed)h 281 604(non)s 14(recursiv)h -1(ely)h -3(.)h 228 708(3.)s 20(A)h -1(t)h 9(this)h 10(p)h 1(oin)h -1(t,)h 9(if)h 9(the)h 10(line)h 9(is)h 9(empt)h -1(y)h -3(,)h 9(or)h 9(consists)h 11(en)h -1(tirely)h 9(of)h 9(blanks,)h 10(it)h 9(is)h 9(ignored)h 10(and)h 9(the)h 10(in)h -1(terpreter)h 281 757(mo)s -1(v)h -1(es)h 13(to)h 13(the)h 15(next)h 14(line.)h 228 861(4.)s 20(A)h 14(sev)h -1(ere)h 15(error)h 15(is)h 14(generated)h 15(if)h 13(the)h 15(line)h 13(at)h 14(this)h 14(stage)h 14(b)h 1(egins)h 14(with)h 14(a)h 14(blank.)h 228 965(5.)s 20(If)h 13(the)h 15(\014rst)h 15(c)h -1(haracter)h 15(of)h 13(the)h 15(line)h 13(is)h 14(\\)h 22(",)h 12(the)h 15(line)h 13(is)h 14(a)h 14(comm)h -1(en)h -1(t)h 12(line)h 14(and)h 14(is)h 13(ignored.)h 228 1069(6.)s 20(The)h 18(run)h 18(of)h 18(non-blanks)h 17(comm)h -1(encing)h 16(at)h 18(the)h 19(start)h 18(of)h 17(the)h 19(line)h 17(is)h 18(compared)h 17(case-insensitiv)h -1(ely)h 281 1119(to)s 15(eac)h -1(h)h 16(of)h 15(the)h 17(legal)h 14(comma)h -1(nd)h 14(v)h -1(erbs.)h 24(If)h 15(the)h 16(command)h 13(is)h 16(illegal,)h 13(a)h 16(sev)h -1(ere)h 17(error)h 16(is)h 16(generated,)h 281 1169(otherwise)s 15(the)h 14(comma)h -1(nd)h 12(is)h 14(pro)h 1(cessed)h 1(.)h 177 1459(The)s 14(F)h -3(unnelW)h -3(eb)h 14(shell)h 14(main)h -2(tains)h 12(three)h 15(sets)h 15(of)h 14(comm)h -1(and)h 12(line)h 13(options.)h 228 1602(1.)s 20(The)h 10(set)h 10(of)h 9(options)h 9(resulting)h 9(from)h 8(applying)h 8(the)h 10(op)h 1(erating)h 9(system)h 9(lev)h -1(el)h 9(comm)h -1(and)h 8(line)h 9(argumen)h -1(ts)h 281 1652(to)s 14(the)h 14(default)h 14(option)h 13(settings.)h 228 1756(2.)s 20(A)h 14(set)h 15(of)h 13(shell)h 14(options)h 13(that)h 14(prev)h -2(ail)h 13(during)h 14(the)h 14(shell)h 14(in)h -1(v)h -1(o)h 1(cation.)h 228 1860(3.)s 20(The)h 14(set)h 15(of)h 13(option)h 13(v)h -2(alues)h 14(activ)h -1(e)h 14(during)h 14(a)h 13(particular)h 14(in)h -1(v)h -1(o)h 1(cation)h 12(of)h 14(F)h -3(unnelW)h -3(eb)h 13(prop)h 1(er.)h 177 2002(When)s 15(F)h -3(unnelW)h -3(eb)h 14(is)h 14(in)h -1(v)h -1(ok)h -1(ed)h 13(from)h 13(the)h 15(op)h 1(erating)h 14(system)h 14(with)h 14(just)h 59(,)h 13(only)h 14(the)h 15(\014rst)h 15(of)h 14(these)h 15(three)h 177 2052(sets)s 19(comes)h 17(in)h -1(to)h 17(existence.)h 30(If)h 18(the)h 18(user)h 18(in)h -1(v)h -1(ok)h -1(es)h 17(the)h 18(F)h -3(unnelW)h -3(eb)h 17(shell,)h 18(the)h 18(shell)h 18(options)h 17(come)h 16(in)h -1(to)h 177 2102(existence)s 19(and)h 17(are)h 18(initiali)h -1(zed)h 16(with)h 17(the)h 18(v)h -2(alue)h 16(of)h 17(the)h 18(\014rst)h 17(set.)h 29(These)h 19(shell)h 17(options)h 16(are)h 18(used)h 18(as)h 17(the)h 177 2151(default)s 14(for)h 14(all)h 13(subsequen)h -1(t)h 73(commands.)h 17(Ho)h -1(w)h -1(ev)h -1(er,)h 14(they)h 15(can)h 14(b)h 1(e)h 15(altered)h 15(using)h 14(the)h 15(script)h 15(comm)h -1(and)h 243 2201(.)s 17(If)h 11(a)h 67(comm)h -1(and)h 10(executed)h 14(in)h 11(a)h 11(shell)h 12(con)h -1(tains)h 12(additional)h 10(comm)h -1(and)h 10(line)h 11(options,)h 11(these)h 13(o)h -1(v)h -1(erride)h 177 2251(the)s 15(shell)h 13(options)h 14(for)h 13(that)h 14(run,)h 14(but)h 14(do)h 14(not)h 14(c)h -1(hange)h 14(the)h 14(shell)h 14(options.)h 18(An)h 14(example)h 13(follo)h -1(ws:)h 177 2785(The)s 14(existence)h 15(of)h 12(the)h 14(shell)h 13(option)h 12(set)h 14(means)h 12(that)h 13(the)h 14(user)h 14(can)h 13(set)h 14(up)h 13(a)h 13(set)h 14(of)h 13(defaults)h 13(to)h 13(b)h 1(e)h 13(applied)h 177 2835(to)s 14(all)h 70(comm)h -1(ands)h 12(issued)h 15(within)h 13(the)h 15(shell.)h 1042 2940(92)s 93 @eop 94 @bop0 94 @bop1 cmti10.300 sf 1625 1062(hasn)s -4('t)h cmbx12.300 sf 177 42(3.15.7)s 55(Shell)h 18(Commands)h cmbx10.300 sf 177 688(3.15.7.1)s 48(Absen)h -1(t)h 177 1234(3.15.7.2)s 48(Co)h 1(dify)h 177 2311(3.15.7.3)s 48(Compare)h cmtt10.300 sf 177 226(shell_command)s 19(=)h 22(absent)h 64(|)h 22(codify)h 20(|)h 22(compare)h 20(|)h 22(define)h 20(|)h 22(diff)h 86(|)h 22(diffsummary)h 19(|)h 526 276(diffzero)s 20(|)h 22(eneo)h 64(|)h 22(execute)h 20(|)h 22(exists)h 20(|)h 22(fixeols)h 20(|)h 22(help)h 173(|)h 526 326(here)s 108(|)h 22(quit)h 64(|)h 22(set)h 108(|)h 22(show)h 64(|)h 22(skipto)h 42(|)h 22(status)h 129(|)h 526 376(tolerate)s 20(|)h 22(trace)h 42(|)h 22(write)h 64(|)h 22(writeu)h 177 425(s)s 22(=)h 21({")h 22("}+)h 267 782(absent)s 177 922(Syntax)s 21(:)h 21(absent)h 21(=)h 21("absent")h 21(s)h 21(filename)h 177 972(Example:)s 20(absent)h 21(result.out)h 262 1329(codify)s 177 1618(Syntax)s 21(:)h 21(codify)h 21(=)h 21("codify")h 21(s)h 21(filename)h 20(s)h 22(filename)h 177 1668(Example:)s 20(codify)h 21(header.tex)h 20(header.c)h 177 1849(Input)s 43(Line:)h 20(\\def\\par{\\leave)h -1(vmode)h -1(\\endg)h -1(raf})h -1(%)h 20(A)h 22("jolly)h 20(good)h 21(hack".)h 177 1899(Output)s 21(Line:)h 20(WX\("\\\\def\\\\par{)h -1(\\\\lea)h -1(vevmo)h -1(de\\\\)h -1(endgr)h -1(af}%)h 19(A)h 22(\\"jolly)h 20(good)h 21(hack\\"."\);)h 265 1989(codify)s 606 2139(codif)s 265 2405(compare)s 177 2595(Syntax)s 21(:)h 21(compare)h 21(=)h 21("compare")h 20(s)h 22(filename)h 20(s)h 21(filename)h 177 2645(Example:)s 20(compare)h 21(result.txt)h 19(answer.txt)h 262 2735(compare)s 1676 2785(diff)s cmr10.300 sf 177 136(This)s 14(section)h 15(describ)h 1(es)h 16(eac)h -1(h)h 14(of)h 13(the)h 15(F)h -3(unnelW)h -3(eb)h 13(shell)h 14(comm)h -1(ands.)h 16(The)h 15(syn)h -1(tax)h 14(is:)h 177 516(As)s 19(a)h 17(rule,)h 19(F)h -3(unnelW)h -3(eb)h 18(shell)h 18(comm)h -1(ands)h 16(return)h 20(sev)h -1(ere)h 19(status)h 19(if)h 17(their)h 19(argumen)h -1(ts)h 17(are)h 18(syn)h -1(tactically)h 177 566(incorrect)s 15(or)h 14(if)h 13(they)h 15(are)h 14(unable)h 14(to)h 13(succes)h 1(sfully)h 15(op)h 1(erate)h 14(on)h 14(argumen)h -1(t)h 13(\014les.)h 177 782(The)s 167(command)h 16(p)h 1(erforms)h 17(no)h 18(action)h 18(except)h 20(to)h 17(return)h 20(a)h 18(status.)h 31(If)h 18(the)h 18(\014le)h 19(sp)h 1(eci\014ed)h 19(in)h 18(its)h 177 832(argumen)s -1(t)h 13(do)h 1(esn't)h 14(exist)h 15(it)h 13(returns)h 15(succes)h 1(s)h 16(status,)h 14(otherwise)h 15(it)h 13(returns)h 16(sev)h -1(ere)h 15(status.)h 177 1062(This)s 16(comm)h -1(and)h 14(is)h 15(useful)h 16(in)h 15(regression)h 17(testing)h 16(for)h 15(making)h 13(sure)h 17(that)h 16(F)h -3(unnelW)h -3(eb)h 135(pro)h 1(duced)h 17(a)h 177 1112(particular)s 14(output)h 14(\014le.)h 177 1329(The)s 159(comm)h -1(and)h 12(tak)h -1(es)h 14(t)h -1(w)h -1(o)h 13(argumen)h -1(ts:)h 17(an)h 14(input)h 14(\014le)h 13(and)h 14(an)h 13(output)h 14(\014le.)h 18(It)h 14(reads)h 15(eac)h -1(h)h 14(line)h 13(of)h 177 1378(the)s 13(input)h 13(\014le)h 13(and)h 12(writes)h 13(a)h 13(corresp)h 1(onding)h 13(line)h 13(to)h 12(the)h 13(output)h 13(\014le.)h 18(The)h 13(corresp)h 1(onding)h 14(line)h 12(consists)h 13(of)h 177 1428(a)s 11(C)h 11(macro)h 10(call)h 10(con)h -1(taining)h 10(a)h 10(string)h 11(con)h -1(taining)h 10(the)h 12(input)h 11(line.)h 16(The)h 12(comm)h -1(and)h 9(con)h -1(v)h -1(erts)h 12(all)h 10(bac)h -1(kslashes)h 177 1478(in)s 13(input)h 14(lines)h 13(to)h 13(double)h 14(bac)h -1(kslashes)h 14(so)h 14(as)h 13(to)h 13(a)h -1(v)h -1(oid)h 13(un)h -1(w)h -1(an)h -1(ted)h 13(in)h -1(terpretations)h 14(b)h -1(y)h 14(the)h 14(C)h 13(compiler.)h 17(It)h 177 1528(also)s 13(con)h -1(v)h -1(erts)h 15(double)h 14(quotes)h 15(in)h 13(the)h 15(line)h 13(to)h 14(bac)h -1(kslashed)h 14(double)h 14(quotes.)h 177 1758(The)s 14(follo)h -1(wing)h 12(example)h 12(demonstrates)h 15(the)h 14(transformation.)h 177 1989(The)s 164(comma)h -1(nd)h 15(w)h -1(as)h 16(in)h -1(tro)h 1(duced)h 17(to)h 17(assist)h 16(in)h 16(the)h 17(dev)h -1(elopmen)h -1(t)h 16(of)h 16(F)h -3(unnelW)h -3(eb.)h 25(It)h 16(is)h 17(used)h 17(to)h 177 2039(con)s -1(v)h -1(ert)h 16(longish)h 14(text)h 16(\014les)h 15(in)h -1(to)h 14(C)h 15(co)h 1(de)h 16(to)h 15(write)h 16(them)h 14(out.)h 21(The)h 16(C)h 15(co)h 1(de)h 16(is)h 15(then)h 16(included)h 15(within)h 14(the)h 177 2089(F)s -3(unnelW)h -3(eb)h 15(C)h 15(program.)h 20(F)h -3(or)h 14(example,)h 14(the)h 15(set)h 16(of)h 15(T)h 1088 2098(E)s 1111 2089(X)s 15(de\014nitions)h 15(that)h 15(app)h 1(ears)h 16(at)h 15(the)h 16(top)h 15(of)h 14(ev)h -1(ery)h 177 2139(do)s 1(cumen)h -1(tation)h 12(\014le)h 14(w)h -1(as)h 123(ied)h 12(and)h 14(inserted)h 14(in)h -1(to)h 13(the)h 14(F)h -3(unnelW)h -3(eb)h 13(co)h 1(de)h 14(so)h 13(that)h 14(F)h -3(unnelW)h -3(eb)h 13(w)h -1(ould)h 177 2188(not)s 14(ha)h -1(v)h -1(e)h 14(to)h 13(lo)h 1(ok)h 13(for)h 14(a)h 13(\014le)h 14(con)h -1(taining)h 13(the)h 15(de\014nitions)h 14(at)h 13(run)h 14(time.)h 177 2405(The)s 187(comm)h -1(and)h 14(tak)h -1(es)h 18(t)h -1(w)h -1(o)h 16(\014lename)h 15(argumen)h -1(ts)h 16(and)h 17(p)h 1(erforms)h 16(a)h 17(binary)h 16(comparison)h 15(of)h 16(the)h 177 2455(t)s -1(w)h -1(o)h 14(\014les.)h 19(If)h 14(the)h 15(\014les)h 14(are)h 15(iden)h -1(tical,)h 13(success)h 17(status)h 15(is)h 14(returned.)h 20(If)h 14(they)h 15(are)h 14(di\013eren)h -1(t,)h 15(sev)h -1(ere)h 16(status)h 15(is)h 177 2504(returned.)s 20(No)h 14(inform)h -1(ation)h 12(ab)h 1(out)h 13(the)h 15(manner)h 13(in)h 13(whic)h -1(h)h 14(the)h 15(\014les)h 14(di\013er)h 14(is)h 14(con)h -1(v)h -1(ey)h -1(ed.)h 177 2735(The)s 180(comma)h -1(nd)h 12(w)h -1(as)h 13(created)h 16(as)h 13(the)h 14(main)h 12(c)h -1(hec)h -1(king)h 14(mec)h -1(hanism)h 11(for)h 13(regression)h 15(testing.)h 18(Ho)h -1(w-)h 177 2785(ev)s -1(er,)h 12(its)h 10(binary)h 10(output)h 11(w)h -1(as)h 10(so)h 1(on)h 10(found)h 10(to)h 11(b)h 1(e)h 11(un)h -1(w)h -1(ork)h -2(able)h 9(and)h 11(the)h 11(more)h 9(sophisticated)h 109(comm)h -1(and)h 177 2835(w)s -1(as)h 14(added)h 14(so)h 14(that)h 14(the)h 15(actual)h 13(di\013erences)h 16(b)h 1(et)h -1(w)h -1(een)h 16(the)h 14(\014les)h 14(could)h 14(b)h 1(e)h 14(examined.)h 1042 2940(93)s 94 @eop 95 @bop0 cmbx10.300 sf [<003FE3F801F03F1C03C03E3E07C07C3E0F807C3E0F807C1C0F807C000F807C000F807C 000F807C000F807C00FFFFFFC0FFFFFFC00F807C000F807C000F807C000F807C000F807C 000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C000F807C 007FE1FFC07FE1FFC0> 32 29 0 28 28] 11 dc 95 @bop1 cmti10.300 sf 1055 1185(app)s -2(ends)h 563 2463(app)s -2(ends)h cmbx10.300 sf 177 42(3.15.7.4)s 48(De\014ne)h 177 1086(3.15.7.5)s 48(Di\013)h cmtt10.300 sf 260 141(define)s 1240(define)h 177 401(Syntax)s 43(:)h 21(define)h 21(=)h 21("define")h 20(s)h 22(letter)h 21(s)h 21("""")h 21(text)h 21("""")h 177 450(Examples:)s 20(define)h 21(3)h 21("/usr/usrs/thi)h -1(suser)h -1(/wor)h -1(kdir/)h -1(fwdir)h -1(/test)h -1(dir")h 395 500(define)s 21(M)h 21("/user/local/r)h -1(ubbis)h -1(h/bi)h -1(n/fw")h 395 550(define)s 21(Q)h 21("You)h 21(don't)h 21(need)h 21(to)h 21(double")h 21(double)h 20(quotes")h 1613 660(define)s 262 833(define)s 264 1185(diff)s 177 1395(Syntax)s 43(:)h 21(diff)h 21(=)h 22("diff")h 20(s)h 22(filename)h 20(s)h 22(filename)h 20(s)h 21(filename)h 20(s)h 22(["ABORT"])h 177 1445(Examples:)s 20(diff)h 21(result.tex)h 20(answer.tex)h 20(diff.log)h 395 1494(diff)s 21($Otest23.out)h 19($Atest23.out)h 20($Ldiff.log)h 19(ABORT)h 269 1604(diff)s 694 1727(diff)s 1102 1777(diff)s 281 2010(diff)s 281 2222(ABORT)s 374(diff)h 281 2303(diff)s 266 2463(diff)s 261 2586(diff)s 1447(compare)h 264 2785(diff)s cmr10.300 sf 177 141(The)s 154(comm)h -1(and)h 9(assigns)h 12(a)h 11(v)h -2(alue)h 11(to)h 11(a)h 11(shell)h 11(string)h 11(substitution)h 12(v)h -2(ariable.)h 16(The)h 154(comm)h -1(and)h 177 191(tak)s -1(es)h 15(t)h -1(w)h -1(o)h 13(argumen)h -1(ts.)h 18(The)h 14(\014rst)h 15(is)h 14(the)h 15(digit)h 13(or)h 14(letter)h 15(of)h 13(the)h 15(v)h -2(ariable)h 13(to)h 13(b)h 1(e)h 15(de\014ned.)h 20(The)h 14(second)h 15(is)h 14(a)h 177 241(double)s 13(quote)h 14(delimited)h 12(string)h 13(b)h 1(eing)h 13(the)h 14(string)h 14(v)h -2(alue)h 12(to)h 14(b)h 1(e)h 14(assigned)h 13(to)h 13(the)h 14(v)h -2(ariable.)h 17(If)h 13(y)h -1(ou)h 13(w)h -1(an)h -1(t)h 13(to)h 177 291(include)s 14(a)h 14(double)h 13(quote)h 15(c)h -1(haracter)h 15(within)h 13(the)h 15(string,)h 13(y)h -1(ou)h 13(don't)h 14(need)h 15(to)h 13(double)h 14(it.)h 177 660(The)s 19(comma)h -1(nd)h 17(in)h -1(terpreter)h 21(expands)h 19(the)h 19(comm)h -1(and)h 17(line)h 18(b)h 1(efore)h 19(it)h 19(executes)h 20(the)h 169(comm)h -1(and.)h 177 710(This)s 18(means)h 17(that)h 17(y)h -1(ou)h 18(can)h 17(de\014ne)h 19(string)h 18(substitution)h 18(v)h -2(ariables)h 17(in)h 17(terms)h 17(of)h 18(eac)h -1(h)h 18(other)h 18(with)h 17(static)h 177 760(binding.)s 177 833(The)s 159(comm)h -1(and)h 12(w)h -1(as)h 13(in)h -1(tro)h 1(duced)h 15(to)h 13(allo)h -1(w)h 12(the)h 15(parameterization)h 12(of)h 14(the)h 14(directories)h 15(in)h -1(v)h -1(olv)h -1(ed)h 12(in)h 177 882(regression)s 15(testing.)h 177 955(See)s 15(Section)h 14(3.15.4)h 12(for)h 14(more)h 13(details.)h 177 1185(The)s 119(comma)h -1(nd)h 14(reads)h 17(in)h 15(t)h -1(w)h -1(o)h 15(text)h 17(\014les)h 16(and)h 173(a)h 16(rep)h 1(ort)h 16(to)h 16(a)h 16(log)h 14(\014le)h 16(con)h -1(taining)h 15(a)h 15(list)h 15(of)h 177 1235(the)s 16(di\013erences)h 17(b)h 1(et)h -1(w)h -1(een)h 16(the)h 15(t)h -1(w)h -1(o)h 15(input)h 14(\014les.)h 21(If)h 15(the)h 15(log)h 14(\014le)h 15(do)h 1(es)h 15(not)h 15(already)h 15(exist,)h 15(an)h 14(empt)h -1(y)h 14(one)h 15(is)h 177 1285(created)s 16(\014rst.)h 177 1604(The)s 129(comm)h -1(and)h 19(p)h 1(erforms)h 20(a)h 20(full)h 19(line-based)h 21(di\013erences)h 23(op)h 1(eration.)h 37(It)h 21(will)h 19(iden)h -1(tify)h 20(di\013eren)h -1(t)h 177 1654(sections)s 15(in)h 14(a)h 13(\014le,)h 14(ev)h -1(en)h 14(if)h 13(they)h 15(are)h 14(of)h 13(di\013ering)h 14(length.)h 177 1727(The)s 19(impl)h -1(em)h -1(en)h -1(tation)h 16(of)h 18(the)h 123(command)h 16(is)h 18(quite)h 18(complicated.)h 29(T)h -3(o)h 17(b)h 1(e)h 19(sure)h 19(that)h 18(it)h 18(is)h 18(at)h 18(least)h 177 1777(getting)s 16(its)h 17(same/di\013eren)h -1(t)h 16(pro)h 1(clamation)h 14(righ)h -1(t,)h 16(the)h 121(comm)h -1(and)h 14(p)h 1(erforms)h 16(a)h 16(binary)h 16(comparison)h 177 1827(as)s 14(an)h 14(extra)h 14(c)h -1(hec)h -1(k.)h 177 1900(The)s 14(follo)h -1(wing)h 12(p)h 1(oin)h -1(ts)h 14(describ)h 1(e)h 15(the)h 15(rules)h 14(for)h 14(determining)h 12(the)h 15(result)h 15(status.)h 228 2010(1.)s 121(ab)h 1(orts)h 14(with)h 14(a)h 13(sev)h -1(ere)h 16(error)h 15(if)h 13(the)h 14(log)h 13(\014le)h 14(cannot)h 14(b)h 1(e)h 15(op)h 1(ened)h 15(or)h 13(created)h 16(for)h 13(app)h 1(ending.)h 228 2091(2.)s 20(An)h 14(ordinary)h 13(error)h 15(is)h 14(generated)h 15(if)h 13(either)h 15(or)h 14(b)h 1(oth)h 14(of)h 13(the)h 15(input)h 13(\014les)h 15(cannot)h 14(b)h 1(e)h 14(op)h 1(ened.)h 228 2172(3.)s 20(If,)h 15(at)h 16(the)h 16(end)h 17(of)h 15(the)h 16(run,)h 16(the)h 17(t)h -1(w)h -1(o)h 15(input)h 15(\014les)h 17(ha)h -1(v)h -1(e)h 15(not)h 16(b)h 1(een)h 17(pro)h -1(v)h -1(en)h 16(to)h 15(b)h 1(e)h 17(iden)h -1(tical,)h 15(and)h 15(the)h 404 2222(k)s -1(eyw)h -1(ord)h 14(is)h 13(presen)h -1(t,)h 116(returns)h 16(sev)h -1(ere)h 15(status.)h 228 2303(4.)s 118(returns)h 13(success)h 14(status)h 12(if)h 11(none)h 11(of)h 11(the)h 12(ab)h 1(o)h -1(v)h -1(e)h 11(conditions)h 11(\(or)h 12(simil)h -1(ar)h 9(conditions\))h 12(o)h 1(ccur,)h 12(ev)h -1(en)h 281 2353(if)s 13(the)h 14(t)h -1(w)h -1(o)h 14(\014les)h 14(are)h 14(di\013eren)h -1(t.)h 177 2463(The)s 123(comm)h -1(and)h 175(its)h 18(di\013erences)h 19(rep)h 1(ort)h 19(rather)h 18(than)h 18(merely)h 16(writing)h 17(it.)h 28(This)h 18(allo)h -1(ws)h 16(a)h 177 2513(regression)s 15(test)h 15(script)h 15(to)h 14(p)h 1(erform)h 13(a)h 13(series)h 16(of)h 13(regression)h 15(tests)h 15(and)h 14(pro)h 1(duce)h 15(a)h 14(rep)h 1(ort)h 15(for)h 13(the)h 15(user.)h 177 2586(The)s 112(comma)h -1(nd)h 11(w)h -1(as)h 12(added)h 13(to)h 12(the)h 13(shell)h 12(after)h 12(it)h 12(had)h 12(b)h 1(ecome)h 12(apparen)h -1(t)h 13(that)h 12(the)h 13(simpler)h 177 2635(comma)s -1(nd)h 13(w)h -1(as)h 14(not)h 15(yielding)h 13(enough)h 15(informati)h -1(on.)h 18(Whereas)h 16(early)h 14(on,)h 14(regression)h 16(testing)h 15(w)h -1(as)h 15(treated)h 177 2685(mainly)s 8(as)h 10(a)h 9(to)h 1(ol)h 10(to)h 10(ensure)h 11(that)h 10(F)h -3(unnelW)h -3(eb)h 10(w)h -1(as)h 10(b)h 1(eing)h 10(p)h 1(orted)h 10(to)h 10(other)h 11(mac)h -1(hines)h 9(correctly)h -3(,)h 11(it)h 10(b)h 1(egan)h 10(to)h 177 2735(place)s 13(an)h 12(increasing)h 13(role)h 13(during)h 12(dev)h -1(elopmen)h -1(t)h 12(in)h 12(iden)h -1(tifying)h 11(the)h 13(e\013ects)h 15(of)h 12(c)h -1(hanges)h 13(made)h 12(to)h 12(the)h 13(co)h 1(de.)h 177 2785(The)s 118(comma)h -1(nd)h 14(supp)h 1(orts)h 16(this)h 15(application)h 14(of)h 15(regression)h 16(testing)h 16(b)h -1(y)h 15(pinp)h 1(oin)h -1(ting)h 14(the)h 16(di\013erences)h 177 2835(b)s 1(et)h -1(w)h -1(een)h 15(nearly-iden)h -1(tical)h 13(text)h 15(\014les.)h 1042 2940(94)s 95 @eop 96 @bop0 cmr7.300 sf [<60607FC07F8044004000400040004F0070C040E0006000700070E070E070E06040E021 C01F00> 16 19 -2 18 17] 53 dc cmr6.300 sf [<20803F002C002000200020002F0030802040006000600060C06080C061801F00> 16 16 -1 15 15] 53 dc cmtt8.300 sf [<07801FE038F07078F038E038FFF8FFF8E000F000703838781FF007C0> 16 14 -2 13 18] 101 dc [ 24 14 0 13 18] 110 dc [<0F803FE038E07070E038E038E038E038E038F078707038E03FE00F80> 16 14 -2 13 18] 111 dc 96 @bop1 cmr7.300 sf 787 2723(5)s cmr6.300 sf 223 2823(5)s cmtt8.300 sf 577 2835(eneo)s cmti10.300 sf 464 2639(establish)s 17(the)h 16(non-existenc)h -2(e)h 18(of)h cmr8.300 sf 241 2835(As)s 12(far)h 11(as)h 11(I)h 12(kno)h -1(w,)h 10(the)h 94(comma)h -1(nd)h 9(is)h 12(original)h -1(.)h cmbx10.300 sf 177 42(3.15.7.6)s 48(Di\013summary)h 177 918(3.15.7.7)s 48(Di\013zero)h 177 1695(3.15.7.8)s 48(Eneo)h 509 2439(E)s 227(N)h 60(E)h 160(O)h cmtt10.300 sf 264 160(diffsummary)s 1093 259(diffzero)s 177 454(Syntax)s 43(:)h 21(diffsummary)h 20(=)h 21("diffsummary")h 177 504(Examples:)s 20(diffsummary)h 263 649(diffsummary)s 634 749(diff)s 261 1036(diffzero)s 1094(diff)h 90(diffsummary)h 177 1231(Syntax)s 43(:)h 21(diffzero)h 20(=)h 22("diffzero")h 177 1281(Examples:)s 20(diffzero)h 268 1426(diffzero)s 263 1814(eneo)s 605 1913(eneo)s 177 2058(Syntax)s 43(:)h 21(eneo)h 21(=)h 22("eneo")h 20(s)h 22(filename)h 177 2108(Examples:)s 20(eneo)h 21(result.out)h 267 2253(eneo)s cmr10.300 sf 177 160(The)s 271(command)h 13(writes)h 16(a)h 16(short)h 16(rep)h 1(ort)h 16(to)h 16(the)h 16(console)h 16(giving)h 14(the)h 16(n)h -1(um)h -1(b)h 1(er)h 15(of)h 15(di\013erence)h 177 209(op)s 1(erations)h 20(that)h 19(ha)h -1(v)h -1(e)h 20(tak)h -1(en)h 19(place)h 20(and)h 19(ho)h -1(w)h 19(man)h -1(y)h 18(of)h 19(the)h 20(pairs)h 19(of)h 19(\014les)h 20(compared)h 19(w)h -1(ere)h 20(iden)h -1(tical.)h 177 259(Coun)s -1(ting)h 14(starts)h 15(at)h 14(the)h 15(most)h 13(recen)h -1(t)h 16(execution)h 15(of)h 14(a)h 202(command,)h 12(or)h 14(if)h 13(there)h 16(has)h 15(b)h 1(een)h 15(none,)h 177 309(when)s 15(F)h -3(unnelW)h -3(eb)h 13(started)h 15(up.)h 177 649(The)s 269(comm)h -1(and)h 13(w)h -1(as)h 14(added)h 15(so)h 14(as)h 14(to)h 15(allo)h -1(w)h 12(regression)h 16(testing)h 15(scripts)h 15(to)h 14(displa)h -1(y)h 14(a)h 14(sum-)h 177 699(mary)s 13(of)h 15(the)h 15(results)h 16(of)h 14(the)h 16(test.)h 22(If)h 14(the)h 16(summ)h -1(ary)h 13(indicates)h 15(that)h 15(no)h 15(pair)h 14(of)h 14(\014les)h 15(di\013ered,)h 16(then)h 15(there)h 177 749(is)s 14(no)h 14(need)h 14(to)h 14(lo)h 1(ok)h 13(in)h 14(the)h 115(log)h 13(\014le.)h 177 1036(The)s 199(comma)h -1(nd)h 11(zeros)h 13(the)h 13(di\013eren)h -1(t)h 13(summa)h -1(ry)h 11(coun)h -1(ters)h 13(used)h 13(b)h -1(y)h 12(the)h 112(and)h 177 1086(comma)s -1(nds.)h 177 1426(The)s 214(command)h 17(w)h -1(as)h 20(added)h 20(so)h 20(as)h 20(to)h 19(allo)h -1(w)h 18(regression)h 21(testing)h 20(shellscripts)h 21(to)h 20(zero)h 20(their)h 177 1476(di\013erences)s 16(coun)h -1(ters)h 14(at)h 13(the)h 14(start)h 14(of)h 12(a)h 13(run.)h 18(This)h 13(allo)h -1(ws)h 12(testers)h 16(to)h 13(in)h -1(v)h -1(ok)h -1(e)h 12(the)h 14(same)h 12(regression)h 14(testing)h 177 1526(script)s 15(t)h -1(wice)h 14(in)h 13(one)h 15(in)h -1(teractiv)h -1(e)h 14(session)h 15(without)h 13(receiving)h 14(an)h 14(in\015ated)h 14(di\013erences)h 16(summa)h -1(ry)h -3(.)h 177 1814(The)s 116(command)h 12(tak)h -1(es)h 15(one)h 14(\014lename)h 14(argumen)h -1(t.)h 18(If)h 14(the)h 15(\014le)h 14(do)h 1(es)h 15(not)h 15(exist,)h 14(no)h 14(action)h 14(is)h 15(tak)h -1(en.)h 19(If)h 177 1863(the)s 14(\014le)h 13(do)h 1(es)h 14(exist,)h 13(it)h 13(is)h 12(deleted.)h 19(In)h 13(b)h 1(oth)h 14(cases)h 14(success)h 16(status)h 13(is)h 13(returned.)h 20(Ho)h -1(w)h -1(ev)h -1(er,)h 13(if)h 12(the)h 14(\014le)h 13(exists)h 177 1913(and)s 14(cannot)h 14(b)h 1(e)h 14(deleted,)h 116(returns)h 15(sev)h -1(ere)h 16(status.)h 177 2253(The)s 124(comm)h -1(and)h 16(w)h -1(as)h 18(added)h 19(so)h 18(as)h 18(to)h 18(allo)h -1(w)h 17(regression)h 19(testing)h 19(scripts)h 19(to)h 18(ensure)h 20(that)h 18(existing)h 177 2303(output)s 19(\014les)h 19(w)h -1(ere)h 20(not)h 19(presen)h -1(t)h 20(b)h 1(efore)h 20(pro)h 1(ceeding)h 20(with)h 18(a)h 19(test)h 20(run.)h 33(If)h 19(F)h -3(unnelW)h -3(eb)h 18(w)h -1(ere)h 20(to)h 19(fail)h 17(to)h 177 2353(generate)s 15(an)h 14(output)h 14(\014le,)h 13(it)h 14(w)h -1(ould)h 13(b)h 1(e)h 15(extremely)h 13(undesirable)h 14(for)h 14(the)h 15(old)h 13(v)h -1(ersion)h 14(to)h 13(b)h 1(e)h 15(used.)h 177 2439(ENEO)s 16(stands)h 17(for)h 46(stablish)h 15(the)h 53(on)h 47(xistence)h 53(f.)h 22(Most)h 16(op)h 1(erating)h 15(systems)h 16(pro)h -1(vide)h 15(a)h 16(comm)h -1(and)h 177 2489(to)s 15(delete)h 16(\014les.)h 23(T)h -1(ypically)h 13(these)h 17(comm)h -1(ands)h 14(are)h 15(v)h -1(erbs)h 16(suc)h -1(h)h 16(as)h 15(\\delete",)h 16(\\remo)h -1(v)h -1(e",)h 14(and)h 15(\\kill".)h 19(As)h 16(a)h 177 2539(consequence)s 1(,)h 16(the)h 16(designers)h 16(of)h 14(delete)h 16(commands)h 13(usually)h 14(consider)h 16(the)h 15(command)h 13(to)h 14(ha)h -1(v)h -1(e)h 15(failed)h 14(if)h 14(it)h 177 2589(fails)s 12(to)h 13(\014nd)h 13(the)h 13(\014le)h 13(to)h 13(b)h 1(e)h 13(deleted.)h 19(Ho)h -1(w)h -1(ev)h -1(er,)h 13(in)h 13(m)h -1(y)h 11(exp)h 1(erience,)h 15(the)h 13(most)h 12(comm)h -1(on)h 11(use)h 14(for)h 12(the)h 14(delete)h 177 2639(comma)s -1(nd)h 14(is)h 16(to)h 564(one)h 16(or)h 16(more)h 14(\014les.)h 24(T)h -1(ypically)h -3(,)h 14(a)h 16(script)h 16(is)h 16(starting)h 16(up)h 177 2688(and)s 15(needs)h 17(to)h 15(clear)h 15(the)h 16(air)h 15(b)h 1(efore)h 16(getting)h 15(started.)h 23(If)h 15(the)h 16(\014les)h 15(are)h 16(there,)h 16(they)h 16(should)h 15(b)h 1(e)h 16(deleted;)h 17(if)h 177 2738(they)s 15(are)h 14(not,)h 13(then)h 15(that's)h 14(OK)h 14(to)h 1(o.)h 1042 2940(95)s 709 2 177 2796 r 96 @eop 97 @bop0 cmr6.300 sf [<0780184030C060C06000C000CF00F080E040C060C060C060406060C030801F00> 16 16 -1 15 15] 54 dc cmr7.300 sf [<07C00C201070207060006000C000CF00D0C0E060C020C030C030C03040306020206010 C00F00> 16 19 -2 18 17] 54 dc cmtt8.300 sf [ 16 26 -2 22 18] 92 dc 97 @bop1 cmr6.300 sf 223 2783(6)s cmr7.300 sf 1479 2662(6)s cmtt8.300 sf 1714 2795(\\n)s cmbx10.300 sf 177 42(3.15.7.9)s 48(Execute)h 177 1421(3.15.7.10)s 48(Exists)h 177 1987(3.15.7.11)s 48(Fixeols)h cmr8.300 sf 241 2795(Note:)s 18(A)h 13(nativ)h -1(e)h 12(EOL)h 13(can)h 13(b)h 1(e)h 12(inserted)h 11(in)h -1(to)h 12(a)h 13(text)h 12(\014le)h 12(in)h 13(a)h 13(p)h 1(ortable)h 11(manne)h -1(r)h 11(simply)h 12(b)h -1(y)h 12(writing)h 12(\\)h 36(")h 12(to)h 13(the)h 12(text)h 177 2835(output)s 10(stream.)h cmtt10.300 sf 268 138(execute)s 588 237($1)s 29($2)h 108($9)h 701($1)h 71($9)h 1167 287("")s 29($0)h 569 387(.fws)s 177 485(Syntax)s 43(:)h 21(execute)h 20(=)h 22("execute")h 20(s)h 22(filename)h 20({argument_s)h -1(tring)h -1(})h 177 534(Examples:)s 20(execute)h 20(megatest.fws)h 20(/usr/users/)h -1(ross/)h -1(fwtes)h -1(t)h 20(!)h 395 584(execute)s 20(sloth)h 177 780($0)s 22(=)h 21("")h 177 829($1)s 22(=)h 21("/usr/users/r)h -1(oss/f)h -1(wtest)h -1(")h 177 879($2)s 22(=)h 21("!")h 177 929($3)s 22(=)h 21("")h 177 979(...)s 177 1029($9)s 22(=)h 21("")h 263 1246(execute)s 267 1517(exists)s 177 1665(Syntax)s 21(:)h 21(exists)h 21(=)h 21("exists")h 21(s)h 21(filename)h 177 1714(Example:)s 20(exists)h 21(test6.fw)h 261 2083(fixeols)s 177 2331(Syntax)s 43(:)h 21(fixeols)h 20(=)h 22("fixeols")h 20(s)h 22(filename)h 20([s)h 21(filename])h 177 2380(Examples:)s 20(fixeols)h 20(imported.hak)h 20(result.kln)h 395 2430(fixeols)s 20(sloth.dat)h 260 2528(fixeols)s 319 2727(X)s 106(ABCD)h cmr10.300 sf 177 138(The)s 191(comma)h -1(nd)h 17(causes)h 21(a)h 19(sp)h 1(eci\014ed)h 20(text)h 20(\014le)h 19(to)h 19(b)h 1(e)h 19(executed)h 21(as)h 19(a)h 19(F)h -3(unnelW)h -3(eb)h 19(shellscript.)h 177 188(The)s 17(\014rst)h 18(argumen)h -1(t)h 15(is)h 17(the)h 17(name)h 16(of)h 16(the)h 17(script)h 17(\014le.)h 27(The)h 17(remaining)h 15(argumen)h -1(ts)h 16(are)h 17(assigned)h 17(to)h 16(the)h 177 237(substitution)s 18(v)h -2(ariables)h 61(,)h 61(,)h 17(.)h 7(.)h 7(.)h -1(,)h 62(.)h 28(Substitution)h 17(v)h -2(ariables)h 17(in)h 17(the)h 18(range)h 79(to)h 78(that)h 18(do)h 17(not)h 177 287(corresp)s 1(ond)h 14(to)h 12(an)h 12(argumen)h -1(t)h 11(are)h 13(set)h 13(to)h 12(the)h 13(empt)h -1(y)h 11(string)h 56(.)h 73(is)h 12(set)h 13(to)h 12(the)h 13(empt)h -1(y)h 11(string)h 12(regardless.)h 177 337(The)s 16(execute)h 17(comm)h -1(and)h 13(can)h 16(b)h 1(e)h 15(used)h 16(recursiv)h -1(ely)h -3(,)h 16(allo)h -1(wing)h 13(shell)h 15(scripts)h 16(to)h 15(in)h -1(v)h -1(ok)h -1(e)h 14(eac)h -1(h)h 16(other.)h 23(A)h 15(\014le)h 177 387(extension)s 15(default)h 13(of)h 14(\\)h 88(")h 12(\(F)h -3(unnelW)h -3(eb)h 14(Script\))h 14(applies)h 14(to)h 13(script)h 15(\014les.)h 177 682(The)s 14(\014rst)h 15(example)h 13(ab)h 1(o)h -1(v)h -1(e)h 13(will)h 13(result)h 14(in)h 14(the)h 14(follo)h -1(wing)h 12(substitution)h 14(v)h -2(ariable)h 12(assignmen)h -1(ts.)h 177 1126(It)s 16(should)h 15(b)h 1(e)h 15(stresse)h 1(d)h 17(that)h 15(there)h 17(are)h 16(no)h 15(lo)h 1(cal)h 14(v)h -2(ariables)h 15(in)h 15(the)h 15(F)h -3(unnelW)h -3(eb)h 15(comma)h -1(nd)h 14(language;)h 14(the)h 177 1176(v)s -2(ariables)h 13(ab)h 1(o)h -1(v)h -1(e)h 14(are)h 14(globally)h 12(mo)h 1(di\014ed.)h 177 1246(The)s 183(comm)h -1(and)h 13(w)h -1(as)h 14(added)h 15(to)h 15(allo)h -1(w)h 13(the)h 15(creation)h 16(of)h 14(sub-scripts)h 16(to)h 15(test)h 15(F)h -3(unnelW)h -3(eb)h 15(in)h 14(par-)h 177 1296(ticular)s 14(w)h -1(a)h -1(ys.)h 177 1517(The)s 167(command)h 16(p)h 1(erforms)h 17(no)h 18(action)h 18(except)h 20(to)h 17(return)h 20(a)h 18(status.)h 31(If)h 18(the)h 18(\014le)h 19(sp)h 1(eci\014ed)h 19(in)h 18(its)h 177 1567(argumen)s -1(t)h 13(exists)h 15(it)h 13(returns)h 15(succes)h 1(s)h 16(status,)h 14(otherwise)h 15(it)h 13(returns)h 16(sev)h -1(ere)h 15(status.)h 177 1812(This)s 10(comm)h -1(and)h 8(is)h 10(useful)h 10(in)h 10(regression)h 11(testing)h 10(for)h 10(ensuring)h 10(that)h 10(F)h -3(unnelW)h -3(eb)h 10(has)h 10(pro)h 1(duced)h 11(a)h 10(particular)h 177 1862(output)s 14(\014le.)h 177 2083(The)s 179(comm)h -1(and)h 11(tak)h -1(es)h 13(t)h -1(w)h -1(o)h 12(\014lename)h 12(argumen)h -1(ts:)h 16(an)h 13(input)h 12(\014le)h 13(and)h 13(an)h 12(output)h 13(\014le.)h 18(It)h 13(reads)h 13(in)h 177 2133(the)s 12(input)h 11(\014le)h 11(and)h 11(writes)h 12(it)h 10(to)h 11(the)h 12(output)h 11(\014le)h 11(c)h -1(hanging)h 11(all)h 9(the)h 12(end)h 12(of)h 10(line)h 11(con)h -1(trol)h 11(c)h -1(haracter)h 12(sequences)h 177 2183(to)s 16(the)h 16(lo)h 1(cal)h 15(format.)h 22(It)h 15(can)h 16(also)h 15(tak)h -1(e)h 16(one)h 16(\014lename)h 15(argumen)h -1(t,)h 14(in)h 15(whic)h -1(h)h 16(case)h 17(it)h 15(replaces)h 17(the)h 16(target)h 177 2233(\014le)s 14(with)h 14(its)h 13(transformation.)h 177 2528(The)s 176(comm)h -1(and)h 9(w)h -1(orks)h 12(b)h -1(y)h 11(parsing)h 11(the)h 12(input)h 11(\014le)h 11(in)h -1(to)h 11(alternating)h 10(runs)h 12(of)h 11(prin)h -1(table)h 11(c)h -1(haracters)h 177 2578(\(ASCI)s 1(I)h 13(20)h 12(to)h 12(ASCI)h 1(I)h 13(126\))h 11(and)h 13(runs)h 13(of)h 11(non-prin)h -1(table)h 12(c)h -1(haracters)h 14(\(all)h 12(the)h 13(others\).)h 18(It)h 13(then)h 13(parses)h 13(eac)h -1(h)h 177 2628(run)s 13(of)h 12(non-prin)h -1(table)h 11(c)h -1(haracters)h 14(from)h 11(left)h 12(to)h 12(righ)h -1(t)h 12(in)h -1(to)h 11(subruns)h 14(of)h 12(non-prin)h -1(tables)h 12(not)h 12(con)h -1(taining)h 11(the)h 177 2677(same)s 14(c)h -1(haracter)h 16(t)h -1(wice.)h 22(It)h 15(then)h 15(replaces)h 16(eac)h -1(h)h 16(subrun)h 16(with)h 14(a)h 15(nativ)h -1(e)h 14(EOL.)h 34(F)h -3(or)h 14(example,)h 13(if)h 15(a)h 14(nativ)h -1(e)h 177 2727(EOL)s 14(is)h 36(,)h 13(and)h 115(are)h 14(non-prin)h -1(table)h 14(c)h -1(haracters,)h 15(and)h 14(the)h 14(\014le)h 14(to)h 14(b)h 1(e)h 14(con)h -1(v)h -1(erted)h 15(is)h 1042 2940(96)s 709 2 177 2756 r 97 @eop 98 @bop0 98 @bop1 cmsy10.300 sf 239 1637(\017)s 239 1732(\017)s 239 1827(\017)s 239 1922(\017)s 239 2017(\017)s 239 2112(\017)s cmbx10.300 sf 177 985(3.15.7.12)s 48(Fw)h 177 2263(3.15.7.13)s 48(Help)h cmtt10.300 sf 177 42(thisABisABCDa)s -1(nABAB)h -1(examp)h -1(leABC)h -1(CCof)h 19(the)h 22(conversion)h -1(.)h 272 173(fixeols)s 177 304(thisXisXanXXe)s -1(xampl)h -1(eXXXo)h -1(f)h 20(the)h 21(conversion.)h 265 435(fixeols)s 1413 684(fixeols)s 1235 783(fixeols)s 260 1095(fw)s 177 1276(Syntax)s 43(:)h 21(fw)h 21(=)h 22("fw")h 21(s)h 22(ordinary_fu)h -1(nnelw)h -1(eb_c)h -1(omman)h -1(d_lin)h -1(e)h 177 1325(Examples:)s 20(fw)h 21(sloth)h 21(+t)h 22(+d)h 395 1375(fw)s 21(-l)h 22(walrus)h 808 1506(fw)s 366 1732(F)s 366 1827(K)s 25(H)h 106(X)h 366 1922(J)s 762 2017(fw)s 264 2373(help)s 795 2423(+H)s 177 2554(Syntax)s 43(:)h 21(help)h 21(=)h 22("help")h 20([s)h 22(help_messag)h -1(e_na)h -1(me])h 177 2604(Examples:)s 20(help)h 395 2654(help)s 21(commands)h cmr10.300 sf 177 173(then)s 181(w)h -1(ould)h 13(pro)h 1(duce)h 177 435(The)s 186(command)h 14(w)h -1(as)h 17(devised)h 17(to)h 17(solv)h -1(e)h 16(the)h 18(problem)h 15(created)h 18(sometim)h -1(es)h 16(when)h 17(text)h 17(\014les)h 17(are)h 177 485(mo)s -1(v)h -1(ed)h 13(from)h 12(one)h 14(mac)h -1(hine)h 13(to)h 14(another)h 15(\(e.g.)h 13(with)h 14(the)h 15(k)h -1(ermit)h 13(program\))h 12(using)h 14(a)h 14(binary)h 14(transfer)h 15(mo)h 1(de)h 177 534(rather)s 18(than)h 17(a)h 17(text)h 18(transfer)h 18(mo)h 1(de.)h 27(If)h 17(suc)h -1(h)h 18(a)h 17(transfer)h 18(is)h 17(made,)h 16(and)h 17(the)h 18(text)h 18(\014le)h 17(line)h 17(termination)h 177 584(con)s -1(v)h -1(en)h -1(tions)h 16(di\013er)h 15(on)h 15(the)h 16(t)h -1(w)h -1(o)h 15(mac)h -1(hines,)h 14(one)h 16(can)h 15(wind)h 15(up)h 16(with)h 15(a)h 15(set)h 16(of)h 15(text)h 16(\014les)h 15(with)h 15(improp)h 1(erly)h 177 634(terminated)s 10(lines.)h 16(This)h 10(can)h 10(cause)h 12(problems)h 9(on)h 10(a)h 9(n)h -1(um)h -1(b)h 1(er)h 10(of)h 9(fron)h -1(ts,)h 10(but)h 11(in)h 9(particular)h 10(a\013ects)h 12(regression)h 177 684(testing)s 13(whic)h -1(h)h 12(relies)h 13(hea)h -1(vily)h 11(on)h 12(exact)h 13(comparisons)h 11(b)h 1(et)h -1(w)h -1(een)h 14(\014les.)h 18(The)h 177(comma)h -1(nd)h 11(pro)h -1(vides)h 12(a)h 177 734(solution)s 12(to)h 13(this)h 13(problem)h 12(b)h -1(y)h 13(pro)h -1(viding)h 12(a)h 13(p)h 1(ortable)h 13(w)h -1(a)h -1(y)h 12(to)h 13(\\purify")h 12(text)h 14(\014les)h 13(whose)h 14(end)h 14(of)h 12(lines)h 13(ha)h -1(v)h -1(e)h 177 783(b)s 1(ecome)h 14(incorrect.)h 20(The)h 14(regression)h 16(testing)h 14(scripts)h 15(all)h 13(apply)h 180(to)h 14(their)h 14(input)h 14(and)h 14(output)h 14(\014les)h 177 833(b)s 1(efore)h 15(eac)h -1(h)h 14(test.)h 177 1095(The)s 68(comm)h -1(and)h 10(allo)h -1(ws)h 10(F)h -3(unnelW)h -3(eb)h 12(prop)h 1(er)h 12(to)h 12(b)h 1(e)h 13(in)h -1(v)h -1(ok)h -1(ed)h 11(from)h 10(a)h 11(shell)h 12(script.)h 18(The)h 12(syn)h -1(tax)h 12(is)h 12(almo)h -1(st)h 177 1145(iden)s -1(tical)h 13(to)h 14(the)h 15(syn)h -1(tax)h 13(with)h 14(whic)h -1(h)h 14(F)h -3(unnelW)h -3(eb)h 13(is)h 14(in)h -1(v)h -1(ok)h -1(ed)h 13(from)h 12(the)h 15(op)h 1(erating)h 13(system.)h 177 1506(Some)s 13(imp)h 1(ortan)h -1(t)h 12(p)h 1(oin)h -1(ts)h 14(ab)h 1(out)h 14(this)h 71(comm)h -1(and)h 12(are:)h 281 1637(Options)s 14(are)h 14(inherited)h 15(from)h 12(the)h 14(default)h 14(shell)h 14(options.)h 281 1732(The)s 50(\(input)h 14(\014le)h 14(option\))h 13(m)h -1(ust)h 13(b)h 1(e)h 14(turned)h 15(on.)h 281 1827(The)s 36(,)h 35(,)h 14(and)h 49(options)h 13(m)h -1(ust)h 13(b)h 1(e)h 15(turned)h 15(o\013.)h 281 1922(The)s 50(option)h 13(m)h -1(ust)h 13(b)h 1(e)h 14(turned)h 15(o\013.)h 281 2017(The)s 14(options)h 14(sp)h 1(eci\014ed)h 15(in)h 14(a)h 71(comm)h -1(and)h 12(do)h 13(not)h 14(a\013ect)h 15(the)h 15(default)h 13(shell)h 14(options.)h 281 2112(This)s 14(comm)h -1(and)h 12(p)h 1(erforms)h 13(no)h 14(action)h 13(in)h 14(the)h 14(V)h -5(AX)h 15(VMS)h 14(v)h -1(ersion)h 14(of)h 13(F)h -3(unnelW)h -3(eb.)h 177 2373(The)s 119(comm)h -1(and)h 13(pro)h -1(vides)h 16(online)h 15(help)h 15(from)h 14(within)h 14(the)h 16(F)h -3(unnelW)h -3(eb)h 15(shell.)h 23(It)h 15(pro)h -1(vides)h 16(access)h 17(to)h 177 2423(all)s 13(of)h 13(the)h 15(same)h 13(messages)h 14(that)h 13(the)h 72(command)h 12(line)h 13(option)h 13(do)h 1(es.)h 177 2785(If)s 14(no)h 15(message)h 14(name)h 14(is)h 14(giv)h -1(en,)h 14(the)h 15(default)h 15(message)h 14(is)h 15(displa)h -1(y)h -1(ed.)h 19(It)h 15(con)h -1(tains)h 15(a)h 14(list)h 14(of)h 14(the)h 15(other)h 16(help)h 177 2835(messages)s 14(and)h 14(their)h 14(names.)h 17(The)h 15(actual)h 13(messages)h 14(themselv)h -1(es)h 14(are)h 14(not)h 14(listed)h 14(here.)h 1042 2940(97)s 98 @eop 99 @bop0 99 @bop1 cmbx10.300 sf 177 42(3.15.7.14)s 48(Here)h 177 737(3.15.7.15)s 48(Quit)h 177 1209(3.15.7.16)s 48(Set)h 177 2033(3.15.7.17)s 48(Sho)h -1(w)h 177 2505(3.15.7.18)s 48(Skipto)h cmtt10.300 sf 267 147(here)s 662(skipto)h 386 197(skipto)s 1344(here)h 177 371(Syntax)s 21(:)h 21(here)h 21(=)h 22("here")h 177 421(Example:)s 20(here)h 262 545(skipto)s 21(here)h 262 843(quit)s 177 1017(Syntax)s 21(:)h 21(quit)h 21(=)h 22("quit")h 177 1067(Example:)s 20(quit)h 263 1315(set)s 1085(set)h 21(+t)h 167(+t)h 1638 1365(-t)s 177 1489(Syntax)s 43(:)h 21(set)h 21(=)h 22("set")h 21(s)h 21(ordinary_funne)h -1(lweb)h -1(_comm)h -1(and_l)h -1(ine)h 177 1539(Examples:)s 20(set)h 21(sloth)h 21(+t)h 21(+d)h 395 1589(set)s 21(-lwalrus)h 616 1713(set)s 745(fw)h 424 1763(+F)s 647(set)h 262 2139(show)s 390 2189(fw)s 177 2313(Syntax)s 21(:)h 21(show)h 21(=)h 22("show")h 177 2362(Example:)s 20(show)h 262 2611(skipto)s 1279(here)h 177 2785(Syntax)s 43(:)h 21(skipto)h 21(=)h 21("skipto")h 177 2835(Examples:)s 20(skipto)h cmr10.300 sf 177 147(The)s 124(comm)h -1(and)h 16(acts)h 18(as)h 18(a)h 18(target)h 18(for)h 18(the)h 167(comm)h -1(and.)h 28(When)h 18(the)h 19(shell)h 18(in)h -1(terpreter)h 19(en-)h 177 197(coun)s -1(ters)h 20(a)h 168(comm)h -1(and,)h 17(it)h 18(ignores)h 19(all)h 17(the)h 19(follo)h -1(wing)h 16(comm)h -1(ands)h 17(un)h -1(til)h 18(it)h 18(encoun)h -1(ters)h 20(a)h 177 247(comma)s -1(nd.)h 177 545(The)s 146(/)h 98(mec)h -1(hanism)h 11(w)h -1(as)h 13(created)h 15(to)h 13(allo)h -1(w)h 11(groups)h 13(of)h 13(regression)h 14(tests)h 15(to)h 13(b)h 1(e)h 13(skipp)h 1(ed)h 14(during)h 177 595(debugging)s 13(without)h 14(ha)h -1(ving)h 13(to)h 14(comm)h -1(en)h -1(t)h 12(them)h 13(out.)h 18(F)h -3(or)h 14(more)h 13(informa)h -1(tion,)h 11(see)h 15(Section)h 15(3.15.7.)h -1(18.)h 177 843(The)s 115(comm)h -1(and)h 12(terminates)h 13(F)h -3(unnelW)h -3(eb)h 13(imm)h -1(ediately)h 11(and)h 14(returns)h 15(con)h -1(trol)h 13(to)h 14(the)h 14(op)h 1(erating)h 13(sys-)h 177 893(tem.)s 17(This)h 14(applies)h 14(regardless)h 15(of)h 13(the)h 15(depth)h 14(of)h 13(the)h 15(script)h 15(b)h 1(eing)h 13(executed.)h 177 1315(The)s 94(command)h 12(mo)h 1(di\014es)h 13(the)h 15(default)h 14(shell)h 14(options.)h 18(F)h -3(or)h 14(example,)h 158(sets)h 15(the)h 73(option)h 13(for)h 177 1365(all)s 13(subsequen)h -1(t)h 15(F)h -3(unnelW)h -3(eb)h 14(runs)h 14(within)h 14(the)h 14(shell)h 14(un)h -1(til)h 13(another)h 14(set)h 15(comm)h -1(and)h 12(sets)h 59(.)h 177 1713(The)s 17(restrictions)h 17(on)h 16(the)h 98(comm)h -1(and)h 14(are)h 17(iden)h -1(tical)h 15(to)h 16(those)h 17(on)h 16(the)h 76(comma)h -1(nd)h 14(except)h 18(that,)h 16(in)h 177 1763(addition,)s 12(the)h 72(option)h 13(cannot)h 15(b)h 1(e)h 14(turned)h 15(on)h 14(in)h 13(the)h 94(comm)h -1(and.)h 177 1840(The)s 12(set)h 13(comma)h -1(nd)h 10(is)h 12(useful)h 12(for)h 11(setting)h 13(option)h 11(defaults)h 12(b)h 1(efore)h 12(a)h 12(long)h 11(run)h 12(of)h 11(regression)h 13(tests.)h 19(It)h 12(could)h 177 1890(also)s 13(b)h 1(e)h 13(useful)h 14(to)h 13(set)h 14(default)h 13(options)h 12(in)h 13(a)h 13(F)h -3(unnelW)h -3(eb)h 12(shell)h 13(k)h -1(ept)h 14(b)h -1(y)h 13(a)h 13(user)h 14(in)h 13(a)h 12(w)h -1(orkstation)h 13(windo)h -1(w.)h 177 2139(The)s 115(command)h 11(displa)h -1(ys)h 14(the)h 14(curren)h -1(t)h 15(default)h 14(shell)h 13(options.)h 18(These)h 15(options)h 14(are)h 14(the)h 14(options)h 14(that)h 177 2189(subsequen)s -1(t)h 73(comma)h -1(nds)h 13(will)h 12(inherit.)h 177 2611(The)s 159(comm)h -1(and)h 12(causes)h 15(the)h 15(shell)h 13(to)h 14(ignore)h 14(all)h 12(subsequen)h -1(t)h 16(comm)h -1(ands)h 12(un)h -1(til)h 13(a)h 115(comm)h -1(and)h 177 2661(is)s 14(encoun)h -1(tered.)h 1042 2940(98)s 99 @eop 100 @bop0 100 @bop1 cmbx10.300 sf 177 1947(3.15.7.19)s 48(Status)h cmtt10.300 sf 262 42(skipto)s 21(here)h 1412 91(goto)s 177 359(skipto)s 177 409(execute)s 21(test)h 20(infile1)h 177 459(execute)s 21(test)h 20(infile2)h 177 509(execute)s 21(test)h 20(infile3)h 177 559(execute)s 21(test)h 20(infile4)h 177 608(execute)s 21(test)h 20(infile5)h 177 658(here)s 177 708(execute)s 21(test)h 20(infile6)h 177 758(execute)s 21(test)h 20(infile7)h 177 808(execute)s 21(test)h 20(infile8)h 1098 976(here)s 177 1144(skipto)s 177 1194(!)s 22(Test)h 21(the)h 21(Parser)h 177 1244(!)s 22(-----------)h -1(----)h 177 1294(define)s 21(X)h 21("execute)h 20(parsertest.fws")h 177 1344($X)s 22(infile1)h 177 1393($X)s 22(infile2)h 177 1443($X)s 22(infile3)h 177 1493($X)s 22(infile4)h 177 1543($X)s 22(infile5)h 177 1593(here)s 943 1711(define)s 558($X)h 459 1761($X)s 177 1811($X)s 210(skipto)h 268 2050(status)s 177 2249(status)s 177 2417(Syntax)s 43(:)h 21(status)h 21(=)h 21("status")h 20({s)h 22(\("w"|"e"|"s)h -1("\))h 20(num}0..3)h 177 2467(Examples:)s 20(status)h 395 2517(status)s 21(w1)h 21(e5)h 21(s1)h 395 2567(status)s 21(w4)h 395 2616(status)s 21(s1)h 21(e2)h 263 2735(status)s cmr10.300 sf 177 42(The)s 146(/)h 98(mec)h -1(hanism)h 11(w)h -1(as)h 13(created)h 15(to)h 13(allo)h -1(w)h 11(groups)h 13(of)h 13(regression)h 14(tests)h 15(to)h 13(b)h 1(e)h 13(skipp)h 1(ed)h 14(during)h 177 91(debugging)s 10(without)h 9(ha)h -1(ving)h 9(to)h 10(comm)h -1(en)h -1(t)h 9(them)h 9(out.)h 17(It)h 10(is)h 10(lik)h -1(e)h 9(a)h 10(cut)h 10(price)h 99(.)h 16(F)h -3(or)h 10(example,)h 9(supp)h 1(osing)h 177 141(that)s 15(there)h 16(w)h -1(ere)h 15(eigh)h -1(t)h 15(tests)h 16(and)h 14(that)h 15(y)h -1(ou)h 14(had)h 15(debugged)h 15(the)h 15(\014rst)h 16(\014v)h -1(e.)h 20(Y)h -3(ou)h 14(migh)h -1(t)h 13(w)h -1(an)h -1(t)h 14(to)h 15(skip)h 14(the)h 177 191(\014rst)s 16(\014v)h -1(e)h 15(tests)h 16(so)h 16(that)h 15(y)h -1(ou)h 14(can)h 15(concen)h -1(trate)h 17(on)h 15(the)h 15(next)h 16(three.)h 22(The)h 16(follo)h -1(wi)h -1(ng)h 13(co)h 1(de)h 16(sho)h -1(ws)h 15(ho)h -1(w)h 15(this)h 177 241(can)s 14(b)h 1(e)h 15(done.)h 177 926(It)s 15(should)h 14(b)h 1(e)h 15(stressed)h 17(that)h 14(F)h -3(unnelW)h -3(eb)h 14(p)h 1(erforms)h 14(full)h 13(comma)h -1(nd)h 13(line)h 14(pro)h 1(cessing)h 15(including)h 14(the)h 15(dollar)h 177 976(substitutions)s 17(b)h 1(efore)h 17(testing)h 16(the)h 17(line)h 16(to)h 16(see)h 17(if)h 16(it)h 16(is)h 104(.)h 24(This)h 16(can)h 16(lead)h 16(to)h 16(non-ob)h -1(vious)h 15(problems.)h 177 1026(F)s -3(or)h 14(example.)h 177 1711(The)s 14(ab)h 1(o)h -1(v)h -1(e)h 12(lo)h 1(oks)h 13(correct,)h 14(but,)h 13(b)h 1(ecause)h 15(the)h 157(comm)h -1(and)h 11(isn't)h 13(executed)h 14(\(and)h 70(is)h 13(not)h 13(de\014ned\))h 177 1761(the)s 14(subsequen)h -1(t)h 71(lines)h 13(result)h 13(in)h 13(a)h 12(leading)h 12(blanks)h 13(error.)h 18(The)h 14(problem)h 11(can)h 14(b)h 1(e)h 13(corrected)h 15(b)h -1(y)h 13(de\014ning)h 235 1811(b)s 1(efore)h 14(the)h 159(comma)h -1(nd.)h 177 2050(The)s 170(comm)h -1(and)h 18(tak)h -1(es)h 19(t)h -1(w)h -1(o)h 19(forms.)h 33(In)h 20(its)h 19(\014rst)h 20(form)h 18(in)h 19(whic)h -1(h)h 19(no)h 19(argumen)h -1(ts)h 19(are)h 19(giv)h -1(en,)h 20(it)h 177 2099(writes)s 13(out)h 12(the)h 13(n)h -1(um)h -1(b)h 1(er)h 11(of)h 12(w)h -1(arnings,)h 12(errors)h 13(and)h 12(sev)h -1(ere)h 14(errors)h 14(that)h 12(1\))h 12(w)h -1(ere)h 13(generated)h 14(b)h -1(y)h 12(the)h 12(previous)h 177 2149(comma)s -1(nd)h 16(and)h 18(2\))h 18(ha)h -1(v)h -1(e)h 17(b)h 1(een)h 19(generated)h 19(during)h 18(the)h 18(en)h -1(tire)h 19(shell)h 18(in)h -1(v)h -1(o)h 1(cation.)h 28(In)h 18(its)h 18(second)h 19(form)h 16(it)h 177 2199(tak)s -1(es)h 13(from)h 10(one)h 13(to)h 12(three)h 13(argumen)h -1(ts)h 12(eac)h -1(h)h 12(of)h 12(whic)h -1(h)h 12(sp)h 1(eci\014es)h 14(a)h 12(diagnostic)h 12(sev)h -1(erit)h -1(y)h 13(and)h 12(a)h 12(n)h -1(um)h -1(b)h 1(er.)h 16(The)h 323 2249(comm)s -1(and)h 13(compares)h 15(eac)h -1(h)h 15(of)h 15(these)h 16(n)h -1(um)h -1(b)h 1(ers)h 15(with)h 15(the)h 15(n)h -1(um)h -1(b)h 1(er)h 15(of)h 14(that)h 15(diagnostic)h 14(generated)h 177 2299(b)s -1(y)h 14(the)h 14(previous)h 15(comm)h -1(and)h 12(and)h 13(generates)h 16(a)h 13(sev)h -1(ere)h 16(error)h 15(if)h 13(they)h 14(di\013er.)h 177 2735(The)s 159(comma)h -1(nd)h 13(w)h -1(as)h 13(in)h -1(tro)h 1(duced)h 15(to)h 14(test)h 15(the)h 15(status)h 14(results)h 16(of)h 13(comm)h -1(ands)h 13(during)h 13(their)h 15(debug-)h 177 2785(ging.)s 17(It)h 13(is)h 13(also)h 12(useful)h 13(for)h 13(c)h -1(hec)h -1(king)h 14(to)h 12(see)h 15(that)h 13(the)h 13(righ)h -1(t)h 13(n)h -1(um)h -1(b)h 1(er)h 12(of)h 13(diagnostics)h 12(ha)h -1(v)h -1(e)h 13(b)h 1(een)h 14(generated)h 177 2835(at)s 14(particular)h 14(p)h 1(oin)h -1(ts)h 13(in)h 14(test)h 15(scripts.)h 1042 2940(99)s 100 @eop 101 @bop0 cmbx10.432 sf [ 48 41 -3 40 52] 82 dc 101 @bop1 cmbx10.432 sf 177 2511(3.16)s 70(Concluding)h 22(Rem)h -2(arks)h cmbx10.300 sf 177 42(3.15.7.20)s 48(T)h -4(olerate)h 177 741(3.15.7.21)s 48(T)h -4(race)h 177 1342(3.15.7.22)s 48(W)h -4(rite)h 177 2041(3.15.7.23)s 48(W)h -4(riteu)h cmtt10.300 sf 263 141(tolerate)s 1234 241(tolerate)s 177 401(Syntax)s 21(:)h 21(tolerate)h 20(=)h 22("tolerate")h 177 451(Example:)s 20(tolerate)h 1422 561(fw)s 261 841(trace)s 177 1001(Syntax)s 43(:)h 21(trace)h 21(=)h 21("trace")h 21([s)h 21(\("on")h 21(|)h 22("off"\)])h 177 1051(Examples:)s 20(trace)h 21(on)h 395 1101(trace)s 21(off)h 262 1211(trace)s 263 1441(write)s 177 1651(Syntax)s 43(:)h 21(write)h 21(=)h 21("write")h 21(s)h 21(string)h 177 1701(Examples:)s 20(write)h 21("Now)h 21(about)h 21(to)h 21(start)h 21(the)h 21(next)h 21(test.")h 395 1751(write)s 21("You)h 21(don't)h 21(need)h 21(to)h 21(")h 22(double)h 20(enclosed)h 20(double)h 21(quotes.")h 261 1861(write)s 262 2141(writeu)s 529(write)h 177 2301(Syntax)s 43(:)h 21(writeu)h 21(=)h 21("writeu")h 20(s)h 22(string)h 177 2351(Examples:)s 20(writeu)h 21("Test)h 20(6")h 599 2824(ross@spam.adela)s -1(ide.)h -1(edu.a)h -1(u)h cmr10.300 sf 177 141(The)s 204(comm)h -1(and)h 13(instructs)h 16(the)h 15(shell)h 14(not)h 14(to)h 15(ab)h 1(ort)h 14(pro)h 1(cessing)h 16(of)h 14(the)h 15(script)h 15(if)h 14(the)h 15(next)h 15(com-)h 177 191(mand)s 11(generates)h 15(one)h 13(or)h 13(more)h 12(w)h -1(arnings,)h 12(errors,)h 14(or)h 13(sev)h -1(ere)h 14(errors.)h 19(F)h -3(or)h 13(the)h 13(purp)h 1(oses)h 15(of)h 12(this)h 13(comm)h -1(and,)h 177 241(a)s 13(blank)h 12(line)h 13(coun)h -1(ts)h 13(as)h 14(a)h 12(comma)h -1(nd,)h 11(so)h 13(b)h 1(e)h 14(sure)h 14(to)h 13(place)h 13(the)h 201(comma)h -1(nd)h 12(imm)h -2(ediately)h 11(ab)h 1(o)h -1(v)h -1(e)h 177 291(the)s 15(comm)h -1(and)h 12(ab)h 1(out)h 14(whic)h -1(h)h 13(y)h -1(ou)h 14(wish)h 13(to)h 14(b)h 1(e)h 15(toleran)h -1(t.)h 177 561(The)s 15(tolerate)h 14(comm)h -1(and)h 12(w)h -1(as)h 14(in)h -1(tro)h 1(duced)h 15(to)h 13(allo)h -1(w)h 13(F)h -3(unnelW)h -3(eb)h 13(\(i.e.)h 13(the)h 72(comma)h -1(nd\))h 12(to)h 14(b)h 1(e)h 15(tested)h 15(in)h 177 611(a)s 14(script)h 14(under)h 15(conditions)h 14(whic)h -1(h)h 13(w)h -1(ould)h 14(normall)h -1(y)h 12(cause)h 15(it)h 13(to)h 14(ab)h 1(ort)h 14(the)h 14(script.)h 177 841(The)s 134(comm)h -1(and)h 10(turns)h 13(on)h 12(or)h 12(o\013)h 12(comm)h -1(and)h 10(tracing)h 12(during)h 12(script)h 13(execution.)h 18(By)h 12(default,)h 12(tracing)h 177 891(is)s 14(turned)h 15(o\013.)h 177 1211(The)s 137(comma)h -1(nd)h 12(w)h -1(as)h 14(in)h -1(tro)h 1(duced)h 15(to)h 14(assist)h 14(in)h 13(the)h 15(debugging)h 13(of)h 14(regression)h 15(test)h 15(scripts.)h 177 1441(The)s 138(command)h 12(accepts)h 16(a)h 14(double-quoted)h 15(argumen)h -1(t)h 13(and)h 14(writes)h 16(it)h 14(follo)h -1(w)h -1(ed)h 13(b)h -1(y)h 14(an)h 14(EOL)h 15(to)h 14(the)h 177 1491(console)s 18(\(standard)h 18(output\).)h 29(There)h 19(is)h 17(no)h 17(need)h 18(to)h 18(double)h 17(an)h -1(y)h 17(double)h 17(quotes)h 18(o)h 1(ccurring)h 18(within)h 17(the)h 177 1541(string.)s 177 1861(The)s 135(comm)h -1(and)h 10(w)h -1(as)h 13(added)h 12(so)h 13(as)h 13(to)h 12(allo)h -1(w)h 11(regression)h 14(testing)h 12(scripts)h 14(to)h 12(inform)h 11(the)h 13(user)h 13(of)h 12(their)h 177 1911(progress.)s 177 2141(The)s 158(comm)h -1(and)h 11(is)h 13(iden)h -1(tical)h 13(to)h 13(the)h 136(comm)h -1(and)h 11(except)h 15(that)h 13(it)h 13(underlines)h 14(the)h 14(text)h 14(on)h 13(an)h 177 2191(additional)s 12(follo)h -1(wing)h 11(output)h 15(line.)h 177 2625(This)s 19(c)h -1(hapter)h 21(de\014nes)h 20(the)h 20(seman)h -1(tics)h 19(of)h 18(the)h 20(F)h -3(unnelW)h -3(eb)h 19(program.)h 32(As)h 20(stated)h 20(at)h 19(the)h 20(start)h 20(of)h 19(this)h 177 2675(c)s -1(hapter,)h 19(this)h 18(do)h 1(cumen)h -1(t)h 17(tak)h -1(es)h 18(precedence)h 20(o)h -1(v)h -1(er)h 18(the)h 18(F)h -3(unnelW)h -3(eb)h 17(program.)h 27(While)h 17(the)h 18(de\014nition)h 17(of)h 177 2725(F)s -3(unnelW)h -3(eb)h 12(in)h 13(this)h 13(c)h -1(hapter)h 13(is)h 13(reasonably)h 13(solid,)h 11(it)h 13(is)h 12(far)h 13(from)h 11(w)h -1(atertigh)h -1(t,)h 12(and)h 13(it)h 12(is)h 13(hop)h 1(ed)h 13(that)h 13(it)h 13(can)h 177 2774(b)s 1(e)h 13(tigh)h -1(tened)h 13(further)h 13(in)h 12(future)h 13(v)h -1(ersions.)h 18(All)h 12(constructiv)h -1(e)h 14(criticism)h 11(will)h 11(b)h 1(e)h 13(gratefully)h 11(receiv)h -1(ed)h 14(b)h -1(y)h 12(the)h 177 2824(author)s 14(Ross)h 14(Willia)h -1(m)h -1(s)h 12(\()h 547(\).)h 1032 2940(100)s 101 @eop 102 @bop0 cmbx10.622 sf [<00000007C0000000000FC0000000000FC0000000001FC0000000003FC0000000007FC0 00000000FFC000000000FFC000000001FFC000000003FFC000000007FFC00000000FFFC0 0000000FFFC00000001EFFC00000003CFFC00000007CFFC0000000F8FFC0000000F0FFC0 000001E0FFC0000003C0FFC0000007C0FFC000000F80FFC000000F00FFC000001E00FFC0 00003C00FFC000007C00FFC00000F800FFC00000F000FFC00001E000FFC00003C000FFC0 0007C000FFC0000F8000FFC0000F0000FFC0001E0000FFC0003C0000FFC0007C0000FFC0 00F80000FFC000FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0FFFFFFFFFFC0000001FFC0 00000001FFC000000001FFC000000001FFC000000001FFC000000001FFC000000001FFC0 00000001FFC000000001FFC000000001FFC0000007FFFFFFC00007FFFFFFC00007FFFFFF C00007FFFFFFC0> 48 55 -3 54 49] 52 dc 102 @bop1 cmsy10.300 sf 239 955(\017)s 239 1037(\017)s 239 1168(\017)s 239 1398(\017)s 239 1479(\017)s 239 1610(\017)s 239 1692(\017)s cmbx10.622 sf 177 376(Chapter)s 34(4)h cmti10.300 sf 781 955(or)s 1009 1037(or)s 340 1802(not)s 625 2604(text)s 563 2654(binary)s cmbx10.746 sf 177 607(F)s -10(unnelW)h -10(eb)h 41(Installati)h 1(on)h cmbx10.432 sf 177 2011(4.1)s 70(Obtaining)h 22(a)h 23(Cop)h -2(y)h 23(of)h 24(F)h -6(unnelW)h -6(eb)h cmtt10.300 sf 461 1851(fw)s 243 2235(Machine)s 63(:)h 22(sirius.itd.ad)h -1(elaid)h -1(e.edu)h -1(.au)h 19([IP=129.127.40.)h -1(3].)h 243 2285(Directory)s 19(:)h 22(~pub/funnelwe)h -1(b/)h 63(\(or)h 22(a)h 21(directory)h 20(of)h 21(similar)h 21(name\).)h 1704 2395(.tar)s cmr10.300 sf 177 846(This)s 14(c)h -1(hapter)h 15(describ)h 1(es)h 16(ho)h -1(w)h 13(to)h 14(obtain,)h 13(compile,)h 11(and)h 14(install)h 13(F)h -3(unnelW)h -3(eb.)h 17(Y)h -3(ou)h 14(will)h 12(need:)h 281 955(FTP)s 14(access)h 16(to)h 14(the)h 14(in)h -1(ternet)h 67(a)h 14(F)h -3(unnelW)h -3(eb)h 13(distribution)h 14(kit)h 13(on)h 14(disk.)h 281 1037(A)s 18(Sun,)h 19(VMS)h 19(V)h -5(AX,)h 18(Macin)h -1(tosh,)h 19(or)h 18(PC)h 76(lots)h 18(of)h 17(extra)h 19(time)h 17(to)h 18(p)h 1(ort)h 19(F)h -3(unnelW)h -3(eb)h 17(to)h 18(a)h 18(new)h 281 1086(platform.)s 281 1168(Ab)s 1(out)h 15(four)h 14(megab)h -1(ytes)h 14(of)h 14(free)h 15(disk)h 14(space.)h 21(Y)h -3(ou)h 14(migh)h -1(t)h 12(b)h 1(e)h 15(able)h 15(to)h 14(install)h 13(it)h 14(with)h 15(less,)h 14(but)h 15(four)h 281 1217(megab)s -1(ytes)h 14(is)h 15(safe.)h 21(The)h 15(distribution)h 14(kit)h 15(itself)h 14(is)h 15(ab)h 1(out)h 14(t)h -1(w)h -1(o)h 15(and)h 14(a)h 15(half)h 14(megab)h -1(ytes.)h 20(If)h 14(y)h -1(ou)h 14(are)h 281 1267(short)s 11(on)h 11(space,)h 12(y)h -1(ou)h 11(can)h 11(thro)h -1(w)h 11(a)h -1(w)h -1(a)h -1(y)h 10(ev)h -1(erything)h 11(after)h 11(installation)h 9(except)h 13(the)h 11(binary)h 11(executable)h 281 1317(whic)s -1(h)h 14(will)h 12(consume)h 14(ab)h 1(out)h 13(half)h 13(a)h 14(megab)h -1(yte.)h 281 1398(A)s 14(C)h 14(compiler.)h 281 1479(An)s 16(acquain)h -1(tance)h 17(with)h 16(the)h 17(C)h 16(programm)h -1(ing)h 14(language)h 16(and)h 16(the)h 17(abilit)h -1(y)h 14(to)h 17(compil)h -1(e)h 15(and)h 16(link)h 16(C)h 281 1529(programs)s 13(on)h 13(y)h -1(our)h 14(mac)h -1(hine.)h 281 1610(Elemen)s -1(tary)h 13(systems)h 14(programm)h -1(ing)h 11(kno)h -1(wledege)h 14(for)h 14(y)h -1(our)h 14(mac)h -1(hine.)h 281 1692(Ab)s 1(out)h 14(an)h 14(hour.)h 177 1802(Y)s -3(ou)h 13(will)h 84(need)h 14(an)h -1(y)h 13(sort)h 14(of)h 13(system)h 13(privileges)h 14(to)h 13(install)h 12(F)h -3(unnelW)h -3(eb,)h 13(unless)h 14(y)h -1(ou)h 13(w)h -1(an)h -1(t)h 13(the)h 14(F)h -3(unnel-)h 177 1851(W)s -3(eb)h 14(comm)h -1(and)h 69(to)h 14(b)h 1(e)h 14(automaticall)h -1(y)h 12(a)h -1(v)h -2(ailable)h 12(to)h 14(ev)h -1(ery)h -1(one)h 14(on)h 14(y)h -1(our)h 14(mac)h -1(hine)h 12(as)h 14(w)h -1(ell)h 13(as)h 14(y)h -1(ourself.)h 177 2125(The)s 14(simplest)h 13(w)h -1(a)h -1(y)h 14(to)h 13(obtain)h 13(a)h 14(cop)h -1(y)h 14(of)h 13(F)h -3(unnelW)h -3(eb)h 14(is)h 13(b)h -1(y)h 14(anon)h -1(ymous)h 12(FTP)h 14(from:)h 177 2395(It)s 18(is)h 17(not)h 17(clear)h 18(at)h 17(the)h 18(time)h 16(of)h 17(writing)h 17(whether)h 18(F)h -3(unnelW)h -3(eb)h 17(will)h 16(b)h 1(e)h 18(presen)h -1(ted)h 19(as)h 18(a)h 17(\\)h 88(")h 16(\014le,)h 18(or)h 177 2444(as)s 16(a)h 16(directory)h 17(tree,)h 17(or)h 16(b)h 1(oth.)h 25(Just)h 17(sni\013)h 16(around)h 16(and)h 16(use)h 16(y)h -1(our)h 16(commo)h -1(n)h 14(sense.)h 27(Tw)h -1(o)h 15(p)h 1(oin)h -1(ts)h 16(deserv)h -1(e)h 177 2494(atten)s -1(tion)h 14(ho)h -1(w)h -1(ev)h -1(er:)h 228 2604(1.)s 20(Be)h 15(sure)h 15(to)h 14(use)h 15(the)h 94(transfer)h 15(mo)h 1(de)h 13(whenev)h -1(er)h 16(y)h -1(ou)h 13(transfer)h 15(ra)h -1(w)h 14(F)h -3(unnelW)h -3(eb)h 14(\014les.)h 19(Ho)h -1(w)h -1(ev)h -1(er,)h 281 2654(y)s -1(ou)h 13(should)h 14(use)h 143(mo)h 1(de)h 12(for)h 14(T)h -3(AR)h 13(\014les)h 14(and)h 14(other)h 15(conglom)h -1(erate)h 13(represe)h 1(n)h -1(tations.)h 228 2735(2.)s 20(If)h 13(y)h -1(ou)h 13(ha)h -1(v)h -1(e)h 13(to)h 13(transfer)h 15(the)h 14(\014les)h 13(individually)h -4(,)h 11(don't)h 13(lump)h 12(all)h 12(the)h 14(F)h -3(unnelW)h -3(eb)h 13(\014les)h 13(in)h -1(to)h 13(a)h 13(single)h 281 2785(directory)s -3(.)h 20(Refer)h 14(to)h 15(the)h 15(sections)h 15(that)h 14(follo)h -1(w)h 13(for)h 14(informa)h -1(tion)h 12(on)h 14(the)h 15(directory)h 15(tree)h 16(y)h -1(ou)h 14(should)h 281 2835(create)s 15(to)h 14(receiv)h -1(e)h 15(the)h 15(F)h -3(unnelW)h -3(eb)h 13(\014les.)h 1032 2940(101)s 102 @eop 103 @bop0 103 @bop1 cmbx10.432 sf 177 468(4.2)s 70(Establishing)h 21(The)h 23(Directory)h 22(T)h -6(ree)h cmbx12.300 sf 177 1778(4.2.1)s 55(Admin)h 18(Directory)h 177 2120(4.2.2)s 55(Answ)h -2(ers)h 20(Directory)h cmtt10.300 sf 243 207(Name:)s 42(Dr)h 21(Ross)h 21(N.)h 22(Williams)h 243 257(Email:)s 20(ross@spam.ade)h -1(laide)h -1(.edu.)h -1(au)h 243 307(Snail:)s 20(16)h 21(Lerwick)h 21(Avenue,)h 20(Hazelwood)h 20(Park)h 21(5066,)h 21(Australia.)h 243 924(fwdir)s 151(-)h 22(Root)h 21(FunnelWeb)h 20(directory.)h 308 973(admin)s 86(-)h 22(Administrat)h -1(ive)h 20(files.)h 308 1023(answers)s 42(-)h 22(Answers)h 20(to)h 21(test)h 21(suite.)h 308 1073(hackman)s 42(-)h 22(FunnelWeb)h 20(Hacker's)h 20(Manual.)h 308 1123(results)s 42(-)h 22(For)h 21(test)h 21(results.)h 308 1173(scripts)s 42(-)h 22(Test)h 21(scripts.)h 308 1222(sources)s 42(-)h 22(Source)h 20(code.)h 308 1272(tests)s 86(-)h 22(Test)h 21(suite.)h 308 1322(userman)s 42(-)h 22(FunnelWeb)h 20(User's)h 20(Manual.)h 262 1879(admin)s 536 1979(admin)s 261 2221(answers)s 1453 2271(results)s 177 2386(an01.lis)s 20(...)h 21(an04.lis)h 177 2436(ex01.lis)s 20(...)h 21(ex16.lis)h 177 2486(ex01.out)s 20(...)h 21(ex10.out)h 177 2536(ex11.tex)s 20(...)h 21(ex16.tex)h 177 2586(generate.lis)s 177 2635(hi01.lis)s 20(...)h 21(hi10.lis)h 177 2685(hi01.out)s 20(...)h 21(hi05.out)h 177 2735(hi06a.out)s 177 2785(hi06b.out)s 177 2835(hi07a.out)s cmr10.300 sf 177 42(If)s 13(anon)h -1(ymous)h 12(FTP)h 13(is)h 13(not)h 14(a)h -1(v)h -2(aila)h -1(ble)h 12(to)h 13(y)h -1(ou,)h 12(con)h -1(tact)h 14(the)h 14(author)h 13(for)h 13(up-to-date)h 14(informa)h -1(tion)h 11(on)h 13(other)h 177 91(c)s -1(hannels)h 15(of)h 13(distribution.)h 177 584(A)s -1(t)h 15(this)h 15(stage,)h 14(w)h -1(e)h 15(will)h 13(assume)h 14(that)h 15(y)h -1(ou)h 14(ha)h -1(v)h -1(e)h 15(someho)h -1(w)h 13(obtained)h 14(a)h 15(set)h 15(of)h 14(\014les)h 15(that)h 15(are)h 15(supp)h 1(osed)h 16(to)h 177 634(b)s 1(e)h 15(F)h -3(unnelW)h -3(eb,)h 14(and)h 15(that)h 14(they)h 16(are)h 15(sitting)h 14(on)h 14(a)h 15(disk)h 14(on)h 15(the)h 15(mac)h -1(hine)h 13(on)h 15(whic)h -1(h)h 14(y)h -1(ou)h 14(wish)h 15(to)h 14(compile)h 177 684(and)s 14(install)h 13(F)h -3(unnelW)h -3(eb.)h 177 758(The)s 12(\014rst)h 12(thing)h 11(y)h -1(ou)h 10(ha)h -1(v)h -1(e)h 11(to)h 11(do)h 11(is)h 12(to)h 11(mak)h -1(e)h 9(sure)h 13(that)h 11(the)h 12(F)h -3(unnelW)h -3(eb)h 10(directory)h 12(tree)h 13(has)h 11(b)h 1(een)h 13(correctly)h 177 808(unpac)s -1(k)h -1(ed.)h 19(The)h 14(directory)h 15(tree)h 15(should)h 13(lo)h 1(ok)h 13(lik)h -1(e)h 13(this.)h 177 1438(The)s 18(follo)h -1(wing)h 15(sections)h 18(describ)h 1(e)h 20(the)h 18(con)h -1(ten)h -1(ts)h 18(of)h 17(eac)h -1(h)h 18(directory)h 18(in)h 17(alphab)h 1(etical)h 17(order.)h 29(Chec)h -1(k)h 18(the)h 177 1488(con)s -1(ten)h -1(ts)h 18(to)h 17(mak)h -1(e)h 15(sure)h 18(that)h 17(y)h -1(ou)h 17(ha)h -1(v)h -1(e)h 16(ev)h -1(erything.)h 28(Do)h 16(not)h 17(b)h 1(ecome)h 17(fussed)h 18(if)h 16(y)h -1(our)h 16(con\014guration)h 17(is)h 177 1537(not)s 14(quite)h 13(as)h 14(sp)h 1(eci\014ed)h 15(as)h 13(it)h 13(is)h 14(v)h -1(ery)h 14(easy)h 14(for)h 13(installation)h 11(guides)h 14(suc)h -1(h)h 14(as)h 14(this)h 13(one)h 14(to)h 14(go)h 13(out)h 13(of)h 13(date)h 14(as)h 177 1587(minor)s 14(last)h 15(min)h -1(ute)h 14(c)h -1(hanges)h 16(and)h 16(up)h 1(dates)h 16(are)h 16(made)h 15(to)h 15(the)h 16(distribution)h 15(kit.)h 22(Chec)h -1(k)h 17(the)h 16(source)h 17(from)h 177 1637(whic)s -1(h)h 14(y)h -1(ou)h 13(obtained)h 14(the)h 14(kit,)h 13(and)h 14(if)h 13(it)h 14(is)h 13(di\013eren)h -1(t)h 15(to)h 1(o,)h 13(pro)h 1(ceed.)h 177 1879(The)s 136(directory)h 14(con)h -1(tains)h 13(administrativ)h -1(e)h 11(\014les)h 14(to)h 13(do)h 13(with)h 13(licensing)h 13(and)h 13(suc)h -1(h.)h 18(It)h 14(is)h 13(also)h 12(a)h 13(catc)h -1(h-)h 177 1929(all)s 11(directory)h 13(for)h 11(\014les)h 13(that)h 12(don't)h 11(b)h 1(elong)h 12(an)h -1(ywhere)h 12(else.)h 18(A)h -1(t)h 12(the)h 13(time)h 11(of)h 11(writing,)h 11(it)h 12(is)h 11(not)h 12(clear)h 13(exactly)h 177 1979(what)s 14(will)h 12(b)h 1(e)h 15(in)h 13(the)h 138(directory)h -3(.)h 18(Wh)h -1(y)h 13(not)h 14(tak)h -1(e)h 14(a)h 14(lo)h 1(ok?)h 177 2221(The)s 179(directory)h 13(con)h -1(tains)h 13(the)h 13(\\correct)h 14(answ)h -1(ers")h 14(to)h 13(all)h 11(the)h 14(regression)h 14(testing)h 13(input)h 12(\014les.)h 18(The)h 177 2271(regression)s 15(test)h 15(scripts)h 15(compare)h 13(these)h 16(\014les)h 14(to)h 14(the)h 14(\014les)h 14(generated)h 16(in)h 13(the)h 181(directory)h -3(.)h 1032 2940(102)s 103 @eop 104 @bop0 104 @bop1 cmti10.300 sf 1354 634(F)s -3(unnelWeb)h 16(Hacker's)h 14(Manual)h 177 1216(F)s -3(unnelWeb)h 16(Hacker's)h 15(Manual)h 886 1290(F)s -3(unnelWeb)h 19(Hacker's)h 17(Manual)h 785 2785(al)s 2(l)h cmbx12.300 sf 177 532(4.2.3)s 55(Hac)h -2(kman)h 18(Directory)h 177 1482(4.2.4)s 55(Results)h 18(Directory)h 177 1925(4.2.5)s 55(Scripts)h 19(Directory)h 177 2683(4.2.6)s 55(Sources)h 19(Directory)h cmtt10.300 sf 177 42(hi07b.out)s 177 91(hi08.out)s 20(...)h 21(hi10.out)h 177 141(pr01.lis)s 20(...)h 21(pr10.lis)h 177 191(sc01.lis)s 20(...)h 21(sc29.lis)h 177 241(tg01.lis)s 20(...)h 21(tg09.lis)h 177 291(tg01.out)s 20(...)h 21(tg09.out)h 177 340(wv01.lis)s 20(...)h 21(wv06.lis)h 177 390(wv01.tex)s 20(...)h 21(wv06.tex)h 262 634(hackman)s 424(.tex)h 177 750(h_ch0.tex)s 107(-)h 22(Preface,)h 20(etc.)h 177 800(h_ch1.tex)s 107(-)h 22(Design.)h 177 850(h_ch2.tex)s 107(-)h 22(Implementati)h -1(on.)h 177 900(h_ch3.tex)s 107(-)h 22(Modification)h -1(.)h 177 949(h_ch4.tex)s 107(-)h 22(Future.)h 177 999(h_cha.tex)s 107(-)h 22(Appendices.)h 177 1049(h_manual.tex)s 41(-)h 22(Main)h 21(TeX)h 21(file.)h 744 1166(h)s 15(manual.tex)h 265 1584(results)s 1145 1683(results)s 268 2026(scripts)s 177 2193(master.fws)s 85(-)h 22(The)h 21(master)h 21(test)h 21(script.)h 20(This)h 21(is)h 21(the)h 21(one)h 22(you)h 21(run.)h 177 2243(test_gen.fws)s 41(-)h 22(Script)h 20(to)h 22(generate)h 20(certain)h 20(tricky)h 21(input)h 21(files.)h 177 2292(test_l.fws)s 85(-)h 22(Test)h 21(FunnelWeb)h 20(with)h 21(+L.)h 177 2342(test_ld.fws)s 63(-)h 22(Test)h 21(FunnelWeb)h 20(with)h 21(+L)h 21(+B...)h 177 2392(test_lo.fws)s 63(-)h 22(Test)h 21(FunnelWeb)h 20(with)h 21(+L)h 21(+O.)h 177 2442(test_lo2.fws)s 41(-)h 22(Test)h 21(FunnelWeb)h 20(with)h 21(+L)h 21(+O)h 21(\(two)h 21(output)h 21(files\).)h 177 2492(test_lot.fws)s 41(-)h 22(Test)h 21(FunnelWeb)h 20(with)h 21(+L)h 21(+O)h 21(+T.)h 177 2541(test_lt.fws)s 63(-)h 22(Test)h 21(FunnelWeb)h 20(with)h 21(+L)h 21(+T.)h 267 2785(sources)s 1642 2835(.c)s 94(.h)h cmr10.300 sf 177 634(The)s 181(directory)h 15(con)h -1(tains)h 13(the)h 116(\014les)h 14(that)h 14(mak)h -1(e)h 12(up)h 14(the)h 538(.)h 177 1166(See)s 15(the)h 14(commen)h -1(t)h 12(at)h 13(the)h 15(top)h 13(of)h 283(\014le)h 13(for)h 14(instructions)h 14(on)h 14(ho)h -1(w)h 13(to)h 14(t)h -1(yp)h 1(eset)h 15(and)h 14(prin)h -1(t)h 13(the)h 701 1216(.)s 177 1290(There)s 18(is)h 16(no)h 17(need)h 17(to)h 17(read)h 17(or)h 17(prin)h -1(t)h 16(the)h 563(unless)h 18(y)h -1(ou)h 16(in)h -1(tend)h 17(to)h 16(mo)h 1(dify)h 177 1340(F)s -3(unnelW)h -3(eb.)h 177 1584(The)s 187(directory)h 17(exists)h 17(as)h 17(a)h 17(target)h 17(directory)h 17(for)h 17(the)h 17(output)h 17(\014les)h 17(generated)h 18(b)h -1(y)h 16(F)h -3(unnelW)h -3(eb)h 177 1633(during)s 13(regression)h 15(testing.)h 18(This)h 13(directory)h 14(is)h 14(distributed)h 13(empt)h -1(y)h 13(and)h 13(should)h 13(b)h 1(e)h 14(empt)h -1(y)h 12(at)h 13(the)h 14(start)h 14(of)h 177 1683(regression)s 16(testing.)h 22(Ho)h -1(w)h -1(ev)h -1(er,)h 15(it)h 14(is)h 15(p)h 1(ermissible)h 14(for)h 15(the)h 182(directory)h 16(to)h 15(con)h -1(tain)h 14(\014les)h 15(generated)h 177 1733(during)s 17(a)h 16(previous)h 17(test)h 18(run,)h 18(as)h 17(the)h 17(regression)h 18(testing)h 18(scripts)h 18(delete)h 18(sp)h 1(eci\014c)h 18(un)h -1(w)h -1(an)h -1(ted)h 17(\014les)h 17(b)h 1(efore)h 177 1783(eac)s -1(h)h 15(test)h 15(an)h -1(yw)h -1(a)h -1(y)h -3(.)h 177 2026(The)s 192(directory)h 20(stores)h 21(the)h 20(F)h -3(unnelW)h -3(eb)h 19(comm)h -1(and)h 18(shell)h 19(scripts)h 21(that)h 19(are)h 20(used)h 20(to)h 20(p)h 1(erform)h 177 2076(regression)s 15(testing.)h 177 2785(The)s 189(directory)h 19(con)h -1(tains)h 80(of)h 17(the)h 19(C)h 18(source)h 19(\014les)h 18(required)h 19(to)h 18(build)h 17(a)h 18(F)h -3(unnelW)h -3(eb)h 17(binary)h 177 2835(executable.)s 19(In)h 14(the)h 15(follo)h -1(wi)h -1(ng)h 12(list,)h 13(\014les)h 14(giv)h -1(en)h 14(without)h 13(an)h 14(extension)h 14(represe)h 1(n)h -1(t)h 16(b)h 1(oth)h 71(and)h 71(\014les.)h 1032 2940(103)s 14 2 769 1166 r 104 @eop 105 @bop0 105 @bop1 cmbx12.300 sf 177 1831(4.2.7)s 55(T)h -5(ests)h 19(Directory)h cmr10.300 sf 177 1594(The)s 13(\\)h 88(",)h 12(and)h 12(\\)h 88(")h 12(\014les)h 13(do)h 12(not)h 13(participate)h 13(in)h 12(the)h 14(compilati)h -1(on,)h 11(but)h 13(are)h 13(considered)h 14(part)h 13(of)h 12(the)h 177 1644(source)s 17(co)h 1(de)h 17(as)h 16(they)h 16(w)h -1(ere)h 17(used)h 16(to)h 16(generate)h 17(the)h 16(\\)h 88(")h 15(\014les.)h 24(The)h 16(\\)h 88(")h 14(\014les)h 17(are)h 16(included)h 16(b)h -1(y)h 177 1693(\014les)s 14(of)h 14(the)h 14(same)h 13(name.)h 17(They)h 14(do)h 14(not)h 14(need)h 15(to)h 13(b)h 1(e)h 15(compiled)h 12(themselv)h -1(es.)h 177 1930(The)s 135(directory)h 13(stores)h 14(all)h 11(the)h 13(input)h 12(\014les)h 13(of)h 12(the)h 13(regression)h 14(test)h 14(suite.)h 18(These)h 14(come)h 11(in)h 12(t)h -1(w)h -1(o)h 12(kinds:)h 177 1980(F)s -3(unnelW)h -3(eb)h 16(input)h 16(\014les)h 17(with)h 16(extensions)h 18(of)h 16(\\)h 66(",)h 15(and)h 16(F)h -3(unnelW)h -3(eb)h 16(include)h 17(\014les)h 17(with)h 16(extensions)h 17(of)h 177 2030(\\)s 88(".)h 1032 2940(104)s cmtt10.300 sf 177 42(analyse)s 151(-)h 22(The)h 21(analyser.)h 177 91(as)s 261(-)h 22(Assertions.)h 177 141(clock)s 195(-)h 22(A)h 21(clock)h 21(abstraction.)h 177 191(command)s 151(-)h 22(The)h 21(shell)h 21(command)h 20(interpreter.)h 177 241(data)s 217(-)h 22(Shared)h 20(data)h 21(structures)h 20(and)h 21(global)h 21(variables.)h 177 291(dump)s 217(-)h 22(Functions)h 20(to)h 21(dump)h 21(internal)h 20(data)h 21(structures.)h 177 340(environ.h)s 107(-)h 22(Lightweight)h 19(machine-depend)h -1(ent,)h 19(program-indepen)h -1(dent)h 19(header.)h 177 390(help)s 217(-)h 22(Module)h 20(to)h 22(write)h 21(out)h 21(help)h 21(messages.)h 177 440(help_gnu)s 129(-)h 22(Function)h 20(to)h 21(write)h 21(out)h 21(the)h 21(GNU)h 22(license.)h 177 490(help_gnu.txt)s 41(-)h 22(The)h 21(GNU)h 21(license)h 21(in)h 21(text)h 21(form.)h 177 540(help_gnu.ctx)s 41(-)h 22(The)h 21(GNU)h 21(license)h 21(in)h 21(C)h 22(code)h 20(form.)h 177 589(list)s 217(-)h 22(A)h 21(list)h 21(abstraction.)h 177 639(lister)s 173(-)h 22(Module)h 20(to)h 22(manage)h 20(the)h 22(listing)h 20(file.)h 177 689(machin)s 173(-)h 22(Module)h 20(to)h 22(hold)h 21(machine-dep)h -1(enden)h -1(t,)h 20(program-depe)h -1(ndent)h 19(stuff.)h 177 739(main.c)s 173(-)h 22(The)h 21(main\(\))h 21(program.)h 177 789(mapper)s 173(-)h 22(Module)h 20(to)h 22(read)h 21(files)h 21(into)h 20(memory.)h 177 839(memory)s 173(-)h 22(Memory)h 20(management.)h 177 888(misc)s 217(-)h 22(Miscellaneou)h -1(s)h 20(functions.)h 177 938(option)s 173(-)h 22(Command)h 20(line)h 21(option)h 21(processing.)h 177 988(parser)s 173(-)h 22(The)h 21(parser.)h 177 1038(scanner)s 151(-)h 22(The)h 21(scanner.)h 177 1088(section)s 151(-)h 22(A)h 21(section)h 21(number)h 20(abstraction.)h 177 1137(style.h)s 151(-)h 22(A)h 21(machine-indepen)h -1(dent,)h 19(program-indep)h -1(enden)h -1(t)h 20(header)h 21(file.)h 177 1187(table)s 195(-)h 22(A)h 21(table)h 21(abstraction.)h 177 1237(tangle)s 173(-)h 22(The)h 21(tangler.)h 177 1287(texhead)s 151(-)h 22(Module)h 20(to)h 22(write)h 21(out)h 21(TeX)h 21(header)h 20(in)h 22(documentatio)h -1(n)h 20(files.)h 177 1337(texhead.ctx)s 63(-)h 22(The)h 21(TeX)h 21(header)h 21(in)h 21(C)h 22(code)h 21(form.)h 177 1386(texhead.tex)s 63(-)h 22(The)h 21(TeX)h 21(header)h 21(in)h 21(TeX)h 21(form.)h 177 1436(weave)s 195(-)h 22(The)h 21(weaver.)h 177 1486(writfile)s 129(-)h 22(Output)h 20(abstraction.)h 282 1594(.txt)s 145(.tex)h 1061 1644(.ctx)s 249(.ctx)h 419(.c)h 261 1930(tests)s 967 1980(.fw)s 198 2030(.fwi)s 177 2137(FunnelWeb)s 20(Input)h 21(Files:)h 243 2187(an01.fw)s 20(...)h 21(an04.fw)h 86(-)h 21(Analyser)h 21(tests.)h 243 2237(ex01.fw)s 20(...)h 21(ex16.fw)h 86(-)h 21(Examples)h 21(from)h 20(the)h 22(tutorial)h 20(in)h 21(user)h 21(manual.)h 243 2287(generate.f)s -1(w)h 260(-)h 21(Generates)h 20(a)h 22(few)h 21(other)h 21(tricky)h 20(input)h 21(files.)h 243 2337(hi01.fw)s 20(...)h 21(hi10.fw)h 86(-)h 21(Examples)h 21(from)h 20(the)h 22(hints)h 20(chapter)h 21(in)h 21(user)h 21(manual.)h 243 2386(pr01.fw)s 20(...)h 21(pr10.fw)h 86(-)h 21(Parser)h 21(tests.)h 243 2436(sc01_note.)s -1(fw)h 238(-)h 21(A)h 22(note)h 21(explaining)h 20(absence)h 20(of)h 21(sc01.fw)h 243 2486(sc02.fw)s 20(...)h 21(sc29.fw)h 86(-)h 21(Scanner)h 21(tests.)h 243 2536(tg01.fw)s 20(...)h 21(tg09.fw)h 86(-)h 21(Tangler)h 21(tests.)h 243 2586(wv01.fw)s 20(...)h 21(wv06.fw)h 86(-)h 21(Weaver)h 21(tests.)h 177 2685(FunnelWeb)s 20(Include)h 20(Files:)h 243 2735(ex09a.fwi)s 243 2785(sc13a.fwi)s 19(...)h 22(sc13f.fwi)h 243 2835(sc15a.fwi)s 105 @eop 106 @bop0 cmti10.300 sf [<7FF0FF800F001C000E0018000E0010000E0010000E0010001C0020001C0020001C0020 001C00200038004000380040003800400038004000700080007000800070008000700080 00E0010000E0010000E0010000E0020000E0020000E0040000E004000060080000303000 00104000000F800000> 32 29 -9 27 31] 85 dc 106 @bop1 cmbx12.300 sf 177 180(4.2.8)s 55(Userman)h 18(Directory)h cmbx10.432 sf 177 1055(4.3)s 70(Com)h -1(pi)h -1(l)h -1(ing)h 21(F)h -6(unnelW)h -6(eb)h 177 2562(4.4)s 70(T)h -6(esting)h 22(F)h -6(unnelW)h -6(eb)h cmti10.300 sf 1354 279(F)s -3(unnelWeb)h 16(User's)h 14(Manual)h 177 896(F)s -3(unnelWeb)h 16(User's)h 14(Manual)h cmtt10.300 sf 243 42(tg08a.fwi)s 262 279(userman)s 424(.tex)h 177 388(u_ch0.tex)s 107(-)h 22(Preface,)h 20(etc.)h 177 438(u_ch1.tex)s 107(-)h 22(Tutorial.)h 177 488(u_ch2.tex)s 107(-)h 22(Hints.)h 177 538(u_ch3.tex)s 107(-)h 22(Definition.)h 177 588(u_ch4.tex)s 107(-)h 22(Installation)h -1(.)h 177 637(u_ch5.tex)s 107(-)h 22(Administrati)h -1(on.)h 177 687(u_cha.tex)s 107(-)h 22(Appendices.)h 177 737(u_manual.tex)s 41(-)h 22(Main)h 21(TeX)h 21(file.)h 744 846(u)s 15(manual.tex)h 1309 1169(sources)s 1133 1219(admin)s 1022 1341(environ.h)s 388(environ.h)h 853 1391(#define)s 80(1)h 177 1500(#define)s 21(MAC)h 21(0)h 177 1550(#define)s 21(SUN)h 21(1)h 177 1600(#define)s 21(VMS)h 21(0)h 177 1650(#define)s 21(PC)h 43(0)h 1575 1809(environ.h)s 925 1859(SUN)s 1021 1908(machin.h)s 93(machin.c)h 272 2081(.c)s 248(sources)h 322(.txt)h 152(.tex)h 749 2131(sources)s 938(.ctx)h 386 2180(.ctx)s 414(.c)h 1232 2303(fw)s 75(fw.exe)h 74(fw.xxx)h 131(.xxx)h 1560 2353(sources)s 919 2835(scripts)s cmr10.300 sf 177 279(The)s 181(directory)h 15(con)h -1(tains)h 13(the)h 116(\014les)h 14(that)h 14(mak)h -1(e)h 12(up)h 14(the)h 496(.)h 177 846(See)s 15(the)h 14(commen)h -1(t)h 12(at)h 13(the)h 15(top)h 13(of)h 283(\014le)h 13(for)h 14(instructions)h 14(on)h 14(ho)h -1(w)h 13(to)h 14(t)h -1(yp)h 1(eset)h 15(and)h 14(prin)h -1(t)h 13(the)h 658 896(.)s 177 1169(The)s 17(F)h -3(unnelW)h -3(eb)h 17(source)h 18(co)h 1(de)h 17(is)h 17(en)h -1(tirely)h 17(con)h -1(tained)h 17(within)h 16(the)h 186(directory)h -3(.)h 27(Ho)h -1(w)h -1(ev)h -1(er,)h 18(some)h 177 1219(simple)s 13(script)h 14(\014les)h 14(and)h 14(mak)h -1(e\014les)h 13(can)h 14(b)h 1(e)h 15(found)h 13(in)h 13(the)h 138(directory)h -3(.)h 177 1292(F)s -3(unnelW)h -3(eb)h 16(con)h -1(tains)h 17(some)h 16(mac)h -1(hine-dep)h 1(enden)h -1(t)h 17(comp)h 1(onen)h -1(ts,)h 16(so)h 17(b)h 1(efore)h 17(compiling)h 14(F)h -3(unnelW)h -3(eb,)h 16(y)h -1(ou)h 177 1341(need)s 14(to)h 12(sp)h 1(ecify)h 13(y)h -1(our)h 13(mac)h -1(hine)h 11(in)h 12(the)h 14(source)h 14(\014le)h 210(.)h 16(T)h -3(o)h 12(do)h 12(this,)h 13(edit)h 12(the)h 222(\014le)h 13(and)h 177 1391(set)s 15(exactly)h 14(one)h 14(of)h 13(the)h 15(mac)h -1(hine)h 12(name)h 167(s)h 13(to)h 36(.)h 17(F)h -3(or)h 14(example,)h 12(on)h 14(the)h 14(Sun)h 14(y)h -1(ou)h 14(should)h 13(set:)h 177 1759(There)s 17(should)h 15(b)h 1(e)h 16(little)h 15(di\016cult)h -1(y)h 14(compiling)h 13(F)h -3(unnelW)h -3(eb)h 15(for)h 15(an)h -1(y)h 15(of)h 15(these)h 17(platforms.)h 21(If)h 15(the)h 16(mac)h -1(hine)h 177 1809(on)s 16(whic)h -1(h)h 16(y)h -1(ou)h 16(are)h 16(compiling)h 13(F)h -3(unnelW)h -3(eb)h 16(is)h 16(not)h 16(one)h 16(of)h 16(the)h 17(ones)h 16(listed)h 16(in)h 16(the)h 229(\014le,)h 16(then)h 177 1859(c)s -1(ho)h 1(ose)h 16(the)h 17(closest)h 16(one)h 16(y)h -1(ou)h 15(can.)h 23(T)h -3(ry)h 15(the)h 97(if)h 15(y)h -1(ou)h 15(are)h 16(running)h 15(a)h 15(non-Sun)h 16(Unix.)h 22(If)h 16(y)h -1(ou)h 15(run)h 15(in)h -1(to)h 177 1908(serious)s 15(di\016culties,)h 14(y)h -1(ou)h 13(will)h 13(ha)h -1(v)h -1(e)h 14(to)h 14(customize)h 202(and)h 203(for)h 14(y)h -1(our)h 14(mac)h -1(hine.)h 17(See)h 15(the)h 177 1958(commen)s -1(ts)h 12(in)h 14(these)h 15(\014les)h 14(for)h 14(instructions)h 14(on)h 14(ho)h -1(w)h 14(to)h 13(do)h 14(this.)h 177 2031(Once)s 15(y)h -1(ou)h 14(ha)h -1(v)h -1(e)h 13(sp)h 1(eci\014ed)h 16(a)h 14(target)h 14(mac)h -1(hine,)h 12(compile)h 12(F)h -3(unnelW)h -3(eb)h 14(b)h -1(y)h 13(p)h 1(oin)h -1(ting)h 13(y)h -1(our)h 14(C)h 14(compiler)h 12(at)h 14(all)h 177 2081(the)s 17(\\)h 44(")h 16(\014les)h 17(in)h 16(the)h 186(directory)h -3(.)h 27(The)h 17(\\)h 88(",)h 15(and)h 16(\\)h 88(")h 16(\014les)h 17(do)h 16(not)h 16(participate)h 17(in)h 16(the)h 177 2131(compilatio)s -1(n,)h 12(but)h 14(app)h 1(ear)h 15(in)h 13(the)h 182(directory)h 15(b)h 1(ecause)h 15(they)h 15(w)h -1(ere)h 15(used)h 15(to)h 14(generate)h 15(the)h 15(\\)h 88(")h 177 2180(\014les.)s 21(The)h 15(\\)h 88(")h 13(\014les)h 15(are)h 15(included)h 15(b)h -1(y)h 73(\014les)h 15(of)h 14(the)h 15(same)h 14(name)h 13(and)h 15(do)h 14(not)h 15(need)h 16(to)h 14(b)h 1(e)h 15(compiled)h 177 2230(separately)s -3(.)h 18(Link)h 14(the)h 14(results.)h 177 2303(The)s 14(result)h 14(of)h 13(all)h 12(this)h 13(should)h 13(b)h 1(e)h 14(a)h 13(binary)h 13(executable)h 14(called)h 57(,)h 13(or)h 145(,)h 12(or)h 157(where)h 115(is)h 177 2353(whatev)s -1(er)h 16(\014le)h 14(extension)h 15(is)h 15(appropriate)h 15(on)h 14(the)h 15(target)h 15(mac)h -1(hine.)h 19(Clean)h 15(up)h 14(the)h 183(directory)h 15(b)h -1(y)h 177 2403(deleting)s 14(all)h 13(the)h 14(listing)h 13(and)h 14(ob)h 2(ject)h 14(\014les.)h 177 2676(Once)s 13(y)h -1(ou)h 10(ha)h -1(v)h -1(e)h 11(obtained)h 11(a)h 11(binary)h 11(executable,)h 12(y)h -1(ou)h 11(should)h 11(test)h 12(F)h -3(unnelW)h -3(eb)h 11(b)h 1(efore)h 12(maki)h -1(ng)h 9(it)h 11(a)h -1(v)h -2(ailabl)h -1(e)h 177 2725(to)s 14(users.)h 19(T)h -3(o)h 14(do)h 13(this:)h 228 2835(1.)s 20(Set)h 14(the)h 15(default)h 13(directory)h 15(to)h 14(b)h 1(e)h 14(the)h 181(directory)h -3(.)h 1032 2940(105)s 14 2 769 846 r 106 @eop 107 @bop0 107 @bop1 cmsy10.300 sf 239 2255(\017)s 239 2338(\017)s 239 2470(\017)s cmbx10.432 sf 177 957(4.5)s 70(Installing)h 21(F)h -6(unnelW)h -6(eb)h cmtt10.300 sf 571 174(master.fws)s 768 224(R)s 941(fwdir)h 1667 356(fw)s 22(+xmaster)h 264 472(master.fws)s 1796 571(results)s 771 1072(fwdir)s 1356 1172(scripts)s 1414 1444(admin)s 876 1494(/bin)s 1517 1577(fw)s 1304 1626(fw)s 281 1726(login)s 948 2090(/bin)s 990 2520(ex*)s 97(hi*)h cmti10.300 sf 1716 1444(or)s 177 1941(total)s 2(ly)h 14(self)h 14(c)h -2(ontaine)h -2(d)h 726 2040(F)s -3(unnelWeb)h 14(User's)h 12(Manual)h 1106 2338(F)s -3(unnelWeb)h 14(User's)h 13(Manual)h 163(F)h -3(unnelWeb)h 281 2388(Hacker's)s 14(Manual)h 864 2570(F)s -3(unnelWeb)h 18(User's)h 16(Manual)h cmr10.300 sf 228 42(2.)s 20(Cop)h -1(y)h 14(the)h 16(F)h -3(unnelW)h -3(eb)h 14(executable)h 16(in)h -1(to)h 14(the)h 16(scripts)h 16(directory)h 16(\(or)h 15(b)h 1(e)h 15(able)h 15(to)h 15(in)h -1(v)h -1(ok)h -1(e)h 14(it)h 14(from)h 13(the)h 281 91(scripts)s 15(directory\).)h 228 174(3.)s 20(Edit)h 17(the)h 18(script)h 238(.)h 27(Lo)h 1(cate)h 18(the)h 18(section)h 18(called)h 17(\\De\014ne)h 18(Sym)h -1(b)h 1(ol)h 15(F)h -3(or)h 17(the)h 18(Ro)h 1(ot)h 16(T)h -3(est)h 281 224(Directory")s 16(and)h 16(de\014ne)h 18(the)h 54(sym)h -1(b)h 1(ol)h 15(to)h 16(p)h 1(oin)h -1(t)h 16(to)h 16(the)h 16(F)h -3(unnelW)h -3(eb)h 16(ro)h 1(ot)h 16(directory)h 127(.)h 24(The)h 281 274(examples)s 13(in)h 13(the)h 15(comm)h -1(en)h -1(ts)h 13(in)h 13(the)h 15(script)h 14(should)h 14(mak)h -1(e)h 13(it)h 13(clear)h 14(what)h 14(is)h 14(required.)h 228 356(4.)s 20(In)h -1(v)h -1(ok)h -1(e)h 13(F)h -3(unnelW)h -3(eb)h 14(to)h 13(execute)h 16(the)h 15(master)h 13(test)h 15(script)h 15(with)h 13(the)h 15(comm)h -1(and)h 12(line)h 177 472(The)s 250(script)h 17(should)h 15(run)h 16(for)h 16(a)h 15(few)h 16(min)h -1(utes.)h 23(If)h 15(all)h 15(go)h 1(es)h 16(w)h -1(ell,)h 15(y)h -1(ou)h 16(will)h 14(\014nd)h 16(a)h 16(di\013erences)h 177 521(rep)s 1(ort)h 16(on)h 15(y)h -1(our)h 15(screen)h 17(rep)h 1(orting)h 16(zero)h 16(di\013erences.)h 24(If)h 14(this)h 15(happ)h 1(ens,)h 16(then)h 16(F)h -3(unnelW)h -3(eb)h 15(has)h 15(b)h 1(een)h 16(fully)h 177 571(tested)s 17(and)h 15(is)h 16(ready)h 16(to)h 15(b)h 1(e)h 16(made)h 14(a)h -1(v)h -2(ailabl)h -1(e)h 14(to)h 16(users.)h 24(Y)h -3(ou)h 15(should)h 15(delete)h 16(all)h 14(the)h 16(\014les)h 16(in)h 15(the)h 177 621(directory)s 15(and)h 14(pro)h 1(ceed)h 15(to)h 14(the)h 14(next)h 15(section)h 14(on)h 14(installing)h 12(F)h -3(unnelW)h -3(eb)h 13(for)h 14(users.)h 177 695(If)s 12(there)h 14(w)h -1(ere)h 13(one)h 13(or)h 13(more)h 11(di\013erences,)h 15(y)h -1(ou)h 12(can)h 12(either)h 14(giv)h -1(e)h 12(up)h 12(and)h 12(con)h -1(tact)h 13(the)h 13(author,)h 13(or)h 12(attempt)h 12(to)h 177 745(\014x)s 15(the)h 15(co)h 1(de)h 16(y)h -1(ourself.)h 21(If)h 14(y)h -1(ou)h 14(decide)h 16(to)h 15(\014x)h 14(the)h 16(co)h 1(de)h 16(y)h -1(ourself,)h 14(start)h 15(with)h 15(the)h 15(di\013erences)h 17(log)h 14(\014le)h 15(and)h 177 795(follo)s -1(w)h 12(y)h -1(our)h 14(nose.)h 18(Go)h 1(o)h 1(d)h 14(luc)h -1(k!)h 177 1072(A)s -1(t)h 15(this)h 15(stage)h 15(y)h -1(ou)h 14(should)h 15(ha)h -1(v)h -1(e)h 15(a)h 138(directory)h 15(tree)h 16(somewhere)h 15(in)h 15(y)h -1(our)h 14(\014le)h 15(system.)h 20(Its)h 16(con)h -1(ten)h -1(ts)h 177 1122(should)s 16(b)h 1(e)h 16(almo)h -1(st)h 14(iden)h -1(tical)h 15(to)h 16(the)h 16(directory)h 16(con)h -1(ten)h -1(ts)h 17(sp)h 1(eci\014ed)h 17(earlier)h 16(in)h 15(this)h 16(c)h -1(hapter)h 16(except)h 17(there)h 177 1172(should)s 14(no)h -1(w)h 13(b)h 1(e)h 15(an)h 13(additional)h 13(binary)h 13(executable)h 15(\014le)h 14(sitting)h 13(in)h 14(the)h 181(directory)h -3(.)h 177 1246(T)s -3(o)h 13(mak)h -1(e)h 13(F)h -3(unnelW)h -3(eb)h 13(a)h -1(v)h -2(ailabl)h -1(e)h 13(to)h 13(users,)h 15(y)h -1(ou)h 14(should:)h 228 1361(1.)s 20(Mak)h -1(e)h 14(the)h 14(en)h -1(tire)h 15(directory)h 15(tree)h 15(readable)h 14(to)h 14(all)h 12(users.)h 228 1444(2.)s 20(Mo)h -1(v)h -1(e)h 15(the)h 16(binary)h 15(executable)h 17(from)h 14(the)h 16(scripts)h 16(directory)h 16(to)h 16(the)h 140(directory)h 70(cop)h -1(y)h 16(it)h 15(to)h 281 1494(somewhere)s 14(con)h -1(v)h -1(enien)h -1(t)h 14(suc)h -1(h)h 15(as)h 14(a)h 115(directory)h -3(.)h 228 1577(3.)s 20(Set)h 17(up)h 16(a)h 16(sym)h -1(b)h 1(ol,)h 15(path,)h 17(or)h 16(comm)h -1(and)h 15(of)h 15(some)h 16(kind)h 16(b)h -1(y)h 16(the)h 17(name)h 15(of)h 76(that)h 16(\\p)h 1(oin)h -1(ts")h 16(to)h 16(the)h 281 1626(binary)s 17(executable.)h 30(If)h 18(p)h 1(ossible,)h 18(set)h 18(this)h 18(up)h 18(so)h 17(that)h 18(the)h 79(sym)h -1(b)h 1(ol)h 16(is)h 18(a)h -1(v)h -2(aila)h -1(ble)h 16(to)h 17(all)h 17(users.)h 281 1676(Alternativ)s -1(ely)h -3(,)h 20(y)h -1(ou)h 19(can)h 20(inform)h 17(in)h -1(terested)h 22(users)h 21(of)h 19(ho)h -1(w)h 19(they)h 20(can)h 20(add)h 20(a)h 19(comm)h -1(and)h 18(to)h 19(their)h 404 1726(comm)s -1(and)h 12(\014le)h 14(to)h 13(mak)h -1(e)h 13(the)h 14(comma)h -1(nd)h 12(a)h -1(v)h -2(ailable)h 12(to)h 14(them.)h 177 1841(If)s 16(y)h -1(ou)h 16(are)h 17(short)h 16(of)h 16(disk)h 16(space)h 17(or)h 17(ha)h -1(v)h -1(e)h 16(a)h 16(system)h 16(that)h 16(is)h 16(stresse)h 1(d)h 18(in)h 16(some)h 15(other)h 17(w)h -1(a)h -1(y)h -3(,)h 15(it)h 16(ma)h -1(y)h 14(b)h 1(e)h 17(of)h 177 1891(assistance)s 17(to)h 16(y)h -1(ou)h 15(to)h 15(kno)h -1(w)h 15(that)h 16(F)h -3(unnelW)h -3(eb)h 15(has)h 16(b)h 1(een)h 17(constructed)h 18(so)h 15(that)h 16(its)h 16(binary)h 15(executable)h 17(is)h 549 1941(.)s 19(The)h 14(binary)h 12(executable)h 15(do)h 1(es)h 14(not)h 14(rely)h 13(on)h 13(an)h -1(y)h 13(other)h 15(\014les)h 13(to)h 14(op)h 1(erate.)h 18(Nor)h 14(do)h 1(es)h 177 1991(it)s 13(care)h 14(ab)h 1(out)h 13(its)h 13(p)h 1(osition)h 13(in)h 13(the)h 13(\014le)h 14(system.)h 17(In)h 13(fact,)h 13(all)h 12(that)h 13(is)h 13(really)h 13(required)h 14(to)h 13(use)h 14(F)h -3(unnelW)h -3(eb)h 13(is)h 177 2040(the)s 13(binary)h 11(executable)h 13(and)h 12(the)h 490(.)h 19(Th)h -1(us,)h 12(if)h 11(y)h -1(ou)h 11(are)h 13(short)h 12(of)h 12(disk)h 11(space,)h 13(y)h -1(ou)h 177 2090(can)s 16(mo)h -1(v)h -1(e)h 15(the)h 17(binary)h 15(executable)h 18(to)h 15(y)h -1(our)h 16(\\)h 88(")h 15(directory)h 17(and)h 16(delete)h 17(the)h 17(en)h -1(tire)h 16(F)h -3(unnelW)h -3(eb)h 16(tree.)h 177 2140(Ho)s -1(w)h -1(ev)h -1(er,)h 14(making)h 11(the)h 15(tree)h 15(a)h -1(v)h -2(ailabl)h -1(e)h 13(to)h 13(users)h 16(is)h 14(encouraged)h 14(b)h 1(ecause:)h 281 2255(It)s 14(allo)h -1(ws)h 13(users)h 15(to)h 14(cop)h -1(y)h 13(the)h 15(tree)h 15(and)h 14(install)h 13(it)h 13(on)h 14(another)h 14(mac)h -1(hine)h 13(without)h 13(b)h 1(othering)h 14(y)h -1(ou.)h 281 2338(It)s 12(allo)h -1(ws)h 12(users)h 13(access)h 15(to)h 12(the)h 13(T)h 813 2347(E)s 836 2338(X)s 13(co)h 1(de)h 13(for)h 12(the)h 504(and)h 13(the)h 587 2388(.)s 281 2470(It)s 13(allo)h -1(ws)h 11(users)h 14(access)h 14(to)h 12(the)h 13(regression)h 14(test)h 14(suite.)h 18(This)h 12(ma)h -1(y)h 11(not)h 12(seem)h 13(imp)h 1(ortan)h -1(t,)h 10(but)h 13(it)h 12(could)h 281 2520(b)s 1(e)h 16(v)h -1(ery)h 15(con)h -1(v)h -1(enien)h -1(t)h 16(for)h 15(the)h 16(user)h 16(as)h 15(the)h 97(and)h 96(\014les)h 15(of)h 15(the)h 16(regression)h 16(test)h 16(suite)h 16(con)h -1(tain)h 281 2570(most)s 15(of)h 16(the)h 16(examples)h 16(from)h 14(the)h 502(.)h 26(By)h 16(making)h 14(them)h 15(a)h -1(v)h -2(ailable)h 14(y)h -1(ou)h 281 2620(will)s 12(sa)h -1(v)h -1(e)h 14(users)h 16(the)h 14(trouble)h 14(of)h 14(t)h -1(yping)h 13(them)h 13(in.)h 177 2735(Finally)s -3(,)h 15(y)h -1(ou)h 16(should)h 17(\014ll)h 16(in)h 16(and)h 17(send)h 17(o\013)h 17(a)h 17(F)h -3(unnelW)h -3(eb)h 16(registration)h 17(form.)h 24(This)h 17(allo)h -1(ws)h 16(me)h 15(to)h 17(get)h 17(a)h 177 2785(handle)s 17(on)h 17(the)h 17(size)h 18(and)h 17(needs)h 18(of)h 17(the)h 17(user)h 18(base,)h 18(and)h 17(y)h -1(ou)h 16(to)h 17(b)h 1(e)h 18(k)h -1(ept)h 17(informed)h 16(of)h 16(new)h 17(F)h -3(unnelW)h -3(eb)h 177 2835(releases)s 16(\(optional\).)h 17(See)h 14(Section)h 15(5.4)h 12(for)h 14(more)h 13(informati)h -1(on.)h 1032 2940(106)s 107 @eop 108 @bop0 108 @bop1 cmbx10.432 sf 177 42(4.6)s 70(Prin)h -2(ting)h 22(Man)h -2(uals)h 177 643(4.7)s 70(Installation)h 21(Problem)h -1(s?)h cmtt10.300 sf 684 257(u)s 16(manual.tex)h 92(h)h 16(manual.tex)h 1113 809(ross@spam.a)s -1(delai)h -1(de.ed)h -1(u.au)h cmti10.300 sf 933 157(F)s -3(unnelWeb)h 21(User's)h 19(Manual)h 146(F)h -3(unnelWeb)h 21(Hacker's)h 177 207(Manual)s 699 332(F)s -3(unnelWeb)h 13(Hacker's)h 12(Manual)h 1020 381(F)s -3(unnelWeb)h 15(User's)h 13(Manual)h 1097 431(F)s -3(unnelWeb)h 16(User's)h 14(Manual)h cmr10.300 sf 177 157(F)s -3(unnelW)h -3(eb)h 19(comes)h 19(with)h 19(t)h -1(w)h -1(o)h 19(man)h -1(ual)h -1(s,)h 19(a)h 530(and)h 19(a)h 312 207(.)s 25(Instructions)h 17(for)h 16(ho)h -1(w)h 15(to)h 16(t)h -1(yp)h 1(eset)h 17(and)h 16(prin)h -1(t)h 16(these)h 17(man)h -1(uals)h 14(app)h 1(ear)h 16(at)h 16(the)h 16(top)h 16(of)h 15(the)h 17(main)h 177 257(T)s 200 266(E)s 223 257(X)s 14(\014les)h 15(for)h 13(these)h 15(man)h -1(uals)h 281(and)h 272(.)h 177 332(There)s 12(is)h 11(no)h 11(need)h 12(to)h 11(prin)h -1(t)h 11(the)h 542(unless)h 11(y)h -1(ou)h 11(in)h -1(tend)h 11(to)h 11(mo)h 1(dify)h 9(F)h -3(unnelW)h -3(eb.)h 177 381(Ho)s -1(w)h -1(ev)h -1(er,)h 13(y)h -1(ou)h 13(should)h 13(mak)h -1(e)h 12(a)h 13(few)h 13(copies)h 14(of)h 13(the)h 507(a)h -1(v)h -2(ailable)h 11(for)h 13(users,)h 15(or)h 13(at)h 177 431(least)s 15(let)h 14(them)h 13(kno)h -1(w)h 14(where)h 15(the)h 15(T)h 765 440(E)s 788 431(X)s 14(source)h 16(for)h 14(the)h 511(is)h 14(k)h -1(ept)h 15(so)h 14(that)h 14(they)h 177 481(can)s 14(t)h -1(yp)h 1(eset)h 16(and)h 13(prin)h -1(t)h 14(it)h 14(themselv)h -1(es.)h 177 759(If)s 19(y)h -1(ou)h 19(run)h 19(in)h -1(to)h 19(an)h -1(y)h 19(problems)h 18(installing)h 17(F)h -3(unnelW)h -3(eb,)h 20(please)h 20(write)h 19(a)h 19(short)h 20(rep)h 1(ort)h 20(describing)h 20(the)h 177 809(problem)s 14(and)h 16(mail)h 13(it)h 15(to)h 15(the)h 16(author)h 16(Ross)h 15(William)h -1(s)h 14(\()h 546(\).)h 22(I)h 15(ma)h -1(y)h 14(not)h 15(b)h 1(e)h 177 859(able)s 15(to)h 15(help)h 15(y)h -1(ou)h 14(with)h 15(it)h 14(imm)h -1(ediately)h -4(,)h 13(but)h 15(I)h 15(certainly)h 15(w)h -1(an)h -1(t)h 15(to)h 14(kno)h -1(w)h 15(that)h 15(a)h 14(problem)h 14(exists)h 16(so)h 15(that)h 177 909(it)s 14(can)h 14(b)h 1(e)h 14(corrected)h 16(in)h 14(future)h 14(releases)h 16(of)h 13(F)h -3(unnelW)h -3(eb.)h 1032 2940(107)s 14 2 709 257 r 14 2 1059 257 r 108 @eop 109 @bop0 109 @bop1 cmr10.300 sf 1032 2940(108)s 109 @eop 110 @bop0 cmbx10.622 sf [<0C000000C00F800007C00FF8007FC00FFFFFFF800FFFFFFF800FFFFFFF000FFFFFFE00 0FFFFFFC000FFFFFF0000FFFFFE0000FFFFF80000FFFFE00000FFFF800000F800000000F 800000000F800000000F800000000F800000000F800000000F800000000F800000000F81 FF00000F8FFFE0000FBFFFF8000FFE03FE000FF001FF800FC000FFC00F80007FC00F0000 7FE00700007FF00000003FF00000003FF80000003FF80000003FF80000003FFC0000003F FC0600003FFC3F80003FFC7FE0003FFCFFE0003FFCFFF0003FFCFFF0003FFCFFF0003FFC FFF0003FF8FFE0003FF8FFE0003FF87FC0007FF07F00007FF07C00007FE03E0000FFE01F 0001FFC01FC003FF800FF00FFE0003FFFFFC0001FFFFF000007FFFC000000FFC0000> 40 57 -5 55 49] 53 dc cmbx10.432 sf [<1C007F00FF80FF80FFC0FFC0FFC07FC01CC000C000C001C0018001800380070006000E 001C0038003000> 16 21 -5 41 19] 39 dc 110 @bop1 cmtt10.300 sf 1620 1483(.fw)s cmti10.300 sf 1303 2735(you)s cmbx10.622 sf 177 379(Chapter)s 34(5)h cmbx10.746 sf 177 613(F)s -10(unnelW)h -10(eb)h 41(Administration)h cmbx10.300 sf 295 2161(GNU)s 19(license:)h 295 2386(P)s -1(ortabil)h -1(i)h -1(t)h -2(y:)h 1687 2486([ANSI])s cmbx10.432 sf 177 881(5.1)s 70(In)h -2(tro)h 2(duction)h 177 1315(5.2)s 70(The)h 22(User's)h 23(Com)h -1(m)h -2(i)h -1(tm)h -3(e)h -1(n)h -2(t)h 21(T)h -6(o)h 24(F)h -6(unnelW)h -6(eb)h cmr10.300 sf 177 999(Whether)s 21(a)h 19(computer)h 19(program)h 18(is)h 19(useful)h 20(dep)h 1(ends)h 21(not)h 20(just)h 19(on)h 19(the)h 21(functionalit)h -1(y)h 18(pro)h -1(vided)h 19(b)h -1(y)h 19(the)h 177 1049(program,)s 13(but)h 15(also)h 15(on)h 15(the)h 15(totalit)h -1(y)h 14(of)h 14(the)h 16(culture)h 16(and)h 14(services)h 17(surrounding)h 15(it)h 15(suc)h -1(h)h 15(as)h 15(license)h 16(costs,)h 177 1098(the)s 19(qualit)h -1(y)h 17(of)h 18(do)h 1(cumen)h -1(tation,)h 17(presenc)h 1(e)h 20(of)h 18(a)h 18(standard)h 19(and)h 18(so)h 18(on.)h 31(This)h 19(c)h -1(hapter)h 19(addresses)h 20(these)h 177 1148(issues)s 15(from)h 12(a)h 14(user)h 15(p)h 1(ersp)h 1(ectiv)h -1(e.)h 177 1434(One)s 20(of)h 19(the)h 21(problems)h 18(that)h 20(migh)h -2(t)h 18(prev)h -1(en)h -1(t)h 21(p)h 1(oten)h -1(tial)h 19(users)h 21(from)h 17(using)h 20(F)h -3(unnelW)h -3(eb)h 19(is)h 19(the)h 20(lev)h -1(el)h 19(of)h 177 1483(commi)s -1(tm)h -1(en)h -1(t)h 15(that)h 17(it)h 16(requires.)h 27(As)h 17(so)h 1(on)h 17(as)h 17(the)h 17(user)h 18(starts)h 17(creating)h 17(F)h -3(unnelW)h -3(eb)h 98(\014les,)h 17(the)h 18(user)h 177 1533(b)s 1(ecomes)h 14(dep)h 1(enden)h -1(t)h 15(on)h 13(the)h 14(F)h -3(unnelW)h -3(eb)h 13(program,)h 12(as)h 13(the)h 14(\014les)h 14(so)h 13(created)h 15(will)h 12(b)h 1(ecome)h 14(unmanageabl)h -1(e)h 177 1583(if)s 16(the)h 17(F)h -3(unnelW)h -3(eb)h 16(program)h 15(w)h -1(ere)h 17(to)h 17(b)h 1(ecome)h 16(una)h -1(v)h -2(ailable)h 14(for)h 17(some)h 15(reason.)h 27(There)h 17(are)h 17(a)h 17(n)h -1(um)h -1(b)h 1(er)h 15(of)h 177 1633(w)s -1(a)h -1(ys)h 14(in)h 14(whic)h -1(h)h 15(computer)h 14(programs)h 13(can)h 15(b)h 1(ecome)h 14(una)h -1(v)h -2(ailable,)h 12(including)h 14(op)h 1(erating)h 14(system)h 15(upgrades,)h 177 1683(cop)s -1(yrigh)h -1(t)h 12(problems,)h 11(inabilit)h -1(y)h 10(to)h 11(\014x)h 12(bugs,)h 12(or)h 12(just)h 13(the)h 12(inabilit)h -1(y)h 10(of)h 11(the)h 13(program)h 10(to)h 12(b)h 1(e)h 13(p)h 1(orted)h 13(to)h 12(a)h 11(new)h 177 1732(target)s 15(platform)h -1(.)h 177 1809(The)s 18(fact)h 17(is)h 17(that)h 18(F)h -3(unnelW)h -3(eb)h 16(de\014nes)h 19(an)h 17(input)h 17(language)h 17(and)h 17(that)h 17(curren)h -1(tly)h 18(there)h 19(is)h 17(only)h 16(one)h 18(im-)h 177 1859(plemen)s -1(tation)h 17(of)h 18(the)h 20(language.)h 32(Users)h 20(will)h 17(only)h 18(write)h 20(programs)h 17(using)h 19(that)h 19(language)h 17(if)h 18(they)h 20(feel)h 177 1908(comfortable)s 12(ab)h 1(out)h 14(the)h 15(a)h -1(v)h -2(aila)h -1(bili)h -1(t)h -1(y)h 12(of)h 13(its)h 14(implem)h -1(en)h -1(tatio)h -1(n.)h 177 1985(I)s 16(ha)h -1(v)h -1(e)h 16(b)h 1(een)h 18(critically)h 15(a)h -1(w)h -1(are)h 16(of)h 16(these)h 18(issues)h 17(throughout)h 16(the)h 17(dev)h -1(elopmen)h -1(t)h 15(of)h 16(F)h -3(unnelW)h -3(eb)h 16(and)h 16(ha)h -1(v)h -1(e)h 177 2034(tak)s -1(en)h 18(ev)h -1(ery)h 18(p)h 1(ossible)h 18(step)h 19(to)h 18(mak)h -1(e)h 16(F)h -3(unnelW)h -3(eb)h 17(a)h 18(solid)h 16(base)h 19(on)h -1(to)h 17(whic)h -1(h)h 18(to)h 17(build)h 17(programs.)h 28(The)h 177 2084(follo)s -1(wing)h 11(p)h 1(oin)h -1(ts)h 14(describ)h 1(e)h 16(the)h 14(actions)h 14(I)h 14(ha)h -1(v)h -1(e)h 14(tak)h -1(en.)h 599 2161(F)s -3(unnelW)h -3(eb's)h 16(C)h 16(source)h 18(co)h 1(de)h 17(has)h 17(b)h 1(een)h 17(released)h 18(under)h 17(GNU)h 17(General)h 295 2210(Public)s 13(License)h 14(V)h -3(ersion)h 13(2.)h 18(This)h 13(means)h 12(that)h 13(the)h 14(source)h 14(co)h 1(de)h 14(to)h 13(F)h -3(unnelW)h -3(eb)h 12(will)h 12(alw)h -1(a)h -1(ys)h 295 2260(b)s 1(e)h 18(a)h -1(v)h -2(aila)h -1(ble)h 15(to)h 17(an)h -1(y)h -1(one)h 16(who)h 17(w)h -1(an)h -1(ts)h 17(it.)h 26(The)h 17(F)h -3(unnelW)h -3(eb)h 16(program)h 15(can)h 17(nev)h -1(er)h 18(b)h 1(e)h 18(tak)h -1(en)h 295 2310(a)s -1(w)h -1(a)h -1(y)h 13(from)h 12(y)h -1(ou.)h 558 2386(F)s -3(unnelW)h -3(eb)h 17(has)h 17(b)h 1(een)h 18(designed)h 17(and)h 17(written)h 17(to)h 17(b)h 1(e)h 17(extremely)h 17(p)h 1(ortable.)h 295 2436(First,)s 17(all)h 15(F)h -3(unnelW)h -3(eb)h 16(really)h 16(do)h 1(es)h 17(is)h 16(read)h 17(and)h 17(write)h 16(text)h 17(\014les.)h 26(This)h 17(mak)h -1(es)h 15(it)h 16(easy)h 17(to)h 295 2486(mak)s -1(e)h 9(p)h 1(ortable.)h 17(Second,)h 11(F)h -3(unnelW)h -3(eb)h 10(is)h 10(written)h 10(in)h 10(the)h 11(C)h 10(programm)h -1(i)h -1(ng)h 8(language)h 295 2536(with)s 15(p)h 1(ortabilit)h -1(y)h 13(as)h 15(a)h 14(ma)h 2(jor)h 14(design)h 14(goal.)h 20(Third,)h 14(F)h -3(unnelW)h -3(eb)h 15(has)h 14(already)h 15(b)h 1(een)h 16(p)h 1(orted)h 295 2586(to)s 13(four)h 14(p)h 1(opular)h 12(platforms:)h 16(SunOS,)h 14(V)h -5(AX)h 14(VMS,)h 13(PC,)h 13(and)h 13(Macin)h -1(tosh)h 13(and)h 14(it)h 13(should)h 13(not)h 295 2635(pro)s -1(v)h -1(e)h 16(hard)h 16(to)h 15(mo)h -1(v)h -1(e)h 14(it)h 15(to)h 16(others.)h 24(F)h -3(ourth,)h 15(F)h -3(unnelW)h -3(eb)h 15(comes)h 16(with)h 15(a)h 15(h)h -1(uge)h 16(automated)h 295 2685(regression)s 16(test)h 15(suite.)h 20(This)h 14(mak)h -1(es)h 13(it)h 14(easy)h 15(to)h 14(pinp)h 1(oin)h -1(t)h 13(problems)h 13(when)h 15(it)h 14(is)h 14(mo)h -1(v)h -1(ed)h 13(to)h 14(a)h 295 2735(new)s 13(platform.)h 16(P)h -1(ortabilit)h -1(y)h 11(is)h 12(imp)h 1(ortan)h -1(t)h 11(b)h 1(ecause,)h 15(ev)h -1(en)h 13(if)h 88(are)h 13(not)h 13(using)h 12(F)h -3(unnelW)h -3(eb)h 295 2785(on)s 17(some)h 15(funn)h -1(y)h 16(platform,)h 15(y)h -1(ou)h 16(ma)h -1(y)h 14(w)h -1(an)h -1(t)h 17(to)h 16(send)h 17(a)h 17(computer)h 16(program)h 15(written)h 17(using)h 295 2835(F)s -3(unnelW)h -3(eb)h 14(to)h 13(someone)h 14(who)h 13(do)h 1(es.)h 1032 2940(109)s 110 @eop 111 @bop0 111 @bop1 cmbx10.432 sf 177 1077(5.3)s 70(Do)h 2(cum)h -1(e)h -1(n)h -2(tation)h 177 1990(5.4)s 70(Registration)h 177 2494(5.5)s 70(Supp)h 2(ort)h cmbx10.300 sf 295 42(Qualit)s -1(y:)h 295 216(Do)s 1(cumen)h -1(tati)h -1(on:)h 295 540(Standardi)s -1(zatio)h -1(n:)h 177 2156(Figure)s 14(4)h cmti10.300 sf 1746 216(F)s -3(un-)h 295 266(nelWeb)s 19(Hacker's)h 18(Manual)h 1123 1477(F)s -3(unnelWeb)h 15(User's)h 13(Manual)h 266 1602(F)s -3(unnelWeb)h 19(Hacker's)h 18(Manual)h 419 2835(months)s 238(unp)h -2(aid)h cmtt10.300 sf 264 1311("FunnelWeb)s 20(User's)h 64(Manual":)h 20(Tutorial,)h 20(Hints,)h 21(Reference)h 20(Manual.)h 264 1360("FunnelWeb)s 20(Hacker's)h 20(Manual":)h 20(Notes)h 21(on)h 21(Design)h 21(and)h 21(Implementation)h -1(.)h 532 2231(ross@spam.ade)s -1(laide)h -1(.edu.)h -1(au)h cmr10.300 sf 492 42(The)s 20(F)h -3(unnelW)h -3(eb)h 18(source)h 21(co)h 1(de)h 20(is)h 19(high)h 18(qualit)h -1(y)h 18(co)h 1(de.)h 35(Although)h 19(it)h 18(has)h 20(not)h 295 91(b)s 1(een)h 13(formall)h -1(y)h 10(dev)h -1(elop)h 1(ed)h 12(under)h 12(an)h -1(y)h 11(particular)h 12(co)h 1(ding)h 11(standard,)h 12(it)h 11(is)h 12(w)h -1(ell)h 11(designed)h 12(and)h 295 141(do)s 1(cumen)h -1(ted.)h 18(Design)h 14(decisions)h 14(ha)h -1(v)h -1(e)h 14(not)h 14(b)h 1(een)h 15(tak)h -1(en)h 14(ligh)h -1(tly)h -3(.)h 652 216(F)s -3(unnelW)h -3(eb)h 16(is)h 16(w)h -1(ell)h 15(do)h 1(cumen)h -1(ted)h 16(b)h -1(y)h 16(this)h 17(man)h -1(ual)h 14(and)h 16(b)h -1(y)h 16(the)h 756 266(.)s 29(This)h 17(is)h 17(imp)h 1(ortan)h -1(t)h 16(b)h 1(ecause)h 19(it)h 17(means)h 16(that)h 18(if)h 16(y)h -1(ou)h 17(w)h -1(an)h -1(t)h 17(to)h 295 316(send)s 13(someone)h 11(a)h 11(program)h 10(written)h 12(using)h 12(F)h -3(unnelW)h -3(eb,)h 11(y)h -1(ou)h 11(can)h 12(simply)h 9(p)h 1(oin)h -1(t)h 11(them)h 11(to)h 12(this)h 295 366(man)s -1(ual)h 8(rather)h 12(than)h 11(ha)h -1(ving)h 9(to)h 10(explain)h 10(it)h 11(all)h 9(y)h -1(ourself.)h 17(It)h 10(is)h 11(also)h 10(comforting)h 8(for)h 11(managers)h 295 415(who)s 14(are)h 15(con)h -1(trolling)h 13(source)h 15(co)h 1(de)h 15(to)h 14(kno)h -1(w)h 14(that)h 14(the)h 15(format)h 12(in)h 14(whic)h -1(h)h 14(the)h 14(source)h 16(co)h 1(de)h 15(is)h 295 465(written)s 15(is)h 13(w)h -1(ell-do)h 1(cumen)h -1(ted.)h 657 540(Users)s 15(who)h 13(create)h 14(source)h 15(\014les)h 13(using)h 13(F)h -3(unnelW)h -3(eb)h 13(are)h 14(not)h 13(only)h 12(com-)h 295 590(mitting)s 15(to)h 18(the)h 18(F)h -3(unnelW)h -3(eb)h 16(program;)h 17(they)h 18(are)h 18(also)h 17(in)h -1(v)h -1(esting)h 17(in)h 17(the)h 18(F)h -3(unnelW)h -3(eb)h 17(lan-)h 295 640(guage.)s 22(If)h 14(F)h -3(unnelW)h -3(eb's)h 15(language)h 14(c)h -1(hanges)h 16(radically)h 13(for)h 15(some)h 14(reason,)h 16(then)h 16(this)h 15(in)h -1(v)h -1(est-)h 295 690(men)s -1(t)h 14(b)h -1(y)h 15(users)h 16(will)h 13(b)h 1(e)h 16(undermined.)h 20(T)h -3(o)h 14(protect)h 16(this)h 15(in)h -1(v)h -1(estmen)h -1(t,)h 14(I)h 15(in)h -1(tend)h 15(to)h 14(main)h -1(tain)h 295 740(an)s 14(\\o\016cial")h 12(v)h -1(ersion)h 15(of)h 13(F)h -3(unnelW)h -3(eb)h 14(whose)h 14(language)h 13(will)h 13(not)h 14(c)h -1(hange)h 15(radically)h -3(,)h 12(at)h 13(least)h 295 789(not)s 14(in)h 14(a)h 13(non)h 14(bac)h -1(kw)h -1(ard)h 14(compatibl)h -1(e)h 13(manner.)h 177 864(It)s 17(is)h 16(m)h -1(y)h 15(hop)h 1(e)h 16(that)h 17(the)h 17(com)h -1(binatio)h -1(n)h 15(of)h 16(these)h 17(factors)h 17(will)h 15(alleviate)h 15(an)h -1(y)h 16(fears)h 17(that)h 17(users)h 18(ma)h -1(y)h 14(ha)h -1(v)h -1(e)h 177 914(ab)s 1(out)h 14(comm)h -1(itting)h 11(their)h 15(source)h 15(\014les)h 14(to)h 14(F)h -3(unnelW)h -3(eb.)h 177 1194(The)s 14(follo)h -1(wing)h 12(F)h -3(unnelW)h -3(eb)h 13(do)h 1(cumen)h -1(tation)h 13(is)h 14(a)h -1(v)h -2(aila)h -1(ble:)h 177 1477(Ev)s -1(ery)h -1(one)h 14(in)h -1(v)h -1(olv)h -1(ed)h 12(with)h 13(F)h -3(unnelW)h -3(eb)h 12(should)h 13(read)h 14(the)h 493(.)h 19(It)h 13(con)h -1(tains)h 13(ev)h -1(ery-)h 177 1527(thing)s 14(y)h -1(ou)h 13(need)h 15(to)h 14(kno)h -1(w)h 13(ab)h 1(out)h 14(ho)h -1(w)h 13(to)h 14(use)h 15(F)h -3(unnelW)h -3(eb.)h 17(In)h 14(fact,)h 13(y)h -1(ou)h 14(are)h 14(reading)h 14(it)h 13(no)h -1(w!)h 177 1602(The)s 566(is)h 17(for)h 17(those)h 18(who)h 17(w)h -1(an)h -1(t)h 17(to)h 17(install,)h 17(mo)h 1(dif)h -1(y)h -3(,)h 16(\014x,)h 17(\014ddle)h 18(with,)h 17(and)h 177 1652(generally)s 14(hac)h -1(k)h 14(the)h 14(F)h -3(unnelW)h -3(eb)h 13(C)h 14(source)h 15(co)h 1(de.)h 177 1727(Both)s 16(of)h 14(these)h 17(man)h -1(uals)h 13(are)h 16(shipp)h 1(ed)h 16(with)h 14(the)h 16(F)h -3(unnelW)h -3(eb)h 15(distribution)h 15(kit,)h 14(and)h 15(should)h 15(b)h 1(e)h 16(a)h -1(v)h -2(ailabl)h -1(e)h 177 1777(on)s 16(y)h -1(our)h 15(mac)h -1(hine)h 14(in)h 16(the)h 16(form)h 14(of)h 15(LaT)h -3(eX)h 15(text)h 17(\014les.)h 23(If)h 16(y)h -1(ou)h 15(cannot)h 16(\014nd)h 16(them,)h 15(y)h -1(ou)h 15(can)h 16(obtain)h 15(them)h 177 1827(from)s 12(the)h 15(F)h -3(unnelW)h -3(eb)h 13(FTP)h 14(arc)h -1(hiv)h -1(e)h 14(\(see)h 16(Section)h 14(5.11\).)h 177 2106(If)s 13(y)h -1(ou)h 13(install)h 13(or)h 13(use)h 15(F)h -3(unnelW)h -3(eb,)h 12(please)h 14(register)h 15(b)h -1(y)h 13(\014lling)h 12(in)h 13(and)h 14(returning)h 14(the)h 14(registration)h 13(form)h 12(in)h 352 2156(.)s 18(F)h -3(eel)h 14(free)h 15(to)h 13(expand)h 15(the)h 14(form)h 12(if)h 13(there)h 15(is)h 14(not)h 14(enough)h 14(ro)h 1(om.)h 177 2231(Email)s 15(the)h 18(form)h 16(to)h 564(,)h 16(or)h 17(snail)h 17(mail)h 15(it)h 17(to)h 17(Ross)h 17(William)h -2(s,)h 17(16)h 16(Lerwic)h -1(k)h 177 2281(Av)s -1(en)h -1(ue,)h 12(Hazelw)h -1(o)h 1(o)h 1(d)h 11(P)h -1(ark)h 11(5066,)h 10(Australia.)h 17(Y)h -3(ou)h 11(ma)h -1(y)h 9(wish)h 11(to)h 11(mak)h -1(e)h 9(a)h 11(con)h -1(tribution)h 11(when)h 11(y)h -1(ou)h 11(register.)h 177 2331(See)s 15(Section)h 14(5.5)h 13(for)h 14(more)h 13(inform)h -1(ation.)h 177 2610(F)s -3(unnelW)h -3(eb)h 13(is)h 14(released)h 15(\\as)h 14(is")h 13(under)h 15(a)h 13(GNU)h 14(license,)h 14(and)h 14(no)h 13(formal)h 12(supp)h 1(ort)h 14(is)h 14(a)h -1(v)h -2(ailabl)h -1(e.)h 17(Y)h -3(ou)h 13(ha)h -1(v)h -1(e)h 177 2660(the)s 20(righ)h -1(t)h 18(to)h 19(mak)h -1(e)h 17(c)h -1(hanges)h 20(to)h 19(F)h -3(unnelW)h -3(eb)h 18(and)h 19(to)h 19(use)h 20(the)h 19(mo)h 1(di\014ed)h 18(v)h -1(ersions)h 19(created)h 21(b)h -1(y)h 18(random)h 177 2710(programm)s -1(ers.)h 17(Ho)h -1(w)h -1(ev)h -1(er,)h 14(this)h 14(is)h 14(discouraged)h 14(\(see)h 15(Section)h 15(5.9\).)h 177 2785(In)s 16(fact)h 16(the)h 17(supp)h 1(ort)h 17(that)h 16(is)h 16(most)h 15(needed)h 17(is)h 16(y)h -1(our)h 16(\014nancial)h 15(supp)h 1(ort)h 17(for)h 16(the)h 16(F)h -3(unnelW)h -3(eb)h 16(dev)h -1(elop)h 1(ers!)h 177 2835(It)s 17(has)h 17(tak)h -1(en)h 165(of)h 17(full-tim)h -2(e)h 153(w)h -1(ork)h 16(to)h 17(bring)h 17(F)h -3(unnelW)h -3(eb)h 17(to)h 16(y)h -1(ou)h 17(in)h 17(its)h 17(curren)h -1(t)h 18(form.)h 26(I)h 1032 2940(110)s 111 @eop 112 @bop0 cmtt8.300 sf [ 16 14 -1 13 18] 114 dc [ 16 21 0 13 18] 112 dc [<3F807FE070F0207000700FF03FF07870F070E070E070F0F07FFE1F3E> 16 14 -2 13 18] 97 dc [ 24 14 1 13 18] 109 dc [ 24 14 0 13 18] 117 dc cmr8.300 sf [ 32 23 0 22 26] 89 dc 112 @bop1 cmbx10.300 sf 650 2279(Figure)s 14(4)h cmtt8.300 sf 1179 2088(ross@sp)s -1(am.)h -1(ad)h -1(ela)h -1(ide)h -1(.ed)h -1(u.a)h -1(u)h cmr10.300 sf 825 2279(:)s 18(The)h 15(F)h -3(unnelW)h -3(eb)h 13(registration)h 14(form.)h 1032 2940(111)s cmr8.300 sf 343 2038(T)s -3(o)h 433(register)h 431(as)h 432(a)h 281 2088(F)s -3(unnelW)h -3(eb)h 13(user,)h 15(please)h 14(\014ll)h 14(in)h 15(this)h 14(form)h 14(and)h 14(email)h 13(it)h 15(to)h 458(,)h 14(or)h 14(snail)h 14(mail)h 281 2138(it)s 13(to)h 12(Ross)h 13(Williams,)h 11(16)h 13(Lerwic)h -1(k)h 12(Av)h -1(en)h -1(ue,)h 12(Hazelw)h -1(o)h 1(o)h 1(d)h 11(P)h -1(ark)h 12(5066,)h 12(Australia.)h 18(Y)h -3(ou)h 13(ma)h -1(y)h 12(wish)h 12(to)h 13(mak)h -1(e)h 11(a)h 281 2188(con)s -1(tribu)h -1(tion)h 9(when)h 11(y)h -1(ou)h 11(register.)h 13(See)h 11(Section)h 9(5.5)h 11(for)h 11(more)h 10(informatio)h -1(n.)h cmtt10.300 sf 264 602(+-------------)s -1(-----)h -1(----F)h -1(unnel)h -1(Web)h 20(Registrati)h -1(on)h 20(Form--------)h -1(-----)h -1(----)h -1(-----)h -1(+)h 264 652(|)s 22(1.)h 21(Date:)h 1350(|)h 264 702(|)s 1547(|)h 264 751(|)s 22(2.)h 21(Title)h 21(and)h 21(name:)h 1132(|)h 264 801(|)s 1547(|)h 264 851(|)s 22(3.)h 21(Internet)h 20(email)h 21(address:)h 957(|)h 264 901(|)s 1547(|)h 264 951(|)s 22(4.)h 21(Snail)h 21(mail)h 21(address:)h 1044(|)h 264 1000(|)s 1547(|)h 264 1050(|)s 22(5.)h 21(Work)h 21(phone)h 21(number)h 21(\(country,ar)h -1(ea,n)h -1(umber)h -1(\):)h 586(|)h 264 1100(|)s 1547(|)h 264 1150(|)s 22(6.)h 21(Which)h 21(category)h 20(of)h 22(FunnelWeb)h 20(user)h 20(best)h 21(describes)h 20(you?)h 326(|)h 264 1200(|)s 153(Latent)h 86(-)h 21(Installed)h 20(FunnelWeb,)h 20(but)h 21(don't)h 21(intend)h 20(to)h 22(use)h 21(it.)h 86(|)h 264 1250(|)s 153(Beginner)h 42(-)h 21(Haven't)h 21(used)h 21(FunnelWeb)h 19(much)h 21(yet;)h 21(have)h 21(an)h 22(open)h 21(mind.)h 20(|)h 264 1299(|)s 153(Casual)h 86(-)h 21(Use)h 21(FunnelWeb)h 20(occasionally.)h 542(|)h 264 1349(|)s 153(Convert)h 64(-)h 21(Use)h 21(FunnelWeb)h 20(to)h 22(do)h 21(most)h 21(programming.)h 324(|)h 264 1399(|)s 153(Fanatic)h 64(-)h 21(FunnelWeb)h 20(has)h 21(become)h 21(a)h 21(way)h 22(of)h 21(life.)h 369(|)h 264 1449(|)s 1547(|)h 264 1499(|)s 22(7.)h 21(What)h 21(changes)h 21(or)h 21(new)h 21(features)h 20(would)h 21(you)h 21(like)h 21(to)h 22(see)h 21(in)h 21(FunnelWeb?)h 63(|)h 264 1548(|)s 1547(|)h 264 1598(|)s 1547(|)h 264 1648(|)s 1547(|)h 264 1698(|)s 1547(|)h 264 1748(|)s 1547(|)h 264 1797(|)s 1547(|)h 264 1847(|)s 22(8.)h 21(Do)h 22(you)h 21(want)h 21(to)h 21(be)h 22(kept)h 21(informed)h 20(of)h 21(new)h 21(FunnelWeb)h 20(developments?)h 106(|)h 264 1897(|)s 1547(|)h 264 1947(+-------------)s -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(----)h -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(-----)h -1(----)h -1(-----)h -1(+)h 112 @eop 113 @bop0 cmr10.300 sf [<0080008007E01898308460824081C087C08FC08FC086E080F0807E803FC01FF00FF803 FC00BE008E00876087F083F083E0838082408240842088189007E000800080> 16 33 -2 30 21] 36 dc 113 @bop1 cmsy10.300 sf 883 1026(\015)s 239 1317(\017)s 239 1401(\017)s 239 1484(\017)s 239 1567(\017)s 239 1650(\017)s cmbx10.432 sf 177 910(5.6)s 70(Cop)h -2(yrigh)h -2(t)h 177 2154(5.7)s 70(No)h -2(w)h -2(arran)h -2(t)h -2(y)h cmti10.300 sf 1060 1317(F)s -3(unnelWeb)h 16(Hacker's)h 15(Manual)h 657 1817(F)s -3(unnelWeb)h 16(User's)h 15(Manual)h 96(F)h -3(unnelWeb)h 16(Hacker's)h 15(Manual)h cmtt10.300 sf 243 382(Renaissanc)s -1(e)h 20(Software)h 20(Pty)h 21(Ltd)h 243 432(Email:)s 20(ross@spam.ade)h -1(laide)h -1(.edu.)h -1(au)h 243 482(Snail:)s 20(16)h 21(Lerwick)h 21(Avenue,)h 20(Hazelwood)h 20(Park)h 21(5066,)h 21(Australia.)h 193 1151(ross@spam.adel)s -1(aide.)h -1(edu.a)h -1(u)h 1369 1401(fw)s 22(+hlicense)h 20(+jlicense.t)h -1(xt)h 505 1484(help)s 681 1567(prep.ai.mit.edu)s 60(/pub/gnu/CO)h -1(PYIN)h -1(G-2)h 308 2486(11.)s 21(BECAUSE)h 20(THE)h 22(PROGRAM)h 20(IS)h 21(LICENSED)h 20(FREE)h 21(OF)h 22(CHARGE,)h 20(THERE)h 21(IS)h 21(NO)h 22(WARRANTY)h 264 2536(FOR)s 22(THE)h 21(PROGRAM,)h 20(TO)h 21(THE)h 21(EXTENT)h 21(PERMITTED)h 20(BY)h 21(APPLICABLE)h 20(LAW.)h 43(EXCEPT)h 20(WHEN)h 264 2586(OTHERWISE)s 20(STATED)h 21(IN)h 21(WRITING)h 21(THE)h 21(COPYRIGHT)h 20(HOLDERS)h 20(AND/OR)h 21(OTHER)h 20(PARTIES)h 264 2635(PROVIDE)s 21(THE)h 21(PROGRAM)h 20("AS)h 21(IS")h 22(WITHOUT)h 20(WARRANTY)h 20(OF)h 21(ANY)h 22(KIND,)h 20(EITHER)h 21(EXPRESSED)h 264 2685(OR)s 22(IMPLIED,)h 20(INCLUDING,)h 20(BUT)h 21(NOT)h 21(LIMITED)h 20(TO,)h 21(THE)h 22(IMPLIED)h 20(WARRANTIES)h 20(OF)h 264 2735(MERCHANTABILIT)s -1(Y)h 20(AND)h 21(FITNESS)h 21(FOR)h 21(A)h 21(PARTICULAR)h 20(PURPOSE.)h 42(THE)h 21(ENTIRE)h 21(RISK)h 21(AS)h 264 2785(TO)s 22(THE)h 21(QUALITY)h 20(AND)h 21(PERFORMANCE)h 20(OF)h 21(THE)h 21(PROGRAM)h 21(IS)h 21(WITH)h 21(YOU.)h 43(SHOULD)h 20(THE)h 264 2835(PROGRAM)s 21(PROVE)h 20(DEFECTIVE,)h 20(YOU)h 21(ASSUME)h 21(THE)h 21(COST)h 21(OF)h 21(ALL)h 22(NECESSARY)h 20(SERVICING,)h cmr10.300 sf 177 42(don't)s 15(w)h -1(an)h -1(t)h 14(to)h 15(incon)h -1(v)h -1(enience)h 15(users)h 17(who)h 14(install)h 14(F)h -3(unnelW)h -3(eb,)h 14(pla)h -1(y)h 14(with)h 14(it,)h 15(and)h 14(then)h 16(hardly)h 14(ev)h -1(er)h 16(use)h 177 91(it.)s 18(If)h 14(y)h -1(ou)h 14(are)h 14(in)h 14(this)h 14(category)h -3(,)h 13(please)h 15(register,)h 15(but)h 14(don't)h 14(b)h 1(other)h 15(con)h -1(tributing.)h 18(Ho)h -1(w)h -1(ev)h -1(er,)h 14(if)h 13(y)h -1(ou)h 14(\014nd)h 177 141(that)s 15(F)h -3(unnelW)h -3(eb)h 14(has)h 15(b)h 1(ecome)h 15(a)h 14(useful)h 15(programm)h -1(ing)h 12(to)h 1(ol,)h 14(a)h 14(con)h -1(tribution)h 15(of)h 14(some)h 14(p)h 1(ositiv)h -1(e)h 14(m)h -1(ultipl)h -1(e)h 177 191(of)s 13(US$50)h 14(w)h -1(ould)h 13(b)h 1(e)h 14(appreciated.)h 177 266(T)s -3(o)h 13(mak)h -1(e)h 13(a)h 13(con)h -1(tribution,)h 13(send)h 15(pa)h -1(ymen)h -1(t)h 13(with)h 13(a)h 14(completed)h 13(registration)h 14(form)h 12(\(see)h 15(Section)h 15(5.4\))h 13(to:)h 177 598(P)s -1(a)h -1(ymen)h -1(t)h 14(can)h 15(b)h 1(e)h 15(b)h -1(y)h 15(p)h 1(ersonal)h 15(or)h 15(bank)h 15(c)h -1(heque)h 16(to)h 14(an)h -1(y)h 15(bank)h 15(in)h 14(the)h 15(w)h -1(orld)h 15(or)h 15(b)h -1(y)h 14(Visa)h 15(or)h 15(Mastercard.)h 177 648(Please)s 18(giv)h -1(e)h 16(the)h 17(card)h 17(name,)h 16(n)h -1(um)h -1(b)h 1(er,)h 16(expiry)h 17(date,)h 17(and)h 17(the)h 17(amoun)h -1(t)h 15(to)h 16(b)h 1(e)h 18(paid)h 16(in)h 16(US)h 17(dollars.)h 26(All)h 177 698(con)s -1(tributions)h 16(will)h 15(b)h 1(e)h 17(appreciated)h 17(and)h 16(will)h 15(encourage)h 17(further)h 17(F)h -3(unnelW)h -3(eb)h 16(dev)h -1(elopmen)h -1(t.)h 24(Ho)h -1(w)h -1(ev)h -1(er,)h 177 748(no)s 14(undertaking)h 14(is)h 13(made)h 13(whatso)h 1(ev)h -1(er)h 15(ab)h 1(out)h 14(ho)h -1(w)h 13(the)h 15(money)h 12(will)h 13(b)h 1(e)h 14(used.)h 177 1026(The)s 14(F)h -3(unnelW)h -3(eb)h 14(program)h 12(is)h 14(Cop)h -1(yrigh)h -1(t)h 894 1025(c)s 938 1026(1992)s 13(Ross)h 14(William)h -2(s.)h 177 1101(Ho)s -1(w)h -1(ev)h -1(er,)h 28(F)h -3(unnelW)h -3(eb)h 25(has)h 25(b)h 1(een)h 27(released)h 26(b)h -1(y)h 25(the)h 26(author)h 26(and)h 25(cop)h -1(yrigh)h -1(t)h 24(o)h -1(wner)h 26(Ross)h 25(William)h -2(s)h 177 1151(\()s 547(\))h 17(under)h 20(V)h -3(ersion)h 19(2)h 18(of)h 18(the)h 20(GNU)h 18(General)h 19(Public)h 19(License)h 20(published)h 177 1201(b)s -1(y)h 14(the)h 14(F)h -3(ree)h 15(Soft)h -1(w)h -1(are)h 14(F)h -3(oundation.)h 16(Here)h 15(are)h 15(some)h 13(w)h -1(a)h -1(ys)h 13(that)h 14(y)h -1(ou)h 14(can)h 14(obtain)h 13(a)h 14(cop)h -1(y)h 13(of)h 14(this)h 14(license.)h 281 1317(The)s 14(license)h 15(app)h 1(ears)h 15(as)h 14(an)h 13(app)h 1(endix)h 14(in)h 14(the)h 538(.)h 281 1401(If)s 13(y)h -1(ou)h 14(ha)h -1(v)h -1(e)h 14(a)h 13(w)h -1(orking)h 13(v)h -1(ersion)h 14(of)h 13(F)h -3(unnelW)h -3(eb,)h 13(in)h -1(v)h -1(ok)h -1(e)h 13(it)h 14(with)h 582(.)h 281 1484(Lo)s 1(ok)h 13(in)h 14(the)h 115(mo)h 1(dule)h 13(of)h 13(the)h 14(F)h -3(unnelW)h -3(eb)h 14(source)h 15(co)h 1(de.)h 281 1567(FTP)s 14(the)h 15(license)h 14(from)h 353(in)h 408(.)h 281 1650(W)s -3(rite)h 13(to)h 14(the)h 15(F)h -3(ree)h 14(Soft)h -1(w)h -1(are)h 14(F)h -3(oundation,)h 12(Inc.,)h 13(675)h 14(Mass)h 14(Av)h -1(e,)h 14(Cam)h -1(bridg)h -1(e,)h 12(MA)h 14(02139,)h 12(USA.)h 177 1767(The)s 14(license)h 15(allo)h -1(ws)h 12(y)h -1(ou)h 14(to)h 13(redistribute)h 15(F)h -3(unnelW)h -3(eb)h 14(and/or)h 13(mo)h 1(dify)h 11(it)h 14(under)h 14(certain)h 15(conditions.)h 17(The)h 177 1817(license)s 15(do)h 1(es)h 15(not)h 14(co)h -1(v)h -1(er)h 15(the)h 512(and)h 553(whic)h -1(h)h 14(are)h 177 1867(distributed)s 15(under)h 14(a)h 14(simpler)h 13(license)h 14(that)h 14(prohibits)h 14(c)h -1(hanges.)h 177 1941(Note:)s 23(F)h -3(unnelW)h -3(eb)h 15(is)h 16(distributed)h 16(WITHOUT)h 16(ANY)h 16(W)h -5(ARRANTY;)h 15(without)h 16(ev)h -1(en)h 16(the)h 17(impl)h -1(ied)h 14(w)h -1(ar-)h 177 1991(ran)s -1(t)h -1(y)h 14(of)h 13(MER)h -1(CHANT)h -3(ABILITY)h 14(or)h 14(FITNESS)h 14(F)h -1(OR)h 14(A)h 14(P)h -3(AR)h -3(TICULAR)h 13(PURPOSE.)h 177 2270(Users)s 15(of)h 13(F)h -3(unnelW)h -3(eb)h 13(should)h 13(b)h 1(e)h 14(a)h -1(w)h -1(are)h 13(that)h 14(F)h -3(unnelW)h -3(eb)h 12(comes)h 13(with)h 13(no)h 14(w)h -1(arran)h -1(t)h -1(y)h -3(.)h 17(Here)h 14(is)h 14(an)h 13(extract)h 177 2320(from)s 11(the)h 13(GNU)h 12(General)h 12(Public)h 12(License)h 14(V)h -3(ersion)h 12(2,)h 12(under)h 13(whic)h -1(h)h 13(F)h -3(unnelW)h -3(eb)h 11(is)h 13(distributed.)h 18(F)h -3(or)h 12(more)h 177 2369(informati)s -1(on)h 12(see)h 15(Section)h 15(5.6.)h 1032 2940(112)s 113 @eop 114 @bop0 cmbx10.432 sf [<0001FF0000001FFFC000007F80F00000FE00F80003FC01FC0003F803FC0007F003FC00 07F003FC0007F003FC0007F001F80007F000F00007F000000007F000000007F000000007 F0000000FFFFFFFC00FFFFFFFC00FFFFFFFC0007F001FC0007F001FC0007F001FC0007F0 01FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001 FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC0007F001FC 0007F001FC0007F001FC0007F001FC007FFF1FFFC07FFF1FFFC07FFF1FFFC0> 40 42 -1 41 38] 12 dc 114 @bop1 cmbx10.432 sf 177 726(5.8)s 70(Distributi)h -1(on)h 177 1808(5.9)s 70(Mo)h 2(di\014cation)h cmti10.300 sf 362 2653(ple)s -2(ase)h 16(change)h 16(its)h 15(name)h 810 2835(F)s -3(unnelWeb)h 16(Hacker's)h 15(Manual)h cmtt10.300 sf 264 42(REPAIR)s 21(OR)h 21(CORRECTION.)h 308 141(12.)s 21(IN)h 21(NO)h 22(EVENT)h 21(UNLESS)h 20(REQUIRED)h 20(BY)h 22(APPLICABLE)h 19(LAW)h 22(OR)h 21(AGREED)h 21(TO)h 21(IN)h 21(WRITING)h 264 191(WILL)s 21(ANY)h 21(COPYRIGHT)h 20(HOLDER,)h 21(OR)h 21(ANY)h 21(OTHER)h 21(PARTY)h 21(WHO)h 21(MAY)h 21(MODIFY)h 21(AND/OR)h 264 241(REDISTRIBUTE)s 20(THE)h 21(PROGRAM)h 20(AS)h 22(PERMITTED)h 19(ABOVE,)h 21(BE)h 21(LIABLE)h 21(TO)h 21(YOU)h 22(FOR)h 21(DAMAGES,)h 264 291(INCLUDING)s 20(ANY)h 21(GENERAL,)h 21(SPECIAL,)h 20(INCIDENTAL)h 19(OR)h 22(CONSEQUENTIA)h -1(L)h 20(DAMAGES)h 20(ARISING)h 264 340(OUT)s 22(OF)h 21(THE)h 21(USE)h 21(OR)h 22(INABILITY)h 20(TO)h 21(USE)h 21(THE)h 21(PROGRAM)h 21(\(INCLUDING)h 19(BUT)h 22(NOT)h 21(LIMITED)h 264 390(TO)s 22(LOSS)h 21(OF)h 21(DATA)h 21(OR)h 21(DATA)h 21(BEING)h 21(RENDERED)h 20(INACCURATE)h 20(OR)h 21(LOSSES)h 21(SUSTAINED)h 20(BY)h 264 440(YOU)s 22(OR)h 21(THIRD)h 21(PARTIES)h 20(OR)h 21(A)h 22(FAILURE)h 20(OF)h 22(THE)h 21(PROGRAM)h 20(TO)h 22(OPERATE)h 20(WITH)h 21(ANY)h 21(OTHER)h 264 490(PROGRAMS\),)s 20(EVEN)h 21(IF)h 21(SUCH)h 21(HOLDER)h 21(OR)h 21(OTHER)h 21(PARTY)h 21(HAS)h 21(BEEN)h 21(ADVISED)h 20(OF)h 22(THE)h 264 540(POSSIBILITY)s 20(OF)h 21(SUCH)h 21(DAMAGES.)h 308 1038(1.)s 21(You)h 21(may)h 22(copy)h 21(and)h 21(distribute)h 20(verbatim)h 20(copies)h 20(of)h 22(the)h 21(Program's)h 264 1088(source)s 21(code)h 21(as)h 21(you)h 21(receive)h 21(it,)h 21(in)h 21(any)h 21(medium,)h 21(provided)h 20(that)h 21(you)h 264 1138(conspicuously)s 19(and)h 22(appropriate)h -1(ly)h 20(publish)h 20(on)h 21(each)h 21(copy)h 21(an)h 22(appropriate)h 264 1187(copyright)s 20(notice)h 21(and)h 21(disclaimer)h 20(of)h 21(warranty;)h 20(keep)h 21(intact)h 21(all)h 21(the)h 264 1237(notices)s 21(that)h 21(refer)h 20(to)h 22(this)h 21(License)h 20(and)h 21(to)h 22(the)h 21(absence)h 20(of)h 22(any)h 21(warranty;)h 264 1287(and)s 22(give)h 20(any)h 22(other)h 20(recipients)h 20(of)h 22(the)h 21(Program)h 20(a)h 22(copy)h 21(of)h 21(this)h 21(License)h 264 1337(along)s 21(with)h 21(the)h 21(Program.)h 264 1436(You)s 22(may)h 21(charge)h 20(a)h 22(fee)h 21(for)h 21(the)h 21(physical)h 20(act)h 22(of)h 21(transferring)h 19(a)h 22(copy,)h 21(and)h 264 1486(you)s 22(may)h 21(at)h 21(your)h 21(option)h 21(offer)h 20(warranty)h 20(protection)h 20(in)h 22(exchange)h 20(for)h 21(a)h 21(fee.)h 793 2702(.fw)s cmr10.300 sf 177 853(Users)s 15(of)h 12(F)h -3(unnelW)h -3(eb)h 13(should)h 12(b)h 1(e)h 14(a)h -1(w)h -1(are)h 13(that)h 13(they)h 14(can)h 13(distribute)h 13(the)h 14(program)h 12(freely)h -3(.)h 17(The)h 14(follo)h -1(wi)h -1(ng)h 11(is)h 177 903(an)s 11(extract)h 12(from)h 10(the)h 12(GNU)h 11(General)h 11(Public)h 11(License)h 12(V)h -3(ersion)h 12(2,)h 11(under)h 12(whic)h -1(h)h 11(F)h -3(unnelW)h -3(eb)h 11(is)h 11(distributed.)h 177 1622(The)s 14(license)h 15(also)h 13(allo)h -1(ws)h 13(y)h -1(ou)h 13(other)h 15(freedoms.)h 18(F)h -3(or)h 13(more)h 13(informati)h -1(on)h 12(see)h 15(Section)h 14(5.6.)h 177 1935(F)s -3(unnelW)h -3(eb)h 16(is)h 16(distributed)h 16(under)h 17(a)h 16(GNU)h 16(license,)h 17(and)h 16(y)h -1(ou)h 16(are)h 16(free)h 17(to)h 16(mo)h 1(dify)h 14(the)h 17(source)h 17(co)h 1(de)h 17(and)h 177 1985(distribute)s 12(mo)h 1(di\014ed)h 10(copies)h 12(\(see)h 13(Section)h 12(5.6\).)h 16(Ho)h -1(w)h -1(ev)h -1(er,)h 12(there)h 13(are)h 11(go)h 1(o)h 1(d)h 11(reasons)h 13(wh)h -1(y)h 11(y)h -1(ou)h 11(should)h 11(a)h -1(v)h -1(oid)h 177 2034(doing)s 13(this.)h 228 2170(1.)s 20(If)h 13(y)h -1(ou)h 13(distribute)h 14(mo)h 1(di\014ed)h 11(v)h -1(ersions)h 14(of)h 13(F)h -3(unnelW)h -3(eb,)h 12(y)h -1(ou)h 13(run)h 14(the)h 14(risk)h 13(of)h 13(creating)h 13(a)h 13(v)h -1(ersion)h 14(that)h 281 2220(will)s 12(div)h -1(erge)h 14(from)h 13(the)h 14(\\o\016cial")h 12(v)h -1(ersion)h 14(of)h 13(F)h -3(unnelW)h -3(eb)h 14(that)h 14(I)h 13(in)h -1(tend)h 14(to)h 14(main)h -1(tai)h -1(n.)h 228 2318(2.)s 20(If)h 13(y)h -1(ou)h 12(release)h 14(a)h 13(v)h -1(ersion)h 13(of)h 13(F)h -3(unnelW)h -3(eb)h 12(with)h 13(a)h 12(c)h -1(hanged)h 14(input)h 13(language,)h 11(users)h 15(of)h 12(y)h -1(our)h 13(mo)h 1(di\014ed)h 281 2368(v)s -1(ersion)h 13(will)h 12(create)h 14(source)h 14(\014les)h 14(that)h 13(will)h 11(no)h 13(longer)h 13(w)h -1(ork)h 13(on)h 13(other)h 13(v)h -1(ersions)h 14(of)h 12(F)h -3(unnelW)h -3(eb.)h 17(The)h 281 2418(result)s 15(w)h -1(ould)h 13(b)h 1(e)h 14(c)h -1(haos.)h 177 2553(F)s -3(or)h 11(these)h 13(reasons)h 13(I)h 11(request)h 14(that)h 11(y)h -1(ou)h 11(do)h 12(not)h 11(distribute)h 12(mo)h 1(di\014ed)h 10(v)h -1(ersions)h 13(of)h 11(F)h -3(unnelW)h -3(eb,)h 11(particularly)h 177 2603(v)s -1(ersions)h 19(with)h 19(a)h 18(mo)h 1(di\014ed)h 18(language.)h 31(Ho)h -1(w)h -1(ev)h -1(er,)h 20(if)h 18(y)h -1(ou)h 18(m)h -1(ust)h 18(distribute)h 19(a)h 18(v)h -1(ersion)h 19(with)h 19(a)h 18(mo)h 1(di\014ed)h 177 2653(language,)s 444(\(i.e.)h 13(from)h 13(\\F)h -3(unnelW)h -3(eb")h 14(to)h 14(something)h 13(else\).)h 20(Please)h 16(also)h 13(allo)h 1(cate)h 177 2702(a)s 19(new)h 20(\014le)h 19(extension)h 21(to)h 19(replace)h 20(\\)h 66(")h 18(as)h 20(the)h 20(extension)h 20(for)h 19(source)h 21(\014les)h 19(written)h 20(in)h 19(the)h 20(mo)h 1(di\014ed)h 177 2752(language.)s 177 2835(F)s -3(or)h 14(more)h 13(inform)h -1(ation,)h 11(refer)h 15(to)h 14(the)h 538(.)h 1032 2940(113)s 114 @eop 115 @bop0 cmbx10.432 sf [ 56 41 -1 40 52] 86 dc 115 @bop1 cmbx10.432 sf 177 42(5.10)s 70(V)h -6(ersions)h 177 1266(5.11)s 70(FTP)h 23(Arc)h -2(hiv)h -2(e)h 22(and)h 24(Author)h cmtt10.300 sf 1320 207(ross@spam.adela)s -1(ide.)h -1(edu.a)h -1(u)h 830 307(dave@cs.adela)s -1(ide.e)h -1(du.au)h 199 523(Vers)s 43(Lang)h 42(Created)h 43(Released)h 63(Author)h 217(Copyright)h 129(Licensing)h 199 572(----)s 43(----)h 42(-------)h 43(--------)h 63(--------------)h 41(-------------)h 41(---------)h 199 622(V1.0)s 43(Ada)h 64(1986)h 109(Never)h 129(Ross)h 43(Williams)h 42(Ross)h 21(Williams)h 199 672(V2.0)s 43(C)h 108(1989)h 109(Never)h 129(David)h 21(Hulse)h 108(Public)h 21(domain)h 42(No)h 21(restriction.)h 199 722(V3.0)s 43(C)h 108(1992)h 109(May-1992)h 63(Ross)h 43(Williams)h 42(Ross)h 21(Williams)h 42(GNU)h 21(release.)h 286 954(*)s 22(FunnelWeb)h 150(V3.0.)h 286 1004(*)s 22(User's)h 20(Manual)h 64(V1.0.)h 286 1054(*)s 22(Hacker's)h 20(Manual)h 20(V1.0.)h 286 1104(*)s 22(TeX)h 21(Definitions)h 19(V1.0.)h 243 1498(Machine)s 63(:)h 22(sirius.itd.ad)h -1(elaid)h -1(e.edu)h -1(.au)h 19([IP=129.127.40.)h -1(3].)h 243 1548(Directory)s 19(:)h 22(~pub/funnelwe)h -1(b/)h 63(\(or)h 22(a)h 21(directory)h 20(of)h 21(similar)h 21(name\).)h 243 1780(Name:)s 42(Dr)h 21(Ross)h 21(N.)h 22(Williams)h 243 1830(Email:)s 20(ross@spam.ade)h -1(laide)h -1(.edu.)h -1(au)h 243 1880(Snail:)s 20(16)h 21(Lerwick)h 21(Avenue,)h 20(Hazelwood)h 20(Park)h 21(5066,)h 21(Australia.)h cmr10.300 sf 177 157(F)s -3(unnelW)h -3(eb)h 1502(w)h -1(as)h 177 207(created)s 19(in)h 18(1986)h 17(and)h 17(w)h -1(as)h 18(used)h 18(extensiv)h -1(ely)h 19(b)h -1(y)h 17(Ross)h 18(William)h -2(s)h 16(\()h 547(\))h 16(for)h 177 257(three)s 19(y)h -1(ears.)h 29(Ho)h -1(w)h -1(ev)h -1(er,)h 18(V)h -3(ersion)h 18(1.0)h 16(w)h -1(as)h 17(written)h 18(in)h 17(Ada)h 18(and)h 17(w)h -1(as)h 17(not)h 17(v)h -1(ery)h 18(p)h 1(ortable)h 18(\(it)h 17(w)h -1(as)h 17(fairly)h 177 307(V)s -5(AX/VMS)h 16(sp)h 1(eci\014c\).)h 24(Da)h -1(vid)h 14(Hulse)h 16(\()h 503(\))h 14(to)h 1(ok)h 15(the)h 16(\014rst)h 16(step)h 16(to)h -1(w)h -1(ards)h 15(a)h 15(re-)h 177 357(lease)s 18(b)h -1(y)h 16(translating)h 16(the)h 18(Ada)h 16(co)h 1(de)h 18(in)h -1(to)h 16(C.)h 17(Ross)h 16(William)h -1(s)h 15(then)h 17(extensiv)h -1(ely)h 18(rew)h -1(ork)h -1(ed)h 17(the)h 18(C)h 16(co)h 1(de,)h 177 406(making)s 12(it)h 13(robust)h 15(and)h 13(p)h 1(ortable,)h 14(adding)h 13(new)h 14(features,)h 15(and)h 14(p)h 1(olishing)h 12(it)h 14(to)h 13(its)h 14(curren)h -1(t)h 16(form.)h 177 838(This)s 14(man)h -1(ual)h 11(w)h -1(as)h 14(released)h 15(for:)h 177 1382(The)s 14(F)h -3(unnelW)h -3(eb)h 14(FTP)h 14(arc)h -1(hiv)h -1(e)h 14(is:)h 177 1664(The)s 14(author)h 14(of)h 14(F)h -3(unnelW)h -3(eb)h 13(and)h 14(this)h 14(man)h -1(ual)h 11(is:)h 177 1996(I)s 11(in)h -1(tend)h 11(to)h 11(mai)h -1(n)h -1(tain)h 9(an)h 10(\\o\016cial")h 9(v)h -1(ersion)h 11(of)h 10(F)h -3(unnelW)h -3(eb)h 11(whic)h -1(h)h 10(I)h 11(will)h 10(release)h 12(under)h 11(GNU)h 11(license)h 12(from)h 177 2046(time)s 9(to)h 10(time.)h 15(I)h 10(am)h 8(happ)h -1(y)h 10(to)h 10(receiv)h -1(e)h 11(constructiv)h -1(e)h 11(criticism)h 9(ab)h 1(out)h 10(F)h -3(unnelW)h -3(eb)h 10(and)h 9(its)h 10(do)h 1(cumen)h -1(tation.)h 177 2121(I)s 14(will)h 12(alw)h -1(a)h -1(ys)h 12(b)h 1(e)h 14(happ)h -1(y)h 13(to)h 14(receiv)h -1(e)h 15(mai)h -1(l)h 11(ab)h 1(out)h 14(F)h -3(unnelW)h -3(eb,)h 12(but)h 14(cannot)h 14(guaran)h -1(tee)h 14(that)h 13(I)h 14(will)h 12(b)h 1(e)h 14(able)h 177 2171(to)s 14(reply)h 14(to)h 14(it)h 13(imm)h -1(ediately)h -4(.)h 1032 2940(114)s 115 @eop 116 @bop0 cmbx10.746 sf [<000000003FFE00000E000000000FFFFFC0001E000000007FFFFFF8003E00000003FFFF FFFE00FE0000000FFFFFFFFF81FE0000003FFFF800FFC3FE000000FFFF80000FF7FE0000 01FFFC000003FFFE000007FFF0000001FFFE00000FFFC00000007FFE00001FFF80000000 3FFE00003FFF000000001FFE00007FFE000000000FFE0000FFFC0000000007FE0001FFF8 0000000007FE0003FFF00000000003FE0003FFF00000000001FE0007FFE00000000001FE 0007FFE00000000000FE000FFFC00000000000FE000FFFC000000000007E001FFFC00000 0000007E001FFF8000000000007E003FFF8000000000007E003FFF8000000000003E003F FF8000000000003E007FFF8000000000003E007FFF0000000000003E007FFF0000000000 0000007FFF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF00 00000000000000FFFF0000000000000000FFFF0000000000000000FFFF00000000000000 00FFFF0000000000000000FFFF0000000000000000FFFF0000000000000000FFFF000000 0000000000FFFF0000000000000000FFFF0000000000000000FFFF0000007FFFFFFFFE7F FF0000007FFFFFFFFE7FFF0000007FFFFFFFFE7FFF8000007FFFFFFFFE7FFF8000007FFF FFFFFE3FFF8000000000FFFE003FFF8000000000FFFE003FFF8000000000FFFE001FFF80 00000000FFFE001FFFC000000000FFFE000FFFC000000000FFFE000FFFC000000000FFFE 0007FFE000000000FFFE0007FFE000000000FFFE0003FFF000000000FFFE0003FFF80000 0000FFFE0001FFF800000000FFFE0000FFFC00000000FFFE00007FFE00000000FFFE0000 3FFF00000000FFFE00001FFF80000000FFFE00000FFFE0000001FFFE000007FFF0000003 FFFE000001FFFC000007FFFE000000FFFF80001FFFFE0000003FFFFC00FFC7FE0000000F FFFFFFFF83FE00000003FFFFFFFE00FE000000007FFFFFF8003E000000000FFFFFE0000E 00000000003FFE00000000> 80 73 -7 71 93] 71 dc [<7FFFFFC000FFFF807FFFFFC000FFFF807FFFFFC000FFFF807FFFFFC000FFFF807FFFFF C000FFFF8000FFF000000FE00000FFF800000FC00000FFF800000FC000007FFC00000F80 00007FFC00001F8000003FFC00001F0000003FFE00003F0000001FFE00003E0000001FFF 00007E0000000FFF00007C0000000FFF8000FC00000007FF8000F800000007FFC001F800 000003FFC001F000000003FFE003F000000003FFE003F000000001FFF003E000000001FF F007E000000000FFF007C000000000FFF80FC0000000007FF80F80000000007FFC1F8000 0000003FFC1F00000000003FFE3F00000000001FFE3E00000000001FFF7E00000000000F FF7C00000000000FFFFC00000000000FFFFC000000000007FFF8000000000007FFF80000 00000003FFF0000000000003FFF0000000000001FFE0000000000001FFE0000000000000 FFC0000000000000FFC00000000000007F800000000000007F800000000000003F000000 000000003F000000000000003F000000000000003E000000000000007E00000000000000 7C00000000000000FC000000001F8000F8000000003FC001F8000000007FE001F0000000 00FFF003F000000000FFF003E000000000FFF007E000000000FFF00FC000000000FFF01F 8000000000FFF03F80000000007FE07F00000000007F43FE00000000003FFFF800000000 001FFFF0000000000007FFC0000000000001FE000000000000> 64 66 -2 45 63] 121 dc cmbx10.622 sf [<00000001F80000000000000001F80000000000000003FC0000000000000003FC000000 0000000007FE0000000000000007FE0000000000000007FE000000000000000FFF000000 000000000FFF000000000000001FFF800000000000001FFF800000000000001FFF800000 000000003FFFC00000000000003FFFC00000000000007FFFE00000000000007DFFE00000 000000007DFFE0000000000000FDFFF0000000000000F8FFF0000000000001F8FFF80000 00000001F07FF8000000000001F07FF8000000000003F07FFC000000000003E03FFC0000 00000007E03FFE000000000007C01FFE00000000000FC01FFF00000000000F801FFF0000 0000000F800FFF00000000001F800FFF80000000001F0007FF80000000003F0007FFC000 0000003E0003FFC0000000003E0003FFC0000000007E0003FFE0000000007C0001FFE000 000000FC0001FFF000000000F80000FFF000000000F80000FFF000000001FFFFFFFFF800 000001FFFFFFFFF800000003FFFFFFFFFC00000003FFFFFFFFFC00000003E000003FFC00 000007E000003FFE00000007C000001FFE0000000FC000001FFF0000000F8000000FFF00 00001F8000000FFF8000001F0000000FFF8000001F00000007FF8000003F00000007FFC0 00003E00000003FFC000007E00000003FFE00000FF00000001FFE000FFFFFC0001FFFFFF F0FFFFFC0001FFFFFFF0FFFFFC0001FFFFFFF0FFFFFC0001FFFFFFF0> 72 59 -3 58 75] 65 dc [<00FE007FC000FFFE01FFF800FFFE07FFFE00FFFE1F03FF00FFFE3C01FF0007FE7801FF 8003FE7000FF8003FEE000FFC003FFC000FFC003FFC000FFC003FF8000FFC003FF8000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FF C003FF0000FFC003FF0000FFC003FF0000FFC003FF0000FFC0FFFFFC3FFFFFFFFFFC3FFF FFFFFFFC3FFFFFFFFFFC3FFFFF> 48 38 -4 37 55] 110 dc [<000000003FC00000003FFFC00000003FFFC00000003FFFC00000003FFFC000000001FF C000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FF C000000000FFC000000000FFC000000000FFC000000000FFC000000000FFC000000000FF C000000000FFC000000000FFC000000000FFC000000000FFC00000FFC0FFC0000FFFF8FF C0003FFFFEFFC000FFE03FFFC001FF000FFFC007FE0003FFC00FFC0001FFC00FF80000FF C01FF80000FFC03FF00000FFC03FF00000FFC07FF00000FFC07FE00000FFC07FE00000FF C0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FF C0FFE00000FFC0FFE00000FFC0FFE00000FFC0FFE00000FFC07FE00000FFC07FE00000FF C07FF00000FFC03FF00000FFC03FF00000FFC01FF00000FFC01FF80001FFC00FFC0003FF C007FC0007FFC003FF001FFFE000FFC07EFFFF003FFFFCFFFF000FFFF0FFFF0001FF80FF FF> 48 60 -3 59 55] 100 dc [<00F00003FC0007FE000FFE000FFF001FFF001FFF001FFF000FFF000FFE0007FE0003FC 0000F00000000000000000000000000000000000000000000000000000000000000000FF 00FFFF00FFFF00FFFF00FFFF0007FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF 0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF 0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF0003FF00FFFFF8FFFFF8FFFF F8FFFFF8> 24 61 -3 60 27] 105 dc [ 48 38 -2 37 52] 120 dc 116 @bop1 cmbx10.746 sf 177 612(Glossary)s cmbx10.622 sf 177 379(App)s 3(endix)h 34(A)h cmtt10.300 sf 1659 903(@Z)s 1620 2433(@i)s 22(filename)h 608 2558(+F)s cmbx10.300 sf 177 854(Analyser:)s 177 1029(Argumen)s -1(t:)h 177 1154(Directiv)s -2(e:)h 177 1280(Do)s 1(cumen)h -1(tati)h -1(on:)h 177 1355(Do)s 1(cumen)h -1(tati)h -1(on)h 18(\014le:)h 177 1531(F)s -4(ree)h 19(text:)h 177 1656(F)s -4(unnelW)h -4(eb:)h 177 1931(F)s -4(unnelW)h -4(eb)h 14(\014le:)h 177 2006(F)s -4(unnelW)h -4(eb)h 14(language:)h 177 2082(F)s -4(unnelW)h -4(eb)h 17(prop)h 1(er:)h 177 2357(FW:)s 177 2433(Include)s 14(\014le:)h 177 2508(Input)s 16(\014le:)h 177 2634(Journal)s 14(\014le:)h 177 2759(Listin)s -1(g)h 14(\014le:)h 177 2835(Macro:)s cmr10.300 sf 396 854(A)s 15(comp)h 1(onen)h -1(t)h 14(of)h 15(the)h 15(F)h -3(unnelW)h -3(eb)h 15(program)h 13(that)h 15(c)h -1(hec)h -1(ks)h 17(the)h 15(macro)h 14(table)h 15(created)h 16(b)h -1(y)h 15(the)h 177 903(parser)s 15(for)h 14(errors.)h 19(F)h -3(or)h 14(example,)h 12(the)h 14(analyser)h 14(c)h -1(hec)h -1(ks)h 15(to)h 14(see)h 15(if)h 13(an)h -1(y)h 14(macro)h 12(without)h 14(a)h 71(has)h 14(not)h 14(b)h 1(een)h 177 953(called.)s 419 1029(A)s 12(string)h 11(delimited)h 10(b)h -1(y)h 11(blanks)h 11(app)h 1(earing)h 12(on)h 11(the)h 12(F)h -3(unnelW)h -3(eb)h 11(comm)h -1(and)h 9(line.)h 17(Argumen)h -1(ts)h 177 1079(are)s 14(used)h 15(to)h 14(con)h -1(trol)h 14(options.)h 400 1154(A)s 15(F)h -3(unnelW)h -3(eb)h 13(sp)h 1(ecial)h 15(sequence)h 17(or)h 14(co)h 1(op)h 1(erating)h 15(group)h 14(of)h 14(sp)h 1(ecial)h 14(sequence)h 1(s)h 16(that)h 15(do)h 14(not)h 177 1204(form)s 12(part)h 14(of)h 14(a)h 13(macro)h 13(de\014nition.)h 18(A)h 13(directiv)h -1(e)h 15(can)h 14(tak)h -1(e)h 14(the)h 14(form)h 13(of)h 13(a)h 13(pragma.)h 529 1280(Descriptiv)s -1(e)h 15(text.)h 619 1355(An)s 18(output)h 18(\014le,)h 19(pro)h 1(duced)h 19(b)h -1(y)h 18(the)h 18(W)h -3(ea)h -1(v)h -1(e)h 17(comp)h 1(onen)h -1(t)h 18(of)h 17(F)h -3(unnelW)h -3(eb,)h 18(that)h 177 1405(con)s -1(tains)h 14(t)h -1(yp)h 1(esetter)h 16(comma)h -1(nds.)h 17(When)h 14(fed)h 14(in)h -1(to)h 13(the)h 15(appropriate)h 14(t)h -1(yp)h 1(esetter)h 16(program,)h 12(the)h 15(result)h 14(is)h 14(a)h 177 1455(t)s -1(yp)h 1(eset)h 16(ima)h -1(ge)h 12(of)h 14(the)h 14(input)h 14(\014le.)h 408 1531(The)s 17(text)h 18(in)h 16(an)h 17(input)h 17(\014le)h 17(that)h 17(remains)h 16(if)h 16(one)h 17(w)h -1(ere)h 18(to)h 16(remo)h -1(v)h -1(e)h 16(macro)h 16(de\014nitions)h 17(and)h 177 1580(directiv)s -1(es.)h 454 1656(This)s 19(w)h -1(ord)h 18(has)h 20(a)h 18(n)h -1(um)h -1(b)h 1(er)h 18(of)h 19(di\013eren)h -1(t)h 20(meanings)h 17(all)h 18(p)h 1(ertaining)h 19(to)h 19(the)h 19(F)h -3(unnelW)h -3(eb)h 177 1706(system)s 19(of)h 19(programm)h -1(ing.)h 33(1\))h 19(The)h 20(en)h -1(tire)h 20(system)h 20(of)h 19(programm)h -1(i)h -1(ng)h 17(as)h 20(in)h 19(\\Ma)h -1(yb)h 1(e)h 20(F)h -3(unnelW)h -3(eb)h 19(can)h 177 1756(help.")s 23(2\))h 15(The)h 16(computer)h 15(program)h 14(that)h 16(impl)h -1(em)h -1(en)h -1(ts)h 15(the)h 16(system)h 15(as)h 16(in)h 15(\\Run)h 15(it)h 15(through)h 15(F)h -3(unnelW)h -3(eb)h 177 1805(and)s 12(see)h 13(what)h 12(comes)h 11(out.")h 17(3\))h 12(The)h 12(language)h 11(implem)h -1(en)h -1(ted)h 11(b)h -1(y)h 11(the)h 13(F)h -3(unnelW)h -3(eb)h 11(program)h 10(as)h 12(in)h 12(\\I)h 11(wrote)h 177 1855(the)s 15(program)h 12(in)h 13(F)h -3(unnelW)h -3(eb.")h 18(or)h 13(\\I)h 14(wrote)h 14(the)h 15(program)h 12(in)h 14(Ada)h 13(using)h 14(F)h -3(unnelW)h -3(eb.".)h 521 1931(A)s 14(\014le)h 14(whose)h 14(con)h -1(ten)h -1(ts)h 15(are)h 15(written)h 14(in)h 13(the)h 15(F)h -3(unnelW)h -3(eb)h 13(language.)h 642 2006(The)s 14(language)h 13(in)h 13(whic)h -1(h)h 14(F)h -3(unnelW)h -3(eb)h 13(input)h 14(\014les)h 14(are)h 15(written.)h 609 2082(Usually)s -3(,)h 16(when)h 17(F)h -3(unnelW)h -3(eb)h 17(is)h 17(in)h -1(v)h -1(ok)h -1(ed,)h 16(it)h 17(pro)h 1(cesses)h 20(a)h 16(single)h 17(input)h 17(\014le)h 17(and)h 177 2132(then)s 15(terminates.)h 17(Ho)h -1(w)h -1(ev)h -1(er,)h 14(it)h 13(also)h 13(has)h 14(a)h 14(comm)h -1(and)h 12(language)h 13(mo)h 1(de)h 12(in)h 14(whic)h -1(h)h 13(it)h 14(is)h 13(p)h 1(ossible)h 14(to)h 14(in)h -1(v)h -1(ok)h -1(e)h 177 2182(\\F)s -3(unnelW)h -3(eb")h 14(man)h -1(y)h 12(times.)h 19(This)h 14(leads)h 15(to)h 14(confusion)h 14(b)h 1(et)h -1(w)h -1(een)h 16(\\F)h -3(unnelW)h -3(eb")h 13(the)h 15(outer)h 15(program)h 13(and)h 177 2232(\\F)s -3(unnelW)h -3(eb")h 19(the)h 20(inner)h 20(program.)h 34(T)h -3(o)h 18(a)h -1(v)h -1(oid)h 19(this)h 19(confusion,)h 21(the)h 20(inner)h 20(F)h -3(unnelW)h -3(eb)h 19(is)h 20(sometim)h -1(es)h 177 2281(referred)s 16(to)h 14(as)h 14(\\F)h -3(unnelW)h -3(eb)h 13(prop)h 1(er".)h 284 2357(An)s 14(abbreviation)h 13(for)h 13(\\F)h -3(unnelW)h -3(eb")h 13(that)h 14(is)h 14(used)h 15(wherev)h -1(er)h 15(appropriate.)h 440 2433(A)s 14(\014le)h 14(read)h 15(in)h 13(b)h -1(y)h 14(F)h -3(unnelW)h -3(eb)h 13(as)h 14(the)h 15(result)h 14(of)h 14(an)h 13(include)h 14(pragma)h 12(\()h 242(\).)h 407 2508(An)s -1(y)h 16(\014le)h 15(read)h 16(in)h 15(b)h -1(y)h 15(F)h -3(unnelW)h -3(eb.)h 22(The)h 16(phrase)h 16(\\the)h 16(input)h 15(\014le")h 15(refers)h 17(to)h 16(the)h 16(ro)h 1(ot)h 15(input)h 177 2558(\014le)s 14(\(sp)h 1(eci\014ed)h 16(using)h 13(the)h 72(option\).)h 445 2634(An)s 14(output)h 14(\014le)h 14(con)h -1(taining)h 13(a)h 14(cop)h -1(y)h 13(of)h 14(the)h 14(output)h 15(sen)h -1(t)h 15(to)h 13(the)h 15(user's)h 15(console)h 14(during)h 14(an)h 177 2683(in)s -1(v)h -1(o)h 1(cation)h 13(of)h 13(F)h -3(unnelW)h -3(eb.)h 18(In)h 13(other)h 15(systems,)h 14(this)h 14(\014le)h 13(is)h 14(sometimes)h 12(called)h 14(a)h 13(\\log)h 13(\014le".)h 429 2759(An)s 14(output)h 15(\014le)h 13(summarizing)h 11(the)h 15(result)h 14(of)h 14(pro)h 1(cessing)h 15(an)h 13(input)h 14(\014le.)h 342 2835(A)s 14(binding)h 13(of)h 13(a)h 14(name)h 13(to)h 13(a)h 14(string.)h 1032 2940(115)s 116 @eop 117 @bop0 117 @bop1 cmtt10.300 sf 1676 913(@p)s 1057 1760(@)s 806(@=)h cmbx10.300 sf 177 42(Macro)s 14(de\014niti)h -1(on)h -1(:)h 177 166(Mapp)s 1(er:)h 177 291(Option:)s 177 415(Output)s 15(\014le:)h 177 689(P)s -1(arser:)h 177 863(Pragma:)s 177 988(Prin)s -1(t)h -1(ed)h 19(do)h 1(cumen)h -1(tati)h -1(on:)h 177 1112(Pro)s 1(duct)h 11(\014le:)h 177 1287(Scanner:)s 177 1461(Script:)s 177 1536(Shell:)s 177 1710(Sp)s 1(ecial)h 12(c)h -1(haracter:)h 177 1885(Sp)s 1(ecial)h 13(sequence:)h 177 2109(T)s -4(angle:)h 177 2233(T)s -1(yp)h 1(esetting)h 14(directiv)h -2(e:)h 177 2358(W)s -4(ea)h -1(v)h -1(e:)h cmr10.300 sf 552 42(A)s 12(construct)h 14(app)h 1(earing)h 12(in)h 12(a)h 12(F)h -3(unnelW)h -3(eb)h 11(\014le)h 12(that)h 13(binds)h 12(a)h 12(name)h 11(to)h 12(a)h 11(text)h 13(string.)h 177 91(A)s 14(F)h -3(unnelW)h -3(eb)h 13(\014le)h 14(consists)h 15(of)h 14(a)h 13(series)h 15(of)h 14(macro)h 12(de\014nitions)h 14(surrounded)h 15(b)h -1(y)h 14(do)h 1(cumen)h -1(tary)h 13(text.)h 373 166(A)s 13(comp)h 1(onen)h -1(t)h 12(of)h 12(the)h 13(F)h -3(unnelW)h -3(eb)h 12(program)h 12(that)h 12(reads)h 14(in)h 12(the)h 14(input)h 12(\014le)h 13(and)h 13(creates)h 14(a)h 13(cop)h -1(y)h 177 216(of)s 13(it)h 14(in)h 13(memory)h -4(.)h 353 291(An)s 14(parameter)h 13(in)h -1(ternal)h 12(to)h 14(the)h 13(F)h -3(unnelW)h -3(eb)h 13(program)h 12(whic)h -1(h)h 13(can)h 14(b)h 1(e)h 13(con)h -1(trolled)h 13(b)h -1(y)h 14(comm)h -1(and)h 177 340(line)s 14(argumen)h -1(ts)h 13(or)h 14(pragmas.)h 444 415(An)s -1(y)h 15(\014le)h 15(written)h 16(b)h -1(y)h 15(F)h -3(unnelW)h -3(eb.)h 22(This)h 16(includes)h 16(listing,)h 14(journal,)h 14(pro)h 1(duct,)h 16(and)h 16(do)h 1(cu-)h 177 465(men)s -1(tation)h 14(\014les.)h 21(\(W)h -3(arning:)h 20(During)h 14(most)h 14(of)h 14(F)h -3(unnelW)h -3(eb's)h 15(dev)h -1(elopmen)h -1(t)h 14(the)h 16(term)h 14(\\output)h 15(\014le")h 15(w)h -1(as)h 177 515(also)s 10(used)h 12(to)h 11(refer)h 12(to)h 11(what)h 11(are)h 11(no)h -1(w)h 10(called)h 11(\\pro)h 1(duct)h 12(\014les".)h 17(This)h 11(turned)h 11(out)h 11(to)h 11(b)h 1(e)h 12(extremely)h 10(confusing)h 177 565(and)s 13(so)h 14(the)h 13(term)h 13(\\pro)h 1(duct)h 14(\014le")h 13(w)h -1(as)h 13(in)h -1(v)h -1(en)h -1(ted)h 13(to)h 14(distinguish)h 12(the)h 14(generic)h 14(from)h 12(the)h 14(sp)h 1(eci\014c.)h 19(Ho)h -1(w)h -1(ev)h -1(er,)h 177 614(as)s 14(this)h 14(w)h -1(as)h 14(a)h 13(late)h 14(mo)h 1(di\014cation,)h 11(y)h -1(ou)h 14(ma)h -1(y)h 12(\014nd)h 14(some)h 13(o)h 1(ccurrence)h 1(s)h 16(of)h 13(the)h 15(old)h 13(use)h 14(of)h 14(\\output)h 14(\014le".\).)h 346 689(A)s 15(comp)h 1(onen)h -1(t)h 14(of)h 15(the)h 16(F)h -3(unnelW)h -3(eb)h 14(program)h 14(that)h 15(pro)h 1(cesses)h 17(the)h 16(tok)h -1(en)h 15(list)h 15(generated)h 16(b)h -1(y)h 15(the)h 177 739(scanner)s 17(and)h 16(pro)h 1(duces)h 17(a)h 16(macro)h 14(table)h 16(and)h 15(a)h 16(do)h 1(cumen)h -1(t)h 15(list.)h 23(The)h 17(parser)h 17(mai)h -1(nly)h 14(analyses)h 16(the)h 16(input)h 177 789(\014le)s 14(at)h 14(the)h 14(syn)h -1(tactic)h 15(lev)h -1(el,)h 13(but)h 14(also)h 13(do)h 1(es)h 15(some)h 13(ligh)h -1(t)h -1(w)h -1(eigh)h -1(t)h 12(seman)h -1(tic)h 13(c)h -1(hec)h -1(king)h 14(to)h 1(o.)h 370 863(Single-line)s 11(directiv)h -1(es)h 14(that)h 12(app)h 1(ears)h 13(in)h 12(F)h -3(unnelW)h -3(eb)h 11(\014les.)h 18(Pragmas)h 11(con)h -1(trol)h 12(ev)h -1(erything)h 13(from)h 177 913(maxim)s -3(um)h 11(input)h 14(line)h 13(length)h 14(to)h 14(t)h -1(yp)h 1(esetter)h 16(dep)h 1(endence.)h 20(A)h 14(pragma)h 12(line)h 14(starts)h 15(with)h 13(\\)h 44(".)h 708 988(Sheets)s 21(of)h 18(pap)h 1(er)h 20(resulting)h 18(from)h 18(actually)h 18(t)h -1(yp)h 1(esetting)h 19(and)h 19(prin)h -1(ting)h 18(a)h 177 1038(do)s 1(cumen)h -1(tation)h 13(\014le.)h 451 1112(An)s 11(output)h 11(\014le,)h 11(generated)h 12(b)h -1(y)h 10(the)h 12(T)h -3(angle)h 9(comp)h 1(onen)h -1(t)h 10(of)h 10(F)h -3(unnelW)h -3(eb,)h 11(that)h 11(con)h -1(tains)h 10(the)h 177 1162(expansion)s 14(of)h 14(the)h 15(macros)h 13(in)h 14(the)h 15(input)h 14(\014le.)h 19(Note:)h 19(Other)h 16(names)h 13(considered)h 16(for)h 13(this)h 15(w)h -1(ere:)h 19(generated)h 177 1212(\014le,)s 14(expanded)h 14(\014le,)h 14(result)h 14(\014le,)h 14(program)h 12(\014le,)h 13(and)h 14(tangle)h 14(\014le.)h 374 1287(A)s 14(comp)h 1(onen)h -1(t)h 12(of)h 13(the)h 14(F)h -3(unnelW)h -3(eb)h 13(program)h 12(that)h 14(scans)h 14(a)h 13(cop)h -1(y)h 14(of)h 12(the)h 15(input)h 13(\014le)h 13(in)h 13(memory)h 177 1337(and)s 14(generates)h 16(a)h 14(line)h 14(list)h 13(and)h 14(a)h 14(tok)h -1(en)h 14(list)h 14(to)h 14(b)h 1(e)h 15(fed)h 14(to)h 14(the)h 15(parser.)h 20(The)h 15(scanner)h 15(pro)h 1(cesse)h 1(s)h 16(the)h 15(input)h 177 1386(at)s 14(the)h 14(lexical)h 13(lev)h -1(el.)h 335 1461(A)s 14(\014le)h 13(con)h -1(taining)h 13(F)h -3(unnelW)h -3(eb)h 14(shell)h 13(commands.)h 309 1536(A)s 11(comm)h -1(and)h 9(language)h 10(in)h -1(terpreter)h 13(built)h 10(in)h -1(to)h 10(the)h 12(F)h -3(unnelW)h -3(eb)h 10(program.)h 16(The)h 11(in)h -1(terpreter)h 13(allo)h -1(ws)h 177 1586(the)s 19(user)h 18(to)h 18(in)h -1(v)h -1(ok)h -1(e)h 17(F)h -3(unnelW)h -3(eb)h 17(prop)h 1(er)h 19(man)h -1(y)h 16(times)h 17(during)h 17(a)h 18(single)h 17(in)h -1(v)h -1(o)h 1(cation)h 17(of)h 17(the)h 18(F)h -3(unnelW)h -3(eb)h 177 1636(program.)s 563 1710(A)s 13(distinguished)h 12(c)h -1(haracter)h 14(in)h 11(a)h 12(F)h -3(unnelW)h -3(eb)h 12(input)h 12(\014le)h 13(that)h 12(in)h -1(tro)h 1(duces)h 13(a)h 13(sp)h 1(ecial)h 177 1760(sequence.)s 32(By)h 19(default)h 17(the)h 19(sp)h 1(ecial)h 18(c)h -1(haracter)h 19(is)h 18(\\)h 22(".)h 29(Ho)h -1(w)h -1(ev)h -1(er,)h 19(it)h 18(can)h 18(b)h 1(e)h 18(c)h -1(hanged)h 19(using)h 17(the)h 19(\\)h 44(")h 177 1810(sp)s 1(ecial)h 14(sequence)h 1(.)h 554 1885(A)s 12(sp)h 1(ecial)h 13(sequence)h 15(is)h 13(a)h 12(construct)h 14(in)h -1(tro)h 1(duced)h 13(b)h -1(y)h 13(the)h 13(sp)h 1(ecial)h 13(c)h -1(haracter.)h 19(Sp)h 1(ecial)h 177 1934(sequences)s 17(are)h 15(used)h 15(to)h 15(de\014ne)h 15(a)h 14(structure)h 17(in)h 14(a)h 14(F)h -3(unnelW)h -3(eb)h 14(input)h 14(\014le)h 14(that)h 15(exists)h 15(at)h 14(a)h 14(higher)h 15(lev)h -1(el)h 14(to)h 177 1984(the)s 18(surrounding)h 18(text.)h 29(A)h 17(F)h -3(unnelW)h -3(eb)h 17(input)h 17(\014le)h 17(ma)h -1(y)h 16(b)h 1(e)h 18(considered)h 19(to)h 17(b)h 1(e)h 18(a)h 17(sequence)h 19(of)h 17(text)h 18(and)h 177 2034(sp)s 1(ecial)h 14(sequence)h 1(s.)h 350 2109(This)s 16(is)h 15(the)h 16(name)h 14(for)h 16(the)h 16(comp)h 1(onen)h -1(t)h 14(of)h 15(F)h -3(unnelW)h -3(eb)h 15(that)h 16(generates)h 17(one)h 16(or)h 15(more)h 15(pro)h 1(duct)h 177 2159(\014les)s 14(con)h -1(taining)h 13(the)h 15(expansion)h 13(of)h 14(macros)h 13(in)h 13(the)h 15(input)h 13(\014le.)h 655 2233(A)s 15(F)h -3(unnelW)h -3(eb)h 14(directiv)h -1(e)h 15(whose)h 16(sole)h 14(e\013ect)h 16(is)h 15(to)h 14(mo)h 1(dify)h 13(the)h 15(w)h -1(a)h -1(y)h 14(in)h 14(whic)h -1(h)h 177 2283(the)s 15(input)h 13(\014le)h 14(is)h 14(represen)h -1(te)h 1(d)h 16(in)h 13(the)h 15(do)h 1(cumen)h -1(tation)h 12(\014le.)h 348 2358(This)s 16(is)h 15(the)h 17(name)h 15(for)h 15(the)h 17(comp)h 1(onen)h -1(t)h 15(of)h 15(F)h -3(unnelW)h -3(eb)h 16(that)h 16(generates)h 17(a)h 16(do)h 1(cumen)h -1(tation)h 15(\014le)h 177 2408(con)s -1(taining)h 13(t)h -1(yp)h 1(esetting)h 15(comm)h -1(ands)h 12(represe)h 1(n)h -1(ting)h 15(the)h 14(input)h 14(\014le.)h 1032 2940(116)s 117 @eop 118 @bop0 cmbx10.622 sf [ 64 59 -4 58 70] 66 dc cmbx10.746 sf [ 88 72 -4 70 89] 82 dc cmti10.300 sf [<007FF0000780000700000700000700000700000E00000E00000E00000E00001C00001C 00001C00001C0000380000380000380000380000700000700000700000700060E000E0E0 00C0C00081C0008380004700003C0000> 24 29 -5 27 22] 74 dc cmr10.300 sf [<00E0000001900000030800000308000007080000070800000708000007080000071000 0007100000072000000740000003C03FE003800F00038006000380040005C0040009C008 0010E0100030E010006070200060702000E0384000E03C4000E01C8000E00F0020E00700 20700780403009C0401830E18007C03E00> 32 31 -2 29 32] 38 dc 118 @bop1 cmcsc10.300 sf 723 1967(a)s cmbx10.622 sf 177 378(App)s 3(endix)h 34(B)h cmbx10.746 sf 177 610(References)s cmti10.300 sf 1108 1847(The)s 14(Computer)h 15(Journal)h cmbx10.300 sf 177 851([ANSI])s 177 1025([ANZE])s 177 1150([BSI82])s 177 1324([Gries81])s 177 1399([Humphries91)s -1(])h 177 1523([Kernighan88])s 177 1648([Kn)s -1(uth83])h 177 1773([Kn)s -1(uth84])h 177 1847([Kn)s -1(uth84])h 177 1972([Lamp)s 1(ort86])h 177 2096([Roso)s -1(vsky90])h 177 2221([Smith91])s 177 2345([Strunk79])s 177 2470([USDOD83])s cmr10.300 sf 342 851(Australian)s 20(Standard)h 21(AS)h 20(3955-1991,)h 19(\\Programm)h -1(ing)h 18(Languages)h 20(|)h 20(C",)h 20(\(ISBN:)h 20(0-7262-)h 177 901(6970-0\),)s 16(12)h 17(July)h 17(1991.)h 27(Iden)h -1(tical)h 17(to:)h 24(In)h -1(ternational)h 17(Standard)h 17(ISO/IEC)h 18(9899:)h 23(1990)h 16(Programm)h -1(ing)h 177 951(Languages)s 14(|)h 13(C.)h 353 1025(\\Australia,)s 16(New)h 16(Zealand)h 16(Encyclop)h 1(edia",)h 16(En)h -1(try:)h 22(\\F)h -3(unnel-w)h -1(eb)h 15(spiders",)h 17(V)h -3(ol)h 15(7,)h 15(pp.)h 16(564{)h 177 1075(565,)s 13(Ba)h -1(y)h 14(Bo)h 1(oks,)h 13(Sydney)h -3(,)h 14(\(ISBN:)h 14(85835{127{)h -1(7\),)h 12(1975.)h 340 1150(British)s 11(Standards)h 11(Institute,)h 11(\\Sp)h 1(eci\014cation)h 11(for)h 10(Computer)h 10(Programm)h -1(i)h -1(ng)h 9(Language)h 10(P)h -1(ascal",)h 177 1200(Publication)s 15(BS6192:1982,)h 13(British)h 16(Standards)h 16(Institute,)h 17(P)h -3(.O.)h 15(Bo)h -1(x)h 15(372,)h 15(Milton)h 14(Keynes,)h 17(MK146LO,)h 177 1249(1982.)s 372 1324(Gries)s 10(D.,)h 9(\\The)h 10(Science)h 11(of)h 9(Programm)h -1(ing)h -1(",)h 8(Springer-V)h -3(erlag,)h 10(\(ISBN:)h 10(0-387-9064)h -1(1-X\),)h 7(1981.)h 497 1399(Humphries)s 15(B,)h 15(\\Neglected)h 16(P)h -1(o)h 1(ems)h 15(and)h 15(Other)h 16(Creatures",)h 17(Angus)h 16(and)h 15(Rob)h 1(ertson,)h 177 1449(Sydney)s -3(,)h 14(\(ISBN:)h 14(0-207-1721)h -1(2-9\),)h 11(1991.)h 487 1523(Kernighan)s 17(B.W.,)h 17(Ritc)h -1(hie)h 16(D.M.,)h 16(\\The)h 17(C)h 17(Programm)h -1(ing)h 14(Language",)h 17(\(second)h 18(edi-)h 177 1573(tion,\\ANSI)s 13(C"\),)h 13(Pren)h -1(tice)h 16(Hall,)h 12(\(ISBN:)h 14(0-13-110362-)h -1(8\),)h 12(1988.)h 401 1648(Kn)s -1(uth)h 15(D.E.,)h 14(\\The)h 15(WEB)h 15(System)h 14(of)h 15(Structured)h 16(Do)h 1(cumen)h -1(tation",)h 13(\(W)h -3(eb)h 15(User)h 16(Man)h -1(ual,)h 177 1698(V)s -3(ersion)h 14(2.5,)h 13(No)h -1(v)h -1(em)h -1(b)h 1(er,)h 12(1983\),)h 13(Stanford)h 13(Univ)h -1(ersit)h -1(y)h -3(,)h 13(1983.)h 399 1773(Kn)s -1(uth)h 15(D.E.,)h 12(\\The)h 14(T)h 767 1782(E)s 790 1773(Xb)s 1(o)h 1(ok",)h 13(Addison-W)h -3(esley)h -3(,)h 13(\(ISBN:)h 14(0-201-13448-)h -1(9\),)h 12(1984.)h 399 1847(Kn)s -1(uth)h 14(D.E.,)h 12(\\Literate)h 14(Programm)h -1(i)h -1(ng",)h 427(,)h 13(V)h -3(ol.)h 11(27,)h 13(No.)h 13(2,)h 12(pp.)h 13(97-)h 177 1897(111,)s 13(1984.)h 17(Note:)h 18(The)h 15(author)h 13(of)h 14(this)h 14(man)h -1(ual)h 11(has)h 14(not)h 14(y)h -1(et)h 14(obtained)h 14(this)h 14(pap)h 1(er.)h 449 1972(Lamp)s 1(ort)h 16(L.,)h 16(\\L)h 4(T)h 765 1985(E)s 788 1972(X:)s 16(A)h 16(Do)h 1(cumen)h -1(t)h 16(Preparation)h 17(System",)h 16(Addison-W)h -3(esley)h -3(,)h 16(\(ISBN:)h 177 2022(0-201-15790-)s -1(X\),)h 12(1986.)h 463 2096(Roso)s -1(vsky)h 15(H.,)h 16(\\The)h 16(Univ)h -1(ersit)h -1(y:)h 23(An)h 16(Owner's)h 17(Man)h -1(ual",)h 15(W.W.Norton)h 14(&)h 17(Compan)h -1(y)h -4(,)h 177 2146(Inc.,)s 14(\(ISBN:)h 14(0-393-0278)h -1(2-1\),)h 11(1990.)h 394 2221(Smith)s 17(L.M.C.,)h 17(\\An)h 19(Annotated)h 18(Bibliograph)h -1(y)h 17(of)h 18(Literate)h 19(Programm)h -1(ing)h -1(",)h 17(A)h -1(CM)h 18(SIG-)h 177 2271(PLAN)s 14(Notices,)h 15(V)h -3(ol.)h 12(26,)h 13(No.)h 13(1,)h 13(Jan)h -1(uary)h 14(1991.)h 407 2345(Strunk)s 13(W.,)h 12(White)h 12(E.B.,)h 13(\\The)h 13(Elemen)h -1(ts)h 12(of)h 12(St)h -1(yle",)h 12(Third)h 13(Edition,)h 12(MacMillan)h 11(Publish-)h 177 2395(ing)s 13(Compan)h -1(y)h -3(,)h 11(New)h 15(Y)h -3(ork,)h 13(\(ISBN:)h 14(0-02-41820)h -1(0-1\),)h 11(1979.)h 442 2470(\\The)s 19(Programm)h -1(ing)h 16(Language)h 18(Ada)h 18(Reference)h 20(Man)h -1(ual",)h 18(American)h 18(National)h 17(Stan-)h 177 2520(dards)s 15(Institute)h 14(Inc,)h 14(ANSI/MIL-STD-1815A-1983,)h 11(1983.)h 1032 2940(117)s 118 @eop 119 @bop0 cmbx10.746 sf [<7FFFFF801FFFFF007FFFFF801FFFFF007FFFFF801FFFFF007FFFFF801FFFFF007FFFFF 801FFFFF00007FF80001FF0000007FFC0001FC0000003FFE0003F80000001FFF0007F000 00000FFF0007E000000007FF800FC000000003FFC01F8000000003FFE03F8000000001FF F07F0000000000FFF8FE00000000007FF9FC00000000003FFFF800000000003FFFF00000 0000001FFFE000000000000FFFC0000000000007FFC0000000000003FFC0000000000001 FFE0000000000001FFF0000000000001FFF8000000000003FFFC000000000003FFFE0000 00000007FFFE00000000000FEFFF00000000001FCFFF80000000003F87FFC0000000007F 03FFE000000000FE01FFE000000001FC00FFF000000001F8007FF800000003F0007FFC00 000007F0003FFE0000000FE0001FFF0000001FC0000FFF0000003F800007FF800000FF80 0007FFC000FFFFF8003FFFFFC0FFFFF8003FFFFFC0FFFFF8003FFFFFC0FFFFF8003FFFFF C0FFFFF8003FFFFFC0> 64 46 -2 45 63] 120 dc cmr10.300 sf [<003F800000C0600003001800040004000800020010000100201F00802070808040E040 4040C0384041C03840818038208380382083803820838038208380382083803820818038 2041C0382040C0384040E0784020709880201F0F00100000000800000004000000030001 E000C01F80003FF000> 32 29 -2 28 32] 64 dc [<60F0F060000000000060606060606060606060606060F0F0F0F0F0F0F060> 8 30 -4 20 12] 60 dc [<030007800780030000000000000000000000010001000200020002000200060004000C 00180038007000E000E01EE01EE01EE00E600430180FE0> 16 29 -2 20 20] 62 dc 119 @bop1 cmbx10.746 sf 177 279(Index)s cmr10.300 sf 177 487(+=)s 15(tutorial)h 13(26)h 177 537(+=)s 15(85)h 177 587(2167A)s 13(51)h 177 637(==)s 15(tutorial)h 13(26)h 177 687(==)s 15(85)h 177 737(@!)s 14(37)h 177 787(@!)s 14(75)h 177 837(@")s 14(29)h 177 886(@\()s 14(29)h 177 936(@\))s 14(29)h 177 986(@+)s 15(20)h 177 1036(@+)s 15(76)h 177 1086(@,)s 14(29)h 177 1136(@-)s 14(23)h 177 1186(@-)s 14(77)h 177 1236(@1...)s 13(28)h 177 1286(@1...)s 13(86)h 177 1336(@<)s 14(20)h 177 1386(@=)s 15(20)h 177 1436(@>)s 14(20)h 177 1486(@A...)s 13(34)h 177 1536(@braces)s 16(20)h 177 1586(@braces)s 16(37)h 177 1636(@circum\015ex)s 14(74)h 177 1686(@dollar)s 13(22)h 177 1736(@hash)s 15(76)h 177 1786(@i)s 14(30)h 177 1836(@i)s 14(77)h 177 1886(@M)s 14(tutorial)h 13(24)h 177 1935(@M)s 14(85)h 177 1985(@O)s 15(20)h 177 2035(@O)s 15(22)h 177 2085(@slash)s 14(37)h 177 2135(@Z)s 15(tutorial)h 13(24)h 177 2185(@Z)s 15(85)h 177 2235(absen)s -1(t)h 15(comm)h -1(and)h 12(93)h 177 2285(abstract)s 15(data)h 13(t)h -1(yp)h 1(e)h 15(55)h 177 2335(abstraction)s 14(co)h 1(de)h 15(56)h 177 2385(abstraction)s 14(data)h 14(26)h 177 2435(abstraction)s 14(set)h 15(59)h 177 2485(abuse)s 15(comm)h -1(en)h -1(ts)h 13(57)h 177 2535(access)s 16(random)h 12(50)h 177 2585(ac)s -1(kno)h -1(wledgemen)h -1(ts)h 13(11)h 177 2635(action)s 14(execution)h 14(order)h 15(71)h 177 2685(Action)s 14(options)h 14(70)h 177 2735(actual)s 14(parameters)h 14(29)h 177 2785(Ada)s 14(11)h 177 2835(Ada)s 14(44)h 1136 487(Ada)s 13(49)h 1136 537(Ada)s 13(51)h 1136 587(Ada)s 13(55)h 1136 637(additiv)s -1(e)h 13(macros)h 13(26)h 1136 687(additiv)s -1(e)h 13(macro)h 12(26)h 1136 737(additiv)s -1(ely)h 12(de\014ned)h 15(85)h 1136 787(Adelaide)s 13(Univ)h -1(ersit)h -1(y)h 14(59)h 1136 837(admin)s 11(directory)h 15(102)h 1136 886(admini)s -1(stration)h 12(F)h -3(unnelW)h -3(eb)h 13(109)h 1136 936(ADT)s 13(55)h 1136 986(alias)s 12(49)h 1136 1036(Analyser)s 14(115)h 1136 1086(analyser)s 14(65)h 1136 1136(analyser)s 14(88)h 1136 1186(analysis)s 13(static)h 14(88)h 1136 1236(Andrew)s 14(T)h -3(rev)h -1(orro)h -1(w)h 14(13)h 1136 1286(anima)s -1(l)h 12(p)h 1(o)h 1(em)h 13(30)h 1136 1336(ann)s -1(ual)h 13(rep)h 1(ort)h 14(58)h 1136 1386(anon)s -1(ymo)h -1(us)h 13(ftp)h 13(101)h 1136 1436(ANSI)s 14(109)h 1136 1486(ANSI)s 14(117)h 1136 1536(answ)s -1(ers)h 15(correct)h 15(102)h 1136 1586(answ)s -1(ers)h 15(directory)h 14(102)h 1136 1636(ANZE)s 14(117)h 1136 1686(ANZE)s 14(19)h 1136 1736(applications)s 12(F)h -3(unnelW)h -3(eb)h 14(53)h 1136 1786(arbitrary)s 13(c)h -1(haracters)h 16(inserting)h 14(in)h -1(to)h 13(text)h 15(74)h 1136 1836(arc)s -1(hitecture)h 15(seman)h -1(tic)h 13(64)h 1136 1886(arc)s -1(hiv)h -1(e)h 14(ftp)h 13(114)h 1136 1935(arc)s -1(hiv)h -1(e)h 14(F)h -3(unnelW)h -3(eb)h 13(114)h 1136 1985(argumen)s -1(t)h 12(command)h 12(line)h 13(67)h 1136 2035(argumen)s -1(ts)h 13(67)h 1136 2085(Argumen)s -1(t)h 13(115)h 1136 2135(assertion)s 14(sev)h -1(erit)h -1(y)h 15(65)h 1136 2185(assertion)s 14(status)h 15(90)h 1136 2235(A)s -1(trax)h 14(robustus)h 14(19)h 1136 2285(attributes)s 14(macro)h 13(85)h 1136 2335(author)s 14(con)h -1(tacting)h 13(114)h 1136 2385(B)s 14(option)h 13(68)h 1136 2435(Barry)s 14(Dwy)h -1(er)h 14(11)h 1136 2485(Barry)s 14(Dwy)h -1(er)h 14(59)h 1136 2535(Barry)s 14(Humphries)h 13(19)h 1136 2585(BASIC)s 14(57)h 1136 2635(Begg)s 14(Jerem)h -1(y)h 14(11)h 1136 2685(binding)s 13(problems)h 12(57)h 1136 2735(bindings)s 13(macro)h 13(22)h 1136 2785(blank)s 13(inden)h -1(tation)h 13(78)h 1136 2835(blank)s 13(inden)h -1(tation)h 13(78)h 1032 2940(118)s 119 @eop 120 @bop0 120 @bop1 cmr10.300 sf 177 42(blanks)s 14(trailing)h 12(42)h 177 91(b)s 1(oring)h 14(organization)h 12(50)h 177 141(Brissenden)s 16(Roger)h 14(11)h 177 191(BSI82)s 14(117)h 177 241(BSI82)s 14(15)h 177 291(BSI82)s 14(18)h 177 341(C)s 14(header)h 15(57)h 177 391(C)s 14(option)h 13(68)h 177 441(C)s 14(prepro)h 1(cess)h 1(or)h 15(20)h 177 490(C)s 14(prepro)h 1(cess)h 1(or)h 15(57)h 177 540(calls)s 14(macro)h 12(86)h 177 590(calls)s 14(n)h -1(um)h -1(b)h 1(er)h 13(23)h 177 640(camera)s 13(p)h 1(o)h 1(em)h 13(30)h 177 690(case)s 15(dep)h 1(endence)h 17(67)h 177 740(c)s -1(hanging)h 13(sp)h 1(ecial)h 14(c)h -1(haracter)h 16(31)h 177 790(c)s -1(haracters)h 16(con)h -1(trol)h 13(42)h 177 840(c)s -1(haracters)h 16(non-prin)h -1(table)h 13(96)h 177 889(c)s -1(haracters)h 16(unprin)h -1(table)h 13(71)h 177 939(c)s -1(hec)h -1(ks)h 15(macro)h 13(88)h 177 989(c)s -1(heer)h 16(hac)h -1(k)h -1(er's)h 14(35)h 177 1039(c)s -1(heer)h 16(programm)h -1(er's)h 12(35)h 177 1089(co)s 1(de)h 15(abstraction)h 14(56)h 177 1139(co)s 1(de)h 15(explaining)h 12(17)h 177 1189(co)s 1(de)h 15(gardening)h 13(53)h 177 1239(co)s 1(de)h 15(vs)h 14(do)h 1(cumen)h -1(tation)h 13(32)h 177 1288(co)s 1(dify)h 14(comm)h -1(and)h 12(93)h 177 1338(comma)s -1(nd)h 12(absen)h -1(t)h 15(93)h 177 1388(comma)s -1(nd)h 12(co)h 1(dify)h 14(93)h 177 1438(comma)s -1(nd)h 12(compare)h 13(93)h 177 1488(comma)s -1(nd)h 12(de\014ne)h 15(91)h 177 1538(comma)s -1(nd)h 12(de\014ne)h 15(94)h 177 1588(comma)s -1(nd)h 12(di\013summa)h -1(ry)h 12(95)h 177 1638(comma)s -1(nd)h 12(di\013zero)h 15(95)h 177 1687(comma)s -1(nd)h 12(di\013)h 14(94)h 177 1737(comma)s -1(nd)h 12(eneo)h 15(95)h 177 1787(comma)s -1(nd)h 12(execute)h 16(96)h 177 1837(comma)s -1(nd)h 12(exists)h 15(96)h 177 1887(comma)s -1(nd)h 12(\014xeols)h 14(96)h 177 1937(comma)s -1(nd)h 12(fw)h 14(97)h 177 1987(comma)s -1(nd)h 12(help)h 14(97)h 177 2037(comma)s -1(nd)h 12(here)h 15(98)h 177 2086(comma)s -1(nd)h 12(in)h -1(terpreter)h 16(47)h 177 2136(comma)s -1(nd)h 12(length)h 14(91)h 177 2186(comma)s -1(nd)h 12(line)h 14(argumen)h -1(t)h 12(67)h 177 2236(comma)s -1(nd)h 12(line)h 14(in)h -1(terface)h 14(66)h 177 2286(comma)s -1(nd)h 12(line)h 14(options)h 13(syn)h -1(tax)h 14(67)h 177 2336(comma)s -1(nd)h 12(line)h 14(parsing)h 13(66)h 177 2386(comma)s -1(nd)h 12(line)h 14(pro)h 1(cessing)h 15(66)h 177 2436(comma)s -1(nd)h 12(line)h 14(pro)h 1(cessing)h 15(92)h 177 2486(comma)s -1(nd)h 12(line)h 14(syn)h -1(tax)h 14(67)h 177 2535(comma)s -1(nd)h 12(options)h 14(92)h 177 2585(comma)s -1(nd)h 12(quit)h 14(98)h 177 2635(comma)s -1(nd)h 12(set)h 15(48)h 177 2685(comma)s -1(nd)h 12(set)h 15(98)h 177 2735(comma)s -1(nd)h 12(shell)h 14(F)h -3(unnelW)h -3(eb)h 13(90)h 177 2785(comma)s -1(nd)h 12(sho)h -1(w)h 14(48)h 177 2835(comma)s -1(nd)h 12(sho)h -1(w)h 14(98)h 1136 42(comm)s -1(and)h 12(skipto)h 13(98)h 1136 91(comm)s -1(and)h 12(status)h 14(99)h 1136 141(comm)s -1(and)h 12(tolerate)h 14(100)h 1136 191(comm)s -1(and)h 12(trace)h 15(on)h 13(48)h 1136 241(comm)s -1(and)h 12(trace)h 15(100)h 1136 291(comm)s -1(and)h 12(v)h -1(erb)h 14(fw)h 14(66)h 1136 341(comm)s -1(and)h 12(writeu)h 14(100)h 1136 391(comm)s -1(and)h 12(write)h 14(100)h 1136 441(comm)s -1(ands)h 12(F)h -3(unnelW)h -3(eb)h 13(90)h 1136 490(comm)s -1(ands)h 12(shell)h 14(93)h 1136 540(comm)s -1(ands)h 12(useful)h 14(47)h 1136 590(comm)s -1(en)h -1(ts)h 13(abuse)h 14(57)h 1136 640(comm)s -1(en)h -1(ts)h 13(elimi)h -1(nating)h 12(57)h 1136 690(comm)s -1(en)h -1(ts)h 13(F)h -3(unnelW)h -3(eb)h 13(75)h 1136 740(comm)s -1(en)h -1(ts)h 13(37)h 1136 790(comm)s -1(itm)h -2(en)h -1(t)h 13(F)h -3(unnelW)h -3(eb)h 13(109)h 1136 840(compare)s 13(comm)h -1(and)h 12(93)h 1136 889(compilers)s 12(F)h -3(ortran)h 14(42)h 1136 939(compili)s -1(ng)h 12(F)h -3(unnelW)h -3(eb)h 13(105)h 1136 989(complete)s 13(example)h 12(38)h 1136 1039(conditionals)s 12(fudging)h 13(44)h 1136 1089(console)s 14(output)h 14(suppress)h 16(69)h 1136 1139(constructs)s 16(section)h 14(83)h 1136 1189(con)s -1(tacting)h 13(author)h 14(114)h 1136 1239(con)s -1(ten)h -1(ts)h 15(table)h 13(of)h 14(81)h 1136 1288(con)s -1(text)h 14(in\014nite)h 14(68)h 1136 1338(con)s -1(text)h 14(listing)h 13(\014le)h 14(68)h 1136 1388(con)s -1(text)h 14(69)h 1136 1438(con)s -1(trol)h 13(c)h -1(haracters)h 16(inserting)h 14(in)h -1(to)h 13(text)h 15(74)h 1136 1488(con)s -1(trol)h 13(c)h -1(haracters)h 16(42)h 1136 1538(con)s -1(trollabili)h -1(t)h -1(y)h 12(18)h 1136 1588(cop)s -1(yrigh)h -1(t)h 13(F)h -3(unnelW)h -3(eb)h 13(112)h 1136 1638(cop)s -1(yrigh)h -1(t)h 13(notice)h 14(1)h 1136 1687(correct)s 15(answ)h -1(ers)h 15(102)h 1136 1737(cross)s 15(reference)h 16(n)h -1(um)h -1(b)h 1(ering)h 13(89)h 1136 1787(cross)s 15(referencing)h 15(17)h 1136 1837(cross)s 15(referencing)h 15(89)h 1136 1887(cryptic)s 14(text)h 15(\014les)h 14(55)h 1136 1937(D)s 13(option)h 13(49)h 1136 1987(D)s 13(option)h 13(68)h 1136 2037(dangers)s 14(F)h -3(unnelW)h -3(eb)h 14(50)h 1136 2086(data)s 13(abstraction)h 14(26)h 1136 2136(Da)s -1(vid)h 12(Hulse)h 15(11)h 1136 2186(debugger)s 14(53)h 1136 2236(debugging)s 13(wholistic)h 13(53)h 1136 2286(default)s 13(options)h 14(49)h 1136 2336(default)s 13(options)h 14(92)h 1136 2386(default)s 13(sp)h 1(ecial)h 14(c)h -1(haracter)h 16(72)h 1136 2436(de\014ne)s 15(comm)h -1(and)h 12(91)h 1136 2486(de\014ne)s 15(comm)h -1(and)h 12(94)h 1136 2535(de\014nition)s 13(F)h -3(unnelW)h -3(eb)h 13(63)h 1136 2585(de\014nition)s 13(macro)h 13(85)h 1136 2635(de\014nition)s 13(macro)h 13(87)h 1136 2685(delete)s 15(output)h 14(\014les)h 14(49)h 1136 2735(delete)s 15(output)h 14(option)h 13(68)h 1136 2785(delimi)s -1(ting)h 12(macro)h 12(parameter)h 14(87)h 1136 2835(dep)s 1(endence)h 16(case)h 15(67)h 1032 2940(119)s 120 @eop 121 @bop0 121 @bop1 cmr10.300 sf 177 42(dep)s 1(endencies)h 17(\014le)h 13(49)h 177 91(dev)s -1(elopmen)h -1(t)h 13(time)h 13(17)h 177 141(diagnostics)s 14(lev)h -1(els)h 14(of)h 13(65)h 177 191(diagnostics)s 14(65)h 177 241(dictionary)s 13(hac)h -1(k)h -1(er's)h 15(35)h 177 291(di\013)s 14(comm)h -1(and)h 12(94)h 177 341(di\013erences)s 16(\014le)h 14(94)h 177 391(di\013summa)s -1(ry)h 12(comma)h -1(nd)h 12(95)h 177 441(di\013zero)s 15(comm)h -1(and)h 12(95)h 177 490(directiv)s -1(e)h 15(emphasis)h 13(85)h 177 540(directiv)s -1(e)h 15(literal)h 13(84)h 177 590(directiv)s -1(e)h 15(newpage)h 14(37)h 177 640(directiv)s -1(e)h 15(table)h 13(of)h 14(con)h -1(ten)h -1(ts)h 15(37)h 177 690(directiv)s -1(e)h 15(title)h 13(37)h 177 740(directiv)s -1(e)h 15(vskip)h 13(37)h 177 790(directiv)s -1(es)h 15(t)h -1(yp)h 1(esetter)h 16(81)h 177 840(directiv)s -1(es)h 15(32)h 177 889(directiv)s -1(es)h 15(83)h 177 939(Directiv)s -1(e)h 14(115)h 177 989(directory)s 15(admin)h 12(102)h 177 1039(directory)s 15(answ)h -1(ers)h 15(102)h 177 1089(directory)s 15(hac)h -1(kman)h 12(103)h 177 1139(directory)s 15(results)h 15(103)h 177 1189(directory)s 15(scripts)h 15(103)h 177 1239(directory)s 15(sources)h 15(103)h 177 1288(directory)s 15(tests)h 15(104)h 177 1338(directory)s 15(tree)h 15(102)h 177 1388(directory)s 15(userman)h 13(105)h 177 1438(directory)s 15(70)h 177 1488(Distribution)s 13(F)h -3(unnelW)h -3(eb)h 14(113)h 177 1538(do)s 1(cumen)h -1(t)h 14(list)h 13(dump)h 13(68)h 177 1588(do)s 1(cumen)h -1(t)h 14(list)h 13(64)h 177 1638(do)s 1(cumen)h -1(tation)h 13(duplicate)h 14(51)h 177 1687(do)s 1(cumen)h -1(tation)h 13(examples)h 13(58)h 177 1737(Do)s 1(cumen)h -1(tation)h 12(\014le)h 14(115)h 177 1787(do)s 1(cumen)h -1(tation)h 13(\014le)h 14(18)h 177 1837(do)s 1(cumen)h -1(tation)h 13(F)h -3(unnelW)h -3(eb)h 13(110)h 177 1887(do)s 1(cumen)h -1(tation)h 13(in)h -1(terdep)h 1(enden)h -1(t)h 16(50)h 177 1937(do)s 1(cumen)h -1(tation)h 13(o)h -1(v)h -1(er)h 14(51)h 177 1987(do)s 1(cumen)h -1(tation)h 13(pa)h -1(vlo)h -1(v)h 12(51)h 177 2037(do)s 1(cumen)h -1(tation)h 13(vs)h 14(co)h 1(de)h 15(32)h 177 2086(Do)s 1(cumen)h -1(tation)h 12(115)h 177 2136(do)s 1(cumen)h -1(tation)h 13(64)h 177 2186(DOD83)s 13(55)h 177 2236(Donald)s 13(Kn)h -1(uth)h 14(11)h 177 2286(Donald)s 13(Kn)h -1(uth)h 14(50)h 177 2336(Donald)s 13(Kn)h -1(uth)h 14(9)h 177 2386(dump)s 13(do)h 1(cumen)h -1(t)h 13(list)h 14(68)h 177 2436(dump)s 13(global)h 12(line)h 13(list)h 14(68)h 177 2486(dump)s 13(macro)h 12(table)h 14(68)h 177 2535(dump)s 13(mapp)h 1(ed)h 13(\014le)h 14(68)h 177 2585(dump)s 13(option)h 13(68)h 177 2635(dump)s 13(times)h 13(68)h 177 2685(dump)s 13(tok)h -1(en)h 14(list)h 13(68)h 177 2735(duplicate)s 14(do)h 1(cumen)h -1(tation)h 13(51)h 177 2785(Dwy)s -1(er)h 14(Barry)h 15(11)h 177 2835(Dwy)s -1(er)h 14(Barry)h 15(59)h 1136 42(EBNF)s 14(syn)h -1(tax)h 14(63)h 1136 91(editors)s 14(text)h 15(42)h 1136 141(Edna)s 14(Ev)h -1(erage)h 14(19)h 1136 191(e\016ciency)s 14(F)h -3(unnelW)h -3(eb)h 14(47)h 1136 241(e\016ciency)s 14(notes)h 15(47)h 1136 291(elimi)s -1(nating)h 11(commen)h -1(ts)h 13(57)h 1136 341(emphasis)s 13(construct)h 15(37)h 1136 391(emphasis)s 13(directiv)h -1(e)h 14(85)h 1136 441(empt)s -1(y)h 12(name)h 13(42)h 1136 490(end-of-line)s 13(\014ddling)h 13(with)h 13(43)h 1136 540(eneo)s 14(comma)h -1(nd)h 12(95)h 1136 590(EOL)s 14(\014ddling)h 13(with)h 13(43)h 1136 640(EOL)s 14(mark)h -1(ers)h 13(inserting)h 14(76)h 1136 690(EOL)s 14(mark)h -1(ers)h 13(suppressing)h 15(77)h 1136 740(EOL)s 14(suppression)h 15(23)h 1136 790(error)s 14(sev)h -1(erit)h -1(y)h 15(65)h 1136 840(error)s 14(status)h 15(90)h 1136 889(errors)s 15(shell)h 14(90)h 1136 939(Ev)s -1(erage)h 14(Edna)h 14(19)h 1136 989(example)s 12(applications)h 13(F)h -3(unnelW)h -3(eb)h 13(53)h 1136 1039(example)s 12(complete)h 13(38)h 1136 1089(example)s 12(\014lename)h 13(inheritance)h 15(70)h 1136 1139(Example)s 12(F)h -3(unnelW)h -3(eb)h 13(38)h 1136 1189(examples)s 13(do)h 1(cumen)h -1(tation)h 12(58)h 1136 1239(executable)s 15(F)h -3(unnelW)h -3(eb)h 13(106)h 1136 1288(execute)s 15(command)h 11(96)h 1136 1338(execute)s 15(script)h 15(option)h 13(69)h 1136 1388(execution)s 14(phases)h 15(64)h 1136 1438(exists)s 14(comma)h -1(nd)h 12(96)h 1136 1488(expansion)s 13(macro)h 13(30)h 1136 1538(expansion)s 13(macro)h 13(47)h 1136 1588(expansion)s 13(macro)h 13(87)h 1136 1638(explaining)s 12(co)h 1(de)h 15(17)h 1136 1687(expressions)s 15(macro)h 13(86)h 1136 1737(expression)s 15(85)h 1136 1787(extension)s 14(70)h 1136 1837(F)s 14(option)h 13(68)h 1136 1887(fatal)s 12(sev)h -1(erit)h -1(y)h 15(65)h 1136 1937(fatal)s 12(status)h 15(90)h 1136 1987(\014ddling)s 13(with)h 13(end-of-line)h 13(43)h 1136 2037(\014ddling)s 13(with)h 13(EOL)h 14(43)h 1136 2086(\014elds)s 14(\014lename)h 13(70)h 1136 2136(\014le)s 14(dep)h 1(endencies)h 16(49)h 1136 2186(\014le)s 14(di\013erences)h 16(94)h 1136 2236(\014le)s 14(include)h 13(69)h 1136 2286(\014le)s 14(journal)h 12(69)h 1136 2336(\014le)s 14(listing)h 12(69)h 1136 2386(\014le)s 14(suppression)h 15(49)h 1136 2436(\014le)s 14(termination)h 12(71)h 1136 2486(\014le)s 14(t)h -1(yp)h 1(eset)h 15(69)h 1136 2535(\014lename)s 12(\014elds)h 15(70)h 1136 2585(\014lename)s 12(inheritance)h 15(example)h 13(70)h 1136 2635(\014lename)s 12(inheritance)h 15(70)h 1136 2685(\014les)s 14(header)h 15(57)h 1136 2735(\014les)s 14(include)h 14(30)h 1136 2785(\014les)s 14(include)h 14(77)h 1136 2835(\014les)s 14(input)h 14(47)h 1032 2940(120)s 121 @eop 122 @bop0 122 @bop1 cmr10.300 sf 177 42(\014xeols)s 14(comm)h -1(and)h 12(96)h 177 91(fon)s -1(t)h 13(size)h 15(46)h 177 141(formal)s 12(parameter)h 13(lists)h 14(86)h 177 191(formal)s 12(parameters)h 14(28)h 177 241(formal)s 12(parameters)h 14(28)h 177 291(formal)s 12(parameters)h 14(87)h 177 341(F)s -3(ortran)h 14(compilers)h 13(42)h 177 391(F)s -3(ree)h 15(text)h 14(115)h 177 441(free)s 15(text)h 14(32)h 177 490(F)s -3(ree)h 15(text)h 14(83)h 177 540(free)s 15(text)h 14(83)h 177 590(freestanding)s 15(t)h -1(yp)h 1(esetter)h 16(directiv)h -1(es)h 15(83)h 177 640(freestanding)s 15(81)h 177 690(ftp)s 14(anon)h -1(ymous)h 12(101)h 177 740(ftp)s 14(arc)h -1(hiv)h -1(e)h 14(114)h 177 790(fudging)s 13(conditionals)h 13(44)h 177 840(fudging)s 13(generics)h 15(59)h 177 889(functions)s 14(small)h 12(56)h 177 939(F)s -3(unnel-w)h -1(eb)h 14(spider)h 15(19)h 177 989(F)s -3(unnelW)h -3(eb)h 14(admi)h -1(nistration)h 12(109)h 177 1039(F)s -3(unnelW)h -3(eb)h 14(applications)h 12(53)h 177 1089(F)s -3(unnelW)h -3(eb)h 14(arc)h -1(hiv)h -1(e)h 13(114)h 177 1139(F)s -3(unnelW)h -3(eb)h 14(comm)h -1(and)h 12(shell)h 13(90)h 177 1189(F)s -3(unnelW)h -3(eb)h 14(comm)h -1(and)h 12(shell)h 13(90)h 177 1239(F)s -3(unnelW)h -3(eb)h 14(comm)h -1(ands)h 12(90)h 177 1288(F)s -3(unnelW)h -3(eb)h 14(comm)h -1(en)h -1(ts)h 13(75)h 177 1338(F)s -3(unnelW)h -3(eb)h 14(comm)h -1(i)h -1(tm)h -1(en)h -1(t)h 13(109)h 177 1388(F)s -3(unnelW)h -3(eb)h 14(compil)h -1(ing)h 12(105)h 177 1438(F)s -3(unnelW)h -3(eb)h 14(cop)h -1(yrigh)h -1(t)h 13(112)h 177 1488(F)s -3(unnelW)h -3(eb)h 14(dangers)h 14(50)h 177 1538(F)s -3(unnelW)h -3(eb)h 14(de\014nition)h 13(63)h 177 1588(F)s -3(unnelW)h -3(eb)h 14(Distribution)h 13(113)h 177 1638(F)s -3(unnelW)h -3(eb)h 14(do)h 1(cumen)h -1(tation)h 12(110)h 177 1687(F)s -3(unnelW)h -3(eb)h 14(e\016ciency)h 14(47)h 177 1737(F)s -3(unnelW)h -3(eb)h 14(example)h 12(applications)h 13(53)h 177 1787(F)s -3(unnelW)h -3(eb)h 14(Example)h 12(38)h 177 1837(F)s -3(unnelW)h -3(eb)h 14(executable)h 15(106)h 177 1887(F)s -3(unnelW)h -3(eb)h 14(\014le)h 13(115)h 177 1937(F)s -3(unnelW)h -3(eb)h 14(\014le)h 13(64)h 177 1987(F)s -3(unnelW)h -3(eb)h 14(hin)h -1(ts)h 13(41)h 177 2037(F)s -3(unnelW)h -3(eb)h 14(initiali)h -1(zation)h 12(70)h 177 2086(F)s -3(unnelW)h -3(eb)h 14(installation)h 12(101)h 177 2136(F)s -3(unnelW)h -3(eb)h 14(installing)h 12(106)h 177 2186(F)s -3(unnelW)h -3(eb)h 14(in)h -1(v)h -1(oking)h 12(66)h 177 2236(F)s -3(unnelW)h -3(eb)h 14(language)h 12(115)h 177 2286(F)s -3(unnelW)h -3(eb)h 14(license)h 14(112)h 177 2336(F)s -3(unnelW)h -3(eb)h 14(martinet)h 12(42)h 177 2386(F)s -3(unnelW)h -3(eb)h 14(name)h 12(19)h 177 2436(F)s -3(unnelW)h -3(eb)h 14(obtaining)h 12(101)h 177 2486(F)s -3(unnelW)h -3(eb)h 14(o)h -1(v)h -1(erview)h 13(18)h 177 2535(F)s -3(unnelW)h -3(eb)h 14(o)h -1(v)h -1(erview)h 13(64)h 177 2585(F)s -3(unnelW)h -3(eb)h 14(pitfalls)h 12(50)h 177 2635(F)s -3(unnelW)h -3(eb)h 14(program)h 12(65)h 177 2685(F)s -3(unnelW)h -3(eb)h 14(prop)h 1(er)h 14(115)h 177 2735(F)s -3(unnelW)h -3(eb)h 14(prop)h 1(er)h 14(48)h 177 2785(F)s -3(unnelW)h -3(eb)h 14(prop)h 1(er)h 14(65)h 177 2835(F)s -3(unnelW)h -3(eb)h 14(registration)h 13(110)h 1136 42(F)s -3(unnelW)h -3(eb)h 13(rules)h 15(42)h 1136 91(F)s -3(unnelW)h -3(eb)h 13(running)h 14(66)h 1136 141(F)s -3(unnelW)h -3(eb)h 13(shell)h 14(90)h 1136 191(F)s -3(unnelW)h -3(eb)h 13(startup)h 15(70)h 1136 241(F)s -3(unnelW)h -3(eb)h 13(supp)h 1(ort)h 15(110)h 1136 291(F)s -3(unnelW)h -3(eb)h 13(testing)h 14(105)h 1136 341(F)s -3(unnelW)h -3(eb)h 13(t)h -1(w)h -1(o)h 13(main)h 12(asp)h 1(ects)h 16(21)h 1136 391(F)s -3(unnelW)h -3(eb)h 13(v)h -1(ersions)h 14(114)h 1136 441(F)s -3(unnelW)h -3(eb)h 13(115)h 1136 490(fw)s 13(comma)h -1(nd)h 12(v)h -1(erb)h 15(66)h 1136 540(fw)s 13(comma)h -1(nd)h 12(97)h 1136 590(fwinit.fws)s 12(49)h 1136 640(fwinit.fws)s 12(71)h 1136 690(FW)s 13(115)h 1136 740(gardening)s 13(co)h 1(de)h 15(53)h 1136 790(generics)s 15(fudging)h 13(59)h 1136 840(generics)s 15(t)h -1(yp)h 1(esafe)h 14(61)h 1136 889(global)s 12(line)h 13(list)h 14(dump)h 12(68)h 1136 939(glossary)s 13(115)h 1136 989(GNU)s 13(license)h 15(112)h 1136 1039(GNU)s 13(license)h 15(18)h 1136 1089(GNU)s 13(license)h 15(9)h 1136 1139(go)s 1(o)h 1(d)h 13(old)h 13(da)h -1(ys)h 14(57)h 1136 1189(Gries81)s 13(117)h 1136 1239(Gries81)s 13(51)h 1136 1288(H)s 14(option)h 13(68)h 1136 1338(hac)s -1(k)h -1(er's)h 14(c)h -1(heer)h 15(35)h 1136 1388(hac)s -1(k)h -1(er's)h 14(dictionary)h 13(35)h 1136 1438(Hac)s -1(k)h -1(ett)h 14(Simon)h 12(11)h 1136 1488(hac)s -1(kman)h 12(directory)h 15(103)h 1136 1538(header)s 15(C)h 13(57)h 1136 1588(header)s 15(\014le)h 13(p)h 1(ostscript)h 16(54)h 1136 1638(header)s 15(\014les)h 14(57)h 1136 1687(header)s 15(page)h 13(37)h 1136 1737(headings)s 14(section)h 14(34)h 1136 1787(headings)s 14(strength)h 15(46)h 1136 1837(Hello)s 13(Northern)h 15(Hemisphere)h 14(Program)h 12(21)h 1136 1887(hello)s 13(w)h -1(orld)h 13(do)h 1(cumen)h -1(t)h 13(20)h 1136 1937(help)s 14(comm)h -1(and)h 12(97)h 1136 1987(help)s 14(option)h 13(68)h 1136 2037(here)s 15(comm)h -1(and)h 12(98)h 1136 2086(hierarc)s -1(hical)h 13(structure)h 16(34)h 1136 2136(high)s 13(lev)h -1(el)h 13(syn)h -1(tax)h 14(82)h 1136 2186(hin)s -1(ts)h 13(F)h -3(unnelW)h -3(eb)h 14(41)h 1136 2236(Hulse)s 14(Da)h -1(vid)h 13(11)h 1136 2286(Humphries)s 13(Barry)h 14(19)h 1136 2336(Humphries91)s 13(117)h 1136 2386(Humphries91)s 13(19)h 1136 2436(h)s -1(yp)h 1(ertext)h 15(15)h 1136 2486(I)s 13(option)h 14(69)h 1136 2535(iden)s -1(ti\014ers)h 14(macro)h 13(41)h 1136 2585(include)s 14(\014le)h 13(option)h 14(69)h 1136 2635(include)s 14(\014les)h 14(recursiv)h -1(e)h 15(31)h 1136 2685(include)s 14(\014les)h 14(30)h 1136 2735(include)s 14(\014les)h 14(77)h 1136 2785(include)s 14(\014les)h 14(77)h 1136 2835(Include)s 14(\014le)h 14(115)h 1032 2940(121)s 122 @eop 123 @bop0 123 @bop1 cmr10.300 sf 177 42(include)s 14(\014le)h 14(69)h 177 91(inden)s -1(tation)h 13(blank)h 14(78)h 177 141(inden)s -1(tation)h 13(macro)h 13(calls)h 14(25)h 177 191(inden)s -1(tation)h 13(macro)h 13(expansion)h 14(78)h 177 241(inden)s -1(tation)h 13(none)h 15(78)h 177 291(indep)s 1(endence)h 16(language)h 13(18)h 177 341(indep)s 1(endence)h 16(t)h -1(yp)h 1(esetter)h 17(18)h 177 391(indep)s 1(endence)h 16(t)h -1(yp)h 1(esetter)h 17(34)h 177 441(indep)s 1(endence)h 16(t)h -1(yp)h 1(esetter)h 17(65)h 177 490(indep)s 1(endence)h 16(t)h -1(yp)h 1(esetter)h 17(80)h 177 540(in\014nite)s 14(con)h -1(text)h 14(68)h 177 590(inheritance)s 15(\014lename)h 12(70)h 177 640(inheritance)s 15(section)h 14(name)h 13(35)h 177 690(initializatio)s -1(n)h 12(F)h -3(unnelW)h -3(eb)h 14(70)h 177 740(initializatio)s -1(n)h 12(script)h 15(49)h 177 790(initializatio)s -1(n)h 12(script)h 15(71)h 177 840(inline)s 13(t)h -1(yp)h 1(esetter)h 16(directiv)h -1(es)h 15(83)h 177 889(inline)s 13(81)h 177 939(input)s 14(\014le)h 14(option)h 13(68)h 177 989(input)s 14(\014les)h 14(47)h 177 1039(Input)s 14(\014le)h 14(115)h 177 1089(input)s 14(\014le)h 14(18)h 177 1139(input)s 14(\014le)h 14(64)h 177 1189(input)s 14(\014le)h 14(77)h 177 1239(input)s 14(line)h 13(length)h 14(maxim)h -3(um)h 11(79)h 177 1288(input)s 14(line)h 13(length)h 14(pragma)h 12(79)h 177 1338(input)s 14(line)h 13(length)h 14(42)h 177 1388(input)s 14(line)h 13(length)h 14(79)h 177 1438(inserting)s 14(EOL)h 14(mark)h -1(ers)h 14(76)h 177 1488(inserting)s 14(in)h -1(to)h 13(text)h 15(arbitrary)h 14(c)h -1(haracters)h 15(74)h 177 1538(inserting)s 14(in)h -1(to)h 13(text)h 15(con)h -1(trol)h 13(c)h -1(haracters)h 16(74)h 177 1588(inserting)s 14(in)h -1(to)h 13(text)h 15(sp)h 1(ecial)h 14(c)h -1(haracter)h 15(74)h 177 1638(installation)s 12(F)h -3(unnelW)h -3(eb)h 14(101)h 177 1687(installation)s 12(problems)h 13(107)h 177 1737(installing)s 12(F)h -3(unnelW)h -3(eb)h 14(106)h 177 1787(in)s -1(teractiv)h -1(e)h 14(mo)h 1(de)h 13(47)h 177 1837(in)s -1(teractiv)h -1(e)h 14(option)h 14(69)h 177 1887(in)s -1(terdep)h 1(enden)h -1(t)h 16(do)h 1(cumen)h -1(tation)h 13(50)h 177 1937(in)s -1(terface)h 15(comm)h -1(and)h 12(line)h 13(66)h 177 1987(in)s -1(terpreter)h 16(comm)h -1(and)h 12(47)h 177 2037(in)s -1(tro)h 1(duction)h 14(tutorial)h 13(19)h 177 2086(in)s -1(visible)h 13(pragmas)h 12(78)h 177 2136(in)s -1(v)h -1(o)h 1(cation)h 13(n)h -1(um)h -1(b)h 1(er)h 13(23)h 177 2186(in)s -1(v)h -1(o)h 1(cations)h 13(n)h -1(um)h -1(b)h 1(er)h 13(42)h 177 2236(in)s -1(v)h -1(oking)h 12(F)h -3(unnelW)h -3(eb)h 14(20)h 177 2286(in)s -1(v)h -1(oking)h 12(F)h -3(unnelW)h -3(eb)h 14(66)h 177 2336(J)s 14(option)h 13(69)h 177 2386(Jerem)s -1(y)h 14(Begg)h 14(11)h 177 2436(journal)s 13(\014le)h 14(option)h 13(69)h 177 2486(Journal)s 14(\014le)h 14(115)h 177 2535(journal)s 13(\014le)h 14(64)h 177 2585(journal)s 13(\014le)h 14(69)h 177 2635(K)s 14(option)h 13(69)h 177 2685(Kernighan88)s 14(117)h 177 2735(Kernighan88)s 14(65)h 177 2785(k)s -1(eyb)h 1(oard)h 14(mo)h 1(de)h 13(47)h 177 2835(k)s -1(eyb)h 1(oard)h 14(option)h 13(69)h 1136 42(Kn)s -1(uth)h 14(Donald)h 13(11)h 1136 91(Kn)s -1(uth)h 14(Donald)h 13(50)h 1136 141(Kn)s -1(uth)h 14(Donald)h 13(9)h 1136 191(Kn)s -1(uth83)h 13(117)h 1136 241(Kn)s -1(uth83)h 13(17)h 1136 291(Kn)s -1(uth83)h 13(25)h 1136 341(Kn)s -1(uth83)h 13(25)h 1136 391(Kn)s -1(uth83)h 13(9)h 1136 441(Kn)s -1(uth84)h 13(117)h 1136 490(Kn)s -1(uth84)h 13(117)h 1136 540(Kn)s -1(uth84)h 13(13)h 1136 590(Kn)s -1(uth84)h 13(17)h 1136 640(Kn)s -1(uth84)h 13(18)h 1136 690(L)s 13(option)h 14(69)h 1136 740(Lamp)s 1(ort86)h 12(117)h 1136 790(Lamp)s 1(ort86)h 12(13)h 1136 840(language)s 13(indep)h 1(endence)h 16(18)h 1136 889(languages)s 13(m)h -1(ultipl)h -1(e)h 13(55)h 1136 939(laser)s 14(prin)h -1(ter)h 14(55)h 1136 989(LaT)s -3(eX)h 13(13)h 1136 1039(LaT)s -3(eX)h 13(84)h 1136 1089(la)s -1(y)h -1(out)h 12(program)h 13(22)h 1136 1139(la)s -1(y)h -1(out)h 12(program)h 13(28)h 1136 1189(length)s 13(command)h 12(91)h 1136 1239(length)s 13(input)h 14(line)h 14(42)h 1136 1288(length)s 13(line)h 14(71)h 1136 1338(length)s 13(output)h 15(line)h 13(42)h 1136 1388(letter)s 14(67)h 1136 1438(lev)s -1(els)h 14(of)h 13(diagnostics)h 13(65)h 1136 1488(libraries)s 13(macro)h 13(31)h 1136 1538(license)s 14(F)h -3(unnelW)h -3(eb)h 14(112)h 1136 1588(license)s 14(GNU)h 14(112)h 1136 1638(license)s 14(GNU)h 14(18)h 1136 1688(license)s 14(GNU)h 14(9)h 1136 1737(line)s 13(length)h 14(input)h 14(79)h 1136 1787(line)s 13(length)h 14(71)h 1136 1837(line)s 13(termination)h 12(71)h 1136 1887(list)s 13(do)h 1(cumen)h -1(t)h 13(64)h 1136 1937(list)s 13(options)h 14(68)h 1136 1987(list)s 13(shell)h 14(comm)h -1(ands)h 12(93)h 1136 2037(listing)s 12(\014le)h 14(con)h -1(text)h 15(68)h 1136 2087(listing)s 12(\014le)h 14(option)h 13(69)h 1136 2136(Listing)s 13(\014le)h 14(115)h 1136 2186(listing)s 12(\014le)h 14(64)h 1136 2236(listing)s 12(\014le)h 14(69)h 1136 2286(literal)s 13(construct)h 15(37)h 1136 2336(literal)s 13(directiv)h -1(e)h 14(84)h 1136 2386(literate)s 14(programm)h -1(i)h -1(ng)h 12(to)h 1(ols)h 13(15)h 1136 2436(literate)s 14(programm)h -1(i)h -1(ng,)h 11(facilities)h 13(15)h 1136 2486(literate)s 15(programm)h -1(ing)h -1(,)h 13(most)h 14(signi\014can)h -1(t)h 15(b)h 1(ene-)h 1302 2535(\014t)s 14(17)h 1136 2585(literate)s 14(programm)h -1(i)h -1(ng)h 12(15)h 1136 2635(literate)s 14(programm)h -1(i)h -1(ng)h 12(15)h 1136 2685(literate)s 14(programm)h -1(i)h -1(ng)h 12(50)h 1136 2735(MacDra)s -1(w)h 13(54)h 1136 2785(Macin)s -1(tosh)h 14(13)h 1136 2835(Macin)s -1(tosh)h 14(54)h 1032 2940(122)s 123 @eop 124 @bop0 124 @bop1 cmr10.300 sf 177 42(macro)s 13(attributes)h 15(85)h 177 91(macro)s 13(bindings)h 13(22)h 177 141(macro)s 13(b)h 1(o)h 1(dy)h 14(85)h 177 191(macro)s 13(calls)h 13(inden)h -1(tation)h 14(25)h 177 241(macro)s 13(calls)h 13(86)h 177 291(macro)s 13(c)h -1(hec)h -1(ks)h 15(88)h 177 341(macro)s 13(de\014nitions)h 14(32)h 177 391(Macro)s 14(de\014nition)h 14(116)h 177 441(macro)s 13(de\014nition)h 13(85)h 177 490(macro)s 13(de\014nition)h 13(87)h 177 540(macro)s 13(expansion)h 14(inden)h -1(tation)h 13(78)h 177 590(macro)s 13(expansion)h 14(30)h 177 640(macro)s 13(expansion)h 14(47)h 177 690(macro)s 13(expansion)h 14(87)h 177 740(macro)s 13(expressions)h 15(86)h 177 790(macro)s 13(facilities)h 13(tutorial)h 13(22)h 177 840(macro)s 13(iden)h -1(ti\014ers)h 14(41)h 177 889(macro)s 13(libraries)h 13(31)h 177 939(macro)s 13(names)h 13(41)h 177 989(macro)s 13(names)h 13(86)h 177 1039(macro)s 13(name)h 13(85)h 177 1089(macro)s 13(parameter)h 13(delimiting)h 11(87)h 177 1139(macro)s 13(recursion)h 15(43)h 177 1189(macro)s 13(recursion)h 15(88)h 177 1239(macro)s 13(table)h 14(dump)h 12(68)h 177 1288(macro)s 13(table)h 14(64)h 177 1338(macros)s 13(additiv)h -1(e)h 13(26)h 177 1388(macros)s 13(parameterized)h 14(28)h 177 1438(macros)s 13(simple)h 13(tutorial)h 13(22)h 177 1488(macros)s 13(static)h 14(87)h 177 1538(Macro)s 14(115)h 177 1588(magic)s 12(tric)h -1(k)h 14(15)h 177 1638(main)s -1(tenance)h 13(programm)h -1(er)h 13(50)h 177 1687(mak)s -1(e)h 13(utilit)h -1(y)h 12(49)h 177 1737(man)s -1(uals)h 12(prin)h -1(ting)h 13(107)h 177 1787(mapp)s 1(ed)h 13(\014le)h 14(dump)h 13(68)h 177 1837(Mapp)s 1(er)h 15(116)h 177 1887(mapp)s 1(er)h 13(71)h 177 1937(martinet)s 13(F)h -3(unnelW)h -3(eb)h 13(42)h 177 1987(maxim)s -3(um)h 11(input)h 14(line)h 13(length)h 14(79)h 177 2037(maxim)s -3(um)h 11(output)h 14(\014le)h 14(line)h 13(length)h 14(pragma)h 12(79)h 177 2086(maxim)s -3(um)h 11(output)h 14(\014le)h 14(line)h 13(length)h 14(79)h 177 2136(maxim)s -3(um)h 11(pro)h 1(duct)h 15(\014le)h 14(line)h 13(length)h 14(pragma)h 12(79)h 177 2186(maxim)s -3(um)h 11(pro)h 1(duct)h 15(\014le)h 14(line)h 13(length)h 14(79)h 177 2236(medicine)s 13(wholistic)h 13(53)h 177 2286(memory)s 12(use)h 14(of)h 14(30)h 177 2336(memory)s 12(47)h 177 2386(MIL-STD-2167A)s 13(51)h 177 2436(monster)s 14(\014le)h 14(p)h 1(ostscript)h 15(54)h 177 2486(m)s -1(ultipl)h -1(e)h 13(languages)h 13(55)h 177 2535(name)s 13(empt)h -1(y)h 13(42)h 177 2585(name)s 13(F)h -3(unnelW)h -3(eb)h 13(19)h 177 2635(name)s 13(section)h 14(34)h 177 2685(name)s 13(section)h 14(84)h 177 2735(names)s 13(macro)h 13(41)h 177 2785(names)s 13(macro)h 13(86)h 177 2835(names)s 13(quic)h -1(k)h 14(42)h 1136 42(names)s 13(quic)h -1(k)h 13(76)h 1136 91(names)s 13(section)h 14(86)h 1136 141(names)s 13(86)h 1136 191(name)s 12(70)h 1136 241(new)s 14(page)h 14(pragma)h 12(81)h 1136 291(new)s 14(page)h 14(81)h 1136 341(newpage)s 14(directiv)h -1(e)h 14(37)h 1136 391(no)s 13(inden)h -1(tation)h 14(78)h 1136 441(non-determinism)s 11(68)h 1136 490(non-prin)s -1(table)h 13(c)h -1(haracters)h 16(96)h 1136 540(none)s 14(inden)h -1(tation)h 13(78)h 1136 590(notation)s 13(63)h 1136 640(notes)s 14(e\016ciency)h 15(47)h 1136 690(notice)s 14(cop)h -1(yrigh)h -1(t)h 13(1)h 1136 740(no)s -1(v)h -1(els)h 13(50)h 1136 790(n)s -1(um)h -1(b)h 1(er)h 13(calls)h 13(23)h 1136 840(n)s -1(um)h -1(b)h 1(er)h 13(in)h -1(v)h -1(o)h 1(cations)h 13(42)h 1136 889(n)s -1(um)h -1(b)h 1(er)h 13(in)h -1(v)h -1(o)h 1(cation)h 12(23)h 1136 939(n)s -1(um)h -1(b)h 1(er)h 13(of)h 13(times)h 13(called)h 14(23)h 1136 989(n)s -1(um)h -1(b)h 1(ering)h 12(cross)h 15(reference)h 17(89)h 1136 1039(n)s -1(um)h -1(b)h 1(ering)h 12(section)h 15(89)h 1136 1089(ob)s 2(ject)h 14(co)h 1(de)h 15(26)h 1136 1139(obtaining)s 12(F)h -3(unnelW)h -3(eb)h 13(101)h 1136 1189(op)s 1(en)h 14(systems)h 14(55)h 1136 1239(option)s 13(B)h 14(68)h 1136 1288(option)s 13(C)h 14(68)h 1136 1338(option)s 13(delete)h 15(output)h 14(68)h 1136 1388(option)s 13(dump)h 12(68)h 1136 1438(option)s 13(D)h 13(49)h 1136 1488(option)s 13(D)h 13(68)h 1136 1538(option)s 13(execute)h 16(script)h 14(69)h 1136 1588(option)s 13(F)h 14(68)h 1136 1638(option)s 13(help)h 14(68)h 1136 1687(option)s 13(H)h 14(68)h 1136 1737(option)s 13(include)h 14(\014le)h 14(69)h 1136 1787(option)s 13(input)h 13(\014le)h 14(68)h 1136 1837(option)s 13(in)h -1(teractiv)h -1(e)h 14(69)h 1136 1887(option)s 13(I)h 14(69)h 1136 1937(option)s 13(journal)h 13(\014le)h 14(69)h 1136 1987(option)s 13(J)h 14(69)h 1136 2037(option)s 13(k)h -1(eyb)h 1(oard)h 14(69)h 1136 2086(option)s 13(K)h 14(69)h 1136 2136(option)s 13(listing)h 13(\014le)h 13(69)h 1136 2186(option)s 13(L)h 14(69)h 1136 2236(option)s 13(quiet)h 14(69)h 1136 2286(option)s 13(Q)h 14(69)h 1136 2336(option)s 13(screen)h 16(69)h 1136 2386(option)s 13(S)h 14(69)h 1136 2436(option)s 13(t)h -1(yp)h 1(eset)h 15(69)h 1136 2486(option)s 13(T)h 14(69)h 1136 2535(option)s 13(width)h 13(69)h 1136 2585(option)s 13(W)h 13(69)h 1136 2635(option)s 13(X)h 14(69)h 1136 2685(options)s 13(comma)h -1(nd)h 12(92)h 1136 2735(options)s 13(default)h 14(49)h 1136 2785(options)s 13(default)h 14(92)h 1136 2835(options)s 13(list)h 14(68)h 1032 2940(123)s 124 @eop 125 @bop0 125 @bop1 cmr10.300 sf 177 42(options)s 14(setting)h 14(defaults)h 14(49)h 177 91(options)s 14(syn)h -1(tax)h 14(67)h 177 141(options)s 14(tracedump)h 13(68)h 177 191(options)s 14(67)h 177 241(options)s 14(68)h 177 291(Option)s 14(116)h 177 341(order)s 15(action)h 13(execution)h 15(71)h 177 391(order)s 15(program)h 12(22)h 177 441(ordering)s 14(program)h 12(15)h 177 490(Ordinary)s 14(options)h 14(70)h 177 540(organization)s 13(b)h 1(oring)h 13(50)h 177 590(organization)s 13(spaghetti)h 14(50)h 177 640(output)s 14(\014le)h 14(line)h 14(length)h 13(maxim)h -2(um)h 10(79)h 177 690(output)s 14(\014les)h 14(delete)h 15(49)h 177 740(output)s 14(\014les)h 14(18)h 177 790(output)s 14(\014les)h 14(64)h 177 840(Output)s 15(\014le)h 14(116)h 177 889(output)s 14(line)h 14(length)h 13(42)h 177 939(output)s 14(WEB)h 14(25)h 177 989(o)s -1(v)h -1(er)h 14(do)h 1(cumen)h -1(tation)h 13(51)h 177 1039(o)s -1(v)h -1(erhead)h 14(pro)h 1(cedure)h 16(call)h 13(57)h 177 1089(o)s -1(v)h -1(erview)h 14(F)h -3(unnelW)h -3(eb)h 13(18)h 177 1139(o)s -1(v)h -1(erview)h 14(F)h -3(unnelW)h -3(eb)h 13(64)h 177 1189(o)s -1(v)h -1(erview)h 14(t)h -1(yp)h 1(esetting)h 15(32)h 177 1239(OzT)s -3(eX)h 15(13)h 177 1288(pac)s -1(k)h -2(age)h 14(55)h 177 1338(parameter)s 14(list,)h 13(absen)h -1(t)h 14(29)h 177 1388(parameter)s 14(lists)h 14(formal)h 11(86)h 177 1438(parameterized)s 14(macros)h 13(28)h 177 1488(parameters)s 14(actual)h 14(29)h 177 1538(parameters)s 14(formal)h 12(28)h 177 1588(parameters)s 14(formal)h 12(28)h 177 1638(parameters)s 14(formal)h 12(87)h 177 1687(P)s -1(arser)h 15(116)h 177 1737(parser)s 15(64)h 177 1787(parser)s 15(82)h 177 1837(parsing)s 14(comm)h -1(and)h 12(line)h 13(66)h 177 1887(P)s -1(ascal)h 14(15)h 177 1937(P)s -1(ascal)h 14(25)h 177 1987(P)s -1(ascal)h 14(26)h 177 2037(P)s -1(ascal)h 14(57)h 177 2086(P)s -1(ascal)h 14(59)h 177 2136(P)s -1(at)h 14(Scannel)h 14(29)h 177 2186(pa)s -1(vlo)h -1(v)h 13(do)h 1(cumen)h -1(tation)h 12(51)h 177 2236(phases)s 15(execution)h 15(64)h 177 2286(phases)s 15(64)h 177 2336(PhD)s 14(thesis)h 15(54)h 177 2386(pitfalls)s 13(F)h -3(unnelW)h -3(eb)h 13(50)h 177 2436(p)s 1(o)h 1(em)h 13(animal)h 11(30)h 177 2486(p)s 1(o)h 1(em)h 13(camera)h 13(30)h 177 2535(p)s 1(ortabilit)h -1(y)h 13(18)h 177 2585(p)s 1(ostscript)h 15(header)h 15(\014le)h 14(54)h 177 2635(p)s 1(ostscript)h 15(monster)h 14(\014le)h 14(54)h 177 2685(P)s -1(ostScript)h 15(54)h 177 2735(p)s 1(ostscript)h 15(57)h 177 2785(pragma)s 12(input)h 14(line)h 13(length)h 14(79)h 177 2835(pragma)s 12(maxim)h -3(um)h 11(output)h 14(\014le)h 14(line)h 13(length)h 14(79)h 1136 42(pragma)s 12(maxi)h -1(m)h -2(um)h 10(pro)h 1(duct)h 15(\014le)h 14(line)h 13(length)h 14(79)h 1136 91(pragma)s 12(new)h 14(page)h 14(81)h 1136 141(pragma)s 12(table)h 13(of)h 14(con)h -1(ten)h -1(ts)h 15(81)h 1136 191(pragma)s 12(title)h 13(82)h 1136 241(pragma)s 12(t)h -1(yp)h 1(esetter)h 16(80)h 1136 291(pragma)s 12(vskip)h 13(81)h 1136 341(pragmas)s 12(in)h -1(visible)h 13(78)h 1136 391(pragmas)s 12(visible)h 13(78)h 1136 441(pragmas)s 12(78)h 1136 490(Pragma)s 12(116)h 1136 540(pragma)s 12(25)h 1136 590(pragma)s 12(78)h 1136 640(preface)s 15(9)h 1136 690(prepro)s 1(cessor)h 16(C)h 14(20)h 1136 740(prepro)s 1(cessor)h 16(C)h 14(57)h 1136 790(presen)s -1(tation)h 14(notes)h 15(13)h 1136 840(Prin)s -1(ted)h 14(do)h 1(cumen)h -1(tation)h 13(116)h 1136 889(prin)s -1(ter)h 14(laser)h 14(55)h 1136 939(prin)s -1(ting)h 13(man)h -1(ual)h -1(s)h 13(107)h 1136 989(prin)s -1(ting)h 13(system)h 13(55)h 1136 1039(problems)s 13(binding)h 12(57)h 1136 1089(problems)s 13(installation)h 12(107)h 1136 1139(pro)s 1(cedure)h 15(call)h 14(o)h -1(v)h -1(erhead)h 14(57)h 1136 1189(pro)s 1(cessing)h 15(comm)h -1(and)h 12(line)h 13(66)h 1136 1239(pro)s 1(cessing)h 15(comm)h -1(and)h 12(line)h 13(92)h 1136 1288(pro)s 1(duct)h 14(\014le)h 14(line)h 14(length)h 14(maxi)h -1(m)h -2(um)h 10(79)h 1136 1338(pro)s 1(duct)h 14(\014le)h 14(width)h 14(69)h 1136 1388(pro)s 1(duct)h 14(\014les)h 15(18)h 1136 1438(pro)s 1(duct)h 14(\014les)h 15(64)h 1136 1488(Pro)s 1(duct)h 15(\014le)h 13(116)h 1136 1538(pro)s 1(duction)h 14(to)h 1(ol)h 13(19)h 1136 1588(program)s 12(la)h -1(y)h -1(out)h 13(22)h 1136 1638(program)s 12(la)h -1(y)h -1(out)h 13(28)h 1136 1687(program)s 12(ordering)h 14(15)h 1136 1737(program)s 12(order)h 15(22)h 1136 1787(programm)s -1(er)h 12(main)h -1(tenance)h 13(50)h 1136 1837(programm)s -1(er's)h 12(c)h -1(heer)h 15(35)h 1136 1887(programm)s -1(i)h -1(ng)h 12(literate)h 14(50)h 1136 1937(Q)s 14(option)h 13(69)h 1136 1987(quic)s -1(k)h 13(names)h 13(42)h 1136 2037(quic)s -1(k)h 13(names)h 13(76)h 1136 2086(quic)s -1(k)h 13(name)h 13(42)h 1136 2136(quic)s -1(k)h 13(name)h 13(76)h 1136 2186(quiet)s 14(option)h 13(69)h 1136 2236(quit)s 13(comma)h -1(nd)h 12(98)h 1136 2286(random)s 12(access)h 16(50)h 1136 2336(rec.h)s -1(umor.funn)h -1(y)h 12(29)h 1136 2386(recursion)s 15(macro)h 12(43)h 1136 2436(recursion)s 15(macro)h 12(88)h 1136 2486(recursiv)s -1(e)h 15(include)h 14(\014les)h 14(31)h 1136 2535(references)s 16(117)h 1136 2585(referencing)s 15(cross)h 15(89)h 1136 2635(registration)s 13(F)h -3(unnelW)h -3(eb)h 14(110)h 1136 2685(regression)s 15(testing)h 14(103)h 1136 2735(regression)s 15(testing)h 14(47)h 1136 2785(reliabilit)s -1(y)h 12(18)h 1136 2835(REM)s 13(statemen)h -1(t)h 14(57)h 1032 2940(124)s 125 @eop 126 @bop0 126 @bop1 cmr10.300 sf 177 42(rep)s 1(ort)h 15(ann)h -1(ual)h 13(58)h 177 91(results)s 15(directory)h 15(103)h 177 141(return)s 15(status)h 15(65)h 177 191(Roger)s 14(Brissenden)h 16(11)h 177 241(Roso)s -1(vsky90)h 13(117)h 177 291(Roso)s -1(vsky90)h 13(17)h 177 341(Ross)s 14(William)h -2(s)h 12(1)h 177 391(rule)s 14(simple)h 13(20)h 177 441(rules)s 15(F)h -3(unnelW)h -3(eb)h 13(42)h 177 490(running)s 14(F)h -3(unnelW)h -3(eb)h 13(66)h 177 540(S)s 14(option)h 13(69)h 177 590(Scannel)s 14(P)h -1(at)h 14(29)h 177 640(Scanner)s 15(116)h 177 690(scanner)s 15(64)h 177 740(scanner)s 15(71)h 177 790(screen)s 16(option)h 13(69)h 177 840(script)s 15(initiali)h -1(zation)h 12(49)h 177 889(script)s 15(initiali)h -1(zation)h 12(71)h 177 939(script)s 15(startup)h 14(49)h 177 989(scripts)s 15(directory)h 15(103)h 177 1039(Script)s 15(116)h 177 1089(section)s 15(constructs)h 16(83)h 177 1139(section)s 15(headings)h 14(34)h 177 1189(section)s 15(name)h 12(inheritance)h 15(35)h 177 1239(section)s 15(names)h 13(86)h 177 1288(section)s 15(name)h 12(34)h 177 1338(section)s 15(name)h 12(84)h 177 1388(section)s 15(n)h -1(um)h -1(b)h 1(ering)h 12(89)h 177 1438(section)s 15(strength)h 15(46)h 177 1488(seman)s -1(tic)h 13(arc)h -1(hitecture)h 16(64)h 177 1538(sequences)s 17(sp)h 1(ecial)h 14(72)h 177 1588(set)s 15(abstraction)h 14(59)h 177 1638(set)s 15(comm)h -1(and)h 12(48)h 177 1687(set)s 15(comm)h -1(and)h 12(98)h 177 1737(setting)s 14(defaults)h 14(options)h 14(49)h 177 1787(setting)s 14(sp)h 1(ecial)h 15(c)h -1(haracter)h 15(74)h 177 1837(sev)s -1(ere)h 16(sev)h -1(erit)h -1(y)h 14(65)h 177 1887(sev)s -1(ere)h 16(status)h 14(90)h 177 1937(sev)s -1(erit)h -1(y)h 15(assertion)h 14(65)h 177 1987(sev)s -1(erit)h -1(y)h 15(error)h 15(65)h 177 2037(sev)s -1(erit)h -1(y)h 15(fatal)h 12(65)h 177 2086(sev)s -1(erit)h -1(y)h 15(sev)h -1(ere)h 15(65)h 177 2136(sev)s -1(erit)h -1(y)h 15(w)h -1(arning)h 13(65)h 177 2186(sev)s -1(erit)h -1(y)h 15(65)h 177 2236(sharing)s 14(informa)h -1(tion)h 12(56)h 177 2286(sharing)s 14(text)h 14(58)h 177 2336(shark)s 14(white)h 14(p)h 1(oin)h -1(ter)h 14(19)h 177 2386(shell)s 14(comm)h -1(ands)h 12(list)h 14(93)h 177 2436(shell)s 14(comm)h -1(ands)h 12(93)h 177 2486(shell)s 14(errors)h 15(90)h 177 2535(shell)s 14(F)h -3(unnelW)h -3(eb)h 13(90)h 177 2585(shell)s 14(uses)h 15(90)h 177 2635(Shell)s 14(116)h 177 2685(sho)s 1(oting)h 14(31)h 177 2735(sho)s -1(w)h 14(comm)h -1(and)h 12(48)h 177 2785(sho)s -1(w)h 14(comm)h -1(and)h 12(98)h 177 2835(sign)s 14(67)h 1136 42(Simon)s 11(Hac)h -1(k)h -1(ett)h 15(11)h 1136 91(simple)s 12(macros)h 13(tutorial)h 13(22)h 1136 141(simple)s 12(rule)h 14(20)h 1136 191(simple)s 12(sequence)h 16(72)h 1136 241(simpli)s -1(cit)h -1(y)h 12(18)h 1136 291(size)s 14(fon)h -1(t)h 14(46)h 1136 341(skip)s 13(v)h -1(ertical)h 14(81)h 1136 391(skipto)s 13(comma)h -1(nd)h 12(98)h 1136 441(small)s 11(functions)h 14(56)h 1136 490(Smith91)s 11(117)h 1136 540(Smith91)s 11(17)h 1136 590(snak)s -1(e)h 14(tiger)h 14(19)h 1136 640(song)s 13(29)h 1136 690(sources)s 15(directory)h 15(103)h 1136 740(spacing)s 13(43)h 1136 790(spaghetti)s 14(organization)h 12(50)h 1136 840(sp)s 1(ecial)h 14(c)h -1(haracter)h 15(c)h -1(hanging)h 13(31)h 1136 889(sp)s 1(ecial)h 14(c)h -1(haracter)h 15(default)h 14(72)h 1136 939(sp)s 1(ecial)h 14(c)h -1(haracter)h 15(inserting)h 14(in)h -1(to)h 13(text)h 15(74)h 1136 989(sp)s 1(ecial)h 14(c)h -1(haracter)h 15(setting)h 14(74)h 1136 1039(Sp)s 1(ecial)h 13(c)h -1(haracter)h 16(116)h 1136 1089(sp)s 1(ecial)h 14(c)h -1(haracter)h 15(20)h 1136 1139(sp)s 1(ecial)h 14(c)h -1(haracter)h 15(72)h 1136 1189(sp)s 1(ecial)h 14(sequences)h 16(72)h 1136 1239(Sp)s 1(ecial)h 13(sequence)h 17(116)h 1136 1288(sp)s 1(ecial)h 14(sequence)h 16(20)h 1136 1338(sp)s 1(ecial)h 14(sequence)h 16(72)h 1136 1388(sp)s 1(ecial)h 14(tok)h -1(ens)h 14(82)h 1136 1438(sp)s 1(eed)h 15(47)h 1136 1488(spider)s 14(F)h -3(unnel-w)h -1(eb)h 14(19)h 1136 1538(startup)s 14(F)h -3(unnelW)h -3(eb)h 14(70)h 1136 1588(startup)s 14(script)h 15(49)h 1136 1638(statemen)s -1(t)h 13(REM)h 14(57)h 1136 1687(static)s 14(analysis)h 13(88)h 1136 1737(static)s 14(macros)h 13(87)h 1136 1787(status)s 14(assertion)h 15(90)h 1136 1837(status)s 14(comma)h -1(nd)h 12(99)h 1136 1887(status)s 14(error)h 15(90)h 1136 1937(status)s 14(fatal)h 13(90)h 1136 1987(status)s 14(return)h 15(65)h 1136 2037(status)s 14(sev)h -1(ere)h 16(90)h 1136 2086(status)s 14(success)h 17(90)h 1136 2136(status)s 14(w)h -1(arning)h 13(90)h 1136 2186(stream)s 13(of)h 13(consciousness)h 16(50)h 1136 2236(strength)s 15(headings)h 14(46)h 1136 2286(strength)s 15(section)h 14(46)h 1136 2336(strength)s 15(t)h -1(yp)h 1(esetting)h 15(46)h 1136 2386(string)s 14(substitution)h 14(91)h 1136 2436(string)s 14(substitution)h 14(94)h 1136 2486(string)s 14(67)h 1136 2535(structure)s 16(hierarc)h -1(hical)h 13(34)h 1136 2585(structure)s 16(tree)h 15(83)h 1136 2635(Strunk79)s 13(117)h 1136 2685(Strunk79)s 13(51)h 1136 2735(substitution)s 14(string)h 14(91)h 1136 2785(substitution)s 14(string)h 14(94)h 1136 2835(success)s 16(status)h 15(90)h 1032 2940(125)s 126 @eop 127 @bop0 127 @bop1 cmr10.300 sf 177 42(supp)s 1(ort)h 15(F)h -3(unnelW)h -3(eb)h 13(110)h 177 91(suppress)s 16(console)h 14(output)h 14(69)h 177 141(suppressing)s 15(EOL)h 15(mark)h -1(ers)h 13(77)h 177 191(suppression)s 15(EOL)h 15(23)h 177 241(suppression)s 15(\014le)h 14(49)h 177 291(Sydney)s 14(19)h 177 341(syn)s -1(tax)h 14(comm)h -1(and)h 12(line)h 14(options)h 13(67)h 177 391(syn)s -1(tax)h 14(comm)h -1(and)h 12(line)h 14(67)h 177 441(syn)s -1(tax)h 14(EBNF)h 15(63)h 177 490(syn)s -1(tax)h 14(high)h 13(lev)h -1(el)h 14(82)h 177 540(syn)s -1(tax)h 14(options)h 14(67)h 177 590(system)s 14(prin)h -1(ting)h 13(55)h 177 640(T)s 14(option)h 13(69)h 177 690(table)s 14(macro)h 13(64)h 177 740(table)s 14(of)h 13(con)h -1(ten)h -1(ts)h 15(directiv)h -1(e)h 15(37)h 177 790(table)s 14(of)h 13(con)h -1(ten)h -1(ts)h 15(pragma)h 12(81)h 177 840(table)s 14(of)h 13(con)h -1(ten)h -1(ts)h 15(81)h 177 889(tabs)s 14(42)h 177 939(T)s -3(angle)h 13(116)h 177 989(tangle)s 14(65)h 177 1039(tangle)s 14(88)h 177 1089(T)s -3(angling)h 12(21)h 177 1139(target)s 15(t)h -1(yp)h 1(esetter)h 16(89)h 177 1189(termination)s 12(\014le)h 14(71)h 177 1239(termination)s 12(line)h 14(71)h 177 1288(terminology)s 12(63)h 177 1338(testing)s 14(F)h -3(unnelW)h -3(eb)h 14(105)h 177 1388(testing)s 14(regression)h 16(103)h 177 1438(testing)s 14(regression)h 16(47)h 177 1488(tests)s 15(directory)h 15(104)h 177 1538(text)s 15(editors)h 14(42)h 177 1588(text)s 15(\014les)h 14(cryptic)h 15(55)h 177 1638(text)s 15(free)h 14(83)h 177 1687(text)s 15(sharing)h 13(58)h 177 1737(text)s 15(tok)h -1(ens)h 14(82)h 177 1787(T)s -3(eX)h 14(13)h 177 1837(T)s -3(eX)h 14(18)h 177 1887(T)s -3(eX)h 14(22)h 177 1937(T)s -3(eX)h 14(54)h 177 1987(thesis)s 15(PhD)h 14(54)h 177 2037(tiger)s 14(snak)h -1(e)h 14(19)h 177 2086(time)s 13(dev)h -1(elopmen)h -1(t)h 13(17)h 177 2136(times)s 13(dump)h 13(68)h 177 2186(title)s 14(directiv)h -1(e)h 14(37)h 177 2236(title)s 14(pragma)h 12(82)h 177 2286(title)s 14(82)h 177 2336(tok)s -1(en)h 14(list)h 14(dump)h 12(68)h 177 2386(tolerate)s 14(command)h 12(100)h 177 2436(to)s 1(ols)h 14(literate)h 14(programm)h -1(i)h -1(ng)h 12(15)h 177 2486(trace)s 15(comm)h -1(and)h 12(100)h 177 2535(trace)s 15(on)h 14(comm)h -1(and)h 12(48)h 177 2585(tracedump)s 14(options)h 13(68)h 177 2635(trailing)s 13(blanks)h 13(42)h 177 2685(tree)s 15(directory)h 15(102)h 177 2735(tree)s 15(structure)h 16(83)h 177 2785(T)s -3(rev)h -1(orro)h -1(w)h 14(Andrew)h 15(13)h 177 2835(tutorial)s 13(+=)h 15(26)h 1136 42(tutorial)s 13(==)h 14(26)h 1136 91(tutorial)s 13(@M)h 14(24)h 1136 141(tutorial)s 13(@Z)h 14(24)h 1136 191(tutorial)s 13(in)h -1(tro)h 1(duction)h 13(19)h 1136 241(tutorial)s 13(macro)h 12(facilities)h 13(22)h 1136 291(tutorial)s 13(macros)h 13(simple)h 12(22)h 1136 341(tutorial)s 13(simple)h 12(macros)h 13(22)h 1136 391(tutorial)s 13(t)h -1(yp)h 1(esetting)h 15(32)h 1136 441(tutorial)s 13(15)h 1136 490(tutorial)s 13(19)h 1136 540(t)s -1(w)h -1(elv)h -1(e)h 13(bugs)h 15(of)h 13(c)h -1(hristmas)h 13(29)h 1136 590(t)s -1(w)h -1(o)h 13(main)h 12(asp)h 1(ects)h 15(F)h -3(unnelW)h -3(eb)h 14(21)h 1136 640(t)s -1(yp)h 1(esafe)h 14(generics)h 15(61)h 1136 690(t)s -1(yp)h 1(eset)h 15(\014le)h 14(69)h 1136 740(t)s -1(yp)h 1(eset)h 15(option)h 13(69)h 1136 790(t)s -1(yp)h 1(esetter)h 16(directiv)h -1(e)h 14(tok)h -1(ens)h 15(82)h 1136 840(t)s -1(yp)h 1(esetter)h 16(directiv)h -1(es)h 15(66)h 1136 889(t)s -1(yp)h 1(esetter)h 16(directiv)h -1(es)h 15(81)h 1136 939(t)s -1(yp)h 1(esetter)h 16(indep)h 1(endence)h 16(18)h 1136 989(t)s -1(yp)h 1(esetter)h 16(indep)h 1(endence)h 16(34)h 1136 1039(t)s -1(yp)h 1(esetter)h 16(indep)h 1(endence)h 16(65)h 1136 1089(t)s -1(yp)h 1(esetter)h 16(indep)h 1(endence)h 16(80)h 1136 1139(t)s -1(yp)h 1(esetter)h 16(indep)h 1(enden)h -1(t)h 15(34)h 1136 1189(t)s -1(yp)h 1(esetter)h 16(pragma)h 12(80)h 1136 1239(t)s -1(yp)h 1(esetter)h 16(target)h 14(89)h 1136 1288(T)s -1(yp)h 1(esetting)h 14(directiv)h -1(e)h 15(116)h 1136 1338(t)s -1(yp)h 1(esetting)h 14(o)h -1(v)h -1(erview)h 14(32)h 1136 1388(t)s -1(yp)h 1(esetting)h 14(strength)h 16(46)h 1136 1438(t)s -1(yp)h 1(esetting)h 14(tutorial)h 14(32)h 1136 1488(t)s -1(yp)h 1(esetting)h 14(13)h 1136 1538(t)s -1(yp)h 1(esetting)h 14(89)h 1136 1588(univ)s -1(ersities)h 14(17)h 1136 1638(Univ)s -1(ersit)h -1(y)h 13(Adelaide)h 14(59)h 1136 1687(Unix)s 13(newline)h 14(75)h 1136 1737(Unix)s 13(67)h 1136 1787(unprin)s -1(table)h 13(c)h -1(haracters)h 16(71)h 1136 1837(USDOD83)s 13(117)h 1136 1887(use)s 14(of)h 14(mem)h -1(ory)h 12(30)h 1136 1937(useful)s 14(comm)h -1(ands)h 12(47)h 1136 1987(userman)s 13(directory)h 15(105)h 1136 2037(uses)s 15(shell)h 14(90)h 1136 2086(v)s -1(ersions)h 14(F)h -3(unnelW)h -3(eb)h 13(114)h 1136 2136(v)s -1(ertical)h 13(skip)h 14(81)h 1136 2186(visible)s 13(pragmas)h 12(78)h 1136 2236(vskip)s 13(directiv)h -1(e)h 15(37)h 1136 2286(vskip)s 13(pragma)h 12(81)h 1136 2336(W)s 13(option)h 13(69)h 1136 2386(w)s -1(arning)h 13(sev)h -1(erit)h -1(y)h 14(65)h 1136 2436(w)s -1(arning)h 13(status)h 14(90)h 1136 2486(w)s -1(arran)h -1(t)h -1(y)h 13(112)h 1136 2535(W)s -3(ea)h -1(v)h -1(e)h 13(116)h 1136 2585(w)s -1(ea)h -1(v)h -1(e)h 14(65)h 1136 2635(w)s -1(ea)h -1(v)h -1(e)h 14(89)h 1136 2685(W)s -3(ea)h -1(ving)h 12(21)h 1136 2735(WEB)s 14(output)h 14(25)h 1136 2785(WEB)s 14(21)h 1136 2835(WEB)s 14(25)h 1032 2940(126)s 127 @eop 128 @bop0 128 @bop1 cmr10.300 sf 177 42(W)s -3(eb)h 14(9)h 177 91(white)s 14(p)h 1(oin)h -1(ter)h 14(shark)h 14(19)h 177 141(wholistic)s 13(debugging)h 14(53)h 177 191(wholistic)s 13(debugging)h 14(53)h 177 241(wholistic)s 13(medicine)h 13(53)h 177 291(width)s 14(option)h 13(69)h 177 340(width)s 14(pro)h 1(duct)h 15(\014le)h 13(69)h 177 390(William)s -2(s)h 13(Ross)h 13(1)h 177 440(w)s -1(orkstations)h 14(48)h 177 490(w)s -1(orkstation)h 14(90)h 177 540(write)s 14(command)h 11(100)h 177 589(writeu)s 14(command)h 12(100)h 177 639(X)s 14(option)h 13(69)h 1032 2940(127)s 128 @eop @end