\contentsline {section}{\numberline {1}Introduction}{3}
\contentsline {section}{\numberline {2}Installation and Getting Started}{4}
\contentsline {subsection}{\numberline {2.1}Installation}{4}
\contentsline {subsection}{\numberline {2.2}Getting Started}{4}
\contentsline {subsection}{\numberline {2.3}Conventions used in the Manual}{5}
\contentsline {section}{\numberline {3}Basic Services}{6}
\contentsline {subsection}{\numberline {3.1}Miscellaneous Stuff}{6}
\contentsline {subsubsection}{\numberline {3.1.1}Usage Information}{6}
\contentsline {subsubsection}{\numberline {3.1.2}The \texttt {NULL} Pointer}{6}
\contentsline {subsubsection}{\numberline {3.1.3}Booleans}{6}
\contentsline {subsubsection}{\numberline {3.1.4}Generic Integer Types}{7}
\contentsline {subsubsection}{\numberline {3.1.5}Simple Macros}{7}
\contentsline {subsection}{\numberline {3.2}Errors and Runtime Information}{7}
\contentsline {subsubsection}{\numberline {3.2.1}Usage Information}{8}
\contentsline {subsubsection}{\numberline {3.2.2}Errors}{8}
\contentsline {subsubsection}{\numberline {3.2.3}Example}{9}
\contentsline {subsection}{\numberline {3.3}Memory Management}{10}
\contentsline {subsubsection}{\numberline {3.3.1}Usage Information}{10}
\contentsline {subsubsection}{\numberline {3.3.2}Allocating and Freeing Memory Blocks}{10}
\contentsline {subsubsection}{\numberline {3.3.3}Debugging Memory Leaks}{11}
\contentsline {subsection}{\numberline {3.4}Dynamic Strings}{12}
\contentsline {subsubsection}{\numberline {3.4.1}Usage Information}{12}
\contentsline {subsubsection}{\numberline {3.4.2}Allocation and Handling of Strings}{12}
\contentsline {subsubsection}{\numberline {3.4.3}String Sharing}{14}
\contentsline {subsection}{\numberline {3.5}Tree-Based Data Structures}{14}
\contentsline {subsection}{\numberline {3.6}Stacks}{14}
\contentsline {section}{\numberline {4}Input and Output}{15}
\contentsline {subsection}{\numberline {4.1}Processing Input}{15}
\contentsline {subsection}{\numberline {4.2}Usage Information}{15}
\contentsline {subsubsection}{\numberline {4.2.1}The Scanner Object}{15}
\contentsline {subsubsection}{\numberline {4.2.2}Handling Tokens}{16}
\contentsline {subsection}{\numberline {4.3}Command Line Parsing}{17}
\contentsline {subsubsection}{\numberline {4.3.1}Usage Information}{18}
\contentsline {subsubsection}{\numberline {4.3.2}Specifying Options}{18}
\contentsline {subsubsection}{\numberline {4.3.3}Processing Options}{19}
\contentsline {subsubsection}{\numberline {4.3.4}Example}{20}
\contentsline {subsubsection}{\numberline {4.3.5}But I want to have more than one argument to an option!}{22}
\contentsline {section}{\numberline {5}Terms and Related Data Structures}{23}
\contentsline {subsection}{\numberline {5.1}Function Symbols and Variables}{23}
\contentsline {subsubsection}{\numberline {5.1.1}Usage Information}{23}
\contentsline {subsubsection}{\numberline {5.1.2}Signatures}{23}
\contentsline {subsubsection}{\numberline {5.1.3}Variable Banks}{24}
\contentsline {subsection}{\numberline {5.2}Unshared Terms}{25}
\contentsline {subsubsection}{\numberline {5.2.1}Usage Information}{25}
\contentsline {subsubsection}{\numberline {5.2.2}The \texttt {TermCell} Data Type}{26}
\contentsline {subsubsection}{\numberline {5.2.3}Term Properties}{27}
\contentsline {subsection}{\numberline {5.3}Term Banks}{28}
