@herb-tools/node 0.7.4 → 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.
Files changed (131) hide show
  1. package/binding.gyp +8 -5
  2. package/dist/herb-node.esm.js +6 -6
  3. package/dist/herb-node.esm.js.map +1 -1
  4. package/extension/error_helpers.cpp +67 -9
  5. package/extension/error_helpers.h +4 -2
  6. package/extension/extension_helpers.cpp +20 -31
  7. package/extension/extension_helpers.h +7 -5
  8. package/extension/herb.cpp +10 -42
  9. package/extension/libherb/analyze.c +461 -249
  10. package/extension/libherb/analyze.h +10 -2
  11. package/extension/libherb/analyze_helpers.c +5 -0
  12. package/extension/libherb/analyze_helpers.h +3 -0
  13. package/extension/libherb/analyze_missing_end.c +147 -0
  14. package/extension/libherb/analyze_transform.c +196 -0
  15. package/extension/libherb/analyzed_ruby.c +23 -2
  16. package/extension/libherb/analyzed_ruby.h +4 -2
  17. package/extension/libherb/ast_node.c +14 -17
  18. package/extension/libherb/ast_node.h +4 -4
  19. package/extension/libherb/ast_nodes.c +180 -182
  20. package/extension/libherb/ast_nodes.h +69 -68
  21. package/extension/libherb/ast_pretty_print.c +233 -233
  22. package/extension/libherb/ast_pretty_print.h +3 -3
  23. package/extension/libherb/element_source.c +7 -6
  24. package/extension/libherb/element_source.h +3 -1
  25. package/extension/libherb/errors.c +273 -153
  26. package/extension/libherb/errors.h +43 -27
  27. package/extension/libherb/extract.c +92 -34
  28. package/extension/libherb/extract.h +4 -4
  29. package/extension/libherb/herb.c +37 -49
  30. package/extension/libherb/herb.h +6 -7
  31. package/extension/libherb/html_util.c +34 -96
  32. package/extension/libherb/html_util.h +4 -5
  33. package/extension/libherb/include/analyze.h +10 -2
  34. package/extension/libherb/include/analyze_helpers.h +3 -0
  35. package/extension/libherb/include/analyzed_ruby.h +4 -2
  36. package/extension/libherb/include/ast_node.h +4 -4
  37. package/extension/libherb/include/ast_nodes.h +69 -68
  38. package/extension/libherb/include/ast_pretty_print.h +3 -3
  39. package/extension/libherb/include/element_source.h +3 -1
  40. package/extension/libherb/include/errors.h +43 -27
  41. package/extension/libherb/include/extract.h +4 -4
  42. package/extension/libherb/include/herb.h +6 -7
  43. package/extension/libherb/include/html_util.h +4 -5
  44. package/extension/libherb/include/lexer.h +1 -3
  45. package/extension/libherb/include/lexer_peek_helpers.h +21 -19
  46. package/extension/libherb/include/lexer_struct.h +12 -10
  47. package/extension/libherb/include/location.h +10 -13
  48. package/extension/libherb/include/macros.h +4 -0
  49. package/extension/libherb/include/parser.h +12 -6
  50. package/extension/libherb/include/parser_helpers.h +26 -16
  51. package/extension/libherb/include/position.h +3 -14
  52. package/extension/libherb/include/pretty_print.h +38 -28
  53. package/extension/libherb/include/prism_helpers.h +1 -1
  54. package/extension/libherb/include/range.h +4 -13
  55. package/extension/libherb/include/token.h +5 -11
  56. package/extension/libherb/include/token_struct.h +2 -2
  57. package/extension/libherb/include/utf8.h +3 -2
  58. package/extension/libherb/include/util/hb_arena.h +31 -0
  59. package/extension/libherb/include/util/hb_arena_debug.h +8 -0
  60. package/extension/libherb/include/util/hb_array.h +33 -0
  61. package/extension/libherb/include/util/hb_buffer.h +34 -0
  62. package/extension/libherb/include/util/hb_string.h +29 -0
  63. package/extension/libherb/include/util/hb_system.h +9 -0
  64. package/extension/libherb/include/util.h +3 -14
  65. package/extension/libherb/include/version.h +1 -1
  66. package/extension/libherb/include/visitor.h +1 -1
  67. package/extension/libherb/io.c +7 -4
  68. package/extension/libherb/lexer.c +62 -88
  69. package/extension/libherb/lexer.h +1 -3
  70. package/extension/libherb/lexer_peek_helpers.c +42 -38
  71. package/extension/libherb/lexer_peek_helpers.h +21 -19
  72. package/extension/libherb/lexer_struct.h +12 -10
  73. package/extension/libherb/location.c +9 -37
  74. package/extension/libherb/location.h +10 -13
  75. package/extension/libherb/macros.h +4 -0
  76. package/extension/libherb/main.c +19 -23
  77. package/extension/libherb/parser.c +373 -313
  78. package/extension/libherb/parser.h +12 -6
  79. package/extension/libherb/parser_helpers.c +60 -54
  80. package/extension/libherb/parser_helpers.h +26 -16
  81. package/extension/libherb/parser_match_tags.c +316 -0
  82. package/extension/libherb/position.h +3 -14
  83. package/extension/libherb/pretty_print.c +88 -117
  84. package/extension/libherb/pretty_print.h +38 -28
  85. package/extension/libherb/prism_helpers.c +7 -7
  86. package/extension/libherb/prism_helpers.h +1 -1
  87. package/extension/libherb/range.c +2 -35
  88. package/extension/libherb/range.h +4 -13
  89. package/extension/libherb/token.c +36 -87
  90. package/extension/libherb/token.h +5 -11
  91. package/extension/libherb/token_struct.h +2 -2
  92. package/extension/libherb/utf8.c +4 -4
  93. package/extension/libherb/utf8.h +3 -2
  94. package/extension/libherb/util/hb_arena.c +179 -0
  95. package/extension/libherb/util/hb_arena.h +31 -0
  96. package/extension/libherb/util/hb_arena_debug.c +237 -0
  97. package/extension/libherb/util/hb_arena_debug.h +8 -0
  98. package/extension/libherb/{array.c → util/hb_array.c} +26 -27
  99. package/extension/libherb/util/hb_array.h +33 -0
  100. package/extension/libherb/util/hb_buffer.c +203 -0
  101. package/extension/libherb/util/hb_buffer.h +34 -0
  102. package/extension/libherb/util/hb_string.c +85 -0
  103. package/extension/libherb/util/hb_string.h +29 -0
  104. package/extension/libherb/util/hb_system.c +30 -0
  105. package/extension/libherb/util/hb_system.h +9 -0
  106. package/extension/libherb/util.c +29 -99
  107. package/extension/libherb/util.h +3 -14
  108. package/extension/libherb/version.h +1 -1
  109. package/extension/libherb/visitor.c +55 -55
  110. package/extension/libherb/visitor.h +1 -1
  111. package/extension/nodes.cpp +40 -40
  112. package/extension/nodes.h +2 -2
  113. package/extension/prism/include/prism/ast.h +31 -1
  114. package/extension/prism/include/prism/diagnostic.h +1 -0
  115. package/extension/prism/include/prism/version.h +3 -3
  116. package/extension/prism/src/diagnostic.c +3 -1
  117. package/extension/prism/src/prism.c +130 -71
  118. package/extension/prism/src/util/pm_string.c +6 -8
  119. package/package.json +3 -3
  120. package/extension/libherb/array.h +0 -33
  121. package/extension/libherb/buffer.c +0 -232
  122. package/extension/libherb/buffer.h +0 -39
  123. package/extension/libherb/include/array.h +0 -33
  124. package/extension/libherb/include/buffer.h +0 -39
  125. package/extension/libherb/include/json.h +0 -28
  126. package/extension/libherb/include/memory.h +0 -12
  127. package/extension/libherb/json.c +0 -205
  128. package/extension/libherb/json.h +0 -28
  129. package/extension/libherb/memory.c +0 -53
  130. package/extension/libherb/memory.h +0 -12
  131. package/extension/libherb/position.c +0 -33
