Class: Ripper::Filter
- Defined in:
- lib/langscan/ruby/compat/ripper/filter.rb
Overview
This class handles only scanner events, and they 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
A new instance of Filter.
-
#lineno ⇒ Object
The line number of the current token.
-
#parse(init = nil) ⇒ Object
Starts parsing.
Constructor Details
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.
40 41 42 |
# File 'lib/langscan/ruby/compat/ripper/filter.rb', line 40 def column @__col end |
#filename ⇒ Object
The file name of the input.
26 27 28 |
# File 'lib/langscan/ruby/compat/ripper/filter.rb', line 26 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.
33 34 35 |
# File 'lib/langscan/ruby/compat/ripper/filter.rb', line 33 def lineno @__line end |
#parse(init = nil) ⇒ Object
Starts parsing. init is a data accumulator. It is passed to the next event handler (as of Enumerable#inject).
46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/langscan/ruby/compat/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 |