herb 0.11.1-arm-linux-gnu → 0.11.2-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 (251) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +4 -2
  3. data/config.yml +6 -0
  4. data/ext/herb/extconf.rb +8 -31
  5. data/ext/herb/nodes.c +75 -75
  6. data/ext/herb/parser_options_helpers.c +26 -0
  7. data/lib/herb/3.2/herb.so +0 -0
  8. data/lib/herb/3.3/herb.so +0 -0
  9. data/lib/herb/3.4/herb.so +0 -0
  10. data/lib/herb/4.0/herb.so +0 -0
  11. data/lib/herb/analysis/partial_index.rb +1 -1
  12. data/lib/herb/analysis/partial_resolution.rb +27 -0
  13. data/lib/herb/ast/helpers.rb +1 -1
  14. data/lib/herb/configuration.rb +11 -1
  15. data/lib/herb/dev/classifier.rb +1 -1
  16. data/lib/herb/engine/compiler.rb +5 -8
  17. data/lib/herb/engine/slots/dynamics_compiler.rb +53 -14
  18. data/lib/herb/engine/slots/subtree_compiler.rb +1 -1
  19. data/lib/herb/engine/slots/visitor.rb +32 -4
  20. data/lib/herb/engine/visitors/instrumentation_visitor.rb +18 -6
  21. data/lib/herb/parser_options.rb +6 -3
  22. data/lib/herb/project.rb +19 -8
  23. data/lib/herb/version.rb +1 -1
  24. data/lib/herb.rb +1 -1
  25. data/sig/herb/analysis/partial_resolution.rbs +8 -0
  26. data/sig/herb/configuration.rbs +3 -0
  27. data/sig/herb/engine/slots/dynamics_compiler.rbs +24 -7
  28. data/sig/herb/engine/slots/visitor.rbs +14 -0
  29. data/sig/herb/engine/visitors/instrumentation_visitor.rbs +5 -1
  30. data/sig/herb/parser_options.rbs +6 -4
  31. data/sig/herb.rbs +2 -2
  32. data/src/analyze/action_view/attribute_extraction_helpers.c +40 -21
  33. data/src/analyze/action_view/generated_handlers.c +36 -36
  34. data/src/analyze/action_view/image_tag.c +7 -3
  35. data/src/analyze/action_view/javascript_include_tag.c +6 -3
  36. data/src/analyze/action_view/link_to.c +23 -23
  37. data/src/analyze/action_view/registry.c +7 -3
  38. data/src/analyze/action_view/tag_helper_node_builders.c +6 -13
  39. data/src/analyze/action_view/tag_helpers.c +139 -90
  40. data/src/analyze/action_view/turbo_frame_tag.c +5 -4
  41. data/src/analyze/analyze.c +35 -19
  42. data/src/analyze/analyze_helpers.c +161 -188
  43. data/src/analyze/analyzed_ruby.c +8 -7
  44. data/src/analyze/control_type.c +29 -22
  45. data/src/analyze/herb_directives.c +16 -20
  46. data/src/analyze/iteration_nodes.c +69 -24
  47. data/src/analyze/parse_errors.c +32 -22
  48. data/src/analyze/postfix_conditionals.c +23 -13
  49. data/src/analyze/prism_annotate.c +29 -28
  50. data/src/analyze/render_nodes.c +51 -41
  51. data/src/analyze/strict_locals.c +14 -15
  52. data/src/analyze/ternary_conditionals.c +14 -10
  53. data/src/herb.c +10 -8
  54. data/src/include/analyze/action_view/tag_helper_handler.h +1 -1
  55. data/src/include/analyze/action_view/tag_helper_node_builders.h +1 -0
  56. data/src/include/analyze/action_view/tag_helpers.h +1 -1
  57. data/src/include/analyze/analyze.h +3 -2
  58. data/src/include/analyze/analyzed_ruby.h +4 -2
  59. data/src/include/analyze/helpers.h +6 -6
  60. data/src/include/herb.h +3 -2
  61. data/src/include/parser/parser_options.h +5 -0
  62. data/src/include/prism/prism_context.h +12 -12
  63. data/src/include/prism/prism_helpers.h +30 -0
  64. data/src/include/prism_version.h +11 -0
  65. data/src/include/version.h +1 -1
  66. data/src/parser/parser_helpers.c +1 -2
  67. data/src/parser.c +6 -7
  68. data/src/parser_options_defaults.c +1 -0
  69. data/src/prism/prism_helpers.c +84 -50
  70. data/src/prism/ruby_parser.c +20 -20
  71. data/templates/ext/herb/nodes.c.erb +5 -5
  72. data/templates/ext/herb/parser_options_helpers.c.erb +33 -0
  73. data/templates/java/nodes.c.erb +6 -6
  74. data/templates/java/parser_options_helpers.c.erb +41 -2
  75. data/templates/java/parser_options_helpers.h.erb +2 -1
  76. data/templates/javascript/packages/node/extension/nodes.cpp.erb +5 -5
  77. data/templates/javascript/packages/node/extension/parser_options_helpers.cpp.erb +34 -2
  78. data/templates/javascript/packages/node/extension/parser_options_helpers.h.erb +1 -1
  79. data/templates/lib/herb/parser_options.rb.erb +1 -1
  80. data/templates/rust/src/prism/generated_deserialize.rs.erb +90 -44
  81. data/templates/rust/src/prism/generated_prettyprint.rs.erb +18 -27
  82. data/templates/src/analyze/action_view/generated_handlers.c.erb +23 -22
  83. data/templates/src/include/parser/parser_options.h.erb +10 -0
  84. data/templates/src/include/prism_version.h.erb +17 -0
  85. data/templates/src/parser_options_defaults.c.erb +1 -1
  86. data/templates/template.rb +17 -2
  87. data/templates/wasm/nodes.cpp.erb +5 -5
  88. data/templates/wasm/parser_options_helpers.cpp.erb +24 -0
  89. data/vendor/prism/Rakefile +76 -7
  90. data/vendor/prism/config.yml +174 -161
  91. data/vendor/prism/include/prism/arena.h +45 -0
  92. data/vendor/prism/include/prism/arena.hpp +42 -0
  93. data/vendor/prism/include/prism/ast.h +2738 -611
  94. data/vendor/prism/include/prism/ast.hpp +641 -0
  95. data/vendor/prism/include/prism/buffer.h +60 -0
  96. data/vendor/prism/include/prism/buffer.hpp +55 -0
  97. data/vendor/prism/include/prism/comments.h +72 -0
  98. data/vendor/prism/include/prism/compiler/accel.h +26 -0
  99. data/vendor/prism/include/prism/compiler/align.h +36 -0
  100. data/vendor/prism/include/prism/compiler/assume.h +25 -0
  101. data/vendor/prism/include/prism/compiler/branch.h +26 -0
  102. data/vendor/prism/include/prism/compiler/bswap.h +46 -0
  103. data/vendor/prism/include/prism/compiler/cplusplus.hpp +16 -0
  104. data/vendor/prism/include/prism/compiler/endianness.h +34 -0
  105. data/vendor/prism/include/prism/compiler/exceptions.hpp +17 -0
  106. data/vendor/prism/include/prism/compiler/exported.h +24 -0
  107. data/vendor/prism/include/prism/compiler/fallthrough.h +22 -0
  108. data/vendor/prism/include/prism/compiler/filesystem.h +32 -0
  109. data/vendor/prism/include/prism/compiler/flex_array.h +19 -0
  110. data/vendor/prism/include/prism/compiler/force_inline.h +21 -0
  111. data/vendor/prism/include/prism/compiler/format.h +27 -0
  112. data/vendor/prism/include/prism/compiler/inline.h +17 -0
  113. data/vendor/prism/include/prism/compiler/lifetimebound.hpp +25 -0
  114. data/vendor/prism/include/prism/compiler/nodiscard.h +22 -0
  115. data/vendor/prism/include/prism/compiler/nonnull.h +18 -0
  116. data/vendor/prism/include/prism/compiler/unused.h +18 -0
  117. data/vendor/prism/include/prism/constant_pool.h +106 -0
  118. data/vendor/prism/include/prism/diagnostic.h +55 -402
  119. data/vendor/prism/include/prism/errors_format.h +61 -0
  120. data/vendor/prism/include/prism/excludes.h +29 -0
  121. data/vendor/prism/include/prism/integer.h +41 -0
  122. data/vendor/prism/include/prism/internal/allocator.h +68 -0
  123. data/vendor/prism/include/prism/internal/allocator_debug.h +88 -0
  124. data/vendor/prism/include/prism/internal/arena.h +108 -0
  125. data/vendor/prism/include/prism/internal/bit.h +42 -0
  126. data/vendor/prism/include/prism/internal/buffer.h +94 -0
  127. data/vendor/prism/include/prism/internal/char.h +145 -0
  128. data/vendor/prism/include/prism/internal/comments.h +54 -0
  129. data/vendor/prism/include/prism/internal/constant_pool.h +152 -0
  130. data/vendor/prism/include/prism/internal/diagnostic.h +389 -0
  131. data/vendor/prism/include/prism/{encoding.h → internal/encoding.h} +27 -68
  132. data/vendor/prism/include/prism/internal/integer.h +68 -0
  133. data/vendor/prism/include/prism/internal/isinf.h +16 -0
  134. data/vendor/prism/include/prism/internal/line_offset_list.h +34 -0
  135. data/vendor/prism/include/prism/{util/pm_list.h → internal/list.h} +11 -52
  136. data/vendor/prism/include/prism/internal/magic_comments.h +23 -0
  137. data/vendor/prism/include/prism/internal/memchr.h +15 -0
  138. data/vendor/prism/include/prism/internal/node.h +42 -0
  139. data/vendor/prism/include/prism/internal/options.h +232 -0
  140. data/vendor/prism/include/prism/internal/parser.h +1015 -0
  141. data/vendor/prism/include/prism/internal/regexp.h +26 -0
  142. data/vendor/prism/include/prism/internal/serialize.h +39 -0
  143. data/vendor/prism/include/prism/internal/source.h +72 -0
  144. data/vendor/prism/include/prism/internal/static_literals.h +60 -0
  145. data/vendor/prism/include/prism/internal/stringy.h +30 -0
  146. data/vendor/prism/include/prism/{util/pm_strncasecmp.h → internal/strncasecmp.h} +3 -17
  147. data/vendor/prism/include/prism/{util/pm_strpbrk.h → internal/strpbrk.h} +7 -20
  148. data/vendor/prism/include/prism/internal/tokens.h +11 -0
  149. data/vendor/prism/include/prism/internal/xxh3.h +16 -0
  150. data/vendor/prism/include/prism/json.h +40 -0
  151. data/vendor/prism/include/prism/line_offset_list.h +69 -0
  152. data/vendor/prism/include/prism/magic_comments.h +53 -0
  153. data/vendor/prism/include/prism/node.h +59 -49
  154. data/vendor/prism/include/prism/node.hpp +272 -0
  155. data/vendor/prism/include/prism/node_type.hpp +38 -0
  156. data/vendor/prism/include/prism/options.h +154 -279
  157. data/vendor/prism/include/prism/options.hpp +43 -0
  158. data/vendor/prism/include/prism/parser.h +367 -870
  159. data/vendor/prism/include/prism/parser.hpp +274 -0
  160. data/vendor/prism/include/prism/prettyprint.h +14 -9
  161. data/vendor/prism/include/prism/serialize.h +123 -0
  162. data/vendor/prism/include/prism/source.h +163 -0
  163. data/vendor/prism/include/prism/stream.h +36 -0
  164. data/vendor/prism/include/prism/string_query.h +82 -0
  165. data/vendor/prism/include/prism/stringy.h +61 -0
  166. data/vendor/prism/include/prism/stringy.hpp +31 -0
  167. data/vendor/prism/include/prism/version.h +20 -3
  168. data/vendor/prism/include/prism.h +35 -320
  169. data/vendor/prism/include/prism.hpp +24 -0
  170. data/vendor/prism/src/arena.c +122 -0
  171. data/vendor/prism/src/{util/pm_buffer.c → buffer.c} +53 -21
  172. data/vendor/prism/src/{util/pm_char.c → char.c} +28 -57
  173. data/vendor/prism/src/comments.c +455 -0
  174. data/vendor/prism/src/constant_pool.c +406 -0
  175. data/vendor/prism/src/diagnostic.c +120 -68
  176. data/vendor/prism/src/encoding.c +8 -3
  177. data/vendor/prism/src/errors_format.c +519 -0
  178. data/vendor/prism/src/{util/pm_integer.c → integer.c} +38 -22
  179. data/vendor/prism/src/json.c +5733 -0
  180. data/vendor/prism/src/line_offset_list.c +100 -0
  181. data/vendor/prism/src/list.c +24 -0
  182. data/vendor/prism/src/{util/pm_memchr.c → memchr.c} +8 -6
  183. data/vendor/prism/src/node.c +3465 -7787
  184. data/vendor/prism/src/options.c +161 -54
  185. data/vendor/prism/src/parser.c +371 -0
  186. data/vendor/prism/src/prettyprint.c +421 -354
  187. data/vendor/prism/src/prism.c +8522 -7280
  188. data/vendor/prism/src/regexp.c +960 -45
  189. data/vendor/prism/src/serialize.c +2434 -2048
  190. data/vendor/prism/src/source.c +524 -0
  191. data/vendor/prism/src/static_literals.c +303 -360
  192. data/vendor/prism/src/string_query.c +180 -0
  193. data/vendor/prism/src/stringy.c +61 -0
  194. data/vendor/prism/src/{util/pm_strncasecmp.c → strncasecmp.c} +5 -4
  195. data/vendor/prism/src/strpbrk.c +447 -0
  196. data/vendor/prism/src/{token_type.c → tokens.c} +39 -18
  197. data/vendor/prism/src/xxh3.c +292 -0
  198. data/vendor/prism/templates/ext/prism/api_node.c.erb +58 -44
  199. data/vendor/prism/templates/include/prism/ast.h.erb +67 -17
  200. data/vendor/prism/templates/include/prism/ast.hpp.erb +31 -0
  201. data/vendor/prism/templates/include/prism/internal/diagnostic.h.erb +60 -0
  202. data/vendor/prism/templates/java/{org → api/src/main/java-templates/org/ruby_lang}/prism/AbstractNodeVisitor.java.erb +1 -1
  203. data/vendor/prism/templates/java/{org → api/src/main/java-templates/org/ruby_lang}/prism/Loader.java.erb +232 -133
  204. data/vendor/prism/templates/java/{org → api/src/main/java-templates/org/ruby_lang}/prism/Nodes.java.erb +62 -23
  205. data/vendor/prism/templates/javascript/src/deserialize.js.erb +153 -146
  206. data/vendor/prism/templates/javascript/src/nodes.js.erb +4 -9
  207. data/vendor/prism/templates/lib/prism/compiler.rb.erb +14 -5
  208. data/vendor/prism/templates/lib/prism/dispatcher.rb.erb +20 -12
  209. data/vendor/prism/templates/lib/prism/dot_visitor.rb.erb +37 -11
  210. data/vendor/prism/templates/lib/prism/dsl.rb.erb +43 -4
  211. data/vendor/prism/templates/lib/prism/inspect_visitor.rb.erb +26 -10
  212. data/vendor/prism/templates/lib/prism/mutation_compiler.rb.erb +5 -2
  213. data/vendor/prism/templates/lib/prism/node.rb.erb +283 -105
  214. data/vendor/prism/templates/lib/prism/reflection.rb.erb +11 -2
  215. data/vendor/prism/templates/lib/prism/serialize.rb.erb +291 -134
  216. data/vendor/prism/templates/lib/prism/visitor.rb.erb +18 -0
  217. data/vendor/prism/templates/src/diagnostic.c.erb +114 -63
  218. data/vendor/prism/templates/src/json.c.erb +130 -0
  219. data/vendor/prism/templates/src/node.c.erb +79 -236
  220. data/vendor/prism/templates/src/prettyprint.c.erb +24 -13
  221. data/vendor/prism/templates/src/serialize.c.erb +369 -183
  222. data/vendor/prism/templates/src/{token_type.c.erb → tokens.c.erb} +22 -11
  223. data/vendor/prism/templates/template.rb +193 -91
  224. metadata +100 -42
  225. data/vendor/prism/include/prism/defines.h +0 -260
  226. data/vendor/prism/include/prism/pack.h +0 -163
  227. data/vendor/prism/include/prism/regexp.h +0 -43
  228. data/vendor/prism/include/prism/static_literals.h +0 -121
  229. data/vendor/prism/include/prism/util/pm_buffer.h +0 -236
  230. data/vendor/prism/include/prism/util/pm_char.h +0 -204
  231. data/vendor/prism/include/prism/util/pm_constant_pool.h +0 -218
  232. data/vendor/prism/include/prism/util/pm_integer.h +0 -130
  233. data/vendor/prism/include/prism/util/pm_memchr.h +0 -29
  234. data/vendor/prism/include/prism/util/pm_newline_list.h +0 -113
  235. data/vendor/prism/include/prism/util/pm_string.h +0 -200
  236. data/vendor/prism/src/pack.c +0 -509
  237. data/vendor/prism/src/util/pm_constant_pool.c +0 -342
  238. data/vendor/prism/src/util/pm_list.c +0 -49
  239. data/vendor/prism/src/util/pm_newline_list.c +0 -125
  240. data/vendor/prism/src/util/pm_string.c +0 -381
  241. data/vendor/prism/src/util/pm_strpbrk.c +0 -206
  242. data/vendor/prism/templates/include/prism/diagnostic.h.erb +0 -130
  243. data/vendor/prism/templates/rbi/prism/dsl.rbi.erb +0 -68
  244. data/vendor/prism/templates/rbi/prism/node.rbi.erb +0 -167
  245. data/vendor/prism/templates/rbi/prism/visitor.rbi.erb +0 -18
  246. data/vendor/prism/templates/sig/prism/_private/dot_visitor.rbs.erb +0 -45
  247. data/vendor/prism/templates/sig/prism/dsl.rbs.erb +0 -31
  248. data/vendor/prism/templates/sig/prism/mutation_compiler.rbs.erb +0 -7
  249. data/vendor/prism/templates/sig/prism/node.rbs.erb +0 -136
  250. data/vendor/prism/templates/sig/prism/visitor.rbs.erb +0 -17
  251. data/vendor/prism/templates/sig/prism.rbs.erb +0 -92
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @file arena.h
3
+ *
4
+ * A bump allocator for the prism parser.
5
+ */
6
+ #ifndef PRISM_ARENA_H
7
+ #define PRISM_ARENA_H
8
+
9
+ #include "prism/compiler/exported.h"
10
+ #include "prism/compiler/nodiscard.h"
11
+ #include "prism/compiler/nonnull.h"
12
+
13
+ #include <stddef.h>
14
+
15
+ #ifdef __cplusplus
16
+ extern "C" {
17
+ #endif
18
+
19
+ /**
20
+ * An opaque pointer to an arena that is used for allocations.
21
+ */
22
+ typedef struct pm_arena_t pm_arena_t;
23
+
24
+ /**
25
+ * Returns a newly allocated and initialized arena. If the arena cannot be
26
+ * allocated, this function aborts the process.
27
+ *
28
+ * @returns A pointer to the newly allocated arena. It is the responsibility of
29
+ * the caller to free the arena using pm_arena_free when it is no longer
30
+ * needed.
31
+ */
32
+ PRISM_NODISCARD PRISM_EXPORTED_FUNCTION pm_arena_t * pm_arena_new(void);
33
+
34
+ /**
35
+ * Frees both the held memory and the arena itself.
36
+ *
37
+ * @param arena The arena to free.
38
+ */
39
+ PRISM_EXPORTED_FUNCTION void pm_arena_free(pm_arena_t *arena) PRISM_NONNULL(1);
40
+
41
+ #ifdef __cplusplus
42
+ }
43
+ #endif
44
+
45
+ #endif
@@ -0,0 +1,42 @@
1
+ /**
2
+ * @file arena.hpp
3
+ *
4
+ * Ownership of arenas from C++.
5
+ */
6
+ #ifndef PRISM_ARENA_HPP
7
+ #define PRISM_ARENA_HPP
8
+
9
+ #include "prism/compiler/cplusplus.hpp"
10
+
11
+ #include "prism/arena.h"
12
+
13
+ #include <memory>
14
+
15
+ namespace prism {
16
+
17
+ /** Frees an arena with pm_arena_free. */
18
+ struct arena_deleter {
19
+ /**
20
+ * Frees the given arena.
21
+ *
22
+ * @param arena The arena to free.
23
+ */
24
+ void operator()(pm_arena_t *arena) const noexcept { pm_arena_free(arena); }
25
+ };
26
+
27
+ /** An owned arena. */
28
+ using unique_arena = std::unique_ptr<pm_arena_t, arena_deleter>;
29
+
30
+ /**
31
+ * Allocate a new arena. Allocation failure aborts, so this never throws.
32
+ *
33
+ * @return A unique_arena managing the newly allocated arena.
34
+ */
35
+ [[nodiscard]] inline unique_arena
36
+ make_arena() noexcept {
37
+ return unique_arena(pm_arena_new());
38
+ }
39
+
40
+ }
41
+
42
+ #endif