herb 0.8.10-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 (209) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +11 -3
  3. data/README.md +64 -34
  4. data/Rakefile +48 -40
  5. data/config.yml +317 -34
  6. data/ext/herb/error_helpers.c +367 -140
  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 +78 -11
  30. data/lib/herb/engine/debug_visitor.rb +13 -3
  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 +82 -35
  36. data/lib/herb/errors.rb +563 -88
  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 +2 -0
  57. data/sig/herb/engine/validator.rbs +5 -1
  58. data/sig/herb/engine.rbs +17 -3
  59. data/sig/herb/errors.rbs +258 -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 +54 -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} +48 -23
  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 +1076 -520
  97. data/src/extract.c +145 -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} +4 -2
  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 +148 -55
  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.h +6 -3
  146. data/src/include/version.h +1 -1
  147. data/src/io.c +3 -2
  148. data/src/lexer.c +42 -30
  149. data/src/lexer_peek_helpers.c +12 -74
  150. data/src/location.c +2 -2
  151. data/src/main.c +53 -28
  152. data/src/parser.c +783 -247
  153. data/src/parser_helpers.c +110 -23
  154. data/src/parser_match_tags.c +109 -48
  155. data/src/pretty_print.c +29 -24
  156. data/src/prism_helpers.c +30 -27
  157. data/src/ruby_parser.c +2 -0
  158. data/src/token.c +151 -66
  159. data/src/token_matchers.c +0 -1
  160. data/src/utf8.c +7 -6
  161. data/src/util/hb_allocator.c +341 -0
  162. data/src/util/hb_arena.c +81 -56
  163. data/src/util/hb_arena_debug.c +32 -17
  164. data/src/util/hb_array.c +30 -15
  165. data/src/util/hb_buffer.c +17 -21
  166. data/src/util/hb_narray.c +22 -7
  167. data/src/util/hb_string.c +49 -35
  168. data/src/util.c +21 -11
  169. data/src/visitor.c +47 -0
  170. data/templates/ext/herb/error_helpers.c.erb +24 -11
  171. data/templates/ext/herb/error_helpers.h.erb +1 -0
  172. data/templates/ext/herb/nodes.c.erb +50 -16
  173. data/templates/ext/herb/nodes.h.erb +1 -0
  174. data/templates/java/error_helpers.c.erb +1 -1
  175. data/templates/java/nodes.c.erb +30 -8
  176. data/templates/java/org/herb/ast/Errors.java.erb +24 -1
  177. data/templates/java/org/herb/ast/Nodes.java.erb +80 -21
  178. data/templates/javascript/packages/core/src/errors.ts.erb +16 -3
  179. data/templates/javascript/packages/core/src/node-type-guards.ts.erb +3 -1
  180. data/templates/javascript/packages/core/src/nodes.ts.erb +109 -32
  181. data/templates/javascript/packages/node/extension/error_helpers.cpp.erb +13 -4
  182. data/templates/javascript/packages/node/extension/nodes.cpp.erb +43 -4
  183. data/templates/lib/herb/ast/nodes.rb.erb +88 -31
  184. data/templates/lib/herb/errors.rb.erb +15 -3
  185. data/templates/lib/herb/visitor.rb.erb +2 -2
  186. data/templates/rust/src/ast/nodes.rs.erb +97 -44
  187. data/templates/rust/src/errors.rs.erb +2 -1
  188. data/templates/rust/src/nodes.rs.erb +167 -15
  189. data/templates/rust/src/union_types.rs.erb +60 -0
  190. data/templates/rust/src/visitor.rs.erb +81 -0
  191. data/templates/src/{analyze_missing_end.c.erb → analyze/missing_end.c.erb} +9 -6
  192. data/templates/src/{analyze_transform.c.erb → analyze/transform.c.erb} +2 -2
  193. data/templates/src/ast_nodes.c.erb +34 -26
  194. data/templates/src/ast_pretty_print.c.erb +24 -5
  195. data/templates/src/errors.c.erb +60 -54
  196. data/templates/src/include/ast_nodes.h.erb +6 -2
  197. data/templates/src/include/ast_pretty_print.h.erb +5 -0
  198. data/templates/src/include/errors.h.erb +15 -11
  199. data/templates/src/include/util/hb_foreach.h.erb +20 -0
  200. data/templates/src/parser_match_tags.c.erb +10 -4
  201. data/templates/src/visitor.c.erb +2 -2
  202. data/templates/template.rb +204 -29
  203. data/templates/wasm/error_helpers.cpp.erb +9 -5
  204. data/templates/wasm/nodes.cpp.erb +41 -4
  205. metadata +57 -16
  206. data/src/analyze.c +0 -1608
  207. data/src/element_source.c +0 -12
  208. data/src/include/util/hb_system.h +0 -9
  209. data/src/util/hb_system.c +0 -30
@@ -2,13 +2,25 @@
2
2
 
3
3
  module Herb
4
4
  module AST
5
+ # : type serialized_document_node = {
6
+ # | children: Array[Herb::AST::Node],
7
+ # | prism_context: nil,
8
+ # | prism_node: String?,
9
+ # | }
5
10
  class DocumentNode < Node
6
11
  include Colors
7
12
 
8
13
  attr_reader children: Array[Herb::AST::Node]
9
14
 
10
- # : (String, Location, Array[Herb::Errors::Error], Array[Herb::AST::Node]) -> void
11
- def initialize: (String, Location, Array[Herb::Errors::Error], Array[Herb::AST::Node]) -> void
15
+ attr_reader prism_context: nil
16
+
17
+ attr_reader prism_node: String?
18
+
19
+ # : (String, Location, Array[Herb::Errors::Error], Array[Herb::AST::Node], nil, String) -> void
20
+ def initialize: (String, Location, Array[Herb::Errors::Error], Array[Herb::AST::Node], nil, String) -> void
21
+
22
+ # : () -> Prism::node?
23
+ def deserialized_prism_node: () -> Prism::node?
12
24
 
13
25
  # : () -> serialized_document_node
14
26
  def to_hash: () -> serialized_document_node
@@ -29,10 +41,13 @@ module Herb
29
41
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
30
42
  end
31
43
 
44
+ # : type serialized_literal_node = {
45
+ # | content: String?,
46
+ # | }
32
47
  class LiteralNode < Node
33
48
  include Colors
34
49
 
35
- attr_reader content: String
50
+ attr_reader content: String?
36
51
 
37
52
  # : (String, Location, Array[Herb::Errors::Error], String) -> void
38
53
  def initialize: (String, Location, Array[Herb::Errors::Error], String) -> void
@@ -56,14 +71,21 @@ module Herb
56
71
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
57
72
  end
58
73
 
74
+ # : type serialized_html_open_tag_node = {
75
+ # | tag_opening: Herb::Token?,
76
+ # | tag_name: Herb::Token?,
77
+ # | tag_closing: Herb::Token?,
78
+ # | children: Array[Herb::AST::Node],
79
+ # | is_void: bool,
80
+ # | }
59
81
  class HTMLOpenTagNode < Node