@@ -1,5 +1,5 @@
1
1
  // NOTE: This file is generated by the templates/template.rb script and should not
2
- // be modified manually. See /Users/marcoroth/Development/herb-release-0.7.4/templates/javascript/packages/node/extension/nodes.cpp.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.8.0/templates/javascript/packages/node/extension/nodes.cpp.erb
3
3
 
4
4
  #include <node_api.h>
5
5
  #include "error_helpers.h"
@@ -7,15 +7,15 @@
7
7
  #include "nodes.h"
8
8
 
9
9
  extern "C" {
10
- #include "../extension/libherb/include/herb.h"
11
- #include "../extension/libherb/include/token.h"
12
- #include "../extension/libherb/include/array.h"
13
10
  #include "../extension/libherb/include/ast_node.h"
14
11
  #include "../extension/libherb/include/ast_nodes.h"
12
+ #include "../extension/libherb/include/herb.h"
13
+ #include "../extension/libherb/include/token.h"
14
+ #include "../extension/libherb/include/util/hb_array.h"
15
15
  }
16
16
 
17
17
  napi_value NodeFromCStruct(napi_env env, AST_NODE_T* node);
18
- napi_value NodesArrayFromCArray(napi_env env, array_T* array);
18
+ napi_value NodesArrayFromCArray(napi_env env, hb_array_T* array);
19
19
 
