yarp 0.12.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +29 -8
  3. data/CONTRIBUTING.md +2 -2
  4. data/Makefile +5 -5
  5. data/README.md +11 -12
  6. data/config.yml +6 -2
  7. data/docs/build_system.md +21 -21
  8. data/docs/building.md +4 -4
  9. data/docs/configuration.md +25 -21
  10. data/docs/design.md +2 -2
  11. data/docs/encoding.md +17 -17
  12. data/docs/fuzzing.md +4 -4
  13. data/docs/heredocs.md +3 -3
  14. data/docs/mapping.md +94 -94
  15. data/docs/ripper.md +4 -4
  16. data/docs/ruby_api.md +11 -11
  17. data/docs/serialization.md +17 -16
  18. data/docs/testing.md +6 -6
  19. data/ext/prism/api_node.c +4725 -0
  20. data/ext/{yarp → prism}/api_pack.c +82 -82
  21. data/ext/{yarp → prism}/extconf.rb +13 -13
  22. data/ext/{yarp → prism}/extension.c +175 -168
  23. data/ext/prism/extension.h +18 -0
  24. data/include/prism/ast.h +1932 -0
  25. data/include/prism/defines.h +45 -0
  26. data/include/prism/diagnostic.h +231 -0
  27. data/include/{yarp/enc/yp_encoding.h → prism/enc/pm_encoding.h} +40 -40
  28. data/include/prism/node.h +41 -0
  29. data/include/prism/pack.h +141 -0
  30. data/include/{yarp → prism}/parser.h +143 -142
  31. data/include/prism/regexp.h +19 -0
  32. data/include/prism/unescape.h +48 -0
  33. data/include/prism/util/pm_buffer.h +51 -0
  34. data/include/{yarp/util/yp_char.h → prism/util/pm_char.h} +20 -20
  35. data/include/{yarp/util/yp_constant_pool.h → prism/util/pm_constant_pool.h} +26 -22
  36. data/include/{yarp/util/yp_list.h → prism/util/pm_list.h} +21 -21
  37. data/include/prism/util/pm_memchr.h +14 -0
  38. data/include/{yarp/util/yp_newline_list.h → prism/util/pm_newline_list.h} +11 -11
  39. data/include/prism/util/pm_state_stack.h +24 -0
  40. data/include/{yarp/util/yp_string.h → prism/util/pm_string.h} +20 -20
  41. data/include/prism/util/pm_string_list.h +25 -0
  42. data/include/{yarp/util/yp_strpbrk.h → prism/util/pm_strpbrk.h} +7 -7
  43. data/include/prism/version.h +4 -0
  44. data/include/prism.h +82 -0
  45. data/lib/prism/compiler.rb +465 -0
  46. data/lib/prism/debug.rb +157 -0
  47. data/lib/{yarp/desugar_visitor.rb → prism/desugar_compiler.rb} +4 -2
  48. data/lib/prism/dispatcher.rb +2051 -0
  49. data/lib/prism/dsl.rb +750 -0
  50. data/lib/{yarp → prism}/ffi.rb +66 -67
  51. data/lib/{yarp → prism}/lex_compat.rb +40 -43
  52. data/lib/{yarp/mutation_visitor.rb → prism/mutation_compiler.rb} +3 -3
  53. data/lib/{yarp → prism}/node.rb +2012 -2593
  54. data/lib/prism/node_ext.rb +55 -0
  55. data/lib/prism/node_inspector.rb +68 -0
  56. data/lib/{yarp → prism}/pack.rb +1 -1
  57. data/lib/{yarp → prism}/parse_result/comments.rb +1 -1
  58. data/lib/{yarp → prism}/parse_result/newlines.rb +1 -1
  59. data/lib/prism/parse_result.rb +266 -0
  60. data/lib/{yarp → prism}/pattern.rb +14 -14
  61. data/lib/{yarp → prism}/ripper_compat.rb +5 -5
  62. data/lib/{yarp → prism}/serialize.rb +12 -7
  63. data/lib/prism/visitor.rb +470 -0
  64. data/lib/prism.rb +64 -0
  65. data/lib/yarp.rb +2 -614
  66. data/src/diagnostic.c +213 -208
  67. data/src/enc/pm_big5.c +52 -0
  68. data/src/enc/pm_euc_jp.c +58 -0
  69. data/src/enc/{yp_gbk.c → pm_gbk.c} +16 -16
  70. data/src/enc/pm_shift_jis.c +56 -0
  71. data/src/enc/{yp_tables.c → pm_tables.c} +69 -69
  72. data/src/enc/{yp_unicode.c → pm_unicode.c} +40 -40
  73. data/src/enc/pm_windows_31j.c +56 -0
  74. data/src/node.c +1293 -1233
  75. data/src/pack.c +247 -247
  76. data/src/prettyprint.c +1479 -1479
  77. data/src/{yarp.c → prism.c} +5205 -5083
  78. data/src/regexp.c +132 -132
  79. data/src/serialize.c +1121 -1121
  80. data/src/token_type.c +169 -167
  81. data/src/unescape.c +106 -87
  82. data/src/util/pm_buffer.c +103 -0
  83. data/src/util/{yp_char.c → pm_char.c} +72 -72
  84. data/src/util/{yp_constant_pool.c → pm_constant_pool.c} +85 -64
  85. data/src/util/{yp_list.c → pm_list.c} +10 -10
  86. data/src/util/{yp_memchr.c → pm_memchr.c} +6 -4
  87. data/src/util/{yp_newline_list.c → pm_newline_list.c} +21 -21
  88. data/src/util/{yp_state_stack.c → pm_state_stack.c} +4 -4
  89. data/src/util/{yp_string.c → pm_string.c} +38 -38
  90. data/src/util/pm_string_list.c +29 -0
  91. data/src/util/{yp_strncasecmp.c → pm_strncasecmp.c} +1 -1
  92. data/src/util/{yp_strpbrk.c → pm_strpbrk.c} +8 -8
  93. data/yarp.gemspec +68 -59
  94. metadata +70 -61
  95. data/ext/yarp/api_node.c +0 -4728
  96. data/ext/yarp/extension.h +0 -18
  97. data/include/yarp/ast.h +0 -1929
  98. data/include/yarp/defines.h +0 -45
  99. data/include/yarp/diagnostic.h +0 -226
  100. data/include/yarp/node.h +0 -42
  101. data/include/yarp/pack.h +0 -141
  102. data/include/yarp/regexp.h +0 -19
  103. data/include/yarp/unescape.h +0 -44
  104. data/include/yarp/util/yp_buffer.h +0 -51
  105. data/include/yarp/util/yp_memchr.h +0 -14
  106. data/include/yarp/util/yp_state_stack.h +0 -24
  107. data/include/yarp/util/yp_string_list.h +0 -25
  108. data/include/yarp/version.h +0 -4
  109. data/include/yarp.h +0 -82
  110. data/src/enc/yp_big5.c +0 -52
  111. data/src/enc/yp_euc_jp.c +0 -58
  112. data/src/enc/yp_shift_jis.c +0 -56
  113. data/src/enc/yp_windows_31j.c +0 -56
  114. data/src/util/yp_buffer.c +0 -101
  115. data/src/util/yp_string_list.c +0 -29
