\contentsline {chapter}{\numberline {1}Introduction}{1} \contentsline {section}{\numberline {1.1}Nuweb}{1} \contentsline {section}{\numberline {1.2}Writing Nuweb}{2} \contentsline {subsection}{\numberline {1.2.1}The Major Commands}{2} \contentsline {subsubsection}{Scraps}{3} \contentsline {subsubsection}{Flags}{3} \contentsline {subsection}{\numberline {1.2.2}The Minor Commands}{4} \contentsline {section}{\numberline {1.3}Running Nuweb}{4} \contentsline {section}{\numberline {1.4}Restrictions}{5} \contentsline {section}{\numberline {1.5}Acknowledgements}{5} \contentsline {chapter}{\numberline {2}The Overall Structure}{6} \contentsline {section}{\numberline {2.1}Files}{6} \contentsline {subsection}{\numberline {2.1.1}The Main Files}{7} \contentsline {subsection}{\numberline {2.1.2}Support Files}{8} \contentsline {section}{\numberline {2.2}The Main Routine}{9} \contentsline {subsection}{\numberline {2.2.1}Command-Line Arguments}{9} \contentsline {subsection}{\numberline {2.2.2}Macintosh Specific Code}{12} \contentsline {subsection}{\numberline {2.2.3}File Names}{14} \contentsline {section}{\numberline {2.3}Pass One}{16} \contentsline {subsection}{\numberline {2.3.1}Accumulating Definitions}{17} \contentsline {subsection}{\numberline {2.3.2}Fixing the Cross References}{18} \contentsline {section}{\numberline {2.4}Writing the Latex File}{18} \contentsline {subsection}{\numberline {2.4.1}Formatting Definitions}{20} \contentsline {subsubsection}{Formatting Cross References}{22} \contentsline {subsubsection}{Formatting a Scrap}{23} \contentsline {subsection}{\numberline {2.4.2}Generating the Indices}{25} \contentsline {section}{\numberline {2.5}Writing the Output Files}{29} \contentsline {chapter}{\numberline {3}The Support Routines}{32} \contentsline {section}{\numberline {3.1}Source Files}{32} \contentsline {subsection}{\numberline {3.1.1}Global Declarations}{32} \contentsline {subsection}{\numberline {3.1.2}Local Declarations}{32} \contentsline {subsection}{\numberline {3.1.3}Reading a File}{33} \contentsline {subsection}{\numberline {3.1.4}Opening a File}{35} \contentsline {section}{\numberline {3.2}Scraps}{36} \contentsline {subsection}{\numberline {3.2.1}Collecting Page Numbers}{45} \contentsline {section}{\numberline {3.3}Names}{46} \contentsline {section}{\numberline {3.4}Searching for Index Entries}{57} \contentsline {subsection}{\numberline {3.4.1}Building the Automata}{58} \contentsline {subsection}{\numberline {3.4.2}Searching the Scraps}{62} \contentsline {subsubsection}{Rejecting Matches}{62} \contentsline {section}{\numberline {3.5}Memory Management}{63} \contentsline {subsection}{\numberline {3.5.1}Allocating Memory}{64} \contentsline {subsection}{\numberline {3.5.2}Freeing Memory}{65} \contentsline {chapter}{\numberline {4}Indices}{66} \contentsline {section}{\numberline {4.1}Files}{66} \contentsline {section}{\numberline {4.2}Macros}{66} \contentsline {section}{\numberline {4.3}Identifiers}{68}