20
20
  napi_value document_nodeNodeFromCStruct(napi_env env, AST_DOCUMENT_NODE_T* document_node) {
21
21
  if (!document_node) {
@@ -27,7 +27,7 @@ napi_value document_nodeNodeFromCStruct(napi_env env, AST_DOCUMENT_NODE_T* docum
27
27
  napi_value result;
28
28
  napi_create_object(env, &result);
29
29
 
30
- napi_value type = CreateString(env, ast_node_type_to_string(&document_node->base));
30
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&document_node->base));
31
31
  napi_set_named_property(env, result, "type", type);
32
32
 
33
33
  napi_value location = CreateLocation(env, document_node->base.location);
@@ -52,7 +52,7 @@ napi_value literal_nodeNodeFromCStruct(napi_env env, AST_LITERAL_NODE_T* literal
52
52
  napi_value result;
53
53
  napi_create_object(env, &result);
54
54
 
55
- napi_value type = CreateString(env, ast_node_type_to_string(&literal_node->base));
55
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&literal_node->base));
56
56
  napi_set_named_property(env, result, "type", type);
57
57
 
58
58
  napi_value location = CreateLocation(env, literal_node->base.location);
@@ -77,7 +77,7 @@ napi_value html_open_tag_nodeNodeFromCStruct(napi_env env, AST_HTML_OPEN_TAG_NOD
77
77
  napi_value result;
78
78
  napi_create_object(env, &result);
79
79
 
80
- napi_value type = CreateString(env, ast_node_type_to_string(&html_open_tag_node->base));
80
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&html_open_tag_node->base));
81
81
  napi_set_named_property(env, result, "type", type);
82
82
 
83
83
  napi_value location = CreateLocation(env, html_open_tag_node->base.location);
@@ -115,7 +115,7 @@ napi_value html_close_tag_nodeNodeFromCStruct(napi_env env, AST_HTML_CLOSE_TAG_N
115
115
  napi_value result;
116
116
  napi_create_object(env, &result);
117
117
 
118
- napi_value type = CreateString(env, ast_node_type_to_string(&html_close_tag_node->base));
118
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&html_close_tag_node->base));
119
119
  napi_set_named_property(env, result, "type", type);
120
120
 
121
121
  napi_value location = CreateLocation(env, html_close_tag_node->base.location);
@@ -149,7 +149,7 @@ napi_value html_element_nodeNodeFromCStruct(napi_env env, AST_HTML_ELEMENT_NODE_
149
149
  napi_value result;
150
150
  napi_create_object(env, &result);
151
151
 
152
- napi_value type = CreateString(env, ast_node_type_to_string(&html_element_node->base));
152
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&html_element_node->base));
153
153
  napi_set_named_property(env, result, "type", type);
154
154
 
155
155
  napi_value location = CreateLocation(env, html_element_node->base.location);
@@ -174,7 +174,7 @@ napi_value html_element_nodeNodeFromCStruct(napi_env env, AST_HTML_ELEMENT_NODE_
174
174
  napi_get_boolean(env, html_element_node->is_void, &is_void);
175
175
  napi_set_named_property(env, result, "is_void", is_void);
176
176
 
177
- napi_value source = CreateString(env, element_source_to_string(html_element_node->source));
177
+ napi_value source = CreateStringFromHbString(env, element_source_to_string(html_element_node->source));
178
178
  napi_set_named_property(env, result, "source", source);
179
179
 
180
180
 
@@ -190,7 +190,7 @@ napi_value html_attribute_value_nodeNodeFromCStruct(napi_env env, AST_HTML_ATTRI
190
190
  napi_value result;
191
191
  napi_create_object(env, &result);
192
192
 
193
- napi_value type = CreateString(env, ast_node_type_to_string(&html_attribute_value_node->base));
193
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&html_attribute_value_node->base));
194
194
  napi_set_named_property(env, result, "type", type);
195
195
 
196
196
  napi_value location = CreateLocation(env, html_attribute_value_node->base.location);
@@ -225,7 +225,7 @@ napi_value html_attribute_name_nodeNodeFromCStruct(napi_env env, AST_HTML_ATTRIB
225
225
  napi_value result;
226
226
  napi_create_object(env, &result);
227
227
 
228
- napi_value type = CreateString(env, ast_node_type_to_string(&html_attribute_name_node->base));
228
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&html_attribute_name_node->base));
229
229
  napi_set_named_property(env, result, "type", type);
230
230
 
231
231
  napi_value location = CreateLocation(env, html_attribute_name_node->base.location);
@@ -250,7 +250,7 @@ napi_value html_attribute_nodeNodeFromCStruct(napi_env env, AST_HTML_ATTRIBUTE_N
250
250
  napi_value result;
251
251
  napi_create_object(env, &result);
252
252
 
253
- napi_value type = CreateString(env, ast_node_type_to_string(&html_attribute_node->base));
253
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&html_attribute_node->base));
254
254
  napi_set_named_property(env, result, "type", type);
255
255
 
256
256
  napi_value location = CreateLocation(env, html_attribute_node->base.location);
@@ -281,7 +281,7 @@ napi_value html_text_nodeNodeFromCStruct(napi_env env, AST_HTML_TEXT_NODE_T* htm
281
281
  napi_value result;
282
282
  napi_create_object(env, &result);
283
283
 
284
- napi_value type = CreateString(env, ast_node_type_to_string(&html_text_node->base));
284
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&html_text_node->base));
285
285
  napi_set_named_property(env, result, "type", type);
286
286
 