60
82
  include Colors
61
83
 
62
- attr_reader tag_opening: Herb::Token
84
+ attr_reader tag_opening: Herb::Token?
63
85
 
64
- attr_reader tag_name: Herb::Token
86
+ attr_reader tag_name: Herb::Token?
65
87
 
66
- attr_reader tag_closing: Herb::Token
88
+ attr_reader tag_closing: Herb::Token?
67
89
 
68
90
  attr_reader children: Array[Herb::AST::Node]
69
91
 
@@ -91,19 +113,61 @@ module Herb
91
113
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
92
114
  end
93
115
 
116
+ # : type serialized_html_conditional_open_tag_node = {
117
+ # | conditional: (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?,
118
+ # | tag_name: Herb::Token?,
119
+ # | is_void: bool,
120
+ # | }
121
+ class HTMLConditionalOpenTagNode < Node
122
+ include Colors
123
+
124
+ attr_reader conditional: (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?
125
+
126
+ attr_reader tag_name: Herb::Token?
127
+
128
+ attr_reader is_void: bool
129
+
130
+ # : (String, Location, Array[Herb::Errors::Error], (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode), Herb::Token, bool) -> void
131
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode, Herb::Token, bool) -> void
132
+
133
+ # : () -> serialized_html_conditional_open_tag_node
134
+ def to_hash: () -> serialized_html_conditional_open_tag_node
135
+
136
+ # : (Visitor) -> void
137
+ def accept: (Visitor) -> void
138
+
139
+ # : () -> Array[Herb::AST::Node?]
140
+ def child_nodes: () -> Array[Herb::AST::Node?]
141
+
142
+ # : () -> Array[Herb::AST::Node]
143
+ def compact_child_nodes: () -> Array[Herb::AST::Node]
144
+
145
+ # : () -> String
146
+ def inspect: () -> String
147
+
148
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
149
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
150
+ end
151
+
152
+ # : type serialized_html_close_tag_node = {
153
+ # | tag_opening: Herb::Token?,
154
+ # | tag_name: Herb::Token?,
155
+ # | children: Array[Herb::AST::WhitespaceNode]?,
156
+ # | tag_closing: Herb::Token?,
157
+ # | }
94
158
  class HTMLCloseTagNode < Node
95
159
  include Colors
96
160
 
97
- attr_reader tag_opening: Herb::Token
161
+ attr_reader tag_opening: Herb::Token?
98
162
 
99
- attr_reader tag_name: Herb::Token
163
+ attr_reader tag_name: Herb::Token?
100
164
 
101
- attr_reader children: Array[Herb::AST::Node]
165
+ attr_reader children: Array[Herb::AST::WhitespaceNode]?
102
166
 
103
- attr_reader tag_closing: Herb::Token
167
+ attr_reader tag_closing: Herb::Token?
104
168
 
105
- # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::Token) -> void
106
- def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::Token) -> void
169
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Array[Herb::AST::WhitespaceNode], Herb::Token) -> void
170
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Array[Herb::AST::WhitespaceNode], Herb::Token) -> void
107
171
 
108
172
  # : () -> serialized_html_close_tag_node
109
173
  def to_hash: () -> serialized_html_close_tag_node
@@ -124,23 +188,91 @@ module Herb
124
188
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
125
189
  end
126
190
 
191
+ # : type serialized_html_omitted_close_tag_node = {
192
+ # | tag_name: Herb::Token?,
193
+ # | }
194
+ class HTMLOmittedCloseTagNode < Node
195
+ include Colors
196
+
197
+ attr_reader tag_name: Herb::Token?
198
+
199
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token) -> void
200
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token) -> void
201
+
202
+ # : () -> serialized_html_omitted_close_tag_node
203
+ def to_hash: () -> serialized_html_omitted_close_tag_node
204
+
205
+ # : (Visitor) -> void
206
+ def accept: (Visitor) -> void
207
+
208
+ # : () -> Array[Herb::AST::Node?]
209
+ def child_nodes: () -> Array[Herb::AST::Node?]
210
+
211
+ # : () -> Array[Herb::AST::Node]
212
+ def compact_child_nodes: () -> Array[Herb::AST::Node]
213
+
214
+ # : () -> String
215
+ def inspect: () -> String
216
+
217
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
218
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
219
+ end
220
+
221
+ # : type serialized_html_virtual_close_tag_node = {
222
+ # | tag_name: Herb::Token?,
223
+ # | }
224
+ class HTMLVirtualCloseTagNode < Node
225
+ include Colors
226
+
227
+ attr_reader tag_name: Herb::Token?
228
+
229
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token) -> void
230
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token) -> void
231
+
232
+ # : () -> serialized_html_virtual_close_tag_node
233
+ def to_hash: () -> serialized_html_virtual_close_tag_node
234
+
235
+ # : (Visitor) -> void
236
+ def accept: (Visitor) -> void
237
+
238
+ # : () -> Array[Herb::AST::Node?]
239
+ def child_nodes: () -> Array[Herb::AST::Node?]
240
+
241
+ # : () -> Array[Herb::AST::Node]
242
+ def compact_child_nodes: () -> Array[Herb::AST::Node]
243
+
244
+ # : () -> String
245
+ def inspect: () -> String
246
+
247
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
248
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
249
+ end
250
+
251
+ # : type serialized_html_element_node = {
252
+ # | open_tag: (Herb::AST::HTMLOpenTagNode | Herb::AST::HTMLConditionalOpenTagNode | Herb::AST::ERBOpenTagNode)?,
253
+ # | tag_name: Herb::Token?,
254
+ # | body: Array[Herb::AST::Node],
255
+ # | close_tag: (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode | Herb::AST::HTMLVirtualCloseTagNode | Herb::AST::ERBEndNode)?,
256
+ # | is_void: bool,
257
+ # | element_source: String?,
258
+ # | }
127
259
  class HTMLElementNode < Node
128
260
  include Colors
129
261
 
130
- attr_reader open_tag: Herb::AST::HTMLOpenTagNode
262
+ attr_reader open_tag: (Herb::AST::HTMLOpenTagNode | Herb::AST::HTMLConditionalOpenTagNode | Herb::AST::ERBOpenTagNode)?
131
263
 
132
- attr_reader tag_name: Herb::Token
264
+ attr_reader tag_name: Herb::Token?
133
265
 
134
266
  attr_reader body: Array[Herb::AST::Node]
135
267
 
136
- attr_reader close_tag: Herb::AST::HTMLCloseTagNode
268
+ attr_reader close_tag: (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode | Herb::AST::HTMLVirtualCloseTagNode | Herb::AST::ERBEndNode)?
137
269
 
138
270
  attr_reader is_void: bool
139
271
 
140
- attr_reader source: String
272
+ attr_reader element_source: String?
141
273
 
