diff options
Diffstat (limited to 'lib/irb/ruby-lex.rb')
-rw-r--r-- | lib/irb/ruby-lex.rb | 7 |
1 files changed, 6 insertions, 1 deletions
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 |