Support for the Ruby 2.1 series ended on March 31 2017. See here for details.
This class handles only scanner events, which are dispatched in the 'right' order (same with input).
Creates a new Ripper::Filter instance, passes
parameters src
, filename
, and lineno
to Ripper::Lexer.new
The lexer is for internal use only.
# File ripper/lib/ripper/filter.rb, line 23 def initialize(src, filename = '-', lineno = 1) @__lexer = Lexer.new(src, filename, lineno) @__line = nil @__col = nil end
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 44 def column @__col end
The file name of the input.
# File ripper/lib/ripper/filter.rb, line 30 def filename @__lexer.filename end
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 37 def lineno @__line end
Starts the parser. init
is a data accumulator and is passed to
the next event handler (as of Enumerable#inject).
# File ripper/lib/ripper/filter.rb, line 51 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