home *** CD-ROM | disk | FTP | other *** search
/ Boston 2 / boston-2.iso / DOS / PROGRAM / C / CFLOW / CFLOWX.H < prev    next >
Text File  |  1993-12-01  |  3KB  |  107 lines

  1. /*
  2. **   CFLOWX.H : header file for CFLOW.C and CFLOWX.C
  3. **
  4. **    Copyright (c) 1985 by:
  5. **
  6. **        Lawrence R. Steeger
  7. **        1009 North Jackson
  8. **        Milwaukee, Wisconsin 53202
  9. **        414-277-8149
  10. */
  11.  
  12. typedef    int (*PFI)();        /* pointer to function returning int    */
  13.  
  14. #define    TRUE    1
  15. #define    FALSE    0
  16.  
  17. #define    MAXBUF    513        /* maximum C source record buffer    */
  18. #define    MAXPATH    128        /* maximum MS-DOS 2 file name buffer    */
  19.  
  20. /*    CFLOWX record types                        */
  21.  
  22. #define    NOFUNC    0        /* non-function related output (must=0)    */
  23. #define    HDRSYST    1        /* -h system prefix            */
  24. #define    HDRPROJ    2        /* -h project prefix            */
  25. #define    WILDPTH 3        /* wildcard path name            */
  26. #define    WILDNME    4        /* wildcard specification        */
  27. #define    FILEPTH    5        /* C source file path name        */
  28. #define    FILENME    6        /* C source file name            */
  29. #define    FUNCNME    7        /* function name            */
  30. #define    FUNCDCL    8        /* function definition            */
  31. #define    FUNCARG    9        /* function definition argument        */
  32. #define    FUNCREF    10        /* function reference            */
  33. #define    MACNME    11        /* #define macro name            */
  34. #define    MACDCL    12        /* #define macro definition        */
  35. #define    MACEQU    13        /* #define macro equate            */
  36. #define    NESTERR    14        /* C source {...} nesting level error    */
  37.  
  38. #define    HIGHKEY (NESTERR+1)    /* highest valid cflowx record key + 1    */
  39.  
  40. #define    WILDNF    15        /* no files match wildcard        */
  41. #define    FILEERR    16        /* C source file name (open error)    */
  42.  
  43. static    char *types[] = {    /* CFLOWX record type names        */
  44.     "NOFUNC",
  45.     "HDRSYST",
  46.     "HDRPROJ",
  47.     "WILDPTH",
  48.     "WILDNME",
  49.     "FILEPTH",
  50.     "FILENME",
  51.     "FUNCNME",
  52.     "FUNCDCL",
  53.     "FUNCARG",
  54.     "FUNCREF",
  55.     "MACNME",
  56.     "MACDCL",
  57.     "MACEQU",
  58.     "NESTERR",
  59.     "WILDNF",
  60.     "FILEERR"
  61.     };
  62.  
  63. /*    CFLOWX record fields:
  64. **
  65. **    1.  record type
  66. **    2.  file name number
  67. **    3.  {...} nest or #include file level number
  68. **    4.  current line number
  69. **    5.  record data string
  70. */
  71.  
  72. #define    MAXFLDS    5            /* maximum CFLOWX record fields    */
  73.  
  74. #define    RS '\n'                /* CFLOWX record separator    */
  75. #define    US ','                /* CFLOWX unit separator    */
  76.  
  77. /*    build CFLOWX record format string                */
  78.  
  79. static    unsigned char *cxref(fields)
  80.     int fields;
  81.     {
  82.         static unsigned char cp[(MAXFLDS*3)+1];
  83.  
  84.         /*    build CFLOWX record format string        */
  85.  
  86.         sprintf(cp, "%s%c%s%c%s%c%s%c%s%c",
  87.             "%d", US,
  88.             "%d", US,
  89.             "%d", US,
  90.             "%d", US,
  91.             "%s", RS
  92.             );
  93.  
  94.         /*    truncate at requested number of fields        */
  95.  
  96.         if (fields > MAXFLDS)
  97.             abort("CXREF - %d > %d fields",
  98.                 fields,
  99.                 MAXFLDS);    /* too many fields !    */
  100.         else    cp[(fields*3)] = EOS;
  101.  
  102.         return (cp);        /* return format string pointer    */
  103.     }
  104.  
  105. /*    end of cflowx.h                            */
  106.  
  107. e