herb 0.9.2-arm-linux-gnu → 0.9.4-arm-linux-gnu

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +2 -0
  3. data/config.yml +125 -0
  4. data/ext/herb/error_helpers.c +172 -2
  5. data/ext/herb/extconf.rb +6 -0
  6. data/ext/herb/extension.c +16 -2
  7. data/ext/herb/extension_helpers.c +6 -5
  8. data/ext/herb/extension_helpers.h +4 -4
  9. data/ext/herb/nodes.c +89 -3
  10. data/lib/herb/3.0/herb.so +0 -0
  11. data/lib/herb/3.1/herb.so +0 -0
  12. data/lib/herb/3.2/herb.so +0 -0
  13. data/lib/herb/3.3/herb.so +0 -0
  14. data/lib/herb/3.4/herb.so +0 -0
  15. data/lib/herb/4.0/herb.so +0 -0
  16. data/lib/herb/ast/erb_content_node.rb +32 -0
  17. data/lib/herb/ast/nodes.rb +244 -3
  18. data/lib/herb/cli.rb +12 -2
  19. data/lib/herb/engine/compiler.rb +166 -75
  20. data/lib/herb/engine/validators/security_validator.rb +40 -0
  21. data/lib/herb/engine.rb +3 -0
  22. data/lib/herb/errors.rb +268 -0
  23. data/lib/herb/parser_options.rb +7 -2
  24. data/lib/herb/project.rb +58 -17
  25. data/lib/herb/version.rb +1 -1
  26. data/lib/herb/visitor.rb +82 -0
  27. data/lib/herb.rb +1 -0
  28. data/sig/herb/ast/erb_content_node.rbs +13 -0
  29. data/sig/herb/ast/nodes.rbs +98 -2
  30. data/sig/herb/engine/compiler.rbs +31 -2
  31. data/sig/herb/engine/validators/security_validator.rbs +4 -0
  32. data/sig/herb/engine.rbs +3 -0
  33. data/sig/herb/errors.rbs +122 -0
  34. data/sig/herb/parser_options.rbs +6 -2
  35. data/sig/herb/visitor.rbs +12 -0
  36. data/sig/serialized_ast_errors.rbs +29 -0
  37. data/sig/serialized_ast_nodes.rbs +19 -0
  38. data/src/analyze/action_view/attribute_extraction_helpers.c +420 -91
  39. data/src/analyze/action_view/image_tag.c +87 -0
  40. data/src/analyze/action_view/javascript_include_tag.c +22 -12
  41. data/src/analyze/action_view/registry.c +6 -3
  42. data/src/analyze/action_view/tag.c +19 -2
  43. data/src/analyze/action_view/tag_helper_node_builders.c +105 -36
  44. data/src/analyze/action_view/tag_helpers.c +792 -44
  45. data/src/analyze/analyze.c +167 -13
  46. data/src/analyze/{helpers.c → analyze_helpers.c} +1 -1
  47. data/src/analyze/analyzed_ruby.c +1 -1
  48. data/src/analyze/builders.c +11 -8
  49. data/src/analyze/conditional_elements.c +6 -7
  50. data/src/analyze/conditional_open_tags.c +6 -7
  51. data/src/analyze/control_type.c +4 -2
  52. data/src/analyze/invalid_structures.c +5 -5
  53. data/src/analyze/missing_end.c +2 -2
  54. data/src/analyze/parse_errors.c +47 -6
  55. data/src/analyze/prism_annotate.c +7 -7
  56. data/src/analyze/render_nodes.c +6 -26
  57. data/src/analyze/strict_locals.c +651 -0
  58. data/src/analyze/transform.c +7 -0
  59. data/src/{ast_node.c → ast/ast_node.c} +8 -8
  60. data/src/{ast_nodes.c → ast/ast_nodes.c} +82 -11
  61. data/src/{ast_pretty_print.c → ast/ast_pretty_print.c} +113 -9
  62. data/src/{pretty_print.c → ast/pretty_print.c} +9 -9
  63. data/src/errors.c +398 -8
  64. data/src/extract.c +5 -5
  65. data/src/herb.c +15 -5
  66. data/src/include/analyze/action_view/attribute_extraction_helpers.h +3 -1
  67. data/src/include/analyze/action_view/tag_helper_handler.h +3 -3
  68. data/src/include/analyze/action_view/tag_helper_node_builders.h +34 -5
  69. data/src/include/analyze/action_view/tag_helpers.h +4 -3
  70. data/src/include/analyze/analyze.h +12 -5
  71. data/src/include/analyze/analyzed_ruby.h +2 -2
  72. data/src/include/analyze/builders.h +4 -4
  73. data/src/include/analyze/conditional_elements.h +2 -2
  74. data/src/include/analyze/conditional_open_tags.h +2 -2
  75. data/src/include/analyze/control_type.h +1 -1
  76. data/src/include/analyze/helpers.h +2 -2
  77. data/src/include/analyze/invalid_structures.h +1 -1
  78. data/src/include/analyze/prism_annotate.h +2 -2
  79. data/src/include/analyze/render_nodes.h +1 -1
  80. data/src/include/analyze/strict_locals.h +11 -0
  81. data/src/include/{ast_node.h → ast/ast_node.h} +4 -4
  82. data/src/include/{ast_nodes.h → ast/ast_nodes.h} +38 -14
  83. data/src/include/{ast_pretty_print.h → ast/ast_pretty_print.h} +3 -3
  84. data/src/include/{pretty_print.h → ast/pretty_print.h} +4 -4
  85. data/src/include/errors.h +65 -7
  86. data/src/include/extract.h +2 -2
  87. data/src/include/herb.h +5 -5
  88. data/src/include/{lex_helpers.h → lexer/lex_helpers.h} +5 -5
  89. data/src/include/{lexer.h → lexer/lexer.h} +1 -1
  90. data/src/include/{lexer_peek_helpers.h → lexer/lexer_peek_helpers.h} +2 -2
  91. data/src/include/{lexer_struct.h → lexer/lexer_struct.h} +2 -2
  92. data/src/include/{token.h → lexer/token.h} +3 -3
  93. data/src/include/{token_matchers.h → lexer/token_matchers.h} +1 -1
  94. data/src/include/{token_struct.h → lexer/token_struct.h} +3 -3
  95. data/src/include/{util → lib}/hb_foreach.h +1 -1
  96. data/src/include/{util → lib}/hb_string.h +5 -1
  97. data/src/include/{location.h → location/location.h} +1 -1
  98. data/src/include/parser/dot_notation.h +12 -0
  99. data/src/include/{parser.h → parser/parser.h} +11 -4
  100. data/src/include/{parser_helpers.h → parser/parser_helpers.h} +6 -6
  101. data/src/include/{prism_context.h → prism/prism_context.h} +2 -2
  102. data/src/include/{prism_helpers.h → prism/prism_helpers.h} +6 -6
  103. data/src/include/{html_util.h → util/html_util.h} +1 -1
  104. data/src/include/util/ruby_util.h +9 -0
  105. data/src/include/{utf8.h → util/utf8.h} +1 -1
  106. data/src/include/{util.h → util/util.h} +1 -1
  107. data/src/include/version.h +1 -1
  108. data/src/include/visitor.h +3 -3
  109. data/src/{lexer_peek_helpers.c → lexer/lexer_peek_helpers.c} +3 -3
  110. data/src/{token.c → lexer/token.c} +8 -8
  111. data/src/{token_matchers.c → lexer/token_matchers.c} +2 -2
  112. data/src/lexer.c +6 -6
  113. data/src/{util → lib}/hb_allocator.c +2 -2
  114. data/src/{util → lib}/hb_arena.c +1 -1
  115. data/src/{util → lib}/hb_arena_debug.c +2 -2
  116. data/src/{util → lib}/hb_array.c +2 -2
  117. data/src/{util → lib}/hb_buffer.c +2 -2
  118. data/src/{util → lib}/hb_narray.c +1 -1
  119. data/src/{util → lib}/hb_string.c +2 -2
  120. data/src/{location.c → location/location.c} +2 -2
  121. data/src/{position.c → location/position.c} +2 -2
  122. data/src/{range.c → location/range.c} +1 -1
  123. data/src/main.c +11 -11
  124. data/src/parser/dot_notation.c +100 -0
  125. data/src/{parser_match_tags.c → parser/match_tags.c} +34 -5
  126. data/src/{parser_helpers.c → parser/parser_helpers.c} +10 -10
  127. data/src/parser.c +68 -32
  128. data/src/{prism_helpers.c → prism/prism_helpers.c} +7 -7
  129. data/src/{ruby_parser.c → prism/ruby_parser.c} +1 -1
  130. data/src/{html_util.c → util/html_util.c} +4 -4
  131. data/src/{io.c → util/io.c} +3 -3
  132. data/src/util/ruby_util.c +42 -0
  133. data/src/{utf8.c → util/utf8.c} +2 -2
  134. data/src/{util.c → util/util.c} +4 -4
  135. data/src/visitor.c +35 -3
  136. data/templates/ext/herb/error_helpers.c.erb +2 -2
  137. data/templates/ext/herb/nodes.c.erb +1 -1
  138. data/templates/java/error_helpers.c.erb +1 -1
  139. data/templates/java/error_helpers.h.erb +2 -2
  140. data/templates/java/nodes.c.erb +4 -4
  141. data/templates/java/nodes.h.erb +1 -1
  142. data/templates/javascript/packages/node/extension/error_helpers.cpp.erb +4 -4
  143. data/templates/javascript/packages/node/extension/nodes.cpp.erb +4 -4
  144. data/templates/lib/herb/visitor.rb.erb +14 -0
  145. data/templates/src/analyze/missing_end.c.erb +2 -2
  146. data/templates/src/{ast_nodes.c.erb → ast/ast_nodes.c.erb} +9 -9
  147. data/templates/src/{ast_pretty_print.c.erb → ast/ast_pretty_print.c.erb} +8 -8
  148. data/templates/src/errors.c.erb +8 -8
  149. data/templates/src/include/{ast_nodes.h.erb → ast/ast_nodes.h.erb} +11 -12
  150. data/templates/src/include/{ast_pretty_print.h.erb → ast/ast_pretty_print.h.erb} +2 -2
  151. data/templates/src/include/errors.h.erb +7 -7
  152. data/templates/src/{parser_match_tags.c.erb → parser/match_tags.c.erb} +4 -4
  153. data/templates/src/visitor.c.erb +3 -3
  154. data/templates/wasm/error_helpers.cpp.erb +4 -4
  155. data/templates/wasm/nodes.cpp.erb +5 -5
  156. metadata +76 -68
  157. data/src/include/element_source.h +0 -10
  158. /data/src/include/{util → lib}/hb_allocator.h +0 -0
  159. /data/src/include/{util → lib}/hb_arena.h +0 -0
  160. /data/src/include/{util → lib}/hb_arena_debug.h +0 -0
  161. /data/src/include/{util → lib}/hb_array.h +0 -0
  162. /data/src/include/{util → lib}/hb_buffer.h +0 -0
  163. /data/src/include/{util → lib}/hb_narray.h +0 -0
  164. /data/src/include/{util → lib}/string.h +0 -0
  165. /data/src/include/{position.h → location/position.h} +0 -0
  166. /data/src/include/{range.h → location/range.h} +0 -0
  167. /data/src/include/{herb_prism_node.h → prism/herb_prism_node.h} +0 -0
  168. /data/src/include/{prism_serialized.h → prism/prism_serialized.h} +0 -0
  169. /data/src/include/{ruby_parser.h → prism/ruby_parser.h} +0 -0
  170. /data/src/include/{io.h → util/io.h} +0 -0
  171. /data/templates/src/include/{util → lib}/hb_foreach.h.erb +0 -0
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.9.2
4
+ version: 0.9.4
5
5
  platform: arm-linux-gnu
