prism 1.8.1 → 2.0.0.rc1

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 (241) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +90 -2
  3. data/Makefile +41 -12
  4. data/README.md +35 -97
  5. data/config.yml +174 -163
  6. data/docs/build_system.md +2 -2
  7. data/docs/configuration.md +5 -4
  8. data/docs/encoding.md +2 -2
  9. data/docs/fuzzing.md +4 -11
  10. data/docs/javascript.md +19 -4
  11. data/docs/mapping.md +1 -1
  12. data/docs/releasing.md +77 -5
  13. data/docs/relocation.md +2 -4
  14. data/docs/ripper_translation.md +8 -17
  15. data/docs/serialization.md +21 -24
  16. data/docs/testing.md +46 -29
  17. data/ext/prism/api_node.c +1461 -1401
  18. data/ext/prism/extconf.rb +3 -4
  19. data/ext/prism/extension.c +778 -422
  20. data/ext/prism/extension.h +3 -3
  21. data/include/prism/arena.h +37 -0
  22. data/include/prism/ast.h +2729 -612
  23. data/include/prism/buffer.h +52 -0
  24. data/include/prism/comments.h +55 -0
  25. data/include/prism/compiler/accel.h +24 -0
  26. data/include/prism/compiler/align.h +36 -0
  27. data/include/prism/compiler/assume.h +25 -0
  28. data/include/prism/compiler/exported.h +24 -0
  29. data/include/prism/compiler/fallthrough.h +22 -0
  30. data/include/prism/compiler/filesystem.h +32 -0
  31. data/include/prism/compiler/flex_array.h +19 -0
  32. data/include/prism/compiler/force_inline.h +21 -0
  33. data/include/prism/compiler/format.h +25 -0
  34. data/include/prism/compiler/inline.h +17 -0
  35. data/include/prism/compiler/nodiscard.h +22 -0
  36. data/include/prism/compiler/nonnull.h +18 -0
  37. data/include/prism/compiler/unused.h +18 -0
  38. data/include/prism/constant_pool.h +81 -0
  39. data/include/prism/diagnostic.h +38 -405
  40. data/include/prism/errors_format.h +53 -0
  41. data/include/prism/excludes.h +29 -0
  42. data/include/prism/integer.h +41 -0
  43. data/include/prism/internal/allocator.h +68 -0
  44. data/include/prism/internal/allocator_debug.h +88 -0
  45. data/include/prism/internal/arena.h +108 -0
  46. data/include/prism/internal/bit.h +42 -0
  47. data/include/prism/internal/buffer.h +91 -0
  48. data/include/prism/internal/char.h +145 -0
  49. data/include/prism/internal/comments.h +53 -0
  50. data/include/prism/internal/constant_pool.h +152 -0
  51. data/include/prism/internal/diagnostic.h +389 -0
  52. data/include/prism/{encoding.h → internal/encoding.h} +27 -68
  53. data/include/prism/internal/integer.h +68 -0
  54. data/include/prism/internal/isinf.h +16 -0
  55. data/include/prism/internal/line_offset_list.h +34 -0
  56. data/include/prism/{util/pm_list.h → internal/list.h} +11 -52
  57. data/include/prism/internal/magic_comments.h +23 -0
  58. data/include/prism/internal/memchr.h +15 -0
  59. data/include/prism/internal/node.h +38 -0
  60. data/include/prism/internal/options.h +232 -0
  61. data/include/prism/internal/parser.h +984 -0
  62. data/include/prism/internal/regexp.h +26 -0
  63. data/include/prism/internal/serialize.h +39 -0
  64. data/include/prism/internal/source.h +72 -0
  65. data/include/prism/{static_literals.h → internal/static_literals.h} +26 -47
  66. data/include/prism/internal/stringy.h +35 -0
  67. data/include/prism/{util/pm_strncasecmp.h → internal/strncasecmp.h} +3 -17
  68. data/include/prism/{util/pm_strpbrk.h → internal/strpbrk.h} +7 -20
  69. data/include/prism/internal/tokens.h +11 -0
  70. data/include/prism/json.h +32 -0
  71. data/include/prism/line_offset_list.h +61 -0
  72. data/include/prism/magic_comments.h +35 -0
  73. data/include/prism/node.h +18 -53
  74. data/include/prism/options.h +146 -280
  75. data/include/prism/parser.h +336 -868
  76. data/include/prism/prettyprint.h +6 -9
  77. data/include/prism/serialize.h +115 -0
  78. data/include/prism/source.h +155 -0
  79. data/include/prism/stream.h +28 -0
  80. data/include/prism/string_query.h +63 -0
  81. data/include/prism/stringy.h +72 -0
  82. data/include/prism/version.h +13 -4
  83. data/include/prism.h +43 -320
  84. data/lib/prism/compiler.rb +319 -305
  85. data/lib/prism/desugar_compiler.rb +105 -34
  86. data/lib/prism/dispatcher.rb +646 -473
  87. data/lib/prism/dot_visitor.rb +592 -511
  88. data/lib/prism/dsl.rb +391 -25
  89. data/lib/prism/ffi.rb +252 -90
  90. data/lib/prism/inspect_visitor.rb +357 -325
  91. data/lib/prism/lex_compat.rb +311 -228
  92. data/lib/prism/mutation_compiler.rb +313 -305
  93. data/lib/prism/node.rb +20284 -7038
  94. data/lib/prism/node_ext.rb +180 -187
  95. data/lib/prism/node_find.rb +215 -0
  96. data/lib/prism/parse_result/errors.rb +7 -1
  97. data/lib/prism/parse_result/newlines.rb +276 -8
  98. data/lib/prism/parse_result.rb +462 -139
  99. data/lib/prism/pattern.rb +65 -20
  100. data/lib/prism/reflection.rb +23 -12
  101. data/lib/prism/relocation.rb +149 -87
  102. data/lib/prism/serialize.rb +3442 -536
  103. data/lib/prism/string_query.rb +16 -1
  104. data/lib/prism/translation/parser/builder.rb +10 -2
  105. data/lib/prism/translation/parser/compiler.rb +44 -52
  106. data/lib/prism/translation/parser/lexer.rb +41 -92
  107. data/lib/prism/translation/parser.rb +1 -1
  108. data/lib/prism/translation/parser_current.rb +1 -1
  109. data/lib/prism/translation/ripper/filter.rb +53 -0
  110. data/lib/prism/translation/ripper/lexer.rb +92 -5
  111. data/lib/prism/translation/ripper/sexp.rb +2 -10
  112. data/lib/prism/translation/ripper/shim.rb +2 -0
  113. data/lib/prism/translation/ripper.rb +1005 -224
  114. data/lib/prism/translation/ruby_parser.rb +73 -316
  115. data/lib/prism/translation.rb +2 -0
  116. data/lib/prism/visitor.rb +632 -5
  117. data/lib/prism.rb +79 -22
  118. data/prism.gemspec +123 -61
  119. data/rbi/generated/prism/compiler.rbi +489 -0
  120. data/rbi/generated/prism/desugar_compiler.rbi +306 -0
  121. data/rbi/generated/prism/dispatcher.rbi +1138 -0
  122. data/rbi/generated/prism/dot_visitor.rbi +618 -0
  123. data/rbi/generated/prism/dsl.rbi +751 -0
  124. data/rbi/generated/prism/inspect_visitor.rbi +503 -0
  125. data/rbi/generated/prism/lex_compat.rbi +162 -0
  126. data/rbi/generated/prism/mutation_compiler.rbi +464 -0
  127. data/rbi/generated/prism/node.rbi +13681 -0
  128. data/rbi/generated/prism/node_ext.rbi +259 -0
  129. data/rbi/generated/prism/node_find.rbi +79 -0
  130. data/rbi/generated/prism/parse_result/errors.rbi +21 -0
  131. data/rbi/generated/prism/parse_result/newlines.rbi +208 -0
  132. data/rbi/generated/prism/parse_result.rbi +764 -0
  133. data/rbi/generated/prism/pattern.rbi +134 -0
  134. data/rbi/generated/prism/reflection.rbi +89 -0
  135. data/rbi/generated/prism/relocation.rbi +329 -0
  136. data/rbi/generated/prism/serialize.rbi +181 -0
  137. data/rbi/generated/prism/string_query.rbi +36 -0
  138. data/rbi/generated/prism/translation.rbi +7 -0
  139. data/rbi/generated/prism/visitor.rbi +650 -0
  140. data/rbi/generated/prism.rbi +86 -0
  141. data/rbi/prism/translation/parser_versions.rbi +5 -0
  142. data/rbi/rubyvm/node_find.rbi +14 -0
  143. data/sig/generated/prism/compiler.rbs +492 -0
  144. data/sig/generated/prism/desugar_compiler.rbs +305 -0
  145. data/sig/generated/prism/dispatcher.rbs +1292 -0
  146. data/sig/generated/prism/dot_visitor.rbs +635 -0
  147. data/sig/generated/prism/dsl.rbs +928 -0
  148. data/sig/generated/prism/inspect_visitor.rbs +509 -0
  149. data/sig/generated/prism/lex_compat.rbs +166 -0
  150. data/sig/{prism → generated/prism}/mutation_compiler.rbs +309 -4
  151. data/sig/generated/prism/node.rbs +20160 -0
  152. data/sig/generated/prism/node_ext.rbs +290 -0
  153. data/sig/generated/prism/node_find.rbs +90 -0
  154. data/sig/generated/prism/parse_result/errors.rbs +22 -0
  155. data/sig/generated/prism/parse_result/newlines.rbs +223 -0
  156. data/sig/generated/prism/parse_result.rbs +859 -0
  157. data/sig/generated/prism/pattern.rbs +156 -0
  158. data/sig/generated/prism/reflection.rbs +101 -0
  159. data/sig/generated/prism/relocation.rbs +428 -0
  160. data/sig/generated/prism/serialize.rbs +195 -0
  161. data/sig/generated/prism/string_query.rbs +36 -0
  162. data/sig/generated/prism/translation.rbs +8 -0
  163. data/sig/generated/prism/visitor.rbs +1111 -0
  164. data/sig/generated/prism.rbs +84 -0
  165. data/sig/manifest.yaml +2 -0
  166. data/src/arena.c +117 -0
  167. data/src/{util/pm_buffer.c → buffer.c} +44 -21
  168. data/src/{util/pm_char.c → char.c} +28 -57
  169. data/src/comments.c +454 -0
  170. data/src/constant_pool.c +406 -0
  171. data/src/diagnostic.c +93 -65
  172. data/src/encoding.c +8 -3
  173. data/src/errors_format.c +519 -0
  174. data/src/{util/pm_integer.c → integer.c} +33 -22
  175. data/src/json.c +5733 -0
  176. data/src/line_offset_list.c +100 -0
  177. data/src/list.c +24 -0
  178. data/src/{util/pm_memchr.c → memchr.c} +8 -6
  179. data/src/node.c +3504 -7674
  180. data/src/options.c +162 -49
  181. data/src/parser.c +349 -0
  182. data/src/prettyprint.c +421 -354
  183. data/src/prism.c +8035 -7019
  184. data/src/regexp.c +961 -45
  185. data/src/serialize.c +459 -424
  186. data/src/source.c +518 -0
  187. data/src/static_literals.c +111 -43
  188. data/src/string_query.c +166 -0
  189. data/src/stringy.c +91 -0
  190. data/src/{util/pm_strncasecmp.c → strncasecmp.c} +5 -4
  191. data/src/strpbrk.c +447 -0
  192. data/src/{token_type.c → tokens.c} +39 -18
  193. metadata +123 -62
  194. data/ext/prism/api_pack.c +0 -276
  195. data/include/prism/defines.h +0 -260
  196. data/include/prism/pack.h +0 -163
  197. data/include/prism/regexp.h +0 -43
  198. data/include/prism/util/pm_buffer.h +0 -236
  199. data/include/prism/util/pm_char.h +0 -204
  200. data/include/prism/util/pm_constant_pool.h +0 -218
  201. data/include/prism/util/pm_integer.h +0 -130
  202. data/include/prism/util/pm_memchr.h +0 -29
  203. data/include/prism/util/pm_newline_list.h +0 -113
  204. data/include/prism/util/pm_string.h +0 -200
  205. data/lib/prism/lex_ripper.rb +0 -64
  206. data/lib/prism/pack.rb +0 -230
  207. data/lib/prism/parse_result/comments.rb +0 -188
  208. data/rbi/prism/compiler.rbi +0 -12
  209. data/rbi/prism/dsl.rbi +0 -524
  210. data/rbi/prism/inspect_visitor.rbi +0 -12
  211. data/rbi/prism/node.rbi +0 -8747
  212. data/rbi/prism/node_ext.rbi +0 -107
  213. data/rbi/prism/parse_result.rbi +0 -404
  214. data/rbi/prism/reflection.rbi +0 -58
  215. data/rbi/prism/string_query.rbi +0 -12
  216. data/rbi/prism/visitor.rbi +0 -473
  217. data/rbi/prism.rbi +0 -66
  218. data/sig/prism/compiler.rbs +0 -9
  219. data/sig/prism/dispatcher.rbs +0 -19
  220. data/sig/prism/dot_visitor.rbs +0 -6
  221. data/sig/prism/dsl.rbs +0 -351
  222. data/sig/prism/inspect_visitor.rbs +0 -22
  223. data/sig/prism/lex_compat.rbs +0 -10
  224. data/sig/prism/node.rbs +0 -4039
  225. data/sig/prism/node_ext.rbs +0 -149
  226. data/sig/prism/pack.rbs +0 -43
  227. data/sig/prism/parse_result/comments.rbs +0 -38
  228. data/sig/prism/parse_result.rbs +0 -196
  229. data/sig/prism/pattern.rbs +0 -13
  230. data/sig/prism/reflection.rbs +0 -50
  231. data/sig/prism/relocation.rbs +0 -185
  232. data/sig/prism/serialize.rbs +0 -8
  233. data/sig/prism/string_query.rbs +0 -11
  234. data/sig/prism/visitor.rbs +0 -169
  235. data/sig/prism.rbs +0 -258
  236. data/src/pack.c +0 -509
  237. data/src/util/pm_constant_pool.c +0 -342
  238. data/src/util/pm_list.c +0 -49
  239. data/src/util/pm_newline_list.c +0 -125
  240. data/src/util/pm_string.c +0 -381
  241. data/src/util/pm_strpbrk.c +0 -206
