class Ripper

[edit]

要約

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

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

目次

特異メソッド
インスタンスメソッド
privateメソッド
定数

特異メソッド

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

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][edit]

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

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

[SEE_ALSO] Ripper#parse

yydebug -> bool[permalink][rdoc][edit]

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

yydebug=(flag)[permalink][rdoc][edit]

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

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

インスタンスメソッド

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

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

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

encoding -> Encoding[permalink][rdoc][edit]

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

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

end_seen? -> bool[permalink][rdoc][edit]

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

filename -> String[permalink][rdoc][edit]

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

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

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

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

parse -> nil[permalink][rdoc][edit]

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

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

[SEE_ALSO] Ripper.parse

privateメソッド

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

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

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

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

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

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

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

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

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

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

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

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

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

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

定数

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

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

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

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

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

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

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

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

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

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

Version -> String[permalink][rdoc][edit]

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