287
287
  napi_value location = CreateLocation(env, html_text_node->base.location);
@@ -306,7 +306,7 @@ napi_value html_comment_nodeNodeFromCStruct(napi_env env, AST_HTML_COMMENT_NODE_
306
306
  napi_value result;
307
307
  napi_create_object(env, &result);
308
308
 
309
- napi_value type = CreateString(env, ast_node_type_to_string(&html_comment_node->base));
309
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&html_comment_node->base));
310
310
  napi_set_named_property(env, result, "type", type);
311
311
 
312
312
  napi_value location = CreateLocation(env, html_comment_node->base.location);
@@ -337,7 +337,7 @@ napi_value html_doctype_nodeNodeFromCStruct(napi_env env, AST_HTML_DOCTYPE_NODE_
337
337
  napi_value result;
338
338
  napi_create_object(env, &result);
339
339
 
340
- napi_value type = CreateString(env, ast_node_type_to_string(&html_doctype_node->base));
340
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&html_doctype_node->base));
341
341
  napi_set_named_property(env, result, "type", type);
342
342
 
343
343
  napi_value location = CreateLocation(env, html_doctype_node->base.location);
@@ -368,7 +368,7 @@ napi_value xml_declaration_nodeNodeFromCStruct(napi_env env, AST_XML_DECLARATION
368
368
  napi_value result;
369
369
  napi_create_object(env, &result);
370
370
 
371
- napi_value type = CreateString(env, ast_node_type_to_string(&xml_declaration_node->base));
371
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&xml_declaration_node->base));
372
372
  napi_set_named_property(env, result, "type", type);
373
373
 
374
374
  napi_value location = CreateLocation(env, xml_declaration_node->base.location);
@@ -399,7 +399,7 @@ napi_value cdata_nodeNodeFromCStruct(napi_env env, AST_CDATA_NODE_T* cdata_node)
399
399
  napi_value result;
400
400
  napi_create_object(env, &result);
401
401
 
402
- napi_value type = CreateString(env, ast_node_type_to_string(&cdata_node->base));
402
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&cdata_node->base));
403
403
  napi_set_named_property(env, result, "type", type);
404
404
 
405
405
  napi_value location = CreateLocation(env, cdata_node->base.location);
@@ -430,7 +430,7 @@ napi_value whitespace_nodeNodeFromCStruct(napi_env env, AST_WHITESPACE_NODE_T* w
430
430
  napi_value result;
431
431
  napi_create_object(env, &result);
432
432
 
433
- napi_value type = CreateString(env, ast_node_type_to_string(&whitespace_node->base));
433
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&whitespace_node->base));
434
434
  napi_set_named_property(env, result, "type", type);
435
435
 
436
436
  napi_value location = CreateLocation(env, whitespace_node->base.location);
@@ -455,7 +455,7 @@ napi_value erb_content_nodeNodeFromCStruct(napi_env env, AST_ERB_CONTENT_NODE_T*
455
455
  napi_value result;
456
456
  napi_create_object(env, &result);
457
457
 
458
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_content_node->base));
458
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_content_node->base));
459
459
  napi_set_named_property(env, result, "type", type);
460
460
 
461
461
  napi_value location = CreateLocation(env, erb_content_node->base.location);
@@ -498,7 +498,7 @@ napi_value erb_end_nodeNodeFromCStruct(napi_env env, AST_ERB_END_NODE_T* erb_end
498
498
  napi_value result;
499
499
  napi_create_object(env, &result);
500
500
 
501
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_end_node->base));
501
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_end_node->base));
502
502
  napi_set_named_property(env, result, "type", type);
503
503
 
504
504
  napi_value location = CreateLocation(env, erb_end_node->base.location);
@@ -529,7 +529,7 @@ napi_value erb_else_nodeNodeFromCStruct(napi_env env, AST_ERB_ELSE_NODE_T* erb_e
529
529
  napi_value result;
530
530
  napi_create_object(env, &result);
531
531
 
532
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_else_node->base));
532
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_else_node->base));
533
533
  napi_set_named_property(env, result, "type", type);
534
534
 
535
535
  napi_value location = CreateLocation(env, erb_else_node->base.location);
@@ -563,7 +563,7 @@ napi_value erb_if_nodeNodeFromCStruct(napi_env env, AST_ERB_IF_NODE_T* erb_if_no
563
563
  napi_value result;
564
564
  napi_create_object(env, &result);
565
565
 
566
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_if_node->base));
566
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_if_node->base));
567
567
  napi_set_named_property(env, result, "type", type);
568
568
 
569
569
  napi_value location = CreateLocation(env, erb_if_node->base.location);
@@ -603,7 +603,7 @@ napi_value erb_block_nodeNodeFromCStruct(napi_env env, AST_ERB_BLOCK_NODE_T* erb
603
603
  napi_value result;
604
604
  napi_create_object(env, &result);
605
605
 
606
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_block_node->base));
606
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_block_node->base));
607
607
  napi_set_named_property(env, result, "type", type);
608
608
 