6
6
  authors:
7
7
  - Marco Roth
@@ -41,6 +41,7 @@ files:
41
41
  - lib/herb/3.4/herb.so
42
42
  - lib/herb/4.0/herb.so
43
43
  - lib/herb/ast.rb
44
+ - lib/herb/ast/erb_content_node.rb
44
45
  - lib/herb/ast/helpers.rb
45
46
  - lib/herb/ast/node.rb
46
47
  - lib/herb/ast/nodes.rb
@@ -77,6 +78,7 @@ files:
77
78
  - lib/herb/warnings.rb
78
79
  - sig/herb.rbs
79
80
  - sig/herb/ast.rbs
81
+ - sig/herb/ast/erb_content_node.rbs
80
82
  - sig/herb/ast/helpers.rbs
81
83
  - sig/herb/ast/node.rbs
82
84
  - sig/herb/ast/nodes.rbs
@@ -116,6 +118,7 @@ files:
116
118
  - sig/serialized_ast_nodes.rbs
117
119
  - src/analyze/action_view/attribute_extraction_helpers.c
118
120
  - src/analyze/action_view/content_tag.c
121
+ - src/analyze/action_view/image_tag.c
119
122
  - src/analyze/action_view/javascript_include_tag.c
120
123
  - src/analyze/action_view/javascript_tag.c