142
- # : (String, Location, Array[Herb::Errors::Error], Herb::AST::HTMLOpenTagNode, Herb::Token, Array[Herb::AST::Node], Herb::AST::HTMLCloseTagNode, bool, String) -> void
143
- def initialize: (String, Location, Array[Herb::Errors::Error], Herb::AST::HTMLOpenTagNode, Herb::Token, Array[Herb::AST::Node], Herb::AST::HTMLCloseTagNode, bool, String) -> void
274
+ # : (String, Location, Array[Herb::Errors::Error], (Herb::AST::HTMLOpenTagNode | Herb::AST::HTMLConditionalOpenTagNode | Herb::AST::ERBOpenTagNode), Herb::Token, Array[Herb::AST::Node], (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode | Herb::AST::HTMLVirtualCloseTagNode | Herb::AST::ERBEndNode), bool, String) -> void
275
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::AST::HTMLOpenTagNode | Herb::AST::HTMLConditionalOpenTagNode | Herb::AST::ERBOpenTagNode, Herb::Token, Array[Herb::AST::Node], Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode | Herb::AST::HTMLVirtualCloseTagNode | Herb::AST::ERBEndNode, bool, String) -> void
144
276
 
145
277
  # : () -> serialized_html_element_node
146
278
  def to_hash: () -> serialized_html_element_node
@@ -161,14 +293,71 @@ module Herb
161
293
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
162
294
  end
163
295
 
296
+ # : type serialized_html_conditional_element_node = {
297
+ # | condition: String?,
298
+ # | open_conditional: (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?,
299
+ # | open_tag: Herb::AST::HTMLOpenTagNode?,
300
+ # | body: Array[Herb::AST::Node],
301
+ # | close_tag: (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode)?,
302
+ # | close_conditional: (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?,
303
+ # | tag_name: Herb::Token?,
304
+ # | element_source: String?,
305
+ # | }
306
+ class HTMLConditionalElementNode < Node
307
+ include Colors
308
+
309
+ attr_reader condition: String?
310
+
311
+ attr_reader open_conditional: (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?
312
+
313
+ attr_reader open_tag: Herb::AST::HTMLOpenTagNode?
314
+
315
+ attr_reader body: Array[Herb::AST::Node]
316
+
317
+ attr_reader close_tag: (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode)?
318
+
319
+ attr_reader close_conditional: (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode)?
320
+
321
+ attr_reader tag_name: Herb::Token?
322
+
323
+ attr_reader element_source: String?
324
+
325
+ # : (String, Location, Array[Herb::Errors::Error], String, (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode), Herb::AST::HTMLOpenTagNode, Array[Herb::AST::Node], (Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode), (Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode), Herb::Token, String) -> void
326
+ def initialize: (String, Location, Array[Herb::Errors::Error], String, Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode, Herb::AST::HTMLOpenTagNode, Array[Herb::AST::Node], Herb::AST::HTMLCloseTagNode | Herb::AST::HTMLOmittedCloseTagNode, Herb::AST::ERBIfNode | Herb::AST::ERBUnlessNode, Herb::Token, String) -> void
327
+
328
+ # : () -> serialized_html_conditional_element_node
329
+ def to_hash: () -> serialized_html_conditional_element_node
330
+
331
+ # : (Visitor) -> void
332
+ def accept: (Visitor) -> void
333
+
334
+ # : () -> Array[Herb::AST::Node?]
335
+ def child_nodes: () -> Array[Herb::AST::Node?]
336
+
337
+ # : () -> Array[Herb::AST::Node]
338
+ def compact_child_nodes: () -> Array[Herb::AST::Node]
339
+
340
+ # : () -> String
341
+ def inspect: () -> String
342
+
343
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
344
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
345
+ end
346
+
347
+ # : type serialized_html_attribute_value_node = {
348
+ # | open_quote: Herb::Token?,
349
+ # | children: Array[Herb::AST::Node],
350
+ # | close_quote: Herb::Token?,
351
+ # | quoted: bool,
352
+ # | }
164
353
  class HTMLAttributeValueNode < Node
165
354
  include Colors
166
355
 
167
- attr_reader open_quote: Herb::Token
356
+ attr_reader open_quote: Herb::Token?
168
357
 
169
358
  attr_reader children: Array[Herb::AST::Node]
170
359
 
171
- attr_reader close_quote: Herb::Token
360
+ attr_reader close_quote: Herb::Token?
172
361
 
173
362
  attr_reader quoted: bool
174
363
 
@@ -194,13 +383,16 @@ module Herb
194
383
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
195
384
  end
196
385
 
386
+ # : type serialized_html_attribute_name_node = {
387
+ # | children: Array[(Herb::AST::LiteralNode | Herb::AST::ERBContentNode)]?,
388
+ # | }
197
389
  class HTMLAttributeNameNode < Node
198
390
  include Colors
199
391
 
200
- attr_reader children: Array[Herb::AST::Node]
392
+ attr_reader children: Array[Herb::AST::LiteralNode | Herb::AST::ERBContentNode]?
201
393
 
202
- # : (String, Location, Array[Herb::Errors::Error], Array[Herb::AST::Node]) -> void
203
- def initialize: (String, Location, Array[Herb::Errors::Error], Array[Herb::AST::Node]) -> void
394
+ # : (String, Location, Array[Herb::Errors::Error], Array[(Herb::AST::LiteralNode | Herb::AST::ERBContentNode)]) -> void
395
+ def initialize: (String, Location, Array[Herb::Errors::Error], Array[Herb::AST::LiteralNode | Herb::AST::ERBContentNode]) -> void
204
396
 
205
397
  # : () -> serialized_html_attribute_name_node
206
398
  def to_hash: () -> serialized_html_attribute_name_node
@@ -221,14 +413,19 @@ module Herb
221
413
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
222
414
  end
223
415
 
416
+ # : type serialized_html_attribute_node = {
417
+ # | name: Herb::AST::HTMLAttributeNameNode?,
418
+ # | equals: Herb::Token?,
419
+ # | value: Herb::AST::HTMLAttributeValueNode?,
420
+ # | }
224
421
  class HTMLAttributeNode < Node
225
422
  include Colors
226
423
 
227
- attr_reader name: Herb::AST::HTMLAttributeNameNode
424
+ attr_reader name: Herb::AST::HTMLAttributeNameNode?
228
425
 
229
- attr_reader equals: Herb::Token
426
+ attr_reader equals: Herb::Token?
230
427
 
231
- attr_reader value: Herb::AST::HTMLAttributeValueNode
428
+ attr_reader value: Herb::AST::HTMLAttributeValueNode?
232
429
 
233
430
  # : (String, Location, Array[Herb::Errors::Error], Herb::AST::HTMLAttributeNameNode, Herb::Token, Herb::AST::HTMLAttributeValueNode) -> void
234
431
  def initialize: (String, Location, Array[Herb::Errors::Error], Herb::AST::HTMLAttributeNameNode, Herb::Token, Herb::AST::HTMLAttributeValueNode) -> void
@@ -252,10 +449,118 @@ module Herb
252
449
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
253
450
  end
254
451
 
452
+ # : type serialized_ruby_literal_node = {
453
+ # | content: String?,
454
+ # | }
455
+ class RubyLiteralNode < Node
456
+ include Colors
457
+
458
+ attr_reader content: String?
459
+
460
+ # : (String, Location, Array[Herb::Errors::Error], String) -> void
461
+ def initialize: (String, Location, Array[Herb::Errors::Error], String) -> void
462
+
463
+ # : () -> serialized_ruby_literal_node
464
+ def to_hash: () -> serialized_ruby_literal_node
465
+
466
+ # : (Visitor) -> void
467
+ def accept: (Visitor) -> void
468
+
469
+ # : () -> Array[Herb::AST::Node?]
470
+ def child_nodes: () -> Array[Herb::AST::Node?]
471
+
472
+ # : () -> Array[Herb::AST::Node]
473
+ def compact_child_nodes: () -> Array[Herb::AST::Node]
474
+
475
+ # : () -> String
476
+ def inspect: () -> String
477
+
478
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
479
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
480
+ end
481
+
482
+ # : type serialized_ruby_html_attributes_splat_node = {
483
+ # | content: String?,
484
+ # | prefix: String?,
485
+ # | }
486
+ class RubyHTMLAttributesSplatNode < Node
487
+ include Colors
488
+
489
+ attr_reader content: String?
490
+
491
+ attr_reader prefix: String?
492
+
493
+ # : (String, Location, Array[Herb::Errors::Error], String, String) -> void
494
+ def initialize: (String, Location, Array[Herb::Errors::Error], String, String) -> void
495
+
496
+ # : () -> serialized_ruby_html_attributes_splat_node
497
+ def to_hash: () -> serialized_ruby_html_attributes_splat_node
498
+
499
+ # : (Visitor) -> void
500
+ def accept: (Visitor) -> void
501
+
502
+ # : () -> Array[Herb::AST::Node?]
503
+ def child_nodes: () -> Array[Herb::AST::Node?]
504
+
505
+ # : () -> Array[Herb::AST::Node]
506
+ def compact_child_nodes: () -> Array[Herb::AST::Node]
507
+
508
+ # : () -> String
509
+ def inspect: () -> String
510
+
511
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
512
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
513
+ end
514
+
515
+ # : type serialized_erb_open_tag_node = {
516
+ # | tag_opening: Herb::Token?,
517
+ # | content: Herb::Token?,
518
+ # | tag_closing: Herb::Token?,
519
+ # | tag_name: Herb::Token?,
520
+ # | children: Array[Herb::AST::Node],
521
+ # | }
522
+ class ERBOpenTagNode < Node
523
+ include Colors
524
+
525
+ attr_reader tag_opening: Herb::Token?
526
+
527
+ attr_reader content: Herb::Token?
528
+
529
+ attr_reader tag_closing: Herb::Token?
530
+
531
+ attr_reader tag_name: Herb::Token?
532
+
533
+ attr_reader children: Array[Herb::AST::Node]
534
+
535
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node]) -> void
536
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node]) -> void
537
+
538
+ # : () -> serialized_erb_open_tag_node
539
+ def to_hash: () -> serialized_erb_open_tag_node
540
+
541
+ # : (Visitor) -> void
542
+ def accept: (Visitor) -> void
543
+
544
+ # : () -> Array[Herb::AST::Node?]
545
+ def child_nodes: () -> Array[Herb::AST::Node?]
546
+
547
+ # : () -> Array[Herb::AST::Node]
548
+ def compact_child_nodes: () -> Array[Herb::AST::Node]
549
+
550
+ # : () -> String
551
+ def inspect: () -> String
552
+
553
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
554
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
555
+ end
556
+
557
+ # : type serialized_html_text_node = {
558
+ # | content: String?,
559
+ # | }
255
560
  class HTMLTextNode < Node
