\relax \citation{knuth:literate:book} \citation{denning:announcing} \citation{levy:cweb} \citation{ramsey:building} \citation{thimbleby:cweb} \citation{ramsey:literate} \citation{sewell:weaving} \citation{cvw:assessment} \@writefile{toc}{\string\contentsline\space {section}{Introduction}{1}} \citation{knuth:web} \citation{ramsey:building} \@writefile{lof}{\string\contentsline\space {figure}{\string\numberline\space {1}{\ignorespaces Using {\string\ptt\space noweb} to build code and documentation}}{3}} \newlabel{transforms}{{1}{3}} \@writefile{toc}{\string\contentsline\space {section}{{\string\ptt\space noweb}}{3}} \citation{knuth:literate:book} \citation{ramsey:literate} \@writefile{toc}{\string\contentsline\space {section}{Using {\string\ptt\space noweb}}{4}} \@writefile{lof}{\string\contentsline\space {figure}{\string\numberline\space {2}{\ignorespaces Sample {\string\ptt\space noweb} input, from prime number program}}{5}} \newlabel{sample-input}{{2}{5}} \@writefile{lof}{\string\contentsline\space {figure}{\string\numberline\space {3}{\ignorespaces Output produced by {\string\ptt\space noweave} and {\string\p@LaTeX\space } from Figure\penalty \@M \ \string\ref\space {sample-input}}}{6}} \newlabel{noweave-output}{{3}{6}} \@writefile{lof}{\string\contentsline\space {figure}{\string\numberline\space {4}{\ignorespaces Part of primes program as written by {\string\ptt\space notangle}}}{6}} \newlabel{notangle-output}{{4}{6}} \citation{ramsey:correctness} \@writefile{toc}{\string\contentsline\space {section}{Representation of {\string\ptt\space noweb} files}{8}} \@writefile{lof}{\string\contentsline\space {figure}{\string\numberline\space {5}{\ignorespaces Generic code for implementing lists in C}}{9}} \newlabel{generic-example}{{5}{9}} \@writefile{lof}{\string\contentsline\space {figure}{\string\numberline\space {6}{\ignorespaces Program to instantiate lists of integer pairs}}{10}} \newlabel{pair-list-example}{{6}{10}} \@writefile{toc}{\string\contentsline\space {section}{Extending {\string\ptt\space noweb}}{11}} \@writefile{lof}{\string\contentsline\space {figure}{\string\numberline\space {7}{\ignorespaces Output produced from Figure\penalty \@M \ \string\ref\space {sample-input} by filter converting documentation chunks into comments.}}{12}} \newlabel{nountangle-output}{{7}{12}} \citation{knuth:literate:book} \@writefile{toc}{\string\contentsline\space {section}{Comparing {\string\ptt\space WEB} and {\string\ptt\space noweb}}{13}} \citation{thimbleby:review} \citation{cvw:assessment} \citation{ramsey:literate} \@writefile{toc}{\string\contentsline\space {section}{Discussion}{14}} \bibstyle{abbrv} \bibdata{web,cs,ramsey,ml} \bibcite{denning:announcing}{1} \bibcite{guntermann:cweb}{2} \bibcite{knuth:web}{3} \bibcite{knuth:literate:book}{4} \bibcite{levy:cweb}{5} \bibcite{ramsey:building}{6} \bibcite{ramsey:correctness}{7} \bibcite{ramsey:literate}{8} \bibcite{sewell:weaving}{9} \@writefile{toc}{\string\contentsline\space {section}{Acknowledgements}{16}} \bibcite{thimbleby:cweb}{10} \bibcite{thimbleby:review}{11} \bibcite{cvw:assessment}{12} \citation{knuth:literate:book} \@writefile{toc}{\string\contentsline\space {section}{An example of {\string\ptt\space noweb}}{18}} \citation{guntermann:cweb} \citation{knuth:literate:book} \@writefile{toc}{\string\contentsline\space {subsection}{Counting words}{19}} \newsublabel{NWwc.5-*-1}{{}{19}} \newsublabel{NWwc.5-HeaN-1}{{}{19}} \newsublabel{NWwc.5-DefB-1}{{}{20}} \nwixadd{\nwixd }{OK}{NWwc.5-DefB-1} \nwixadd{\nwixd }{usage:unerror}{NWwc.5-DefB-1} \nwixadd{\nwixd }{cannot:unopen:unfile}{NWwc.5-DefB-1} \nwixadd{\nwixu }{status}{NWwc.5-DefB-1} \newsublabel{NWwc.5-GloG-1}{{}{20}} \nwixadd{\nwixd }{status}{NWwc.5-GloG-1} \nwixadd{\nwixd }{prog:unname}{NWwc.5-GloG-1} \nwixadd{\nwixu }{OK}{NWwc.5-GloG-1} \newsublabel{NWwc.5-TheG-1}{{}{21}} \nwixadd{\nwixd }{main}{NWwc.5-TheG-1} \nwixadd{\nwixd }{argc}{NWwc.5-TheG-1} \nwixadd{\nwixd }{argv}{NWwc.5-TheG-1} \nwixadd{\nwixu }{prog:unname}{NWwc.5-TheG-1} \nwixadd{\nwixu }{status}{NWwc.5-TheG-1} \newsublabel{NWwc.5-VarR-1}{{}{21}} \nwixadd{\nwixd }{file:uncount}{NWwc.5-VarR-1} \nwixadd{\nwixd }{which}{NWwc.5-VarR-1} \newsublabel{NWwc.5-SetN-1}{{}{22}} \nwixadd{\nwixu }{argc}{NWwc.5-SetN-1} \nwixadd{\nwixu }{argv}{NWwc.5-SetN-1} \nwixadd{\nwixu }{file:uncount}{NWwc.5-SetN-1} \nwixadd{\nwixu }{which}{NWwc.5-SetN-1} \newsublabel{NWwc.5-ProL-1}{{}{22}} \nwixadd{\nwixu }{argc}{NWwc.5-ProL-1} \newsublabel{NWwc.5-VarR-2}{{}{22}} \nwixadd{\nwixd }{fd}{NWwc.5-VarR-2} \newsublabel{NWwc.5-DefB-2}{{}{22}} \nwixadd{\nwixd }{READ:unONLY}{NWwc.5-DefB-2} \newsublabel{NWwc.5-If*1D-1}{{}{23}} \nwixadd{\nwixu }{argv}{NWwc.5-If*1D-1} \nwixadd{\nwixu }{cannot:unopen:unfile}{NWwc.5-If*1D-1} \nwixadd{\nwixu }{fd}{NWwc.5-If*1D-1} \nwixadd{\nwixu }{file:uncount}{NWwc.5-If*1D-1} \nwixadd{\nwixu }{prog:unname}{NWwc.5-If*1D-1} \nwixadd{\nwixu }{READ:unONLY}{NWwc.5-If*1D-1} \nwixadd{\nwixu }{status}{NWwc.5-If*1D-1} \newsublabel{NWwc.5-CloA-1}{{}{23}} \nwixadd{\nwixu }{fd}{NWwc.5-CloA-1} \newsublabel{NWwc.5-DefB-3}{{}{23}} \nwixadd{\nwixd }{buf:unsize}{NWwc.5-DefB-3} \newsublabel{NWwc.5-VarR-3}{{}{23}} \nwixadd{\nwixd }{buffer}{NWwc.5-VarR-3} \nwixadd{\nwixd }{ptr}{NWwc.5-VarR-3} \nwixadd{\nwixd }{buf:unend}{NWwc.5-VarR-3} \nwixadd{\nwixd }{in:unword}{NWwc.5-VarR-3} \nwixadd{\nwixd }{word:uncount}{NWwc.5-VarR-3} \nwixadd{\nwixd }{line:uncount}{NWwc.5-VarR-3} \nwixadd{\nwixd }{char:uncount}{NWwc.5-VarR-3} \nwixadd{\nwixu }{buf:unsize}{NWwc.5-VarR-3} \newsublabel{NWwc.5-IniW-1}{{}{24}} \nwixadd{\nwixu }{buf:unend}{NWwc.5-IniW-1} \nwixadd{\nwixu }{buffer}{NWwc.5-IniW-1} \nwixadd{\nwixu }{char:uncount}{NWwc.5-IniW-1} \nwixadd{\nwixu }{in:unword}{NWwc.5-IniW-1} \nwixadd{\nwixu }{line:uncount}{NWwc.5-IniW-1} \nwixadd{\nwixu }{ptr}{NWwc.5-IniW-1} \nwixadd{\nwixu }{word:uncount}{NWwc.5-IniW-1} \newsublabel{NWwc.5-GloG-2}{{}{24}} \newsublabel{NWwc.5-Sca9-1}{{}{24}} \nwixadd{\nwixu }{in:unword}{NWwc.5-Sca9-1} \nwixadd{\nwixu }{line:uncount}{NWwc.5-Sca9-1} \nwixadd{\nwixu }{ptr}{NWwc.5-Sca9-1} \nwixadd{\nwixu }{word:uncount}{NWwc.5-Sca9-1} \newsublabel{NWwc.5-Filu-1}{{}{25}} \nwixadd{\nwixu }{buf:unend}{NWwc.5-Filu-1} \nwixadd{\nwixu }{buffer}{NWwc.5-Filu-1} \nwixadd{\nwixu }{buf:unsize}{NWwc.5-Filu-1} \nwixadd{\nwixu }{char:uncount}{NWwc.5-Filu-1} \nwixadd{\nwixu }{fd}{NWwc.5-Filu-1} \nwixadd{\nwixu }{ptr}{NWwc.5-Filu-1} \newsublabel{NWwc.5-WriP-1}{{}{25}} \nwixadd{\nwixu }{argv}{NWwc.5-WriP-1} \nwixadd{\nwixu }{char:uncount}{NWwc.5-WriP-1} \nwixadd{\nwixu }{file:uncount}{NWwc.5-WriP-1} \nwixadd{\nwixu }{line:uncount}{NWwc.5-WriP-1} \nwixadd{\nwixu }{wc:unprint}{NWwc.5-WriP-1} \nwixadd{\nwixu }{which}{NWwc.5-WriP-1} \nwixadd{\nwixu }{word:uncount}{NWwc.5-WriP-1} \newsublabel{NWwc.5-UpdJ-1}{{}{25}} \nwixadd{\nwixu }{char:uncount}{NWwc.5-UpdJ-1} \nwixadd{\nwixu }{line:uncount}{NWwc.5-UpdJ-1} \nwixadd{\nwixu }{word:uncount}{NWwc.5-UpdJ-1} \newsublabel{NWwc.5-Prip-1}{{}{25}} \nwixadd{\nwixu }{file:uncount}{NWwc.5-Prip-1} \nwixadd{\nwixu }{wc:unprint}{NWwc.5-Prip-1} \nwixadd{\nwixu }{which}{NWwc.5-Prip-1} \newsublabel{NWwc.5-DefB-4}{{}{26}} \nwixadd{\nwixd }{print:uncount}{NWwc.5-DefB-4} \newsublabel{NWwc.5-Fun9-1}{{}{26}} \nwixadd{\nwixd }{wc:unprint}{NWwc.5-Fun9-1} \nwixadd{\nwixu }{char:uncount}{NWwc.5-Fun9-1} \nwixadd{\nwixu }{line:uncount}{NWwc.5-Fun9-1} \nwixadd{\nwixu }{print:uncount}{NWwc.5-Fun9-1} \nwixadd{\nwixu }{prog:unname}{NWwc.5-Fun9-1} \nwixadd{\nwixu }{status}{NWwc.5-Fun9-1} \nwixadd{\nwixu }{usage:unerror}{NWwc.5-Fun9-1} \nwixadd{\nwixu }{which}{NWwc.5-Fun9-1} \nwixadd{\nwixu }{word:uncount}{NWwc.5-Fun9-1} \nwixadds{c}{{*}{NWwc.5-*-1}{\nwixd {NWwc.5-*-1}}} \nwixadds{c}{{Close file}{NWwc.5-CloA-1}{\nwixu {NWwc.5-ProL-1}\nwixd {NWwc.5-CloA-1}}} \nwixadds{c}{{Definitions}{NWwc.5-DefB-1}{\nwixu {NWwc.5-*-1}\nwixd {NWwc.5-DefB-1}\nwixd {NWwc.5-DefB-2}\nwixd {NWwc.5-DefB-3}\nwixd {NWwc.5-DefB-4}}} \nwixadds{c}{{Fill \code {}buffer\edoc {} if it is empty; \code {}break\edoc {} at end of file}{NWwc.5-Filu-1}{\nwixu {NWwc.5-Sca9-1}\nwixd {NWwc.5-Filu-1}}} \nwixadds{c}{{Functions}{NWwc.5-Fun9-1}{\nwixu {NWwc.5-*-1}\nwixd {NWwc.5-Fun9-1}}} \nwixadds{c}{{Global variables}{NWwc.5-GloG-1}{\nwixu {NWwc.5-*-1}\nwixd {NWwc.5-GloG-1}\nwixd {NWwc.5-GloG-2}}} \nwixadds{c}{{Header files to include}{NWwc.5-HeaN-1}{\nwixu {NWwc.5-*-1}\nwixd {NWwc.5-HeaN-1}}} \nwixadds{c}{{If a file is given, try to open \code {}*(++argv)\edoc {}; \code {}continue\edoc {} if unsuccessful}{NWwc.5-If*1D-1}{\nwixu {NWwc.5-ProL-1}\nwixd {NWwc.5-If*1D-1}}} \nwixadds{c}{{Initialize pointers and counters}{NWwc.5-IniW-1}{\nwixu {NWwc.5-ProL-1}\nwixd {NWwc.5-IniW-1}}} \nwixadds{c}{{Print the grand totals if there were multiple files}{NWwc.5-Prip-1}{\nwixu {NWwc.5-TheG-1}\nwixd {NWwc.5-Prip-1}}} \nwixadds{c}{{Process all the files}{NWwc.5-ProL-1}{\nwixu {NWwc.5-TheG-1}\nwixd {NWwc.5-ProL-1}}} \nwixadds{c}{{Scan file}{NWwc.5-Sca9-1}{\nwixu {NWwc.5-ProL-1}\nwixd {NWwc.5-Sca9-1}}} \nwixadds{c}{{Set up option selection}{NWwc.5-SetN-1}{\nwixu {NWwc.5-TheG-1}\nwixd {NWwc.5-SetN-1}}} \nwixadds{c}{{The main program}{NWwc.5-TheG-1}{\nwixu {NWwc.5-*-1}\nwixd {NWwc.5-TheG-1}}} \nwixadds{c}{{Update grand totals}{NWwc.5-UpdJ-1}{\nwixu {NWwc.5-ProL-1}\nwixd {NWwc.5-UpdJ-1}}} \nwixadds{c}{{Variables local to \code {}main\edoc {}}{NWwc.5-VarR-1}{\nwixu {NWwc.5-TheG-1}\nwixd {NWwc.5-VarR-1}\nwixd {NWwc.5-VarR-2}\nwixd {NWwc.5-VarR-3}}} \nwixadds{c}{{Write statistics for file}{NWwc.5-WriP-1}{\nwixu {NWwc.5-ProL-1}\nwixd {NWwc.5-WriP-1}}} \nwixadds{i}{{argc}{argc}} \nwixadds{i}{{argv}{argv}} \nwixadds{i}{{buf{\char 95}end}{buf:unend}} \nwixadds{i}{{buffer}{buffer}} \nwixadds{i}{{buf{\char 95}size}{buf:unsize}} \nwixadds{i}{{cannot{\char 95}open{\char 95}file}{cannot:unopen:unfile}} \nwixadds{i}{{char{\char 95}count}{char:uncount}} \nwixadds{i}{{fd}{fd}} \nwixadds{i}{{file{\char 95}count}{file:uncount}} \nwixadds{i}{{in{\char 95}word}{in:unword}} \nwixadds{i}{{line{\char 95}count}{line:uncount}} \nwixadds{i}{{main}{main}} \nwixadds{i}{{OK}{OK}} \nwixadds{i}{{print{\char 95}count}{print:uncount}} \nwixadds{i}{{prog{\char 95}name}{prog:unname}} \nwixadds{i}{{ptr}{ptr}} \nwixadds{i}{{READ{\char 95}ONLY}{READ:unONLY}} \nwixadds{i}{{status}{status}} \nwixadds{i}{{usage{\char 95}error}{usage:unerror}} \nwixadds{i}{{wc{\char 95}print}{wc:unprint}} \nwixadds{i}{{which}{which}} \nwixadds{i}{{word{\char 95}count}{word:uncount}}