% This LaTeX file generated by cxref
% cxref program (c) Andrew M. Bishop 1995,96,97.

\markboth{File datatype.h}{File datatype.h}
\section{File datatype.h}
\label{file_datatype.h}

{\bf RCS Header: /home/amb/cxref/RCS/datatype.h 1.14 1999/01/24 16:53:48 amb Exp }

\smallskip

  C Cross Referencing \& Documentation tool. Version 1.5.

  Definition of the different variables types that are used.

\medskip
\begin{cxreftabii}
Included in:\ & comment.c & \cxreffile{comment.c}\\
\ & cxref.c & \cxreffile{cxref.c}\\
\ & cxref.h & \cxreffile{cxref.h}\\
\ & file.c & \cxreffile{file.c}\\
\cxreftabbreak{cxreftabii}
\ & func.c & \cxreffile{func.c}\\
\ & html.c & \cxreffile{html.c}\\
\ & latex.c & \cxreffile{latex.c}\\
\ & preproc.c & \cxreffile{preproc.c}\\
\ & rtf.c & \cxreffile{rtf.c}\\
\ & sgml.c & \cxreffile{sgml.c}\\
\ & slist.c & \cxreffile{slist.c}\\
\cxreftabbreak{cxreftabii}
\ & type.c & \cxreffile{type.c}\\
\ & var.c & \cxreffile{var.c}\\
\ & warn-raw.c & \cxreffile{warn-raw.c}\\
\ & xref.c & \cxreffile{xref.c}\\
\end{cxreftabii}


\subsection*{Preprocessor definitions}

 To stop multiple inclusions. 

