herb 0.8.10-x86-linux-gnu → 0.9.1-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.
Files changed (212) hide show
  1. checksums.yaml +4 -4
  2. data/Makefile +11 -3
  3. data/README.md +64 -34
  4. data/Rakefile +48 -40
  5. data/config.yml +473 -34
  6. data/ext/herb/error_helpers.c +535 -140
  7. data/ext/herb/error_helpers.h +1 -0
  8. data/ext/herb/extconf.rb +67 -28
  9. data/ext/herb/extension.c +321 -51
  10. data/ext/herb/extension.h +1 -0
  11. data/ext/herb/extension_helpers.c +24 -14
  12. data/ext/herb/extension_helpers.h +2 -2
  13. data/ext/herb/nodes.c +647 -270
  14. data/ext/herb/nodes.h +1 -0
  15. data/herb.gemspec +3 -2
  16. data/lib/herb/3.0/herb.so +0 -0
  17. data/lib/herb/3.1/herb.so +0 -0
  18. data/lib/herb/3.2/herb.so +0 -0
  19. data/lib/herb/3.3/herb.so +0 -0
  20. data/lib/herb/3.4/herb.so +0 -0
  21. data/lib/herb/4.0/herb.so +0 -0
  22. data/lib/herb/ast/helpers.rb +3 -3
  23. data/lib/herb/ast/node.rb +15 -2
  24. data/lib/herb/ast/nodes.rb +1530 -179
  25. data/lib/herb/bootstrap.rb +87 -0
  26. data/lib/herb/cli.rb +341 -31
  27. data/lib/herb/configuration.rb +248 -0
  28. data/lib/herb/defaults.yml +32 -0
  29. data/lib/herb/engine/compiler.rb +78 -11
  30. data/lib/herb/engine/debug_visitor.rb +13 -3
  31. data/lib/herb/engine/error_formatter.rb +13 -9
  32. data/lib/herb/engine/parser_error_overlay.rb +10 -6
  33. data/lib/herb/engine/validator.rb +8 -3
  34. data/lib/herb/engine/validators/nesting_validator.rb +2 -2
  35. data/lib/herb/engine.rb +119 -43
  36. data/lib/herb/errors.rb +808 -88
  37. data/lib/herb/lex_result.rb +1 -0
  38. data/lib/herb/location.rb +7 -3
  39. data/lib/herb/parse_result.rb +12 -2
  40. data/lib/herb/parser_options.rb +62 -0
  41. data/lib/herb/position.rb +1 -0
  42. data/lib/herb/prism_inspect.rb +120 -0
  43. data/lib/herb/project.rb +923 -331
  44. data/lib/herb/range.rb +1 -0
  45. data/lib/herb/token.rb +7 -1
  46. data/lib/herb/version.rb +1 -1
  47. data/lib/herb/visitor.rb +47 -2
  48. data/lib/herb/warnings.rb +6 -1
  49. data/lib/herb.rb +35 -3
  50. data/sig/herb/ast/helpers.rbs +2 -2
  51. data/sig/herb/ast/node.rbs +12 -2
  52. data/sig/herb/ast/nodes.rbs +773 -128
  53. data/sig/herb/bootstrap.rbs +31 -0
  54. data/sig/herb/configuration.rbs +89 -0
  55. data/sig/herb/engine/compiler.rbs +9 -1
  56. data/sig/herb/engine/debug_visitor.rbs +2 -0
  57. data/sig/herb/engine/validator.rbs +5 -1
  58. data/sig/herb/engine.rbs +21 -3
  59. data/sig/herb/errors.rbs +372 -63
  60. data/sig/herb/location.rbs +4 -0
  61. data/sig/herb/parse_result.rbs +4 -2
  62. data/sig/herb/parser_options.rbs +46 -0
  63. data/sig/herb/position.rbs +1 -0
  64. data/sig/herb/prism_inspect.rbs +28 -0
  65. data/sig/herb/range.rbs +1 -0
  66. data/sig/herb/token.rbs +6 -0
  67. data/sig/herb/visitor.rbs +31 -4
  68. data/sig/herb/warnings.rbs +6 -1
  69. data/sig/herb.rbs +14 -0
  70. data/sig/herb_c_extension.rbs +5 -2
  71. data/sig/rubyvm.rbs +5 -0
  72. data/sig/serialized_ast_errors.rbs +82 -6
  73. data/sig/serialized_ast_nodes.rbs +91 -6
  74. data/src/analyze/action_view/attribute_extraction_helpers.c +303 -0
  75. data/src/analyze/action_view/content_tag.c +78 -0
  76. data/src/analyze/action_view/link_to.c +167 -0
  77. data/src/analyze/action_view/registry.c +83 -0
  78. data/src/analyze/action_view/tag.c +70 -0
  79. data/src/analyze/action_view/tag_helper_node_builders.c +305 -0
  80. data/src/analyze/action_view/tag_helpers.c +815 -0
  81. data/src/analyze/action_view/turbo_frame_tag.c +88 -0
  82. data/src/analyze/analyze.c +885 -0
  83. data/src/{analyzed_ruby.c → analyze/analyzed_ruby.c} +13 -11
  84. data/src/analyze/builders.c +343 -0
  85. data/src/analyze/conditional_elements.c +594 -0
  86. data/src/analyze/conditional_open_tags.c +640 -0
  87. data/src/analyze/control_type.c +250 -0
  88. data/src/{analyze_helpers.c → analyze/helpers.c} +48 -23
  89. data/src/analyze/invalid_structures.c +193 -0
  90. data/src/{analyze_missing_end.c → analyze/missing_end.c} +33 -22
  91. data/src/analyze/parse_errors.c +84 -0
  92. data/src/analyze/prism_annotate.c +399 -0
  93. data/src/analyze/render_nodes.c +761 -0
  94. data/src/{analyze_transform.c → analyze/transform.c} +24 -3
  95. data/src/ast_node.c +17 -7
  96. data/src/ast_nodes.c +759 -387
  97. data/src/ast_pretty_print.c +264 -6
  98. data/src/errors.c +1454 -519
  99. data/src/extract.c +145 -49
  100. data/src/herb.c +52 -34
  101. data/src/html_util.c +241 -12
  102. data/src/include/analyze/action_view/attribute_extraction_helpers.h +36 -0
  103. data/src/include/analyze/action_view/tag_helper_handler.h +43 -0
  104. data/src/include/analyze/action_view/tag_helper_node_builders.h +70 -0
  105. data/src/include/analyze/action_view/tag_helpers.h +38 -0
  106. data/src/include/{analyze.h → analyze/analyze.h} +14 -4
  107. data/src/include/{analyzed_ruby.h → analyze/analyzed_ruby.h} +3 -3
  108. data/src/include/analyze/builders.h +27 -0
  109. data/src/include/analyze/conditional_elements.h +9 -0
  110. data/src/include/analyze/conditional_open_tags.h +9 -0
  111. data/src/include/analyze/control_type.h +14 -0
  112. data/src/include/{analyze_helpers.h → analyze/helpers.h} +4 -2
  113. data/src/include/analyze/invalid_structures.h +11 -0
  114. data/src/include/analyze/prism_annotate.h +16 -0
  115. data/src/include/analyze/render_nodes.h +11 -0
  116. data/src/include/ast_node.h +11 -5
  117. data/src/include/ast_nodes.h +154 -38
  118. data/src/include/ast_pretty_print.h +5 -0
  119. data/src/include/element_source.h +3 -8
  120. data/src/include/errors.h +206 -55
  121. data/src/include/extract.h +21 -5
  122. data/src/include/herb.h +18 -6
  123. data/src/include/herb_prism_node.h +13 -0
  124. data/src/include/html_util.h +7 -2
  125. data/src/include/io.h +3 -1
  126. data/src/include/lex_helpers.h +29 -0
  127. data/src/include/lexer.h +1 -1
  128. data/src/include/lexer_peek_helpers.h +87 -13
  129. data/src/include/lexer_struct.h +2 -0
  130. data/src/include/location.h +2 -1
  131. data/src/include/parser.h +28 -2
  132. data/src/include/parser_helpers.h +19 -3
  133. data/src/include/pretty_print.h +10 -5
  134. data/src/include/prism_context.h +45 -0
  135. data/src/include/prism_helpers.h +10 -7
  136. data/src/include/prism_serialized.h +12 -0
  137. data/src/include/token.h +16 -4
  138. data/src/include/token_struct.h +10 -3
  139. data/src/include/utf8.h +2 -1
  140. data/src/include/util/hb_allocator.h +78 -0
  141. data/src/include/util/hb_arena.h +6 -1
  142. data/src/include/util/hb_arena_debug.h +12 -1
  143. data/src/include/util/hb_array.h +7 -3
  144. data/src/include/util/hb_buffer.h +6 -4
  145. data/src/include/util/hb_foreach.h +79 -0
  146. data/src/include/util/hb_narray.h +8 -4
  147. data/src/include/util/hb_string.h +56 -9
  148. data/src/include/util.h +6 -3
  149. data/src/include/version.h +1 -1
  150. data/src/io.c +3 -2
  151. data/src/lexer.c +42 -30
  152. data/src/lexer_peek_helpers.c +12 -74
  153. data/src/location.c +2 -2
  154. data/src/main.c +53 -28
  155. data/src/parser.c +784 -247
  156. data/src/parser_helpers.c +110 -23
  157. data/src/parser_match_tags.c +129 -48
  158. data/src/pretty_print.c +29 -24
  159. data/src/prism_helpers.c +30 -27
  160. data/src/ruby_parser.c +2 -0
  161. data/src/token.c +151 -66
  162. data/src/token_matchers.c +0 -1
  163. data/src/utf8.c +7 -6
  164. data/src/util/hb_allocator.c +341 -0
  165. data/src/util/hb_arena.c +81 -56
  166. data/src/util/hb_arena_debug.c +32 -17
  167. data/src/util/hb_array.c +30 -15
  168. data/src/util/hb_buffer.c +17 -21
  169. data/src/util/hb_narray.c +22 -7
  170. data/src/util/hb_string.c +49 -35
  171. data/src/util.c +21 -11
  172. data/src/visitor.c +67 -0
  173. data/templates/ext/herb/error_helpers.c.erb +24 -11
  174. data/templates/ext/herb/error_helpers.h.erb +1 -0
  175. data/templates/ext/herb/nodes.c.erb +50 -16
  176. data/templates/ext/herb/nodes.h.erb +1 -0
  177. data/templates/java/error_helpers.c.erb +1 -1
  178. data/templates/java/nodes.c.erb +30 -8
  179. data/templates/java/org/herb/ast/Errors.java.erb +24 -1
  180. data/templates/java/org/herb/ast/Nodes.java.erb +80 -21
  181. data/templates/javascript/packages/core/src/errors.ts.erb +16 -3
  182. data/templates/javascript/packages/core/src/node-type-guards.ts.erb +3 -1
  183. data/templates/javascript/packages/core/src/nodes.ts.erb +109 -32
  184. data/templates/javascript/packages/node/extension/error_helpers.cpp.erb +13 -4
  185. data/templates/javascript/packages/node/extension/nodes.cpp.erb +43 -4
  186. data/templates/lib/herb/ast/nodes.rb.erb +95 -32
  187. data/templates/lib/herb/errors.rb.erb +15 -3
  188. data/templates/lib/herb/visitor.rb.erb +2 -2
  189. data/templates/rust/src/ast/nodes.rs.erb +97 -44
  190. data/templates/rust/src/errors.rs.erb +2 -1
  191. data/templates/rust/src/nodes.rs.erb +168 -16
  192. data/templates/rust/src/union_types.rs.erb +60 -0
  193. data/templates/rust/src/visitor.rs.erb +81 -0
  194. data/templates/src/{analyze_missing_end.c.erb → analyze/missing_end.c.erb} +9 -6
  195. data/templates/src/{analyze_transform.c.erb → analyze/transform.c.erb} +2 -2
  196. data/templates/src/ast_nodes.c.erb +34 -26
  197. data/templates/src/ast_pretty_print.c.erb +24 -5
  198. data/templates/src/errors.c.erb +60 -54
  199. data/templates/src/include/ast_nodes.h.erb +6 -2
  200. data/templates/src/include/ast_pretty_print.h.erb +5 -0
  201. data/templates/src/include/errors.h.erb +15 -11
  202. data/templates/src/include/util/hb_foreach.h.erb +20 -0
  203. data/templates/src/parser_match_tags.c.erb +10 -4
  204. data/templates/src/visitor.c.erb +2 -2
  205. data/templates/template.rb +204 -29
  206. data/templates/wasm/error_helpers.cpp.erb +9 -5
  207. data/templates/wasm/nodes.cpp.erb +41 -4
  208. metadata +60 -16
  209. data/src/analyze.c +0 -1608
  210. data/src/element_source.c +0 -12
  211. data/src/include/util/hb_system.h +0 -9
  212. data/src/util/hb_system.c +0 -30
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: herb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.10
4
+ version: 0.9.1
5
5
  platform: x86-linux-gnu
