From aec748ff1363557f0afb47eac9ad756bd4ed4e97 Mon Sep 17 00:00:00 2001 From: matz Date: Tue, 10 Jun 2003 05:36:35 +0000 Subject: [PATCH] * lib/irb/slex.rb: small cleanups. (ruby-bugs-ja PR#492) * lib/irb/ruby-lex.rb: ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@3932 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- lib/irb/ruby-lex.rb | 9 +++++---- lib/irb/slex.rb | 12 ++++++------ 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/lib/irb/ruby-lex.rb b/lib/irb/ruby-lex.rb index 8d5cb47580..d8f8a10241 100644 --- a/lib/irb/ruby-lex.rb +++ b/lib/irb/ruby-lex.rb @@ -67,12 +67,12 @@ class RubyLex attr_reader :indent # io functions - def set_input(io, p = nil) + def set_input(io, p = nil, &block) @io = io if p.respond_to?(:call) @input = p - elsif iterator? - @input = Block.new + elsif block_given? + @input = block else @input = Block.new{@io.gets} end @@ -183,7 +183,8 @@ class RubyLex end private :buf_input - def set_prompt(p = Block.new) + def set_prompt(p, &block) + p = block if block_given? if p.respond_to?(:call) @prompt = p else diff --git a/lib/irb/slex.rb b/lib/irb/slex.rb index 5dc496d893..ceee90b3d9 100644 --- a/lib/irb/slex.rb +++ b/lib/irb/slex.rb @@ -31,22 +31,22 @@ class SLex @head = Node.new("") end - def def_rule(token, preproc = nil, postproc = nil) + def def_rule(token, preproc = nil, postproc = nil, &block) # print node.inspect, "\n" if SLex.debug? - postproc = Block.new if iterator? + postproc = block if block_given? node = create(token, preproc, postproc) end - def def_rules(*tokens) - if iterator? - p = Block.new + def def_rules(*tokens, &block) + if block_given? + p = block end for token in tokens def_rule(token, nil, p) end end - def preporc(token, proc) + def preproc(token, proc) node = search(token) node.preproc=proc end