@herb-tools/node 0.8.6 → 0.8.8

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 (47) hide show
  1. package/dist/herb-node.esm.js +1 -1
  2. package/extension/error_helpers.cpp +2 -2
  3. package/extension/error_helpers.h +1 -1
  4. package/extension/extension_helpers.cpp +1 -1
  5. package/extension/libherb/analyze.c +137 -42
  6. package/extension/libherb/analyze_helpers.c +80 -12
  7. package/extension/libherb/analyze_helpers.h +7 -0
  8. package/extension/libherb/analyze_missing_end.c +1 -1
  9. package/extension/libherb/analyze_transform.c +1 -1
  10. package/extension/libherb/analyzed_ruby.c +1 -0
  11. package/extension/libherb/analyzed_ruby.h +1 -0
  12. package/extension/libherb/ast_node.c +1 -1
  13. package/extension/libherb/ast_nodes.c +66 -162
  14. package/extension/libherb/ast_nodes.h +9 -5
  15. package/extension/libherb/ast_pretty_print.c +53 -1
  16. package/extension/libherb/ast_pretty_print.h +1 -1
  17. package/extension/libherb/errors.c +6 -6
  18. package/extension/libherb/errors.h +1 -1
  19. package/extension/libherb/extract.c +2 -2
  20. package/extension/libherb/herb.c +2 -2
  21. package/extension/libherb/include/analyze_helpers.h +7 -0
  22. package/extension/libherb/include/analyzed_ruby.h +1 -0
  23. package/extension/libherb/include/ast_nodes.h +9 -5
  24. package/extension/libherb/include/ast_pretty_print.h +1 -1
  25. package/extension/libherb/include/errors.h +1 -1
  26. package/extension/libherb/include/location.h +4 -0
  27. package/extension/libherb/include/prism_helpers.h +6 -0
  28. package/extension/libherb/include/util/hb_narray.h +1 -0
  29. package/extension/libherb/include/version.h +1 -1
  30. package/extension/libherb/location.c +16 -0
  31. package/extension/libherb/location.h +4 -0
  32. package/extension/libherb/parser.c +9 -9
  33. package/extension/libherb/parser_helpers.c +4 -4
  34. package/extension/libherb/parser_match_tags.c +1 -1
  35. package/extension/libherb/pretty_print.c +6 -6
  36. package/extension/libherb/prism_helpers.c +188 -0
  37. package/extension/libherb/prism_helpers.h +6 -0
  38. package/extension/libherb/util/hb_array.c +1 -0
  39. package/extension/libherb/util/hb_narray.c +6 -0
  40. package/extension/libherb/util/hb_narray.h +1 -0
  41. package/extension/libherb/version.h +1 -1
  42. package/extension/libherb/visitor.c +27 -27
  43. package/extension/nodes.cpp +34 -2
  44. package/extension/nodes.h +1 -1
  45. package/extension/prism/include/prism/version.h +2 -2
  46. package/extension/prism/src/prism.c +48 -27
  47. package/package.json +2 -2
@@ -25,9 +25,15 @@ bool has_rescue_node(analyzed_ruby_T* analyzed);
25
25
  bool has_ensure_node(analyzed_ruby_T* analyzed);
26
26
  bool has_unless_node(analyzed_ruby_T* analyzed);
27
27
  bool has_yield_node(analyzed_ruby_T* analyzed);
28
+ bool has_then_keyword(analyzed_ruby_T* analyzed);
28
29
 
29
30
  bool has_error_message(analyzed_ruby_T* anlayzed, const char* message);
30
31
 
32
+ bool is_do_block(pm_location_t opening_location);
33
+ bool is_brace_block(pm_location_t opening_location);
34
+ bool is_closing_brace(pm_location_t location);
35
+ bool has_valid_block_closing(pm_location_t opening_loc, pm_location_t closing_loc);
36
+
31
37
  bool search_if_nodes(const pm_node_t* node, void* data);
32
38
  bool search_block_nodes(const pm_node_t* node, void* data);
33
39
  bool search_case_nodes(const pm_node_t* node, void* data);
@@ -46,6 +52,7 @@ bool search_in_nodes(analyzed_ruby_T* analyzed);
46
52
  bool search_rescue_nodes(analyzed_ruby_T* analyzed);
47
53
  bool search_ensure_nodes(analyzed_ruby_T* analyzed);
48
54
  bool search_yield_nodes(const pm_node_t* node, void* data);
55
+ bool search_then_keywords(const pm_node_t* node, void* data);
49
56
  bool search_unclosed_control_flows(const pm_node_t* node, void* data);
50
57
 
51
58
  void check_erb_node_for_missing_end(const AST_NODE_T* node);
@@ -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.8.6/templates/src/analyze_missing_end.c.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.8.8/templates/src/analyze_missing_end.c.erb
3
3
 
4
4
  #include "include/analyze_helpers.h"
5
5
  #include "include/errors.h"
@@ -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.8.6/templates/src/analyze_transform.c.erb
2
+ // be modified manually. See /Users/marcoroth/Development/herb-release-0.8.8/templates/src/analyze_transform.c.erb
3
3
 
4
4
  #include "include/analyze.h"
5
5
  #include "include/visitor.h"
@@ -30,6 +30,7 @@ analyzed_ruby_T* init_analyzed_ruby(hb_string_T source) {
30
30
  analyzed->ensure_node_count = 0;
31
31
  analyzed->unless_node_count = 0;
32
32
  analyzed->yield_node_count = 0;
33
+ analyzed->then_keyword_count = 0;
33
34
  analyzed->unclosed_control_flow_count = 0;
34
35
 
35
36
  return analyzed;
@@ -29,6 +29,7 @@ typedef struct ANALYZED_RUBY_STRUCT {
29
29
  int ensure_node_count;
30
30
  int unless_node_count;
31
31
  int yield_node_count;
32
+ int then_keyword_count;
32
33
  int unclosed_control_flow_count;
33
34
  } analyzed_ruby_T;
34
35
 
@@ -43,7 +43,7 @@ ast_node_type_T ast_node_type(const AST_NODE_T* node) {
43
43
  }
44
44
 
45
45
  size_t ast_node_errors_count(const AST_NODE_T* node) {
46
- return node->errors->size;
46
+ return hb_array_size(node->errors);
47
47
  }
48
48
 
49
49
  hb_array_T* ast_node_errors(const AST_NODE_T* node) {