Fix grammar of the size_is attribute so that size_is(*Length) gets accepted.
authorEric Kohl <eric.kohl@reactos.org>
Sun, 24 Jul 2005 22:17:02 +0000 (22:17 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Sun, 24 Jul 2005 22:17:02 +0000 (22:17 +0000)
svn path=/trunk/; revision=16721

reactos/tools/widl/ChangeLog
reactos/tools/widl/client.c
reactos/tools/widl/lex.yy.c
reactos/tools/widl/parser.y
reactos/tools/widl/proxy.c
reactos/tools/widl/server.c
reactos/tools/widl/y.tab.c
reactos/tools/widl/y.tab.h

index 6039d01..887ebd3 100644 (file)
@@ -1,5 +1,17 @@
 ChangeLog
 
+2005-07-25 ekohl
+
+   tools/widl/client.c
+   tools/widl/lex.yy.c
+   tools/widl/parser.y
+   tools/widl/proxy.c
+   tools/widl/server.c
+   tools/widl/y.tab.c
+   tools/widl/y.tab.h
+
+- Fix grammar of the size_is attribute so that size_is(*Length) gets accepted.
+
 2005-07-23 ekohl
 
    tools/widl/client.c
index 8386002..dc0bf8a 100644 (file)
@@ -522,7 +522,7 @@ static void write_typeformatstring(type_t *iface)
                     {\r
                         unsigned char type_type = 0;\r
 \r
-                        type = get_type_by_name(func, ((expr_t *)sizeis_attr)->u.sval);\r
+                        type = get_type_by_name(func, ((var_t *)sizeis_attr)->name);\r
                         if (type != NULL)\r
                             type_type = type->type;\r
 \r
@@ -541,10 +541,10 @@ static void write_typeformatstring(type_t *iface)
 \r
                             fprintf(client, "#ifndef _ALPHA_\n");\r
                             print_client("NdrFcShort(0x%02X),\n",\r
-                                         get_var_stack_offset_32(func, ((expr_t *)sizeis_attr)->u.sval));\r
+                                         get_var_stack_offset_32(func, ((var_t *)sizeis_attr)->name));\r
                             fprintf(client, "#else\n");\r
                             print_client("NdrFcShort(0x%02X),\n",\r
-                                         get_var_stack_offset_64(func, ((expr_t *)sizeis_attr)->u.sval));\r
+                                         get_var_stack_offset_64(func, ((var_t *)sizeis_attr)->name));\r
                             fprintf(client, "#endif\n");\r
                         }\r
                         else\r
index bedaca5..1003fb4 100644 (file)
@@ -1,3 +1,4 @@
+#line 2 "lex.yy.c"\r
 /* A lexical scanner generated by flex */\r
 \r
 /* Scanner skeleton version:\r
@@ -9,7 +10,6 @@
 #define YY_FLEX_MINOR_VERSION 5\r
 \r
 #include <stdio.h>\r
-#include <unistd.h>\r
 \r
 \r
 /* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */\r
@@ -23,6 +23,7 @@
 #ifdef __cplusplus\r
 \r
 #include <stdlib.h>\r
+#include <unistd.h>\r
 \r
 /* Use prototypes in function declarations. */\r
 #define YY_USE_PROTOS\r
@@ -3087,7 +3088,7 @@ static yyconst short int yy_rule_linenum[18] =
 #define YY_MORE_ADJ 0\r
 #define YY_RESTORE_YY_MORE_OFFSET\r
 char *yytext;\r
-#line 1 "./parser.l"\r
+#line 1 "parser.l"\r
 #define INITIAL 0\r
 /*\r
  * IDL Compiler\r
@@ -3114,7 +3115,7 @@ char *yytext;
 \r
 #define pp_line 2\r
 \r
-#line 36 "./parser.l"\r
+#line 36 "parser.l"\r
 \r
 #include "config.h"\r
 \r
@@ -3185,7 +3186,7 @@ static UUID* parse_uuid(const char*u)
  * The flexer starts here\r
  **************************************************************************\r
  */\r
-#line 3189 "lex.yy.c"\r
+#line 3190 "lex.yy.c"\r
 \r
 /* Macros after this point can all be overridden by user definitions in\r
  * section 1.\r
@@ -3336,12 +3337,12 @@ YY_MALLOC_DECL
 YY_DECL\r
        {\r
        register yy_state_type yy_current_state;\r
-       register char *yy_cp = NULL, *yy_bp = NULL;\r
+       register char *yy_cp, *yy_bp;\r
        register int yy_act;\r
 \r
-#line 108 "./parser.l"\r
+#line 108 "parser.l"\r
 \r
-#line 3345 "lex.yy.c"\r
+#line 3346 "lex.yy.c"\r
 \r
        if ( yy_init )\r
                {\r
@@ -3430,12 +3431,12 @@ do_action:      /* This label is used only to access EOF actions. */
 \r
 case 1:\r
 YY_RULE_SETUP\r
-#line 109 "./parser.l"\r
+#line 109 "parser.l"\r
 yy_push_state(pp_line);\r
        YY_BREAK\r
 case 2:\r
 YY_RULE_SETUP\r
