【Ruby3.x】RubyVM::AbstractSyntaxTree::Node::all_tokens()メソッドの使い方
all_tokensメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
all_tokensメソッドは、抽象構文木(AST)の特定のノード、およびそのノードが含む全ての子ノードに関連するトークンをまとめて取得するメソッドです。このメソッドが属するRubyVM::AbstractSyntaxTree::Nodeクラスは、Rubyのソースコードがプログラムによってどのように解釈されるかを示す「抽象構文木(AST)」の各要素(ノード)を表します。ASTは、人間が書いたコードの論理的な構造を、コンピュータが扱いやすい形にしたものです。
ここでいうトークンとは、Rubyのソースコードを構成する最小単位のことです。例えば、「if」のようなキーワード、変数名、数値、演算子などがこれにあたります。これらはコードを意味のある部分に分解したものです。
このメソッドは、対象となるノードから下層に存在する全てのノードが持つトークンを抽出し、それらを配列(リスト)として返します。これにより、特定のコードブロックや式が、どのようなキーワード、識別子、記号などで構成されているかを網羅的に把握できます。
この機能は、Rubyのコードを分析するツール(例えば、静的解析ツールやリンター)を開発する際に非常に有用です。また、Ruby言語の内部動作や、ソースコードがどのように構造化され、処理されるかを深く理解したいプログラマーにとって、貴重な情報源となります。プログラミング言語の仕組みを探求し、より高度なコード解析を行うための基盤を提供する重要なメソッドと言えます。
構文(syntax)
1node = RubyVM::AbstractSyntaxTree.parse("def hello; puts 'world'; end") 2node.all_tokens
引数(parameters)
引数なし
引数はありません
戻り値(return)
Array[RubyVM::AbstractSyntaxTree::Token]
このメソッドは、AST (Abstract Syntax Tree) を構成する全てのトークンを、出現順に格納した配列を返します。