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

#construct_keys, #pretty_print, #to_json

Constructor Details

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

Returns a new instance of Dot3.



3796
3797
3798
3799
3800
3801
# File 'lib/syntax_tree/node.rb', line 3796

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



3794
3795
3796
# File 'lib/syntax_tree/node.rb', line 3794

def comments
  @comments
end

#leftObject (readonly)

nil | untyped

the left side of the expression



3788
3789
3790
# File 'lib/syntax_tree/node.rb', line 3788

def left
  @left
end

#rightObject (readonly)

nil | untyped

the right side of the expression



3791
3792
3793
# File 'lib/syntax_tree/node.rb', line 3791

def right
  @right
end

Instance Method Details

#accept(visitor) ⇒ Object



3803
3804
3805
# File 'lib/syntax_tree/node.rb', line 3803

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

#child_nodesObject Also known as: deconstruct



3807
3808
3809
# File 'lib/syntax_tree/node.rb', line 3807

def child_nodes
  [left, right]
end

#deconstruct_keys(_keys) ⇒ Object



3813
3814
3815
# File 'lib/syntax_tree/node.rb', line 3813

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

#format(q) ⇒ Object



3817
3818
3819
# File 'lib/syntax_tree/node.rb', line 3817

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