ed-precompiled_prism 1.5.2-arm64-darwin

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 (159) hide show
  1. checksums.yaml +7 -0
  2. data/BSDmakefile +58 -0
  3. data/CHANGELOG.md +723 -0
  4. data/CODE_OF_CONDUCT.md +76 -0
  5. data/CONTRIBUTING.md +58 -0
  6. data/LICENSE.md +7 -0
  7. data/Makefile +110 -0
  8. data/README.md +143 -0
  9. data/config.yml +4714 -0
  10. data/docs/build_system.md +119 -0
  11. data/docs/configuration.md +68 -0
  12. data/docs/cruby_compilation.md +27 -0
  13. data/docs/design.md +53 -0
  14. data/docs/encoding.md +121 -0
  15. data/docs/fuzzing.md +88 -0
  16. data/docs/heredocs.md +36 -0
  17. data/docs/javascript.md +118 -0
  18. data/docs/local_variable_depth.md +229 -0
  19. data/docs/mapping.md +117 -0
  20. data/docs/parser_translation.md +24 -0
  21. data/docs/parsing_rules.md +22 -0
  22. data/docs/releasing.md +98 -0
  23. data/docs/relocation.md +34 -0
  24. data/docs/ripper_translation.md +72 -0
  25. data/docs/ruby_api.md +44 -0
  26. data/docs/ruby_parser_translation.md +19 -0
  27. data/docs/serialization.md +233 -0
  28. data/docs/testing.md +55 -0
  29. data/ext/prism/api_node.c +6941 -0
  30. data/ext/prism/api_pack.c +276 -0
  31. data/ext/prism/extconf.rb +127 -0
  32. data/ext/prism/extension.c +1419 -0
  33. data/ext/prism/extension.h +19 -0
  34. data/include/prism/ast.h +8220 -0
  35. data/include/prism/defines.h +260 -0
  36. data/include/prism/diagnostic.h +456 -0
  37. data/include/prism/encoding.h +283 -0
  38. data/include/prism/node.h +129 -0
  39. data/include/prism/options.h +482 -0
  40. data/include/prism/pack.h +163 -0
  41. data/include/prism/parser.h +933 -0
  42. data/include/prism/prettyprint.h +34 -0
  43. data/include/prism/regexp.h +43 -0
  44. data/include/prism/static_literals.h +121 -0
  45. data/include/prism/util/pm_buffer.h +236 -0
  46. data/include/prism/util/pm_char.h +204 -0
  47. data/include/prism/util/pm_constant_pool.h +218 -0
  48. data/include/prism/util/pm_integer.h +130 -0
  49. data/include/prism/util/pm_list.h +103 -0
  50. data/include/prism/util/pm_memchr.h +29 -0
  51. data/include/prism/util/pm_newline_list.h +113 -0
  52. data/include/prism/util/pm_string.h +200 -0
  53. data/include/prism/util/pm_strncasecmp.h +32 -0
  54. data/include/prism/util/pm_strpbrk.h +46 -0
  55. data/include/prism/version.h +29 -0
  56. data/include/prism.h +408 -0
  57. data/lib/prism/3.0/prism.bundle +0 -0
  58. data/lib/prism/3.1/prism.bundle +0 -0
  59. data/lib/prism/3.2/prism.bundle +0 -0
  60. data/lib/prism/3.3/prism.bundle +0 -0
  61. data/lib/prism/3.4/prism.bundle +0 -0
  62. data/lib/prism/compiler.rb +801 -0
  63. data/lib/prism/desugar_compiler.rb +392 -0
  64. data/lib/prism/dispatcher.rb +2210 -0
  65. data/lib/prism/dot_visitor.rb +4762 -0
  66. data/lib/prism/dsl.rb +1003 -0
  67. data/lib/prism/ffi.rb +570 -0
  68. data/lib/prism/inspect_visitor.rb +2392 -0
  69. data/lib/prism/lex_compat.rb +928 -0
  70. data/lib/prism/mutation_compiler.rb +772 -0
  71. data/lib/prism/node.rb +18816 -0
  72. data/lib/prism/node_ext.rb +511 -0
  73. data/lib/prism/pack.rb +230 -0
  74. data/lib/prism/parse_result/comments.rb +188 -0
  75. data/lib/prism/parse_result/errors.rb +66 -0
  76. data/lib/prism/parse_result/newlines.rb +155 -0
  77. data/lib/prism/parse_result.rb +911 -0
  78. data/lib/prism/pattern.rb +269 -0
  79. data/lib/prism/polyfill/append_as_bytes.rb +15 -0
  80. data/lib/prism/polyfill/byteindex.rb +13 -0
  81. data/lib/prism/polyfill/scan_byte.rb +14 -0
  82. data/lib/prism/polyfill/unpack1.rb +14 -0
  83. data/lib/prism/polyfill/warn.rb +36 -0
  84. data/lib/prism/reflection.rb +416 -0
  85. data/lib/prism/relocation.rb +505 -0
  86. data/lib/prism/serialize.rb +2398 -0
  87. data/lib/prism/string_query.rb +31 -0
  88. data/lib/prism/translation/parser/builder.rb +62 -0
  89. data/lib/prism/translation/parser/compiler.rb +2234 -0
  90. data/lib/prism/translation/parser/lexer.rb +820 -0
  91. data/lib/prism/translation/parser.rb +374 -0
  92. data/lib/prism/translation/parser33.rb +13 -0
  93. data/lib/prism/translation/parser34.rb +13 -0
  94. data/lib/prism/translation/parser35.rb +13 -0
  95. data/lib/prism/translation/parser_current.rb +24 -0
  96. data/lib/prism/translation/ripper/sexp.rb +126 -0
  97. data/lib/prism/translation/ripper/shim.rb +5 -0
  98. data/lib/prism/translation/ripper.rb +3474 -0
  99. data/lib/prism/translation/ruby_parser.rb +1929 -0
  100. data/lib/prism/translation.rb +16 -0
  101. data/lib/prism/visitor.rb +813 -0
  102. data/lib/prism.rb +97 -0
  103. data/prism.gemspec +174 -0
  104. data/rbi/prism/compiler.rbi +12 -0
  105. data/rbi/prism/dsl.rbi +524 -0
  106. data/rbi/prism/inspect_visitor.rbi +12 -0
  107. data/rbi/prism/node.rbi +8734 -0
  108. data/rbi/prism/node_ext.rbi +107 -0
  109. data/rbi/prism/parse_result.rbi +404 -0
  110. data/rbi/prism/reflection.rbi +58 -0
  111. data/rbi/prism/string_query.rbi +12 -0
  112. data/rbi/prism/translation/parser.rbi +11 -0
  113. data/rbi/prism/translation/parser33.rbi +6 -0
  114. data/rbi/prism/translation/parser34.rbi +6 -0
  115. data/rbi/prism/translation/parser35.rbi +6 -0
  116. data/rbi/prism/translation/ripper.rbi +15 -0
  117. data/rbi/prism/visitor.rbi +473 -0
  118. data/rbi/prism.rbi +66 -0
  119. data/sig/prism/compiler.rbs +9 -0
  120. data/sig/prism/dispatcher.rbs +19 -0
  121. data/sig/prism/dot_visitor.rbs +6 -0
  122. data/sig/prism/dsl.rbs +351 -0
  123. data/sig/prism/inspect_visitor.rbs +22 -0
  124. data/sig/prism/lex_compat.rbs +10 -0
  125. data/sig/prism/mutation_compiler.rbs +159 -0
  126. data/sig/prism/node.rbs +4028 -0
  127. data/sig/prism/node_ext.rbs +149 -0
  128. data/sig/prism/pack.rbs +43 -0
  129. data/sig/prism/parse_result/comments.rbs +38 -0
  130. data/sig/prism/parse_result.rbs +196 -0
  131. data/sig/prism/pattern.rbs +13 -0
  132. data/sig/prism/reflection.rbs +50 -0
  133. data/sig/prism/relocation.rbs +185 -0
  134. data/sig/prism/serialize.rbs +8 -0
  135. data/sig/prism/string_query.rbs +11 -0
  136. data/sig/prism/visitor.rbs +169 -0
  137. data/sig/prism.rbs +254 -0
  138. data/src/diagnostic.c +850 -0
  139. data/src/encoding.c +5235 -0
  140. data/src/node.c +8676 -0
  141. data/src/options.c +328 -0
  142. data/src/pack.c +509 -0
  143. data/src/prettyprint.c +8941 -0
  144. data/src/prism.c +23361 -0
  145. data/src/regexp.c +790 -0
  146. data/src/serialize.c +2268 -0
  147. data/src/static_literals.c +617 -0
  148. data/src/token_type.c +703 -0
  149. data/src/util/pm_buffer.c +357 -0
  150. data/src/util/pm_char.c +318 -0
  151. data/src/util/pm_constant_pool.c +342 -0
  152. data/src/util/pm_integer.c +670 -0
  153. data/src/util/pm_list.c +49 -0
  154. data/src/util/pm_memchr.c +35 -0
  155. data/src/util/pm_newline_list.c +125 -0
  156. data/src/util/pm_string.c +381 -0
  157. data/src/util/pm_strncasecmp.c +36 -0
  158. data/src/util/pm_strpbrk.c +206 -0
  159. metadata +202 -0
