ruby-changes:12732
From: yugui <ko1@a...>
Date: Sun, 9 Aug 2009 15:04:01 +0900 (JST)
Subject: [ruby-changes:12732] Ruby:r24448 (ruby_1_9_1): merges r24258 from trunk into ruby_1_9_1.
yugui 2009-08-08 19:55:48 +0900 (Sat, 08 Aug 2009) New Revision: 24448 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=24448 Log: merges r24258 from trunk into ruby_1_9_1. -- * lib/irb/ruby-lex.rb: make irb be able to parse string_dvar. [ruby-core: 24051] Modified files: branches/ruby_1_9_1/ChangeLog branches/ruby_1_9_1/lib/irb/ruby-lex.rb branches/ruby_1_9_1/version.h Index: ruby_1_9_1/ChangeLog =================================================================== --- ruby_1_9_1/ChangeLog (revision 24447) +++ ruby_1_9_1/ChangeLog (revision 24448) @@ -1,3 +1,8 @@ +Thu Jul 23 17:31:02 2009 Keiju Ishitsuka <keiju@r...> + + * lib/irb/ruby-lex.rb: make irb be able to parse + string_dvar. [ruby-core: 24051] + Wed Jul 22 22:23:24 2009 Yusuke Endoh <mame@t...> * vm_core.h (struct rb_iseq_t): add a new field line_no. This field Index: ruby_1_9_1/lib/irb/ruby-lex.rb =================================================================== --- ruby_1_9_1/lib/irb/ruby-lex.rb (revision 24447) +++ ruby_1_9_1/lib/irb/ruby-lex.rb (revision 24448) @@ -1047,6 +1047,8 @@ while ch = getc if @quoted == ch and nest == 0 break + elsif ch == "#" and peek(0) == "{" + identify_string_dvar elsif @ltype != "'" && @ltype != "]" && @ltype != ":" and ch == "#" subtype = true elsif ch == '\\' and @ltype == "'" #' @@ -1082,6 +1084,42 @@ @lex_state = EXPR_END end end + + def identify_string_dvar + begin + getc + + reserve_continue = @continue + reserve_ltype = @ltype + reserve_indent = @indent + reserve_indent_stack = @indent_stack + reserve_state = @lex_state + reserve_quoted = @quoted + + @ltype = nil + @quoted = nil + @indent = 0 + @indent_stack = [] + @lex_state = EXPR_BEG + + loop do + @continue = false + prompt + tk = token + if @ltype or @continue or @indent > 0 + next + end + break if tk.kind_of?(TkRBRACE) + end + ensure + @continue = reserve_continue + @ltype = reserve_ltype + @indent = reserve_indent + @indent_stack = reserve_indent_stack + @lex_state = reserve_state + @quoted = reserve_quoted + end + end def identify_comment @ltype = "#" Index: ruby_1_9_1/version.h =================================================================== --- ruby_1_9_1/version.h (revision 24447) +++ ruby_1_9_1/version.h (revision 24448) @@ -1,5 +1,5 @@ #define RUBY_VERSION "1.9.1" -#define RUBY_PATCHLEVEL 253 +#define RUBY_PATCHLEVEL 254 #define RUBY_VERSION_MAJOR 1 #define RUBY_VERSION_MINOR 9 #define RUBY_VERSION_TEENY 1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/