256
561
  include Colors
257
562
 
258
- attr_reader content: String
563
+ attr_reader content: String?
259
564
 
260
565
  # : (String, Location, Array[Herb::Errors::Error], String) -> void
261
566
  def initialize: (String, Location, Array[Herb::Errors::Error], String) -> void
@@ -279,14 +584,19 @@ module Herb
279
584
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
280
585
  end
281
586
 
587
+ # : type serialized_html_comment_node = {
588
+ # | comment_start: Herb::Token?,
589
+ # | children: Array[Herb::AST::Node],
590
+ # | comment_end: Herb::Token?,
591
+ # | }
282
592
  class HTMLCommentNode < Node
283
593
  include Colors
284
594
 
285
- attr_reader comment_start: Herb::Token
595
+ attr_reader comment_start: Herb::Token?
286
596
 
287
597
  attr_reader children: Array[Herb::AST::Node]
288
598
 
289
- attr_reader comment_end: Herb::Token
599
+ attr_reader comment_end: Herb::Token?
290
600
 
291
601
  # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Array[Herb::AST::Node], Herb::Token) -> void
292
602
  def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Array[Herb::AST::Node], Herb::Token) -> void
@@ -310,14 +620,19 @@ module Herb
310
620
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
311
621
  end
312
622
 
623
+ # : type serialized_html_doctype_node = {
624
+ # | tag_opening: Herb::Token?,
625
+ # | children: Array[Herb::AST::Node],
626
+ # | tag_closing: Herb::Token?,
627
+ # | }
313
628
  class HTMLDoctypeNode < Node
314
629
  include Colors
315
630
 
316
- attr_reader tag_opening: Herb::Token
631
+ attr_reader tag_opening: Herb::Token?
317
632
 
318
633
  attr_reader children: Array[Herb::AST::Node]
319
634
 
320
- attr_reader tag_closing: Herb::Token
635
+ attr_reader tag_closing: Herb::Token?
321
636
 
322
637
  # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Array[Herb::AST::Node], Herb::Token) -> void
323
638
  def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Array[Herb::AST::Node], Herb::Token) -> void
@@ -341,14 +656,19 @@ module Herb
341
656
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
342
657
  end
343
658
 
659
+ # : type serialized_xml_declaration_node = {
660
+ # | tag_opening: Herb::Token?,
661
+ # | children: Array[Herb::AST::Node],
662
+ # | tag_closing: Herb::Token?,
663
+ # | }
344
664
  class XMLDeclarationNode < Node
345
665
  include Colors
346
666
 
347
- attr_reader tag_opening: Herb::Token
667
+ attr_reader tag_opening: Herb::Token?
348
668
 
349
669
  attr_reader children: Array[Herb::AST::Node]
350
670
 
351
- attr_reader tag_closing: Herb::Token
671
+ attr_reader tag_closing: Herb::Token?
352
672
 
353
673
  # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Array[Herb::AST::Node], Herb::Token) -> void
354
674
  def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Array[Herb::AST::Node], Herb::Token) -> void
@@ -372,14 +692,19 @@ module Herb
372
692
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
373
693
  end
374
694
 
695
+ # : type serialized_cdata_node = {
696
+ # | tag_opening: Herb::Token?,
697
+ # | children: Array[Herb::AST::Node],
698
+ # | tag_closing: Herb::Token?,
699
+ # | }
375
700
  class CDATANode < Node
376
701
  include Colors
377
702
 
