herb 0.7.4-aarch64-linux-gnu → 0.8.0-aarch64-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 (176) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +8 -5
  3. data/config.yml +40 -20
  4. data/ext/herb/error_helpers.c +57 -3
  5. data/ext/herb/error_helpers.h +1 -1
  6. data/ext/herb/extconf.rb +1 -0
  7. data/ext/herb/extension.c +10 -24
  8. data/ext/herb/extension_helpers.c +12 -18
  9. data/ext/herb/extension_helpers.h +4 -4
  10. data/ext/herb/nodes.c +72 -37
  11. data/herb.gemspec +0 -2
  12. data/lib/herb/3.0/herb.so +0 -0
  13. data/lib/herb/3.1/herb.so +0 -0
  14. data/lib/herb/3.2/herb.so +0 -0
  15. data/lib/herb/3.3/herb.so +0 -0
  16. data/lib/herb/3.4/herb.so +0 -0
  17. data/lib/herb/ast/helpers.rb +11 -0
  18. data/lib/herb/ast/node.rb +15 -6
  19. data/lib/herb/ast/nodes.rb +609 -392
  20. data/lib/herb/cli.rb +31 -0
  21. data/lib/herb/colors.rb +82 -0
  22. data/lib/herb/engine/compiler.rb +140 -14
  23. data/lib/herb/engine/debug_visitor.rb +1 -5
  24. data/lib/herb/engine/parser_error_overlay.rb +1 -1
  25. data/lib/herb/engine.rb +18 -20
  26. data/lib/herb/errors.rb +166 -56
  27. data/lib/herb/location.rb +2 -2
  28. data/lib/herb/project.rb +86 -21
  29. data/lib/herb/token.rb +14 -2
  30. data/lib/herb/version.rb +1 -1
  31. data/lib/herb.rb +1 -0
  32. data/sig/herb/ast/helpers.rbs +3 -0
  33. data/sig/herb/ast/node.rbs +12 -5
  34. data/sig/herb/ast/nodes.rbs +124 -62
  35. data/sig/herb/colors.rbs +35 -0
  36. data/sig/herb/engine/compiler.rbs +23 -1
  37. data/sig/herb/errors.rbs +74 -20
  38. data/sig/herb/token.rbs +8 -0
  39. data/sig/herb_c_extension.rbs +1 -1
  40. data/sig/serialized_ast_errors.rbs +8 -0
  41. data/src/analyze.c +461 -249
  42. data/src/analyze_helpers.c +5 -0
  43. data/src/analyze_missing_end.c +147 -0
  44. data/src/analyze_transform.c +196 -0
  45. data/src/analyzed_ruby.c +23 -2
  46. data/src/ast_node.c +14 -17
  47. data/src/ast_nodes.c +179 -181
  48. data/src/ast_pretty_print.c +232 -232
  49. data/src/element_source.c +7 -6
  50. data/src/errors.c +272 -152
  51. data/src/extract.c +92 -34
  52. data/src/herb.c +37 -49
  53. data/src/html_util.c +34 -96
  54. data/src/include/analyze.h +10 -2
  55. data/src/include/analyze_helpers.h +3 -0
  56. data/src/include/analyzed_ruby.h +4 -2
  57. data/src/include/ast_node.h +4 -4
  58. data/src/include/ast_nodes.h +68 -67
  59. data/src/include/ast_pretty_print.h +2 -2
  60. data/src/include/element_source.h +3 -1
  61. data/src/include/errors.h +42 -26
  62. data/src/include/extract.h +4 -4
  63. data/src/include/herb.h +6 -7
  64. data/src/include/html_util.h +4 -5
  65. data/src/include/lexer.h +1 -3
  66. data/src/include/lexer_peek_helpers.h +21 -19
  67. data/src/include/lexer_struct.h +12 -10
  68. data/src/include/location.h +10 -13
  69. data/src/include/macros.h +4 -0
  70. data/src/include/parser.h +12 -6
  71. data/src/include/parser_helpers.h +26 -16
  72. data/src/include/position.h +3 -14
  73. data/src/include/pretty_print.h +38 -28
  74. data/src/include/prism_helpers.h +1 -1
  75. data/src/include/range.h +4 -13
  76. data/src/include/token.h +5 -11
  77. data/src/include/token_struct.h +2 -2
  78. data/src/include/utf8.h +3 -2
  79. data/src/include/util/hb_arena.h +31 -0
  80. data/src/include/util/hb_arena_debug.h +8 -0
  81. data/src/include/util/hb_array.h +33 -0
  82. data/src/include/util/hb_buffer.h +34 -0
  83. data/src/include/util/hb_string.h +29 -0
  84. data/src/include/util/hb_system.h +9 -0
  85. data/src/include/util.h +3 -14
  86. data/src/include/version.h +1 -1
  87. data/src/include/visitor.h +1 -1
  88. data/src/io.c +7 -4
  89. data/src/lexer.c +62 -88
  90. data/src/lexer_peek_helpers.c +42 -38
  91. data/src/location.c +9 -37
  92. data/src/main.c +19 -23
  93. data/src/parser.c +373 -313
  94. data/src/parser_helpers.c +60 -54
  95. data/src/parser_match_tags.c +316 -0
  96. data/src/pretty_print.c +88 -117
  97. data/src/prism_helpers.c +7 -7
  98. data/src/range.c +2 -35
  99. data/src/token.c +36 -87
  100. data/src/utf8.c +4 -4
  101. data/src/util/hb_arena.c +179 -0
  102. data/src/util/hb_arena_debug.c +237 -0
  103. data/src/{array.c → util/hb_array.c} +26 -27
  104. data/src/util/hb_buffer.c +203 -0
  105. data/src/util/hb_string.c +85 -0
  106. data/src/util/hb_system.c +30 -0
  107. data/src/util.c +29 -99
  108. data/src/visitor.c +54 -54
  109. data/templates/ext/herb/error_helpers.c.erb +3 -3
  110. data/templates/ext/herb/error_helpers.h.erb +1 -1
  111. data/templates/ext/herb/nodes.c.erb +11 -6
  112. data/templates/java/error_helpers.c.erb +75 -0
  113. data/templates/java/error_helpers.h.erb +20 -0
  114. data/templates/java/nodes.c.erb +97 -0
  115. data/templates/java/nodes.h.erb +23 -0
  116. data/templates/java/org/herb/ast/Errors.java.erb +121 -0
  117. data/templates/java/org/herb/ast/NodeVisitor.java.erb +14 -0
  118. data/templates/java/org/herb/ast/Nodes.java.erb +220 -0
  119. data/templates/java/org/herb/ast/Visitor.java.erb +56 -0
  120. data/templates/javascript/packages/core/src/visitor.ts.erb +29 -1
  121. data/templates/javascript/packages/node/extension/error_helpers.cpp.erb +8 -8
  122. data/templates/javascript/packages/node/extension/error_helpers.h.erb +1 -1
  123. data/templates/javascript/packages/node/extension/nodes.cpp.erb +9 -9
  124. data/templates/javascript/packages/node/extension/nodes.h.erb +1 -1
  125. data/templates/lib/herb/ast/nodes.rb.erb +28 -16
  126. data/templates/lib/herb/errors.rb.erb +17 -12
  127. data/templates/rust/src/ast/nodes.rs.erb +220 -0
  128. data/templates/rust/src/errors.rs.erb +216 -0
  129. data/templates/rust/src/nodes.rs.erb +374 -0
  130. data/templates/src/analyze_missing_end.c.erb +36 -0
  131. data/templates/src/analyze_transform.c.erb +24 -0
  132. data/templates/src/ast_nodes.c.erb +14 -16
  133. data/templates/src/ast_pretty_print.c.erb +36 -36
  134. data/templates/src/errors.c.erb +36 -38
  135. data/templates/src/include/ast_nodes.h.erb +11 -10
  136. data/templates/src/include/ast_pretty_print.h.erb +2 -2
  137. data/templates/src/include/errors.h.erb +9 -9
  138. data/templates/src/parser_match_tags.c.erb +38 -0
  139. data/templates/src/visitor.c.erb +4 -4
  140. data/templates/template.rb +22 -3
  141. data/templates/wasm/error_helpers.cpp.erb +9 -9
  142. data/templates/wasm/error_helpers.h.erb +1 -1
  143. data/templates/wasm/nodes.cpp.erb +9 -9
  144. data/templates/wasm/nodes.h.erb +1 -1
  145. data/vendor/prism/Rakefile +4 -1
  146. data/vendor/prism/config.yml +2 -1
  147. data/vendor/prism/include/prism/ast.h +31 -1
  148. data/vendor/prism/include/prism/diagnostic.h +1 -0
  149. data/vendor/prism/include/prism/version.h +3 -3
  150. data/vendor/prism/src/diagnostic.c +3 -1
  151. data/vendor/prism/src/prism.c +130 -71
  152. data/vendor/prism/src/util/pm_string.c +6 -8
  153. data/vendor/prism/templates/include/prism/ast.h.erb +2 -0
  154. data/vendor/prism/templates/java/org/prism/Loader.java.erb +2 -2
  155. data/vendor/prism/templates/javascript/src/deserialize.js.erb +2 -2
  156. data/vendor/prism/templates/lib/prism/serialize.rb.erb +2 -2
  157. data/vendor/prism/templates/sig/prism.rbs.erb +4 -0
  158. data/vendor/prism/templates/src/diagnostic.c.erb +1 -0
  159. metadata +34 -21
  160. data/lib/herb/libherb/array.rb +0 -51
  161. data/lib/herb/libherb/ast_node.rb +0 -50
  162. data/lib/herb/libherb/buffer.rb +0 -56
  163. data/lib/herb/libherb/extract_result.rb +0 -20
  164. data/lib/herb/libherb/lex_result.rb +0 -32
  165. data/lib/herb/libherb/libherb.rb +0 -52
  166. data/lib/herb/libherb/parse_result.rb +0 -20
  167. data/lib/herb/libherb/token.rb +0 -46
  168. data/lib/herb/libherb.rb +0 -35
  169. data/src/buffer.c +0 -232
  170. data/src/include/array.h +0 -33
  171. data/src/include/buffer.h +0 -39
  172. data/src/include/json.h +0 -28
  173. data/src/include/memory.h +0 -12
  174. data/src/json.c +0 -205
  175. data/src/memory.c +0 -53
  176. data/src/position.c +0 -33
