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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +29 -8
- data/CONTRIBUTING.md +2 -2
- data/Makefile +5 -5
- data/README.md +11 -12
- data/config.yml +6 -2
- data/docs/build_system.md +21 -21
- data/docs/building.md +4 -4
- data/docs/configuration.md +25 -21
- data/docs/design.md +2 -2
- data/docs/encoding.md +17 -17
- data/docs/fuzzing.md +4 -4
- data/docs/heredocs.md +3 -3
- data/docs/mapping.md +94 -94
- data/docs/ripper.md +4 -4
- data/docs/ruby_api.md +11 -11
- data/docs/serialization.md +17 -16
- data/docs/testing.md +6 -6
- data/ext/prism/api_node.c +4725 -0
- data/ext/{yarp → prism}/api_pack.c +82 -82
- data/ext/{yarp → prism}/extconf.rb +13 -13
- data/ext/{yarp → prism}/extension.c +175 -168
- data/ext/prism/extension.h +18 -0
- data/include/prism/ast.h +1932 -0
- data/include/prism/defines.h +45 -0
- data/include/prism/diagnostic.h +231 -0
- data/include/{yarp/enc/yp_encoding.h → prism/enc/pm_encoding.h} +40 -40
- data/include/prism/node.h +41 -0
- data/include/prism/pack.h +141 -0
- data/include/{yarp → prism}/parser.h +143 -142
- data/include/prism/regexp.h +19 -0
- data/include/prism/unescape.h +48 -0
- data/include/prism/util/pm_buffer.h +51 -0
- data/include/{yarp/util/yp_char.h → prism/util/pm_char.h} +20 -20
- data/include/{yarp/util/yp_constant_pool.h → prism/util/pm_constant_pool.h} +26 -22
- data/include/{yarp/util/yp_list.h → prism/util/pm_list.h} +21 -21
- data/include/prism/util/pm_memchr.h +14 -0
- data/include/{yarp/util/yp_newline_list.h → prism/util/pm_newline_list.h} +11 -11
- data/include/prism/util/pm_state_stack.h +24 -0
- data/include/{yarp/util/yp_string.h → prism/util/pm_string.h} +20 -20
- data/include/prism/util/pm_string_list.h +25 -0
- data/include/{yarp/util/yp_strpbrk.h → prism/util/pm_strpbrk.h} +7 -7
- data/include/prism/version.h +4 -0
- data/include/prism.h +82 -0
- data/lib/prism/compiler.rb +465 -0
- data/lib/prism/debug.rb +157 -0
- data/lib/{yarp/desugar_visitor.rb → prism/desugar_compiler.rb} +4 -2
- data/lib/prism/dispatcher.rb +2051 -0
- data/lib/prism/dsl.rb +750 -0
- data/lib/{yarp → prism}/ffi.rb +66 -67
- data/lib/{yarp → prism}/lex_compat.rb +40 -43
- data/lib/{yarp/mutation_visitor.rb → prism/mutation_compiler.rb} +3 -3
- data/lib/{yarp → prism}/node.rb +2012 -2593
- data/lib/prism/node_ext.rb +55 -0
- data/lib/prism/node_inspector.rb +68 -0
- data/lib/{yarp → prism}/pack.rb +1 -1
- data/lib/{yarp → prism}/parse_result/comments.rb +1 -1
- data/lib/{yarp → prism}/parse_result/newlines.rb +1 -1
- data/lib/prism/parse_result.rb +266 -0
- data/lib/{yarp → prism}/pattern.rb +14 -14
- data/lib/{yarp → prism}/ripper_compat.rb +5 -5
- data/lib/{yarp → prism}/serialize.rb +12 -7
- data/lib/prism/visitor.rb +470 -0
- data/lib/prism.rb +64 -0
- data/lib/yarp.rb +2 -614
- data/src/diagnostic.c +213 -208
- data/src/enc/pm_big5.c +52 -0
- data/src/enc/pm_euc_jp.c +58 -0
- data/src/enc/{yp_gbk.c → pm_gbk.c} +16 -16
- data/src/enc/pm_shift_jis.c +56 -0
- data/src/enc/{yp_tables.c → pm_tables.c} +69 -69
- data/src/enc/{yp_unicode.c → pm_unicode.c} +40 -40
- data/src/enc/pm_windows_31j.c +56 -0
- data/src/node.c +1293 -1233
- data/src/pack.c +247 -247
- data/src/prettyprint.c +1479 -1479
- data/src/{yarp.c → prism.c} +5205 -5083
- data/src/regexp.c +132 -132
- data/src/serialize.c +1121 -1121
- data/src/token_type.c +169 -167
- data/src/unescape.c +106 -87
- data/src/util/pm_buffer.c +103 -0
- data/src/util/{yp_char.c → pm_char.c} +72 -72
- data/src/util/{yp_constant_pool.c → pm_constant_pool.c} +85 -64
- data/src/util/{yp_list.c → pm_list.c} +10 -10
- data/src/util/{yp_memchr.c → pm_memchr.c} +6 -4
- data/src/util/{yp_newline_list.c → pm_newline_list.c} +21 -21
- data/src/util/{yp_state_stack.c → pm_state_stack.c} +4 -4
- data/src/util/{yp_string.c → pm_string.c} +38 -38
- data/src/util/pm_string_list.c +29 -0
- data/src/util/{yp_strncasecmp.c → pm_strncasecmp.c} +1 -1
- data/src/util/{yp_strpbrk.c → pm_strpbrk.c} +8 -8
- data/yarp.gemspec +68 -59
- metadata +70 -61
- data/ext/yarp/api_node.c +0 -4728
- data/ext/yarp/extension.h +0 -18
- data/include/yarp/ast.h +0 -1929
- data/include/yarp/defines.h +0 -45
- data/include/yarp/diagnostic.h +0 -226
- data/include/yarp/node.h +0 -42
- data/include/yarp/pack.h +0 -141
- data/include/yarp/regexp.h +0 -19
- data/include/yarp/unescape.h +0 -44
- data/include/yarp/util/yp_buffer.h +0 -51
- data/include/yarp/util/yp_memchr.h +0 -14
- data/include/yarp/util/yp_state_stack.h +0 -24
- data/include/yarp/util/yp_string_list.h +0 -25
- data/include/yarp/version.h +0 -4
- data/include/yarp.h +0 -82
- data/src/enc/yp_big5.c +0 -52
- data/src/enc/yp_euc_jp.c +0 -58
- data/src/enc/yp_shift_jis.c +0 -56
- data/src/enc/yp_windows_31j.c +0 -56
- data/src/util/yp_buffer.c +0 -101
- data/src/util/yp_string_list.c +0 -29
data/src/node.c
CHANGED
|
@@ -6,1067 +6,1067 @@
|
|
|
6
6
|
/* template */
|
|
7
7
|
/******************************************************************************/
|
|
8
8
|
#line 2 "node.c.erb"
|
|
9
|
-
#include "
|
|
9
|
+
#include "prism/node.h"
|
|
10
10
|
|
|
11
11
|
// Clear the node but preserves the location.
|
|
12
|
-
void
|
|
13
|
-
|
|
14
|
-
memset(node, 0, sizeof(
|
|
12
|
+
void pm_node_clear(pm_node_t *node) {
|
|
13
|
+
pm_location_t location = node->location;
|
|
14
|
+
memset(node, 0, sizeof(pm_node_t));
|
|
15
15
|
node->location = location;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
static void
|
|
19
|
-
|
|
19
|
+
pm_node_memsize_node(pm_node_t *node, pm_memsize_t *memsize);
|
|
20
20
|
|
|
21
21
|
// Calculate the size of the node list in bytes.
|
|
22
22
|
static size_t
|
|
23
|
-
|
|
24
|
-
size_t size = sizeof(
|
|
23
|
+
pm_node_list_memsize(pm_node_list_t *node_list, pm_memsize_t *memsize) {
|
|
24
|
+
size_t size = sizeof(pm_node_list_t) + (node_list->capacity * sizeof(pm_node_t *));
|
|
25
25
|
for (size_t index = 0; index < node_list->size; index++) {
|
|
26
|
-
|
|
26
|
+
pm_node_memsize_node(node_list->nodes[index], memsize);
|
|
27
27
|
}
|
|
28
28
|
return size;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
// Append a new node onto the end of the node list.
|
|
32
32
|
void
|
|
33
|
-
|
|
33
|
+
pm_node_list_append(pm_node_list_t *list, pm_node_t *node) {
|
|
34
34
|
if (list->size == list->capacity) {
|
|
35
35
|
list->capacity = list->capacity == 0 ? 4 : list->capacity * 2;
|
|
36
|
-
list->nodes = (
|
|
36
|
+
list->nodes = (pm_node_t **) realloc(list->nodes, sizeof(pm_node_t *) * list->capacity);
|
|
37
37
|
}
|
|
38
38
|
list->nodes[list->size++] = node;
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
PRISM_EXPORTED_FUNCTION void
|
|
42
|
+
pm_node_destroy(pm_parser_t *parser, pm_node_t *node);
|
|
43
43
|
|
|
44
44
|
// Deallocate the inner memory of a list of nodes. The parser argument is not
|
|
45
45
|
// used, but is here for the future possibility of pre-allocating memory pools.
|
|
46
46
|
static void
|
|
47
|
-
|
|
47
|
+
pm_node_list_free(pm_parser_t *parser, pm_node_list_t *list) {
|
|
48
48
|
if (list->capacity > 0) {
|
|
49
49
|
for (size_t index = 0; index < list->size; index++) {
|
|
50
|
-
|
|
50
|
+
pm_node_destroy(parser, list->nodes[index]);
|
|
51
51
|
}
|
|
52
52
|
free(list->nodes);
|
|
53
53
|
}
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
// Deallocate the space for a
|
|
56
|
+
// Deallocate the space for a pm_node_t. Similarly to pm_node_alloc, we're not
|
|
57
57
|
// using the parser argument, but it's there to allow for the future possibility
|
|
58
58
|
// of pre-allocating larger memory pools.
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
switch (
|
|
59
|
+
PRISM_EXPORTED_FUNCTION void
|
|
60
|
+
pm_node_destroy(pm_parser_t *parser, pm_node_t *node) {
|
|
61
|
+
switch (PM_NODE_TYPE(node)) {
|
|
62
62
|
#line 57 "node.c.erb"
|
|
63
|
-
case
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
case PM_ALIAS_GLOBAL_VARIABLE_NODE: {
|
|
64
|
+
pm_alias_global_variable_node_t *cast = (pm_alias_global_variable_node_t *) node;
|
|
65
|
+
pm_node_destroy(parser, (pm_node_t *)cast->new_name);
|
|
66
|
+
pm_node_destroy(parser, (pm_node_t *)cast->old_name);
|
|
67
67
|
break;
|
|
68
68
|
}
|
|
69
69
|
#line 57 "node.c.erb"
|
|
70
|
-
case
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
70
|
+
case PM_ALIAS_METHOD_NODE: {
|
|
71
|
+
pm_alias_method_node_t *cast = (pm_alias_method_node_t *) node;
|
|
72
|
+
pm_node_destroy(parser, (pm_node_t *)cast->new_name);
|
|
73
|
+
pm_node_destroy(parser, (pm_node_t *)cast->old_name);
|
|
74
74
|
break;
|
|
75
75
|
}
|
|
76
76
|
#line 57 "node.c.erb"
|
|
77
|
-
case
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
77
|
+
case PM_ALTERNATION_PATTERN_NODE: {
|
|
78
|
+
pm_alternation_pattern_node_t *cast = (pm_alternation_pattern_node_t *) node;
|
|
79
|
+
pm_node_destroy(parser, (pm_node_t *)cast->left);
|
|
80
|
+
pm_node_destroy(parser, (pm_node_t *)cast->right);
|
|
81
81
|
break;
|
|
82
82
|
}
|
|
83
83
|
#line 57 "node.c.erb"
|
|
84
|
-
case
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
case PM_AND_NODE: {
|
|
85
|
+
pm_and_node_t *cast = (pm_and_node_t *) node;
|
|
86
|
+
pm_node_destroy(parser, (pm_node_t *)cast->left);
|
|
87
|
+
pm_node_destroy(parser, (pm_node_t *)cast->right);
|
|
88
88
|
break;
|
|
89
89
|
}
|
|
90
90
|
#line 57 "node.c.erb"
|
|
91
|
-
case
|
|
92
|
-
|
|
93
|
-
|
|
91
|
+
case PM_ARGUMENTS_NODE: {
|
|
92
|
+
pm_arguments_node_t *cast = (pm_arguments_node_t *) node;
|
|
93
|
+
pm_node_list_free(parser, &cast->arguments);
|
|
94
94
|
break;
|
|
95
95
|
}
|
|
96
96
|
#line 57 "node.c.erb"
|
|
97
|
-
case
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
case PM_ARRAY_NODE: {
|
|
98
|
+
pm_array_node_t *cast = (pm_array_node_t *) node;
|
|
99
|
+
pm_node_list_free(parser, &cast->elements);
|
|
100
100
|
break;
|
|
101
101
|
}
|
|
102
102
|
#line 57 "node.c.erb"
|
|
103
|
-
case
|
|
104
|
-
|
|
103
|
+
case PM_ARRAY_PATTERN_NODE: {
|
|
104
|
+
pm_array_pattern_node_t *cast = (pm_array_pattern_node_t *) node;
|
|
105
105
|
if (cast->constant != NULL) {
|
|
106
|
-
|
|
106
|
+
pm_node_destroy(parser, (pm_node_t *)cast->constant);
|
|
107
107
|
}
|
|
108
|
-
|
|
108
|
+
pm_node_list_free(parser, &cast->requireds);
|
|
109
109
|
if (cast->rest != NULL) {
|
|
110
|
-
|
|
110
|
+
pm_node_destroy(parser, (pm_node_t *)cast->rest);
|
|
111
111
|
}
|
|
112
|
-
|
|
112
|
+
pm_node_list_free(parser, &cast->posts);
|
|
113
113
|
break;
|
|
114
114
|
}
|
|
115
115
|
#line 57 "node.c.erb"
|
|
116
|
-
case
|
|
117
|
-
|
|
118
|
-
|
|
116
|
+
case PM_ASSOC_NODE: {
|
|
117
|
+
pm_assoc_node_t *cast = (pm_assoc_node_t *) node;
|
|
118
|
+
pm_node_destroy(parser, (pm_node_t *)cast->key);
|
|
119
119
|
if (cast->value != NULL) {
|
|
120
|
-
|
|
120
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
121
121
|
}
|
|
122
122
|
break;
|
|
123
123
|
}
|
|
124
124
|
#line 57 "node.c.erb"
|
|
125
|
-
case
|
|
126
|
-
|
|
125
|
+
case PM_ASSOC_SPLAT_NODE: {
|
|
126
|
+
pm_assoc_splat_node_t *cast = (pm_assoc_splat_node_t *) node;
|
|
127
127
|
if (cast->value != NULL) {
|
|
128
|
-
|
|
128
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
129
129
|
}
|
|
130
130
|
break;
|
|
131
131
|
}
|
|
132
132
|
#line 57 "node.c.erb"
|
|
133
|
-
case
|
|
133
|
+
case PM_BACK_REFERENCE_READ_NODE: {
|
|
134
134
|
break;
|
|
135
135
|
}
|
|
136
136
|
#line 57 "node.c.erb"
|
|
137
|
-
case
|
|
138
|
-
|
|
137
|
+
case PM_BEGIN_NODE: {
|
|
138
|
+
pm_begin_node_t *cast = (pm_begin_node_t *) node;
|
|
139
139
|
if (cast->statements != NULL) {
|
|
140
|
-
|
|
140
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
141
141
|
}
|
|
142
142
|
if (cast->rescue_clause != NULL) {
|
|
143
|
-
|
|
143
|
+
pm_node_destroy(parser, (pm_node_t *)cast->rescue_clause);
|
|
144
144
|
}
|
|
145
145
|
if (cast->else_clause != NULL) {
|
|
146
|
-
|
|
146
|
+
pm_node_destroy(parser, (pm_node_t *)cast->else_clause);
|
|
147
147
|
}
|
|
148
148
|
if (cast->ensure_clause != NULL) {
|
|
149
|
-
|
|
149
|
+
pm_node_destroy(parser, (pm_node_t *)cast->ensure_clause);
|
|
150
150
|
}
|
|
151
151
|
break;
|
|
152
152
|
}
|
|
153
153
|
#line 57 "node.c.erb"
|
|
154
|
-
case
|
|
155
|
-
|
|
154
|
+
case PM_BLOCK_ARGUMENT_NODE: {
|
|
155
|
+
pm_block_argument_node_t *cast = (pm_block_argument_node_t *) node;
|
|
156
156
|
if (cast->expression != NULL) {
|
|
157
|
-
|
|
157
|
+
pm_node_destroy(parser, (pm_node_t *)cast->expression);
|
|
158
158
|
}
|
|
159
159
|
break;
|
|
160
160
|
}
|
|
161
161
|
#line 57 "node.c.erb"
|
|
162
|
-
case
|
|
162
|
+
case PM_BLOCK_LOCAL_VARIABLE_NODE: {
|
|
163
163
|
break;
|
|
164
164
|
}
|
|
165
165
|
#line 57 "node.c.erb"
|
|
166
|
-
case
|
|
167
|
-
|
|
168
|
-
|
|
166
|
+
case PM_BLOCK_NODE: {
|
|
167
|
+
pm_block_node_t *cast = (pm_block_node_t *) node;
|
|
168
|
+
pm_constant_id_list_free(&cast->locals);
|
|
169
169
|
if (cast->parameters != NULL) {
|
|
170
|
-
|
|
170
|
+
pm_node_destroy(parser, (pm_node_t *)cast->parameters);
|
|
171
171
|
}
|
|
172
172
|
if (cast->body != NULL) {
|
|
173
|
-
|
|
173
|
+
pm_node_destroy(parser, (pm_node_t *)cast->body);
|
|
174
174
|
}
|
|
175
175
|
break;
|
|
176
176
|
}
|
|
177
177
|
#line 57 "node.c.erb"
|
|
178
|
-
case
|
|
178
|
+
case PM_BLOCK_PARAMETER_NODE: {
|
|
179
179
|
break;
|
|
180
180
|
}
|
|
181
181
|
#line 57 "node.c.erb"
|
|
182
|
-
case
|
|
183
|
-
|
|
182
|
+
case PM_BLOCK_PARAMETERS_NODE: {
|
|
183
|
+
pm_block_parameters_node_t *cast = (pm_block_parameters_node_t *) node;
|
|
184
184
|
if (cast->parameters != NULL) {
|
|
185
|
-
|
|
185
|
+
pm_node_destroy(parser, (pm_node_t *)cast->parameters);
|
|
186
186
|
}
|
|
187
|
-
|
|
187
|
+
pm_node_list_free(parser, &cast->locals);
|
|
188
188
|
break;
|
|
189
189
|
}
|
|
190
190
|
#line 57 "node.c.erb"
|
|
191
|
-
case
|
|
192
|
-
|
|
191
|
+
case PM_BREAK_NODE: {
|
|
192
|
+
pm_break_node_t *cast = (pm_break_node_t *) node;
|
|
193
193
|
if (cast->arguments != NULL) {
|
|
194
|
-
|
|
194
|
+
pm_node_destroy(parser, (pm_node_t *)cast->arguments);
|
|
195
195
|
}
|
|
196
196
|
break;
|
|
197
197
|
}
|
|
198
198
|
#line 57 "node.c.erb"
|
|
199
|
-
case
|
|
200
|
-
|
|
199
|
+
case PM_CALL_AND_WRITE_NODE: {
|
|
200
|
+
pm_call_and_write_node_t *cast = (pm_call_and_write_node_t *) node;
|
|
201
201
|
if (cast->receiver != NULL) {
|
|
202
|
-
|
|
202
|
+
pm_node_destroy(parser, (pm_node_t *)cast->receiver);
|
|
203
203
|
}
|
|
204
204
|
if (cast->arguments != NULL) {
|
|
205
|
-
|
|
205
|
+
pm_node_destroy(parser, (pm_node_t *)cast->arguments);
|
|
206
206
|
}
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
207
|
+
pm_string_free(&cast->read_name);
|
|
208
|
+
pm_string_free(&cast->write_name);
|
|
209
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
210
210
|
break;
|
|
211
211
|
}
|
|
212
212
|
#line 57 "node.c.erb"
|
|
213
|
-
case
|
|
214
|
-
|
|
213
|
+
case PM_CALL_NODE: {
|
|
214
|
+
pm_call_node_t *cast = (pm_call_node_t *) node;
|
|
215
215
|
if (cast->receiver != NULL) {
|
|
216
|
-
|
|
216
|
+
pm_node_destroy(parser, (pm_node_t *)cast->receiver);
|
|
217
217
|
}
|
|
218
218
|
if (cast->arguments != NULL) {
|
|
219
|
-
|
|
219
|
+
pm_node_destroy(parser, (pm_node_t *)cast->arguments);
|
|
220
220
|
}
|
|
221
221
|
if (cast->block != NULL) {
|
|
222
|
-
|
|
222
|
+
pm_node_destroy(parser, (pm_node_t *)cast->block);
|
|
223
223
|
}
|
|
224
|
-
|
|
224
|
+
pm_string_free(&cast->name);
|
|
225
225
|
break;
|
|
226
226
|
}
|
|
227
227
|
#line 57 "node.c.erb"
|
|
228
|
-
case
|
|
229
|
-
|
|
228
|
+
case PM_CALL_OPERATOR_WRITE_NODE: {
|
|
229
|
+
pm_call_operator_write_node_t *cast = (pm_call_operator_write_node_t *) node;
|
|
230
230
|
if (cast->receiver != NULL) {
|
|
231
|
-
|
|
231
|
+
pm_node_destroy(parser, (pm_node_t *)cast->receiver);
|
|
232
232
|
}
|
|
233
233
|
if (cast->arguments != NULL) {
|
|
234
|
-
|
|
234
|
+
pm_node_destroy(parser, (pm_node_t *)cast->arguments);
|
|
235
235
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
236
|
+
pm_string_free(&cast->read_name);
|
|
237
|
+
pm_string_free(&cast->write_name);
|
|
238
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
239
239
|
break;
|
|
240
240
|
}
|
|
241
241
|
#line 57 "node.c.erb"
|
|
242
|
-
case
|
|
243
|
-
|
|
242
|
+
case PM_CALL_OR_WRITE_NODE: {
|
|
243
|
+
pm_call_or_write_node_t *cast = (pm_call_or_write_node_t *) node;
|
|
244
244
|
if (cast->receiver != NULL) {
|
|
245
|
-
|
|
245
|
+
pm_node_destroy(parser, (pm_node_t *)cast->receiver);
|
|
246
246
|
}
|
|
247
247
|
if (cast->arguments != NULL) {
|
|
248
|
-
|
|
248
|
+
pm_node_destroy(parser, (pm_node_t *)cast->arguments);
|
|
249
249
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
250
|
+
pm_string_free(&cast->read_name);
|
|
251
|
+
pm_string_free(&cast->write_name);
|
|
252
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
253
253
|
break;
|
|
254
254
|
}
|
|
255
255
|
#line 57 "node.c.erb"
|
|
256
|
-
case
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
256
|
+
case PM_CAPTURE_PATTERN_NODE: {
|
|
257
|
+
pm_capture_pattern_node_t *cast = (pm_capture_pattern_node_t *) node;
|
|
258
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
259
|
+
pm_node_destroy(parser, (pm_node_t *)cast->target);
|
|
260
260
|
break;
|
|
261
261
|
}
|
|
262
262
|
#line 57 "node.c.erb"
|
|
263
|
-
case
|
|
264
|
-
|
|
263
|
+
case PM_CASE_NODE: {
|
|
264
|
+
pm_case_node_t *cast = (pm_case_node_t *) node;
|
|
265
265
|
if (cast->predicate != NULL) {
|
|
266
|
-
|
|
266
|
+
pm_node_destroy(parser, (pm_node_t *)cast->predicate);
|
|
267
267
|
}
|
|
268
|
-
|
|
268
|
+
pm_node_list_free(parser, &cast->conditions);
|
|
269
269
|
if (cast->consequent != NULL) {
|
|
270
|
-
|
|
270
|
+
pm_node_destroy(parser, (pm_node_t *)cast->consequent);
|
|
271
271
|
}
|
|
272
272
|
break;
|
|
273
273
|
}
|
|
274
274
|
#line 57 "node.c.erb"
|
|
275
|
-
case
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
275
|
+
case PM_CLASS_NODE: {
|
|
276
|
+
pm_class_node_t *cast = (pm_class_node_t *) node;
|
|
277
|
+
pm_constant_id_list_free(&cast->locals);
|
|
278
|
+
pm_node_destroy(parser, (pm_node_t *)cast->constant_path);
|
|
279
279
|
if (cast->superclass != NULL) {
|
|
280
|
-
|
|
280
|
+
pm_node_destroy(parser, (pm_node_t *)cast->superclass);
|
|
281
281
|
}
|
|
282
282
|
if (cast->body != NULL) {
|
|
283
|
-
|
|
283
|
+
pm_node_destroy(parser, (pm_node_t *)cast->body);
|
|
284
284
|
}
|
|
285
285
|
break;
|
|
286
286
|
}
|
|
287
287
|
#line 57 "node.c.erb"
|
|
288
|
-
case
|
|
289
|
-
|
|
290
|
-
|
|
288
|
+
case PM_CLASS_VARIABLE_AND_WRITE_NODE: {
|
|
289
|
+
pm_class_variable_and_write_node_t *cast = (pm_class_variable_and_write_node_t *) node;
|
|
290
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
291
291
|
break;
|
|
292
292
|
}
|
|
293
293
|
#line 57 "node.c.erb"
|
|
294
|
-
case
|
|
295
|
-
|
|
296
|
-
|
|
294
|
+
case PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE: {
|
|
295
|
+
pm_class_variable_operator_write_node_t *cast = (pm_class_variable_operator_write_node_t *) node;
|
|
296
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
297
297
|
break;
|
|
298
298
|
}
|
|
299
299
|
#line 57 "node.c.erb"
|
|
300
|
-
case
|
|
301
|
-
|
|
302
|
-
|
|
300
|
+
case PM_CLASS_VARIABLE_OR_WRITE_NODE: {
|
|
301
|
+
pm_class_variable_or_write_node_t *cast = (pm_class_variable_or_write_node_t *) node;
|
|
302
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
303
303
|
break;
|
|
304
304
|
}
|
|
305
305
|
#line 57 "node.c.erb"
|
|
306
|
-
case
|
|
306
|
+
case PM_CLASS_VARIABLE_READ_NODE: {
|
|
307
307
|
break;
|
|
308
308
|
}
|
|
309
309
|
#line 57 "node.c.erb"
|
|
310
|
-
case
|
|
310
|
+
case PM_CLASS_VARIABLE_TARGET_NODE: {
|
|
311
311
|
break;
|
|
312
312
|
}
|
|
313
313
|
#line 57 "node.c.erb"
|
|
314
|
-
case
|
|
315
|
-
|
|
316
|
-
|
|
314
|
+
case PM_CLASS_VARIABLE_WRITE_NODE: {
|
|
315
|
+
pm_class_variable_write_node_t *cast = (pm_class_variable_write_node_t *) node;
|
|
316
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
317
317
|
break;
|
|
318
318
|
}
|
|
319
319
|
#line 57 "node.c.erb"
|
|
320
|
-
case
|
|
321
|
-
|
|
322
|
-
|
|
320
|
+
case PM_CONSTANT_AND_WRITE_NODE: {
|
|
321
|
+
pm_constant_and_write_node_t *cast = (pm_constant_and_write_node_t *) node;
|
|
322
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
323
323
|
break;
|
|
324
324
|
}
|
|
325
325
|
#line 57 "node.c.erb"
|
|
326
|
-
case
|
|
327
|
-
|
|
328
|
-
|
|
326
|
+
case PM_CONSTANT_OPERATOR_WRITE_NODE: {
|
|
327
|
+
pm_constant_operator_write_node_t *cast = (pm_constant_operator_write_node_t *) node;
|
|
328
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
329
329
|
break;
|
|
330
330
|
}
|
|
331
331
|
#line 57 "node.c.erb"
|
|
332
|
-
case
|
|
333
|
-
|
|
334
|
-
|
|
332
|
+
case PM_CONSTANT_OR_WRITE_NODE: {
|
|
333
|
+
pm_constant_or_write_node_t *cast = (pm_constant_or_write_node_t *) node;
|
|
334
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
335
335
|
break;
|
|
336
336
|
}
|
|
337
337
|
#line 57 "node.c.erb"
|
|
338
|
-
case
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
338
|
+
case PM_CONSTANT_PATH_AND_WRITE_NODE: {
|
|
339
|
+
pm_constant_path_and_write_node_t *cast = (pm_constant_path_and_write_node_t *) node;
|
|
340
|
+
pm_node_destroy(parser, (pm_node_t *)cast->target);
|
|
341
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
342
342
|
break;
|
|
343
343
|
}
|
|
344
344
|
#line 57 "node.c.erb"
|
|
345
|
-
case
|
|
346
|
-
|
|
345
|
+
case PM_CONSTANT_PATH_NODE: {
|
|
346
|
+
pm_constant_path_node_t *cast = (pm_constant_path_node_t *) node;
|
|
347
347
|
if (cast->parent != NULL) {
|
|
348
|
-
|
|
348
|
+
pm_node_destroy(parser, (pm_node_t *)cast->parent);
|
|
349
349
|
}
|
|
350
|
-
|
|
350
|
+
pm_node_destroy(parser, (pm_node_t *)cast->child);
|
|
351
351
|
break;
|
|
352
352
|
}
|
|
353
353
|
#line 57 "node.c.erb"
|
|
354
|
-
case
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
354
|
+
case PM_CONSTANT_PATH_OPERATOR_WRITE_NODE: {
|
|
355
|
+
pm_constant_path_operator_write_node_t *cast = (pm_constant_path_operator_write_node_t *) node;
|
|
356
|
+
pm_node_destroy(parser, (pm_node_t *)cast->target);
|
|
357
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
358
358
|
break;
|
|
359
359
|
}
|
|
360
360
|
#line 57 "node.c.erb"
|
|
361
|
-
case
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
361
|
+
case PM_CONSTANT_PATH_OR_WRITE_NODE: {
|
|
362
|
+
pm_constant_path_or_write_node_t *cast = (pm_constant_path_or_write_node_t *) node;
|
|
363
|
+
pm_node_destroy(parser, (pm_node_t *)cast->target);
|
|
364
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
365
365
|
break;
|
|
366
366
|
}
|
|
367
367
|
#line 57 "node.c.erb"
|
|
368
|
-
case
|
|
369
|
-
|
|
368
|
+
case PM_CONSTANT_PATH_TARGET_NODE: {
|
|
369
|
+
pm_constant_path_target_node_t *cast = (pm_constant_path_target_node_t *) node;
|
|
370
370
|
if (cast->parent != NULL) {
|
|
371
|
-
|
|
371
|
+
pm_node_destroy(parser, (pm_node_t *)cast->parent);
|
|
372
372
|
}
|
|
373
|
-
|
|
373
|
+
pm_node_destroy(parser, (pm_node_t *)cast->child);
|
|
374
374
|
break;
|
|
375
375
|
}
|
|
376
376
|
#line 57 "node.c.erb"
|
|
377
|
-
case
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
377
|
+
case PM_CONSTANT_PATH_WRITE_NODE: {
|
|
378
|
+
pm_constant_path_write_node_t *cast = (pm_constant_path_write_node_t *) node;
|
|
379
|
+
pm_node_destroy(parser, (pm_node_t *)cast->target);
|
|
380
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
381
381
|
break;
|
|
382
382
|
}
|
|
383
383
|
#line 57 "node.c.erb"
|
|
384
|
-
case
|
|
384
|
+
case PM_CONSTANT_READ_NODE: {
|
|
385
385
|
break;
|
|
386
386
|
}
|
|
387
387
|
#line 57 "node.c.erb"
|
|
388
|
-
case
|
|
388
|
+
case PM_CONSTANT_TARGET_NODE: {
|
|
389
389
|
break;
|
|
390
390
|
}
|
|
391
391
|
#line 57 "node.c.erb"
|
|
392
|
-
case
|
|
393
|
-
|
|
394
|
-
|
|
392
|
+
case PM_CONSTANT_WRITE_NODE: {
|
|
393
|
+
pm_constant_write_node_t *cast = (pm_constant_write_node_t *) node;
|
|
394
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
395
395
|
break;
|
|
396
396
|
}
|
|
397
397
|
#line 57 "node.c.erb"
|
|
398
|
-
case
|
|
399
|
-
|
|
398
|
+
case PM_DEF_NODE: {
|
|
399
|
+
pm_def_node_t *cast = (pm_def_node_t *) node;
|
|
400
400
|
if (cast->receiver != NULL) {
|
|
401
|
-
|
|
401
|
+
pm_node_destroy(parser, (pm_node_t *)cast->receiver);
|
|
402
402
|
}
|
|
403
403
|
if (cast->parameters != NULL) {
|
|
404
|
-
|
|
404
|
+
pm_node_destroy(parser, (pm_node_t *)cast->parameters);
|
|
405
405
|
}
|
|
406
406
|
if (cast->body != NULL) {
|
|
407
|
-
|
|
407
|
+
pm_node_destroy(parser, (pm_node_t *)cast->body);
|
|
408
408
|
}
|
|
409
|
-
|
|
409
|
+
pm_constant_id_list_free(&cast->locals);
|
|
410
410
|
break;
|
|
411
411
|
}
|
|
412
412
|
#line 57 "node.c.erb"
|
|
413
|
-
case
|
|
414
|
-
|
|
415
|
-
|
|
413
|
+
case PM_DEFINED_NODE: {
|
|
414
|
+
pm_defined_node_t *cast = (pm_defined_node_t *) node;
|
|
415
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
416
416
|
break;
|
|
417
417
|
}
|
|
418
418
|
#line 57 "node.c.erb"
|
|
419
|
-
case
|
|
420
|
-
|
|
419
|
+
case PM_ELSE_NODE: {
|
|
420
|
+
pm_else_node_t *cast = (pm_else_node_t *) node;
|
|
421
421
|
if (cast->statements != NULL) {
|
|
422
|
-
|
|
422
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
423
423
|
}
|
|
424
424
|
break;
|
|
425
425
|
}
|
|
426
426
|
#line 57 "node.c.erb"
|
|
427
|
-
case
|
|
428
|
-
|
|
427
|
+
case PM_EMBEDDED_STATEMENTS_NODE: {
|
|
428
|
+
pm_embedded_statements_node_t *cast = (pm_embedded_statements_node_t *) node;
|
|
429
429
|
if (cast->statements != NULL) {
|
|
430
|
-
|
|
430
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
431
431
|
}
|
|
432
432
|
break;
|
|
433
433
|
}
|
|
434
434
|
#line 57 "node.c.erb"
|
|
435
|
-
case
|
|
436
|
-
|
|
437
|
-
|
|
435
|
+
case PM_EMBEDDED_VARIABLE_NODE: {
|
|
436
|
+
pm_embedded_variable_node_t *cast = (pm_embedded_variable_node_t *) node;
|
|
437
|
+
pm_node_destroy(parser, (pm_node_t *)cast->variable);
|
|
438
438
|
break;
|
|
439
439
|
}
|
|
440
440
|
#line 57 "node.c.erb"
|
|
441
|
-
case
|
|
442
|
-
|
|
441
|
+
case PM_ENSURE_NODE: {
|
|
442
|
+
pm_ensure_node_t *cast = (pm_ensure_node_t *) node;
|
|
443
443
|
if (cast->statements != NULL) {
|
|
444
|
-
|
|
444
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
445
445
|
}
|
|
446
446
|
break;
|
|
447
447
|
}
|
|
448
448
|
#line 57 "node.c.erb"
|
|
449
|
-
case
|
|
449
|
+
case PM_FALSE_NODE: {
|
|
450
450
|
break;
|
|
451
451
|
}
|
|
452
452
|
#line 57 "node.c.erb"
|
|
453
|
-
case
|
|
454
|
-
|
|
453
|
+
case PM_FIND_PATTERN_NODE: {
|
|
454
|
+
pm_find_pattern_node_t *cast = (pm_find_pattern_node_t *) node;
|
|
455
455
|
if (cast->constant != NULL) {
|
|
456
|
-
|
|
456
|
+
pm_node_destroy(parser, (pm_node_t *)cast->constant);
|
|
457
457
|
}
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
458
|
+
pm_node_destroy(parser, (pm_node_t *)cast->left);
|
|
459
|
+
pm_node_list_free(parser, &cast->requireds);
|
|
460
|
+
pm_node_destroy(parser, (pm_node_t *)cast->right);
|
|
461
461
|
break;
|
|
462
462
|
}
|
|
463
463
|
#line 57 "node.c.erb"
|
|
464
|
-
case
|
|
465
|
-
|
|
464
|
+
case PM_FLIP_FLOP_NODE: {
|
|
465
|
+
pm_flip_flop_node_t *cast = (pm_flip_flop_node_t *) node;
|
|
466
466
|
if (cast->left != NULL) {
|
|
467
|
-
|
|
467
|
+
pm_node_destroy(parser, (pm_node_t *)cast->left);
|
|
468
468
|
}
|
|
469
469
|
if (cast->right != NULL) {
|
|
470
|
-
|
|
470
|
+
pm_node_destroy(parser, (pm_node_t *)cast->right);
|
|
471
471
|
}
|
|
472
472
|
break;
|
|
473
473
|
}
|
|
474
474
|
#line 57 "node.c.erb"
|
|
475
|
-
case
|
|
475
|
+
case PM_FLOAT_NODE: {
|
|
476
476
|
break;
|
|
477
477
|
}
|
|
478
478
|
#line 57 "node.c.erb"
|
|
479
|
-
case
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
479
|
+
case PM_FOR_NODE: {
|
|
480
|
+
pm_for_node_t *cast = (pm_for_node_t *) node;
|
|
481
|
+
pm_node_destroy(parser, (pm_node_t *)cast->index);
|
|
482
|
+
pm_node_destroy(parser, (pm_node_t *)cast->collection);
|
|
483
483
|
if (cast->statements != NULL) {
|
|
484
|
-
|
|
484
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
485
485
|
}
|
|
486
486
|
break;
|
|
487
487
|
}
|
|
488
488
|
#line 57 "node.c.erb"
|
|
489
|
-
case
|
|
489
|
+
case PM_FORWARDING_ARGUMENTS_NODE: {
|
|
490
490
|
break;
|
|
491
491
|
}
|
|
492
492
|
#line 57 "node.c.erb"
|
|
493
|
-
case
|
|
493
|
+
case PM_FORWARDING_PARAMETER_NODE: {
|
|
494
494
|
break;
|
|
495
495
|
}
|
|
496
496
|
#line 57 "node.c.erb"
|
|
497
|
-
case
|
|
498
|
-
|
|
497
|
+
case PM_FORWARDING_SUPER_NODE: {
|
|
498
|
+
pm_forwarding_super_node_t *cast = (pm_forwarding_super_node_t *) node;
|
|
499
499
|
if (cast->block != NULL) {
|
|
500
|
-
|
|
500
|
+
pm_node_destroy(parser, (pm_node_t *)cast->block);
|
|
501
501
|
}
|
|
502
502
|
break;
|
|
503
503
|
}
|
|
504
504
|
#line 57 "node.c.erb"
|
|
505
|
-
case
|
|
506
|
-
|
|
507
|
-
|
|
505
|
+
case PM_GLOBAL_VARIABLE_AND_WRITE_NODE: {
|
|
506
|
+
pm_global_variable_and_write_node_t *cast = (pm_global_variable_and_write_node_t *) node;
|
|
507
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
508
508
|
break;
|
|
509
509
|
}
|
|
510
510
|
#line 57 "node.c.erb"
|
|
511
|
-
case
|
|
512
|
-
|
|
513
|
-
|
|
511
|
+
case PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE: {
|
|
512
|
+
pm_global_variable_operator_write_node_t *cast = (pm_global_variable_operator_write_node_t *) node;
|
|
513
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
514
514
|
break;
|
|
515
515
|
}
|
|
516
516
|
#line 57 "node.c.erb"
|
|
517
|
-
case
|
|
518
|
-
|
|
519
|
-
|
|
517
|
+
case PM_GLOBAL_VARIABLE_OR_WRITE_NODE: {
|
|
518
|
+
pm_global_variable_or_write_node_t *cast = (pm_global_variable_or_write_node_t *) node;
|
|
519
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
520
520
|
break;
|
|
521
521
|
}
|
|
522
522
|
#line 57 "node.c.erb"
|
|
523
|
-
case
|
|
523
|
+
case PM_GLOBAL_VARIABLE_READ_NODE: {
|
|
524
524
|
break;
|
|
525
525
|
}
|
|
526
526
|
#line 57 "node.c.erb"
|
|
527
|
-
case
|
|
527
|
+
case PM_GLOBAL_VARIABLE_TARGET_NODE: {
|
|
528
528
|
break;
|
|
529
529
|
}
|
|
530
530
|
#line 57 "node.c.erb"
|
|
531
|
-
case
|
|
532
|
-
|
|
533
|
-
|
|
531
|
+
case PM_GLOBAL_VARIABLE_WRITE_NODE: {
|
|
532
|
+
pm_global_variable_write_node_t *cast = (pm_global_variable_write_node_t *) node;
|
|
533
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
534
534
|
break;
|
|
535
535
|
}
|
|
536
536
|
#line 57 "node.c.erb"
|
|
537
|
-
case
|
|
538
|
-
|
|
539
|
-
|
|
537
|
+
case PM_HASH_NODE: {
|
|
538
|
+
pm_hash_node_t *cast = (pm_hash_node_t *) node;
|
|
539
|
+
pm_node_list_free(parser, &cast->elements);
|
|
540
540
|
break;
|
|
541
541
|
}
|
|
542
542
|
#line 57 "node.c.erb"
|
|
543
|
-
case
|
|
544
|
-
|
|
543
|
+
case PM_HASH_PATTERN_NODE: {
|
|
544
|
+
pm_hash_pattern_node_t *cast = (pm_hash_pattern_node_t *) node;
|
|
545
545
|
if (cast->constant != NULL) {
|
|
546
|
-
|
|
546
|
+
pm_node_destroy(parser, (pm_node_t *)cast->constant);
|
|
547
547
|
}
|
|
548
|
-
|
|
548
|
+
pm_node_list_free(parser, &cast->assocs);
|
|
549
549
|
if (cast->kwrest != NULL) {
|
|
550
|
-
|
|
550
|
+
pm_node_destroy(parser, (pm_node_t *)cast->kwrest);
|
|
551
551
|
}
|
|
552
552
|
break;
|
|
553
553
|
}
|
|
554
554
|
#line 57 "node.c.erb"
|
|
555
|
-
case
|
|
556
|
-
|
|
557
|
-
|
|
555
|
+
case PM_IF_NODE: {
|
|
556
|
+
pm_if_node_t *cast = (pm_if_node_t *) node;
|
|
557
|
+
pm_node_destroy(parser, (pm_node_t *)cast->predicate);
|
|
558
558
|
if (cast->statements != NULL) {
|
|
559
|
-
|
|
559
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
560
560
|
}
|
|
561
561
|
if (cast->consequent != NULL) {
|
|
562
|
-
|
|
562
|
+
pm_node_destroy(parser, (pm_node_t *)cast->consequent);
|
|
563
563
|
}
|
|
564
564
|
break;
|
|
565
565
|
}
|
|
566
566
|
#line 57 "node.c.erb"
|
|
567
|
-
case
|
|
568
|
-
|
|
569
|
-
|
|
567
|
+
case PM_IMAGINARY_NODE: {
|
|
568
|
+
pm_imaginary_node_t *cast = (pm_imaginary_node_t *) node;
|
|
569
|
+
pm_node_destroy(parser, (pm_node_t *)cast->numeric);
|
|
570
570
|
break;
|
|
571
571
|
}
|
|
572
572
|
#line 57 "node.c.erb"
|
|
573
|
-
case
|
|
574
|
-
|
|
575
|
-
|
|
573
|
+
case PM_IMPLICIT_NODE: {
|
|
574
|
+
pm_implicit_node_t *cast = (pm_implicit_node_t *) node;
|
|
575
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
576
576
|
break;
|
|
577
577
|
}
|
|
578
578
|
#line 57 "node.c.erb"
|
|
579
|
-
case
|
|
580
|
-
|
|
581
|
-
|
|
579
|
+
case PM_IN_NODE: {
|
|
580
|
+
pm_in_node_t *cast = (pm_in_node_t *) node;
|
|
581
|
+
pm_node_destroy(parser, (pm_node_t *)cast->pattern);
|
|
582
582
|
if (cast->statements != NULL) {
|
|
583
|
-
|
|
583
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
584
584
|
}
|
|
585
585
|
break;
|
|
586
586
|
}
|
|
587
587
|
#line 57 "node.c.erb"
|
|
588
|
-
case
|
|
589
|
-
|
|
590
|
-
|
|
588
|
+
case PM_INSTANCE_VARIABLE_AND_WRITE_NODE: {
|
|
589
|
+
pm_instance_variable_and_write_node_t *cast = (pm_instance_variable_and_write_node_t *) node;
|
|
590
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
591
591
|
break;
|
|
592
592
|
}
|
|
593
593
|
#line 57 "node.c.erb"
|
|
594
|
-
case
|
|
595
|
-
|
|
596
|
-
|
|
594
|
+
case PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE: {
|
|
595
|
+
pm_instance_variable_operator_write_node_t *cast = (pm_instance_variable_operator_write_node_t *) node;
|
|
596
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
597
597
|
break;
|
|
598
598
|
}
|
|
599
599
|
#line 57 "node.c.erb"
|
|
600
|
-
case
|
|
601
|
-
|
|
602
|
-
|
|
600
|
+
case PM_INSTANCE_VARIABLE_OR_WRITE_NODE: {
|
|
601
|
+
pm_instance_variable_or_write_node_t *cast = (pm_instance_variable_or_write_node_t *) node;
|
|
602
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
603
603
|
break;
|
|
604
604
|
}
|
|
605
605
|
#line 57 "node.c.erb"
|
|
606
|
-
case
|
|
606
|
+
case PM_INSTANCE_VARIABLE_READ_NODE: {
|
|
607
607
|
break;
|
|
608
608
|
}
|
|
609
609
|
#line 57 "node.c.erb"
|
|
610
|
-
case
|
|
610
|
+
case PM_INSTANCE_VARIABLE_TARGET_NODE: {
|
|
611
611
|
break;
|
|
612
612
|
}
|
|
613
613
|
#line 57 "node.c.erb"
|
|
614
|
-
case
|
|
615
|
-
|
|
616
|
-
|
|
614
|
+
case PM_INSTANCE_VARIABLE_WRITE_NODE: {
|
|
615
|
+
pm_instance_variable_write_node_t *cast = (pm_instance_variable_write_node_t *) node;
|
|
616
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
617
617
|
break;
|
|
618
618
|
}
|
|
619
619
|
#line 57 "node.c.erb"
|
|
620
|
-
case
|
|
620
|
+
case PM_INTEGER_NODE: {
|
|
621
621
|
break;
|
|
622
622
|
}
|
|
623
623
|
#line 57 "node.c.erb"
|
|
624
|
-
case
|
|
625
|
-
|
|
626
|
-
|
|
624
|
+
case PM_INTERPOLATED_MATCH_LAST_LINE_NODE: {
|
|
625
|
+
pm_interpolated_match_last_line_node_t *cast = (pm_interpolated_match_last_line_node_t *) node;
|
|
626
|
+
pm_node_list_free(parser, &cast->parts);
|
|
627
627
|
break;
|
|
628
628
|
}
|
|
629
629
|
#line 57 "node.c.erb"
|
|
630
|
-
case
|
|
631
|
-
|
|
632
|
-
|
|
630
|
+
case PM_INTERPOLATED_REGULAR_EXPRESSION_NODE: {
|
|
631
|
+
pm_interpolated_regular_expression_node_t *cast = (pm_interpolated_regular_expression_node_t *) node;
|
|
632
|
+
pm_node_list_free(parser, &cast->parts);
|
|
633
633
|
break;
|
|
634
634
|
}
|
|
635
635
|
#line 57 "node.c.erb"
|
|
636
|
-
case
|
|
637
|
-
|
|
638
|
-
|
|
636
|
+
case PM_INTERPOLATED_STRING_NODE: {
|
|
637
|
+
pm_interpolated_string_node_t *cast = (pm_interpolated_string_node_t *) node;
|
|
638
|
+
pm_node_list_free(parser, &cast->parts);
|
|
639
639
|
break;
|
|
640
640
|
}
|
|
641
641
|
#line 57 "node.c.erb"
|
|
642
|
-
case
|
|
643
|
-
|
|
644
|
-
|
|
642
|
+
case PM_INTERPOLATED_SYMBOL_NODE: {
|
|
643
|
+
pm_interpolated_symbol_node_t *cast = (pm_interpolated_symbol_node_t *) node;
|
|
644
|
+
pm_node_list_free(parser, &cast->parts);
|
|
645
645
|
break;
|
|
646
646
|
}
|
|
647
647
|
#line 57 "node.c.erb"
|
|
648
|
-
case
|
|
649
|
-
|
|
650
|
-
|
|
648
|
+
case PM_INTERPOLATED_X_STRING_NODE: {
|
|
649
|
+
pm_interpolated_x_string_node_t *cast = (pm_interpolated_x_string_node_t *) node;
|
|
650
|
+
pm_node_list_free(parser, &cast->parts);
|
|
651
651
|
break;
|
|
652
652
|
}
|
|
653
653
|
#line 57 "node.c.erb"
|
|
654
|
-
case
|
|
655
|
-
|
|
656
|
-
|
|
654
|
+
case PM_KEYWORD_HASH_NODE: {
|
|
655
|
+
pm_keyword_hash_node_t *cast = (pm_keyword_hash_node_t *) node;
|
|
656
|
+
pm_node_list_free(parser, &cast->elements);
|
|
657
657
|
break;
|
|
658
658
|
}
|
|
659
659
|
#line 57 "node.c.erb"
|
|
660
|
-
case
|
|
661
|
-
|
|
660
|
+
case PM_KEYWORD_PARAMETER_NODE: {
|
|
661
|
+
pm_keyword_parameter_node_t *cast = (pm_keyword_parameter_node_t *) node;
|
|
662
662
|
if (cast->value != NULL) {
|
|
663
|
-
|
|
663
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
664
664
|
}
|
|
665
665
|
break;
|
|
666
666
|
}
|
|
667
667
|
#line 57 "node.c.erb"
|
|
668
|
-
case
|
|
668
|
+
case PM_KEYWORD_REST_PARAMETER_NODE: {
|
|
669
669
|
break;
|
|
670
670
|
}
|
|
671
671
|
#line 57 "node.c.erb"
|
|
672
|
-
case
|
|
673
|
-
|
|
674
|
-
|
|
672
|
+
case PM_LAMBDA_NODE: {
|
|
673
|
+
pm_lambda_node_t *cast = (pm_lambda_node_t *) node;
|
|
674
|
+
pm_constant_id_list_free(&cast->locals);
|
|
675
675
|
if (cast->parameters != NULL) {
|
|
676
|
-
|
|
676
|
+
pm_node_destroy(parser, (pm_node_t *)cast->parameters);
|
|
677
677
|
}
|
|
678
678
|
if (cast->body != NULL) {
|
|
679
|
-
|
|
679
|
+
pm_node_destroy(parser, (pm_node_t *)cast->body);
|
|
680
680
|
}
|
|
681
681
|
break;
|
|
682
682
|
}
|
|
683
683
|
#line 57 "node.c.erb"
|
|
684
|
-
case
|
|
685
|
-
|
|
686
|
-
|
|
684
|
+
case PM_LOCAL_VARIABLE_AND_WRITE_NODE: {
|
|
685
|
+
pm_local_variable_and_write_node_t *cast = (pm_local_variable_and_write_node_t *) node;
|
|
686
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
687
687
|
break;
|
|
688
688
|
}
|
|
689
689
|
#line 57 "node.c.erb"
|
|
690
|
-
case
|
|
691
|
-
|
|
692
|
-
|
|
690
|
+
case PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE: {
|
|
691
|
+
pm_local_variable_operator_write_node_t *cast = (pm_local_variable_operator_write_node_t *) node;
|
|
692
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
693
693
|
break;
|
|
694
694
|
}
|
|
695
695
|
#line 57 "node.c.erb"
|
|
696
|
-
case
|
|
697
|
-
|
|
698
|
-
|
|
696
|
+
case PM_LOCAL_VARIABLE_OR_WRITE_NODE: {
|
|
697
|
+
pm_local_variable_or_write_node_t *cast = (pm_local_variable_or_write_node_t *) node;
|
|
698
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
699
699
|
break;
|
|
700
700
|
}
|
|
701
701
|
#line 57 "node.c.erb"
|
|
702
|
-
case
|
|
702
|
+
case PM_LOCAL_VARIABLE_READ_NODE: {
|
|
703
703
|
break;
|
|
704
704
|
}
|
|
705
705
|
#line 57 "node.c.erb"
|
|
706
|
-
case
|
|
706
|
+
case PM_LOCAL_VARIABLE_TARGET_NODE: {
|
|
707
707
|
break;
|
|
708
708
|
}
|
|
709
709
|
#line 57 "node.c.erb"
|
|
710
|
-
case
|
|
711
|
-
|
|
712
|
-
|
|
710
|
+
case PM_LOCAL_VARIABLE_WRITE_NODE: {
|
|
711
|
+
pm_local_variable_write_node_t *cast = (pm_local_variable_write_node_t *) node;
|
|
712
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
713
713
|
break;
|
|
714
714
|
}
|
|
715
715
|
#line 57 "node.c.erb"
|
|
716
|
-
case
|
|
717
|
-
|
|
718
|
-
|
|
716
|
+
case PM_MATCH_LAST_LINE_NODE: {
|
|
717
|
+
pm_match_last_line_node_t *cast = (pm_match_last_line_node_t *) node;
|
|
718
|
+
pm_string_free(&cast->unescaped);
|
|
719
719
|
break;
|
|
720
720
|
}
|
|
721
721
|
#line 57 "node.c.erb"
|
|
722
|
-
case
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
722
|
+
case PM_MATCH_PREDICATE_NODE: {
|
|
723
|
+
pm_match_predicate_node_t *cast = (pm_match_predicate_node_t *) node;
|
|
724
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
725
|
+
pm_node_destroy(parser, (pm_node_t *)cast->pattern);
|
|
726
726
|
break;
|
|
727
727
|
}
|
|
728
728
|
#line 57 "node.c.erb"
|
|
729
|
-
case
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
729
|
+
case PM_MATCH_REQUIRED_NODE: {
|
|
730
|
+
pm_match_required_node_t *cast = (pm_match_required_node_t *) node;
|
|
731
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
732
|
+
pm_node_destroy(parser, (pm_node_t *)cast->pattern);
|
|
733
733
|
break;
|
|
734
734
|
}
|
|
735
735
|
#line 57 "node.c.erb"
|
|
736
|
-
case
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
736
|
+
case PM_MATCH_WRITE_NODE: {
|
|
737
|
+
pm_match_write_node_t *cast = (pm_match_write_node_t *) node;
|
|
738
|
+
pm_node_destroy(parser, (pm_node_t *)cast->call);
|
|
739
|
+
pm_constant_id_list_free(&cast->locals);
|
|
740
740
|
break;
|
|
741
741
|
}
|
|
742
742
|
#line 57 "node.c.erb"
|
|
743
|
-
case
|
|
743
|
+
case PM_MISSING_NODE: {
|
|
744
744
|
break;
|
|
745
745
|
}
|
|
746
746
|
#line 57 "node.c.erb"
|
|
747
|
-
case
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
747
|
+
case PM_MODULE_NODE: {
|
|
748
|
+
pm_module_node_t *cast = (pm_module_node_t *) node;
|
|
749
|
+
pm_constant_id_list_free(&cast->locals);
|
|
750
|
+
pm_node_destroy(parser, (pm_node_t *)cast->constant_path);
|
|
751
751
|
if (cast->body != NULL) {
|
|
752
|
-
|
|
752
|
+
pm_node_destroy(parser, (pm_node_t *)cast->body);
|
|
753
753
|
}
|
|
754
754
|
break;
|
|
755
755
|
}
|
|
756
756
|
#line 57 "node.c.erb"
|
|
757
|
-
case
|
|
758
|
-
|
|
759
|
-
|
|
757
|
+
case PM_MULTI_TARGET_NODE: {
|
|
758
|
+
pm_multi_target_node_t *cast = (pm_multi_target_node_t *) node;
|
|
759
|
+
pm_node_list_free(parser, &cast->targets);
|
|
760
760
|
break;
|
|
761
761
|
}
|
|
762
762
|
#line 57 "node.c.erb"
|
|
763
|
-
case
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
763
|
+
case PM_MULTI_WRITE_NODE: {
|
|
764
|
+
pm_multi_write_node_t *cast = (pm_multi_write_node_t *) node;
|
|
765
|
+
pm_node_list_free(parser, &cast->targets);
|
|
766
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
767
767
|
break;
|
|
768
768
|
}
|
|
769
769
|
#line 57 "node.c.erb"
|
|
770
|
-
case
|
|
771
|
-
|
|
770
|
+
case PM_NEXT_NODE: {
|
|
771
|
+
pm_next_node_t *cast = (pm_next_node_t *) node;
|
|
772
772
|
if (cast->arguments != NULL) {
|
|
773
|
-
|
|
773
|
+
pm_node_destroy(parser, (pm_node_t *)cast->arguments);
|
|
774
774
|
}
|
|
775
775
|
break;
|
|
776
776
|
}
|
|
777
777
|
#line 57 "node.c.erb"
|
|
778
|
-
case
|
|
778
|
+
case PM_NIL_NODE: {
|
|
779
779
|
break;
|
|
780
780
|
}
|
|
781
781
|
#line 57 "node.c.erb"
|
|
782
|
-
case
|
|
782
|
+
case PM_NO_KEYWORDS_PARAMETER_NODE: {
|
|
783
783
|
break;
|
|
784
784
|
}
|
|
785
785
|
#line 57 "node.c.erb"
|
|
786
|
-
case
|
|
786
|
+
case PM_NUMBERED_REFERENCE_READ_NODE: {
|
|
787
787
|
break;
|
|
788
788
|
}
|
|
789
789
|
#line 57 "node.c.erb"
|
|
790
|
-
case
|
|
791
|
-
|
|
792
|
-
|
|
790
|
+
case PM_OPTIONAL_PARAMETER_NODE: {
|
|
791
|
+
pm_optional_parameter_node_t *cast = (pm_optional_parameter_node_t *) node;
|
|
792
|
+
pm_node_destroy(parser, (pm_node_t *)cast->value);
|
|
793
793
|
break;
|
|
794
794
|
}
|
|
795
795
|
#line 57 "node.c.erb"
|
|
796
|
-
case
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
796
|
+
case PM_OR_NODE: {
|
|
797
|
+
pm_or_node_t *cast = (pm_or_node_t *) node;
|
|
798
|
+
pm_node_destroy(parser, (pm_node_t *)cast->left);
|
|
799
|
+
pm_node_destroy(parser, (pm_node_t *)cast->right);
|
|
800
800
|
break;
|
|
801
801
|
}
|
|
802
802
|
#line 57 "node.c.erb"
|
|
803
|
-
case
|
|
804
|
-
|
|
805
|
-
|
|
806
|
-
|
|
803
|
+
case PM_PARAMETERS_NODE: {
|
|
804
|
+
pm_parameters_node_t *cast = (pm_parameters_node_t *) node;
|
|
805
|
+
pm_node_list_free(parser, &cast->requireds);
|
|
806
|
+
pm_node_list_free(parser, &cast->optionals);
|
|
807
807
|
if (cast->rest != NULL) {
|
|
808
|
-
|
|
808
|
+
pm_node_destroy(parser, (pm_node_t *)cast->rest);
|
|
809
809
|
}
|
|
810
|
-
|
|
811
|
-
|
|
810
|
+
pm_node_list_free(parser, &cast->posts);
|
|
811
|
+
pm_node_list_free(parser, &cast->keywords);
|
|
812
812
|
if (cast->keyword_rest != NULL) {
|
|
813
|
-
|
|
813
|
+
pm_node_destroy(parser, (pm_node_t *)cast->keyword_rest);
|
|
814
814
|
}
|
|
815
815
|
if (cast->block != NULL) {
|
|
816
|
-
|
|
816
|
+
pm_node_destroy(parser, (pm_node_t *)cast->block);
|
|
817
817
|
}
|
|
818
818
|
break;
|
|
819
819
|
}
|
|
820
820
|
#line 57 "node.c.erb"
|
|
821
|
-
case
|
|
822
|
-
|
|
821
|
+
case PM_PARENTHESES_NODE: {
|
|
822
|
+
pm_parentheses_node_t *cast = (pm_parentheses_node_t *) node;
|
|
823
823
|
if (cast->body != NULL) {
|
|
824
|
-
|
|
824
|
+
pm_node_destroy(parser, (pm_node_t *)cast->body);
|
|
825
825
|
}
|
|
826
826
|
break;
|
|
827
827
|
}
|
|
828
828
|
#line 57 "node.c.erb"
|
|
829
|
-
case
|
|
830
|
-
|
|
831
|
-
|
|
829
|
+
case PM_PINNED_EXPRESSION_NODE: {
|
|
830
|
+
pm_pinned_expression_node_t *cast = (pm_pinned_expression_node_t *) node;
|
|
831
|
+
pm_node_destroy(parser, (pm_node_t *)cast->expression);
|
|
832
832
|
break;
|
|
833
833
|
}
|
|
834
834
|
#line 57 "node.c.erb"
|
|
835
|
-
case
|
|
836
|
-
|
|
837
|
-
|
|
835
|
+
case PM_PINNED_VARIABLE_NODE: {
|
|
836
|
+
pm_pinned_variable_node_t *cast = (pm_pinned_variable_node_t *) node;
|
|
837
|
+
pm_node_destroy(parser, (pm_node_t *)cast->variable);
|
|
838
838
|
break;
|
|
839
839
|
}
|
|
840
840
|
#line 57 "node.c.erb"
|
|
841
|
-
case
|
|
842
|
-
|
|
841
|
+
case PM_POST_EXECUTION_NODE: {
|
|
842
|
+
pm_post_execution_node_t *cast = (pm_post_execution_node_t *) node;
|
|
843
843
|
if (cast->statements != NULL) {
|
|
844
|
-
|
|
844
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
845
845
|
}
|
|
846
846
|
break;
|
|
847
847
|
}
|
|
848
848
|
#line 57 "node.c.erb"
|
|
849
|
-
case
|
|
850
|
-
|
|
849
|
+
case PM_PRE_EXECUTION_NODE: {
|
|
850
|
+
pm_pre_execution_node_t *cast = (pm_pre_execution_node_t *) node;
|
|
851
851
|
if (cast->statements != NULL) {
|
|
852
|
-
|
|
852
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
853
853
|
}
|
|
854
854
|
break;
|
|
855
855
|
}
|
|
856
856
|
#line 57 "node.c.erb"
|
|
857
|
-
case
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
857
|
+
case PM_PROGRAM_NODE: {
|
|
858
|
+
pm_program_node_t *cast = (pm_program_node_t *) node;
|
|
859
|
+
pm_constant_id_list_free(&cast->locals);
|
|
860
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
861
861
|
break;
|
|
862
862
|
}
|
|
863
863
|
#line 57 "node.c.erb"
|
|
864
|
-
case
|
|
865
|
-
|
|
864
|
+
case PM_RANGE_NODE: {
|
|
865
|
+
pm_range_node_t *cast = (pm_range_node_t *) node;
|
|
866
866
|
if (cast->left != NULL) {
|
|
867
|
-
|
|
867
|
+
pm_node_destroy(parser, (pm_node_t *)cast->left);
|
|
868
868
|
}
|
|
869
869
|
if (cast->right != NULL) {
|
|
870
|
-
|
|
870
|
+
pm_node_destroy(parser, (pm_node_t *)cast->right);
|
|
871
871
|
}
|
|
872
872
|
break;
|
|
873
873
|
}
|
|
874
874
|
#line 57 "node.c.erb"
|
|
875
|
-
case
|
|
876
|
-
|
|
877
|
-
|
|
875
|
+
case PM_RATIONAL_NODE: {
|
|
876
|
+
pm_rational_node_t *cast = (pm_rational_node_t *) node;
|
|
877
|
+
pm_node_destroy(parser, (pm_node_t *)cast->numeric);
|
|
878
878
|
break;
|
|
879
879
|
}
|
|
880
880
|
#line 57 "node.c.erb"
|
|
881
|
-
case
|
|
881
|
+
case PM_REDO_NODE: {
|
|
882
882
|
break;
|
|
883
883
|
}
|
|
884
884
|
#line 57 "node.c.erb"
|
|
885
|
-
case
|
|
886
|
-
|
|
887
|
-
|
|
885
|
+
case PM_REGULAR_EXPRESSION_NODE: {
|
|
886
|
+
pm_regular_expression_node_t *cast = (pm_regular_expression_node_t *) node;
|
|
887
|
+
pm_string_free(&cast->unescaped);
|
|
888
888
|
break;
|
|
889
889
|
}
|
|
890
890
|
#line 57 "node.c.erb"
|
|
891
|
-
case
|
|
892
|
-
|
|
893
|
-
|
|
891
|
+
case PM_REQUIRED_DESTRUCTURED_PARAMETER_NODE: {
|
|
892
|
+
pm_required_destructured_parameter_node_t *cast = (pm_required_destructured_parameter_node_t *) node;
|
|
893
|
+
pm_node_list_free(parser, &cast->parameters);
|
|
894
894
|
break;
|
|
895
895
|
}
|
|
896
896
|
#line 57 "node.c.erb"
|
|
897
|
-
case
|
|
897
|
+
case PM_REQUIRED_PARAMETER_NODE: {
|
|
898
898
|
break;
|
|
899
899
|
}
|
|
900
900
|
#line 57 "node.c.erb"
|
|
901
|
-
case
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
901
|
+
case PM_RESCUE_MODIFIER_NODE: {
|
|
902
|
+
pm_rescue_modifier_node_t *cast = (pm_rescue_modifier_node_t *) node;
|
|
903
|
+
pm_node_destroy(parser, (pm_node_t *)cast->expression);
|
|
904
|
+
pm_node_destroy(parser, (pm_node_t *)cast->rescue_expression);
|
|
905
905
|
break;
|
|
906
906
|
}
|
|
907
907
|
#line 57 "node.c.erb"
|
|
908
|
-
case
|
|
909
|
-
|
|
910
|
-
|
|
908
|
+
case PM_RESCUE_NODE: {
|
|
909
|
+
pm_rescue_node_t *cast = (pm_rescue_node_t *) node;
|
|
910
|
+
pm_node_list_free(parser, &cast->exceptions);
|
|
911
911
|
if (cast->reference != NULL) {
|
|
912
|
-
|
|
912
|
+
pm_node_destroy(parser, (pm_node_t *)cast->reference);
|
|
913
913
|
}
|
|
914
914
|
if (cast->statements != NULL) {
|
|
915
|
-
|
|
915
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
916
916
|
}
|
|
917
917
|
if (cast->consequent != NULL) {
|
|
918
|
-
|
|
918
|
+
pm_node_destroy(parser, (pm_node_t *)cast->consequent);
|
|
919
919
|
}
|
|
920
920
|
break;
|
|
921
921
|
}
|
|
922
922
|
#line 57 "node.c.erb"
|
|
923
|
-
case
|
|
923
|
+
case PM_REST_PARAMETER_NODE: {
|
|
924
924
|
break;
|
|
925
925
|
}
|
|
926
926
|
#line 57 "node.c.erb"
|
|
927
|
-
case
|
|
927
|
+
case PM_RETRY_NODE: {
|
|
928
928
|
break;
|
|
929
929
|
}
|
|
930
930
|
#line 57 "node.c.erb"
|
|
931
|
-
case
|
|
932
|
-
|
|
931
|
+
case PM_RETURN_NODE: {
|
|
932
|
+
pm_return_node_t *cast = (pm_return_node_t *) node;
|
|
933
933
|
if (cast->arguments != NULL) {
|
|
934
|
-
|
|
934
|
+
pm_node_destroy(parser, (pm_node_t *)cast->arguments);
|
|
935
935
|
}
|
|
936
936
|
break;
|
|
937
937
|
}
|
|
938
938
|
#line 57 "node.c.erb"
|
|
939
|
-
case
|
|
939
|
+
case PM_SELF_NODE: {
|
|
940
940
|
break;
|
|
941
941
|
}
|
|
942
942
|
#line 57 "node.c.erb"
|
|
943
|
-
case
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
943
|
+
case PM_SINGLETON_CLASS_NODE: {
|
|
944
|
+
pm_singleton_class_node_t *cast = (pm_singleton_class_node_t *) node;
|
|
945
|
+
pm_constant_id_list_free(&cast->locals);
|
|
946
|
+
pm_node_destroy(parser, (pm_node_t *)cast->expression);
|
|
947
947
|
if (cast->body != NULL) {
|
|
948
|
-
|
|
948
|
+
pm_node_destroy(parser, (pm_node_t *)cast->body);
|
|
949
949
|
}
|
|
950
950
|
break;
|
|
951
951
|
}
|
|
952
952
|
#line 57 "node.c.erb"
|
|
953
|
-
case
|
|
953
|
+
case PM_SOURCE_ENCODING_NODE: {
|
|
954
954
|
break;
|
|
955
955
|
}
|
|
956
956
|
#line 57 "node.c.erb"
|
|
957
|
-
case
|
|
958
|
-
|
|
959
|
-
|
|
957
|
+
case PM_SOURCE_FILE_NODE: {
|
|
958
|
+
pm_source_file_node_t *cast = (pm_source_file_node_t *) node;
|
|
959
|
+
pm_string_free(&cast->filepath);
|
|
960
960
|
break;
|
|
961
961
|
}
|
|
962
962
|
#line 57 "node.c.erb"
|
|
963
|
-
case
|
|
963
|
+
case PM_SOURCE_LINE_NODE: {
|
|
964
964
|
break;
|
|
965
965
|
}
|
|
966
966
|
#line 57 "node.c.erb"
|
|
967
|
-
case
|
|
968
|
-
|
|
967
|
+
case PM_SPLAT_NODE: {
|
|
968
|
+
pm_splat_node_t *cast = (pm_splat_node_t *) node;
|
|
969
969
|
if (cast->expression != NULL) {
|
|
970
|
-
|
|
970
|
+
pm_node_destroy(parser, (pm_node_t *)cast->expression);
|
|
971
971
|
}
|
|
972
972
|
break;
|
|
973
973
|
}
|
|
974
974
|
#line 57 "node.c.erb"
|
|
975
|
-
case
|
|
976
|
-
|
|
977
|
-
|
|
975
|
+
case PM_STATEMENTS_NODE: {
|
|
976
|
+
pm_statements_node_t *cast = (pm_statements_node_t *) node;
|
|
977
|
+
pm_node_list_free(parser, &cast->body);
|
|
978
978
|
break;
|
|
979
979
|
}
|
|
980
980
|
#line 57 "node.c.erb"
|
|
981
|
-
case
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
981
|
+
case PM_STRING_CONCAT_NODE: {
|
|
982
|
+
pm_string_concat_node_t *cast = (pm_string_concat_node_t *) node;
|
|
983
|
+
pm_node_destroy(parser, (pm_node_t *)cast->left);
|
|
984
|
+
pm_node_destroy(parser, (pm_node_t *)cast->right);
|
|
985
985
|
break;
|
|
986
986
|
}
|
|
987
987
|
#line 57 "node.c.erb"
|
|
988
|
-
case
|
|
989
|
-
|
|
990
|
-
|
|
988
|
+
case PM_STRING_NODE: {
|
|
989
|
+
pm_string_node_t *cast = (pm_string_node_t *) node;
|
|
990
|
+
pm_string_free(&cast->unescaped);
|
|
991
991
|
break;
|
|
992
992
|
}
|
|
993
993
|
#line 57 "node.c.erb"
|
|
994
|
-
case
|
|
995
|
-
|
|
994
|
+
case PM_SUPER_NODE: {
|
|
995
|
+
pm_super_node_t *cast = (pm_super_node_t *) node;
|
|
996
996
|
if (cast->arguments != NULL) {
|
|
997
|
-
|
|
997
|
+
pm_node_destroy(parser, (pm_node_t *)cast->arguments);
|
|
998
998
|
}
|
|
999
999
|
if (cast->block != NULL) {
|
|
1000
|
-
|
|
1000
|
+
pm_node_destroy(parser, (pm_node_t *)cast->block);
|
|
1001
1001
|
}
|
|
1002
1002
|
break;
|
|
1003
1003
|
}
|
|
1004
1004
|
#line 57 "node.c.erb"
|
|
1005
|
-
case
|
|
1006
|
-
|
|
1007
|
-
|
|
1005
|
+
case PM_SYMBOL_NODE: {
|
|
1006
|
+
pm_symbol_node_t *cast = (pm_symbol_node_t *) node;
|
|
1007
|
+
pm_string_free(&cast->unescaped);
|
|
1008
1008
|
break;
|
|
1009
1009
|
}
|
|
1010
1010
|
#line 57 "node.c.erb"
|
|
1011
|
-
case
|
|
1011
|
+
case PM_TRUE_NODE: {
|
|
1012
1012
|
break;
|
|
1013
1013
|
}
|
|
1014
1014
|
#line 57 "node.c.erb"
|
|
1015
|
-
case
|
|
1016
|
-
|
|
1017
|
-
|
|
1015
|
+
case PM_UNDEF_NODE: {
|
|
1016
|
+
pm_undef_node_t *cast = (pm_undef_node_t *) node;
|
|
1017
|
+
pm_node_list_free(parser, &cast->names);
|
|
1018
1018
|
break;
|
|
1019
1019
|
}
|
|
1020
1020
|
#line 57 "node.c.erb"
|
|
1021
|
-
case
|
|
1022
|
-
|
|
1023
|
-
|
|
1021
|
+
case PM_UNLESS_NODE: {
|
|
1022
|
+
pm_unless_node_t *cast = (pm_unless_node_t *) node;
|
|
1023
|
+
pm_node_destroy(parser, (pm_node_t *)cast->predicate);
|
|
1024
1024
|
if (cast->statements != NULL) {
|
|
1025
|
-
|
|
1025
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
1026
1026
|
}
|
|
1027
1027
|
if (cast->consequent != NULL) {
|
|
1028
|
-
|
|
1028
|
+
pm_node_destroy(parser, (pm_node_t *)cast->consequent);
|
|
1029
1029
|
}
|
|
1030
1030
|
break;
|
|
1031
1031
|
}
|
|
1032
1032
|
#line 57 "node.c.erb"
|
|
1033
|
-
case
|
|
1034
|
-
|
|
1035
|
-
|
|
1033
|
+
case PM_UNTIL_NODE: {
|
|
1034
|
+
pm_until_node_t *cast = (pm_until_node_t *) node;
|
|
1035
|
+
pm_node_destroy(parser, (pm_node_t *)cast->predicate);
|
|
1036
1036
|
if (cast->statements != NULL) {
|
|
1037
|
-
|
|
1037
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
1038
1038
|
}
|
|
1039
1039
|
break;
|
|
1040
1040
|
}
|
|
1041
1041
|
#line 57 "node.c.erb"
|
|
1042
|
-
case
|
|
1043
|
-
|
|
1044
|
-
|
|
1042
|
+
case PM_WHEN_NODE: {
|
|
1043
|
+
pm_when_node_t *cast = (pm_when_node_t *) node;
|
|
1044
|
+
pm_node_list_free(parser, &cast->conditions);
|
|
1045
1045
|
if (cast->statements != NULL) {
|
|
1046
|
-
|
|
1046
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
1047
1047
|
}
|
|
1048
1048
|
break;
|
|
1049
1049
|
}
|
|
1050
1050
|
#line 57 "node.c.erb"
|
|
1051
|
-
case
|
|
1052
|
-
|
|
1053
|
-
|
|
1051
|
+
case PM_WHILE_NODE: {
|
|
1052
|
+
pm_while_node_t *cast = (pm_while_node_t *) node;
|
|
1053
|
+
pm_node_destroy(parser, (pm_node_t *)cast->predicate);
|
|
1054
1054
|
if (cast->statements != NULL) {
|
|
1055
|
-
|
|
1055
|
+
pm_node_destroy(parser, (pm_node_t *)cast->statements);
|
|
1056
1056
|
}
|
|
1057
1057
|
break;
|
|
1058
1058
|
}
|
|
1059
1059
|
#line 57 "node.c.erb"
|
|
1060
|
-
case
|
|
1061
|
-
|
|
1062
|
-
|
|
1060
|
+
case PM_X_STRING_NODE: {
|
|
1061
|
+
pm_x_string_node_t *cast = (pm_x_string_node_t *) node;
|
|
1062
|
+
pm_string_free(&cast->unescaped);
|
|
1063
1063
|
break;
|
|
1064
1064
|
}
|
|
1065
1065
|
#line 57 "node.c.erb"
|
|
1066
|
-
case
|
|
1067
|
-
|
|
1066
|
+
case PM_YIELD_NODE: {
|
|
1067
|
+
pm_yield_node_t *cast = (pm_yield_node_t *) node;
|
|
1068
1068
|
if (cast->arguments != NULL) {
|
|
1069
|
-
|
|
1069
|
+
pm_node_destroy(parser, (pm_node_t *)cast->arguments);
|
|
1070
1070
|
}
|
|
1071
1071
|
break;
|
|
1072
1072
|
}
|
|
@@ -1079,1495 +1079,1555 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
|
1079
1079
|
}
|
|
1080
1080
|
|
|
1081
1081
|
static void
|
|
1082
|
-
|
|
1082
|
+
pm_node_memsize_node(pm_node_t *node, pm_memsize_t *memsize) {
|
|
1083
1083
|
memsize->node_count++;
|
|
1084
1084
|
|
|
1085
|
-
switch (
|
|
1085
|
+
switch (PM_NODE_TYPE(node)) {
|
|
1086
1086
|
// We do not calculate memsize of a ScopeNode
|
|
1087
1087
|
// as it should never be generated
|
|
1088
|
-
case
|
|
1088
|
+
case PM_SCOPE_NODE:
|
|
1089
1089
|
return;
|
|
1090
1090
|
#line 102 "node.c.erb"
|
|
1091
|
-
case
|
|
1092
|
-
|
|
1091
|
+
case PM_ALIAS_GLOBAL_VARIABLE_NODE: {
|
|
1092
|
+
pm_alias_global_variable_node_t *cast = (pm_alias_global_variable_node_t *) node;
|
|
1093
1093
|
memsize->memsize += sizeof(*cast);
|
|
1094
|
-
|
|
1095
|
-
|
|
1094
|
+
pm_node_memsize_node((pm_node_t *)cast->new_name, memsize);
|
|
1095
|
+
pm_node_memsize_node((pm_node_t *)cast->old_name, memsize);
|
|
1096
1096
|
break;
|
|
1097
1097
|
}
|
|
1098
1098
|
#line 102 "node.c.erb"
|
|
1099
|
-
case
|
|
1100
|
-
|
|
1099
|
+
case PM_ALIAS_METHOD_NODE: {
|
|
1100
|
+
pm_alias_method_node_t *cast = (pm_alias_method_node_t *) node;
|
|
1101
1101
|
memsize->memsize += sizeof(*cast);
|
|
1102
|
-
|
|
1103
|
-
|
|
1102
|
+
pm_node_memsize_node((pm_node_t *)cast->new_name, memsize);
|
|
1103
|
+
pm_node_memsize_node((pm_node_t *)cast->old_name, memsize);
|
|
1104
1104
|
break;
|
|
1105
1105
|
}
|
|
1106
1106
|
#line 102 "node.c.erb"
|
|
1107
|
-
case
|
|
1108
|
-
|
|
1107
|
+
case PM_ALTERNATION_PATTERN_NODE: {
|
|
1108
|
+
pm_alternation_pattern_node_t *cast = (pm_alternation_pattern_node_t *) node;
|
|
1109
1109
|
memsize->memsize += sizeof(*cast);
|
|
1110
|
-
|
|
1111
|
-
|
|
1110
|
+
pm_node_memsize_node((pm_node_t *)cast->left, memsize);
|
|
1111
|
+
pm_node_memsize_node((pm_node_t *)cast->right, memsize);
|
|
1112
1112
|
break;
|
|
1113
1113
|
}
|
|
1114
1114
|
#line 102 "node.c.erb"
|
|
1115
|
-
case
|
|
1116
|
-
|
|
1115
|
+
case PM_AND_NODE: {
|
|
1116
|
+
pm_and_node_t *cast = (pm_and_node_t *) node;
|
|
1117
1117
|
memsize->memsize += sizeof(*cast);
|
|
1118
|
-
|
|
1119
|
-
|
|
1118
|
+
pm_node_memsize_node((pm_node_t *)cast->left, memsize);
|
|
1119
|
+
pm_node_memsize_node((pm_node_t *)cast->right, memsize);
|
|
1120
1120
|
break;
|
|
1121
1121
|
}
|
|
1122
1122
|
#line 102 "node.c.erb"
|
|
1123
|
-
case
|
|
1124
|
-
|
|
1123
|
+
case PM_ARGUMENTS_NODE: {
|
|
1124
|
+
pm_arguments_node_t *cast = (pm_arguments_node_t *) node;
|
|
1125
1125
|
memsize->memsize += sizeof(*cast);
|
|
1126
|
-
|
|
1126
|
+
// Node lists will add in their own sizes below.
|
|
1127
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1128
|
+
memsize->memsize += pm_node_list_memsize(&cast->arguments, memsize);
|
|
1127
1129
|
break;
|
|
1128
1130
|
}
|
|
1129
1131
|
#line 102 "node.c.erb"
|
|
1130
|
-
case
|
|
1131
|
-
|
|
1132
|
+
case PM_ARRAY_NODE: {
|
|
1133
|
+
pm_array_node_t *cast = (pm_array_node_t *) node;
|
|
1132
1134
|
memsize->memsize += sizeof(*cast);
|
|
1133
|
-
|
|
1135
|
+
// Node lists will add in their own sizes below.
|
|
1136
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1137
|
+
memsize->memsize += pm_node_list_memsize(&cast->elements, memsize);
|
|
1134
1138
|
break;
|
|
1135
1139
|
}
|
|
1136
1140
|
#line 102 "node.c.erb"
|
|
1137
|
-
case
|
|
1138
|
-
|
|
1141
|
+
case PM_ARRAY_PATTERN_NODE: {
|
|
1142
|
+
pm_array_pattern_node_t *cast = (pm_array_pattern_node_t *) node;
|
|
1139
1143
|
memsize->memsize += sizeof(*cast);
|
|
1144
|
+
// Node lists will add in their own sizes below.
|
|
1145
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 2;
|
|
1140
1146
|
if (cast->constant != NULL) {
|
|
1141
|
-
|
|
1147
|
+
pm_node_memsize_node((pm_node_t *)cast->constant, memsize);
|
|
1142
1148
|
}
|
|
1143
|
-
|
|
1149
|
+
memsize->memsize += pm_node_list_memsize(&cast->requireds, memsize);
|
|
1144
1150
|
if (cast->rest != NULL) {
|
|
1145
|
-
|
|
1151
|
+
pm_node_memsize_node((pm_node_t *)cast->rest, memsize);
|
|
1146
1152
|
}
|
|
1147
|
-
|
|
1153
|
+
memsize->memsize += pm_node_list_memsize(&cast->posts, memsize);
|
|
1148
1154
|
break;
|
|
1149
1155
|
}
|
|
1150
1156
|
#line 102 "node.c.erb"
|
|
1151
|
-
case
|
|
1152
|
-
|
|
1157
|
+
case PM_ASSOC_NODE: {
|
|
1158
|
+
pm_assoc_node_t *cast = (pm_assoc_node_t *) node;
|
|
1153
1159
|
memsize->memsize += sizeof(*cast);
|
|
1154
|
-
|
|
1160
|
+
pm_node_memsize_node((pm_node_t *)cast->key, memsize);
|
|
1155
1161
|
if (cast->value != NULL) {
|
|
1156
|
-
|
|
1162
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1157
1163
|
}
|
|
1158
1164
|
break;
|
|
1159
1165
|
}
|
|
1160
1166
|
#line 102 "node.c.erb"
|
|
1161
|
-
case
|
|
1162
|
-
|
|
1167
|
+
case PM_ASSOC_SPLAT_NODE: {
|
|
1168
|
+
pm_assoc_splat_node_t *cast = (pm_assoc_splat_node_t *) node;
|
|
1163
1169
|
memsize->memsize += sizeof(*cast);
|
|
1164
1170
|
if (cast->value != NULL) {
|
|
1165
|
-
|
|
1171
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1166
1172
|
}
|
|
1167
1173
|
break;
|
|
1168
1174
|
}
|
|
1169
1175
|
#line 102 "node.c.erb"
|
|
1170
|
-
case
|
|
1171
|
-
|
|
1176
|
+
case PM_BACK_REFERENCE_READ_NODE: {
|
|
1177
|
+
pm_back_reference_read_node_t *cast = (pm_back_reference_read_node_t *) node;
|
|
1172
1178
|
memsize->memsize += sizeof(*cast);
|
|
1173
1179
|
break;
|
|
1174
1180
|
}
|
|
1175
1181
|
#line 102 "node.c.erb"
|
|
1176
|
-
case
|
|
1177
|
-
|
|
1182
|
+
case PM_BEGIN_NODE: {
|
|
1183
|
+
pm_begin_node_t *cast = (pm_begin_node_t *) node;
|
|
1178
1184
|
memsize->memsize += sizeof(*cast);
|
|
1179
1185
|
if (cast->statements != NULL) {
|
|
1180
|
-
|
|
1186
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
1181
1187
|
}
|
|
1182
1188
|
if (cast->rescue_clause != NULL) {
|
|
1183
|
-
|
|
1189
|
+
pm_node_memsize_node((pm_node_t *)cast->rescue_clause, memsize);
|
|
1184
1190
|
}
|
|
1185
1191
|
if (cast->else_clause != NULL) {
|
|
1186
|
-
|
|
1192
|
+
pm_node_memsize_node((pm_node_t *)cast->else_clause, memsize);
|
|
1187
1193
|
}
|
|
1188
1194
|
if (cast->ensure_clause != NULL) {
|
|
1189
|
-
|
|
1195
|
+
pm_node_memsize_node((pm_node_t *)cast->ensure_clause, memsize);
|
|
1190
1196
|
}
|
|
1191
1197
|
break;
|
|
1192
1198
|
}
|
|
1193
1199
|
#line 102 "node.c.erb"
|
|
1194
|
-
case
|
|
1195
|
-
|
|
1200
|
+
case PM_BLOCK_ARGUMENT_NODE: {
|
|
1201
|
+
pm_block_argument_node_t *cast = (pm_block_argument_node_t *) node;
|
|
1196
1202
|
memsize->memsize += sizeof(*cast);
|
|
1197
1203
|
if (cast->expression != NULL) {
|
|
1198
|
-
|
|
1204
|
+
pm_node_memsize_node((pm_node_t *)cast->expression, memsize);
|
|
1199
1205
|
}
|
|
1200
1206
|
break;
|
|
1201
1207
|
}
|
|
1202
1208
|
#line 102 "node.c.erb"
|
|
1203
|
-
case
|
|
1204
|
-
|
|
1209
|
+
case PM_BLOCK_LOCAL_VARIABLE_NODE: {
|
|
1210
|
+
pm_block_local_variable_node_t *cast = (pm_block_local_variable_node_t *) node;
|
|
1205
1211
|
memsize->memsize += sizeof(*cast);
|
|
1206
1212
|
break;
|
|
1207
1213
|
}
|
|
1208
1214
|
#line 102 "node.c.erb"
|
|
1209
|
-
case
|
|
1210
|
-
|
|
1215
|
+
case PM_BLOCK_NODE: {
|
|
1216
|
+
pm_block_node_t *cast = (pm_block_node_t *) node;
|
|
1211
1217
|
memsize->memsize += sizeof(*cast);
|
|
1212
|
-
|
|
1218
|
+
// Constant id lists will add in their own sizes below.
|
|
1219
|
+
memsize->memsize -= sizeof(pm_constant_id_list_t) * 1;
|
|
1220
|
+
memsize->memsize += pm_constant_id_list_memsize(&cast->locals);
|
|
1213
1221
|
if (cast->parameters != NULL) {
|
|
1214
|
-
|
|
1222
|
+
pm_node_memsize_node((pm_node_t *)cast->parameters, memsize);
|
|
1215
1223
|
}
|
|
1216
1224
|
if (cast->body != NULL) {
|
|
1217
|
-
|
|
1225
|
+
pm_node_memsize_node((pm_node_t *)cast->body, memsize);
|
|
1218
1226
|
}
|
|
1219
1227
|
break;
|
|
1220
1228
|
}
|
|
1221
1229
|
#line 102 "node.c.erb"
|
|
1222
|
-
case
|
|
1223
|
-
|
|
1230
|
+
case PM_BLOCK_PARAMETER_NODE: {
|
|
1231
|
+
pm_block_parameter_node_t *cast = (pm_block_parameter_node_t *) node;
|
|
1224
1232
|
memsize->memsize += sizeof(*cast);
|
|
1225
1233
|
break;
|
|
1226
1234
|
}
|
|
1227
1235
|
#line 102 "node.c.erb"
|
|
1228
|
-
case
|
|
1229
|
-
|
|
1236
|
+
case PM_BLOCK_PARAMETERS_NODE: {
|
|
1237
|
+
pm_block_parameters_node_t *cast = (pm_block_parameters_node_t *) node;
|
|
1230
1238
|
memsize->memsize += sizeof(*cast);
|
|
1239
|
+
// Node lists will add in their own sizes below.
|
|
1240
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1231
1241
|
if (cast->parameters != NULL) {
|
|
1232
|
-
|
|
1242
|
+
pm_node_memsize_node((pm_node_t *)cast->parameters, memsize);
|
|
1233
1243
|
}
|
|
1234
|
-
|
|
1244
|
+
memsize->memsize += pm_node_list_memsize(&cast->locals, memsize);
|
|
1235
1245
|
break;
|
|
1236
1246
|
}
|
|
1237
1247
|
#line 102 "node.c.erb"
|
|
1238
|
-
case
|
|
1239
|
-
|
|
1248
|
+
case PM_BREAK_NODE: {
|
|
1249
|
+
pm_break_node_t *cast = (pm_break_node_t *) node;
|
|
1240
1250
|
memsize->memsize += sizeof(*cast);
|
|
1241
1251
|
if (cast->arguments != NULL) {
|
|
1242
|
-
|
|
1252
|
+
pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
|
|
1243
1253
|
}
|
|
1244
1254
|
break;
|
|
1245
1255
|
}
|
|
1246
1256
|
#line 102 "node.c.erb"
|
|
1247
|
-
case
|
|
1248
|
-
|
|
1257
|
+
case PM_CALL_AND_WRITE_NODE: {
|
|
1258
|
+
pm_call_and_write_node_t *cast = (pm_call_and_write_node_t *) node;
|
|
1249
1259
|
memsize->memsize += sizeof(*cast);
|
|
1250
1260
|
if (cast->receiver != NULL) {
|
|
1251
|
-
|
|
1261
|
+
pm_node_memsize_node((pm_node_t *)cast->receiver, memsize);
|
|
1252
1262
|
}
|
|
1253
1263
|
if (cast->arguments != NULL) {
|
|
1254
|
-
|
|
1264
|
+
pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
|
|
1255
1265
|
}
|
|
1256
|
-
memsize->memsize +=
|
|
1257
|
-
memsize->memsize +=
|
|
1258
|
-
|
|
1266
|
+
memsize->memsize += pm_string_memsize(&cast->read_name);
|
|
1267
|
+
memsize->memsize += pm_string_memsize(&cast->write_name);
|
|
1268
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1259
1269
|
break;
|
|
1260
1270
|
}
|
|
1261
1271
|
#line 102 "node.c.erb"
|
|
1262
|
-
case
|
|
1263
|
-
|
|
1272
|
+
case PM_CALL_NODE: {
|
|
1273
|
+
pm_call_node_t *cast = (pm_call_node_t *) node;
|
|
1264
1274
|
memsize->memsize += sizeof(*cast);
|
|
1265
1275
|
if (cast->receiver != NULL) {
|
|
1266
|
-
|
|
1276
|
+
pm_node_memsize_node((pm_node_t *)cast->receiver, memsize);
|
|
1267
1277
|
}
|
|
1268
1278
|
if (cast->arguments != NULL) {
|
|
1269
|
-
|
|
1279
|
+
pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
|
|
1270
1280
|
}
|
|
1271
1281
|
if (cast->block != NULL) {
|
|
1272
|
-
|
|
1282
|
+
pm_node_memsize_node((pm_node_t *)cast->block, memsize);
|
|
1273
1283
|
}
|
|
1274
|
-
memsize->memsize +=
|
|
1284
|
+
memsize->memsize += pm_string_memsize(&cast->name);
|
|
1275
1285
|
break;
|
|
1276
1286
|
}
|
|
1277
1287
|
#line 102 "node.c.erb"
|
|
1278
|
-
case
|
|
1279
|
-
|
|
1288
|
+
case PM_CALL_OPERATOR_WRITE_NODE: {
|
|
1289
|
+
pm_call_operator_write_node_t *cast = (pm_call_operator_write_node_t *) node;
|
|
1280
1290
|
memsize->memsize += sizeof(*cast);
|
|
1281
1291
|
if (cast->receiver != NULL) {
|
|
1282
|
-
|
|
1292
|
+
pm_node_memsize_node((pm_node_t *)cast->receiver, memsize);
|
|
1283
1293
|
}
|
|
1284
1294
|
if (cast->arguments != NULL) {
|
|
1285
|
-
|
|
1295
|
+
pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
|
|
1286
1296
|
}
|
|
1287
|
-
memsize->memsize +=
|
|
1288
|
-
memsize->memsize +=
|
|
1289
|
-
|
|
1297
|
+
memsize->memsize += pm_string_memsize(&cast->read_name);
|
|
1298
|
+
memsize->memsize += pm_string_memsize(&cast->write_name);
|
|
1299
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1290
1300
|
break;
|
|
1291
1301
|
}
|
|
1292
1302
|
#line 102 "node.c.erb"
|
|
1293
|
-
case
|
|
1294
|
-
|
|
1303
|
+
case PM_CALL_OR_WRITE_NODE: {
|
|
1304
|
+
pm_call_or_write_node_t *cast = (pm_call_or_write_node_t *) node;
|
|
1295
1305
|
memsize->memsize += sizeof(*cast);
|
|
1296
1306
|
if (cast->receiver != NULL) {
|
|
1297
|
-
|
|
1307
|
+
pm_node_memsize_node((pm_node_t *)cast->receiver, memsize);
|
|
1298
1308
|
}
|
|
1299
1309
|
if (cast->arguments != NULL) {
|
|
1300
|
-
|
|
1310
|
+
pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
|
|
1301
1311
|
}
|
|
1302
|
-
memsize->memsize +=
|
|
1303
|
-
memsize->memsize +=
|
|
1304
|
-
|
|
1312
|
+
memsize->memsize += pm_string_memsize(&cast->read_name);
|
|
1313
|
+
memsize->memsize += pm_string_memsize(&cast->write_name);
|
|
1314
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1305
1315
|
break;
|
|
1306
1316
|
}
|
|
1307
1317
|
#line 102 "node.c.erb"
|
|
1308
|
-
case
|
|
1309
|
-
|
|
1318
|
+
case PM_CAPTURE_PATTERN_NODE: {
|
|
1319
|
+
pm_capture_pattern_node_t *cast = (pm_capture_pattern_node_t *) node;
|
|
1310
1320
|
memsize->memsize += sizeof(*cast);
|
|
1311
|
-
|
|
1312
|
-
|
|
1321
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1322
|
+
pm_node_memsize_node((pm_node_t *)cast->target, memsize);
|
|
1313
1323
|
break;
|
|
1314
1324
|
}
|
|
1315
1325
|
#line 102 "node.c.erb"
|
|
1316
|
-
case
|
|
1317
|
-
|
|
1326
|
+
case PM_CASE_NODE: {
|
|
1327
|
+
pm_case_node_t *cast = (pm_case_node_t *) node;
|
|
1318
1328
|
memsize->memsize += sizeof(*cast);
|
|
1329
|
+
// Node lists will add in their own sizes below.
|
|
1330
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1319
1331
|
if (cast->predicate != NULL) {
|
|
1320
|
-
|
|
1332
|
+
pm_node_memsize_node((pm_node_t *)cast->predicate, memsize);
|
|
1321
1333
|
}
|
|
1322
|
-
|
|
1334
|
+
memsize->memsize += pm_node_list_memsize(&cast->conditions, memsize);
|
|
1323
1335
|
if (cast->consequent != NULL) {
|
|
1324
|
-
|
|
1336
|
+
pm_node_memsize_node((pm_node_t *)cast->consequent, memsize);
|
|
1325
1337
|
}
|
|
1326
1338
|
break;
|
|
1327
1339
|
}
|
|
1328
1340
|
#line 102 "node.c.erb"
|
|
1329
|
-
case
|
|
1330
|
-
|
|
1341
|
+
case PM_CLASS_NODE: {
|
|
1342
|
+
pm_class_node_t *cast = (pm_class_node_t *) node;
|
|
1331
1343
|
memsize->memsize += sizeof(*cast);
|
|
1332
|
-
|
|
1333
|
-
|
|
1344
|
+
// Constant id lists will add in their own sizes below.
|
|
1345
|
+
memsize->memsize -= sizeof(pm_constant_id_list_t) * 1;
|
|
1346
|
+
memsize->memsize += pm_constant_id_list_memsize(&cast->locals);
|
|
1347
|
+
pm_node_memsize_node((pm_node_t *)cast->constant_path, memsize);
|
|
1334
1348
|
if (cast->superclass != NULL) {
|
|
1335
|
-
|
|
1349
|
+
pm_node_memsize_node((pm_node_t *)cast->superclass, memsize);
|
|
1336
1350
|
}
|
|
1337
1351
|
if (cast->body != NULL) {
|
|
1338
|
-
|
|
1352
|
+
pm_node_memsize_node((pm_node_t *)cast->body, memsize);
|
|
1339
1353
|
}
|
|
1340
1354
|
break;
|
|
1341
1355
|
}
|
|
1342
1356
|
#line 102 "node.c.erb"
|
|
1343
|
-
case
|
|
1344
|
-
|
|
1357
|
+
case PM_CLASS_VARIABLE_AND_WRITE_NODE: {
|
|
1358
|
+
pm_class_variable_and_write_node_t *cast = (pm_class_variable_and_write_node_t *) node;
|
|
1345
1359
|
memsize->memsize += sizeof(*cast);
|
|
1346
|
-
|
|
1360
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1347
1361
|
break;
|
|
1348
1362
|
}
|
|
1349
1363
|
#line 102 "node.c.erb"
|
|
1350
|
-
case
|
|
1351
|
-
|
|
1364
|
+
case PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE: {
|
|
1365
|
+
pm_class_variable_operator_write_node_t *cast = (pm_class_variable_operator_write_node_t *) node;
|
|
1352
1366
|
memsize->memsize += sizeof(*cast);
|
|
1353
|
-
|
|
1367
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1354
1368
|
break;
|
|
1355
1369
|
}
|
|
1356
1370
|
#line 102 "node.c.erb"
|
|
1357
|
-
case
|
|
1358
|
-
|
|
1371
|
+
case PM_CLASS_VARIABLE_OR_WRITE_NODE: {
|
|
1372
|
+
pm_class_variable_or_write_node_t *cast = (pm_class_variable_or_write_node_t *) node;
|
|
1359
1373
|
memsize->memsize += sizeof(*cast);
|
|
1360
|
-
|
|
1374
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1361
1375
|
break;
|
|
1362
1376
|
}
|
|
1363
1377
|
#line 102 "node.c.erb"
|
|
1364
|
-
case
|
|
1365
|
-
|
|
1378
|
+
case PM_CLASS_VARIABLE_READ_NODE: {
|
|
1379
|
+
pm_class_variable_read_node_t *cast = (pm_class_variable_read_node_t *) node;
|
|
1366
1380
|
memsize->memsize += sizeof(*cast);
|
|
1367
1381
|
break;
|
|
1368
1382
|
}
|
|
1369
1383
|
#line 102 "node.c.erb"
|
|
1370
|
-
case
|
|
1371
|
-
|
|
1384
|
+
case PM_CLASS_VARIABLE_TARGET_NODE: {
|
|
1385
|
+
pm_class_variable_target_node_t *cast = (pm_class_variable_target_node_t *) node;
|
|
1372
1386
|
memsize->memsize += sizeof(*cast);
|
|
1373
1387
|
break;
|
|
1374
1388
|
}
|
|
1375
1389
|
#line 102 "node.c.erb"
|
|
1376
|
-
case
|
|
1377
|
-
|
|
1390
|
+
case PM_CLASS_VARIABLE_WRITE_NODE: {
|
|
1391
|
+
pm_class_variable_write_node_t *cast = (pm_class_variable_write_node_t *) node;
|
|
1378
1392
|
memsize->memsize += sizeof(*cast);
|
|
1379
|
-
|
|
1393
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1380
1394
|
break;
|
|
1381
1395
|
}
|
|
1382
1396
|
#line 102 "node.c.erb"
|
|
1383
|
-
case
|
|
1384
|
-
|
|
1397
|
+
case PM_CONSTANT_AND_WRITE_NODE: {
|
|
1398
|
+
pm_constant_and_write_node_t *cast = (pm_constant_and_write_node_t *) node;
|
|
1385
1399
|
memsize->memsize += sizeof(*cast);
|
|
1386
|
-
|
|
1400
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1387
1401
|
break;
|
|
1388
1402
|
}
|
|
1389
1403
|
#line 102 "node.c.erb"
|
|
1390
|
-
case
|
|
1391
|
-
|
|
1404
|
+
case PM_CONSTANT_OPERATOR_WRITE_NODE: {
|
|
1405
|
+
pm_constant_operator_write_node_t *cast = (pm_constant_operator_write_node_t *) node;
|
|
1392
1406
|
memsize->memsize += sizeof(*cast);
|
|
1393
|
-
|
|
1407
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1394
1408
|
break;
|
|
1395
1409
|
}
|
|
1396
1410
|
#line 102 "node.c.erb"
|
|
1397
|
-
case
|
|
1398
|
-
|
|
1411
|
+
case PM_CONSTANT_OR_WRITE_NODE: {
|
|
1412
|
+
pm_constant_or_write_node_t *cast = (pm_constant_or_write_node_t *) node;
|
|
1399
1413
|
memsize->memsize += sizeof(*cast);
|
|
1400
|
-
|
|
1414
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1401
1415
|
break;
|
|
1402
1416
|
}
|
|
1403
1417
|
#line 102 "node.c.erb"
|
|
1404
|
-
case
|
|
1405
|
-
|
|
1418
|
+
case PM_CONSTANT_PATH_AND_WRITE_NODE: {
|
|
1419
|
+
pm_constant_path_and_write_node_t *cast = (pm_constant_path_and_write_node_t *) node;
|
|
1406
1420
|
memsize->memsize += sizeof(*cast);
|
|
1407
|
-
|
|
1408
|
-
|
|
1421
|
+
pm_node_memsize_node((pm_node_t *)cast->target, memsize);
|
|
1422
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1409
1423
|
break;
|
|
1410
1424
|
}
|
|
1411
1425
|
#line 102 "node.c.erb"
|
|
1412
|
-
case
|
|
1413
|
-
|
|
1426
|
+
case PM_CONSTANT_PATH_NODE: {
|
|
1427
|
+
pm_constant_path_node_t *cast = (pm_constant_path_node_t *) node;
|
|
1414
1428
|
memsize->memsize += sizeof(*cast);
|
|
1415
1429
|
if (cast->parent != NULL) {
|
|
1416
|
-
|
|
1430
|
+
pm_node_memsize_node((pm_node_t *)cast->parent, memsize);
|
|
1417
1431
|
}
|
|
1418
|
-
|
|
1432
|
+
pm_node_memsize_node((pm_node_t *)cast->child, memsize);
|
|
1419
1433
|
break;
|
|
1420
1434
|
}
|
|
1421
1435
|
#line 102 "node.c.erb"
|
|
1422
|
-
case
|
|
1423
|
-
|
|
1436
|
+
case PM_CONSTANT_PATH_OPERATOR_WRITE_NODE: {
|
|
1437
|
+
pm_constant_path_operator_write_node_t *cast = (pm_constant_path_operator_write_node_t *) node;
|
|
1424
1438
|
memsize->memsize += sizeof(*cast);
|
|
1425
|
-
|
|
1426
|
-
|
|
1439
|
+
pm_node_memsize_node((pm_node_t *)cast->target, memsize);
|
|
1440
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1427
1441
|
break;
|
|
1428
1442
|
}
|
|
1429
1443
|
#line 102 "node.c.erb"
|
|
1430
|
-
case
|
|
1431
|
-
|
|
1444
|
+
case PM_CONSTANT_PATH_OR_WRITE_NODE: {
|
|
1445
|
+
pm_constant_path_or_write_node_t *cast = (pm_constant_path_or_write_node_t *) node;
|
|
1432
1446
|
memsize->memsize += sizeof(*cast);
|
|
1433
|
-
|
|
1434
|
-
|
|
1447
|
+
pm_node_memsize_node((pm_node_t *)cast->target, memsize);
|
|
1448
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1435
1449
|
break;
|
|
1436
1450
|
}
|
|
1437
1451
|
#line 102 "node.c.erb"
|
|
1438
|
-
case
|
|
1439
|
-
|
|
1452
|
+
case PM_CONSTANT_PATH_TARGET_NODE: {
|
|
1453
|
+
pm_constant_path_target_node_t *cast = (pm_constant_path_target_node_t *) node;
|
|
1440
1454
|
memsize->memsize += sizeof(*cast);
|
|
1441
1455
|
if (cast->parent != NULL) {
|
|
1442
|
-
|
|
1456
|
+
pm_node_memsize_node((pm_node_t *)cast->parent, memsize);
|
|
1443
1457
|
}
|
|
1444
|
-
|
|
1458
|
+
pm_node_memsize_node((pm_node_t *)cast->child, memsize);
|
|
1445
1459
|
break;
|
|
1446
1460
|
}
|
|
1447
1461
|
#line 102 "node.c.erb"
|
|
1448
|
-
case
|
|
1449
|
-
|
|
1462
|
+
case PM_CONSTANT_PATH_WRITE_NODE: {
|
|
1463
|
+
pm_constant_path_write_node_t *cast = (pm_constant_path_write_node_t *) node;
|
|
1450
1464
|
memsize->memsize += sizeof(*cast);
|
|
1451
|
-
|
|
1452
|
-
|
|
1465
|
+
pm_node_memsize_node((pm_node_t *)cast->target, memsize);
|
|
1466
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1453
1467
|
break;
|
|
1454
1468
|
}
|
|
1455
1469
|
#line 102 "node.c.erb"
|
|
1456
|
-
case
|
|
1457
|
-
|
|
1470
|
+
case PM_CONSTANT_READ_NODE: {
|
|
1471
|
+
pm_constant_read_node_t *cast = (pm_constant_read_node_t *) node;
|
|
1458
1472
|
memsize->memsize += sizeof(*cast);
|
|
1459
1473
|
break;
|
|
1460
1474
|
}
|
|
1461
1475
|
#line 102 "node.c.erb"
|
|
1462
|
-
case
|
|
1463
|
-
|
|
1476
|
+
case PM_CONSTANT_TARGET_NODE: {
|
|
1477
|
+
pm_constant_target_node_t *cast = (pm_constant_target_node_t *) node;
|
|
1464
1478
|
memsize->memsize += sizeof(*cast);
|
|
1465
1479
|
break;
|
|
1466
1480
|
}
|
|
1467
1481
|
#line 102 "node.c.erb"
|
|
1468
|
-
case
|
|
1469
|
-
|
|
1482
|
+
case PM_CONSTANT_WRITE_NODE: {
|
|
1483
|
+
pm_constant_write_node_t *cast = (pm_constant_write_node_t *) node;
|
|
1470
1484
|
memsize->memsize += sizeof(*cast);
|
|
1471
|
-
|
|
1485
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1472
1486
|
break;
|
|
1473
1487
|
}
|
|
1474
1488
|
#line 102 "node.c.erb"
|
|
1475
|
-
case
|
|
1476
|
-
|
|
1489
|
+
case PM_DEF_NODE: {
|
|
1490
|
+
pm_def_node_t *cast = (pm_def_node_t *) node;
|
|
1477
1491
|
memsize->memsize += sizeof(*cast);
|
|
1492
|
+
// Constant id lists will add in their own sizes below.
|
|
1493
|
+
memsize->memsize -= sizeof(pm_constant_id_list_t) * 1;
|
|
1478
1494
|
if (cast->receiver != NULL) {
|
|
1479
|
-
|
|
1495
|
+
pm_node_memsize_node((pm_node_t *)cast->receiver, memsize);
|
|
1480
1496
|
}
|
|
1481
1497
|
if (cast->parameters != NULL) {
|
|
1482
|
-
|
|
1498
|
+
pm_node_memsize_node((pm_node_t *)cast->parameters, memsize);
|
|
1483
1499
|
}
|
|
1484
1500
|
if (cast->body != NULL) {
|
|
1485
|
-
|
|
1501
|
+
pm_node_memsize_node((pm_node_t *)cast->body, memsize);
|
|
1486
1502
|
}
|
|
1487
|
-
memsize->memsize +=
|
|
1503
|
+
memsize->memsize += pm_constant_id_list_memsize(&cast->locals);
|
|
1488
1504
|
break;
|
|
1489
1505
|
}
|
|
1490
1506
|
#line 102 "node.c.erb"
|
|
1491
|
-
case
|
|
1492
|
-
|
|
1507
|
+
case PM_DEFINED_NODE: {
|
|
1508
|
+
pm_defined_node_t *cast = (pm_defined_node_t *) node;
|
|
1493
1509
|
memsize->memsize += sizeof(*cast);
|
|
1494
|
-
|
|
1510
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1495
1511
|
break;
|
|
1496
1512
|
}
|
|
1497
1513
|
#line 102 "node.c.erb"
|
|
1498
|
-
case
|
|
1499
|
-
|
|
1514
|
+
case PM_ELSE_NODE: {
|
|
1515
|
+
pm_else_node_t *cast = (pm_else_node_t *) node;
|
|
1500
1516
|
memsize->memsize += sizeof(*cast);
|
|
1501
1517
|
if (cast->statements != NULL) {
|
|
1502
|
-
|
|
1518
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
1503
1519
|
}
|
|
1504
1520
|
break;
|
|
1505
1521
|
}
|
|
1506
1522
|
#line 102 "node.c.erb"
|
|
1507
|
-
case
|
|
1508
|
-
|
|
1523
|
+
case PM_EMBEDDED_STATEMENTS_NODE: {
|
|
1524
|
+
pm_embedded_statements_node_t *cast = (pm_embedded_statements_node_t *) node;
|
|
1509
1525
|
memsize->memsize += sizeof(*cast);
|
|
1510
1526
|
if (cast->statements != NULL) {
|
|
1511
|
-
|
|
1527
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
1512
1528
|
}
|
|
1513
1529
|
break;
|
|
1514
1530
|
}
|
|
1515
1531
|
#line 102 "node.c.erb"
|
|
1516
|
-
case
|
|
1517
|
-
|
|
1532
|
+
case PM_EMBEDDED_VARIABLE_NODE: {
|
|
1533
|
+
pm_embedded_variable_node_t *cast = (pm_embedded_variable_node_t *) node;
|
|
1518
1534
|
memsize->memsize += sizeof(*cast);
|
|
1519
|
-
|
|
1535
|
+
pm_node_memsize_node((pm_node_t *)cast->variable, memsize);
|
|
1520
1536
|
break;
|
|
1521
1537
|
}
|
|
1522
1538
|
#line 102 "node.c.erb"
|
|
1523
|
-
case
|
|
1524
|
-
|
|
1539
|
+
case PM_ENSURE_NODE: {
|
|
1540
|
+
pm_ensure_node_t *cast = (pm_ensure_node_t *) node;
|
|
1525
1541
|
memsize->memsize += sizeof(*cast);
|
|
1526
1542
|
if (cast->statements != NULL) {
|
|
1527
|
-
|
|
1543
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
1528
1544
|
}
|
|
1529
1545
|
break;
|
|
1530
1546
|
}
|
|
1531
1547
|
#line 102 "node.c.erb"
|
|
1532
|
-
case
|
|
1533
|
-
|
|
1548
|
+
case PM_FALSE_NODE: {
|
|
1549
|
+
pm_false_node_t *cast = (pm_false_node_t *) node;
|
|
1534
1550
|
memsize->memsize += sizeof(*cast);
|
|
1535
1551
|
break;
|
|
1536
1552
|
}
|
|
1537
1553
|
#line 102 "node.c.erb"
|
|
1538
|
-
case
|
|
1539
|
-
|
|
1554
|
+
case PM_FIND_PATTERN_NODE: {
|
|
1555
|
+
pm_find_pattern_node_t *cast = (pm_find_pattern_node_t *) node;
|
|
1540
1556
|
memsize->memsize += sizeof(*cast);
|
|
1557
|
+
// Node lists will add in their own sizes below.
|
|
1558
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1541
1559
|
if (cast->constant != NULL) {
|
|
1542
|
-
|
|
1560
|
+
pm_node_memsize_node((pm_node_t *)cast->constant, memsize);
|
|
1543
1561
|
}
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1562
|
+
pm_node_memsize_node((pm_node_t *)cast->left, memsize);
|
|
1563
|
+
memsize->memsize += pm_node_list_memsize(&cast->requireds, memsize);
|
|
1564
|
+
pm_node_memsize_node((pm_node_t *)cast->right, memsize);
|
|
1547
1565
|
break;
|
|
1548
1566
|
}
|
|
1549
1567
|
#line 102 "node.c.erb"
|
|
1550
|
-
case
|
|
1551
|
-
|
|
1568
|
+
case PM_FLIP_FLOP_NODE: {
|
|
1569
|
+
pm_flip_flop_node_t *cast = (pm_flip_flop_node_t *) node;
|
|
1552
1570
|
memsize->memsize += sizeof(*cast);
|
|
1553
1571
|
if (cast->left != NULL) {
|
|
1554
|
-
|
|
1572
|
+
pm_node_memsize_node((pm_node_t *)cast->left, memsize);
|
|
1555
1573
|
}
|
|
1556
1574
|
if (cast->right != NULL) {
|
|
1557
|
-
|
|
1575
|
+
pm_node_memsize_node((pm_node_t *)cast->right, memsize);
|
|
1558
1576
|
}
|
|
1559
1577
|
break;
|
|
1560
1578
|
}
|
|
1561
1579
|
#line 102 "node.c.erb"
|
|
1562
|
-
case
|
|
1563
|
-
|
|
1580
|
+
case PM_FLOAT_NODE: {
|
|
1581
|
+
pm_float_node_t *cast = (pm_float_node_t *) node;
|
|
1564
1582
|
memsize->memsize += sizeof(*cast);
|
|
1565
1583
|
break;
|
|
1566
1584
|
}
|
|
1567
1585
|
#line 102 "node.c.erb"
|
|
1568
|
-
case
|
|
1569
|
-
|
|
1586
|
+
case PM_FOR_NODE: {
|
|
1587
|
+
pm_for_node_t *cast = (pm_for_node_t *) node;
|
|
1570
1588
|
memsize->memsize += sizeof(*cast);
|
|
1571
|
-
|
|
1572
|
-
|
|
1589
|
+
pm_node_memsize_node((pm_node_t *)cast->index, memsize);
|
|
1590
|
+
pm_node_memsize_node((pm_node_t *)cast->collection, memsize);
|
|
1573
1591
|
if (cast->statements != NULL) {
|
|
1574
|
-
|
|
1592
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
1575
1593
|
}
|
|
1576
1594
|
break;
|
|
1577
1595
|
}
|
|
1578
1596
|
#line 102 "node.c.erb"
|
|
1579
|
-
case
|
|
1580
|
-
|
|
1597
|
+
case PM_FORWARDING_ARGUMENTS_NODE: {
|
|
1598
|
+
pm_forwarding_arguments_node_t *cast = (pm_forwarding_arguments_node_t *) node;
|
|
1581
1599
|
memsize->memsize += sizeof(*cast);
|
|
1582
1600
|
break;
|
|
1583
1601
|
}
|
|
1584
1602
|
#line 102 "node.c.erb"
|
|
1585
|
-
case
|
|
1586
|
-
|
|
1603
|
+
case PM_FORWARDING_PARAMETER_NODE: {
|
|
1604
|
+
pm_forwarding_parameter_node_t *cast = (pm_forwarding_parameter_node_t *) node;
|
|
1587
1605
|
memsize->memsize += sizeof(*cast);
|
|
1588
1606
|
break;
|
|
1589
1607
|
}
|
|
1590
1608
|
#line 102 "node.c.erb"
|
|
1591
|
-
case
|
|
1592
|
-
|
|
1609
|
+
case PM_FORWARDING_SUPER_NODE: {
|
|
1610
|
+
pm_forwarding_super_node_t *cast = (pm_forwarding_super_node_t *) node;
|
|
1593
1611
|
memsize->memsize += sizeof(*cast);
|
|
1594
1612
|
if (cast->block != NULL) {
|
|
1595
|
-
|
|
1613
|
+
pm_node_memsize_node((pm_node_t *)cast->block, memsize);
|
|
1596
1614
|
}
|
|
1597
1615
|
break;
|
|
1598
1616
|
}
|
|
1599
1617
|
#line 102 "node.c.erb"
|
|
1600
|
-
case
|
|
1601
|
-
|
|
1618
|
+
case PM_GLOBAL_VARIABLE_AND_WRITE_NODE: {
|
|
1619
|
+
pm_global_variable_and_write_node_t *cast = (pm_global_variable_and_write_node_t *) node;
|
|
1602
1620
|
memsize->memsize += sizeof(*cast);
|
|
1603
|
-
|
|
1621
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1604
1622
|
break;
|
|
1605
1623
|
}
|
|
1606
1624
|
#line 102 "node.c.erb"
|
|
1607
|
-
case
|
|
1608
|
-
|
|
1625
|
+
case PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE: {
|
|
1626
|
+
pm_global_variable_operator_write_node_t *cast = (pm_global_variable_operator_write_node_t *) node;
|
|
1609
1627
|
memsize->memsize += sizeof(*cast);
|
|
1610
|
-
|
|
1628
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1611
1629
|
break;
|
|
1612
1630
|
}
|
|
1613
1631
|
#line 102 "node.c.erb"
|
|
1614
|
-
case
|
|
1615
|
-
|
|
1632
|
+
case PM_GLOBAL_VARIABLE_OR_WRITE_NODE: {
|
|
1633
|
+
pm_global_variable_or_write_node_t *cast = (pm_global_variable_or_write_node_t *) node;
|
|
1616
1634
|
memsize->memsize += sizeof(*cast);
|
|
1617
|
-
|
|
1635
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1618
1636
|
break;
|
|
1619
1637
|
}
|
|
1620
1638
|
#line 102 "node.c.erb"
|
|
1621
|
-
case
|
|
1622
|
-
|
|
1639
|
+
case PM_GLOBAL_VARIABLE_READ_NODE: {
|
|
1640
|
+
pm_global_variable_read_node_t *cast = (pm_global_variable_read_node_t *) node;
|
|
1623
1641
|
memsize->memsize += sizeof(*cast);
|
|
1624
1642
|
break;
|
|
1625
1643
|
}
|
|
1626
1644
|
#line 102 "node.c.erb"
|
|
1627
|
-
case
|
|
1628
|
-
|
|
1645
|
+
case PM_GLOBAL_VARIABLE_TARGET_NODE: {
|
|
1646
|
+
pm_global_variable_target_node_t *cast = (pm_global_variable_target_node_t *) node;
|
|
1629
1647
|
memsize->memsize += sizeof(*cast);
|
|
1630
1648
|
break;
|
|
1631
1649
|
}
|
|
1632
1650
|
#line 102 "node.c.erb"
|
|
1633
|
-
case
|
|
1634
|
-
|
|
1651
|
+
case PM_GLOBAL_VARIABLE_WRITE_NODE: {
|
|
1652
|
+
pm_global_variable_write_node_t *cast = (pm_global_variable_write_node_t *) node;
|
|
1635
1653
|
memsize->memsize += sizeof(*cast);
|
|
1636
|
-
|
|
1654
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1637
1655
|
break;
|
|
1638
1656
|
}
|
|
1639
1657
|
#line 102 "node.c.erb"
|
|
1640
|
-
case
|
|
1641
|
-
|
|
1658
|
+
case PM_HASH_NODE: {
|
|
1659
|
+
pm_hash_node_t *cast = (pm_hash_node_t *) node;
|
|
1642
1660
|
memsize->memsize += sizeof(*cast);
|
|
1643
|
-
|
|
1661
|
+
// Node lists will add in their own sizes below.
|
|
1662
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1663
|
+
memsize->memsize += pm_node_list_memsize(&cast->elements, memsize);
|
|
1644
1664
|
break;
|
|
1645
1665
|
}
|
|
1646
1666
|
#line 102 "node.c.erb"
|
|
1647
|
-
case
|
|
1648
|
-
|
|
1667
|
+
case PM_HASH_PATTERN_NODE: {
|
|
1668
|
+
pm_hash_pattern_node_t *cast = (pm_hash_pattern_node_t *) node;
|
|
1649
1669
|
memsize->memsize += sizeof(*cast);
|
|
1670
|
+
// Node lists will add in their own sizes below.
|
|
1671
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1650
1672
|
if (cast->constant != NULL) {
|
|
1651
|
-
|
|
1673
|
+
pm_node_memsize_node((pm_node_t *)cast->constant, memsize);
|
|
1652
1674
|
}
|
|
1653
|
-
|
|
1675
|
+
memsize->memsize += pm_node_list_memsize(&cast->assocs, memsize);
|
|
1654
1676
|
if (cast->kwrest != NULL) {
|
|
1655
|
-
|
|
1677
|
+
pm_node_memsize_node((pm_node_t *)cast->kwrest, memsize);
|
|
1656
1678
|
}
|
|
1657
1679
|
break;
|
|
1658
1680
|
}
|
|
1659
1681
|
#line 102 "node.c.erb"
|
|
1660
|
-
case
|
|
1661
|
-
|
|
1682
|
+
case PM_IF_NODE: {
|
|
1683
|
+
pm_if_node_t *cast = (pm_if_node_t *) node;
|
|
1662
1684
|
memsize->memsize += sizeof(*cast);
|
|
1663
|
-
|
|
1685
|
+
pm_node_memsize_node((pm_node_t *)cast->predicate, memsize);
|
|
1664
1686
|
if (cast->statements != NULL) {
|
|
1665
|
-
|
|
1687
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
1666
1688
|
}
|
|
1667
1689
|
if (cast->consequent != NULL) {
|
|
1668
|
-
|
|
1690
|
+
pm_node_memsize_node((pm_node_t *)cast->consequent, memsize);
|
|
1669
1691
|
}
|
|
1670
1692
|
break;
|
|
1671
1693
|
}
|
|
1672
1694
|
#line 102 "node.c.erb"
|
|
1673
|
-
case
|
|
1674
|
-
|
|
1695
|
+
case PM_IMAGINARY_NODE: {
|
|
1696
|
+
pm_imaginary_node_t *cast = (pm_imaginary_node_t *) node;
|
|
1675
1697
|
memsize->memsize += sizeof(*cast);
|
|
1676
|
-
|
|
1698
|
+
pm_node_memsize_node((pm_node_t *)cast->numeric, memsize);
|
|
1677
1699
|
break;
|
|
1678
1700
|
}
|
|
1679
1701
|
#line 102 "node.c.erb"
|
|
1680
|
-
case
|
|
1681
|
-
|
|
1702
|
+
case PM_IMPLICIT_NODE: {
|
|
1703
|
+
pm_implicit_node_t *cast = (pm_implicit_node_t *) node;
|
|
1682
1704
|
memsize->memsize += sizeof(*cast);
|
|
1683
|
-
|
|
1705
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1684
1706
|
break;
|
|
1685
1707
|
}
|
|
1686
1708
|
#line 102 "node.c.erb"
|
|
1687
|
-
case
|
|
1688
|
-
|
|
1709
|
+
case PM_IN_NODE: {
|
|
1710
|
+
pm_in_node_t *cast = (pm_in_node_t *) node;
|
|
1689
1711
|
memsize->memsize += sizeof(*cast);
|
|
1690
|
-
|
|
1712
|
+
pm_node_memsize_node((pm_node_t *)cast->pattern, memsize);
|
|
1691
1713
|
if (cast->statements != NULL) {
|
|
1692
|
-
|
|
1714
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
1693
1715
|
}
|
|
1694
1716
|
break;
|
|
1695
1717
|
}
|
|
1696
1718
|
#line 102 "node.c.erb"
|
|
1697
|
-
case
|
|
1698
|
-
|
|
1719
|
+
case PM_INSTANCE_VARIABLE_AND_WRITE_NODE: {
|
|
1720
|
+
pm_instance_variable_and_write_node_t *cast = (pm_instance_variable_and_write_node_t *) node;
|
|
1699
1721
|
memsize->memsize += sizeof(*cast);
|
|
1700
|
-
|
|
1722
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1701
1723
|
break;
|
|
1702
1724
|
}
|
|
1703
1725
|
#line 102 "node.c.erb"
|
|
1704
|
-
case
|
|
1705
|
-
|
|
1726
|
+
case PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE: {
|
|
1727
|
+
pm_instance_variable_operator_write_node_t *cast = (pm_instance_variable_operator_write_node_t *) node;
|
|
1706
1728
|
memsize->memsize += sizeof(*cast);
|
|
1707
|
-
|
|
1729
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1708
1730
|
break;
|
|
1709
1731
|
}
|
|
1710
1732
|
#line 102 "node.c.erb"
|
|
1711
|
-
case
|
|
1712
|
-
|
|
1733
|
+
case PM_INSTANCE_VARIABLE_OR_WRITE_NODE: {
|
|
1734
|
+
pm_instance_variable_or_write_node_t *cast = (pm_instance_variable_or_write_node_t *) node;
|
|
1713
1735
|
memsize->memsize += sizeof(*cast);
|
|
1714
|
-
|
|
1736
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1715
1737
|
break;
|
|
1716
1738
|
}
|
|
1717
1739
|
#line 102 "node.c.erb"
|
|
1718
|
-
case
|
|
1719
|
-
|
|
1740
|
+
case PM_INSTANCE_VARIABLE_READ_NODE: {
|
|
1741
|
+
pm_instance_variable_read_node_t *cast = (pm_instance_variable_read_node_t *) node;
|
|
1720
1742
|
memsize->memsize += sizeof(*cast);
|
|
1721
1743
|
break;
|
|
1722
1744
|
}
|
|
1723
1745
|
#line 102 "node.c.erb"
|
|
1724
|
-
case
|
|
1725
|
-
|
|
1746
|
+
case PM_INSTANCE_VARIABLE_TARGET_NODE: {
|
|
1747
|
+
pm_instance_variable_target_node_t *cast = (pm_instance_variable_target_node_t *) node;
|
|
1726
1748
|
memsize->memsize += sizeof(*cast);
|
|
1727
1749
|
break;
|
|
1728
1750
|
}
|
|
1729
1751
|
#line 102 "node.c.erb"
|
|
1730
|
-
case
|
|
1731
|
-
|
|
1752
|
+
case PM_INSTANCE_VARIABLE_WRITE_NODE: {
|
|
1753
|
+
pm_instance_variable_write_node_t *cast = (pm_instance_variable_write_node_t *) node;
|
|
1732
1754
|
memsize->memsize += sizeof(*cast);
|
|
1733
|
-
|
|
1755
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1734
1756
|
break;
|
|
1735
1757
|
}
|
|
1736
1758
|
#line 102 "node.c.erb"
|
|
1737
|
-
case
|
|
1738
|
-
|
|
1759
|
+
case PM_INTEGER_NODE: {
|
|
1760
|
+
pm_integer_node_t *cast = (pm_integer_node_t *) node;
|
|
1739
1761
|
memsize->memsize += sizeof(*cast);
|
|
1740
1762
|
break;
|
|
1741
1763
|
}
|
|
1742
1764
|
#line 102 "node.c.erb"
|
|
1743
|
-
case
|
|
1744
|
-
|
|
1765
|
+
case PM_INTERPOLATED_MATCH_LAST_LINE_NODE: {
|
|
1766
|
+
pm_interpolated_match_last_line_node_t *cast = (pm_interpolated_match_last_line_node_t *) node;
|
|
1745
1767
|
memsize->memsize += sizeof(*cast);
|
|
1746
|
-
|
|
1768
|
+
// Node lists will add in their own sizes below.
|
|
1769
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1770
|
+
memsize->memsize += pm_node_list_memsize(&cast->parts, memsize);
|
|
1747
1771
|
break;
|
|
1748
1772
|
}
|
|
1749
1773
|
#line 102 "node.c.erb"
|
|
1750
|
-
case
|
|
1751
|
-
|
|
1774
|
+
case PM_INTERPOLATED_REGULAR_EXPRESSION_NODE: {
|
|
1775
|
+
pm_interpolated_regular_expression_node_t *cast = (pm_interpolated_regular_expression_node_t *) node;
|
|
1752
1776
|
memsize->memsize += sizeof(*cast);
|
|
1753
|
-
|
|
1777
|
+
// Node lists will add in their own sizes below.
|
|
1778
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1779
|
+
memsize->memsize += pm_node_list_memsize(&cast->parts, memsize);
|
|
1754
1780
|
break;
|
|
1755
1781
|
}
|
|
1756
1782
|
#line 102 "node.c.erb"
|
|
1757
|
-
case
|
|
1758
|
-
|
|
1783
|
+
case PM_INTERPOLATED_STRING_NODE: {
|
|
1784
|
+
pm_interpolated_string_node_t *cast = (pm_interpolated_string_node_t *) node;
|
|
1759
1785
|
memsize->memsize += sizeof(*cast);
|
|
1760
|
-
|
|
1786
|
+
// Node lists will add in their own sizes below.
|
|
1787
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1788
|
+
memsize->memsize += pm_node_list_memsize(&cast->parts, memsize);
|
|
1761
1789
|
break;
|
|
1762
1790
|
}
|
|
1763
1791
|
#line 102 "node.c.erb"
|
|
1764
|
-
case
|
|
1765
|
-
|
|
1792
|
+
case PM_INTERPOLATED_SYMBOL_NODE: {
|
|
1793
|
+
pm_interpolated_symbol_node_t *cast = (pm_interpolated_symbol_node_t *) node;
|
|
1766
1794
|
memsize->memsize += sizeof(*cast);
|
|
1767
|
-
|
|
1795
|
+
// Node lists will add in their own sizes below.
|
|
1796
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1797
|
+
memsize->memsize += pm_node_list_memsize(&cast->parts, memsize);
|
|
1768
1798
|
break;
|
|
1769
1799
|
}
|
|
1770
1800
|
#line 102 "node.c.erb"
|
|
1771
|
-
case
|
|
1772
|
-
|
|
1801
|
+
case PM_INTERPOLATED_X_STRING_NODE: {
|
|
1802
|
+
pm_interpolated_x_string_node_t *cast = (pm_interpolated_x_string_node_t *) node;
|
|
1773
1803
|
memsize->memsize += sizeof(*cast);
|
|
1774
|
-
|
|
1804
|
+
// Node lists will add in their own sizes below.
|
|
1805
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1806
|
+
memsize->memsize += pm_node_list_memsize(&cast->parts, memsize);
|
|
1775
1807
|
break;
|
|
1776
1808
|
}
|
|
1777
1809
|
#line 102 "node.c.erb"
|
|
1778
|
-
case
|
|
1779
|
-
|
|
1810
|
+
case PM_KEYWORD_HASH_NODE: {
|
|
1811
|
+
pm_keyword_hash_node_t *cast = (pm_keyword_hash_node_t *) node;
|
|
1780
1812
|
memsize->memsize += sizeof(*cast);
|
|
1781
|
-
|
|
1813
|
+
// Node lists will add in their own sizes below.
|
|
1814
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1815
|
+
memsize->memsize += pm_node_list_memsize(&cast->elements, memsize);
|
|
1782
1816
|
break;
|
|
1783
1817
|
}
|
|
1784
1818
|
#line 102 "node.c.erb"
|
|
1785
|
-
case
|
|
1786
|
-
|
|
1819
|
+
case PM_KEYWORD_PARAMETER_NODE: {
|
|
1820
|
+
pm_keyword_parameter_node_t *cast = (pm_keyword_parameter_node_t *) node;
|
|
1787
1821
|
memsize->memsize += sizeof(*cast);
|
|
1788
1822
|
if (cast->value != NULL) {
|
|
1789
|
-
|
|
1823
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1790
1824
|
}
|
|
1791
1825
|
break;
|
|
1792
1826
|
}
|
|
1793
1827
|
#line 102 "node.c.erb"
|
|
1794
|
-
case
|
|
1795
|
-
|
|
1828
|
+
case PM_KEYWORD_REST_PARAMETER_NODE: {
|
|
1829
|
+
pm_keyword_rest_parameter_node_t *cast = (pm_keyword_rest_parameter_node_t *) node;
|
|
1796
1830
|
memsize->memsize += sizeof(*cast);
|
|
1797
1831
|
break;
|
|
1798
1832
|
}
|
|
1799
1833
|
#line 102 "node.c.erb"
|
|
1800
|
-
case
|
|
1801
|
-
|
|
1834
|
+
case PM_LAMBDA_NODE: {
|
|
1835
|
+
pm_lambda_node_t *cast = (pm_lambda_node_t *) node;
|
|
1802
1836
|
memsize->memsize += sizeof(*cast);
|
|
1803
|
-
|
|
1837
|
+
// Constant id lists will add in their own sizes below.
|
|
1838
|
+
memsize->memsize -= sizeof(pm_constant_id_list_t) * 1;
|
|
1839
|
+
memsize->memsize += pm_constant_id_list_memsize(&cast->locals);
|
|
1804
1840
|
if (cast->parameters != NULL) {
|
|
1805
|
-
|
|
1841
|
+
pm_node_memsize_node((pm_node_t *)cast->parameters, memsize);
|
|
1806
1842
|
}
|
|
1807
1843
|
if (cast->body != NULL) {
|
|
1808
|
-
|
|
1844
|
+
pm_node_memsize_node((pm_node_t *)cast->body, memsize);
|
|
1809
1845
|
}
|
|
1810
1846
|
break;
|
|
1811
1847
|
}
|
|
1812
1848
|
#line 102 "node.c.erb"
|
|
1813
|
-
case
|
|
1814
|
-
|
|
1849
|
+
case PM_LOCAL_VARIABLE_AND_WRITE_NODE: {
|
|
1850
|
+
pm_local_variable_and_write_node_t *cast = (pm_local_variable_and_write_node_t *) node;
|
|
1815
1851
|
memsize->memsize += sizeof(*cast);
|
|
1816
|
-
|
|
1852
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1817
1853
|
break;
|
|
1818
1854
|
}
|
|
1819
1855
|
#line 102 "node.c.erb"
|
|
1820
|
-
case
|
|
1821
|
-
|
|
1856
|
+
case PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE: {
|
|
1857
|
+
pm_local_variable_operator_write_node_t *cast = (pm_local_variable_operator_write_node_t *) node;
|
|
1822
1858
|
memsize->memsize += sizeof(*cast);
|
|
1823
|
-
|
|
1859
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1824
1860
|
break;
|
|
1825
1861
|
}
|
|
1826
1862
|
#line 102 "node.c.erb"
|
|
1827
|
-
case
|
|
1828
|
-
|
|
1863
|
+
case PM_LOCAL_VARIABLE_OR_WRITE_NODE: {
|
|
1864
|
+
pm_local_variable_or_write_node_t *cast = (pm_local_variable_or_write_node_t *) node;
|
|
1829
1865
|
memsize->memsize += sizeof(*cast);
|
|
1830
|
-
|
|
1866
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1831
1867
|
break;
|
|
1832
1868
|
}
|
|
1833
1869
|
#line 102 "node.c.erb"
|
|
1834
|
-
case
|
|
1835
|
-
|
|
1870
|
+
case PM_LOCAL_VARIABLE_READ_NODE: {
|
|
1871
|
+
pm_local_variable_read_node_t *cast = (pm_local_variable_read_node_t *) node;
|
|
1836
1872
|
memsize->memsize += sizeof(*cast);
|
|
1837
1873
|
break;
|
|
1838
1874
|
}
|
|
1839
1875
|
#line 102 "node.c.erb"
|
|
1840
|
-
case
|
|
1841
|
-
|
|
1876
|
+
case PM_LOCAL_VARIABLE_TARGET_NODE: {
|
|
1877
|
+
pm_local_variable_target_node_t *cast = (pm_local_variable_target_node_t *) node;
|
|
1842
1878
|
memsize->memsize += sizeof(*cast);
|
|
1843
1879
|
break;
|
|
1844
1880
|
}
|
|
1845
1881
|
#line 102 "node.c.erb"
|
|
1846
|
-
case
|
|
1847
|
-
|
|
1882
|
+
case PM_LOCAL_VARIABLE_WRITE_NODE: {
|
|
1883
|
+
pm_local_variable_write_node_t *cast = (pm_local_variable_write_node_t *) node;
|
|
1848
1884
|
memsize->memsize += sizeof(*cast);
|
|
1849
|
-
|
|
1885
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1850
1886
|
break;
|
|
1851
1887
|
}
|
|
1852
1888
|
#line 102 "node.c.erb"
|
|
1853
|
-
case
|
|
1854
|
-
|
|
1889
|
+
case PM_MATCH_LAST_LINE_NODE: {
|
|
1890
|
+
pm_match_last_line_node_t *cast = (pm_match_last_line_node_t *) node;
|
|
1855
1891
|
memsize->memsize += sizeof(*cast);
|
|
1856
|
-
memsize->memsize +=
|
|
1892
|
+
memsize->memsize += pm_string_memsize(&cast->unescaped);
|
|
1857
1893
|
break;
|
|
1858
1894
|
}
|
|
1859
1895
|
#line 102 "node.c.erb"
|
|
1860
|
-
case
|
|
1861
|
-
|
|
1896
|
+
case PM_MATCH_PREDICATE_NODE: {
|
|
1897
|
+
pm_match_predicate_node_t *cast = (pm_match_predicate_node_t *) node;
|
|
1862
1898
|
memsize->memsize += sizeof(*cast);
|
|
1863
|
-
|
|
1864
|
-
|
|
1899
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1900
|
+
pm_node_memsize_node((pm_node_t *)cast->pattern, memsize);
|
|
1865
1901
|
break;
|
|
1866
1902
|
}
|
|
1867
1903
|
#line 102 "node.c.erb"
|
|
1868
|
-
case
|
|
1869
|
-
|
|
1904
|
+
case PM_MATCH_REQUIRED_NODE: {
|
|
1905
|
+
pm_match_required_node_t *cast = (pm_match_required_node_t *) node;
|
|
1870
1906
|
memsize->memsize += sizeof(*cast);
|
|
1871
|
-
|
|
1872
|
-
|
|
1907
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1908
|
+
pm_node_memsize_node((pm_node_t *)cast->pattern, memsize);
|
|
1873
1909
|
break;
|
|
1874
1910
|
}
|
|
1875
1911
|
#line 102 "node.c.erb"
|
|
1876
|
-
case
|
|
1877
|
-
|
|
1912
|
+
case PM_MATCH_WRITE_NODE: {
|
|
1913
|
+
pm_match_write_node_t *cast = (pm_match_write_node_t *) node;
|
|
1878
1914
|
memsize->memsize += sizeof(*cast);
|
|
1879
|
-
|
|
1880
|
-
memsize->memsize
|
|
1915
|
+
// Constant id lists will add in their own sizes below.
|
|
1916
|
+
memsize->memsize -= sizeof(pm_constant_id_list_t) * 1;
|
|
1917
|
+
pm_node_memsize_node((pm_node_t *)cast->call, memsize);
|
|
1918
|
+
memsize->memsize += pm_constant_id_list_memsize(&cast->locals);
|
|
1881
1919
|
break;
|
|
1882
1920
|
}
|
|
1883
1921
|
#line 102 "node.c.erb"
|
|
1884
|
-
case
|
|
1885
|
-
|
|
1922
|
+
case PM_MISSING_NODE: {
|
|
1923
|
+
pm_missing_node_t *cast = (pm_missing_node_t *) node;
|
|
1886
1924
|
memsize->memsize += sizeof(*cast);
|
|
1887
1925
|
break;
|
|
1888
1926
|
}
|
|
1889
1927
|
#line 102 "node.c.erb"
|
|
1890
|
-
case
|
|
1891
|
-
|
|
1928
|
+
case PM_MODULE_NODE: {
|
|
1929
|
+
pm_module_node_t *cast = (pm_module_node_t *) node;
|
|
1892
1930
|
memsize->memsize += sizeof(*cast);
|
|
1893
|
-
|
|
1894
|
-
|
|
1931
|
+
// Constant id lists will add in their own sizes below.
|
|
1932
|
+
memsize->memsize -= sizeof(pm_constant_id_list_t) * 1;
|
|
1933
|
+
memsize->memsize += pm_constant_id_list_memsize(&cast->locals);
|
|
1934
|
+
pm_node_memsize_node((pm_node_t *)cast->constant_path, memsize);
|
|
1895
1935
|
if (cast->body != NULL) {
|
|
1896
|
-
|
|
1936
|
+
pm_node_memsize_node((pm_node_t *)cast->body, memsize);
|
|
1897
1937
|
}
|
|
1898
1938
|
break;
|
|
1899
1939
|
}
|
|
1900
1940
|
#line 102 "node.c.erb"
|
|
1901
|
-
case
|
|
1902
|
-
|
|
1941
|
+
case PM_MULTI_TARGET_NODE: {
|
|
1942
|
+
pm_multi_target_node_t *cast = (pm_multi_target_node_t *) node;
|
|
1903
1943
|
memsize->memsize += sizeof(*cast);
|
|
1904
|
-
|
|
1944
|
+
// Node lists will add in their own sizes below.
|
|
1945
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1946
|
+
memsize->memsize += pm_node_list_memsize(&cast->targets, memsize);
|
|
1905
1947
|
break;
|
|
1906
1948
|
}
|
|
1907
1949
|
#line 102 "node.c.erb"
|
|
1908
|
-
case
|
|
1909
|
-
|
|
1950
|
+
case PM_MULTI_WRITE_NODE: {
|
|
1951
|
+
pm_multi_write_node_t *cast = (pm_multi_write_node_t *) node;
|
|
1910
1952
|
memsize->memsize += sizeof(*cast);
|
|
1911
|
-
|
|
1912
|
-
|
|
1953
|
+
// Node lists will add in their own sizes below.
|
|
1954
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
1955
|
+
memsize->memsize += pm_node_list_memsize(&cast->targets, memsize);
|
|
1956
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1913
1957
|
break;
|
|
1914
1958
|
}
|
|
1915
1959
|
#line 102 "node.c.erb"
|
|
1916
|
-
case
|
|
1917
|
-
|
|
1960
|
+
case PM_NEXT_NODE: {
|
|
1961
|
+
pm_next_node_t *cast = (pm_next_node_t *) node;
|
|
1918
1962
|
memsize->memsize += sizeof(*cast);
|
|
1919
1963
|
if (cast->arguments != NULL) {
|
|
1920
|
-
|
|
1964
|
+
pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
|
|
1921
1965
|
}
|
|
1922
1966
|
break;
|
|
1923
1967
|
}
|
|
1924
1968
|
#line 102 "node.c.erb"
|
|
1925
|
-
case
|
|
1926
|
-
|
|
1969
|
+
case PM_NIL_NODE: {
|
|
1970
|
+
pm_nil_node_t *cast = (pm_nil_node_t *) node;
|
|
1927
1971
|
memsize->memsize += sizeof(*cast);
|
|
1928
1972
|
break;
|
|
1929
1973
|
}
|
|
1930
1974
|
#line 102 "node.c.erb"
|
|
1931
|
-
case
|
|
1932
|
-
|
|
1975
|
+
case PM_NO_KEYWORDS_PARAMETER_NODE: {
|
|
1976
|
+
pm_no_keywords_parameter_node_t *cast = (pm_no_keywords_parameter_node_t *) node;
|
|
1933
1977
|
memsize->memsize += sizeof(*cast);
|
|
1934
1978
|
break;
|
|
1935
1979
|
}
|
|
1936
1980
|
#line 102 "node.c.erb"
|
|
1937
|
-
case
|
|
1938
|
-
|
|
1981
|
+
case PM_NUMBERED_REFERENCE_READ_NODE: {
|
|
1982
|
+
pm_numbered_reference_read_node_t *cast = (pm_numbered_reference_read_node_t *) node;
|
|
1939
1983
|
memsize->memsize += sizeof(*cast);
|
|
1940
1984
|
break;
|
|
1941
1985
|
}
|
|
1942
1986
|
#line 102 "node.c.erb"
|
|
1943
|
-
case
|
|
1944
|
-
|
|
1987
|
+
case PM_OPTIONAL_PARAMETER_NODE: {
|
|
1988
|
+
pm_optional_parameter_node_t *cast = (pm_optional_parameter_node_t *) node;
|
|
1945
1989
|
memsize->memsize += sizeof(*cast);
|
|
1946
|
-
|
|
1990
|
+
pm_node_memsize_node((pm_node_t *)cast->value, memsize);
|
|
1947
1991
|
break;
|
|
1948
1992
|
}
|
|
1949
1993
|
#line 102 "node.c.erb"
|
|
1950
|
-
case
|
|
1951
|
-
|
|
1994
|
+
case PM_OR_NODE: {
|
|
1995
|
+
pm_or_node_t *cast = (pm_or_node_t *) node;
|
|
1952
1996
|
memsize->memsize += sizeof(*cast);
|
|
1953
|
-
|
|
1954
|
-
|
|
1997
|
+
pm_node_memsize_node((pm_node_t *)cast->left, memsize);
|
|
1998
|
+
pm_node_memsize_node((pm_node_t *)cast->right, memsize);
|
|
1955
1999
|
break;
|
|
1956
2000
|
}
|
|
1957
2001
|
#line 102 "node.c.erb"
|
|
1958
|
-
case
|
|
1959
|
-
|
|
2002
|
+
case PM_PARAMETERS_NODE: {
|
|
2003
|
+
pm_parameters_node_t *cast = (pm_parameters_node_t *) node;
|
|
1960
2004
|
memsize->memsize += sizeof(*cast);
|
|
1961
|
-
|
|
1962
|
-
|
|
2005
|
+
// Node lists will add in their own sizes below.
|
|
2006
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 4;
|
|
2007
|
+
memsize->memsize += pm_node_list_memsize(&cast->requireds, memsize);
|
|
2008
|
+
memsize->memsize += pm_node_list_memsize(&cast->optionals, memsize);
|
|
1963
2009
|
if (cast->rest != NULL) {
|
|
1964
|
-
|
|
2010
|
+
pm_node_memsize_node((pm_node_t *)cast->rest, memsize);
|
|
1965
2011
|
}
|
|
1966
|
-
|
|
1967
|
-
|
|
2012
|
+
memsize->memsize += pm_node_list_memsize(&cast->posts, memsize);
|
|
2013
|
+
memsize->memsize += pm_node_list_memsize(&cast->keywords, memsize);
|
|
1968
2014
|
if (cast->keyword_rest != NULL) {
|
|
1969
|
-
|
|
2015
|
+
pm_node_memsize_node((pm_node_t *)cast->keyword_rest, memsize);
|
|
1970
2016
|
}
|
|
1971
2017
|
if (cast->block != NULL) {
|
|
1972
|
-
|
|
2018
|
+
pm_node_memsize_node((pm_node_t *)cast->block, memsize);
|
|
1973
2019
|
}
|
|
1974
2020
|
break;
|
|
1975
2021
|
}
|
|
1976
2022
|
#line 102 "node.c.erb"
|
|
1977
|
-
case
|
|
1978
|
-
|
|
2023
|
+
case PM_PARENTHESES_NODE: {
|
|
2024
|
+
pm_parentheses_node_t *cast = (pm_parentheses_node_t *) node;
|
|
1979
2025
|
memsize->memsize += sizeof(*cast);
|
|
1980
2026
|
if (cast->body != NULL) {
|
|
1981
|
-
|
|
2027
|
+
pm_node_memsize_node((pm_node_t *)cast->body, memsize);
|
|
1982
2028
|
}
|
|
1983
2029
|
break;
|
|
1984
2030
|
}
|
|
1985
2031
|
#line 102 "node.c.erb"
|
|
1986
|
-
case
|
|
1987
|
-
|
|
2032
|
+
case PM_PINNED_EXPRESSION_NODE: {
|
|
2033
|
+
pm_pinned_expression_node_t *cast = (pm_pinned_expression_node_t *) node;
|
|
1988
2034
|
memsize->memsize += sizeof(*cast);
|
|
1989
|
-
|
|
2035
|
+
pm_node_memsize_node((pm_node_t *)cast->expression, memsize);
|
|
1990
2036
|
break;
|
|
1991
2037
|
}
|
|
1992
2038
|
#line 102 "node.c.erb"
|
|
1993
|
-
case
|
|
1994
|
-
|
|
2039
|
+
case PM_PINNED_VARIABLE_NODE: {
|
|
2040
|
+
pm_pinned_variable_node_t *cast = (pm_pinned_variable_node_t *) node;
|
|
1995
2041
|
memsize->memsize += sizeof(*cast);
|
|
1996
|
-
|
|
2042
|
+
pm_node_memsize_node((pm_node_t *)cast->variable, memsize);
|
|
1997
2043
|
break;
|
|
1998
2044
|
}
|
|
1999
2045
|
#line 102 "node.c.erb"
|
|
2000
|
-
case
|
|
2001
|
-
|
|
2046
|
+
case PM_POST_EXECUTION_NODE: {
|
|
2047
|
+
pm_post_execution_node_t *cast = (pm_post_execution_node_t *) node;
|
|
2002
2048
|
memsize->memsize += sizeof(*cast);
|
|
2003
2049
|
if (cast->statements != NULL) {
|
|
2004
|
-
|
|
2050
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
2005
2051
|
}
|
|
2006
2052
|
break;
|
|
2007
2053
|
}
|
|
2008
2054
|
#line 102 "node.c.erb"
|
|
2009
|
-
case
|
|
2010
|
-
|
|
2055
|
+
case PM_PRE_EXECUTION_NODE: {
|
|
2056
|
+
pm_pre_execution_node_t *cast = (pm_pre_execution_node_t *) node;
|
|
2011
2057
|
memsize->memsize += sizeof(*cast);
|
|
2012
2058
|
if (cast->statements != NULL) {
|
|
2013
|
-
|
|
2059
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
2014
2060
|
}
|
|
2015
2061
|
break;
|
|
2016
2062
|
}
|
|
2017
2063
|
#line 102 "node.c.erb"
|
|
2018
|
-
case
|
|
2019
|
-
|
|
2064
|
+
case PM_PROGRAM_NODE: {
|
|
2065
|
+
pm_program_node_t *cast = (pm_program_node_t *) node;
|
|
2020
2066
|
memsize->memsize += sizeof(*cast);
|
|
2021
|
-
|
|
2022
|
-
|
|
2067
|
+
// Constant id lists will add in their own sizes below.
|
|
2068
|
+
memsize->memsize -= sizeof(pm_constant_id_list_t) * 1;
|
|
2069
|
+
memsize->memsize += pm_constant_id_list_memsize(&cast->locals);
|
|
2070
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
2023
2071
|
break;
|
|
2024
2072
|
}
|
|
2025
2073
|
#line 102 "node.c.erb"
|
|
2026
|
-
case
|
|
2027
|
-
|
|
2074
|
+
case PM_RANGE_NODE: {
|
|
2075
|
+
pm_range_node_t *cast = (pm_range_node_t *) node;
|
|
2028
2076
|
memsize->memsize += sizeof(*cast);
|
|
2029
2077
|
if (cast->left != NULL) {
|
|
2030
|
-
|
|
2078
|
+
pm_node_memsize_node((pm_node_t *)cast->left, memsize);
|
|
2031
2079
|
}
|
|
2032
2080
|
if (cast->right != NULL) {
|
|
2033
|
-
|
|
2081
|
+
pm_node_memsize_node((pm_node_t *)cast->right, memsize);
|
|
2034
2082
|
}
|
|
2035
2083
|
break;
|
|
2036
2084
|
}
|
|
2037
2085
|
#line 102 "node.c.erb"
|
|
2038
|
-
case
|
|
2039
|
-
|
|
2086
|
+
case PM_RATIONAL_NODE: {
|
|
2087
|
+
pm_rational_node_t *cast = (pm_rational_node_t *) node;
|
|
2040
2088
|
memsize->memsize += sizeof(*cast);
|
|
2041
|
-
|
|
2089
|
+
pm_node_memsize_node((pm_node_t *)cast->numeric, memsize);
|
|
2042
2090
|
break;
|
|
2043
2091
|
}
|
|
2044
2092
|
#line 102 "node.c.erb"
|
|
2045
|
-
case
|
|
2046
|
-
|
|
2093
|
+
case PM_REDO_NODE: {
|
|
2094
|
+
pm_redo_node_t *cast = (pm_redo_node_t *) node;
|
|
2047
2095
|
memsize->memsize += sizeof(*cast);
|
|
2048
2096
|
break;
|
|
2049
2097
|
}
|
|
2050
2098
|
#line 102 "node.c.erb"
|
|
2051
|
-
case
|
|
2052
|
-
|
|
2099
|
+
case PM_REGULAR_EXPRESSION_NODE: {
|
|
2100
|
+
pm_regular_expression_node_t *cast = (pm_regular_expression_node_t *) node;
|
|
2053
2101
|
memsize->memsize += sizeof(*cast);
|
|
2054
|
-
memsize->memsize +=
|
|
2102
|
+
memsize->memsize += pm_string_memsize(&cast->unescaped);
|
|
2055
2103
|
break;
|
|
2056
2104
|
}
|
|
2057
2105
|
#line 102 "node.c.erb"
|
|
2058
|
-
case
|
|
2059
|
-
|
|
2106
|
+
case PM_REQUIRED_DESTRUCTURED_PARAMETER_NODE: {
|
|
2107
|
+
pm_required_destructured_parameter_node_t *cast = (pm_required_destructured_parameter_node_t *) node;
|
|
2060
2108
|
memsize->memsize += sizeof(*cast);
|
|
2061
|
-
|
|
2109
|
+
// Node lists will add in their own sizes below.
|
|
2110
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
2111
|
+
memsize->memsize += pm_node_list_memsize(&cast->parameters, memsize);
|
|
2062
2112
|
break;
|
|
2063
2113
|
}
|
|
2064
2114
|
#line 102 "node.c.erb"
|
|
2065
|
-
case
|
|
2066
|
-
|
|
2115
|
+
case PM_REQUIRED_PARAMETER_NODE: {
|
|
2116
|
+
pm_required_parameter_node_t *cast = (pm_required_parameter_node_t *) node;
|
|
2067
2117
|
memsize->memsize += sizeof(*cast);
|
|
2068
2118
|
break;
|
|
2069
2119
|
}
|
|
2070
2120
|
#line 102 "node.c.erb"
|
|
2071
|
-
case
|
|
2072
|
-
|
|
2121
|
+
case PM_RESCUE_MODIFIER_NODE: {
|
|
2122
|
+
pm_rescue_modifier_node_t *cast = (pm_rescue_modifier_node_t *) node;
|
|
2073
2123
|
memsize->memsize += sizeof(*cast);
|
|
2074
|
-
|
|
2075
|
-
|
|
2124
|
+
pm_node_memsize_node((pm_node_t *)cast->expression, memsize);
|
|
2125
|
+
pm_node_memsize_node((pm_node_t *)cast->rescue_expression, memsize);
|
|
2076
2126
|
break;
|
|
2077
2127
|
}
|
|
2078
2128
|
#line 102 "node.c.erb"
|
|
2079
|
-
case
|
|
2080
|
-
|
|
2129
|
+
case PM_RESCUE_NODE: {
|
|
2130
|
+
pm_rescue_node_t *cast = (pm_rescue_node_t *) node;
|
|
2081
2131
|
memsize->memsize += sizeof(*cast);
|
|
2082
|
-
|
|
2132
|
+
// Node lists will add in their own sizes below.
|
|
2133
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
2134
|
+
memsize->memsize += pm_node_list_memsize(&cast->exceptions, memsize);
|
|
2083
2135
|
if (cast->reference != NULL) {
|
|
2084
|
-
|
|
2136
|
+
pm_node_memsize_node((pm_node_t *)cast->reference, memsize);
|
|
2085
2137
|
}
|
|
2086
2138
|
if (cast->statements != NULL) {
|
|
2087
|
-
|
|
2139
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
2088
2140
|
}
|
|
2089
2141
|
if (cast->consequent != NULL) {
|
|
2090
|
-
|
|
2142
|
+
pm_node_memsize_node((pm_node_t *)cast->consequent, memsize);
|
|
2091
2143
|
}
|
|
2092
2144
|
break;
|
|
2093
2145
|
}
|
|
2094
2146
|
#line 102 "node.c.erb"
|
|
2095
|
-
case
|
|
2096
|
-
|
|
2147
|
+
case PM_REST_PARAMETER_NODE: {
|
|
2148
|
+
pm_rest_parameter_node_t *cast = (pm_rest_parameter_node_t *) node;
|
|
2097
2149
|
memsize->memsize += sizeof(*cast);
|
|
2098
2150
|
break;
|
|
2099
2151
|
}
|
|
2100
2152
|
#line 102 "node.c.erb"
|
|
2101
|
-
case
|
|
2102
|
-
|
|
2153
|
+
case PM_RETRY_NODE: {
|
|
2154
|
+
pm_retry_node_t *cast = (pm_retry_node_t *) node;
|
|
2103
2155
|
memsize->memsize += sizeof(*cast);
|
|
2104
2156
|
break;
|
|
2105
2157
|
}
|
|
2106
2158
|
#line 102 "node.c.erb"
|
|
2107
|
-
case
|
|
2108
|
-
|
|
2159
|
+
case PM_RETURN_NODE: {
|
|
2160
|
+
pm_return_node_t *cast = (pm_return_node_t *) node;
|
|
2109
2161
|
memsize->memsize += sizeof(*cast);
|
|
2110
2162
|
if (cast->arguments != NULL) {
|
|
2111
|
-
|
|
2163
|
+
pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
|
|
2112
2164
|
}
|
|
2113
2165
|
break;
|
|
2114
2166
|
}
|
|
2115
2167
|
#line 102 "node.c.erb"
|
|
2116
|
-
case
|
|
2117
|
-
|
|
2168
|
+
case PM_SELF_NODE: {
|
|
2169
|
+
pm_self_node_t *cast = (pm_self_node_t *) node;
|
|
2118
2170
|
memsize->memsize += sizeof(*cast);
|
|
2119
2171
|
break;
|
|
2120
2172
|
}
|
|
2121
2173
|
#line 102 "node.c.erb"
|
|
2122
|
-
case
|
|
2123
|
-
|
|
2174
|
+
case PM_SINGLETON_CLASS_NODE: {
|
|
2175
|
+
pm_singleton_class_node_t *cast = (pm_singleton_class_node_t *) node;
|
|
2124
2176
|
memsize->memsize += sizeof(*cast);
|
|
2125
|
-
|
|
2126
|
-
|
|
2177
|
+
// Constant id lists will add in their own sizes below.
|
|
2178
|
+
memsize->memsize -= sizeof(pm_constant_id_list_t) * 1;
|
|
2179
|
+
memsize->memsize += pm_constant_id_list_memsize(&cast->locals);
|
|
2180
|
+
pm_node_memsize_node((pm_node_t *)cast->expression, memsize);
|
|
2127
2181
|
if (cast->body != NULL) {
|
|
2128
|
-
|
|
2182
|
+
pm_node_memsize_node((pm_node_t *)cast->body, memsize);
|
|
2129
2183
|
}
|
|
2130
2184
|
break;
|
|
2131
2185
|
}
|
|
2132
2186
|
#line 102 "node.c.erb"
|
|
2133
|
-
case
|
|
2134
|
-
|
|
2187
|
+
case PM_SOURCE_ENCODING_NODE: {
|
|
2188
|
+
pm_source_encoding_node_t *cast = (pm_source_encoding_node_t *) node;
|
|
2135
2189
|
memsize->memsize += sizeof(*cast);
|
|
2136
2190
|
break;
|
|
2137
2191
|
}
|
|
2138
2192
|
#line 102 "node.c.erb"
|
|
2139
|
-
case
|
|
2140
|
-
|
|
2193
|
+
case PM_SOURCE_FILE_NODE: {
|
|
2194
|
+
pm_source_file_node_t *cast = (pm_source_file_node_t *) node;
|
|
2141
2195
|
memsize->memsize += sizeof(*cast);
|
|
2142
|
-
memsize->memsize +=
|
|
2196
|
+
memsize->memsize += pm_string_memsize(&cast->filepath);
|
|
2143
2197
|
break;
|
|
2144
2198
|
}
|
|
2145
2199
|
#line 102 "node.c.erb"
|
|
2146
|
-
case
|
|
2147
|
-
|
|
2200
|
+
case PM_SOURCE_LINE_NODE: {
|
|
2201
|
+
pm_source_line_node_t *cast = (pm_source_line_node_t *) node;
|
|
2148
2202
|
memsize->memsize += sizeof(*cast);
|
|
2149
2203
|
break;
|
|
2150
2204
|
}
|
|
2151
2205
|
#line 102 "node.c.erb"
|
|
2152
|
-
case
|
|
2153
|
-
|
|
2206
|
+
case PM_SPLAT_NODE: {
|
|
2207
|
+
pm_splat_node_t *cast = (pm_splat_node_t *) node;
|
|
2154
2208
|
memsize->memsize += sizeof(*cast);
|
|
2155
2209
|
if (cast->expression != NULL) {
|
|
2156
|
-
|
|
2210
|
+
pm_node_memsize_node((pm_node_t *)cast->expression, memsize);
|
|
2157
2211
|
}
|
|
2158
2212
|
break;
|
|
2159
2213
|
}
|
|
2160
2214
|
#line 102 "node.c.erb"
|
|
2161
|
-
case
|
|
2162
|
-
|
|
2215
|
+
case PM_STATEMENTS_NODE: {
|
|
2216
|
+
pm_statements_node_t *cast = (pm_statements_node_t *) node;
|
|
2163
2217
|
memsize->memsize += sizeof(*cast);
|
|
2164
|
-
|
|
2218
|
+
// Node lists will add in their own sizes below.
|
|
2219
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
2220
|
+
memsize->memsize += pm_node_list_memsize(&cast->body, memsize);
|
|
2165
2221
|
break;
|
|
2166
2222
|
}
|
|
2167
2223
|
#line 102 "node.c.erb"
|
|
2168
|
-
case
|
|
2169
|
-
|
|
2224
|
+
case PM_STRING_CONCAT_NODE: {
|
|
2225
|
+
pm_string_concat_node_t *cast = (pm_string_concat_node_t *) node;
|
|
2170
2226
|
memsize->memsize += sizeof(*cast);
|
|
2171
|
-
|
|
2172
|
-
|
|
2227
|
+
pm_node_memsize_node((pm_node_t *)cast->left, memsize);
|
|
2228
|
+
pm_node_memsize_node((pm_node_t *)cast->right, memsize);
|
|
2173
2229
|
break;
|
|
2174
2230
|
}
|
|
2175
2231
|
#line 102 "node.c.erb"
|
|
2176
|
-
case
|
|
2177
|
-
|
|
2232
|
+
case PM_STRING_NODE: {
|
|
2233
|
+
pm_string_node_t *cast = (pm_string_node_t *) node;
|
|
2178
2234
|
memsize->memsize += sizeof(*cast);
|
|
2179
|
-
memsize->memsize +=
|
|
2235
|
+
memsize->memsize += pm_string_memsize(&cast->unescaped);
|
|
2180
2236
|
break;
|
|
2181
2237
|
}
|
|
2182
2238
|
#line 102 "node.c.erb"
|
|
2183
|
-
case
|
|
2184
|
-
|
|
2239
|
+
case PM_SUPER_NODE: {
|
|
2240
|
+
pm_super_node_t *cast = (pm_super_node_t *) node;
|
|
2185
2241
|
memsize->memsize += sizeof(*cast);
|
|
2186
2242
|
if (cast->arguments != NULL) {
|
|
2187
|
-
|
|
2243
|
+
pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
|
|
2188
2244
|
}
|
|
2189
2245
|
if (cast->block != NULL) {
|
|
2190
|
-
|
|
2246
|
+
pm_node_memsize_node((pm_node_t *)cast->block, memsize);
|
|
2191
2247
|
}
|
|
2192
2248
|
break;
|
|
2193
2249
|
}
|
|
2194
2250
|
#line 102 "node.c.erb"
|
|
2195
|
-
case
|
|
2196
|
-
|
|
2251
|
+
case PM_SYMBOL_NODE: {
|
|
2252
|
+
pm_symbol_node_t *cast = (pm_symbol_node_t *) node;
|
|
2197
2253
|
memsize->memsize += sizeof(*cast);
|
|
2198
|
-
memsize->memsize +=
|
|
2254
|
+
memsize->memsize += pm_string_memsize(&cast->unescaped);
|
|
2199
2255
|
break;
|
|
2200
2256
|
}
|
|
2201
2257
|
#line 102 "node.c.erb"
|
|
2202
|
-
case
|
|
2203
|
-
|
|
2258
|
+
case PM_TRUE_NODE: {
|
|
2259
|
+
pm_true_node_t *cast = (pm_true_node_t *) node;
|
|
2204
2260
|
memsize->memsize += sizeof(*cast);
|
|
2205
2261
|
break;
|
|
2206
2262
|
}
|
|
2207
2263
|
#line 102 "node.c.erb"
|
|
2208
|
-
case
|
|
2209
|
-
|
|
2264
|
+
case PM_UNDEF_NODE: {
|
|
2265
|
+
pm_undef_node_t *cast = (pm_undef_node_t *) node;
|
|
2210
2266
|
memsize->memsize += sizeof(*cast);
|
|
2211
|
-
|
|
2267
|
+
// Node lists will add in their own sizes below.
|
|
2268
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
2269
|
+
memsize->memsize += pm_node_list_memsize(&cast->names, memsize);
|
|
2212
2270
|
break;
|
|
2213
2271
|
}
|
|
2214
2272
|
#line 102 "node.c.erb"
|
|
2215
|
-
case
|
|
2216
|
-
|
|
2273
|
+
case PM_UNLESS_NODE: {
|
|
2274
|
+
pm_unless_node_t *cast = (pm_unless_node_t *) node;
|
|
2217
2275
|
memsize->memsize += sizeof(*cast);
|
|
2218
|
-
|
|
2276
|
+
pm_node_memsize_node((pm_node_t *)cast->predicate, memsize);
|
|
2219
2277
|
if (cast->statements != NULL) {
|
|
2220
|
-
|
|
2278
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
2221
2279
|
}
|
|
2222
2280
|
if (cast->consequent != NULL) {
|
|
2223
|
-
|
|
2281
|
+
pm_node_memsize_node((pm_node_t *)cast->consequent, memsize);
|
|
2224
2282
|
}
|
|
2225
2283
|
break;
|
|
2226
2284
|
}
|
|
2227
2285
|
#line 102 "node.c.erb"
|
|
2228
|
-
case
|
|
2229
|
-
|
|
2286
|
+
case PM_UNTIL_NODE: {
|
|
2287
|
+
pm_until_node_t *cast = (pm_until_node_t *) node;
|
|
2230
2288
|
memsize->memsize += sizeof(*cast);
|
|
2231
|
-
|
|
2289
|
+
pm_node_memsize_node((pm_node_t *)cast->predicate, memsize);
|
|
2232
2290
|
if (cast->statements != NULL) {
|
|
2233
|
-
|
|
2291
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
2234
2292
|
}
|
|
2235
2293
|
break;
|
|
2236
2294
|
}
|
|
2237
2295
|
#line 102 "node.c.erb"
|
|
2238
|
-
case
|
|
2239
|
-
|
|
2296
|
+
case PM_WHEN_NODE: {
|
|
2297
|
+
pm_when_node_t *cast = (pm_when_node_t *) node;
|
|
2240
2298
|
memsize->memsize += sizeof(*cast);
|
|
2241
|
-
|
|
2299
|
+
// Node lists will add in their own sizes below.
|
|
2300
|
+
memsize->memsize -= sizeof(pm_node_list_t) * 1;
|
|
2301
|
+
memsize->memsize += pm_node_list_memsize(&cast->conditions, memsize);
|
|
2242
2302
|
if (cast->statements != NULL) {
|
|
2243
|
-
|
|
2303
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
2244
2304
|
}
|
|
2245
2305
|
break;
|
|
2246
2306
|
}
|
|
2247
2307
|
#line 102 "node.c.erb"
|
|
2248
|
-
case
|
|
2249
|
-
|
|
2308
|
+
case PM_WHILE_NODE: {
|
|
2309
|
+
pm_while_node_t *cast = (pm_while_node_t *) node;
|
|
2250
2310
|
memsize->memsize += sizeof(*cast);
|
|
2251
|
-
|
|
2311
|
+
pm_node_memsize_node((pm_node_t *)cast->predicate, memsize);
|
|
2252
2312
|
if (cast->statements != NULL) {
|
|
2253
|
-
|
|
2313
|
+
pm_node_memsize_node((pm_node_t *)cast->statements, memsize);
|
|
2254
2314
|
}
|
|
2255
2315
|
break;
|
|
2256
2316
|
}
|
|
2257
2317
|
#line 102 "node.c.erb"
|
|
2258
|
-
case
|
|
2259
|
-
|
|
2318
|
+
case PM_X_STRING_NODE: {
|
|
2319
|
+
pm_x_string_node_t *cast = (pm_x_string_node_t *) node;
|
|
2260
2320
|
memsize->memsize += sizeof(*cast);
|
|
2261
|
-
memsize->memsize +=
|
|
2321
|
+
memsize->memsize += pm_string_memsize(&cast->unescaped);
|
|
2262
2322
|
break;
|
|
2263
2323
|
}
|
|
2264
2324
|
#line 102 "node.c.erb"
|
|
2265
|
-
case
|
|
2266
|
-
|
|
2325
|
+
case PM_YIELD_NODE: {
|
|
2326
|
+
pm_yield_node_t *cast = (pm_yield_node_t *) node;
|
|
2267
2327
|
memsize->memsize += sizeof(*cast);
|
|
2268
2328
|
if (cast->arguments != NULL) {
|
|
2269
|
-
|
|
2329
|
+
pm_node_memsize_node((pm_node_t *)cast->arguments, memsize);
|
|
2270
2330
|
}
|
|
2271
2331
|
break;
|
|
2272
2332
|
}
|
|
2273
|
-
#line
|
|
2333
|
+
#line 136 "node.c.erb"
|
|
2274
2334
|
}
|
|
2275
2335
|
}
|
|
2276
2336
|
|
|
2277
2337
|
// Calculates the memory footprint of a given node.
|
|
2278
|
-
|
|
2279
|
-
|
|
2280
|
-
*memsize = (
|
|
2281
|
-
|
|
2338
|
+
PRISM_EXPORTED_FUNCTION void
|
|
2339
|
+
pm_node_memsize(pm_node_t *node, pm_memsize_t *memsize) {
|
|
2340
|
+
*memsize = (pm_memsize_t) { .memsize = 0, .node_count = 0 };
|
|
2341
|
+
pm_node_memsize_node(node, memsize);
|
|
2282
2342
|
}
|
|
2283
2343
|
|
|
2284
2344
|
// Returns a string representation of the given node type.
|
|
2285
|
-
|
|
2286
|
-
|
|
2345
|
+
PRISM_EXPORTED_FUNCTION const char *
|
|
2346
|
+
pm_node_type_to_str(pm_node_type_t node_type)
|
|
2287
2347
|
{
|
|
2288
2348
|
switch (node_type) {
|
|
2289
|
-
case
|
|
2290
|
-
return "
|
|
2291
|
-
case
|
|
2292
|
-
return "
|
|
2293
|
-
case
|
|
2294
|
-
return "
|
|
2295
|
-
case
|
|
2296
|
-
return "
|
|
2297
|
-
case
|
|
2298
|
-
return "
|
|
2299
|
-
case
|
|
2300
|
-
return "
|
|
2301
|
-
case
|
|
2302
|
-
return "
|
|
2303
|
-
case
|
|
2304
|
-
return "
|
|
2305
|
-
case
|
|
2306
|
-
return "
|
|
2307
|
-
case
|
|
2308
|
-
return "
|
|
2309
|
-
case
|
|
2310
|
-
return "
|
|
2311
|
-
case
|
|
2312
|
-
return "
|
|
2313
|
-
case
|
|
2314
|
-
return "
|
|
2315
|
-
case
|
|
2316
|
-
return "
|
|
2317
|
-
case
|
|
2318
|
-
return "
|
|
2319
|
-
case
|
|
2320
|
-
return "
|
|
2321
|
-
case
|
|
2322
|
-
return "
|
|
2323
|
-
case
|
|
2324
|
-
return "
|
|
2325
|
-
case
|
|
2326
|
-
return "
|
|
2327
|
-
case
|
|
2328
|
-
return "
|
|
2329
|
-
case
|
|
2330
|
-
return "
|
|
2331
|
-
case
|
|
2332
|
-
return "
|
|
2333
|
-
case
|
|
2334
|
-
return "
|
|
2335
|
-
case
|
|
2336
|
-
return "
|
|
2337
|
-
case
|
|
2338
|
-
return "
|
|
2339
|
-
case
|
|
2340
|
-
return "
|
|
2341
|
-
case
|
|
2342
|
-
return "
|
|
2343
|
-
case
|
|
2344
|
-
return "
|
|
2345
|
-
case
|
|
2346
|
-
return "
|
|
2347
|
-
case
|
|
2348
|
-
return "
|
|
2349
|
-
case
|
|
2350
|
-
return "
|
|
2351
|
-
case
|
|
2352
|
-
return "
|
|
2353
|
-
case
|
|
2354
|
-
return "
|
|
2355
|
-
case
|
|
2356
|
-
return "
|
|
2357
|
-
case
|
|
2358
|
-
return "
|
|
2359
|
-
case
|
|
2360
|
-
return "
|
|
2361
|
-
case
|
|
2362
|
-
return "
|
|
2363
|
-
case
|
|
2364
|
-
return "
|
|
2365
|
-
case
|
|
2366
|
-
return "
|
|
2367
|
-
case
|
|
2368
|
-
return "
|
|
2369
|
-
case
|
|
2370
|
-
return "
|
|
2371
|
-
case
|
|
2372
|
-
return "
|
|
2373
|
-
case
|
|
2374
|
-
return "
|
|
2375
|
-
case
|
|
2376
|
-
return "
|
|
2377
|
-
case
|
|
2378
|
-
return "
|
|
2379
|
-
case
|
|
2380
|
-
return "
|
|
2381
|
-
case
|
|
2382
|
-
return "
|
|
2383
|
-
case
|
|
2384
|
-
return "
|
|
2385
|
-
case
|
|
2386
|
-
return "
|
|
2387
|
-
case
|
|
2388
|
-
return "
|
|
2389
|
-
case
|
|
2390
|
-
return "
|
|
2391
|
-
case
|
|
2392
|
-
return "
|
|
2393
|
-
case
|
|
2394
|
-
return "
|
|
2395
|
-
case
|
|
2396
|
-
return "
|
|
2397
|
-
case
|
|
2398
|
-
return "
|
|
2399
|
-
case
|
|
2400
|
-
return "
|
|
2401
|
-
case
|
|
2402
|
-
return "
|
|
2403
|
-
case
|
|
2404
|
-
return "
|
|
2405
|
-
case
|
|
2406
|
-
return "
|
|
2407
|
-
case
|
|
2408
|
-
return "
|
|
2409
|
-
case
|
|
2410
|
-
return "
|
|
2411
|
-
case
|
|
2412
|
-
return "
|
|
2413
|
-
case
|
|
2414
|
-
return "
|
|
2415
|
-
case
|
|
2416
|
-
return "
|
|
2417
|
-
case
|
|
2418
|
-
return "
|
|
2419
|
-
case
|
|
2420
|
-
return "
|
|
2421
|
-
case
|
|
2422
|
-
return "
|
|
2423
|
-
case
|
|
2424
|
-
return "
|
|
2425
|
-
case
|
|
2426
|
-
return "
|
|
2427
|
-
case
|
|
2428
|
-
return "
|
|
2429
|
-
case
|
|
2430
|
-
return "
|
|
2431
|
-
case
|
|
2432
|
-
return "
|
|
2433
|
-
case
|
|
2434
|
-
return "
|
|
2435
|
-
case
|
|
2436
|
-
return "
|
|
2437
|
-
case
|
|
2438
|
-
return "
|
|
2439
|
-
case
|
|
2440
|
-
return "
|
|
2441
|
-
case
|
|
2442
|
-
return "
|
|
2443
|
-
case
|
|
2444
|
-
return "
|
|
2445
|
-
case
|
|
2446
|
-
return "
|
|
2447
|
-
case
|
|
2448
|
-
return "
|
|
2449
|
-
case
|
|
2450
|
-
return "
|
|
2451
|
-
case
|
|
2452
|
-
return "
|
|
2453
|
-
case
|
|
2454
|
-
return "
|
|
2455
|
-
case
|
|
2456
|
-
return "
|
|
2457
|
-
case
|
|
2458
|
-
return "
|
|
2459
|
-
case
|
|
2460
|
-
return "
|
|
2461
|
-
case
|
|
2462
|
-
return "
|
|
2463
|
-
case
|
|
2464
|
-
return "
|
|
2465
|
-
case
|
|
2466
|
-
return "
|
|
2467
|
-
case
|
|
2468
|
-
return "
|
|
2469
|
-
case
|
|
2470
|
-
return "
|
|
2471
|
-
case
|
|
2472
|
-
return "
|
|
2473
|
-
case
|
|
2474
|
-
return "
|
|
2475
|
-
case
|
|
2476
|
-
return "
|
|
2477
|
-
case
|
|
2478
|
-
return "
|
|
2479
|
-
case
|
|
2480
|
-
return "
|
|
2481
|
-
case
|
|
2482
|
-
return "
|
|
2483
|
-
case
|
|
2484
|
-
return "
|
|
2485
|
-
case
|
|
2486
|
-
return "
|
|
2487
|
-
case
|
|
2488
|
-
return "
|
|
2489
|
-
case
|
|
2490
|
-
return "
|
|
2491
|
-
case
|
|
2492
|
-
return "
|
|
2493
|
-
case
|
|
2494
|
-
return "
|
|
2495
|
-
case
|
|
2496
|
-
return "
|
|
2497
|
-
case
|
|
2498
|
-
return "
|
|
2499
|
-
case
|
|
2500
|
-
return "
|
|
2501
|
-
case
|
|
2502
|
-
return "
|
|
2503
|
-
case
|
|
2504
|
-
return "
|
|
2505
|
-
case
|
|
2506
|
-
return "
|
|
2507
|
-
case
|
|
2508
|
-
return "
|
|
2509
|
-
case
|
|
2510
|
-
return "
|
|
2511
|
-
case
|
|
2512
|
-
return "
|
|
2513
|
-
case
|
|
2514
|
-
return "
|
|
2515
|
-
case
|
|
2516
|
-
return "
|
|
2517
|
-
case
|
|
2518
|
-
return "
|
|
2519
|
-
case
|
|
2520
|
-
return "
|
|
2521
|
-
case
|
|
2522
|
-
return "
|
|
2523
|
-
case
|
|
2524
|
-
return "
|
|
2525
|
-
case
|
|
2526
|
-
return "
|
|
2527
|
-
case
|
|
2528
|
-
return "
|
|
2529
|
-
case
|
|
2530
|
-
return "
|
|
2531
|
-
case
|
|
2532
|
-
return "
|
|
2533
|
-
case
|
|
2534
|
-
return "
|
|
2535
|
-
case
|
|
2536
|
-
return "
|
|
2537
|
-
case
|
|
2538
|
-
return "
|
|
2539
|
-
case
|
|
2540
|
-
return "
|
|
2541
|
-
case
|
|
2542
|
-
return "
|
|
2543
|
-
case
|
|
2544
|
-
return "
|
|
2545
|
-
case
|
|
2546
|
-
return "
|
|
2547
|
-
case
|
|
2548
|
-
return "
|
|
2549
|
-
case
|
|
2550
|
-
return "
|
|
2551
|
-
case
|
|
2552
|
-
return "
|
|
2553
|
-
case
|
|
2554
|
-
return "
|
|
2555
|
-
case
|
|
2556
|
-
return "
|
|
2557
|
-
case
|
|
2558
|
-
return "
|
|
2559
|
-
case
|
|
2560
|
-
return "
|
|
2561
|
-
case
|
|
2562
|
-
return "
|
|
2563
|
-
case
|
|
2564
|
-
return "
|
|
2565
|
-
case
|
|
2566
|
-
return "
|
|
2567
|
-
case
|
|
2568
|
-
return "
|
|
2569
|
-
case
|
|
2570
|
-
return "
|
|
2349
|
+
case PM_ALIAS_GLOBAL_VARIABLE_NODE:
|
|
2350
|
+
return "PM_ALIAS_GLOBAL_VARIABLE_NODE";
|
|
2351
|
+
case PM_ALIAS_METHOD_NODE:
|
|
2352
|
+
return "PM_ALIAS_METHOD_NODE";
|
|
2353
|
+
case PM_ALTERNATION_PATTERN_NODE:
|
|
2354
|
+
return "PM_ALTERNATION_PATTERN_NODE";
|
|
2355
|
+
case PM_AND_NODE:
|
|
2356
|
+
return "PM_AND_NODE";
|
|
2357
|
+
case PM_ARGUMENTS_NODE:
|
|
2358
|
+
return "PM_ARGUMENTS_NODE";
|
|
2359
|
+
case PM_ARRAY_NODE:
|
|
2360
|
+
return "PM_ARRAY_NODE";
|
|
2361
|
+
case PM_ARRAY_PATTERN_NODE:
|
|
2362
|
+
return "PM_ARRAY_PATTERN_NODE";
|
|
2363
|
+
case PM_ASSOC_NODE:
|
|
2364
|
+
return "PM_ASSOC_NODE";
|
|
2365
|
+
case PM_ASSOC_SPLAT_NODE:
|
|
2366
|
+
return "PM_ASSOC_SPLAT_NODE";
|
|
2367
|
+
case PM_BACK_REFERENCE_READ_NODE:
|
|
2368
|
+
return "PM_BACK_REFERENCE_READ_NODE";
|
|
2369
|
+
case PM_BEGIN_NODE:
|
|
2370
|
+
return "PM_BEGIN_NODE";
|
|
2371
|
+
case PM_BLOCK_ARGUMENT_NODE:
|
|
2372
|
+
return "PM_BLOCK_ARGUMENT_NODE";
|
|
2373
|
+
case PM_BLOCK_LOCAL_VARIABLE_NODE:
|
|
2374
|
+
return "PM_BLOCK_LOCAL_VARIABLE_NODE";
|
|
2375
|
+
case PM_BLOCK_NODE:
|
|
2376
|
+
return "PM_BLOCK_NODE";
|
|
2377
|
+
case PM_BLOCK_PARAMETER_NODE:
|
|
2378
|
+
return "PM_BLOCK_PARAMETER_NODE";
|
|
2379
|
+
case PM_BLOCK_PARAMETERS_NODE:
|
|
2380
|
+
return "PM_BLOCK_PARAMETERS_NODE";
|
|
2381
|
+
case PM_BREAK_NODE:
|
|
2382
|
+
return "PM_BREAK_NODE";
|
|
2383
|
+
case PM_CALL_AND_WRITE_NODE:
|
|
2384
|
+
return "PM_CALL_AND_WRITE_NODE";
|
|
2385
|
+
case PM_CALL_NODE:
|
|
2386
|
+
return "PM_CALL_NODE";
|
|
2387
|
+
case PM_CALL_OPERATOR_WRITE_NODE:
|
|
2388
|
+
return "PM_CALL_OPERATOR_WRITE_NODE";
|
|
2389
|
+
case PM_CALL_OR_WRITE_NODE:
|
|
2390
|
+
return "PM_CALL_OR_WRITE_NODE";
|
|
2391
|
+
case PM_CAPTURE_PATTERN_NODE:
|
|
2392
|
+
return "PM_CAPTURE_PATTERN_NODE";
|
|
2393
|
+
case PM_CASE_NODE:
|
|
2394
|
+
return "PM_CASE_NODE";
|
|
2395
|
+
case PM_CLASS_NODE:
|
|
2396
|
+
return "PM_CLASS_NODE";
|
|
2397
|
+
case PM_CLASS_VARIABLE_AND_WRITE_NODE:
|
|
2398
|
+
return "PM_CLASS_VARIABLE_AND_WRITE_NODE";
|
|
2399
|
+
case PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE:
|
|
2400
|
+
return "PM_CLASS_VARIABLE_OPERATOR_WRITE_NODE";
|
|
2401
|
+
case PM_CLASS_VARIABLE_OR_WRITE_NODE:
|
|
2402
|
+
return "PM_CLASS_VARIABLE_OR_WRITE_NODE";
|
|
2403
|
+
case PM_CLASS_VARIABLE_READ_NODE:
|
|
2404
|
+
return "PM_CLASS_VARIABLE_READ_NODE";
|
|
2405
|
+
case PM_CLASS_VARIABLE_TARGET_NODE:
|
|
2406
|
+
return "PM_CLASS_VARIABLE_TARGET_NODE";
|
|
2407
|
+
case PM_CLASS_VARIABLE_WRITE_NODE:
|
|
2408
|
+
return "PM_CLASS_VARIABLE_WRITE_NODE";
|
|
2409
|
+
case PM_CONSTANT_AND_WRITE_NODE:
|
|
2410
|
+
return "PM_CONSTANT_AND_WRITE_NODE";
|
|
2411
|
+
case PM_CONSTANT_OPERATOR_WRITE_NODE:
|
|
2412
|
+
return "PM_CONSTANT_OPERATOR_WRITE_NODE";
|
|
2413
|
+
case PM_CONSTANT_OR_WRITE_NODE:
|
|
2414
|
+
return "PM_CONSTANT_OR_WRITE_NODE";
|
|
2415
|
+
case PM_CONSTANT_PATH_AND_WRITE_NODE:
|
|
2416
|
+
return "PM_CONSTANT_PATH_AND_WRITE_NODE";
|
|
2417
|
+
case PM_CONSTANT_PATH_NODE:
|
|
2418
|
+
return "PM_CONSTANT_PATH_NODE";
|
|
2419
|
+
case PM_CONSTANT_PATH_OPERATOR_WRITE_NODE:
|
|
2420
|
+
return "PM_CONSTANT_PATH_OPERATOR_WRITE_NODE";
|
|
2421
|
+
case PM_CONSTANT_PATH_OR_WRITE_NODE:
|
|
2422
|
+
return "PM_CONSTANT_PATH_OR_WRITE_NODE";
|
|
2423
|
+
case PM_CONSTANT_PATH_TARGET_NODE:
|
|
2424
|
+
return "PM_CONSTANT_PATH_TARGET_NODE";
|
|
2425
|
+
case PM_CONSTANT_PATH_WRITE_NODE:
|
|
2426
|
+
return "PM_CONSTANT_PATH_WRITE_NODE";
|
|
2427
|
+
case PM_CONSTANT_READ_NODE:
|
|
2428
|
+
return "PM_CONSTANT_READ_NODE";
|
|
2429
|
+
case PM_CONSTANT_TARGET_NODE:
|
|
2430
|
+
return "PM_CONSTANT_TARGET_NODE";
|
|
2431
|
+
case PM_CONSTANT_WRITE_NODE:
|
|
2432
|
+
return "PM_CONSTANT_WRITE_NODE";
|
|
2433
|
+
case PM_DEF_NODE:
|
|
2434
|
+
return "PM_DEF_NODE";
|
|
2435
|
+
case PM_DEFINED_NODE:
|
|
2436
|
+
return "PM_DEFINED_NODE";
|
|
2437
|
+
case PM_ELSE_NODE:
|
|
2438
|
+
return "PM_ELSE_NODE";
|
|
2439
|
+
case PM_EMBEDDED_STATEMENTS_NODE:
|
|
2440
|
+
return "PM_EMBEDDED_STATEMENTS_NODE";
|
|
2441
|
+
case PM_EMBEDDED_VARIABLE_NODE:
|
|
2442
|
+
return "PM_EMBEDDED_VARIABLE_NODE";
|
|
2443
|
+
case PM_ENSURE_NODE:
|
|
2444
|
+
return "PM_ENSURE_NODE";
|
|
2445
|
+
case PM_FALSE_NODE:
|
|
2446
|
+
return "PM_FALSE_NODE";
|
|
2447
|
+
case PM_FIND_PATTERN_NODE:
|
|
2448
|
+
return "PM_FIND_PATTERN_NODE";
|
|
2449
|
+
case PM_FLIP_FLOP_NODE:
|
|
2450
|
+
return "PM_FLIP_FLOP_NODE";
|
|
2451
|
+
case PM_FLOAT_NODE:
|
|
2452
|
+
return "PM_FLOAT_NODE";
|
|
2453
|
+
case PM_FOR_NODE:
|
|
2454
|
+
return "PM_FOR_NODE";
|
|
2455
|
+
case PM_FORWARDING_ARGUMENTS_NODE:
|
|
2456
|
+
return "PM_FORWARDING_ARGUMENTS_NODE";
|
|
2457
|
+
case PM_FORWARDING_PARAMETER_NODE:
|
|
2458
|
+
return "PM_FORWARDING_PARAMETER_NODE";
|
|
2459
|
+
case PM_FORWARDING_SUPER_NODE:
|
|
2460
|
+
return "PM_FORWARDING_SUPER_NODE";
|
|
2461
|
+
case PM_GLOBAL_VARIABLE_AND_WRITE_NODE:
|
|
2462
|
+
return "PM_GLOBAL_VARIABLE_AND_WRITE_NODE";
|
|
2463
|
+
case PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE:
|
|
2464
|
+
return "PM_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE";
|
|
2465
|
+
case PM_GLOBAL_VARIABLE_OR_WRITE_NODE:
|
|
2466
|
+
return "PM_GLOBAL_VARIABLE_OR_WRITE_NODE";
|
|
2467
|
+
case PM_GLOBAL_VARIABLE_READ_NODE:
|
|
2468
|
+
return "PM_GLOBAL_VARIABLE_READ_NODE";
|
|
2469
|
+
case PM_GLOBAL_VARIABLE_TARGET_NODE:
|
|
2470
|
+
return "PM_GLOBAL_VARIABLE_TARGET_NODE";
|
|
2471
|
+
case PM_GLOBAL_VARIABLE_WRITE_NODE:
|
|
2472
|
+
return "PM_GLOBAL_VARIABLE_WRITE_NODE";
|
|
2473
|
+
case PM_HASH_NODE:
|
|
2474
|
+
return "PM_HASH_NODE";
|
|
2475
|
+
case PM_HASH_PATTERN_NODE:
|
|
2476
|
+
return "PM_HASH_PATTERN_NODE";
|
|
2477
|
+
case PM_IF_NODE:
|
|
2478
|
+
return "PM_IF_NODE";
|
|
2479
|
+
case PM_IMAGINARY_NODE:
|
|
2480
|
+
return "PM_IMAGINARY_NODE";
|
|
2481
|
+
case PM_IMPLICIT_NODE:
|
|
2482
|
+
return "PM_IMPLICIT_NODE";
|
|
2483
|
+
case PM_IN_NODE:
|
|
2484
|
+
return "PM_IN_NODE";
|
|
2485
|
+
case PM_INSTANCE_VARIABLE_AND_WRITE_NODE:
|
|
2486
|
+
return "PM_INSTANCE_VARIABLE_AND_WRITE_NODE";
|
|
2487
|
+
case PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE:
|
|
2488
|
+
return "PM_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE";
|
|
2489
|
+
case PM_INSTANCE_VARIABLE_OR_WRITE_NODE:
|
|
2490
|
+
return "PM_INSTANCE_VARIABLE_OR_WRITE_NODE";
|
|
2491
|
+
case PM_INSTANCE_VARIABLE_READ_NODE:
|
|
2492
|
+
return "PM_INSTANCE_VARIABLE_READ_NODE";
|
|
2493
|
+
case PM_INSTANCE_VARIABLE_TARGET_NODE:
|
|
2494
|
+
return "PM_INSTANCE_VARIABLE_TARGET_NODE";
|
|
2495
|
+
case PM_INSTANCE_VARIABLE_WRITE_NODE:
|
|
2496
|
+
return "PM_INSTANCE_VARIABLE_WRITE_NODE";
|
|
2497
|
+
case PM_INTEGER_NODE:
|
|
2498
|
+
return "PM_INTEGER_NODE";
|
|
2499
|
+
case PM_INTERPOLATED_MATCH_LAST_LINE_NODE:
|
|
2500
|
+
return "PM_INTERPOLATED_MATCH_LAST_LINE_NODE";
|
|
2501
|
+
case PM_INTERPOLATED_REGULAR_EXPRESSION_NODE:
|
|
2502
|
+
return "PM_INTERPOLATED_REGULAR_EXPRESSION_NODE";
|
|
2503
|
+
case PM_INTERPOLATED_STRING_NODE:
|
|
2504
|
+
return "PM_INTERPOLATED_STRING_NODE";
|
|
2505
|
+
case PM_INTERPOLATED_SYMBOL_NODE:
|
|
2506
|
+
return "PM_INTERPOLATED_SYMBOL_NODE";
|
|
2507
|
+
case PM_INTERPOLATED_X_STRING_NODE:
|
|
2508
|
+
return "PM_INTERPOLATED_X_STRING_NODE";
|
|
2509
|
+
case PM_KEYWORD_HASH_NODE:
|
|
2510
|
+
return "PM_KEYWORD_HASH_NODE";
|
|
2511
|
+
case PM_KEYWORD_PARAMETER_NODE:
|
|
2512
|
+
return "PM_KEYWORD_PARAMETER_NODE";
|
|
2513
|
+
case PM_KEYWORD_REST_PARAMETER_NODE:
|
|
2514
|
+
return "PM_KEYWORD_REST_PARAMETER_NODE";
|
|
2515
|
+
case PM_LAMBDA_NODE:
|
|
2516
|
+
return "PM_LAMBDA_NODE";
|
|
2517
|
+
case PM_LOCAL_VARIABLE_AND_WRITE_NODE:
|
|
2518
|
+
return "PM_LOCAL_VARIABLE_AND_WRITE_NODE";
|
|
2519
|
+
case PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE:
|
|
2520
|
+
return "PM_LOCAL_VARIABLE_OPERATOR_WRITE_NODE";
|
|
2521
|
+
case PM_LOCAL_VARIABLE_OR_WRITE_NODE:
|
|
2522
|
+
return "PM_LOCAL_VARIABLE_OR_WRITE_NODE";
|
|
2523
|
+
case PM_LOCAL_VARIABLE_READ_NODE:
|
|
2524
|
+
return "PM_LOCAL_VARIABLE_READ_NODE";
|
|
2525
|
+
case PM_LOCAL_VARIABLE_TARGET_NODE:
|
|
2526
|
+
return "PM_LOCAL_VARIABLE_TARGET_NODE";
|
|
2527
|
+
case PM_LOCAL_VARIABLE_WRITE_NODE:
|
|
2528
|
+
return "PM_LOCAL_VARIABLE_WRITE_NODE";
|
|
2529
|
+
case PM_MATCH_LAST_LINE_NODE:
|
|
2530
|
+
return "PM_MATCH_LAST_LINE_NODE";
|
|
2531
|
+
case PM_MATCH_PREDICATE_NODE:
|
|
2532
|
+
return "PM_MATCH_PREDICATE_NODE";
|
|
2533
|
+
case PM_MATCH_REQUIRED_NODE:
|
|
2534
|
+
return "PM_MATCH_REQUIRED_NODE";
|
|
2535
|
+
case PM_MATCH_WRITE_NODE:
|
|
2536
|
+
return "PM_MATCH_WRITE_NODE";
|
|
2537
|
+
case PM_MISSING_NODE:
|
|
2538
|
+
return "PM_MISSING_NODE";
|
|
2539
|
+
case PM_MODULE_NODE:
|
|
2540
|
+
return "PM_MODULE_NODE";
|
|
2541
|
+
case PM_MULTI_TARGET_NODE:
|
|
2542
|
+
return "PM_MULTI_TARGET_NODE";
|
|
2543
|
+
case PM_MULTI_WRITE_NODE:
|
|
2544
|
+
return "PM_MULTI_WRITE_NODE";
|
|
2545
|
+
case PM_NEXT_NODE:
|
|
2546
|
+
return "PM_NEXT_NODE";
|
|
2547
|
+
case PM_NIL_NODE:
|
|
2548
|
+
return "PM_NIL_NODE";
|
|
2549
|
+
case PM_NO_KEYWORDS_PARAMETER_NODE:
|
|
2550
|
+
return "PM_NO_KEYWORDS_PARAMETER_NODE";
|
|
2551
|
+
case PM_NUMBERED_REFERENCE_READ_NODE:
|
|
2552
|
+
return "PM_NUMBERED_REFERENCE_READ_NODE";
|
|
2553
|
+
case PM_OPTIONAL_PARAMETER_NODE:
|
|
2554
|
+
return "PM_OPTIONAL_PARAMETER_NODE";
|
|
2555
|
+
case PM_OR_NODE:
|
|
2556
|
+
return "PM_OR_NODE";
|
|
2557
|
+
case PM_PARAMETERS_NODE:
|
|
2558
|
+
return "PM_PARAMETERS_NODE";
|
|
2559
|
+
case PM_PARENTHESES_NODE:
|
|
2560
|
+
return "PM_PARENTHESES_NODE";
|
|
2561
|
+
case PM_PINNED_EXPRESSION_NODE:
|
|
2562
|
+
return "PM_PINNED_EXPRESSION_NODE";
|
|
2563
|
+
case PM_PINNED_VARIABLE_NODE:
|
|
2564
|
+
return "PM_PINNED_VARIABLE_NODE";
|
|
2565
|
+
case PM_POST_EXECUTION_NODE:
|
|
2566
|
+
return "PM_POST_EXECUTION_NODE";
|
|
2567
|
+
case PM_PRE_EXECUTION_NODE:
|
|
2568
|
+
return "PM_PRE_EXECUTION_NODE";
|
|
2569
|
+
case PM_PROGRAM_NODE:
|
|
2570
|
+
return "PM_PROGRAM_NODE";
|
|
2571
|
+
case PM_RANGE_NODE:
|
|
2572
|
+
return "PM_RANGE_NODE";
|
|
2573
|
+
case PM_RATIONAL_NODE:
|
|
2574
|
+
return "PM_RATIONAL_NODE";
|
|
2575
|
+
case PM_REDO_NODE:
|
|
2576
|
+
return "PM_REDO_NODE";
|
|
2577
|
+
case PM_REGULAR_EXPRESSION_NODE:
|
|
2578
|
+
return "PM_REGULAR_EXPRESSION_NODE";
|
|
2579
|
+
case PM_REQUIRED_DESTRUCTURED_PARAMETER_NODE:
|
|
2580
|
+
return "PM_REQUIRED_DESTRUCTURED_PARAMETER_NODE";
|
|
2581
|
+
case PM_REQUIRED_PARAMETER_NODE:
|
|
2582
|
+
return "PM_REQUIRED_PARAMETER_NODE";
|
|
2583
|
+
case PM_RESCUE_MODIFIER_NODE:
|
|
2584
|
+
return "PM_RESCUE_MODIFIER_NODE";
|
|
2585
|
+
case PM_RESCUE_NODE:
|
|
2586
|
+
return "PM_RESCUE_NODE";
|
|
2587
|
+
case PM_REST_PARAMETER_NODE:
|
|
2588
|
+
return "PM_REST_PARAMETER_NODE";
|
|
2589
|
+
case PM_RETRY_NODE:
|
|
2590
|
+
return "PM_RETRY_NODE";
|
|
2591
|
+
case PM_RETURN_NODE:
|
|
2592
|
+
return "PM_RETURN_NODE";
|
|
2593
|
+
case PM_SELF_NODE:
|
|
2594
|
+
return "PM_SELF_NODE";
|
|
2595
|
+
case PM_SINGLETON_CLASS_NODE:
|
|
2596
|
+
return "PM_SINGLETON_CLASS_NODE";
|
|
2597
|
+
case PM_SOURCE_ENCODING_NODE:
|
|
2598
|
+
return "PM_SOURCE_ENCODING_NODE";
|
|
2599
|
+
case PM_SOURCE_FILE_NODE:
|
|
2600
|
+
return "PM_SOURCE_FILE_NODE";
|
|
2601
|
+
case PM_SOURCE_LINE_NODE:
|
|
2602
|
+
return "PM_SOURCE_LINE_NODE";
|
|
2603
|
+
case PM_SPLAT_NODE:
|
|
2604
|
+
return "PM_SPLAT_NODE";
|
|
2605
|
+
case PM_STATEMENTS_NODE:
|
|
2606
|
+
return "PM_STATEMENTS_NODE";
|
|
2607
|
+
case PM_STRING_CONCAT_NODE:
|
|
2608
|
+
return "PM_STRING_CONCAT_NODE";
|
|
2609
|
+
case PM_STRING_NODE:
|
|
2610
|
+
return "PM_STRING_NODE";
|
|
2611
|
+
case PM_SUPER_NODE:
|
|
2612
|
+
return "PM_SUPER_NODE";
|
|
2613
|
+
case PM_SYMBOL_NODE:
|
|
2614
|
+
return "PM_SYMBOL_NODE";
|
|
2615
|
+
case PM_TRUE_NODE:
|
|
2616
|
+
return "PM_TRUE_NODE";
|
|
2617
|
+
case PM_UNDEF_NODE:
|
|
2618
|
+
return "PM_UNDEF_NODE";
|
|
2619
|
+
case PM_UNLESS_NODE:
|
|
2620
|
+
return "PM_UNLESS_NODE";
|
|
2621
|
+
case PM_UNTIL_NODE:
|
|
2622
|
+
return "PM_UNTIL_NODE";
|
|
2623
|
+
case PM_WHEN_NODE:
|
|
2624
|
+
return "PM_WHEN_NODE";
|
|
2625
|
+
case PM_WHILE_NODE:
|
|
2626
|
+
return "PM_WHILE_NODE";
|
|
2627
|
+
case PM_X_STRING_NODE:
|
|
2628
|
+
return "PM_X_STRING_NODE";
|
|
2629
|
+
case PM_YIELD_NODE:
|
|
2630
|
+
return "PM_YIELD_NODE";
|
|
2571
2631
|
}
|
|
2572
2632
|
return "";
|
|
2573
2633
|
}
|