]> oss.titaniummirror.com Git - nesc.git/blobdiff - src/c-parse.tab.c
Merge branch 'upstream' (nesc-1.3.2)
[nesc.git] / src / c-parse.tab.c
index 5475b3d13c4ada244c51eb031cad0c8abd209bb0..a02a40caf31b94bc19dfffb78dc44961ed6bf893 100644 (file)
@@ -1,24 +1,23 @@
-/* A Bison parser, made by GNU Bison 2.3.  */
 
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* A Bison parser, made by GNU Bison 2.4.1.  */
 
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+   
+      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
+   
+   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.
-
+   the Free Software Foundation, either version 3 of the License, 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.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -29,7 +28,7 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
@@ -47,7 +46,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.3"
+#define YYBISON_VERSION "2.4.1"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
 /* Pure parsers.  */
 #define YYPURE 1
 
-/* Using locations.  */
-#define YYLSP_NEEDED 0
-
-
+/* Push parsers.  */
+#define YYPUSH 0
 
-/* Tokens.  */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
-   /* Put the tokens into the symbol table, so that GDB and other debuggers
-      know about them.  */
-   enum yytokentype {
-     IDENTIFIER = 258,
-     TYPENAME = 259,
-     COMPONENTREF = 260,
-     SCSPEC = 261,
-     TYPESPEC = 262,
-     TYPE_QUAL = 263,
-     FN_QUAL = 264,
-     CONSTANT = 265,
-     STRING = 266,
-     MAGIC_STRING = 267,
-     ELLIPSIS = 268,
-     SIZEOF = 269,
-     ENUM = 270,
-     STRUCT = 271,
-     UNION = 272,
-     IF = 273,
-     ELSE = 274,
-     WHILE = 275,
-     DO = 276,
-     FOR = 277,
-     SWITCH = 278,
-     CASE = 279,
-     DEFAULT = 280,
-     BREAK = 281,
-     CONTINUE = 282,
-     RETURN = 283,
-     GOTO = 284,
-     ASM_KEYWORD = 285,
-     TYPEOF = 286,
-     ALIGNOF = 287,
-     ATTRIBUTE = 288,
-     EXTENSION = 289,
-     LABEL = 290,
-     REALPART = 291,
-     IMAGPART = 292,
-     VA_ARG = 293,
-     OFFSETOF = 294,
-     ASSIGN = 295,
-     OROR = 296,
-     ANDAND = 297,
-     EQCOMPARE = 298,
-     ARITHCOMPARE = 299,
-     RSHIFT = 300,
-     LSHIFT = 301,
-     MINUSMINUS = 302,
-     PLUSPLUS = 303,
-     POINTSAT = 304,
-     DISPATCH_C = 305,
-     DISPATCH_NESC = 306,
-     DISPATCH_PARM = 307,
-     DISPATCH_TYPE = 308,
-     ATOMIC = 309,
-     USES = 310,
-     INTERFACE = 311,
-     COMPONENTS = 312,
-     PROVIDES = 313,
-     MODULE = 314,
-     INCLUDES = 315,
-     CONFIGURATION = 316,
-     AS = 317,
-     TASTNIOP = 318,
-     IMPLEMENTATION = 319,
-     CALL = 320,
-     SIGNAL = 321,
-     POST = 322,
-     GENERIC = 323,
-     NEW = 324,
-     NX_STRUCT = 325,
-     NX_UNION = 326,
-     ABSTRACT = 327,
-     COMPONENT = 328,
-     EXTENDS = 329,
-     TARGET_ATTRIBUTE0 = 330,
-     TARGET_ATTRIBUTE1 = 331,
-     TARGET_DEF = 332
-   };
-#endif
-/* Tokens.  */
-#define IDENTIFIER 258
-#define TYPENAME 259
-#define COMPONENTREF 260
-#define SCSPEC 261
-#define TYPESPEC 262
-#define TYPE_QUAL 263
-#define FN_QUAL 264
-#define CONSTANT 265
-#define STRING 266
-#define MAGIC_STRING 267
-#define ELLIPSIS 268
-#define SIZEOF 269
-#define ENUM 270
-#define STRUCT 271
-#define UNION 272
-#define IF 273
-#define ELSE 274
-#define WHILE 275
-#define DO 276
-#define FOR 277
-#define SWITCH 278
-#define CASE 279
-#define DEFAULT 280
-#define BREAK 281
-#define CONTINUE 282
-#define RETURN 283
-#define GOTO 284
-#define ASM_KEYWORD 285
-#define TYPEOF 286
-#define ALIGNOF 287
-#define ATTRIBUTE 288
-#define EXTENSION 289
-#define LABEL 290
-#define REALPART 291
-#define IMAGPART 292
-#define VA_ARG 293
-#define OFFSETOF 294
-#define ASSIGN 295
-#define OROR 296
-#define ANDAND 297
-#define EQCOMPARE 298
-#define ARITHCOMPARE 299
-#define RSHIFT 300
-#define LSHIFT 301
-#define MINUSMINUS 302
-#define PLUSPLUS 303
-#define POINTSAT 304
-#define DISPATCH_C 305
-#define DISPATCH_NESC 306
-#define DISPATCH_PARM 307
-#define DISPATCH_TYPE 308
-#define ATOMIC 309
-#define USES 310
-#define INTERFACE 311
-#define COMPONENTS 312
-#define PROVIDES 313
-#define MODULE 314
-#define INCLUDES 315
-#define CONFIGURATION 316
-#define AS 317
-#define TASTNIOP 318
-#define IMPLEMENTATION 319
-#define CALL 320
-#define SIGNAL 321
-#define POST 322
-#define GENERIC 323
-#define NEW 324
-#define NX_STRUCT 325
-#define NX_UNION 326
-#define ABSTRACT 327
-#define COMPONENT 328
-#define EXTENDS 329
-#define TARGET_ATTRIBUTE0 330
-#define TARGET_ATTRIBUTE1 331
-#define TARGET_DEF 332
+/* Pull parsers.  */
+#define YYPULL 1
 
+/* Using locations.  */
+#define YYLSP_NEEDED 0
 
 
 
 /* Copy the first part of user declarations.  */
+
+/* Line 189 of yacc.c  */
 #line 33 "c-parse.y"
 
 #include <stdio.h>
@@ -260,6 +104,8 @@ void yyerror();
 
 /* Cause the `yydebug' variable to be defined.  */
 #define YYDEBUG 1
+
+/* Line 189 of yacc.c  */
 #line 248 "c-parse.y"
 
 /* Region in which to allocate parse structures. Idea: the AST user can set
@@ -475,6 +321,9 @@ statement make_error_stmt(void)
 void yyprint();
 
 
+/* Line 189 of yacc.c  */
+#line 326 "c-parse.tab.c"
+
 /* Enabling traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 0
@@ -493,20 +342,105 @@ void yyprint();
 # define YYTOKEN_TABLE 0
 #endif
 
+
+/* Tokens.  */
+#ifndef YYTOKENTYPE
+# define YYTOKENTYPE
+   /* Put the tokens into the symbol table, so that GDB and other debuggers
+      know about them.  */
+   enum yytokentype {
+     IDENTIFIER = 258,
+     TYPENAME = 259,
+     COMPONENTREF = 260,
+     SCSPEC = 261,
+     TYPESPEC = 262,
+     TYPE_QUAL = 263,
+     FN_QUAL = 264,
+     CONSTANT = 265,
+     STRING = 266,
+     MAGIC_STRING = 267,
+     ELLIPSIS = 268,
+     SIZEOF = 269,
+     ENUM = 270,
+     STRUCT = 271,
+     UNION = 272,
+     IF = 273,
+     ELSE = 274,
+     WHILE = 275,
+     DO = 276,
+     FOR = 277,
+     SWITCH = 278,
+     CASE = 279,
+     DEFAULT = 280,
+     BREAK = 281,
+     CONTINUE = 282,
+     RETURN = 283,
+     GOTO = 284,
+     ASM_KEYWORD = 285,
+     TYPEOF = 286,
+     ALIGNOF = 287,
+     ATTRIBUTE = 288,
+     EXTENSION = 289,
+     LABEL = 290,
+     REALPART = 291,
+     IMAGPART = 292,
+     VA_ARG = 293,
+     OFFSETOF = 294,
+     ASSIGN = 295,
+     OROR = 296,
+     ANDAND = 297,
+     EQCOMPARE = 298,
+     ARITHCOMPARE = 299,
+     RSHIFT = 300,
+     LSHIFT = 301,
+     MINUSMINUS = 302,
+     PLUSPLUS = 303,
+     POINTSAT = 304,
+     DISPATCH_C = 305,
+     DISPATCH_NESC = 306,
+     DISPATCH_PARM = 307,
+     DISPATCH_TYPE = 308,
+     ATOMIC = 309,
+     USES = 310,
+     INTERFACE = 311,
+     COMPONENTS = 312,
+     PROVIDES = 313,
+     MODULE = 314,
+     INCLUDES = 315,
+     CONFIGURATION = 316,
+     AS = 317,
+     TASTNIOP = 318,
+     IMPLEMENTATION = 319,
+     CALL = 320,
+     SIGNAL = 321,
+     POST = 322,
+     GENERIC = 323,
+     NEW = 324,
+     NX_STRUCT = 325,
+     NX_UNION = 326,
+     ABSTRACT = 327,
+     COMPONENT = 328,
+     EXTENDS = 329,
+     TARGET_ATTRIBUTE0 = 330,
+     TARGET_ATTRIBUTE1 = 331,
+     TARGET_DEF = 332
+   };
+#endif
+
+
+
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
-typedef int YYSTYPE;
+
 # 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 216 of yacc.c.  */
-#line 510 "c-parse.tab.c"
+/* Line 264 of yacc.c  */
+#line 444 "c-parse.tab.c"
 
 #ifdef short
 # undef short
@@ -581,14 +515,14 @@ typedef short int yytype_int16;
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static int
-YYID (int i)
+YYID (int yyi)
 #else
 static int
-YYID (i)
-    int i;
+YYID (yyi)
+    int yyi;
 #endif
 {
-  return i;
+  return yyi;
 }
 #endif
 
@@ -669,9 +603,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  yytype_int16 yyss;
-  YYSTYPE yyvs;
-  };
+  yytype_int16 yyss_alloc;
+  YYSTYPE yyvs_alloc;
+};
 
 /* The size of the maximum gap between one aligned stack and the next.  */
 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@ -705,12 +639,12 @@ union yyalloc
    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)                                       \
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)                          \
     do                                                                 \
       {                                                                        \
        YYSIZE_T yynewbytes;                                            \
-       YYCOPY (&yyptr->Stack, Stack, yysize);                          \
-       Stack = &yyptr->Stack;                                          \
+       YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
+       Stack = &yyptr->Stack_alloc;                                    \
        yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
        yyptr += yynewbytes / sizeof (*yyptr);                          \
       }                                                                        \
@@ -1138,26 +1072,26 @@ static const char *const yytname[] =
   "SIGNAL", "POST", "GENERIC", "NEW", "NX_STRUCT", "NX_UNION", "ABSTRACT",
   "COMPONENT", "EXTENDS", "TARGET_ATTRIBUTE0", "TARGET_ATTRIBUTE1",
   "TARGET_DEF", "','", "'}'", "']'", "')'", "'@'", "$accept", "dispatch",
-  "ncheader", "@1", "includes_list", "includes", "include_list",
-  "interface", "@2", "@3", "interface_parms", "interface_parm_list",
-  "interface_parm", "type_parm", "datadef_list", "parameters", "@4",
-  "parameters1", "component", "module", "@5", "@6", "configuration", "@7",
-  "@8", "@9", "binary_component", "@10", "@11", "generic",
+  "ncheader", "$@1", "includes_list", "includes", "include_list",
+  "interface", "$@2", "$@3", "interface_parms", "interface_parm_list",
+  "interface_parm", "type_parm", "datadef_list", "parameters", "$@4",
+  "parameters1", "component", "module", "$@5", "$@6", "configuration",
+  "$@7", "$@8", "$@9", "binary_component", "$@10", "$@11", "generic",
   "component_parms", "template_parms", "template_parmlist",
   "template_parm", "requires_or_provides_list",
-  "requires_or_provides_list_", "requires_or_provides", "@12", "requires",
-  "@13", "provides", "@14", "parameterised_interface_list",
+  "requires_or_provides_list_", "requires_or_provides", "$@12", "requires",
+  "$@13", "provides", "$@14", "parameterised_interface_list",
   "parameterised_interfaces", "parameterised_interface", "interface_ref",
-  "interface_type", "@15", "typelist", "iconfiguration", "@16", "cuses",
+  "interface_type", "$@15", "typelist", "iconfiguration", "@16", "cuses",
   "component_list", "component_ref", "component_ref2", "generic_args",
   "generic_arglist", "generic_arg", "generic_type", "configuration_decls",
   "configuration_decl", "connection", "endpoint",
   "parameterised_identifier", "imodule", "@17", "extdefs", "@18", "@19",
   "extdef", "datadef", "just_datadef", "target_def", "fndef", "fndef2",
-  "@20", "@21", "identifier", "id_label", "idword", "unop", "expr",
+  "$@20", "$@21", "identifier", "id_label", "idword", "unop", "expr",
   "exprlist", "nonnull_exprlist", "nonnull_exprlist_", "callkind",
-  "unary_expr", "sizeof", "alignof", "cast_expr", "@22", "expr_no_commas",
-  "@23", "primary", "@24", "fieldlist", "function_call", "string",
+  "unary_expr", "sizeof", "alignof", "cast_expr", "$@22", "expr_no_commas",
+  "$@23", "primary", "$@24", "fieldlist", "function_call", "string",
   "old_style_parm_decls", "datadecls", "datadecl", "decls", "setspecs",
   "maybe_resetattrs", "decl", "declspecs_nosc_nots_nosa_noea",
   "declspecs_nosc_nots_nosa_ea", "declspecs_nosc_nots_sa_noea",
@@ -1177,27 +1111,27 @@ static const char *const yytname[] =
   "notype_initdcl", "@26", "maybe_attribute", "eattributes",
   "nesc_attributes", "attributes", "attribute", "target_attribute",
   "restricted_expr", "attribute_list", "attrib", "nattrib", "nastart",
-  "any_word", "init", "@27", "initlist_maybe_comma", "initlist1",
-  "initelt", "@28", "initval", "@29", "designator_list", "designator",
-  "nested_function", "@30", "@31", "notype_nested_function", "@32", "@33",
-  "declarator", "after_type_declarator", "parm_declarator",
+  "any_word", "init", "$@27", "initlist_maybe_comma", "initlist1",
+  "initelt", "@28", "initval", "$@29", "designator_list", "designator",
+  "nested_function", "$@30", "$@31", "notype_nested_function", "$@32",
+  "$@33", "declarator", "after_type_declarator", "parm_declarator",
   "notype_declarator", "tag", "structuse", "structdef", "@34", "@35",
   "@36", "@37", "structkind", "maybecomma", "maybecomma_warn",
   "component_decl_list", "component_decl_list2", "component_decl",
   "components", "components_notype", "component_declarator",
   "component_notype_declarator", "enumlist", "enumerator", "typename",
-  "@38", "absdcl", "absdcl1", "absdcl1_noea", "absdcl1_ea",
+  "$@38", "absdcl", "absdcl1", "absdcl1_noea", "absdcl1_ea",
   "direct_absdcl1", "array_or_fn_declarator", "array_or_absfn_declarator",
   "fn_declarator", "absfn_declarator", "array_declarator", "stmts",
   "stmt_or_labels", "xstmts", "errstmt", "pushlevel", "maybe_label_decls",
   "label_decls", "label_decl", "compstmt_or_error", "compstmt_start",
   "compstmt", "simple_if", "if_prefix", "do_stmt_start", "@39",
-  "labeled_stmt", "stmt_or_label", "atomic_stmt", "@40", "stmt_or_error",
-  "stmt", "@41", "@42", "@43", "@44", "@45", "@46", "@47", "label",
+  "labeled_stmt", "stmt_or_label", "atomic_stmt", "$@40", "stmt_or_error",
+  "stmt", "$@41", "$@42", "@43", "$@44", "$@45", "@46", "@47", "label",
   "maybe_type_qual", "xexpr", "asm_operands", "nonnull_asm_operands",
-  "asm_operand", "asm_clobbers", "parmlist", "@48", "parmlist_1", "@49",
+  "asm_operand", "asm_clobbers", "parmlist", "$@48", "parmlist_1", "$@49",
   "parmlist_2", "parms", "parm", "xreferror", "parmlist_or_identifiers",
-  "@50", "parmlist_or_identifiers_1", "identifiers", "old_parameter",
+  "$@50", "parmlist_or_identifiers_1", "identifiers", "old_parameter",
   "identifiers_or_typenames", "fn_quals", "extension", "scspec",
   "type_qual", "fn_qual", "type_spec", 0
 };
@@ -2793,17 +2727,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep)
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
 #else
 static void
-yy_stack_print (bottom, top)
-    yytype_int16 *bottom;
-    yytype_int16 *top;
+yy_stack_print (yybottom, yytop)
+    yytype_int16 *yybottom;
+    yytype_int16 *yytop;
 #endif
 {
   YYFPRINTF (stderr, "Stack now");
-  for (; bottom <= top; ++bottom)
-    YYFPRINTF (stderr, " %d", *bottom);
+  for (; yybottom <= yytop; yybottom++)
+    {
+      int yybot = *yybottom;
+      YYFPRINTF (stderr, " %d", yybot);
+    }
   YYFPRINTF (stderr, "\n");
 }
 
@@ -2837,11 +2774,11 @@ yy_reduce_print (yyvsp, yyrule)
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
-      fprintf (stderr, "   $%d = ", yyi + 1);
+      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
                       &(yyvsp[(yyi + 1) - (yynrhs)])
                                       );
-      fprintf (stderr, "\n");
+      YYFPRINTF (stderr, "\n");
     }
 }
 
@@ -3121,10 +3058,8 @@ yydestruct (yymsg, yytype, yyvaluep)
        break;
     }
 }
-\f
 
 /* Prevent warnings from -Wmissing-prototypes.  */
-
 #ifdef YYPARSE_PARAM
 #if defined __STDC__ || defined __cplusplus
 int yyparse (void *YYPARSE_PARAM);
@@ -3143,10 +3078,9 @@ int yyparse ();
 
 
 
