[前][次][番号順一覧][スレッド一覧][生データ]

yarv-diff:404

From: ko1 atdot.net
Date: 4 Nov 2006 09:50:34 +0900
Subject: [yarv-diff:404] r572 - in trunk: . ext/readline lib test/ruby yarvtest

Author: ko1
Date: 2006-11-04 09:50:33 +0900 (Sat, 04 Nov 2006)
New Revision: 572

Modified:
   trunk/ChangeLog
   trunk/compile.c
   trunk/ext/readline/readline.c
   trunk/keywords
   trunk/lex.c
   trunk/lib/mkmf.rb
   trunk/parse.y
   trunk/test/ruby/test_hash.rb
   trunk/test/ruby/test_string.rb
   trunk/yarvtest/test_bin.rb
Log:
	* compile.c : fix to duplicate "#{'foo'}" string

	* yarvtest/test_bin.rb : add a test for above

	* ext/readline/readline.c : import Ruby HEAD

	* keywords : ditto

	* lex.c : ditto

	* parse.y : ditto

	* lib/mkmf.rb : ditto

	* test/ruby/test_hash.rb : fix to current specification

	* test/ruby/test_string.rb : ditto



Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-11-03 12:00:17 UTC (rev 571)
+++ trunk/ChangeLog	2006-11-04 00:50:33 UTC (rev 572)
@@ -4,6 +4,27 @@
 #  from Mon, 03 May 2004 01:24:19 +0900
 #
 
+2006-11-04(Sat) 09:46:50 +0900  Koichi Sasada  <ko1 atdot.net>
+
+	* compile.c : fix to duplicate "#{'foo'}" string
+
+	* yarvtest/test_bin.rb : add a test for above
+
+	* ext/readline/readline.c : import Ruby HEAD
+
+	* keywords : ditto
+
+	* lex.c : ditto
+
+	* parse.y : ditto
+
+	* lib/mkmf.rb : ditto
+
+	* test/ruby/test_hash.rb : fix to current specification
+
+	* test/ruby/test_string.rb : ditto
+
+
 2006-11-03(Fri) 20:58:36 +0900  Koichi Sasada  <ko1 atdot.net>
 
 	* ext/nkf/nkf-utf8/utf8tbl.h : missed to add

Modified: trunk/compile.c
===================================================================
--- trunk/compile.c	2006-11-03 12:00:17 UTC (rev 571)
+++ trunk/compile.c	2006-11-04 00:50:33 UTC (rev 572)
@@ -1891,26 +1891,18 @@
 {
     NODE *list = node->nd_next;
     VALUE lit = node->nd_lit;
-    int cnt = 0;
-
+    int cnt = 1;
+    
     debugp_param("nd_lit", lit);
-    if (RSTRING_LEN(lit) == 0) {
-	cnt = 0;
-    }
-    else {
-	ADD_INSN1(ret, nd_line(node), putobject, node->nd_lit);
-	cnt = 1;
-    }
+    ADD_INSN1(ret, nd_line(node), putobject, node->nd_lit);
 
     while (list) {
 	COMPILE(ret, "each string", list->nd_head);
 	cnt++;
 	list = list->nd_next;
     }
-    if (cnt > 1) {
-	ADD_INSN1(ret, nd_line(node), concatstrings, INT2FIX(cnt));
-    }
 
+    ADD_INSN1(ret, nd_line(node), concatstrings, INT2FIX(cnt));
     return COMPILE_OK;
 }
 

Modified: trunk/ext/readline/readline.c
===================================================================
--- trunk/ext/readline/readline.c	2006-11-03 12:00:17 UTC (rev 571)
+++ trunk/ext/readline/readline.c	2006-11-04 00:50:33 UTC (rev 572)
@@ -54,10 +54,7 @@
 }
 
 static VALUE
