yarp 0.12.0 → 0.13.0

Sign up to get free protection for your applications and to get access to all the features.
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
data/src/pack.c CHANGED
@@ -1,4 +1,4 @@
1
- #include "yarp/pack.h"
1
+ #include "prism/pack.h"
2
2
 
3
3
  #include <stdbool.h>
4
4
  #include <errno.h>
@@ -6,25 +6,25 @@
6
6
  static uintmax_t
7
7
  strtoumaxc(const char **format);
8
8
 
9
- YP_EXPORTED_FUNCTION yp_pack_result
10
- yp_pack_parse(yp_pack_variant variant, const char **format, const char *format_end,
11
- yp_pack_type *type, yp_pack_signed *signed_type, yp_pack_endian *endian, yp_pack_size *size,
12
- yp_pack_length_type *length_type, uint64_t *length, yp_pack_encoding *encoding) {
9
+ PRISM_EXPORTED_FUNCTION pm_pack_result
10
+ pm_pack_parse(pm_pack_variant variant, const char **format, const char *format_end,
11
+ pm_pack_type *type, pm_pack_signed *signed_type, pm_pack_endian *endian, pm_pack_size *size,
12
+ pm_pack_length_type *length_type, uint64_t *length, pm_pack_encoding *encoding) {
13
13
 
14
- if (*encoding == YP_PACK_ENCODING_START) {
15
- *encoding = YP_PACK_ENCODING_US_ASCII;
14
+ if (*encoding == PM_PACK_ENCODING_START) {
15
+ *encoding = PM_PACK_ENCODING_US_ASCII;
16
16
  }
17
17
 
18
18
  if (*format == format_end) {
19
- *type = YP_PACK_END;
20
- *signed_type = YP_PACK_SIGNED_NA;
21
- *endian = YP_PACK_ENDIAN_NA;
22
- *size = YP_PACK_SIZE_NA;
23
- *length_type = YP_PACK_LENGTH_NA;
24
- return YP_PACK_OK;
19
+ *type = PM_PACK_END;
20
+ *signed_type = PM_PACK_SIGNED_NA;
21
+ *endian = PM_PACK_ENDIAN_NA;
22
+ *size = PM_PACK_SIZE_NA;
23
+ *length_type = PM_PACK_LENGTH_NA;
24
+ return PM_PACK_OK;
25
25
  }
26
26
 
27
- *length_type = YP_PACK_LENGTH_FIXED;
27
+ *length_type = PM_PACK_LENGTH_FIXED;
28
28
  *length = 1;
29
29
  bool length_changed_allowed = true;
30
30
 
@@ -37,268 +37,268 @@ yp_pack_parse(yp_pack_variant variant, const char **format, const char *format_e
37
37
  case '\v':
38
38
  case '\f':
39
39
  case '\r':
40
- *type = YP_PACK_SPACE;
41
- *signed_type = YP_PACK_SIGNED_NA;
42
- *endian = YP_PACK_ENDIAN_NA;
43
- *size = YP_PACK_SIZE_NA;
44
- *length_type = YP_PACK_LENGTH_NA;
40
+ *type = PM_PACK_SPACE;
41
+ *signed_type = PM_PACK_SIGNED_NA;
42
+ *endian = PM_PACK_ENDIAN_NA;
43
+ *size = PM_PACK_SIZE_NA;
44
+ *length_type = PM_PACK_LENGTH_NA;
45
45
  *length = 0;
46
- return YP_PACK_OK;
46
+ return PM_PACK_OK;
47
47
  case '#':
48
48
  while ((*format < format_end) && (**format != '\n')) {
49
49
  (*format)++;
50
50
  }
51
- *type = YP_PACK_COMMENT;
52
- *signed_type = YP_PACK_SIGNED_NA;
53
- *endian = YP_PACK_ENDIAN_NA;
54
- *size = YP_PACK_SIZE_NA;
55
- *length_type = YP_PACK_LENGTH_NA;
51
+ *type = PM_PACK_COMMENT;
52
+ *signed_type = PM_PACK_SIGNED_NA;
53
+ *endian = PM_PACK_ENDIAN_NA;
54
+ *size = PM_PACK_SIZE_NA;
55
+ *length_type = PM_PACK_LENGTH_NA;
56
56
  *length = 0;
57
- return YP_PACK_OK;
57
+ return PM_PACK_OK;
58
58
  case 'C':
59
- *type = YP_PACK_INTEGER;
60
- *signed_type = YP_PACK_UNSIGNED;
61
- *endian = YP_PACK_AGNOSTIC_ENDIAN;
62
- *size = YP_PACK_SIZE_8;
59
+ *type = PM_PACK_INTEGER;
60
+ *signed_type = PM_PACK_UNSIGNED;
61
+ *endian = PM_PACK_AGNOSTIC_ENDIAN;
62
+ *size = PM_PACK_SIZE_8;
63
63
  break;
64
64
  case 'S':
65
- *type = YP_PACK_INTEGER;
66
- *signed_type = YP_PACK_UNSIGNED;
67
- *endian = YP_PACK_NATIVE_ENDIAN;
68
- *size = YP_PACK_SIZE_16;
65
+ *type = PM_PACK_INTEGER;
66
+ *signed_type = PM_PACK_UNSIGNED;
67
+ *endian = PM_PACK_NATIVE_ENDIAN;
68
+ *size = PM_PACK_SIZE_16;
69
69
  break;
70
70
  case 'L':
71
- *type = YP_PACK_INTEGER;
72
- *signed_type = YP_PACK_UNSIGNED;
73
- *endian = YP_PACK_NATIVE_ENDIAN;
74
- *size = YP_PACK_SIZE_32;
71
+ *type = PM_PACK_INTEGER;
72
+ *signed_type = PM_PACK_UNSIGNED;
73
+ *endian = PM_PACK_NATIVE_ENDIAN;
74
+ *size = PM_PACK_SIZE_32;
75
75
  break;
76
76
  case 'Q':
77
- *type = YP_PACK_INTEGER;
78
- *signed_type = YP_PACK_UNSIGNED;
79
- *endian = YP_PACK_NATIVE_ENDIAN;
80
- *size = YP_PACK_SIZE_64;
77
+ *type = PM_PACK_INTEGER;
78
+ *signed_type = PM_PACK_UNSIGNED;
79
+ *endian = PM_PACK_NATIVE_ENDIAN;
80
+ *size = PM_PACK_SIZE_64;
81
81
  break;
82
82
  case 'J':
83
- *type = YP_PACK_INTEGER;
84
- *signed_type = YP_PACK_UNSIGNED;
85
- *endian = YP_PACK_NATIVE_ENDIAN;
86
- *size = YP_PACK_SIZE_P;
83
+ *type = PM_PACK_INTEGER;
84
+ *signed_type = PM_PACK_UNSIGNED;
85
+ *endian = PM_PACK_NATIVE_ENDIAN;
86
+ *size = PM_PACK_SIZE_P;
87
87
  break;
88
88
  case 'c':
89
- *type = YP_PACK_INTEGER;
90
- *signed_type = YP_PACK_SIGNED;
91
- *endian = YP_PACK_AGNOSTIC_ENDIAN;
92
- *size = YP_PACK_SIZE_8;
89
+ *type = PM_PACK_INTEGER;
90
+ *signed_type = PM_PACK_SIGNED;
91
+ *endian = PM_PACK_AGNOSTIC_ENDIAN;
92
+ *size = PM_PACK_SIZE_8;
93
93
  break;
94
94
  case 's':
95
- *type = YP_PACK_INTEGER;
96
- *signed_type = YP_PACK_SIGNED;
97
- *endian = YP_PACK_NATIVE_ENDIAN;
98
- *size = YP_PACK_SIZE_16;
95
+ *type = PM_PACK_INTEGER;
96
+ *signed_type = PM_PACK_SIGNED;
97
+ *endian = PM_PACK_NATIVE_ENDIAN;
98
+ *size = PM_PACK_SIZE_16;
99
99
  break;
100
100
  case 'l':
101
- *type = YP_PACK_INTEGER;
102
- *signed_type = YP_PACK_SIGNED;
103
- *endian = YP_PACK_NATIVE_ENDIAN;
104
- *size = YP_PACK_SIZE_32;
101
+ *type = PM_PACK_INTEGER;
102
+ *signed_type = PM_PACK_SIGNED;
103
+ *endian = PM_PACK_NATIVE_ENDIAN;
104
+ *size = PM_PACK_SIZE_32;
105
105
  break;
106
106
  case 'q':
107
- *type = YP_PACK_INTEGER;
108
- *signed_type = YP_PACK_SIGNED;
109
- *endian = YP_PACK_NATIVE_ENDIAN;
110
- *size = YP_PACK_SIZE_64;
107
+ *type = PM_PACK_INTEGER;
108
+ *signed_type = PM_PACK_SIGNED;
109
+ *endian = PM_PACK_NATIVE_ENDIAN;
110
+ *size = PM_PACK_SIZE_64;
111
111
  break;
112
112
  case 'j':
113
- *type = YP_PACK_INTEGER;
114
- *signed_type = YP_PACK_SIGNED;
115
- *endian = YP_PACK_NATIVE_ENDIAN;
116
- *size = YP_PACK_SIZE_P;
113
+ *type = PM_PACK_INTEGER;
114
+ *signed_type = PM_PACK_SIGNED;
115
+ *endian = PM_PACK_NATIVE_ENDIAN;
116
+ *size = PM_PACK_SIZE_P;
117
117
  break;
118
118
  case 'I':
119
- *type = YP_PACK_INTEGER;
120
- *signed_type = YP_PACK_UNSIGNED;
121
- *endian = YP_PACK_NATIVE_ENDIAN;
122
- *size = YP_PACK_SIZE_INT;
119
+ *type = PM_PACK_INTEGER;
120
+ *signed_type = PM_PACK_UNSIGNED;
121
+ *endian = PM_PACK_NATIVE_ENDIAN;
122
+ *size = PM_PACK_SIZE_INT;
123
123
  break;
124
124
  case 'i':
125
- *type = YP_PACK_INTEGER;
126
- *signed_type = YP_PACK_SIGNED;
127
- *endian = YP_PACK_NATIVE_ENDIAN;
128
- *size = YP_PACK_SIZE_INT;
125
+ *type = PM_PACK_INTEGER;
126
+ *signed_type = PM_PACK_SIGNED;
127
+ *endian = PM_PACK_NATIVE_ENDIAN;
128
+ *size = PM_PACK_SIZE_INT;
129
129
  break;
130
130
  case 'n':
131
- *type = YP_PACK_INTEGER;
132
- *signed_type = YP_PACK_UNSIGNED;
133
- *endian = YP_PACK_BIG_ENDIAN;
134
- *size = YP_PACK_SIZE_16;
131
+ *type = PM_PACK_INTEGER;
132
+ *signed_type = PM_PACK_UNSIGNED;
133
+ *endian = PM_PACK_BIG_ENDIAN;
134
+ *size = PM_PACK_SIZE_16;
135
135
  length_changed_allowed = false;
136
136
  break;
137
137
  case 'N':
138
- *type = YP_PACK_INTEGER;
139
- *signed_type = YP_PACK_UNSIGNED;
140
- *endian = YP_PACK_BIG_ENDIAN;
141
- *size = YP_PACK_SIZE_32;
138
+ *type = PM_PACK_INTEGER;
139
+ *signed_type = PM_PACK_UNSIGNED;
140
+ *endian = PM_PACK_BIG_ENDIAN;
141
+ *size = PM_PACK_SIZE_32;
142
142
  length_changed_allowed = false;
143
143
  break;
144
144
  case 'v':
145
- *type = YP_PACK_INTEGER;
146
- *signed_type = YP_PACK_UNSIGNED;
147
- *endian = YP_PACK_LITTLE_ENDIAN;
148
- *size = YP_PACK_SIZE_16;
145
+ *type = PM_PACK_INTEGER;
146
+ *signed_type = PM_PACK_UNSIGNED;
147
+ *endian = PM_PACK_LITTLE_ENDIAN;
148
+ *size = PM_PACK_SIZE_16;
149
149
  length_changed_allowed = false;
150
150
  break;
151
151
  case 'V':
152
- *type = YP_PACK_INTEGER;
153
- *signed_type = YP_PACK_UNSIGNED;
154
- *endian = YP_PACK_LITTLE_ENDIAN;
155
- *size = YP_PACK_SIZE_32;
152
+ *type = PM_PACK_INTEGER;
153
+ *signed_type = PM_PACK_UNSIGNED;
154
+ *endian = PM_PACK_LITTLE_ENDIAN;
155
+ *size = PM_PACK_SIZE_32;
156
156
  length_changed_allowed = false;
157
157
  break;
158
158
  case 'U':
159
- *type = YP_PACK_UTF8;
160
- *signed_type = YP_PACK_SIGNED_NA;
161
- *endian = YP_PACK_ENDIAN_NA;
162
- *size = YP_PACK_SIZE_NA;
159
+ *type = PM_PACK_UTF8;
160
+ *signed_type = PM_PACK_SIGNED_NA;
161
+ *endian = PM_PACK_ENDIAN_NA;
162
+ *size = PM_PACK_SIZE_NA;
163
163
  break;
164
164
  case 'w':
165
- *type = YP_PACK_BER;
166
- *signed_type = YP_PACK_SIGNED_NA;
167
- *endian = YP_PACK_ENDIAN_NA;
168
- *size = YP_PACK_SIZE_NA;
165
+ *type = PM_PACK_BER;
166
+ *signed_type = PM_PACK_SIGNED_NA;
167
+ *endian = PM_PACK_ENDIAN_NA;
168
+ *size = PM_PACK_SIZE_NA;
169
169
  break;
170
170
  case 'D':
171
171
  case 'd':
172
- *type = YP_PACK_FLOAT;
173
- *signed_type = YP_PACK_SIGNED_NA;
174
- *endian = YP_PACK_NATIVE_ENDIAN;
175
- *size = YP_PACK_SIZE_64;
172
+ *type = PM_PACK_FLOAT;
173
+ *signed_type = PM_PACK_SIGNED_NA;
174
+ *endian = PM_PACK_NATIVE_ENDIAN;
175
+ *size = PM_PACK_SIZE_64;
176
176
  break;
177
177
  case 'F':
178
178
  case 'f':
179
- *type = YP_PACK_FLOAT;
180
- *signed_type = YP_PACK_SIGNED_NA;
181
- *endian = YP_PACK_NATIVE_ENDIAN;
182
- *size = YP_PACK_SIZE_32;
179
+ *type = PM_PACK_FLOAT;
180
+ *signed_type = PM_PACK_SIGNED_NA;
181
+ *endian = PM_PACK_NATIVE_ENDIAN;
182
+ *size = PM_PACK_SIZE_32;
183
183
  break;
184
184
  case 'E':
185
- *type = YP_PACK_FLOAT;
186
- *signed_type = YP_PACK_SIGNED_NA;
187
- *endian = YP_PACK_LITTLE_ENDIAN;
188
- *size = YP_PACK_SIZE_64;
185
+ *type = PM_PACK_FLOAT;
186
+ *signed_type = PM_PACK_SIGNED_NA;
187
+ *endian = PM_PACK_LITTLE_ENDIAN;
188
+ *size = PM_PACK_SIZE_64;
189
189
  break;
190
190
  case 'e':
191
- *type = YP_PACK_FLOAT;
192
- *signed_type = YP_PACK_SIGNED_NA;
193
- *endian = YP_PACK_LITTLE_ENDIAN;
194
- *size = YP_PACK_SIZE_32;
191
+ *type = PM_PACK_FLOAT;
192
+ *signed_type = PM_PACK_SIGNED_NA;
193
+ *endian = PM_PACK_LITTLE_ENDIAN;
194
+ *size = PM_PACK_SIZE_32;
195
195
  break;
196
196
  case 'G':
197
- *type = YP_PACK_FLOAT;
198
- *signed_type = YP_PACK_SIGNED_NA;
199
- *endian = YP_PACK_BIG_ENDIAN;
200
- *size = YP_PACK_SIZE_64;
197
+ *type = PM_PACK_FLOAT;
198
+ *signed_type = PM_PACK_SIGNED_NA;
199
+ *endian = PM_PACK_BIG_ENDIAN;
200
+ *size = PM_PACK_SIZE_64;
201
201
  break;
202
202
  case 'g':
203
- *type = YP_PACK_FLOAT;
204
- *signed_type = YP_PACK_SIGNED_NA;
205
- *endian = YP_PACK_BIG_ENDIAN;
206
- *size = YP_PACK_SIZE_32;
203
+ *type = PM_PACK_FLOAT;
204
+ *signed_type = PM_PACK_SIGNED_NA;
205
+ *endian = PM_PACK_BIG_ENDIAN;
206
+ *size = PM_PACK_SIZE_32;
207
207
  break;
208
208
  case 'A':
209
- *type = YP_PACK_STRING_SPACE_PADDED;
210
- *signed_type = YP_PACK_SIGNED_NA;
211
- *endian = YP_PACK_ENDIAN_NA;
212
- *size = YP_PACK_SIZE_NA;
209
+ *type = PM_PACK_STRING_SPACE_PADDED;
210
+ *signed_type = PM_PACK_SIGNED_NA;
211
+ *endian = PM_PACK_ENDIAN_NA;
212
+ *size = PM_PACK_SIZE_NA;
213
213
  break;
214
214
  case 'a':
215
- *type = YP_PACK_STRING_NULL_PADDED;
216
- *signed_type = YP_PACK_SIGNED_NA;
217
- *endian = YP_PACK_ENDIAN_NA;
218
- *size = YP_PACK_SIZE_NA;
215
+ *type = PM_PACK_STRING_NULL_PADDED;
216
+ *signed_type = PM_PACK_SIGNED_NA;
217
+ *endian = PM_PACK_ENDIAN_NA;
218
+ *size = PM_PACK_SIZE_NA;
219
219
  break;
220
220
  case 'Z':
221
- *type = YP_PACK_STRING_NULL_TERMINATED;
222
- *signed_type = YP_PACK_SIGNED_NA;
223
- *endian = YP_PACK_ENDIAN_NA;
224
- *size = YP_PACK_SIZE_NA;
221
+ *type = PM_PACK_STRING_NULL_TERMINATED;
222
+ *signed_type = PM_PACK_SIGNED_NA;
223
+ *endian = PM_PACK_ENDIAN_NA;
224
+ *size = PM_PACK_SIZE_NA;
225
225
  break;
226
226
  case 'B':
227
- *type = YP_PACK_STRING_MSB;
228
- *signed_type = YP_PACK_SIGNED_NA;
229
- *endian = YP_PACK_ENDIAN_NA;
230
- *size = YP_PACK_SIZE_NA;
227
+ *type = PM_PACK_STRING_MSB;
228
+ *signed_type = PM_PACK_SIGNED_NA;
229
+ *endian = PM_PACK_ENDIAN_NA;
230
+ *size = PM_PACK_SIZE_NA;
231
231
  break;
232
232
  case 'b':
233
- *type = YP_PACK_STRING_LSB;
234
- *signed_type = YP_PACK_SIGNED_NA;
235
- *endian = YP_PACK_ENDIAN_NA;
236
- *size = YP_PACK_SIZE_NA;
233
+ *type = PM_PACK_STRING_LSB;
234
+ *signed_type = PM_PACK_SIGNED_NA;
235
+ *endian = PM_PACK_ENDIAN_NA;
236
+ *size = PM_PACK_SIZE_NA;
237
237
  break;
238
238
  case 'H':
239
- *type = YP_PACK_STRING_HEX_HIGH;
240
- *signed_type = YP_PACK_SIGNED_NA;
241
- *endian = YP_PACK_ENDIAN_NA;
242
- *size = YP_PACK_SIZE_NA;
239
+ *type = PM_PACK_STRING_HEX_HIGH;
240
+ *signed_type = PM_PACK_SIGNED_NA;
241
+ *endian = PM_PACK_ENDIAN_NA;
242
+ *size = PM_PACK_SIZE_NA;
243
243
  break;
244
244
  case 'h':
245
- *type = YP_PACK_STRING_HEX_LOW;
246
- *signed_type = YP_PACK_SIGNED_NA;
247
- *endian = YP_PACK_ENDIAN_NA;
248
- *size = YP_PACK_SIZE_NA;
245
+ *type = PM_PACK_STRING_HEX_LOW;
246
+ *signed_type = PM_PACK_SIGNED_NA;
247
+ *endian = PM_PACK_ENDIAN_NA;
248
+ *size = PM_PACK_SIZE_NA;
249
249
  break;
250
250
  case 'u':
251
- *type = YP_PACK_STRING_UU;
252
- *signed_type = YP_PACK_SIGNED_NA;
253
- *endian = YP_PACK_ENDIAN_NA;
254
- *size = YP_PACK_SIZE_NA;
251
+ *type = PM_PACK_STRING_UU;
252
+ *signed_type = PM_PACK_SIGNED_NA;
253
+ *endian = PM_PACK_ENDIAN_NA;
254
+ *size = PM_PACK_SIZE_NA;
255
255
  break;
256
256
  case 'M':
257
- *type = YP_PACK_STRING_MIME;
258
- *signed_type = YP_PACK_SIGNED_NA;
259
- *endian = YP_PACK_ENDIAN_NA;
260
- *size = YP_PACK_SIZE_NA;
257
+ *type = PM_PACK_STRING_MIME;
258
+ *signed_type = PM_PACK_SIGNED_NA;
259
+ *endian = PM_PACK_ENDIAN_NA;
260
+ *size = PM_PACK_SIZE_NA;
261
261
  break;
262
262
  case 'm':
263
- *type = YP_PACK_STRING_BASE64;
264
- *signed_type = YP_PACK_SIGNED_NA;
265
- *endian = YP_PACK_ENDIAN_NA;
266
- *size = YP_PACK_SIZE_NA;
263
+ *type = PM_PACK_STRING_BASE64;
264
+ *signed_type = PM_PACK_SIGNED_NA;
265
+ *endian = PM_PACK_ENDIAN_NA;
266
+ *size = PM_PACK_SIZE_NA;
267
267
  break;
268
268
  case 'P':
269
- *type = YP_PACK_STRING_FIXED;
270
- *signed_type = YP_PACK_SIGNED_NA;
271
- *endian = YP_PACK_ENDIAN_NA;
272
- *size = YP_PACK_SIZE_NA;
269
+ *type = PM_PACK_STRING_FIXED;
270
+ *signed_type = PM_PACK_SIGNED_NA;
271
+ *endian = PM_PACK_ENDIAN_NA;
272
+ *size = PM_PACK_SIZE_NA;
273
273
  break;
274
274
  case 'p':
275
- *type = YP_PACK_STRING_POINTER;
276
- *signed_type = YP_PACK_SIGNED_NA;
277
- *endian = YP_PACK_ENDIAN_NA;
278
- *size = YP_PACK_SIZE_NA;
275
+ *type = PM_PACK_STRING_POINTER;
276
+ *signed_type = PM_PACK_SIGNED_NA;
277
+ *endian = PM_PACK_ENDIAN_NA;
278
+ *size = PM_PACK_SIZE_NA;
279
279
  break;
280
280
  case '@':
281
- *type = YP_PACK_MOVE;
282
- *signed_type = YP_PACK_SIGNED_NA;
283
- *endian = YP_PACK_ENDIAN_NA;
284
- *size = YP_PACK_SIZE_NA;
281
+ *type = PM_PACK_MOVE;
282
+ *signed_type = PM_PACK_SIGNED_NA;
283
+ *endian = PM_PACK_ENDIAN_NA;
284
+ *size = PM_PACK_SIZE_NA;
285
285
  break;
286
286
  case 'X':
287
- *type = YP_PACK_BACK;
288
- *signed_type = YP_PACK_SIGNED_NA;
289
- *endian = YP_PACK_ENDIAN_NA;
290
- *size = YP_PACK_SIZE_NA;
287
+ *type = PM_PACK_BACK;
288
+ *signed_type = PM_PACK_SIGNED_NA;
289
+ *endian = PM_PACK_ENDIAN_NA;
290
+ *size = PM_PACK_SIZE_NA;
291
291
  break;
292
292
  case 'x':
293
- *type = YP_PACK_NULL;
294
- *signed_type = YP_PACK_SIGNED_NA;
295
- *endian = YP_PACK_ENDIAN_NA;
296
- *size = YP_PACK_SIZE_NA;
293
+ *type = PM_PACK_NULL;
294
+ *signed_type = PM_PACK_SIGNED_NA;
295
+ *endian = PM_PACK_ENDIAN_NA;
296
+ *size = PM_PACK_SIZE_NA;
297
297
  break;
298
298
  case '%':
299
- return YP_PACK_ERROR_UNSUPPORTED_DIRECTIVE;
299
+ return PM_PACK_ERROR_UNSUPPORTED_DIRECTIVE;
300
300
  default:
301
- return YP_PACK_ERROR_UNKNOWN_DIRECTIVE;
301
+ return PM_PACK_ERROR_UNKNOWN_DIRECTIVE;
302
302
  }
303
303
 
304
304
  bool explicit_endian = false;
@@ -308,44 +308,44 @@ yp_pack_parse(yp_pack_variant variant, const char **format, const char *format_e
308
308
  case '_':
309
309
  case '!':
310
310
  (*format)++;
311
- if (*type != YP_PACK_INTEGER || !length_changed_allowed) {
312
- return YP_PACK_ERROR_BANG_NOT_ALLOWED;
311
+ if (*type != PM_PACK_INTEGER || !length_changed_allowed) {
312
+ return PM_PACK_ERROR_BANG_NOT_ALLOWED;
313
313
  }
314
314
  switch (*size) {
315
- case YP_PACK_SIZE_SHORT:
316
- case YP_PACK_SIZE_INT:
317
- case YP_PACK_SIZE_LONG:
318
- case YP_PACK_SIZE_LONG_LONG:
315
+ case PM_PACK_SIZE_SHORT:
316
+ case PM_PACK_SIZE_INT:
317
+ case PM_PACK_SIZE_LONG:
318
+ case PM_PACK_SIZE_LONG_LONG:
319
319
  break;
320
- case YP_PACK_SIZE_16:
321
- *size = YP_PACK_SIZE_SHORT;
320
+ case PM_PACK_SIZE_16:
321
+ *size = PM_PACK_SIZE_SHORT;
322
322
  break;
323
- case YP_PACK_SIZE_32:
324
- *size = YP_PACK_SIZE_LONG;
323
+ case PM_PACK_SIZE_32:
324
+ *size = PM_PACK_SIZE_LONG;
325
325
  break;
326
- case YP_PACK_SIZE_64:
327
- *size = YP_PACK_SIZE_LONG_LONG;
326
+ case PM_PACK_SIZE_64:
327
+ *size = PM_PACK_SIZE_LONG_LONG;
328
328
  break;
329
- case YP_PACK_SIZE_P:
329
+ case PM_PACK_SIZE_P:
330
330
  break;
331
331
  default:
332
- return YP_PACK_ERROR_BANG_NOT_ALLOWED;
332
+ return PM_PACK_ERROR_BANG_NOT_ALLOWED;
333
333
  }
334
334
  break;
335
335
  case '<':
336
336
  (*format)++;
337
337
  if (explicit_endian) {
338
- return YP_PACK_ERROR_DOUBLE_ENDIAN;
338
+ return PM_PACK_ERROR_DOUBLE_ENDIAN;
339
339
  }
340
- *endian = YP_PACK_LITTLE_ENDIAN;
340
+ *endian = PM_PACK_LITTLE_ENDIAN;
341
341
  explicit_endian = true;
342
342
  break;
343
343
  case '>':
344
344
  (*format)++;
345
345
  if (explicit_endian) {
346
- return YP_PACK_ERROR_DOUBLE_ENDIAN;
346
+ return PM_PACK_ERROR_DOUBLE_ENDIAN;
347
347
  }
348
- *endian = YP_PACK_BIG_ENDIAN;
348
+ *endian = PM_PACK_BIG_ENDIAN;
349
349
  explicit_endian = true;
350
350
  break;
351
351
  default:
@@ -355,64 +355,64 @@ yp_pack_parse(yp_pack_variant variant, const char **format, const char *format_e
355
355
 
356
356
  exit_modifier_loop:
357
357
 
358
- if (variant == YP_PACK_VARIANT_UNPACK && *type == YP_PACK_MOVE) {
358
+ if (variant == PM_PACK_VARIANT_UNPACK && *type == PM_PACK_MOVE) {
359
359
  *length = 0;
360
360
  }
361
361
 
362
362
  if (*format < format_end) {
363
363
  if (**format == '*') {
364
364
  switch (*type) {
365
- case YP_PACK_NULL:
366
- case YP_PACK_BACK:
365
+ case PM_PACK_NULL:
366
+ case PM_PACK_BACK:
367
367
  switch (variant) {
368
- case YP_PACK_VARIANT_PACK:
369
- *length_type = YP_PACK_LENGTH_FIXED;
368
+ case PM_PACK_VARIANT_PACK:
369
+ *length_type = PM_PACK_LENGTH_FIXED;
370
370
  break;
371
- case YP_PACK_VARIANT_UNPACK:
372
- *length_type = YP_PACK_LENGTH_MAX;
371
+ case PM_PACK_VARIANT_UNPACK:
372
+ *length_type = PM_PACK_LENGTH_MAX;
373
373
  break;
374
374
  }
375
375
  *length = 0;
376
376
  break;
377
377
 
378
- case YP_PACK_MOVE:
378
+ case PM_PACK_MOVE:
379
379
  switch (variant) {
380
- case YP_PACK_VARIANT_PACK:
381
- *length_type = YP_PACK_LENGTH_FIXED;
380
+ case PM_PACK_VARIANT_PACK:
381
+ *length_type = PM_PACK_LENGTH_FIXED;
382
382
  break;
383
- case YP_PACK_VARIANT_UNPACK:
384
- *length_type = YP_PACK_LENGTH_RELATIVE;
383
+ case PM_PACK_VARIANT_UNPACK:
384
+ *length_type = PM_PACK_LENGTH_RELATIVE;
385
385
  break;
386
386
  }
387
387
  *length = 0;
388
388
  break;
389
389
 
390
- case YP_PACK_STRING_UU:
391
- *length_type = YP_PACK_LENGTH_FIXED;
390
+ case PM_PACK_STRING_UU:
391
+ *length_type = PM_PACK_LENGTH_FIXED;
392
392
  *length = 0;
393
393
  break;
394
394
 
395
- case YP_PACK_STRING_FIXED:
395
+ case PM_PACK_STRING_FIXED:
396
396
  switch (variant) {
397
- case YP_PACK_VARIANT_PACK:
398
- *length_type = YP_PACK_LENGTH_FIXED;
397
+ case PM_PACK_VARIANT_PACK:
398
+ *length_type = PM_PACK_LENGTH_FIXED;
399
399
  *length = 1;
400
400
  break;
401
- case YP_PACK_VARIANT_UNPACK:
402
- *length_type = YP_PACK_LENGTH_MAX;
401
+ case PM_PACK_VARIANT_UNPACK:
402
+ *length_type = PM_PACK_LENGTH_MAX;
403
403
  *length = 0;
404
404
  break;
405
405
  }
406
406
  break;
407
407
 
408
- case YP_PACK_STRING_MIME:
409
- case YP_PACK_STRING_BASE64:
410
- *length_type = YP_PACK_LENGTH_FIXED;
408
+ case PM_PACK_STRING_MIME:
409
+ case PM_PACK_STRING_BASE64:
410
+ *length_type = PM_PACK_LENGTH_FIXED;
411
411
  *length = 1;
412
412
  break;
413
413
 
414
414
  default:
415
- *length_type = YP_PACK_LENGTH_MAX;
415
+ *length_type = PM_PACK_LENGTH_MAX;
416
416
  *length = 0;
417
417
  break;
418
418
  }
@@ -420,59 +420,59 @@ exit_modifier_loop:
420
420
  (*format)++;
421
421
  } else if (**format >= '0' && **format <= '9') {
422
422
  errno = 0;
423
- *length_type = YP_PACK_LENGTH_FIXED;
423
+ *length_type = PM_PACK_LENGTH_FIXED;
424
424
  #if UINTMAX_MAX < UINT64_MAX
425
- #error "YARP's design assumes uintmax_t is at least as large as uint64_t"
425
+ #error "prism's design assumes uintmax_t is at least as large as uint64_t"
426
426
  #endif
427
427
  uintmax_t length_max = strtoumaxc(format);
428
428
  if (errno || length_max > UINT64_MAX) {
429
- return YP_PACK_ERROR_LENGTH_TOO_BIG;
429
+ return PM_PACK_ERROR_LENGTH_TOO_BIG;
430
430
  }
431
431
  *length = (uint64_t) length_max;
432
432
  }
433
433
  }
434
434
 
435
435
  switch (*type) {
436
- case YP_PACK_UTF8:
436
+ case PM_PACK_UTF8:
437
437
  /* if encoding is US-ASCII, upgrade to UTF-8 */
438
- if (*encoding == YP_PACK_ENCODING_US_ASCII) {
439
- *encoding = YP_PACK_ENCODING_UTF_8;
438
+ if (*encoding == PM_PACK_ENCODING_US_ASCII) {
439
+ *encoding = PM_PACK_ENCODING_UTF_8;
440
440
  }
441
441
  break;
442
- case YP_PACK_STRING_MIME:
443
- case YP_PACK_STRING_BASE64:
444
- case YP_PACK_STRING_UU:
442
+ case PM_PACK_STRING_MIME:
443
+ case PM_PACK_STRING_BASE64:
444
+ case PM_PACK_STRING_UU:
445
445
  /* keep US-ASCII (do nothing) */
446
446
  break;
447
447
  default:
448
448
  /* fall back to BINARY */
449
- *encoding = YP_PACK_ENCODING_ASCII_8BIT;
449
+ *encoding = PM_PACK_ENCODING_ASCII_8BIT;
450
450
  break;
451
451
  }
452
452
 
453
- return YP_PACK_OK;
453
+ return PM_PACK_OK;
454
454
  }
455
455
 
456
- YP_EXPORTED_FUNCTION size_t
457
- yp_size_to_native(yp_pack_size size) {
456
+ PRISM_EXPORTED_FUNCTION size_t
457
+ pm_size_to_native(pm_pack_size size) {
458
458
  switch (size) {
459
- case YP_PACK_SIZE_SHORT:
459
+ case PM_PACK_SIZE_SHORT:
460
460
  return sizeof(short);
461
- case YP_PACK_SIZE_INT:
461
+ case PM_PACK_SIZE_INT:
462
462
  return sizeof(int);
463
- case YP_PACK_SIZE_LONG:
463
+ case PM_PACK_SIZE_LONG:
464
464
  return sizeof(long);
465
- case YP_PACK_SIZE_LONG_LONG:
465
+ case PM_PACK_SIZE_LONG_LONG:
466
466
  return sizeof(long long);
467
- case YP_PACK_SIZE_8:
467
+ case PM_PACK_SIZE_8:
468
468
  return 1;
469
- case YP_PACK_SIZE_16:
469
+ case PM_PACK_SIZE_16:
470
470
  return 2;
471
- case YP_PACK_SIZE_32:
471
+ case PM_PACK_SIZE_32:
472
472
  return 4;
473
- case YP_PACK_SIZE_64:
473
+ case PM_PACK_SIZE_64:
474
474
  return 8;
475
- case YP_PACK_SIZE_P:
475
+ case PM_PACK_SIZE_P:
476
476
  return sizeof(void *);
477
477
  default:
478
478
  return 0;