data/lib/prism.rb ADDED
@@ -0,0 +1,97 @@
1
+ # frozen_string_literal: true
2
+ # :markup: markdown
3
+
4
+ # The Prism Ruby parser.
5
+ #
6
+ # "Parsing Ruby is suddenly manageable!"
7
+ # - You, hopefully
8
+ #
9
+ module Prism
10
+ # There are many files in prism that are templated to handle every node type,
11
+ # which means the files can end up being quite large. We autoload them to make
12
+ # our require speed faster since consuming libraries are unlikely to use all
13
+ # of these features.
14
+
15
+ autoload :BasicVisitor, "prism/visitor"
16
+ autoload :Compiler, "prism/compiler"
17
+ autoload :DesugarCompiler, "prism/desugar_compiler"
18
+ autoload :Dispatcher, "prism/dispatcher"
19
+ autoload :DotVisitor, "prism/dot_visitor"
20
+ autoload :DSL, "prism/dsl"
21
+ autoload :InspectVisitor, "prism/inspect_visitor"
22
+ autoload :LexCompat, "prism/lex_compat"
23
+ autoload :LexRipper, "prism/lex_compat"
24
+ autoload :MutationCompiler, "prism/mutation_compiler"
25
+ autoload :Pack, "prism/pack"
26
+ autoload :Pattern, "prism/pattern"
27
+ autoload :Reflection, "prism/reflection"
28
+ autoload :Relocation, "prism/relocation"
29
+ autoload :Serialize, "prism/serialize"
30
+ autoload :StringQuery, "prism/string_query"
31
+ autoload :Translation, "prism/translation"
32
+ autoload :Visitor, "prism/visitor"
33
+
34
+ # Some of these constants are not meant to be exposed, so marking them as
35
+ # private here.
36
+
37
+ private_constant :LexCompat
38
+ private_constant :LexRipper
39
+
40
+ # :call-seq:
41
+ # Prism::lex_compat(source, **options) -> LexCompat::Result
42
+ #
43
+ # Returns a parse result whose value is an array of tokens that closely
44
+ # resembles the return value of Ripper::lex. The main difference is that the
45
+ # `:on_sp` token is not emitted.
46
+ #
47
+ # For supported options, see Prism::parse.
48
+ def self.lex_compat(source, **options)
49
+ LexCompat.new(source, **options).result # steep:ignore
50
+ end
51
+
52
+ # :call-seq:
53
+ # Prism::lex_ripper(source) -> Array
54
+ #
55
+ # This lexes with the Ripper lex. It drops any space events but otherwise
56
+ # returns the same tokens. Raises SyntaxError if the syntax in source is
57
+ # invalid.
58
+ def self.lex_ripper(source)
59
+ LexRipper.new(source).result # steep:ignore
60
+ end
61
+
62
+ # :call-seq:
63
+ # Prism::load(source, serialized, freeze) -> ParseResult
64
+ #
65
+ # Load the serialized AST using the source as a reference into a tree.
66
+ def self.load(source, serialized, freeze = false)
67
+ Serialize.load_parse(source, serialized, freeze)
68
+ end
69
+ end
70
+
71
+ require_relative "prism/polyfill/byteindex"
72
+ require_relative "prism/polyfill/warn"
73
+ require_relative "prism/node"
74
+ require_relative "prism/node_ext"
75
+ require_relative "prism/parse_result"
76
+
77
+ # This is a Ruby implementation of the prism parser. If we're running on CRuby
78
+ # and we haven't explicitly set the PRISM_FFI_BACKEND environment variable, then
79
+ # it's going to require the built library. Otherwise, it's going to require a
80
+ # module that uses FFI to call into the library.
81
+ if RUBY_ENGINE == "ruby" and !ENV["PRISM_FFI_BACKEND"]
82
+ # The C extension is the default backend on CRuby.
83
+ Prism::BACKEND = :CEXT
84
+
85
+ begin
86
+ ruby_version = /(\d+\.\d+)/.match(::RUBY_VERSION)
87
+ require "prism/#{ruby_version}/prism"
88
+ rescue LoadError
89
+ require "prism/prism"
90
+ end
91
+
92
+ else
93
+ # The FFI backend is used on other Ruby implementations.
94
+ Prism::BACKEND = :FFI
95
+
96
+ require_relative "prism/ffi"
97
+ end
data/prism.gemspec ADDED
@@ -0,0 +1,174 @@
1
+ # frozen_string_literal: true
2
+
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "ed-precompiled_prism"
5
+ spec.version = "1.5.2"
6
+ spec.authors = ["Shopify"]
7
+ spec.email = ["ruby@shopify.com"]
8
+
9
+ spec.summary = "Prism Ruby parser"
10
+ spec.homepage = "https://github.com/ruby/prism"
11
+ spec.license = "MIT"
12
+
13
+ spec.required_ruby_version = ">= 2.7.0"
14
+
15
+ spec.require_paths = ["lib"]
16
+ spec.files = [
17
+ "BSDmakefile",
18
+ "CHANGELOG.md",
19
+ "CODE_OF_CONDUCT.md",
20
+ "CONTRIBUTING.md",
21
+ "LICENSE.md",
22
+ "Makefile",
23
+ "README.md",
24
+ "config.yml",
25
+ "docs/build_system.md",
26
+ "docs/configuration.md",
27
+ "docs/cruby_compilation.md",
28
+ "docs/design.md",
29
+ "docs/encoding.md",
30
+ "docs/fuzzing.md",
31
+ "docs/heredocs.md",
32
+ "docs/javascript.md",
33
+ "docs/local_variable_depth.md",
34
+ "docs/mapping.md",
35
+ "docs/parser_translation.md",
36
+ "docs/parsing_rules.md",
37
+ "docs/releasing.md",
38
+ "docs/relocation.md",
39
+ "docs/ripper_translation.md",
40
+ "docs/ruby_api.md",
41
+ "docs/ruby_parser_translation.md",
42
+ "docs/serialization.md",
43
+ "docs/testing.md",
44
+ "ext/prism/api_node.c",
45
+ "ext/prism/api_pack.c",
46
+ "ext/prism/extension.c",
47
+ "ext/prism/extension.h",
48
+ "include/prism.h",
49
+ "include/prism/ast.h",
50
+ "include/prism/defines.h",
51
+ "include/prism/diagnostic.h",
52
+ "include/prism/encoding.h",
53
+ "include/prism/node.h",
54
+ "include/prism/options.h",
55
+ "include/prism/pack.h",
56
+ "include/prism/parser.h",
57
+ "include/prism/prettyprint.h",
58
+ "include/prism/regexp.h",
59
+ "include/prism/static_literals.h",
60
+ "include/prism/util/pm_buffer.h",
61
+ "include/prism/util/pm_char.h",
62
+ "include/prism/util/pm_constant_pool.h",
63
+ "include/prism/util/pm_integer.h",
64
+ "include/prism/util/pm_list.h",
65
+ "include/prism/util/pm_memchr.h",
66
+ "include/prism/util/pm_newline_list.h",
67
+ "include/prism/util/pm_strncasecmp.h",
68
+ "include/prism/util/pm_string.h",
69
+ "include/prism/util/pm_strpbrk.h",
70
+ "include/prism/version.h",
71
+ "lib/prism.rb",
72
+ "lib/prism/compiler.rb",
73
+ "lib/prism/desugar_compiler.rb",
74
+ "lib/prism/dispatcher.rb",
75
+ "lib/prism/dot_visitor.rb",
76
+ "lib/prism/dsl.rb",
77
+ "lib/prism/ffi.rb",
78
+ "lib/prism/inspect_visitor.rb",
79
+ "lib/prism/lex_compat.rb",
80
+ "lib/prism/mutation_compiler.rb",
81
+ "lib/prism/node_ext.rb",
82
+ "lib/prism/node.rb",
83
+ "lib/prism/pack.rb",
84
+ "lib/prism/parse_result.rb",
85
+ "lib/prism/parse_result/comments.rb",
86
+ "lib/prism/parse_result/errors.rb",
87
+ "lib/prism/parse_result/newlines.rb",
88
+ "lib/prism/pattern.rb",
89
+ "lib/prism/polyfill/append_as_bytes.rb",
90
+ "lib/prism/polyfill/byteindex.rb",
91
+ "lib/prism/polyfill/scan_byte.rb",
92
+ "lib/prism/polyfill/unpack1.rb",
93
+ "lib/prism/polyfill/warn.rb",
94
+ "lib/prism/reflection.rb",
95
+ "lib/prism/relocation.rb",
96
+ "lib/prism/serialize.rb",
97
+ "lib/prism/string_query.rb",
98
+ "lib/prism/translation.rb",
99
+ "lib/prism/translation/parser.rb",
100
+ "lib/prism/translation/parser_current.rb",
101
+ "lib/prism/translation/parser33.rb",
102
+ "lib/prism/translation/parser34.rb",
103
+ "lib/prism/translation/parser35.rb",
104
+ "lib/prism/translation/parser/builder.rb",
105
+ "lib/prism/translation/parser/compiler.rb",
106
+ "lib/prism/translation/parser/lexer.rb",
107
+ "lib/prism/translation/ripper.rb",
108
+ "lib/prism/translation/ripper/sexp.rb",
109
+ "lib/prism/translation/ripper/shim.rb",
110
+ "lib/prism/translation/ruby_parser.rb",
111
+ "lib/prism/visitor.rb",
112
+ "prism.gemspec",
113
+ "rbi/prism.rbi",
114
+ "rbi/prism/compiler.rbi",
115
+ "rbi/prism/dsl.rbi",
116
+ "rbi/prism/inspect_visitor.rbi",
117
+ "rbi/prism/node_ext.rbi",
118
+ "rbi/prism/node.rbi",
119
+ "rbi/prism/parse_result.rbi",
120
+ "rbi/prism/reflection.rbi",
121
+ "rbi/prism/string_query.rbi",
122
+ "rbi/prism/translation/parser.rbi",
123
+ "rbi/prism/translation/parser33.rbi",
124
+ "rbi/prism/translation/parser34.rbi",
125
+ "rbi/prism/translation/parser35.rbi",
126
+ "rbi/prism/translation/ripper.rbi",
127
+ "rbi/prism/visitor.rbi",
128
+ "sig/prism.rbs",
129
+ "sig/prism/compiler.rbs",
130
+ "sig/prism/dispatcher.rbs",
131
+ "sig/prism/dot_visitor.rbs",
132
+ "sig/prism/dsl.rbs",
133
+ "sig/prism/inspect_visitor.rbs",
134
+ "sig/prism/lex_compat.rbs",
135
+ "sig/prism/mutation_compiler.rbs",
136
+ "sig/prism/node_ext.rbs",
137
+ "sig/prism/node.rbs",
138
+ "sig/prism/pack.rbs",
139
+ "sig/prism/parse_result.rbs",
140
+ "sig/prism/parse_result/comments.rbs",
141
+ "sig/prism/pattern.rbs",
142
+ "sig/prism/reflection.rbs",
143
+ "sig/prism/relocation.rbs",
144
+ "sig/prism/serialize.rbs",
145
+ "sig/prism/string_query.rbs",
146
+ "sig/prism/visitor.rbs",
147
+ "src/diagnostic.c",
148
+ "src/encoding.c",
149
+ "src/node.c",
150
+ "src/options.c",
151
+ "src/pack.c",
152
+ "src/prettyprint.c",
153
+ "src/prism.c",
154
+ "src/regexp.c",
155
+ "src/serialize.c",
156
+ "src/static_literals.c",
157
+ "src/token_type.c",
158
+ "src/util/pm_buffer.c",
159
+ "src/util/pm_char.c",
160
+ "src/util/pm_constant_pool.c",
161
+ "src/util/pm_integer.c",
162
+ "src/util/pm_list.c",
163
+ "src/util/pm_memchr.c",
164
+ "src/util/pm_newline_list.c",
165
+ "src/util/pm_string.c",
166
+ "src/util/pm_strncasecmp.c",
167
+ "src/util/pm_strpbrk.c"
168
+ ]
169
+
170
+ spec.extensions = ["ext/prism/extconf.rb"]
171
+ spec.metadata["allowed_push_host"] = "https://rubygems.org"
172
+ spec.metadata["source_code_uri"] = "https://github.com/ruby/prism"
173
+ spec.metadata["changelog_uri"] = "https://github.com/ruby/prism/blob/main/CHANGELOG.md"
174
+ end
@@ -0,0 +1,12 @@
1
+ # typed: strict
2
+
3
+ class Prism::Compiler
4
+ sig { params(node: T.nilable(Prism::Node)).returns(T.untyped) }
5
+ def visit(node); end
6
+
7
+ sig { params(nodes: T::Array[T.nilable(Prism::Node)]).returns(T::Array[T.untyped]) }
8
+ def visit_all(nodes); end
9
+
10
+ sig { params(node: Prism::Node).returns(T::Array[T.untyped]) }
11
+ def visit_child_nodes(node); end
12
+ end