@@ -0,0 +1,58 @@
1
+ #include "prism/enc/pm_encoding.h"
2
+
3
+ static size_t
4
+ pm_encoding_euc_jp_char_width(const uint8_t *b, ptrdiff_t n) {
5
+ // These are the single byte characters.
6
+ if (*b < 0x80) {
7
+ return 1;
8
+ }
9
+
10
+ // These are the double byte characters.
11
+ if (
12
+ (n > 1) &&
13
+ (
14
+ ((b[0] == 0x8E) && (b[1] >= 0xA1 && b[1] <= 0xFE)) ||
15
+ ((b[0] >= 0xA1 && b[0] <= 0xFE) && (b[1] >= 0xA1 && b[1] <= 0xFE))
16
+ )
17
+ ) {
18
+ return 2;
19
+ }
20
+
21
+ return 0;
22
+ }
23
+
24
+ static size_t
25
+ pm_encoding_euc_jp_alpha_char(const uint8_t *b, ptrdiff_t n) {
26
+ if (pm_encoding_euc_jp_char_width(b, n) == 1) {
27
+ return pm_encoding_ascii_alpha_char(b, n);
28
+ } else {
29
+ return 0;
30
+ }
31
+ }
32
+
33
+ static size_t
34
+ pm_encoding_euc_jp_alnum_char(const uint8_t *b, ptrdiff_t n) {
35
+ if (pm_encoding_euc_jp_char_width(b, n) == 1) {
36
+ return pm_encoding_ascii_alnum_char(b, n);
37
+ } else {
38
+ return 0;
39
+ }
40
+ }
41
+
42
+ static bool
43
+ pm_encoding_euc_jp_isupper_char(const uint8_t *b, ptrdiff_t n) {
44
+ if (pm_encoding_euc_jp_char_width(b, n) == 1) {
45
+ return pm_encoding_ascii_isupper_char(b, n);
46
+ } else {
47
+ return 0;
48
+ }
49
+ }
50
+
51
+ pm_encoding_t pm_encoding_euc_jp = {
52
+ .name = "euc-jp",
53
+ .char_width = pm_encoding_euc_jp_char_width,
54
+ .alnum_char = pm_encoding_euc_jp_alnum_char,
55
+ .alpha_char = pm_encoding_euc_jp_alpha_char,
56
+ .isupper_char = pm_encoding_euc_jp_isupper_char,
57
+ .multibyte = true
58
+ };
@@ -1,7 +1,7 @@
1
- #include "yarp/enc/yp_encoding.h"
1
+ #include "prism/enc/pm_encoding.h"
2
2
 