121
124
  - src/analyze/action_view/link_to.c
@@ -125,25 +128,26 @@ files:
125
128
  - src/analyze/action_view/tag_helpers.c
126
129
  - src/analyze/action_view/turbo_frame_tag.c
127
130
  - src/analyze/analyze.c
131
+ - src/analyze/analyze_helpers.c
128
132
  - src/analyze/analyzed_ruby.c
129
133
  - src/analyze/builders.c
130
134
  - src/analyze/conditional_elements.c
131
135
  - src/analyze/conditional_open_tags.c
132
136
  - src/analyze/control_type.c
133
- - src/analyze/helpers.c
134
137
  - src/analyze/invalid_structures.c
135
138
  - src/analyze/missing_end.c
136
139
  - src/analyze/parse_errors.c
137
140
  - src/analyze/prism_annotate.c
138
141
  - src/analyze/render_nodes.c
142
+ - src/analyze/strict_locals.c
139
143
  - src/analyze/transform.c
140
- - src/ast_node.c
141
- - src/ast_nodes.c
142
- - src/ast_pretty_print.c
144
+ - src/ast/ast_node.c
145
+ - src/ast/ast_nodes.c
146
+ - src/ast/ast_pretty_print.c
147
+ - src/ast/pretty_print.c
143
148
  - src/errors.c
