けいじゅ@いしつかです. In [ruby-dev:26412] the message: "[ruby-dev:26412] Re: irbのlexerが数 値認識に失敗", on Jun/30 17:30(JST) >まつもと ゆきひろです >そのようですね。直しておきます。 あれま. 一足遅かった... 松本さんのだと, 09などがエラーにならないので, 以下のパッチではいかがで しょう? # ついでに 0d9999 も対応しています. -- patched by matz def identify_number @lex_state = EXPR_END if peek(0) == "0" && peek(1) !~ /[.eE]/ len0 = true non_digit = false getc if /[xX]/ =~ peek(0) ch = getc match = /[0-9a-fA-F_]/ elsif /[bB]/ =~ peek(0) ch = getc match = /[01_]/ elsif /[oO]/ =~ peek(0) ch = getc match = /[0-7_]/ else match = /[0-7_]/ len0 = false end while ch = getc if match =~ ch if ch == "_" -- patched by keiju def identify_number @lex_state = EXPR_END if peek(0) == "0" && peek(1) !~ /[.eE]/ getc case peek(0) when /[xX]/ ch = getc match = /[0-9a-fA-F_]/ when /[bB]/ ch = getc match = /[01_]/ when /[oO]/ ch = getc match = /[0-7_]/ when /[dD]/ ch = getc match = /[0-9_]/ when /[0-7]/ match = /[0-7_]/ when /[89]/ RubyLex.fail SyntaxError, "Illegal octal digit" else return Token(TkINTEGER) end len0 = true non_digit = false while ch = getc __ ---------------------------------------------------->> 石塚 圭樹 <<--- ---------------------------------->> e-mail: keiju / ishitsuka.com <<---