class SyntaxTree::MLHSParen
MLHSParen
represents parentheses being used to destruct values in a multiple assignment on the left hand side.
(left, right) = value
Attributes
- boolean
-
whether or not there is a trailing comma at the end of this
list, which impacts destructuring. It’s an attr_accessor so that while the syntax tree is being built it can be set by its parent node
Public Class Methods
Source
# File lib/syntax_tree/node.rb, line 7731 def initialize(contents:, location:, comma: false) @contents = contents @comma = comma @location = location @comments = [] end
Public Instance Methods
Source
# File lib/syntax_tree/node.rb, line 7784 def ===(other) other.is_a?(MLHSParen) && contents === other.contents end
Source
# File lib/syntax_tree/node.rb, line 7738 def accept(visitor) visitor.visit_mlhs_paren(self) end
Source
# File lib/syntax_tree/node.rb, line 7742 def child_nodes [contents] end
Also aliased as: deconstruct
Source
# File lib/syntax_tree/node.rb, line 7746 def copy(contents: nil, location: nil) node = MLHSParen.new( contents: contents || self.contents, location: location || self.location ) node.comments.concat(comments.map(&:copy)) node end
Source
# File lib/syntax_tree/node.rb, line 7759 def deconstruct_keys(_keys) { contents: contents, location: location, comments: comments } end
Source
# File lib/syntax_tree/node.rb, line 7763 def format(q) parent = q.parent if parent.is_a?(MAssign) || parent.is_a?(MLHSParen) q.format(contents) q.text(",") if comma else q.text("(") q.group do q.indent do q.breakable_empty q.format(contents) end q.text(",") if comma q.breakable_empty end q.text(")") end end