data/sig/herb/errors.rbs CHANGED
@@ -24,11 +24,13 @@ module Herb
24
24
  # : (?untyped) -> String
25
25
  def to_json: (?untyped) -> String
26
26
 
27
- # : (?Integer) -> String
28
- def tree_inspect: (?Integer) -> String
27
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
28
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
29
29
  end
30
30
 
31
31
  class UnexpectedError < Error
32
+ include Colors
33
+
32
34
  attr_reader description: String
33
35
 
34
36
  attr_reader expected: String
@@ -44,11 +46,13 @@ module Herb
44
46
  # : () -> serialized_unexpected_error
45
47
  def to_hash: () -> serialized_unexpected_error
46
48
 
47
- # : (?Integer) -> String
48
- def tree_inspect: (?Integer) -> String
49
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
50
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
49
51
  end
50
52
 
51
53
  class UnexpectedTokenError < Error
54
+ include Colors
55
+
52
56
  attr_reader expected_type: String
53
57
 
54
58
  attr_reader found: Herb::Token
@@ -62,11 +66,13 @@ module Herb
62
66
  # : () -> serialized_unexpected_token_error
63
67
  def to_hash: () -> serialized_unexpected_token_error
64
68
 
65
- # : (?Integer) -> String
66
- def tree_inspect: (?Integer) -> String
69
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
70
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
67
71
  end
