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, #end_char, #format, #pretty_print, #start_char, #to_json, #to_mermaid

Constructor Details

#initialize(value:, location:) ⇒ LabelEnd

Returns a new instance of LabelEnd.



7052
7053
7054
7055
# File 'lib/syntax_tree/node.rb', line 7052

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

Instance Attribute Details

#valueObject (readonly)

String

the end of the label



7050
7051
7052
# File 'lib/syntax_tree/node.rb', line 7050

def value
  @value
end

Instance Method Details

#===(other) ⇒ Object



7078
7079
7080
# File 'lib/syntax_tree/node.rb', line 7078

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

#accept(visitor) ⇒ Object



7057
7058
7059
# File 'lib/syntax_tree/node.rb', line 7057

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

#child_nodesObject Also known as: deconstruct



7061
7062
7063
# File 'lib/syntax_tree/node.rb', line 7061

def child_nodes
  []
end

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



7065
7066
7067
7068
7069
7070
# File 'lib/syntax_tree/node.rb', line 7065

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

#deconstruct_keys(_keys) ⇒ Object



7074
7075
7076
# File 'lib/syntax_tree/node.rb', line 7074

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