Class: Prism::Token
- Inherits:
-
Object
- Object
- Prism::Token
- Defined in:
- lib/prism/parse_result.rb,
ext/prism/extension.c
Overview
This represents a token from the Ruby source.
Instance Attribute Summary collapse
-
#type ⇒ Object
readonly
The type of token that this token is.
-
#value ⇒ Object
readonly
A byteslice of the source that this token represents.
Instance Method Summary collapse
-
#==(other) ⇒ Object
Returns true if the given other token is equal to this token.
-
#deconstruct_keys(keys) ⇒ Object
Implement the hash pattern matching interface for Token.
-
#deep_freeze ⇒ Object
Freeze this object and the objects it contains.
-
#initialize(source, type, value, location) ⇒ Token
constructor
Create a new token object with the given type, value, and location.
-
#inspect ⇒ Object
Returns a string representation of this token.
-
#location ⇒ Object
A Location object representing the location of this token in the source.
-
#pretty_print(q) ⇒ Object
Implement the pretty print interface for Token.
Constructor Details
#initialize(source, type, value, location) ⇒ Token
Create a new token object with the given type, value, and location.
816 817 818 819 820 821 |
# File 'lib/prism/parse_result.rb', line 816 def initialize(source, type, value, location) @source = source @type = type @value = value @location = location end |
Instance Attribute Details
#type ⇒ Object (readonly)
The type of token that this token is.
810 811 812 |
# File 'lib/prism/parse_result.rb', line 810 def type @type end |
#value ⇒ Object (readonly)
A byteslice of the source that this token represents.
813 814 815 |
# File 'lib/prism/parse_result.rb', line 813 def value @value end |
Instance Method Details
#==(other) ⇒ Object
Returns true if the given other token is equal to this token.
851 852 853 854 855 |
# File 'lib/prism/parse_result.rb', line 851 def ==(other) Token === other && other.type == type && other.value == value end |
#deconstruct_keys(keys) ⇒ Object
Implement the hash pattern matching interface for Token.
824 825 826 |
# File 'lib/prism/parse_result.rb', line 824 def deconstruct_keys(keys) { type: type, value: value, location: location } end |
#deep_freeze ⇒ Object
Freeze this object and the objects it contains.
864 865 866 867 868 |
# File 'lib/prism/parse_result.rb', line 864 def deep_freeze value.freeze location.freeze freeze end |
#inspect ⇒ Object
Returns a string representation of this token.
858 859 860 861 |
# File 'lib/prism/parse_result.rb', line 858 def inspect location super end |
#location ⇒ Object
A Location object representing the location of this token in the source.
829 830 831 832 833 |
# File 'lib/prism/parse_result.rb', line 829 def location location = @location return location if location.is_a?(Location) @location = Location.new(source, location >> 32, location & 0xFFFFFFFF) end |
#pretty_print(q) ⇒ Object
Implement the pretty print interface for Token.
836 837 838 839 840 841 842 843 844 845 846 847 848 |
# File 'lib/prism/parse_result.rb', line 836 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 |