diff --git a/utils/TableGen/FileLexer.cpp.cvs b/utils/TableGen/FileLexer.cpp.cvs
index aaa5237..9a37d20 100644
--- a/utils/TableGen/FileLexer.cpp.cvs
+++ b/utils/TableGen/FileLexer.cpp.cvs
@@ -306,39 +306,40 @@
 	*yy_cp = '\0'; \
 	yy_c_buf_p = yy_cp;
 
-#define YY_NUM_RULES 31
-#define YY_END_OF_BUFFER 32
-static yyconst short int yy_acclist[129] =
+#define YY_NUM_RULES 32
+#define YY_END_OF_BUFFER 33
+static yyconst short int yy_acclist[130] =
     {   0,
-       25,   25,   32,   30,   31,   23,   30,   31,   23,   31,
-       30,   31,   30,   31,   30,   31,   30,   31,   30,   31,
-       22,   30,   31,   22,   30,   31,   19,   30,   31,   30,
-       31,   19,   30,   31,   19,   30,   31,   19,   30,   31,
-       19,   30,   31,   19,   30,   31,   19,   30,   31,   19,
-       30,   31,   25,   31,   26,   31,   28,   31,   23,   21,
-       20,   22,   24,    1,   19,   19,   19,   19,   19,   19,
-       19,   15,   19,   19,   19,   19,   25,   26,   26,   29,
-       28,   27,   28,   20,    1,   22,   22,    5,   19,   19,
-       19,   10,   19,   12,   19,   19,   19,    4,   19,   14,
+       26,   26,   33,   31,   32,   24,   31,   32,   24,   32,
+       31,   32,   31,   32,   31,   32,   31,   32,   31,   32,
+       23,   31,   32,   23,   31,   32,   20,   31,   32,   31,
+       32,   20,   31,   32,   20,   31,   32,   20,   31,   32,
+       20,   31,   32,   20,   31,   32,   20,   31,   32,   20,
+       31,   32,   26,   32,   27,   32,   29,   32,   24,   22,
+       21,   23,   25,    1,   20,   20,   20,   20,   20,   20,
+       20,   15,   20,   20,   20,   20,   26,   27,   27,   30,
+       29,   28,   29,   21,    1,   23,   23,    5,   20,   20,
+       20,   10,   20,   12,   20,   20,   20,    4,   20,   14,
 
-       19,   19,   19,   18,   16,   17,    3,    6,   19,   19,
-        9,   19,   19,   19,    8,   19,   19,   11,   19,   13,
-       19,   19,   19,   19,    7,   19,   19,    2
+       20,   20,   20,   18,   16,   17,    3,    6,   20,   20,
+        9,   20,   20,   20,    8,   20,   20,   11,   20,   13,
+       20,   20,   20,   20,    7,   20,   20,   19,    2
     } ;
 
-static yyconst short int yy_accept[101] =
+static yyconst short int yy_accept[109] =
     {   0,
         1,    1,    1,    2,    3,    4,    6,    9,   11,   13,
        15,   17,   19,   21,   24,   27,   30,   32,   35,   38,
        41,   44,   47,   50,   53,   55,   57,   59,   60,   60,
        60,   61,   62,   63,   64,   65,   65,   65,   66,   66,
        67,   68,   69,   70,   71,   72,   74,   75,   76,   77,
-       78,   79,   80,   81,   82,   83,   84,   84,   84,   85,
-       86,   87,   88,   88,   88,   90,   91,   92,   94,   96,
-       97,   98,  100,  102,  103,  104,  105,  106,  107,  107,
-      108,  110,  111,  113,  114,  115,  117,  118,  120,  122,
-      123,  124,  125,  127,  128,  128,  128,  128,  129,  129
+       78,   79,   80,   81,   82,   83,   84,   84,   84,   84,
+       85,   86,   87,   88,   88,   88,   90,   91,   92,   94,
+       96,   97,   98,  100,  102,  103,  104,  105,  106,  107,
+      107,  107,  108,  110,  111,  113,  114,  115,  117,  118,
+      118,  120,  122,  123,  124,  124,  125,  127,  127,  128,
 
+      128,  128,  128,  128,  129,  129,  130,  130
     } ;
 
 static yyconst int yy_ec[256] =
@@ -381,98 +382,100 @@
         6,    6,    6,    6,    1,    1
     } ;
 
-static yyconst short int yy_base[113] =
+static yyconst short int yy_base[121] =
     {   0,
-        0,    0,   29,   30,  199,  200,   39,   42,  167,  191,
-        0,   36,   42,   42,   45,    0,  161,  169,   33,   41,
-      168,  165,   42,  160,    0,   57,   61,   70,   45,  185,
-      200,    0,   66,  200,    0,   69,    0,    0,  154,  157,
-      170,  166,  162,  162,  162,   62,  151,  151,  151,    0,
-       75,   76,  200,   79,  200,   80,  153,   73,    0,    0,
-       81,    0,  143,  161,  146,  145,  153,    0,    0,  147,
-      146,    0,    0,  140,  145,  200,  200,  200,  134,  200,
-        0,  138,    0,  147,  134,    0,  138,    0,    0,  120,
-       97,   77,    0,   93,   95,   60,   45,  200,  200,  101,
+        0,    0,   29,   30,  207,  208,   39,   42,  175,  199,
+        0,   36,   42,   42,   45,    0,  169,  177,   33,   41,
+      176,  173,   42,  168,    0,   57,   61,   70,   45,  193,
+      208,    0,   67,  208,    0,   70,    0,    0,  162,  165,
+      178,  174,  170,  170,  170,   63,  159,  159,  159,    0,
+       76,   77,  208,   80,  208,   81,  161,   74,  157,    0,
+        0,   82,    0,  150,  168,  153,  152,  160,    0,    0,
+      154,  153,    0,    0,  147,  152,  208,  208,  208,  157,
+      140,  208,    0,  144,    0,  153,  140,    0,  144,  142,
+        0,    0,  149,  145,  140,  145,    0,  122,   94,  104,
 
-      107,  109,  112,  118,  124,  130,  133,  139,  142,  147,
-      153,  159
+       96,   68,   60,  208,   45,  208,  208,  102,  108,  110,
+      113,  119,  125,  131,  134,  140,  143,  148,  154,  160
     } ;
 
-static yyconst short int yy_def[113] =
+static yyconst short int yy_def[121] =
     {   0,
-       99,    1,  100,  100,   99,   99,   99,   99,   99,  101,
-      102,   99,   99,   99,   99,  103,   99,  103,  103,  103,
-      103,  103,  103,  103,  104,  105,  106,   99,   99,  101,
-       99,  107,   99,   99,  108,   99,  109,  103,  110,  103,
-      103,  103,  103,  103,  103,  103,  103,  103,  103,  104,
-      105,  105,   99,  106,   99,  106,   99,   99,  107,  108,
-       99,  109,  110,  111,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,  103,   99,   99,   99,  110,   99,
-      103,  103,  103,  103,  103,  103,  103,  103,  103,  103,
-      103,  103,  103,  103,   99,  112,  112,   99,    0,   99,
+      107,    1,  108,  108,  107,  107,  107,  107,  107,  109,
+      110,  107,  107,  107,  107,  111,  107,  111,  111,  111,
+      111,  111,  111,  111,  112,  113,  114,  107,  107,  109,
+      107,  115,  107,  107,  116,  107,  117,  111,  118,  111,
+      111,  111,  111,  111,  111,  111,  111,  111,  111,  112,
+      113,  113,  107,  114,  107,  114,  107,  107,  107,  115,
+      116,  107,  117,  118,  119,  111,  111,  111,  111,  111,
+      111,  111,  111,  111,  111,  111,  107,  107,  107,  107,
+      118,  107,  111,  111,  111,  111,  111,  111,  111,  107,
+      111,  111,  111,  111,  107,  111,  111,  107,  111,  107,
 
-       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-       99,   99
+      107,  107,  120,  107,  120,  107,    0,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107
     } ;
 