378
- attr_reader tag_opening: Herb::Token
703
+ attr_reader tag_opening: Herb::Token?
379
704
 
380
705
  attr_reader children: Array[Herb::AST::Node]
381
706
 
382
- attr_reader tag_closing: Herb::Token
707
+ attr_reader tag_closing: Herb::Token?
383
708
 
384
709
  # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Array[Herb::AST::Node], Herb::Token) -> void
385
710
  def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Array[Herb::AST::Node], Herb::Token) -> void
@@ -403,10 +728,13 @@ module Herb
403
728
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
404
729
  end
405
730
 
731
+ # : type serialized_whitespace_node = {
732
+ # | value: Herb::Token?,
733
+ # | }
406
734
  class WhitespaceNode < Node
407
735
  include Colors
408
736
 
409
- attr_reader value: Herb::Token
737
+ attr_reader value: Herb::Token?
410
738
 
411
739
  # : (String, Location, Array[Herb::Errors::Error], Herb::Token) -> void
412
740
  def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token) -> void
@@ -430,14 +758,23 @@ module Herb
430
758
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
431
759
  end
432
760
 
761
+ # : type serialized_erb_content_node = {
762
+ # | tag_opening: Herb::Token?,
763
+ # | content: Herb::Token?,
764
+ # | tag_closing: Herb::Token?,
765
+ # | analyzed_ruby: nil,
766
+ # | parsed: bool,
767
+ # | valid: bool,
768
+ # | prism_node: String?,
769
+ # | }
433
770
  class ERBContentNode < Node
434
771
  include Colors
435
772
 
436
- attr_reader tag_opening: Herb::Token
773
+ attr_reader tag_opening: Herb::Token?
437
774
 
438
- attr_reader content: Herb::Token
775
+ attr_reader content: Herb::Token?
439
776
 
440
- attr_reader tag_closing: Herb::Token
777
+ attr_reader tag_closing: Herb::Token?
441
778
 
442
779
  attr_reader analyzed_ruby: nil
443
780
 
@@ -445,8 +782,13 @@ module Herb
445
782
 
446
783
  attr_reader valid: bool
447
784
 
448
- # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, nil, bool, bool) -> void
449
- def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, nil, bool, bool) -> void
785
+ attr_reader prism_node: String?
786
+
787
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, nil, bool, bool, String) -> void
788
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, nil, bool, bool, String) -> void
789
+
790
+ # : () -> Prism::node?
791
+ def deserialized_prism_node: () -> Prism::node?
450
792
 
451
793
  # : () -> serialized_erb_content_node
452
794
  def to_hash: () -> serialized_erb_content_node
@@ -467,14 +809,19 @@ module Herb
467
809
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
468
810
  end
469
811
 
812
+ # : type serialized_erb_end_node = {
813
+ # | tag_opening: Herb::Token?,
814
+ # | content: Herb::Token?,
815
+ # | tag_closing: Herb::Token?,
816
+ # | }
470
817
  class ERBEndNode < Node
471
818
  include Colors
472
819
 
473
- attr_reader tag_opening: Herb::Token
820
+ attr_reader tag_opening: Herb::Token?
474
821
 
475
- attr_reader content: Herb::Token
822
+ attr_reader content: Herb::Token?
476
823
 
477
- attr_reader tag_closing: Herb::Token
824
+ attr_reader tag_closing: Herb::Token?
478
825
 
479
826
  # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token) -> void
480
827
  def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token) -> void
@@ -498,14 +845,20 @@ module Herb
498
845
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
499
846
  end
500
847
 
848
+ # : type serialized_erb_else_node = {
849
+ # | tag_opening: Herb::Token?,
850
+ # | content: Herb::Token?,
851
+ # | tag_closing: Herb::Token?,
852
+ # | statements: Array[Herb::AST::Node],
853
+ # | }
501
854
  class ERBElseNode < Node
502
855
  include Colors
503
856
 
504
- attr_reader tag_opening: Herb::Token
857
+ attr_reader tag_opening: Herb::Token?
505
858
 
506
- attr_reader content: Herb::Token
859
+ attr_reader content: Herb::Token?
507
860
 
508
- attr_reader tag_closing: Herb::Token
861
+ attr_reader tag_closing: Herb::Token?
509
862
 
510
863
  attr_reader statements: Array[Herb::AST::Node]
511
864
 
@@ -531,25 +884,40 @@ module Herb
531
884
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
532
885
  end
533
886
 
887
+ # : type serialized_erb_if_node = {
888
+ # | tag_opening: Herb::Token?,
889
+ # | content: Herb::Token?,
890
+ # | tag_closing: Herb::Token?,
891
+ # | then_keyword: Herb::Location?,
892
+ # | prism_node: String?,
893
+ # | statements: Array[Herb::AST::Node],
894
+ # | subsequent: (Herb::AST::ERBIfNode | Herb::AST::ERBElseNode)?,
895
+ # | end_node: Herb::AST::ERBEndNode?,
896
+ # | }
534
897
  class ERBIfNode < Node
535
898
  include Colors
536
899
 
537
- attr_reader tag_opening: Herb::Token
900
+ attr_reader tag_opening: Herb::Token?
538
901
 
539
- attr_reader content: Herb::Token
902
+ attr_reader content: Herb::Token?
540
903
 
541
- attr_reader tag_closing: Herb::Token
904
+ attr_reader tag_closing: Herb::Token?
542
905
 
543
- attr_reader then_keyword: Herb::Location
906
+ attr_reader then_keyword: Herb::Location?
907
+
908
+ attr_reader prism_node: String?
544
909
 
545
910
  attr_reader statements: Array[Herb::AST::Node]
546
911
 
547
- attr_reader subsequent: Herb::AST::Node
912
+ attr_reader subsequent: (Herb::AST::ERBIfNode | Herb::AST::ERBElseNode)?
913
+
914
+ attr_reader end_node: Herb::AST::ERBEndNode?
548
915
 
549
- attr_reader end_node: Herb::AST::ERBEndNode
916
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Herb::Location, String, Array[Herb::AST::Node], (Herb::AST::ERBIfNode | Herb::AST::ERBElseNode), Herb::AST::ERBEndNode) -> void
917
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Herb::Location, String, Array[Herb::AST::Node], Herb::AST::ERBIfNode | Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
550
918
 
551
- # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Herb::Location, Array[Herb::AST::Node], Herb::AST::Node, Herb::AST::ERBEndNode) -> void
552
- def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Herb::Location, Array[Herb::AST::Node], Herb::AST::Node, Herb::AST::ERBEndNode) -> void
919
+ # : () -> Prism::node?
920
+ def deserialized_prism_node: () -> Prism::node?
553
921
 
554
922
  # : () -> serialized_erb_if_node
555
923
  def to_hash: () -> serialized_erb_if_node
@@ -570,21 +938,34 @@ module Herb
570
938
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
571
939
  end
572
940
 