-#line 110 "./parser.l"\r
+#line 110 "parser.l"\r
 {\r
                             int lineno;\r
                             char *cptr, *fname;\r
@@ -3458,12 +3459,12 @@ YY_RULE_SETUP
        YY_BREAK\r
 case 3:\r
 YY_RULE_SETUP\r
-#line 129 "./parser.l"\r
+#line 129 "parser.l"\r
 yy_push_state(QUOTE); cbufidx = 0;\r
        YY_BREAK\r
 case 4:\r
 YY_RULE_SETUP\r
-#line 130 "./parser.l"\r
+#line 130 "parser.l"\r
 {\r
                                yy_pop_state();\r
                                yylval.str = get_buffered_cstring();\r
@@ -3471,25 +3472,25 @@ YY_RULE_SETUP
                        }\r
        YY_BREAK\r
 case 5:\r
-#line 136 "./parser.l"\r
+#line 136 "parser.l"\r
 case 6:\r
 YY_RULE_SETUP\r
-#line 136 "./parser.l"\r
+#line 136 "parser.l"\r
 addcchar(yytext[1]);\r
        YY_BREAK\r
 case 7:\r
 YY_RULE_SETUP\r
-#line 137 "./parser.l"\r
+#line 137 "parser.l"\r
 addcchar('\\'); addcchar(yytext[1]);\r
        YY_BREAK\r
 case 8:\r
 YY_RULE_SETUP\r
-#line 138 "./parser.l"\r
+#line 138 "parser.l"\r
 addcchar(yytext[0]);\r
        YY_BREAK\r
 case 9:\r
 YY_RULE_SETUP\r
-#line 139 "./parser.l"\r
+#line 139 "parser.l"\r
 {\r
                                yylval.uuid = parse_uuid(yytext);\r
                                return aUUID;\r
@@ -3497,7 +3498,7 @@ YY_RULE_SETUP
        YY_BREAK\r
 case 10:\r
 YY_RULE_SETUP\r
-#line 143 "./parser.l"\r
+#line 143 "parser.l"\r
 {\r
                                yylval.num = strtoul(yytext, NULL, 0);\r
                                return aHEXNUM;\r
@@ -3505,7 +3506,7 @@ YY_RULE_SETUP
        YY_BREAK\r
 case 11:\r
 YY_RULE_SETUP\r
-#line 147 "./parser.l"\r
+#line 147 "parser.l"\r
 {\r
                                yylval.num = strtoul(yytext, NULL, 0);\r
                                return aNUM;\r
@@ -3513,38 +3514,38 @@ YY_RULE_SETUP
        YY_BREAK\r
 case 12:\r
 YY_RULE_SETUP\r
-#line 151 "./parser.l"\r
+#line 151 "parser.l"\r
 return kw_token(yytext);\r
        YY_BREAK\r
 case 13:\r
 YY_RULE_SETUP\r
-#line 152 "./parser.l"\r
+#line 152 "parser.l"\r
 line_number++;\r
        YY_BREAK\r
 case 14:\r
 YY_RULE_SETUP\r
-#line 153 "./parser.l"\r
+#line 153 "parser.l"\r
 \r
        YY_BREAK\r
 case 15:\r
 YY_RULE_SETUP\r
-#line 154 "./parser.l"\r
+#line 154 "parser.l"\r
 return SHL;\r
        YY_BREAK\r
 case 16:\r
 YY_RULE_SETUP\r
-#line 155 "./parser.l"\r
+#line 155 "parser.l"\r
 return SHR;\r
        YY_BREAK\r
 case 17:\r
 YY_RULE_SETUP\r
-#line 156 "./parser.l"\r
+#line 156 "parser.l"\r
 return yytext[0];\r
        YY_BREAK\r
 case YY_STATE_EOF(INITIAL):\r
 case YY_STATE_EOF(QUOTE):\r
 case YY_STATE_EOF(pp_line):\r
-#line 157 "./parser.l"\r
+#line 157 "parser.l"\r
 {\r
                                if (import_stack_ptr) {\r
                                        pop_import();\r
@@ -3555,10 +3556,10 @@ case YY_STATE_EOF(pp_line):
        YY_BREAK\r
 case 18:\r
 YY_RULE_SETUP\r
-#line 164 "./parser.l"\r
+#line 164 "parser.l"\r
 ECHO;\r
        YY_BREAK\r
-#line 3562 "lex.yy.c"\r
+#line 3563 "lex.yy.c"\r
 \r
        case YY_END_OF_BUFFER:\r
                {\r
@@ -3934,7 +3935,6 @@ register char *yy_bp;
 #endif /* ifndef YY_NO_UNPUT */\r
 \r
 \r
-#ifndef YY_NO_INPUT\r
 #ifdef __cplusplus\r
 static int yyinput()\r
 #else\r
@@ -4007,7 +4007,7 @@ static int input()
 \r
        return c;\r
        }\r
-#endif /* YY_NO_INPUT */\r
+\r
 \r
 #ifdef YY_USE_PROTOS\r
 void yyrestart( FILE *input_file )\r
@@ -4118,6 +4118,11 @@ YY_BUFFER_STATE b;
        }\r
 \r
 \r
+#ifndef YY_ALWAYS_INTERACTIVE\r
+#ifndef YY_NEVER_INTERACTIVE\r
+extern int isatty YY_PROTO(( int ));\r
+#endif\r
+#endif\r
 \r
 #ifdef YY_USE_PROTOS\r
 void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )\r
@@ -4435,7 +4440,7 @@ int main()
        return 0;\r
        }\r
 #endif\r
-#line 164 "./parser.l"\r
+#line 164 "parser.l"\r
 \r
 \r
 #ifndef yywrap\r
index c046858..01bed94 100644 (file)
@@ -363,7 +363,7 @@ attribute:
        | tIMPLICITHANDLE '(' tHANDLET aIDENTIFIER ')'  { $$ = make_attrp(ATTR_IMPLICIT_HANDLE, $4); }
        | tIN                                   { $$ = make_attr(ATTR_IN); }
        | tINPUTSYNC                            { $$ = make_attr(ATTR_INPUTSYNC); }
-       | tLENGTHIS '(' m_exprs ')'             { $$ = make_attrp(ATTR_LENGTHIS, $3); }
+       | tLENGTHIS '(' pident_list ')'         { $$ = make_attrp(ATTR_LENGTHIS, $3); }
        | tLOCAL                                { $$ = make_attr(ATTR_LOCAL); }
        | tNONCREATABLE                         { $$ = make_attr(ATTR_NONCREATABLE); }
        | tOBJECT                               { $$ = make_attr(ATTR_OBJECT); }
@@ -381,7 +381,7 @@ attribute:
        | tREF                                  { $$ = make_attr(ATTR_REF); }
        | tRESTRICTED                           { $$ = make_attr(ATTR_RESTRICTED); }
        | tRETVAL                               { $$ = make_attr(ATTR_RETVAL); }
-       | tSIZEIS '(' m_exprs ')'               { $$ = make_attrp(ATTR_SIZEIS, $3); }
+       | tSIZEIS '(' pident_list ')'           { $$ = make_attrp(ATTR_SIZEIS, $3); }
        | tSOURCE                               { $$ = make_attr(ATTR_SOURCE); }
        | tSTRING                               { $$ = make_attr(ATTR_STRING); }
        | tSWITCHIS '(' expr ')'                { $$ = make_attrp(ATTR_SWITCHIS, $3); }
index 69913a8..0cdf394 100644 (file)
@@ -206,13 +206,13 @@ static void marshall_size_arg( var_t *arg )
 {
   int index = 0;
   type_t *type = get_base_type(arg);
-  expr_t *expr;
+  var_t *var;
 
-  expr = get_attrp( arg->attrs, ATTR_SIZEIS );
-  if (expr)
+  var = get_attrp( arg->attrs, ATTR_SIZEIS );
+  if (var)
   {
     print_proxy( "_StubMsg.MaxCount = ", arg->name );
-    write_expr(proxy, expr);
+    write_name(proxy, var);
     fprintf(proxy, ";\n\n");
     print_proxy( "NdrConformantArrayBufferSize( &_StubMsg, (unsigned char*)%s, ", arg->name );
     fprintf(proxy, "&__MIDL_TypeFormatString.Format[%d]);\n", index );
@@ -238,7 +238,7 @@ static void marshall_size_arg( var_t *arg )
   case RPC_FC_ENUM32:
     print_proxy( "_StubMsg.BufferLength += %d; /* %s */\n", 4, arg->name );
     break;
-      
+
   case RPC_FC_STRUCT:
     print_proxy( "NdrSimpleStructBufferSize(&_StubMsg, (unsigned char*)%s, ", arg->name );
     fprintf(proxy, "&__MIDL_TypeFormatString.Format[%d] );\n", index );
@@ -285,7 +285,7 @@ static void proxy_gen_marshall_size( var_t *arg )
 
   END_OF_LIST(arg);
   while (arg) {
-    if (is_attr(arg->attrs, ATTR_IN)) 
+    if (is_attr(arg->attrs, ATTR_IN))
     {
       marshall_size_arg( arg );
       fprintf(proxy, "\n");
@@ -298,13 +298,13 @@ static void marshall_copy_arg( var_t *arg )
 {
   int index = 0;
   type_t *type = get_base_type(arg);
-  expr_t *expr;
+  var_t *var;
 
-  expr = get_attrp( arg->attrs, ATTR_SIZEIS );
-  if (expr)
+  var = get_attrp( arg->attrs, ATTR_SIZEIS );
+  if (var)
   {
     print_proxy( "_StubMsg.MaxCount = ", arg->name );
-    write_expr(proxy, expr);
+    write_name(proxy, var);
     fprintf(proxy, ";\n\n");
     print_proxy( "NdrConformantArrayMarshall( &_StubMsg, (unsigned char*)%s, ", arg->name );
     fprintf(proxy, "&__MIDL_TypeFormatString.Format[%d]);\n", index );
@@ -326,7 +326,7 @@ static void marshall_copy_arg( var_t *arg )
     write_type(proxy, arg->type, arg, arg->tname);
     fprintf(proxy,"*)_StubMsg.Buffer)++ = %s;\n", arg->name );
     break;
-      
+
   case RPC_FC_STRUCT:
     /* FIXME: add the format string, and set the index below */
     print_proxy( "NdrSimpleStructMarshall(&_StubMsg, (unsigned char*)%s, ", arg->name );
@@ -370,7 +370,7 @@ static void gen_marshall_copydata( var_t *arg )
 {
   END_OF_LIST(arg);
   while (arg) {
-    if (is_attr(arg->attrs, ATTR_IN)) 
+    if (is_attr(arg->attrs, ATTR_IN))
     {
       marshall_copy_arg( arg );
       fprintf(proxy, "\n");
@@ -397,10 +397,10 @@ static void unmarshall_copy_arg( var_t *arg )
 {
   int index = 0;
   type_t *type = get_base_type(arg);
-  expr_t *expr;
+  var_t *var;
 
-  expr = get_attrp( arg->attrs, ATTR_SIZEIS );
-  if (expr)
+  var = get_attrp( arg->attrs, ATTR_SIZEIS );
+  if (var)
   {
     print_proxy( "NdrConformantArrayUnmarshall( &_StubMsg, (unsigned char*)%s, ", arg->name );
     fprintf(proxy, "&__MIDL_TypeFormatString.Format[%d]);\n", index );
@@ -422,7 +422,7 @@ static void unmarshall_copy_arg( var_t *arg )
     write_type(proxy, arg->type, arg, arg->tname);
     fprintf(proxy,"*)_StubMsg.Buffer)++;\n");
     break;
-      
+
   case RPC_FC_STRUCT:
     print_proxy( "NdrSimpleStructUnmarshall(&_StubMsg, (unsigned char**)%s, ", arg->name );
     fprintf(proxy, "&__MIDL_TypeFormatString.Format[%d], 0);\n", index );
@@ -467,7 +467,7 @@ static void gen_unmarshall( var_t *arg )
 {
   END_OF_LIST(arg);
   while (arg) {
-    if (is_attr(arg->attrs, ATTR_OUT)) 
+    if (is_attr(arg->attrs, ATTR_OUT))
     {
       unmarshall_copy_arg( arg );
       fprintf(proxy, "\n");
@@ -481,13 +481,13 @@ static void free_variable( var_t *arg )
   var_t *constraint;
   int index = 0; /* FIXME */
   type_t *type;
-  expr_t *expr;
+  var_t *var;
 
-  expr = get_attrp( arg->attrs, ATTR_SIZEIS );
-  if (expr)
+  var = get_attrp( arg->attrs, ATTR_SIZEIS );
+  if (var)
   {
     print_proxy( "_StubMsg.MaxCount = ", arg->name );
-    write_expr(proxy, expr);
+    write_name(proxy, var);
     fprintf(proxy, ";\n\n");
     print_proxy( "NdrClearOutParameters( &_StubMsg, ");
     fprintf(proxy, "&__MIDL_TypeFormatString.Format[%d], ", index );
@@ -529,7 +529,7 @@ static void proxy_free_variables( var_t *arg )
 {
   END_OF_LIST(arg);
   while (arg) {
-    if (is_attr(arg->attrs, ATTR_OUT)) 
+    if (is_attr(arg->attrs, ATTR_OUT))
     {
       free_variable( arg );
       fprintf(proxy, "\n");
@@ -587,7 +587,7 @@ static void gen_proxy(type_t *iface, func_t *cur, int idx)
 
   gen_unmarshall( cur->args );
   if (has_ret) {
-    /* 
+    /*
      * FIXME: We only need to round the buffer up if it could be unaligned...
      *    We should calculate how much buffer we used and output the following
      *    line only if necessary.
@@ -790,7 +790,7 @@ static void gen_stub(type_t *iface, func_t *cur, char *cas)
   fprintf(proxy, "\n");
 
   if (has_ret) {
-    /* 
+    /*
      * FIXME: We only need to round the buffer up if it could be unaligned...
      *    We should calculate how much buffer we used and output the following
      *    line only if necessary.
index 1ce4bc9..c52b4c6 100644 (file)
@@ -113,7 +113,7 @@ static unsigned int
 get_var_type_offset(var_t *var)\r
 {\r
     unsigned int toffset = 0;\r
-    void *size_is_attr;\r
+    void *sizeis_attr;\r
     int string_attr;\r
 \r
     if (var->ptr_level == 0)\r
@@ -138,10 +138,10 @@ get_var_type_offset(var_t *var)
     }\r
     else if (var->ptr_level == 1)\r
     {\r
-        size_is_attr = get_attrp(var->attrs, ATTR_SIZEIS);\r
+        sizeis_attr = get_attrp(var->attrs, ATTR_SIZEIS);\r
         string_attr = is_attr(var->attrs, ATTR_STRING);\r
 \r
-        if (size_is_attr)\r
+        if (sizeis_attr)\r
         {\r
             if (string_attr)\r
             {\r
@@ -519,7 +519,7 @@ static void write_typeformatstring(type_t *iface)
                     {\r
                         unsigned char type_type = 0;\r
 \r
-                        type = get_type_by_name(func, ((expr_t *)sizeis_attr)->u.sval);\r
+                        type = get_type_by_name(func, ((var_t *)sizeis_attr)->name);\r
                         if (type != NULL)\r
                             type_type = type->type;\r
 \r
@@ -538,10 +538,10 @@ static void write_typeformatstring(type_t *iface)
 \r
                             fprintf(server, "#ifndef _ALPHA_\n");\r
                             print_server("NdrFcShort(0x%02X),\n",\r
-                                         get_var_stack_offset_32(func, ((expr_t *)sizeis_attr)->u.sval));\r
+                                         get_var_stack_offset_32(func, ((var_t *)sizeis_attr)->name));\r
                             fprintf(server, "#else\n");\r
                             print_server("NdrFcShort(0x%02X),\n",\r
-                                         get_var_stack_offset_64(func, ((expr_t *)sizeis_attr)->u.sval));\r
+                                         get_var_stack_offset_64(func, ((var_t *)sizeis_attr)->name));\r
                             fprintf(server, "#endif\n");\r
                         }\r
                         else\r
@@ -815,7 +815,7 @@ static void print_message_buffer_size(func_t *func, unsigned int *type_offset)
                      var->type->type == RPC_FC_CHAR ||\r
                      var->type->type == RPC_FC_WCHAR))\r
                 {\r
-                    print_server("_StubMsg.MaxCount = %s;\n", ((expr_t *)sizeis_attr)->u.sval);\r
+                    print_server("_StubMsg.MaxCount = %s;\n", ((var_t *)sizeis_attr)->name);\r
                     fprintf(server, "\n");\r
                     print_server("NdrConformantStringBufferSize(\n");\r
                     indent++;\r
@@ -1160,7 +1160,7 @@ static void marshall_out_arguments(func_t *func, unsigned int *type_offset)
                     if (string_attr)\r
                     {\r
                         fprintf(server, "\n");\r
-                        print_server("_StubMsg.MaxCount = %s;\n", ((expr_t *)sizeis_attr)->u.sval);\r
+                        print_server("_StubMsg.MaxCount = %s;\n", ((var_t *)sizeis_attr)->name);\r
                         fprintf(server, "\n");\r
                         print_server("NdrConformantStringMarshall(\n");\r
                         indent++;\r
@@ -1360,7 +1360,7 @@ static void cleanup_return_buffer(func_t *func, unsigned int *type_offset)
                 indent++;\r
                 if (string_attr)\r
                 {\r
-                    print_server("_StubMsg.MaxCount = %s;\n", ((expr_t *)sizeis_attr)->u.sval);\r
+                    print_server("_StubMsg.MaxCount = %s;\n", ((var_t *)sizeis_attr)->name);\r
                     fprintf(server, "\n");\r
                     print_server("NdrPointerFree(\n");\r
                     indent++;\r
@@ -1406,7 +1406,7 @@ static void write_function_stubs(type_t *iface)
     unsigned int i, sep;\r
     int in_attr;\r
     int out_attr;\r
-    void *size_is_attr;\r
+    void *sizeis_attr;\r
 \r
     while (NEXT_LINK(func)) func = NEXT_LINK(func);\r
     while (func)\r
@@ -1462,11 +1462,11 @@ static void write_function_stubs(type_t *iface)
             {\r
                 in_attr = is_attr(var->attrs, ATTR_IN);\r
                 out_attr = is_attr(var->attrs, ATTR_OUT);\r
-                size_is_attr = get_attrp(var->attrs, ATTR_SIZEIS);\r
+                sizeis_attr = get_attrp(var->attrs, ATTR_SIZEIS);\r
 \r
                 if (!out_attr && !in_attr)\r
                     in_attr = 1;\r
-                if (!in_attr && !size_is_attr)\r
+                if (!in_attr && !sizeis_attr)\r
                 {\r
                     if (var->type->type == RPC_FC_RP)\r
                     {\r
@@ -1567,16 +1567,16 @@ static void write_function_stubs(type_t *iface)
                 if (!out_attr && !in_attr)\r
                     in_attr = 1;\r
 \r
-                size_is_attr = get_attrp(var->attrs, ATTR_SIZEIS);\r
+                sizeis_attr = get_attrp(var->attrs, ATTR_SIZEIS);\r
 \r
                 if (!in_attr)\r
                 {\r
-                    if (size_is_attr != NULL)\r
+                    if (sizeis_attr != NULL)\r
                     {\r
                         print_server("");\r
                         write_name(server, var);\r
                         fprintf(server, " = NdrAllocate(&_StubMsg, %s * %d);\n",\r
-                                ((expr_t *)size_is_attr)->u.sval, get_type_size(var->type, 1));\r
+                                ((var_t *)sizeis_attr)->name, get_type_size(var->type, 1));\r
                         sep = 1;\r
                     }\r
                     else\r
index a0e5089..a80706b 100644 (file)
-/* A Bison parser, made from ./parser.y\r
-   by GNU bison 1.35.  */\r
-\r
-#define YYBISON 1  /* Identify Bison output.  */\r
-\r
-# define       aIDENTIFIER     257\r
-# define       aKNOWNTYPE      258\r
-# define       aNUM    259\r
-# define       aHEXNUM 260\r
-# define       aSTRING 261\r
-# define       aUUID   262\r
-# define       aEOF    263\r
-# define       SHL     264\r
-# define       SHR     265\r
-# define       tAGGREGATABLE   266\r
-# define       tALLOCATE       267\r
-# define       tAPPOBJECT      268\r
-# define       tARRAYS 269\r
-# define       tASYNC  270\r
-# define       tASYNCUUID      271\r
-# define       tAUTOHANDLE     272\r
-# define       tBINDABLE       273\r
-# define       tBOOLEAN        274\r
-# define       tBROADCAST      275\r
-# define       tBYTE   276\r
-# define       tBYTECOUNT      277\r
-# define       tCALLAS 278\r
-# define       tCALLBACK       279\r
-# define       tCASE   280\r
-# define       tCDECL  281\r
-# define       tCHAR   282\r
-# define       tCOCLASS        283\r
-# define       tCODE   284\r
-# define       tCOMMSTATUS     285\r
-# define       tCONST  286\r
-# define       tCONTEXTHANDLE  287\r
-# define       tCONTEXTHANDLENOSERIALIZE       288\r
-# define       tCONTEXTHANDLESERIALIZE 289\r
-# define       tCONTROL        290\r
-# define       tCPPQUOTE       291\r
-# define       tDEFAULT        292\r
-# define       tDEFAULTVALUE   293\r
-# define       tDISPINTERFACE  294\r
-# define       tDLLNAME        295\r
-# define       tDOUBLE 296\r
-# define       tDUAL   297\r
-# define       tENDPOINT       298\r
-# define       tENTRY  299\r
-# define       tENUM   300\r
-# define       tERRORSTATUST   301\r
-# define       tEXPLICITHANDLE 302\r
-# define       tEXTERN 303\r
-# define       tFLOAT  304\r
-# define       tHANDLE 305\r
-# define       tHANDLET        306\r
-# define       tHELPCONTEXT    307\r
-# define       tHELPFILE       308\r
-# define       tHELPSTRING     309\r
-# define       tHELPSTRINGCONTEXT      310\r
-# define       tHELPSTRINGDLL  311\r
-# define       tHIDDEN 312\r
-# define       tHYPER  313\r
-# define       tID     314\r
-# define       tIDEMPOTENT     315\r
-# define       tIIDIS  316\r
-# define       tIMPLICITHANDLE 317\r
-# define       tIMPORT 318\r
-# define       tIMPORTLIB      319\r
-# define       tIN     320\r
-# define       tINCLUDE        321\r
-# define       tINLINE 322\r
-# define       tINPUTSYNC      323\r
-# define       tINT    324\r
-# define       tINT64  325\r
-# define       tINTERFACE      326\r
-# define       tLENGTHIS       327\r
-# define       tLIBRARY        328\r
-# define       tLOCAL  329\r
-# define       tLONG   330\r
-# define       tMETHODS        331\r
-# define       tMODULE 332\r
-# define       tNONCREATABLE   333\r
-# define       tOBJECT 334\r
-# define       tODL    335\r
-# define       tOLEAUTOMATION  336\r
-# define       tOPTIONAL       337\r
-# define       tOUT    338\r
-# define       tPOINTERDEFAULT 339\r
-# define       tPROPERTIES     340\r
-# define       tPROPGET        341\r
-# define       tPROPPUT        342\r
-# define       tPROPPUTREF     343\r
-# define       tPTR    344\r
-# define       tPUBLIC 345\r
-# define       tREADONLY       346\r
-# define       tREF    347\r
-# define       tRESTRICTED     348\r
-# define       tRETVAL 349\r
-# define       tSHORT  350\r
-# define       tSIGNED 351\r
-# define       tSINGLE 352\r
-# define       tSIZEIS 353\r
-# define       tSIZEOF 354\r
-# define       tSMALL  355\r
-# define       tSOURCE 356\r
-# define       tSTDCALL        357\r
-# define       tSTRING 358\r
-# define       tSTRUCT 359\r
-# define       tSWITCH 360\r
-# define       tSWITCHIS       361\r
-# define       tSWITCHTYPE     362\r
-# define       tTRANSMITAS     363\r
-# define       tTYPEDEF        364\r
-# define       tUNION  365\r
-# define       tUNIQUE 366\r
-# define       tUNSIGNED       367\r
-# define       tUUID   368\r
-# define       tV1ENUM 369\r
-# define       tVARARG 370\r
-# define       tVERSION        371\r
-# define       tVOID   372\r
-# define       tWCHAR  373\r
-# define       tWIREMARSHAL    374\r
-# define       tPOINTERTYPE    375\r
-# define       COND    376\r
-# define       CAST    377\r
-# define       PPTR    378\r
-# define       NEG     379\r
-\r
-#line 1 "./parser.y"\r
+/* A Bison parser, made by GNU Bison 1.875.  */\r
+\r
+/* Skeleton parser for Yacc-like parsing with Bison,\r
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.\r
+\r
+   This program is free software; you can redistribute it and/or modify\r
+   it under the terms of the GNU General Public License as published by\r
+   the Free Software Foundation; either version 2, or (at your option)\r
+   any later version.\r
+\r
+   This program is distributed in the hope that it will be useful,\r
+   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+   GNU General Public License for more details.\r
+\r
+   You should have received a copy of the GNU General Public License\r
+   along with this program; if not, write to the Free Software\r
+   Foundation, Inc., 59 Temple Place - Suite 330,\r
+   Boston, MA 02111-1307, USA.  */\r
+\r
+/* As a special exception, when this file is copied by Bison into a\r
+   Bison output file, you may use that output file without restriction.\r
+   This special exception was added by the Free Software Foundation\r
+   in version 1.24 of Bison.  */\r
+\r
+/* Written by Richard Stallman by simplifying the original so called\r
+   ``semantic'' parser.  */\r
+\r
+/* All symbols defined below should begin with yy or YY, to avoid\r
+   infringing on user name space.  This should be done even for local\r
+   variables, as they might otherwise be expanded by user macros.\r
+   There are some unavoidable exceptions within include files to\r
+   define necessary library symbols; they are noted "INFRINGES ON\r
+   USER NAME SPACE" below.  */\r
+\r
+/* Identify Bison output.  */\r
+#define YYBISON 1\r
+\r
+/* Skeleton name.  */\r
+#define YYSKELETON_NAME "yacc.c"\r
+\r
+/* Pure parsers.  */\r
+#define YYPURE 0\r
+\r
+/* Using locations.  */\r
+#define YYLSP_NEEDED 0\r
+\r
+\r
+\r
+/* Tokens.  */\r
+#ifndef YYTOKENTYPE\r
+# define YYTOKENTYPE\r
+   /* Put the tokens into the symbol table, so that GDB and other debuggers\r
+      know about them.  */\r
+   enum yytokentype {\r
+     aIDENTIFIER = 258,\r
+     aKNOWNTYPE = 259,\r
+     aNUM = 260,\r
+     aHEXNUM = 261,\r
+     aSTRING = 262,\r
+     aUUID = 263,\r
+     aEOF = 264,\r
+     SHL = 265,\r
+     SHR = 266,\r
+     tAGGREGATABLE = 267,\r
+     tALLOCATE = 268,\r
+     tAPPOBJECT = 269,\r
+     tARRAYS = 270,\r
+     tASYNC = 271,\r
+     tASYNCUUID = 272,\r
+     tAUTOHANDLE = 273,\r
+     tBINDABLE = 274,\r
+     tBOOLEAN = 275,\r
+     tBROADCAST = 276,\r
+     tBYTE = 277,\r
+     tBYTECOUNT = 278,\r
+     tCALLAS = 279,\r
+     tCALLBACK = 280,\r
+     tCASE = 281,\r
+     tCDECL = 282,\r
+     tCHAR = 283,\r
+     tCOCLASS = 284,\r
+     tCODE = 285,\r
+     tCOMMSTATUS = 286,\r
+     tCONST = 287,\r
+     tCONTEXTHANDLE = 288,\r
+     tCONTEXTHANDLENOSERIALIZE = 289,\r
+     tCONTEXTHANDLESERIALIZE = 290,\r
+     tCONTROL = 291,\r
+     tCPPQUOTE = 292,\r
+     tDEFAULT = 293,\r
+     tDEFAULTVALUE = 294,\r
+     tDISPINTERFACE = 295,\r
+     tDLLNAME = 296,\r
+     tDOUBLE = 297,\r
+     tDUAL = 298,\r
+     tENDPOINT = 299,\r
+     tENTRY = 300,\r
+     tENUM = 301,\r
+     tERRORSTATUST = 302,\r
+     tEXPLICITHANDLE = 303,\r
+     tEXTERN = 304,\r
+     tFLOAT = 305,\r
+     tHANDLE = 306,\r
+     tHANDLET = 307,\r
+     tHELPCONTEXT = 308,\r
+     tHELPFILE = 309,\r
+     tHELPSTRING = 310,\r
+     tHELPSTRINGCONTEXT = 311,\r
+     tHELPSTRINGDLL = 312,\r
+     tHIDDEN = 313,\r
+     tHYPER = 314,\r
+     tID = 315,\r
+     tIDEMPOTENT = 316,\r
+     tIIDIS = 317,\r
+     tIMPLICITHANDLE = 318,\r
+     tIMPORT = 319,\r
+     tIMPORTLIB = 320,\r
+     tIN = 321,\r
+     tINCLUDE = 322,\r
+     tINLINE = 323,\r
+     tINPUTSYNC = 324,\r
+     tINT = 325,\r
+     tINT64 = 326,\r
+     tINTERFACE = 327,\r
+     tLENGTHIS = 328,\r
+     tLIBRARY = 329,\r
+     tLOCAL = 330,\r
+     tLONG = 331,\r
+     tMETHODS = 332,\r
+     tMODULE = 333,\r
+     tNONCREATABLE = 334,\r
+     tOBJECT = 335,\r
+     tODL = 336,\r
+     tOLEAUTOMATION = 337,\r
+     tOPTIONAL = 338,\r
+     tOUT = 339,\r
+     tPOINTERDEFAULT = 340,\r
+     tPROPERTIES = 341,\r
+     tPROPGET = 342,\r
+     tPROPPUT = 343,\r
+     tPROPPUTREF = 344,\r
+     tPTR = 345,\r
+     tPUBLIC = 346,\r
+     tREADONLY = 347,\r
+     tREF = 348,\r
+     tRESTRICTED = 349,\r
+     tRETVAL = 350,\r
+     tSHORT = 351,\r
+     tSIGNED = 352,\r
+     tSINGLE = 353,\r
+     tSIZEIS = 354,\r
+     tSIZEOF = 355,\r
+     tSMALL = 356,\r
+     tSOURCE = 357,\r
+     tSTDCALL = 358,\r
+     tSTRING = 359,\r
+     tSTRUCT = 360,\r
+     tSWITCH = 361,\r
+     tSWITCHIS = 362,\r
+     tSWITCHTYPE = 363,\r
+     tTRANSMITAS = 364,\r
+     tTYPEDEF = 365,\r
+     tUNION = 366,\r
+     tUNIQUE = 367,\r
+     tUNSIGNED = 368,\r
+     tUUID = 369,\r
+     tV1ENUM = 370,\r
+     tVARARG = 371,\r
+     tVERSION = 372,\r
+     tVOID = 373,\r
+     tWCHAR = 374,\r
+     tWIREMARSHAL = 375,\r
+     tPOINTERTYPE = 376,\r
+     COND = 377,\r
+     CAST = 378,\r
+     PPTR = 379,\r
+     NEG = 380\r
+   };\r
+#endif\r
+#define aIDENTIFIER 258\r
+#define aKNOWNTYPE 259\r
+#define aNUM 260\r
+#define aHEXNUM 261\r
+#define aSTRING 262\r
+#define aUUID 263\r
+#define aEOF 264\r
+#define SHL 265\r
+#define SHR 266\r
+#define tAGGREGATABLE 267\r
+#define tALLOCATE 268\r
+#define tAPPOBJECT 269\r
+#define tARRAYS 270\r
+#define tASYNC 271\r
+#define tASYNCUUID 272\r
+#define tAUTOHANDLE 273\r
+#define tBINDABLE 274\r
+#define tBOOLEAN 275\r
+#define tBROADCAST 276\r
+#define tBYTE 277\r
+#define tBYTECOUNT 278\r
+#define tCALLAS 279\r
+#define tCALLBACK 280\r
+#define tCASE 281\r
+#define tCDECL 282\r
+#define tCHAR 283\r
+#define tCOCLASS 284\r
+#define tCODE 285\r
+#define tCOMMSTATUS 286\r
+#define tCONST 287\r
+#define tCONTEXTHANDLE 288\r
+#define tCONTEXTHANDLENOSERIALIZE 289\r
+#define tCONTEXTHANDLESERIALIZE 290\r
+#define tCONTROL 291\r
+#define tCPPQUOTE 292\r
+#define tDEFAULT 293\r
+#define tDEFAULTVALUE 294\r
+#define tDISPINTERFACE 295\r
+#define tDLLNAME 296\r
+#define tDOUBLE 297\r
+#define tDUAL 298\r
+#define tENDPOINT 299\r
+#define tENTRY 300\r
+#define tENUM 301\r
+#define tERRORSTATUST 302\r
+#define tEXPLICITHANDLE 303\r
+#define tEXTERN 304\r
+#define tFLOAT 305\r
+#define tHANDLE 306\r
+#define tHANDLET 307\r
+#define tHELPCONTEXT 308\r
+#define tHELPFILE 309\r
+#define tHELPSTRING 310\r
+#define tHELPSTRINGCONTEXT 311\r
+#define tHELPSTRINGDLL 312\r
+#define tHIDDEN 313\r
+#define tHYPER 314\r
+#define tID 315\r
+#define tIDEMPOTENT 316\r
+#define tIIDIS 317\r
+#define tIMPLICITHANDLE 318\r
+#define tIMPORT 319\r
+#define tIMPORTLIB 320\r
+#define tIN 321\r
+#define tINCLUDE 322\r
+#define tINLINE 323\r
+#define tINPUTSYNC 324\r
+#define tINT 325\r
+#define tINT64 326\r
+#define tINTERFACE 327\r
+#define tLENGTHIS 328\r
+#define tLIBRARY 329\r
+#define tLOCAL 330\r
+#define tLONG 331\r
+#define tMETHODS 332\r
+#define tMODULE 333\r
+#define tNONCREATABLE 334\r
+#define tOBJECT 335\r
+#define tODL 336\r
+#define tOLEAUTOMATION 337\r
+#define tOPTIONAL 338\r
+#define tOUT 339\r
+#define tPOINTERDEFAULT 340\r
+#define tPROPERTIES 341\r
+#define tPROPGET 342\r
+#define tPROPPUT 343\r
+#define tPROPPUTREF 344\r
+#define tPTR 345\r
+#define tPUBLIC 346\r
+#define tREADONLY 347\r
+#define tREF 348\r
+#define tRESTRICTED 349\r
+#define tRETVAL 350\r
+#define tSHORT 351\r
+#define tSIGNED 352\r
+#define tSINGLE 353\r
+#define tSIZEIS 354\r
+#define tSIZEOF 355\r
+#define tSMALL 356\r
+#define tSOURCE 357\r
+#define tSTDCALL 358\r
+#define tSTRING 359\r
+#define tSTRUCT 360\r
+#define tSWITCH 361\r
+#define tSWITCHIS 362\r
+#define tSWITCHTYPE 363\r
+#define tTRANSMITAS 364\r
+#define tTYPEDEF 365\r
+#define tUNION 366\r
+#define tUNIQUE 367\r
+#define tUNSIGNED 368\r
+#define tUUID 369\r
+#define tV1ENUM 370\r
+#define tVARARG 371\r
+#define tVERSION 372\r
+#define tVOID 373\r
+#define tWCHAR 374\r
+#define tWIREMARSHAL 375\r
+#define tPOINTERTYPE 376\r
+#define COND 377\r
+#define CAST 378\r
+#define PPTR 379\r
+#define NEG 380\r
+\r
+\r
+\r
+\r
+/* Copy the first part of user declarations.  */\r
+#line 1 "parser.y"\r
 \r
 /*\r
  * IDL Compiler\r
@@ -233,9 +412,23 @@ static type_t std_int64 = { "__int64" };
 static type_t std_uhyper = { "MIDL_uhyper" };\r
 \r
 \r
-#line 106 "./parser.y"\r
-#ifndef YYSTYPE\r
-typedef union {\r
+\r
+/* Enabling traces.  */\r
+#ifndef YYDEBUG\r
+# define YYDEBUG 0\r
+#endif\r
+\r
+/* Enabling verbose error messages.  */\r
+#ifdef YYERROR_VERBOSE\r
+# undef YYERROR_VERBOSE\r
+# define YYERROR_VERBOSE 1\r
+#else\r
+# define YYERROR_VERBOSE 0\r
+#endif\r
+\r
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)\r
+#line 106 "parser.y"\r
+typedef union YYSTYPE {\r
        attr_t *attr;\r
        expr_t *expr;\r
        type_t *type;\r
@@ -247,25 +440,139 @@ typedef union {
        char *str;\r
        UUID *uuid;\r
        unsigned int num;\r
-} yystype;\r
-# define YYSTYPE yystype\r
+} YYSTYPE;\r
+/* Line 191 of yacc.c.  */\r
+#line 445 "y.tab.c"\r
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */\r
+# define YYSTYPE_IS_DECLARED 1\r
 # define YYSTYPE_IS_TRIVIAL 1\r
 #endif\r
-#ifndef YYDEBUG\r
-# define YYDEBUG 1\r
-#endif\r
 \r
 \r
 \r
-#define        YYFINAL         464\r
-#define        YYFLAG          -32768\r
-#define        YYNTBASE        145\r
+/* Copy the second part of user declarations.  */\r
+\r
 \r
-/* YYTRANSLATE(YYLEX) -- Bison token number corresponding to YYLEX. */\r
-#define YYTRANSLATE(x) ((unsigned)(x) <= 379 ? yytranslate[x] : 217)\r
+/* Line 214 of yacc.c.  */\r
+#line 457 "y.tab.c"\r
 \r
-/* YYTRANSLATE[YYLEX] -- Bison token number corresponding to YYLEX. */\r
-static const short yytranslate[] =\r
+#if ! defined (yyoverflow) || YYERROR_VERBOSE\r
+\r
+/* The parser invokes alloca or malloc; define the necessary symbols.  */\r
+\r
+# if YYSTACK_USE_ALLOCA\r
+#  define YYSTACK_ALLOC alloca\r
+# else\r
+#  ifndef YYSTACK_USE_ALLOCA\r
+#   if defined (alloca) || defined (_ALLOCA_H)\r
+#    define YYSTACK_ALLOC alloca\r
+#   else\r
+#    ifdef __GNUC__\r
+#     define YYSTACK_ALLOC __builtin_alloca\r
+#    endif\r
+#   endif\r
+#  endif\r
+# endif\r
+\r
+# ifdef YYSTACK_ALLOC\r
+   /* Pacify GCC's `empty if-body' warning. */\r
+#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)\r
+# else\r
+#  if defined (__STDC__) || defined (__cplusplus)\r
+#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */\r
+#   define YYSIZE_T size_t\r
+#  endif\r
+#  define YYSTACK_ALLOC malloc\r
+#  define YYSTACK_FREE free\r
+# endif\r
+#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */\r
+\r
+\r
+#if (! defined (yyoverflow) \\r
+     && (! defined (__cplusplus) \\r
+        || (YYSTYPE_IS_TRIVIAL)))\r
+\r
+/* A type that is properly aligned for any stack member.  */\r
+union yyalloc\r
+{\r
+  short yyss;\r
+  YYSTYPE yyvs;\r
+  };\r
+\r
+/* The size of the maximum gap between one aligned stack and the next.  */\r
+# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)\r
+\r
+/* The size of an array large to enough to hold all stacks, each with\r
+   N elements.  */\r
+# define YYSTACK_BYTES(N) \\r
+     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \\r
+      + YYSTACK_GAP_MAXIMUM)\r
+\r
+/* Copy COUNT objects from FROM to TO.  The source and destination do\r
+   not overlap.  */\r
+# ifndef YYCOPY\r
+#  if 1 < __GNUC__\r
+#   define YYCOPY(To, From, Count) \\r
+      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))\r
+#  else\r
+#   define YYCOPY(To, From, Count)             \\r
+      do                                       \\r
+       {                                       \\r
+         register YYSIZE_T yyi;                \\r
+         for (yyi = 0; yyi < (Count); yyi++)   \\r
+           (To)[yyi] = (From)[yyi];            \\r
+       }                                       \\r
+      while (0)\r
+#  endif\r
+# endif\r
+\r
+/* Relocate STACK from its old location to the new one.  The\r
+   local variables YYSIZE and YYSTACKSIZE give the old and new number of\r
+   elements in the stack, and YYPTR gives the new location of the\r
+   stack.  Advance YYPTR to a properly aligned location for the next\r
+   stack.  */\r
+# define YYSTACK_RELOCATE(Stack)                                       \\r
+    do                                                                 \\r
+      {                                                                        \\r
+       YYSIZE_T yynewbytes;                                            \\r
+       YYCOPY (&yyptr->Stack, Stack, yysize);                          \\r
+       Stack = &yyptr->Stack;                                          \\r
+       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \\r
+       yyptr += yynewbytes / sizeof (*yyptr);                          \\r
+      }                                                                        \\r
+    while (0)\r
+\r
+#endif\r
+\r
+#if defined (__STDC__) || defined (__cplusplus)\r
+   typedef signed char yysigned_char;\r
+#else\r
+   typedef short yysigned_char;\r
+#endif\r
+\r
+/* YYFINAL -- State number of the termination state. */\r
+#define YYFINAL  3\r
+/* YYLAST -- Last index in YYTABLE.  */\r
+#define YYLAST   934\r
+\r
+/* YYNTOKENS -- Number of terminals. */\r
+#define YYNTOKENS  145\r
+/* YYNNTS -- Number of nonterminals. */\r
+#define YYNNTS  72\r
+/* YYNRULES -- Number of rules. */\r
+#define YYNRULES  249\r
+/* YYNRULES -- Number of states. */\r
+#define YYNSTATES  461\r
+\r
+/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */\r
+#define YYUNDEFTOK  2\r
+#define YYMAXUTOK   380\r
+\r
+#define YYTRANSLATE(YYX)                                               \\r
+  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)\r
+\r
+/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX.  */\r
+static const unsigned char yytranslate[] =\r
 {\r
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,\r
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,\r
@@ -292,175 +599,174 @@ static const short yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,\r
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,\r
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,\r
-       2,     2,     2,     2,     2,     2,     1,     3,     4,     5,\r
-       6,     7,     8,     9,    10,    11,    12,    13,    14,    15,\r
-      16,    17,    18,    19,    20,    21,    22,    23,    24,    25,\r
-      26,    27,    28,    29,    30,    31,    32,    33,    34,    35,\r
-      36,    37,    38,    39,    40,    41,    42,    43,    44,    45,\r
-      46,    47,    48,    49,    50,    51,    52,    53,    54,    55,\r
-      56,    57,    58,    59,    60,    61,    62,    63,    64,    65,\r
-      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,\r
-      76,    77,    78,    79,    80,    81,    82,    83,    84,    85,\r
-      86,    87,    88,    89,    90,    91,    92,    93,    94,    95,\r
-      96,    97,    98,    99,   100,   101,   102,   103,   104,   105,\r
-     106,   107,   108,   109,   110,   111,   112,   113,   114,   115,\r
-     116,   117,   118,   119,   120,   121,   123,   131,   132,   133\r
+       2,     2,     2,     2,     2,     2,     1,     2,     3,     4,\r
+       5,     6,     7,     8,     9,    10,    11,    12,    13,    14,\r
+      15,    16,    17,    18,    19,    20,    21,    22,    23,    24,\r
+      25,    26,    27,    28,    29,    30,    31,    32,    33,    34,\r
+      35,    36,    37,    38,    39,    40,    41,    42,    43,    44,\r
+      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,\r
+      55,    56,    57,    58,    59,    60,    61,    62,    63,    64,\r
+      65,    66,    67,    68,    69,    70,    71,    72,    73,    74,\r
+      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,\r
+      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,\r
+      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,\r
+     105,   106,   107,   108,   109,   110,   111,   112,   113,   114,\r
+     115,   116,   117,   118,   119,   120,   121,   123,   131,   132,\r
+     133\r
 };\r
 \r
 #if YYDEBUG\r
-static const short yyprhs[] =\r
+/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in\r
+   YYRHS.  */\r
+static const unsigned short yyprhs[] =\r
 {\r
-       0,     0,     2,     3,     6,     9,    12,    15,    18,    21,\r
-      22,    25,    28,    31,    34,    37,    38,    42,    45,    47,\r
-      50,    52,    55,    58,    60,    63,    66,    69,    74,    78,\r
-      82,    85,    89,    93,    94,    96,    98,   100,   104,   106,\r
-     111,   115,   122,   128,   129,   133,   137,   139,   143,   148,\r
-     149,   151,   155,   157,   161,   166,   168,   170,   175,   180,\r
-     182,   184,   186,   188,   190,   195,   200,   205,   207,   212,\r
-     217,   222,   224,   226,   231,   236,   241,   246,   251,   253,\r
-     258,   260,   265,   271,   273,   275,   280,   282,   284,   286,\r
-     288,   290,   292,   294,   299,   301,   303,   305,   307,   309,\r
-     311,   313,   315,   317,   322,   324,   326,   331,   336,   341,\r
-     343,   348,   350,   352,   357,   362,   364,   365,   367,   368,\r
-     371,   376,   380,   386,   387,   390,   392,   394,   398,   402,\r
-     404,   410,   412,   416,   417,   419,   421,   423,   425,   431,\r
-     435,   439,   443,   447,   451,   455,   459,   463,   466,   469,\r
-     472,   477,   482,   486,   488,   492,   494,   499,   500,   503,\r
-     506,   510,   513,   515,   520,   528,   529,   531,   532,   534,\r
-     536,   538,   540,   542,   544,   546,   548,   550,   552,   554,\r
-     557,   560,   562,   564,   566,   568,   570,   572,   574,   575,\r
-     577,   579,   582,   585,   588,   591,   593,   595,   598,   601,\r
-     604,   609,   610,   613,   616,   619,   622,   625,   628,   632,\r
-     635,   639,   645,   646,   649,   652,   655,   658,   664,   672,\r
-     674,   677,   680,   683,   686,   689,   694,   697,   700,   702,\r
-     704,   708,   710,   714,   716,   718,   724,   726,   728,   730,\r
-     733,   735,   738,   740,   743,   745,   748,   753,   759,   770,\r
-     772\r
+       0,     0,     3,     5,     6,     9,    12,    15,    18,    21,\r
+      24,    25,    28,    31,    34,    37,    40,    41,    45,    48,\r
+      50,    53,    55,    58,    61,    63,    66,    69,    72,    77,\r
+      81,    85,    88,    92,    96,    97,    99,   101,   103,   107,\r
+     109,   114,   118,   125,   131,   132,   136,   140,   142,   146,\r
+     151,   152,   154,   158,   160,   164,   169,   171,   173,   178,\r
+     183,   185,   187,   189,   191,   193,   198,   203,   208,   210,\r
+     215,   220,   225,   227,   229,   234,   239,   244,   249,   254,\r
+     256,   261,   263,   268,   274,   276,   278,   283,   285,   287,\r
+     289,   291,   293,   295,   297,   302,   304,   306,   308,   310,\r
+     312,   314,   316,   318,   320,   325,   327,   329,   334,   339,\r
+     344,   346,   351,   353,   355,   360,   365,   367,   368,   370,\r
+     371,   374,   379,   383,   389,   390,   393,   395,   397,   401,\r
+     405,   407,   413,   414,   416,   418,   420,   422,   428,   432,\r
+     436,   440,   444,   448,   452,   456,   460,   463,   466,   469,\r
+     474,   479,   483,   485,   489,   491,   496,   497,   500,   503,\r
+     507,   510,   512,   517,   525,   526,   528,   529,   531,   533,\r
+     535,   537,   539,   541,   543,   545,   547,   549,   551,   554,\r
+     557,   559,   561,   563,   565,   567,   569,   571,   572,   574,\r
+     576,   579,   582,   585,   588,   590,   592,   595,   598,   601,\r
+     606,   607,   610,   613,   616,   619,   622,   625,   629,   632,\r
+     636,   642,   643,   646,   649,   652,   655,   661,   669,   671,\r
+     674,   677,   680,   683,   686,   691,   694,   697,   699,   701,\r
+     705,   707,   711,   713,   715,   721,   723,   725,   727,   730,\r
+     732,   735,   737,   740,   742,   745,   750,   756,   767,   769\r
 };\r
+\r
+/* YYRHS -- A `-1'-separated list of the rules' RHS. */\r
 static const short yyrhs[] =\r
 {\r
-     146,     0,     0,   146,   204,     0,   146,   203,     0,   146,\r
-     192,     0,   146,   207,     0,   146,   155,     0,   146,   149,\r
-       0,     0,   147,   204,     0,   147,   203,     0,   147,   192,\r
-       0,   147,   207,     0,   147,   149,     0,     0,   148,   183,\r
-     134,     0,   148,   149,     0,   134,     0,   169,   134,     0,\r
-     150,     0,   173,   134,     0,   179,   134,     0,   152,     0,\r
-     212,   134,     0,   214,   134,     0,   215,   134,     0,    37,\r
-     135,     7,   136,     0,    64,     7,   134,     0,   151,   147,\r
-       9,     0,    74,     3,     0,   163,   153,   137,     0,   154,\r
-     147,   138,     0,     0,   158,     0,   118,     0,   159,     0,\r
-     158,   122,   159,     0,   157,     0,   163,   213,   209,   160,\r
-       0,   213,   209,   160,     0,   163,   213,   209,   135,   156,\r
-     136,     0,   213,   209,   135,   156,   136,     0,     0,   139,\r
-     161,   140,     0,   139,   128,   140,     0,   175,     0,   161,\r
-     122,   176,     0,   161,   140,   139,   176,     0,     0,   163,\r
-       0,   139,   164,   140,     0,   165,     0,   164,   122,   165,\r
-       0,   164,   140,   139,   165,     0,    16,     0,    18,     0,\r
-      24,   135,   186,   136,     0,    26,   135,   177,   136,     0,\r
-      33,     0,    34,     0,    35,     0,    36,     0,    38,     0,\r
-      39,   135,   178,   136,     0,    39,   135,     7,   136,     0,\r
-      41,   135,     7,   136,     0,    43,     0,    44,   135,     7,\r
-     136,     0,    45,   135,     7,   136,     0,    45,   135,   178,\r
-     136,     0,    48,     0,    51,     0,    53,   135,   178,   136,\r
-       0,    54,   135,     7,   136,     0,    55,   135,     7,   136,\r
-       0,    56,   135,   178,   136,     0,    57,   135,     7,   136,\r
-       0,    58,     0,    60,   135,   178,   136,     0,    61,     0,\r
-      62,   135,   186,   136,     0,    63,   135,    52,     3,   136,\r
-       0,    66,     0,    69,     0,    73,   135,   174,   136,     0,\r
-      75,     0,    79,     0,    80,     0,    81,     0,    82,     0,\r
-      83,     0,    84,     0,    85,   135,   211,   136,     0,    87,\r
-       0,    88,     0,    89,     0,    90,     0,    91,     0,    92,\r
-       0,    93,     0,    94,     0,    95,     0,    99,   135,   174,\r
-     136,     0,   102,     0,   104,     0,   107,   135,   176,   136,\r
-       0,   108,   135,   213,   136,     0,   109,   135,   213,   136,\r
-       0,   112,     0,   114,   135,     8,   136,     0,   115,     0,\r
-     116,     0,   117,   135,   216,   136,     0,   120,   135,   213,\r
-     136,     0,   211,     0,     0,   103,     0,     0,   167,   168,\r
-       0,    26,   176,   141,   181,     0,    38,   141,   181,     0,\r
-      32,   213,   186,   142,   178,     0,     0,   171,   122,     0,\r
-     171,     0,   172,     0,   171,   122,   172,     0,   186,   142,\r
-     178,     0,   186,     0,    46,   185,   137,   170,   138,     0,\r
-     175,     0,   174,   122,   175,     0,     0,   176,     0,     5,\r
-       0,     6,     0,     3,     0,   176,   143,   176,   141,   176,\r
-       0,   176,   124,   176,     0,   176,   125,   176,     0,   176,\r
-     127,   176,     0,   176,   126,   176,     0,   176,   128,   176,\r
-       0,   176,   129,   176,     0,   176,    10,   176,     0,   176,\r
-      11,   176,     0,   130,   176,     0,   126,   176,     0,   128,\r
-     176,     0,   135,   213,   136,   176,     0,   100,   135,   213,\r
-     136,     0,   135,   176,   136,     0,   178,     0,   177,   122,\r
-     178,     0,   176,     0,    49,    32,   213,   186,     0,     0,\r
-     180,   181,     0,   182,   134,     0,   162,   215,   134,     0,\r
-     163,   134,     0,   134,     0,   162,   213,   209,   160,     0,\r
-     162,   213,   166,   209,   135,   156,   136,     0,     0,   186,\r
-       0,     0,     3,     0,     4,     0,     3,     0,     4,     0,\r
-      16,     0,    60,     0,    95,     0,   117,     0,    22,     0,\r
-     119,     0,   189,     0,    97,   189,     0,   113,   189,     0,\r
-     113,     0,    50,     0,    98,     0,    42,     0,    20,     0,\r
-      47,     0,    52,     0,     0,    70,     0,    70,     0,   101,\r
-     188,     0,    96,   188,     0,    76,   188,     0,    59,   188,\r
-       0,    71,     0,    28,     0,    29,     3,     0,    29,     4,\r
-       0,   163,   190,     0,   191,   137,   193,   138,     0,     0,\r
-     193,   194,     0,   162,   204,     0,    40,     3,     0,    40,\r
-       4,     0,   163,   195,     0,    86,   141,     0,   197,   182,\r
-     134,     0,    77,   141,     0,   198,   183,   134,     0,   196,\r
-     137,   197,   198,   138,     0,     0,   141,     4,     0,    72,\r
-       3,     0,    72,     4,     0,   163,   201,     0,   202,   200,\r
-     137,   148,   138,     0,   202,   141,     3,   137,   152,   148,\r
-     138,     0,   199,     0,   201,   134,     0,   195,   134,     0,\r
-      78,     3,     0,    78,     4,     0,   163,   205,     0,   206,\r
-     137,   148,   138,     0,   128,   209,     0,    32,   208,     0,\r
-     186,     0,   208,     0,   135,   209,   136,     0,   209,     0,\r
-     210,   122,   209,     0,    93,     0,   112,     0,   105,   185,\r
-     137,   180,   138,     0,   118,     0,     4,     0,   187,     0,\r
-      32,   213,     0,   173,     0,    46,     3,     0,   212,     0,\r
-     105,     3,     0,   215,     0,   111,     3,     0,   110,   162,\r
-     213,   210,     0,   111,   185,   137,   180,   138,     0,   111,\r
-     185,   106,   135,   182,   136,   184,   137,   167,   138,     0,\r
-       5,     0,     5,   144,     5,     0\r
+     146,     0,    -1,   147,    -1,    -1,   147,   204,    -1,   147,\r
+     203,    -1,   147,   192,    -1,   147,   207,    -1,   147,   156,\r
+      -1,   147,   150,    -1,    -1,   148,   204,    -1,   148,   203,\r
+      -1,   148,   192,    -1,   148,   207,    -1,   148,   150,    -1,\r
+      -1,   149,   183,   134,    -1,   149,   150,    -1,   134,    -1,\r
+     170,   134,    -1,   151,    -1,   174,   134,    -1,   179,   134,\r
+      -1,   153,    -1,   212,   134,    -1,   214,   134,    -1,   215,\r
+     134,    -1,    37,   135,     7,   136,    -1,    64,     7,   134,\r
+      -1,   152,   148,     9,    -1,    74,     3,    -1,   164,   154,\r
+     137,    -1,   155,   148,   138,    -1,    -1,   159,    -1,   118,\r
+      -1,   160,    -1,   159,   122,   160,    -1,   158,    -1,   164,\r
+     213,   209,   161,    -1,   213,   209,   161,    -1,   164,   213,\r
+     209,   135,   157,   136,    -1,   213,   209,   135,   157,   136,\r
+      -1,    -1,   139,   162,   140,    -1,   139,   128,   140,    -1,\r
+     175,    -1,   162,   122,   176,    -1,   162,   140,   139,   176,\r
+      -1,    -1,   164,    -1,   139,   165,   140,    -1,   166,    -1,\r
+     165,   122,   166,    -1,   165,   140,   139,   166,    -1,    16,\r
+      -1,    18,    -1,    24,   135,   186,   136,    -1,    26,   135,\r
+     177,   136,    -1,    33,    -1,    34,    -1,    35,    -1,    36,\r
+      -1,    38,    -1,    39,   135,   178,   136,    -1,    39,   135,\r
+       7,   136,    -1,    41,   135,     7,   136,    -1,    43,    -1,\r
+      44,   135,     7,   136,    -1,    45,   135,     7,   136,    -1,\r
+      45,   135,   178,   136,    -1,    48,    -1,    51,    -1,    53,\r
+     135,   178,   136,    -1,    54,   135,     7,   136,    -1,    55,\r
+     135,     7,   136,    -1,    56,   135,   178,   136,    -1,    57,\r
+     135,     7,   136,    -1,    58,    -1,    60,   135,   178,   136,\r
+      -1,    61,    -1,    62,   135,   186,   136,    -1,    63,   135,\r
+      52,     3,   136,    -1,    66,    -1,    69,    -1,    73,   135,\r
+     210,   136,    -1,    75,    -1,    79,    -1,    80,    -1,    81,\r
+      -1,    82,    -1,    83,    -1,    84,    -1,    85,   135,   211,\r
+     136,    -1,    87,    -1,    88,    -1,    89,    -1,    90,    -1,\r
+      91,    -1,    92,    -1,    93,    -1,    94,    -1,    95,    -1,\r
+      99,   135,   210,   136,    -1,   102,    -1,   104,    -1,   107,\r
+     135,   176,   136,    -1,   108,   135,   213,   136,    -1,   109,\r
+     135,   213,   136,    -1,   112,    -1,   114,   135,     8,   136,\r
+      -1,   115,    -1,   116,    -1,   117,   135,   216,   136,    -1,\r
+     120,   135,   213,   136,    -1,   211,    -1,    -1,   103,    -1,\r
+      -1,   168,   169,    -1,    26,   176,   141,   181,    -1,    38,\r
+     141,   181,    -1,    32,   213,   186,   142,   178,    -1,    -1,\r
+     172,   122,    -1,   172,    -1,   173,    -1,   172,   122,   173,\r
+      -1,   186,   142,   178,    -1,   186,    -1,    46,   185,   137,\r
+     171,   138,    -1,    -1,   176,    -1,     5,    -1,     6,    -1,\r
+       3,    -1,   176,   143,   176,   141,   176,    -1,   176,   124,\r
+     176,    -1,   176,   125,   176,    -1,   176,   127,   176,    -1,\r
+     176,   126,   176,    -1,   176,   128,   176,    -1,   176,   129,\r
+     176,    -1,   176,    10,   176,    -1,   176,    11,   176,    -1,\r
+     130,   176,    -1,   126,   176,    -1,   128,   176,    -1,   135,\r
+     213,   136,   176,    -1,   100,   135,   213,   136,    -1,   135,\r
+     176,   136,    -1,   178,    -1,   177,   122,   178,    -1,   176,\r
+      -1,    49,    32,   213,   186,    -1,    -1,   180,   181,    -1,\r
+     182,   134,    -1,   163,   215,   134,    -1,   164,   134,    -1,\r
+     134,    -1,   163,   213,   209,   161,    -1,   163,   213,   167,\r
+     209,   135,   157,   136,    -1,    -1,   186,    -1,    -1,     3,\r
+      -1,     4,    -1,     3,    -1,     4,    -1,    16,    -1,    60,\r
+      -1,    95,    -1,   117,    -1,    22,    -1,   119,    -1,   189,\r
+      -1,    97,   189,    -1,   113,   189,    -1,   113,    -1,    50,\r
+      -1,    98,    -1,    42,    -1,    20,    -1,    47,    -1,    52,\r
+      -1,    -1,    70,    -1,    70,    -1,   101,   188,    -1,    96,\r
+     188,    -1,    76,   188,    -1,    59,   188,    -1,    71,    -1,\r
+      28,    -1,    29,     3,    -1,    29,     4,    -1,   164,   190,\r
+      -1,   191,   137,   193,   138,    -1,    -1,   193,   194,    -1,\r
+     163,   204,    -1,    40,     3,    -1,    40,     4,    -1,   164,\r
+     195,    -1,    86,   141,    -1,   197,   182,   134,    -1,    77,\r
+     141,    -1,   198,   183,   134,    -1,   196,   137,   197,   198,\r
+     138,    -1,    -1,   141,     4,    -1,    72,     3,    -1,    72,\r
+       4,    -1,   164,   201,    -1,   202,   200,   137,   149,   138,\r
+      -1,   202,   141,     3,   137,   153,   149,   138,    -1,   199,\r
+      -1,   201,   134,    -1,   195,   134,    -1,    78,     3,    -1,\r
+      78,     4,    -1,   164,   205,    -1,   206,   137,   149,   138,\r
+      -1,   128,   209,    -1,    32,   208,    -1,   186,    -1,   208,\r
+      -1,   135,   209,   136,    -1,   209,    -1,   210,   122,   209,\r
+      -1,    93,    -1,   112,    -1,   105,   185,   137,   180,   138,\r
+      -1,   118,    -1,     4,    -1,   187,    -1,    32,   213,    -1,\r
+     174,    -1,    46,     3,    -1,   212,    -1,   105,     3,    -1,\r
+     215,    -1,   111,     3,    -1,   110,   163,   213,   210,    -1,\r
+     111,   185,   137,   180,   138,    -1,   111,   185,   106,   135,\r
+     182,   136,   184,   137,   168,   138,    -1,     5,    -1,     5,\r
+     144,     5,    -1\r
 };\r
 \r
-#endif\r
-\r
-#if YYDEBUG\r
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */\r
-static const short yyrline[] =\r
+/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */\r
+static const unsigned short yyrline[] =\r
 {\r
-       0,   228,   231,   232,   233,   234,   235,   236,   237,   240,\r
-     241,   242,   243,   244,   245,   248,   249,   250,   253,   254,\r
-     255,   256,   257,   258,   259,   260,   261,   264,   266,   269,\r
-     272,   274,   276,   279,   280,   283,   286,   287,   288,   292,\r
-     296,   299,   305,   312,   313,   314,   317,   318,   319,   322,\r
-     323,   326,   330,   331,   332,   335,   337,   338,   339,   340,\r
-     341,   342,   343,   344,   345,   346,   347,   348,   349,   350,\r
-     351,   352,   353,   354,   355,   356,   357,   358,   359,   360,\r
-     361,   362,   363,   364,   365,   366,   367,   368,   369,   370,\r
-     371,   372,   373,   374,   375,   376,   377,   378,   379,   380,\r
-     381,   382,   383,   384,   385,   386,   387,   388,   389,   390,\r
-     391,   392,   393,   394,   395,   396,   399,   400,   403,   404,\r
-     409,   413,   419,   426,   427,   428,   431,   432,   438,   443,\r
-     449,   457,   458,   471,   472,   475,   476,   477,   478,   479,\r
-     480,   481,   482,   483,   484,   485,   486,   487,   488,   489,\r
-     490,   491,   492,   495,   496,   499,   505,   510,   511,   516,\r
-     517,   518,   519,   522,   525,   536,   537,   540,   541,   542,\r
-     545,   547,   548,   549,   550,   551,   554,   555,   556,   557,\r
-     558,   570,   571,   572,   573,   574,   575,   576,   579,   580,\r
-     583,   584,   585,   586,   587,   588,   589,   592,   593,   596,\r
-     603,   608,   609,   612,   616,   617,   620,   632,   633,   636,\r
-     637,   640,   655,   656,   659,   660,   663,   671,   679,   686,\r
-     689,   691,   694,   695,   698,   703,   709,   710,   713,   714,\r
-     715,   718,   720,   723,   725,   728,   738,   739,   740,   741,\r
-     742,   743,   744,   745,   746,   747,   750,   763,   767,   780,\r
-     782\r
+       0,   228,   228,   231,   232,   233,   234,   235,   236,   237,\r
+     240,   241,   242,   243,   244,   245,   248,   249,   250,   253,\r
+     254,   255,   256,   257,   258,   259,   260,   261,   264,   266,\r
+     269,   272,   274,   276,   279,   280,   283,   286,   287,   288,\r
+     292,   296,   299,   305,   312,   313,   314,   317,   318,   319,\r
+     322,   323,   327,   330,   331,   332,   336,   337,   338,   339,\r
+     340,   341,   342,   343,   344,   345,   346,   347,   348,   349,\r
+     350,   351,   352,   353,   354,   355,   356,   357,   358,   359,\r
+     360,   361,   362,   363,   364,   365,   366,   367,   368,   369,\r
+     370,   371,   372,   373,   374,   375,   376,   377,   378,   379,\r
+     380,   381,   382,   383,   384,   385,   386,   387,   388,   389,\r
+     390,   391,   392,   393,   394,   395,   396,   399,   400,   403,\r
+     404,   409,   413,   419,   426,   427,   428,   431,   432,   438,\r
+     443,   449,   471,   472,   475,   476,   477,   478,   479,   480,\r
+     481,   482,   483,   484,   485,   486,   487,   488,   489,   490,\r
+     491,   492,   495,   496,   499,   505,   510,   511,   516,   517,\r
+     518,   519,   522,   526,   536,   537,   540,   541,   542,   545,\r
+     547,   548,   549,   550,   551,   554,   555,   556,   557,   558,\r
+     570,   571,   572,   573,   574,   575,   576,   579,   580,   583,\r
+     584,   585,   586,   587,   588,   589,   592,   593,   596,   603,\r
+     608,   609,   613,   616,   617,   620,   632,   633,   636,   637,\r
+     640,   655,   656,   659,   660,   663,   671,   679,   686,   690,\r
+     691,   694,   695,   698,   703,   709,   710,   713,   714,   715,\r
+     719,   720,   724,   725,   728,   738,   739,   740,   741,   742,\r
+     743,   744,   745,   746,   747,   750,   763,   767,   781,   782\r
 };\r
 #endif\r
 \r
-\r
-#if (YYDEBUG) || defined YYERROR_VERBOSE\r
-\r
-/* YYTNAME[TOKEN_NUM] -- String name of the token TOKEN_NUM. */\r
+#if YYDEBUG || YYERROR_VERBOSE\r
+/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.\r
+   First, the terminals, then, starting at YYNTOKENS, nonterminals. */\r
 static const char *const yytname[] =\r
 {\r
-  "$", "error", "$undefined.", "aIDENTIFIER", "aKNOWNTYPE", "aNUM", \r
+  "$end", "error", "$undefined", "aIDENTIFIER", "aKNOWNTYPE", "aNUM", \r
   "aHEXNUM", "aSTRING", "aUUID", "aEOF", "SHL", "SHR", "tAGGREGATABLE", \r
   "tALLOCATE", "tAPPOBJECT", "tARRAYS", "tASYNC", "tASYNCUUID", \r
   "tAUTOHANDLE", "tBINDABLE", "tBOOLEAN", "tBROADCAST", "tBYTE", \r
@@ -484,403 +790,430 @@ static const char *const yytname[] =
   "tUNSIGNED", "tUUID", "tV1ENUM", "tVARARG", "tVERSION", "tVOID", \r
   "tWCHAR", "tWIREMARSHAL", "tPOINTERTYPE", "','", "COND", "'|'", "'&'", \r
   "'-'", "'+'", "'*'", "'/'", "'~'", "CAST", "PPTR", "NEG", "';'", "'('", \r
-  "')'", "'{'", "'}'", "'['", "']'", "':'", "'='", "'?'", "'.'", "input", \r
-  "gbl_statements", "imp_statements", "int_statements", "statement", \r
-  "cppquote", "import_start", "import", "libraryhdr", "library_start", \r
-  "librarydef", "m_args", "no_args", "args", "arg", "array", "array_list", \r
-  "m_attributes", "attributes", "attrib_list", "attribute", "callconv", \r
-  "cases", "case", "constdef", "enums", "enum_list", "enum", "enumdef", \r
-  "m_exprs", "m_expr", "expr", "expr_list_const", "expr_const", \r
-  "externdef", "fields", "field", "s_field", "funcdef", "m_ident", \r
-  "t_ident", "ident", "base_type", "m_int", "int_std", "coclass", \r
-  "coclasshdr", "coclassdef", "coclass_ints", "coclass_int", \r
-  "dispinterface", "dispinterfacehdr", "dispint_props", "dispint_meths", \r
-  "dispinterfacedef", "inherit", "interface", "interfacehdr", \r
-  "interfacedef", "interfacedec", "module", "modulehdr", "moduledef", \r
-  "p_ident", "pident", "pident_list", "pointer_type", "structdef", "type", \r
-  "typedef", "uniondef", "version", 0\r
+  "')'", "'{'", "'}'", "'['", "']'", "':'", "'='", "'?'", "'.'", \r
+  "$accept", "input", "gbl_statements", "imp_statements", \r
+  "int_statements", "statement", "cppquote", "import_start", "import", \r
+  "libraryhdr", "library_start", "librarydef", "m_args", "no_args", \r
+  "args", "arg", "array", "array_list", "m_attributes", "attributes", \r
+  "attrib_list", "attribute", "callconv", "cases", "case", "constdef", \r
+  "enums", "enum_list", "enum", "enumdef", "m_expr", "expr", \r
+  "expr_list_const", "expr_const", "externdef", "fields", "field", \r
+  "s_field", "funcdef", "m_ident", "t_ident", "ident", "base_type", \r
+  "m_int", "int_std", "coclass", "coclasshdr", "coclassdef", \r
+  "coclass_ints", "coclass_int", "dispinterface", "dispinterfacehdr", \r
+  "dispint_props", "dispint_meths", "dispinterfacedef", "inherit", \r
+  "interface", "interfacehdr", "interfacedef", "interfacedec", "module", \r
+  "modulehdr", "moduledef", "p_ident", "pident", "pident_list", \r
+  "pointer_type", "structdef", "type", "typedef", "uniondef", "version", 0\r
 };\r
 #endif\r
 \r
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */\r
-static const short yyr1[] =\r
+# ifdef YYPRINT\r
+/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to\r
+   token YYLEX-NUM.  */\r
+static const unsigned short yytoknum[] =\r
 {\r
-       0,   145,   146,   146,   146,   146,   146,   146,   146,   147,\r
-     147,   147,   147,   147,   147,   148,   148,   148,   149,   149,\r
-     149,   149,   149,   149,   149,   149,   149,   150,   151,   152,\r
-     153,   154,   155,   156,   156,   157,   158,   158,   158,   159,\r
-     159,   159,   159,   160,   160,   160,   161,   161,   161,   162,\r
-     162,   163,   164,   164,   164,   165,   165,   165,   165,   165,\r
-     165,   165,   165,   165,   165,   165,   165,   165,   165,   165,\r
-     165,   165,   165,   165,   165,   165,   165,   165,   165,   165,\r
-     165,   165,   165,   165,   165,   165,   165,   165,   165,   165,\r
-     165,   165,   165,   165,   165,   165,   165,   165,   165,   165,\r
-     165,   165,   165,   165,   165,   165,   165,   165,   165,   165,\r
-     165,   165,   165,   165,   165,   165,   166,   166,   167,   167,\r
-     168,   168,   169,   170,   170,   170,   171,   171,   172,   172,\r
-     173,   174,   174,   175,   175,   176,   176,   176,   176,   176,\r
+       0,   256,   257,   258,   259,   260,   261,   262,   263,   264,\r
+     265,   266,   267,   268,   269,   270,   271,   272,   273,   274,\r
+     275,   276,   277,   278,   279,   280,   281,   282,   283,   284,\r
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,\r
+     295,   296,   297,   298,   299,   300,   301,   302,   303,   304,\r
+     305,   306,   307,   308,   309,   310,   311,   312,   313,   314,\r
+     315,   316,   317,   318,   319,   320,   321,   322,   323,   324,\r
+     325,   326,   327,   328,   329,   330,   331,   332,   333,   334,\r
+     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,\r
+     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,\r
+     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,\r
+     365,   366,   367,   368,   369,   370,   371,   372,   373,   374,\r
+     375,   376,    44,   377,   124,    38,    45,    43,    42,    47,\r
+     126,   378,   379,   380,    59,    40,    41,   123,   125,    91,\r
+      93,    58,    61,    63,    46\r
+};\r
+# endif\r
+\r
+/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */\r
+static const unsigned char yyr1[] =\r
+{\r
+       0,   145,   146,   147,   147,   147,   147,   147,   147,   147,\r
+     148,   148,   148,   148,   148,   148,   149,   149,   149,   150,\r
+     150,   150,   150,   150,   150,   150,   150,   150,   151,   152,\r
+     153,   154,   155,   156,   157,   157,   158,   159,   159,   159,\r
+     160,   160,   160,   160,   161,   161,   161,   162,   162,   162,\r
+     163,   163,   164,   165,   165,   165,   166,   166,   166,   166,\r
+     166,   166,   166,   166,   166,   166,   166,   166,   166,   166,\r
+     166,   166,   166,   166,   166,   166,   166,   166,   166,   166,\r
+     166,   166,   166,   166,   166,   166,   166,   166,   166,   166,\r
+     166,   166,   166,   166,   166,   166,   166,   166,   166,   166,\r
+     166,   166,   166,   166,   166,   166,   166,   166,   166,   166,\r
+     166,   166,   166,   166,   166,   166,   166,   167,   167,   168,\r
+     168,   169,   169,   170,   171,   171,   171,   172,   172,   173,\r
+     173,   174,   175,   175,   176,   176,   176,   176,   176,   176,\r
      176,   176,   176,   176,   176,   176,   176,   176,   176,   176,\r
-     176,   176,   176,   177,   177,   178,   179,   180,   180,   181,\r
-     181,   181,   181,   182,   183,   184,   184,   185,   185,   185,\r
-     186,   186,   186,   186,   186,   186,   187,   187,   187,   187,\r
-     187,   187,   187,   187,   187,   187,   187,   187,   188,   188,\r
-     189,   189,   189,   189,   189,   189,   189,   190,   190,   191,\r
-     192,   193,   193,   194,   195,   195,   196,   197,   197,   198,\r
-     198,   199,   200,   200,   201,   201,   202,   203,   203,   203,\r
-     204,   204,   205,   205,   206,   207,   208,   208,   209,   209,\r
-     209,   210,   210,   211,   211,   212,   213,   213,   213,   213,\r
-     213,   213,   213,   213,   213,   213,   214,   215,   215,   216,\r
-     216\r
+     176,   176,   177,   177,   178,   179,   180,   180,   181,   181,\r
+     181,   181,   182,   183,   184,   184,   185,   185,   185,   186,\r
+     186,   186,   186,   186,   186,   187,   187,   187,   187,   187,\r
+     187,   187,   187,   187,   187,   187,   187,   188,   188,   189,\r
+     189,   189,   189,   189,   189,   189,   190,   190,   191,   192,\r
+     193,   193,   194,   195,   195,   196,   197,   197,   198,   198,\r
+     199,   200,   200,   201,   201,   202,   203,   203,   203,   204,\r
+     204,   205,   205,   206,   207,   208,   208,   209,   209,   209,\r
+     210,   210,   211,   211,   212,   213,   213,   213,   213,   213,\r
+     213,   213,   213,   213,   213,   214,   215,   215,   216,   216\r
 };\r
 \r
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */\r
-static const short yyr2[] =\r
+/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */\r
+static const unsigned char yyr2[] =\r
 {\r
-       0,     1,     0,     2,     2,     2,     2,     2,     2,     0,\r
-       2,     2,     2,     2,     2,     0,     3,     2,     1,     2,\r
-       1,     2,     2,     1,     2,     2,     2,     4,     3,     3,\r
-       2,     3,     3,     0,     1,     1,     1,     3,     1,     4,\r
-       3,     6,     5,     0,     3,     3,     1,     3,     4,     0,\r
-       1,     3,     1,     3,     4,     1,     1,     4,     4,     1,\r
-       1,     1,     1,     1,     4,     4,     4,     1,     4,     4,\r
-       4,     1,     1,     4,     4,     4,     4,     4,     1,     4,\r
-       1,     4,     5,     1,     1,     4,     1,     1,     1,     1,\r
-       1,     1,     1,     4,     1,     1,     1,     1,     1,     1,\r
-       1,     1,     1,     4,     1,     1,     4,     4,     4,     1,\r
-       4,     1,     1,     4,     4,     1,     0,     1,     0,     2,\r
-       4,     3,     5,     0,     2,     1,     1,     3,     3,     1,\r
-       5,     1,     3,     0,     1,     1,     1,     1,     5,     3,\r
-       3,     3,     3,     3,     3,     3,     3,     2,     2,     2,\r
-       4,     4,     3,     1,     3,     1,     4,     0,     2,     2,\r
-       3,     2,     1,     4,     7,     0,     1,     0,     1,     1,\r
-       1,     1,     1,     1,     1,     1,     1,     1,     1,     2,\r
-       2,     1,     1,     1,     1,     1,     1,     1,     0,     1,\r
-       1,     2,     2,     2,     2,     1,     1,     2,     2,     2,\r
-       4,     0,     2,     2,     2,     2,     2,     2,     3,     2,\r
-       3,     5,     0,     2,     2,     2,     2,     5,     7,     1,\r
-       2,     2,     2,     2,     2,     4,     2,     2,     1,     1,\r
-       3,     1,     3,     1,     1,     5,     1,     1,     1,     2,\r
-       1,     2,     1,     2,     1,     2,     4,     5,    10,     1,\r
-       3\r
+       0,     2,     1,     0,     2,     2,     2,     2,     2,     2,\r
+       0,     2,     2,     2,     2,     2,     0,     3,     2,     1,\r
+       2,     1,     2,     2,     1,     2,     2,     2,     4,     3,\r
+       3,     2,     3,     3,     0,     1,     1,     1,     3,     1,\r
+       4,     3,     6,     5,     0,     3,     3,     1,     3,     4,\r
+       0,     1,     3,     1,     3,     4,     1,     1,     4,     4,\r
+       1,     1,     1,     1,     1,     4,     4,     4,     1,     4,\r
+       4,     4,     1,     1,     4,     4,     4,     4,     4,     1,\r
+       4,     1,     4,     5,     1,     1,     4,     1,     1,     1,\r
+       1,     1,     1,     1,     4,     1,     1,     1,     1,     1,\r
+       1,     1,     1,     1,     4,     1,     1,     4,     4,     4,\r
+       1,     4,     1,     1,     4,     4,     1,     0,     1,     0,\r
+       2,     4,     3,     5,     0,     2,     1,     1,     3,     3,\r
+       1,     5,     0,     1,     1,     1,     1,     5,     3,     3,\r
+       3,     3,     3,     3,     3,     3,     2,     2,     2,     4,\r
+       4,     3,     1,     3,     1,     4,     0,     2,     2,     3,\r
+       2,     1,     4,     7,     0,     1,     0,     1,     1,     1,\r
+       1,     1,     1,     1,     1,     1,     1,     1,     2,     2,\r
+       1,     1,     1,     1,     1,     1,     1,     0,     1,     1,\r
+       2,     2,     2,     2,     1,     1,     2,     2,     2,     4,\r
+       0,     2,     2,     2,     2,     2,     2,     3,     2,     3,\r
+       5,     0,     2,     2,     2,     2,     5,     7,     1,     2,\r
+       2,     2,     2,     2,     4,     2,     2,     1,     1,     3,\r
+       1,     3,     1,     1,     5,     1,     1,     1,     2,     1,\r
+       2,     1,     2,     1,     2,     4,     5,    10,     1,     3\r
 };\r
 \r
-/* YYDEFACT[S] -- default rule to reduce with in state S when YYTABLE\r
-   doesn't specify something else to do.  Zero means the default is an\r
-   error. */\r
-static const short yydefact[] =\r
+/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state\r
+   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero\r
+   means the default is an error.  */\r
+static const unsigned char yydefact[] =\r
 {\r
-       2,     1,     0,     0,     0,   167,     0,     0,     0,   167,\r
-      49,   167,    18,     0,     8,    20,     9,    23,     9,     7,\r
-       0,     0,     0,     0,     0,     5,     0,     0,   219,     0,\r
-     212,     4,     3,     0,     6,     0,     0,     0,   237,   185,\r
-     176,   196,     0,   184,   167,   186,   182,   187,   188,   190,\r
-     195,   188,   188,     0,   183,   188,   167,   167,   181,   236,\r
-     177,   240,   238,   178,   242,     0,   244,     0,   204,   205,\r
-     168,   169,     0,     0,     0,   214,   215,     0,     0,    50,\r
-       0,    55,    56,     0,     0,    59,    60,    61,    62,    63,\r
-       0,     0,    67,     0,     0,    71,    72,     0,     0,     0,\r
-       0,     0,    78,     0,    80,     0,     0,    83,    84,     0,\r
-      86,    87,    88,    89,    90,    91,    92,     0,    94,    95,\r
-      96,    97,    98,    99,   100,   101,   102,     0,   104,   105,\r
-       0,     0,     0,   109,     0,   111,   112,     0,     0,     0,\r
-      52,   115,     0,     0,     0,     0,     0,     0,   199,   206,\r
-     216,   224,    19,    21,    22,   201,   221,     0,   220,     0,\r
-       0,    15,    24,    25,    26,   239,   241,   189,   194,   193,\r
-     192,   179,   191,   243,   245,   180,   170,   171,   172,   173,\r
-     174,   175,     0,     0,   123,     0,    28,   157,     0,     0,\r
-     157,     0,     0,     0,     0,     0,     0,     0,     0,     0,\r
-       0,     0,     0,     0,     0,   133,     0,   133,     0,     0,\r
-       0,     0,     0,     0,     0,    51,    29,    14,     0,    12,\r
-      11,    10,    13,    32,   197,   198,    30,   222,   223,    31,\r
-      49,     0,    49,     0,   213,    15,    49,     0,    27,     0,\r
-     125,   126,   129,   156,    49,     0,     0,     0,   228,   229,\r
-     231,   246,    49,    49,     0,   137,   135,   136,     0,     0,\r
-       0,     0,     0,   155,     0,   153,     0,     0,     0,     0,\r
+       3,     0,     2,     1,     0,     0,     0,   166,     0,     0,\r
+       0,   166,    50,   166,    19,     0,     9,    21,    10,    24,\r
+      10,     8,     0,     0,     0,     0,     0,     6,     0,     0,\r
+     218,     0,   211,     5,     4,     0,     7,     0,     0,     0,\r
+     236,   184,   175,   195,     0,   183,   166,   185,   181,   186,\r
+     187,   189,   194,   187,   187,     0,   182,   187,   166,   166,\r
+     180,   235,   176,   239,   237,   177,   241,     0,   243,     0,\r
+     203,   204,   167,   168,     0,     0,     0,   213,   214,     0,\r
+       0,    51,     0,    56,    57,     0,     0,    60,    61,    62,\r
+      63,    64,     0,     0,    68,     0,     0,    72,    73,     0,\r
+       0,     0,     0,     0,    79,     0,    81,     0,     0,    84,\r
+      85,     0,    87,    88,    89,    90,    91,    92,    93,     0,\r
+      95,    96,    97,    98,    99,   100,   101,   102,   103,     0,\r
+     105,   106,     0,     0,     0,   110,     0,   112,   113,     0,\r
+       0,     0,    53,   116,     0,     0,     0,     0,     0,     0,\r
+     198,   205,   215,   223,    20,    22,    23,   200,   220,     0,\r
+     219,     0,     0,    16,    25,    26,    27,   238,   240,   188,\r
+     193,   192,   191,   178,   190,   242,   244,   179,   169,   170,\r
+     171,   172,   173,   174,     0,     0,   124,     0,    29,   156,\r
+       0,     0,   156,     0,     0,     0,     0,     0,     0,     0,\r
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,\r
+       0,     0,     0,     0,     0,     0,     0,    52,    30,    15,\r
+       0,    13,    12,    11,    14,    33,   196,   197,    31,   221,\r
+     222,    32,    50,     0,    50,     0,   212,    16,    50,     0,\r
+      28,     0,   126,   127,   130,   155,    50,     0,     0,     0,\r
+     227,   228,   230,   245,    50,    50,     0,   136,   134,   135,\r
+       0,     0,     0,     0,     0,   154,     0,   152,     0,     0,\r
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,\r
-       0,   131,   134,   233,   234,     0,     0,     0,     0,     0,\r
-       0,   249,     0,     0,    53,     0,   200,     0,   202,   207,\r
-       0,     0,     0,    49,     0,    49,   225,    17,     0,     0,\r
-     122,   130,   124,     0,   162,   235,     0,    50,   158,     0,\r
-     227,   226,     0,     0,     0,   247,    57,     0,   148,   149,\r
-     147,     0,     0,     0,     0,     0,     0,     0,     0,     0,\r
-       0,     0,     0,    58,    65,    64,    66,    68,    69,    70,\r
-      73,    74,    75,    76,    77,    79,    81,     0,   133,    85,\r
-      93,   103,   106,   107,   108,   110,     0,   113,   114,    54,\r
-     203,   209,     0,   208,   211,     0,    15,   217,   116,    16,\r
-     127,   128,   244,   161,   159,   230,   232,   165,     0,   152,\r
-       0,   145,   146,   139,   140,   142,   141,   143,   144,     0,\r
-     154,    82,   132,   250,    43,   210,    49,   117,     0,   160,\r
-       0,   166,   151,   150,     0,   133,   163,   218,     0,   118,\r
-     138,     0,     0,    46,    33,     0,    45,     0,    44,   236,\r
-       0,    38,    34,    36,     0,     0,     0,     0,   248,   119,\r
-      47,     0,   164,     0,     0,    43,     0,    49,    48,    37,\r
-      43,    33,    40,    49,   121,    33,    39,     0,   120,     0,\r
-      42,    41,     0,     0,     0\r
+       0,     0,     0,   232,   233,     0,     0,     0,     0,     0,\r
+       0,   248,     0,     0,    54,     0,   199,     0,   201,   206,\r
+       0,     0,     0,    50,     0,    50,   224,    18,     0,     0,\r
+     123,   131,   125,     0,   161,   234,     0,    51,   157,     0,\r
+     226,   225,     0,     0,     0,   246,    58,     0,   147,   148,\r
+     146,     0,     0,     0,     0,     0,     0,     0,     0,     0,\r
+       0,     0,     0,    59,    66,    65,    67,    69,    70,    71,\r
+      74,    75,    76,    77,    78,    80,    82,     0,    86,    94,\r
+     104,   107,   108,   109,   111,     0,   114,   115,    55,   202,\r
+     208,     0,   207,   210,     0,    16,   216,   117,    17,   128,\r
+     129,   243,   160,   158,   229,   231,   164,     0,   151,     0,\r
+     144,   145,   138,   139,   141,   140,   142,   143,     0,   153,\r
+      83,   249,    44,   209,    50,   118,     0,   159,     0,   165,\r
+     150,   149,     0,   132,   162,   217,     0,   119,   137,     0,\r
+       0,    47,   133,    34,     0,    46,     0,    45,   235,     0,\r
+      39,    35,    37,     0,     0,     0,     0,   247,   120,    48,\r
+       0,   163,     0,     0,    44,     0,    50,    49,    38,    44,\r
+      34,    41,    50,   122,    34,    40,     0,   121,     0,    43,\r
+      42\r
 };\r
 \r
+/* YYDEFGOTO[NTERM-NUM]. */\r
 static const short yydefgoto[] =\r
 {\r
-     462,     1,   142,   236,   307,    15,    16,    17,   147,    18,\r
-      19,   430,   431,   432,   433,   416,   422,   308,    79,   139,\r
-     140,   408,   425,   439,    21,   239,   240,   241,    61,   280,\r
-     281,   263,   264,   265,    23,   244,   318,   319,   309,   410,\r
-      72,   248,    62,   168,    63,   148,    24,   219,   230,   298,\r
-      26,    27,   232,   303,    28,   160,    29,    30,   220,   221,\r
-     151,    33,   222,   249,   250,   251,   141,    64,   435,    36,\r
-      66,   292\r
+      -1,     1,     2,   144,   238,   307,    17,    18,    19,   149,\r
+      20,    21,   429,   430,   431,   432,   414,   420,   308,    81,\r
+     141,   142,   406,   424,   438,    23,   241,   242,   243,    63,\r
+     421,   265,   266,   267,    25,   246,   318,   319,   309,   408,\r
+      74,   250,    64,   170,    65,   150,    26,   221,   232,   298,\r
+      28,    29,   234,   303,    30,   162,    31,    32,   222,   223,\r
+     153,    35,   224,   251,   252,   253,   143,    66,   434,    38,\r
+      68,   292\r
 };\r
 \r
+/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing\r
+   STATE-NUM.  */\r
+#define YYPACT_NINF -395\r
 static const short yypact[] =\r
 {\r
-  -32768,   686,   644,   -99,    30,    93,    13,    51,   119,    93,\r
-     -32,    93,-32768,   814,-32768,-32768,-32768,-32768,-32768,-32768,\r
-      11,    -6,     6,     9,   -25,-32768,    34,     7,-32768,    36,\r
-      43,-32768,-32768,    14,-32768,    52,    54,    56,-32768,-32768,\r
-  -32768,-32768,   644,-32768,   146,-32768,-32768,-32768,     2,-32768,\r
-  -32768,     2,     2,    35,-32768,     2,   197,   199,    35,-32768,\r
-  -32768,-32768,-32768,-32768,-32768,    21,-32768,   186,-32768,-32768,\r
-  -32768,-32768,    61,   644,    70,-32768,-32768,    69,   644,-32768,\r
-     -76,-32768,-32768,    74,    80,-32768,-32768,-32768,-32768,-32768,\r
-      88,    99,-32768,   107,   116,-32768,-32768,   120,   122,   124,\r
-     130,   132,-32768,   134,-32768,   135,   136,-32768,-32768,   137,\r
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,   138,-32768,-32768,\r
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,   139,-32768,-32768,\r
-     141,   142,   150,-32768,   152,-32768,-32768,   154,   155,   -81,\r
-  -32768,-32768,   568,   655,   209,   224,   222,   144,-32768,-32768,\r
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,   205,-32768,   234,\r
-     157,-32768,-32768,-32768,-32768,-32768,   160,-32768,-32768,-32768,\r
-  -32768,-32768,-32768,   160,   -71,-32768,-32768,-32768,-32768,-32768,\r
-  -32768,-32768,   156,   163,    21,    21,-32768,-32768,   327,   165,\r
-  -32768,    21,   423,   469,   285,   296,   527,   423,   297,   298,\r
-     423,   306,   423,    21,   262,   423,   -62,   423,   423,   644,\r
-     644,   308,   313,   644,   814,   181,-32768,-32768,    46,-32768,\r
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,\r
-     111,   180,   -59,   185,-32768,-32768,   247,   423,-32768,   187,\r
-     202,-32768,   184,-32768,   -47,    -9,   327,   327,-32768,-32768,\r
-  -32768,   207,   -32,   -30,   191,-32768,-32768,-32768,   200,   423,\r
-     423,   423,   515,    38,   -69,-32768,   203,   204,   206,   208,\r
-     210,   212,   214,   215,   217,   220,   225,   226,   227,   333,\r
-     -67,-32768,    38,-32768,-32768,   229,   -65,    92,   230,   233,\r
-     235,   194,   240,   241,-32768,   814,-32768,   -18,-32768,-32768,\r
-     219,   644,   211,   123,   314,   697,-32768,-32768,   644,   238,\r
-  -32768,-32768,    21,   423,-32768,-32768,   644,   245,-32768,   249,\r
-  -32768,-32768,   248,   327,   253,-32768,-32768,   644,   252,   252,\r
-     252,   357,   254,   423,   423,   423,   423,   423,   423,   423,\r
-     423,   423,   423,-32768,-32768,-32768,-32768,-32768,-32768,-32768,\r
-  -32768,-32768,-32768,-32768,-32768,-32768,-32768,   255,   423,-32768,\r
-  -32768,-32768,-32768,-32768,-32768,-32768,   365,-32768,-32768,-32768,\r
-  -32768,-32768,   327,-32768,-32768,   263,-32768,-32768,   293,-32768,\r
-  -32768,-32768,   266,-32768,-32768,-32768,-32768,    21,   265,-32768,\r
-     423,   252,   252,   388,   104,    28,    28,    17,    17,   363,\r
-  -32768,-32768,-32768,-32768,   264,-32768,   707,-32768,   327,-32768,\r
-     267,-32768,-32768,   252,   423,   535,-32768,-32768,   270,-32768,\r
-      38,    59,   -80,-32768,   236,   -12,-32768,   423,   269,   -54,\r
-     277,-32768,   292,-32768,   644,   327,   423,   274,-32768,-32768,\r
-      38,   423,-32768,   360,   327,   -22,   383,   -61,    38,-32768,\r
-      -5,   236,-32768,   -61,-32768,   236,-32768,   281,-32768,   282,\r
-  -32768,-32768,   420,   421,-32768\r
+    -395,    59,   631,  -395,   603,   -65,   119,   134,    46,    88,\r
+     136,   134,   -34,   134,  -395,   814,  -395,  -395,  -395,  -395,\r
+    -395,  -395,    16,   -27,    10,    34,    35,  -395,    63,    38,\r
+    -395,    68,    69,  -395,  -395,    76,  -395,    86,    93,    98,\r
+    -395,  -395,  -395,  -395,   603,  -395,   176,  -395,  -395,  -395,\r
+      62,  -395,  -395,    62,    62,    -5,  -395,    62,   185,   187,\r
+      -5,  -395,  -395,  -395,  -395,  -395,  -395,    13,  -395,   127,\r
+    -395,  -395,  -395,  -395,    87,   603,   102,  -395,  -395,   101,\r
+     603,  -395,   -82,  -395,  -395,    15,   104,  -395,  -395,  -395,\r
+    -395,  -395,   116,   120,  -395,   121,   123,  -395,  -395,   124,\r
+     125,   128,   129,   130,  -395,   131,  -395,   132,   135,  -395,\r
+    -395,   137,  -395,  -395,  -395,  -395,  -395,  -395,  -395,   138,\r
+    -395,  -395,  -395,  -395,  -395,  -395,  -395,  -395,  -395,   139,\r
+    -395,  -395,   140,   141,   142,  -395,   143,  -395,  -395,   144,\r
+     145,   -79,  -395,  -395,   504,   620,   189,   251,   192,   146,\r
+    -395,  -395,  -395,  -395,  -395,  -395,  -395,  -395,  -395,   195,\r
+    -395,   196,   162,  -395,  -395,  -395,  -395,  -395,   164,  -395,\r
+    -395,  -395,  -395,  -395,  -395,   164,   -70,  -395,  -395,  -395,\r
+    -395,  -395,  -395,  -395,   158,   166,    13,    13,  -395,  -395,\r
+     485,   173,  -395,    13,   470,   279,   264,   304,   458,   470,\r
+     305,   308,   470,   309,   470,    13,   265,   485,   -55,   485,\r
+     470,   603,   603,   312,   317,   603,   814,   184,  -395,  -395,\r
+      20,  -395,  -395,  -395,  -395,  -395,  -395,  -395,  -395,  -395,\r
+    -395,  -395,    66,   188,   -57,   191,  -395,  -395,   656,   470,\r
+    -395,   194,   203,  -395,   200,  -395,   -25,   -22,   485,   485,\r
+    -395,  -395,  -395,   208,   -34,   -19,   197,  -395,  -395,  -395,\r
+     199,   470,   470,   470,   464,   239,   -85,  -395,   207,   212,\r
+     214,   217,   219,   220,   221,   223,   224,   225,   226,   235,\r
+     236,   341,   -83,  -395,  -395,   237,   -72,    58,   238,   240,\r
+     241,   234,   244,   245,  -395,   814,  -395,     8,  -395,  -395,\r
+     206,   603,   254,    92,   325,   686,  -395,  -395,   603,   256,\r
+    -395,  -395,    13,   470,  -395,  -395,   603,   257,  -395,   259,\r
+    -395,  -395,   262,   485,   263,  -395,  -395,   603,   249,   249,\r
+     249,    90,   266,   470,   470,   470,   470,   470,   470,   470,\r
+     470,   470,   470,  -395,  -395,  -395,  -395,  -395,  -395,  -395,\r
+    -395,  -395,  -395,  -395,  -395,  -395,  -395,   267,  -395,  -395,\r
+    -395,  -395,  -395,  -395,  -395,   389,  -395,  -395,  -395,  -395,\r
+    -395,   485,  -395,  -395,   281,  -395,  -395,   313,  -395,  -395,\r
+    -395,   285,  -395,  -395,  -395,  -395,    13,   284,  -395,   470,\r
+     249,   249,   258,   167,   100,   100,    23,    23,   163,  -395,\r
+    -395,  -395,   283,  -395,   707,  -395,   485,  -395,   286,  -395,\r
+    -395,   249,   470,   516,  -395,  -395,   289,  -395,   239,    41,\r
+     -59,  -395,   239,   299,    -7,  -395,   470,   287,   -33,   292,\r
+    -395,   303,  -395,   603,   485,   470,   290,  -395,  -395,   239,\r
+     470,  -395,   407,   485,   -23,   211,   -37,   239,  -395,   -11,\r
+     299,  -395,   -37,  -395,   299,  -395,   296,  -395,   297,  -395,\r
+    -395\r
 };\r
 \r
+/* YYPGOTO[NTERM-NUM].  */\r
 static const short yypgoto[] =\r
 {\r
-  -32768,-32768,   406,  -218,    12,-32768,-32768,   121,-32768,-32768,\r
-  -32768,  -326,-32768,-32768,   -16,  -357,-32768,    -8,    -1,-32768,\r
-    -185,-32768,-32768,-32768,-32768,-32768,-32768,   125,     5,   231,\r
-    -338,  -161,-32768,  -181,-32768,   242,  -377,  -200,   131,-32768,\r
-     126,   -64,-32768,   140,    37,-32768,-32768,   432,-32768,-32768,\r
-     -11,-32768,-32768,-32768,-32768,-32768,   -10,-32768,   439,     4,\r
-  -32768,-32768,   440,   198,  -239,-32768,   243,    10,     1,-32768,\r
-       3,-32768\r
+    -395,  -395,  -395,   414,  -211,     7,  -395,  -395,   147,  -395,\r
+    -395,  -395,  -325,  -395,  -395,    -6,  -370,  -395,    -9,    -2,\r
+    -395,  -202,  -395,  -395,  -395,  -395,  -395,  -395,   133,     4,\r
+    -395,  -178,  -395,  -177,  -395,   250,  -394,  -219,   152,  -395,\r
+      17,   -60,  -395,    64,    44,  -395,  -395,   439,  -395,  -395,\r
+     -17,  -395,  -395,  -395,  -395,  -395,   -14,  -395,   444,     0,\r
+    -395,  -395,   445,   209,  -236,  -167,   252,     9,    -3,  -395,\r
+       2,  -395\r
 };\r
 \r
-\r
-#define        YYLAST          934\r
-\r
-\r
+/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If\r
+   positive, shift that token.  If negative, reduce the rule which\r
+   number is the opposite.  If zero, do what YYDEFACT says.\r
+   If YYTABLE_NINF, syntax error.  */\r
+#define YYTABLE_NINF -168\r
 static const short yytable[] =\r
 {\r
-      20,   182,    78,    65,    37,    32,    22,   321,   322,   149,\r
-     150,    35,   267,    14,   436,   271,   272,   305,   300,   275,\r
-     402,   277,     4,   245,   176,   177,   437,   333,   334,   294,\r
-     189,   283,   302,    68,    69,  -168,    67,   178,   333,   334,\r
-     144,   214,   427,   165,   282,    73,   282,   287,   333,   334,\r
-     284,     4,   324,   342,     8,   358,   310,   358,    74,   215,\r
-     428,   190,   255,    41,   256,   257,  -168,   343,   -35,   359,\r
-     454,   361,   167,   314,   185,   144,   458,   423,    13,   188,\r
-      13,   179,   -35,     8,   386,   145,     4,   314,   452,   146,\r
-     171,   315,    13,   456,    48,   175,    70,    71,   328,   329,\r
-     330,   331,   333,   334,   314,    49,    50,    13,   325,    13,\r
-     369,    51,   155,   451,   333,   334,   180,   415,     8,   246,\r
-     242,   243,    75,    76,   146,   457,   438,   254,   152,   459,\r
-     455,    52,   381,   404,   415,    77,    55,    80,   181,   278,\r
-     153,   218,   218,   154,   157,    37,    37,    22,    22,   166,\r
-      71,   161,    35,    35,   217,   217,   339,   340,   406,   258,\r
-     341,   400,   335,   336,   337,   338,   339,   340,   156,   418,\r
-     158,   341,   391,   392,   393,   394,   395,   396,   397,   398,\r
-     399,   341,    77,    80,   159,   259,   162,   260,   163,   261,\r
-     164,   169,   170,   183,   262,   172,   445,   282,   184,   426,\r
-     173,    71,   174,    71,   186,   450,   187,   149,   150,   191,\r
-     288,   289,   224,   225,   293,   192,   335,   336,   337,   338,\r
-     339,   340,   297,   193,   301,   227,   228,   226,   362,   413,\r
-     337,   338,   339,   340,   194,   341,   316,   233,   234,    37,\r
-      38,    22,   195,   317,   301,   316,    35,   341,   242,   296,\r
-      13,   196,   317,   420,   282,   197,    39,   198,    40,   199,\r
-     329,   374,    13,   332,    41,   200,   440,   201,    42,   202,\r
-     203,   204,   205,   206,   207,   446,   208,   209,    43,     2,\r
-     448,   229,    44,    45,     3,   210,    46,   211,    47,   212,\r
-     213,   231,   268,     5,   235,    48,     6,  -168,   237,   238,\r
-     252,   370,   372,   269,   273,   274,    49,    50,    37,   378,\r
-      22,     7,    51,   276,   279,    35,   290,   372,   291,   382,\r
-     295,   299,   304,   411,   312,   311,   313,   326,   388,   323,\r
-     176,   177,    52,    53,    54,   327,   357,    55,   366,   344,\r
-     345,    56,   346,   178,   347,   373,   348,    57,   349,    58,\r
-     350,   351,     9,   352,   429,    60,   353,    10,    11,   245,\r
-     371,   354,   355,   356,    38,   360,   363,   333,   334,   364,\r
-     403,   365,   379,   333,   334,    13,   367,   368,     7,   383,\r
-      39,    12,    40,   384,   385,   306,    13,   179,    41,   387,\r
-     390,   401,    42,   333,   334,   341,   407,   405,   333,   334,\r
-     409,   412,    43,   415,   419,   424,    44,    45,   441,    37,\r
-      46,    22,    47,   442,   443,   447,    35,   460,   461,    48,\r
-     463,   464,   180,   434,   143,   376,   255,   449,   256,   257,\r
-      49,    50,   253,    25,   375,   444,    51,   380,   286,   316,\r
-      31,    34,   434,   320,   181,   316,   317,     0,     0,   285,\r
-     434,     0,   317,     0,   434,   246,    52,    53,    54,     0,\r
-       0,    55,   247,     0,     0,    56,     0,     0,     0,     0,\r
-       0,    57,   255,    58,   256,   257,   266,     0,    59,    60,\r
-       0,   335,   336,   337,   338,   339,   340,   335,   336,   337,\r
-     338,   339,   340,   389,     0,     0,     0,     0,     0,    13,\r
-     341,     0,     0,     0,   414,     0,   341,   335,   336,   337,\r
-     338,   339,   340,   336,   337,   338,   339,   340,   255,    38,\r
-     256,   257,     0,   258,   453,     0,   341,     0,     0,     0,\r
-     255,   341,   256,   257,   270,    39,     0,    40,   255,     0,\r
-     256,   257,     0,    41,     0,     0,     0,    42,     0,   259,\r
-       0,   260,     0,   261,     0,     0,     0,    43,   262,     0,\r
-       0,    44,    45,     0,     0,    46,     0,    47,     0,   258,\r
-       0,     0,     0,     0,    48,     0,     0,   216,     0,     0,\r
-       0,     0,     0,     0,     0,    49,    50,     0,     0,     0,\r
-       0,    51,     0,     0,     0,   259,     0,   260,     0,   261,\r
-       2,     0,     0,     0,   262,     3,     0,     0,     4,     0,\r
-       0,    52,    53,    54,     5,   258,    55,     6,     0,     0,\r
-      56,     0,     0,     0,     0,     0,    57,   258,    58,     0,\r
-       0,     0,     7,    59,    60,   258,     0,     0,     0,     0,\r
-       8,   259,     0,   260,     0,   261,     0,     0,    38,     0,\r
-     262,     0,     0,   259,     0,   260,     0,   261,     0,     0,\r
-       0,   259,   262,   421,    39,   261,    40,     0,     0,     0,\r
-     262,     0,    41,     9,     0,     0,    42,     0,    10,    11,\r
-       0,     0,     0,     0,     0,     0,    43,     2,     0,     0,\r
-      44,    45,     3,     0,    46,     4,    47,     0,     0,     0,\r
-       0,     5,    12,    48,     6,     0,     0,    13,     0,     0,\r
-       0,     0,     0,     0,    49,    50,     0,     0,     2,     7,\r
-      51,     0,     0,     3,     0,     0,     4,     8,     0,     2,\r
-       0,     0,     5,     0,     3,     6,     0,     0,     0,     2,\r
-      52,    53,    54,     5,     3,    55,     6,     0,     0,    56,\r
-       7,     0,     0,     5,     0,    57,     6,    58,     8,     0,\r
-       9,     7,    59,    60,     0,    10,    11,     0,     0,     0,\r
-       0,     7,     0,     0,     0,     0,     0,     0,     0,     0,\r
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    12,\r
-       0,     9,     0,   223,    13,     0,    10,    11,     0,     0,\r
-       0,     0,     9,     0,     0,     0,     0,    10,    11,     0,\r
-       0,     0,     9,     0,     0,     0,     0,    10,    11,     0,\r
-      12,     0,     0,     0,     0,    13,     0,     0,     0,     0,\r
-      81,    12,    82,     0,     0,   377,    13,     0,    83,     0,\r
-      84,    12,     0,     0,     0,   417,    13,    85,    86,    87,\r
-      88,     0,    89,    90,     0,    91,     0,    92,    93,    94,\r
-       0,     0,    95,     0,     0,    96,     0,    97,    98,    99,\r
-     100,   101,   102,     0,   103,   104,   105,   106,     0,     0,\r
-     107,     0,     0,   108,     0,     0,     0,   109,     0,   110,\r
-       0,     0,     0,   111,   112,   113,   114,   115,   116,   117,\r
-       0,   118,   119,   120,   121,   122,   123,   124,   125,   126,\r
-       0,     0,     0,   127,     0,     0,   128,     0,   129,     0,\r
-       0,   130,   131,   132,     0,     0,   133,     0,   134,   135,\r
-     136,   137,     0,     0,   138\r
+      22,    67,    34,    80,    39,   151,    24,   184,   152,    16,\r
+     247,    37,   321,   322,   294,   302,   178,   179,   269,   435,\r
+     300,   273,   274,    43,   191,   277,   305,   279,    79,   180,\r
+      82,   436,   287,   333,   334,   324,  -167,   342,   283,   323,\r
+     282,   167,   286,   216,   257,   146,   258,   259,     6,   146,\r
+     323,   343,   453,   358,    50,   192,     6,   284,   457,     3,\r
+       6,   217,   310,   426,   360,    51,    52,  -167,   333,   334,\r
+      69,    53,   187,   181,   451,    79,    82,   190,    75,   455,\r
+      10,   427,    15,   328,   329,   330,   331,   385,    10,   -36,\r
+     147,    54,    10,   368,   148,    76,    57,   314,   148,   173,\r
+     333,   334,    15,   -36,   177,    15,   248,   154,   182,   314,\r
+     333,   334,   450,   315,    15,   314,   413,   171,   172,   325,\r
+      15,   174,    70,    71,   454,   456,   244,   245,   413,   458,\r
+     183,   437,   169,   256,   185,   402,   380,    72,    73,    77,\r
+      78,   260,   220,   220,   155,   280,    39,    39,    24,    24,\r
+     193,   219,   219,    37,    37,   390,   391,   392,   393,   394,\r
+     395,   396,   397,   398,   404,   399,   341,   261,   156,   262,\r
+     416,   263,   157,   333,   334,   159,   264,   333,   334,   168,\r
+      73,   425,   335,   336,   337,   338,   339,   340,   175,    73,\r
+     176,    73,   226,   227,   361,   229,   230,   158,   444,   235,\r
+     236,   341,   160,   151,   296,    15,   152,   449,   288,   289,\r
+     161,   411,   293,   163,   335,   336,   337,   338,   339,   340,\r
+     164,   333,   334,   297,   186,   301,   388,   165,   339,   340,\r
+     373,    15,   166,   341,   418,   422,   188,   316,   189,   194,\r
+      39,   329,    24,   341,   317,   301,   316,    37,   439,   333,\r
+     334,   195,   244,   317,   228,   196,   197,   445,   198,   199,\r
+     200,   332,   447,   201,   202,   203,   204,   205,   333,   334,\r
+     206,   270,   207,   208,   209,   210,   211,   212,   213,   214,\r
+     215,   233,   257,   231,   258,   259,   268,   335,   336,   337,\r
+     338,   339,   340,   337,   338,   339,   340,   369,   371,   237,\r
+     239,  -167,   240,    40,   412,   377,   341,    39,   254,    24,\r
+     341,   271,   275,   371,    37,   276,   278,   281,   381,    41,\r
+     290,    42,   291,   295,   387,   312,   409,    43,   304,   299,\r
+     323,    44,   311,   326,   327,   335,   336,   337,   338,   339,\r
+     340,    45,   313,   344,   357,    46,    47,   370,   345,    48,\r
+     346,    49,   452,   347,   341,   348,   349,   350,    50,   351,\r
+     352,   353,   354,   335,   336,   337,   338,   339,   340,    51,\r
+      52,   355,   356,   359,   362,    53,   363,   364,   365,   260,\r
+     366,   367,   341,   336,   337,   338,   339,   340,   372,     9,\r
+     378,   382,   341,   383,   401,    54,    55,    56,   384,   386,\r
+      57,   341,   389,   400,    58,   261,    39,   262,    24,   263,\r
+      59,    40,    60,    37,   264,   403,   405,   428,    62,   407,\r
+     410,   433,   413,   417,   423,   442,   440,    41,   441,    42,\r
+     443,   446,   459,   460,   145,    43,   448,   316,    15,    44,\r
+     433,    27,   255,   316,   317,   379,    33,    36,   433,    45,\r
+     317,   375,   433,    46,    47,   374,   320,    48,     0,    49,\r
+     285,   257,     0,   258,   259,   272,    50,   257,    40,   258,\r
+     259,     0,     0,   257,     0,   258,   259,    51,    52,     0,\r
+       0,     0,     0,    53,    41,     0,    42,     0,   178,   179,\r
+       0,     0,    43,     0,     0,     0,    44,     0,     0,     0,\r
+       0,   180,     0,    54,    55,    56,    45,     0,    57,     0,\r
+      46,    47,    58,   218,    48,     0,    49,   247,    59,   257,\r
+      60,   258,   259,    50,     0,    61,    62,     0,     0,     0,\r
+       0,     0,     0,     0,    51,    52,     4,     0,     0,     0,\r
+      53,     5,     0,     0,     6,   181,    15,     0,     0,     0,\r
+       7,     0,     0,     8,     0,     0,     0,     0,   260,     0,\r
+      54,    55,    56,     0,   260,    57,     0,     0,     9,    58,\r
+     260,     0,     0,     0,     0,    59,    10,    60,     0,     0,\r
+     182,     0,    61,    62,   261,     0,   262,     0,   263,     0,\r
+     261,     0,   262,   264,   263,     0,   261,     0,   262,   264,\r
+     263,     0,   183,     0,     0,   264,     0,    40,     0,    11,\r
+       0,     0,     0,   248,    12,    13,   260,     0,     0,     0,\r
+     249,     0,     0,    41,     0,    42,     0,     0,     0,     0,\r
+       0,    43,     0,     0,     0,    44,     0,     0,    14,     0,\r
+       0,     0,   261,    15,   419,    45,   263,     0,     0,    46,\r
+      47,   264,     4,    48,     0,    49,     0,     5,     0,     0,\r
+       6,     0,    50,     4,     0,     0,     7,     0,     5,     8,\r
+       0,     6,     0,    51,    52,     0,     0,     7,     0,    53,\r
+       8,     0,     0,     0,     9,     0,     0,     0,     4,     0,\r
+       0,     0,    10,     5,     0,     9,     0,     0,     0,    54,\r
+      55,    56,     7,    10,    57,     8,     0,     0,    58,     0,\r
+       0,     0,     0,     0,    59,     0,    60,     0,     4,     0,\r
+       9,    61,    62,     5,     0,    11,     0,     0,     0,     0,\r
+      12,    13,     7,     0,     0,     8,    11,     0,     0,     4,\r
+       0,    12,    13,     0,     5,     0,     0,     0,     0,     0,\r
+       9,     0,     0,     7,    14,     0,     8,     0,   225,    15,\r
+       0,    11,     0,     0,     0,    14,    12,    13,     0,     0,\r
+      15,     9,     0,     0,     0,     0,     0,     0,     0,     0,\r
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,\r
+      14,    11,     0,     0,   306,    15,    12,    13,     0,     0,\r
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,\r
+       0,     0,    11,     0,     0,     0,     0,    12,    13,     0,\r
+      14,     0,     0,     0,   376,    15,     0,     0,     0,     0,\r
+      83,     0,    84,     0,     0,     0,     0,     0,    85,     0,\r
+      86,    14,     0,     0,     0,   415,    15,    87,    88,    89,\r
+      90,     0,    91,    92,     0,    93,     0,    94,    95,    96,\r
+       0,     0,    97,     0,     0,    98,     0,    99,   100,   101,\r
+     102,   103,   104,     0,   105,   106,   107,   108,     0,     0,\r
+     109,     0,     0,   110,     0,     0,     0,   111,     0,   112,\r
+       0,     0,     0,   113,   114,   115,   116,   117,   118,   119,\r
+       0,   120,   121,   122,   123,   124,   125,   126,   127,   128,\r
+       0,     0,     0,   129,     0,     0,   130,     0,   131,     0,\r
+       0,   132,   133,   134,     0,     0,   135,     0,   136,   137,\r
+     138,   139,     0,     0,   140\r
 };\r
 \r
 static const short yycheck[] =\r
 {\r
-       1,    65,    10,     2,     1,     1,     1,   246,   247,    20,\r
-      20,     1,   193,     1,    26,   196,   197,   235,    77,   200,\r
-     358,   202,    40,    32,     3,     4,    38,    10,    11,   214,\r
-     106,    93,   232,     3,     4,   106,   135,    16,    10,    11,\r
-      29,   122,   122,    42,   205,    32,   207,   208,    10,    11,\r
-     112,    40,   252,   122,    72,   122,   237,   122,     7,   140,\r
-     140,   137,     3,    28,     5,     6,   137,   136,   122,   136,\r
-     447,   136,    70,   134,    73,    29,   453,   415,   139,    78,\r
-     139,    60,   136,    72,   323,    74,    40,   134,   445,    78,\r
-      53,   138,   139,   450,    59,    58,     3,     4,   259,   260,\r
-     261,   262,    10,    11,   134,    70,    71,   139,   138,   139,\r
-     295,    76,   137,   135,    10,    11,    95,   139,    72,   128,\r
-     184,   185,     3,     4,    78,   451,   138,   191,   134,   455,\r
-     135,    96,   313,   372,   139,     9,   101,    11,   117,   203,\r
-     134,   142,   143,   134,   137,   142,   143,   142,   143,     3,\r
-       4,   137,   142,   143,   142,   143,   128,   129,   376,   100,\r
-     143,   342,   124,   125,   126,   127,   128,   129,   134,   408,\r
-     134,   143,   333,   334,   335,   336,   337,   338,   339,   340,\r
-     341,   143,    56,    57,   141,   126,   134,   128,   134,   130,\r
-     134,    51,    52,     7,   135,    55,   435,   358,   137,   140,\r
-       3,     4,     3,     4,   134,   444,   137,   218,   218,   135,\r
-     209,   210,     3,     4,   213,   135,   124,   125,   126,   127,\r
-     128,   129,   230,   135,   232,     3,     4,     3,   136,   390,\r
-     126,   127,   128,   129,   135,   143,   244,     3,     4,   236,\r
-       4,   236,   135,   244,   252,   253,   236,   143,   312,   138,\r
-     139,   135,   253,   414,   415,   135,    20,   135,    22,   135,\r
-     421,   138,   139,   262,    28,   135,   427,   135,    32,   135,\r
-     135,   135,   135,   135,   135,   436,   135,   135,    42,    32,\r
-     441,   137,    46,    47,    37,   135,    50,   135,    52,   135,\r
-     135,    86,     7,    46,   137,    59,    49,   137,   142,   136,\r
-     135,   297,   301,     7,     7,     7,    70,    71,   305,   308,\r
-     305,    64,    76,     7,    52,   305,     8,   316,     5,   316,\r
-     139,   141,   137,   387,   122,   138,   142,   136,   327,   122,\r
-       3,     4,    96,    97,    98,   135,     3,   101,   144,   136,\r
-     136,   105,   136,    16,   136,   134,   136,   111,   136,   113,\r
-     136,   136,   105,   136,   118,   119,   136,   110,   111,    32,\r
-     141,   136,   136,   136,     4,   136,   136,    10,    11,   136,\r
-       5,   136,   134,    10,    11,   139,   136,   136,    64,   134,\r
-      20,   134,    22,   134,   136,   138,   139,    60,    28,   136,\r
-     136,   136,    32,    10,    11,   143,   103,   134,    10,    11,\r
-     134,   136,    42,   139,   137,   135,    46,    47,   139,   406,\r
-      50,   406,    52,   136,   122,   141,   406,   136,   136,    59,\r
-       0,     0,    95,   424,    18,   304,     3,   443,     5,     6,\r
-      70,    71,   190,     1,   303,   434,    76,   312,   207,   447,\r
-       1,     1,   443,   245,   117,   453,   447,    -1,    -1,   206,\r
-     451,    -1,   453,    -1,   455,   128,    96,    97,    98,    -1,\r
-      -1,   101,   135,    -1,    -1,   105,    -1,    -1,    -1,    -1,\r
-      -1,   111,     3,   113,     5,     6,     7,    -1,   118,   119,\r
-      -1,   124,   125,   126,   127,   128,   129,   124,   125,   126,\r
-     127,   128,   129,   136,    -1,    -1,    -1,    -1,    -1,   139,\r
-     143,    -1,    -1,    -1,   141,    -1,   143,   124,   125,   126,\r
-     127,   128,   129,   125,   126,   127,   128,   129,     3,     4,\r
-       5,     6,    -1,   100,   141,    -1,   143,    -1,    -1,    -1,\r
-       3,   143,     5,     6,     7,    20,    -1,    22,     3,    -1,\r
-       5,     6,    -1,    28,    -1,    -1,    -1,    32,    -1,   126,\r
-      -1,   128,    -1,   130,    -1,    -1,    -1,    42,   135,    -1,\r
-      -1,    46,    47,    -1,    -1,    50,    -1,    52,    -1,   100,\r
-      -1,    -1,    -1,    -1,    59,    -1,    -1,     9,    -1,    -1,\r
-      -1,    -1,    -1,    -1,    -1,    70,    71,    -1,    -1,    -1,\r
-      -1,    76,    -1,    -1,    -1,   126,    -1,   128,    -1,   130,\r
-      32,    -1,    -1,    -1,   135,    37,    -1,    -1,    40,    -1,\r
-      -1,    96,    97,    98,    46,   100,   101,    49,    -1,    -1,\r
-     105,    -1,    -1,    -1,    -1,    -1,   111,   100,   113,    -1,\r
-      -1,    -1,    64,   118,   119,   100,    -1,    -1,    -1,    -1,\r
-      72,   126,    -1,   128,    -1,   130,    -1,    -1,     4,    -1,\r
-     135,    -1,    -1,   126,    -1,   128,    -1,   130,    -1,    -1,\r
-      -1,   126,   135,   128,    20,   130,    22,    -1,    -1,    -1,\r
-     135,    -1,    28,   105,    -1,    -1,    32,    -1,   110,   111,\r
-      -1,    -1,    -1,    -1,    -1,    -1,    42,    32,    -1,    -1,\r
-      46,    47,    37,    -1,    50,    40,    52,    -1,    -1,    -1,\r
-      -1,    46,   134,    59,    49,    -1,    -1,   139,    -1,    -1,\r
-      -1,    -1,    -1,    -1,    70,    71,    -1,    -1,    32,    64,\r
-      76,    -1,    -1,    37,    -1,    -1,    40,    72,    -1,    32,\r
-      -1,    -1,    46,    -1,    37,    49,    -1,    -1,    -1,    32,\r
-      96,    97,    98,    46,    37,   101,    49,    -1,    -1,   105,\r
-      64,    -1,    -1,    46,    -1,   111,    49,   113,    72,    -1,\r
-     105,    64,   118,   119,    -1,   110,   111,    -1,    -1,    -1,\r
-      -1,    64,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,\r
-      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   134,\r
-      -1,   105,    -1,   138,   139,    -1,   110,   111,    -1,    -1,\r
-      -1,    -1,   105,    -1,    -1,    -1,    -1,   110,   111,    -1,\r
+       2,     4,     2,    12,     2,    22,     2,    67,    22,     2,\r
+      32,     2,   248,   249,   216,   234,     3,     4,   195,    26,\r
+      77,   198,   199,    28,   106,   202,   237,   204,    11,    16,\r
+      13,    38,   210,    10,    11,   254,   106,   122,    93,   122,\r
+     207,    44,   209,   122,     3,    29,     5,     6,    40,    29,\r
+     122,   136,   446,   136,    59,   137,    40,   112,   452,     0,\r
+      40,   140,   239,   122,   136,    70,    71,   137,    10,    11,\r
+     135,    76,    75,    60,   444,    58,    59,    80,    32,   449,\r
+      72,   140,   139,   261,   262,   263,   264,   323,    72,   122,\r
+      74,    96,    72,   295,    78,     7,   101,   134,    78,    55,\r
+      10,    11,   139,   136,    60,   139,   128,   134,    95,   134,\r
+      10,    11,   135,   138,   139,   134,   139,    53,    54,   138,\r
+     139,    57,     3,     4,   135,   450,   186,   187,   139,   454,\r
+     117,   138,    70,   193,     7,   371,   313,     3,     4,     3,\r
+       4,   100,   144,   145,   134,   205,   144,   145,   144,   145,\r
+     135,   144,   145,   144,   145,   333,   334,   335,   336,   337,\r
+     338,   339,   340,   341,   375,   342,   143,   126,   134,   128,\r
+     406,   130,   137,    10,    11,   137,   135,    10,    11,     3,\r
+       4,   140,   124,   125,   126,   127,   128,   129,     3,     4,\r
+       3,     4,     3,     4,   136,     3,     4,   134,   434,     3,\r
+       4,   143,   134,   220,   138,   139,   220,   443,   211,   212,\r
+     141,   389,   215,   137,   124,   125,   126,   127,   128,   129,\r
+     134,    10,    11,   232,   137,   234,   136,   134,   128,   129,\r
+     138,   139,   134,   143,   412,   413,   134,   246,   137,   135,\r
+     238,   419,   238,   143,   246,   254,   255,   238,   426,    10,\r
+      11,   135,   312,   255,     3,   135,   135,   435,   135,   135,\r
+     135,   264,   440,   135,   135,   135,   135,   135,    10,    11,\r
+     135,     7,   135,   135,   135,   135,   135,   135,   135,   135,\r
+     135,    86,     3,   137,     5,     6,     7,   124,   125,   126,\r
+     127,   128,   129,   126,   127,   128,   129,   297,   301,   137,\r
+     142,   137,   136,     4,   141,   308,   143,   305,   135,   305,\r
+     143,     7,     7,   316,   305,     7,     7,    52,   316,    20,\r
+       8,    22,     5,   139,   327,   122,   386,    28,   137,   141,\r
+     122,    32,   138,   136,   135,   124,   125,   126,   127,   128,\r
+     129,    42,   142,   136,     3,    46,    47,   141,   136,    50,\r
+     136,    52,   141,   136,   143,   136,   136,   136,    59,   136,\r
+     136,   136,   136,   124,   125,   126,   127,   128,   129,    70,\r
+      71,   136,   136,   136,   136,    76,   136,   136,   144,   100,\r
+     136,   136,   143,   125,   126,   127,   128,   129,   134,    64,\r
+     134,   134,   143,   134,     5,    96,    97,    98,   136,   136,\r
+     101,   143,   136,   136,   105,   126,   404,   128,   404,   130,\r
+     111,     4,   113,   404,   135,   134,   103,   118,   119,   134,\r
+     136,   423,   139,   137,   135,   122,   139,    20,   136,    22,\r
+     433,   141,   136,   136,    20,    28,   442,   446,   139,    32,\r
+     442,     2,   192,   452,   446,   312,     2,     2,   450,    42,\r
+     452,   304,   454,    46,    47,   303,   247,    50,    -1,    52,\r
+     208,     3,    -1,     5,     6,     7,    59,     3,     4,     5,\r
+       6,    -1,    -1,     3,    -1,     5,     6,    70,    71,    -1,\r
+      -1,    -1,    -1,    76,    20,    -1,    22,    -1,     3,     4,\r
+      -1,    -1,    28,    -1,    -1,    -1,    32,    -1,    -1,    -1,\r
+      -1,    16,    -1,    96,    97,    98,    42,    -1,   101,    -1,\r
+      46,    47,   105,     9,    50,    -1,    52,    32,   111,     3,\r
+     113,     5,     6,    59,    -1,   118,   119,    -1,    -1,    -1,\r
+      -1,    -1,    -1,    -1,    70,    71,    32,    -1,    -1,    -1,\r
+      76,    37,    -1,    -1,    40,    60,   139,    -1,    -1,    -1,\r
+      46,    -1,    -1,    49,    -1,    -1,    -1,    -1,   100,    -1,\r
+      96,    97,    98,    -1,   100,   101,    -1,    -1,    64,   105,\r
+     100,    -1,    -1,    -1,    -1,   111,    72,   113,    -1,    -1,\r
+      95,    -1,   118,   119,   126,    -1,   128,    -1,   130,    -1,\r
+     126,    -1,   128,   135,   130,    -1,   126,    -1,   128,   135,\r
+     130,    -1,   117,    -1,    -1,   135,    -1,     4,    -1,   105,\r
+      -1,    -1,    -1,   128,   110,   111,   100,    -1,    -1,    -1,\r
+     135,    -1,    -1,    20,    -1,    22,    -1,    -1,    -1,    -1,\r
+      -1,    28,    -1,    -1,    -1,    32,    -1,    -1,   134,    -1,\r
+      -1,    -1,   126,   139,   128,    42,   130,    -1,    -1,    46,\r
+      47,   135,    32,    50,    -1,    52,    -1,    37,    -1,    -1,\r
+      40,    -1,    59,    32,    -1,    -1,    46,    -1,    37,    49,\r
+      -1,    40,    -1,    70,    71,    -1,    -1,    46,    -1,    76,\r
+      49,    -1,    -1,    -1,    64,    -1,    -1,    -1,    32,    -1,\r
+      -1,    -1,    72,    37,    -1,    64,    -1,    -1,    -1,    96,\r
+      97,    98,    46,    72,   101,    49,    -1,    -1,   105,    -1,\r
+      -1,    -1,    -1,    -1,   111,    -1,   113,    -1,    32,    -1,\r
+      64,   118,   119,    37,    -1,   105,    -1,    -1,    -1,    -1,\r
+     110,   111,    46,    -1,    -1,    49,   105,    -1,    -1,    32,\r
+      -1,   110,   111,    -1,    37,    -1,    -1,    -1,    -1,    -1,\r
+      64,    -1,    -1,    46,   134,    -1,    49,    -1,   138,   139,\r
+      -1,   105,    -1,    -1,    -1,   134,   110,   111,    -1,    -1,\r
+     139,    64,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,\r
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,\r
+     134,   105,    -1,    -1,   138,   139,   110,   111,    -1,    -1,\r
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,\r
       -1,    -1,   105,    -1,    -1,    -1,    -1,   110,   111,    -1,\r
-     134,    -1,    -1,    -1,    -1,   139,    -1,    -1,    -1,    -1,\r
-      16,   134,    18,    -1,    -1,   138,   139,    -1,    24,    -1,\r
+     134,    -1,    -1,    -1,   138,   139,    -1,    -1,    -1,    -1,\r
+      16,    -1,    18,    -1,    -1,    -1,    -1,    -1,    24,    -1,\r
       26,   134,    -1,    -1,    -1,   138,   139,    33,    34,    35,\r
       36,    -1,    38,    39,    -1,    41,    -1,    43,    44,    45,\r
       -1,    -1,    48,    -1,    -1,    51,    -1,    53,    54,    55,\r
@@ -892,144 +1225,60 @@ static const short yycheck[] =
       -1,   107,   108,   109,    -1,    -1,   112,    -1,   114,   115,\r
      116,   117,    -1,    -1,   120\r
 };\r
-/* -*-C-*-  Note some compilers choke on comments on `#line' lines.  */\r
-#line 3 "/usr/share/bison/bison.simple"\r
-\r
-/* Skeleton output parser for bison,\r
-\r
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software\r
-   Foundation, Inc.\r
-\r
-   This program is free software; you can redistribute it and/or modify\r
-   it under the terms of the GNU General Public License as published by\r
-   the Free Software Foundation; either version 2, or (at your option)\r
-   any later version.\r
-\r
-   This program is distributed in the hope that it will be useful,\r
-   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
-   GNU General Public License for more details.\r
-\r
-   You should have received a copy of the GNU General Public License\r
-   along with this program; if not, write to the Free Software\r
-   Foundation, Inc., 59 Temple Place - Suite 330,\r
-   Boston, MA 02111-1307, USA.  */\r
-\r
-/* As a special exception, when this file is copied by Bison into a\r
-   Bison output file, you may use that output file without restriction.\r
-   This special exception was added by the Free Software Foundation\r
-   in version 1.24 of Bison.  */\r
-\r
-/* This is the parser code that is written into each bison parser when\r
-   the %semantic_parser declaration is not specified in the grammar.\r
-   It was written by Richard Stallman by simplifying the hairy parser\r
-   used when %semantic_parser is specified.  */\r
-\r
-/* All symbols defined below should begin with yy or YY, to avoid\r
-   infringing on user name space.  This should be done even for local\r
-   variables, as they might otherwise be expanded by user macros.\r
-   There are some unavoidable exceptions within include files to\r
-   define necessary library symbols; they are noted "INFRINGES ON\r
-   USER NAME SPACE" below.  */\r
-\r
-#if ! defined (yyoverflow) || defined (YYERROR_VERBOSE)\r
-\r
-/* The parser invokes alloca or malloc; define the necessary symbols.  */\r
-\r
-# if YYSTACK_USE_ALLOCA\r
-#  define YYSTACK_ALLOC alloca\r
-# else\r
-#  ifndef YYSTACK_USE_ALLOCA\r
-#   if defined (alloca) || defined (_ALLOCA_H)\r
-#    define YYSTACK_ALLOC alloca\r
-#   else\r
-#    ifdef __GNUC__\r
-#     define YYSTACK_ALLOC __builtin_alloca\r
-#    endif\r
-#   endif\r
-#  endif\r
-# endif\r
-\r
-# ifdef YYSTACK_ALLOC\r
-   /* Pacify GCC's `empty if-body' warning. */\r
-#  define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)\r
-# else\r
-#  if defined (__STDC__) || defined (__cplusplus)\r
-#   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */\r
-#   define YYSIZE_T size_t\r
-#  endif\r
-#  define YYSTACK_ALLOC malloc\r
-#  define YYSTACK_FREE free\r
-# endif\r
-#endif /* ! defined (yyoverflow) || defined (YYERROR_VERBOSE) */\r
-\r
 \r
-#if (! defined (yyoverflow) \\r
-     && (! defined (__cplusplus) \\r
-        || (YYLTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))\r
-\r
-/* A type that is properly aligned for any stack member.  */\r
-union yyalloc\r
+/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing\r
+   symbol of state STATE-NUM.  */\r
+static const unsigned char yystos[] =\r
 {\r
-  short yyss;\r
-  YYSTYPE yyvs;\r
-# if YYLSP_NEEDED\r
-  YYLTYPE yyls;\r
-# endif\r
+       0,   146,   147,     0,    32,    37,    40,    46,    49,    64,\r
+      72,   105,   110,   111,   134,   139,   150,   151,   152,   153,\r
+     155,   156,   164,   170,   174,   179,   191,   192,   195,   196,\r
+     199,   201,   202,   203,   204,   206,   207,   212,   214,   215,\r
+       4,    20,    22,    28,    32,    42,    46,    47,    50,    52,\r
+      59,    70,    71,    76,    96,    97,    98,   101,   105,   111,\r
+     113,   118,   119,   174,   187,   189,   212,   213,   215,   135,\r
+       3,     4,     3,     4,   185,    32,     7,     3,     4,   185,\r
+     163,   164,   185,    16,    18,    24,    26,    33,    34,    35,\r
+      36,    38,    39,    41,    43,    44,    45,    48,    51,    53,\r
+      54,    55,    56,    57,    58,    60,    61,    62,    63,    66,\r
+      69,    73,    75,    79,    80,    81,    82,    83,    84,    85,\r
+      87,    88,    89,    90,    91,    92,    93,    94,    95,    99,\r
+     102,   104,   107,   108,   109,   112,   114,   115,   116,   117,\r
+     120,   165,   166,   211,   148,   148,    29,    74,    78,   154,\r
+     190,   195,   201,   205,   134,   134,   134,   137,   134,   137,\r
+     134,   141,   200,   137,   134,   134,   134,   213,     3,    70,\r
+     188,   188,   188,   189,   188,     3,     3,   189,     3,     4,\r
+      16,    60,    95,   117,   186,     7,   137,   213,   134,   137,\r
+     213,   106,   137,   135,   135,   135,   135,   135,   135,   135,\r
+     135,   135,   135,   135,   135,   135,   135,   135,   135,   135,\r
+     135,   135,   135,   135,   135,   135,   122,   140,     9,   150,\r
+     164,   192,   203,   204,   207,   138,     3,     4,     3,     3,\r
+       4,   137,   193,    86,   197,     3,     4,   137,   149,   142,\r
+     136,   171,   172,   173,   186,   186,   180,    32,   128,   135,\r
+     186,   208,   209,   210,   135,   180,   186,     3,     5,     6,\r
+     100,   126,   128,   130,   135,   176,   177,   178,     7,   178,\r
+       7,     7,     7,   178,   178,     7,     7,   178,     7,   178,\r
+     186,    52,   210,    93,   112,   211,   210,   176,   213,   213,\r
+       8,     5,   216,   213,   166,   139,   138,   163,   194,   141,\r
+      77,   163,   182,   198,   137,   149,   138,   150,   163,   183,\r
+     178,   138,   122,   142,   134,   138,   163,   164,   181,   182,\r
+     208,   209,   209,   122,   182,   138,   136,   135,   176,   176,\r
+     176,   176,   213,    10,    11,   124,   125,   126,   127,   128,\r
+     129,   143,   122,   136,   136,   136,   136,   136,   136,   136,\r
+     136,   136,   136,   136,   136,   136,   136,     3,   136,   136,\r
+     136,   136,   136,   136,   136,   144,   136,   136,   166,   204,\r
+     141,   213,   134,   138,   183,   153,   138,   213,   134,   173,\r
+     178,   215,   134,   134,   136,   209,   136,   213,   136,   136,\r
+     176,   176,   176,   176,   176,   176,   176,   176,   176,   178,\r
+     136,     5,   209,   134,   149,   103,   167,   134,   184,   186,\r
+     136,   176,   141,   139,   161,   138,   209,   137,   176,   128,\r
+     162,   175,   176,   135,   168,   140,   122,   140,   118,   157,\r
+     158,   159,   160,   164,   213,    26,    38,   138,   169,   176,\r
+     139,   136,   122,   213,   209,   176,   141,   176,   160,   209,\r
+     135,   161,   141,   181,   135,   161,   157,   181,   157,   136,\r
+     136\r
 };\r
 \r
-/* The size of the maximum gap between one aligned stack and the next.  */\r
-# define YYSTACK_GAP_MAX (sizeof (union yyalloc) - 1)\r
-\r
-/* The size of an array large to enough to hold all stacks, each with\r
-   N elements.  */\r
-# if YYLSP_NEEDED\r
-#  define YYSTACK_BYTES(N) \\r
-     ((N) * (sizeof (short) + sizeof (YYSTYPE) + sizeof (YYLTYPE))     \\r
-      + 2 * YYSTACK_GAP_MAX)\r
-# else\r
-#  define YYSTACK_BYTES(N) \\r
-     ((N) * (sizeof (short) + sizeof (YYSTYPE))                                \\r
-      + YYSTACK_GAP_MAX)\r
-# endif\r
-\r
-/* Copy COUNT objects from FROM to TO.  The source and destination do\r
-   not overlap.  */\r
-# ifndef YYCOPY\r
-#  if 1 < __GNUC__\r
-#   define YYCOPY(To, From, Count) \\r
-      __builtin_memcpy (To, From, (Count) * sizeof (*(From)))\r
-#  else\r
-#   define YYCOPY(To, From, Count)             \\r
-      do                                       \\r
-       {                                       \\r
-         register YYSIZE_T yyi;                \\r
-         for (yyi = 0; yyi < (Count); yyi++)   \\r
-           (To)[yyi] = (From)[yyi];            \\r
-       }                                       \\r
-      while (0)\r
-#  endif\r
-# endif\r
-\r
-/* Relocate STACK from its old location to the new one.  The\r
-   local variables YYSIZE and YYSTACKSIZE give the old and new number of\r
-   elements in the stack, and YYPTR gives the new location of the\r
-   stack.  Advance YYPTR to a properly aligned location for the next\r
-   stack.  */\r
-# define YYSTACK_RELOCATE(Stack)                                       \\r
-    do                                                                 \\r
-      {                                                                        \\r
-       YYSIZE_T yynewbytes;                                            \\r
-       YYCOPY (&yyptr->Stack, Stack, yysize);                          \\r
-       Stack = &yyptr->Stack;                                          \\r
-       yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAX;   \\r
-       yyptr += yynewbytes / sizeof (*yyptr);                          \\r
-      }                                                                        \\r
-    while (0)\r
-\r
-#endif\r
-\r
-\r
 #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)\r
 # define YYSIZE_T __SIZE_TYPE__\r
 #endif\r
@@ -1048,29 +1297,34 @@ union yyalloc
 \r
 #define yyerrok                (yyerrstatus = 0)\r
 #define yyclearin      (yychar = YYEMPTY)\r
-#define YYEMPTY                -2\r
+#define YYEMPTY                (-2)\r
 #define YYEOF          0\r
+\r
 #define YYACCEPT       goto yyacceptlab\r
-#define YYABORT        goto yyabortlab\r
+#define YYABORT                goto yyabortlab\r
 #define YYERROR                goto yyerrlab1\r
+\r
 /* Like YYERROR except do call yyerror.  This remains here temporarily\r
    to ease the transition to the new meaning of YYERROR, for GCC.\r
    Once GCC version 2 has supplanted version 1, this can go.  */\r
+\r
 #define YYFAIL         goto yyerrlab\r
+\r
 #define YYRECOVERING()  (!!yyerrstatus)\r
+\r
 #define YYBACKUP(Token, Value)                                 \\r
 do                                                             \\r
   if (yychar == YYEMPTY && yylen == 1)                         \\r
     {                                                          \\r
       yychar = (Token);                                                \\r
       yylval = (Value);                                                \\r
-      yychar1 = YYTRANSLATE (yychar);                          \\r
+      yytoken = YYTRANSLATE (yychar);                          \\r
       YYPOPSTACK;                                              \\r
       goto yybackup;                                           \\r
     }                                                          \\r
   else                                                         \\r
     {                                                          \\r
-      yyerror ("syntax error: cannot back up");                        \\r
+      yyerror ("syntax error: cannot back up");\\r
       YYERROR;                                                 \\r
     }                                                          \\r
 while (0)\r
@@ -1078,41 +1332,24 @@ while (0)
 #define YYTERROR       1\r
 #define YYERRCODE      256\r
 \r
-\r
 /* YYLLOC_DEFAULT -- Compute the default location (before the actions\r
-   are run).\r
-\r
-   When YYLLOC_DEFAULT is run, CURRENT is set the location of the\r
-   first token.  By default, to implement support for ranges, extend\r
-   its range to the last symbol.  */\r
+   are run).  */\r
 \r
 #ifndef YYLLOC_DEFAULT\r
-# define YYLLOC_DEFAULT(Current, Rhs, N)               \\r
-   Current.last_line   = Rhs[N].last_line;     \\r
-   Current.last_column = Rhs[N].last_column;\r
+# define YYLLOC_DEFAULT(Current, Rhs, N)         \\r
+  Current.first_line   = Rhs[1].first_line;      \\r
+  Current.first_column = Rhs[1].first_column;    \\r
+  Current.last_line    = Rhs[N].last_line;       \\r
+  Current.last_column  = Rhs[N].last_column;\r
 #endif\r
 \r
-\r
 /* YYLEX -- calling `yylex' with the right arguments.  */\r
 \r
-#if YYPURE\r
-# if YYLSP_NEEDED\r
-#  ifdef YYLEX_PARAM\r
-#   define YYLEX               yylex (&yylval, &yylloc, YYLEX_PARAM)\r
-#  else\r
-#   define YYLEX               yylex (&yylval, &yylloc)\r
-#  endif\r
-# else /* !YYLSP_NEEDED */\r
-#  ifdef YYLEX_PARAM\r
-#   define YYLEX               yylex (&yylval, YYLEX_PARAM)\r
-#  else\r
-#   define YYLEX               yylex (&yylval)\r
-#  endif\r
-# endif /* !YYLSP_NEEDED */\r
-#else /* !YYPURE */\r
-# define YYLEX                 yylex ()\r
-#endif /* !YYPURE */\r
-\r
+#ifdef YYLEX_PARAM\r
+# define YYLEX yylex (YYLEX_PARAM)\r
+#else\r
+# define YYLEX yylex ()\r
+#endif\r
 \r
 /* Enable debugging if requested.  */\r
 #if YYDEBUG\r
@@ -1127,13 +1364,93 @@ do {                                            \
   if (yydebug)                                 \\r
     YYFPRINTF Args;                            \\r
 } while (0)\r
+\r
+# define YYDSYMPRINT(Args)                     \\r
+do {                                           \\r
+  if (yydebug)                                 \\r
+    yysymprint Args;                           \\r
+} while (0)\r
+\r
+# define YYDSYMPRINTF(Title, Token, Value, Location)           \\r
+do {                                                           \\r
+  if (yydebug)                                                 \\r
+    {                                                          \\r
+      YYFPRINTF (stderr, "%s ", Title);                                \\r
+      yysymprint (stderr,                                      \\r
+                  Token, Value);       \\r
+      YYFPRINTF (stderr, "\n");                                        \\r
+    }                                                          \\r
+} while (0)\r
+\r
+/*------------------------------------------------------------------.\r
+| yy_stack_print -- Print the state stack from its BOTTOM up to its |\r
+| TOP (cinluded).                                                   |\r
+`------------------------------------------------------------------*/\r
+\r
+#if defined (__STDC__) || defined (__cplusplus)\r
+static void\r
+yy_stack_print (short *bottom, short *top)\r
+#else\r
+static void\r
+yy_stack_print (bottom, top)\r
+    short *bottom;\r
+    short *top;\r
+#endif\r
+{\r
+  YYFPRINTF (stderr, "Stack now");\r
+  for (/* Nothing. */; bottom <= top; ++bottom)\r
+    YYFPRINTF (stderr, " %d", *bottom);\r
+  YYFPRINTF (stderr, "\n");\r
+}\r
+\r
+# define YY_STACK_PRINT(Bottom, Top)                           \\r
+do {                                                           \\r
+  if (yydebug)                                                 \\r
+    yy_stack_print ((Bottom), (Top));                          \\r
+} while (0)\r
+\r
+\r
+/*------------------------------------------------.\r
+| Report that the YYRULE is going to be reduced.  |\r
+`------------------------------------------------*/\r
+\r
+#if defined (__STDC__) || defined (__cplusplus)\r
+static void\r
+yy_reduce_print (int yyrule)\r
+#else\r
+static void\r
+yy_reduce_print (yyrule)\r
+    int yyrule;\r
+#endif\r
+{\r
+  int yyi;\r
+  unsigned int yylineno = yyrline[yyrule];\r
+  YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",\r
+             yyrule - 1, yylineno);\r
+  /* Print the symbols being reduced, and their result.  */\r
+  for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)\r
+    YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);\r
+  YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);\r
+}\r
+\r
+# define YY_REDUCE_PRINT(Rule)         \\r
+do {                                   \\r
+  if (yydebug)                         \\r
+    yy_reduce_print (Rule);            \\r
+} while (0)\r
+\r
 /* Nonzero means print parse trace.  It is left uninitialized so that\r
    multiple parsers can coexist.  */\r
 int yydebug;\r
 #else /* !YYDEBUG */\r
 # define YYDPRINTF(Args)\r
+# define YYDSYMPRINT(Args)\r
+# define YYDSYMPRINTF(Title, Token, Value, Location)\r
+# define YY_STACK_PRINT(Bottom, Top)\r
+# define YY_REDUCE_PRINT(Rule)\r
 #endif /* !YYDEBUG */\r
 \r
+\r
 /* YYINITDEPTH -- initial size of the parser's stacks.  */\r
 #ifndef        YYINITDEPTH\r
 # define YYINITDEPTH 200\r
@@ -1153,8 +1470,10 @@ int yydebug;
 #ifndef YYMAXDEPTH\r
 # define YYMAXDEPTH 10000\r
 #endif\r
+\r
 \f\r
-#ifdef YYERROR_VERBOSE\r
+\r
+#if YYERROR_VERBOSE\r
 \r
 # ifndef yystrlen\r
 #  if defined (__GLIBC__) && defined (_STRING_H)\r
@@ -1204,86 +1523,134 @@ yystpcpy (yydest, yysrc)
 }\r
 #  endif\r
 # endif\r
-#endif\r
+\r
+#endif /* !YYERROR_VERBOSE */\r
+\r
 \f\r
-#line 315 "/usr/share/bison/bison.simple"\r
 \r
+#if YYDEBUG\r
+/*--------------------------------.\r
+| Print this symbol on YYOUTPUT.  |\r
+`--------------------------------*/\r
+\r
+#if defined (__STDC__) || defined (__cplusplus)\r
+static void\r
+yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)\r
+#else\r
+static void\r
+yysymprint (yyoutput, yytype, yyvaluep)\r
+    FILE *yyoutput;\r
+    int yytype;\r
+    YYSTYPE *yyvaluep;\r
+#endif\r
+{\r
+  /* Pacify ``unused variable'' warnings.  */\r
+  (void) yyvaluep;\r
+\r
+  if (yytype < YYNTOKENS)\r
+    {\r
+      YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);\r
+# ifdef YYPRINT\r
+      YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);\r
+# endif\r
+    }\r
+  else\r
+    YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);\r
+\r
+  switch (yytype)\r
+    {\r
+      default:\r
+        break;\r
+    }\r
+  YYFPRINTF (yyoutput, ")");\r
+}\r
+\r
+#endif /* ! YYDEBUG */\r
+/*-----------------------------------------------.\r
+| Release the memory associated to this symbol.  |\r
+`-----------------------------------------------*/\r
+\r
+#if defined (__STDC__) || defined (__cplusplus)\r
+static void\r
+yydestruct (int yytype, YYSTYPE *yyvaluep)\r
+#else\r
+static void\r
+yydestruct (yytype, yyvaluep)\r
+    int yytype;\r
+    YYSTYPE *yyvaluep;\r
+#endif\r
+{\r
+  /* Pacify ``unused variable'' warnings.  */\r
+  (void) yyvaluep;\r
+\r
+  switch (yytype)\r
+    {\r
+\r
+      default:\r
+        break;\r
+    }\r
+}\r
+\f\r
 \r
-/* The user can define YYPARSE_PARAM as the name of an argument to be passed\r
-   into yyparse.  The argument should have type void *.\r
-   It should actually point to an object.\r
-   Grammar actions can access the variable by casting it\r
-   to the proper pointer type.  */\r
+/* Prevent warnings from -Wmissing-prototypes.  */\r
 \r
 #ifdef YYPARSE_PARAM\r
 # if defined (__STDC__) || defined (__cplusplus)\r
-#  define YYPARSE_PARAM_ARG void *YYPARSE_PARAM\r
-#  define YYPARSE_PARAM_DECL\r
+int yyparse (void *YYPARSE_PARAM);\r
 # else\r
-#  define YYPARSE_PARAM_ARG YYPARSE_PARAM\r
-#  define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;\r
+int yyparse ();\r
 # endif\r
-#else /* !YYPARSE_PARAM */\r
-# define YYPARSE_PARAM_ARG\r
-# define YYPARSE_PARAM_DECL\r
-#endif /* !YYPARSE_PARAM */\r
-\r
-/* Prevent warning if -Wstrict-prototypes.  */\r
-#ifdef __GNUC__\r
-# ifdef YYPARSE_PARAM\r
-int yyparse (void *);\r
-# else\r
+#else /* ! YYPARSE_PARAM */\r
+#if defined (__STDC__) || defined (__cplusplus)\r
 int yyparse (void);\r
-# endif\r
+#else\r
+int yyparse ();\r
 #endif\r
+#endif /* ! YYPARSE_PARAM */\r
 \r
-/* YY_DECL_VARIABLES -- depending whether we use a pure parser,\r
-   variables are global, or local to YYPARSE.  */\r
-\r
-#define YY_DECL_NON_LSP_VARIABLES                      \\r
-/* The lookahead symbol.  */                           \\r
-int yychar;                                            \\r
-                                                       \\r
-/* The semantic value of the lookahead symbol. */      \\r
-YYSTYPE yylval;                                                \\r
-                                                       \\r
-/* Number of parse errors so far.  */                  \\r
-int yynerrs;\r
 \r
-#if YYLSP_NEEDED\r
-# define YY_DECL_VARIABLES                     \\r
-YY_DECL_NON_LSP_VARIABLES                      \\r
-                                               \\r
-/* Location data for the lookahead symbol.  */ \\r
-YYLTYPE yylloc;\r
-#else\r
-# define YY_DECL_VARIABLES                     \\r
-YY_DECL_NON_LSP_VARIABLES\r
-#endif\r
+\r
+/* The lookahead symbol.  */\r
+int yychar;\r
+\r
+/* The semantic value of the lookahead symbol.  */\r
+YYSTYPE yylval;\r
+\r
+/* Number of syntax errors so far.  */\r
+int yynerrs;\r
 \r
 \r
-/* If nonreentrant, generate the variables here. */\r
 \r
-#if !YYPURE\r
-YY_DECL_VARIABLES\r
-#endif  /* !YYPURE */\r
+/*----------.\r
+| yyparse.  |\r
+`----------*/\r
 \r
+#ifdef YYPARSE_PARAM\r
+# if defined (__STDC__) || defined (__cplusplus)\r
+int yyparse (void *YYPARSE_PARAM)\r
+# else\r
+int yyparse (YYPARSE_PARAM)\r
+  void *YYPARSE_PARAM;\r
+# endif\r
+#else /* ! YYPARSE_PARAM */\r
+#if defined (__STDC__) || defined (__cplusplus)\r
 int\r
-yyparse (YYPARSE_PARAM_ARG)\r
-     YYPARSE_PARAM_DECL\r
-{\r
-  /* If reentrant, generate the variables here. */\r
-#if YYPURE\r
-  YY_DECL_VARIABLES\r
-#endif  /* !YYPURE */\r
+yyparse (void)\r
+#else\r
+int\r
+yyparse ()\r
 \r
+#endif\r
+#endif\r
+{\r
+  \r
   register int yystate;\r
   register int yyn;\r
   int yyresult;\r
   /* Number of tokens to shift before error messages enabled.  */\r
   int yyerrstatus;\r
   /* Lookahead token as an internal (translated) token number.  */\r
-  int yychar1 = 0;\r
+  int yytoken = 0;\r
 \r
   /* Three stacks and their tools:\r
      `yyss': related to states,\r
@@ -1293,7 +1660,7 @@ yyparse (YYPARSE_PARAM_ARG)
      Refer to the stacks thru separate pointers, to allow yyoverflow\r
      to reallocate them elsewhere.  */\r
 \r
-  /* The state stack. */\r
+  /* The state stack.  */\r
   short        yyssa[YYINITDEPTH];\r
   short *yyss = yyssa;\r
   register short *yyssp;\r
@@ -1303,31 +1670,19 @@ yyparse (YYPARSE_PARAM_ARG)
   YYSTYPE *yyvs = yyvsa;\r
   register YYSTYPE *yyvsp;\r
 \r
-#if YYLSP_NEEDED\r
-  /* The location stack.  */\r
-  YYLTYPE yylsa[YYINITDEPTH];\r
-  YYLTYPE *yyls = yylsa;\r
-  YYLTYPE *yylsp;\r
-#endif\r
 \r
-#if YYLSP_NEEDED\r
-# define YYPOPSTACK   (yyvsp--, yyssp--, yylsp--)\r
-#else\r
-# define YYPOPSTACK   (yyvsp--, yyssp--)\r
-#endif\r
 \r
-  YYSIZE_T yystacksize = YYINITDEPTH;\r
+#define YYPOPSTACK   (yyvsp--, yyssp--)\r
 \r
+  YYSIZE_T yystacksize = YYINITDEPTH;\r
 \r
   /* The variables used to return semantic value and location from the\r
      action routines.  */\r
   YYSTYPE yyval;\r
-#if YYLSP_NEEDED\r
-  YYLTYPE yyloc;\r
-#endif\r
+\r
 \r
   /* When reducing, the number of symbols on the RHS of the reduced\r
-     rule. */\r
+     rule.  */\r
   int yylen;\r
 \r
   YYDPRINTF ((stderr, "Starting parse\n"));\r
@@ -1344,9 +1699,7 @@ yyparse (YYPARSE_PARAM_ARG)
 \r
   yyssp = yyss;\r
   yyvsp = yyvs;\r
-#if YYLSP_NEEDED\r
-  yylsp = yyls;\r
-#endif\r
+\r
   goto yysetstate;\r
 \r
 /*------------------------------------------------------------.\r
@@ -1361,7 +1714,7 @@ yyparse (YYPARSE_PARAM_ARG)
  yysetstate:\r
   *yyssp = yystate;\r
 \r
-  if (yyssp >= yyss + yystacksize - 1)\r
+  if (yyss + yystacksize - 1 <= yyssp)\r
     {\r
       /* Get the current used size of the three stacks, in elements.  */\r
       YYSIZE_T yysize = yyssp - yyss + 1;\r
@@ -1374,24 +1727,17 @@ yyparse (YYPARSE_PARAM_ARG)
        YYSTYPE *yyvs1 = yyvs;\r
        short *yyss1 = yyss;\r
 \r
+\r
        /* Each stack pointer address is followed by the size of the\r
-          data in use in that stack, in bytes.  */\r
-# if YYLSP_NEEDED\r
-       YYLTYPE *yyls1 = yyls;\r
-       /* This used to be a conditional around just the two extra args,\r
-          but that might be undefined if yyoverflow is a macro.  */\r
-       yyoverflow ("parser stack overflow",\r
-                   &yyss1, yysize * sizeof (*yyssp),\r
-                   &yyvs1, yysize * sizeof (*yyvsp),\r
-                   &yyls1, yysize * sizeof (*yylsp),\r
-                   &yystacksize);\r
-       yyls = yyls1;\r
-# else\r
+          data in use in that stack, in bytes.  This used to be a\r
+          conditional around just the two extra args, but that might\r
+          be undefined if yyoverflow is a macro.  */\r
        yyoverflow ("parser stack overflow",\r
                    &yyss1, yysize * sizeof (*yyssp),\r
                    &yyvs1, yysize * sizeof (*yyvsp),\r
+\r
                    &yystacksize);\r
-# endif\r
+\r
        yyss = yyss1;\r
        yyvs = yyvs1;\r
       }\r
@@ -1400,10 +1746,10 @@ yyparse (YYPARSE_PARAM_ARG)
       goto yyoverflowlab;\r
 # else\r
       /* Extend the stack our own way.  */\r
-      if (yystacksize >= YYMAXDEPTH)\r
+      if (YYMAXDEPTH <= yystacksize)\r
        goto yyoverflowlab;\r
       yystacksize *= 2;\r
-      if (yystacksize > YYMAXDEPTH)\r
+      if (YYMAXDEPTH < yystacksize)\r
        yystacksize = YYMAXDEPTH;\r
 \r
       {\r
@@ -1414,10 +1760,8 @@ yyparse (YYPARSE_PARAM_ARG)
          goto yyoverflowlab;\r
        YYSTACK_RELOCATE (yyss);\r
        YYSTACK_RELOCATE (yyvs);\r
-# if YYLSP_NEEDED\r
-       YYSTACK_RELOCATE (yyls);\r
-# endif\r
-# undef YYSTACK_RELOCATE\r
+\r
+#  undef YYSTACK_RELOCATE\r
        if (yyss1 != yyssa)\r
          YYSTACK_FREE (yyss1);\r
       }\r
@@ -1426,14 +1770,12 @@ yyparse (YYPARSE_PARAM_ARG)
 \r
       yyssp = yyss + yysize - 1;\r
       yyvsp = yyvs + yysize - 1;\r
-#if YYLSP_NEEDED\r
-      yylsp = yyls + yysize - 1;\r
-#endif\r
+\r
 \r
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",\r
                  (unsigned long int) yystacksize));\r
 \r
-      if (yyssp >= yyss + yystacksize - 1)\r
+      if (yyss + yystacksize - 1 <= yyssp)\r
        YYABORT;\r
     }\r
 \r
@@ -1441,7 +1783,6 @@ yyparse (YYPARSE_PARAM_ARG)
 \r
   goto yybackup;\r
 \r
-\r
 /*-----------.\r
 | yybackup.  |\r
 `-----------*/\r
@@ -1454,88 +1795,55 @@ yybackup:
   /* First try to decide what to do without reference to lookahead token.  */\r
 \r
   yyn = yypact[yystate];\r
-  if (yyn == YYFLAG)\r
+  if (yyn == YYPACT_NINF)\r
     goto yydefault;\r
 \r
   /* Not known => get a lookahead token if don't already have one.  */\r
 \r
-  /* yychar is either YYEMPTY or YYEOF\r
-     or a valid token in external form.  */\r
-\r
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */\r
   if (yychar == YYEMPTY)\r
     {\r
       YYDPRINTF ((stderr, "Reading a token: "));\r
       yychar = YYLEX;\r
     }\r
 \r
-  /* Convert token to internal form (in yychar1) for indexing tables with */\r
-\r
-  if (yychar <= 0)             /* This means end of input. */\r
+  if (yychar <= YYEOF)\r
     {\r
-      yychar1 = 0;\r
-      yychar = YYEOF;          /* Don't call YYLEX any more */\r
-\r
+      yychar = yytoken = YYEOF;\r
       YYDPRINTF ((stderr, "Now at end of input.\n"));\r
     }\r
   else\r
     {\r
-      yychar1 = YYTRANSLATE (yychar);\r
-\r
-#if YYDEBUG\r
-     /* We have to keep this `#if YYDEBUG', since we use variables\r
-       which are defined only if `YYDEBUG' is set.  */\r
-      if (yydebug)\r
-       {\r
-         YYFPRINTF (stderr, "Next token is %d (%s",\r
-                    yychar, yytname[yychar1]);\r
-         /* Give the individual parser a way to print the precise\r
-            meaning of a token, for further debugging info.  */\r
-# ifdef YYPRINT\r
-         YYPRINT (stderr, yychar, yylval);\r
-# endif\r
-         YYFPRINTF (stderr, ")\n");\r
-       }\r
-#endif\r
+      yytoken = YYTRANSLATE (yychar);\r
+      YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);\r
     }\r
 \r
-  yyn += yychar1;\r
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)\r
+  /* If the proper action on seeing token YYTOKEN is to reduce or to\r
+     detect an error, take that action.  */\r
+  yyn += yytoken;\r
+  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)\r
     goto yydefault;\r
-\r
   yyn = yytable[yyn];\r
-\r
-  /* yyn is what to do for this token type in this state.\r
-     Negative => reduce, -yyn is rule number.\r
-     Positive => shift, yyn is new state.\r
-       New state is final state => don't bother to shift,\r
-       just return success.\r
-     0, or most negative number => error.  */\r
-\r
-  if (yyn < 0)\r
+  if (yyn <= 0)\r
     {\r
-      if (yyn == YYFLAG)\r
+      if (yyn == 0 || yyn == YYTABLE_NINF)\r
        goto yyerrlab;\r
       yyn = -yyn;\r
       goto yyreduce;\r
     }\r
-  else if (yyn == 0)\r
-    goto yyerrlab;\r
 \r
   if (yyn == YYFINAL)\r
     YYACCEPT;\r
 \r
   /* Shift the lookahead token.  */\r
-  YYDPRINTF ((stderr, "Shifting token %d (%s), ",\r
-             yychar, yytname[yychar1]));\r
+  YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));\r
 \r
   /* Discard the token being shifted unless it is eof.  */\r
   if (yychar != YYEOF)\r
     yychar = YYEMPTY;\r
 \r
   *++yyvsp = yylval;\r
