Class: SyntaxTree::Dot3

Inherits:
Node
  • Object
show all
Defined in:
lib/syntax_tree/node.rb

Overview

Dot3 represents using the … operator between two expressions. Usually this is to create a range object. It’s effectively the same event as the Dot2 node but with this operator you’re asking Ruby to omit the final value.

1...2

Like Dot2 it can also be used to create a flip-flop.

if value == 5 ... value == 10
end

One of the sides of the expression may be nil, but not both.

Instance Attribute Summary collapse

Attributes inherited from Node

#location

Instance Method Summary collapse

Methods inherited from Node

#pretty_print, #to_json

Constructor Details

#initialize(left:, right:, location:, comments: []) ⇒ Dot3

Returns a new instance of Dot3.



3763
3764
3765
3766
3767
3768
# File 'lib/syntax_tree/node.rb', line 3763

def initialize(left:, right:, location:, comments: [])
  @left = left
  @right = right
  @location = location
  @comments = comments
end

Instance Attribute Details

#commentsObject (readonly)

Array[ Comment | EmbDoc ]

the comments attached to this node



3761
3762
3763
# File 'lib/syntax_tree/node.rb', line 3761

def comments
  @comments
end

#leftObject (readonly)

nil | untyped

the left side of the expression



3755
3756
3757
# File 'lib/syntax_tree/node.rb', line 3755

def left
  @left
end

#rightObject (readonly)

nil | untyped

the right side of the expression



3758
3759
3760
# File 'lib/syntax_tree/node.rb', line 3758

def right
  @right
end

Instance Method Details

#accept(visitor) ⇒ Object



3770
3771
3772
# File 'lib/syntax_tree/node.rb', line 3770

def accept(visitor)
  visitor.visit_dot3(self)
end

#child_nodesObject Also known as: deconstruct



3774
3775
3776
# File 'lib/syntax_tree/node.rb', line 3774

def child_nodes
  [left, right]
end

#deconstruct_keys(keys) ⇒ Object



3780
3781
3782
# File 'lib/syntax_tree/node.rb', line 3780

def deconstruct_keys(keys)
  { left: left, right: right, location: location, comments: comments }
end

#format(q) ⇒ Object



3784
3785
3786
# File 'lib/syntax_tree/node.rb', line 3784

def format(q)
  DotFormatter.new("...", self).format(q)
end