941
+ # : type serialized_erb_block_node = {
942
+ # | tag_opening: Herb::Token?,
943
+ # | content: Herb::Token?,
944
+ # | tag_closing: Herb::Token?,
945
+ # | prism_node: String?,
946
+ # | body: Array[Herb::AST::Node],
947
+ # | end_node: Herb::AST::ERBEndNode?,
948
+ # | }
573
949
  class ERBBlockNode < Node
574
950
  include Colors
575
951
 
576
- attr_reader tag_opening: Herb::Token
952
+ attr_reader tag_opening: Herb::Token?
953
+
954
+ attr_reader content: Herb::Token?
577
955
 
578
- attr_reader content: Herb::Token
956
+ attr_reader tag_closing: Herb::Token?
579
957
 
580
- attr_reader tag_closing: Herb::Token
958
+ attr_reader prism_node: String?
581
959
 
582
960
  attr_reader body: Array[Herb::AST::Node]
583
961
 
584
- attr_reader end_node: Herb::AST::ERBEndNode
962
+ attr_reader end_node: Herb::AST::ERBEndNode?
585
963
 
586
- # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
587
- def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
964
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, String, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
965
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, String, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
966
+
967
+ # : () -> Prism::node?
968
+ def deserialized_prism_node: () -> Prism::node?
588
969
 
589
970
  # : () -> serialized_erb_block_node
590
971
  def to_hash: () -> serialized_erb_block_node
@@ -605,16 +986,23 @@ module Herb
605
986
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
606
987
  end
607
988
 
989
+ # : type serialized_erb_when_node = {
990
+ # | tag_opening: Herb::Token?,
991
+ # | content: Herb::Token?,
992
+ # | tag_closing: Herb::Token?,
993
+ # | then_keyword: Herb::Location?,
994
+ # | statements: Array[Herb::AST::Node],
995
+ # | }
608
996
  class ERBWhenNode < Node
609
997
  include Colors
610
998
 
611
- attr_reader tag_opening: Herb::Token
999
+ attr_reader tag_opening: Herb::Token?
612
1000
 
613
- attr_reader content: Herb::Token
1001
+ attr_reader content: Herb::Token?
614
1002
 
615
- attr_reader tag_closing: Herb::Token
1003
+ attr_reader tag_closing: Herb::Token?
616
1004
 
617
- attr_reader then_keyword: Herb::Location
1005
+ attr_reader then_keyword: Herb::Location?
618
1006
 
619
1007
  attr_reader statements: Array[Herb::AST::Node]
620
1008
 
@@ -640,25 +1028,40 @@ module Herb
640
1028
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
641
1029
  end
642
1030
 
1031
+ # : type serialized_erb_case_node = {
1032
+ # | tag_opening: Herb::Token?,
1033
+ # | content: Herb::Token?,
1034
+ # | tag_closing: Herb::Token?,
1035
+ # | children: Array[Herb::AST::Node],
1036
+ # | prism_node: String?,
1037
+ # | conditions: Array[Herb::AST::ERBWhenNode],
1038
+ # | else_clause: Herb::AST::ERBElseNode?,
1039
+ # | end_node: Herb::AST::ERBEndNode?,
1040
+ # | }
643
1041
  class ERBCaseNode < Node
644
1042
  include Colors
645
1043
 
646
- attr_reader tag_opening: Herb::Token
1044
+ attr_reader tag_opening: Herb::Token?
647
1045
 
648
- attr_reader content: Herb::Token
1046
+ attr_reader content: Herb::Token?
649
1047
 
650
- attr_reader tag_closing: Herb::Token
1048
+ attr_reader tag_closing: Herb::Token?
651
1049
 
652
1050
  attr_reader children: Array[Herb::AST::Node]
653
1051
 
1052
+ attr_reader prism_node: String?
1053
+
654
1054
  attr_reader conditions: Array[Herb::AST::ERBWhenNode]
655
1055
 
656
- attr_reader else_clause: Herb::AST::ERBElseNode
1056
+ attr_reader else_clause: Herb::AST::ERBElseNode?
1057
+
1058
+ attr_reader end_node: Herb::AST::ERBEndNode?
657
1059
 
658
- attr_reader end_node: Herb::AST::ERBEndNode
1060
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], String, Array[Herb::AST::ERBWhenNode], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
1061
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], String, Array[Herb::AST::ERBWhenNode], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
659
1062
 
660
- # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Array[Herb::AST::ERBWhenNode], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
661
- def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Array[Herb::AST::ERBWhenNode], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
1063
+ # : () -> Prism::node?
1064
+ def deserialized_prism_node: () -> Prism::node?
662
1065
 
663
1066
  # : () -> serialized_erb_case_node
664
1067
  def to_hash: () -> serialized_erb_case_node
@@ -679,25 +1082,40 @@ module Herb
679
1082
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
680
1083
  end
681
1084
 
1085
+ # : type serialized_erb_case_match_node = {
1086
+ # | tag_opening: Herb::Token?,
1087
+ # | content: Herb::Token?,
1088
+ # | tag_closing: Herb::Token?,
1089
+ # | children: Array[Herb::AST::Node],
1090
+ # | prism_node: String?,
1091
+ # | conditions: Array[Herb::AST::ERBInNode],
1092
+ # | else_clause: Herb::AST::ERBElseNode?,
1093
+ # | end_node: Herb::AST::ERBEndNode?,
1094
+ # | }
682
1095
  class ERBCaseMatchNode < Node
683
1096
  include Colors
684
1097
 
685
- attr_reader tag_opening: Herb::Token
1098
+ attr_reader tag_opening: Herb::Token?
686
1099
 
687
- attr_reader content: Herb::Token
1100
+ attr_reader content: Herb::Token?
688
1101
 
689
- attr_reader tag_closing: Herb::Token
1102
+ attr_reader tag_closing: Herb::Token?
690
1103
 
691
1104
  attr_reader children: Array[Herb::AST::Node]
692
1105
 
1106
+ attr_reader prism_node: String?
1107
+
693
1108
  attr_reader conditions: Array[Herb::AST::ERBInNode]
694
1109
 
695
- attr_reader else_clause: Herb::AST::ERBElseNode
1110
+ attr_reader else_clause: Herb::AST::ERBElseNode?
1111
+
1112
+ attr_reader end_node: Herb::AST::ERBEndNode?
696
1113
 
697
- attr_reader end_node: Herb::AST::ERBEndNode
1114
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], String, Array[Herb::AST::ERBInNode], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
1115
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], String, Array[Herb::AST::ERBInNode], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
698
1116
 
699
- # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Array[Herb::AST::ERBInNode], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
700
- def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Array[Herb::AST::ERBInNode], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
1117
+ # : () -> Prism::node?
1118
+ def deserialized_prism_node: () -> Prism::node?
701
1119
 
702
1120
  # : () -> serialized_erb_case_match_node
703
1121
  def to_hash: () -> serialized_erb_case_match_node
@@ -718,21 +1136,34 @@ module Herb
718
1136
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
719
1137
  end
720
1138
 
