In Files

  • ripper/lib/ripper/filter.rb

Ripper::Filter

This class handles only scanner events, and they are dispatched in the `right' order (same with input).

Public Class Methods

new(src, filename = '-', lineno = 1) click to toggle source
 
               # File ripper/lib/ripper/filter.rb, line 19
def initialize(src, filename = '-', lineno = 1)
  @__lexer = Lexer.new(src, filename, lineno)
  @__line = nil
  @__col = nil
end
            

Public Instance Methods

column() click to toggle source

The column number of the current token. This value starts from 0. This method is valid only in event handlers.

 
               # File ripper/lib/ripper/filter.rb, line 40
def column
  @__col
end
            
filename() click to toggle source

The file name of the input.

 
               # File ripper/lib/ripper/filter.rb, line 26
def filename
  @__lexer.filename
end
            
lineno() click to toggle source

The line number of the current token. This value starts from 1. This method is valid only in event handlers.

 
               # File ripper/lib/ripper/filter.rb, line 33
def lineno
  @__line
end
            
parse(init = nil) click to toggle source

Starts parsing. init is a data accumulator. It is passed to the next event handler (as of Enumerable#inject).

 
               # File ripper/lib/ripper/filter.rb, line 46
def parse(init = nil)
  data = init
  @__lexer.lex.each do |pos, event, tok|
    @__line, @__col = *pos
    data = if respond_to?(event, true)
           then __send__(event, tok, data)
           else on_default(event, tok, data)
           end
  end
  data
end