Class: TreeHaver::Backends::Prism::Tree Private
- Inherits:
-
TreeHaver::Base::Tree
- Object
- TreeHaver::Base::Tree
- TreeHaver::Backends::Prism::Tree
- Defined in:
- lib/tree_haver/backends/prism.rb
Overview
This class is part of a private API. You should avoid using this class if possible, as it may be removed or be changed in the future.
Prism tree wrapper
Wraps a Prism::ParseResult to provide tree-sitter-compatible API.
Instance Attribute Summary collapse
-
#parse_result ⇒ ::Prism::ParseResult
readonly
private
The underlying Prism parse result.
Attributes inherited from TreeHaver::Base::Tree
Instance Method Summary collapse
-
#comments ⇒ Array<Comment>
private
Get comments from the parse.
-
#data_loc ⇒ ::Prism::Location?
private
Get data locations (END section).
-
#errors ⇒ Array<::Prism::ParseError>
private
Get parse errors.
-
#has_errors? ⇒ Boolean
private
Check if the parse had errors.
-
#initialize(parse_result, source) ⇒ Tree
constructor
private
A new instance of Tree.
-
#magic_comments ⇒ Array<::Prism::MagicComment>
private
Get magic comments (e.g., frozen_string_literal).
-
#root_node ⇒ Node
private
Get the root node of the parse tree.
-
#warnings ⇒ Array<::Prism::ParseWarning>
private
Get parse warnings.
Methods inherited from TreeHaver::Base::Tree
Constructor Details
#initialize(parse_result, source) ⇒ Tree
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of Tree.
235 236 237 238 |
# File 'lib/tree_haver/backends/prism.rb', line 235 def initialize(parse_result, source) super(parse_result, source: source) @parse_result = parse_result end |
Instance Attribute Details
#parse_result ⇒ ::Prism::ParseResult (readonly)
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns the underlying Prism parse result.
233 234 235 |
# File 'lib/tree_haver/backends/prism.rb', line 233 def parse_result @parse_result end |
Instance Method Details
#comments ⇒ Array<Comment>
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Get comments from the parse
271 272 273 274 275 276 277 278 |
# File 'lib/tree_haver/backends/prism.rb', line 271 def comments @comments ||= begin hint_map = comment_hint_map @parse_result.comments.map do |comment| Comment.new(comment, source: source, attachment_hint: hint_map[comment.object_id]) end end end |
#data_loc ⇒ ::Prism::Location?
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Get data locations (END section)
290 291 292 |
# File 'lib/tree_haver/backends/prism.rb', line 290 def data_loc @parse_result.data_loc end |
#errors ⇒ Array<::Prism::ParseError>
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Get parse errors
257 258 259 |
# File 'lib/tree_haver/backends/prism.rb', line 257 def errors @parse_result.errors end |
#has_errors? ⇒ Boolean
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Check if the parse had errors
250 251 252 |
# File 'lib/tree_haver/backends/prism.rb', line 250 def has_errors? @parse_result.failure? end |
#magic_comments ⇒ Array<::Prism::MagicComment>
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Get magic comments (e.g., frozen_string_literal)
283 284 285 |
# File 'lib/tree_haver/backends/prism.rb', line 283 def magic_comments @parse_result.magic_comments end |
#root_node ⇒ Node
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Get the root node of the parse tree
243 244 245 |
# File 'lib/tree_haver/backends/prism.rb', line 243 def root_node Node.new(@parse_result.value, source) end |
#warnings ⇒ Array<::Prism::ParseWarning>
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Get parse warnings
264 265 266 |
# File 'lib/tree_haver/backends/prism.rb', line 264 def warnings @parse_result.warnings end |