6
6
  authors:
7
7
  - Marco Roth
@@ -9,7 +9,7 @@ bindir: exe
9
9
  cert_chain: []
10
10
  date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies: []
12
- description: Powerful and seamless HTML-aware ERB parsing and tooling.
12
+ description: A collection of powerful and seamless developer tools for HTML+ERB templates.
13
13
  email:
14
14
  - marco.roth@intergga.ch
15
15
  executables:
@@ -44,8 +44,11 @@ files:
44
44
  - lib/herb/ast/helpers.rb
45
45
  - lib/herb/ast/node.rb
46
46
  - lib/herb/ast/nodes.rb
47
+ - lib/herb/bootstrap.rb
47
48
  - lib/herb/cli.rb
48
49
  - lib/herb/colors.rb
50
+ - lib/herb/configuration.rb
51
+ - lib/herb/defaults.yml
49
52
  - lib/herb/engine.rb
50
53
  - lib/herb/engine/compiler.rb
51
54
  - lib/herb/engine/debug_visitor.rb
@@ -61,7 +64,9 @@ files:
61
64
  - lib/herb/lex_result.rb
62
65
  - lib/herb/location.rb
63
66
  - lib/herb/parse_result.rb
67
+ - lib/herb/parser_options.rb
64
68
  - lib/herb/position.rb
