1 /*************************************** 2 $Header: /home/amb/CVS/cxref/src/cxref.h,v 1.30 1999-11-16 18:58:13 amb Exp $ 3 4 C Cross Referencing & Documentation tool. Version 1.5c. 5 6 Prototypes for general functions. 7 ******************/ /****************** 8 Written by Andrew M. Bishop 9 10 This file Copyright 1995,96,97,98,99 Andrew M. Bishop 11 It may be distributed under the GNU Public License, version 2, or 12 any higher version. See section COPYING of the GNU Public license 13 for conditions under which this file may be redistributed. 14 ***************************************/ 15 16 17 #ifndef CXREF_H 18 #define CXREF_H /*+ To stop multiple inclusions. +*/ 19 20 #include "datatype.h" 21 22 /* Definitions for variable / function / file types */ 23 24 #define LOCAL 1 /*+ Signifies a LOCAL function / variable / include file. +*/ 25 #define GLOBAL 2 /*+ Signifies a GLOBAL fuction / variable / include file. +*/ 26 #define EXTERNAL 4 /*+ Signifies an EXTERNAL variable. +*/ 27 #define EXTERN_H 8 /*+ Signifies an EXTERNAL variable seen in a header file. +*/ 28 #define EXTERN_F 16 /*+ Signifies an EXTERNAL variable seen in a function file. +*/ 29 #define INLINED 32 /*+ Signifies an INLINED function. +*/ 30 31 /* Definitions for -xref options */ 32 33 #define XREF_FILE 1 /*+ Signifies that file cross references are required. +*/ 34 #define XREF_FUNC 2 /*+ Signifies that function cross references are required. +*/ 35 #define XREF_VAR 4 /*+ Signifies that variable cross references are required. +*/ 36 #define XREF_TYPE 8 /*+ Signifies that type definition cross references are required. +*/ 37 #define XREF_ALL 15 /*+ Signifies that all the above cross references are required. +*/ 38 39 /* Definitions for -warn options */ 40 41 #define WARN_COMMENT 1 /*+ Signifies that warnings for commetns are required. +*/ 42 #define WARN_XREF 2 /*+ Signifies that warnings for cross references are required. +*/ 43 #define WARN_ALL 3 /*+ Signifies that all of the above warnings are required. +*/ 44 45 /* Definitions for -index options */ 46 47 #define INDEX_FILE 1 /*+ Signifies that an index of files is needed. +*/ 48 #define INDEX_FUNC 2 /*+ Signifies that an index of global functions is needed. +*/ 49 #define INDEX_VAR 3 /*+ Signifies that an index of global variables is needed. +*/ 50 #define INDEX_TYPE 4 /*+ Signifies that an index of type definitions is needed. +*/ 51 #define INDEX_ALL 15 /*+ Signifies that a complete index of all of the above is needed. +*/ 52 53 /* in cxref.c */ 54 55 char *CanonicaliseName(char *name); 56 57 /* In parse.l */ 58 59 void ResetLexer(void); 60 61 /* In parse.y */ 62 63 void ResetParser(void); 64 65 /* in file.c */ 66 67 File NewFile(char* name); 68 void DeleteFile(File file); 69 70 void SeenFileComment(char* comment); 71 72 /* in comment.c */ 73 74 void SeenComment(char* c,int flag); 75 char* GetCurrentComment(void); 76 void SetCurrentComment(char* comment); 77 char* SplitComment(char** original,char* name); 78 void DeleteComment(void); 79 80 /* in preproc.c */ 81 82 void SeenInclude(char *name); 83 void SeenIncludeComment(void); 84 char *SeenFileChange(char *name,int flag); 85 86 void SeenDefine(char* name); 87 void SeenDefineComment(void); 88 void SeenDefineValue(char* value); 89 void SeenDefineFunctionArg(char* name); 90 void SeenDefineFuncArgComment(void); 91 92 void ResetPreProcAnalyser(void); 93 void DeleteIncludeType(Include inc); 94 void DeleteDefineType(Define inc); 95 96 /* in type.c */ 97 98 void SeenTypedefName(char* name,int what_type); 99 int IsATypeName(char* name); 100 void SeenTypedef(char* name,char* type); 101 102 void SeenStructUnionStart(char* name); 103 void SeenStructUnionComp(char* name,int depth); 104 void SeenStructUnionEnd(void); 105 106 void ResetTypeAnalyser(void); 107 void DeleteTypedefType(Typedef type); 108 109 /* in var.c */ 110 111 void SeenVariableDefinition(char* name,char* type,int scope); 112 113 void UpScope(void); 114 void DownScope(void); 115 void SeenScopeVariable(char* name); 116 int IsAScopeVariable(char* name); 117 118 void ResetVariableAnalyser(void); 119 void DeleteVariableType(Variable var); 120 121 /* in func.c */ 122 123 void SeenFunctionProto(char* name,int in_a_function); 124 125 void SeenFunctionDeclaration(char* name,int scope); 126 void SeenFunctionDefinition(char* type); 127 void SeenFunctionArg(char* name,char* type); 128 129 void SeenFunctionCall(char* name); 130 void CheckFunctionVariableRef(char* name,int in_a_function); 131 132 int SeenFuncIntComment(char* comment); 133 134 void ResetFunctionAnalyser(void); 135 void DeleteFunctionType(Function func); 136 137 /* In slist.c */ 138 139 StringList NewStringList(void); 140 void AddToStringList(StringList sl,char* str,int alphalist,int uniqlist); 141 void DeleteStringList(StringList sl); 142 143 StringList2 NewStringList2(void); 144 void AddToStringList2(StringList2 sl,char* str1,char* str2,int alphalist,int uniqlist); 145 void DeleteStringList2(StringList2 sl); 146 147 /* In xref.c */ 148 149 void CrossReference(File file,int outputs); 150 void CreateAppendix(StringList files,StringList2 funcs,StringList2 vars,StringList2 types); 151 152 void CrossReferenceDelete(char *name); 153 154 /* In warn-raw.c */ 155 156 void WriteWarnRawFile(File file); 157 void WriteWarnRawAppendix(StringList files,StringList2 funcs,StringList2 vars,StringList2 types); 158 159 int CopyOrSkip(char *string,char *type,int *copy,int *skip); 160 161 /* In latex.c */ 162 163 void WriteLatexFile(File file); 164 void WriteLatexAppendix(StringList files,StringList2 funcs,StringList2 vars,StringList2 types); 165 166 void WriteLatexFileDelete(char *name); 167 168 /* In html.c */ 169 170 void WriteHTMLFile(File file); 171 void WriteHTMLAppendix(StringList files,StringList2 funcs,StringList2 vars,StringList2 types); 172 173 void WriteHTMLFileDelete(char *name); 174 175 /* In rtf.c */ 176 177 void WriteRTFFile(File file); 178 void WriteRTFAppendix(StringList files,StringList2 funcs,StringList2 vars,StringList2 types); 179 180 void WriteRTFFileDelete(char *name); 181 182 /* In sgml.c */ 183 184 void WriteSGMLFile(File file); 185 void WriteSGMLAppendix(StringList files,StringList2 funcs,StringList2 vars,StringList2 types); 186 187 void WriteSGMLFileDelete(char *name); 188 189 190 /* Not defined on Suns */ 191 192 #if defined(__sun__) && !defined(__svr4__) 193 #include <stdio.h> 194 195 int fputs(const char *s, FILE *stream); 196 int fprintf(FILE*, const char*,...); 197 int pclose( FILE *stream); 198 int fscanf( FILE *stream, const char *format, ...); 199 int fclose(FILE*); 200 int rename(const char *oldpath, const char *newpath); 201 int printf(const char*,...); 202 int fwrite(const void*,unsigned int,unsigned int, FILE*); 203 int fread(void*,unsigned int,unsigned int, FILE*); 204 int isatty(int desc); 205 int fflush( FILE *stream); 206 #endif /* Suns */ 207 208 #endif /* CXREF_H */ 209