るりまサーチ

最速Rubyリファレンスマニュアル検索!
84件ヒット [1-84件を表示] (0.013秒)
トップページ > クエリ:ripper[x] > クエリ:EVENTS[x]

別のキーワード

  1. ripper parse
  2. ripper/lexer lex
  3. ripper/lexer tokenize
  4. ripper column
  5. ripper warn

ライブラリ

クラス

キーワード

検索結果

Ripper::EVENTS -> [Symbol] (35117.0)

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

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

Ripper::PARSER_EVENTS -> [Symbol] (23101.0)

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

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

Ripper::SCANNER_EVENTS -> [Symbol] (23101.0)

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

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

Ripper.sexp(src, filename = '-', lineno = 1) -> object (9043.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.slice(src, pattern, n = 0) -> String | nil (9031.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::Filter#on_XXX(token, data) -> object (3042.0)

各種スキャナイベントを実行します。

...XX」の部分を
Ripper
::SCANNER_EVENTS にあるスキャナイベントに読み替えてください。

@param token 現在のトークンが指定されます。

@param data 前のイベントハンドラの戻り値です。最初のイベントの場合は
Ripper
::Filter#parse...
...の引数になります。

オーバライドしなかった場合は on_default が実行されます。

このメソッドの戻り値は次のイベントハンドラの data 引数に渡されます。

@see Ripper::Filter#parse, Ripper::Filter#on_default, Ripper::SCANNER_EVENTS...

Ripper::Filter (3024.0)

イベントドリブンスタイルで Ruby プログラムを加工するためのクラスです。

...必要なイベントに対応するメソッドを定義して使用し
ます。

=== 使用例

//emlist[][ruby]{
require 'ripper'
require 'cgi'

class Ruby2HTML < Ripper::Filter
def on_default(event, tok, f)
f << CGI.escapeHTML(tok)
end

def on_comment(tok, f)
f << %Q[<span class="...
...end(tok, f)
f << %Q[#{CGI.escapeHTML(tok)}</span>]
end
end

Ruby2HTML.new(ARGF).parse('')
//}

Ruby プログラムを解析して、Ripper::SCANNER_EVENTS にあるスキャナ
イベントを実行します。イベントはプログラムに書いた順番で実行されます。

上記の...