609
609
  napi_value location = CreateLocation(env, erb_block_node->base.location);
@@ -640,7 +640,7 @@ napi_value erb_when_nodeNodeFromCStruct(napi_env env, AST_ERB_WHEN_NODE_T* erb_w
640
640
  napi_value result;
641
641
  napi_create_object(env, &result);
642
642
 
643
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_when_node->base));
643
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_when_node->base));
644
644
  napi_set_named_property(env, result, "type", type);
645
645
 
646
646
  napi_value location = CreateLocation(env, erb_when_node->base.location);
@@ -674,7 +674,7 @@ napi_value erb_case_nodeNodeFromCStruct(napi_env env, AST_ERB_CASE_NODE_T* erb_c
674
674
  napi_value result;
675
675
  napi_create_object(env, &result);
676
676
 
677
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_case_node->base));
677
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_case_node->base));
678
678
  napi_set_named_property(env, result, "type", type);
679
679
 
680
680
  napi_value location = CreateLocation(env, erb_case_node->base.location);
@@ -717,7 +717,7 @@ napi_value erb_case_match_nodeNodeFromCStruct(napi_env env, AST_ERB_CASE_MATCH_N
717
717
  napi_value result;
718
718
  napi_create_object(env, &result);
719
719
 
720
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_case_match_node->base));
720
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_case_match_node->base));
721
721
  napi_set_named_property(env, result, "type", type);
722
722
 
723
723
  napi_value location = CreateLocation(env, erb_case_match_node->base.location);
@@ -760,7 +760,7 @@ napi_value erb_while_nodeNodeFromCStruct(napi_env env, AST_ERB_WHILE_NODE_T* erb
760
760
  napi_value result;
761
761
  napi_create_object(env, &result);
762
762
 
763
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_while_node->base));
763
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_while_node->base));
764
764
  napi_set_named_property(env, result, "type", type);
765
765
 
766
766
  napi_value location = CreateLocation(env, erb_while_node->base.location);
@@ -797,7 +797,7 @@ napi_value erb_until_nodeNodeFromCStruct(napi_env env, AST_ERB_UNTIL_NODE_T* erb
797
797
  napi_value result;
798
798
  napi_create_object(env, &result);
799
799
 
800
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_until_node->base));
800
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_until_node->base));
801
801
  napi_set_named_property(env, result, "type", type);
802
802
 
803
803
  napi_value location = CreateLocation(env, erb_until_node->base.location);
@@ -834,7 +834,7 @@ napi_value erb_for_nodeNodeFromCStruct(napi_env env, AST_ERB_FOR_NODE_T* erb_for
834
834
  napi_value result;
835
835
  napi_create_object(env, &result);
836
836
 
837
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_for_node->base));
837
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_for_node->base));
838
838
  napi_set_named_property(env, result, "type", type);
839
839
 
840
840
  napi_value location = CreateLocation(env, erb_for_node->base.location);
@@ -871,7 +871,7 @@ napi_value erb_rescue_nodeNodeFromCStruct(napi_env env, AST_ERB_RESCUE_NODE_T* e
871
871
  napi_value result;
872
872
  napi_create_object(env, &result);
873
873
 
874
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_rescue_node->base));
874
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_rescue_node->base));
875
875
  napi_set_named_property(env, result, "type", type);
876
876
 
877
877
  napi_value location = CreateLocation(env, erb_rescue_node->base.location);
@@ -908,7 +908,7 @@ napi_value erb_ensure_nodeNodeFromCStruct(napi_env env, AST_ERB_ENSURE_NODE_T* e
908
908
  napi_value result;
909
909
  napi_create_object(env, &result);
910
910
 
911
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_ensure_node->base));
911
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_ensure_node->base));
912
912
  napi_set_named_property(env, result, "type", type);
913
913
 
914
914
  napi_value location = CreateLocation(env, erb_ensure_node->base.location);
@@ -942,7 +942,7 @@ napi_value erb_begin_nodeNodeFromCStruct(napi_env env, AST_ERB_BEGIN_NODE_T* erb
942
942
  napi_value result;
943
943
  napi_create_object(env, &result);
944
944
 
945
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_begin_node->base));
945
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_begin_node->base));
946
946
  napi_set_named_property(env, result, "type", type);
947
947
 
948
948
  napi_value location = CreateLocation(env, erb_begin_node->base.location);
@@ -988,7 +988,7 @@ napi_value erb_unless_nodeNodeFromCStruct(napi_env env, AST_ERB_UNLESS_NODE_T* e
988
988
  napi_value result;
989
989
  napi_create_object(env, &result);
990
990
 
991
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_unless_node->base));
991
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_unless_node->base));
992
992
  napi_set_named_property(env, result, "type", type);
993
993
 
994
994
  napi_value location = CreateLocation(env, erb_unless_node->base.location);
@@ -1028,7 +1028,7 @@ napi_value erb_yield_nodeNodeFromCStruct(napi_env env, AST_ERB_YIELD_NODE_T* erb
1028
1028
  napi_value result;
1029
1029
  napi_create_object(env, &result);
1030
1030
 
1031
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_yield_node->base));
1031
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_yield_node->base));
1032
1032
  napi_set_named_property(env, result, "type", type);
