要約
Prism?.lex や Prism?.parse_lex の結果に含まれる、字句解析で得られたトークンを表すクラスです。
例require "prism"
token, _state = Prism.lex("1 + 2").value.first
p token.class # => Prism::Token
p token.type # => :INTEGER
p token.value # => "1"
p token.location.start_column # => 0
[SEE_ALSO] Prism?.lex, Prism?.parse_lex
目次
- インスタンスメソッド
インスタンスメソッド
self == other -> boolRuby 3.3 から[permalink][rdoc][edit]-
other が同じ
typeとvalueを持つPrism::Tokenであれば true を返します。位置(location)は比較しないため、ソースコード上の別の場所にある同じ内容のトークンどうしも等しいと判定されます。- [PARAM]
other: - 比較対象のオブジェクト
require "prism" tokens = Prism.lex("1 + 1").value p tokens[0][0] == tokens[2][0] # => true (別の位置の "1" どうし) - [PARAM]
self[index] -> Prism::Token | IntegerRuby 4.1 から[permalink][rdoc][edit]-
selfを、かつて Prism?.lex などが返していた[トークン, 状態]という 2 要素配列であるかのように振る舞わせるためのメソッドです。indexに 0 を指定するとselfを、1 を指定すると字句解析器の状態を表す整数を返します。- [PARAM]
index: - 0 または 1 を指定します。
- [EXCEPTION]
ArgumentError: -
indexが 0, 1 のいずれでもない場合に発生します。
[SEE_ALSO] Prism::Token#first, Prism?.lex
- [PARAM]
deconstruct_keys(keys) -> HashRuby 3.3 から[permalink][rdoc][edit]-
パターンマッチのハッシュパターン(
case token; in {type:, value:})で使われます。type・value・locationをキーに持つハッシュを返します。- [PARAM]
keys: - 取り出したいキーの配列を指定します。すべて取り出す場合は nil を指定します。
require "prism" token, _state = Prism.lex("1 + 2").value.first case token in {type:, value:} p [type, value] end # => [:INTEGER, "1"] - [PARAM]
deep_freeze -> ()Ruby 4.0 から[permalink][rdoc][edit]-
例selfと、保持しているトークンの文字列・位置情報を frozen にします。require "prism" token, _state = Prism.lex("1 + 2").value.first token.deep_freeze p token.frozen? # => true p token.value.frozen? # => true[SEE_ALSO] Prism::Source#deep_freeze
first -> Prism::TokenRuby 4.1 から[permalink][rdoc][edit]-
selfを、かつて Prism?.lex などが返していた[トークン, 状態]という 2 要素配列であるかのように振る舞わせるためのメソッドです。常に
selfを返します。Array のfirstに合わせた名前のメソッドです。[SEE_ALSO]
[], Prism?.lex location -> Prism::LocationRuby 3.3 から[permalink][rdoc][edit]-
トークンのソースコード上の位置を表す Prism::Location を返します。
type -> SymbolRuby 3.3 から[permalink][rdoc][edit]-
トークンの種類を表すシンボル(例:
:INTEGER、:PLUS、:IDENTIFIER)を返します。 value -> StringRuby 3.3 から[permalink][rdoc][edit]-
トークンに対応するソースコードの文字列を返します。