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.



7083
7084
7085
7086
# File 'lib/syntax_tree/node.rb', line 7083

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

Instance Attribute Details

#valueObject (readonly)

String

the end of the label



7081
7082
7083
# File 'lib/syntax_tree/node.rb', line 7081

def value
  @value
end

Instance Method Details

#===(other) ⇒ Object



7109
7110
7111
# File 'lib/syntax_tree/node.rb', line 7109

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

#accept(visitor) ⇒ Object



7088
7089
7090
# File 'lib/syntax_tree/node.rb', line 7088

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

#child_nodesObject Also known as: deconstruct



7092
7093
7094
# File 'lib/syntax_tree/node.rb', line 7092

def child_nodes
  []
end

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



7096
7097
7098
7099
7100
7101
# File 'lib/syntax_tree/node.rb', line 7096

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

#deconstruct_keys(_keys) ⇒ Object



7105
7106
7107
# File 'lib/syntax_tree/node.rb', line 7105

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