summaryrefslogtreecommitdiff
path: root/ext/ripper/lib/ripper/filter.rb
diff options
context:
space:
mode:
authoraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-09-23 10:49:11 +0000
committeraamine <aamine@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2004-09-23 10:49:11 +0000
commit0c9d76889af8e00a946dbe8de33568fc87bdd983 (patch)
tree6b11b788338aa66e7357d013feb96082edb0a0cb /ext/ripper/lib/ripper/filter.rb
parentbf189b88d34f23b1f4e7709fd6c9b947cd5073e7 (diff)
* ext/ripper/Makefile.dev: removed.
* ext/ripper/ripper.rb.in: moved to lib/ripper/core.rb.in. * ext/ripper/lib/ripper/core.rb: new file. * ext/ripper/lib/ripper/core.rb.in: new file. * ext/ripper/tools/generate-ripper_rb.rb: change comment. * test/ripper/*.rb: on_scan removed. * test/ripper/*.rb: event name changed: on__ -> on_. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6956 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/ripper/lib/ripper/filter.rb')
-rw-r--r--ext/ripper/lib/ripper/filter.rb19
1 files changed, 17 insertions, 2 deletions
diff --git a/ext/ripper/lib/ripper/filter.rb b/ext/ripper/lib/ripper/filter.rb
index 399c4c64bc..d1c7c4a45e 100644
--- a/ext/ripper/lib/ripper/filter.rb
+++ b/ext/ripper/lib/ripper/filter.rb
@@ -8,10 +8,12 @@
# For details of Ruby License, see ruby/COPYING.
#
-require 'ripper'
+require 'ripper/core'
class Ripper
+ # This class handles only scanner events,
+ # and they are dispatched in the `right' order (same with input).
class Filter
def initialize(src, filename = '-', lineno = 1)
@@ -20,18 +22,27 @@ class Ripper
@__col = nil
end
+ # The file name of the input.
def filename
@__parser.filename
end
+ # The line number of the current token.
+ # This value starts from 1.
+ # This method is valid only in event handlers.
def lineno
@__line
end
+ # The column number of the current token.
+ # This value starts from 0.
+ # This method is valid only in event handlers.
def column
@__col
end
+ # Starts parsing. _init_ is a data accumulator.
+ # It is passed to the next event handler (as of Enumerable#inject).
def parse(init)
data = init
@__parser.parse.each do |pos, event, tok|
@@ -46,7 +57,11 @@ class Ripper
private
- def on_default(event, tok, data)
+ # This method is called when some event handler have not defined.
+ # _event_ is :on_XXX, _token_ is scanned token, _data_ is a data
+ # accumulator. The return value of this method is passed to the
+ # next event handler (as of Enumerable#inject).
+ def on_default(event, token, data)
data
end