-readline_readline(argc, argv, self)
-    int argc;
-    VALUE *argv;
-    VALUE self;
+readline_readline(int argc, VALUE *argv, VALUE self)
 {
     VALUE tmp, add_hist, result;
     char *prompt = NULL;
@@ -67,7 +64,7 @@
     rb_secure(4);
     if (rb_scan_args(argc, argv, "02", &tmp, &add_hist) > 0) {
 	SafeStringValue(tmp);
-	prompt = RSTRING(tmp)->ptr;
+	prompt = RSTRING_PTR(tmp);
     }
 
     if (!isatty(0) && errno == EBADF) rb_raise(rb_eIOError, "stdin closed");
@@ -80,7 +77,9 @@
         rl_cleanup_after_signal();
 #elif defined HAVE_RL_DEPREP_TERM_FUNCTION
         /* restore terminal mode */
-        (*rl_deprep_term_function)();
+	if (rl_deprep_term_function != NULL) /* NULL in libedit. [ruby-dev:29116] */
+	    (*rl_deprep_term_function)();
+	else
 #else
         rl_deprep_terminal();
 #endif

Modified: trunk/keywords
===================================================================
--- trunk/keywords	2006-11-03 12:00:17 UTC (rev 571)
+++ trunk/keywords	2006-11-04 00:50:33 UTC (rev 572)
@@ -3,45 +3,45 @@
 #ifndef RIPPER
 
 %%
-__LINE__, {k__LINE__, k__LINE__}, EXPR_END
-__FILE__, {k__FILE__, k__FILE__}, EXPR_END
-BEGIN, {klBEGIN, klBEGIN}, EXPR_END
-END, {klEND, klEND}, EXPR_END
-alias, {kALIAS, kALIAS}, EXPR_FNAME
-and, {kAND, kAND}, EXPR_VALUE
-begin, {kBEGIN, kBEGIN}, EXPR_BEG
-break, {kBREAK, kBREAK}, EXPR_MID
-case, {kCASE, kCASE}, EXPR_VALUE
-class, {kCLASS, kCLASS}, EXPR_CLASS
-def, {kDEF, kDEF}, EXPR_FNAME
-defined?, {kDEFINED, kDEFINED}, EXPR_ARG
-do, {kDO, kDO}, EXPR_BEG
-else, {kELSE, kELSE}, EXPR_BEG
-elsif, {kELSIF, kELSIF}, EXPR_VALUE
-end, {kEND, kEND}, EXPR_END
-ensure, {kENSURE, kENSURE}, EXPR_BEG
-false, {kFALSE, kFALSE}, EXPR_END
-for, {kFOR, kFOR}, EXPR_VALUE
-if, {kIF, kIF_MOD}, EXPR_VALUE
-in, {kIN, kIN}, EXPR_VALUE
-module, {kMODULE, kMODULE}, EXPR_VALUE
-next, {kNEXT, kNEXT}, EXPR_MID
-nil, {kNIL, kNIL}, EXPR_END
-not, {kNOT, kNOT}, EXPR_VALUE
-or, {kOR, kOR}, EXPR_VALUE
-redo, {kREDO, kREDO}, EXPR_END
-rescue, {kRESCUE, kRESCUE_MOD}, EXPR_MID
-retry, {kRETRY, kRETRY}, EXPR_END
-return, {kRETURN, kRETURN}, EXPR_MID
-self, {kSELF, kSELF}, EXPR_END
-super, {kSUPER, kSUPER}, EXPR_ARG
-then, {kTHEN, kTHEN}, EXPR_BEG
-true, {kTRUE, kTRUE}, EXPR_END
-undef, {kUNDEF, kUNDEF}, EXPR_FNAME
-unless, {kUNLESS, kUNLESS_MOD}, EXPR_VALUE
-until, {kUNTIL, kUNTIL_MOD}, EXPR_VALUE
-when, {kWHEN, kWHEN}, EXPR_VALUE
-while, {kWHILE, kWHILE_MOD}, EXPR_VALUE
-yield, {kYIELD, kYIELD}, EXPR_ARG
+__LINE__, {keyword__LINE__, keyword__LINE__}, EXPR_END
+__FILE__, {keyword__FILE__, keyword__FILE__}, EXPR_END
+BEGIN, {keyword_BEGIN, keyword_BEGIN}, EXPR_END
+END, {keyword_END, keyword_END}, EXPR_END
+alias, {keyword_alias, keyword_alias}, EXPR_FNAME
+and, {keyword_and, keyword_and}, EXPR_VALUE
+begin, {keyword_begin, keyword_begin}, EXPR_BEG
+break, {keyword_break, keyword_break}, EXPR_MID
+case, {keyword_case, keyword_case}, EXPR_VALUE
+class, {keyword_class, keyword_class}, EXPR_CLASS
+def, {keyword_def, keyword_def}, EXPR_FNAME
+defined?, {keyword_defined, keyword_defined}, EXPR_ARG
+do, {keyword_do, keyword_do}, EXPR_BEG
+else, {keyword_else, keyword_else}, EXPR_BEG
+elsif, {keyword_elsif, keyword_elsif}, EXPR_VALUE
+end, {keyword_end, keyword_end}, EXPR_END
+ensure, {keyword_ensure, keyword_ensure}, EXPR_BEG
+false, {keyword_false, keyword_false}, EXPR_END
+for, {keyword_for, keyword_for}, EXPR_VALUE
+if, {keyword_if, modifier_if}, EXPR_VALUE
+in, {keyword_in, keyword_in}, EXPR_VALUE
+module, {keyword_module, keyword_module}, EXPR_VALUE
+next, {keyword_next, keyword_next}, EXPR_MID
+nil, {keyword_nil, keyword_nil}, EXPR_END
+not, {keyword_not, keyword_not}, EXPR_VALUE
+or, {keyword_or, keyword_or}, EXPR_VALUE
+redo, {keyword_redo, keyword_redo}, EXPR_END
+rescue, {keyword_rescue, modifier_rescue}, EXPR_MID
+retry, {keyword_retry, keyword_retry}, EXPR_END
+return, {keyword_return, keyword_return}, EXPR_MID
+self, {keyword_self, keyword_self}, EXPR_END
+super, {keyword_super, keyword_super}, EXPR_ARG
+then, {keyword_then, keyword_then}, EXPR_BEG
+true, {keyword_true, keyword_true}, EXPR_END
+undef, {keyword_undef, keyword_undef}, EXPR_FNAME
+unless, {keyword_unless, modifier_unless}, EXPR_VALUE
+until, {keyword_until, modifier_until}, EXPR_VALUE
+when, {keyword_when, keyword_when}, EXPR_VALUE
+while, {keyword_while, modifier_while}, EXPR_VALUE
+yield, {keyword_yield, keyword_yield}, EXPR_ARG
 %%
 #endif

Modified: trunk/lex.c
===================================================================
--- trunk/lex.c	2006-11-03 12:00:17 UTC (rev 571)
+++ trunk/lex.c	2006-11-04 00:50:33 UTC (rev 572)
@@ -1,20 +1,44 @@
-/* C code produced by gperf version 2.7.2 */
+/* C code produced by gperf version 3.0.1 */
 /* Command-line: gperf -C -p -j1 -i 1 -g -o -t -N rb_reserved_word -k'1,3,$' keywords  */
-struct kwtable {
-    char *name;
-    int id[2];
-    enum lex_state_e state;
-};
-const struct kwtable *rb_reserved_word(const char *, unsigned int);
+
+#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
+      && ('%' == 37) && ('&' == 38) && ('\'' == 39) && ('(' == 40) \
+      && (')' == 41) && ('*' == 42) && ('+' == 43) && (',' == 44) \
+      && ('-' == 45) && ('.' == 46) && ('/' == 47) && ('0' == 48) \
+      && ('1' == 49) && ('2' == 50) && ('3' == 51) && ('4' == 52) \
+      && ('5' == 53) && ('6' == 54) && ('7' == 55) && ('8' == 56) \
+      && ('9' == 57) && (':' == 58) && (';' == 59) && ('<' == 60) \
+      && ('=' == 61) && ('>' == 62) && ('?' == 63) && ('A' == 65) \
+      && ('B' == 66) && ('C' == 67) && ('D' == 68) && ('E' == 69) \
+      && ('F' == 70) && ('G' == 71) && ('H' == 72) && ('I' == 73) \
+      && ('J' == 74) && ('K' == 75) && ('L' == 76) && ('M' == 77) \
+      && ('N' == 78) && ('O' == 79) && ('P' == 80) && ('Q' == 81) \
+      && ('R' == 82) && ('S' == 83) && ('T' == 84) && ('U' == 85) \
+      && ('V' == 86) && ('W' == 87) && ('X' == 88) && ('Y' == 89) \
+      && ('Z' == 90) && ('[' == 91) && ('\\' == 92) && (']' == 93) \
+      && ('^' == 94) && ('_' == 95) && ('a' == 97) && ('b' == 98) \
+      && ('c' == 99) && ('d' == 100) && ('e' == 101) && ('f' == 102) \
+      && ('g' == 103) && ('h' == 104) && ('i' == 105) && ('j' == 106) \
+      && ('k' == 107) && ('l' == 108) && ('m' == 109) && ('n' == 110) \
+      && ('o' == 111) && ('p' == 112) && ('q' == 113) && ('r' == 114) \
+      && ('s' == 115) && ('t' == 116) && ('u' == 117) && ('v' == 118) \
+      && ('w' == 119) && ('x' == 120) && ('y' == 121) && ('z' == 122) \
+      && ('{' == 123) && ('|' == 124) && ('}' == 125) && ('~' == 126))
+/* The character set is not based on ISO-646.  */
+error "gperf generated tables don't work with this execution character set. Please report a bug to <bug-gnu-gperf gnu.org>."
+#endif
+
+#line 1 "keywords"
+struct kwtable {char *name; int id[2]; enum lex_state_e state;};
+const struct kwtable *rb_reserved_word _((const char *, unsigned int));
 #ifndef RIPPER
-;
 
 #define TOTAL_KEYWORDS 40
 #define MIN_WORD_LENGTH 2
 #define MAX_WORD_LENGTH 8
 #define MIN_HASH_VALUE 6
-#define MAX_HASH_VALUE 55
-/* maximum key range = 50, duplicates = 0 */
+#define MAX_HASH_VALUE 50
+/* maximum key range = 45, duplicates = 0 */
 
 #ifdef __GNUC__
 __inline
@@ -23,45 +47,47 @@
 inline
 #endif
 #endif
