From 7b34c2f81aa300aa943479077c7c19c472b0c71c Mon Sep 17 00:00:00 2001 From: keiju Date: Thu, 27 Dec 2012 14:48:42 +0000 Subject: [PATCH] * lib/irb/ruby-lex.rb: make lex_state to EXPR_END when next token is an operator after SYMBEG [Bug #6378]. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@38632 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 5 +++++ lib/irb/ruby-lex.rb | 7 ++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 44e094fe8c..bf7466dc07 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Thu Dec 27 23:27:15 2012 Keiju Ishitsuka + + * lib/irb/ruby-lex.rb: make lex_state to EXPR_END when next token + is an operator after SYMBEG [Bug #6378]. + Thu Dec 27 21:30:21 2012 Keiju Ishitsuka * lib/irb/ruby-lex.rb: allow to handle recursive heredocs on diff --git a/lib/irb/ruby-lex.rb b/lib/irb/ruby-lex.rb index 19b7b9198b..4a700b3324 100644 --- a/lib/irb/ruby-lex.rb +++ b/lib/irb/ruby-lex.rb @@ -54,6 +54,7 @@ class RubyLex @lex_state = EXPR_BEG @space_seen = false @here_header = false + @post_symbeg = false @continue = false @line = "" @@ -218,6 +219,8 @@ class RubyLex @here_header = false @continue = false + @post_symbeg = false + prompt @line = "" @@ -286,6 +289,8 @@ class RubyLex begin tk = @OP.match(self) @space_seen = tk.kind_of?(TkSPACE) + @lex_state = EXPR_END if @post_symbeg && tk.kind_of?(TkOp) + @post_symbeg = tk.kind_of?(TkSYMBEG) rescue SyntaxError raise if @exception_on_syntax_error tk = TkError.new(@seek, @line_no, @char_no) @@ -542,7 +547,7 @@ class RubyLex @lex_state = EXPR_BEG Token(TkCOLON) else - @lex_state = EXPR_FNAME; + @lex_state = EXPR_FNAME Token(TkSYMBEG) end end