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

ruby-changes:2892

From: ko1@a...
Date: 21 Dec 2007 12:22:34 +0900
Subject: [ruby-changes:2892] nobu - Ruby:r14384 (trunk): * keywords, parse.y (__ENCODING__): represent script encoding.

nobu	2007-12-21 12:22:22 +0900 (Fri, 21 Dec 2007)

  New Revision: 14384

  Modified files:
    trunk/ChangeLog
    trunk/keywords
    trunk/lex.c.blt
    trunk/lex.c.src
    trunk/parse.y

  Log:
    * keywords, parse.y (__ENCODING__): represent script encoding.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/parse.y?r1=14384&r2=14383
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lex.c.blt?r1=14384&r2=14383
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=14384&r2=14383
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/keywords?r1=14384&r2=14383
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/lex.c.src?r1=14384&r2=14383

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 14383)
+++ ChangeLog	(revision 14384)
@@ -1,3 +1,7 @@
+Fri Dec 21 12:22:20 2007  Nobuyoshi Nakada  <nobu@r...>
+
+	* keywords, parse.y (__ENCODING__): represent script encoding.
+
 Fri Dec 21 12:16:50 2007  Tanaka Akira  <akr@f...>
 
 	* string.c (rb_str_is_ascii_only_p): new method ascii_only?.
Index: lex.c.blt
===================================================================
--- lex.c.blt	(revision 14383)
+++ lex.c.blt	(revision 14384)
@@ -36,12 +36,12 @@
 #line 7 "keywords"
 struct kwtable;
 
-#define TOTAL_KEYWORDS 40
+#define TOTAL_KEYWORDS 41
 #define MIN_WORD_LENGTH 2
-#define MAX_WORD_LENGTH 8
-#define MIN_HASH_VALUE 6
+#define MAX_WORD_LENGTH 12
+#define MIN_HASH_VALUE 8
 #define MAX_HASH_VALUE 50
