Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【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) を構成する全てのトークンを、出現順に格納した配列を返します。

関連コンテンツ