    1    | /***************************************
    2    |   $Header: /home/amb/cxref/RCS/cxref.h 1.27 1999/01/24 16:53:48 amb Exp $
    3    |
    4    |   C Cross Referencing & Documentation tool. Version 1.5.
    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);
    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   | void 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);
    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 */