yarp 0.7.0 → 0.8.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 +21 -2
- data/Makefile +2 -0
- data/README.md +5 -2
- data/config.yml +54 -267
- data/ext/yarp/api_node.c +135 -579
- data/ext/yarp/extension.c +2 -2
- data/ext/yarp/extension.h +1 -1
- data/include/yarp/ast.h +142 -285
- data/include/yarp/defines.h +5 -0
- data/include/yarp/unescape.h +1 -1
- data/include/yarp/util/yp_buffer.h +9 -1
- data/include/yarp/util/yp_constant_pool.h +3 -0
- data/include/yarp/util/yp_list.h +7 -7
- data/include/yarp/util/yp_newline_list.h +4 -0
- data/include/yarp/util/yp_state_stack.h +1 -1
- data/include/yarp/version.h +2 -2
- data/lib/yarp/ffi.rb +62 -47
- data/lib/yarp/node.rb +504 -1399
- data/lib/yarp/serialize.rb +111 -141
- data/lib/yarp.rb +6 -6
- data/src/node.c +70 -250
- data/src/prettyprint.c +41 -185
- data/src/serialize.c +35 -133
- data/src/unescape.c +29 -35
- data/src/util/yp_buffer.c +18 -0
- data/src/util/yp_list.c +7 -16
- data/src/util/yp_state_stack.c +0 -6
- data/src/yarp.c +265 -670
- data/yarp.gemspec +1 -1
- metadata +2 -2
data/src/node.c
CHANGED
@@ -98,6 +98,11 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
98
98
|
yp_node_destroy(parser, (yp_node_t *)((yp_and_node_t *)node)->left);
|
99
99
|
yp_node_destroy(parser, (yp_node_t *)((yp_and_node_t *)node)->right);
|
100
100
|
break;
|
101
|
+
#line 81 "node.c.erb"
|
102
|
+
case YP_NODE_AND_WRITE_NODE:
|
103
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_and_write_node_t *)node)->target);
|
104
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_and_write_node_t *)node)->value);
|
105
|
+
break;
|
101
106
|
#line 81 "node.c.erb"
|
102
107
|
case YP_NODE_ARGUMENTS_NODE:
|
103
108
|
yp_node_list_free(parser, &((yp_arguments_node_t *)node)->arguments);
|
@@ -160,8 +165,8 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
160
165
|
if (((yp_block_node_t *)node)->parameters != NULL) {
|
161
166
|
yp_node_destroy(parser, (yp_node_t *)((yp_block_node_t *)node)->parameters);
|
162
167
|
}
|
163
|
-
if (((yp_block_node_t *)node)->
|
164
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_block_node_t *)node)->
|
168
|
+
if (((yp_block_node_t *)node)->body != NULL) {
|
169
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_block_node_t *)node)->body);
|
165
170
|
}
|
166
171
|
break;
|
167
172
|
#line 81 "node.c.erb"
|
@@ -230,22 +235,10 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
230
235
|
if (((yp_class_node_t *)node)->superclass != NULL) {
|
231
236
|
yp_node_destroy(parser, (yp_node_t *)((yp_class_node_t *)node)->superclass);
|
232
237
|
}
|
233
|
-
if (((yp_class_node_t *)node)->
|
234
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_class_node_t *)node)->
|
238
|
+
if (((yp_class_node_t *)node)->body != NULL) {
|
239
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_class_node_t *)node)->body);
|
235
240
|
}
|
236
241
|
break;
|
237
|
-
#line 81 "node.c.erb"
|
238
|
-
case YP_NODE_CLASS_VARIABLE_OPERATOR_AND_WRITE_NODE:
|
239
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_class_variable_operator_and_write_node_t *)node)->value);
|
240
|
-
break;
|
241
|
-
#line 81 "node.c.erb"
|
242
|
-
case YP_NODE_CLASS_VARIABLE_OPERATOR_OR_WRITE_NODE:
|
243
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_class_variable_operator_or_write_node_t *)node)->value);
|
244
|
-
break;
|
245
|
-
#line 81 "node.c.erb"
|
246
|
-
case YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE:
|
247
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_class_variable_operator_write_node_t *)node)->value);
|
248
|
-
break;
|
249
242
|
#line 81 "node.c.erb"
|
250
243
|
case YP_NODE_CLASS_VARIABLE_READ_NODE:
|
251
244
|
break;
|
@@ -255,18 +248,6 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
255
248
|
yp_node_destroy(parser, (yp_node_t *)((yp_class_variable_write_node_t *)node)->value);
|
256
249
|
}
|
257
250
|
break;
|
258
|
-
#line 81 "node.c.erb"
|
259
|
-
case YP_NODE_CONSTANT_OPERATOR_AND_WRITE_NODE:
|
260
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_constant_operator_and_write_node_t *)node)->value);
|
261
|
-
break;
|
262
|
-
#line 81 "node.c.erb"
|
263
|
-
case YP_NODE_CONSTANT_OPERATOR_OR_WRITE_NODE:
|
264
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_constant_operator_or_write_node_t *)node)->value);
|
265
|
-
break;
|
266
|
-
#line 81 "node.c.erb"
|
267
|
-
case YP_NODE_CONSTANT_OPERATOR_WRITE_NODE:
|
268
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_constant_operator_write_node_t *)node)->value);
|
269
|
-
break;
|
270
251
|
#line 81 "node.c.erb"
|
271
252
|
case YP_NODE_CONSTANT_PATH_NODE:
|
272
253
|
if (((yp_constant_path_node_t *)node)->parent != NULL) {
|
@@ -274,21 +255,6 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
274
255
|
}
|
275
256
|
yp_node_destroy(parser, (yp_node_t *)((yp_constant_path_node_t *)node)->child);
|
276
257
|
break;
|
277
|
-
#line 81 "node.c.erb"
|
278
|
-
case YP_NODE_CONSTANT_PATH_OPERATOR_AND_WRITE_NODE:
|
279
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_constant_path_operator_and_write_node_t *)node)->target);
|
280
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_constant_path_operator_and_write_node_t *)node)->value);
|
281
|
-
break;
|
282
|
-
#line 81 "node.c.erb"
|
283
|
-
case YP_NODE_CONSTANT_PATH_OPERATOR_OR_WRITE_NODE:
|
284
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_constant_path_operator_or_write_node_t *)node)->target);
|
285
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_constant_path_operator_or_write_node_t *)node)->value);
|
286
|
-
break;
|
287
|
-
#line 81 "node.c.erb"
|
288
|
-
case YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE:
|
289
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_constant_path_operator_write_node_t *)node)->target);
|
290
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_constant_path_operator_write_node_t *)node)->value);
|
291
|
-
break;
|
292
258
|
#line 81 "node.c.erb"
|
293
259
|
case YP_NODE_CONSTANT_PATH_WRITE_NODE:
|
294
260
|
yp_node_destroy(parser, (yp_node_t *)((yp_constant_path_write_node_t *)node)->target);
|
@@ -313,8 +279,8 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
313
279
|
if (((yp_def_node_t *)node)->parameters != NULL) {
|
314
280
|
yp_node_destroy(parser, (yp_node_t *)((yp_def_node_t *)node)->parameters);
|
315
281
|
}
|
316
|
-
if (((yp_def_node_t *)node)->
|
317
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_def_node_t *)node)->
|
282
|
+
if (((yp_def_node_t *)node)->body != NULL) {
|
283
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_def_node_t *)node)->body);
|
318
284
|
}
|
319
285
|
yp_constant_id_list_free(&((yp_def_node_t *)node)->locals);
|
320
286
|
break;
|
@@ -388,18 +354,6 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
388
354
|
yp_node_destroy(parser, (yp_node_t *)((yp_forwarding_super_node_t *)node)->block);
|
389
355
|
}
|
390
356
|
break;
|
391
|
-
#line 81 "node.c.erb"
|
392
|
-
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_AND_WRITE_NODE:
|
393
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_global_variable_operator_and_write_node_t *)node)->value);
|
394
|
-
break;
|
395
|
-
#line 81 "node.c.erb"
|
396
|
-
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_OR_WRITE_NODE:
|
397
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_global_variable_operator_or_write_node_t *)node)->value);
|
398
|
-
break;
|
399
|
-
#line 81 "node.c.erb"
|
400
|
-
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE:
|
401
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_global_variable_operator_write_node_t *)node)->value);
|
402
|
-
break;
|
403
357
|
#line 81 "node.c.erb"
|
404
358
|
case YP_NODE_GLOBAL_VARIABLE_READ_NODE:
|
405
359
|
break;
|
@@ -444,18 +398,6 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
444
398
|
yp_node_destroy(parser, (yp_node_t *)((yp_in_node_t *)node)->statements);
|
445
399
|
}
|
446
400
|
break;
|
447
|
-
#line 81 "node.c.erb"
|
448
|
-
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_AND_WRITE_NODE:
|
449
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_instance_variable_operator_and_write_node_t *)node)->value);
|
450
|
-
break;
|
451
|
-
#line 81 "node.c.erb"
|
452
|
-
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_OR_WRITE_NODE:
|
453
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_instance_variable_operator_or_write_node_t *)node)->value);
|
454
|
-
break;
|
455
|
-
#line 81 "node.c.erb"
|
456
|
-
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE:
|
457
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_instance_variable_operator_write_node_t *)node)->value);
|
458
|
-
break;
|
459
401
|
#line 81 "node.c.erb"
|
460
402
|
case YP_NODE_INSTANCE_VARIABLE_READ_NODE:
|
461
403
|
break;
|
@@ -503,22 +445,10 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
503
445
|
if (((yp_lambda_node_t *)node)->parameters != NULL) {
|
504
446
|
yp_node_destroy(parser, (yp_node_t *)((yp_lambda_node_t *)node)->parameters);
|
505
447
|
}
|
506
|
-
if (((yp_lambda_node_t *)node)->
|
507
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_lambda_node_t *)node)->
|
448
|
+
if (((yp_lambda_node_t *)node)->body != NULL) {
|
449
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_lambda_node_t *)node)->body);
|
508
450
|
}
|
509
451
|
break;
|
510
|
-
#line 81 "node.c.erb"
|
511
|
-
case YP_NODE_LOCAL_VARIABLE_OPERATOR_AND_WRITE_NODE:
|
512
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_local_variable_operator_and_write_node_t *)node)->value);
|
513
|
-
break;
|
514
|
-
#line 81 "node.c.erb"
|
515
|
-
case YP_NODE_LOCAL_VARIABLE_OPERATOR_OR_WRITE_NODE:
|
516
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_local_variable_operator_or_write_node_t *)node)->value);
|
517
|
-
break;
|
518
|
-
#line 81 "node.c.erb"
|
519
|
-
case YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE:
|
520
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_local_variable_operator_write_node_t *)node)->value);
|
521
|
-
break;
|
522
452
|
#line 81 "node.c.erb"
|
523
453
|
case YP_NODE_LOCAL_VARIABLE_READ_NODE:
|
524
454
|
break;
|
@@ -545,8 +475,8 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
545
475
|
case YP_NODE_MODULE_NODE:
|
546
476
|
yp_constant_id_list_free(&((yp_module_node_t *)node)->locals);
|
547
477
|
yp_node_destroy(parser, (yp_node_t *)((yp_module_node_t *)node)->constant_path);
|
548
|
-
if (((yp_module_node_t *)node)->
|
549
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_module_node_t *)node)->
|
478
|
+
if (((yp_module_node_t *)node)->body != NULL) {
|
479
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_module_node_t *)node)->body);
|
550
480
|
}
|
551
481
|
break;
|
552
482
|
#line 81 "node.c.erb"
|
@@ -571,6 +501,11 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
571
501
|
#line 81 "node.c.erb"
|
572
502
|
case YP_NODE_NUMBERED_REFERENCE_READ_NODE:
|
573
503
|
break;
|
504
|
+
#line 81 "node.c.erb"
|
505
|
+
case YP_NODE_OPERATOR_WRITE_NODE:
|
506
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_operator_write_node_t *)node)->target);
|
507
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_operator_write_node_t *)node)->value);
|
508
|
+
break;
|
574
509
|
#line 81 "node.c.erb"
|
575
510
|
case YP_NODE_OPTIONAL_PARAMETER_NODE:
|
576
511
|
yp_node_destroy(parser, (yp_node_t *)((yp_optional_parameter_node_t *)node)->value);
|
@@ -580,6 +515,11 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
580
515
|
yp_node_destroy(parser, (yp_node_t *)((yp_or_node_t *)node)->left);
|
581
516
|
yp_node_destroy(parser, (yp_node_t *)((yp_or_node_t *)node)->right);
|
582
517
|
break;
|
518
|
+
#line 81 "node.c.erb"
|
519
|
+
case YP_NODE_OR_WRITE_NODE:
|
520
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_or_write_node_t *)node)->target);
|
521
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_or_write_node_t *)node)->value);
|
522
|
+
break;
|
583
523
|
#line 81 "node.c.erb"
|
584
524
|
case YP_NODE_PARAMETERS_NODE:
|
585
525
|
yp_node_list_free(parser, &((yp_parameters_node_t *)node)->requireds);
|
@@ -598,8 +538,8 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
598
538
|
break;
|
599
539
|
#line 81 "node.c.erb"
|
600
540
|
case YP_NODE_PARENTHESES_NODE:
|
601
|
-
if (((yp_parentheses_node_t *)node)->
|
602
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_parentheses_node_t *)node)->
|
541
|
+
if (((yp_parentheses_node_t *)node)->body != NULL) {
|
542
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_parentheses_node_t *)node)->body);
|
603
543
|
}
|
604
544
|
break;
|
605
545
|
#line 81 "node.c.erb"
|
@@ -691,8 +631,8 @@ yp_node_destroy(yp_parser_t *parser, yp_node_t *node) {
|
|
691
631
|
case YP_NODE_SINGLETON_CLASS_NODE:
|
692
632
|
yp_constant_id_list_free(&((yp_singleton_class_node_t *)node)->locals);
|
693
633
|
yp_node_destroy(parser, (yp_node_t *)((yp_singleton_class_node_t *)node)->expression);
|
694
|
-
if (((yp_singleton_class_node_t *)node)->
|
695
|
-
yp_node_destroy(parser, (yp_node_t *)((yp_singleton_class_node_t *)node)->
|
634
|
+
if (((yp_singleton_class_node_t *)node)->body != NULL) {
|
635
|
+
yp_node_destroy(parser, (yp_node_t *)((yp_singleton_class_node_t *)node)->body);
|
696
636
|
}
|
697
637
|
break;
|
698
638
|
#line 81 "node.c.erb"
|
@@ -819,6 +759,13 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
819
759
|
yp_node_memsize_node((yp_node_t *)((yp_and_node_t *)node)->right, memsize);
|
820
760
|
break;
|
821
761
|
}
|
762
|
+
#line 120 "node.c.erb"
|
763
|
+
case YP_NODE_AND_WRITE_NODE: {
|
764
|
+
memsize->memsize += sizeof(yp_and_write_node_t);
|
765
|
+
yp_node_memsize_node((yp_node_t *)((yp_and_write_node_t *)node)->target, memsize);
|
766
|
+
yp_node_memsize_node((yp_node_t *)((yp_and_write_node_t *)node)->value, memsize);
|
767
|
+
break;
|
768
|
+
}
|
822
769
|
#line 120 "node.c.erb"
|
823
770
|
case YP_NODE_ARGUMENTS_NODE: {
|
824
771
|
memsize->memsize += sizeof(yp_arguments_node_t);
|
@@ -898,8 +845,8 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
898
845
|
if (((yp_block_node_t *)node)->parameters != NULL) {
|
899
846
|
yp_node_memsize_node((yp_node_t *)((yp_block_node_t *)node)->parameters, memsize);
|
900
847
|
}
|
901
|
-
if (((yp_block_node_t *)node)->
|
902
|
-
yp_node_memsize_node((yp_node_t *)((yp_block_node_t *)node)->
|
848
|
+
if (((yp_block_node_t *)node)->body != NULL) {
|
849
|
+
yp_node_memsize_node((yp_node_t *)((yp_block_node_t *)node)->body, memsize);
|
903
850
|
}
|
904
851
|
break;
|
905
852
|
}
|
@@ -988,29 +935,11 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
988
935
|
if (((yp_class_node_t *)node)->superclass != NULL) {
|
989
936
|
yp_node_memsize_node((yp_node_t *)((yp_class_node_t *)node)->superclass, memsize);
|
990
937
|
}
|
991
|
-
if (((yp_class_node_t *)node)->
|
992
|
-
yp_node_memsize_node((yp_node_t *)((yp_class_node_t *)node)->
|
938
|
+
if (((yp_class_node_t *)node)->body != NULL) {
|
939
|
+
yp_node_memsize_node((yp_node_t *)((yp_class_node_t *)node)->body, memsize);
|
993
940
|
}
|
994
941
|
break;
|
995
942
|
}
|
996
|
-
#line 120 "node.c.erb"
|
997
|
-
case YP_NODE_CLASS_VARIABLE_OPERATOR_AND_WRITE_NODE: {
|
998
|
-
memsize->memsize += sizeof(yp_class_variable_operator_and_write_node_t);
|
999
|
-
yp_node_memsize_node((yp_node_t *)((yp_class_variable_operator_and_write_node_t *)node)->value, memsize);
|
1000
|
-
break;
|
1001
|
-
}
|
1002
|
-
#line 120 "node.c.erb"
|
1003
|
-
case YP_NODE_CLASS_VARIABLE_OPERATOR_OR_WRITE_NODE: {
|
1004
|
-
memsize->memsize += sizeof(yp_class_variable_operator_or_write_node_t);
|
1005
|
-
yp_node_memsize_node((yp_node_t *)((yp_class_variable_operator_or_write_node_t *)node)->value, memsize);
|
1006
|
-
break;
|
1007
|
-
}
|
1008
|
-
#line 120 "node.c.erb"
|
1009
|
-
case YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE: {
|
1010
|
-
memsize->memsize += sizeof(yp_class_variable_operator_write_node_t);
|
1011
|
-
yp_node_memsize_node((yp_node_t *)((yp_class_variable_operator_write_node_t *)node)->value, memsize);
|
1012
|
-
break;
|
1013
|
-
}
|
1014
943
|
#line 120 "node.c.erb"
|
1015
944
|
case YP_NODE_CLASS_VARIABLE_READ_NODE: {
|
1016
945
|
memsize->memsize += sizeof(yp_class_variable_read_node_t);
|
@@ -1024,24 +953,6 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
1024
953
|
}
|
1025
954
|
break;
|
1026
955
|
}
|
1027
|
-
#line 120 "node.c.erb"
|
1028
|
-
case YP_NODE_CONSTANT_OPERATOR_AND_WRITE_NODE: {
|
1029
|
-
memsize->memsize += sizeof(yp_constant_operator_and_write_node_t);
|
1030
|
-
yp_node_memsize_node((yp_node_t *)((yp_constant_operator_and_write_node_t *)node)->value, memsize);
|
1031
|
-
break;
|
1032
|
-
}
|
1033
|
-
#line 120 "node.c.erb"
|
1034
|
-
case YP_NODE_CONSTANT_OPERATOR_OR_WRITE_NODE: {
|
1035
|
-
memsize->memsize += sizeof(yp_constant_operator_or_write_node_t);
|
1036
|
-
yp_node_memsize_node((yp_node_t *)((yp_constant_operator_or_write_node_t *)node)->value, memsize);
|
1037
|
-
break;
|
1038
|
-
}
|
1039
|
-
#line 120 "node.c.erb"
|
1040
|
-
case YP_NODE_CONSTANT_OPERATOR_WRITE_NODE: {
|
1041
|
-
memsize->memsize += sizeof(yp_constant_operator_write_node_t);
|
1042
|
-
yp_node_memsize_node((yp_node_t *)((yp_constant_operator_write_node_t *)node)->value, memsize);
|
1043
|
-
break;
|
1044
|
-
}
|
1045
956
|
#line 120 "node.c.erb"
|
1046
957
|
case YP_NODE_CONSTANT_PATH_NODE: {
|
1047
958
|
memsize->memsize += sizeof(yp_constant_path_node_t);
|
@@ -1051,27 +962,6 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
1051
962
|
yp_node_memsize_node((yp_node_t *)((yp_constant_path_node_t *)node)->child, memsize);
|
1052
963
|
break;
|
1053
964
|
}
|
1054
|
-
#line 120 "node.c.erb"
|
1055
|
-
case YP_NODE_CONSTANT_PATH_OPERATOR_AND_WRITE_NODE: {
|
1056
|
-
memsize->memsize += sizeof(yp_constant_path_operator_and_write_node_t);
|
1057
|
-
yp_node_memsize_node((yp_node_t *)((yp_constant_path_operator_and_write_node_t *)node)->target, memsize);
|
1058
|
-
yp_node_memsize_node((yp_node_t *)((yp_constant_path_operator_and_write_node_t *)node)->value, memsize);
|
1059
|
-
break;
|
1060
|
-
}
|
1061
|
-
#line 120 "node.c.erb"
|
1062
|
-
case YP_NODE_CONSTANT_PATH_OPERATOR_OR_WRITE_NODE: {
|
1063
|
-
memsize->memsize += sizeof(yp_constant_path_operator_or_write_node_t);
|
1064
|
-
yp_node_memsize_node((yp_node_t *)((yp_constant_path_operator_or_write_node_t *)node)->target, memsize);
|
1065
|
-
yp_node_memsize_node((yp_node_t *)((yp_constant_path_operator_or_write_node_t *)node)->value, memsize);
|
1066
|
-
break;
|
1067
|
-
}
|
1068
|
-
#line 120 "node.c.erb"
|
1069
|
-
case YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE: {
|
1070
|
-
memsize->memsize += sizeof(yp_constant_path_operator_write_node_t);
|
1071
|
-
yp_node_memsize_node((yp_node_t *)((yp_constant_path_operator_write_node_t *)node)->target, memsize);
|
1072
|
-
yp_node_memsize_node((yp_node_t *)((yp_constant_path_operator_write_node_t *)node)->value, memsize);
|
1073
|
-
break;
|
1074
|
-
}
|
1075
965
|
#line 120 "node.c.erb"
|
1076
966
|
case YP_NODE_CONSTANT_PATH_WRITE_NODE: {
|
1077
967
|
memsize->memsize += sizeof(yp_constant_path_write_node_t);
|
@@ -1103,8 +993,8 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
1103
993
|
if (((yp_def_node_t *)node)->parameters != NULL) {
|
1104
994
|
yp_node_memsize_node((yp_node_t *)((yp_def_node_t *)node)->parameters, memsize);
|
1105
995
|
}
|
1106
|
-
if (((yp_def_node_t *)node)->
|
1107
|
-
yp_node_memsize_node((yp_node_t *)((yp_def_node_t *)node)->
|
996
|
+
if (((yp_def_node_t *)node)->body != NULL) {
|
997
|
+
yp_node_memsize_node((yp_node_t *)((yp_def_node_t *)node)->body, memsize);
|
1108
998
|
}
|
1109
999
|
memsize->memsize += yp_constant_id_list_memsize(&((yp_def_node_t *)node)->locals);
|
1110
1000
|
break;
|
@@ -1205,24 +1095,6 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
1205
1095
|
}
|
1206
1096
|
break;
|
1207
1097
|
}
|
1208
|
-
#line 120 "node.c.erb"
|
1209
|
-
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_AND_WRITE_NODE: {
|
1210
|
-
memsize->memsize += sizeof(yp_global_variable_operator_and_write_node_t);
|
1211
|
-
yp_node_memsize_node((yp_node_t *)((yp_global_variable_operator_and_write_node_t *)node)->value, memsize);
|
1212
|
-
break;
|
1213
|
-
}
|
1214
|
-
#line 120 "node.c.erb"
|
1215
|
-
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_OR_WRITE_NODE: {
|
1216
|
-
memsize->memsize += sizeof(yp_global_variable_operator_or_write_node_t);
|
1217
|
-
yp_node_memsize_node((yp_node_t *)((yp_global_variable_operator_or_write_node_t *)node)->value, memsize);
|
1218
|
-
break;
|
1219
|
-
}
|
1220
|
-
#line 120 "node.c.erb"
|
1221
|
-
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE: {
|
1222
|
-
memsize->memsize += sizeof(yp_global_variable_operator_write_node_t);
|
1223
|
-
yp_node_memsize_node((yp_node_t *)((yp_global_variable_operator_write_node_t *)node)->value, memsize);
|
1224
|
-
break;
|
1225
|
-
}
|
1226
1098
|
#line 120 "node.c.erb"
|
1227
1099
|
case YP_NODE_GLOBAL_VARIABLE_READ_NODE: {
|
1228
1100
|
memsize->memsize += sizeof(yp_global_variable_read_node_t);
|
@@ -1281,24 +1153,6 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
1281
1153
|
}
|
1282
1154
|
break;
|
1283
1155
|
}
|
1284
|
-
#line 120 "node.c.erb"
|
1285
|
-
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_AND_WRITE_NODE: {
|
1286
|
-
memsize->memsize += sizeof(yp_instance_variable_operator_and_write_node_t);
|
1287
|
-
yp_node_memsize_node((yp_node_t *)((yp_instance_variable_operator_and_write_node_t *)node)->value, memsize);
|
1288
|
-
break;
|
1289
|
-
}
|
1290
|
-
#line 120 "node.c.erb"
|
1291
|
-
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_OR_WRITE_NODE: {
|
1292
|
-
memsize->memsize += sizeof(yp_instance_variable_operator_or_write_node_t);
|
1293
|
-
yp_node_memsize_node((yp_node_t *)((yp_instance_variable_operator_or_write_node_t *)node)->value, memsize);
|
1294
|
-
break;
|
1295
|
-
}
|
1296
|
-
#line 120 "node.c.erb"
|
1297
|
-
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE: {
|
1298
|
-
memsize->memsize += sizeof(yp_instance_variable_operator_write_node_t);
|
1299
|
-
yp_node_memsize_node((yp_node_t *)((yp_instance_variable_operator_write_node_t *)node)->value, memsize);
|
1300
|
-
break;
|
1301
|
-
}
|
1302
1156
|
#line 120 "node.c.erb"
|
1303
1157
|
case YP_NODE_INSTANCE_VARIABLE_READ_NODE: {
|
1304
1158
|
memsize->memsize += sizeof(yp_instance_variable_read_node_t);
|
@@ -1367,29 +1221,11 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
1367
1221
|
if (((yp_lambda_node_t *)node)->parameters != NULL) {
|
1368
1222
|
yp_node_memsize_node((yp_node_t *)((yp_lambda_node_t *)node)->parameters, memsize);
|
1369
1223
|
}
|
1370
|
-
if (((yp_lambda_node_t *)node)->
|
1371
|
-
yp_node_memsize_node((yp_node_t *)((yp_lambda_node_t *)node)->
|
1224
|
+
if (((yp_lambda_node_t *)node)->body != NULL) {
|
1225
|
+
yp_node_memsize_node((yp_node_t *)((yp_lambda_node_t *)node)->body, memsize);
|
1372
1226
|
}
|
1373
1227
|
break;
|
1374
1228
|
}
|
1375
|
-
#line 120 "node.c.erb"
|
1376
|
-
case YP_NODE_LOCAL_VARIABLE_OPERATOR_AND_WRITE_NODE: {
|
1377
|
-
memsize->memsize += sizeof(yp_local_variable_operator_and_write_node_t);
|
1378
|
-
yp_node_memsize_node((yp_node_t *)((yp_local_variable_operator_and_write_node_t *)node)->value, memsize);
|
1379
|
-
break;
|
1380
|
-
}
|
1381
|
-
#line 120 "node.c.erb"
|
1382
|
-
case YP_NODE_LOCAL_VARIABLE_OPERATOR_OR_WRITE_NODE: {
|
1383
|
-
memsize->memsize += sizeof(yp_local_variable_operator_or_write_node_t);
|
1384
|
-
yp_node_memsize_node((yp_node_t *)((yp_local_variable_operator_or_write_node_t *)node)->value, memsize);
|
1385
|
-
break;
|
1386
|
-
}
|
1387
|
-
#line 120 "node.c.erb"
|
1388
|
-
case YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE: {
|
1389
|
-
memsize->memsize += sizeof(yp_local_variable_operator_write_node_t);
|
1390
|
-
yp_node_memsize_node((yp_node_t *)((yp_local_variable_operator_write_node_t *)node)->value, memsize);
|
1391
|
-
break;
|
1392
|
-
}
|
1393
1229
|
#line 120 "node.c.erb"
|
1394
1230
|
case YP_NODE_LOCAL_VARIABLE_READ_NODE: {
|
1395
1231
|
memsize->memsize += sizeof(yp_local_variable_read_node_t);
|
@@ -1427,8 +1263,8 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
1427
1263
|
memsize->memsize += sizeof(yp_module_node_t);
|
1428
1264
|
memsize->memsize += yp_constant_id_list_memsize(&((yp_module_node_t *)node)->locals);
|
1429
1265
|
yp_node_memsize_node((yp_node_t *)((yp_module_node_t *)node)->constant_path, memsize);
|
1430
|
-
if (((yp_module_node_t *)node)->
|
1431
|
-
yp_node_memsize_node((yp_node_t *)((yp_module_node_t *)node)->
|
1266
|
+
if (((yp_module_node_t *)node)->body != NULL) {
|
1267
|
+
yp_node_memsize_node((yp_node_t *)((yp_module_node_t *)node)->body, memsize);
|
1432
1268
|
}
|
1433
1269
|
break;
|
1434
1270
|
}
|
@@ -1464,6 +1300,13 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
1464
1300
|
memsize->memsize += sizeof(yp_numbered_reference_read_node_t);
|
1465
1301
|
break;
|
1466
1302
|
}
|
1303
|
+
#line 120 "node.c.erb"
|
1304
|
+
case YP_NODE_OPERATOR_WRITE_NODE: {
|
1305
|
+
memsize->memsize += sizeof(yp_operator_write_node_t);
|
1306
|
+
yp_node_memsize_node((yp_node_t *)((yp_operator_write_node_t *)node)->target, memsize);
|
1307
|
+
yp_node_memsize_node((yp_node_t *)((yp_operator_write_node_t *)node)->value, memsize);
|
1308
|
+
break;
|
1309
|
+
}
|
1467
1310
|
#line 120 "node.c.erb"
|
1468
1311
|
case YP_NODE_OPTIONAL_PARAMETER_NODE: {
|
1469
1312
|
memsize->memsize += sizeof(yp_optional_parameter_node_t);
|
@@ -1477,6 +1320,13 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
1477
1320
|
yp_node_memsize_node((yp_node_t *)((yp_or_node_t *)node)->right, memsize);
|
1478
1321
|
break;
|
1479
1322
|
}
|
1323
|
+
#line 120 "node.c.erb"
|
1324
|
+
case YP_NODE_OR_WRITE_NODE: {
|
1325
|
+
memsize->memsize += sizeof(yp_or_write_node_t);
|
1326
|
+
yp_node_memsize_node((yp_node_t *)((yp_or_write_node_t *)node)->target, memsize);
|
1327
|
+
yp_node_memsize_node((yp_node_t *)((yp_or_write_node_t *)node)->value, memsize);
|
1328
|
+
break;
|
1329
|
+
}
|
1480
1330
|
#line 120 "node.c.erb"
|
1481
1331
|
case YP_NODE_PARAMETERS_NODE: {
|
1482
1332
|
memsize->memsize += sizeof(yp_parameters_node_t);
|
@@ -1498,8 +1348,8 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
1498
1348
|
#line 120 "node.c.erb"
|
1499
1349
|
case YP_NODE_PARENTHESES_NODE: {
|
1500
1350
|
memsize->memsize += sizeof(yp_parentheses_node_t);
|
1501
|
-
if (((yp_parentheses_node_t *)node)->
|
1502
|
-
yp_node_memsize_node((yp_node_t *)((yp_parentheses_node_t *)node)->
|
1351
|
+
if (((yp_parentheses_node_t *)node)->body != NULL) {
|
1352
|
+
yp_node_memsize_node((yp_node_t *)((yp_parentheses_node_t *)node)->body, memsize);
|
1503
1353
|
}
|
1504
1354
|
break;
|
1505
1355
|
}
|
@@ -1627,8 +1477,8 @@ yp_node_memsize_node(yp_node_t *node, yp_memsize_t *memsize) {
|
|
1627
1477
|
memsize->memsize += sizeof(yp_singleton_class_node_t);
|
1628
1478
|
memsize->memsize += yp_constant_id_list_memsize(&((yp_singleton_class_node_t *)node)->locals);
|
1629
1479
|
yp_node_memsize_node((yp_node_t *)((yp_singleton_class_node_t *)node)->expression, memsize);
|
1630
|
-
if (((yp_singleton_class_node_t *)node)->
|
1631
|
-
yp_node_memsize_node((yp_node_t *)((yp_singleton_class_node_t *)node)->
|
1480
|
+
if (((yp_singleton_class_node_t *)node)->body != NULL) {
|
1481
|
+
yp_node_memsize_node((yp_node_t *)((yp_singleton_class_node_t *)node)->body, memsize);
|
1632
1482
|
}
|
1633
1483
|
break;
|
1634
1484
|
}
|
@@ -1778,6 +1628,8 @@ yp_node_type_to_str(yp_node_type_t node_type)
|
|
1778
1628
|
return "YP_NODE_ALTERNATION_PATTERN_NODE";
|
1779
1629
|
case YP_NODE_AND_NODE:
|
1780
1630
|
return "YP_NODE_AND_NODE";
|
1631
|
+
case YP_NODE_AND_WRITE_NODE:
|
1632
|
+
return "YP_NODE_AND_WRITE_NODE";
|
1781
1633
|
case YP_NODE_ARGUMENTS_NODE:
|
1782
1634
|
return "YP_NODE_ARGUMENTS_NODE";
|
1783
1635
|
case YP_NODE_ARRAY_NODE:
|
@@ -1816,30 +1668,12 @@ yp_node_type_to_str(yp_node_type_t node_type)
|
|
1816
1668
|
return "YP_NODE_CASE_NODE";
|
1817
1669
|
case YP_NODE_CLASS_NODE:
|
1818
1670
|
return "YP_NODE_CLASS_NODE";
|
1819
|
-
case YP_NODE_CLASS_VARIABLE_OPERATOR_AND_WRITE_NODE:
|
1820
|
-
return "YP_NODE_CLASS_VARIABLE_OPERATOR_AND_WRITE_NODE";
|
1821
|
-
case YP_NODE_CLASS_VARIABLE_OPERATOR_OR_WRITE_NODE:
|
1822
|
-
return "YP_NODE_CLASS_VARIABLE_OPERATOR_OR_WRITE_NODE";
|
1823
|
-
case YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE:
|
1824
|
-
return "YP_NODE_CLASS_VARIABLE_OPERATOR_WRITE_NODE";
|
1825
1671
|
case YP_NODE_CLASS_VARIABLE_READ_NODE:
|
1826
1672
|
return "YP_NODE_CLASS_VARIABLE_READ_NODE";
|
1827
1673
|
case YP_NODE_CLASS_VARIABLE_WRITE_NODE:
|
1828
1674
|
return "YP_NODE_CLASS_VARIABLE_WRITE_NODE";
|
1829
|
-
case YP_NODE_CONSTANT_OPERATOR_AND_WRITE_NODE:
|
1830
|
-
return "YP_NODE_CONSTANT_OPERATOR_AND_WRITE_NODE";
|
1831
|
-
case YP_NODE_CONSTANT_OPERATOR_OR_WRITE_NODE:
|
1832
|
-
return "YP_NODE_CONSTANT_OPERATOR_OR_WRITE_NODE";
|
1833
|
-
case YP_NODE_CONSTANT_OPERATOR_WRITE_NODE:
|
1834
|
-
return "YP_NODE_CONSTANT_OPERATOR_WRITE_NODE";
|
1835
1675
|
case YP_NODE_CONSTANT_PATH_NODE:
|
1836
1676
|
return "YP_NODE_CONSTANT_PATH_NODE";
|
1837
|
-
case YP_NODE_CONSTANT_PATH_OPERATOR_AND_WRITE_NODE:
|
1838
|
-
return "YP_NODE_CONSTANT_PATH_OPERATOR_AND_WRITE_NODE";
|
1839
|
-
case YP_NODE_CONSTANT_PATH_OPERATOR_OR_WRITE_NODE:
|
1840
|
-
return "YP_NODE_CONSTANT_PATH_OPERATOR_OR_WRITE_NODE";
|
1841
|
-
case YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE:
|
1842
|
-
return "YP_NODE_CONSTANT_PATH_OPERATOR_WRITE_NODE";
|
1843
1677
|
case YP_NODE_CONSTANT_PATH_WRITE_NODE:
|
1844
1678
|
return "YP_NODE_CONSTANT_PATH_WRITE_NODE";
|
1845
1679
|
case YP_NODE_CONSTANT_READ_NODE:
|
@@ -1874,12 +1708,6 @@ yp_node_type_to_str(yp_node_type_t node_type)
|
|
1874
1708
|
return "YP_NODE_FORWARDING_PARAMETER_NODE";
|
1875
1709
|
case YP_NODE_FORWARDING_SUPER_NODE:
|
1876
1710
|
return "YP_NODE_FORWARDING_SUPER_NODE";
|
1877
|
-
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_AND_WRITE_NODE:
|
1878
|
-
return "YP_NODE_GLOBAL_VARIABLE_OPERATOR_AND_WRITE_NODE";
|
1879
|
-
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_OR_WRITE_NODE:
|
1880
|
-
return "YP_NODE_GLOBAL_VARIABLE_OPERATOR_OR_WRITE_NODE";
|
1881
|
-
case YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE:
|
1882
|
-
return "YP_NODE_GLOBAL_VARIABLE_OPERATOR_WRITE_NODE";
|
1883
1711
|
case YP_NODE_GLOBAL_VARIABLE_READ_NODE:
|
1884
1712
|
return "YP_NODE_GLOBAL_VARIABLE_READ_NODE";
|
1885
1713
|
case YP_NODE_GLOBAL_VARIABLE_WRITE_NODE:
|
@@ -1894,12 +1722,6 @@ yp_node_type_to_str(yp_node_type_t node_type)
|
|
1894
1722
|
return "YP_NODE_IMAGINARY_NODE";
|
1895
1723
|
case YP_NODE_IN_NODE:
|
1896
1724
|
return "YP_NODE_IN_NODE";
|
1897
|
-
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_AND_WRITE_NODE:
|
1898
|
-
return "YP_NODE_INSTANCE_VARIABLE_OPERATOR_AND_WRITE_NODE";
|
1899
|
-
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_OR_WRITE_NODE:
|
1900
|
-
return "YP_NODE_INSTANCE_VARIABLE_OPERATOR_OR_WRITE_NODE";
|
1901
|
-
case YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE:
|
1902
|
-
return "YP_NODE_INSTANCE_VARIABLE_OPERATOR_WRITE_NODE";
|
1903
1725
|
case YP_NODE_INSTANCE_VARIABLE_READ_NODE:
|
1904
1726
|
return "YP_NODE_INSTANCE_VARIABLE_READ_NODE";
|
1905
1727
|
case YP_NODE_INSTANCE_VARIABLE_WRITE_NODE:
|
@@ -1922,12 +1744,6 @@ yp_node_type_to_str(yp_node_type_t node_type)
|
|
1922
1744
|
return "YP_NODE_KEYWORD_REST_PARAMETER_NODE";
|
1923
1745
|
case YP_NODE_LAMBDA_NODE:
|
1924
1746
|
return "YP_NODE_LAMBDA_NODE";
|
1925
|
-
case YP_NODE_LOCAL_VARIABLE_OPERATOR_AND_WRITE_NODE:
|
1926
|
-
return "YP_NODE_LOCAL_VARIABLE_OPERATOR_AND_WRITE_NODE";
|
1927
|
-
case YP_NODE_LOCAL_VARIABLE_OPERATOR_OR_WRITE_NODE:
|
1928
|
-
return "YP_NODE_LOCAL_VARIABLE_OPERATOR_OR_WRITE_NODE";
|
1929
|
-
case YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE:
|
1930
|
-
return "YP_NODE_LOCAL_VARIABLE_OPERATOR_WRITE_NODE";
|
1931
1747
|
case YP_NODE_LOCAL_VARIABLE_READ_NODE:
|
1932
1748
|
return "YP_NODE_LOCAL_VARIABLE_READ_NODE";
|
1933
1749
|
case YP_NODE_LOCAL_VARIABLE_WRITE_NODE:
|
@@ -1950,10 +1766,14 @@ yp_node_type_to_str(yp_node_type_t node_type)
|
|
1950
1766
|
return "YP_NODE_NO_KEYWORDS_PARAMETER_NODE";
|
1951
1767
|
case YP_NODE_NUMBERED_REFERENCE_READ_NODE:
|
1952
1768
|
return "YP_NODE_NUMBERED_REFERENCE_READ_NODE";
|
1769
|
+
case YP_NODE_OPERATOR_WRITE_NODE:
|
1770
|
+
return "YP_NODE_OPERATOR_WRITE_NODE";
|
1953
1771
|
case YP_NODE_OPTIONAL_PARAMETER_NODE:
|
1954
1772
|
return "YP_NODE_OPTIONAL_PARAMETER_NODE";
|
1955
1773
|
case YP_NODE_OR_NODE:
|
1956
1774
|
return "YP_NODE_OR_NODE";
|
1775
|
+
case YP_NODE_OR_WRITE_NODE:
|
1776
|
+
return "YP_NODE_OR_WRITE_NODE";
|
1957
1777
|
case YP_NODE_PARAMETERS_NODE:
|
1958
1778
|
return "YP_NODE_PARAMETERS_NODE";
|
1959
1779
|
case YP_NODE_PARENTHESES_NODE:
|