Class
This represents a token from the Ruby source.
Attributes
Read
The type of token that this token is.
Read
A byteslice of the source that this token represents.
Class Methods
lib/prism/parse_result.rb
View on GitHub
# File tmp/rubies/ruby-3.4.0-preview1/lib/prism/parse_result.rb, line 657
def initialize(source, type, value, location)
@source = source
@type = type
@value = value
@location = location
end
Create a new token object with the given type, value, and location.
Instance Methods
lib/prism/parse_result.rb
View on GitHub
# File tmp/rubies/ruby-3.4.0-preview1/lib/prism/parse_result.rb, line 692
def ==(other)
Token === other &&
other.type == type &&
other.value == value
end
Returns true if the given other token is equal to this token.
lib/prism/parse_result.rb
View on GitHub
# File tmp/rubies/ruby-3.4.0-preview1/lib/prism/parse_result.rb, line 665
def deconstruct_keys(keys)
{ type: type, value: value, location: location }
end
Implement the hash pattern matching interface for Token
.
#
lib/prism/parse_result.rb
View on GitHub
# File tmp/rubies/ruby-3.4.0-preview1/lib/prism/parse_result.rb, line 670
def location
location = @location
return location if location.is_a?(Location)
@location = Location.new(source, location >> 32, location & 0xFFFFFFFF)
end
A Location
object representing the location of this token in the source.
lib/prism/parse_result.rb
View on GitHub
# File tmp/rubies/ruby-3.4.0-preview1/lib/prism/parse_result.rb, line 677
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
Implement the pretty print interface for Token
.