Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
This array contains name of all ripper events.
This array contains name of parser events.
This array contains name of scanner events.
Tokenizes the Ruby program and returns an array of an array, which is
formatted like [[lineno, column], type, token]
.
require 'ripper' require 'pp' p Ripper.lex("def m(a) nil end") #=> [[[1, 0], :on_kw, "def"], [[1, 3], :on_sp, " " ], [[1, 4], :on_ident, "m" ], [[1, 5], :on_lparen, "(" ], [[1, 6], :on_ident, "a" ], [[1, 7], :on_rparen, ")" ], [[1, 8], :on_sp, " " ], [[1, 9], :on_kw, "nil"], [[1, 12], :on_sp, " " ], [[1, 13], :on_kw, "end"]]
# File ripper/lib/ripper/lexer.rb, line 42 def Ripper.lex(src, filename = '-', lineno = 1) Lexer.new(src, filename, lineno).lex end
Parses Ruby program read from src. src must be a String or a IO or a object which has gets method.
# File ripper/lib/ripper/core.rb, line 17 def Ripper.parse(src, filename = '(ripper)', lineno = 1) new(src, filename, lineno).parse end
Parses src
and create S-exp tree. Returns more readable tree
rather than ::sexp_raw. This
method is for mainly developper use.
require 'ripper' require 'pp' pp Ripper.sexp("def m(a) nil end") #=> [:program, [[:def, [:@ident, "m", [1, 4]], [:paren, [:params, [[:@ident, "a", [1, 6]]], nil, nil, nil, nil]], [:bodystmt, [[:var_ref, [:@kw, "nil", [1, 9]]]], nil, nil, nil]]]]
# File ripper/lib/ripper/sexp.rb, line 30 def Ripper.sexp(src, filename = '-', lineno = 1) SexpBuilderPP.new(src, filename, lineno).parse end
Parses src
and create S-exp tree. This method is for mainly
developper use.
require 'ripper' require 'pp' pp Ripper.sexp_raw("def m(a) nil end") #=> [:program, [:stmts_add, [:stmts_new], [:def, [:@ident, "m", [1, 4]], [:paren, [:params, [[:@ident, "a", [1, 6]]], nil, nil, nil]], [:bodystmt, [:stmts_add, [:stmts_new], [:var_ref, [:@kw, "nil", [1, 9]]]], nil, nil, nil]]]]
# File ripper/lib/ripper/sexp.rb, line 54 def Ripper.sexp_raw(src, filename = '-', lineno = 1) SexpBuilder.new(src, filename, lineno).parse end
Parses src
and return a string which was matched to
pattern
. pattern
should be described as Regexp.
require 'ripper' p Ripper.slice('def m(a) nil end', 'ident') #=> "m" p Ripper.slice('def m(a) nil end', '[ident lparen rparen]+') #=> "m(a)" p Ripper.slice("<<EOS\nstring\nEOS", 'heredoc_beg nl $(tstring_content*) heredoc_end', 1) #=> "string\n"
# File ripper/lib/ripper/lexer.rb, line 84 def Ripper.slice(src, pattern, n = 0) if m = token_match(src, pattern) then m.string(n) else nil end end
Tokenizes the Ruby program and returns an array of strings.
p Ripper.tokenize("def m(a) nil end") # => ["def", " ", "m", "(", "a", ")", " ", "nil", " ", "end"]
# File ripper/lib/ripper/lexer.rb, line 20 def Ripper.tokenize(src, filename = '-', lineno = 1) Lexer.new(src, filename, lineno).tokenize end
Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.