prism 0.29.0 → 1.3.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +115 -1
- data/CONTRIBUTING.md +0 -4
- data/Makefile +1 -1
- data/README.md +4 -0
- data/config.yml +920 -148
- data/docs/build_system.md +8 -11
- data/docs/fuzzing.md +1 -1
- data/docs/parsing_rules.md +4 -1
- data/docs/relocation.md +34 -0
- data/docs/ripper_translation.md +22 -0
- data/docs/serialization.md +3 -0
- data/ext/prism/api_node.c +2863 -2079
- data/ext/prism/extconf.rb +14 -37
- data/ext/prism/extension.c +241 -391
- data/ext/prism/extension.h +2 -2
- data/include/prism/ast.h +2156 -453
- data/include/prism/defines.h +58 -7
- data/include/prism/diagnostic.h +24 -6
- data/include/prism/node.h +0 -21
- data/include/prism/options.h +94 -3
- data/include/prism/parser.h +82 -40
- data/include/prism/regexp.h +18 -8
- data/include/prism/static_literals.h +3 -2
- data/include/prism/util/pm_char.h +1 -2
- data/include/prism/util/pm_constant_pool.h +0 -8
- data/include/prism/util/pm_integer.h +22 -15
- data/include/prism/util/pm_newline_list.h +11 -0
- data/include/prism/util/pm_string.h +28 -12
- data/include/prism/version.h +3 -3
- data/include/prism.h +47 -11
- data/lib/prism/compiler.rb +3 -0
- data/lib/prism/desugar_compiler.rb +111 -74
- data/lib/prism/dispatcher.rb +16 -1
- data/lib/prism/dot_visitor.rb +55 -34
- data/lib/prism/dsl.rb +660 -468
- data/lib/prism/ffi.rb +113 -8
- data/lib/prism/inspect_visitor.rb +296 -64
- data/lib/prism/lex_compat.rb +1 -1
- data/lib/prism/mutation_compiler.rb +11 -6
- data/lib/prism/node.rb +4262 -5023
- data/lib/prism/node_ext.rb +91 -14
- data/lib/prism/parse_result/comments.rb +0 -7
- data/lib/prism/parse_result/errors.rb +65 -0
- data/lib/prism/parse_result/newlines.rb +101 -11
- data/lib/prism/parse_result.rb +183 -6
- data/lib/prism/reflection.rb +12 -10
- data/lib/prism/relocation.rb +504 -0
- data/lib/prism/serialize.rb +496 -609
- data/lib/prism/string_query.rb +30 -0
- data/lib/prism/translation/parser/compiler.rb +185 -155
- data/lib/prism/translation/parser/lexer.rb +26 -4
- data/lib/prism/translation/parser.rb +9 -4
- data/lib/prism/translation/ripper.rb +23 -25
- data/lib/prism/translation/ruby_parser.rb +86 -17
- data/lib/prism/visitor.rb +3 -0
- data/lib/prism.rb +6 -8
- data/prism.gemspec +9 -5
- data/rbi/prism/dsl.rbi +521 -0
- data/rbi/prism/node.rbi +1115 -1120
- data/rbi/prism/parse_result.rbi +29 -0
- data/rbi/prism/string_query.rbi +12 -0
- data/rbi/prism/visitor.rbi +3 -0
- data/rbi/prism.rbi +36 -30
- data/sig/prism/dsl.rbs +190 -303
- data/sig/prism/mutation_compiler.rbs +1 -0
- data/sig/prism/node.rbs +678 -632
- data/sig/prism/parse_result.rbs +22 -0
- data/sig/prism/relocation.rbs +185 -0
- data/sig/prism/string_query.rbs +11 -0
- data/sig/prism/visitor.rbs +1 -0
- data/sig/prism.rbs +103 -64
- data/src/diagnostic.c +64 -28
- data/src/node.c +502 -1739
- data/src/options.c +76 -27
- data/src/prettyprint.c +188 -112
- data/src/prism.c +3376 -2293
- data/src/regexp.c +208 -71
- data/src/serialize.c +182 -50
- data/src/static_literals.c +64 -85
- data/src/token_type.c +4 -4
- data/src/util/pm_char.c +1 -1
- data/src/util/pm_constant_pool.c +0 -8
- data/src/util/pm_integer.c +53 -25
- data/src/util/pm_newline_list.c +29 -0
- data/src/util/pm_string.c +131 -80
- data/src/util/pm_strpbrk.c +32 -6
- metadata +11 -7
- data/include/prism/util/pm_string_list.h +0 -44
- data/lib/prism/debug.rb +0 -249
- data/lib/prism/translation/parser/rubocop.rb +0 -73
- data/src/util/pm_string_list.c +0 -28
data/sig/prism/parse_result.rbs
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
module Prism
|
2
|
+
interface _CodeUnitsCache
|
3
|
+
def []: (Integer byte_offset) -> Integer
|
4
|
+
end
|
5
|
+
|
2
6
|
class Source
|
3
7
|
attr_reader source: String
|
4
8
|
attr_reader start_line: Integer
|
@@ -16,13 +20,22 @@ module Prism
|
|
16
20
|
def character_offset: (Integer byte_offset) -> Integer
|
17
21
|
def character_column: (Integer byte_offset) -> Integer
|
18
22
|
def code_units_offset: (Integer byte_offset, Encoding encoding) -> Integer
|
23
|
+
def code_units_cache: (Encoding encoding) -> _CodeUnitsCache
|
19
24
|
def code_units_column: (Integer byte_offset, Encoding encoding) -> Integer
|
25
|
+
|
26
|
+
def self.for: (String source) -> Source
|
27
|
+
end
|
28
|
+
|
29
|
+
class CodeUnitsCache
|
30
|
+
def initialize: (String source, Encoding encoding) -> void
|
31
|
+
def []: (Integer byte_offset) -> Integer
|
20
32
|
end
|
21
33
|
|
22
34
|
class ASCIISource < Source
|
23
35
|
def character_offset: (Integer byte_offset) -> Integer
|
24
36
|
def character_column: (Integer byte_offset) -> Integer
|
25
37
|
def code_units_offset: (Integer byte_offset, Encoding encoding) -> Integer
|
38
|
+
def code_units_cache: (Encoding encoding) -> _CodeUnitsCache
|
26
39
|
def code_units_column: (Integer byte_offset, Encoding encoding) -> Integer
|
27
40
|
end
|
28
41
|
|
@@ -43,15 +56,23 @@ module Prism
|
|
43
56
|
def slice: () -> String
|
44
57
|
def slice_lines: () -> String
|
45
58
|
def start_character_offset: () -> Integer
|
59
|
+
def start_code_units_offset: (Encoding encoding) -> Integer
|
60
|
+
def cached_start_code_units_offset: (_CodeUnitsCache cache) -> Integer
|
46
61
|
def end_offset: () -> Integer
|
47
62
|
def end_character_offset: () -> Integer
|
63
|
+
def end_code_units_offset: (Encoding encoding) -> Integer
|
64
|
+
def cached_end_code_units_offset: (_CodeUnitsCache cache) -> Integer
|
48
65
|
def start_line: () -> Integer
|
49
66
|
def start_line_slice: () -> String
|
50
67
|
def end_line: () -> Integer
|
51
68
|
def start_column: () -> Integer
|
52
69
|
def start_character_column: () -> Integer
|
70
|
+
def start_code_units_column: (Encoding encoding) -> Integer
|
71
|
+
def cached_start_code_units_column: (_CodeUnitsCache cache) -> Integer
|
53
72
|
def end_column: () -> Integer
|
54
73
|
def end_character_column: () -> Integer
|
74
|
+
def end_code_units_column: (Encoding encoding) -> Integer
|
75
|
+
def cached_end_code_units_column: (_CodeUnitsCache cache) -> Integer
|
55
76
|
def deconstruct_keys: (Array[Symbol]? keys) -> Hash[Symbol, untyped]
|
56
77
|
def pretty_print: (untyped q) -> untyped
|
57
78
|
def join: (Location other) -> Location
|
@@ -123,6 +144,7 @@ module Prism
|
|
123
144
|
def deconstruct_keys: (Array[Symbol]? keys) -> Hash[Symbol, untyped]
|
124
145
|
def success?: () -> bool
|
125
146
|
def failure?: () -> bool
|
147
|
+
def code_units_cache: (Encoding encoding) -> _CodeUnitsCache
|
126
148
|
end
|
127
149
|
|
128
150
|
class ParseResult < Result
|
@@ -0,0 +1,185 @@
|
|
1
|
+
module Prism
|
2
|
+
module Relocation
|
3
|
+
interface _Value
|
4
|
+
def start_line: () -> Integer
|
5
|
+
def end_line: () -> Integer
|
6
|
+
def start_offset: () -> Integer
|
7
|
+
def end_offset: () -> Integer
|
8
|
+
def start_character_offset: () -> Integer
|
9
|
+
def end_character_offset: () -> Integer
|
10
|
+
def cached_start_code_units_offset: (_CodeUnitsCache cache) -> Integer
|
11
|
+
def cached_end_code_units_offset: (_CodeUnitsCache cache) -> Integer
|
12
|
+
def start_column: () -> Integer
|
13
|
+
def end_column: () -> Integer
|
14
|
+
def start_character_column: () -> Integer
|
15
|
+
def end_character_column: () -> Integer
|
16
|
+
def cached_start_code_units_column: (_CodeUnitsCache cache) -> Integer
|
17
|
+
def cached_end_code_units_column: (_CodeUnitsCache cache) -> Integer
|
18
|
+
def leading_comments: () -> Array[Comment]
|
19
|
+
def trailing_comments: () -> Array[Comment]
|
20
|
+
end
|
21
|
+
|
22
|
+
interface _Field
|
23
|
+
def fields: (_Value value) -> entry_values
|
24
|
+
end
|
25
|
+
|
26
|
+
type entry_value = untyped
|
27
|
+
type entry_values = Hash[Symbol, entry_value]
|
28
|
+
|
29
|
+
class Entry
|
30
|
+
class MissingValueError < StandardError
|
31
|
+
end
|
32
|
+
|
33
|
+
def initialize: (Repository repository) -> void
|
34
|
+
|
35
|
+
def filepath: () -> String
|
36
|
+
|
37
|
+
def start_line: () -> Integer
|
38
|
+
def end_line: () -> Integer
|
39
|
+
|
40
|
+
def start_offset: () -> Integer
|
41
|
+
def end_offset: () -> Integer
|
42
|
+
def start_character_offset: () -> Integer
|
43
|
+
def end_character_offset: () -> Integer
|
44
|
+
def start_code_units_offset: () -> Integer
|
45
|
+
def end_code_units_offset: () -> Integer
|
46
|
+
|
47
|
+
def start_column: () -> Integer
|
48
|
+
def end_column: () -> Integer
|
49
|
+
def start_character_column: () -> Integer
|
50
|
+
def end_character_column: () -> Integer
|
51
|
+
def start_code_units_column: () -> Integer
|
52
|
+
def end_code_units_column: () -> Integer
|
53
|
+
|
54
|
+
def leading_comments: () -> Array[CommentsField::Comment]
|
55
|
+
def trailing_comments: () -> Array[CommentsField::Comment]
|
56
|
+
def comments: () -> Array[CommentsField::Comment]
|
57
|
+
|
58
|
+
private
|
59
|
+
|
60
|
+
def fetch_value: (Symbol name) -> entry_value
|
61
|
+
def values: () -> entry_values
|
62
|
+
end
|
63
|
+
|
64
|
+
class Source
|
65
|
+
attr_reader value: untyped
|
66
|
+
|
67
|
+
def initialize: (untyped value) -> void
|
68
|
+
|
69
|
+
def result: () -> ParseResult
|
70
|
+
def code_units_cache: (Encoding encoding) -> _CodeUnitsCache
|
71
|
+
end
|
72
|
+
|
73
|
+
class SourceFilepath < Source
|
74
|
+
def result: () -> ParseResult
|
75
|
+
end
|
76
|
+
|
77
|
+
class SourceString < Source
|
78
|
+
def result: () -> ParseResult
|
79
|
+
end
|
80
|
+
|
81
|
+
class FilepathField
|
82
|
+
attr_reader value: String
|
83
|
+
|
84
|
+
def initialize: (String value) -> void
|
85
|
+
|
86
|
+
def fields: (_Value value) -> entry_values
|
87
|
+
end
|
88
|
+
|
89
|
+
class LinesField
|
90
|
+
def fields: (_Value value) -> entry_values
|
91
|
+
end
|
92
|
+
|
93
|
+
class OffsetsField
|
94
|
+
def fields: (_Value value) -> entry_values
|
95
|
+
end
|
96
|
+
|
97
|
+
class CharacterOffsetsField
|
98
|
+
def fields: (_Value value) -> entry_values
|
99
|
+
end
|
100
|
+
|
101
|
+
class CodeUnitOffsetsField
|
102
|
+
attr_reader repository: Repository
|
103
|
+
attr_reader encoding: Encoding
|
104
|
+
|
105
|
+
def initialize: (Repository repository, Encoding encoding) -> void
|
106
|
+
def fields: (_Value value) -> entry_values
|
107
|
+
|
108
|
+
private
|
109
|
+
|
110
|
+
def cache: () -> _CodeUnitsCache
|
111
|
+
end
|
112
|
+
|
113
|
+
class ColumnsField
|
114
|
+
def fields: (_Value value) -> entry_values
|
115
|
+
end
|
116
|
+
|
117
|
+
class CharacterColumnsField
|
118
|
+
def fields: (_Value value) -> entry_values
|
119
|
+
end
|
120
|
+
|
121
|
+
class CodeUnitColumnsField
|
122
|
+
attr_reader repository: Repository
|
123
|
+
attr_reader encoding: Encoding
|
124
|
+
|
125
|
+
def initialize: (Repository repository, Encoding encoding) -> void
|
126
|
+
def fields: (_Value value) -> entry_values
|
127
|
+
|
128
|
+
private
|
129
|
+
|
130
|
+
def cache: () -> _CodeUnitsCache
|
131
|
+
end
|
132
|
+
|
133
|
+
class CommentsField
|
134
|
+
class Comment
|
135
|
+
attr_reader slice: String
|
136
|
+
|
137
|
+
def initialize: (String slice) -> void
|
138
|
+
end
|
139
|
+
|
140
|
+
private
|
141
|
+
|
142
|
+
def comments: (entry_value value) -> Array[Comment]
|
143
|
+
end
|
144
|
+
|
145
|
+
class LeadingCommentsField < CommentsField
|
146
|
+
def fields: (_Value value) -> entry_values
|
147
|
+
end
|
148
|
+
|
149
|
+
class TrailingCommentsField < CommentsField
|
150
|
+
def fields: (_Value value) -> entry_values
|
151
|
+
end
|
152
|
+
|
153
|
+
class Repository
|
154
|
+
class ConfigurationError < StandardError
|
155
|
+
end
|
156
|
+
|
157
|
+
attr_reader source: Source
|
158
|
+
attr_reader fields: Hash[Symbol, _Field]
|
159
|
+
attr_reader entries: Hash[Integer, Hash[Symbol, Entry]]
|
160
|
+
|
161
|
+
def initialize: (Source source) -> void
|
162
|
+
|
163
|
+
def code_units_cache: (Encoding encoding) -> _CodeUnitsCache
|
164
|
+
|
165
|
+
def filepath: () -> self
|
166
|
+
def lines: () -> self
|
167
|
+
def offsets: () -> self
|
168
|
+
def character_offsets: () -> self
|
169
|
+
def code_unit_offsets: (Encoding encoding) -> self
|
170
|
+
def columns: () -> self
|
171
|
+
def character_columns: () -> self
|
172
|
+
def code_unit_columns: (Encoding encoding) -> self
|
173
|
+
def leading_comments: () -> self
|
174
|
+
def trailing_comments: () -> self
|
175
|
+
def comments: () -> self
|
176
|
+
|
177
|
+
private
|
178
|
+
|
179
|
+
def field: (Symbol name, _Field) -> self
|
180
|
+
end
|
181
|
+
|
182
|
+
def self.filepath: (String value) -> Repository
|
183
|
+
def self.string: (String value) -> Repository
|
184
|
+
end
|
185
|
+
end
|
data/sig/prism/visitor.rbs
CHANGED
@@ -97,6 +97,7 @@ module Prism
|
|
97
97
|
def visit_interpolated_string_node: (InterpolatedStringNode) -> void
|
98
98
|
def visit_interpolated_symbol_node: (InterpolatedSymbolNode) -> void
|
99
99
|
def visit_interpolated_x_string_node: (InterpolatedXStringNode) -> void
|
100
|
+
def visit_it_local_variable_read_node: (ItLocalVariableReadNode) -> void
|
100
101
|
def visit_it_parameters_node: (ItParametersNode) -> void
|
101
102
|
def visit_keyword_hash_node: (KeywordHashNode) -> void
|
102
103
|
def visit_keyword_rest_parameter_node: (KeywordRestParameterNode) -> void
|
data/sig/prism.rbs
CHANGED
@@ -10,90 +10,110 @@ module Prism
|
|
10
10
|
|
11
11
|
def self.parse: (
|
12
12
|
String source,
|
13
|
+
?encoding: Encoding | false,
|
13
14
|
?filepath: String,
|
15
|
+
?frozen_string_literal: bool,
|
14
16
|
?line: Integer,
|
17
|
+
?main_script: bool,
|
15
18
|
?offset: Integer,
|
16
|
-
?
|
17
|
-
?
|
18
|
-
?verbose: bool,
|
19
|
-
?scopes: Array[Array[Symbol]]
|
19
|
+
?scopes: Array[Array[Symbol]],
|
20
|
+
?verbose: bool
|
20
21
|
) -> ParseResult
|
21
22
|
|
22
|
-
def self.
|
23
|
+
def self.profile: (
|
23
24
|
String source,
|
25
|
+
?encoding: Encoding | false,
|
24
26
|
?filepath: String,
|
27
|
+
?frozen_string_literal: bool,
|
25
28
|
?line: Integer,
|
29
|
+
?main_script: bool,
|
26
30
|
?offset: Integer,
|
27
|
-
?
|
31
|
+
?scopes: Array[Array[Symbol]],
|
32
|
+
?verbose: bool
|
33
|
+
) -> nil
|
34
|
+
|
35
|
+
def self.lex: (
|
36
|
+
String source,
|
37
|
+
?encoding: Encoding | false,
|
38
|
+
?filepath: String,
|
28
39
|
?frozen_string_literal: bool,
|
29
|
-
?
|
30
|
-
?
|
40
|
+
?line: Integer,
|
41
|
+
?main_script: bool,
|
42
|
+
?offset: Integer,
|
43
|
+
?scopes: Array[Array[Symbol]],
|
44
|
+
?verbose: bool
|
31
45
|
) -> LexResult
|
32
46
|
|
33
47
|
def self.lex_compat: (
|
34
48
|
String source,
|
49
|
+
?encoding: Encoding | false,
|
35
50
|
?filepath: String,
|
51
|
+
?frozen_string_literal: bool,
|
36
52
|
?line: Integer,
|
53
|
+
?main_script: bool,
|
37
54
|
?offset: Integer,
|
38
|
-
?
|
39
|
-
?
|
40
|
-
?verbose: bool,
|
41
|
-
?scopes: Array[Array[Symbol]]
|
55
|
+
?scopes: Array[Array[Symbol]],
|
56
|
+
?verbose: bool
|
42
57
|
) -> LexCompat::Result
|
43
58
|
|
44
59
|
def self.parse_lex: (
|
45
60
|
String source,
|
61
|
+
?encoding: Encoding | false,
|
46
62
|
?filepath: String,
|
63
|
+
?frozen_string_literal: bool,
|
47
64
|
?line: Integer,
|
65
|
+
?main_script: bool,
|
48
66
|
?offset: Integer,
|
49
|
-
?
|
50
|
-
?
|
51
|
-
?verbose: bool,
|
52
|
-
?scopes: Array[Array[Symbol]]
|
67
|
+
?scopes: Array[Array[Symbol]],
|
68
|
+
?verbose: bool
|
53
69
|
) -> ParseLexResult
|
54
70
|
|
55
71
|
def self.dump: (
|
56
72
|
String source,
|
73
|
+
?encoding: Encoding | false,
|
57
74
|
?filepath: String,
|
75
|
+
?frozen_string_literal: bool,
|
58
76
|
?line: Integer,
|
77
|
+
?main_script: bool,
|
59
78
|
?offset: Integer,
|
60
|
-
?
|
61
|
-
?
|
62
|
-
?verbose: bool,
|
63
|
-
?scopes: Array[Array[Symbol]]
|
79
|
+
?scopes: Array[Array[Symbol]],
|
80
|
+
?verbose: bool
|
64
81
|
) -> String
|
65
82
|
|
66
83
|
def self.parse_comments: (
|
67
84
|
String source,
|
85
|
+
?encoding: Encoding | false,
|
68
86
|
?filepath: String,
|
87
|
+
?frozen_string_literal: bool,
|
69
88
|
?line: Integer,
|
89
|
+
?main_script: bool,
|
70
90
|
?offset: Integer,
|
71
|
-
?
|
72
|
-
?
|
73
|
-
?verbose: bool,
|
74
|
-
?scopes: Array[Array[Symbol]]
|
91
|
+
?scopes: Array[Array[Symbol]],
|
92
|
+
?verbose: bool
|
75
93
|
) -> Array[comment]
|
76
94
|
|
77
95
|
def self.parse_success?: (
|
78
96
|
String source,
|
97
|
+
?encoding: Encoding | false,
|
79
98
|
?filepath: String,
|
99
|
+
?frozen_string_literal: bool,
|
80
100
|
?line: Integer,
|
101
|
+
?main_script: bool,
|
81
102
|
?offset: Integer,
|
82
|
-
?
|
83
|
-
?
|
84
|
-
?verbose: bool,
|
85
|
-
?scopes: Array[Array[Symbol]]
|
103
|
+
?scopes: Array[Array[Symbol]],
|
104
|
+
?verbose: bool
|
86
105
|
) -> bool
|
87
106
|
|
88
107
|
def self.parse_failure?: (
|
89
108
|
String source,
|
109
|
+
?encoding: Encoding | false,
|
90
110
|
?filepath: String,
|
111
|
+
?frozen_string_literal: bool,
|
91
112
|
?line: Integer,
|
113
|
+
?main_script: bool,
|
92
114
|
?offset: Integer,
|
93
|
-
?
|
94
|
-
?
|
95
|
-
?verbose: bool,
|
96
|
-
?scopes: Array[Array[Symbol]]
|
115
|
+
?scopes: Array[Array[Symbol]],
|
116
|
+
?verbose: bool
|
97
117
|
) -> bool
|
98
118
|
|
99
119
|
def self.load: (
|
@@ -109,72 +129,90 @@ module Prism
|
|
109
129
|
|
110
130
|
def self.parse_file: (
|
111
131
|
String filepath,
|
132
|
+
?encoding: Encoding | false,
|
133
|
+
?frozen_string_literal: bool,
|
112
134
|
?line: Integer,
|
135
|
+
?main_script: bool,
|
113
136
|
?offset: Integer,
|
114
|
-
?
|
115
|
-
?
|
116
|
-
?verbose: bool,
|
117
|
-
?scopes: Array[Array[Symbol]]
|
137
|
+
?scopes: Array[Array[Symbol]],
|
138
|
+
?verbose: bool
|
118
139
|
) -> ParseResult
|
119
140
|
|
120
|
-
def self.
|
141
|
+
def self.profile_file: (
|
121
142
|
String filepath,
|
143
|
+
?encoding: Encoding | false,
|
144
|
+
?frozen_string_literal: bool,
|
122
145
|
?line: Integer,
|
146
|
+
?main_script: bool,
|
123
147
|
?offset: Integer,
|
124
|
-
?
|
148
|
+
?scopes: Array[Array[Symbol]],
|
149
|
+
?verbose: bool
|
150
|
+
) -> nil
|
151
|
+
|
152
|
+
def self.lex_file: (
|
153
|
+
String filepath,
|
154
|
+
?encoding: Encoding | false,
|
125
155
|
?frozen_string_literal: bool,
|
126
|
-
?
|
127
|
-
?
|
156
|
+
?line: Integer,
|
157
|
+
?main_script: bool,
|
158
|
+
?offset: Integer,
|
159
|
+
?scopes: Array[Array[Symbol]],
|
160
|
+
?verbose: bool
|
128
161
|
) -> LexResult
|
129
162
|
|
130
163
|
def self.parse_lex_file: (
|
131
164
|
String filepath,
|
165
|
+
?encoding: Encoding | false,
|
166
|
+
?frozen_string_literal: bool,
|
132
167
|
?line: Integer,
|
168
|
+
?main_script: bool,
|
133
169
|
?offset: Integer,
|
134
|
-
?
|
135
|
-
?
|
136
|
-
?verbose: bool,
|
137
|
-
?scopes: Array[Array[Symbol]]
|
170
|
+
?scopes: Array[Array[Symbol]],
|
171
|
+
?verbose: bool
|
138
172
|
) -> ParseLexResult
|
139
173
|
|
140
174
|
def self.dump_file: (
|
141
175
|
String filepath,
|
176
|
+
?encoding: Encoding | false,
|
177
|
+
?frozen_string_literal: bool,
|
142
178
|
?line: Integer,
|
179
|
+
?main_script: bool,
|
143
180
|
?offset: Integer,
|
144
|
-
?
|
145
|
-
?
|
146
|
-
?verbose: bool,
|
147
|
-
?scopes: Array[Array[Symbol]]
|
181
|
+
?scopes: Array[Array[Symbol]],
|
182
|
+
?verbose: bool
|
148
183
|
) -> String
|
149
184
|
|
150
185
|
def self.parse_file_comments: (
|
151
186
|
String filepath,
|
187
|
+
?encoding: Encoding | false,
|
188
|
+
?frozen_string_literal: bool,
|
152
189
|
?line: Integer,
|
190
|
+
?main_script: bool,
|
153
191
|
?offset: Integer,
|
154
|
-
?
|
155
|
-
?
|
156
|
-
?verbose: bool,
|
157
|
-
?scopes: Array[Array[Symbol]]
|
192
|
+
?scopes: Array[Array[Symbol]],
|
193
|
+
?verbose: bool
|
158
194
|
) -> Array[comment]
|
159
195
|
|
160
196
|
def self.parse_file_success?: (
|
161
197
|
String filepath,
|
198
|
+
?encoding: Encoding | false,
|
199
|
+
?frozen_string_literal: bool,
|
162
200
|
?line: Integer,
|
201
|
+
?main_script: bool,
|
163
202
|
?offset: Integer,
|
164
|
-
?
|
165
|
-
?
|
166
|
-
?verbose: bool,
|
167
|
-
?scopes: Array[Array[Symbol]]
|
203
|
+
?scopes: Array[Array[Symbol]],
|
204
|
+
?verbose: bool
|
168
205
|
) -> bool
|
169
206
|
|
170
207
|
def self.parse_file_failure?: (
|
171
208
|
String filepath,
|
209
|
+
?encoding: Encoding | false,
|
210
|
+
?frozen_string_literal: bool,
|
172
211
|
?line: Integer,
|
212
|
+
?main_script: bool,
|
173
213
|
?offset: Integer,
|
174
|
-
?
|
175
|
-
?
|
176
|
-
?verbose: bool,
|
177
|
-
?scopes: Array[Array[Symbol]]
|
214
|
+
?scopes: Array[Array[Symbol]],
|
215
|
+
?verbose: bool
|
178
216
|
) -> bool
|
179
217
|
|
180
218
|
interface _Stream
|
@@ -183,12 +221,13 @@ module Prism
|
|
183
221
|
|
184
222
|
def self.parse_stream: (
|
185
223
|
_Stream stream,
|
224
|
+
?encoding: Encoding | false,
|
186
225
|
?filepath: String,
|
226
|
+
?frozen_string_literal: bool,
|
187
227
|
?line: Integer,
|
228
|
+
?main_script: bool,
|
188
229
|
?offset: Integer,
|
189
|
-
?
|
190
|
-
?
|
191
|
-
?verbose: bool,
|
192
|
-
?scopes: Array[Array[Symbol]]
|
230
|
+
?scopes: Array[Array[Symbol]],
|
231
|
+
?verbose: bool
|
193
232
|
) -> ParseResult
|
194
233
|
end
|