home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / perl560.zip / t / lib / h2ph.h < prev    next >
Text File  |  1999-07-20  |  2KB  |  86 lines

  1. /* 
  2.  * Test header file for h2ph
  3.  * 
  4.  * Try to test as many constructs as possible
  5.  * For example, the multi-line comment :)
  6.  */
  7.  
  8. /* And here's a single line comment :) */
  9.  
  10. /* Test #define with no indenting, over multiple lines */
  11. #define SQUARE(x) \
  12. ((x)*(x))
  13.  
  14. /* Test #ifndef and parameter interpretation*/
  15. #ifndef ERROR
  16. #define ERROR(x) fprintf(stderr, "%s\n", x[2][3][0])
  17. #endif /* ERROR */
  18.  
  19. #ifndef _H2PH_H_
  20. #define _H2PH_H_
  21.  
  22. /* #ident - doesn't really do anything, but I think it always gets included anyway */
  23. #ident "$Revision h2ph.h,v 1.0 98/05/04 20:42:14 billy $"
  24.  
  25. /* Test #undef */
  26. #undef MAX
  27. #define MAX(a,b) ((a) > (b) ? (a) : (b))
  28.  
  29. /* Test #ifdef */
  30. #ifdef __SOME_UNIMPORTANT_PROPERTY
  31. #define MIN(a,b) ((a) < (b) ? (a) : (b))
  32. #endif /* __SOME_UNIMPORTANT_PROPERTY */
  33.  
  34. /* 
  35.  * Test #if, #elif, #else, #endif, #warn and #error, and `!'
  36.  * Also test whitespace between the `#' and the command
  37.  */
  38. #if !(defined __SOMETHING_MORE_IMPORTANT)
  39. #    warn Be careful...
  40. #elif !(defined __SOMETHING_REALLY_REALLY_IMPORTANT)
  41. #    error Nup, can't go on /* ' /* stupid font-lock-mode */
  42. #else /* defined __SOMETHING_MORE_IMPORTANT && defined __SOMETHING_REALLY_REALLY_IMPORTANT */
  43. #    define EVERYTHING_IS_OK
  44. #endif
  45.  
  46. /* Test && and || */
  47. #undef WHATEVER
  48. #if (!((defined __SOMETHING_TRIVIAL && defined __SOMETHING_LESS_SO)) \
  49.      || defined __SOMETHING_OVERPOWERING)
  50. #    define WHATEVER 6
  51. #elif !(defined __SOMETHING_TRIVIAL) /* defined __SOMETHING_LESS_SO */
  52. #    define WHATEVER 7
  53. #elif !(defined __SOMETHING_LESS_SO) /* defined __SOMETHING_TRIVIAL */
  54. #    define WHATEVER 8
  55. #else /* defined __SOMETHING_TRIVIAL && defined __SOMETHING_LESS_SO */
  56. #    define WHATEVER 1000
  57. #endif
  58.  
  59. /* 
  60.  * Test #include, #import and #include_next
  61.  * #include_next is difficult to test, it really depends on the actual
  62.  *  circumstances - for example, `#include_next <limits.h>' on a Linux system
  63.  *  with `use lib qw(/opt/perl5/lib/site_perl/i586-linux/linux);' or whatever
  64.  *  your equivalent is...
  65.  */
  66. #include <sys/socket.h>
  67. #import "sys/ioctl.h"
  68. #include_next <sys/fcntl.h>
  69.  
  70. /* typedefs should be ignored */
  71. typedef struct a_struct {
  72.   int typedefs_should;
  73.   char be_ignored;
  74.   long as_well;
  75. } a_typedef;
  76.  
  77. /* 
  78.  * however, typedefs of enums and just plain enums should end up being treated
  79.  * like a bunch of #defines...
  80.  */
  81.  
  82. typedef enum _days_of_week { sun, mon, tue, wed, thu, fri, sat, Sun=0, Mon,
  83.                  Tue, Wed, Thu, Fri, Sat } days_of_week;
  84.  
  85. #endif /* _H2PH_H_ */
  86.