Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > ripperライブラリ > Ripperクラス

class Ripper

クラスの継承リスト: Ripper < Object < Kernel < BasicObject

要約

Ruby プログラムのパーサです。

以下を参照して下さい。

Ruby プログラムをテキストとして扱いたい場合、 例えばソース色付けを行いたい場合は、 Ripper::Filter クラスを使うとよいでしょう。

目次

特異メソッド
new parse yydebug yydebug=
インスタンスメソッド
column encoding end_seen? filename lineno parse
privateメソッド
compile_error warn warning
定数
EVENTS PARSER_EVENTS PARSER_EVENT_TABLE SCANNER_EVENTS SCANNER_EVENT_TABLE Version

特異メソッド

new(src, filename = "(ripper)", lineno = 1) -> Ripper[permalink][rdoc]

Ripper オブジェクトを作成します。

[PARAM] src:
Ruby プログラムを文字列か IO オブジェクトで指定します。
[PARAM] filename:
src のファイル名を文字列で指定します。省略すると "(ripper)" になります。
[PARAM] lineno:
src の開始行番号を指定します。省略すると 1 になります。

src の解析を行うには更に Ripper#parse などの呼び出しが必要です。

[SEE_ALSO] Ripper.parse, Ripper#parse

parse(src, filename = '(ripper)', lineno = 1) -> nil[permalink][rdoc]

指定された文字列を解析します。常に nil を返します。

[PARAM] src:
Ruby プログラムを文字列か IO オブジェクトで指定します。
[PARAM] filename:
src のファイル名を文字列で指定します。省略すると "(ripper)" になります。
[PARAM] lineno:
src の開始行番号を指定します。省略すると 1 になります。

[SEE_ALSO] Ripper#parse

yydebug -> bool[permalink][rdoc]

yydebugの構文解析器の追跡機能が有効か無効かを返します。

yydebug=(flag)[permalink][rdoc]

yydebugの構文解析器の追跡機能が有効か無効かを指定します。

[PARAM] flag:
true か false を指定します。

インスタンスメソッド

column -> Integer | nil[permalink][rdoc]

現在のトークンの桁番号を 0 から始まる数値で返します。

このメソッドはイベントハンドラの中でのみ意味のある値を返します。イベン トハンドラの中で self.column を実行してください。

encoding -> Encoding[permalink][rdoc]

自身の持つ Ruby プログラムの文字エンコーディングを返します。

Ruby プログラムの解析前は Encoding::US_ASCII を返します。

end_seen? -> bool[permalink][rdoc]

これまでに解析した Ruby プログラムの中に __END__ が含まれていたかどうか を返します。

filename -> String[permalink][rdoc]

自身の持つ Ruby プログラムのファイル名を文字列で返します。

lineno -> Integer | nil[permalink][rdoc]

現在のトークンの行番号を 1 から始まる数値で返します。

このメソッドはイベントハンドラの中でのみ意味のある値を返します。イベン トハンドラの中で self.lineno を実行してください。

parse -> nil[permalink][rdoc]

自身の持つ Ruby プログラムを解析します。常に nil を返します。

サブクラスでオーバライドして使用します。Ruby プログラムの解析は行います が、そのままでは解析結果は利用できません。サブクラスでイベントハンドラ の定義や本メソッドの戻り値の追加などで対応する必要があります。

[SEE_ALSO] Ripper.parse

privateメソッド

compile_error(msg) -> nil[permalink][rdoc]

解析した Ruby プログラムの中にコンパイルエラーがあった場合に実行されま す。

[PARAM] msg:
エラーメッセージ。

サブクラスでオーバライドして使用します。

warn(fmt, *args) -> nil[permalink][rdoc]

解析した Ruby プログラムの中に警告($-w が true の時だけ出力される 警告)を出力するようなものがあった場合に実行されます。

[PARAM] fmt:
エラーメッセージのフォーマット文字列です。
[PARAM] args:
エラーメッセージのフォーマットされる引数です。

サブクラスでオーバライドして使用します。

引数のエラーメッセージは printf フォーマットに従って渡されます。

warning(fmt, *args) -> nil[permalink][rdoc]

解析した Ruby プログラムの中に重要な警告($-w が false の時だけ出 力される警告)を出力するようなものがあった場合に実行されます。

[PARAM] fmt:
エラーメッセージのフォーマット文字列です。
[PARAM] args:
エラーメッセージのフォーマットされる引数です。

サブクラスでオーバライドして使用します。

引数のエラーメッセージは printf フォーマットに従って渡されます。

定数

EVENTS -> [Symbol][permalink][rdoc]

ripper の扱う全てのイベント ID (シンボル) のリストを返します。

PARSER_EVENTS -> [Symbol][permalink][rdoc]

パーサイベントのイベント ID (シンボル) のリストを返します。

PARSER_EVENT_TABLE -> {Symbol => Integer}[permalink][rdoc]

パーサイベントのイベント ID (シンボル) と対応するハンドラの引数の個数の リストをハッシュで返します。

SCANNER_EVENTS -> [Symbol][permalink][rdoc]

スキャナイベントのイベント ID (シンボル) のリストを返します。

SCANNER_EVENT_TABLE -> {Symbol => Integer}[permalink][rdoc]

スキャナイベントのイベント ID (シンボル) と対応するハンドラの引数の個数 のリストをハッシュで返します。

Version -> String[permalink][rdoc]

ripper のバージョンを文字列で返します。