[前][次][番号順一覧][スレッド一覧]

ruby-changes:15487

From: nobu <ko1@a...>
Date: Sun, 18 Apr 2010 12:49:20 +0900 (JST)
Subject: [ruby-changes:15487] Ruby:r27388 (trunk): * parse.y (parser_yylex): seems like a symbol-literal when spaces

nobu	2010-04-18 12:48:54 +0900 (Sun, 18 Apr 2010)

  New Revision: 27388

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27388

  Log:
    * parse.y (parser_yylex): seems like a symbol-literal when spaces
      are unbalanced.  [ruby-core:29578]

  Modified files:
    trunk/ChangeLog
    trunk/bootstraptest/test_syntax.rb
    trunk/parse.y

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 27387)
+++ ChangeLog	(revision 27388)
@@ -1,3 +1,8 @@
+Sun Apr 18 12:48:51 2010  Nobuyoshi Nakada  <nobu@r...>
+
+	* parse.y (parser_yylex): seems like a symbol-literal when spaces
+	  are unbalanced.  [ruby-core:29578]
+
 Sun Apr 18 12:32:03 2010  Nobuyoshi Nakada  <nobu@r...>
 
 	* parse.y (string_content): preserve cond_stack and cmdarg_stack.
Index: bootstraptest/test_syntax.rb
===================================================================
--- bootstraptest/test_syntax.rb	(revision 27387)
+++ bootstraptest/test_syntax.rb	(revision 27388)
@@ -890,3 +890,6 @@
 assert_valid_syntax('x y { "#{}".z do end }', bug1240)
 
 assert_valid_syntax('y "#{a 1}" do end', '[ruby-core:29579]')
+
+bug3163 = '[ruby-core:29578]'
+assert_valid_syntax('foo = 1; foo :bar', bug3163)
Index: parse.y
===================================================================
--- parse.y	(revision 27387)
+++ parse.y	(revision 27388)
@@ -7192,7 +7192,8 @@
 	    lex_state = EXPR_DOT;
 	    return tCOLON2;
 	}
-	if (lex_state == EXPR_END || lex_state == EXPR_ENDARG || (c != -1 && ISSPACE(c))) {
+	if ((!space_seen && (lex_state == EXPR_END || lex_state == EXPR_ENDARG)) ||
+	    (c != -1 && ISSPACE(c))) {
 	    pushback(c);
 	    lex_state = EXPR_BEG;
 	    return ':';

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]