3
3
  static size_t
4
- yp_encoding_gbk_char_width(const uint8_t *b, ptrdiff_t n) {
4
+ pm_encoding_gbk_char_width(const uint8_t *b, ptrdiff_t n) {
5
5
  // These are the single byte characters.
6
6
  if (*b < 0x80) {
7
7
  return 1;
@@ -25,37 +25,37 @@ yp_encoding_gbk_char_width(const uint8_t *b, ptrdiff_t n) {
25
25
  }
26
26
 
27
27
  static size_t
28
- yp_encoding_gbk_alpha_char(const uint8_t *b, ptrdiff_t n) {
29
- if (yp_encoding_gbk_char_width(b, n) == 1) {
30
- return yp_encoding_ascii_alpha_char(b, n);
28
+ pm_encoding_gbk_alpha_char(const uint8_t *b, ptrdiff_t n) {
29
+ if (pm_encoding_gbk_char_width(b, n) == 1) {
30
+ return pm_encoding_ascii_alpha_char(b, n);
31
31
  } else {
32
32
  return 0;
33
33
  }
34
34
  }
35
35
 
36
36
  static size_t
37
- yp_encoding_gbk_alnum_char(const uint8_t *b, ptrdiff_t n) {
38
- if (yp_encoding_gbk_char_width(b, n) == 1) {
39
- return yp_encoding_ascii_alnum_char(b, n);
37
+ pm_encoding_gbk_alnum_char(const uint8_t *b, ptrdiff_t n) {
38
+ if (pm_encoding_gbk_char_width(b, n) == 1) {
39
+ return pm_encoding_ascii_alnum_char(b, n);
40
40
  } else {
41
41
  return 0;
42
42
  }
43
43
  }
44
44
 
45
45
  static bool
46
- yp_encoding_gbk_isupper_char(const uint8_t *b, ptrdiff_t n) {
47
- if (yp_encoding_gbk_char_width(b, n) == 1) {
48
- return yp_encoding_ascii_isupper_char(b, n);
46
+ pm_encoding_gbk_isupper_char(const uint8_t *b, ptrdiff_t n) {
47
+ if (pm_encoding_gbk_char_width(b, n) == 1) {
48
+ return pm_encoding_ascii_isupper_char(b, n);
49
49
  } else {
50
50
  return false;
51
51
  }
52
52
  }
53
53
 
54
- yp_encoding_t yp_encoding_gbk = {
54
+ pm_encoding_t pm_encoding_gbk = {
55
55
  .name = "gbk",
56
- .char_width = yp_encoding_gbk_char_width,
57
- .alnum_char = yp_encoding_gbk_alnum_char,
58
- .alpha_char = yp_encoding_gbk_alpha_char,
59
- .isupper_char = yp_encoding_gbk_isupper_char,
56
+ .char_width = pm_encoding_gbk_char_width,
57
+ .alnum_char = pm_encoding_gbk_alnum_char,
58
+ .alpha_char = pm_encoding_gbk_alpha_char,
59
+ .isupper_char = pm_encoding_gbk_isupper_char,
60
60
  .multibyte = true
61
61
  };
@@ -0,0 +1,56 @@
1
+ #include "prism/enc/pm_encoding.h"
2
+
3
+ static size_t
4
+ pm_encoding_shift_jis_char_width(const uint8_t *b, ptrdiff_t n) {
5
+ // These are the single byte characters.
6
+ if (*b < 0x80 || (*b >= 0xA1 && *b <= 0xDF)) {
7
+ return 1;
8
+ }
9
+
10
+ // These are the double byte characters.
11
+ if (
12
+ (n > 1) &&
13
+ ((b[0] >= 0x81 && b[0] <= 0x9F) || (b[0] >= 0xE0 && b[0] <= 0xFC)) &&
14
+ (b[1] >= 0x40 && b[1] <= 0xFC)
15
+ ) {
16
+ return 2;
17
+ }
18
+
19
+ return 0;
20
+ }
21
+
22
+ static size_t
23
+ pm_encoding_shift_jis_alpha_char(const uint8_t *b, ptrdiff_t n) {
24
+ if (pm_encoding_shift_jis_char_width(b, n) == 1) {
25
+ return pm_encoding_ascii_alpha_char(b, n);
26
+ } else {
27
+ return 0;
28
+ }
29
+ }
30
+
31
+ static size_t
32
+ pm_encoding_shift_jis_alnum_char(const uint8_t *b, ptrdiff_t n) {
33
+ if (pm_encoding_shift_jis_char_width(b, n) == 1) {
34
+ return pm_encoding_ascii_alnum_char(b, n);
35
+ } else {
36
+ return 0;
37
+ }
38
+ }
39
+
40
+ static bool
41
+ pm_encoding_shift_jis_isupper_char(const uint8_t *b, ptrdiff_t n) {
42
+ if (pm_encoding_shift_jis_char_width(b, n) == 1) {
43
+ return pm_encoding_ascii_isupper_char(b, n);
44
+ } else {
45
+ return 0;
46
+ }
47
+ }
48
+
49
+ pm_encoding_t pm_encoding_shift_jis = {
50
+ .name = "shift_jis",
51
+ .char_width = pm_encoding_shift_jis_char_width,
52
+ .alnum_char = pm_encoding_shift_jis_alnum_char,
53
+ .alpha_char = pm_encoding_shift_jis_alpha_char,
54
+ .isupper_char = pm_encoding_shift_jis_isupper_char,
55
+ .multibyte = true
56
+ };
@@ -1,8 +1,8 @@
1
- #include "yarp/enc/yp_encoding.h"
1
+ #include "prism/enc/pm_encoding.h"
2
2
 
3
3
  // Each element of the following table contains a bitfield that indicates a
4
4
  // piece of information about the corresponding ASCII character.
5
- static uint8_t yp_encoding_ascii_table[256] = {
5
+ static uint8_t pm_encoding_ascii_table[256] = {
6
6
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
7
7
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
8
8
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -24,7 +24,7 @@ static uint8_t yp_encoding_ascii_table[256] = {
24
24
 
25
25
  // Each element of the following table contains a bitfield that indicates a
26
26
  // piece of information about the corresponding ISO-8859-1 character.
27
- static uint8_t yp_encoding_iso_8859_1_table[256] = {
27
+ static uint8_t pm_encoding_iso_8859_1_table[256] = {
28
28
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
29
29
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
30
30
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -46,7 +46,7 @@ static uint8_t yp_encoding_iso_8859_1_table[256] = {
46
46
 
47
47
  // Each element of the following table contains a bitfield that indicates a
48
48
  // piece of information about the corresponding ISO-8859-2 character.
49
- static uint8_t yp_encoding_iso_8859_2_table[256] = {
49
+ static uint8_t pm_encoding_iso_8859_2_table[256] = {
50
50
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
51
51
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
52
52
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -68,7 +68,7 @@ static uint8_t yp_encoding_iso_8859_2_table[256] = {
68
68
 
69
69
  // Each element of the following table contains a bitfield that indicates a
70
70
  // piece of information about the corresponding ISO-8859-3 character.
71
- static uint8_t yp_encoding_iso_8859_3_table[256] = {
71
+ static uint8_t pm_encoding_iso_8859_3_table[256] = {
72
72
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
73
73
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
74
74
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -90,7 +90,7 @@ static uint8_t yp_encoding_iso_8859_3_table[256] = {
90
90
 
91
91
  // Each element of the following table contains a bitfield that indicates a
92
92
  // piece of information about the corresponding ISO-8859-4 character.
93
- static uint8_t yp_encoding_iso_8859_4_table[256] = {
93
+ static uint8_t pm_encoding_iso_8859_4_table[256] = {
94
94
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
95
95
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
96
96
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -112,7 +112,7 @@ static uint8_t yp_encoding_iso_8859_4_table[256] = {
112
112
 
113
113
  // Each element of the following table contains a bitfield that indicates a
114
114
  // piece of information about the corresponding ISO-8859-5 character.
115
- static uint8_t yp_encoding_iso_8859_5_table[256] = {
115
+ static uint8_t pm_encoding_iso_8859_5_table[256] = {
116
116
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
117
117
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
118
118
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -134,7 +134,7 @@ static uint8_t yp_encoding_iso_8859_5_table[256] = {
134
134
 
135
135
  // Each element of the following table contains a bitfield that indicates a
136
136
  // piece of information about the corresponding ISO-8859-6 character.
137
- static uint8_t yp_encoding_iso_8859_6_table[256] = {
137
+ static uint8_t pm_encoding_iso_8859_6_table[256] = {
138
138
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
139
139
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
140
140
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -156,7 +156,7 @@ static uint8_t yp_encoding_iso_8859_6_table[256] = {
156
156
 
157
157
  // Each element of the following table contains a bitfield that indicates a
158
158
  // piece of information about the corresponding ISO-8859-7 character.
159
- static uint8_t yp_encoding_iso_8859_7_table[256] = {
159
+ static uint8_t pm_encoding_iso_8859_7_table[256] = {
160
160
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
161
161
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
162
162
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -178,7 +178,7 @@ static uint8_t yp_encoding_iso_8859_7_table[256] = {
178
178
 
179
179
  // Each element of the following table contains a bitfield that indicates a
180
180
  // piece of information about the corresponding ISO-8859-8 character.
181
- static uint8_t yp_encoding_iso_8859_8_table[256] = {
181
+ static uint8_t pm_encoding_iso_8859_8_table[256] = {
182
182
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
183
183
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
184
184
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -200,7 +200,7 @@ static uint8_t yp_encoding_iso_8859_8_table[256] = {
200
200
 
201
201
  // Each element of the following table contains a bitfield that indicates a
202
202
  // piece of information about the corresponding ISO-8859-9 character.
203
- static uint8_t yp_encoding_iso_8859_9_table[256] = {
203
+ static uint8_t pm_encoding_iso_8859_9_table[256] = {
204
204
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
205
205
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
206
206
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -222,7 +222,7 @@ static uint8_t yp_encoding_iso_8859_9_table[256] = {
222
222
 
223
223
  // Each element of the following table contains a bitfield that indicates a
224
224
  // piece of information about the corresponding ISO-8859-10 character.
225
- static uint8_t yp_encoding_iso_8859_10_table[256] = {
225
+ static uint8_t pm_encoding_iso_8859_10_table[256] = {
226
226
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
227
227
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
228
228
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -244,7 +244,7 @@ static uint8_t yp_encoding_iso_8859_10_table[256] = {
244
244
 
245
245
  // Each element of the following table contains a bitfield that indicates a
246
246
  // piece of information about the corresponding ISO-8859-11 character.
247
- static uint8_t yp_encoding_iso_8859_11_table[256] = {
247
+ static uint8_t pm_encoding_iso_8859_11_table[256] = {
248
248
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
249
249
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
250
250
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -266,7 +266,7 @@ static uint8_t yp_encoding_iso_8859_11_table[256] = {
266
266
 
267
267
  // Each element of the following table contains a bitfield that indicates a
268
268
  // piece of information about the corresponding ISO-8859-13 character.
269
- static uint8_t yp_encoding_iso_8859_13_table[256] = {
269
+ static uint8_t pm_encoding_iso_8859_13_table[256] = {
270
270
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
271
271
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
272
272
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -288,7 +288,7 @@ static uint8_t yp_encoding_iso_8859_13_table[256] = {
288
288
 
289
289
  // Each element of the following table contains a bitfield that indicates a
290
290
  // piece of information about the corresponding ISO-8859-14 character.
291
- static uint8_t yp_encoding_iso_8859_14_table[256] = {
291
+ static uint8_t pm_encoding_iso_8859_14_table[256] = {
292
292
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
293
293
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
294
294
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -310,7 +310,7 @@ static uint8_t yp_encoding_iso_8859_14_table[256] = {
310
310
 
311
311
  // Each element of the following table contains a bitfield that indicates a
312
312
  // piece of information about the corresponding ISO-8859-15 character.
313
- static uint8_t yp_encoding_iso_8859_15_table[256] = {
313
+ static uint8_t pm_encoding_iso_8859_15_table[256] = {
314
314
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
315
315
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
316
316
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -332,7 +332,7 @@ static uint8_t yp_encoding_iso_8859_15_table[256] = {
332
332
 
333
333
  // Each element of the following table contains a bitfield that indicates a
334
334
  // piece of information about the corresponding ISO-8859-16 character.
335
- static uint8_t yp_encoding_iso_8859_16_table[256] = {
335
+ static uint8_t pm_encoding_iso_8859_16_table[256] = {
336
336
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
337
337
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
338
338
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -354,7 +354,7 @@ static uint8_t yp_encoding_iso_8859_16_table[256] = {
354
354
 
355
355
  // Each element of the following table contains a bitfield that indicates a
356
356
  // piece of information about the corresponding KOI8-R character.
357
- static uint8_t yp_encoding_koi8_r_table[256] = {
357
+ static uint8_t pm_encoding_koi8_r_table[256] = {
358
358
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
359
359
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
360
360
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -376,7 +376,7 @@ static uint8_t yp_encoding_koi8_r_table[256] = {
376
376
 
377
377
  // Each element of the following table contains a bitfield that indicates a
378
378
  // piece of information about the corresponding windows-1251 character.
379
- static uint8_t yp_encoding_windows_1251_table[256] = {
379
+ static uint8_t pm_encoding_windows_1251_table[256] = {
380
380
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
381
381
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
382
382
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -398,7 +398,7 @@ static uint8_t yp_encoding_windows_1251_table[256] = {
398
398
 
399
399
  // Each element of the following table contains a bitfield that indicates a
400
400
  // piece of information about the corresponding windows-1252 character.
401
- static uint8_t yp_encoding_windows_1252_table[256] = {
401
+ static uint8_t pm_encoding_windows_1252_table[256] = {
402
402
  // 0 1 2 3 4 5 6 7 8 9 A B C D E F
403
403
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 0x
404
404
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 1x
@@ -419,89 +419,89 @@ static uint8_t yp_encoding_windows_1252_table[256] = {
419
419
  };
420
420
 
421
421
  static size_t
422
- yp_encoding_ascii_char_width(const uint8_t *b, YP_ATTRIBUTE_UNUSED ptrdiff_t n) {
422
+ pm_encoding_ascii_char_width(const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t n) {
423
423
  return *b < 0x80 ? 1 : 0;
424
424
  }
425
425
 
426
426
  size_t
427
- yp_encoding_ascii_alpha_char(const uint8_t *b, YP_ATTRIBUTE_UNUSED ptrdiff_t n) {
428
- return (yp_encoding_ascii_table[*b] & YP_ENCODING_ALPHABETIC_BIT);
427
+ pm_encoding_ascii_alpha_char(const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t n) {
428
+ return (pm_encoding_ascii_table[*b] & PRISM_ENCODING_ALPHABETIC_BIT);
429
429
  }
430
430
 
431
431
  size_t
432
- yp_encoding_ascii_alnum_char(const uint8_t *b, YP_ATTRIBUTE_UNUSED ptrdiff_t n) {
433
- return (yp_encoding_ascii_table[*b] & YP_ENCODING_ALPHANUMERIC_BIT) ? 1 : 0;
432
+ pm_encoding_ascii_alnum_char(const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t n) {
433
+ return (pm_encoding_ascii_table[*b] & PRISM_ENCODING_ALPHANUMERIC_BIT) ? 1 : 0;
434
434
  }
435
435
 
436
436
  bool
437
- yp_encoding_ascii_isupper_char(const uint8_t *b, YP_ATTRIBUTE_UNUSED ptrdiff_t n) {
438
- return (yp_encoding_ascii_table[*b] & YP_ENCODING_UPPERCASE_BIT);
437
+ pm_encoding_ascii_isupper_char(const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t n) {
438
+ return (pm_encoding_ascii_table[*b] & PRISM_ENCODING_UPPERCASE_BIT);
439
439
  }
440
440
 
441
441
  static size_t
442
- yp_encoding_koi8_r_char_width(const uint8_t *b, YP_ATTRIBUTE_UNUSED ptrdiff_t n) {
442
+ pm_encoding_koi8_r_char_width(const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t n) {
443
443
  return ((*b >= 0x20 && *b <= 0x7E) || (*b >= 0x80)) ? 1 : 0;
444
444
  }
445
445
 
446
446
  static size_t
447
- yp_encoding_single_char_width(YP_ATTRIBUTE_UNUSED const uint8_t *b, YP_ATTRIBUTE_UNUSED ptrdiff_t n) {
447
+ pm_encoding_single_char_width(PRISM_ATTRIBUTE_UNUSED const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t n) {
448
448
  return 1;
449
449
  }
450
450
 
451
- yp_encoding_t yp_encoding_ascii = {
451
+ pm_encoding_t pm_encoding_ascii = {
452
452
  .name = "ascii",
453
- .char_width = yp_encoding_ascii_char_width,
454
- .alnum_char = yp_encoding_ascii_alnum_char,
455
- .alpha_char = yp_encoding_ascii_alpha_char,
456
- .isupper_char = yp_encoding_ascii_isupper_char,
453
+ .char_width = pm_encoding_ascii_char_width,
454
+ .alnum_char = pm_encoding_ascii_alnum_char,
455
+ .alpha_char = pm_encoding_ascii_alpha_char,
456
+ .isupper_char = pm_encoding_ascii_isupper_char,
457
457
  .multibyte = false
458
458
  };
459
459
 
460
- yp_encoding_t yp_encoding_ascii_8bit = {
460
+ pm_encoding_t pm_encoding_ascii_8bit = {
461
461
  .name = "ascii-8bit",
462
- .char_width = yp_encoding_single_char_width,
463
- .alnum_char = yp_encoding_ascii_alnum_char,
464
- .alpha_char = yp_encoding_ascii_alpha_char,
465
- .isupper_char = yp_encoding_ascii_isupper_char,
462
+ .char_width = pm_encoding_single_char_width,
463
+ .alnum_char = pm_encoding_ascii_alnum_char,
464
+ .alpha_char = pm_encoding_ascii_alpha_char,
465
+ .isupper_char = pm_encoding_ascii_isupper_char,
466
466
  .multibyte = false
467
467
  };
468
468
 
469
- #define YP_ENCODING_TABLE(s, i, w) \
470
- static size_t yp_encoding_ ##i ## _alpha_char(const uint8_t *b, YP_ATTRIBUTE_UNUSED ptrdiff_t n) { \
471
- return (yp_encoding_ ##i ## _table[*b] & YP_ENCODING_ALPHABETIC_BIT); \
469
+ #define PRISM_ENCODING_TABLE(s, i, w) \
470
+ static size_t pm_encoding_ ##i ## _alpha_char(const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t n) { \
471
+ return (pm_encoding_ ##i ## _table[*b] & PRISM_ENCODING_ALPHABETIC_BIT); \
472
472
  } \
473
- static size_t yp_encoding_ ##i ## _alnum_char(const uint8_t *b, YP_ATTRIBUTE_UNUSED ptrdiff_t n) { \
474
- return (yp_encoding_ ##i ## _table[*b] & YP_ENCODING_ALPHANUMERIC_BIT) ? 1 : 0; \
473
+ static size_t pm_encoding_ ##i ## _alnum_char(const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t n) { \
474
+ return (pm_encoding_ ##i ## _table[*b] & PRISM_ENCODING_ALPHANUMERIC_BIT) ? 1 : 0; \
475
475
  } \
476
- static bool yp_encoding_ ##i ## _isupper_char(const uint8_t *b, YP_ATTRIBUTE_UNUSED ptrdiff_t n) { \
477
- return (yp_encoding_ ##i ## _table[*b] & YP_ENCODING_UPPERCASE_BIT); \
476
+ static bool pm_encoding_ ##i ## _isupper_char(const uint8_t *b, PRISM_ATTRIBUTE_UNUSED ptrdiff_t n) { \
477
+ return (pm_encoding_ ##i ## _table[*b] & PRISM_ENCODING_UPPERCASE_BIT); \
478
478
  } \
479
- yp_encoding_t yp_encoding_ ##i = { \
479
+ pm_encoding_t pm_encoding_ ##i = { \
480
480
  .name = s, \
481
481
  .char_width = w, \
482
- .alnum_char = yp_encoding_ ##i ## _alnum_char, \
483
- .alpha_char = yp_encoding_ ##i ## _alpha_char, \
484
- .isupper_char = yp_encoding_ ##i ## _isupper_char, \
482
+ .alnum_char = pm_encoding_ ##i ## _alnum_char, \
483
+ .alpha_char = pm_encoding_ ##i ## _alpha_char, \
484
+ .isupper_char = pm_encoding_ ##i ## _isupper_char, \
485
485
  .multibyte = false, \
486
486
  };
487
487
 
488
- YP_ENCODING_TABLE("iso-8859-1", iso_8859_1, yp_encoding_single_char_width)
489
- YP_ENCODING_TABLE("iso-8859-2", iso_8859_2, yp_encoding_single_char_width)
490
- YP_ENCODING_TABLE("iso-8859-3", iso_8859_3, yp_encoding_single_char_width)
491
- YP_ENCODING_TABLE("iso-8859-4", iso_8859_4, yp_encoding_single_char_width)
492
- YP_ENCODING_TABLE("iso-8859-5", iso_8859_5, yp_encoding_single_char_width)
493
- YP_ENCODING_TABLE("iso-8859-6", iso_8859_6, yp_encoding_single_char_width)
494
- YP_ENCODING_TABLE("iso-8859-7", iso_8859_7, yp_encoding_single_char_width)
495
- YP_ENCODING_TABLE("iso-8859-8", iso_8859_8, yp_encoding_single_char_width)
496
- YP_ENCODING_TABLE("iso-8859-9", iso_8859_9, yp_encoding_single_char_width)
497
- YP_ENCODING_TABLE("iso-8859-10", iso_8859_10, yp_encoding_single_char_width)
498
- YP_ENCODING_TABLE("iso-8859-11", iso_8859_11, yp_encoding_single_char_width)
499
- YP_ENCODING_TABLE("iso-8859-13", iso_8859_13, yp_encoding_single_char_width)
500
- YP_ENCODING_TABLE("iso-8859-14", iso_8859_14, yp_encoding_single_char_width)
501
- YP_ENCODING_TABLE("iso-8859-15", iso_8859_15, yp_encoding_single_char_width)
502
- YP_ENCODING_TABLE("iso-8859-16", iso_8859_16, yp_encoding_single_char_width)
503
- YP_ENCODING_TABLE("koi8-r", koi8_r, yp_encoding_koi8_r_char_width)
504
- YP_ENCODING_TABLE("windows-1251", windows_1251, yp_encoding_single_char_width)
505
- YP_ENCODING_TABLE("windows-1252", windows_1252, yp_encoding_single_char_width)
488
+ PRISM_ENCODING_TABLE("iso-8859-1", iso_8859_1, pm_encoding_single_char_width)
489
+ PRISM_ENCODING_TABLE("iso-8859-2", iso_8859_2, pm_encoding_single_char_width)
490
+ PRISM_ENCODING_TABLE("iso-8859-3", iso_8859_3, pm_encoding_single_char_width)
491
+ PRISM_ENCODING_TABLE("iso-8859-4", iso_8859_4, pm_encoding_single_char_width)
492
+ PRISM_ENCODING_TABLE("iso-8859-5", iso_8859_5, pm_encoding_single_char_width)
493
+ PRISM_ENCODING_TABLE("iso-8859-6", iso_8859_6, pm_encoding_single_char_width)
494
+ PRISM_ENCODING_TABLE("iso-8859-7", iso_8859_7, pm_encoding_single_char_width)
495
+ PRISM_ENCODING_TABLE("iso-8859-8", iso_8859_8, pm_encoding_single_char_width)
496
+ PRISM_ENCODING_TABLE("iso-8859-9", iso_8859_9, pm_encoding_single_char_width)
497
+ PRISM_ENCODING_TABLE("iso-8859-10", iso_8859_10, pm_encoding_single_char_width)
498
+ PRISM_ENCODING_TABLE("iso-8859-11", iso_8859_11, pm_encoding_single_char_width)
499
+ PRISM_ENCODING_TABLE("iso-8859-13", iso_8859_13, pm_encoding_single_char_width)
500
+ PRISM_ENCODING_TABLE("iso-8859-14", iso_8859_14, pm_encoding_single_char_width)
501
+ PRISM_ENCODING_TABLE("iso-8859-15", iso_8859_15, pm_encoding_single_char_width)
502
+ PRISM_ENCODING_TABLE("iso-8859-16", iso_8859_16, pm_encoding_single_char_width)
503
+ PRISM_ENCODING_TABLE("koi8-r", koi8_r, pm_encoding_koi8_r_char_width)
504
+ PRISM_ENCODING_TABLE("windows-1251", windows_1251, pm_encoding_single_char_width)
505
+ PRISM_ENCODING_TABLE("windows-1252", windows_1252, pm_encoding_single_char_width)
506
506
 
507
- #undef YP_ENCODING_TABLE
507
+ #undef PRISM_ENCODING_TABLE