Class Ripper
In: lib/ripper/core.rb
lib/ripper/filter.rb
lib/ripper/sexp.rb
lib/ripper/lexer.rb
ext/ripper.c
ext/parse.y
ext/ripper.y
Parent: Object

:nodoc:

Methods

column   column   column   encoding   encoding   encoding   end_seen?   end_seen?   end_seen?   filename   filename   filename   lex   lineno   lineno   lineno   new   new   new   parse   parse   parse   parse   sexp   sexp_raw   slice   tokenize   yydebug   yydebug   yydebug   yydebug=   yydebug=   yydebug=  

Classes and Modules

Class Ripper::Filter

Constants

PARSER_EVENTS = PARSER_EVENT_TABLE.keys   This array contains name of parser events.
SCANNER_EVENTS = SCANNER_EVENT_TABLE.keys   This array contains name of scanner events.
EVENTS = PARSER_EVENTS + SCANNER_EVENTS   This array contains name of all ripper events.
Version = rb_usascii_str_new2(RIPPER_VERSION)
Version = rb_usascii_str_new2(RIPPER_VERSION)
Version = rb_usascii_str_new2(RIPPER_VERSION)

Public Class methods

Tokenizes Ruby program and returns an Array of 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"]]

Create a new Ripper object. src must be a String, an IO, or an Object which has gets method.

This method does not starts parsing. See also Ripper#parse and Ripper.parse.

Create a new Ripper object. src must be a String, an IO, or an Object which has gets method.

This method does not starts parsing. See also Ripper#parse and Ripper.parse.

Create a new Ripper object. src must be a String, an IO, or an Object which has gets method.

This method does not starts parsing. See also Ripper#parse and Ripper.parse.

Parses Ruby program read from src. src must be a String or a IO or a object which has gets method.

[EXPERIMENTAL] Parses src and create S-exp tree. This method is for mainly developper use.

  require 'ripper'
  require 'pp

  pp Ripper.sexp("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]]]]

[EXPERIMENTAL] 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"

Tokenizes Ruby program and returns an Array of String.

Public Instance methods

Return column number of current parsing line. This number starts from 0.

Return column number of current parsing line. This number starts from 0.

Return column number of current parsing line. This number starts from 0.

Return if parsed source ended by +__END__+. This number starts from 1.

Return if parsed source ended by +__END__+. This number starts from 1.

Return if parsed source ended by +__END__+. This number starts from 1.

Return current parsing filename.

Return current parsing filename.

Return current parsing filename.

Return line number of current parsing line. This number starts from 1.

Return line number of current parsing line. This number starts from 1.

Return line number of current parsing line. This number starts from 1.

Start parsing and returns the value of the root action.

Start parsing and returns the value of the root action.

Start parsing and returns the value of the root action.

[Validate]