Spec-Zone.ru › Ruby 3.4
  1. Prism::
  2. Token

class Prism::Token

Родитель:
Object

Представляет токен из исходного кода Ruby.

Атрибуты

source [R]

Объект Source, представляющий источник, из которого получен этот токен.

type [R]

Тип этого токена.

value [R]

Срез байтов источника, который представляет этот токен.

Открытые методы класса

new (source, type, value, location) Показать исходный код
# File lib/prism/parse_result.rb, line 829
def initialize(source, type, value, location)
  @source = source
  @type = type
  @value = value
  @location = location
end

Создаёт новый объект токена с заданными типом, значением и местоположением.

Открытые методы экземпляра

== (other) Показать исходный код
# File lib/prism/parse_result.rb, line 864
def ==(other)
  Token === other &&
    other.type == type &&
    other.value == value
end

Возвращает true, если указанный другой токен равен этому токену.

deconstruct_keys (keys) Показать исходный код
# File lib/prism/parse_result.rb, line 837
def deconstruct_keys(keys)
  { type: type, value: value, location: location }
end

Реализует интерфейс сопоставления с образцом для хешей в Token.

deep_freeze () Показать исходный код
# File lib/prism/parse_result.rb, line 877
def deep_freeze
  value.freeze
  location.freeze
  freeze
end

Замораживает этот объект и содержащиеся в нём объекты.

inspect () Показать исходный код
# File lib/prism/parse_result.rb, line 871
def inspect
  location
  super
end

Возвращает строковое представление этого токена.

Вызывает метод суперкласса Object#inspect
location () Показать исходный код
# File lib/prism/parse_result.rb, line 842
def location
  location = @location
  return location if location.is_a?(Location)
  @location = Location.new(source, location >> 32, location & 0xFFFFFFFF)
end

Объект Location, представляющий местоположение этого токена в источнике.

pretty_print (q) Показать исходный код
# File lib/prism/parse_result.rb, line 849
def pretty_print(q)
  q.group do
    q.text(type.to_s)
    self.location.pretty_print(q)
    q.text("(")
    q.nest(2) do
      q.breakable("")
      q.pp(value)
    end
    q.breakable("")
    q.text(")")
  end
end

Реализует интерфейс красивой печати для Token.

Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API