1139
+ # : type serialized_erb_while_node = {
1140
+ # | tag_opening: Herb::Token?,
1141
+ # | content: Herb::Token?,
1142
+ # | tag_closing: Herb::Token?,
1143
+ # | prism_node: String?,
1144
+ # | statements: Array[Herb::AST::Node],
1145
+ # | end_node: Herb::AST::ERBEndNode?,
1146
+ # | }
721
1147
  class ERBWhileNode < Node
722
1148
  include Colors
723
1149
 
724
- attr_reader tag_opening: Herb::Token
1150
+ attr_reader tag_opening: Herb::Token?
1151
+
1152
+ attr_reader content: Herb::Token?
725
1153
 
726
- attr_reader content: Herb::Token
1154
+ attr_reader tag_closing: Herb::Token?
727
1155
 
728
- attr_reader tag_closing: Herb::Token
1156
+ attr_reader prism_node: String?
729
1157
 
730
1158
  attr_reader statements: Array[Herb::AST::Node]
731
1159
 
732
- attr_reader end_node: Herb::AST::ERBEndNode
1160
+ attr_reader end_node: Herb::AST::ERBEndNode?
733
1161
 
734
- # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
735
- def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
1162
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, String, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
1163
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, String, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
1164
+
1165
+ # : () -> Prism::node?
1166
+ def deserialized_prism_node: () -> Prism::node?
736
1167
 
737
1168
  # : () -> serialized_erb_while_node
738
1169
  def to_hash: () -> serialized_erb_while_node
@@ -753,21 +1184,34 @@ module Herb
753
1184
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
754
1185
  end
755
1186
 
1187
+ # : type serialized_erb_until_node = {
1188
+ # | tag_opening: Herb::Token?,
1189
+ # | content: Herb::Token?,
1190
+ # | tag_closing: Herb::Token?,
1191
+ # | prism_node: String?,
1192
+ # | statements: Array[Herb::AST::Node],
1193
+ # | end_node: Herb::AST::ERBEndNode?,
1194
+ # | }
756
1195
  class ERBUntilNode < Node
757
1196
  include Colors
758
1197
 
759
- attr_reader tag_opening: Herb::Token
1198
+ attr_reader tag_opening: Herb::Token?
1199
+
1200
+ attr_reader content: Herb::Token?
760
1201
 
761
- attr_reader content: Herb::Token
1202
+ attr_reader tag_closing: Herb::Token?
762
1203
 
763
- attr_reader tag_closing: Herb::Token
1204
+ attr_reader prism_node: String?
764
1205
 
765
1206
  attr_reader statements: Array[Herb::AST::Node]
766
1207
 
767
- attr_reader end_node: Herb::AST::ERBEndNode
1208
+ attr_reader end_node: Herb::AST::ERBEndNode?
1209
+
1210
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, String, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
1211
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, String, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
768
1212
 
769
- # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
770
- def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
1213
+ # : () -> Prism::node?
1214
+ def deserialized_prism_node: () -> Prism::node?
771
1215
 
772
1216
  # : () -> serialized_erb_until_node
773
1217
  def to_hash: () -> serialized_erb_until_node
@@ -788,21 +1232,34 @@ module Herb
788
1232
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
789
1233
  end
790
1234
 
1235
+ # : type serialized_erb_for_node = {
1236
+ # | tag_opening: Herb::Token?,
1237
+ # | content: Herb::Token?,
1238
+ # | tag_closing: Herb::Token?,
1239
+ # | prism_node: String?,
1240
+ # | statements: Array[Herb::AST::Node],
1241
+ # | end_node: Herb::AST::ERBEndNode?,
1242
+ # | }
791
1243
  class ERBForNode < Node
792
1244
  include Colors
793
1245
 
794
- attr_reader tag_opening: Herb::Token
1246
+ attr_reader tag_opening: Herb::Token?
795
1247
 
796
- attr_reader content: Herb::Token
1248
+ attr_reader content: Herb::Token?
797
1249
 
798
- attr_reader tag_closing: Herb::Token
1250
+ attr_reader tag_closing: Herb::Token?
1251
+
1252
+ attr_reader prism_node: String?
799
1253
 
800
1254
  attr_reader statements: Array[Herb::AST::Node]
801
1255
 
802
- attr_reader end_node: Herb::AST::ERBEndNode
1256
+ attr_reader end_node: Herb::AST::ERBEndNode?
1257
+
1258
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, String, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
1259
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, String, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
803
1260
 
804
- # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
805
- def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
1261
+ # : () -> Prism::node?
1262
+ def deserialized_prism_node: () -> Prism::node?
806
1263
 
807
1264
  # : () -> serialized_erb_for_node
808
1265
  def to_hash: () -> serialized_erb_for_node
@@ -823,18 +1280,25 @@ module Herb
823
1280
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
824
1281
  end
825
1282
 
1283
+ # : type serialized_erb_rescue_node = {
1284
+ # | tag_opening: Herb::Token?,
1285
+ # | content: Herb::Token?,
1286
+ # | tag_closing: Herb::Token?,
1287
+ # | statements: Array[Herb::AST::Node],
1288
+ # | subsequent: Herb::AST::ERBRescueNode?,
1289
+ # | }
826
1290
  class ERBRescueNode < Node
827
1291
  include Colors
828
1292
 
829
- attr_reader tag_opening: Herb::Token
1293
+ attr_reader tag_opening: Herb::Token?
830
1294
 
831
- attr_reader content: Herb::Token
1295
+ attr_reader content: Herb::Token?
832
1296
 
833
- attr_reader tag_closing: Herb::Token
1297
+ attr_reader tag_closing: Herb::Token?
834
1298
 
835
1299
  attr_reader statements: Array[Herb::AST::Node]
836
1300
 
837
- attr_reader subsequent: Herb::AST::ERBRescueNode
1301
+ attr_reader subsequent: Herb::AST::ERBRescueNode?
838
1302
 
839
1303
  # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBRescueNode) -> void
840
1304
  def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBRescueNode) -> void
@@ -858,14 +1322,20 @@ module Herb
858
1322
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
859
1323
  end
860
1324
 
1325
+ # : type serialized_erb_ensure_node = {
1326
+ # | tag_opening: Herb::Token?,
1327
+ # | content: Herb::Token?,
1328
+ # | tag_closing: Herb::Token?,
1329
+ # | statements: Array[Herb::AST::Node],
1330
+ # | }
861
1331
  class ERBEnsureNode < Node
862
1332
  include Colors
863
1333
 
864
- attr_reader tag_opening: Herb::Token
1334
+ attr_reader tag_opening: Herb::Token?
865
1335
 
866
- attr_reader content: Herb::Token
1336
+ attr_reader content: Herb::Token?
867
1337
 
868
- attr_reader tag_closing: Herb::Token
1338
+ attr_reader tag_closing: Herb::Token?
869
1339
 
870
1340
  attr_reader statements: Array[Herb::AST::Node]
871
1341
 
@@ -891,27 +1361,43 @@ module Herb
891
1361
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
892
1362
  end
893
1363
 