69
+ - lib/herb/prism_inspect.rb
65
70
  - lib/herb/project.rb
66
71
  - lib/herb/range.rb
67
72
  - lib/herb/result.rb
@@ -75,7 +80,9 @@ files:
75
80
  - sig/herb/ast/helpers.rbs
76
81
  - sig/herb/ast/node.rbs
77
82
  - sig/herb/ast/nodes.rbs
83
+ - sig/herb/bootstrap.rbs
78
84
  - sig/herb/colors.rbs
85
+ - sig/herb/configuration.rbs
79
86
  - sig/herb/engine.rbs
80
87
  - sig/herb/engine/compiler.rbs
81
88
  - sig/herb/engine/debug.rbs
@@ -92,7 +99,9 @@ files:
92
99
  - sig/herb/lex_result.rbs
93
100
  - sig/herb/location.rbs
94
101
  - sig/herb/parse_result.rbs
102
+ - sig/herb/parser_options.rbs
95
103
  - sig/herb/position.rbs
104
+ - sig/herb/prism_inspect.rbs
96
105
  - sig/herb/range.rbs
97
106
  - sig/herb/result.rbs
98
107
  - sig/herb/token.rbs
@@ -101,25 +110,52 @@ files:
101
110
  - sig/herb/visitor.rbs
