Ascii.cpp 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156
  1. //
  2. // Ascii.cpp
  3. //
  4. // $Id: //poco/1.4/Foundation/src/Ascii.cpp#1 $
  5. //
  6. // Library: Foundation
  7. // Package: Core
  8. // Module: Ascii
  9. //
  10. // Copyright (c) 2010, Applied Informatics Software Engineering GmbH.
  11. // and Contributors.
  12. //
  13. // SPDX-License-Identifier: BSL-1.0
  14. //
  15. #include "Poco/Ascii.h"
  16. namespace Poco {
  17. const int Ascii::CHARACTER_PROPERTIES[128] =
  18. {
  19. /* 00 . */ ACP_CONTROL,
  20. /* 01 . */ ACP_CONTROL,
  21. /* 02 . */ ACP_CONTROL,
  22. /* 03 . */ ACP_CONTROL,
  23. /* 04 . */ ACP_CONTROL,
  24. /* 05 . */ ACP_CONTROL,
  25. /* 06 . */ ACP_CONTROL,
  26. /* 07 . */ ACP_CONTROL,
  27. /* 08 . */ ACP_CONTROL,
  28. /* 09 . */ ACP_CONTROL | ACP_SPACE,
  29. /* 0a . */ ACP_CONTROL | ACP_SPACE,
  30. /* 0b . */ ACP_CONTROL | ACP_SPACE,
  31. /* 0c . */ ACP_CONTROL | ACP_SPACE,
  32. /* 0d . */ ACP_CONTROL | ACP_SPACE,
  33. /* 0e . */ ACP_CONTROL,
  34. /* 0f . */ ACP_CONTROL,
  35. /* 10 . */ ACP_CONTROL,
  36. /* 11 . */ ACP_CONTROL,
  37. /* 12 . */ ACP_CONTROL,
  38. /* 13 . */ ACP_CONTROL,
  39. /* 14 . */ ACP_CONTROL,
  40. /* 15 . */ ACP_CONTROL,
  41. /* 16 . */ ACP_CONTROL,
  42. /* 17 . */ ACP_CONTROL,
  43. /* 18 . */ ACP_CONTROL,
  44. /* 19 . */ ACP_CONTROL,
  45. /* 1a . */ ACP_CONTROL,
  46. /* 1b . */ ACP_CONTROL,
  47. /* 1c . */ ACP_CONTROL,
  48. /* 1d . */ ACP_CONTROL,
  49. /* 1e . */ ACP_CONTROL,
  50. /* 1f . */ ACP_CONTROL,
  51. /* 20 */ ACP_SPACE | ACP_PRINT,
  52. /* 21 ! */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  53. /* 22 " */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  54. /* 23 # */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  55. /* 24 $ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  56. /* 25 % */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  57. /* 26 & */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  58. /* 27 ' */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  59. /* 28 ( */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  60. /* 29 ) */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  61. /* 2a * */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  62. /* 2b + */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  63. /* 2c , */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  64. /* 2d - */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  65. /* 2e . */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  66. /* 2f / */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  67. /* 30 0 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT,
  68. /* 31 1 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT,
  69. /* 32 2 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT,
  70. /* 33 3 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT,
  71. /* 34 4 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT,
  72. /* 35 5 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT,
  73. /* 36 6 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT,
  74. /* 37 7 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT,
  75. /* 38 8 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT,
  76. /* 39 9 */ ACP_DIGIT | ACP_HEXDIGIT | ACP_GRAPH | ACP_PRINT,
  77. /* 3a : */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  78. /* 3b ; */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  79. /* 3c < */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  80. /* 3d = */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  81. /* 3e > */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  82. /* 3f ? */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  83. /* 40 @ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  84. /* 41 A */ ACP_HEXDIGIT | ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  85. /* 42 B */ ACP_HEXDIGIT | ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  86. /* 43 C */ ACP_HEXDIGIT | ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  87. /* 44 D */ ACP_HEXDIGIT | ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  88. /* 45 E */ ACP_HEXDIGIT | ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  89. /* 46 F */ ACP_HEXDIGIT | ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  90. /* 47 G */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  91. /* 48 H */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  92. /* 49 I */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  93. /* 4a J */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  94. /* 4b K */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  95. /* 4c L */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  96. /* 4d M */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  97. /* 4e N */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  98. /* 4f O */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  99. /* 50 P */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  100. /* 51 Q */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  101. /* 52 R */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  102. /* 53 S */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  103. /* 54 T */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  104. /* 55 U */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  105. /* 56 V */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  106. /* 57 W */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  107. /* 58 X */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  108. /* 59 Y */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  109. /* 5a Z */ ACP_ALPHA | ACP_UPPER | ACP_GRAPH | ACP_PRINT,
  110. /* 5b [ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  111. /* 5c \ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  112. /* 5d ] */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  113. /* 5e ^ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  114. /* 5f _ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  115. /* 60 ` */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  116. /* 61 a */ ACP_HEXDIGIT | ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  117. /* 62 b */ ACP_HEXDIGIT | ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  118. /* 63 c */ ACP_HEXDIGIT | ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  119. /* 64 d */ ACP_HEXDIGIT | ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  120. /* 65 e */ ACP_HEXDIGIT | ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  121. /* 66 f */ ACP_HEXDIGIT | ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  122. /* 67 g */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  123. /* 68 h */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  124. /* 69 i */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  125. /* 6a j */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  126. /* 6b k */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  127. /* 6c l */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  128. /* 6d m */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  129. /* 6e n */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  130. /* 6f o */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  131. /* 70 p */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  132. /* 71 q */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  133. /* 72 r */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  134. /* 73 s */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  135. /* 74 t */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  136. /* 75 u */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  137. /* 76 v */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  138. /* 77 w */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  139. /* 78 x */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  140. /* 79 y */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  141. /* 7a z */ ACP_ALPHA | ACP_LOWER | ACP_GRAPH | ACP_PRINT,
  142. /* 7b { */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  143. /* 7c | */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  144. /* 7d } */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  145. /* 7e ~ */ ACP_PUNCT | ACP_GRAPH | ACP_PRINT,
  146. /* 7f . */ ACP_CONTROL
  147. };
  148. } // namespace Poco