-
-/*----------.
-| yyparse.  |
-`----------*/
+/*-------------------------.
+| yyparse or yypush_parse.  |
+`-------------------------*/
 
 #ifdef YYPARSE_PARAM
 #if (defined __STDC__ || defined __C99__FUNC__ \
@@ -3170,74 +3104,75 @@ yyparse ()
 #endif
 #endif
 {
-  /* The look-ahead symbol.  */
+/* The lookahead symbol.  */
 int yychar;
 
-/* The semantic value of the look-ahead symbol.  */
+/* The semantic value of the lookahead symbol.  */
 YYSTYPE yylval;
 
-/* Number of syntax errors so far.  */
-int yynerrs;
-
-  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;
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-  /* Three stacks and their tools:
-     `yyss': related to states,
-     `yyvs': related to semantic values,
-     `yyls': related to locations.
+    /* Number of syntax errors so far.  */
+    int yynerrs;
 
-     Refer to the stacks thru separate pointers, to allow yyoverflow
-     to reallocate them elsewhere.  */
+    int yystate;
+    /* Number of tokens to shift before error messages enabled.  */
+    int yyerrstatus;
 
-  /* The state stack.  */
-  yytype_int16 yyssa[YYINITDEPTH];
-  yytype_int16 *yyss = yyssa;
-  yytype_int16 *yyssp;
+    /* The stacks and their tools:
+       `yyss': related to states.
+       `yyvs': related to semantic values.
 
-  /* The semantic value stack.  */
-  YYSTYPE yyvsa[YYINITDEPTH];
-  YYSTYPE *yyvs = yyvsa;
-  YYSTYPE *yyvsp;
+       Refer to the stacks thru separate pointers, to allow yyoverflow
+       to reallocate them elsewhere.  */
 
+    /* The state stack.  */
+    yytype_int16 yyssa[YYINITDEPTH];
+    yytype_int16 *yyss;
+    yytype_int16 *yyssp;
 
+    /* The semantic value stack.  */
+    YYSTYPE yyvsa[YYINITDEPTH];
+    YYSTYPE *yyvs;
+    YYSTYPE *yyvsp;
 
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  YYSIZE_T yystacksize = YYINITDEPTH;
+    YYSIZE_T yystacksize;
 
+  int yyn;
+  int yyresult;
+  /* Lookahead token as an internal (translated) token number.  */
+  int yytoken;
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
   /* The number of symbols on the RHS of the reduced rule.
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
+  yytoken = 0;
+  yyss = yyssa;
+  yyvs = yyvsa;
+  yystacksize = YYINITDEPTH;
+
   YYDPRINTF ((stderr, "Starting parse\n"));
 
   yystate = 0;
   yyerrstatus = 0;
   yynerrs = 0;
-  yychar = YYEMPTY;            /* Cause a token to be read.  */
+  yychar = YYEMPTY; /* Cause a token to be read.  */
 
   /* Initialize stack pointers.
      Waste one element of value and location stack
      so that they stay on the same level as the state stack.
      The wasted elements are never initialized.  */
-
   yyssp = yyss;
   yyvsp = yyvs;
 
@@ -3267,7 +3202,6 @@ int yynerrs;
        YYSTYPE *yyvs1 = yyvs;
        yytype_int16 *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
@@ -3275,7 +3209,6 @@ int yynerrs;
        yyoverflow (YY_("memory exhausted"),
                    &yyss1, yysize * sizeof (*yyssp),
                    &yyvs1, yysize * sizeof (*yyvsp),
-
                    &yystacksize);
 
        yyss = yyss1;
@@ -3298,9 +3231,8 @@ int yynerrs;
          (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
        if (! yyptr)
          goto yyexhaustedlab;
-       YYSTACK_RELOCATE (yyss);
-       YYSTACK_RELOCATE (yyvs);
-
+       YYSTACK_RELOCATE (yyss_alloc, yyss);
+       YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
        if (yyss1 != yyssa)
          YYSTACK_FREE (yyss1);
@@ -3311,7 +3243,6 @@ int yynerrs;
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
-
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
                  (unsigned long int) yystacksize));
 
@@ -3321,6 +3252,9 @@ int yynerrs;
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
+  if (yystate == YYFINAL)
+    YYACCEPT;
+
   goto yybackup;
 
 /*-----------.
@@ -3329,16 +3263,16 @@ int yynerrs;
 yybackup:
 
   /* Do appropriate processing given the current state.  Read a
-     look-ahead token if we need one and don't already have one.  */
+     lookahead token if we need one and don't already have one.  */
 
-  /* First try to decide what to do without reference to look-ahead token.  */
+  /* First try to decide what to do without reference to lookahead token.  */
   yyn = yypact[yystate];
   if (yyn == YYPACT_NINF)
     goto yydefault;
 
-  /* Not known => get a look-ahead token if don't already have one.  */
+  /* Not known => get a lookahead token if don't already have one.  */
 
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
@@ -3370,20 +3304,16 @@ yybackup:
       goto yyreduce;
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   /* Count tokens shifted since error; after three, turn off error
      status.  */
   if (yyerrstatus)
     yyerrstatus--;
 
-  /* Shift the look-ahead token.  */
+  /* Shift the lookahead token.  */
   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
-  /* Discard the shifted token unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
+  /* Discard the shifted token.  */
+  yychar = YYEMPTY;
 
   yystate = yyn;
   *++yyvsp = yylval;