102
111
  - sig/herb/warnings.rbs
103
112
  - sig/herb_c_extension.rbs
113
+ - sig/rubyvm.rbs
104
114
  - sig/serialized.rbs
105
115
  - sig/serialized_ast_errors.rbs
106
116
  - sig/serialized_ast_nodes.rbs
107
- - src/analyze.c
108
- - src/analyze_helpers.c
109
- - src/analyze_missing_end.c
110
- - src/analyze_transform.c
111
- - src/analyzed_ruby.c
117
+ - src/analyze/action_view/attribute_extraction_helpers.c
118
+ - src/analyze/action_view/content_tag.c
119
+ - src/analyze/action_view/link_to.c
120
+ - src/analyze/action_view/registry.c
121
+ - src/analyze/action_view/tag.c
122
+ - src/analyze/action_view/tag_helper_node_builders.c
123
+ - src/analyze/action_view/tag_helpers.c
124
+ - src/analyze/action_view/turbo_frame_tag.c
125
+ - src/analyze/analyze.c
126
+ - src/analyze/analyzed_ruby.c
127
+ - src/analyze/builders.c
128
+ - src/analyze/conditional_elements.c
129
+ - src/analyze/conditional_open_tags.c
130
+ - src/analyze/control_type.c
131
+ - src/analyze/helpers.c
132
+ - src/analyze/invalid_structures.c
133
+ - src/analyze/missing_end.c
134
+ - src/analyze/parse_errors.c
135
+ - src/analyze/prism_annotate.c
136
+ - src/analyze/render_nodes.c
137
+ - src/analyze/transform.c
112
138
  - src/ast_node.c
113
139
  - src/ast_nodes.c
114
140
  - src/ast_pretty_print.c
115
- - src/element_source.c
116
141
  - src/errors.c
117
142
  - src/extract.c
118
143
  - src/herb.c
119
144
  - src/html_util.c
