herb 0.8.9-arm-linux-gnu → 0.9.0-arm-linux-gnu

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 (221) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +33 -11
  3. data/README.md +64 -34
  4. data/Rakefile +48 -40
  5. data/config.yml +323 -33
  6. data/ext/herb/error_helpers.c +384 -132
  7. data/ext/herb/error_helpers.h +1 -0
  8. data/ext/herb/extconf.rb +67 -28
  9. data/ext/herb/extension.c +317 -51
  10. data/ext/herb/extension.h +1 -0
  11. data/ext/herb/extension_helpers.c +23 -14
  12. data/ext/herb/extension_helpers.h +2 -2
  13. data/ext/herb/nodes.c +537 -270
  14. data/ext/herb/nodes.h +1 -0
  15. data/herb.gemspec +3 -2
  16. data/lib/herb/3.0/herb.so +0 -0
  17. data/lib/herb/3.1/herb.so +0 -0
  18. data/lib/herb/3.2/herb.so +0 -0
  19. data/lib/herb/3.3/herb.so +0 -0
  20. data/lib/herb/3.4/herb.so +0 -0
  21. data/lib/herb/4.0/herb.so +0 -0
  22. data/lib/herb/ast/helpers.rb +3 -3
  23. data/lib/herb/ast/node.rb +15 -2
  24. data/lib/herb/ast/nodes.rb +1132 -157
  25. data/lib/herb/bootstrap.rb +87 -0
  26. data/lib/herb/cli.rb +341 -31
  27. data/lib/herb/configuration.rb +248 -0
  28. data/lib/herb/defaults.yml +32 -0
  29. data/lib/herb/engine/compiler.rb +83 -14
  30. data/lib/herb/engine/debug_visitor.rb +51 -6
  31. data/lib/herb/engine/error_formatter.rb +13 -9
  32. data/lib/herb/engine/parser_error_overlay.rb +10 -6
  33. data/lib/herb/engine/validator.rb +8 -3
  34. data/lib/herb/engine/validators/nesting_validator.rb +2 -2
  35. data/lib/herb/engine.rb +92 -33
  36. data/lib/herb/errors.rb +582 -87
  37. data/lib/herb/lex_result.rb +1 -0
  38. data/lib/herb/location.rb +7 -3
  39. data/lib/herb/parse_result.rb +12 -2
  40. data/lib/herb/parser_options.rb +57 -0
  41. data/lib/herb/position.rb +1 -0
  42. data/lib/herb/prism_inspect.rb +116 -0
  43. data/lib/herb/project.rb +923 -331
  44. data/lib/herb/range.rb +1 -0
  45. data/lib/herb/token.rb +7 -1
  46. data/lib/herb/version.rb +1 -1
  47. data/lib/herb/visitor.rb +37 -2
  48. data/lib/herb/warnings.rb +6 -1
  49. data/lib/herb.rb +35 -3
  50. data/sig/herb/ast/helpers.rbs +2 -2
  51. data/sig/herb/ast/node.rbs +12 -2
  52. data/sig/herb/ast/nodes.rbs +641 -128
  53. data/sig/herb/bootstrap.rbs +31 -0
  54. data/sig/herb/configuration.rbs +89 -0
  55. data/sig/herb/engine/compiler.rbs +9 -1
  56. data/sig/herb/engine/debug_visitor.rbs +8 -0
  57. data/sig/herb/engine/validator.rbs +5 -1
  58. data/sig/herb/engine.rbs +18 -2
  59. data/sig/herb/errors.rbs +268 -63
  60. data/sig/herb/location.rbs +4 -0
  61. data/sig/herb/parse_result.rbs +4 -2
  62. data/sig/herb/parser_options.rbs +42 -0
  63. data/sig/herb/position.rbs +1 -0
  64. data/sig/herb/prism_inspect.rbs +28 -0
  65. data/sig/herb/range.rbs +1 -0
  66. data/sig/herb/token.rbs +6 -0
  67. data/sig/herb/visitor.rbs +25 -4
  68. data/sig/herb/warnings.rbs +6 -1
  69. data/sig/herb.rbs +14 -0
  70. data/sig/herb_c_extension.rbs +5 -2
  71. data/sig/serialized_ast_errors.rbs +57 -6
  72. data/sig/serialized_ast_nodes.rbs +60 -6
  73. data/src/analyze/action_view/attribute_extraction_helpers.c +290 -0
  74. data/src/analyze/action_view/content_tag.c +70 -0
  75. data/src/analyze/action_view/link_to.c +143 -0
  76. data/src/analyze/action_view/registry.c +60 -0
  77. data/src/analyze/action_view/tag.c +64 -0
  78. data/src/analyze/action_view/tag_helper_node_builders.c +305 -0
  79. data/src/analyze/action_view/tag_helpers.c +748 -0
  80. data/src/analyze/action_view/turbo_frame_tag.c +88 -0
  81. data/src/analyze/analyze.c +882 -0
  82. data/src/{analyzed_ruby.c → analyze/analyzed_ruby.c} +13 -11
  83. data/src/analyze/builders.c +343 -0
  84. data/src/analyze/conditional_elements.c +594 -0
  85. data/src/analyze/conditional_open_tags.c +640 -0
  86. data/src/analyze/control_type.c +250 -0
  87. data/src/{analyze_helpers.c → analyze/helpers.c} +79 -31
  88. data/src/analyze/invalid_structures.c +193 -0
  89. data/src/{analyze_missing_end.c → analyze/missing_end.c} +33 -22
  90. data/src/analyze/parse_errors.c +84 -0
  91. data/src/analyze/prism_annotate.c +397 -0
  92. data/src/{analyze_transform.c → analyze/transform.c} +17 -3
  93. data/src/ast_node.c +17 -7
  94. data/src/ast_nodes.c +662 -387
  95. data/src/ast_pretty_print.c +190 -6
  96. data/src/errors.c +1099 -506
  97. data/src/extract.c +148 -49
  98. data/src/herb.c +52 -34
  99. data/src/html_util.c +241 -12
  100. data/src/include/analyze/action_view/attribute_extraction_helpers.h +36 -0
  101. data/src/include/analyze/action_view/tag_helper_handler.h +41 -0
  102. data/src/include/analyze/action_view/tag_helper_node_builders.h +70 -0
  103. data/src/include/analyze/action_view/tag_helpers.h +38 -0
  104. data/src/include/{analyze.h → analyze/analyze.h} +14 -4
  105. data/src/include/{analyzed_ruby.h → analyze/analyzed_ruby.h} +3 -3
  106. data/src/include/analyze/builders.h +27 -0
  107. data/src/include/analyze/conditional_elements.h +9 -0
  108. data/src/include/analyze/conditional_open_tags.h +9 -0
  109. data/src/include/analyze/control_type.h +14 -0
  110. data/src/include/{analyze_helpers.h → analyze/helpers.h} +22 -17
  111. data/src/include/analyze/invalid_structures.h +11 -0
  112. data/src/include/analyze/prism_annotate.h +16 -0
  113. data/src/include/ast_node.h +11 -5
  114. data/src/include/ast_nodes.h +117 -38
  115. data/src/include/ast_pretty_print.h +5 -0
  116. data/src/include/element_source.h +3 -8
  117. data/src/include/errors.h +154 -53
  118. data/src/include/extract.h +21 -5
  119. data/src/include/herb.h +18 -6
  120. data/src/include/herb_prism_node.h +13 -0
  121. data/src/include/html_util.h +7 -2
  122. data/src/include/io.h +3 -1
  123. data/src/include/lex_helpers.h +29 -0
  124. data/src/include/lexer.h +1 -1
  125. data/src/include/lexer_peek_helpers.h +87 -13
  126. data/src/include/lexer_struct.h +2 -0
  127. data/src/include/location.h +2 -1
  128. data/src/include/parser.h +27 -2
  129. data/src/include/parser_helpers.h +19 -3
  130. data/src/include/pretty_print.h +10 -5
  131. data/src/include/prism_context.h +45 -0
  132. data/src/include/prism_helpers.h +10 -7
  133. data/src/include/prism_serialized.h +12 -0
  134. data/src/include/token.h +16 -4
  135. data/src/include/token_struct.h +10 -3
  136. data/src/include/utf8.h +2 -1
  137. data/src/include/util/hb_allocator.h +78 -0
  138. data/src/include/util/hb_arena.h +6 -1
  139. data/src/include/util/hb_arena_debug.h +12 -1
  140. data/src/include/util/hb_array.h +7 -3
  141. data/src/include/util/hb_buffer.h +6 -4
  142. data/src/include/util/hb_foreach.h +79 -0
  143. data/src/include/util/hb_narray.h +8 -4
  144. data/src/include/util/hb_string.h +56 -9
  145. data/src/include/util/string.h +11 -0
  146. data/src/include/util.h +6 -3
  147. data/src/include/version.h +1 -1
  148. data/src/io.c +3 -2
  149. data/src/lexer.c +42 -30
  150. data/src/lexer_peek_helpers.c +12 -74
  151. data/src/location.c +2 -2
  152. data/src/main.c +79 -66
  153. data/src/parser.c +784 -247
  154. data/src/parser_helpers.c +110 -23
  155. data/src/parser_match_tags.c +109 -48
  156. data/src/pretty_print.c +29 -24
  157. data/src/prism_helpers.c +30 -27
  158. data/src/ruby_parser.c +2 -0
  159. data/src/token.c +151 -66
  160. data/src/token_matchers.c +0 -1
  161. data/src/utf8.c +7 -6
  162. data/src/util/hb_allocator.c +341 -0
  163. data/src/util/hb_arena.c +81 -56
  164. data/src/util/hb_arena_debug.c +32 -17
  165. data/src/util/hb_array.c +30 -15
  166. data/src/util/hb_buffer.c +17 -21
  167. data/src/util/hb_narray.c +22 -7
  168. data/src/util/hb_string.c +49 -35
  169. data/src/util.c +21 -11
  170. data/src/visitor.c +47 -0
  171. data/templates/ext/herb/error_helpers.c.erb +24 -11
  172. data/templates/ext/herb/error_helpers.h.erb +1 -0
  173. data/templates/ext/herb/nodes.c.erb +50 -16
  174. data/templates/ext/herb/nodes.h.erb +1 -0
  175. data/templates/java/error_helpers.c.erb +1 -1
  176. data/templates/java/nodes.c.erb +30 -8
  177. data/templates/java/org/herb/ast/Errors.java.erb +24 -1
  178. data/templates/java/org/herb/ast/Nodes.java.erb +80 -21
  179. data/templates/javascript/packages/core/src/errors.ts.erb +16 -3
  180. data/templates/javascript/packages/core/src/node-type-guards.ts.erb +3 -1
  181. data/templates/javascript/packages/core/src/nodes.ts.erb +109 -32
  182. data/templates/javascript/packages/node/extension/error_helpers.cpp.erb +13 -4
  183. data/templates/javascript/packages/node/extension/nodes.cpp.erb +43 -4
  184. data/templates/lib/herb/ast/nodes.rb.erb +88 -31
  185. data/templates/lib/herb/errors.rb.erb +15 -3
  186. data/templates/lib/herb/visitor.rb.erb +2 -2
  187. data/templates/rust/src/ast/nodes.rs.erb +97 -44
  188. data/templates/rust/src/errors.rs.erb +2 -1
  189. data/templates/rust/src/nodes.rs.erb +167 -15
  190. data/templates/rust/src/union_types.rs.erb +60 -0
  191. data/templates/rust/src/visitor.rs.erb +81 -0
  192. data/templates/src/{analyze_missing_end.c.erb → analyze/missing_end.c.erb} +9 -6
  193. data/templates/src/{analyze_transform.c.erb → analyze/transform.c.erb} +2 -2
  194. data/templates/src/ast_nodes.c.erb +34 -26
  195. data/templates/src/ast_pretty_print.c.erb +24 -5
  196. data/templates/src/errors.c.erb +60 -54
  197. data/templates/src/include/ast_nodes.h.erb +6 -2
  198. data/templates/src/include/ast_pretty_print.h.erb +5 -0
  199. data/templates/src/include/errors.h.erb +15 -11
  200. data/templates/src/include/util/hb_foreach.h.erb +20 -0
  201. data/templates/src/parser_match_tags.c.erb +10 -4
  202. data/templates/src/visitor.c.erb +2 -2
  203. data/templates/template.rb +204 -29
  204. data/templates/wasm/error_helpers.cpp.erb +9 -5
  205. data/templates/wasm/nodes.cpp.erb +41 -4
  206. data/vendor/prism/config.yml +4 -4
  207. data/vendor/prism/include/prism/ast.h +4 -4
  208. data/vendor/prism/include/prism/version.h +2 -2
  209. data/vendor/prism/src/prism.c +1 -1
  210. data/vendor/prism/templates/java/org/prism/Loader.java.erb +1 -1
  211. data/vendor/prism/templates/javascript/src/deserialize.js.erb +1 -1
  212. data/vendor/prism/templates/lib/prism/node.rb.erb +23 -15
  213. data/vendor/prism/templates/lib/prism/serialize.rb.erb +1 -1
  214. data/vendor/prism/templates/rbi/prism/node.rbi.erb +3 -0
  215. data/vendor/prism/templates/sig/prism/node.rbs.erb +3 -0
  216. data/vendor/prism/templates/sig/prism.rbs.erb +9 -10
  217. metadata +58 -16
  218. data/src/analyze.c +0 -1594
  219. data/src/element_source.c +0 -12
  220. data/src/include/util/hb_system.h +0 -9
  221. data/src/util/hb_system.c +0 -30