-static yyconst short int yy_nxt[237] =
+static yyconst short int yy_nxt[245] =
     {   0,
         6,    7,    8,    7,    9,   10,   11,    6,   12,   13,
        14,   15,   15,   16,   16,   17,    6,   16,   18,   19,
        20,   16,   21,   16,   16,   22,   23,   16,   16,   16,
        24,   16,   16,   16,    6,    6,   26,   26,   27,   27,
        28,   28,   28,   28,   28,   28,   33,   33,   33,   34,
-       98,   35,   33,   33,   33,   33,   33,   33,   43,   41,
-       36,   42,   44,   47,   52,   98,   53,   48,   55,   57,
-       56,   28,   28,   28,   58,   37,   33,   33,   33,   61,
-       61,   71,   99,   52,   99,   53,   99,   99,   99,   56,
-       77,   61,   61,   72,   95,   95,   95,   95,   94,   78,
+      106,   35,   33,   33,   33,   33,   33,   33,   43,   41,
+       36,   42,   44,   47,   52,  106,   53,   48,   55,   57,
+       56,   28,   28,   28,   58,   37,   59,   33,   33,   33,
+       62,   62,   72,  107,   52,  107,   53,  107,  107,  107,
+       56,   78,   62,   62,   73,  101,  101,  101,  101,  104,
 
-       96,   25,   25,   25,   25,   25,   25,   30,   30,   30,
-       30,   30,   30,   32,   32,   38,   38,   38,   50,   50,
-       93,   50,   50,   50,   51,   51,   51,   51,   51,   51,
-       54,   54,   54,   54,   54,   54,   59,   59,   59,   60,
-       92,   60,   60,   60,   60,   62,   62,   63,   63,   63,
-       63,   63,   63,   79,   79,   79,   79,   79,   79,   97,
-       97,   97,   97,   97,   97,   91,   90,   89,   88,   64,
-       87,   86,   85,   84,   83,   82,   81,   80,   64,   76,
-       75,   74,   73,   70,   69,   68,   67,   66,   65,   64,
-       31,   49,   46,   45,   40,   39,   31,   29,   99,    5,
+       79,  103,   25,   25,   25,   25,   25,   25,   30,   30,
+       30,   30,   30,   30,   32,   32,   38,   38,   38,   50,
+       50,  102,   50,   50,   50,   51,   51,   51,   51,   51,
+       51,   54,   54,   54,   54,   54,   54,   60,   60,   60,
+       61,  100,   61,   61,   61,   61,   63,   63,   64,   64,
+       64,   64,   64,   64,   81,   81,   81,   81,   81,   81,
+      105,  105,  105,  105,  105,  105,   99,   98,   97,   96,
+       95,   94,   93,   92,   91,   65,   90,   89,   88,   87,
+       86,   85,   84,   83,   82,   65,   80,   77,   76,   75,
+       74,   71,   70,   69,   68,   67,   66,   65,   31,   49,
 
-       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-       99,   99,   99,   99,   99,   99
+       46,   45,   40,   39,   31,   29,  107,    5,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107
     } ;
 
-static yyconst short int yy_chk[237] =
+static yyconst short int yy_chk[245] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    3,    4,    3,    4,
         7,    7,    7,    8,    8,    8,   12,   12,   12,   13,
-       97,   13,   14,   14,   14,   15,   15,   15,   20,   19,
-       14,   19,   20,   23,   26,   96,   26,   23,   27,   29,
-       27,   28,   28,   28,   29,   14,   33,   33,   33,   36,
-       36,   46,   51,   52,   51,   52,   54,   56,   54,   56,
-       58,   61,   61,   46,   94,   94,   95,   95,   92,   58,
+      105,   13,   14,   14,   14,   15,   15,   15,   20,   19,
+       14,   19,   20,   23,   26,  103,   26,   23,   27,   29,
+       27,   28,   28,   28,   29,   14,   29,   33,   33,   33,
+       36,   36,   46,   51,   52,   51,   52,   54,   56,   54,
+       56,   58,   62,   62,   46,   99,   99,  101,  101,  102,
 
-       95,  100,  100,  100,  100,  100,  100,  101,  101,  101,
-      101,  101,  101,  102,  102,  103,  103,  103,  104,  104,
-       91,  104,  104,  104,  105,  105,  105,  105,  105,  105,
-      106,  106,  106,  106,  106,  106,  107,  107,  107,  108,
-       90,  108,  108,  108,  108,  109,  109,  110,  110,  110,
-      110,  110,  110,  111,  111,  111,  111,  111,  111,  112,
-      112,  112,  112,  112,  112,   87,   85,   84,   82,   79,
-       75,   74,   71,   70,   67,   66,   65,   64,   63,   57,
-       49,   48,   47,   45,   44,   43,   42,   41,   40,   39,
-       30,   24,   22,   21,   18,   17,   10,    9,    5,   99,
+       58,  101,  108,  108,  108,  108,  108,  108,  109,  109,
+      109,  109,  109,  109,  110,  110,  111,  111,  111,  112,
+      112,  100,  112,  112,  112,  113,  113,  113,  113,  113,
+      113,  114,  114,  114,  114,  114,  114,  115,  115,  115,
+      116,   98,  116,  116,  116,  116,  117,  117,  118,  118,
+      118,  118,  118,  118,  119,  119,  119,  119,  119,  119,
+      120,  120,  120,  120,  120,  120,   96,   95,   94,   93,
+       90,   89,   87,   86,   84,   81,   80,   76,   75,   72,
+       71,   68,   67,   66,   65,   64,   59,   57,   49,   48,
+       47,   45,   44,   43,   42,   41,   40,   39,   30,   24,
 
-       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-       99,   99,   99,   99,   99,   99,   99,   99,   99,   99,
-       99,   99,   99,   99,   99,   99
+       22,   21,   18,   17,   10,    9,    5,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107,  107,  107,  107,  107,  107,  107,
+      107,  107,  107,  107
     } ;
 
 static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
@@ -648,7 +651,7 @@
 
 using namespace llvm;
 
-#line 652 "Lexer.cpp"
+#line 655 "Lexer.cpp"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -802,7 +805,7 @@
 #line 180 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
 
 
-#line 806 "Lexer.cpp"
+#line 809 "Lexer.cpp"
 
 	if ( yy_init )
 		{
@@ -850,14 +853,14 @@
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 100 )
+				if ( yy_current_state >= 108 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			*yy_state_ptr++ = yy_current_state;
 			++yy_cp;
 			}
-		while ( yy_current_state != 99 );
+		while ( yy_current_state != 107 );
 
 yy_find_action:
 		yy_current_state = *--yy_state_ptr;
