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

【Ruby3.x】RubyVM::AbstractSyntaxTree::Node::first_lineno()メソッドの使い方

first_linenoメソッドの使い方について、初心者にもわかりやすく解説します。

作成日: 更新日:

基本的な使い方

first_linenoメソッドは、RubyVM::AbstractSyntaxTree::Nodeクラスに属し、ソースコードの抽象構文木における各ノードが、元のプログラムの何行目から始まるかを取得するメソッドです。

RubyVM::AbstractSyntaxTree::Nodeクラスは、Rubyのプログラムコードを内部的に解析し、その構造を「抽象構文木(AST)」という木のような形で表現した際の、一つ一つの要素(ノード)を表しています。例えば、変数の定義、メソッドの呼び出し、条件分岐といった、コードのあらゆる部品がこのノードとして表現されます。

このfirst_linenoメソッドを呼び出すと、そのノードが参照しているコードの開始行番号を整数値として返します。これにより、特定のコード部品がソースコード上のどの位置にあるのかを正確に把握することが可能になります。

主に、Rubyの実行環境の内部処理や、コード解析ツール、デバッガー、あるいはシンタックスハイライターなどの開発において利用されます。開発者はこの情報を使って、エラーメッセージをより分かりやすく表示したり、特定のコードブロックに素早く移動する機能などを実装できます。このメソッドは、プログラムの内部構造を理解し、より高度なツールを構築するための重要な機能を提供します。

構文(syntax)

1require 'rubyvm/abstract_syntax_tree'
2
3node = RubyVM::AbstractSyntaxTree.parse("puts 'Hello, Ruby!'")
4node.first_lineno

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer

このメソッドは、Rubyのソースコードにおけるこのノードが初めて出現する行番号を整数で返します。

関連コンテンツ