text.m4 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. divert(-1)
  2. changecom()
  3. define(`M4NHEADER', `')
  4. define(`HEADING', `# $1')
  5. define(`NAME_TEXT', `THISNAME() - BRIEF()')
  6. define(`CHARACTER_CLASS', $1)
  7. define(`CONCEPT', $2)
  8. define(`CONCEPT_DEFINITION', $2)
  9. define(`FLAG', $1 -- $2)
  10. define(`__', $1)
  11. define(`THIS', THISNAME)
  12. define(`MATH', $1)
  13. define(`PI', pi)
  14. define(`POW', $1^$2)
  15. define(`SQRT', square root of $1)
  16. define(`FLOOR', floor($1))
  17. define(`CEIL', ceil($1))
  18. define(`ABS', |$1|)
  19. define(`VAR', 1)
  20. define(`ARGUMENT', $1)
  21. define(`CHAR', $1)
  22. define(`CAST', ($1)($2))
  23. define(`CONSTANT', $1)
  24. define(`COMMENT', /* $1 */)
  25. define(`DEFINITION', $1)
  26. define(`LITERAL', $1)
  27. define(`OPERATOR', $1)
  28. define(`FUNCTION', $1())
  29. define(`HEADER', <$1>)
  30. define(`LT', <)
  31. define(`GT', >)
  32. define(`IDENTIFIER', $1)
  33. define(`SPACE', space)
  34. define(`TYPE', $1)
  35. define(`TYPEDEF', $1)
  36. define(`STRUCTDEF', struct $1)
  37. define(`MEMBER', $1)
  38. ifelse(`THISTYPE', `function', `define(`DESC_INTRO', 1)')
  39. ifelse(`THISTYPE', `macro', `define(`DESC_INTRO', 1)')
  40. ifelse(`THISTYPE', `tgfunction', define(`DESC_INTRO', 1)define(`PRETTYTYPE', `family of functions'), define(`PRETTYTYPE', `THISTYPE()'))
  41. define(`PROTOTYPE', $1)
  42. ifdef(`VALUE_MIN', `define(`VALUE', `THIS() must be at least VALUE_MIN().')')
  43. ifdef(`VALUE_MAX', `define(`VALUE', `THIS() must be at most VALUE_MAX().')')
  44. ifdef(`VALUE_FIXED', `define(`VALUE', `THIS() is defined as VALUE_FIXED().')')
  45. define(`VALUE_SELECT', LITERAL($1) -- $2)
  46. ifdef(`VALUES', `
  47. define(`VALUE', `ifdef(`VALUES', `VALUES() popdef(`VALUES') VALUE()')')
  48. define(`VALUE_PRE', `THIS() may be defined with one of the following values with the indicated meaning:')
  49. ')
  50. define(`RETURN', $1 -- $2)
  51. define(`RETURN_SUCCESS', A successfull call returns $1.)
  52. define(`RETURN_FAILURE', `On failure, $1 is returned.')
  53. define(`RETURN_ALWAYS', `The THIS() PRETTYTYPE() returns $1.')
  54. define(`RETURN_0', `The THIS() function returns 0 on success, non-zero on failure.')
  55. ifdef(`RETURNS',
  56. `define(`RETURN_LIST')
  57. define(`RETURN_VALUE',
  58. ifdef(`RETURNS', `RETURNS()popdef(`RETURNS')ifdef(`RETURNS', `RETURNS()')')
  59. ')
  60. )
  61. define(`NOVALUE', `The THIS() PRETTYTYPE() does not return a value.')
  62. define(`NORETURN', `The THIS() PRETTYTYPE() does not return.')
  63. define(`NEGATIVE', a negative value)
  64. define(`POSITIVE', a positive value)
  65. define(`NONNEGATIVE', a non-negative value)
  66. define(`NONZERO', a non-zero value)
  67. define(`ZERO', 0)
  68. define(`NONNULL', a non-NULL pointer)
  69. define(`UNDEFINED', $1)
  70. define(`ASSERT_REPRESENTABLE', $1 is not representable as a $4 or the value $5)
  71. define(`ASSERT_NONZERO', ARGUMENT($1) is LITERAL(0))
  72. define(`ASSERT_NONNULL', ARGUMENT($1) is CONSTANT(NULL))
  73. define(`ASSERT_NOOVERLAP', ARGUMENT($1) and ARGUMENT($2) overlap)
  74. ifdef(`UNDEFINEDS', `
  75. define(`UNDEFINED_BEHAVIOR', `ifdef(`UNDEFINEDS', `UNDEFINEDS() popdef(`UNDEFINEDS') UNDEFINED_BEHAVIOR()')')
  76. ')
  77. define(`UNSPECIFIED', $1)
  78. ifdef(`UNSPECIFIEDS', `
  79. define(`UNSPECIFIED_BEHAVIOR', `ifdef(`UNSPECIFIEDS', `UNSPECIFIEDS() popdef(`UNSPECIFIEDS') UNSPECIFIED_BEHAVIOR()')')
  80. ')
  81. define(`IMPLEMENTATION', $1)
  82. ifdef(`IMPLEMENTATIONS', `
  83. define(`IMPLEMENTATION_DEFINED', `ifdef(`IMPLEMENTATIONS', `IMPLEMENTATIONS() popdef(`IMPLEMENTATIONS') IMPLEMENTATION_DEFINED()')')
  84. ')
  85. define(`LOCALE', "$1")