Class: Ripper::Filter
- Inherits:
-
Object
- Object
- Ripper::Filter
- Defined in:
- lib/ripper/filter.rb
Overview
This class handles only scanner events, which are dispatched in the ‘right’ order (same with input).
Instance Method Summary collapse
-
#column ⇒ Object
The column number of the current token.
-
#filename ⇒ Object
The file name of the input.
-
#initialize(src, filename = '-', lineno = 1) ⇒ Filter
constructor
Creates a new Ripper::Filter instance, passes parameters
src
,filename
, andlineno
to Ripper::Lexer.new. -
#lineno ⇒ Object
The line number of the current token.
-
#parse(init = nil) ⇒ Object
Starts the parser.
-
#state ⇒ Object
The scanner’s state of the current token.
Constructor Details
#initialize(src, filename = '-', lineno = 1) ⇒ Filter
Creates a new Ripper::Filter instance, passes parameters src
, filename
, and lineno
to Ripper::Lexer.new
The lexer is for internal use only.
24 25 26 27 28 29 |
# File 'lib/ripper/filter.rb', line 24 def initialize(src, filename = '-', lineno = 1) @__lexer = Lexer.new(src, filename, lineno) @__line = nil @__col = nil @__state = nil end |
Instance Method Details
#column ⇒ Object
The column number of the current token. This value starts from 0. This method is valid only in event handlers.
46 47 48 |
# File 'lib/ripper/filter.rb', line 46 def column @__col end |
#filename ⇒ Object
The file name of the input.
32 33 34 |
# File 'lib/ripper/filter.rb', line 32 def filename @__lexer.filename end |
#lineno ⇒ Object
The line number of the current token. This value starts from 1. This method is valid only in event handlers.
39 40 41 |
# File 'lib/ripper/filter.rb', line 39 def lineno @__line end |
#parse(init = nil) ⇒ Object
Starts the parser. init
is a data accumulator and is passed to the next event handler (as of Enumerable#inject).
59 60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/ripper/filter.rb', line 59 def parse(init = nil) data = init @__lexer.lex.each do |pos, event, tok, state| @__line, @__col = *pos @__state = state data = if respond_to?(event, true) then __send__(event, tok, data) else on_default(event, tok, data) end end data end |
#state ⇒ Object
The scanner’s state of the current token. This value is the bitwise OR of zero or more of the Ripper::EXPR_*
constants.
52 53 54 |
# File 'lib/ripper/filter.rb', line 52 def state @__state end |