%!PS-Adobe-1.0 %%Creator: devps (Pipeline Associates, Inc.) %%CreationDate: Fri Sep 13 13:03:06 1996 %%Pages: (atend) %%DocumentFonts: (atend) /devps 180 dict def devps begin /res 10.000000 def /y_offset 843 def /X{exch}bind def /mm {transform round X round X itransform} bind def /r{rmoveto}bind def /m{moveto}bind def /l{lineto}bind def /rl{rlineto}bind def /st{stroke}bind def /gs{gsave}bind def /gr{grestore}bind def /cp{currentpoint}bind def /np{newpath}bind def /ct{curveto}bind def systemdict /setpacking known { /savepacking currentpacking def true setpacking } if /m0{0 0 moveto}bind def /xc{//res div}bind def /yc{//res neg div //y_offset add}bind def /lc{yc X xc X l st}bind def /mc{yc X xc X m}bind def /el{gs /a X def a div 1 X scale cp np a xc 2 div 0 360 arc st gr}bind def /ar{cp 7 2 roll np xc 5 1 roll atan 3 1 roll atan X arc st}bind def /sp{yc X xc X 6 2 roll yc X xc X 6 2 roll yc X xc X 6 2 roll ct}bind def /V{//res neg div //y_offset add currentpoint pop X m}bind def /H{//res div 0 transform X round X itransform pop currentpoint X pop moveto}bind def /h{//res div 0 r}bind def /v{//res neg div 0 X r}bind def /S{X H show}bind def /A{H //res div 1 index stringwidth pop sub 1 index length div 0 3 2 roll ashow}bind def /psize 10 def /height 0 def /cheight { height 0 ne { height } { psize } ifelse } bind def /slant 0 def /FF{findfont X dup 30 div 0 mm pop setlinewidth /psize X def [psize 0 cheight slant sin slant cos div mul cheight 0 0] makefont setfont}bind def /shade{gs /dy X def /dx X def np m 0 /dy rl /dx 0 rl 0 /dy neg rl /dx neg 0 rl closepath .9 setgray fill gr}bind def 1 setlinecap /resolution res 72 mul def /startFig { /SavedState save def userdict maxlength dict begin currentpoint transform DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix itransform moveto /ury exch def /urx exch def /lly exch def /llx exch def /y exch 72 mul resolution div def /x exch 72 mul resolution div def currentpoint /cy exch def /cx exch def /sx x urx llx sub div def /sy y ury lly sub div def sx sy scale cx sx div llx sub cy sy div ury sub translate /DefFigCTM matrix currentmatrix def /initmatrix { DefFigCTM setmatrix } def /defaultmatrix { DefFigCTM exch copy } def /initgraphics { DocumentInitState setmiterlimit setgray setdash setlinejoin setlinecap setlinewidth setmatrix DefFigCTM setmatrix } def /showpage { initgraphics } def }bind def /clipFig { currentpoint 6 2 roll newpath 4 copy 4 2 roll moveto 6 -1 roll exch lineto exch lineto exch lineto closepath clip newpath moveto }bind def /doclip { llx lly urx ury clipFig } def /endFig { end SavedState restore }bind def /globalstart { fontnum psize slant height resolution currentpoint pagesave restore gsave }bind def /globalend { grestore moveto /resolution exch def /height exch def /slant exch def /psize exch def /fontnum exch def F /pagesave save def }bind def /fontnum 1 def systemdict /setpacking known { savepacking setpacking} if end /BP{ save mark devps begin m0 /DocumentInitState [ matrix currentmatrix currentlinewidth currentlinecap currentlinejoin currentdash currentgray currentmiterlimit ] cvx def }bind def /EP{ end cleartomark restore showpage}def /Encoding-1 256 array def 0 1 255 {Encoding-1 exch /.notdef put} for Encoding-1 8#301 StandardEncoding 8#101 26 getinterval putinterval %A-B Encoding-1 8#341 StandardEncoding 8#141 26 getinterval putinterval %a-b Encoding-1 8#241 StandardEncoding 8#301 16 getinterval putinterval %accents Encoding-1 8#373 StandardEncoding 8#365 1 getinterval putinterval %dotlessi Encoding-1 dup 8#41 /copyright put dup 8#42 /registered put dup 8#43 /trademark put dup 8#44 /logicalnot put dup 8#45 /Eth put dup 8#46 /eth put dup 8#47 /Thorn put dup 8#50 /thorn put dup 8#51 /brokenbar put dup 8#52 /degree put dup 8#53 /divide put dup 8#54 /multiply put dup 8#55 /minus put dup 8#56 /onehalf put dup 8#57 /onequarter put dup 8#60 /threequarters put dup 8#101 /Aacute put dup 8#102 /Acircumflex put dup 8#103 /Adieresis put dup 8#104 /Agrave put dup 8#105 /Aring put dup 8#106 /Atilde put dup 8#107 /Ccedilla put dup 8#110 /Eacute put dup 8#111 /Ecircumflex put dup 8#112 /Edieresis put dup 8#113 /Egrave put dup 8#114 /Iacute put dup 8#115 /Icircumflex put dup 8#116 /Idieresis put dup 8#117 /Igrave put dup 8#120 /Ntilde put dup 8#121 /Oacute put dup 8#122 /Ocircumflex put dup 8#123 /Odieresis put dup 8#124 /Ograve put dup 8#125 /Otilde put dup 8#126 /Scaron put dup 8#127 /Uacute put dup 8#130 /Ucircumflex put dup 8#131 /Udieresis put dup 8#132 /Ugrave put dup 8#133 /Ydieresis put dup 8#134 /Zcaron put dup 8#135 /aacute put dup 8#136 /acircumflex put dup 8#137 /adieresis put dup 8#140 /agrave put dup 8#141 /aring put dup 8#142 /atilde put dup 8#143 /ccedilla put dup 8#144 /eacute put dup 8#145 /ecircumflex put dup 8#146 /edieresis put dup 8#147 /egrave put dup 8#150 /iacute put dup 8#151 /icircumflex put dup 8#152 /idieresis put dup 8#153 /igrave put dup 8#154 /ntilde put dup 8#155 /oacute put dup 8#156 /ocircumflex put dup 8#157 /odieresis put dup 8#160 /ograve put dup 8#161 /otilde put dup 8#162 /scaron put dup 8#163 /uacute put dup 8#164 /ucircumflex put dup 8#165 /udieresis put dup 8#166 /ugrave put dup 8#167 /ydieresis put dup 8#170 /zcaron put pop /Enc-dict 30 dict def Enc-dict /tmpstr1 50 string put Enc-dict /tmpstr2 50 string put Enc-dict /tmpstr3 50 string dup (Encoding-) exch cvs pop put /AEnc-def { % arguments: the original font's name, encoding nr Enc-dict begin tmpstr2 cvs /Enc-no exch def % Remember the number in a string dup /OrigName exch def % remember the name findfont dup maxlength dict /newdict exch def % get dictionary for new font { exch dup /FID ne { exch newdict 3 1 roll put } { pop pop } % Ignore FID ifelse } forall newdict begin /Encoding tmpstr3 9 Enc-no putinterval tmpstr3 0 9 Enc-no length add getinterval cvn load def % Replace encoding currentdict /UniqueID known { /UniqueID UniqueID Enc-no cvi 49999 mul add def } if % Derive New UniqueID end % newdict /FNlength OrigName tmpstr1 cvs length def % convert name, remember length FNlength 1 add Enc-no length add string dup 0 OrigName tmpstr1 cvs putinterval dup FNlength (-) putinterval dup FNlength 1 add Enc-no putinterval dup 0 tmpstr1 0 FNlength getinterval putinterval % Add old name cvn dup newdict /FontName 3 2 roll put newdict definefont end % Enc-dict } def /Times-Roman 1 AEnc-def pop /R-1{/Times-Roman-1 FF}def /Times-Bold 1 AEnc-def pop /B-1{/Times-Bold-1 FF}def /R{/Times-Roman FF}def /B{/Times-Bold FF}def /I{/Times-Italic FF}def /Y{/Symbol FF}def %%EndProlog %%Page: 1 1 BP /slant 0 def /height 0 def 480 V 10 R 720(ACD)S 941(\()S 983(1)S 1041(\))S 2696(Eighth)S (Edition)296 2989 A 4906(ACD)S 5127(\()S 5169(1)S 5227(\))S 960 V 9 R 720(N)S 722(NA)S 790(AM)S 858(ME)S 940(E)S 1080 V 10 R 1080(acd)S 10 R-1 1245(-)S 10 R 1327(a)S 1397(compiler)S 1780(driver)S 1248 V 9 R 720(S)S 722(SY)S 774(YN)S 842(NO)S 910(OP)S 978(PS)S 1030(SI)S 1082(IS)S 1115(S)S 1368 V 10 B 1080(acd)S 10 B-1 1269(-)S 10 B 1326(v)S 10 R 1376([)S 10 I 1410(n)S 10 R 1460(])S 10 B-1 1532(-)S 10 B 1589(vn)S 10 R 1695([)S 10 I 1729(n)S 10 R 1779(])S 10 B-1 1851(-)S 10 B 1908(name)S 10 I 2181(name)S 10 B-1 2437(-)S 10 B 2494(descr)S 10 I 2762(descr)S 10 B-1 3018(-)S 10 B 3075(T)S 10 I 3180(dir)S 10 R 3335([)S 10 I 3369(arg)S 10 R (...])109 3554 A 1536 V 9 R 720(D)S 722(DE)S 790(ES)S 848(SC)S 900(CR)S 962(RI)S 1024(IP)S 1057(PT)S 1109(TI)S 1167(IO)S 1200(ON)S 1268(N)S 1656 V 10 B 1080(Acd)S 10 R 1288(is)S 1389(a)S 1468(compiler)S 1860(driver,)S 2160(a)S 2239(program)S 2614(that)S 2799(calls)S 3018(the)S 3175(several)S 3495(passes)S 3786(that)S 3971(are)S 4129(needed)S 4448(to)S 4560(compile)S 4918(a)S 4998(source)S 1776 V 1080(\256le.)S 1285(It)S 1372(keeps)S 1626(track)S 1853(of)S 1962(all)S 2088(the)S 2236(temporary)S 2675(\256les)S 2868(used)S 3077(between)S 3438(the)S 3586(passes.)S 3918(It)S 4005(also)S 4192(de\256nes)S 4502(the)S (interface)354 4650 A 5029(of)S 5138(the)S 1896 V 1080(compiler,)S 1488(the)S 1636(options)S 1956(the)S 2104(user)S 2297(gets)S 2484(to)S 2587(see.)S 2064 V 1080(This)S 1291(text)S 1474(only)S 1684(describes)S 10 B 2092(acd)S 10 R 2276(itself,)S 2536(it)S 2625(says)S 2831(nothing)S (about)223 3170 A 3426(the)S 3582(different)S 3963(options)S 4291(the)S 4447(C-compiler)S (accepts.)322 4939 A 2184 V 1080(\(It)S 1201(has)S 1360(nothing)S 1691(to)S 1794(do)S 1919(with)S 2123(any)S (language,)388 2293 A 2706(other)S 2938(than)S 3136(being)S 3384(a)S 3454(tool)S 3635(to)S 3738(give)S 3936(a)S 4006(compiler)S 4389(a)S 4459(user)S (interface.\))413 4652 A 2352 V 9 R 720(O)S 722(OP)S 790(PT)S 842(TI)S 900(IO)S 933(ON)S 1001(NS)S 1069(S)S 2472 V 10 B 1080(Acd)S 10 R 1279(itself)S 1506(takes)S 1738(\256ve)S 1914(options:)S 2640 V 10 B-1 1080(-)S 10 B 1137(v)S 10 R 1187([)S 10 I 1221(n)S 10 R 1271(])S 1440(Sets)S 1639(the)S (diagnostic)413 1794 A 2239(level)S 2467(to)S 10 I 2577(n)S 10 R 2659(\(by)S 2825(default)S 10 B 3137(2)S 10 R 3187(\).)S 3303(The)S 3492(higher)S 10 I 3781(n)S 10 R 3863(is,)S 3987(the)S 4142(more)S 4381(output)S 10 B 4669(acd)S 10 R 4852(generates:)S 2760 V 10 B-1 1440(-)S 10 B 1497(v0)S 10 R 1640(does)S 1867(not)S (produce)324 2038 A 2405(any)S 2593(output.)S 10 B-1 2942(-)S 10 B 2999(v1)S 10 R 3142(prints)S 3414(the)S 3580(basenames)S 4058(of)S 4184(the)S 4349(programs)S 4771(called.)S 10 B-1 5104(-)S 10 B 5161(v2)S 2880 V 10 R 1440(prints)S 1697(names)S 1982(and)S 2155(arguments)S 2602(of)S 2715(the)S 2867(programs)S 3276(called.)S 10 B-1 3596(-)S 10 B 3653(v3)S 10 R 3782(shows)S 4062(the)S 4214(commands)S 4678(executed)S 5065(from)S 3000 V 1440(the)S 1597(description)S 2078(\256le)S 2241(too.)S 10 B-1 2453(-)S 10 B 2510(v4)S 10 R 2644(shows)S 2929(the)S 3086(program)S 3461(read)S 3669(from)S 3899(the)S 4056(description)S 4536(\256le)S 4698(too.)S 4909(Levels)S 5211(3)S 3120 V 1440(and)S 1610(4)S 1685(use)S (backspace)414 1844 A 2283(overstrikes)S 2750(that)S (look)178 2926 A (good)200 3129 A 3354(when)S 3597(viewing)S 3946(the)S 4094(output)S 4375(with)S 4579(a)S 4649(smart)S 4898(pager.)S 3288 V 10 B-1 1080(-)S 10 B 1137(vn)S 10 R 1243([)S 10 I 1277(n)S 10 R 1327(])S 1440(Like)S 10 B-1 1650(-)S 10 B 1707(v)S 10 R 1782(except)S 2070(that)S 2246(no)S 2371(command)S 2792(is)S 2884(executed.)S 3317(The)S 3499(driver)S 3765(is)S 3857(just)S 4027(play-acting.)S 3456 V 10 B-1 1080(-)S 10 B 1137(name)S 10 I 1397(name)S 3576 V 10 B 1440(Acd)S 10 R 1661(is)S 1775(normally)S 2185(linked)S 2483(to)S 2608(the)S 2778(name)S 3043(the)S 3213(compiler)S 3619(is)S 3734(to)S 3860(be)S 4003(called)S 4292(with)S 4519(by)S 4667(the)S 4838(user.)S 5104(The)S 3696 V 1440(basename)S 1868(of)S 1982(this,)S 2182(say)S 10 B 2346(cc)S 10 R 2436(,)S 2491(is)S 2588(the)S 2741(call)S 2917(name)S 3165(of)S 3279(the)S 3432(driver.)S 3753(It)S 3845(plays)S 4087(a)S 4162(role)S 4349(in)S 4457(selecting)S 4845(the)S 4998(proper)S 3816 V 1440(description)S 1922(\256le.)S 2136(With)S 2373(the)S 10 B-1 2532(-)S 10 B 2589(name)S 10 R 2860(option)S 3152(one)S 3333(can)S 3509(change)S 3830(this.)S 10 B 4061(Acd)S 10 B-1 4271(-)S 10 B 4328(name)S 4599(cc)S 10 R 4725(has)S 4895(the)S 5054(same)S 3936 V 1440(effect)S 1696(as)S (calling)274 1805 A 2104(the)S 2252(program)S 2618(as)S 10 B 2727(cc)S 10 R 2817(.)S 4104 V 10 B-1 1080(-)S 10 B 1137(descr)S 10 I 1392(descr)S 4224 V 10 R 1440(Allows)S 1764(one)S 1942(to)S (choose)279 2053 A 2365(the)S 2521(pass)S 2727(description)S 3207(\256le)S 3369(of)S 3486(the)S 3642(driver.)S 3966(By)S 4116(default)S 10 I 4429(descr)S 10 R 4680(is)S 4780(the)S 4936(same)S 5177(as)S 4344 V 10 I 1440(name)S 10 R 1666(,)S 1738(the)S 1908(call)S 2101(name)S 2366(of)S 2496(the)S 2665(program.)S 3102(If)S 10 I 3216(descr)S 10 R 3480(doesn't)S 3822(start)S 4042(with)S 10 B 4267(/)S 10 R 4295(,)S 10 B 4366(./)S 10 R 4419(,)S 4490(or)S 10 B 4620(../)S 10 R 4744(then)S 4963(the)S 5132(\256le)S 4464 V 10 B (/usr/lib/)336 1440 A 10 I 1776(descr)S 10 B 2002(/descr)S 10 R (will)157 2294 A 2485(be)S 2614(used)S 2832(for)S 2984(the)S 3141(description,)S 3647(otherwise)S 10 I 4073(descr)S 10 R 4326(itself.)S 4613(Thus)S 10 B 4849(cc)S 10 B-1 4974(-)S 10 B 5031(descr)S 4584 V 1440(newcc)S 10 R 1739(calls)S 1959(the)S 2117(C-compiler)S 2611(with)S 2825(a)S 2905(different)S 3288(description)S 3770(\256le)S (without)307 3934 A 4276(changing)S 4679(the)S 4837(call)S 5018(name.)S 4704 V 1440(Finally,)S 1789(if)S 10 I 1890(descr)S 10 R 2147(is)S 10 B 2253(")S 10 B-1 2309(-)S 10 B 2366(")S 10 R 2422(,)S 2486(standard)S (input)206 2866 A 3111(is)S 3217(read.)S 3480(\(The)S 3710(default)S 4030(lib)S 4176(directory)S 10 B (/usr/lib)308 4580 A 10 R 4888(,)S 4953(may)S 5166(be)S 4824 V 1440(changed)S 1826(to)S 10 I 1955(dir)S 10 R 2123(at)S 2247(compile)S 2622(time)S 2852(by)S 10 B-1 3002(-)S 10 B 3059(DLIB=\\")S 10 I 3446(dir)S 10 B 3563(\\")S 10 R 3647(.)S 3747(The)S 3954(default)S 10 I 4284(descr)S 10 R 4552(may)S 4775(be)S 4920(set)S 5082(with)S 4944 V 10 B-1 1440(-)S 10 B 1497(DDESCR=\\")S 10 I 2053(descr)S 10 B 2271(\\")S 10 R 2380(for)S 2523(simple)S 2816(installations)S 3327(on)S 3452(a)S 3522(system)S (without)307 3826 A 4158(symlinks.\))S 5112 V 10 B-1 1080(-)S 10 B 1137(T)S 10 I 1229(dir)S 10 R 1440(Temporary)S 1923(\256les)S 2126(are)S 2285(made)S 2538(in)S 10 B 2651(/tmp)S 10 R 2888(by)S 3023(default,)S 3364(which)S 3646(may)S 3855(be)S 3986(overridden)S 4458(by)S 4594(the)S 4753(environment)S 5232 V 1440(variable)S 10 B 1790(TMPDIR)S 10 R 2199(,)S 2249(which)S 2520(may)S 2718(be)S 2838(overridden)S 3299(by)S 3424(the)S 10 B-1 3572(-)S 10 B 3629(T)S 10 R 3721(option.)S 5400 V 9 R 720(T)S 722(TH)S 780(HE)S 848(E)S 929(D)S 931(DE)S 999(ES)S 1057(SC)S 1109(CR)S 1171(RI)S 1233(IP)S 1266(PT)S 1318(TI)S 1376(IO)S 1409(ON)S 1477(N)S 1568(F)S 1570(FI)S 1622(IL)S 1655(LE)S 1713(E)S 5520 V 10 R 1080(The)S 1262(description)S 1734(\256le)S 1888(is)S 1980(a)S 2051(program)S 2418(interpreted)S 2881(by)S 3007(the)S 3156(driver.)S 3473(It)S 3561(has)S 3721(variables,)S 4136(lists)S 4324(of)S 4434(\256les,)S 4653(argument)S 5059(pars-)S 5640 V 1080(ing)S 1233(commands,)S 1718(and)S 1888(rules)S 2109(for)S 2252(transforming)S (input)206 2797 A 3028(\256les.)S 5808 V 870(S)S 872(Sy)S 930(yn)S 982(nt)S 1034(ta)S 1064(ax)S 1111(x)S 5928 V 1080(There)S 1341(are)S 1490(four)S 1683(simple)S 1976(objects:)S 6096 V 1440(Words,)S (Substitutions,)549 1758 A 2332(Letters,)S 2663(and)S 2833(Operators.)S 6264 V 1080(And)S 1278(there)S 1505(are)S 1654(two)S 1830(ways)S 2062(to)S (group)234 2165 A 2424(objects:)S 6432 V 1440(Lists,)S 1686(forming)S 2035(sequences)S 2468(of)S 2577(anything)S 2953(but)S 3106(letters,)S 6600 V 1440(Strings,)S 1775(forming)S 2124(sequences)S 2557(of)S 2666(anything)S 3042(but)S 3195(Words)S 3488(and)S 3658(Operators.)S 6768 V 1080(Each)S 1307(object)S 1578(has)S 1737(the)S 1885(following)S 2301(syntax:)S 6936 V 1080(Words)S 1440(They)S 1686(are)S 1849(sequences)S 2296(of)S 2419(characters,)S 2893(like)S 10 B 3084(cc)S 10 R 3174(,)S 10 B-1 3239(-)S 10 B 3296(I/usr/include)S 10 R 3845(,)S 10 B (/lib/cpp)325 3910 A 10 R 4235(.)S 4325(No)S (whitespace)448 4488 A 4976(and)S 5161(no)S 7056 V 1440(special)S 1753(characters.)S 2246(The)S 2436(backslash)S 2860(character)S 3264(\()S 10 B 3298(\\)S 10 R 3326(\))S 3392(may)S 3597(be)S 3724(used)S 3940(to)S 4050(make)S 4300(special)S 4612(characters)S 5054(com-)S 7176 V 1440(mon,)S 1668(except)S (whitespace.)473 1956 A 2479(A)S 2577(backslash)S 2993(followed)S 3376(by)S (whitespace)448 3501 A 3974(is)S 4066(completely)S 4538(removed)S 4916(from)S 5138(the)S 7296 V (input.)231 1440 A 1721(The)S 1903(sequence)S 10 B 2297(\\n)S 10 R 2406(is)S 2498(changed)S 2858(to)S 2961(a)S 3031(newline.)S 7903 V 720(Page)S 941(1)S 4455(September)S 4911(13,)S (1996)200 5061 A 8143 V EP %%Page: 2 2 BP /slant 0 def /height 0 def 480 V 10 R 720(ACD)S 941(\()S 983(1)S 1041(\))S 2696(Eighth)S (Edition)296 2989 A 4906(ACD)S 5127(\()S 5169(1)S 5227(\))S 960 V (Substitutions)524 1080 A 1080 V 1440(A)S (substitution)468 1546 A 2048(\(henceforth)S 2547(called)S 2822('subst'\))S 3164(is)S 3265(formed)S 3590(with)S 3803(a)S 10 B 3882($)S 10 R 3932(,)S 3991(e.g.)S 10 B 4195($opt)S 10 R 4385(,)S 10 B 4444($PATH)S 10 R 4774(,)S 10 B 4833(${lib})S 10 R 5075(,)S 10 B 5134($)S 10 Y 5184(*)S 5186(*)S 10 R 5236(.)S 1200 V 1440(The)S 1633(variable)S 1994(name)S 2248(after)S 2470(the)S 10 B 2629($)S 10 R 2714(is)S 2816(made)S 3069(of)S 3188(letters,)S 3495(digits)S 3753(and)S (underscores,)506 3933 A 4474(or)S 4593(any)S 4773(sequence)S 5177(of)S 1320 V 1440(characters)S 1884(between)S 2254(parentheses)S 2759(or)S (braces,)283 2878 A 3196(or)S 3315(a)S 3395(single)S 3670(other)S 3912(character.)S 4368(A)S 4476(subst)S 4717(indicates)S 5110(that)S 1440 V 1440(the)S 1588(value)S 1831(of)S 1940(the)S 2088(named)S 2381(variable)S 2731(must)S 2951(be)S (substituted)435 3071 A 3531(in)S 3634(the)S 3782(list)S 3930(or)S 4039(string)S 4293(when)S 4536(fully)S 4751(evaluated.)S 1608 V 1080(Letters)S 1440(Letters)S 1746(are)S 1895(the)S 2043(single)S 2308(characters)S 2743(that)S 2919(would)S 3195(make)S 3438(up)S 3563(a)S 3633(word.)S 1776 V 1080(Operators)S 1896 V 1440(The)S 1633(characters)S 10 B 2079(=)S 10 R 2136(,)S 10 B 2197(+)S 10 R 2254(,)S 10 B-1 2315(-)S 10 R 2372(,)S 10 Y 2433(*)S 2435(*)S 10 R 2485(,)S 10 B 2546(<)S 10 R 2603(,)S 2664(and)S 10 B 2845(>)S 10 R 2938(are)S 3098(the)S 3257(operators.)S 3718(The)S 3911(\256rst)S 4104(four)S 4308(must)S 4540(be)S (surrounded)452 4672 A 5161(by)S 2016 V (whitespace)448 1440 A 1921(if)S 2016(they)S 2222(are)S 2378(to)S 2488(be)S 2615(seen)S 2826(as)S 2942(special)S 3254(\(they)S 3493(are)S 3649(often)S 3888(used)S 4104(in)S 4214(arguments\).)S 4749(The)S 4938(last)S 5110(two)S 2136 V 1440(are)S 1589(always)S 1894(special.)S 2304 V 1080(Lists)S 1440(One)S 1636(line)S 1815(of)S 1927(objects)S 2240(in)S 2346(the)S 2497(description)S 2972(\256le)S 3129(forms)S 3392(a)S 3465(list.)S 3666(Put)S 3828(parentheses)S (around)279 4326 A 4633(it)S 4718(and)S (you)150 4892 A 5071(have)S 2424 V 1440(a)S 1510(sublist.)S 1847(The)S 2029(values)S 2311(of)S 2420(variables)S 2809(are)S 2958(lists.)S 2592 V 1080(Strings)S 1440(Anything)S 1852(that)S 2036(is)S 2136(not)S 2297(yet)S 2453(a)S 2531(word)S 2771(is)S 2871(a)S 2949(string.)S 3261(All)S 3423(it)S 3512(needs)S 3774(is)S 3874(that)S 4058(the)S 4214(substs)S 4492(in)S 4603(it)S 4692(are)S 4850(evaluated,)S 2712 V 1440(e.g.)S 10 B ($LIBPATH/lib$key.a)919 1646 A 10 R 2565(.)S 2651(A)S 2760(single)S 3036(subst)S 3278(doesn't)S 3610(make)S 3863(a)S 3943(string,)S 4232(it)S 4323(expands)S 4687(to)S 4800(a)S 4880(list.)S 5088(You)S 2832 V 1440(need)S 1663(at)S 1769(least)S 1987(one)S 2165(letter)S 2406(or)S 2523(other)S 2763(subst)S 3002(next)S 3208(to)S 3319(it.)S 3458(Strings)S 3777(\(and)S 3990(words\))S 4304(may)S 4511(also)S 4707(be)S 4836(formed)S 5161(by)S 2952 V 1440(enclosing)S 1850(them)S 2076(in)S (double)273 2179 A (quotes.)287 2477 A 2814(Only)S 10 B 3040(\\)S 10 R 3093(and)S 10 B 3263($)S 10 R 3338(keep)S 3553(their)S 3763(special)S 4068(meaning)S 4439(within)S (quotes.)287 4721 A 3120 V 870(E)S 872(Ev)S 936(va)S 988(al)S 1035(lu)S 1065(ua)S 1117(at)S 1164(ti)S 1194(io)S 1224(on)S 1276(n)S 3240 V 1080(One)S 1276(thing)S 1510(has)S 1672(to)S 1778(be)S 1902(carefully)S (understood:)474 2290 A (Substitutions)524 2793 A 3346(are)S 3499(delayed)S (until)184 3841 A 4054(the)S 4206(last)S 4375(possible)S 4733(moment,)S 5116(and)S 3360 V 1080(description)S 1573(\256les)S 1787(make)S 2051(heavy)S 2337(use)S 2517(of)S 2647(this.)S 2888(Only)S 3135(if)S 3243(a)S 3334(subst)S 3586(is)S 3699(tainted,)S 4044(either)S (because)319 4320 A 4684(its)S 4824(variable)S 5194(is)S 3480 V 1080(declared)S 1448(local,)S 1696(or)S (because)319 1807 A 2153(a)S 2225(subst)S 2458(in)S 2563(its)S 2685(variable's)S 3110(value)S 3355(is)S 3449(tainted,)S 3775(is)S 3869(it)S 3952(immediately)S (substituted.)460 4482 A 4994(So)S 5127(if)S 5216(a)S 3600 V 1080(list)S 1233(is)S 1330(assigned)S 1706(to)S 1814(a)S 1889(variable)S 2244(then)S 2447(this)S 2622(list)S 2775(is)S 2872(only)S 3080(checked)S 3440(for)S 3588(tainted)S 3892(substs.)S 4217(Those)S 4492(substs)S 4766(are)S (replaced)342 4919 A 3720 V 1080(by)S 1205(the)S 1353(value)S 1596(of)S 1705(their)S 1915(variable.)S 2315(This)S 2519(is)S 2611(called)S 2877(partial)S 3160(evaluation.)S 3888 V 1080(Full)S 1267(evaluation)S 1711(expands)S 2065(all)S 2191(substs,)S 2486(the)S 2634(list)S 2782(is)S 2874(\257attened,)S 3271(i.e.)S 3419(all)S 3545(parentheses)S 4040(are)S 4189(removed)S 4566(from)S 4787(sublists.)S 4056 V 1080(Implosive)S 1510(evaluation)S 1957(is)S 2052(the)S 2203(last)S 2371(that)S 2550(has)S 2712(to)S 2818(be)S (done)195 2941 A 3164(to)S 3270(a)S 3343(list)S 3494(before)S 3780(it)S 3864(can)S 4032(be)S 4155(used)S 4368(as)S 4481(a)S 4555(command)S 4980(to)S 5087(exe-)S 4176 V 1080(cute.)S 1330(The)S 1519(substs)S 1796(within)S 2085(a)S 2162(string)S 2423(have)S 2645(been)S 2867(evaluated)S 3285(to)S 3395(lists)S 3589(after)S 3807(full)S 3979(expansion,)S 4443(but)S 4603(a)S 4680(string)S 4940(must)S 5166(be)S 4296 V 1080(turned)S 1363(into)S 1545(a)S 1616(single)S 1882(word,)S 2140(not)S 2294(a)S 2366(list.)S 2566(To)S 2705(make)S 2950(this)S 3122(happen,)S 3464(a)S 3536(string)S 3792(is)S 3886(\256rst)S 4070(exploded)S 4465(to)S 4570(all)S 4698(possible)S 5054(com-)S 4416 V 1080(binations)S 1482(of)S 1600(words)S (choosing)362 1880 A 2276(one)S 2455(member)S 2819(of)S 2937(the)S 3094(lists)S 3290(within)S 3581(the)S 3738(string.)S 4051(These)S 4326(words)S 4606(are)S 4764(tried)S 4983(one)S 5161(by)S 4536 V 1080(one)S 1254(to)S 1361(see)S 1519(if)S 1610(they)S 1812(exist)S 2031(as)S 2144(a)S 2218(\256le.)S 2426(The)S 2612(\256rst)S 2798(one)S 2972(that)S 3153(exists)S 3412(is)S 3509(taken,)S 3782(if)S (none)195 3874 A 4099(exists)S 4358(than)S 4561(the)S 4714(\256rst)S 4901(choice)S 5194(is)S 4656 V 1080(used.)S 1343(As)S 1483(an)S 1606(example,)S 2000(assume)S 10 B 2324(LIBPATH)S 10 R 2805(equals)S 10 B (\(/lib)174 3090 A (/usr/lib\))342 3292 A 10 R 3634(,)S 10 B 3687(key)S 10 R 3866(is)S 10 B 3961(\(c\))S 10 R 4102(and)S 10 B 4275(key)S 10 R 4454(happens)S 4811(to)S 4917(be)S 5040(local.)S 4776 V 1080(Then)S 1312(we)S 1455(have:)S 4944 V 10 B ("$LIBPATH/lib$key.a")1031 1440 A 5112 V 10 R 1080(before)S 1363(evaluation,)S 5280 V 10 B ("$LIBPATH/lib\(c\).a")943 1440 A 5448 V 10 R 1080(after)S 1291(partial)S 1574(evaluation,)S 5616 V 10 B ("\(/lib/libc.a)490 1440 A (/usr/lib/libc.a\)")658 1955 A 5784 V 10 R 1080(after)S 1291(full)S 1456(evaluation,)S 1925(and)S 2095(\256nally)S 5952 V 10 B (/usr/lib/libc.a)568 1440 A 6120 V 10 R 1080(after)S 1291(implosion,)S 1742(if)S 1829(the)S 1977(\256le)S 2131(exists.)S 6288 V 870(O)S 872(Op)S 947(pe)S 999(er)S 1046(ra)S 1082(at)S 1129(to)S 1159(or)S 1211(rs)S 1247(s)S 6408 V 1080(The)S 1262(operators)S 1662(modify)S 1977(the)S 2125(way)S 2318(evaluation)S 2762(is)S (done)195 2854 A 3074(and)S 3244(perform)S 3594(a)S 3664(special)S 3969(function)S 4329(on)S 4454(a)S 4524(list:)S 6576 V 10 Y 1080(*)S 1082(*)S 10 R 1440(Forces)S 1741(full)S 1913(evaluation)S 2364(on)S 2496(all)S 2629(the)S 2784(list)S 2939(elements)S 3329(following)S 3752(it.)S 3890(Use)S 4079(it)S 4168(to)S 4279(force)S (substitution)468 4520 A 5021(of)S 5138(the)S 6696 V 1440(current)S 1751(value)S 1994(of)S 2103(a)S 2173(variable.)S 2573(This)S 2777(is)S 2869(the)S 3017(only)S 3220(operator)S 3581(that)S 3757(forces)S 4029(immediate)S 4479(evaluation.)S 6864 V 10 B 1080(+)S 10 R 1440(When)S 1705(a)S 10 B 1775(+)S 10 R 1857(exists)S 2111(in)S 2214(a)S 2285(list)S 2434(that)S 2611(is)S 2704(fully)S 2920(evaluated,)S 3357(then)S 3556(all)S 3683(the)S 3832(elements)S 4216(before)S 4500(the)S 10 B 4649(+)S 10 R 4732(are)S 4882(imploded)S 6984 V 1440(and)S 1611(all)S 1738(elements)S 2122(after)S 2334(the)S 10 B 2483(+)S 10 R 2566(are)S 2715(imploded)S 3119(and)S 3289(added)S 3554(to)S 3657(the)S 3805(list)S 3953(if)S 4040(they)S 4238(are)S 4387(not)S 4540(already)S 4862(in)S 4965(the)S 5113(list.)S 7104 V 1440(So)S 1578(this)S 1755(operator)S 2124(can)S 2297(be)S 2425(used)S 2642(either)S 2905(for)S 3056(set)S (addition,)354 3201 A 3588(or)S 3705(to)S 3816(force)S 4057(implosive)S 4486(expansion)S 4926(within)S 5216(a)S 7224 V 1440(sublist.)S 7392 V 10 B-1 1080(-)S 10 R 1440(Like)S 10 B 1650(+)S 10 R 1707(,)S 1757(except)S 2045(that)S 2221(elements)S 2604(after)S 2815(the)S 10 B-1 2963(-)S 10 R 3045(are)S 3194(removed)S 3571(from)S 3792(the)S 3940(list.)S 7903 V 720(September)S 1176(13,)S (1996)200 1326 A 4990(Page)S 5211(2)S 8143 V EP %%Page: 3 3 BP /slant 0 def /height 0 def 480 V 10 R 720(ACD)S 941(\()S 983(1)S 1041(\))S 2696(Eighth)S (Edition)296 2989 A 4906(ACD)S 5127(\()S 5169(1)S 5227(\))S 960 V 1080(The)S 1263(set)S 1401(operators)S 1802(can)S 1968(be)S 2089(used)S 2299(to)S 2403(gather)S 2681(options)S 3003(that)S 3181(exclude)S (each)185 3521 A 3733(other)S 3967(or)S 4078(for)S 4223(their)S 4435(side)S 4624(effect)S 4882(of)S 4993(implo-)S 1080 V 1080(sive)S 1267(expansion.)S 1749(You)S 1947(may)S 2145(want)S 2366(to)S 2469(write:)S 1248 V 10 B 1440(cpp)S 10 B-1 1622(-)S 10 B 1679(I$LIBPATH/include)S 1416 V 10 R 1080(to)S 1187(call)S 1362(cpp)S 1537(with)S 1746(an)S 1871(extra)S 2103(include)S 2429(directory,)S 2848(but)S 10 B 3006($LIBPATH)S 10 R 3539(is)S 3636(expanded)S 4051(using)S 4298(a)S 4373(\256lename)S 4750(starting)S 5082(with)S 1536 V 10 B-1 1080(-)S 10 B 1137(I)S 10 R 1205(so)S 1323(this)S 1497(won't)S 1761(work.)S 2047(Given)S 2322(that)S 2502(any)S 2676(problem)S 3040(in)S 3147(Computer)S 3578(Science)S 3921(can)S 4090(be)S 4214(solved)S 4505(with)S 4712(an)S 4835(extra)S 5065(level)S 1656 V 1080(of)S 1189(indirection,)S 1675(use)S 1834(this)S 2004(instead:)S 1824 V 10 B 1440(cpp)S 10 B-1 1622(-)S 10 B 1679(I$INCLUDE)S 1944 V 1440(INCLUDE)S 1930(=)S 2012($LIBPATH/include)S 2882(+)S 2112 V 10 R 870(S)S 872(Sp)S 930(pe)S 982(ec)S 1029(ci)S 1076(ia)S 1106(al)S 1153(l)S 1208(V)S 1210(Va)S 1285(ar)S 1332(ri)S 1368(ia)S 1398(ab)S 1445(bl)S 1497(le)S 1527(es)S 1574(s)S 2232 V 1080(There)S 1345(are)S 1498(three)S 1729(special)S 2038(variables)S 2431(used)S 2644(in)S 2751(a)S 2825(description)S 3301(\256le:)S 10 B 3487($)S 10 Y 3537(*)S 3539(*)S 10 R 3589(,)S 10 B 3643($<)S 10 R 3750(,)S 3804(and)S 10 B 3978($>)S 10 R 4085(.)S 4164(These)S 4434(variables)S 4827(are)S 4981(always)S 2352 V 1080(local)S 1301(and)S 1471(mostly)S 1769(read-only.)S 2230(They)S (will)157 2462 A 2644(be)S 2764(explained)S 3180(later.)S 2520 V 870(A)S 872(A)S 972(P)S 974(Pr)S 1032(ro)S 1068(og)S 1120(gr)S 1172(ra)S 1208(am)S 1255(m)S 2640 V 1080(The)S 1272(lists)S 1469(in)S 1582(a)S 1662(description)S 2144(\256le)S 2308(form)S 2539(a)S 2619(program)S 2995(that)S 3181(is)S 3283(executed)S 3676(from)S 3907(the)S 4065(\256rst)S 4257(to)S 4370(the)S 4528(last)S 4703(list.)S 4911(The)S 5104(\256rst)S 2760 V 1080(word)S 1317(in)S 1425(a)S 1499(list)S 1651(may)S 1853(be)S (recognized)442 1977 A 2448(as)S 2561(a)S (builtin)262 2635 A 2926(command)S 3351(\(only)S 3592(if)S 3683(the)S 3835(\256rst)S 4021(list)S 4173(element)S 4521(is)S 4617(indeed)S 4914(simply)S 5216(a)S 2880 V 1080(word.\))S 1399(If)S 1495(it)S 1579(is)S 1674(not)S 1830(a)S (builtin)262 1903 A 2193(command)S 2617(then)S 2818(the)S 2969(list)S 3120(is)S 3215(imploded)S 3622(and)S 3795(used)S 4007(as)S 4119(a)S 8 R 4187(UNIX)S 10 R 4416(command)S 4840(with)S 5048(argu-)S 3000 V 1080(ments.)S 3168 V 1080(Indentation)S 1569(\(by)S 1734(tabs)S 1927(or)S (spaces\))297 2042 A 2370(is)S 2468(not)S 2627(just)S 2803(makeup)S 3152(for)S 3301(a)S 3378(program,)S 3776(but)S 3936(are)S 4092(used)S 4308(to)S (group)234 4418 A 4684(lines)S 4906(together.)S 3288 V 1080(Some)S (builtin)262 1334 A 1621(commands)S 2081(need)S 2296(a)S (body.)225 2366 A 2641(These)S (bodies)262 2907 A 3194(are)S 3343(simply)S 3641(lines)S 3856(at)S 3954(a)S 4024(deeper)S 4318(indentation.)S 3456 V 1080(Empty)S 1384(lines)S 1610(are)S 1770(not)S (ignored)307 1934 A 2277(either,)S 2568(they)S 2777(have)S 3003(the)S 3162(same)S 3405(indentation)S 3893(level)S 4125(as)S 4246(the)S 4406(line)S 4594(before)S 4889(it.)S 5032(Com-)S 3576 V 1080(ments)S 1349(\(starting)S 1714(with)S 1922(a)S 10 B 1996(#)S 10 R 2075(and)S 2249(ending)S 2551(at)S 2653(end)S 2827(of)S 2940(line\))S 3154(have)S 3372(an)S 3495(indentation)S 3975(of)S 4087(their)S 4300(own)S 4501(and)S 4674(can)S 4842(be)S 4965(used)S 5177(as)S 3696 V 1080(null)S 1261(commands.)S 3864 V 10 B 1080(Acd)S 10 R (will)157 1291 A 1485(complain)S (about)223 1896 A 2156(unexpected)S 2651(indentation)S 3140(shifts)S 3395(and)S 3577(empty)S (bodies.)287 3865 A 4214(Commands)S 4709(can)S 4887(share)S 5138(the)S 3984 V 1080(same)S (body)200 1328 A 1569(by)S 1710(placing)S 2047(them)S 2289(at)S 2402(the)S 2565(same)S 2812(indentation)S 3304(level)S 3540(before)S 3838(the)S 4001(indented)S (body.)225 4387 A 4677(They)S 4924(are)S 5088(then)S 4104 V 1080("guards")S 1464(to)S 1576(the)S 1733(same)S (body,)225 1974 A 2233(and)S 2412(are)S 2570(tried)S 2789(one)S 2968(by)S 3102(one)S (until)184 3281 A 3499(one)S (succeeds,)383 3678 A 4095(after)S 4315(which)S 4595(the)S (body)200 4752 A 4986(is)S 5087(exe-)S 4224 V 1080(cuted.)S 4392 V 1080(Semicolons)S 1577(may)S 1778(be)S 1901(used)S 2113(to)S 2219(separate)S 2578(commands)S 3041(instead)S 3354(of)S 3466(newlines.)S 3902(The)S 4087(commands)S 4551(are)S 4704(then)S 4906(all)S 5036(at)S 5138(the)S 4512 V 1080(indentation)S 1557(level)S 1778(of)S 1887(the)S 2035(\256rst.)S 4680 V 870(E)S 872(Ex)S 936(xe)S 988(ec)S 1035(cu)S 1082(ut)S 1134(ti)S 1164(io)S 1194(on)S 1246(n)S 1323(p)S 1325(ph)S 1377(ha)S 1429(as)S 1476(se)S 1517(es)S 1564(s)S 4800 V 1080(The)S 1279(driver)S 1562(runs)S 1777(in)S 1897(three)S 2141(phases:)S (Initialization,)540 2479 A 3061(Argument)S 3511(scanning,)S 3935(and)S 4122(Compilation.)S 4716(Not)S 4910(all)S 5054(com-)S 4920 V 1080(mands)S 1367(work)S 1599(in)S 1702(all)S 1828(phases.)S 2171(This)S 2375(is)S 2467(further)S 2767(explained)S 3183(below.)S 5088 V 870(T)S 872(Th)S 936(he)S 988(e)S 1060(C)S 1062(Co)S 1131(om)S 1183(mm)S 1263(ma)S 1343(an)S 1390(nd)S 1442(ds)S 1494(s)S 5208 V 1080(The)S 1262(commands)S (accept)258 1722 A 2005(arguments)S 2449(that)S 2625(are)S 2774(usually)S 3089(generic)S 3412(expressions)S 3907(that)S 4084(implode)S 4439(to)S 4543(a)S 4614(word)S 4847(or)S 4957(a)S 5028(list)S 5177(of)S 5328 V 1080(words.)S 1407(When)S 10 I 1678(var)S 10 R 1843(is)S 1941(speci\256ed,)S 2355(then)S 2559(a)S 2635(single)S 2906(word)S 3144(or)S 3259(subst)S 3496(needs)S 3756(to)S 3865(be)S 3991(given,)S 4270(so)S 4389(an)S 4514(assignment)S 4996(can)S 5166(be)S 5448 V 1080(either)S 10 I 1335(name)S 10 B 1578(=)S 10 I 1660(value)S 10 R 1886(,)S 1936(or)S 10 B 2045($)S 10 I 2095(name)S 10 B 2338(=)S 10 I 2420(value)S 10 R 2646(.)S 5616 V 10 I 1080(var)S 10 B 1247(=)S 10 I 1329(expr)S (...)75 1533 A 5736 V 10 R 1440(The)S 1636(partially)S 2011(evaluated)S 2436(list)S 2598(of)S 2721(expressions)S 3230(is)S 3337(assigned)S 3723(to)S 10 I 3841(var)S 10 R 3983(.)S 4073(During)S 4398(the)S 4561(evaluation)S 5020(is)S 10 I 5127(var)S 5856 V 10 R 1440(marked)S 1767(as)S 1876(local,)S 2122(and)S 2292(after)S 2503(the)S 2651(assignment)S 3128(set)S 3265(from)S (unde\256ned)396 3486 A 3907(to)S 4010(de\256ned.)S 6024 V 10 B 1080(unset)S 10 I 1335(var)S 6144 V 1440(Var)S 10 R 1616(is)S 1708(set)S 1845(to)S 1948(null)S 2129(and)S 2299(is)S 2391(marked)S 2718(as)S (unde\256ned.)421 2827 A 6312 V 10 B 1080(import)S 10 I 1402(var)S 6432 V 10 R 1440(If)S 10 I 1540(var)S 10 R 1706(is)S 1805(de\256ned)S 2133(in)S 2243(the)S 2398(environment)S 2938(of)S 10 B 3054(acd)S 10 R 3237(then)S 3442(it)S 3530(is)S 3629(assigned)S 4007(to)S 10 I 4117(var)S 10 R 4259(.)S 4341(The)S 4530(environment)S 5070(vari-)S 6552 V 1440(able)S 1648(is)S (split)173 1755 A 1968(into)S 2164(words)S 2449(at)S (whitespace)448 2561 A 3048(and)S 3232(colons.)S 3583(Empty)S (space)224 3890 A 4153(between)S 4528(two)S 4718(colons)S 5019(\()S 10 B 5053(::)S 10 R 5121(\))S 5194(is)S 6672 V 1440(changed)S 1800(to)S 1903(a)S 1973(dot.)S 6840 V 10 B 1080(mktemp)S 10 I 1464(var)S 10 B 1631([)S 10 I (suffix)218 1665 A 10 B 1891(])S 6960 V 10 R 1440(Assigns)S 1790(to)S 10 I 1900(var)S 10 R 2066(the)S 2221(name)S 2471(of)S 2587(a)S 2665(new)S 2866(temporary)S 3313(\256le,)S 3500(usually)S 3823(something)S 4274(like)S (/tmp/acd12345x.)677 4458 A 5193(If)S 7080 V 10 I 1440(suf\256x)S 10 R 1682(is)S 1779(present)S 2100(then)S 2303(it)S (will)157 2389 A 2576(be)S 2700(added)S 2969(to)S 3076(the)S 3228(temporary)S 3671(\256le's)S 3902(name.)S 4199(\(Use)S 4419(it)S (because)319 4504 A 4852(some)S 5093(pro-)S 7200 V 1440(grams)S 1715(require)S 2030(it,)S 2140(or)S 2253(just)S (because)319 2427 A 2775(it)S (looks)217 2860 A (good.\))259 3106 A 10 B 3419(Acd)S 10 R 3622(remembers)S 4099(this)S 4274(\256le,)S 4458(and)S (will)157 4633 A 4820(delete)S 5091(it)S 5177(as)S 7320 V (soon)189 1440 A 1654(as)S (you)150 1763 A 1938(stop)S 2130(referencing)S 2615(it.)S 7903 V 720(Page)S 941(3)S 4455(September)S 4911(13,)S (1996)200 5061 A 8143 V EP %%Page: 4 4 BP /slant 0 def /height 0 def 480 V 10 R 720(ACD)S 941(\()S 983(1)S 1041(\))S 2696(Eighth)S (Edition)296 2989 A 4906(ACD)S 5127(\()S 5169(1)S 5227(\))S 960 V 10 B 1080(temporary)S 10 I 1564(word)S 1080 V 10 R 1440(Mark)S 1695(the)S 1855(\256le)S 2021(named)S 2326(by)S 10 I 2463(word)S 10 R 2706(as)S 2827(a)S 2909(temporary)S 3360(\256le.)S 3576(You)S 3786(have)S 4013(to)S 4128(make)S 4383(sure)S 4588(that)S 4777(the)S 4938(name)S 5194(is)S 1200 V 1440(stored)S 1713(in)S 1818(some)S 2057(list)S 2207(in)S 2312(imploded)S 2718(form,)S 2966(and)S 3138(not)S 3293(just)S 3465(temporarily)S 3962(created)S 4281(when)S 10 I 4525(word)S 10 R 4757(is)S 4850(evaluated,)S 1320 V (because)319 1440 A 1784(then)S 1982(it)S (will)157 2063 A 2245(be)S 2365(immediately)S 2893(removed)S 3270(and)S 3440(forgotten.)S 1488 V 10 B 1080(stop)S 10 I (suffix)218 1284 A 1608 V 10 R 1440(Sets)S 1637(the)S 1789(target)S 2048(suf\256x)S 2306(for)S 2453(the)S 2605(compilation)S 3114(phase.)S 3422(Something)S 3886(like)S 10 B 4066(stop)S 4274(.o)S 10 R 4378(means)S 4664(that)S 4845(the)S 4998(source)S 1728 V 1440(\256les)S 1634(must)S 1855(be)S 1976(compiled)S 2376(to)S 2480(object)S 2752(\256les.)S 2996(At)S 3123(least)S 3334(one)S 10 B 3505(stop)S 10 R 3710(command)S 4132(must)S 4352(be)S 4472(executed)S 4855(before)S 5138(the)S 1848 V 1440(compilation)S 1948(phase)S 2205(begins.)S 2545(It)S 2635(may)S 2836(not)S 2992(be)S 3115(changed)S 3478(during)S 3769(the)S 3921(compilation)S 4430(phase.)S 4738(\(Note:)S 5025(There)S 1968 V 1440(is)S 1532(no)S 1657(restriction)S 2091(on)S 10 I 2216(suf\256x)S 10 R 2436(,)S 2486(it)S 2567(need)S 2782(not)S 2935(start)S 3134(with)S 3338(a)S 3408(dot.\))S 2136 V 10 B 1080(treat)S 10 I (file)129 1313 A (suffix)218 1467 A 2256 V 10 R 1440(Marks)S 1723(the)S 1872(\256le)S 2027(as)S 2137(having)S 2436(the)S 2585(given)S 2834(suf\256x)S 3089(for)S 3234(the)S 3384(compile)S 3735(phase.)S 4041(Useful)S 4337(for)S 4482(sending)S 4821(a)S 10 B-1 4893(-)S 10 B 4950(l)S 10 R 5005(option)S 2376 V 1440(directly)S 1773(to)S 1876(the)S 2024(loader)S 2301(by)S 2426(treating)S 2759(it)S 2840(as)S 2949(having)S 3247(the)S 10 B 3395(.a)S 10 R 3495(suf\256x.)S 2544 V 10 B 1080(numeric)S 10 I 1464(arg)S 2664 V 10 R 1440(Checks)S 1761(if)S 10 I 1848(arg)S 10 R 2012(is)S 2104(a)S 2174(number.)S 2556(If)S 2649(not)S 2802(then)S 10 B 3000(acd)S 10 R (will)157 3176 A 3358(exit)S 3534(with)S 3738(a)S 3808(nice)S 4001(error)S 4223(message.)S 2832 V 10 B (error)230 1080 A 10 I 1335(expr)S (...)75 1539 A 2952 V 10 R 1440(Makes)S 1733(the)S 1881(driver)S 2147(print)S 2362(the)S 2510(error)S 2732(message)S 10 I 3098(expr)S (...)75 3302 A 10 R 3402(and)S 3572(exit.)S 3120 V 10 B 1080(if)S 10 I 1167(expr)S 10 B 1379(=)S 10 I 1461(expr)S 3240 V 10 B 1440(If)S 10 R 1540(tests)S 1746(if)S 1835(the)S 1985(two)S 2163(expressions)S 2660(are)S 2812(equal)S 3058(using)S 3303(set)S 3443(comparison,)S 3965(i.e.)S (each)185 4116 A 4329(expression)S (should)267 4787 A 5082(con-)S 3360 V 1440(tain)S 1616(all)S 1742(the)S 1890(words)S 2161(in)S 2264(the)S 2412(other)S 2644(expression.)S 3149(If)S 3242(the)S 3390(test)S (succeeds)358 3555 A 3938(then)S 4136(the)S (if-body)296 4284 A 4605(is)S 4697(executed.)S 3528 V 10 B 1080(ifdef)S 10 I 1302(var)S 3648 V 10 R 1440(Executes)S 1829(the)S (ifdef-body)425 1977 A 2427(if)S 10 I 2514(var)S 10 R 2673(is)S 2765(de\256ned.)S 3816 V 10 B 1080(ifndef)S 10 I 1358(var)S 3936 V 10 R 1440(Executes)S 1829(the)S (ifndef-body)475 1977 A 2477(if)S 10 I 2564(var)S 10 R 2723(is)S (unde\256ned.)421 2815 A 4104 V 10 B 1080(iftemp)S 10 I 1386(arg)S 4224 V 10 R 1440(Executes)S 1831(the)S (iftemp-body)497 1981 A 2505(if)S 10 I 2594(arg)S 10 R 2760(is)S 2854(a)S 2926(temporary)S 3367(\256le.)S 3573(Use)S 3757(it)S 3841(when)S 4087(a)S 4160(command)S 4584(has)S 4746(the)S 4897(same)S 5132(\256le)S 4344 V 1440(as)S (input)206 1549 A 1780(and)S 1950(output)S 2231(and)S (you)150 2401 A (don't)212 2576 A 2813(want)S 3034(to)S (clobber)302 3137 A 3464(the)S 3612(source)S 3900(\256le:)S 4512 V 10 B 1440(transform)S 1902(.o)S 2002(.o)S 4632 V 1800(iftemp)S 2106($)S 10 Y 2156(*)S 2158(*)S 4752 V 10 B 2160($>)S 2292(=)S 2374($)S 10 Y 2424(*)S 2426(*)S 4872 V 10 B 1800(else)S 4992 V 2160(cp)S 2286($)S 10 Y 2336(*)S 2338(*)S 10 B 2413($>)S 5112 V 1800(optimize)S 2195($>)S 5280 V 1080(ifhash)S 10 I 1368(arg)S 5400 V 10 R 1440(Executes)S 1836(the)S (ifhash-body)480 1991 A 2504(if)S 10 I 2599(arg)S 10 R 2771(is)S 2871(an)S 2999(existing)S 3350(\256le)S 3512(with)S 3724(a)S 3802(')S 10 B 3836(#)S 10 R 3886(')S 3953(as)S 4070(the)S 4226(very)S 4438(\256rst)S 4628(character.)S 5082(This)S 5520 V 1440(usually)S 1755(indicates)S 2138(that)S 2314(the)S 2462(\256le)S 2616(must)S 2836(be)S 2956(pre-processed:)S 5688 V 10 B 1440(transform)S 1902(.s)S 1991(.o)S 5808 V 1800(ifhash)S 2088($)S 10 Y 2138(*)S 2140(*)S 5928 V 10 B 2160(mktemp)S 2544(ASM)S 2793(.s)S 6048 V 2160($CPP)S 2432($)S 10 Y 2482(*)S 2484(*)S 10 B 2559(>)S 2641($ASM)S 6168 V 1800(else)S 6288 V 2160(ASM)S 2409(=)S 2491($)S 10 Y 2541(*)S 2543(*)S 6408 V 10 B 1800($AS)S 10 B-1 2004(-)S 10 B 2061(o)S 2136($>)S 2268($ASM)S 6528 V 1800(unset)S 2055(ASM)S 6696 V 1080(else)S 10 R 1440(Executes)S 1834(the)S (else-body)391 1987 A 2408(if)S 2500(the)S 2653(last)S 2823(executed)S 10 B 3211(if)S 10 R 3273(,)S 10 B 3329(ifdef)S 10 R 3526(,)S 10 B 3582(ifndef)S 10 R 3835(,)S 10 B 3891(iftemp)S 10 R 4172(,)S 4228(or)S 10 B 4343(ifhash)S 10 R 4637(was)S (unsuccess-)436 4825 A 6816 V 1440(ful.)S 1632(Note)S 1858(that)S 10 B 2039(else)S 10 R 2226(need)S 2446(not)S 2604(immediately)S 3137(follow)S 3430(an)S 3555(if,)S 3672(but)S (you)150 3830 A 4010(are)S 4164(advised)S 4501(not)S 4659(to)S 4767(make)S 5014(use)S 5177(of)S 6936 V 1440(this.)S 1660(It)S 1747(is)S 1839(a)S 1909("feature")S 2297(that)S 2473(may)S 2671(not)S 2824(last.)S 7104 V 10 B 1080(apply)S 10 I (suffix1)268 1345 A (suffix2)268 1638 A 7224 V 10 R 1440(Executed)S 1869(inside)S 2163(a)S 2262(transform)S 2708(rule)S (body)200 2919 A 3173(to)S 3305(transform)S 3751(the)S (input)206 3929 A 4190(\256le)S (according)397 4374 A 4826(to)S 4959(another)S 7344 V 1440(transform)S 1861(rule)S 2047(that)S 2227(has)S 2390(the)S 2542(given)S (input)206 2794 A 3029(and)S 3203(output)S 3488(suf\256xes.)S 3880(The)S 4066(\256le)S (under)229 4224 A 10 B 4481($)S 10 Y 4531(*)S 4533(*)S 10 R (will)157 4611 A 4796(be)S (replaced)342 4919 A 7464 V 1440(by)S 1579(the)S 1741(new)S 1948(\256le.)S 2166(So)S 2311(if)S 2413(there)S 2655(is)S 2762(a)S 10 B 2847(.c)S 2957(.i)S 10 R 3050(preprocessor)S 3605(rule)S 3802(then)S 4015(the)S 4178(example)S 4559(of)S 10 B 4683(ifhash)S 10 R 4986(can)S 5166(be)S 7903 V 720(September)S 1176(13,)S (1996)200 1326 A 4990(Page)S 5211(4)S 8143 V EP %%Page: 5 5 BP /slant 0 def /height 0 def 480 V 10 R 720(ACD)S 941(\()S 983(1)S 1041(\))S 2696(Eighth)S (Edition)296 2989 A 4906(ACD)S 5127(\()S 5169(1)S 5227(\))S 960 V (replaced)342 1440 A 1807(by:)S 1128 V 10 B 1440(transform)S 1902(.s)S 1991(.o)S 1248 V 1800(ifhash)S 2088($)S 10 Y 2138(*)S 2140(*)S 1368 V 10 B 2160(apply)S 2425(.c)S 2520(.i)S 1488 V 1800($AS)S 10 B-1 2004(-)S 10 B 2061(o)S 2136($>)S 2268($*)S 1656 V 1080(include)S 10 I 1419(descr)S 1776 V 10 R 1440(Reads)S 1717(another)S 2050(description)S 2528(\256le)S 2688(and)S (replaces)331 2864 A 3226(the)S 10 B 3380(include)S 10 R 3725(with)S 3935(it.)S 4072(Execution)S 4511(continues)S 4927(with)S 5138(the)S 1896 V 1440(\256rst)S 1628(list)S 1782(in)S 1891(the)S 2045(new)S 2244(program.)S 2666(The)S 2854(search)S 3143(for)S 10 I 3292(descr)S 10 R 3541(is)S 3639(the)S 3793(same)S 4031(as)S 4146(used)S 4361(for)S 4510(the)S 10 B-1 4663(-)S 10 B 4720(descr)S 10 R 4980(option.)S 2016 V 1440(Use)S 10 B 1628(include)S 10 R 1973(to)S 2082(switch)S 2376(in)S 2485(different)S 2864(front)S 3091(ends)S 3306(or)S 3421(back)S 3642(ends,)S 3882(or)S 3997(to)S 4106(call)S 4283(a)S 4359(shared)S 4653(description)S 5132(\256le)S 2136 V 1440(with)S 1655(a)S 1736(different)S (initialization.)534 2120 A 2715(Note)S 2947(that)S 10 I 3134(descr)S 10 R 3387(is)S 3489(only)S 3702(evaluated)S 4123(the)S 4281(\256rst)S 4473(time)S 4687(the)S 10 B 4845(include)S 10 R 5194(is)S 2256 V 1440(called.)S 1766(After)S 2015(that)S 2201(the)S 10 B 2359(include)S 10 R 2708(has)S 2877(been)S (replaced)342 3102 A 3479(with)S 3694(the)S 3853(included)S 4235(program,)S 4637(so)S 4762(changing)S 5166(its)S 2376 V 1440(argument)S 1845(won't)S 2105(get)S (you)150 2253 A 2428(a)S 2498(different)S 2871(\256le.)S 2544 V 10 B 1080(arg)S 10 I 1250(string)S (...)75 1509 A 2664 V 10 B 1440(Arg)S 10 R 1644(may)S 1853(be)S 1984(executed)S 2378(in)S 2492(the)S (initialization)509 2651 A 3196(and)S 3377(scanning)S 3770(phase)S 4036(to)S 4151(post)S 4355(an)S 4487(argument)S 4904(scanning)S 2784 V 1440(rule,)S 1649(that's)S 1900(all)S 2028(the)S 2178(command)S 2601(itself)S 2830(does.)S 3091(Like)S 3303(an)S 10 B 3425(if)S 10 R 3514(that)S 3692(fails)S 3893(it)S 3976(allows)S 4266(more)S 4500(guards)S 4795(to)S 4899(share)S 5138(the)S 2904 V 1440(same)S (body.)225 1672 A 3072 V 10 B 1080(transform)S 10 I (suffix1)268 1542 A (suffix2)268 1835 A 3192 V 10 B 1440(Transform)S 10 R 1910(,)S 1961(like)S 10 B 2138(arg)S 10 R 2283(,)S 2334(only)S 2538(posts)S 2770(a)S 2841(rule)S 3024(to)S 3128(transform)S 3546(a)S 3617(\256le)S 3772(with)S 3977(the)S 4126(suf\256x)S 10 I 4382(suf\256x1)S 10 R 4671(into)S 4854(a)S 4926(\256le)S 5082(with)S 3312 V 1440(the)S 1588(suf\256x)S 10 I 1842(suf\256x2)S 10 R 2112(.)S 3480 V 10 B 1080(prefer)S 10 I (suffix1)268 1375 A (suffix2)268 1668 A 3600 V 10 R 1440(Tells)S 1673(that)S 1855(the)S 2009(transformation)S 2633(rule)S 2821(from)S 10 I 3048(suf\256x1)S 10 R 3341(to)S 10 I 3450(suf\256x2)S 10 R 3743(is)S 3841(to)S 3950(be)S 4076(preferred)S 4478(when)S (looking)306 4728 A 5066(for)S 5216(a)S 3720 V 1440(transformation)S 2067(path)S 2274(to)S 2386(the)S 2543(stop)S 2744(suf\256x.)S 3057(Normally)S 3477(the)S 3634(shortest)S 3981(route)S 4222(to)S 4334(the)S 4490(stop)S 4690(suf\256x)S 4952(is)S 5052(used.)S 3840 V 10 B 1440(Prefer)S 10 R 1744(is)S (ignored)307 1839 A 2174(on)S 2302(a)S 10 B 2375(combine)S 10 R 2739(,)S (because)319 2792 A 3139(the)S 3290(special)S 3598(nature)S 3878(of)S 3990(combines)S 4403(does)S 4616(not)S 4773(allow)S 5026(ambi-)S 3960 V 1440(guity.)S 4128 V 1440(The)S 1631(two)S 1816(suf\256xes)S 2163(on)S 2297(a)S 10 B 2376(transform)S 10 R 2847(or)S 10 B 2965(prefer)S 10 R 3269(may)S 3476(be)S 3605(the)S 3762(same,)S 4028(giving)S 4318(a)S 4397(rule)S 4588(that)S 4773(is)S 4874(only)S 5087(exe-)S 4248 V 1440(cuted)S 1683(when)S 1926(preferred.)S 4416 V 10 B 1080(combine)S 10 I (suffix-list)375 1469 A (suffix)218 1869 A 4536 V 10 B 1440(Combine)S 10 R 1860(is)S 1955(like)S 10 B 2134(transform)S 10 R 2599(except)S 2890(that)S 3069(it)S 3153(allows)S 3444(a)S 3517(list)S 3668(of)S (input)206 3780 A 4014(suf\256xes)S 4355(to)S 4461(match)S 4735(several)S 5049(types)S 4656 V 1440(of)S (input)206 1549 A 1780(\256les)S 1973(that)S 2149(must)S 2369(be)S 2489(combined)S 2910(into)S 3091(one.)S 4824 V 10 B 1080(scan)S 10 R 1440(The)S 1633(scanning)S 2026(phase)S 2291(may)S 2500(be)S 2631(run)S 2801(early)S 3039(from)S 3271(the)S (initialization)509 3430 A 3975(phase)S 4240(with)S 4455(the)S 10 B 4614(scan)S 10 R 4840(command.)S 4944 V 1440(Use)S 1629(it)S 1717(if)S (you)150 1811 A 1992(need)S 2213(to)S 2322(make)S 2571(choices)S 2904(based)S 3164(on)S 3295(the)S 3449(arguments)S 3899(before)S 4188(posting)S 4514(the)S 4668(transformation)S 5064 V 1440(rules.)S 1711(After)S (running)312 1950 A 2287(this,)S 10 B 2482(scan)S 10 R 2697(and)S 10 B 2867(arg)S 10 R 3037(become)S 3375(no-ops.)S 5232 V 10 B 1080(compile)S 5352 V 10 R 1440(Move)S 1708(on)S 1842(to)S 1954(the)S 2112(compilation)S 2627(phase)S 2891(early,)S 3153(so)S 3277(that)S (you)150 3463 A 3648(have)S 3873(a)S 3953(chance)S 4268(to)S 4381(run)S 4550(a)S 4630(few)S 4817(extra)S 5054(com-)S 5472 V 1440(mands)S 1727(before)S (exiting.)304 2010 A 2364(This)S 2568(command)S 2989(implies)S 3310(a)S 10 B 3380(scan)S 10 R 3570(.)S 5640 V 1080(Any)S 1282(other)S 1518(command)S 1943(is)S 2039(seen)S 2248(as)S 2362(a)S 8 R 2432(UNIX)S 10 R 2663(command.)S 3139(This)S 3348(is)S 3445(where)S 3722(the)S 10 B 3875(<)S 10 R 3962(and)S 10 B 4137(>)S 10 R 4224(operators)S 4629(come)S 4877(into)S 5063(play.)S 5760 V 1080(They)S 1323(redirect)S 1668(standard)S (input)206 2045 A 2287(and)S 2468(standard)S 2845(output)S 3137(to)S 3251(the)S 3410(\256le)S 3575(mentioned)S 4035(after)S 4257(them,)S 4519(just)S 4700(like)S 4887(the)S 5046(shell.)S 5880 V 10 B 1080(Acd)S 10 R (will)157 1279 A 1461(stop)S 1653(with)S 1857(an)S 1977(error)S 2199(if)S 2286(the)S 2434(command)S 2855(is)S 2947(not)S (successful.)439 3100 A 6048 V 870(T)S 872(Th)S 936(he)S 988(e)S 1076(I)S 1078(In)S 1114(ni)S 1166(it)S 1196(ti)S 1226(ia)S 1256(al)S 1303(li)S 1333(iz)S 1363(za)S 1410(at)S 1457(ti)S 1487(io)S 1517(on)S 1569(n)S 1662(P)S 1664(Ph)S 1722(ha)S 1774(as)S 1821(se)S 1862(e)S 6168 V 1080(The)S 1276(driver)S 1556(starts)S 1808(by)S 1947(executing)S 2377(the)S 2539(program)S 2919(once)S 3148(from)S 3384(top)S 3552(to)S 3670(bottom)S 3994(to)S (initialize)353 4112 A 4505(variables)S 4909(and)S 5094(post)S 6288 V 1080(argument)S 1485(scanning)S 1867(and)S 2037(transformation)S 2655(rules.)S 6456 V 870(T)S 872(Th)S 936(he)S 988(e)S 1076(S)S 1078(Sc)S 1136(ca)S 1183(an)S 1230(nn)S 1282(ni)S 1334(in)S 1364(ng)S 1416(g)S 1509(P)S 1511(Ph)S 1569(ha)S 1621(as)S 1668(se)S 1709(e)S 6576 V 1080(In)S 1196(this)S 1373(phase)S 1634(the)S 1789(driver)S 2062(makes)S 2351(a)S 2428(pass)S 2633(over)S 2844(the)S 2999(command)S 3427(line)S 3610(arguments)S 4061(to)S 4171(process)S 4505(options.)S 4882(Each)S 10 B 5116(arg)S 6696 V 10 R 1080(rule)S 1267(is)S 1364(tried)S 1579(one)S 1754(by)S 1883(one)S 2057(in)S 2164(the)S 2316(order)S 2558(they)S 2760(were)S 2986(posted)S 3277(against)S 3591(the)S 3743(front)S 3968(of)S 4081(the)S 4233(argument)S 4642(list.)S 4844(If)S 4941(a)S 5015(match)S 6816 V 1080(is)S 1175(made)S 1421(then)S 1622(the)S 1774(matched)S 2144(arguments)S 2592(are)S 2745(removed)S 3126(from)S 3351(the)S 3503(argument)S 3912(list)S 4064(and)S 4238(the)S (arg-body)363 4390 A 4782(is)S 4878(executed.)S 6936 V 1080(If)S 1179(no)S 1310(match)S 1587(can)S 1757(be)S 1882(made)S 2130(then)S 2333(the)S 2486(\256rst)S 2673(argument)S 3083(is)S 3180(moved)S 3483(to)S 3591(the)S 3744(list)S 3897(of)S 4011(\256les)S (waiting)302 4209 A 4541(to)S 4649(be)S 4774(transformed)S 7056 V 1080(and)S 1250(the)S 1398(scan)S 1602(is)S 1694(restarted.)S 7224 V 1080(The)S 1263(match)S 1535(is)S (done)195 1628 A 1849(as)S 1959(follows:)S 2315(Each)S 2543(of)S 2653(the)S 2802(strings)S 3096(after)S 10 B 3308(arg)S 10 R 3480(must)S 3702(match)S 3975(one)S 4147(argument)S 4554(at)S 4654(the)S 4804(front)S 5027(of)S 5138(the)S 7344 V 1080(argument)S 1491(list.)S 1695(A)S 1799(character)S 2201(in)S 2310(a)S 2386(string)S 2646(must)S 2872(match)S 3149(a)S 3225(character)S 3627(in)S 3736(an)S 3862(argument)S 4273(word,)S 4536(a)S 4612(subst)S 4849(in)S 4957(a)S 5032(string)S 7464 V 1080(may)S 1285(match)S 1563(1)S 1645(to)S 1755(all)S 1888(remaining)S 2328(characters)S 2770(in)S 2880(the)S 3036(argument,)S 3474(preferring)S 3911(the)S 4067(shortest)S 4413(possible)S 4775(match.)S 5104(The)S 7903 V 720(Page)S 941(5)S 4455(September)S 4911(13,)S (1996)200 5061 A 8143 V EP %%Page: 6 6 BP /slant 0 def /height 0 def 480 V 10 R 720(ACD)S 941(\()S 983(1)S 1041(\))S 2696(Eighth)S (Edition)296 2989 A 4906(ACD)S 5127(\()S 5169(1)S 5227(\))S 960 V (hyphen)295 1080 A 1400(in)S 1503(a)S 1573(argument)S 1978(starting)S 2305(with)S 2509(a)S (hyphen)295 2579 A (cannot)268 2899 A 3192(be)S 3312(matched)S 3678(by)S 3803(a)S 3873(subst.)S 4154(Therefore:)S 1128 V 10 B 1440(arg)S 10 B-1 1610(-)S 10 B 1667(i)S 1296 V 10 R 1080(matches)S 1435(only)S 1638(the)S 1786(argument)S 10 B-1 2191(-)S 10 B 2248(i)S 10 R 2276(.)S 1464 V 10 B 1440(arg)S 10 B-1 1610(-)S 10 B 1667(O$n)S 1632 V 10 R 1080(matches)S 1435(any)S 1605(argument)S 2010(that)S 2186(starts)S 2424(with)S 10 B-1 2628(-)S 10 B 2685(O)S 10 R 2788(and)S 2958(is)S 3050(at)S 3148(least)S 3358(three)S 3585(characters)S (long.)203 4020 A 4273(Lastly,)S 1800 V 10 B 1440(arg)S 10 B-1 1610(-)S 10 B 1667(o)S 1742($out)S 1968 V 10 R 1080(matches)S 10 B-1 1435(-)S 10 B 1492(o)S 10 R 1567(and)S 1737(the)S 1885(argument)S 2290(following)S 2706(it,)S 2812(unless)S 3088(that)S 3264(argument)S 3669(starts)S 3907(with)S 4111(a)S (hyphen.)320 4181 A 2136 V 1080(The)S 1268(variable)S 10 B 1624($)S 10 Y 1674(*)S 1676(*)S 10 R 1757(is)S 1855(set)S 1998(to)S 2107(all)S 2239(the)S 2393(matched)S 2765(arguments)S 3215(before)S 3504(the)S (arg-body)363 3658 A 4052(is)S 4150(executed.)S 4590(All)S 4751(the)S 4906(substs)S 5183(in)S 2256 V 1080(the)S 1231(arg)S 1388(strings)S 1684(are)S 1836(set)S 1976(to)S 2082(the)S 2233(characters)S 2671(they)S 2872(match.)S 3196(The)S 3380(variable)S 10 B 3732($>)S 10 R 3866(is)S 3960(set)S 4099(to)S 4204(null.)S 4437(All)S 4593(the)S 4743(values)S 5027(of)S 5138(the)S 2376 V 1080(variables)S 1485(are)S 1650(saved)S 1920(and)S 2106(the)S 2271(variables)S 2677(marked)S 3021(local.)S 3309(All)S 3480(variables)S 3886(except)S 10 B 4191($>)S 10 R 4340(are)S 4506(marked)S 4850(read-only.)S 2496 V 1080(After)S 1325(the)S (arg-body)363 1479 A 1873(is)S 1971(executed)S 2360(is)S 2458(the)S 2612(value)S 2861(of)S 10 B 2975($>)S 10 R 3112(concatenated)S 3668(to)S 3776(the)S 3929(\256le)S 4088(list.)S 4291(This)S 4500(allows)S 4793(one)S 4968(to)S 5076(stuff)S 2616 V 1080(new)S 1274(\256les)S 1468(into)S 1651(the)S 1801(transformation)S 2421(phase.)S 2727(These)S 2995(added)S 3262(names)S 3546(are)S 3697(not)S 3852(evaluated)S (until)184 4265 A 4476(the)S 4626(start)S 4827(of)S 4938(the)S 5088(next)S 2736 V 1080(phase.)S 2904 V 870(T)S 872(Th)S 936(he)S 988(e)S 1076(C)S 1078(Co)S 1147(om)S 1199(mp)S 1279(pi)S 1331(il)S 1361(la)S 1391(at)S 1438(ti)S 1468(io)S 1498(on)S 1550(n)S 1643(P)S 1645(Ph)S 1703(ha)S 1755(as)S 1802(se)S 1843(e)S 3024 V 1080(The)S 1278(\256les)S 1488(gathered)S 1877(in)S 1997(the)S 2162(\256le)S 2333(list)S 2498(in)S 2618(the)S 2783(scanning)S 3182(phase)S 3453(are)S 3619(now)S 3834(transformed)S 4363(one)S 4550(by)S 4692(one)S 4879(using)S 5138(the)S 3144 V 1080(transformation)S 1705(rules.)S 1983(The)S 2172(shortest,)S 2541(or)S 2656(preferred)S 3058(route)S 3296(is)S 3394(computed)S 3821(for)S (each)185 3970 A 4186(\256le)S 4346(all)S 4478(the)S 4632(way)S 4831(to)S 4940(the)S 5094(stop)S 3264 V 1080(suf\256x.)S 1389(Each)S 1621(\256le)S 1780(is)S 1877(transformed)S (until)184 2394 A 2608(it)S 2694(lands)S 2936(at)S 3039(the)S 3192(stop)S 3389(suf\256x,)S 3674(or)S 3789(at)S 3893(a)S 3969(combine)S 4346(rule.)S 4584(After)S 4829(a)S 4905(while)S 5160(all)S 3384 V 1080(\256les)S 1273(are)S 1422(either)S 1677(fully)S 1892(transformed)S 2404(or)S 2513(at)S 2611(a)S 2681(combine)S 3052(rule.)S 3552 V 1080(The)S 1263(driver)S (chooses)318 1530 A 1874(a)S 1945(combine)S 2317(rule)S 2500(that)S 2677(is)S 2770(not)S 2924(on)S 3050(a)S 3121(path)S 3320(from)S 3542(another)S 3870(combine)S 4242(rule)S 4425(and)S 4597(executes)S 4971(it.)S 5104(The)S 3672 V 1080(\256le)S 1236(that)S 1414(results)S 1704(is)S 1798(then)S 1998(transformed)S (until)184 2512 A 2723(it)S 2806(again)S 3051(lands)S 3289(at)S 3388(a)S 3459(combine)S 3831(rule)S 4014(or)S 4124(the)S 4273(stop)S 4466(suf\256x.)S 4771(This)S 4976(contin-)S 3792 V 1080(ues)S (until)184 1239 A 1448(all)S 1574(\256les)S 1767(are)S 1916(at)S 2014(the)S 2162(stop)S 2354(suf\256x)S 2608(and)S 2778(the)S 2926(program)S 3292(exits.)S 3960 V 1080(The)S 1263(paths)S (through)312 1501 A 1839(transform)S 2257(rules)S 2479(may)S 2678(be)S (ambiguous)440 2799 A 3265(and)S 3436(have)S 3652(cycles,)S 3955(they)S (will)157 4154 A 4337(be)S 4459(resolved.)S 4877(But)S 5049(paths)S 4080 V (through)312 1080 A 1425(combines)S 1843(must)S 2071(be)S (unambiguous,)565 2199 A (because)319 2797 A 3149(of)S 3265(the)S 3420(many)S 3675(paths)S 3919(from)S 4147(the)S 4302(different)S 4682(\256les)S 4882(that)S 5065(meet)S 4200 V 1080(there.)S 1366(A)S 1473(description)S 1954(\256le)S (will)157 2118 A 2310(usually)S 2635(have)S 2860(only)S 3073(one)S 3253(combine)S 3634(rule)S 3826(for)S 3979(the)S 4137(loader.)S 4474(However)S 4879(if)S (you)150 4976 A 5161(do)S 4320 V 1080(have)S 1295(a)S 1365(combine)S 1736(con\257ict)S 2063(then)S 2261(put)S 2414(a)S 2484(no-op)S 2743(transform)S 3160(rule)S 3342(in)S 3445(front)S 3666(of)S 3775(one)S 3945(to)S 4048(resolve)S 4364(the)S 4512(problem.)S 4488 V 1080(If)S 1173(a)S 1243(\256le)S 1397(matches)S 1752(a)S (long)178 1822 A 2025(and)S 2195(a)S 2265(short)S 2492(suf\256x)S 2747(then)S 2946(the)S (long)178 3095 A 3299(suf\256x)S 3554(is)S 3647(preferred.)S 4094(By)S (putting)284 4237 A 4547(a)S 4618(null)S (input)206 4800 A 5032(suf\256x)S 4608 V 1080(\()S 10 B 1114("")S 10 R 1226(\))S 1295(in)S 1408(a)S 1487(rule)S 1678(one)S 1857(can)S 2031(match)S 2311(any)S 2490(\256le)S 2653(that)S 2838(no)S 2972(other)S 3213(rule)S 3404(matches.)S 3818(You)S 4025(can)S 4199(send)S (unknown)373 4417 A 4824(\256les)S 5026(to)S 5138(the)S 4728 V 1080(loader)S 1357(this)S 1527(way.)S 4896 V 1080(The)S 1268(variable)S 10 B 1624($)S 10 Y 1674(*)S 1676(*)S 10 R 1757(is)S 1855(set)S 1998(to)S 2107(the)S 2261(\256le)S 2421(to)S 2530(be)S 2656(transformed)S 3174(or)S 3289(the)S 3443(\256les)S 3643(to)S 3753(be)S 3880(combined)S 4308(before)S 4598(the)S 4753(transform)S 5177(or)S 5016 V (combine-body)580 1080 A 1689(is)S 1785(executed.)S 10 B 2222($>)S 10 R 2358(is)S 2454(set)S 2595(to)S 2702(the)S 2854(output)S 3139(\256le)S 3297(name,)S 3569(it)S 3654(may)S 3856(again)S 4103(be)S 4227(modi\256ed.)S 10 B 4662($<)S 10 R 4797(is)S 4892(set)S 5032(to)S 5138(the)S 5136 V 1080(original)S 1418(name)S 1661(of)S 1770(the)S 1918(\256rst)S 2100(\256le)S 2254(of)S 10 B 2363($)S 10 Y 2413(*)S 2415(*)S 10 R 2490(with)S 2694(the)S 2842(leading)S 3163(directories)S 3614(and)S 3784(the)S 3932(suf\256x)S 4186(removed.)S 10 B 4613($)S 10 Y 4663(*)S 4665(*)S 10 R (will)157 4740 A 4922(be)S 5043(made)S 5256 V 1080(up)S 1208(of)S 1320(temporary)S 1762(\256les)S 1958(after)S 2172(the)S 2323(\256rst)S 2508(rule.)S 10 B 2742($>)S 10 R (will)157 2876 A 3060(be)S 3182(another)S 3511(temporary)S 3952(\256le)S 4108(or)S 4219(the)S 4369(name)S 4614(of)S 4725(the)S 4875(target)S 5132(\256le)S 5376 V 1080(\()S 10 B 1114($<)S 10 R 1246(plus)S 1438(the)S 1586(stop)S 1778(suf\256x\),)S 2091(if)S 2178(the)S 2326(stop)S 2518(suf\256x)S 2772(is)S (reached.)339 2864 A 5544 V 10 B 1080($>)S 10 R 1213(is)S 1306(passed)S 1600(to)S 1704(the)S 1853(next)S 2052(rule;)S 2263(it)S 2346(is)S 2440(imploded)S 2846(and)S 3018(checked)S 3375(to)S 3480(be)S 3602(a)S 3674(single)S 3941(word.)S 4225(This)S 4431(driver)S 4699(does)S 4910(not)S 5065(store)S 5664 V 1080(intermediate)S 1612(object)S 1886(\256les)S 2082(in)S 2188(the)S 2339(current)S 2653(directory)S 3045(like)S 3224(most)S 3447(other)S 3682(compilers,)S 4132(but)S 4288(keeps)S 4545(them)S 4774(in)S 10 B 4879(/tmp)S 10 R 5108(too.)S 5784 V 1080(\(Who)S (knows)262 1342 A 1637(if)S 1732(the)S 1888(current)S 2207(directory)S 2604(can)S 2778(have)S 3002(\256les)S 3204(created)S 3530(in?\))S 3746(As)S 3892(an)S 4021(example,)S 4421(here)S 4629(is)S 4730(how)S (you)150 4937 A 5121(can)S 5904 V 1080(express)S 1407(the)S 1555("normal")S (method:)329 1947 A 6072 V 10 B 1440(transform)S 1902(.s)S 1991(.o)S 6192 V 1800(if)S 1887($>)S 2019(=)S 2101($<.o)S 6312 V 2160(#)S 2235(Stop)S 2456(suf\256x)S 2716(is)S 2808(.o)S 6432 V 1800(else)S 6552 V 2160($>)S 2292(=)S 2374($<.o)S 6672 V 2160(temporary)S 2644($>)S 6792 V 1800($AS)S 10 B-1 2004(-)S 10 B 2061(o)S 2136($>)S 2268($)S 10 Y 2318(*)S 2320(*)S 6960 V 10 R 1080(Note)S 1303(that)S 10 B 1481(temporary)S 10 R 1967(is)S 2061(not)S 2216(called)S 2484(if)S 2573(the)S 2723(target)S 2980(is)S 3074(already)S 3398(the)S 3549(object)S 3823(\256le,)S 4005(or)S (you)150 4117 A 4295(would)S 4574(lose)S 4764(the)S 4915(intended)S 7080 V 1080(result!)S 10 B 1403($>)S 10 R 1550(is)S (known)273 1657 A 1970(to)S 2088(be)S 2223(a)S 2308(word,)S (because)319 2580 A 10 B 2939($<)S 10 R 3086(is)S 3193(local.)S 3479(\(Any)S 3725(string)S 3993(whose)S 4289(substs)S 4573(are)S 4736(all)S 4876(expanded)S 7200 V 1080(changes)S 1429(to)S 1532(a)S 1602(word.\))S 7368 V 870(P)S 872(Pr)S 930(re)S 966(ed)S 1013(de)S 1065(e\256)S 1112(\256n)S 1170(ne)S 1222(ed)S 1269(d)S 1346(V)S 1348(Va)S 1423(ar)S 1470(ri)S 1506(ia)S 1536(ab)S 1583(bl)S 1635(le)S 1665(es)S 1712(s)S 7488 V 1080(The)S 1266(driver)S 1536(has)S 1699(three)S 1930(variables)S 2323(prede\256ned:)S 10 B 2805(PROGRAM)S 10 R 3337(,)S 3391(set)S 3532(to)S 3639(the)S 3791(call)S 3966(name)S 4214(of)S 4328(the)S 4481(driver,)S 10 B 4777(VERSION)S 10 R 5236(,)S 7903 V 720(September)S 1176(13,)S (1996)200 1326 A 4990(Page)S 5211(6)S 8143 V EP %%Page: 7 7 BP /slant 0 def /height 0 def 480 V 10 R 720(ACD)S 941(\()S 983(1)S 1041(\))S 2696(Eighth)S (Edition)296 2989 A 4906(ACD)S 5127(\()S 5169(1)S 5227(\))S 960 V 1080(the)S 1234(driver's)S 1579(version)S 1906(number,)S 2268(and)S 10 B (ARCH)297 2443 A 10 R 2740(,)S 2795(set)S 2937(to)S 3045(the)S 3198(name)S 3446(of)S 3560(the)S 3713(default)S 4023(output)S 4309(architecture.)S 4866(The)S 5053(latter)S 1080 V 1080(is)S 1172(optional,)S 1551(and)S 1721(only)S 1924(de\256ned)S 2245(if)S 10 B 2332(acd)S 10 R 2508(was)S 2690(compiled)S 3089(with)S 10 B-1 3293(-)S 10 B (DARCH=\\")511 3350 A 10 I 3861(arch-name)S 10 B 4297(\\")S 10 R 4381(.)S 1248 V 9 R 720(E)S 722(EX)S 780(XA)S 848(AM)S 916(MP)S 998(PL)S 1050(LE)S 1108(E)S 1368 V 10 R 1080(As)S 1223(an)S 1349(example)S 1721(a)S 1797(description)S 2275(\256le)S 2435(for)S 2584(a)S 2660(C)S 2758(compiler)S 3147(is)S 3245(given.)S 3549(It)S 3642(has)S 3807(a)S 3883(front)S 4110(end)S 4287(\(ccom\),)S 4630(an)S 4757(intermediate)S 1488 V 1080(code)S 1309(optimizer)S 1734(\(opt\),)S 1994(a)S 2078(code)S 2306(generator)S 2725(\(cg\),)S 2951(an)S 3084(assembler)S 3525(\(as\),)S 3740(and)S 3923(a)S 4006(loader)S 4296(\(ld\).)S 4530(The)S 4725(compiler)S 5121(can)S 1608 V 1080(pre-process,)S 1601(but)S 1760(there)S 1993(is)S 2091(also)S 2284(a)S 2360(separate)S 2722(cpp.)S 2948(If)S 3047(the)S 10 B-1 3201(-)S 10 B 3258(D)S 10 R 3362(and)S 3538(options)S 3864(like)S 4046(it)S 4133(are)S 4288(changed)S 4654(to)S (look)178 4763 A 4972(like)S 10 B-1 5154(-)S 10 B 5211(o)S 1728 V 10 R 1080(then)S 1278(this)S 1448(example)S 1814(is)S 1906(even)S 2121(as)S 2230(required)S 2591(by)S 8 R 2711(POSIX)S 10 R 2944(.)S 1968 V 1440(#)S 1515(The)S 1697(compiler)S (support)301 2080 A 2406(search)S 2689(path.)S 2088 V 1440(C)S 1532(=)S (/lib)134 1800 A (/usr/lib)285 1959 A (/usr/local/lib)509 2269 A 2328 V 1440(#)S 1515(Compiler)S 1920(passes.)S 2448 V 1440(CPP)S 1644(=)S 1800($C/cpp)S 2115($CPP_F)S 2568 V 1440(CCOM)S 1761(=)S 2160($C/ccom)S 2548($CPP_F)S 2688 V 1440(OPT)S 1656(=)S 1800($C/opt)S 2808 V 1440(CG)S 1605(=)S 1800($C/cg)S 2928 V 1440(AS)S 1594(=)S 1800($C/as)S 3048 V 1440(LD)S 1600(=)S 1800($C/ld)S 3288 V 1440(#)S 1515(Prede\256ned)S 1971(symbols.)S 3408 V 1440(CPP_F)S 1750(=)S 10 R-1 2160(-)S 10 R 2217(D__EXAMPLE_CC__)S 3648 V 1440(#)S 1515(Library)S 1843(path.)S 3768 V 1440(LIBPATH)S 1892(=)S 1974($USERLIBPATH)S 2734($C)S 4008 V 1440(#)S 1515(Default)S 1843(transformation)S 2461(target.)S 4128 V 1440(stop)S 1632(.out)S 4368 V 1440(#)S 1515(Preprocessor)S 2061(directives.)S 4488 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651(D$name)S 4608 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651(U$name)S 4728 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651(I$dir)S 4848 V 1800(CPP_F)S 2110(=)S 2192($CPP_F)S 2552($)S 10 Y 2602(*)S 5088 V 10 R 1440(#)S 1515(Stop)S 1724(suf\256x.)S 5208 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651(c)S 5328 V 1800(stop)S 1992(.o)S 5568 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651(E)S 5688 V 1800(stop)S 1992(.E)S 5928 V 1440(#)S 1515(Optimization.)S 6048 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651(O)S 6168 V 1800(prefer)S 2067(.m)S 2195(.m)S 6288 V 1800(OPT)S 2016(=)S 2098($OPT)S 2364(-O1)S 6528 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651(O$n)S 6648 V 1800(numeric)S 2155($n)S 6768 V 1800(prefer)S 2067(.m)S 2195(.m)S 6888 V 1800(OPT)S 2016(=)S 2098($OPT)S 2364($)S 10 Y 2414(*)S 7128 V 10 R 1440(#)S 1515(Add)S (debug)245 1713 A 1983(info)S 2170(to)S 2273(the)S 2421(executable.)S 7248 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651(g)S 7368 V 1800(CCOM)S 2121(=)S 2203($CCOM)S 2574(-g)S 7903 V 720(Page)S 941(7)S 4455(September)S 4911(13,)S (1996)200 5061 A 8143 V EP %%Page: 8 8 BP /slant 0 def /height 0 def 480 V 10 R 720(ACD)S 941(\()S 983(1)S 1041(\))S 2696(Eighth)S (Edition)296 2989 A 4906(ACD)S 5127(\()S 5169(1)S 5227(\))S 960 V 1440(#)S 1515(Add)S 1713(directories)S 2164(to)S 2267(the)S 2415(library)S 2709(path.)S 1080 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651(L$dir)S 1200 V 1800(USERLIBPATH)S 2510(=)S 2592($USERLIBPATH)S 3352($dir)S 1440 V 1440(#)S 10 R-1 1515(-)S 10 R (llib)134 1572 A 1731(must)S 1951(be)S 2071(searched)S 2449(in)S 2552($LIBPATH)S 3054(later.)S 1560 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651(l$lib)S 1680 V 1800($>)S 1932(=)S ($LIBPATH/lib$lib.a)837 2014 A 1920 V 1440(#)S 1515(Change)S 1847(output)S 2128(\256le.)S 2040 V 1440(arg)S 10 R-1 1594(-)S 10 R (o$out)228 1651 A 2160 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651(o)S ($out)178 1726 A 2280 V 1800(OUT)S 2033(=)S ($out)178 2115 A 2520 V 1440(#)S 1515(Complain)S (about)223 1936 A 2184(a)S 2254(missing)S 2591(argument.)S 2640 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651(o)S 2760 V 1800(error)S 2022("argument)S 2468(expected)S 2851(after)S 3062('$)S 10 Y 3146(*)S 10 R 3196('")S 3000 V 1440(#)S 1515(Any)S 1713(other)S 1945(option)S 2226(\(like)S 10 R-1 2436(-)S 10 R 2493(s\))S 2591(are)S 2740(for)S 2883(the)S 3031(loader.)S 3120 V 1440(arg)S 10 R-1 1594(-)S 10 R 1651($any)S 3240 V 1800(LD)S 1960(=)S 2042($LD)S 2252($)S 10 Y 2302(*)S 3480 V 10 R 1440(#)S 1515(Preprocess)S 1977(C-source.)S 3600 V 1440(transform)S 1857(.c)S 1952(.i)S 3720 V 1800($CPP)S 2054($)S 10 Y 2104(*)S 10 R 2179(>)S 2261($>)S 3960 V 1440(#)S 1515(Preprocess)S 1977(C-source)S 2366(and)S 2536(send)S 2745(it)S 2826(to)S 2929(standard)S 3295(output)S 3576(or)S 3685($OUT.)S 4080 V 1440(transform)S 1857(.c)S 1952(.E)S 4200 V 1800(ifndef)S 2066(OUT)S 4320 V 2160($CPP)S 2414($)S 10 Y 2464(*)S 4440 V 10 R 1800(else)S 4560 V 2160($CPP)S 2414($)S 10 Y 2464(*)S 10 R 2539(>)S 2621($OUT)S 4800 V 1440(#)S 1515(Compile)S 1886(C-source)S 2275(to)S 2378(intermediate)S 2907(code.)S 4920 V 1440(transform)S 1857(.c)S 1952(.m)S 5040 V 1440(transform)S 1857(.i)S 1935(.m)S 5160 V 1800($CCOM)S 2171($)S 10 Y 2221(*)S 10 R 2296($>)S 5400 V 1440(#)S 1515(Intermediate)S 2050(code)S 2265(optimizer.)S 5520 V 1440(transform)S 1857(.m)S 1985(.m)S 5640 V 1800($OPT)S 2066($)S 10 Y 2116(*)S 10 R 2191(>)S 2273($>)S 5880 V 1440(#)S 1515(Intermediate)S 2050(to)S 2153(assembly.)S 6000 V 1440(transform)S 1857(.m)S 1985(.s)S 6120 V 1800($CG)S 2015($)S 10 Y 2065(*)S 10 R 2140(>)S 2222($>)S 6360 V 1440(#)S 1515(Assembler)S 1971(to)S 2074(object)S 2345(code.)S 6480 V 1440(transform)S 1857(.s)S 1946(.o)S 6600 V 1800(if)S 1887($>)S 2019(=)S 2101($<.o)S 6720 V 2160(ifdef)S 2376(OUT)S 6840 V 2520($>)S 2652(=)S 2734($OUT)S 6960 V 1800($AS)S 10 R-1 2004(-)S 10 R 2061(o)S 2136($>)S 2268($)S 10 Y 2318(*)S 7200 V 10 R 1440(#)S 1515(Combine)S 1908(object)S 2179(\256les)S 2372(and)S 2542(libraries)S 2898(to)S 3001(an)S 3121(executable.)S 7320 V 1440(combine)S 1811(\(.o)S 1945(.a\))S 2074(.out)S 7440 V 1800(ifndef)S 2066(OUT)S 7903 V 720(September)S 1176(13,)S (1996)200 1326 A 4990(Page)S 5211(8)S 8143 V EP %%Page: 9 9 BP /slant 0 def /height 0 def 480 V 10 R 720(ACD)S 941(\()S 983(1)S 1041(\))S 2696(Eighth)S (Edition)296 2989 A 4906(ACD)S 5127(\()S 5169(1)S 5227(\))S 960 V 2160(OUT)S 2393(=)S 2475(a.out)S 1080 V 1800($LD)S 10 R-1 2010(-)S 10 R 2067(o)S 2142($OUT)S 2425($C/crtso.o)S 2866($)S 10 Y 2916(*)S 10 R ($C/libc.a)366 2991 A 1248 V 9 R 720(F)S 722(FI)S 774(IL)S 807(LE)S 865(ES)S 923(S)S 1368 V 10 R (/usr/lib/)313 1080 A 10 I 1393(descr)S 10 R 1619(/descr)S 10 R-1 2330(-)S 10 R 2412(compiler)S 2795(driver)S 3061(description)S 3533(\256le.)S 1536 V 9 R 720(S)S 722(SE)S 774(EE)S 832(E)S 913(A)S 915(AL)S 983(LS)S 1041(SO)S 1093(O)S 1656 V 10 B 1080(cc)S 10 R 1170(\(1\).)S 1824 V 9 R 720(A)S 722(AC)S 790(CK)S 852(KN)S 920(NO)S 988(OW)S 1056(WL)S 1144(LE)S 1202(ED)S 1260(DG)S 1328(GE)S 1396(EM)S 1454(ME)S 1536(EN)S 1594(NT)S 1662(TS)S 1720(S)S 1944 V 10 R 1080(Even)S (though)278 1320 A 1631(the)S 1787(end)S 1965(result)S 2222(doesn't)S (look)178 2551 A 2762(much)S 3018(like)S 3202(it,)S 3316(many)S 3572(ideas)S 3812(were)S 4042(nevertheless)S 4573(derived)S 4908(from)S 5138(the)S 2064 V 1080(ACK)S 1318(compiler)S 1701(driver)S 1967(by)S 2092(Ed)S 2229(Keizer.)S 2232 V 9 R 720(B)S 722(BU)S 784(UG)S 852(GS)S 920(S)S 2352 V 8 R 1080(POSIX)S 10 R 1341(requires)S 1694(that)S 1873(if)S (compiling)407 1963 A 2398(one)S 2571(source)S 2862(\256le)S 3019(to)S 3125(an)S 3248(object)S 3522(\256le)S 3679(fails)S 3881(then)S 4082(the)S 4233(compiler)S (should)267 4619 A 4915(continue)S 2472 V 1080(with)S 1290(the)S 1444(next)S 1648(source)S 1942(\256le.)S 2152(There)S 2419(is)S 2517(no)S 2648(way)S 10 B 2847(acd)S 10 R 3028(can)S 3198(do)S 3328(this,)S 3528(it)S 3614(always)S 3924(stops)S 4160(after)S 4376(error.)S 4653(It)S 4745(doesn't)S 5071(even)S 2592 V (know)223 1080 A 1328(what)S 1549(an)S 1669(object)S 1940(\256le)S 2094(is!)S 2245(\(The)S 2461(requirement)S 2973(is)S 3065(stupid)S (anyhow.\))377 3335 A 2760 V 1080(If)S (you)150 1173 A (don't)212 1348 A 1585(think)S 1816(that)S 1992(tabs)S 2179(are)S 2328(8)S (spaces)263 2403 A 2691(wide,)S 2937(then)S (don't)212 3135 A 3372(mix)S 3553(them)S 3779(with)S (spaces)263 3983 A 4271(for)S 4414(indentation.)S 2928 V 9 R 720(A)S 722(AU)S 790(UT)S 858(TH)S 916(HO)S 984(OR)S 1052(R)S 3048 V 10 R 1080(Kees)S 1307(J.)S 1396(Bot)S 1566(\(kjb@cs.vu.nl\))S 7903 V 720(Page)S 941(9)S 4455(September)S 4911(13,)S (1996)200 5061 A 8143 V EP %%Trailer %%DocumentFonts: Times-Roman Times-Bold Times-Italic Symbol %%Pages: 9