-/* maximum key range = 45, duplicates = 0 */
+/* maximum key range = 43, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -63,8 +63,8 @@
       51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
       51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
       51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
-      51, 51, 51, 23, 51, 51, 13, 51,  1,  1,
-      11, 12, 51, 51, 51, 51, 10, 51, 12, 51,
+      51, 51, 51, 26, 51, 51, 14, 51, 16,  8,
+      11, 13, 51, 51, 51, 51, 10, 51, 13, 51,
       51, 51, 51, 51, 51, 51, 51, 51, 51, 51,
       51, 51, 51, 51, 51, 11, 51, 13,  1, 26,
        4,  1,  8, 28, 51, 23, 51,  1,  1, 27,
@@ -109,89 +109,89 @@
 {
   static const struct kwtable wordlist[] =
     {
-      {""}, {""}, {""}, {""}, {""}, {""},
-#line 12 "keywords"
-      {"END", {keyword_END, keyword_END}, EXPR_END},
-      {""},
-#line 16 "keywords"
+      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 17 "keywords"
       {"break", {keyword_break, keyword_break}, EXPR_MID},
-#line 22 "keywords"
+#line 23 "keywords"
       {"else", {keyword_else, keyword_else}, EXPR_BEG},
-#line 32 "keywords"
+#line 33 "keywords"
       {"nil", {keyword_nil, keyword_nil}, EXPR_END},
+#line 26 "keywords"
+      {"ensure", {keyword_ensure, keyword_ensure}, EXPR_BEG},
 #line 25 "keywords"
-      {"ensure", {keyword_ensure, keyword_ensure}, EXPR_BEG},
-#line 24 "keywords"
       {"end", {keyword_end, keyword_end}, EXPR_END},
-#line 41 "keywords"
+#line 42 "keywords"
       {"then", {keyword_then, keyword_then}, EXPR_BEG},
-#line 33 "keywords"
+#line 34 "keywords"
       {"not", {keyword_not, keyword_not}, EXPR_VALUE},
-#line 26 "keywords"
+#line 27 "keywords"
       {"false", {keyword_false, keyword_false}, EXPR_END},
-#line 39 "keywords"
+#line 40 "keywords"
       {"self", {keyword_self, keyword_self}, EXPR_END},
-#line 23 "keywords"
+#line 24 "keywords"
       {"elsif", {keyword_elsif, keyword_elsif}, EXPR_VALUE},
-#line 36 "keywords"
+#line 37 "keywords"
       {"rescue", {keyword_rescue, modifier_rescue}, EXPR_MID},
-#line 42 "keywords"
+#line 43 "keywords"
       {"true", {keyword_true, keyword_true}, EXPR_END},
+#line 46 "keywords"
+      {"until", {keyword_until, modifier_until}, EXPR_VALUE},
 #line 45 "keywords"
-      {"until", {keyword_until, modifier_until}, EXPR_VALUE},
-#line 44 "keywords"
       {"unless", {keyword_unless, modifier_unless}, EXPR_VALUE},
-#line 38 "keywords"
+#line 39 "keywords"
       {"return", {keyword_return, keyword_return}, EXPR_MID},
-#line 19 "keywords"
+#line 20 "keywords"
       {"def", {keyword_def, keyword_def}, EXPR_FNAME},
-#line 14 "keywords"
+#line 15 "keywords"
       {"and", {keyword_and, keyword_and}, EXPR_VALUE},
-#line 21 "keywords"
+#line 22 "keywords"
       {"do", {keyword_do, keyword_do}, EXPR_BEG},
-#line 48 "keywords"
+#line 49 "keywords"
       {"yield", {keyword_yield, keyword_yield}, EXPR_ARG},
-#line 27 "keywords"
+#line 28 "keywords"
       {"for", {keyword_for, keyword_for}, EXPR_VALUE},
-#line 43 "keywords"
+#line 44 "keywords"
       {"undef", {keyword_undef, keyword_undef}, EXPR_FNAME},
-#line 34 "keywords"
+#line 35 "keywords"
       {"or", {keyword_or, keyword_or}, EXPR_VALUE},
-#line 29 "keywords"
+#line 30 "keywords"
       {"in", {keyword_in, keyword_in}, EXPR_VALUE},
-#line 46 "keywords"
+#line 47 "keywords"
       {"when", {keyword_when, keyword_when}, EXPR_VALUE},
-#line 37 "keywords"
+#line 38 "keywords"
       {"retry", {keyword_retry, keyword_retry}, EXPR_END},
-#line 28 "keywords"
+#line 29 "keywords"
       {"if", {keyword_if, modifier_if}, EXPR_VALUE},
-#line 17 "keywords"
+#line 18 "keywords"
       {"case", {keyword_case, keyword_case}, EXPR_VALUE},
-#line 35 "keywords"
+#line 36 "keywords"
       {"redo", {keyword_redo, keyword_redo}, EXPR_END},
-#line 31 "keywords"
+#line 32 "keywords"
       {"next", {keyword_next, keyword_next}, EXPR_MID},
-#line 40 "keywords"
+#line 41 "keywords"
       {"super", {keyword_super, keyword_super}, EXPR_ARG},
-#line 30 "keywords"
+#line 31 "keywords"
       {"module", {keyword_module, keyword_module}, EXPR_VALUE},
-#line 15 "keywords"
+#line 16 "keywords"
       {"begin", {keyword_begin, keyword_begin}, EXPR_BEG},
-#line 9 "keywords"
+#line 10 "keywords"
       {"__LINE__", {keyword__LINE__, keyword__LINE__}, EXPR_END},
-#line 10 "keywords"
+#line 11 "keywords"
       {"__FILE__", {keyword__FILE__, keyword__FILE__}, EXPR_END},
-#line 11 "keywords"
+#line 9 "keywords"
+      {"__ENCODING__", {keyword__ENCODING__, keyword__ENCODING__}, EXPR_END},
+#line 13 "keywords"
+      {"END", {keyword_END, keyword_END}, EXPR_END},
+#line 14 "keywords"
+      {"alias", {keyword_alias, keyword_alias}, EXPR_FNAME},
+#line 12 "keywords"
       {"BEGIN", {keyword_BEGIN, keyword_BEGIN}, EXPR_END},
-#line 20 "keywords"
+#line 21 "keywords"
       {"defined?", {keyword_defined, keyword_defined}, EXPR_ARG},
-#line 13 "keywords"
-      {"alias", {keyword_alias, keyword_alias}, EXPR_FNAME},
-      {""}, {""},
-#line 18 "keywords"
+#line 19 "keywords"
       {"class", {keyword_class, keyword_class}, EXPR_CLASS},
       {""}, {""},
-#line 47 "keywords"
+#line 48 "keywords"
       {"while", {keyword_while, modifier_while}, EXPR_VALUE}
     };
 
@@ -209,6 +209,6 @@
     }
   return 0;
 }
-#line 49 "keywords"
+#line 50 "keywords"
 
 #endif
Index: lex.c.src
===================================================================
--- lex.c.src	(revision 14383)
+++ lex.c.src	(revision 14384)
@@ -6,6 +6,7 @@
 
 struct kwtable;
 %%
+__ENCODING__, {keyword__ENCODING__, keyword__ENCODING__}, EXPR_END
 __LINE__, {keyword__LINE__, keyword__LINE__}, EXPR_END
 __FILE__, {keyword__FILE__, keyword__FILE__}, EXPR_END
 BEGIN, {keyword_BEGIN, keyword_BEGIN}, EXPR_END
Index: parse.y
===================================================================
--- parse.y	(revision 14383)
+++ parse.y	(revision 14384)
@@ -645,6 +645,7 @@
 	keyword_END
 	keyword__LINE__
 	keyword__FILE__
+	keyword__ENCODING__
 
 %token <id>   tIDENTIFIER tFID tGVAR tIVAR tCONSTANT tCVAR tLABEL
 %token <node> tINTEGER tFLOAT tSTRING_CONTENT tCHAR
@@ -1759,7 +1760,8 @@
 		| '`'		{ ifndef_ripper($$ = '`'); }
 		;
 
-reswords	: keyword__LINE__ | keyword__FILE__ | keyword_BEGIN | keyword_END
+reswords	: keyword__LINE__ | keyword__FILE__ | keyword__ENCODING__
+		| keyword_BEGIN | keyword_END
 		| keyword_alias | keyword_and | keyword_begin
 		| keyword_break | keyword_case | keyword_class | keyword_def
 		| keyword_defined | keyword_do | keyword_else | keyword_elsif
@@ -3923,6 +3925,7 @@
 		| keyword_false {ifndef_ripper($$ = keyword_false);}
 		| keyword__FILE__ {ifndef_ripper($$ = keyword__FILE__);}
 		| keyword__LINE__ {ifndef_ripper($$ = keyword__LINE__);}
+		| keyword__ENCODING__ {ifndef_ripper($$ = keyword__ENCODING__);}
 		;
 
 var_ref		: variable
@@ -7569,6 +7572,9 @@
     else if (id == keyword__LINE__) {
 	return NEW_LIT(INT2FIX(ruby_sourceline));
     }
+    else if (id == keyword__ENCODING__) {
+	return NEW_LIT(rb_enc_from_encoding(parser->enc));
+    }
     else if (is_local_id(id)) {
 	if (dyna_in_block() && dvar_defined(id)) return NEW_DVAR(id);
 	if (local_id(id)) return NEW_LVAR(id);
Index: keywords
===================================================================
--- keywords	(revision 14383)
+++ keywords	(revision 14384)
@@ -6,6 +6,7 @@
 
 struct kwtable;
 %%
+__ENCODING__, {keyword__ENCODING__, keyword__ENCODING__}, EXPR_END
 __LINE__, {keyword__LINE__, keyword__LINE__}, EXPR_END
 __FILE__, {keyword__FILE__, keyword__FILE__}, EXPR_END
 BEGIN, {keyword_BEGIN, keyword_BEGIN}, EXPR_END

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

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