1033
1033
 
1034
1034
  napi_value location = CreateLocation(env, erb_yield_node->base.location);
@@ -1059,7 +1059,7 @@ napi_value erb_in_nodeNodeFromCStruct(napi_env env, AST_ERB_IN_NODE_T* erb_in_no
1059
1059
  napi_value result;
1060
1060
  napi_create_object(env, &result);
1061
1061
 
1062
- napi_value type = CreateString(env, ast_node_type_to_string(&erb_in_node->base));
1062
+ napi_value type = CreateStringFromHbString(env, ast_node_type_to_string(&erb_in_node->base));
1063
1063
  napi_set_named_property(env, result, "type", type);
1064
1064
 
1065
1065
  napi_value location = CreateLocation(env, erb_in_node->base.location);
@@ -1084,13 +1084,13 @@ napi_value erb_in_nodeNodeFromCStruct(napi_env env, AST_ERB_IN_NODE_T* erb_in_no
1084
1084
  return result;
1085
1085
  }
1086
1086
 
1087
- napi_value NodesArrayFromCArray(napi_env env, array_T* array) {
1087
+ napi_value NodesArrayFromCArray(napi_env env, hb_array_T* array) {
1088
1088
  napi_value result;
1089
1089
  napi_create_array(env, &result);
1090
1090
 
1091
1091
  if (array) {
1092
- for (size_t i = 0; i < array_size(array); i++) {
1093
- AST_NODE_T* child_node = (AST_NODE_T*) array_get(array, i);
1092
+ for (size_t i = 0; i < hb_array_size(array); i++) {
1093
+ AST_NODE_T* child_node = (AST_NODE_T*) hb_array_get(array, i);
1094
1094
  if (child_node) {
1095
1095
  napi_value js_child = NodeFromCStruct(env, child_node);
1096
1096
  napi_set_element(env, result, i, js_child);
package/extension/nodes.h CHANGED
@@ -1,5 +1,5 @@
1
1
  // NOTE: This file is generated by the templates/template.rb script and should not
2
- // be modified manually. See /Users/marcoroth/Development/herb-release-0.7.4/templates/javascript/packages/node/extension/nodes.h.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.8.0/templates/javascript/packages/node/extension/nodes.h.erb
3
3
 
4
4
  #ifndef HERB_EXTENSION_NODES_H
5
5
  #define HERB_EXTENSION_NODES_H
@@ -11,7 +11,7 @@ extern "C" {
11
11
  }
12
12
 
13
13
  napi_value NodeFromCStruct(napi_env env, AST_NODE_T* node);
14
- napi_value NodesArrayFromCArray(napi_env env, array_T* array);
14
+ napi_value NodesArrayFromCArray(napi_env env, hb_array_T* array);
15
15
 
16
16
  napi_value document_nodeNodeFromCStruct(napi_env env, AST_DOCUMENT_NODE_T* document_node);
17
17
  napi_value literal_nodeNodeFromCStruct(napi_env env, AST_LITERAL_NODE_T* literal_node);
@@ -2638,7 +2638,7 @@ typedef struct pm_case_node {
2638
2638
  * Represents the predicate of the case statement. This can be either `nil` or any [non-void expressions](https://github.com/ruby/prism/blob/main/docs/parsing_rules.md#non-void-expression).
2639
2639
  *
2640
2640
  * case true; when false; end
2641
- * ^^^^
2641
+ * ^^^^
2642
2642
  */
2643
2643
  struct pm_node *predicate;
2644
2644
 
@@ -7990,6 +7990,8 @@ typedef enum pm_arguments_node_flags {
7990
7990
 
7991
7991
  /** if the arguments contain multiple splats */
7992
7992
  PM_ARGUMENTS_NODE_FLAGS_CONTAINS_MULTIPLE_SPLATS = 64,
7993
+
7994
+ PM_ARGUMENTS_NODE_FLAGS_LAST,
7993
7995
  } pm_arguments_node_flags_t;
7994
7996
 
7995
7997
  /**
@@ -7998,6 +8000,8 @@ typedef enum pm_arguments_node_flags {
7998
8000
  typedef enum pm_array_node_flags {
7999
8001
  /** if array contains splat nodes */
8000
8002
  PM_ARRAY_NODE_FLAGS_CONTAINS_SPLAT = 4,
8003
+
8004
+ PM_ARRAY_NODE_FLAGS_LAST,
8001
8005
  } pm_array_node_flags_t;
8002
8006
 
8003
8007
  /**
@@ -8015,6 +8019,8 @@ typedef enum pm_call_node_flags {
8015
8019
 
8016
8020
  /** a call that ignores method visibility */
8017
8021
  PM_CALL_NODE_FLAGS_IGNORE_VISIBILITY = 32,
8022
+
8023
+ PM_CALL_NODE_FLAGS_LAST,
8018
8024
  } pm_call_node_flags_t;
8019
8025
 
8020
8026
  /**
@@ -8026,6 +8032,8 @@ typedef enum pm_encoding_flags {
8026
8032
 
8027
8033
  /** internal bytes forced the encoding to binary */
8028
8034
  PM_ENCODING_FLAGS_FORCED_BINARY_ENCODING = 8,
8035
+
8036
+ PM_ENCODING_FLAGS_LAST,
8029
8037
  } pm_encoding_flags_t;
8030
8038
 
8031
8039
  /**
@@ -8043,6 +8051,8 @@ typedef enum pm_integer_base_flags {
8043
8051
 
8044
8052
  /** 0x prefix */
8045
8053
  PM_INTEGER_BASE_FLAGS_HEXADECIMAL = 32,
8054
+
8055
+ PM_INTEGER_BASE_FLAGS_LAST,
8046
8056
  } pm_integer_base_flags_t;
8047
8057
 
8048
8058
  /**
@@ -8054,6 +8064,8 @@ typedef enum pm_interpolated_string_node_flags {
8054
8064
 
8055
8065
  /** mutable by virtue of a `frozen_string_literal: false` comment or `--disable-frozen-string-literal`; only for adjacent string literals like `'a' 'b'` */
8056
8066
  PM_INTERPOLATED_STRING_NODE_FLAGS_MUTABLE = 8,
8067
+
8068
+ PM_INTERPOLATED_STRING_NODE_FLAGS_LAST,
8057
8069
  } pm_interpolated_string_node_flags_t;
8058
8070
 
8059
8071
  /**
@@ -8062,6 +8074,8 @@ typedef enum pm_interpolated_string_node_flags {
8062
8074
  typedef enum pm_keyword_hash_node_flags {
8063
8075
  /** a keyword hash which only has `AssocNode` elements all with symbol keys, which means the elements can be treated as keyword arguments */
8064
8076
  PM_KEYWORD_HASH_NODE_FLAGS_SYMBOL_KEYS = 4,
8077
+
8078
+ PM_KEYWORD_HASH_NODE_FLAGS_LAST,
8065
8079
  } pm_keyword_hash_node_flags_t;
8066
8080
 
8067
8081
  /**
@@ -8070,6 +8084,8 @@ typedef enum pm_keyword_hash_node_flags {
8070
8084
  typedef enum pm_loop_flags {
8071
8085
  /** a loop after a begin statement, so the body is executed first before the condition */
8072
8086
  PM_LOOP_FLAGS_BEGIN_MODIFIER = 4,
8087
+
8088
+ PM_LOOP_FLAGS_LAST,
8073
8089
  } pm_loop_flags_t;
8074
8090
 
8075
8091
  /**
@@ -8078,6 +8094,8 @@ typedef enum pm_loop_flags {
8078
8094
  typedef enum pm_parameter_flags {
8079
8095
  /** a parameter name that has been repeated in the method signature */
8080
8096
  PM_PARAMETER_FLAGS_REPEATED_PARAMETER = 4,
8097
+
8098
+ PM_PARAMETER_FLAGS_LAST,
8081
8099
  } pm_parameter_flags_t;
8082
8100
 
8083
8101
  /**
@@ -8086,6 +8104,8 @@ typedef enum pm_parameter_flags {
8086
8104
  typedef enum pm_parentheses_node_flags {
8087
8105
  /** parentheses that contain multiple potentially void statements */
8088
8106
  PM_PARENTHESES_NODE_FLAGS_MULTIPLE_STATEMENTS = 4,
8107
+
8108
+ PM_PARENTHESES_NODE_FLAGS_LAST,
8089
8109
  } pm_parentheses_node_flags_t;
