[llvm-commits] CVS: llvm/lib/AsmParser/Lexer.cpp.cvs Lexer.l Lexer.l.cvs llvmAsmParser.cpp.cvs llvmAsmParser.h.cvs llvmAsmParser.y llvmAsmParser.y.cvs

Reid Spencer reid at x10sys.com
Thu Feb 1 18:17:36 PST 2007



Changes in directory llvm/lib/AsmParser:

Lexer.cpp.cvs updated: 1.29 -> 1.30
Lexer.l updated: 1.97 -> 1.98
Lexer.l.cvs updated: 1.24 -> 1.25
llvmAsmParser.cpp.cvs updated: 1.61 -> 1.62
llvmAsmParser.h.cvs updated: 1.49 -> 1.50
llvmAsmParser.y updated: 1.316 -> 1.317
llvmAsmParser.y.cvs updated: 1.62 -> 1.63
---
Log message:

Changes to support making the shift instructions be true BinaryOperators.
This feature is needed in order to support shifts of more than 255 bits
on large integer types.  This changes the syntax for llvm assembly to 
make shl, ashr and lshr instructions look like a binary operator:
   shl i32 %X, 1
instead of
   shl i32 %X, i8 1
Additionally, this should help a few passes perform additional optimizations.


---
Diffs of the changes:  (+5295 -4443)

 Lexer.cpp.cvs         | 2169 +++++++--------
 Lexer.l               |   12 
 Lexer.l.cvs           |   12 
 llvmAsmParser.cpp.cvs | 7015 ++++++++++++++++++++++++++++----------------------
 llvmAsmParser.h.cvs   |  439 ++-
 llvmAsmParser.y       |   31 
 llvmAsmParser.y.cvs   |   31 
 7 files changed, 5294 insertions(+), 4415 deletions(-)


Index: llvm/lib/AsmParser/Lexer.cpp.cvs
diff -u llvm/lib/AsmParser/Lexer.cpp.cvs:1.29 llvm/lib/AsmParser/Lexer.cpp.cvs:1.30
--- llvm/lib/AsmParser/Lexer.cpp.cvs:1.29	Sun Jan 28 07:37:39 2007
+++ llvm/lib/AsmParser/Lexer.cpp.cvs	Thu Feb  1 20:16:22 2007
@@ -1,94 +1,51 @@
-#line 2 "Lexer.cpp"
+#define yy_create_buffer llvmAsm_create_buffer
+#define yy_delete_buffer llvmAsm_delete_buffer
+#define yy_scan_buffer llvmAsm_scan_buffer
+#define yy_scan_string llvmAsm_scan_string
+#define yy_scan_bytes llvmAsm_scan_bytes
+#define yy_flex_debug llvmAsm_flex_debug
+#define yy_init_buffer llvmAsm_init_buffer
+#define yy_flush_buffer llvmAsm_flush_buffer
+#define yy_load_buffer_state llvmAsm_load_buffer_state
+#define yy_switch_to_buffer llvmAsm_switch_to_buffer
+#define yyin llvmAsmin
+#define yyleng llvmAsmleng
+#define yylex llvmAsmlex
+#define yyout llvmAsmout
+#define yyrestart llvmAsmrestart
+#define yytext llvmAsmtext
+#define yylineno llvmAsmlineno
 
-#line 4 "Lexer.cpp"
+#line 20 "Lexer.cpp"
+/* A lexical scanner generated by flex*/
 
-#define  YY_INT_ALIGNED short int
-
-/* A lexical scanner generated by flex */
+/* Scanner skeleton version:
+ * $Header: /var/cvs/llvm/llvm/lib/AsmParser/Lexer.cpp.cvs,v 1.30 2007/02/02 02:16:22 reid Exp $
+ */
 
 #define FLEX_SCANNER
 #define YY_FLEX_MAJOR_VERSION 2
 #define YY_FLEX_MINOR_VERSION 5
-#define YY_FLEX_SUBMINOR_VERSION 33
-#if YY_FLEX_SUBMINOR_VERSION > 0
-#define FLEX_BETA
-#endif
-
-/* First, we deal with  platform-specific or compiler-specific issues. */
 
-/* begin standard C headers. */
 #include <stdio.h>
-#include <string.h>
-#include <errno.h>
-#include <stdlib.h>
-
-/* end standard C headers. */
-
-/* flex integer type definitions */
-
-#ifndef FLEXINT_H
-#define FLEXINT_H
-
-/* C99 systems have <inttypes.h>. Non-C99 systems may or may not. */
-
-#if __STDC_VERSION__ >= 199901L
-
-/* C99 says to define __STDC_LIMIT_MACROS before including stdint.h,
- * if you want the limit (max/min) macros for int types. 
- */
-#ifndef __STDC_LIMIT_MACROS
-#define __STDC_LIMIT_MACROS 1
-#endif
+#include <unistd.h>
 
-#include <inttypes.h>
-typedef int8_t flex_int8_t;
-typedef uint8_t flex_uint8_t;
-typedef int16_t flex_int16_t;
-typedef uint16_t flex_uint16_t;
-typedef int32_t flex_int32_t;
-typedef uint32_t flex_uint32_t;
-#else
-typedef signed char flex_int8_t;
-typedef short int flex_int16_t;
-typedef int flex_int32_t;
-typedef unsigned char flex_uint8_t; 
-typedef unsigned short int flex_uint16_t;
-typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
 
-/* Limits of integral types. */
-#ifndef INT8_MIN
-#define INT8_MIN               (-128)
-#endif
-#ifndef INT16_MIN
-#define INT16_MIN              (-32767-1)
+/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
+#ifdef c_plusplus
+#ifndef __cplusplus
+#define __cplusplus
 #endif
-#ifndef INT32_MIN
-#define INT32_MIN              (-2147483647-1)
-#endif
-#ifndef INT8_MAX
-#define INT8_MAX               (127)
-#endif
-#ifndef INT16_MAX
-#define INT16_MAX              (32767)
-#endif
-#ifndef INT32_MAX
-#define INT32_MAX              (2147483647)
-#endif
-#ifndef UINT8_MAX
-#define UINT8_MAX              (255U)
-#endif
-#ifndef UINT16_MAX
-#define UINT16_MAX             (65535U)
-#endif
-#ifndef UINT32_MAX
-#define UINT32_MAX             (4294967295U)
 #endif
 
-#endif /* ! FLEXINT_H */
 
 #ifdef __cplusplus
 
+#include <stdlib.h>
+
+/* Use prototypes in function declarations. */
+#define YY_USE_PROTOS
+
 /* The "const" storage-class-modifier is valid. */
 #define YY_USE_CONST
 
@@ -96,17 +53,34 @@
 
 #if __STDC__
 
+#define YY_USE_PROTOS
 #define YY_USE_CONST
 
 #endif	/* __STDC__ */
 #endif	/* ! __cplusplus */
 
+#ifdef __TURBOC__
+ #pragma warn -rch
+ #pragma warn -use
+#include <io.h>
+#include <stdlib.h>
+#define YY_USE_CONST
+#define YY_USE_PROTOS
+#endif
+
 #ifdef YY_USE_CONST
 #define yyconst const
 #else
 #define yyconst
 #endif
 
+
+#ifdef YY_USE_PROTOS
+#define YY_PROTO(proto) proto
+#else
+#define YY_PROTO(proto) ()
+#endif
+
 /* Returned upon end-of-file. */
 #define YY_NULL 0
 
@@ -121,88 +95,80 @@
  * but we do it the disgusting crufty way forced on us by the ()-less
  * definition of BEGIN.
  */
-#define BEGIN (yy_start) = 1 + 2 *
+#define BEGIN yy_start = 1 + 2 *
 
 /* Translate the current start state into a value that can be later handed
  * to BEGIN to return to the state.  The YYSTATE alias is for lex
  * compatibility.
  */
-#define YY_START (((yy_start) - 1) / 2)
+#define YY_START ((yy_start - 1) / 2)
 #define YYSTATE YY_START
 
 /* Action number for EOF rule of a given start state. */
 #define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
 
 /* Special action meaning "start processing a new file". */
-#define YY_NEW_FILE llvmAsmrestart(llvmAsmin  )
+#define YY_NEW_FILE yyrestart( yyin )
 
 #define YY_END_OF_BUFFER_CHAR 0
 
 /* Size of default input buffer. */
-#ifndef YY_BUF_SIZE
 #define YY_BUF_SIZE (16384*64)
-#endif
-
-/* The state buf must be large enough to hold one state per character in the main buffer.
- */
-#define YY_STATE_BUF_SIZE   ((YY_BUF_SIZE + 2) * sizeof(yy_state_type))
 
-#ifndef YY_TYPEDEF_YY_BUFFER_STATE
-#define YY_TYPEDEF_YY_BUFFER_STATE
 typedef struct yy_buffer_state *YY_BUFFER_STATE;
-#endif
-
-extern int llvmAsmleng;
 
-extern FILE *llvmAsmin, *llvmAsmout;
+extern int yyleng;
+extern FILE *yyin, *yyout;
 
 #define EOB_ACT_CONTINUE_SCAN 0
 #define EOB_ACT_END_OF_FILE 1
 #define EOB_ACT_LAST_MATCH 2
 
-    /* Note: We specifically omit the test for yy_rule_can_match_eol because it requires
-     *       access to the local variable yy_act. Since yyless() is a macro, it would break
-     *       existing scanners that call yyless() from OUTSIDE llvmAsmlex. 
-     *       One obvious solution it to make yy_act a global. I tried that, and saw
-     *       a 5% performance hit in a non-llvmAsmlineno scanner, because yy_act is
-     *       normally declared as a register variable-- so it is not worth it.
-     */
-    #define  YY_LESS_LINENO(n) \
-            do { \
-                int yyl;\
-                for ( yyl = n; yyl < llvmAsmleng; ++yyl )\
-                    if ( llvmAsmtext[yyl] == '\n' )\
-                        --llvmAsmlineno;\
-            }while(0)
-    
-/* Return all but the first "n" matched characters back to the input stream. */
+/* The funky do-while in the following #define is used to turn the definition
+ * int a single C statement (which needs a semi-colon terminator).  This
+ * avoids problems with code like:
+ *
+ * 	if ( condition_holds )
+ *		yyless( 5 );
+ *	else
+ *		do_something_else();
+ *
+ * Prior to using the do-while the compiler would get upset at the
+ * "else" because it interpreted the "if" statement as being all
+ * done when it reached the ';' after the yyless() call.
+ */
+
+/* Return all but the first 'n' matched characters back to the input stream. */
+
 #define yyless(n) \
 	do \
 		{ \
-		/* Undo effects of setting up llvmAsmtext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		*yy_cp = (yy_hold_char); \
+		/* Undo effects of setting up yytext. */ \
+		*yy_cp = yy_hold_char; \
 		YY_RESTORE_YY_MORE_OFFSET \
-		(yy_c_buf_p) = yy_cp = yy_bp + yyless_macro_arg - YY_MORE_ADJ; \
-		YY_DO_BEFORE_ACTION; /* set up llvmAsmtext again */ \
+		yy_c_buf_p = yy_cp = yy_bp + n - YY_MORE_ADJ; \
+		YY_DO_BEFORE_ACTION; /* set up yytext again */ \
 		} \
 	while ( 0 )
 
-#define unput(c) yyunput( c, (yytext_ptr)  )
+#define unput(c) yyunput( c, yytext_ptr )
+
+/* Some routines like yy_flex_realloc() are emitted as static but are
+   not called by all lexers. This generates warnings in some compilers,
+   notably GCC. Arrange to suppress these. */
+#ifdef __GNUC__
+#define YY_MAY_BE_UNUSED __attribute__((unused))
+#else
+#define YY_MAY_BE_UNUSED
+#endif
 
 /* The following is because we cannot portably get our hands on size_t
  * (without autoconf's help, which isn't available because we want
  * flex-generated scanners to compile on their own).
  */
-
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
 typedef unsigned int yy_size_t;
-#endif
 
-#ifndef YY_STRUCT_YY_BUFFER_STATE
-#define YY_STRUCT_YY_BUFFER_STATE
+
 struct yy_buffer_state
 	{
 	FILE *yy_input_file;
@@ -239,16 +205,12 @@
 	 */
 	int yy_at_bol;
 
-    int yy_bs_lineno; /**< The line count. */
-    int yy_bs_column; /**< The column count. */
-    
 	/* Whether to try to fill the input buffer when we reach the
 	 * end of it.
 	 */
 	int yy_fill_buffer;
 
 	int yy_buffer_status;
-
 #define YY_BUFFER_NEW 0
 #define YY_BUFFER_NORMAL 1
 	/* When an EOF's been seen but there's still some text to process
@@ -258,201 +220,197 @@
 	 * possible backing-up.
 	 *
 	 * When we actually see the EOF, we change the status to "new"
-	 * (via llvmAsmrestart()), so that the user can continue scanning by
-	 * just pointing llvmAsmin at a new input file.
+	 * (via yyrestart()), so that the user can continue scanning by
+	 * just pointing yyin at a new input file.
 	 */
 #define YY_BUFFER_EOF_PENDING 2
-
 	};
-#endif /* !YY_STRUCT_YY_BUFFER_STATE */
 
-/* Stack of input buffers. */
-static size_t yy_buffer_stack_top = 0; /**< index of top of stack. */
-static size_t yy_buffer_stack_max = 0; /**< capacity of stack. */
-static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
+static YY_BUFFER_STATE yy_current_buffer = 0;
 
 /* We provide macros for accessing buffer states in case in the
  * future we want to put the buffer states in a more general
  * "scanner state".
- *
- * Returns the top of the stack, or NULL.
  */
-#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
-                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
-                          : NULL)
+#define YY_CURRENT_BUFFER yy_current_buffer
 
-/* Same as previous macro, but useful when we know that the buffer stack is not
- * NULL or when we need an lvalue. For internal use only.
- */
-#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
 
-/* yy_hold_char holds the character lost when llvmAsmtext is formed. */
+/* yy_hold_char holds the character lost when yytext is formed. */
 static char yy_hold_char;
+
 static int yy_n_chars;		/* number of characters read into yy_ch_buf */
-int llvmAsmleng;
+
+
+int yyleng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = (char *) 0;
-static int yy_init = 0;		/* whether we need to initialize */
+static int yy_init = 1;		/* whether we need to initialize */
 static int yy_start = 0;	/* start state number */
 
-/* Flag which is used to allow llvmAsmwrap()'s to do buffer switches
- * instead of setting up a fresh llvmAsmin.  A bit of a hack ...
+/* Flag which is used to allow yywrap()'s to do buffer switches
+ * instead of setting up a fresh yyin.  A bit of a hack ...
  */
 static int yy_did_buffer_switch_on_eof;
 
-void llvmAsmrestart (FILE *input_file  );
-void llvmAsm_switch_to_buffer (YY_BUFFER_STATE new_buffer  );
-YY_BUFFER_STATE llvmAsm_create_buffer (FILE *file,int size  );
-void llvmAsm_delete_buffer (YY_BUFFER_STATE b  );
-void llvmAsm_flush_buffer (YY_BUFFER_STATE b  );
-void llvmAsmpush_buffer_state (YY_BUFFER_STATE new_buffer  );
-void llvmAsmpop_buffer_state (void );
-
-static void llvmAsmensure_buffer_stack (void );
-static void llvmAsm_load_buffer_state (void );
-static void llvmAsm_init_buffer (YY_BUFFER_STATE b,FILE *file  );
-
-#define YY_FLUSH_BUFFER llvmAsm_flush_buffer(YY_CURRENT_BUFFER )
-
-YY_BUFFER_STATE llvmAsm_scan_buffer (char *base,yy_size_t size  );
-YY_BUFFER_STATE llvmAsm_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE llvmAsm_scan_bytes (yyconst char *bytes,int len  );
-
-void *llvmAsmalloc (yy_size_t  );
-void *llvmAsmrealloc (void *,yy_size_t  );
-void llvmAsmfree (void *  );
+void yyrestart YY_PROTO(( FILE *input_file ));
 
-#define yy_new_buffer llvmAsm_create_buffer
+void yy_switch_to_buffer YY_PROTO(( YY_BUFFER_STATE new_buffer ));
+void yy_load_buffer_state YY_PROTO(( void ));
+YY_BUFFER_STATE yy_create_buffer YY_PROTO(( FILE *file, int size ));
+void yy_delete_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+void yy_init_buffer YY_PROTO(( YY_BUFFER_STATE b, FILE *file ));
+void yy_flush_buffer YY_PROTO(( YY_BUFFER_STATE b ));
+#define YY_FLUSH_BUFFER yy_flush_buffer( yy_current_buffer )
+
+YY_BUFFER_STATE yy_scan_buffer YY_PROTO(( char *base, yy_size_t size ));
+YY_BUFFER_STATE yy_scan_string YY_PROTO(( yyconst char *yy_str ));
+YY_BUFFER_STATE yy_scan_bytes YY_PROTO(( yyconst char *bytes, int len ));
+
+static void *yy_flex_alloc YY_PROTO(( yy_size_t ));
+static inline void *yy_flex_realloc YY_PROTO(( void *, yy_size_t )) YY_MAY_BE_UNUSED;
+static void yy_flex_free YY_PROTO(( void * ));
+
+#define yy_new_buffer yy_create_buffer
 
 #define yy_set_interactive(is_interactive) \
 	{ \
-	if ( ! YY_CURRENT_BUFFER ){ \
-        llvmAsmensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_is_interactive = is_interactive; \
+	if ( ! yy_current_buffer ) \
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+	yy_current_buffer->yy_is_interactive = is_interactive; \
 	}
 
 #define yy_set_bol(at_bol) \
 	{ \
-	if ( ! YY_CURRENT_BUFFER ){\
-        llvmAsmensure_buffer_stack (); \
-		YY_CURRENT_BUFFER_LVALUE =    \
-            llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE ); \
-	} \
-	YY_CURRENT_BUFFER_LVALUE->yy_at_bol = at_bol; \
+	if ( ! yy_current_buffer ) \
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE ); \
+	yy_current_buffer->yy_at_bol = at_bol; \
 	}
 
-#define YY_AT_BOL() (YY_CURRENT_BUFFER_LVALUE->yy_at_bol)
+#define YY_AT_BOL() (yy_current_buffer->yy_at_bol)
 
-/* Begin user sect3 */
 
-#define llvmAsmwrap(n) 1
-#define YY_SKIP_YYWRAP
+#define YY_USES_REJECT
 
+#define yywrap() 1
+#define YY_SKIP_YYWRAP
 typedef unsigned char YY_CHAR;
-
-FILE *llvmAsmin = (FILE *) 0, *llvmAsmout = (FILE *) 0;
-
+FILE *yyin = (FILE *) 0, *yyout = (FILE *) 0;
 typedef int yy_state_type;
-
-extern int llvmAsmlineno;
-
-int llvmAsmlineno = 1;
-
-extern char *llvmAsmtext;
-#define yytext_ptr llvmAsmtext
-
-static yy_state_type yy_get_previous_state (void );
-static yy_state_type yy_try_NUL_trans (yy_state_type current_state  );
-static int yy_get_next_buffer (void );
-static void yy_fatal_error (yyconst char msg[]  );
+extern int yylineno;
+int yylineno = 1;
+extern char *yytext;
+#define yytext_ptr yytext
+
+static yy_state_type yy_get_previous_state YY_PROTO(( void ));
+static yy_state_type yy_try_NUL_trans YY_PROTO(( yy_state_type current_state ));
+static int yy_get_next_buffer YY_PROTO(( void ));
+static void yy_fatal_error YY_PROTO(( yyconst char msg[] ));
 
 /* Done after the current pattern has been matched and before the
- * corresponding action - sets up llvmAsmtext.
+ * corresponding action - sets up yytext.
  */
 #define YY_DO_BEFORE_ACTION \
-	(yytext_ptr) = yy_bp; \
-	llvmAsmleng = (size_t) (yy_cp - yy_bp); \
-	(yy_hold_char) = *yy_cp; \
+	yytext_ptr = yy_bp; \
+	yyleng = (int) (yy_cp - yy_bp); \
+	yy_hold_char = *yy_cp; \
 	*yy_cp = '\0'; \
-	(yy_c_buf_p) = yy_cp;
+	yy_c_buf_p = yy_cp;
 
 #define YY_NUM_RULES 134
 #define YY_END_OF_BUFFER 135
-/* This struct is not used in this scanner,
-   but its presence is necessary. */
-struct yy_trans_info
-	{
-	flex_int32_t yy_verify;
-	flex_int32_t yy_nxt;
-	};
-static yyconst flex_int16_t yy_accept[539] =
+static yyconst short int yy_acclist[215] =
+    {   0,
+      135,  133,  134,  132,  133,  134,  132,  134,  133,  134,
+      133,  134,  133,  134,  133,  134,  133,  134,  133,  134,
+      125,  133,  134,  125,  133,  134,    1,  133,  134,  133,
+      134,  133,  134,  133,  134,  133,  134,  133,  134,  133,
+      134,  133,  134,  133,  134,  133,  134,  133,  134,  133,
+      134,  133,  134,  133,  134,  133,  134,  133,  134,  133,
+      134,  133,  134,  133,  134,  133,  134,  133,  134,  133,
+      134,  133,  134,  133,  134,  123,  121,  119,  128,  126,
+      130,  125,    1,  120,  129,  105,   36,   68,   50,   69,
+       64,   24,  123,  119,  130,   21,  130,  131,  124,  120,
+
+       51,   63,   34,   37,    3,   53,   78,   83,   81,   82,
+       80,   79,   84,   88,  104,   73,   71,   60,   72,   70,
+       52,   86,   77,   75,   76,   74,   87,   85,   65,  122,
+      130,  130,   62,   89,   67,   56,  112,   59,   66,  113,
+       61,   23,  127,   55,   92,   58,   43,   25,    4,   48,
+       54,   57,   44,   12,   91,  130,   31,    2,    5,   45,
+       94,   42,   47,  114,   90,   22,  111,   39,    7,   46,
+       38,   98,   97,    8,   16,  107,  110,   33,   49,  102,
+       96,  106,   26,   27,   95,  108,  103,  101,    6,   28,
+       93,   32,    9,   18,   10,   99,   11,  100,   30,   13,
+
+       15,   14,   29,   35,   17,  109,  115,  117,  118,   40,
+      116,   19,   41,   20
+    } ;
+
+static yyconst short int yy_accept[540] =
     {   0,
-        0,    0,  135,  133,  132,  132,  133,  133,  133,  133,
-      133,  133,  125,  125,    1,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,  133,  133,
-      133,  133,  133,  133,  133,  133,  133,  133,    0,  123,
-        0,  121,  119,  128,    0,  126,    0,  130,  125,    0,
-        1,    0,  120,  129,    0,    0,    0,    0,    0,    0,
-        0,  105,    0,   36,    0,    0,    0,    0,    0,    0,
-       63,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,   48,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,   64,    0,    0,    0,    0,    0,    0,   59,
-
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   24,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  123,  119,  130,   21,  130,    0,  131,    0,  124,
-      120,   49,    0,    0,   58,    0,    0,   34,    0,    0,
-        0,   37,    0,    0,    0,    0,    0,    0,    0,    0,
-        3,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   51,    0,   73,   78,   76,
-       77,   75,   74,    0,   79,   83,    0,  104,    0,    0,
-
-        0,    0,    0,   68,   66,  100,    0,    0,    0,   67,
-       65,    0,    0,   50,    0,    0,    0,    0,    0,    0,
-        0,   81,   72,   70,    0,   71,   69,    0,   82,   80,
-        0,    0,    0,    0,    0,    0,    0,    0,   60,    0,
-        0,  122,  130,    0,    0,    0,  130,    0,    0,    0,
-      102,    0,    0,   84,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,   62,   54,    0,
-        0,    0,    0,  112,   57,    0,    0,    0,   61,    0,
-        0,    0,    0,    0,    0,    0,    0,  113,  101,    0,
-        0,   23,    0,    0,  127,   53,    0,    0,   87,    0,
-
-        0,    0,   56,   89,    0,    0,   25,    0,    0,    4,
-        0,   46,   52,    0,    0,    0,    0,   55,    0,   42,
-        0,   12,    0,    0,   86,  130,   31,    0,    0,    2,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    5,    0,   43,   91,    0,    0,    0,    0,
-        0,    0,    0,   88,    0,    0,    0,    0,   45,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,  114,
-        0,    0,    0,   85,    0,   22,    0,    0,    0,    0,
-        0,    0,    0,  111,    0,    0,   39,    0,    0,    0,
-        7,    0,    0,    0,   44,    0,    0,   38,   95,   94,
-
-        0,    0,    8,   16,    0,    0,    0,    0,  107,    0,
-      110,   33,   47,    0,    0,   99,    0,    0,   93,  106,
-       26,   27,   92,    0,  108,  103,    0,    0,    0,    0,
-        0,   98,    0,    0,    6,   28,    0,    0,    0,    0,
-        0,   90,    0,    0,    0,    0,    0,    0,    0,   32,
-        0,    0,    0,    0,    0,    0,    0,    0,    9,    0,
-        0,    0,    0,   18,    0,    0,    0,    0,   10,   96,
-       11,   97,    0,    0,    0,   30,    0,    0,    0,   13,
-        0,   15,   14,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   29,    0,    0,    0,    0,    0,
-
-        0,   35,    0,    0,    0,    0,   17,    0,    0,    0,
-        0,    0,  109,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,  115,    0,  117,  118,    0,
-       40,    0,  116,   19,   41,    0,   20,    0
+        1,    1,    1,    2,    4,    7,    9,   11,   13,   15,
+       17,   19,   21,   24,   27,   30,   32,   34,   36,   38,
+       40,   42,   44,   46,   48,   50,   52,   54,   56,   58,
+       60,   62,   64,   66,   68,   70,   72,   74,   76,   76,
+       77,   77,   78,   79,   80,   80,   81,   81,   82,   83,
+       83,   84,   84,   85,   86,   86,   86,   86,   86,   86,
+       86,   86,   87,   87,   88,   88,   88,   88,   88,   88,
+       88,   89,   89,   89,   89,   89,   89,   89,   89,   89,
+       89,   89,   90,   90,   90,   90,   90,   90,   90,   90,
+       90,   90,   90,   91,   91,   91,   91,   91,   91,   91,
+
+       92,   92,   92,   92,   92,   92,   92,   92,   92,   92,
+       92,   92,   92,   92,   92,   92,   93,   93,   93,   93,
+       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
+       93,   93,   94,   95,   96,   97,   98,   98,   99,   99,
+      100,  101,  102,  102,  102,  103,  103,  103,  104,  104,
+      104,  104,  105,  105,  105,  105,  105,  105,  105,  105,
+      105,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  106,  106,  106,  106,
+      106,  106,  106,  106,  106,  106,  107,  107,  108,  109,
+      110,  111,  112,  113,  113,  114,  115,  115,  116,  116,
+
+      116,  116,  116,  116,  117,  118,  119,  119,  119,  119,
+      120,  121,  121,  121,  122,  122,  122,  122,  122,  122,
+      122,  122,  123,  124,  125,  125,  126,  127,  127,  128,
+      129,  129,  129,  129,  129,  129,  129,  129,  129,  130,
+      130,  130,  131,  132,  132,  132,  132,  133,  133,  133,
+      133,  134,  134,  134,  135,  135,  135,  135,  135,  135,
+      135,  135,  135,  135,  135,  135,  135,  135,  136,  137,
+      137,  137,  137,  137,  138,  139,  139,  139,  139,  140,
+      140,  140,  140,  140,  140,  140,  140,  140,  141,  142,
+      142,  142,  143,  143,  143,  144,  145,  145,  145,  146,
+
+      146,  146,  146,  147,  148,  148,  148,  149,  149,  149,
+      150,  150,  151,  152,  152,  152,  152,  152,  153,  153,
+      154,  154,  155,  155,  155,  156,  157,  158,  158,  158,
+      159,  159,  159,  159,  159,  159,  159,  159,  159,  159,
+      159,  159,  159,  160,  160,  161,  162,  162,  162,  162,
+      162,  162,  162,  162,  163,  163,  163,  163,  163,  164,
+      164,  164,  164,  164,  164,  164,  164,  164,  164,  164,
+      165,  165,  165,  165,  166,  166,  167,  167,  167,  167,
+      167,  167,  167,  167,  168,  168,  168,  169,  169,  169,
+      169,  170,  170,  170,  170,  171,  171,  171,  172,  173,
+
+      174,  174,  174,  175,  176,  176,  176,  176,  176,  177,
+      177,  178,  179,  180,  180,  180,  181,  181,  181,  182,
+      183,  184,  185,  186,  186,  187,  188,  188,  188,  188,
+      188,  188,  189,  189,  189,  190,  191,  191,  191,  191,
+      191,  191,  192,  192,  192,  192,  192,  192,  192,  192,
+      193,  193,  193,  193,  193,  193,  193,  193,  193,  194,
+      194,  194,  194,  194,  195,  195,  195,  195,  195,  196,
+      197,  198,  199,  199,  199,  199,  200,  200,  200,  200,
+      201,  201,  202,  203,  203,  203,  203,  203,  203,  203,
+      203,  203,  203,  203,  203,  204,  204,  204,  204,  204,
+
+      204,  204,  205,  205,  205,  205,  205,  206,  206,  206,
+      206,  206,  206,  207,  207,  207,  207,  207,  207,  207,
+      207,  207,  207,  207,  207,  207,  208,  208,  209,  210,
+      210,  211,  211,  212,  213,  214,  214,  215,  215
     } ;
 
-static yyconst flex_int32_t yy_ec[256] =
+static yyconst int yy_ec[256] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    2,    3,
         1,    1,    2,    1,    1,    1,    1,    1,    1,    1,
@@ -484,7 +442,7 @@
         1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int32_t yy_meta[45] =
+static yyconst int yy_meta[45] =
     {   0,
         1,    1,    2,    3,    4,    1,    1,    4,    4,    4,
         4,    4,    4,    5,    1,    1,    4,    4,    4,    4,
@@ -493,7 +451,7 @@
         4,    4,    4,    4
     } ;
 
-static yyconst flex_int16_t yy_base[547] =
+static yyconst short int yy_base[547] =
     {   0,
         0,    0, 1173, 1174, 1174, 1174, 1168, 1157,   35,   39,
        43,   49,   55,   61,    0,   72,   64,   67,   66,   86,
@@ -557,7 +515,7 @@
       254, 1054, 1057,  220, 1061,  167
     } ;
 
-static yyconst flex_int16_t yy_def[547] =
+static yyconst short int yy_def[547] =
     {   0,
       538,    1,  538,  538,  538,  538,  539,  540,  541,  538,
       540,  540,  540,  540,  542,  543,  540,  540,  540,  540,
@@ -621,7 +579,7 @@
       538,  538,  538,  538,  538,  538
     } ;
 
-static yyconst flex_int16_t yy_nxt[1219] =
+static yyconst short int yy_nxt[1219] =
     {   0,
         4,    5,    6,    7,    8,    9,   10,   11,   12,   13,
        14,   14,   14,    4,   15,   16,    8,    8,    8,   17,
@@ -759,7 +717,7 @@
       538,  538,  538,  538,  538,  538,  538,  538
     } ;
 
-static yyconst flex_int16_t yy_chk[1219] =
+static yyconst short int yy_chk[1219] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -897,32 +855,22 @@
       538,  538,  538,  538,  538,  538,  538,  538
     } ;
 
-/* Table of booleans, true if rule could match eol. */
-static yyconst flex_int32_t yy_rule_can_match_eol[135] =
-    {   0,
-0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
-    0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0,     };
-
-static yy_state_type yy_last_accepting_state;
-static char *yy_last_accepting_cpos;
-
-extern int llvmAsm_flex_debug;
-int llvmAsm_flex_debug = 0;
-
-/* The intent behind this definition is that it'll catch
- * any uses of REJECT which flex missed.
- */
-#define REJECT reject_used_but_not_detected
+static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
+static char *yy_full_match;
+static int yy_lp;
+#define REJECT \
+{ \
+*yy_cp = yy_hold_char; /* undo effects of setting up yytext */ \
+yy_cp = yy_full_match; /* restore poss. backed-over text */ \
+++yy_lp; \
+goto find_rule; \
+}
 #define yymore() yymore_used_but_not_detected
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
-char *llvmAsmtext;
-#line 1 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+char *yytext;
+#line 1 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+#define INITIAL 0
 /*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
 //
 //                     The LLVM Compiler Infrastructure
@@ -935,7 +883,8 @@
 //  This file implements the flex scanner for LLVM assembly languages files.
 //
 //===----------------------------------------------------------------------===*/
-#line 28 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#define YY_NEVER_INTERACTIVE 1
+#line 28 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 #include "ParserInternals.h"
 #include "llvm/Module.h"
 #include <list>
@@ -944,10 +893,10 @@
 #include <cstdlib>
 
 void set_scan_file(FILE * F){
-  llvmAsm_switch_to_buffer(llvmAsm_create_buffer(F,YY_BUF_SIZE ) );
+  yy_switch_to_buffer(yy_create_buffer( F, YY_BUF_SIZE ) );
 }
 void set_scan_string (const char * str) {
-  llvmAsm_scan_string (str);
+  yy_scan_string (str);
 }
 
 // Construct a token value for a non-obsolete token
@@ -1068,23 +1017,7 @@
 /* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
  * it to deal with 64 bit numbers.
  */
-#line 1072 "Lexer.cpp"
-
-#define INITIAL 0
-
-#ifndef YY_NO_UNISTD_H
-/* Special case for "unistd.h", since it is non-ANSI. We include it way
- * down here because we want the user's section 1 to have been scanned first.
- * The user has a chance to override it with an option.
- */
-#include <unistd.h>
-#endif
-
-#ifndef YY_EXTRA_TYPE
-#define YY_EXTRA_TYPE void *
-#endif
-
-static int yy_init_globals (void );
+#line 1021 "Lexer.cpp"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -1092,30 +1025,65 @@
 
 #ifndef YY_SKIP_YYWRAP
 #ifdef __cplusplus
-extern "C" int llvmAsmwrap (void );
+extern "C" int yywrap YY_PROTO(( void ));
 #else
-extern int llvmAsmwrap (void );
+extern int yywrap YY_PROTO(( void ));
+#endif
 #endif
+
+#ifndef YY_NO_UNPUT
+static inline void yyunput YY_PROTO(( int c, char *buf_ptr ));
 #endif
 
-    static inline void yyunput (int c,char *buf_ptr  );
-    
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char *,yyconst char *,int );
+static void yy_flex_strncpy YY_PROTO(( char *, yyconst char *, int ));
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * );
+static int yy_flex_strlen YY_PROTO(( yyconst char * ));
 #endif
 
 #ifndef YY_NO_INPUT
-
 #ifdef __cplusplus
-static int yyinput (void );
+static int yyinput YY_PROTO(( void ));
+#else
+static int input YY_PROTO(( void ));
+#endif
+#endif
+
+#if YY_STACK_USED
+static int yy_start_stack_ptr = 0;
+static int yy_start_stack_depth = 0;
+static int *yy_start_stack = 0;
+#ifndef YY_NO_PUSH_STATE
+static void yy_push_state YY_PROTO(( int new_state ));
+#endif
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state YY_PROTO(( void ));
+#endif
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state YY_PROTO(( void ));
+#endif
+
 #else
-static int input (void );
+#define YY_NO_PUSH_STATE 1
+#define YY_NO_POP_STATE 1
+#define YY_NO_TOP_STATE 1
 #endif
 
+#ifdef YY_MALLOC_DECL
+YY_MALLOC_DECL
+#else
+#if __STDC__
+#ifndef __cplusplus
+#include <stdlib.h>
+#endif
+#else
+/* Just try to get by without declaring the routines.  This will fail
+ * miserably on non-ANSI systems for which sizeof(size_t) != sizeof(int)
+ * or sizeof(void*) != sizeof(int).
+ */
+#endif
 #endif
 
 /* Amount of stuff to slurp up with each read. */
@@ -1124,11 +1092,12 @@
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
+
 #ifndef ECHO
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO (void) fwrite( llvmAsmtext, llvmAsmleng, 1, llvmAsmout )
+#define ECHO (void) fwrite( yytext, yyleng, 1, yyout )
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -1136,35 +1105,21 @@
  */
 #ifndef YY_INPUT
 #define YY_INPUT(buf,result,max_size) \
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
+	if ( yy_current_buffer->yy_is_interactive ) \
 		{ \
-		int c = '*'; \
-		size_t n; \
+		int c = '*', n; \
 		for ( n = 0; n < max_size && \
-			     (c = getc( llvmAsmin )) != EOF && c != '\n'; ++n ) \
+			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
 		if ( c == '\n' ) \
 			buf[n++] = (char) c; \
-		if ( c == EOF && ferror( llvmAsmin ) ) \
+		if ( c == EOF && ferror( yyin ) ) \
 			YY_FATAL_ERROR( "input in flex scanner failed" ); \
 		result = n; \
 		} \
-	else \
-		{ \
-		errno=0; \
-		while ( (result = fread(buf, 1, max_size, llvmAsmin))==0 && ferror(llvmAsmin)) \
-			{ \
-			if( errno != EINTR) \
-				{ \
-				YY_FATAL_ERROR( "input in flex scanner failed" ); \
-				break; \
-				} \
-			errno=0; \
-			clearerr(llvmAsmin); \
-			} \
-		}\
-\
-
+	else if ( ((result = fread( buf, 1, max_size, yyin )) == 0) \
+		  && ferror( yyin ) ) \
+		YY_FATAL_ERROR( "input in flex scanner failed" );
 #endif
 
 /* No semi-colon after return; correct usage is to write "yyterminate();" -
@@ -1185,20 +1140,14 @@
 #define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
 #endif
 
-/* end tables serialization structures and prototypes */
-
 /* Default declaration of generated scanner - a define so the user can
  * easily add parameters.
  */
 #ifndef YY_DECL
-#define YY_DECL_IS_OURS 1
-
-extern int llvmAsmlex (void);
-
-#define YY_DECL int llvmAsmlex (void)
-#endif /* !YY_DECL */
+#define YY_DECL int yylex YY_PROTO(( void ))
+#endif
 
-/* Code executed at the beginning of each rule, after llvmAsmtext and llvmAsmleng
+/* Code executed at the beginning of each rule, after yytext and yyleng
  * have been set up.
  */
 #ifndef YY_USER_ACTION
@@ -1213,67 +1162,60 @@
 #define YY_RULE_SETUP \
 	YY_USER_ACTION
 
-/** The main scanner function which does all the work.
- */
 YY_DECL
-{
+	{
 	register yy_state_type yy_current_state;
-	register char *yy_cp, *yy_bp;
+	register char *yy_cp = NULL, *yy_bp = NULL;
 	register int yy_act;
-    
-#line 189 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+
+#line 189 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 
 
-#line 1228 "Lexer.cpp"
+#line 1175 "Lexer.cpp"
 
-	if ( !(yy_init) )
+	if ( yy_init )
 		{
-		(yy_init) = 1;
+		yy_init = 0;
 
 #ifdef YY_USER_INIT
 		YY_USER_INIT;
 #endif
 
-		if ( ! (yy_start) )
-			(yy_start) = 1;	/* first start state */
+		if ( ! yy_start )
+			yy_start = 1;	/* first start state */
 
-		if ( ! llvmAsmin )
-			llvmAsmin = stdin;
+		if ( ! yyin )
+			yyin = stdin;
 
-		if ( ! llvmAsmout )
-			llvmAsmout = stdout;
+		if ( ! yyout )
+			yyout = stdout;
 
-		if ( ! YY_CURRENT_BUFFER ) {
-			llvmAsmensure_buffer_stack ();
-			YY_CURRENT_BUFFER_LVALUE =
-				llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE );
-		}
+		if ( ! yy_current_buffer )
+			yy_current_buffer =
+				yy_create_buffer( yyin, YY_BUF_SIZE );
 
-		llvmAsm_load_buffer_state( );
+		yy_load_buffer_state();
 		}
 
 	while ( 1 )		/* loops until end-of-file is reached */
 		{
-		yy_cp = (yy_c_buf_p);
+		yy_cp = yy_c_buf_p;
 
-		/* Support of llvmAsmtext. */
-		*yy_cp = (yy_hold_char);
+		/* Support of yytext. */
+		*yy_cp = yy_hold_char;
 
 		/* yy_bp points to the position in yy_ch_buf of the start of
 		 * the current run.
 		 */
 		yy_bp = yy_cp;
 
-		yy_current_state = (yy_start);
+		yy_current_state = yy_start;
+		yy_state_ptr = yy_state_buf;
+		*yy_state_ptr++ = yy_current_state;
 yy_match:
 		do
 			{
 			register YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)];
-			if ( yy_accept[yy_current_state] )
-				{
-				(yy_last_accepting_state) = yy_current_state;
-				(yy_last_accepting_cpos) = yy_cp;
-				}
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
@@ -1281,707 +1223,711 @@
 					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 != 538 );
-		yy_cp = (yy_last_accepting_cpos);
-		yy_current_state = (yy_last_accepting_state);
 
 yy_find_action:
-		yy_act = yy_accept[yy_current_state];
+		yy_current_state = *--yy_state_ptr;
+		yy_lp = yy_accept[yy_current_state];
+find_rule: /* we branch to this label when backing up */
+		for ( ; ; ) /* until we find what rule we matched */
+			{
+			if ( yy_lp && yy_lp < yy_accept[yy_current_state + 1] )
+				{
+				yy_act = yy_acclist[yy_lp];
+					{
+					yy_full_match = yy_cp;
+					break;
+					}
+				}
+			--yy_cp;
+			yy_current_state = *--yy_state_ptr;
+			yy_lp = yy_accept[yy_current_state];
+			}
 
 		YY_DO_BEFORE_ACTION;
 
-		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
+		if ( yy_act != YY_END_OF_BUFFER )
 			{
 			int yyl;
-			for ( yyl = 0; yyl < llvmAsmleng; ++yyl )
-				if ( llvmAsmtext[yyl] == '\n' )
-					   
-    llvmAsmlineno++;
-;
+			for ( yyl = 0; yyl < yyleng; ++yyl )
+				if ( yytext[yyl] == '\n' )
+					++yylineno;
 			}
 
 do_action:	/* This label is used only to access EOF actions. */
 
+
 		switch ( yy_act )
 	{ /* beginning of action switch */
-			case 0: /* must back up */
-			/* undo the effects of YY_DO_BEFORE_ACTION */
-			*yy_cp = (yy_hold_char);
-			yy_cp = (yy_last_accepting_cpos);
-			yy_current_state = (yy_last_accepting_state);
-			goto yy_find_action;
-
 case 1:
 YY_RULE_SETUP
-#line 191 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 191 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { /* Ignore comments for now */ }
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 193 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 193 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return BEGINTOK; }
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 194 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 194 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return ENDTOK; }
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 195 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 195 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return TRUETOK;  }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 196 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 196 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return FALSETOK; }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 197 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 197 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DECLARE; }
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 198 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 198 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DEFINE; }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 199 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 199 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return GLOBAL; }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 200 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 200 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return CONSTANT; }
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 201 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 201 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return INTERNAL; }
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 202 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 202 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return LINKONCE; }
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 203 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 203 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return WEAK; }
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 204 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 204 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return APPENDING; }
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 205 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 205 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DLLIMPORT; }
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 206 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 206 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DLLEXPORT; }
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 207 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 207 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return HIDDEN; }
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 208 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 208 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return EXTERN_WEAK; }
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 209 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 209 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return EXTERNAL; }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 210 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 210 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return IMPLEMENTATION; }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 211 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 211 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return ZEROINITIALIZER; }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 212 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 212 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DOTDOTDOT; }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 213 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 213 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return UNDEF; }
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 214 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 214 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return NULL_TOK; }
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 215 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 215 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return TO; }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 216 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 216 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return TAIL; }
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 217 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 217 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return TARGET; }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 218 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 218 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return TRIPLE; }
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 219 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 219 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DEPLIBS; }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 220 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 220 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return DATALAYOUT; }
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 221 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 221 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return VOLATILE; }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 222 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 222 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return ALIGN;  }
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 223 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 223 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return SECTION; }
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 224 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 224 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return MODULE; }
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 225 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 225 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return ASM_TOK; }
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 226 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 226 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return SIDEEFFECT; }
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 228 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 228 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return CC_TOK; }
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 229 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 229 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return CCC_TOK; }
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 230 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 230 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return FASTCC_TOK; }
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 231 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 231 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return COLDCC_TOK; }
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 232 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 232 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return X86_STDCALLCC_TOK; }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 233 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 233 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { return X86_FASTCALLCC_TOK; }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 235 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TY(Type::VoidTy,  VOID);  }
+#line 235 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return INREG; }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 236 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TY(Type::FloatTy, FLOAT); }
+#line 236 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return SRET;  }
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 237 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TY(Type::DoubleTy,DOUBLE);}
+#line 238 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TY(Type::VoidTy,  VOID);  }
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 238 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TY(Type::LabelTy, LABEL); }
+#line 239 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TY(Type::FloatTy, FLOAT); }
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 239 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return TYPE;   }
+#line 240 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TY(Type::DoubleTy,DOUBLE);}
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 240 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return OPAQUE; }
+#line 241 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TY(Type::LabelTy, LABEL); }
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 241 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ uint64_t NumBits = atoull(llvmAsmtext+1);
-                  if (NumBits < IntegerType::MIN_INT_BITS || 
-                      NumBits > IntegerType::MAX_INT_BITS)
-                    GenerateError("Bitwidth for integer type out of range!");
-                  const Type* Ty = IntegerType::get(NumBits);
-                  RET_TY(Ty, INTTYPE);
-                }
+#line 242 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return TYPE;   }
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 249 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Add, ADD); }
+#line 243 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return OPAQUE; }
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 250 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Sub, SUB); }
+#line 244 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ uint64_t NumBits = atoull(yytext+1);
+                  if (NumBits < IntegerType::MIN_INT_BITS || 
+                      NumBits > IntegerType::MAX_INT_BITS)
+                    GenerateError("Bitwidth for integer type out of range!");
+                  const Type* Ty = IntegerType::get(NumBits);
+                  RET_TY(Ty, INTTYPE);
+                }
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 251 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Mul, MUL); }
+#line 252 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Add, ADD); }
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 252 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, UDiv, UDIV); }
+#line 253 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Sub, SUB); }
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 253 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SDiv, SDIV); }
+#line 254 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Mul, MUL); }
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 254 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, FDiv, FDIV); }
+#line 255 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, UDiv, UDIV); }
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 255 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, URem, UREM); }
+#line 256 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SDiv, SDIV); }
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 256 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SRem, SREM); }
+#line 257 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, FDiv, FDIV); }
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 257 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, FRem, FREM); }
+#line 258 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, URem, UREM); }
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 258 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, And, AND); }
+#line 259 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SRem, SREM); }
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 259 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Or , OR ); }
+#line 260 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, FRem, FREM); }
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 260 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Xor, XOR); }
+#line 261 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Shl, SHL); }
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 261 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal,  ICmp,  ICMP); }
+#line 262 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, LShr, LSHR); }
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 262 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal,  FCmp,  FCMP); }
+#line 263 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, AShr, ASHR); }
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 263 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return EQ;  }
+#line 264 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, And, AND); }
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 264 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return NE;  }
+#line 265 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Or , OR ); }
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 265 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return SLT; }
+#line 266 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Xor, XOR); }
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 266 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return SGT; }
+#line 267 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal,  ICmp,  ICMP); }
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 267 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return SLE; }
+#line 268 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal,  FCmp,  FCMP); }
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 268 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return SGE; }
+#line 270 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return EQ;  }
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 269 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return ULT; }
+#line 271 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return NE;  }
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 270 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return UGT; }
+#line 272 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return SLT; }
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 271 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return ULE; }
+#line 273 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return SGT; }
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 272 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return UGE; }
+#line 274 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return SLE; }
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 273 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return OEQ; }
+#line 275 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return SGE; }
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 274 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return ONE; }
+#line 276 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return ULT; }
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 275 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return OLT; }
+#line 277 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return UGT; }
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 276 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return OGT; }
+#line 278 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return ULE; }
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 277 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return OLE; }
+#line 279 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return UGE; }
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 278 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return OGE; }
+#line 280 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return OEQ; }
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 279 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return ORD; }
+#line 281 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return ONE; }
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 280 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return UNO; }
+#line 282 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return OLT; }
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 281 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return UEQ; }
+#line 283 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return OGT; }
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 282 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return UNE; }
+#line 284 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return OLE; }
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 284 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
+#line 285 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return OGE; }
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 285 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Call, CALL); }
+#line 286 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return ORD; }
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 286 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, Trunc, TRUNC); }
+#line 287 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return UNO; }
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 287 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, ZExt, ZEXT); }
+#line 288 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return UEQ; }
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 288 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, SExt, SEXT); }
+#line 289 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return UNE; }
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 289 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return INREG; }
+#line 291 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 290 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return SRET;  }
+#line 292 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Call, CALL); }
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 291 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
+#line 293 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, Trunc, TRUNC); }
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 292 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, FPExt, FPEXT); }
+#line 294 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, ZExt, ZEXT); }
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 293 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, UIToFP, UITOFP); }
+#line 295 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, SExt, SEXT); }
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 294 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, SIToFP, SITOFP); }
+#line 296 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 295 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, FPToUI, FPTOUI); }
+#line 297 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, FPExt, FPEXT); }
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 296 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, FPToSI, FPTOSI); }
+#line 298 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, UIToFP, UITOFP); }
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 297 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, IntToPtr, INTTOPTR); }
+#line 299 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, SIToFP, SITOFP); }
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 298 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
+#line 300 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, FPToUI, FPTOUI); }
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 299 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(CastOpVal, BitCast, BITCAST); }
+#line 301 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, FPToSI, FPTOSI); }
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 300 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Select, SELECT); }
+#line 302 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, IntToPtr, INTTOPTR); }
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 301 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Shl, SHL); }
+#line 303 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 302 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, LShr, LSHR); }
+#line 304 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(CastOpVal, BitCast, BITCAST); }
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 303 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, AShr, ASHR); }
+#line 305 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Select, SELECT); }
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 304 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 306 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal, VAArg , VAARG); }
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 305 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 307 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Ret, RET); }
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 306 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 308 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Br, BR); }
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 307 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 309 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Switch, SWITCH); }
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 308 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 310 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Invoke, INVOKE); }
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 309 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 311 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Unwind, UNWIND); }
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 310 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 312 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 312 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 314 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(MemOpVal, Malloc, MALLOC); }
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 313 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 315 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(MemOpVal, Alloca, ALLOCA); }
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 314 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 316 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(MemOpVal, Free, FREE); }
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 315 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 317 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(MemOpVal, Load, LOAD); }
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 316 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 318 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(MemOpVal, Store, STORE); }
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 317 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 319 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 319 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 321 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 320 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 322 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal, InsertElement, INSERTELEMENT); }
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 321 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 323 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { RET_TOK(OtherOpVal, ShuffleVector, SHUFFLEVECTOR); }
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 324 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 326 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
-                  UnEscapeLexed(llvmAsmtext+1);
-                  llvmAsmlval.StrVal = strdup(llvmAsmtext+1);             // Skip %
+                  UnEscapeLexed(yytext+1);
+                  llvmAsmlval.StrVal = strdup(yytext+1);             // Skip %
                   return LOCALVAR;
                 }
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 329 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 331 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
-                  UnEscapeLexed(llvmAsmtext+1);
-                  llvmAsmlval.StrVal = strdup(llvmAsmtext+1);             // Skip @
+                  UnEscapeLexed(yytext+1);
+                  llvmAsmlval.StrVal = strdup(yytext+1);             // Skip @
                   return GLOBALVAR;
                 }
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 334 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 336 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
-                  llvmAsmtext[strlen(llvmAsmtext)-1] = 0;  // nuke colon
-                  UnEscapeLexed(llvmAsmtext);
-                  llvmAsmlval.StrVal = strdup(llvmAsmtext);
+                  yytext[strlen(yytext)-1] = 0;  // nuke colon
+                  UnEscapeLexed(yytext);
+                  llvmAsmlval.StrVal = strdup(yytext);
                   return LABELSTR;
                 }
 	YY_BREAK
 case 122:
-/* rule 122 can match eol */
 YY_RULE_SETUP
-#line 340 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 342 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
-                  llvmAsmtext[strlen(llvmAsmtext)-2] = 0;  // nuke colon, end quote
-                  UnEscapeLexed(llvmAsmtext+1);
-                  llvmAsmlval.StrVal = strdup(llvmAsmtext+1);
+                  yytext[strlen(yytext)-2] = 0;  // nuke colon, end quote
+                  UnEscapeLexed(yytext+1);
+                  llvmAsmlval.StrVal = strdup(yytext+1);
                   return LABELSTR;
                 }
 	YY_BREAK
 case 123:
-/* rule 123 can match eol */
 YY_RULE_SETUP
-#line 347 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 349 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { // Note that we cannot unescape a string constant here!  The
                    // string constant might contain a \00 which would not be
                    // understood by the string stuff.  It is valid to make a
                    // [sbyte] c"Hello World\00" constant, for example.
                    //
-                   llvmAsmtext[strlen(llvmAsmtext)-1] = 0;           // nuke end quote
-                   llvmAsmlval.StrVal = strdup(llvmAsmtext+1);  // Nuke start quote
+                   yytext[strlen(yytext)-1] = 0;           // nuke end quote
+                   llvmAsmlval.StrVal = strdup(yytext+1);  // Nuke start quote
                    return STRINGCONSTANT;
                  }
 	YY_BREAK
 case 124:
-/* rule 124 can match eol */
 YY_RULE_SETUP
-#line 356 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 358 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
-                     llvmAsmtext[strlen(llvmAsmtext)-1] = 0;           // nuke end quote
-                     llvmAsmlval.StrVal = strdup(llvmAsmtext+2);  // Nuke @, quote
+                     yytext[strlen(yytext)-1] = 0;           // nuke end quote
+                     llvmAsmlval.StrVal = strdup(yytext+2);  // Nuke @, quote
                      return ATSTRINGCONSTANT;
                    }
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 364 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.UInt64Val = atoull(llvmAsmtext); return EUINT64VAL; }
+#line 366 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.UInt64Val = atoull(yytext); return EUINT64VAL; }
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 365 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 367 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
-                  uint64_t Val = atoull(llvmAsmtext+1);
+                  uint64_t Val = atoull(yytext+1);
                   // +1:  we have bigger negative range
                   if (Val > (uint64_t)INT64_MAX+1)
                     GenerateError("Constant too large for signed 64 bits!");
@@ -1991,17 +1937,17 @@
 	YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 373 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 375 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
-                   llvmAsmlval.UInt64Val = HexIntToVal(llvmAsmtext+3);
-                   return llvmAsmtext[0] == 's' ? ESINT64VAL : EUINT64VAL;
+                   llvmAsmlval.UInt64Val = HexIntToVal(yytext+3);
+                   return yytext[0] == 's' ? ESINT64VAL : EUINT64VAL;
                  }
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 378 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 380 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
-                  uint64_t Val = atoull(llvmAsmtext+1);
+                  uint64_t Val = atoull(yytext+1);
                   if ((unsigned)Val != Val)
                     GenerateError("Invalid value number (too large)!");
                   llvmAsmlval.UIntVal = unsigned(Val);
@@ -2010,9 +1956,9 @@
 	YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 385 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 387 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
-                  uint64_t Val = atoull(llvmAsmtext+1);
+                  uint64_t Val = atoull(yytext+1);
                   if ((unsigned)Val != Val)
                     GenerateError("Invalid value number (too large)!");
                   llvmAsmlval.UIntVal = unsigned(Val);
@@ -2021,65 +1967,64 @@
 	YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 393 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.FPVal = atof(llvmAsmtext); return FPVAL; }
+#line 395 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
 	YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 394 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.FPVal = HexToFP(llvmAsmtext); return FPVAL; }
+#line 396 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 396 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 398 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 {
                   /* Make sure to free the internal buffers for flex when we are
                    * done reading our input!
                    */
-                  llvmAsm_delete_buffer(YY_CURRENT_BUFFER);
+                  yy_delete_buffer(YY_CURRENT_BUFFER);
                   return EOF;
                 }
 	YY_BREAK
 case 132:
-/* rule 132 can match eol */
 YY_RULE_SETUP
-#line 404 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 406 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 { /* Ignore whitespace */ }
 	YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 405 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
-{ return llvmAsmtext[0]; }
+#line 407 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
+{ return yytext[0]; }
 	YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 407 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+#line 409 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
 	YY_BREAK
-#line 2059 "Lexer.cpp"
+#line 2004 "Lexer.cpp"
 
 	case YY_END_OF_BUFFER:
 		{
 		/* Amount of text matched not including the EOB char. */
-		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
+		int yy_amount_of_matched_text = (int) (yy_cp - yytext_ptr) - 1;
 
 		/* Undo the effects of YY_DO_BEFORE_ACTION. */
-		*yy_cp = (yy_hold_char);
+		*yy_cp = yy_hold_char;
 		YY_RESTORE_YY_MORE_OFFSET
 
-		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
+		if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_NEW )
 			{
 			/* We're scanning a new file or input source.  It's
 			 * possible that this happened because the user
-			 * just pointed llvmAsmin at a new source and called
-			 * llvmAsmlex().  If so, then we have to assure
-			 * consistency between YY_CURRENT_BUFFER and our
+			 * just pointed yyin at a new source and called
+			 * yylex().  If so, then we have to assure
+			 * consistency between yy_current_buffer and our
 			 * globals.  Here is the right place to do so, because
 			 * this is the first action (other than possibly a
 			 * back-up) that will match for the new input source.
 			 */
-			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-			YY_CURRENT_BUFFER_LVALUE->yy_input_file = llvmAsmin;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
+			yy_n_chars = yy_current_buffer->yy_n_chars;
+			yy_current_buffer->yy_input_file = yyin;
+			yy_current_buffer->yy_buffer_status = YY_BUFFER_NORMAL;
 			}
 
 		/* Note that here we test for yy_c_buf_p "<=" to the position
@@ -2089,13 +2034,13 @@
 		 * end-of-buffer state).  Contrast this with the test
 		 * in input().
 		 */
-		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+		if ( yy_c_buf_p <= &yy_current_buffer->yy_ch_buf[yy_n_chars] )
 			{ /* This was really a NUL. */
 			yy_state_type yy_next_state;
 
-			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
+			yy_c_buf_p = yytext_ptr + yy_amount_of_matched_text;
 
-			yy_current_state = yy_get_previous_state(  );
+			yy_current_state = yy_get_previous_state();
 
 			/* Okay, we're now positioned to make the NUL
 			 * transition.  We couldn't have
@@ -2108,42 +2053,41 @@
 
 			yy_next_state = yy_try_NUL_trans( yy_current_state );
 
-			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+			yy_bp = yytext_ptr + YY_MORE_ADJ;
 
 			if ( yy_next_state )
 				{
 				/* Consume the NUL. */
-				yy_cp = ++(yy_c_buf_p);
+				yy_cp = ++yy_c_buf_p;
 				yy_current_state = yy_next_state;
 				goto yy_match;
 				}
 
 			else
 				{
-				yy_cp = (yy_last_accepting_cpos);
-				yy_current_state = (yy_last_accepting_state);
+				yy_cp = yy_c_buf_p;
 				goto yy_find_action;
 				}
 			}
 
-		else switch ( yy_get_next_buffer(  ) )
+		else switch ( yy_get_next_buffer() )
 			{
 			case EOB_ACT_END_OF_FILE:
 				{
-				(yy_did_buffer_switch_on_eof) = 0;
+				yy_did_buffer_switch_on_eof = 0;
 
-				if ( llvmAsmwrap( ) )
+				if ( yywrap() )
 					{
 					/* Note: because we've taken care in
 					 * yy_get_next_buffer() to have set up
-					 * llvmAsmtext, we can now set up
+					 * yytext, we can now set up
 					 * yy_c_buf_p so that if some total
 					 * hoser (like flex itself) wants to
 					 * call the scanner after we return the
 					 * YY_NULL, it'll still work - another
 					 * YY_NULL will get returned.
 					 */
-					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
+					yy_c_buf_p = yytext_ptr + YY_MORE_ADJ;
 
 					yy_act = YY_STATE_EOF(YY_START);
 					goto do_action;
@@ -2151,30 +2095,30 @@
 
 				else
 					{
-					if ( ! (yy_did_buffer_switch_on_eof) )
+					if ( ! yy_did_buffer_switch_on_eof )
 						YY_NEW_FILE;
 					}
 				break;
 				}
 
 			case EOB_ACT_CONTINUE_SCAN:
-				(yy_c_buf_p) =
-					(yytext_ptr) + yy_amount_of_matched_text;
+				yy_c_buf_p =
+					yytext_ptr + yy_amount_of_matched_text;
 
-				yy_current_state = yy_get_previous_state(  );
+				yy_current_state = yy_get_previous_state();
 
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				yy_cp = yy_c_buf_p;
+				yy_bp = yytext_ptr + YY_MORE_ADJ;
 				goto yy_match;
 
 			case EOB_ACT_LAST_MATCH:
-				(yy_c_buf_p) =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
+				yy_c_buf_p =
+				&yy_current_buffer->yy_ch_buf[yy_n_chars];
 
-				yy_current_state = yy_get_previous_state(  );
+				yy_current_state = yy_get_previous_state();
 
-				yy_cp = (yy_c_buf_p);
-				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
+				yy_cp = yy_c_buf_p;
+				yy_bp = yytext_ptr + YY_MORE_ADJ;
 				goto yy_find_action;
 			}
 		break;
@@ -2185,7 +2129,8 @@
 			"fatal flex scanner internal error--no action found" );
 	} /* end of action switch */
 		} /* end of scanning one token */
-} /* end of llvmAsmlex */
+	} /* end of yylex */
+
 
 /* yy_get_next_buffer - try to read in a new buffer
  *
@@ -2194,20 +2139,21 @@
  *	EOB_ACT_CONTINUE_SCAN - continue scanning from current position
  *	EOB_ACT_END_OF_FILE - end of file
  */
-static int yy_get_next_buffer (void)
-{
-    	register char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
-	register char *source = (yytext_ptr);
+
+static int yy_get_next_buffer()
+	{
+	register char *dest = yy_current_buffer->yy_ch_buf;
+	register char *source = yytext_ptr;
 	register int number_to_move, i;
 	int ret_val;
 
-	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
+	if ( yy_c_buf_p > &yy_current_buffer->yy_ch_buf[yy_n_chars + 1] )
 		YY_FATAL_ERROR(
 		"fatal flex scanner internal error--end of buffer missed" );
 
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
+	if ( yy_current_buffer->yy_fill_buffer == 0 )
 		{ /* Don't try to fill the buffer, so this is an EOF. */
-		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
+		if ( yy_c_buf_p - yytext_ptr - YY_MORE_ADJ == 1 )
 			{
 			/* We matched a single character, the EOB, so
 			 * treat this as a final EOF.
@@ -2227,30 +2173,34 @@
 	/* Try to read more data. */
 
 	/* First move last chars to start of buffer. */
-	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr)) - 1;
+	number_to_move = (int) (yy_c_buf_p - yytext_ptr) - 1;
 
 	for ( i = 0; i < number_to_move; ++i )
 		*(dest++) = *(source++);
 
-	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
+	if ( yy_current_buffer->yy_buffer_status == YY_BUFFER_EOF_PENDING )
 		/* don't do the read, it's not guaranteed to return an EOF,
 		 * just force an EOF
 		 */
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
+		yy_current_buffer->yy_n_chars = yy_n_chars = 0;
 
 	else
 		{
-			int num_to_read =
-			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
+		int num_to_read =
+			yy_current_buffer->yy_buf_size - number_to_move - 1;
 
 		while ( num_to_read <= 0 )
 			{ /* Not enough room in the buffer - grow it. */
+#ifdef YY_USES_REJECT
+			YY_FATAL_ERROR(
+"input buffer overflow, can't enlarge buffer because scanner uses REJECT" );
+#else
 
 			/* just a shorter name for the current buffer */
-			YY_BUFFER_STATE b = YY_CURRENT_BUFFER;
+			YY_BUFFER_STATE b = yy_current_buffer;
 
 			int yy_c_buf_p_offset =
-				(int) ((yy_c_buf_p) - b->yy_ch_buf);
+				(int) (yy_c_buf_p - b->yy_ch_buf);
 
 			if ( b->yy_is_our_buffer )
 				{
@@ -2263,7 +2213,8 @@
 
 				b->yy_ch_buf = (char *)
 					/* Include room in for 2 EOB chars. */
-					llvmAsmrealloc((void *) b->yy_ch_buf,b->yy_buf_size + 2  );
+					yy_flex_realloc( (void *) b->yy_ch_buf,
+							 b->yy_buf_size + 2 );
 				}
 			else
 				/* Can't grow it, we don't own it. */
@@ -2273,35 +2224,35 @@
 				YY_FATAL_ERROR(
 				"fatal error - scanner input buffer overflow" );
 
-			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
+			yy_c_buf_p = &b->yy_ch_buf[yy_c_buf_p_offset];
 
-			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
+			num_to_read = yy_current_buffer->yy_buf_size -
 						number_to_move - 1;
-
+#endif
 			}
 
 		if ( num_to_read > YY_READ_BUF_SIZE )
 			num_to_read = YY_READ_BUF_SIZE;
 
 		/* Read in more data. */
-		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
+		YY_INPUT( (&yy_current_buffer->yy_ch_buf[number_to_move]),
+			yy_n_chars, num_to_read );
 
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		yy_current_buffer->yy_n_chars = yy_n_chars;
 		}
 
-	if ( (yy_n_chars) == 0 )
+	if ( yy_n_chars == 0 )
 		{
 		if ( number_to_move == YY_MORE_ADJ )
 			{
 			ret_val = EOB_ACT_END_OF_FILE;
-			llvmAsmrestart(llvmAsmin  );
+			yyrestart( yyin );
 			}
 
 		else
 			{
 			ret_val = EOB_ACT_LAST_MATCH;
-			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
+			yy_current_buffer->yy_buffer_status =
 				YY_BUFFER_EOF_PENDING;
 			}
 		}
@@ -2309,32 +2260,30 @@
 	else
 		ret_val = EOB_ACT_CONTINUE_SCAN;
 
-	(yy_n_chars) += number_to_move;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
-	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
+	yy_n_chars += number_to_move;
+	yy_current_buffer->yy_ch_buf[yy_n_chars] = YY_END_OF_BUFFER_CHAR;
+	yy_current_buffer->yy_ch_buf[yy_n_chars + 1] = YY_END_OF_BUFFER_CHAR;
 
-	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
+	yytext_ptr = &yy_current_buffer->yy_ch_buf[0];
 
 	return ret_val;
-}
+	}
+
 
 /* yy_get_previous_state - get the state just before the EOB char was reached */
 
-    static yy_state_type yy_get_previous_state (void)
-{
+static yy_state_type yy_get_previous_state()
+	{
 	register yy_state_type yy_current_state;
 	register char *yy_cp;
-    
-	yy_current_state = (yy_start);
 
-	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
+	yy_current_state = yy_start;
+	yy_state_ptr = yy_state_buf;
+	*yy_state_ptr++ = yy_current_state;
+
+	for ( yy_cp = yytext_ptr + YY_MORE_ADJ; yy_cp < yy_c_buf_p; ++yy_cp )
 		{
 		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
-		if ( yy_accept[yy_current_state] )
-			{
-			(yy_last_accepting_state) = yy_current_state;
-			(yy_last_accepting_cpos) = yy_cp;
-			}
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
@@ -2342,27 +2291,29 @@
 				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;
 		}
 
 	return yy_current_state;
-}
+	}
+
 
 /* yy_try_NUL_trans - try to make a transition on the NUL character
  *
  * synopsis
  *	next_state = yy_try_NUL_trans( current_state );
  */
-    static yy_state_type yy_try_NUL_trans  (yy_state_type yy_current_state )
-{
+
+#ifdef YY_USE_PROTOS
+static yy_state_type yy_try_NUL_trans( yy_state_type yy_current_state )
+#else
+static yy_state_type yy_try_NUL_trans( yy_current_state )
+yy_state_type yy_current_state;
+#endif
+	{
 	register int yy_is_jam;
-    	register char *yy_cp = (yy_c_buf_p);
 
 	register YY_CHAR yy_c = 1;
-	if ( yy_accept[yy_current_state] )
-		{
-		(yy_last_accepting_state) = yy_current_state;
-		(yy_last_accepting_cpos) = yy_cp;
-		}
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
@@ -2371,79 +2322,87 @@
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 	yy_is_jam = (yy_current_state == 538);
+	if ( ! yy_is_jam )
+		*yy_state_ptr++ = yy_current_state;
 
 	return yy_is_jam ? 0 : yy_current_state;
-}
+	}
 
-    static inline void yyunput (int c, register char * yy_bp )
-{
-	register char *yy_cp;
-    
-    yy_cp = (yy_c_buf_p);
 
-	/* undo effects of setting up llvmAsmtext */
-	*yy_cp = (yy_hold_char);
+#ifndef YY_NO_UNPUT
+#ifdef YY_USE_PROTOS
+static inline void yyunput( int c, register char *yy_bp )
+#else
+static inline void yyunput( c, yy_bp )
+int c;
+register char *yy_bp;
+#endif
+	{
+	register char *yy_cp = yy_c_buf_p;
+
+	/* undo effects of setting up yytext */
+	*yy_cp = yy_hold_char;
 
-	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+	if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
 		{ /* need to shift things up to make room */
 		/* +2 for EOB chars. */
-		register int number_to_move = (yy_n_chars) + 2;
-		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
-					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
+		register int number_to_move = yy_n_chars + 2;
+		register char *dest = &yy_current_buffer->yy_ch_buf[
+					yy_current_buffer->yy_buf_size + 2];
 		register char *source =
-				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move];
+				&yy_current_buffer->yy_ch_buf[number_to_move];
 
-		while ( source > YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
+		while ( source > yy_current_buffer->yy_ch_buf )
 			*--dest = *--source;
 
 		yy_cp += (int) (dest - source);
 		yy_bp += (int) (dest - source);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars =
-			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_buf_size;
+		yy_current_buffer->yy_n_chars =
+			yy_n_chars = yy_current_buffer->yy_buf_size;
 
-		if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
+		if ( yy_cp < yy_current_buffer->yy_ch_buf + 2 )
 			YY_FATAL_ERROR( "flex scanner push-back overflow" );
 		}
 
 	*--yy_cp = (char) c;
 
-    if ( c == '\n' ){
-        --llvmAsmlineno;
-    }
+	if ( c == '\n' )
+		--yylineno;
+
+	yytext_ptr = yy_bp;
+	yy_hold_char = *yy_cp;
+	yy_c_buf_p = yy_cp;
+	}
+#endif	/* ifndef YY_NO_UNPUT */
 
-	(yytext_ptr) = yy_bp;
-	(yy_hold_char) = *yy_cp;
-	(yy_c_buf_p) = yy_cp;
-}
 
 #ifndef YY_NO_INPUT
 #ifdef __cplusplus
-    static int yyinput (void)
+static int yyinput()
 #else
-    static int input  (void)
+static int input()
 #endif
-
-{
+	{
 	int c;
-    
-	*(yy_c_buf_p) = (yy_hold_char);
 
-	if ( *(yy_c_buf_p) == YY_END_OF_BUFFER_CHAR )
+	*yy_c_buf_p = yy_hold_char;
+
+	if ( *yy_c_buf_p == YY_END_OF_BUFFER_CHAR )
 		{
 		/* yy_c_buf_p now points to the character we want to return.
 		 * If this occurs *before* the EOB characters, then it's a
 		 * valid NUL; if not, then we've hit the end of the buffer.
 		 */
-		if ( (yy_c_buf_p) < &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
+		if ( yy_c_buf_p < &yy_current_buffer->yy_ch_buf[yy_n_chars] )
 			/* This was really a NUL. */
-			*(yy_c_buf_p) = '\0';
+			*yy_c_buf_p = '\0';
 
 		else
 			{ /* need more input */
-			int offset = (yy_c_buf_p) - (yytext_ptr);
-			++(yy_c_buf_p);
+			int offset = yy_c_buf_p - yytext_ptr;
+			++yy_c_buf_p;
 
-			switch ( yy_get_next_buffer(  ) )
+			switch ( yy_get_next_buffer() )
 				{
 				case EOB_ACT_LAST_MATCH:
 					/* This happens because yy_g_n_b()
@@ -2457,16 +2416,16 @@
 					 */
 
 					/* Reset buffer status. */
-					llvmAsmrestart(llvmAsmin );
+					yyrestart( yyin );
 
-					/*FALLTHROUGH*/
+					/* fall through */
 
 				case EOB_ACT_END_OF_FILE:
 					{
-					if ( llvmAsmwrap( ) )
+					if ( yywrap() )
 						return EOF;
 
-					if ( ! (yy_did_buffer_switch_on_eof) )
+					if ( ! yy_did_buffer_switch_on_eof )
 						YY_NEW_FILE;
 #ifdef __cplusplus
 					return yyinput();
@@ -2476,170 +2435,169 @@
 					}
 
 				case EOB_ACT_CONTINUE_SCAN:
-					(yy_c_buf_p) = (yytext_ptr) + offset;
+					yy_c_buf_p = yytext_ptr + offset;
 					break;
 				}
 			}
 		}
 
-	c = *(unsigned char *) (yy_c_buf_p);	/* cast for 8-bit char's */
-	*(yy_c_buf_p) = '\0';	/* preserve llvmAsmtext */
-	(yy_hold_char) = *++(yy_c_buf_p);
+	c = *(unsigned char *) yy_c_buf_p;	/* cast for 8-bit char's */
+	*yy_c_buf_p = '\0';	/* preserve yytext */
+	yy_hold_char = *++yy_c_buf_p;
 
 	if ( c == '\n' )
-		   
-    llvmAsmlineno++;
-;
+		++yylineno;
 
 	return c;
-}
-#endif	/* ifndef YY_NO_INPUT */
+	}
+#endif /* YY_NO_INPUT */
 
-/** Immediately switch to a different input stream.
- * @param input_file A readable stream.
- * 
- * @note This function does not reset the start condition to @c INITIAL .
- */
-    void llvmAsmrestart  (FILE * input_file )
-{
-    
-	if ( ! YY_CURRENT_BUFFER ){
-        llvmAsmensure_buffer_stack ();
-		YY_CURRENT_BUFFER_LVALUE =
-            llvmAsm_create_buffer(llvmAsmin,YY_BUF_SIZE );
+#ifdef YY_USE_PROTOS
+void yyrestart( FILE *input_file )
+#else
+void yyrestart( input_file )
+FILE *input_file;
+#endif
+	{
+	if ( ! yy_current_buffer )
+		yy_current_buffer = yy_create_buffer( yyin, YY_BUF_SIZE );
+
+	yy_init_buffer( yy_current_buffer, input_file );
+	yy_load_buffer_state();
 	}
 
-	llvmAsm_init_buffer(YY_CURRENT_BUFFER,input_file );
-	llvmAsm_load_buffer_state( );
-}
 
-/** Switch to a different input buffer.
- * @param new_buffer The new input buffer.
- * 
- */
-    void llvmAsm_switch_to_buffer  (YY_BUFFER_STATE  new_buffer )
-{
-    
-	/* TODO. We should be able to replace this entire function body
-	 * with
-	 *		llvmAsmpop_buffer_state();
-	 *		llvmAsmpush_buffer_state(new_buffer);
-     */
-	llvmAsmensure_buffer_stack ();
-	if ( YY_CURRENT_BUFFER == new_buffer )
+#ifdef YY_USE_PROTOS
+void yy_switch_to_buffer( YY_BUFFER_STATE new_buffer )
+#else
+void yy_switch_to_buffer( new_buffer )
+YY_BUFFER_STATE new_buffer;
+#endif
+	{
+	if ( yy_current_buffer == new_buffer )
 		return;
 
-	if ( YY_CURRENT_BUFFER )
+	if ( yy_current_buffer )
 		{
 		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
+		*yy_c_buf_p = yy_hold_char;
+		yy_current_buffer->yy_buf_pos = yy_c_buf_p;
+		yy_current_buffer->yy_n_chars = yy_n_chars;
 		}
 
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-	llvmAsm_load_buffer_state( );
+	yy_current_buffer = new_buffer;
+	yy_load_buffer_state();
 
 	/* We don't actually know whether we did this switch during
-	 * EOF (llvmAsmwrap()) processing, but the only time this flag
-	 * is looked at is after llvmAsmwrap() is called, so it's safe
+	 * EOF (yywrap()) processing, but the only time this flag
+	 * is looked at is after yywrap() is called, so it's safe
 	 * to go ahead and always set it.
 	 */
-	(yy_did_buffer_switch_on_eof) = 1;
-}
+	yy_did_buffer_switch_on_eof = 1;
+	}
 
-static void llvmAsm_load_buffer_state  (void)
-{
-    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
-	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
-	llvmAsmin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
-	(yy_hold_char) = *(yy_c_buf_p);
-}
 
-/** Allocate and initialize an input buffer state.
- * @param file A readable stream.
- * @param size The character buffer size in bytes. When in doubt, use @c YY_BUF_SIZE.
- * 
- * @return the allocated buffer state.
- */
-    YY_BUFFER_STATE llvmAsm_create_buffer  (FILE * file, int  size )
-{
+#ifdef YY_USE_PROTOS
+void yy_load_buffer_state( void )
+#else
+void yy_load_buffer_state()
+#endif
+	{
+	yy_n_chars = yy_current_buffer->yy_n_chars;
+	yytext_ptr = yy_c_buf_p = yy_current_buffer->yy_buf_pos;
+	yyin = yy_current_buffer->yy_input_file;
+	yy_hold_char = *yy_c_buf_p;
+	}
+
+
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_create_buffer( FILE *file, int size )
+#else
+YY_BUFFER_STATE yy_create_buffer( file, size )
+FILE *file;
+int size;
+#endif
+	{
 	YY_BUFFER_STATE b;
-    
-	b = (YY_BUFFER_STATE) llvmAsmalloc(sizeof( struct yy_buffer_state )  );
+
+	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
 	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_create_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
 	b->yy_buf_size = size;
 
 	/* yy_ch_buf has to be 2 characters longer than the size given because
 	 * we need to put in 2 end-of-buffer characters.
 	 */
-	b->yy_ch_buf = (char *) llvmAsmalloc(b->yy_buf_size + 2  );
+	b->yy_ch_buf = (char *) yy_flex_alloc( b->yy_buf_size + 2 );
 	if ( ! b->yy_ch_buf )
-		YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_create_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
 
 	b->yy_is_our_buffer = 1;
 
-	llvmAsm_init_buffer(b,file );
+	yy_init_buffer( b, file );
 
 	return b;
-}
+	}
 
-/** Destroy the buffer.
- * @param b a buffer created with llvmAsm_create_buffer()
- * 
- */
-    void llvmAsm_delete_buffer (YY_BUFFER_STATE  b )
-{
-    
+
+#ifdef YY_USE_PROTOS
+void yy_delete_buffer( YY_BUFFER_STATE b )
+#else
+void yy_delete_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+	{
 	if ( ! b )
 		return;
 
-	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
-		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
+	if ( b == yy_current_buffer )
+		yy_current_buffer = (YY_BUFFER_STATE) 0;
 
 	if ( b->yy_is_our_buffer )
-		llvmAsmfree((void *) b->yy_ch_buf  );
+		yy_flex_free( (void *) b->yy_ch_buf );
 
-	llvmAsmfree((void *) b  );
-}
+	yy_flex_free( (void *) b );
+	}
 
-/* Initializes or reinitializes a buffer.
- * This function is sometimes called more than once on the same buffer,
- * such as during a llvmAsmrestart() or at EOF.
- */
-    static void llvmAsm_init_buffer  (YY_BUFFER_STATE  b, FILE * file )
 
-{
-	int oerrno = errno;
-    
-	llvmAsm_flush_buffer(b );
+
+#ifdef YY_USE_PROTOS
+void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
+#else
+void yy_init_buffer( b, file )
+YY_BUFFER_STATE b;
+FILE *file;
+#endif
+
+
+	{
+	yy_flush_buffer( b );
 
 	b->yy_input_file = file;
 	b->yy_fill_buffer = 1;
 
-    /* If b is the current buffer, then llvmAsm_init_buffer was _probably_
-     * called from llvmAsmrestart() or through yy_get_next_buffer.
-     * In that case, we don't want to reset the lineno or column.
-     */
-    if (b != YY_CURRENT_BUFFER){
-        b->yy_bs_lineno = 1;
-        b->yy_bs_column = 0;
-    }
+#if YY_ALWAYS_INTERACTIVE
+	b->yy_is_interactive = 1;
+#else
+#if YY_NEVER_INTERACTIVE
+	b->yy_is_interactive = 0;
+#else
+	b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
+#endif
+#endif
+	}
 
-        b->yy_is_interactive = 0;
-    
-	errno = oerrno;
-}
 
-/** Discard all buffered characters. On the next scan, YY_INPUT will be called.
- * @param b the buffer state to be flushed, usually @c YY_CURRENT_BUFFER.
- * 
- */
-    void llvmAsm_flush_buffer (YY_BUFFER_STATE  b )
-{
-    	if ( ! b )
+#ifdef YY_USE_PROTOS
+void yy_flush_buffer( YY_BUFFER_STATE b )
+#else
+void yy_flush_buffer( b )
+YY_BUFFER_STATE b;
+#endif
+
+	{
+	if ( ! b )
 		return;
 
 	b->yy_n_chars = 0;
@@ -2656,123 +2614,31 @@
 	b->yy_at_bol = 1;
 	b->yy_buffer_status = YY_BUFFER_NEW;
 
-	if ( b == YY_CURRENT_BUFFER )
-		llvmAsm_load_buffer_state( );
-}
-
-/** Pushes the new state onto the stack. The new state becomes
- *  the current state. This function will allocate the stack
- *  if necessary.
- *  @param new_buffer The new state.
- *  
- */
-void llvmAsmpush_buffer_state (YY_BUFFER_STATE new_buffer )
-{
-    	if (new_buffer == NULL)
-		return;
-
-	llvmAsmensure_buffer_stack();
-
-	/* This block is copied from llvmAsm_switch_to_buffer. */
-	if ( YY_CURRENT_BUFFER )
-		{
-		/* Flush out information for old buffer. */
-		*(yy_c_buf_p) = (yy_hold_char);
-		YY_CURRENT_BUFFER_LVALUE->yy_buf_pos = (yy_c_buf_p);
-		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
-		}
-
-	/* Only push if top exists. Otherwise, replace top. */
-	if (YY_CURRENT_BUFFER)
-		(yy_buffer_stack_top)++;
-	YY_CURRENT_BUFFER_LVALUE = new_buffer;
-
-	/* copied from llvmAsm_switch_to_buffer. */
-	llvmAsm_load_buffer_state( );
-	(yy_did_buffer_switch_on_eof) = 1;
-}
-
-/** Removes and deletes the top of the stack, if present.
- *  The next element becomes the new top.
- *  
- */
-void llvmAsmpop_buffer_state (void)
-{
-    	if (!YY_CURRENT_BUFFER)
-		return;
-
-	llvmAsm_delete_buffer(YY_CURRENT_BUFFER );
-	YY_CURRENT_BUFFER_LVALUE = NULL;
-	if ((yy_buffer_stack_top) > 0)
-		--(yy_buffer_stack_top);
-
-	if (YY_CURRENT_BUFFER) {
-		llvmAsm_load_buffer_state( );
-		(yy_did_buffer_switch_on_eof) = 1;
-	}
-}
-
-/* Allocates the stack if it does not exist.
- *  Guarantees space for at least one push.
- */
-static void llvmAsmensure_buffer_stack (void)
-{
-	int num_to_alloc;
-    
-	if (!(yy_buffer_stack)) {
-
-		/* First allocation is just for 2 elements, since we don't know if this
-		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
-		 * immediate realloc on the next call.
-         */
-		num_to_alloc = 1;
-		(yy_buffer_stack) = (struct yy_buffer_state**)llvmAsmalloc
-								(num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-		
-		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
-				
-		(yy_buffer_stack_max) = num_to_alloc;
-		(yy_buffer_stack_top) = 0;
-		return;
+	if ( b == yy_current_buffer )
+		yy_load_buffer_state();
 	}
 
-	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
-
-		/* Increase the buffer to prepare for a possible push. */
-		int grow_size = 8 /* arbitrary grow size */;
 
-		num_to_alloc = (yy_buffer_stack_max) + grow_size;
-		(yy_buffer_stack) = (struct yy_buffer_state**)llvmAsmrealloc
-								((yy_buffer_stack),
-								num_to_alloc * sizeof(struct yy_buffer_state*)
-								);
-
-		/* zero only the new slots.*/
-		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
-		(yy_buffer_stack_max) = num_to_alloc;
-	}
-}
-
-/** Setup the input buffer state to scan directly from a user-specified character buffer.
- * @param base the character buffer
- * @param size the size in bytes of the character buffer
- * 
- * @return the newly allocated buffer state object. 
- */
-YY_BUFFER_STATE llvmAsm_scan_buffer  (char * base, yy_size_t  size )
-{
+#ifndef YY_NO_SCAN_BUFFER
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_buffer( char *base, yy_size_t size )
+#else
+YY_BUFFER_STATE yy_scan_buffer( base, size )
+char *base;
+yy_size_t size;
+#endif
+	{
 	YY_BUFFER_STATE b;
-    
+
 	if ( size < 2 ||
 	     base[size-2] != YY_END_OF_BUFFER_CHAR ||
 	     base[size-1] != YY_END_OF_BUFFER_CHAR )
 		/* They forgot to leave room for the EOB's. */
 		return 0;
 
-	b = (YY_BUFFER_STATE) llvmAsmalloc(sizeof( struct yy_buffer_state )  );
+	b = (YY_BUFFER_STATE) yy_flex_alloc( sizeof( struct yy_buffer_state ) );
 	if ( ! b )
-		YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_scan_buffer()" );
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_buffer()" );
 
 	b->yy_buf_size = size - 2;	/* "- 2" to take care of EOB's */
 	b->yy_buf_pos = b->yy_ch_buf = base;
@@ -2784,53 +2650,58 @@
 	b->yy_fill_buffer = 0;
 	b->yy_buffer_status = YY_BUFFER_NEW;
 
-	llvmAsm_switch_to_buffer(b  );
+	yy_switch_to_buffer( b );
 
 	return b;
-}
+	}
+#endif
 
-/** Setup the input buffer state to scan a string. The next call to llvmAsmlex() will
- * scan from a @e copy of @a str.
- * @param str a NUL-terminated string to scan
- * 
- * @return the newly allocated buffer state object.
- * @note If you want to scan bytes that may contain NUL values, then use
- *       llvmAsm_scan_bytes() instead.
- */
-YY_BUFFER_STATE llvmAsm_scan_string (yyconst char * yystr )
-{
-    
-	return llvmAsm_scan_bytes(yystr,strlen(yystr) );
-}
 
-/** Setup the input buffer state to scan the given bytes. The next call to llvmAsmlex() will
- * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
- * 
- * @return the newly allocated buffer state object.
- */
-YY_BUFFER_STATE llvmAsm_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
-{
+#ifndef YY_NO_SCAN_STRING
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_string( yyconst char *yy_str )
+#else
+YY_BUFFER_STATE yy_scan_string( yy_str )
+yyconst char *yy_str;
+#endif
+	{
+	int len;
+	for ( len = 0; yy_str[len]; ++len )
+		;
+
+	return yy_scan_bytes( yy_str, len );
+	}
+#endif
+
+
+#ifndef YY_NO_SCAN_BYTES
+#ifdef YY_USE_PROTOS
+YY_BUFFER_STATE yy_scan_bytes( yyconst char *bytes, int len )
+#else
+YY_BUFFER_STATE yy_scan_bytes( bytes, len )
+yyconst char *bytes;
+int len;
+#endif
+	{
 	YY_BUFFER_STATE b;
 	char *buf;
 	yy_size_t n;
 	int i;
-    
+
 	/* Get memory for full buffer, including space for trailing EOB's. */
-	n = _yybytes_len + 2;
-	buf = (char *) llvmAsmalloc(n  );
+	n = len + 2;
+	buf = (char *) yy_flex_alloc( n );
 	if ( ! buf )
-		YY_FATAL_ERROR( "out of dynamic memory in llvmAsm_scan_bytes()" );
+		YY_FATAL_ERROR( "out of dynamic memory in yy_scan_bytes()" );
 
-	for ( i = 0; i < _yybytes_len; ++i )
-		buf[i] = yybytes[i];
+	for ( i = 0; i < len; ++i )
+		buf[i] = bytes[i];
 
-	buf[_yybytes_len] = buf[_yybytes_len+1] = YY_END_OF_BUFFER_CHAR;
+	buf[len] = buf[len+1] = YY_END_OF_BUFFER_CHAR;
 
-	b = llvmAsm_scan_buffer(buf,n );
+	b = yy_scan_buffer( buf, n );
 	if ( ! b )
-		YY_FATAL_ERROR( "bad buffer in llvmAsm_scan_bytes()" );
+		YY_FATAL_ERROR( "bad buffer in yy_scan_bytes()" );
 
 	/* It's okay to grow etc. this buffer, and we should throw it
 	 * away when we're done.
@@ -2838,199 +2709,148 @@
 	b->yy_is_our_buffer = 1;
 
 	return b;
-}
+	}
+#endif
 
-#ifndef YY_EXIT_FAILURE
-#define YY_EXIT_FAILURE 2
+
+#ifndef YY_NO_PUSH_STATE
+#ifdef YY_USE_PROTOS
+static void yy_push_state( int new_state )
+#else
+static void yy_push_state( new_state )
+int new_state;
 #endif
+	{
+	if ( yy_start_stack_ptr >= yy_start_stack_depth )
+		{
+		yy_size_t new_size;
 
-static void yy_fatal_error (yyconst char* msg )
-{
-    	(void) fprintf( stderr, "%s\n", msg );
-	exit( YY_EXIT_FAILURE );
-}
+		yy_start_stack_depth += YY_START_STACK_INCR;
+		new_size = yy_start_stack_depth * sizeof( int );
 
-/* Redefine yyless() so it works in section 3 code. */
+		if ( ! yy_start_stack )
+			yy_start_stack = (int *) yy_flex_alloc( new_size );
 
-#undef yyless
-#define yyless(n) \
-	do \
-		{ \
-		/* Undo effects of setting up llvmAsmtext. */ \
-        int yyless_macro_arg = (n); \
-        YY_LESS_LINENO(yyless_macro_arg);\
-		llvmAsmtext[llvmAsmleng] = (yy_hold_char); \
-		(yy_c_buf_p) = llvmAsmtext + yyless_macro_arg; \
-		(yy_hold_char) = *(yy_c_buf_p); \
-		*(yy_c_buf_p) = '\0'; \
-		llvmAsmleng = yyless_macro_arg; \
-		} \
-	while ( 0 )
+		else
+			yy_start_stack = (int *) yy_flex_realloc(
+					(void *) yy_start_stack, new_size );
 
-/* Accessor  methods (get/set functions) to struct members. */
+		if ( ! yy_start_stack )
+			YY_FATAL_ERROR(
+			"out of memory expanding start-condition stack" );
+		}
 
-/** Get the current line number.
- * 
- */
-int llvmAsmget_lineno  (void)
-{
-        
-    return llvmAsmlineno;
-}
+	yy_start_stack[yy_start_stack_ptr++] = YY_START;
 
-/** Get the input stream.
- * 
- */
-FILE *llvmAsmget_in  (void)
-{
-        return llvmAsmin;
-}
+	BEGIN(new_state);
+	}
+#endif
 
-/** Get the output stream.
- * 
- */
-FILE *llvmAsmget_out  (void)
-{
-        return llvmAsmout;
-}
 
-/** Get the length of the current token.
- * 
- */
-int llvmAsmget_leng  (void)
-{
-        return llvmAsmleng;
-}
+#ifndef YY_NO_POP_STATE
+static void yy_pop_state()
+	{
+	if ( --yy_start_stack_ptr < 0 )
+		YY_FATAL_ERROR( "start-condition stack underflow" );
 
-/** Get the current token.
- * 
- */
+	BEGIN(yy_start_stack[yy_start_stack_ptr]);
+	}
+#endif
 
-char *llvmAsmget_text  (void)
-{
-        return llvmAsmtext;
-}
 
-/** Set the current line number.
- * @param line_number
- * 
- */
-void llvmAsmset_lineno (int  line_number )
-{
-    
-    llvmAsmlineno = line_number;
-}
+#ifndef YY_NO_TOP_STATE
+static int yy_top_state()
+	{
+	return yy_start_stack[yy_start_stack_ptr - 1];
+	}
+#endif
 
-/** Set the input stream. This does not discard the current
- * input buffer.
- * @param in_str A readable stream.
- * 
- * @see llvmAsm_switch_to_buffer
- */
-void llvmAsmset_in (FILE *  in_str )
-{
-        llvmAsmin = in_str ;
-}
+#ifndef YY_EXIT_FAILURE
+#define YY_EXIT_FAILURE 2
+#endif
 
-void llvmAsmset_out (FILE *  out_str )
-{
-        llvmAsmout = out_str ;
-}
+#ifdef YY_USE_PROTOS
+static void yy_fatal_error( yyconst char msg[] )
+#else
+static void yy_fatal_error( msg )
+char msg[];
+#endif
+	{
+	(void) fprintf( stderr, "%s\n", msg );
+	exit( YY_EXIT_FAILURE );
+	}
 
-int llvmAsmget_debug  (void)
-{
-        return llvmAsm_flex_debug;
-}
 
-void llvmAsmset_debug (int  bdebug )
-{
-        llvmAsm_flex_debug = bdebug ;
-}
 
-static int yy_init_globals (void)
-{
-        /* Initialization is the same as for the non-reentrant scanner.
-     * This function is called from llvmAsmlex_destroy(), so don't allocate here.
-     */
-
-    /* We do not touch llvmAsmlineno unless the option is enabled. */
-    llvmAsmlineno =  1;
-    
-    (yy_buffer_stack) = 0;
-    (yy_buffer_stack_top) = 0;
-    (yy_buffer_stack_max) = 0;
-    (yy_c_buf_p) = (char *) 0;
-    (yy_init) = 0;
-    (yy_start) = 0;
-
-/* Defined in main.c */
-#ifdef YY_STDINIT
-    llvmAsmin = stdin;
-    llvmAsmout = stdout;
-#else
-    llvmAsmin = (FILE *) 0;
-    llvmAsmout = (FILE *) 0;
-#endif
-
-    /* For future reference: Set errno on error, since we are called by
-     * llvmAsmlex_init()
-     */
-    return 0;
-}
+/* Redefine yyless() so it works in section 3 code. */
 
-/* llvmAsmlex_destroy is for both reentrant and non-reentrant scanners. */
-int llvmAsmlex_destroy  (void)
-{
-    
-    /* Pop the buffer stack, destroying each element. */
-	while(YY_CURRENT_BUFFER){
-		llvmAsm_delete_buffer(YY_CURRENT_BUFFER  );
-		YY_CURRENT_BUFFER_LVALUE = NULL;
-		llvmAsmpop_buffer_state();
-	}
-
-	/* Destroy the stack itself. */
-	llvmAsmfree((yy_buffer_stack) );
-	(yy_buffer_stack) = NULL;
-
-    /* Reset the globals. This is important in a non-reentrant scanner so the next time
-     * llvmAsmlex() is called, initialization will occur. */
-    yy_init_globals( );
+#undef yyless
+#define yyless(n) \
+	do \
+		{ \
+		/* Undo effects of setting up yytext. */ \
+		yytext[yyleng] = yy_hold_char; \
+		yy_c_buf_p = yytext + n; \
+		yy_hold_char = *yy_c_buf_p; \
+		*yy_c_buf_p = '\0'; \
+		yyleng = n; \
+		} \
+	while ( 0 )
 
-    return 0;
-}
 
-/*
- * Internal utility routines.
- */
+/* Internal utility routines. */
 
 #ifndef yytext_ptr
-static void yy_flex_strncpy (char* s1, yyconst char * s2, int n )
-{
+#ifdef YY_USE_PROTOS
+static void yy_flex_strncpy( char *s1, yyconst char *s2, int n )
+#else
+static void yy_flex_strncpy( s1, s2, n )
+char *s1;
+yyconst char *s2;
+int n;
+#endif
+	{
 	register int i;
 	for ( i = 0; i < n; ++i )
 		s1[i] = s2[i];
-}
+	}
 #endif
 
 #ifdef YY_NEED_STRLEN
-static int yy_flex_strlen (yyconst char * s )
-{
+#ifdef YY_USE_PROTOS
+static int yy_flex_strlen( yyconst char *s )
+#else
+static int yy_flex_strlen( s )
+yyconst char *s;
+#endif
+	{
 	register int n;
 	for ( n = 0; s[n]; ++n )
 		;
 
 	return n;
-}
+	}
 #endif
 
-void *llvmAsmalloc (yy_size_t  size )
-{
+
+#ifdef YY_USE_PROTOS
+static void *yy_flex_alloc( yy_size_t size )
+#else
+static void *yy_flex_alloc( size )
+yy_size_t size;
+#endif
+	{
 	return (void *) malloc( size );
-}
+	}
 
-void *llvmAsmrealloc  (void * ptr, yy_size_t  size )
-{
+#ifdef YY_USE_PROTOS
+static inline void *yy_flex_realloc( void *ptr, yy_size_t size )
+#else
+static inline void *yy_flex_realloc( ptr, size )
+void *ptr;
+yy_size_t size;
+#endif
+	{
 	/* The cast to (char *) in the following accommodates both
 	 * implementations that use char* generic pointers, and those
 	 * that use void* generic pointers.  It works with the latter
@@ -3039,16 +2859,24 @@
 	 * as though doing an assignment.
 	 */
 	return (void *) realloc( (char *) ptr, size );
-}
-
-void llvmAsmfree (void * ptr )
-{
-	free( (char *) ptr );	/* see llvmAsmrealloc() for (char *) cast */
-}
-
-#define YYTABLES_NAME "yytables"
-
-#line 407 "/home/asl/proj/llvm/src/lib/AsmParser/Lexer.l"
+	}
 
+#ifdef YY_USE_PROTOS
+static void yy_flex_free( void *ptr )
+#else
+static void yy_flex_free( ptr )
+void *ptr;
+#endif
+	{
+	free( ptr );
+	}
 
+#if YY_MAIN
+int main()
+	{
+	yylex();
+	return 0;
+	}
+#endif
+#line 409 "/proj/llvm/llvm-4/lib/AsmParser/Lexer.l"
 


Index: llvm/lib/AsmParser/Lexer.l
diff -u llvm/lib/AsmParser/Lexer.l:1.97 llvm/lib/AsmParser/Lexer.l:1.98
--- llvm/lib/AsmParser/Lexer.l:1.97	Sun Jan 28 07:31:35 2007
+++ llvm/lib/AsmParser/Lexer.l	Thu Feb  1 20:16:22 2007
@@ -232,6 +232,9 @@
 x86_stdcallcc   { return X86_STDCALLCC_TOK; }
 x86_fastcallcc  { return X86_FASTCALLCC_TOK; }
 
+inreg           { return INREG; }
+sret            { return SRET;  }
+
 void            { RET_TY(Type::VoidTy,  VOID);  }
 float           { RET_TY(Type::FloatTy, FLOAT); }
 double          { RET_TY(Type::DoubleTy,DOUBLE);}
@@ -255,11 +258,15 @@
 urem            { RET_TOK(BinaryOpVal, URem, UREM); }
 srem            { RET_TOK(BinaryOpVal, SRem, SREM); }
 frem            { RET_TOK(BinaryOpVal, FRem, FREM); }
+shl             { RET_TOK(BinaryOpVal, Shl, SHL); }
+lshr            { RET_TOK(BinaryOpVal, LShr, LSHR); }
+ashr            { RET_TOK(BinaryOpVal, AShr, ASHR); }
 and             { RET_TOK(BinaryOpVal, And, AND); }
 or              { RET_TOK(BinaryOpVal, Or , OR ); }
 xor             { RET_TOK(BinaryOpVal, Xor, XOR); }
 icmp            { RET_TOK(OtherOpVal,  ICmp,  ICMP); }
 fcmp            { RET_TOK(OtherOpVal,  FCmp,  FCMP); }
+
 eq              { return EQ;  }
 ne              { return NE;  }
 slt             { return SLT; }
@@ -286,8 +293,6 @@
 trunc           { RET_TOK(CastOpVal, Trunc, TRUNC); }
 zext            { RET_TOK(CastOpVal, ZExt, ZEXT); }
 sext            { RET_TOK(CastOpVal, SExt, SEXT); }
-inreg           { return INREG; }
-sret            { return SRET;  }
 fptrunc         { RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
 fpext           { RET_TOK(CastOpVal, FPExt, FPEXT); }
 uitofp          { RET_TOK(CastOpVal, UIToFP, UITOFP); }
@@ -298,9 +303,6 @@
 ptrtoint        { RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
 bitcast         { RET_TOK(CastOpVal, BitCast, BITCAST); }
 select          { RET_TOK(OtherOpVal, Select, SELECT); }
-shl             { RET_TOK(OtherOpVal, Shl, SHL); }
-lshr            { RET_TOK(OtherOpVal, LShr, LSHR); }
-ashr            { RET_TOK(OtherOpVal, AShr, ASHR); }
 va_arg          { RET_TOK(OtherOpVal, VAArg , VAARG); }
 ret             { RET_TOK(TermOpVal, Ret, RET); }
 br              { RET_TOK(TermOpVal, Br, BR); }


Index: llvm/lib/AsmParser/Lexer.l.cvs
diff -u llvm/lib/AsmParser/Lexer.l.cvs:1.24 llvm/lib/AsmParser/Lexer.l.cvs:1.25
--- llvm/lib/AsmParser/Lexer.l.cvs:1.24	Sun Jan 28 07:31:35 2007
+++ llvm/lib/AsmParser/Lexer.l.cvs	Thu Feb  1 20:16:22 2007
@@ -232,6 +232,9 @@
 x86_stdcallcc   { return X86_STDCALLCC_TOK; }
 x86_fastcallcc  { return X86_FASTCALLCC_TOK; }
 
+inreg           { return INREG; }
+sret            { return SRET;  }
+
 void            { RET_TY(Type::VoidTy,  VOID);  }
 float           { RET_TY(Type::FloatTy, FLOAT); }
 double          { RET_TY(Type::DoubleTy,DOUBLE);}
@@ -255,11 +258,15 @@
 urem            { RET_TOK(BinaryOpVal, URem, UREM); }
 srem            { RET_TOK(BinaryOpVal, SRem, SREM); }
 frem            { RET_TOK(BinaryOpVal, FRem, FREM); }
+shl             { RET_TOK(BinaryOpVal, Shl, SHL); }
+lshr            { RET_TOK(BinaryOpVal, LShr, LSHR); }
+ashr            { RET_TOK(BinaryOpVal, AShr, ASHR); }
 and             { RET_TOK(BinaryOpVal, And, AND); }
 or              { RET_TOK(BinaryOpVal, Or , OR ); }
 xor             { RET_TOK(BinaryOpVal, Xor, XOR); }
 icmp            { RET_TOK(OtherOpVal,  ICmp,  ICMP); }
 fcmp            { RET_TOK(OtherOpVal,  FCmp,  FCMP); }
+
 eq              { return EQ;  }
 ne              { return NE;  }
 slt             { return SLT; }
@@ -286,8 +293,6 @@
 trunc           { RET_TOK(CastOpVal, Trunc, TRUNC); }
 zext            { RET_TOK(CastOpVal, ZExt, ZEXT); }
 sext            { RET_TOK(CastOpVal, SExt, SEXT); }
-inreg           { return INREG; }
-sret            { return SRET;  }
 fptrunc         { RET_TOK(CastOpVal, FPTrunc, FPTRUNC); }
 fpext           { RET_TOK(CastOpVal, FPExt, FPEXT); }
 uitofp          { RET_TOK(CastOpVal, UIToFP, UITOFP); }
@@ -298,9 +303,6 @@
 ptrtoint        { RET_TOK(CastOpVal, PtrToInt, PTRTOINT); }
 bitcast         { RET_TOK(CastOpVal, BitCast, BITCAST); }
 select          { RET_TOK(OtherOpVal, Select, SELECT); }
-shl             { RET_TOK(OtherOpVal, Shl, SHL); }
-lshr            { RET_TOK(OtherOpVal, LShr, LSHR); }
-ashr            { RET_TOK(OtherOpVal, AShr, ASHR); }
 va_arg          { RET_TOK(OtherOpVal, VAArg , VAARG); }
 ret             { RET_TOK(TermOpVal, Ret, RET); }
 br              { RET_TOK(TermOpVal, Br, BR); }


Index: llvm/lib/AsmParser/llvmAsmParser.cpp.cvs
diff -u llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.61 llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.62
--- llvm/lib/AsmParser/llvmAsmParser.cpp.cvs:1.61	Tue Jan 30 22:44:08 2007
+++ llvm/lib/AsmParser/llvmAsmParser.cpp.cvs	Thu Feb  1 20:16:22 2007
@@ -1,147 +1,336 @@
+/* A Bison parser, made by GNU Bison 2.1.  */
 
-/*  A Bison parser, made from /Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y
-    by GNU Bison version 1.28  */
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
 
-#define YYBISON 1  /* Identify Bison output.  */
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Written by Richard Stallman by simplifying the original so called
+   ``semantic'' parser.  */
+
+/* All symbols defined below should begin with yy or YY, to avoid
+   infringing on user name space.  This should be done even for local
+   variables, as they might otherwise be expanded by user macros.
+   There are some unavoidable exceptions within include files to
+   define necessary library symbols; they are noted "INFRINGES ON
+   USER NAME SPACE" below.  */
+
+/* Identify Bison output.  */
+#define YYBISON 1
+
+/* Bison version.  */
+#define YYBISON_VERSION "2.1"
+
+/* Skeleton name.  */
+#define YYSKELETON_NAME "yacc.c"
+
+/* Pure parsers.  */
+#define YYPURE 0
+
+/* Using locations.  */
+#define YYLSP_NEEDED 0
 
+/* Substitute the variable and function names.  */
 #define yyparse llvmAsmparse
-#define yylex llvmAsmlex
+#define yylex   llvmAsmlex
 #define yyerror llvmAsmerror
-#define yylval llvmAsmlval
-#define yychar llvmAsmchar
+#define yylval  llvmAsmlval
+#define yychar  llvmAsmchar
 #define yydebug llvmAsmdebug
 #define yynerrs llvmAsmnerrs
-#define	ESINT64VAL	257
-#define	EUINT64VAL	258
-#define	LOCALVAL_ID	259
-#define	GLOBALVAL_ID	260
-#define	FPVAL	261
-#define	VOID	262
-#define	INTTYPE	263
-#define	FLOAT	264
-#define	DOUBLE	265
-#define	LABEL	266
-#define	TYPE	267
-#define	LOCALVAR	268
-#define	GLOBALVAR	269
-#define	LABELSTR	270
-#define	STRINGCONSTANT	271
-#define	ATSTRINGCONSTANT	272
-#define	IMPLEMENTATION	273
-#define	ZEROINITIALIZER	274
-#define	TRUETOK	275
-#define	FALSETOK	276
-#define	BEGINTOK	277
-#define	ENDTOK	278
-#define	DECLARE	279
-#define	DEFINE	280
-#define	GLOBAL	281
-#define	CONSTANT	282
-#define	SECTION	283
-#define	VOLATILE	284
-#define	TO	285
-#define	DOTDOTDOT	286
-#define	NULL_TOK	287
-#define	UNDEF	288
-#define	INTERNAL	289
-#define	LINKONCE	290
-#define	WEAK	291
-#define	APPENDING	292
-#define	DLLIMPORT	293
-#define	DLLEXPORT	294
-#define	EXTERN_WEAK	295
-#define	OPAQUE	296
-#define	EXTERNAL	297
-#define	TARGET	298
-#define	TRIPLE	299
-#define	ALIGN	300
-#define	DEPLIBS	301
-#define	CALL	302
-#define	TAIL	303
-#define	ASM_TOK	304
-#define	MODULE	305
-#define	SIDEEFFECT	306
-#define	CC_TOK	307
-#define	CCC_TOK	308
-#define	FASTCC_TOK	309
-#define	COLDCC_TOK	310
-#define	X86_STDCALLCC_TOK	311
-#define	X86_FASTCALLCC_TOK	312
-#define	DATALAYOUT	313
-#define	RET	314
-#define	BR	315
-#define	SWITCH	316
-#define	INVOKE	317
-#define	UNWIND	318
-#define	UNREACHABLE	319
-#define	ADD	320
-#define	SUB	321
-#define	MUL	322
-#define	UDIV	323
-#define	SDIV	324
-#define	FDIV	325
-#define	UREM	326
-#define	SREM	327
-#define	FREM	328
-#define	AND	329
-#define	OR	330
-#define	XOR	331
-#define	ICMP	332
-#define	FCMP	333
-#define	EQ	334
-#define	NE	335
-#define	SLT	336
-#define	SGT	337
-#define	SLE	338
-#define	SGE	339
-#define	ULT	340
-#define	UGT	341
-#define	ULE	342
-#define	UGE	343
-#define	OEQ	344
-#define	ONE	345
-#define	OLT	346
-#define	OGT	347
-#define	OLE	348
-#define	OGE	349
-#define	ORD	350
-#define	UNO	351
-#define	UEQ	352
-#define	UNE	353
-#define	MALLOC	354
-#define	ALLOCA	355
-#define	FREE	356
-#define	LOAD	357
-#define	STORE	358
-#define	GETELEMENTPTR	359
-#define	TRUNC	360
-#define	ZEXT	361
-#define	SEXT	362
-#define	FPTRUNC	363
-#define	FPEXT	364
-#define	BITCAST	365
-#define	UITOFP	366
-#define	SITOFP	367
-#define	FPTOUI	368
-#define	FPTOSI	369
-#define	INTTOPTR	370
-#define	PTRTOINT	371
-#define	PHI_TOK	372
-#define	SELECT	373
-#define	SHL	374
-#define	LSHR	375
-#define	ASHR	376
-#define	VAARG	377
-#define	EXTRACTELEMENT	378
-#define	INSERTELEMENT	379
-#define	SHUFFLEVECTOR	380
-#define	NORETURN	381
-#define	INREG	382
-#define	SRET	383
-#define	DEFAULT	384
-#define	HIDDEN	385
 
-#line 14 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     ESINT64VAL = 258,
+     EUINT64VAL = 259,
+     LOCALVAL_ID = 260,
+     GLOBALVAL_ID = 261,
+     FPVAL = 262,
+     VOID = 263,
+     INTTYPE = 264,
+     FLOAT = 265,
+     DOUBLE = 266,
+     LABEL = 267,
+     TYPE = 268,
+     LOCALVAR = 269,
+     GLOBALVAR = 270,
+     LABELSTR = 271,
+     STRINGCONSTANT = 272,
+     ATSTRINGCONSTANT = 273,
+     IMPLEMENTATION = 274,
+     ZEROINITIALIZER = 275,
+     TRUETOK = 276,
+     FALSETOK = 277,
+     BEGINTOK = 278,
+     ENDTOK = 279,
+     DECLARE = 280,
+     DEFINE = 281,
+     GLOBAL = 282,
+     CONSTANT = 283,
+     SECTION = 284,
+     VOLATILE = 285,
+     TO = 286,
+     DOTDOTDOT = 287,
+     NULL_TOK = 288,
+     UNDEF = 289,
+     INTERNAL = 290,
+     LINKONCE = 291,
+     WEAK = 292,
+     APPENDING = 293,
+     DLLIMPORT = 294,
+     DLLEXPORT = 295,
+     EXTERN_WEAK = 296,
+     OPAQUE = 297,
+     EXTERNAL = 298,
+     TARGET = 299,
+     TRIPLE = 300,
+     ALIGN = 301,
+     DEPLIBS = 302,
+     CALL = 303,
+     TAIL = 304,
+     ASM_TOK = 305,
+     MODULE = 306,
+     SIDEEFFECT = 307,
+     CC_TOK = 308,
+     CCC_TOK = 309,
+     FASTCC_TOK = 310,
+     COLDCC_TOK = 311,
+     X86_STDCALLCC_TOK = 312,
+     X86_FASTCALLCC_TOK = 313,
+     DATALAYOUT = 314,
+     RET = 315,
+     BR = 316,
+     SWITCH = 317,
+     INVOKE = 318,
+     UNWIND = 319,
+     UNREACHABLE = 320,
+     ADD = 321,
+     SUB = 322,
+     MUL = 323,
+     UDIV = 324,
+     SDIV = 325,
+     FDIV = 326,
+     UREM = 327,
+     SREM = 328,
+     FREM = 329,
+     AND = 330,
+     OR = 331,
+     XOR = 332,
+     SHL = 333,
+     LSHR = 334,
+     ASHR = 335,
+     ICMP = 336,
+     FCMP = 337,
+     EQ = 338,
+     NE = 339,
+     SLT = 340,
+     SGT = 341,
+     SLE = 342,
+     SGE = 343,
+     ULT = 344,
+     UGT = 345,
+     ULE = 346,
+     UGE = 347,
+     OEQ = 348,
+     ONE = 349,
+     OLT = 350,
+     OGT = 351,
+     OLE = 352,
+     OGE = 353,
+     ORD = 354,
+     UNO = 355,
+     UEQ = 356,
+     UNE = 357,
+     MALLOC = 358,
+     ALLOCA = 359,
+     FREE = 360,
+     LOAD = 361,
+     STORE = 362,
+     GETELEMENTPTR = 363,
+     TRUNC = 364,
+     ZEXT = 365,
+     SEXT = 366,
+     FPTRUNC = 367,
+     FPEXT = 368,
+     BITCAST = 369,
+     UITOFP = 370,
+     SITOFP = 371,
+     FPTOUI = 372,
+     FPTOSI = 373,
+     INTTOPTR = 374,
+     PTRTOINT = 375,
+     PHI_TOK = 376,
+     SELECT = 377,
+     VAARG = 378,
+     EXTRACTELEMENT = 379,
+     INSERTELEMENT = 380,
+     SHUFFLEVECTOR = 381,
+     NORETURN = 382,
+     INREG = 383,
+     SRET = 384,
+     DEFAULT = 385,
+     HIDDEN = 386
+   };
+#endif
+/* Tokens.  */
+#define ESINT64VAL 258
+#define EUINT64VAL 259
+#define LOCALVAL_ID 260
+#define GLOBALVAL_ID 261
+#define FPVAL 262
+#define VOID 263
+#define INTTYPE 264
+#define FLOAT 265
+#define DOUBLE 266
+#define LABEL 267
+#define TYPE 268
+#define LOCALVAR 269
+#define GLOBALVAR 270
+#define LABELSTR 271
+#define STRINGCONSTANT 272
+#define ATSTRINGCONSTANT 273
+#define IMPLEMENTATION 274
+#define ZEROINITIALIZER 275
+#define TRUETOK 276
+#define FALSETOK 277
+#define BEGINTOK 278
+#define ENDTOK 279
+#define DECLARE 280
+#define DEFINE 281
+#define GLOBAL 282
+#define CONSTANT 283
+#define SECTION 284
+#define VOLATILE 285
+#define TO 286
+#define DOTDOTDOT 287
+#define NULL_TOK 288
+#define UNDEF 289
+#define INTERNAL 290
+#define LINKONCE 291
+#define WEAK 292
+#define APPENDING 293
+#define DLLIMPORT 294
+#define DLLEXPORT 295
+#define EXTERN_WEAK 296
+#define OPAQUE 297
+#define EXTERNAL 298
+#define TARGET 299
+#define TRIPLE 300
+#define ALIGN 301
+#define DEPLIBS 302
+#define CALL 303
+#define TAIL 304
+#define ASM_TOK 305
+#define MODULE 306
+#define SIDEEFFECT 307
+#define CC_TOK 308
+#define CCC_TOK 309
+#define FASTCC_TOK 310
+#define COLDCC_TOK 311
+#define X86_STDCALLCC_TOK 312
+#define X86_FASTCALLCC_TOK 313
+#define DATALAYOUT 314
+#define RET 315
+#define BR 316
+#define SWITCH 317
+#define INVOKE 318
+#define UNWIND 319
+#define UNREACHABLE 320
+#define ADD 321
+#define SUB 322
+#define MUL 323
+#define UDIV 324
+#define SDIV 325
+#define FDIV 326
+#define UREM 327
+#define SREM 328
+#define FREM 329
+#define AND 330
+#define OR 331
+#define XOR 332
+#define SHL 333
+#define LSHR 334
+#define ASHR 335
+#define ICMP 336
+#define FCMP 337
+#define EQ 338
+#define NE 339
+#define SLT 340
+#define SGT 341
+#define SLE 342
+#define SGE 343
+#define ULT 344
+#define UGT 345
+#define ULE 346
+#define UGE 347
+#define OEQ 348
+#define ONE 349
+#define OLT 350
+#define OGT 351
+#define OLE 352
+#define OGE 353
+#define ORD 354
+#define UNO 355
+#define UEQ 356
+#define UNE 357
+#define MALLOC 358
+#define ALLOCA 359
+#define FREE 360
+#define LOAD 361
+#define STORE 362
+#define GETELEMENTPTR 363
+#define TRUNC 364
+#define ZEXT 365
+#define SEXT 366
+#define FPTRUNC 367
+#define FPEXT 368
+#define BITCAST 369
+#define UITOFP 370
+#define SITOFP 371
+#define FPTOUI 372
+#define FPTOSI 373
+#define INTTOPTR 374
+#define PTRTOINT 375
+#define PHI_TOK 376
+#define SELECT 377
+#define VAARG 378
+#define EXTRACTELEMENT 379
+#define INSERTELEMENT 380
+#define SHUFFLEVECTOR 381
+#define NORETURN 382
+#define INREG 383
+#define SRET 384
+#define DEFAULT 385
+#define HIDDEN 386
+
+
+
+
+/* Copy the first part of user declarations.  */
+#line 14 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
 
 #include "ParserInternals.h"
 #include "llvm/CallingConv.h"
@@ -1013,8 +1202,28 @@
 }
 
 
-#line 886 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-typedef union {
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* Enabling the token table.  */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#line 886 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
   llvm::BasicBlock                       *BasicBlockVal;
@@ -1059,1062 +1268,1519 @@
   llvm::ICmpInst::Predicate         IPredicate;
   llvm::FCmpInst::Predicate         FPredicate;
 } YYSTYPE;
-#include <stdio.h>
+/* Line 196 of yacc.c.  */
+#line 1273 "llvmAsmParser.tab.c"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
+
+
+
+/* Copy the second part of user declarations.  */
+
+
+/* Line 219 of yacc.c.  */
+#line 1285 "llvmAsmParser.tab.c"
+
+#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
+# define YYSIZE_T __SIZE_TYPE__
+#endif
+#if ! defined (YYSIZE_T) && defined (size_t)
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T) && (defined (__STDC__) || defined (__cplusplus))
+# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
+# define YYSIZE_T size_t
+#endif
+#if ! defined (YYSIZE_T)
+# define YYSIZE_T unsigned int
+#endif
+
+#ifndef YY_
+# if YYENABLE_NLS
+#  if ENABLE_NLS
+#   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
+#   define YY_(msgid) dgettext ("bison-runtime", msgid)
+#  endif
+# endif
+# ifndef YY_
+#  define YY_(msgid) msgid
+# endif
+#endif
+
+#if ! defined (yyoverflow) || YYERROR_VERBOSE
+
+/* The parser invokes alloca or malloc; define the necessary symbols.  */
+
+# ifdef YYSTACK_USE_ALLOCA
+#  if YYSTACK_USE_ALLOCA
+#   ifdef __GNUC__
+#    define YYSTACK_ALLOC __builtin_alloca
+#   else
+#    define YYSTACK_ALLOC alloca
+#    if defined (__STDC__) || defined (__cplusplus)
+#     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
+#     define YYINCLUDED_STDLIB_H
+#    endif
+#   endif
+#  endif
+# endif
+
+# ifdef YYSTACK_ALLOC
+   /* Pacify GCC's `empty if-body' warning. */
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+    /* The OS might guarantee only one guard page at the bottom of the stack,
+       and a page size can be as small as 4096 bytes.  So we cannot safely
+       invoke alloca (N) if N exceeds 4096.  Use a slightly smaller number
+       to allow for a few compiler-allocated temporary stack slots.  */
+#   define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2005 */
+#  endif
+# else
+#  define YYSTACK_ALLOC YYMALLOC
+#  define YYSTACK_FREE YYFREE
+#  ifndef YYSTACK_ALLOC_MAXIMUM
+#   define YYSTACK_ALLOC_MAXIMUM ((YYSIZE_T) -1)
+#  endif
+#  ifdef __cplusplus
+extern "C" {
+#  endif
+#  ifndef YYMALLOC
+#   define YYMALLOC malloc
+#   if (! defined (malloc) && ! defined (YYINCLUDED_STDLIB_H) \
+	&& (defined (__STDC__) || defined (__cplusplus)))
+void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+#  ifndef YYFREE
+#   define YYFREE free
+#   if (! defined (free) && ! defined (YYINCLUDED_STDLIB_H) \
+	&& (defined (__STDC__) || defined (__cplusplus)))
+void free (void *); /* INFRINGES ON USER NAME SPACE */
+#   endif
+#  endif
+#  ifdef __cplusplus
+}
+#  endif
+# endif
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
 
-#ifndef __cplusplus
-#ifndef __STDC__
-#define const
-#endif
-#endif
 
+#if (! defined (yyoverflow) \
+     && (! defined (__cplusplus) \
+	 || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
 
+/* A type that is properly aligned for any stack member.  */
+union yyalloc
+{
+  short int yyss;
+  YYSTYPE yyvs;
+  };
 
-#define	YYFINAL		567
-#define	YYFLAG		-32768
-#define	YYNTBASE	146
-
-#define YYTRANSLATE(x) ((unsigned)(x) <= 385 ? yytranslate[x] : 224)
-
-static const short 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,   136,
-   137,   134,     2,   133,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,   141,
-   132,   142,     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,
-   138,   135,   140,     2,     2,     2,     2,     2,   145,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     2,   139,
-     2,     2,   143,     2,   144,     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,     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,     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,     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,    23,    24,    25,    26,
-    27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-    37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
-    47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
-    57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
-    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-    77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
-    87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-    97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
-   107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-   117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
-   127,   128,   129,   130,   131
-};
+/* The size of the maximum gap between one aligned stack and the next.  */
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
 
-#if YYDEBUG != 0
-static const short yyprhs[] = {     0,
-     0,     2,     4,     6,     8,    10,    12,    14,    16,    18,
-    20,    22,    24,    26,    28,    30,    32,    34,    36,    38,
-    40,    42,    44,    46,    48,    50,    52,    54,    56,    58,
-    60,    62,    64,    66,    68,    70,    72,    74,    76,    78,
-    80,    82,    84,    86,    88,    90,    92,    94,    96,    98,
-   100,   102,   104,   106,   108,   110,   112,   114,   116,   118,
-   119,   122,   123,   125,   127,   130,   131,   133,   135,   137,
-   139,   141,   143,   145,   147,   148,   150,   151,   153,   155,
-   156,   158,   160,   162,   164,   165,   167,   169,   171,   173,
-   175,   178,   180,   182,   184,   186,   187,   190,   192,   194,
-   195,   198,   199,   202,   203,   207,   210,   211,   213,   214,
-   218,   220,   223,   225,   227,   229,   231,   233,   235,   238,
-   240,   243,   249,   255,   261,   267,   271,   274,   280,   285,
-   288,   290,   292,   294,   298,   300,   304,   306,   307,   309,
-   313,   318,   322,   326,   331,   336,   340,   347,   353,   356,
-   359,   362,   365,   368,   371,   374,   377,   380,   383,   390,
-   396,   405,   412,   419,   427,   435,   442,   449,   458,   467,
-   471,   473,   475,   477,   479,   480,   482,   485,   486,   490,
-   491,   495,   499,   501,   505,   509,   510,   517,   518,   526,
-   527,   535,   538,   542,   544,   548,   552,   556,   560,   562,
-   563,   569,   573,   575,   579,   581,   582,   592,   594,   596,
-   601,   603,   605,   608,   612,   613,   615,   617,   619,   621,
-   623,   625,   627,   629,   631,   635,   637,   643,   645,   647,
-   649,   651,   653,   655,   658,   661,   664,   668,   671,   672,
-   674,   677,   680,   684,   694,   704,   713,   728,   730,   732,
-   739,   745,   748,   755,   763,   767,   773,   774,   775,   779,
-   782,   784,   790,   796,   803,   810,   815,   820,   827,   832,
-   837,   844,   851,   854,   863,   865,   867,   868,   872,   879,
-   883,   890,   893,   898,   905
-};
+/* The size of an array large to enough to hold all stacks, each with
+   N elements.  */
+# define YYSTACK_BYTES(N) \
+     ((N) * (sizeof (short int) + sizeof (YYSTYPE))			\
+      + YYSTACK_GAP_MAXIMUM)
+
+/* Copy COUNT objects from FROM to TO.  The source and destination do
+   not overlap.  */
+# ifndef YYCOPY
+#  if defined (__GNUC__) && 1 < __GNUC__
+#   define YYCOPY(To, From, Count) \
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
+#  else
+#   define YYCOPY(To, From, Count)		\
+      do					\
+	{					\
+	  YYSIZE_T yyi;				\
+	  for (yyi = 0; yyi < (Count); yyi++)	\
+	    (To)[yyi] = (From)[yyi];		\
+	}					\
+      while (0)
+#  endif
+# endif
+
+/* Relocate STACK from its old location to the new one.  The
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of
+   elements in the stack, and YYPTR gives the new location of the
+   stack.  Advance YYPTR to a properly aligned location for the next
+   stack.  */
+# define YYSTACK_RELOCATE(Stack)					\
+    do									\
+      {									\
+	YYSIZE_T yynewbytes;						\
+	YYCOPY (&yyptr->Stack, Stack, yysize);				\
+	Stack = &yyptr->Stack;						\
+	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
+	yyptr += yynewbytes / sizeof (*yyptr);				\
+      }									\
+    while (0)
 
-static const short yyrhs[] = {    66,
-     0,    67,     0,    68,     0,    69,     0,    70,     0,    71,
-     0,    72,     0,    73,     0,    74,     0,    75,     0,    76,
-     0,    77,     0,   106,     0,   107,     0,   108,     0,   109,
-     0,   110,     0,   111,     0,   112,     0,   113,     0,   114,
-     0,   115,     0,   116,     0,   117,     0,   120,     0,   121,
-     0,   122,     0,    80,     0,    81,     0,    82,     0,    83,
-     0,    84,     0,    85,     0,    86,     0,    87,     0,    88,
-     0,    89,     0,    90,     0,    91,     0,    92,     0,    93,
-     0,    94,     0,    95,     0,    96,     0,    97,     0,    98,
-     0,    99,     0,    86,     0,    87,     0,    88,     0,    89,
-     0,    21,     0,    22,     0,     9,     0,    10,     0,    11,
-     0,    14,     0,    17,     0,   154,     0,     0,   154,   132,
-     0,     0,    15,     0,    18,     0,   157,   132,     0,     0,
-    35,     0,    37,     0,    36,     0,    38,     0,    40,     0,
-    39,     0,    41,     0,    43,     0,     0,   131,     0,     0,
-    39,     0,    41,     0,     0,    35,     0,    36,     0,    37,
-     0,    40,     0,     0,    54,     0,    55,     0,    56,     0,
-    57,     0,    58,     0,    53,     4,     0,   107,     0,   108,
-     0,   128,     0,   129,     0,     0,   166,   165,     0,   127,
-     0,   165,     0,     0,   168,   167,     0,     0,    46,     4,
-     0,     0,   133,    46,     4,     0,    29,    17,     0,     0,
-   171,     0,     0,   133,   174,   173,     0,   171,     0,    46,
-     4,     0,     9,     0,    10,     0,    11,     0,    12,     0,
-    42,     0,   175,     0,   176,   134,     0,   208,     0,   135,
-     4,     0,   176,   136,   180,   137,   168,     0,     8,   136,
-   180,   137,   168,     0,   138,     4,   139,   176,   140,     0,
-   141,     4,   139,   176,   142,     0,   143,   181,   144,     0,
-   143,   144,     0,   141,   143,   181,   144,   142,     0,   141,
-   143,   144,   142,     0,   176,   166,     0,   176,     0,     8,
-     0,   177,     0,   179,   133,   177,     0,   179,     0,   179,
-   133,    32,     0,    32,     0,     0,   176,     0,   181,   133,
-   176,     0,   176,   138,   184,   140,     0,   176,   138,   140,
-     0,   176,   145,    17,     0,   176,   141,   184,   142,     0,
-   176,   143,   184,   144,     0,   176,   143,   144,     0,   176,
-   141,   143,   184,   144,   142,     0,   176,   141,   143,   144,
-   142,     0,   176,    33,     0,   176,    34,     0,   176,   208,
-     0,   176,   183,     0,   176,    20,     0,   152,     3,     0,
-   152,     4,     0,     9,    21,     0,     9,    22,     0,   153,
-     7,     0,   148,   136,   182,    31,   176,   137,     0,   105,
-   136,   182,   219,   137,     0,   119,   136,   182,   133,   182,
-   133,   182,   137,     0,   146,   136,   182,   133,   182,   137,
-     0,   147,   136,   182,   133,   182,   137,     0,    78,   150,
-   136,   182,   133,   182,   137,     0,    79,   151,   136,   182,
-   133,   182,   137,     0,   149,   136,   182,   133,   182,   137,
-     0,   124,   136,   182,   133,   182,   137,     0,   125,   136,
-   182,   133,   182,   133,   182,   137,     0,   126,   136,   182,
-   133,   182,   133,   182,   137,     0,   184,   133,   182,     0,
-   182,     0,    27,     0,    28,     0,   187,     0,     0,   188,
-     0,   187,   188,     0,     0,    26,   189,   204,     0,     0,
-    25,   190,   205,     0,    51,    50,   194,     0,    19,     0,
-   156,    13,   176,     0,   156,    13,     8,     0,     0,   158,
-   161,   185,   182,   191,   173,     0,     0,   158,   159,   161,
-   185,   182,   192,   173,     0,     0,   158,   160,   161,   185,
-   176,   193,   173,     0,    44,   195,     0,    47,   132,   196,
-     0,    17,     0,    45,   132,    17,     0,    59,   132,    17,
-     0,   138,   197,   140,     0,   197,   133,    17,     0,    17,
-     0,     0,   198,   133,   176,   166,   155,     0,   176,   166,
-   155,     0,   198,     0,   198,   133,    32,     0,    32,     0,
-     0,   164,   178,   157,   136,   199,   137,   168,   172,   169,
-     0,    23,     0,   143,     0,   163,   161,   200,   201,     0,
-    24,     0,   144,     0,   211,   203,     0,   162,   161,   200,
-     0,     0,    52,     0,     3,     0,     4,     0,     7,     0,
-    21,     0,    22,     0,    33,     0,    34,     0,    20,     0,
-   141,   184,   142,     0,   183,     0,    50,   206,    17,   133,
-    17,     0,     5,     0,     6,     0,   154,     0,   157,     0,
-   208,     0,   207,     0,   176,   209,     0,   211,   212,     0,
-   202,   212,     0,   213,   156,   214,     0,   213,   216,     0,
-     0,    16,     0,    60,   210,     0,    60,     8,     0,    61,
-    12,   209,     0,    61,     9,   209,   133,    12,   209,   133,
-    12,   209,     0,    62,   152,   209,   133,    12,   209,   138,
-   215,   140,     0,    62,   152,   209,   133,    12,   209,   138,
-   140,     0,    63,   164,   178,   209,   136,   218,   137,   168,
-    31,    12,   209,    64,    12,   209,     0,    64,     0,    65,
-     0,   215,   152,   207,   133,    12,   209,     0,   152,   207,
-   133,    12,   209,     0,   156,   221,     0,   176,   138,   209,
-   133,   209,   140,     0,   217,   133,   138,   209,   133,   209,
-   140,     0,   176,   209,   166,     0,   218,   133,   176,   209,
-   166,     0,     0,     0,   219,   133,   210,     0,    49,    48,
-     0,    48,     0,   146,   176,   209,   133,   209,     0,   147,
-   176,   209,   133,   209,     0,    78,   150,   176,   209,   133,
-   209,     0,    79,   151,   176,   209,   133,   209,     0,   149,
-   210,   133,   210,     0,   148,   210,    31,   176,     0,   119,
-   210,   133,   210,   133,   210,     0,   123,   210,   133,   176,
-     0,   124,   210,   133,   210,     0,   125,   210,   133,   210,
-   133,   210,     0,   126,   210,   133,   210,   133,   210,     0,
-   118,   217,     0,   220,   164,   178,   209,   136,   218,   137,
-   168,     0,   223,     0,    30,     0,     0,   100,   176,   170,
-     0,   100,   176,   133,     9,   209,   170,     0,   101,   176,
-   170,     0,   101,   176,   133,     9,   209,   170,     0,   102,
-   210,     0,   222,   103,   176,   209,     0,   222,   104,   210,
-   133,   176,   209,     0,   105,   176,   209,   219,     0
-};
+#endif
 
+#if defined (__STDC__) || defined (__cplusplus)
+   typedef signed char yysigned_char;
+#else
+   typedef short int yysigned_char;
 #endif
 
-#if YYDEBUG != 0
-static const short yyrline[] = { 0,
-  1032,  1032,  1032,  1032,  1032,  1032,  1032,  1032,  1032,  1033,
-  1033,  1033,  1034,  1034,  1034,  1034,  1034,  1034,  1034,  1035,
-  1035,  1035,  1035,  1035,  1036,  1036,  1036,  1038,  1038,  1039,
-  1039,  1040,  1040,  1041,  1041,  1042,  1042,  1046,  1046,  1047,
-  1047,  1048,  1048,  1049,  1049,  1050,  1050,  1051,  1051,  1052,
-  1052,  1053,  1054,  1059,  1060,  1060,  1062,  1062,  1063,  1063,
-  1067,  1071,  1076,  1076,  1078,  1082,  1088,  1089,  1090,  1091,
-  1092,  1096,  1097,  1098,  1102,  1103,  1107,  1108,  1109,  1113,
-  1114,  1115,  1116,  1117,  1120,  1120,  1121,  1122,  1123,  1124,
-  1125,  1133,  1134,  1135,  1136,  1139,  1140,  1145,  1146,  1149,
-  1150,  1157,  1157,  1164,  1164,  1173,  1181,  1181,  1187,  1187,
-  1189,  1194,  1207,  1207,  1207,  1207,  1210,  1214,  1218,  1225,
-  1230,  1238,  1256,  1274,  1279,  1291,  1301,  1305,  1315,  1322,
-  1329,  1336,  1341,  1346,  1353,  1354,  1361,  1368,  1376,  1381,
-  1392,  1420,  1436,  1465,  1493,  1518,  1537,  1562,  1581,  1593,
-  1600,  1666,  1676,  1686,  1692,  1698,  1703,  1708,  1716,  1728,
-  1749,  1757,  1763,  1774,  1779,  1784,  1793,  1799,  1805,  1814,
-  1818,  1826,  1826,  1837,  1842,  1850,  1851,  1855,  1855,  1859,
-  1859,  1862,  1865,  1877,  1901,  1912,  1919,  1922,  1927,  1930,
-  1936,  1940,  1943,  1949,  1962,  1966,  1971,  1973,  1978,  1983,
-  1992,  2002,  2013,  2017,  2026,  2035,  2040,  2146,  2146,  2148,
-  2157,  2157,  2159,  2164,  2176,  2180,  2185,  2189,  2193,  2197,
-  2201,  2205,  2209,  2213,  2217,  2242,  2246,  2260,  2264,  2268,
-  2272,  2278,  2278,  2284,  2293,  2297,  2306,  2317,  2326,  2338,
-  2351,  2355,  2359,  2364,  2374,  2393,  2402,  2469,  2473,  2480,
-  2491,  2504,  2513,  2524,  2534,  2542,  2550,  2553,  2554,  2561,
-  2565,  2570,  2591,  2608,  2621,  2634,  2643,  2655,  2663,  2670,
-  2676,  2682,  2688,  2703,  2767,  2772,  2776,  2783,  2790,  2798,
-  2805,  2813,  2821,  2835,  2852
+/* YYFINAL -- State number of the termination state. */
+#define YYFINAL  40
+/* YYLAST -- Last index in YYTABLE.  */
+#define YYLAST   1439
+
+/* YYNTOKENS -- Number of terminals. */
+#define YYNTOKENS  146
+/* YYNNTS -- Number of nonterminals. */
+#define YYNNTS  78
+/* YYNRULES -- Number of rules. */
+#define YYNRULES  284
+/* YYNRULES -- Number of states. */
+#define YYNSTATES  557
+
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
+#define YYUNDEFTOK  2
+#define YYMAXUTOK   386
+
+#define YYTRANSLATE(YYX)						\
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
+
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */
+static const unsigned 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,
+     136,   137,   134,     2,   133,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     141,   132,   142,     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,   138,   135,   140,     2,     2,     2,     2,     2,   145,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+     139,     2,     2,   143,     2,   144,     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,     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,     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,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
+     115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
+     125,   126,   127,   128,   129,   130,   131
 };
-#endif
 
+#if YYDEBUG
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
+   YYRHS.  */
+static const unsigned short int yyprhs[] =
+{
+       0,     0,     3,     5,     7,     9,    11,    13,    15,    17,
+      19,    21,    23,    25,    27,    29,    31,    33,    35,    37,
+      39,    41,    43,    45,    47,    49,    51,    53,    55,    57,
+      59,    61,    63,    65,    67,    69,    71,    73,    75,    77,
+      79,    81,    83,    85,    87,    89,    91,    93,    95,    97,
+      99,   101,   103,   105,   107,   109,   111,   113,   115,   117,
+     119,   121,   122,   125,   126,   128,   130,   133,   134,   136,
+     138,   140,   142,   144,   146,   148,   150,   151,   153,   154,
+     156,   158,   159,   161,   163,   165,   167,   168,   170,   172,
+     174,   176,   178,   181,   183,   185,   187,   189,   190,   193,
+     195,   197,   198,   201,   202,   205,   206,   210,   213,   214,
+     216,   217,   221,   223,   226,   228,   230,   232,   234,   236,
+     238,   241,   243,   246,   252,   258,   264,   270,   274,   277,
+     283,   288,   291,   293,   295,   297,   301,   303,   307,   309,
+     310,   312,   316,   321,   325,   329,   334,   339,   343,   350,
+     356,   359,   362,   365,   368,   371,   374,   377,   380,   383,
+     386,   393,   399,   408,   415,   422,   430,   438,   445,   454,
+     463,   467,   469,   471,   473,   475,   476,   478,   481,   482,
+     486,   487,   491,   495,   497,   501,   505,   506,   513,   514,
+     522,   523,   531,   534,   538,   540,   544,   548,   552,   556,
+     558,   559,   565,   569,   571,   575,   577,   578,   588,   590,
+     592,   597,   599,   601,   604,   608,   609,   611,   613,   615,
+     617,   619,   621,   623,   625,   627,   631,   633,   639,   641,
+     643,   645,   647,   649,   651,   654,   657,   660,   664,   667,
+     668,   670,   673,   676,   680,   690,   700,   709,   724,   726,
+     728,   735,   741,   744,   751,   759,   763,   769,   770,   771,
+     775,   778,   780,   786,   792,   799,   806,   811,   818,   823,
+     828,   835,   842,   845,   854,   856,   858,   859,   863,   870,
+     874,   881,   884,   889,   896
+};
 
-#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */
+static const short int yyrhs[] =
+{
+     186,     0,    -1,    66,    -1,    67,    -1,    68,    -1,    69,
+      -1,    70,    -1,    71,    -1,    72,    -1,    73,    -1,    74,
+      -1,    78,    -1,    79,    -1,    80,    -1,    75,    -1,    76,
+      -1,    77,    -1,   109,    -1,   110,    -1,   111,    -1,   112,
+      -1,   113,    -1,   114,    -1,   115,    -1,   116,    -1,   117,
+      -1,   118,    -1,   119,    -1,   120,    -1,    83,    -1,    84,
+      -1,    85,    -1,    86,    -1,    87,    -1,    88,    -1,    89,
+      -1,    90,    -1,    91,    -1,    92,    -1,    93,    -1,    94,
+      -1,    95,    -1,    96,    -1,    97,    -1,    98,    -1,    99,
+      -1,   100,    -1,   101,    -1,   102,    -1,    89,    -1,    90,
+      -1,    91,    -1,    92,    -1,    21,    -1,    22,    -1,     9,
+      -1,    10,    -1,    11,    -1,    14,    -1,    17,    -1,   154,
+      -1,    -1,   154,   132,    -1,    -1,    15,    -1,    18,    -1,
+     157,   132,    -1,    -1,    35,    -1,    37,    -1,    36,    -1,
+      38,    -1,    40,    -1,    39,    -1,    41,    -1,    43,    -1,
+      -1,   131,    -1,    -1,    39,    -1,    41,    -1,    -1,    35,
+      -1,    36,    -1,    37,    -1,    40,    -1,    -1,    54,    -1,
+      55,    -1,    56,    -1,    57,    -1,    58,    -1,    53,     4,
+      -1,   110,    -1,   111,    -1,   128,    -1,   129,    -1,    -1,
+     166,   165,    -1,   127,    -1,   165,    -1,    -1,   168,   167,
+      -1,    -1,    46,     4,    -1,    -1,   133,    46,     4,    -1,
+      29,    17,    -1,    -1,   171,    -1,    -1,   133,   174,   173,
+      -1,   171,    -1,    46,     4,    -1,     9,    -1,    10,    -1,
+      11,    -1,    12,    -1,    42,    -1,   175,    -1,   176,   134,
+      -1,   208,    -1,   135,     4,    -1,   176,   136,   180,   137,
+     168,    -1,     8,   136,   180,   137,   168,    -1,   138,     4,
+     139,   176,   140,    -1,   141,     4,   139,   176,   142,    -1,
+     143,   181,   144,    -1,   143,   144,    -1,   141,   143,   181,
+     144,   142,    -1,   141,   143,   144,   142,    -1,   176,   166,
+      -1,   176,    -1,     8,    -1,   177,    -1,   179,   133,   177,
+      -1,   179,    -1,   179,   133,    32,    -1,    32,    -1,    -1,
+     176,    -1,   181,   133,   176,    -1,   176,   138,   184,   140,
+      -1,   176,   138,   140,    -1,   176,   145,    17,    -1,   176,
+     141,   184,   142,    -1,   176,   143,   184,   144,    -1,   176,
+     143,   144,    -1,   176,   141,   143,   184,   144,   142,    -1,
+     176,   141,   143,   144,   142,    -1,   176,    33,    -1,   176,
+      34,    -1,   176,   208,    -1,   176,   183,    -1,   176,    20,
+      -1,   152,     3,    -1,   152,     4,    -1,     9,    21,    -1,
+       9,    22,    -1,   153,     7,    -1,   149,   136,   182,    31,
+     176,   137,    -1,   108,   136,   182,   219,   137,    -1,   122,
+     136,   182,   133,   182,   133,   182,   137,    -1,   147,   136,
+     182,   133,   182,   137,    -1,   148,   136,   182,   133,   182,
+     137,    -1,    81,   150,   136,   182,   133,   182,   137,    -1,
+      82,   151,   136,   182,   133,   182,   137,    -1,   124,   136,
+     182,   133,   182,   137,    -1,   125,   136,   182,   133,   182,
+     133,   182,   137,    -1,   126,   136,   182,   133,   182,   133,
+     182,   137,    -1,   184,   133,   182,    -1,   182,    -1,    27,
+      -1,    28,    -1,   187,    -1,    -1,   188,    -1,   187,   188,
+      -1,    -1,    26,   189,   204,    -1,    -1,    25,   190,   205,
+      -1,    51,    50,   194,    -1,    19,    -1,   156,    13,   176,
+      -1,   156,    13,     8,    -1,    -1,   158,   161,   185,   182,
+     191,   173,    -1,    -1,   158,   159,   161,   185,   182,   192,
+     173,    -1,    -1,   158,   160,   161,   185,   176,   193,   173,
+      -1,    44,   195,    -1,    47,   132,   196,    -1,    17,    -1,
+      45,   132,    17,    -1,    59,   132,    17,    -1,   138,   197,
+     140,    -1,   197,   133,    17,    -1,    17,    -1,    -1,   198,
+     133,   176,   166,   155,    -1,   176,   166,   155,    -1,   198,
+      -1,   198,   133,    32,    -1,    32,    -1,    -1,   164,   178,
+     157,   136,   199,   137,   168,   172,   169,    -1,    23,    -1,
+     143,    -1,   163,   161,   200,   201,    -1,    24,    -1,   144,
+      -1,   211,   203,    -1,   162,   161,   200,    -1,    -1,    52,
+      -1,     3,    -1,     4,    -1,     7,    -1,    21,    -1,    22,
+      -1,    33,    -1,    34,    -1,    20,    -1,   141,   184,   142,
+      -1,   183,    -1,    50,   206,    17,   133,    17,    -1,     5,
+      -1,     6,    -1,   154,    -1,   157,    -1,   208,    -1,   207,
+      -1,   176,   209,    -1,   211,   212,    -1,   202,   212,    -1,
+     213,   156,   214,    -1,   213,   216,    -1,    -1,    16,    -1,
+      60,   210,    -1,    60,     8,    -1,    61,    12,   209,    -1,
+      61,     9,   209,   133,    12,   209,   133,    12,   209,    -1,
+      62,   152,   209,   133,    12,   209,   138,   215,   140,    -1,
+      62,   152,   209,   133,    12,   209,   138,   140,    -1,    63,
+     164,   178,   209,   136,   218,   137,   168,    31,    12,   209,
+      64,    12,   209,    -1,    64,    -1,    65,    -1,   215,   152,
+     207,   133,    12,   209,    -1,   152,   207,   133,    12,   209,
+      -1,   156,   221,    -1,   176,   138,   209,   133,   209,   140,
+      -1,   217,   133,   138,   209,   133,   209,   140,    -1,   176,
+     209,   166,    -1,   218,   133,   176,   209,   166,    -1,    -1,
+      -1,   219,   133,   210,    -1,    49,    48,    -1,    48,    -1,
+     147,   176,   209,   133,   209,    -1,   148,   176,   209,   133,
+     209,    -1,    81,   150,   176,   209,   133,   209,    -1,    82,
+     151,   176,   209,   133,   209,    -1,   149,   210,    31,   176,
+      -1,   122,   210,   133,   210,   133,   210,    -1,   123,   210,
+     133,   176,    -1,   124,   210,   133,   210,    -1,   125,   210,
+     133,   210,   133,   210,    -1,   126,   210,   133,   210,   133,
+     210,    -1,   121,   217,    -1,   220,   164,   178,   209,   136,
+     218,   137,   168,    -1,   223,    -1,    30,    -1,    -1,   103,
+     176,   170,    -1,   103,   176,   133,     9,   209,   170,    -1,
+     104,   176,   170,    -1,   104,   176,   133,     9,   209,   170,
+      -1,   105,   210,    -1,   222,   106,   176,   209,    -1,   222,
+     107,   210,   133,   176,   209,    -1,   108,   176,   209,   219,
+      -1
+};
 
-static const char * const yytname[] = {   "$","error","$undefined.","ESINT64VAL",
-"EUINT64VAL","LOCALVAL_ID","GLOBALVAL_ID","FPVAL","VOID","INTTYPE","FLOAT","DOUBLE",
-"LABEL","TYPE","LOCALVAR","GLOBALVAR","LABELSTR","STRINGCONSTANT","ATSTRINGCONSTANT",
-"IMPLEMENTATION","ZEROINITIALIZER","TRUETOK","FALSETOK","BEGINTOK","ENDTOK",
-"DECLARE","DEFINE","GLOBAL","CONSTANT","SECTION","VOLATILE","TO","DOTDOTDOT",
-"NULL_TOK","UNDEF","INTERNAL","LINKONCE","WEAK","APPENDING","DLLIMPORT","DLLEXPORT",
-"EXTERN_WEAK","OPAQUE","EXTERNAL","TARGET","TRIPLE","ALIGN","DEPLIBS","CALL",
-"TAIL","ASM_TOK","MODULE","SIDEEFFECT","CC_TOK","CCC_TOK","FASTCC_TOK","COLDCC_TOK",
-"X86_STDCALLCC_TOK","X86_FASTCALLCC_TOK","DATALAYOUT","RET","BR","SWITCH","INVOKE",
-"UNWIND","UNREACHABLE","ADD","SUB","MUL","UDIV","SDIV","FDIV","UREM","SREM",
-"FREM","AND","OR","XOR","ICMP","FCMP","EQ","NE","SLT","SGT","SLE","SGE","ULT",
-"UGT","ULE","UGE","OEQ","ONE","OLT","OGT","OLE","OGE","ORD","UNO","UEQ","UNE",
-"MALLOC","ALLOCA","FREE","LOAD","STORE","GETELEMENTPTR","TRUNC","ZEXT","SEXT",
-"FPTRUNC","FPEXT","BITCAST","UITOFP","SITOFP","FPTOUI","FPTOSI","INTTOPTR","PTRTOINT",
-"PHI_TOK","SELECT","SHL","LSHR","ASHR","VAARG","EXTRACTELEMENT","INSERTELEMENT",
-"SHUFFLEVECTOR","NORETURN","INREG","SRET","DEFAULT","HIDDEN","'='","','","'*'",
-"'\\\\'","'('","')'","'['","'x'","']'","'<'","'>'","'{'","'}'","'c'","ArithmeticOps",
-"LogicalOps","CastOps","ShiftOps","IPredicates","FPredicates","IntType","FPType",
-"LocalName","OptLocalName","OptLocalAssign","GlobalName","OptGlobalAssign","GVInternalLinkage",
-"GVExternalLinkage","GVVisibilityStyle","FunctionDeclareLinkage","FunctionDefineLinkage",
-"OptCallingConv","ParamAttr","OptParamAttrs","FuncAttr","OptFuncAttrs","OptAlign",
-"OptCAlign","SectionString","OptSection","GlobalVarAttributes","GlobalVarAttribute",
-"PrimType","Types","ArgType","ResultTypes","ArgTypeList","ArgTypeListI","TypeListI",
-"ConstVal","ConstExpr","ConstVector","GlobalType","Module","DefinitionList",
-"Definition","@1","@2","@3","@4","@5","AsmBlock","TargetDefinition","LibrariesDefinition",
-"LibList","ArgListH","ArgList","FunctionHeaderH","BEGIN","FunctionHeader","END",
-"Function","FunctionProto","OptSideEffect","ConstValueRef","SymbolicValueRef",
-"ValueRef","ResolvedVal","BasicBlockList","BasicBlock","InstructionList","BBTerminatorInst",
-"JumpTable","Inst","PHIList","ValueRefList","IndexList","OptTailCall","InstVal",
-"OptVolatile","MemoryInst", NULL
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
+static const unsigned short int yyrline[] =
+{
+       0,  1033,  1033,  1033,  1033,  1033,  1033,  1033,  1033,  1033,
+    1033,  1034,  1034,  1034,  1034,  1034,  1034,  1035,  1035,  1035,
+    1035,  1035,  1035,  1036,  1036,  1036,  1036,  1036,  1036,  1039,
+    1039,  1040,  1040,  1041,  1041,  1042,  1042,  1043,  1043,  1047,
+    1047,  1048,  1048,  1049,  1049,  1050,  1050,  1051,  1051,  1052,
+    1052,  1053,  1053,  1054,  1055,  1060,  1061,  1061,  1063,  1063,
+    1064,  1064,  1068,  1072,  1077,  1077,  1079,  1083,  1089,  1090,
+    1091,  1092,  1093,  1097,  1098,  1099,  1103,  1104,  1108,  1109,
+    1110,  1114,  1115,  1116,  1117,  1118,  1121,  1122,  1123,  1124,
+    1125,  1126,  1127,  1134,  1135,  1136,  1137,  1140,  1141,  1146,
+    1147,  1150,  1151,  1158,  1159,  1165,  1166,  1174,  1182,  1183,
+    1188,  1189,  1190,  1195,  1208,  1208,  1208,  1208,  1211,  1215,
+    1219,  1226,  1231,  1239,  1257,  1275,  1280,  1292,  1302,  1306,
+    1316,  1323,  1330,  1337,  1342,  1347,  1354,  1355,  1362,  1369,
+    1377,  1382,  1393,  1421,  1437,  1466,  1494,  1519,  1538,  1563,
+    1582,  1594,  1601,  1667,  1677,  1687,  1693,  1699,  1704,  1709,
+    1717,  1729,  1750,  1758,  1764,  1775,  1780,  1785,  1791,  1797,
+    1806,  1810,  1818,  1818,  1829,  1834,  1842,  1843,  1847,  1847,
+    1851,  1851,  1854,  1857,  1869,  1893,  1904,  1904,  1914,  1914,
+    1922,  1922,  1932,  1935,  1941,  1954,  1958,  1963,  1965,  1970,
+    1975,  1984,  1994,  2005,  2009,  2018,  2027,  2032,  2138,  2138,
+    2140,  2149,  2149,  2151,  2156,  2168,  2172,  2177,  2181,  2185,
+    2189,  2193,  2197,  2201,  2205,  2209,  2234,  2238,  2252,  2256,
+    2260,  2264,  2270,  2270,  2276,  2285,  2289,  2298,  2309,  2318,
+    2330,  2343,  2347,  2351,  2356,  2366,  2385,  2394,  2461,  2465,
+    2472,  2483,  2496,  2505,  2516,  2526,  2534,  2542,  2545,  2546,
+    2553,  2557,  2562,  2583,  2600,  2613,  2626,  2638,  2646,  2653,
+    2659,  2665,  2671,  2686,  2750,  2755,  2759,  2766,  2773,  2781,
+    2788,  2796,  2804,  2818,  2835
 };
 #endif
 
-static const short yyr1[] = {     0,
-   146,   146,   146,   146,   146,   146,   146,   146,   146,   147,
-   147,   147,   148,   148,   148,   148,   148,   148,   148,   148,
-   148,   148,   148,   148,   149,   149,   149,   150,   150,   150,
-   150,   150,   150,   150,   150,   150,   150,   151,   151,   151,
-   151,   151,   151,   151,   151,   151,   151,   151,   151,   151,
-   151,   151,   151,   152,   153,   153,   154,   154,   155,   155,
-   156,   156,   157,   157,   158,   158,   159,   159,   159,   159,
-   159,   160,   160,   160,   161,   161,   162,   162,   162,   163,
-   163,   163,   163,   163,   164,   164,   164,   164,   164,   164,
-   164,   165,   165,   165,   165,   166,   166,   167,   167,   168,
-   168,   169,   169,   170,   170,   171,   172,   172,   173,   173,
-   174,   174,   175,   175,   175,   175,   176,   176,   176,   176,
-   176,   176,   176,   176,   176,   176,   176,   176,   176,   177,
-   178,   178,   179,   179,   180,   180,   180,   180,   181,   181,
-   182,   182,   182,   182,   182,   182,   182,   182,   182,   182,
-   182,   182,   182,   182,   182,   182,   182,   182,   183,   183,
-   183,   183,   183,   183,   183,   183,   183,   183,   183,   184,
-   184,   185,   185,   186,   186,   187,   187,   189,   188,   190,
-   188,   188,   188,   188,   188,   191,   188,   192,   188,   193,
-   188,   188,   188,   194,   195,   195,   196,   197,   197,   197,
-   198,   198,   199,   199,   199,   199,   200,   201,   201,   202,
-   203,   203,   204,   205,   206,   206,   207,   207,   207,   207,
-   207,   207,   207,   207,   207,   207,   207,   208,   208,   208,
-   208,   209,   209,   210,   211,   211,   212,   213,   213,   213,
-   214,   214,   214,   214,   214,   214,   214,   214,   214,   215,
-   215,   216,   217,   217,   218,   218,   218,   219,   219,   220,
-   220,   221,   221,   221,   221,   221,   221,   221,   221,   221,
-   221,   221,   221,   221,   221,   222,   222,   223,   223,   223,
-   223,   223,   223,   223,   223
+#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
+/* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
+   First, the terminals, then, starting at YYNTOKENS, nonterminals. */
+static const char *const yytname[] =
+{
+  "$end", "error", "$undefined", "ESINT64VAL", "EUINT64VAL",
+  "LOCALVAL_ID", "GLOBALVAL_ID", "FPVAL", "VOID", "INTTYPE", "FLOAT",
+  "DOUBLE", "LABEL", "TYPE", "LOCALVAR", "GLOBALVAR", "LABELSTR",
+  "STRINGCONSTANT", "ATSTRINGCONSTANT", "IMPLEMENTATION",
+  "ZEROINITIALIZER", "TRUETOK", "FALSETOK", "BEGINTOK", "ENDTOK",
+  "DECLARE", "DEFINE", "GLOBAL", "CONSTANT", "SECTION", "VOLATILE", "TO",
+  "DOTDOTDOT", "NULL_TOK", "UNDEF", "INTERNAL", "LINKONCE", "WEAK",
+  "APPENDING", "DLLIMPORT", "DLLEXPORT", "EXTERN_WEAK", "OPAQUE",
+  "EXTERNAL", "TARGET", "TRIPLE", "ALIGN", "DEPLIBS", "CALL", "TAIL",
+  "ASM_TOK", "MODULE", "SIDEEFFECT", "CC_TOK", "CCC_TOK", "FASTCC_TOK",
+  "COLDCC_TOK", "X86_STDCALLCC_TOK", "X86_FASTCALLCC_TOK", "DATALAYOUT",
+  "RET", "BR", "SWITCH", "INVOKE", "UNWIND", "UNREACHABLE", "ADD", "SUB",
+  "MUL", "UDIV", "SDIV", "FDIV", "UREM", "SREM", "FREM", "AND", "OR",
+  "XOR", "SHL", "LSHR", "ASHR", "ICMP", "FCMP", "EQ", "NE", "SLT", "SGT",
+  "SLE", "SGE", "ULT", "UGT", "ULE", "UGE", "OEQ", "ONE", "OLT", "OGT",
+  "OLE", "OGE", "ORD", "UNO", "UEQ", "UNE", "MALLOC", "ALLOCA", "FREE",
+  "LOAD", "STORE", "GETELEMENTPTR", "TRUNC", "ZEXT", "SEXT", "FPTRUNC",
+  "FPEXT", "BITCAST", "UITOFP", "SITOFP", "FPTOUI", "FPTOSI", "INTTOPTR",
+  "PTRTOINT", "PHI_TOK", "SELECT", "VAARG", "EXTRACTELEMENT",
+  "INSERTELEMENT", "SHUFFLEVECTOR", "NORETURN", "INREG", "SRET", "DEFAULT",
+  "HIDDEN", "'='", "','", "'*'", "'\\\\'", "'('", "')'", "'['", "'x'",
+  "']'", "'<'", "'>'", "'{'", "'}'", "'c'", "$accept", "ArithmeticOps",
+  "LogicalOps", "CastOps", "IPredicates", "FPredicates", "IntType",
+  "FPType", "LocalName", "OptLocalName", "OptLocalAssign", "GlobalName",
+  "OptGlobalAssign", "GVInternalLinkage", "GVExternalLinkage",
+  "GVVisibilityStyle", "FunctionDeclareLinkage", "FunctionDefineLinkage",
+  "OptCallingConv", "ParamAttr", "OptParamAttrs", "FuncAttr",
+  "OptFuncAttrs", "OptAlign", "OptCAlign", "SectionString", "OptSection",
+  "GlobalVarAttributes", "GlobalVarAttribute", "PrimType", "Types",
+  "ArgType", "ResultTypes", "ArgTypeList", "ArgTypeListI", "TypeListI",
+  "ConstVal", "ConstExpr", "ConstVector", "GlobalType", "Module",
+  "DefinitionList", "Definition", "@1", "@2", "@3", "@4", "@5", "AsmBlock",
+  "TargetDefinition", "LibrariesDefinition", "LibList", "ArgListH",
+  "ArgList", "FunctionHeaderH", "BEGIN", "FunctionHeader", "END",
+  "Function", "FunctionProto", "OptSideEffect", "ConstValueRef",
+  "SymbolicValueRef", "ValueRef", "ResolvedVal", "BasicBlockList",
+  "BasicBlock", "InstructionList", "BBTerminatorInst", "JumpTable", "Inst",
+  "PHIList", "ValueRefList", "IndexList", "OptTailCall", "InstVal",
+  "OptVolatile", "MemoryInst", 0
 };
+#endif
 
-static const short yyr2[] = {     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,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     1,     1,     1,     1,     1,     0,
-     2,     0,     1,     1,     2,     0,     1,     1,     1,     1,
-     1,     1,     1,     1,     0,     1,     0,     1,     1,     0,
-     1,     1,     1,     1,     0,     1,     1,     1,     1,     1,
-     2,     1,     1,     1,     1,     0,     2,     1,     1,     0,
-     2,     0,     2,     0,     3,     2,     0,     1,     0,     3,
-     1,     2,     1,     1,     1,     1,     1,     1,     2,     1,
-     2,     5,     5,     5,     5,     3,     2,     5,     4,     2,
-     1,     1,     1,     3,     1,     3,     1,     0,     1,     3,
-     4,     3,     3,     4,     4,     3,     6,     5,     2,     2,
-     2,     2,     2,     2,     2,     2,     2,     2,     6,     5,
-     8,     6,     6,     7,     7,     6,     6,     8,     8,     3,
-     1,     1,     1,     1,     0,     1,     2,     0,     3,     0,
-     3,     3,     1,     3,     3,     0,     6,     0,     7,     0,
-     7,     2,     3,     1,     3,     3,     3,     3,     1,     0,
-     5,     3,     1,     3,     1,     0,     9,     1,     1,     4,
-     1,     1,     2,     3,     0,     1,     1,     1,     1,     1,
-     1,     1,     1,     1,     3,     1,     5,     1,     1,     1,
-     1,     1,     1,     2,     2,     2,     3,     2,     0,     1,
-     2,     2,     3,     9,     9,     8,    14,     1,     1,     6,
-     5,     2,     6,     7,     3,     5,     0,     0,     3,     2,
-     1,     5,     5,     6,     6,     4,     4,     6,     4,     4,
-     6,     6,     2,     8,     1,     1,     0,     3,     6,     3,
-     6,     2,     4,     6,     4
+# ifdef YYPRINT
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
+   token YYLEX-NUM.  */
+static const unsigned short int yytoknum[] =
+{
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,
+     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,
+     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
+     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
+     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,
+     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
+     385,   386,    61,    44,    42,    92,    40,    41,    91,   120,
+      93,    60,    62,   123,   125,    99
 };
+# endif
 
-static const short yydefact[] = {    66,
-    57,    63,    58,    64,   183,   180,   178,     0,     0,     0,
-     0,     0,     0,    75,    66,   176,    77,    80,     0,     0,
-   192,     0,     0,    61,     0,    65,    67,    69,    68,    70,
-    72,    71,    73,    74,    76,    75,    75,     0,   177,    78,
-    79,    75,   181,    81,    82,    83,    84,    75,   239,   179,
-   239,     0,     0,   200,   193,   194,   182,   228,   229,   185,
-   113,   114,   115,   116,   117,     0,     0,     0,     0,   230,
-   231,   118,   184,   120,     0,     0,   172,   173,     0,    85,
-    85,   240,   236,    62,   211,   212,   213,   235,   195,   196,
-   199,     0,   138,   121,     0,     0,     0,     0,   127,   139,
-     0,   119,   138,     0,     0,   113,   114,   115,     0,     0,
-     0,   186,     0,    86,    87,    88,    89,    90,     0,   214,
-     0,   277,   238,     0,   197,   137,    96,   133,   135,     0,
-     0,     0,     0,     0,     0,   126,     0,   188,   190,   156,
-   157,   154,   155,   158,   153,   149,   150,     1,     2,     3,
-     4,     5,     6,     7,     8,     9,    10,    11,    12,     0,
-     0,     0,    13,    14,    15,    16,    17,    18,    19,    20,
-    21,    22,    23,    24,     0,    25,    26,    27,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   152,
-   151,   109,    91,   132,   131,     0,   208,   209,   210,   276,
-   261,     0,     0,     0,     0,    85,   248,   249,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   237,    85,   252,     0,   275,   198,
-   130,     0,   100,     0,     0,   129,     0,   140,   100,   109,
-   109,    28,    29,    30,    31,    32,    33,    34,    35,    36,
-    37,     0,    52,    53,    48,    49,    50,    51,    38,    39,
-    40,    41,    42,    43,    44,    45,    46,    47,     0,     0,
-     0,     0,     0,     0,   142,   171,     0,     0,     0,   146,
-     0,   143,     0,     0,     0,     0,     0,   187,     0,   260,
-   242,     0,   241,     0,     0,    54,     0,     0,     0,     0,
-   104,   104,   282,     0,     0,   273,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,    92,    93,
-    94,    95,    97,   136,   134,   123,   124,   125,   128,   122,
-   189,   191,     0,     0,   258,     0,     0,     0,     0,     0,
-   141,   127,   139,     0,   144,   145,     0,     0,     0,     0,
-     0,     0,   111,   109,   206,   217,   218,   219,   224,   220,
-   221,   222,   223,   215,     0,   226,   233,   232,   234,     0,
-   243,     0,     0,     0,     0,     0,   278,     0,   280,   258,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    98,    99,   101,     0,     0,     0,
-     0,     0,     0,     0,   170,   148,     0,     0,     0,     0,
-     0,   106,   112,   110,   205,    96,   203,     0,   216,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,   285,
-     0,     0,     0,   269,   270,     0,     0,     0,     0,   267,
-   266,     0,   283,     0,     0,     0,     0,   160,     0,     0,
-     0,     0,   147,     0,     0,     0,     0,    60,     0,   100,
-     0,   225,     0,     0,   257,     0,     0,   104,   105,   104,
-     0,     0,     0,     0,     0,   262,   263,   257,     0,     0,
-     0,   259,     0,   167,     0,     0,   162,   163,   159,   166,
-    59,   202,   204,    96,   107,     0,     0,     0,     0,     0,
-   264,   265,     0,   279,   281,     0,     0,   268,   271,   272,
-     0,   284,   164,   165,     0,     0,     0,    60,   108,   102,
-   227,     0,     0,    96,     0,   100,   253,     0,   100,   161,
-   168,   169,   201,     0,   207,     0,   246,     0,     0,   255,
-     0,     0,   254,   274,   103,   244,     0,   245,     0,    96,
-     0,     0,     0,   256,     0,     0,     0,     0,   251,     0,
-     0,   250,     0,   247,     0,     0,     0
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
+static const unsigned char yyr1[] =
+{
+       0,   146,   147,   147,   147,   147,   147,   147,   147,   147,
+     147,   148,   148,   148,   148,   148,   148,   149,   149,   149,
+     149,   149,   149,   149,   149,   149,   149,   149,   149,   150,
+     150,   150,   150,   150,   150,   150,   150,   150,   150,   151,
+     151,   151,   151,   151,   151,   151,   151,   151,   151,   151,
+     151,   151,   151,   151,   151,   152,   153,   153,   154,   154,
+     155,   155,   156,   156,   157,   157,   158,   158,   159,   159,
+     159,   159,   159,   160,   160,   160,   161,   161,   162,   162,
+     162,   163,   163,   163,   163,   163,   164,   164,   164,   164,
+     164,   164,   164,   165,   165,   165,   165,   166,   166,   167,
+     167,   168,   168,   169,   169,   170,   170,   171,   172,   172,
+     173,   173,   174,   174,   175,   175,   175,   175,   176,   176,
+     176,   176,   176,   176,   176,   176,   176,   176,   176,   176,
+     176,   177,   178,   178,   179,   179,   180,   180,   180,   180,
+     181,   181,   182,   182,   182,   182,   182,   182,   182,   182,
+     182,   182,   182,   182,   182,   182,   182,   182,   182,   182,
+     183,   183,   183,   183,   183,   183,   183,   183,   183,   183,
+     184,   184,   185,   185,   186,   186,   187,   187,   189,   188,
+     190,   188,   188,   188,   188,   188,   191,   188,   192,   188,
+     193,   188,   188,   188,   194,   195,   195,   196,   197,   197,
+     197,   198,   198,   199,   199,   199,   199,   200,   201,   201,
+     202,   203,   203,   204,   205,   206,   206,   207,   207,   207,
+     207,   207,   207,   207,   207,   207,   207,   207,   208,   208,
+     208,   208,   209,   209,   210,   211,   211,   212,   213,   213,
+     213,   214,   214,   214,   214,   214,   214,   214,   214,   214,
+     215,   215,   216,   217,   217,   218,   218,   218,   219,   219,
+     220,   220,   221,   221,   221,   221,   221,   221,   221,   221,
+     221,   221,   221,   221,   221,   222,   222,   223,   223,   223,
+     223,   223,   223,   223,   223
 };
 
-static const short yydefgoto[] = {   186,
-   187,   188,   189,   252,   269,   109,   110,    70,   492,    12,
-    71,    14,    36,    37,    38,    42,    48,   119,   323,   231,
-   397,   326,   535,   377,   353,   520,   288,   354,    72,   111,
-   128,   196,   129,   130,   101,   276,   366,   277,    79,   565,
-    15,    16,    18,    17,   192,   240,   241,    57,    21,    55,
-    92,   417,   418,   120,   199,    49,    87,    50,    43,   420,
-   367,    74,   369,   293,    51,    83,    84,   225,   539,   123,
-   306,   500,   400,   226,   227,   228,   229
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
+static const unsigned char yyr2[] =
+{
+       0,     2,     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,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     0,     2,     0,     1,     1,     2,     0,     1,     1,
+       1,     1,     1,     1,     1,     1,     0,     1,     0,     1,
+       1,     0,     1,     1,     1,     1,     0,     1,     1,     1,
+       1,     1,     2,     1,     1,     1,     1,     0,     2,     1,
+       1,     0,     2,     0,     2,     0,     3,     2,     0,     1,
+       0,     3,     1,     2,     1,     1,     1,     1,     1,     1,
+       2,     1,     2,     5,     5,     5,     5,     3,     2,     5,
+       4,     2,     1,     1,     1,     3,     1,     3,     1,     0,
+       1,     3,     4,     3,     3,     4,     4,     3,     6,     5,
+       2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
+       6,     5,     8,     6,     6,     7,     7,     6,     8,     8,
+       3,     1,     1,     1,     1,     0,     1,     2,     0,     3,
+       0,     3,     3,     1,     3,     3,     0,     6,     0,     7,
+       0,     7,     2,     3,     1,     3,     3,     3,     3,     1,
+       0,     5,     3,     1,     3,     1,     0,     9,     1,     1,
+       4,     1,     1,     2,     3,     0,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     3,     1,     5,     1,     1,
+       1,     1,     1,     1,     2,     2,     2,     3,     2,     0,
+       1,     2,     2,     3,     9,     9,     8,    14,     1,     1,
+       6,     5,     2,     6,     7,     3,     5,     0,     0,     3,
+       2,     1,     5,     5,     6,     6,     4,     6,     4,     4,
+       6,     6,     2,     8,     1,     1,     0,     3,     6,     3,
+       6,     2,     4,     6,     4
 };
 
-static const short yypact[] = {   356,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,     4,  -115,    -2,
-   -52,    93,    -4,    51,   593,-32768,   195,   140,    41,    99,
--32768,    87,   141,-32768,   125,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,   128,   128,    47,-32768,-32768,
--32768,   128,-32768,-32768,-32768,-32768,-32768,   128,   251,-32768,
-    17,   262,   264,   269,-32768,-32768,-32768,-32768,-32768,   151,
--32768,-32768,-32768,-32768,-32768,   287,   292,     3,    13,-32768,
--32768,-32768,   113,-32768,    47,    47,-32768,-32768,   840,   290,
-   290,-32768,-32768,    88,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,   -90,  1094,-32768,   158,   164,   107,   151,-32768,   113,
-   -91,-32768,  1094,   840,  1054,    79,   295,   297,   208,   298,
-   616,-32768,   302,-32768,-32768,-32768,-32768,-32768,  1197,-32768,
-   -14,  1319,-32768,   291,-32768,-32768,   113,-32768,   179,   176,
-  1054,  1054,   175,   -82,  1054,-32768,   200,-32768,   113,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   241,
-   474,   202,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,   205,-32768,-32768,-32768,   213,   214,
-   215,   802,  1213,   460,   335,   218,   221,   232,   236,-32768,
--32768,   245,-32768,   151,   113,   163,-32768,-32768,-32768,-32768,
--32768,   331,  1235,   210,   371,   290,-32768,-32768,   241,   474,
-  1054,  1054,  1054,  1054,  1054,  1054,  1054,  1054,  1054,  1054,
-  1054,  1054,  1054,  1054,-32768,   290,-32768,   181,-32768,-32768,
-   -61,  1133,-32768,    26,   -64,-32768,   242,   113,-32768,   245,
-   245,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,   247,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,   249,   840,
-   840,   840,   840,   840,-32768,-32768,   -30,   517,   -10,-32768,
-   -40,-32768,   840,   840,   840,   840,    10,-32768,   252,-32768,
-   151,   759,-32768,   884,   884,-32768,   884,  1197,  1054,  1054,
-    19,   144,-32768,   759,   119,   254,   258,   261,   263,   265,
-   266,   759,   759,   364,   268,  1197,  1054,  1054,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,   -31,-32768,-32768,-32768,   -31,
--32768,-32768,   840,   840,-32768,   271,   273,   275,   276,   840,
--32768,   260,   616,    -6,-32768,-32768,   277,   278,   387,   286,
-   404,   420,-32768,   245,  1149,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   374,   840,-32768,-32768,-32768,-32768,   294,
--32768,   296,   884,   759,   759,    20,-32768,    25,-32768,-32768,
-   884,   299,  1054,  1054,  1054,  1054,  1054,   301,   303,  1054,
-  1054,   884,   759,   305,-32768,-32768,-32768,   306,   307,    32,
-   840,   840,   840,   840,-32768,-32768,   300,   840,   840,  1054,
-   840,-32768,-32768,-32768,-32768,   113,   310,   308,-32768,   411,
-     8,   432,   434,   311,   315,   319,   884,   428,   884,   320,
-   322,   884,   323,   113,-32768,   324,   326,   884,   884,   113,
--32768,   325,-32768,  1054,   840,   840,  1054,-32768,   327,   336,
-   330,   343,-32768,   342,   346,   136,   347,   154,  1168,-32768,
-   352,-32768,   884,   884,  1054,   884,   884,   354,-32768,   354,
-   884,   355,  1054,  1054,  1054,-32768,-32768,  1054,   759,   353,
-   357,-32768,   840,-32768,   840,   840,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   113,    56,   447,   365,   359,   759,    73,
--32768,-32768,   454,-32768,-32768,   340,   884,-32768,-32768,-32768,
-   100,-32768,-32768,-32768,   366,   367,   368,   154,-32768,   461,
--32768,   494,     5,-32768,  1054,-32768,-32768,   369,-32768,-32768,
--32768,-32768,-32768,   504,-32768,   884,-32768,  1008,     7,   -61,
-   759,   182,-32768,   -31,-32768,-32768,   379,-32768,  1008,-32768,
-   501,   502,   382,   -61,   884,   884,   505,   452,-32768,   884,
-   507,-32768,   884,-32768,   520,   521,-32768
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
+   means the default is an error.  */
+static const unsigned short int yydefact[] =
+{
+      67,    58,    64,    59,    65,   183,   180,   178,     0,     0,
+       0,     0,     0,     0,    76,     0,    67,   176,    78,    81,
+       0,     0,   192,     0,     0,    62,     0,    66,    68,    70,
+      69,    71,    73,    72,    74,    75,    77,    76,    76,     0,
+       1,   177,    79,    80,    76,   181,    82,    83,    84,    85,
+      76,   239,   179,   239,     0,     0,   200,   193,   194,   182,
+     228,   229,   185,   114,   115,   116,   117,   118,     0,     0,
+       0,     0,   230,   231,   119,   184,   121,     0,     0,   172,
+     173,     0,    86,    86,   240,   236,    63,   211,   212,   213,
+     235,   195,   196,   199,     0,   139,   122,     0,     0,     0,
+       0,   128,   140,     0,   120,   139,     0,     0,   114,   115,
+     116,     0,     0,     0,   186,     0,    87,    88,    89,    90,
+      91,     0,   214,     0,   276,   238,     0,   197,   138,    97,
+     134,   136,     0,     0,     0,     0,     0,     0,   127,     0,
+     188,   190,   157,   158,   155,   156,   159,   154,   150,   151,
+       2,     3,     4,     5,     6,     7,     8,     9,    10,    14,
+      15,    16,    11,    12,    13,     0,     0,     0,    17,    18,
+      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   153,   152,   110,    92,   133,   132,     0,   208,   209,
+     210,   275,   261,     0,     0,     0,     0,    86,   248,   249,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   237,    86,   252,     0,   274,
+     198,   131,     0,   101,     0,     0,   130,     0,   141,   101,
+     110,   110,    29,    30,    31,    32,    33,    34,    35,    36,
+      37,    38,     0,    53,    54,    49,    50,    51,    52,    39,
+      40,    41,    42,    43,    44,    45,    46,    47,    48,     0,
+       0,     0,     0,     0,     0,   143,   171,     0,     0,     0,
+     147,     0,   144,     0,     0,     0,     0,   187,     0,   260,
+     242,     0,   241,     0,     0,    55,     0,     0,     0,     0,
+     105,   105,   281,     0,     0,   272,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    93,    94,    95,
+      96,    98,   137,   135,   124,   125,   126,   129,   123,   189,
+     191,     0,     0,   258,     0,     0,     0,     0,     0,   142,
+     128,   140,     0,   145,   146,     0,     0,     0,     0,     0,
+     112,   110,   206,   217,   218,   219,   224,   220,   221,   222,
+     223,   215,     0,   226,   233,   232,   234,     0,   243,     0,
+       0,     0,     0,     0,   277,     0,   279,   258,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    99,   100,   102,     0,     0,     0,     0,     0,     0,
+       0,   170,   149,     0,     0,     0,     0,   107,   113,   111,
+     205,    97,   203,     0,   216,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   284,     0,     0,     0,   268,
+     269,     0,     0,     0,     0,   266,     0,   282,     0,     0,
+       0,     0,   161,     0,     0,     0,     0,   148,     0,     0,
+       0,    61,     0,   101,     0,   225,     0,     0,   257,     0,
+       0,   105,   106,   105,     0,     0,     0,     0,     0,   262,
+     263,   257,     0,     0,     0,   259,     0,   167,     0,     0,
+     163,   164,   160,    60,   202,   204,    97,   108,     0,     0,
+       0,     0,     0,   264,   265,     0,   278,   280,     0,     0,
+     267,   270,   271,     0,   283,   165,   166,     0,     0,     0,
+      61,   109,   103,   227,     0,     0,    97,     0,   101,   253,
+       0,   101,   162,   168,   169,   201,     0,   207,     0,   246,
+       0,     0,   255,     0,     0,   254,   273,   104,   244,     0,
+     245,     0,    97,     0,     0,     0,   256,     0,     0,     0,
+       0,   251,     0,     0,   250,     0,   247
 };
 
-static const short yypgoto[] = {   402,
-   408,   414,   415,   329,   332,  -203,-32768,     0,    15,   455,
-    11,-32768,-32768,-32768,   204,-32768,-32768,  -174,  -286,  -380,
--32768,  -231,-32768,  -296,    45,-32768,  -228,-32768,-32768,   -24,
-   309,  -278,-32768,   440,   449,   -69,  -108,  -179,   168,-32768,
--32768,   529,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,   467,-32768,-32768,-32768,-32768,-32768,-32768,
-  -429,   -74,   118,  -159,-32768,   498,-32768,-32768,-32768,-32768,
--32768,    74,   171,-32768,-32768,-32768,-32768
+/* YYDEFGOTO[NTERM-NUM]. */
+static const short int yydefgoto[] =
+{
+      -1,   188,   189,   190,   252,   269,   111,   112,    72,   484,
+      12,    73,    14,    37,    38,    39,    44,    50,   121,   321,
+     231,   393,   324,   527,   374,   350,   512,   287,   351,    74,
+     113,   130,   197,   131,   132,   103,   276,   363,   277,    81,
+      15,    16,    17,    19,    18,   193,   240,   241,    59,    22,
+      57,    94,   412,   413,   122,   200,    51,    89,    52,    45,
+     415,   364,    76,   366,   292,    53,    85,    86,   225,   531,
+     125,   305,   492,   396,   226,   227,   228,   229
 };
 
-
-#define	YYLAST		1445
-
-
-static const short yytable[] = {    11,
-    73,   297,   190,   279,   281,   379,    96,   330,   197,   112,
-    13,   331,   332,   296,    11,   296,    22,    58,    59,   373,
-    98,    61,    62,    63,    64,    13,     1,     2,   427,     3,
-     4,   298,    82,   429,   138,   458,   191,   392,   351,   396,
-    85,   135,   124,   396,   100,   319,   320,    23,    19,   125,
-   135,   316,   136,   303,    65,   352,   307,   308,   309,   310,
-   311,   237,    20,   314,   315,   428,   321,   322,   127,   102,
-   428,   103,   100,    77,    78,   319,   320,   328,   127,    24,
-   139,   -54,   -54,    11,   351,    27,    28,    29,    30,    31,
-    32,    33,   340,    34,   195,   395,   321,   322,   344,   140,
-   141,     1,   340,   346,     3,    25,   234,   235,   547,   341,
-   238,    58,    59,   518,    98,    61,    62,    63,    64,   553,
-     1,     2,   340,     3,     4,   414,   340,    26,   198,    58,
-    59,   345,    60,    61,    62,    63,    64,   407,     1,     2,
-   340,     3,     4,   540,   537,    97,   548,    66,    65,   462,
-    67,   376,   102,    68,   103,    69,    99,    56,   394,   102,
-    86,   103,   319,   320,   447,   327,    65,     1,   448,   554,
-     3,   504,    52,   505,    44,    45,    46,     2,   292,    47,
-     4,    35,   395,   321,   322,   421,   301,   302,   292,   304,
-   305,   292,   292,   292,   292,   292,   312,   313,   292,   292,
-   335,   336,   337,   338,   339,   525,   289,   127,   396,   526,
-   142,   143,   551,   347,   348,   349,   350,   368,   294,   368,
-   368,   295,   368,   433,    54,   435,   436,   437,   495,   368,
-    53,   441,   525,    40,   190,    41,   529,   368,   368,    75,
-    76,    66,   104,   105,    67,    80,   102,    68,   103,    69,
-   133,    81,   102,   343,   103,   396,   381,   396,    35,    66,
-   319,   320,    67,   398,   399,    68,    82,    69,   191,   102,
-   405,   103,   489,   195,   374,   375,   378,   102,    89,   103,
-    90,   321,   322,   317,   318,    91,    93,   482,   319,   320,
-    94,   195,   393,   292,   542,    95,   131,   544,   368,   368,
-   368,   -55,   132,   -56,   144,   193,   368,   230,   395,   321,
-   322,   232,   233,   508,   509,   510,   236,   368,   368,   538,
-   242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
-   416,   449,   450,   451,   452,   549,   239,   270,   454,   455,
-   271,   457,   113,   114,   115,   116,   117,   118,   272,   273,
-   274,   282,   368,   283,   368,  -175,   284,   368,   292,   434,
-   292,   292,   292,   368,   368,   440,   292,   285,   -62,     1,
-     2,   286,     3,     4,     5,   480,   481,   287,   290,   296,
-     6,     7,   333,   329,   334,   456,   382,   355,   368,   368,
-   383,   368,   368,   384,   390,   385,   368,   386,   387,     8,
-   391,   406,     9,   401,   368,   402,    10,   403,   404,   408,
-   409,   370,   371,   515,   372,   516,   517,   410,   411,   479,
-   412,   380,   292,   413,   368,   419,   422,   461,   423,   388,
-   389,   469,   368,   438,   494,   439,   432,   444,   445,   446,
-   499,   453,   459,   463,   460,   464,   465,   466,   292,   292,
-   292,   467,   447,   499,   471,   473,   474,   491,   475,   483,
-   478,   368,   485,   521,    58,    59,   368,    98,   106,   107,
-   108,    64,   484,     1,     2,   486,     3,     4,   487,   527,
-   368,   368,   488,   490,   496,   368,   503,   507,   368,   513,
-   424,   425,   426,   514,   253,   254,   523,   522,   431,   428,
-   541,    65,   530,   531,   532,   536,   534,   545,   543,   442,
-   443,   552,   555,   556,   557,   561,   560,   491,   563,   566,
-   567,    58,    59,   221,    98,   106,   107,   108,    64,   222,
-     1,     2,   533,     3,     4,   223,   224,   299,   122,   519,
-   325,   300,   137,    39,   468,   134,   470,   121,    88,   472,
-   430,   511,     0,     0,     0,   476,   477,     0,    65,   255,
-   256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
-   266,   267,   268,     0,     0,     0,     0,     0,     0,     0,
-   497,   498,     0,   501,   502,     0,     0,     0,   506,     0,
-     0,     0,  -174,     0,    66,     0,   512,    67,     0,     0,
-    68,     0,    69,   280,     0,   -62,     1,     2,     0,     3,
-     4,     5,     0,     0,     0,     0,   524,     6,     7,     0,
-    58,    59,     0,     0,   528,     0,     0,     0,     0,     1,
-     2,     0,     3,     4,     0,   145,     8,     0,     0,     9,
-     0,     0,     0,    10,     0,     0,     0,     0,   146,   147,
-     0,    66,     0,   546,    67,     0,     0,    68,   550,    69,
-   342,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,   558,   559,     0,     0,     0,   562,     0,     0,
-   564,   148,   149,   150,   151,   152,   153,   154,   155,   156,
-   157,   158,   159,   160,   161,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
-   172,   173,   174,     0,   175,   176,   177,   178,     0,   179,
-   180,   181,     0,     0,     0,     0,     0,     0,     0,   102,
-     0,   103,     0,   182,     0,     0,   183,     0,   184,     0,
-   185,   356,   357,    58,    59,   358,     0,     0,     0,     0,
-     0,     0,     1,     2,     0,     3,     4,     0,   359,   360,
-   361,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,   362,   363,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,    58,    59,   364,    98,
-   106,   107,   108,    64,     0,     1,     2,     0,     3,     4,
-     0,     0,     0,     0,   148,   149,   150,   151,   152,   153,
-   154,   155,   156,   157,   158,   159,   160,   161,     0,     0,
-     0,     0,     0,    65,    58,    59,     0,    98,   106,   107,
-   108,    64,     0,     1,     2,     0,     3,     4,     0,     0,
-     0,     0,     0,   162,   163,   164,   165,   166,   167,   168,
-   169,   170,   171,   172,   173,   174,     0,   175,   176,   177,
-   178,    65,   179,   180,   181,     0,   356,   357,    58,    59,
-   358,     0,   102,     0,   103,     0,     0,     1,     2,   365,
-     3,     4,     0,   359,   360,   361,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   362,   363,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,   364,     0,     0,    66,     0,     0,    67,
-     0,   275,    68,     0,    69,     0,     0,     0,     0,   148,
-   149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
-   159,   160,   161,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,    66,     0,     0,    67,     0,     0,
-    68,     0,    69,     0,     0,     0,     0,     0,   162,   163,
-   164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
-   174,     0,   175,   176,   177,   178,     0,   179,   180,   181,
-   356,   357,     0,     0,   358,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,   365,     0,     0,   359,   360,   361,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-   362,   363,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,   364,    58,    59,
-     0,    98,    61,    62,    63,    64,     0,     1,     2,     0,
-     3,     4,     0,   148,   149,   150,   151,   152,   153,   154,
-   155,   156,   157,   158,   159,   160,   161,     0,     0,     0,
-     0,     0,     0,     0,     0,    65,     0,     0,    58,    59,
-     0,    98,    61,    62,    63,    64,     0,     1,     2,     0,
-     3,     4,   162,   163,   164,   165,   166,   167,   168,   169,
-   170,   171,   172,   173,   174,   126,   175,   176,   177,   178,
-     0,   179,   180,   181,     0,    65,     0,    58,    59,     0,
-    98,    61,    62,    63,    64,     0,     1,     2,   365,     3,
-     4,     0,     0,    58,    59,     0,    98,    61,    62,    63,
-    64,     0,     1,     2,   324,     3,     4,     0,     0,     0,
-     0,     0,    58,    59,    65,    98,    61,    62,    63,    64,
-   415,     1,     2,     0,     3,     4,     0,     0,    66,     0,
-    65,    67,     0,     0,    68,     0,    69,     0,     0,   493,
-     0,    58,    59,     0,   194,    61,    62,    63,    64,    65,
-     1,     2,     0,     3,     4,     0,     0,    58,    59,     0,
-    98,   106,   107,   108,    64,     0,     1,     2,    66,     3,
-     4,    67,     0,     0,    68,     0,    69,     0,    65,    58,
-    59,     0,   291,    61,    62,    63,    64,     0,     1,     2,
-     0,     3,     4,     0,    65,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,    66,     0,     0,
-    67,     0,     0,    68,     0,    69,    65,     0,     0,     0,
-     0,     0,     0,    66,     0,     0,    67,     0,     0,    68,
-     0,    69,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,    66,     0,     0,    67,     0,     0,    68,     0,
-    69,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,    66,     0,     0,    67,     0,     0,    68,     0,    69,
-     0,     0,     0,     0,     0,     0,     0,    66,   200,     0,
-    67,     0,     0,    68,     0,   278,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,   201,   202,     0,    66,
-     0,     0,    67,     0,     0,    68,     0,    69,   203,   204,
-   205,   206,   207,   208,   148,   149,   150,   151,   152,   153,
-   154,   155,   156,   157,   158,   159,   209,   210,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-     0,     0,     0,     0,     0,     0,     0,     0,   211,   212,
-   213,     0,     0,   214,   163,   164,   165,   166,   167,   168,
-   169,   170,   171,   172,   173,   174,   215,   216,   176,   177,
-   178,   217,   218,   219,   220
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
+   STATE-NUM.  */
+#define YYPACT_NINF -399
+static const short int yypact[] =
+{
+     406,  -399,  -399,  -399,  -399,  -399,  -399,  -399,   -26,  -114,
+     -16,   -53,    92,   -11,    54,   136,   526,  -399,   247,   173,
+      43,    49,  -399,    62,   194,  -399,   814,  -399,  -399,  -399,
+    -399,  -399,  -399,  -399,  -399,  -399,  -399,   134,   134,    99,
+    -399,  -399,  -399,  -399,   134,  -399,  -399,  -399,  -399,  -399,
+     134,   212,  -399,    -1,   219,   225,   253,  -399,  -399,  -399,
+    -399,  -399,   135,  -399,  -399,  -399,  -399,  -399,   271,   275,
+       3,    33,  -399,  -399,  -399,   160,  -399,    99,    99,  -399,
+    -399,  1029,   287,   287,  -399,  -399,   220,  -399,  -399,  -399,
+    -399,  -399,  -399,  -399,    20,  1071,  -399,   141,   148,   105,
+     135,  -399,   160,   -75,  -399,  1071,  1029,  1174,    32,   286,
+     293,   151,   294,   590,  -399,   298,  -399,  -399,  -399,  -399,
+    -399,  1190,  -399,   -13,  1313,  -399,   289,  -399,  -399,   160,
+    -399,   170,   167,  1174,  1174,   165,   -68,  1174,  -399,   174,
+    -399,   160,  -399,  -399,  -399,  -399,  -399,  -399,  -399,  -399,
+    -399,  -399,  -399,  -399,  -399,  -399,  -399,  -399,  -399,  -399,
+    -399,  -399,  -399,  -399,  -399,   495,   591,   176,  -399,  -399,
+    -399,  -399,  -399,  -399,  -399,  -399,  -399,  -399,  -399,  -399,
+     177,   178,   182,   183,   776,  1212,   123,   305,   187,   188,
+     189,  -399,  -399,   193,  -399,   135,   160,   266,  -399,  -399,
+    -399,  -399,  -399,   284,  1229,   283,   325,   287,  -399,  -399,
+     495,   591,  1174,  1174,  1174,  1174,  1174,  1174,  1174,  1174,
+    1174,  1174,  1174,  1174,  1174,  -399,   287,  -399,   144,  -399,
+    -399,    -4,  1110,  -399,   -63,  -110,  -399,   204,   160,  -399,
+     193,   193,  -399,  -399,  -399,  -399,  -399,  -399,  -399,  -399,
+    -399,  -399,   211,  -399,  -399,  -399,  -399,  -399,  -399,  -399,
+    -399,  -399,  -399,  -399,  -399,  -399,  -399,  -399,  -399,   214,
+    1029,  1029,  1029,  1029,  1029,  -399,  -399,    79,   494,  -111,
+    -399,   -66,  -399,  1029,  1029,  1029,    39,  -399,   216,  -399,
+     135,   733,  -399,   858,   858,  -399,   858,  1190,  1174,  1174,
+      50,   111,  -399,   733,    97,   215,   230,   231,   232,   233,
+     234,   733,   733,   322,  1190,  1174,  1174,  -399,  -399,  -399,
+    -399,  -399,  -399,  -399,   -27,  -399,  -399,  -399,   -27,  -399,
+    -399,  1029,  1029,  -399,   235,   236,   239,   240,  1029,  -399,
+     237,   590,    26,  -399,  -399,   241,   242,   345,   360,   374,
+    -399,   193,  1126,  -399,  -399,  -399,  -399,  -399,  -399,  -399,
+    -399,   328,  1029,  -399,  -399,  -399,  -399,   249,  -399,   252,
+     858,   733,   733,    11,  -399,    18,  -399,  -399,   858,   250,
+    1174,  1174,  1174,  1174,  1174,   256,   257,  1174,   858,   733,
+     259,  -399,  -399,  -399,   262,   264,   -34,  1029,  1029,  1029,
+    1029,  -399,  -399,   258,  1029,  1029,  1174,  -399,  -399,  -399,
+    -399,   160,   265,   267,  -399,   384,   -61,   390,   393,   272,
+     281,   282,   858,   413,   858,   295,   296,   858,   297,   160,
+    -399,   301,   302,   858,   858,   160,   300,  -399,  1174,  1029,
+    1029,  1174,  -399,   304,   285,   306,   307,  -399,   308,   310,
+     118,    38,  1145,  -399,   311,  -399,   858,   858,  1174,   858,
+     858,   315,  -399,   315,   858,   316,  1174,  1174,  1174,  -399,
+    -399,  1174,   733,   317,   319,  -399,  1029,  -399,  1029,  1029,
+    -399,  -399,  -399,  -399,  -399,  -399,   160,   149,   421,   326,
+     314,   733,    19,  -399,  -399,   412,  -399,  -399,   321,   858,
+    -399,  -399,  -399,    36,  -399,  -399,  -399,   327,   329,   330,
+      38,  -399,   416,  -399,   451,     2,  -399,  1174,  -399,  -399,
+     333,  -399,  -399,  -399,  -399,  -399,   461,  -399,   858,  -399,
+     982,     5,    -4,   733,   210,  -399,   -27,  -399,  -399,   335,
+    -399,   982,  -399,   457,   464,   344,    -4,   858,   858,   468,
+     417,  -399,   858,   471,  -399,   858,  -399
 };
 
-static const short yycheck[] = {     0,
-    25,   205,   111,   183,   184,   302,     4,   239,    23,    79,
-     0,   240,   241,     9,    15,     9,   132,     5,     6,   298,
-     8,     9,    10,    11,    12,    15,    14,    15,     9,    17,
-    18,   206,    16,     9,   104,   416,   111,   316,    29,   326,
-    24,   133,   133,   330,    69,   107,   108,    50,    45,   140,
-   133,   226,   144,   213,    42,    46,   216,   217,   218,   219,
-   220,   144,    59,   223,   224,    46,   128,   129,    93,   134,
-    46,   136,    97,    27,    28,   107,   108,   142,   103,   132,
-   105,     3,     4,    84,    29,    35,    36,    37,    38,    39,
-    40,    41,   133,    43,   119,   127,   128,   129,   278,    21,
-    22,    14,   133,   144,    17,    13,   131,   132,   538,   140,
-   135,     5,     6,   494,     8,     9,    10,    11,    12,   549,
-    14,    15,   133,    17,    18,   354,   133,   132,   143,     5,
-     6,   142,     8,     9,    10,    11,    12,   144,    14,    15,
-   133,    17,    18,   524,   140,   143,   140,   135,    42,   142,
-   138,   133,   134,   141,   136,   143,   144,    17,   318,   134,
-   144,   136,   107,   108,   133,   140,    42,    14,   137,   550,
-    17,   468,   132,   470,    35,    36,    37,    15,   203,    40,
-    18,   131,   127,   128,   129,   365,   211,   212,   213,   214,
-   215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
-   270,   271,   272,   273,   274,   133,   196,   232,   495,   137,
-     3,     4,    31,   283,   284,   285,   286,   292,     9,   294,
-   295,    12,   297,   383,   138,   385,   386,   387,   460,   304,
-   132,   391,   133,    39,   343,    41,   137,   312,   313,    36,
-    37,   135,    75,    76,   138,    42,   134,   141,   136,   143,
-   144,    48,   134,   278,   136,   542,   138,   544,   131,   135,
-   107,   108,   138,   333,   334,   141,    16,   143,   343,   134,
-   340,   136,   137,   298,   299,   300,   133,   134,    17,   136,
-    17,   128,   129,   103,   104,    17,   136,   447,   107,   108,
-     4,   316,   317,   318,   526,     4,   139,   529,   373,   374,
-   375,     7,   139,     7,     7,     4,   381,    17,   127,   128,
-   129,   133,   137,   473,   474,   475,   142,   392,   393,   523,
-    80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
-   355,   401,   402,   403,   404,   539,   137,   136,   408,   409,
-   136,   411,    53,    54,    55,    56,    57,    58,   136,   136,
-   136,    17,   427,   136,   429,     0,   136,   432,   383,   384,
-   385,   386,   387,   438,   439,   390,   391,   136,    13,    14,
-    15,   136,    17,    18,    19,   445,   446,   133,    48,     9,
-    25,    26,   136,   142,   136,   410,   133,   136,   463,   464,
-   133,   466,   467,   133,    31,   133,   471,   133,   133,    44,
-   133,   142,    47,   133,   479,   133,    51,   133,   133,   133,
-   133,   294,   295,   483,   297,   485,   486,    31,   133,   444,
-    17,   304,   447,     4,   499,    52,   133,    17,   133,   312,
-   313,     4,   507,   133,   459,   133,   138,   133,   133,   133,
-   465,   142,   133,    12,   137,    12,   136,   133,   473,   474,
-   475,   133,   133,   478,   133,   133,   133,   458,   133,   133,
-   136,   536,   133,    17,     5,     6,   541,     8,     9,    10,
-    11,    12,   137,    14,    15,   133,    17,    18,   137,   140,
-   555,   556,   137,   137,   133,   560,   133,   133,   563,   137,
-   373,   374,   375,   137,    21,    22,   138,   133,   381,    46,
-   525,    42,   137,   137,   137,    12,    46,     4,   140,   392,
-   393,   133,    12,    12,   133,    64,    12,   518,    12,     0,
-     0,     5,     6,   122,     8,     9,    10,    11,    12,   122,
-    14,    15,   518,    17,    18,   122,   122,   209,    84,   495,
-   232,   210,   103,    15,   427,    97,   429,    81,    51,   432,
-   380,   478,    -1,    -1,    -1,   438,   439,    -1,    42,    86,
-    87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
-    97,    98,    99,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-   463,   464,    -1,   466,   467,    -1,    -1,    -1,   471,    -1,
-    -1,    -1,     0,    -1,   135,    -1,   479,   138,    -1,    -1,
-   141,    -1,   143,   144,    -1,    13,    14,    15,    -1,    17,
-    18,    19,    -1,    -1,    -1,    -1,   499,    25,    26,    -1,
-     5,     6,    -1,    -1,   507,    -1,    -1,    -1,    -1,    14,
-    15,    -1,    17,    18,    -1,    20,    44,    -1,    -1,    47,
-    -1,    -1,    -1,    51,    -1,    -1,    -1,    -1,    33,    34,
-    -1,   135,    -1,   536,   138,    -1,    -1,   141,   541,   143,
-   144,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   555,   556,    -1,    -1,    -1,   560,    -1,    -1,
-   563,    66,    67,    68,    69,    70,    71,    72,    73,    74,
-    75,    76,    77,    78,    79,    -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,
-   105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
-   115,   116,   117,    -1,   119,   120,   121,   122,    -1,   124,
-   125,   126,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,
-    -1,   136,    -1,   138,    -1,    -1,   141,    -1,   143,    -1,
-   145,     3,     4,     5,     6,     7,    -1,    -1,    -1,    -1,
-    -1,    -1,    14,    15,    -1,    17,    18,    -1,    20,    21,
-    22,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,     5,     6,    50,     8,
-     9,    10,    11,    12,    -1,    14,    15,    -1,    17,    18,
-    -1,    -1,    -1,    -1,    66,    67,    68,    69,    70,    71,
-    72,    73,    74,    75,    76,    77,    78,    79,    -1,    -1,
-    -1,    -1,    -1,    42,     5,     6,    -1,     8,     9,    10,
-    11,    12,    -1,    14,    15,    -1,    17,    18,    -1,    -1,
-    -1,    -1,    -1,   105,   106,   107,   108,   109,   110,   111,
-   112,   113,   114,   115,   116,   117,    -1,   119,   120,   121,
-   122,    42,   124,   125,   126,    -1,     3,     4,     5,     6,
-     7,    -1,   134,    -1,   136,    -1,    -1,    14,    15,   141,
-    17,    18,    -1,    20,    21,    22,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    50,    -1,    -1,   135,    -1,    -1,   138,
-    -1,   140,   141,    -1,   143,    -1,    -1,    -1,    -1,    66,
-    67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-    77,    78,    79,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   135,    -1,    -1,   138,    -1,    -1,
-   141,    -1,   143,    -1,    -1,    -1,    -1,    -1,   105,   106,
-   107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
-   117,    -1,   119,   120,   121,   122,    -1,   124,   125,   126,
-     3,     4,    -1,    -1,     7,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,   141,    -1,    -1,    20,    21,    22,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,     5,     6,
-    -1,     8,     9,    10,    11,    12,    -1,    14,    15,    -1,
-    17,    18,    -1,    66,    67,    68,    69,    70,    71,    72,
-    73,    74,    75,    76,    77,    78,    79,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    42,    -1,    -1,     5,     6,
-    -1,     8,     9,    10,    11,    12,    -1,    14,    15,    -1,
-    17,    18,   105,   106,   107,   108,   109,   110,   111,   112,
-   113,   114,   115,   116,   117,    32,   119,   120,   121,   122,
-    -1,   124,   125,   126,    -1,    42,    -1,     5,     6,    -1,
-     8,     9,    10,    11,    12,    -1,    14,    15,   141,    17,
-    18,    -1,    -1,     5,     6,    -1,     8,     9,    10,    11,
-    12,    -1,    14,    15,    32,    17,    18,    -1,    -1,    -1,
-    -1,    -1,     5,     6,    42,     8,     9,    10,    11,    12,
-    32,    14,    15,    -1,    17,    18,    -1,    -1,   135,    -1,
-    42,   138,    -1,    -1,   141,    -1,   143,    -1,    -1,    32,
-    -1,     5,     6,    -1,     8,     9,    10,    11,    12,    42,
-    14,    15,    -1,    17,    18,    -1,    -1,     5,     6,    -1,
-     8,     9,    10,    11,    12,    -1,    14,    15,   135,    17,
-    18,   138,    -1,    -1,   141,    -1,   143,    -1,    42,     5,
-     6,    -1,     8,     9,    10,    11,    12,    -1,    14,    15,
-    -1,    17,    18,    -1,    42,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    -1,    -1,
-   138,    -1,    -1,   141,    -1,   143,    42,    -1,    -1,    -1,
-    -1,    -1,    -1,   135,    -1,    -1,   138,    -1,    -1,   141,
-    -1,   143,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,   135,    -1,    -1,   138,    -1,    -1,   141,    -1,
-   143,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,   135,    -1,    -1,   138,    -1,    -1,   141,    -1,   143,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,    30,    -1,
-   138,    -1,    -1,   141,    -1,   143,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    48,    49,    -1,   135,
-    -1,    -1,   138,    -1,    -1,   141,    -1,   143,    60,    61,
-    62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
-    72,    73,    74,    75,    76,    77,    78,    79,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
-    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   100,   101,
-   102,    -1,    -1,   105,   106,   107,   108,   109,   110,   111,
-   112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
-   122,   123,   124,   125,   126
+/* YYPGOTO[NTERM-NUM].  */
+static const short int yypgoto[] =
+{
+    -399,   361,   362,   363,   274,   279,  -198,  -399,     0,   -19,
+     407,     9,  -399,  -399,  -399,   113,  -399,  -399,  -177,  -307,
+    -398,  -399,  -236,  -399,  -299,     7,  -399,  -212,  -399,  -399,
+     -25,   263,  -210,  -399,   391,   398,   -69,  -109,  -180,   179,
+    -399,  -399,   482,  -399,  -399,  -399,  -399,  -399,  -399,  -399,
+    -399,  -399,  -399,  -399,   418,  -399,  -399,  -399,  -399,  -399,
+    -399,  -369,   -73,   100,  -158,  -399,   454,  -399,  -399,  -399,
+    -399,  -399,    42,   137,  -399,  -399,  -399,  -399
 };
-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */
-#line 3 "/usr/share/bison.simple"
-/* This file comes from bison-1.28.  */
-
-/* Skeleton output parser for bison,
-   Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
-   it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.  */
-
-/* As a special exception, when this file is copied by Bison into a
-   Bison output file, you may use that output file without restriction.
-   This special exception was added by the Free Software Foundation
-   in version 1.24 of Bison.  */
 
-/* This is the parser code that is written into each bison parser
-  when the %semantic_parser declaration is not specified in the grammar.
-  It was written by Richard Stallman by simplifying the hairy parser
-  used when %semantic_parser is specified.  */
-
-#ifndef YYSTACK_USE_ALLOCA
-#ifdef alloca
-#define YYSTACK_USE_ALLOCA
-#else /* alloca not defined */
-#ifdef __GNUC__
-#define YYSTACK_USE_ALLOCA
-#define alloca __builtin_alloca
-#else /* not GNU C.  */
-#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
-#define YYSTACK_USE_ALLOCA
-#include <alloca.h>
-#else /* not sparc */
-/* We think this test detects Watcom and Microsoft C.  */
-/* This used to test MSDOS, but that is a bad idea
-   since that symbol is in the user namespace.  */
-#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
-#if 0 /* No need for malloc.h, which pollutes the namespace;
-	 instead, just don't use alloca.  */
-#include <malloc.h>
-#endif
-#else /* not MSDOS, or __TURBOC__ */
-#if defined(_AIX)
-/* I don't know what this was needed for, but it pollutes the namespace.
-   So I turned it off.   rms, 2 May 1997.  */
-/* #include <malloc.h>  */
- #pragma alloca
-#define YYSTACK_USE_ALLOCA
-#else /* not MSDOS, or __TURBOC__, or _AIX */
-#if 0
-#ifdef __hpux /* haible at ilog.fr says this works for HPUX 9.05 and up,
-		 and on HPUX 10.  Eventually we can turn this on.  */
-#define YYSTACK_USE_ALLOCA
-#define alloca __builtin_alloca
-#endif /* __hpux */
-#endif
-#endif /* not _AIX */
-#endif /* not MSDOS, or __TURBOC__ */
-#endif /* not sparc */
-#endif /* not GNU C */
-#endif /* alloca not defined */
-#endif /* YYSTACK_USE_ALLOCA not defined */
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
+   positive, shift that token.  If negative, reduce the rule which
+   number is the opposite.  If zero, do what YYDEFACT says.
+   If YYTABLE_NINF, syntax error.  */
+#define YYTABLE_NINF -176
+static const short int yytable[] =
+{
+      11,    75,   376,   328,   191,   279,   281,    98,   296,    13,
+     198,   295,   114,   451,   295,    84,    11,   392,    23,    20,
+     422,   392,   338,    87,   104,    13,   105,   424,   329,   330,
+     297,   343,   326,    21,    24,   -55,   -55,   140,    60,    61,
+     192,   100,    63,    64,    65,    66,   102,     1,     2,   314,
+       3,     4,     1,   142,   143,     3,   302,   423,   137,   306,
+     307,   308,   309,   310,   423,   137,   313,   338,   348,   138,
+     129,   104,   338,   105,   102,    67,   237,   325,   344,    25,
+     129,   455,   141,   317,   318,   349,    11,   370,   510,    28,
+      29,    30,    31,    32,    33,    34,   196,    35,   342,   441,
+     391,   319,   320,   442,   388,    26,   317,   318,   234,   235,
+      60,    61,   238,   100,    63,    64,    65,    66,   532,     1,
+       2,    27,     3,     4,   319,   320,    79,    80,    60,    61,
+     199,   100,   108,   109,   110,    66,    40,     1,     2,   409,
+       3,     4,   529,    88,   546,   540,    99,    67,   317,   318,
+      77,    78,   517,   126,   144,   145,   518,    82,   390,   338,
+     127,   539,   496,    83,   497,    67,   319,   320,    68,   517,
+     403,    69,   545,   521,    70,    54,    71,   101,   348,   291,
+     392,    55,   416,   373,   104,    36,   105,   300,   301,   291,
+     303,   304,   291,   291,   291,   291,   291,   311,   312,   291,
+      56,   333,   334,   335,   336,   337,   288,   129,    46,    47,
+      48,    58,   338,    49,   345,   346,   347,   487,   365,   339,
+     365,   365,   428,   365,   430,   431,   432,   392,    84,   392,
+     365,   104,   191,   105,     1,   378,    91,     3,   365,   365,
+      68,   543,    92,    69,   375,   104,    70,   105,    71,   135,
+     315,   316,   104,   341,   105,   482,   106,   107,    68,   317,
+     318,    69,   394,   395,    70,    36,    71,   280,   192,   401,
+      93,    95,   196,   371,   372,    96,   391,   319,   320,    97,
+     133,     2,   534,   475,     4,   536,    42,   134,    43,   196,
+     389,   291,   293,   -56,   104,   294,   105,   365,   365,   365,
+     -57,   146,   194,   232,   233,   365,   230,   236,   500,   501,
+     502,   239,   270,   271,   272,   365,   365,   530,   273,   274,
+     317,   318,   282,   283,   284,   285,   286,   411,   443,   444,
+     445,   446,   289,   541,   295,   448,   449,   391,   319,   320,
+     115,   116,   117,   118,   119,   120,   327,   331,   379,   365,
+     332,   365,   352,   387,   365,   291,   429,   291,   291,   291,
+     365,   365,   435,   380,   381,   382,   383,   384,   397,   398,
+     473,   474,   399,   400,   404,   405,   406,   407,   408,   402,
+     414,   450,   417,   365,   365,   418,   365,   365,   427,   433,
+     434,   365,   438,   367,   368,   439,   369,   440,   452,   365,
+     447,   454,   456,   377,   453,   457,  -175,   507,   458,   508,
+     509,   385,   386,   472,   459,   460,   291,   462,   365,   -63,
+       1,     2,   477,     3,     4,     5,   365,   486,   441,   464,
+     466,     6,     7,   491,   467,   468,   471,   476,   513,   478,
+     479,   291,   291,   291,   488,   480,   491,   481,   495,   499,
+       8,   483,   515,     9,   505,   365,   506,    10,   423,   514,
+     365,   519,   526,   528,   522,   537,   523,   524,   544,   547,
+     419,   420,   421,   535,   365,   365,   548,   549,   426,   365,
+     552,   553,   365,   555,   298,   222,   223,   224,   436,   437,
+     299,   525,   533,   124,   511,   323,   139,   136,    41,    60,
+      61,   123,   100,   108,   109,   110,    66,    90,     1,     2,
+     483,     3,     4,   503,   425,     0,     0,     0,     0,     0,
+       0,     0,   461,     0,   463,     0,  -174,   465,     0,     0,
+       0,     0,     0,   469,   470,     0,    67,     0,     0,   -63,
+       1,     2,     0,     3,     4,     5,     0,     0,     0,     0,
+       0,     6,     7,     0,     0,     0,   489,   490,     0,   493,
+     494,     0,     0,     0,   498,     0,     0,     0,     0,     0,
+       8,     0,   504,     9,     0,     0,     0,    10,   242,   243,
+     244,   245,   246,   247,   248,   249,   250,   251,     0,     0,
+       0,   516,     0,     0,     0,    60,    61,     0,     0,   520,
+       0,     0,     0,     0,     1,     2,     0,     3,     4,     0,
+     147,     0,   253,   254,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   148,   149,     0,     0,     0,   538,    68,
+       0,     0,    69,   542,     0,    70,     0,    71,   340,     0,
+       0,     0,     0,     0,     0,     0,     0,   550,   551,     0,
+       0,     0,   554,     0,     0,   556,   150,   151,   152,   153,
+     154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
+     164,   165,   166,     0,     0,     0,     0,     0,     0,     0,
+     255,   256,   257,   258,   259,   260,   261,   262,   263,   264,
+     265,   266,   267,   268,     0,     0,     0,     0,   167,   168,
+     169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
+     179,     0,   180,     0,   181,   182,   183,     0,     0,     0,
+       0,     0,     0,     0,   104,     0,   105,     0,   184,     0,
+       0,   185,     0,   186,     0,   187,   353,   354,    60,    61,
+     355,     0,     0,     0,     0,     0,     0,     1,     2,     0,
+       3,     4,     0,   356,   357,   358,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   359,   360,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    60,    61,   361,   100,   108,   109,   110,    66,     0,
+       1,     2,     0,     3,     4,     0,     0,     0,     0,   150,
+     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
+     161,   162,   163,   164,   165,   166,     0,     0,    67,    60,
+      61,     0,    62,    63,    64,    65,    66,     0,     1,     2,
+       0,     3,     4,     0,     0,     0,     0,     0,     0,     0,
+       0,   167,   168,   169,   170,   171,   172,   173,   174,   175,
+     176,   177,   178,   179,     0,   180,    67,   181,   182,   183,
+       0,   353,   354,    60,    61,   355,     0,   104,     0,   105,
+       0,     0,     1,     2,   362,     3,     4,     0,   356,   357,
+     358,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,   359,   360,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,   361,     0,
+       0,    68,     0,     0,    69,     0,   275,    70,     0,    71,
+       0,     0,     0,     0,   150,   151,   152,   153,   154,   155,
+     156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
+     166,     0,     0,     0,     0,     0,     0,     0,     0,    68,
+       0,     0,    69,     0,     0,    70,     0,    71,     0,     0,
+       0,     0,     0,     0,     0,     0,   167,   168,   169,   170,
+     171,   172,   173,   174,   175,   176,   177,   178,   179,     0,
+     180,     0,   181,   182,   183,   353,   354,     0,     0,   355,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   362,
+       0,     0,   356,   357,   358,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,   359,   360,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,   361,     0,    60,    61,     0,   100,   108,   109,
+     110,    66,     0,     1,     2,     0,     3,     4,   150,   151,
+     152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
+     162,   163,   164,   165,   166,     0,     0,     0,     0,     0,
+       0,    67,     0,     0,     0,     0,    60,    61,     0,   100,
+      63,    64,    65,    66,     0,     1,     2,     0,     3,     4,
+     167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
+     177,   178,   179,   128,   180,     0,   181,   182,   183,     0,
+       0,     0,     0,    67,     0,    60,    61,     0,   100,    63,
+      64,    65,    66,   362,     1,     2,     0,     3,     4,     0,
+       0,    60,    61,     0,   100,    63,    64,    65,    66,     0,
+       1,     2,   322,     3,     4,     0,     0,     0,     0,     0,
+      60,    61,    67,   100,    63,    64,    65,    66,   410,     1,
+       2,     0,     3,     4,    68,     0,     0,    69,    67,     0,
+      70,     0,    71,     0,     0,     0,     0,   485,     0,    60,
+      61,     0,   100,    63,    64,    65,    66,    67,     1,     2,
+       0,     3,     4,     0,     0,    60,    61,     0,   195,    63,
+      64,    65,    66,     0,     1,     2,    68,     3,     4,    69,
+       0,     0,    70,     0,    71,     0,    67,    60,    61,     0,
+     100,   108,   109,   110,    66,     0,     1,     2,     0,     3,
+       4,     0,    67,     0,    60,    61,     0,   290,    63,    64,
+      65,    66,     0,     1,     2,    68,     3,     4,    69,     0,
+       0,    70,     0,    71,    67,     0,     0,     0,     0,     0,
+       0,    68,     0,     0,    69,     0,     0,    70,     0,    71,
+       0,    67,     0,     0,     0,     0,     0,     0,     0,     0,
+      68,     0,     0,    69,     0,     0,    70,     0,    71,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,    68,
+       0,     0,    69,     0,     0,    70,     0,    71,     0,     0,
+       0,     0,     0,     0,     0,    68,     0,     0,    69,     0,
+       0,    70,     0,    71,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,   201,     0,     0,     0,    68,     0,     0,
+      69,     0,     0,    70,     0,   278,     0,     0,     0,     0,
+       0,   202,   203,     0,    68,     0,     0,    69,     0,     0,
+      70,     0,    71,   204,   205,   206,   207,   208,   209,   150,
+     151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
+     161,   162,   163,   164,   210,   211,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,   212,   213,   214,     0,
+       0,   215,   168,   169,   170,   171,   172,   173,   174,   175,
+     176,   177,   178,   179,   216,   217,   218,   219,   220,   221
+};
 
-#ifdef YYSTACK_USE_ALLOCA
-#define YYSTACK_ALLOC alloca
-#else
-#define YYSTACK_ALLOC malloc
-#endif
+static const short int yycheck[] =
+{
+       0,    26,   301,   239,   113,   185,   186,     4,   206,     0,
+      23,     9,    81,   411,     9,    16,    16,   324,   132,    45,
+       9,   328,   133,    24,   134,    16,   136,     9,   240,   241,
+     207,   142,   142,    59,    50,     3,     4,   106,     5,     6,
+     113,     8,     9,    10,    11,    12,    71,    14,    15,   226,
+      17,    18,    14,    21,    22,    17,   214,    46,   133,   217,
+     218,   219,   220,   221,    46,   133,   224,   133,    29,   144,
+      95,   134,   133,   136,    99,    42,   144,   140,   144,   132,
+     105,   142,   107,   110,   111,    46,    86,   297,   486,    35,
+      36,    37,    38,    39,    40,    41,   121,    43,   278,   133,
+     127,   128,   129,   137,   314,    13,   110,   111,   133,   134,
+       5,     6,   137,     8,     9,    10,    11,    12,   516,    14,
+      15,   132,    17,    18,   128,   129,    27,    28,     5,     6,
+     143,     8,     9,    10,    11,    12,     0,    14,    15,   351,
+      17,    18,   140,   144,   542,   140,   143,    42,   110,   111,
+      37,    38,   133,   133,     3,     4,   137,    44,   316,   133,
+     140,   530,   461,    50,   463,    42,   128,   129,   135,   133,
+     144,   138,   541,   137,   141,   132,   143,   144,    29,   204,
+     487,   132,   362,   133,   134,   131,   136,   212,   213,   214,
+     215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
+     138,   270,   271,   272,   273,   274,   197,   232,    35,    36,
+      37,    17,   133,    40,   283,   284,   285,   453,   291,   140,
+     293,   294,   380,   296,   382,   383,   384,   534,    16,   536,
+     303,   134,   341,   136,    14,   138,    17,    17,   311,   312,
+     135,    31,    17,   138,   133,   134,   141,   136,   143,   144,
+     106,   107,   134,   278,   136,   137,    77,    78,   135,   110,
+     111,   138,   331,   332,   141,   131,   143,   144,   341,   338,
+      17,   136,   297,   298,   299,     4,   127,   128,   129,     4,
+     139,    15,   518,   441,    18,   521,    39,   139,    41,   314,
+     315,   316,     9,     7,   134,    12,   136,   370,   371,   372,
+       7,     7,     4,   133,   137,   378,    17,   142,   466,   467,
+     468,   137,   136,   136,   136,   388,   389,   515,   136,   136,
+     110,   111,    17,   136,   136,   136,   133,   352,   397,   398,
+     399,   400,    48,   531,     9,   404,   405,   127,   128,   129,
+      53,    54,    55,    56,    57,    58,   142,   136,   133,   422,
+     136,   424,   136,    31,   427,   380,   381,   382,   383,   384,
+     433,   434,   387,   133,   133,   133,   133,   133,   133,   133,
+     439,   440,   133,   133,   133,   133,    31,    17,     4,   142,
+      52,   406,   133,   456,   457,   133,   459,   460,   138,   133,
+     133,   464,   133,   293,   294,   133,   296,   133,   133,   472,
+     142,    17,    12,   303,   137,    12,     0,   476,   136,   478,
+     479,   311,   312,   438,   133,   133,   441,     4,   491,    13,
+      14,    15,   137,    17,    18,    19,   499,   452,   133,   133,
+     133,    25,    26,   458,   133,   133,   136,   133,    17,   133,
+     133,   466,   467,   468,   133,   137,   471,   137,   133,   133,
+      44,   451,   138,    47,   137,   528,   137,    51,    46,   133,
+     533,   140,    46,    12,   137,     4,   137,   137,   133,    12,
+     370,   371,   372,   140,   547,   548,    12,   133,   378,   552,
+      12,    64,   555,    12,   210,   124,   124,   124,   388,   389,
+     211,   510,   517,    86,   487,   232,   105,    99,    16,     5,
+       6,    83,     8,     9,    10,    11,    12,    53,    14,    15,
+     510,    17,    18,   471,   377,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,   422,    -1,   424,    -1,     0,   427,    -1,    -1,
+      -1,    -1,    -1,   433,   434,    -1,    42,    -1,    -1,    13,
+      14,    15,    -1,    17,    18,    19,    -1,    -1,    -1,    -1,
+      -1,    25,    26,    -1,    -1,    -1,   456,   457,    -1,   459,
+     460,    -1,    -1,    -1,   464,    -1,    -1,    -1,    -1,    -1,
+      44,    -1,   472,    47,    -1,    -1,    -1,    51,    83,    84,
+      85,    86,    87,    88,    89,    90,    91,    92,    -1,    -1,
+      -1,   491,    -1,    -1,    -1,     5,     6,    -1,    -1,   499,
+      -1,    -1,    -1,    -1,    14,    15,    -1,    17,    18,    -1,
+      20,    -1,    21,    22,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    33,    34,    -1,    -1,    -1,   528,   135,
+      -1,    -1,   138,   533,    -1,   141,    -1,   143,   144,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,   547,   548,    -1,
+      -1,    -1,   552,    -1,    -1,   555,    66,    67,    68,    69,
+      70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
+      80,    81,    82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
+      99,   100,   101,   102,    -1,    -1,    -1,    -1,   108,   109,
+     110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
+     120,    -1,   122,    -1,   124,   125,   126,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,   134,    -1,   136,    -1,   138,    -1,
+      -1,   141,    -1,   143,    -1,   145,     3,     4,     5,     6,
+       7,    -1,    -1,    -1,    -1,    -1,    -1,    14,    15,    -1,
+      17,    18,    -1,    20,    21,    22,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,     5,     6,    50,     8,     9,    10,    11,    12,    -1,
+      14,    15,    -1,    17,    18,    -1,    -1,    -1,    -1,    66,
+      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+      77,    78,    79,    80,    81,    82,    -1,    -1,    42,     5,
+       6,    -1,     8,     9,    10,    11,    12,    -1,    14,    15,
+      -1,    17,    18,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,   108,   109,   110,   111,   112,   113,   114,   115,   116,
+     117,   118,   119,   120,    -1,   122,    42,   124,   125,   126,
+      -1,     3,     4,     5,     6,     7,    -1,   134,    -1,   136,
+      -1,    -1,    14,    15,   141,    17,    18,    -1,    20,    21,
+      22,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    33,    34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,
+      -1,   135,    -1,    -1,   138,    -1,   140,   141,    -1,   143,
+      -1,    -1,    -1,    -1,    66,    67,    68,    69,    70,    71,
+      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
+      82,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,
+      -1,    -1,   138,    -1,    -1,   141,    -1,   143,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   108,   109,   110,   111,
+     112,   113,   114,   115,   116,   117,   118,   119,   120,    -1,
+     122,    -1,   124,   125,   126,     3,     4,    -1,    -1,     7,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   141,
+      -1,    -1,    20,    21,    22,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    33,    34,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    50,    -1,     5,     6,    -1,     8,     9,    10,
+      11,    12,    -1,    14,    15,    -1,    17,    18,    66,    67,
+      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
+      78,    79,    80,    81,    82,    -1,    -1,    -1,    -1,    -1,
+      -1,    42,    -1,    -1,    -1,    -1,     5,     6,    -1,     8,
+       9,    10,    11,    12,    -1,    14,    15,    -1,    17,    18,
+     108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
+     118,   119,   120,    32,   122,    -1,   124,   125,   126,    -1,
+      -1,    -1,    -1,    42,    -1,     5,     6,    -1,     8,     9,
+      10,    11,    12,   141,    14,    15,    -1,    17,    18,    -1,
+      -1,     5,     6,    -1,     8,     9,    10,    11,    12,    -1,
+      14,    15,    32,    17,    18,    -1,    -1,    -1,    -1,    -1,
+       5,     6,    42,     8,     9,    10,    11,    12,    32,    14,
+      15,    -1,    17,    18,   135,    -1,    -1,   138,    42,    -1,
+     141,    -1,   143,    -1,    -1,    -1,    -1,    32,    -1,     5,
+       6,    -1,     8,     9,    10,    11,    12,    42,    14,    15,
+      -1,    17,    18,    -1,    -1,     5,     6,    -1,     8,     9,
+      10,    11,    12,    -1,    14,    15,   135,    17,    18,   138,
+      -1,    -1,   141,    -1,   143,    -1,    42,     5,     6,    -1,
+       8,     9,    10,    11,    12,    -1,    14,    15,    -1,    17,
+      18,    -1,    42,    -1,     5,     6,    -1,     8,     9,    10,
+      11,    12,    -1,    14,    15,   135,    17,    18,   138,    -1,
+      -1,   141,    -1,   143,    42,    -1,    -1,    -1,    -1,    -1,
+      -1,   135,    -1,    -1,   138,    -1,    -1,   141,    -1,   143,
+      -1,    42,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+     135,    -1,    -1,   138,    -1,    -1,   141,    -1,   143,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   135,
+      -1,    -1,   138,    -1,    -1,   141,    -1,   143,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,   135,    -1,    -1,   138,    -1,
+      -1,   141,    -1,   143,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    30,    -1,    -1,    -1,   135,    -1,    -1,
+     138,    -1,    -1,   141,    -1,   143,    -1,    -1,    -1,    -1,
+      -1,    48,    49,    -1,   135,    -1,    -1,   138,    -1,    -1,
+     141,    -1,   143,    60,    61,    62,    63,    64,    65,    66,
+      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
+      77,    78,    79,    80,    81,    82,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,   103,   104,   105,    -1,
+      -1,   108,   109,   110,   111,   112,   113,   114,   115,   116,
+     117,   118,   119,   120,   121,   122,   123,   124,   125,   126
+};
 
-/* Note: there must be only one dollar sign in this file.
-   It is replaced by the list of actions, each action
-   as one case of the switch.  */
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
+   symbol of state STATE-NUM.  */
+static const unsigned char yystos[] =
+{
+       0,    14,    15,    17,    18,    19,    25,    26,    44,    47,
+      51,   154,   156,   157,   158,   186,   187,   188,   190,   189,
+      45,    59,   195,   132,    50,   132,    13,   132,    35,    36,
+      37,    38,    39,    40,    41,    43,   131,   159,   160,   161,
+       0,   188,    39,    41,   162,   205,    35,    36,    37,    40,
+     163,   202,   204,   211,   132,   132,   138,   196,    17,   194,
+       5,     6,     8,     9,    10,    11,    12,    42,   135,   138,
+     141,   143,   154,   157,   175,   176,   208,   161,   161,    27,
+      28,   185,   161,   161,    16,   212,   213,    24,   144,   203,
+     212,    17,    17,    17,   197,   136,     4,     4,     4,   143,
+       8,   144,   176,   181,   134,   136,   185,   185,     9,    10,
+      11,   152,   153,   176,   182,    53,    54,    55,    56,    57,
+      58,   164,   200,   200,   156,   216,   133,   140,    32,   176,
+     177,   179,   180,   139,   139,   144,   181,   133,   144,   180,
+     182,   176,    21,    22,     3,     4,     7,    20,    33,    34,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      76,    77,    78,    79,    80,    81,    82,   108,   109,   110,
+     111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
+     122,   124,   125,   126,   138,   141,   143,   145,   147,   148,
+     149,   183,   208,   191,     4,     8,   176,   178,    23,   143,
+     201,    30,    48,    49,    60,    61,    62,    63,    64,    65,
+      81,    82,   103,   104,   105,   108,   121,   122,   123,   124,
+     125,   126,   147,   148,   149,   214,   220,   221,   222,   223,
+      17,   166,   133,   137,   176,   176,   142,   144,   176,   137,
+     192,   193,    83,    84,    85,    86,    87,    88,    89,    90,
+      91,    92,   150,    21,    22,    89,    90,    91,    92,    93,
+      94,    95,    96,    97,    98,    99,   100,   101,   102,   151,
+     136,   136,   136,   136,   136,   140,   182,   184,   143,   184,
+     144,   184,    17,   136,   136,   136,   133,   173,   157,    48,
+       8,   176,   210,     9,    12,     9,   152,   164,   150,   151,
+     176,   176,   210,   176,   176,   217,   210,   210,   210,   210,
+     210,   176,   176,   210,   164,   106,   107,   110,   111,   128,
+     129,   165,    32,   177,   168,   140,   142,   142,   168,   173,
+     173,   136,   136,   182,   182,   182,   182,   182,   133,   140,
+     144,   176,   184,   142,   144,   182,   182,   182,    29,    46,
+     171,   174,   136,     3,     4,     7,    20,    21,    22,    33,
+      34,    50,   141,   183,   207,   208,   209,   209,   209,   209,
+     178,   176,   176,   133,   170,   133,   170,   209,   138,   133,
+     133,   133,   133,   133,   133,   209,   209,    31,   178,   176,
+     210,   127,   165,   167,   182,   182,   219,   133,   133,   133,
+     133,   182,   142,   144,   133,   133,    31,    17,     4,   173,
+      32,   176,   198,   199,    52,   206,   184,   133,   133,   209,
+     209,   209,     9,    46,     9,   219,   209,   138,   210,   176,
+     210,   210,   210,   133,   133,   176,   209,   209,   133,   133,
+     133,   133,   137,   182,   182,   182,   182,   142,   182,   182,
+     176,   166,   133,   137,    17,   142,    12,    12,   136,   133,
+     133,   209,     4,   209,   133,   209,   133,   133,   133,   209,
+     209,   136,   176,   182,   182,   210,   133,   137,   133,   133,
+     137,   137,   137,   154,   155,    32,   176,   168,   133,   209,
+     209,   176,   218,   209,   209,   133,   170,   170,   209,   133,
+     210,   210,   210,   218,   209,   137,   137,   182,   182,   182,
+     166,   171,   172,    17,   133,   138,   209,   133,   137,   140,
+     209,   137,   137,   137,   137,   155,    46,   169,    12,   140,
+     152,   215,   166,   176,   168,   140,   168,     4,   209,   207,
+     140,   152,   209,    31,   133,   207,   166,    12,    12,   133,
+     209,   209,    12,    64,   209,    12,   209
+};
 
 #define yyerrok		(yyerrstatus = 0)
 #define yyclearin	(yychar = YYEMPTY)
-#define YYEMPTY		-2
+#define YYEMPTY		(-2)
 #define YYEOF		0
+
 #define YYACCEPT	goto yyacceptlab
-#define YYABORT 	goto yyabortlab
-#define YYERROR		goto yyerrlab1
-/* Like YYERROR except do call yyerror.
-   This remains here temporarily to ease the
-   transition to the new meaning of YYERROR, for GCC.
+#define YYABORT		goto yyabortlab
+#define YYERROR		goto yyerrorlab
+
+
+/* Like YYERROR except do call yyerror.  This remains here temporarily
+   to ease the transition to the new meaning of YYERROR, for GCC.
    Once GCC version 2 has supplanted version 1, this can go.  */
+
 #define YYFAIL		goto yyerrlab
+
 #define YYRECOVERING()  (!!yyerrstatus)
-#define YYBACKUP(token, value) \
+
+#define YYBACKUP(Token, Value)					\
 do								\
   if (yychar == YYEMPTY && yylen == 1)				\
-    { yychar = (token), yylval = (value);			\
-      yychar1 = YYTRANSLATE (yychar);				\
+    {								\
+      yychar = (Token);						\
+      yylval = (Value);						\
+      yytoken = YYTRANSLATE (yychar);				\
       YYPOPSTACK;						\
       goto yybackup;						\
     }								\
   else								\
-    { yyerror ("syntax error: cannot back up"); YYERROR; }	\
+    {								\
+      yyerror (YY_("syntax error: cannot back up")); \
+      YYERROR;							\
+    }								\
 while (0)
 
+
 #define YYTERROR	1
 #define YYERRCODE	256
 
-#ifndef YYPURE
-#define YYLEX		yylex()
+
+/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
+   If N is 0, then set CURRENT to the empty location which ends
+   the previous symbol: RHS[0] (always defined).  */
+
+#define YYRHSLOC(Rhs, K) ((Rhs)[K])
+#ifndef YYLLOC_DEFAULT
+# define YYLLOC_DEFAULT(Current, Rhs, N)				\
+    do									\
+      if (N)								\
+	{								\
+	  (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;	\
+	  (Current).first_column = YYRHSLOC (Rhs, 1).first_column;	\
+	  (Current).last_line    = YYRHSLOC (Rhs, N).last_line;		\
+	  (Current).last_column  = YYRHSLOC (Rhs, N).last_column;	\
+	}								\
+      else								\
+	{								\
+	  (Current).first_line   = (Current).last_line   =		\
+	    YYRHSLOC (Rhs, 0).last_line;				\
+	  (Current).first_column = (Current).last_column =		\
+	    YYRHSLOC (Rhs, 0).last_column;				\
+	}								\
+    while (0)
 #endif
 
-#ifdef YYPURE
-#ifdef YYLSP_NEEDED
-#ifdef YYLEX_PARAM
-#define YYLEX		yylex(&yylval, &yylloc, YYLEX_PARAM)
-#else
-#define YYLEX		yylex(&yylval, &yylloc)
+
+/* YY_LOCATION_PRINT -- Print the location on the stream.
+   This macro was not mandated originally: define only if we know
+   we won't break user code: when these are the locations we know.  */
+
+#ifndef YY_LOCATION_PRINT
+# if YYLTYPE_IS_TRIVIAL
+#  define YY_LOCATION_PRINT(File, Loc)			\
+     fprintf (File, "%d.%d-%d.%d",			\
+              (Loc).first_line, (Loc).first_column,	\
+              (Loc).last_line,  (Loc).last_column)
+# else
+#  define YY_LOCATION_PRINT(File, Loc) ((void) 0)
+# endif
 #endif
-#else /* not YYLSP_NEEDED */
+
+
+/* YYLEX -- calling `yylex' with the right arguments.  */
+
 #ifdef YYLEX_PARAM
-#define YYLEX		yylex(&yylval, YYLEX_PARAM)
+# define YYLEX yylex (YYLEX_PARAM)
 #else
-#define YYLEX		yylex(&yylval)
-#endif
-#endif /* not YYLSP_NEEDED */
+# define YYLEX yylex ()
 #endif
 
-/* If nonreentrant, generate the variables here */
+/* Enable debugging if requested.  */
+#if YYDEBUG
 
-#ifndef YYPURE
+# ifndef YYFPRINTF
+#  include <stdio.h> /* INFRINGES ON USER NAME SPACE */
+#  define YYFPRINTF fprintf
+# endif
+
+# define YYDPRINTF(Args)			\
+do {						\
+  if (yydebug)					\
+    YYFPRINTF Args;				\
+} while (0)
+
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)		\
+do {								\
+  if (yydebug)							\
+    {								\
+      YYFPRINTF (stderr, "%s ", Title);				\
+      yysymprint (stderr,					\
+                  Type, Value);	\
+      YYFPRINTF (stderr, "\n");					\
+    }								\
+} while (0)
 
-int	yychar;			/*  the lookahead symbol		*/
-YYSTYPE	yylval;			/*  the semantic value of the		*/
-				/*  lookahead symbol			*/
+/*------------------------------------------------------------------.
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |
+| TOP (included).                                                   |
+`------------------------------------------------------------------*/
 
-#ifdef YYLSP_NEEDED
-YYLTYPE yylloc;			/*  location data for the lookahead	*/
-				/*  symbol				*/
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_stack_print (short int *bottom, short int *top)
+#else
+static void
+yy_stack_print (bottom, top)
+    short int *bottom;
+    short int *top;
 #endif
+{
+  YYFPRINTF (stderr, "Stack now");
+  for (/* Nothing. */; bottom <= top; ++bottom)
+    YYFPRINTF (stderr, " %d", *bottom);
+  YYFPRINTF (stderr, "\n");
+}
+
+# define YY_STACK_PRINT(Bottom, Top)				\
+do {								\
+  if (yydebug)							\
+    yy_stack_print ((Bottom), (Top));				\
+} while (0)
 
-int yynerrs;			/*  number of parse errors so far       */
-#endif  /* not YYPURE */
 
-#if YYDEBUG != 0
-int yydebug;			/*  nonzero means print parse trace	*/
-/* Since this is uninitialized, it does not stop multiple parsers
-   from coexisting.  */
+/*------------------------------------------------.
+| Report that the YYRULE is going to be reduced.  |
+`------------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yy_reduce_print (int yyrule)
+#else
+static void
+yy_reduce_print (yyrule)
+    int yyrule;
 #endif
+{
+  int yyi;
+  unsigned long int yylno = yyrline[yyrule];
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu), ",
+             yyrule - 1, yylno);
+  /* Print the symbols being reduced, and their result.  */
+  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
+    YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);
+  YYFPRINTF (stderr, "-> %s\n", yytname[yyr1[yyrule]]);
+}
 
-/*  YYINITDEPTH indicates the initial size of the parser's stacks	*/
+# define YY_REDUCE_PRINT(Rule)		\
+do {					\
+  if (yydebug)				\
+    yy_reduce_print (Rule);		\
+} while (0)
+
+/* Nonzero means print parse trace.  It is left uninitialized so that
+   multiple parsers can coexist.  */
+int yydebug;
+#else /* !YYDEBUG */
+# define YYDPRINTF(Args)
+# define YY_SYMBOL_PRINT(Title, Type, Value, Location)
+# define YY_STACK_PRINT(Bottom, Top)
+# define YY_REDUCE_PRINT(Rule)
+#endif /* !YYDEBUG */
 
+
+/* YYINITDEPTH -- initial size of the parser's stacks.  */
 #ifndef	YYINITDEPTH
-#define YYINITDEPTH 200
+# define YYINITDEPTH 200
 #endif
 
-/*  YYMAXDEPTH is the maximum size the stacks can grow to
-    (effective only if the built-in stack extension method is used).  */
+/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
+   if the built-in stack extension method is used).
 
-#if YYMAXDEPTH == 0
-#undef YYMAXDEPTH
-#endif
+   Do not make this value too large; the results are undefined if
+   YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
+   evaluated with infinite-precision integer arithmetic.  */
 
 #ifndef YYMAXDEPTH
-#define YYMAXDEPTH 10000
+# define YYMAXDEPTH 10000
 #endif
+
 
-/* Define __yy_memcpy.  Note that the size argument
-   should be passed with type unsigned int, because that is what the non-GCC
-   definitions require.  With GCC, __builtin_memcpy takes an arg
-   of type size_t, but it can handle unsigned int.  */
-
-#if __GNUC__ > 1		/* GNU C and GNU C++ define this.  */
-#define __yy_memcpy(TO,FROM,COUNT)	__builtin_memcpy(TO,FROM,COUNT)
-#else				/* not GNU C or C++ */
-#ifndef __cplusplus
 
-/* This is the most reliable way to avoid incompatibilities
-   in available built-in functions on various systems.  */
-static void
-__yy_memcpy (to, from, count)
-     char *to;
-     char *from;
-     unsigned int count;
+#if YYERROR_VERBOSE
+
+# ifndef yystrlen
+#  if defined (__GLIBC__) && defined (_STRING_H)
+#   define yystrlen strlen
+#  else
+/* Return the length of YYSTR.  */
+static YYSIZE_T
+#   if defined (__STDC__) || defined (__cplusplus)
+yystrlen (const char *yystr)
+#   else
+yystrlen (yystr)
+     const char *yystr;
+#   endif
 {
-  register char *f = from;
-  register char *t = to;
-  register int i = count;
+  const char *yys = yystr;
+
+  while (*yys++ != '\0')
+    continue;
 
-  while (i-- > 0)
-    *t++ = *f++;
+  return yys - yystr - 1;
 }
+#  endif
+# endif
 
-#else /* __cplusplus */
+# ifndef yystpcpy
+#  if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
+#   define yystpcpy stpcpy
+#  else
+/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
+   YYDEST.  */
+static char *
+#   if defined (__STDC__) || defined (__cplusplus)
+yystpcpy (char *yydest, const char *yysrc)
+#   else
+yystpcpy (yydest, yysrc)
+     char *yydest;
+     const char *yysrc;
+#   endif
+{
+  char *yyd = yydest;
+  const char *yys = yysrc;
 
-/* This is the most reliable way to avoid incompatibilities
-   in available built-in functions on various systems.  */
-static void
-__yy_memcpy (char *to, char *from, unsigned int count)
+  while ((*yyd++ = *yys++) != '\0')
+    continue;
+
+  return yyd - 1;
+}
+#  endif
+# endif
+
+# ifndef yytnamerr
+/* Copy to YYRES the contents of YYSTR after stripping away unnecessary
+   quotes and backslashes, so that it's suitable for yyerror.  The
+   heuristic is that double-quoting is unnecessary unless the string
+   contains an apostrophe, a comma, or backslash (other than
+   backslash-backslash).  YYSTR is taken from yytname.  If YYRES is
+   null, do not copy; instead, return the length of what the result
+   would have been.  */
+static YYSIZE_T
+yytnamerr (char *yyres, const char *yystr)
 {
-  register char *t = to;
-  register char *f = from;
-  register int i = count;
+  if (*yystr == '"')
+    {
+      size_t yyn = 0;
+      char const *yyp = yystr;
 
-  while (i-- > 0)
-    *t++ = *f++;
+      for (;;)
+	switch (*++yyp)
+	  {
+	  case '\'':
+	  case ',':
+	    goto do_not_strip_quotes;
+
+	  case '\\':
+	    if (*++yyp != '\\')
+	      goto do_not_strip_quotes;
+	    /* Fall through.  */
+	  default:
+	    if (yyres)
+	      yyres[yyn] = *yyp;
+	    yyn++;
+	    break;
+
+	  case '"':
+	    if (yyres)
+	      yyres[yyn] = '\0';
+	    return yyn;
+	  }
+    do_not_strip_quotes: ;
+    }
+
+  if (! yyres)
+    return yystrlen (yystr);
+
+  return yystpcpy (yyres, yystr) - yyres;
 }
+# endif
+
+#endif /* YYERROR_VERBOSE */
+
+
+
+#if YYDEBUG
+/*--------------------------------.
+| Print this symbol on YYOUTPUT.  |
+`--------------------------------*/
 
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yysymprint (yyoutput, yytype, yyvaluep)
+    FILE *yyoutput;
+    int yytype;
+    YYSTYPE *yyvaluep;
 #endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  if (yytype < YYNTOKENS)
+    YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
+  else
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+
+
+# ifdef YYPRINT
+  if (yytype < YYNTOKENS)
+    YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
+# endif
+  switch (yytype)
+    {
+      default:
+        break;
+    }
+  YYFPRINTF (yyoutput, ")");
+}
+
+#endif /* ! YYDEBUG */
+/*-----------------------------------------------.
+| Release the memory associated to this symbol.  |
+`-----------------------------------------------*/
+
+#if defined (__STDC__) || defined (__cplusplus)
+static void
+yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep)
+#else
+static void
+yydestruct (yymsg, yytype, yyvaluep)
+    const char *yymsg;
+    int yytype;
+    YYSTYPE *yyvaluep;
 #endif
+{
+  /* Pacify ``unused variable'' warnings.  */
+  (void) yyvaluep;
+
+  if (!yymsg)
+    yymsg = "Deleting";
+  YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
+
+  switch (yytype)
+    {
+
+      default:
+        break;
+    }
+}
 
-#line 217 "/usr/share/bison.simple"
 
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed
-   into yyparse.  The argument should have type void *.
-   It should actually point to an object.
-   Grammar actions can access the variable by casting it
-   to the proper pointer type.  */
+/* Prevent warnings from -Wmissing-prototypes.  */
 
 #ifdef YYPARSE_PARAM
-#ifdef __cplusplus
-#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL
-#else /* not __cplusplus */
-#define YYPARSE_PARAM_ARG YYPARSE_PARAM
-#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
-#endif /* not __cplusplus */
-#else /* not YYPARSE_PARAM */
-#define YYPARSE_PARAM_ARG
-#define YYPARSE_PARAM_DECL
-#endif /* not YYPARSE_PARAM */
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM);
+# else
+int yyparse ();
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void);
+#else
+int yyparse ();
+#endif
+#endif /* ! YYPARSE_PARAM */
+
+
+
+/* The look-ahead symbol.  */
+int yychar;
+
+/* The semantic value of the look-ahead symbol.  */
+YYSTYPE yylval;
+
+/* Number of syntax errors so far.  */
+int yynerrs;
+
+
+
+/*----------.
+| yyparse.  |
+`----------*/
 
-/* Prevent warning if -Wstrict-prototypes.  */
-#ifdef __GNUC__
 #ifdef YYPARSE_PARAM
-int yyparse (void *);
+# if defined (__STDC__) || defined (__cplusplus)
+int yyparse (void *YYPARSE_PARAM)
+# else
+int yyparse (YYPARSE_PARAM)
+  void *YYPARSE_PARAM;
+# endif
+#else /* ! YYPARSE_PARAM */
+#if defined (__STDC__) || defined (__cplusplus)
+int
+yyparse (void)
 #else
-int yyparse (void);
+int
+yyparse ()
+
 #endif
 #endif
-
-int
-yyparse(YYPARSE_PARAM_ARG)
-     YYPARSE_PARAM_DECL
 {
-  register int yystate;
-  register int yyn;
-  register short *yyssp;
-  register YYSTYPE *yyvsp;
-  int yyerrstatus;	/*  number of tokens to shift before error messages enabled */
-  int yychar1 = 0;		/*  lookahead token as an internal (translated) token number */
-
-  short	yyssa[YYINITDEPTH];	/*  the state stack			*/
-  YYSTYPE yyvsa[YYINITDEPTH];	/*  the semantic value stack		*/
-
-  short *yyss = yyssa;		/*  refer to the stacks thru separate pointers */
-  YYSTYPE *yyvs = yyvsa;	/*  to allow yyoverflow to reallocate them elsewhere */
-
-#ifdef YYLSP_NEEDED
-  YYLTYPE yylsa[YYINITDEPTH];	/*  the location stack			*/
-  YYLTYPE *yyls = yylsa;
-  YYLTYPE *yylsp;
+  
+  int yystate;
+  int yyn;
+  int yyresult;
+  /* Number of tokens to shift before error messages enabled.  */
+  int yyerrstatus;
+  /* Look-ahead token as an internal (translated) token number.  */
+  int yytoken = 0;
+
+  /* Three stacks and their tools:
+     `yyss': related to states,
+     `yyvs': related to semantic values,
+     `yyls': related to locations.
+
+     Refer to the stacks thru separate pointers, to allow yyoverflow
+     to reallocate them elsewhere.  */
+
+  /* The state stack.  */
+  short int yyssa[YYINITDEPTH];
+  short int *yyss = yyssa;
+  short int *yyssp;
+
+  /* The semantic value stack.  */
+  YYSTYPE yyvsa[YYINITDEPTH];
+  YYSTYPE *yyvs = yyvsa;
+  YYSTYPE *yyvsp;
+
+
 
-#define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)
-#else
 #define YYPOPSTACK   (yyvsp--, yyssp--)
-#endif
 
-  int yystacksize = YYINITDEPTH;
-  int yyfree_stacks = 0;
+  YYSIZE_T yystacksize = YYINITDEPTH;
 
-#ifdef YYPURE
-  int yychar;
-  YYSTYPE yylval;
-  int yynerrs;
-#ifdef YYLSP_NEEDED
-  YYLTYPE yylloc;
-#endif
-#endif
+  /* The variables used to return semantic value and location from the
+     action routines.  */
+  YYSTYPE yyval;
 
-  YYSTYPE yyval;		/*  the variable used to return		*/
-				/*  semantic values from the action	*/
-				/*  routines				*/
 
+  /* When reducing, the number of symbols on the RHS of the reduced
+     rule.  */
   int yylen;
 
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Starting parse\n");
-#endif
+  YYDPRINTF ((stderr, "Starting parse\n"));
 
   yystate = 0;
   yyerrstatus = 0;
@@ -2126,644 +2792,675 @@
      so that they stay on the same level as the state stack.
      The wasted elements are never initialized.  */
 
-  yyssp = yyss - 1;
+  yyssp = yyss;
   yyvsp = yyvs;
-#ifdef YYLSP_NEEDED
-  yylsp = yyls;
-#endif
 
-/* Push a new state, which is found in  yystate  .  */
-/* In all cases, when you get here, the value and location stacks
-   have just been pushed. so pushing a state here evens the stacks.  */
-yynewstate:
-
-  *++yyssp = yystate;
-
-  if (yyssp >= yyss + yystacksize - 1)
-    {
-      /* Give user a chance to reallocate the stack */
-      /* Use copies of these so that the &'s don't force the real ones into memory. */
-      YYSTYPE *yyvs1 = yyvs;
-      short *yyss1 = yyss;
-#ifdef YYLSP_NEEDED
-      YYLTYPE *yyls1 = yyls;
-#endif
+  goto yysetstate;
+
+/*------------------------------------------------------------.
+| yynewstate -- Push a new state, which is found in yystate.  |
+`------------------------------------------------------------*/
+ yynewstate:
+  /* In all cases, when you get here, the value and location stacks
+     have just been pushed. so pushing a state here evens the stacks.
+     */
+  yyssp++;
 
+ yysetstate:
+  *yyssp = yystate;
+
+  if (yyss + yystacksize - 1 <= yyssp)
+    {
       /* Get the current used size of the three stacks, in elements.  */
-      int size = yyssp - yyss + 1;
+      YYSIZE_T yysize = yyssp - yyss + 1;
 
 #ifdef yyoverflow
-      /* Each stack pointer address is followed by the size of
-	 the data in use in that stack, in bytes.  */
-#ifdef YYLSP_NEEDED
-      /* This used to be a conditional around just the two extra args,
-	 but that might be undefined if yyoverflow is a macro.  */
-      yyoverflow("parser stack overflow",
-		 &yyss1, size * sizeof (*yyssp),
-		 &yyvs1, size * sizeof (*yyvsp),
-		 &yyls1, size * sizeof (*yylsp),
-		 &yystacksize);
-#else
-      yyoverflow("parser stack overflow",
-		 &yyss1, size * sizeof (*yyssp),
-		 &yyvs1, size * sizeof (*yyvsp),
-		 &yystacksize);
-#endif
+      {
+	/* Give user a chance to reallocate the stack. Use copies of
+	   these so that the &'s don't force the real ones into
+	   memory.  */
+	YYSTYPE *yyvs1 = yyvs;
+	short int *yyss1 = yyss;
+
+
+	/* Each stack pointer address is followed by the size of the
+	   data in use in that stack, in bytes.  This used to be a
+	   conditional around just the two extra args, but that might
+	   be undefined if yyoverflow is a macro.  */
+	yyoverflow (YY_("memory exhausted"),
+		    &yyss1, yysize * sizeof (*yyssp),
+		    &yyvs1, yysize * sizeof (*yyvsp),
 
-      yyss = yyss1; yyvs = yyvs1;
-#ifdef YYLSP_NEEDED
-      yyls = yyls1;
-#endif
+		    &yystacksize);
+
+	yyss = yyss1;
+	yyvs = yyvs1;
+      }
 #else /* no yyoverflow */
+# ifndef YYSTACK_RELOCATE
+      goto yyexhaustedlab;
+# else
       /* Extend the stack our own way.  */
-      if (yystacksize >= YYMAXDEPTH)
-	{
-	  yyerror("parser stack overflow");
-	  if (yyfree_stacks)
-	    {
-	      free (yyss);
-	      free (yyvs);
-#ifdef YYLSP_NEEDED
-	      free (yyls);
-#endif
-	    }
-	  return 2;
-	}
+      if (YYMAXDEPTH <= yystacksize)
+	goto yyexhaustedlab;
       yystacksize *= 2;
-      if (yystacksize > YYMAXDEPTH)
+      if (YYMAXDEPTH < yystacksize)
 	yystacksize = YYMAXDEPTH;
-#ifndef YYSTACK_USE_ALLOCA
-      yyfree_stacks = 1;
-#endif
-      yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
-      __yy_memcpy ((char *)yyss, (char *)yyss1,
-		   size * (unsigned int) sizeof (*yyssp));
-      yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
-      __yy_memcpy ((char *)yyvs, (char *)yyvs1,
-		   size * (unsigned int) sizeof (*yyvsp));
-#ifdef YYLSP_NEEDED
-      yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
-      __yy_memcpy ((char *)yyls, (char *)yyls1,
-		   size * (unsigned int) sizeof (*yylsp));
-#endif
+
+      {
+	short int *yyss1 = yyss;
+	union yyalloc *yyptr =
+	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
+	if (! yyptr)
+	  goto yyexhaustedlab;
+	YYSTACK_RELOCATE (yyss);
+	YYSTACK_RELOCATE (yyvs);
+
+#  undef YYSTACK_RELOCATE
+	if (yyss1 != yyssa)
+	  YYSTACK_FREE (yyss1);
+      }
+# endif
 #endif /* no yyoverflow */
 
-      yyssp = yyss + size - 1;
-      yyvsp = yyvs + size - 1;
-#ifdef YYLSP_NEEDED
-      yylsp = yyls + size - 1;
-#endif
+      yyssp = yyss + yysize - 1;
+      yyvsp = yyvs + yysize - 1;
 
-#if YYDEBUG != 0
-      if (yydebug)
-	fprintf(stderr, "Stack size increased to %d\n", yystacksize);
-#endif
 
-      if (yyssp >= yyss + yystacksize - 1)
+      YYDPRINTF ((stderr, "Stack size increased to %lu\n",
+		  (unsigned long int) yystacksize));
+
+      if (yyss + yystacksize - 1 <= yyssp)
 	YYABORT;
     }
 
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Entering state %d\n", yystate);
-#endif
+  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
   goto yybackup;
- yybackup:
+
+/*-----------.
+| yybackup.  |
+`-----------*/
+yybackup:
 
 /* Do appropriate processing given the current state.  */
-/* Read a lookahead token if we need one and don't already have one.  */
+/* Read a look-ahead token if we need one and don't already have one.  */
 /* yyresume: */
 
-  /* First try to decide what to do without reference to lookahead token.  */
+  /* First try to decide what to do without reference to look-ahead token.  */
 
   yyn = yypact[yystate];
-  if (yyn == YYFLAG)
+  if (yyn == YYPACT_NINF)
     goto yydefault;
 
-  /* Not known => get a lookahead token if don't already have one.  */
-
-  /* yychar is either YYEMPTY or YYEOF
-     or a valid token in external form.  */
+  /* Not known => get a look-ahead token if don't already have one.  */
 
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
   if (yychar == YYEMPTY)
     {
-#if YYDEBUG != 0
-      if (yydebug)
-	fprintf(stderr, "Reading a token: ");
-#endif
+      YYDPRINTF ((stderr, "Reading a token: "));
       yychar = YYLEX;
     }
 
-  /* Convert token to internal form (in yychar1) for indexing tables with */
-
-  if (yychar <= 0)		/* This means end of input. */
+  if (yychar <= YYEOF)
     {
-      yychar1 = 0;
-      yychar = YYEOF;		/* Don't call YYLEX any more */
-
-#if YYDEBUG != 0
-      if (yydebug)
-	fprintf(stderr, "Now at end of input.\n");
-#endif
+      yychar = yytoken = YYEOF;
+      YYDPRINTF ((stderr, "Now at end of input.\n"));
     }
   else
     {
-      yychar1 = YYTRANSLATE(yychar);
-
-#if YYDEBUG != 0
-      if (yydebug)
-	{
-	  fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
-	  /* Give the individual parser a way to print the precise meaning
-	     of a token, for further debugging info.  */
-#ifdef YYPRINT
-	  YYPRINT (stderr, yychar, yylval);
-#endif
-	  fprintf (stderr, ")\n");
-	}
-#endif
+      yytoken = YYTRANSLATE (yychar);
+      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
     }
 
-  yyn += yychar1;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
+  /* If the proper action on seeing token YYTOKEN is to reduce or to
+     detect an error, take that action.  */
+  yyn += yytoken;
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
     goto yydefault;
-
   yyn = yytable[yyn];
-
-  /* yyn is what to do for this token type in this state.
-     Negative => reduce, -yyn is rule number.
-     Positive => shift, yyn is new state.
-       New state is final state => don't bother to shift,
-       just return success.
-     0, or most negative number => error.  */
-
-  if (yyn < 0)
+  if (yyn <= 0)
     {
-      if (yyn == YYFLAG)
+      if (yyn == 0 || yyn == YYTABLE_NINF)
 	goto yyerrlab;
       yyn = -yyn;
       goto yyreduce;
     }
-  else if (yyn == 0)
-    goto yyerrlab;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
-  /* Shift the lookahead token.  */
-
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
-#endif
+  /* Shift the look-ahead token.  */
+  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
   /* Discard the token being shifted unless it is eof.  */
   if (yychar != YYEOF)
     yychar = YYEMPTY;
 
   *++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
 
-  /* count tokens shifted since error; after three, turn off error status.  */
-  if (yyerrstatus) yyerrstatus--;
+
+  /* Count tokens shifted since error; after three, turn off error
+     status.  */
+  if (yyerrstatus)
+    yyerrstatus--;
 
   yystate = yyn;
   goto yynewstate;
 
-/* Do the default action for the current state.  */
-yydefault:
 
+/*-----------------------------------------------------------.
+| yydefault -- do the default action for the current state.  |
+`-----------------------------------------------------------*/
+yydefault:
   yyn = yydefact[yystate];
   if (yyn == 0)
     goto yyerrlab;
+  goto yyreduce;
+
 
-/* Do a reduction.  yyn is the number of a rule to reduce with.  */
+/*-----------------------------.
+| yyreduce -- Do a reduction.  |
+`-----------------------------*/
 yyreduce:
+  /* yyn is the number of a rule to reduce with.  */
   yylen = yyr2[yyn];
-  if (yylen > 0)
-    yyval = yyvsp[1-yylen]; /* implement default value of the action */
 
-#if YYDEBUG != 0
-  if (yydebug)
+  /* If YYLEN is nonzero, implement the default value of the action:
+     `$$ = $1'.
+
+     Otherwise, the following line sets YYVAL to garbage.
+     This behavior is undocumented and Bison
+     users should not rely upon it.  Assigning to YYVAL
+     unconditionally makes the parser a bit smaller, and it avoids a
+     GCC warning that YYVAL may be used uninitialized.  */
+  yyval = yyvsp[1-yylen];
+
+
+  YY_REDUCE_PRINT (yyn);
+  switch (yyn)
     {
-      int i;
+        case 29:
+#line 1039 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_EQ; ;}
+    break;
 
-      fprintf (stderr, "Reducing via rule %d (line %d), ",
-	       yyn, yyrline[yyn]);
+  case 30:
+#line 1039 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_NE; ;}
+    break;
 
-      /* Print the symbols being reduced, and their result.  */
-      for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
-	fprintf (stderr, "%s ", yytname[yyrhs[i]]);
-      fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
-    }
-#endif
+  case 31:
+#line 1040 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_SLT; ;}
+    break;
 
+  case 32:
+#line 1040 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_SGT; ;}
+    break;
 
-  switch (yyn) {
+  case 33:
+#line 1041 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_SLE; ;}
+    break;
 
-case 28:
-#line 1038 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.IPredicate = ICmpInst::ICMP_EQ; ;
-    break;}
-case 29:
-#line 1038 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.IPredicate = ICmpInst::ICMP_NE; ;
-    break;}
-case 30:
-#line 1039 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.IPredicate = ICmpInst::ICMP_SLT; ;
-    break;}
-case 31:
-#line 1039 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.IPredicate = ICmpInst::ICMP_SGT; ;
-    break;}
-case 32:
-#line 1040 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.IPredicate = ICmpInst::ICMP_SLE; ;
-    break;}
-case 33:
-#line 1040 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.IPredicate = ICmpInst::ICMP_SGE; ;
-    break;}
-case 34:
-#line 1041 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.IPredicate = ICmpInst::ICMP_ULT; ;
-    break;}
-case 35:
-#line 1041 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.IPredicate = ICmpInst::ICMP_UGT; ;
-    break;}
-case 36:
-#line 1042 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.IPredicate = ICmpInst::ICMP_ULE; ;
-    break;}
-case 37:
-#line 1042 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.IPredicate = ICmpInst::ICMP_UGE; ;
-    break;}
-case 38:
-#line 1046 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_OEQ; ;
-    break;}
-case 39:
-#line 1046 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_ONE; ;
-    break;}
-case 40:
-#line 1047 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_OLT; ;
-    break;}
-case 41:
-#line 1047 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_OGT; ;
-    break;}
-case 42:
-#line 1048 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_OLE; ;
-    break;}
-case 43:
-#line 1048 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_OGE; ;
-    break;}
-case 44:
-#line 1049 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_ORD; ;
-    break;}
-case 45:
-#line 1049 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_UNO; ;
-    break;}
-case 46:
-#line 1050 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_UEQ; ;
-    break;}
-case 47:
-#line 1050 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_UNE; ;
-    break;}
-case 48:
-#line 1051 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_ULT; ;
-    break;}
-case 49:
-#line 1051 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_UGT; ;
-    break;}
-case 50:
-#line 1052 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_ULE; ;
-    break;}
-case 51:
-#line 1052 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_UGE; ;
-    break;}
-case 52:
-#line 1053 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_TRUE; ;
-    break;}
-case 53:
-#line 1054 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.FPredicate = FCmpInst::FCMP_FALSE; ;
-    break;}
-case 60:
-#line 1063 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.StrVal = 0; ;
-    break;}
-case 61:
-#line 1067 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.StrVal = yyvsp[-1].StrVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 62:
-#line 1071 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.StrVal = 0;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 65:
-#line 1078 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.StrVal = yyvsp[-1].StrVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 66:
-#line 1082 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.StrVal = 0;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 67:
-#line 1088 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::InternalLinkage; ;
-    break;}
-case 68:
-#line 1089 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::WeakLinkage; ;
-    break;}
-case 69:
-#line 1090 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::LinkOnceLinkage; ;
-    break;}
-case 70:
-#line 1091 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::AppendingLinkage; ;
-    break;}
-case 71:
-#line 1092 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::DLLExportLinkage; ;
-    break;}
-case 72:
-#line 1096 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::DLLImportLinkage; ;
-    break;}
-case 73:
-#line 1097 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::ExternalWeakLinkage; ;
-    break;}
-case 74:
-#line 1098 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::ExternalLinkage; ;
-    break;}
-case 75:
-#line 1102 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Visibility = GlobalValue::DefaultVisibility; ;
-    break;}
-case 76:
-#line 1103 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Visibility = GlobalValue::HiddenVisibility;  ;
-    break;}
-case 77:
-#line 1107 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::ExternalLinkage; ;
-    break;}
-case 78:
-#line 1108 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::DLLImportLinkage; ;
-    break;}
-case 79:
-#line 1109 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::ExternalWeakLinkage; ;
-    break;}
-case 80:
-#line 1113 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::ExternalLinkage; ;
-    break;}
-case 81:
-#line 1114 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::InternalLinkage; ;
-    break;}
-case 82:
-#line 1115 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::LinkOnceLinkage; ;
-    break;}
-case 83:
-#line 1116 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::WeakLinkage; ;
-    break;}
-case 84:
-#line 1117 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.Linkage = GlobalValue::DLLExportLinkage; ;
-    break;}
-case 85:
-#line 1120 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.UIntVal = CallingConv::C; ;
-    break;}
-case 86:
-#line 1121 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.UIntVal = CallingConv::C; ;
-    break;}
-case 87:
-#line 1122 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.UIntVal = CallingConv::Fast; ;
-    break;}
-case 88:
-#line 1123 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.UIntVal = CallingConv::Cold; ;
-    break;}
-case 89:
-#line 1124 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.UIntVal = CallingConv::X86_StdCall; ;
-    break;}
-case 90:
-#line 1125 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.UIntVal = CallingConv::X86_FastCall; ;
-    break;}
-case 91:
-#line 1126 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-                   if ((unsigned)yyvsp[0].UInt64Val != yyvsp[0].UInt64Val)
-                     GEN_ERROR("Calling conv too large!");
-                   yyval.UIntVal = yyvsp[0].UInt64Val;
-                  CHECK_FOR_ERROR
-                 ;
-    break;}
-case 92:
-#line 1133 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.ParamAttrs = FunctionType::ZExtAttribute;      ;
-    break;}
-case 93:
-#line 1134 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.ParamAttrs = FunctionType::SExtAttribute;      ;
-    break;}
-case 94:
-#line 1135 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.ParamAttrs = FunctionType::InRegAttribute;     ;
-    break;}
-case 95:
-#line 1136 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.ParamAttrs = FunctionType::StructRetAttribute; ;
-    break;}
-case 96:
-#line 1139 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.ParamAttrs = FunctionType::NoAttributeSet; ;
-    break;}
-case 97:
-#line 1140 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-                yyval.ParamAttrs = FunctionType::ParameterAttributes(yyvsp[-1].ParamAttrs | yyvsp[0].ParamAttrs);
-              ;
-    break;}
-case 98:
-#line 1145 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.ParamAttrs = FunctionType::NoReturnAttribute; ;
-    break;}
-case 100:
-#line 1149 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.ParamAttrs = FunctionType::NoAttributeSet; ;
-    break;}
-case 101:
-#line 1150 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-                yyval.ParamAttrs = FunctionType::ParameterAttributes(yyvsp[-1].ParamAttrs | yyvsp[0].ParamAttrs);
-              ;
-    break;}
-case 102:
-#line 1157 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.UIntVal = 0; ;
-    break;}
-case 103:
-#line 1158 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-  yyval.UIntVal = yyvsp[0].UInt64Val;
-  if (yyval.UIntVal != 0 && !isPowerOf2_32(yyval.UIntVal))
+  case 34:
+#line 1041 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_SGE; ;}
+    break;
+
+  case 35:
+#line 1042 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_ULT; ;}
+    break;
+
+  case 36:
+#line 1042 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_UGT; ;}
+    break;
+
+  case 37:
+#line 1043 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_ULE; ;}
+    break;
+
+  case 38:
+#line 1043 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.IPredicate) = ICmpInst::ICMP_UGE; ;}
+    break;
+
+  case 39:
+#line 1047 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_OEQ; ;}
+    break;
+
+  case 40:
+#line 1047 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_ONE; ;}
+    break;
+
+  case 41:
+#line 1048 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_OLT; ;}
+    break;
+
+  case 42:
+#line 1048 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_OGT; ;}
+    break;
+
+  case 43:
+#line 1049 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_OLE; ;}
+    break;
+
+  case 44:
+#line 1049 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_OGE; ;}
+    break;
+
+  case 45:
+#line 1050 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_ORD; ;}
+    break;
+
+  case 46:
+#line 1050 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_UNO; ;}
+    break;
+
+  case 47:
+#line 1051 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_UEQ; ;}
+    break;
+
+  case 48:
+#line 1051 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_UNE; ;}
+    break;
+
+  case 49:
+#line 1052 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_ULT; ;}
+    break;
+
+  case 50:
+#line 1052 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_UGT; ;}
+    break;
+
+  case 51:
+#line 1053 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_ULE; ;}
+    break;
+
+  case 52:
+#line 1053 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_UGE; ;}
+    break;
+
+  case 53:
+#line 1054 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_TRUE; ;}
+    break;
+
+  case 54:
+#line 1055 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.FPredicate) = FCmpInst::FCMP_FALSE; ;}
+    break;
+
+  case 61:
+#line 1064 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.StrVal) = 0; ;}
+    break;
+
+  case 62:
+#line 1068 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.StrVal) = (yyvsp[-1].StrVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 63:
+#line 1072 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.StrVal) = 0;
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 66:
+#line 1079 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.StrVal) = (yyvsp[-1].StrVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 67:
+#line 1083 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.StrVal) = 0;
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 68:
+#line 1089 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
+    break;
+
+  case 69:
+#line 1090 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
+    break;
+
+  case 70:
+#line 1091 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
+    break;
+
+  case 71:
+#line 1092 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::AppendingLinkage; ;}
+    break;
+
+  case 72:
+#line 1093 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
+    break;
+
+  case 73:
+#line 1097 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
+    break;
+
+  case 74:
+#line 1098 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
+    break;
+
+  case 75:
+#line 1099 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
+    break;
+
+  case 76:
+#line 1103 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Visibility) = GlobalValue::DefaultVisibility; ;}
+    break;
+
+  case 77:
+#line 1104 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Visibility) = GlobalValue::HiddenVisibility;  ;}
+    break;
+
+  case 78:
+#line 1108 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
+    break;
+
+  case 79:
+#line 1109 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::DLLImportLinkage; ;}
+    break;
+
+  case 80:
+#line 1110 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::ExternalWeakLinkage; ;}
+    break;
+
+  case 81:
+#line 1114 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::ExternalLinkage; ;}
+    break;
+
+  case 82:
+#line 1115 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::InternalLinkage; ;}
+    break;
+
+  case 83:
+#line 1116 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::LinkOnceLinkage; ;}
+    break;
+
+  case 84:
+#line 1117 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::WeakLinkage; ;}
+    break;
+
+  case 85:
+#line 1118 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.Linkage) = GlobalValue::DLLExportLinkage; ;}
+    break;
+
+  case 86:
+#line 1121 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::C; ;}
+    break;
+
+  case 87:
+#line 1122 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::C; ;}
+    break;
+
+  case 88:
+#line 1123 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::Fast; ;}
+    break;
+
+  case 89:
+#line 1124 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::Cold; ;}
+    break;
+
+  case 90:
+#line 1125 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::X86_StdCall; ;}
+    break;
+
+  case 91:
+#line 1126 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = CallingConv::X86_FastCall; ;}
+    break;
+
+  case 92:
+#line 1127 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+                   if ((unsigned)(yyvsp[0].UInt64Val) != (yyvsp[0].UInt64Val))
+                     GEN_ERROR("Calling conv too large!");
+                   (yyval.UIntVal) = (yyvsp[0].UInt64Val);
+                  CHECK_FOR_ERROR
+                 ;}
+    break;
+
+  case 93:
+#line 1134 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = FunctionType::ZExtAttribute;      ;}
+    break;
+
+  case 94:
+#line 1135 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = FunctionType::SExtAttribute;      ;}
+    break;
+
+  case 95:
+#line 1136 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = FunctionType::InRegAttribute;     ;}
+    break;
+
+  case 96:
+#line 1137 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = FunctionType::StructRetAttribute; ;}
+    break;
+
+  case 97:
+#line 1140 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = FunctionType::NoAttributeSet; ;}
+    break;
+
+  case 98:
+#line 1141 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+                (yyval.ParamAttrs) = FunctionType::ParameterAttributes((yyvsp[-1].ParamAttrs) | (yyvsp[0].ParamAttrs));
+              ;}
+    break;
+
+  case 99:
+#line 1146 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = FunctionType::NoReturnAttribute; ;}
+    break;
+
+  case 101:
+#line 1150 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ParamAttrs) = FunctionType::NoAttributeSet; ;}
+    break;
+
+  case 102:
+#line 1151 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+                (yyval.ParamAttrs) = FunctionType::ParameterAttributes((yyvsp[-1].ParamAttrs) | (yyvsp[0].ParamAttrs));
+              ;}
+    break;
+
+  case 103:
+#line 1158 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = 0; ;}
+    break;
+
+  case 104:
+#line 1159 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+  (yyval.UIntVal) = (yyvsp[0].UInt64Val);
+  if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
     GEN_ERROR("Alignment must be a power of two!");
   CHECK_FOR_ERROR
-;
-    break;}
-case 104:
-#line 1164 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.UIntVal = 0; ;
-    break;}
-case 105:
-#line 1165 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-  yyval.UIntVal = yyvsp[0].UInt64Val;
-  if (yyval.UIntVal != 0 && !isPowerOf2_32(yyval.UIntVal))
+;}
+    break;
+
+  case 105:
+#line 1165 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.UIntVal) = 0; ;}
+    break;
+
+  case 106:
+#line 1166 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+  (yyval.UIntVal) = (yyvsp[0].UInt64Val);
+  if ((yyval.UIntVal) != 0 && !isPowerOf2_32((yyval.UIntVal)))
     GEN_ERROR("Alignment must be a power of two!");
   CHECK_FOR_ERROR
-;
-    break;}
-case 106:
-#line 1173 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-  for (unsigned i = 0, e = strlen(yyvsp[0].StrVal); i != e; ++i)
-    if (yyvsp[0].StrVal[i] == '"' || yyvsp[0].StrVal[i] == '\\')
+;}
+    break;
+
+  case 107:
+#line 1174 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+  for (unsigned i = 0, e = strlen((yyvsp[0].StrVal)); i != e; ++i)
+    if ((yyvsp[0].StrVal)[i] == '"' || (yyvsp[0].StrVal)[i] == '\\')
       GEN_ERROR("Invalid character in section name!");
-  yyval.StrVal = yyvsp[0].StrVal;
+  (yyval.StrVal) = (yyvsp[0].StrVal);
   CHECK_FOR_ERROR
-;
-    break;}
-case 107:
-#line 1181 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.StrVal = 0; ;
-    break;}
-case 108:
-#line 1182 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.StrVal = yyvsp[0].StrVal; ;
-    break;}
-case 109:
-#line 1187 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{;
-    break;}
-case 110:
-#line 1188 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{;
-    break;}
-case 111:
-#line 1189 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    CurGV->setSection(yyvsp[0].StrVal);
-    free(yyvsp[0].StrVal);
+;}
+    break;
+
+  case 108:
+#line 1182 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.StrVal) = 0; ;}
+    break;
+
+  case 109:
+#line 1183 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.StrVal) = (yyvsp[0].StrVal); ;}
+    break;
+
+  case 110:
+#line 1188 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {;}
+    break;
+
+  case 111:
+#line 1189 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {;}
+    break;
+
+  case 112:
+#line 1190 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurGV->setSection((yyvsp[0].StrVal));
+    free((yyvsp[0].StrVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 112:
-#line 1194 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (yyvsp[0].UInt64Val != 0 && !isPowerOf2_32(yyvsp[0].UInt64Val))
+  ;}
+    break;
+
+  case 113:
+#line 1195 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[0].UInt64Val) != 0 && !isPowerOf2_32((yyvsp[0].UInt64Val)))
       GEN_ERROR("Alignment must be a power of two!");
-    CurGV->setAlignment(yyvsp[0].UInt64Val);
+    CurGV->setAlignment((yyvsp[0].UInt64Val));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 117:
-#line 1210 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.TypeVal = new PATypeHolder(OpaqueType::get());
+  ;}
+    break;
+
+  case 118:
+#line 1211 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.TypeVal) = new PATypeHolder(OpaqueType::get());
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 118:
-#line 1214 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType);
+  ;}
+    break;
+
+  case 119:
+#line 1215 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.TypeVal) = new PATypeHolder((yyvsp[0].PrimType));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 119:
-#line 1218 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                             // Pointer type?
-    if (*yyvsp[-1].TypeVal == Type::LabelTy)
+  ;}
+    break;
+
+  case 120:
+#line 1219 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                             // Pointer type?
+    if (*(yyvsp[-1].TypeVal) == Type::LabelTy)
       GEN_ERROR("Cannot form a pointer to a basic block");
-    yyval.TypeVal = new PATypeHolder(HandleUpRefs(PointerType::get(*yyvsp[-1].TypeVal)));
-    delete yyvsp[-1].TypeVal;
+    (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(PointerType::get(*(yyvsp[-1].TypeVal))));
+    delete (yyvsp[-1].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 121:
+#line 1226 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {            // Named types are also simple types...
+    const Type* tmp = getTypeVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 120:
-#line 1225 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{            // Named types are also simple types...
-    const Type* tmp = getTypeVal(yyvsp[0].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.TypeVal = new PATypeHolder(tmp);
-  ;
-    break;}
-case 121:
-#line 1230 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                   // Type UpReference
-    if (yyvsp[0].UInt64Val > (uint64_t)~0U) GEN_ERROR("Value out of range!");
+    (yyval.TypeVal) = new PATypeHolder(tmp);
+  ;}
+    break;
+
+  case 122:
+#line 1231 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                   // Type UpReference
+    if ((yyvsp[0].UInt64Val) > (uint64_t)~0U) GEN_ERROR("Value out of range!");
     OpaqueType *OT = OpaqueType::get();        // Use temporary placeholder
-    UpRefs.push_back(UpRefRecord((unsigned)yyvsp[0].UInt64Val, OT));  // Add to vector...
-    yyval.TypeVal = new PATypeHolder(OT);
+    UpRefs.push_back(UpRefRecord((unsigned)(yyvsp[0].UInt64Val), OT));  // Add to vector...
+    (yyval.TypeVal) = new PATypeHolder(OT);
     UR_OUT("New Upreference!\n");
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 122:
-#line 1238 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 123:
+#line 1239 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     std::vector<const Type*> Params;
     std::vector<FunctionType::ParameterAttributes> Attrs;
-    Attrs.push_back(yyvsp[0].ParamAttrs);
-    for (TypeWithAttrsList::iterator I=yyvsp[-2].TypeWithAttrsList->begin(), E=yyvsp[-2].TypeWithAttrsList->end(); I != E; ++I) {
+    Attrs.push_back((yyvsp[0].ParamAttrs));
+    for (TypeWithAttrsList::iterator I=(yyvsp[-2].TypeWithAttrsList)->begin(), E=(yyvsp[-2].TypeWithAttrsList)->end(); I != E; ++I) {
       Params.push_back(I->Ty->get());
       if (I->Ty->get() != Type::VoidTy)
         Attrs.push_back(I->Attrs);
@@ -2771,20 +3468,21 @@
     bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
     if (isVarArg) Params.pop_back();
 
-    FunctionType *FT = FunctionType::get(*yyvsp[-4].TypeVal, Params, isVarArg, Attrs);
-    delete yyvsp[-2].TypeWithAttrsList;   // Delete the argument list
-    delete yyvsp[-4].TypeVal;   // Delete the return type handle
-    yyval.TypeVal = new PATypeHolder(HandleUpRefs(FT)); 
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 123:
-#line 1256 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+    FunctionType *FT = FunctionType::get(*(yyvsp[-4].TypeVal), Params, isVarArg, Attrs);
+    delete (yyvsp[-2].TypeWithAttrsList);   // Delete the argument list
+    delete (yyvsp[-4].TypeVal);   // Delete the return type handle
+    (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(FT)); 
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 124:
+#line 1257 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     std::vector<const Type*> Params;
     std::vector<FunctionType::ParameterAttributes> Attrs;
-    Attrs.push_back(yyvsp[0].ParamAttrs);
-    for (TypeWithAttrsList::iterator I=yyvsp[-2].TypeWithAttrsList->begin(), E=yyvsp[-2].TypeWithAttrsList->end(); I != E; ++I) {
+    Attrs.push_back((yyvsp[0].ParamAttrs));
+    for (TypeWithAttrsList::iterator I=(yyvsp[-2].TypeWithAttrsList)->begin(), E=(yyvsp[-2].TypeWithAttrsList)->end(); I != E; ++I) {
       Params.push_back(I->Ty->get());
       if (I->Ty->get() != Type::VoidTy)
         Attrs.push_back(I->Attrs);
@@ -2792,282 +3490,303 @@
     bool isVarArg = Params.size() && Params.back() == Type::VoidTy;
     if (isVarArg) Params.pop_back();
 
-    FunctionType *FT = FunctionType::get(yyvsp[-4].PrimType, Params, isVarArg, Attrs);
-    delete yyvsp[-2].TypeWithAttrsList;      // Delete the argument list
-    yyval.TypeVal = new PATypeHolder(HandleUpRefs(FT)); 
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 124:
-#line 1274 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{          // Sized array type?
-    yyval.TypeVal = new PATypeHolder(HandleUpRefs(ArrayType::get(*yyvsp[-1].TypeVal, (unsigned)yyvsp[-3].UInt64Val)));
-    delete yyvsp[-1].TypeVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 125:
-#line 1279 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{          // Packed array type?
-     const llvm::Type* ElemTy = yyvsp[-1].TypeVal->get();
-     if ((unsigned)yyvsp[-3].UInt64Val != yyvsp[-3].UInt64Val)
+    FunctionType *FT = FunctionType::get((yyvsp[-4].PrimType), Params, isVarArg, Attrs);
+    delete (yyvsp[-2].TypeWithAttrsList);      // Delete the argument list
+    (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(FT)); 
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 125:
+#line 1275 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {          // Sized array type?
+    (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(ArrayType::get(*(yyvsp[-1].TypeVal), (unsigned)(yyvsp[-3].UInt64Val))));
+    delete (yyvsp[-1].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 126:
+#line 1280 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {          // Packed array type?
+     const llvm::Type* ElemTy = (yyvsp[-1].TypeVal)->get();
+     if ((unsigned)(yyvsp[-3].UInt64Val) != (yyvsp[-3].UInt64Val))
         GEN_ERROR("Unsigned result not equal to signed result");
      if (!ElemTy->isFloatingPoint() && !ElemTy->isInteger())
         GEN_ERROR("Element type of a PackedType must be primitive");
-     if (!isPowerOf2_32(yyvsp[-3].UInt64Val))
+     if (!isPowerOf2_32((yyvsp[-3].UInt64Val)))
        GEN_ERROR("Vector length should be a power of 2!");
-     yyval.TypeVal = new PATypeHolder(HandleUpRefs(PackedType::get(*yyvsp[-1].TypeVal, (unsigned)yyvsp[-3].UInt64Val)));
-     delete yyvsp[-1].TypeVal;
+     (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(PackedType::get(*(yyvsp[-1].TypeVal), (unsigned)(yyvsp[-3].UInt64Val))));
+     delete (yyvsp[-1].TypeVal);
      CHECK_FOR_ERROR
-  ;
-    break;}
-case 126:
-#line 1291 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                        // Structure type?
+  ;}
+    break;
+
+  case 127:
+#line 1292 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                        // Structure type?
     std::vector<const Type*> Elements;
-    for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-1].TypeList->begin(),
-           E = yyvsp[-1].TypeList->end(); I != E; ++I)
+    for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-1].TypeList)->begin(),
+           E = (yyvsp[-1].TypeList)->end(); I != E; ++I)
       Elements.push_back(*I);
 
-    yyval.TypeVal = new PATypeHolder(HandleUpRefs(StructType::get(Elements)));
-    delete yyvsp[-1].TypeList;
+    (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(StructType::get(Elements)));
+    delete (yyvsp[-1].TypeList);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 127:
-#line 1301 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                                  // Empty structure type?
-    yyval.TypeVal = new PATypeHolder(StructType::get(std::vector<const Type*>()));
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 128:
-#line 1305 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 128:
+#line 1302 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                                  // Empty structure type?
+    (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>()));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 129:
+#line 1306 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     std::vector<const Type*> Elements;
-    for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-2].TypeList->begin(),
-           E = yyvsp[-2].TypeList->end(); I != E; ++I)
+    for (std::list<llvm::PATypeHolder>::iterator I = (yyvsp[-2].TypeList)->begin(),
+           E = (yyvsp[-2].TypeList)->end(); I != E; ++I)
       Elements.push_back(*I);
 
-    yyval.TypeVal = new PATypeHolder(HandleUpRefs(StructType::get(Elements, true)));
-    delete yyvsp[-2].TypeList;
+    (yyval.TypeVal) = new PATypeHolder(HandleUpRefs(StructType::get(Elements, true)));
+    delete (yyvsp[-2].TypeList);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 129:
-#line 1315 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                         // Empty structure type?
-    yyval.TypeVal = new PATypeHolder(StructType::get(std::vector<const Type*>(), true));
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 130:
-#line 1322 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ 
-    yyval.TypeWithAttrs.Ty = yyvsp[-1].TypeVal; 
-    yyval.TypeWithAttrs.Attrs = yyvsp[0].ParamAttrs; 
-  ;
-    break;}
-case 131:
-#line 1329 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 130:
+#line 1316 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                         // Empty structure type?
+    (yyval.TypeVal) = new PATypeHolder(StructType::get(std::vector<const Type*>(), true));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 131:
+#line 1323 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { 
+    (yyval.TypeWithAttrs).Ty = (yyvsp[-1].TypeVal); 
+    (yyval.TypeWithAttrs).Attrs = (yyvsp[0].ParamAttrs); 
+  ;}
+    break;
+
+  case 132:
+#line 1330 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[0].TypeVal)->getDescription());
-    if (!(*yyvsp[0].TypeVal)->isFirstClassType())
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
+    if (!(*(yyvsp[0].TypeVal))->isFirstClassType())
       GEN_ERROR("LLVM functions cannot return aggregate types!");
-    yyval.TypeVal = yyvsp[0].TypeVal;
-  ;
-    break;}
-case 132:
-#line 1336 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.TypeVal = new PATypeHolder(Type::VoidTy);
-  ;
-    break;}
-case 133:
-#line 1341 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.TypeWithAttrsList = new TypeWithAttrsList();
-    yyval.TypeWithAttrsList->push_back(yyvsp[0].TypeWithAttrs);
+    (yyval.TypeVal) = (yyvsp[0].TypeVal);
+  ;}
+    break;
+
+  case 133:
+#line 1337 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.TypeVal) = new PATypeHolder(Type::VoidTy);
+  ;}
+    break;
+
+  case 134:
+#line 1342 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
+    (yyval.TypeWithAttrsList)->push_back((yyvsp[0].TypeWithAttrs));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 134:
-#line 1346 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    (yyval.TypeWithAttrsList=yyvsp[-2].TypeWithAttrsList)->push_back(yyvsp[0].TypeWithAttrs);
+  ;}
+    break;
+
+  case 135:
+#line 1347 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    ((yyval.TypeWithAttrsList)=(yyvsp[-2].TypeWithAttrsList))->push_back((yyvsp[0].TypeWithAttrs));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 136:
-#line 1354 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.TypeWithAttrsList=yyvsp[-2].TypeWithAttrsList;
+  ;}
+    break;
+
+  case 137:
+#line 1355 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.TypeWithAttrsList)=(yyvsp[-2].TypeWithAttrsList);
     TypeWithAttrs TWA; TWA.Attrs = FunctionType::NoAttributeSet;
     TWA.Ty = new PATypeHolder(Type::VoidTy);
-    yyval.TypeWithAttrsList->push_back(TWA);
+    (yyval.TypeWithAttrsList)->push_back(TWA);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 137:
-#line 1361 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.TypeWithAttrsList = new TypeWithAttrsList;
+  ;}
+    break;
+
+  case 138:
+#line 1362 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.TypeWithAttrsList) = new TypeWithAttrsList;
     TypeWithAttrs TWA; TWA.Attrs = FunctionType::NoAttributeSet;
     TWA.Ty = new PATypeHolder(Type::VoidTy);
-    yyval.TypeWithAttrsList->push_back(TWA);
+    (yyval.TypeWithAttrsList)->push_back(TWA);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 138:
-#line 1368 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.TypeWithAttrsList = new TypeWithAttrsList();
+  ;}
+    break;
+
+  case 139:
+#line 1369 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.TypeWithAttrsList) = new TypeWithAttrsList();
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 139:
-#line 1376 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.TypeList = new std::list<PATypeHolder>();
-    yyval.TypeList->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal;
+  ;}
+    break;
+
+  case 140:
+#line 1377 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.TypeList) = new std::list<PATypeHolder>();
+    (yyval.TypeList)->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 140:
-#line 1381 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    (yyval.TypeList=yyvsp[-2].TypeList)->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal;
+  ;}
+    break;
+
+  case 141:
+#line 1382 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    ((yyval.TypeList)=(yyvsp[-2].TypeList))->push_back(*(yyvsp[0].TypeVal)); delete (yyvsp[0].TypeVal);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 141:
-#line 1392 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ // Nonempty unsized arr
+  ;}
+    break;
+
+  case 142:
+#line 1393 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { // Nonempty unsized arr
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-3].TypeVal)->getDescription());
-    const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-3].TypeVal->get());
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
+    const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-3].TypeVal)->get());
     if (ATy == 0)
       GEN_ERROR("Cannot make array constant with type: '" + 
-                     (*yyvsp[-3].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-3].TypeVal))->getDescription() + "'!");
     const Type *ETy = ATy->getElementType();
     int NumElements = ATy->getNumElements();
 
     // Verify that we have the correct size...
-    if (NumElements != -1 && NumElements != (int)yyvsp[-1].ConstVector->size())
+    if (NumElements != -1 && NumElements != (int)(yyvsp[-1].ConstVector)->size())
       GEN_ERROR("Type mismatch: constant sized array initialized with " +
-                     utostr(yyvsp[-1].ConstVector->size()) +  " arguments, but has size of " + 
+                     utostr((yyvsp[-1].ConstVector)->size()) +  " arguments, but has size of " + 
                      itostr(NumElements) + "!");
 
     // Verify all elements are correct type!
-    for (unsigned i = 0; i < yyvsp[-1].ConstVector->size(); i++) {
-      if (ETy != (*yyvsp[-1].ConstVector)[i]->getType())
+    for (unsigned i = 0; i < (yyvsp[-1].ConstVector)->size(); i++) {
+      if (ETy != (*(yyvsp[-1].ConstVector))[i]->getType())
         GEN_ERROR("Element #" + utostr(i) + " is not of type '" + 
                        ETy->getDescription() +"' as required!\nIt is of type '"+
-                       (*yyvsp[-1].ConstVector)[i]->getType()->getDescription() + "'.");
+                       (*(yyvsp[-1].ConstVector))[i]->getType()->getDescription() + "'.");
     }
 
-    yyval.ConstVal = ConstantArray::get(ATy, *yyvsp[-1].ConstVector);
-    delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector;
+    (yyval.ConstVal) = ConstantArray::get(ATy, *(yyvsp[-1].ConstVector));
+    delete (yyvsp[-3].TypeVal); delete (yyvsp[-1].ConstVector);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 142:
-#line 1420 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 143:
+#line 1421 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-2].TypeVal)->getDescription());
-    const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-2].TypeVal->get());
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
+    const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal)->get());
     if (ATy == 0)
       GEN_ERROR("Cannot make array constant with type: '" + 
-                     (*yyvsp[-2].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-2].TypeVal))->getDescription() + "'!");
 
     int NumElements = ATy->getNumElements();
     if (NumElements != -1 && NumElements != 0) 
       GEN_ERROR("Type mismatch: constant sized array initialized with 0"
                      " arguments, but has size of " + itostr(NumElements) +"!");
-    yyval.ConstVal = ConstantArray::get(ATy, std::vector<Constant*>());
-    delete yyvsp[-2].TypeVal;
+    (yyval.ConstVal) = ConstantArray::get(ATy, std::vector<Constant*>());
+    delete (yyvsp[-2].TypeVal);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 143:
-#line 1436 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 144:
+#line 1437 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-2].TypeVal)->getDescription());
-    const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-2].TypeVal->get());
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
+    const ArrayType *ATy = dyn_cast<ArrayType>((yyvsp[-2].TypeVal)->get());
     if (ATy == 0)
       GEN_ERROR("Cannot make array constant with type: '" + 
-                     (*yyvsp[-2].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-2].TypeVal))->getDescription() + "'!");
 
     int NumElements = ATy->getNumElements();
     const Type *ETy = ATy->getElementType();
-    char *EndStr = UnEscapeLexed(yyvsp[0].StrVal, true);
-    if (NumElements != -1 && NumElements != (EndStr-yyvsp[0].StrVal))
+    char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
+    if (NumElements != -1 && NumElements != (EndStr-(yyvsp[0].StrVal)))
       GEN_ERROR("Can't build string constant of size " + 
-                     itostr((int)(EndStr-yyvsp[0].StrVal)) +
+                     itostr((int)(EndStr-(yyvsp[0].StrVal))) +
                      " when array has size " + itostr(NumElements) + "!");
     std::vector<Constant*> Vals;
     if (ETy == Type::Int8Ty) {
-      for (unsigned char *C = (unsigned char *)yyvsp[0].StrVal; 
+      for (unsigned char *C = (unsigned char *)(yyvsp[0].StrVal); 
         C != (unsigned char*)EndStr; ++C)
       Vals.push_back(ConstantInt::get(ETy, *C));
     } else {
-      free(yyvsp[0].StrVal);
+      free((yyvsp[0].StrVal));
       GEN_ERROR("Cannot build string arrays of non byte sized elements!");
     }
-    free(yyvsp[0].StrVal);
-    yyval.ConstVal = ConstantArray::get(ATy, Vals);
-    delete yyvsp[-2].TypeVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 144:
-#line 1465 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ // Nonempty unsized arr
+    free((yyvsp[0].StrVal));
+    (yyval.ConstVal) = ConstantArray::get(ATy, Vals);
+    delete (yyvsp[-2].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 145:
+#line 1466 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { // Nonempty unsized arr
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-3].TypeVal)->getDescription());
-    const PackedType *PTy = dyn_cast<PackedType>(yyvsp[-3].TypeVal->get());
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
+    const PackedType *PTy = dyn_cast<PackedType>((yyvsp[-3].TypeVal)->get());
     if (PTy == 0)
       GEN_ERROR("Cannot make packed constant with type: '" + 
-                     (*yyvsp[-3].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-3].TypeVal))->getDescription() + "'!");
     const Type *ETy = PTy->getElementType();
     int NumElements = PTy->getNumElements();
 
     // Verify that we have the correct size...
-    if (NumElements != -1 && NumElements != (int)yyvsp[-1].ConstVector->size())
+    if (NumElements != -1 && NumElements != (int)(yyvsp[-1].ConstVector)->size())
       GEN_ERROR("Type mismatch: constant sized packed initialized with " +
-                     utostr(yyvsp[-1].ConstVector->size()) +  " arguments, but has size of " + 
+                     utostr((yyvsp[-1].ConstVector)->size()) +  " arguments, but has size of " + 
                      itostr(NumElements) + "!");
 
     // Verify all elements are correct type!
-    for (unsigned i = 0; i < yyvsp[-1].ConstVector->size(); i++) {
-      if (ETy != (*yyvsp[-1].ConstVector)[i]->getType())
+    for (unsigned i = 0; i < (yyvsp[-1].ConstVector)->size(); i++) {
+      if (ETy != (*(yyvsp[-1].ConstVector))[i]->getType())
         GEN_ERROR("Element #" + utostr(i) + " is not of type '" + 
            ETy->getDescription() +"' as required!\nIt is of type '"+
-           (*yyvsp[-1].ConstVector)[i]->getType()->getDescription() + "'.");
+           (*(yyvsp[-1].ConstVector))[i]->getType()->getDescription() + "'.");
     }
 
-    yyval.ConstVal = ConstantPacked::get(PTy, *yyvsp[-1].ConstVector);
-    delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector;
+    (yyval.ConstVal) = ConstantPacked::get(PTy, *(yyvsp[-1].ConstVector));
+    delete (yyvsp[-3].TypeVal); delete (yyvsp[-1].ConstVector);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 145:
-#line 1493 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    const StructType *STy = dyn_cast<StructType>(yyvsp[-3].TypeVal->get());
+  ;}
+    break;
+
+  case 146:
+#line 1494 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    const StructType *STy = dyn_cast<StructType>((yyvsp[-3].TypeVal)->get());
     if (STy == 0)
       GEN_ERROR("Cannot make struct constant with type: '" + 
-                     (*yyvsp[-3].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-3].TypeVal))->getDescription() + "'!");
 
-    if (yyvsp[-1].ConstVector->size() != STy->getNumContainedTypes())
+    if ((yyvsp[-1].ConstVector)->size() != STy->getNumContainedTypes())
       GEN_ERROR("Illegal number of initializers for structure type!");
 
     // Check to ensure that constants are compatible with the type initializer!
-    for (unsigned i = 0, e = yyvsp[-1].ConstVector->size(); i != e; ++i)
-      if ((*yyvsp[-1].ConstVector)[i]->getType() != STy->getElementType(i))
+    for (unsigned i = 0, e = (yyvsp[-1].ConstVector)->size(); i != e; ++i)
+      if ((*(yyvsp[-1].ConstVector))[i]->getType() != STy->getElementType(i))
         GEN_ERROR("Expected type '" +
                        STy->getElementType(i)->getDescription() +
                        "' for element #" + utostr(i) +
@@ -3077,20 +3796,21 @@
     if (STy->isPacked())
       GEN_ERROR("Unpacked Initializer to packed type '" + STy->getDescription() + "'");
 
-    yyval.ConstVal = ConstantStruct::get(STy, *yyvsp[-1].ConstVector);
-    delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector;
+    (yyval.ConstVal) = ConstantStruct::get(STy, *(yyvsp[-1].ConstVector));
+    delete (yyvsp[-3].TypeVal); delete (yyvsp[-1].ConstVector);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 146:
-#line 1518 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 147:
+#line 1519 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-2].TypeVal)->getDescription());
-    const StructType *STy = dyn_cast<StructType>(yyvsp[-2].TypeVal->get());
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
+    const StructType *STy = dyn_cast<StructType>((yyvsp[-2].TypeVal)->get());
     if (STy == 0)
       GEN_ERROR("Cannot make struct constant with type: '" + 
-                     (*yyvsp[-2].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-2].TypeVal))->getDescription() + "'!");
 
     if (STy->getNumContainedTypes() != 0)
       GEN_ERROR("Illegal number of initializers for structure type!");
@@ -3099,25 +3819,26 @@
     if (STy->isPacked())
       GEN_ERROR("Unpacked Initializer to packed type '" + STy->getDescription() + "'");
 
-    yyval.ConstVal = ConstantStruct::get(STy, std::vector<Constant*>());
-    delete yyvsp[-2].TypeVal;
+    (yyval.ConstVal) = ConstantStruct::get(STy, std::vector<Constant*>());
+    delete (yyvsp[-2].TypeVal);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 147:
-#line 1537 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    const StructType *STy = dyn_cast<StructType>(yyvsp[-5].TypeVal->get());
+  ;}
+    break;
+
+  case 148:
+#line 1538 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    const StructType *STy = dyn_cast<StructType>((yyvsp[-5].TypeVal)->get());
     if (STy == 0)
       GEN_ERROR("Cannot make struct constant with type: '" + 
-                     (*yyvsp[-5].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-5].TypeVal))->getDescription() + "'!");
 
-    if (yyvsp[-2].ConstVector->size() != STy->getNumContainedTypes())
+    if ((yyvsp[-2].ConstVector)->size() != STy->getNumContainedTypes())
       GEN_ERROR("Illegal number of initializers for structure type!");
 
     // Check to ensure that constants are compatible with the type initializer!
-    for (unsigned i = 0, e = yyvsp[-2].ConstVector->size(); i != e; ++i)
-      if ((*yyvsp[-2].ConstVector)[i]->getType() != STy->getElementType(i))
+    for (unsigned i = 0, e = (yyvsp[-2].ConstVector)->size(); i != e; ++i)
+      if ((*(yyvsp[-2].ConstVector))[i]->getType() != STy->getElementType(i))
         GEN_ERROR("Expected type '" +
                        STy->getElementType(i)->getDescription() +
                        "' for element #" + utostr(i) +
@@ -3127,20 +3848,21 @@
     if (!STy->isPacked())
       GEN_ERROR("Packed Initializer to unpacked type '" + STy->getDescription() + "'");
 
-    yyval.ConstVal = ConstantStruct::get(STy, *yyvsp[-2].ConstVector);
-    delete yyvsp[-5].TypeVal; delete yyvsp[-2].ConstVector;
+    (yyval.ConstVal) = ConstantStruct::get(STy, *(yyvsp[-2].ConstVector));
+    delete (yyvsp[-5].TypeVal); delete (yyvsp[-2].ConstVector);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 148:
-#line 1562 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 149:
+#line 1563 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-4].TypeVal)->getDescription());
-    const StructType *STy = dyn_cast<StructType>(yyvsp[-4].TypeVal->get());
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
+    const StructType *STy = dyn_cast<StructType>((yyvsp[-4].TypeVal)->get());
     if (STy == 0)
       GEN_ERROR("Cannot make struct constant with type: '" + 
-                     (*yyvsp[-4].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-4].TypeVal))->getDescription() + "'!");
 
     if (STy->getNumContainedTypes() != 0)
       GEN_ERROR("Illegal number of initializers for structure type!");
@@ -3149,42 +3871,45 @@
     if (!STy->isPacked())
       GEN_ERROR("Packed Initializer to unpacked type '" + STy->getDescription() + "'");
 
-    yyval.ConstVal = ConstantStruct::get(STy, std::vector<Constant*>());
-    delete yyvsp[-4].TypeVal;
+    (yyval.ConstVal) = ConstantStruct::get(STy, std::vector<Constant*>());
+    delete (yyvsp[-4].TypeVal);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 149:
-#line 1581 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 150:
+#line 1582 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-1].TypeVal)->getDescription());
-    const PointerType *PTy = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
+    const PointerType *PTy = dyn_cast<PointerType>((yyvsp[-1].TypeVal)->get());
     if (PTy == 0)
       GEN_ERROR("Cannot make null pointer constant with type: '" + 
-                     (*yyvsp[-1].TypeVal)->getDescription() + "'!");
+                     (*(yyvsp[-1].TypeVal))->getDescription() + "'!");
 
-    yyval.ConstVal = ConstantPointerNull::get(PTy);
-    delete yyvsp[-1].TypeVal;
+    (yyval.ConstVal) = ConstantPointerNull::get(PTy);
+    delete (yyvsp[-1].TypeVal);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 150:
-#line 1593 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 151:
+#line 1594 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-1].TypeVal)->getDescription());
-    yyval.ConstVal = UndefValue::get(yyvsp[-1].TypeVal->get());
-    delete yyvsp[-1].TypeVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 151:
-#line 1600 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
+    (yyval.ConstVal) = UndefValue::get((yyvsp[-1].TypeVal)->get());
+    delete (yyvsp[-1].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 152:
+#line 1601 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-1].TypeVal)->getDescription());
-    const PointerType *Ty = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
+    const PointerType *Ty = dyn_cast<PointerType>((yyvsp[-1].TypeVal)->get());
     if (Ty == 0)
       GEN_ERROR("Global const reference must be a pointer type!");
 
@@ -3198,7 +3923,7 @@
     Function *SavedCurFn = CurFun.CurrentFunction;
     CurFun.CurrentFunction = 0;
 
-    Value *V = getValNonImprovising(Ty, yyvsp[0].ValIDVal);
+    Value *V = getValNonImprovising(Ty, (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
 
     CurFun.CurrentFunction = SavedCurFn;
@@ -3213,16 +3938,16 @@
 
       // First check to see if the forward references value is already created!
       PerModuleInfo::GlobalRefsType::iterator I =
-        CurModule.GlobalRefs.find(std::make_pair(PT, yyvsp[0].ValIDVal));
+        CurModule.GlobalRefs.find(std::make_pair(PT, (yyvsp[0].ValIDVal)));
     
       if (I != CurModule.GlobalRefs.end()) {
         V = I->second;             // Placeholder already exists, use it...
-        yyvsp[0].ValIDVal.destroy();
+        (yyvsp[0].ValIDVal).destroy();
       } else {
         std::string Name;
-        if (yyvsp[0].ValIDVal.Type == ValID::GlobalName)
-          Name = yyvsp[0].ValIDVal.Name;
-        else if (yyvsp[0].ValIDVal.Type != ValID::GlobalID)
+        if ((yyvsp[0].ValIDVal).Type == ValID::GlobalName)
+          Name = (yyvsp[0].ValIDVal).Name;
+        else if ((yyvsp[0].ValIDVal).Type != ValID::GlobalID)
           GEN_ERROR("Invalid reference to global");
 
         // Create the forward referenced global.
@@ -3238,282 +3963,299 @@
         }
 
         // Keep track of the fact that we have a forward ref to recycle it
-        CurModule.GlobalRefs.insert(std::make_pair(std::make_pair(PT, yyvsp[0].ValIDVal), GV));
+        CurModule.GlobalRefs.insert(std::make_pair(std::make_pair(PT, (yyvsp[0].ValIDVal)), GV));
         V = GV;
       }
     }
 
-    yyval.ConstVal = cast<GlobalValue>(V);
-    delete yyvsp[-1].TypeVal;            // Free the type handle
+    (yyval.ConstVal) = cast<GlobalValue>(V);
+    delete (yyvsp[-1].TypeVal);            // Free the type handle
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 152:
-#line 1666 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 153:
+#line 1667 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-1].TypeVal)->getDescription());
-    if (yyvsp[-1].TypeVal->get() != yyvsp[0].ConstVal->getType())
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
+    if ((yyvsp[-1].TypeVal)->get() != (yyvsp[0].ConstVal)->getType())
       GEN_ERROR("Mismatched types for constant expression: " + 
-        (*yyvsp[-1].TypeVal)->getDescription() + " and " + yyvsp[0].ConstVal->getType()->getDescription());
-    yyval.ConstVal = yyvsp[0].ConstVal;
-    delete yyvsp[-1].TypeVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 153:
-#line 1676 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+        (*(yyvsp[-1].TypeVal))->getDescription() + " and " + (yyvsp[0].ConstVal)->getType()->getDescription());
+    (yyval.ConstVal) = (yyvsp[0].ConstVal);
+    delete (yyvsp[-1].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 154:
+#line 1677 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-1].TypeVal)->getDescription());
-    const Type *Ty = yyvsp[-1].TypeVal->get();
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
+    const Type *Ty = (yyvsp[-1].TypeVal)->get();
     if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty))
       GEN_ERROR("Cannot create a null initialized value of this type!");
-    yyval.ConstVal = Constant::getNullValue(Ty);
-    delete yyvsp[-1].TypeVal;
+    (yyval.ConstVal) = Constant::getNullValue(Ty);
+    delete (yyvsp[-1].TypeVal);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 154:
-#line 1686 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{      // integral constants
-    if (!ConstantInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].SInt64Val))
+  ;}
+    break;
+
+  case 155:
+#line 1687 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {      // integral constants
+    if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val)))
       GEN_ERROR("Constant value doesn't fit in type!");
-    yyval.ConstVal = ConstantInt::get(yyvsp[-1].PrimType, yyvsp[0].SInt64Val);
+    (yyval.ConstVal) = ConstantInt::get((yyvsp[-1].PrimType), (yyvsp[0].SInt64Val));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 155:
-#line 1692 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{      // integral constants
-    if (!ConstantInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].UInt64Val))
+  ;}
+    break;
+
+  case 156:
+#line 1693 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {      // integral constants
+    if (!ConstantInt::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val)))
       GEN_ERROR("Constant value doesn't fit in type!");
-    yyval.ConstVal = ConstantInt::get(yyvsp[-1].PrimType, yyvsp[0].UInt64Val);
+    (yyval.ConstVal) = ConstantInt::get((yyvsp[-1].PrimType), (yyvsp[0].UInt64Val));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 157:
+#line 1699 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                      // Boolean constants
+    assert(cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth() == 1 && "Not Bool?");
+    (yyval.ConstVal) = ConstantInt::getTrue();
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 158:
+#line 1704 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                     // Boolean constants
+    assert(cast<IntegerType>((yyvsp[-1].PrimType))->getBitWidth() == 1 && "Not Bool?");
+    (yyval.ConstVal) = ConstantInt::getFalse();
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 156:
-#line 1698 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                      // Boolean constants
-    assert(cast<IntegerType>(yyvsp[-1].PrimType)->getBitWidth() == 1 && "Not Bool?");
-    yyval.ConstVal = ConstantInt::getTrue();
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 157:
-#line 1703 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                     // Boolean constants
-    assert(cast<IntegerType>(yyvsp[-1].PrimType)->getBitWidth() == 1 && "Not Bool?");
-    yyval.ConstVal = ConstantInt::getFalse();
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 158:
-#line 1708 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                   // Float & Double constants
-    if (!ConstantFP::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].FPVal))
+  ;}
+    break;
+
+  case 159:
+#line 1709 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                   // Float & Double constants
+    if (!ConstantFP::isValueValidForType((yyvsp[-1].PrimType), (yyvsp[0].FPVal)))
       GEN_ERROR("Floating point constant invalid for type!!");
-    yyval.ConstVal = ConstantFP::get(yyvsp[-1].PrimType, yyvsp[0].FPVal);
+    (yyval.ConstVal) = ConstantFP::get((yyvsp[-1].PrimType), (yyvsp[0].FPVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 159:
-#line 1716 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 160:
+#line 1717 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-1].TypeVal)->getDescription());
-    Constant *Val = yyvsp[-3].ConstVal;
-    const Type *DestTy = yyvsp[-1].TypeVal->get();
-    if (!CastInst::castIsValid(yyvsp[-5].CastOpVal, yyvsp[-3].ConstVal, DestTy))
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
+    Constant *Val = (yyvsp[-3].ConstVal);
+    const Type *DestTy = (yyvsp[-1].TypeVal)->get();
+    if (!CastInst::castIsValid((yyvsp[-5].CastOpVal), (yyvsp[-3].ConstVal), DestTy))
       GEN_ERROR("invalid cast opcode for cast from '" +
                 Val->getType()->getDescription() + "' to '" +
                 DestTy->getDescription() + "'!"); 
-    yyval.ConstVal = ConstantExpr::getCast(yyvsp[-5].CastOpVal, yyvsp[-3].ConstVal, DestTy);
-    delete yyvsp[-1].TypeVal;
-  ;
-    break;}
-case 160:
-#line 1728 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (!isa<PointerType>(yyvsp[-2].ConstVal->getType()))
+    (yyval.ConstVal) = ConstantExpr::getCast((yyvsp[-5].CastOpVal), (yyvsp[-3].ConstVal), DestTy);
+    delete (yyvsp[-1].TypeVal);
+  ;}
+    break;
+
+  case 161:
+#line 1729 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (!isa<PointerType>((yyvsp[-2].ConstVal)->getType()))
       GEN_ERROR("GetElementPtr requires a pointer operand!");
 
     const Type *IdxTy =
-      GetElementPtrInst::getIndexedType(yyvsp[-2].ConstVal->getType(), *yyvsp[-1].ValueList, true);
+      GetElementPtrInst::getIndexedType((yyvsp[-2].ConstVal)->getType(), *(yyvsp[-1].ValueList), true);
     if (!IdxTy)
       GEN_ERROR("Index list invalid for constant getelementptr!");
 
     SmallVector<Constant*, 8> IdxVec;
-    for (unsigned i = 0, e = yyvsp[-1].ValueList->size(); i != e; ++i)
-      if (Constant *C = dyn_cast<Constant>((*yyvsp[-1].ValueList)[i]))
+    for (unsigned i = 0, e = (yyvsp[-1].ValueList)->size(); i != e; ++i)
+      if (Constant *C = dyn_cast<Constant>((*(yyvsp[-1].ValueList))[i]))
         IdxVec.push_back(C);
       else
         GEN_ERROR("Indices to constant getelementptr must be constants!");
 
-    delete yyvsp[-1].ValueList;
+    delete (yyvsp[-1].ValueList);
 
-    yyval.ConstVal = ConstantExpr::getGetElementPtr(yyvsp[-2].ConstVal, &IdxVec[0], IdxVec.size());
+    (yyval.ConstVal) = ConstantExpr::getGetElementPtr((yyvsp[-2].ConstVal), &IdxVec[0], IdxVec.size());
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 161:
-#line 1749 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (yyvsp[-5].ConstVal->getType() != Type::Int1Ty)
+  ;}
+    break;
+
+  case 162:
+#line 1750 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-5].ConstVal)->getType() != Type::Int1Ty)
       GEN_ERROR("Select condition must be of boolean type!");
-    if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
+    if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("Select operand types must match!");
-    yyval.ConstVal = ConstantExpr::getSelect(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
+    (yyval.ConstVal) = ConstantExpr::getSelect((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 162:
-#line 1757 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
+  ;}
+    break;
+
+  case 163:
+#line 1758 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("Binary operator types must match!");
     CHECK_FOR_ERROR;
-    yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
-  ;
-    break;}
-case 163:
-#line 1763 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
+    (yyval.ConstVal) = ConstantExpr::get((yyvsp[-5].BinaryOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
+  ;}
+    break;
+
+  case 164:
+#line 1764 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("Logical operator types must match!");
-    if (!yyvsp[-3].ConstVal->getType()->isInteger()) {
-      if (!isa<PackedType>(yyvsp[-3].ConstVal->getType()) || 
-          !cast<PackedType>(yyvsp[-3].ConstVal->getType())->getElementType()->isInteger())
+    if (!(yyvsp[-3].ConstVal)->getType()->isInteger()) {
+      if (Instruction::isShift((yyvsp[-5].BinaryOpVal)) || !isa<PackedType>((yyvsp[-3].ConstVal)->getType()) || 
+          !cast<PackedType>((yyvsp[-3].ConstVal)->getType())->getElementType()->isInteger())
         GEN_ERROR("Logical operator requires integral operands!");
     }
-    yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
+    (yyval.ConstVal) = ConstantExpr::get((yyvsp[-5].BinaryOpVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 164:
-#line 1774 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
+  ;}
+    break;
+
+  case 165:
+#line 1775 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("icmp operand types must match!");
-    yyval.ConstVal = ConstantExpr::getICmp(yyvsp[-5].IPredicate, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
-  ;
-    break;}
-case 165:
-#line 1779 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
+    (yyval.ConstVal) = ConstantExpr::getICmp((yyvsp[-5].IPredicate), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
+  ;}
+    break;
+
+  case 166:
+#line 1780 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-3].ConstVal)->getType() != (yyvsp[-1].ConstVal)->getType())
       GEN_ERROR("fcmp operand types must match!");
-    yyval.ConstVal = ConstantExpr::getFCmp(yyvsp[-5].FPredicate, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
-  ;
-    break;}
-case 166:
-#line 1784 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (yyvsp[-1].ConstVal->getType() != Type::Int8Ty)
-      GEN_ERROR("Shift count for shift constant must be i8 type!");
-    if (!yyvsp[-3].ConstVal->getType()->isInteger())
-      GEN_ERROR("Shift constant expression requires integer operand!");
-    CHECK_FOR_ERROR;
-    yyval.ConstVal = ConstantExpr::get(yyvsp[-5].OtherOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 167:
-#line 1793 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (!ExtractElementInst::isValidOperands(yyvsp[-3].ConstVal, yyvsp[-1].ConstVal))
+    (yyval.ConstVal) = ConstantExpr::getFCmp((yyvsp[-5].FPredicate), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
+  ;}
+    break;
+
+  case 167:
+#line 1785 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (!ExtractElementInst::isValidOperands((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid extractelement operands!");
-    yyval.ConstVal = ConstantExpr::getExtractElement(yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
+    (yyval.ConstVal) = ConstantExpr::getExtractElement((yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 168:
-#line 1799 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (!InsertElementInst::isValidOperands(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal))
+  ;}
+    break;
+
+  case 168:
+#line 1791 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (!InsertElementInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid insertelement operands!");
-    yyval.ConstVal = ConstantExpr::getInsertElement(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
+    (yyval.ConstVal) = ConstantExpr::getInsertElement((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 169:
-#line 1805 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (!ShuffleVectorInst::isValidOperands(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal))
+  ;}
+    break;
+
+  case 169:
+#line 1797 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (!ShuffleVectorInst::isValidOperands((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal)))
       GEN_ERROR("Invalid shufflevector operands!");
-    yyval.ConstVal = ConstantExpr::getShuffleVector(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
+    (yyval.ConstVal) = ConstantExpr::getShuffleVector((yyvsp[-5].ConstVal), (yyvsp[-3].ConstVal), (yyvsp[-1].ConstVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 170:
-#line 1814 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    (yyval.ConstVector = yyvsp[-2].ConstVector)->push_back(yyvsp[0].ConstVal);
+  ;}
+    break;
+
+  case 170:
+#line 1806 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    ((yyval.ConstVector) = (yyvsp[-2].ConstVector))->push_back((yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 171:
-#line 1818 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ConstVector = new std::vector<Constant*>();
-    yyval.ConstVector->push_back(yyvsp[0].ConstVal);
+  ;}
+    break;
+
+  case 171:
+#line 1810 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ConstVector) = new std::vector<Constant*>();
+    (yyval.ConstVector)->push_back((yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 172:
-#line 1826 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.BoolVal = false; ;
-    break;}
-case 173:
-#line 1826 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.BoolVal = true; ;
-    break;}
-case 174:
-#line 1837 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ModuleVal = ParserResult = CurModule.CurrentModule;
+  ;}
+    break;
+
+  case 172:
+#line 1818 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.BoolVal) = false; ;}
+    break;
+
+  case 173:
+#line 1818 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.BoolVal) = true; ;}
+    break;
+
+  case 174:
+#line 1829 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
     CurModule.ModuleDone();
     CHECK_FOR_ERROR;
-  ;
-    break;}
-case 175:
-#line 1842 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ModuleVal = ParserResult = CurModule.CurrentModule;
+  ;}
+    break;
+
+  case 175:
+#line 1834 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ModuleVal) = ParserResult = CurModule.CurrentModule;
     CurModule.ModuleDone();
     CHECK_FOR_ERROR;
-  ;
-    break;}
-case 178:
-#line 1855 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ CurFun.isDeclare = false; ;
-    break;}
-case 179:
-#line 1855 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 178:
+#line 1847 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { CurFun.isDeclare = false; ;}
+    break;
+
+  case 179:
+#line 1847 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     CurFun.FunctionDone();
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 180:
-#line 1859 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ CurFun.isDeclare = true; ;
-    break;}
-case 181:
-#line 1859 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 180:
+#line 1851 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { CurFun.isDeclare = true; ;}
+    break;
+
+  case 181:
+#line 1851 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 182:
-#line 1862 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 182:
+#line 1854 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 183:
-#line 1865 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 183:
+#line 1857 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     // Emit an error if there are any unresolved types left.
     if (!CurModule.LateResolveTypes.empty()) {
       const ValID &DID = CurModule.LateResolveTypes.begin()->first;
@@ -3524,13 +4266,14 @@
       }
     }
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 184:
-#line 1877 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 184:
+#line 1869 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[0].TypeVal)->getDescription());
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
     // Eagerly resolve types.  This is not an optimization, this is a
     // requirement that is due to the fact that we could have this:
     //
@@ -3540,226 +4283,248 @@
     // If types are not resolved eagerly, then the two types will not be
     // determined to be the same type!
     //
-    ResolveTypeTo(yyvsp[-2].StrVal, *yyvsp[0].TypeVal);
+    ResolveTypeTo((yyvsp[-2].StrVal), *(yyvsp[0].TypeVal));
 
-    if (!setTypeName(*yyvsp[0].TypeVal, yyvsp[-2].StrVal) && !yyvsp[-2].StrVal) {
+    if (!setTypeName(*(yyvsp[0].TypeVal), (yyvsp[-2].StrVal)) && !(yyvsp[-2].StrVal)) {
       CHECK_FOR_ERROR
       // If this is a named type that is not a redefinition, add it to the slot
       // table.
-      CurModule.Types.push_back(*yyvsp[0].TypeVal);
+      CurModule.Types.push_back(*(yyvsp[0].TypeVal));
     }
 
-    delete yyvsp[0].TypeVal;
+    delete (yyvsp[0].TypeVal);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 185:
-#line 1901 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    ResolveTypeTo(yyvsp[-2].StrVal, yyvsp[0].PrimType);
+  ;}
+    break;
+
+  case 185:
+#line 1893 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    ResolveTypeTo((yyvsp[-2].StrVal), (yyvsp[0].PrimType));
 
-    if (!setTypeName(yyvsp[0].PrimType, yyvsp[-2].StrVal) && !yyvsp[-2].StrVal) {
+    if (!setTypeName((yyvsp[0].PrimType), (yyvsp[-2].StrVal)) && !(yyvsp[-2].StrVal)) {
       CHECK_FOR_ERROR
       // If this is a named type that is not a redefinition, add it to the slot
       // table.
-      CurModule.Types.push_back(yyvsp[0].PrimType);
+      CurModule.Types.push_back((yyvsp[0].PrimType));
     }
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 186:
-#line 1912 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ 
+  ;}
+    break;
+
+  case 186:
+#line 1904 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { 
     /* "Externally Visible" Linkage */
-    if (yyvsp[0].ConstVal == 0) 
+    if ((yyvsp[0].ConstVal) == 0) 
       GEN_ERROR("Global value initializer is not a constant!");
-    CurGV = ParseGlobalVariable(yyvsp[-3].StrVal, GlobalValue::ExternalLinkage,
-                                yyvsp[-2].Visibility, yyvsp[-1].BoolVal, yyvsp[0].ConstVal->getType(), yyvsp[0].ConstVal);
+    CurGV = ParseGlobalVariable((yyvsp[-3].StrVal), GlobalValue::ExternalLinkage,
+                                (yyvsp[-2].Visibility), (yyvsp[-1].BoolVal), (yyvsp[0].ConstVal)->getType(), (yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 187:
-#line 1919 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 187:
+#line 1911 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     CurGV = 0;
-  ;
-    break;}
-case 188:
-#line 1922 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (yyvsp[0].ConstVal == 0) 
+  ;}
+    break;
+
+  case 188:
+#line 1914 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[0].ConstVal) == 0) 
       GEN_ERROR("Global value initializer is not a constant!");
-    CurGV = ParseGlobalVariable(yyvsp[-4].StrVal, yyvsp[-3].Linkage, yyvsp[-2].Visibility, yyvsp[-1].BoolVal, yyvsp[0].ConstVal->getType(), yyvsp[0].ConstVal);
+    CurGV = ParseGlobalVariable((yyvsp[-4].StrVal), (yyvsp[-3].Linkage), (yyvsp[-2].Visibility), (yyvsp[-1].BoolVal), (yyvsp[0].ConstVal)->getType(), (yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 189:
-#line 1927 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 189:
+#line 1919 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     CurGV = 0;
-  ;
-    break;}
-case 190:
-#line 1930 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 190:
+#line 1922 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[0].TypeVal)->getDescription());
-    CurGV = ParseGlobalVariable(yyvsp[-4].StrVal, yyvsp[-3].Linkage, yyvsp[-2].Visibility, yyvsp[-1].BoolVal, *yyvsp[0].TypeVal, 0);
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
+    CurGV = ParseGlobalVariable((yyvsp[-4].StrVal), (yyvsp[-3].Linkage), (yyvsp[-2].Visibility), (yyvsp[-1].BoolVal), *(yyvsp[0].TypeVal), 0);
     CHECK_FOR_ERROR
-    delete yyvsp[0].TypeVal;
-  ;
-    break;}
-case 191:
-#line 1936 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+    delete (yyvsp[0].TypeVal);
+  ;}
+    break;
+
+  case 191:
+#line 1928 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     CurGV = 0;
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 192:
-#line 1940 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ 
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 193:
-#line 1943 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 192:
+#line 1932 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { 
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 194:
-#line 1949 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 193:
+#line 1935 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 194:
+#line 1941 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
   const std::string &AsmSoFar = CurModule.CurrentModule->getModuleInlineAsm();
-  char *EndStr = UnEscapeLexed(yyvsp[0].StrVal, true);
-  std::string NewAsm(yyvsp[0].StrVal, EndStr);
-  free(yyvsp[0].StrVal);
+  char *EndStr = UnEscapeLexed((yyvsp[0].StrVal), true);
+  std::string NewAsm((yyvsp[0].StrVal), EndStr);
+  free((yyvsp[0].StrVal));
 
   if (AsmSoFar.empty())
     CurModule.CurrentModule->setModuleInlineAsm(NewAsm);
   else
     CurModule.CurrentModule->setModuleInlineAsm(AsmSoFar+"\n"+NewAsm);
   CHECK_FOR_ERROR
-;
-    break;}
-case 195:
-#line 1962 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    CurModule.CurrentModule->setTargetTriple(yyvsp[0].StrVal);
-    free(yyvsp[0].StrVal);
-  ;
-    break;}
-case 196:
-#line 1966 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    CurModule.CurrentModule->setDataLayout(yyvsp[0].StrVal);
-    free(yyvsp[0].StrVal);
-  ;
-    break;}
-case 198:
-#line 1973 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-          CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal);
-          free(yyvsp[0].StrVal);
+;}
+    break;
+
+  case 195:
+#line 1954 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurModule.CurrentModule->setTargetTriple((yyvsp[0].StrVal));
+    free((yyvsp[0].StrVal));
+  ;}
+    break;
+
+  case 196:
+#line 1958 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurModule.CurrentModule->setDataLayout((yyvsp[0].StrVal));
+    free((yyvsp[0].StrVal));
+  ;}
+    break;
+
+  case 198:
+#line 1965 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+          CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
+          free((yyvsp[0].StrVal));
           CHECK_FOR_ERROR
-        ;
-    break;}
-case 199:
-#line 1978 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-          CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal);
-          free(yyvsp[0].StrVal);
+        ;}
+    break;
+
+  case 199:
+#line 1970 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+          CurModule.CurrentModule->addLibrary((yyvsp[0].StrVal));
+          free((yyvsp[0].StrVal));
           CHECK_FOR_ERROR
-        ;
-    break;}
-case 200:
-#line 1983 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+        ;}
+    break;
+
+  case 200:
+#line 1975 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
           CHECK_FOR_ERROR
-        ;
-    break;}
-case 201:
-#line 1992 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+        ;}
+    break;
+
+  case 201:
+#line 1984 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-2].TypeVal)->getDescription());
-    if (*yyvsp[-2].TypeVal == Type::VoidTy)
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
+    if (*(yyvsp[-2].TypeVal) == Type::VoidTy)
       GEN_ERROR("void typed arguments are invalid!");
-    ArgListEntry E; E.Attrs = yyvsp[-1].ParamAttrs; E.Ty = yyvsp[-2].TypeVal; E.Name = yyvsp[0].StrVal;
-    yyval.ArgList = yyvsp[-4].ArgList;
-    yyvsp[-4].ArgList->push_back(E);
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 202:
-#line 2002 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+    ArgListEntry E; E.Attrs = (yyvsp[-1].ParamAttrs); E.Ty = (yyvsp[-2].TypeVal); E.Name = (yyvsp[0].StrVal);
+    (yyval.ArgList) = (yyvsp[-4].ArgList);
+    (yyvsp[-4].ArgList)->push_back(E);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 202:
+#line 1994 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-2].TypeVal)->getDescription());
-    if (*yyvsp[-2].TypeVal == Type::VoidTy)
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
+    if (*(yyvsp[-2].TypeVal) == Type::VoidTy)
       GEN_ERROR("void typed arguments are invalid!");
-    ArgListEntry E; E.Attrs = yyvsp[-1].ParamAttrs; E.Ty = yyvsp[-2].TypeVal; E.Name = yyvsp[0].StrVal;
-    yyval.ArgList = new ArgListType;
-    yyval.ArgList->push_back(E);
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 203:
-#line 2013 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ArgList = yyvsp[0].ArgList;
+    ArgListEntry E; E.Attrs = (yyvsp[-1].ParamAttrs); E.Ty = (yyvsp[-2].TypeVal); E.Name = (yyvsp[0].StrVal);
+    (yyval.ArgList) = new ArgListType;
+    (yyval.ArgList)->push_back(E);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 204:
-#line 2017 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ArgList = yyvsp[-2].ArgList;
+  ;}
+    break;
+
+  case 203:
+#line 2005 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ArgList) = (yyvsp[0].ArgList);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 204:
+#line 2009 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ArgList) = (yyvsp[-2].ArgList);
     struct ArgListEntry E;
     E.Ty = new PATypeHolder(Type::VoidTy);
     E.Name = 0;
     E.Attrs = FunctionType::NoAttributeSet;
-    yyval.ArgList->push_back(E);
+    (yyval.ArgList)->push_back(E);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 205:
-#line 2026 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ArgList = new ArgListType;
+  ;}
+    break;
+
+  case 205:
+#line 2018 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ArgList) = new ArgListType;
     struct ArgListEntry E;
     E.Ty = new PATypeHolder(Type::VoidTy);
     E.Name = 0;
     E.Attrs = FunctionType::NoAttributeSet;
-    yyval.ArgList->push_back(E);
+    (yyval.ArgList)->push_back(E);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 206:
-#line 2035 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ArgList = 0;
+  ;}
+    break;
+
+  case 206:
+#line 2027 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ArgList) = 0;
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 207:
-#line 2041 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-  UnEscapeLexed(yyvsp[-6].StrVal);
-  std::string FunctionName(yyvsp[-6].StrVal);
-  free(yyvsp[-6].StrVal);  // Free strdup'd memory!
+  ;}
+    break;
+
+  case 207:
+#line 2033 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+  UnEscapeLexed((yyvsp[-6].StrVal));
+  std::string FunctionName((yyvsp[-6].StrVal));
+  free((yyvsp[-6].StrVal));  // Free strdup'd memory!
   
   // Check the function result for abstractness if this is a define. We should
   // have no abstract types at this point
-  if (!CurFun.isDeclare && CurModule.TypeIsUnresolved(yyvsp[-7].TypeVal))
-    GEN_ERROR("Reference to abstract result: "+ yyvsp[-7].TypeVal->get()->getDescription());
+  if (!CurFun.isDeclare && CurModule.TypeIsUnresolved((yyvsp[-7].TypeVal)))
+    GEN_ERROR("Reference to abstract result: "+ (yyvsp[-7].TypeVal)->get()->getDescription());
 
   std::vector<const Type*> ParamTypeList;
   std::vector<FunctionType::ParameterAttributes> ParamAttrs;
-  ParamAttrs.push_back(yyvsp[-2].ParamAttrs);
-  if (yyvsp[-4].ArgList) {   // If there are arguments...
-    for (ArgListType::iterator I = yyvsp[-4].ArgList->begin(); I != yyvsp[-4].ArgList->end(); ++I) {
+  ParamAttrs.push_back((yyvsp[-2].ParamAttrs));
+  if ((yyvsp[-4].ArgList)) {   // If there are arguments...
+    for (ArgListType::iterator I = (yyvsp[-4].ArgList)->begin(); I != (yyvsp[-4].ArgList)->end(); ++I) {
       const Type* Ty = I->Ty->get();
       if (!CurFun.isDeclare && CurModule.TypeIsUnresolved(I->Ty))
         GEN_ERROR("Reference to abstract argument: " + Ty->getDescription());
@@ -3772,10 +4537,10 @@
   bool isVarArg = ParamTypeList.size() && ParamTypeList.back() == Type::VoidTy;
   if (isVarArg) ParamTypeList.pop_back();
 
-  FunctionType *FT = FunctionType::get(*yyvsp[-7].TypeVal, ParamTypeList, isVarArg,
+  FunctionType *FT = FunctionType::get(*(yyvsp[-7].TypeVal), ParamTypeList, isVarArg,
                                        ParamAttrs);
   const PointerType *PFT = PointerType::get(FT);
-  delete yyvsp[-7].TypeVal;
+  delete (yyvsp[-7].TypeVal);
 
   ValID ID;
   if (!FunctionName.empty()) {
@@ -3820,24 +4585,24 @@
     Fn->setLinkage(CurFun.Linkage);
     Fn->setVisibility(CurFun.Visibility);
   }
-  Fn->setCallingConv(yyvsp[-8].UIntVal);
-  Fn->setAlignment(yyvsp[0].UIntVal);
-  if (yyvsp[-1].StrVal) {
-    Fn->setSection(yyvsp[-1].StrVal);
-    free(yyvsp[-1].StrVal);
+  Fn->setCallingConv((yyvsp[-8].UIntVal));
+  Fn->setAlignment((yyvsp[0].UIntVal));
+  if ((yyvsp[-1].StrVal)) {
+    Fn->setSection((yyvsp[-1].StrVal));
+    free((yyvsp[-1].StrVal));
   }
 
   // Add all of the arguments we parsed to the function...
-  if (yyvsp[-4].ArgList) {                     // Is null if empty...
+  if ((yyvsp[-4].ArgList)) {                     // Is null if empty...
     if (isVarArg) {  // Nuke the last entry
-      assert(yyvsp[-4].ArgList->back().Ty->get() == Type::VoidTy && yyvsp[-4].ArgList->back().Name == 0&&
+      assert((yyvsp[-4].ArgList)->back().Ty->get() == Type::VoidTy && (yyvsp[-4].ArgList)->back().Name == 0&&
              "Not a varargs marker!");
-      delete yyvsp[-4].ArgList->back().Ty;
-      yyvsp[-4].ArgList->pop_back();  // Delete the last entry
+      delete (yyvsp[-4].ArgList)->back().Ty;
+      (yyvsp[-4].ArgList)->pop_back();  // Delete the last entry
     }
     Function::arg_iterator ArgIt = Fn->arg_begin();
     unsigned Idx = 1;
-    for (ArgListType::iterator I = yyvsp[-4].ArgList->begin(); I != yyvsp[-4].ArgList->end(); ++I, ++ArgIt) {
+    for (ArgListType::iterator I = (yyvsp[-4].ArgList)->begin(); I != (yyvsp[-4].ArgList)->end(); ++I, ++ArgIt) {
       delete I->Ty;                          // Delete the typeholder...
       setValueName(ArgIt, I->Name);           // Insert arg into symtab...
       CHECK_FOR_ERROR
@@ -3845,114 +4610,128 @@
       Idx++;
     }
 
-    delete yyvsp[-4].ArgList;                     // We're now done with the argument list
+    delete (yyvsp[-4].ArgList);                     // We're now done with the argument list
   }
   CHECK_FOR_ERROR
-;
-    break;}
-case 210:
-#line 2148 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-  yyval.FunctionVal = CurFun.CurrentFunction;
+;}
+    break;
+
+  case 210:
+#line 2140 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+  (yyval.FunctionVal) = CurFun.CurrentFunction;
 
   // Make sure that we keep track of the linkage type even if there was a
   // previous "declare".
-  yyval.FunctionVal->setLinkage(yyvsp[-3].Linkage);
-  yyval.FunctionVal->setVisibility(yyvsp[-2].Visibility);
-;
-    break;}
-case 213:
-#line 2159 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-  yyval.FunctionVal = yyvsp[-1].FunctionVal;
+  (yyval.FunctionVal)->setLinkage((yyvsp[-3].Linkage));
+  (yyval.FunctionVal)->setVisibility((yyvsp[-2].Visibility));
+;}
+    break;
+
+  case 213:
+#line 2151 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+  (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
   CHECK_FOR_ERROR
-;
-    break;}
-case 214:
-#line 2164 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    CurFun.CurrentFunction->setLinkage(yyvsp[-2].Linkage);
-    CurFun.CurrentFunction->setVisibility(yyvsp[-1].Visibility);
-    yyval.FunctionVal = CurFun.CurrentFunction;
+;}
+    break;
+
+  case 214:
+#line 2156 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    CurFun.CurrentFunction->setLinkage((yyvsp[-2].Linkage));
+    CurFun.CurrentFunction->setVisibility((yyvsp[-1].Visibility));
+    (yyval.FunctionVal) = CurFun.CurrentFunction;
     CurFun.FunctionDone();
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 215:
-#line 2176 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.BoolVal = false;
+  ;}
+    break;
+
+  case 215:
+#line 2168 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BoolVal) = false;
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 216:
-#line 2180 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.BoolVal = true;
+  ;}
+    break;
+
+  case 216:
+#line 2172 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 217:
-#line 2185 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{    // A reference to a direct constant
-    yyval.ValIDVal = ValID::create(yyvsp[0].SInt64Val);
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 218:
-#line 2189 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ValIDVal = ValID::create(yyvsp[0].UInt64Val);
+  ;}
+    break;
+
+  case 217:
+#line 2177 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {    // A reference to a direct constant
+    (yyval.ValIDVal) = ValID::create((yyvsp[0].SInt64Val));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 219:
-#line 2193 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                     // Perhaps it's an FP constant?
-    yyval.ValIDVal = ValID::create(yyvsp[0].FPVal);
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 220:
-#line 2197 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ValIDVal = ValID::create(ConstantInt::getTrue());
+  ;}
+    break;
+
+  case 218:
+#line 2181 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValIDVal) = ValID::create((yyvsp[0].UInt64Val));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 221:
-#line 2201 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ValIDVal = ValID::create(ConstantInt::getFalse());
+  ;}
+    break;
+
+  case 219:
+#line 2185 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                     // Perhaps it's an FP constant?
+    (yyval.ValIDVal) = ValID::create((yyvsp[0].FPVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 222:
-#line 2205 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ValIDVal = ValID::createNull();
+  ;}
+    break;
+
+  case 220:
+#line 2189 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValIDVal) = ValID::create(ConstantInt::getTrue());
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 223:
-#line 2209 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ValIDVal = ValID::createUndef();
+  ;}
+    break;
+
+  case 221:
+#line 2193 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValIDVal) = ValID::create(ConstantInt::getFalse());
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 222:
+#line 2197 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValIDVal) = ValID::createNull();
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 223:
+#line 2201 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValIDVal) = ValID::createUndef();
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 224:
+#line 2205 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {     // A vector zero constant.
+    (yyval.ValIDVal) = ValID::createZeroInit();
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 224:
-#line 2213 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{     // A vector zero constant.
-    yyval.ValIDVal = ValID::createZeroInit();
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 225:
-#line 2217 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ // Nonempty unsized packed vector
-    const Type *ETy = (*yyvsp[-1].ConstVector)[0]->getType();
-    int NumElements = yyvsp[-1].ConstVector->size(); 
+  ;}
+    break;
+
+  case 225:
+#line 2209 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { // Nonempty unsized packed vector
+    const Type *ETy = (*(yyvsp[-1].ConstVector))[0]->getType();
+    int NumElements = (yyvsp[-1].ConstVector)->size(); 
     
     PackedType* pt = PackedType::get(ETy, NumElements);
     PATypeHolder* PTy = new PATypeHolder(
@@ -3964,119 +4743,131 @@
                                          );
     
     // Verify all elements are correct type!
-    for (unsigned i = 0; i < yyvsp[-1].ConstVector->size(); i++) {
-      if (ETy != (*yyvsp[-1].ConstVector)[i]->getType())
+    for (unsigned i = 0; i < (yyvsp[-1].ConstVector)->size(); i++) {
+      if (ETy != (*(yyvsp[-1].ConstVector))[i]->getType())
         GEN_ERROR("Element #" + utostr(i) + " is not of type '" + 
                      ETy->getDescription() +"' as required!\nIt is of type '" +
-                     (*yyvsp[-1].ConstVector)[i]->getType()->getDescription() + "'.");
+                     (*(yyvsp[-1].ConstVector))[i]->getType()->getDescription() + "'.");
     }
 
-    yyval.ValIDVal = ValID::create(ConstantPacked::get(pt, *yyvsp[-1].ConstVector));
-    delete PTy; delete yyvsp[-1].ConstVector;
+    (yyval.ValIDVal) = ValID::create(ConstantPacked::get(pt, *(yyvsp[-1].ConstVector)));
+    delete PTy; delete (yyvsp[-1].ConstVector);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 226:
-#line 2242 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ValIDVal = ValID::create(yyvsp[0].ConstVal);
+  ;}
+    break;
+
+  case 226:
+#line 2234 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValIDVal) = ValID::create((yyvsp[0].ConstVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 227:
-#line 2246 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    char *End = UnEscapeLexed(yyvsp[-2].StrVal, true);
-    std::string AsmStr = std::string(yyvsp[-2].StrVal, End);
-    End = UnEscapeLexed(yyvsp[0].StrVal, true);
-    std::string Constraints = std::string(yyvsp[0].StrVal, End);
-    yyval.ValIDVal = ValID::createInlineAsm(AsmStr, Constraints, yyvsp[-3].BoolVal);
-    free(yyvsp[-2].StrVal);
-    free(yyvsp[0].StrVal);
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 228:
-#line 2260 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{  // Is it an integer reference...?
-    yyval.ValIDVal = ValID::createLocalID(yyvsp[0].UIntVal);
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 229:
-#line 2264 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ValIDVal = ValID::createGlobalID(yyvsp[0].UIntVal);
+  ;}
+    break;
+
+  case 227:
+#line 2238 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    char *End = UnEscapeLexed((yyvsp[-2].StrVal), true);
+    std::string AsmStr = std::string((yyvsp[-2].StrVal), End);
+    End = UnEscapeLexed((yyvsp[0].StrVal), true);
+    std::string Constraints = std::string((yyvsp[0].StrVal), End);
+    (yyval.ValIDVal) = ValID::createInlineAsm(AsmStr, Constraints, (yyvsp[-3].BoolVal));
+    free((yyvsp[-2].StrVal));
+    free((yyvsp[0].StrVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 230:
-#line 2268 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                   // Is it a named reference...?
-    yyval.ValIDVal = ValID::createLocalName(yyvsp[0].StrVal);
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 231:
-#line 2272 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                   // Is it a named reference...?
-    yyval.ValIDVal = ValID::createGlobalName(yyvsp[0].StrVal);
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 234:
-#line 2284 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 228:
+#line 2252 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {  // Is it an integer reference...?
+    (yyval.ValIDVal) = ValID::createLocalID((yyvsp[0].UIntVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 229:
+#line 2256 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValIDVal) = ValID::createGlobalID((yyvsp[0].UIntVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 230:
+#line 2260 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                   // Is it a named reference...?
+    (yyval.ValIDVal) = ValID::createLocalName((yyvsp[0].StrVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 231:
+#line 2264 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                   // Is it a named reference...?
+    (yyval.ValIDVal) = ValID::createGlobalName((yyvsp[0].StrVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 234:
+#line 2276 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-1].TypeVal)->getDescription());
-    yyval.ValueVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal); 
-    delete yyvsp[-1].TypeVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 235:
-#line 2293 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.FunctionVal = yyvsp[-1].FunctionVal;
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
+    (yyval.ValueVal) = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal)); 
+    delete (yyvsp[-1].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 235:
+#line 2285 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 236:
+#line 2289 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { // Do not allow functions with 0 basic blocks   
+    (yyval.FunctionVal) = (yyvsp[-1].FunctionVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 237:
+#line 2298 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    setValueName((yyvsp[0].TermInstVal), (yyvsp[-1].StrVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 236:
-#line 2297 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ // Do not allow functions with 0 basic blocks   
-    yyval.FunctionVal = yyvsp[-1].FunctionVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 237:
-#line 2306 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    setValueName(yyvsp[0].TermInstVal, yyvsp[-1].StrVal);
+    InsertValue((yyvsp[0].TermInstVal));
+
+    (yyvsp[-2].BasicBlockVal)->getInstList().push_back((yyvsp[0].TermInstVal));
+    InsertValue((yyvsp[-2].BasicBlockVal));
+    (yyval.BasicBlockVal) = (yyvsp[-2].BasicBlockVal);
     CHECK_FOR_ERROR
-    InsertValue(yyvsp[0].TermInstVal);
+  ;}
+    break;
 
-    yyvsp[-2].BasicBlockVal->getInstList().push_back(yyvsp[0].TermInstVal);
-    InsertValue(yyvsp[-2].BasicBlockVal);
-    yyval.BasicBlockVal = yyvsp[-2].BasicBlockVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 238:
-#line 2317 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (CastInst *CI1 = dyn_cast<CastInst>(yyvsp[0].InstVal))
+  case 238:
+#line 2309 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (CastInst *CI1 = dyn_cast<CastInst>((yyvsp[0].InstVal)))
       if (CastInst *CI2 = dyn_cast<CastInst>(CI1->getOperand(0)))
         if (CI2->getParent() == 0)
-          yyvsp[-1].BasicBlockVal->getInstList().push_back(CI2);
-    yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].InstVal);
-    yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 239:
-#line 2326 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.BasicBlockVal = getBBVal(ValID::createLocalID(CurFun.NextBBNum++), true);
+          (yyvsp[-1].BasicBlockVal)->getInstList().push_back(CI2);
+    (yyvsp[-1].BasicBlockVal)->getInstList().push_back((yyvsp[0].InstVal));
+    (yyval.BasicBlockVal) = (yyvsp[-1].BasicBlockVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 239:
+#line 2318 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BasicBlockVal) = getBBVal(ValID::createLocalID(CurFun.NextBBNum++), true);
     CHECK_FOR_ERROR
 
     // Make sure to move the basic block to the correct location in the
@@ -4084,14 +4875,15 @@
     // referenced.
     Function::BasicBlockListType &BBL = 
       CurFun.CurrentFunction->getBasicBlockList();
-    BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal);
+    BBL.splice(BBL.end(), BBL, (yyval.BasicBlockVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 240:
-#line 2338 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.BasicBlockVal = getBBVal(ValID::createLocalName(yyvsp[0].StrVal), true);
+  ;}
+    break;
+
+  case 240:
+#line 2330 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BasicBlockVal) = getBBVal(ValID::createLocalName((yyvsp[0].StrVal)), true);
     CHECK_FOR_ERROR
 
     // Make sure to move the basic block to the correct location in the
@@ -4099,93 +4891,100 @@
     // referenced.
     Function::BasicBlockListType &BBL = 
       CurFun.CurrentFunction->getBasicBlockList();
-    BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal);
+    BBL.splice(BBL.end(), BBL, (yyval.BasicBlockVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 241:
-#line 2351 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{              // Return with a result...
-    yyval.TermInstVal = new ReturnInst(yyvsp[0].ValueVal);
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 242:
-#line 2355 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                                       // Return with no result...
-    yyval.TermInstVal = new ReturnInst();
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 243:
-#line 2359 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{                         // Unconditional Branch...
-    BasicBlock* tmpBB = getBBVal(yyvsp[0].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.TermInstVal = new BranchInst(tmpBB);
-  ;
-    break;}
-case 244:
-#line 2364 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{  
-    assert(cast<IntegerType>(yyvsp[-7].PrimType)->getBitWidth() == 1 && "Not Bool?");
-    BasicBlock* tmpBBA = getBBVal(yyvsp[-3].ValIDVal);
-    CHECK_FOR_ERROR
-    BasicBlock* tmpBBB = getBBVal(yyvsp[0].ValIDVal);
-    CHECK_FOR_ERROR
-    Value* tmpVal = getVal(Type::Int1Ty, yyvsp[-6].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.TermInstVal = new BranchInst(tmpBBA, tmpBBB, tmpVal);
-  ;
-    break;}
-case 245:
-#line 2374 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    Value* tmpVal = getVal(yyvsp[-7].PrimType, yyvsp[-6].ValIDVal);
+  ;}
+    break;
+
+  case 241:
+#line 2343 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {              // Return with a result...
+    (yyval.TermInstVal) = new ReturnInst((yyvsp[0].ValueVal));
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 242:
+#line 2347 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                                       // Return with no result...
+    (yyval.TermInstVal) = new ReturnInst();
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 243:
+#line 2351 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {                         // Unconditional Branch...
+    BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
+    CHECK_FOR_ERROR
+    (yyval.TermInstVal) = new BranchInst(tmpBB);
+  ;}
+    break;
+
+  case 244:
+#line 2356 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {  
+    assert(cast<IntegerType>((yyvsp[-7].PrimType))->getBitWidth() == 1 && "Not Bool?");
+    BasicBlock* tmpBBA = getBBVal((yyvsp[-3].ValIDVal));
+    CHECK_FOR_ERROR
+    BasicBlock* tmpBBB = getBBVal((yyvsp[0].ValIDVal));
+    CHECK_FOR_ERROR
+    Value* tmpVal = getVal(Type::Int1Ty, (yyvsp[-6].ValIDVal));
+    CHECK_FOR_ERROR
+    (yyval.TermInstVal) = new BranchInst(tmpBBA, tmpBBB, tmpVal);
+  ;}
+    break;
+
+  case 245:
+#line 2366 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    Value* tmpVal = getVal((yyvsp[-7].PrimType), (yyvsp[-6].ValIDVal));
     CHECK_FOR_ERROR
-    BasicBlock* tmpBB = getBBVal(yyvsp[-3].ValIDVal);
+    BasicBlock* tmpBB = getBBVal((yyvsp[-3].ValIDVal));
     CHECK_FOR_ERROR
-    SwitchInst *S = new SwitchInst(tmpVal, tmpBB, yyvsp[-1].JumpTable->size());
-    yyval.TermInstVal = S;
+    SwitchInst *S = new SwitchInst(tmpVal, tmpBB, (yyvsp[-1].JumpTable)->size());
+    (yyval.TermInstVal) = S;
 
-    std::vector<std::pair<Constant*,BasicBlock*> >::iterator I = yyvsp[-1].JumpTable->begin(),
-      E = yyvsp[-1].JumpTable->end();
+    std::vector<std::pair<Constant*,BasicBlock*> >::iterator I = (yyvsp[-1].JumpTable)->begin(),
+      E = (yyvsp[-1].JumpTable)->end();
     for (; I != E; ++I) {
       if (ConstantInt *CI = dyn_cast<ConstantInt>(I->first))
           S->addCase(CI, I->second);
       else
         GEN_ERROR("Switch case is constant, but not a simple integer!");
     }
-    delete yyvsp[-1].JumpTable;
+    delete (yyvsp[-1].JumpTable);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 246:
-#line 2393 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    Value* tmpVal = getVal(yyvsp[-6].PrimType, yyvsp[-5].ValIDVal);
+  ;}
+    break;
+
+  case 246:
+#line 2385 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    Value* tmpVal = getVal((yyvsp[-6].PrimType), (yyvsp[-5].ValIDVal));
     CHECK_FOR_ERROR
-    BasicBlock* tmpBB = getBBVal(yyvsp[-2].ValIDVal);
+    BasicBlock* tmpBB = getBBVal((yyvsp[-2].ValIDVal));
     CHECK_FOR_ERROR
     SwitchInst *S = new SwitchInst(tmpVal, tmpBB, 0);
-    yyval.TermInstVal = S;
+    (yyval.TermInstVal) = S;
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 247:
-#line 2403 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 247:
+#line 2395 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
 
     // Handle the short syntax
     const PointerType *PFTy = 0;
     const FunctionType *Ty = 0;
-    if (!(PFTy = dyn_cast<PointerType>(yyvsp[-11].TypeVal->get())) ||
+    if (!(PFTy = dyn_cast<PointerType>((yyvsp[-11].TypeVal)->get())) ||
         !(Ty = dyn_cast<FunctionType>(PFTy->getElementType()))) {
       // Pull out the types of all of the arguments...
       std::vector<const Type*> ParamTypes;
       FunctionType::ParamAttrsList ParamAttrs;
-      ParamAttrs.push_back(yyvsp[-6].ParamAttrs);
-      for (ValueRefList::iterator I = yyvsp[-8].ValueRefList->begin(), E = yyvsp[-8].ValueRefList->end(); I != E; ++I) {
+      ParamAttrs.push_back((yyvsp[-6].ParamAttrs));
+      for (ValueRefList::iterator I = (yyvsp[-8].ValueRefList)->begin(), E = (yyvsp[-8].ValueRefList)->end(); I != E; ++I) {
         const Type *Ty = I->Val->getType();
         if (Ty == Type::VoidTy)
           GEN_ERROR("Short call syntax cannot be used with varargs");
@@ -4193,20 +4992,20 @@
         ParamAttrs.push_back(I->Attrs);
       }
 
-      Ty = FunctionType::get(yyvsp[-11].TypeVal->get(), ParamTypes, false, ParamAttrs);
+      Ty = FunctionType::get((yyvsp[-11].TypeVal)->get(), ParamTypes, false, ParamAttrs);
       PFTy = PointerType::get(Ty);
     }
 
-    Value *V = getVal(PFTy, yyvsp[-10].ValIDVal);   // Get the function we're calling...
+    Value *V = getVal(PFTy, (yyvsp[-10].ValIDVal));   // Get the function we're calling...
     CHECK_FOR_ERROR
-    BasicBlock *Normal = getBBVal(yyvsp[-3].ValIDVal);
+    BasicBlock *Normal = getBBVal((yyvsp[-3].ValIDVal));
     CHECK_FOR_ERROR
-    BasicBlock *Except = getBBVal(yyvsp[0].ValIDVal);
+    BasicBlock *Except = getBBVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
 
     // Check the arguments
     ValueList Args;
-    if (yyvsp[-8].ValueRefList->empty()) {                                   // Has no arguments?
+    if ((yyvsp[-8].ValueRefList)->empty()) {                                   // Has no arguments?
       // Make sure no arguments is a good thing!
       if (Ty->getNumParams() != 0)
         GEN_ERROR("No arguments passed to a function that "
@@ -4216,7 +5015,7 @@
       // correctly!
       FunctionType::param_iterator I = Ty->param_begin();
       FunctionType::param_iterator E = Ty->param_end();
-      ValueRefList::iterator ArgI = yyvsp[-8].ValueRefList->begin(), ArgE = yyvsp[-8].ValueRefList->end();
+      ValueRefList::iterator ArgI = (yyvsp[-8].ValueRefList)->begin(), ArgE = (yyvsp[-8].ValueRefList)->end();
 
       for (; ArgI != ArgE && I != E; ++ArgI, ++I) {
         if (ArgI->Val->getType() != *I)
@@ -4235,326 +5034,340 @@
 
     // Create the InvokeInst
     InvokeInst *II = new InvokeInst(V, Normal, Except, Args);
-    II->setCallingConv(yyvsp[-12].UIntVal);
-    yyval.TermInstVal = II;
-    delete yyvsp[-8].ValueRefList;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 248:
-#line 2469 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.TermInstVal = new UnwindInst();
+    II->setCallingConv((yyvsp[-12].UIntVal));
+    (yyval.TermInstVal) = II;
+    delete (yyvsp[-8].ValueRefList);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 249:
-#line 2473 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.TermInstVal = new UnreachableInst();
+  ;}
+    break;
+
+  case 248:
+#line 2461 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.TermInstVal) = new UnwindInst();
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 250:
-#line 2480 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.JumpTable = yyvsp[-5].JumpTable;
-    Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal));
+  ;}
+    break;
+
+  case 249:
+#line 2465 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.TermInstVal) = new UnreachableInst();
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 250:
+#line 2472 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.JumpTable) = (yyvsp[-5].JumpTable);
+    Constant *V = cast<Constant>(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
     CHECK_FOR_ERROR
     if (V == 0)
       GEN_ERROR("May only switch on a constant pool value!");
 
-    BasicBlock* tmpBB = getBBVal(yyvsp[0].ValIDVal);
+    BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.JumpTable->push_back(std::make_pair(V, tmpBB));
-  ;
-    break;}
-case 251:
-#line 2491 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.JumpTable = new std::vector<std::pair<Constant*, BasicBlock*> >();
-    Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal));
+    (yyval.JumpTable)->push_back(std::make_pair(V, tmpBB));
+  ;}
+    break;
+
+  case 251:
+#line 2483 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.JumpTable) = new std::vector<std::pair<Constant*, BasicBlock*> >();
+    Constant *V = cast<Constant>(getValNonImprovising((yyvsp[-4].PrimType), (yyvsp[-3].ValIDVal)));
     CHECK_FOR_ERROR
 
     if (V == 0)
       GEN_ERROR("May only switch on a constant pool value!");
 
-    BasicBlock* tmpBB = getBBVal(yyvsp[0].ValIDVal);
+    BasicBlock* tmpBB = getBBVal((yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.JumpTable->push_back(std::make_pair(V, tmpBB)); 
-  ;
-    break;}
-case 252:
-#line 2504 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+    (yyval.JumpTable)->push_back(std::make_pair(V, tmpBB)); 
+  ;}
+    break;
+
+  case 252:
+#line 2496 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
   // Is this definition named?? if so, assign the name...
-  setValueName(yyvsp[0].InstVal, yyvsp[-1].StrVal);
+  setValueName((yyvsp[0].InstVal), (yyvsp[-1].StrVal));
   CHECK_FOR_ERROR
-  InsertValue(yyvsp[0].InstVal);
-  yyval.InstVal = yyvsp[0].InstVal;
+  InsertValue((yyvsp[0].InstVal));
+  (yyval.InstVal) = (yyvsp[0].InstVal);
   CHECK_FOR_ERROR
-;
-    break;}
-case 253:
-#line 2513 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{    // Used for PHI nodes
+;}
+    break;
+
+  case 253:
+#line 2505 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {    // Used for PHI nodes
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-5].TypeVal)->getDescription());
-    yyval.PHIList = new std::list<std::pair<Value*, BasicBlock*> >();
-    Value* tmpVal = getVal(*yyvsp[-5].TypeVal, yyvsp[-3].ValIDVal);
-    CHECK_FOR_ERROR
-    BasicBlock* tmpBB = getBBVal(yyvsp[-1].ValIDVal);
-    CHECK_FOR_ERROR
-    yyval.PHIList->push_back(std::make_pair(tmpVal, tmpBB));
-    delete yyvsp[-5].TypeVal;
-  ;
-    break;}
-case 254:
-#line 2524 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.PHIList = yyvsp[-6].PHIList;
-    Value* tmpVal = getVal(yyvsp[-6].PHIList->front().first->getType(), yyvsp[-3].ValIDVal);
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-5].TypeVal))->getDescription());
+    (yyval.PHIList) = new std::list<std::pair<Value*, BasicBlock*> >();
+    Value* tmpVal = getVal(*(yyvsp[-5].TypeVal), (yyvsp[-3].ValIDVal));
+    CHECK_FOR_ERROR
+    BasicBlock* tmpBB = getBBVal((yyvsp[-1].ValIDVal));
+    CHECK_FOR_ERROR
+    (yyval.PHIList)->push_back(std::make_pair(tmpVal, tmpBB));
+    delete (yyvsp[-5].TypeVal);
+  ;}
+    break;
+
+  case 254:
+#line 2516 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.PHIList) = (yyvsp[-6].PHIList);
+    Value* tmpVal = getVal((yyvsp[-6].PHIList)->front().first->getType(), (yyvsp[-3].ValIDVal));
     CHECK_FOR_ERROR
-    BasicBlock* tmpBB = getBBVal(yyvsp[-1].ValIDVal);
+    BasicBlock* tmpBB = getBBVal((yyvsp[-1].ValIDVal));
     CHECK_FOR_ERROR
-    yyvsp[-6].PHIList->push_back(std::make_pair(tmpVal, tmpBB));
-  ;
-    break;}
-case 255:
-#line 2534 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{    
+    (yyvsp[-6].PHIList)->push_back(std::make_pair(tmpVal, tmpBB));
+  ;}
+    break;
+
+  case 255:
+#line 2526 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {    
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-2].TypeVal)->getDescription());
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
     // Used for call and invoke instructions
-    yyval.ValueRefList = new ValueRefList();
-    ValueRefListEntry E; E.Attrs = yyvsp[0].ParamAttrs; E.Val = getVal(yyvsp[-2].TypeVal->get(), yyvsp[-1].ValIDVal);
-    yyval.ValueRefList->push_back(E);
-  ;
-    break;}
-case 256:
-#line 2542 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+    (yyval.ValueRefList) = new ValueRefList();
+    ValueRefListEntry E; E.Attrs = (yyvsp[0].ParamAttrs); E.Val = getVal((yyvsp[-2].TypeVal)->get(), (yyvsp[-1].ValIDVal));
+    (yyval.ValueRefList)->push_back(E);
+  ;}
+    break;
+
+  case 256:
+#line 2534 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-2].TypeVal)->getDescription());
-    yyval.ValueRefList = yyvsp[-4].ValueRefList;
-    ValueRefListEntry E; E.Attrs = yyvsp[0].ParamAttrs; E.Val = getVal(yyvsp[-2].TypeVal->get(), yyvsp[-1].ValIDVal);
-    yyval.ValueRefList->push_back(E);
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 257:
-#line 2550 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.ValueRefList = new ValueRefList(); ;
-    break;}
-case 258:
-#line 2553 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{ yyval.ValueList = new std::vector<Value*>(); ;
-    break;}
-case 259:
-#line 2554 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.ValueList = yyvsp[-2].ValueList;
-    yyval.ValueList->push_back(yyvsp[0].ValueVal);
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
+    (yyval.ValueRefList) = (yyvsp[-4].ValueRefList);
+    ValueRefListEntry E; E.Attrs = (yyvsp[0].ParamAttrs); E.Val = getVal((yyvsp[-2].TypeVal)->get(), (yyvsp[-1].ValIDVal));
+    (yyval.ValueRefList)->push_back(E);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 260:
-#line 2561 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.BoolVal = true;
+  ;}
+    break;
+
+  case 257:
+#line 2542 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ValueRefList) = new ValueRefList(); ;}
+    break;
+
+  case 258:
+#line 2545 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    { (yyval.ValueList) = new std::vector<Value*>(); ;}
+    break;
+
+  case 259:
+#line 2546 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.ValueList) = (yyvsp[-2].ValueList);
+    (yyval.ValueList)->push_back((yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 261:
-#line 2565 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.BoolVal = false;
+  ;}
+    break;
+
+  case 260:
+#line 2553 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 262:
-#line 2570 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 261:
+#line 2557 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BoolVal) = false;
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 262:
+#line 2562 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-3].TypeVal)->getDescription());
-    if (!(*yyvsp[-3].TypeVal)->isInteger() && !(*yyvsp[-3].TypeVal)->isFloatingPoint() && 
-        !isa<PackedType>((*yyvsp[-3].TypeVal).get()))
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
+    if (!(*(yyvsp[-3].TypeVal))->isInteger() && !(*(yyvsp[-3].TypeVal))->isFloatingPoint() && 
+        !isa<PackedType>((*(yyvsp[-3].TypeVal)).get()))
       GEN_ERROR(
         "Arithmetic operator requires integer, FP, or packed operands!");
-    if (isa<PackedType>((*yyvsp[-3].TypeVal).get()) && 
-        (yyvsp[-4].BinaryOpVal == Instruction::URem || 
-         yyvsp[-4].BinaryOpVal == Instruction::SRem ||
-         yyvsp[-4].BinaryOpVal == Instruction::FRem))
+    if (isa<PackedType>((*(yyvsp[-3].TypeVal)).get()) && 
+        ((yyvsp[-4].BinaryOpVal) == Instruction::URem || 
+         (yyvsp[-4].BinaryOpVal) == Instruction::SRem ||
+         (yyvsp[-4].BinaryOpVal) == Instruction::FRem))
       GEN_ERROR("U/S/FRem not supported on packed types!");
-    Value* val1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal); 
+    Value* val1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal)); 
     CHECK_FOR_ERROR
-    Value* val2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal);
+    Value* val2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.InstVal = BinaryOperator::create(yyvsp[-4].BinaryOpVal, val1, val2);
-    if (yyval.InstVal == 0)
+    (yyval.InstVal) = BinaryOperator::create((yyvsp[-4].BinaryOpVal), val1, val2);
+    if ((yyval.InstVal) == 0)
       GEN_ERROR("binary operator returned null!");
-    delete yyvsp[-3].TypeVal;
-  ;
-    break;}
-case 263:
-#line 2591 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+    delete (yyvsp[-3].TypeVal);
+  ;}
+    break;
+
+  case 263:
+#line 2583 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-3].TypeVal)->getDescription());
-    if (!(*yyvsp[-3].TypeVal)->isInteger()) {
-      if (!isa<PackedType>(yyvsp[-3].TypeVal->get()) ||
-          !cast<PackedType>(yyvsp[-3].TypeVal->get())->getElementType()->isInteger())
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
+    if (!(*(yyvsp[-3].TypeVal))->isInteger()) {
+      if (Instruction::isShift((yyvsp[-4].BinaryOpVal)) || !isa<PackedType>((yyvsp[-3].TypeVal)->get()) ||
+          !cast<PackedType>((yyvsp[-3].TypeVal)->get())->getElementType()->isInteger())
         GEN_ERROR("Logical operator requires integral operands!");
     }
-    Value* tmpVal1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal);
+    Value* tmpVal1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal));
     CHECK_FOR_ERROR
-    Value* tmpVal2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal);
+    Value* tmpVal2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.InstVal = BinaryOperator::create(yyvsp[-4].BinaryOpVal, tmpVal1, tmpVal2);
-    if (yyval.InstVal == 0)
+    (yyval.InstVal) = BinaryOperator::create((yyvsp[-4].BinaryOpVal), tmpVal1, tmpVal2);
+    if ((yyval.InstVal) == 0)
       GEN_ERROR("binary operator returned null!");
-    delete yyvsp[-3].TypeVal;
-  ;
-    break;}
-case 264:
-#line 2608 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+    delete (yyvsp[-3].TypeVal);
+  ;}
+    break;
+
+  case 264:
+#line 2600 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-3].TypeVal)->getDescription());
-    if (isa<PackedType>((*yyvsp[-3].TypeVal).get()))
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
+    if (isa<PackedType>((*(yyvsp[-3].TypeVal)).get()))
       GEN_ERROR("Packed types not supported by icmp instruction");
-    Value* tmpVal1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal);
+    Value* tmpVal1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal));
     CHECK_FOR_ERROR
-    Value* tmpVal2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal);
+    Value* tmpVal2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.InstVal = CmpInst::create(yyvsp[-5].OtherOpVal, yyvsp[-4].IPredicate, tmpVal1, tmpVal2);
-    if (yyval.InstVal == 0)
+    (yyval.InstVal) = CmpInst::create((yyvsp[-5].OtherOpVal), (yyvsp[-4].IPredicate), tmpVal1, tmpVal2);
+    if ((yyval.InstVal) == 0)
       GEN_ERROR("icmp operator returned null!");
-  ;
-    break;}
-case 265:
-#line 2621 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 265:
+#line 2613 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-3].TypeVal)->getDescription());
-    if (isa<PackedType>((*yyvsp[-3].TypeVal).get()))
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-3].TypeVal))->getDescription());
+    if (isa<PackedType>((*(yyvsp[-3].TypeVal)).get()))
       GEN_ERROR("Packed types not supported by fcmp instruction");
-    Value* tmpVal1 = getVal(*yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal);
+    Value* tmpVal1 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[-2].ValIDVal));
     CHECK_FOR_ERROR
-    Value* tmpVal2 = getVal(*yyvsp[-3].TypeVal, yyvsp[0].ValIDVal);
+    Value* tmpVal2 = getVal(*(yyvsp[-3].TypeVal), (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.InstVal = CmpInst::create(yyvsp[-5].OtherOpVal, yyvsp[-4].FPredicate, tmpVal1, tmpVal2);
-    if (yyval.InstVal == 0)
+    (yyval.InstVal) = CmpInst::create((yyvsp[-5].OtherOpVal), (yyvsp[-4].FPredicate), tmpVal1, tmpVal2);
+    if ((yyval.InstVal) == 0)
       GEN_ERROR("fcmp operator returned null!");
-  ;
-    break;}
-case 266:
-#line 2634 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (yyvsp[0].ValueVal->getType() != Type::Int8Ty)
-      GEN_ERROR("Shift amount must be i8 type!");
-    if (!yyvsp[-2].ValueVal->getType()->isInteger())
-      GEN_ERROR("Shift constant expression requires integer operand!");
-    CHECK_FOR_ERROR;
-    yyval.InstVal = new ShiftInst(yyvsp[-3].OtherOpVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 267:
-#line 2643 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 266:
+#line 2626 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[0].TypeVal)->getDescription());
-    Value* Val = yyvsp[-2].ValueVal;
-    const Type* DestTy = yyvsp[0].TypeVal->get();
-    if (!CastInst::castIsValid(yyvsp[-3].CastOpVal, Val, DestTy))
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
+    Value* Val = (yyvsp[-2].ValueVal);
+    const Type* DestTy = (yyvsp[0].TypeVal)->get();
+    if (!CastInst::castIsValid((yyvsp[-3].CastOpVal), Val, DestTy))
       GEN_ERROR("invalid cast opcode for cast from '" +
                 Val->getType()->getDescription() + "' to '" +
                 DestTy->getDescription() + "'!"); 
-    yyval.InstVal = CastInst::create(yyvsp[-3].CastOpVal, Val, DestTy);
-    delete yyvsp[0].TypeVal;
-  ;
-    break;}
-case 268:
-#line 2655 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (yyvsp[-4].ValueVal->getType() != Type::Int1Ty)
+    (yyval.InstVal) = CastInst::create((yyvsp[-3].CastOpVal), Val, DestTy);
+    delete (yyvsp[0].TypeVal);
+  ;}
+    break;
+
+  case 267:
+#line 2638 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if ((yyvsp[-4].ValueVal)->getType() != Type::Int1Ty)
       GEN_ERROR("select condition must be boolean!");
-    if (yyvsp[-2].ValueVal->getType() != yyvsp[0].ValueVal->getType())
+    if ((yyvsp[-2].ValueVal)->getType() != (yyvsp[0].ValueVal)->getType())
       GEN_ERROR("select value types should match!");
-    yyval.InstVal = new SelectInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+    (yyval.InstVal) = new SelectInst((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 269:
-#line 2663 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 268:
+#line 2646 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[0].TypeVal)->getDescription());
-    yyval.InstVal = new VAArgInst(yyvsp[-2].ValueVal, *yyvsp[0].TypeVal);
-    delete yyvsp[0].TypeVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 270:
-#line 2670 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (!ExtractElementInst::isValidOperands(yyvsp[-2].ValueVal, yyvsp[0].ValueVal))
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[0].TypeVal))->getDescription());
+    (yyval.InstVal) = new VAArgInst((yyvsp[-2].ValueVal), *(yyvsp[0].TypeVal));
+    delete (yyvsp[0].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 269:
+#line 2653 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (!ExtractElementInst::isValidOperands((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid extractelement operands!");
-    yyval.InstVal = new ExtractElementInst(yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+    (yyval.InstVal) = new ExtractElementInst((yyvsp[-2].ValueVal), (yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 271:
-#line 2676 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (!InsertElementInst::isValidOperands(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal))
+  ;}
+    break;
+
+  case 270:
+#line 2659 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (!InsertElementInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid insertelement operands!");
-    yyval.InstVal = new InsertElementInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+    (yyval.InstVal) = new InsertElementInst((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 272:
-#line 2682 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (!ShuffleVectorInst::isValidOperands(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal))
+  ;}
+    break;
+
+  case 271:
+#line 2665 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (!ShuffleVectorInst::isValidOperands((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal)))
       GEN_ERROR("Invalid shufflevector operands!");
-    yyval.InstVal = new ShuffleVectorInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+    (yyval.InstVal) = new ShuffleVectorInst((yyvsp[-4].ValueVal), (yyvsp[-2].ValueVal), (yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 273:
-#line 2688 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    const Type *Ty = yyvsp[0].PHIList->front().first->getType();
+  ;}
+    break;
+
+  case 272:
+#line 2671 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    const Type *Ty = (yyvsp[0].PHIList)->front().first->getType();
     if (!Ty->isFirstClassType())
       GEN_ERROR("PHI node operands must be of first class type!");
-    yyval.InstVal = new PHINode(Ty);
-    ((PHINode*)yyval.InstVal)->reserveOperandSpace(yyvsp[0].PHIList->size());
-    while (yyvsp[0].PHIList->begin() != yyvsp[0].PHIList->end()) {
-      if (yyvsp[0].PHIList->front().first->getType() != Ty) 
+    (yyval.InstVal) = new PHINode(Ty);
+    ((PHINode*)(yyval.InstVal))->reserveOperandSpace((yyvsp[0].PHIList)->size());
+    while ((yyvsp[0].PHIList)->begin() != (yyvsp[0].PHIList)->end()) {
+      if ((yyvsp[0].PHIList)->front().first->getType() != Ty) 
         GEN_ERROR("All elements of a PHI node must be of the same type!");
-      cast<PHINode>(yyval.InstVal)->addIncoming(yyvsp[0].PHIList->front().first, yyvsp[0].PHIList->front().second);
-      yyvsp[0].PHIList->pop_front();
+      cast<PHINode>((yyval.InstVal))->addIncoming((yyvsp[0].PHIList)->front().first, (yyvsp[0].PHIList)->front().second);
+      (yyvsp[0].PHIList)->pop_front();
     }
-    delete yyvsp[0].PHIList;  // Free the list...
+    delete (yyvsp[0].PHIList);  // Free the list...
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 274:
-#line 2704 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 273:
+#line 2687 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
 
     // Handle the short syntax
     const PointerType *PFTy = 0;
     const FunctionType *Ty = 0;
-    if (!(PFTy = dyn_cast<PointerType>(yyvsp[-5].TypeVal->get())) ||
+    if (!(PFTy = dyn_cast<PointerType>((yyvsp[-5].TypeVal)->get())) ||
         !(Ty = dyn_cast<FunctionType>(PFTy->getElementType()))) {
       // Pull out the types of all of the arguments...
       std::vector<const Type*> ParamTypes;
       FunctionType::ParamAttrsList ParamAttrs;
-      ParamAttrs.push_back(yyvsp[0].ParamAttrs);
-      for (ValueRefList::iterator I = yyvsp[-2].ValueRefList->begin(), E = yyvsp[-2].ValueRefList->end(); I != E; ++I) {
+      ParamAttrs.push_back((yyvsp[0].ParamAttrs));
+      for (ValueRefList::iterator I = (yyvsp[-2].ValueRefList)->begin(), E = (yyvsp[-2].ValueRefList)->end(); I != E; ++I) {
         const Type *Ty = I->Val->getType();
         if (Ty == Type::VoidTy)
           GEN_ERROR("Short call syntax cannot be used with varargs");
@@ -4562,16 +5375,16 @@
         ParamAttrs.push_back(I->Attrs);
       }
 
-      Ty = FunctionType::get(yyvsp[-5].TypeVal->get(), ParamTypes, false, ParamAttrs);
+      Ty = FunctionType::get((yyvsp[-5].TypeVal)->get(), ParamTypes, false, ParamAttrs);
       PFTy = PointerType::get(Ty);
     }
 
-    Value *V = getVal(PFTy, yyvsp[-4].ValIDVal);   // Get the function we're calling...
+    Value *V = getVal(PFTy, (yyvsp[-4].ValIDVal));   // Get the function we're calling...
     CHECK_FOR_ERROR
 
     // Check the arguments 
     ValueList Args;
-    if (yyvsp[-2].ValueRefList->empty()) {                                   // Has no arguments?
+    if ((yyvsp[-2].ValueRefList)->empty()) {                                   // Has no arguments?
       // Make sure no arguments is a good thing!
       if (Ty->getNumParams() != 0)
         GEN_ERROR("No arguments passed to a function that "
@@ -4582,7 +5395,7 @@
       //
       FunctionType::param_iterator I = Ty->param_begin();
       FunctionType::param_iterator E = Ty->param_end();
-      ValueRefList::iterator ArgI = yyvsp[-2].ValueRefList->begin(), ArgE = yyvsp[-2].ValueRefList->end();
+      ValueRefList::iterator ArgI = (yyvsp[-2].ValueRefList)->begin(), ArgE = (yyvsp[-2].ValueRefList)->end();
 
       for (; ArgI != ArgE && I != E; ++ArgI, ++I) {
         if (ArgI->Val->getType() != *I)
@@ -4599,365 +5412,428 @@
     }
     // Create the call node
     CallInst *CI = new CallInst(V, Args);
-    CI->setTailCall(yyvsp[-7].BoolVal);
-    CI->setCallingConv(yyvsp[-6].UIntVal);
-    yyval.InstVal = CI;
-    delete yyvsp[-2].ValueRefList;
-    delete yyvsp[-5].TypeVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 275:
-#line 2767 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.InstVal = yyvsp[0].InstVal;
+    CI->setTailCall((yyvsp[-7].BoolVal));
+    CI->setCallingConv((yyvsp[-6].UIntVal));
+    (yyval.InstVal) = CI;
+    delete (yyvsp[-2].ValueRefList);
+    delete (yyvsp[-5].TypeVal);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 276:
-#line 2772 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.BoolVal = true;
+  ;}
+    break;
+
+  case 274:
+#line 2750 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.InstVal) = (yyvsp[0].InstVal);
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 277:
-#line 2776 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    yyval.BoolVal = false;
+  ;}
+    break;
+
+  case 275:
+#line 2755 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BoolVal) = true;
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 278:
-#line 2783 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 276:
+#line 2759 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    (yyval.BoolVal) = false;
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 277:
+#line 2766 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-1].TypeVal)->getDescription());
-    yyval.InstVal = new MallocInst(*yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal);
-    delete yyvsp[-1].TypeVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 279:
-#line 2790 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
+    (yyval.InstVal) = new MallocInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal));
+    delete (yyvsp[-1].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 278:
+#line 2773 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-4].TypeVal)->getDescription());
-    Value* tmpVal = getVal(yyvsp[-2].PrimType, yyvsp[-1].ValIDVal);
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
+    Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.InstVal = new MallocInst(*yyvsp[-4].TypeVal, tmpVal, yyvsp[0].UIntVal);
-    delete yyvsp[-4].TypeVal;
-  ;
-    break;}
-case 280:
-#line 2798 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+    (yyval.InstVal) = new MallocInst(*(yyvsp[-4].TypeVal), tmpVal, (yyvsp[0].UIntVal));
+    delete (yyvsp[-4].TypeVal);
+  ;}
+    break;
+
+  case 279:
+#line 2781 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-1].TypeVal)->getDescription());
-    yyval.InstVal = new AllocaInst(*yyvsp[-1].TypeVal, 0, yyvsp[0].UIntVal);
-    delete yyvsp[-1].TypeVal;
-    CHECK_FOR_ERROR
-  ;
-    break;}
-case 281:
-#line 2805 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
+    (yyval.InstVal) = new AllocaInst(*(yyvsp[-1].TypeVal), 0, (yyvsp[0].UIntVal));
+    delete (yyvsp[-1].TypeVal);
+    CHECK_FOR_ERROR
+  ;}
+    break;
+
+  case 280:
+#line 2788 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-4].TypeVal)->getDescription());
-    Value* tmpVal = getVal(yyvsp[-2].PrimType, yyvsp[-1].ValIDVal);
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-4].TypeVal))->getDescription());
+    Value* tmpVal = getVal((yyvsp[-2].PrimType), (yyvsp[-1].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.InstVal = new AllocaInst(*yyvsp[-4].TypeVal, tmpVal, yyvsp[0].UIntVal);
-    delete yyvsp[-4].TypeVal;
-  ;
-    break;}
-case 282:
-#line 2813 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
-    if (!isa<PointerType>(yyvsp[0].ValueVal->getType()))
+    (yyval.InstVal) = new AllocaInst(*(yyvsp[-4].TypeVal), tmpVal, (yyvsp[0].UIntVal));
+    delete (yyvsp[-4].TypeVal);
+  ;}
+    break;
+
+  case 281:
+#line 2796 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
+    if (!isa<PointerType>((yyvsp[0].ValueVal)->getType()))
       GEN_ERROR("Trying to free nonpointer type " + 
-                     yyvsp[0].ValueVal->getType()->getDescription() + "!");
-    yyval.InstVal = new FreeInst(yyvsp[0].ValueVal);
+                     (yyvsp[0].ValueVal)->getType()->getDescription() + "!");
+    (yyval.InstVal) = new FreeInst((yyvsp[0].ValueVal));
     CHECK_FOR_ERROR
-  ;
-    break;}
-case 283:
-#line 2821 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+  ;}
+    break;
+
+  case 282:
+#line 2804 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-1].TypeVal)->getDescription());
-    if (!isa<PointerType>(yyvsp[-1].TypeVal->get()))
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
+    if (!isa<PointerType>((yyvsp[-1].TypeVal)->get()))
       GEN_ERROR("Can't load from nonpointer type: " +
-                     (*yyvsp[-1].TypeVal)->getDescription());
-    if (!cast<PointerType>(yyvsp[-1].TypeVal->get())->getElementType()->isFirstClassType())
+                     (*(yyvsp[-1].TypeVal))->getDescription());
+    if (!cast<PointerType>((yyvsp[-1].TypeVal)->get())->getElementType()->isFirstClassType())
       GEN_ERROR("Can't load from pointer of non-first-class type: " +
-                     (*yyvsp[-1].TypeVal)->getDescription());
-    Value* tmpVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal);
+                     (*(yyvsp[-1].TypeVal))->getDescription());
+    Value* tmpVal = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.InstVal = new LoadInst(tmpVal, "", yyvsp[-3].BoolVal);
-    delete yyvsp[-1].TypeVal;
-  ;
-    break;}
-case 284:
-#line 2835 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+    (yyval.InstVal) = new LoadInst(tmpVal, "", (yyvsp[-3].BoolVal));
+    delete (yyvsp[-1].TypeVal);
+  ;}
+    break;
+
+  case 283:
+#line 2818 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-1].TypeVal)->getDescription());
-    const PointerType *PT = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-1].TypeVal))->getDescription());
+    const PointerType *PT = dyn_cast<PointerType>((yyvsp[-1].TypeVal)->get());
     if (!PT)
       GEN_ERROR("Can't store to a nonpointer type: " +
-                     (*yyvsp[-1].TypeVal)->getDescription());
+                     (*(yyvsp[-1].TypeVal))->getDescription());
     const Type *ElTy = PT->getElementType();
-    if (ElTy != yyvsp[-3].ValueVal->getType())
-      GEN_ERROR("Can't store '" + yyvsp[-3].ValueVal->getType()->getDescription() +
+    if (ElTy != (yyvsp[-3].ValueVal)->getType())
+      GEN_ERROR("Can't store '" + (yyvsp[-3].ValueVal)->getType()->getDescription() +
                      "' into space of type '" + ElTy->getDescription() + "'!");
 
-    Value* tmpVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal);
+    Value* tmpVal = getVal(*(yyvsp[-1].TypeVal), (yyvsp[0].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.InstVal = new StoreInst(yyvsp[-3].ValueVal, tmpVal, yyvsp[-5].BoolVal);
-    delete yyvsp[-1].TypeVal;
-  ;
-    break;}
-case 285:
-#line 2852 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
-{
+    (yyval.InstVal) = new StoreInst((yyvsp[-3].ValueVal), tmpVal, (yyvsp[-5].BoolVal));
+    delete (yyvsp[-1].TypeVal);
+  ;}
+    break;
+
+  case 284:
+#line 2835 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+    {
     if (!UpRefs.empty())
-      GEN_ERROR("Invalid upreference in type: " + (*yyvsp[-2].TypeVal)->getDescription());
-    if (!isa<PointerType>(yyvsp[-2].TypeVal->get()))
+      GEN_ERROR("Invalid upreference in type: " + (*(yyvsp[-2].TypeVal))->getDescription());
+    if (!isa<PointerType>((yyvsp[-2].TypeVal)->get()))
       GEN_ERROR("getelementptr insn requires pointer operand!");
 
-    if (!GetElementPtrInst::getIndexedType(*yyvsp[-2].TypeVal, *yyvsp[0].ValueList, true))
+    if (!GetElementPtrInst::getIndexedType(*(yyvsp[-2].TypeVal), *(yyvsp[0].ValueList), true))
       GEN_ERROR("Invalid getelementptr indices for type '" +
-                     (*yyvsp[-2].TypeVal)->getDescription()+ "'!");
-    Value* tmpVal = getVal(*yyvsp[-2].TypeVal, yyvsp[-1].ValIDVal);
+                     (*(yyvsp[-2].TypeVal))->getDescription()+ "'!");
+    Value* tmpVal = getVal(*(yyvsp[-2].TypeVal), (yyvsp[-1].ValIDVal));
     CHECK_FOR_ERROR
-    yyval.InstVal = new GetElementPtrInst(tmpVal, *yyvsp[0].ValueList);
-    delete yyvsp[-2].TypeVal; 
-    delete yyvsp[0].ValueList;
-  ;
-    break;}
-}
-   /* the action file gets copied in in place of this dollarsign */
-#line 543 "/usr/share/bison.simple"
+    (yyval.InstVal) = new GetElementPtrInst(tmpVal, *(yyvsp[0].ValueList));
+    delete (yyvsp[-2].TypeVal); 
+    delete (yyvsp[0].ValueList);
+  ;}
+    break;
+
+
+      default: break;
+    }
+
+/* Line 1126 of yacc.c.  */
+#line 5569 "llvmAsmParser.tab.c"
 
   yyvsp -= yylen;
   yyssp -= yylen;
-#ifdef YYLSP_NEEDED
-  yylsp -= yylen;
-#endif
 
-#if YYDEBUG != 0
-  if (yydebug)
-    {
-      short *ssp1 = yyss - 1;
-      fprintf (stderr, "state stack now");
-      while (ssp1 != yyssp)
-	fprintf (stderr, " %d", *++ssp1);
-      fprintf (stderr, "\n");
-    }
-#endif
+
+  YY_STACK_PRINT (yyss, yyssp);
 
   *++yyvsp = yyval;
 
-#ifdef YYLSP_NEEDED
-  yylsp++;
-  if (yylen == 0)
-    {
-      yylsp->first_line = yylloc.first_line;
-      yylsp->first_column = yylloc.first_column;
-      yylsp->last_line = (yylsp-1)->last_line;
-      yylsp->last_column = (yylsp-1)->last_column;
-      yylsp->text = 0;
-    }
-  else
-    {
-      yylsp->last_line = (yylsp+yylen-1)->last_line;
-      yylsp->last_column = (yylsp+yylen-1)->last_column;
-    }
-#endif
 
-  /* Now "shift" the result of the reduction.
-     Determine what state that goes to,
-     based on the state we popped back to
-     and the rule number reduced by.  */
+  /* Now `shift' the result of the reduction.  Determine what state
+     that goes to, based on the state we popped back to and the rule
+     number reduced by.  */
 
   yyn = yyr1[yyn];
 
-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
     yystate = yytable[yystate];
   else
-    yystate = yydefgoto[yyn - YYNTBASE];
+    yystate = yydefgoto[yyn - YYNTOKENS];
 
   goto yynewstate;
 
-yyerrlab:   /* here on detecting error */
 
-  if (! yyerrstatus)
-    /* If not already recovering from an error, report this error.  */
+/*------------------------------------.
+| yyerrlab -- here on detecting error |
+`------------------------------------*/
+yyerrlab:
+  /* If not already recovering from an error, report this error.  */
+  if (!yyerrstatus)
     {
       ++yynerrs;
-
-#ifdef YYERROR_VERBOSE
+#if YYERROR_VERBOSE
       yyn = yypact[yystate];
 
-      if (yyn > YYFLAG && yyn < YYLAST)
+      if (YYPACT_NINF < yyn && yyn < YYLAST)
 	{
-	  int size = 0;
-	  char *msg;
-	  int x, count;
-
-	  count = 0;
-	  /* Start X at -yyn if nec to avoid negative indexes in yycheck.  */
-	  for (x = (yyn < 0 ? -yyn : 0);
-	       x < (sizeof(yytname) / sizeof(char *)); x++)
-	    if (yycheck[x + yyn] == x)
-	      size += strlen(yytname[x]) + 15, count++;
-	  msg = (char *) malloc(size + 15);
-	  if (msg != 0)
-	    {
-	      strcpy(msg, "parse error");
+	  int yytype = YYTRANSLATE (yychar);
+	  YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);
+	  YYSIZE_T yysize = yysize0;
+	  YYSIZE_T yysize1;
+	  int yysize_overflow = 0;
+	  char *yymsg = 0;
+#	  define YYERROR_VERBOSE_ARGS_MAXIMUM 5
+	  char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
+	  int yyx;
 
-	      if (count < 5)
+#if 0
+	  /* This is so xgettext sees the translatable formats that are
+	     constructed on the fly.  */
+	  YY_("syntax error, unexpected %s");
+	  YY_("syntax error, unexpected %s, expecting %s");
+	  YY_("syntax error, unexpected %s, expecting %s or %s");
+	  YY_("syntax error, unexpected %s, expecting %s or %s or %s");
+	  YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");
+#endif
+	  char *yyfmt;
+	  char const *yyf;
+	  static char const yyunexpected[] = "syntax error, unexpected %s";
+	  static char const yyexpecting[] = ", expecting %s";
+	  static char const yyor[] = " or %s";
+	  char yyformat[sizeof yyunexpected
+			+ sizeof yyexpecting - 1
+			+ ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
+			   * (sizeof yyor - 1))];
+	  char const *yyprefix = yyexpecting;
+
+	  /* Start YYX at -YYN if negative to avoid negative indexes in
+	     YYCHECK.  */
+	  int yyxbegin = yyn < 0 ? -yyn : 0;
+
+	  /* Stay within bounds of both yycheck and yytname.  */
+	  int yychecklim = YYLAST - yyn;
+	  int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
+	  int yycount = 1;
+
+	  yyarg[0] = yytname[yytype];
+	  yyfmt = yystpcpy (yyformat, yyunexpected);
+
+	  for (yyx = yyxbegin; yyx < yyxend; ++yyx)
+	    if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+	      {
+		if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
+		  {
+		    yycount = 1;
+		    yysize = yysize0;
+		    yyformat[sizeof yyunexpected - 1] = '\0';
+		    break;
+		  }
+		yyarg[yycount++] = yytname[yyx];
+		yysize1 = yysize + yytnamerr (0, yytname[yyx]);
+		yysize_overflow |= yysize1 < yysize;
+		yysize = yysize1;
+		yyfmt = yystpcpy (yyfmt, yyprefix);
+		yyprefix = yyor;
+	      }
+
+	  yyf = YY_(yyformat);
+	  yysize1 = yysize + yystrlen (yyf);
+	  yysize_overflow |= yysize1 < yysize;
+	  yysize = yysize1;
+
+	  if (!yysize_overflow && yysize <= YYSTACK_ALLOC_MAXIMUM)
+	    yymsg = (char *) YYSTACK_ALLOC (yysize);
+	  if (yymsg)
+	    {
+	      /* Avoid sprintf, as that infringes on the user's name space.
+		 Don't have undefined behavior even if the translation
+		 produced a string with the wrong number of "%s"s.  */
+	      char *yyp = yymsg;
+	      int yyi = 0;
+	      while ((*yyp = *yyf))
 		{
-		  count = 0;
-		  for (x = (yyn < 0 ? -yyn : 0);
-		       x < (sizeof(yytname) / sizeof(char *)); x++)
-		    if (yycheck[x + yyn] == x)
-		      {
-			strcat(msg, count == 0 ? ", expecting `" : " or `");
-			strcat(msg, yytname[x]);
-			strcat(msg, "'");
-			count++;
-		      }
+		  if (*yyp == '%' && yyf[1] == 's' && yyi < yycount)
+		    {
+		      yyp += yytnamerr (yyp, yyarg[yyi++]);
+		      yyf += 2;
+		    }
+		  else
+		    {
+		      yyp++;
+		      yyf++;
+		    }
 		}
-	      yyerror(msg);
-	      free(msg);
+	      yyerror (yymsg);
+	      YYSTACK_FREE (yymsg);
 	    }
 	  else
-	    yyerror ("parse error; also virtual memory exceeded");
+	    {
+	      yyerror (YY_("syntax error"));
+	      goto yyexhaustedlab;
+	    }
 	}
       else
 #endif /* YYERROR_VERBOSE */
-	yyerror("parse error");
+	yyerror (YY_("syntax error"));
     }
 
-  goto yyerrlab1;
-yyerrlab1:   /* here on error raised explicitly by an action */
+
 
   if (yyerrstatus == 3)
     {
-      /* if just tried and failed to reuse lookahead token after an error, discard it.  */
-
-      /* return failure if at end of input */
-      if (yychar == YYEOF)
-	YYABORT;
+      /* If just tried and failed to reuse look-ahead token after an
+	 error, discard it.  */
 
-#if YYDEBUG != 0
-      if (yydebug)
-	fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
-#endif
-
-      yychar = YYEMPTY;
+      if (yychar <= YYEOF)
+        {
+	  /* Return failure if at end of input.  */
+	  if (yychar == YYEOF)
+	    YYABORT;
+        }
+      else
+	{
+	  yydestruct ("Error: discarding", yytoken, &yylval);
+	  yychar = YYEMPTY;
+	}
     }
 
-  /* Else will try to reuse lookahead token
-     after shifting the error token.  */
-
-  yyerrstatus = 3;		/* Each real token shifted decrements this */
+  /* Else will try to reuse look-ahead token after shifting the error
+     token.  */
+  goto yyerrlab1;
 
-  goto yyerrhandle;
 
-yyerrdefault:  /* current state does not do anything special for the error token. */
+/*---------------------------------------------------.
+| yyerrorlab -- error raised explicitly by YYERROR.  |
+`---------------------------------------------------*/
+yyerrorlab:
+
+  /* Pacify compilers like GCC when the user code never invokes
+     YYERROR and the label yyerrorlab therefore never appears in user
+     code.  */
+  if (0)
+     goto yyerrorlab;
 
-#if 0
-  /* This is wrong; only states that explicitly want error tokens
-     should shift them.  */
-  yyn = yydefact[yystate];  /* If its default is to accept any token, ok.  Otherwise pop it.*/
-  if (yyn) goto yydefault;
-#endif
+yyvsp -= yylen;
+  yyssp -= yylen;
+  yystate = *yyssp;
+  goto yyerrlab1;
 
-yyerrpop:   /* pop the current state because it cannot handle the error token */
 
-  if (yyssp == yyss) YYABORT;
-  yyvsp--;
-  yystate = *--yyssp;
-#ifdef YYLSP_NEEDED
-  yylsp--;
-#endif
+/*-------------------------------------------------------------.
+| yyerrlab1 -- common code for both syntax error and YYERROR.  |
+`-------------------------------------------------------------*/
+yyerrlab1:
+  yyerrstatus = 3;	/* Each real token shifted decrements this.  */
 
-#if YYDEBUG != 0
-  if (yydebug)
+  for (;;)
     {
-      short *ssp1 = yyss - 1;
-      fprintf (stderr, "Error: state stack now");
-      while (ssp1 != yyssp)
-	fprintf (stderr, " %d", *++ssp1);
-      fprintf (stderr, "\n");
-    }
-#endif
-
-yyerrhandle:
+      yyn = yypact[yystate];
+      if (yyn != YYPACT_NINF)
+	{
+	  yyn += YYTERROR;
+	  if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
+	    {
+	      yyn = yytable[yyn];
+	      if (0 < yyn)
+		break;
+	    }
+	}
 
-  yyn = yypact[yystate];
-  if (yyn == YYFLAG)
-    goto yyerrdefault;
+      /* Pop the current state because it cannot handle the error token.  */
+      if (yyssp == yyss)
+	YYABORT;
 
-  yyn += YYTERROR;
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
-    goto yyerrdefault;
 
-  yyn = yytable[yyn];
-  if (yyn < 0)
-    {
-      if (yyn == YYFLAG)
-	goto yyerrpop;
-      yyn = -yyn;
-      goto yyreduce;
+      yydestruct ("Error: popping", yystos[yystate], yyvsp);
+      YYPOPSTACK;
+      yystate = *yyssp;
+      YY_STACK_PRINT (yyss, yyssp);
     }
-  else if (yyn == 0)
-    goto yyerrpop;
 
   if (yyn == YYFINAL)
     YYACCEPT;
 
-#if YYDEBUG != 0
-  if (yydebug)
-    fprintf(stderr, "Shifting error token, ");
-#endif
-
   *++yyvsp = yylval;
-#ifdef YYLSP_NEEDED
-  *++yylsp = yylloc;
-#endif
+
+
+  /* Shift the error token. */
+  YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
 
   yystate = yyn;
   goto yynewstate;
 
- yyacceptlab:
-  /* YYACCEPT comes here.  */
-  if (yyfree_stacks)
-    {
-      free (yyss);
-      free (yyvs);
-#ifdef YYLSP_NEEDED
-      free (yyls);
-#endif
-    }
-  return 0;
 
- yyabortlab:
-  /* YYABORT comes here.  */
-  if (yyfree_stacks)
-    {
-      free (yyss);
-      free (yyvs);
-#ifdef YYLSP_NEEDED
-      free (yyls);
+/*-------------------------------------.
+| yyacceptlab -- YYACCEPT comes here.  |
+`-------------------------------------*/
+yyacceptlab:
+  yyresult = 0;
+  goto yyreturn;
+
+/*-----------------------------------.
+| yyabortlab -- YYABORT comes here.  |
+`-----------------------------------*/
+yyabortlab:
+  yyresult = 1;
+  goto yyreturn;
+
+#ifndef yyoverflow
+/*-------------------------------------------------.
+| yyexhaustedlab -- memory exhaustion comes here.  |
+`-------------------------------------------------*/
+yyexhaustedlab:
+  yyerror (YY_("memory exhausted"));
+  yyresult = 2;
+  /* Fall through.  */
+#endif
+
+yyreturn:
+  if (yychar != YYEOF && yychar != YYEMPTY)
+     yydestruct ("Cleanup: discarding lookahead",
+		 yytoken, &yylval);
+  while (yyssp != yyss)
+    {
+      yydestruct ("Cleanup: popping",
+		  yystos[*yyssp], yyvsp);
+      YYPOPSTACK;
+    }
+#ifndef yyoverflow
+  if (yyss != yyssa)
+    YYSTACK_FREE (yyss);
 #endif
-    }
-  return 1;
+  return yyresult;
 }
-#line 2869 "/Volumes/ProjectsDisk/cvs/llvm/lib/AsmParser/llvmAsmParser.y"
+
+
+#line 2852 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
 
 
 // common code from the two 'RunVMAsmParser' functions
@@ -5007,3 +5883,4 @@
   GenerateError(errMsg);
   return 0;
 }
+


Index: llvm/lib/AsmParser/llvmAsmParser.h.cvs
diff -u llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.49 llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.50
--- llvm/lib/AsmParser/llvmAsmParser.h.cvs:1.49	Tue Jan 30 22:44:08 2007
+++ llvm/lib/AsmParser/llvmAsmParser.h.cvs	Thu Feb  1 20:16:22 2007
@@ -1,4 +1,302 @@
-typedef union {
+/* A Bison parser, made by GNU Bison 2.1.  */
+
+/* Skeleton parser for Yacc-like parsing with Bison,
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.  */
+
+/* As a special exception, when this file is copied by Bison into a
+   Bison output file, you may use that output file without restriction.
+   This special exception was added by the Free Software Foundation
+   in version 1.24 of Bison.  */
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     ESINT64VAL = 258,
+     EUINT64VAL = 259,
+     LOCALVAL_ID = 260,
+     GLOBALVAL_ID = 261,
+     FPVAL = 262,
+     VOID = 263,
+     INTTYPE = 264,
+     FLOAT = 265,
+     DOUBLE = 266,
+     LABEL = 267,
+     TYPE = 268,
+     LOCALVAR = 269,
+     GLOBALVAR = 270,
+     LABELSTR = 271,
+     STRINGCONSTANT = 272,
+     ATSTRINGCONSTANT = 273,
+     IMPLEMENTATION = 274,
+     ZEROINITIALIZER = 275,
+     TRUETOK = 276,
+     FALSETOK = 277,
+     BEGINTOK = 278,
+     ENDTOK = 279,
+     DECLARE = 280,
+     DEFINE = 281,
+     GLOBAL = 282,
+     CONSTANT = 283,
+     SECTION = 284,
+     VOLATILE = 285,
+     TO = 286,
+     DOTDOTDOT = 287,
+     NULL_TOK = 288,
+     UNDEF = 289,
+     INTERNAL = 290,
+     LINKONCE = 291,
+     WEAK = 292,
+     APPENDING = 293,
+     DLLIMPORT = 294,
+     DLLEXPORT = 295,
+     EXTERN_WEAK = 296,
+     OPAQUE = 297,
+     EXTERNAL = 298,
+     TARGET = 299,
+     TRIPLE = 300,
+     ALIGN = 301,
+     DEPLIBS = 302,
+     CALL = 303,
+     TAIL = 304,
+     ASM_TOK = 305,
+     MODULE = 306,
+     SIDEEFFECT = 307,
+     CC_TOK = 308,
+     CCC_TOK = 309,
+     FASTCC_TOK = 310,
+     COLDCC_TOK = 311,
+     X86_STDCALLCC_TOK = 312,
+     X86_FASTCALLCC_TOK = 313,
+     DATALAYOUT = 314,
+     RET = 315,
+     BR = 316,
+     SWITCH = 317,
+     INVOKE = 318,
+     UNWIND = 319,
+     UNREACHABLE = 320,
+     ADD = 321,
+     SUB = 322,
+     MUL = 323,
+     UDIV = 324,
+     SDIV = 325,
+     FDIV = 326,
+     UREM = 327,
+     SREM = 328,
+     FREM = 329,
+     AND = 330,
+     OR = 331,
+     XOR = 332,
+     SHL = 333,
+     LSHR = 334,
+     ASHR = 335,
+     ICMP = 336,
+     FCMP = 337,
+     EQ = 338,
+     NE = 339,
+     SLT = 340,
+     SGT = 341,
+     SLE = 342,
+     SGE = 343,
+     ULT = 344,
+     UGT = 345,
+     ULE = 346,
+     UGE = 347,
+     OEQ = 348,
+     ONE = 349,
+     OLT = 350,
+     OGT = 351,
+     OLE = 352,
+     OGE = 353,
+     ORD = 354,
+     UNO = 355,
+     UEQ = 356,
+     UNE = 357,
+     MALLOC = 358,
+     ALLOCA = 359,
+     FREE = 360,
+     LOAD = 361,
+     STORE = 362,
+     GETELEMENTPTR = 363,
+     TRUNC = 364,
+     ZEXT = 365,
+     SEXT = 366,
+     FPTRUNC = 367,
+     FPEXT = 368,
+     BITCAST = 369,
+     UITOFP = 370,
+     SITOFP = 371,
+     FPTOUI = 372,
+     FPTOSI = 373,
+     INTTOPTR = 374,
+     PTRTOINT = 375,
+     PHI_TOK = 376,
+     SELECT = 377,
+     VAARG = 378,
+     EXTRACTELEMENT = 379,
+     INSERTELEMENT = 380,
+     SHUFFLEVECTOR = 381,
+     NORETURN = 382,
+     INREG = 383,
+     SRET = 384,
+     DEFAULT = 385,
+     HIDDEN = 386
+   };
+#endif
+/* Tokens.  */
+#define ESINT64VAL 258
+#define EUINT64VAL 259
+#define LOCALVAL_ID 260
+#define GLOBALVAL_ID 261
+#define FPVAL 262
+#define VOID 263
+#define INTTYPE 264
+#define FLOAT 265
+#define DOUBLE 266
+#define LABEL 267
+#define TYPE 268
+#define LOCALVAR 269
+#define GLOBALVAR 270
+#define LABELSTR 271
+#define STRINGCONSTANT 272
+#define ATSTRINGCONSTANT 273
+#define IMPLEMENTATION 274
+#define ZEROINITIALIZER 275
+#define TRUETOK 276
+#define FALSETOK 277
+#define BEGINTOK 278
+#define ENDTOK 279
+#define DECLARE 280
+#define DEFINE 281
+#define GLOBAL 282
+#define CONSTANT 283
+#define SECTION 284
+#define VOLATILE 285
+#define TO 286
+#define DOTDOTDOT 287
+#define NULL_TOK 288
+#define UNDEF 289
+#define INTERNAL 290
+#define LINKONCE 291
+#define WEAK 292
+#define APPENDING 293
+#define DLLIMPORT 294
+#define DLLEXPORT 295
+#define EXTERN_WEAK 296
+#define OPAQUE 297
+#define EXTERNAL 298
+#define TARGET 299
+#define TRIPLE 300
+#define ALIGN 301
+#define DEPLIBS 302
+#define CALL 303
+#define TAIL 304
+#define ASM_TOK 305
+#define MODULE 306
+#define SIDEEFFECT 307
+#define CC_TOK 308
+#define CCC_TOK 309
+#define FASTCC_TOK 310
+#define COLDCC_TOK 311
+#define X86_STDCALLCC_TOK 312
+#define X86_FASTCALLCC_TOK 313
+#define DATALAYOUT 314
+#define RET 315
+#define BR 316
+#define SWITCH 317
+#define INVOKE 318
+#define UNWIND 319
+#define UNREACHABLE 320
+#define ADD 321
+#define SUB 322
+#define MUL 323
+#define UDIV 324
+#define SDIV 325
+#define FDIV 326
+#define UREM 327
+#define SREM 328
+#define FREM 329
+#define AND 330
+#define OR 331
+#define XOR 332
+#define SHL 333
+#define LSHR 334
+#define ASHR 335
+#define ICMP 336
+#define FCMP 337
+#define EQ 338
+#define NE 339
+#define SLT 340
+#define SGT 341
+#define SLE 342
+#define SGE 343
+#define ULT 344
+#define UGT 345
+#define ULE 346
+#define UGE 347
+#define OEQ 348
+#define ONE 349
+#define OLT 350
+#define OGT 351
+#define OLE 352
+#define OGE 353
+#define ORD 354
+#define UNO 355
+#define UEQ 356
+#define UNE 357
+#define MALLOC 358
+#define ALLOCA 359
+#define FREE 360
+#define LOAD 361
+#define STORE 362
+#define GETELEMENTPTR 363
+#define TRUNC 364
+#define ZEXT 365
+#define SEXT 366
+#define FPTRUNC 367
+#define FPEXT 368
+#define BITCAST 369
+#define UITOFP 370
+#define SITOFP 371
+#define FPTOUI 372
+#define FPTOSI 373
+#define INTTOPTR 374
+#define PTRTOINT 375
+#define PHI_TOK 376
+#define SELECT 377
+#define VAARG 378
+#define EXTRACTELEMENT 379
+#define INSERTELEMENT 380
+#define SHUFFLEVECTOR 381
+#define NORETURN 382
+#define INREG 383
+#define SRET 384
+#define DEFAULT 385
+#define HIDDEN 386
+
+
+
+
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
+#line 886 "/proj/llvm/llvm-4/lib/AsmParser/llvmAsmParser.y"
+typedef union YYSTYPE {
   llvm::Module                           *ModuleVal;
   llvm::Function                         *FunctionVal;
   llvm::BasicBlock                       *BasicBlockVal;
@@ -43,135 +341,14 @@
   llvm::ICmpInst::Predicate         IPredicate;
   llvm::FCmpInst::Predicate         FPredicate;
 } YYSTYPE;
-#define	ESINT64VAL	257
-#define	EUINT64VAL	258
-#define	LOCALVAL_ID	259
-#define	GLOBALVAL_ID	260
-#define	FPVAL	261
-#define	VOID	262
-#define	INTTYPE	263
-#define	FLOAT	264
-#define	DOUBLE	265
-#define	LABEL	266
-#define	TYPE	267
-#define	LOCALVAR	268
-#define	GLOBALVAR	269
-#define	LABELSTR	270
-#define	STRINGCONSTANT	271
-#define	ATSTRINGCONSTANT	272
-#define	IMPLEMENTATION	273
-#define	ZEROINITIALIZER	274
-#define	TRUETOK	275
-#define	FALSETOK	276
-#define	BEGINTOK	277
-#define	ENDTOK	278
-#define	DECLARE	279
-#define	DEFINE	280
-#define	GLOBAL	281
-#define	CONSTANT	282
-#define	SECTION	283
-#define	VOLATILE	284
-#define	TO	285
-#define	DOTDOTDOT	286
-#define	NULL_TOK	287
-#define	UNDEF	288
-#define	INTERNAL	289
-#define	LINKONCE	290
-#define	WEAK	291
-#define	APPENDING	292
-#define	DLLIMPORT	293
-#define	DLLEXPORT	294
-#define	EXTERN_WEAK	295
-#define	OPAQUE	296
-#define	EXTERNAL	297
-#define	TARGET	298
-#define	TRIPLE	299
-#define	ALIGN	300
-#define	DEPLIBS	301
-#define	CALL	302
-#define	TAIL	303
-#define	ASM_TOK	304
-#define	MODULE	305
-#define	SIDEEFFECT	306
-#define	CC_TOK	307
-#define	CCC_TOK	308
-#define	FASTCC_TOK	309
-#define	COLDCC_TOK	310
-#define	X86_STDCALLCC_TOK	311
-#define	X86_FASTCALLCC_TOK	312
-#define	DATALAYOUT	313
-#define	RET	314
-#define	BR	315
-#define	SWITCH	316
-#define	INVOKE	317
-#define	UNWIND	318
-#define	UNREACHABLE	319
-#define	ADD	320
-#define	SUB	321
-#define	MUL	322
-#define	UDIV	323
-#define	SDIV	324
-#define	FDIV	325
-#define	UREM	326
-#define	SREM	327
-#define	FREM	328
-#define	AND	329
-#define	OR	330
-#define	XOR	331
-#define	ICMP	332
-#define	FCMP	333
-#define	EQ	334
-#define	NE	335
-#define	SLT	336
-#define	SGT	337
-#define	SLE	338
-#define	SGE	339
-#define	ULT	340
-#define	UGT	341
-#define	ULE	342
-#define	UGE	343
-#define	OEQ	344
-#define	ONE	345
-#define	OLT	346
-#define	OGT	347
-#define	OLE	348
-#define	OGE	349
-#define	ORD	350
-#define	UNO	351
-#define	UEQ	352
-#define	UNE	353
-#define	MALLOC	354
-#define	ALLOCA	355
-#define	FREE	356
-#define	LOAD	357
-#define	STORE	358
-#define	GETELEMENTPTR	359
-#define	TRUNC	360
-#define	ZEXT	361
-#define	SEXT	362
-#define	FPTRUNC	363
-#define	FPEXT	364
-#define	BITCAST	365
-#define	UITOFP	366
-#define	SITOFP	367
-#define	FPTOUI	368
-#define	FPTOSI	369
-#define	INTTOPTR	370
-#define	PTRTOINT	371
-#define	PHI_TOK	372
-#define	SELECT	373
-#define	SHL	374
-#define	LSHR	375
-#define	ASHR	376
-#define	VAARG	377
-#define	EXTRACTELEMENT	378
-#define	INSERTELEMENT	379
-#define	SHUFFLEVECTOR	380
-#define	NORETURN	381
-#define	INREG	382
-#define	SRET	383
-#define	DEFAULT	384
-#define	HIDDEN	385
-
+/* Line 1447 of yacc.c.  */
+#line 346 "llvmAsmParser.tab.h"
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */
+# define YYSTYPE_IS_DECLARED 1
+# define YYSTYPE_IS_TRIVIAL 1
+#endif
 
 extern YYSTYPE llvmAsmlval;
+
+
+


Index: llvm/lib/AsmParser/llvmAsmParser.y
diff -u llvm/lib/AsmParser/llvmAsmParser.y:1.316 llvm/lib/AsmParser/llvmAsmParser.y:1.317
--- llvm/lib/AsmParser/llvmAsmParser.y:1.316	Tue Jan 30 22:43:46 2007
+++ llvm/lib/AsmParser/llvmAsmParser.y	Thu Feb  1 20:16:22 2007
@@ -997,6 +997,8 @@
 // Binary Operators
 %type  <BinaryOpVal> ArithmeticOps LogicalOps // Binops Subcatagories
 %token <BinaryOpVal> ADD SUB MUL UDIV SDIV FDIV UREM SREM FREM AND OR XOR
+%token <BinaryOpVal> SHL LSHR ASHR
+
 %token <OtherOpVal> ICMP FCMP
 %type  <IPredicate> IPredicates
 %type  <FPredicate> FPredicates
@@ -1012,8 +1014,7 @@
 %token <CastOpVal> UITOFP SITOFP FPTOUI FPTOSI INTTOPTR PTRTOINT
 
 // Other Operators
-%type  <OtherOpVal> ShiftOps
-%token <OtherOpVal> PHI_TOK SELECT SHL LSHR ASHR VAARG
+%token <OtherOpVal> PHI_TOK SELECT VAARG
 %token <OtherOpVal> EXTRACTELEMENT INSERTELEMENT SHUFFLEVECTOR
 
 // Function Attributes
@@ -1030,10 +1031,10 @@
 // RET, BR, & SWITCH because they end basic blocks and are treated specially.
 //
 ArithmeticOps: ADD | SUB | MUL | UDIV | SDIV | FDIV | UREM | SREM | FREM;
-LogicalOps   : AND | OR | XOR;
+LogicalOps   : SHL | LSHR | ASHR | AND | OR | XOR;
 CastOps      : TRUNC | ZEXT | SEXT | FPTRUNC | FPEXT | BITCAST | 
                UITOFP | SITOFP | FPTOUI | FPTOSI | INTTOPTR | PTRTOINT;
-ShiftOps     : SHL | LSHR | ASHR;
+
 IPredicates  
   : EQ   { $$ = ICmpInst::ICMP_EQ; }  | NE   { $$ = ICmpInst::ICMP_NE; }
   | SLT  { $$ = ICmpInst::ICMP_SLT; } | SGT  { $$ = ICmpInst::ICMP_SGT; }
@@ -1764,7 +1765,7 @@
     if ($3->getType() != $5->getType())
       GEN_ERROR("Logical operator types must match!");
     if (!$3->getType()->isInteger()) {
-      if (!isa<PackedType>($3->getType()) || 
+      if (Instruction::isShift($1) || !isa<PackedType>($3->getType()) || 
           !cast<PackedType>($3->getType())->getElementType()->isInteger())
         GEN_ERROR("Logical operator requires integral operands!");
     }
@@ -1781,15 +1782,6 @@
       GEN_ERROR("fcmp operand types must match!");
     $$ = ConstantExpr::getFCmp($2, $4, $6);
   }
-  | ShiftOps '(' ConstVal ',' ConstVal ')' {
-    if ($5->getType() != Type::Int8Ty)
-      GEN_ERROR("Shift count for shift constant must be i8 type!");
-    if (!$3->getType()->isInteger())
-      GEN_ERROR("Shift constant expression requires integer operand!");
-    CHECK_FOR_ERROR;
-    $$ = ConstantExpr::get($1, $3, $5);
-    CHECK_FOR_ERROR
-  }
   | EXTRACTELEMENT '(' ConstVal ',' ConstVal ')' {
     if (!ExtractElementInst::isValidOperands($3, $5))
       GEN_ERROR("Invalid extractelement operands!");
@@ -2592,7 +2584,7 @@
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*$2)->getDescription());
     if (!(*$2)->isInteger()) {
-      if (!isa<PackedType>($2->get()) ||
+      if (Instruction::isShift($1) || !isa<PackedType>($2->get()) ||
           !cast<PackedType>($2->get())->getElementType()->isInteger())
         GEN_ERROR("Logical operator requires integral operands!");
     }
@@ -2631,15 +2623,6 @@
     if ($$ == 0)
       GEN_ERROR("fcmp operator returned null!");
   }
-  | ShiftOps ResolvedVal ',' ResolvedVal {
-    if ($4->getType() != Type::Int8Ty)
-      GEN_ERROR("Shift amount must be i8 type!");
-    if (!$2->getType()->isInteger())
-      GEN_ERROR("Shift constant expression requires integer operand!");
-    CHECK_FOR_ERROR;
-    $$ = new ShiftInst($1, $2, $4);
-    CHECK_FOR_ERROR
-  }
   | CastOps ResolvedVal TO Types {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*$4)->getDescription());


Index: llvm/lib/AsmParser/llvmAsmParser.y.cvs
diff -u llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.62 llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.63
--- llvm/lib/AsmParser/llvmAsmParser.y.cvs:1.62	Tue Jan 30 22:44:08 2007
+++ llvm/lib/AsmParser/llvmAsmParser.y.cvs	Thu Feb  1 20:16:22 2007
@@ -997,6 +997,8 @@
 // Binary Operators
 %type  <BinaryOpVal> ArithmeticOps LogicalOps // Binops Subcatagories
 %token <BinaryOpVal> ADD SUB MUL UDIV SDIV FDIV UREM SREM FREM AND OR XOR
+%token <BinaryOpVal> SHL LSHR ASHR
+
 %token <OtherOpVal> ICMP FCMP
 %type  <IPredicate> IPredicates
 %type  <FPredicate> FPredicates
@@ -1012,8 +1014,7 @@
 %token <CastOpVal> UITOFP SITOFP FPTOUI FPTOSI INTTOPTR PTRTOINT
 
 // Other Operators
-%type  <OtherOpVal> ShiftOps
-%token <OtherOpVal> PHI_TOK SELECT SHL LSHR ASHR VAARG
+%token <OtherOpVal> PHI_TOK SELECT VAARG
 %token <OtherOpVal> EXTRACTELEMENT INSERTELEMENT SHUFFLEVECTOR
 
 // Function Attributes
@@ -1030,10 +1031,10 @@
 // RET, BR, & SWITCH because they end basic blocks and are treated specially.
 //
 ArithmeticOps: ADD | SUB | MUL | UDIV | SDIV | FDIV | UREM | SREM | FREM;
-LogicalOps   : AND | OR | XOR;
+LogicalOps   : SHL | LSHR | ASHR | AND | OR | XOR;
 CastOps      : TRUNC | ZEXT | SEXT | FPTRUNC | FPEXT | BITCAST | 
                UITOFP | SITOFP | FPTOUI | FPTOSI | INTTOPTR | PTRTOINT;
-ShiftOps     : SHL | LSHR | ASHR;
+
 IPredicates  
   : EQ   { $$ = ICmpInst::ICMP_EQ; }  | NE   { $$ = ICmpInst::ICMP_NE; }
   | SLT  { $$ = ICmpInst::ICMP_SLT; } | SGT  { $$ = ICmpInst::ICMP_SGT; }
@@ -1764,7 +1765,7 @@
     if ($3->getType() != $5->getType())
       GEN_ERROR("Logical operator types must match!");
     if (!$3->getType()->isInteger()) {
-      if (!isa<PackedType>($3->getType()) || 
+      if (Instruction::isShift($1) || !isa<PackedType>($3->getType()) || 
           !cast<PackedType>($3->getType())->getElementType()->isInteger())
         GEN_ERROR("Logical operator requires integral operands!");
     }
@@ -1781,15 +1782,6 @@
       GEN_ERROR("fcmp operand types must match!");
     $$ = ConstantExpr::getFCmp($2, $4, $6);
   }
-  | ShiftOps '(' ConstVal ',' ConstVal ')' {
-    if ($5->getType() != Type::Int8Ty)
-      GEN_ERROR("Shift count for shift constant must be i8 type!");
-    if (!$3->getType()->isInteger())
-      GEN_ERROR("Shift constant expression requires integer operand!");
-    CHECK_FOR_ERROR;
-    $$ = ConstantExpr::get($1, $3, $5);
-    CHECK_FOR_ERROR
-  }
   | EXTRACTELEMENT '(' ConstVal ',' ConstVal ')' {
     if (!ExtractElementInst::isValidOperands($3, $5))
       GEN_ERROR("Invalid extractelement operands!");
@@ -2592,7 +2584,7 @@
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*$2)->getDescription());
     if (!(*$2)->isInteger()) {
-      if (!isa<PackedType>($2->get()) ||
+      if (Instruction::isShift($1) || !isa<PackedType>($2->get()) ||
           !cast<PackedType>($2->get())->getElementType()->isInteger())
         GEN_ERROR("Logical operator requires integral operands!");
     }
@@ -2631,15 +2623,6 @@
     if ($$ == 0)
       GEN_ERROR("fcmp operator returned null!");
   }
-  | ShiftOps ResolvedVal ',' ResolvedVal {
-    if ($4->getType() != Type::Int8Ty)
-      GEN_ERROR("Shift amount must be i8 type!");
-    if (!$2->getType()->isInteger())
-      GEN_ERROR("Shift constant expression requires integer operand!");
-    CHECK_FOR_ERROR;
-    $$ = new ShiftInst($1, $2, $4);
-    CHECK_FOR_ERROR
-  }
   | CastOps ResolvedVal TO Types {
     if (!UpRefs.empty())
       GEN_ERROR("Invalid upreference in type: " + (*$4)->getDescription());






More information about the llvm-commits mailing list