@@ -986,77 +989,82 @@
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 207 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{ Filelval.StrVal = new std::string(yytext, yytext+yyleng);
-                 return ID; }
+#line 205 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
+{ return STRCONCATTOK; }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 209 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{ Filelval.StrVal = new std::string(yytext+1, yytext+yyleng);
-                 return VARNAME; } 
+#line 208 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
+{ Filelval.StrVal = new std::string(yytext, yytext+yyleng);
+                 return ID; }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 212 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{ Filelval.StrVal = new std::string(yytext+1, yytext+yyleng-1);
-                 return STRVAL; }
+#line 210 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
+{ Filelval.StrVal = new std::string(yytext+1, yytext+yyleng);
+                 return VARNAME; } 
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 215 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{ Filelval.IntVal = ParseInt(Filetext); return INTVAL; }
+#line 213 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
+{ Filelval.StrVal = new std::string(yytext+1, yytext+yyleng-1);
+                 return STRVAL; }
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 217 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{ /* Ignore whitespace */ }
+#line 216 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
+{ Filelval.IntVal = ParseInt(Filetext); return INTVAL; }
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 220 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{ BEGIN(comment); CommentDepth++; }
+#line 218 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
+{ /* Ignore whitespace */ }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
 #line 221 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{} /* eat anything that's not a '*' or '/' */
+{ BEGIN(comment); CommentDepth++; }
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
 #line 222 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{} /* eat up '*'s not followed by '/'s */
+{} /* eat anything that's not a '*' or '/' */
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
 #line 223 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{ ++CommentDepth; }
+{} /* eat up '*'s not followed by '/'s */
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
 #line 224 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{} /* eat up /'s not followed by *'s */
+{ ++CommentDepth; }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
 #line 225 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{ if (!--CommentDepth) { BEGIN(INITIAL); } }
-	YY_BREAK
-case YY_STATE_EOF(comment):
-#line 226 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{ err() << "Unterminated comment!\n"; exit(1); }
+{} /* eat up /'s not followed by *'s */
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 228 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
-{ return Filetext[0]; }
+#line 226 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
+{ if (!--CommentDepth) { BEGIN(INITIAL); } }
+	YY_BREAK
+case YY_STATE_EOF(comment):
+#line 227 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
+{ err() << "Unterminated comment!\n"; exit(1); }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 230 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 229 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
+{ return Filetext[0]; }
+	YY_BREAK
+case 32:
+YY_RULE_SETUP
+#line 231 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
 	YY_BREAK
-#line 1060 "Lexer.cpp"
+#line 1068 "Lexer.cpp"
 			case YY_STATE_EOF(INITIAL):
 				yyterminate();
 
@@ -1345,7 +1353,7 @@
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 100 )
+			if ( yy_current_state >= 108 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1375,11 +1383,11 @@
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 100 )
+		if ( yy_current_state >= 108 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 99);
+	yy_is_jam = (yy_current_state == 107);
 	if ( ! yy_is_jam )
 		*yy_state_ptr++ = yy_current_state;
 
@@ -1940,6 +1948,6 @@
 	return 0;
 	}
 #endif
-#line 230 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
+#line 231 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileLexer.l"
 
 
diff --git a/utils/TableGen/FileLexer.l.cvs b/utils/TableGen/FileLexer.l.cvs
index 020a356..3b60099 100644
--- a/utils/TableGen/FileLexer.l.cvs
+++ b/utils/TableGen/FileLexer.l.cvs
@@ -202,6 +202,7 @@
 !sra           { return SRATOK; }
 !srl           { return SRLTOK; }
 !shl           { return SHLTOK; }
+!strconcat     { return STRCONCATTOK; }
 
 
 {Identifier}   { Filelval.StrVal = new std::string(yytext, yytext+yyleng);
diff --git a/utils/TableGen/FileParser.cpp.cvs b/utils/TableGen/FileParser.cpp.cvs
index 07d663b..c8fd87d 100644
--- a/utils/TableGen/FileParser.cpp.cvs
+++ b/utils/TableGen/FileParser.cpp.cvs
@@ -26,11 +26,12 @@
 #define	SHLTOK	269
 #define	SRATOK	270
 #define	SRLTOK	271
-#define	INTVAL	272
-#define	ID	273
-#define	VARNAME	274
-#define	STRVAL	275
-#define	CODEFRAGMENT	276
+#define	STRCONCATTOK	272
+#define	INTVAL	273
+#define	ID	274
+#define	VARNAME	275
+#define	STRVAL	276
+#define	CODEFRAGMENT	277
 
 #line 14 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 
@@ -230,26 +231,26 @@
 
 
 
-#define	YYFINAL		162
+#define	YYFINAL		168
 #define	YYFLAG		-32768
-#define	YYNTBASE	38
+#define	YYNTBASE	39
 
-#define YYTRANSLATE(x) ((unsigned)(x) <= 276 ? yytranslate[x] : 79)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 277 ? yytranslate[x] : 80)
 
 static const char yytranslate[] = {     0,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,    32,
-    33,     2,     2,    34,    36,    31,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,    35,    37,    23,
-    25,    24,    26,     2,     2,     2,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,     2,     2,    33,
+    34,     2,     2,    35,    37,    32,     2,     2,     2,     2,
+     2,     2,     2,     2,     2,     2,     2,    36,    38,    24,
+    26,    25,    27,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-    29,     2,    30,     2,     2,     2,     2,     2,     2,     2,
+    30,     2,    31,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,    27,     2,    28,     2,     2,     2,     2,     2,
+     2,     2,    28,     2,    29,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -264,7 +265,7 @@
      2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
      2,     2,     2,     2,     2,     1,     3,     4,     5,     6,
      7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
-    17,    18,    19,    20,    21,    22
+    17,    18,    19,    20,    21,    22,    23
 };
 
 #if YYDEBUG != 0
@@ -272,42 +273,43 @@
      0,     2,     4,     6,    11,    13,    18,    20,    22,    24,
     25,    27,    28,    31,    33,    35,    37,    39,    41,    43,
     47,    52,    57,    61,    65,    70,    75,    82,    89,    96,
-    97,   100,   103,   108,   109,   111,   113,   117,   120,   124,
-   130,   135,   137,   138,   142,   143,   145,   147,   151,   156,
-   159,   166,   167,   170,   172,   176,   178,   183,   185,   189,
-   190,   193,   195,   199,   203,   204,   206,   208,   209,   211,
-   213,   215,   216,   220,   221,   222,   229,   233,   235,   237,
-   242,   244,   248,   249,   254,   259,   262,   264,   267
+   103,   104,   107,   110,   115,   116,   118,   120,   124,   127,
+   131,   137,   142,   144,   145,   149,   150,   152,   154,   158,
+   163,   166,   173,   174,   177,   179,   183,   185,   190,   192,
+   196,   197,   200,   202,   206,   210,   211,   213,   215,   216,
+   218,   220,   222,   223,   227,   228,   229,   236,   240,   242,
+   244,   249,   251,   255,   256,   261,   266,   269,   271,   274
 };
 