8090
8110
 
8091
8111
  /**
@@ -8094,6 +8114,8 @@ typedef enum pm_parentheses_node_flags {
8094
8114
  typedef enum pm_range_flags {
8095
8115
  /** ... operator */
8096
8116
  PM_RANGE_FLAGS_EXCLUDE_END = 4,
8117
+
8118
+ PM_RANGE_FLAGS_LAST,
8097
8119
  } pm_range_flags_t;
8098
8120
 
8099
8121
  /**
@@ -8132,6 +8154,8 @@ typedef enum pm_regular_expression_flags {
8132
8154
 
8133
8155
  /** internal bytes forced the encoding to US-ASCII */
8134
8156
  PM_REGULAR_EXPRESSION_FLAGS_FORCED_US_ASCII_ENCODING = 4096,
8157
+
8158
+ PM_REGULAR_EXPRESSION_FLAGS_LAST,
8135
8159
  } pm_regular_expression_flags_t;
8136
8160
 
8137
8161
  /**
@@ -8146,6 +8170,8 @@ typedef enum pm_shareable_constant_node_flags {
8146
8170
 
8147
8171
  /** constant writes that should be modified with shareable constant value experimental copy */
8148
8172
  PM_SHAREABLE_CONSTANT_NODE_FLAGS_EXPERIMENTAL_COPY = 16,