@@ -12438,7 +12438,7 @@ expect1_opening(pm_parser_t *parser, pm_token_type_t type, pm_diagnostic_id_t di
12438
12438
 
12439
12439
  pm_parser_err(parser, opening->start, opening->end, diag_id);
12440
12440
 
12441
- parser->previous.start = opening->end;
12441
+ parser->previous.start = parser->previous.end;
12442
12442
  parser->previous.type = PM_TOKEN_MISSING;
12443
12443
  }
12444
12444
 
@@ -101,7 +101,7 @@ public class Loader {
101
101
  expect((byte) 'M', "incorrect prism header");
102
102
 
103
103
  expect((byte) 1, "prism major version does not match");
104
- expect((byte) 8, "prism minor version does not match");
104
+ expect((byte) 9, "prism minor version does not match");
105
105
  expect((byte) 0, "prism patch version does not match");
106
106
 
107
107
  expect((byte) 1, "Loader.java requires no location fields in the serialized output");
@@ -1,7 +1,7 @@
1
1
  import * as nodes from "./nodes.js";
2
2
 
3
3
  const MAJOR_VERSION = 1;
4
- const MINOR_VERSION = 8;
4
+ const MINOR_VERSION = 9;
5
5
  const PATCH_VERSION = 0;
6
6
 
7
7
  // The DataView getFloat64 function takes an optional second argument that
@@ -183,25 +183,13 @@ module Prism
183
183
  def tunnel(line, column)
184
184
  queue = [self] #: Array[Prism::node]
185
185
  result = [] #: Array[Prism::node]
186
+ offset = source.byte_offset(line, column)
186
187
 
187
188
  while (node = queue.shift)
188
189
  result << node
189
190
 
190
191
  node.each_child_node do |child_node|
191
- child_location = child_node.location
192
-
193
- start_line = child_location.start_line
194
- end_line = child_location.end_line
195
-
196
- if start_line == end_line
197
- if line == start_line && column >= child_location.start_column && column < child_location.end_column
198
- queue << child_node
199
- break
200
- end
201
- elsif (line == start_line && column >= child_location.start_column) || (line == end_line && column < child_location.end_column)
202
- queue << child_node
203
- break
204
- elsif line > start_line && line < end_line
192
+ if child_node.start_offset <= offset && offset < child_node.end_offset
205
193
  queue << child_node
206
194
  break
207
195
  end
@@ -212,7 +200,7 @@ module Prism
212
200
  end
213
201
 
214
202
  # Returns the first node that matches the given block when visited in a
215
- # depth-first search. This is useful for finding a node that matches a
203
+ # breadth-first search. This is useful for finding a node that matches a
216
204
  # particular condition.
217
205
  #
218
206
  # node.breadth_first_search { |node| node.node_id == node_id }
@@ -227,6 +215,26 @@ module Prism
227
215
 
228
216
  nil
229
217
  end
218
+ alias find breadth_first_search
219
+
220
+ # Returns all of the nodes that match the given block when visited in a
221
+ # breadth-first search. This is useful for finding all nodes that match a
222
+ # particular condition.
223
+ #
224
+ # node.breadth_first_search_all { |node| node.is_a?(Prism::CallNode) }
225
+ #
226
+ def breadth_first_search_all(&block)
227
+ queue = [self] #: Array[Prism::node]
228
+ results = [] #: Array[Prism::node]
229
+
230
+ while (node = queue.shift)
231
+ results << node if yield node
232
+ queue.concat(node.compact_child_nodes)
233
+ end
234
+
235
+ results
236
+ end
237
+ alias find_all breadth_first_search_all
230
238
 
231
239
  # Returns a list of the fields that exist for this node class. Fields
232
240
  # describe the structure of the node. This kind of reflection is useful for
@@ -10,7 +10,7 @@ module Prism
10
10
 
11
11
  # The minor version of prism that we are expecting to find in the serialized
12
12
  # strings.
13
- MINOR_VERSION = 8
13
+ MINOR_VERSION = 9
14
14
 
15
15
  # The patch version of prism that we are expecting to find in the serialized
16
16
  # strings.
@@ -49,6 +49,9 @@ class Prism::Node
49
49
  sig { params(block: T.proc.params(node: Prism::Node).returns(T::Boolean)).returns(T.nilable(Prism::Node)) }
50
50
  def breadth_first_search(&block); end
51
51
 
52
+ sig { params(block: T.proc.params(node: Prism::Node).returns(T::Boolean)).returns(T::Array[Prism::Node]) }
53
+ def breadth_first_search_all(&block); end
54
+
52
55
  sig { abstract.params(visitor: Prism::Visitor).returns(T.untyped) }
53
56
  def accept(visitor); end
54
57
 
@@ -25,6 +25,9 @@ module Prism
25
25
  def to_dot: () -> String
26
26
  def tunnel: (Integer line, Integer column) -> Array[Prism::node]
27
27
  def breadth_first_search: () { (Prism::node) -> bool } -> Prism::node?
28
+ alias find breadth_first_search
29
+ def breadth_first_search_all: () { (Prism::node) -> bool } -> Array[Prism::node]
30
+ alias find_all breadth_first_search_all
28
31
  def newline!: (Array[untyped]) -> void
29
32
 
30
33
  def save: (_Repository repository) -> void
@@ -23,15 +23,16 @@ module Prism
23
23
 
24
24
  def self.<%= method %>: (
25
25
  String source,
26
+ ?command_line: String,
26
27
  ?encoding: Encoding | false,
27
28
  ?filepath: String,
28
29
  ?freeze: bool,
29
30
  ?frozen_string_literal: bool,
30
31
  ?line: Integer,
31
32
  ?main_script: bool,
32
- ?offset: Integer,
33
+ ?partial_script: bool,
33
34
  ?scopes: Array[Array[Symbol]],
34
- ?verbose: bool
35
+ ?version: String
35
36
  ) -> <%= return_type %>
36
37
  <%- end -%>
37
38
 
@@ -41,10 +42,6 @@ module Prism
41
42
  ?bool freeze
42
43
  ) -> ParseResult
