Class: SyntaxTree::LabelEnd

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

Overview

LabelEnd represents the end of a dynamic symbol.

{ "key": value }

In the example above, LabelEnd represents the “":” token at the end of the hash key. This node is important for determining the type of quote being used by the label.

Instance Attribute Summary collapse

Attributes inherited from Node

#location

Instance Method Summary collapse

Methods inherited from Node

#construct_keys, #format, #pretty_print, #to_json

Constructor Details

#initialize(value:, location:) ⇒ LabelEnd

Returns a new instance of LabelEnd.



6992
6993
6994
6995
# File 'lib/syntax_tree/node.rb', line 6992

def initialize(value:, location:)
  @value = value
  @location = location
end

Instance Attribute Details

#valueObject (readonly)

String

the end of the label



6990
6991
6992
# File 'lib/syntax_tree/node.rb', line 6990

def value
  @value
end

Instance Method Details

#===(other) ⇒ Object



7018
7019
7020
# File 'lib/syntax_tree/node.rb', line 7018

def ===(other)
  other.is_a?(LabelEnd) && value === other.value
end

#accept(visitor) ⇒ Object



6997
6998
6999
# File 'lib/syntax_tree/node.rb', line 6997

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

#child_nodesObject Also known as: deconstruct



7001
7002
7003
# File 'lib/syntax_tree/node.rb', line 7001

def child_nodes
  []
end

#copy(value: nil, location: nil) ⇒ Object



7005
7006
7007
7008
7009
7010
# File 'lib/syntax_tree/node.rb', line 7005

def copy(value: nil, location: nil)
  LabelEnd.new(
    value: value || self.value,
    location: location || self.location
  )
end

#deconstruct_keys(_keys) ⇒ Object



7014
7015
7016
# File 'lib/syntax_tree/node.rb', line 7014

def deconstruct_keys(_keys)
  { value: value, location: location }
end