\smallskip
{\stt \#define DATA\_TYPE\_H}

\medskip
  A function to add a pointer to the end of a linked list.

\smallskip
{\stt \#define AddToLinkedList( dst, type, src )}

\smallskip
\begin{cxrefarglist}
\cxrefargitem{dst} The destination, where the pointer is to be added to.
\cxrefargitem{type} The type of the pointer.
\cxrefargitem{src} The pointer that is to be added to the end of the linked list.
\end{cxrefarglist}


\subsection{Type definitions}


\subsubsection{Typedef File}
\label{type_File_datatype.h}

 A pointer type to file information. 

\smallskip
{\stt typedef struct \_File* File}

\smallskip
\begin{cxreftabii}
See:& Type struct \_File & \cxreftype{struct__File}{datatype.h}\\
\end{cxreftabii}


\subsubsection{Typedef Include}
\label{type_Include_datatype.h}

 A pointer type to \#include information. 

\smallskip
{\stt typedef struct \_Include* Include}

\smallskip
\begin{cxreftabii}
See:& Type struct \_Include & \cxreftype{struct__Include}{datatype.h}\\
\end{cxreftabii}


\subsubsection{Typedef Define}
\label{type_Define_datatype.h}

 A pointer type to \#define information. 

\smallskip
{\stt typedef struct \_Define* Define}

\smallskip
\begin{cxreftabii}
See:& Type struct \_Define & \cxreftype{struct__Define}{datatype.h}\\
\end{cxreftabii}


\subsubsection{Typedef Typedef}
\label{type_Typedef_datatype.h}

 A pointer type to typedef information. 

\smallskip
{\stt typedef struct \_Typedef* Typedef}

\smallskip
\begin{cxreftabii}
See:& Type struct \_Typedef & \cxreftype{struct__Typedef}{datatype.h}\\
\end{cxreftabii}


\subsubsection{Typedef Variable}
\label{type_Variable_datatype.h}

 A pointer type to variable information. 

\smallskip
{\stt typedef struct \_Variable* Variable}

\smallskip
\begin{cxreftabii}
See:& Type struct \_Variable & \cxreftype{struct__Variable}{datatype.h}\\
\end{cxreftabii}


\subsubsection{Typedef Function}
\label{type_Function_datatype.h}

 A pointer type to function information. 

\smallskip
{\stt typedef struct \_Function* Function}

\smallskip
\begin{cxreftabii}
See:& Type struct \_Function & \cxreftype{struct__Function}{datatype.h}\\
\end{cxreftabii}


\subsubsection{Typedef StructUnion}
\label{type_StructUnion_datatype.h}

 A pointer type to struct and union information. 

\smallskip
{\stt typedef struct \_StructUnion* StructUnion}

\smallskip
\begin{cxreftabii}
See:& Type struct \_StructUnion & \cxreftype{struct__StructUnion}{datatype.h}\\
\end{cxreftabii}


\subsubsection{Typedef StringList}
\label{type_StringList_datatype.h}

 A data structure to contain lists of strings, eg functions that are called. 

\smallskip
{\stt typedef struct \_StringList* StringList}

\smallskip
\begin{cxreftabiia}
\hspace*{0.0in}{\stt struct \_StringList} &\\
\hspace*{0.1in}{\stt \{} &\\
\hspace*{0.2in}{\stt int n;} &  The number of strings in the list.  \\
\hspace*{0.2in}{\stt char** s;} &  The strings.  \\
\hspace*{0.1in}{\stt \}} &\\
\end{cxreftabiia}


\subsubsection{Typedef StringList2}
\label{type_StringList2_datatype.h}

 A data structure to contain two lists of strings, eg arguments and comments. 

\smallskip
{\stt typedef struct \_StringList2* StringList2}

\smallskip
\begin{cxreftabiia}
\hspace*{0.0in}{\stt struct \_StringList2} &\\
\hspace*{0.1in}{\stt \{} &\\
\hspace*{0.2in}{\stt int n;} &  The number of strings in the list.  \\
\hspace*{0.2in}{\stt char** s1;} &  The first set of strings.  \\
\hspace*{0.2in}{\stt char** s2;} &  The second set of strings.  \\
\hspace*{0.1in}{\stt \}} &\\
\end{cxreftabiia}


\subsubsection{Type struct \_File}
\label{type_struct__File_datatype.h}

 A data structure to contain a complete file worth of information. 

\smallskip
\smallskip
\begin{cxreftabiia}
\hspace*{0.0in}{\stt struct \_File} &\\
\hspace*{0.1in}{\stt \{} &\\
\hspace*{0.2in}{\stt char* comment;} &  The file comment.  \\
\hspace*{0.2in}{\stt char* name;} &  The name of the file.  \\
\hspace*{0.2in}{\stt Include includes;} &  A linked list of include files.  \\
\cxreftabbreak{cxreftabiia}
\hspace*{0.2in}{\stt Define defines;} &  A linked list of \#defines.  \\
\hspace*{0.2in}{\stt Typedef typedefs;} &  A linked list of type definitions.  \\
\hspace*{0.2in}{\stt Variable variables;} &  A linked list of variable definitions.  \\
\hspace*{0.2in}{\stt Function functions;} &  A linked list of function prototypes.  \\
\hspace*{0.2in}{\stt StringList inc\_in;} &  The files that this file is included in.  \\
\hspace*{0.2in}{\stt StringList2 f\_refs;} &  The functions that are referenced.  \\
\hspace*{0.2in}{\stt StringList2 v\_refs;} &  The variables that are referenced.  \\
\hspace*{0.1in}{\stt \}} &\\
\end{cxreftabiia}


\subsubsection{Type struct \_Include}
\label{type_struct__Include_datatype.h}

 A data structure to contain information about a \#include. 

\smallskip
\smallskip
\begin{cxreftabiia}
\hspace*{0.0in}{\stt struct \_Include} &\\
\hspace*{0.1in}{\stt \{} &\\
\hspace*{0.2in}{\stt char* comment;} &  The comment for the include file.  \\
\hspace*{0.2in}{\stt char* name;} &  The name of the included file.  \\
\hspace*{0.2in}{\stt int scope;} &  The type of file, LOCAL or GLOBAL.  \\
\cxreftabbreak{cxreftabiia}
\hspace*{0.2in}{\stt Include includes;} &  The files that are include by this file.  \\
\hspace*{0.2in}{\stt Include next;} &  A pointer to the next item.  \\
\hspace*{0.1in}{\stt \}} &\\
\end{cxreftabiia}


\subsubsection{Type struct \_Define}
\label{type_struct__Define_datatype.h}

 A data structure to contain information about a \#define. 

\smallskip
\smallskip
\begin{cxreftabiia}
\hspace*{0.0in}{\stt struct \_Define} &\\
\hspace*{0.1in}{\stt \{} &\\
\hspace*{0.2in}{\stt char* comment;} &  The comment for the \#define.  \\
\hspace*{0.2in}{\stt char* name;} &  The name that is defined.  \\
\hspace*{0.2in}{\stt char* value;} &  The value that is defined (if simple).  \\
\cxreftabbreak{cxreftabiia}
\hspace*{0.2in}{\stt StringList2 args;} &  The arguments to the \#define function.  \\
\hspace*{0.2in}{\stt int lineno;} &  The line number that this definition appears on.  \\
\hspace*{0.2in}{\stt Define next;} &  A pointer to the next item.  \\
\hspace*{0.1in}{\stt \}} &\\
\end{cxreftabiia}


\subsubsection{Type struct \_Typedef}
\label{type_struct__Typedef_datatype.h}

 A data structure to contain the information for a typedef. 

\smallskip
\smallskip
\begin{cxreftabiia}
\hspace*{0.0in}{\stt struct \_Typedef} &\\
\hspace*{0.1in}{\stt \{} &\\
\hspace*{0.2in}{\stt char* comment;} &  The comment for the type definition.  \\
\hspace*{0.2in}{\stt char* name;} &  The name of the defined type.  \\
\hspace*{0.2in}{\stt char* type;} &  The type of the definition.  \\
\cxreftabbreak{cxreftabiia}
\hspace*{0.2in}{\stt StructUnion sutype;} &  The type of the definition if it is a locally declared struct / union.  \\
\hspace*{0.2in}{\stt Typedef typexref;} &  The type of the definition if it is not locally declared or a repeat definition.  \\
\hspace*{0.2in}{\stt int lineno;} &  The line number that this type definition appears on.  \\
\hspace*{0.2in}{\stt Typedef next;} &  A pointer to the next item.  \\
\hspace*{0.1in}{\stt \}} &\\
\end{cxreftabiia}


\subsubsection{Type struct \_Variable}
\label{type_struct__Variable_datatype.h}

 A data structure to contain the information for a variable. 

\smallskip
\smallskip
\begin{cxreftabiia}
\hspace*{0.0in}{\stt struct \_Variable} &\\
\hspace*{0.1in}{\stt \{} &\\
\hspace*{0.2in}{\stt char* comment;} &  The comment for the variable.  \\
\hspace*{0.2in}{\stt char* name;} &  The name of the variable.  \\
\hspace*{0.2in}{\stt char* type;} &  The type of the variable.  \\
\cxreftabbreak{cxreftabiia}
\hspace*{0.2in}{\stt int scope;} &  The scope of the variable, STATIC, GLOBAL or EXTERNAL  \\
\hspace*{0.2in}{\stt char* defined;} &  The name of the file that the variable is defined in as global if extern here.  \\
\hspace*{0.2in}{\stt char* incfrom;} &  The name of the file that the variable is included from if any.  \\
\hspace*{0.2in}{\stt StringList2 visible;} &  The names of the files that the variable is visible in.  \\
\hspace*{0.2in}{\stt StringList2 used;} &  The names of the files that the variable is used in.  \\
\hspace*{0.2in}{\stt int lineno;} &  The line number that this variable definition appears on.  \\
\hspace*{0.2in}{\stt Variable next;} &  A pointer to the next item.  \\
\hspace*{0.1in}{\stt \}} &\\
\end{cxreftabiia}


\subsubsection{Type struct \_Function}
\label{type_struct__Function_datatype.h}

 A data structure to contain information for a function definition. 

\smallskip
\smallskip
\begin{cxreftabiia}
\hspace*{0.0in}{\stt struct \_Function} &\\
\hspace*{0.1in}{\stt \{} &\\
\hspace*{0.2in}{\stt char* comment;} &  The comment for the function.  \\
\hspace*{0.2in}{\stt char* name;} &  The name of the function.  \\
\hspace*{0.2in}{\stt char* type;} &  The return type of the function.  \\
\cxreftabbreak{cxreftabiia}
\hspace*{0.2in}{\stt char* cret;} &  A comment for the returned value.  \\
\hspace*{0.2in}{\stt char* protofile;} &  The name of the file where the function is prototyped  \\
\hspace*{0.2in}{\stt char* incfrom;} &  The name of the file that the function is included from if any.  \\
\hspace*{0.2in}{\stt StringList2 args;} &  The arguments to the function.  \\
\hspace*{0.2in}{\stt int scope;} &  The scope of the function, LOCAL or GLOBAL.  \\
\hspace*{0.2in}{\stt StringList protos;} &  The functions that are prototyped within this function.  \\
\hspace*{0.2in}{\stt StringList2 calls;} &  The functions that are called from this function.  \\
\hspace*{0.2in}{\stt StringList2 called;} &  The names of the functions that call this one.  \\
\cxreftabbreak{cxreftabiia}
\hspace*{0.2in}{\stt StringList2 used;} &  The places that the function is used, (references not direct calls).  \\
\hspace*{0.2in}{\stt StringList2 v\_refs;} &  The variables that are referenced from this function.  \\
\hspace*{0.2in}{\stt StringList2 f\_refs;} &  The functions that are referenced from this function.  \\
\hspace*{0.2in}{\stt int lineno;} &  The line number that this function definition appears on.  \\
\hspace*{0.2in}{\stt Function next;} &  A pointer to the next item.  \\
\hspace*{0.1in}{\stt \}} &\\
\end{cxreftabiia}


\subsubsection{Type struct \_StructUnion}
\label{type_struct__StructUnion_datatype.h}

 A data structure to contain a structure definition to allow structures to be matched to their typedefs (if any). 

\smallskip
\smallskip
\begin{cxreftabiia}
\hspace*{0.0in}{\stt struct \_StructUnion} &\\
\hspace*{0.1in}{\stt \{} &\\
\hspace*{0.2in}{\stt char* comment;} &  The comment for the struct or union or simple component.  \\
\hspace*{0.2in}{\stt char* name;} &  The name of the struct or union or simple component.  \\
\hspace*{0.2in}{\stt int n\_comp;} &  The number of sub-components (if none then it is simple).  \\
\cxreftabbreak{cxreftabiia}
\hspace*{0.2in}{\stt StructUnion* comps;} &  The sub-components.  \\
\hspace*{0.1in}{\stt \}} &\\
\end{cxreftabiia}

