種類
- インスタンスメソッド (10)
- 特異メソッド (8)
- 定数 (6)
キーワード
- EVENTS (1)
-
PARSER
_ EVENTS (1) -
PARSER
_ EVENT _ TABLE (1) -
SCANNER
_ EVENTS (1) -
SCANNER
_ EVENT _ TABLE (1) - Version (1)
- column (1)
-
compile
_ error (1) - encoding (1)
-
end
_ seen? (1) - filename (1)
- lex (1)
- lineno (1)
- new (1)
- parse (2)
- sexp (1)
-
sexp
_ raw (1) - slice (1)
-
token
_ match (1) - tokenize (1)
- warn (1)
- warning (1)
- yydebug (1)
検索結果
先頭5件
- Ripper
. new(src , filename = "(ripper)" , lineno = 1) -> Ripper - Ripper
. parse(src , filename = & # 39;(ripper)& # 39; , lineno = 1) -> nil - Ripper
. token _ match(src , pattern) -> Ripper :: TokenPattern :: MatchData | nil - Ripper
. lex(src , filename = & # 39;-& # 39; , lineno = 1) -> [[Integer , Integer] , Symbol , String] - Ripper
# column -> Integer | nil
-
Ripper
. new(src , filename = "(ripper)" , lineno = 1) -> Ripper (9910.0) -
Ripper オブジェクトを作成します。
...
Ripper オブジェクトを作成します。
@param src Ruby プログラムを文字列か IO オブジェクトで指定します。
@param filename src のファイル名を文字列で指定します。省略すると "(ripper)" になります。
@param lineno src の開始行番号を指......定します。省略すると 1 になります。
src の解析を行うには更に Ripper#parse などの呼び出しが必要です。
@see Ripper.parse, Ripper#parse... -
Ripper
. parse(src , filename = & # 39;(ripper)& # 39; , lineno = 1) -> nil (9610.0) -
指定された文字列を解析します。常に nil を返します。
...ラムを文字列か IO オブジェクトで指定します。
@param filename src のファイル名を文字列で指定します。省略すると "(ripper)" になります。
@param lineno src の開始行番号を指定します。省略すると 1 になります。
@see Ripper#parse... -
Ripper
. token _ match(src , pattern) -> Ripper :: TokenPattern :: MatchData | nil (9607.0) -
Ruby プログラム src に対してパターン pattern をマッチし、 マッチデータを返します。
Ruby プログラム src に対してパターン pattern をマッチし、
マッチデータを返します。
ライブラリ内部で使用します。 -
Ripper
. lex(src , filename = & # 39;-& # 39; , lineno = 1) -> [[Integer , Integer] , Symbol , String] (9343.0) -
Ruby プログラム str をトークンに分割し、そのリストを返します。 ただし Ripper.tokenize と違い、トークンの種類と位置情報も付属します。
...Ruby プログラム str をトークンに分割し、そのリストを返します。
ただし Ripper.tokenize と違い、トークンの種類と位置情報も付属します。
@param src Ruby プログラムを文字列か IO オブジェクトで指定します。
@param filename src......ます。
@param lineno src の開始行番号を指定します。省略すると 1 になります。
//emlist[][ruby]{
require 'ripper'
require 'pp'
pp Ripper.lex("def m(a) nil end")
# => [[[1, 0], :on_kw, "def"],
# [[1, 3], :on_sp, " "],
# [[1, 4], :on_ident, "m"],
# [[1, 5], :on......# [[1, 7], :on_rparen, ")"],
# [[1, 8], :on_sp, " "],
# [[1, 9], :on_kw, "nil"],
# [[1, 12], :on_sp, " "],
# on_kw, "end"
//}
Ripper.lex は分割したトークンを詳しい情報とともに返します。
返り値の配列の要素は 3 要素の配列 (概念的には... -
Ripper
# column -> Integer | nil (9310.0) -
現在のトークンの桁番号を 0 から始まる数値で返します。
現在のトークンの桁番号を 0 から始まる数値で返します。
このメソッドはイベントハンドラの中でのみ意味のある値を返します。イベン
トハンドラの中で self.column を実行してください。 -
Ripper
# compile _ error(msg) -> nil (9310.0) -
解析した Ruby プログラムの中にコンパイルエラーがあった場合に実行されま す。
解析した Ruby プログラムの中にコンパイルエラーがあった場合に実行されま
す。
@param msg エラーメッセージ。
サブクラスでオーバライドして使用します。 -
Ripper
# encoding -> Encoding (9310.0) -
自身の持つ Ruby プログラムの文字エンコーディングを返します。
自身の持つ Ruby プログラムの文字エンコーディングを返します。
Ruby プログラムの解析前は Encoding::US_ASCII を返します。 -
Ripper
# end _ seen? -> bool (9310.0) -
これまでに解析した Ruby プログラムの中に __END__ が含まれていたかどうか を返します。
これまでに解析した Ruby プログラムの中に __END__ が含まれていたかどうか
を返します。 -
Ripper
# filename -> String (9310.0) -
自身の持つ Ruby プログラムのファイル名を文字列で返します。
自身の持つ Ruby プログラムのファイル名を文字列で返します。 -
Ripper
# lineno -> Integer | nil (9310.0) -
現在のトークンの行番号を 1 から始まる数値で返します。
現在のトークンの行番号を 1 から始まる数値で返します。
このメソッドはイベントハンドラの中でのみ意味のある値を返します。イベン
トハンドラの中で self.lineno を実行してください。 -
Ripper
# parse -> nil (9310.0) -
自身の持つ Ruby プログラムを解析します。常に nil を返します。
...ライドして使用します。Ruby プログラムの解析は行います
が、そのままでは解析結果は利用できません。サブクラスでイベントハンドラ
の定義や本メソッドの戻り値の追加などで対応する必要があります。
@see Ripper.parse... -
Ripper
# warn(fmt , *args) -> nil (9310.0) -
解析した Ruby プログラムの中に警告($-w が true の時だけ出力される 警告)を出力するようなものがあった場合に実行されます。
解析した Ruby プログラムの中に警告($-w が true の時だけ出力される
警告)を出力するようなものがあった場合に実行されます。
@param fmt エラーメッセージのフォーマット文字列です。
@param args エラーメッセージのフォーマットされる引数です。
サブクラスでオーバライドして使用します。
引数のエラーメッセージは printf フォーマットに従って渡されます。 -
Ripper
# warning(fmt , *args) -> nil (9310.0) -
解析した Ruby プログラムの中に重要な警告($-w が false の時だけ出 力される警告)を出力するようなものがあった場合に実行されます。
解析した Ruby プログラムの中に重要な警告($-w が false の時だけ出
力される警告)を出力するようなものがあった場合に実行されます。
@param fmt エラーメッセージのフォーマット文字列です。
@param args エラーメッセージのフォーマットされる引数です。
サブクラスでオーバライドして使用します。
引数のエラーメッセージは printf フォーマットに従って渡されます。 -
Ripper
# yydebug -> bool (9310.0) -
yydebugの構文解析器の追跡機能が有効か無効かを返します。
yydebugの構文解析器の追跡機能が有効か無効かを返します。 -
Ripper
:: EVENTS -> [Symbol] (9310.0) -
ripper の扱う全てのイベント ID (シンボル) のリストを返します。
...
ripper の扱う全てのイベント ID (シンボル) のリストを返します。... -
Ripper
:: PARSER _ EVENTS -> [Symbol] (9310.0) -
パーサイベントのイベント ID (シンボル) のリストを返します。
パーサイベントのイベント ID (シンボル) のリストを返します。 -
Ripper
:: PARSER _ EVENT _ TABLE -> {Symbol => Integer} (9310.0) -
パーサイベントのイベント ID (シンボル) と対応するハンドラの引数の個数の リストをハッシュで返します。
パーサイベントのイベント ID (シンボル) と対応するハンドラの引数の個数の
リストをハッシュで返します。 -
Ripper
:: SCANNER _ EVENTS -> [Symbol] (9310.0) -
スキャナイベントのイベント ID (シンボル) のリストを返します。
スキャナイベントのイベント ID (シンボル) のリストを返します。 -
Ripper
:: SCANNER _ EVENT _ TABLE -> {Symbol => Integer} (9310.0) -
スキャナイベントのイベント ID (シンボル) と対応するハンドラの引数の個数 のリストをハッシュで返します。
スキャナイベントのイベント ID (シンボル) と対応するハンドラの引数の個数
のリストをハッシュで返します。 -
Ripper
:: Version -> String (9310.0) -
ripper のバージョンを文字列で返します。
...
ripper のバージョンを文字列で返します。... -
Ripper
. sexp(src , filename = & # 39;-& # 39; , lineno = 1) -> object (9307.0) -
Ruby プログラム str を解析して S 式のツリーにして返します。
...結果は、括弧の代わりに配列の要素として S 式のツリーを表現しています。
//emlist[例][ruby]{
require 'ripper'
require 'pp'
pp Ripper.sexp("def m(a) nil end")
# => [:program,
# [[:def,
# [:@ident, "m", [1, 4]],
# [:paren, [:params, [[:@ident, "a", [1,......形式になります。
[:@イベント名, トークン, 位置情報(行、桁の配列)]
例:
[:@ident, "m", [1, 4]]
また、Ripper.sexp は Ripper.sexp_raw とは異なり、読みやすさのため
に stmts_add や stmts_new のような _add、_new で終わるパーサイベント......を
省略します。_add で終わるパーサイベントはハンドラの引数が 0 個のものが
省略されます。詳しくは Ripper::PARSER_EVENTS を確認してください。
@see Ripper.sexp_raw... -
Ripper
. sexp _ raw(src , filename = & # 39;-& # 39; , lineno = 1) -> object (9307.0) -
Ruby プログラム str を解析して S 式のツリーにして返します。
...結果は、括弧の代わりに配列の要素として S 式のツリーを表現しています。
//emlist[例][ruby]{
require 'ripper'
require 'pp'
pp Ripper.sexp_raw("def m(a) nil end")
# => [:program,
# [:stmts_add,
# [:stmts_new],
# [:def,
# [:@ident, "m", [1, 4]],
#......n, [:params, [[:@ident, "a", [1, 6]]], nil, nil, nil]],
# [:bodystmt,
# [:stmts_add, [:stmts_new], [:var_ref, [:@kw, "nil", [1, 9]]]],
# nil,
# nil,
# nil]]]]
//}
Ripper.sexp_raw は Ripper.sexp とは異なり解析結果を加工しません。
@see Ripper.sexp... -
Ripper
. slice(src , pattern , n = 0) -> String | nil (9307.0) -
Ruby プログラム src のうち、 パターン pattern の n 番目の括弧にマッチする文字列を取り出します。
...目の括弧の中の文字列だけが必
要な時に指定します。省略すると 0 (pattern 全体)になります。
pattern は Ripper のイベント ID のリストを文字列で記述します。
また pattern には Ruby の正規表現と同じメタ文字も使えます......単位ではなくトークン単位で動作します。
使用例
require 'ripper'
p Ripper.slice(%(<<HERE\nstring\#{nil}\nHERE),
"heredoc_beg .*? nl $(.*?) heredoc_end", 1)
# => "string\#{nil}\n"
イベント ID は Ripper::SCANNER_EVENTS で確認できます。... -
Ripper
. tokenize(src , filename = & # 39;-& # 39; , lineno = 1) -> [String] (9307.0) -
Ruby プログラム str をトークンに分割し、そのリストを返します。
...号を指定します。省略すると 1 になります。
//emlist[][ruby]{
require 'ripper'
p Ripper.tokenize("def m(a) nil end")
# => ["def", " ", "m", "(", "a", ")", " ", "nil", " ", "end"]
//}
Ripper.tokenize は空白やコメントも含め、
元の文字列にある文字は 1 バイ...