144
149
  - src/extract.c
145
150
  - src/herb.c
146
- - src/html_util.c
147
151
  - src/include/analyze/action_view/attribute_extraction_helpers.h
148
152
  - src/include/analyze/action_view/tag_helper_handler.h
149
153
  - src/include/analyze/action_view/tag_helper_node_builders.h
@@ -158,71 +162,75 @@ files:
158
162
  - src/include/analyze/invalid_structures.h
159
163
  - src/include/analyze/prism_annotate.h
160
164
  - src/include/analyze/render_nodes.h
161
- - src/include/ast_node.h
162
- - src/include/ast_nodes.h
163
- - src/include/ast_pretty_print.h
164
- - src/include/element_source.h
165
+ - src/include/analyze/strict_locals.h
166
+ - src/include/ast/ast_node.h
167
+ - src/include/ast/ast_nodes.h
168
+ - src/include/ast/ast_pretty_print.h
169
+ - src/include/ast/pretty_print.h
165
170
  - src/include/errors.h
166
171
  - src/include/extract.h
167
172
  - src/include/herb.h
168
- - src/include/herb_prism_node.h
169
- - src/include/html_util.h
170
- - src/include/io.h
171
- - src/include/lex_helpers.h
172
- - src/include/lexer.h
173
- - src/include/lexer_peek_helpers.h
174
- - src/include/lexer_struct.h
175
- - src/include/location.h
173
+ - src/include/lexer/lex_helpers.h
174
+ - src/include/lexer/lexer.h
175
+ - src/include/lexer/lexer_peek_helpers.h
176
+ - src/include/lexer/lexer_struct.h
177
+ - src/include/lexer/token.h
178
+ - src/include/lexer/token_matchers.h
179
+ - src/include/lexer/token_struct.h
180
+ - src/include/lib/hb_allocator.h
181
+ - src/include/lib/hb_arena.h
182
+ - src/include/lib/hb_arena_debug.h
183
+ - src/include/lib/hb_array.h
184
+ - src/include/lib/hb_buffer.h
185
+ - src/include/lib/hb_foreach.h
186
+ - src/include/lib/hb_narray.h
187
+ - src/include/lib/hb_string.h
188
+ - src/include/lib/string.h
189
+ - src/include/location/location.h
190
+ - src/include/location/position.h
191
+ - src/include/location/range.h
176
192
  - src/include/macros.h
177
- - src/include/parser.h
178
- - src/include/parser_helpers.h
179
- - src/include/position.h
180
- - src/include/pretty_print.h
181
- - src/include/prism_context.h
182
- - src/include/prism_helpers.h
183
- - src/include/prism_serialized.h
184
- - src/include/range.h
185
- - src/include/ruby_parser.h
186
- - src/include/token.h
187
- - src/include/token_matchers.h
188
- - src/include/token_struct.h
189
- - src/include/utf8.h
190
- - src/include/util.h
191
- - src/include/util/hb_allocator.h
192
- - src/include/util/hb_arena.h
193
- - src/include/util/hb_arena_debug.h
194
- - src/include/util/hb_array.h
195
- - src/include/util/hb_buffer.h
196
- - src/include/util/hb_foreach.h
197
- - src/include/util/hb_narray.h
198
- - src/include/util/hb_string.h
199
- - src/include/util/string.h
193
+ - src/include/parser/dot_notation.h
194
+ - src/include/parser/parser.h
195
+ - src/include/parser/parser_helpers.h
196
+ - src/include/prism/herb_prism_node.h
197
+ - src/include/prism/prism_context.h
198
+ - src/include/prism/prism_helpers.h
199
+ - src/include/prism/prism_serialized.h
200
+ - src/include/prism/ruby_parser.h
201
+ - src/include/util/html_util.h
202
+ - src/include/util/io.h
203
+ - src/include/util/ruby_util.h
204
+ - src/include/util/utf8.h
205
+ - src/include/util/util.h
200
206
  - src/include/version.h