1364
+ # : type serialized_erb_begin_node = {
1365
+ # | tag_opening: Herb::Token?,
1366
+ # | content: Herb::Token?,
1367
+ # | tag_closing: Herb::Token?,
1368
+ # | prism_node: String?,
1369
+ # | statements: Array[Herb::AST::Node],
1370
+ # | rescue_clause: Herb::AST::ERBRescueNode?,
1371
+ # | else_clause: Herb::AST::ERBElseNode?,
1372
+ # | ensure_clause: Herb::AST::ERBEnsureNode?,
1373
+ # | end_node: Herb::AST::ERBEndNode?,
1374
+ # | }
894
1375
  class ERBBeginNode < Node
895
1376
  include Colors
896
1377
 
897
- attr_reader tag_opening: Herb::Token
1378
+ attr_reader tag_opening: Herb::Token?
1379
+
1380
+ attr_reader content: Herb::Token?
898
1381
 
899
- attr_reader content: Herb::Token
1382
+ attr_reader tag_closing: Herb::Token?
900
1383
 
901
- attr_reader tag_closing: Herb::Token
1384
+ attr_reader prism_node: String?
902
1385
 
903
1386
  attr_reader statements: Array[Herb::AST::Node]
904
1387
 
905
- attr_reader rescue_clause: Herb::AST::ERBRescueNode
1388
+ attr_reader rescue_clause: Herb::AST::ERBRescueNode?
906
1389
 
907
- attr_reader else_clause: Herb::AST::ERBElseNode
1390
+ attr_reader else_clause: Herb::AST::ERBElseNode?
908
1391
 
909
- attr_reader ensure_clause: Herb::AST::ERBEnsureNode
1392
+ attr_reader ensure_clause: Herb::AST::ERBEnsureNode?
910
1393
 
911
- attr_reader end_node: Herb::AST::ERBEndNode
1394
+ attr_reader end_node: Herb::AST::ERBEndNode?
912
1395
 
913
- # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBRescueNode, Herb::AST::ERBElseNode, Herb::AST::ERBEnsureNode, Herb::AST::ERBEndNode) -> void
914
- def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBRescueNode, Herb::AST::ERBElseNode, Herb::AST::ERBEnsureNode, Herb::AST::ERBEndNode) -> void
1396
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, String, Array[Herb::AST::Node], Herb::AST::ERBRescueNode, Herb::AST::ERBElseNode, Herb::AST::ERBEnsureNode, Herb::AST::ERBEndNode) -> void
1397
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, String, Array[Herb::AST::Node], Herb::AST::ERBRescueNode, Herb::AST::ERBElseNode, Herb::AST::ERBEnsureNode, Herb::AST::ERBEndNode) -> void
1398
+
1399
+ # : () -> Prism::node?
1400
+ def deserialized_prism_node: () -> Prism::node?
915
1401
 
916
1402
  # : () -> serialized_erb_begin_node
917
1403
  def to_hash: () -> serialized_erb_begin_node
@@ -932,25 +1418,40 @@ module Herb
932
1418
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
933
1419
  end
934
1420
 
1421
+ # : type serialized_erb_unless_node = {
1422
+ # | tag_opening: Herb::Token?,
1423
+ # | content: Herb::Token?,
1424
+ # | tag_closing: Herb::Token?,
1425
+ # | then_keyword: Herb::Location?,
1426
+ # | prism_node: String?,
1427
+ # | statements: Array[Herb::AST::Node],
1428
+ # | else_clause: Herb::AST::ERBElseNode?,
1429
+ # | end_node: Herb::AST::ERBEndNode?,
1430
+ # | }
935
1431
  class ERBUnlessNode < Node
936
1432
  include Colors
937
1433
 
938
- attr_reader tag_opening: Herb::Token
1434
+ attr_reader tag_opening: Herb::Token?
1435
+
1436
+ attr_reader content: Herb::Token?
939
1437
 
940
- attr_reader content: Herb::Token
1438
+ attr_reader tag_closing: Herb::Token?
941
1439
 
942
- attr_reader tag_closing: Herb::Token
1440
+ attr_reader then_keyword: Herb::Location?
943
1441
 
944
- attr_reader then_keyword: Herb::Location
1442
+ attr_reader prism_node: String?
945
1443
 
946
1444
  attr_reader statements: Array[Herb::AST::Node]
947
1445
 
948
- attr_reader else_clause: Herb::AST::ERBElseNode
1446
+ attr_reader else_clause: Herb::AST::ERBElseNode?
1447
+
1448
+ attr_reader end_node: Herb::AST::ERBEndNode?
949
1449
 
950
- attr_reader end_node: Herb::AST::ERBEndNode
1450
+ # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Herb::Location, String, Array[Herb::AST::Node], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
1451
+ def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Herb::Location, String, Array[Herb::AST::Node], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
951
1452
 
952
- # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Herb::Location, Array[Herb::AST::Node], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
953
- def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Herb::Location, Array[Herb::AST::Node], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
1453
+ # : () -> Prism::node?
1454
+ def deserialized_prism_node: () -> Prism::node?
954
1455
 
955
1456
  # : () -> serialized_erb_unless_node
956
1457
  def to_hash: () -> serialized_erb_unless_node
@@ -971,14 +1472,19 @@ module Herb
971
1472
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
972
1473
  end
973
1474
 
1475
+ # : type serialized_erb_yield_node = {
1476
+ # | tag_opening: Herb::Token?,
1477
+ # | content: Herb::Token?,
1478
+ # | tag_closing: Herb::Token?,
1479
+ # | }
974
1480
  class ERBYieldNode < Node
975
1481
  include Colors
976
1482
 
977
- attr_reader tag_opening: Herb::Token
1483
+ attr_reader tag_opening: Herb::Token?
978
1484
 
979
- attr_reader content: Herb::Token
1485
+ attr_reader content: Herb::Token?
980
1486
 
981
- attr_reader tag_closing: Herb::Token
1487
+ attr_reader tag_closing: Herb::Token?
982
1488
 
983
1489
  # : (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token) -> void
984
1490
  def initialize: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token) -> void
@@ -1002,16 +1508,23 @@ module Herb
1002
1508
  def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
1003
1509
  end
1004
1510
 
1511
+ # : type serialized_erb_in_node = {
1512
+ # | tag_opening: Herb::Token?,
1513
+ # | content: Herb::Token?,
1514
+ # | tag_closing: Herb::Token?,
1515
+ # | then_keyword: Herb::Location?,
1516
+ # | statements: Array[Herb::AST::Node],
1517
+ # | }
1005
1518
  class ERBInNode < Node
1006
1519
  include Colors
1007
1520
 
1008
- attr_reader tag_opening: Herb::Token
1521
+ attr_reader tag_opening: Herb::Token?
1009
1522
 
1010
- attr_reader content: Herb::Token
1523
+ attr_reader content: Herb::Token?
1011
1524
 
1012
- attr_reader tag_closing: Herb::Token
1525
+ attr_reader tag_closing: Herb::Token?
1013
1526
 
1014
- attr_reader then_keyword: Herb::Location
1527
+ attr_reader then_keyword: Herb::Location?
1015
1528
 
1016
1529
  attr_reader statements: Array[Herb::AST::Node]
1017
1530