Ruby 3.3 リファレンスマニュアル

module function Prism.#parse_lex

parse_lex(source, **options) -> Prism::ParseResultRuby 3.3 から[permalink][rdoc][edit]

source に対して構文解析と字句解析の両方を行います。Ruby 3.3 の prism には専用の結果クラスがないため、戻り値は Prism::ParseResult のインスタンスで、value[構文木, トークンの配列] という 2 要素配列になります。

構文木とトークン列の両方が必要な場合、Prism.#parsePrism.#lex を個別に呼び出すよりも効率的です。片方だけが必要な場合はそれぞれ Prism.#parse または Prism.#lex を使ってください。オプションは Prism.#parse と同じです。

[PARAM] source:
解析する Ruby プログラムの文字列を指定します。
[PARAM] options:
Prism.#parse を参照してください。
require "prism"

result = Prism.parse_lex("1 + 2")

ast, tokens = result.value
p ast.class    # => Prism::ProgramNode
p tokens.size  # => 4

[SEE_ALSO] Prism.#parse, Prism.#lex