~ubuntu-branches/ubuntu/hardy/swig1.3/hardy

« back to all changes in this revision

Viewing changes to Source/CParse/parser.c

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-12-05 01:16:04 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20051205011604-ygx904it6413k3go
Tags: 1.3.27-1ubuntu1
Resynchronise with Debian again, for the new subversion packages.

Show diffs side-by-side

added added

removed removed

Lines of Context:
76
76
     TYPE_FLOAT = 278,
77
77
     TYPE_DOUBLE = 279,
78
78
     TYPE_CHAR = 280,
79
 
     TYPE_VOID = 281,
80
 
     TYPE_SIGNED = 282,
81
 
     TYPE_BOOL = 283,
82
 
     TYPE_COMPLEX = 284,
83
 
     TYPE_TYPEDEF = 285,
84
 
     TYPE_RAW = 286,
85
 
     LPAREN = 287,
86
 
     RPAREN = 288,
87
 
     COMMA = 289,
88
 
     SEMI = 290,
89
 
     EXTERN = 291,
90
 
     INIT = 292,
91
 
     LBRACE = 293,
92
 
     RBRACE = 294,
93
 
     PERIOD = 295,
94
 
     CONST_QUAL = 296,
95
 
     VOLATILE = 297,
96
 
     REGISTER = 298,
97
 
     STRUCT = 299,
98
 
     UNION = 300,
99
 
     EQUAL = 301,
100
 
     SIZEOF = 302,
101
 
     MODULE = 303,
102
 
     LBRACKET = 304,
103
 
     RBRACKET = 305,
104
 
     ILLEGAL = 306,
105
 
     CONSTANT = 307,
106
 
     NAME = 308,
107
 
     RENAME = 309,
108
 
     NAMEWARN = 310,
109
 
     EXTEND = 311,
110
 
     PRAGMA = 312,
111
 
     FEATURE = 313,
112
 
     VARARGS = 314,
113
 
     ENUM = 315,
114
 
     CLASS = 316,
115
 
     TYPENAME = 317,
116
 
     PRIVATE = 318,
117
 
     PUBLIC = 319,
118
 
     PROTECTED = 320,
119
 
     COLON = 321,
120
 
     STATIC = 322,
121
 
     VIRTUAL = 323,
122
 
     FRIEND = 324,
123
 
     THROW = 325,
124
 
     CATCH = 326,
125
 
     USING = 327,
126
 
     NAMESPACE = 328,
127
 
     NATIVE = 329,
128
 
     INLINE = 330,
129
 
     TYPEMAP = 331,
130
 
     EXCEPT = 332,
131
 
     ECHO = 333,
132
 
     APPLY = 334,
133
 
     CLEAR = 335,
134
 
     SWIGTEMPLATE = 336,
135
 
     FRAGMENT = 337,
136
 
     WARN = 338,
137
 
     LESSTHAN = 339,
138
 
     GREATERTHAN = 340,
139
 
     MODULO = 341,
140
 
     DELETE_KW = 342,
141
 
     TYPES = 343,
142
 
     PARMS = 344,
143
 
     NONID = 345,
144
 
     DSTAR = 346,
145
 
     DCNOT = 347,
146
 
     TEMPLATE = 348,
147
 
     OPERATOR = 349,
148
 
     COPERATOR = 350,
149
 
     PARSETYPE = 351,
150
 
     PARSEPARM = 352,
151
 
     CAST = 353,
152
 
     LOR = 354,
153
 
     LAND = 355,
154
 
     OR = 356,
155
 
     XOR = 357,
156
 
     AND = 358,
157
 
     RSHIFT = 359,
158
 
     LSHIFT = 360,
159
 
     MINUS = 361,
160
 
     PLUS = 362,
161
 
     SLASH = 363,
162
 
     STAR = 364,
163
 
     LNOT = 365,
164
 
     NOT = 366,
165
 
     UMINUS = 367,
166
 
     DCOLON = 368
 
79
     TYPE_WCHAR = 281,
 
80
     TYPE_VOID = 282,
 
81
     TYPE_SIGNED = 283,
 
82
     TYPE_BOOL = 284,
 
83
     TYPE_COMPLEX = 285,
 
84
     TYPE_TYPEDEF = 286,
 
85
     TYPE_RAW = 287,
 
86
     LPAREN = 288,
 
87
     RPAREN = 289,
 
88
     COMMA = 290,
 
89
     SEMI = 291,
 
90
     EXTERN = 292,
 
91
     INIT = 293,
 
92
     LBRACE = 294,
 
93
     RBRACE = 295,
 
94
     PERIOD = 296,
 
95
     CONST_QUAL = 297,
 
96
     VOLATILE = 298,
 
97
     REGISTER = 299,
 
98
     STRUCT = 300,
 
99
     UNION = 301,
 
100
     EQUAL = 302,
 
101
     SIZEOF = 303,
 
102
     MODULE = 304,
 
103
     LBRACKET = 305,
 
104
     RBRACKET = 306,
 
105
     ILLEGAL = 307,
 
106
     CONSTANT = 308,
 
107
     NAME = 309,
 
108
     RENAME = 310,
 
109
     NAMEWARN = 311,
 
110
     EXTEND = 312,
 
111
     PRAGMA = 313,
 
112
     FEATURE = 314,
 
113
     VARARGS = 315,
 
114
     ENUM = 316,
 
115
     CLASS = 317,
 
116
     TYPENAME = 318,
 
117
     PRIVATE = 319,
 
118
     PUBLIC = 320,
 
119
     PROTECTED = 321,
 
120
     COLON = 322,
 
121
     STATIC = 323,
 
122
     VIRTUAL = 324,
 
123
     FRIEND = 325,
 
124
     THROW = 326,
 
125
     CATCH = 327,
 
126
     USING = 328,
 
127
     NAMESPACE = 329,
 
128
     NATIVE = 330,
 
129
     INLINE = 331,
 
130
     TYPEMAP = 332,
 
131
     EXCEPT = 333,
 
132
     ECHO = 334,
 
133
     APPLY = 335,
 
134
     CLEAR = 336,
 
135
     SWIGTEMPLATE = 337,
 
136
     FRAGMENT = 338,
 
137
     WARN = 339,
 
138
     LESSTHAN = 340,
 
139
     GREATERTHAN = 341,
 
140
     MODULO = 342,
 
141
     DELETE_KW = 343,
 
142
     TYPES = 344,
 
143
     PARMS = 345,
 
144
     NONID = 346,
 
145
     DSTAR = 347,
 
146
     DCNOT = 348,
 
147
     TEMPLATE = 349,
 
148
     OPERATOR = 350,
 
149
     COPERATOR = 351,
 
150
     PARSETYPE = 352,
 
151
     PARSEPARM = 353,
 
152
     CAST = 354,
 
153
     LOR = 355,
 
154
     LAND = 356,
 
155
     OR = 357,
 
156
     XOR = 358,
 
157
     AND = 359,
 
158
     RSHIFT = 360,
 
159
     LSHIFT = 361,
 
160
     MINUS = 362,
 
161
     PLUS = 363,
 
162
     SLASH = 364,
 
163
     STAR = 365,
 
164
     LNOT = 366,
 
165
     NOT = 367,
 
166
     UMINUS = 368,
 
167
     DCOLON = 369
167
168
   };
168
169
#endif
169
170
#define ID 258
189
190
#define TYPE_FLOAT 278
190
191
#define TYPE_DOUBLE 279
191
192
#define TYPE_CHAR 280
192
 
#define TYPE_VOID 281
193
 
#define TYPE_SIGNED 282
194
 
#define TYPE_BOOL 283
195
 
#define TYPE_COMPLEX 284
196
 
#define TYPE_TYPEDEF 285
197
 
#define TYPE_RAW 286
198
 
#define LPAREN 287
199
 
#define RPAREN 288
200
 
#define COMMA 289
201
 
#define SEMI 290
202
 
#define EXTERN 291
203
 
#define INIT 292
204
 
#define LBRACE 293
205
 
#define RBRACE 294
206
 
#define PERIOD 295
207
 
#define CONST_QUAL 296
208
 
#define VOLATILE 297
209
 
#define REGISTER 298
210
 
#define STRUCT 299
211
 
#define UNION 300
212
 
#define EQUAL 301
213
 
#define SIZEOF 302
214
 
#define MODULE 303
215
 
#define LBRACKET 304
216
 
#define RBRACKET 305
217
 
#define ILLEGAL 306
218
 
#define CONSTANT 307
219
 
#define NAME 308
220
 
#define RENAME 309
221
 
#define NAMEWARN 310
222
 
#define EXTEND 311
223
 
#define PRAGMA 312
224
 
#define FEATURE 313
225
 
#define VARARGS 314
226
 
#define ENUM 315
227
 
#define CLASS 316
228
 
#define TYPENAME 317
229
 
#define PRIVATE 318
230
 
#define PUBLIC 319
231
 
#define PROTECTED 320
232
 
#define COLON 321
233
 
#define STATIC 322
234
 
#define VIRTUAL 323
235
 
#define FRIEND 324
236
 
#define THROW 325
237
 
#define CATCH 326
238
 
#define USING 327
239
 
#define NAMESPACE 328
240
 
#define NATIVE 329
241
 
#define INLINE 330
242
 
#define TYPEMAP 331
243
 
#define EXCEPT 332
244
 
#define ECHO 333
245
 
#define APPLY 334
246
 
#define CLEAR 335
247
 
#define SWIGTEMPLATE 336
248
 
#define FRAGMENT 337
249
 
#define WARN 338
250
 
#define LESSTHAN 339
251
 
#define GREATERTHAN 340
252
 
#define MODULO 341
253
 
#define DELETE_KW 342
254
 
#define TYPES 343
255
 
#define PARMS 344
256
 
#define NONID 345
257
 
#define DSTAR 346
258
 
#define DCNOT 347
259
 
#define TEMPLATE 348
260
 
#define OPERATOR 349
261
 
#define COPERATOR 350
262
 
#define PARSETYPE 351
263
 
#define PARSEPARM 352
264
 
#define CAST 353
265
 
#define LOR 354
266
 
#define LAND 355
267
 
#define OR 356
268
 
#define XOR 357
269
 
#define AND 358
270
 
#define RSHIFT 359
271
 
#define LSHIFT 360
272
 
#define MINUS 361
273
 
#define PLUS 362
274
 
#define SLASH 363
275
 
#define STAR 364
276
 
#define LNOT 365
277
 
#define NOT 366
278
 
#define UMINUS 367
279
 
#define DCOLON 368
 
193
#define TYPE_WCHAR 281
 
194
#define TYPE_VOID 282
 
195
#define TYPE_SIGNED 283
 
196
#define TYPE_BOOL 284
 
197
#define TYPE_COMPLEX 285
 
198
#define TYPE_TYPEDEF 286
 
199
#define TYPE_RAW 287
 
200
#define LPAREN 288
 
201
#define RPAREN 289
 
202
#define COMMA 290
 
203
#define SEMI 291
 
204
#define EXTERN 292
 
205
#define INIT 293
 
206
#define LBRACE 294
 
207
#define RBRACE 295
 
208
#define PERIOD 296
 
209
#define CONST_QUAL 297
 
210
#define VOLATILE 298
 
211
#define REGISTER 299
 
212
#define STRUCT 300
 
213
#define UNION 301
 
214
#define EQUAL 302
 
215
#define SIZEOF 303
 
216
#define MODULE 304
 
217
#define LBRACKET 305
 
218
#define RBRACKET 306
 
219
#define ILLEGAL 307
 
220
#define CONSTANT 308
 
221
#define NAME 309
 
222
#define RENAME 310
 
223
#define NAMEWARN 311
 
224
#define EXTEND 312
 
225
#define PRAGMA 313
 
226
#define FEATURE 314
 
227
#define VARARGS 315
 
228
#define ENUM 316
 
229
#define CLASS 317
 
230
#define TYPENAME 318
 
231
#define PRIVATE 319
 
232
#define PUBLIC 320
 
233
#define PROTECTED 321
 
234
#define COLON 322
 
235
#define STATIC 323
 
236
#define VIRTUAL 324
 
237
#define FRIEND 325
 
238
#define THROW 326
 
239
#define CATCH 327
 
240
#define USING 328
 
241
#define NAMESPACE 329
 
242
#define NATIVE 330
 
243
#define INLINE 331
 
244
#define TYPEMAP 332
 
245
#define EXCEPT 333
 
246
#define ECHO 334
 
247
#define APPLY 335
 
248
#define CLEAR 336
 
249
#define SWIGTEMPLATE 337
 
250
#define FRAGMENT 338
 
251
#define WARN 339
 
252
#define LESSTHAN 340
 
253
#define GREATERTHAN 341
 
254
#define MODULO 342
 
255
#define DELETE_KW 343
 
256
#define TYPES 344
 
257
#define PARMS 345
 
258
#define NONID 346
 
259
#define DSTAR 347
 
260
#define DCNOT 348
 
261
#define TEMPLATE 349
 
262
#define OPERATOR 350
 
263
#define COPERATOR 351
 
264
#define PARSETYPE 352
 
265
#define PARSEPARM 353
 
266
#define CAST 354
 
267
#define LOR 355
 
268
#define LAND 356
 
269
#define OR 357
 
270
#define XOR 358
 
271
#define AND 359
 
272
#define RSHIFT 360
 
273
#define LSHIFT 361
 
274
#define MINUS 362
 
275
#define PLUS 363
 
276
#define SLASH 364
 
277
#define STAR 365
 
278
#define LNOT 366
 
279
#define NOT 367
 
280
#define UMINUS 368
 
281
#define DCOLON 369
280
282
 
281
283
 
282
284
 
302
304
 
303
305
#define yylex yylex
304
306
 
305
 
char cvsroot_parser_y[] = "$Header: /cvsroot/swig/SWIG/Source/CParse/parser.y,v 1.104 2004/12/14 06:47:19 marcelomatus Exp $";
 
307
char cvsroot_parser_y[] = "$Header: /cvsroot/swig/SWIG/Source/CParse/parser.y,v 1.124 2005/10/13 09:24:35 marcelomatus Exp $";
306
308
 
307
309
#include "swig.h"
308
310
#include "cparse.h"
425
427
    }
426
428
    if ((Strcmp(key,"parms") == 0) || (Strcmp(key,"pattern") == 0) || (Strcmp(key,"throws") == 0)
427
429
        || (Strcmp(key,"kwargs") == 0)) {
428
 
      Setattr(nn,key,CopyParmList(k.item));
 
430
      ParmList *pl = CopyParmList(k.item);
 
431
      Setattr(nn,key,pl);
 
432
      Delete(pl);
429
433
      continue;
430
434
    }
431
435
    /* Looks okay.  Just copy the data using Copy */
449
453
#define  CPLUS_PRIVATE   2
450
454
#define  CPLUS_PROTECTED 3
451
455
 
 
456
/* include types */
 
457
static int   import_mode = 0;
 
458
 
452
459
void SWIG_typemap_lang(const char *tm_lang) {
453
460
  typemap_lang = Swig_copy_string(tm_lang);
454
461
}
718
725
    }
719
726
    if (strncmp(Char(symname),"$ignore",7) == 0) {
720
727
      char *c = Char(symname)+7;
721
 
      Setattr(n,"feature:ignore","1");
 
728
      SetFlag(n,"feature:ignore");
722
729
      if (strlen(c)) {
723
730
        SWIG_WARN_NODE_BEGIN(n);
724
731
        Swig_warning(0,Getfile(n), Getline(n), "%s\n",c+1);
728
735
    } else {
729
736
      Node *c;
730
737
      if ((wrn) && (Len(wrn))) {
731
 
        SWIG_WARN_NODE_BEGIN(n);
732
 
        Swig_warning(0,Getfile(n),Getline(n), "%s\n", wrn);
733
 
        SWIG_WARN_NODE_END(n);
 
738
        String *metaname = symname;
 
739
        if (!Getmeta(metaname,"already_warned")) {
 
740
          SWIG_WARN_NODE_BEGIN(n);
 
741
          Swig_warning(0,Getfile(n),Getline(n), "%s\n", wrn);
 
742
          SWIG_WARN_NODE_END(n);
 
743
          Setmeta(metaname,"already_warned","1");
 
744
        }
734
745
      }
735
746
      c = Swig_symbol_add(symname,n);
736
747
 
1354
1365
     } else {
1355
1366
       Swig_feature_set(features_hash, name, decl, fname, val, featureattribs);
1356
1367
     }
 
1368
     Delete(decl);
1357
1369
   } else if (SwigType_ispointer(t)) {
1358
1370
     String *nname = NewStringf("*%s",name);
1359
1371
     Swig_feature_set(features_hash,nname,0,fname,val, featureattribs);
1415
1427
static void default_arguments(Node *n) {
1416
1428
  Node *function = n;
1417
1429
 
1418
 
  /* Do not add in functions if kwargs is being used or if user wants old default argument wrapping
1419
 
    (one wrapped method per function irrespective of number of default arguments) */
1420
1430
  if (function) {
 
1431
    ParmList *varargs = Getattr(function,"feature:varargs");
 
1432
    if (varargs) {
 
1433
      /* Handles the %varargs directive by looking for "feature:varargs" and 
 
1434
       * substituting ... with an alternative set of arguments.  */
 
1435
      Parm     *p = Getattr(function,"parms");
 
1436
      Parm     *pp = 0;
 
1437
      while (p) {
 
1438
        SwigType *t = Getattr(p,"type");
 
1439
        if (Strcmp(t,"v(...)") == 0) {
 
1440
          if (pp) {
 
1441
            set_nextSibling(pp,Copy(varargs));
 
1442
          } else {
 
1443
            Setattr(function,"parms", Copy(varargs));
 
1444
          }
 
1445
          break;
 
1446
        }
 
1447
        pp = p;
 
1448
        p = nextSibling(p);
 
1449
      }
 
1450
    }
 
1451
 
 
1452
    /* Do not add in functions if kwargs is being used or if user wants old default argument wrapping
 
1453
      (one wrapped method per function irrespective of number of default arguments) */
1421
1454
    if (compact_default_args 
1422
1455
        || is_cfunction(function) 
1423
 
        || Getattr(function,"feature:compactdefaultargs") 
1424
 
        || Getattr(function,"feature:kwargs")) {
 
1456
        || GetFlag(function,"feature:compactdefaultargs") 
 
1457
        || GetFlag(function,"feature:kwargs")) {
1425
1458
      ParmList *p = Getattr(function,"parms");
1426
1459
      if (p) 
1427
1460
        Setattr(p,"compactdefargs", "1"); /* mark parameters for special handling */
1458
1491
 
1459
1492
        {
1460
1493
          Node *throws = Getattr(function,"throws");
1461
 
          if (throws) Setattr(new_function,"throws",CopyParmList(throws));
 
1494
          ParmList *pl = CopyParmList(throws);
 
1495
          if (throws) Setattr(new_function,"throws",pl);
 
1496
          Delete(pl);
1462
1497
        }
1463
1498
 
1464
1499
        /* copy specific attributes for global (or in a namespace) template functions - these are not templated class methods */
1469
1504
          if (templatetype) Setattr(new_function,"templatetype",Copy(templatetype));
1470
1505
          if (symtypename) Setattr(new_function,"sym:typename",Copy(symtypename));
1471
1506
          if (templateparms) Setattr(new_function,"templateparms",CopyParmList(templateparms));
 
1507
        } else if (Strcmp(nodeType(function),"constructor") == 0) {
 
1508
          /* only copied for constructors as this is not a user defined feature - it is hard coded in the parser */
 
1509
          if (GetFlag(function,"feature:new")) SetFlag(new_function,"feature:new");
1472
1510
        }
1473
1511
 
1474
1512
        add_symbols(new_function);
1502
1540
#endif
1503
1541
 
1504
1542
#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
1505
 
#line 1206 "parser.y"
 
1543
#line 1242 "parser.y"
1506
1544
typedef union YYSTYPE {
1507
1545
  char  *id;
1508
1546
  List  *bases;
1546
1584
  Node         *node;
1547
1585
} YYSTYPE;
1548
1586
/* Line 191 of yacc.c.  */
1549
 
#line 1549 "y.tab.c"
 
1587
#line 1587 "y.tab.c"
1550
1588
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
1551
1589
# define YYSTYPE_IS_DECLARED 1
1552
1590
# define YYSTYPE_IS_TRIVIAL 1
1558
1596
 
1559
1597
 
1560
1598
/* Line 214 of yacc.c.  */
1561
 
#line 1561 "y.tab.c"
 
1599
#line 1599 "y.tab.c"
1562
1600
 
1563
1601
#if ! defined (yyoverflow) || YYERROR_VERBOSE
1564
1602
 
1655
1693
#endif
1656
1694
 
1657
1695
/* YYFINAL -- State number of the termination state. */
1658
 
#define YYFINAL  46
 
1696
#define YYFINAL  47
1659
1697
/* YYLAST -- Last index in YYTABLE.  */
1660
 
#define YYLAST   3370
 
1698
#define YYLAST   3301
1661
1699
 
1662
1700
/* YYNTOKENS -- Number of terminals. */
1663
 
#define YYNTOKENS  114
 
1701
#define YYNTOKENS  115
1664
1702
/* YYNNTS -- Number of nonterminals. */
1665
1703
#define YYNNTS  143
1666
1704
/* YYNRULES -- Number of rules. */
1667
 
#define YYNRULES  442
 
1705
#define YYNRULES  443
1668
1706
/* YYNRULES -- Number of states. */
1669
 
#define YYNSTATES  856
 
1707
#define YYNSTATES  857
1670
1708
 
1671
1709
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
1672
1710
#define YYUNDEFTOK  2
1673
 
#define YYMAXUTOK   368
 
1711
#define YYMAXUTOK   369
1674
1712
 
1675
1713
#define YYTRANSLATE(YYX)                                                \
1676
1714
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1714
1752
      75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1715
1753
      85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1716
1754
      95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1717
 
     105,   106,   107,   108,   109,   110,   111,   112,   113
 
1755
     105,   106,   107,   108,   109,   110,   111,   112,   113,   114
1718
1756
};
1719
1757
 
1720
1758
#if YYDEBUG
1754
1792
    1069,  1073,  1077,  1080,  1083,  1085,  1087,  1090,  1092,  1094,
1755
1793
    1096,  1098,  1101,  1103,  1105,  1107,  1109,  1112,  1115,  1117,
1756
1794
    1120,  1122,  1125,  1127,  1129,  1132,  1134,  1136,  1138,  1140,
1757
 
    1142,  1144,  1146,  1148,  1150,  1151,  1154,  1156,  1158,  1160,
1758
 
    1164,  1166,  1168,  1172,  1174,  1176,  1178,  1180,  1182,  1188,
1759
 
    1190,  1192,  1196,  1201,  1207,  1213,  1220,  1222,  1224,  1226,
1760
 
    1228,  1230,  1232,  1234,  1238,  1242,  1246,  1250,  1254,  1258,
1761
 
    1262,  1266,  1270,  1274,  1278,  1281,  1284,  1287,  1290,  1293,
1762
 
    1295,  1296,  1300,  1302,  1304,  1308,  1311,  1316,  1318,  1320,
1763
 
    1322,  1324,  1326,  1328,  1330,  1332,  1334,  1336,  1341,  1347,
1764
 
    1349,  1353,  1357,  1362,  1367,  1371,  1374,  1376,  1378,  1382,
1765
 
    1385,  1389,  1391,  1393,  1395,  1397,  1399,  1402,  1407,  1409,
1766
 
    1413,  1415,  1419,  1423,  1426,  1429,  1432,  1435,  1438,  1443,
1767
 
    1445,  1449,  1451,  1455,  1459,  1462,  1465,  1468,  1471,  1473,
1768
 
    1475,  1477,  1479,  1483,  1485,  1489,  1495,  1497,  1501,  1505,
1769
 
    1511,  1513,  1515
 
1795
    1142,  1144,  1146,  1148,  1150,  1152,  1153,  1156,  1158,  1160,
 
1796
    1162,  1166,  1168,  1170,  1174,  1176,  1178,  1180,  1182,  1184,
 
1797
    1190,  1192,  1194,  1198,  1203,  1209,  1215,  1222,  1224,  1226,
 
1798
    1228,  1230,  1232,  1234,  1236,  1240,  1244,  1248,  1252,  1256,
 
1799
    1260,  1264,  1268,  1272,  1276,  1280,  1283,  1286,  1289,  1292,
 
1800
    1295,  1297,  1298,  1302,  1304,  1306,  1310,  1313,  1318,  1320,
 
1801
    1322,  1324,  1326,  1328,  1330,  1332,  1334,  1336,  1338,  1343,
 
1802
    1349,  1351,  1355,  1359,  1364,  1369,  1373,  1376,  1378,  1380,
 
1803
    1384,  1387,  1391,  1393,  1395,  1397,  1399,  1401,  1404,  1409,
 
1804
    1411,  1415,  1417,  1421,  1425,  1428,  1431,  1434,  1437,  1440,
 
1805
    1445,  1447,  1451,  1453,  1457,  1461,  1464,  1467,  1470,  1473,
 
1806
    1475,  1477,  1479,  1481,  1485,  1487,  1491,  1497,  1499,  1503,
 
1807
    1507,  1513,  1515,  1517
1770
1808
};
1771
1809
 
1772
1810
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
1773
1811
static const short yyrhs[] =
1774
1812
{
1775
 
     115,     0,    -1,   116,    -1,    96,   199,    35,    -1,    96,
1776
 
       1,    -1,    97,   199,    35,    -1,    97,     1,    -1,   116,
1777
 
     117,    -1,   256,    -1,   118,    -1,   155,    -1,   163,    -1,
1778
 
      35,    -1,     1,    -1,   162,    -1,     1,    95,    -1,   119,
1779
 
      -1,   121,    -1,   122,    -1,   123,    -1,   124,    -1,   125,
1780
 
      -1,   128,    -1,   129,    -1,   132,    -1,   133,    -1,   134,
1781
 
      -1,   135,    -1,   136,    -1,   137,    -1,   140,    -1,   142,
1782
 
      -1,   145,    -1,   147,    -1,   152,    -1,   153,    -1,   154,
1783
 
      -1,    -1,    56,   253,   246,    38,   120,   177,    39,    -1,
1784
 
      79,   151,    38,   149,    39,    -1,    80,   149,    35,    -1,
1785
 
      52,     3,    46,   221,    35,    -1,    52,   215,   207,   204,
1786
 
      35,    -1,    52,     1,    35,    -1,    78,     4,    -1,    78,
1787
 
     251,    -1,    77,    32,     3,    33,    38,    -1,    77,    38,
1788
 
      -1,    77,    32,     3,    33,    35,    -1,    77,    35,    -1,
1789
 
     251,    38,   215,    39,    -1,   251,    -1,   126,    -1,    82,
1790
 
      32,   127,    34,   254,    33,     4,    -1,    82,    32,   127,
1791
 
      34,   254,    33,    38,    -1,    82,    32,   127,    33,    35,
1792
 
      -1,    -1,   131,   253,   251,    49,   130,   116,    50,    -1,
1793
 
       7,    -1,     8,    -1,    75,     4,    -1,    75,    38,    -1,
1794
 
       4,    -1,     9,    32,   244,    33,   251,    -1,     9,    32,
1795
 
     244,    33,     4,    -1,     9,    32,   244,    33,    38,    -1,
1796
 
      48,   253,   244,    -1,    53,    32,   244,    33,    -1,    53,
1797
 
      32,    33,    -1,    74,    32,     3,    33,   195,     3,    35,
1798
 
      -1,    74,    32,     3,    33,   195,   215,   207,    35,    -1,
1799
 
      57,   139,     3,    46,   138,    -1,    57,   139,     3,    -1,
1800
 
     251,    -1,     4,    -1,    32,     3,    33,    -1,   256,    -1,
1801
 
     141,   207,   244,    35,    -1,   141,    32,   244,    33,   207,
1802
 
     238,    35,    -1,   141,    32,   244,    33,   251,    35,    -1,
1803
 
      54,    -1,    55,    -1,    58,    32,   244,    33,   207,   238,
1804
 
     143,    -1,    58,    32,   244,    34,   255,    33,   207,   238,
1805
 
      35,    -1,    58,    32,   244,   144,    33,   207,   238,   143,
1806
 
      -1,    58,    32,   244,    34,   255,   144,    33,   207,   238,
1807
 
      35,    -1,    58,    32,   244,    33,   143,    -1,    58,    32,
1808
 
     244,    34,   255,    33,    35,    -1,    58,    32,   244,   144,
1809
 
      33,   143,    -1,    58,    32,   244,    34,   255,   144,    33,
1810
 
      35,    -1,   252,    -1,    35,    -1,    89,    32,   196,    33,
1811
 
      35,    -1,    34,   244,    46,   255,    -1,    34,   244,    46,
1812
 
     255,   144,    -1,    59,    32,   146,    33,   207,   238,    35,
1813
 
      -1,   196,    -1,    11,    34,   199,    -1,    76,    32,   148,
1814
 
      33,   149,   252,    -1,    76,    32,   148,    33,   149,    35,
1815
 
      -1,    76,    32,   148,    33,   149,    46,   151,    35,    -1,
1816
 
     254,    -1,   151,   150,    -1,    34,   151,   150,    -1,   256,
1817
 
      -1,   215,   206,    -1,    32,   196,    33,    -1,    32,   196,
1818
 
      33,    32,   196,    33,    -1,    88,    32,   196,    33,    35,
1819
 
      -1,    81,    32,   245,    33,   249,    84,   200,    85,    35,
1820
 
      -1,    83,   251,    -1,   157,    -1,   161,    -1,   160,    -1,
1821
 
      -1,    36,   251,    38,   156,   116,    39,    -1,   195,   215,
1822
 
     207,   159,   158,    -1,    35,    -1,    34,   207,   159,   158,
1823
 
      -1,    38,    -1,   204,    -1,   213,   204,    -1,    70,    32,
1824
 
     196,    33,   204,    -1,   213,    70,    32,   196,    33,   204,
1825
 
      -1,   195,    60,     3,    35,    -1,   195,    60,   223,    38,
1826
 
     224,    39,    35,    -1,   195,    60,   223,    38,   224,    39,
1827
 
     207,   158,    -1,   195,   215,    32,   196,    33,   239,    -1,
1828
 
     164,    -1,   168,    -1,   169,    -1,   173,    -1,   174,    -1,
1829
 
     184,    -1,    -1,   195,   236,   246,   230,    38,   165,   177,
1830
 
      39,   167,    -1,    -1,   195,   236,    38,   166,   177,    39,
1831
 
     207,   158,    -1,    35,    -1,   207,   158,    -1,   195,   236,
1832
 
     246,    35,    -1,    -1,    93,    84,   172,    85,   170,   171,
1833
 
      -1,    93,   236,   246,    -1,   157,    -1,   164,    -1,   181,
1834
 
      -1,   169,    -1,   168,    -1,   197,    -1,    72,   246,    35,
1835
 
      -1,    72,    73,   246,    35,    -1,    -1,    73,   246,    38,
1836
 
     175,   116,    39,    -1,    -1,    73,    38,   176,   116,    39,
1837
 
      -1,    73,     3,    46,   246,    35,    -1,   180,   177,    -1,
1838
 
      -1,    56,    38,   178,   177,    39,   177,    -1,   256,    -1,
1839
 
      -1,     1,   179,   177,    -1,   155,    -1,   181,    -1,   182,
1840
 
      -1,   185,    -1,   191,    -1,   183,    -1,   168,    -1,   186,
1841
 
      -1,   195,   246,    35,    -1,   173,    -1,   169,    -1,   184,
1842
 
      -1,   153,    -1,   154,    -1,   194,    -1,   128,    -1,   152,
1843
 
      -1,    35,    -1,   195,   215,    32,   196,    33,   239,    -1,
1844
 
     111,   248,    32,   196,    33,   192,    -1,    68,   111,   248,
1845
 
      32,   196,    33,   193,    -1,   195,    95,   215,   212,    32,
1846
 
     196,    33,   193,    -1,   195,    95,   215,   103,    32,   196,
1847
 
      33,   193,    -1,   195,    95,   215,    32,   196,    33,   193,
1848
 
      -1,    71,    32,   196,    33,    38,    -1,    64,    66,    -1,
1849
 
      63,    66,    -1,    65,    66,    -1,    -1,   195,   236,     3,
1850
 
      38,   187,   190,    35,    -1,    -1,   195,   236,    38,   188,
1851
 
     190,    35,    -1,    -1,   195,   236,   246,    66,   233,    38,
1852
 
     189,    35,    -1,   207,    -1,   256,    -1,   137,    -1,   123,
1853
 
      -1,   135,    -1,   140,    -1,   142,    -1,   145,    -1,   133,
1854
 
      -1,   147,    -1,   121,    -1,   122,    -1,   124,    -1,   238,
1855
 
      35,    -1,   238,    38,    -1,   238,    35,    -1,   238,    46,
1856
 
     221,    35,    -1,   238,    38,    -1,   195,   215,    66,   227,
1857
 
      35,    -1,    36,    -1,    36,   251,    -1,    67,    -1,    18,
1858
 
      -1,    68,    -1,    69,    -1,   256,    -1,   197,    -1,   199,
1859
 
     198,    -1,   256,    -1,    34,   199,   198,    -1,   256,    -1,
1860
 
     216,   205,    -1,    93,    84,   236,    85,   236,   246,    -1,
1861
 
      40,    40,    40,    -1,   201,    -1,   203,   202,    -1,   256,
1862
 
      -1,    34,   203,   202,    -1,   256,    -1,   199,    -1,   228,
1863
 
      -1,     6,    -1,    46,   221,    -1,    46,   103,   207,    -1,
1864
 
      46,    38,    -1,    66,   227,    -1,   256,    -1,   207,   204,
1865
 
      -1,   210,   204,    -1,   204,    -1,   207,    -1,   210,    -1,
1866
 
     256,    -1,   212,   208,    -1,   212,   103,   208,    -1,   209,
1867
 
      -1,   103,   208,    -1,   246,    91,   208,    -1,   212,   246,
1868
 
      91,   208,    -1,   212,   246,    91,   103,   208,    -1,   246,
1869
 
      91,   103,   208,    -1,   246,    -1,   111,   246,    -1,    32,
1870
 
     246,    33,    -1,    32,   212,   208,    33,    -1,    32,   246,
1871
 
      91,   208,    33,    -1,   208,    49,    50,    -1,   208,    49,
1872
 
     227,    50,    -1,   208,    32,   196,    33,    -1,   246,    -1,
1873
 
     111,   246,    -1,    32,   212,   209,    33,    -1,    32,   103,
1874
 
     209,    33,    -1,    32,   246,    91,   209,    33,    -1,   209,
1875
 
      49,    50,    -1,   209,    49,   227,    50,    -1,   209,    32,
1876
 
     196,    33,    -1,   212,    -1,   212,   211,    -1,   212,   103,
1877
 
      -1,   212,   103,   211,    -1,   211,    -1,   103,   211,    -1,
1878
 
     103,    -1,   246,    91,    -1,   212,   246,    91,    -1,   212,
1879
 
     246,    91,   211,    -1,   211,    49,    50,    -1,   211,    49,
1880
 
     227,    50,    -1,    49,    50,    -1,    49,   227,    50,    -1,
1881
 
      32,   210,    33,    -1,   211,    32,   196,    33,    -1,    32,
1882
 
     196,    33,    -1,   109,   213,   212,    -1,   109,   212,    -1,
1883
 
     109,   213,    -1,   109,    -1,   214,    -1,   214,   213,    -1,
1884
 
      41,    -1,    42,    -1,    43,    -1,   216,    -1,   213,   217,
1885
 
      -1,   217,    -1,   218,    -1,    28,    -1,    26,    -1,    30,
1886
 
     243,    -1,    60,   246,    -1,    31,    -1,   217,   213,    -1,
1887
 
     246,    -1,   236,   246,    -1,   219,    -1,   220,    -1,   220,
1888
 
     219,    -1,    19,    -1,    21,    -1,    22,    -1,    25,    -1,
1889
 
      23,    -1,    24,    -1,    27,    -1,    20,    -1,    29,    -1,
1890
 
      -1,   222,   227,    -1,    10,    -1,     3,    -1,   256,    -1,
1891
 
     224,    34,   225,    -1,   225,    -1,     3,    -1,     3,    46,
1892
 
     226,    -1,   256,    -1,   227,    -1,    10,    -1,   228,    -1,
1893
 
     251,    -1,    47,    32,   215,   205,    33,    -1,   229,    -1,
1894
 
     215,    -1,    32,   227,    33,    -1,    32,   227,    33,   227,
1895
 
      -1,    32,   227,   212,    33,   227,    -1,    32,   227,   103,
1896
 
      33,   227,    -1,    32,   227,   212,   103,    33,   227,    -1,
1897
 
      11,    -1,    12,    -1,    13,    -1,    14,    -1,    15,    -1,
1898
 
      16,    -1,    17,    -1,   227,   107,   227,    -1,   227,   106,
1899
 
     227,    -1,   227,   109,   227,    -1,   227,   108,   227,    -1,
1900
 
     227,   103,   227,    -1,   227,   101,   227,    -1,   227,   102,
1901
 
     227,    -1,   227,   105,   227,    -1,   227,   104,   227,    -1,
1902
 
     227,   100,   227,    -1,   227,    99,   227,    -1,   106,   227,
1903
 
      -1,   107,   227,    -1,   111,   227,    -1,   110,   227,    -1,
1904
 
     215,    32,    -1,   231,    -1,    -1,    66,   232,   233,    -1,
1905
 
     256,    -1,   234,    -1,   233,    34,   234,    -1,   237,   246,
1906
 
      -1,   237,   235,   237,   246,    -1,    64,    -1,    63,    -1,
1907
 
      65,    -1,    61,    -1,    44,    -1,    45,    -1,    62,    -1,
1908
 
      68,    -1,   256,    -1,   213,    -1,    70,    32,   196,    33,
1909
 
      -1,   213,    70,    32,   196,    33,    -1,   256,    -1,   238,
1910
 
     240,    35,    -1,   238,   240,    38,    -1,    32,   196,    33,
1911
 
      35,    -1,    32,   196,    33,    38,    -1,    46,   221,    35,
1912
 
      -1,    66,   241,    -1,   256,    -1,   242,    -1,   241,    34,
1913
 
     242,    -1,   246,    32,    -1,    84,   200,    85,    -1,   256,
1914
 
      -1,     3,    -1,   251,    -1,   244,    -1,   256,    -1,   248,
1915
 
     247,    -1,    90,   113,   248,   247,    -1,   248,    -1,    90,
1916
 
     113,   248,    -1,    94,    -1,    90,   113,    94,    -1,   113,
1917
 
     248,   247,    -1,   113,   248,    -1,   113,    94,    -1,    92,
1918
 
     248,    -1,     3,   243,    -1,     3,   250,    -1,    90,   113,
1919
 
       3,   250,    -1,     3,    -1,    90,   113,     3,    -1,    94,
1920
 
      -1,    90,   113,    94,    -1,   113,     3,   250,    -1,   113,
1921
 
       3,    -1,   113,    94,    -1,    92,     3,    -1,   251,     6,
1922
 
      -1,     6,    -1,   251,    -1,    38,    -1,     4,    -1,    32,
1923
 
     254,    33,    -1,   256,    -1,   244,    46,   255,    -1,   244,
1924
 
      46,   255,    34,   254,    -1,   244,    -1,   244,    34,   254,
1925
 
      -1,   244,    46,   126,    -1,   244,    46,   126,    34,   254,
1926
 
      -1,   251,    -1,   228,    -1,    -1
 
1813
     116,     0,    -1,   117,    -1,    97,   200,    36,    -1,    97,
 
1814
       1,    -1,    98,   200,    36,    -1,    98,     1,    -1,   117,
 
1815
     118,    -1,   257,    -1,   119,    -1,   156,    -1,   164,    -1,
 
1816
      36,    -1,     1,    -1,   163,    -1,     1,    96,    -1,   120,
 
1817
      -1,   122,    -1,   123,    -1,   124,    -1,   125,    -1,   126,
 
1818
      -1,   129,    -1,   130,    -1,   133,    -1,   134,    -1,   135,
 
1819
      -1,   136,    -1,   137,    -1,   138,    -1,   141,    -1,   143,
 
1820
      -1,   146,    -1,   148,    -1,   153,    -1,   154,    -1,   155,
 
1821
      -1,    -1,    57,   254,   247,    39,   121,   178,    40,    -1,
 
1822
      80,   152,    39,   150,    40,    -1,    81,   150,    36,    -1,
 
1823
      53,     3,    47,   222,    36,    -1,    53,   216,   208,   205,
 
1824
      36,    -1,    53,     1,    36,    -1,    79,     4,    -1,    79,
 
1825
     252,    -1,    78,    33,     3,    34,    39,    -1,    78,    39,
 
1826
      -1,    78,    33,     3,    34,    36,    -1,    78,    36,    -1,
 
1827
     252,    39,   200,    40,    -1,   252,    -1,   127,    -1,    83,
 
1828
      33,   128,    35,   255,    34,     4,    -1,    83,    33,   128,
 
1829
      35,   255,    34,    39,    -1,    83,    33,   128,    34,    36,
 
1830
      -1,    -1,   132,   254,   252,    50,   131,   117,    51,    -1,
 
1831
       7,    -1,     8,    -1,    76,     4,    -1,    76,    39,    -1,
 
1832
       4,    -1,     9,    33,   245,    34,   252,    -1,     9,    33,
 
1833
     245,    34,     4,    -1,     9,    33,   245,    34,    39,    -1,
 
1834
      49,   254,   245,    -1,    54,    33,   245,    34,    -1,    54,
 
1835
      33,    34,    -1,    75,    33,     3,    34,   196,     3,    36,
 
1836
      -1,    75,    33,     3,    34,   196,   216,   208,    36,    -1,
 
1837
      58,   140,     3,    47,   139,    -1,    58,   140,     3,    -1,
 
1838
     252,    -1,     4,    -1,    33,     3,    34,    -1,   257,    -1,
 
1839
     142,   208,   245,    36,    -1,   142,    33,   245,    34,   208,
 
1840
     239,    36,    -1,   142,    33,   245,    34,   252,    36,    -1,
 
1841
      55,    -1,    56,    -1,    59,    33,   245,    34,   208,   239,
 
1842
     144,    -1,    59,    33,   245,    35,   256,    34,   208,   239,
 
1843
      36,    -1,    59,    33,   245,   145,    34,   208,   239,   144,
 
1844
      -1,    59,    33,   245,    35,   256,   145,    34,   208,   239,
 
1845
      36,    -1,    59,    33,   245,    34,   144,    -1,    59,    33,
 
1846
     245,    35,   256,    34,    36,    -1,    59,    33,   245,   145,
 
1847
      34,   144,    -1,    59,    33,   245,    35,   256,   145,    34,
 
1848
      36,    -1,   253,    -1,    36,    -1,    90,    33,   197,    34,
 
1849
      36,    -1,    35,   245,    47,   256,    -1,    35,   245,    47,
 
1850
     256,   145,    -1,    60,    33,   147,    34,   208,   239,    36,
 
1851
      -1,   197,    -1,    11,    35,   200,    -1,    77,    33,   149,
 
1852
      34,   150,   253,    -1,    77,    33,   149,    34,   150,    36,
 
1853
      -1,    77,    33,   149,    34,   150,    47,   152,    36,    -1,
 
1854
     255,    -1,   152,   151,    -1,    35,   152,   151,    -1,   257,
 
1855
      -1,   216,   207,    -1,    33,   197,    34,    -1,    33,   197,
 
1856
      34,    33,   197,    34,    -1,    89,    33,   197,    34,    36,
 
1857
      -1,    82,    33,   246,    34,   250,    85,   201,    86,    36,
 
1858
      -1,    84,   252,    -1,   158,    -1,   162,    -1,   161,    -1,
 
1859
      -1,    37,   252,    39,   157,   117,    40,    -1,   196,   216,
 
1860
     208,   160,   159,    -1,    36,    -1,    35,   208,   160,   159,
 
1861
      -1,    39,    -1,   205,    -1,   214,   205,    -1,    71,    33,
 
1862
     197,    34,   205,    -1,   214,    71,    33,   197,    34,   205,
 
1863
      -1,   196,    61,     3,    36,    -1,   196,    61,   224,    39,
 
1864
     225,    40,    36,    -1,   196,    61,   224,    39,   225,    40,
 
1865
     208,   159,    -1,   196,   216,    33,   197,    34,   240,    -1,
 
1866
     165,    -1,   169,    -1,   170,    -1,   174,    -1,   175,    -1,
 
1867
     185,    -1,    -1,   196,   237,   247,   231,    39,   166,   178,
 
1868
      40,   168,    -1,    -1,   196,   237,    39,   167,   178,    40,
 
1869
     208,   159,    -1,    36,    -1,   208,   159,    -1,   196,   237,
 
1870
     247,    36,    -1,    -1,    94,    85,   173,    86,   171,   172,
 
1871
      -1,    94,   237,   247,    -1,   158,    -1,   165,    -1,   182,
 
1872
      -1,   170,    -1,   169,    -1,   198,    -1,    73,   247,    36,
 
1873
      -1,    73,    74,   247,    36,    -1,    -1,    74,   247,    39,
 
1874
     176,   117,    40,    -1,    -1,    74,    39,   177,   117,    40,
 
1875
      -1,    74,     3,    47,   247,    36,    -1,   181,   178,    -1,
 
1876
      -1,    57,    39,   179,   178,    40,   178,    -1,   257,    -1,
 
1877
      -1,     1,   180,   178,    -1,   156,    -1,   182,    -1,   183,
 
1878
      -1,   186,    -1,   192,    -1,   184,    -1,   169,    -1,   187,
 
1879
      -1,   196,   247,    36,    -1,   174,    -1,   170,    -1,   185,
 
1880
      -1,   154,    -1,   155,    -1,   195,    -1,   129,    -1,   153,
 
1881
      -1,    36,    -1,   196,   216,    33,   197,    34,   240,    -1,
 
1882
     112,   249,    33,   197,    34,   193,    -1,    69,   112,   249,
 
1883
      33,   197,    34,   194,    -1,   196,    96,   216,   213,    33,
 
1884
     197,    34,   194,    -1,   196,    96,   216,   104,    33,   197,
 
1885
      34,   194,    -1,   196,    96,   216,    33,   197,    34,   194,
 
1886
      -1,    72,    33,   197,    34,    39,    -1,    65,    67,    -1,
 
1887
      64,    67,    -1,    66,    67,    -1,    -1,   196,   237,     3,
 
1888
      39,   188,   191,    36,    -1,    -1,   196,   237,    39,   189,
 
1889
     191,    36,    -1,    -1,   196,   237,   247,    67,   234,    39,
 
1890
     190,    36,    -1,   208,    -1,   257,    -1,   138,    -1,   124,
 
1891
      -1,   136,    -1,   141,    -1,   143,    -1,   146,    -1,   134,
 
1892
      -1,   148,    -1,   122,    -1,   123,    -1,   125,    -1,   239,
 
1893
      36,    -1,   239,    39,    -1,   239,    36,    -1,   239,    47,
 
1894
     222,    36,    -1,   239,    39,    -1,   196,   216,    67,   228,
 
1895
      36,    -1,    37,    -1,    37,   252,    -1,    68,    -1,    18,
 
1896
      -1,    69,    -1,    70,    -1,   257,    -1,   198,    -1,   200,
 
1897
     199,    -1,   257,    -1,    35,   200,   199,    -1,   257,    -1,
 
1898
     217,   206,    -1,    94,    85,   237,    86,   237,   247,    -1,
 
1899
      41,    41,    41,    -1,   202,    -1,   204,   203,    -1,   257,
 
1900
      -1,    35,   204,   203,    -1,   257,    -1,   200,    -1,   229,
 
1901
      -1,     6,    -1,    47,   222,    -1,    47,   104,   208,    -1,
 
1902
      47,    39,    -1,    67,   228,    -1,   257,    -1,   208,   205,
 
1903
      -1,   211,   205,    -1,   205,    -1,   208,    -1,   211,    -1,
 
1904
     257,    -1,   213,   209,    -1,   213,   104,   209,    -1,   210,
 
1905
      -1,   104,   209,    -1,   247,    92,   209,    -1,   213,   247,
 
1906
      92,   209,    -1,   213,   247,    92,   104,   209,    -1,   247,
 
1907
      92,   104,   209,    -1,   247,    -1,   112,   247,    -1,    33,
 
1908
     247,    34,    -1,    33,   213,   209,    34,    -1,    33,   247,
 
1909
      92,   209,    34,    -1,   209,    50,    51,    -1,   209,    50,
 
1910
     228,    51,    -1,   209,    33,   197,    34,    -1,   247,    -1,
 
1911
     112,   247,    -1,    33,   213,   210,    34,    -1,    33,   104,
 
1912
     210,    34,    -1,    33,   247,    92,   210,    34,    -1,   210,
 
1913
      50,    51,    -1,   210,    50,   228,    51,    -1,   210,    33,
 
1914
     197,    34,    -1,   213,    -1,   213,   212,    -1,   213,   104,
 
1915
      -1,   213,   104,   212,    -1,   212,    -1,   104,   212,    -1,
 
1916
     104,    -1,   247,    92,    -1,   213,   247,    92,    -1,   213,
 
1917
     247,    92,   212,    -1,   212,    50,    51,    -1,   212,    50,
 
1918
     228,    51,    -1,    50,    51,    -1,    50,   228,    51,    -1,
 
1919
      33,   211,    34,    -1,   212,    33,   197,    34,    -1,    33,
 
1920
     197,    34,    -1,   110,   214,   213,    -1,   110,   213,    -1,
 
1921
     110,   214,    -1,   110,    -1,   215,    -1,   215,   214,    -1,
 
1922
      42,    -1,    43,    -1,    44,    -1,   217,    -1,   214,   218,
 
1923
      -1,   218,    -1,   219,    -1,    29,    -1,    27,    -1,    31,
 
1924
     244,    -1,    61,   247,    -1,    32,    -1,   218,   214,    -1,
 
1925
     247,    -1,   237,   247,    -1,   220,    -1,   221,    -1,   221,
 
1926
     220,    -1,    19,    -1,    21,    -1,    22,    -1,    25,    -1,
 
1927
      26,    -1,    23,    -1,    24,    -1,    28,    -1,    20,    -1,
 
1928
      30,    -1,    -1,   223,   228,    -1,    10,    -1,     3,    -1,
 
1929
     257,    -1,   225,    35,   226,    -1,   226,    -1,     3,    -1,
 
1930
       3,    47,   227,    -1,   257,    -1,   228,    -1,    10,    -1,
 
1931
     229,    -1,   252,    -1,    48,    33,   216,   206,    34,    -1,
 
1932
     230,    -1,   216,    -1,    33,   228,    34,    -1,    33,   228,
 
1933
      34,   228,    -1,    33,   228,   213,    34,   228,    -1,    33,
 
1934
     228,   104,    34,   228,    -1,    33,   228,   213,   104,    34,
 
1935
     228,    -1,    11,    -1,    12,    -1,    13,    -1,    14,    -1,
 
1936
      15,    -1,    16,    -1,    17,    -1,   228,   108,   228,    -1,
 
1937
     228,   107,   228,    -1,   228,   110,   228,    -1,   228,   109,
 
1938
     228,    -1,   228,   104,   228,    -1,   228,   102,   228,    -1,
 
1939
     228,   103,   228,    -1,   228,   106,   228,    -1,   228,   105,
 
1940
     228,    -1,   228,   101,   228,    -1,   228,   100,   228,    -1,
 
1941
     107,   228,    -1,   108,   228,    -1,   112,   228,    -1,   111,
 
1942
     228,    -1,   216,    33,    -1,   232,    -1,    -1,    67,   233,
 
1943
     234,    -1,   257,    -1,   235,    -1,   234,    35,   235,    -1,
 
1944
     238,   247,    -1,   238,   236,   238,   247,    -1,    65,    -1,
 
1945
      64,    -1,    66,    -1,    62,    -1,    45,    -1,    46,    -1,
 
1946
      63,    -1,    69,    -1,   257,    -1,   214,    -1,    71,    33,
 
1947
     197,    34,    -1,   214,    71,    33,   197,    34,    -1,   257,
 
1948
      -1,   239,   241,    36,    -1,   239,   241,    39,    -1,    33,
 
1949
     197,    34,    36,    -1,    33,   197,    34,    39,    -1,    47,
 
1950
     222,    36,    -1,    67,   242,    -1,   257,    -1,   243,    -1,
 
1951
     242,    35,   243,    -1,   247,    33,    -1,    85,   201,    86,
 
1952
      -1,   257,    -1,     3,    -1,   252,    -1,   245,    -1,   257,
 
1953
      -1,   249,   248,    -1,    91,   114,   249,   248,    -1,   249,
 
1954
      -1,    91,   114,   249,    -1,    95,    -1,    91,   114,    95,
 
1955
      -1,   114,   249,   248,    -1,   114,   249,    -1,   114,    95,
 
1956
      -1,    93,   249,    -1,     3,   244,    -1,     3,   251,    -1,
 
1957
      91,   114,     3,   251,    -1,     3,    -1,    91,   114,     3,
 
1958
      -1,    95,    -1,    91,   114,    95,    -1,   114,     3,   251,
 
1959
      -1,   114,     3,    -1,   114,    95,    -1,    93,     3,    -1,
 
1960
     252,     6,    -1,     6,    -1,   252,    -1,    39,    -1,     4,
 
1961
      -1,    33,   255,    34,    -1,   257,    -1,   245,    47,   256,
 
1962
      -1,   245,    47,   256,    35,   255,    -1,   245,    -1,   245,
 
1963
      35,   255,    -1,   245,    47,   127,    -1,   245,    47,   127,
 
1964
      35,   255,    -1,   252,    -1,   229,    -1,    -1
1927
1965
};
1928
1966
 
1929
1967
/* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
1930
1968
static const unsigned short yyrline[] =
1931
1969
{
1932
 
       0,  1352,  1352,  1364,  1367,  1370,  1373,  1378,  1383,  1388,
1933
 
    1389,  1390,  1391,  1392,  1404,  1420,  1430,  1431,  1432,  1433,
1934
 
    1434,  1435,  1436,  1437,  1438,  1439,  1440,  1441,  1442,  1443,
1935
 
    1444,  1445,  1446,  1447,  1448,  1449,  1450,  1457,  1457,  1529,
1936
 
    1539,  1550,  1569,  1591,  1602,  1611,  1630,  1636,  1642,  1647,
1937
 
    1658,  1665,  1669,  1674,  1683,  1695,  1708,  1708,  1735,  1736,
1938
 
    1743,  1763,  1790,  1794,  1804,  1809,  1824,  1851,  1856,  1869,
1939
 
    1875,  1901,  1907,  1914,  1915,  1918,  1919,  1927,  1938,  1982,
1940
 
    1993,  1996,  2023,  2028,  2033,  2038,  2045,  2050,  2055,  2060,
1941
 
    2067,  2068,  2069,  2072,  2077,  2087,  2123,  2124,  2153,  2165,
1942
 
    2173,  2186,  2208,  2214,  2218,  2221,  2229,  2234,  2246,  2256,
1943
 
    2500,  2510,  2517,  2518,  2522,  2522,  2553,  2607,  2611,  2631,
1944
 
    2637,  2643,  2649,  2655,  2668,  2683,  2694,  2763,  2811,  2812,
1945
 
    2813,  2814,  2815,  2816,  2822,  2822,  3005,  3005,  3100,  3101,
1946
 
    3113,  3133,  3133,  3358,  3364,  3367,  3370,  3373,  3376,  3381,
1947
 
    3413,  3420,  3447,  3447,  3474,  3474,  3495,  3522,  3537,  3537,
1948
 
    3547,  3548,  3548,  3568,  3569,  3584,  3585,  3586,  3587,  3588,
1949
 
    3589,  3590,  3591,  3592,  3593,  3594,  3595,  3596,  3597,  3598,
1950
 
    3599,  3608,  3630,  3648,  3683,  3697,  3714,  3732,  3739,  3746,
1951
 
    3754,  3777,  3777,  3805,  3805,  3835,  3835,  3844,  3845,  3851,
1952
 
    3854,  3858,  3861,  3862,  3863,  3864,  3865,  3866,  3867,  3868,
1953
 
    3871,  3876,  3883,  3891,  3899,  3910,  3916,  3917,  3925,  3926,
1954
 
    3927,  3928,  3929,  3936,  3947,  3955,  3958,  3962,  3966,  3976,
1955
 
    3981,  3989,  4002,  4010,  4013,  4017,  4021,  4047,  4053,  4061,
1956
 
    4072,  4093,  4102,  4110,  4120,  4124,  4128,  4135,  4152,  4169,
1957
 
    4177,  4185,  4194,  4198,  4207,  4218,  4230,  4240,  4253,  4260,
1958
 
    4268,  4284,  4292,  4303,  4314,  4325,  4344,  4352,  4369,  4377,
1959
 
    4384,  4395,  4406,  4417,  4436,  4442,  4448,  4455,  4464,  4467,
1960
 
    4476,  4483,  4490,  4500,  4511,  4522,  4533,  4540,  4547,  4550,
1961
 
    4567,  4577,  4584,  4590,  4595,  4601,  4605,  4611,  4612,  4613,
1962
 
    4619,  4625,  4629,  4632,  4635,  4636,  4637,  4638,  4639,  4640,
1963
 
    4645,  4648,  4653,  4678,  4681,  4735,  4739,  4743,  4747,  4751,
1964
 
    4755,  4759,  4763,  4767,  4773,  4773,  4794,  4812,  4813,  4816,
1965
 
    4829,  4837,  4843,  4856,  4859,  4868,  4879,  4880,  4884,  4889,
1966
 
    4890,  4909,  4916,  4922,  4929,  4936,  4946,  4947,  4948,  4949,
1967
 
    4950,  4951,  4952,  4955,  4959,  4963,  4967,  4971,  4975,  4979,
1968
 
    4983,  4987,  4991,  4995,  4999,  5003,  5007,  5011,  5015,  5027,
1969
 
    5032,  5032,  5033,  5036,  5047,  5056,  5069,  5082,  5083,  5084,
1970
 
    5088,  5092,  5096,  5100,  5106,  5107,  5110,  5115,  5120,  5125,
1971
 
    5132,  5139,  5146,  5154,  5162,  5170,  5171,  5174,  5175,  5178,
1972
 
    5184,  5190,  5193,  5194,  5197,  5198,  5201,  5206,  5210,  5213,
1973
 
    5216,  5219,  5224,  5228,  5231,  5238,  5244,  5253,  5258,  5262,
1974
 
    5265,  5268,  5271,  5276,  5280,  5283,  5286,  5292,  5297,  5300,
1975
 
    5303,  5307,  5312,  5325,  5329,  5334,  5340,  5344,  5349,  5353,
1976
 
    5360,  5363,  5368
 
1970
       0,  1388,  1388,  1400,  1403,  1406,  1409,  1414,  1419,  1424,
 
1971
    1425,  1426,  1427,  1428,  1440,  1456,  1466,  1467,  1468,  1469,
 
1972
    1470,  1471,  1472,  1473,  1474,  1475,  1476,  1477,  1478,  1479,
 
1973
    1480,  1481,  1482,  1483,  1484,  1485,  1486,  1493,  1493,  1565,
 
1974
    1575,  1586,  1605,  1627,  1638,  1647,  1666,  1672,  1678,  1683,
 
1975
    1694,  1701,  1705,  1710,  1719,  1731,  1744,  1744,  1795,  1796,
 
1976
    1803,  1823,  1850,  1854,  1864,  1869,  1884,  1918,  1923,  1936,
 
1977
    1942,  1968,  1974,  1981,  1982,  1985,  1986,  1994,  2005,  2050,
 
1978
    2061,  2064,  2091,  2096,  2101,  2106,  2113,  2118,  2123,  2128,
 
1979
    2135,  2136,  2137,  2140,  2145,  2155,  2192,  2193,  2222,  2253,
 
1980
    2261,  2274,  2296,  2302,  2306,  2309,  2317,  2322,  2334,  2344,
 
1981
    2584,  2594,  2601,  2602,  2606,  2606,  2637,  2691,  2695,  2715,
 
1982
    2721,  2727,  2733,  2739,  2752,  2767,  2778,  2847,  2895,  2896,
 
1983
    2897,  2898,  2899,  2900,  2906,  2906,  3099,  3099,  3194,  3195,
 
1984
    3207,  3227,  3227,  3457,  3463,  3466,  3469,  3472,  3475,  3480,
 
1985
    3512,  3519,  3546,  3546,  3573,  3573,  3594,  3621,  3636,  3636,
 
1986
    3646,  3647,  3647,  3667,  3668,  3683,  3684,  3685,  3686,  3687,
 
1987
    3688,  3689,  3690,  3691,  3692,  3693,  3694,  3695,  3696,  3697,
 
1988
    3698,  3707,  3729,  3747,  3782,  3796,  3813,  3831,  3838,  3845,
 
1989
    3853,  3876,  3876,  3904,  3904,  3934,  3934,  3952,  3953,  3959,
 
1990
    3962,  3966,  3969,  3970,  3971,  3972,  3973,  3974,  3975,  3976,
 
1991
    3979,  3984,  3991,  3999,  4007,  4018,  4024,  4025,  4033,  4034,
 
1992
    4035,  4036,  4037,  4044,  4055,  4063,  4066,  4070,  4074,  4084,
 
1993
    4089,  4097,  4110,  4118,  4121,  4125,  4129,  4155,  4161,  4169,
 
1994
    4180,  4201,  4210,  4218,  4228,  4232,  4236,  4243,  4260,  4277,
 
1995
    4285,  4293,  4302,  4306,  4315,  4326,  4338,  4348,  4361,  4368,
 
1996
    4376,  4392,  4400,  4411,  4422,  4433,  4452,  4460,  4477,  4485,
 
1997
    4492,  4503,  4514,  4525,  4544,  4550,  4556,  4563,  4572,  4575,
 
1998
    4584,  4591,  4598,  4608,  4619,  4630,  4641,  4648,  4655,  4658,
 
1999
    4675,  4685,  4692,  4698,  4703,  4709,  4713,  4719,  4720,  4721,
 
2000
    4727,  4733,  4737,  4740,  4743,  4744,  4745,  4746,  4747,  4748,
 
2001
    4753,  4756,  4761,  4786,  4789,  4843,  4847,  4851,  4855,  4859,
 
2002
    4863,  4867,  4871,  4875,  4879,  4885,  4885,  4906,  4924,  4925,
 
2003
    4928,  4941,  4949,  4955,  4968,  4971,  4980,  4991,  4992,  4996,
 
2004
    5001,  5002,  5021,  5028,  5034,  5041,  5048,  5058,  5059,  5060,
 
2005
    5061,  5062,  5063,  5064,  5067,  5071,  5075,  5079,  5083,  5087,
 
2006
    5091,  5095,  5099,  5103,  5107,  5111,  5115,  5119,  5123,  5127,
 
2007
    5139,  5144,  5144,  5145,  5148,  5159,  5168,  5181,  5194,  5195,
 
2008
    5196,  5200,  5204,  5208,  5212,  5218,  5219,  5222,  5227,  5232,
 
2009
    5237,  5244,  5251,  5258,  5266,  5274,  5282,  5283,  5286,  5287,
 
2010
    5290,  5296,  5302,  5305,  5306,  5309,  5310,  5313,  5318,  5322,
 
2011
    5325,  5328,  5331,  5336,  5340,  5343,  5350,  5356,  5365,  5370,
 
2012
    5374,  5377,  5380,  5383,  5388,  5392,  5395,  5398,  5404,  5409,
 
2013
    5412,  5415,  5419,  5424,  5437,  5441,  5446,  5452,  5456,  5461,
 
2014
    5465,  5472,  5475,  5480
1977
2015
};
1978
2016
#endif
1979
2017
 
1986
2024
  "INCLUDE", "IMPORT", "INSERT", "CHARCONST", "NUM_INT", "NUM_FLOAT", 
1987
2025
  "NUM_UNSIGNED", "NUM_LONG", "NUM_ULONG", "NUM_LONGLONG", 
1988
2026
  "NUM_ULONGLONG", "TYPEDEF", "TYPE_INT", "TYPE_UNSIGNED", "TYPE_SHORT", 
1989
 
  "TYPE_LONG", "TYPE_FLOAT", "TYPE_DOUBLE", "TYPE_CHAR", "TYPE_VOID", 
1990
 
  "TYPE_SIGNED", "TYPE_BOOL", "TYPE_COMPLEX", "TYPE_TYPEDEF", "TYPE_RAW", 
1991
 
  "LPAREN", "RPAREN", "COMMA", "SEMI", "EXTERN", "INIT", "LBRACE", 
1992
 
  "RBRACE", "PERIOD", "CONST_QUAL", "VOLATILE", "REGISTER", "STRUCT", 
1993
 
  "UNION", "EQUAL", "SIZEOF", "MODULE", "LBRACKET", "RBRACKET", "ILLEGAL", 
1994
 
  "CONSTANT", "NAME", "RENAME", "NAMEWARN", "EXTEND", "PRAGMA", "FEATURE", 
1995
 
  "VARARGS", "ENUM", "CLASS", "TYPENAME", "PRIVATE", "PUBLIC", 
 
2027
  "TYPE_LONG", "TYPE_FLOAT", "TYPE_DOUBLE", "TYPE_CHAR", "TYPE_WCHAR", 
 
2028
  "TYPE_VOID", "TYPE_SIGNED", "TYPE_BOOL", "TYPE_COMPLEX", "TYPE_TYPEDEF", 
 
2029
  "TYPE_RAW", "LPAREN", "RPAREN", "COMMA", "SEMI", "EXTERN", "INIT", 
 
2030
  "LBRACE", "RBRACE", "PERIOD", "CONST_QUAL", "VOLATILE", "REGISTER", 
 
2031
  "STRUCT", "UNION", "EQUAL", "SIZEOF", "MODULE", "LBRACKET", "RBRACKET", 
 
2032
  "ILLEGAL", "CONSTANT", "NAME", "RENAME", "NAMEWARN", "EXTEND", "PRAGMA", 
 
2033
  "FEATURE", "VARARGS", "ENUM", "CLASS", "TYPENAME", "PRIVATE", "PUBLIC", 
1996
2034
  "PROTECTED", "COLON", "STATIC", "VIRTUAL", "FRIEND", "THROW", "CATCH", 
1997
2035
  "USING", "NAMESPACE", "NATIVE", "INLINE", "TYPEMAP", "EXCEPT", "ECHO", 
1998
2036
  "APPLY", "CLEAR", "SWIGTEMPLATE", "FRAGMENT", "WARN", "LESSTHAN", 
2054
2092
     335,   336,   337,   338,   339,   340,   341,   342,   343,   344,
2055
2093
     345,   346,   347,   348,   349,   350,   351,   352,   353,   354,
2056
2094
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,
2057
 
     365,   366,   367,   368
 
2095
     365,   366,   367,   368,   369
2058
2096
};
2059
2097
# endif
2060
2098
 
2061
2099
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
2062
2100
static const unsigned short yyr1[] =
2063
2101
{
2064
 
       0,   114,   115,   115,   115,   115,   115,   116,   116,   117,
2065
 
     117,   117,   117,   117,   117,   117,   118,   118,   118,   118,
2066
 
     118,   118,   118,   118,   118,   118,   118,   118,   118,   118,
2067
 
     118,   118,   118,   118,   118,   118,   118,   120,   119,   121,
2068
 
     122,   123,   123,   123,   124,   124,   125,   125,   125,   125,
2069
 
     126,   127,   127,   128,   128,   128,   130,   129,   131,   131,
2070
 
     132,   132,   133,   133,   133,   133,   134,   135,   135,   136,
2071
 
     136,   137,   137,   138,   138,   139,   139,   140,   140,   140,
2072
 
     141,   141,   142,   142,   142,   142,   142,   142,   142,   142,
2073
 
     143,   143,   143,   144,   144,   145,   146,   146,   147,   147,
2074
 
     147,   148,   149,   150,   150,   151,   151,   151,   152,   153,
2075
 
     154,   155,   155,   155,   156,   155,   157,   158,   158,   158,
2076
 
     159,   159,   159,   159,   160,   161,   161,   162,   163,   163,
2077
 
     163,   163,   163,   163,   165,   164,   166,   164,   167,   167,
2078
 
     168,   170,   169,   169,   171,   171,   171,   171,   171,   172,
2079
 
     173,   173,   175,   174,   176,   174,   174,   177,   178,   177,
2080
 
     177,   179,   177,   180,   180,   180,   180,   180,   180,   180,
2081
 
     180,   180,   180,   180,   180,   180,   180,   180,   180,   180,
2082
 
     180,   181,   182,   182,   183,   183,   183,   184,   185,   185,
2083
 
     185,   187,   186,   188,   186,   189,   186,   190,   190,   191,
2084
 
     191,   191,   191,   191,   191,   191,   191,   191,   191,   191,
2085
 
     192,   192,   193,   193,   193,   194,   195,   195,   195,   195,
2086
 
     195,   195,   195,   196,   197,   197,   198,   198,   199,   199,
2087
 
     199,   200,   201,   201,   202,   202,   203,   203,   203,   204,
2088
 
     204,   204,   204,   204,   205,   205,   205,   206,   206,   206,
2089
 
     207,   207,   207,   207,   207,   207,   207,   207,   208,   208,
2090
 
     208,   208,   208,   208,   208,   208,   209,   209,   209,   209,
2091
 
     209,   209,   209,   209,   210,   210,   210,   210,   210,   210,
 
2102
       0,   115,   116,   116,   116,   116,   116,   117,   117,   118,
 
2103
     118,   118,   118,   118,   118,   118,   119,   119,   119,   119,
 
2104
     119,   119,   119,   119,   119,   119,   119,   119,   119,   119,
 
2105
     119,   119,   119,   119,   119,   119,   119,   121,   120,   122,
 
2106
     123,   124,   124,   124,   125,   125,   126,   126,   126,   126,
 
2107
     127,   128,   128,   129,   129,   129,   131,   130,   132,   132,
 
2108
     133,   133,   134,   134,   134,   134,   135,   136,   136,   137,
 
2109
     137,   138,   138,   139,   139,   140,   140,   141,   141,   141,
 
2110
     142,   142,   143,   143,   143,   143,   143,   143,   143,   143,
 
2111
     144,   144,   144,   145,   145,   146,   147,   147,   148,   148,
 
2112
     148,   149,   150,   151,   151,   152,   152,   152,   153,   154,
 
2113
     155,   156,   156,   156,   157,   156,   158,   159,   159,   159,
 
2114
     160,   160,   160,   160,   161,   162,   162,   163,   164,   164,
 
2115
     164,   164,   164,   164,   166,   165,   167,   165,   168,   168,
 
2116
     169,   171,   170,   170,   172,   172,   172,   172,   172,   173,
 
2117
     174,   174,   176,   175,   177,   175,   175,   178,   179,   178,
 
2118
     178,   180,   178,   181,   181,   181,   181,   181,   181,   181,
 
2119
     181,   181,   181,   181,   181,   181,   181,   181,   181,   181,
 
2120
     181,   182,   183,   183,   184,   184,   184,   185,   186,   186,
 
2121
     186,   188,   187,   189,   187,   190,   187,   191,   191,   192,
 
2122
     192,   192,   192,   192,   192,   192,   192,   192,   192,   192,
 
2123
     193,   193,   194,   194,   194,   195,   196,   196,   196,   196,
 
2124
     196,   196,   196,   197,   198,   198,   199,   199,   200,   200,
 
2125
     200,   201,   202,   202,   203,   203,   204,   204,   204,   205,
 
2126
     205,   205,   205,   205,   206,   206,   206,   207,   207,   207,
 
2127
     208,   208,   208,   208,   208,   208,   208,   208,   209,   209,
 
2128
     209,   209,   209,   209,   209,   209,   210,   210,   210,   210,
2092
2129
     210,   210,   210,   210,   211,   211,   211,   211,   211,   211,
2093
 
     211,   212,   212,   212,   212,   213,   213,   214,   214,   214,
2094
 
     215,   216,   216,   217,   217,   217,   217,   217,   217,   217,
2095
 
     217,   217,   218,   219,   219,   220,   220,   220,   220,   220,
2096
 
     220,   220,   220,   220,   222,   221,   221,   223,   223,   224,
2097
 
     224,   225,   225,   225,   226,   226,   227,   227,   227,   227,
2098
 
     227,   227,   227,   227,   227,   227,   228,   228,   228,   228,
2099
 
     228,   228,   228,   229,   229,   229,   229,   229,   229,   229,
2100
 
     229,   229,   229,   229,   229,   229,   229,   229,   229,   230,
2101
 
     232,   231,   231,   233,   233,   234,   234,   235,   235,   235,
2102
 
     236,   236,   236,   236,   237,   237,   238,   238,   238,   238,
2103
 
     239,   239,   239,   239,   239,   240,   240,   241,   241,   242,
2104
 
     243,   243,   244,   244,   245,   245,   246,   246,   246,   246,
2105
 
     246,   246,   247,   247,   247,   247,   248,   249,   249,   249,
2106
 
     249,   249,   249,   250,   250,   250,   250,   251,   251,   252,
2107
 
     252,   252,   253,   253,   254,   254,   254,   254,   254,   254,
2108
 
     255,   255,   256
 
2130
     211,   211,   211,   211,   212,   212,   212,   212,   212,   212,
 
2131
     212,   213,   213,   213,   213,   214,   214,   215,   215,   215,
 
2132
     216,   217,   217,   218,   218,   218,   218,   218,   218,   218,
 
2133
     218,   218,   219,   220,   220,   221,   221,   221,   221,   221,
 
2134
     221,   221,   221,   221,   221,   223,   222,   222,   224,   224,
 
2135
     225,   225,   226,   226,   226,   227,   227,   228,   228,   228,
 
2136
     228,   228,   228,   228,   228,   228,   228,   229,   229,   229,
 
2137
     229,   229,   229,   229,   230,   230,   230,   230,   230,   230,
 
2138
     230,   230,   230,   230,   230,   230,   230,   230,   230,   230,
 
2139
     231,   233,   232,   232,   234,   234,   235,   235,   236,   236,
 
2140
     236,   237,   237,   237,   237,   238,   238,   239,   239,   239,
 
2141
     239,   240,   240,   240,   240,   240,   241,   241,   242,   242,
 
2142
     243,   244,   244,   245,   245,   246,   246,   247,   247,   247,
 
2143
     247,   247,   247,   248,   248,   248,   248,   249,   250,   250,
 
2144
     250,   250,   250,   250,   251,   251,   251,   251,   252,   252,
 
2145
     253,   253,   253,   254,   254,   255,   255,   255,   255,   255,
 
2146
     255,   256,   256,   257
2109
2147
};
2110
2148
 
2111
2149
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
2143
2181
       3,     3,     2,     2,     1,     1,     2,     1,     1,     1,
2144
2182
       1,     2,     1,     1,     1,     1,     2,     2,     1,     2,
2145
2183
       1,     2,     1,     1,     2,     1,     1,     1,     1,     1,
2146
 
       1,     1,     1,     1,     0,     2,     1,     1,     1,     3,
2147
 
       1,     1,     3,     1,     1,     1,     1,     1,     5,     1,
2148
 
       1,     3,     4,     5,     5,     6,     1,     1,     1,     1,
2149
 
       1,     1,     1,     3,     3,     3,     3,     3,     3,     3,
2150
 
       3,     3,     3,     3,     2,     2,     2,     2,     2,     1,
2151
 
       0,     3,     1,     1,     3,     2,     4,     1,     1,     1,
2152
 
       1,     1,     1,     1,     1,     1,     1,     4,     5,     1,
2153
 
       3,     3,     4,     4,     3,     2,     1,     1,     3,     2,
2154
 
       3,     1,     1,     1,     1,     1,     2,     4,     1,     3,
2155
 
       1,     3,     3,     2,     2,     2,     2,     2,     4,     1,
2156
 
       3,     1,     3,     3,     2,     2,     2,     2,     1,     1,
2157
 
       1,     1,     3,     1,     3,     5,     1,     3,     3,     5,
2158
 
       1,     1,     0
 
2184
       1,     1,     1,     1,     1,     0,     2,     1,     1,     1,
 
2185
       3,     1,     1,     3,     1,     1,     1,     1,     1,     5,
 
2186
       1,     1,     3,     4,     5,     5,     6,     1,     1,     1,
 
2187
       1,     1,     1,     1,     3,     3,     3,     3,     3,     3,
 
2188
       3,     3,     3,     3,     3,     2,     2,     2,     2,     2,
 
2189
       1,     0,     3,     1,     1,     3,     2,     4,     1,     1,
 
2190
       1,     1,     1,     1,     1,     1,     1,     1,     4,     5,
 
2191
       1,     3,     3,     4,     4,     3,     2,     1,     1,     3,
 
2192
       2,     3,     1,     1,     1,     1,     1,     2,     4,     1,
 
2193
       3,     1,     3,     3,     2,     2,     2,     2,     2,     4,
 
2194
       1,     3,     1,     3,     3,     2,     2,     2,     2,     1,
 
2195
       1,     1,     1,     3,     1,     3,     5,     1,     3,     3,
 
2196
       5,     1,     1,     0
2159
2197
};
2160
2198
 
2161
2199
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
2163
2201
   means the default is an error.  */
2164
2202
static const unsigned short yydefact[] =
2165
2203
{
2166
 
     442,     0,     0,     0,     0,     8,     4,   442,   315,   322,
2167
 
     316,   317,   319,   320,   318,   305,   321,   304,   323,   442,
2168
 
     308,     0,   297,   298,   299,   381,   382,     0,   380,   383,
2169
 
       0,     0,   410,     0,     0,   295,   442,   302,   303,   312,
2170
 
     313,     0,   310,   408,     6,     0,     1,    13,    62,    58,
2171
 
      59,     0,   219,    12,   216,   442,     0,     0,    80,    81,
2172
 
     442,   442,     0,     0,   218,   220,   221,     0,     0,     0,
 
2204
     443,     0,     0,     0,     0,     8,     4,   443,   315,   323,
 
2205
     316,   317,   320,   321,   318,   319,   305,   322,   304,   324,
 
2206
     443,   308,     0,   297,   298,   299,   382,   383,     0,   381,
 
2207
     384,     0,     0,   411,     0,     0,   295,   443,   302,   303,
 
2208
     312,   313,     0,   310,   409,     6,     0,     1,    13,    62,
 
2209
      58,    59,     0,   219,    12,   216,   443,     0,     0,    80,
 
2210
      81,   443,   443,     0,     0,   218,   220,   221,     0,     0,
2173
2211
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2174
 
       0,     0,     7,     9,    16,    17,    18,    19,    20,    21,
2175
 
      22,    23,   442,    24,    25,    26,    27,    28,    29,    30,
2176
 
       0,    31,    32,    33,    34,    35,    36,    10,   111,   113,
2177
 
     112,    14,    11,   128,   129,   130,   131,   132,   133,     0,
2178
 
     222,   442,   416,   401,   306,     0,   307,     0,     0,     3,
2179
 
     301,   296,   442,   324,     0,     0,   280,   294,     0,   246,
2180
 
     228,   442,   252,   442,   278,   274,   266,   243,   309,   314,
2181
 
     311,     0,     0,   406,     5,    15,     0,   428,   217,     0,
2182
 
       0,   433,     0,   442,     0,   300,     0,     0,     0,     0,
2183
 
      76,     0,   442,   442,     0,     0,   442,   154,     0,     0,
2184
 
      60,    61,     0,     0,    49,    47,    44,    45,   442,     0,
2185
 
     442,     0,   442,   442,     0,   110,   442,   442,     0,     0,
2186
 
       0,     0,     0,     0,   266,   442,     0,     0,   238,   346,
2187
 
     347,   348,   349,   350,   351,   352,   236,     0,   231,   442,
2188
 
     237,   233,   230,   411,   409,     0,   442,   280,     0,   223,
2189
 
     442,     0,   274,   310,   225,   326,   241,     0,   239,     0,
2190
 
       0,     0,   286,     0,     0,     0,     0,   340,     0,   336,
2191
 
     339,   337,   242,   442,     0,   253,   279,   258,   292,   293,
2192
 
     267,   244,   442,     0,   245,   442,     0,   276,   250,   275,
2193
 
     258,   281,   415,   414,   413,   402,     0,   403,   427,   114,
2194
 
     436,     0,    66,    43,   324,     0,   442,    68,     0,     0,
2195
 
       0,    72,     0,     0,     0,    96,     0,     0,   150,     0,
2196
 
     442,   152,     0,     0,   101,     0,     0,     0,   105,   247,
2197
 
     248,   249,    40,     0,   102,   104,   404,     0,   405,    52,
2198
 
       0,    51,     0,     0,   149,   143,     0,   442,     0,     0,
2199
 
       0,     0,     0,     0,     0,   258,     0,   442,     0,   328,
2200
 
     442,   442,   136,   311,   400,     0,   232,   235,   407,     0,
2201
 
     280,   274,   310,     0,   266,   290,     0,   224,   227,   288,
2202
 
     276,     0,   266,   281,   240,   325,     0,     0,   364,   365,
2203
 
     367,   366,   368,   287,     0,     0,     0,     0,     0,     0,
2204
 
       0,     0,     0,     0,     0,   274,   310,   259,   442,     0,
2205
 
     291,     0,   271,     0,     0,   284,     0,   251,   277,   282,
2206
 
       0,   254,   412,     0,   442,     0,     0,   432,     0,     0,
2207
 
      67,    37,    75,     0,     0,     0,     0,     0,     0,     0,
2208
 
     151,     0,     0,   442,   442,     0,     0,   106,     0,   442,
2209
 
       0,     0,     0,     0,     0,   141,    56,     0,     0,     0,
2210
 
       0,    77,     0,   124,   442,     0,   310,     0,     0,   120,
2211
 
     442,     0,   140,   370,     0,   369,   372,   442,     0,     0,
2212
 
     281,   269,   442,   268,   282,     0,   341,     0,   294,     0,
2213
 
     442,   363,   362,   358,   359,   357,   361,   360,   354,   353,
2214
 
     356,   355,     0,   258,   260,   281,     0,   263,     0,   273,
2215
 
     272,   289,   285,     0,   255,   283,   257,    64,    65,    63,
2216
 
       0,   437,   438,   441,   440,   434,    41,    42,     0,    74,
2217
 
      71,    73,   431,    91,   430,     0,    86,   442,   429,    90,
2218
 
       0,   440,     0,     0,    97,   442,   187,   156,   155,     0,
2219
 
     216,     0,     0,    48,    46,   442,    39,   103,   419,     0,
2220
 
     421,     0,    55,     0,     0,   108,   442,   442,   442,     0,
2221
 
       0,   331,     0,   330,   333,   442,   442,     0,   117,   119,
2222
 
     116,     0,   121,   161,   180,     0,     0,     0,     0,   220,
2223
 
       0,   207,   208,   200,   209,   178,   205,   201,   199,   202,
2224
 
     203,   204,   206,   179,   175,   176,   163,   169,   173,   172,
2225
 
       0,     0,   164,   165,   168,   174,   166,   170,   167,   177,
2226
 
       0,   222,   442,   134,   234,   229,   226,   270,   342,     0,
2227
 
     293,     0,     0,     0,   261,     0,   265,   264,   256,   115,
2228
 
       0,     0,     0,   442,     0,   386,     0,   389,     0,     0,
2229
 
       0,     0,    88,   442,     0,   153,   217,   442,     0,    99,
2230
 
       0,    98,     0,     0,     0,   417,     0,   442,     0,    50,
2231
 
     144,   145,   148,   147,   142,   146,     0,     0,     0,    79,
2232
 
       0,   442,     0,   442,   324,   442,   127,     0,   442,   442,
2233
 
       0,   158,   189,   188,   190,     0,     0,     0,   157,     0,
2234
 
       0,     0,   310,   384,   371,   373,     0,   385,     0,   344,
2235
 
     343,     0,   338,   262,   439,   435,    38,     0,   442,     0,
2236
 
      82,   440,    93,    87,   442,     0,     0,    95,    69,     0,
2237
 
       0,   107,   426,   424,   425,   420,   422,     0,    53,    54,
2238
 
       0,    57,    78,   335,   332,   334,   329,   125,     0,     0,
2239
 
       0,     0,     0,   396,   442,     0,     0,   162,     0,     0,
2240
 
     442,     0,     0,   442,     0,   442,   193,   311,   171,   442,
2241
 
     378,   377,   379,   442,   375,     0,   345,     0,     0,   442,
2242
 
      94,     0,    89,   442,    84,    70,   100,   423,   418,     0,
2243
 
     126,     0,   394,   395,   397,     0,   390,   391,   122,   118,
2244
 
     442,     0,   442,     0,   137,   442,     0,     0,     0,     0,
2245
 
     191,   442,   442,   374,     0,     0,    92,   387,     0,    83,
2246
 
       0,   109,   392,   393,     0,   399,   123,     0,     0,   442,
2247
 
       0,   442,   442,   442,   215,   442,     0,   197,   198,     0,
2248
 
     376,   138,   135,     0,   388,    85,   398,   159,   442,   182,
2249
 
       0,   442,     0,     0,   181,     0,   194,   195,   139,   183,
2250
 
       0,   210,   211,   186,   442,   442,   192,     0,   212,   214,
2251
 
     324,   185,   184,   196,     0,   213
 
2212
       0,     0,     0,     7,     9,    16,    17,    18,    19,    20,
 
2213
      21,    22,    23,   443,    24,    25,    26,    27,    28,    29,
 
2214
      30,     0,    31,    32,    33,    34,    35,    36,    10,   111,
 
2215
     113,   112,    14,    11,   128,   129,   130,   131,   132,   133,
 
2216
       0,   222,   443,   417,   402,   306,     0,   307,     0,     0,
 
2217
       3,   301,   296,   443,   325,     0,     0,   280,   294,     0,
 
2218
     246,   228,   443,   252,   443,   278,   274,   266,   243,   309,
 
2219
     314,   311,     0,     0,   407,     5,    15,     0,   429,   217,
 
2220
       0,     0,   434,     0,   443,     0,   300,     0,     0,     0,
 
2221
       0,    76,     0,   443,   443,     0,     0,   443,   154,     0,
 
2222
       0,    60,    61,     0,     0,    49,    47,    44,    45,   443,
 
2223
       0,   443,     0,   443,   443,     0,   110,   443,   443,     0,
 
2224
       0,     0,     0,     0,     0,   266,   443,     0,     0,   238,
 
2225
     347,   348,   349,   350,   351,   352,   353,   236,     0,   231,
 
2226
     443,   237,   233,   230,   412,   410,     0,   443,   280,     0,
 
2227
     223,   443,     0,   274,   310,   225,   327,   241,     0,   239,
 
2228
       0,     0,     0,   286,     0,     0,     0,     0,   341,     0,
 
2229
     337,   340,   338,   242,   443,     0,   253,   279,   258,   292,
 
2230
     293,   267,   244,   443,     0,   245,   443,     0,   276,   250,
 
2231
     275,   258,   281,   416,   415,   414,   403,     0,   404,   428,
 
2232
     114,   437,     0,    66,    43,   325,     0,   443,    68,     0,
 
2233
       0,     0,    72,     0,     0,     0,    96,     0,     0,   150,
 
2234
       0,   443,   152,     0,     0,   101,     0,     0,     0,   105,
 
2235
     247,   248,   249,    40,     0,   102,   104,   405,     0,   406,
 
2236
      52,     0,    51,     0,     0,   149,   143,     0,   443,     0,
 
2237
       0,     0,     0,     0,     0,     0,   258,     0,   443,     0,
 
2238
     329,   443,   443,   136,   311,   401,     0,   232,   235,   408,
 
2239
       0,   280,   274,   310,     0,   266,   290,     0,   224,   227,
 
2240
     288,   276,     0,   266,   281,   240,   326,     0,     0,   365,
 
2241
     366,   368,   367,   369,   287,     0,     0,     0,     0,     0,
 
2242
       0,     0,     0,     0,     0,     0,   274,   310,   259,   443,
 
2243
       0,   291,     0,   271,     0,     0,   284,     0,   251,   277,
 
2244
     282,     0,   254,   413,     0,   443,     0,     0,   433,     0,
 
2245
       0,    67,    37,    75,     0,     0,     0,     0,     0,     0,
 
2246
       0,   151,     0,     0,   443,   443,     0,     0,   106,     0,
 
2247
     443,     0,     0,     0,     0,     0,   141,    56,     0,     0,
 
2248
       0,     0,    77,     0,   124,   443,     0,   310,     0,     0,
 
2249
     120,   443,     0,   140,   371,     0,   370,   373,   443,     0,
 
2250
       0,   281,   269,   443,   268,   282,     0,   342,     0,   294,
 
2251
       0,   443,   364,   363,   359,   360,   358,   362,   361,   355,
 
2252
     354,   357,   356,     0,   258,   260,   281,     0,   263,     0,
 
2253
     273,   272,   289,   285,     0,   255,   283,   257,    64,    65,
 
2254
      63,     0,   438,   439,   442,   441,   435,    41,    42,     0,
 
2255
      74,    71,    73,   432,    91,   431,     0,    86,   443,   430,
 
2256
      90,     0,   441,     0,     0,    97,   443,   187,   156,   155,
 
2257
       0,   216,     0,     0,    48,    46,   443,    39,   103,   420,
 
2258
       0,   422,     0,    55,     0,     0,   108,   443,   443,   443,
 
2259
       0,     0,   332,     0,   331,   334,   443,   443,     0,   117,
 
2260
     119,   116,     0,   121,   161,   180,     0,     0,     0,     0,
 
2261
     220,     0,   207,   208,   200,   209,   178,   205,   201,   199,
 
2262
     202,   203,   204,   206,   179,   175,   176,   163,   169,   173,
 
2263
     172,     0,     0,   164,   165,   168,   174,   166,   170,   167,
 
2264
     177,     0,   222,   443,   134,   234,   229,   226,   270,   343,
 
2265
       0,   293,     0,     0,     0,   261,     0,   265,   264,   256,
 
2266
     115,     0,     0,     0,   443,     0,   387,     0,   390,     0,
 
2267
       0,     0,     0,    88,   443,     0,   153,   217,   443,     0,
 
2268
      99,     0,    98,     0,     0,     0,   418,     0,   443,     0,
 
2269
      50,   144,   145,   148,   147,   142,   146,     0,     0,     0,
 
2270
      79,     0,   443,     0,   443,   325,   443,   127,     0,   443,
 
2271
     443,     0,   158,   189,   188,   190,     0,     0,     0,   157,
 
2272
       0,     0,     0,   310,   385,   372,   374,     0,   386,     0,
 
2273
     345,   344,     0,   339,   262,   440,   436,    38,     0,   443,
 
2274
       0,    82,   441,    93,    87,   443,     0,     0,    95,    69,
 
2275
       0,     0,   107,   427,   425,   426,   421,   423,     0,    53,
 
2276
      54,     0,    57,    78,   336,   333,   335,   330,   125,     0,
 
2277
       0,     0,     0,     0,   397,   443,     0,     0,   162,     0,
 
2278
       0,   443,     0,     0,   443,     0,   443,   193,   311,   171,
 
2279
     443,   379,   378,   380,   443,   376,     0,   346,     0,     0,
 
2280
     443,    94,     0,    89,   443,    84,    70,   100,   424,   419,
 
2281
       0,   126,     0,   395,   396,   398,     0,   391,   392,   122,
 
2282
     118,   443,     0,   443,     0,   137,   443,     0,     0,     0,
 
2283
       0,   191,   443,   443,   375,     0,     0,    92,   388,     0,
 
2284
      83,     0,   109,   393,   394,     0,   400,   123,     0,     0,
 
2285
     443,     0,   443,   443,   443,   215,   443,     0,   197,   198,
 
2286
       0,   377,   138,   135,     0,   389,    85,   399,   159,   443,
 
2287
     182,     0,   443,     0,     0,   181,     0,   194,   195,   139,
 
2288
     183,     0,   210,   211,   186,   443,   443,   192,     0,   212,
 
2289
     214,   325,   185,   184,   196,     0,   213
2252
2290
};
2253
2291
 
2254
2292
/* YYDEFGOTO[NTERM-NUM]. */
2255
2293
static const short yydefgoto[] =
2256
2294
{
2257
 
      -1,     3,     4,    82,    83,    84,   508,   571,   572,   573,
2258
 
     574,    89,   319,   320,   575,    91,   547,    92,    93,   576,
2259
 
      95,   577,    97,   578,   510,   169,   579,   100,   580,   516,
2260
 
     416,   581,   294,   582,   303,   191,   314,   192,   583,   584,
2261
 
     585,   586,   404,   108,   560,   448,   109,   110,   111,   112,
2262
 
     113,   688,   451,   822,   587,   588,   546,   654,   323,   589,
2263
 
     117,   423,   300,   590,   738,   670,   591,   592,   593,   594,
2264
 
     595,   596,   597,   815,   791,   847,   816,   598,   829,   839,
2265
 
     599,   600,   228,   229,   357,   230,   217,   218,   346,   219,
2266
 
     139,   140,   308,   341,   255,   142,   231,   144,   203,    34,
2267
 
      35,   247,   165,    37,    38,    39,    40,   238,   239,   338,
2268
 
     552,   553,   724,   475,   249,   250,   454,   455,   602,   684,
2269
 
     685,   753,    41,   686,   840,   666,   732,   773,   774,   122,
2270
 
     280,   317,    42,   153,    43,   541,   645,   251,   519,   160,
2271
 
     281,   505,   234
 
2295
      -1,     3,     4,    83,    84,    85,   509,   572,   573,   574,
 
2296
     575,    90,   320,   321,   576,    92,   548,    93,    94,   577,
 
2297
      96,   578,    98,   579,   511,   170,   580,   101,   581,   517,
 
2298
     417,   582,   295,   583,   304,   192,   315,   193,   584,   585,
 
2299
     586,   587,   405,   109,   561,   449,   110,   111,   112,   113,
 
2300
     114,   689,   452,   823,   588,   589,   547,   655,   324,   590,
 
2301
     118,   424,   301,   591,   739,   671,   592,   593,   594,   595,
 
2302
     596,   597,   598,   816,   792,   848,   817,   599,   830,   840,
 
2303
     600,   601,   229,   230,   358,   231,   218,   219,   347,   220,
 
2304
     140,   141,   309,   342,   256,   143,   232,   145,   204,    35,
 
2305
      36,   248,   166,    38,    39,    40,    41,   239,   240,   339,
 
2306
     553,   554,   725,   476,   250,   251,   455,   456,   603,   685,
 
2307
     686,   754,    42,   687,   841,   667,   733,   774,   775,   123,
 
2308
     281,   318,    43,   154,    44,   542,   646,   252,   520,   161,
 
2309
     282,   506,   235
2272
2310
};
2273
2311
 
2274
2312
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2275
2313
   STATE-NUM.  */
2276
 
#define YYPACT_NINF -701
 
2314
#define YYPACT_NINF -686
2277
2315
static const short yypact[] =
2278
2316
{
2279
 
     343,  2730,  2785,   125,  2295,  -701,  -701,   -30,  -701,  -701,
2280
 
    -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,   -30,
2281
 
    -701,   118,  -701,  -701,  -701,  -701,  -701,   197,  -701,  -701,
2282
 
      88,   137,  -701,   194,  3276,   515,   298,   515,  -701,  -701,
2283
 
    1562,   197,  -701,    26,  -701,   205,  -701,   170,  -701,  -701,
2284
 
    -701,   221,  -701,  -701,   284,   277,  2839,   289,  -701,  -701,
2285
 
     277,   300,   310,   320,  -701,  -701,  -701,   329,    77,   161,
2286
 
     373,    52,   383,   592,   582,  3100,  3100,   417,   428,   284,
2287
 
     433,   251,  -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,
2288
 
    -701,  -701,   277,  -701,  -701,  -701,  -701,  -701,  -701,  -701,
2289
 
     851,  -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,
2290
 
    -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,  3144,
2291
 
    -701,  2968,  -701,  -701,  -701,   432,  -701,    34,   451,  -701,
2292
 
     515,  -701,  2068,    28,  1127,  2013,   213,   -10,   197,  -701,
2293
 
    -701,    74,   215,    74,   439,   770,   412,  -701,  -701,  -701,
2294
 
    -701,   496,    54,  -701,  -701,  -701,   132,  -701,    75,   132,
2295
 
     132,  -701,   480,    32,   947,  -701,   405,   197,   528,   532,
2296
 
    -701,   132,  3012,  3056,   197,   503,    38,  -701,   504,   542,
2297
 
    -701,  -701,   132,   546,  -701,  -701,  -701,   548,  3056,   524,
2298
 
     276,   531,   564,   132,   284,   548,  3056,  3056,   197,   284,
2299
 
     720,   902,   132,  1105,   513,   203,   948,   316,  -701,  -701,
2300
 
    -701,  -701,  -701,  -701,  -701,  -701,  -701,   523,  -701,   589,
2301
 
    -701,  -701,  -701,  -701,    26,   540,  2123,   875,   617,  -701,
2302
 
     618,   627,   991,   572,  -701,  -701,  -701,   947,  -701,  2013,
2303
 
    2013,   634,  -701,  2013,  2013,  2013,  2013,   635,  1471,  -701,
2304
 
    -701,   548,  1376,  2123,   197,   492,   439,  -701,  -701,   560,
2305
 
    -701,  -701,  3056,  1401,  -701,  3056,  1503,   213,   492,   439,
2306
 
     583,  1133,  -701,  -701,    26,  -701,   640,   548,  -701,  -701,
2307
 
     168,   643,  -701,  -701,   672,    66,    74,  -701,   652,   648,
2308
 
     657,   646,   447,   661,   658,  -701,   666,   665,  -701,   197,
2309
 
    -701,  -701,   681,   683,  -701,   686,   691,  3100,  -701,  -701,
2310
 
    -701,  -701,  -701,  3100,  -701,  -701,  -701,   696,  -701,  -701,
2311
 
     547,   159,   697,   647,  -701,  -701,    57,    14,   978,   978,
2312
 
     710,   611,    76,   711,   902,   656,  1133,    24,   712,  -701,
2313
 
    2167,  1057,  -701,   327,  -701,  2968,  -701,  -701,  -701,   451,
2314
 
     502,   279,   668,   224,  -701,  -701,  3056,  -701,  -701,  -701,
2315
 
     502,   285,   670,   978,  -701,  1376,  1177,  3188,  -701,  -701,
2316
 
    -701,  -701,  -701,  -701,  2013,  2013,  2013,  2013,  2013,  2013,
2317
 
    2013,  2013,  2013,  2013,  2013,  1017,   -15,  -701,  3056,  1605,
2318
 
    -701,   719,  -701,  1573,   731,  -701,  1656,   492,   439,  1072,
2319
 
     902,   492,  -701,   272,  -701,   132,  1307,  -701,   730,   734,
2320
 
    -701,  -701,  -701,   590,   882,  1254,   738,  3056,   947,   741,
2321
 
    -701,   746,  2383,  -701,   358,  3100,   361,   751,   754,   564,
2322
 
     239,   755,   132,  3188,   759,  -701,  -701,    43,   978,   902,
2323
 
       6,  -701,  1161,  -701,   796,   772,   611,   774,   637,  -701,
2324
 
     407,  1308,  -701,  -701,   778,  -701,  -701,   589,   197,   670,
2325
 
    -701,  -701,   618,  -701,   502,   342,  2013,  1707,  1809,     9,
2326
 
     298,  1187,  1351,  1332,  1393,   602,   669,   669,   510,   510,
2327
 
    -701,  -701,   351,   670,  -701,   902,   789,  -701,  1675,  -701,
2328
 
    -701,  -701,  -701,   902,   492,   439,   492,  -701,  -701,   548,
2329
 
    2471,  -701,   790,  -701,   159,   791,  -701,  -701,  1308,  -701,
2330
 
    -701,   548,  -701,  -701,  -701,   798,  -701,   196,   548,  -701,
2331
 
     793,    65,   598,   882,  -701,   196,  -701,  -701,  -701,  2559,
2332
 
     284,  3232,   898,  -701,  -701,  3056,  -701,  -701,   223,   727,
2333
 
    -701,   757,  -701,   809,   807,  -701,   400,  -701,   196,   174,
2334
 
     902,   801,   324,  -701,  -701,   889,  3056,   947,  -701,  -701,
2335
 
    -701,   817,  -701,  -701,  -701,   812,   795,   799,   802,   745,
2336
 
     496,  -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,
2337
 
    -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,
2338
 
     823,  1308,  -701,  -701,  -701,  -701,  -701,  -701,  -701,  -701,
2339
 
    2883,   828,   814,  -701,  -701,  -701,  -701,  -701,  1376,  2013,
2340
 
    2218,  2013,   836,   842,  -701,   381,  -701,  -701,   492,  -701,
2341
 
     132,   132,   841,  3056,   859,   822,   288,  -701,  1307,   763,
2342
 
     132,   865,  -701,   196,   864,  -701,   548,   -11,   947,  -701,
2343
 
    3100,  -701,   867,   903,    67,  -701,   102,  2968,    89,  -701,
2344
 
    -701,  -701,  -701,  -701,  -701,  -701,  3188,  2647,   874,  -701,
2345
 
    1911,   796,   852,  3056,   672,   844,  -701,   878,  1057,  3056,
2346
 
    1308,  -701,  -701,  -701,  -701,   496,   883,   947,  -701,  3188,
2347
 
     195,   645,   884,  -701,   888,  -701,   169,  -701,  1308,  1376,
2348
 
    1376,  2013,  -701,  -701,  -701,  -701,  -701,   885,  3056,   891,
2349
 
    -701,   548,   893,  -701,   196,   894,   288,  -701,  -701,   890,
2350
 
     904,  -701,  -701,   223,  -701,   223,  -701,   843,  -701,  -701,
2351
 
    1102,  -701,  -701,  -701,  -701,  1376,  -701,  -701,   637,   910,
2352
 
     912,   197,   441,  -701,    74,   637,   923,  -701,  1308,   906,
2353
 
    3056,   637,    -9,  2167,  2013,    45,  -701,   144,  -701,   814,
2354
 
    -701,  -701,  -701,   814,  -701,   918,  1376,   929,   925,  3056,
2355
 
    -701,   933,  -701,   196,  -701,  -701,  -701,  -701,  -701,   939,
2356
 
    -701,   456,  -701,   941,  -701,   945,  -701,  -701,  -701,  -701,
2357
 
      74,   943,  3056,   950,  -701,  3056,   955,   957,   967,  1365,
2358
 
    -701,   947,   814,  -701,   197,   905,  -701,  -701,   968,  -701,
2359
 
     969,  -701,  -701,  -701,   197,  -701,  -701,  1308,   974,   196,
2360
 
     979,  3056,  3056,   889,  -701,   947,   976,  -701,  -701,   408,
2361
 
    -701,  -701,  -701,   637,  -701,  -701,  -701,  -701,   196,  -701,
2362
 
     466,   196,   982,   984,  -701,   983,  -701,  -701,  -701,  -701,
2363
 
     607,  -701,  -701,  -701,   196,   196,  -701,   986,  -701,  -701,
2364
 
     672,  -701,  -701,  -701,   987,  -701
 
2317
     397,  2631,  2686,    33,  2191,  -686,  -686,   -49,  -686,  -686,
 
2318
    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
 
2319
     -49,  -686,     1,  -686,  -686,  -686,  -686,  -686,    67,  -686,
 
2320
    -686,   -64,   -25,  -686,    84,  1206,   630,   808,   630,  -686,
 
2321
    -686,  1516,    67,  -686,   -17,  -686,   113,  -686,     7,  -686,
 
2322
    -686,  -686,   126,  -686,  -686,   229,   210,  2740,   237,  -686,
 
2323
    -686,   210,   272,   277,   300,  -686,  -686,  -686,   312,    77,
 
2324
     199,   334,   141,   340,   338,   250,  3044,  3044,   381,   388,
 
2325
     229,   436,   434,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
 
2326
    -686,  -686,  -686,   210,  -686,  -686,  -686,  -686,  -686,  -686,
 
2327
    -686,   953,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
 
2328
    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
 
2329
    3098,  -686,  2880,  -686,  -686,  -686,   310,  -686,    24,   320,
 
2330
    -686,   630,  -686,  1983,     2,  1402,  1927,    75,   358,    67,
 
2331
    -686,  -686,    66,    19,    66,   103,    74,   299,  -686,  -686,
 
2332
    -686,  -686,   486,   102,  -686,  -686,  -686,   618,  -686,    57,
 
2333
     618,   618,  -686,   464,   154,   964,  -686,   610,    67,   499,
 
2334
     503,  -686,   618,  2935,  2990,    67,   476,   236,  -686,   475,
 
2335
     513,  -686,  -686,   618,   529,  -686,  -686,  -686,   536,  2990,
 
2336
     518,   225,   523,   528,   618,   229,   536,  2990,  2990,    67,
 
2337
     229,   324,   687,   618,   285,   484,    76,  1010,   321,  -686,
 
2338
    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,   481,  -686,
 
2339
     545,  -686,  -686,  -686,  -686,   -17,   496,  2038,   172,   555,
 
2340
    -686,   562,   568,   207,   512,  -686,  -686,  -686,   964,  -686,
 
2341
    1927,  1927,   577,  -686,  1927,  1927,  1927,  1927,   590,  1423,
 
2342
    -686,  -686,   536,  1591,  2038,    67,   184,   103,  -686,  -686,
 
2343
     535,  -686,  -686,  2990,  1456,  -686,  2990,  1559,    75,   184,
 
2344
     103,   573,  1033,  -686,  -686,   -17,  -686,   620,   536,  -686,
 
2345
    -686,   180,   633,  -686,  -686,   673,   204,    66,  -686,   653,
 
2346
     652,   662,   659,   489,   666,   676,  -686,   679,   681,  -686,
 
2347
      67,  -686,  -686,   699,   702,  -686,   708,   713,  3044,  -686,
 
2348
    -686,  -686,  -686,  -686,  3044,  -686,  -686,  -686,   717,  -686,
 
2349
    -686,   690,   194,   719,   629,  -686,  -686,    32,     5,   814,
 
2350
     814,   726,   680,    21,   729,   687,   682,  1033,   212,   734,
 
2351
    -686,  2093,  1028,  -686,   592,  -686,  2880,  -686,  -686,  -686,
 
2352
     320,   259,  1047,   684,   359,  -686,  -686,  2990,  -686,  -686,
 
2353
    -686,   259,   377,   694,   814,  -686,  1591,  1177,  3152,  -686,
 
2354
    -686,  -686,  -686,  -686,  -686,  1927,  1927,  1927,  1927,  1927,
 
2355
    1927,  1927,  1927,  1927,  1927,  1927,   905,   -26,  -686,  2990,
 
2356
    1613,  -686,   760,  -686,  1580,   761,  -686,  1737,   184,   103,
 
2357
     978,   687,   184,  -686,   287,  -686,   618,  1153,  -686,   767,
 
2358
     771,  -686,  -686,  -686,   351,   820,  1542,   762,  2990,   964,
 
2359
     776,  -686,   784,  2280,  -686,   316,  3044,   594,   792,   790,
 
2360
     528,   171,   795,   618,  2990,   803,  -686,  -686,   170,   814,
 
2361
     687,   -11,  -686,  1044,  -686,   837,   809,   680,   815,   731,
 
2362
    -686,   414,  1308,  -686,  -686,   812,  -686,  -686,   545,    67,
 
2363
     694,  -686,  -686,   562,  -686,   259,   471,  1927,  1716,  1770,
 
2364
      -2,   808,  1608,  1186,  1215,  1112,  1148,   838,   838,   621,
 
2365
     621,  -686,  -686,   575,   694,  -686,   687,   823,  -686,  2057,
 
2366
    -686,  -686,  -686,  -686,   687,   184,   103,   184,  -686,  -686,
 
2367
     536,  2369,  -686,   807,  -686,   194,   819,  -686,  -686,  1308,
 
2368
    -686,  -686,   536,  -686,  -686,  -686,   829,  -686,   364,   536,
 
2369
    -686,   816,   149,   706,   820,  -686,   364,  -686,  -686,  -686,
 
2370
    2458,   229,  3206,   645,  -686,  -686,  2990,  -686,  -686,   211,
 
2371
     752,  -686,   782,  -686,   835,   833,  -686,   294,  -686,   364,
 
2372
     271,   687,   834,   206,  -686,  -686,   936,  2990,   964,  -686,
 
2373
    -686,  -686,   843,  -686,  -686,  -686,   840,   818,   821,   825,
 
2374
     774,   486,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
 
2375
    -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
 
2376
    -686,   857,  1308,  -686,  -686,  -686,  -686,  -686,  -686,  -686,
 
2377
    -686,  2794,   860,   852,  -686,  -686,  -686,  -686,  -686,  1591,
 
2378
    1927,  1152,  1927,   849,   864,  -686,   643,  -686,  -686,   184,
 
2379
    -686,   618,   618,   861,  2990,   869,   836,  1017,  -686,  1153,
 
2380
     510,   618,   870,  -686,   364,   892,  -686,   536,    10,   964,
 
2381
    -686,  3044,  -686,   872,   926,   114,  -686,   137,  2880,   142,
 
2382
    -686,  -686,  -686,  -686,  -686,  -686,  -686,  3152,  2547,   895,
 
2383
    -686,  1873,   837,   667,  2990,   673,   866,  -686,   900,  1028,
 
2384
    2990,  1308,  -686,  -686,  -686,  -686,   486,   902,   964,  -686,
 
2385
    3152,   858,   387,   904,  -686,   906,  -686,   375,  -686,  1308,
 
2386
    1591,  1591,  1927,  -686,  -686,  -686,  -686,  -686,   909,  2990,
 
2387
     918,  -686,   536,   917,  -686,   364,   832,  1017,  -686,  -686,
 
2388
     921,   922,  -686,  -686,   211,  -686,   211,  -686,   874,  -686,
 
2389
    -686,  1013,  -686,  -686,  -686,  -686,  1591,  -686,  -686,   731,
 
2390
     927,   928,    67,   607,  -686,    66,   731,   929,  -686,  1308,
 
2391
     932,  2990,   731,   -12,  2093,  1927,   -10,  -686,   163,  -686,
 
2392
     852,  -686,  -686,  -686,   852,  -686,   931,  1591,   930,   939,
 
2393
    2990,  -686,   941,  -686,   364,  -686,  -686,  -686,  -686,  -686,
 
2394
     946,  -686,   614,  -686,   949,  -686,   954,  -686,  -686,  -686,
 
2395
    -686,    66,   950,  2990,   955,  -686,  2990,   959,   961,   967,
 
2396
    1085,  -686,   964,   852,  -686,    67,   881,  -686,  -686,   970,
 
2397
    -686,   972,  -686,  -686,  -686,    67,  -686,  -686,  1308,   976,
 
2398
     364,   980,  2990,  2990,   936,  -686,   964,   982,  -686,  -686,
 
2399
     301,  -686,  -686,  -686,   731,  -686,  -686,  -686,  -686,   364,
 
2400
    -686,   672,   364,   985,   988,  -686,   999,  -686,  -686,  -686,
 
2401
    -686,   407,  -686,  -686,  -686,   364,   364,  -686,  1001,  -686,
 
2402
    -686,   673,  -686,  -686,  -686,  1002,  -686
2365
2403
};
2366
2404
 
2367
2405
/* YYPGOTO[NTERM-NUM].  */
2368
2406
static const short yypgoto[] =
2369
2407
{
2370
 
    -701,  -701,  -278,  -701,  -701,  -701,  -701,    30,    39,    44,
2371
 
      60,  -701,   584,  -701,    61,  -701,  -701,  -701,  -701,    63,
2372
 
    -701,    64,  -701,    70,  -701,  -701,    83,  -701,    84,  -502,
2373
 
    -516,    85,  -701,    87,  -701,  -281,   573,   -61,    97,   100,
2374
 
     105,   110,  -701,   482,  -700,   367,  -701,  -701,  -701,  -701,
2375
 
     490,  -701,  -701,  -701,    23,    36,  -701,  -701,  -701,   111,
2376
 
    -701,  -701,  -701,  -457,  -701,  -701,  -701,   497,  -701,  -701,
2377
 
     115,  -701,  -701,  -701,  -701,  -701,   229,  -701,  -701,  -411,
2378
 
    -701,    -3,   463,   848,   585,    11,   399,  -701,   591,   708,
2379
 
     -91,   593,  -701,   158,   567,  -155,   -33,  -125,    46,   -27,
2380
 
    -701,   545,    15,   -32,  -701,  1014,  -701,  -275,  -701,  -701,
2381
 
    -701,   394,  -701,   650,   -25,  -701,  -701,  -701,  -701,   269,
2382
 
     313,  -701,    49,   311,  -366,   252,  -701,  -701,   263,  1050,
2383
 
     318,  -701,    17,  -179,  -122,  -701,  -106,   677,   538,   280,
2384
 
    -157,  -400,     0
 
2408
    -686,  -686,  -295,  -686,  -686,  -686,  -686,    30,    39,    44,
 
2409
      49,  -686,   588,  -686,    51,  -686,  -686,  -686,  -686,    54,
 
2410
    -686,    60,  -686,    61,  -686,  -686,    63,  -686,    64,  -493,
 
2411
    -505,    69,  -686,    70,  -686,  -303,   582,   -54,    85,    87,
 
2412
      97,   105,  -686,   494,  -685,   380,  -686,  -686,  -686,  -686,
 
2413
     504,  -686,  -686,  -686,     6,    36,  -686,  -686,  -686,   110,
 
2414
    -686,  -686,  -686,  -460,  -686,  -686,  -686,   505,  -686,  -686,
 
2415
     111,  -686,  -686,  -686,  -686,  -686,   242,  -686,  -686,  -307,
 
2416
    -686,    -3,   463,   862,   598,    13,   416,  -686,   604,   721,
 
2417
      -1,   608,  -686,   158,   602,  -203,   -34,   654,    46,   -27,
 
2418
    -686,   318,    15,   -33,  -686,  1037,  -686,  -266,  -686,  -686,
 
2419
    -686,   423,  -686,   649,   -94,  -686,  -686,  -686,  -686,   293,
 
2420
     339,  -686,    18,   344,  -366,   280,  -686,  -686,   295,  1082,
 
2421
     -73,  -686,    17,  -190,   -81,  -686,  -241,   677,   570,   203,
 
2422
    -157,  -403,     0
2385
2423
};
2386
2424
 
2387
2425
/* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
2388
2426
   positive, shift that token.  If negative, reduce the rule which
2389
2427
   number is the opposite.  If zero, do what YYDEFACT says.
2390
2428
   If YYTABLE_NINF, syntax error.  */
2391
 
#define YYTABLE_NINF -443
 
2429
#define YYTABLE_NINF -444
2392
2430
static const short yytable[] =
2393
2431
{
2394
 
       5,   119,   130,   143,   120,   224,   631,   123,   131,   408,
2395
 
     148,   256,    33,    45,   189,   522,    36,    36,   484,   123,
2396
 
     269,   632,   422,   785,   708,   304,   428,   114,   770,   272,
2397
 
     274,    22,    23,    24,    85,   779,   147,     7,   235,   484,
2398
 
     115,   784,   611,    86,   126,   348,     7,  -402,    87,   157,
2399
 
     261,   622,   264,   146,   121,   161,   180,     7,   150,   443,
2400
 
     161,   170,  -327,   278,    88,    90,   236,    94,    96,     7,
2401
 
     713,   278,   353,   121,    98,   285,   485,   361,   284,     7,
2402
 
       7,   278,   145,   790,   299,   175,   178,    99,   101,   102,
2403
 
     181,   103,   161,   718,   786,   402,   220,   550,   121,   137,
2404
 
     137,   104,   256,   148,   105,   715,   436,   269,   121,   106,
2405
 
     259,  -403,   612,   279,   107,   116,   121,   204,   151,   118,
2406
 
     133,   221,   121,   838,   700,    46,   500,   719,   223,   121,
2407
 
     198,   237,   216,    30,   678,   275,    36,    32,   157,   152,
2408
 
     135,   147,   398,   147,   532,   529,   201,    36,   273,   233,
2409
 
     174,   626,   137,   257,   138,   260,    30,   310,   125,   634,
2410
 
      32,   714,   270,   123,   176,   278,    30,    30,   207,   328,
2411
 
      32,    32,     7,   353,   361,   137,   123,   225,   232,   452,
2412
 
     278,   204,   658,   258,   289,   137,   760,    36,    36,   665,
2413
 
     311,   297,   315,   318,   141,   409,   716,   433,     7,   177,
2414
 
       7,   127,   405,    36,   764,   339,   337,   146,   465,   659,
2415
 
     792,    36,    36,   737,   406,   325,     7,   331,   257,   347,
2416
 
     335,   128,   126,   204,   343,   256,   269,   743,   702,   129,
2417
 
     358,   755,   750,   751,   752,   398,   145,    22,    23,    24,
2418
 
     154,    36,   538,   352,   354,   253,   329,   262,   501,   362,
2419
 
     449,    30,   429,   156,   204,    32,   262,   461,   202,    30,
2420
 
     269,   744,   134,    32,   263,   155,   624,   706,    36,   657,
2421
 
     386,   387,   351,   263,   495,   543,   497,    36,   157,     7,
2422
 
      36,   781,     7,   465,   257,    30,   147,    30,   257,    32,
2423
 
     157,    32,   512,    30,   157,    25,    26,    32,   201,   385,
2424
 
       5,     7,   331,    30,   137,   390,   138,    32,   132,   159,
2425
 
     498,   226,    28,    29,   450,   643,   421,   262,   463,     7,
2426
 
     220,   166,   286,   513,   254,   134,   514,   123,   134,   539,
2427
 
     132,   329,   168,   540,   263,   197,   644,   123,   761,   495,
2428
 
     167,   147,   171,   456,   133,   354,   354,   134,   309,   440,
2429
 
     827,   257,   172,   257,   342,    36,   216,   446,   661,   562,
2430
 
      36,   173,   452,   662,   135,  -442,    30,   462,   459,    30,
2431
 
      32,    36,   199,    32,   262,   607,    52,   515,   439,   136,
2432
 
     354,   503,   360,   388,   614,   137,   329,   138,    30,   730,
2433
 
     503,   263,    32,   453,   530,   364,   533,   800,   458,   534,
2434
 
     389,   136,   483,    36,     5,   179,    30,   137,   275,   138,
2435
 
      32,   157,   469,   388,   693,   182,   257,   257,    52,   119,
2436
 
     843,   531,   120,     5,   120,    64,    65,    66,   524,   315,
2437
 
     389,   204,    36,   851,   852,   204,   530,   143,   287,     1,
2438
 
       2,   610,   749,   830,   554,   114,   837,   665,   676,   193,
2439
 
     147,   601,    85,   133,   204,   354,   257,   347,   115,   257,
2440
 
     194,    86,   358,   694,   695,   196,    87,    64,    65,    66,
2441
 
     147,   265,   222,   135,   276,   605,   776,   561,   282,   777,
2442
 
     414,   415,    88,    90,   288,    94,    96,   146,   266,   292,
2443
 
     625,   802,    98,    81,   803,    25,    26,   119,   625,     7,
2444
 
     120,   841,   257,   271,   842,    99,   101,   102,   601,   103,
2445
 
     257,   316,    28,    29,   258,   283,   145,   627,   330,   104,
2446
 
     333,   625,   105,   114,   388,   627,   119,   106,   625,   120,
2447
 
      85,   290,   107,   116,   226,   291,   115,   118,   298,    86,
2448
 
     204,   389,   301,   656,    87,   302,   120,     5,   627,   305,
2449
 
      36,   134,   114,   739,   278,   627,    22,    23,    24,    85,
2450
 
      88,    90,   307,    94,    96,   115,   312,   257,    86,   652,
2451
 
      98,    36,   517,    87,   204,   854,   525,   449,   130,   710,
2452
 
     431,   432,   653,    99,   101,   102,   186,   103,   157,    88,
2453
 
      90,   601,    94,    96,   509,   548,   157,   104,   313,    98,
2454
 
     105,   164,   687,   503,   336,   106,   625,   767,   344,   768,
2455
 
     107,   116,    99,   101,   102,   118,   103,   682,   383,   384,
2456
 
     190,   190,   220,   345,   183,   349,   104,   184,   141,   105,
2457
 
     185,   629,   630,   627,   106,   295,   296,   123,    36,   107,
2458
 
     116,   450,   848,   778,   118,   849,   204,   221,   745,   681,
2459
 
     355,   306,   356,   850,   119,   204,   390,   120,   216,   322,
2460
 
     359,   554,    36,   363,   206,   733,   367,   372,   147,   137,
2461
 
     601,   557,   558,   403,   399,   559,   407,   625,    36,   204,
2462
 
     114,   633,   235,   746,    36,   410,   411,    85,   601,   806,
2463
 
     412,   418,   413,   115,   204,   417,    86,   204,   747,   419,
2464
 
     420,    87,   438,   754,   627,   207,   379,   380,   381,   382,
2465
 
     383,   384,   268,    36,   424,   668,   425,    88,    90,   426,
2466
 
      94,    96,   204,   327,   427,   391,   157,    98,   394,   430,
2467
 
     434,   158,   435,   520,   147,    30,   625,   204,   601,    32,
2468
 
      99,   101,   102,   437,   103,   123,   441,   442,   775,   687,
2469
 
     444,   187,   489,   687,   104,    36,   195,   105,    36,   460,
2470
 
     446,   464,   106,   627,   491,   506,     7,   107,   116,   507,
2471
 
     268,   523,   118,     7,    36,   381,   382,   383,   384,   526,
2472
 
     147,   527,   625,   535,   248,   252,   625,   704,   787,   329,
2473
 
     542,   818,   687,   536,   545,   285,   709,    36,   703,   551,
2474
 
      36,   625,   253,   445,   625,   555,   556,   601,   204,   627,
2475
 
      30,   820,   204,   627,    32,   818,   603,   625,   625,   134,
2476
 
     728,   775,   616,   328,   620,   621,    36,    36,   627,   137,
2477
 
     623,   627,   204,   277,   397,   741,   277,   277,   401,   628,
2478
 
     646,   647,   648,   277,   627,   627,   649,   660,   277,   669,
2479
 
     671,   486,   190,    30,     7,     7,   675,    32,   190,   277,
2480
 
      30,   672,   677,   763,    32,   673,   201,  -160,   674,   691,
2481
 
     277,   321,   137,   267,   138,   692,   326,   277,     7,   277,
2482
 
     696,   254,   683,   200,   285,     7,   512,   727,   157,   365,
2483
 
     366,   698,   699,   368,   369,   370,   371,     7,   705,   707,
2484
 
     711,   397,   512,   401,   157,     7,   712,   132,     7,   722,
2485
 
     731,   734,   470,   393,   285,   740,   396,   513,   757,   748,
2486
 
     514,   663,   749,   759,   134,   765,   285,   630,   769,   762,
2487
 
      22,    23,    24,   639,   332,   664,   514,   285,   782,   766,
2488
 
     821,    30,    30,   771,   640,    32,    32,   772,   520,   817,
2489
 
       7,     7,   482,   823,   201,   201,   780,   795,   797,   624,
2490
 
     137,   137,   138,   138,   796,    30,   494,   496,   799,    32,
2491
 
     190,   515,    30,   817,   801,   804,    32,   805,   544,   285,
2492
 
     340,     7,   807,   809,    30,   201,   138,   811,    32,   812,
2493
 
     502,   137,    30,   138,     7,    30,    32,   201,   642,    32,
2494
 
     813,   824,   537,   137,   825,   138,   482,   828,   201,   494,
2495
 
     285,   836,   831,   254,   137,   844,   138,   845,   846,   667,
2496
 
       7,   853,   855,   132,   471,   472,   473,   474,   650,   476,
2497
 
     477,   478,   479,   480,   481,   735,   651,    30,    30,   488,
2498
 
     134,    32,    32,   655,   835,   324,   717,   606,   604,   253,
2499
 
     201,   201,   615,   457,   149,   726,   137,   137,   138,   138,
2500
 
     618,   819,   793,   613,   794,   834,   134,   826,    30,   124,
2501
 
     641,     0,    32,     0,     0,     7,   638,     0,     0,     0,
2502
 
     499,    30,   277,   504,     0,    32,   697,     0,     0,   138,
2503
 
     511,   518,   521,     0,   360,     0,     0,     0,    22,    23,
2504
 
      24,     0,   138,   133,   253,     7,     0,    30,     7,   277,
2505
 
       0,    32,     0,     0,   549,     0,   608,   615,   481,     0,
2506
 
     360,   134,     0,   135,     0,     0,   729,   447,   254,     0,
2507
 
       7,     0,   736,   157,   743,     0,     7,   332,   209,   210,
2508
 
     211,   212,   213,   214,   215,   680,     8,     9,    10,    11,
2509
 
      12,    13,    14,    15,    16,    17,    18,    19,    20,   240,
2510
 
       0,   758,    30,     0,     7,   332,    32,     0,    22,    23,
2511
 
      24,    25,    26,     0,   241,   493,     0,   242,     0,     0,
2512
 
       0,     0,     0,   254,     0,   190,     0,    27,    28,    29,
2513
 
       0,     0,    30,   332,     0,    30,    32,     0,     0,    32,
2514
 
     518,   720,     0,   783,     0,   201,   788,   636,   334,   518,
2515
 
     466,   137,     0,   138,     0,     0,   254,    30,     0,     0,
2516
 
       0,    32,   798,    30,   742,     0,     0,    32,     0,     0,
2517
 
       0,     0,     0,   243,   244,     0,   400,   245,   246,     0,
2518
 
       0,     0,     0,     0,   254,   808,     0,     0,   810,     0,
2519
 
       0,    30,     0,     0,     0,    32,     0,   275,     0,   689,
2520
 
     157,   690,     0,     0,   493,   209,   210,   211,   212,   213,
2521
 
     214,   215,   254,     0,   832,   833,   374,   375,   376,   377,
2522
 
     467,   379,   380,   381,   382,   383,   468,   375,   376,   377,
2523
 
     378,   379,   380,   381,   382,   383,   384,   277,   277,     0,
2524
 
       0,     0,     0,   518,     0,   701,     0,   277,     0,   563,
2525
 
     725,  -442,    48,   157,     0,     0,     0,    51,   209,   210,
2526
 
     211,   212,   213,   214,   215,     0,    52,  -442,  -442,  -442,
2527
 
    -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
2528
 
       0,   756,     0,   564,    54,     0,     0,  -442,     0,  -442,
2529
 
    -442,  -442,  -442,  -442,     0,     0,     0,     0,     0,     0,
2530
 
      56,    57,    58,    59,   565,    61,    62,    63,  -442,  -442,
2531
 
    -442,   566,   567,   568,     0,    64,   569,    66,     0,    67,
2532
 
      68,     0,     0,   518,    72,     0,    74,    75,    76,    77,
2533
 
      78,    79,     0,     0,   789,     0,    80,     0,  -442,     0,
2534
 
     814,    81,  -442,  -442,     7,     0,     0,   157,     0,     0,
2535
 
       0,     0,   209,   210,   211,   212,   213,   214,   215,   570,
2536
 
       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2537
 
      18,    19,    20,   240,   377,   378,   379,   380,   381,   382,
2538
 
     383,   384,    22,    23,    24,    25,    26,     0,   241,     0,
2539
 
       0,   392,   376,   377,   378,   379,   380,   381,   382,   383,
2540
 
     384,    27,    28,    29,   374,   375,   376,   377,   378,   379,
2541
 
     380,   381,   382,   383,   384,   374,   375,   376,   377,   378,
2542
 
     379,   380,   381,   382,   383,   384,     0,     0,     0,     0,
2543
 
       0,    30,     0,     0,     0,    32,   378,   379,   380,   381,
2544
 
     382,   383,   384,     0,     0,     0,     7,   243,   244,   157,
2545
 
       0,   245,   246,     0,   209,   210,   211,   212,   213,   214,
2546
 
     215,   373,     8,     9,    10,    11,    12,    13,    14,    15,
2547
 
      16,    17,    18,    19,    20,   240,     0,     0,     0,     0,
2548
 
       0,     0,     0,     0,    22,    23,    24,    25,    26,     0,
2549
 
     241,     0,     0,   395,     0,     0,     0,     0,     0,     0,
2550
 
       0,     0,     0,    27,    28,    29,     0,     0,     0,     0,
2551
 
     374,   375,   376,   377,   378,   379,   380,   381,   382,   383,
2552
 
     384,     8,     9,    10,    11,    12,    13,    14,     0,    16,
2553
 
       0,    18,     0,    30,     0,     0,     0,    32,     0,     0,
2554
 
       0,     0,     0,     0,     0,     0,     0,     0,     7,   243,
2555
 
     244,   157,     0,   245,   246,     0,   209,   210,   211,   212,
2556
 
     213,   214,   215,   490,     8,     9,    10,    11,    12,    13,
2557
 
      14,    15,    16,    17,    18,    19,    20,   240,     0,     0,
2558
 
       0,     0,     0,     0,     0,     0,    22,    23,    24,    25,
2559
 
      26,     0,   241,     0,     0,   487,     0,     0,     0,     0,
2560
 
       0,     0,     0,     0,     0,    27,    28,    29,     0,     0,
2561
 
       0,     0,   374,   375,   376,   377,   378,   379,   380,   381,
2562
 
     382,   383,   384,     0,     0,     0,     0,     0,     0,     0,
2563
 
       0,     0,     0,     0,     0,    30,     0,     0,     0,    32,
2564
 
       0,     0,     0,     0,     0,     0,   492,     0,     0,     0,
2565
 
       7,   243,   244,   157,     0,   245,   246,     0,   209,   210,
2566
 
     211,   212,   213,   214,   215,   617,     8,     9,    10,    11,
2567
 
      12,    13,    14,    15,    16,    17,    18,    19,    20,   240,
2568
 
     609,     0,     0,     0,     0,     0,     0,     0,    22,    23,
2569
 
      24,    25,    26,     0,   241,   374,   375,   376,   377,   378,
2570
 
     379,   380,   381,   382,   383,   384,     0,    27,    28,    29,
2571
 
       0,     0,     0,     0,   374,   375,   376,   377,   378,   379,
2572
 
     380,   381,   382,   383,   384,     0,     0,     0,     0,     0,
2573
 
       0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
2574
 
       0,    32,     0,     0,     0,     0,     0,     0,     0,     0,
2575
 
       0,     0,     7,   243,   244,   157,     0,   245,   246,     0,
2576
 
     209,   210,   211,   212,   213,   214,   215,     0,     8,     9,
 
2432
       5,   120,   131,   144,   121,   429,   423,   124,   485,   132,
 
2433
     115,   149,   236,   523,    34,    46,    37,    37,   632,   409,
 
2434
     124,   786,   190,   485,     7,   354,   305,     7,   221,   791,
 
2435
     362,   633,   612,    47,    86,   349,   122,   148,   279,  -403,
 
2436
     116,   237,   126,    87,   771,   127,   709,   225,    88,   623,
 
2437
     128,   780,   263,    89,   147,    91,   162,   785,    95,   151,
 
2438
     129,   162,   171,   279,    97,    99,   486,   100,   102,   264,
 
2439
       7,   273,   275,   103,   104,   122,   152,     7,     7,   338,
 
2440
       7,   551,   437,   146,   277,   403,   176,   179,   283,   105,
 
2441
     122,   106,   787,   162,   289,   122,   280,   153,   138,   293,
 
2442
     199,   107,   613,   156,   149,     7,   238,   254,   254,   108,
 
2443
     501,   260,    31,   134,   117,   119,    33,   714,   205,   224,
 
2444
     130,   317,   222,   533,   135,   135,   354,   362,   331,   530,
 
2445
     334,   138,   679,   136,   701,   217,   266,    37,   208,   839,
 
2446
     716,   262,   148,   265,   148,   181,   719,   226,    37,   155,
 
2447
     234,   175,   627,   267,   258,   279,   261,   311,    31,   157,
 
2448
     635,   466,    33,   271,   124,    31,    31,    31,    31,    33,
 
2449
      33,    33,    33,     7,   539,     7,   158,   124,   268,   233,
 
2450
     182,   720,   205,   659,   259,   290,   255,   255,    37,    37,
 
2451
     666,   312,   298,   316,   319,   142,  -404,   274,   761,   453,
 
2452
     279,   285,   177,   286,    37,   133,   340,     7,   147,   715,
 
2453
       7,   738,    37,    37,   765,   406,   326,   389,   332,   258,
 
2454
     348,   336,   135,   127,   205,   344,   703,   407,     7,   756,
 
2455
     793,   359,   717,   434,   390,   158,   466,   146,   178,   122,
 
2456
     133,   662,    37,   160,   353,   355,   663,   330,   444,   502,
 
2457
     363,  -328,   221,   658,   187,   205,   158,   135,   133,   203,
 
2458
     430,    31,   540,    31,   168,    33,   541,    33,   707,    37,
 
2459
     167,   387,   388,   352,   202,   135,   544,   279,    37,   782,
 
2460
     138,    37,   139,   300,   139,   258,   410,   148,     7,   258,
 
2461
      31,   498,   227,   158,    33,    31,   200,   122,    31,    33,
 
2462
     386,     5,    33,   332,   644,   169,   391,   660,   329,   135,
 
2463
     172,   361,    53,   504,   138,   451,    31,   422,   333,   139,
 
2464
      33,   122,   504,   287,     7,   645,   499,   328,   124,   137,
 
2465
     158,   531,   330,   173,    53,   138,   750,   139,   124,   762,
 
2466
     838,   450,   148,   521,   457,   174,   355,   355,   828,   310,
 
2467
     441,   223,   258,   531,   258,   510,    37,   158,   447,   217,
 
2468
     343,    37,    65,    66,    67,    26,    27,   180,   459,   460,
 
2469
     463,   184,    37,   183,   185,   165,    31,   186,     7,   440,
 
2470
      33,   355,    29,    30,    65,    66,    67,   330,    82,   335,
 
2471
     746,   272,   263,   462,   191,   191,   365,   255,   801,   731,
 
2472
      23,    24,    25,   484,    37,     5,    23,    24,    25,   264,
 
2473
     263,   464,    31,   470,   194,    31,    33,   258,   258,    33,
 
2474
     120,   195,   532,   121,     5,   121,   747,   264,   329,   115,
 
2475
     316,   525,   205,    37,   138,   625,   205,   144,   207,   751,
 
2476
     752,   753,   611,   849,   831,   555,   850,   545,   666,    37,
 
2477
     563,   148,   602,    86,   851,   205,   355,   258,   348,   116,
 
2478
     258,   134,    87,   359,   695,   696,    31,    88,   138,   197,
 
2479
      33,   148,    89,   768,    91,   769,   606,    95,    31,    26,
 
2480
      27,   136,    33,    97,    99,   562,   100,   102,   147,     7,
 
2481
     677,   626,   103,   104,     1,     2,    29,    30,   120,   626,
 
2482
     284,   121,   291,   258,   263,   608,   292,   115,   105,   602,
 
2483
     106,   258,   299,     7,   302,   259,   303,   146,   628,   198,
 
2484
     107,   264,   626,   415,   416,   844,   628,   120,   108,   626,
 
2485
     121,    86,   306,   117,   119,   504,   115,   116,   852,   853,
 
2486
      87,   205,   279,   286,   657,    88,   704,   121,     5,   628,
 
2487
      89,    37,    91,   653,   221,    95,   628,   308,   521,   313,
 
2488
      86,    97,    99,   314,   100,   102,   116,   345,   258,    87,
 
2489
     103,   104,    37,   518,    88,   205,   337,   526,   131,    89,
 
2490
     346,    91,   350,   654,    95,   855,   105,   711,   106,   356,
 
2491
      97,    99,   602,   100,   102,   740,   549,   357,   107,   103,
 
2492
     104,    31,   360,   688,   364,    33,   108,   626,   389,   615,
 
2493
     368,   117,   119,   276,   202,   105,   158,   106,   683,   682,
 
2494
     138,   276,   139,   373,   158,   390,   191,   107,   453,   142,
 
2495
     534,  -443,   191,   535,   628,   108,   296,   297,   124,    37,
 
2496
     117,   119,   451,   777,   288,   138,   778,   205,   222,   513,
 
2497
     803,   158,   307,   804,   404,   120,   205,   391,   121,   454,
 
2498
     323,   217,   555,    37,   115,   400,   734,   408,   450,   148,
 
2499
       7,   602,    23,    24,    25,   208,   389,   694,   626,    37,
 
2500
     205,   640,   634,   236,   515,    37,   471,   411,    86,   602,
 
2501
       7,   412,   641,   390,   116,   205,   413,    87,   205,   748,
 
2502
     286,   418,    88,   728,   755,   628,   414,    89,   842,    91,
 
2503
     419,   843,    95,   420,    37,   436,   669,   421,    97,    99,
 
2504
     333,   100,   102,   205,   432,   433,   392,   103,   104,   395,
 
2505
     384,   385,   159,   425,   779,   148,   426,   626,   205,   602,
 
2506
     630,   631,   427,   105,   191,   106,   124,   428,   269,   776,
 
2507
     688,   431,   188,   435,   688,   107,    37,   196,    31,    37,
 
2508
     438,   447,    33,   108,   628,   442,   558,   559,   117,   119,
 
2509
     560,   202,   439,   445,   443,    37,   461,   138,    31,   139,
 
2510
     807,   148,    33,   626,   249,   253,   465,   626,   705,   788,
 
2511
     330,   257,   819,   688,   490,   492,   524,   710,    37,   255,
 
2512
     270,    37,   626,   507,   446,   626,   269,   508,   602,   205,
 
2513
     628,     7,   821,   205,   628,   527,   819,     7,   626,   626,
 
2514
     528,   729,   776,     7,   513,   536,   158,    37,    37,   628,
 
2515
     537,   543,   628,   205,   278,     7,   742,   278,   278,   546,
 
2516
     552,   133,   621,   556,   278,   628,   628,   286,   557,   278,
 
2517
     639,   604,   487,   286,   622,   134,   514,   617,   135,   515,
 
2518
     278,     7,   624,   629,   764,   286,   647,   648,   763,   649,
 
2519
     398,   278,   322,   650,   402,   136,   670,   327,   278,   672,
 
2520
     278,   661,   257,   692,     7,   673,   676,   270,   674,   366,
 
2521
     367,   744,   675,   369,   370,   371,   372,   678,   693,    31,
 
2522
    -160,   697,   699,    33,   706,    31,   712,   700,     7,    33,
 
2523
     516,    31,   137,   394,   286,    33,   397,   822,   138,   681,
 
2524
     139,   684,   399,    31,   202,   745,   139,    33,   708,   713,
 
2525
     138,   723,   139,   732,   735,   741,   202,   398,   254,   402,
 
2526
     749,   750,   138,   758,   139,   382,   383,   384,   385,    31,
 
2527
     818,   760,   631,    33,   824,   135,     7,   766,   767,   191,
 
2528
     770,   772,   202,   781,   773,   783,   797,     7,   138,   664,
 
2529
     139,   796,    31,   798,   818,   721,    33,   800,    23,    24,
 
2530
      25,     7,   802,   665,   805,   202,   201,   806,   483,   810,
 
2531
     808,   138,   812,   139,   813,   503,    31,   286,   743,   643,
 
2532
      33,   814,   495,   497,   825,   257,   270,   625,   826,   361,
 
2533
     829,   254,   538,     7,   832,   399,     7,   255,   837,   845,
 
2534
     668,   513,   846,   158,   472,   473,   474,   475,   135,   477,
 
2535
     478,   479,   480,   481,   482,   847,     7,   854,   856,   489,
 
2536
     270,   651,   483,   341,    31,   495,   744,     7,    33,   736,
 
2537
       7,   652,   656,   514,   496,    31,   515,   202,   836,    33,
 
2538
     325,   607,   605,   138,   718,   139,   333,   458,   202,    31,
 
2539
      23,    24,    25,    33,   138,   134,   139,   333,   150,   614,
 
2540
     227,   500,   494,   278,   505,   727,   820,   698,   616,   794,
 
2541
     255,   512,   519,   522,   835,   136,   619,   135,   795,   448,
 
2542
     827,    31,   125,   642,    31,    33,     0,   516,    33,     0,
 
2543
     278,     0,     0,     0,   202,   550,   609,   202,   482,   496,
 
2544
     138,   815,   139,   138,    31,   139,     0,   730,    33,     0,
 
2545
       0,     0,     0,   737,     0,    31,     0,   401,    31,    33,
 
2546
       0,     0,    33,     0,     0,   255,     0,     0,   494,     0,
 
2547
       0,   361,     0,   616,     0,     7,   255,     0,     0,   158,
 
2548
       0,     0,   759,     0,   210,   211,   212,   213,   214,   215,
 
2549
     216,     8,     9,    10,    11,    12,    13,    14,    15,    16,
 
2550
      17,    18,    19,    20,    21,   375,   376,   377,   378,   379,
 
2551
     380,   381,   382,   383,   384,   385,     0,    26,    27,     0,
 
2552
       0,   519,     0,     0,   784,     0,     0,   789,   637,     7,
 
2553
     519,   467,     0,    28,    29,    30,   379,   380,   381,   382,
 
2554
     383,   384,   385,   799,     0,     8,     9,    10,    11,    12,
 
2555
      13,    14,    15,    16,    17,    18,    19,    20,    21,     0,
 
2556
       0,     0,     0,    31,     0,     0,   809,    33,     0,   811,
 
2557
       0,    26,    27,   380,   381,   382,   383,   384,   385,   690,
 
2558
       0,   691,   138,     0,     0,     0,     0,    28,    29,    30,
 
2559
       0,     0,     0,     0,     0,   833,   834,   375,   376,   377,
 
2560
     378,   468,   380,   381,   382,   383,   384,   469,   377,   378,
 
2561
     379,   380,   381,   382,   383,   384,   385,    31,   278,   278,
 
2562
       0,    33,     0,     0,   519,     0,   702,     0,   278,   564,
 
2563
     726,  -443,    49,     0,     0,     0,     0,    52,   378,   379,
 
2564
     380,   381,   382,   383,   384,   385,    53,  -443,  -443,  -443,
 
2565
    -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,
 
2566
    -443,   757,     0,     0,   565,    55,     0,     0,  -443,     0,
 
2567
    -443,  -443,  -443,  -443,  -443,     0,     0,     0,     0,     0,
 
2568
       0,    57,    58,    59,    60,   566,    62,    63,    64,  -443,
 
2569
    -443,  -443,   567,   568,   569,     0,    65,   570,    67,     0,
 
2570
      68,    69,     0,     0,   519,    73,     0,    75,    76,    77,
 
2571
      78,    79,    80,     0,   790,     0,     0,    81,     0,  -443,
 
2572
       0,     0,    82,  -443,  -443,     7,     0,     0,   158,     0,
 
2573
       0,     0,     0,   210,   211,   212,   213,   214,   215,   216,
 
2574
     571,     8,     9,    10,    11,    12,    13,    14,    15,    16,
 
2575
      17,    18,    19,    20,    21,   241,     0,     0,     0,     0,
 
2576
       0,     0,     0,     0,    23,    24,    25,    26,    27,     0,
 
2577
     242,     0,     0,   243,     0,     0,     0,     0,     0,     7,
 
2578
       0,     0,   158,    28,    29,    30,     0,   210,   211,   212,
 
2579
     213,   214,   215,   216,   374,     8,     9,    10,    11,    12,
 
2580
      13,    14,    15,    16,    17,    18,    19,    20,    21,   241,
 
2581
       0,     0,     0,    31,     0,     0,     0,    33,    23,    24,
 
2582
      25,    26,    27,     0,   242,     0,     0,   393,     0,   244,
 
2583
     245,     0,     0,   246,   247,     0,     0,    28,    29,    30,
 
2584
       0,     0,     0,   375,   376,   377,   378,   379,   380,   381,
 
2585
     382,   383,   384,   385,     0,     8,     9,    10,    11,    12,
 
2586
      13,    14,    15,     0,    17,   276,    19,    31,   158,     0,
 
2587
       0,    33,     0,   210,   211,   212,   213,   214,   215,   216,
 
2588
       0,     0,     7,   244,   245,   158,     0,   246,   247,     0,
 
2589
     210,   211,   212,   213,   214,   215,   216,     0,     8,     9,
2577
2590
      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2578
 
      20,   240,     0,     0,     0,     0,     0,     0,     0,     0,
2579
 
      22,    23,    24,    25,    26,     0,   241,     0,     0,     0,
2580
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,    27,
2581
 
      28,    29,     0,     0,     0,     0,     0,     0,     0,     0,
2582
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2583
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,    30,
2584
 
       0,     0,     0,    32,     0,     0,     0,     0,     0,     0,
2585
 
       0,     0,     0,     0,     7,   243,   244,   157,   137,   245,
2586
 
     246,   723,   209,   210,   211,   212,   213,   214,   215,     0,
2587
 
       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
2588
 
      18,    19,    20,   240,     0,     0,     0,     0,     0,     0,
2589
 
       0,     0,    22,    23,    24,    25,    26,     0,   241,     0,
2590
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2591
 
       0,    27,    28,    29,     0,     0,     0,     0,     0,     0,
2592
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2593
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2594
 
       0,    30,     0,     0,     0,    32,     0,     0,     0,     0,
2595
 
       0,     0,     0,     0,     0,     0,     7,   243,   244,   157,
2596
 
       0,   245,   246,     0,   209,   210,   211,   212,   213,   214,
2597
 
     215,     0,     8,     9,    10,    11,    12,    13,    14,    15,
2598
 
      16,    17,    18,    19,    20,   240,     0,     0,     0,     0,
2599
 
       0,     0,     0,     0,    22,    23,    24,    25,    26,     0,
2600
 
     241,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2601
 
       0,     7,     0,    27,    28,    29,     0,     0,     0,     0,
 
2591
      20,    21,   241,     0,     0,     0,     0,     0,     0,     0,
 
2592
       0,    23,    24,    25,    26,    27,     0,   242,     0,     0,
 
2593
     396,     0,     0,     0,     0,     0,     7,     0,     0,   158,
 
2594
      28,    29,    30,     0,   210,   211,   212,   213,   214,   215,
 
2595
     216,   491,     8,     9,    10,    11,    12,    13,    14,    15,
 
2596
      16,    17,    18,    19,    20,    21,   241,     0,     0,     0,
 
2597
      31,     0,     0,     0,    33,    23,    24,    25,    26,    27,
 
2598
       0,   242,     0,     0,   488,     0,   244,   245,     0,     0,
 
2599
     246,   247,     0,     0,    28,    29,    30,     0,     0,     0,
 
2600
     375,   376,   377,   378,   379,   380,   381,   382,   383,   384,
 
2601
     385,   375,   376,   377,   378,   379,   380,   381,   382,   383,
 
2602
     384,   385,     0,     0,    31,     0,     0,     0,    33,   376,
 
2603
     377,   378,   379,   380,   381,   382,   383,   384,   385,     7,
 
2604
     244,   245,   158,     0,   246,   247,     0,   210,   211,   212,
 
2605
     213,   214,   215,   216,     0,     8,     9,    10,    11,    12,
 
2606
      13,    14,    15,    16,    17,    18,    19,    20,    21,   241,
 
2607
     610,     0,     0,     0,     0,     0,     0,     0,    23,    24,
 
2608
      25,    26,    27,     0,   242,     0,     0,     0,     0,     0,
 
2609
       0,     0,     0,     7,     0,     0,   158,    28,    29,    30,
 
2610
       0,   210,   211,   212,   213,   214,   215,   216,   493,     8,
 
2611
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
 
2612
      19,    20,    21,   241,     0,     0,     0,    31,     0,     0,
 
2613
       0,    33,    23,    24,    25,    26,    27,     0,   242,     0,
 
2614
       0,     0,     0,   244,   245,     0,     0,   246,   247,     0,
 
2615
       0,    28,    29,    30,     0,     0,     0,   375,   376,   377,
 
2616
     378,   379,   380,   381,   382,   383,   384,   385,     0,     0,
 
2617
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2618
       0,    31,     0,     0,     0,    33,     0,     0,     0,     0,
 
2619
       0,     0,     0,     0,     0,     0,     7,   244,   245,   158,
 
2620
     138,   246,   247,   724,   210,   211,   212,   213,   214,   215,
 
2621
     216,     0,     8,     9,    10,    11,    12,    13,    14,    15,
 
2622
      16,    17,    18,    19,    20,    21,   241,     0,     0,     0,
 
2623
       0,     0,     0,     0,     0,    23,    24,    25,    26,    27,
 
2624
       0,   242,     0,     0,     0,     0,     0,     0,     0,     0,
 
2625
       7,     0,     0,   158,    28,    29,    30,     0,   210,   211,
 
2626
     212,   213,   214,   215,   216,     0,     8,     9,    10,    11,
 
2627
      12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
 
2628
     241,     0,     0,     0,    31,     0,     0,     0,    33,    23,
 
2629
      24,    25,    26,    27,     0,   242,     0,     0,     0,     0,
 
2630
     244,   245,     0,     0,   246,   247,     7,     0,    28,    29,
 
2631
      30,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2632
       0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
 
2633
      16,    17,    18,    19,    20,    21,   227,     0,    31,     0,
 
2634
       0,     0,    33,     0,    22,    23,    24,    25,    26,    27,
 
2635
       0,     0,     0,   135,   244,   245,     0,     0,   246,   247,
 
2636
       0,     7,     0,     0,    28,    29,    30,     0,     0,     0,
2602
2637
       0,     0,     0,     0,     0,     0,     0,     8,     9,    10,
2603
2638
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2604
 
     226,     0,     0,    30,     0,     0,     0,    32,    21,    22,
2605
 
      23,    24,    25,    26,     0,     0,     0,   134,     0,   243,
2606
 
     244,     0,     0,   245,   246,     0,     7,     0,    27,    28,
2607
 
      29,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2639
      21,   227,     0,     0,    31,     0,     0,    32,    33,    22,
 
2640
      23,    24,    25,    26,    27,     0,     0,   228,   135,     0,
 
2641
       0,     0,     0,   138,     0,     0,     7,     0,     0,    28,
 
2642
      29,    30,     0,     0,     0,     0,     0,     0,   618,     0,
2608
2643
       0,     0,     8,     9,    10,    11,    12,    13,    14,    15,
2609
 
      16,    17,    18,    19,    20,   226,     0,     0,    30,     0,
2610
 
       0,    31,    32,    21,    22,    23,    24,    25,    26,     0,
2611
 
       7,   227,   134,     0,     0,     0,     0,   137,     0,     0,
2612
 
       0,     0,     0,    27,    28,    29,     8,     9,    10,    11,
2613
 
      12,    13,    14,    15,    16,    17,    18,    19,    20,     0,
2614
 
       0,     0,     0,     0,     0,     0,     0,    21,    22,    23,
2615
 
      24,    25,    26,    30,     0,     0,    31,    32,     0,     0,
2616
 
       0,     7,     0,     0,     0,     0,   350,    27,    28,    29,
2617
 
       0,     0,   137,     0,     0,     0,     0,     8,     9,    10,
2618
 
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2619
 
       0,     0,     0,     0,     0,     0,     0,    30,     0,     0,
2620
 
      31,    32,    25,    26,     0,     0,     0,     0,     0,     0,
2621
 
     328,     0,     0,     0,     0,     0,   137,     0,    27,    28,
2622
 
      29,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2623
 
       0,     0,     0,     0,     0,    -2,    47,     0,  -442,    48,
2624
 
       0,     0,    49,    50,    51,     0,     0,     0,    30,     0,
2625
 
       0,     0,    32,    52,  -442,  -442,  -442,  -442,  -442,  -442,
2626
 
    -442,  -442,  -442,  -442,  -442,  -442,  -442,   137,     0,     0,
2627
 
      53,    54,     0,     0,     0,     0,  -442,  -442,  -442,  -442,
2628
 
    -442,     0,     0,    55,     0,     0,     0,    56,    57,    58,
2629
 
      59,    60,    61,    62,    63,  -442,  -442,  -442,     0,     0,
2630
 
       0,     0,    64,    65,    66,     0,    67,    68,    69,    70,
2631
 
      71,    72,    73,    74,    75,    76,    77,    78,    79,     0,
2632
 
       0,     0,     0,    80,    47,  -442,  -442,    48,    81,  -442,
2633
 
      49,    50,    51,     0,     0,     0,     0,     0,     0,     0,
2634
 
       0,    52,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
2635
 
    -442,  -442,  -442,  -442,  -442,     0,     0,     0,    53,    54,
2636
 
       0,     0,   528,     0,  -442,  -442,  -442,  -442,  -442,     0,
2637
 
       0,    55,     0,     0,     0,    56,    57,    58,    59,    60,
2638
 
      61,    62,    63,  -442,  -442,  -442,     0,     0,     0,     0,
2639
 
      64,    65,    66,     0,    67,    68,    69,    70,    71,    72,
2640
 
      73,    74,    75,    76,    77,    78,    79,     0,     0,     0,
2641
 
       0,    80,    47,  -442,  -442,    48,    81,  -442,    49,    50,
2642
 
      51,     0,     0,     0,     0,     0,     0,     0,     0,    52,
2643
 
    -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
2644
 
    -442,  -442,  -442,     0,     0,     0,    53,    54,     0,     0,
2645
 
     619,     0,  -442,  -442,  -442,  -442,  -442,     0,     0,    55,
2646
 
       0,     0,     0,    56,    57,    58,    59,    60,    61,    62,
2647
 
      63,  -442,  -442,  -442,     0,     0,     0,     0,    64,    65,
2648
 
      66,     0,    67,    68,    69,    70,    71,    72,    73,    74,
2649
 
      75,    76,    77,    78,    79,     0,     0,     0,     0,    80,
2650
 
      47,  -442,  -442,    48,    81,  -442,    49,    50,    51,     0,
2651
 
       0,     0,     0,     0,     0,     0,     0,    52,  -442,  -442,
2652
 
    -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,
2653
 
    -442,     0,     0,     0,    53,    54,     0,     0,   635,     0,
2654
 
    -442,  -442,  -442,  -442,  -442,     0,     0,    55,     0,     0,
2655
 
       0,    56,    57,    58,    59,    60,    61,    62,    63,  -442,
2656
 
    -442,  -442,     0,     0,     0,     0,    64,    65,    66,     0,
2657
 
      67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
2658
 
      77,    78,    79,     0,     0,     0,     0,    80,    47,  -442,
2659
 
    -442,    48,    81,  -442,    49,    50,    51,     0,     0,     0,
2660
 
       0,     0,     0,     0,     0,    52,  -442,  -442,  -442,  -442,
2661
 
    -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,  -442,     0,
2662
 
       0,     0,    53,    54,     0,     0,     0,     0,  -442,  -442,
2663
 
    -442,  -442,  -442,     0,     0,    55,     0,   721,     0,    56,
2664
 
      57,    58,    59,    60,    61,    62,    63,  -442,  -442,  -442,
2665
 
       0,     0,     0,     0,    64,    65,    66,     0,    67,    68,
 
2644
      16,    17,    18,    19,    20,    21,     0,     0,     0,    31,
 
2645
       0,     0,    32,    33,    22,    23,    24,    25,    26,    27,
 
2646
       0,     0,   351,     0,     0,     0,     0,     0,   138,     0,
 
2647
       0,     0,     0,     0,    28,    29,    30,   375,   376,   377,
 
2648
     378,   379,   380,   381,   382,   383,   384,   385,     0,     0,
 
2649
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2650
       0,     0,     0,     0,    31,     0,     0,    32,    33,     0,
 
2651
       0,    -2,    48,     0,  -443,    49,     0,   329,    50,    51,
 
2652
      52,     0,     0,   138,     0,     0,     0,     0,     0,    53,
 
2653
    -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,
 
2654
    -443,  -443,  -443,  -443,     0,     0,     0,    54,    55,     0,
 
2655
       0,     0,     0,  -443,  -443,  -443,  -443,  -443,     0,     0,
 
2656
      56,     0,     0,     0,    57,    58,    59,    60,    61,    62,
 
2657
      63,    64,  -443,  -443,  -443,     0,     0,     0,     0,    65,
 
2658
      66,    67,     0,    68,    69,    70,    71,    72,    73,    74,
 
2659
      75,    76,    77,    78,    79,    80,     0,     0,     0,     0,
 
2660
      81,    48,  -443,  -443,    49,    82,  -443,    50,    51,    52,
 
2661
       0,     0,     0,     0,     0,     0,     0,     0,    53,  -443,
 
2662
    -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,
 
2663
    -443,  -443,  -443,     0,     0,     0,    54,    55,     0,     0,
 
2664
     529,     0,  -443,  -443,  -443,  -443,  -443,     0,     0,    56,
 
2665
       0,     0,     0,    57,    58,    59,    60,    61,    62,    63,
 
2666
      64,  -443,  -443,  -443,     0,     0,     0,     0,    65,    66,
 
2667
      67,     0,    68,    69,    70,    71,    72,    73,    74,    75,
 
2668
      76,    77,    78,    79,    80,     0,     0,     0,     0,    81,
 
2669
      48,  -443,  -443,    49,    82,  -443,    50,    51,    52,     0,
 
2670
       0,     0,     0,     0,     0,     0,     0,    53,  -443,  -443,
 
2671
    -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,
 
2672
    -443,  -443,     0,     0,     0,    54,    55,     0,     0,   620,
 
2673
       0,  -443,  -443,  -443,  -443,  -443,     0,     0,    56,     0,
 
2674
       0,     0,    57,    58,    59,    60,    61,    62,    63,    64,
 
2675
    -443,  -443,  -443,     0,     0,     0,     0,    65,    66,    67,
 
2676
       0,    68,    69,    70,    71,    72,    73,    74,    75,    76,
 
2677
      77,    78,    79,    80,     0,     0,     0,     0,    81,    48,
 
2678
    -443,  -443,    49,    82,  -443,    50,    51,    52,     0,     0,
 
2679
       0,     0,     0,     0,     0,     0,    53,  -443,  -443,  -443,
 
2680
    -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,
 
2681
    -443,     0,     0,     0,    54,    55,     0,     0,   636,     0,
 
2682
    -443,  -443,  -443,  -443,  -443,     0,     0,    56,     0,     0,
 
2683
       0,    57,    58,    59,    60,    61,    62,    63,    64,  -443,
 
2684
    -443,  -443,     0,     0,     0,     0,    65,    66,    67,     0,
 
2685
      68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
 
2686
      78,    79,    80,     0,     0,     0,     0,    81,    48,  -443,
 
2687
    -443,    49,    82,  -443,    50,    51,    52,     0,     0,     0,
 
2688
       0,     0,     0,     0,     0,    53,  -443,  -443,  -443,  -443,
 
2689
    -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,  -443,
 
2690
       0,     0,     0,    54,    55,     0,     0,     0,     0,  -443,
 
2691
    -443,  -443,  -443,  -443,     0,     0,    56,     0,   722,     0,
 
2692
      57,    58,    59,    60,    61,    62,    63,    64,  -443,  -443,
 
2693
    -443,     0,     0,     0,     0,    65,    66,    67,     0,    68,
2666
2694
      69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
2667
 
      79,     6,     0,     7,     0,    80,     0,  -442,     0,     0,
2668
 
      81,  -442,     0,     0,     0,     0,     0,     0,     0,     8,
2669
 
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2670
 
      19,    20,     0,     0,     0,     0,     0,     0,     0,     0,
2671
 
      21,    22,    23,    24,    25,    26,     0,     0,     0,     0,
2672
 
       0,     0,     0,     0,     0,     0,    44,     0,     7,     0,
2673
 
      27,    28,    29,     0,     0,     0,     0,     0,     0,     0,
 
2695
      79,    80,     6,     0,     7,     0,    81,     0,  -443,     0,
 
2696
       0,    82,  -443,     0,     0,     0,     0,     0,     0,     0,
 
2697
       8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
 
2698
      18,    19,    20,    21,     0,     0,     0,     0,     0,     0,
 
2699
       0,     0,    22,    23,    24,    25,    26,    27,     0,     0,
 
2700
       0,     0,     0,     0,     0,     0,     0,    45,     0,     7,
 
2701
       0,     0,    28,    29,    30,     0,     0,     0,     0,     0,
 
2702
       0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
 
2703
      13,    14,    15,    16,    17,    18,    19,    20,    21,     0,
 
2704
       0,     0,    31,     0,     0,    32,    33,    22,    23,    24,
 
2705
      25,    26,    27,     0,     0,     0,     0,     0,     0,     0,
 
2706
       0,   163,     0,   164,     0,     0,     0,    28,    29,    30,
 
2707
       0,     0,     0,     0,     0,     0,     0,     0,     0,     8,
 
2708
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
 
2709
      19,    20,    21,     0,     0,     0,     0,    31,     0,     0,
 
2710
      32,    33,    23,    24,    25,    26,    27,     0,     0,     0,
 
2711
       0,     0,     0,     0,     0,     0,     0,     7,     0,     0,
 
2712
       0,    28,    29,    30,     0,     0,     0,     0,     0,     0,
 
2713
       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
 
2714
      15,    16,    17,    18,    19,    20,    21,     0,     0,     0,
 
2715
       0,    31,     0,     0,     0,    33,    23,    24,    25,    26,
 
2716
      27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2717
       0,     0,     0,     0,     0,   206,    29,    30,     0,     0,
 
2718
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2719
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2720
       0,     0,     0,     7,     0,    31,   209,     0,     0,    33,
 
2721
     680,   210,   211,   212,   213,   214,   215,   216,     0,     8,
 
2722
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
 
2723
      19,    20,    21,     0,     0,     0,     0,     0,     0,     0,
 
2724
       0,    22,    23,    24,    25,    26,    27,     0,     0,     0,
 
2725
       0,     0,     0,     0,     0,     0,     0,     0,     7,     0,
 
2726
       0,    28,    29,    30,     0,     0,   294,     0,     0,     0,
2674
2727
       0,     0,     0,     0,     8,     9,    10,    11,    12,    13,
2675
 
      14,    15,    16,    17,    18,    19,    20,     0,     0,     0,
2676
 
      30,     0,     0,    31,    32,    21,    22,    23,    24,    25,
2677
 
      26,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2678
 
     162,     0,   163,     0,     0,    27,    28,    29,     0,     0,
2679
 
       0,     0,     0,     0,     0,     0,     0,     0,     8,     9,
2680
 
      10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
2681
 
      20,     0,     0,     0,     0,    30,     0,     0,    31,    32,
2682
 
      22,    23,    24,    25,    26,     0,     7,     0,     0,     0,
2683
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,    27,
2684
 
      28,    29,     8,     9,    10,    11,    12,    13,    14,    15,
2685
 
      16,    17,    18,    19,    20,     0,     0,     0,     0,     0,
2686
 
       0,     0,     0,     0,    22,    23,    24,    25,    26,    30,
2687
 
       0,     0,     0,    32,     0,     0,     0,     0,     0,     0,
2688
 
       0,     0,     0,   205,    28,    29,     0,     0,     0,     0,
2689
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2690
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2691
 
       0,     7,     0,    30,   208,     0,     0,    32,   679,   209,
2692
 
     210,   211,   212,   213,   214,   215,     0,     8,     9,    10,
2693
 
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2694
 
       0,     0,     0,     0,     0,     0,     0,     0,    21,    22,
2695
 
      23,    24,    25,    26,     0,     7,     0,     0,     0,     0,
2696
 
       0,     0,     0,   293,     0,     0,     0,     0,    27,    28,
2697
 
      29,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2698
 
      17,    18,    19,    20,     0,     0,     0,     0,     0,     0,
2699
 
       0,     0,    21,    22,    23,    24,    25,    26,    30,     7,
2700
 
       0,    31,    32,     0,     0,     0,     0,     0,     0,     0,
2701
 
       0,     0,    27,    28,    29,     8,     9,    10,    11,    12,
2702
 
      13,    14,    15,    16,    17,    18,    19,    20,     0,     0,
2703
 
       0,     0,     0,     0,     0,     0,    21,    22,    23,    24,
2704
 
      25,    26,    30,     7,     0,    31,    32,     0,     0,     0,
2705
 
       0,     0,     0,     0,     0,     0,    27,    28,    29,     8,
 
2728
      14,    15,    16,    17,    18,    19,    20,    21,     0,     0,
 
2729
       0,    31,     0,     0,    32,    33,    22,    23,    24,    25,
 
2730
      26,    27,     0,     0,     0,     0,     0,     0,     0,     0,
 
2731
       0,     0,     0,     7,     0,     0,    28,    29,    30,     0,
 
2732
       0,     0,     0,     0,     0,     0,     0,     0,     0,     8,
2706
2733
       9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
2707
 
      19,    20,   188,     0,     0,     0,     0,     0,     0,     0,
2708
 
       0,    22,    23,    24,    25,    26,    30,     7,     0,    31,
2709
 
      32,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2710
 
      27,    28,    29,     8,     9,    10,    11,    12,    13,    14,
2711
 
      15,    16,    17,    18,    19,    20,     0,     0,     0,     0,
2712
 
       0,     0,     0,     0,     0,    22,    23,    24,    25,    26,
2713
 
      30,     7,     0,     0,    32,     0,     0,     0,     0,     0,
2714
 
       0,     0,     0,     0,   205,    28,    29,     8,     9,    10,
 
2734
      19,    20,    21,     0,     0,     0,    31,     0,     0,    32,
 
2735
      33,    22,    23,    24,    25,    26,    27,     0,     0,     0,
 
2736
       0,     0,     0,     0,     0,     0,     0,     7,     0,     0,
 
2737
       0,    28,    29,    30,     0,     0,     0,     0,     0,     0,
 
2738
       0,     0,     0,     8,     9,    10,    11,    12,    13,    14,
 
2739
      15,    16,    17,    18,    19,    20,    21,   189,     0,     0,
 
2740
       0,    31,     0,     0,    32,    33,    23,    24,    25,    26,
 
2741
      27,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2742
       0,     7,     0,     0,     0,    28,    29,    30,     0,     0,
 
2743
       0,     0,     0,     0,     0,     0,     0,     8,     9,    10,
2715
2744
      11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
2716
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,    22,
2717
 
      23,    24,    25,    26,    30,   637,     0,     0,    32,     0,
2718
 
       0,     0,     0,     0,     0,     0,     0,     0,    27,    28,
2719
 
      29,     8,     9,    10,    11,    12,    13,    14,    15,    16,
2720
 
      17,    18,    19,    20,     0,     0,     0,     0,     0,     0,
2721
 
       0,     0,     0,    22,    23,    24,    25,    26,    30,     7,
2722
 
       0,     0,    32,     0,     0,     0,     0,     0,     0,     0,
2723
 
       0,     0,    27,    28,    29,     8,     9,    10,    11,    12,
2724
 
      13,    14,    15,    16,    17,    18,    19,    20,     0,     0,
2725
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2726
 
      25,    26,    30,     0,     0,     0,    32,     0,     0,     0,
2727
 
       0,     0,     0,     0,     0,     0,    27,    28,    29,     0,
2728
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2729
 
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
2730
 
       0,     0,     0,     0,     0,     0,    30,     0,     0,     0,
2731
 
      32
 
2745
      21,     0,     0,     0,     0,    31,     0,     0,     0,    33,
 
2746
      23,    24,    25,    26,    27,     0,     0,     0,     0,     0,
 
2747
       0,     0,     0,     0,     0,     7,     0,     0,     0,   206,
 
2748
      29,    30,     0,     0,     0,     0,     0,     0,     0,     0,
 
2749
       0,     8,     9,    10,    11,    12,    13,    14,    15,    16,
 
2750
      17,    18,    19,    20,    21,     0,     0,     0,     0,    31,
 
2751
       0,     0,     0,    33,    23,    24,    25,    26,    27,     0,
 
2752
       0,     0,     0,     0,     0,     0,     0,     0,     0,   638,
 
2753
       0,     0,     0,    28,    29,    30,     0,     0,     0,     0,
 
2754
       0,     0,     0,     0,     0,     8,     9,    10,    11,    12,
 
2755
      13,    14,    15,    16,    17,    18,    19,    20,    21,     0,
 
2756
       0,     0,     0,    31,     0,     0,     0,    33,    23,    24,
 
2757
      25,    26,    27,     0,     0,     0,     0,     0,     0,     0,
 
2758
       0,     0,     0,     0,     0,     0,     0,    28,    29,    30,
 
2759
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2760
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
 
2761
       0,     0,     0,     0,     0,     0,     0,    31,     0,     0,
 
2762
       0,    33
2732
2763
};
2733
2764
 
2734
2765
static const short yycheck[] =
2735
2766
{
2736
 
       0,     4,    34,    36,     4,   127,   522,     7,    35,   284,
2737
 
      37,   136,     1,     2,    75,   415,     1,     2,    33,    19,
2738
 
     145,   523,   300,    32,    35,   182,   307,     4,   728,   151,
2739
 
     152,    41,    42,    43,     4,   735,    36,     3,    10,    33,
2740
 
       4,   741,    33,     4,    27,   224,     3,    33,     4,     6,
2741
 
     141,   508,   143,    36,    84,    55,     4,     3,    41,    35,
2742
 
      60,    61,    38,     6,     4,     4,    38,     4,     4,     3,
2743
 
       3,     6,   227,    84,     4,    32,    91,   232,    46,     3,
2744
 
       3,     6,    36,    38,    46,    68,    69,     4,     4,     4,
2745
 
      38,     4,    92,     4,   103,   274,   121,    91,    84,   109,
2746
 
     109,     4,   227,   130,     4,     3,    49,   232,    84,     4,
2747
 
     137,    46,   103,    38,     4,     4,    84,   100,    92,     4,
2748
 
      46,   121,    84,   823,   626,     0,   404,    38,    94,    84,
2749
 
      81,   103,   121,    90,   591,     3,   121,    94,     6,   113,
2750
 
      66,   141,   267,   143,   425,   423,   103,   132,    94,   132,
2751
 
      73,   517,   109,   136,   111,   138,    90,   190,    40,   525,
2752
 
      94,    94,   145,   163,     3,     6,    90,    90,   119,   103,
2753
 
      94,    94,     3,   328,   329,   109,   176,   128,   132,    35,
2754
 
       6,   164,   548,   137,   167,   109,   702,   172,   173,   555,
2755
 
     190,   174,   192,   193,    36,   286,    94,    38,     3,    38,
2756
 
       3,   113,    34,   188,   706,   205,     3,   190,   363,    35,
2757
 
      66,   196,   197,   670,    46,   198,     3,   200,   201,   219,
2758
 
     203,    84,   205,   206,   207,   350,   351,    32,   628,    35,
2759
 
     230,   688,    63,    64,    65,   360,   190,    41,    42,    43,
2760
 
      35,   226,     3,   226,   227,    32,   200,    32,   405,   232,
2761
 
     341,    90,   313,    32,   237,    94,    32,    33,   100,    90,
2762
 
     385,    66,    49,    94,    49,    95,    70,   633,   253,   547,
2763
 
     253,   254,   226,    49,   399,   432,     4,   262,     6,     3,
2764
 
     265,   738,     3,   438,   267,    90,   286,    90,   271,    94,
2765
 
       6,    94,     4,    90,     6,    44,    45,    94,   103,   253,
2766
 
     300,     3,   285,    90,   109,   259,   111,    94,    32,    32,
2767
 
      38,    32,    61,    62,   341,    92,   299,    32,    33,     3,
2768
 
     345,    32,   164,    35,   111,    49,    38,   327,    49,    90,
2769
 
      32,   285,    32,    94,    49,    84,   113,   337,   704,   464,
2770
 
      60,   341,    32,   343,    46,   328,   329,    49,   190,   332,
2771
 
     807,   334,    32,   336,    38,   340,   345,   340,    34,   450,
2772
 
     345,    32,    35,    39,    66,    38,    90,   356,   351,    90,
2773
 
      94,   356,    92,    94,    32,    33,    18,    89,   332,   103,
2774
 
     363,   406,   103,    32,    33,   109,   340,   111,    90,   664,
2775
 
     415,    49,    94,    66,    36,   237,    35,   763,   349,    38,
2776
 
      49,   103,   385,   388,   404,    32,    90,   109,     3,   111,
2777
 
      94,     6,   366,    32,    33,    32,   399,   400,    18,   422,
2778
 
     831,   424,   422,   423,   424,    67,    68,    69,   417,   429,
2779
 
      49,   414,   417,   844,   845,   418,    36,   470,    33,    96,
2780
 
      97,   468,    34,   809,   444,   422,    38,   813,   570,    32,
2781
 
     450,   451,   422,    46,   437,   438,   439,   457,   422,   442,
2782
 
      32,   422,   462,   620,   621,    32,   422,    67,    68,    69,
2783
 
     470,    32,    40,    66,   156,   458,    35,    70,   160,    38,
2784
 
      33,    34,   422,   422,   166,   422,   422,   470,    49,   171,
2785
 
     517,    35,   422,    93,    38,    44,    45,   500,   525,     3,
2786
 
     500,    35,   485,    91,    38,   422,   422,   422,   508,   422,
2787
 
     493,   193,    61,    62,   468,    35,   470,   517,   200,   422,
2788
 
     202,   548,   422,   500,    32,   525,   529,   422,   555,   529,
2789
 
     500,     3,   422,   422,    32,     3,   500,   422,    35,   500,
2790
 
     523,    49,    38,   546,   500,     3,   546,   547,   548,     3,
2791
 
     535,    49,   529,   675,     6,   555,    41,    42,    43,   529,
2792
 
     500,   500,    38,   500,   500,   529,    35,   550,   529,   546,
2793
 
     500,   556,   414,   529,   557,   850,   418,   668,   610,   640,
2794
 
      33,    34,   546,   500,   500,   500,     4,   500,     6,   529,
2795
 
     529,   591,   529,   529,     4,   437,     6,   500,    34,   529,
2796
 
     500,    56,   602,   628,    91,   500,   633,   713,    85,   715,
2797
 
     500,   500,   529,   529,   529,   500,   529,   600,   108,   109,
2798
 
      75,    76,   647,    34,    32,    85,   529,    35,   470,   529,
2799
 
      38,    33,    34,   633,   529,   172,   173,   637,   623,   529,
2800
 
     529,   668,    35,   734,   529,    38,   629,   647,     3,   600,
2801
 
      33,   188,    34,    46,   657,   638,   610,   657,   647,   196,
2802
 
      33,   661,   647,    91,   119,   665,    32,    32,   668,   109,
2803
 
     670,    34,    35,    33,    91,    38,    33,   704,   663,   662,
2804
 
     657,   523,    10,    38,   669,    33,    38,   657,   688,   780,
2805
 
      33,    33,    46,   657,   677,    34,   657,   680,   681,    33,
2806
 
      35,   657,    91,   686,   704,   656,   104,   105,   106,   107,
2807
 
     108,   109,   145,   698,    33,   557,    33,   657,   657,    33,
2808
 
     657,   657,   705,     3,    33,   262,     6,   657,   265,    33,
2809
 
      33,    54,    85,   415,   734,    90,   763,   720,   738,    94,
2810
 
     657,   657,   657,    33,   657,   745,    35,    91,   731,   749,
2811
 
      38,    74,    33,   753,   657,   740,    79,   657,   743,    91,
2812
 
     743,    91,   657,   763,    33,    35,     3,   657,   657,    35,
2813
 
     203,    33,   657,     3,   759,   106,   107,   108,   109,    38,
2814
 
     780,    35,   809,    32,   134,   135,   813,   629,   742,   743,
2815
 
      35,   791,   792,    39,    35,    32,   638,   782,    35,     3,
2816
 
     785,   828,    32,   340,   831,    33,    32,   807,   791,   809,
2817
 
      90,   794,   795,   813,    94,   815,    38,   844,   845,    49,
2818
 
     662,   804,    33,   103,    34,    34,   811,   812,   828,   109,
2819
 
      32,   831,   815,   156,   267,   677,   159,   160,   271,    46,
2820
 
     113,    84,    33,   166,   844,   845,    39,    46,   171,    32,
2821
 
      38,   388,   307,    90,     3,     3,   111,    94,   313,   182,
2822
 
      90,    66,    39,   705,    94,    66,   103,    39,    66,    33,
2823
 
     193,   194,   109,   103,   111,    33,   199,   200,     3,   202,
2824
 
      39,   111,    68,    32,    32,     3,     4,    35,     6,   239,
2825
 
     240,    32,    70,   243,   244,   245,   246,     3,    33,    35,
2826
 
      33,   334,     4,   336,     6,     3,     3,    32,     3,    35,
2827
 
      66,    33,   367,   263,    32,    32,   266,    35,    33,    35,
2828
 
      38,    32,    34,    32,    49,    35,    32,    34,    85,    35,
2829
 
      41,    42,    43,    35,    32,    46,    38,    32,    32,    35,
2830
 
      35,    90,    90,    33,    46,    94,    94,    35,   630,   791,
2831
 
       3,     3,   385,   795,   103,   103,    33,    39,    33,    70,
2832
 
     109,   109,   111,   111,    35,    90,   399,   400,    35,    94,
2833
 
     425,    89,    90,   815,    35,    34,    94,    32,   433,    32,
2834
 
      32,     3,    39,    33,    90,   103,   111,    32,    94,    32,
2835
 
     406,   109,    90,   111,     3,    90,    94,   103,   535,    94,
2836
 
      33,    33,   429,   109,    35,   111,   439,    33,   103,   442,
2837
 
      32,    35,    33,   111,   109,    33,   111,    33,    35,   556,
2838
 
       3,    35,    35,    32,   374,   375,   376,   377,   546,   379,
2839
 
     380,   381,   382,   383,   384,   668,   546,    90,    90,   389,
2840
 
      49,    94,    94,   546,   815,   197,   647,   462,   457,    32,
2841
 
     103,   103,   485,   345,    40,   661,   109,   109,   111,   111,
2842
 
     493,   792,   749,   470,   753,   813,    49,   804,    90,    19,
2843
 
     532,    -1,    94,    -1,    -1,     3,   531,    -1,    -1,    -1,
2844
 
     403,    90,   405,   406,    -1,    94,   623,    -1,    -1,   111,
2845
 
     413,   414,   415,    -1,   103,    -1,    -1,    -1,    41,    42,
2846
 
      43,    -1,   111,    46,    32,     3,    -1,    90,     3,   432,
2847
 
      -1,    94,    -1,    -1,   437,    -1,   466,   550,   468,    -1,
2848
 
     103,    49,    -1,    66,    -1,    -1,   663,    70,   111,    -1,
2849
 
       3,    -1,   669,     6,    32,    -1,     3,    32,    11,    12,
2850
 
      13,    14,    15,    16,    17,   600,    19,    20,    21,    22,
2851
 
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2852
 
      -1,   698,    90,    -1,     3,    32,    94,    -1,    41,    42,
2853
 
      43,    44,    45,    -1,    47,   103,    -1,    50,    -1,    -1,
2854
 
      -1,    -1,    -1,   111,    -1,   640,    -1,    60,    61,    62,
2855
 
      -1,    -1,    90,    32,    -1,    90,    94,    -1,    -1,    94,
2856
 
     523,   656,    -1,   740,    -1,   103,   743,   530,   103,   532,
2857
 
      33,   109,    -1,   111,    -1,    -1,   111,    90,    -1,    -1,
2858
 
      -1,    94,   759,    90,   679,    -1,    -1,    94,    -1,    -1,
2859
 
      -1,    -1,    -1,   106,   107,    -1,   103,   110,   111,    -1,
2860
 
      -1,    -1,    -1,    -1,   111,   782,    -1,    -1,   785,    -1,
2861
 
      -1,    90,    -1,    -1,    -1,    94,    -1,     3,    -1,   609,
2862
 
       6,   611,    -1,    -1,   103,    11,    12,    13,    14,    15,
2863
 
      16,    17,   111,    -1,   811,   812,    99,   100,   101,   102,
2864
 
     103,   104,   105,   106,   107,   108,   109,   100,   101,   102,
2865
 
     103,   104,   105,   106,   107,   108,   109,   620,   621,    -1,
2866
 
      -1,    -1,    -1,   626,    -1,   628,    -1,   630,    -1,     1,
2867
 
     660,     3,     4,     6,    -1,    -1,    -1,     9,    11,    12,
2868
 
      13,    14,    15,    16,    17,    -1,    18,    19,    20,    21,
 
2767
       0,     4,    35,    37,     4,   308,   301,     7,    34,    36,
 
2768
       4,    38,    10,   416,     1,     2,     1,     2,   523,   285,
 
2769
      20,    33,    76,    34,     3,   228,   183,     3,   122,    39,
 
2770
     233,   524,    34,     0,     4,   225,    85,    37,     6,    34,
 
2771
       4,    39,    41,     4,   729,    28,    36,   128,     4,   509,
 
2772
     114,   736,    33,     4,    37,     4,    56,   742,     4,    42,
 
2773
      85,    61,    62,     6,     4,     4,    92,     4,     4,    50,
 
2774
       3,   152,   153,     4,     4,    85,    93,     3,     3,     3,
 
2775
       3,    92,    50,    37,   157,   275,    69,    70,   161,     4,
 
2776
      85,     4,   104,    93,   167,    85,    39,   114,   110,   172,
 
2777
      82,     4,   104,    96,   131,     3,   104,    33,    33,     4,
 
2778
     405,   138,    91,    47,     4,     4,    95,     3,   101,    95,
 
2779
      36,   194,   122,   426,    50,    50,   329,   330,   201,   424,
 
2780
     203,   110,   592,    67,   627,   122,    33,   122,   120,   824,
 
2781
       3,   142,   142,   144,   144,     4,     4,   129,   133,    36,
 
2782
     133,    74,   518,    50,   137,     6,   139,   191,    91,    33,
 
2783
     526,   364,    95,   146,   164,    91,    91,    91,    91,    95,
 
2784
      95,    95,    95,     3,     3,     3,     6,   177,   104,   133,
 
2785
      39,    39,   165,   549,   138,   168,   112,   112,   173,   174,
 
2786
     556,   191,   175,   193,   194,    37,    47,    95,   703,    36,
 
2787
       6,    47,     3,    33,   189,    33,   206,     3,   191,    95,
 
2788
       3,   671,   197,   198,   707,    35,   199,    33,   201,   202,
 
2789
     220,   204,    50,   206,   207,   208,   629,    47,     3,   689,
 
2790
      67,   231,    95,    39,    50,     6,   439,   191,    39,    85,
 
2791
      33,    35,   227,    33,   227,   228,    40,   201,    36,   406,
 
2792
     233,    39,   346,   548,     4,   238,     6,    50,    33,   101,
 
2793
     314,    91,    91,    91,    61,    95,    95,    95,   634,   254,
 
2794
      33,   254,   255,   227,   104,    50,   433,     6,   263,   739,
 
2795
     110,   266,   112,    47,   112,   268,   287,   287,     3,   272,
 
2796
      91,     4,    33,     6,    95,    91,    93,    85,    91,    95,
 
2797
     254,   301,    95,   286,    93,    33,   260,    36,   104,    50,
 
2798
      33,   104,    18,   407,   110,   342,    91,   300,    33,   112,
 
2799
      95,    85,   416,   165,     3,   114,    39,     3,   328,   104,
 
2800
       6,    37,   286,    33,    18,   110,    35,   112,   338,   705,
 
2801
      39,   342,   342,   416,   344,    33,   329,   330,   808,   191,
 
2802
     333,    41,   335,    37,   337,     4,   341,     6,   341,   346,
 
2803
      39,   346,    68,    69,    70,    45,    46,    33,   350,   352,
 
2804
     357,    33,   357,    33,    36,    57,    91,    39,     3,   333,
 
2805
      95,   364,    62,    63,    68,    69,    70,   341,    94,   104,
 
2806
       3,    92,    33,    34,    76,    77,   238,   112,   764,   665,
 
2807
      42,    43,    44,   386,   389,   405,    42,    43,    44,    50,
 
2808
      33,    34,    91,   367,    33,    91,    95,   400,   401,    95,
 
2809
     423,    33,   425,   423,   424,   425,    39,    50,   104,   423,
 
2810
     430,   418,   415,   418,   110,    71,   419,   471,   120,    64,
 
2811
      65,    66,   469,    36,   810,   445,    39,   434,   814,   434,
 
2812
     451,   451,   452,   423,    47,   438,   439,   440,   458,   423,
 
2813
     443,    47,   423,   463,   621,   622,    91,   423,   110,    33,
 
2814
      95,   471,   423,   714,   423,   716,   459,   423,    91,    45,
 
2815
      46,    67,    95,   423,   423,    71,   423,   423,   471,     3,
 
2816
     571,   518,   423,   423,    97,    98,    62,    63,   501,   526,
 
2817
      36,   501,     3,   486,    33,    34,     3,   501,   423,   509,
 
2818
     423,   494,    36,     3,    39,   469,     3,   471,   518,    85,
 
2819
     423,    50,   549,    34,    35,   832,   526,   530,   423,   556,
 
2820
     530,   501,     3,   423,   423,   629,   530,   501,   845,   846,
 
2821
     501,   524,     6,    33,   547,   501,    36,   547,   548,   549,
 
2822
     501,   536,   501,   547,   648,   501,   556,    39,   631,    36,
 
2823
     530,   501,   501,    35,   501,   501,   530,    86,   551,   530,
 
2824
     501,   501,   557,   415,   530,   558,    92,   419,   611,   530,
 
2825
      35,   530,    86,   547,   530,   851,   501,   641,   501,    34,
 
2826
     530,   530,   592,   530,   530,   676,   438,    35,   501,   530,
 
2827
     530,    91,    34,   603,    92,    95,   501,   634,    33,    34,
 
2828
      33,   501,   501,     3,   104,   530,     6,   530,   601,   601,
 
2829
     110,     3,   112,    33,     6,    50,   308,   530,    36,   471,
 
2830
      36,    39,   314,    39,   634,   530,   173,   174,   638,   624,
 
2831
     530,   530,   669,    36,    34,   110,    39,   630,   648,     4,
 
2832
      36,     6,   189,    39,    34,   658,   639,   611,   658,    67,
 
2833
     197,   648,   662,   648,   658,    92,   666,    34,   669,   669,
 
2834
       3,   671,    42,    43,    44,   657,    33,    34,   705,   664,
 
2835
     663,    36,   524,    10,    39,   670,   368,    34,   658,   689,
 
2836
       3,    39,    47,    50,   658,   678,    34,   658,   681,   682,
 
2837
      33,    35,   658,    36,   687,   705,    47,   658,    36,   658,
 
2838
      34,    39,   658,    34,   699,    86,   558,    36,   658,   658,
 
2839
      33,   658,   658,   706,    34,    35,   263,   658,   658,   266,
 
2840
     109,   110,    55,    34,   735,   735,    34,   764,   721,   739,
 
2841
      34,    35,    34,   658,   426,   658,   746,    34,   146,   732,
 
2842
     750,    34,    75,    34,   754,   658,   741,    80,    91,   744,
 
2843
      34,   744,    95,   658,   764,    36,    35,    36,   658,   658,
 
2844
      39,   104,    92,    39,    92,   760,    92,   110,    91,   112,
 
2845
     781,   781,    95,   810,   135,   136,    92,   814,   630,   743,
 
2846
     744,   137,   792,   793,    34,    34,    34,   639,   783,   112,
 
2847
     146,   786,   829,    36,   341,   832,   204,    36,   808,   792,
 
2848
     810,     3,   795,   796,   814,    39,   816,     3,   845,   846,
 
2849
      36,   663,   805,     3,     4,    33,     6,   812,   813,   829,
 
2850
      40,    36,   832,   816,   157,     3,   678,   160,   161,    36,
 
2851
       3,    33,    35,    34,   167,   845,   846,    33,    33,   172,
 
2852
     532,    39,   389,    33,    35,    47,    36,    34,    50,    39,
 
2853
     183,     3,    33,    47,   706,    33,   114,    85,    36,    34,
 
2854
     268,   194,   195,    40,   272,    67,    33,   200,   201,    39,
 
2855
     203,    47,   228,    34,     3,    67,   112,   233,    67,   240,
 
2856
     241,    33,    67,   244,   245,   246,   247,    40,    34,    91,
 
2857
      40,    40,    33,    95,    34,    91,    34,    71,     3,    95,
 
2858
      90,    91,   104,   264,    33,    95,   267,    36,   110,   601,
 
2859
     112,    69,   268,    91,   104,    67,   112,    95,    36,     3,
 
2860
     110,    36,   112,    67,    34,    33,   104,   335,    33,   337,
 
2861
      36,    35,   110,    34,   112,   107,   108,   109,   110,    91,
 
2862
     792,    33,    35,    95,   796,    50,     3,    36,    36,   641,
 
2863
      86,    34,   104,    34,    36,    33,    36,     3,   110,    33,
 
2864
     112,    40,    91,    34,   816,   657,    95,    36,    42,    43,
 
2865
      44,     3,    36,    47,    35,   104,    33,    33,   386,    34,
 
2866
      40,   110,    33,   112,    33,   407,    91,    33,   680,   536,
 
2867
      95,    34,   400,   401,    34,   351,   352,    71,    36,   104,
 
2868
      34,    33,   430,     3,    34,   361,     3,   112,    36,    34,
 
2869
     557,     4,    34,     6,   375,   376,   377,   378,    50,   380,
 
2870
     381,   382,   383,   384,   385,    36,     3,    36,    36,   390,
 
2871
     386,   547,   440,    33,    91,   443,    33,     3,    95,   669,
 
2872
       3,   547,   547,    36,   400,    91,    39,   104,   816,    95,
 
2873
     198,   463,   458,   110,   648,   112,    33,   346,   104,    91,
 
2874
      42,    43,    44,    95,   110,    47,   112,    33,    41,   471,
 
2875
      33,   404,   104,   406,   407,   662,   793,   624,   486,   750,
 
2876
     112,   414,   415,   416,   814,    67,   494,    50,   754,    71,
 
2877
     805,    91,    20,   533,    91,    95,    -1,    90,    95,    -1,
 
2878
     433,    -1,    -1,    -1,   104,   438,   467,   104,   469,   465,
 
2879
     110,    36,   112,   110,    91,   112,    -1,   664,    95,    -1,
 
2880
      -1,    -1,    -1,   670,    -1,    91,    -1,   104,    91,    95,
 
2881
      -1,    -1,    95,    -1,    -1,   112,    -1,    -1,   104,    -1,
 
2882
      -1,   104,    -1,   551,    -1,     3,   112,    -1,    -1,     6,
 
2883
      -1,    -1,   699,    -1,    11,    12,    13,    14,    15,    16,
 
2884
      17,    19,    20,    21,    22,    23,    24,    25,    26,    27,
 
2885
      28,    29,    30,    31,    32,   100,   101,   102,   103,   104,
 
2886
     105,   106,   107,   108,   109,   110,    -1,    45,    46,    -1,
 
2887
      -1,   524,    -1,    -1,   741,    -1,    -1,   744,   531,     3,
 
2888
     533,    34,    -1,    61,    62,    63,   104,   105,   106,   107,
 
2889
     108,   109,   110,   760,    -1,    19,    20,    21,    22,    23,
 
2890
      24,    25,    26,    27,    28,    29,    30,    31,    32,    -1,
 
2891
      -1,    -1,    -1,    91,    -1,    -1,   783,    95,    -1,   786,
 
2892
      -1,    45,    46,   105,   106,   107,   108,   109,   110,   610,
 
2893
      -1,   612,   110,    -1,    -1,    -1,    -1,    61,    62,    63,
 
2894
      -1,    -1,    -1,    -1,    -1,   812,   813,   100,   101,   102,
 
2895
     103,   104,   105,   106,   107,   108,   109,   110,   102,   103,
 
2896
     104,   105,   106,   107,   108,   109,   110,    91,   621,   622,
 
2897
      -1,    95,    -1,    -1,   627,    -1,   629,    -1,   631,     1,
 
2898
     661,     3,     4,    -1,    -1,    -1,    -1,     9,   103,   104,
 
2899
     105,   106,   107,   108,   109,   110,    18,    19,    20,    21,
2869
2900
      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2870
 
      -1,   691,    -1,    35,    36,    -1,    -1,    39,    -1,    41,
2871
 
      42,    43,    44,    45,    -1,    -1,    -1,    -1,    -1,    -1,
2872
 
      52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
2873
 
      62,    63,    64,    65,    -1,    67,    68,    69,    -1,    71,
2874
 
      72,    -1,    -1,   706,    76,    -1,    78,    79,    80,    81,
2875
 
      82,    83,    -1,    -1,   744,    -1,    88,    -1,    90,    -1,
2876
 
      35,    93,    94,    95,     3,    -1,    -1,     6,    -1,    -1,
2877
 
      -1,    -1,    11,    12,    13,    14,    15,    16,    17,   111,
2878
 
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2879
 
      29,    30,    31,    32,   102,   103,   104,   105,   106,   107,
2880
 
     108,   109,    41,    42,    43,    44,    45,    -1,    47,    -1,
2881
 
      -1,    50,   101,   102,   103,   104,   105,   106,   107,   108,
2882
 
     109,    60,    61,    62,    99,   100,   101,   102,   103,   104,
2883
 
     105,   106,   107,   108,   109,    99,   100,   101,   102,   103,
2884
 
     104,   105,   106,   107,   108,   109,    -1,    -1,    -1,    -1,
2885
 
      -1,    90,    -1,    -1,    -1,    94,   103,   104,   105,   106,
2886
 
     107,   108,   109,    -1,    -1,    -1,     3,   106,   107,     6,
2887
 
      -1,   110,   111,    -1,    11,    12,    13,    14,    15,    16,
2888
 
      17,    50,    19,    20,    21,    22,    23,    24,    25,    26,
2889
 
      27,    28,    29,    30,    31,    32,    -1,    -1,    -1,    -1,
2890
 
      -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,    -1,
2891
 
      47,    -1,    -1,    50,    -1,    -1,    -1,    -1,    -1,    -1,
2892
 
      -1,    -1,    -1,    60,    61,    62,    -1,    -1,    -1,    -1,
2893
 
      99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
2894
 
     109,    19,    20,    21,    22,    23,    24,    25,    -1,    27,
2895
 
      -1,    29,    -1,    90,    -1,    -1,    -1,    94,    -1,    -1,
2896
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,   106,
2897
 
     107,     6,    -1,   110,   111,    -1,    11,    12,    13,    14,
2898
 
      15,    16,    17,    50,    19,    20,    21,    22,    23,    24,
2899
 
      25,    26,    27,    28,    29,    30,    31,    32,    -1,    -1,
2900
 
      -1,    -1,    -1,    -1,    -1,    -1,    41,    42,    43,    44,
2901
 
      45,    -1,    47,    -1,    -1,    50,    -1,    -1,    -1,    -1,
2902
 
      -1,    -1,    -1,    -1,    -1,    60,    61,    62,    -1,    -1,
2903
 
      -1,    -1,    99,   100,   101,   102,   103,   104,   105,   106,
2904
 
     107,   108,   109,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2905
 
      -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,    94,
2906
 
      -1,    -1,    -1,    -1,    -1,    -1,    50,    -1,    -1,    -1,
2907
 
       3,   106,   107,     6,    -1,   110,   111,    -1,    11,    12,
2908
 
      13,    14,    15,    16,    17,    50,    19,    20,    21,    22,
2909
 
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
2910
 
      33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,    42,
2911
 
      43,    44,    45,    -1,    47,    99,   100,   101,   102,   103,
2912
 
     104,   105,   106,   107,   108,   109,    -1,    60,    61,    62,
2913
 
      -1,    -1,    -1,    -1,    99,   100,   101,   102,   103,   104,
2914
 
     105,   106,   107,   108,   109,    -1,    -1,    -1,    -1,    -1,
2915
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,
2916
 
      -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2917
 
      -1,    -1,     3,   106,   107,     6,    -1,   110,   111,    -1,
 
2901
      32,   692,    -1,    -1,    36,    37,    -1,    -1,    40,    -1,
 
2902
      42,    43,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
 
2903
      -1,    53,    54,    55,    56,    57,    58,    59,    60,    61,
 
2904
      62,    63,    64,    65,    66,    -1,    68,    69,    70,    -1,
 
2905
      72,    73,    -1,    -1,   707,    77,    -1,    79,    80,    81,
 
2906
      82,    83,    84,    -1,   745,    -1,    -1,    89,    -1,    91,
 
2907
      -1,    -1,    94,    95,    96,     3,    -1,    -1,     6,    -1,
 
2908
      -1,    -1,    -1,    11,    12,    13,    14,    15,    16,    17,
 
2909
     112,    19,    20,    21,    22,    23,    24,    25,    26,    27,
 
2910
      28,    29,    30,    31,    32,    33,    -1,    -1,    -1,    -1,
 
2911
      -1,    -1,    -1,    -1,    42,    43,    44,    45,    46,    -1,
 
2912
      48,    -1,    -1,    51,    -1,    -1,    -1,    -1,    -1,     3,
 
2913
      -1,    -1,     6,    61,    62,    63,    -1,    11,    12,    13,
 
2914
      14,    15,    16,    17,    51,    19,    20,    21,    22,    23,
 
2915
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
 
2916
      -1,    -1,    -1,    91,    -1,    -1,    -1,    95,    42,    43,
 
2917
      44,    45,    46,    -1,    48,    -1,    -1,    51,    -1,   107,
 
2918
     108,    -1,    -1,   111,   112,    -1,    -1,    61,    62,    63,
 
2919
      -1,    -1,    -1,   100,   101,   102,   103,   104,   105,   106,
 
2920
     107,   108,   109,   110,    -1,    19,    20,    21,    22,    23,
 
2921
      24,    25,    26,    -1,    28,     3,    30,    91,     6,    -1,
 
2922
      -1,    95,    -1,    11,    12,    13,    14,    15,    16,    17,
 
2923
      -1,    -1,     3,   107,   108,     6,    -1,   111,   112,    -1,
2918
2924
      11,    12,    13,    14,    15,    16,    17,    -1,    19,    20,
2919
2925
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2920
 
      31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2921
 
      41,    42,    43,    44,    45,    -1,    47,    -1,    -1,    -1,
2922
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
2923
 
      61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2924
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2925
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,
2926
 
      -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
2927
 
      -1,    -1,    -1,    -1,     3,   106,   107,     6,   109,   110,
2928
 
     111,    10,    11,    12,    13,    14,    15,    16,    17,    -1,
2929
 
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2930
 
      29,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
2931
 
      -1,    -1,    41,    42,    43,    44,    45,    -1,    47,    -1,
2932
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2933
 
      -1,    60,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,
2934
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2935
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2936
 
      -1,    90,    -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,
2937
 
      -1,    -1,    -1,    -1,    -1,    -1,     3,   106,   107,     6,
2938
 
      -1,   110,   111,    -1,    11,    12,    13,    14,    15,    16,
 
2926
      31,    32,    33,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
2927
      -1,    42,    43,    44,    45,    46,    -1,    48,    -1,    -1,
 
2928
      51,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,     6,
 
2929
      61,    62,    63,    -1,    11,    12,    13,    14,    15,    16,
 
2930
      17,    51,    19,    20,    21,    22,    23,    24,    25,    26,
 
2931
      27,    28,    29,    30,    31,    32,    33,    -1,    -1,    -1,
 
2932
      91,    -1,    -1,    -1,    95,    42,    43,    44,    45,    46,
 
2933
      -1,    48,    -1,    -1,    51,    -1,   107,   108,    -1,    -1,
 
2934
     111,   112,    -1,    -1,    61,    62,    63,    -1,    -1,    -1,
 
2935
     100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
 
2936
     110,   100,   101,   102,   103,   104,   105,   106,   107,   108,
 
2937
     109,   110,    -1,    -1,    91,    -1,    -1,    -1,    95,   101,
 
2938
     102,   103,   104,   105,   106,   107,   108,   109,   110,     3,
 
2939
     107,   108,     6,    -1,   111,   112,    -1,    11,    12,    13,
 
2940
      14,    15,    16,    17,    -1,    19,    20,    21,    22,    23,
 
2941
      24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
 
2942
      34,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    42,    43,
 
2943
      44,    45,    46,    -1,    48,    -1,    -1,    -1,    -1,    -1,
 
2944
      -1,    -1,    -1,     3,    -1,    -1,     6,    61,    62,    63,
 
2945
      -1,    11,    12,    13,    14,    15,    16,    17,    51,    19,
 
2946
      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
 
2947
      30,    31,    32,    33,    -1,    -1,    -1,    91,    -1,    -1,
 
2948
      -1,    95,    42,    43,    44,    45,    46,    -1,    48,    -1,
 
2949
      -1,    -1,    -1,   107,   108,    -1,    -1,   111,   112,    -1,
 
2950
      -1,    61,    62,    63,    -1,    -1,    -1,   100,   101,   102,
 
2951
     103,   104,   105,   106,   107,   108,   109,   110,    -1,    -1,
 
2952
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
2953
      -1,    91,    -1,    -1,    -1,    95,    -1,    -1,    -1,    -1,
 
2954
      -1,    -1,    -1,    -1,    -1,    -1,     3,   107,   108,     6,
 
2955
     110,   111,   112,    10,    11,    12,    13,    14,    15,    16,
2939
2956
      17,    -1,    19,    20,    21,    22,    23,    24,    25,    26,
2940
 
      27,    28,    29,    30,    31,    32,    -1,    -1,    -1,    -1,
2941
 
      -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,    -1,
2942
 
      47,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2943
 
      -1,     3,    -1,    60,    61,    62,    -1,    -1,    -1,    -1,
 
2957
      27,    28,    29,    30,    31,    32,    33,    -1,    -1,    -1,
 
2958
      -1,    -1,    -1,    -1,    -1,    42,    43,    44,    45,    46,
 
2959
      -1,    48,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
2960
       3,    -1,    -1,     6,    61,    62,    63,    -1,    11,    12,
 
2961
      13,    14,    15,    16,    17,    -1,    19,    20,    21,    22,
 
2962
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
 
2963
      33,    -1,    -1,    -1,    91,    -1,    -1,    -1,    95,    42,
 
2964
      43,    44,    45,    46,    -1,    48,    -1,    -1,    -1,    -1,
 
2965
     107,   108,    -1,    -1,   111,   112,     3,    -1,    61,    62,
 
2966
      63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
2967
      -1,    -1,    19,    20,    21,    22,    23,    24,    25,    26,
 
2968
      27,    28,    29,    30,    31,    32,    33,    -1,    91,    -1,
 
2969
      -1,    -1,    95,    -1,    41,    42,    43,    44,    45,    46,
 
2970
      -1,    -1,    -1,    50,   107,   108,    -1,    -1,   111,   112,
 
2971
      -1,     3,    -1,    -1,    61,    62,    63,    -1,    -1,    -1,
2944
2972
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,    20,    21,
2945
2973
      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2946
 
      32,    -1,    -1,    90,    -1,    -1,    -1,    94,    40,    41,
2947
 
      42,    43,    44,    45,    -1,    -1,    -1,    49,    -1,   106,
2948
 
     107,    -1,    -1,   110,   111,    -1,     3,    -1,    60,    61,
2949
 
      62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
2974
      32,    33,    -1,    -1,    91,    -1,    -1,    94,    95,    41,
 
2975
      42,    43,    44,    45,    46,    -1,    -1,   104,    50,    -1,
 
2976
      -1,    -1,    -1,   110,    -1,    -1,     3,    -1,    -1,    61,
 
2977
      62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    51,    -1,
2950
2978
      -1,    -1,    19,    20,    21,    22,    23,    24,    25,    26,
2951
 
      27,    28,    29,    30,    31,    32,    -1,    -1,    90,    -1,
2952
 
      -1,    93,    94,    40,    41,    42,    43,    44,    45,    -1,
2953
 
       3,   103,    49,    -1,    -1,    -1,    -1,   109,    -1,    -1,
2954
 
      -1,    -1,    -1,    60,    61,    62,    19,    20,    21,    22,
2955
 
      23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
2956
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,
2957
 
      43,    44,    45,    90,    -1,    -1,    93,    94,    -1,    -1,
2958
 
      -1,     3,    -1,    -1,    -1,    -1,   103,    60,    61,    62,
2959
 
      -1,    -1,   109,    -1,    -1,    -1,    -1,    19,    20,    21,
2960
 
      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
2961
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,
2962
 
      93,    94,    44,    45,    -1,    -1,    -1,    -1,    -1,    -1,
2963
 
     103,    -1,    -1,    -1,    -1,    -1,   109,    -1,    60,    61,
2964
 
      62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2965
 
      -1,    -1,    -1,    -1,    -1,     0,     1,    -1,     3,     4,
2966
 
      -1,    -1,     7,     8,     9,    -1,    -1,    -1,    90,    -1,
2967
 
      -1,    -1,    94,    18,    19,    20,    21,    22,    23,    24,
2968
 
      25,    26,    27,    28,    29,    30,    31,   109,    -1,    -1,
2969
 
      35,    36,    -1,    -1,    -1,    -1,    41,    42,    43,    44,
2970
 
      45,    -1,    -1,    48,    -1,    -1,    -1,    52,    53,    54,
2971
 
      55,    56,    57,    58,    59,    60,    61,    62,    -1,    -1,
2972
 
      -1,    -1,    67,    68,    69,    -1,    71,    72,    73,    74,
2973
 
      75,    76,    77,    78,    79,    80,    81,    82,    83,    -1,
2974
 
      -1,    -1,    -1,    88,     1,    90,     3,     4,    93,    94,
2975
 
       7,     8,     9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
2976
 
      -1,    18,    19,    20,    21,    22,    23,    24,    25,    26,
2977
 
      27,    28,    29,    30,    31,    -1,    -1,    -1,    35,    36,
2978
 
      -1,    -1,    39,    -1,    41,    42,    43,    44,    45,    -1,
2979
 
      -1,    48,    -1,    -1,    -1,    52,    53,    54,    55,    56,
2980
 
      57,    58,    59,    60,    61,    62,    -1,    -1,    -1,    -1,
2981
 
      67,    68,    69,    -1,    71,    72,    73,    74,    75,    76,
2982
 
      77,    78,    79,    80,    81,    82,    83,    -1,    -1,    -1,
2983
 
      -1,    88,     1,    90,     3,     4,    93,    94,     7,     8,
2984
 
       9,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    18,
 
2979
      27,    28,    29,    30,    31,    32,    -1,    -1,    -1,    91,
 
2980
      -1,    -1,    94,    95,    41,    42,    43,    44,    45,    46,
 
2981
      -1,    -1,   104,    -1,    -1,    -1,    -1,    -1,   110,    -1,
 
2982
      -1,    -1,    -1,    -1,    61,    62,    63,   100,   101,   102,
 
2983
     103,   104,   105,   106,   107,   108,   109,   110,    -1,    -1,
 
2984
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
2985
      -1,    -1,    -1,    -1,    91,    -1,    -1,    94,    95,    -1,
 
2986
      -1,     0,     1,    -1,     3,     4,    -1,   104,     7,     8,
 
2987
       9,    -1,    -1,   110,    -1,    -1,    -1,    -1,    -1,    18,
2985
2988
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
2986
 
      29,    30,    31,    -1,    -1,    -1,    35,    36,    -1,    -1,
2987
 
      39,    -1,    41,    42,    43,    44,    45,    -1,    -1,    48,
2988
 
      -1,    -1,    -1,    52,    53,    54,    55,    56,    57,    58,
2989
 
      59,    60,    61,    62,    -1,    -1,    -1,    -1,    67,    68,
2990
 
      69,    -1,    71,    72,    73,    74,    75,    76,    77,    78,
2991
 
      79,    80,    81,    82,    83,    -1,    -1,    -1,    -1,    88,
2992
 
       1,    90,     3,     4,    93,    94,     7,     8,     9,    -1,
 
2989
      29,    30,    31,    32,    -1,    -1,    -1,    36,    37,    -1,
 
2990
      -1,    -1,    -1,    42,    43,    44,    45,    46,    -1,    -1,
 
2991
      49,    -1,    -1,    -1,    53,    54,    55,    56,    57,    58,
 
2992
      59,    60,    61,    62,    63,    -1,    -1,    -1,    -1,    68,
 
2993
      69,    70,    -1,    72,    73,    74,    75,    76,    77,    78,
 
2994
      79,    80,    81,    82,    83,    84,    -1,    -1,    -1,    -1,
 
2995
      89,     1,    91,     3,     4,    94,    95,     7,     8,     9,
 
2996
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    18,    19,
 
2997
      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
 
2998
      30,    31,    32,    -1,    -1,    -1,    36,    37,    -1,    -1,
 
2999
      40,    -1,    42,    43,    44,    45,    46,    -1,    -1,    49,
 
3000
      -1,    -1,    -1,    53,    54,    55,    56,    57,    58,    59,
 
3001
      60,    61,    62,    63,    -1,    -1,    -1,    -1,    68,    69,
 
3002
      70,    -1,    72,    73,    74,    75,    76,    77,    78,    79,
 
3003
      80,    81,    82,    83,    84,    -1,    -1,    -1,    -1,    89,
 
3004
       1,    91,     3,     4,    94,    95,     7,     8,     9,    -1,
2993
3005
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    18,    19,    20,
2994
3006
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
2995
 
      31,    -1,    -1,    -1,    35,    36,    -1,    -1,    39,    -1,
2996
 
      41,    42,    43,    44,    45,    -1,    -1,    48,    -1,    -1,
2997
 
      -1,    52,    53,    54,    55,    56,    57,    58,    59,    60,
2998
 
      61,    62,    -1,    -1,    -1,    -1,    67,    68,    69,    -1,
2999
 
      71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
3000
 
      81,    82,    83,    -1,    -1,    -1,    -1,    88,     1,    90,
3001
 
       3,     4,    93,    94,     7,     8,     9,    -1,    -1,    -1,
 
3007
      31,    32,    -1,    -1,    -1,    36,    37,    -1,    -1,    40,
 
3008
      -1,    42,    43,    44,    45,    46,    -1,    -1,    49,    -1,
 
3009
      -1,    -1,    53,    54,    55,    56,    57,    58,    59,    60,
 
3010
      61,    62,    63,    -1,    -1,    -1,    -1,    68,    69,    70,
 
3011
      -1,    72,    73,    74,    75,    76,    77,    78,    79,    80,
 
3012
      81,    82,    83,    84,    -1,    -1,    -1,    -1,    89,     1,
 
3013
      91,     3,     4,    94,    95,     7,     8,     9,    -1,    -1,
 
3014
      -1,    -1,    -1,    -1,    -1,    -1,    18,    19,    20,    21,
 
3015
      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
 
3016
      32,    -1,    -1,    -1,    36,    37,    -1,    -1,    40,    -1,
 
3017
      42,    43,    44,    45,    46,    -1,    -1,    49,    -1,    -1,
 
3018
      -1,    53,    54,    55,    56,    57,    58,    59,    60,    61,
 
3019
      62,    63,    -1,    -1,    -1,    -1,    68,    69,    70,    -1,
 
3020
      72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
 
3021
      82,    83,    84,    -1,    -1,    -1,    -1,    89,     1,    91,
 
3022
       3,     4,    94,    95,     7,     8,     9,    -1,    -1,    -1,
3002
3023
      -1,    -1,    -1,    -1,    -1,    18,    19,    20,    21,    22,
3003
 
      23,    24,    25,    26,    27,    28,    29,    30,    31,    -1,
3004
 
      -1,    -1,    35,    36,    -1,    -1,    -1,    -1,    41,    42,
3005
 
      43,    44,    45,    -1,    -1,    48,    -1,    50,    -1,    52,
 
3024
      23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
 
3025
      -1,    -1,    -1,    36,    37,    -1,    -1,    -1,    -1,    42,
 
3026
      43,    44,    45,    46,    -1,    -1,    49,    -1,    51,    -1,
3006
3027
      53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
3007
 
      -1,    -1,    -1,    -1,    67,    68,    69,    -1,    71,    72,
 
3028
      63,    -1,    -1,    -1,    -1,    68,    69,    70,    -1,    72,
3008
3029
      73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
3009
 
      83,     1,    -1,     3,    -1,    88,    -1,    90,    -1,    -1,
3010
 
      93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,
3011
 
      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3012
 
      30,    31,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3013
 
      40,    41,    42,    43,    44,    45,    -1,    -1,    -1,    -1,
3014
 
      -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,    -1,
3015
 
      60,    61,    62,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3030
      83,    84,     1,    -1,     3,    -1,    89,    -1,    91,    -1,
 
3031
      -1,    94,    95,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3032
      19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
 
3033
      29,    30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,
 
3034
      -1,    -1,    41,    42,    43,    44,    45,    46,    -1,    -1,
 
3035
      -1,    -1,    -1,    -1,    -1,    -1,    -1,     1,    -1,     3,
 
3036
      -1,    -1,    61,    62,    63,    -1,    -1,    -1,    -1,    -1,
 
3037
      -1,    -1,    -1,    -1,    -1,    19,    20,    21,    22,    23,
 
3038
      24,    25,    26,    27,    28,    29,    30,    31,    32,    -1,
 
3039
      -1,    -1,    91,    -1,    -1,    94,    95,    41,    42,    43,
 
3040
      44,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3041
      -1,     1,    -1,     3,    -1,    -1,    -1,    61,    62,    63,
 
3042
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,
 
3043
      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
 
3044
      30,    31,    32,    -1,    -1,    -1,    -1,    91,    -1,    -1,
 
3045
      94,    95,    42,    43,    44,    45,    46,    -1,    -1,    -1,
 
3046
      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,
 
3047
      -1,    61,    62,    63,    -1,    -1,    -1,    -1,    -1,    -1,
 
3048
      -1,    -1,    -1,    19,    20,    21,    22,    23,    24,    25,
 
3049
      26,    27,    28,    29,    30,    31,    32,    -1,    -1,    -1,
 
3050
      -1,    91,    -1,    -1,    -1,    95,    42,    43,    44,    45,
 
3051
      46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3052
      -1,    -1,    -1,    -1,    -1,    61,    62,    63,    -1,    -1,
 
3053
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3054
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3055
      -1,    -1,    -1,     3,    -1,    91,     6,    -1,    -1,    95,
 
3056
      96,    11,    12,    13,    14,    15,    16,    17,    -1,    19,
 
3057
      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
 
3058
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3059
      -1,    41,    42,    43,    44,    45,    46,    -1,    -1,    -1,
 
3060
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,
 
3061
      -1,    61,    62,    63,    -1,    -1,    11,    -1,    -1,    -1,
3016
3062
      -1,    -1,    -1,    -1,    19,    20,    21,    22,    23,    24,
3017
 
      25,    26,    27,    28,    29,    30,    31,    -1,    -1,    -1,
3018
 
      90,    -1,    -1,    93,    94,    40,    41,    42,    43,    44,
3019
 
      45,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3020
 
       1,    -1,     3,    -1,    -1,    60,    61,    62,    -1,    -1,
3021
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,    20,
3022
 
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
3023
 
      31,    -1,    -1,    -1,    -1,    90,    -1,    -1,    93,    94,
3024
 
      41,    42,    43,    44,    45,    -1,     3,    -1,    -1,    -1,
3025
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,
3026
 
      61,    62,    19,    20,    21,    22,    23,    24,    25,    26,
3027
 
      27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,
3028
 
      -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,    90,
3029
 
      -1,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,
3030
 
      -1,    -1,    -1,    60,    61,    62,    -1,    -1,    -1,    -1,
3031
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3032
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3033
 
      -1,     3,    -1,    90,     6,    -1,    -1,    94,    95,    11,
3034
 
      12,    13,    14,    15,    16,    17,    -1,    19,    20,    21,
3035
 
      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
3036
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    40,    41,
3037
 
      42,    43,    44,    45,    -1,     3,    -1,    -1,    -1,    -1,
3038
 
      -1,    -1,    -1,    11,    -1,    -1,    -1,    -1,    60,    61,
3039
 
      62,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3040
 
      28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
3041
 
      -1,    -1,    40,    41,    42,    43,    44,    45,    90,     3,
3042
 
      -1,    93,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3043
 
      -1,    -1,    60,    61,    62,    19,    20,    21,    22,    23,
3044
 
      24,    25,    26,    27,    28,    29,    30,    31,    -1,    -1,
3045
 
      -1,    -1,    -1,    -1,    -1,    -1,    40,    41,    42,    43,
3046
 
      44,    45,    90,     3,    -1,    93,    94,    -1,    -1,    -1,
3047
 
      -1,    -1,    -1,    -1,    -1,    -1,    60,    61,    62,    19,
 
3063
      25,    26,    27,    28,    29,    30,    31,    32,    -1,    -1,
 
3064
      -1,    91,    -1,    -1,    94,    95,    41,    42,    43,    44,
 
3065
      45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3066
      -1,    -1,    -1,     3,    -1,    -1,    61,    62,    63,    -1,
 
3067
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,
3048
3068
      20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
3049
 
      30,    31,    32,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3050
 
      -1,    41,    42,    43,    44,    45,    90,     3,    -1,    93,
3051
 
      94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3052
 
      60,    61,    62,    19,    20,    21,    22,    23,    24,    25,
3053
 
      26,    27,    28,    29,    30,    31,    -1,    -1,    -1,    -1,
3054
 
      -1,    -1,    -1,    -1,    -1,    41,    42,    43,    44,    45,
3055
 
      90,     3,    -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,
3056
 
      -1,    -1,    -1,    -1,    60,    61,    62,    19,    20,    21,
 
3069
      30,    31,    32,    -1,    -1,    -1,    91,    -1,    -1,    94,
 
3070
      95,    41,    42,    43,    44,    45,    46,    -1,    -1,    -1,
 
3071
      -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,
 
3072
      -1,    61,    62,    63,    -1,    -1,    -1,    -1,    -1,    -1,
 
3073
      -1,    -1,    -1,    19,    20,    21,    22,    23,    24,    25,
 
3074
      26,    27,    28,    29,    30,    31,    32,    33,    -1,    -1,
 
3075
      -1,    91,    -1,    -1,    94,    95,    42,    43,    44,    45,
 
3076
      46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3077
      -1,     3,    -1,    -1,    -1,    61,    62,    63,    -1,    -1,
 
3078
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    19,    20,    21,
3057
3079
      22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
3058
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    41,
3059
 
      42,    43,    44,    45,    90,     3,    -1,    -1,    94,    -1,
3060
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    60,    61,
3061
 
      62,    19,    20,    21,    22,    23,    24,    25,    26,    27,
3062
 
      28,    29,    30,    31,    -1,    -1,    -1,    -1,    -1,    -1,
3063
 
      -1,    -1,    -1,    41,    42,    43,    44,    45,    90,     3,
3064
 
      -1,    -1,    94,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3065
 
      -1,    -1,    60,    61,    62,    19,    20,    21,    22,    23,
3066
 
      24,    25,    26,    27,    28,    29,    30,    31,    -1,    -1,
3067
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3068
 
      44,    45,    90,    -1,    -1,    -1,    94,    -1,    -1,    -1,
3069
 
      -1,    -1,    -1,    -1,    -1,    -1,    60,    61,    62,    -1,
3070
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3071
 
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
3072
 
      -1,    -1,    -1,    -1,    -1,    -1,    90,    -1,    -1,    -1,
3073
 
      94
 
3080
      32,    -1,    -1,    -1,    -1,    91,    -1,    -1,    -1,    95,
 
3081
      42,    43,    44,    45,    46,    -1,    -1,    -1,    -1,    -1,
 
3082
      -1,    -1,    -1,    -1,    -1,     3,    -1,    -1,    -1,    61,
 
3083
      62,    63,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3084
      -1,    19,    20,    21,    22,    23,    24,    25,    26,    27,
 
3085
      28,    29,    30,    31,    32,    -1,    -1,    -1,    -1,    91,
 
3086
      -1,    -1,    -1,    95,    42,    43,    44,    45,    46,    -1,
 
3087
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     3,
 
3088
      -1,    -1,    -1,    61,    62,    63,    -1,    -1,    -1,    -1,
 
3089
      -1,    -1,    -1,    -1,    -1,    19,    20,    21,    22,    23,
 
3090
      24,    25,    26,    27,    28,    29,    30,    31,    32,    -1,
 
3091
      -1,    -1,    -1,    91,    -1,    -1,    -1,    95,    42,    43,
 
3092
      44,    45,    46,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3093
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    61,    62,    63,
 
3094
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3095
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
 
3096
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    91,    -1,    -1,
 
3097
      -1,    95
3074
3098
};
3075
3099
 
3076
3100
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
3077
3101
   symbol of state STATE-NUM.  */
3078
3102
static const unsigned short yystos[] =
3079
3103
{
3080
 
       0,    96,    97,   115,   116,   256,     1,     3,    19,    20,
 
3104
       0,    97,    98,   116,   117,   257,     1,     3,    19,    20,
3081
3105
      21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
3082
 
      31,    40,    41,    42,    43,    44,    45,    60,    61,    62,
3083
 
      90,    93,    94,   199,   213,   214,   216,   217,   218,   219,
3084
 
     220,   236,   246,   248,     1,   199,     0,     1,     4,     7,
3085
 
       8,     9,    18,    35,    36,    48,    52,    53,    54,    55,
3086
 
      56,    57,    58,    59,    67,    68,    69,    71,    72,    73,
 
3106
      31,    32,    41,    42,    43,    44,    45,    46,    61,    62,
 
3107
      63,    91,    94,    95,   200,   214,   215,   217,   218,   219,
 
3108
     220,   221,   237,   247,   249,     1,   200,     0,     1,     4,
 
3109
       7,     8,     9,    18,    36,    37,    49,    53,    54,    55,
 
3110
      56,    57,    58,    59,    60,    68,    69,    70,    72,    73,
3087
3111
      74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
3088
 
      88,    93,   117,   118,   119,   121,   122,   123,   124,   125,
3089
 
     128,   129,   131,   132,   133,   134,   135,   136,   137,   140,
3090
 
     141,   142,   145,   147,   152,   153,   154,   155,   157,   160,
3091
 
     161,   162,   163,   164,   168,   169,   173,   174,   184,   195,
3092
 
     256,    84,   243,   256,   243,    40,   246,   113,    84,    35,
3093
 
     217,   213,    32,    46,    49,    66,   103,   109,   111,   204,
3094
 
     205,   207,   209,   210,   211,   212,   246,   256,   213,   219,
3095
 
     246,    92,   113,   247,    35,    95,    32,     6,   251,    32,
3096
 
     253,   256,     1,     3,   215,   216,    32,   253,    32,   139,
3097
 
     256,    32,    32,    32,    73,   246,     3,    38,   246,    32,
3098
 
       4,    38,    32,    32,    35,    38,     4,   251,    32,   151,
3099
 
     215,   149,   151,    32,    32,   251,    32,    84,   236,   253,
3100
 
      32,   103,   207,   212,   246,    60,   215,   236,     6,    11,
3101
 
      12,    13,    14,    15,    16,    17,   199,   200,   201,   203,
3102
 
     228,   256,    40,    94,   248,   236,    32,   103,   196,   197,
3103
 
     199,   210,   212,   246,   256,    10,    38,   103,   221,   222,
3104
 
      32,    47,    50,   106,   107,   110,   111,   215,   227,   228,
3105
 
     229,   251,   227,    32,   111,   208,   211,   246,   212,   213,
3106
 
     246,   204,    32,    49,   204,    32,    49,   103,   208,   211,
3107
 
     246,    91,   248,    94,   248,     3,   244,   251,     6,    38,
3108
 
     244,   254,   244,    35,    46,    32,   207,    33,   244,   246,
3109
 
       3,     3,   244,    11,   146,   196,   196,   246,    35,    46,
3110
 
     176,    38,     3,   148,   254,     3,   196,    38,   206,   207,
3111
 
     210,   256,    35,    34,   150,   256,   244,   245,   256,   126,
3112
 
     127,   251,   196,   172,   197,   246,   251,     3,   103,   212,
3113
 
     244,   246,    32,   244,   103,   246,    91,     3,   223,   256,
3114
 
      32,   207,    38,   246,    85,    34,   202,   256,   247,    85,
3115
 
     103,   212,   246,   209,   246,    33,    34,   198,   256,    33,
3116
 
     103,   209,   246,    91,   207,   227,   227,    32,   227,   227,
3117
 
     227,   227,    32,    50,    99,   100,   101,   102,   103,   104,
3118
 
     105,   106,   107,   108,   109,   212,   246,   246,    32,    49,
3119
 
     212,   196,    50,   227,   196,    50,   227,   208,   211,    91,
3120
 
     103,   208,   247,    33,   156,    34,    46,    33,   221,   204,
3121
 
      33,    38,    33,    46,    33,    34,   144,    34,    33,    33,
3122
 
      35,   246,   116,   175,    33,    33,    33,    33,   149,   151,
3123
 
      33,    33,    34,    38,    33,    85,    49,    33,    91,   212,
3124
 
     246,    35,    91,    35,    38,   196,   246,    70,   159,   204,
3125
 
     213,   166,    35,    66,   230,   231,   256,   203,   236,   246,
3126
 
      91,    33,   199,    33,    91,   209,    33,   103,   109,   212,
3127
 
     215,   227,   227,   227,   227,   227,   227,   227,   227,   227,
3128
 
     227,   227,   208,   246,    33,    91,   196,    50,   227,    33,
3129
 
      50,    33,    50,   103,   208,   211,   208,     4,    38,   251,
3130
 
     116,   254,   126,   228,   251,   255,    35,    35,   120,     4,
3131
 
     138,   251,     4,    35,    38,    89,   143,   207,   251,   252,
3132
 
     244,   251,   255,    33,   199,   207,    38,    35,    39,   116,
3133
 
      36,   195,   149,    35,    38,    32,    39,   150,     3,    90,
3134
 
      94,   249,    35,   254,   215,    35,   170,   130,   207,   251,
3135
 
      91,     3,   224,   225,   256,    33,    32,    34,    35,    38,
3136
 
     158,    70,   204,     1,    35,    56,    63,    64,    65,    68,
3137
 
     111,   121,   122,   123,   124,   128,   133,   135,   137,   140,
3138
 
     142,   145,   147,   152,   153,   154,   155,   168,   169,   173,
3139
 
     177,   180,   181,   182,   183,   184,   185,   186,   191,   194,
3140
 
     195,   256,   232,    38,   202,   246,   198,    33,   227,    33,
3141
 
     213,    33,   103,   205,    33,   208,    33,    50,   208,    39,
3142
 
      34,    34,   177,    32,    70,   213,   238,   256,    46,    33,
3143
 
      34,   144,   143,   207,   238,    39,   251,     3,   215,    35,
3144
 
      46,   252,   196,    92,   113,   250,   113,    84,    33,    39,
3145
 
     157,   164,   168,   169,   171,   181,   195,   116,   238,    35,
3146
 
      46,    34,    39,    32,    46,   238,   239,   196,   207,    32,
3147
 
     179,    38,    66,    66,    66,   111,   248,    39,   177,    95,
3148
 
     215,   236,   246,    68,   233,   234,   237,   256,   165,   227,
3149
 
     227,    33,    33,    33,   254,   254,    39,   196,    32,    70,
3150
 
     143,   251,   255,    35,   207,    33,   238,    35,    35,   207,
3151
 
     151,    33,     3,     3,    94,     3,    94,   200,     4,    38,
3152
 
     215,    50,    35,    10,   226,   227,   225,    35,   207,   196,
3153
 
     221,    66,   240,   256,    33,   159,   196,   177,   178,   248,
3154
 
      32,   207,   215,    32,    66,     3,    38,   246,    35,    34,
3155
 
      63,    64,    65,   235,   246,   177,   227,    33,   196,    32,
3156
 
     144,   238,    35,   207,   143,    35,    35,   250,   250,    85,
3157
 
     158,    33,    35,   241,   242,   246,    35,    38,   204,   158,
3158
 
      33,   177,    32,   196,   158,    32,   103,   212,   196,   227,
3159
 
      38,   188,    66,   234,   237,    39,    35,    33,   196,    35,
3160
 
     238,    35,    35,    38,    34,    32,   204,    39,   196,    33,
3161
 
     196,    32,    32,    33,    35,   187,   190,   207,   256,   233,
3162
 
     246,    35,   167,   207,    33,    35,   242,   177,    33,   192,
3163
 
     238,    33,   196,   196,   239,   190,    35,    38,   158,   193,
3164
 
     238,    35,    38,   193,    33,    33,    35,   189,    35,    38,
3165
 
      46,   193,   193,    35,   221,    35
 
3112
      84,    89,    94,   118,   119,   120,   122,   123,   124,   125,
 
3113
     126,   129,   130,   132,   133,   134,   135,   136,   137,   138,
 
3114
     141,   142,   143,   146,   148,   153,   154,   155,   156,   158,
 
3115
     161,   162,   163,   164,   165,   169,   170,   174,   175,   185,
 
3116
     196,   257,    85,   244,   257,   244,    41,   247,   114,    85,
 
3117
      36,   218,   214,    33,    47,    50,    67,   104,   110,   112,
 
3118
     205,   206,   208,   210,   211,   212,   213,   247,   257,   214,
 
3119
     220,   247,    93,   114,   248,    36,    96,    33,     6,   252,
 
3120
      33,   254,   257,     1,     3,   216,   217,    33,   254,    33,
 
3121
     140,   257,    33,    33,    33,    74,   247,     3,    39,   247,
 
3122
      33,     4,    39,    33,    33,    36,    39,     4,   252,    33,
 
3123
     152,   216,   150,   152,    33,    33,   252,    33,    85,   237,
 
3124
     254,    33,   104,   208,   213,   247,    61,   216,   237,     6,
 
3125
      11,    12,    13,    14,    15,    16,    17,   200,   201,   202,
 
3126
     204,   229,   257,    41,    95,   249,   237,    33,   104,   197,
 
3127
     198,   200,   211,   213,   247,   257,    10,    39,   104,   222,
 
3128
     223,    33,    48,    51,   107,   108,   111,   112,   216,   228,
 
3129
     229,   230,   252,   228,    33,   112,   209,   212,   247,   213,
 
3130
     214,   247,   205,    33,    50,   205,    33,    50,   104,   209,
 
3131
     212,   247,    92,   249,    95,   249,     3,   245,   252,     6,
 
3132
      39,   245,   255,   245,    36,    47,    33,   208,    34,   245,
 
3133
     247,     3,     3,   245,    11,   147,   197,   197,   247,    36,
 
3134
      47,   177,    39,     3,   149,   255,     3,   197,    39,   207,
 
3135
     208,   211,   257,    36,    35,   151,   257,   245,   246,   257,
 
3136
     127,   128,   252,   197,   173,   198,   247,   252,     3,   104,
 
3137
     213,   245,   247,    33,   245,   104,   247,    92,     3,   224,
 
3138
     257,    33,   208,    39,   247,    86,    35,   203,   257,   248,
 
3139
      86,   104,   213,   247,   210,   247,    34,    35,   199,   257,
 
3140
      34,   104,   210,   247,    92,   208,   228,   228,    33,   228,
 
3141
     228,   228,   228,    33,    51,   100,   101,   102,   103,   104,
 
3142
     105,   106,   107,   108,   109,   110,   213,   247,   247,    33,
 
3143
      50,   213,   197,    51,   228,   197,    51,   228,   209,   212,
 
3144
      92,   104,   209,   248,    34,   157,    35,    47,    34,   222,
 
3145
     205,    34,    39,    34,    47,    34,    35,   145,    35,    34,
 
3146
      34,    36,   247,   117,   176,    34,    34,    34,    34,   150,
 
3147
     152,    34,    34,    35,    39,    34,    86,    50,    34,    92,
 
3148
     213,   247,    36,    92,    36,    39,   197,   247,    71,   160,
 
3149
     205,   214,   167,    36,    67,   231,   232,   257,   204,   237,
 
3150
     247,    92,    34,   200,    34,    92,   210,    34,   104,   110,
 
3151
     213,   216,   228,   228,   228,   228,   228,   228,   228,   228,
 
3152
     228,   228,   228,   209,   247,    34,    92,   197,    51,   228,
 
3153
      34,    51,    34,    51,   104,   209,   212,   209,     4,    39,
 
3154
     252,   117,   255,   127,   229,   252,   256,    36,    36,   121,
 
3155
       4,   139,   252,     4,    36,    39,    90,   144,   208,   252,
 
3156
     253,   245,   252,   256,    34,   200,   208,    39,    36,    40,
 
3157
     117,    37,   196,   150,    36,    39,    33,    40,   151,     3,
 
3158
      91,    95,   250,    36,   255,   200,    36,   171,   131,   208,
 
3159
     252,    92,     3,   225,   226,   257,    34,    33,    35,    36,
 
3160
      39,   159,    71,   205,     1,    36,    57,    64,    65,    66,
 
3161
      69,   112,   122,   123,   124,   125,   129,   134,   136,   138,
 
3162
     141,   143,   146,   148,   153,   154,   155,   156,   169,   170,
 
3163
     174,   178,   181,   182,   183,   184,   185,   186,   187,   192,
 
3164
     195,   196,   257,   233,    39,   203,   247,   199,    34,   228,
 
3165
      34,   214,    34,   104,   206,    34,   209,    34,    51,   209,
 
3166
      40,    35,    35,   178,    33,    71,   214,   239,   257,    47,
 
3167
      34,    35,   145,   144,   208,   239,    40,   252,     3,   216,
 
3168
      36,    47,   253,   197,    93,   114,   251,   114,    85,    34,
 
3169
      40,   158,   165,   169,   170,   172,   182,   196,   117,   239,
 
3170
      36,    47,    35,    40,    33,    47,   239,   240,   197,   208,
 
3171
      33,   180,    39,    67,    67,    67,   112,   249,    40,   178,
 
3172
      96,   216,   237,   247,    69,   234,   235,   238,   257,   166,
 
3173
     228,   228,    34,    34,    34,   255,   255,    40,   197,    33,
 
3174
      71,   144,   252,   256,    36,   208,    34,   239,    36,    36,
 
3175
     208,   152,    34,     3,     3,    95,     3,    95,   201,     4,
 
3176
      39,   216,    51,    36,    10,   227,   228,   226,    36,   208,
 
3177
     197,   222,    67,   241,   257,    34,   160,   197,   178,   179,
 
3178
     249,    33,   208,   216,    33,    67,     3,    39,   247,    36,
 
3179
      35,    64,    65,    66,   236,   247,   178,   228,    34,   197,
 
3180
      33,   145,   239,    36,   208,   144,    36,    36,   251,   251,
 
3181
      86,   159,    34,    36,   242,   243,   247,    36,    39,   205,
 
3182
     159,    34,   178,    33,   197,   159,    33,   104,   213,   197,
 
3183
     228,    39,   189,    67,   235,   238,    40,    36,    34,   197,
 
3184
      36,   239,    36,    36,    39,    35,    33,   205,    40,   197,
 
3185
      34,   197,    33,    33,    34,    36,   188,   191,   208,   257,
 
3186
     234,   247,    36,   168,   208,    34,    36,   243,   178,    34,
 
3187
     193,   239,    34,   197,   197,   240,   191,    36,    39,   159,
 
3188
     194,   239,    36,    39,   194,    34,    34,    36,   190,    36,
 
3189
      39,    47,   194,   194,    36,   222,    36
3166
3190
};
3167
3191
 
3168
3192
#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
3772
3796
  switch (yyn)
3773
3797
    {
3774
3798
        case 2:
3775
 
#line 1352 "parser.y"
 
3799
#line 1388 "parser.y"
3776
3800
    {
3777
3801
                   Setattr(yyvsp[0].node,"classes",classes); 
3778
3802
                   Setattr(yyvsp[0].node,"name",ModuleName);
3788
3812
    break;
3789
3813
 
3790
3814
  case 3:
3791
 
#line 1364 "parser.y"
 
3815
#line 1400 "parser.y"
3792
3816
    {
3793
3817
                 top = Getattr(yyvsp[-1].p,"type");
3794
3818
               }
3795
3819
    break;
3796
3820
 
3797
3821
  case 4:
3798
 
#line 1367 "parser.y"
 
3822
#line 1403 "parser.y"
3799
3823
    {
3800
3824
                 top = 0;
3801
3825
               }
3802
3826
    break;
3803
3827
 
3804
3828
  case 5:
3805
 
#line 1370 "parser.y"
 
3829
#line 1406 "parser.y"
3806
3830
    {
3807
3831
                 top = yyvsp[-1].p;
3808
3832
               }
3809
3833
    break;
3810
3834
 
3811
3835
  case 6:
3812
 
#line 1373 "parser.y"
 
3836
#line 1409 "parser.y"
3813
3837
    {
3814
3838
                 top = 0;
3815
3839
               }
3816
3840
    break;
3817
3841
 
3818
3842
  case 7:
3819
 
#line 1378 "parser.y"
 
3843
#line 1414 "parser.y"
3820
3844
    {  
3821
3845
                   /* add declaration to end of linked list (the declaration isn't always a single declaration, sometimes it is a linked list itself) */
3822
3846
                   appendChild(yyvsp[-1].node,yyvsp[0].node);
3825
3849
    break;
3826
3850
 
3827
3851
  case 8:
3828
 
#line 1383 "parser.y"
 
3852
#line 1419 "parser.y"
3829
3853
    {
3830
3854
                   yyval.node = new_node("top");
3831
3855
               }
3832
3856
    break;
3833
3857
 
3834
3858
  case 9:
3835
 
#line 1388 "parser.y"
 
3859
#line 1424 "parser.y"
3836
3860
    { yyval.node = yyvsp[0].node; }
3837
3861
    break;
3838
3862
 
3839
3863
  case 10:
3840
 
#line 1389 "parser.y"
 
3864
#line 1425 "parser.y"
3841
3865
    { yyval.node = yyvsp[0].node; }
3842
3866
    break;
3843
3867
 
3844
3868
  case 11:
3845
 
#line 1390 "parser.y"
 
3869
#line 1426 "parser.y"
3846
3870
    { yyval.node = yyvsp[0].node; }
3847
3871
    break;
3848
3872
 
3849
3873
  case 12:
3850
 
#line 1391 "parser.y"
 
3874
#line 1427 "parser.y"
3851
3875
    { yyval.node = 0; }
3852
3876
    break;
3853
3877
 
3854
3878
  case 13:
3855
 
#line 1392 "parser.y"
 
3879
#line 1428 "parser.y"
3856
3880
    {
3857
3881
                  yyval.node = 0;
3858
3882
                  if (!Swig_error_count()) {
3859
3883
                    static int last_error_line = -1;
3860
3884
                    if (last_error_line != cparse_line) {
3861
 
                      Swig_error(cparse_file, cparse_line,"Syntax error in input.\n");
 
3885
                      Swig_error(cparse_file, cparse_line,"Syntax error in input(1).\n");
3862
3886
                      last_error_line = cparse_line;
3863
3887
                      skip_decl();
3864
3888
                    }
3867
3891
    break;
3868
3892
 
3869
3893
  case 14:
3870
 
#line 1404 "parser.y"
 
3894
#line 1440 "parser.y"
3871
3895
    { 
3872
3896
                  if (yyval.node) {
3873
3897
                      add_symbols(yyval.node);
3877
3901
    break;
3878
3902
 
3879
3903
  case 15:
3880
 
#line 1420 "parser.y"
 
3904
#line 1456 "parser.y"
3881
3905
    {
3882
3906
                  yyval.node = 0;
3883
3907
                  skip_decl();
3885
3909
    break;
3886
3910
 
3887
3911
  case 16:
3888
 
#line 1430 "parser.y"
 
3912
#line 1466 "parser.y"
3889
3913
    { yyval.node = yyvsp[0].node; }
3890
3914
    break;
3891
3915
 
3892
3916
  case 17:
3893
 
#line 1431 "parser.y"
 
3917
#line 1467 "parser.y"
3894
3918
    { yyval.node = yyvsp[0].node; }
3895
3919
    break;
3896
3920
 
3897
3921
  case 18:
3898
 
#line 1432 "parser.y"
 
3922
#line 1468 "parser.y"
3899
3923
    { yyval.node = yyvsp[0].node; }
3900
3924
    break;
3901
3925
 
3902
3926
  case 19:
3903
 
#line 1433 "parser.y"
 
3927
#line 1469 "parser.y"
3904
3928
    { yyval.node = yyvsp[0].node; }
3905
3929
    break;
3906
3930
 
3907
3931
  case 20:
3908
 
#line 1434 "parser.y"
 
3932
#line 1470 "parser.y"
3909
3933
    { yyval.node = yyvsp[0].node; }
3910
3934
    break;
3911
3935
 
3912
3936
  case 21:
3913
 
#line 1435 "parser.y"
 
3937
#line 1471 "parser.y"
3914
3938
    { yyval.node = yyvsp[0].node; }
3915
3939
    break;
3916
3940
 
3917
3941
  case 22:
3918
 
#line 1436 "parser.y"
 
3942
#line 1472 "parser.y"
3919
3943
    { yyval.node = yyvsp[0].node; }
3920
3944
    break;
3921
3945
 
3922
3946
  case 23:
3923
 
#line 1437 "parser.y"
 
3947
#line 1473 "parser.y"
3924
3948
    { yyval.node = yyvsp[0].node; }
3925
3949
    break;
3926
3950
 
3927
3951
  case 24:
3928
 
#line 1438 "parser.y"
 
3952
#line 1474 "parser.y"
3929
3953
    { yyval.node = yyvsp[0].node; }
3930
3954
    break;
3931
3955
 
3932
3956
  case 25:
3933
 
#line 1439 "parser.y"
 
3957
#line 1475 "parser.y"
3934
3958
    { yyval.node = yyvsp[0].node; }
3935
3959
    break;
3936
3960
 
3937
3961
  case 26:
3938
 
#line 1440 "parser.y"
 
3962
#line 1476 "parser.y"
3939
3963
    { yyval.node = yyvsp[0].node; }
3940
3964
    break;
3941
3965
 
3942
3966
  case 27:
3943
 
#line 1441 "parser.y"
 
3967
#line 1477 "parser.y"
3944
3968
    { yyval.node = yyvsp[0].node; }
3945
3969
    break;
3946
3970
 
3947
3971
  case 28:
3948
 
#line 1442 "parser.y"
 
3972
#line 1478 "parser.y"
3949
3973
    { yyval.node = yyvsp[0].node; }
3950
3974
    break;
3951
3975
 
3952
3976
  case 29:
3953
 
#line 1443 "parser.y"
 
3977
#line 1479 "parser.y"
3954
3978
    { yyval.node = yyvsp[0].node; }
3955
3979
    break;
3956
3980
 
3957
3981
  case 30:
3958
 
#line 1444 "parser.y"
 
3982
#line 1480 "parser.y"
3959
3983
    { yyval.node = yyvsp[0].node; }
3960
3984
    break;
3961
3985
 
3962
3986
  case 31:
3963
 
#line 1445 "parser.y"
 
3987
#line 1481 "parser.y"
3964
3988
    { yyval.node = yyvsp[0].node; }
3965
3989
    break;
3966
3990
 
3967
3991
  case 32:
3968
 
#line 1446 "parser.y"
 
3992
#line 1482 "parser.y"
3969
3993
    { yyval.node = yyvsp[0].node; }
3970
3994
    break;
3971
3995
 
3972
3996
  case 33:
3973
 
#line 1447 "parser.y"
 
3997
#line 1483 "parser.y"
3974
3998
    { yyval.node = yyvsp[0].node; }
3975
3999
    break;
3976
4000
 
3977
4001
  case 34:
3978
 
#line 1448 "parser.y"
 
4002
#line 1484 "parser.y"
3979
4003
    { yyval.node = yyvsp[0].node; }
3980
4004
    break;
3981
4005
 
3982
4006
  case 35:
3983
 
#line 1449 "parser.y"
 
4007
#line 1485 "parser.y"
3984
4008
    { yyval.node = yyvsp[0].node; }
3985
4009
    break;
3986
4010
 
3987
4011
  case 36:
3988
 
#line 1450 "parser.y"
 
4012
#line 1486 "parser.y"
3989
4013
    { yyval.node = yyvsp[0].node; }
3990
4014
    break;
3991
4015
 
3992
4016
  case 37:
3993
 
#line 1457 "parser.y"
 
4017
#line 1493 "parser.y"
3994
4018
    {
3995
4019
               Node *cls;
3996
4020
               String *clsname;
4023
4047
    break;
4024
4048
 
4025
4049
  case 38:
4026
 
#line 1485 "parser.y"
 
4050
#line 1521 "parser.y"
4027
4051
    {
4028
4052
               String *clsname;
4029
4053
               extendmode = 0;
4065
4089
    break;
4066
4090
 
4067
4091
  case 39:
4068
 
#line 1529 "parser.y"
 
4092
#line 1565 "parser.y"
4069
4093
    {
4070
4094
                    yyval.node = new_node("apply");
4071
4095
                    Setattr(yyval.node,"pattern",Getattr(yyvsp[-3].p,"pattern"));
4074
4098
    break;
4075
4099
 
4076
4100
  case 40:
4077
 
#line 1539 "parser.y"
 
4101
#line 1575 "parser.y"
4078
4102
    {
4079
4103
                 yyval.node = new_node("clear");
4080
4104
                 appendChild(yyval.node,yyvsp[-1].p);
4082
4106
    break;
4083
4107
 
4084
4108
  case 41:
4085
 
#line 1550 "parser.y"
 
4109
#line 1586 "parser.y"
4086
4110
    {
4087
4111
                   if ((yyvsp[-1].dtype.type != T_ERROR) && (yyvsp[-1].dtype.type != T_SYMBOL)) {
4088
4112
                     yyval.node = new_node("constant");
4091
4115
                     Setattr(yyval.node,"value",yyvsp[-1].dtype.val);
4092
4116
                     if (yyvsp[-1].dtype.rawval) Setattr(yyval.node,"rawval", yyvsp[-1].dtype.rawval);
4093
4117
                     Setattr(yyval.node,"storage","%constant");
4094
 
                     Setattr(yyval.node,"feature:immutable","1");
 
4118
                     SetFlag(yyval.node,"feature:immutable");
4095
4119
                     add_symbols(yyval.node);
4096
4120
                   } else {
4097
4121
                     if (yyvsp[-1].dtype.type == T_ERROR) {
4104
4128
    break;
4105
4129
 
4106
4130
  case 42:
4107
 
#line 1569 "parser.y"
 
4131
#line 1605 "parser.y"
4108
4132
    {
4109
4133
                 if ((yyvsp[-1].dtype.type != T_ERROR) && (yyvsp[-1].dtype.type != T_SYMBOL)) {
4110
4134
                   SwigType_push(yyvsp[-3].type,yyvsp[-2].decl.type);
4118
4142
                   Setattr(yyval.node,"value",yyvsp[-1].dtype.val);
4119
4143
                   if (yyvsp[-1].dtype.rawval) Setattr(yyval.node,"rawval", yyvsp[-1].dtype.rawval);
4120
4144
                   Setattr(yyval.node,"storage","%constant");
4121
 
                   Setattr(yyval.node,"feature:immutable","1");
 
4145
                   SetFlag(yyval.node,"feature:immutable");
4122
4146
                   add_symbols(yyval.node);
4123
4147
                 } else {
4124
4148
                     if (yyvsp[-1].dtype.type == T_ERROR) {
4130
4154
    break;
4131
4155
 
4132
4156
  case 43:
4133
 
#line 1591 "parser.y"
 
4157
#line 1627 "parser.y"
4134
4158
    {
4135
4159
                 Swig_warning(WARN_PARSE_BAD_VALUE,cparse_file,cparse_line,"Bad constant value (ignored).\n");
4136
4160
                 yyval.node = 0;
4138
4162
    break;
4139
4163
 
4140
4164
  case 44:
4141
 
#line 1602 "parser.y"
 
4165
#line 1638 "parser.y"
4142
4166
    {
4143
4167
                 char temp[64];
4144
4168
                 Replace(yyvsp[0].str,"$file",cparse_file, DOH_REPLACE_ANY);
4151
4175
    break;
4152
4176
 
4153
4177
  case 45:
4154
 
#line 1611 "parser.y"
 
4178
#line 1647 "parser.y"
4155
4179
    {
4156
4180
                 char temp[64];
4157
4181
                 String *s = NewString(yyvsp[0].id);
4165
4189
    break;
4166
4190
 
4167
4191
  case 46:
4168
 
#line 1630 "parser.y"
 
4192
#line 1666 "parser.y"
4169
4193
    {
4170
4194
                    skip_balanced('{','}');
4171
4195
                    yyval.node = 0;
4174
4198
    break;
4175
4199
 
4176
4200
  case 47:
4177
 
#line 1636 "parser.y"
 
4201
#line 1672 "parser.y"
4178
4202
    {
4179
4203
                    skip_balanced('{','}');
4180
4204
                    yyval.node = 0;
4183
4207
    break;
4184
4208
 
4185
4209
  case 48:
4186
 
#line 1642 "parser.y"
 
4210
#line 1678 "parser.y"
4187
4211
    {
4188
4212
                 yyval.node = 0;
4189
4213
                 Swig_warning(WARN_DEPRECATED_EXCEPT,cparse_file, cparse_line, "%%except is deprecated.  Use %%exception instead.\n");
4191
4215
    break;
4192
4216
 
4193
4217
  case 49:
4194
 
#line 1647 "parser.y"
 
4218
#line 1683 "parser.y"
4195
4219
    {
4196
4220
                 yyval.node = 0;
4197
4221
                 Swig_warning(WARN_DEPRECATED_EXCEPT,cparse_file, cparse_line, "%%except is deprecated.  Use %%exception instead.\n");
4199
4223
    break;
4200
4224
 
4201
4225
  case 50:
4202
 
#line 1658 "parser.y"
 
4226
#line 1694 "parser.y"
4203
4227
    {            
4204
4228
                 yyval.node = NewHash();
4205
4229
                 Setattr(yyval.node,"value",yyvsp[-3].id);
4206
 
                 Setattr(yyval.node,"type",yyvsp[-1].type);
 
4230
                 Setattr(yyval.node,"type",Getattr(yyvsp[-1].p,"type"));
4207
4231
               }
4208
4232
    break;
4209
4233
 
4210
4234
  case 51:
4211
 
#line 1665 "parser.y"
 
4235
#line 1701 "parser.y"
4212
4236
    {
4213
4237
                 yyval.node = NewHash();
4214
4238
                 Setattr(yyval.node,"value",yyvsp[0].id);
4216
4240
    break;
4217
4241
 
4218
4242
  case 52:
4219
 
#line 1669 "parser.y"
 
4243
#line 1705 "parser.y"
4220
4244
    {
4221
4245
                yyval.node = yyvsp[0].node;
4222
4246
              }
4223
4247
    break;
4224
4248
 
4225
4249
  case 53:
4226
 
#line 1674 "parser.y"
 
4250
#line 1710 "parser.y"
4227
4251
    {
4228
4252
                   Hash *p = yyvsp[-2].node;
4229
4253
                   yyval.node = new_node("fragment");
4236
4260
    break;
4237
4261
 
4238
4262
  case 54:
4239
 
#line 1683 "parser.y"
 
4263
#line 1719 "parser.y"
4240
4264
    {
4241
4265
                   Hash *p = yyvsp[-2].node;
4242
4266
                   skip_balanced('{','}');
4252
4276
    break;
4253
4277
 
4254
4278
  case 55:
4255
 
#line 1695 "parser.y"
 
4279
#line 1731 "parser.y"
4256
4280
    {
4257
4281
                   yyval.node = new_node("fragment");
4258
4282
                   Setattr(yyval.node,"value",Getattr(yyvsp[-2].node,"value"));
4262
4286
    break;
4263
4287
 
4264
4288
  case 56:
4265
 
#line 1708 "parser.y"
 
4289
#line 1744 "parser.y"
4266
4290
    {
4267
4291
                     yyvsp[-3].loc.filename = Swig_copy_string(cparse_file);
4268
4292
                     yyvsp[-3].loc.line = cparse_line;
4272
4296
    break;
4273
4297
 
4274
4298
  case 57:
4275
 
#line 1713 "parser.y"
 
4299
#line 1749 "parser.y"
4276
4300
    {
 
4301
                     String *mname = 0;
4277
4302
                     yyval.node = yyvsp[-1].node;
4278
4303
                     cparse_file = yyvsp[-6].loc.filename;
4279
4304
                     cparse_line = yyvsp[-6].loc.line;
4280
4305
                     if (strcmp(yyvsp[-6].loc.type,"include") == 0) set_nodeType(yyval.node,"include");
4281
 
                     if (strcmp(yyvsp[-6].loc.type,"import") == 0) set_nodeType(yyval.node,"import");
 
4306
                     if (strcmp(yyvsp[-6].loc.type,"import") == 0) {
 
4307
                       mname = yyvsp[-5].node ? Getattr(yyvsp[-5].node,"module") : 0;
 
4308
                       set_nodeType(yyval.node,"import");
 
4309
                       if (import_mode) --import_mode;
 
4310
                     }
 
4311
                     
4282
4312
                     Setattr(yyval.node,"name",yyvsp[-4].id);
4283
4313
                     /* Search for the module (if any) */
4284
4314
                     {
4285
4315
                         Node *n = firstChild(yyval.node);
4286
4316
                         while (n) {
4287
4317
                             if (Strcmp(nodeType(n),"module") == 0) {
 
4318
                                 if (mname) {
 
4319
                                   Setattr(n,"name", mname);
 
4320
                                   mname = 0;
 
4321
                                 }
4288
4322
                                 Setattr(yyval.node,"module",Getattr(n,"name"));
4289
4323
                                 break;
4290
4324
                             }
4291
4325
                             n = nextSibling(n);
4292
4326
                         }
 
4327
                         if (mname) {
 
4328
                           /* There is no module node in the import
 
4329
                              node, ie, you imported a .h file
 
4330
                              directly.  We are forced then to create
 
4331
                              a new import node with a module node.
 
4332
                           */                         
 
4333
                           Node *nint = new_node("import");
 
4334
                           Node *mnode = new_node("module");
 
4335
                           Setattr(mnode,"name", mname);
 
4336
                           appendChild(nint,mnode);
 
4337
                           appendChild(nint,firstChild(yyval.node));
 
4338
                           yyval.node = nint;
 
4339
                           Setattr(yyval.node,"module",mname);
 
4340
                         }
4293
4341
                     }
4294
4342
                     Setattr(yyval.node,"options",yyvsp[-5].node);
4295
4343
               }
4296
4344
    break;
4297
4345
 
4298
4346
  case 58:
4299
 
#line 1735 "parser.y"
 
4347
#line 1795 "parser.y"
4300
4348
    { yyval.loc.type = (char *) "include"; }
4301
4349
    break;
4302
4350
 
4303
4351
  case 59:
4304
 
#line 1736 "parser.y"
4305
 
    { yyval.loc.type = (char *) "import"; }
 
4352
#line 1796 "parser.y"
 
4353
    { yyval.loc.type = (char *) "import"; ++import_mode;}
4306
4354
    break;
4307
4355
 
4308
4356
  case 60:
4309
 
#line 1743 "parser.y"
 
4357
#line 1803 "parser.y"
4310
4358
    {
4311
4359
                 String *cpps;
4312
4360
                 if (Namespaceprefix) {
4330
4378
    break;
4331
4379
 
4332
4380
  case 61:
4333
 
#line 1763 "parser.y"
 
4381
#line 1823 "parser.y"
4334
4382
    {
4335
4383
                 String *cpps;
4336
4384
                 skip_balanced('{','}');
4351
4399
    break;
4352
4400
 
4353
4401
  case 62:
4354
 
#line 1790 "parser.y"
 
4402
#line 1850 "parser.y"
4355
4403
    {
4356
4404
                 yyval.node = new_node("insert");
4357
4405
                 Setattr(yyval.node,"code",yyvsp[0].str);
4359
4407
    break;
4360
4408
 
4361
4409
  case 63:
4362
 
#line 1794 "parser.y"
 
4410
#line 1854 "parser.y"
4363
4411
    {
4364
4412
                 String *code = NewString("");
4365
4413
                 yyval.node = new_node("insert");
4373
4421
    break;
4374
4422
 
4375
4423
  case 64:
4376
 
#line 1804 "parser.y"
 
4424
#line 1864 "parser.y"
4377
4425
    {
4378
4426
                 yyval.node = new_node("insert");
4379
4427
                 Setattr(yyval.node,"section",yyvsp[-2].id);
4382
4430
    break;
4383
4431
 
4384
4432
  case 65:
4385
 
#line 1809 "parser.y"
 
4433
#line 1869 "parser.y"
4386
4434
    {
4387
4435
                 skip_balanced('{','}');
4388
4436
                 yyval.node = new_node("insert");
4394
4442
    break;
4395
4443
 
4396
4444
  case 66:
4397
 
#line 1824 "parser.y"
 
4445
#line 1884 "parser.y"
4398
4446
    {
4399
4447
                 yyval.node = new_node("module");
4400
 
                 Setattr(yyval.node,"name",yyvsp[0].id);
4401
4448
                 if (yyvsp[-1].node) {
4402
4449
                   Setattr(yyval.node,"options",yyvsp[-1].node);
4403
4450
                   if (Getattr(yyvsp[-1].node,"directors")) {
4413
4460
                   }
4414
4461
                 }
4415
4462
                 if (!ModuleName) ModuleName = NewString(yyvsp[0].id);
 
4463
                 if (!import_mode) {
 
4464
                   /* first module included, we apply global
 
4465
                      ModuleName, which can be modify by -module */
 
4466
                   Setattr(yyval.node,"name",Copy(ModuleName));
 
4467
                 } else { 
 
4468
                   /* import mode, we just pass the idstring */
 
4469
                   Setattr(yyval.node,"name",yyvsp[0].id);   
 
4470
                 }               
4416
4471
                 if (!module_node) module_node = yyval.node;
4417
4472
               }
4418
4473
    break;
4419
4474
 
4420
4475
  case 67:
4421
 
#line 1851 "parser.y"
 
4476
#line 1918 "parser.y"
4422
4477
    {
4423
4478
                 Swig_warning(WARN_DEPRECATED_NAME,cparse_file,cparse_line, "%%name is deprecated.  Use %%rename instead.\n");
4424
4479
                 yyrename = NewString(yyvsp[-1].id);
4427
4482
    break;
4428
4483
 
4429
4484
  case 68:
4430
 
#line 1856 "parser.y"
 
4485
#line 1923 "parser.y"
4431
4486
    {
4432
4487
                 Swig_warning(WARN_DEPRECATED_NAME,cparse_file,cparse_line, "%%name is deprecated.  Use %%rename instead.\n");
4433
4488
                 yyval.node = 0;
4436
4491
    break;
4437
4492
 
4438
4493
  case 69:
4439
 
#line 1869 "parser.y"
 
4494
#line 1936 "parser.y"
4440
4495
    {
4441
4496
                 yyval.node = new_node("native");
4442
4497
                 Setattr(yyval.node,"name",yyvsp[-4].id);
4446
4501
    break;
4447
4502
 
4448
4503
  case 70:
4449
 
#line 1875 "parser.y"
 
4504
#line 1942 "parser.y"
4450
4505
    {
4451
4506
                 if (!SwigType_isfunction(yyvsp[-1].decl.type)) {
4452
4507
                   Swig_error(cparse_file,cparse_line,"%%native declaration '%s' is not a function.\n", yyvsp[-1].decl.id);
4467
4522
    break;
4468
4523
 
4469
4524
  case 71:
4470
 
#line 1901 "parser.y"
 
4525
#line 1968 "parser.y"
4471
4526
    {
4472
4527
                 yyval.node = new_node("pragma");
4473
4528
                 Setattr(yyval.node,"lang",yyvsp[-3].id);
4477
4532
    break;
4478
4533
 
4479
4534
  case 72:
4480
 
#line 1907 "parser.y"
 
4535
#line 1974 "parser.y"
4481
4536
    {
4482
4537
                yyval.node = new_node("pragma");
4483
4538
                Setattr(yyval.node,"lang",yyvsp[-1].id);
4486
4541
    break;
4487
4542
 
4488
4543
  case 73:
4489
 
#line 1914 "parser.y"
 
4544
#line 1981 "parser.y"
4490
4545
    { yyval.str = NewString(yyvsp[0].id); }
4491
4546
    break;
4492
4547
 
4493
4548
  case 74:
4494
 
#line 1915 "parser.y"
 
4549
#line 1982 "parser.y"
4495
4550
    { yyval.str = yyvsp[0].str; }
4496
4551
    break;
4497
4552
 
4498
4553
  case 75:
4499
 
#line 1918 "parser.y"
 
4554
#line 1985 "parser.y"
4500
4555
    { yyval.id = yyvsp[-1].id; }
4501
4556
    break;
4502
4557
 
4503
4558
  case 76:
4504
 
#line 1919 "parser.y"
 
4559
#line 1986 "parser.y"
4505
4560
    { yyval.id = (char *) "swig"; }
4506
4561
    break;
4507
4562
 
4508
4563
  case 77:
4509
 
#line 1927 "parser.y"
 
4564
#line 1994 "parser.y"
4510
4565
    {
4511
4566
                    SwigType *t = yyvsp[-2].decl.type;
4512
4567
                    if (!Len(t)) t = 0;
4521
4576
    break;
4522
4577
 
4523
4578
  case 78:
4524
 
#line 1938 "parser.y"
 
4579
#line 2005 "parser.y"
4525
4580
    {
4526
4581
                String *fixname;
4527
4582
                SwigType *t = yyvsp[-2].decl.type;
4547
4602
                        namewarn_add(Char(fixname),decl,yyvsp[-4].id);
4548
4603
                      }
4549
4604
                    }
 
4605
                    Delete(decl);
4550
4606
                  } else if (SwigType_ispointer(t)) {
4551
4607
                    String *nname = NewStringf("*%s",fixname);
4552
4608
                    if (yyvsp[-6].ivalue) {
4569
4625
    break;
4570
4626
 
4571
4627
  case 79:
4572
 
#line 1982 "parser.y"
 
4628
#line 2050 "parser.y"
4573
4629
    {
4574
4630
                if (yyvsp[-5].ivalue) {
4575
4631
                  rename_add(yyvsp[-1].id,0,yyvsp[-3].id,0);
4582
4638
    break;
4583
4639
 
4584
4640
  case 80:
4585
 
#line 1993 "parser.y"
 
4641
#line 2061 "parser.y"
4586
4642
    {
4587
4643
                    yyval.ivalue = 1;
4588
4644
                }
4589
4645
    break;
4590
4646
 
4591
4647
  case 81:
4592
 
#line 1996 "parser.y"
 
4648
#line 2064 "parser.y"
4593
4649
    {
4594
4650
                    yyval.ivalue = 0;
4595
4651
                }
4596
4652
    break;
4597
4653
 
4598
4654
  case 82:
4599
 
#line 2023 "parser.y"
 
4655
#line 2091 "parser.y"
4600
4656
    {
4601
4657
                    String *val = yyvsp[0].str ? NewString(yyvsp[0].str) : NewString("1");
4602
4658
                    new_feature(yyvsp[-4].id, val, 0, yyvsp[-2].decl.id, yyvsp[-2].decl.type, yyvsp[-2].decl.parms, yyvsp[-1].dtype.qualifier);
4605
4661
    break;
4606
4662
 
4607
4663
  case 83:
4608
 
#line 2028 "parser.y"
 
4664
#line 2096 "parser.y"
4609
4665
    {
4610
4666
                    String *val = Len(yyvsp[-4].id) ? NewString(yyvsp[-4].id) : 0;
4611
4667
                    new_feature(yyvsp[-6].id, val, 0, yyvsp[-2].decl.id, yyvsp[-2].decl.type, yyvsp[-2].decl.parms, yyvsp[-1].dtype.qualifier);
4614
4670
    break;
4615
4671
 
4616
4672
  case 84:
4617
 
#line 2033 "parser.y"
 
4673
#line 2101 "parser.y"
4618
4674
    {
4619
4675
                    String *val = yyvsp[0].str ? NewString(yyvsp[0].str) : NewString("1");
4620
4676
                    new_feature(yyvsp[-5].id, val, yyvsp[-4].node, yyvsp[-2].decl.id, yyvsp[-2].decl.type, yyvsp[-2].decl.parms, yyvsp[-1].dtype.qualifier);
4623
4679
    break;
4624
4680
 
4625
4681
  case 85:
4626
 
#line 2038 "parser.y"
 
4682
#line 2106 "parser.y"
4627
4683
    {
4628
4684
                    String *val = Len(yyvsp[-5].id) ? NewString(yyvsp[-5].id) : 0;
4629
4685
                    new_feature(yyvsp[-7].id, val, yyvsp[-4].node, yyvsp[-2].decl.id, yyvsp[-2].decl.type, yyvsp[-2].decl.parms, yyvsp[-1].dtype.qualifier);
4632
4688
    break;
4633
4689
 
4634
4690
  case 86:
4635
 
#line 2045 "parser.y"
 
4691
#line 2113 "parser.y"
4636
4692
    {
4637
4693
                    String *val = yyvsp[0].str ? NewString(yyvsp[0].str) : NewString("1");
4638
4694
                    new_feature(yyvsp[-2].id, val, 0, 0, 0, 0, 0);
4641
4697
    break;
4642
4698
 
4643
4699
  case 87:
4644
 
#line 2050 "parser.y"
 
4700
#line 2118 "parser.y"
4645
4701
    {
4646
4702
                    String *val = Len(yyvsp[-2].id) ? NewString(yyvsp[-2].id) : 0;
4647
4703
                    new_feature(yyvsp[-4].id, val, 0, 0, 0, 0, 0);
4650
4706
    break;
4651
4707
 
4652
4708
  case 88:
4653
 
#line 2055 "parser.y"
 
4709
#line 2123 "parser.y"
4654
4710
    {
4655
4711
                    String *val = yyvsp[0].str ? NewString(yyvsp[0].str) : NewString("1");
4656
4712
                    new_feature(yyvsp[-3].id, val, yyvsp[-2].node, 0, 0, 0, 0);
4659
4715
    break;
4660
4716
 
4661
4717
  case 89:
4662
 
#line 2060 "parser.y"
 
4718
#line 2128 "parser.y"
4663
4719
    {
4664
4720
                    String *val = Len(yyvsp[-3].id) ? NewString(yyvsp[-3].id) : 0;
4665
4721
                    new_feature(yyvsp[-5].id, val, yyvsp[-2].node, 0, 0, 0, 0);
4668
4724
    break;
4669
4725
 
4670
4726
  case 90:
4671
 
#line 2067 "parser.y"
 
4727
#line 2135 "parser.y"
4672
4728
    { yyval.str = yyvsp[0].str; }
4673
4729
    break;
4674
4730
 
4675
4731
  case 91:
4676
 
#line 2068 "parser.y"
 
4732
#line 2136 "parser.y"
4677
4733
    { yyval.str = 0; }
4678
4734
    break;
4679
4735
 
4680
4736
  case 92:
4681
 
#line 2069 "parser.y"
 
4737
#line 2137 "parser.y"
4682
4738
    { yyval.str = yyvsp[-2].pl; }
4683
4739
    break;
4684
4740
 
4685
4741
  case 93:
4686
 
#line 2072 "parser.y"
 
4742
#line 2140 "parser.y"
4687
4743
    {
4688
4744
                  yyval.node = NewHash();
4689
4745
                  Setattr(yyval.node,"name",yyvsp[-2].id);
4692
4748
    break;
4693
4749
 
4694
4750
  case 94:
4695
 
#line 2077 "parser.y"
 
4751
#line 2145 "parser.y"
4696
4752
    {
4697
4753
                  yyval.node = NewHash();
4698
4754
                  Setattr(yyval.node,"name",yyvsp[-3].id);
4702
4758
    break;
4703
4759
 
4704
4760
  case 95:
4705
 
#line 2087 "parser.y"
 
4761
#line 2155 "parser.y"
4706
4762
    {
4707
4763
                 Parm *val;
4708
4764
                 String *name;
4727
4783
                     } else {
4728
4784
                       Swig_feature_set(features_hash, name, decl, "feature:varargs", val, 0);
4729
4785
                     }
 
4786
                     Delete(decl);
4730
4787
                   } else if (SwigType_ispointer(t)) {
4731
4788
                     String *nname = NewStringf("*%s",name);
4732
4789
                     Swig_feature_set(features_hash,nname,0,"feature:varargs",val, 0);
4741
4798
    break;
4742
4799
 
4743
4800
  case 96:
4744
 
#line 2123 "parser.y"
 
4801
#line 2192 "parser.y"
4745
4802
    { yyval.pl = yyvsp[0].pl; }
4746
4803
    break;
4747
4804
 
4748
4805
  case 97:
4749
 
#line 2124 "parser.y"
 
4806
#line 2193 "parser.y"
4750
4807
    { 
4751
4808
                  int i;
4752
4809
                  int n;
4768
4825
    break;
4769
4826
 
4770
4827
  case 98:
4771
 
#line 2153 "parser.y"
 
4828
#line 2222 "parser.y"
4772
4829
    {
4773
4830
                   yyval.node = 0;
4774
4831
                   if (yyvsp[-3].tmap.op) {
 
4832
                     String *code = 0;
4775
4833
                     yyval.node = new_node("typemap");
4776
4834
                     Setattr(yyval.node,"method",yyvsp[-3].tmap.op);
4777
 
                     Setattr(yyval.node,"code",NewString(yyvsp[0].str));
4778
4835
                     if (yyvsp[-3].tmap.kwargs) {
 
4836
                       Parm *kw = yyvsp[-3].tmap.kwargs;
 
4837
                       /* check for 'noblock' option, which remove the block braces */
 
4838
                       while (kw) {
 
4839
                         String *name = Getattr(kw,"name");
 
4840
                         if (name && (Cmp(name,"noblock") == 0)) {
 
4841
                           char *cstr = Char(yyvsp[0].str);
 
4842
                           size_t len = Len(yyvsp[0].str);
 
4843
                           if (len && cstr[0] == '{') {
 
4844
                             --len; ++cstr; 
 
4845
                             if (len && cstr[len - 1] == '}') { --len; }
 
4846
                             /* we now remove the extra spaces */
 
4847
                             while (len && isspace(cstr[0])) { --len; ++cstr; }
 
4848
                             while (len && isspace(cstr[len - 1])) { --len; }
 
4849
                             code = NewStringWithSize(cstr, len);
 
4850
                           }
 
4851
                         }
 
4852
                         kw = nextSibling(kw);
 
4853
                       }
4779
4854
                       Setattr(yyval.node,"kwargs", yyvsp[-3].tmap.kwargs);
4780
4855
                     }
 
4856
                     Setattr(yyval.node,"code", code ? code : NewString(yyvsp[0].str));
4781
4857
                     appendChild(yyval.node,yyvsp[-1].p);
4782
4858
                   }
4783
4859
               }
4784
4860
    break;
4785
4861
 
4786
4862
  case 99:
4787
 
#line 2165 "parser.y"
 
4863
#line 2253 "parser.y"
4788
4864
    {
4789
4865
                 yyval.node = 0;
4790
4866
                 if (yyvsp[-3].tmap.op) {
4796
4872
    break;
4797
4873
 
4798
4874
  case 100:
4799
 
#line 2173 "parser.y"
 
4875
#line 2261 "parser.y"
4800
4876
    {
4801
4877
                   yyval.node = 0;
4802
4878
                   if (yyvsp[-5].tmap.op) {
4809
4885
    break;
4810
4886
 
4811
4887
  case 101:
4812
 
#line 2186 "parser.y"
 
4888
#line 2274 "parser.y"
4813
4889
    {
4814
4890
                 Hash *p;
4815
4891
                 String *name;
4833
4909
    break;
4834
4910
 
4835
4911
  case 102:
4836
 
#line 2208 "parser.y"
 
4912
#line 2296 "parser.y"
4837
4913
    {
4838
4914
                 yyval.p = yyvsp[-1].p;
4839
4915
                 set_nextSibling(yyval.p,yyvsp[0].p);
4841
4917
    break;
4842
4918
 
4843
4919
  case 103:
4844
 
#line 2214 "parser.y"
 
4920
#line 2302 "parser.y"
4845
4921
    {
4846
4922
                 yyval.p = yyvsp[-1].p;
4847
4923
                 set_nextSibling(yyval.p,yyvsp[0].p);
4849
4925
    break;
4850
4926
 
4851
4927
  case 104:
4852
 
#line 2218 "parser.y"
 
4928
#line 2306 "parser.y"
4853
4929
    { yyval.p = 0;}
4854
4930
    break;
4855
4931
 
4856
4932
  case 105:
4857
 
#line 2221 "parser.y"
 
4933
#line 2309 "parser.y"
4858
4934
    {
4859
4935
                  SwigType_push(yyvsp[-1].type,yyvsp[0].decl.type);
4860
4936
                  yyval.p = new_node("typemapitem");
4866
4942
    break;
4867
4943
 
4868
4944
  case 106:
4869
 
#line 2229 "parser.y"
 
4945
#line 2317 "parser.y"
4870
4946
    {
4871
4947
                  yyval.p = new_node("typemapitem");
4872
4948
                  Setattr(yyval.p,"pattern",yyvsp[-1].pl);
4875
4951
    break;
4876
4952
 
4877
4953
  case 107:
4878
 
#line 2234 "parser.y"
 
4954
#line 2322 "parser.y"
4879
4955
    {
4880
4956
                 yyval.p = new_node("typemapitem");
4881
4957
                 Setattr(yyval.p,"pattern", yyvsp[-4].pl);
4885
4961
    break;
4886
4962
 
4887
4963
  case 108:
4888
 
#line 2246 "parser.y"
 
4964
#line 2334 "parser.y"
4889
4965
    {
4890
4966
                   yyval.node = new_node("types");
4891
4967
                   Setattr(yyval.node,"parms",yyvsp[-2].pl);
4893
4969
    break;
4894
4970
 
4895
4971
  case 109:
4896
 
#line 2256 "parser.y"
 
4972
#line 2344 "parser.y"
4897
4973
    {
4898
4974
                  Parm *p, *tp;
4899
4975
                  Node *n;
5028
5104
                            String *nname = NewStringf("__dummy_%d__", cnt++);
5029
5105
                            Swig_cparse_template_expand(templnode,nname,temparms,tscope);
5030
5106
                            Setattr(templnode,"sym:name",nname);
5031
 
                            if (!Swig_template_extmode()) {
5032
 
                              Setattr(templnode,"feature:ignore","1");
5033
 
                            } else {
5034
 
                              Setattr(templnode,"feature:onlychildren",
5035
 
                                      "typemap,typemapitem,typemapcopy,typedef,types,fragment");
5036
 
                            }
 
5107
                            Setattr(templnode,"feature:onlychildren",
 
5108
                                    "typemap,typemapitem,typemapcopy,typedef,types,fragment");
5037
5109
                          }
5038
5110
                          Delattr(templnode,"templatetype");
5039
5111
                          Setattr(templnode,"template",nn);
5134
5206
    break;
5135
5207
 
5136
5208
  case 110:
5137
 
#line 2500 "parser.y"
 
5209
#line 2584 "parser.y"
5138
5210
    {
5139
5211
                  Swig_warning(0,cparse_file, cparse_line,"%s\n", yyvsp[0].id);
5140
5212
                  yyval.node = 0;
5142
5214
    break;
5143
5215
 
5144
5216
  case 111:
5145
 
#line 2510 "parser.y"
 
5217
#line 2594 "parser.y"
5146
5218
    {
5147
5219
                    yyval.node = yyvsp[0].node; 
5148
5220
                    if (yyval.node) {
5153
5225
    break;
5154
5226
 
5155
5227
  case 112:
5156
 
#line 2517 "parser.y"
 
5228
#line 2601 "parser.y"
5157
5229
    { yyval.node = yyvsp[0].node; }
5158
5230
    break;
5159
5231
 
5160
5232
  case 113:
5161
 
#line 2518 "parser.y"
 
5233
#line 2602 "parser.y"
5162
5234
    { yyval.node = yyvsp[0].node; }
5163
5235
    break;
5164
5236
 
5165
5237
  case 114:
5166
 
#line 2522 "parser.y"
 
5238
#line 2606 "parser.y"
5167
5239
    {
5168
5240
                  if (Strcmp(yyvsp[-1].id,"C") == 0) {
5169
5241
                    cparse_externc = 1;
5172
5244
    break;
5173
5245
 
5174
5246
  case 115:
5175
 
#line 2526 "parser.y"
 
5247
#line 2610 "parser.y"
5176
5248
    {
5177
5249
                  cparse_externc = 0;
5178
5250
                  if (Strcmp(yyvsp[-4].id,"C") == 0) {
5197
5269
    break;
5198
5270
 
5199
5271
  case 116:
5200
 
#line 2553 "parser.y"
 
5272
#line 2637 "parser.y"
5201
5273
    {
5202
5274
              yyval.node = new_node("cdecl");
5203
5275
              if (yyvsp[-1].dtype.qualifier) SwigType_push(yyvsp[-2].decl.type,yyvsp[-1].dtype.qualifier);
5251
5323
    break;
5252
5324
 
5253
5325
  case 117:
5254
 
#line 2607 "parser.y"
 
5326
#line 2691 "parser.y"
5255
5327
    { 
5256
5328
                   yyval.node = 0;
5257
5329
                   Clear(scanner_ccode); 
5259
5331
    break;
5260
5332
 
5261
5333
  case 118:
5262
 
#line 2611 "parser.y"
 
5334
#line 2695 "parser.y"
5263
5335
    {
5264
5336
                 yyval.node = new_node("cdecl");
5265
5337
                 if (yyvsp[-1].dtype.qualifier) SwigType_push(yyvsp[-2].decl.type,yyvsp[-1].dtype.qualifier);
5283
5355
    break;
5284
5356
 
5285
5357
  case 119:
5286
 
#line 2631 "parser.y"
 
5358
#line 2715 "parser.y"
5287
5359
    { 
5288
5360
                   skip_balanced('{','}');
5289
5361
                   yyval.node = 0;
5291
5363
    break;
5292
5364
 
5293
5365
  case 120:
5294
 
#line 2637 "parser.y"
 
5366
#line 2721 "parser.y"
5295
5367
    { 
5296
5368
                   yyval.dtype = yyvsp[0].dtype; 
5297
5369
                   yyval.dtype.qualifier = 0;
5301
5373
    break;
5302
5374
 
5303
5375
  case 121:
5304
 
#line 2643 "parser.y"
 
5376
#line 2727 "parser.y"
5305
5377
    { 
5306
5378
                   yyval.dtype = yyvsp[0].dtype; 
5307
5379
                   yyval.dtype.qualifier = yyvsp[-1].str;
5311
5383
    break;
5312
5384
 
5313
5385
  case 122:
5314
 
#line 2649 "parser.y"
 
5386
#line 2733 "parser.y"
5315
5387
    { 
5316
5388
                   yyval.dtype = yyvsp[0].dtype; 
5317
5389
                   yyval.dtype.qualifier = 0;
5321
5393
    break;
5322
5394
 
5323
5395
  case 123:
5324
 
#line 2655 "parser.y"
 
5396
#line 2739 "parser.y"
5325
5397
    { 
5326
5398
                   yyval.dtype = yyvsp[0].dtype; 
5327
5399
                   yyval.dtype.qualifier = yyvsp[-5].str;
5331
5403
    break;
5332
5404
 
5333
5405
  case 124:
5334
 
#line 2668 "parser.y"
 
5406
#line 2752 "parser.y"
5335
5407
    {
5336
5408
                   SwigType *ty = 0;
5337
5409
                   yyval.node = new_node("enumforward");
5344
5416
    break;
5345
5417
 
5346
5418
  case 125:
5347
 
#line 2683 "parser.y"
 
5419
#line 2767 "parser.y"
5348
5420
    {
5349
5421
                  SwigType *ty = 0;
5350
5422
                  yyval.node = new_node("enum");
5358
5430
    break;
5359
5431
 
5360
5432
  case 126:
5361
 
#line 2694 "parser.y"
 
5433
#line 2778 "parser.y"
5362
5434
    {
5363
5435
                 Node *n;
5364
5436
                 SwigType *ty = 0;
5429
5501
    break;
5430
5502
 
5431
5503
  case 127:
5432
 
#line 2763 "parser.y"
 
5504
#line 2847 "parser.y"
5433
5505
    {
5434
5506
                   /* This is a sick hack.  If the ctor_end has parameters,
5435
5507
                      and the parms paremeter only has 1 parameter, this
5469
5541
                      }
5470
5542
                    }
5471
5543
                    if (err) {
5472
 
                      Swig_error(cparse_file,cparse_line,"Syntax error in input.\n");
 
5544
                      Swig_error(cparse_file,cparse_line,"Syntax error in input(2).\n");
5473
5545
                    }
5474
5546
                }
5475
5547
    break;
5476
5548
 
5477
5549
  case 128:
5478
 
#line 2811 "parser.y"
 
5550
#line 2895 "parser.y"
5479
5551
    {  yyval.node = yyvsp[0].node; }
5480
5552
    break;
5481
5553
 
5482
5554
  case 129:
5483
 
#line 2812 "parser.y"
 
5555
#line 2896 "parser.y"
5484
5556
    { yyval.node = yyvsp[0].node; }
5485
5557
    break;
5486
5558
 
5487
5559
  case 130:
5488
 
#line 2813 "parser.y"
 
5560
#line 2897 "parser.y"
5489
5561
    { yyval.node = yyvsp[0].node; }
5490
5562
    break;
5491
5563
 
5492
5564
  case 131:
5493
 
#line 2814 "parser.y"
 
5565
#line 2898 "parser.y"
5494
5566
    { yyval.node = yyvsp[0].node; }
5495
5567
    break;
5496
5568
 
5497
5569
  case 132:
5498
 
#line 2815 "parser.y"
 
5570
#line 2899 "parser.y"
5499
5571
    { yyval.node = yyvsp[0].node; }
5500
5572
    break;
5501
5573
 
5502
5574
  case 133:
5503
 
#line 2816 "parser.y"
 
5575
#line 2900 "parser.y"
5504
5576
    { yyval.node = 0; }
5505
5577
    break;
5506
5578
 
5507
5579
  case 134:
5508
 
#line 2822 "parser.y"
 
5580
#line 2906 "parser.y"
5509
5581
    {
5510
5582
                   List *bases = 0;
5511
5583
 
5591
5663
    break;
5592
5664
 
5593
5665
  case 135:
5594
 
#line 2903 "parser.y"
 
5666
#line 2987 "parser.y"
5595
5667
    {
5596
5668
                 Node *p;
5597
5669
                 SwigType *ty;
5666
5738
                   }
5667
5739
                   appendChild(yyval.node,dump_nested(Char(name)));
5668
5740
                 }
 
5741
 
 
5742
                 if (cplus_mode != CPLUS_PUBLIC) {
 
5743
                 /* we 'open' the class at the end, to allow %template
 
5744
                    to add new members */
 
5745
                   Node *pa = new_node("access");
 
5746
                   Setattr(pa,"kind","public");
 
5747
                   cplus_mode = CPLUS_PUBLIC;
 
5748
                   appendChild(yyval.node,pa);
 
5749
                 }
 
5750
 
5669
5751
                 Setattr(yyval.node,"symtab",Swig_symbol_popscope());
5670
5752
 
5671
5753
                 Classprefix = 0;
5694
5776
    break;
5695
5777
 
5696
5778
  case 136:
5697
 
#line 3005 "parser.y"
 
5779
#line 3099 "parser.y"
5698
5780
    {
5699
5781
               class_rename = make_name(0,0);
5700
5782
               if (strcmp(yyvsp[-1].id,"class") == 0) {
5711
5793
    break;
5712
5794
 
5713
5795
  case 137:
5714
 
#line 3017 "parser.y"
 
5796
#line 3111 "parser.y"
5715
5797
    {
5716
5798
               String *unnamed;
5717
5799
               Node *n;
5796
5878
    break;
5797
5879
 
5798
5880
  case 138:
5799
 
#line 3100 "parser.y"
 
5881
#line 3194 "parser.y"
5800
5882
    { yyval.node = 0; }
5801
5883
    break;
5802
5884
 
5803
5885
  case 139:
5804
 
#line 3101 "parser.y"
 
5886
#line 3195 "parser.y"
5805
5887
    {
5806
5888
                        yyval.node = new_node("cdecl");
5807
5889
                        Setattr(yyval.node,"name",yyvsp[-1].decl.id);
5812
5894
    break;
5813
5895
 
5814
5896
  case 140:
5815
 
#line 3113 "parser.y"
 
5897
#line 3207 "parser.y"
5816
5898
    {
5817
5899
              if (yyvsp[-3].id && (Strcmp(yyvsp[-3].id,"friend") == 0)) {
5818
5900
                /* Ignore */
5830
5912
    break;
5831
5913
 
5832
5914
  case 141:
5833
 
#line 3133 "parser.y"
 
5915
#line 3227 "parser.y"
5834
5916
    { template_parameters = yyvsp[-1].tparms; }
5835
5917
    break;
5836
5918
 
5837
5919
  case 142:
5838
 
#line 3133 "parser.y"
 
5920
#line 3227 "parser.y"
5839
5921
    {
5840
5922
                      String *tname = 0;
5841
5923
                      int     error = 0;
5946
6028
                              p1 = nextSibling(p1);
5947
6029
                            }
5948
6030
                            Setattr(yyval.node,"templateparms",tp);
 
6031
                            Delete(tp);
5949
6032
                          }
5950
6033
#if 0
5951
6034
                          /* Patch the parameter list */
5965
6048
                              p1 = nextSibling(p1);
5966
6049
                            }
5967
6050
                            Setattr(yyval.node,"templateparms",tp);
 
6051
                            Delete(tp);
5968
6052
                          } else {
5969
6053
                            Setattr(yyval.node,"templateparms",yyvsp[-3].tparms);
5970
6054
                          }
6028
6112
                        } else {
6029
6113
                          /* Need to resolve exact specialization name */
6030
6114
                          /* add default args from generic template */
6031
 
                          String *fname = Swig_cparse_template_deftype(tname,0);
 
6115
                          String *ty = Swig_symbol_template_deftype(tname,0);
 
6116
                          String *fname = Swig_symbol_type_qualify(ty,0);
6032
6117
                          Swig_symbol_cadd(fname,yyval.node);
 
6118
                          Delete(ty);
 
6119
                          Delete(fname);
6033
6120
                        }
6034
6121
                      }  else if (yyval.node) {
6035
6122
                        Setattr(yyval.node,"templatetype",nodeType(yyvsp[0].node));
6064
6151
    break;
6065
6152
 
6066
6153
  case 143:
6067
 
#line 3358 "parser.y"
 
6154
#line 3457 "parser.y"
6068
6155
    {
6069
6156
                  Swig_warning(WARN_PARSE_EXPLICIT_TEMPLATE, cparse_file, cparse_line, "Explicit template instantiation ignored.\n");
6070
6157
                   yyval.node = 0; 
6072
6159
    break;
6073
6160
 
6074
6161
  case 144:
6075
 
#line 3364 "parser.y"
 
6162
#line 3463 "parser.y"
6076
6163
    {
6077
6164
                  yyval.node = yyvsp[0].node;
6078
6165
                }
6079
6166
    break;
6080
6167
 
6081
6168
  case 145:
6082
 
#line 3367 "parser.y"
 
6169
#line 3466 "parser.y"
6083
6170
    {
6084
6171
                   yyval.node = yyvsp[0].node;
6085
6172
                }
6086
6173
    break;
6087
6174
 
6088
6175
  case 146:
6089
 
#line 3370 "parser.y"
 
6176
#line 3469 "parser.y"
6090
6177
    {
6091
6178
                   yyval.node = yyvsp[0].node;
6092
6179
                }
6093
6180
    break;
6094
6181
 
6095
6182
  case 147:
6096
 
#line 3373 "parser.y"
 
6183
#line 3472 "parser.y"
6097
6184
    {
6098
6185
                  yyval.node = 0;
6099
6186
                }
6100
6187
    break;
6101
6188
 
6102
6189
  case 148:
6103
 
#line 3376 "parser.y"
 
6190
#line 3475 "parser.y"
6104
6191
    {
6105
6192
                  yyval.node = yyvsp[0].node;
6106
6193
                }
6107
6194
    break;
6108
6195
 
6109
6196
  case 149:
6110
 
#line 3381 "parser.y"
 
6197
#line 3480 "parser.y"
6111
6198
    {
6112
6199
                   /* Rip out the parameter names */
6113
6200
                  Parm *p = yyvsp[0].pl;
6139
6226
    break;
6140
6227
 
6141
6228
  case 150:
6142
 
#line 3413 "parser.y"
 
6229
#line 3512 "parser.y"
6143
6230
    {
6144
6231
                  String *uname = Swig_symbol_type_qualify(yyvsp[-1].str,0);
6145
6232
                  yyval.node = new_node("using");
6150
6237
    break;
6151
6238
 
6152
6239
  case 151:
6153
 
#line 3420 "parser.y"
 
6240
#line 3519 "parser.y"
6154
6241
    {
6155
6242
               Node *n = Swig_symbol_clookup(yyvsp[-1].str,0);
6156
6243
               if (!n) {
6179
6266
    break;
6180
6267
 
6181
6268
  case 152:
6182
 
#line 3447 "parser.y"
 
6269
#line 3546 "parser.y"
6183
6270
    { 
6184
6271
                Hash *h;
6185
6272
                yyvsp[-2].node = Swig_symbol_current();
6201
6288
    break;
6202
6289
 
6203
6290
  case 153:
6204
 
#line 3464 "parser.y"
 
6291
#line 3563 "parser.y"
6205
6292
    {
6206
6293
                Node *n = yyvsp[-1].node;
6207
6294
                set_nodeType(n,"namespace");
6215
6302
    break;
6216
6303
 
6217
6304
  case 154:
6218
 
#line 3474 "parser.y"
 
6305
#line 3573 "parser.y"
6219
6306
    {
6220
6307
               Hash *h;
6221
6308
               yyvsp[-1].node = Swig_symbol_current();
6232
6319
    break;
6233
6320
 
6234
6321
  case 155:
6235
 
#line 3486 "parser.y"
 
6322
#line 3585 "parser.y"
6236
6323
    {
6237
6324
               yyval.node = yyvsp[-1].node;
6238
6325
               set_nodeType(yyval.node,"namespace");
6245
6332
    break;
6246
6333
 
6247
6334
  case 156:
6248
 
#line 3495 "parser.y"
 
6335
#line 3594 "parser.y"
6249
6336
    {
6250
6337
               /* Namespace alias */
6251
6338
               Node *n;
6274
6361
    break;
6275
6362
 
6276
6363
  case 157:
6277
 
#line 3522 "parser.y"
 
6364
#line 3621 "parser.y"
6278
6365
    {
6279
6366
                   yyval.node = yyvsp[-1].node;
6280
6367
                   /* Insert cpp_member (including any siblings) to the front of the cpp_members linked list */
6293
6380
    break;
6294
6381
 
6295
6382
  case 158:
6296
 
#line 3537 "parser.y"
 
6383
#line 3636 "parser.y"
6297
6384
    { 
6298
6385
                  if (cplus_mode != CPLUS_PUBLIC) {
6299
6386
                     Swig_error(cparse_file,cparse_line,"%%extend can only be used in a public section\n");
6302
6389
    break;
6303
6390
 
6304
6391
  case 159:
6305
 
#line 3541 "parser.y"
 
6392
#line 3640 "parser.y"
6306
6393
    {
6307
6394
               yyval.node = new_node("extend");
6308
6395
               Swig_tag_nodes(yyvsp[-2].node,"feature:extend",(char*) "1");
6312
6399
    break;
6313
6400
 
6314
6401
  case 160:
6315
 
#line 3547 "parser.y"
 
6402
#line 3646 "parser.y"
6316
6403
    { yyval.node = 0;}
6317
6404
    break;
6318
6405
 
6319
6406
  case 161:
6320
 
#line 3548 "parser.y"
 
6407
#line 3647 "parser.y"
6321
6408
    {
6322
6409
               skip_decl();
6323
6410
                   {
6324
6411
                     static int last_error_line = -1;
6325
6412
                     if (last_error_line != cparse_line) {
6326
 
                       Swig_error(cparse_file, cparse_line,"Syntax error in input.\n");
 
6413
                       Swig_error(cparse_file, cparse_line,"Syntax error in input(3).\n");
6327
6414
                       last_error_line = cparse_line;
6328
6415
                     }
6329
6416
                   }
6331
6418
    break;
6332
6419
 
6333
6420
  case 162:
6334
 
#line 3557 "parser.y"
 
6421
#line 3656 "parser.y"
6335
6422
    { 
6336
6423
                yyval.node = yyvsp[0].node;
6337
6424
             }
6338
6425
    break;
6339
6426
 
6340
6427
  case 163:
6341
 
#line 3568 "parser.y"
 
6428
#line 3667 "parser.y"
6342
6429
    { yyval.node = yyvsp[0].node; }
6343
6430
    break;
6344
6431
 
6345
6432
  case 164:
6346
 
#line 3569 "parser.y"
 
6433
#line 3668 "parser.y"
6347
6434
    { 
6348
6435
                 yyval.node = yyvsp[0].node; 
6349
6436
                 if (extendmode) {
6362
6449
    break;
6363
6450
 
6364
6451
  case 165:
6365
 
#line 3584 "parser.y"
 
6452
#line 3683 "parser.y"
6366
6453
    { yyval.node = yyvsp[0].node; }
6367
6454
    break;
6368
6455
 
6369
6456
  case 166:
6370
 
#line 3585 "parser.y"
 
6457
#line 3684 "parser.y"
6371
6458
    { yyval.node = yyvsp[0].node; }
6372
6459
    break;
6373
6460
 
6374
6461
  case 167:
6375
 
#line 3586 "parser.y"
 
6462
#line 3685 "parser.y"
6376
6463
    { yyval.node = yyvsp[0].node; }
6377
6464
    break;
6378
6465
 
6379
6466
  case 168:
6380
 
#line 3587 "parser.y"
 
6467
#line 3686 "parser.y"
6381
6468
    { yyval.node = yyvsp[0].node; }
6382
6469
    break;
6383
6470
 
6384
6471
  case 169:
6385
 
#line 3588 "parser.y"
 
6472
#line 3687 "parser.y"
6386
6473
    { yyval.node = yyvsp[0].node; }
6387
6474
    break;
6388
6475
 
6389
6476
  case 170:
6390
 
#line 3589 "parser.y"
 
6477
#line 3688 "parser.y"
6391
6478
    { yyval.node = yyvsp[0].node; }
6392
6479
    break;
6393
6480
 
6394
6481
  case 171:
6395
 
#line 3590 "parser.y"
 
6482
#line 3689 "parser.y"
6396
6483
    { yyval.node = 0; }
6397
6484
    break;
6398
6485
 
6399
6486
  case 172:
6400
 
#line 3591 "parser.y"
 
6487
#line 3690 "parser.y"
6401
6488
    { yyval.node = yyvsp[0].node; }
6402
6489
    break;
6403
6490
 
6404
6491
  case 173:
6405
 
#line 3592 "parser.y"
 
6492
#line 3691 "parser.y"
6406
6493
    { yyval.node = yyvsp[0].node; }
6407
6494
    break;
6408
6495
 
6409
6496
  case 174:
6410
 
#line 3593 "parser.y"
 
6497
#line 3692 "parser.y"
6411
6498
    { yyval.node = 0; }
6412
6499
    break;
6413
6500
 
6414
6501
  case 175:
6415
 
#line 3594 "parser.y"
 
6502
#line 3693 "parser.y"
6416
6503
    { yyval.node = yyvsp[0].node; }
6417
6504
    break;
6418
6505
 
6419
6506
  case 176:
6420
 
#line 3595 "parser.y"
 
6507
#line 3694 "parser.y"
6421
6508
    { yyval.node = yyvsp[0].node; }
6422
6509
    break;
6423
6510
 
6424
6511
  case 177:
6425
 
#line 3596 "parser.y"
 
6512
#line 3695 "parser.y"
6426
6513
    { yyval.node = 0; }
6427
6514
    break;
6428
6515
 
6429
6516
  case 178:
6430
 
#line 3597 "parser.y"
 
6517
#line 3696 "parser.y"
6431
6518
    {yyval.node = yyvsp[0].node; }
6432
6519
    break;
6433
6520
 
6434
6521
  case 179:
6435
 
#line 3598 "parser.y"
 
6522
#line 3697 "parser.y"
6436
6523
    {yyval.node = yyvsp[0].node; }
6437
6524
    break;
6438
6525
 
6439
6526
  case 180:
6440
 
#line 3599 "parser.y"
 
6527
#line 3698 "parser.y"
6441
6528
    { yyval.node = 0; }
6442
6529
    break;
6443
6530
 
6444
6531
  case 181:
6445
 
#line 3608 "parser.y"
 
6532
#line 3707 "parser.y"
6446
6533
    {
6447
6534
              if (Classprefix) {
6448
6535
                 SwigType *decl = NewString("");
6456
6543
                 if (Len(scanner_ccode)) {
6457
6544
                   Setattr(yyval.node,"code",Copy(scanner_ccode));
6458
6545
                 }
6459
 
                 Setattr(yyval.node,"feature:new","1");
 
6546
                 SetFlag(yyval.node,"feature:new");
6460
6547
              } else {
6461
6548
                yyval.node = 0;
6462
6549
              }
6464
6551
    break;
6465
6552
 
6466
6553
  case 182:
6467
 
#line 3630 "parser.y"
 
6554
#line 3729 "parser.y"
6468
6555
    {
6469
6556
               yyval.node = new_node("destructor");
6470
6557
               Setattr(yyval.node,"name",NewStringf("~%s",yyvsp[-4].str));
6483
6570
    break;
6484
6571
 
6485
6572
  case 183:
6486
 
#line 3648 "parser.y"
 
6573
#line 3747 "parser.y"
6487
6574
    {
6488
6575
                yyval.node = new_node("destructor");
6489
6576
               /* Check for template names.  If the class is a template
6518
6605
    break;
6519
6606
 
6520
6607
  case 184:
6521
 
#line 3683 "parser.y"
 
6608
#line 3782 "parser.y"
6522
6609
    {
6523
6610
                 yyval.node = new_node("cdecl");
6524
6611
                 Setattr(yyval.node,"type",yyvsp[-5].type);
6536
6623
    break;
6537
6624
 
6538
6625
  case 185:
6539
 
#line 3697 "parser.y"
 
6626
#line 3796 "parser.y"
6540
6627
    {
6541
6628
                 SwigType *decl;
6542
6629
                 yyval.node = new_node("cdecl");
6556
6643
    break;
6557
6644
 
6558
6645
  case 186:
6559
 
#line 3714 "parser.y"
 
6646
#line 3813 "parser.y"
6560
6647
    {
6561
6648
                String *t = NewString("");
6562
6649
                yyval.node = new_node("cdecl");
6574
6661
    break;
6575
6662
 
6576
6663
  case 187:
6577
 
#line 3732 "parser.y"
 
6664
#line 3831 "parser.y"
6578
6665
    {
6579
6666
                 skip_balanced('{','}');
6580
6667
                 yyval.node = 0;
6582
6669
    break;
6583
6670
 
6584
6671
  case 188:
6585
 
#line 3739 "parser.y"
 
6672
#line 3838 "parser.y"
6586
6673
    { 
6587
6674
                yyval.node = new_node("access");
6588
6675
                Setattr(yyval.node,"kind","public");
6591
6678
    break;
6592
6679
 
6593
6680
  case 189:
6594
 
#line 3746 "parser.y"
 
6681
#line 3845 "parser.y"
6595
6682
    { 
6596
6683
                yyval.node = new_node("access");
6597
6684
                Setattr(yyval.node,"kind","private");
6600
6687
    break;
6601
6688
 
6602
6689
  case 190:
6603
 
#line 3754 "parser.y"
 
6690
#line 3853 "parser.y"
6604
6691
    { 
6605
6692
                yyval.node = new_node("access");
6606
6693
                Setattr(yyval.node,"kind","protected");
6609
6696
    break;
6610
6697
 
6611
6698
  case 191:
6612
 
#line 3777 "parser.y"
 
6699
#line 3876 "parser.y"
6613
6700
    { cparse_start_line = cparse_line; skip_balanced('{','}');
6614
6701
              }
6615
6702
    break;
6616
6703
 
6617
6704
  case 192:
6618
 
#line 3778 "parser.y"
 
6705
#line 3877 "parser.y"
6619
6706
    {
6620
6707
                yyval.node = 0;
6621
6708
                if (cplus_mode == CPLUS_PUBLIC) {
6645
6732
    break;
6646
6733
 
6647
6734
  case 193:
6648
 
#line 3805 "parser.y"
 
6735
#line 3904 "parser.y"
6649
6736
    { cparse_start_line = cparse_line; skip_balanced('{','}');
6650
6737
              }
6651
6738
    break;
6652
6739
 
6653
6740
  case 194:
6654
 
#line 3806 "parser.y"
 
6741
#line 3905 "parser.y"
6655
6742
    {
6656
6743
                yyval.node = 0;
6657
6744
                if (cplus_mode == CPLUS_PUBLIC) {
6679
6766
    break;
6680
6767
 
6681
6768
  case 195:
6682
 
#line 3835 "parser.y"
 
6769
#line 3934 "parser.y"
6683
6770
    { cparse_start_line = cparse_line; skip_balanced('{','}');
6684
6771
              }
6685
6772
    break;
6686
6773
 
6687
6774
  case 196:
6688
 
#line 3836 "parser.y"
 
6775
#line 3935 "parser.y"
6689
6776
    {
6690
6777
                yyval.node = 0;
6691
6778
                if (cplus_mode == CPLUS_PUBLIC) {
6695
6782
    break;
6696
6783
 
6697
6784
  case 197:
6698
 
#line 3844 "parser.y"
 
6785
#line 3952 "parser.y"
6699
6786
    { yyval.decl = yyvsp[0].decl;}
6700
6787
    break;
6701
6788
 
6702
6789
  case 198:
6703
 
#line 3845 "parser.y"
 
6790
#line 3953 "parser.y"
6704
6791
    { yyval.decl.id = 0; }
6705
6792
    break;
6706
6793
 
6707
6794
  case 199:
6708
 
#line 3851 "parser.y"
 
6795
#line 3959 "parser.y"
6709
6796
    { yyval.node = yyvsp[0].node; }
6710
6797
    break;
6711
6798
 
6712
6799
  case 200:
6713
 
#line 3854 "parser.y"
 
6800
#line 3962 "parser.y"
6714
6801
    { yyval.node = yyvsp[0].node; }
6715
6802
    break;
6716
6803
 
6717
6804
  case 201:
6718
 
#line 3858 "parser.y"
 
6805
#line 3966 "parser.y"
6719
6806
    { yyval.node = yyvsp[0].node; }
6720
6807
    break;
6721
6808
 
6722
6809
  case 202:
6723
 
#line 3861 "parser.y"
 
6810
#line 3969 "parser.y"
6724
6811
    { yyval.node = yyvsp[0].node; }
6725
6812
    break;
6726
6813
 
6727
6814
  case 203:
6728
 
#line 3862 "parser.y"
 
6815
#line 3970 "parser.y"
6729
6816
    { yyval.node = yyvsp[0].node; }
6730
6817
    break;
6731
6818
 
6732
6819
  case 204:
6733
 
#line 3863 "parser.y"
 
6820
#line 3971 "parser.y"
6734
6821
    { yyval.node = yyvsp[0].node; }
6735
6822
    break;
6736
6823
 
6737
6824
  case 205:
6738
 
#line 3864 "parser.y"
 
6825
#line 3972 "parser.y"
6739
6826
    { yyval.node = yyvsp[0].node; }
6740
6827
    break;
6741
6828
 
6742
6829
  case 206:
6743
 
#line 3865 "parser.y"
 
6830
#line 3973 "parser.y"
6744
6831
    { yyval.node = yyvsp[0].node; }
6745
6832
    break;
6746
6833
 
6747
6834
  case 207:
6748
 
#line 3866 "parser.y"
 
6835
#line 3974 "parser.y"
6749
6836
    { yyval.node = yyvsp[0].node; }
6750
6837
    break;
6751
6838
 
6752
6839
  case 208:
6753
 
#line 3867 "parser.y"
 
6840
#line 3975 "parser.y"
6754
6841
    { yyval.node = yyvsp[0].node; }
6755
6842
    break;
6756
6843
 
6757
6844
  case 209:
6758
 
#line 3868 "parser.y"
 
6845
#line 3976 "parser.y"
6759
6846
    { yyval.node = yyvsp[0].node; }
6760
6847
    break;
6761
6848
 
6762
6849
  case 210:
6763
 
#line 3871 "parser.y"
 
6850
#line 3979 "parser.y"
6764
6851
    {
6765
6852
                    Clear(scanner_ccode);
6766
6853
                    yyval.dtype.throws = yyvsp[-1].dtype.throws;
6769
6856
    break;
6770
6857
 
6771
6858
  case 211:
6772
 
#line 3876 "parser.y"
 
6859
#line 3984 "parser.y"
6773
6860
    { 
6774
6861
                    skip_balanced('{','}'); 
6775
6862
                    yyval.dtype.throws = yyvsp[-1].dtype.throws;
6778
6865
    break;
6779
6866
 
6780
6867
  case 212:
6781
 
#line 3883 "parser.y"
 
6868
#line 3991 "parser.y"
6782
6869
    { 
6783
6870
                     Clear(scanner_ccode);
6784
6871
                     yyval.dtype.val = 0;
6790
6877
    break;
6791
6878
 
6792
6879
  case 213:
6793
 
#line 3891 "parser.y"
 
6880
#line 3999 "parser.y"
6794
6881
    { 
6795
6882
                     Clear(scanner_ccode);
6796
6883
                     yyval.dtype.val = yyvsp[-1].dtype.val;
6802
6889
    break;
6803
6890
 
6804
6891
  case 214:
6805
 
#line 3899 "parser.y"
 
6892
#line 4007 "parser.y"
6806
6893
    { 
6807
6894
                     skip_balanced('{','}');
6808
6895
                     yyval.dtype.val = 0;
6814
6901
    break;
6815
6902
 
6816
6903
  case 215:
6817
 
#line 3910 "parser.y"
 
6904
#line 4018 "parser.y"
6818
6905
    { }
6819
6906
    break;
6820
6907
 
6821
6908
  case 216:
6822
 
#line 3916 "parser.y"
 
6909
#line 4024 "parser.y"
6823
6910
    { yyval.id = "extern"; }
6824
6911
    break;
6825
6912
 
6826
6913
  case 217:
6827
 
#line 3917 "parser.y"
 
6914
#line 4025 "parser.y"
6828
6915
    { 
6829
6916
                   if (strcmp(yyvsp[0].id,"C") == 0) {
6830
6917
                     yyval.id = "externc";
6836
6923
    break;
6837
6924
 
6838
6925
  case 218:
6839
 
#line 3925 "parser.y"
 
6926
#line 4033 "parser.y"
6840
6927
    { yyval.id = "static"; }
6841
6928
    break;
6842
6929
 
6843
6930
  case 219:
6844
 
#line 3926 "parser.y"
 
6931
#line 4034 "parser.y"
6845
6932
    { yyval.id = "typedef"; }
6846
6933
    break;
6847
6934
 
6848
6935
  case 220:
6849
 
#line 3927 "parser.y"
 
6936
#line 4035 "parser.y"
6850
6937
    { yyval.id = "virtual"; }
6851
6938
    break;
6852
6939
 
6853
6940
  case 221:
6854
 
#line 3928 "parser.y"
 
6941
#line 4036 "parser.y"
6855
6942
    { yyval.id = "friend"; }
6856
6943
    break;
6857
6944
 
6858
6945
  case 222:
6859
 
#line 3929 "parser.y"
 
6946
#line 4037 "parser.y"
6860
6947
    { yyval.id = 0; }
6861
6948
    break;
6862
6949
 
6863
6950
  case 223:
6864
 
#line 3936 "parser.y"
 
6951
#line 4044 "parser.y"
6865
6952
    {
6866
6953
                 Parm *p;
6867
6954
                 yyval.pl = yyvsp[0].pl;
6874
6961
    break;
6875
6962
 
6876
6963
  case 224:
6877
 
#line 3947 "parser.y"
 
6964
#line 4055 "parser.y"
6878
6965
    {
6879
6966
                  if (1) { 
6880
6967
                    set_nextSibling(yyvsp[-1].p,yyvsp[0].pl);
6886
6973
    break;
6887
6974
 
6888
6975
  case 225:
6889
 
#line 3955 "parser.y"
 
6976
#line 4063 "parser.y"
6890
6977
    { yyval.pl = 0; }
6891
6978
    break;
6892
6979
 
6893
6980
  case 226:
6894
 
#line 3958 "parser.y"
 
6981
#line 4066 "parser.y"
6895
6982
    {
6896
6983
                 set_nextSibling(yyvsp[-1].p,yyvsp[0].pl);
6897
6984
                 yyval.pl = yyvsp[-1].p;
6899
6986
    break;
6900
6987
 
6901
6988
  case 227:
6902
 
#line 3962 "parser.y"
 
6989
#line 4070 "parser.y"
6903
6990
    { yyval.pl = 0; }
6904
6991
    break;
6905
6992
 
6906
6993
  case 228:
6907
 
#line 3966 "parser.y"
 
6994
#line 4074 "parser.y"
6908
6995
    {
6909
6996
                   SwigType_push(yyvsp[-1].type,yyvsp[0].decl.type);
6910
6997
                   yyval.p = NewParm(yyvsp[-1].type,yyvsp[0].decl.id);
6917
7004
    break;
6918
7005
 
6919
7006
  case 229:
6920
 
#line 3976 "parser.y"
 
7007
#line 4084 "parser.y"
6921
7008
    {
6922
7009
                  yyval.p = NewParm(NewStringf("template<class> %s %s", yyvsp[-1].id,yyvsp[0].str), 0);
6923
7010
                  Setfile(yyval.p,cparse_file);
6926
7013
    break;
6927
7014
 
6928
7015
  case 230:
6929
 
#line 3981 "parser.y"
 
7016
#line 4089 "parser.y"
6930
7017
    {
6931
7018
                  SwigType *t = NewString("v(...)");
6932
7019
                  yyval.p = NewParm(t, 0);
6936
7023
    break;
6937
7024
 
6938
7025
  case 231:
6939
 
#line 3989 "parser.y"
 
7026
#line 4097 "parser.y"
6940
7027
    {
6941
7028
                 Parm *p;
6942
7029
                 yyval.p = yyvsp[0].p;
6951
7038
    break;
6952
7039
 
6953
7040
  case 232:
6954
 
#line 4002 "parser.y"
 
7041
#line 4110 "parser.y"
6955
7042
    {
6956
7043
                  if (1) { 
6957
7044
                    set_nextSibling(yyvsp[-1].p,yyvsp[0].p);
6963
7050
    break;
6964
7051
 
6965
7052
  case 233:
6966
 
#line 4010 "parser.y"
 
7053
#line 4118 "parser.y"
6967
7054
    { yyval.p = 0; }
6968
7055
    break;
6969
7056
 
6970
7057
  case 234:
6971
 
#line 4013 "parser.y"
 
7058
#line 4121 "parser.y"
6972
7059
    {
6973
7060
                 set_nextSibling(yyvsp[-1].p,yyvsp[0].p);
6974
7061
                 yyval.p = yyvsp[-1].p;
6976
7063
    break;
6977
7064
 
6978
7065
  case 235:
6979
 
#line 4017 "parser.y"
 
7066
#line 4125 "parser.y"
6980
7067
    { yyval.p = 0; }
6981
7068
    break;
6982
7069
 
6983
7070
  case 236:
6984
 
#line 4021 "parser.y"
 
7071
#line 4129 "parser.y"
6985
7072
    {
6986
7073
                  yyval.p = yyvsp[0].p;
6987
7074
                  {
7011
7098
    break;
7012
7099
 
7013
7100
  case 237:
7014
 
#line 4047 "parser.y"
 
7101
#line 4155 "parser.y"
7015
7102
    {
7016
7103
                  yyval.p = NewParm(0,0);
7017
7104
                  Setfile(yyval.p,cparse_file);
7021
7108
    break;
7022
7109
 
7023
7110
  case 238:
7024
 
#line 4053 "parser.y"
 
7111
#line 4161 "parser.y"
7025
7112
    {
7026
7113
                  yyval.p = NewParm(0,0);
7027
7114
                  Setfile(yyval.p,cparse_file);
7031
7118
    break;
7032
7119
 
7033
7120
  case 239:
7034
 
#line 4061 "parser.y"
 
7121
#line 4169 "parser.y"
7035
7122
    { 
7036
7123
                  yyval.dtype = yyvsp[0].dtype; 
7037
7124
                  if (yyvsp[0].dtype.type == T_ERROR) {
7046
7133
    break;
7047
7134
 
7048
7135
  case 240:
7049
 
#line 4072 "parser.y"
 
7136
#line 4180 "parser.y"
7050
7137
    {
7051
7138
                 Node *n = Swig_symbol_clookup(yyvsp[0].decl.id,0);
7052
7139
                 if (n) {
7071
7158
    break;
7072
7159
 
7073
7160
  case 241:
7074
 
#line 4093 "parser.y"
 
7161
#line 4201 "parser.y"
7075
7162
    {
7076
7163
                 skip_balanced('{','}');
7077
7164
                 yyval.dtype.val = 0;
7084
7171
    break;
7085
7172
 
7086
7173
  case 242:
7087
 
#line 4102 "parser.y"
 
7174
#line 4210 "parser.y"
7088
7175
    { 
7089
7176
                 yyval.dtype.val = 0;
7090
7177
                 yyval.dtype.rawval = 0;
7096
7183
    break;
7097
7184
 
7098
7185
  case 243:
7099
 
#line 4110 "parser.y"
 
7186
#line 4218 "parser.y"
7100
7187
    {
7101
7188
                 yyval.dtype.val = 0;
7102
7189
                 yyval.dtype.rawval = 0;
7108
7195
    break;
7109
7196
 
7110
7197
  case 244:
7111
 
#line 4120 "parser.y"
 
7198
#line 4228 "parser.y"
7112
7199
    {
7113
7200
                 yyval.decl = yyvsp[-1].decl;
7114
7201
                 yyval.decl.defarg = yyvsp[0].dtype.rawval ? yyvsp[0].dtype.rawval : yyvsp[0].dtype.val;
7116
7203
    break;
7117
7204
 
7118
7205
  case 245:
7119
 
#line 4124 "parser.y"
 
7206
#line 4232 "parser.y"
7120
7207
    {
7121
7208
              yyval.decl = yyvsp[-1].decl;
7122
7209
              yyval.decl.defarg = yyvsp[0].dtype.rawval ? yyvsp[0].dtype.rawval : yyvsp[0].dtype.val;
7124
7211
    break;
7125
7212
 
7126
7213
  case 246:
7127
 
#line 4128 "parser.y"
 
7214
#line 4236 "parser.y"
7128
7215
    {
7129
7216
              yyval.decl.type = 0;
7130
7217
              yyval.decl.id = 0;
7133
7220
    break;
7134
7221
 
7135
7222
  case 247:
7136
 
#line 4135 "parser.y"
 
7223
#line 4243 "parser.y"
7137
7224
    {
7138
7225
                 yyval.decl = yyvsp[0].decl;
7139
7226
                 if (SwigType_isfunction(yyvsp[0].decl.type)) {
7154
7241
    break;
7155
7242
 
7156
7243
  case 248:
7157
 
#line 4152 "parser.y"
 
7244
#line 4260 "parser.y"
7158
7245
    {
7159
7246
              yyval.decl = yyvsp[0].decl;
7160
7247
              if (SwigType_isfunction(yyvsp[0].decl.type)) {
7175
7262
    break;
7176
7263
 
7177
7264
  case 249:
7178
 
#line 4169 "parser.y"
 
7265
#line 4277 "parser.y"
7179
7266
    {
7180
7267
              yyval.decl.type = 0;
7181
7268
              yyval.decl.id = 0;
7184
7271
    break;
7185
7272
 
7186
7273
  case 250:
7187
 
#line 4177 "parser.y"
 
7274
#line 4285 "parser.y"
7188
7275
    {
7189
7276
              yyval.decl = yyvsp[0].decl;
7190
7277
              if (yyval.decl.type) {
7196
7283
    break;
7197
7284
 
7198
7285
  case 251:
7199
 
#line 4185 "parser.y"
 
7286
#line 4293 "parser.y"
7200
7287
    {
7201
7288
              yyval.decl = yyvsp[0].decl;
7202
7289
              SwigType_add_reference(yyvsp[-2].type);
7209
7296
    break;
7210
7297
 
7211
7298
  case 252:
7212
 
#line 4194 "parser.y"
 
7299
#line 4302 "parser.y"
7213
7300
    {
7214
7301
              yyval.decl = yyvsp[0].decl;
7215
7302
              if (!yyval.decl.type) yyval.decl.type = NewString("");
7217
7304
    break;
7218
7305
 
7219
7306
  case 253:
7220
 
#line 4198 "parser.y"
 
7307
#line 4306 "parser.y"
7221
7308
    { 
7222
7309
             yyval.decl = yyvsp[0].decl;
7223
7310
             yyval.decl.type = NewString("");
7230
7317
    break;
7231
7318
 
7232
7319
  case 254:
7233
 
#line 4207 "parser.y"
 
7320
#line 4315 "parser.y"
7234
7321
    { 
7235
7322
             SwigType *t = NewString("");
7236
7323
 
7245
7332
    break;
7246
7333
 
7247
7334
  case 255:
7248
 
#line 4218 "parser.y"
 
7335
#line 4326 "parser.y"
7249
7336
    { 
7250
7337
             SwigType *t = NewString("");
7251
7338
             yyval.decl = yyvsp[0].decl;
7261
7348
    break;
7262
7349
 
7263
7350
  case 256:
7264
 
#line 4230 "parser.y"
 
7351
#line 4338 "parser.y"
7265
7352
    { 
7266
7353
             yyval.decl = yyvsp[0].decl;
7267
7354
             SwigType_add_memberpointer(yyvsp[-4].type,yyvsp[-3].str);
7275
7362
    break;
7276
7363
 
7277
7364
  case 257:
7278
 
#line 4240 "parser.y"
 
7365
#line 4348 "parser.y"
7279
7366
    { 
7280
7367
             SwigType *t = NewString("");
7281
7368
             yyval.decl = yyvsp[0].decl;
7290
7377
    break;
7291
7378
 
7292
7379
  case 258:
7293
 
#line 4253 "parser.y"
 
7380
#line 4361 "parser.y"
7294
7381
    {
7295
7382
                /* Note: This is non-standard C.  Template declarator is allowed to follow an identifier */
7296
7383
                 yyval.decl.id = Char(yyvsp[0].str);
7301
7388
    break;
7302
7389
 
7303
7390
  case 259:
7304
 
#line 4260 "parser.y"
 
7391
#line 4368 "parser.y"
7305
7392
    {
7306
7393
                  yyval.decl.id = Char(NewStringf("~%s",yyvsp[0].str));
7307
7394
                  yyval.decl.type = 0;
7311
7398
    break;
7312
7399
 
7313
7400
  case 260:
7314
 
#line 4268 "parser.y"
 
7401
#line 4376 "parser.y"
7315
7402
    {
7316
7403
                  yyval.decl.id = Char(yyvsp[-1].str);
7317
7404
                  yyval.decl.type = 0;
7321
7408
    break;
7322
7409
 
7323
7410
  case 261:
7324
 
#line 4284 "parser.y"
 
7411
#line 4392 "parser.y"
7325
7412
    {
7326
7413
                    yyval.decl = yyvsp[-1].decl;
7327
7414
                    if (yyval.decl.type) {
7333
7420
    break;
7334
7421
 
7335
7422
  case 262:
7336
 
#line 4292 "parser.y"
 
7423
#line 4400 "parser.y"
7337
7424
    {
7338
7425
                    SwigType *t;
7339
7426
                    yyval.decl = yyvsp[-1].decl;
7348
7435
    break;
7349
7436
 
7350
7437
  case 263:
7351
 
#line 4303 "parser.y"
 
7438
#line 4411 "parser.y"
7352
7439
    { 
7353
7440
                    SwigType *t;
7354
7441
                    yyval.decl = yyvsp[-2].decl;
7363
7450
    break;
7364
7451
 
7365
7452
  case 264:
7366
 
#line 4314 "parser.y"
 
7453
#line 4422 "parser.y"
7367
7454
    { 
7368
7455
                    SwigType *t;
7369
7456
                    yyval.decl = yyvsp[-3].decl;
7378
7465
    break;
7379
7466
 
7380
7467
  case 265:
7381
 
#line 4325 "parser.y"
 
7468
#line 4433 "parser.y"
7382
7469
    {
7383
7470
                    SwigType *t;
7384
7471
                    yyval.decl = yyvsp[-3].decl;
7399
7486
    break;
7400
7487
 
7401
7488
  case 266:
7402
 
#line 4344 "parser.y"
 
7489
#line 4452 "parser.y"
7403
7490
    {
7404
7491
                /* Note: This is non-standard C.  Template declarator is allowed to follow an identifier */
7405
7492
                 yyval.decl.id = Char(yyvsp[0].str);
7410
7497
    break;
7411
7498
 
7412
7499
  case 267:
7413
 
#line 4352 "parser.y"
 
7500
#line 4460 "parser.y"
7414
7501
    {
7415
7502
                  yyval.decl.id = Char(NewStringf("~%s",yyvsp[0].str));
7416
7503
                  yyval.decl.type = 0;
7420
7507
    break;
7421
7508
 
7422
7509
  case 268:
7423
 
#line 4369 "parser.y"
 
7510
#line 4477 "parser.y"
7424
7511
    {
7425
7512
                    yyval.decl = yyvsp[-1].decl;
7426
7513
                    if (yyval.decl.type) {
7432
7519
    break;
7433
7520
 
7434
7521
  case 269:
7435
 
#line 4377 "parser.y"
 
7522
#line 4485 "parser.y"
7436
7523
    {
7437
7524
                    yyval.decl = yyvsp[-1].decl;
7438
7525
                    if (!yyval.decl.type) {
7443
7530
    break;
7444
7531
 
7445
7532
  case 270:
7446
 
#line 4384 "parser.y"
 
7533
#line 4492 "parser.y"
7447
7534
    {
7448
7535
                    SwigType *t;
7449
7536
                    yyval.decl = yyvsp[-1].decl;
7458
7545
    break;
7459
7546
 
7460
7547
  case 271:
7461
 
#line 4395 "parser.y"
 
7548
#line 4503 "parser.y"
7462
7549
    { 
7463
7550
                    SwigType *t;
7464
7551
                    yyval.decl = yyvsp[-2].decl;
7473
7560
    break;
7474
7561
 
7475
7562
  case 272:
7476
 
#line 4406 "parser.y"
 
7563
#line 4514 "parser.y"
7477
7564
    { 
7478
7565
                    SwigType *t;
7479
7566
                    yyval.decl = yyvsp[-3].decl;
7488
7575
    break;
7489
7576
 
7490
7577
  case 273:
7491
 
#line 4417 "parser.y"
 
7578
#line 4525 "parser.y"
7492
7579
    {
7493
7580
                    SwigType *t;
7494
7581
                    yyval.decl = yyvsp[-3].decl;
7509
7596
    break;
7510
7597
 
7511
7598
  case 274:
7512
 
#line 4436 "parser.y"
 
7599
#line 4544 "parser.y"
7513
7600
    {
7514
7601
                    yyval.decl.type = yyvsp[0].type;
7515
7602
                    yyval.decl.id = 0;
7519
7606
    break;
7520
7607
 
7521
7608
  case 275:
7522
 
#line 4442 "parser.y"
 
7609
#line 4550 "parser.y"
7523
7610
    { 
7524
7611
                     yyval.decl = yyvsp[0].decl;
7525
7612
                     SwigType_push(yyvsp[-1].type,yyvsp[0].decl.type);
7529
7616
    break;
7530
7617
 
7531
7618
  case 276:
7532
 
#line 4448 "parser.y"
 
7619
#line 4556 "parser.y"
7533
7620
    {
7534
7621
                    yyval.decl.type = yyvsp[-1].type;
7535
7622
                    SwigType_add_reference(yyval.decl.type);
7540
7627
    break;
7541
7628
 
7542
7629
  case 277:
7543
 
#line 4455 "parser.y"
 
7630
#line 4563 "parser.y"
7544
7631
    {
7545
7632
                    yyval.decl = yyvsp[0].decl;
7546
7633
                    SwigType_add_reference(yyvsp[-2].type);
7553
7640
    break;
7554
7641
 
7555
7642
  case 278:
7556
 
#line 4464 "parser.y"
 
7643
#line 4572 "parser.y"
7557
7644
    {
7558
7645
                    yyval.decl = yyvsp[0].decl;
7559
7646
                  }
7560
7647
    break;
7561
7648
 
7562
7649
  case 279:
7563
 
#line 4467 "parser.y"
 
7650
#line 4575 "parser.y"
7564
7651
    {
7565
7652
                    yyval.decl = yyvsp[0].decl;
7566
7653
                    yyval.decl.type = NewString("");
7573
7660
    break;
7574
7661
 
7575
7662
  case 280:
7576
 
#line 4476 "parser.y"
 
7663
#line 4584 "parser.y"
7577
7664
    { 
7578
7665
                    yyval.decl.id = 0;
7579
7666
                    yyval.decl.parms = 0;
7584
7671
    break;
7585
7672
 
7586
7673
  case 281:
7587
 
#line 4483 "parser.y"
 
7674
#line 4591 "parser.y"
7588
7675
    { 
7589
7676
                    yyval.decl.type = NewString("");
7590
7677
                    SwigType_add_memberpointer(yyval.decl.type,yyvsp[-1].str);
7595
7682
    break;
7596
7683
 
7597
7684
  case 282:
7598
 
#line 4490 "parser.y"
 
7685
#line 4598 "parser.y"
7599
7686
    { 
7600
7687
                    SwigType *t = NewString("");
7601
7688
                    yyval.decl.type = yyvsp[-2].type;
7609
7696
    break;
7610
7697
 
7611
7698
  case 283:
7612
 
#line 4500 "parser.y"
 
7699
#line 4608 "parser.y"
7613
7700
    { 
7614
7701
                    yyval.decl = yyvsp[0].decl;
7615
7702
                    SwigType_add_memberpointer(yyvsp[-3].type,yyvsp[-2].str);
7622
7709
    break;
7623
7710
 
7624
7711
  case 284:
7625
 
#line 4511 "parser.y"
 
7712
#line 4619 "parser.y"
7626
7713
    { 
7627
7714
                    SwigType *t;
7628
7715
                    yyval.decl = yyvsp[-2].decl;
7637
7724
    break;
7638
7725
 
7639
7726
  case 285:
7640
 
#line 4522 "parser.y"
 
7727
#line 4630 "parser.y"
7641
7728
    { 
7642
7729
                    SwigType *t;
7643
7730
                    yyval.decl = yyvsp[-3].decl;
7652
7739
    break;
7653
7740
 
7654
7741
  case 286:
7655
 
#line 4533 "parser.y"
 
7742
#line 4641 "parser.y"
7656
7743
    { 
7657
7744
                    yyval.decl.type = NewString("");
7658
7745
                    yyval.decl.id = 0;
7663
7750
    break;
7664
7751
 
7665
7752
  case 287:
7666
 
#line 4540 "parser.y"
 
7753
#line 4648 "parser.y"
7667
7754
    { 
7668
7755
                    yyval.decl.type = NewString("");
7669
7756
                    yyval.decl.id = 0;
7674
7761
    break;
7675
7762
 
7676
7763
  case 288:
7677
 
#line 4547 "parser.y"
 
7764
#line 4655 "parser.y"
7678
7765
    {
7679
7766
                    yyval.decl = yyvsp[-1].decl;
7680
7767
                  }
7681
7768
    break;
7682
7769
 
7683
7770
  case 289:
7684
 
#line 4550 "parser.y"
 
7771
#line 4658 "parser.y"
7685
7772
    {
7686
7773
                    SwigType *t;
7687
7774
                    yyval.decl = yyvsp[-3].decl;
7702
7789
    break;
7703
7790
 
7704
7791
  case 290:
7705
 
#line 4567 "parser.y"
 
7792
#line 4675 "parser.y"
7706
7793
    {
7707
7794
                    yyval.decl.type = NewString("");
7708
7795
                    SwigType_add_function(yyval.decl.type,yyvsp[-1].pl);
7713
7800
    break;
7714
7801
 
7715
7802
  case 291:
7716
 
#line 4577 "parser.y"
 
7803
#line 4685 "parser.y"
7717
7804
    { 
7718
7805
               yyval.type = NewString("");
7719
7806
               SwigType_add_pointer(yyval.type);
7724
7811
    break;
7725
7812
 
7726
7813
  case 292:
7727
 
#line 4584 "parser.y"
 
7814
#line 4692 "parser.y"
7728
7815
    {
7729
7816
             yyval.type = NewString("");
7730
7817
             SwigType_add_pointer(yyval.type);
7734
7821
    break;
7735
7822
 
7736
7823
  case 293:
7737
 
#line 4590 "parser.y"
 
7824
#line 4698 "parser.y"
7738
7825
    { 
7739
7826
                yyval.type = NewString("");     
7740
7827
                SwigType_add_pointer(yyval.type);
7743
7830
    break;
7744
7831
 
7745
7832
  case 294:
7746
 
#line 4595 "parser.y"
 
7833
#line 4703 "parser.y"
7747
7834
    {
7748
7835
              yyval.type = NewString("");
7749
7836
              SwigType_add_pointer(yyval.type);
7751
7838
    break;
7752
7839
 
7753
7840
  case 295:
7754
 
#line 4601 "parser.y"
 
7841
#line 4709 "parser.y"
7755
7842
    { 
7756
7843
                  yyval.str = NewString("");
7757
7844
                  if (yyvsp[0].id) SwigType_add_qualifier(yyval.str,yyvsp[0].id);
7759
7846
    break;
7760
7847
 
7761
7848
  case 296:
7762
 
#line 4605 "parser.y"
 
7849
#line 4713 "parser.y"
7763
7850
    { 
7764
7851
                  yyval.str = yyvsp[0].str; 
7765
7852
                  if (yyvsp[-1].id) SwigType_add_qualifier(yyval.str,yyvsp[-1].id);
7767
7854
    break;
7768
7855
 
7769
7856
  case 297:
7770
 
#line 4611 "parser.y"
 
7857
#line 4719 "parser.y"
7771
7858
    { yyval.id = "const"; }
7772
7859
    break;
7773
7860
 
7774
7861
  case 298:
7775
 
#line 4612 "parser.y"
 
7862
#line 4720 "parser.y"
7776
7863
    { yyval.id = "volatile"; }
7777
7864
    break;
7778
7865
 
7779
7866
  case 299:
7780
 
#line 4613 "parser.y"
 
7867
#line 4721 "parser.y"
7781
7868
    { yyval.id = 0; }
7782
7869
    break;
7783
7870
 
7784
7871
  case 300:
7785
 
#line 4619 "parser.y"
 
7872
#line 4727 "parser.y"
7786
7873
    {
7787
7874
                   yyval.type = yyvsp[0].type;
7788
7875
                   Replace(yyval.type,"typename ","", DOH_REPLACE_ANY);
7790
7877
    break;
7791
7878
 
7792
7879
  case 301:
7793
 
#line 4625 "parser.y"
 
7880
#line 4733 "parser.y"
7794
7881
    {
7795
7882
                   yyval.type = yyvsp[0].type;
7796
7883
                   SwigType_push(yyval.type,yyvsp[-1].str);
7798
7885
    break;
7799
7886
 
7800
7887
  case 302:
7801
 
#line 4629 "parser.y"
 
7888
#line 4737 "parser.y"
7802
7889
    { yyval.type = yyvsp[0].type; }
7803
7890
    break;
7804
7891
 
7805
7892
  case 303:
7806
 
#line 4632 "parser.y"
 
7893
#line 4740 "parser.y"
7807
7894
    { yyval.type = yyvsp[0].type;
7808
7895
                  /* Printf(stdout,"primitive = '%s'\n", $$);*/
7809
7896
                }
7810
7897
    break;
7811
7898
 
7812
7899
  case 304:
7813
 
#line 4635 "parser.y"
 
7900
#line 4743 "parser.y"
7814
7901
    { yyval.type = yyvsp[0].type; }
7815
7902
    break;
7816
7903
 
7817
7904
  case 305:
7818
 
#line 4636 "parser.y"
 
7905
#line 4744 "parser.y"
7819
7906
    { yyval.type = yyvsp[0].type; }
7820
7907
    break;
7821
7908
 
7822
7909
  case 306:
7823
 
#line 4637 "parser.y"
 
7910
#line 4745 "parser.y"
7824
7911
    { yyval.type = NewStringf("%s%s",yyvsp[-1].type,yyvsp[0].id); }
7825
7912
    break;
7826
7913
 
7827
7914
  case 307:
7828
 
#line 4638 "parser.y"
 
7915
#line 4746 "parser.y"
7829
7916
    { yyval.type = NewStringf("enum %s", yyvsp[0].str); }
7830
7917
    break;
7831
7918
 
7832
7919
  case 308:
7833
 
#line 4639 "parser.y"
 
7920
#line 4747 "parser.y"
7834
7921
    { yyval.type = yyvsp[0].type; }
7835
7922
    break;
7836
7923
 
7837
7924
  case 309:
7838
 
#line 4640 "parser.y"
 
7925
#line 4748 "parser.y"
7839
7926
    {
7840
7927
                  yyval.type = yyvsp[-1].type;
7841
7928
                  SwigType_push(yyval.type,yyvsp[0].str);
7843
7930
    break;
7844
7931
 
7845
7932
  case 310:
7846
 
#line 4645 "parser.y"
 
7933
#line 4753 "parser.y"
7847
7934
    {
7848
7935
                  yyval.type = yyvsp[0].str;
7849
7936
               }
7850
7937
    break;
7851
7938
 
7852
7939
  case 311:
7853
 
#line 4648 "parser.y"
 
7940
#line 4756 "parser.y"
7854
7941
    { 
7855
7942
                 yyval.type = NewStringf("%s %s", yyvsp[-1].id, yyvsp[0].str);
7856
7943
               }
7857
7944
    break;
7858
7945
 
7859
7946
  case 312:
7860
 
#line 4653 "parser.y"
 
7947
#line 4761 "parser.y"
7861
7948
    {
7862
7949
                 if (!yyvsp[0].ptype.type) yyvsp[0].ptype.type = NewString("int");
7863
7950
                 if (yyvsp[0].ptype.us) {
7884
7971
    break;
7885
7972
 
7886
7973
  case 313:
7887
 
#line 4678 "parser.y"
 
7974
#line 4786 "parser.y"
7888
7975
    { 
7889
7976
                 yyval.ptype = yyvsp[0].ptype;
7890
7977
               }
7891
7978
    break;
7892
7979
 
7893
7980
  case 314:
7894
 
#line 4681 "parser.y"
 
7981
#line 4789 "parser.y"
7895
7982
    {
7896
7983
                    if (yyvsp[-1].ptype.us && yyvsp[0].ptype.us) {
7897
7984
                      Swig_error(cparse_file, cparse_line, "Extra %s specifier.\n", yyvsp[0].ptype.us);
7946
8033
    break;
7947
8034
 
7948
8035
  case 315:
7949
 
#line 4735 "parser.y"
 
8036
#line 4843 "parser.y"
7950
8037
    { 
7951
8038
                    yyval.ptype.type = NewString("int");
7952
8039
                    yyval.ptype.us = 0;
7954
8041
    break;
7955
8042
 
7956
8043
  case 316:
7957
 
#line 4739 "parser.y"
 
8044
#line 4847 "parser.y"
7958
8045
    { 
7959
8046
                    yyval.ptype.type = NewString("short");
7960
8047
                    yyval.ptype.us = 0;
7962
8049
    break;
7963
8050
 
7964
8051
  case 317:
7965
 
#line 4743 "parser.y"
 
8052
#line 4851 "parser.y"
7966
8053
    { 
7967
8054
                    yyval.ptype.type = NewString("long");
7968
8055
                    yyval.ptype.us = 0;
7970
8057
    break;
7971
8058
 
7972
8059
  case 318:
7973
 
#line 4747 "parser.y"
 
8060
#line 4855 "parser.y"
7974
8061
    { 
7975
8062
                    yyval.ptype.type = NewString("char");
7976
8063
                    yyval.ptype.us = 0;
7978
8065
    break;
7979
8066
 
7980
8067
  case 319:
7981
 
#line 4751 "parser.y"
 
8068
#line 4859 "parser.y"
 
8069
    { 
 
8070
                    yyval.ptype.type = NewString("wchar_t");
 
8071
                    yyval.ptype.us = 0;
 
8072
                }
 
8073
    break;
 
8074
 
 
8075
  case 320:
 
8076
#line 4863 "parser.y"
7982
8077
    { 
7983
8078
                    yyval.ptype.type = NewString("float");
7984
8079
                    yyval.ptype.us = 0;
7985
8080
                }
7986
8081
    break;
7987
8082
 
7988
 
  case 320:
7989
 
#line 4755 "parser.y"
 
8083
  case 321:
 
8084
#line 4867 "parser.y"
7990
8085
    { 
7991
8086
                    yyval.ptype.type = NewString("double");
7992
8087
                    yyval.ptype.us = 0;
7993
8088
                }
7994
8089
    break;
7995
8090
 
7996
 
  case 321:
7997
 
#line 4759 "parser.y"
 
8091
  case 322:
 
8092
#line 4871 "parser.y"
7998
8093
    { 
7999
8094
                    yyval.ptype.us = NewString("signed");
8000
8095
                    yyval.ptype.type = 0;
8001
8096
                }
8002
8097
    break;
8003
8098
 
8004
 
  case 322:
8005
 
#line 4763 "parser.y"
 
8099
  case 323:
 
8100
#line 4875 "parser.y"
8006
8101
    { 
8007
8102
                    yyval.ptype.us = NewString("unsigned");
8008
8103
                    yyval.ptype.type = 0;
8009
8104
                }
8010
8105
    break;
8011
8106
 
8012
 
  case 323:
8013
 
#line 4767 "parser.y"
 
8107
  case 324:
 
8108
#line 4879 "parser.y"
8014
8109
    { 
8015
8110
                    yyval.ptype.type = NewString("complex");
8016
8111
                    yyval.ptype.us = 0;
8017
8112
                }
8018
8113
    break;
8019
8114
 
8020
 
  case 324:
8021
 
#line 4773 "parser.y"
 
8115
  case 325:
 
8116
#line 4885 "parser.y"
8022
8117
    { /* scanner_check_typedef(); */ }
8023
8118
    break;
8024
8119
 
8025
 
  case 325:
8026
 
#line 4773 "parser.y"
 
8120
  case 326:
 
8121
#line 4885 "parser.y"
8027
8122
    {
8028
8123
                   yyval.dtype = yyvsp[0].dtype;
8029
8124
                   if (yyval.dtype.type == T_STRING) {
8038
8133
                }
8039
8134
    break;
8040
8135
 
8041
 
  case 326:
8042
 
#line 4794 "parser.y"
 
8136
  case 327:
 
8137
#line 4906 "parser.y"
8043
8138
    {
8044
8139
                   yyval.dtype.val = NewString(yyvsp[0].str);
8045
8140
                   /*              $$.rawval = NewStringf("\'%(escape)s\'",$$.val); */
8056
8151
                 }
8057
8152
    break;
8058
8153
 
8059
 
  case 327:
8060
 
#line 4812 "parser.y"
8061
 
    { yyval.id = yyvsp[0].id; }
8062
 
    break;
8063
 
 
8064
8154
  case 328:
8065
 
#line 4813 "parser.y"
 
8155
#line 4924 "parser.y"
 
8156
    { yyval.id = yyvsp[0].id; }
 
8157
    break;
 
8158
 
 
8159
  case 329:
 
8160
#line 4925 "parser.y"
8066
8161
    { yyval.id = (char *) 0;}
8067
8162
    break;
8068
8163
 
8069
 
  case 329:
8070
 
#line 4816 "parser.y"
 
8164
  case 330:
 
8165
#line 4928 "parser.y"
8071
8166
    { 
8072
8167
 
8073
8168
                  /* Ignore if there is a trailing comma in the enum list */
8083
8178
               }
8084
8179
    break;
8085
8180
 
8086
 
  case 330:
8087
 
#line 4829 "parser.y"
 
8181
  case 331:
 
8182
#line 4941 "parser.y"
8088
8183
    { 
8089
8184
                   yyval.node = yyvsp[0].node; 
8090
8185
                   if (yyvsp[0].node) {
8093
8188
               }
8094
8189
    break;
8095
8190
 
8096
 
  case 331:
8097
 
#line 4837 "parser.y"
 
8191
  case 332:
 
8192
#line 4949 "parser.y"
8098
8193
    {
8099
8194
                   yyval.node = new_node("enumitem");
8100
8195
                   Setattr(yyval.node,"name",yyvsp[0].id);
8101
8196
                   Setattr(yyval.node,"type",NewSwigType(T_INT));
8102
 
                   Setattr(yyval.node,"feature:immutable","1");
 
8197
                   SetFlag(yyval.node,"feature:immutable");
8103
8198
                 }
8104
8199
    break;
8105
8200
 
8106
 
  case 332:
8107
 
#line 4843 "parser.y"
 
8201
  case 333:
 
8202
#line 4955 "parser.y"
8108
8203
    {
8109
8204
                   yyval.node = new_node("enumitem");
8110
8205
                   Setattr(yyval.node,"name",yyvsp[-2].id);
8116
8211
                     Setattr(yyval.node,"value",yyvsp[-2].id);
8117
8212
                     Setattr(yyval.node,"type",NewSwigType(T_INT));
8118
8213
                   }
8119
 
                   Setattr(yyval.node,"feature:immutable","1");
 
8214
                   SetFlag(yyval.node,"feature:immutable");
8120
8215
                 }
8121
8216
    break;
8122
8217
 
8123
 
  case 333:
8124
 
#line 4856 "parser.y"
8125
 
    { yyval.node = 0; }
8126
 
    break;
8127
 
 
8128
8218
  case 334:
8129
 
#line 4859 "parser.y"
 
8219
#line 4968 "parser.y"
 
8220
    { yyval.node = 0; }
 
8221
    break;
 
8222
 
 
8223
  case 335:
 
8224
#line 4971 "parser.y"
8130
8225
    {
8131
8226
                   yyval.dtype = yyvsp[0].dtype;
8132
8227
                   if ((yyval.dtype.type != T_INT) && (yyval.dtype.type != T_UINT) &&
8138
8233
                }
8139
8234
    break;
8140
8235
 
8141
 
  case 335:
8142
 
#line 4868 "parser.y"
 
8236
  case 336:
 
8237
#line 4980 "parser.y"
8143
8238
    {
8144
8239
                   yyval.dtype.val  = NewString(yyvsp[0].str);
8145
8240
                   yyval.dtype.type = T_INT;
8146
8241
                 }
8147
8242
    break;
8148
8243
 
8149
 
  case 336:
8150
 
#line 4879 "parser.y"
8151
 
    { yyval.dtype = yyvsp[0].dtype; }
8152
 
    break;
8153
 
 
8154
8244
  case 337:
8155
 
#line 4880 "parser.y"
 
8245
#line 4991 "parser.y"
 
8246
    { yyval.dtype = yyvsp[0].dtype; }
 
8247
    break;
 
8248
 
 
8249
  case 338:
 
8250
#line 4992 "parser.y"
8156
8251
    { 
8157
8252
                    yyval.dtype.val = NewString(yyvsp[0].id); 
8158
8253
                    yyval.dtype.type = T_STRING; 
8159
8254
               }
8160
8255
    break;
8161
8256
 
8162
 
  case 338:
8163
 
#line 4884 "parser.y"
 
8257
  case 339:
 
8258
#line 4996 "parser.y"
8164
8259
    {
8165
8260
                  SwigType_push(yyvsp[-2].type,yyvsp[-1].decl.type);
8166
8261
                  yyval.dtype.val = NewStringf("sizeof(%s)",SwigType_str(yyvsp[-2].type,0));
8168
8263
               }
8169
8264
    break;
8170
8265
 
8171
 
  case 339:
8172
 
#line 4889 "parser.y"
8173
 
    { yyval.dtype = yyvsp[0].dtype; }
8174
 
    break;
8175
 
 
8176
8266
  case 340:
8177
 
#line 4890 "parser.y"
 
8267
#line 5001 "parser.y"
 
8268
    { yyval.dtype = yyvsp[0].dtype; }
 
8269
    break;
 
8270
 
 
8271
  case 341:
 
8272
#line 5002 "parser.y"
8178
8273
    {
8179
8274
                 Node *n;
8180
8275
                 yyval.dtype.val = yyvsp[0].type;
8194
8289
               }
8195
8290
    break;
8196
8291
 
8197
 
  case 341:
8198
 
#line 4909 "parser.y"
 
8292
  case 342:
 
8293
#line 5021 "parser.y"
8199
8294
    {
8200
8295
                    yyval.dtype.val = NewStringf("(%s)",yyvsp[-1].dtype.val);
8201
8296
                    yyval.dtype.type = yyvsp[-1].dtype.type;
8202
8297
               }
8203
8298
    break;
8204
8299
 
8205
 
  case 342:
8206
 
#line 4916 "parser.y"
 
8300
  case 343:
 
8301
#line 5028 "parser.y"
8207
8302
    {
8208
8303
                 yyval.dtype = yyvsp[0].dtype;
8209
8304
                 if (yyvsp[0].dtype.type != T_STRING) {
8212
8307
               }
8213
8308
    break;
8214
8309
 
8215
 
  case 343:
8216
 
#line 4922 "parser.y"
 
8310
  case 344:
 
8311
#line 5034 "parser.y"
8217
8312
    {
8218
8313
                 yyval.dtype = yyvsp[0].dtype;
8219
8314
                 if (yyvsp[0].dtype.type != T_STRING) {
8223
8318
               }
8224
8319
    break;
8225
8320
 
8226
 
  case 344:
8227
 
#line 4929 "parser.y"
 
8321
  case 345:
 
8322
#line 5041 "parser.y"
8228
8323
    {
8229
8324
                 yyval.dtype = yyvsp[0].dtype;
8230
8325
                 if (yyvsp[0].dtype.type != T_STRING) {
8234
8329
               }
8235
8330
    break;
8236
8331
 
8237
 
  case 345:
8238
 
#line 4936 "parser.y"
 
8332
  case 346:
 
8333
#line 5048 "parser.y"
8239
8334
    {
8240
8335
                 yyval.dtype = yyvsp[0].dtype;
8241
8336
                 if (yyvsp[0].dtype.type != T_STRING) {
8246
8341
               }
8247
8342
    break;
8248
8343
 
8249
 
  case 346:
8250
 
#line 4946 "parser.y"
8251
 
    { yyval.dtype = yyvsp[0].dtype; }
8252
 
    break;
8253
 
 
8254
8344
  case 347:
8255
 
#line 4947 "parser.y"
 
8345
#line 5058 "parser.y"
8256
8346
    { yyval.dtype = yyvsp[0].dtype; }
8257
8347
    break;
8258
8348
 
8259
8349
  case 348:
8260
 
#line 4948 "parser.y"
 
8350
#line 5059 "parser.y"
8261
8351
    { yyval.dtype = yyvsp[0].dtype; }
8262
8352
    break;
8263
8353
 
8264
8354
  case 349:
8265
 
#line 4949 "parser.y"
 
8355
#line 5060 "parser.y"
8266
8356
    { yyval.dtype = yyvsp[0].dtype; }
8267
8357
    break;
8268
8358
 
8269
8359
  case 350:
8270
 
#line 4950 "parser.y"
 
8360
#line 5061 "parser.y"
8271
8361
    { yyval.dtype = yyvsp[0].dtype; }
8272
8362
    break;
8273
8363
 
8274
8364
  case 351:
8275
 
#line 4951 "parser.y"
 
8365
#line 5062 "parser.y"
8276
8366
    { yyval.dtype = yyvsp[0].dtype; }
8277
8367
    break;
8278
8368
 
8279
8369
  case 352:
8280
 
#line 4952 "parser.y"
 
8370
#line 5063 "parser.y"
8281
8371
    { yyval.dtype = yyvsp[0].dtype; }
8282
8372
    break;
8283
8373
 
8284
8374
  case 353:
8285
 
#line 4955 "parser.y"
 
8375
#line 5064 "parser.y"
 
8376
    { yyval.dtype = yyvsp[0].dtype; }
 
8377
    break;
 
8378
 
 
8379
  case 354:
 
8380
#line 5067 "parser.y"
8286
8381
    {
8287
8382
                 yyval.dtype.val = NewStringf("%s+%s",yyvsp[-2].dtype.val,yyvsp[0].dtype.val);
8288
8383
                 yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type);
8289
8384
               }
8290
8385
    break;
8291
8386
 
8292
 
  case 354:
8293
 
#line 4959 "parser.y"
 
8387
  case 355:
 
8388
#line 5071 "parser.y"
8294
8389
    {
8295
8390
                 yyval.dtype.val = NewStringf("%s-%s",yyvsp[-2].dtype.val,yyvsp[0].dtype.val);
8296
8391
                 yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type);
8297
8392
               }
8298
8393
    break;
8299
8394
 
8300
 
  case 355:
8301
 
#line 4963 "parser.y"
 
8395
  case 356:
 
8396
#line 5075 "parser.y"
8302
8397
    {
8303
8398
                 yyval.dtype.val = NewStringf("%s*%s",yyvsp[-2].dtype.val,yyvsp[0].dtype.val);
8304
8399
                 yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type);
8305
8400
               }
8306
8401
    break;
8307
8402
 
8308
 
  case 356:
8309
 
#line 4967 "parser.y"
 
8403
  case 357:
 
8404
#line 5079 "parser.y"
8310
8405
    {
8311
8406
                 yyval.dtype.val = NewStringf("%s/%s",yyvsp[-2].dtype.val,yyvsp[0].dtype.val);
8312
8407
                 yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type);
8313
8408
               }
8314
8409
    break;
8315
8410
 
8316
 
  case 357:
8317
 
#line 4971 "parser.y"
 
8411
  case 358:
 
8412
#line 5083 "parser.y"
8318
8413
    {
8319
8414
                 yyval.dtype.val = NewStringf("%s&%s",yyvsp[-2].dtype.val,yyvsp[0].dtype.val);
8320
8415
                 yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type);
8321
8416
               }
8322
8417
    break;
8323
8418
 
8324
 
  case 358:
8325
 
#line 4975 "parser.y"
 
8419
  case 359:
 
8420
#line 5087 "parser.y"
8326
8421
    {
8327
8422
                 yyval.dtype.val = NewStringf("%s|%s",yyvsp[-2].dtype.val,yyvsp[0].dtype.val);
8328
8423
                 yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type);
8329
8424
               }
8330
8425
    break;
8331
8426
 
8332
 
  case 359:
8333
 
#line 4979 "parser.y"
 
8427
  case 360:
 
8428
#line 5091 "parser.y"
8334
8429
    {
8335
8430
                 yyval.dtype.val = NewStringf("%s^%s",yyvsp[-2].dtype.val,yyvsp[0].dtype.val);
8336
8431
                 yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type);
8337
8432
               }
8338
8433
    break;
8339
8434
 
8340
 
  case 360:
8341
 
#line 4983 "parser.y"
 
8435
  case 361:
 
8436
#line 5095 "parser.y"
8342
8437
    {
8343
8438
                 yyval.dtype.val = NewStringf("%s<<%s",yyvsp[-2].dtype.val,yyvsp[0].dtype.val);
8344
8439
                 yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type);
8345
8440
               }
8346
8441
    break;
8347
8442
 
8348
 
  case 361:
8349
 
#line 4987 "parser.y"
 
8443
  case 362:
 
8444
#line 5099 "parser.y"
8350
8445
    {
8351
8446
                 yyval.dtype.val = NewStringf("%s>>%s",yyvsp[-2].dtype.val,yyvsp[0].dtype.val);
8352
8447
                 yyval.dtype.type = promote(yyvsp[-2].dtype.type,yyvsp[0].dtype.type);
8353
8448
               }
8354
8449
    break;
8355
8450
 
8356
 
  case 362:
8357
 
#line 4991 "parser.y"
 
8451
  case 363:
 
8452
#line 5103 "parser.y"
8358
8453
    {
8359
8454
                 yyval.dtype.val = NewStringf("%s&&%s",yyvsp[-2].dtype.val,yyvsp[0].dtype.val);
8360
8455
                 yyval.dtype.type = T_INT;
8361
8456
               }
8362
8457
    break;
8363
8458
 
8364
 
  case 363:
8365
 
#line 4995 "parser.y"
 
8459
  case 364:
 
8460
#line 5107 "parser.y"
8366
8461
    {
8367
8462
                 yyval.dtype.val = NewStringf("%s||%s",yyvsp[-2].dtype.val,yyvsp[0].dtype.val);
8368
8463
                 yyval.dtype.type = T_INT;
8369
8464
               }
8370
8465
    break;
8371
8466
 
8372
 
  case 364:
8373
 
#line 4999 "parser.y"
 
8467
  case 365:
 
8468
#line 5111 "parser.y"
8374
8469
    {
8375
8470
                 yyval.dtype.val = NewStringf("-%s",yyvsp[0].dtype.val);
8376
8471
                 yyval.dtype.type = yyvsp[0].dtype.type;
8377
8472
               }
8378
8473
    break;
8379
8474
 
8380
 
  case 365:
8381
 
#line 5003 "parser.y"
 
8475
  case 366:
 
8476
#line 5115 "parser.y"
8382
8477
    {
8383
8478
                 yyval.dtype.val = NewStringf("+%s",yyvsp[0].dtype.val);
8384
8479
                 yyval.dtype.type = yyvsp[0].dtype.type;
8385
8480
               }
8386
8481
    break;
8387
8482
 
8388
 
  case 366:
8389
 
#line 5007 "parser.y"
 
8483
  case 367:
 
8484
#line 5119 "parser.y"
8390
8485
    {
8391
8486
                 yyval.dtype.val = NewStringf("~%s",yyvsp[0].dtype.val);
8392
8487
                 yyval.dtype.type = yyvsp[0].dtype.type;
8393
8488
               }
8394
8489
    break;
8395
8490
 
8396
 
  case 367:
8397
 
#line 5011 "parser.y"
 
8491
  case 368:
 
8492
#line 5123 "parser.y"
8398
8493
    {
8399
8494
                 yyval.dtype.val = NewStringf("!%s",yyvsp[0].dtype.val);
8400
8495
                 yyval.dtype.type = T_INT;
8401
8496
               }
8402
8497
    break;
8403
8498
 
8404
 
  case 368:
8405
 
#line 5015 "parser.y"
 
8499
  case 369:
 
8500
#line 5127 "parser.y"
8406
8501
    {
8407
8502
                 skip_balanced('(',')');
8408
8503
                 yyvsp[-1].type = Swig_symbol_type_qualify(yyvsp[-1].type,0);
8415
8510
               }
8416
8511
    break;
8417
8512
 
8418
 
  case 369:
8419
 
#line 5027 "parser.y"
 
8513
  case 370:
 
8514
#line 5139 "parser.y"
8420
8515
    {
8421
8516
                 yyval.bases = yyvsp[0].bases;
8422
8517
               }
8423
8518
    break;
8424
8519
 
8425
 
  case 370:
8426
 
#line 5032 "parser.y"
 
8520
  case 371:
 
8521
#line 5144 "parser.y"
8427
8522
    { inherit_list = 1; }
8428
8523
    break;
8429
8524
 
8430
 
  case 371:
8431
 
#line 5032 "parser.y"
 
8525
  case 372:
 
8526
#line 5144 "parser.y"
8432
8527
    { yyval.bases = yyvsp[0].bases; inherit_list = 0; }
8433
8528
    break;
8434
8529
 
8435
 
  case 372:
8436
 
#line 5033 "parser.y"
 
8530
  case 373:
 
8531
#line 5145 "parser.y"
8437
8532
    { yyval.bases = 0; }
8438
8533
    break;
8439
8534
 
8440
 
  case 373:
8441
 
#line 5036 "parser.y"
 
8535
  case 374:
 
8536
#line 5148 "parser.y"
8442
8537
    {
8443
8538
                   Hash *list = NewHash();
8444
8539
                   Node *base = yyvsp[0].node;
8451
8546
               }
8452
8547
    break;
8453
8548
 
8454
 
  case 374:
8455
 
#line 5047 "parser.y"
 
8549
  case 375:
 
8550
#line 5159 "parser.y"
8456
8551
    {
8457
8552
                   Hash *list = yyvsp[-2].bases;
8458
8553
                   Node *base = yyvsp[0].node;
8462
8557
               }
8463
8558
    break;
8464
8559
 
8465
 
  case 375:
8466
 
#line 5056 "parser.y"
 
8560
  case 376:
 
8561
#line 5168 "parser.y"
8467
8562
    {
8468
8563
                 yyval.node = NewHash();
8469
8564
                 Setfile(yyval.node,cparse_file);
8479
8574
               }
8480
8575
    break;
8481
8576
 
8482
 
  case 376:
8483
 
#line 5069 "parser.y"
 
8577
  case 377:
 
8578
#line 5181 "parser.y"
8484
8579
    {
8485
8580
                 yyval.node = NewHash();
8486
8581
                 Setfile(yyval.node,cparse_file);
8494
8589
               }
8495
8590
    break;
8496
8591
 
8497
 
  case 377:
8498
 
#line 5082 "parser.y"
 
8592
  case 378:
 
8593
#line 5194 "parser.y"
8499
8594
    { yyval.id = (char*)"public"; }
8500
8595
    break;
8501
8596
 
8502
 
  case 378:
8503
 
#line 5083 "parser.y"
 
8597
  case 379:
 
8598
#line 5195 "parser.y"
8504
8599
    { yyval.id = (char*)"private"; }
8505
8600
    break;
8506
8601
 
8507
 
  case 379:
8508
 
#line 5084 "parser.y"
 
8602
  case 380:
 
8603
#line 5196 "parser.y"
8509
8604
    { yyval.id = (char*)"protected"; }
8510
8605
    break;
8511
8606
 
8512
 
  case 380:
8513
 
#line 5088 "parser.y"
 
8607
  case 381:
 
8608
#line 5200 "parser.y"
8514
8609
    { 
8515
8610
                   yyval.id = (char*)"class"; 
8516
8611
                   if (!inherit_list) last_cpptype = yyval.id;
8517
8612
               }
8518
8613
    break;
8519
8614
 
8520
 
  case 381:
8521
 
#line 5092 "parser.y"
 
8615
  case 382:
 
8616
#line 5204 "parser.y"
8522
8617
    { 
8523
8618
                   yyval.id = (char*)"struct"; 
8524
8619
                   if (!inherit_list) last_cpptype = yyval.id;
8525
8620
               }
8526
8621
    break;
8527
8622
 
8528
 
  case 382:
8529
 
#line 5096 "parser.y"
 
8623
  case 383:
 
8624
#line 5208 "parser.y"
8530
8625
    {
8531
8626
                   yyval.id = (char*)"union"; 
8532
8627
                   if (!inherit_list) last_cpptype = yyval.id;
8533
8628
               }
8534
8629
    break;
8535
8630
 
8536
 
  case 383:
8537
 
#line 5100 "parser.y"
 
8631
  case 384:
 
8632
#line 5212 "parser.y"
8538
8633
    { 
8539
8634
                   yyval.id = (char *)"typename"; 
8540
8635
                   if (!inherit_list) last_cpptype = yyval.id;
8541
8636
               }
8542
8637
    break;
8543
8638
 
8544
 
  case 386:
8545
 
#line 5110 "parser.y"
 
8639
  case 387:
 
8640
#line 5222 "parser.y"
8546
8641
    {
8547
8642
                    yyval.dtype.qualifier = yyvsp[0].str;
8548
8643
                    yyval.dtype.throws = 0;
8550
8645
               }
8551
8646
    break;
8552
8647
 
8553
 
  case 387:
8554
 
#line 5115 "parser.y"
 
8648
  case 388:
 
8649
#line 5227 "parser.y"
8555
8650
    {
8556
8651
                    yyval.dtype.qualifier = 0;
8557
8652
                    yyval.dtype.throws = yyvsp[-1].pl;
8559
8654
               }
8560
8655
    break;
8561
8656
 
8562
 
  case 388:
8563
 
#line 5120 "parser.y"
 
8657
  case 389:
 
8658
#line 5232 "parser.y"
8564
8659
    {
8565
8660
                    yyval.dtype.qualifier = yyvsp[-4].str;
8566
8661
                    yyval.dtype.throws = yyvsp[-1].pl;
8568
8663
               }
8569
8664
    break;
8570
8665
 
8571
 
  case 389:
8572
 
#line 5125 "parser.y"
 
8666
  case 390:
 
8667
#line 5237 "parser.y"
8573
8668
    { 
8574
8669
                    yyval.dtype.qualifier = 0; 
8575
8670
                    yyval.dtype.throws = 0;
8577
8672
               }
8578
8673
    break;
8579
8674
 
8580
 
  case 390:
8581
 
#line 5132 "parser.y"
 
8675
  case 391:
 
8676
#line 5244 "parser.y"
8582
8677
    { 
8583
8678
                    Clear(scanner_ccode); 
8584
8679
                    yyval.decl.have_parms = 0; 
8588
8683
               }
8589
8684
    break;
8590
8685
 
8591
 
  case 391:
8592
 
#line 5139 "parser.y"
 
8686
  case 392:
 
8687
#line 5251 "parser.y"
8593
8688
    { 
8594
8689
                    skip_balanced('{','}'); 
8595
8690
                    yyval.decl.have_parms = 0; 
8599
8694
               }
8600
8695
    break;
8601
8696
 
8602
 
  case 392:
8603
 
#line 5146 "parser.y"
 
8697
  case 393:
 
8698
#line 5258 "parser.y"
8604
8699
    { 
8605
8700
                    Clear(scanner_ccode); 
8606
8701
                    yyval.decl.parms = yyvsp[-2].pl; 
8611
8706
               }
8612
8707
    break;
8613
8708
 
8614
 
  case 393:
8615
 
#line 5154 "parser.y"
8616
 
    {
8617
 
                    skip_balanced('{','}'); 
8618
 
                    yyval.decl.parms = yyvsp[-2].pl; 
8619
 
                    yyval.decl.have_parms = 1; 
8620
 
                    yyval.decl.defarg = 0; 
8621
 
                    yyval.decl.throws = 0;
8622
 
                    yyval.decl.throw = 0;
8623
 
               }
8624
 
    break;
8625
 
 
8626
8709
  case 394:
8627
 
#line 5162 "parser.y"
 
8710
#line 5266 "parser.y"
 
8711
    {
 
8712
                    skip_balanced('{','}'); 
 
8713
                    yyval.decl.parms = yyvsp[-2].pl; 
 
8714
                    yyval.decl.have_parms = 1; 
 
8715
                    yyval.decl.defarg = 0; 
 
8716
                    yyval.decl.throws = 0;
 
8717
                    yyval.decl.throw = 0;
 
8718
               }
 
8719
    break;
 
8720
 
 
8721
  case 395:
 
8722
#line 5274 "parser.y"
8628
8723
    { 
8629
8724
                    yyval.decl.have_parms = 0; 
8630
8725
                    yyval.decl.defarg = yyvsp[-1].dtype.val; 
8633
8728
               }
8634
8729
    break;
8635
8730
 
8636
 
  case 399:
8637
 
#line 5178 "parser.y"
 
8731
  case 400:
 
8732
#line 5290 "parser.y"
8638
8733
    {
8639
8734
                    skip_balanced('(',')');
8640
8735
                    Clear(scanner_ccode);
8641
8736
                }
8642
8737
    break;
8643
8738
 
8644
 
  case 400:
8645
 
#line 5184 "parser.y"
 
8739
  case 401:
 
8740
#line 5296 "parser.y"
8646
8741
    { 
8647
8742
                     String *s = NewString("");
8648
8743
                     SwigType_add_template(s,yyvsp[-1].p);
8651
8746
                 }
8652
8747
    break;
8653
8748
 
8654
 
  case 401:
8655
 
#line 5190 "parser.y"
 
8749
  case 402:
 
8750
#line 5302 "parser.y"
8656
8751
    { yyval.id = (char*)"";  }
8657
8752
    break;
8658
8753
 
8659
 
  case 402:
8660
 
#line 5193 "parser.y"
8661
 
    { yyval.id = yyvsp[0].id; }
8662
 
    break;
8663
 
 
8664
8754
  case 403:
8665
 
#line 5194 "parser.y"
 
8755
#line 5305 "parser.y"
8666
8756
    { yyval.id = yyvsp[0].id; }
8667
8757
    break;
8668
8758
 
8669
8759
  case 404:
8670
 
#line 5197 "parser.y"
 
8760
#line 5306 "parser.y"
8671
8761
    { yyval.id = yyvsp[0].id; }
8672
8762
    break;
8673
8763
 
8674
8764
  case 405:
8675
 
#line 5198 "parser.y"
8676
 
    { yyval.id = 0; }
 
8765
#line 5309 "parser.y"
 
8766
    { yyval.id = yyvsp[0].id; }
8677
8767
    break;
8678
8768
 
8679
8769
  case 406:
8680
 
#line 5201 "parser.y"
 
8770
#line 5310 "parser.y"
 
8771
    { yyval.id = 0; }
 
8772
    break;
 
8773
 
 
8774
  case 407:
 
8775
#line 5313 "parser.y"
8681
8776
    { 
8682
8777
                  yyval.str = 0;
8683
8778
                  if (!yyval.str) yyval.str = NewStringf("%s%s", yyvsp[-1].str,yyvsp[0].str);
8685
8780
               }
8686
8781
    break;
8687
8782
 
8688
 
  case 407:
8689
 
#line 5206 "parser.y"
 
8783
  case 408:
 
8784
#line 5318 "parser.y"
8690
8785
    { 
8691
8786
                 yyval.str = NewStringf("::%s%s",yyvsp[-1].str,yyvsp[0].str);
8692
8787
                 Delete(yyvsp[0].str);
8693
8788
               }
8694
8789
    break;
8695
8790
 
8696
 
  case 408:
8697
 
#line 5210 "parser.y"
 
8791
  case 409:
 
8792
#line 5322 "parser.y"
8698
8793
    {
8699
8794
                 yyval.str = NewString(yyvsp[0].str);
8700
8795
               }
8701
8796
    break;
8702
8797
 
8703
 
  case 409:
8704
 
#line 5213 "parser.y"
 
8798
  case 410:
 
8799
#line 5325 "parser.y"
8705
8800
    {
8706
8801
                 yyval.str = NewStringf("::%s",yyvsp[0].str);
8707
8802
               }
8708
8803
    break;
8709
8804
 
8710
 
  case 410:
8711
 
#line 5216 "parser.y"
8712
 
    {
8713
 
                 yyval.str = NewString(yyvsp[0].str);
8714
 
               }
8715
 
    break;
8716
 
 
8717
8805
  case 411:
8718
 
#line 5219 "parser.y"
 
8806
#line 5328 "parser.y"
8719
8807
    {
8720
 
                 yyval.str = NewStringf("::%s",yyvsp[0].str);
8721
 
               }
 
8808
                 yyval.str = NewString(yyvsp[0].str);
 
8809
               }
8722
8810
    break;
8723
8811
 
8724
8812
  case 412:
8725
 
#line 5224 "parser.y"
 
8813
#line 5331 "parser.y"
 
8814
    {
 
8815
                 yyval.str = NewStringf("::%s",yyvsp[0].str);
 
8816
               }
 
8817
    break;
 
8818
 
 
8819
  case 413:
 
8820
#line 5336 "parser.y"
8726
8821
    {
8727
8822
                   yyval.str = NewStringf("::%s%s",yyvsp[-1].str,yyvsp[0].str);
8728
8823
                   Delete(yyvsp[0].str);
8729
8824
               }
8730
8825
    break;
8731
8826
 
8732
 
  case 413:
8733
 
#line 5228 "parser.y"
8734
 
    {
8735
 
                   yyval.str = NewStringf("::%s",yyvsp[0].str);
8736
 
               }
8737
 
    break;
8738
 
 
8739
8827
  case 414:
8740
 
#line 5231 "parser.y"
 
8828
#line 5340 "parser.y"
8741
8829
    {
8742
8830
                   yyval.str = NewStringf("::%s",yyvsp[0].str);
8743
8831
               }
8744
8832
    break;
8745
8833
 
8746
8834
  case 415:
8747
 
#line 5238 "parser.y"
 
8835
#line 5343 "parser.y"
 
8836
    {
 
8837
                   yyval.str = NewStringf("::%s",yyvsp[0].str);
 
8838
               }
 
8839
    break;
 
8840
 
 
8841
  case 416:
 
8842
#line 5350 "parser.y"
8748
8843
    {
8749
8844
                 yyval.str = NewStringf("::~%s",yyvsp[0].str);
8750
8845
               }
8751
8846
    break;
8752
8847
 
8753
 
  case 416:
8754
 
#line 5244 "parser.y"
 
8848
  case 417:
 
8849
#line 5356 "parser.y"
8755
8850
    {
8756
8851
                  yyval.str = NewStringf("%s%s",yyvsp[-1].id,yyvsp[0].id);
8757
8852
                  /*              if (Len($2)) {
8760
8855
              }
8761
8856
    break;
8762
8857
 
8763
 
  case 417:
8764
 
#line 5253 "parser.y"
 
8858
  case 418:
 
8859
#line 5365 "parser.y"
8765
8860
    { 
8766
8861
                  yyval.str = 0;
8767
8862
                  if (!yyval.str) yyval.str = NewStringf("%s%s", yyvsp[-1].id,yyvsp[0].str);
8769
8864
               }
8770
8865
    break;
8771
8866
 
8772
 
  case 418:
8773
 
#line 5258 "parser.y"
 
8867
  case 419:
 
8868
#line 5370 "parser.y"
8774
8869
    { 
8775
8870
                 yyval.str = NewStringf("::%s%s",yyvsp[-1].id,yyvsp[0].str);
8776
8871
                 Delete(yyvsp[0].str);
8777
8872
               }
8778
8873
    break;
8779
8874
 
8780
 
  case 419:
8781
 
#line 5262 "parser.y"
8782
 
    {
8783
 
                 yyval.str = NewString(yyvsp[0].id);
8784
 
               }
8785
 
    break;
8786
 
 
8787
8875
  case 420:
8788
 
#line 5265 "parser.y"
 
8876
#line 5374 "parser.y"
 
8877
    {
 
8878
                 yyval.str = NewString(yyvsp[0].id);
 
8879
               }
 
8880
    break;
 
8881
 
 
8882
  case 421:
 
8883
#line 5377 "parser.y"
8789
8884
    {
8790
8885
                 yyval.str = NewStringf("::%s",yyvsp[0].id);
8791
8886
               }
8792
8887
    break;
8793
8888
 
8794
 
  case 421:
8795
 
#line 5268 "parser.y"
8796
 
    {
8797
 
                 yyval.str = NewString(yyvsp[0].str);
8798
 
               }
8799
 
    break;
8800
 
 
8801
8889
  case 422:
8802
 
#line 5271 "parser.y"
 
8890
#line 5380 "parser.y"
8803
8891
    {
8804
 
                 yyval.str = NewStringf("::%s",yyvsp[0].str);
8805
 
               }
 
8892
                 yyval.str = NewString(yyvsp[0].str);
 
8893
               }
8806
8894
    break;
8807
8895
 
8808
8896
  case 423:
8809
 
#line 5276 "parser.y"
 
8897
#line 5383 "parser.y"
 
8898
    {
 
8899
                 yyval.str = NewStringf("::%s",yyvsp[0].str);
 
8900
               }
 
8901
    break;
 
8902
 
 
8903
  case 424:
 
8904
#line 5388 "parser.y"
8810
8905
    {
8811
8906
                   yyval.str = NewStringf("::%s%s",yyvsp[-1].id,yyvsp[0].str);
8812
8907
                   Delete(yyvsp[0].str);
8813
8908
               }
8814
8909
    break;
8815
8910
 
8816
 
  case 424:
8817
 
#line 5280 "parser.y"
 
8911
  case 425:
 
8912
#line 5392 "parser.y"
8818
8913
    {
8819
8914
                   yyval.str = NewStringf("::%s",yyvsp[0].id);
8820
8915
               }
8821
8916
    break;
8822
8917
 
8823
 
  case 425:
8824
 
#line 5283 "parser.y"
8825
 
    {
8826
 
                   yyval.str = NewStringf("::%s",yyvsp[0].str);
8827
 
               }
8828
 
    break;
8829
 
 
8830
8918
  case 426:
8831
 
#line 5286 "parser.y"
 
8919
#line 5395 "parser.y"
 
8920
    {
 
8921
                   yyval.str = NewStringf("::%s",yyvsp[0].str);
 
8922
               }
 
8923
    break;
 
8924
 
 
8925
  case 427:
 
8926
#line 5398 "parser.y"
8832
8927
    {
8833
8928
                 yyval.str = NewStringf("::~%s",yyvsp[0].id);
8834
8929
               }
8835
8930
    break;
8836
8931
 
8837
 
  case 427:
8838
 
#line 5292 "parser.y"
 
8932
  case 428:
 
8933
#line 5404 "parser.y"
8839
8934
    { 
8840
8935
                   yyval.id = (char *) malloc(strlen(yyvsp[-1].id)+strlen(yyvsp[0].id)+1);
8841
8936
                   strcpy(yyval.id,yyvsp[-1].id);
8843
8938
               }
8844
8939
    break;
8845
8940
 
8846
 
  case 428:
8847
 
#line 5297 "parser.y"
 
8941
  case 429:
 
8942
#line 5409 "parser.y"
8848
8943
    { yyval.id = yyvsp[0].id;}
8849
8944
    break;
8850
8945
 
8851
 
  case 429:
8852
 
#line 5300 "parser.y"
8853
 
    {
8854
 
                 yyval.str = NewString(yyvsp[0].id);
8855
 
               }
8856
 
    break;
8857
 
 
8858
8946
  case 430:
8859
 
#line 5303 "parser.y"
 
8947
#line 5412 "parser.y"
 
8948
    {
 
8949
                 yyval.str = NewString(yyvsp[0].id);
 
8950
               }
 
8951
    break;
 
8952
 
 
8953
  case 431:
 
8954
#line 5415 "parser.y"
8860
8955
    {
8861
8956
                  skip_balanced('{','}');
8862
8957
                  yyval.str = NewString(scanner_ccode);
8863
8958
               }
8864
8959
    break;
8865
8960
 
8866
 
  case 431:
8867
 
#line 5307 "parser.y"
 
8961
  case 432:
 
8962
#line 5419 "parser.y"
8868
8963
    {
8869
8964
                 yyval.str = yyvsp[0].str;
8870
8965
              }
8871
8966
    break;
8872
8967
 
8873
 
  case 432:
8874
 
#line 5312 "parser.y"
 
8968
  case 433:
 
8969
#line 5424 "parser.y"
8875
8970
    {
8876
8971
                  Hash *n;
8877
8972
                  yyval.node = NewHash();
8887
8982
               }
8888
8983
    break;
8889
8984
 
8890
 
  case 433:
8891
 
#line 5325 "parser.y"
8892
 
    { yyval.node = 0; }
8893
 
    break;
8894
 
 
8895
8985
  case 434:
8896
 
#line 5329 "parser.y"
 
8986
#line 5437 "parser.y"
 
8987
    { yyval.node = 0; }
 
8988
    break;
 
8989
 
 
8990
  case 435:
 
8991
#line 5441 "parser.y"
8897
8992
    {
8898
8993
                 yyval.node = NewHash();
8899
8994
                 Setattr(yyval.node,"name",yyvsp[-2].id);
8901
8996
               }
8902
8997
    break;
8903
8998
 
8904
 
  case 435:
8905
 
#line 5334 "parser.y"
 
8999
  case 436:
 
9000
#line 5446 "parser.y"
8906
9001
    {
8907
9002
                 yyval.node = NewHash();
8908
9003
                 Setattr(yyval.node,"name",yyvsp[-4].id);
8911
9006
               }
8912
9007
    break;
8913
9008
 
8914
 
  case 436:
8915
 
#line 5340 "parser.y"
 
9009
  case 437:
 
9010
#line 5452 "parser.y"
8916
9011
    {
8917
9012
                 yyval.node = NewHash();
8918
9013
                 Setattr(yyval.node,"name",yyvsp[0].id);
8919
9014
               }
8920
9015
    break;
8921
9016
 
8922
 
  case 437:
8923
 
#line 5344 "parser.y"
 
9017
  case 438:
 
9018
#line 5456 "parser.y"
8924
9019
    {
8925
9020
                 yyval.node = NewHash();
8926
9021
                 Setattr(yyval.node,"name",yyvsp[-2].id);
8928
9023
               }
8929
9024
    break;
8930
9025
 
8931
 
  case 438:
8932
 
#line 5349 "parser.y"
 
9026
  case 439:
 
9027
#line 5461 "parser.y"
8933
9028
    {
8934
9029
                 yyval.node = yyvsp[0].node;
8935
9030
                 Setattr(yyval.node,"name",yyvsp[-2].id);
8936
9031
               }
8937
9032
    break;
8938
9033
 
8939
 
  case 439:
8940
 
#line 5353 "parser.y"
 
9034
  case 440:
 
9035
#line 5465 "parser.y"
8941
9036
    {
8942
9037
                 yyval.node = yyvsp[-2].node;
8943
9038
                 Setattr(yyval.node,"name",yyvsp[-4].id);
8945
9040
               }
8946
9041
    break;
8947
9042
 
8948
 
  case 440:
8949
 
#line 5360 "parser.y"
 
9043
  case 441:
 
9044
#line 5472 "parser.y"
8950
9045
    {
8951
9046
                 yyval.id = yyvsp[0].id;
8952
9047
               }
8953
9048
    break;
8954
9049
 
8955
 
  case 441:
8956
 
#line 5363 "parser.y"
 
9050
  case 442:
 
9051
#line 5475 "parser.y"
8957
9052
    {
8958
9053
                 yyval.id = Char(yyvsp[0].dtype.val);
8959
9054
               }
8963
9058
    }
8964
9059
 
8965
9060
/* Line 991 of yacc.c.  */
8966
 
#line 8966 "y.tab.c"
 
9061
#line 9061 "y.tab.c"
8967
9062
 
8968
9063
  yyvsp -= yylen;
8969
9064
  yyssp -= yylen;
9173
9268
}
9174
9269
 
9175
9270
 
9176
 
#line 5370 "parser.y"
 
9271
#line 5482 "parser.y"
9177
9272
 
9178
9273
 
9179
9274
SwigType *Swig_cparse_type(String *s) {