68
72
 
69
73
  class MissingOpeningTagError < Error
74
+ include Colors
75
+
70
76
  attr_reader closing_tag: Herb::Token
71
77
 
72
78
  # : (String, Location, String, Herb::Token) -> void
@@ -78,11 +84,13 @@ module Herb
78
84
  # : () -> serialized_missing_opening_tag_error
79
85
  def to_hash: () -> serialized_missing_opening_tag_error
80
86
 
81
- # : (?Integer) -> String
82
- def tree_inspect: (?Integer) -> String
87
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
88
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
83
89
  end
84
90
 
85
91
  class MissingClosingTagError < Error
92
+ include Colors
93
+
86
94
  attr_reader opening_tag: Herb::Token
87
95
 
88
96
  # : (String, Location, String, Herb::Token) -> void
@@ -94,11 +102,13 @@ module Herb
94
102
  # : () -> serialized_missing_closing_tag_error
95
103
  def to_hash: () -> serialized_missing_closing_tag_error
96
104
 
97
- # : (?Integer) -> String
98
- def tree_inspect: (?Integer) -> String
105
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
106
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
99
107
  end
100
108
 
101
109
  class TagNamesMismatchError < Error
110
+ include Colors
111
+
102
112
  attr_reader opening_tag: Herb::Token
103
113
 
104
114
  attr_reader closing_tag: Herb::Token
@@ -112,11 +122,13 @@ module Herb
112
122
  # : () -> serialized_tag_names_mismatch_error
113
123
  def to_hash: () -> serialized_tag_names_mismatch_error
114
124
 
115
- # : (?Integer) -> String
116
- def tree_inspect: (?Integer) -> String
125
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
126
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
117
127
  end
118
128
 
119
129
  class QuotesMismatchError < Error
