summaryrefslogtreecommitdiff
path: root/ext/ripper
diff options
context:
space:
mode:
Diffstat (limited to 'ext/ripper')
-rw-r--r--ext/ripper/lib/ripper/lexer.rb12
1 files changed, 8 insertions, 4 deletions
diff --git a/ext/ripper/lib/ripper/lexer.rb b/ext/ripper/lib/ripper/lexer.rb
index 35074acbf4..20436f6f49 100644
--- a/ext/ripper/lib/ripper/lexer.rb
+++ b/ext/ripper/lib/ripper/lexer.rb
@@ -41,19 +41,23 @@ class Ripper
class Lexer < ::Ripper #:nodoc: internal use only
def tokenize
- parse().map {|pos, event, tok| tok }
+ lex().map {|pos, event, tok| tok }
end
def lex
+ parse().sort_by {|pos, event, tok| pos }
+ end
+
+ def parse
@buf = []
- parse
- @buf.sort_by {|pos, event, tok| pos }
+ super
+ @buf
end
private
SCANNER_EVENTS.each do |event|
- module_eval(<<-End)
+ module_eval(<<-End, __FILE__+'/module_eval', __LINE__ + 1)
def on_#{event}(tok)
@buf.push [[lineno(), column()], :on_#{event}, tok]
end