herb 0.1.1-x86-linux-gnu → 0.2.0-x86-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.
- checksums.yaml +4 -4
- data/Rakefile +20 -2
- data/ext/herb/extension.c +46 -14
- data/ext/herb/extension.h +9 -0
- data/ext/herb/extension_helpers.c +9 -27
- data/ext/herb/nodes.c +104 -1
- data/herb.gemspec +2 -1
- data/lib/herb/3.0/herb.so +0 -0
- data/lib/herb/3.1/herb.so +0 -0
- data/lib/herb/3.2/herb.so +0 -0
- data/lib/herb/3.3/herb.so +0 -0
- data/lib/herb/3.4/herb.so +0 -0
- data/lib/herb/ast/node.rb +40 -4
- data/lib/herb/ast/nodes.rb +892 -140
- data/lib/herb/ast.rb +1 -0
- data/lib/herb/cli.rb +4 -1
- data/lib/herb/errors.rb +84 -33
- data/lib/herb/lex_result.rb +4 -1
- data/lib/herb/libherb/array.rb +3 -0
- data/lib/herb/libherb/ast_node.rb +3 -0
- data/lib/herb/libherb/buffer.rb +3 -0
- data/lib/herb/libherb/extract_result.rb +3 -0
- data/lib/herb/libherb/lex_result.rb +3 -0
- data/lib/herb/libherb/libherb.rb +3 -0
- data/lib/herb/libherb/parse_result.rb +3 -0
- data/lib/herb/libherb/token.rb +3 -0
- data/lib/herb/libherb.rb +3 -0
- data/lib/herb/location.rb +15 -6
- data/lib/herb/parse_result.rb +10 -1
- data/lib/herb/position.rb +17 -8
- data/lib/herb/project.rb +13 -4
- data/lib/herb/range.rb +18 -8
- data/lib/herb/result.rb +7 -1
- data/lib/herb/token.rb +14 -4
- data/lib/herb/token_list.rb +10 -1
- data/lib/herb/version.rb +2 -1
- data/lib/herb/visitor.rb +175 -0
- data/lib/herb/warnings.rb +43 -0
- data/lib/herb.rb +6 -1
- data/sig/herb/ast/node.rbs +48 -0
- data/sig/herb/ast/nodes.rbs +941 -0
- data/sig/herb/ast.rbs +6 -0
- data/sig/herb/errors.rbs +193 -0
- data/sig/herb/lex_result.rbs +16 -0
- data/sig/herb/location.rbs +30 -0
- data/sig/herb/parse_result.rbs +22 -0
- data/sig/herb/position.rbs +30 -0
- data/sig/herb/range.rbs +33 -0
- data/sig/herb/result.rbs +20 -0
- data/sig/herb/token.rbs +31 -0
- data/sig/herb/token_list.rbs +13 -0
- data/sig/herb/version.rbs +5 -0
- data/sig/herb/visitor.rbs +104 -0
- data/sig/herb/warnings.rbs +28 -0
- data/sig/herb.rbs +4 -0
- data/sig/serialized.rbs +9 -0
- data/sig/serialized_ast_errors.rbs +53 -0
- data/sig/serialized_ast_nodes.rbs +221 -0
- data/src/analyze.c +138 -43
- data/src/analyze_helpers.c +44 -1
- data/src/analyzed_ruby.c +10 -1
- data/src/ast_nodes.c +103 -1
- data/src/ast_pretty_print.c +60 -0
- data/src/buffer.c +60 -27
- data/src/extract.c +57 -20
- data/src/include/analyze.h +3 -0
- data/src/include/analyze_helpers.h +6 -0
- data/src/include/analyzed_ruby.h +3 -0
- data/src/include/ast_nodes.h +32 -0
- data/src/include/buffer.h +5 -2
- data/src/include/lexer_peek_helpers.h +2 -2
- data/src/include/macros.h +2 -2
- data/src/include/version.h +1 -1
- data/src/lexer.c +1 -1
- data/src/parser.c +17 -7
- data/src/token.c +1 -1
- data/src/util.c +3 -1
- data/src/visitor.c +36 -0
- metadata +24 -3
- /data/{License.txt → LICENSE.txt} +0 -0
data/lib/herb/ast/nodes.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
# typed: true
|
2
3
|
|
3
4
|
# NOTE: This file is generated by the templates/template.rb script and should not be
|
4
5
|
# modified manually. See /Users/marcoroth/Development/herb-release/templates/lib/herb/ast/nodes.rb.erb
|
@@ -6,23 +7,42 @@
|
|
6
7
|
module Herb
|
7
8
|
module AST
|
8
9
|
class DocumentNode < Node
|
9
|
-
attr_reader :children
|
10
|
+
attr_reader :children #: Array[Herb::AST::Node]
|
10
11
|
|
12
|
+
#: (String, Location, Array[Herb::Errors::Error], Array[Herb::AST::Node]) -> void
|
11
13
|
def initialize(type, location, errors, children)
|
12
14
|
super(type, location, errors)
|
13
15
|
@children = children
|
14
16
|
end
|
15
17
|
|
18
|
+
#: () -> serialized_document_node
|
16
19
|
def to_hash
|
17
20
|
super.merge({
|
18
21
|
children: children,
|
19
|
-
})
|
22
|
+
}) #: Herb::serialized_document_node
|
20
23
|
end
|
21
24
|
|
25
|
+
#: (Visitor) -> void
|
26
|
+
def accept(visitor)
|
27
|
+
visitor.visit_document_node(self)
|
28
|
+
end
|
29
|
+
|
30
|
+
#: () -> Array[Herb::AST::Node?]
|
31
|
+
def child_nodes
|
32
|
+
[*children]
|
33
|
+
end
|
34
|
+
|
35
|
+
#: () -> Array[Herb::AST::Node]
|
36
|
+
def compact_child_nodes
|
37
|
+
child_nodes.compact
|
38
|
+
end
|
39
|
+
|
40
|
+
#: () -> String
|
22
41
|
def inspect
|
23
42
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
24
43
|
end
|
25
44
|
|
45
|
+
#: (?Integer) -> String
|
26
46
|
def tree_inspect(indent = 0)
|
27
47
|
output = +""
|
28
48
|
|
@@ -41,23 +61,42 @@ module Herb
|
|
41
61
|
end
|
42
62
|
|
43
63
|
class LiteralNode < Node
|
44
|
-
attr_reader :content
|
64
|
+
attr_reader :content #: String
|
45
65
|
|
66
|
+
#: (String, Location, Array[Herb::Errors::Error], String) -> void
|
46
67
|
def initialize(type, location, errors, content)
|
47
68
|
super(type, location, errors)
|
48
69
|
@content = content.force_encoding("utf-8")
|
49
70
|
end
|
50
71
|
|
72
|
+
#: () -> serialized_literal_node
|
51
73
|
def to_hash
|
52
74
|
super.merge({
|
53
75
|
content: content,
|
54
|
-
})
|
76
|
+
}) #: Herb::serialized_literal_node
|
77
|
+
end
|
78
|
+
|
79
|
+
#: (Visitor) -> void
|
80
|
+
def accept(visitor)
|
81
|
+
visitor.visit_literal_node(self)
|
82
|
+
end
|
83
|
+
|
84
|
+
#: () -> Array[Herb::AST::Node?]
|
85
|
+
def child_nodes
|
86
|
+
[]
|
87
|
+
end
|
88
|
+
|
89
|
+
#: () -> Array[Herb::AST::Node]
|
90
|
+
def compact_child_nodes
|
91
|
+
child_nodes.compact
|
55
92
|
end
|
56
93
|
|
94
|
+
#: () -> String
|
57
95
|
def inspect
|
58
96
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
59
97
|
end
|
60
98
|
|
99
|
+
#: (?Integer) -> String
|
61
100
|
def tree_inspect(indent = 0)
|
62
101
|
output = +""
|
63
102
|
|
@@ -75,12 +114,13 @@ module Herb
|
|
75
114
|
end
|
76
115
|
|
77
116
|
class HTMLOpenTagNode < Node
|
78
|
-
attr_reader :tag_opening
|
79
|
-
attr_reader :tag_name
|
80
|
-
attr_reader :tag_closing
|
81
|
-
attr_reader :children
|
82
|
-
attr_reader :is_void
|
117
|
+
attr_reader :tag_opening #: Herb::Token
|
118
|
+
attr_reader :tag_name #: Herb::Token
|
119
|
+
attr_reader :tag_closing #: Herb::Token
|
120
|
+
attr_reader :children #: Array[Herb::AST::Node]
|
121
|
+
attr_reader :is_void #: bool
|
83
122
|
|
123
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], bool) -> void
|
84
124
|
def initialize(type, location, errors, tag_opening, tag_name, tag_closing, children, is_void)
|
85
125
|
super(type, location, errors)
|
86
126
|
@tag_opening = tag_opening
|
@@ -90,6 +130,7 @@ module Herb
|
|
90
130
|
@is_void = is_void
|
91
131
|
end
|
92
132
|
|
133
|
+
#: () -> serialized_html_open_tag_node
|
93
134
|
def to_hash
|
94
135
|
super.merge({
|
95
136
|
tag_opening: tag_opening,
|
@@ -97,13 +138,30 @@ module Herb
|
|
97
138
|
tag_closing: tag_closing,
|
98
139
|
children: children,
|
99
140
|
is_void: is_void,
|
100
|
-
})
|
141
|
+
}) #: Herb::serialized_html_open_tag_node
|
142
|
+
end
|
143
|
+
|
144
|
+
#: (Visitor) -> void
|
145
|
+
def accept(visitor)
|
146
|
+
visitor.visit_html_open_tag_node(self)
|
101
147
|
end
|
102
148
|
|
149
|
+
#: () -> Array[Herb::AST::Node?]
|
150
|
+
def child_nodes
|
151
|
+
[*children]
|
152
|
+
end
|
153
|
+
|
154
|
+
#: () -> Array[Herb::AST::Node]
|
155
|
+
def compact_child_nodes
|
156
|
+
child_nodes.compact
|
157
|
+
end
|
158
|
+
|
159
|
+
#: () -> String
|
103
160
|
def inspect
|
104
161
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
105
162
|
end
|
106
163
|
|
164
|
+
#: (?Integer) -> String
|
107
165
|
def tree_inspect(indent = 0)
|
108
166
|
output = +""
|
109
167
|
|
@@ -134,10 +192,11 @@ module Herb
|
|
134
192
|
end
|
135
193
|
|
136
194
|
class HTMLCloseTagNode < Node
|
137
|
-
attr_reader :tag_opening
|
138
|
-
attr_reader :tag_name
|
139
|
-
attr_reader :tag_closing
|
195
|
+
attr_reader :tag_opening #: Herb::Token
|
196
|
+
attr_reader :tag_name #: Herb::Token
|
197
|
+
attr_reader :tag_closing #: Herb::Token
|
140
198
|
|
199
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token) -> void
|
141
200
|
def initialize(type, location, errors, tag_opening, tag_name, tag_closing)
|
142
201
|
super(type, location, errors)
|
143
202
|
@tag_opening = tag_opening
|
@@ -145,18 +204,36 @@ module Herb
|
|
145
204
|
@tag_closing = tag_closing
|
146
205
|
end
|
147
206
|
|
207
|
+
#: () -> serialized_html_close_tag_node
|
148
208
|
def to_hash
|
149
209
|
super.merge({
|
150
210
|
tag_opening: tag_opening,
|
151
211
|
tag_name: tag_name,
|
152
212
|
tag_closing: tag_closing,
|
153
|
-
})
|
213
|
+
}) #: Herb::serialized_html_close_tag_node
|
214
|
+
end
|
215
|
+
|
216
|
+
#: (Visitor) -> void
|
217
|
+
def accept(visitor)
|
218
|
+
visitor.visit_html_close_tag_node(self)
|
219
|
+
end
|
220
|
+
|
221
|
+
#: () -> Array[Herb::AST::Node?]
|
222
|
+
def child_nodes
|
223
|
+
[]
|
154
224
|
end
|
155
225
|
|
226
|
+
#: () -> Array[Herb::AST::Node]
|
227
|
+
def compact_child_nodes
|
228
|
+
child_nodes.compact
|
229
|
+
end
|
230
|
+
|
231
|
+
#: () -> String
|
156
232
|
def inspect
|
157
233
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
158
234
|
end
|
159
235
|
|
236
|
+
#: (?Integer) -> String
|
160
237
|
def tree_inspect(indent = 0)
|
161
238
|
output = +""
|
162
239
|
|
@@ -182,12 +259,13 @@ module Herb
|
|
182
259
|
end
|
183
260
|
|
184
261
|
class HTMLSelfCloseTagNode < Node
|
185
|
-
attr_reader :tag_opening
|
186
|
-
attr_reader :tag_name
|
187
|
-
attr_reader :attributes
|
188
|
-
attr_reader :tag_closing
|
189
|
-
attr_reader :is_void
|
262
|
+
attr_reader :tag_opening #: Herb::Token
|
263
|
+
attr_reader :tag_name #: Herb::Token
|
264
|
+
attr_reader :attributes #: Array[Herb::AST::HTMLAttributeNode]
|
265
|
+
attr_reader :tag_closing #: Herb::Token
|
266
|
+
attr_reader :is_void #: bool
|
190
267
|
|
268
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Array[Herb::AST::HTMLAttributeNode], Herb::Token, bool) -> void
|
191
269
|
def initialize(type, location, errors, tag_opening, tag_name, attributes, tag_closing, is_void)
|
192
270
|
super(type, location, errors)
|
193
271
|
@tag_opening = tag_opening
|
@@ -197,6 +275,7 @@ module Herb
|
|
197
275
|
@is_void = is_void
|
198
276
|
end
|
199
277
|
|
278
|
+
#: () -> serialized_html_self_close_tag_node
|
200
279
|
def to_hash
|
201
280
|
super.merge({
|
202
281
|
tag_opening: tag_opening,
|
@@ -204,13 +283,30 @@ module Herb
|
|
204
283
|
attributes: attributes,
|
205
284
|
tag_closing: tag_closing,
|
206
285
|
is_void: is_void,
|
207
|
-
})
|
286
|
+
}) #: Herb::serialized_html_self_close_tag_node
|
287
|
+
end
|
288
|
+
|
289
|
+
#: (Visitor) -> void
|
290
|
+
def accept(visitor)
|
291
|
+
visitor.visit_html_self_close_tag_node(self)
|
292
|
+
end
|
293
|
+
|
294
|
+
#: () -> Array[Herb::AST::Node?]
|
295
|
+
def child_nodes
|
296
|
+
[*attributes]
|
208
297
|
end
|
209
298
|
|
299
|
+
#: () -> Array[Herb::AST::Node]
|
300
|
+
def compact_child_nodes
|
301
|
+
child_nodes.compact
|
302
|
+
end
|
303
|
+
|
304
|
+
#: () -> String
|
210
305
|
def inspect
|
211
306
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
212
307
|
end
|
213
308
|
|
309
|
+
#: (?Integer) -> String
|
214
310
|
def tree_inspect(indent = 0)
|
215
311
|
output = +""
|
216
312
|
|
@@ -241,12 +337,13 @@ module Herb
|
|
241
337
|
end
|
242
338
|
|
243
339
|
class HTMLElementNode < Node
|
244
|
-
attr_reader :open_tag
|
245
|
-
attr_reader :tag_name
|
246
|
-
attr_reader :body
|
247
|
-
attr_reader :close_tag
|
248
|
-
attr_reader :is_void
|
340
|
+
attr_reader :open_tag #: Herb::AST::HTMLOpenTagNode
|
341
|
+
attr_reader :tag_name #: Herb::Token
|
342
|
+
attr_reader :body #: Array[Herb::AST::Node]
|
343
|
+
attr_reader :close_tag #: Herb::AST::HTMLCloseTagNode
|
344
|
+
attr_reader :is_void #: bool
|
249
345
|
|
346
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::AST::HTMLOpenTagNode, Herb::Token, Array[Herb::AST::Node], Herb::AST::HTMLCloseTagNode, bool) -> void
|
250
347
|
def initialize(type, location, errors, open_tag, tag_name, body, close_tag, is_void)
|
251
348
|
super(type, location, errors)
|
252
349
|
@open_tag = open_tag
|
@@ -256,6 +353,7 @@ module Herb
|
|
256
353
|
@is_void = is_void
|
257
354
|
end
|
258
355
|
|
356
|
+
#: () -> serialized_html_element_node
|
259
357
|
def to_hash
|
260
358
|
super.merge({
|
261
359
|
open_tag: open_tag,
|
@@ -263,13 +361,30 @@ module Herb
|
|
263
361
|
body: body,
|
264
362
|
close_tag: close_tag,
|
265
363
|
is_void: is_void,
|
266
|
-
})
|
364
|
+
}) #: Herb::serialized_html_element_node
|
267
365
|
end
|
268
366
|
|
367
|
+
#: (Visitor) -> void
|
368
|
+
def accept(visitor)
|
369
|
+
visitor.visit_html_element_node(self)
|
370
|
+
end
|
371
|
+
|
372
|
+
#: () -> Array[Herb::AST::Node?]
|
373
|
+
def child_nodes
|
374
|
+
[open_tag, *body, close_tag]
|
375
|
+
end
|
376
|
+
|
377
|
+
#: () -> Array[Herb::AST::Node]
|
378
|
+
def compact_child_nodes
|
379
|
+
child_nodes.compact
|
380
|
+
end
|
381
|
+
|
382
|
+
#: () -> String
|
269
383
|
def inspect
|
270
384
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
271
385
|
end
|
272
386
|
|
387
|
+
#: (?Integer) -> String
|
273
388
|
def tree_inspect(indent = 0)
|
274
389
|
output = +""
|
275
390
|
|
@@ -310,11 +425,12 @@ module Herb
|
|
310
425
|
end
|
311
426
|
|
312
427
|
class HTMLAttributeValueNode < Node
|
313
|
-
attr_reader :open_quote
|
314
|
-
attr_reader :children
|
315
|
-
attr_reader :close_quote
|
316
|
-
attr_reader :quoted
|
428
|
+
attr_reader :open_quote #: Herb::Token
|
429
|
+
attr_reader :children #: Array[Herb::AST::Node]
|
430
|
+
attr_reader :close_quote #: Herb::Token
|
431
|
+
attr_reader :quoted #: bool
|
317
432
|
|
433
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Array[Herb::AST::Node], Herb::Token, bool) -> void
|
318
434
|
def initialize(type, location, errors, open_quote, children, close_quote, quoted)
|
319
435
|
super(type, location, errors)
|
320
436
|
@open_quote = open_quote
|
@@ -323,19 +439,37 @@ module Herb
|
|
323
439
|
@quoted = quoted
|
324
440
|
end
|
325
441
|
|
442
|
+
#: () -> serialized_html_attribute_value_node
|
326
443
|
def to_hash
|
327
444
|
super.merge({
|
328
445
|
open_quote: open_quote,
|
329
446
|
children: children,
|
330
447
|
close_quote: close_quote,
|
331
448
|
quoted: quoted,
|
332
|
-
})
|
449
|
+
}) #: Herb::serialized_html_attribute_value_node
|
450
|
+
end
|
451
|
+
|
452
|
+
#: (Visitor) -> void
|
453
|
+
def accept(visitor)
|
454
|
+
visitor.visit_html_attribute_value_node(self)
|
333
455
|
end
|
334
456
|
|
457
|
+
#: () -> Array[Herb::AST::Node?]
|
458
|
+
def child_nodes
|
459
|
+
[*children]
|
460
|
+
end
|
461
|
+
|
462
|
+
#: () -> Array[Herb::AST::Node]
|
463
|
+
def compact_child_nodes
|
464
|
+
child_nodes.compact
|
465
|
+
end
|
466
|
+
|
467
|
+
#: () -> String
|
335
468
|
def inspect
|
336
469
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
337
470
|
end
|
338
471
|
|
472
|
+
#: (?Integer) -> String
|
339
473
|
def tree_inspect(indent = 0)
|
340
474
|
output = +""
|
341
475
|
|
@@ -363,23 +497,42 @@ module Herb
|
|
363
497
|
end
|
364
498
|
|
365
499
|
class HTMLAttributeNameNode < Node
|
366
|
-
attr_reader :name
|
500
|
+
attr_reader :name #: Herb::Token
|
367
501
|
|
502
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token) -> void
|
368
503
|
def initialize(type, location, errors, name)
|
369
504
|
super(type, location, errors)
|
370
505
|
@name = name
|
371
506
|
end
|
372
507
|
|
508
|
+
#: () -> serialized_html_attribute_name_node
|
373
509
|
def to_hash
|
374
510
|
super.merge({
|
375
511
|
name: name,
|
376
|
-
})
|
512
|
+
}) #: Herb::serialized_html_attribute_name_node
|
513
|
+
end
|
514
|
+
|
515
|
+
#: (Visitor) -> void
|
516
|
+
def accept(visitor)
|
517
|
+
visitor.visit_html_attribute_name_node(self)
|
518
|
+
end
|
519
|
+
|
520
|
+
#: () -> Array[Herb::AST::Node?]
|
521
|
+
def child_nodes
|
522
|
+
[]
|
377
523
|
end
|
378
524
|
|
525
|
+
#: () -> Array[Herb::AST::Node]
|
526
|
+
def compact_child_nodes
|
527
|
+
child_nodes.compact
|
528
|
+
end
|
529
|
+
|
530
|
+
#: () -> String
|
379
531
|
def inspect
|
380
532
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
381
533
|
end
|
382
534
|
|
535
|
+
#: (?Integer) -> String
|
383
536
|
def tree_inspect(indent = 0)
|
384
537
|
output = +""
|
385
538
|
|
@@ -399,10 +552,11 @@ module Herb
|
|
399
552
|
end
|
400
553
|
|
401
554
|
class HTMLAttributeNode < Node
|
402
|
-
attr_reader :name
|
403
|
-
attr_reader :equals
|
404
|
-
attr_reader :value
|
555
|
+
attr_reader :name #: Herb::AST::HTMLAttributeNameNode
|
556
|
+
attr_reader :equals #: Herb::Token
|
557
|
+
attr_reader :value #: Herb::AST::HTMLAttributeValueNode
|
405
558
|
|
559
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::AST::HTMLAttributeNameNode, Herb::Token, Herb::AST::HTMLAttributeValueNode) -> void
|
406
560
|
def initialize(type, location, errors, name, equals, value)
|
407
561
|
super(type, location, errors)
|
408
562
|
@name = name
|
@@ -410,18 +564,36 @@ module Herb
|
|
410
564
|
@value = value
|
411
565
|
end
|
412
566
|
|
567
|
+
#: () -> serialized_html_attribute_node
|
413
568
|
def to_hash
|
414
569
|
super.merge({
|
415
570
|
name: name,
|
416
571
|
equals: equals,
|
417
572
|
value: value,
|
418
|
-
})
|
573
|
+
}) #: Herb::serialized_html_attribute_node
|
574
|
+
end
|
575
|
+
|
576
|
+
#: (Visitor) -> void
|
577
|
+
def accept(visitor)
|
578
|
+
visitor.visit_html_attribute_node(self)
|
579
|
+
end
|
580
|
+
|
581
|
+
#: () -> Array[Herb::AST::Node?]
|
582
|
+
def child_nodes
|
583
|
+
[name, value]
|
584
|
+
end
|
585
|
+
|
586
|
+
#: () -> Array[Herb::AST::Node]
|
587
|
+
def compact_child_nodes
|
588
|
+
child_nodes.compact
|
419
589
|
end
|
420
590
|
|
591
|
+
#: () -> String
|
421
592
|
def inspect
|
422
593
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
423
594
|
end
|
424
595
|
|
596
|
+
#: (?Integer) -> String
|
425
597
|
def tree_inspect(indent = 0)
|
426
598
|
output = +""
|
427
599
|
|
@@ -457,23 +629,42 @@ module Herb
|
|
457
629
|
end
|
458
630
|
|
459
631
|
class HTMLTextNode < Node
|
460
|
-
attr_reader :content
|
632
|
+
attr_reader :content #: String
|
461
633
|
|
634
|
+
#: (String, Location, Array[Herb::Errors::Error], String) -> void
|
462
635
|
def initialize(type, location, errors, content)
|
463
636
|
super(type, location, errors)
|
464
637
|
@content = content.force_encoding("utf-8")
|
465
638
|
end
|
466
639
|
|
640
|
+
#: () -> serialized_html_text_node
|
467
641
|
def to_hash
|
468
642
|
super.merge({
|
469
643
|
content: content,
|
470
|
-
})
|
644
|
+
}) #: Herb::serialized_html_text_node
|
471
645
|
end
|
472
646
|
|
647
|
+
#: (Visitor) -> void
|
648
|
+
def accept(visitor)
|
649
|
+
visitor.visit_html_text_node(self)
|
650
|
+
end
|
651
|
+
|
652
|
+
#: () -> Array[Herb::AST::Node?]
|
653
|
+
def child_nodes
|
654
|
+
[]
|
655
|
+
end
|
656
|
+
|
657
|
+
#: () -> Array[Herb::AST::Node]
|
658
|
+
def compact_child_nodes
|
659
|
+
child_nodes.compact
|
660
|
+
end
|
661
|
+
|
662
|
+
#: () -> String
|
473
663
|
def inspect
|
474
664
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
475
665
|
end
|
476
666
|
|
667
|
+
#: (?Integer) -> String
|
477
668
|
def tree_inspect(indent = 0)
|
478
669
|
output = +""
|
479
670
|
|
@@ -491,10 +682,11 @@ module Herb
|
|
491
682
|
end
|
492
683
|
|
493
684
|
class HTMLCommentNode < Node
|
494
|
-
attr_reader :comment_start
|
495
|
-
attr_reader :children
|
496
|
-
attr_reader :comment_end
|
685
|
+
attr_reader :comment_start #: Herb::Token
|
686
|
+
attr_reader :children #: Array[Herb::AST::Node]
|
687
|
+
attr_reader :comment_end #: Herb::Token
|
497
688
|
|
689
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Array[Herb::AST::Node], Herb::Token) -> void
|
498
690
|
def initialize(type, location, errors, comment_start, children, comment_end)
|
499
691
|
super(type, location, errors)
|
500
692
|
@comment_start = comment_start
|
@@ -502,18 +694,36 @@ module Herb
|
|
502
694
|
@comment_end = comment_end
|
503
695
|
end
|
504
696
|
|
697
|
+
#: () -> serialized_html_comment_node
|
505
698
|
def to_hash
|
506
699
|
super.merge({
|
507
700
|
comment_start: comment_start,
|
508
701
|
children: children,
|
509
702
|
comment_end: comment_end,
|
510
|
-
})
|
703
|
+
}) #: Herb::serialized_html_comment_node
|
511
704
|
end
|
512
705
|
|
706
|
+
#: (Visitor) -> void
|
707
|
+
def accept(visitor)
|
708
|
+
visitor.visit_html_comment_node(self)
|
709
|
+
end
|
710
|
+
|
711
|
+
#: () -> Array[Herb::AST::Node?]
|
712
|
+
def child_nodes
|
713
|
+
[*children]
|
714
|
+
end
|
715
|
+
|
716
|
+
#: () -> Array[Herb::AST::Node]
|
717
|
+
def compact_child_nodes
|
718
|
+
child_nodes.compact
|
719
|
+
end
|
720
|
+
|
721
|
+
#: () -> String
|
513
722
|
def inspect
|
514
723
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
515
724
|
end
|
516
725
|
|
726
|
+
#: (?Integer) -> String
|
517
727
|
def tree_inspect(indent = 0)
|
518
728
|
output = +""
|
519
729
|
|
@@ -538,10 +748,11 @@ module Herb
|
|
538
748
|
end
|
539
749
|
|
540
750
|
class HTMLDoctypeNode < Node
|
541
|
-
attr_reader :tag_opening
|
542
|
-
attr_reader :children
|
543
|
-
attr_reader :tag_closing
|
751
|
+
attr_reader :tag_opening #: Herb::Token
|
752
|
+
attr_reader :children #: Array[Herb::AST::Node]
|
753
|
+
attr_reader :tag_closing #: Herb::Token
|
544
754
|
|
755
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Array[Herb::AST::Node], Herb::Token) -> void
|
545
756
|
def initialize(type, location, errors, tag_opening, children, tag_closing)
|
546
757
|
super(type, location, errors)
|
547
758
|
@tag_opening = tag_opening
|
@@ -549,18 +760,36 @@ module Herb
|
|
549
760
|
@tag_closing = tag_closing
|
550
761
|
end
|
551
762
|
|
763
|
+
#: () -> serialized_html_doctype_node
|
552
764
|
def to_hash
|
553
765
|
super.merge({
|
554
766
|
tag_opening: tag_opening,
|
555
767
|
children: children,
|
556
768
|
tag_closing: tag_closing,
|
557
|
-
})
|
769
|
+
}) #: Herb::serialized_html_doctype_node
|
770
|
+
end
|
771
|
+
|
772
|
+
#: (Visitor) -> void
|
773
|
+
def accept(visitor)
|
774
|
+
visitor.visit_html_doctype_node(self)
|
558
775
|
end
|
559
776
|
|
777
|
+
#: () -> Array[Herb::AST::Node?]
|
778
|
+
def child_nodes
|
779
|
+
[*children]
|
780
|
+
end
|
781
|
+
|
782
|
+
#: () -> Array[Herb::AST::Node]
|
783
|
+
def compact_child_nodes
|
784
|
+
child_nodes.compact
|
785
|
+
end
|
786
|
+
|
787
|
+
#: () -> String
|
560
788
|
def inspect
|
561
789
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
562
790
|
end
|
563
791
|
|
792
|
+
#: (?Integer) -> String
|
564
793
|
def tree_inspect(indent = 0)
|
565
794
|
output = +""
|
566
795
|
|
@@ -585,23 +814,42 @@ module Herb
|
|
585
814
|
end
|
586
815
|
|
587
816
|
class WhitespaceNode < Node
|
588
|
-
attr_reader :value
|
817
|
+
attr_reader :value #: Herb::Token
|
589
818
|
|
819
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token) -> void
|
590
820
|
def initialize(type, location, errors, value)
|
591
821
|
super(type, location, errors)
|
592
822
|
@value = value
|
593
823
|
end
|
594
824
|
|
825
|
+
#: () -> serialized_whitespace_node
|
595
826
|
def to_hash
|
596
827
|
super.merge({
|
597
828
|
value: value,
|
598
|
-
})
|
829
|
+
}) #: Herb::serialized_whitespace_node
|
830
|
+
end
|
831
|
+
|
832
|
+
#: (Visitor) -> void
|
833
|
+
def accept(visitor)
|
834
|
+
visitor.visit_whitespace_node(self)
|
835
|
+
end
|
836
|
+
|
837
|
+
#: () -> Array[Herb::AST::Node?]
|
838
|
+
def child_nodes
|
839
|
+
[]
|
599
840
|
end
|
600
841
|
|
842
|
+
#: () -> Array[Herb::AST::Node]
|
843
|
+
def compact_child_nodes
|
844
|
+
child_nodes.compact
|
845
|
+
end
|
846
|
+
|
847
|
+
#: () -> String
|
601
848
|
def inspect
|
602
849
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
603
850
|
end
|
604
851
|
|
852
|
+
#: (?Integer) -> String
|
605
853
|
def tree_inspect(indent = 0)
|
606
854
|
output = +""
|
607
855
|
|
@@ -621,13 +869,14 @@ module Herb
|
|
621
869
|
end
|
622
870
|
|
623
871
|
class ERBContentNode < Node
|
624
|
-
attr_reader :tag_opening
|
625
|
-
attr_reader :content
|
626
|
-
attr_reader :tag_closing
|
627
|
-
attr_reader :analyzed_ruby
|
628
|
-
attr_reader :parsed
|
629
|
-
attr_reader :valid
|
630
|
-
|
872
|
+
attr_reader :tag_opening #: Herb::Token
|
873
|
+
attr_reader :content #: Herb::Token
|
874
|
+
attr_reader :tag_closing #: Herb::Token
|
875
|
+
attr_reader :analyzed_ruby #: nil
|
876
|
+
attr_reader :parsed #: bool
|
877
|
+
attr_reader :valid #: bool
|
878
|
+
|
879
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, nil, bool, bool) -> void
|
631
880
|
def initialize(type, location, errors, tag_opening, content, tag_closing, analyzed_ruby, parsed, valid)
|
632
881
|
super(type, location, errors)
|
633
882
|
@tag_opening = tag_opening
|
@@ -638,6 +887,7 @@ module Herb
|
|
638
887
|
@valid = valid
|
639
888
|
end
|
640
889
|
|
890
|
+
#: () -> serialized_erb_content_node
|
641
891
|
def to_hash
|
642
892
|
super.merge({
|
643
893
|
tag_opening: tag_opening,
|
@@ -646,13 +896,30 @@ module Herb
|
|
646
896
|
analyzed_ruby: analyzed_ruby,
|
647
897
|
parsed: parsed,
|
648
898
|
valid: valid,
|
649
|
-
})
|
899
|
+
}) #: Herb::serialized_erb_content_node
|
900
|
+
end
|
901
|
+
|
902
|
+
#: (Visitor) -> void
|
903
|
+
def accept(visitor)
|
904
|
+
visitor.visit_erb_content_node(self)
|
650
905
|
end
|
651
906
|
|
907
|
+
#: () -> Array[Herb::AST::Node?]
|
908
|
+
def child_nodes
|
909
|
+
[]
|
910
|
+
end
|
911
|
+
|
912
|
+
#: () -> Array[Herb::AST::Node]
|
913
|
+
def compact_child_nodes
|
914
|
+
child_nodes.compact
|
915
|
+
end
|
916
|
+
|
917
|
+
#: () -> String
|
652
918
|
def inspect
|
653
919
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
654
920
|
end
|
655
921
|
|
922
|
+
#: (?Integer) -> String
|
656
923
|
def tree_inspect(indent = 0)
|
657
924
|
output = +""
|
658
925
|
|
@@ -685,10 +952,11 @@ module Herb
|
|
685
952
|
end
|
686
953
|
|
687
954
|
class ERBEndNode < Node
|
688
|
-
attr_reader :tag_opening
|
689
|
-
attr_reader :content
|
690
|
-
attr_reader :tag_closing
|
955
|
+
attr_reader :tag_opening #: Herb::Token
|
956
|
+
attr_reader :content #: Herb::Token
|
957
|
+
attr_reader :tag_closing #: Herb::Token
|
691
958
|
|
959
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token) -> void
|
692
960
|
def initialize(type, location, errors, tag_opening, content, tag_closing)
|
693
961
|
super(type, location, errors)
|
694
962
|
@tag_opening = tag_opening
|
@@ -696,18 +964,36 @@ module Herb
|
|
696
964
|
@tag_closing = tag_closing
|
697
965
|
end
|
698
966
|
|
967
|
+
#: () -> serialized_erb_end_node
|
699
968
|
def to_hash
|
700
969
|
super.merge({
|
701
970
|
tag_opening: tag_opening,
|
702
971
|
content: content,
|
703
972
|
tag_closing: tag_closing,
|
704
|
-
})
|
973
|
+
}) #: Herb::serialized_erb_end_node
|
974
|
+
end
|
975
|
+
|
976
|
+
#: (Visitor) -> void
|
977
|
+
def accept(visitor)
|
978
|
+
visitor.visit_erb_end_node(self)
|
979
|
+
end
|
980
|
+
|
981
|
+
#: () -> Array[Herb::AST::Node?]
|
982
|
+
def child_nodes
|
983
|
+
[]
|
705
984
|
end
|
706
985
|
|
986
|
+
#: () -> Array[Herb::AST::Node]
|
987
|
+
def compact_child_nodes
|
988
|
+
child_nodes.compact
|
989
|
+
end
|
990
|
+
|
991
|
+
#: () -> String
|
707
992
|
def inspect
|
708
993
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
709
994
|
end
|
710
995
|
|
996
|
+
#: (?Integer) -> String
|
711
997
|
def tree_inspect(indent = 0)
|
712
998
|
output = +""
|
713
999
|
|
@@ -733,11 +1019,12 @@ module Herb
|
|
733
1019
|
end
|
734
1020
|
|
735
1021
|
class ERBElseNode < Node
|
736
|
-
attr_reader :tag_opening
|
737
|
-
attr_reader :content
|
738
|
-
attr_reader :tag_closing
|
739
|
-
attr_reader :statements
|
1022
|
+
attr_reader :tag_opening #: Herb::Token
|
1023
|
+
attr_reader :content #: Herb::Token
|
1024
|
+
attr_reader :tag_closing #: Herb::Token
|
1025
|
+
attr_reader :statements #: Array[Herb::AST::Node]
|
740
1026
|
|
1027
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node]) -> void
|
741
1028
|
def initialize(type, location, errors, tag_opening, content, tag_closing, statements)
|
742
1029
|
super(type, location, errors)
|
743
1030
|
@tag_opening = tag_opening
|
@@ -746,19 +1033,37 @@ module Herb
|
|
746
1033
|
@statements = statements
|
747
1034
|
end
|
748
1035
|
|
1036
|
+
#: () -> serialized_erb_else_node
|
749
1037
|
def to_hash
|
750
1038
|
super.merge({
|
751
1039
|
tag_opening: tag_opening,
|
752
1040
|
content: content,
|
753
1041
|
tag_closing: tag_closing,
|
754
1042
|
statements: statements,
|
755
|
-
})
|
1043
|
+
}) #: Herb::serialized_erb_else_node
|
1044
|
+
end
|
1045
|
+
|
1046
|
+
#: (Visitor) -> void
|
1047
|
+
def accept(visitor)
|
1048
|
+
visitor.visit_erb_else_node(self)
|
1049
|
+
end
|
1050
|
+
|
1051
|
+
#: () -> Array[Herb::AST::Node?]
|
1052
|
+
def child_nodes
|
1053
|
+
[*statements]
|
1054
|
+
end
|
1055
|
+
|
1056
|
+
#: () -> Array[Herb::AST::Node]
|
1057
|
+
def compact_child_nodes
|
1058
|
+
child_nodes.compact
|
756
1059
|
end
|
757
1060
|
|
1061
|
+
#: () -> String
|
758
1062
|
def inspect
|
759
1063
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
760
1064
|
end
|
761
1065
|
|
1066
|
+
#: (?Integer) -> String
|
762
1067
|
def tree_inspect(indent = 0)
|
763
1068
|
output = +""
|
764
1069
|
|
@@ -786,13 +1091,14 @@ module Herb
|
|
786
1091
|
end
|
787
1092
|
|
788
1093
|
class ERBIfNode < Node
|
789
|
-
attr_reader :tag_opening
|
790
|
-
attr_reader :content
|
791
|
-
attr_reader :tag_closing
|
792
|
-
attr_reader :statements
|
793
|
-
attr_reader :subsequent
|
794
|
-
attr_reader :end_node
|
795
|
-
|
1094
|
+
attr_reader :tag_opening #: Herb::Token
|
1095
|
+
attr_reader :content #: Herb::Token
|
1096
|
+
attr_reader :tag_closing #: Herb::Token
|
1097
|
+
attr_reader :statements #: Array[Herb::AST::Node]
|
1098
|
+
attr_reader :subsequent #: Herb::AST::Node
|
1099
|
+
attr_reader :end_node #: Herb::AST::ERBEndNode
|
1100
|
+
|
1101
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::Node, Herb::AST::ERBEndNode) -> void
|
796
1102
|
def initialize(type, location, errors, tag_opening, content, tag_closing, statements, subsequent, end_node)
|
797
1103
|
super(type, location, errors)
|
798
1104
|
@tag_opening = tag_opening
|
@@ -803,6 +1109,7 @@ module Herb
|
|
803
1109
|
@end_node = end_node
|
804
1110
|
end
|
805
1111
|
|
1112
|
+
#: () -> serialized_erb_if_node
|
806
1113
|
def to_hash
|
807
1114
|
super.merge({
|
808
1115
|
tag_opening: tag_opening,
|
@@ -811,13 +1118,30 @@ module Herb
|
|
811
1118
|
statements: statements,
|
812
1119
|
subsequent: subsequent,
|
813
1120
|
end_node: end_node,
|
814
|
-
})
|
1121
|
+
}) #: Herb::serialized_erb_if_node
|
1122
|
+
end
|
1123
|
+
|
1124
|
+
#: (Visitor) -> void
|
1125
|
+
def accept(visitor)
|
1126
|
+
visitor.visit_erb_if_node(self)
|
815
1127
|
end
|
816
1128
|
|
1129
|
+
#: () -> Array[Herb::AST::Node?]
|
1130
|
+
def child_nodes
|
1131
|
+
[*statements, subsequent, end_node]
|
1132
|
+
end
|
1133
|
+
|
1134
|
+
#: () -> Array[Herb::AST::Node]
|
1135
|
+
def compact_child_nodes
|
1136
|
+
child_nodes.compact
|
1137
|
+
end
|
1138
|
+
|
1139
|
+
#: () -> String
|
817
1140
|
def inspect
|
818
1141
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
819
1142
|
end
|
820
1143
|
|
1144
|
+
#: (?Integer) -> String
|
821
1145
|
def tree_inspect(indent = 0)
|
822
1146
|
output = +""
|
823
1147
|
|
@@ -861,12 +1185,13 @@ module Herb
|
|
861
1185
|
end
|
862
1186
|
|
863
1187
|
class ERBBlockNode < Node
|
864
|
-
attr_reader :tag_opening
|
865
|
-
attr_reader :content
|
866
|
-
attr_reader :tag_closing
|
867
|
-
attr_reader :body
|
868
|
-
attr_reader :end_node
|
1188
|
+
attr_reader :tag_opening #: Herb::Token
|
1189
|
+
attr_reader :content #: Herb::Token
|
1190
|
+
attr_reader :tag_closing #: Herb::Token
|
1191
|
+
attr_reader :body #: Array[Herb::AST::Node]
|
1192
|
+
attr_reader :end_node #: Herb::AST::ERBEndNode
|
869
1193
|
|
1194
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
|
870
1195
|
def initialize(type, location, errors, tag_opening, content, tag_closing, body, end_node)
|
871
1196
|
super(type, location, errors)
|
872
1197
|
@tag_opening = tag_opening
|
@@ -876,6 +1201,7 @@ module Herb
|
|
876
1201
|
@end_node = end_node
|
877
1202
|
end
|
878
1203
|
|
1204
|
+
#: () -> serialized_erb_block_node
|
879
1205
|
def to_hash
|
880
1206
|
super.merge({
|
881
1207
|
tag_opening: tag_opening,
|
@@ -883,13 +1209,30 @@ module Herb
|
|
883
1209
|
tag_closing: tag_closing,
|
884
1210
|
body: body,
|
885
1211
|
end_node: end_node,
|
886
|
-
})
|
1212
|
+
}) #: Herb::serialized_erb_block_node
|
1213
|
+
end
|
1214
|
+
|
1215
|
+
#: (Visitor) -> void
|
1216
|
+
def accept(visitor)
|
1217
|
+
visitor.visit_erb_block_node(self)
|
1218
|
+
end
|
1219
|
+
|
1220
|
+
#: () -> Array[Herb::AST::Node?]
|
1221
|
+
def child_nodes
|
1222
|
+
[*body, end_node]
|
887
1223
|
end
|
888
1224
|
|
1225
|
+
#: () -> Array[Herb::AST::Node]
|
1226
|
+
def compact_child_nodes
|
1227
|
+
child_nodes.compact
|
1228
|
+
end
|
1229
|
+
|
1230
|
+
#: () -> String
|
889
1231
|
def inspect
|
890
1232
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
891
1233
|
end
|
892
1234
|
|
1235
|
+
#: (?Integer) -> String
|
893
1236
|
def tree_inspect(indent = 0)
|
894
1237
|
output = +""
|
895
1238
|
|
@@ -925,11 +1268,12 @@ module Herb
|
|
925
1268
|
end
|
926
1269
|
|
927
1270
|
class ERBWhenNode < Node
|
928
|
-
attr_reader :tag_opening
|
929
|
-
attr_reader :content
|
930
|
-
attr_reader :tag_closing
|
931
|
-
attr_reader :statements
|
1271
|
+
attr_reader :tag_opening #: Herb::Token
|
1272
|
+
attr_reader :content #: Herb::Token
|
1273
|
+
attr_reader :tag_closing #: Herb::Token
|
1274
|
+
attr_reader :statements #: Array[Herb::AST::Node]
|
932
1275
|
|
1276
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node]) -> void
|
933
1277
|
def initialize(type, location, errors, tag_opening, content, tag_closing, statements)
|
934
1278
|
super(type, location, errors)
|
935
1279
|
@tag_opening = tag_opening
|
@@ -938,19 +1282,37 @@ module Herb
|
|
938
1282
|
@statements = statements
|
939
1283
|
end
|
940
1284
|
|
1285
|
+
#: () -> serialized_erb_when_node
|
941
1286
|
def to_hash
|
942
1287
|
super.merge({
|
943
1288
|
tag_opening: tag_opening,
|
944
1289
|
content: content,
|
945
1290
|
tag_closing: tag_closing,
|
946
1291
|
statements: statements,
|
947
|
-
})
|
1292
|
+
}) #: Herb::serialized_erb_when_node
|
1293
|
+
end
|
1294
|
+
|
1295
|
+
#: (Visitor) -> void
|
1296
|
+
def accept(visitor)
|
1297
|
+
visitor.visit_erb_when_node(self)
|
1298
|
+
end
|
1299
|
+
|
1300
|
+
#: () -> Array[Herb::AST::Node?]
|
1301
|
+
def child_nodes
|
1302
|
+
[*statements]
|
948
1303
|
end
|
949
1304
|
|
1305
|
+
#: () -> Array[Herb::AST::Node]
|
1306
|
+
def compact_child_nodes
|
1307
|
+
child_nodes.compact
|
1308
|
+
end
|
1309
|
+
|
1310
|
+
#: () -> String
|
950
1311
|
def inspect
|
951
1312
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
952
1313
|
end
|
953
1314
|
|
1315
|
+
#: (?Integer) -> String
|
954
1316
|
def tree_inspect(indent = 0)
|
955
1317
|
output = +""
|
956
1318
|
|
@@ -978,14 +1340,114 @@ module Herb
|
|
978
1340
|
end
|
979
1341
|
|
980
1342
|
class ERBCaseNode < Node
|
981
|
-
attr_reader :tag_opening
|
982
|
-
attr_reader :content
|
983
|
-
attr_reader :tag_closing
|
984
|
-
attr_reader :children
|
985
|
-
attr_reader :conditions
|
986
|
-
attr_reader :else_clause
|
987
|
-
attr_reader :end_node
|
1343
|
+
attr_reader :tag_opening #: Herb::Token
|
1344
|
+
attr_reader :content #: Herb::Token
|
1345
|
+
attr_reader :tag_closing #: Herb::Token
|
1346
|
+
attr_reader :children #: Array[Herb::AST::Node]
|
1347
|
+
attr_reader :conditions #: Array[Herb::AST::ERBWhenNode]
|
1348
|
+
attr_reader :else_clause #: Herb::AST::ERBElseNode
|
1349
|
+
attr_reader :end_node #: Herb::AST::ERBEndNode
|
1350
|
+
|
1351
|
+
#: (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
|
1352
|
+
def initialize(type, location, errors, tag_opening, content, tag_closing, children, conditions, else_clause, end_node)
|
1353
|
+
super(type, location, errors)
|
1354
|
+
@tag_opening = tag_opening
|
1355
|
+
@content = content
|
1356
|
+
@tag_closing = tag_closing
|
1357
|
+
@children = children
|
1358
|
+
@conditions = conditions
|
1359
|
+
@else_clause = else_clause
|
1360
|
+
@end_node = end_node
|
1361
|
+
end
|
1362
|
+
|
1363
|
+
#: () -> serialized_erb_case_node
|
1364
|
+
def to_hash
|
1365
|
+
super.merge({
|
1366
|
+
tag_opening: tag_opening,
|
1367
|
+
content: content,
|
1368
|
+
tag_closing: tag_closing,
|
1369
|
+
children: children,
|
1370
|
+
conditions: conditions,
|
1371
|
+
else_clause: else_clause,
|
1372
|
+
end_node: end_node,
|
1373
|
+
}) #: Herb::serialized_erb_case_node
|
1374
|
+
end
|
1375
|
+
|
1376
|
+
#: (Visitor) -> void
|
1377
|
+
def accept(visitor)
|
1378
|
+
visitor.visit_erb_case_node(self)
|
1379
|
+
end
|
1380
|
+
|
1381
|
+
#: () -> Array[Herb::AST::Node?]
|
1382
|
+
def child_nodes
|
1383
|
+
[*children, *conditions, else_clause, end_node]
|
1384
|
+
end
|
1385
|
+
|
1386
|
+
#: () -> Array[Herb::AST::Node]
|
1387
|
+
def compact_child_nodes
|
1388
|
+
child_nodes.compact
|
1389
|
+
end
|
1390
|
+
|
1391
|
+
#: () -> String
|
1392
|
+
def inspect
|
1393
|
+
tree_inspect.rstrip.gsub(/\s+$/, "")
|
1394
|
+
end
|
1395
|
+
|
1396
|
+
#: (?Integer) -> String
|
1397
|
+
def tree_inspect(indent = 0)
|
1398
|
+
output = +""
|
1399
|
+
|
1400
|
+
output += "@ #{node_name} "
|
1401
|
+
output += location.tree_inspect
|
1402
|
+
output += "\n"
|
1403
|
+
|
1404
|
+
output += inspect_errors(prefix: "│ ")
|
1405
|
+
|
1406
|
+
output += "├── tag_opening: "
|
1407
|
+
output += tag_opening ? tag_opening.tree_inspect : "∅"
|
1408
|
+
output += "\n"
|
1409
|
+
output += "├── content: "
|
1410
|
+
output += content ? content.tree_inspect : "∅"
|
1411
|
+
output += "\n"
|
1412
|
+
output += "├── tag_closing: "
|
1413
|
+
output += tag_closing ? tag_closing.tree_inspect : "∅"
|
1414
|
+
output += "\n"
|
1415
|
+
output += "├── children: "
|
1416
|
+
output += inspect_array(children, prefix: "│ ")
|
1417
|
+
output += "├── conditions: "
|
1418
|
+
output += inspect_array(conditions, prefix: "│ ")
|
1419
|
+
output += "├── else_clause: "
|
1420
|
+
if else_clause
|
1421
|
+
output += "\n"
|
1422
|
+
output += "│ └── "
|
1423
|
+
output += else_clause.tree_inspect(indent).gsub(/^/, " " * (indent + 1)).lstrip.gsub(/^/, "│ ").delete_prefix("│ ")
|
1424
|
+
else
|
1425
|
+
output += "∅\n"
|
1426
|
+
end
|
1427
|
+
output += "└── end_node: "
|
1428
|
+
if end_node
|
1429
|
+
output += "\n"
|
1430
|
+
output += " └── "
|
1431
|
+
output += end_node.tree_inspect(indent).gsub(/^/, " " * (indent + 1)).lstrip.gsub(/^/, " ").delete_prefix(" ")
|
1432
|
+
else
|
1433
|
+
output += "∅\n"
|
1434
|
+
end
|
1435
|
+
output += "\n"
|
988
1436
|
|
1437
|
+
output.gsub(/^/, " " * indent)
|
1438
|
+
end
|
1439
|
+
end
|
1440
|
+
|
1441
|
+
class ERBCaseMatchNode < Node
|
1442
|
+
attr_reader :tag_opening #: Herb::Token
|
1443
|
+
attr_reader :content #: Herb::Token
|
1444
|
+
attr_reader :tag_closing #: Herb::Token
|
1445
|
+
attr_reader :children #: Array[Herb::AST::Node]
|
1446
|
+
attr_reader :conditions #: Array[Herb::AST::ERBInNode]
|
1447
|
+
attr_reader :else_clause #: Herb::AST::ERBElseNode
|
1448
|
+
attr_reader :end_node #: Herb::AST::ERBEndNode
|
1449
|
+
|
1450
|
+
#: (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
|
989
1451
|
def initialize(type, location, errors, tag_opening, content, tag_closing, children, conditions, else_clause, end_node)
|
990
1452
|
super(type, location, errors)
|
991
1453
|
@tag_opening = tag_opening
|
@@ -997,6 +1459,7 @@ module Herb
|
|
997
1459
|
@end_node = end_node
|
998
1460
|
end
|
999
1461
|
|
1462
|
+
#: () -> serialized_erb_case_match_node
|
1000
1463
|
def to_hash
|
1001
1464
|
super.merge({
|
1002
1465
|
tag_opening: tag_opening,
|
@@ -1006,13 +1469,30 @@ module Herb
|
|
1006
1469
|
conditions: conditions,
|
1007
1470
|
else_clause: else_clause,
|
1008
1471
|
end_node: end_node,
|
1009
|
-
})
|
1472
|
+
}) #: Herb::serialized_erb_case_match_node
|
1473
|
+
end
|
1474
|
+
|
1475
|
+
#: (Visitor) -> void
|
1476
|
+
def accept(visitor)
|
1477
|
+
visitor.visit_erb_case_match_node(self)
|
1010
1478
|
end
|
1011
1479
|
|
1480
|
+
#: () -> Array[Herb::AST::Node?]
|
1481
|
+
def child_nodes
|
1482
|
+
[*children, *conditions, else_clause, end_node]
|
1483
|
+
end
|
1484
|
+
|
1485
|
+
#: () -> Array[Herb::AST::Node]
|
1486
|
+
def compact_child_nodes
|
1487
|
+
child_nodes.compact
|
1488
|
+
end
|
1489
|
+
|
1490
|
+
#: () -> String
|
1012
1491
|
def inspect
|
1013
1492
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
1014
1493
|
end
|
1015
1494
|
|
1495
|
+
#: (?Integer) -> String
|
1016
1496
|
def tree_inspect(indent = 0)
|
1017
1497
|
output = +""
|
1018
1498
|
|
@@ -1058,12 +1538,13 @@ module Herb
|
|
1058
1538
|
end
|
1059
1539
|
|
1060
1540
|
class ERBWhileNode < Node
|
1061
|
-
attr_reader :tag_opening
|
1062
|
-
attr_reader :content
|
1063
|
-
attr_reader :tag_closing
|
1064
|
-
attr_reader :statements
|
1065
|
-
attr_reader :end_node
|
1541
|
+
attr_reader :tag_opening #: Herb::Token
|
1542
|
+
attr_reader :content #: Herb::Token
|
1543
|
+
attr_reader :tag_closing #: Herb::Token
|
1544
|
+
attr_reader :statements #: Array[Herb::AST::Node]
|
1545
|
+
attr_reader :end_node #: Herb::AST::ERBEndNode
|
1066
1546
|
|
1547
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
|
1067
1548
|
def initialize(type, location, errors, tag_opening, content, tag_closing, statements, end_node)
|
1068
1549
|
super(type, location, errors)
|
1069
1550
|
@tag_opening = tag_opening
|
@@ -1073,6 +1554,7 @@ module Herb
|
|
1073
1554
|
@end_node = end_node
|
1074
1555
|
end
|
1075
1556
|
|
1557
|
+
#: () -> serialized_erb_while_node
|
1076
1558
|
def to_hash
|
1077
1559
|
super.merge({
|
1078
1560
|
tag_opening: tag_opening,
|
@@ -1080,13 +1562,30 @@ module Herb
|
|
1080
1562
|
tag_closing: tag_closing,
|
1081
1563
|
statements: statements,
|
1082
1564
|
end_node: end_node,
|
1083
|
-
})
|
1565
|
+
}) #: Herb::serialized_erb_while_node
|
1566
|
+
end
|
1567
|
+
|
1568
|
+
#: (Visitor) -> void
|
1569
|
+
def accept(visitor)
|
1570
|
+
visitor.visit_erb_while_node(self)
|
1084
1571
|
end
|
1085
1572
|
|
1573
|
+
#: () -> Array[Herb::AST::Node?]
|
1574
|
+
def child_nodes
|
1575
|
+
[*statements, end_node]
|
1576
|
+
end
|
1577
|
+
|
1578
|
+
#: () -> Array[Herb::AST::Node]
|
1579
|
+
def compact_child_nodes
|
1580
|
+
child_nodes.compact
|
1581
|
+
end
|
1582
|
+
|
1583
|
+
#: () -> String
|
1086
1584
|
def inspect
|
1087
1585
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
1088
1586
|
end
|
1089
1587
|
|
1588
|
+
#: (?Integer) -> String
|
1090
1589
|
def tree_inspect(indent = 0)
|
1091
1590
|
output = +""
|
1092
1591
|
|
@@ -1122,12 +1621,13 @@ module Herb
|
|
1122
1621
|
end
|
1123
1622
|
|
1124
1623
|
class ERBUntilNode < Node
|
1125
|
-
attr_reader :tag_opening
|
1126
|
-
attr_reader :content
|
1127
|
-
attr_reader :tag_closing
|
1128
|
-
attr_reader :statements
|
1129
|
-
attr_reader :end_node
|
1624
|
+
attr_reader :tag_opening #: Herb::Token
|
1625
|
+
attr_reader :content #: Herb::Token
|
1626
|
+
attr_reader :tag_closing #: Herb::Token
|
1627
|
+
attr_reader :statements #: Array[Herb::AST::Node]
|
1628
|
+
attr_reader :end_node #: Herb::AST::ERBEndNode
|
1130
1629
|
|
1630
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
|
1131
1631
|
def initialize(type, location, errors, tag_opening, content, tag_closing, statements, end_node)
|
1132
1632
|
super(type, location, errors)
|
1133
1633
|
@tag_opening = tag_opening
|
@@ -1137,6 +1637,7 @@ module Herb
|
|
1137
1637
|
@end_node = end_node
|
1138
1638
|
end
|
1139
1639
|
|
1640
|
+
#: () -> serialized_erb_until_node
|
1140
1641
|
def to_hash
|
1141
1642
|
super.merge({
|
1142
1643
|
tag_opening: tag_opening,
|
@@ -1144,13 +1645,30 @@ module Herb
|
|
1144
1645
|
tag_closing: tag_closing,
|
1145
1646
|
statements: statements,
|
1146
1647
|
end_node: end_node,
|
1147
|
-
})
|
1648
|
+
}) #: Herb::serialized_erb_until_node
|
1148
1649
|
end
|
1149
1650
|
|
1651
|
+
#: (Visitor) -> void
|
1652
|
+
def accept(visitor)
|
1653
|
+
visitor.visit_erb_until_node(self)
|
1654
|
+
end
|
1655
|
+
|
1656
|
+
#: () -> Array[Herb::AST::Node?]
|
1657
|
+
def child_nodes
|
1658
|
+
[*statements, end_node]
|
1659
|
+
end
|
1660
|
+
|
1661
|
+
#: () -> Array[Herb::AST::Node]
|
1662
|
+
def compact_child_nodes
|
1663
|
+
child_nodes.compact
|
1664
|
+
end
|
1665
|
+
|
1666
|
+
#: () -> String
|
1150
1667
|
def inspect
|
1151
1668
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
1152
1669
|
end
|
1153
1670
|
|
1671
|
+
#: (?Integer) -> String
|
1154
1672
|
def tree_inspect(indent = 0)
|
1155
1673
|
output = +""
|
1156
1674
|
|
@@ -1186,12 +1704,13 @@ module Herb
|
|
1186
1704
|
end
|
1187
1705
|
|
1188
1706
|
class ERBForNode < Node
|
1189
|
-
attr_reader :tag_opening
|
1190
|
-
attr_reader :content
|
1191
|
-
attr_reader :tag_closing
|
1192
|
-
attr_reader :statements
|
1193
|
-
attr_reader :end_node
|
1707
|
+
attr_reader :tag_opening #: Herb::Token
|
1708
|
+
attr_reader :content #: Herb::Token
|
1709
|
+
attr_reader :tag_closing #: Herb::Token
|
1710
|
+
attr_reader :statements #: Array[Herb::AST::Node]
|
1711
|
+
attr_reader :end_node #: Herb::AST::ERBEndNode
|
1194
1712
|
|
1713
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBEndNode) -> void
|
1195
1714
|
def initialize(type, location, errors, tag_opening, content, tag_closing, statements, end_node)
|
1196
1715
|
super(type, location, errors)
|
1197
1716
|
@tag_opening = tag_opening
|
@@ -1201,6 +1720,7 @@ module Herb
|
|
1201
1720
|
@end_node = end_node
|
1202
1721
|
end
|
1203
1722
|
|
1723
|
+
#: () -> serialized_erb_for_node
|
1204
1724
|
def to_hash
|
1205
1725
|
super.merge({
|
1206
1726
|
tag_opening: tag_opening,
|
@@ -1208,13 +1728,30 @@ module Herb
|
|
1208
1728
|
tag_closing: tag_closing,
|
1209
1729
|
statements: statements,
|
1210
1730
|
end_node: end_node,
|
1211
|
-
})
|
1731
|
+
}) #: Herb::serialized_erb_for_node
|
1732
|
+
end
|
1733
|
+
|
1734
|
+
#: (Visitor) -> void
|
1735
|
+
def accept(visitor)
|
1736
|
+
visitor.visit_erb_for_node(self)
|
1737
|
+
end
|
1738
|
+
|
1739
|
+
#: () -> Array[Herb::AST::Node?]
|
1740
|
+
def child_nodes
|
1741
|
+
[*statements, end_node]
|
1742
|
+
end
|
1743
|
+
|
1744
|
+
#: () -> Array[Herb::AST::Node]
|
1745
|
+
def compact_child_nodes
|
1746
|
+
child_nodes.compact
|
1212
1747
|
end
|
1213
1748
|
|
1749
|
+
#: () -> String
|
1214
1750
|
def inspect
|
1215
1751
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
1216
1752
|
end
|
1217
1753
|
|
1754
|
+
#: (?Integer) -> String
|
1218
1755
|
def tree_inspect(indent = 0)
|
1219
1756
|
output = +""
|
1220
1757
|
|
@@ -1250,12 +1787,13 @@ module Herb
|
|
1250
1787
|
end
|
1251
1788
|
|
1252
1789
|
class ERBRescueNode < Node
|
1253
|
-
attr_reader :tag_opening
|
1254
|
-
attr_reader :content
|
1255
|
-
attr_reader :tag_closing
|
1256
|
-
attr_reader :statements
|
1257
|
-
attr_reader :subsequent
|
1790
|
+
attr_reader :tag_opening #: Herb::Token
|
1791
|
+
attr_reader :content #: Herb::Token
|
1792
|
+
attr_reader :tag_closing #: Herb::Token
|
1793
|
+
attr_reader :statements #: Array[Herb::AST::Node]
|
1794
|
+
attr_reader :subsequent #: Herb::AST::ERBRescueNode
|
1258
1795
|
|
1796
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBRescueNode) -> void
|
1259
1797
|
def initialize(type, location, errors, tag_opening, content, tag_closing, statements, subsequent)
|
1260
1798
|
super(type, location, errors)
|
1261
1799
|
@tag_opening = tag_opening
|
@@ -1265,6 +1803,7 @@ module Herb
|
|
1265
1803
|
@subsequent = subsequent
|
1266
1804
|
end
|
1267
1805
|
|
1806
|
+
#: () -> serialized_erb_rescue_node
|
1268
1807
|
def to_hash
|
1269
1808
|
super.merge({
|
1270
1809
|
tag_opening: tag_opening,
|
@@ -1272,13 +1811,30 @@ module Herb
|
|
1272
1811
|
tag_closing: tag_closing,
|
1273
1812
|
statements: statements,
|
1274
1813
|
subsequent: subsequent,
|
1275
|
-
})
|
1814
|
+
}) #: Herb::serialized_erb_rescue_node
|
1815
|
+
end
|
1816
|
+
|
1817
|
+
#: (Visitor) -> void
|
1818
|
+
def accept(visitor)
|
1819
|
+
visitor.visit_erb_rescue_node(self)
|
1276
1820
|
end
|
1277
1821
|
|
1822
|
+
#: () -> Array[Herb::AST::Node?]
|
1823
|
+
def child_nodes
|
1824
|
+
[*statements, subsequent]
|
1825
|
+
end
|
1826
|
+
|
1827
|
+
#: () -> Array[Herb::AST::Node]
|
1828
|
+
def compact_child_nodes
|
1829
|
+
child_nodes.compact
|
1830
|
+
end
|
1831
|
+
|
1832
|
+
#: () -> String
|
1278
1833
|
def inspect
|
1279
1834
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
1280
1835
|
end
|
1281
1836
|
|
1837
|
+
#: (?Integer) -> String
|
1282
1838
|
def tree_inspect(indent = 0)
|
1283
1839
|
output = +""
|
1284
1840
|
|
@@ -1314,11 +1870,12 @@ module Herb
|
|
1314
1870
|
end
|
1315
1871
|
|
1316
1872
|
class ERBEnsureNode < Node
|
1317
|
-
attr_reader :tag_opening
|
1318
|
-
attr_reader :content
|
1319
|
-
attr_reader :tag_closing
|
1320
|
-
attr_reader :statements
|
1873
|
+
attr_reader :tag_opening #: Herb::Token
|
1874
|
+
attr_reader :content #: Herb::Token
|
1875
|
+
attr_reader :tag_closing #: Herb::Token
|
1876
|
+
attr_reader :statements #: Array[Herb::AST::Node]
|
1321
1877
|
|
1878
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node]) -> void
|
1322
1879
|
def initialize(type, location, errors, tag_opening, content, tag_closing, statements)
|
1323
1880
|
super(type, location, errors)
|
1324
1881
|
@tag_opening = tag_opening
|
@@ -1327,19 +1884,37 @@ module Herb
|
|
1327
1884
|
@statements = statements
|
1328
1885
|
end
|
1329
1886
|
|
1887
|
+
#: () -> serialized_erb_ensure_node
|
1330
1888
|
def to_hash
|
1331
1889
|
super.merge({
|
1332
1890
|
tag_opening: tag_opening,
|
1333
1891
|
content: content,
|
1334
1892
|
tag_closing: tag_closing,
|
1335
1893
|
statements: statements,
|
1336
|
-
})
|
1894
|
+
}) #: Herb::serialized_erb_ensure_node
|
1895
|
+
end
|
1896
|
+
|
1897
|
+
#: (Visitor) -> void
|
1898
|
+
def accept(visitor)
|
1899
|
+
visitor.visit_erb_ensure_node(self)
|
1900
|
+
end
|
1901
|
+
|
1902
|
+
#: () -> Array[Herb::AST::Node?]
|
1903
|
+
def child_nodes
|
1904
|
+
[*statements]
|
1337
1905
|
end
|
1338
1906
|
|
1907
|
+
#: () -> Array[Herb::AST::Node]
|
1908
|
+
def compact_child_nodes
|
1909
|
+
child_nodes.compact
|
1910
|
+
end
|
1911
|
+
|
1912
|
+
#: () -> String
|
1339
1913
|
def inspect
|
1340
1914
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
1341
1915
|
end
|
1342
1916
|
|
1917
|
+
#: (?Integer) -> String
|
1343
1918
|
def tree_inspect(indent = 0)
|
1344
1919
|
output = +""
|
1345
1920
|
|
@@ -1367,15 +1942,16 @@ module Herb
|
|
1367
1942
|
end
|
1368
1943
|
|
1369
1944
|
class ERBBeginNode < Node
|
1370
|
-
attr_reader :tag_opening
|
1371
|
-
attr_reader :content
|
1372
|
-
attr_reader :tag_closing
|
1373
|
-
attr_reader :statements
|
1374
|
-
attr_reader :rescue_clause
|
1375
|
-
attr_reader :else_clause
|
1376
|
-
attr_reader :ensure_clause
|
1377
|
-
attr_reader :end_node
|
1378
|
-
|
1945
|
+
attr_reader :tag_opening #: Herb::Token
|
1946
|
+
attr_reader :content #: Herb::Token
|
1947
|
+
attr_reader :tag_closing #: Herb::Token
|
1948
|
+
attr_reader :statements #: Array[Herb::AST::Node]
|
1949
|
+
attr_reader :rescue_clause #: Herb::AST::ERBRescueNode
|
1950
|
+
attr_reader :else_clause #: Herb::AST::ERBElseNode
|
1951
|
+
attr_reader :ensure_clause #: Herb::AST::ERBEnsureNode
|
1952
|
+
attr_reader :end_node #: Herb::AST::ERBEndNode
|
1953
|
+
|
1954
|
+
#: (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
|
1379
1955
|
def initialize(type, location, errors, tag_opening, content, tag_closing, statements, rescue_clause, else_clause, ensure_clause, end_node)
|
1380
1956
|
super(type, location, errors)
|
1381
1957
|
@tag_opening = tag_opening
|
@@ -1388,6 +1964,7 @@ module Herb
|
|
1388
1964
|
@end_node = end_node
|
1389
1965
|
end
|
1390
1966
|
|
1967
|
+
#: () -> serialized_erb_begin_node
|
1391
1968
|
def to_hash
|
1392
1969
|
super.merge({
|
1393
1970
|
tag_opening: tag_opening,
|
@@ -1398,13 +1975,30 @@ module Herb
|
|
1398
1975
|
else_clause: else_clause,
|
1399
1976
|
ensure_clause: ensure_clause,
|
1400
1977
|
end_node: end_node,
|
1401
|
-
})
|
1978
|
+
}) #: Herb::serialized_erb_begin_node
|
1402
1979
|
end
|
1403
1980
|
|
1981
|
+
#: (Visitor) -> void
|
1982
|
+
def accept(visitor)
|
1983
|
+
visitor.visit_erb_begin_node(self)
|
1984
|
+
end
|
1985
|
+
|
1986
|
+
#: () -> Array[Herb::AST::Node?]
|
1987
|
+
def child_nodes
|
1988
|
+
[*statements, rescue_clause, else_clause, ensure_clause, end_node]
|
1989
|
+
end
|
1990
|
+
|
1991
|
+
#: () -> Array[Herb::AST::Node]
|
1992
|
+
def compact_child_nodes
|
1993
|
+
child_nodes.compact
|
1994
|
+
end
|
1995
|
+
|
1996
|
+
#: () -> String
|
1404
1997
|
def inspect
|
1405
1998
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
1406
1999
|
end
|
1407
2000
|
|
2001
|
+
#: (?Integer) -> String
|
1408
2002
|
def tree_inspect(indent = 0)
|
1409
2003
|
output = +""
|
1410
2004
|
|
@@ -1464,13 +2058,14 @@ module Herb
|
|
1464
2058
|
end
|
1465
2059
|
|
1466
2060
|
class ERBUnlessNode < Node
|
1467
|
-
attr_reader :tag_opening
|
1468
|
-
attr_reader :content
|
1469
|
-
attr_reader :tag_closing
|
1470
|
-
attr_reader :statements
|
1471
|
-
attr_reader :else_clause
|
1472
|
-
attr_reader :end_node
|
1473
|
-
|
2061
|
+
attr_reader :tag_opening #: Herb::Token
|
2062
|
+
attr_reader :content #: Herb::Token
|
2063
|
+
attr_reader :tag_closing #: Herb::Token
|
2064
|
+
attr_reader :statements #: Array[Herb::AST::Node]
|
2065
|
+
attr_reader :else_clause #: Herb::AST::ERBElseNode
|
2066
|
+
attr_reader :end_node #: Herb::AST::ERBEndNode
|
2067
|
+
|
2068
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node], Herb::AST::ERBElseNode, Herb::AST::ERBEndNode) -> void
|
1474
2069
|
def initialize(type, location, errors, tag_opening, content, tag_closing, statements, else_clause, end_node)
|
1475
2070
|
super(type, location, errors)
|
1476
2071
|
@tag_opening = tag_opening
|
@@ -1481,6 +2076,7 @@ module Herb
|
|
1481
2076
|
@end_node = end_node
|
1482
2077
|
end
|
1483
2078
|
|
2079
|
+
#: () -> serialized_erb_unless_node
|
1484
2080
|
def to_hash
|
1485
2081
|
super.merge({
|
1486
2082
|
tag_opening: tag_opening,
|
@@ -1489,13 +2085,30 @@ module Herb
|
|
1489
2085
|
statements: statements,
|
1490
2086
|
else_clause: else_clause,
|
1491
2087
|
end_node: end_node,
|
1492
|
-
})
|
2088
|
+
}) #: Herb::serialized_erb_unless_node
|
1493
2089
|
end
|
1494
2090
|
|
2091
|
+
#: (Visitor) -> void
|
2092
|
+
def accept(visitor)
|
2093
|
+
visitor.visit_erb_unless_node(self)
|
2094
|
+
end
|
2095
|
+
|
2096
|
+
#: () -> Array[Herb::AST::Node?]
|
2097
|
+
def child_nodes
|
2098
|
+
[*statements, else_clause, end_node]
|
2099
|
+
end
|
2100
|
+
|
2101
|
+
#: () -> Array[Herb::AST::Node]
|
2102
|
+
def compact_child_nodes
|
2103
|
+
child_nodes.compact
|
2104
|
+
end
|
2105
|
+
|
2106
|
+
#: () -> String
|
1495
2107
|
def inspect
|
1496
2108
|
tree_inspect.rstrip.gsub(/\s+$/, "")
|
1497
2109
|
end
|
1498
2110
|
|
2111
|
+
#: (?Integer) -> String
|
1499
2112
|
def tree_inspect(indent = 0)
|
1500
2113
|
output = +""
|
1501
2114
|
|
@@ -1538,5 +2151,144 @@ module Herb
|
|
1538
2151
|
end
|
1539
2152
|
end
|
1540
2153
|
|
2154
|
+
class ERBYieldNode < Node
|
2155
|
+
attr_reader :tag_opening #: Herb::Token
|
2156
|
+
attr_reader :content #: Herb::Token
|
2157
|
+
attr_reader :tag_closing #: Herb::Token
|
2158
|
+
|
2159
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token) -> void
|
2160
|
+
def initialize(type, location, errors, tag_opening, content, tag_closing)
|
2161
|
+
super(type, location, errors)
|
2162
|
+
@tag_opening = tag_opening
|
2163
|
+
@content = content
|
2164
|
+
@tag_closing = tag_closing
|
2165
|
+
end
|
2166
|
+
|
2167
|
+
#: () -> serialized_erb_yield_node
|
2168
|
+
def to_hash
|
2169
|
+
super.merge({
|
2170
|
+
tag_opening: tag_opening,
|
2171
|
+
content: content,
|
2172
|
+
tag_closing: tag_closing,
|
2173
|
+
}) #: Herb::serialized_erb_yield_node
|
2174
|
+
end
|
2175
|
+
|
2176
|
+
#: (Visitor) -> void
|
2177
|
+
def accept(visitor)
|
2178
|
+
visitor.visit_erb_yield_node(self)
|
2179
|
+
end
|
2180
|
+
|
2181
|
+
#: () -> Array[Herb::AST::Node?]
|
2182
|
+
def child_nodes
|
2183
|
+
[]
|
2184
|
+
end
|
2185
|
+
|
2186
|
+
#: () -> Array[Herb::AST::Node]
|
2187
|
+
def compact_child_nodes
|
2188
|
+
child_nodes.compact
|
2189
|
+
end
|
2190
|
+
|
2191
|
+
#: () -> String
|
2192
|
+
def inspect
|
2193
|
+
tree_inspect.rstrip.gsub(/\s+$/, "")
|
2194
|
+
end
|
2195
|
+
|
2196
|
+
#: (?Integer) -> String
|
2197
|
+
def tree_inspect(indent = 0)
|
2198
|
+
output = +""
|
2199
|
+
|
2200
|
+
output += "@ #{node_name} "
|
2201
|
+
output += location.tree_inspect
|
2202
|
+
output += "\n"
|
2203
|
+
|
2204
|
+
output += inspect_errors(prefix: "│ ")
|
2205
|
+
|
2206
|
+
output += "├── tag_opening: "
|
2207
|
+
output += tag_opening ? tag_opening.tree_inspect : "∅"
|
2208
|
+
output += "\n"
|
2209
|
+
output += "├── content: "
|
2210
|
+
output += content ? content.tree_inspect : "∅"
|
2211
|
+
output += "\n"
|
2212
|
+
output += "└── tag_closing: "
|
2213
|
+
output += tag_closing ? tag_closing.tree_inspect : "∅"
|
2214
|
+
output += "\n"
|
2215
|
+
output += "\n"
|
2216
|
+
|
2217
|
+
output.gsub(/^/, " " * indent)
|
2218
|
+
end
|
2219
|
+
end
|
2220
|
+
|
2221
|
+
class ERBInNode < Node
|
2222
|
+
attr_reader :tag_opening #: Herb::Token
|
2223
|
+
attr_reader :content #: Herb::Token
|
2224
|
+
attr_reader :tag_closing #: Herb::Token
|
2225
|
+
attr_reader :statements #: Array[Herb::AST::Node]
|
2226
|
+
|
2227
|
+
#: (String, Location, Array[Herb::Errors::Error], Herb::Token, Herb::Token, Herb::Token, Array[Herb::AST::Node]) -> void
|
2228
|
+
def initialize(type, location, errors, tag_opening, content, tag_closing, statements)
|
2229
|
+
super(type, location, errors)
|
2230
|
+
@tag_opening = tag_opening
|
2231
|
+
@content = content
|
2232
|
+
@tag_closing = tag_closing
|
2233
|
+
@statements = statements
|
2234
|
+
end
|
2235
|
+
|
2236
|
+
#: () -> serialized_erb_in_node
|
2237
|
+
def to_hash
|
2238
|
+
super.merge({
|
2239
|
+
tag_opening: tag_opening,
|
2240
|
+
content: content,
|
2241
|
+
tag_closing: tag_closing,
|
2242
|
+
statements: statements,
|
2243
|
+
}) #: Herb::serialized_erb_in_node
|
2244
|
+
end
|
2245
|
+
|
2246
|
+
#: (Visitor) -> void
|
2247
|
+
def accept(visitor)
|
2248
|
+
visitor.visit_erb_in_node(self)
|
2249
|
+
end
|
2250
|
+
|
2251
|
+
#: () -> Array[Herb::AST::Node?]
|
2252
|
+
def child_nodes
|
2253
|
+
[*statements]
|
2254
|
+
end
|
2255
|
+
|
2256
|
+
#: () -> Array[Herb::AST::Node]
|
2257
|
+
def compact_child_nodes
|
2258
|
+
child_nodes.compact
|
2259
|
+
end
|
2260
|
+
|
2261
|
+
#: () -> String
|
2262
|
+
def inspect
|
2263
|
+
tree_inspect.rstrip.gsub(/\s+$/, "")
|
2264
|
+
end
|
2265
|
+
|
2266
|
+
#: (?Integer) -> String
|
2267
|
+
def tree_inspect(indent = 0)
|
2268
|
+
output = +""
|
2269
|
+
|
2270
|
+
output += "@ #{node_name} "
|
2271
|
+
output += location.tree_inspect
|
2272
|
+
output += "\n"
|
2273
|
+
|
2274
|
+
output += inspect_errors(prefix: "│ ")
|
2275
|
+
|
2276
|
+
output += "├── tag_opening: "
|
2277
|
+
output += tag_opening ? tag_opening.tree_inspect : "∅"
|
2278
|
+
output += "\n"
|
2279
|
+
output += "├── content: "
|
2280
|
+
output += content ? content.tree_inspect : "∅"
|
2281
|
+
output += "\n"
|
2282
|
+
output += "├── tag_closing: "
|
2283
|
+
output += tag_closing ? tag_closing.tree_inspect : "∅"
|
2284
|
+
output += "\n"
|
2285
|
+
output += "└── statements: "
|
2286
|
+
output += inspect_array(statements, prefix: " ")
|
2287
|
+
output += "\n"
|
2288
|
+
|
2289
|
+
output.gsub(/^/, " " * indent)
|
2290
|
+
end
|
2291
|
+
end
|
2292
|
+
|
1541
2293
|
end
|
1542
2294
|
end
|