43
44
 
44
- def self.lex_ripper: (
45
- String source
46
- ) -> Array[[[Integer, Integer], Symbol, String, untyped]]
47
-
48
45
  # Methods taking a path to a Ruby file:
49
46
  <%-
50
47
  {
@@ -61,14 +58,15 @@ module Prism
61
58
 
62
59
  def self.<%= method %>: (
63
60
  String filepath,
61
+ ?command_line: String,
64
62
  ?encoding: Encoding | false,
65
63
  ?freeze: bool,
66
64
  ?frozen_string_literal: bool,
67
65
  ?line: Integer,
68
66
  ?main_script: bool,
69
- ?offset: Integer,
67
+ ?partial_script: bool,
70
68
  ?scopes: Array[Array[Symbol]],
71
- ?verbose: bool
69
+ ?version: String
72
70
  ) -> <%= return_type %>
73
71
  <%- end -%>
74
72
 
@@ -78,15 +76,16 @@ module Prism
78
76
 
79
77
  def self.parse_stream: (
80
78
  _Stream stream,
79
+ ?command_line: String,
81
80
  ?encoding: Encoding | false,
82
81
  ?filepath: String,
83
82
  ?freeze: bool,
84
83
  ?frozen_string_literal: bool,
85
84
  ?line: Integer,
86
85
  ?main_script: bool,
87
- ?offset: Integer,
86
+ ?partial_script: bool,
88
87
  ?scopes: Array[Array[Symbol]],
89
- ?verbose: bool
88
+ ?version: String
90
89
  ) -> ParseResult
91
90
 
92
91
  def self.scope: (?locals: Array[Symbol], ?forwarding: Array[Symbol]) -> Scope
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: herb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.9
4
+ version: 0.9.0
5
5
  platform: arm-linux-gnu
6
6
  authors:
7
7
  - Marco Roth
@@ -9,7 +9,7 @@ bindir: exe
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies: []
12
- description: Powerful and seamless HTML-aware ERB parsing and tooling.
12
+ description: A collection of powerful and seamless developer tools for HTML+ERB templates.
13
13
  email:
14
14
  - marco.roth@intergga.ch
15
15
  executables:
@@ -44,8 +44,11 @@ files:
44
44
  - lib/herb/ast/helpers.rb
45
45
  - lib/herb/ast/node.rb
46
46
  - lib/herb/ast/nodes.rb
47
+ - lib/herb/bootstrap.rb
47
48
  - lib/herb/cli.rb
48
49
  - lib/herb/colors.rb
50
+ - lib/herb/configuration.rb
51
+ - lib/herb/defaults.yml
49
52
  - lib/herb/engine.rb
50
53
  - lib/herb/engine/compiler.rb
51
54
  - lib/herb/engine/debug_visitor.rb
@@ -61,7 +64,9 @@ files:
61
64
  - lib/herb/lex_result.rb
62
65
  - lib/herb/location.rb
63
66
  - lib/herb/parse_result.rb
67
+ - lib/herb/parser_options.rb
64
68
  - lib/herb/position.rb
69
+ - lib/herb/prism_inspect.rb
65
70
  - lib/herb/project.rb
66
71
  - lib/herb/range.rb
67
72
  - lib/herb/result.rb
@@ -75,7 +80,9 @@ files:
75
80
  - sig/herb/ast/helpers.rbs
76
81
  - sig/herb/ast/node.rbs
77
82
  - sig/herb/ast/nodes.rbs
83
+ - sig/herb/bootstrap.rbs
78
84
  - sig/herb/colors.rbs
85
+ - sig/herb/configuration.rbs
79
86
  - sig/herb/engine.rbs
80
87
  - sig/herb/engine/compiler.rbs
81
88
  - sig/herb/engine/debug.rbs
@@ -92,7 +99,9 @@ files:
92
99
  - sig/herb/lex_result.rbs
93
100
  - sig/herb/location.rbs
94
101
  - sig/herb/parse_result.rbs
102
+ - sig/herb/parser_options.rbs
95
103
  - sig/herb/position.rbs
104
+ - sig/herb/prism_inspect.rbs
96
105
  - sig/herb/range.rbs
97
106
  - sig/herb/result.rbs
98
107
  - sig/herb/token.rbs
@@ -104,22 +113,46 @@ files:
104
113
  - sig/serialized.rbs
105
114
  - sig/serialized_ast_errors.rbs
106
115
  - sig/serialized_ast_nodes.rbs
107
- - src/analyze.c
108
- - src/analyze_helpers.c
109
- - src/analyze_missing_end.c
110
- - src/analyze_transform.c
111
- - src/analyzed_ruby.c
116
+ - src/analyze/action_view/attribute_extraction_helpers.c
117
+ - src/analyze/action_view/content_tag.c
118
+ - src/analyze/action_view/link_to.c
119
+ - src/analyze/action_view/registry.c
120
+ - src/analyze/action_view/tag.c
121
+ - src/analyze/action_view/tag_helper_node_builders.c
122
+ - src/analyze/action_view/tag_helpers.c
123
+ - src/analyze/action_view/turbo_frame_tag.c
124
+ - src/analyze/analyze.c
125
+ - src/analyze/analyzed_ruby.c
126
+ - src/analyze/builders.c
127
+ - src/analyze/conditional_elements.c
128
+ - src/analyze/conditional_open_tags.c
129
+ - src/analyze/control_type.c
130
+ - src/analyze/helpers.c
131
+ - src/analyze/invalid_structures.c
132
+ - src/analyze/missing_end.c
133
+ - src/analyze/parse_errors.c
134
+ - src/analyze/prism_annotate.c
135
+ - src/analyze/transform.c
112
136
  - src/ast_node.c
113
137
  - src/ast_nodes.c
114
138
  - src/ast_pretty_print.c
115
- - src/element_source.c
116
139
  - src/errors.c
117
140
  - src/extract.c
118
141
  - src/herb.c
119
142
  - src/html_util.c
120
- - src/include/analyze.h
121
- - src/include/analyze_helpers.h
122
- - src/include/analyzed_ruby.h
143
+ - src/include/analyze/action_view/attribute_extraction_helpers.h
144
+ - src/include/analyze/action_view/tag_helper_handler.h
145
+ - src/include/analyze/action_view/tag_helper_node_builders.h
146
+ - src/include/analyze/action_view/tag_helpers.h
147
+ - src/include/analyze/analyze.h
148
+ - src/include/analyze/analyzed_ruby.h
149
+ - src/include/analyze/builders.h
150
+ - src/include/analyze/conditional_elements.h
151
+ - src/include/analyze/conditional_open_tags.h
152
+ - src/include/analyze/control_type.h
153
+ - src/include/analyze/helpers.h
154
+ - src/include/analyze/invalid_structures.h
155
+ - src/include/analyze/prism_annotate.h
123
156
  - src/include/ast_node.h
124
157
  - src/include/ast_nodes.h
125
158
  - src/include/ast_pretty_print.h
@@ -127,8 +160,10 @@ files:
127
160
  - src/include/errors.h
128
161
  - src/include/extract.h
129
162
  - src/include/herb.h
163
+ - src/include/herb_prism_node.h
130
164
  - src/include/html_util.h
131
165
  - src/include/io.h
166
+ - src/include/lex_helpers.h
132
167
  - src/include/lexer.h
133
168
  - src/include/lexer_peek_helpers.h
134
169
  - src/include/lexer_struct.h
@@ -138,7 +173,9 @@ files:
138
173
  - src/include/parser_helpers.h
139
174
  - src/include/position.h
140
175
  - src/include/pretty_print.h
176
+ - src/include/prism_context.h
141
177
  - src/include/prism_helpers.h
178
+ - src/include/prism_serialized.h
142
179
  - src/include/range.h
143
180
  - src/include/ruby_parser.h
144
181
  - src/include/token.h
@@ -146,13 +183,15 @@ files:
146
183
  - src/include/token_struct.h
147
184
  - src/include/utf8.h
148
185
  - src/include/util.h
186
+ - src/include/util/hb_allocator.h
149
187
  - src/include/util/hb_arena.h
150
188
  - src/include/util/hb_arena_debug.h
151
189
  - src/include/util/hb_array.h
152
190
  - src/include/util/hb_buffer.h
191
+ - src/include/util/hb_foreach.h
153
192
  - src/include/util/hb_narray.h
154
193
  - src/include/util/hb_string.h
155
- - src/include/util/hb_system.h
194
+ - src/include/util/string.h
156
195
  - src/include/version.h
157
196
  - src/include/visitor.h
158
197
  - src/io.c
@@ -172,13 +211,13 @@ files:
172
211
  - src/token_matchers.c
173
212
  - src/utf8.c
174
213
  - src/util.c
214
+ - src/util/hb_allocator.c
175
215
  - src/util/hb_arena.c
176
216
  - src/util/hb_arena_debug.c
177
217
  - src/util/hb_array.c
178
218
  - src/util/hb_buffer.c
179
219
  - src/util/hb_narray.c
180
220
  - src/util/hb_string.c
181
- - src/util/hb_system.c
182
221
  - src/visitor.c
183
222
  - templates/ext/herb/error_helpers.c.erb
184
223
  - templates/ext/herb/error_helpers.h.erb
@@ -206,16 +245,19 @@ files:
206
245
  - templates/rust/src/ast/nodes.rs.erb
207
246
  - templates/rust/src/errors.rs.erb
208
247
  - templates/rust/src/nodes.rs.erb
248
+ - templates/rust/src/union_types.rs.erb
249
+ - templates/rust/src/visitor.rs.erb
209
250
  - templates/sig/serialized_ast_errors.rbs.erb
210
251
  - templates/sig/serialized_ast_nodes.rbs.erb
211
- - templates/src/analyze_missing_end.c.erb
212
- - templates/src/analyze_transform.c.erb
252
+ - templates/src/analyze/missing_end.c.erb
253
+ - templates/src/analyze/transform.c.erb
213
254
  - templates/src/ast_nodes.c.erb
214
255
  - templates/src/ast_pretty_print.c.erb
215
256
  - templates/src/errors.c.erb
216
257
  - templates/src/include/ast_nodes.h.erb
217
258
  - templates/src/include/ast_pretty_print.h.erb
218
259
  - templates/src/include/errors.h.erb
260
+ - templates/src/include/util/hb_foreach.h.erb
219
261
  - templates/src/parser_match_tags.c.erb
220
262
  - templates/src/visitor.c.erb
221
263
  - templates/template.rb
@@ -333,5 +375,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
333
375
  requirements: []
334
376
  rubygems_version: 4.0.3
335
377
  specification_version: 4
336
- summary: Powerful and seamless HTML-aware ERB parsing and tooling.
378
+ summary: The modern HTML+ERB Toolchain
337
379
  test_files: []