类 Prism::Token

这表示来自 Ruby 源代码的一个标记。

属性

source[R]

表示此标记来自的源的 Source 对象。

type[R]

此标记的类型。

value[R]

此标记表示的源的字节切片。

公共类方法

new(source, type, value, location) 单击以切换源

使用给定的类型、值和位置创建一个新的标记对象。

# File prism/parse_result.rb, line 811
def initialize(source, type, value, location)
  @source = source
  @type = type
  @value = value
  @location = location
end

公共实例方法

==(other) 单击以切换源

如果给定的其他标记等于此标记,则返回 true。

# File prism/parse_result.rb, line 846
def ==(other)
  Token === other &&
    other.type == type &&
    other.value == value
end
deconstruct_keys(keys) 单击以切换源

Token 实现哈希模式匹配接口。

# File prism/parse_result.rb, line 819
def deconstruct_keys(keys)
  { type: type, value: value, location: location }
end
inspect() 单击以切换源

返回此标记的字符串表示形式。

调用父类方法
# File prism/parse_result.rb, line 853
def inspect
  location
  super
end
location() 单击以切换源

表示此标记在源中位置的 Location 对象。

# File prism/parse_result.rb, line 824
def location
  location = @location
  return location if location.is_a?(Location)
  @location = Location.new(source, location >> 32, location & 0xFFFFFFFF)
end
pretty_print(q) 单击以切换源

Token 实现漂亮的打印接口。

# File prism/parse_result.rb, line 831
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