-#if YYLSP_NEEDED\r
-  *++yylsp = yylloc;\r
-#endif\r
+\r
 \r
   /* Count tokens shifted since error; after three, turn off error\r
      status.  */\r
@@ -1566,753 +1874,890 @@ yyreduce:
   /* If YYLEN is nonzero, implement the default value of the action:\r
      `$$ = $1'.\r
 \r
-     Otherwise, the following line sets YYVAL to the semantic value of\r
-     the lookahead token.  This behavior is undocumented and Bison\r
+     Otherwise, the following line sets YYVAL to garbage.\r
+     This behavior is undocumented and Bison\r
      users should not rely upon it.  Assigning to YYVAL\r
      unconditionally makes the parser a bit smaller, and it avoids a\r
      GCC warning that YYVAL may be used uninitialized.  */\r
   yyval = yyvsp[1-yylen];\r
 \r
-#if YYLSP_NEEDED\r
-  /* Similarly for the default location.  Let the user run additional\r
-     commands if for instance locations are ranges.  */\r
-  yyloc = yylsp[1-yylen];\r
-  YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);\r
-#endif\r
 \r
-#if YYDEBUG\r
-  /* We have to keep this `#if YYDEBUG', since we use variables which\r
-     are defined only if `YYDEBUG' is set.  */\r
-  if (yydebug)\r
+  YY_REDUCE_PRINT (yyn);\r
+  switch (yyn)\r
     {\r
-      int yyi;\r
+        case 2:\r
+#line 228 "parser.y"\r
+    { write_proxies(yyvsp[0].ifref); write_client(yyvsp[0].ifref); write_server(yyvsp[0].ifref); ;}\r
+    break;\r
 \r
-      YYFPRINTF (stderr, "Reducing via rule %d (line %d), ",\r
-                yyn, yyrline[yyn]);\r
+  case 3:\r
+#line 231 "parser.y"\r
+    { yyval.ifref = NULL; ;}\r
+    break;\r
 \r
-      /* Print the symbols being reduced, and their result.  */\r
-      for (yyi = yyprhs[yyn]; yyrhs[yyi] > 0; yyi++)\r
-       YYFPRINTF (stderr, "%s ", yytname[yyrhs[yyi]]);\r
-      YYFPRINTF (stderr, " -> %s\n", yytname[yyr1[yyn]]);\r
-    }\r
-#endif\r
+  case 4:\r
+#line 232 "parser.y"\r
+    { yyval.ifref = yyvsp[-1].ifref; ;}\r
+    break;\r
 \r
