summaryrefslogtreecommitdiff
path: root/lib/irb/ruby-lex.rb
diff options
context:
space:
mode:
authorTakashi Kokubun <takashikkbn@gmail.com>2019-06-13 00:29:45 +0900
committerTakashi Kokubun <takashikkbn@gmail.com>2019-06-13 00:32:20 +0900
commit180802906190501e4eb9b9423adfb6116ceb334b (patch)
tree03a1fa0f4e8561528c69b4c7673684dc4f5e9072 /lib/irb/ruby-lex.rb
parent88411d350e9e3eb6425375238a20af9b6aae28ae (diff)
make sync-default-gems GEM=irb
Upgrade IRB to https://github.com/ruby/irb/commit/41ea43a4a732e094acfa1b0fc1473fdcda9e6227 Mostly backport changes.
Diffstat (limited to 'lib/irb/ruby-lex.rb')
-rw-r--r--lib/irb/ruby-lex.rb31
1 files changed, 16 insertions, 15 deletions
diff --git a/lib/irb/ruby-lex.rb b/lib/irb/ruby-lex.rb
index d77354fb83..a57a5dfcd9 100644
--- a/lib/irb/ruby-lex.rb
+++ b/lib/irb/ruby-lex.rb
@@ -127,7 +127,6 @@ class RubyLex
end
def process_continue
- continued_bits = Ripper::EXPR_BEG | Ripper::EXPR_FNAME
# last token is always newline
if @tokens.size >= 2 and @tokens[-2][1] == :on_regexp_end
# end of regexp literal
@@ -149,7 +148,7 @@ class RubyLex
return true
elsif @tokens.size >= 1 and @tokens[-1][1] == :on_heredoc_end # "EOH\n"
return false
- elsif @tokens.size >= 2 and @tokens[-2][3].anybits?(continued_bits)
+ elsif @tokens.size >= 2 and defined?(Ripper::EXPR_BEG) and @tokens[-2][3].anybits?(Ripper::EXPR_BEG | Ripper::EXPR_FNAME)
# end of literal except for regexp
return true
end
@@ -221,19 +220,21 @@ class RubyLex
$VERBOSE = verbose
end
- last_lex_state = @tokens.last[3]
- if last_lex_state.allbits?(Ripper::EXPR_BEG)
- return false
- elsif last_lex_state.allbits?(Ripper::EXPR_DOT)
- return true
- elsif last_lex_state.allbits?(Ripper::EXPR_CLASS)
- return true
- elsif last_lex_state.allbits?(Ripper::EXPR_FNAME)
- return true
- elsif last_lex_state.allbits?(Ripper::EXPR_VALUE)
- return true
- elsif last_lex_state.allbits?(Ripper::EXPR_ARG)
- return false
+ if defined?(Ripper::EXPR_BEG)
+ last_lex_state = @tokens.last[3]
+ if last_lex_state.allbits?(Ripper::EXPR_BEG)
+ return false
+ elsif last_lex_state.allbits?(Ripper::EXPR_DOT)
+ return true
+ elsif last_lex_state.allbits?(Ripper::EXPR_CLASS)
+ return true
+ elsif last_lex_state.allbits?(Ripper::EXPR_FNAME)
+ return true
+ elsif last_lex_state.allbits?(Ripper::EXPR_VALUE)
+ return true
+ elsif last_lex_state.allbits?(Ripper::EXPR_ARG)
+ return false
+ end
end
false