yarp 0.7.0 → 0.8.0
Sign up to get free protection for your applications and to get access to all the features.
- 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:
|