herb 0.9.4 → 0.9.5
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/config.yml +57 -21
- data/ext/herb/nodes.c +93 -55
- data/lib/herb/ast/nodes.rb +212 -78
- data/lib/herb/engine/compiler.rb +4 -6
- data/lib/herb/version.rb +1 -1
- data/lib/herb/visitor.rb +8 -2
- data/sig/herb/ast/nodes.rbs +85 -34
- data/sig/herb/visitor.rbs +5 -2
- data/sig/serialized_ast_nodes.rbs +20 -9
- data/src/analyze/action_view/javascript_tag.c +38 -0
- data/src/analyze/action_view/tag_helper_node_builders.c +23 -2
- data/src/analyze/action_view/tag_helpers.c +53 -14
- data/src/analyze/analyze.c +21 -0
- data/src/analyze/analyze_helpers.c +406 -0
- data/src/analyze/builders.c +1 -0
- data/src/analyze/missing_end.c +16 -0
- data/src/analyze/parse_errors.c +3 -2
- data/src/analyze/render_nodes.c +231 -35
- data/src/analyze/strict_locals.c +22 -338
- data/src/analyze/transform.c +23 -2
- data/src/ast/ast_nodes.c +114 -57
- data/src/ast/ast_pretty_print.c +109 -25
- data/src/include/analyze/action_view/tag_helper_handler.h +3 -0
- data/src/include/analyze/action_view/tag_helper_node_builders.h +7 -0
- data/src/include/analyze/helpers.h +18 -0
- data/src/include/ast/ast_nodes.h +27 -13
- data/src/include/version.h +1 -1
- data/src/parser/match_tags.c +37 -6
- data/src/parser.c +8 -0
- data/src/visitor.c +50 -7
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 66ed20e875ccdc0463b1725a0f31c677bc937a1b0bd6a4fc84818d2a931084e4
|
|
4
|
+
data.tar.gz: 760085da8a546311e48998363501a705df7cd90cf28b16ca7624b0725bfc28b7
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 88cee87519fef1a297eb582fc87150de05d50a2b83cca919b077de5bf8ce45eff36ed3dc28e3fcd7faa745b2e13ad490a43d4a84a032de5d33135c7503731b30
|
|
7
|
+
data.tar.gz: b66b20f7fa764e3798073f6e5516ed6f8cfecfdbec80e3a9bdc9a9c0f7927945e3b91790ada745ab7276a1f19a7673f30a7b14c960f97587138784791f78a44c
|
data/config.yml
CHANGED
|
@@ -886,6 +886,11 @@ nodes:
|
|
|
886
886
|
type: array
|
|
887
887
|
kind: Node
|
|
888
888
|
|
|
889
|
+
- name: block_arguments
|
|
890
|
+
type: array
|
|
891
|
+
kind:
|
|
892
|
+
- RubyParameterNode
|
|
893
|
+
|
|
889
894
|
- name: rescue_clause
|
|
890
895
|
type: node
|
|
891
896
|
kind: ERBRescueNode
|
|
@@ -1184,23 +1189,8 @@ nodes:
|
|
|
1184
1189
|
type: node
|
|
1185
1190
|
kind: RubyLiteralNode
|
|
1186
1191
|
|
|
1187
|
-
- name:
|
|
1192
|
+
- name: RubyRenderKeywordsNode
|
|
1188
1193
|
fields:
|
|
1189
|
-
- name: tag_opening
|
|
1190
|
-
type: token
|
|
1191
|
-
|
|
1192
|
-
- name: content
|
|
1193
|
-
type: token
|
|
1194
|
-
|
|
1195
|
-
- name: tag_closing
|
|
1196
|
-
type: token
|
|
1197
|
-
|
|
1198
|
-
- name: analyzed_ruby
|
|
1199
|
-
type: analyzed_ruby
|
|
1200
|
-
|
|
1201
|
-
- name: prism_node
|
|
1202
|
-
type: prism_node
|
|
1203
|
-
|
|
1204
1194
|
- name: partial
|
|
1205
1195
|
type: token
|
|
1206
1196
|
|
|
@@ -1257,7 +1247,53 @@ nodes:
|
|
|
1257
1247
|
kind:
|
|
1258
1248
|
- RubyRenderLocalNode
|
|
1259
1249
|
|
|
1260
|
-
- name:
|
|
1250
|
+
- name: ERBRenderNode
|
|
1251
|
+
fields:
|
|
1252
|
+
- name: tag_opening
|
|
1253
|
+
type: token
|
|
1254
|
+
|
|
1255
|
+
- name: content
|
|
1256
|
+
type: token
|
|
1257
|
+
|
|
1258
|
+
- name: tag_closing
|
|
1259
|
+
type: token
|
|
1260
|
+
|
|
1261
|
+
- name: analyzed_ruby
|
|
1262
|
+
type: analyzed_ruby
|
|
1263
|
+
|
|
1264
|
+
- name: prism_node
|
|
1265
|
+
type: prism_node
|
|
1266
|
+
|
|
1267
|
+
- name: keywords
|
|
1268
|
+
type: node
|
|
1269
|
+
kind: RubyRenderKeywordsNode
|
|
1270
|
+
|
|
1271
|
+
- name: body
|
|
1272
|
+
type: array
|
|
1273
|
+
kind: Node
|
|
1274
|
+
|
|
1275
|
+
- name: block_arguments
|
|
1276
|
+
type: array
|
|
1277
|
+
kind:
|
|
1278
|
+
- RubyParameterNode
|
|
1279
|
+
|
|
1280
|
+
- name: rescue_clause
|
|
1281
|
+
type: node
|
|
1282
|
+
kind: ERBRescueNode
|
|
1283
|
+
|
|
1284
|
+
- name: else_clause
|
|
1285
|
+
type: node
|
|
1286
|
+
kind: ERBElseNode
|
|
1287
|
+
|
|
1288
|
+
- name: ensure_clause
|
|
1289
|
+
type: node
|
|
1290
|
+
kind: ERBEnsureNode
|
|
1291
|
+
|
|
1292
|
+
- name: end_node
|
|
1293
|
+
type: node
|
|
1294
|
+
kind: ERBEndNode
|
|
1295
|
+
|
|
1296
|
+
- name: RubyParameterNode
|
|
1261
1297
|
fields:
|
|
1262
1298
|
- name: name
|
|
1263
1299
|
type: token
|
|
@@ -1266,10 +1302,10 @@ nodes:
|
|
|
1266
1302
|
type: node
|
|
1267
1303
|
kind: RubyLiteralNode
|
|
1268
1304
|
|
|
1269
|
-
- name:
|
|
1270
|
-
type:
|
|
1305
|
+
- name: kind
|
|
1306
|
+
type: string
|
|
1271
1307
|
|
|
1272
|
-
- name:
|
|
1308
|
+
- name: required
|
|
1273
1309
|
type: boolean
|
|
1274
1310
|
|
|
1275
1311
|
- name: ERBStrictLocalsNode
|
|
@@ -1292,7 +1328,7 @@ nodes:
|
|
|
1292
1328
|
- name: locals
|
|
1293
1329
|
type: array
|
|
1294
1330
|
kind:
|
|
1295
|
-
-
|
|
1331
|
+
- RubyParameterNode
|
|
1296
1332
|
|
|
1297
1333
|
- name: ERBYieldNode
|
|
1298
1334
|
fields:
|
data/ext/herb/nodes.c
CHANGED
|
@@ -54,8 +54,9 @@ static VALUE cERBEnsureNode;
|
|
|
54
54
|
static VALUE cERBBeginNode;
|
|
55
55
|
static VALUE cERBUnlessNode;
|
|
56
56
|
static VALUE cRubyRenderLocalNode;
|
|
57
|
+
static VALUE cRubyRenderKeywordsNode;
|
|
57
58
|
static VALUE cERBRenderNode;
|
|
58
|
-
static VALUE
|
|
59
|
+
static VALUE cRubyParameterNode;
|
|
59
60
|
static VALUE cERBStrictLocalsNode;
|
|
60
61
|
static VALUE cERBYieldNode;
|
|
61
62
|
static VALUE cERBInNode;
|
|
@@ -100,8 +101,9 @@ void rb_init_node_classes(void) {
|
|
|
100
101
|
cERBBeginNode = rb_define_class_under(mAST, "ERBBeginNode", cNode);
|
|
101
102
|
cERBUnlessNode = rb_define_class_under(mAST, "ERBUnlessNode", cNode);
|
|
102
103
|
cRubyRenderLocalNode = rb_define_class_under(mAST, "RubyRenderLocalNode", cNode);
|
|
104
|
+
cRubyRenderKeywordsNode = rb_define_class_under(mAST, "RubyRenderKeywordsNode", cNode);
|
|
103
105
|
cERBRenderNode = rb_define_class_under(mAST, "ERBRenderNode", cNode);
|
|
104
|
-
|
|
106
|
+
cRubyParameterNode = rb_define_class_under(mAST, "RubyParameterNode", cNode);
|
|
105
107
|
cERBStrictLocalsNode = rb_define_class_under(mAST, "ERBStrictLocalsNode", cNode);
|
|
106
108
|
cERBYieldNode = rb_define_class_under(mAST, "ERBYieldNode", cNode);
|
|
107
109
|
cERBInNode = rb_define_class_under(mAST, "ERBInNode", cNode);
|
|
@@ -826,12 +828,13 @@ static VALUE rb_erb_block_node_from_c_struct(AST_ERB_BLOCK_NODE_T* erb_block_nod
|
|
|
826
828
|
erb_block_node_prism_node = Qnil;
|
|
827
829
|
}
|
|
828
830
|
VALUE erb_block_node_body = rb_nodes_array_from_c_array(erb_block_node->body);
|
|
831
|
+
VALUE erb_block_node_block_arguments = rb_nodes_array_from_c_array(erb_block_node->block_arguments);
|
|
829
832
|
VALUE erb_block_node_rescue_clause = rb_node_from_c_struct((AST_NODE_T*) erb_block_node->rescue_clause);
|
|
830
833
|
VALUE erb_block_node_else_clause = rb_node_from_c_struct((AST_NODE_T*) erb_block_node->else_clause);
|
|
831
834
|
VALUE erb_block_node_ensure_clause = rb_node_from_c_struct((AST_NODE_T*) erb_block_node->ensure_clause);
|
|
832
835
|
VALUE erb_block_node_end_node = rb_node_from_c_struct((AST_NODE_T*) erb_block_node->end_node);
|
|
833
836
|
|
|
834
|
-
VALUE args[
|
|
837
|
+
VALUE args[13] = {
|
|
835
838
|
type,
|
|
836
839
|
location,
|
|
837
840
|
errors,
|
|
@@ -840,13 +843,14 @@ static VALUE rb_erb_block_node_from_c_struct(AST_ERB_BLOCK_NODE_T* erb_block_nod
|
|
|
840
843
|
erb_block_node_tag_closing,
|
|
841
844
|
erb_block_node_prism_node,
|
|
842
845
|
erb_block_node_body,
|
|
846
|
+
erb_block_node_block_arguments,
|
|
843
847
|
erb_block_node_rescue_clause,
|
|
844
848
|
erb_block_node_else_clause,
|
|
845
849
|
erb_block_node_ensure_clause,
|
|
846
850
|
erb_block_node_end_node
|
|
847
851
|
};
|
|
848
852
|
|
|
849
|
-
return rb_class_new_instance(
|
|
853
|
+
return rb_class_new_instance(13, args, cERBBlockNode);
|
|
850
854
|
};
|
|
851
855
|
|
|
852
856
|
static VALUE rb_erb_when_node_from_c_struct(AST_ERB_WHEN_NODE_T* erb_when_node) {
|
|
@@ -1297,6 +1301,61 @@ static VALUE rb_ruby_render_local_node_from_c_struct(AST_RUBY_RENDER_LOCAL_NODE_
|
|
|
1297
1301
|
return rb_class_new_instance(5, args, cRubyRenderLocalNode);
|
|
1298
1302
|
};
|
|
1299
1303
|
|
|
1304
|
+
static VALUE rb_ruby_render_keywords_node_from_c_struct(AST_RUBY_RENDER_KEYWORDS_NODE_T* ruby_render_keywords_node) {
|
|
1305
|
+
if (ruby_render_keywords_node == NULL) { return Qnil; }
|
|
1306
|
+
|
|
1307
|
+
AST_NODE_T* node = &ruby_render_keywords_node->base;
|
|
1308
|
+
|
|
1309
|
+
VALUE type = rb_string_from_hb_string(ast_node_type_to_string(node));
|
|
1310
|
+
VALUE location = rb_location_from_c_struct(node->location);
|
|
1311
|
+
VALUE errors = rb_errors_array_from_c_array(node->errors);
|
|
1312
|
+
|
|
1313
|
+
VALUE ruby_render_keywords_node_partial = rb_token_from_c_struct(ruby_render_keywords_node->partial);
|
|
1314
|
+
VALUE ruby_render_keywords_node_template_path = rb_token_from_c_struct(ruby_render_keywords_node->template_path);
|
|
1315
|
+
VALUE ruby_render_keywords_node_layout = rb_token_from_c_struct(ruby_render_keywords_node->layout);
|
|
1316
|
+
VALUE ruby_render_keywords_node_file = rb_token_from_c_struct(ruby_render_keywords_node->file);
|
|
1317
|
+
VALUE ruby_render_keywords_node_inline_template = rb_token_from_c_struct(ruby_render_keywords_node->inline_template);
|
|
1318
|
+
VALUE ruby_render_keywords_node_body = rb_token_from_c_struct(ruby_render_keywords_node->body);
|
|
1319
|
+
VALUE ruby_render_keywords_node_plain = rb_token_from_c_struct(ruby_render_keywords_node->plain);
|
|
1320
|
+
VALUE ruby_render_keywords_node_html = rb_token_from_c_struct(ruby_render_keywords_node->html);
|
|
1321
|
+
VALUE ruby_render_keywords_node_renderable = rb_token_from_c_struct(ruby_render_keywords_node->renderable);
|
|
1322
|
+
VALUE ruby_render_keywords_node_collection = rb_token_from_c_struct(ruby_render_keywords_node->collection);
|
|
1323
|
+
VALUE ruby_render_keywords_node_object = rb_token_from_c_struct(ruby_render_keywords_node->object);
|
|
1324
|
+
VALUE ruby_render_keywords_node_as_name = rb_token_from_c_struct(ruby_render_keywords_node->as_name);
|
|
1325
|
+
VALUE ruby_render_keywords_node_spacer_template = rb_token_from_c_struct(ruby_render_keywords_node->spacer_template);
|
|
1326
|
+
VALUE ruby_render_keywords_node_formats = rb_token_from_c_struct(ruby_render_keywords_node->formats);
|
|
1327
|
+
VALUE ruby_render_keywords_node_variants = rb_token_from_c_struct(ruby_render_keywords_node->variants);
|
|
1328
|
+
VALUE ruby_render_keywords_node_handlers = rb_token_from_c_struct(ruby_render_keywords_node->handlers);
|
|
1329
|
+
VALUE ruby_render_keywords_node_content_type = rb_token_from_c_struct(ruby_render_keywords_node->content_type);
|
|
1330
|
+
VALUE ruby_render_keywords_node_locals = rb_nodes_array_from_c_array(ruby_render_keywords_node->locals);
|
|
1331
|
+
|
|
1332
|
+
VALUE args[21] = {
|
|
1333
|
+
type,
|
|
1334
|
+
location,
|
|
1335
|
+
errors,
|
|
1336
|
+
ruby_render_keywords_node_partial,
|
|
1337
|
+
ruby_render_keywords_node_template_path,
|
|
1338
|
+
ruby_render_keywords_node_layout,
|
|
1339
|
+
ruby_render_keywords_node_file,
|
|
1340
|
+
ruby_render_keywords_node_inline_template,
|
|
1341
|
+
ruby_render_keywords_node_body,
|
|
1342
|
+
ruby_render_keywords_node_plain,
|
|
1343
|
+
ruby_render_keywords_node_html,
|
|
1344
|
+
ruby_render_keywords_node_renderable,
|
|
1345
|
+
ruby_render_keywords_node_collection,
|
|
1346
|
+
ruby_render_keywords_node_object,
|
|
1347
|
+
ruby_render_keywords_node_as_name,
|
|
1348
|
+
ruby_render_keywords_node_spacer_template,
|
|
1349
|
+
ruby_render_keywords_node_formats,
|
|
1350
|
+
ruby_render_keywords_node_variants,
|
|
1351
|
+
ruby_render_keywords_node_handlers,
|
|
1352
|
+
ruby_render_keywords_node_content_type,
|
|
1353
|
+
ruby_render_keywords_node_locals
|
|
1354
|
+
};
|
|
1355
|
+
|
|
1356
|
+
return rb_class_new_instance(21, args, cRubyRenderKeywordsNode);
|
|
1357
|
+
};
|
|
1358
|
+
|
|
1300
1359
|
static VALUE rb_erb_render_node_from_c_struct(AST_ERB_RENDER_NODE_T* erb_render_node) {
|
|
1301
1360
|
if (erb_render_node == NULL) { return Qnil; }
|
|
1302
1361
|
|
|
@@ -1327,26 +1386,15 @@ static VALUE rb_erb_render_node_from_c_struct(AST_ERB_RENDER_NODE_T* erb_render_
|
|
|
1327
1386
|
} else {
|
|
1328
1387
|
erb_render_node_prism_node = Qnil;
|
|
1329
1388
|
}
|
|
1330
|
-
VALUE
|
|
1331
|
-
VALUE
|
|
1332
|
-
VALUE
|
|
1333
|
-
VALUE
|
|
1334
|
-
VALUE
|
|
1335
|
-
VALUE
|
|
1336
|
-
VALUE
|
|
1337
|
-
|
|
1338
|
-
VALUE
|
|
1339
|
-
VALUE erb_render_node_collection = rb_token_from_c_struct(erb_render_node->collection);
|
|
1340
|
-
VALUE erb_render_node_object = rb_token_from_c_struct(erb_render_node->object);
|
|
1341
|
-
VALUE erb_render_node_as_name = rb_token_from_c_struct(erb_render_node->as_name);
|
|
1342
|
-
VALUE erb_render_node_spacer_template = rb_token_from_c_struct(erb_render_node->spacer_template);
|
|
1343
|
-
VALUE erb_render_node_formats = rb_token_from_c_struct(erb_render_node->formats);
|
|
1344
|
-
VALUE erb_render_node_variants = rb_token_from_c_struct(erb_render_node->variants);
|
|
1345
|
-
VALUE erb_render_node_handlers = rb_token_from_c_struct(erb_render_node->handlers);
|
|
1346
|
-
VALUE erb_render_node_content_type = rb_token_from_c_struct(erb_render_node->content_type);
|
|
1347
|
-
VALUE erb_render_node_locals = rb_nodes_array_from_c_array(erb_render_node->locals);
|
|
1348
|
-
|
|
1349
|
-
VALUE args[26] = {
|
|
1389
|
+
VALUE erb_render_node_keywords = rb_node_from_c_struct((AST_NODE_T*) erb_render_node->keywords);
|
|
1390
|
+
VALUE erb_render_node_body = rb_nodes_array_from_c_array(erb_render_node->body);
|
|
1391
|
+
VALUE erb_render_node_block_arguments = rb_nodes_array_from_c_array(erb_render_node->block_arguments);
|
|
1392
|
+
VALUE erb_render_node_rescue_clause = rb_node_from_c_struct((AST_NODE_T*) erb_render_node->rescue_clause);
|
|
1393
|
+
VALUE erb_render_node_else_clause = rb_node_from_c_struct((AST_NODE_T*) erb_render_node->else_clause);
|
|
1394
|
+
VALUE erb_render_node_ensure_clause = rb_node_from_c_struct((AST_NODE_T*) erb_render_node->ensure_clause);
|
|
1395
|
+
VALUE erb_render_node_end_node = rb_node_from_c_struct((AST_NODE_T*) erb_render_node->end_node);
|
|
1396
|
+
|
|
1397
|
+
VALUE args[15] = {
|
|
1350
1398
|
type,
|
|
1351
1399
|
location,
|
|
1352
1400
|
errors,
|
|
@@ -1355,54 +1403,43 @@ static VALUE rb_erb_render_node_from_c_struct(AST_ERB_RENDER_NODE_T* erb_render_
|
|
|
1355
1403
|
erb_render_node_tag_closing,
|
|
1356
1404
|
erb_render_node_analyzed_ruby,
|
|
1357
1405
|
erb_render_node_prism_node,
|
|
1358
|
-
|
|
1359
|
-
erb_render_node_template_path,
|
|
1360
|
-
erb_render_node_layout,
|
|
1361
|
-
erb_render_node_file,
|
|
1362
|
-
erb_render_node_inline_template,
|
|
1406
|
+
erb_render_node_keywords,
|
|
1363
1407
|
erb_render_node_body,
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
erb_render_node_as_name,
|
|
1370
|
-
erb_render_node_spacer_template,
|
|
1371
|
-
erb_render_node_formats,
|
|
1372
|
-
erb_render_node_variants,
|
|
1373
|
-
erb_render_node_handlers,
|
|
1374
|
-
erb_render_node_content_type,
|
|
1375
|
-
erb_render_node_locals
|
|
1408
|
+
erb_render_node_block_arguments,
|
|
1409
|
+
erb_render_node_rescue_clause,
|
|
1410
|
+
erb_render_node_else_clause,
|
|
1411
|
+
erb_render_node_ensure_clause,
|
|
1412
|
+
erb_render_node_end_node
|
|
1376
1413
|
};
|
|
1377
1414
|
|
|
1378
|
-
return rb_class_new_instance(
|
|
1415
|
+
return rb_class_new_instance(15, args, cERBRenderNode);
|
|
1379
1416
|
};
|
|
1380
1417
|
|
|
1381
|
-
static VALUE
|
|
1382
|
-
if (
|
|
1418
|
+
static VALUE rb_ruby_parameter_node_from_c_struct(AST_RUBY_PARAMETER_NODE_T* ruby_parameter_node) {
|
|
1419
|
+
if (ruby_parameter_node == NULL) { return Qnil; }
|
|
1383
1420
|
|
|
1384
|
-
AST_NODE_T* node = &
|
|
1421
|
+
AST_NODE_T* node = &ruby_parameter_node->base;
|
|
1385
1422
|
|
|
1386
1423
|
VALUE type = rb_string_from_hb_string(ast_node_type_to_string(node));
|
|
1387
1424
|
VALUE location = rb_location_from_c_struct(node->location);
|
|
1388
1425
|
VALUE errors = rb_errors_array_from_c_array(node->errors);
|
|
1389
1426
|
|
|
1390
|
-
VALUE
|
|
1391
|
-
VALUE
|
|
1392
|
-
VALUE
|
|
1393
|
-
VALUE
|
|
1427
|
+
VALUE ruby_parameter_node_name = rb_token_from_c_struct(ruby_parameter_node->name);
|
|
1428
|
+
VALUE ruby_parameter_node_default_value = rb_node_from_c_struct((AST_NODE_T*) ruby_parameter_node->default_value);
|
|
1429
|
+
VALUE ruby_parameter_node_kind = rb_string_from_hb_string(ruby_parameter_node->kind);
|
|
1430
|
+
VALUE ruby_parameter_node_required = (ruby_parameter_node->required) ? Qtrue : Qfalse;
|
|
1394
1431
|
|
|
1395
1432
|
VALUE args[7] = {
|
|
1396
1433
|
type,
|
|
1397
1434
|
location,
|
|
1398
1435
|
errors,
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1436
|
+
ruby_parameter_node_name,
|
|
1437
|
+
ruby_parameter_node_default_value,
|
|
1438
|
+
ruby_parameter_node_kind,
|
|
1439
|
+
ruby_parameter_node_required
|
|
1403
1440
|
};
|
|
1404
1441
|
|
|
1405
|
-
return rb_class_new_instance(7, args,
|
|
1442
|
+
return rb_class_new_instance(7, args, cRubyParameterNode);
|
|
1406
1443
|
};
|
|
1407
1444
|
|
|
1408
1445
|
static VALUE rb_erb_strict_locals_node_from_c_struct(AST_ERB_STRICT_LOCALS_NODE_T* erb_strict_locals_node) {
|
|
@@ -1548,8 +1585,9 @@ VALUE rb_node_from_c_struct(AST_NODE_T* node) {
|
|
|
1548
1585
|
case AST_ERB_BEGIN_NODE: return rb_erb_begin_node_from_c_struct((AST_ERB_BEGIN_NODE_T*) node); break;
|
|
1549
1586
|
case AST_ERB_UNLESS_NODE: return rb_erb_unless_node_from_c_struct((AST_ERB_UNLESS_NODE_T*) node); break;
|
|
1550
1587
|
case AST_RUBY_RENDER_LOCAL_NODE: return rb_ruby_render_local_node_from_c_struct((AST_RUBY_RENDER_LOCAL_NODE_T*) node); break;
|
|
1588
|
+
case AST_RUBY_RENDER_KEYWORDS_NODE: return rb_ruby_render_keywords_node_from_c_struct((AST_RUBY_RENDER_KEYWORDS_NODE_T*) node); break;
|
|
1551
1589
|
case AST_ERB_RENDER_NODE: return rb_erb_render_node_from_c_struct((AST_ERB_RENDER_NODE_T*) node); break;
|
|
1552
|
-
case
|
|
1590
|
+
case AST_RUBY_PARAMETER_NODE: return rb_ruby_parameter_node_from_c_struct((AST_RUBY_PARAMETER_NODE_T*) node); break;
|
|
1553
1591
|
case AST_ERB_STRICT_LOCALS_NODE: return rb_erb_strict_locals_node_from_c_struct((AST_ERB_STRICT_LOCALS_NODE_T*) node); break;
|
|
1554
1592
|
case AST_ERB_YIELD_NODE: return rb_erb_yield_node_from_c_struct((AST_ERB_YIELD_NODE_T*) node); break;
|
|
1555
1593
|
case AST_ERB_IN_NODE: return rb_erb_in_node_from_c_struct((AST_ERB_IN_NODE_T*) node); break;
|