libcm is a C development framework with an emphasis on audio signal processing applications.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

cmTagFile.h 1.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #ifndef cmTagFile_h
  2. #define cmTagFile_h
  3. #ifdef __cplusplus
  4. extern "C" {
  5. #endif
  6. //( { file_desc:"Read a 'ctags' output file." kw:[file] }
  7. // Read a ctags file generated by:
  8. //
  9. // ctags --c-kinds=+p --fields=+n file.h
  10. //
  11. // --c-kinds=+px
  12. // p - turns on function prototype reporting.
  13. // x - turns on external and forward decl
  14. // --field=+n turns on line number reporting
  15. enum
  16. {
  17. kOkTfRC = cmOkRC,
  18. kFileFailTfRC,
  19. kLHeapFailTfRC,
  20. kSyntaxErrTfRC,
  21. kFileInvalidTfRC
  22. };
  23. typedef unsigned cmTfRC_t;
  24. typedef cmHandle_t cmTfH_t;
  25. extern cmTfH_t cmTfNullHandle;
  26. enum
  27. {
  28. kFuncProtoTfFl = 0x001,
  29. kFuncDefnTfFl = 0x002,
  30. kEnumTfFl = 0x004,
  31. kMacroTfFl = 0x008,
  32. kTypedefTfFl = 0x010,
  33. kFieldTfFl = 0x020,
  34. kExternTfFl = 0x040, // extern var's and forward declarations
  35. kStructTagTfFl = 0x080,
  36. kUnionTagTfFl = 0x100
  37. // be sure to add new flags to _cmTfFlagsToLabel()
  38. };
  39. typedef struct
  40. {
  41. unsigned flags;
  42. unsigned line;
  43. const cmChar_t* label;
  44. } cmTfTag_t;
  45. cmTfRC_t cmTfOpenFile( cmCtx_t* ctx, cmTfH_t* hp, const cmChar_t* fn );
  46. cmTfRC_t cmTfCloseFile( cmTfH_t* hp );
  47. bool cmTfIsValid( cmTfH_t h );
  48. unsigned cmTfCount( cmTfH_t h );
  49. const cmTfTag_t* cmTfRecd( cmTfH_t h, unsigned index );
  50. cmTfRC_t cmTfReport( cmTfH_t h, cmRpt_t* rpt );
  51. cmTfRC_t cmTfTest( cmCtx_t* ctx, const cmChar_t* fn );
  52. //)
  53. #ifdef __cplusplus
  54. }
  55. #endif
  56. #endif