120
- - src/include/analyze.h
121
- - src/include/analyze_helpers.h
122
- - src/include/analyzed_ruby.h
145
+ - src/include/analyze/action_view/attribute_extraction_helpers.h
146
+ - src/include/analyze/action_view/tag_helper_handler.h
147
+ - src/include/analyze/action_view/tag_helper_node_builders.h
148
+ - src/include/analyze/action_view/tag_helpers.h
149
+ - src/include/analyze/analyze.h
150
+ - src/include/analyze/analyzed_ruby.h
151
+ - src/include/analyze/builders.h
152
+ - src/include/analyze/conditional_elements.h
153
+ - src/include/analyze/conditional_open_tags.h
154
+ - src/include/analyze/control_type.h
155
+ - src/include/analyze/helpers.h
156
+ - src/include/analyze/invalid_structures.h
157
+ - src/include/analyze/prism_annotate.h
158
+ - src/include/analyze/render_nodes.h
123
159
  - src/include/ast_node.h
124
160
  - src/include/ast_nodes.h
125
161
  - src/include/ast_pretty_print.h
@@ -127,8 +163,10 @@ files:
127
163
  - src/include/errors.h
128
164
  - src/include/extract.h
129
165
  - src/include/herb.h
166
+ - src/include/herb_prism_node.h
130
167
  - src/include/html_util.h
131
168
  - src/include/io.h
169
+ - src/include/lex_helpers.h
132
170
  - src/include/lexer.h
133
171
  - src/include/lexer_peek_helpers.h
134
172
  - src/include/lexer_struct.h
@@ -138,7 +176,9 @@ files:
138
176
  - src/include/parser_helpers.h
139
177
  - src/include/position.h
140
178
  - src/include/pretty_print.h
179
+ - src/include/prism_context.h
141
180
  - src/include/prism_helpers.h
181
+ - src/include/prism_serialized.h
142
182
  - src/include/range.h
143
183
  - src/include/ruby_parser.h
144
184
  - src/include/token.h
@@ -146,13 +186,14 @@ files:
146
186
  - src/include/token_struct.h
147
187
  - src/include/utf8.h
148
188
  - src/include/util.h
189
+ - src/include/util/hb_allocator.h
149
190
  - src/include/util/hb_arena.h
150
191
  - src/include/util/hb_arena_debug.h
151
192
  - src/include/util/hb_array.h
152
193
  - src/include/util/hb_buffer.h
194
+ - src/include/util/hb_foreach.h
153
195
  - src/include/util/hb_narray.h
154
196
  - src/include/util/hb_string.h
155
- - src/include/util/hb_system.h
156
197
  - src/include/util/string.h
157
198
  - src/include/version.h
158
199
  - src/include/visitor.h
@@ -173,13 +214,13 @@ files:
173
214
  - src/token_matchers.c
174
215
  - src/utf8.c
175
216
  - src/util.c
217
+ - src/util/hb_allocator.c
176
218
  - src/util/hb_arena.c
177
219
  - src/util/hb_arena_debug.c
178
220
  - src/util/hb_array.c
179
221
  - src/util/hb_buffer.c
180
222
  - src/util/hb_narray.c
181
223
  - src/util/hb_string.c
182
- - src/util/hb_system.c
183
224
  - src/visitor.c
184
225
  - templates/ext/herb/error_helpers.c.erb
185
226
  - templates/ext/herb/error_helpers.h.erb
@@ -207,16 +248,19 @@ files:
207
248
  - templates/rust/src/ast/nodes.rs.erb
208
249
  - templates/rust/src/errors.rs.erb
209
250
  - templates/rust/src/nodes.rs.erb
251
+ - templates/rust/src/union_types.rs.erb
252
+ - templates/rust/src/visitor.rs.erb
210
253
  - templates/sig/serialized_ast_errors.rbs.erb
211
254
  - templates/sig/serialized_ast_nodes.rbs.erb
212
- - templates/src/analyze_missing_end.c.erb
213
- - templates/src/analyze_transform.c.erb
255
+ - templates/src/analyze/missing_end.c.erb
256
+ - templates/src/analyze/transform.c.erb
214
257
  - templates/src/ast_nodes.c.erb
215
258
  - templates/src/ast_pretty_print.c.erb
216
259
  - templates/src/errors.c.erb
217
260
  - templates/src/include/ast_nodes.h.erb
218
261
  - templates/src/include/ast_pretty_print.h.erb
219
262
  - templates/src/include/errors.h.erb
263
+ - templates/src/include/util/hb_foreach.h.erb
220
264
  - templates/src/parser_match_tags.c.erb
221
265
  - templates/src/visitor.c.erb
222
266
  - templates/template.rb
@@ -334,5 +378,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
334
378
  requirements: []
335
379
  rubygems_version: 4.0.3
336
380
  specification_version: 4
337
- summary: Powerful and seamless HTML-aware ERB parsing and tooling.
381
+ summary: The modern HTML+ERB Toolchain
338
382
  test_files: []