Class: SyntaxTree::Dot3
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
-
#comments ⇒ Object
readonly
- Array[ Comment | EmbDoc ]
-
the comments attached to this node.
-
#left ⇒ Object
readonly
- nil | untyped
-
the left side of the expression.
-
#right ⇒ Object
readonly
- nil | untyped
-
the right side of the expression.
Attributes inherited from Node
Instance Method Summary collapse
- #accept(visitor) ⇒ Object
- #child_nodes ⇒ Object (also: #deconstruct)
- #deconstruct_keys(keys) ⇒ Object
- #format(q) ⇒ Object
-
#initialize(left:, right:, location:, comments: []) ⇒ Dot3
constructor
A new instance of Dot3.
Methods inherited from Node
Constructor Details
#initialize(left:, right:, location:, comments: []) ⇒ Dot3
Returns a new instance of Dot3.
3409 3410 3411 3412 3413 3414 |
# File 'lib/syntax_tree/node.rb', line 3409 def initialize(left:, right:, location:, comments: []) @left = left @right = right @location = location @comments = comments end |
Instance Attribute Details
#comments ⇒ Object (readonly)
- Array[ Comment | EmbDoc ]
-
the comments attached to this node
3407 3408 3409 |
# File 'lib/syntax_tree/node.rb', line 3407 def comments @comments end |
#left ⇒ Object (readonly)
- nil | untyped
-
the left side of the expression
3401 3402 3403 |
# File 'lib/syntax_tree/node.rb', line 3401 def left @left end |
#right ⇒ Object (readonly)
- nil | untyped
-
the right side of the expression
3404 3405 3406 |
# File 'lib/syntax_tree/node.rb', line 3404 def right @right end |
Instance Method Details
#accept(visitor) ⇒ Object
3416 3417 3418 |
# File 'lib/syntax_tree/node.rb', line 3416 def accept(visitor) visitor.visit_dot3(self) end |
#child_nodes ⇒ Object Also known as: deconstruct
3420 3421 3422 |
# File 'lib/syntax_tree/node.rb', line 3420 def child_nodes [left, right] end |
#deconstruct_keys(keys) ⇒ Object
3426 3427 3428 |
# File 'lib/syntax_tree/node.rb', line 3426 def deconstruct_keys(keys) { left: left, right: right, location: location, comments: comments } end |
#format(q) ⇒ Object
3430 3431 3432 |
# File 'lib/syntax_tree/node.rb', line 3430 def format(q) DotFormatter.new("...", self).format(q) end |