130
+ include Colors
131
+
120
132
  attr_reader opening_quote: Herb::Token
121
133
 
122
134
  attr_reader closing_quote: Herb::Token
@@ -130,11 +142,13 @@ module Herb
130
142
  # : () -> serialized_quotes_mismatch_error
131
143
  def to_hash: () -> serialized_quotes_mismatch_error
132
144
 
133
- # : (?Integer) -> String
134
- def tree_inspect: (?Integer) -> String
145
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
146
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
135
147
  end
136
148
 
137
149
  class VoidElementClosingTagError < Error
150
+ include Colors
151
+
138
152
  attr_reader tag_name: Herb::Token
139
153
 
140
154
  attr_reader expected: String
@@ -150,11 +164,13 @@ module Herb
150
164
  # : () -> serialized_void_element_closing_tag_error
151
165
  def to_hash: () -> serialized_void_element_closing_tag_error
152
166
 
153
- # : (?Integer) -> String
154
- def tree_inspect: (?Integer) -> String
167
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
168
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
155
169
  end
156
170
 
157
171
  class UnclosedElementError < Error
172
+ include Colors
173
+
158
174
  attr_reader opening_tag: Herb::Token
159
175
 
160
176
  # : (String, Location, String, Herb::Token) -> void
@@ -166,11 +182,13 @@ module Herb
166
182
  # : () -> serialized_unclosed_element_error
167
183
  def to_hash: () -> serialized_unclosed_element_error
168
184
 
169
- # : (?Integer) -> String
170
- def tree_inspect: (?Integer) -> String
185
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
186
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
171
187
  end
172
188
 
173
189
  class RubyParseError < Error
190
+ include Colors
191
+
174
192
  attr_reader error_message: String
175
193
 
176
194
  attr_reader diagnostic_id: String
@@ -186,8 +204,44 @@ module Herb
186
204
  # : () -> serialized_ruby_parse_error
187
205
  def to_hash: () -> serialized_ruby_parse_error
188
206
 
189
- # : (?Integer) -> String
190
- def tree_inspect: (?Integer) -> String
207
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
208
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
209
+ end
210
+
211
+ class ERBControlFlowScopeError < Error
212
+ include Colors
213
+
214
+ attr_reader keyword: String
215
+
216
+ # : (String, Location, String, String) -> void
217
+ def initialize: (String, Location, String, String) -> void
218
+
219
+ # : () -> String
220
+ def inspect: () -> String
221
+
222
+ # : () -> serialized_erb_control_flow_scope_error
223
+ def to_hash: () -> serialized_erb_control_flow_scope_error
224
+
225
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
226
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
227
+ end
228
+
229
+ class MissingERBEndTagError < Error
230
+ include Colors
231
+
232
+ attr_reader keyword: String
233
+
234
+ # : (String, Location, String, String) -> void
235
+ def initialize: (String, Location, String, String) -> void
236
+
237
+ # : () -> String
238
+ def inspect: () -> String
239
+
240
+ # : () -> serialized_missingerb_end_tag_error
241
+ def to_hash: () -> serialized_missingerb_end_tag_error
242
+
243
+ # : (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
244
+ def tree_inspect: (?indent: Integer, ?depth: Integer, ?depth_limit: Integer) -> String
191
245
  end
192
246
  end
193
247
  end
data/sig/herb/token.rbs CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  module Herb
4
4
  class Token
5
+ include Colors
6
+
5
7
  attr_reader value: String
6
8
 
7
9
  attr_reader range: Range
@@ -25,6 +27,12 @@ module Herb
25
27
  # : () -> String
26
28
  def value_inspect: () -> String
27
29
 
30
+ # : () -> String
31
+ def colorize_range: () -> String
32
+
33
+ # : (Position) -> String
34
+ def colorize_position: (Position) -> String
35
+
28
36
  # : () -> String
29
37
  def inspect: () -> String
30
38
  end
@@ -2,6 +2,6 @@
2
2
  # This file is manually maintained - not generated
3
3
 
4
4
  module Herb
5
- def self.parse: (String input) -> ParseResult
5
+ def self.parse: (String input, ?track_whitespace: bool) -> ParseResult
6
6
  def self.lex: (String input) -> LexResult
7
7
  end
@@ -50,4 +50,12 @@ module Herb
50
50
  level: String,
51
51
  }
52
52
 
53
+ type serialized_erb_control_flow_scope_error = serialized_error & {
54
+ keyword: String,
55
+ }
56
+
57
+ type serialized_missingerb_end_tag_error = serialized_error & {
58
+ keyword: String,
59
+ }
60
+
53
61
  end