-  switch (yyn) {\r
+  case 5:\r
+#line 233 "parser.y"\r
+    { yyval.ifref = make_ifref(yyvsp[0].type); LINK(yyval.ifref, yyvsp[-1].ifref); ;}\r
+    break;\r
+\r
+  case 6:\r
+#line 234 "parser.y"\r
+    { yyval.ifref = yyvsp[-1].ifref; add_coclass(yyvsp[0].clas); ;}\r
+    break;\r
+\r
+  case 7:\r
+#line 235 "parser.y"\r
+    { yyval.ifref = yyvsp[-1].ifref; add_module(yyvsp[0].type); ;}\r
+    break;\r
+\r
+  case 8:\r
+#line 236 "parser.y"\r
+    { yyval.ifref = yyvsp[-1].ifref; ;}\r
+    break;\r
+\r
+  case 9:\r
+#line 237 "parser.y"\r
+    { yyval.ifref = yyvsp[-1].ifref; ;}\r
+    break;\r
 \r
-case 1:\r
-#line 228 "./parser.y"\r
-{ write_proxies(yyvsp[0].ifref); write_client(yyvsp[0].ifref); write_server(yyvsp[0].ifref); }\r
+  case 10:\r
+#line 240 "parser.y"\r
+    {;}\r
     break;\r
-case 2:\r
-#line 231 "./parser.y"\r
-{ yyval.ifref = NULL; }\r
+\r
+  case 11:\r
+#line 241 "parser.y"\r
+    { if (!parse_only) add_interface(yyvsp[0].type); ;}\r
     break;\r
-case 3:\r
-#line 232 "./parser.y"\r
-{ yyval.ifref = yyvsp[-1].ifref; }\r
+\r
+  case 12:\r
+#line 242 "parser.y"\r
+    { if (!parse_only) add_interface(yyvsp[0].type); ;}\r
     break;\r
-case 4:\r
-#line 233 "./parser.y"\r
-{ yyval.ifref = make_ifref(yyvsp[0].type); LINK(yyval.ifref, yyvsp[-1].ifref); }\r
+\r
+  case 13:\r
+#line 243 "parser.y"\r
+    { if (!parse_only) add_coclass(yyvsp[0].clas); ;}\r
     break;\r
-case 5:\r
-#line 234 "./parser.y"\r
-{ yyval.ifref = yyvsp[-1].ifref; add_coclass(yyvsp[0].clas); }\r
+\r
+  case 14:\r
+#line 244 "parser.y"\r
+    { if (!parse_only) add_module(yyvsp[0].type); ;}\r
     break;\r
-case 6:\r
-#line 235 "./parser.y"\r
-{ yyval.ifref = yyvsp[-1].ifref; add_module(yyvsp[0].type); }\r
+\r
+  case 15:\r
+#line 245 "parser.y"\r
+    {;}\r
     break;\r
-case 7:\r
-#line 236 "./parser.y"\r
-{ yyval.ifref = yyvsp[-1].ifref; }\r
+\r
+  case 16:\r
+#line 248 "parser.y"\r
+    { yyval.func = NULL; ;}\r
     break;\r
-case 8:\r
-#line 237 "./parser.y"\r
-{ yyval.ifref = yyvsp[-1].ifref; }\r
+\r
+  case 17:\r
+#line 249 "parser.y"\r
+    { yyval.func = yyvsp[-1].func; LINK(yyval.func, yyvsp[-2].func); ;}\r
     break;\r
-case 9:\r
-#line 240 "./parser.y"\r
-{}\r
+\r
+  case 18:\r
+#line 250 "parser.y"\r
+    { yyval.func = yyvsp[-1].func; ;}\r
     break;\r
-case 10:\r
-#line 241 "./parser.y"\r
-{ if (!parse_only) add_interface(yyvsp[0].type); }\r
+\r
+  case 19:\r
+#line 253 "parser.y"\r
+    {;}\r
     break;\r
-case 11:\r
-#line 242 "./parser.y"\r
-{ if (!parse_only) add_interface(yyvsp[0].type); }\r
+\r
+  case 20:\r
+#line 254 "parser.y"\r
+    { if (!parse_only && do_header) { write_constdef(yyvsp[-1].var); } ;}\r
     break;\r
-case 12:\r
-#line 243 "./parser.y"\r
-{ if (!parse_only) add_coclass(yyvsp[0].clas); }\r
+\r
+  case 21:\r
+#line 255 "parser.y"\r
+    {;}\r
     break;\r
-case 13:\r
-#line 244 "./parser.y"\r
-{ if (!parse_only) add_module(yyvsp[0].type); }\r
+\r
+  case 22:\r
+#line 256 "parser.y"\r
+    { if (!parse_only && do_header) { write_type(header, yyvsp[-1].type, NULL, NULL); fprintf(header, ";\n\n"); } ;}\r
     break;\r
-case 14:\r
-#line 245 "./parser.y"\r
-{}\r
+\r
+  case 23:\r
+#line 257 "parser.y"\r
+    { if (!parse_only && do_header) { write_externdef(yyvsp[-1].var); } ;}\r
     break;\r
-case 15:\r
-#line 248 "./parser.y"\r
-{ yyval.func = NULL; }\r
+\r
+  case 24:\r
+#line 258 "parser.y"\r
+    {;}\r
     break;\r
-case 16:\r
-#line 249 "./parser.y"\r
-{ yyval.func = yyvsp[-1].func; LINK(yyval.func, yyvsp[-2].func); }\r
+\r
+  case 25:\r
+#line 259 "parser.y"\r
+    { if (!parse_only && do_header) { write_type(header, yyvsp[-1].type, NULL, NULL); fprintf(header, ";\n\n"); } ;}\r
     break;\r
-case 17:\r
-#line 250 "./parser.y"\r
-{ yyval.func = yyvsp[-1].func; }\r
+\r
+  case 26:\r
+#line 260 "parser.y"\r
+    {;}\r
     break;\r
-case 18:\r
-#line 253 "./parser.y"\r
-{}\r
+\r
+  case 27:\r
+#line 261 "parser.y"\r
+    { if (!parse_only && do_header) { write_type(header, yyvsp[-1].type, NULL, NULL); fprintf(header, ";\n\n"); } ;}\r
     break;\r
-case 19:\r
-#line 254 "./parser.y"\r
-{ if (!parse_only && do_header) { write_constdef(yyvsp[-1].var); } }\r
+\r
+  case 28:\r
+#line 264 "parser.y"\r
+    { if (!parse_only && do_header) fprintf(header, "%s\n", yyvsp[-1].str); ;}\r
     break;\r
-case 20:\r
-#line 255 "./parser.y"\r
-{}\r
+\r
+  case 29:\r
+#line 266 "parser.y"\r
+    { assert(yychar == YYEMPTY);\r
+                                                 if (!do_import(yyvsp[-1].str)) yychar = aEOF; ;}\r
     break;\r
-case 21:\r
-#line 256 "./parser.y"\r
-{ if (!parse_only && do_header) { write_type(header, yyvsp[-1].type, NULL, NULL); fprintf(header, ";\n\n"); } }\r
+\r
+  case 30:\r
+#line 269 "parser.y"\r
+    {;}\r
     break;\r
-case 22:\r
-#line 257 "./parser.y"\r
-{ if (!parse_only && do_header) { write_externdef(yyvsp[-1].var); } }\r
+\r
+  case 31:\r
+#line 272 "parser.y"\r
+    { yyval.str = yyvsp[0].str; ;}\r
     break;\r
-case 23:\r
-#line 258 "./parser.y"\r
-{}\r
+\r
+  case 32:\r
+#line 274 "parser.y"\r
+    { start_typelib(yyvsp[-1].str, yyvsp[-2].attr); ;}\r
     break;\r
-case 24:\r
-#line 259 "./parser.y"\r
-{ if (!parse_only && do_header) { write_type(header, yyvsp[-1].type, NULL, NULL); fprintf(header, ";\n\n"); } }\r
+\r
+  case 33:\r
+#line 276 "parser.y"\r
+    { end_typelib(); ;}\r
     break;\r
-case 25:\r
-#line 260 "./parser.y"\r
-{}\r
+\r
+  case 34:\r
+#line 279 "parser.y"\r
+    { yyval.var = NULL; ;}\r
     break;\r
-case 26:\r
-#line 261 "./parser.y"\r
-{ if (!parse_only && do_header) { write_type(header, yyvsp[-1].type, NULL, NULL); fprintf(header, ";\n\n"); } }\r
+\r
+  case 36:\r
+#line 283 "parser.y"\r
+    { yyval.var = NULL; ;}\r
     break;\r
-case 27:\r
-#line 264 "./parser.y"\r
-{ if (!parse_only && do_header) fprintf(header, "%s\n", yyvsp[-1].str); }\r
+\r
+  case 38:\r
+#line 287 "parser.y"\r
+    { LINK(yyvsp[0].var, yyvsp[-2].var); yyval.var = yyvsp[0].var; ;}\r
     break;\r
-case 28:\r
-#line 266 "./parser.y"\r
-{ assert(yychar == YYEMPTY);\r
-                                                 if (!do_import(yyvsp[-1].str)) yychar = aEOF; }\r
-    break;\r
-case 29:\r
-#line 269 "./parser.y"\r
-{}\r
-    break;\r
-case 30:\r
-#line 272 "./parser.y"\r
-{ yyval.str = yyvsp[0].str; }\r
-    break;\r
-case 31:\r
-#line 274 "./parser.y"\r
-{ start_typelib(yyvsp[-1].str, yyvsp[-2].attr); }\r
-    break;\r
-case 32:\r
-#line 276 "./parser.y"\r
-{ end_typelib(); }\r
-    break;\r
-case 33:\r
-#line 279 "./parser.y"\r
-{ yyval.var = NULL; }\r
-    break;\r
-case 35:\r
-#line 283 "./parser.y"\r
-{ yyval.var = NULL; }\r
-    break;\r
-case 37:\r
-#line 287 "./parser.y"\r
-{ LINK(yyvsp[0].var, yyvsp[-2].var); yyval.var = yyvsp[0].var; }\r
-    break;\r
-case 39:\r
-#line 292 "./parser.y"\r
-{ yyval.var = yyvsp[-1].var;\r
+\r
+  case 40:\r
+#line 292 "parser.y"\r
+    { yyval.var = yyvsp[-1].var;\r
                                                  set_type(yyval.var, yyvsp[-2].tref, yyvsp[0].expr);\r
                                                  yyval.var->attrs = yyvsp[-3].attr;\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 40:\r
-#line 296 "./parser.y"\r
-{ yyval.var = yyvsp[-1].var;\r
+\r
+  case 41:\r
+#line 296 "parser.y"\r
+    { yyval.var = yyvsp[-1].var;\r
                                                  set_type(yyval.var, yyvsp[-2].tref, yyvsp[0].expr);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 41:\r
-#line 299 "./parser.y"\r
-{ yyval.var = yyvsp[-3].var;\r
+\r
+  case 42:\r
+#line 299 "parser.y"\r
+    { yyval.var = yyvsp[-3].var;\r
                                                  yyval.var->ptr_level--;\r
                                                  set_type(yyval.var, yyvsp[-4].tref, NULL);\r
                                                  yyval.var->attrs = yyvsp[-5].attr;\r
                                                  yyval.var->args = yyvsp[-1].var;\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 42:\r
-#line 305 "./parser.y"\r
-{ yyval.var = yyvsp[-3].var;\r
+\r
+  case 43:\r
+#line 305 "parser.y"\r
+    { yyval.var = yyvsp[-3].var;\r
                                                  yyval.var->ptr_level--;\r
                                                  set_type(yyval.var, yyvsp[-4].tref, NULL);\r
                                                  yyval.var->args = yyvsp[-1].var;\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 43:\r
-#line 312 "./parser.y"\r
-{ yyval.expr = NULL; }\r
+\r
+  case 44:\r
+#line 312 "parser.y"\r
+    { yyval.expr = NULL; ;}\r
     break;\r
-case 44:\r
-#line 313 "./parser.y"\r
-{ yyval.expr = yyvsp[-1].expr; }\r
+\r
+  case 45:\r
+#line 313 "parser.y"\r
+    { yyval.expr = yyvsp[-1].expr; ;}\r
     break;\r
-case 45:\r
-#line 314 "./parser.y"\r
-{ yyval.expr = make_expr(EXPR_VOID); }\r
+\r
+  case 46:\r
+#line 314 "parser.y"\r
+    { yyval.expr = make_expr(EXPR_VOID); ;}\r
     break;\r
-case 47:\r
-#line 318 "./parser.y"\r
-{ LINK(yyvsp[0].expr, yyvsp[-2].expr); yyval.expr = yyvsp[0].expr; }\r
+\r
+  case 48:\r
+#line 318 "parser.y"\r
+    { LINK(yyvsp[0].expr, yyvsp[-2].expr); yyval.expr = yyvsp[0].expr; ;}\r
     break;\r
-case 48:\r
-#line 319 "./parser.y"\r
-{ LINK(yyvsp[0].expr, yyvsp[-3].expr); yyval.expr = yyvsp[0].expr; }\r
+\r
+  case 49:\r
+#line 319 "parser.y"\r
+    { LINK(yyvsp[0].expr, yyvsp[-3].expr); yyval.expr = yyvsp[0].expr; ;}\r
     break;\r
-case 49:\r
-#line 322 "./parser.y"\r
-{ yyval.attr = NULL; }\r
+\r
+  case 50:\r
+#line 322 "parser.y"\r
+    { yyval.attr = NULL; ;}\r
     break;\r
-case 51:\r
-#line 327 "./parser.y"\r
-{ yyval.attr = yyvsp[-1].attr; }\r
+\r
+  case 52:\r
+#line 327 "parser.y"\r
+    { yyval.attr = yyvsp[-1].attr; ;}\r
     break;\r
-case 53:\r
-#line 331 "./parser.y"\r
-{ LINK(yyvsp[0].attr, yyvsp[-2].attr); yyval.attr = yyvsp[0].attr; }\r
+\r
+  case 54:\r
+#line 331 "parser.y"\r
+    { LINK(yyvsp[0].attr, yyvsp[-2].attr); yyval.attr = yyvsp[0].attr; ;}\r
     break;\r
-case 54:\r
-#line 332 "./parser.y"\r
-{ LINK(yyvsp[0].attr, yyvsp[-3].attr); yyval.attr = yyvsp[0].attr; }\r
+\r
+  case 55:\r
+#line 332 "parser.y"\r
+    { LINK(yyvsp[0].attr, yyvsp[-3].attr); yyval.attr = yyvsp[0].attr; ;}\r
     break;\r
-case 55:\r
-#line 336 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_ASYNC); }\r
+\r
+  case 56:\r
+#line 336 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_ASYNC); ;}\r
     break;\r
-case 56:\r
-#line 337 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_AUTO_HANDLE); }\r
+\r
+  case 57:\r
+#line 337 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_AUTO_HANDLE); ;}\r
     break;\r
-case 57:\r
-#line 338 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_CALLAS, yyvsp[-1].var); }\r
+\r
+  case 58:\r
+#line 338 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_CALLAS, yyvsp[-1].var); ;}\r
     break;\r
-case 58:\r
-#line 339 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_CASE, yyvsp[-1].expr); }\r
+\r
+  case 59:\r
+#line 339 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_CASE, yyvsp[-1].expr); ;}\r
     break;\r
-case 59:\r
-#line 340 "./parser.y"\r
-{ yyval.attr = make_attrv(ATTR_CONTEXTHANDLE, 0); }\r
+\r
+  case 60:\r
+#line 340 "parser.y"\r
+    { yyval.attr = make_attrv(ATTR_CONTEXTHANDLE, 0); ;}\r
     break;\r
-case 60:\r
-#line 341 "./parser.y"\r
-{ yyval.attr = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ }\r
+\r
+  case 61:\r
+#line 341 "parser.y"\r
+    { yyval.attr = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_DONT_SERIALIZE */ ;}\r
     break;\r
-case 61:\r
-#line 342 "./parser.y"\r
-{ yyval.attr = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ }\r
+\r
+  case 62:\r
+#line 342 "parser.y"\r
+    { yyval.attr = make_attrv(ATTR_CONTEXTHANDLE, 0); /* RPC_CONTEXT_HANDLE_SERIALIZE */ ;}\r
     break;\r
-case 62:\r
-#line 343 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_CONTROL); }\r
+\r
+  case 63:\r
+#line 343 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_CONTROL); ;}\r
     break;\r
-case 63:\r
-#line 344 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_DEFAULT); }\r
+\r
+  case 64:\r
+#line 344 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_DEFAULT); ;}\r
     break;\r
-case 64:\r
-#line 345 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_DEFAULTVALUE_EXPR, yyvsp[-1].expr); }\r
+\r
+  case 65:\r
+#line 345 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_DEFAULTVALUE_EXPR, yyvsp[-1].expr); ;}\r
     break;\r
-case 65:\r
-#line 346 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_DEFAULTVALUE_STRING, yyvsp[-1].str); }\r
+\r
+  case 66:\r
+#line 346 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_DEFAULTVALUE_STRING, yyvsp[-1].str); ;}\r
     break;\r
-case 66:\r
-#line 347 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_DLLNAME, yyvsp[-1].str); }\r
+\r
+  case 67:\r
+#line 347 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_DLLNAME, yyvsp[-1].str); ;}\r
     break;\r
-case 67:\r
-#line 348 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_DUAL); }\r
+\r
+  case 68:\r
+#line 348 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_DUAL); ;}\r
     break;\r
-case 68:\r
-#line 349 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_ENDPOINT, yyvsp[-1].str); }\r
+\r
+  case 69:\r
+#line 349 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_ENDPOINT, yyvsp[-1].str); ;}\r
     break;\r
-case 69:\r
-#line 350 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_ENTRY_STRING, yyvsp[-1].str); }\r
+\r
+  case 70:\r
+#line 350 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_ENTRY_STRING, yyvsp[-1].str); ;}\r
     break;\r
-case 70:\r
-#line 351 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_ENTRY_ORDINAL, yyvsp[-1].expr); }\r
+\r
+  case 71:\r
+#line 351 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_ENTRY_ORDINAL, yyvsp[-1].expr); ;}\r
     break;\r
-case 71:\r
-#line 352 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_EXPLICIT_HANDLE); }\r
+\r
+  case 72:\r
+#line 352 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_EXPLICIT_HANDLE); ;}\r
     break;\r
-case 72:\r
-#line 353 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_HANDLE); }\r
+\r
+  case 73:\r
+#line 353 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_HANDLE); ;}\r
     break;\r
-case 73:\r
-#line 354 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_HELPCONTEXT, yyvsp[-1].expr); }\r
+\r
+  case 74:\r
+#line 354 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_HELPCONTEXT, yyvsp[-1].expr); ;}\r
     break;\r
-case 74:\r
-#line 355 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_HELPFILE, yyvsp[-1].str); }\r
+\r
+  case 75:\r
+#line 355 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_HELPFILE, yyvsp[-1].str); ;}\r
     break;\r
-case 75:\r
-#line 356 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_HELPSTRING, yyvsp[-1].str); }\r
+\r
+  case 76:\r
+#line 356 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_HELPSTRING, yyvsp[-1].str); ;}\r
     break;\r
-case 76:\r
-#line 357 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_HELPSTRINGCONTEXT, yyvsp[-1].expr); }\r
+\r
+  case 77:\r
+#line 357 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_HELPSTRINGCONTEXT, yyvsp[-1].expr); ;}\r
     break;\r
-case 77:\r
-#line 358 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_HELPSTRINGDLL, yyvsp[-1].str); }\r
+\r
+  case 78:\r
+#line 358 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_HELPSTRINGDLL, yyvsp[-1].str); ;}\r
     break;\r
-case 78:\r
-#line 359 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_HIDDEN); }\r
+\r
+  case 79:\r
+#line 359 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_HIDDEN); ;}\r
     break;\r
-case 79:\r
-#line 360 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_ID, yyvsp[-1].expr); }\r
+\r
+  case 80:\r
+#line 360 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_ID, yyvsp[-1].expr); ;}\r
     break;\r
-case 80:\r
-#line 361 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_IDEMPOTENT); }\r
+\r
+  case 81:\r
+#line 361 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_IDEMPOTENT); ;}\r
     break;\r
-case 81:\r
-#line 362 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_IIDIS, yyvsp[-1].var); }\r
+\r
+  case 82:\r
+#line 362 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_IIDIS, yyvsp[-1].var); ;}\r
     break;\r
-case 82:\r
-#line 363 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_IMPLICIT_HANDLE, yyvsp[-1].str); }\r
+\r
+  case 83:\r
+#line 363 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_IMPLICIT_HANDLE, yyvsp[-1].str); ;}\r
     break;\r
-case 83:\r
-#line 364 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_IN); }\r
+\r
+  case 84:\r
+#line 364 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_IN); ;}\r
     break;\r
-case 84:\r
-#line 365 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_INPUTSYNC); }\r
+\r
+  case 85:\r
+#line 365 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_INPUTSYNC); ;}\r
     break;\r
-case 85:\r
-#line 366 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_LENGTHIS, yyvsp[-1].expr); }\r
+\r
+  case 86:\r
+#line 366 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_LENGTHIS, yyvsp[-1].var); ;}\r
     break;\r
-case 86:\r
-#line 367 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_LOCAL); }\r
+\r
+  case 87:\r
+#line 367 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_LOCAL); ;}\r
     break;\r
-case 87:\r
-#line 368 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_NONCREATABLE); }\r
+\r
+  case 88:\r
+#line 368 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_NONCREATABLE); ;}\r
     break;\r
-case 88:\r
-#line 369 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_OBJECT); }\r
+\r
+  case 89:\r
+#line 369 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_OBJECT); ;}\r
     break;\r
-case 89:\r
-#line 370 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_ODL); }\r
+\r
+  case 90:\r
+#line 370 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_ODL); ;}\r
     break;\r
-case 90:\r
-#line 371 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_OLEAUTOMATION); }\r
+\r
+  case 91:\r
+#line 371 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_OLEAUTOMATION); ;}\r
     break;\r
-case 91:\r
-#line 372 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_OPTIONAL); }\r
+\r
+  case 92:\r
+#line 372 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_OPTIONAL); ;}\r
     break;\r
-case 92:\r
-#line 373 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_OUT); }\r
+\r
+  case 93:\r
+#line 373 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_OUT); ;}\r
     break;\r
-case 93:\r
-#line 374 "./parser.y"\r
-{ yyval.attr = make_attrv(ATTR_POINTERDEFAULT, yyvsp[-1].num); }\r
+\r
+  case 94:\r
+#line 374 "parser.y"\r
+    { yyval.attr = make_attrv(ATTR_POINTERDEFAULT, yyvsp[-1].num); ;}\r
     break;\r
-case 94:\r
-#line 375 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_PROPGET); }\r
+\r
+  case 95:\r
+#line 375 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_PROPGET); ;}\r
     break;\r
-case 95:\r
-#line 376 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_PROPPUT); }\r
+\r
+  case 96:\r
+#line 376 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_PROPPUT); ;}\r
     break;\r
-case 96:\r
-#line 377 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_PROPPUTREF); }\r
+\r
+  case 97:\r
+#line 377 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_PROPPUTREF); ;}\r
     break;\r
-case 97:\r
-#line 378 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_PTR); }\r
+\r
+  case 98:\r
+#line 378 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_PTR); ;}\r
     break;\r
-case 98:\r
-#line 379 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_PUBLIC); }\r
+\r
+  case 99:\r
+#line 379 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_PUBLIC); ;}\r
     break;\r
-case 99:\r
-#line 380 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_READONLY); }\r
+\r
+  case 100:\r
+#line 380 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_READONLY); ;}\r
     break;\r
-case 100:\r
-#line 381 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_REF); }\r
+\r
+  case 101:\r
+#line 381 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_REF); ;}\r
     break;\r
-case 101:\r
-#line 382 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_RESTRICTED); }\r
+\r
+  case 102:\r
+#line 382 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_RESTRICTED); ;}\r
     break;\r
-case 102:\r
-#line 383 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_RETVAL); }\r
+\r
+  case 103:\r
+#line 383 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_RETVAL); ;}\r
     break;\r
-case 103:\r
-#line 384 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_SIZEIS, yyvsp[-1].expr); }\r
+\r
+  case 104:\r
+#line 384 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_SIZEIS, yyvsp[-1].var); ;}\r
     break;\r
-case 104:\r
-#line 385 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_SOURCE); }\r
+\r
+  case 105:\r
+#line 385 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_SOURCE); ;}\r
     break;\r
-case 105:\r
-#line 386 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_STRING); }\r
+\r
+  case 106:\r
+#line 386 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_STRING); ;}\r
     break;\r
-case 106:\r
-#line 387 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_SWITCHIS, yyvsp[-1].expr); }\r
+\r
+  case 107:\r
+#line 387 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_SWITCHIS, yyvsp[-1].expr); ;}\r
     break;\r
-case 107:\r
-#line 388 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_SWITCHTYPE, type_ref(yyvsp[-1].tref)); }\r
+\r
+  case 108:\r
+#line 388 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_SWITCHTYPE, type_ref(yyvsp[-1].tref)); ;}\r
     break;\r
-case 108:\r
-#line 389 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_TRANSMITAS, type_ref(yyvsp[-1].tref)); }\r
+\r
+  case 109:\r
+#line 389 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_TRANSMITAS, type_ref(yyvsp[-1].tref)); ;}\r
     break;\r
-case 109:\r
-#line 390 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_UNIQUE); }\r
+\r
+  case 110:\r
+#line 390 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_UNIQUE); ;}\r
     break;\r
-case 110:\r
-#line 391 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_UUID, yyvsp[-1].uuid); }\r
+\r
+  case 111:\r
+#line 391 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_UUID, yyvsp[-1].uuid); ;}\r
     break;\r
-case 111:\r
-#line 392 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_V1ENUM); }\r
+\r
+  case 112:\r
+#line 392 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_V1ENUM); ;}\r
     break;\r
-case 112:\r
-#line 393 "./parser.y"\r
-{ yyval.attr = make_attr(ATTR_VARARG); }\r
+\r
+  case 113:\r
+#line 393 "parser.y"\r
+    { yyval.attr = make_attr(ATTR_VARARG); ;}\r
     break;\r
-case 113:\r
-#line 394 "./parser.y"\r
-{ yyval.attr = make_attrv(ATTR_VERSION, yyvsp[-1].num); }\r
+\r
+  case 114:\r
+#line 394 "parser.y"\r
+    { yyval.attr = make_attrv(ATTR_VERSION, yyvsp[-1].num); ;}\r
     break;\r
-case 114:\r
-#line 395 "./parser.y"\r
-{ yyval.attr = make_attrp(ATTR_WIREMARSHAL, type_ref(yyvsp[-1].tref)); }\r
+\r
+  case 115:\r
+#line 395 "parser.y"\r
+    { yyval.attr = make_attrp(ATTR_WIREMARSHAL, type_ref(yyvsp[-1].tref)); ;}\r
     break;\r
-case 115:\r
-#line 396 "./parser.y"\r
-{ yyval.attr = make_attrv(ATTR_POINTERTYPE, yyvsp[0].num); }\r
+\r
+  case 116:\r
+#line 396 "parser.y"\r
+    { yyval.attr = make_attrv(ATTR_POINTERTYPE, yyvsp[0].num); ;}\r
     break;\r
-case 118:\r
-#line 403 "./parser.y"\r
-{ yyval.var = NULL; }\r
+\r
+  case 119:\r
+#line 403 "parser.y"\r
+    { yyval.var = NULL; ;}\r
     break;\r
-case 119:\r
-#line 404 "./parser.y"\r
-{ if (yyvsp[0].var) { LINK(yyvsp[0].var, yyvsp[-1].var); yyval.var = yyvsp[0].var; }\r
+\r
+  case 120:\r
+#line 404 "parser.y"\r
+    { if (yyvsp[0].var) { LINK(yyvsp[0].var, yyvsp[-1].var); yyval.var = yyvsp[0].var; }\r
                                                  else { yyval.var = yyvsp[-1].var; }\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 120:\r
-#line 409 "./parser.y"\r
-{ attr_t *a = make_attrp(ATTR_CASE, yyvsp[-2].expr);\r
+\r
+  case 121:\r
+#line 409 "parser.y"\r
+    { attr_t *a = make_attrp(ATTR_CASE, yyvsp[-2].expr);\r
                                                  yyval.var = yyvsp[0].var; if (!yyval.var) yyval.var = make_var(NULL);\r
                                                  LINK(a, yyval.var->attrs); yyval.var->attrs = a;\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 121:\r
-#line 413 "./parser.y"\r
-{ attr_t *a = make_attr(ATTR_DEFAULT);\r
+\r
+  case 122:\r
+#line 413 "parser.y"\r
+    { attr_t *a = make_attr(ATTR_DEFAULT);\r
                                                  yyval.var = yyvsp[0].var; if (!yyval.var) yyval.var = make_var(NULL);\r
                                                  LINK(a, yyval.var->attrs); yyval.var->attrs = a;\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 122:\r
-#line 419 "./parser.y"\r
-{ yyval.var = reg_const(yyvsp[-2].var);\r
+\r
+  case 123:\r
+#line 419 "parser.y"\r
+    { yyval.var = reg_const(yyvsp[-2].var);\r
                                                  set_type(yyval.var, yyvsp[-3].tref, NULL);\r
                                                  yyval.var->eval = yyvsp[0].expr;\r
                                                  yyval.var->lval = yyvsp[0].expr->cval;\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 123:\r
-#line 426 "./parser.y"\r
-{ yyval.var = NULL; }\r
+\r
+  case 124:\r
+#line 426 "parser.y"\r
+    { yyval.var = NULL; ;}\r
     break;\r
-case 124:\r
-#line 427 "./parser.y"\r
-{ yyval.var = yyvsp[-1].var; }\r
+\r
+  case 125:\r
+#line 427 "parser.y"\r
+    { yyval.var = yyvsp[-1].var; ;}\r
     break;\r
-case 127:\r
-#line 432 "./parser.y"\r
-{ LINK(yyvsp[0].var, yyvsp[-2].var); yyval.var = yyvsp[0].var;\r
+\r
+  case 128:\r
+#line 432 "parser.y"\r
+    { LINK(yyvsp[0].var, yyvsp[-2].var); yyval.var = yyvsp[0].var;\r
                                                  if (yyvsp[-2].var && !yyvsp[0].var->eval)\r
                                                    yyvsp[0].var->lval = yyvsp[-2].var->lval + 1;\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 128:\r
-#line 438 "./parser.y"\r
-{ yyval.var = reg_const(yyvsp[-2].var);\r
+\r
+  case 129:\r
+#line 438 "parser.y"\r
+    { yyval.var = reg_const(yyvsp[-2].var);\r
                                                  yyval.var->eval = yyvsp[0].expr;\r
                                                  yyval.var->lval = yyvsp[0].expr->cval;\r
                                                  yyval.var->type = make_type(RPC_FC_LONG, &std_int);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 129:\r
-#line 443 "./parser.y"\r
-{ yyval.var = reg_const(yyvsp[0].var);\r
+\r
+  case 130:\r
+#line 443 "parser.y"\r
+    { yyval.var = reg_const(yyvsp[0].var);\r
                                                  yyval.var->lval = 0; /* default for first enum entry */\r
                                                  yyval.var->type = make_type(RPC_FC_LONG, &std_int);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 130:\r
-#line 449 "./parser.y"\r
-{ yyval.type = get_typev(RPC_FC_ENUM16, yyvsp[-3].var, tsENUM);\r
+\r
+  case 131:\r
+#line 449 "parser.y"\r
+    { yyval.type = get_typev(RPC_FC_ENUM16, yyvsp[-3].var, tsENUM);\r
                                                  yyval.type->fields = yyvsp[-1].var;\r
                                                  yyval.type->defined = TRUE;\r
                                                  if(in_typelib)\r
                                                      add_enum(yyval.type);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 132:\r
-#line 458 "./parser.y"\r
-{ LINK(yyvsp[0].expr, yyvsp[-2].expr); yyval.expr = yyvsp[0].expr; }\r
-    break;\r
-case 133:\r
-#line 471 "./parser.y"\r
-{ yyval.expr = make_expr(EXPR_VOID); }\r
+\r
+  case 132:\r
+#line 471 "parser.y"\r
+    { yyval.expr = make_expr(EXPR_VOID); ;}\r
     break;\r
-case 135:\r
-#line 475 "./parser.y"\r
-{ yyval.expr = make_exprl(EXPR_NUM, yyvsp[0].num); }\r
+\r
+  case 134:\r
+#line 475 "parser.y"\r
+    { yyval.expr = make_exprl(EXPR_NUM, yyvsp[0].num); ;}\r
     break;\r
-case 136:\r
-#line 476 "./parser.y"\r
-{ yyval.expr = make_exprl(EXPR_HEXNUM, yyvsp[0].num); }\r
+\r
+  case 135:\r
+#line 476 "parser.y"\r
+    { yyval.expr = make_exprl(EXPR_HEXNUM, yyvsp[0].num); ;}\r
     break;\r
-case 137:\r
-#line 477 "./parser.y"\r
-{ yyval.expr = make_exprs(EXPR_IDENTIFIER, yyvsp[0].str); }\r
+\r
+  case 136:\r
+#line 477 "parser.y"\r
+    { yyval.expr = make_exprs(EXPR_IDENTIFIER, yyvsp[0].str); ;}\r
     break;\r
-case 138:\r
-#line 478 "./parser.y"\r
-{ yyval.expr = make_expr3(EXPR_COND, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].expr); }\r
+\r
+  case 137:\r
+#line 478 "parser.y"\r
+    { yyval.expr = make_expr3(EXPR_COND, yyvsp[-4].expr, yyvsp[-2].expr, yyvsp[0].expr); ;}\r
     break;\r
-case 139:\r
-#line 479 "./parser.y"\r
-{ yyval.expr = make_expr2(EXPR_OR , yyvsp[-2].expr, yyvsp[0].expr); }\r
+\r
+  case 138:\r
+#line 479 "parser.y"\r
+    { yyval.expr = make_expr2(EXPR_OR , yyvsp[-2].expr, yyvsp[0].expr); ;}\r
     break;\r
-case 140:\r
-#line 480 "./parser.y"\r
-{ yyval.expr = make_expr2(EXPR_AND, yyvsp[-2].expr, yyvsp[0].expr); }\r
+\r
+  case 139:\r
+#line 480 "parser.y"\r
+    { yyval.expr = make_expr2(EXPR_AND, yyvsp[-2].expr, yyvsp[0].expr); ;}\r
     break;\r
-case 141:\r
-#line 481 "./parser.y"\r
-{ yyval.expr = make_expr2(EXPR_ADD, yyvsp[-2].expr, yyvsp[0].expr); }\r
+\r
+  case 140:\r
+#line 481 "parser.y"\r
+    { yyval.expr = make_expr2(EXPR_ADD, yyvsp[-2].expr, yyvsp[0].expr); ;}\r
     break;\r
-case 142:\r
-#line 482 "./parser.y"\r
-{ yyval.expr = make_expr2(EXPR_SUB, yyvsp[-2].expr, yyvsp[0].expr); }\r
+\r
+  case 141:\r
+#line 482 "parser.y"\r
+    { yyval.expr = make_expr2(EXPR_SUB, yyvsp[-2].expr, yyvsp[0].expr); ;}\r
     break;\r
-case 143:\r
-#line 483 "./parser.y"\r
-{ yyval.expr = make_expr2(EXPR_MUL, yyvsp[-2].expr, yyvsp[0].expr); }\r
+\r
+  case 142:\r
+#line 483 "parser.y"\r
+    { yyval.expr = make_expr2(EXPR_MUL, yyvsp[-2].expr, yyvsp[0].expr); ;}\r
     break;\r
-case 144:\r
-#line 484 "./parser.y"\r
-{ yyval.expr = make_expr2(EXPR_DIV, yyvsp[-2].expr, yyvsp[0].expr); }\r
+\r
+  case 143:\r
+#line 484 "parser.y"\r
+    { yyval.expr = make_expr2(EXPR_DIV, yyvsp[-2].expr, yyvsp[0].expr); ;}\r
     break;\r
-case 145:\r
-#line 485 "./parser.y"\r
-{ yyval.expr = make_expr2(EXPR_SHL, yyvsp[-2].expr, yyvsp[0].expr); }\r
+\r
+  case 144:\r
+#line 485 "parser.y"\r
+    { yyval.expr = make_expr2(EXPR_SHL, yyvsp[-2].expr, yyvsp[0].expr); ;}\r
     break;\r
-case 146:\r
-#line 486 "./parser.y"\r
-{ yyval.expr = make_expr2(EXPR_SHR, yyvsp[-2].expr, yyvsp[0].expr); }\r
+\r
+  case 145:\r
+#line 486 "parser.y"\r
+    { yyval.expr = make_expr2(EXPR_SHR, yyvsp[-2].expr, yyvsp[0].expr); ;}\r
     break;\r
-case 147:\r
-#line 487 "./parser.y"\r
-{ yyval.expr = make_expr1(EXPR_NOT, yyvsp[0].expr); }\r
+\r
+  case 146:\r
+#line 487 "parser.y"\r
+    { yyval.expr = make_expr1(EXPR_NOT, yyvsp[0].expr); ;}\r
     break;\r
-case 148:\r
-#line 488 "./parser.y"\r
-{ yyval.expr = make_expr1(EXPR_NEG, yyvsp[0].expr); }\r
+\r
+  case 147:\r
+#line 488 "parser.y"\r
+    { yyval.expr = make_expr1(EXPR_NEG, yyvsp[0].expr); ;}\r
     break;\r
-case 149:\r
-#line 489 "./parser.y"\r
-{ yyval.expr = make_expr1(EXPR_PPTR, yyvsp[0].expr); }\r
+\r
+  case 148:\r
+#line 489 "parser.y"\r
+    { yyval.expr = make_expr1(EXPR_PPTR, yyvsp[0].expr); ;}\r
     break;\r
-case 150:\r
-#line 490 "./parser.y"\r
-{ yyval.expr = make_exprt(EXPR_CAST, yyvsp[-2].tref, yyvsp[0].expr); }\r
+\r
+  case 149:\r
+#line 490 "parser.y"\r
+    { yyval.expr = make_exprt(EXPR_CAST, yyvsp[-2].tref, yyvsp[0].expr); ;}\r
     break;\r
-case 151:\r
-#line 491 "./parser.y"\r
-{ yyval.expr = make_exprt(EXPR_SIZEOF, yyvsp[-1].tref, NULL); }\r
+\r
+  case 150:\r
+#line 491 "parser.y"\r
+    { yyval.expr = make_exprt(EXPR_SIZEOF, yyvsp[-1].tref, NULL); ;}\r
     break;\r
-case 152:\r
-#line 492 "./parser.y"\r
-{ yyval.expr = yyvsp[-1].expr; }\r
+\r
+  case 151:\r
+#line 492 "parser.y"\r
+    { yyval.expr = yyvsp[-1].expr; ;}\r
     break;\r
-case 154:\r
-#line 496 "./parser.y"\r
-{ LINK(yyvsp[0].expr, yyvsp[-2].expr); yyval.expr = yyvsp[0].expr; }\r
+\r
+  case 153:\r
+#line 496 "parser.y"\r
+    { LINK(yyvsp[0].expr, yyvsp[-2].expr); yyval.expr = yyvsp[0].expr; ;}\r
     break;\r
-case 155:\r
-#line 499 "./parser.y"\r
-{ yyval.expr = yyvsp[0].expr;\r
+\r
+  case 154:\r
+#line 499 "parser.y"\r
+    { yyval.expr = yyvsp[0].expr;\r
                                                  if (!yyval.expr->is_const)\r
                                                      yyerror("expression is not constant\n");\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 156:\r
-#line 505 "./parser.y"\r
-{ yyval.var = yyvsp[0].var;\r
+\r
+  case 155:\r
+#line 505 "parser.y"\r
+    { yyval.var = yyvsp[0].var;\r
                                                  set_type(yyval.var, yyvsp[-1].tref, NULL);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 157:\r
-#line 510 "./parser.y"\r
-{ yyval.var = NULL; }\r
+\r
+  case 156:\r
+#line 510 "parser.y"\r
+    { yyval.var = NULL; ;}\r
     break;\r
-case 158:\r
-#line 511 "./parser.y"\r
-{ if (yyvsp[0].var) { LINK(yyvsp[0].var, yyvsp[-1].var); yyval.var = yyvsp[0].var; }\r
+\r
+  case 157:\r
+#line 511 "parser.y"\r
+    { if (yyvsp[0].var) { LINK(yyvsp[0].var, yyvsp[-1].var); yyval.var = yyvsp[0].var; }\r
                                                  else { yyval.var = yyvsp[-1].var; }\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 159:\r
-#line 516 "./parser.y"\r
-{ yyval.var = yyvsp[-1].var; }\r
+\r
+  case 158:\r
+#line 516 "parser.y"\r
+    { yyval.var = yyvsp[-1].var; ;}\r
     break;\r
-case 160:\r
-#line 517 "./parser.y"\r
-{ yyval.var = make_var(NULL); yyval.var->type = yyvsp[-1].type; yyval.var->attrs = yyvsp[-2].attr; }\r
+\r
+  case 159:\r
+#line 517 "parser.y"\r
+    { yyval.var = make_var(NULL); yyval.var->type = yyvsp[-1].type; yyval.var->attrs = yyvsp[-2].attr; ;}\r
     break;\r
-case 161:\r
-#line 518 "./parser.y"\r
-{ yyval.var = make_var(NULL); yyval.var->attrs = yyvsp[-1].attr; }\r
+\r
+  case 160:\r
+#line 518 "parser.y"\r
+    { yyval.var = make_var(NULL); yyval.var->attrs = yyvsp[-1].attr; ;}\r
     break;\r
-case 162:\r
-#line 519 "./parser.y"\r
-{ yyval.var = NULL; }\r
+\r
+  case 161:\r
+#line 519 "parser.y"\r
+    { yyval.var = NULL; ;}\r
     break;\r
-case 163:\r
-#line 522 "./parser.y"\r
-{ yyval.var = yyvsp[-1].var; set_type(yyval.var, yyvsp[-2].tref, yyvsp[0].expr); yyval.var->attrs = yyvsp[-3].attr; }\r
+\r
+  case 162:\r
+#line 522 "parser.y"\r
+    { yyval.var = yyvsp[-1].var; set_type(yyval.var, yyvsp[-2].tref, yyvsp[0].expr); yyval.var->attrs = yyvsp[-3].attr; ;}\r
     break;\r
-case 164:\r
-#line 527 "./parser.y"\r
-{ set_type(yyvsp[-3].var, yyvsp[-5].tref, NULL);\r
+\r
+  case 163:\r
+#line 527 "parser.y"\r
+    { set_type(yyvsp[-3].var, yyvsp[-5].tref, NULL);\r
                                                  yyvsp[-3].var->attrs = yyvsp[-6].attr;\r
                                                  yyval.func = make_func(yyvsp[-3].var, yyvsp[-1].var);\r
                                                  if (is_attr(yyvsp[-3].var->attrs, ATTR_IN)) {\r
                                                    yyerror("Inapplicable attribute");\r
                                                  }\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 165:\r
-#line 536 "./parser.y"\r
-{ yyval.var = NULL; }\r
+\r
+  case 164:\r
+#line 536 "parser.y"\r
+    { yyval.var = NULL; ;}\r
     break;\r
-case 167:\r
-#line 540 "./parser.y"\r
-{ yyval.var = NULL; }\r
+\r
+  case 166:\r
+#line 540 "parser.y"\r
+    { yyval.var = NULL; ;}\r
     break;\r
-case 168:\r
-#line 541 "./parser.y"\r
-{ yyval.var = make_var(yyvsp[0].str); }\r
+\r
+  case 167:\r
+#line 541 "parser.y"\r
+    { yyval.var = make_var(yyvsp[0].str); ;}\r
     break;\r
-case 169:\r
-#line 542 "./parser.y"\r
-{ yyval.var = make_var(yyvsp[0].str); }\r
+\r
+  case 168:\r
+#line 542 "parser.y"\r
+    { yyval.var = make_var(yyvsp[0].str); ;}\r
     break;\r
-case 170:\r
-#line 545 "./parser.y"\r
-{ yyval.var = make_var(yyvsp[0].str); }\r
+\r
+  case 169:\r
+#line 545 "parser.y"\r
+    { yyval.var = make_var(yyvsp[0].str); ;}\r
     break;\r
-case 171:\r
-#line 547 "./parser.y"\r
-{ yyval.var = make_var(yyvsp[0].str); }\r
+\r
+  case 170:\r
+#line 547 "parser.y"\r
+    { yyval.var = make_var(yyvsp[0].str); ;}\r
     break;\r
-case 172:\r
-#line 548 "./parser.y"\r
-{ yyval.var = make_var(yyvsp[0].str); }\r
+\r
+  case 171:\r
+#line 548 "parser.y"\r
+    { yyval.var = make_var(yyvsp[0].str); ;}\r
     break;\r
-case 173:\r
-#line 549 "./parser.y"\r
-{ yyval.var = make_var(yyvsp[0].str); }\r
+\r
+  case 172:\r
+#line 549 "parser.y"\r
+    { yyval.var = make_var(yyvsp[0].str); ;}\r
     break;\r
-case 174:\r
-#line 550 "./parser.y"\r
-{ yyval.var = make_var(yyvsp[0].str); }\r
+\r
+  case 173:\r
+#line 550 "parser.y"\r
+    { yyval.var = make_var(yyvsp[0].str); ;}\r
     break;\r
-case 175:\r
-#line 551 "./parser.y"\r
-{ yyval.var = make_var(yyvsp[0].str); }\r
+\r
+  case 174:\r
+#line 551 "parser.y"\r
+    { yyval.var = make_var(yyvsp[0].str); ;}\r
     break;\r
-case 176:\r
-#line 554 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_BYTE, NULL); }\r
+\r
+  case 175:\r
+#line 554 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_BYTE, NULL); ;}\r
     break;\r
-case 177:\r
-#line 555 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_WCHAR, NULL); }\r
+\r
+  case 176:\r
+#line 555 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_WCHAR, NULL); ;}\r
     break;\r
-case 179:\r
-#line 557 "./parser.y"\r
-{ yyval.type = yyvsp[0].type; yyval.type->sign = 1; }\r
+\r
+  case 178:\r
+#line 557 "parser.y"\r
+    { yyval.type = yyvsp[0].type; yyval.type->sign = 1; ;}\r
     break;\r
-case 180:\r
-#line 558 "./parser.y"\r
-{ yyval.type = yyvsp[0].type; yyval.type->sign = -1;\r
+\r
+  case 179:\r
+#line 558 "parser.y"\r
+    { yyval.type = yyvsp[0].type; yyval.type->sign = -1;\r
                                                  switch (yyval.type->type) {\r
                                                  case RPC_FC_CHAR: break;\r
                                                  case RPC_FC_SMALL: yyval.type->type = RPC_FC_USMALL; break;\r
@@ -2323,109 +2768,133 @@ case 180:
                                                    break;\r
                                                  default: break;\r
                                                  }\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 181:\r
-#line 570 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_ULONG, &std_int); yyval.type->sign = -1; }\r
+\r
+  case 180:\r
+#line 570 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_ULONG, &std_int); yyval.type->sign = -1; ;}\r
     break;\r
-case 182:\r
-#line 571 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_FLOAT, NULL); }\r
+\r
+  case 181:\r
+#line 571 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_FLOAT, NULL); ;}\r
     break;\r
-case 183:\r
-#line 572 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_FLOAT, NULL); }\r
+\r
+  case 182:\r
+#line 572 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_FLOAT, NULL); ;}\r
     break;\r
-case 184:\r
-#line 573 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_DOUBLE, NULL); }\r
+\r
+  case 183:\r
+#line 573 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_DOUBLE, NULL); ;}\r
     break;\r
-case 185:\r
-#line 574 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_SMALL, &std_bool); }\r
+\r
+  case 184:\r
+#line 574 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_SMALL, &std_bool); ;}\r
     break;\r
-case 186:\r
-#line 575 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_ERROR_STATUS_T, NULL); }\r
+\r
+  case 185:\r
+#line 575 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_ERROR_STATUS_T, NULL); ;}\r
     break;\r
-case 187:\r
-#line 576 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_IGNORE, NULL); }\r
+\r
+  case 186:\r
+#line 576 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_IGNORE, NULL); ;}\r
     break;\r
-case 190:\r
-#line 583 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_LONG, &std_int); }\r
+\r
+  case 189:\r
+#line 583 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_LONG, &std_int); ;}\r
     break;\r
-case 191:\r
-#line 584 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_SMALL, NULL); }\r
+\r
+  case 190:\r
+#line 584 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_SMALL, NULL); ;}\r
     break;\r
-case 192:\r
-#line 585 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_SHORT, NULL); }\r
+\r
+  case 191:\r
+#line 585 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_SHORT, NULL); ;}\r
     break;\r
-case 193:\r
-#line 586 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_LONG, NULL); }\r
+\r
+  case 192:\r
+#line 586 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_LONG, NULL); ;}\r
     break;\r
-case 194:\r
-#line 587 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_HYPER, NULL); }\r
+\r
+  case 193:\r
+#line 587 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_HYPER, NULL); ;}\r
     break;\r
-case 195:\r
-#line 588 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_HYPER, &std_int64); }\r
+\r
+  case 194:\r
+#line 588 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_HYPER, &std_int64); ;}\r
     break;\r
-case 196:\r
-#line 589 "./parser.y"\r
-{ yyval.type = make_type(RPC_FC_CHAR, NULL); }\r
+\r
+  case 195:\r
+#line 589 "parser.y"\r
+    { yyval.type = make_type(RPC_FC_CHAR, NULL); ;}\r
     break;\r
-case 197:\r
-#line 592 "./parser.y"\r
-{ yyval.clas = make_class(yyvsp[0].str); }\r
+\r
+  case 196:\r
+#line 592 "parser.y"\r
+    { yyval.clas = make_class(yyvsp[0].str); ;}\r
     break;\r
-case 198:\r
-#line 593 "./parser.y"\r
-{ yyval.clas = make_class(yyvsp[0].str); }\r
+\r
+  case 197:\r
+#line 593 "parser.y"\r
+    { yyval.clas = make_class(yyvsp[0].str); ;}\r
     break;\r
-case 199:\r
-#line 596 "./parser.y"\r
-{ yyval.clas = yyvsp[0].clas;\r
+\r
+  case 198:\r
+#line 596 "parser.y"\r
+    { yyval.clas = yyvsp[0].clas;\r
                                                  yyval.clas->attrs = yyvsp[-1].attr;\r
                                                  if (!parse_only && do_header)\r
                                                    write_coclass(yyval.clas);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 200:\r
-#line 603 "./parser.y"\r
-{ yyval.clas = yyvsp[-3].clas;\r
+\r
+  case 199:\r
+#line 603 "parser.y"\r
+    { yyval.clas = yyvsp[-3].clas;\r
                                                  yyval.clas->ifaces = yyvsp[-1].ifref;\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 201:\r
-#line 608 "./parser.y"\r
-{ yyval.ifref = NULL; }\r
+\r
+  case 200:\r
+#line 608 "parser.y"\r
+    { yyval.ifref = NULL; ;}\r
     break;\r
-case 202:\r
-#line 609 "./parser.y"\r
-{ LINK(yyvsp[0].ifref, yyvsp[-1].ifref); yyval.ifref = yyvsp[0].ifref; }\r
+\r
+  case 201:\r
+#line 609 "parser.y"\r
+    { LINK(yyvsp[0].ifref, yyvsp[-1].ifref); yyval.ifref = yyvsp[0].ifref; ;}\r
     break;\r
-case 203:\r
-#line 613 "./parser.y"\r
-{ yyval.ifref = make_ifref(yyvsp[0].type); yyval.ifref->attrs = yyvsp[-1].attr; }\r
+\r
+  case 202:\r
+#line 613 "parser.y"\r
+    { yyval.ifref = make_ifref(yyvsp[0].type); yyval.ifref->attrs = yyvsp[-1].attr; ;}\r
     break;\r
-case 204:\r
-#line 616 "./parser.y"\r
-{ yyval.type = get_type(0, yyvsp[0].str, 0); }\r
+\r
+  case 203:\r
+#line 616 "parser.y"\r
+    { yyval.type = get_type(0, yyvsp[0].str, 0); ;}\r
     break;\r
-case 205:\r
-#line 617 "./parser.y"\r
-{ yyval.type = get_type(0, yyvsp[0].str, 0); }\r
+\r
+  case 204:\r
+#line 617 "parser.y"\r
+    { yyval.type = get_type(0, yyvsp[0].str, 0); ;}\r
     break;\r
-case 206:\r
-#line 620 "./parser.y"\r
-{ yyval.type = yyvsp[0].type;\r
+\r
+  case 205:\r
+#line 620 "parser.y"\r
+    { yyval.type = yyvsp[0].type;\r
                                                  if (yyval.type->defined) yyerror("multiple definition error\n");\r
                                                  yyval.type->attrs = yyvsp[-1].attr;\r
                                                  yyval.type->attrs = make_attr(ATTR_DISPINTERFACE);\r
@@ -2434,185 +2903,222 @@ case 206:
                                                  if (!yyval.type->ref) yyerror("IDispatch is undefined\n");\r
                                                  yyval.type->defined = TRUE;\r
                                                  if (!parse_only && do_header) write_forward(yyval.type);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 207:\r
-#line 632 "./parser.y"\r
-{ yyval.var = NULL; }\r
+\r
+  case 206:\r
+#line 632 "parser.y"\r
+    { yyval.var = NULL; ;}\r
     break;\r
-case 208:\r
-#line 633 "./parser.y"\r
-{ LINK(yyvsp[-1].var, yyvsp[-2].var); yyval.var = yyvsp[-1].var; }\r
+\r
+  case 207:\r
+#line 633 "parser.y"\r
+    { LINK(yyvsp[-1].var, yyvsp[-2].var); yyval.var = yyvsp[-1].var; ;}\r
     break;\r
-case 209:\r
-#line 636 "./parser.y"\r
-{ yyval.func = NULL; }\r
+\r
+  case 208:\r
+#line 636 "parser.y"\r
+    { yyval.func = NULL; ;}\r
     break;\r
-case 210:\r
-#line 637 "./parser.y"\r
-{ LINK(yyvsp[-1].func, yyvsp[-2].func); yyval.func = yyvsp[-1].func; }\r
+\r
+  case 209:\r
+#line 637 "parser.y"\r
+    { LINK(yyvsp[-1].func, yyvsp[-2].func); yyval.func = yyvsp[-1].func; ;}\r
     break;\r
-case 211:\r
-#line 643 "./parser.y"\r
-{ yyval.type = yyvsp[-4].type;\r
+\r
+  case 210:\r
+#line 643 "parser.y"\r
+    { yyval.type = yyvsp[-4].type;\r
                                                  yyval.type->fields = yyvsp[-2].var;\r
                                                  yyval.type->funcs = yyvsp[-1].func;\r
                                                  if (!parse_only && do_header) write_dispinterface(yyval.type);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 212:\r
-#line 655 "./parser.y"\r
-{ yyval.type = NULL; }\r
+\r
+  case 211:\r
+#line 655 "parser.y"\r
+    { yyval.type = NULL; ;}\r
     break;\r
-case 213:\r
-#line 656 "./parser.y"\r
-{ yyval.type = find_type2(yyvsp[0].str, 0); }\r
+\r
+  case 212:\r
+#line 656 "parser.y"\r
+    { yyval.type = find_type2(yyvsp[0].str, 0); ;}\r
     break;\r
-case 214:\r
-#line 659 "./parser.y"\r
-{ yyval.type = get_type(RPC_FC_IP, yyvsp[0].str, 0); }\r
+\r
+  case 213:\r
+#line 659 "parser.y"\r
+    { yyval.type = get_type(RPC_FC_IP, yyvsp[0].str, 0); ;}\r
     break;\r
-case 215:\r
-#line 660 "./parser.y"\r
-{ yyval.type = get_type(RPC_FC_IP, yyvsp[0].str, 0); }\r
+\r
+  case 214:\r
+#line 660 "parser.y"\r
+    { yyval.type = get_type(RPC_FC_IP, yyvsp[0].str, 0); ;}\r
     break;\r
-case 216:\r
-#line 663 "./parser.y"\r
-{ yyval.type = yyvsp[0].type;\r
+\r
+  case 215:\r
+#line 663 "parser.y"\r
+    { yyval.type = yyvsp[0].type;\r
                                                  if (yyval.type->defined) yyerror("multiple definition error\n");\r
                                                  yyval.type->attrs = yyvsp[-1].attr;\r
                                                  yyval.type->defined = TRUE;\r
                                                  if (!parse_only && do_header) write_forward(yyval.type);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 217:\r
-#line 672 "./parser.y"\r
-{ yyval.type = yyvsp[-4].type;\r
+\r
+  case 216:\r
+#line 672 "parser.y"\r
+    { yyval.type = yyvsp[-4].type;\r
                                                  yyval.type->ref = yyvsp[-3].type;\r
                                                  yyval.type->funcs = yyvsp[-1].func;\r
                                                  if (!parse_only && do_header) write_interface(yyval.type);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 218:\r
-#line 680 "./parser.y"\r
-{ yyval.type = yyvsp[-6].type;\r
+\r
+  case 217:\r
+#line 680 "parser.y"\r
+    { yyval.type = yyvsp[-6].type;\r
                                                  yyval.type->ref = find_type2(yyvsp[-4].str, 0);\r
                                                  if (!yyval.type->ref) yyerror("base class %s not found in import\n", yyvsp[-4].str);\r
                                                  yyval.type->funcs = yyvsp[-1].func;\r
                                                  if (!parse_only && do_header) write_interface(yyval.type);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 219:\r
-#line 686 "./parser.y"\r
-{ yyval.type = yyvsp[0].type; }\r
+\r
+  case 218:\r
+#line 686 "parser.y"\r
+    { yyval.type = yyvsp[0].type; ;}\r
     break;\r
-case 220:\r
-#line 690 "./parser.y"\r
-{ yyval.type = yyvsp[-1].type; if (!parse_only && do_header) write_forward(yyval.type); }\r
+\r
+  case 219:\r
+#line 690 "parser.y"\r
+    { yyval.type = yyvsp[-1].type; if (!parse_only && do_header) write_forward(yyval.type); ;}\r
     break;\r
-case 221:\r
-#line 691 "./parser.y"\r
-{ yyval.type = yyvsp[-1].type; if (!parse_only && do_header) write_forward(yyval.type); }\r
+\r
+  case 220:\r
+#line 691 "parser.y"\r
+    { yyval.type = yyvsp[-1].type; if (!parse_only && do_header) write_forward(yyval.type); ;}\r
     break;\r
-case 222:\r
-#line 694 "./parser.y"\r
-{ yyval.type = make_type(0, NULL); yyval.type->name = yyvsp[0].str; }\r
+\r
+  case 221:\r
+#line 694 "parser.y"\r
+    { yyval.type = make_type(0, NULL); yyval.type->name = yyvsp[0].str; ;}\r
     break;\r
-case 223:\r
-#line 695 "./parser.y"\r
-{ yyval.type = make_type(0, NULL); yyval.type->name = yyvsp[0].str; }\r
+\r
+  case 222:\r
+#line 695 "parser.y"\r
+    { yyval.type = make_type(0, NULL); yyval.type->name = yyvsp[0].str; ;}\r
     break;\r
-case 224:\r
-#line 698 "./parser.y"\r
-{ yyval.type = yyvsp[0].type;\r
+\r
+  case 223:\r
+#line 698 "parser.y"\r
+    { yyval.type = yyvsp[0].type;\r
                                                  yyval.type->attrs = yyvsp[-1].attr;\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 225:\r
-#line 703 "./parser.y"\r
-{ yyval.type = yyvsp[-3].type;\r
+\r
+  case 224:\r
+#line 703 "parser.y"\r
+    { yyval.type = yyvsp[-3].type;\r
                                                  yyval.type->funcs = yyvsp[-1].func;\r
                                                  /* FIXME: if (!parse_only && do_header) write_module($$); */\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 226:\r
-#line 709 "./parser.y"\r
-{ yyval.var = yyvsp[0].var; yyval.var->ptr_level++; }\r
+\r
+  case 225:\r
+#line 709 "parser.y"\r
+    { yyval.var = yyvsp[0].var; yyval.var->ptr_level++; ;}\r
     break;\r
-case 227:\r
-#line 710 "./parser.y"\r
-{ yyval.var = yyvsp[0].var; /* FIXME */ }\r
+\r
+  case 226:\r
+#line 710 "parser.y"\r
+    { yyval.var = yyvsp[0].var; /* FIXME */ ;}\r
     break;\r
-case 230:\r
-#line 715 "./parser.y"\r
-{ yyval.var = yyvsp[-1].var; }\r
+\r
+  case 229:\r
+#line 715 "parser.y"\r
+    { yyval.var = yyvsp[-1].var; ;}\r
     break;\r
-case 232:\r
-#line 720 "./parser.y"\r
-{ LINK(yyvsp[0].var, yyvsp[-2].var); yyval.var = yyvsp[0].var; }\r
+\r
+  case 231:\r
+#line 720 "parser.y"\r
+    { LINK(yyvsp[0].var, yyvsp[-2].var); yyval.var = yyvsp[0].var; ;}\r
     break;\r
-case 233:\r
-#line 724 "./parser.y"\r
-{ yyval.num = RPC_FC_RP; }\r
+\r
+  case 232:\r
+#line 724 "parser.y"\r
+    { yyval.num = RPC_FC_RP; ;}\r
     break;\r
-case 234:\r
-#line 725 "./parser.y"\r
-{ yyval.num = RPC_FC_UP; }\r
+\r
+  case 233:\r
+#line 725 "parser.y"\r
+    { yyval.num = RPC_FC_UP; ;}\r
     break;\r
-case 235:\r
-#line 728 "./parser.y"\r
-{ yyval.type = get_typev(RPC_FC_STRUCT, yyvsp[-3].var, tsSTRUCT);\r
+\r
+  case 234:\r
+#line 728 "parser.y"\r
+    { yyval.type = get_typev(RPC_FC_STRUCT, yyvsp[-3].var, tsSTRUCT);\r
                                                  /* overwrite RPC_FC_STRUCT with a more exact type */\r
                                                  yyval.type->type = get_struct_type( yyvsp[-1].var );\r
                                                  yyval.type->fields = yyvsp[-1].var;\r
                                                  yyval.type->defined = TRUE;\r
                                                  if(in_typelib)\r
                                                    add_struct(yyval.type);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 236:\r
-#line 738 "./parser.y"\r
-{ yyval.tref = make_tref(NULL, make_type(0, NULL)); }\r
+\r
+  case 235:\r
+#line 738 "parser.y"\r
+    { yyval.tref = make_tref(NULL, make_type(0, NULL)); ;}\r
     break;\r
-case 237:\r
-#line 739 "./parser.y"\r
-{ yyval.tref = make_tref(yyvsp[0].str, find_type(yyvsp[0].str, 0)); }\r
+\r
+  case 236:\r
+#line 739 "parser.y"\r
+    { yyval.tref = make_tref(yyvsp[0].str, find_type(yyvsp[0].str, 0)); ;}\r
     break;\r
-case 238:\r
-#line 740 "./parser.y"\r
-{ yyval.tref = make_tref(NULL, yyvsp[0].type); }\r
+\r
+  case 237:\r
+#line 740 "parser.y"\r
+    { yyval.tref = make_tref(NULL, yyvsp[0].type); ;}\r
     break;\r
-case 239:\r
-#line 741 "./parser.y"\r
-{ yyval.tref = uniq_tref(yyvsp[0].tref); yyval.tref->ref->is_const = TRUE; }\r
+\r
+  case 238:\r
+#line 741 "parser.y"\r
+    { yyval.tref = uniq_tref(yyvsp[0].tref); yyval.tref->ref->is_const = TRUE; ;}\r
     break;\r
-case 240:\r
-#line 742 "./parser.y"\r
-{ yyval.tref = make_tref(NULL, yyvsp[0].type); }\r
+\r
+  case 239:\r
+#line 742 "parser.y"\r
+    { yyval.tref = make_tref(NULL, yyvsp[0].type); ;}\r
     break;\r
-case 241:\r
-#line 743 "./parser.y"\r
-{ yyval.tref = make_tref(NULL, find_type2(yyvsp[0].str, tsENUM)); }\r
+\r
+  case 240:\r
+#line 743 "parser.y"\r
+    { yyval.tref = make_tref(NULL, find_type2(yyvsp[0].str, tsENUM)); ;}\r
     break;\r
-case 242:\r
-#line 744 "./parser.y"\r
-{ yyval.tref = make_tref(NULL, yyvsp[0].type); }\r
+\r
+  case 241:\r
+#line 744 "parser.y"\r
+    { yyval.tref = make_tref(NULL, yyvsp[0].type); ;}\r
     break;\r
-case 243:\r
-#line 745 "./parser.y"\r
-{ yyval.tref = make_tref(NULL, get_type(RPC_FC_STRUCT, yyvsp[0].str, tsSTRUCT)); }\r
+\r
+  case 242:\r
+#line 745 "parser.y"\r
+    { yyval.tref = make_tref(NULL, get_type(RPC_FC_STRUCT, yyvsp[0].str, tsSTRUCT)); ;}\r
     break;\r
-case 244:\r
-#line 746 "./parser.y"\r
-{ yyval.tref = make_tref(NULL, yyvsp[0].type); }\r
+\r
+  case 243:\r
+#line 746 "parser.y"\r
+    { yyval.tref = make_tref(NULL, yyvsp[0].type); ;}\r
     break;\r
-case 245:\r
-#line 747 "./parser.y"\r
-{ yyval.tref = make_tref(NULL, find_type2(yyvsp[0].str, tsUNION)); }\r
+\r
+  case 244:\r
+#line 747 "parser.y"\r
+    { yyval.tref = make_tref(NULL, find_type2(yyvsp[0].str, tsUNION)); ;}\r
     break;\r
-case 246:\r
-#line 750 "./parser.y"\r
-{ typeref_t *tref = uniq_tref(yyvsp[-1].tref);\r
+\r
+  case 245:\r
+#line 750 "parser.y"\r
+    { typeref_t *tref = uniq_tref(yyvsp[-1].tref);\r
                                                  yyvsp[0].var->tname = tref->name;\r
                                                  tref->name = NULL;\r
                                                  yyval.type = type_ref(tref);\r
@@ -2622,18 +3128,20 @@ case 246:
                                                  if (in_typelib && yyval.type->attrs)\r
                                                    add_typedef(yyval.type, yyvsp[0].var);\r
                                                  reg_types(yyval.type, yyvsp[0].var, 0);\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 247:\r
-#line 763 "./parser.y"\r
-{ yyval.type = get_typev(RPC_FC_NON_ENCAPSULATED_UNION, yyvsp[-3].var, tsUNION);\r
+\r
+  case 246:\r
+#line 763 "parser.y"\r
+    { yyval.type = get_typev(RPC_FC_NON_ENCAPSULATED_UNION, yyvsp[-3].var, tsUNION);\r
                                                  yyval.type->fields = yyvsp[-1].var;\r
                                                  yyval.type->defined = TRUE;\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 248:\r
-#line 769 "./parser.y"\r
-{ var_t *u = yyvsp[-3].var;\r
+\r
+  case 247:\r
+#line 769 "parser.y"\r
+    { var_t *u = yyvsp[-3].var;\r
                                                  yyval.type = get_typev(RPC_FC_ENCAPSULATED_UNION, yyvsp[-8].var, tsUNION);\r
                                                  if (!u) u = make_var("tagged_union");\r
                                                  u->type = make_type(RPC_FC_NON_ENCAPSULATED_UNION, NULL);\r
@@ -2641,42 +3149,33 @@ case 248:
                                                  u->type->defined = TRUE;\r
                                                  LINK(u, yyvsp[-5].var); yyval.type->fields = u;\r
                                                  yyval.type->defined = TRUE;\r
-                                               }\r
+                                               ;}\r
     break;\r
-case 249:\r
-#line 781 "./parser.y"\r
-{ yyval.num = MAKELONG(yyvsp[0].num, 0); }\r
+\r
+  case 248:\r
+#line 781 "parser.y"\r
+    { yyval.num = MAKELONG(yyvsp[0].num, 0); ;}\r
     break;\r
-case 250:\r
-#line 782 "./parser.y"\r
-{ yyval.num = MAKELONG(yyvsp[-2].num, yyvsp[0].num); }\r
+\r
+  case 249:\r
+#line 782 "parser.y"\r
+    { yyval.num = MAKELONG(yyvsp[-2].num, yyvsp[0].num); ;}\r
     break;\r
-}\r
 \r
-#line 705 "/usr/share/bison/bison.simple"\r
 \r
+    }\r
+\r
+/* Line 991 of yacc.c.  */\r
+#line 3169 "y.tab.c"\r
 \f\r
   yyvsp -= yylen;\r
   yyssp -= yylen;\r
-#if YYLSP_NEEDED\r
-  yylsp -= yylen;\r
-#endif\r
 \r
-#if YYDEBUG\r
-  if (yydebug)\r
-    {\r
-      short *yyssp1 = yyss - 1;\r
-      YYFPRINTF (stderr, "state stack now");\r
-      while (yyssp1 != yyssp)\r
-       YYFPRINTF (stderr, " %d", *++yyssp1);\r
-      YYFPRINTF (stderr, "\n");\r
-    }\r
-#endif\r
+\r
+  YY_STACK_PRINT (yyss, yyssp);\r
 \r
   *++yyvsp = yyval;\r
-#if YYLSP_NEEDED\r
-  *++yylsp = yyloc;\r
-#endif\r
+\r
 \r
   /* Now `shift' the result of the reduction.  Determine what state\r
      that goes to, based on the state we popped back to and the rule\r
@@ -2684,11 +3183,11 @@ case 250:
 \r
   yyn = yyr1[yyn];\r
 \r
-  yystate = yypgoto[yyn - YYNTBASE] + *yyssp;\r
-  if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)\r
+  yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;\r
+  if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)\r
     yystate = yytable[yystate];\r
   else\r
-    yystate = yydefgoto[yyn - YYNTBASE];\r
+    yystate = yydefgoto[yyn - YYNTOKENS];\r
 \r
   goto yynewstate;\r
 \r
@@ -2701,13 +3200,13 @@ yyerrlab:
   if (!yyerrstatus)\r
     {\r
       ++yynerrs;\r
-\r
-#ifdef YYERROR_VERBOSE\r
+#if YYERROR_VERBOSE\r
       yyn = yypact[yystate];\r
 \r
-      if (yyn > YYFLAG && yyn < YYLAST)\r
+      if (YYPACT_NINF < yyn && yyn < YYLAST)\r
        {\r
          YYSIZE_T yysize = 0;\r
+         int yytype = YYTRANSLATE (yychar);\r
          char *yymsg;\r
          int yyx, yycount;\r
 \r
@@ -2716,15 +3215,15 @@ yyerrlab:
             YYCHECK.  */\r
          for (yyx = yyn < 0 ? -yyn : 0;\r
               yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)\r
-           if (yycheck[yyx + yyn] == yyx)\r
+           if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)\r
              yysize += yystrlen (yytname[yyx]) + 15, yycount++;\r
-         yysize += yystrlen ("parse error, unexpected ") + 1;\r
-         yysize += yystrlen (yytname[YYTRANSLATE (yychar)]);\r
+         yysize += yystrlen ("syntax error, unexpected ") + 1;\r
+         yysize += yystrlen (yytname[yytype]);\r
          yymsg = (char *) YYSTACK_ALLOC (yysize);\r
          if (yymsg != 0)\r
            {\r
-             char *yyp = yystpcpy (yymsg, "parse error, unexpected ");\r
-             yyp = yystpcpy (yyp, yytname[YYTRANSLATE (yychar)]);\r
+             char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");\r
+             yyp = yystpcpy (yyp, yytname[yytype]);\r
 \r
              if (yycount < 5)\r
                {\r
@@ -2732,7 +3231,7 @@ yyerrlab:
                  for (yyx = yyn < 0 ? -yyn : 0;\r
                       yyx < (int) (sizeof (yytname) / sizeof (char *));\r
                       yyx++)\r
-                   if (yycheck[yyx + yyn] == yyx)\r
+                   if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)\r
                      {\r
                        const char *yyq = ! yycount ? ", expecting " : " or ";\r
                        yyp = yystpcpy (yyp, yyq);\r
@@ -2744,102 +3243,92 @@ yyerrlab:
              YYSTACK_FREE (yymsg);\r
            }\r
          else\r
-           yyerror ("parse error; also virtual memory exhausted");\r
+           yyerror ("syntax error; also virtual memory exhausted");\r
        }\r
       else\r
-#endif /* defined (YYERROR_VERBOSE) */\r
-       yyerror ("parse error");\r
+#endif /* YYERROR_VERBOSE */\r
+       yyerror ("syntax error");\r
     }\r
-  goto yyerrlab1;\r
 \r
 \r
-/*--------------------------------------------------.\r
-| yyerrlab1 -- error raised explicitly by an action |\r
-`--------------------------------------------------*/\r
-yyerrlab1:\r
+\r
   if (yyerrstatus == 3)\r
     {\r
       /* If just tried and failed to reuse lookahead token after an\r
         error, discard it.  */\r
 \r
-      /* return failure if at end of input */\r
+      /* Return failure if at end of input.  */\r
       if (yychar == YYEOF)\r
-       YYABORT;\r
-      YYDPRINTF ((stderr, "Discarding token %d (%s).\n",\r
-                 yychar, yytname[yychar1]));\r
+        {\r
+         /* Pop the error token.  */\r
+          YYPOPSTACK;\r
+         /* Pop the rest of the stack.  */\r
+         while (yyss < yyssp)\r
+           {\r
+             YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);\r
+             yydestruct (yystos[*yyssp], yyvsp);\r
+             YYPOPSTACK;\r
+           }\r
+         YYABORT;\r
+        }\r
+\r
+      YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);\r
+      yydestruct (yytoken, &yylval);\r
       yychar = YYEMPTY;\r
+\r
     }\r
 \r
   /* Else will try to reuse lookahead token after shifting the error\r
      token.  */\r
+  goto yyerrlab2;\r
 \r
-  yyerrstatus = 3;             /* Each real token shifted decrements this */\r
 \r
-  goto yyerrhandle;\r
+/*----------------------------------------------------.\r
+| yyerrlab1 -- error raised explicitly by an action.  |\r
+`----------------------------------------------------*/\r
+yyerrlab1:\r
 \r
+  /* Suppress GCC warning that yyerrlab1 is unused when no action\r
+     invokes YYERROR.  */\r
+#if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)\r
+  __attribute__ ((__unused__))\r
+#endif\r
 \r
-/*-------------------------------------------------------------------.\r
-| yyerrdefault -- current state does not do anything special for the |\r
-| error token.                                                       |\r
-`-------------------------------------------------------------------*/\r
-yyerrdefault:\r
-#if 0\r
-  /* This is wrong; only states that explicitly want error tokens\r
-     should shift them.  */\r
 \r
-  /* If its default is to accept any token, ok.  Otherwise pop it.  */\r
-  yyn = yydefact[yystate];\r
-  if (yyn)\r
-    goto yydefault;\r
-#endif\r
+  goto yyerrlab2;\r
 \r
 \r
 /*---------------------------------------------------------------.\r
-| yyerrpop -- pop the current state because it cannot handle the |\r
-| error token                                                    |\r
+| yyerrlab2 -- pop states until the error token can be shifted.  |\r
 `---------------------------------------------------------------*/\r
-yyerrpop:\r
-  if (yyssp == yyss)\r
-    YYABORT;\r
-  yyvsp--;\r
-  yystate = *--yyssp;\r
-#if YYLSP_NEEDED\r
-  yylsp--;\r
-#endif\r
+yyerrlab2:\r
+  yyerrstatus = 3;     /* Each real token shifted decrements this.  */\r
 \r
-#if YYDEBUG\r
-  if (yydebug)\r
+  for (;;)\r
     {\r
-      short *yyssp1 = yyss - 1;\r
-      YYFPRINTF (stderr, "Error: state stack now");\r
-      while (yyssp1 != yyssp)\r
-       YYFPRINTF (stderr, " %d", *++yyssp1);\r
-      YYFPRINTF (stderr, "\n");\r
-    }\r
-#endif\r
+      yyn = yypact[yystate];\r
+      if (yyn != YYPACT_NINF)\r
+       {\r
+         yyn += YYTERROR;\r
+         if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)\r
+           {\r
+             yyn = yytable[yyn];\r
+             if (0 < yyn)\r
+               break;\r
+           }\r
+       }\r
 \r
-/*--------------.\r
-| yyerrhandle.  |\r
-`--------------*/\r
-yyerrhandle:\r
-  yyn = yypact[yystate];\r
-  if (yyn == YYFLAG)\r
-    goto yyerrdefault;\r
+      /* Pop the current state because it cannot handle the error token.  */\r
+      if (yyssp == yyss)\r
+       YYABORT;\r
 \r
-  yyn += YYTERROR;\r
-  if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)\r
-    goto yyerrdefault;\r
+      YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);\r
+      yydestruct (yystos[yystate], yyvsp);\r
+      yyvsp--;\r
+      yystate = *--yyssp;\r
 \r
-  yyn = yytable[yyn];\r
-  if (yyn < 0)\r
-    {\r
-      if (yyn == YYFLAG)\r
-       goto yyerrpop;\r
-      yyn = -yyn;\r
-      goto yyreduce;\r
+      YY_STACK_PRINT (yyss, yyssp);\r
     }\r
-  else if (yyn == 0)\r
-    goto yyerrpop;\r
 \r
   if (yyn == YYFINAL)\r
     YYACCEPT;\r
@@ -2847,9 +3336,7 @@ yyerrhandle:
   YYDPRINTF ((stderr, "Shifting error token, "));\r
 \r
   *++yyvsp = yylval;\r
-#if YYLSP_NEEDED\r
-  *++yylsp = yylloc;\r
-#endif\r
+\r
 \r
   yystate = yyn;\r
   goto yynewstate;\r
@@ -2869,13 +3356,15 @@ yyabortlab:
   yyresult = 1;\r
   goto yyreturn;\r
 \r
-/*---------------------------------------------.\r
-| yyoverflowab -- parser overflow comes here.  |\r
-`---------------------------------------------*/\r
+#ifndef yyoverflow\r
+/*----------------------------------------------.\r
+| yyoverflowlab -- parser overflow comes here.  |\r
+`----------------------------------------------*/\r
 yyoverflowlab:\r
   yyerror ("parser stack overflow");\r
   yyresult = 2;\r
   /* Fall through.  */\r
+#endif\r
 \r
 yyreturn:\r
 #ifndef yyoverflow\r
@@ -2884,7 +3373,9 @@ yyreturn:
 #endif\r
   return yyresult;\r
 }\r
-#line 785 "./parser.y"\r
+\r
+\r
+#line 785 "parser.y"\r
 \r
 \r
 static attr_t *make_attr(enum attr_type type)\r
@@ -3485,3 +3976,4 @@ static var_t *find_const(char *name, int f)
   }\r
   return cur->var;\r
 }\r
+\r
index c8e735b..6824c03 100644 (file)
@@ -1,8 +1,289 @@
-#ifndef BISON_Y_TAB_H\r
-# define BISON_Y_TAB_H\r
+/* A Bison parser, made by GNU Bison 1.875.  */\r
 \r
-#ifndef YYSTYPE\r
-typedef union {\r
+/* Skeleton parser for Yacc-like parsing with Bison,\r
+   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002 Free Software Foundation, Inc.\r
+\r
+   This program is free software; you can redistribute it and/or modify\r
+   it under the terms of the GNU General Public License as published by\r
+   the Free Software Foundation; either version 2, or (at your option)\r
+   any later version.\r
+\r
+   This program is distributed in the hope that it will be useful,\r
+   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
+   GNU General Public License for more details.\r
+\r
+   You should have received a copy of the GNU General Public License\r
+   along with this program; if not, write to the Free Software\r
+   Foundation, Inc., 59 Temple Place - Suite 330,\r
+   Boston, MA 02111-1307, USA.  */\r
+\r
+/* As a special exception, when this file is copied by Bison into a\r
+   Bison output file, you may use that output file without restriction.\r
+   This special exception was added by the Free Software Foundation\r
+   in version 1.24 of Bison.  */\r
+\r
+/* Tokens.  */\r
+#ifndef YYTOKENTYPE\r
+# define YYTOKENTYPE\r
+   /* Put the tokens into the symbol table, so that GDB and other debuggers\r
+      know about them.  */\r
+   enum yytokentype {\r
+     aIDENTIFIER = 258,\r
+     aKNOWNTYPE = 259,\r
+     aNUM = 260,\r
+     aHEXNUM = 261,\r
+     aSTRING = 262,\r
+     aUUID = 263,\r
+     aEOF = 264,\r
+     SHL = 265,\r
+     SHR = 266,\r
+     tAGGREGATABLE = 267,\r
+     tALLOCATE = 268,\r
+     tAPPOBJECT = 269,\r
+     tARRAYS = 270,\r
+     tASYNC = 271,\r
+     tASYNCUUID = 272,\r
+     tAUTOHANDLE = 273,\r
+     tBINDABLE = 274,\r
+     tBOOLEAN = 275,\r
+     tBROADCAST = 276,\r
+     tBYTE = 277,\r
+     tBYTECOUNT = 278,\r
+     tCALLAS = 279,\r
+     tCALLBACK = 280,\r
+     tCASE = 281,\r
+     tCDECL = 282,\r
+     tCHAR = 283,\r
+     tCOCLASS = 284,\r
+     tCODE = 285,\r
+     tCOMMSTATUS = 286,\r
+     tCONST = 287,\r
+     tCONTEXTHANDLE = 288,\r
+     tCONTEXTHANDLENOSERIALIZE = 289,\r
+     tCONTEXTHANDLESERIALIZE = 290,\r
+     tCONTROL = 291,\r
+     tCPPQUOTE = 292,\r
+     tDEFAULT = 293,\r
+     tDEFAULTVALUE = 294,\r
+     tDISPINTERFACE = 295,\r
+     tDLLNAME = 296,\r
+     tDOUBLE = 297,\r
+     tDUAL = 298,\r
+     tENDPOINT = 299,\r
+     tENTRY = 300,\r
+     tENUM = 301,\r
+     tERRORSTATUST = 302,\r
+     tEXPLICITHANDLE = 303,\r
+     tEXTERN = 304,\r
+     tFLOAT = 305,\r
+     tHANDLE = 306,\r
+     tHANDLET = 307,\r
+     tHELPCONTEXT = 308,\r
+     tHELPFILE = 309,\r
+     tHELPSTRING = 310,\r
+     tHELPSTRINGCONTEXT = 311,\r
+     tHELPSTRINGDLL = 312,\r
+     tHIDDEN = 313,\r
+     tHYPER = 314,\r
+     tID = 315,\r
+     tIDEMPOTENT = 316,\r
+     tIIDIS = 317,\r
+     tIMPLICITHANDLE = 318,\r
+     tIMPORT = 319,\r
+     tIMPORTLIB = 320,\r
+     tIN = 321,\r
+     tINCLUDE = 322,\r
+     tINLINE = 323,\r
+     tINPUTSYNC = 324,\r
+     tINT = 325,\r
+     tINT64 = 326,\r
+     tINTERFACE = 327,\r
+     tLENGTHIS = 328,\r
+     tLIBRARY = 329,\r
+     tLOCAL = 330,\r
+     tLONG = 331,\r
+     tMETHODS = 332,\r
+     tMODULE = 333,\r
+     tNONCREATABLE = 334,\r
+     tOBJECT = 335,\r
+     tODL = 336,\r
+     tOLEAUTOMATION = 337,\r
+     tOPTIONAL = 338,\r
+     tOUT = 339,\r
+     tPOINTERDEFAULT = 340,\r
+     tPROPERTIES = 341,\r
+     tPROPGET = 342,\r
+     tPROPPUT = 343,\r
+     tPROPPUTREF = 344,\r
+     tPTR = 345,\r
+     tPUBLIC = 346,\r
+     tREADONLY = 347,\r
+     tREF = 348,\r
+     tRESTRICTED = 349,\r
+     tRETVAL = 350,\r
+     tSHORT = 351,\r
+     tSIGNED = 352,\r
+     tSINGLE = 353,\r
+     tSIZEIS = 354,\r
+     tSIZEOF = 355,\r
+     tSMALL = 356,\r
+     tSOURCE = 357,\r
+     tSTDCALL = 358,\r
+     tSTRING = 359,\r
+     tSTRUCT = 360,\r
+     tSWITCH = 361,\r
+     tSWITCHIS = 362,\r
+     tSWITCHTYPE = 363,\r
+     tTRANSMITAS = 364,\r
+     tTYPEDEF = 365,\r
+     tUNION = 366,\r
+     tUNIQUE = 367,\r
+     tUNSIGNED = 368,\r
+     tUUID = 369,\r
+     tV1ENUM = 370,\r
+     tVARARG = 371,\r
+     tVERSION = 372,\r
+     tVOID = 373,\r
+     tWCHAR = 374,\r
+     tWIREMARSHAL = 375,\r
+     tPOINTERTYPE = 376,\r
+     COND = 377,\r
+     CAST = 378,\r
+     PPTR = 379,\r
+     NEG = 380\r
+   };\r
+#endif\r
+#define aIDENTIFIER 258\r
+#define aKNOWNTYPE 259\r
+#define aNUM 260\r
+#define aHEXNUM 261\r
+#define aSTRING 262\r
+#define aUUID 263\r
+#define aEOF 264\r
+#define SHL 265\r
+#define SHR 266\r
+#define tAGGREGATABLE 267\r
+#define tALLOCATE 268\r
+#define tAPPOBJECT 269\r
+#define tARRAYS 270\r
+#define tASYNC 271\r
+#define tASYNCUUID 272\r
+#define tAUTOHANDLE 273\r
+#define tBINDABLE 274\r
+#define tBOOLEAN 275\r
+#define tBROADCAST 276\r
+#define tBYTE 277\r
+#define tBYTECOUNT 278\r
+#define tCALLAS 279\r
+#define tCALLBACK 280\r
+#define tCASE 281\r
+#define tCDECL 282\r
+#define tCHAR 283\r
+#define tCOCLASS 284\r
+#define tCODE 285\r
+#define tCOMMSTATUS 286\r
+#define tCONST 287\r
+#define tCONTEXTHANDLE 288\r
+#define tCONTEXTHANDLENOSERIALIZE 289\r
+#define tCONTEXTHANDLESERIALIZE 290\r
+#define tCONTROL 291\r
+#define tCPPQUOTE 292\r
+#define tDEFAULT 293\r
+#define tDEFAULTVALUE 294\r
+#define tDISPINTERFACE 295\r
+#define tDLLNAME 296\r
+#define tDOUBLE 297\r
+#define tDUAL 298\r
+#define tENDPOINT 299\r
+#define tENTRY 300\r
+#define tENUM 301\r
+#define tERRORSTATUST 302\r
+#define tEXPLICITHANDLE 303\r
+#define tEXTERN 304\r
+#define tFLOAT 305\r
+#define tHANDLE 306\r
+#define tHANDLET 307\r
+#define tHELPCONTEXT 308\r
+#define tHELPFILE 309\r
+#define tHELPSTRING 310\r
+#define tHELPSTRINGCONTEXT 311\r
+#define tHELPSTRINGDLL 312\r
+#define tHIDDEN 313\r
+#define tHYPER 314\r
+#define tID 315\r
+#define tIDEMPOTENT 316\r
+#define tIIDIS 317\r
+#define tIMPLICITHANDLE 318\r
+#define tIMPORT 319\r
+#define tIMPORTLIB 320\r
+#define tIN 321\r
+#define tINCLUDE 322\r
+#define tINLINE 323\r
+#define tINPUTSYNC 324\r
+#define tINT 325\r
+#define tINT64 326\r
+#define tINTERFACE 327\r
+#define tLENGTHIS 328\r
+#define tLIBRARY 329\r
+#define tLOCAL 330\r
+#define tLONG 331\r
+#define tMETHODS 332\r
+#define tMODULE 333\r
+#define tNONCREATABLE 334\r
+#define tOBJECT 335\r
+#define tODL 336\r
+#define tOLEAUTOMATION 337\r
+#define tOPTIONAL 338\r
+#define tOUT 339\r
+#define tPOINTERDEFAULT 340\r
+#define tPROPERTIES 341\r
+#define tPROPGET 342\r
+#define tPROPPUT 343\r
+#define tPROPPUTREF 344\r
+#define tPTR 345\r
+#define tPUBLIC 346\r
+#define tREADONLY 347\r
+#define tREF 348\r
+#define tRESTRICTED 349\r
+#define tRETVAL 350\r
+#define tSHORT 351\r
+#define tSIGNED 352\r
+#define tSINGLE 353\r
+#define tSIZEIS 354\r
+#define tSIZEOF 355\r
+#define tSMALL 356\r
+#define tSOURCE 357\r
+#define tSTDCALL 358\r
+#define tSTRING 359\r
+#define tSTRUCT 360\r
+#define tSWITCH 361\r
+#define tSWITCHIS 362\r
+#define tSWITCHTYPE 363\r
+#define tTRANSMITAS 364\r
+#define tTYPEDEF 365\r
+#define tUNION 366\r
+#define tUNIQUE 367\r
+#define tUNSIGNED 368\r
+#define tUUID 369\r
+#define tV1ENUM 370\r
+#define tVARARG 371\r
+#define tVERSION 372\r
+#define tVOID 373\r
+#define tWCHAR 374\r
+#define tWIREMARSHAL 375\r
+#define tPOINTERTYPE 376\r
+#define COND 377\r
+#define CAST 378\r
+#define PPTR 379\r
+#define NEG 380\r
+\r
+\r
+\r
+\r
+#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)\r
+#line 106 "parser.y"\r
+typedef union YYSTYPE {\r
        attr_t *attr;\r
        expr_t *expr;\r
        type_t *type;\r
@@ -14,135 +295,15 @@ typedef union {
        char *str;\r
        UUID *uuid;\r
        unsigned int num;\r
-} yystype;\r
-# define YYSTYPE yystype\r
+} YYSTYPE;\r
+/* Line 1248 of yacc.c.  */\r
+#line 300 "y.tab.h"\r
+# define yystype YYSTYPE /* obsolescent; will be withdrawn */\r
+# define YYSTYPE_IS_DECLARED 1\r
 # define YYSTYPE_IS_TRIVIAL 1\r
 #endif\r
-# define       aIDENTIFIER     257\r
-# define       aKNOWNTYPE      258\r
-# define       aNUM    259\r
-# define       aHEXNUM 260\r
-# define       aSTRING 261\r
-# define       aUUID   262\r
-# define       aEOF    263\r
-# define       SHL     264\r
-# define       SHR     265\r
-# define       tAGGREGATABLE   266\r
-# define       tALLOCATE       267\r
-# define       tAPPOBJECT      268\r
-# define       tARRAYS 269\r
-# define       tASYNC  270\r
-# define       tASYNCUUID      271\r
-# define       tAUTOHANDLE     272\r
-# define       tBINDABLE       273\r
-# define       tBOOLEAN        274\r
-# define       tBROADCAST      275\r
-# define       tBYTE   276\r
-# define       tBYTECOUNT      277\r
-# define       tCALLAS 278\r
-# define       tCALLBACK       279\r
-# define       tCASE   280\r
-# define       tCDECL  281\r
-# define       tCHAR   282\r
-# define       tCOCLASS        283\r
-# define       tCODE   284\r
-# define       tCOMMSTATUS     285\r
-# define       tCONST  286\r
-# define       tCONTEXTHANDLE  287\r
-# define       tCONTEXTHANDLENOSERIALIZE       288\r
-# define       tCONTEXTHANDLESERIALIZE 289\r
-# define       tCONTROL        290\r
-# define       tCPPQUOTE       291\r
-# define       tDEFAULT        292\r
-# define       tDEFAULTVALUE   293\r
-# define       tDISPINTERFACE  294\r
-# define       tDLLNAME        295\r
-# define       tDOUBLE 296\r
-# define       tDUAL   297\r
-# define       tENDPOINT       298\r
-# define       tENTRY  299\r
-# define       tENUM   300\r
-# define       tERRORSTATUST   301\r
-# define       tEXPLICITHANDLE 302\r
-# define       tEXTERN 303\r
-# define       tFLOAT  304\r
-# define       tHANDLE 305\r
-# define       tHANDLET        306\r
-# define       tHELPCONTEXT    307\r
-# define       tHELPFILE       308\r
-# define       tHELPSTRING     309\r
-# define       tHELPSTRINGCONTEXT      310\r
-# define       tHELPSTRINGDLL  311\r
-# define       tHIDDEN 312\r
-# define       tHYPER  313\r
-# define       tID     314\r
-# define       tIDEMPOTENT     315\r
-# define       tIIDIS  316\r
-# define       tIMPLICITHANDLE 317\r
-# define       tIMPORT 318\r
-# define       tIMPORTLIB      319\r
-# define       tIN     320\r
-# define       tINCLUDE        321\r
-# define       tINLINE 322\r
-# define       tINPUTSYNC      323\r
-# define       tINT    324\r
-# define       tINT64  325\r
-# define       tINTERFACE      326\r
-# define       tLENGTHIS       327\r
-# define       tLIBRARY        328\r
-# define       tLOCAL  329\r
-# define       tLONG   330\r
-# define       tMETHODS        331\r
-# define       tMODULE 332\r
-# define       tNONCREATABLE   333\r
-# define       tOBJECT 334\r
-# define       tODL    335\r
-# define       tOLEAUTOMATION  336\r
-# define       tOPTIONAL       337\r
-# define       tOUT    338\r
-# define       tPOINTERDEFAULT 339\r
-# define       tPROPERTIES     340\r
-# define       tPROPGET        341\r
-# define       tPROPPUT        342\r
-# define       tPROPPUTREF     343\r
-# define       tPTR    344\r
-# define       tPUBLIC 345\r
-# define       tREADONLY       346\r
-# define       tREF    347\r
-# define       tRESTRICTED     348\r
-# define       tRETVAL 349\r
-# define       tSHORT  350\r
-# define       tSIGNED 351\r
-# define       tSINGLE 352\r
-# define       tSIZEIS 353\r
-# define       tSIZEOF 354\r
-# define       tSMALL  355\r
-# define       tSOURCE 356\r
-# define       tSTDCALL        357\r
-# define       tSTRING 358\r
-# define       tSTRUCT 359\r
-# define       tSWITCH 360\r
-# define       tSWITCHIS       361\r
-# define       tSWITCHTYPE     362\r
-# define       tTRANSMITAS     363\r
-# define       tTYPEDEF        364\r
-# define       tUNION  365\r
-# define       tUNIQUE 366\r
-# define       tUNSIGNED       367\r
-# define       tUUID   368\r
-# define       tV1ENUM 369\r
-# define       tVARARG 370\r
-# define       tVERSION        371\r
-# define       tVOID   372\r
-# define       tWCHAR  373\r
-# define       tWIREMARSHAL    374\r
-# define       tPOINTERTYPE    375\r
-# define       COND    376\r
-# define       CAST    377\r
-# define       PPTR    378\r
-# define       NEG     379\r
-\r
 \r
 extern YYSTYPE yylval;\r
 \r
-#endif /* not BISON_Y_TAB_H */\r
+\r
+\r