diff options
author | Takashi Kokubun <takashikkbn@gmail.com> | 2019-06-13 00:29:45 +0900 |
---|---|---|
committer | Takashi Kokubun <takashikkbn@gmail.com> | 2019-06-13 00:32:20 +0900 |
commit | 180802906190501e4eb9b9423adfb6116ceb334b (patch) | |
tree | 03a1fa0f4e8561528c69b4c7673684dc4f5e9072 /lib/irb/ruby-lex.rb | |
parent | 88411d350e9e3eb6425375238a20af9b6aae28ae (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.rb | 31 |
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 |