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.

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