-    static unsigned int
-hash(str, len)
+static unsigned int
+hash (str, len)
      register const char *str;
      register unsigned int len;
 {
-    static const unsigned char asso_values[] = {
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 11, 56, 56, 36, 56,  1, 37,
-      31,  1, 56, 56, 56, 56, 29, 56,  1, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56,  1, 56, 32,  1,  2,
-       1,  1,  4, 23, 56, 17, 56, 20,  9,  2,
-       9, 26, 14, 56,  5,  1,  1, 16, 56, 21,
-      20,  9, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56, 56, 56, 56, 56,
-      56, 56, 56, 56, 56, 56
+  static const unsigned char asso_values[] =
+    {
+      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, 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, 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,
+       5, 19, 21, 51,  8,  3,  3, 11, 51, 21,
+      24, 16, 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, 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, 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, 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, 51, 51
     };
   register int hval = len;
 
-    switch (hval) {
+  switch (hval)
+    {
       default:
-      case 3:
         hval += asso_values[(unsigned char)str[2]];
+      /*FALLTHROUGH*/
       case 2:
       case 1:
         hval += asso_values[(unsigned char)str[0]];
@@ -74,66 +100,112 @@
 __inline
 #endif
 const struct kwtable *
-rb_reserved_word(str, len)
+rb_reserved_word (str, len)
      register const char *str;
      register unsigned int len;
 {
-    static const struct kwtable wordlist[] = {
+  static const struct kwtable wordlist[] =
+    {
       {""}, {""}, {""}, {""}, {""}, {""},
-      {"end", {kEND, kEND}, EXPR_END},
-      {"else", {kELSE, kELSE}, EXPR_BEG},
-      {"case", {kCASE, kCASE}, EXPR_VALUE},
-      {"ensure", {kENSURE, kENSURE}, EXPR_BEG},
-      {"module", {kMODULE, kMODULE}, EXPR_VALUE},
-      {"elsif", {kELSIF, kELSIF}, EXPR_VALUE},
-      {"def", {kDEF, kDEF}, EXPR_FNAME},
-      {"rescue", {kRESCUE, kRESCUE_MOD}, EXPR_MID},
-      {"not", {kNOT, kNOT}, EXPR_VALUE},
-      {"then", {kTHEN, kTHEN}, EXPR_BEG},
-      {"yield", {kYIELD, kYIELD}, EXPR_ARG},
-      {"for", {kFOR, kFOR}, EXPR_VALUE},
-      {"self", {kSELF, kSELF}, EXPR_END},
-      {"false", {kFALSE, kFALSE}, EXPR_END},
-      {"retry", {kRETRY, kRETRY}, EXPR_END},
-      {"return", {kRETURN, kRETURN}, EXPR_MID},
-      {"true", {kTRUE, kTRUE}, EXPR_END},
-      {"if", {kIF, kIF_MOD}, EXPR_VALUE},
-      {"defined?", {kDEFINED, kDEFINED}, EXPR_ARG},
-      {"super", {kSUPER, kSUPER}, EXPR_ARG},
-      {"undef", {kUNDEF, kUNDEF}, EXPR_FNAME},
-      {"break", {kBREAK, kBREAK}, EXPR_MID},
-      {"in", {kIN, kIN}, EXPR_VALUE},
-      {"do", {kDO, kDO}, EXPR_BEG},
-      {"nil", {kNIL, kNIL}, EXPR_END},
-      {"until", {kUNTIL, kUNTIL_MOD}, EXPR_VALUE},
-      {"unless", {kUNLESS, kUNLESS_MOD}, EXPR_VALUE},
-      {"or", {kOR, kOR}, EXPR_VALUE},
-      {"next", {kNEXT, kNEXT}, EXPR_MID},
-      {"when", {kWHEN, kWHEN}, EXPR_VALUE},
-      {"redo", {kREDO, kREDO}, EXPR_END},
-      {"and", {kAND, kAND}, EXPR_VALUE},
-      {"begin", {kBEGIN, kBEGIN}, EXPR_BEG},
-      {"__LINE__", {k__LINE__, k__LINE__}, EXPR_END},
-      {"class", {kCLASS, kCLASS}, EXPR_CLASS},
-      {"__FILE__", {k__FILE__, k__FILE__}, EXPR_END},
-      {"END", {klEND, klEND}, EXPR_END},
-      {"BEGIN", {klBEGIN, klBEGIN}, EXPR_END},
-      {"while", {kWHILE, kWHILE_MOD}, EXPR_VALUE},
-      {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""}, {""},
+#line 9 "keywords"
+      {"END", {keyword_END, keyword_END}, EXPR_END},
       {""},
-      {"alias", {kALIAS, kALIAS}, EXPR_FNAME}
+#line 13 "keywords"
+      {"break", {keyword_break, keyword_break}, EXPR_MID},
+#line 19 "keywords"
+      {"else", {keyword_else, keyword_else}, EXPR_BEG},
+#line 29 "keywords"
+      {"nil", {keyword_nil, keyword_nil}, EXPR_END},
+#line 22 "keywords"
+      {"ensure", {keyword_ensure, keyword_ensure}, EXPR_BEG},
+#line 21 "keywords"
+      {"end", {keyword_end, keyword_end}, EXPR_END},
+#line 38 "keywords"
+      {"then", {keyword_then, keyword_then}, EXPR_BEG},
+#line 30 "keywords"
+      {"not", {keyword_not, keyword_not}, EXPR_VALUE},
+#line 23 "keywords"
+      {"false", {keyword_false, keyword_false}, EXPR_END},
+#line 36 "keywords"
+      {"self", {keyword_self, keyword_self}, EXPR_END},
+#line 20 "keywords"
+      {"elsif", {keyword_elsif, keyword_elsif}, EXPR_VALUE},
+#line 33 "keywords"
+      {"rescue", {keyword_rescue, modifier_rescue}, EXPR_MID},
+#line 39 "keywords"
+      {"true", {keyword_true, keyword_true}, EXPR_END},
+#line 42 "keywords"
+      {"until", {keyword_until, modifier_until}, EXPR_VALUE},
+#line 41 "keywords"
+      {"unless", {keyword_unless, modifier_unless}, EXPR_VALUE},
+#line 35 "keywords"
+      {"return", {keyword_return, keyword_return}, EXPR_MID},
+#line 16 "keywords"
+      {"def", {keyword_def, keyword_def}, EXPR_FNAME},
+#line 11 "keywords"
+      {"and", {keyword_and, keyword_and}, EXPR_VALUE},
+#line 18 "keywords"
+      {"do", {keyword_do, keyword_do}, EXPR_BEG},
+#line 45 "keywords"
+      {"yield", {keyword_yield, keyword_yield}, EXPR_ARG},
+#line 24 "keywords"
+      {"for", {keyword_for, keyword_for}, EXPR_VALUE},
+#line 40 "keywords"
+      {"undef", {keyword_undef, keyword_undef}, EXPR_FNAME},
+#line 31 "keywords"
+      {"or", {keyword_or, keyword_or}, EXPR_VALUE},
+#line 26 "keywords"
+      {"in", {keyword_in, keyword_in}, EXPR_VALUE},
+#line 43 "keywords"
+      {"when", {keyword_when, keyword_when}, EXPR_VALUE},
+#line 34 "keywords"
+      {"retry", {keyword_retry, keyword_retry}, EXPR_END},
+#line 25 "keywords"
+      {"if", {keyword_if, modifier_if}, EXPR_VALUE},
+#line 14 "keywords"
+      {"case", {keyword_case, keyword_case}, EXPR_VALUE},
+#line 32 "keywords"
+      {"redo", {keyword_redo, keyword_redo}, EXPR_END},
+#line 28 "keywords"
+      {"next", {keyword_next, keyword_next}, EXPR_MID},
+#line 37 "keywords"
+      {"super", {keyword_super, keyword_super}, EXPR_ARG},
+#line 27 "keywords"
+      {"module", {keyword_module, keyword_module}, EXPR_VALUE},
+#line 12 "keywords"
+      {"begin", {keyword_begin, keyword_begin}, EXPR_BEG},
+#line 6 "keywords"
+      {"__LINE__", {keyword__LINE__, keyword__LINE__}, EXPR_END},
+#line 7 "keywords"
+      {"__FILE__", {keyword__FILE__, keyword__FILE__}, EXPR_END},
+#line 8 "keywords"
+      {"BEGIN", {keyword_BEGIN, keyword_BEGIN}, EXPR_END},
+#line 17 "keywords"
+      {"defined?", {keyword_defined, keyword_defined}, EXPR_ARG},
+#line 10 "keywords"
+      {"alias", {keyword_alias, keyword_alias}, EXPR_FNAME},
+      {""}, {""},
+#line 15 "keywords"
+      {"class", {keyword_class, keyword_class}, EXPR_CLASS},
+      {""}, {""},
+#line 44 "keywords"
+      {"while", {keyword_while, modifier_while}, EXPR_VALUE}
     };
 
-    if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH) {
-	register int key = hash(str, len);
+  if (len <= MAX_WORD_LENGTH && len >= MIN_WORD_LENGTH)
+    {
+      register int key = hash (str, len);
 
-	if (key <= MAX_HASH_VALUE && key >= 0) {
+      if (key <= MAX_HASH_VALUE && key >= 0)
+        {
           register const char *s = wordlist[key].name;
 
-	    if (*str == *s && !strcmp(str + 1, s + 1))
+          if (*str == *s && !strcmp (str + 1, s + 1))
             return &wordlist[key];
         }
     }
   return 0;
 }
+#line 46 "keywords"
+
 #endif

Modified: trunk/lib/mkmf.rb
===================================================================
--- trunk/lib/mkmf.rb	2006-11-03 12:00:17 UTC (rev 571)
+++ trunk/lib/mkmf.rb	2006-11-04 00:50:33 UTC (rev 572)
@@ -536,7 +536,7 @@
 end
 
 def checking_for(m, fmt = nil)
-  f = caller[0][/in `(.*)'$/, 1] and f << ": " #` for vim
+  f = caller[0][/in `(.*)'$/, 1] and f << ": " #` for vim #'
   m = "checking #{/\Acheck/ =~ f ? '' : 'for '}#{m}... "
   message "%s", m
   a = r = nil

Modified: trunk/parse.y
===================================================================
--- trunk/parse.y	2006-11-03 12:00:17 UTC (rev 571)
+++ trunk/parse.y	2006-11-04 00:50:33 UTC (rev 572)
@@ -559,54 +559,54 @@
 /*%
 %token <val>
 %*/
-        kCLASS
-	kMODULE
-	kDEF
-	kUNDEF
-	kBEGIN
-	kRESCUE
-	kENSURE
-	kEND
-	kIF
-	kUNLESS
-	kTHEN
-	kELSIF
-	kELSE
-	kCASE
-	kWHEN
-	kWHILE
-	kUNTIL
-	kFOR
-	kBREAK
-	kNEXT
-	kREDO
-	kRETRY
-	kIN
-	kDO
-	kDO_COND
-	kDO_BLOCK
-	kDO_LAMBDA
-	kRETURN
-	kYIELD
-	kSUPER
-	kSELF
-	kNIL
-	kTRUE
-	kFALSE
-	kAND
-	kOR
-	kNOT
-	kIF_MOD
-	kUNLESS_MOD
-	kWHILE_MOD
-	kUNTIL_MOD
-	kRESCUE_MOD
-	kALIAS
-	kDEFINED
-	klBEGIN
-	klEND
-	k__LINE__
-	k__FILE__
+        keyword_class
+	keyword_module
+	keyword_def
+	keyword_undef
+	keyword_begin
+	keyword_rescue
+	keyword_ensure
+	keyword_end
+	keyword_if
+	keyword_unless
+	keyword_then
+	keyword_elsif
+	keyword_else
+	keyword_case
+	keyword_when
+	keyword_while
+	keyword_until
+	keyword_for
+	keyword_break
+	keyword_next
+	keyword_redo
+	keyword_retry
+	keyword_in
+	keyword_do
+	keyword_do_cond
+	keyword_do_block
+	keyword_do_LAMBDA
+	keyword_return
+	keyword_yield
+	keyword_super
+	keyword_self
+	keyword_nil
+	keyword_true
+	keyword_false
+	keyword_and
+	keyword_or
+	keyword_not
+	modifier_if
+	modifier_unless
+	modifier_while
+	modifier_until
+	modifier_rescue
+	keyword_alias
+	keyword_defined
+	keyword_BEGIN
+	keyword_END
+	keyword__LINE__
+	keyword__FILE__
 
 %token <id>   tIDENTIFIER tFID tGVAR tIVAR tCONSTANT tCVAR tLABEL
 %token <node> tINTEGER tFLOAT tSTRING_CONTENT tCHAR
@@ -674,12 +674,12 @@
 %nonassoc tLOWEST
 %nonassoc tLBRACE_ARG
 
-%nonassoc  kIF_MOD kUNLESS_MOD kWHILE_MOD kUNTIL_MOD
-%left  kOR kAND
-%right kNOT
-%nonassoc kDEFINED
+%nonassoc  modifier_if modifier_unless modifier_while modifier_until
+%left  keyword_or keyword_and
+%right keyword_not
+%nonassoc keyword_defined
 %right '=' tOP_ASGN
-%left kRESCUE_MOD
+%left modifier_rescue
 %right '?' ':'
 %nonassoc tDOT2 tDOT3
 %left  tOROP
@@ -804,7 +804,7 @@
 		    }
 		;
 
-stmt		: kALIAS fitem {lex_state = EXPR_FNAME;} fitem
+stmt		: keyword_alias fitem {lex_state = EXPR_FNAME;} fitem
 		    {
 		    /*%%%*/
 		        $$ = NEW_ALIAS($2, $4);
@@ -812,7 +812,7 @@
 			$$ = dispatch2(alias, $2, $4);
 		    %*/
 		    }
-		| kALIAS tGVAR tGVAR
+		| keyword_alias tGVAR tGVAR
 		    {
 		    /*%%%*/
 		        $$ = NEW_VALIAS($2, $3);
@@ -820,7 +820,7 @@
 			$$ = dispatch2(var_alias, $2, $3);
 		    %*/
 		    }
-		| kALIAS tGVAR tBACK_REF
+		| keyword_alias tGVAR tBACK_REF
 		    {
 		    /*%%%*/
 			char buf[3];
@@ -831,7 +831,7 @@
 			$$ = dispatch2(var_alias, $2, $3);
 		    %*/
 		    }
-		| kALIAS tGVAR tNTH_REF
+		| keyword_alias tGVAR tNTH_REF
 		    {
 		    /*%%%*/
 		        yyerror("can't make alias for the number variables");
@@ -841,7 +841,7 @@
 			$$ = dispatch1(alias_error, $$);
 		    %*/
 		    }
-		| kUNDEF undef_list
+		| keyword_undef undef_list
 		    {
 		    /*%%%*/
 			$$ = $2;
@@ -849,7 +849,7 @@
 			$$ = dispatch1(undef, $2);
 		    %*/
 		    }
-		| stmt kIF_MOD expr_value
+		| stmt modifier_if expr_value
 		    {
 		    /*%%%*/
 			$$ = NEW_IF(cond($3), $1, 0);
@@ -862,7 +862,7 @@
 			$$ = dispatch2(if_mod, $3, $1);
 		    %*/
 		    }
-		| stmt kUNLESS_MOD expr_value
+		| stmt modifier_unless expr_value
 		    {
 		    /*%%%*/
 			$$ = NEW_UNLESS(cond($3), $1, 0);
@@ -875,7 +875,7 @@
 		    	$$ = dispatch2(unless_mod, $3, $1);
 		    %*/
 		    }
-		| stmt kWHILE_MOD expr_value
+		| stmt modifier_while expr_value
 		    {
 		    /*%%%*/
 			if ($1 && nd_type($1) == NODE_BEGIN) {
@@ -891,7 +891,7 @@
 			$$ = dispatch2(while_mod, $3, $1);
 		    %*/
 		    }
-		| stmt kUNTIL_MOD expr_value
+		| stmt modifier_until expr_value
 		    {
 		    /*%%%*/
 			if ($1 && nd_type($1) == NODE_BEGIN) {
@@ -907,7 +907,7 @@
 			$$ = dispatch2(until_mod, $3, $1);
 		    %*/
 		    }
-		| stmt kRESCUE_MOD stmt
+		| stmt modifier_rescue stmt
 		    {
 		    /*%%%*/
 			$$ = NEW_RESCUE($1, NEW_RESBODY(0,$3,0), 0);
@@ -915,7 +915,7 @@
 			$$ = dispatch2(rescue_mod, $3, $1);
 		    %*/
 		    }
-		| klBEGIN
+		| keyword_BEGIN
 		    {
 		    /*%%%*/
 			if (in_def || in_single) {
@@ -940,7 +940,7 @@
 			$$ = dispatch1(BEGIN, $4);
 		    %*/
 		    }
-		| klEND '{' compstmt '}'
+		| keyword_END '{' compstmt '}'
 		    {
 		    /*%%%*/
 			if (in_def || in_single) {
@@ -1117,7 +1117,7 @@
 		;
 
 expr		: command_call
-		| expr kAND expr
+		| expr keyword_and expr
 		    {
 		    /*%%%*/
 			$$ = logop(NODE_AND, $1, $3);
@@ -1125,7 +1125,7 @@
 		    	$$ = dispatch3(binary, $1, ripper_intern("and"), $3);
 		    %*/
 		    }
-		| expr kOR expr
+		| expr keyword_or expr
 		    {
 		    /*%%%*/
 			$$ = logop(NODE_OR, $1, $3);
@@ -1133,7 +1133,7 @@
 		    	$$ = dispatch3(binary, $1, ripper_intern("or"), $3);
 		    %*/
 		    }
-		| kNOT expr
+		| keyword_not expr
 		    {
 		    /*%%%*/
 			$$ = NEW_NOT(cond($2));
@@ -1165,7 +1165,7 @@
 
 command_call	: command
 		| block_command
-		| kRETURN call_args
+		| keyword_return call_args
 		    {
 		    /*%%%*/
 			$$ = NEW_RETURN(ret_args($2));
@@ -1173,7 +1173,7 @@
 		    	$$ = dispatch1(return, $2);
 		    %*/
 		    }
-		| kBREAK call_args
+		| keyword_break call_args
 		    {
 		    /*%%%*/
 			$$ = NEW_BREAK(ret_args($2));
@@ -1181,7 +1181,7 @@
 		    	$$ = dispatch1(break, $2);
 		    %*/
 		    }
-		| kNEXT call_args
+		| keyword_next call_args
 		    {
 		    /*%%%*/
 			$$ = NEW_NEXT(ret_args($2));
@@ -1308,7 +1308,7 @@
                         $$ = dispatch2(iter_block, $$, $5);
 		    %*/
 		   }
-		| kSUPER command_args
+		| keyword_super command_args
 		    {
 		    /*%%%*/
 			$$ = new_super($2);
@@ -1317,7 +1317,7 @@
 			$$ = dispatch1(super, $2);
 		    %*/
 		    }
-		| kYIELD command_args
+		| keyword_yield command_args
 		    {
 		    /*%%%*/
 			$$ = new_yield($2);
@@ -1703,13 +1703,13 @@
 		| '`'		{ ifndef_ripper($$ = '`'); }
 		;
 
-reswords	: k__LINE__ | k__FILE__  | klBEGIN | klEND
-		| kALIAS | kAND | kBEGIN | kBREAK | kCASE | kCLASS | kDEF
-		| kDEFINED | kDO | kELSE | kELSIF | kEND | kENSURE | kFALSE
-		| kFOR | kIN | kMODULE | kNEXT | kNIL | kNOT
-		| kOR | kREDO | kRESCUE | kRETRY | kRETURN | kSELF | kSUPER
-		| kTHEN | kTRUE | kUNDEF | kWHEN | kYIELD
-		| kIF_MOD | kUNLESS_MOD | kWHILE_MOD | kUNTIL_MOD | kRESCUE_MOD
+reswords	: keyword__LINE__ | keyword__FILE__ | 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 | keyword_end | keyword_ensure | keyword_false
+		| keyword_for | keyword_in | keyword_module | keyword_next | keyword_nil | keyword_not
+		| keyword_or | keyword_redo | keyword_rescue | keyword_retry | keyword_return | keyword_self | keyword_super
+		| keyword_then | keyword_true | keyword_undef | keyword_when | keyword_yield
+		| modifier_if | modifier_unless | modifier_while | modifier_until | modifier_rescue
 		;
 
 arg		: lhs '=' arg
@@ -1720,7 +1720,7 @@
 		    	$$ = dispatch2(assign, $1, $3);
 		    %*/
 		    }
-		| lhs '=' arg kRESCUE_MOD arg
+		| lhs '=' arg modifier_rescue arg
 		    {
 		    /*%%%*/
 			$$ = node_assign($1, NEW_RESCUE($3, NEW_RESBODY(0,$5,0), 0));
@@ -2138,7 +2138,7 @@
 			$$ = dispatch3(binary, $1, ripper_intern("||"), $3);
 		    %*/
 		    }
-		| kDEFINED opt_nl {in_defined = 1;} arg
+		| keyword_defined opt_nl {in_defined = 1;} arg
 		    {
 		    /*%%%*/
 		        in_defined = 0;
@@ -2561,7 +2561,7 @@
 			$$ = method_arg(dispatch1(fcall, $1), arg_new());
 		    %*/
 		    }
-		| kBEGIN
+		| keyword_begin
 		    {
 		    /*%%%*/
 			$<num>1 = ruby_sourceline;
@@ -2569,7 +2569,7 @@
 		    %*/
 		    }
 		  bodystmt
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 			if ($3 == NULL) {
@@ -2641,7 +2641,7 @@
 			$$ = dispatch1(hash, escape_Qundef($2));
 		    %*/
 		    }
-		| kRETURN
+		| keyword_return
 		    {
 		    /*%%%*/
 			$$ = NEW_RETURN(0);
@@ -2649,7 +2649,7 @@
 			$$ = dispatch0(return0);
 		    %*/
 		    }
-		| kYIELD '(' call_args rparen
+		| keyword_yield '(' call_args rparen
 		    {
 		    /*%%%*/
 			$$ = new_yield($3);
@@ -2657,7 +2657,7 @@
 			$$ = dispatch1(yield, dispatch1(paren, $3));
 		    %*/
 		    }
-		| kYIELD '(' rparen
+		| keyword_yield '(' rparen
 		    {
 		    /*%%%*/
 			$$ = NEW_YIELD(0, Qfalse);
@@ -2665,7 +2665,7 @@
 			$$ = dispatch1(yield, dispatch1(paren, arg_new()));
 		    %*/
 		    }
-		| kYIELD
+		| keyword_yield
 		    {
 		    /*%%%*/
 			$$ = NEW_YIELD(0, Qfalse);
@@ -2673,7 +2673,7 @@
 			$$ = dispatch0(yield0);
 		    %*/
 		    }
-		| kDEFINED opt_nl '(' {in_defined = 1;} expr rparen
+		| keyword_defined opt_nl '(' {in_defined = 1;} expr rparen
 		    {
 		    /*%%%*/
 		        in_defined = 0;
@@ -2710,10 +2710,10 @@
 		    {
 			$$ = $2;
 		    }
-		| kIF expr_value then
+		| keyword_if expr_value then
 		  compstmt
 		  if_tail
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 			$$ = NEW_IF(cond($2), $4, $5);
@@ -2727,10 +2727,10 @@
 			$$ = dispatch3(if, $2, $4, escape_Qundef($5));
 		    %*/
 		    }
-		| kUNLESS expr_value then
+		| keyword_unless expr_value then
 		  compstmt
 		  opt_else
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 			$$ = NEW_UNLESS(cond($2), $4, $5);
@@ -2744,9 +2744,9 @@
 			$$ = dispatch3(unless, $2, $4, escape_Qundef($5));
 		    %*/
 		    }
-		| kWHILE {COND_PUSH(1);} expr_value do {COND_POP();}
+		| keyword_while {COND_PUSH(1);} expr_value do {COND_POP();}
 		  compstmt
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 			$$ = NEW_WHILE(cond($3), $6, 1);
@@ -2758,9 +2758,9 @@
 			$$ = dispatch2(while, $3, $6);
 		    %*/
 		    }
-		| kUNTIL {COND_PUSH(1);} expr_value do {COND_POP();}
+		| keyword_until {COND_PUSH(1);} expr_value do {COND_POP();}
 		  compstmt
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 			$$ = NEW_UNTIL(cond($3), $6, 1);
@@ -2772,9 +2772,9 @@
 			$$ = dispatch2(until, $3, $6);
 		    %*/
 		    }
-		| kCASE expr_value opt_terms
+		| keyword_case expr_value opt_terms
 		  case_body
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 			$$ = NEW_CASE($2, $4);
@@ -2783,7 +2783,7 @@
 			$$ = dispatch2(case, $2, $4);
 		    %*/
 		    }
-		| kCASE expr_value opt_terms kELSE compstmt kEND
+		| keyword_case expr_value opt_terms keyword_else compstmt keyword_end
 		    {
 		    /*%%%*/
 			$$ = block_append($2, $5);
@@ -2791,7 +2791,7 @@
 		    	$$ = dispatch2(case, $2, dispatch1(else, $5));
 		    %*/
 		    }
-		| kCASE opt_terms case_body kEND
+		| keyword_case opt_terms case_body keyword_end
 		    {
 		    /*%%%*/
 			$$ = $3;
@@ -2799,7 +2799,7 @@
 			$$ = dispatch2(case, Qnil, $3);
 		    %*/
 		    }
-		| kCASE opt_terms kELSE compstmt kEND
+		| keyword_case opt_terms keyword_else compstmt keyword_end
 		    {
 		    /*%%%*/
 			$$ = $4;
@@ -2807,9 +2807,9 @@
 			$$ = dispatch2(case, Qnil, dispatch1(else, $4));
 		    %*/
 		    }
-		| kFOR for_var kIN {COND_PUSH(1);} expr_value do {COND_POP();}
+		| keyword_for for_var keyword_in {COND_PUSH(1);} expr_value do {COND_POP();}
 		  compstmt
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 			$$ = NEW_FOR($2, $5, $8);
@@ -2818,7 +2818,7 @@
 			$$ = dispatch3(for, $2, $5, $8);
 		    %*/
 		    }
-		| kCLASS cpath superclass
+		| keyword_class cpath superclass
 		    {
 		    /*%%%*/
 			if (in_def || in_single)
@@ -2831,7 +2831,7 @@
 		    %*/
 		    }
 		  bodystmt
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 		        $$ = NEW_CLASS($2, $5, $3);
@@ -2841,7 +2841,7 @@
 			$$ = dispatch3(class, $2, $3, $5);
 		    %*/
 		    }
-		| kCLASS tLSHFT expr
+		| keyword_class tLSHFT expr
 		    {
 		    /*%%%*/
 			$<num>$ = in_def;
@@ -2862,7 +2862,7 @@
 		    %*/
 		    }
 		  bodystmt
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 		        $$ = NEW_SCLASS($3, $7);
@@ -2876,7 +2876,7 @@
 		        in_single = $<val>6;
 		    %*/
 		    }
-		| kMODULE cpath
+		| keyword_module cpath
 		    {
 		    /*%%%*/
 			if (in_def || in_single)
@@ -2889,7 +2889,7 @@
 		    %*/
 		    }
 		  bodystmt
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 		        $$ = NEW_MODULE($2, $4);
@@ -2899,7 +2899,7 @@
 			$$ = dispatch2(module, $2, $4);
 		    %*/
 		    }
-		| kDEF fname
+		| keyword_def fname
 		    {
 		    /*%%%*/
 			$<id>$ = cur_mid;
@@ -2914,7 +2914,7 @@
 		    }
 		  f_arglist
 		  bodystmt
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 			NODE *body = remove_begin($5);
@@ -2930,7 +2930,7 @@
 			cur_mid = $<id>3;
 		    %*/
 		    }
-		| kDEF singleton dot_or_colon {lex_state = EXPR_FNAME;} fname
+		| keyword_def singleton dot_or_colon {lex_state = EXPR_FNAME;} fname
 		    {
 		    /*%%%*/
 			in_single++;
@@ -2943,7 +2943,7 @@
 		    }
 		  f_arglist
 		  bodystmt
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 			NODE *body = remove_begin($8);
@@ -2957,7 +2957,7 @@
 			in_single--;
 		    %*/
 		    }
-		| kBREAK
+		| keyword_break
 		    {
 		    /*%%%*/
 			$$ = NEW_BREAK(0);
@@ -2965,7 +2965,7 @@
 			$$ = dispatch1(break, arg_new());
 		    %*/
 		    }
-		| kNEXT
+		| keyword_next
 		    {
 		    /*%%%*/
 			$$ = NEW_NEXT(0);
@@ -2973,7 +2973,7 @@
 			$$ = dispatch1(next, arg_new());
 		    %*/
 		    }
-		| kREDO
+		| keyword_redo
 		    {
 		    /*%%%*/
 			$$ = NEW_REDO();
@@ -2981,7 +2981,7 @@
 			$$ = dispatch0(redo);
 		    %*/
 		    }
-		| kRETRY
+		| keyword_retry
 		    {
 		    /*%%%*/
 			$$ = NEW_RETRY();
@@ -3012,8 +3012,8 @@
 		    /*%c
 		    { $$ = Qnil; }
 		    %*/
-		| kTHEN
-		| term kTHEN
+		| keyword_then
+		| term keyword_then
 		    /*%c%*/
 		    /*%c
 		    { $$ = $2; }
@@ -3030,11 +3030,11 @@
 		    /*%c
 		    { $$ = Qnil; }
 		    %*/
-		| kDO_COND
+		| keyword_do_cond
 		;
 
 if_tail		: opt_else
-		| kELSIF expr_value then
+		| keyword_elsif expr_value then
 		  compstmt
 		  if_tail
 		    {
@@ -3048,7 +3048,7 @@
 		;
 
 opt_else	: none
-		| kELSE compstmt
+		| keyword_else compstmt
 		    {
 		    /*%%%*/
 			$$ = $2;
@@ -3313,13 +3313,13 @@
 		    {
 			$$ = $2;
 		    }
-		| kDO_LAMBDA compstmt kEND
+		| keyword_do_LAMBDA compstmt keyword_end
 		    {
 			$$ = $2;
 		    }
 		;
 
-do_block	: kDO_BLOCK
+do_block	: keyword_do_block
 		    {
 		    /*%%%*/
 			$<num>$ = dyna_push();
@@ -3333,7 +3333,7 @@
 		    /*% %*/
 		    }
 		  compstmt
-		  kEND
+		  keyword_end
 		    {
 		    /*%%%*/
 			$3->nd_body = block_append($3->nd_body,
@@ -3415,7 +3415,7 @@
 			$$ = dispatch3(call, $1, ripper_intern("::"), $3);
 		    %*/
 		    }
-		| kSUPER paren_args
+		| keyword_super paren_args
 		    {
 		    /*%%%*/
 			$$ = new_super($2);
@@ -3423,7 +3423,7 @@
 			$$ = dispatch1(super, $2);
 		    %*/
 		    }
-		| kSUPER
+		| keyword_super
 		    {
 		    /*%%%*/
 			$$ = NEW_ZSUPER();
@@ -3483,7 +3483,7 @@
 			$$ = dispatch2(brace_block, escape_Qundef($3), $5);
 		    %*/
 		    }
-		| kDO
+		| keyword_do
 		    {
 		    /*%%%*/
 			$<num>$ = dyna_push();
@@ -3497,7 +3497,7 @@
 		    /*%
 		    %*/
 		    }
-		  compstmt kEND
+		  compstmt keyword_end
 		    {
 		    /*%%%*/
 			$3->nd_body = block_append($3->nd_body,
@@ -3521,7 +3521,7 @@
 		    }
 		;
 
-case_body	: kWHEN when_args then
+case_body	: keyword_when when_args then
 		  compstmt
 		  cases
 		    {
@@ -3555,7 +3555,7 @@
 		| case_body
 		;
 
-opt_rescue	: kRESCUE exc_list exc_var then
+opt_rescue	: keyword_rescue exc_list exc_var then
 		  compstmt
 		  opt_rescue
 		    {
@@ -3596,7 +3596,7 @@
 		| none
 		;
 
-opt_ensure	: kENSURE compstmt
+opt_ensure	: keyword_ensure compstmt
 		    {
 		    /*%%%*/
 			$$ = $2;
@@ -3980,12 +3980,12 @@
 		| tGVAR
 		| tCONSTANT
 		| tCVAR
-		| kNIL {ifndef_ripper($$ = kNIL);}
-		| kSELF {ifndef_ripper($$ = kSELF);}
-		| kTRUE {ifndef_ripper($$ = kTRUE);}
-		| kFALSE {ifndef_ripper($$ = kFALSE);}
-		| k__FILE__ {ifndef_ripper($$ = k__FILE__);}
-		| k__LINE__ {ifndef_ripper($$ = k__LINE__);}
+		| keyword_nil {ifndef_ripper($$ = keyword_nil);}
+		| keyword_self {ifndef_ripper($$ = keyword_self);}
+		| keyword_true {ifndef_ripper($$ = keyword_true);}
+		| keyword_false {ifndef_ripper($$ = keyword_false);}
+		| keyword__FILE__ {ifndef_ripper($$ = keyword__FILE__);}
+		| keyword__LINE__ {ifndef_ripper($$ = keyword__LINE__);}
 		;
 
 var_ref		: variable
@@ -6439,7 +6439,7 @@
       case ';':
 	if (lex_state != EXPR_END2 && peek(';')) {
 	    lex_state = EXPR_END2;
-	    return kEND;
+	    return keyword_end;
 	}
 	lex_state = EXPR_BEG;
 	command_start = Qtrue;
@@ -6844,18 +6844,18 @@
 		    if (state == EXPR_FNAME) {
                         set_yylval_id(rb_intern(kw->name));
 		    }
-		    if (kw->id[0] == kDO) {
+		    if (kw->id[0] == keyword_do) {
 			if (lpar_beg && lpar_beg == paren_nest) {
 			    lpar_beg = 0;
 			    --paren_nest;
-			    return kDO_LAMBDA;
+			    return keyword_do_LAMBDA;
 			}
-			if (COND_P()) return kDO_COND;
+			if (COND_P()) return keyword_do_cond;
 			if (CMDARG_P() && state != EXPR_CMDARG)
-			    return kDO_BLOCK;
+			    return keyword_do_block;
 			if (state == EXPR_ENDARG || state == EXPR_BEG)
-			    return kDO_BLOCK;
-			return kDO;
+			    return keyword_do_block;
+			return keyword_do;
 		    }
 		    if (state == EXPR_BEG || state == EXPR_VALUE)
 			return kw->id[0];
@@ -7221,22 +7221,22 @@
 static NODE*
 gettable_gen(struct parser_params *parser, ID id)
 {
-    if (id == kSELF) {
+    if (id == keyword_self) {
 	return NEW_SELF();
     }
-    else if (id == kNIL) {
+    else if (id == keyword_nil) {
 	return NEW_NIL();
     }
-    else if (id == kTRUE) {
+    else if (id == keyword_true) {
 	return NEW_TRUE();
     }
-    else if (id == kFALSE) {
+    else if (id == keyword_false) {
 	return NEW_FALSE();
     }
-    else if (id == k__FILE__) {
+    else if (id == keyword__FILE__) {
 	return NEW_STR(rb_str_new2(ruby_sourcefile));
     }
-    else if (id == k__LINE__) {
+    else if (id == keyword__LINE__) {
 	return NEW_LIT(INT2FIX(ruby_sourceline));
     }
     else if (is_local_id(id)) {
@@ -7266,22 +7266,22 @@
 assignable_gen(struct parser_params *parser, ID id, NODE *val)
 {
     value_expr(val);
-    if (id == kSELF) {
+    if (id == keyword_self) {
 	yyerror("Can't change the value of self");
     }
-    else if (id == kNIL) {
+    else if (id == keyword_nil) {
 	yyerror("Can't assign to nil");
     }
-    else if (id == kTRUE) {
+    else if (id == keyword_true) {
 	yyerror("Can't assign to true");
     }
-    else if (id == kFALSE) {
+    else if (id == keyword_false) {
 	yyerror("Can't assign to false");
     }
-    else if (id == k__FILE__) {
+    else if (id == keyword__FILE__) {
 	yyerror("Can't assign to __FILE__");
     }
-    else if (id == k__LINE__) {
+    else if (id == keyword__LINE__) {
 	yyerror("Can't assign to __LINE__");
     }
     else if (is_local_id(id)) {
@@ -8969,53 +8969,53 @@
     ID id;
     const char *name;
 } keyword_to_name[] = {
-    {kCLASS,	"class"},
-    {kMODULE,	"module"},
-    {kDEF,	"def"},
-    {kUNDEF,	"undef"},
-    {kBEGIN,	"begin"},
-    {kRESCUE,	"rescue"},
-    {kENSURE,	"ensure"},
-    {kEND,	"end"},
-    {kIF,	"if"},
-    {kUNLESS,	"unless"},
-    {kTHEN,	"then"},
-    {kELSIF,	"elsif"},
-    {kELSE,	"else"},
-    {kCASE,	"case"},
-    {kWHEN,	"when"},
-    {kWHILE,	"while"},
-    {kUNTIL,	"until"},
-    {kFOR,	"for"},
-    {kBREAK,	"break"},
-    {kNEXT,	"next"},
-    {kREDO,	"redo"},
-    {kRETRY,	"retry"},
-    {kIN,	"in"},
-    {kDO,	"do"},
-    {kDO_COND,	"do"},
-    {kDO_BLOCK,	"do"},
-    {kRETURN,	"return"},
-    {kYIELD,	"yield"},
-    {kSUPER,	"super"},
-    {kSELF,	"self"},
-    {kNIL,	"nil"},
-    {kTRUE,	"true"},
-    {kFALSE,	"false"},
-    {kAND,	"and"},
-    {kOR,	"or"},
-    {kNOT,	"not"},
-    {kIF_MOD,	"if"},
-    {kUNLESS_MOD,	"unless"},
-    {kWHILE_MOD,	"while"},
-    {kUNTIL_MOD,	"until"},
-    {kRESCUE_MOD,	"rescue"},
-    {kALIAS,	"alias"},
-    {kDEFINED,	"defined"},
-    {klBEGIN,	"BEGIN"},
-    {klEND,	"END"},
-    {k__LINE__,	"__LINE__"},
-    {k__FILE__,	"__FILE__"},
+    {keyword_class,	"class"},
+    {keyword_module,	"module"},
+    {keyword_def,	"def"},
+    {keyword_undef,	"undef"},
+    {keyword_begin,	"begin"},
+    {keyword_rescue,	"rescue"},
+    {keyword_ensure,	"ensure"},
+    {keyword_end,	"end"},
+    {keyword_if,	"if"},
+    {keyword_unless,	"unless"},
+    {keyword_then,	"then"},
+    {keyword_elsif,	"elsif"},
+    {keyword_else,	"else"},
+    {keyword_case,	"case"},
+    {keyword_when,	"when"},
+    {keyword_while,	"while"},
+    {keyword_until,	"until"},
+    {keyword_for,	"for"},
+    {keyword_break,	"break"},
+    {keyword_next,	"next"},
+    {keyword_redo,	"redo"},
+    {keyword_retry,	"retry"},
+    {keyword_in,	"in"},
+    {keyword_do,	"do"},
+    {keyword_do_cond,	"do"},
+    {keyword_do_block,	"do"},
+    {keyword_return,	"return"},
+    {keyword_yield,	"yield"},
+    {keyword_super,	"super"},
+    {keyword_self,	"self"},
+    {keyword_nil,	"nil"},
+    {keyword_true,	"true"},
+    {keyword_false,	"false"},
+    {keyword_and,	"and"},
+    {keyword_or,	"or"},
+    {keyword_not,	"not"},
+    {modifier_if,	"if"},
+    {modifier_unless,	"unless"},
+    {modifier_while,	"while"},
+    {modifier_until,	"until"},
+    {modifier_rescue,	"rescue"},
+    {keyword_alias,	"alias"},
+    {keyword_defined,	"defined"},
+    {keyword_BEGIN,	"BEGIN"},
+    {keyword_END,	"END"},
+    {keyword__LINE__,	"__LINE__"},
+    {keyword__FILE__,	"__FILE__"},
     {0, NULL}
 };
 

Modified: trunk/test/ruby/test_hash.rb
===================================================================
--- trunk/test/ruby/test_hash.rb	2006-11-03 12:00:17 UTC (rev 571)
+++ trunk/test/ruby/test_hash.rb	2006-11-04 00:50:33 UTC (rev 572)
@@ -590,11 +590,11 @@
 
   def test_to_s
     h = @cls[ 1 => 2, "cat" => "dog", 1.5 => :fred ]
-    assert_equal(h.to_a.join, h.to_s)
+    assert_equal(h.inspect, h.to_s)
     $, = ":"
-    assert_equal(h.to_a.join, h.to_s)
+    assert_equal(h.inspect, h.to_s)
     h = @cls[]
-    assert_equal(h.to_a.join, h.to_s)
+    assert_equal(h.inspect, h.to_s)
     $, = nil
   end
 

Modified: trunk/test/ruby/test_string.rb
===================================================================
--- trunk/test/ruby/test_string.rb	2006-11-03 12:00:17 UTC (rev 571)
+++ trunk/test/ruby/test_string.rb	2006-11-04 00:50:33 UTC (rev 572)
@@ -464,27 +464,23 @@
   end
 
   def test_each
-
-    if false
-      # TODO: String#each is not supported
-      $/ = "\n"
-      res=[]
-      S("hello\nworld").lines.each {|x| res << x}
-      assert_equal(S("hello\n"), res[0])
-      assert_equal(S("world"),   res[1])
-      
-      res=[]
-      S("hello\n\n\nworld").each(S('')) {|x| res << x}
-      assert_equal(S("hello\n\n\n"), res[0])
-      assert_equal(S("world"),       res[1])
-      
-      $/ = "!"
-      res=[]
-      S("hello!world").lines.each {|x| res << x}
-      assert_equal(S("hello!"), res[0])
-      assert_equal(S("world"),  res[1])
-      $/ = "\n"
-    end
+    $/ = "\n"
+    res=[]
+    S("hello\nworld").lines.each {|x| res << x}
+    assert_equal(S("hello\n"), res[0])
+    assert_equal(S("world"),   res[1])
+    
+    res=[]
+    S("hello\n\n\nworld").lines(S('')).each {|x| res << x}
+    assert_equal(S("hello\n\n\n"), res[0])
+    assert_equal(S("world"),       res[1])
+    
+    $/ = "!"
+    res=[]
+    S("hello!world").lines.each {|x| res << x}
+    assert_equal(S("hello!"), res[0])
+    assert_equal(S("world"),  res[1])
+    $/ = "\n"
   end
 
   def test_each_byte
@@ -502,22 +498,19 @@
     assert_equal(S("hello\n"), res[0])
     assert_equal(S("world"),   res[1])
 
-    if false
-      #TODO: String#each is not supported
-      res=[]
-      S("hello\n\n\nworld").lines.each(S('')) {|x| res << x}
-      assert_equal(S("hello\n\n\n"), res[0])
-      assert_equal(S("world"),       res[1])
-      
-      $/ = "!"
+    res=[]
+    S("hello\n\n\nworld").lines(S('')).each {|x| res << x}
+    assert_equal(S("hello\n\n\n"), res[0])
+    assert_equal(S("world"),       res[1])
+    
+    $/ = "!"
 
-      res=[]
-      S("hello!world").lines.each {|x| res << x}
-      assert_equal(S("hello!"), res[0])
-      assert_equal(S("world"),  res[1])
-
-      $/ = "\n"
-    end
+    res=[]
+    S("hello!world").lines.each {|x| res << x}
+    assert_equal(S("hello!"), res[0])
+    assert_equal(S("world"),  res[1])
+    
+    $/ = "\n"
   end
 
   def test_empty?

Modified: trunk/yarvtest/test_bin.rb
===================================================================
--- trunk/yarvtest/test_bin.rb	2006-11-03 12:00:17 UTC (rev 571)
+++ trunk/yarvtest/test_bin.rb	2006-11-04 00:50:33 UTC (rev 572)
@@ -32,6 +32,10 @@
       i = 10
       "#{i} ** #{i} = #{i ** i}"
     }
+    ae %q{
+      s = "str"
+      s.__id__ == "#{s}".__id__
+    }
   end
 
   def test_dsym


--
ML: yarv-diff quickml.atdot.net
Info: http://www.atdot.net/~ko1/quickml

[前][次][番号順一覧][スレッド一覧][生データ]