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

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

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

作成日: 更新日:

基本的な使い方

last_linenoメソッドは、Rubyの抽象構文木(AST: Abstract Syntax Tree)を構成するノードが、元のソースコード上でどこに位置するかを示す情報の「最終行番号」を取得するメソッドです。このメソッドはRubyVM::AbstractSyntaxTree::Nodeクラスに属しています。

抽象構文木とは、Rubyのソースコードがコンピュータ内部でどのように解析され、構造化されているかを表す木構造のデータのことです。ソースコードが書かれたテキストファイルから、プログラムが実行可能な形式になるまでに、このASTが生成されます。RubyVM::AbstractSyntaxTree::Nodeクラスのオブジェクトは、このASTを構成する個々の要素、例えば変数の宣言、メソッドの呼び出し、条件分岐、ループなどのそれぞれを「ノード」として表現しています。

last_linenoメソッドは、特定のノードが表現するソースコードの範囲が終了する行番号を整数値で返します。これにより、あるRubyのコード要素がソースコード上のどの位置(特に最終行)に対応しているかを正確に知ることができます。例えば、デバッガがエラーメッセージを特定の行番号で表示する際や、コードの静的解析ツールが特定の構文要素がどこにあるかを特定する際などに、この情報は非常に役立ちます。開発者がRubyのコードをプログラム的に解析したり、コード品質ツールや開発環境の拡張機能を構築したりする際に、ソースコード上の具体的な記述とASTのノードを結びつけるための重要な手段となります。プログラムがソースコードを理解し、分析するための基礎的な情報を提供するメソッドの一つです。

構文(syntax)

1ast_node = RubyVM::AbstractSyntaxTree.parse("puts 'Hello'\nvalue = 1 + 2")
2puts ast_node.last_lineno

引数(parameters)

引数なし

引数はありません

戻り値(return)

Integer

このメソッドは、ノードが定義されているソースコードの最後の行番号を整数で返します。

関連コンテンツ