201
207
  - src/include/visitor.h
202
- - src/io.c
203
208
  - src/lexer.c
204
- - src/lexer_peek_helpers.c
205
- - src/location.c
209
+ - src/lexer/lexer_peek_helpers.c
210
+ - src/lexer/token.c
211
+ - src/lexer/token_matchers.c
212
+ - src/lib/hb_allocator.c
213
+ - src/lib/hb_arena.c
214
+ - src/lib/hb_arena_debug.c
215
+ - src/lib/hb_array.c
216
+ - src/lib/hb_buffer.c
217
+ - src/lib/hb_narray.c
218
+ - src/lib/hb_string.c
219
+ - src/location/location.c
220
+ - src/location/position.c
221
+ - src/location/range.c
206
222
  - src/main.c
207
223
  - src/parser.c
208
- - src/parser_helpers.c
209
- - src/parser_match_tags.c
210
- - src/position.c
211
- - src/pretty_print.c
212
- - src/prism_helpers.c
213
- - src/range.c
214
- - src/ruby_parser.c
215
- - src/token.c
216
- - src/token_matchers.c
217
- - src/utf8.c
218
- - src/util.c
219
- - src/util/hb_allocator.c
220
- - src/util/hb_arena.c
221
- - src/util/hb_arena_debug.c
222
- - src/util/hb_array.c
223
- - src/util/hb_buffer.c
224
- - src/util/hb_narray.c
225
- - src/util/hb_string.c
224
+ - src/parser/dot_notation.c
225
+ - src/parser/match_tags.c
226
+ - src/parser/parser_helpers.c
227
+ - src/prism/prism_helpers.c
228
+ - src/prism/ruby_parser.c
229
+ - src/util/html_util.c
230
+ - src/util/io.c
231
+ - src/util/ruby_util.c
232
+ - src/util/utf8.c
233
+ - src/util/util.c
226
234
  - src/visitor.c
227
235
  - templates/ext/herb/error_helpers.c.erb
228
236
  - templates/ext/herb/error_helpers.h.erb
@@ -256,14 +264,14 @@ files:
256
264
  - templates/sig/serialized_ast_nodes.rbs.erb
257
265
  - templates/src/analyze/missing_end.c.erb
258
266
  - templates/src/analyze/transform.c.erb
259
- - templates/src/ast_nodes.c.erb
260
- - templates/src/ast_pretty_print.c.erb
267
+ - templates/src/ast/ast_nodes.c.erb
268
+ - templates/src/ast/ast_pretty_print.c.erb
261
269
  - templates/src/errors.c.erb
262
- - templates/src/include/ast_nodes.h.erb
263
- - templates/src/include/ast_pretty_print.h.erb
270
+ - templates/src/include/ast/ast_nodes.h.erb
271
+ - templates/src/include/ast/ast_pretty_print.h.erb
264
272
  - templates/src/include/errors.h.erb
265
- - templates/src/include/util/hb_foreach.h.erb
266
- - templates/src/parser_match_tags.c.erb
273
+ - templates/src/include/lib/hb_foreach.h.erb
274
+ - templates/src/parser/match_tags.c.erb
267
275
  - templates/src/visitor.c.erb
268
276
  - templates/template.rb
269
277
  - templates/wasm/error_helpers.cpp.erb
@@ -1,10 +0,0 @@
1
- #ifndef HERB_ELEMENT_SOURCE_H
2
- #define HERB_ELEMENT_SOURCE_H
3
-
4
- #include "util/hb_string.h"
5
-
6
- #define ELEMENT_SOURCE_HTML hb_string("HTML")
7
- #define ELEMENT_SOURCE_HAML hb_string("Haml")
8
- #define ELEMENT_SOURCE_SLIM hb_string("Slim")
9
-
10
- #endif
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes