\contentsline {chapter}{\numberline {1}Introduction}{3} \contentsline {section}{\numberline {1.1}Nuweb}{3} \contentsline {section}{\numberline {1.2}Writing Nuweb}{4} \contentsline {subsection}{\numberline {1.2.1}The Major Commands}{4} \contentsline {subsubsection}{Scraps}{5} \contentsline {subsubsection}{Flags}{5} \contentsline {subsection}{\numberline {1.2.2}The Minor Commands}{5} \contentsline {section}{\numberline {1.3}Running Nuweb}{6} \contentsline {section}{\numberline {1.4}Restrictions and Extensions}{7} \contentsline {chapter}{\numberline {2}The Overall Structure}{8} \contentsline {section}{\numberline {2.1}Files}{8} \contentsline {subsection}{\numberline {2.1.1}The Main Files}{9} \contentsline {subsection}{\numberline {2.1.2}Support Files}{9} \contentsline {section}{\numberline {2.2}The Main Routine}{10} \contentsline {subsection}{\numberline {2.2.1}Command-Line Arguments}{10} \contentsline {subsection}{\numberline {2.2.2}File Names}{12} \contentsline {section}{\numberline {2.3}Pass One}{14} \contentsline {subsection}{\numberline {2.3.1}Accumulating Definitions}{15} \contentsline {subsection}{\numberline {2.3.2}Fixing the Cross References}{16} \contentsline {section}{\numberline {2.4}Writing the Latex File}{16} \contentsline {subsection}{\numberline {2.4.1}Formatting Definitions}{18} \contentsline {subsubsection}{Formatting Cross References}{20} \contentsline {subsubsection}{Formatting a Scrap}{22} \contentsline {subsection}{\numberline {2.4.2}Generating the Indices}{24} \contentsline {section}{\numberline {2.5}Writing the Output Files}{27} \contentsline {chapter}{\numberline {3}The Support Routines}{29} \contentsline {section}{\numberline {3.1}Source Files}{29} \contentsline {subsection}{\numberline {3.1.1}Global Declarations}{29} \contentsline {subsection}{\numberline {3.1.2}Local Declarations}{29} \contentsline {subsection}{\numberline {3.1.3}Reading a File}{30} \contentsline {subsection}{\numberline {3.1.4}Opening a File}{32} \contentsline {section}{\numberline {3.2}Scraps}{32} \contentsline {section}{\numberline {3.3}Names}{41} \contentsline {section}{\numberline {3.4}Searching for Index Entries}{51} \contentsline {subsection}{\numberline {3.4.1}Building the Automata}{53} \contentsline {subsection}{\numberline {3.4.2}Searching the Scraps}{56} \contentsline {section}{\numberline {3.5}Memory Management}{56} \contentsline {subsection}{\numberline {3.5.1}Allocating Memory}{57} \contentsline {subsection}{\numberline {3.5.2}Freeing Memory}{58} \contentsline {chapter}{\numberline {4}Indices}{59} \contentsline {section}{\numberline {4.1}Files}{59} \contentsline {section}{\numberline {4.2}Macros}{59} \contentsline {section}{\numberline {4.3}Identifiers}{61}