8173
+
8174
+ PM_SHAREABLE_CONSTANT_NODE_FLAGS_LAST,
8149
8175
  } pm_shareable_constant_node_flags_t;
8150
8176
 
8151
8177
  /**
@@ -8163,6 +8189,8 @@ typedef enum pm_string_flags {
8163
8189
 
8164
8190
  /** mutable by virtue of a `frozen_string_literal: false` comment or `--disable-frozen-string-literal` */
8165
8191
  PM_STRING_FLAGS_MUTABLE = 32,
8192
+
8193
+ PM_STRING_FLAGS_LAST,
8166
8194
  } pm_string_flags_t;
8167
8195
 
8168
8196
  /**
@@ -8177,6 +8205,8 @@ typedef enum pm_symbol_flags {
8177
8205
 
8178
8206
  /** internal bytes forced the encoding to US-ASCII */
8179
8207
  PM_SYMBOL_FLAGS_FORCED_US_ASCII_ENCODING = 16,
8208
+
8209
+ PM_SYMBOL_FLAGS_LAST,
8180
8210
  } pm_symbol_flags_t;
8181
8211
 
8182
8212
  /**
@@ -91,6 +91,7 @@ typedef enum {
91
91
  PM_ERR_CONDITIONAL_WHILE_PREDICATE,
92
92
  PM_ERR_CONSTANT_PATH_COLON_COLON_CONSTANT,
93
93
  PM_ERR_DEF_ENDLESS,
94
+ PM_ERR_DEF_ENDLESS_PARAMETERS,
94
95
  PM_ERR_DEF_ENDLESS_SETTER,
95
96
  PM_ERR_DEF_NAME,
96
97
  PM_ERR_DEF_PARAMS_TERM,
@@ -14,16 +14,16 @@
14
14
  /**
15
15
  * The minor version of the Prism library as an int.
16
16
  */
17
- #define PRISM_VERSION_MINOR 5
17
+ #define PRISM_VERSION_MINOR 6
18
18
 
19
19
  /**
20
20
  * The patch version of the Prism library as an int.
21
21
  */
22
- #define PRISM_VERSION_PATCH 1
22
+ #define PRISM_VERSION_PATCH 0
23
23
 
24
24
  /**
25
25
  * The version of the Prism library as a constant string.
26
26
  */
27
- #define PRISM_VERSION "1.5.1"
27
+ #define PRISM_VERSION "1.6.0"
28
28
 
29
29
  #endif
@@ -10,7 +10,7 @@
10
10
 
11
11
  #include "prism/diagnostic.h"
12
12
 
13
- #define PM_DIAGNOSTIC_ID_MAX 321
13
+ #define PM_DIAGNOSTIC_ID_MAX 322
14
14
 
15
15
  /** This struct holds the data for each diagnostic. */
16
16
  typedef struct {
@@ -154,6 +154,7 @@ static const pm_diagnostic_data_t diagnostic_messages[PM_DIAGNOSTIC_ID_MAX] = {
154
154
  [PM_ERR_CONDITIONAL_WHILE_PREDICATE] = { "expected a predicate expression for the `while` statement", PM_ERROR_LEVEL_SYNTAX },
155
155
  [PM_ERR_CONSTANT_PATH_COLON_COLON_CONSTANT] = { "expected a constant after the `::` operator", PM_ERROR_LEVEL_SYNTAX },
156
156
  [PM_ERR_DEF_ENDLESS] = { "could not parse the endless method body", PM_ERROR_LEVEL_SYNTAX },
157
+ [PM_ERR_DEF_ENDLESS_PARAMETERS] = { "could not parse the endless method parameters", PM_ERROR_LEVEL_SYNTAX },
157
158
  [PM_ERR_DEF_ENDLESS_SETTER] = { "invalid method name; a setter method cannot be defined in an endless method definition", PM_ERROR_LEVEL_SYNTAX },
158
159
  [PM_ERR_DEF_NAME] = { "unexpected %s; expected a method name", PM_ERROR_LEVEL_SYNTAX },
159
160
  [PM_ERR_DEF_PARAMS_TERM] = { "expected a delimiter to close the parameters", PM_ERROR_LEVEL_SYNTAX },
@@ -482,6 +483,7 @@ pm_diagnostic_id_human(pm_diagnostic_id_t diag_id) {
482
483
  case PM_ERR_CONDITIONAL_WHILE_PREDICATE: return "conditional_while_predicate";
483
484
  case PM_ERR_CONSTANT_PATH_COLON_COLON_CONSTANT: return "constant_path_colon_colon_constant";
484
485
  case PM_ERR_DEF_ENDLESS: return "def_endless";
486
+ case PM_ERR_DEF_ENDLESS_PARAMETERS: return "def_endless_parameters";
485
487
  case PM_ERR_DEF_ENDLESS_SETTER: return "def_endless_setter";
486
488
  case PM_ERR_DEF_NAME: return "def_name";
487
489
  case PM_ERR_DEF_PARAMS_TERM: return "def_params_term";