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
#construct_keys, #pretty_print, #to_json
Constructor Details
#initialize(left:, right:, location:, comments: []) ⇒ Dot3
Returns a new instance of Dot3.
3830 3831 3832 3833 3834 3835 |
# File 'lib/syntax_tree/node.rb', line 3830 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
3828 3829 3830 |
# File 'lib/syntax_tree/node.rb', line 3828 def comments @comments end |
#left ⇒ Object (readonly)
[nil | untyped] the left side of the expression
3822 3823 3824 |
# File 'lib/syntax_tree/node.rb', line 3822 def left @left end |
#right ⇒ Object (readonly)
[nil | untyped] the right side of the expression
3825 3826 3827 |
# File 'lib/syntax_tree/node.rb', line 3825 def right @right end |
Instance Method Details
#accept(visitor) ⇒ Object
3837 3838 3839 |
# File 'lib/syntax_tree/node.rb', line 3837 def accept(visitor) visitor.visit_dot3(self) end |
#child_nodes ⇒ Object Also known as: deconstruct
3841 3842 3843 |
# File 'lib/syntax_tree/node.rb', line 3841 def child_nodes [left, right] end |
#deconstruct_keys(_keys) ⇒ Object
3847 3848 3849 |
# File 'lib/syntax_tree/node.rb', line 3847 def deconstruct_keys(_keys) { left: left, right: right, location: location, comments: comments } end |
#format(q) ⇒ Object
3851 3852 3853 |
# File 'lib/syntax_tree/node.rb', line 3851 def format(q) DotFormatter.new("...", self).format(q) end |