prism 0.13.0 → 0.15.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 +37 -1
- data/README.md +4 -1
- data/config.yml +96 -35
- data/docs/fuzzing.md +5 -10
- data/docs/prism.png +0 -0
- data/docs/serialization.md +10 -0
- data/ext/prism/api_node.c +239 -86
- data/ext/prism/extension.c +35 -48
- data/ext/prism/extension.h +1 -1
- data/include/prism/ast.h +170 -118
- data/include/prism/diagnostic.h +1 -0
- data/include/prism/node.h +8 -0
- data/include/prism/parser.h +26 -0
- data/include/prism/util/pm_buffer.h +3 -0
- data/include/prism/util/pm_constant_pool.h +21 -2
- data/include/prism/util/pm_string.h +2 -1
- data/include/prism/version.h +2 -2
- data/include/prism.h +1 -2
- data/lib/prism/compiler.rb +150 -141
- data/lib/prism/debug.rb +30 -26
- data/lib/prism/dispatcher.rb +42 -0
- data/lib/prism/dsl.rb +23 -8
- data/lib/prism/ffi.rb +4 -4
- data/lib/prism/lex_compat.rb +42 -8
- data/lib/prism/mutation_compiler.rb +18 -3
- data/lib/prism/node.rb +2061 -191
- data/lib/prism/node_ext.rb +44 -0
- data/lib/prism/parse_result.rb +32 -5
- data/lib/prism/pattern.rb +1 -1
- data/lib/prism/serialize.rb +95 -87
- data/lib/prism/visitor.rb +9 -0
- data/prism.gemspec +2 -3
- data/src/diagnostic.c +2 -1
- data/src/node.c +99 -32
- data/src/prettyprint.c +137 -80
- data/src/prism.c +1960 -843
- data/src/serialize.c +140 -79
- data/src/util/pm_buffer.c +9 -7
- data/src/util/pm_constant_pool.c +25 -11
- metadata +3 -4
- data/include/prism/unescape.h +0 -48
- data/src/unescape.c +0 -637
@@ -39,9 +39,21 @@ size_t pm_constant_id_list_memsize(pm_constant_id_list_t *list);
|
|
39
39
|
// Free the memory associated with a list of constant ids.
|
40
40
|
void pm_constant_id_list_free(pm_constant_id_list_t *list);
|
41
41
|
|
42
|
+
// Constant pool buckets can have a couple of different types.
|
43
|
+
typedef unsigned int pm_constant_pool_bucket_type_t;
|
44
|
+
|
45
|
+
// By default, each constant is a slice of the source.
|
46
|
+
static const pm_constant_pool_bucket_type_t PM_CONSTANT_POOL_BUCKET_DEFAULT = 0;
|
47
|
+
|
48
|
+
// An owned constant is one for which memory has been allocated.
|
49
|
+
static const pm_constant_pool_bucket_type_t PM_CONSTANT_POOL_BUCKET_OWNED = 1;
|
50
|
+
|
51
|
+
// A constant constant is known at compile time.
|
52
|
+
static const pm_constant_pool_bucket_type_t PM_CONSTANT_POOL_BUCKET_CONSTANT = 2;
|
53
|
+
|
42
54
|
typedef struct {
|
43
|
-
unsigned int id:
|
44
|
-
|
55
|
+
unsigned int id: 30;
|
56
|
+
pm_constant_pool_bucket_type_t type: 2;
|
45
57
|
uint32_t hash;
|
46
58
|
} pm_constant_pool_bucket_t;
|
47
59
|
|
@@ -63,6 +75,9 @@ typedef struct {
|
|
63
75
|
// Initialize a new constant pool with a given capacity.
|
64
76
|
bool pm_constant_pool_init(pm_constant_pool_t *pool, uint32_t capacity);
|
65
77
|
|
78
|
+
// Return a pointer to the constant indicated by the given constant id.
|
79
|
+
pm_constant_t * pm_constant_pool_id_to_constant(pm_constant_pool_t *pool, pm_constant_id_t constant_id);
|
80
|
+
|
66
81
|
// Insert a constant into a constant pool that is a slice of a source string.
|
67
82
|
// Returns the id of the constant, or 0 if any potential calls to resize fail.
|
68
83
|
pm_constant_id_t pm_constant_pool_insert_shared(pm_constant_pool_t *pool, const uint8_t *start, size_t length);
|
@@ -72,6 +87,10 @@ pm_constant_id_t pm_constant_pool_insert_shared(pm_constant_pool_t *pool, const
|
|
72
87
|
// resize fail.
|
73
88
|
pm_constant_id_t pm_constant_pool_insert_owned(pm_constant_pool_t *pool, const uint8_t *start, size_t length);
|
74
89
|
|
90
|
+
// Insert a constant into a constant pool from memory that is constant. Returns
|
91
|
+
// the id of the constant, or 0 if any potential calls to resize fail.
|
92
|
+
pm_constant_id_t pm_constant_pool_insert_constant(pm_constant_pool_t *pool, const uint8_t *start, size_t length);
|
93
|
+
|
75
94
|
// Free the memory associated with a constant pool.
|
76
95
|
void pm_constant_pool_free(pm_constant_pool_t *pool);
|
77
96
|
|
@@ -11,9 +11,10 @@
|
|
11
11
|
|
12
12
|
// This struct represents a string value.
|
13
13
|
typedef struct {
|
14
|
-
enum { PM_STRING_SHARED, PM_STRING_OWNED, PM_STRING_CONSTANT, PM_STRING_MAPPED } type;
|
15
14
|
const uint8_t *source;
|
16
15
|
size_t length;
|
16
|
+
// This field is not the first one, because otherwise things like .pm_string_t_field = 123/pm_constant_id_t does not warn or error
|
17
|
+
enum { PM_STRING_SHARED, PM_STRING_OWNED, PM_STRING_CONSTANT, PM_STRING_MAPPED } type;
|
17
18
|
} pm_string_t;
|
18
19
|
|
19
20
|
#define PM_EMPTY_STRING ((pm_string_t) { .type = PM_STRING_CONSTANT, .source = NULL, .length = 0 })
|
data/include/prism/version.h
CHANGED
data/include/prism.h
CHANGED
@@ -8,7 +8,6 @@
|
|
8
8
|
#include "prism/pack.h"
|
9
9
|
#include "prism/parser.h"
|
10
10
|
#include "prism/regexp.h"
|
11
|
-
#include "prism/unescape.h"
|
12
11
|
#include "prism/util/pm_buffer.h"
|
13
12
|
#include "prism/util/pm_char.h"
|
14
13
|
#include "prism/util/pm_memchr.h"
|
@@ -35,7 +34,7 @@ void pm_print_node(pm_parser_t *parser, pm_node_t *node);
|
|
35
34
|
void pm_parser_metadata(pm_parser_t *parser, const char *metadata);
|
36
35
|
|
37
36
|
// Generate a scope node from the given node.
|
38
|
-
void pm_scope_node_init(pm_node_t *node, pm_scope_node_t *
|
37
|
+
void pm_scope_node_init(const pm_node_t *node, pm_scope_node_t *scope, pm_scope_node_t *previous, pm_parser_t *parser);
|
39
38
|
|
40
39
|
// The prism version and the serialization format.
|
41
40
|
PRISM_EXPORTED_FUNCTION const char * pm_version(void);
|
data/lib/prism/compiler.rb
CHANGED
@@ -39,426 +39,435 @@ module Prism
|
|
39
39
|
node.compact_child_nodes.map { |node| node.accept(self) }
|
40
40
|
end
|
41
41
|
|
42
|
-
|
42
|
+
# Compile a AliasGlobalVariableNode node
|
43
43
|
alias visit_alias_global_variable_node visit_child_nodes
|
44
|
-
|
44
|
+
|
45
45
|
# Compile a AliasMethodNode node
|
46
46
|
alias visit_alias_method_node visit_child_nodes
|
47
|
-
|
47
|
+
|
48
48
|
# Compile a AlternationPatternNode node
|
49
49
|
alias visit_alternation_pattern_node visit_child_nodes
|
50
|
-
|
50
|
+
|
51
51
|
# Compile a AndNode node
|
52
52
|
alias visit_and_node visit_child_nodes
|
53
|
-
|
53
|
+
|
54
54
|
# Compile a ArgumentsNode node
|
55
55
|
alias visit_arguments_node visit_child_nodes
|
56
|
-
|
56
|
+
|
57
57
|
# Compile a ArrayNode node
|
58
58
|
alias visit_array_node visit_child_nodes
|
59
|
-
|
59
|
+
|
60
60
|
# Compile a ArrayPatternNode node
|
61
61
|
alias visit_array_pattern_node visit_child_nodes
|
62
|
-
|
62
|
+
|
63
63
|
# Compile a AssocNode node
|
64
64
|
alias visit_assoc_node visit_child_nodes
|
65
|
-
|
65
|
+
|
66
66
|
# Compile a AssocSplatNode node
|
67
67
|
alias visit_assoc_splat_node visit_child_nodes
|
68
|
-
|
68
|
+
|
69
69
|
# Compile a BackReferenceReadNode node
|
70
70
|
alias visit_back_reference_read_node visit_child_nodes
|
71
|
-
|
71
|
+
|
72
72
|
# Compile a BeginNode node
|
73
73
|
alias visit_begin_node visit_child_nodes
|
74
|
-
|
74
|
+
|
75
75
|
# Compile a BlockArgumentNode node
|
76
76
|
alias visit_block_argument_node visit_child_nodes
|
77
|
-
|
77
|
+
|
78
78
|
# Compile a BlockLocalVariableNode node
|
79
79
|
alias visit_block_local_variable_node visit_child_nodes
|
80
|
-
|
80
|
+
|
81
81
|
# Compile a BlockNode node
|
82
82
|
alias visit_block_node visit_child_nodes
|
83
|
-
|
83
|
+
|
84
84
|
# Compile a BlockParameterNode node
|
85
85
|
alias visit_block_parameter_node visit_child_nodes
|
86
|
-
|
86
|
+
|
87
87
|
# Compile a BlockParametersNode node
|
88
88
|
alias visit_block_parameters_node visit_child_nodes
|
89
|
-
|
89
|
+
|
90
90
|
# Compile a BreakNode node
|
91
91
|
alias visit_break_node visit_child_nodes
|
92
|
-
|
92
|
+
|
93
93
|
# Compile a CallAndWriteNode node
|
94
94
|
alias visit_call_and_write_node visit_child_nodes
|
95
|
-
|
95
|
+
|
96
96
|
# Compile a CallNode node
|
97
97
|
alias visit_call_node visit_child_nodes
|
98
|
-
|
98
|
+
|
99
99
|
# Compile a CallOperatorWriteNode node
|
100
100
|
alias visit_call_operator_write_node visit_child_nodes
|
101
|
-
|
101
|
+
|
102
102
|
# Compile a CallOrWriteNode node
|
103
103
|
alias visit_call_or_write_node visit_child_nodes
|
104
|
-
|
104
|
+
|
105
105
|
# Compile a CapturePatternNode node
|
106
106
|
alias visit_capture_pattern_node visit_child_nodes
|
107
|
-
|
107
|
+
|
108
108
|
# Compile a CaseNode node
|
109
109
|
alias visit_case_node visit_child_nodes
|
110
|
-
|
110
|
+
|
111
111
|
# Compile a ClassNode node
|
112
112
|
alias visit_class_node visit_child_nodes
|
113
|
-
|
113
|
+
|
114
114
|
# Compile a ClassVariableAndWriteNode node
|
115
115
|
alias visit_class_variable_and_write_node visit_child_nodes
|
116
|
-
|
116
|
+
|
117
117
|
# Compile a ClassVariableOperatorWriteNode node
|
118
118
|
alias visit_class_variable_operator_write_node visit_child_nodes
|
119
|
-
|
119
|
+
|
120
120
|
# Compile a ClassVariableOrWriteNode node
|
121
121
|
alias visit_class_variable_or_write_node visit_child_nodes
|
122
|
-
|
122
|
+
|
123
123
|
# Compile a ClassVariableReadNode node
|
124
124
|
alias visit_class_variable_read_node visit_child_nodes
|
125
|
-
|
125
|
+
|
126
126
|
# Compile a ClassVariableTargetNode node
|
127
127
|
alias visit_class_variable_target_node visit_child_nodes
|
128
|
-
|
128
|
+
|
129
129
|
# Compile a ClassVariableWriteNode node
|
130
130
|
alias visit_class_variable_write_node visit_child_nodes
|
131
|
-
|
131
|
+
|
132
132
|
# Compile a ConstantAndWriteNode node
|
133
133
|
alias visit_constant_and_write_node visit_child_nodes
|
134
|
-
|
134
|
+
|
135
135
|
# Compile a ConstantOperatorWriteNode node
|
136
136
|
alias visit_constant_operator_write_node visit_child_nodes
|
137
|
-
|
137
|
+
|
138
138
|
# Compile a ConstantOrWriteNode node
|
139
139
|
alias visit_constant_or_write_node visit_child_nodes
|
140
|
-
|
140
|
+
|
141
141
|
# Compile a ConstantPathAndWriteNode node
|
142
142
|
alias visit_constant_path_and_write_node visit_child_nodes
|
143
|
-
|
143
|
+
|
144
144
|
# Compile a ConstantPathNode node
|
145
145
|
alias visit_constant_path_node visit_child_nodes
|
146
|
-
|
146
|
+
|
147
147
|
# Compile a ConstantPathOperatorWriteNode node
|
148
148
|
alias visit_constant_path_operator_write_node visit_child_nodes
|
149
|
-
|
149
|
+
|
150
150
|
# Compile a ConstantPathOrWriteNode node
|
151
151
|
alias visit_constant_path_or_write_node visit_child_nodes
|
152
|
-
|
152
|
+
|
153
153
|
# Compile a ConstantPathTargetNode node
|
154
154
|
alias visit_constant_path_target_node visit_child_nodes
|
155
|
-
|
155
|
+
|
156
156
|
# Compile a ConstantPathWriteNode node
|
157
157
|
alias visit_constant_path_write_node visit_child_nodes
|
158
|
-
|
158
|
+
|
159
159
|
# Compile a ConstantReadNode node
|
160
160
|
alias visit_constant_read_node visit_child_nodes
|
161
|
-
|
161
|
+
|
162
162
|
# Compile a ConstantTargetNode node
|
163
163
|
alias visit_constant_target_node visit_child_nodes
|
164
|
-
|
164
|
+
|
165
165
|
# Compile a ConstantWriteNode node
|
166
166
|
alias visit_constant_write_node visit_child_nodes
|
167
|
-
|
167
|
+
|
168
168
|
# Compile a DefNode node
|
169
169
|
alias visit_def_node visit_child_nodes
|
170
|
-
|
170
|
+
|
171
171
|
# Compile a DefinedNode node
|
172
172
|
alias visit_defined_node visit_child_nodes
|
173
|
-
|
173
|
+
|
174
174
|
# Compile a ElseNode node
|
175
175
|
alias visit_else_node visit_child_nodes
|
176
|
-
|
176
|
+
|
177
177
|
# Compile a EmbeddedStatementsNode node
|
178
178
|
alias visit_embedded_statements_node visit_child_nodes
|
179
|
-
|
179
|
+
|
180
180
|
# Compile a EmbeddedVariableNode node
|
181
181
|
alias visit_embedded_variable_node visit_child_nodes
|
182
|
-
|
182
|
+
|
183
183
|
# Compile a EnsureNode node
|
184
184
|
alias visit_ensure_node visit_child_nodes
|
185
|
-
|
185
|
+
|
186
186
|
# Compile a FalseNode node
|
187
187
|
alias visit_false_node visit_child_nodes
|
188
|
-
|
188
|
+
|
189
189
|
# Compile a FindPatternNode node
|
190
190
|
alias visit_find_pattern_node visit_child_nodes
|
191
|
-
|
191
|
+
|
192
192
|
# Compile a FlipFlopNode node
|
193
193
|
alias visit_flip_flop_node visit_child_nodes
|
194
|
-
|
194
|
+
|
195
195
|
# Compile a FloatNode node
|
196
196
|
alias visit_float_node visit_child_nodes
|
197
|
-
|
197
|
+
|
198
198
|
# Compile a ForNode node
|
199
199
|
alias visit_for_node visit_child_nodes
|
200
|
-
|
200
|
+
|
201
201
|
# Compile a ForwardingArgumentsNode node
|
202
202
|
alias visit_forwarding_arguments_node visit_child_nodes
|
203
|
-
|
203
|
+
|
204
204
|
# Compile a ForwardingParameterNode node
|
205
205
|
alias visit_forwarding_parameter_node visit_child_nodes
|
206
|
-
|
206
|
+
|
207
207
|
# Compile a ForwardingSuperNode node
|
208
208
|
alias visit_forwarding_super_node visit_child_nodes
|
209
|
-
|
209
|
+
|
210
210
|
# Compile a GlobalVariableAndWriteNode node
|
211
211
|
alias visit_global_variable_and_write_node visit_child_nodes
|
212
|
-
|
212
|
+
|
213
213
|
# Compile a GlobalVariableOperatorWriteNode node
|
214
214
|
alias visit_global_variable_operator_write_node visit_child_nodes
|
215
|
-
|
215
|
+
|
216
216
|
# Compile a GlobalVariableOrWriteNode node
|
217
217
|
alias visit_global_variable_or_write_node visit_child_nodes
|
218
|
-
|
218
|
+
|
219
219
|
# Compile a GlobalVariableReadNode node
|
220
220
|
alias visit_global_variable_read_node visit_child_nodes
|
221
|
-
|
221
|
+
|
222
222
|
# Compile a GlobalVariableTargetNode node
|
223
223
|
alias visit_global_variable_target_node visit_child_nodes
|
224
|
-
|
224
|
+
|
225
225
|
# Compile a GlobalVariableWriteNode node
|
226
226
|
alias visit_global_variable_write_node visit_child_nodes
|
227
|
-
|
227
|
+
|
228
228
|
# Compile a HashNode node
|
229
229
|
alias visit_hash_node visit_child_nodes
|
230
|
-
|
230
|
+
|
231
231
|
# Compile a HashPatternNode node
|
232
232
|
alias visit_hash_pattern_node visit_child_nodes
|
233
|
-
|
233
|
+
|
234
234
|
# Compile a IfNode node
|
235
235
|
alias visit_if_node visit_child_nodes
|
236
|
-
|
236
|
+
|
237
237
|
# Compile a ImaginaryNode node
|
238
238
|
alias visit_imaginary_node visit_child_nodes
|
239
|
-
|
239
|
+
|
240
240
|
# Compile a ImplicitNode node
|
241
241
|
alias visit_implicit_node visit_child_nodes
|
242
|
-
|
242
|
+
|
243
243
|
# Compile a InNode node
|
244
244
|
alias visit_in_node visit_child_nodes
|
245
|
-
|
245
|
+
|
246
|
+
# Compile a IndexAndWriteNode node
|
247
|
+
alias visit_index_and_write_node visit_child_nodes
|
248
|
+
|
249
|
+
# Compile a IndexOperatorWriteNode node
|
250
|
+
alias visit_index_operator_write_node visit_child_nodes
|
251
|
+
|
252
|
+
# Compile a IndexOrWriteNode node
|
253
|
+
alias visit_index_or_write_node visit_child_nodes
|
254
|
+
|
246
255
|
# Compile a InstanceVariableAndWriteNode node
|
247
256
|
alias visit_instance_variable_and_write_node visit_child_nodes
|
248
|
-
|
257
|
+
|
249
258
|
# Compile a InstanceVariableOperatorWriteNode node
|
250
259
|
alias visit_instance_variable_operator_write_node visit_child_nodes
|
251
|
-
|
260
|
+
|
252
261
|
# Compile a InstanceVariableOrWriteNode node
|
253
262
|
alias visit_instance_variable_or_write_node visit_child_nodes
|
254
|
-
|
263
|
+
|
255
264
|
# Compile a InstanceVariableReadNode node
|
256
265
|
alias visit_instance_variable_read_node visit_child_nodes
|
257
|
-
|
266
|
+
|
258
267
|
# Compile a InstanceVariableTargetNode node
|
259
268
|
alias visit_instance_variable_target_node visit_child_nodes
|
260
|
-
|
269
|
+
|
261
270
|
# Compile a InstanceVariableWriteNode node
|
262
271
|
alias visit_instance_variable_write_node visit_child_nodes
|
263
|
-
|
272
|
+
|
264
273
|
# Compile a IntegerNode node
|
265
274
|
alias visit_integer_node visit_child_nodes
|
266
|
-
|
275
|
+
|
267
276
|
# Compile a InterpolatedMatchLastLineNode node
|
268
277
|
alias visit_interpolated_match_last_line_node visit_child_nodes
|
269
|
-
|
278
|
+
|
270
279
|
# Compile a InterpolatedRegularExpressionNode node
|
271
280
|
alias visit_interpolated_regular_expression_node visit_child_nodes
|
272
|
-
|
281
|
+
|
273
282
|
# Compile a InterpolatedStringNode node
|
274
283
|
alias visit_interpolated_string_node visit_child_nodes
|
275
|
-
|
284
|
+
|
276
285
|
# Compile a InterpolatedSymbolNode node
|
277
286
|
alias visit_interpolated_symbol_node visit_child_nodes
|
278
|
-
|
287
|
+
|
279
288
|
# Compile a InterpolatedXStringNode node
|
280
289
|
alias visit_interpolated_x_string_node visit_child_nodes
|
281
|
-
|
290
|
+
|
282
291
|
# Compile a KeywordHashNode node
|
283
292
|
alias visit_keyword_hash_node visit_child_nodes
|
284
|
-
|
293
|
+
|
285
294
|
# Compile a KeywordParameterNode node
|
286
295
|
alias visit_keyword_parameter_node visit_child_nodes
|
287
|
-
|
296
|
+
|
288
297
|
# Compile a KeywordRestParameterNode node
|
289
298
|
alias visit_keyword_rest_parameter_node visit_child_nodes
|
290
|
-
|
299
|
+
|
291
300
|
# Compile a LambdaNode node
|
292
301
|
alias visit_lambda_node visit_child_nodes
|
293
|
-
|
302
|
+
|
294
303
|
# Compile a LocalVariableAndWriteNode node
|
295
304
|
alias visit_local_variable_and_write_node visit_child_nodes
|
296
|
-
|
305
|
+
|
297
306
|
# Compile a LocalVariableOperatorWriteNode node
|
298
307
|
alias visit_local_variable_operator_write_node visit_child_nodes
|
299
|
-
|
308
|
+
|
300
309
|
# Compile a LocalVariableOrWriteNode node
|
301
310
|
alias visit_local_variable_or_write_node visit_child_nodes
|
302
|
-
|
311
|
+
|
303
312
|
# Compile a LocalVariableReadNode node
|
304
313
|
alias visit_local_variable_read_node visit_child_nodes
|
305
|
-
|
314
|
+
|
306
315
|
# Compile a LocalVariableTargetNode node
|
307
316
|
alias visit_local_variable_target_node visit_child_nodes
|
308
|
-
|
317
|
+
|
309
318
|
# Compile a LocalVariableWriteNode node
|
310
319
|
alias visit_local_variable_write_node visit_child_nodes
|
311
|
-
|
320
|
+
|
312
321
|
# Compile a MatchLastLineNode node
|
313
322
|
alias visit_match_last_line_node visit_child_nodes
|
314
|
-
|
323
|
+
|
315
324
|
# Compile a MatchPredicateNode node
|
316
325
|
alias visit_match_predicate_node visit_child_nodes
|
317
|
-
|
326
|
+
|
318
327
|
# Compile a MatchRequiredNode node
|
319
328
|
alias visit_match_required_node visit_child_nodes
|
320
|
-
|
329
|
+
|
321
330
|
# Compile a MatchWriteNode node
|
322
331
|
alias visit_match_write_node visit_child_nodes
|
323
|
-
|
332
|
+
|
324
333
|
# Compile a MissingNode node
|
325
334
|
alias visit_missing_node visit_child_nodes
|
326
|
-
|
335
|
+
|
327
336
|
# Compile a ModuleNode node
|
328
337
|
alias visit_module_node visit_child_nodes
|
329
|
-
|
338
|
+
|
330
339
|
# Compile a MultiTargetNode node
|
331
340
|
alias visit_multi_target_node visit_child_nodes
|
332
|
-
|
341
|
+
|
333
342
|
# Compile a MultiWriteNode node
|
334
343
|
alias visit_multi_write_node visit_child_nodes
|
335
|
-
|
344
|
+
|
336
345
|
# Compile a NextNode node
|
337
346
|
alias visit_next_node visit_child_nodes
|
338
|
-
|
347
|
+
|
339
348
|
# Compile a NilNode node
|
340
349
|
alias visit_nil_node visit_child_nodes
|
341
|
-
|
350
|
+
|
342
351
|
# Compile a NoKeywordsParameterNode node
|
343
352
|
alias visit_no_keywords_parameter_node visit_child_nodes
|
344
|
-
|
353
|
+
|
345
354
|
# Compile a NumberedReferenceReadNode node
|
346
355
|
alias visit_numbered_reference_read_node visit_child_nodes
|
347
|
-
|
356
|
+
|
348
357
|
# Compile a OptionalParameterNode node
|
349
358
|
alias visit_optional_parameter_node visit_child_nodes
|
350
|
-
|
359
|
+
|
351
360
|
# Compile a OrNode node
|
352
361
|
alias visit_or_node visit_child_nodes
|
353
|
-
|
362
|
+
|
354
363
|
# Compile a ParametersNode node
|
355
364
|
alias visit_parameters_node visit_child_nodes
|
356
|
-
|
365
|
+
|
357
366
|
# Compile a ParenthesesNode node
|
358
367
|
alias visit_parentheses_node visit_child_nodes
|
359
|
-
|
368
|
+
|
360
369
|
# Compile a PinnedExpressionNode node
|
361
370
|
alias visit_pinned_expression_node visit_child_nodes
|
362
|
-
|
371
|
+
|
363
372
|
# Compile a PinnedVariableNode node
|
364
373
|
alias visit_pinned_variable_node visit_child_nodes
|
365
|
-
|
374
|
+
|
366
375
|
# Compile a PostExecutionNode node
|
367
376
|
alias visit_post_execution_node visit_child_nodes
|
368
|
-
|
377
|
+
|
369
378
|
# Compile a PreExecutionNode node
|
370
379
|
alias visit_pre_execution_node visit_child_nodes
|
371
|
-
|
380
|
+
|
372
381
|
# Compile a ProgramNode node
|
373
382
|
alias visit_program_node visit_child_nodes
|
374
|
-
|
383
|
+
|
375
384
|
# Compile a RangeNode node
|
376
385
|
alias visit_range_node visit_child_nodes
|
377
|
-
|
386
|
+
|
378
387
|
# Compile a RationalNode node
|
379
388
|
alias visit_rational_node visit_child_nodes
|
380
|
-
|
389
|
+
|
381
390
|
# Compile a RedoNode node
|
382
391
|
alias visit_redo_node visit_child_nodes
|
383
|
-
|
392
|
+
|
384
393
|
# Compile a RegularExpressionNode node
|
385
394
|
alias visit_regular_expression_node visit_child_nodes
|
386
|
-
|
395
|
+
|
387
396
|
# Compile a RequiredDestructuredParameterNode node
|
388
397
|
alias visit_required_destructured_parameter_node visit_child_nodes
|
389
|
-
|
398
|
+
|
390
399
|
# Compile a RequiredParameterNode node
|
391
400
|
alias visit_required_parameter_node visit_child_nodes
|
392
|
-
|
401
|
+
|
393
402
|
# Compile a RescueModifierNode node
|
394
403
|
alias visit_rescue_modifier_node visit_child_nodes
|
395
|
-
|
404
|
+
|
396
405
|
# Compile a RescueNode node
|
397
406
|
alias visit_rescue_node visit_child_nodes
|
398
|
-
|
407
|
+
|
399
408
|
# Compile a RestParameterNode node
|
400
409
|
alias visit_rest_parameter_node visit_child_nodes
|
401
|
-
|
410
|
+
|
402
411
|
# Compile a RetryNode node
|
403
412
|
alias visit_retry_node visit_child_nodes
|
404
|
-
|
413
|
+
|
405
414
|
# Compile a ReturnNode node
|
406
415
|
alias visit_return_node visit_child_nodes
|
407
|
-
|
416
|
+
|
408
417
|
# Compile a SelfNode node
|
409
418
|
alias visit_self_node visit_child_nodes
|
410
|
-
|
419
|
+
|
411
420
|
# Compile a SingletonClassNode node
|
412
421
|
alias visit_singleton_class_node visit_child_nodes
|
413
|
-
|
422
|
+
|
414
423
|
# Compile a SourceEncodingNode node
|
415
424
|
alias visit_source_encoding_node visit_child_nodes
|
416
|
-
|
425
|
+
|
417
426
|
# Compile a SourceFileNode node
|
418
427
|
alias visit_source_file_node visit_child_nodes
|
419
|
-
|
428
|
+
|
420
429
|
# Compile a SourceLineNode node
|
421
430
|
alias visit_source_line_node visit_child_nodes
|
422
|
-
|
431
|
+
|
423
432
|
# Compile a SplatNode node
|
424
433
|
alias visit_splat_node visit_child_nodes
|
425
|
-
|
434
|
+
|
426
435
|
# Compile a StatementsNode node
|
427
436
|
alias visit_statements_node visit_child_nodes
|
428
|
-
|
437
|
+
|
429
438
|
# Compile a StringConcatNode node
|
430
439
|
alias visit_string_concat_node visit_child_nodes
|
431
|
-
|
440
|
+
|
432
441
|
# Compile a StringNode node
|
433
442
|
alias visit_string_node visit_child_nodes
|
434
|
-
|
443
|
+
|
435
444
|
# Compile a SuperNode node
|
436
445
|
alias visit_super_node visit_child_nodes
|
437
|
-
|
446
|
+
|
438
447
|
# Compile a SymbolNode node
|
439
448
|
alias visit_symbol_node visit_child_nodes
|
440
|
-
|
449
|
+
|
441
450
|
# Compile a TrueNode node
|
442
451
|
alias visit_true_node visit_child_nodes
|
443
|
-
|
452
|
+
|
444
453
|
# Compile a UndefNode node
|
445
454
|
alias visit_undef_node visit_child_nodes
|
446
|
-
|
455
|
+
|
447
456
|
# Compile a UnlessNode node
|
448
457
|
alias visit_unless_node visit_child_nodes
|
449
|
-
|
458
|
+
|
450
459
|
# Compile a UntilNode node
|
451
460
|
alias visit_until_node visit_child_nodes
|
452
|
-
|
461
|
+
|
453
462
|
# Compile a WhenNode node
|
454
463
|
alias visit_when_node visit_child_nodes
|
455
|
-
|
464
|
+
|
456
465
|
# Compile a WhileNode node
|
457
466
|
alias visit_while_node visit_child_nodes
|
458
|
-
|
467
|
+
|
459
468
|
# Compile a XStringNode node
|
460
469
|
alias visit_x_string_node visit_child_nodes
|
461
|
-
|
470
|
+
|
462
471
|
# Compile a YieldNode node
|
463
472
|
alias visit_yield_node visit_child_nodes
|
464
473
|
end
|