@@ -0,0 +1,86 @@
1
+ # typed: true
2
+
3
+ # The Prism Ruby parser.
4
+ #
5
+ # "Parsing Ruby is suddenly manageable!"
6
+ # - You, hopefully
7
+ module Prism
8
+ # Raised when requested to parse as the currently running Ruby version but Prism has no support for it.
9
+ class CurrentVersionError < ArgumentError
10
+ # Initialize a new exception for the given ruby version string.
11
+ sig { params(version: String).void }
12
+ def initialize(version); end
13
+ end
14
+
15
+ # Returns a parse result whose value is an array of tokens that closely
16
+ # resembles the return value of Ripper.lex.
17
+ #
18
+ # For supported options, see Prism.parse.
19
+ sig { params(source: String, options: ::T.untyped).returns(LexCompat::Result) }
20
+ def self.lex_compat(source, **options); end
21
+
22
+ # Load the serialized AST using the source as a reference into a tree.
23
+ sig { params(source: String, serialized: String, freeze: T::Boolean).returns(ParseResult) }
24
+ def self.load(source, serialized, freeze = T.unsafe(nil)); end
25
+
26
+ # Given a Method, UnboundMethod, Proc, or Thread::Backtrace::Location,
27
+ # returns the Prism node representing it. On CRuby, this uses node_id for
28
+ # an exact match. On other implementations, it falls back to best-effort
29
+ # matching by source location line number.
30
+ sig { params(callable: ::T.any(Method, UnboundMethod, Proc, Thread::Backtrace::Location)).returns(::T.nilable(Node)) }
31
+ def self.find(callable); end
32
+
33
+ VERSION = T.let(nil, String)
34
+ BACKEND = T.let(nil, Symbol)
35
+
36
+ sig { params(source: String, filepath: String, attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(ParseResult) }
37
+ def self.parse(source, filepath: T.unsafe(nil), attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
38
+
39
+ sig { params(source: String, filepath: String, attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).void }
40
+ def self.profile(source, filepath: T.unsafe(nil), attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
41
+
42
+ sig { params(source: String, filepath: String, attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(LexResult) }
43
+ def self.lex(source, filepath: T.unsafe(nil), attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
44
+
45
+ sig { params(source: String, filepath: String, attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(ParseLexResult) }
46
+ def self.parse_lex(source, filepath: T.unsafe(nil), attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
47
+
48
+ sig { params(source: String, filepath: String, attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(String) }
49
+ def self.dump(source, filepath: T.unsafe(nil), attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
50
+
51
+ sig { params(source: String, filepath: String, attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(T::Array[Comment]) }
52
+ def self.parse_comments(source, filepath: T.unsafe(nil), attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
53
+
54
+ sig { params(source: String, filepath: String, attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(T::Boolean) }
55
+ def self.parse_success?(source, filepath: T.unsafe(nil), attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
56
+
57
+ sig { params(source: String, filepath: String, attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(T::Boolean) }
58
+ def self.parse_failure?(source, filepath: T.unsafe(nil), attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
59
+
60
+ sig { params(stream: ::T.untyped, filepath: String, attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(ParseResult) }
61
+ def self.parse_stream(stream, filepath: T.unsafe(nil), attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
62
+
63
+ sig { params(filepath: ::T.any(String, Pathname, IO), attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(ParseResult) }
64
+ def self.parse_file(filepath, attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
65
+
66
+ sig { params(filepath: ::T.any(String, Pathname, IO), attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).void }
67
+ def self.profile_file(filepath, attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
68
+
69
+ sig { params(filepath: ::T.any(String, Pathname, IO), attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(LexResult) }
70
+ def self.lex_file(filepath, attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
71
+
72
+ sig { params(filepath: ::T.any(String, Pathname, IO), attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(ParseLexResult) }
73
+ def self.parse_lex_file(filepath, attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
74
+
75
+ sig { params(filepath: ::T.any(String, Pathname, IO), attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(String) }
76
+ def self.dump_file(filepath, attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
77
+
78
+ sig { params(filepath: ::T.any(String, Pathname, IO), attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(T::Array[Comment]) }
79
+ def self.parse_file_comments(filepath, attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
80
+
81
+ sig { params(filepath: ::T.any(String, Pathname, IO), attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(T::Boolean) }
82
+ def self.parse_file_success?(filepath, attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
83
+
84
+ sig { params(filepath: ::T.any(String, Pathname, IO), attach_comments: T::Boolean, command_line: String, encoding: ::T.any(Encoding, FalseClass), freeze: T::Boolean, frozen_string_literal: T::Boolean, line: Integer, main_script: T::Boolean, partial_script: T::Boolean, raise_error: ::T.any(Symbol, TrueClass), scopes: T::Array[T::Array[Symbol]], version: String).returns(T::Boolean) }
85
+ def self.parse_file_failure?(filepath, attach_comments: T.unsafe(nil), command_line: T.unsafe(nil), encoding: T.unsafe(nil), freeze: T.unsafe(nil), frozen_string_literal: T.unsafe(nil), line: T.unsafe(nil), main_script: T.unsafe(nil), partial_script: T.unsafe(nil), raise_error: T.unsafe(nil), scopes: T.unsafe(nil), version: T.unsafe(nil)); end
86
+ end
@@ -21,3 +21,8 @@ class Prism::Translation::Parser40 < Prism::Translation::Parser
21
21
  sig { override.returns(Integer) }
22
22
  def version; end
23
23
  end
24
+
25
+ class Prism::Translation::Parser41 < Prism::Translation::Parser
26
+ sig { override.returns(Integer) }
27
+ def version; end
28
+ end
@@ -0,0 +1,14 @@
1
+ # typed: true
2
+
3
+ class RubyVM::InstructionSequence
4
+ sig { params(callable: T.any(Method, UnboundMethod, Proc)).returns(T.nilable(RubyVM::InstructionSequence)) }
5
+ def self.of(callable); end
6
+
7
+ sig { returns(T::Array[T.untyped]) }
8
+ def to_a; end
9
+ end
10
+
11
+ module RubyVM::AbstractSyntaxTree
12
+ sig { params(location: Thread::Backtrace::Location).returns(Integer) }
13
+ def self.node_id_for_backtrace_location(location); end
14
+ end
@@ -0,0 +1,492 @@
1
+ # Generated from lib/prism/compiler.rb with RBS::Inline
2
+
3
+ module Prism
4
+ # A compiler is a visitor that returns the value of each node as it visits.
5
+ # This is as opposed to a visitor which will only walk the tree. This can be
6
+ # useful when you are trying to compile a tree into a different format.
7
+ #
8
+ # For example, to build a representation of the tree as s-expressions, you
9
+ # could write:
10
+ #
11
+ # class SExpressions < Prism::Compiler
12
+ # def visit_arguments_node(node) = [:arguments, super]
13
+ # def visit_call_node(node) = [:call, super]
14
+ # def visit_integer_node(node) = [:integer]
15
+ # def visit_program_node(node) = [:program, super]
16
+ # end
17
+ #
18
+ # Prism.parse("1 + 2").value.accept(SExpressions.new)
19
+ # # => [:program, [[[:call, [[:integer], [:arguments, [[:integer]]]]]]]]
20
+ class Compiler < Visitor
21
+ # Visit an individual node.
22
+ #
23
+ # : (node?) -> untyped
24
+ def visit: (node?) -> untyped
25
+
26
+ # Visit a list of nodes.
27
+ #
28
+ # : (Array[node?]) -> untyped
29
+ def visit_all: (Array[node?]) -> untyped
30
+
31
+ # Visit the child nodes of the given node.
32
+ #
33
+ # : (node) -> Array[untyped]
34
+ def visit_child_nodes: (node) -> Array[untyped]
35
+
36
+ # : (AliasGlobalVariableNode) -> Array[untyped]
37
+ def visit_alias_global_variable_node: (AliasGlobalVariableNode) -> Array[untyped]
38
+
39
+ # : (AliasMethodNode) -> Array[untyped]
40
+ def visit_alias_method_node: (AliasMethodNode) -> Array[untyped]
41
+
42
+ # : (AlternationPatternNode) -> Array[untyped]
43
+ def visit_alternation_pattern_node: (AlternationPatternNode) -> Array[untyped]
44
+
45
+ # : (AndNode) -> Array[untyped]
46
+ def visit_and_node: (AndNode) -> Array[untyped]
47
+
48
+ # : (ArgumentsNode) -> Array[untyped]
49
+ def visit_arguments_node: (ArgumentsNode) -> Array[untyped]
50
+
51
+ # : (ArrayNode) -> Array[untyped]
52
+ def visit_array_node: (ArrayNode) -> Array[untyped]
53
+
54
+ # : (ArrayPatternNode) -> Array[untyped]
55
+ def visit_array_pattern_node: (ArrayPatternNode) -> Array[untyped]
56
+
57
+ # : (AssocNode) -> Array[untyped]
58
+ def visit_assoc_node: (AssocNode) -> Array[untyped]
59
+
60
+ # : (AssocSplatNode) -> Array[untyped]
61
+ def visit_assoc_splat_node: (AssocSplatNode) -> Array[untyped]
62
+
63
+ # : (BackReferenceReadNode) -> Array[untyped]
64
+ def visit_back_reference_read_node: (BackReferenceReadNode) -> Array[untyped]
65
+
66
+ # : (BeginNode) -> Array[untyped]
67
+ def visit_begin_node: (BeginNode) -> Array[untyped]
68
+
69
+ # : (BlockArgumentNode) -> Array[untyped]
70
+ def visit_block_argument_node: (BlockArgumentNode) -> Array[untyped]
71
+
72
+ # : (BlockLocalVariableNode) -> Array[untyped]
73
+ def visit_block_local_variable_node: (BlockLocalVariableNode) -> Array[untyped]
74
+
75
+ # : (BlockNode) -> Array[untyped]
76
+ def visit_block_node: (BlockNode) -> Array[untyped]
77
+
78
+ # : (BlockParameterNode) -> Array[untyped]
79
+ def visit_block_parameter_node: (BlockParameterNode) -> Array[untyped]
80
+
81
+ # : (BlockParametersNode) -> Array[untyped]
82
+ def visit_block_parameters_node: (BlockParametersNode) -> Array[untyped]
83
+
84
+ # : (BreakNode) -> Array[untyped]
85
+ def visit_break_node: (BreakNode) -> Array[untyped]
86
+
87
+ # : (CallAndWriteNode) -> Array[untyped]
88
+ def visit_call_and_write_node: (CallAndWriteNode) -> Array[untyped]
89
+
90
+ # : (CallNode) -> Array[untyped]
91
+ def visit_call_node: (CallNode) -> Array[untyped]
92
+
93
+ # : (CallOperatorWriteNode) -> Array[untyped]
94
+ def visit_call_operator_write_node: (CallOperatorWriteNode) -> Array[untyped]
95
+
96
+ # : (CallOrWriteNode) -> Array[untyped]
97
+ def visit_call_or_write_node: (CallOrWriteNode) -> Array[untyped]
98
+
99
+ # : (CallTargetNode) -> Array[untyped]
100
+ def visit_call_target_node: (CallTargetNode) -> Array[untyped]
101
+
102
+ # : (CapturePatternNode) -> Array[untyped]
103
+ def visit_capture_pattern_node: (CapturePatternNode) -> Array[untyped]
104
+
105
+ # : (CaseMatchNode) -> Array[untyped]
106
+ def visit_case_match_node: (CaseMatchNode) -> Array[untyped]
107
+
108
+ # : (CaseNode) -> Array[untyped]
109
+ def visit_case_node: (CaseNode) -> Array[untyped]
110
+
111
+ # : (ClassNode) -> Array[untyped]
112
+ def visit_class_node: (ClassNode) -> Array[untyped]
113
+
114
+ # : (ClassVariableAndWriteNode) -> Array[untyped]
115
+ def visit_class_variable_and_write_node: (ClassVariableAndWriteNode) -> Array[untyped]
116
+
117
+ # : (ClassVariableOperatorWriteNode) -> Array[untyped]
118
+ def visit_class_variable_operator_write_node: (ClassVariableOperatorWriteNode) -> Array[untyped]
119
+
120
+ # : (ClassVariableOrWriteNode) -> Array[untyped]
121
+ def visit_class_variable_or_write_node: (ClassVariableOrWriteNode) -> Array[untyped]
122
+
123
+ # : (ClassVariableReadNode) -> Array[untyped]
124
+ def visit_class_variable_read_node: (ClassVariableReadNode) -> Array[untyped]
125
+
126
+ # : (ClassVariableTargetNode) -> Array[untyped]
127
+ def visit_class_variable_target_node: (ClassVariableTargetNode) -> Array[untyped]
128
+
129
+ # : (ClassVariableWriteNode) -> Array[untyped]
130
+ def visit_class_variable_write_node: (ClassVariableWriteNode) -> Array[untyped]
131
+
132
+ # : (ConstantAndWriteNode) -> Array[untyped]
133
+ def visit_constant_and_write_node: (ConstantAndWriteNode) -> Array[untyped]
134
+
135
+ # : (ConstantOperatorWriteNode) -> Array[untyped]
136
+ def visit_constant_operator_write_node: (ConstantOperatorWriteNode) -> Array[untyped]
137
+
138
+ # : (ConstantOrWriteNode) -> Array[untyped]
139
+ def visit_constant_or_write_node: (ConstantOrWriteNode) -> Array[untyped]
140
+
141
+ # : (ConstantPathAndWriteNode) -> Array[untyped]
142
+ def visit_constant_path_and_write_node: (ConstantPathAndWriteNode) -> Array[untyped]
143
+
144
+ # : (ConstantPathNode) -> Array[untyped]
145
+ def visit_constant_path_node: (ConstantPathNode) -> Array[untyped]
146
+
147
+ # : (ConstantPathOperatorWriteNode) -> Array[untyped]
148
+ def visit_constant_path_operator_write_node: (ConstantPathOperatorWriteNode) -> Array[untyped]
149
+
150
+ # : (ConstantPathOrWriteNode) -> Array[untyped]
151
+ def visit_constant_path_or_write_node: (ConstantPathOrWriteNode) -> Array[untyped]
152
+
153
+ # : (ConstantPathTargetNode) -> Array[untyped]
154
+ def visit_constant_path_target_node: (ConstantPathTargetNode) -> Array[untyped]
155
+
156
+ # : (ConstantPathWriteNode) -> Array[untyped]
157
+ def visit_constant_path_write_node: (ConstantPathWriteNode) -> Array[untyped]
158
+
159
+ # : (ConstantReadNode) -> Array[untyped]
160
+ def visit_constant_read_node: (ConstantReadNode) -> Array[untyped]
161
+
162
+ # : (ConstantTargetNode) -> Array[untyped]
163
+ def visit_constant_target_node: (ConstantTargetNode) -> Array[untyped]
164
+
165
+ # : (ConstantWriteNode) -> Array[untyped]
166
+ def visit_constant_write_node: (ConstantWriteNode) -> Array[untyped]
167
+
168
+ # : (DefNode) -> Array[untyped]
169
+ def visit_def_node: (DefNode) -> Array[untyped]
170
+
171
+ # : (DefinedNode) -> Array[untyped]
172
+ def visit_defined_node: (DefinedNode) -> Array[untyped]
173
+
174
+ # : (ElseNode) -> Array[untyped]
175
+ def visit_else_node: (ElseNode) -> Array[untyped]
176
+
177
+ # : (EmbeddedStatementsNode) -> Array[untyped]
178
+ def visit_embedded_statements_node: (EmbeddedStatementsNode) -> Array[untyped]
179
+
180
+ # : (EmbeddedVariableNode) -> Array[untyped]
181
+ def visit_embedded_variable_node: (EmbeddedVariableNode) -> Array[untyped]
182
+
183
+ # : (EnsureNode) -> Array[untyped]
184
+ def visit_ensure_node: (EnsureNode) -> Array[untyped]
185
+
186
+ # : (ErrorRecoveryNode) -> Array[untyped]
187
+ def visit_error_recovery_node: (ErrorRecoveryNode) -> Array[untyped]
188
+
189
+ # : (FalseNode) -> Array[untyped]
190
+ def visit_false_node: (FalseNode) -> Array[untyped]
191
+
192
+ # : (FindPatternNode) -> Array[untyped]
193
+ def visit_find_pattern_node: (FindPatternNode) -> Array[untyped]
194
+
195
+ # : (FlipFlopNode) -> Array[untyped]
196
+ def visit_flip_flop_node: (FlipFlopNode) -> Array[untyped]
197
+
198
+ # : (FloatNode) -> Array[untyped]
199
+ def visit_float_node: (FloatNode) -> Array[untyped]
200
+
201
+ # : (ForNode) -> Array[untyped]
202
+ def visit_for_node: (ForNode) -> Array[untyped]
203
+
204
+ # : (ForwardingArgumentsNode) -> Array[untyped]
205
+ def visit_forwarding_arguments_node: (ForwardingArgumentsNode) -> Array[untyped]
206
+
207
+ # : (ForwardingParameterNode) -> Array[untyped]
208
+ def visit_forwarding_parameter_node: (ForwardingParameterNode) -> Array[untyped]
209
+
210
+ # : (ForwardingSuperNode) -> Array[untyped]
211
+ def visit_forwarding_super_node: (ForwardingSuperNode) -> Array[untyped]
212
+
213
+ # : (GlobalVariableAndWriteNode) -> Array[untyped]
214
+ def visit_global_variable_and_write_node: (GlobalVariableAndWriteNode) -> Array[untyped]
215
+
216
+ # : (GlobalVariableOperatorWriteNode) -> Array[untyped]
217
+ def visit_global_variable_operator_write_node: (GlobalVariableOperatorWriteNode) -> Array[untyped]
218
+
219
+ # : (GlobalVariableOrWriteNode) -> Array[untyped]
220
+ def visit_global_variable_or_write_node: (GlobalVariableOrWriteNode) -> Array[untyped]
221
+
222
+ # : (GlobalVariableReadNode) -> Array[untyped]
223
+ def visit_global_variable_read_node: (GlobalVariableReadNode) -> Array[untyped]
224
+
225
+ # : (GlobalVariableTargetNode) -> Array[untyped]
226
+ def visit_global_variable_target_node: (GlobalVariableTargetNode) -> Array[untyped]
227
+
228
+ # : (GlobalVariableWriteNode) -> Array[untyped]
229
+ def visit_global_variable_write_node: (GlobalVariableWriteNode) -> Array[untyped]
230
+
231
+ # : (HashNode) -> Array[untyped]
232
+ def visit_hash_node: (HashNode) -> Array[untyped]
233
+
234
+ # : (HashPatternNode) -> Array[untyped]
235
+ def visit_hash_pattern_node: (HashPatternNode) -> Array[untyped]
236
+
237
+ # : (IfNode) -> Array[untyped]
238
+ def visit_if_node: (IfNode) -> Array[untyped]
239
+
240
+ # : (ImaginaryNode) -> Array[untyped]
241
+ def visit_imaginary_node: (ImaginaryNode) -> Array[untyped]
242
+
243
+ # : (ImplicitNode) -> Array[untyped]
244
+ def visit_implicit_node: (ImplicitNode) -> Array[untyped]
245
+
246
+ # : (ImplicitRestNode) -> Array[untyped]
247
+ def visit_implicit_rest_node: (ImplicitRestNode) -> Array[untyped]
248
+
249
+ # : (InNode) -> Array[untyped]
250
+ def visit_in_node: (InNode) -> Array[untyped]
251
+
252
+ # : (IndexAndWriteNode) -> Array[untyped]
253
+ def visit_index_and_write_node: (IndexAndWriteNode) -> Array[untyped]
254
+
255
+ # : (IndexOperatorWriteNode) -> Array[untyped]
256
+ def visit_index_operator_write_node: (IndexOperatorWriteNode) -> Array[untyped]
257
+
258
+ # : (IndexOrWriteNode) -> Array[untyped]
259
+ def visit_index_or_write_node: (IndexOrWriteNode) -> Array[untyped]
260
+
261
+ # : (IndexTargetNode) -> Array[untyped]
262
+ def visit_index_target_node: (IndexTargetNode) -> Array[untyped]
263
+
264
+ # : (InstanceVariableAndWriteNode) -> Array[untyped]
265
+ def visit_instance_variable_and_write_node: (InstanceVariableAndWriteNode) -> Array[untyped]
266
+
267
+ # : (InstanceVariableOperatorWriteNode) -> Array[untyped]
268
+ def visit_instance_variable_operator_write_node: (InstanceVariableOperatorWriteNode) -> Array[untyped]
269
+
270
+ # : (InstanceVariableOrWriteNode) -> Array[untyped]
271
+ def visit_instance_variable_or_write_node: (InstanceVariableOrWriteNode) -> Array[untyped]
272
+
273
+ # : (InstanceVariableReadNode) -> Array[untyped]
274
+ def visit_instance_variable_read_node: (InstanceVariableReadNode) -> Array[untyped]
275
+
276
+ # : (InstanceVariableTargetNode) -> Array[untyped]
277
+ def visit_instance_variable_target_node: (InstanceVariableTargetNode) -> Array[untyped]
278
+
279
+ # : (InstanceVariableWriteNode) -> Array[untyped]
280
+ def visit_instance_variable_write_node: (InstanceVariableWriteNode) -> Array[untyped]
281
+
282
+ # : (IntegerNode) -> Array[untyped]
283
+ def visit_integer_node: (IntegerNode) -> Array[untyped]
284
+
285
+ # : (InterpolatedMatchLastLineNode) -> Array[untyped]
286
+ def visit_interpolated_match_last_line_node: (InterpolatedMatchLastLineNode) -> Array[untyped]
287
+
288
+ # : (InterpolatedRegularExpressionNode) -> Array[untyped]
289
+ def visit_interpolated_regular_expression_node: (InterpolatedRegularExpressionNode) -> Array[untyped]
290
+
291
+ # : (InterpolatedStringNode) -> Array[untyped]
292
+ def visit_interpolated_string_node: (InterpolatedStringNode) -> Array[untyped]
293
+
294
+ # : (InterpolatedSymbolNode) -> Array[untyped]
295
+ def visit_interpolated_symbol_node: (InterpolatedSymbolNode) -> Array[untyped]
296
+
297
+ # : (InterpolatedXStringNode) -> Array[untyped]
298
+ def visit_interpolated_x_string_node: (InterpolatedXStringNode) -> Array[untyped]
299
+
300
+ # : (ItLocalVariableReadNode) -> Array[untyped]
301
+ def visit_it_local_variable_read_node: (ItLocalVariableReadNode) -> Array[untyped]
302
+
303
+ # : (ItParametersNode) -> Array[untyped]
304
+ def visit_it_parameters_node: (ItParametersNode) -> Array[untyped]
305
+
306
+ # : (KeywordHashNode) -> Array[untyped]
307
+ def visit_keyword_hash_node: (KeywordHashNode) -> Array[untyped]
308
+
309
+ # : (KeywordRestParameterNode) -> Array[untyped]
310
+ def visit_keyword_rest_parameter_node: (KeywordRestParameterNode) -> Array[untyped]
311
+
312
+ # : (LambdaNode) -> Array[untyped]
313
+ def visit_lambda_node: (LambdaNode) -> Array[untyped]
314
+
315
+ # : (LocalVariableAndWriteNode) -> Array[untyped]
316
+ def visit_local_variable_and_write_node: (LocalVariableAndWriteNode) -> Array[untyped]
317
+
318
+ # : (LocalVariableOperatorWriteNode) -> Array[untyped]
319
+ def visit_local_variable_operator_write_node: (LocalVariableOperatorWriteNode) -> Array[untyped]
320
+
321
+ # : (LocalVariableOrWriteNode) -> Array[untyped]
322
+ def visit_local_variable_or_write_node: (LocalVariableOrWriteNode) -> Array[untyped]
323
+
324
+ # : (LocalVariableReadNode) -> Array[untyped]
325
+ def visit_local_variable_read_node: (LocalVariableReadNode) -> Array[untyped]
326
+
327
+ # : (LocalVariableTargetNode) -> Array[untyped]
328
+ def visit_local_variable_target_node: (LocalVariableTargetNode) -> Array[untyped]
329
+
330
+ # : (LocalVariableWriteNode) -> Array[untyped]
331
+ def visit_local_variable_write_node: (LocalVariableWriteNode) -> Array[untyped]
332
+
333
+ # : (MatchLastLineNode) -> Array[untyped]
334
+ def visit_match_last_line_node: (MatchLastLineNode) -> Array[untyped]
335
+
336
+ # : (MatchPredicateNode) -> Array[untyped]
337
+ def visit_match_predicate_node: (MatchPredicateNode) -> Array[untyped]
338
+
339
+ # : (MatchRequiredNode) -> Array[untyped]
340
+ def visit_match_required_node: (MatchRequiredNode) -> Array[untyped]
341
+
342
+ # : (MatchWriteNode) -> Array[untyped]
343
+ def visit_match_write_node: (MatchWriteNode) -> Array[untyped]
344
+
345
+ # : (ModuleNode) -> Array[untyped]
346
+ def visit_module_node: (ModuleNode) -> Array[untyped]
347
+
348
+ # : (MultiTargetNode) -> Array[untyped]
349
+ def visit_multi_target_node: (MultiTargetNode) -> Array[untyped]
350
+
351
+ # : (MultiWriteNode) -> Array[untyped]
352
+ def visit_multi_write_node: (MultiWriteNode) -> Array[untyped]
353
+
354
+ # : (NextNode) -> Array[untyped]
355
+ def visit_next_node: (NextNode) -> Array[untyped]
356
+
357
+ # : (NilNode) -> Array[untyped]
358
+ def visit_nil_node: (NilNode) -> Array[untyped]
359
+
360
+ # : (NoBlockParameterNode) -> Array[untyped]
361
+ def visit_no_block_parameter_node: (NoBlockParameterNode) -> Array[untyped]
362
+
363
+ # : (NoKeywordsParameterNode) -> Array[untyped]
364
+ def visit_no_keywords_parameter_node: (NoKeywordsParameterNode) -> Array[untyped]
365
+
366
+ # : (NumberedParametersNode) -> Array[untyped]
367
+ def visit_numbered_parameters_node: (NumberedParametersNode) -> Array[untyped]
368
+
369
+ # : (NumberedReferenceReadNode) -> Array[untyped]
370
+ def visit_numbered_reference_read_node: (NumberedReferenceReadNode) -> Array[untyped]
371
+
372
+ # : (OptionalKeywordParameterNode) -> Array[untyped]
373
+ def visit_optional_keyword_parameter_node: (OptionalKeywordParameterNode) -> Array[untyped]
374
+
375
+ # : (OptionalParameterNode) -> Array[untyped]
376
+ def visit_optional_parameter_node: (OptionalParameterNode) -> Array[untyped]
377
+
378
+ # : (OrNode) -> Array[untyped]
379
+ def visit_or_node: (OrNode) -> Array[untyped]
380
+
381
+ # : (ParametersNode) -> Array[untyped]
382
+ def visit_parameters_node: (ParametersNode) -> Array[untyped]
383
+
384
+ # : (ParenthesesNode) -> Array[untyped]
385
+ def visit_parentheses_node: (ParenthesesNode) -> Array[untyped]
386
+
387
+ # : (PinnedExpressionNode) -> Array[untyped]
388
+ def visit_pinned_expression_node: (PinnedExpressionNode) -> Array[untyped]
389
+
390
+ # : (PinnedVariableNode) -> Array[untyped]
391
+ def visit_pinned_variable_node: (PinnedVariableNode) -> Array[untyped]
392
+
393
+ # : (PostExecutionNode) -> Array[untyped]
394
+ def visit_post_execution_node: (PostExecutionNode) -> Array[untyped]
395
+
396
+ # : (PreExecutionNode) -> Array[untyped]
397
+ def visit_pre_execution_node: (PreExecutionNode) -> Array[untyped]
398
+
399
+ # : (ProgramNode) -> Array[untyped]
400
+ def visit_program_node: (ProgramNode) -> Array[untyped]
401
+
402
+ # : (RangeNode) -> Array[untyped]
403
+ def visit_range_node: (RangeNode) -> Array[untyped]
404
+
405
+ # : (RationalNode) -> Array[untyped]
406
+ def visit_rational_node: (RationalNode) -> Array[untyped]
407
+
408
+ # : (RedoNode) -> Array[untyped]
409
+ def visit_redo_node: (RedoNode) -> Array[untyped]
410
+
411
+ # : (RegularExpressionNode) -> Array[untyped]
412
+ def visit_regular_expression_node: (RegularExpressionNode) -> Array[untyped]
413
+
414
+ # : (RequiredKeywordParameterNode) -> Array[untyped]
415
+ def visit_required_keyword_parameter_node: (RequiredKeywordParameterNode) -> Array[untyped]
416
+
417
+ # : (RequiredParameterNode) -> Array[untyped]
418
+ def visit_required_parameter_node: (RequiredParameterNode) -> Array[untyped]
419
+
420
+ # : (RescueModifierNode) -> Array[untyped]
421
+ def visit_rescue_modifier_node: (RescueModifierNode) -> Array[untyped]
422
+
423
+ # : (RescueNode) -> Array[untyped]
424
+ def visit_rescue_node: (RescueNode) -> Array[untyped]
425
+
426
+ # : (RestParameterNode) -> Array[untyped]
427
+ def visit_rest_parameter_node: (RestParameterNode) -> Array[untyped]
428
+
429
+ # : (RetryNode) -> Array[untyped]
430
+ def visit_retry_node: (RetryNode) -> Array[untyped]
431
+
432
+ # : (ReturnNode) -> Array[untyped]
433
+ def visit_return_node: (ReturnNode) -> Array[untyped]
434
+
435
+ # : (SelfNode) -> Array[untyped]
436
+ def visit_self_node: (SelfNode) -> Array[untyped]
437
+
438
+ # : (ShareableConstantNode) -> Array[untyped]
439
+ def visit_shareable_constant_node: (ShareableConstantNode) -> Array[untyped]
440
+
441
+ # : (SingletonClassNode) -> Array[untyped]
442
+ def visit_singleton_class_node: (SingletonClassNode) -> Array[untyped]
443
+
444
+ # : (SourceEncodingNode) -> Array[untyped]
445
+ def visit_source_encoding_node: (SourceEncodingNode) -> Array[untyped]
446
+
447
+ # : (SourceFileNode) -> Array[untyped]
448
+ def visit_source_file_node: (SourceFileNode) -> Array[untyped]
449
+
450
+ # : (SourceLineNode) -> Array[untyped]
451
+ def visit_source_line_node: (SourceLineNode) -> Array[untyped]
452
+
453
+ # : (SplatNode) -> Array[untyped]
454
+ def visit_splat_node: (SplatNode) -> Array[untyped]
455
+
456
+ # : (StatementsNode) -> Array[untyped]
457
+ def visit_statements_node: (StatementsNode) -> Array[untyped]
458
+
459
+ # : (StringNode) -> Array[untyped]
460
+ def visit_string_node: (StringNode) -> Array[untyped]
461
+
462
+ # : (SuperNode) -> Array[untyped]
463
+ def visit_super_node: (SuperNode) -> Array[untyped]
464
+
465
+ # : (SymbolNode) -> Array[untyped]
466
+ def visit_symbol_node: (SymbolNode) -> Array[untyped]
467
+
468
+ # : (TrueNode) -> Array[untyped]
469
+ def visit_true_node: (TrueNode) -> Array[untyped]
470
+
471
+ # : (UndefNode) -> Array[untyped]
472
+ def visit_undef_node: (UndefNode) -> Array[untyped]
473
+
474
+ # : (UnlessNode) -> Array[untyped]
475
+ def visit_unless_node: (UnlessNode) -> Array[untyped]
476
+
477
+ # : (UntilNode) -> Array[untyped]
478
+ def visit_until_node: (UntilNode) -> Array[untyped]
479
+
480
+ # : (WhenNode) -> Array[untyped]
481
+ def visit_when_node: (WhenNode) -> Array[untyped]
482
+
483
+ # : (WhileNode) -> Array[untyped]
484
+ def visit_while_node: (WhileNode) -> Array[untyped]
485
+
486
+ # : (XStringNode) -> Array[untyped]
487
+ def visit_x_string_node: (XStringNode) -> Array[untyped]
488
+
489
+ # : (YieldNode) -> Array[untyped]
490
+ def visit_yield_node: (YieldNode) -> Array[untyped]
491
+ end
492
+ end