-static const short yyrhs[] = {    19,
-     0,     5,     0,     4,     0,     6,    23,    18,    24,     0,
-     3,     0,     7,    23,    39,    24,     0,     8,     0,     9,
-     0,    38,     0,     0,    12,     0,     0,    25,    43,     0,
-    19,     0,    42,     0,    18,     0,    21,     0,    22,     0,
-    26,     0,    27,    50,    28,     0,    19,    23,    51,    24,
-     0,    43,    27,    48,    28,     0,    29,    50,    30,     0,
-    43,    31,    19,     0,    32,    42,    46,    33,     0,    43,
-    29,    48,    30,     0,    15,    32,    43,    34,    43,    33,
-     0,    16,    32,    43,    34,    43,    33,     0,    17,    32,
-    43,    34,    43,    33,     0,     0,    35,    20,     0,    43,
-    44,     0,    45,    34,    43,    44,     0,     0,    45,     0,
-    18,     0,    18,    36,    18,     0,    18,    18,     0,    47,
-    34,    18,     0,    47,    34,    18,    36,    18,     0,    47,
-    34,    18,    18,     0,    47,     0,     0,    27,    48,    28,
-     0,     0,    51,     0,    43,     0,    51,    34,    43,     0,
-    40,    39,    19,    41,     0,    52,    37,     0,    13,    19,
-    49,    25,    43,    37,     0,     0,    54,    53,     0,    37,
-     0,    27,    54,    28,     0,    38,     0,    38,    23,    51,
-    24,     0,    56,     0,    57,    34,    56,     0,     0,    35,
-    57,     0,    52,     0,    59,    34,    52,     0,    23,    59,
-    24,     0,     0,    60,     0,    19,     0,     0,    62,     0,
-    63,     0,    63,     0,     0,    58,    67,    55,     0,     0,
-     0,    10,    64,    69,    61,    70,    66,     0,    11,    65,
-    66,     0,    68,     0,    71,     0,    19,    49,    25,    43,
-     0,    73,     0,    74,    34,    73,     0,     0,    13,    76,
-    74,    14,     0,    75,    27,    77,    28,     0,    75,    72,
-     0,    72,     0,    77,    72,     0,    77,     0
+static const short yyrhs[] = {    20,
+     0,     5,     0,     4,     0,     6,    24,    19,    25,     0,
+     3,     0,     7,    24,    40,    25,     0,     8,     0,     9,
+     0,    39,     0,     0,    12,     0,     0,    26,    44,     0,
+    20,     0,    43,     0,    19,     0,    22,     0,    23,     0,
+    27,     0,    28,    51,    29,     0,    20,    24,    52,    25,
+     0,    44,    28,    49,    29,     0,    30,    51,    31,     0,
+    44,    32,    20,     0,    33,    43,    47,    34,     0,    44,
+    30,    49,    31,     0,    15,    33,    44,    35,    44,    34,
+     0,    16,    33,    44,    35,    44,    34,     0,    17,    33,
+    44,    35,    44,    34,     0,    18,    33,    44,    35,    44,
+    34,     0,     0,    36,    21,     0,    44,    45,     0,    46,
+    35,    44,    45,     0,     0,    46,     0,    19,     0,    19,
+    37,    19,     0,    19,    19,     0,    48,    35,    19,     0,
+    48,    35,    19,    37,    19,     0,    48,    35,    19,    19,
+     0,    48,     0,     0,    28,    49,    29,     0,     0,    52,
+     0,    44,     0,    52,    35,    44,     0,    41,    40,    20,
+    42,     0,    53,    38,     0,    13,    20,    50,    26,    44,
+    38,     0,     0,    55,    54,     0,    38,     0,    28,    55,
+    29,     0,    39,     0,    39,    24,    52,    25,     0,    57,
+     0,    58,    35,    57,     0,     0,    36,    58,     0,    53,
+     0,    60,    35,    53,     0,    24,    60,    25,     0,     0,
+    61,     0,    20,     0,     0,    63,     0,    64,     0,    64,
+     0,     0,    59,    68,    56,     0,     0,     0,    10,    65,
+    70,    62,    71,    67,     0,    11,    66,    67,     0,    69,
+     0,    72,     0,    20,    50,    26,    44,     0,    74,     0,
+    75,    35,    74,     0,     0,    13,    77,    75,    14,     0,
+    76,    28,    78,    29,     0,    76,    73,     0,    73,     0,
+    78,    73,     0,    78,     0
 };
 
 #endif
@@ -316,13 +318,13 @@
 static const short yyrline[] = { 0,
    223,   234,   236,   238,   240,   242,   244,   246,   248,   252,
    252,   254,   254,   256,   273,   275,   277,   280,   283,   285,
-   298,   326,   333,   336,   343,   346,   354,   360,   366,   374,
-   377,   381,   386,   392,   395,   398,   401,   414,   428,   430,
-   443,   459,   461,   461,   465,   467,   471,   474,   478,   488,
-   490,   496,   496,   497,   497,   499,   501,   505,   510,   515,
-   518,   522,   525,   530,   531,   531,   533,   533,   535,   542,
-   560,   572,   586,   591,   593,   595,   599,   608,   608,   610,
-   615,   615,   618,   618,   621,   624,   628,   628,   630
+   298,   326,   333,   336,   343,   346,   354,   356,   358,   360,
+   364,   367,   371,   376,   382,   385,   388,   391,   404,   418,
+   420,   433,   449,   451,   451,   455,   457,   461,   464,   468,
+   478,   480,   486,   486,   487,   487,   489,   491,   495,   500,
+   505,   508,   512,   515,   520,   521,   521,   523,   523,   525,
+   532,   550,   562,   576,   581,   583,   585,   589,   598,   598,
+   600,   605,   605,   608,   608,   611,   614,   618,   618,   620
 };
 #endif
 
@@ -331,137 +333,139 @@
 
 static const char * const yytname[] = {   "$","error","$undefined.","INT","BIT",
 "STRING","BITS","LIST","CODE","DAG","CLASS","DEF","FIELD","LET","IN","SHLTOK",
-"SRATOK","SRLTOK","INTVAL","ID","VARNAME","STRVAL","CODEFRAGMENT","'<'","'>'",
-"'='","'?'","'{'","'}'","'['","']'","'.'","'('","')'","','","':'","'-'","';'",
-"ClassID","Type","OptPrefix","OptValue","IDValue","Value","OptVarName","DagArgListNE",
-"DagArgList","RBitList","BitList","OptBitList","ValueList","ValueListNE","Declaration",
-"BodyItem","BodyList","Body","SubClassRef","ClassListNE","ClassList","DeclListNE",
-"TemplateArgList","OptTemplateArgList","OptID","ObjectName","ClassName","DefName",
-"ObjectBody","@1","ClassInst","@2","@3","DefInst","Object","LETItem","LETList",
-"LETCommand","@4","ObjectList","File", NULL
+"SRATOK","SRLTOK","STRCONCATTOK","INTVAL","ID","VARNAME","STRVAL","CODEFRAGMENT",
+"'<'","'>'","'='","'?'","'{'","'}'","'['","']'","'.'","'('","')'","','","':'",
+"'-'","';'","ClassID","Type","OptPrefix","OptValue","IDValue","Value","OptVarName",
+"DagArgListNE","DagArgList","RBitList","BitList","OptBitList","ValueList","ValueListNE",
+"Declaration","BodyItem","BodyList","Body","SubClassRef","ClassListNE","ClassList",
+"DeclListNE","TemplateArgList","OptTemplateArgList","OptID","ObjectName","ClassName",
+"DefName","ObjectBody","@1","ClassInst","@2","@3","DefInst","Object","LETItem",
+"LETList","LETCommand","@4","ObjectList","File", NULL
 };
 #endif
 
 static const short yyr1[] = {     0,
-    38,    39,    39,    39,    39,    39,    39,    39,    39,    40,
-    40,    41,    41,    42,    43,    43,    43,    43,    43,    43,
-    43,    43,    43,    43,    43,    43,    43,    43,    43,    44,
-    44,    45,    45,    46,    46,    47,    47,    47,    47,    47,
-    47,    48,    49,    49,    50,    50,    51,    51,    52,    53,
-    53,    54,    54,    55,    55,    56,    56,    57,    57,    58,
-    58,    59,    59,    60,    61,    61,    62,    62,    63,    64,
-    65,    67,    66,    69,    70,    68,    71,    72,    72,    73,
-    74,    74,    76,    75,    72,    72,    77,    77,    78
+    39,    40,    40,    40,    40,    40,    40,    40,    40,    41,
+    41,    42,    42,    43,    44,    44,    44,    44,    44,    44,
+    44,    44,    44,    44,    44,    44,    44,    44,    44,    44,
+    45,    45,    46,    46,    47,    47,    48,    48,    48,    48,
+    48,    48,    49,    50,    50,    51,    51,    52,    52,    53,
+    54,    54,    55,    55,    56,    56,    57,    57,    58,    58,
+    59,    59,    60,    60,    61,    62,    62,    63,    63,    64,
+    65,    66,    68,    67,    70,    71,    69,    72,    73,    73,
+    74,    75,    75,    77,    76,    73,    73,    78,    78,    79
 };
 
 static const short yyr2[] = {     0,
      1,     1,     1,     4,     1,     4,     1,     1,     1,     0,
      1,     0,     2,     1,     1,     1,     1,     1,     1,     3,
-     4,     4,     3,     3,     4,     4,     6,     6,     6,     0,
-     2,     2,     4,     0,     1,     1,     3,     2,     3,     5,
-     4,     1,     0,     3,     0,     1,     1,     3,     4,     2,
-     6,     0,     2,     1,     3,     1,     4,     1,     3,     0,
-     2,     1,     3,     3,     0,     1,     1,     0,     1,     1,
-     1,     0,     3,     0,     0,     6,     3,     1,     1,     4,
-     1,     3,     0,     4,     4,     2,     1,     2,     1
+     4,     4,     3,     3,     4,     4,     6,     6,     6,     6,
+     0,     2,     2,     4,     0,     1,     1,     3,     2,     3,
+     5,     4,     1,     0,     3,     0,     1,     1,     3,     4,
+     2,     6,     0,     2,     1,     3,     1,     4,     1,     3,
+     0,     2,     1,     3,     3,     0,     1,     1,     0,     1,
+     1,     1,     0,     3,     0,     0,     6,     3,     1,     1,
+     4,     1,     3,     0,     4,     4,     2,     1,     2,     1
 };
 
 static const short yydefact[] = {     0,
-    68,    68,    83,    78,    79,    87,     0,    89,    67,    69,
-    70,    74,    71,    60,     0,     0,    86,    88,    65,     0,
-    72,    77,    43,    81,     0,     0,    10,    66,    75,     1,
-    56,    58,    61,     0,     0,     0,    84,     0,    85,    11,
-     0,    62,     0,    60,     0,     0,    52,    54,    73,    36,
-    42,     0,     0,    82,     5,     3,     2,     0,     0,     7,
-     8,     9,     0,    64,    10,    76,     0,     0,     0,    16,
-    14,    17,    18,    19,    45,    45,     0,    15,    47,     0,
-    59,    10,    38,     0,     0,    44,    80,     0,     0,    12,
-    63,     0,     0,     0,     0,     0,    46,     0,    14,    34,
-     0,     0,     0,    57,     0,     0,    55,     0,    53,    37,
-    39,     0,     0,     0,    49,     0,     0,     0,     0,    20,
-    23,    30,    35,     0,     0,     0,    24,    48,    43,    50,
-    41,     0,     4,     6,    13,     0,     0,     0,    21,     0,
-    32,     0,    25,    22,    26,     0,    40,     0,     0,     0,
-    31,    30,     0,    27,    28,    29,    33,     0,    51,     0,
-     0,     0
+    69,    69,    84,    79,    80,    88,     0,    90,    68,    70,
+    71,    75,    72,    61,     0,     0,    87,    89,    66,     0,
+    73,    78,    44,    82,     0,     0,    10,    67,    76,     1,
+    57,    59,    62,     0,     0,     0,    85,     0,    86,    11,
+     0,    63,     0,    61,     0,     0,    53,    55,    74,    37,
+    43,     0,     0,    83,     5,     3,     2,     0,     0,     7,
+     8,     9,     0,    65,    10,    77,     0,     0,     0,     0,
+    16,    14,    17,    18,    19,    46,    46,     0,    15,    48,
+     0,    60,    10,    39,     0,     0,    45,    81,     0,     0,
+    12,    64,     0,     0,     0,     0,     0,     0,    47,     0,
+    14,    35,     0,     0,     0,    58,     0,     0,    56,     0,
+    54,    38,    40,     0,     0,     0,    50,     0,     0,     0,
+     0,     0,    20,    23,    31,    36,     0,     0,     0,    24,
+    49,    44,    51,    42,     0,     4,     6,    13,     0,     0,
+     0,     0,    21,     0,    33,     0,    25,    22,    26,     0,
+    41,     0,     0,     0,     0,    32,    31,     0,    27,    28,
+    29,    30,    34,     0,    52,     0,     0,     0
 };
 
 static const short yydefgoto[] = {    31,
-    63,    41,   115,    78,    79,   141,   123,   124,    51,    52,
-    36,    96,    97,    42,   109,    82,    49,    32,    33,    21,
+    63,    41,   117,    79,    80,   145,   126,   127,    51,    52,
+    36,    98,    99,    42,   111,    83,    49,    32,    33,    21,
     43,    28,    29,    10,    11,    12,    14,    22,    34,     4,
-    19,    44,     5,     6,    24,    25,     7,    15,     8,   160
+    19,    44,     5,     6,    24,    25,     7,    15,     8,   166
 };
 
-static const short yypact[] = {     5,
-     7,     7,-32768,-32768,-32768,-32768,     1,     5,-32768,-32768,
--32768,-32768,-32768,   -18,    25,     5,-32768,-32768,    23,    30,
--32768,-32768,    44,-32768,   -11,    -3,    60,-32768,-32768,-32768,
-    54,-32768,    40,    -8,    63,    62,-32768,    25,-32768,-32768,
-    50,-32768,    39,   -18,    16,    30,-32768,-32768,-32768,   -14,
-    45,    65,    16,-32768,-32768,-32768,-32768,    68,    74,-32768,
--32768,-32768,    80,-32768,    60,-32768,    87,    91,    92,-32768,
-    98,-32768,-32768,-32768,    16,    16,   106,-32768,    76,    41,
--32768,     8,-32768,   108,   109,-32768,    76,   110,    50,   104,
--32768,    16,    16,    16,    16,   102,    97,   103,-32768,    16,
-    63,    63,   113,-32768,    16,   115,-32768,    99,-32768,-32768,
-    -9,   111,   114,    16,-32768,    61,    67,    75,    42,-32768,
--32768,    51,   105,   107,   116,   112,-32768,    76,    44,-32768,
--32768,   119,-32768,-32768,    76,    16,    16,    16,-32768,   121,
--32768,    16,-32768,-32768,-32768,   118,-32768,    81,    84,    89,
--32768,    51,    16,-32768,-32768,-32768,-32768,    33,-32768,   145,
-   146,-32768
+static const short yypact[] = {    67,
+   -14,   -14,-32768,-32768,-32768,-32768,    19,    67,-32768,-32768,
+-32768,-32768,-32768,    -3,    63,    67,-32768,-32768,    60,    65,
+-32768,-32768,     7,-32768,   -11,    -6,    79,-32768,-32768,-32768,
+    71,-32768,     4,   -16,    82,    73,-32768,    63,-32768,-32768,
+    61,-32768,    11,    -3,    -2,    65,-32768,-32768,-32768,     0,
+    72,    98,    -2,-32768,-32768,-32768,-32768,   105,   106,-32768,
+-32768,-32768,   111,-32768,    79,-32768,    99,   100,   101,   102,
+-32768,   112,-32768,-32768,-32768,    -2,    -2,   117,-32768,    96,
+    23,-32768,    32,-32768,   119,   120,-32768,    96,   121,    61,
+   115,-32768,    -2,    -2,    -2,    -2,    -2,   113,   108,   114,
+-32768,    -2,    82,    82,   124,-32768,    -2,   126,-32768,   109,
+-32768,-32768,    15,   123,   125,    -2,-32768,    27,    62,    68,
+    74,    25,-32768,-32768,    43,   116,   118,   127,   122,-32768,
+    96,     7,-32768,-32768,   130,-32768,-32768,    96,    -2,    -2,
+    -2,    -2,-32768,   133,-32768,    -2,-32768,-32768,-32768,   129,
+-32768,    80,    83,    88,    91,-32768,    43,    -2,-32768,-32768,
+-32768,-32768,-32768,    44,-32768,   157,   158,-32768
 };
 
 static const short yypgoto[] = {   -39,
-    58,-32768,-32768,    71,   -53,    -1,-32768,-32768,-32768,   -34,
-    20,    77,   -44,   -52,-32768,-32768,-32768,   117,-32768,-32768,
--32768,-32768,-32768,-32768,   148,-32768,-32768,   120,-32768,-32768,
--32768,-32768,-32768,    -2,   122,-32768,-32768,-32768,   136,-32768
+    69,-32768,-32768,    84,   -53,     3,-32768,-32768,-32768,   -93,
+    29,    86,   -44,   -27,-32768,-32768,-32768,   128,-32768,-32768,
+-32768,-32768,-32768,-32768,   162,-32768,-32768,   131,-32768,-32768,
+-32768,-32768,-32768,     1,   132,-32768,-32768,-32768,   149,-32768
 };
 
 
-#define	YYLAST		164
+#define	YYLAST		175
 
 
-static const short yytable[] = {    87,
-    80,    62,    37,    83,    17,    18,     1,     2,   131,     3,
-     1,     2,    91,     3,     1,     2,    20,     3,    47,    40,
-   106,    84,    38,    18,    39,     9,   132,    16,    48,   108,
-    67,    68,    69,    70,    71,   107,    72,    73,   116,   117,
-   118,    74,    75,    23,    76,    27,   122,    77,    30,    62,
-   119,   128,    55,    56,    57,    58,    59,    60,    61,   101,
-   135,   102,    64,   103,   104,   139,   125,   126,    30,   159,
-    35,    40,    65,    46,   105,   105,    45,   101,    85,   102,
-    50,   103,   148,   149,   150,   140,    53,   101,   152,   102,
-    88,   103,    86,   101,   136,   102,    89,   103,    90,   158,
-   137,   101,   101,   102,   102,   103,   103,   101,   138,   102,
-   101,   103,   102,   154,   103,   101,   155,   102,    92,   103,
-    95,   156,    93,    94,    99,   110,   111,   112,   114,   120,
-   105,   127,   121,   129,   133,   130,   147,   134,   142,   143,
-   151,   145,   153,   144,   161,   162,   113,   100,   146,    13,
-   157,    26,    98,     0,     0,     0,     0,     0,     0,    54,
-     0,     0,    81,    66
+static const short yytable[] = {    88,
+    81,    62,    37,     1,     2,     9,     3,    17,    18,   128,
+   129,    47,    67,    68,    69,    70,    71,    72,    84,    73,
+    74,    48,    39,    38,    75,    76,    18,    77,     1,     2,
+    78,     3,    20,   134,    35,    64,    85,    92,    46,   118,
+   119,   120,   121,    40,   108,    65,    16,   106,   125,   143,
+    62,   135,   122,   131,   103,   110,   104,   107,   105,   107,
+   109,   139,   138,    55,    56,    57,    58,    59,    60,    61,
+   103,   103,   104,   104,   105,   105,     1,     2,   144,     3,
+    30,   165,    23,    27,    30,   152,   153,   154,   155,   103,
+    40,   104,   157,   105,    45,   103,   140,   104,    53,   105,
+    50,   103,   141,   104,   164,   105,    86,   103,   142,   104,
+   103,   105,   104,   159,   105,   103,   160,   104,   103,   105,
+   104,   161,   105,   103,   162,   104,    87,   105,    89,    90,
+    91,    93,    94,    95,    96,    97,   101,   112,   113,   114,
+   116,   123,   107,   130,   124,   132,   133,   136,   151,   137,
+   146,   147,   149,   156,   158,   148,   167,   168,   115,   163,
+   150,   102,   100,    13,    26,     0,     0,     0,     0,    54,
+     0,     0,     0,    82,    66
 };
 
 static const short yycheck[] = {    53,
-    45,    41,    14,    18,     7,     8,    10,    11,    18,    13,
-    10,    11,    65,    13,    10,    11,    35,    13,    27,    12,
-    13,    36,    34,    26,    28,    19,    36,    27,    37,    82,
-    15,    16,    17,    18,    19,    28,    21,    22,    92,    93,
-    94,    26,    27,    19,    29,    23,   100,    32,    19,    89,
-    95,   105,     3,     4,     5,     6,     7,     8,     9,    27,
-   114,    29,    24,    31,    24,    24,   101,   102,    19,    37,
-    27,    12,    34,    34,    34,    34,    23,    27,    34,    29,
-    18,    31,   136,   137,   138,    35,    25,    27,   142,    29,
-    23,    31,    28,    27,    34,    29,    23,    31,    19,   153,
-    34,    27,    27,    29,    29,    31,    31,    27,    34,    29,
-    27,    31,    29,    33,    31,    27,    33,    29,    32,    31,
-    23,    33,    32,    32,    19,    18,    18,    18,    25,    28,
-    34,    19,    30,    19,    24,    37,    18,    24,    34,    33,
-    20,    30,    25,    28,     0,     0,    89,    77,   129,     2,
-   152,    16,    76,    -1,    -1,    -1,    -1,    -1,    -1,    38,
-    -1,    -1,    46,    44
+    45,    41,    14,    10,    11,    20,    13,     7,     8,   103,
+   104,    28,    15,    16,    17,    18,    19,    20,    19,    22,
+    23,    38,    29,    35,    27,    28,    26,    30,    10,    11,
+    33,    13,    36,    19,    28,    25,    37,    65,    35,    93,
+    94,    95,    96,    12,    13,    35,    28,    25,   102,    25,
+    90,    37,    97,   107,    28,    83,    30,    35,    32,    35,
+    29,    35,   116,     3,     4,     5,     6,     7,     8,     9,
+    28,    28,    30,    30,    32,    32,    10,    11,    36,    13,
+    20,    38,    20,    24,    20,   139,   140,   141,   142,    28,
+    12,    30,   146,    32,    24,    28,    35,    30,    26,    32,
+    19,    28,    35,    30,   158,    32,    35,    28,    35,    30,
+    28,    32,    30,    34,    32,    28,    34,    30,    28,    32,
+    30,    34,    32,    28,    34,    30,    29,    32,    24,    24,
+    20,    33,    33,    33,    33,    24,    20,    19,    19,    19,
+    26,    29,    35,    20,    31,    20,    38,    25,    19,    25,
+    35,    34,    31,    21,    26,    29,     0,     0,    90,   157,
+   132,    78,    77,     2,    16,    -1,    -1,    -1,    -1,    38,
+    -1,    -1,    -1,    46,    44
 };
 /* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
 #line 3 "/usr/share/bison.simple"
@@ -1232,80 +1236,74 @@
 case 27:
 #line 354 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
-    yyval.Initializer = yyvsp[-3].Initializer->getBinaryOp(Init::SHL, yyvsp[-1].Initializer);
-    if (yyval.Initializer == 0) {
-      err() << "Cannot shift values '" << *yyvsp[-3].Initializer << "' and '" << *yyvsp[-1].Initializer << "'!\n";
-      exit(1);
-    }
+    yyval.Initializer = (new BinOpInit(BinOpInit::SHL, yyvsp[-3].Initializer, yyvsp[-1].Initializer))->Fold();
   ;
     break;}
 case 28:
-#line 360 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+#line 356 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
-    yyval.Initializer = yyvsp[-3].Initializer->getBinaryOp(Init::SRA, yyvsp[-1].Initializer);
-    if (yyval.Initializer == 0) {
-      err() << "Cannot shift values '" << *yyvsp[-3].Initializer << "' and '" << *yyvsp[-1].Initializer << "'!\n";
-      exit(1);
-    }
+    yyval.Initializer = (new BinOpInit(BinOpInit::SRA, yyvsp[-3].Initializer, yyvsp[-1].Initializer))->Fold();
   ;
     break;}
 case 29:
-#line 366 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+#line 358 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
-    yyval.Initializer = yyvsp[-3].Initializer->getBinaryOp(Init::SRL, yyvsp[-1].Initializer);
-    if (yyval.Initializer == 0) {
-      err() << "Cannot shift values '" << *yyvsp[-3].Initializer << "' and '" << *yyvsp[-1].Initializer << "'!\n";
-      exit(1);
-    }
+    yyval.Initializer = (new BinOpInit(BinOpInit::SRL, yyvsp[-3].Initializer, yyvsp[-1].Initializer))->Fold();
   ;
     break;}
 case 30:
-#line 374 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+#line 360 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+{
+    yyval.Initializer = (new BinOpInit(BinOpInit::STRCONCAT, yyvsp[-3].Initializer, yyvsp[-1].Initializer))->Fold();
+  ;
+    break;}
+case 31:
+#line 364 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.StrVal = new std::string();
   ;
     break;}
-case 31:
-#line 377 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 32:
+#line 367 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.StrVal = yyvsp[0].StrVal;
   ;
     break;}
-case 32:
-#line 381 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 33:
+#line 371 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.DagValueList = new std::vector<std::pair<Init*, std::string> >();
     yyval.DagValueList->push_back(std::make_pair(yyvsp[-1].Initializer, *yyvsp[0].StrVal));
     delete yyvsp[0].StrVal;
   ;
     break;}
-case 33:
-#line 386 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 34:
+#line 376 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyvsp[-3].DagValueList->push_back(std::make_pair(yyvsp[-1].Initializer, *yyvsp[0].StrVal));
     delete yyvsp[0].StrVal;
     yyval.DagValueList = yyvsp[-3].DagValueList;
   ;
     break;}
-case 34:
-#line 392 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 35:
+#line 382 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.DagValueList = new std::vector<std::pair<Init*, std::string> >();
   ;
     break;}
-case 35:
-#line 395 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 36:
+#line 385 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 { yyval.DagValueList = yyvsp[0].DagValueList; ;
     break;}
-case 36:
-#line 398 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 37:
+#line 388 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.BitList = new std::vector<unsigned>();
     yyval.BitList->push_back(yyvsp[0].IntVal);
   ;
     break;}
-case 37:
-#line 401 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 38:
+#line 391 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     if (yyvsp[-2].IntVal < 0 || yyvsp[0].IntVal < 0) {
       err() << "Invalid range: " << yyvsp[-2].IntVal << "-" << yyvsp[0].IntVal << "!\n";
@@ -1321,8 +1319,8 @@
     }
   ;
     break;}
-case 38:
-#line 414 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 39:
+#line 404 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyvsp[0].IntVal = -yyvsp[0].IntVal;
     if (yyvsp[-1].IntVal < 0 || yyvsp[0].IntVal < 0) {
@@ -1339,14 +1337,14 @@
     }
   ;
     break;}
-case 39:
-#line 428 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 40:
+#line 418 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     (yyval.BitList=yyvsp[-2].BitList)->push_back(yyvsp[0].IntVal);
   ;
     break;}
-case 40:
-#line 430 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 41:
+#line 420 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     if (yyvsp[-2].IntVal < 0 || yyvsp[0].IntVal < 0) {
       err() << "Invalid range: " << yyvsp[-2].IntVal << "-" << yyvsp[0].IntVal << "!\n";
@@ -1362,8 +1360,8 @@
     }
   ;
     break;}
-case 41:
-#line 443 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 42:
+#line 433 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyvsp[0].IntVal = -yyvsp[0].IntVal;
     if (yyvsp[-1].IntVal < 0 || yyvsp[0].IntVal < 0) {
@@ -1380,45 +1378,45 @@
     }
   ;
     break;}
-case 42:
-#line 459 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 43:
+#line 449 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 { yyval.BitList = yyvsp[0].BitList; std::reverse(yyvsp[0].BitList->begin(), yyvsp[0].BitList->end()); ;
     break;}
-case 43:
-#line 461 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 44:
+#line 451 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 { yyval.BitList = 0; ;
     break;}
-case 44:
-#line 461 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 45:
+#line 451 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 { yyval.BitList = yyvsp[-1].BitList; ;
     break;}
-case 45:
-#line 465 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 46:
+#line 455 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.FieldList = new std::vector<Init*>();
   ;
     break;}
-case 46:
-#line 467 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 47:
+#line 457 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.FieldList = yyvsp[0].FieldList;
   ;
     break;}
-case 47:
-#line 471 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 48:
+#line 461 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.FieldList = new std::vector<Init*>();
     yyval.FieldList->push_back(yyvsp[0].Initializer);
   ;
     break;}
-case 48:
-#line 474 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 49:
+#line 464 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     (yyval.FieldList = yyvsp[-2].FieldList)->push_back(yyvsp[0].Initializer);
   ;
     break;}
-case 49:
-#line 478 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 50:
+#line 468 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
   std::string DecName = *yyvsp[-1].StrVal;
   if (ParsingTemplateArgs)
@@ -1429,87 +1427,87 @@
   yyval.StrVal = new std::string(DecName);
 ;
     break;}
-case 50:
-#line 488 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 51:
+#line 478 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
   delete yyvsp[-1].StrVal;
 ;
     break;}
-case 51:
-#line 490 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 52:
+#line 480 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
   setValue(*yyvsp[-4].StrVal, yyvsp[-3].BitList, yyvsp[-1].Initializer);
   delete yyvsp[-4].StrVal;
   delete yyvsp[-3].BitList;
 ;
     break;}
-case 56:
-#line 499 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 57:
+#line 489 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.SubClassRef = new SubClassRefTy(yyvsp[0].Rec, new std::vector<Init*>());
   ;
     break;}
-case 57:
-#line 501 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 58:
+#line 491 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.SubClassRef = new SubClassRefTy(yyvsp[-3].Rec, yyvsp[-1].FieldList);
   ;
     break;}
-case 58:
-#line 505 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 59:
+#line 495 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.SubClassList = new std::vector<SubClassRefTy>();
     yyval.SubClassList->push_back(*yyvsp[0].SubClassRef);
     delete yyvsp[0].SubClassRef;
   ;
     break;}
-case 59:
-#line 510 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 60:
+#line 500 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     (yyval.SubClassList=yyvsp[-2].SubClassList)->push_back(*yyvsp[0].SubClassRef);
     delete yyvsp[0].SubClassRef;
   ;
     break;}
-case 60:
-#line 515 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 61:
+#line 505 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.SubClassList = new std::vector<SubClassRefTy>();
   ;
     break;}
-case 61:
-#line 518 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 62:
+#line 508 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     yyval.SubClassList = yyvsp[0].SubClassList;
   ;
     break;}
-case 62:
-#line 522 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
-{
-  CurRec->addTemplateArg(*yyvsp[0].StrVal);
-  delete yyvsp[0].StrVal;
-;
-    break;}
 case 63:
-#line 525 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+#line 512 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
   CurRec->addTemplateArg(*yyvsp[0].StrVal);
   delete yyvsp[0].StrVal;
 ;
     break;}
 case 64:
-#line 530 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+#line 515 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+{
+  CurRec->addTemplateArg(*yyvsp[0].StrVal);
+  delete yyvsp[0].StrVal;
+;
+    break;}
+case 65:
+#line 520 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {;
     break;}
-case 67:
-#line 533 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 68:
+#line 523 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 { yyval.StrVal = yyvsp[0].StrVal; ;
     break;}
-case 68:
-#line 533 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 69:
+#line 523 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 { yyval.StrVal = new std::string(); ;
     break;}
-case 69:
-#line 535 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 70:
+#line 525 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
   static unsigned AnonCounter = 0;
   if (yyvsp[0].StrVal->empty())
@@ -1517,8 +1515,8 @@
   yyval.StrVal = yyvsp[0].StrVal;
 ;
     break;}
-case 70:
-#line 542 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 71:
+#line 532 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
   // If a class of this name already exists, it must be a forward ref.
   if ((CurRec = Records.getClass(*yyvsp[0].StrVal))) {
@@ -1537,8 +1535,8 @@
   delete yyvsp[0].StrVal;
 ;
     break;}
-case 71:
-#line 560 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 72:
+#line 550 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
   CurRec = new Record(*yyvsp[0].StrVal);
   delete yyvsp[0].StrVal;
@@ -1551,8 +1549,8 @@
   Records.addDef(CurRec);
 ;
     break;}
-case 72:
-#line 572 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 73:
+#line 562 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
            for (unsigned i = 0, e = yyvsp[0].SubClassList->size(); i != e; ++i) {
              addSubClass((*yyvsp[0].SubClassList)[i].first, *(*yyvsp[0].SubClassList)[i].second);
@@ -1569,33 +1567,33 @@
                         LetStack[i][j].Value);
          ;
     break;}
-case 73:
-#line 586 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 74:
+#line 576 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
            yyval.Rec = CurRec;
            CurRec = 0;
          ;
     break;}
-case 74:
-#line 591 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 75:
+#line 581 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
                 ParsingTemplateArgs = true;
             ;
     break;}
-case 75:
-#line 593 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 76:
+#line 583 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
                 ParsingTemplateArgs = false;
             ;
     break;}
-case 76:
-#line 595 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 77:
+#line 585 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
         yyval.Rec = yyvsp[0].Rec;
      ;
     break;}
-case 77:
-#line 599 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 78:
+#line 589 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
   yyvsp[0].Rec->resolveReferences();
 
@@ -1604,39 +1602,39 @@
   yyval.Rec = yyvsp[0].Rec;
 ;
     break;}
-case 80:
-#line 610 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 81:
+#line 600 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
   LetStack.back().push_back(LetRecord(*yyvsp[-3].StrVal, yyvsp[-2].BitList, yyvsp[0].Initializer));
   delete yyvsp[-3].StrVal; delete yyvsp[-2].BitList;
 ;
     break;}
-case 83:
-#line 618 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+case 84:
+#line 608 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 { LetStack.push_back(std::vector<LetRecord>()); ;
     break;}
-case 85:
-#line 621 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
-{
-    LetStack.pop_back();
-  ;
-    break;}
 case 86:
-#line 624 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+#line 611 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {
     LetStack.pop_back();
   ;
     break;}
 case 87:
-#line 628 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
-{;
+#line 614 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+{
+    LetStack.pop_back();
+  ;
     break;}
 case 88:
-#line 628 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+#line 618 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {;
     break;}
 case 89:
-#line 630 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+#line 618 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+{;
+    break;}
+case 90:
+#line 620 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 {;
     break;}
 }
@@ -1861,7 +1859,7 @@
     }
   return 1;
 }
-#line 632 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
+#line 622 "/Volumes/ProjectsDisk/cvs/llvm/utils/TableGen/FileParser.y"
 
 
 int yyerror(const char *ErrorMsg) {
diff --git a/utils/TableGen/FileParser.h.cvs b/utils/TableGen/FileParser.h.cvs
index 60fd5f5..2c8e0f9 100644
--- a/utils/TableGen/FileParser.h.cvs
+++ b/utils/TableGen/FileParser.h.cvs
@@ -25,11 +25,12 @@
 #define	SHLTOK	269
 #define	SRATOK	270
 #define	SRLTOK	271
-#define	INTVAL	272
-#define	ID	273
-#define	VARNAME	274
-#define	STRVAL	275
-#define	CODEFRAGMENT	276
+#define	STRCONCATTOK	272
+#define	INTVAL	273
+#define	ID	274
+#define	VARNAME	275
+#define	STRVAL	276
+#define	CODEFRAGMENT	277
 
 
 extern YYSTYPE Filelval;
diff --git a/utils/TableGen/FileParser.y.cvs b/utils/TableGen/FileParser.y.cvs
index 11fda1d..aa86139 100644
--- a/utils/TableGen/FileParser.y.cvs
+++ b/utils/TableGen/FileParser.y.cvs
@@ -200,7 +200,7 @@
 };
 
 %token INT BIT STRING BITS LIST CODE DAG CLASS DEF FIELD LET IN
-%token SHLTOK SRATOK SRLTOK
+%token SHLTOK SRATOK SRLTOK STRCONCATTOK
 %token <IntVal>      INTVAL
 %token <StrVal>      ID VARNAME STRVAL CODEFRAGMENT
 
@@ -352,23 +352,13 @@
     }
     delete $3;
   } | SHLTOK '(' Value ',' Value ')' {
-    $$ = $3->getBinaryOp(Init::SHL, $5);
-    if ($$ == 0) {
-      err() << "Cannot shift values '" << *$3 << "' and '" << *$5 << "'!\n";
-      exit(1);
-    }
+    $$ = (new BinOpInit(BinOpInit::SHL, $3, $5))->Fold();
   } | SRATOK '(' Value ',' Value ')' {
-    $$ = $3->getBinaryOp(Init::SRA, $5);
-    if ($$ == 0) {
-      err() << "Cannot shift values '" << *$3 << "' and '" << *$5 << "'!\n";
-      exit(1);
-    }
+    $$ = (new BinOpInit(BinOpInit::SRA, $3, $5))->Fold();
   } | SRLTOK '(' Value ',' Value ')' {
-    $$ = $3->getBinaryOp(Init::SRL, $5);
-    if ($$ == 0) {
-      err() << "Cannot shift values '" << *$3 << "' and '" << *$5 << "'!\n";
-      exit(1);
-    }
+    $$ = (new BinOpInit(BinOpInit::SRL, $3, $5))->Fold();
+  } | STRCONCATTOK '(' Value ',' Value ')' {
+    $$ = (new BinOpInit(BinOpInit::STRCONCAT, $3, $5))->Fold();
   };
 
 OptVarName : /* empty */ {
