【Ruby3.x】RubyVM::AbstractSyntaxTree::Node::tokens()メソッドの使い方
tokensメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
tokensメソッドは、RubyVM::AbstractSyntaxTree::Nodeクラスのインスタンスが表す抽象構文木(AST)の特定のノードに関連する、ソースコード上のトークン情報を取得するメソッドです。
抽象構文木(AST)とは、Rubyのプログラムの構造を木構造で表現したもので、各ノードはそのプログラムの特定の要素(例えば、変数、メソッド呼び出し、ループ文など)に対応します。このtokensメソッドを使用すると、それらのノードが元のRubyのソースコードでどのように記述されていたか、そのテキスト情報である「トークン」の形で詳細に確認できます。
トークンとは、プログラミング言語のソースコードを構成する最小の意味のある単位のことです。例えば、「def」「class」「+」「=」「変数名」「数値」「文字列」などがそれぞれトークンとして識別されます。
tokensメソッドは、該当するノードに関連するトークンオブジェクトの配列を返します。各トークンオブジェクトには、そのトークンの種類(例えば、キーワード、識別子)、実際のテキスト値、そしてソースコード内での正確な位置(開始行、終了行、開始列、終了列など)といった情報が含まれています。
このメソッドは、Rubyのソースコードをプログラム的に解析するようなツール(例えば、静的解析ツール、コードフォーマッタ、構文チェッカー、あるいは統合開発環境(IDE)の機能開発など)を開発する際に非常に有用です。コードの特定の構造が、実際にどのような文字の並びで書かれていたのかを正確に把握するために利用されます。
構文(syntax)
1require 'rubyvm/abstract_syntax_tree' 2 3node = RubyVM::AbstractSyntaxTree.parse("puts 'hello'") 4node.tokens
引数(parameters)
引数なし
引数はありません
戻り値(return)
[RubyVM::AbstractSyntaxTree::Token]
RubyVM::AbstractSyntaxTree::Nodeクラスのtokensメソッドは、そのノードを構成するトークンの配列を返します。この配列には、RubyVM::AbstractSyntaxTree::Tokenクラスのインスタンスが含まれています。