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



7125
7126
7127
7128
# File 'lib/syntax_tree/node.rb', line 7125

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

Instance Attribute Details

#valueObject (readonly)

String

the end of the label



7123
7124
7125
# File 'lib/syntax_tree/node.rb', line 7123

def value
  @value
end

Instance Method Details

#===(other) ⇒ Object



7151
7152
7153
# File 'lib/syntax_tree/node.rb', line 7151

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

#accept(visitor) ⇒ Object



7130
7131
7132
# File 'lib/syntax_tree/node.rb', line 7130

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

#child_nodesObject Also known as: deconstruct



7134
7135
7136
# File 'lib/syntax_tree/node.rb', line 7134

def child_nodes
  []
end

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



7138
7139
7140
7141
7142
7143
# File 'lib/syntax_tree/node.rb', line 7138

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

#deconstruct_keys(_keys) ⇒ Object



7147
7148
7149
# File 'lib/syntax_tree/node.rb', line 7147

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