@@ -3423,16 +3353,22 @@ yyreduce:
   switch (yyn)
     {
         case 2:
+
+/* Line 1455 of yacc.c  */
 #line 465 "c-parse.y"
     { ;}
     break;
 
   case 3:
+
+/* Line 1455 of yacc.c  */
 #line 466 "c-parse.y"
     { ;}
     break;
 
   case 4:
+
+/* Line 1455 of yacc.c  */
 #line 467 "c-parse.y"
     {
            declaration cdecls = declaration_reverse((yyvsp[(2) - (2)].u.decl)); 
@@ -3440,36 +3376,50 @@ yyreduce:
     break;
 
   case 5:
+
+/* Line 1455 of yacc.c  */
 #line 470 "c-parse.y"
     { parse_tree = NULL; ;}
     break;
 
   case 6:
+
+/* Line 1455 of yacc.c  */
 #line 471 "c-parse.y"
     { parse_tree = CAST(node, (yyvsp[(2) - (2)].u.decl)); ;}
     break;
 
   case 7:
+
+/* Line 1455 of yacc.c  */
 #line 472 "c-parse.y"
     { parse_tree = CAST(node, make_error_decl()); ;}
     break;
 
   case 8:
+
+/* Line 1455 of yacc.c  */
 #line 473 "c-parse.y"
     { parse_tree = CAST(node, (yyvsp[(2) - (2)].u.type)); ;}
     break;
 
   case 9:
+
+/* Line 1455 of yacc.c  */
 #line 474 "c-parse.y"
     { parse_tree = NULL; ;}
     break;
 
   case 10:
+
+/* Line 1455 of yacc.c  */
 #line 478 "c-parse.y"
     { end_macro_saving(); ;}
     break;
 
   case 12:
+
+/* Line 1455 of yacc.c  */
 #line 480 "c-parse.y"
     { 
                    end_macro_saving(); 
@@ -3478,21 +3428,29 @@ yyreduce:
     break;
 
   case 15:
+
+/* Line 1455 of yacc.c  */
 #line 492 "c-parse.y"
     { ;}
     break;
 
   case 16:
+
+/* Line 1455 of yacc.c  */
 #line 497 "c-parse.y"
     { require_c((yyvsp[(1) - (1)].idtoken).location, (yyvsp[(1) - (1)].idtoken).id.data); ;}
     break;
 
   case 17:
+
+/* Line 1455 of yacc.c  */
 #line 499 "c-parse.y"
     { require_c((yyvsp[(3) - (3)].idtoken).location, (yyvsp[(3) - (3)].idtoken).id.data); ;}
     break;
 
   case 18:
+
+/* Line 1455 of yacc.c  */
 #line 505 "c-parse.y"
     { 
                  start_nesc_entity(l_interface, (yyvsp[(3) - (3)].u.word));
@@ -3500,6 +3458,8 @@ yyreduce:
     break;
 
   case 19:
+
+/* Line 1455 of yacc.c  */
 #line 509 "c-parse.y"
     {
                  handle_nescdecl_attributes((yyvsp[(6) - (6)].u.attribute), current.container);
@@ -3507,6 +3467,8 @@ yyreduce:
     break;
 
   case 20:
+
+/* Line 1455 of yacc.c  */
 #line 513 "c-parse.y"
     {
                  interface intf = new_interface(pr, (yyvsp[(2) - (10)].u.itoken).location, (yyvsp[(3) - (10)].u.word), (yyvsp[(6) - (10)].u.attribute), declaration_reverse((yyvsp[(9) - (10)].u.decl)));
@@ -3519,11 +3481,15 @@ yyreduce:
     break;
 
   case 21:
+
+/* Line 1455 of yacc.c  */
 #line 524 "c-parse.y"
     { (yyval.u.decl) = NULL; ;}
     break;
 
   case 22:
+
+/* Line 1455 of yacc.c  */
 #line 526 "c-parse.y"
     {
                  nesc_declaration intf = current.container;
@@ -3542,36 +3508,50 @@ yyreduce:
     break;
 
   case 24:
+
+/* Line 1455 of yacc.c  */
 #line 545 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(1) - (3)].u.decl), (yyvsp[(3) - (3)].u.decl)); ;}
     break;
 
   case 25:
+
+/* Line 1455 of yacc.c  */
 #line 550 "c-parse.y"
     { (yyval.u.decl) = declare_type_parameter((yyvsp[(1) - (2)].idtoken).location, (yyvsp[(1) - (2)].idtoken).id, (yyvsp[(2) - (2)].u.attribute), NULL); ;}
     break;
 
   case 26:
+
+/* Line 1455 of yacc.c  */
 #line 554 "c-parse.y"
     { (yyval.idtoken) = (yyvsp[(1) - (1)].idtoken); ;}
     break;
 
   case 27:
+
+/* Line 1455 of yacc.c  */
 #line 558 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(2) - (2)].u.decl), (yyvsp[(1) - (2)].u.decl)); ;}
     break;
 
   case 29:
+
+/* Line 1455 of yacc.c  */
 #line 562 "c-parse.y"
     { pushlevel(TRUE); ;}
     break;
 
   case 30:
+
+/* Line 1455 of yacc.c  */
 #line 563 "c-parse.y"
     { /* poplevel done in users of parameters */ (yyval.u.decl) = (yyvsp[(3) - (3)].u.decl); ;}
     break;
 
   case 31:
+
+/* Line 1455 of yacc.c  */
 #line 567 "c-parse.y"
     {
                  (yyval.u.decl) = declaration_reverse((yyvsp[(1) - (2)].u.decl));
@@ -3580,11 +3560,15 @@ yyreduce:
     break;
 
   case 32:
+
+/* Line 1455 of yacc.c  */
 #line 571 "c-parse.y"
     { (yyval.u.decl) = make_error_decl(); ;}
     break;
 
   case 36:
+
+/* Line 1455 of yacc.c  */
 #line 582 "c-parse.y"
     { 
                  start_nesc_entity(l_component, (yyvsp[(3) - (3)].u.word));
@@ -3593,6 +3577,8 @@ yyreduce:
     break;
 
   case 37:
+
+/* Line 1455 of yacc.c  */
 #line 587 "c-parse.y"
     {
                  handle_nescdecl_attributes((yyvsp[(6) - (6)].u.attribute), current.container);
@@ -3600,6 +3586,8 @@ yyreduce:
     break;
 
   case 38:
+
+/* Line 1455 of yacc.c  */
 #line 592 "c-parse.y"
     {
                  declaration intfs = 
@@ -3609,6 +3597,8 @@ yyreduce:
     break;
 
   case 39:
+
+/* Line 1455 of yacc.c  */
 #line 601 "c-parse.y"
     { 
                  start_nesc_entity(l_component, (yyvsp[(3) - (3)].u.word));
@@ -3618,6 +3608,8 @@ yyreduce:
     break;
 
   case 40:
+
+/* Line 1455 of yacc.c  */
 #line 607 "c-parse.y"
     {
                  handle_nescdecl_attributes((yyvsp[(6) - (6)].u.attribute), current.container);
@@ -3625,6 +3617,8 @@ yyreduce:
     break;
 
   case 41:
+
+/* Line 1455 of yacc.c  */
 #line 611 "c-parse.y"
     {
                  set_nesc_ast(new_component(pr, (yyvsp[(2) - (10)].u.itoken).location, (yyvsp[(3) - (10)].u.word), (yyvsp[(6) - (10)].u.attribute), (yyvsp[(1) - (10)].abstract), (yyvsp[(5) - (10)].u.decl), declaration_reverse((yyvsp[(9) - (10)].u.decl)), NULL));
@@ -3632,6 +3626,8 @@ yyreduce:
     break;
 
   case 42:
+
+/* Line 1455 of yacc.c  */
 #line 615 "c-parse.y"
     {
                  set_nesc_impl((yyvsp[(12) - (12)].u.impl));
@@ -3639,6 +3635,8 @@ yyreduce:
     break;
 
   case 43:
+
+/* Line 1455 of yacc.c  */
 #line 622 "c-parse.y"
     { 
                  start_nesc_entity(l_component, (yyvsp[(2) - (2)].u.word));
@@ -3646,6 +3644,8 @@ yyreduce:
     break;
 
   case 44:
+
+/* Line 1455 of yacc.c  */
 #line 626 "c-parse.y"
     {
                  handle_nescdecl_attributes((yyvsp[(4) - (4)].u.attribute), current.container);
@@ -3653,6 +3653,8 @@ yyreduce:
     break;
 
   case 45:
+
+/* Line 1455 of yacc.c  */
 #line 630 "c-parse.y"
     { 
                  binary_component dummy = new_binary_component(pr, (yyvsp[(1) - (8)].u.itoken).location, start_implementation());
@@ -3662,16 +3664,22 @@ yyreduce:
     break;
 
   case 46:
+
+/* Line 1455 of yacc.c  */
 #line 637 "c-parse.y"
     { (yyval.abstract) = TRUE; ;}
     break;
 
   case 47:
+
+/* Line 1455 of yacc.c  */
 #line 638 "c-parse.y"
     { (yyval.abstract) = FALSE; ;}
     break;
 
   case 48:
+
+/* Line 1455 of yacc.c  */
 #line 643 "c-parse.y"
     {
                  if (current.container->abstract)
@@ -3684,6 +3692,8 @@ yyreduce:
     break;
 
   case 49:
+
+/* Line 1455 of yacc.c  */
 #line 652 "c-parse.y"
     {
                  nesc_declaration comp = current.container;
@@ -3703,91 +3713,127 @@ yyreduce:
     break;
 
   case 50:
+
+/* Line 1455 of yacc.c  */
 #line 670 "c-parse.y"
     { (yyval.u.decl) = NULL; ;}
     break;
 
   case 53:
+
+/* Line 1455 of yacc.c  */
 #line 677 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(1) - (3)].u.decl), (yyvsp[(3) - (3)].u.decl)); ;}
     break;
 
   case 54:
+
+/* Line 1455 of yacc.c  */
 #line 686 "c-parse.y"
     { (yyval.u.decl) = declare_template_parameter((yyvsp[(3) - (4)].u.declarator), (yyvsp[(1) - (4)].u.telement), (yyvsp[(4) - (4)].u.attribute)); ;}
     break;
 
   case 55:
+
+/* Line 1455 of yacc.c  */
 #line 688 "c-parse.y"
     { (yyval.u.decl) = declare_template_parameter((yyvsp[(3) - (4)].u.declarator), (yyvsp[(1) - (4)].u.telement), (yyvsp[(4) - (4)].u.attribute)); ;}
     break;
 
   case 56:
+
+/* Line 1455 of yacc.c  */
 #line 690 "c-parse.y"
     { (yyval.u.decl) = declare_template_parameter((yyvsp[(3) - (4)].u.declarator), (yyvsp[(1) - (4)].u.telement), (yyvsp[(4) - (4)].u.attribute)); ;}
     break;
 
   case 57:
+
+/* Line 1455 of yacc.c  */
 #line 692 "c-parse.y"
     { (yyval.u.decl) = declare_template_parameter(NULL, (yyvsp[(1) - (2)].u.telement), NULL); ;}
     break;
 
   case 58:
+
+/* Line 1455 of yacc.c  */
 #line 697 "c-parse.y"
     { current.spec_section = spec_normal; ;}
     break;
 
   case 59:
+
+/* Line 1455 of yacc.c  */
 #line 702 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(2) - (2)].u.decl), (yyvsp[(1) - (2)].u.decl)); ;}
     break;
 
   case 60:
+
+/* Line 1455 of yacc.c  */
 #line 703 "c-parse.y"
     { (yyval.u.decl) = NULL; ;}
     break;
 
   case 63:
+
+/* Line 1455 of yacc.c  */
 #line 709 "c-parse.y"
     { current.spec_section = spec_normal; ;}
     break;
 
   case 64:
+
+/* Line 1455 of yacc.c  */
 #line 709 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(2) - (2)].u.decl); ;}
     break;
 
   case 65:
+
+/* Line 1455 of yacc.c  */
 #line 713 "c-parse.y"
     { current.spec_section = spec_uses; ;}
     break;
 
   case 66:
+
+/* Line 1455 of yacc.c  */
 #line 715 "c-parse.y"
     { (yyval.u.decl) = CAST(declaration, new_rp_interface(pr, (yyvsp[(1) - (3)].u.itoken).location, TRUE, declaration_reverse((yyvsp[(3) - (3)].u.decl)))); ;}
     break;
 
   case 67:
+
+/* Line 1455 of yacc.c  */
 #line 718 "c-parse.y"
     { current.spec_section = spec_provides; ;}
     break;
 
   case 68:
+
+/* Line 1455 of yacc.c  */
 #line 720 "c-parse.y"
     { (yyval.u.decl) = CAST(declaration, new_rp_interface(pr, (yyvsp[(1) - (3)].u.itoken).location, FALSE, declaration_reverse((yyvsp[(3) - (3)].u.decl)))); ;}
     break;
 
   case 70:
+
+/* Line 1455 of yacc.c  */
 #line 724 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(2) - (3)].u.decl); ;}
     break;
 
   case 71:
+
+/* Line 1455 of yacc.c  */
 #line 729 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(2) - (2)].u.decl), (yyvsp[(1) - (2)].u.decl)); ;}
     break;
 
   case 74:
+
+/* Line 1455 of yacc.c  */
 #line 736 "c-parse.y"
     {
                  declare_interface_ref((yyvsp[(1) - (3)].u.iref), NULL, current.env, (yyvsp[(2) - (3)].u.attribute));
@@ -3796,6 +3842,8 @@ yyreduce:
     break;
 
   case 75:
+
+/* Line 1455 of yacc.c  */
 #line 741 "c-parse.y"
     { 
                  (yyvsp[(1) - (4)].u.iref)->gparms = (yyvsp[(2) - (4)].u.decl);
@@ -3806,11 +3854,15 @@ yyreduce:
     break;
 
   case 77:
+
+/* Line 1455 of yacc.c  */
 #line 751 "c-parse.y"
     { (yyval.u.iref) = (yyvsp[(1) - (3)].u.iref); (yyval.u.iref)->word2 = (yyvsp[(3) - (3)].u.word); ;}
     break;
 
   case 78:
+
+/* Line 1455 of yacc.c  */
 #line 756 "c-parse.y"
     { 
                  preload(l_interface, (yyvsp[(1) - (2)].u.itoken).location, (yyvsp[(2) - (2)].u.word)->cstring.data);
@@ -3819,6 +3871,8 @@ yyreduce:
     break;
 
   case 79:
+
+/* Line 1455 of yacc.c  */
 #line 761 "c-parse.y"
     { 
                  preload(l_interface, (yyvsp[(1) - (2)].u.itoken).location, (yyvsp[(2) - (2)].u.word)->cstring.data);
@@ -3826,114 +3880,158 @@ yyreduce:
     break;
 
   case 80:
+
+/* Line 1455 of yacc.c  */
 #line 765 "c-parse.y"
     { (yyval.u.iref) = new_interface_ref(pr, (yyvsp[(1) - (6)].u.itoken).location, (yyvsp[(2) - (6)].u.word), (yyvsp[(5) - (6)].u.expr), NULL, NULL, NULL, NULL); ;}
     break;
 
   case 82:
+
+/* Line 1455 of yacc.c  */
 #line 770 "c-parse.y"
     { (yyval.u.expr) = expression_chain((yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 83:
+
+/* Line 1455 of yacc.c  */
 #line 774 "c-parse.y"
     { (yyval.u.env) = start_implementation(); ;}
     break;
 
   case 84:
+
+/* Line 1455 of yacc.c  */
 #line 778 "c-parse.y"
     { (yyval.u.impl) = CAST(implementation, new_configuration(pr, (yyvsp[(1) - (5)].u.itoken).location, (yyvsp[(2) - (5)].u.env), declaration_reverse((yyvsp[(4) - (5)].u.decl))));
                ;}
     break;
 
   case 85:
+
+/* Line 1455 of yacc.c  */
 #line 782 "c-parse.y"
     { (yyval.u.cref) = (yyvsp[(2) - (3)].u.cref); ;}
     break;
 
   case 86:
+
+/* Line 1455 of yacc.c  */
 #line 786 "c-parse.y"
     { (yyval.u.cref) = component_ref_chain((yyvsp[(3) - (3)].u.cref), (yyvsp[(1) - (3)].u.cref)); ;}
     break;
 
   case 88:
+
+/* Line 1455 of yacc.c  */
 #line 791 "c-parse.y"
     { (yyval.u.cref) = require_component((yyvsp[(1) - (1)].u.cref), NULL); ;}
     break;
 
   case 89:
+
+/* Line 1455 of yacc.c  */
 #line 792 "c-parse.y"
     { (yyval.u.cref) = require_component((yyvsp[(1) - (3)].u.cref), (yyvsp[(3) - (3)].u.word)); ;}
     break;
 
   case 90:
+
+/* Line 1455 of yacc.c  */
 #line 796 "c-parse.y"
     { (yyval.u.cref) = new_component_ref(pr, (yyvsp[(1) - (1)].u.word)->location, (yyvsp[(1) - (1)].u.word), NULL,
                                          FALSE, NULL); ;}
     break;
 
   case 91:
+
+/* Line 1455 of yacc.c  */
 #line 799 "c-parse.y"
     { (yyval.u.cref) = new_component_ref(pr, (yyvsp[(1) - (5)].u.itoken).location, (yyvsp[(2) - (5)].u.word), NULL,
                                          TRUE, (yyvsp[(4) - (5)].u.expr)); ;}
     break;
 
   case 92:
+
+/* Line 1455 of yacc.c  */
 #line 804 "c-parse.y"
     { (yyval.u.expr) = NULL; ;}
     break;
 
   case 95:
+
+/* Line 1455 of yacc.c  */
 #line 810 "c-parse.y"
     { (yyval.u.expr) = expression_chain((yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 96:
+
+/* Line 1455 of yacc.c  */
 #line 815 "c-parse.y"
     { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); (yyval.u.expr)->type = default_conversion_for_assignment((yyval.u.expr)); ;}
     break;
 
   case 98:
+
+/* Line 1455 of yacc.c  */
 #line 820 "c-parse.y"
     { (yyval.u.expr) = make_type_argument((yyvsp[(1) - (1)].u.type)); ;}
     break;
 
   case 99:
+
+/* Line 1455 of yacc.c  */
 #line 824 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(2) - (2)].u.decl), (yyvsp[(1) - (2)].u.decl)); ;}
     break;
 
   case 100:
+
+/* Line 1455 of yacc.c  */
 #line 825 "c-parse.y"
     { (yyval.u.decl) = NULL; ;}
     break;
 
   case 101:
+
+/* Line 1455 of yacc.c  */
 #line 829 "c-parse.y"
     { (yyval.u.decl) = CAST(declaration, (yyvsp[(1) - (1)].u.conn)); ;}
     break;
 
   case 103:
+
+/* Line 1455 of yacc.c  */
 #line 831 "c-parse.y"
     { (yyval.u.decl) = CAST(declaration, (yyvsp[(1) - (1)].u.cref)); ;}
     break;
 
   case 104:
+
+/* Line 1455 of yacc.c  */
 #line 836 "c-parse.y"
     { (yyval.u.conn) = CAST(connection, new_eq_connection(pr, (yyvsp[(2) - (4)].u.itoken).location, (yyvsp[(1) - (4)].u.ep), (yyvsp[(3) - (4)].u.ep))); ;}
     break;
 
   case 105:
+
+/* Line 1455 of yacc.c  */
 #line 838 "c-parse.y"
     { (yyval.u.conn) = CAST(connection, new_rp_connection(pr, (yyvsp[(2) - (4)].u.itoken).location, (yyvsp[(3) - (4)].u.ep), (yyvsp[(1) - (4)].u.ep))); ;}
     break;
 
   case 106:
+
+/* Line 1455 of yacc.c  */
 #line 840 "c-parse.y"
     { (yyval.u.conn) = CAST(connection, new_rp_connection(pr, (yyvsp[(2) - (4)].u.itoken).location, (yyvsp[(1) - (4)].u.ep), (yyvsp[(3) - (4)].u.ep))); ;}
     break;
 
   case 107:
+
+/* Line 1455 of yacc.c  */
 #line 845 "c-parse.y"
     { (yyval.u.ep) = (yyvsp[(1) - (3)].u.ep);
                  (yyval.u.ep)->ids = parameterised_identifier_chain((yyval.u.ep)->ids, (yyvsp[(3) - (3)].u.pid));
@@ -3941,26 +4039,36 @@ yyreduce:
     break;
 
   case 108:
+
+/* Line 1455 of yacc.c  */
 #line 849 "c-parse.y"
     { (yyval.u.ep) = new_endpoint(parse_region, (yyvsp[(1) - (1)].u.pid)->location, (yyvsp[(1) - (1)].u.pid)); ;}
     break;
 
   case 109:
+
+/* Line 1455 of yacc.c  */
 #line 854 "c-parse.y"
     { (yyval.u.pid) = new_parameterised_identifier(pr, (yyvsp[(1) - (1)].u.word)->location, (yyvsp[(1) - (1)].u.word), NULL); ;}
     break;
 
   case 110:
+
+/* Line 1455 of yacc.c  */
 #line 856 "c-parse.y"
     { (yyval.u.pid) = new_parameterised_identifier(pr, (yyvsp[(1) - (4)].u.word)->location, (yyvsp[(1) - (4)].u.word), (yyvsp[(3) - (4)].u.expr)); ;}
     break;
 
   case 111:
+
+/* Line 1455 of yacc.c  */
 #line 859 "c-parse.y"
     { (yyval.u.env) = start_implementation(); all_tasks = NULL; ;}
     break;
 
   case 112:
+
+/* Line 1455 of yacc.c  */
 #line 860 "c-parse.y"
     { 
                  (yyval.u.impl) = CAST(implementation, new_module(pr, (yyvsp[(1) - (5)].u.itoken).location, (yyvsp[(2) - (5)].u.env), declaration_reverse((yyvsp[(4) - (5)].u.decl)))); 
@@ -3968,26 +4076,36 @@ yyreduce:
     break;
 
   case 113:
+
+/* Line 1455 of yacc.c  */
 #line 869 "c-parse.y"
     { (yyval.u.telement) = NULL; ;}
     break;
 
   case 114:
+
+/* Line 1455 of yacc.c  */
 #line 869 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(2) - (2)].u.decl); ;}
     break;
 
   case 115:
+
+/* Line 1455 of yacc.c  */
 #line 870 "c-parse.y"
     { (yyval.u.telement) = NULL; ;}
     break;
 
   case 116:
+
+/* Line 1455 of yacc.c  */
 #line 871 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(3) - (3)].u.decl), (yyvsp[(1) - (3)].u.decl)); ;}
     break;
 
   case 119:
+
+/* Line 1455 of yacc.c  */
 #line 878 "c-parse.y"
     { 
                  (yyval.u.decl) = CAST(declaration, new_asm_decl
@@ -3996,11 +4114,15 @@ yyreduce:
     break;
 
   case 120:
+
+/* Line 1455 of yacc.c  */
 #line 883 "c-parse.y"
     { (yyval.u.decl) = make_extension_decl((yyvsp[(1) - (2)].u.itoken).i, (yyvsp[(1) - (2)].u.itoken).location, (yyvsp[(2) - (2)].u.decl)); ;}
     break;
 
   case 121:
+
+/* Line 1455 of yacc.c  */
 #line 888 "c-parse.y"
     { if (pedantic)
                    error("ANSI C forbids data definition with no type or storage class");
@@ -4011,32 +4133,44 @@ yyreduce:
     break;
 
   case 123:
+
+/* Line 1455 of yacc.c  */
 #line 899 "c-parse.y"
     { (yyval.u.decl) = make_data_decl((yyvsp[(1) - (4)].u.telement), (yyvsp[(3) - (4)].u.decl)); ;}
     break;
 
   case 124:
+
+/* Line 1455 of yacc.c  */
 #line 901 "c-parse.y"
     { (yyval.u.decl) = make_data_decl((yyvsp[(1) - (4)].u.telement), (yyvsp[(3) - (4)].u.decl)); ;}
     break;
 
   case 125:
+
+/* Line 1455 of yacc.c  */
 #line 903 "c-parse.y"
     { shadow_tag((yyvsp[(1) - (3)].u.telement)); 
                  (yyval.u.decl) = make_data_decl((yyvsp[(1) - (3)].u.telement), NULL); ;}
     break;
 
   case 126:
+
+/* Line 1455 of yacc.c  */
 #line 905 "c-parse.y"
     { (yyval.u.decl) = make_error_decl(); ;}
     break;
 
   case 127:
+
+/* Line 1455 of yacc.c  */
 #line 906 "c-parse.y"
     { (yyval.u.decl) = make_error_decl(); ;}
     break;
 
   case 128:
+
+/* Line 1455 of yacc.c  */
 #line 908 "c-parse.y"
     { if (pedantic)
                    pedwarn("ANSI C does not allow extra `;' outside of a function");
@@ -4044,26 +4178,36 @@ yyreduce:
     break;
 
   case 130:
+
+/* Line 1455 of yacc.c  */
 #line 916 "c-parse.y"
     { (yyval.u.decl) = target->keilc_definition((yyvsp[(1) - (5)].idtoken).location, (yyvsp[(1) - (5)].idtoken).id, (yyvsp[(2) - (5)].idtoken).id, (yyvsp[(4) - (5)].u.expr)); ;}
     break;
 
   case 131:
+
+/* Line 1455 of yacc.c  */
 #line 920 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(4) - (4)].u.decl); ;}
     break;
 
   case 132:
+
+/* Line 1455 of yacc.c  */
 #line 921 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(4) - (4)].u.decl); ;}
     break;
 
   case 133:
+
+/* Line 1455 of yacc.c  */
 #line 922 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(3) - (3)].u.decl); ;}
     break;
 
   case 134:
+
+/* Line 1455 of yacc.c  */
 #line 926 "c-parse.y"
     { 
                  /* maybeasm is only here to avoid a s/r conflict */
@@ -4078,72 +4222,100 @@ yyreduce:
     break;
 
   case 135:
+
+/* Line 1455 of yacc.c  */
 #line 937 "c-parse.y"
     { store_parm_decls(declaration_reverse((yyvsp[(4) - (4)].u.decl))); ;}
     break;
 
   case 136:
+
+/* Line 1455 of yacc.c  */
 #line 939 "c-parse.y"
     { (yyval.u.decl) = finish_function((yyvsp[(6) - (6)].u.stmt));
                  pop_declspec_stack(); ;}
     break;
 
   case 139:
+
+/* Line 1455 of yacc.c  */
 #line 949 "c-parse.y"
     { (yyval.u.id_label) = new_id_label(pr, (yyvsp[(1) - (1)].idtoken).location, (yyvsp[(1) - (1)].idtoken).id); ;}
     break;
 
   case 140:
+
+/* Line 1455 of yacc.c  */
 #line 953 "c-parse.y"
     { (yyval.u.word) = new_word(pr, (yyvsp[(1) - (1)].idtoken).location, (yyvsp[(1) - (1)].idtoken).id); ;}
     break;
 
   case 141:
+
+/* Line 1455 of yacc.c  */
 #line 957 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_address_of; ;}
     break;
 
   case 142:
+
+/* Line 1455 of yacc.c  */
 #line 959 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_unary_minus; ;}
     break;
 
   case 143:
+
+/* Line 1455 of yacc.c  */
 #line 961 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_unary_plus; ;}
     break;
 
   case 144:
+
+/* Line 1455 of yacc.c  */
 #line 963 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_preincrement; ;}
     break;
 
   case 145:
+
+/* Line 1455 of yacc.c  */
 #line 965 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_predecrement; ;}
     break;
 
   case 146:
+
+/* Line 1455 of yacc.c  */
 #line 967 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_bitnot; ;}
     break;
 
   case 147:
+
+/* Line 1455 of yacc.c  */
 #line 969 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_not; ;}
     break;
 
   case 148:
+
+/* Line 1455 of yacc.c  */
 #line 971 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_realpart; ;}
     break;
 
   case 149:
+
+/* Line 1455 of yacc.c  */
 #line 973 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_imagpart; ;}
     break;
 
   case 150:
+
+/* Line 1455 of yacc.c  */
 #line 977 "c-parse.y"
     { if ((yyvsp[(1) - (1)].u.expr)->next)
                    (yyval.u.expr) = make_comma((yyvsp[(1) - (1)].u.expr)->location, (yyvsp[(1) - (1)].u.expr));
@@ -4152,41 +4324,57 @@ yyreduce:
     break;
 
   case 151:
+
+/* Line 1455 of yacc.c  */
 #line 985 "c-parse.y"
     { (yyval.u.expr) = NULL; ;}
     break;
 
   case 153:
+
+/* Line 1455 of yacc.c  */
 #line 991 "c-parse.y"
     { (yyval.u.expr) = expression_reverse((yyvsp[(1) - (1)].u.expr)); ;}
     break;
 
   case 154:
+
+/* Line 1455 of yacc.c  */
 #line 996 "c-parse.y"
     { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); ;}
     break;
 
   case 155:
+
+/* Line 1455 of yacc.c  */
 #line 998 "c-parse.y"
     { (yyval.u.expr) = expression_chain((yyvsp[(3) - (3)].u.expr), (yyvsp[(1) - (3)].u.expr)); ;}
     break;
 
   case 156:
+
+/* Line 1455 of yacc.c  */
 #line 1002 "c-parse.y"
     { (yyval.u.itoken).i = command_call; ;}
     break;
 
   case 157:
+
+/* Line 1455 of yacc.c  */
 #line 1003 "c-parse.y"
     { (yyval.u.itoken).i = event_signal; ;}
     break;
 
   case 158:
+
+/* Line 1455 of yacc.c  */
 #line 1004 "c-parse.y"
     { (yyval.u.itoken).i = post_task; ;}
     break;
 
   case 160:
+
+/* Line 1455 of yacc.c  */
 #line 1010 "c-parse.y"
     {
                  function_call fc = CAST(function_call, (yyvsp[(2) - (2)].u.expr));
@@ -4222,17 +4410,23 @@ yyreduce:
     break;
 
   case 161:
+
+/* Line 1455 of yacc.c  */
 #line 1042 "c-parse.y"
     { (yyval.u.expr) = make_dereference((yyvsp[(1) - (2)].u.itoken).location, (yyvsp[(2) - (2)].u.expr)); ;}
     break;
 
   case 162:
+
+/* Line 1455 of yacc.c  */
 #line 1045 "c-parse.y"
     { (yyval.u.expr) = make_extension_expr((yyvsp[(1) - (2)].u.itoken).location, (yyvsp[(2) - (2)].u.expr));
                  pedantic = (yyvsp[(1) - (2)].u.itoken).i; ;}
     break;
 
   case 163:
+
+/* Line 1455 of yacc.c  */
 #line 1048 "c-parse.y"
     { (yyval.u.expr) = make_unary((yyvsp[(1) - (2)].u.itoken).location, (yyvsp[(1) - (2)].u.itoken).i, (yyvsp[(2) - (2)].u.expr));
 #if 0
@@ -4242,6 +4436,8 @@ yyreduce:
     break;
 
   case 164:
+
+/* Line 1455 of yacc.c  */
 #line 1055 "c-parse.y"
     {
                  (yyval.u.expr) = CAST(expression, make_label_address((yyvsp[(1) - (2)].u.itoken).location, (yyvsp[(2) - (2)].u.id_label)));
@@ -4250,6 +4446,8 @@ yyreduce:
     break;
 
   case 165:
+
+/* Line 1455 of yacc.c  */
 #line 1060 "c-parse.y"
     { 
 #if 0
@@ -4263,39 +4461,53 @@ yyreduce:
     break;
 
   case 166:
+
+/* Line 1455 of yacc.c  */
 #line 1070 "c-parse.y"
     { (yyval.u.expr) = make_sizeof_type((yyvsp[(1) - (4)].u.itoken).location, (yyvsp[(3) - (4)].u.type));
                  pstate.unevaluated_expression--; ;}
     break;
 
   case 167:
+
+/* Line 1455 of yacc.c  */
 #line 1073 "c-parse.y"
     { (yyval.u.expr) = make_alignof_expr((yyvsp[(1) - (2)].u.itoken).location, (yyvsp[(2) - (2)].u.expr));
                  pstate.unevaluated_expression--; ;}
     break;
 
   case 168:
+
+/* Line 1455 of yacc.c  */
 #line 1076 "c-parse.y"
     { (yyval.u.expr) = make_alignof_type((yyvsp[(1) - (4)].u.itoken).location, (yyvsp[(3) - (4)].u.type)); 
                  pstate.unevaluated_expression--; ;}
     break;
 
   case 169:
+
+/* Line 1455 of yacc.c  */
 #line 1081 "c-parse.y"
     { pstate.unevaluated_expression++; (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); ;}
     break;
 
   case 170:
+
+/* Line 1455 of yacc.c  */
 #line 1085 "c-parse.y"
     { pstate.unevaluated_expression++; (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); ;}
     break;
 
   case 172:
+
+/* Line 1455 of yacc.c  */
 #line 1091 "c-parse.y"
     { (yyval.u.expr) = make_cast((yyvsp[(1) - (4)].u.itoken).location, (yyvsp[(2) - (4)].u.type), (yyvsp[(4) - (4)].u.expr)); ;}
     break;
 
   case 173:
+
+/* Line 1455 of yacc.c  */
 #line 1093 "c-parse.y"
     { 
                  start_init(NULL, NULL);
@@ -4304,6 +4516,8 @@ yyreduce:
     break;
 
   case 174:
+
+/* Line 1455 of yacc.c  */
 #line 1098 "c-parse.y"
     { 
                  expression constructor = make_init_list((yyvsp[(4) - (7)].u.itoken).location, (yyvsp[(6) - (7)].u.expr));
@@ -4318,91 +4532,127 @@ yyreduce:
     break;
 
   case 176:
+
+/* Line 1455 of yacc.c  */
 #line 1113 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_plus, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 177:
+
+/* Line 1455 of yacc.c  */
 #line 1115 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_minus, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 178:
+
+/* Line 1455 of yacc.c  */
 #line 1117 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_times, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 179:
+
+/* Line 1455 of yacc.c  */
 #line 1119 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_divide, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 180:
+
+/* Line 1455 of yacc.c  */
 #line 1121 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_modulo, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 181:
+
+/* Line 1455 of yacc.c  */
 #line 1123 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_lshift, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 182:
+
+/* Line 1455 of yacc.c  */
 #line 1125 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_rshift, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 183:
+
+/* Line 1455 of yacc.c  */
 #line 1127 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, (yyvsp[(2) - (3)].u.itoken).i, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 184:
+
+/* Line 1455 of yacc.c  */
 #line 1129 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_lt, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 185:
+
+/* Line 1455 of yacc.c  */
 #line 1131 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_gt, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 186:
+
+/* Line 1455 of yacc.c  */
 #line 1133 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, (yyvsp[(2) - (3)].u.itoken).i, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 187:
+
+/* Line 1455 of yacc.c  */
 #line 1135 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_bitand, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 188:
+
+/* Line 1455 of yacc.c  */
 #line 1137 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_bitor, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 189:
+
+/* Line 1455 of yacc.c  */
 #line 1139 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_bitxor, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 190:
+
+/* Line 1455 of yacc.c  */
 #line 1141 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_andand, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 191:
+
+/* Line 1455 of yacc.c  */
 #line 1143 "c-parse.y"
     { (yyval.u.expr) = make_binary((yyvsp[(2) - (3)].u.itoken).location, kind_oror, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 192:
+
+/* Line 1455 of yacc.c  */
 #line 1145 "c-parse.y"
     { (yyval.u.expr) = make_conditional((yyvsp[(2) - (5)].u.itoken).location, (yyvsp[(1) - (5)].u.expr), (yyvsp[(3) - (5)].u.expr), (yyvsp[(5) - (5)].u.expr)); ;}
     break;
 
   case 193:
+
+/* Line 1455 of yacc.c  */
 #line 1147 "c-parse.y"
     { if (pedantic)
                    pedwarn("ANSI C forbids omitting the middle term of a ?: expression"); 
@@ -4410,21 +4660,29 @@ yyreduce:
     break;
 
   case 194:
+
+/* Line 1455 of yacc.c  */
 #line 1151 "c-parse.y"
     { (yyval.u.expr) = make_conditional((yyvsp[(2) - (5)].u.itoken).location, (yyvsp[(1) - (5)].u.expr), NULL, (yyvsp[(5) - (5)].u.expr)); ;}
     break;
 
   case 195:
+
+/* Line 1455 of yacc.c  */
 #line 1153 "c-parse.y"
     { (yyval.u.expr) = make_assign((yyvsp[(2) - (3)].u.itoken).location, kind_assign, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 196:
+
+/* Line 1455 of yacc.c  */
 #line 1155 "c-parse.y"
     { (yyval.u.expr) = make_assign((yyvsp[(2) - (3)].u.itoken).location, (yyvsp[(2) - (3)].u.itoken).i, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 197:
+
+/* Line 1455 of yacc.c  */
 #line 1160 "c-parse.y"
     { 
                  if (yychar == YYEMPTY)
@@ -4434,26 +4692,36 @@ yyreduce:
     break;
 
   case 198:
+
+/* Line 1455 of yacc.c  */
 #line 1165 "c-parse.y"
     { (yyval.u.expr) = CAST(expression, (yyvsp[(1) - (1)].u.constant)); ;}
     break;
 
   case 199:
+
+/* Line 1455 of yacc.c  */
 #line 1166 "c-parse.y"
     { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); ;}
     break;
 
   case 200:
+
+/* Line 1455 of yacc.c  */
 #line 1168 "c-parse.y"
     { (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); (yyval.u.expr)->parens = TRUE; ;}
     break;
 
   case 201:
+
+/* Line 1455 of yacc.c  */
 #line 1170 "c-parse.y"
     { (yyval.u.expr) = make_error_expr(); ;}
     break;
 
   case 202:
+
+/* Line 1455 of yacc.c  */
 #line 1172 "c-parse.y"
     { if (current.function_decl == 0)
                    {
@@ -4465,6 +4733,8 @@ yyreduce:
     break;
 
   case 203:
+
+/* Line 1455 of yacc.c  */
 #line 1180 "c-parse.y"
     { 
                  pop_label_level();
@@ -4475,6 +4745,8 @@ yyreduce:
     break;
 
   case 204:
+
+/* Line 1455 of yacc.c  */
 #line 1187 "c-parse.y"
     {
                  /* Magic functions may rewrite this to something else */
@@ -4496,72 +4768,100 @@ yyreduce:
     break;
 
   case 205:
+
+/* Line 1455 of yacc.c  */
 #line 1205 "c-parse.y"
     { (yyval.u.expr) = make_va_arg((yyvsp[(1) - (6)].u.itoken).location, (yyvsp[(3) - (6)].u.expr), (yyvsp[(5) - (6)].u.type)); ;}
     break;
 
   case 206:
+
+/* Line 1455 of yacc.c  */
 #line 1207 "c-parse.y"
     { (yyval.u.expr) = make_offsetof((yyvsp[(1) - (6)].u.itoken).location, (yyvsp[(3) - (6)].u.type), (yyvsp[(5) - (6)].u.fields)); ;}
     break;
 
   case 207:
+
+/* Line 1455 of yacc.c  */
 #line 1209 "c-parse.y"
     { (yyval.u.expr) = make_array_ref((yyvsp[(2) - (4)].u.itoken).location, (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); ;}
     break;
 
   case 208:
+
+/* Line 1455 of yacc.c  */
 #line 1211 "c-parse.y"
     { (yyval.u.expr) = make_field_ref((yyvsp[(2) - (3)].u.itoken).location, (yyvsp[(1) - (3)].u.expr), (yyvsp[(3) - (3)].idtoken).id); ;}
     break;
 
   case 209:
+
+/* Line 1455 of yacc.c  */
 #line 1213 "c-parse.y"
     { (yyval.u.expr) = make_field_ref((yyvsp[(2) - (3)].u.itoken).location, make_dereference((yyvsp[(2) - (3)].u.itoken).location, (yyvsp[(1) - (3)].u.expr)),
                                      (yyvsp[(3) - (3)].idtoken).id); ;}
     break;
 
   case 210:
+
+/* Line 1455 of yacc.c  */
 #line 1216 "c-parse.y"
     { (yyval.u.expr) = make_postincrement((yyvsp[(2) - (2)].u.itoken).location, (yyvsp[(1) - (2)].u.expr)); ;}
     break;
 
   case 211:
+
+/* Line 1455 of yacc.c  */
 #line 1218 "c-parse.y"
     { (yyval.u.expr) = make_postdecrement((yyvsp[(2) - (2)].u.itoken).location, (yyvsp[(1) - (2)].u.expr)); ;}
     break;
 
   case 212:
+
+/* Line 1455 of yacc.c  */
 #line 1222 "c-parse.y"
     { (yyval.u.fields) = dd_new_list(pr); dd_add_last(pr, (yyval.u.fields), (yyvsp[(1) - (1)].idtoken).id.data); ;}
     break;
 
   case 213:
+
+/* Line 1455 of yacc.c  */
 #line 1223 "c-parse.y"
     { (yyval.u.fields) = (yyvsp[(1) - (3)].u.fields); dd_add_last(pr, (yyval.u.fields), (yyvsp[(3) - (3)].idtoken).id.data); ;}
     break;
 
   case 214:
+
+/* Line 1455 of yacc.c  */
 #line 1228 "c-parse.y"
     { (yyval.u.expr) = make_function_call((yyvsp[(2) - (4)].u.itoken).location, (yyvsp[(1) - (4)].u.expr), (yyvsp[(3) - (4)].u.expr)); ;}
     break;
 
   case 215:
+
+/* Line 1455 of yacc.c  */
 #line 1231 "c-parse.y"
     { (yyval.u.expr) = CAST(expression, (yyvsp[(1) - (1)].u.string)); ;}
     break;
 
   case 216:
+
+/* Line 1455 of yacc.c  */
 #line 1232 "c-parse.y"
     { (yyval.u.expr) = make_identifier((yyvsp[(1) - (1)].idtoken).location, (yyvsp[(1) - (1)].idtoken).id, FALSE); ;}
     break;
 
   case 217:
+
+/* Line 1455 of yacc.c  */
 #line 1236 "c-parse.y"
     { (yyval.u.decl) = NULL; ;}
     break;
 
   case 219:
+
+/* Line 1455 of yacc.c  */
 #line 1240 "c-parse.y"
     { if (pedantic)
                    pedwarn("ANSI C does not permit use of `varargs.h'"); 
@@ -4570,21 +4870,29 @@ yyreduce:
     break;
 
   case 221:
+
+/* Line 1455 of yacc.c  */
 #line 1251 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(2) - (2)].u.decl), (yyvsp[(1) - (2)].u.decl)); ;}
     break;
 
   case 222:
+
+/* Line 1455 of yacc.c  */
 #line 1260 "c-parse.y"
     { (yyval.u.decl) = make_data_decl((yyvsp[(1) - (4)].u.telement), (yyvsp[(3) - (4)].u.decl)); ;}
     break;
 
   case 223:
+
+/* Line 1455 of yacc.c  */
 #line 1262 "c-parse.y"
     { (yyval.u.decl) = make_data_decl((yyvsp[(1) - (4)].u.telement), (yyvsp[(3) - (4)].u.decl)); ;}
     break;
 
   case 224:
+
+/* Line 1455 of yacc.c  */
 #line 1264 "c-parse.y"
     { shadow_tag_warned((yyvsp[(1) - (3)].u.telement), 1);
                  (yyval.u.decl) = make_data_decl((yyvsp[(1) - (3)].u.telement), NULL);
@@ -4592,27 +4900,37 @@ yyreduce:
     break;
 
   case 225:
+
+/* Line 1455 of yacc.c  */
 #line 1268 "c-parse.y"
     { pedwarn("empty declaration"); 
                  (yyval.u.decl) = NULL; ;}
     break;
 
   case 227:
+
+/* Line 1455 of yacc.c  */
 #line 1278 "c-parse.y"
     { (yyval.u.decl) = make_error_decl(); ;}
     break;
 
   case 228:
+
+/* Line 1455 of yacc.c  */
 #line 1279 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(2) - (2)].u.decl), (yyvsp[(1) - (2)].u.decl)); ;}
     break;
 
   case 229:
+
+/* Line 1455 of yacc.c  */
 #line 1280 "c-parse.y"
     { (yyval.u.decl) = make_error_decl(); ;}
     break;
 
   case 230:
+
+/* Line 1455 of yacc.c  */
 #line 1288 "c-parse.y"
     { 
                  push_declspec_stack();
@@ -4623,404 +4941,564 @@ yyreduce:
     break;
 
   case 231:
+
+/* Line 1455 of yacc.c  */
 #line 1300 "c-parse.y"
     { pstate.attributes = (yyvsp[(1) - (1)].u.attribute); ;}
     break;
 
   case 232:
+
+/* Line 1455 of yacc.c  */
 #line 1305 "c-parse.y"
     { (yyval.u.decl) = make_data_decl((yyvsp[(1) - (4)].u.telement), (yyvsp[(3) - (4)].u.decl)); ;}
     break;
 
   case 233:
+
+/* Line 1455 of yacc.c  */
 #line 1307 "c-parse.y"
     { (yyval.u.decl) = make_data_decl((yyvsp[(1) - (4)].u.telement), (yyvsp[(3) - (4)].u.decl)); ;}
     break;
 
   case 234:
+
+/* Line 1455 of yacc.c  */
 #line 1309 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(3) - (3)].u.decl);
                  pop_declspec_stack(); ;}
     break;
 
   case 235:
+
+/* Line 1455 of yacc.c  */
 #line 1312 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(3) - (3)].u.decl);
                  pop_declspec_stack(); ;}
     break;
 
   case 236:
+
+/* Line 1455 of yacc.c  */
 #line 1315 "c-parse.y"
     { shadow_tag((yyvsp[(1) - (3)].u.telement));
                  (yyval.u.decl) = make_data_decl((yyvsp[(1) - (3)].u.telement), NULL); ;}
     break;
 
   case 237:
+
+/* Line 1455 of yacc.c  */
 #line 1318 "c-parse.y"
     { (yyval.u.decl) = make_extension_decl((yyvsp[(1) - (2)].u.itoken).i, (yyvsp[(1) - (2)].u.itoken).location, (yyvsp[(2) - (2)].u.decl)); ;}
     break;
 
   case 239:
+
+/* Line 1455 of yacc.c  */
 #line 1375 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 240:
+
+/* Line 1455 of yacc.c  */
 #line 1377 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 241:
+
+/* Line 1455 of yacc.c  */
 #line 1382 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 242:
+
+/* Line 1455 of yacc.c  */
 #line 1387 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 243:
+
+/* Line 1455 of yacc.c  */
 #line 1389 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 247:
+
+/* Line 1455 of yacc.c  */
 #line 1400 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 248:
+
+/* Line 1455 of yacc.c  */
 #line 1402 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 249:
+
+/* Line 1455 of yacc.c  */
 #line 1404 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 250:
+
+/* Line 1455 of yacc.c  */
 #line 1406 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 251:
+
+/* Line 1455 of yacc.c  */
 #line 1408 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 252:
+
+/* Line 1455 of yacc.c  */
 #line 1410 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 254:
+
+/* Line 1455 of yacc.c  */
 #line 1416 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 255:
+
+/* Line 1455 of yacc.c  */
 #line 1418 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 256:
+
+/* Line 1455 of yacc.c  */
 #line 1420 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 257:
+
+/* Line 1455 of yacc.c  */
 #line 1422 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 258:
+
+/* Line 1455 of yacc.c  */
 #line 1424 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 259:
+
+/* Line 1455 of yacc.c  */
 #line 1429 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 260:
+
+/* Line 1455 of yacc.c  */
 #line 1431 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 261:
+
+/* Line 1455 of yacc.c  */
 #line 1433 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 262:
+
+/* Line 1455 of yacc.c  */
 #line 1435 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 263:
+
+/* Line 1455 of yacc.c  */
 #line 1437 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 264:
+
+/* Line 1455 of yacc.c  */
 #line 1439 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 265:
+
+/* Line 1455 of yacc.c  */
 #line 1444 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 266:
+
+/* Line 1455 of yacc.c  */
 #line 1446 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 267:
+
+/* Line 1455 of yacc.c  */
 #line 1448 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 268:
+
+/* Line 1455 of yacc.c  */
 #line 1450 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 269:
+
+/* Line 1455 of yacc.c  */
 #line 1452 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 271:
+
+/* Line 1455 of yacc.c  */
 #line 1458 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 272:
+
+/* Line 1455 of yacc.c  */
 #line 1460 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 273:
+
+/* Line 1455 of yacc.c  */
 #line 1462 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 274:
+
+/* Line 1455 of yacc.c  */
 #line 1464 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 275:
+
+/* Line 1455 of yacc.c  */
 #line 1466 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 276:
+
+/* Line 1455 of yacc.c  */
 #line 1468 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 277:
+
+/* Line 1455 of yacc.c  */
 #line 1473 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 278:
+
+/* Line 1455 of yacc.c  */
 #line 1478 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 279:
+
+/* Line 1455 of yacc.c  */
 #line 1480 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 280:
+
+/* Line 1455 of yacc.c  */
 #line 1482 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 281:
+
+/* Line 1455 of yacc.c  */
 #line 1484 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 282:
+
+/* Line 1455 of yacc.c  */
 #line 1486 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 283:
+
+/* Line 1455 of yacc.c  */
 #line 1488 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 284:
+
+/* Line 1455 of yacc.c  */
 #line 1493 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 285:
+
+/* Line 1455 of yacc.c  */
 #line 1498 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 286:
+
+/* Line 1455 of yacc.c  */
 #line 1500 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 287:
+
+/* Line 1455 of yacc.c  */
 #line 1502 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 288:
+
+/* Line 1455 of yacc.c  */
 #line 1504 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 289:
+
+/* Line 1455 of yacc.c  */
 #line 1506 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 290:
+
+/* Line 1455 of yacc.c  */
 #line 1508 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 291:
+
+/* Line 1455 of yacc.c  */
 #line 1510 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 292:
+
+/* Line 1455 of yacc.c  */
 #line 1512 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 293:
+
+/* Line 1455 of yacc.c  */
 #line 1514 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 294:
+
+/* Line 1455 of yacc.c  */
 #line 1516 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 295:
+
+/* Line 1455 of yacc.c  */
 #line 1521 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 296:
+
+/* Line 1455 of yacc.c  */
 #line 1523 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 297:
+
+/* Line 1455 of yacc.c  */
 #line 1525 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 298:
+
+/* Line 1455 of yacc.c  */
 #line 1527 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 299:
+
+/* Line 1455 of yacc.c  */
 #line 1529 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 300:
+
+/* Line 1455 of yacc.c  */
 #line 1534 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 301:
+
+/* Line 1455 of yacc.c  */
 #line 1536 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 302:
+
+/* Line 1455 of yacc.c  */
 #line 1538 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 303:
+
+/* Line 1455 of yacc.c  */
 #line 1540 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 304:
+
+/* Line 1455 of yacc.c  */
 #line 1542 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 305:
+
+/* Line 1455 of yacc.c  */
 #line 1544 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 306:
+
+/* Line 1455 of yacc.c  */
 #line 1546 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 307:
+
+/* Line 1455 of yacc.c  */
 #line 1548 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 308:
+
+/* Line 1455 of yacc.c  */
 #line 1550 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 309:
+
+/* Line 1455 of yacc.c  */
 #line 1552 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 310:
+
+/* Line 1455 of yacc.c  */
 #line 1557 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 311:
+
+/* Line 1455 of yacc.c  */
 #line 1559 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 312:
+
+/* Line 1455 of yacc.c  */
 #line 1561 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 313:
+
+/* Line 1455 of yacc.c  */
 #line 1563 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 314:
+
+/* Line 1455 of yacc.c  */
 #line 1565 "c-parse.y"
     { (yyval.u.telement) = type_element_chain((yyvsp[(1) - (2)].u.telement), (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 351:
+
+/* Line 1455 of yacc.c  */
 #line 1632 "c-parse.y"
     { (yyval.u.telement) = NULL; ;}
     break;
 
   case 359:
+
+/* Line 1455 of yacc.c  */
 #line 1677 "c-parse.y"
     { /* For a typedef name, record the meaning, not the name.
                     In case of `foo foo, bar;'.  */
@@ -5028,6 +5506,8 @@ yyreduce:
     break;
 
   case 360:
+
+/* Line 1455 of yacc.c  */
 #line 1681 "c-parse.y"
     {
                  /* reference to a typedef from a component. */
@@ -5036,52 +5516,72 @@ yyreduce:
     break;
 
   case 361:
+
+/* Line 1455 of yacc.c  */
 #line 1686 "c-parse.y"
     { (yyval.u.telement) = CAST(type_element, new_typeof_expr(pr, (yyvsp[(1) - (4)].u.itoken).location, (yyvsp[(3) - (4)].u.expr))); ;}
     break;
 
   case 362:
+
+/* Line 1455 of yacc.c  */
 #line 1688 "c-parse.y"
     { (yyval.u.telement) = CAST(type_element, new_typeof_type(pr, (yyvsp[(1) - (4)].u.itoken).location, (yyvsp[(3) - (4)].u.type))); ;}
     break;
 
   case 363:
+
+/* Line 1455 of yacc.c  */
 #line 1693 "c-parse.y"
     { (yyval.u.decl) = declaration_reverse((yyvsp[(1) - (1)].u.decl)); ;}
     break;
 
   case 364:
+
+/* Line 1455 of yacc.c  */
 #line 1697 "c-parse.y"
     { (yyval.u.decl) = declaration_reverse((yyvsp[(1) - (1)].u.decl)); ;}
     break;
 
   case 366:
+
+/* Line 1455 of yacc.c  */
 #line 1703 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(4) - (4)].u.decl), (yyvsp[(1) - (4)].u.decl)); ;}
     break;
 
   case 367:
+
+/* Line 1455 of yacc.c  */
 #line 1707 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(1) - (1)].u.decl); ;}
     break;
 
   case 368:
+
+/* Line 1455 of yacc.c  */
 #line 1709 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(4) - (4)].u.decl), (yyvsp[(1) - (4)].u.decl)); ;}
     break;
 
   case 369:
+
+/* Line 1455 of yacc.c  */
 #line 1714 "c-parse.y"
     { (yyval.u.asm_stmt) = NULL; ;}
     break;
 
   case 370:
+
+/* Line 1455 of yacc.c  */
 #line 1716 "c-parse.y"
     { (yyval.u.asm_stmt) = new_asm_stmt(pr, (yyvsp[(1) - (4)].u.itoken).location, CAST(expression, (yyvsp[(3) - (4)].u.string)),
                                    NULL, NULL, NULL, NULL); ;}
     break;
 
   case 371:
+
+/* Line 1455 of yacc.c  */
 #line 1722 "c-parse.y"
     { (yyval.u.decl) = start_decl((yyvsp[(1) - (4)].u.declarator), (yyvsp[(2) - (4)].u.asm_stmt), pstate.declspecs, 1,
                                           prefix_attr((yyvsp[(3) - (4)].u.attribute)));
@@ -5089,12 +5589,16 @@ yyreduce:
     break;
 
   case 372:
+
+/* Line 1455 of yacc.c  */
 #line 1727 "c-parse.y"
     { finish_init();
                  (yyval.u.decl) = finish_decl((yyvsp[(5) - (6)].u.decl), (yyvsp[(6) - (6)].u.expr)); ;}
     break;
 
   case 373:
+
+/* Line 1455 of yacc.c  */
 #line 1730 "c-parse.y"
     { declaration d = start_decl((yyvsp[(1) - (3)].u.declarator), (yyvsp[(2) - (3)].u.asm_stmt), pstate.declspecs, 0,
                                             prefix_attr((yyvsp[(3) - (3)].u.attribute)));
@@ -5102,6 +5606,8 @@ yyreduce:
     break;
 
   case 374:
+
+/* Line 1455 of yacc.c  */
 #line 1737 "c-parse.y"
     { (yyval.u.decl) = start_decl((yyvsp[(1) - (4)].u.declarator), (yyvsp[(2) - (4)].u.asm_stmt), pstate.declspecs, 1,
                                         prefix_attr((yyvsp[(3) - (4)].u.attribute)));
@@ -5109,12 +5615,16 @@ yyreduce:
     break;
 
   case 375:
+
+/* Line 1455 of yacc.c  */
 #line 1742 "c-parse.y"
     { finish_init();
                  (yyval.u.decl) = finish_decl((yyvsp[(5) - (6)].u.decl), (yyvsp[(6) - (6)].u.expr)); ;}
     break;
 
   case 376:
+
+/* Line 1455 of yacc.c  */
 #line 1745 "c-parse.y"
     { declaration d = start_decl((yyvsp[(1) - (3)].u.declarator), (yyvsp[(2) - (3)].u.asm_stmt), pstate.declspecs, 0,
                                             prefix_attr((yyvsp[(3) - (3)].u.attribute)));
@@ -5122,110 +5632,152 @@ yyreduce:
     break;
 
   case 377:
+
+/* Line 1455 of yacc.c  */
 #line 1752 "c-parse.y"
     { (yyval.u.attribute) = NULL; ;}
     break;
 
   case 378:
+
+/* Line 1455 of yacc.c  */
 #line 1754 "c-parse.y"
     { (yyval.u.attribute) = attribute_reverse((yyvsp[(1) - (1)].u.attribute)); ;}
     break;
 
   case 379:
+
+/* Line 1455 of yacc.c  */
 #line 1758 "c-parse.y"
     { (yyval.u.telement) = CAST(type_element, (yyvsp[(1) - (1)].u.attribute)); ;}
     break;
 
   case 380:
+
+/* Line 1455 of yacc.c  */
 #line 1762 "c-parse.y"
     { (yyval.u.attribute) = NULL; ;}
     break;
 
   case 381:
+
+/* Line 1455 of yacc.c  */
 #line 1764 "c-parse.y"
     { (yyval.u.attribute) = attribute_chain((yyvsp[(2) - (2)].u.attribute), (yyvsp[(1) - (2)].u.attribute)); ;}
     break;
 
   case 382:
+
+/* Line 1455 of yacc.c  */
 #line 1769 "c-parse.y"
     { (yyval.u.attribute) = (yyvsp[(1) - (1)].u.attribute); ;}
     break;
 
   case 383:
+
+/* Line 1455 of yacc.c  */
 #line 1771 "c-parse.y"
     { (yyval.u.attribute) = attribute_chain((yyvsp[(2) - (2)].u.attribute), (yyvsp[(1) - (2)].u.attribute)); ;}
     break;
 
   case 384:
+
+/* Line 1455 of yacc.c  */
 #line 1776 "c-parse.y"
     { (yyval.u.attribute) = (yyvsp[(4) - (6)].u.attribute); ;}
     break;
 
   case 385:
+
+/* Line 1455 of yacc.c  */
 #line 1777 "c-parse.y"
     { (yyval.u.attribute) = CAST(attribute, (yyvsp[(1) - (1)].u.gcc_attribute)); ;}
     break;
 
   case 387:
+
+/* Line 1455 of yacc.c  */
 #line 1783 "c-parse.y"
     { word w = new_word(pr, (yyvsp[(1) - (1)].idtoken).location, (yyvsp[(1) - (1)].idtoken).id);
-                 (yyval.u.gcc_attribute) = new_gcc_attribute(pr, (yyvsp[(1) - (1)].idtoken).location, w, NULL); ;}
+                 (yyval.u.gcc_attribute) = new_target_attribute(pr, (yyvsp[(1) - (1)].idtoken).location, w, NULL); ;}
     break;
 
   case 388:
+
+/* Line 1455 of yacc.c  */
 #line 1786 "c-parse.y"
     { word w = new_word(pr, (yyvsp[(1) - (2)].idtoken).location, (yyvsp[(1) - (2)].idtoken).id);
-                 (yyval.u.gcc_attribute) = new_gcc_attribute(pr, (yyvsp[(1) - (2)].idtoken).location, w, (yyvsp[(2) - (2)].u.expr)); ;}
+                 (yyval.u.gcc_attribute) = new_target_attribute(pr, (yyvsp[(1) - (2)].idtoken).location, w, (yyvsp[(2) - (2)].u.expr)); ;}
     break;
 
   case 389:
+
+/* Line 1455 of yacc.c  */
 #line 1789 "c-parse.y"
     { word w = new_word(pr, (yyvsp[(2) - (2)].u.expr)->location, str2cstring(pr, "iar_at"));
-                 (yyval.u.gcc_attribute) = new_gcc_attribute(pr, (yyvsp[(2) - (2)].u.expr)->location, w, (yyvsp[(2) - (2)].u.expr)); ;}
+                 (yyval.u.gcc_attribute) = new_target_attribute(pr, (yyvsp[(2) - (2)].u.expr)->location, w, (yyvsp[(2) - (2)].u.expr)); ;}
     break;
 
   case 390:
+
+/* Line 1455 of yacc.c  */
 #line 1794 "c-parse.y"
     { (yyval.u.expr) = CAST(expression, (yyvsp[(1) - (1)].u.constant)); ;}
     break;
 
   case 391:
+
+/* Line 1455 of yacc.c  */
 #line 1795 "c-parse.y"
     { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); ;}
     break;
 
   case 392:
+
+/* Line 1455 of yacc.c  */
 #line 1796 "c-parse.y"
     { (yyval.u.expr) = (yyvsp[(2) - (3)].u.expr); ;}
     break;
 
   case 393:
+
+/* Line 1455 of yacc.c  */
 #line 1801 "c-parse.y"
     { (yyval.u.attribute) = CAST(attribute, (yyvsp[(1) - (1)].u.gcc_attribute)); ;}
     break;
 
   case 394:
+
+/* Line 1455 of yacc.c  */
 #line 1803 "c-parse.y"
     { (yyval.u.attribute) = attribute_chain((yyvsp[(1) - (3)].u.attribute), CAST(attribute, (yyvsp[(3) - (3)].u.gcc_attribute))); ;}
     break;
 
   case 395:
+
+/* Line 1455 of yacc.c  */
 #line 1808 "c-parse.y"
     { (yyval.u.gcc_attribute) = NULL; ;}
     break;
 
   case 396:
+
+/* Line 1455 of yacc.c  */
 #line 1810 "c-parse.y"
     { (yyval.u.gcc_attribute) = new_gcc_attribute(pr, (yyvsp[(1) - (1)].u.word)->location, (yyvsp[(1) - (1)].u.word), NULL); ;}
     break;
 
   case 397:
+
+/* Line 1455 of yacc.c  */
 #line 1812 "c-parse.y"
     { (yyval.u.gcc_attribute) = new_gcc_attribute
                    (pr, (yyvsp[(1) - (4)].u.word)->location, (yyvsp[(1) - (4)].u.word), make_attr_args((yyvsp[(3) - (4)].idtoken).location, (yyvsp[(3) - (4)].idtoken).id, NULL)); ;}
     break;
 
   case 398:
+
+/* Line 1455 of yacc.c  */
 #line 1815 "c-parse.y"
     { (yyval.u.gcc_attribute) = new_gcc_attribute
                    (pr, (yyvsp[(2) - (6)].u.itoken).location, (yyvsp[(1) - (6)].u.word), make_attr_args((yyvsp[(3) - (6)].idtoken).location, (yyvsp[(3) - (6)].idtoken).id, (yyvsp[(5) - (6)].u.expr)));
@@ -5233,67 +5785,93 @@ yyreduce:
     break;
 
   case 399:
+
+/* Line 1455 of yacc.c  */
 #line 1819 "c-parse.y"
     { (yyval.u.gcc_attribute) = new_gcc_attribute(pr, (yyvsp[(2) - (4)].u.itoken).location, (yyvsp[(1) - (4)].u.word), (yyvsp[(3) - (4)].u.expr));
                ;}
     break;
 
   case 400:
+
+/* Line 1455 of yacc.c  */
 #line 1825 "c-parse.y"
     { (yyval.u.attribute) = finish_attribute_use((yyvsp[(2) - (5)].u.nesc_attribute), (yyvsp[(4) - (5)].u.expr)); ;}
     break;
 
   case 401:
+
+/* Line 1455 of yacc.c  */
 #line 1827 "c-parse.y"
     { (yyval.u.attribute) = finish_attribute_use((yyvsp[(2) - (4)].u.nesc_attribute), make_error_expr()); ;}
     break;
 
   case 402:
+
+/* Line 1455 of yacc.c  */
 #line 1832 "c-parse.y"
     { (yyval.u.nesc_attribute) = start_attribute_use((yyvsp[(1) - (1)].u.word)); ;}
     break;
 
   case 404:
+
+/* Line 1455 of yacc.c  */
 #line 1841 "c-parse.y"
     { (yyval.u.word) = make_cword((yyvsp[(1) - (1)].u.telement)->location, rid_name(CAST(rid, (yyvsp[(1) - (1)].u.telement)))); ;}
     break;
 
   case 405:
+
+/* Line 1455 of yacc.c  */
 #line 1843 "c-parse.y"
     { (yyval.u.word) = make_cword((yyvsp[(1) - (1)].u.telement)->location, rid_name(CAST(rid, (yyvsp[(1) - (1)].u.telement)))); ;}
     break;
 
   case 406:
+
+/* Line 1455 of yacc.c  */
 #line 1845 "c-parse.y"
     { (yyval.u.word) = make_cword((yyvsp[(1) - (1)].u.telement)->location, qualifier_name(CAST(qualifier, (yyvsp[(1) - (1)].u.telement))->id)); ;}
     break;
 
   case 407:
+
+/* Line 1455 of yacc.c  */
 #line 1847 "c-parse.y"
     { (yyval.u.word) = make_cword((yyvsp[(1) - (1)].u.itoken).location, "signal"); ;}
     break;
 
   case 408:
+
+/* Line 1455 of yacc.c  */
 #line 1853 "c-parse.y"
     { (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); simple_init((yyval.u.expr)); ;}
     break;
 
   case 409:
+
+/* Line 1455 of yacc.c  */
 #line 1855 "c-parse.y"
     { really_start_incremental_init(NULL); ;}
     break;
 
   case 410:
+
+/* Line 1455 of yacc.c  */
 #line 1857 "c-parse.y"
     { (yyval.u.expr) = make_init_list((yyvsp[(1) - (4)].u.itoken).location, (yyvsp[(3) - (4)].u.expr)); ;}
     break;
 
   case 411:
+
+/* Line 1455 of yacc.c  */
 #line 1859 "c-parse.y"
     { (yyval.u.expr) = make_error_expr(); ;}
     break;
 
   case 412:
+
+/* Line 1455 of yacc.c  */
 #line 1865 "c-parse.y"
     { if (pedantic)
                    pedwarn("ANSI C forbids empty initializer braces"); 
@@ -5301,16 +5879,22 @@ yyreduce:
     break;
 
   case 413:
+
+/* Line 1455 of yacc.c  */
 #line 1868 "c-parse.y"
     { (yyval.u.expr) = expression_reverse((yyvsp[(1) - (2)].u.expr)); ;}
     break;
 
   case 415:
+
+/* Line 1455 of yacc.c  */
 #line 1873 "c-parse.y"
     { (yyval.u.expr) = expression_chain((yyvsp[(3) - (3)].u.expr), (yyvsp[(1) - (3)].u.expr)); ;}
     break;
 
   case 416:
+
+/* Line 1455 of yacc.c  */
 #line 1880 "c-parse.y"
     { if (pedantic)
                    pedwarn("ANSI C forbids specifying subobject to initialize"); 
@@ -5318,6 +5902,8 @@ yyreduce:
     break;
 
   case 417:
+
+/* Line 1455 of yacc.c  */
 #line 1884 "c-parse.y"
     { if (pedantic)
                    pedwarn("obsolete use of designated initializer without `='");
@@ -5325,6 +5911,8 @@ yyreduce:
     break;
 
   case 418:
+
+/* Line 1455 of yacc.c  */
 #line 1888 "c-parse.y"
     { (yyval.u.designator) = set_init_label((yyvsp[(1) - (2)].idtoken).location, (yyvsp[(1) - (2)].idtoken).id);
                  if (pedantic)
@@ -5332,42 +5920,58 @@ yyreduce:
     break;
 
   case 419:
+
+/* Line 1455 of yacc.c  */
 #line 1892 "c-parse.y"
     { (yyval.u.expr) = make_init_specific((yyvsp[(3) - (4)].u.designator), (yyvsp[(4) - (4)].u.expr)); ;}
     break;
 
   case 421:
+
+/* Line 1455 of yacc.c  */
 #line 1898 "c-parse.y"
     { push_init_level (0); ;}
     break;
 
   case 422:
+
+/* Line 1455 of yacc.c  */
 #line 1900 "c-parse.y"
     { (yyval.u.expr) = make_init_list((yyvsp[(1) - (4)].u.itoken).location, (yyvsp[(3) - (4)].u.expr)); 
                  process_init_element(NULL); ;}
     break;
 
   case 423:
+
+/* Line 1455 of yacc.c  */
 #line 1903 "c-parse.y"
     { process_init_element((yyvsp[(1) - (1)].u.expr)); (yyval.u.expr) = (yyvsp[(1) - (1)].u.expr); ;}
     break;
 
   case 424:
+
+/* Line 1455 of yacc.c  */
 #line 1904 "c-parse.y"
     { (yyval.u.expr) = make_error_expr(); ;}
     break;
 
   case 426:
+
+/* Line 1455 of yacc.c  */
 #line 1909 "c-parse.y"
     { (yyval.u.designator) = designator_chain((yyvsp[(1) - (2)].u.designator), (yyvsp[(2) - (2)].u.designator)); ;}
     break;
 
   case 427:
+
+/* Line 1455 of yacc.c  */
 #line 1914 "c-parse.y"
     { (yyval.u.designator) = set_init_label((yyvsp[(2) - (2)].idtoken).location, (yyvsp[(2) - (2)].idtoken).id); ;}
     break;
 
   case 428:
+
+/* Line 1455 of yacc.c  */
 #line 1919 "c-parse.y"
     { (yyval.u.designator) = set_init_index((yyvsp[(1) - (5)].u.itoken).location, (yyvsp[(2) - (5)].u.expr), (yyvsp[(4) - (5)].u.expr));
                  if (pedantic)
@@ -5375,11 +5979,15 @@ yyreduce:
     break;
 
   case 429:
+
+/* Line 1455 of yacc.c  */
 #line 1923 "c-parse.y"
     { (yyval.u.designator) = set_init_index((yyvsp[(1) - (3)].u.itoken).location, (yyvsp[(2) - (3)].u.expr), NULL); ;}
     break;
 
   case 430:
+
+/* Line 1455 of yacc.c  */
 #line 1928 "c-parse.y"
     { 
                  /* maybeasm is only here to avoid a s/r conflict */
@@ -5393,16 +6001,22 @@ yyreduce:
     break;
 
   case 431:
+
+/* Line 1455 of yacc.c  */
 #line 1938 "c-parse.y"
     { store_parm_decls(declaration_reverse((yyvsp[(3) - (5)].u.attribute))); ;}
     break;
 
   case 432:
+
+/* Line 1455 of yacc.c  */
 #line 1946 "c-parse.y"
     { (yyval.u.decl) = finish_function((yyvsp[(7) - (7)].u.stmt)); ;}
     break;
 
   case 433:
+
+/* Line 1455 of yacc.c  */
 #line 1951 "c-parse.y"
     { 
                  /* maybeasm is only here to avoid a s/r conflict */
@@ -5416,36 +6030,50 @@ yyreduce:
     break;
 
   case 434:
+
+/* Line 1455 of yacc.c  */
 #line 1961 "c-parse.y"
     { store_parm_decls(declaration_reverse((yyvsp[(3) - (5)].u.attribute))); ;}
     break;
 
   case 435:
+
+/* Line 1455 of yacc.c  */
 #line 1969 "c-parse.y"
     { (yyval.u.decl) = finish_function((yyvsp[(7) - (7)].u.stmt)); ;}
     break;
 
   case 438:
+
+/* Line 1455 of yacc.c  */
 #line 1984 "c-parse.y"
     { (yyval.u.declarator) = finish_array_or_fn_declarator((yyvsp[(1) - (2)].u.declarator), (yyvsp[(2) - (2)].u.nested)); ;}
     break;
 
   case 439:
+
+/* Line 1455 of yacc.c  */
 #line 1986 "c-parse.y"
     { (yyval.u.declarator) = make_pointer_declarator((yyvsp[(1) - (3)].u.itoken).location, (yyvsp[(3) - (3)].u.declarator), (yyvsp[(2) - (3)].u.telement)); ;}
     break;
 
   case 440:
+
+/* Line 1455 of yacc.c  */
 #line 1988 "c-parse.y"
     { (yyval.u.declarator) = make_qualified_declarator((yyvsp[(1) - (4)].u.itoken).location, (yyvsp[(3) - (4)].u.declarator), CAST(type_element, (yyvsp[(2) - (4)].u.attribute))); ;}
     break;
 
   case 441:
+
+/* Line 1455 of yacc.c  */
 #line 1989 "c-parse.y"
     { (yyval.u.declarator) = make_identifier_declarator((yyvsp[(1) - (1)].idtoken).location, (yyvsp[(1) - (1)].idtoken).id); ;}
     break;
 
   case 442:
+
+/* Line 1455 of yacc.c  */
 #line 1991 "c-parse.y"
     {
                  (yyval.u.declarator) = make_interface_ref_declarator((yyvsp[(1) - (3)].idtoken).location, (yyvsp[(1) - (3)].idtoken).id, (yyvsp[(3) - (3)].idtoken).id);
@@ -5453,41 +6081,57 @@ yyreduce:
     break;
 
   case 443:
+
+/* Line 1455 of yacc.c  */
 #line 2002 "c-parse.y"
     { (yyval.u.declarator) = finish_array_or_fn_declarator((yyvsp[(1) - (2)].u.declarator), (yyvsp[(2) - (2)].u.nested)); ;}
     break;
 
   case 444:
+
+/* Line 1455 of yacc.c  */
 #line 2004 "c-parse.y"
     { (yyval.u.declarator) = make_pointer_declarator((yyvsp[(1) - (3)].u.itoken).location, (yyvsp[(3) - (3)].u.declarator), (yyvsp[(2) - (3)].u.telement)); ;}
     break;
 
   case 445:
+
+/* Line 1455 of yacc.c  */
 #line 2006 "c-parse.y"
     { (yyval.u.declarator) = make_identifier_declarator((yyvsp[(1) - (1)].idtoken).location, (yyvsp[(1) - (1)].idtoken).id); ;}
     break;
 
   case 446:
+
+/* Line 1455 of yacc.c  */
 #line 2015 "c-parse.y"
     { (yyval.u.declarator) = finish_array_or_fn_declarator((yyvsp[(1) - (2)].u.declarator), (yyvsp[(2) - (2)].u.nested)); ;}
     break;
 
   case 447:
+
+/* Line 1455 of yacc.c  */
 #line 2017 "c-parse.y"
     { (yyval.u.declarator) = make_pointer_declarator((yyvsp[(1) - (3)].u.itoken).location, (yyvsp[(3) - (3)].u.declarator), (yyvsp[(2) - (3)].u.telement)); ;}
     break;
 
   case 448:
+
+/* Line 1455 of yacc.c  */
 #line 2019 "c-parse.y"
     { (yyval.u.declarator) = make_qualified_declarator((yyvsp[(1) - (4)].u.itoken).location, (yyvsp[(3) - (4)].u.declarator), CAST(type_element, (yyvsp[(2) - (4)].u.attribute))); ;}
     break;
 
   case 449:
+
+/* Line 1455 of yacc.c  */
 #line 2021 "c-parse.y"
     { (yyval.u.declarator) = make_identifier_declarator((yyvsp[(1) - (1)].idtoken).location, (yyvsp[(1) - (1)].idtoken).id); ;}
     break;
 
   case 450:
+
+/* Line 1455 of yacc.c  */
 #line 2023 "c-parse.y"
     {
                  (yyval.u.declarator) = make_interface_ref_declarator((yyvsp[(1) - (3)].idtoken).location, (yyvsp[(1) - (3)].idtoken).id, (yyvsp[(3) - (3)].idtoken).id);
@@ -5495,23 +6139,31 @@ yyreduce:
     break;
 
   case 451:
+
+/* Line 1455 of yacc.c  */
 #line 2029 "c-parse.y"
     { (yyval.u.word) = new_word(pr, (yyvsp[(1) - (1)].idtoken).location, (yyvsp[(1) - (1)].idtoken).id); ;}
     break;
 
   case 452:
+
+/* Line 1455 of yacc.c  */
 #line 2034 "c-parse.y"
     { (yyval.u.telement) = xref_tag((yyvsp[(1) - (3)].u.itoken).location, (yyvsp[(1) - (3)].u.itoken).i, (yyvsp[(2) - (3)].u.word)); 
                  if ((yyvsp[(3) - (3)].u.attribute)) warning("attributes ignored"); ;}
     break;
 
   case 453:
+
+/* Line 1455 of yacc.c  */
 #line 2037 "c-parse.y"
     { (yyval.u.telement) = xref_tag((yyvsp[(1) - (3)].u.itoken).location, kind_enum_ref, (yyvsp[(2) - (3)].u.word));
                  if ((yyvsp[(3) - (3)].u.attribute)) warning("attributes ignored"); ;}
     break;
 
   case 454:
+
+/* Line 1455 of yacc.c  */
 #line 2043 "c-parse.y"
     { (yyval.u.telement) = start_struct((yyvsp[(1) - (4)].u.itoken).location, (yyvsp[(1) - (4)].u.itoken).i, (yyvsp[(2) - (4)].u.word));
                  /* Start scope of tag before parsing components.  */
@@ -5519,11 +6171,15 @@ yyreduce:
     break;
 
   case 455:
+
+/* Line 1455 of yacc.c  */
 #line 2047 "c-parse.y"
     { (yyval.u.telement) = finish_struct((yyvsp[(5) - (8)].u.telement), (yyvsp[(6) - (8)].u.decl), attribute_chain((yyvsp[(3) - (8)].u.attribute), (yyvsp[(8) - (8)].u.attribute))); ;}
     break;
 
   case 456:
+
+/* Line 1455 of yacc.c  */
 #line 2049 "c-parse.y"
     { (yyval.u.telement) = start_struct((yyvsp[(1) - (5)].u.itoken).location, kind_attribute_ref, (yyvsp[(3) - (5)].u.word));
                  /* Start scope of tag before parsing components.  */
@@ -5531,11 +6187,15 @@ yyreduce:
     break;
 
   case 457:
+
+/* Line 1455 of yacc.c  */
 #line 2053 "c-parse.y"
     { (yyval.u.telement) = finish_struct((yyvsp[(6) - (9)].u.telement), (yyvsp[(7) - (9)].u.decl), attribute_chain((yyvsp[(4) - (9)].u.attribute), (yyvsp[(9) - (9)].u.attribute))); ;}
     break;
 
   case 458:
+
+/* Line 1455 of yacc.c  */
 #line 2055 "c-parse.y"
     { (yyval.u.telement) = finish_struct(start_struct((yyvsp[(1) - (5)].u.itoken).location, (yyvsp[(1) - (5)].u.itoken).i,
                                                  NULL), (yyvsp[(3) - (5)].u.decl), (yyvsp[(5) - (5)].u.attribute));
@@ -5543,72 +6203,100 @@ yyreduce:
     break;
 
   case 459:
+
+/* Line 1455 of yacc.c  */
 #line 2059 "c-parse.y"
     { (yyval.u.telement) = start_enum((yyvsp[(1) - (4)].u.itoken).location, (yyvsp[(2) - (4)].u.word)); ;}
     break;
 
   case 460:
+
+/* Line 1455 of yacc.c  */
 #line 2061 "c-parse.y"
     { (yyval.u.telement) = finish_enum((yyvsp[(5) - (9)].u.telement), declaration_reverse((yyvsp[(6) - (9)].u.decl)), attribute_chain((yyvsp[(3) - (9)].u.attribute), (yyvsp[(9) - (9)].u.attribute))); ;}
     break;
 
   case 461:
+
+/* Line 1455 of yacc.c  */
 #line 2063 "c-parse.y"
     { (yyval.u.telement) = start_enum((yyvsp[(1) - (2)].u.itoken).location, NULL); ;}
     break;
 
   case 462:
+
+/* Line 1455 of yacc.c  */
 #line 2065 "c-parse.y"
     { (yyval.u.telement) = finish_enum((yyvsp[(3) - (7)].u.telement), declaration_reverse((yyvsp[(4) - (7)].u.decl)), (yyvsp[(7) - (7)].u.attribute)); ;}
     break;
 
   case 463:
+
+/* Line 1455 of yacc.c  */
 #line 2069 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_struct_ref; ;}
     break;
 
   case 464:
+
+/* Line 1455 of yacc.c  */
 #line 2070 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_union_ref; ;}
     break;
 
   case 465:
+
+/* Line 1455 of yacc.c  */
 #line 2071 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_nx_struct_ref; ;}
     break;
 
   case 466:
+
+/* Line 1455 of yacc.c  */
 #line 2072 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); (yyval.u.itoken).i = kind_nx_union_ref; ;}
     break;
 
   case 470:
+
+/* Line 1455 of yacc.c  */
 #line 2083 "c-parse.y"
     { if (pedantic) pedwarn("comma at end of enumerator list"); ;}
     break;
 
   case 471:
+
+/* Line 1455 of yacc.c  */
 #line 2088 "c-parse.y"
     { (yyval.u.decl) = declaration_reverse((yyvsp[(1) - (1)].u.decl)); ;}
     break;
 
   case 472:
+
+/* Line 1455 of yacc.c  */
 #line 2090 "c-parse.y"
     { (yyval.u.decl) = declaration_reverse(declaration_chain((yyvsp[(2) - (2)].u.decl), (yyvsp[(1) - (2)].u.decl)));
                  pedwarn("no semicolon at end of struct or union"); ;}
     break;
 
   case 473:
+
+/* Line 1455 of yacc.c  */
 #line 2096 "c-parse.y"
     { (yyval.u.decl) = NULL; ;}
     break;
 
   case 474:
+
+/* Line 1455 of yacc.c  */
 #line 2098 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(2) - (3)].u.decl), (yyvsp[(1) - (3)].u.decl)); ;}
     break;
 
   case 475:
+
+/* Line 1455 of yacc.c  */
 #line 2100 "c-parse.y"
     { if (pedantic)
                    pedwarn("extra semicolon in struct or union specified"); 
@@ -5616,11 +6304,15 @@ yyreduce:
     break;
 
   case 476:
+
+/* Line 1455 of yacc.c  */
 #line 2116 "c-parse.y"
     { (yyval.u.decl) = make_data_decl((yyvsp[(1) - (3)].u.telement), declaration_reverse((yyvsp[(3) - (3)].u.decl))); ;}
     break;
 
   case 477:
+
+/* Line 1455 of yacc.c  */
 #line 2118 "c-parse.y"
     { if (pedantic)
                    pedwarn("ISO C doesn't support unnamed structs/unions");
@@ -5629,11 +6321,15 @@ yyreduce:
     break;
 
   case 478:
+
+/* Line 1455 of yacc.c  */
 #line 2123 "c-parse.y"
     { (yyval.u.decl) = make_data_decl((yyvsp[(1) - (3)].u.telement), declaration_reverse((yyvsp[(3) - (3)].u.decl))); ;}
     break;
 
   case 479:
+
+/* Line 1455 of yacc.c  */
 #line 2125 "c-parse.y"
     { if (pedantic)
                    pedwarn("ANSI C forbids member declarations with no members");
@@ -5642,155 +6338,213 @@ yyreduce:
     break;
 
   case 480:
+
+/* Line 1455 of yacc.c  */
 #line 2130 "c-parse.y"
     { (yyval.u.decl) = make_error_decl(); ;}
     break;
 
   case 481:
+
+/* Line 1455 of yacc.c  */
 #line 2132 "c-parse.y"
     { (yyval.u.decl) = make_extension_decl((yyvsp[(1) - (2)].u.itoken).i, (yyvsp[(1) - (2)].u.itoken).location, (yyvsp[(2) - (2)].u.decl)); ;}
     break;
 
   case 483:
+
+/* Line 1455 of yacc.c  */
 #line 2138 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(4) - (4)].u.decl), (yyvsp[(1) - (4)].u.decl)); ;}
     break;
 
   case 485:
+
+/* Line 1455 of yacc.c  */
 #line 2146 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(4) - (4)].u.decl), (yyvsp[(1) - (4)].u.decl)); ;}
     break;
 
   case 486:
+
+/* Line 1455 of yacc.c  */
 #line 2151 "c-parse.y"
     { (yyval.u.decl) = make_field((yyvsp[(1) - (2)].u.declarator), NULL, pstate.declspecs,
                                  prefix_attr((yyvsp[(2) - (2)].u.attribute))); ;}
     break;
 
   case 487:
+
+/* Line 1455 of yacc.c  */
 #line 2154 "c-parse.y"
     { (yyval.u.decl) = make_field((yyvsp[(1) - (4)].u.declarator), (yyvsp[(3) - (4)].u.expr), pstate.declspecs,
                                  prefix_attr((yyvsp[(4) - (4)].u.attribute))); ;}
     break;
 
   case 488:
+
+/* Line 1455 of yacc.c  */
 #line 2157 "c-parse.y"
     { (yyval.u.decl) = make_field(NULL, (yyvsp[(2) - (3)].u.expr), pstate.declspecs,
                                  prefix_attr((yyvsp[(3) - (3)].u.attribute))); ;}
     break;
 
   case 489:
+
+/* Line 1455 of yacc.c  */
 #line 2163 "c-parse.y"
     { (yyval.u.decl) = make_field((yyvsp[(1) - (2)].u.declarator), NULL, pstate.declspecs,
                                  prefix_attr((yyvsp[(2) - (2)].u.attribute))); ;}
     break;
 
   case 490:
+
+/* Line 1455 of yacc.c  */
 #line 2166 "c-parse.y"
     { (yyval.u.decl) = make_field((yyvsp[(1) - (4)].u.declarator), (yyvsp[(3) - (4)].u.expr), pstate.declspecs,
                                  prefix_attr((yyvsp[(4) - (4)].u.attribute))); ;}
     break;
 
   case 491:
+
+/* Line 1455 of yacc.c  */
 #line 2169 "c-parse.y"
     { (yyval.u.decl) = make_field(NULL, (yyvsp[(2) - (3)].u.expr), pstate.declspecs,
                                  prefix_attr((yyvsp[(3) - (3)].u.attribute))); ;}
     break;
 
   case 493:
+
+/* Line 1455 of yacc.c  */
 #line 2176 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(3) - (3)].u.decl), (yyvsp[(1) - (3)].u.decl)); ;}
     break;
 
   case 494:
+
+/* Line 1455 of yacc.c  */
 #line 2178 "c-parse.y"
     { (yyval.u.decl) = NULL; ;}
     break;
 
   case 495:
+
+/* Line 1455 of yacc.c  */
 #line 2184 "c-parse.y"
     { (yyval.u.decl) = make_enumerator((yyvsp[(1) - (1)].idtoken).location, (yyvsp[(1) - (1)].idtoken).id, NULL); ;}
     break;
 
   case 496:
+
+/* Line 1455 of yacc.c  */
 #line 2186 "c-parse.y"
     { (yyval.u.decl) = make_enumerator((yyvsp[(1) - (3)].idtoken).location, (yyvsp[(1) - (3)].idtoken).id, (yyvsp[(3) - (3)].u.expr)); ;}
     break;
 
   case 497:
+
+/* Line 1455 of yacc.c  */
 #line 2191 "c-parse.y"
     { pending_xref_error(); ;}
     break;
 
   case 498:
+
+/* Line 1455 of yacc.c  */
 #line 2193 "c-parse.y"
     { (yyval.u.type) = make_type((yyvsp[(1) - (3)].u.telement), (yyvsp[(3) - (3)].u.declarator)); ;}
     break;
 
   case 499:
+
+/* Line 1455 of yacc.c  */
 #line 2198 "c-parse.y"
     { (yyval.u.declarator) = NULL; ;}
     break;
 
   case 504:
+
+/* Line 1455 of yacc.c  */
 #line 2210 "c-parse.y"
     { (yyval.u.declarator) = make_pointer_declarator((yyvsp[(1) - (3)].u.itoken).location, (yyvsp[(3) - (3)].u.declarator), (yyvsp[(2) - (3)].u.telement)); ;}
     break;
 
   case 505:
+
+/* Line 1455 of yacc.c  */
 #line 2215 "c-parse.y"
     { (yyval.u.declarator) = make_pointer_declarator((yyvsp[(1) - (2)].u.itoken).location, NULL, (yyvsp[(2) - (2)].u.telement)); ;}
     break;
 
   case 506:
+
+/* Line 1455 of yacc.c  */
 #line 2217 "c-parse.y"
     { (yyval.u.declarator) = make_pointer_declarator((yyvsp[(1) - (3)].u.itoken).location, (yyvsp[(3) - (3)].u.declarator), (yyvsp[(2) - (3)].u.telement)); ;}
     break;
 
   case 507:
+
+/* Line 1455 of yacc.c  */
 #line 2222 "c-parse.y"
     { (yyval.u.declarator) = make_qualified_declarator((yyvsp[(1) - (4)].u.itoken).location, (yyvsp[(3) - (4)].u.declarator), CAST(type_element, (yyvsp[(2) - (4)].u.attribute))); ;}
     break;
 
   case 508:
+
+/* Line 1455 of yacc.c  */
 #line 2224 "c-parse.y"
     { (yyval.u.declarator) = finish_array_or_fn_declarator((yyvsp[(1) - (2)].u.declarator), (yyvsp[(2) - (2)].u.nested)); ;}
     break;
 
   case 509:
+
+/* Line 1455 of yacc.c  */
 #line 2226 "c-parse.y"
     { (yyval.u.declarator) = finish_array_or_fn_declarator(NULL, (yyvsp[(1) - (1)].u.nested)); ;}
     break;
 
   case 514:
+
+/* Line 1455 of yacc.c  */
 #line 2241 "c-parse.y"
     { (yyval.u.nested) = CAST(nested_declarator,
                    new_function_declarator(pr, (yyvsp[(2) - (4)].u.itoken).location, NULL, (yyvsp[(3) - (4)].u.decl), (yyvsp[(1) - (4)].u.decl), (yyvsp[(4) - (4)].u.telement), NULL)); ;}
     break;
 
   case 515:
+
+/* Line 1455 of yacc.c  */
 #line 2244 "c-parse.y"
     { (yyval.u.nested) = CAST(nested_declarator,
                    new_function_declarator(pr, (yyvsp[(1) - (3)].u.itoken).location, NULL, (yyvsp[(2) - (3)].u.decl), NULL, (yyvsp[(3) - (3)].u.telement), NULL)); ;}
     break;
 
   case 516:
+
+/* Line 1455 of yacc.c  */
 #line 2250 "c-parse.y"
     { (yyval.u.nested) = CAST(nested_declarator,
                    new_function_declarator(pr, (yyvsp[(1) - (3)].u.itoken).location, NULL, (yyvsp[(2) - (3)].u.decl), NULL, (yyvsp[(3) - (3)].u.telement), NULL)); ;}
     break;
 
   case 517:
+
+/* Line 1455 of yacc.c  */
 #line 2256 "c-parse.y"
     { (yyval.u.nested) = CAST(nested_declarator, new_array_declarator(pr, (yyvsp[(1) - (3)].u.itoken).location, NULL, (yyvsp[(2) - (3)].u.expr))); ;}
     break;
 
   case 518:
+
+/* Line 1455 of yacc.c  */
 #line 2258 "c-parse.y"
     { (yyval.u.nested) = CAST(nested_declarator, new_array_declarator(pr, (yyvsp[(1) - (2)].u.itoken).location, NULL, NULL)); ;}
     break;
 
   case 519:
+
+/* Line 1455 of yacc.c  */
 #line 2267 "c-parse.y"
     {
                  if (pedantic && (yyvsp[(1) - (1)].u.istmt).i)
@@ -5807,31 +6561,43 @@ yyreduce:
     break;
 
   case 521:
+
+/* Line 1455 of yacc.c  */
 #line 2284 "c-parse.y"
     { (yyval.u.istmt).i = (yyvsp[(2) - (2)].u.istmt).i; (yyval.u.istmt).stmt = chain_with_labels((yyvsp[(1) - (2)].u.istmt).stmt, (yyvsp[(2) - (2)].u.istmt).stmt); ;}
     break;
 
   case 522:
+
+/* Line 1455 of yacc.c  */
 #line 2286 "c-parse.y"
     { (yyval.u.istmt).i = 0; (yyval.u.istmt).stmt = make_error_stmt(); ;}
     break;
 
   case 523:
+
+/* Line 1455 of yacc.c  */
 #line 2290 "c-parse.y"
     { (yyval.u.stmt) = NULL; ;}
     break;
 
   case 526:
+
+/* Line 1455 of yacc.c  */
 #line 2299 "c-parse.y"
     { pushlevel(FALSE); ;}
     break;
 
   case 527:
+
+/* Line 1455 of yacc.c  */
 #line 2305 "c-parse.y"
     { (yyval.u.id_label) = NULL; ;}
     break;
 
   case 528:
+
+/* Line 1455 of yacc.c  */
 #line 2307 "c-parse.y"
     { if (pedantic)
                    pedwarn("ANSI C forbids label declarations"); 
@@ -5839,59 +6605,81 @@ yyreduce:
     break;
 
   case 530:
+
+/* Line 1455 of yacc.c  */
 #line 2314 "c-parse.y"
     { (yyval.u.id_label) = id_label_chain((yyvsp[(2) - (2)].u.id_label), (yyvsp[(1) - (2)].u.id_label)); ;}
     break;
 
   case 531:
+
+/* Line 1455 of yacc.c  */
 #line 2319 "c-parse.y"
     { (yyval.u.id_label) = (yyvsp[(2) - (3)].u.id_label); ;}
     break;
 
   case 533:
+
+/* Line 1455 of yacc.c  */
 #line 2326 "c-parse.y"
     { (yyval.u.stmt) = (yyvsp[(2) - (2)].u.stmt); ;}
     break;
 
   case 534:
+
+/* Line 1455 of yacc.c  */
 #line 2330 "c-parse.y"
     { (yyval.u.itoken) = (yyvsp[(1) - (1)].u.itoken); compstmt_count++; ;}
     break;
 
   case 535:
+
+/* Line 1455 of yacc.c  */
 #line 2335 "c-parse.y"
     { (yyval.u.stmt) = CAST(statement, new_compound_stmt(pr, (yyvsp[(1) - (3)].u.itoken).location, NULL, NULL, NULL, poplevel())); ;}
     break;
 
   case 536:
+
+/* Line 1455 of yacc.c  */
 #line 2337 "c-parse.y"
     { (yyval.u.stmt) = CAST(statement, new_compound_stmt(pr, (yyvsp[(1) - (6)].u.itoken).location, (yyvsp[(3) - (6)].u.id_label),
                    declaration_reverse((yyvsp[(4) - (6)].u.decl)), (yyvsp[(5) - (6)].u.stmt), poplevel())); ;}
     break;
 
   case 537:
+
+/* Line 1455 of yacc.c  */
 #line 2340 "c-parse.y"
     { poplevel();
                  (yyval.u.stmt) = make_error_stmt(); ;}
     break;
 
   case 538:
+
+/* Line 1455 of yacc.c  */
 #line 2343 "c-parse.y"
     { (yyval.u.stmt) = CAST(statement, new_compound_stmt(pr, (yyvsp[(1) - (5)].u.itoken).location, (yyvsp[(3) - (5)].u.id_label), NULL, (yyvsp[(4) - (5)].u.stmt), poplevel())); ;}
     break;
 
   case 539:
+
+/* Line 1455 of yacc.c  */
 #line 2349 "c-parse.y"
     { (yyval.u.istmt).stmt = CAST(statement, new_if_stmt(pr, (yyvsp[(1) - (2)].u.iexpr).expr->location, (yyvsp[(1) - (2)].u.iexpr).expr, (yyvsp[(2) - (2)].u.stmt), NULL));
                  (yyval.u.istmt).i = (yyvsp[(1) - (2)].u.iexpr).i; ;}
     break;
 
   case 540:
+
+/* Line 1455 of yacc.c  */
 #line 2351 "c-parse.y"
     { (yyval.u.istmt).i = (yyvsp[(1) - (2)].u.iexpr).i; (yyval.u.istmt).stmt = make_error_stmt(); ;}
     break;
 
   case 541:
+
+/* Line 1455 of yacc.c  */
 #line 2356 "c-parse.y"
     { (yyval.u.iexpr).i = stmt_count;
                  (yyval.u.iexpr).expr = (yyvsp[(3) - (4)].u.expr);
@@ -5899,6 +6687,8 @@ yyreduce:
     break;
 
   case 542:
+
+/* Line 1455 of yacc.c  */
 #line 2366 "c-parse.y"
     { stmt_count++;
                  compstmt_count++; 
@@ -5908,32 +6698,44 @@ yyreduce:
     break;
 
   case 543:
+
+/* Line 1455 of yacc.c  */
 #line 2372 "c-parse.y"
     { (yyval.u.cstmt) = (yyvsp[(2) - (4)].u.cstmt); 
                  (yyval.u.cstmt)->stmt = (yyvsp[(3) - (4)].u.stmt); ;}
     break;
 
   case 544:
+
+/* Line 1455 of yacc.c  */
 #line 2378 "c-parse.y"
     { (yyval.u.stmt) = (yyvsp[(1) - (1)].u.stmt); ;}
     break;
 
   case 545:
+
+/* Line 1455 of yacc.c  */
 #line 2380 "c-parse.y"
     { (yyval.u.stmt) = CAST(statement, new_labeled_stmt(pr, (yyvsp[(1) - (2)].u.label)->location, (yyvsp[(1) - (2)].u.label), (yyvsp[(2) - (2)].u.stmt))); ;}
     break;
 
   case 546:
+
+/* Line 1455 of yacc.c  */
 #line 2385 "c-parse.y"
     { (yyval.u.istmt).i = 0; (yyval.u.istmt).stmt = (yyvsp[(1) - (1)].u.stmt); ;}
     break;
 
   case 547:
+
+/* Line 1455 of yacc.c  */
 #line 2387 "c-parse.y"
     { (yyval.u.istmt).i = 1; (yyval.u.istmt).stmt = CAST(statement, new_labeled_stmt(pr, (yyvsp[(1) - (1)].u.label)->location, (yyvsp[(1) - (1)].u.label), NULL)); ;}
     break;
 
   case 548:
+
+/* Line 1455 of yacc.c  */
 #line 2391 "c-parse.y"
     { 
                   atomic_stmt last_atomic = current.in_atomic;
@@ -5944,6 +6746,8 @@ yyreduce:
     break;
 
   case 549:
+
+/* Line 1455 of yacc.c  */
 #line 2398 "c-parse.y"
     {
                  atomic_stmt this_atomic = current.in_atomic;
@@ -5958,27 +6762,37 @@ yyreduce:
     break;
 
   case 551:
+
+/* Line 1455 of yacc.c  */
 #line 2412 "c-parse.y"
     { (yyval.u.stmt) = make_error_stmt(); ;}
     break;
 
   case 552:
+
+/* Line 1455 of yacc.c  */
 #line 2418 "c-parse.y"
     { stmt_count++; (yyval.u.stmt) = (yyvsp[(1) - (1)].u.stmt); ;}
     break;
 
   case 553:
+
+/* Line 1455 of yacc.c  */
 #line 2420 "c-parse.y"
     { stmt_count++;
                  (yyval.u.stmt) = CAST(statement, new_expression_stmt(pr, (yyvsp[(1) - (2)].u.expr)->location, (yyvsp[(1) - (2)].u.expr))); ;}
     break;
 
   case 554:
+
+/* Line 1455 of yacc.c  */
 #line 2423 "c-parse.y"
     { (yyvsp[(1) - (2)].u.istmt).i = stmt_count; ;}
     break;
 
   case 555:
+
+/* Line 1455 of yacc.c  */
 #line 2425 "c-parse.y"
     { if (extra_warnings && stmt_count == (yyvsp[(1) - (4)].u.istmt).i)
                    warning("empty body in an else-statement");
@@ -5989,6 +6803,8 @@ yyreduce:
     break;
 
   case 556:
+
+/* Line 1455 of yacc.c  */
 #line 2432 "c-parse.y"
     { /* This warning is here instead of in simple_if, because we
                     do not want a warning if an empty if is followed by an
@@ -6001,16 +6817,22 @@ yyreduce:
     break;
 
   case 557:
+
+/* Line 1455 of yacc.c  */
 #line 2441 "c-parse.y"
     { (yyval.u.stmt) = make_error_stmt(); ;}
     break;
 
   case 558:
+
+/* Line 1455 of yacc.c  */
 #line 2443 "c-parse.y"
     { stmt_count++; ;}
     break;
 
   case 559:
+
+/* Line 1455 of yacc.c  */
 #line 2445 "c-parse.y"
     { check_condition("while", (yyvsp[(4) - (5)].u.expr)); 
                  (yyval.u.cstmt) = CAST(conditional_stmt,
@@ -6020,6 +6842,8 @@ yyreduce:
     break;
 
   case 560:
+
+/* Line 1455 of yacc.c  */
 #line 2451 "c-parse.y"
     { (yyval.u.stmt) = CAST(statement, (yyvsp[(6) - (7)].u.cstmt));
                  (yyvsp[(6) - (7)].u.cstmt)->stmt = (yyvsp[(7) - (7)].u.stmt); 
@@ -6027,6 +6851,8 @@ yyreduce:
     break;
 
   case 561:
+
+/* Line 1455 of yacc.c  */
 #line 2455 "c-parse.y"
     { (yyval.u.stmt) = CAST(statement, (yyvsp[(1) - (5)].u.cstmt));
                  (yyvsp[(1) - (5)].u.cstmt)->condition = (yyvsp[(3) - (5)].u.expr);
@@ -6037,28 +6863,38 @@ yyreduce:
     break;
 
   case 562:
+
+/* Line 1455 of yacc.c  */
 #line 2462 "c-parse.y"
     { (yyval.u.stmt) = make_error_stmt(); 
                  pop_loop(); ;}
     break;
 
   case 563:
+
+/* Line 1455 of yacc.c  */
 #line 2464 "c-parse.y"
     { stmt_count++; ;}
     break;
 
   case 564:
+
+/* Line 1455 of yacc.c  */
 #line 2465 "c-parse.y"
     { if ((yyvsp[(6) - (7)].u.expr)) check_condition("for", (yyvsp[(6) - (7)].u.expr)); ;}
     break;
 
   case 565:
+
+/* Line 1455 of yacc.c  */
 #line 2467 "c-parse.y"
     { (yyval.u.for_stmt) = new_for_stmt(pr, (yyvsp[(1) - (10)].u.itoken).location, (yyvsp[(3) - (10)].u.expr), (yyvsp[(6) - (10)].u.expr), (yyvsp[(9) - (10)].u.expr), NULL);
                  push_loop(CAST(statement, (yyval.u.for_stmt))); ;}
     break;
 
   case 566:
+
+/* Line 1455 of yacc.c  */
 #line 2470 "c-parse.y"
     { (yyval.u.stmt) = CAST(statement, (yyvsp[(11) - (12)].u.for_stmt));
                  (yyvsp[(11) - (12)].u.for_stmt)->stmt = (yyvsp[(12) - (12)].u.stmt); 
@@ -6066,6 +6902,8 @@ yyreduce:
     break;
 
   case 567:
+
+/* Line 1455 of yacc.c  */
 #line 2474 "c-parse.y"
     { stmt_count++; check_switch((yyvsp[(3) - (4)].u.expr)); 
                  (yyval.u.cstmt) = CAST(conditional_stmt,
@@ -6074,6 +6912,8 @@ yyreduce:
     break;
 
   case 568:
+
+/* Line 1455 of yacc.c  */
 #line 2479 "c-parse.y"
     { (yyval.u.stmt) = CAST(statement, (yyvsp[(5) - (6)].u.cstmt)); 
                  (yyvsp[(5) - (6)].u.cstmt)->stmt = (yyvsp[(6) - (6)].u.stmt);
@@ -6081,6 +6921,8 @@ yyreduce:
     break;
 
   case 569:
+
+/* Line 1455 of yacc.c  */
 #line 2483 "c-parse.y"
     { stmt_count++;
                  (yyval.u.stmt) = CAST(statement, new_break_stmt(pr, (yyvsp[(1) - (2)].u.itoken).location));
@@ -6089,6 +6931,8 @@ yyreduce:
     break;
 
   case 570:
+
+/* Line 1455 of yacc.c  */
 #line 2488 "c-parse.y"
     { stmt_count++;
                  (yyval.u.stmt) = CAST(statement, new_continue_stmt(pr, (yyvsp[(1) - (2)].u.itoken).location));
@@ -6097,18 +6941,24 @@ yyreduce:
     break;
 
   case 571:
+
+/* Line 1455 of yacc.c  */
 #line 2493 "c-parse.y"
     { stmt_count++;
                  (yyval.u.stmt) = make_void_return((yyvsp[(1) - (2)].u.itoken).location); ;}
     break;
 
   case 572:
+
+/* Line 1455 of yacc.c  */
 #line 2496 "c-parse.y"
     { stmt_count++;
                  (yyval.u.stmt) = make_return((yyvsp[(1) - (3)].u.itoken).location, (yyvsp[(2) - (3)].u.expr)); ;}
     break;
 
   case 573:
+
+/* Line 1455 of yacc.c  */
 #line 2499 "c-parse.y"
     { stmt_count++;
                  (yyval.u.stmt) = CAST(statement, new_asm_stmt(pr, (yyvsp[(1) - (6)].u.itoken).location, (yyvsp[(4) - (6)].u.expr), NULL,
@@ -6116,6 +6966,8 @@ yyreduce:
     break;
 
   case 574:
+
+/* Line 1455 of yacc.c  */
 #line 2504 "c-parse.y"
     { stmt_count++;
                  (yyval.u.stmt) = CAST(statement, new_asm_stmt(pr, (yyvsp[(1) - (8)].u.itoken).location, (yyvsp[(4) - (8)].u.expr), (yyvsp[(6) - (8)].u.asm_operand), NULL,
@@ -6123,18 +6975,24 @@ yyreduce:
     break;
 
   case 575:
+
+/* Line 1455 of yacc.c  */
 #line 2509 "c-parse.y"
     { stmt_count++;
                  (yyval.u.stmt) = CAST(statement, new_asm_stmt(pr, (yyvsp[(1) - (10)].u.itoken).location, (yyvsp[(4) - (10)].u.expr), (yyvsp[(6) - (10)].u.asm_operand), (yyvsp[(8) - (10)].u.asm_operand), NULL, (yyvsp[(2) - (10)].u.telement))); ;}
     break;
 
   case 576:
+
+/* Line 1455 of yacc.c  */
 #line 2514 "c-parse.y"
     { stmt_count++;
                  (yyval.u.stmt) = CAST(statement, new_asm_stmt(pr, (yyvsp[(1) - (12)].u.itoken).location, (yyvsp[(4) - (12)].u.expr), (yyvsp[(6) - (12)].u.asm_operand), (yyvsp[(8) - (12)].u.asm_operand), (yyvsp[(10) - (12)].u.string), (yyvsp[(2) - (12)].u.telement))); ;}
     break;
 
   case 577:
+
+/* Line 1455 of yacc.c  */
 #line 2517 "c-parse.y"
     { stmt_count++;
                  (yyval.u.stmt) = CAST(statement, new_goto_stmt(pr, (yyvsp[(1) - (3)].u.itoken).location, (yyvsp[(2) - (3)].u.id_label)));
@@ -6143,6 +7001,8 @@ yyreduce:
     break;
 
   case 578:
+
+/* Line 1455 of yacc.c  */
 #line 2522 "c-parse.y"
     { if (pedantic)
                    pedwarn("ANSI C forbids `goto *expr;'");
@@ -6153,80 +7013,110 @@ yyreduce:
     break;
 
   case 580:
+
+/* Line 1455 of yacc.c  */
 #line 2529 "c-parse.y"
     { (yyval.u.stmt) = CAST(statement, new_empty_stmt(pr, (yyvsp[(1) - (1)].u.itoken).location)); ;}
     break;
 
   case 581:
+
+/* Line 1455 of yacc.c  */
 #line 2537 "c-parse.y"
     { (yyval.u.label) = CAST(label, new_case_label(pr, (yyvsp[(1) - (3)].u.itoken).location, (yyvsp[(2) - (3)].u.expr), NULL)); 
                  check_case((yyval.u.label)); ;}
     break;
 
   case 582:
+
+/* Line 1455 of yacc.c  */
 #line 2540 "c-parse.y"
     { (yyval.u.label) = CAST(label, new_case_label(pr, (yyvsp[(1) - (5)].u.itoken).location, (yyvsp[(2) - (5)].u.expr), (yyvsp[(4) - (5)].u.expr))); 
                  check_case((yyval.u.label)); ;}
     break;
 
   case 583:
+
+/* Line 1455 of yacc.c  */
 #line 2543 "c-parse.y"
     { (yyval.u.label) = CAST(label, new_default_label(pr, (yyvsp[(1) - (2)].u.itoken).location)); 
                  check_default((yyval.u.label)); ;}
     break;
 
   case 584:
+
+/* Line 1455 of yacc.c  */
 #line 2546 "c-parse.y"
     { (yyval.u.label) = CAST(label, (yyvsp[(1) - (2)].u.id_label)); 
                  define_label((yyvsp[(1) - (2)].u.id_label)); ;}
     break;
 
   case 585:
+
+/* Line 1455 of yacc.c  */
 #line 2554 "c-parse.y"
     { (yyval.u.telement) = NULL; ;}
     break;
 
   case 587:
+
+/* Line 1455 of yacc.c  */
 #line 2560 "c-parse.y"
     { (yyval.u.expr) = NULL; ;}
     break;
 
   case 589:
+
+/* Line 1455 of yacc.c  */
 #line 2568 "c-parse.y"
     { (yyval.u.asm_operand) = NULL; ;}
     break;
 
   case 592:
+
+/* Line 1455 of yacc.c  */
 #line 2575 "c-parse.y"
     { (yyval.u.asm_operand) = asm_operand_chain((yyvsp[(1) - (3)].u.asm_operand), (yyvsp[(3) - (3)].u.asm_operand)); ;}
     break;
 
   case 593:
+
+/* Line 1455 of yacc.c  */
 #line 2580 "c-parse.y"
     { (yyval.u.asm_operand) = new_asm_operand(pr, (yyvsp[(1) - (4)].u.string)->location, NULL, (yyvsp[(1) - (4)].u.string), (yyvsp[(3) - (4)].u.expr));  ;}
     break;
 
   case 594:
+
+/* Line 1455 of yacc.c  */
 #line 2582 "c-parse.y"
     { (yyval.u.asm_operand) = new_asm_operand(pr, (yyvsp[(1) - (7)].u.itoken).location, (yyvsp[(2) - (7)].u.word), (yyvsp[(4) - (7)].u.string), (yyvsp[(6) - (7)].u.expr));  ;}
     break;
 
   case 595:
+
+/* Line 1455 of yacc.c  */
 #line 2587 "c-parse.y"
     { (yyval.u.string) = (yyvsp[(1) - (1)].u.string); ;}
     break;
 
   case 596:
+
+/* Line 1455 of yacc.c  */
 #line 2589 "c-parse.y"
     { (yyval.u.string) = string_chain((yyvsp[(1) - (3)].u.string), (yyvsp[(3) - (3)].u.string)); ;}
     break;
 
   case 597:
+
+/* Line 1455 of yacc.c  */
 #line 2595 "c-parse.y"
     { pushlevel(TRUE); ;}
     break;
 
   case 598:
+
+/* Line 1455 of yacc.c  */
 #line 2597 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(2) - (2)].u.decl);
                  /* poplevel() is done when building the declarator */
@@ -6234,11 +7124,15 @@ yyreduce:
     break;
 
   case 599:
+
+/* Line 1455 of yacc.c  */
 #line 2603 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(1) - (2)].u.decl); ;}
     break;
 
   case 600:
+
+/* Line 1455 of yacc.c  */
 #line 2605 "c-parse.y"
     { if (pedantic)
                    pedwarn("ANSI C forbids forward parameter declarations");
@@ -6247,21 +7141,29 @@ yyreduce:
     break;
 
   case 601:
+
+/* Line 1455 of yacc.c  */
 #line 2610 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(1) - (4)].u.decl), (yyvsp[(4) - (4)].u.decl)); ;}
     break;
 
   case 602:
+
+/* Line 1455 of yacc.c  */
 #line 2612 "c-parse.y"
     { (yyval.u.decl) = make_error_decl(); ;}
     break;
 
   case 603:
+
+/* Line 1455 of yacc.c  */
 #line 2618 "c-parse.y"
     { (yyval.u.decl) = NULL; ;}
     break;
 
   case 604:
+
+/* Line 1455 of yacc.c  */
 #line 2620 "c-parse.y"
     { (yyval.u.decl) = make_error_decl();
                  /* Gcc used to allow this as an extension.  However, it does
@@ -6275,113 +7177,157 @@ yyreduce:
     break;
 
   case 605:
+
+/* Line 1455 of yacc.c  */
 #line 2630 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(1) - (1)].u.decl); ;}
     break;
 
   case 606:
+
+/* Line 1455 of yacc.c  */
 #line 2632 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(1) - (3)].u.decl), CAST(declaration, new_ellipsis_decl(pr, (yyvsp[(3) - (3)].u.itoken).location))); ;}
     break;
 
   case 608:
+
+/* Line 1455 of yacc.c  */
 #line 2638 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(1) - (3)].u.decl), (yyvsp[(3) - (3)].u.decl)); ;}
     break;
 
   case 609:
+
+/* Line 1455 of yacc.c  */
 #line 2645 "c-parse.y"
     { (yyval.u.decl) = declare_parameter((yyvsp[(3) - (4)].u.declarator), (yyvsp[(1) - (4)].u.telement), (yyvsp[(4) - (4)].u.attribute)); ;}
     break;
 
   case 610:
+
+/* Line 1455 of yacc.c  */
 #line 2647 "c-parse.y"
     { (yyval.u.decl) = declare_parameter((yyvsp[(3) - (4)].u.declarator), (yyvsp[(1) - (4)].u.telement), (yyvsp[(4) - (4)].u.attribute)); ;}
     break;
 
   case 611:
+
+/* Line 1455 of yacc.c  */
 #line 2649 "c-parse.y"
     { (yyval.u.decl) = declare_parameter((yyvsp[(3) - (3)].u.declarator), (yyvsp[(1) - (3)].u.telement), NULL); ;}
     break;
 
   case 612:
+
+/* Line 1455 of yacc.c  */
 #line 2651 "c-parse.y"
     { (yyval.u.decl) = declare_parameter((yyvsp[(3) - (4)].u.declarator), (yyvsp[(1) - (4)].u.telement), (yyvsp[(4) - (4)].u.attribute)); ;}
     break;
 
   case 613:
+
+/* Line 1455 of yacc.c  */
 #line 2653 "c-parse.y"
     { (yyval.u.decl) = declare_parameter((yyvsp[(3) - (4)].u.declarator), (yyvsp[(1) - (4)].u.telement), (yyvsp[(4) - (4)].u.attribute)); ;}
     break;
 
   case 614:
+
+/* Line 1455 of yacc.c  */
 #line 2655 "c-parse.y"
     { (yyval.u.decl) = declare_parameter((yyvsp[(3) - (3)].u.declarator), (yyvsp[(1) - (3)].u.telement), NULL); ;}
     break;
 
   case 615:
+
+/* Line 1455 of yacc.c  */
 #line 2657 "c-parse.y"
     { (yyval.u.decl) = declare_parameter((yyvsp[(3) - (4)].u.declarator), (yyvsp[(1) - (4)].u.telement), (yyvsp[(4) - (4)].u.attribute)); ;}
     break;
 
   case 616:
+
+/* Line 1455 of yacc.c  */
 #line 2660 "c-parse.y"
     { pending_xref_error(); ;}
     break;
 
   case 617:
+
+/* Line 1455 of yacc.c  */
 #line 2666 "c-parse.y"
     { pushlevel(TRUE); ;}
     break;
 
   case 618:
+
+/* Line 1455 of yacc.c  */
 #line 2668 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(2) - (2)].u.decl);
                  /* poplevel is done when building the declarator */ ;}
     break;
 
   case 620:
+
+/* Line 1455 of yacc.c  */
 #line 2674 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(1) - (2)].u.decl); ;}
     break;
 
   case 621:
+
+/* Line 1455 of yacc.c  */
 #line 2680 "c-parse.y"
     { (yyval.u.decl) = (yyvsp[(1) - (1)].u.decl); ;}
     break;
 
   case 622:
+
+/* Line 1455 of yacc.c  */
 #line 2682 "c-parse.y"
     { (yyval.u.decl) = declaration_chain((yyvsp[(1) - (3)].u.decl), (yyvsp[(3) - (3)].u.decl)); ;}
     break;
 
   case 623:
+
+/* Line 1455 of yacc.c  */
 #line 2686 "c-parse.y"
     { (yyval.u.decl) = declare_old_parameter((yyvsp[(1) - (1)].idtoken).location, (yyvsp[(1) - (1)].idtoken).id); ;}
     break;
 
   case 624:
+
+/* Line 1455 of yacc.c  */
 #line 2691 "c-parse.y"
     { (yyval.u.id_label) = (yyvsp[(1) - (1)].u.id_label); declare_label((yyvsp[(1) - (1)].u.id_label)); ;}
     break;
 
   case 625:
+
+/* Line 1455 of yacc.c  */
 #line 2693 "c-parse.y"
     { (yyval.u.id_label) = id_label_chain((yyvsp[(3) - (3)].u.id_label), (yyvsp[(1) - (3)].u.id_label));
                  declare_label((yyvsp[(3) - (3)].u.id_label)); ;}
     break;
 
   case 626:
+
+/* Line 1455 of yacc.c  */
 #line 2699 "c-parse.y"
     { (yyval.u.telement) = NULL; ;}
     break;
 
   case 627:
+
+/* Line 1455 of yacc.c  */
 #line 2700 "c-parse.y"
     { (yyval.u.telement) = (yyvsp[(1) - (1)].u.telement); ;}
     break;
 
   case 628:
+
+/* Line 1455 of yacc.c  */
 #line 2705 "c-parse.y"
     { (yyval.u.itoken).location = (yyvsp[(1) - (1)].u.itoken).location;
                  (yyval.u.itoken).i = pedantic;
@@ -6389,33 +7335,44 @@ yyreduce:
     break;
 
   case 629:
+
+/* Line 1455 of yacc.c  */
 #line 2712 "c-parse.y"
     { (yyval.u.telement) = CAST(type_element, new_rid(pr, (yyvsp[(1) - (1)].u.itoken).location, (yyvsp[(1) - (1)].u.itoken).i)); ;}
     break;
 
   case 630:
+
+/* Line 1455 of yacc.c  */
 #line 2714 "c-parse.y"
     { (yyval.u.telement) = CAST(type_element, new_rid(pr, (yyvsp[(1) - (1)].u.itoken).location, RID_DEFAULT)); ;}
     break;
 
   case 631:
+
+/* Line 1455 of yacc.c  */
 #line 2719 "c-parse.y"
     { (yyval.u.telement) = CAST(type_element, new_qualifier(pr, (yyvsp[(1) - (1)].u.itoken).location, (yyvsp[(1) - (1)].u.itoken).i)); ;}
     break;
 
   case 632:
+
+/* Line 1455 of yacc.c  */
 #line 2724 "c-parse.y"
     { (yyval.u.telement) = CAST(type_element, new_qualifier(pr, (yyvsp[(1) - (1)].u.itoken).location, (yyvsp[(1) - (1)].u.itoken).i)); ;}
     break;
 
   case 633:
+
+/* Line 1455 of yacc.c  */
 #line 2729 "c-parse.y"
     { (yyval.u.telement) = CAST(type_element, new_rid(pr, (yyvsp[(1) - (1)].u.itoken).location, (yyvsp[(1) - (1)].u.itoken).i)); ;}
     break;
 
 
-/* Line 1267 of yacc.c.  */
-#line 6419 "c-parse.tab.c"
+
+/* Line 1455 of yacc.c  */
+#line 7376 "c-parse.tab.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -6426,7 +7383,6 @@ yyreduce:
 
   *++yyvsp = yyval;
 
-
   /* 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.  */
@@ -6491,7 +7447,7 @@ yyerrlab:
 
   if (yyerrstatus == 3)
     {
-      /* If just tried and failed to reuse look-ahead token after an
+      /* If just tried and failed to reuse lookahead token after an
         error, discard it.  */
 
       if (yychar <= YYEOF)
@@ -6508,7 +7464,7 @@ yyerrlab:
        }
     }
 
-  /* Else will try to reuse look-ahead token after shifting the error
+  /* Else will try to reuse lookahead token after shifting the error
      token.  */
   goto yyerrlab1;
 
@@ -6565,9 +7521,6 @@ yyerrlab1:
       YY_STACK_PRINT (yyss, yyssp);
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   *++yyvsp = yylval;
 
 
@@ -6592,7 +7545,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
-#ifndef yyoverflow
+#if !defined(yyoverflow) || YYERROR_VERBOSE
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
@@ -6603,7 +7556,7 @@ yyexhaustedlab:
 #endif
 
 yyreturn:
-  if (yychar != YYEOF && yychar != YYEMPTY)
+  if (yychar != YYEMPTY)
      yydestruct ("Cleanup: discarding lookahead",
                 yytoken, &yylval);
   /* Do not reclaim the symbols of the rule which action triggered
@@ -6629,6 +7582,8 @@ yyreturn:
 }
 
 
+
+/* Line 1675 of yacc.c  */
 #line 2733 "c-parse.y"