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