class Prism::Token - prism: Ruby Standard Library Documentation

# class Prism::Token

This represents a token from the Ruby source.

### Attributes

source[R]

The `Source` object that represents the source this token came from.

type[R]

The type of token that this token is.

value[R]

A byteslice of the source that this token represents.

### Public Class Methods

new(source, type, value, location) click to toggle source

Create a new token object with the given type, value, and location.

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

### Public Instance Methods

==(other) click to toggle source

Returns true if the given other token is equal to this token.

    # File prism/parse_result.rb, line 846
    def ==(other)
      Token === other &&
        other.type == type &&
        other.value == value
    end

deconstruct_keys(keys) click to toggle source

Implement the hash pattern matching interface for `Token`.

    # File prism/parse_result.rb, line 819
    def deconstruct_keys(keys)
      { type: type, value: value, location: location }
    end

inspect() click to toggle source

Returns a string representation of this token.

Calls superclass method

    # File prism/parse_result.rb, line 853
    def inspect
      location
      super
    end

location() click to toggle source

A `Location` object representing the location of this token in the source.

    # 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) click to toggle source

Implement the pretty print interface for `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