From 0bc22b60348e1974ec3dd34f447e8525969d85a2 Mon Sep 17 00:00:00 2001 From: David Rose Date: Tue, 20 Jan 2009 20:02:50 +0000 Subject: [PATCH] prebuild-bison --- dtool/src/cppparser/cppBison.cxx.prebuilt | 9647 ++++++++++++--------- dtool/src/cppparser/cppBison.h.prebuilt | 370 +- 2 files changed, 5572 insertions(+), 4445 deletions(-) diff --git a/dtool/src/cppparser/cppBison.cxx.prebuilt b/dtool/src/cppparser/cppBison.cxx.prebuilt index cc37479c78..38572b3074 100644 --- a/dtool/src/cppparser/cppBison.cxx.prebuilt +++ b/dtool/src/cppparser/cppBison.cxx.prebuilt @@ -1,119 +1,273 @@ +/* A Bison parser, made by GNU Bison 2.0. */ -/* A Bison parser, made from cppBison.yxx - by GNU Bison version 1.28 */ +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -#define YYBISON 1 /* Identify Bison output. */ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Written by Richard Stallman by simplifying the original so called + ``semantic'' parser. */ + +/* All symbols defined below should begin with yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 1 + +/* Using locations. */ +#define YYLSP_NEEDED 1 + +/* Substitute the variable and function names. */ #define yyparse cppyyparse -#define yylex cppyylex +#define yylex cppyylex #define yyerror cppyyerror -#define yylval cppyylval -#define yychar cppyychar +#define yylval cppyylval +#define yychar cppyychar #define yydebug cppyydebug #define yynerrs cppyynerrs -#define YYLSP_NEEDED +#define yylloc cppyylloc -#define REAL 257 -#define INTEGER 258 -#define CHAR_TOK 259 -#define STRING 260 -#define SIMPLE_IDENTIFIER 261 -#define IDENTIFIER 262 -#define TYPENAME_IDENTIFIER 263 -#define SCOPING 264 -#define TYPEDEFNAME 265 -#define ELLIPSIS 266 -#define OROR 267 -#define ANDAND 268 -#define EQCOMPARE 269 -#define NECOMPARE 270 -#define LECOMPARE 271 -#define GECOMPARE 272 -#define LSHIFT 273 -#define RSHIFT 274 -#define POINTSAT_STAR 275 -#define DOT_STAR 276 -#define UNARY 277 -#define UNARY_NOT 278 -#define UNARY_NEGATE 279 -#define UNARY_MINUS 280 -#define UNARY_STAR 281 -#define UNARY_REF 282 -#define POINTSAT 283 -#define SCOPE 284 -#define PLUSPLUS 285 -#define MINUSMINUS 286 -#define TIMESEQUAL 287 -#define DIVIDEEQUAL 288 -#define MODEQUAL 289 -#define PLUSEQUAL 290 -#define MINUSEQUAL 291 -#define OREQUAL 292 -#define ANDEQUAL 293 -#define XOREQUAL 294 -#define LSHIFTEQUAL 295 -#define RSHIFTEQUAL 296 -#define TOKENPASTE 297 -#define KW_BEGIN_PUBLISH 298 -#define KW_BLOCKING 299 -#define KW_BOOL 300 -#define KW_CATCH 301 -#define KW_CHAR 302 -#define KW_WCHAR_T 303 -#define KW_CLASS 304 -#define KW_CONST 305 -#define KW_DELETE 306 -#define KW_DOUBLE 307 -#define KW_DYNAMIC_CAST 308 -#define KW_ELSE 309 -#define KW_END_PUBLISH 310 -#define KW_ENUM 311 -#define KW_EXTERN 312 -#define KW_EXPLICIT 313 -#define KW_PUBLISHED 314 -#define KW_FALSE 315 -#define KW_FLOAT 316 -#define KW_FRIEND 317 -#define KW_FOR 318 -#define KW_GOTO 319 -#define KW_IF 320 -#define KW_INLINE 321 -#define KW_INT 322 -#define KW_LONG 323 -#define KW_LONGLONG 324 -#define KW_MAKE_SEQ 325 -#define KW_MUTABLE 326 -#define KW_NAMESPACE 327 -#define KW_NEW 328 -#define KW_OPERATOR 329 -#define KW_PRIVATE 330 -#define KW_PROTECTED 331 -#define KW_PUBLIC 332 -#define KW_REGISTER 333 -#define KW_RETURN 334 -#define KW_SHORT 335 -#define KW_SIGNED 336 -#define KW_SIZEOF 337 -#define KW_STATIC 338 -#define KW_STATIC_CAST 339 -#define KW_STRUCT 340 -#define KW_TEMPLATE 341 -#define KW_THROW 342 -#define KW_TRUE 343 -#define KW_TRY 344 -#define KW_TYPEDEF 345 -#define KW_TYPENAME 346 -#define KW_UNION 347 -#define KW_UNSIGNED 348 -#define KW_USING 349 -#define KW_VIRTUAL 350 -#define KW_VOID 351 -#define KW_VOLATILE 352 -#define KW_WHILE 353 -#define START_CPP 354 -#define START_CONST_EXPR 355 -#define START_TYPE 356 +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + REAL = 258, + INTEGER = 259, + CHAR_TOK = 260, + STRING = 261, + SIMPLE_IDENTIFIER = 262, + IDENTIFIER = 263, + TYPENAME_IDENTIFIER = 264, + SCOPING = 265, + TYPEDEFNAME = 266, + ELLIPSIS = 267, + OROR = 268, + ANDAND = 269, + EQCOMPARE = 270, + NECOMPARE = 271, + LECOMPARE = 272, + GECOMPARE = 273, + LSHIFT = 274, + RSHIFT = 275, + POINTSAT_STAR = 276, + DOT_STAR = 277, + UNARY = 278, + UNARY_NOT = 279, + UNARY_NEGATE = 280, + UNARY_MINUS = 281, + UNARY_STAR = 282, + UNARY_REF = 283, + POINTSAT = 284, + SCOPE = 285, + PLUSPLUS = 286, + MINUSMINUS = 287, + TIMESEQUAL = 288, + DIVIDEEQUAL = 289, + MODEQUAL = 290, + PLUSEQUAL = 291, + MINUSEQUAL = 292, + OREQUAL = 293, + ANDEQUAL = 294, + XOREQUAL = 295, + LSHIFTEQUAL = 296, + RSHIFTEQUAL = 297, + TOKENPASTE = 298, + KW_BEGIN_PUBLISH = 299, + KW_BLOCKING = 300, + KW_BOOL = 301, + KW_CATCH = 302, + KW_CHAR = 303, + KW_WCHAR_T = 304, + KW_CLASS = 305, + KW_CONST = 306, + KW_DELETE = 307, + KW_DOUBLE = 308, + KW_DYNAMIC_CAST = 309, + KW_ELSE = 310, + KW_END_PUBLISH = 311, + KW_ENUM = 312, + KW_EXTERN = 313, + KW_EXPLICIT = 314, + KW_PUBLISHED = 315, + KW_FALSE = 316, + KW_FLOAT = 317, + KW_FRIEND = 318, + KW_FOR = 319, + KW_GOTO = 320, + KW_IF = 321, + KW_INLINE = 322, + KW_INT = 323, + KW_LONG = 324, + KW_LONGLONG = 325, + KW_MAKE_SEQ = 326, + KW_MUTABLE = 327, + KW_NAMESPACE = 328, + KW_NEW = 329, + KW_OPERATOR = 330, + KW_PRIVATE = 331, + KW_PROTECTED = 332, + KW_PUBLIC = 333, + KW_REGISTER = 334, + KW_RETURN = 335, + KW_SHORT = 336, + KW_SIGNED = 337, + KW_SIZEOF = 338, + KW_STATIC = 339, + KW_STATIC_CAST = 340, + KW_STRUCT = 341, + KW_TEMPLATE = 342, + KW_THROW = 343, + KW_TRUE = 344, + KW_TRY = 345, + KW_TYPEDEF = 346, + KW_TYPENAME = 347, + KW_UNION = 348, + KW_UNSIGNED = 349, + KW_USING = 350, + KW_VIRTUAL = 351, + KW_VOID = 352, + KW_VOLATILE = 353, + KW_WHILE = 354, + START_CPP = 355, + START_CONST_EXPR = 356, + START_TYPE = 357 + }; +#endif +#define REAL 258 +#define INTEGER 259 +#define CHAR_TOK 260 +#define STRING 261 +#define SIMPLE_IDENTIFIER 262 +#define IDENTIFIER 263 +#define TYPENAME_IDENTIFIER 264 +#define SCOPING 265 +#define TYPEDEFNAME 266 +#define ELLIPSIS 267 +#define OROR 268 +#define ANDAND 269 +#define EQCOMPARE 270 +#define NECOMPARE 271 +#define LECOMPARE 272 +#define GECOMPARE 273 +#define LSHIFT 274 +#define RSHIFT 275 +#define POINTSAT_STAR 276 +#define DOT_STAR 277 +#define UNARY 278 +#define UNARY_NOT 279 +#define UNARY_NEGATE 280 +#define UNARY_MINUS 281 +#define UNARY_STAR 282 +#define UNARY_REF 283 +#define POINTSAT 284 +#define SCOPE 285 +#define PLUSPLUS 286 +#define MINUSMINUS 287 +#define TIMESEQUAL 288 +#define DIVIDEEQUAL 289 +#define MODEQUAL 290 +#define PLUSEQUAL 291 +#define MINUSEQUAL 292 +#define OREQUAL 293 +#define ANDEQUAL 294 +#define XOREQUAL 295 +#define LSHIFTEQUAL 296 +#define RSHIFTEQUAL 297 +#define TOKENPASTE 298 +#define KW_BEGIN_PUBLISH 299 +#define KW_BLOCKING 300 +#define KW_BOOL 301 +#define KW_CATCH 302 +#define KW_CHAR 303 +#define KW_WCHAR_T 304 +#define KW_CLASS 305 +#define KW_CONST 306 +#define KW_DELETE 307 +#define KW_DOUBLE 308 +#define KW_DYNAMIC_CAST 309 +#define KW_ELSE 310 +#define KW_END_PUBLISH 311 +#define KW_ENUM 312 +#define KW_EXTERN 313 +#define KW_EXPLICIT 314 +#define KW_PUBLISHED 315 +#define KW_FALSE 316 +#define KW_FLOAT 317 +#define KW_FRIEND 318 +#define KW_FOR 319 +#define KW_GOTO 320 +#define KW_IF 321 +#define KW_INLINE 322 +#define KW_INT 323 +#define KW_LONG 324 +#define KW_LONGLONG 325 +#define KW_MAKE_SEQ 326 +#define KW_MUTABLE 327 +#define KW_NAMESPACE 328 +#define KW_NEW 329 +#define KW_OPERATOR 330 +#define KW_PRIVATE 331 +#define KW_PROTECTED 332 +#define KW_PUBLIC 333 +#define KW_REGISTER 334 +#define KW_RETURN 335 +#define KW_SHORT 336 +#define KW_SIGNED 337 +#define KW_SIZEOF 338 +#define KW_STATIC 339 +#define KW_STATIC_CAST 340 +#define KW_STRUCT 341 +#define KW_TEMPLATE 342 +#define KW_THROW 343 +#define KW_TRUE 344 +#define KW_TRY 345 +#define KW_TYPEDEF 346 +#define KW_TYPENAME 347 +#define KW_UNION 348 +#define KW_UNSIGNED 349 +#define KW_USING 350 +#define KW_VIRTUAL 351 +#define KW_VOID 352 +#define KW_VOLATILE 353 +#define KW_WHILE 354 +#define START_CPP 355 +#define START_CONST_EXPR 356 +#define START_TYPE 357 + + + +/* Copy the first part of user declarations. */ #line 6 "cppBison.yxx" @@ -302,1720 +456,2175 @@ pop_struct() { } -#ifndef YYLTYPE -typedef - struct yyltype - { - int timestamp; - int first_line; - int first_column; - int last_line; - int last_column; - char *text; - } - yyltype; -#define YYLTYPE yyltype +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 #endif -#include - -#ifndef __cplusplus -#ifndef __STDC__ -#define const -#endif -#endif - - - -#define YYFINAL 951 -#define YYFLAG -32768 -#define YYNTBASE 127 - -#define YYTRANSLATE(x) ((unsigned)(x) <= 356 ? yytranslate[x] : 220) - -static const short yytranslate[] = { 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 125, 2, 2, 2, 118, 111, 2, 121, - 123, 116, 114, 104, 115, 120, 117, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 106, 105, 112, - 107, 113, 108, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 122, 2, 126, 110, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 103, 109, 124, 119, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 1, 3, 4, 5, 6, - 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, - 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, - 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, - 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, - 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, - 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 97, 98, 99, 100, 101, 102 -}; - -#if YYDEBUG != 0 -static const short yyprhs[] = { 0, - 0, 3, 6, 9, 11, 14, 17, 19, 23, 28, - 29, 35, 37, 39, 41, 43, 45, 47, 50, 52, - 54, 57, 60, 63, 66, 76, 77, 81, 83, 86, - 90, 93, 96, 99, 102, 105, 108, 111, 114, 116, - 120, 124, 125, 130, 131, 137, 140, 145, 148, 153, - 154, 159, 160, 166, 170, 173, 178, 181, 186, 187, - 194, 195, 202, 203, 211, 212, 223, 224, 236, 237, - 246, 247, 257, 259, 261, 263, 268, 274, 276, 278, - 280, 282, 284, 286, 288, 290, 292, 294, 296, 298, - 300, 302, 304, 306, 308, 310, 312, 314, 316, 318, - 320, 322, 324, 326, 328, 330, 332, 334, 336, 338, - 340, 342, 344, 347, 350, 352, 354, 356, 358, 359, - 366, 368, 370, 372, 376, 379, 384, 388, 393, 395, - 397, 399, 402, 404, 407, 410, 413, 416, 420, 425, - 429, 433, 434, 441, 443, 445, 447, 451, 454, 456, - 460, 462, 465, 467, 470, 472, 476, 482, 486, 491, - 493, 495, 498, 500, 504, 508, 514, 518, 522, 527, - 529, 531, 533, 535, 538, 541, 544, 548, 553, 555, - 557, 559, 562, 565, 568, 572, 577, 585, 589, 591, - 594, 597, 600, 604, 609, 617, 619, 621, 624, 626, - 628, 630, 632, 635, 638, 640, 642, 645, 647, 649, - 651, 653, 656, 659, 661, 663, 666, 669, 672, 675, - 679, 680, 686, 687, 695, 697, 699, 702, 706, 709, - 712, 715, 719, 723, 727, 731, 735, 739, 740, 746, - 747, 754, 756, 758, 761, 763, 767, 771, 777, 779, - 781, 783, 785, 786, 793, 798, 801, 805, 807, 809, - 811, 813, 815, 817, 819, 821, 823, 825, 827, 829, - 832, 835, 838, 841, 843, 846, 848, 852, 855, 857, - 858, 861, 863, 866, 868, 870, 872, 874, 876, 878, - 880, 882, 884, 886, 888, 890, 892, 894, 896, 898, - 900, 902, 904, 906, 908, 910, 912, 914, 916, 918, - 920, 922, 924, 926, 928, 930, 932, 934, 936, 938, - 940, 942, 944, 946, 948, 950, 952, 954, 956, 958, - 960, 962, 964, 966, 968, 970, 972, 974, 976, 978, - 980, 982, 984, 986, 988, 990, 992, 994, 996, 998, - 1000, 1002, 1004, 1006, 1008, 1010, 1012, 1014, 1016, 1018, - 1020, 1022, 1024, 1026, 1028, 1030, 1032, 1034, 1036, 1038, - 1040, 1042, 1044, 1046, 1048, 1050, 1052, 1054, 1056, 1058, - 1060, 1062, 1064, 1066, 1068, 1070, 1072, 1074, 1078, 1080, - 1082, 1084, 1086, 1088, 1092, 1094, 1099, 1107, 1115, 1120, - 1123, 1126, 1129, 1132, 1135, 1139, 1143, 1147, 1151, 1155, - 1159, 1163, 1167, 1171, 1175, 1179, 1183, 1187, 1191, 1195, - 1201, 1206, 1211, 1215, 1219, 1223, 1227, 1229, 1234, 1242, - 1250, 1255, 1260, 1265, 1270, 1275, 1280, 1285, 1290, 1295, - 1300, 1305, 1310, 1313, 1319, 1322, 1325, 1328, 1331, 1334, - 1338, 1342, 1346, 1350, 1354, 1358, 1362, 1366, 1370, 1374, - 1378, 1382, 1386, 1390, 1394, 1398, 1402, 1408, 1413, 1418, - 1422, 1426, 1430, 1434, 1436, 1438, 1440, 1442, 1444, 1446, - 1448, 1450, 1455, 1463, 1471, 1476, 1479, 1485, 1488, 1491, - 1494, 1497, 1501, 1505, 1509, 1513, 1517, 1521, 1525, 1529, - 1533, 1537, 1541, 1545, 1549, 1553, 1557, 1561, 1565, 1571, - 1576, 1581, 1585, 1589, 1593, 1597, 1599, 1601, 1603, 1605, - 1607, 1609, 1611, 1614, 1617, 1619, 1621, 1623, 1626 -}; - -static const short yyrhs[] = { 100, - 128, 0, 101, 212, 0, 102, 181, 0, 219, 0, - 128, 105, 0, 128, 133, 0, 130, 0, 129, 104, - 130, 0, 217, 121, 209, 123, 0, 0, 136, 103, - 132, 128, 124, 0, 137, 0, 159, 0, 131, 0, - 197, 0, 199, 0, 134, 0, 91, 143, 0, 44, - 0, 56, 0, 60, 106, 0, 78, 106, 0, 77, - 106, 0, 76, 106, 0, 71, 121, 217, 104, 217, - 104, 217, 123, 105, 0, 0, 63, 135, 133, 0, - 219, 0, 136, 58, 0, 136, 58, 218, 0, 136, - 84, 0, 136, 67, 0, 136, 96, 0, 136, 59, - 0, 136, 98, 0, 136, 72, 0, 136, 79, 0, - 136, 45, 0, 138, 0, 136, 179, 105, 0, 136, - 148, 171, 0, 0, 136, 179, 139, 141, 0, 0, - 136, 51, 178, 140, 142, 0, 165, 171, 0, 165, - 170, 104, 141, 0, 165, 171, 0, 165, 170, 104, - 142, 0, 0, 136, 179, 144, 146, 0, 0, 136, - 51, 178, 145, 147, 0, 136, 148, 171, 0, 165, - 171, 0, 165, 170, 104, 146, 0, 165, 171, 0, - 165, 170, 104, 147, 0, 0, 8, 121, 149, 167, - 123, 156, 0, 0, 9, 121, 150, 167, 123, 156, - 0, 0, 119, 217, 121, 151, 167, 123, 156, 0, - 0, 9, 121, 116, 165, 123, 121, 152, 167, 123, - 156, 0, 0, 9, 121, 10, 116, 165, 123, 121, - 153, 167, 123, 156, 0, 0, 75, 178, 175, 121, - 154, 167, 123, 156, 0, 0, 75, 51, 178, 175, - 121, 155, 167, 123, 156, 0, 8, 0, 219, 0, - 51, 0, 156, 88, 121, 123, 0, 156, 88, 121, - 217, 123, 0, 125, 0, 119, 0, 116, 0, 117, - 0, 118, 0, 114, 0, 115, 0, 109, 0, 111, - 0, 110, 0, 13, 0, 14, 0, 15, 0, 16, - 0, 17, 0, 18, 0, 112, 0, 113, 0, 19, - 0, 20, 0, 107, 0, 104, 0, 31, 0, 32, - 0, 33, 0, 34, 0, 35, 0, 36, 0, 37, - 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, - 0, 29, 0, 122, 126, 0, 121, 123, 0, 74, - 0, 52, 0, 137, 0, 159, 0, 0, 87, 160, - 112, 161, 113, 158, 0, 219, 0, 162, 0, 163, - 0, 162, 104, 163, 0, 50, 217, 0, 50, 217, - 107, 181, 0, 164, 176, 169, 0, 51, 164, 176, - 169, 0, 200, 0, 8, 0, 9, 0, 92, 217, - 0, 217, 0, 75, 157, 0, 51, 165, 0, 116, - 165, 0, 111, 165, 0, 10, 116, 165, 0, 165, - 122, 208, 126, 0, 165, 106, 4, 0, 121, 165, - 123, 0, 0, 165, 121, 166, 167, 123, 156, 0, - 219, 0, 12, 0, 168, 0, 168, 104, 12, 0, - 168, 12, 0, 174, 0, 168, 104, 174, 0, 219, - 0, 107, 211, 0, 219, 0, 107, 212, 0, 105, - 0, 103, 204, 124, 0, 106, 129, 103, 204, 124, - 0, 107, 212, 105, 0, 107, 103, 172, 124, 0, - 219, 0, 173, 0, 173, 104, 0, 212, 0, 103, - 172, 124, 0, 173, 104, 212, 0, 173, 104, 103, - 172, 124, 0, 178, 176, 170, 0, 8, 176, 170, - 0, 51, 178, 176, 170, 0, 214, 0, 219, 0, - 8, 0, 9, 0, 51, 175, 0, 116, 175, 0, - 111, 175, 0, 10, 116, 175, 0, 175, 122, 208, - 126, 0, 219, 0, 8, 0, 9, 0, 51, 176, - 0, 116, 176, 0, 111, 176, 0, 10, 116, 176, - 0, 176, 122, 208, 126, 0, 121, 176, 123, 121, - 167, 123, 156, 0, 121, 176, 123, 0, 219, 0, - 51, 177, 0, 116, 177, 0, 111, 177, 0, 10, - 116, 177, 0, 177, 122, 208, 126, 0, 121, 177, - 123, 121, 167, 123, 156, 0, 200, 0, 9, 0, - 92, 217, 0, 182, 0, 184, 0, 189, 0, 191, - 0, 196, 217, 0, 195, 217, 0, 200, 0, 9, - 0, 92, 217, 0, 182, 0, 184, 0, 189, 0, - 191, 0, 196, 217, 0, 195, 217, 0, 200, 0, - 9, 0, 92, 217, 0, 196, 217, 0, 195, 217, - 0, 178, 177, 0, 51, 178, 177, 0, 0, 196, - 103, 183, 128, 124, 0, 0, 196, 217, 185, 186, - 103, 128, 124, 0, 219, 0, 187, 0, 106, 188, - 0, 187, 104, 188, 0, 78, 216, 0, 77, 216, - 0, 76, 216, 0, 96, 78, 216, 0, 96, 77, - 216, 0, 96, 76, 216, 0, 78, 96, 216, 0, - 77, 96, 216, 0, 76, 96, 216, 0, 0, 195, - 103, 190, 193, 124, 0, 0, 195, 217, 103, 192, - 193, 124, 0, 219, 0, 194, 0, 194, 104, 0, - 217, 0, 217, 107, 212, 0, 194, 104, 217, 0, - 194, 104, 217, 107, 212, 0, 57, 0, 50, 0, - 86, 0, 93, 0, 0, 73, 217, 103, 198, 128, - 124, 0, 73, 103, 128, 124, 0, 95, 217, 0, - 95, 73, 217, 0, 201, 0, 202, 0, 203, 0, - 46, 0, 48, 0, 49, 0, 81, 0, 69, 0, - 70, 0, 94, 0, 82, 0, 68, 0, 81, 201, - 0, 69, 201, 0, 94, 201, 0, 82, 201, 0, - 62, 0, 69, 62, 0, 53, 0, 69, 69, 62, - 0, 69, 53, 0, 97, 0, 0, 205, 206, 0, - 219, 0, 206, 207, 0, 3, 0, 4, 0, 6, - 0, 5, 0, 8, 0, 9, 0, 10, 0, 7, - 0, 12, 0, 13, 0, 14, 0, 15, 0, 16, - 0, 17, 0, 18, 0, 19, 0, 20, 0, 21, - 0, 22, 0, 29, 0, 30, 0, 31, 0, 32, - 0, 33, 0, 34, 0, 35, 0, 36, 0, 37, - 0, 38, 0, 39, 0, 40, 0, 41, 0, 42, - 0, 46, 0, 47, 0, 48, 0, 49, 0, 50, - 0, 51, 0, 52, 0, 53, 0, 54, 0, 55, - 0, 57, 0, 58, 0, 59, 0, 61, 0, 62, - 0, 63, 0, 64, 0, 65, 0, 66, 0, 67, - 0, 68, 0, 69, 0, 72, 0, 74, 0, 76, - 0, 77, 0, 78, 0, 60, 0, 79, 0, 80, - 0, 81, 0, 82, 0, 83, 0, 84, 0, 85, - 0, 86, 0, 88, 0, 89, 0, 90, 0, 91, - 0, 92, 0, 93, 0, 94, 0, 96, 0, 97, - 0, 98, 0, 99, 0, 43, 0, 75, 0, 114, - 0, 115, 0, 116, 0, 117, 0, 111, 0, 109, - 0, 110, 0, 125, 0, 119, 0, 107, 0, 118, - 0, 112, 0, 113, 0, 121, 0, 123, 0, 120, - 0, 104, 0, 105, 0, 106, 0, 122, 0, 126, - 0, 108, 0, 103, 206, 124, 0, 219, 0, 212, - 0, 219, 0, 210, 0, 212, 0, 210, 104, 212, - 0, 213, 0, 121, 181, 123, 211, 0, 85, 112, - 181, 113, 121, 210, 123, 0, 54, 112, 181, 113, - 121, 210, 123, 0, 83, 121, 181, 123, 0, 125, - 211, 0, 119, 211, 0, 115, 211, 0, 116, 211, - 0, 111, 211, 0, 211, 116, 211, 0, 211, 117, - 211, 0, 211, 118, 211, 0, 211, 114, 211, 0, - 211, 115, 211, 0, 211, 109, 211, 0, 211, 111, - 211, 0, 211, 13, 211, 0, 211, 14, 211, 0, - 211, 15, 211, 0, 211, 16, 211, 0, 211, 17, - 211, 0, 211, 18, 211, 0, 211, 19, 211, 0, - 211, 20, 211, 0, 211, 108, 211, 106, 211, 0, - 211, 122, 212, 126, 0, 211, 121, 210, 123, 0, - 211, 121, 123, 0, 211, 120, 211, 0, 211, 29, - 211, 0, 121, 210, 123, 0, 213, 0, 121, 181, - 123, 212, 0, 85, 112, 181, 113, 121, 210, 123, - 0, 54, 112, 181, 113, 121, 210, 123, 0, 9, - 121, 209, 123, 0, 68, 121, 209, 123, 0, 48, - 121, 209, 123, 0, 49, 121, 209, 123, 0, 46, - 121, 209, 123, 0, 81, 121, 209, 123, 0, 69, - 121, 209, 123, 0, 94, 121, 209, 123, 0, 82, - 121, 209, 123, 0, 62, 121, 209, 123, 0, 53, - 121, 209, 123, 0, 83, 121, 181, 123, 0, 74, - 180, 0, 74, 180, 121, 209, 123, 0, 125, 212, - 0, 119, 212, 0, 115, 212, 0, 116, 212, 0, - 111, 212, 0, 212, 116, 212, 0, 212, 117, 212, - 0, 212, 118, 212, 0, 212, 114, 212, 0, 212, - 115, 212, 0, 212, 109, 212, 0, 212, 111, 212, - 0, 212, 13, 212, 0, 212, 14, 212, 0, 212, - 15, 212, 0, 212, 16, 212, 0, 212, 17, 212, - 0, 212, 18, 212, 0, 212, 112, 212, 0, 212, - 113, 212, 0, 212, 19, 212, 0, 212, 20, 212, - 0, 212, 108, 212, 106, 212, 0, 212, 122, 212, - 126, 0, 212, 121, 210, 123, 0, 212, 121, 123, - 0, 212, 120, 212, 0, 212, 29, 212, 0, 121, - 210, 123, 0, 4, 0, 89, 0, 61, 0, 5, - 0, 3, 0, 218, 0, 8, 0, 215, 0, 121, - 181, 123, 212, 0, 85, 112, 181, 113, 121, 210, - 123, 0, 54, 112, 181, 113, 121, 210, 123, 0, - 83, 121, 181, 123, 0, 74, 180, 0, 74, 180, - 121, 209, 123, 0, 125, 212, 0, 119, 212, 0, - 115, 212, 0, 111, 212, 0, 214, 116, 212, 0, - 214, 117, 212, 0, 214, 118, 212, 0, 214, 114, - 212, 0, 214, 115, 212, 0, 214, 109, 212, 0, - 214, 111, 212, 0, 214, 13, 212, 0, 214, 14, - 212, 0, 214, 15, 212, 0, 214, 16, 212, 0, - 214, 17, 212, 0, 214, 18, 212, 0, 214, 112, - 212, 0, 214, 113, 212, 0, 214, 19, 212, 0, - 214, 20, 212, 0, 214, 108, 212, 106, 212, 0, - 214, 122, 212, 126, 0, 214, 121, 210, 123, 0, - 214, 121, 123, 0, 214, 120, 212, 0, 214, 29, - 212, 0, 121, 210, 123, 0, 4, 0, 89, 0, - 61, 0, 5, 0, 3, 0, 218, 0, 217, 0, - 196, 217, 0, 92, 217, 0, 8, 0, 9, 0, - 6, 0, 218, 6, 0, 0 -}; - -#endif - -#if YYDEBUG != 0 -static const short yyrline[] = { 0, - 380, 382, 386, 392, 394, 395, 398, 400, 403, 415, - 421, 427, 429, 430, 431, 432, 433, 434, 435, 448, - 457, 461, 469, 473, 477, 484, 492, 499, 504, 508, - 519, 523, 527, 531, 535, 539, 543, 547, 553, 558, - 567, 577, 590, 593, 601, 610, 619, 629, 639, 651, - 664, 667, 675, 678, 691, 700, 710, 720, 731, 738, - 756, 760, 780, 784, 810, 814, 825, 829, 842, 848, - 873, 879, 899, 911, 916, 920, 924, 930, 935, 939, - 943, 947, 951, 955, 959, 963, 967, 971, 975, 979, - 983, 987, 991, 995, 999, 1003, 1007, 1011, 1015, 1019, - 1023, 1027, 1031, 1035, 1039, 1043, 1047, 1051, 1055, 1059, - 1063, 1067, 1071, 1075, 1079, 1083, 1089, 1091, 1094, 1099, - 1105, 1107, 1110, 1117, 1125, 1130, 1134, 1140, 1149, 1154, - 1159, 1164, 1171, 1176, 1190, 1195, 1200, 1205, 1210, 1215, - 1220, 1225, 1229, 1246, 1251, 1256, 1260, 1265, 1272, 1278, - 1285, 1290, 1296, 1301, 1307, 1312, 1316, 1320, 1324, 1330, - 1332, 1333, 1336, 1340, 1341, 1342, 1345, 1351, 1359, 1365, - 1374, 1379, 1383, 1387, 1392, 1397, 1402, 1407, 1414, 1419, - 1423, 1427, 1432, 1437, 1442, 1447, 1452, 1458, 1465, 1470, - 1475, 1480, 1485, 1490, 1495, 1503, 1508, 1513, 1517, 1521, - 1525, 1529, 1533, 1549, 1567, 1572, 1577, 1581, 1585, 1589, - 1593, 1597, 1613, 1631, 1636, 1641, 1645, 1661, 1679, 1686, - 1695, 1710, 1719, 1740, 1749, 1751, 1754, 1756, 1759, 1764, - 1768, 1772, 1776, 1780, 1784, 1788, 1792, 1798, 1803, 1810, - 1815, 1822, 1824, 1825, 1828, 1834, 1839, 1844, 1851, 1858, - 1863, 1867, 1873, 1892, 1896, 1899, 1906, 1914, 1916, 1917, - 1920, 1925, 1929, 1933, 1938, 1943, 1948, 1953, 1958, 1962, - 1967, 1976, 1981, 1988, 1993, 1998, 2002, 2007, 2014, 2024, - 2029, 2034, 2036, 2039, 2043, 2046, 2049, 2052, 2055, 2058, - 2061, 2064, 2064, 2064, 2065, 2065, 2065, 2065, 2066, 2066, - 2066, 2066, 2066, 2067, 2067, 2067, 2068, 2068, 2068, 2068, - 2068, 2069, 2069, 2069, 2069, 2069, 2070, 2070, 2070, 2070, - 2070, 2070, 2071, 2071, 2071, 2071, 2071, 2072, 2072, 2072, - 2073, 2073, 2073, 2073, 2074, 2074, 2074, 2075, 2075, 2075, - 2075, 2075, 2076, 2076, 2076, 2076, 2077, 2077, 2077, 2077, - 2077, 2078, 2078, 2078, 2078, 2078, 2078, 2079, 2079, 2079, - 2079, 2079, 2080, 2080, 2081, 2084, 2084, 2084, 2084, 2084, - 2084, 2084, 2084, 2084, 2084, 2084, 2085, 2085, 2085, 2085, - 2085, 2085, 2085, 2085, 2085, 2085, 2086, 2086, 2089, 2094, - 2100, 2105, 2111, 2116, 2122, 2127, 2131, 2135, 2139, 2143, - 2147, 2151, 2163, 2167, 2171, 2175, 2179, 2183, 2187, 2191, - 2195, 2199, 2203, 2207, 2211, 2215, 2219, 2223, 2227, 2231, - 2235, 2239, 2243, 2247, 2251, 2255, 2262, 2267, 2271, 2275, - 2279, 2286, 2292, 2298, 2304, 2310, 2317, 2324, 2331, 2338, - 2344, 2350, 2354, 2358, 2362, 2366, 2370, 2382, 2386, 2390, - 2394, 2398, 2402, 2406, 2410, 2414, 2418, 2422, 2426, 2430, - 2434, 2438, 2442, 2446, 2450, 2454, 2458, 2462, 2466, 2470, - 2474, 2478, 2482, 2488, 2493, 2497, 2501, 2505, 2509, 2513, - 2526, 2531, 2535, 2539, 2543, 2547, 2551, 2555, 2559, 2563, - 2575, 2579, 2583, 2587, 2591, 2595, 2599, 2603, 2607, 2611, - 2615, 2619, 2623, 2627, 2631, 2635, 2639, 2643, 2647, 2651, - 2655, 2659, 2663, 2667, 2671, 2677, 2682, 2686, 2690, 2694, - 2698, 2704, 2713, 2721, 2743, 2748, 2754, 2759, 2765 -}; -#endif - - -#if YYDEBUG != 0 || defined (YYERROR_VERBOSE) - -static const char * const yytname[] = { "$","error","$undefined.","REAL","INTEGER", -"CHAR_TOK","STRING","SIMPLE_IDENTIFIER","IDENTIFIER","TYPENAME_IDENTIFIER","SCOPING", -"TYPEDEFNAME","ELLIPSIS","OROR","ANDAND","EQCOMPARE","NECOMPARE","LECOMPARE", -"GECOMPARE","LSHIFT","RSHIFT","POINTSAT_STAR","DOT_STAR","UNARY","UNARY_NOT", -"UNARY_NEGATE","UNARY_MINUS","UNARY_STAR","UNARY_REF","POINTSAT","SCOPE","PLUSPLUS", -"MINUSMINUS","TIMESEQUAL","DIVIDEEQUAL","MODEQUAL","PLUSEQUAL","MINUSEQUAL", -"OREQUAL","ANDEQUAL","XOREQUAL","LSHIFTEQUAL","RSHIFTEQUAL","TOKENPASTE","KW_BEGIN_PUBLISH", -"KW_BLOCKING","KW_BOOL","KW_CATCH","KW_CHAR","KW_WCHAR_T","KW_CLASS","KW_CONST", -"KW_DELETE","KW_DOUBLE","KW_DYNAMIC_CAST","KW_ELSE","KW_END_PUBLISH","KW_ENUM", -"KW_EXTERN","KW_EXPLICIT","KW_PUBLISHED","KW_FALSE","KW_FLOAT","KW_FRIEND","KW_FOR", -"KW_GOTO","KW_IF","KW_INLINE","KW_INT","KW_LONG","KW_LONGLONG","KW_MAKE_SEQ", -"KW_MUTABLE","KW_NAMESPACE","KW_NEW","KW_OPERATOR","KW_PRIVATE","KW_PROTECTED", -"KW_PUBLIC","KW_REGISTER","KW_RETURN","KW_SHORT","KW_SIGNED","KW_SIZEOF","KW_STATIC", -"KW_STATIC_CAST","KW_STRUCT","KW_TEMPLATE","KW_THROW","KW_TRUE","KW_TRY","KW_TYPEDEF", -"KW_TYPENAME","KW_UNION","KW_UNSIGNED","KW_USING","KW_VIRTUAL","KW_VOID","KW_VOLATILE", -"KW_WHILE","START_CPP","START_CONST_EXPR","START_TYPE","'{'","','","';'","':'", -"'='","'?'","'|'","'^'","'&'","'<'","'>'","'+'","'-'","'*'","'/'","'%'","'~'", -"'.'","'('","'['","')'","'}'","'!'","']'","grammar","cpp","constructor_inits", -"constructor_init","extern_c","@1","declaration","friend_declaration","@2","storage_class", -"type_like_declaration","multiple_var_declaration","@3","@4","multiple_instance_identifiers", -"multiple_const_instance_identifiers","typedef_declaration","@5","@6","typedef_instance_identifiers", -"typedef_const_instance_identifiers","function_prototype","@7","@8","@9","@10", -"@11","@12","@13","function_post","function_operator","more_template_declaration", -"template_declaration","@14","template_formal_parameters","template_nonempty_formal_parameters", -"template_formal_parameter","template_formal_parameter_type","instance_identifier", -"@15","formal_parameter_list","formal_parameters","template_parameter_maybe_initialize", -"maybe_initialize","maybe_initialize_or_function_body","structure_init","structure_init_body", -"formal_parameter","not_paren_formal_parameter_identifier","formal_parameter_identifier", -"empty_instance_identifier","type","type_decl","predefined_type","full_type", -"anonymous_struct","@16","named_struct","@17","maybe_class_derivation","class_derivation", -"base_specification","anonymous_enum","@18","named_enum","@19","enum_body","enum_body_no_trailing_comma", -"enum_keyword","struct_keyword","namespace_declaration","@20","using_declaration", -"simple_type","simple_int_type","simple_float_type","simple_void_type","code", -"@21","code_block","element","optional_const_expr","optional_const_expr_comma", -"const_expr_comma","no_angle_bracket_const_expr","const_expr","const_operand", -"formal_const_expr","formal_const_operand","class_derivation_name","name","string", -"empty", NULL -}; -#endif - -static const short yyr1[] = { 0, - 127, 127, 127, 128, 128, 128, 129, 129, 130, 132, - 131, 133, 133, 133, 133, 133, 133, 133, 133, 133, - 133, 133, 133, 133, 133, 135, 134, 136, 136, 136, - 136, 136, 136, 136, 136, 136, 136, 136, 137, 137, - 137, 139, 138, 140, 138, 141, 141, 142, 142, 144, - 143, 145, 143, 143, 146, 146, 147, 147, 149, 148, - 150, 148, 151, 148, 152, 148, 153, 148, 154, 148, - 155, 148, 148, 156, 156, 156, 156, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 157, 157, 157, 157, - 157, 157, 157, 157, 157, 157, 158, 158, 160, 159, - 161, 161, 162, 162, 163, 163, 163, 163, 164, 164, - 164, 164, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 166, 165, 167, 167, 167, 167, 167, 168, 168, - 169, 169, 170, 170, 171, 171, 171, 171, 171, 172, - 172, 172, 173, 173, 173, 173, 174, 174, 174, 174, - 175, 175, 175, 175, 175, 175, 175, 175, 176, 176, - 176, 176, 176, 176, 176, 176, 176, 176, 177, 177, - 177, 177, 177, 177, 177, 178, 178, 178, 178, 178, - 178, 178, 178, 178, 179, 179, 179, 179, 179, 179, - 179, 179, 179, 180, 180, 180, 180, 180, 181, 181, - 183, 182, 185, 184, 186, 186, 187, 187, 188, 188, - 188, 188, 188, 188, 188, 188, 188, 190, 189, 192, - 191, 193, 193, 193, 194, 194, 194, 194, 195, 196, - 196, 196, 198, 197, 197, 199, 199, 200, 200, 200, - 201, 201, 201, 201, 201, 201, 201, 201, 201, 201, - 201, 201, 201, 202, 202, 202, 202, 202, 203, 205, - 204, 206, 206, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 207, 207, - 207, 207, 207, 207, 207, 207, 207, 207, 208, 208, - 209, 209, 210, 210, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 211, 211, 211, 211, - 211, 211, 211, 211, 211, 211, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, - 212, 212, 212, 213, 213, 213, 213, 213, 213, 213, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, - 214, 214, 214, 214, 214, 214, 214, 214, 214, 214, - 214, 214, 214, 214, 214, 215, 215, 215, 215, 215, - 215, 216, 216, 216, 217, 217, 218, 218, 219 -}; - -static const short yyr2[] = { 0, - 2, 2, 2, 1, 2, 2, 1, 3, 4, 0, - 5, 1, 1, 1, 1, 1, 1, 2, 1, 1, - 2, 2, 2, 2, 9, 0, 3, 1, 2, 3, - 2, 2, 2, 2, 2, 2, 2, 2, 1, 3, - 3, 0, 4, 0, 5, 2, 4, 2, 4, 0, - 4, 0, 5, 3, 2, 4, 2, 4, 0, 6, - 0, 6, 0, 7, 0, 10, 0, 11, 0, 8, - 0, 9, 1, 1, 1, 4, 5, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 1, 1, 1, 1, 0, 6, - 1, 1, 1, 3, 2, 4, 3, 4, 1, 1, - 1, 2, 1, 2, 2, 2, 2, 3, 4, 3, - 3, 0, 6, 1, 1, 1, 3, 2, 1, 3, - 1, 2, 1, 2, 1, 3, 5, 3, 4, 1, - 1, 2, 1, 3, 3, 5, 3, 3, 4, 1, - 1, 1, 1, 2, 2, 2, 3, 4, 1, 1, - 1, 2, 2, 2, 3, 4, 7, 3, 1, 2, - 2, 2, 3, 4, 7, 1, 1, 2, 1, 1, - 1, 1, 2, 2, 1, 1, 2, 1, 1, 1, - 1, 2, 2, 1, 1, 2, 2, 2, 2, 3, - 0, 5, 0, 7, 1, 1, 2, 3, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 0, 5, 0, - 6, 1, 1, 2, 1, 3, 3, 5, 1, 1, - 1, 1, 0, 6, 4, 2, 3, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, - 2, 2, 2, 1, 2, 1, 3, 2, 1, 0, - 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, - 1, 1, 1, 3, 1, 4, 7, 7, 4, 2, - 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 5, - 4, 4, 3, 3, 3, 3, 1, 4, 7, 7, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 4, 4, 2, 5, 2, 2, 2, 2, 2, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 5, 4, 4, 3, - 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 7, 7, 4, 2, 5, 2, 2, 2, - 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, - 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, - 1, 1, 2, 2, 1, 1, 1, 2, 0 -}; - -static const short yydefact[] = { 0, - 529, 0, 0, 529, 4, 478, 474, 477, 527, 480, - 0, 0, 0, 0, 0, 0, 476, 0, 0, 0, - 0, 0, 0, 0, 0, 475, 0, 0, 0, 0, - 0, 0, 0, 2, 427, 479, 197, 261, 262, 263, - 250, 0, 276, 249, 274, 269, 265, 266, 264, 268, - 251, 0, 252, 267, 279, 529, 3, 199, 200, 201, - 202, 0, 0, 196, 258, 259, 260, 19, 20, 0, - 26, 0, 0, 0, 0, 0, 119, 529, 0, 5, - 14, 6, 17, 0, 12, 39, 13, 15, 16, 28, - 529, 529, 529, 529, 529, 0, 529, 529, 529, 215, - 0, 443, 0, 0, 214, 529, 529, 0, 0, 529, - 449, 447, 448, 446, 197, 261, 262, 263, 276, 274, - 269, 265, 264, 268, 267, 0, 0, 393, 445, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 528, 529, 278, 275, 265, 271, 265, 270, 273, - 525, 526, 198, 272, 0, 529, 529, 529, 529, 219, - 189, 238, 204, 221, 203, 21, 529, 0, 529, 0, - 24, 23, 22, 0, 0, 18, 0, 256, 73, 206, - 38, 0, 29, 34, 32, 36, 0, 37, 31, 0, - 33, 35, 10, 0, 0, 42, 208, 209, 210, 211, - 0, 0, 205, 0, 392, 391, 0, 0, 0, 0, - 0, 0, 0, 0, 216, 529, 218, 217, 0, 0, - 0, 0, 0, 0, 0, 473, 457, 458, 459, 460, - 461, 462, 465, 466, 472, 0, 455, 456, 463, 464, - 453, 454, 450, 451, 452, 471, 470, 0, 0, 220, - 277, 529, 190, 192, 191, 0, 529, 529, 240, 529, - 529, 27, 0, 529, 253, 529, 0, 0, 50, 257, - 59, 61, 44, 30, 0, 529, 207, 529, 0, 280, - 155, 0, 0, 41, 40, 0, 213, 212, 431, 435, - 433, 434, 441, 0, 440, 432, 437, 0, 436, 439, - 442, 0, 438, 428, 394, 0, 469, 468, 193, 0, - 0, 390, 389, 0, 243, 245, 242, 529, 529, 0, - 0, 226, 225, 0, 255, 529, 130, 131, 0, 0, - 0, 0, 122, 123, 529, 129, 121, 52, 54, 0, - 529, 0, 0, 529, 0, 529, 172, 173, 0, 529, - 529, 529, 0, 171, 529, 63, 0, 529, 0, 7, - 0, 529, 0, 0, 0, 0, 0, 0, 0, 43, - 529, 133, 0, 444, 0, 467, 529, 194, 239, 244, - 0, 0, 222, 0, 0, 0, 0, 227, 529, 0, - 0, 529, 125, 529, 132, 529, 0, 180, 181, 0, - 529, 529, 529, 529, 529, 179, 0, 51, 529, 520, - 516, 519, 529, 145, 0, 0, 518, 0, 0, 0, - 517, 0, 0, 0, 0, 0, 0, 146, 149, 529, - 170, 481, 521, 144, 0, 0, 0, 45, 529, 0, - 529, 174, 176, 175, 69, 529, 11, 529, 156, 281, - 282, 280, 0, 529, 529, 0, 161, 163, 160, 158, - 0, 135, 88, 89, 90, 91, 92, 93, 96, 97, - 112, 100, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 111, 116, 115, 99, 98, 85, 87, 86, - 94, 95, 83, 84, 80, 81, 82, 79, 0, 0, - 78, 134, 137, 136, 0, 0, 0, 142, 529, 0, - 46, 153, 0, 0, 0, 247, 246, 241, 0, 0, - 0, 231, 522, 0, 230, 0, 229, 0, 0, 0, - 529, 228, 0, 254, 0, 529, 0, 117, 120, 118, - 124, 529, 182, 184, 183, 0, 0, 529, 127, 151, - 53, 529, 0, 55, 529, 529, 0, 486, 0, 0, - 491, 490, 489, 0, 0, 488, 529, 148, 0, 529, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 529, 0, 48, 71, 177, - 529, 0, 0, 284, 285, 287, 286, 291, 288, 289, - 290, 292, 293, 294, 295, 296, 297, 298, 299, 300, - 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, - 311, 312, 313, 314, 315, 316, 364, 317, 318, 319, - 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, - 344, 330, 331, 332, 333, 334, 335, 336, 337, 338, - 339, 340, 365, 341, 342, 343, 345, 346, 347, 348, - 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, - 359, 360, 361, 362, 363, 529, 382, 383, 384, 375, - 387, 371, 372, 370, 377, 378, 366, 367, 368, 369, - 376, 374, 381, 379, 385, 380, 373, 386, 283, 0, - 8, 0, 0, 159, 162, 138, 114, 113, 141, 140, - 154, 529, 0, 0, 430, 429, 529, 0, 524, 237, - 523, 236, 235, 234, 233, 232, 224, 0, 126, 128, - 185, 188, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 152, 395, 0, 0, 57, 0, 0, 168, 529, - 0, 529, 0, 0, 0, 515, 75, 60, 74, 147, - 150, 167, 499, 500, 501, 502, 503, 504, 507, 508, - 514, 0, 497, 498, 505, 506, 495, 496, 492, 493, - 494, 513, 512, 0, 0, 0, 65, 62, 0, 529, - 0, 178, 529, 0, 157, 9, 164, 529, 165, 0, - 139, 47, 195, 248, 0, 529, 0, 0, 0, 404, - 402, 403, 401, 0, 0, 400, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 186, 0, 56, 154, - 169, 0, 0, 485, 0, 482, 0, 0, 511, 510, - 67, 529, 49, 0, 529, 64, 388, 0, 529, 25, - 0, 0, 0, 0, 0, 426, 412, 413, 414, 415, - 416, 417, 418, 419, 425, 0, 410, 411, 408, 409, - 405, 406, 407, 424, 423, 0, 0, 58, 0, 487, - 0, 0, 509, 529, 0, 529, 70, 166, 143, 529, - 0, 399, 0, 396, 0, 422, 421, 0, 0, 76, - 0, 0, 529, 72, 187, 0, 0, 420, 484, 483, - 77, 529, 66, 0, 0, 68, 398, 397, 0, 0, - 0 -}; - -static const short yydefgoto[] = { 949, - 4, 369, 370, 81, 288, 82, 83, 177, 84, 85, - 86, 296, 355, 380, 448, 186, 350, 417, 418, 561, - 205, 351, 354, 458, 872, 914, 611, 810, 778, 512, - 549, 87, 184, 342, 343, 344, 345, 381, 732, 437, - 438, 559, 520, 294, 466, 467, 439, 363, 415, 170, - 56, 206, 102, 57, 58, 270, 59, 271, 331, 332, - 398, 60, 268, 61, 328, 324, 325, 62, 63, 88, - 336, 89, 64, 65, 66, 67, 367, 368, 460, 719, - 321, 214, 215, 762, 128, 35, 441, 442, 532, 382, - 36, 216 -}; - -static const short yypact[] = { 36, --32768, 2006, 2974, 437,-32768,-32768,-32768,-32768,-32768,-32768, - -51, -37, -17, -15, 39, 61,-32768, 59, 65, 75, - 3074, 104, 122, 127, 167,-32768, 151, 2006, 2006, 2006, - 2006, 1199, 2006, 2209,-32768, 103,-32768,-32768,-32768,-32768, --32768, 3124,-32768,-32768,-32768,-32768, 1189,-32768, 1937, 1937, --32768, 26,-32768, 1937,-32768, 133,-32768,-32768,-32768,-32768, --32768, 19, 43,-32768,-32768,-32768,-32768,-32768,-32768, 162, --32768, 163, 58, 180, 185, 191,-32768,-32768, 45,-32768, --32768,-32768,-32768, 2342,-32768,-32768,-32768,-32768,-32768,-32768, - 2006, 2006, 2006, 2006, 2006, 2974, 2006, 2006, 2006,-32768, - 26, 200, 26, 26,-32768, 2006, 2006, 2974, 2974, 2006, - 156, 156, 156, 156, -51, -37, -17, -15, 39, 59, - 65, 1589, 1385, 1676, 1763, 177, -63, 2209, 156, 2006, - 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, - 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 1484, - 2006,-32768, 133,-32768,-32768, 1850,-32768, 1937,-32768,-32768, --32768,-32768,-32768,-32768, 208, 133, 133, 133, 133, 203, --32768,-32768, 223,-32768, -44,-32768, 2728, 26,-32768, 227, --32768,-32768,-32768, 222, 2398,-32768, 26,-32768, 224, 225, --32768, 3124, 334,-32768,-32768,-32768, 3024,-32768,-32768, 26, --32768,-32768,-32768, 26, 212, 243,-32768,-32768,-32768,-32768, - 19, 43,-32768, 228, 248,-32768, 234, 240, 242, 245, - 256, 247, 249, 251,-32768, 2006,-32768,-32768, 252, 253, - 261, 266, 268, 2006, 2006,-32768, 2594, 2718, 2791, 2791, - 519, 519, 806, 806,-32768, 784, 2733, 661, 519, 519, - 221, 221, 156, 156, 156,-32768,-32768, -47, 2095, 203, --32768, 133, 203, 203, 203, -10, 2006, 26,-32768,-32768, - 293,-32768, 296, 3151,-32768, 2879, 3124, 212,-32768,-32768, --32768, 15,-32768, 103, 3124, 147,-32768,-32768, 281,-32768, --32768, 26, 1571,-32768,-32768, 120, 223, -44,-32768,-32768, --32768,-32768,-32768, 283,-32768,-32768,-32768, 284,-32768,-32768, --32768, 300,-32768, 156, 2209, 2006,-32768,-32768, 203, 305, - 301, 2209,-32768, 304, 325, 327,-32768, 26, 3176, 218, - 329, 331,-32768, 26,-32768,-32768,-32768,-32768, 26, 2266, - 26, 332, 336,-32768, 124,-32768,-32768,-32768,-32768, 120, - 1294, 320, 120, 1294, 120, 147,-32768,-32768, 322, 147, - 147, 147, 41,-32768, 3201,-32768, 335,-32768, 148,-32768, - 326, 1658, 1214, 328, 120, 2264, 120, 120, 120,-32768, - 116,-32768, 2006,-32768, 2006, 2209, 1294,-32768,-32768, 26, - 2006, 337,-32768, 434, 694, 734, 179,-32768,-32768, 218, - 345, 3226, 349, 124,-32768, 371, 2879,-32768,-32768, 346, - 124, 124, 124, 124, -75,-32768, 120,-32768, 116,-32768, --32768,-32768, 124,-32768, 3124, 351,-32768, 3074, 347, 354, --32768, 2006, 2006, 2006, 1199, 2006, 344, 10,-32768, 124, - 2540,-32768, 103,-32768, 120, 187, 348,-32768, 116, 138, - 147, 350, 350, 350,-32768, 2006,-32768, 1294,-32768, 1075, --32768,-32768, 26, 2006, 1658, 352, 365, 2209,-32768,-32768, - 120, 190,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 357, 356, --32768,-32768, 190, 190, 260, 184, 1571,-32768, 2006, 366, --32768,-32768, -35, -22, 360, 367, 2209,-32768, 26, 323, - 26,-32768,-32768, 323,-32768, 323,-32768, 323, 323, 323, - 3251,-32768, 26,-32768, 2974, -75, 2454,-32768,-32768,-32768, --32768, 124, 368, 368, 368, 183, 2018, 2006,-32768,-32768, --32768, 116, 384,-32768, -58, 124, 2974, 370, 2974, 2974, - 156, 156, 156, 369, -13, 156, 443,-32768, 1389, -58, - 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, - 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, 2006, - 1745, 2006, 400, 491, 375, 443, 394,-32768,-32768, 350, - 1294, 373, 381,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 383, --32768, 389, 392,-32768, 1832, 190,-32768,-32768,-32768,-32768, - 1214, 1294, 393, 120,-32768,-32768, 443, 2006,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 406,-32768,-32768, - 368, 410, 421, 416, 431, 2018, 2018, 2018, 2018, 1199, - 2018, 2578,-32768, 420, 445,-32768, 120, 2006,-32768, -58, - 439, 2006, 427, 441, 2006,-32768,-32768, 467,-32768,-32768, --32768,-32768, 2594, 2718, 2791, 2791, 519, 519, 806, 806, --32768, 1407, 2733, 661, 519, 519, 221, 221, 156, 156, - 156,-32768,-32768, -12, 2131, 438,-32768, 467, 120, 1294, - 440,-32768, 443, 939,-32768,-32768,-32768, 1658, 2209, 444, --32768,-32768, 467, 2209, 457, 1294, 2974, 2974, 2974, 168, - 168, 168, 168, 446, 4, 168, 2018, 2018, 2018, 2018, - 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, 2018, - 2018, 2018, 2018, 2018, 1919, 2006,-32768, 120,-32768, 2209, --32768, 447, 449,-32768, 461, 156, 462, 2006,-32768,-32768, --32768, 1294,-32768, 466, 443, 467,-32768, 460, 443,-32768, - 469, 472, 471, 477, 2018,-32768, 2610, 2748, 2897, 2897, - 1476, 1476, 954, 954,-32768, 2561, 2763, 2778, 272, 272, - 168, 168, 168,-32768,-32768, 35, 2150,-32768, 2006,-32768, - 2006, 22, 2209, 1294, 475, 443, 467,-32768, 467, 443, - 478,-32768, 479, 168, 2018,-32768,-32768, 47, 123,-32768, - 480, 483, 443, 467, 467, 2006, 2006, 2578,-32768,-32768, --32768, 443, 467, 160, 176, 467,-32768,-32768, 570, 601, --32768 -}; - -static const short yypgoto[] = {-32768, - -146,-32768, 139,-32768,-32768, 442,-32768,-32768, -59, 202, --32768,-32768,-32768, -123, -192,-32768,-32768,-32768, -149, -238, - 436,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -304,-32768, --32768, 216,-32768,-32768,-32768, 235, 290, -292,-32768, -337, --32768, 85, -393, -255, -464,-32768, 53, -316, -375, -73, - -38, 458, 217, 11, -82,-32768, -70,-32768,-32768,-32768, - 244, -69,-32768, -68,-32768, 318,-32768, -3, 57,-32768, --32768,-32768, -11, 25,-32768,-32768, 186,-32768, -49,-32768, - -414, -86, -27, 9, 69, -133,-32768,-32768, -306, 219, - -125, -1 -}; - - -#define YYLAST 3375 - - -static const short yytable[] = { 5, - 723, 207, 90, 153, 127, 217, 218, 219, 220, 105, - 222, 223, 224, 208, 209, 210, 447, 103, 185, 229, - 230, 578, 349, 233, 352, 563, 161, 162, 546, 161, - 162, 557, 274, 161, 162, 553, 554, 555, 556, 450, - 235, 612, 126, 452, 453, 454, 558, 565, 768, 525, - 161, 162, 161, 162, 171, 607, 235, 419, -223, 236, - 446, -223, 449, 558, 580, 161, 162, 284, 235, 91, - 34, 157, 213, 159, 160, 317, 90, 104, 164, 260, - 211, 235, 472, 92, 513, 514, 515, 735, 535, 537, - 235, 235, 263, 264, 265, 266, 111, 112, 113, 114, - 736, 129, 207, 93, 733, 94, 221, 235, 152, 776, - 869, 267, 320, 579, 208, 209, 210, 187, 231, 232, - 613, 172, 258, 329, 562, 521, 886, 161, 162, 374, - 353, 408, 409, 410, 610, 1, 2, 3, 235, 308, - 212, 365, 165, 764, 930, 174, 157, 159, 160, 164, - 235, 171, 603, 283, 357, 358, 359, 926, 286, 95, - 179, 455, 456, 564, 171, 171, 171, 171, 765, 939, - 375, 769, 96, 213, 411, 90, 751, 5, 726, 97, - 157, 211, 157, 166, 138, 98, 782, 730, 319, 402, - 770, 161, 162, 608, 376, 99, 845, 360, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 290, 259, - 291, 516, 517, 740, 106, 443, 235, 742, 443, 743, - 377, 744, 745, 746, 412, 378, 518, 519, 348, 413, - 379, 212, 107, 167, 414, 940, 356, 108, 168, 138, - 462, 463, 541, 169, 538, 539, 540, 361, 609, 456, - 171, 443, 362, 235, 346, 323, 327, 176, 5, 333, - 163, 110, 90, 811, 347, 149, 150, 151, 109, 235, - 173, 175, 947, 178, 364, 181, 5, 854, 855, 856, - 182, 180, 604, 394, 395, 396, 183, 188, 948, 234, - 845, 808, 314, 315, 558, 752, 766, 518, 519, 605, - 518, 519, 440, 397, 290, 440, 291, 292, 293, 225, - 226, 227, 228, 262, 267, 269, 327, 90, 346, 275, - 161, 162, 443, 276, 5, 322, 146, 147, 148, 9, - 149, 150, 151, 416, 281, 282, 547, 295, 440, 444, - 299, 235, 444, 878, 364, 523, 300, 524, 364, 364, - 364, 373, 301, 90, 302, 604, 461, 303, 304, 305, - 469, 306, 41, 307, 309, 310, 861, 722, 312, 522, - 518, 519, 729, 311, 386, 444, 566, 851, 852, 853, - 313, 854, 855, 856, 820, 346, 273, 5, 330, 334, - 90, 366, 416, 383, 90, 280, 384, 575, 51, 416, - 416, 416, 416, 560, 529, 53, 105, 522, 287, 440, - 385, 416, 289, 763, 103, 387, 388, 389, 390, 297, - 298, 399, 823, 391, 400, 445, -1, 451, 416, 407, - 468, 161, 162, 471, 406, 574, 464, 522, 543, 364, - 531, 531, 531, 443, 323, 545, 444, 77, 459, 527, - 528, 552, 567, 469, 207, 570, 577, 569, 725, 734, - 606, 456, 874, 738, 419, 724, 208, 209, 210, 727, - 68, 728, 737, 41, 104, 443, 326, 767, 881, 558, - 772, 775, 69, 777, 730, 807, 70, 809, 812, 71, - 571, 572, 573, 813, 576, 604, 815, 72, 876, 73, - 371, 816, 74, 75, 76, 817, 449, 323, 821, 51, - 518, 519, 806, 77, 322, 529, 53, 78, 825, 530, - 826, 79, 827, 468, 915, 213, 828, 136, 137, 90, - 440, 80, 829, 211, 560, 857, 326, 138, 858, 864, - 416, 862, 401, 865, 867, 749, 323, 403, 871, 405, - 522, 880, 875, 522, 416, 562, 879, 909, 885, 950, - 917, 910, 440, 804, 919, 779, 932, 771, 522, 773, - 774, 911, 912, 918, 921, 731, 531, 322, 916, 923, - 531, 920, 531, 922, 531, 531, 531, 933, 936, 937, - 951, 721, 941, 212, 779, 942, 443, 548, 526, 444, - 822, 934, 533, 533, 533, 935, 873, 859, 272, 908, - 278, 550, 763, 763, 763, 763, 322, 763, 943, 404, - 750, 781, 144, 145, 146, 147, 148, 946, 149, 150, - 151, 551, 279, 542, 568, 392, 814, 720, 0, 783, - 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, - 794, 795, 796, 797, 798, 799, 800, 801, 802, 0, - 805, 0, 0, 0, 0, 132, 133, 134, 135, 136, - 137, 371, 0, 0, 443, 863, 0, 0, 0, 138, - 0, 0, 0, 440, 461, 0, 0, 0, 0, 0, - 443, 161, 162, 763, 763, 763, 763, 763, 763, 763, - 763, 763, 763, 763, 763, 763, 763, 763, 763, 763, - 763, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 444, 0, 835, 0, 371, 779, 0, 0, 0, 0, - 0, 161, 162, 41, 0, 0, 443, 739, 533, 741, - 0, 763, 533, 0, 533, 0, 533, 533, 533, 0, - 0, 748, 0, 0, 830, 831, 832, 833, 522, 836, - 834, 440, 142, 143, 144, 145, 146, 147, 148, 51, - 149, 150, 151, 41, 0, 529, 53, 440, 443, 534, - 0, 763, 0, 819, 0, 0, 130, 131, 132, 133, - 134, 135, 136, 137, 0, 0, 824, 0, 444, 0, - 0, 779, 138, 0, 0, 0, 469, 0, 0, 51, - 0, 0, 0, 0, 444, 529, 53, 906, 0, 536, - 0, 0, 0, 440, 138, 0, 860, 882, 883, 884, - 0, 0, 0, 866, 0, 887, 888, 889, 890, 891, - 892, 893, 894, 895, 896, 897, 898, 899, 900, 901, - 902, 903, 904, 0, 0, 0, 0, 0, 0, 0, - 444, 0, 0, 779, 0, 440, 0, 779, 0, 0, - 0, 928, 0, 929, 0, 0, 468, 0, 0, 316, - 0, 139, 140, 924, 141, 142, 143, 144, 145, 146, - 147, 148, 0, 149, 150, 151, 0, 0, 944, 945, - 0, 0, 444, 0, 779, 0, 0, 0, 779, 144, - 145, 146, 147, 148, 907, 149, 150, 151, 0, 0, - 0, 779, 0, 938, 0, 0, 913, 0, 0, 0, - 779, 614, 615, 616, 617, 618, 619, 620, 621, 0, - 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, - 632, 0, 0, 0, 0, 0, 0, 633, 634, 635, - 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, - 646, 647, 845, 0, 648, 649, 650, 651, 652, 653, - 654, 655, 656, 657, 0, 658, 659, 660, 661, 662, - 663, 664, 665, 666, 667, 668, 669, 670, 0, 0, - 671, 0, 672, 673, 674, 675, 676, 677, 678, 679, - 680, 681, 682, 683, 684, 0, 685, 686, 687, 688, - 689, 690, 691, 0, 692, 693, 694, 695, 0, 0, - 0, 696, 697, 698, 699, 700, 701, 702, 703, 704, - 705, 706, 707, 708, 709, 710, 711, 712, 713, 714, - 715, 716, 877, 717, 718, 0, 0, 849, 850, 851, - 852, 853, 0, 854, 855, 856, 0, 614, 615, 616, - 617, 618, 619, 620, 621, 0, 622, 623, 624, 625, - 626, 627, 628, 629, 630, 631, 632, 0, 0, 0, - 0, 0, 0, 633, 634, 635, 636, 637, 638, 639, - 640, 641, 642, 643, 644, 645, 646, 647, 0, 0, - 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, - 931, 658, 659, 660, 661, 662, 663, 664, 665, 666, - 667, 668, 669, 670, 0, 0, 671, 0, 672, 673, - 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, - 684, 0, 685, 686, 687, 688, 689, 690, 691, 0, - 692, 693, 694, 695, 0, 0, 0, 696, 697, 698, - 699, 700, 701, 702, 703, 704, 705, 706, 707, 708, - 709, 710, 711, 712, 713, 714, 715, 716, 0, 717, - 718, 6, 7, 8, 9, 0, 10, 115, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 130, 131, 132, 133, - 134, 135, 136, 137, 38, 0, 39, 40, 0, 0, - 0, 154, 138, 0, 116, 0, 117, 118, 41, 42, - 155, 119, 16, 0, 0, 44, 46, 156, 48, 17, - 120, 0, 0, 0, 0, 0, 121, 122, 48, 49, - 50, 0, 21, 0, 0, 0, 0, 0, 0, 123, - 124, 24, 54, 25, 51, 0, 0, 26, 0, 0, - 52, 53, 125, 0, 0, 55, 420, 421, 422, 9, - 0, 423, 37, 0, 0, 424, 0, 0, 0, 28, - 0, 0, 0, 29, 30, 0, 0, 31, 470, 32, - 0, 139, 140, 33, 141, 142, 143, 144, 145, 146, - 147, 148, 0, 149, 150, 151, 0, 0, 0, 38, - 0, 39, 40, 41, 425, 0, 43, 426, 0, 0, - 44, 0, 0, 0, 427, 45, 0, 0, 0, 0, - 0, 46, 47, 48, 0, 0, 0, 428, 0, 0, - 0, 0, 0, 0, 49, 50, 429, 0, 430, 51, - 0, 0, 431, 0, 0, 52, 53, 54, 0, 0, - 55, 420, 421, 422, 9, 0, 423, 37, 0, 0, - 780, 0, 0, 0, 432, 0, 0, 0, 433, 0, - 0, 0, 434, 0, 435, 0, 0, 0, 436, 130, - 131, 132, 133, 134, 135, 136, 137, 0, 0, 0, - 38, 0, 39, 40, 38, 138, 39, 40, 41, 425, - 0, 43, 426, 0, 0, 44, 0, 0, 0, 427, - 45, 0, 46, 158, 48, 0, 46, 47, 48, 0, - 0, 0, 428, 0, 0, 49, 50, 0, 0, 49, - 50, 429, 0, 430, 51, 0, 0, 431, 54, 0, - 52, 53, 54, 0, 0, 55, 6, 7, 8, 9, - 0, 10, 11, 0, 843, 844, 0, 0, 0, 432, - 0, 0, 0, 433, 845, 106, 0, 434, 0, 435, - 0, 0, 868, 436, 139, 140, 0, 141, 142, 143, - 144, 145, 146, 147, 148, 0, 149, 150, 151, 12, - 0, 13, 14, 0, 0, 0, 15, 16, 0, 0, - 0, 0, 0, 0, 17, 18, 0, 0, 0, 0, - 0, 19, 20, 0, 0, 0, 0, 21, 0, 0, - 0, 0, 0, 0, 22, 23, 24, 0, 25, 0, - 0, 0, 26, 6, 7, 8, 9, 27, 10, 11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 849, - 850, 851, 852, 853, 28, 854, 855, 856, 29, 30, - 0, 0, 31, 0, 32, 0, 257, 0, 33, 0, - 0, 0, 0, 0, 0, 0, 12, 0, 13, 14, - 0, 0, 0, 15, 16, 0, 0, 0, 0, 0, - 0, 17, 18, 0, 38, 0, 39, 40, 19, 20, - 0, 154, 0, 0, 21, 0, 0, 0, 0, 0, - 155, 22, 23, 24, 0, 25, 46, 156, 48, 26, - 6, 7, 8, 9, 27, 10, 11, 0, 0, 49, - 50, 0, 0, 372, 0, 0, 0, 0, 0, 0, - 0, 28, 54, 0, 0, 29, 30, 0, 0, 31, - 0, 32, 0, 0, 0, 33, 0, 0, 0, 0, - 0, 0, 0, 12, 0, 13, 14, 0, 0, 99, - 15, 16, 0, 0, 0, 0, 0, 0, 17, 18, - 0, 38, 0, 39, 40, 19, 20, 0, 0, 0, - 0, 21, 0, 0, 0, 0, 0, 0, 22, 23, - 24, 0, 25, 46, 158, 48, 26, 6, 7, 8, - 9, 27, 10, 11, 0, 0, 49, 50, 0, 0, - 465, 0, 0, 0, 0, 0, 0, 0, 28, 54, - 0, 0, 29, 30, 0, 0, 31, 0, 32, 0, - 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, - 12, 0, 13, 14, 0, 0, 107, 15, 16, 0, - 0, 0, 0, 0, 0, 17, 18, 0, 38, 0, - 39, 40, 19, 20, 0, 0, 0, 0, 21, 0, - 0, 0, 0, 0, 0, 22, 23, 24, 0, 25, - 46, 158, 48, 26, 6, 7, 8, 9, 27, 10, - 11, 0, 0, 49, 50, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 28, 54, 0, 0, 29, - 30, 0, 0, 31, 0, 32, 0, 803, 0, 33, - 0, 0, 0, 0, 0, 0, 0, 12, 0, 13, - 14, 0, 0, 110, 15, 16, 0, 0, 0, 0, - 0, 0, 17, 18, 0, 38, 0, 39, 40, 19, - 20, 0, 0, 0, 0, 21, 0, 0, 0, 0, - 0, 261, 22, 23, 24, 0, 25, 46, 158, 48, - 26, 6, 7, 8, 9, 27, 10, 11, 0, 0, - 49, 50, 0, 0, 818, 0, 0, 0, 0, 0, - 0, 0, 28, 54, 0, 0, 29, 30, 0, 0, - 31, 0, 32, 0, 0, 0, 33, 0, 0, 0, - 0, 0, 0, 0, 12, 0, 13, 14, 0, 0, - 0, 15, 16, 0, 0, 0, 0, 0, 0, 17, - 18, 0, 38, 0, 39, 40, 19, 20, 0, 0, - 0, 0, 21, 0, 0, 0, 0, 0, 0, 22, - 23, 24, 0, 25, 46, 158, 48, 26, 6, 7, - 8, 9, 27, 10, 11, 0, 0, 49, 50, 0, - 6, 7, 8, 9, 0, 10, 0, 0, 0, 28, - 54, 0, 0, 29, 30, 0, 0, 31, 0, 32, - 0, 905, 0, 33, 0, 0, 0, 0, 0, 0, - 0, 12, 0, 13, 14, 0, 0, 0, 15, 16, - 0, 0, 0, 0, 0, 0, 17, 18, 0, 0, - 0, 753, 0, 19, 20, 0, 0, 0, 17, 21, - 0, 0, 0, 0, 0, 0, 22, 23, 24, 0, - 25, 0, 0, 0, 26, 0, 0, 0, 0, 27, - 754, 0, 755, 0, 0, 0, 26, 130, 131, 132, - 133, 134, 135, 136, 137, 0, 28, 0, 0, 0, - 29, 30, 0, 138, 31, 0, 32, 0, 756, 0, - 33, 0, 757, 758, 0, 0, 759, 0, 760, 0, - 0, 0, 761, 130, 131, 132, 133, 134, 135, 136, - 137, 0, 0, 0, 0, 0, 0, 0, 0, 138, - 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, - 0, 0, 0, 0, 0, 0, 0, 0, 138, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 139, 140, 0, 141, 142, 143, 144, 145, - 146, 147, 148, 0, 149, 150, 151, 0, 0, 0, - 318, 130, 131, 132, 133, 134, 135, 136, 137, 0, - 0, 0, 0, 0, 0, 0, 0, 138, 139, 140, - 0, 141, 142, 143, 144, 145, 146, 147, 148, 0, - 149, 150, 151, 0, 0, 0, 870, 139, 140, 0, - 141, 142, 143, 144, 145, 146, 147, 148, 0, 149, - 150, 151, 0, 337, 338, 927, 473, 474, 475, 476, - 477, 478, 479, 480, 0, 0, 0, 0, 0, 0, - 0, 0, 481, 0, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 492, 493, 0, 0, 0, 0, - 0, 38, 0, 39, 40, 494, 139, 140, 43, 141, - 142, 143, 144, 145, 146, 147, 148, 45, 149, 150, - 151, 0, 0, 46, 47, 48, 0, 495, 0, 0, - 0, 0, 0, 0, 0, 0, 49, 50, 0, 189, - 190, 0, 0, 0, 0, 0, 0, 341, 0, 54, - 0, 0, 55, 0, 0, 0, 0, 496, 0, 0, - 497, 0, 498, 499, 500, 501, 502, 503, 504, 505, - 506, 507, 508, 0, 509, 510, 191, 38, 511, 39, - 40, 41, 192, 0, 43, 0, 0, 0, 44, 193, - 194, 0, 0, 45, 0, 189, 190, 0, 195, 46, - 47, 48, 0, 196, 0, 0, 197, 0, 0, 0, - 198, 0, 49, 50, 0, 199, 0, 51, 0, 0, - 0, 0, 0, 200, 53, 54, 0, 201, 55, 202, - 0, 0, 191, 38, 203, 39, 40, 41, 277, 0, - 43, 0, 0, 0, 44, 193, 194, 0, 0, 45, - 204, 189, 190, 0, 195, 46, 47, 48, 0, 196, - 0, 0, 197, 0, 0, 0, 198, 0, 49, 50, - 0, 199, 0, 51, 0, 0, 0, 0, 0, 200, - 53, 54, 0, 201, 55, 202, 0, 0, 191, 38, - 0, 39, 40, 41, 192, 0, 43, 0, 0, 0, - 44, 193, 194, 0, 0, 45, 204, 0, 0, 0, - 195, 46, 47, 48, 0, 196, 0, 0, 197, 0, - 0, 0, 198, 0, 49, 50, 0, 199, 0, 51, - 0, 0, 0, 0, 0, 200, 53, 54, 0, 201, - 55, 202, 581, 582, 583, 584, 585, 586, 587, 588, - 0, 0, 0, 0, 0, 0, 0, 0, 589, 0, - 0, 0, 204, 837, 838, 839, 840, 841, 842, 843, - 844, 0, 0, 0, 0, 0, 0, 0, 0, 845, - 837, 838, 839, 840, 841, 842, 843, 844, 0, 0, - 0, 0, 0, 0, 0, 0, 845, 131, 132, 133, - 134, 135, 136, 137, 0, 0, 0, 0, 0, 0, - 0, 0, 138, 838, 839, 840, 841, 842, 843, 844, - 0, 0, 0, 0, 0, 0, 0, 0, 845, 0, - 0, 0, 0, 0, 0, 0, 0, 590, 591, 0, - 592, 593, 594, 595, 596, 597, 598, 599, 0, 600, - 601, 602, 0, 0, 0, 0, 925, 0, 846, 847, - 0, 848, 0, 0, 849, 850, 851, 852, 853, 0, - 854, 855, 856, 0, 0, 846, 847, 0, 848, 0, - 0, 849, 850, 851, 852, 853, 0, 854, 855, 856, - 0, 0, 140, 0, 141, 142, 143, 144, 145, 146, - 147, 148, 0, 149, 150, 151, 0, 0, 847, 0, - 848, 0, 0, 849, 850, 851, 852, 853, 0, 854, - 855, 856, 132, 133, 134, 135, 136, 137, 0, 0, - 0, 0, 0, 0, 0, 0, 138, 132, 133, 134, - 135, 136, 137, 0, 0, 0, 0, 0, 0, 0, - 0, 138, 839, 840, 841, 842, 843, 844, 0, 0, - 0, 68, 0, 0, 0, 0, 845, 839, 840, 841, - 842, 843, 844, 69, 0, 0, 0, 70, 0, 0, - 71, 845, 839, 840, 841, 842, 843, 844, 72, 0, - 73, 0, 0, 74, 75, 76, 845, 134, 135, 136, - 137, 0, 0, 0, 77, 0, 0, 0, 78, 138, - 0, 0, 79, 0, 0, 0, 140, 0, 141, 142, - 143, 144, 145, 146, 147, 148, 0, 149, 150, 151, - 0, 0, 0, 141, 142, 143, 144, 145, 146, 147, - 148, 0, 149, 150, 151, 0, 847, 0, 848, 0, - 0, 849, 850, 851, 852, 853, 0, 854, 855, 856, - 0, 0, 0, 848, 0, 0, 849, 850, 851, 852, - 853, 0, 854, 855, 856, 0, 337, 338, 0, 0, - 0, 849, 850, 851, 852, 853, 0, 854, 855, 856, - 0, 0, 142, 143, 144, 145, 146, 147, 148, 0, - 149, 150, 151, 841, 842, 843, 844, 0, 0, 0, - 0, 0, 0, 0, 38, 845, 39, 40, 339, 340, - 0, 43, 0, 0, 0, 0, 0, 0, 0, 0, - 45, 0, 0, 0, 0, 0, 46, 47, 48, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 49, - 50, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 341, 0, 54, 0, 0, 55, 0, 0, 0, 0, - 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 849, 850, 851, 852, 853, 0, 854, 855, 856, 38, - 0, 39, 40, 41, 42, 0, 43, 0, 0, 0, - 44, 0, 37, 0, 0, 45, 0, 0, 0, 0, - 0, 46, 47, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 50, 0, 0, 0, 51, - 0, 0, 0, 0, 0, 52, 53, 54, 0, 38, - 55, 39, 40, 41, 285, 0, 43, 0, 0, 0, - 44, 0, 100, 0, 0, 45, 0, 0, 0, 0, - 0, 46, 47, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 50, 0, 0, 0, 51, - 0, 0, 0, 0, 0, 52, 53, 54, 0, 38, - 55, 39, 40, 41, 0, 0, 43, 0, 0, 0, - 44, 0, 37, 0, 0, 45, 0, 0, 0, 0, - 0, 46, 47, 48, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 50, 0, 0, 0, 51, - 0, 0, 0, 0, 0, 101, 53, 54, 0, 38, - 55, 39, 40, 41, 0, 0, 43, 0, 0, 0, - 44, 0, 0, 0, 0, 45, 0, 0, 0, 0, - 0, 46, 47, 48, 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 49, 50, 69, 0, 0, 51, - 70, 0, 0, 71, 0, 52, 53, 54, 0, 68, - 55, 72, 0, 73, 0, 0, 74, 75, 76, 0, - 0, 69, 0, 0, 0, 70, 0, 77, 71, 0, - 0, 78, 0, 0, 68, 79, 72, 0, 73, 0, - 0, 74, 75, 76, 0, 80, 69, 0, 0, 0, - 70, 0, 77, 71, 0, 0, 78, 0, 0, 68, - 79, 72, 0, 73, 335, 0, 74, 75, 76, 0, - 80, 69, 0, 0, 0, 70, 0, 77, 71, 0, - 0, 78, 0, 0, 68, 79, 72, 0, 73, 393, - 0, 74, 75, 76, 0, 80, 69, 0, 0, 0, - 70, 0, 77, 71, 0, 0, 78, 0, 0, 0, - 79, 72, 0, 73, 457, 0, 74, 75, 76, 0, - 80, 0, 0, 0, 0, 0, 0, 77, 0, 0, - 0, 78, 0, 0, 0, 79, 0, 0, 0, 544, - 0, 0, 0, 0, 0, 80, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 747 -}; - -static const short yycheck[] = { 1, - 465, 84, 4, 42, 32, 92, 93, 94, 95, 21, - 97, 98, 99, 84, 84, 84, 354, 21, 78, 106, - 107, 12, 278, 110, 10, 419, 8, 9, 404, 8, - 9, 107, 179, 8, 9, 411, 412, 413, 414, 356, - 104, 456, 32, 360, 361, 362, 122, 423, 107, 387, - 8, 9, 8, 9, 56, 449, 104, 350, 103, 123, - 353, 106, 355, 122, 440, 8, 9, 193, 104, 121, - 2, 47, 84, 49, 50, 123, 78, 21, 54, 153, - 84, 104, 375, 121, 377, 378, 379, 123, 395, 396, - 104, 104, 166, 167, 168, 169, 28, 29, 30, 31, - 123, 33, 185, 121, 519, 121, 96, 104, 6, 123, - 123, 122, 123, 104, 185, 185, 185, 73, 108, 109, - 458, 103, 150, 270, 417, 381, 123, 8, 9, 10, - 116, 8, 9, 10, 451, 100, 101, 102, 104, 226, - 84, 288, 10, 558, 123, 103, 122, 123, 124, 125, - 104, 153, 445, 192, 8, 9, 10, 123, 197, 121, - 103, 121, 122, 419, 166, 167, 168, 169, 562, 123, - 51, 565, 112, 185, 51, 177, 552, 179, 471, 121, - 156, 185, 158, 51, 29, 121, 580, 4, 262, 336, - 566, 8, 9, 449, 75, 121, 29, 51, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, - 142, 143, 144, 145, 146, 147, 148, 149, 103, 151, - 105, 106, 107, 530, 121, 351, 104, 534, 354, 536, - 111, 538, 539, 540, 111, 116, 121, 122, 277, 116, - 121, 185, 121, 111, 121, 123, 285, 121, 116, 29, - 103, 104, 399, 121, 76, 77, 78, 111, 121, 122, - 262, 387, 116, 104, 276, 267, 268, 106, 270, 271, - 52, 121, 274, 611, 276, 120, 121, 122, 112, 104, - 62, 63, 123, 121, 286, 106, 288, 120, 121, 122, - 106, 73, 106, 76, 77, 78, 106, 79, 123, 123, - 29, 606, 234, 235, 122, 123, 562, 121, 122, 123, - 121, 122, 351, 96, 103, 354, 105, 106, 107, 101, - 121, 103, 104, 116, 122, 103, 328, 329, 340, 103, - 8, 9, 458, 112, 336, 267, 116, 117, 118, 6, - 120, 121, 122, 345, 121, 121, 406, 105, 387, 351, - 123, 104, 354, 818, 356, 383, 123, 385, 360, 361, - 362, 293, 123, 365, 123, 106, 368, 123, 113, 123, - 372, 123, 50, 123, 123, 123, 770, 464, 113, 381, - 121, 122, 123, 123, 316, 387, 425, 116, 117, 118, - 123, 120, 121, 122, 732, 407, 178, 399, 106, 104, - 402, 121, 404, 121, 406, 187, 123, 435, 86, 411, - 412, 413, 414, 415, 92, 93, 428, 419, 200, 458, - 121, 423, 204, 557, 428, 121, 126, 124, 104, 211, - 212, 103, 737, 107, 104, 116, 0, 116, 440, 104, - 372, 8, 9, 116, 113, 435, 121, 449, 104, 451, - 394, 395, 396, 579, 456, 107, 458, 87, 124, 391, - 124, 116, 112, 465, 547, 112, 123, 121, 104, 104, - 123, 122, 810, 107, 767, 124, 547, 547, 547, 123, - 44, 126, 123, 50, 428, 611, 268, 104, 826, 122, - 121, 123, 56, 51, 4, 121, 60, 104, 126, 63, - 432, 433, 434, 123, 436, 106, 124, 71, 813, 73, - 292, 123, 76, 77, 78, 124, 809, 519, 126, 86, - 121, 122, 123, 87, 456, 92, 93, 91, 123, 96, - 121, 95, 112, 465, 872, 547, 121, 19, 20, 541, - 579, 105, 112, 547, 546, 126, 328, 29, 104, 123, - 552, 113, 334, 113, 88, 545, 558, 339, 121, 341, - 562, 105, 123, 565, 566, 858, 123, 121, 123, 0, - 875, 123, 611, 601, 879, 577, 914, 567, 580, 569, - 570, 121, 121, 124, 113, 517, 530, 519, 123, 113, - 534, 123, 536, 123, 538, 539, 540, 123, 121, 121, - 0, 463, 123, 547, 606, 123, 732, 406, 390, 611, - 734, 916, 394, 395, 396, 920, 809, 767, 177, 858, - 185, 406, 756, 757, 758, 759, 558, 761, 933, 340, - 546, 579, 114, 115, 116, 117, 118, 942, 120, 121, - 122, 407, 185, 400, 428, 328, 696, 462, -1, 581, - 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, - 592, 593, 594, 595, 596, 597, 598, 599, 600, -1, - 602, -1, -1, -1, -1, 15, 16, 17, 18, 19, - 20, 463, -1, -1, 810, 772, -1, -1, -1, 29, - -1, -1, -1, 732, 696, -1, -1, -1, -1, -1, - 826, 8, 9, 837, 838, 839, 840, 841, 842, 843, - 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, - 854, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 732, -1, 760, -1, 516, 737, -1, -1, -1, -1, - -1, 8, 9, 50, -1, -1, 872, 529, 530, 531, - -1, 885, 534, -1, 536, -1, 538, 539, 540, -1, - -1, 543, -1, -1, 756, 757, 758, 759, 770, 761, - 760, 810, 112, 113, 114, 115, 116, 117, 118, 86, - 120, 121, 122, 50, -1, 92, 93, 826, 914, 96, - -1, 925, -1, 725, -1, -1, 13, 14, 15, 16, - 17, 18, 19, 20, -1, -1, 738, -1, 810, -1, - -1, 813, 29, -1, -1, -1, 818, -1, -1, 86, - -1, -1, -1, -1, 826, 92, 93, 855, -1, 96, - -1, -1, -1, 872, 29, -1, 768, 827, 828, 829, - -1, -1, -1, 775, -1, 837, 838, 839, 840, 841, - 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, - 852, 853, 854, -1, -1, -1, -1, -1, -1, -1, - 872, -1, -1, 875, -1, 914, -1, 879, -1, -1, - -1, 909, -1, 911, -1, -1, 818, -1, -1, 106, - -1, 108, 109, 885, 111, 112, 113, 114, 115, 116, - 117, 118, -1, 120, 121, 122, -1, -1, 936, 937, - -1, -1, 914, -1, 916, -1, -1, -1, 920, 114, - 115, 116, 117, 118, 856, 120, 121, 122, -1, -1, - -1, 933, -1, 925, -1, -1, 868, -1, -1, -1, - 942, 3, 4, 5, 6, 7, 8, 9, 10, -1, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, -1, -1, -1, -1, -1, -1, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 29, -1, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, -1, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, -1, -1, - 72, -1, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, -1, 88, 89, 90, 91, - 92, 93, 94, -1, 96, 97, 98, 99, -1, -1, - -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, - 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, - 122, 123, 124, 125, 126, -1, -1, 114, 115, 116, - 117, 118, -1, 120, 121, 122, -1, 3, 4, 5, - 6, 7, 8, 9, 10, -1, 12, 13, 14, 15, - 16, 17, 18, 19, 20, 21, 22, -1, -1, -1, - -1, -1, -1, 29, 30, 31, 32, 33, 34, 35, - 36, 37, 38, 39, 40, 41, 42, 43, -1, -1, - 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, - 912, 57, 58, 59, 60, 61, 62, 63, 64, 65, - 66, 67, 68, 69, -1, -1, 72, -1, 74, 75, - 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, - 86, -1, 88, 89, 90, 91, 92, 93, 94, -1, - 96, 97, 98, 99, -1, -1, -1, 103, 104, 105, - 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, -1, 125, - 126, 3, 4, 5, 6, -1, 8, 9, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 13, 14, 15, 16, - 17, 18, 19, 20, 46, -1, 48, 49, -1, -1, - -1, 53, 29, -1, 46, -1, 48, 49, 50, 51, - 62, 53, 54, -1, -1, 57, 68, 69, 70, 61, - 62, -1, -1, -1, -1, -1, 68, 69, 70, 81, - 82, -1, 74, -1, -1, -1, -1, -1, -1, 81, - 82, 83, 94, 85, 86, -1, -1, 89, -1, -1, - 92, 93, 94, -1, -1, 97, 3, 4, 5, 6, - -1, 8, 9, -1, -1, 12, -1, -1, -1, 111, - -1, -1, -1, 115, 116, -1, -1, 119, 105, 121, - -1, 108, 109, 125, 111, 112, 113, 114, 115, 116, - 117, 118, -1, 120, 121, 122, -1, -1, -1, 46, - -1, 48, 49, 50, 51, -1, 53, 54, -1, -1, - 57, -1, -1, -1, 61, 62, -1, -1, -1, -1, - -1, 68, 69, 70, -1, -1, -1, 74, -1, -1, - -1, -1, -1, -1, 81, 82, 83, -1, 85, 86, - -1, -1, 89, -1, -1, 92, 93, 94, -1, -1, - 97, 3, 4, 5, 6, -1, 8, 9, -1, -1, - 12, -1, -1, -1, 111, -1, -1, -1, 115, -1, - -1, -1, 119, -1, 121, -1, -1, -1, 125, 13, - 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, - 46, -1, 48, 49, 46, 29, 48, 49, 50, 51, - -1, 53, 54, -1, -1, 57, -1, -1, -1, 61, - 62, -1, 68, 69, 70, -1, 68, 69, 70, -1, - -1, -1, 74, -1, -1, 81, 82, -1, -1, 81, - 82, 83, -1, 85, 86, -1, -1, 89, 94, -1, - 92, 93, 94, -1, -1, 97, 3, 4, 5, 6, - -1, 8, 9, -1, 19, 20, -1, -1, -1, 111, - -1, -1, -1, 115, 29, 121, -1, 119, -1, 121, - -1, -1, 106, 125, 108, 109, -1, 111, 112, 113, - 114, 115, 116, 117, 118, -1, 120, 121, 122, 46, - -1, 48, 49, -1, -1, -1, 53, 54, -1, -1, - -1, -1, -1, -1, 61, 62, -1, -1, -1, -1, - -1, 68, 69, -1, -1, -1, -1, 74, -1, -1, - -1, -1, -1, -1, 81, 82, 83, -1, 85, -1, - -1, -1, 89, 3, 4, 5, 6, 94, 8, 9, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 114, - 115, 116, 117, 118, 111, 120, 121, 122, 115, 116, - -1, -1, 119, -1, 121, -1, 123, -1, 125, -1, - -1, -1, -1, -1, -1, -1, 46, -1, 48, 49, - -1, -1, -1, 53, 54, -1, -1, -1, -1, -1, - -1, 61, 62, -1, 46, -1, 48, 49, 68, 69, - -1, 53, -1, -1, 74, -1, -1, -1, -1, -1, - 62, 81, 82, 83, -1, 85, 68, 69, 70, 89, - 3, 4, 5, 6, 94, 8, 9, -1, -1, 81, - 82, -1, -1, 103, -1, -1, -1, -1, -1, -1, - -1, 111, 94, -1, -1, 115, 116, -1, -1, 119, - -1, 121, -1, -1, -1, 125, -1, -1, -1, -1, - -1, -1, -1, 46, -1, 48, 49, -1, -1, 121, - 53, 54, -1, -1, -1, -1, -1, -1, 61, 62, - -1, 46, -1, 48, 49, 68, 69, -1, -1, -1, - -1, 74, -1, -1, -1, -1, -1, -1, 81, 82, - 83, -1, 85, 68, 69, 70, 89, 3, 4, 5, - 6, 94, 8, 9, -1, -1, 81, 82, -1, -1, - 103, -1, -1, -1, -1, -1, -1, -1, 111, 94, - -1, -1, 115, 116, -1, -1, 119, -1, 121, -1, - -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, - 46, -1, 48, 49, -1, -1, 121, 53, 54, -1, - -1, -1, -1, -1, -1, 61, 62, -1, 46, -1, - 48, 49, 68, 69, -1, -1, -1, -1, 74, -1, - -1, -1, -1, -1, -1, 81, 82, 83, -1, 85, - 68, 69, 70, 89, 3, 4, 5, 6, 94, 8, - 9, -1, -1, 81, 82, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 111, 94, -1, -1, 115, - 116, -1, -1, 119, -1, 121, -1, 123, -1, 125, - -1, -1, -1, -1, -1, -1, -1, 46, -1, 48, - 49, -1, -1, 121, 53, 54, -1, -1, -1, -1, - -1, -1, 61, 62, -1, 46, -1, 48, 49, 68, - 69, -1, -1, -1, -1, 74, -1, -1, -1, -1, - -1, 62, 81, 82, 83, -1, 85, 68, 69, 70, - 89, 3, 4, 5, 6, 94, 8, 9, -1, -1, - 81, 82, -1, -1, 103, -1, -1, -1, -1, -1, - -1, -1, 111, 94, -1, -1, 115, 116, -1, -1, - 119, -1, 121, -1, -1, -1, 125, -1, -1, -1, - -1, -1, -1, -1, 46, -1, 48, 49, -1, -1, - -1, 53, 54, -1, -1, -1, -1, -1, -1, 61, - 62, -1, 46, -1, 48, 49, 68, 69, -1, -1, - -1, -1, 74, -1, -1, -1, -1, -1, -1, 81, - 82, 83, -1, 85, 68, 69, 70, 89, 3, 4, - 5, 6, 94, 8, 9, -1, -1, 81, 82, -1, - 3, 4, 5, 6, -1, 8, -1, -1, -1, 111, - 94, -1, -1, 115, 116, -1, -1, 119, -1, 121, - -1, 123, -1, 125, -1, -1, -1, -1, -1, -1, - -1, 46, -1, 48, 49, -1, -1, -1, 53, 54, - -1, -1, -1, -1, -1, -1, 61, 62, -1, -1, - -1, 54, -1, 68, 69, -1, -1, -1, 61, 74, - -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, - 85, -1, -1, -1, 89, -1, -1, -1, -1, 94, - 83, -1, 85, -1, -1, -1, 89, 13, 14, 15, - 16, 17, 18, 19, 20, -1, 111, -1, -1, -1, - 115, 116, -1, 29, 119, -1, 121, -1, 111, -1, - 125, -1, 115, 116, -1, -1, 119, -1, 121, -1, - -1, -1, 125, 13, 14, 15, 16, 17, 18, 19, - 20, -1, -1, -1, -1, -1, -1, -1, -1, 29, - -1, -1, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 108, 109, -1, 111, 112, 113, 114, 115, - 116, 117, 118, -1, 120, 121, 122, -1, -1, -1, - 126, 13, 14, 15, 16, 17, 18, 19, 20, -1, - -1, -1, -1, -1, -1, -1, -1, 29, 108, 109, - -1, 111, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, -1, -1, -1, 126, 108, 109, -1, - 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, - 121, 122, -1, 8, 9, 126, 13, 14, 15, 16, - 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, - -1, -1, 29, -1, 31, 32, 33, 34, 35, 36, - 37, 38, 39, 40, 41, 42, -1, -1, -1, -1, - -1, 46, -1, 48, 49, 52, 108, 109, 53, 111, - 112, 113, 114, 115, 116, 117, 118, 62, 120, 121, - 122, -1, -1, 68, 69, 70, -1, 74, -1, -1, - -1, -1, -1, -1, -1, -1, 81, 82, -1, 8, - 9, -1, -1, -1, -1, -1, -1, 92, -1, 94, - -1, -1, 97, -1, -1, -1, -1, 104, -1, -1, - 107, -1, 109, 110, 111, 112, 113, 114, 115, 116, - 117, 118, 119, -1, 121, 122, 45, 46, 125, 48, - 49, 50, 51, -1, 53, -1, -1, -1, 57, 58, - 59, -1, -1, 62, -1, 8, 9, -1, 67, 68, - 69, 70, -1, 72, -1, -1, 75, -1, -1, -1, - 79, -1, 81, 82, -1, 84, -1, 86, -1, -1, - -1, -1, -1, 92, 93, 94, -1, 96, 97, 98, - -1, -1, 45, 46, 103, 48, 49, 50, 51, -1, - 53, -1, -1, -1, 57, 58, 59, -1, -1, 62, - 119, 8, 9, -1, 67, 68, 69, 70, -1, 72, - -1, -1, 75, -1, -1, -1, 79, -1, 81, 82, - -1, 84, -1, 86, -1, -1, -1, -1, -1, 92, - 93, 94, -1, 96, 97, 98, -1, -1, 45, 46, - -1, 48, 49, 50, 51, -1, 53, -1, -1, -1, - 57, 58, 59, -1, -1, 62, 119, -1, -1, -1, - 67, 68, 69, 70, -1, 72, -1, -1, 75, -1, - -1, -1, 79, -1, 81, 82, -1, 84, -1, 86, - -1, -1, -1, -1, -1, 92, 93, 94, -1, 96, - 97, 98, 13, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, - -1, -1, 119, 13, 14, 15, 16, 17, 18, 19, - 20, -1, -1, -1, -1, -1, -1, -1, -1, 29, - 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, - -1, -1, -1, -1, -1, -1, 29, 14, 15, 16, - 17, 18, 19, 20, -1, -1, -1, -1, -1, -1, - -1, -1, 29, 14, 15, 16, 17, 18, 19, 20, - -1, -1, -1, -1, -1, -1, -1, -1, 29, -1, - -1, -1, -1, -1, -1, -1, -1, 108, 109, -1, - 111, 112, 113, 114, 115, 116, 117, 118, -1, 120, - 121, 122, -1, -1, -1, -1, 106, -1, 108, 109, - -1, 111, -1, -1, 114, 115, 116, 117, 118, -1, - 120, 121, 122, -1, -1, 108, 109, -1, 111, -1, - -1, 114, 115, 116, 117, 118, -1, 120, 121, 122, - -1, -1, 109, -1, 111, 112, 113, 114, 115, 116, - 117, 118, -1, 120, 121, 122, -1, -1, 109, -1, - 111, -1, -1, 114, 115, 116, 117, 118, -1, 120, - 121, 122, 15, 16, 17, 18, 19, 20, -1, -1, - -1, -1, -1, -1, -1, -1, 29, 15, 16, 17, - 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, - -1, 29, 15, 16, 17, 18, 19, 20, -1, -1, - -1, 44, -1, -1, -1, -1, 29, 15, 16, 17, - 18, 19, 20, 56, -1, -1, -1, 60, -1, -1, - 63, 29, 15, 16, 17, 18, 19, 20, 71, -1, - 73, -1, -1, 76, 77, 78, 29, 17, 18, 19, - 20, -1, -1, -1, 87, -1, -1, -1, 91, 29, - -1, -1, 95, -1, -1, -1, 109, -1, 111, 112, - 113, 114, 115, 116, 117, 118, -1, 120, 121, 122, - -1, -1, -1, 111, 112, 113, 114, 115, 116, 117, - 118, -1, 120, 121, 122, -1, 109, -1, 111, -1, - -1, 114, 115, 116, 117, 118, -1, 120, 121, 122, - -1, -1, -1, 111, -1, -1, 114, 115, 116, 117, - 118, -1, 120, 121, 122, -1, 8, 9, -1, -1, - -1, 114, 115, 116, 117, 118, -1, 120, 121, 122, - -1, -1, 112, 113, 114, 115, 116, 117, 118, -1, - 120, 121, 122, 17, 18, 19, 20, -1, -1, -1, - -1, -1, -1, -1, 46, 29, 48, 49, 50, 51, - -1, 53, -1, -1, -1, -1, -1, -1, -1, -1, - 62, -1, -1, -1, -1, -1, 68, 69, 70, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 81, - 82, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 92, -1, 94, -1, -1, 97, -1, -1, -1, -1, - -1, -1, 9, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 114, 115, 116, 117, 118, -1, 120, 121, 122, 46, - -1, 48, 49, 50, 51, -1, 53, -1, -1, -1, - 57, -1, 9, -1, -1, 62, -1, -1, -1, -1, - -1, 68, 69, 70, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 81, 82, -1, -1, -1, 86, - -1, -1, -1, -1, -1, 92, 93, 94, -1, 46, - 97, 48, 49, 50, 51, -1, 53, -1, -1, -1, - 57, -1, 9, -1, -1, 62, -1, -1, -1, -1, - -1, 68, 69, 70, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 81, 82, -1, -1, -1, 86, - -1, -1, -1, -1, -1, 92, 93, 94, -1, 46, - 97, 48, 49, 50, -1, -1, 53, -1, -1, -1, - 57, -1, 9, -1, -1, 62, -1, -1, -1, -1, - -1, 68, 69, 70, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 81, 82, -1, -1, -1, 86, - -1, -1, -1, -1, -1, 92, 93, 94, -1, 46, - 97, 48, 49, 50, -1, -1, 53, -1, -1, -1, - 57, -1, -1, -1, -1, 62, -1, -1, -1, -1, - -1, 68, 69, 70, 44, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 81, 82, 56, -1, -1, 86, - 60, -1, -1, 63, -1, 92, 93, 94, -1, 44, - 97, 71, -1, 73, -1, -1, 76, 77, 78, -1, - -1, 56, -1, -1, -1, 60, -1, 87, 63, -1, - -1, 91, -1, -1, 44, 95, 71, -1, 73, -1, - -1, 76, 77, 78, -1, 105, 56, -1, -1, -1, - 60, -1, 87, 63, -1, -1, 91, -1, -1, 44, - 95, 71, -1, 73, 124, -1, 76, 77, 78, -1, - 105, 56, -1, -1, -1, 60, -1, 87, 63, -1, - -1, 91, -1, -1, 44, 95, 71, -1, 73, 124, - -1, 76, 77, 78, -1, 105, 56, -1, -1, -1, - 60, -1, 87, 63, -1, -1, 91, -1, -1, -1, - 95, 71, -1, 73, 124, -1, 76, 77, 78, -1, - 105, -1, -1, -1, -1, -1, -1, 87, -1, -1, - -1, 91, -1, -1, -1, 95, -1, -1, -1, 124, - -1, -1, -1, -1, -1, 105, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 124 -}; -#define YYPURE 1 - -/* -*-C-*- Note some compilers choke on comments on `#line' lines. */ -#line 3 "/usr/share/bison.simple" -/* This file comes from bison-1.28. */ - -/* Skeleton output parser for bison, - Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place - Suite 330, - Boston, MA 02111-1307, USA. */ - -/* As a special exception, when this file is copied by Bison into a - Bison output file, you may use that output file without restriction. - This special exception was added by the Free Software Foundation - in version 1.24 of Bison. */ - -/* This is the parser code that is written into each bison parser - when the %semantic_parser declaration is not specified in the grammar. - It was written by Richard Stallman by simplifying the hairy parser - used when %semantic_parser is specified. */ - -#ifndef YYSTACK_USE_ALLOCA -#ifdef alloca -#define YYSTACK_USE_ALLOCA -#else /* alloca not defined */ -#ifdef __GNUC__ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#else /* not GNU C. */ -#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386)) -#define YYSTACK_USE_ALLOCA -#include -#else /* not sparc */ -/* We think this test detects Watcom and Microsoft C. */ -/* This used to test MSDOS, but that is a bad idea - since that symbol is in the user namespace. */ -#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__) -#if 0 /* No need for malloc.h, which pollutes the namespace; - instead, just don't use alloca. */ -#include -#endif -#else /* not MSDOS, or __TURBOC__ */ -#if defined(_AIX) -/* I don't know what this was needed for, but it pollutes the namespace. - So I turned it off. rms, 2 May 1997. */ -/* #include */ - #pragma alloca -#define YYSTACK_USE_ALLOCA -#else /* not MSDOS, or __TURBOC__, or _AIX */ -#if 0 -#ifdef __hpux /* haible@ilog.fr says this works for HPUX 9.05 and up, - and on HPUX 10. Eventually we can turn this on. */ -#define YYSTACK_USE_ALLOCA -#define alloca __builtin_alloca -#endif /* __hpux */ -#endif -#endif /* not _AIX */ -#endif /* not MSDOS, or __TURBOC__ */ -#endif /* not sparc */ -#endif /* not GNU C */ -#endif /* alloca not defined */ -#endif /* YYSTACK_USE_ALLOCA not defined */ - -#ifdef YYSTACK_USE_ALLOCA -#define YYSTACK_ALLOC alloca +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 #else -#define YYSTACK_ALLOC malloc +# define YYERROR_VERBOSE 0 #endif -/* Note: there must be only one dollar sign in this file. - It is replaced by the list of actions, each action - as one case of the switch. */ +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif + +#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED) +typedef struct YYLTYPE +{ + int first_line; + int first_column; + int last_line; + int last_column; +} YYLTYPE; +# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ +# define YYLTYPE_IS_DECLARED 1 +# define YYLTYPE_IS_TRIVIAL 1 +#endif + + +/* Copy the second part of user declarations. */ + + +/* Line 213 of yacc.c. */ +#line 499 "y.tab.c" + +#if ! defined (yyoverflow) || YYERROR_VERBOSE + +# ifndef YYFREE +# define YYFREE free +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# endif + +/* The parser invokes alloca or malloc; define the necessary symbols. */ + +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca +# else +# define YYSTACK_ALLOC alloca +# endif +# endif +# endif + +# ifdef YYSTACK_ALLOC + /* Pacify GCC's `empty if-body' warning. */ +# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) +# else +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# endif +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE +# endif +#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ + + +#if (! defined (yyoverflow) \ + && (! defined (__cplusplus) \ + || (defined (YYLTYPE_IS_TRIVIAL) && YYLTYPE_IS_TRIVIAL \ + && defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) + +/* A type that is properly aligned for any stack member. */ +union yyalloc +{ + short int yyss; + YYSTYPE yyvs; + YYLTYPE yyls; +}; + +/* The size of the maximum gap between one aligned stack and the next. */ +# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) + +/* The size of an array large to enough to hold all stacks, each with + N elements. */ +# define YYSTACK_BYTES(N) \ + ((N) * (sizeof (short int) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \ + + 2 * YYSTACK_GAP_MAXIMUM) + +/* Copy COUNT objects from FROM to TO. The source and destination do + not overlap. */ +# ifndef YYCOPY +# if defined (__GNUC__) && 1 < __GNUC__ +# define YYCOPY(To, From, Count) \ + __builtin_memcpy (To, From, (Count) * sizeof (*(From))) +# else +# define YYCOPY(To, From, Count) \ + do \ + { \ + register YYSIZE_T yyi; \ + for (yyi = 0; yyi < (Count); yyi++) \ + (To)[yyi] = (From)[yyi]; \ + } \ + while (0) +# endif +# endif + +/* Relocate STACK from its old location to the new one. The + local variables YYSIZE and YYSTACKSIZE give the old and new number of + elements in the stack, and YYPTR gives the new location of the + stack. Advance YYPTR to a properly aligned location for the next + stack. */ +# define YYSTACK_RELOCATE(Stack) \ + do \ + { \ + YYSIZE_T yynewbytes; \ + YYCOPY (&yyptr->Stack, Stack, yysize); \ + Stack = &yyptr->Stack; \ + yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ + yyptr += yynewbytes / sizeof (*yyptr); \ + } \ + while (0) + +#endif + +#if defined (__STDC__) || defined (__cplusplus) + typedef signed char yysigned_char; +#else + typedef short int yysigned_char; +#endif + +/* YYFINAL -- State number of the termination state. */ +#define YYFINAL 69 +/* YYLAST -- Last index in YYTABLE. */ +#define YYLAST 3407 + +/* YYNTOKENS -- Number of terminals. */ +#define YYNTOKENS 127 +/* YYNNTS -- Number of nonterminals. */ +#define YYNNTS 94 +/* YYNRULES -- Number of rules. */ +#define YYNRULES 530 +/* YYNRULES -- Number of states. */ +#define YYNSTATES 951 + +/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ +#define YYUNDEFTOK 2 +#define YYMAXUTOK 357 + +#define YYTRANSLATE(YYX) \ + ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) + +/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ +static const unsigned char yytranslate[] = +{ + 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 125, 2, 2, 2, 118, 111, 2, + 121, 123, 116, 114, 104, 115, 120, 117, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 106, 105, + 112, 107, 113, 108, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 122, 2, 126, 110, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 103, 109, 124, 119, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, + 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, + 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, + 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, + 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102 +}; + +#if YYDEBUG +/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in + YYRHS. */ +static const unsigned short int yyprhs[] = +{ + 0, 0, 3, 6, 9, 12, 14, 17, 20, 22, + 26, 31, 32, 38, 40, 42, 44, 46, 48, 50, + 53, 55, 57, 60, 63, 66, 69, 79, 80, 84, + 86, 89, 93, 96, 99, 102, 105, 108, 111, 114, + 117, 119, 123, 127, 128, 133, 134, 140, 143, 148, + 151, 156, 157, 162, 163, 169, 173, 176, 181, 184, + 189, 190, 197, 198, 205, 206, 214, 215, 226, 227, + 239, 240, 249, 250, 260, 262, 264, 266, 271, 277, + 279, 281, 283, 285, 287, 289, 291, 293, 295, 297, + 299, 301, 303, 305, 307, 309, 311, 313, 315, 317, + 319, 321, 323, 325, 327, 329, 331, 333, 335, 337, + 339, 341, 343, 345, 347, 350, 353, 355, 357, 359, + 361, 362, 369, 371, 373, 375, 379, 382, 387, 391, + 396, 398, 400, 402, 405, 407, 410, 413, 416, 419, + 423, 428, 432, 436, 437, 444, 446, 448, 450, 454, + 457, 459, 463, 465, 468, 470, 473, 475, 479, 485, + 489, 494, 496, 498, 501, 503, 507, 511, 517, 521, + 525, 530, 532, 534, 536, 538, 541, 544, 547, 551, + 556, 558, 560, 562, 565, 568, 571, 575, 580, 588, + 592, 594, 597, 600, 603, 607, 612, 620, 622, 624, + 627, 629, 631, 633, 635, 638, 641, 643, 645, 648, + 650, 652, 654, 656, 659, 662, 664, 666, 669, 672, + 675, 678, 682, 683, 689, 690, 698, 700, 702, 705, + 709, 712, 715, 718, 722, 726, 730, 734, 738, 742, + 743, 749, 750, 757, 759, 761, 764, 766, 770, 774, + 780, 782, 784, 786, 788, 789, 796, 801, 804, 808, + 810, 812, 814, 816, 818, 820, 822, 824, 826, 828, + 830, 832, 835, 838, 841, 844, 846, 849, 851, 855, + 858, 860, 861, 864, 866, 869, 871, 873, 875, 877, + 879, 881, 883, 885, 887, 889, 891, 893, 895, 897, + 899, 901, 903, 905, 907, 909, 911, 913, 915, 917, + 919, 921, 923, 925, 927, 929, 931, 933, 935, 937, + 939, 941, 943, 945, 947, 949, 951, 953, 955, 957, + 959, 961, 963, 965, 967, 969, 971, 973, 975, 977, + 979, 981, 983, 985, 987, 989, 991, 993, 995, 997, + 999, 1001, 1003, 1005, 1007, 1009, 1011, 1013, 1015, 1017, + 1019, 1021, 1023, 1025, 1027, 1029, 1031, 1033, 1035, 1037, + 1039, 1041, 1043, 1045, 1047, 1049, 1051, 1053, 1055, 1057, + 1059, 1061, 1063, 1065, 1067, 1069, 1071, 1073, 1075, 1077, + 1081, 1083, 1085, 1087, 1089, 1091, 1095, 1097, 1102, 1110, + 1118, 1123, 1126, 1129, 1132, 1135, 1138, 1142, 1146, 1150, + 1154, 1158, 1162, 1166, 1170, 1174, 1178, 1182, 1186, 1190, + 1194, 1198, 1204, 1209, 1214, 1218, 1222, 1226, 1230, 1232, + 1237, 1245, 1253, 1258, 1263, 1268, 1273, 1278, 1283, 1288, + 1293, 1298, 1303, 1308, 1313, 1316, 1322, 1325, 1328, 1331, + 1334, 1337, 1341, 1345, 1349, 1353, 1357, 1361, 1365, 1369, + 1373, 1377, 1381, 1385, 1389, 1393, 1397, 1401, 1405, 1411, + 1416, 1421, 1425, 1429, 1433, 1437, 1439, 1441, 1443, 1445, + 1447, 1449, 1451, 1453, 1458, 1466, 1474, 1479, 1482, 1488, + 1491, 1494, 1497, 1500, 1504, 1508, 1512, 1516, 1520, 1524, + 1528, 1532, 1536, 1540, 1544, 1548, 1552, 1556, 1560, 1564, + 1568, 1574, 1579, 1584, 1588, 1592, 1596, 1600, 1602, 1604, + 1606, 1608, 1610, 1612, 1614, 1617, 1620, 1622, 1624, 1626, + 1629 +}; + +/* YYRHS -- A `-1'-separated list of the rules' RHS. */ +static const short int yyrhs[] = +{ + 128, 0, -1, 100, 129, -1, 101, 213, -1, 102, + 182, -1, 220, -1, 129, 105, -1, 129, 134, -1, + 131, -1, 130, 104, 131, -1, 218, 121, 210, 123, + -1, -1, 137, 103, 133, 129, 124, -1, 138, -1, + 160, -1, 132, -1, 198, -1, 200, -1, 135, -1, + 91, 144, -1, 44, -1, 56, -1, 60, 106, -1, + 78, 106, -1, 77, 106, -1, 76, 106, -1, 71, + 121, 218, 104, 218, 104, 218, 123, 105, -1, -1, + 63, 136, 134, -1, 220, -1, 137, 58, -1, 137, + 58, 219, -1, 137, 84, -1, 137, 67, -1, 137, + 96, -1, 137, 59, -1, 137, 98, -1, 137, 72, + -1, 137, 79, -1, 137, 45, -1, 139, -1, 137, + 180, 105, -1, 137, 149, 172, -1, -1, 137, 180, + 140, 142, -1, -1, 137, 51, 179, 141, 143, -1, + 166, 172, -1, 166, 171, 104, 142, -1, 166, 172, + -1, 166, 171, 104, 143, -1, -1, 137, 180, 145, + 147, -1, -1, 137, 51, 179, 146, 148, -1, 137, + 149, 172, -1, 166, 172, -1, 166, 171, 104, 147, + -1, 166, 172, -1, 166, 171, 104, 148, -1, -1, + 8, 121, 150, 168, 123, 157, -1, -1, 9, 121, + 151, 168, 123, 157, -1, -1, 119, 218, 121, 152, + 168, 123, 157, -1, -1, 9, 121, 116, 166, 123, + 121, 153, 168, 123, 157, -1, -1, 9, 121, 10, + 116, 166, 123, 121, 154, 168, 123, 157, -1, -1, + 75, 179, 176, 121, 155, 168, 123, 157, -1, -1, + 75, 51, 179, 176, 121, 156, 168, 123, 157, -1, + 8, -1, 220, -1, 51, -1, 157, 88, 121, 123, + -1, 157, 88, 121, 218, 123, -1, 125, -1, 119, + -1, 116, -1, 117, -1, 118, -1, 114, -1, 115, + -1, 109, -1, 111, -1, 110, -1, 13, -1, 14, + -1, 15, -1, 16, -1, 17, -1, 18, -1, 112, + -1, 113, -1, 19, -1, 20, -1, 107, -1, 104, + -1, 31, -1, 32, -1, 33, -1, 34, -1, 35, + -1, 36, -1, 37, -1, 38, -1, 39, -1, 40, + -1, 41, -1, 42, -1, 29, -1, 122, 126, -1, + 121, 123, -1, 74, -1, 52, -1, 138, -1, 160, + -1, -1, 87, 161, 112, 162, 113, 159, -1, 220, + -1, 163, -1, 164, -1, 163, 104, 164, -1, 50, + 218, -1, 50, 218, 107, 182, -1, 165, 177, 170, + -1, 51, 165, 177, 170, -1, 201, -1, 8, -1, + 9, -1, 92, 218, -1, 218, -1, 75, 158, -1, + 51, 166, -1, 116, 166, -1, 111, 166, -1, 10, + 116, 166, -1, 166, 122, 209, 126, -1, 166, 106, + 4, -1, 121, 166, 123, -1, -1, 166, 121, 167, + 168, 123, 157, -1, 220, -1, 12, -1, 169, -1, + 169, 104, 12, -1, 169, 12, -1, 175, -1, 169, + 104, 175, -1, 220, -1, 107, 212, -1, 220, -1, + 107, 213, -1, 105, -1, 103, 205, 124, -1, 106, + 130, 103, 205, 124, -1, 107, 213, 105, -1, 107, + 103, 173, 124, -1, 220, -1, 174, -1, 174, 104, + -1, 213, -1, 103, 173, 124, -1, 174, 104, 213, + -1, 174, 104, 103, 173, 124, -1, 179, 177, 171, + -1, 8, 177, 171, -1, 51, 179, 177, 171, -1, + 215, -1, 220, -1, 8, -1, 9, -1, 51, 176, + -1, 116, 176, -1, 111, 176, -1, 10, 116, 176, + -1, 176, 122, 209, 126, -1, 220, -1, 8, -1, + 9, -1, 51, 177, -1, 116, 177, -1, 111, 177, + -1, 10, 116, 177, -1, 177, 122, 209, 126, -1, + 121, 177, 123, 121, 168, 123, 157, -1, 121, 177, + 123, -1, 220, -1, 51, 178, -1, 116, 178, -1, + 111, 178, -1, 10, 116, 178, -1, 178, 122, 209, + 126, -1, 121, 178, 123, 121, 168, 123, 157, -1, + 201, -1, 9, -1, 92, 218, -1, 183, -1, 185, + -1, 190, -1, 192, -1, 197, 218, -1, 196, 218, + -1, 201, -1, 9, -1, 92, 218, -1, 183, -1, + 185, -1, 190, -1, 192, -1, 197, 218, -1, 196, + 218, -1, 201, -1, 9, -1, 92, 218, -1, 197, + 218, -1, 196, 218, -1, 179, 178, -1, 51, 179, + 178, -1, -1, 197, 103, 184, 129, 124, -1, -1, + 197, 218, 186, 187, 103, 129, 124, -1, 220, -1, + 188, -1, 106, 189, -1, 188, 104, 189, -1, 78, + 217, -1, 77, 217, -1, 76, 217, -1, 96, 78, + 217, -1, 96, 77, 217, -1, 96, 76, 217, -1, + 78, 96, 217, -1, 77, 96, 217, -1, 76, 96, + 217, -1, -1, 196, 103, 191, 194, 124, -1, -1, + 196, 218, 103, 193, 194, 124, -1, 220, -1, 195, + -1, 195, 104, -1, 218, -1, 218, 107, 213, -1, + 195, 104, 218, -1, 195, 104, 218, 107, 213, -1, + 57, -1, 50, -1, 86, -1, 93, -1, -1, 73, + 218, 103, 199, 129, 124, -1, 73, 103, 129, 124, + -1, 95, 218, -1, 95, 73, 218, -1, 202, -1, + 203, -1, 204, -1, 46, -1, 48, -1, 49, -1, + 81, -1, 69, -1, 70, -1, 94, -1, 82, -1, + 68, -1, 81, 202, -1, 69, 202, -1, 94, 202, + -1, 82, 202, -1, 62, -1, 69, 62, -1, 53, + -1, 69, 69, 62, -1, 69, 53, -1, 97, -1, + -1, 206, 207, -1, 220, -1, 207, 208, -1, 3, + -1, 4, -1, 6, -1, 5, -1, 8, -1, 9, + -1, 10, -1, 7, -1, 12, -1, 13, -1, 14, + -1, 15, -1, 16, -1, 17, -1, 18, -1, 19, + -1, 20, -1, 21, -1, 22, -1, 29, -1, 30, + -1, 31, -1, 32, -1, 33, -1, 34, -1, 35, + -1, 36, -1, 37, -1, 38, -1, 39, -1, 40, + -1, 41, -1, 42, -1, 46, -1, 47, -1, 48, + -1, 49, -1, 50, -1, 51, -1, 52, -1, 53, + -1, 54, -1, 55, -1, 57, -1, 58, -1, 59, + -1, 61, -1, 62, -1, 63, -1, 64, -1, 65, + -1, 66, -1, 67, -1, 68, -1, 69, -1, 72, + -1, 74, -1, 76, -1, 77, -1, 78, -1, 60, + -1, 79, -1, 80, -1, 81, -1, 82, -1, 83, + -1, 84, -1, 85, -1, 86, -1, 88, -1, 89, + -1, 90, -1, 91, -1, 92, -1, 93, -1, 94, + -1, 96, -1, 97, -1, 98, -1, 99, -1, 43, + -1, 75, -1, 114, -1, 115, -1, 116, -1, 117, + -1, 111, -1, 109, -1, 110, -1, 125, -1, 119, + -1, 107, -1, 118, -1, 112, -1, 113, -1, 121, + -1, 123, -1, 120, -1, 104, -1, 105, -1, 106, + -1, 122, -1, 126, -1, 108, -1, 103, 207, 124, + -1, 220, -1, 213, -1, 220, -1, 211, -1, 213, + -1, 211, 104, 213, -1, 214, -1, 121, 182, 123, + 212, -1, 85, 112, 182, 113, 121, 211, 123, -1, + 54, 112, 182, 113, 121, 211, 123, -1, 83, 121, + 182, 123, -1, 125, 212, -1, 119, 212, -1, 115, + 212, -1, 116, 212, -1, 111, 212, -1, 212, 116, + 212, -1, 212, 117, 212, -1, 212, 118, 212, -1, + 212, 114, 212, -1, 212, 115, 212, -1, 212, 109, + 212, -1, 212, 111, 212, -1, 212, 13, 212, -1, + 212, 14, 212, -1, 212, 15, 212, -1, 212, 16, + 212, -1, 212, 17, 212, -1, 212, 18, 212, -1, + 212, 19, 212, -1, 212, 20, 212, -1, 212, 108, + 212, 106, 212, -1, 212, 122, 213, 126, -1, 212, + 121, 211, 123, -1, 212, 121, 123, -1, 212, 120, + 212, -1, 212, 29, 212, -1, 121, 211, 123, -1, + 214, -1, 121, 182, 123, 213, -1, 85, 112, 182, + 113, 121, 211, 123, -1, 54, 112, 182, 113, 121, + 211, 123, -1, 9, 121, 210, 123, -1, 68, 121, + 210, 123, -1, 48, 121, 210, 123, -1, 49, 121, + 210, 123, -1, 46, 121, 210, 123, -1, 81, 121, + 210, 123, -1, 69, 121, 210, 123, -1, 94, 121, + 210, 123, -1, 82, 121, 210, 123, -1, 62, 121, + 210, 123, -1, 53, 121, 210, 123, -1, 83, 121, + 182, 123, -1, 74, 181, -1, 74, 181, 121, 210, + 123, -1, 125, 213, -1, 119, 213, -1, 115, 213, + -1, 116, 213, -1, 111, 213, -1, 213, 116, 213, + -1, 213, 117, 213, -1, 213, 118, 213, -1, 213, + 114, 213, -1, 213, 115, 213, -1, 213, 109, 213, + -1, 213, 111, 213, -1, 213, 13, 213, -1, 213, + 14, 213, -1, 213, 15, 213, -1, 213, 16, 213, + -1, 213, 17, 213, -1, 213, 18, 213, -1, 213, + 112, 213, -1, 213, 113, 213, -1, 213, 19, 213, + -1, 213, 20, 213, -1, 213, 108, 213, 106, 213, + -1, 213, 122, 213, 126, -1, 213, 121, 211, 123, + -1, 213, 121, 123, -1, 213, 120, 213, -1, 213, + 29, 213, -1, 121, 211, 123, -1, 4, -1, 89, + -1, 61, -1, 5, -1, 3, -1, 219, -1, 8, + -1, 216, -1, 121, 182, 123, 213, -1, 85, 112, + 182, 113, 121, 211, 123, -1, 54, 112, 182, 113, + 121, 211, 123, -1, 83, 121, 182, 123, -1, 74, + 181, -1, 74, 181, 121, 210, 123, -1, 125, 213, + -1, 119, 213, -1, 115, 213, -1, 111, 213, -1, + 215, 116, 213, -1, 215, 117, 213, -1, 215, 118, + 213, -1, 215, 114, 213, -1, 215, 115, 213, -1, + 215, 109, 213, -1, 215, 111, 213, -1, 215, 13, + 213, -1, 215, 14, 213, -1, 215, 15, 213, -1, + 215, 16, 213, -1, 215, 17, 213, -1, 215, 18, + 213, -1, 215, 112, 213, -1, 215, 113, 213, -1, + 215, 19, 213, -1, 215, 20, 213, -1, 215, 108, + 213, 106, 213, -1, 215, 122, 213, 126, -1, 215, + 121, 211, 123, -1, 215, 121, 123, -1, 215, 120, + 213, -1, 215, 29, 213, -1, 121, 211, 123, -1, + 4, -1, 89, -1, 61, -1, 5, -1, 3, -1, + 219, -1, 218, -1, 197, 218, -1, 92, 218, -1, + 8, -1, 9, -1, 6, -1, 219, 6, -1, -1 +}; + +/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ +static const unsigned short int yyrline[] = +{ + 0, 381, 381, 382, 386, 393, 394, 395, 399, 400, + 404, 417, 416, 428, 429, 430, 431, 432, 433, 434, + 435, 448, 457, 461, 469, 473, 477, 486, 485, 500, + 504, 508, 519, 523, 527, 531, 535, 539, 543, 547, + 554, 558, 567, 579, 578, 594, 593, 611, 619, 630, + 639, 653, 652, 668, 667, 678, 692, 700, 711, 720, + 735, 734, 757, 756, 781, 780, 811, 810, 826, 825, + 843, 842, 874, 873, 899, 912, 916, 920, 924, 931, + 935, 939, 943, 947, 951, 955, 959, 963, 967, 971, + 975, 979, 983, 987, 991, 995, 999, 1003, 1007, 1011, + 1015, 1019, 1023, 1027, 1031, 1035, 1039, 1043, 1047, 1051, + 1055, 1059, 1063, 1067, 1071, 1075, 1079, 1083, 1090, 1091, + 1096, 1095, 1106, 1107, 1111, 1117, 1126, 1130, 1134, 1140, + 1150, 1154, 1159, 1164, 1172, 1176, 1190, 1195, 1200, 1205, + 1210, 1215, 1220, 1226, 1225, 1247, 1251, 1256, 1260, 1265, + 1273, 1278, 1286, 1290, 1297, 1301, 1308, 1312, 1316, 1320, + 1324, 1331, 1332, 1333, 1337, 1340, 1341, 1342, 1346, 1351, + 1359, 1365, 1375, 1379, 1383, 1387, 1392, 1397, 1402, 1407, + 1415, 1419, 1423, 1427, 1432, 1437, 1442, 1447, 1452, 1458, + 1466, 1470, 1475, 1480, 1485, 1490, 1495, 1504, 1508, 1513, + 1517, 1521, 1525, 1529, 1533, 1549, 1568, 1572, 1577, 1581, + 1585, 1589, 1593, 1597, 1613, 1632, 1636, 1641, 1645, 1661, + 1680, 1686, 1697, 1696, 1721, 1720, 1750, 1751, 1755, 1756, + 1760, 1764, 1768, 1772, 1776, 1780, 1784, 1788, 1792, 1800, + 1799, 1812, 1811, 1823, 1824, 1825, 1829, 1834, 1839, 1844, + 1852, 1859, 1863, 1867, 1875, 1874, 1896, 1900, 1906, 1915, + 1916, 1917, 1921, 1925, 1929, 1933, 1938, 1943, 1948, 1953, + 1958, 1962, 1967, 1976, 1981, 1989, 1993, 1998, 2002, 2007, + 2015, 2025, 2025, 2035, 2036, 2040, 2043, 2046, 2049, 2052, + 2055, 2058, 2061, 2064, 2064, 2064, 2065, 2065, 2065, 2065, + 2066, 2066, 2066, 2066, 2066, 2067, 2067, 2067, 2068, 2068, + 2068, 2068, 2068, 2069, 2069, 2069, 2069, 2069, 2070, 2070, + 2070, 2070, 2070, 2070, 2071, 2071, 2071, 2071, 2071, 2072, + 2072, 2072, 2073, 2073, 2073, 2073, 2074, 2074, 2074, 2075, + 2075, 2075, 2075, 2075, 2076, 2076, 2076, 2076, 2077, 2077, + 2077, 2077, 2077, 2078, 2078, 2078, 2078, 2078, 2078, 2079, + 2079, 2079, 2079, 2079, 2080, 2080, 2081, 2084, 2084, 2084, + 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2084, 2085, 2085, + 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2085, 2086, 2086, + 2090, 2094, 2101, 2105, 2112, 2116, 2123, 2127, 2131, 2135, + 2139, 2143, 2147, 2151, 2163, 2167, 2171, 2175, 2179, 2183, + 2187, 2191, 2195, 2199, 2203, 2207, 2211, 2215, 2219, 2223, + 2227, 2231, 2235, 2239, 2243, 2247, 2251, 2255, 2263, 2267, + 2271, 2275, 2279, 2286, 2292, 2298, 2304, 2310, 2317, 2324, + 2331, 2338, 2344, 2350, 2354, 2358, 2362, 2366, 2370, 2382, + 2386, 2390, 2394, 2398, 2402, 2406, 2410, 2414, 2418, 2422, + 2426, 2430, 2434, 2438, 2442, 2446, 2450, 2454, 2458, 2462, + 2466, 2470, 2474, 2478, 2482, 2489, 2493, 2497, 2501, 2505, + 2509, 2513, 2527, 2531, 2535, 2539, 2543, 2547, 2551, 2555, + 2559, 2563, 2575, 2579, 2583, 2587, 2591, 2595, 2599, 2603, + 2607, 2611, 2615, 2619, 2623, 2627, 2631, 2635, 2639, 2643, + 2647, 2651, 2655, 2659, 2663, 2667, 2671, 2678, 2682, 2686, + 2690, 2694, 2698, 2705, 2713, 2721, 2744, 2748, 2755, 2759, + 2765 +}; +#endif + +#if YYDEBUG || YYERROR_VERBOSE +/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. + First, the terminals, then, starting at YYNTOKENS, nonterminals. */ +static const char *const yytname[] = +{ + "$end", "error", "$undefined", "REAL", "INTEGER", "CHAR_TOK", "STRING", + "SIMPLE_IDENTIFIER", "IDENTIFIER", "TYPENAME_IDENTIFIER", "SCOPING", + "TYPEDEFNAME", "ELLIPSIS", "OROR", "ANDAND", "EQCOMPARE", "NECOMPARE", + "LECOMPARE", "GECOMPARE", "LSHIFT", "RSHIFT", "POINTSAT_STAR", + "DOT_STAR", "UNARY", "UNARY_NOT", "UNARY_NEGATE", "UNARY_MINUS", + "UNARY_STAR", "UNARY_REF", "POINTSAT", "SCOPE", "PLUSPLUS", "MINUSMINUS", + "TIMESEQUAL", "DIVIDEEQUAL", "MODEQUAL", "PLUSEQUAL", "MINUSEQUAL", + "OREQUAL", "ANDEQUAL", "XOREQUAL", "LSHIFTEQUAL", "RSHIFTEQUAL", + "TOKENPASTE", "KW_BEGIN_PUBLISH", "KW_BLOCKING", "KW_BOOL", "KW_CATCH", + "KW_CHAR", "KW_WCHAR_T", "KW_CLASS", "KW_CONST", "KW_DELETE", + "KW_DOUBLE", "KW_DYNAMIC_CAST", "KW_ELSE", "KW_END_PUBLISH", "KW_ENUM", + "KW_EXTERN", "KW_EXPLICIT", "KW_PUBLISHED", "KW_FALSE", "KW_FLOAT", + "KW_FRIEND", "KW_FOR", "KW_GOTO", "KW_IF", "KW_INLINE", "KW_INT", + "KW_LONG", "KW_LONGLONG", "KW_MAKE_SEQ", "KW_MUTABLE", "KW_NAMESPACE", + "KW_NEW", "KW_OPERATOR", "KW_PRIVATE", "KW_PROTECTED", "KW_PUBLIC", + "KW_REGISTER", "KW_RETURN", "KW_SHORT", "KW_SIGNED", "KW_SIZEOF", + "KW_STATIC", "KW_STATIC_CAST", "KW_STRUCT", "KW_TEMPLATE", "KW_THROW", + "KW_TRUE", "KW_TRY", "KW_TYPEDEF", "KW_TYPENAME", "KW_UNION", + "KW_UNSIGNED", "KW_USING", "KW_VIRTUAL", "KW_VOID", "KW_VOLATILE", + "KW_WHILE", "START_CPP", "START_CONST_EXPR", "START_TYPE", "'{'", "','", + "';'", "':'", "'='", "'?'", "'|'", "'^'", "'&'", "'<'", "'>'", "'+'", + "'-'", "'*'", "'/'", "'%'", "'~'", "'.'", "'('", "'['", "')'", "'}'", + "'!'", "']'", "$accept", "grammar", "cpp", "constructor_inits", + "constructor_init", "extern_c", "@1", "declaration", + "friend_declaration", "@2", "storage_class", "type_like_declaration", + "multiple_var_declaration", "@3", "@4", "multiple_instance_identifiers", + "multiple_const_instance_identifiers", "typedef_declaration", "@5", "@6", + "typedef_instance_identifiers", "typedef_const_instance_identifiers", + "function_prototype", "@7", "@8", "@9", "@10", "@11", "@12", "@13", + "function_post", "function_operator", "more_template_declaration", + "template_declaration", "@14", "template_formal_parameters", + "template_nonempty_formal_parameters", "template_formal_parameter", + "template_formal_parameter_type", "instance_identifier", "@15", + "formal_parameter_list", "formal_parameters", + "template_parameter_maybe_initialize", "maybe_initialize", + "maybe_initialize_or_function_body", "structure_init", + "structure_init_body", "formal_parameter", + "not_paren_formal_parameter_identifier", "formal_parameter_identifier", + "empty_instance_identifier", "type", "type_decl", "predefined_type", + "full_type", "anonymous_struct", "@16", "named_struct", "@17", + "maybe_class_derivation", "class_derivation", "base_specification", + "anonymous_enum", "@18", "named_enum", "@19", "enum_body", + "enum_body_no_trailing_comma", "enum_keyword", "struct_keyword", + "namespace_declaration", "@20", "using_declaration", "simple_type", + "simple_int_type", "simple_float_type", "simple_void_type", "code", + "@21", "code_block", "element", "optional_const_expr", + "optional_const_expr_comma", "const_expr_comma", + "no_angle_bracket_const_expr", "const_expr", "const_operand", + "formal_const_expr", "formal_const_operand", "class_derivation_name", + "name", "string", "empty", 0 +}; +#endif + +# ifdef YYPRINT +/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to + token YYLEX-NUM. */ +static const unsigned short int yytoknum[] = +{ + 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, + 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, + 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, + 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, + 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, + 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, + 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, + 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, + 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, + 355, 356, 357, 123, 44, 59, 58, 61, 63, 124, + 94, 38, 60, 62, 43, 45, 42, 47, 37, 126, + 46, 40, 91, 41, 125, 33, 93 +}; +# endif + +/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ +static const unsigned char yyr1[] = +{ + 0, 127, 128, 128, 128, 129, 129, 129, 130, 130, + 131, 133, 132, 134, 134, 134, 134, 134, 134, 134, + 134, 134, 134, 134, 134, 134, 134, 136, 135, 137, + 137, 137, 137, 137, 137, 137, 137, 137, 137, 137, + 138, 138, 138, 140, 139, 141, 139, 142, 142, 143, + 143, 145, 144, 146, 144, 144, 147, 147, 148, 148, + 150, 149, 151, 149, 152, 149, 153, 149, 154, 149, + 155, 149, 156, 149, 149, 157, 157, 157, 157, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 158, 158, + 158, 158, 158, 158, 158, 158, 158, 158, 159, 159, + 161, 160, 162, 162, 163, 163, 164, 164, 164, 164, + 165, 165, 165, 165, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 167, 166, 168, 168, 168, 168, 168, + 169, 169, 170, 170, 171, 171, 172, 172, 172, 172, + 172, 173, 173, 173, 174, 174, 174, 174, 175, 175, + 175, 175, 176, 176, 176, 176, 176, 176, 176, 176, + 177, 177, 177, 177, 177, 177, 177, 177, 177, 177, + 178, 178, 178, 178, 178, 178, 178, 179, 179, 179, + 179, 179, 179, 179, 179, 179, 180, 180, 180, 180, + 180, 180, 180, 180, 180, 181, 181, 181, 181, 181, + 182, 182, 184, 183, 186, 185, 187, 187, 188, 188, + 189, 189, 189, 189, 189, 189, 189, 189, 189, 191, + 190, 193, 192, 194, 194, 194, 195, 195, 195, 195, + 196, 197, 197, 197, 199, 198, 198, 200, 200, 201, + 201, 201, 202, 202, 202, 202, 202, 202, 202, 202, + 202, 202, 202, 202, 202, 203, 203, 203, 203, 203, + 204, 206, 205, 207, 207, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 208, 208, 208, 208, 208, 208, 208, 208, 208, 208, + 209, 209, 210, 210, 211, 211, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, + 214, 214, 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 215, 215, 215, + 215, 215, 215, 215, 215, 215, 215, 216, 216, 216, + 216, 216, 216, 217, 217, 217, 218, 218, 219, 219, + 220 +}; + +/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ +static const unsigned char yyr2[] = +{ + 0, 2, 2, 2, 2, 1, 2, 2, 1, 3, + 4, 0, 5, 1, 1, 1, 1, 1, 1, 2, + 1, 1, 2, 2, 2, 2, 9, 0, 3, 1, + 2, 3, 2, 2, 2, 2, 2, 2, 2, 2, + 1, 3, 3, 0, 4, 0, 5, 2, 4, 2, + 4, 0, 4, 0, 5, 3, 2, 4, 2, 4, + 0, 6, 0, 6, 0, 7, 0, 10, 0, 11, + 0, 8, 0, 9, 1, 1, 1, 4, 5, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 1, 1, 1, 1, + 0, 6, 1, 1, 1, 3, 2, 4, 3, 4, + 1, 1, 1, 2, 1, 2, 2, 2, 2, 3, + 4, 3, 3, 0, 6, 1, 1, 1, 3, 2, + 1, 3, 1, 2, 1, 2, 1, 3, 5, 3, + 4, 1, 1, 2, 1, 3, 3, 5, 3, 3, + 4, 1, 1, 1, 1, 2, 2, 2, 3, 4, + 1, 1, 1, 2, 2, 2, 3, 4, 7, 3, + 1, 2, 2, 2, 3, 4, 7, 1, 1, 2, + 1, 1, 1, 1, 2, 2, 1, 1, 2, 1, + 1, 1, 1, 2, 2, 1, 1, 2, 2, 2, + 2, 3, 0, 5, 0, 7, 1, 1, 2, 3, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 0, + 5, 0, 6, 1, 1, 2, 1, 3, 3, 5, + 1, 1, 1, 1, 0, 6, 4, 2, 3, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 2, 2, 2, 2, 1, 2, 1, 3, 2, + 1, 0, 2, 1, 2, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, + 1, 1, 1, 1, 1, 3, 1, 4, 7, 7, + 4, 2, 2, 2, 2, 2, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 5, 4, 4, 3, 3, 3, 3, 1, 4, + 7, 7, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 2, 5, 2, 2, 2, 2, + 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 5, 4, + 4, 3, 3, 3, 3, 1, 1, 1, 1, 1, + 1, 1, 1, 4, 7, 7, 4, 2, 5, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 5, 4, 4, 3, 3, 3, 3, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, + 0 +}; + +/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state + STATE-NUM when YYTABLE doesn't specify something else to do. Zero + means the default is an error. */ +static const unsigned short int yydefact[] = +{ + 0, 530, 0, 0, 0, 530, 5, 479, 475, 478, + 528, 481, 0, 0, 0, 0, 0, 0, 477, 0, + 0, 0, 0, 0, 0, 0, 0, 476, 0, 0, + 0, 0, 0, 0, 0, 3, 428, 480, 198, 262, + 263, 264, 251, 0, 277, 250, 275, 270, 266, 267, + 265, 269, 252, 0, 253, 268, 280, 530, 4, 200, + 201, 202, 203, 0, 0, 197, 259, 260, 261, 1, + 20, 21, 0, 27, 0, 0, 0, 0, 0, 120, + 530, 0, 6, 15, 7, 18, 0, 13, 40, 14, + 16, 17, 29, 530, 530, 530, 530, 530, 0, 530, + 530, 530, 216, 0, 444, 0, 0, 215, 530, 530, + 0, 0, 530, 450, 448, 449, 447, 198, 262, 263, + 264, 277, 275, 270, 266, 265, 269, 268, 0, 0, + 394, 446, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 529, 530, 279, 276, 266, 272, + 266, 271, 274, 526, 527, 199, 273, 0, 530, 530, + 530, 530, 220, 190, 239, 205, 222, 204, 22, 530, + 0, 530, 0, 25, 24, 23, 0, 0, 19, 0, + 257, 74, 207, 39, 0, 30, 35, 33, 37, 0, + 38, 32, 0, 34, 36, 11, 0, 0, 43, 209, + 210, 211, 212, 0, 0, 206, 0, 393, 392, 0, + 0, 0, 0, 0, 0, 0, 0, 217, 530, 219, + 218, 0, 0, 0, 0, 0, 0, 0, 474, 458, + 459, 460, 461, 462, 463, 466, 467, 473, 0, 456, + 457, 464, 465, 454, 455, 451, 452, 453, 472, 471, + 0, 0, 221, 278, 530, 191, 193, 192, 0, 530, + 530, 241, 530, 530, 28, 0, 530, 254, 530, 0, + 0, 51, 258, 60, 62, 45, 31, 0, 530, 208, + 530, 0, 281, 156, 0, 0, 42, 41, 0, 214, + 213, 432, 436, 434, 435, 442, 0, 441, 433, 438, + 0, 437, 440, 443, 0, 439, 429, 395, 0, 470, + 469, 194, 0, 0, 391, 390, 0, 244, 246, 243, + 530, 530, 0, 0, 227, 226, 0, 256, 530, 131, + 132, 0, 0, 0, 0, 123, 124, 530, 130, 122, + 53, 55, 0, 530, 0, 0, 530, 0, 530, 173, + 174, 0, 530, 530, 530, 0, 172, 530, 64, 0, + 530, 0, 8, 0, 530, 0, 0, 0, 0, 0, + 0, 0, 44, 530, 134, 0, 445, 0, 468, 530, + 195, 240, 245, 0, 0, 223, 0, 0, 0, 0, + 228, 530, 0, 0, 530, 126, 530, 133, 530, 0, + 181, 182, 0, 530, 530, 530, 530, 530, 180, 0, + 52, 530, 521, 517, 520, 530, 146, 0, 0, 519, + 0, 0, 0, 518, 0, 0, 0, 0, 0, 0, + 147, 150, 530, 171, 482, 522, 145, 0, 0, 0, + 46, 530, 0, 530, 175, 177, 176, 70, 530, 12, + 530, 157, 282, 283, 281, 0, 530, 530, 0, 162, + 164, 161, 159, 0, 136, 89, 90, 91, 92, 93, + 94, 97, 98, 113, 101, 102, 103, 104, 105, 106, + 107, 108, 109, 110, 111, 112, 117, 116, 100, 99, + 86, 88, 87, 95, 96, 84, 85, 81, 82, 83, + 80, 0, 0, 79, 135, 138, 137, 0, 0, 0, + 143, 530, 0, 47, 154, 0, 0, 0, 248, 247, + 242, 0, 0, 0, 232, 523, 0, 231, 0, 230, + 0, 0, 0, 530, 229, 0, 255, 0, 530, 0, + 118, 121, 119, 125, 530, 183, 185, 184, 0, 0, + 530, 128, 152, 54, 530, 0, 56, 530, 530, 0, + 487, 0, 0, 492, 491, 490, 0, 0, 489, 530, + 149, 0, 530, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 530, 0, + 49, 72, 178, 530, 0, 0, 285, 286, 288, 287, + 292, 289, 290, 291, 293, 294, 295, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, + 309, 310, 311, 312, 313, 314, 315, 316, 317, 365, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, + 328, 329, 330, 345, 331, 332, 333, 334, 335, 336, + 337, 338, 339, 340, 341, 366, 342, 343, 344, 346, + 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, + 357, 358, 359, 360, 361, 362, 363, 364, 530, 383, + 384, 385, 376, 388, 372, 373, 371, 378, 379, 367, + 368, 369, 370, 377, 375, 382, 380, 386, 381, 374, + 387, 284, 0, 9, 0, 0, 160, 163, 139, 115, + 114, 142, 141, 155, 530, 0, 0, 431, 430, 530, + 0, 525, 238, 524, 237, 236, 235, 234, 233, 225, + 0, 127, 129, 186, 189, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 153, 396, 0, 0, 58, 0, + 0, 169, 530, 0, 530, 0, 0, 0, 516, 76, + 61, 75, 148, 151, 168, 500, 501, 502, 503, 504, + 505, 508, 509, 515, 0, 498, 499, 506, 507, 496, + 497, 493, 494, 495, 514, 513, 0, 0, 0, 66, + 63, 0, 530, 0, 179, 530, 0, 158, 10, 165, + 530, 166, 0, 140, 48, 196, 249, 0, 530, 0, + 0, 0, 405, 403, 404, 402, 0, 0, 401, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 187, + 0, 57, 155, 170, 0, 0, 486, 0, 483, 0, + 0, 512, 511, 68, 530, 50, 0, 530, 65, 389, + 0, 530, 26, 0, 0, 0, 0, 0, 427, 413, + 414, 415, 416, 417, 418, 419, 420, 426, 0, 411, + 412, 409, 410, 406, 407, 408, 425, 424, 0, 0, + 59, 0, 488, 0, 0, 510, 530, 0, 530, 71, + 167, 144, 530, 0, 400, 0, 397, 0, 423, 422, + 0, 0, 77, 0, 0, 530, 73, 188, 0, 0, + 421, 485, 484, 78, 530, 67, 0, 0, 69, 399, + 398 +}; + +/* YYDEFGOTO[NTERM-NUM]. */ +static const short int yydefgoto[] = +{ + -1, 4, 5, 371, 372, 83, 290, 84, 85, 179, + 86, 87, 88, 298, 357, 382, 450, 188, 352, 419, + 420, 563, 207, 353, 356, 460, 874, 916, 613, 812, + 780, 514, 551, 89, 186, 344, 345, 346, 347, 383, + 734, 439, 440, 561, 522, 296, 468, 469, 441, 365, + 417, 172, 57, 208, 104, 58, 59, 272, 60, 273, + 333, 334, 400, 61, 270, 62, 330, 326, 327, 63, + 64, 90, 338, 91, 65, 66, 67, 68, 369, 370, + 462, 721, 323, 216, 217, 764, 130, 36, 443, 444, + 534, 384, 37, 218 +}; + +/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing + STATE-NUM. */ +#define YYPACT_NINF -483 +static const short int yypact[] = +{ + 223, -483, 2022, 3004, 19, 2905, -483, -483, -483, -483, + -483, -483, -85, -59, -47, -37, -19, -7, -483, -8, + -6, 27, 3106, 32, 35, 43, 70, -483, 67, 2022, + 2022, 2022, 2022, 1215, 2022, 2565, -483, 171, -483, -483, + -483, -483, -483, 3156, -483, -483, -483, -483, 1779, -483, + 850, 850, -483, 241, -483, 850, -483, 132, -483, -483, + -483, -483, -483, 34, 37, -483, -483, -483, -483, -483, + -483, -483, 112, -483, 101, 56, 121, 133, 138, -483, + -483, 89, -483, -483, -483, -483, 2346, -483, -483, -483, + -483, -483, -483, 2022, 2022, 2022, 2022, 2022, 3004, 2022, + 2022, 2022, -483, 241, 135, 241, 241, -483, 2022, 2022, + 3004, 3004, 2022, 65, 65, 65, 65, -85, -59, -47, + -37, -19, -8, -6, 1605, 1211, 1401, 1692, 147, -74, + 2565, 65, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, + 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, + 2022, 2022, 1500, 2022, -483, 132, -483, -483, 1866, -483, + 850, -483, -483, -483, -483, -483, -483, 164, 132, 132, + 132, 132, 166, -483, -483, 189, -483, -62, -483, 2736, + 241, -483, 193, -483, -483, -483, 192, 2402, -483, 241, + -483, 200, 220, -483, 3156, 348, -483, -483, -483, 3056, + -483, -483, 241, -483, -483, -483, 241, 176, 254, -483, + -483, -483, -483, 34, 37, -483, 247, 268, -483, 263, + 264, 270, 273, 281, 274, 278, 279, -483, 2022, -483, + -483, 285, 288, 294, 291, 298, 2022, 2022, -483, 2725, + 2756, 788, 788, 478, 478, 144, 144, -483, 1233, 2771, + 2786, 478, 478, 218, 218, 65, 65, 65, -483, -483, + -24, 2105, 166, -483, 132, 166, 166, 166, 242, 2022, + 241, -483, -483, 316, -483, 324, 3183, -483, 2966, 3156, + 176, -483, -483, -483, 23, -483, 171, 3156, 49, -483, + -483, 318, -483, -483, 241, 1587, -483, -483, 63, 189, + -62, -483, -483, -483, -483, -483, 321, -483, -483, -483, + 314, -483, -483, -483, 323, -483, 65, 2565, 2022, -483, + -483, 166, 325, 319, 2565, -483, 330, 343, 351, -483, + 241, 3208, 0, 357, 359, -483, 241, -483, -483, -483, + -483, 241, 2269, 241, 354, 360, -483, 120, -483, -483, + -483, -483, 63, 1310, 345, 63, 1310, 63, 49, -483, + -483, 353, 49, 49, 49, 246, -483, 3233, -483, 352, + -483, 271, -483, 361, 1674, 1423, 358, 63, 2268, 63, + 63, 63, -483, 1, -483, 2022, -483, 2022, 2565, 1310, + -483, -483, 241, 2022, 362, -483, 226, 418, 773, 272, + -483, -483, 0, 371, 3258, 374, 120, -483, 396, 2966, + -483, -483, 373, 120, 120, 120, 120, -41, -483, 63, + -483, 1, -483, -483, -483, 120, -483, 3156, 379, -483, + 3106, 380, 383, -483, 2022, 2022, 2022, 1215, 2022, 385, + 15, -483, 120, 2582, -483, 171, -483, 63, 187, 386, + -483, 1, 256, 49, 381, 381, 381, -483, 2022, -483, + 1310, -483, 1091, -483, -483, 241, 2022, 1674, 378, 402, + 2565, -483, -483, 63, 259, -483, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, 389, 387, -483, -483, 259, 259, 222, 282, 1587, + -483, 2022, 411, -483, -483, -13, -3, 394, 414, 2565, + -483, 241, 440, 241, -483, -483, 440, -483, 440, -483, + 440, 440, 440, 3283, -483, 241, -483, 3004, -41, 2458, + -483, -483, -483, -483, 120, 400, 400, 400, 261, 772, + 2022, -483, -483, -483, 1, 419, -483, 28, 120, 3004, + 397, 3004, 3004, 65, 65, 65, 401, 8, 65, 477, + -483, 1405, 28, 2022, 2022, 2022, 2022, 2022, 2022, 2022, + 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, 2022, + 2022, 2022, 2022, 1761, 2022, 350, 527, 427, 477, 436, + -483, -483, 381, 1310, 423, 422, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, -483, -483, -483, -483, -483, -483, -483, -483, -483, + -483, -483, 426, -483, 428, 430, -483, 1848, 259, -483, + -483, -483, -483, 1423, 1310, 429, 63, -483, -483, 477, + 2022, -483, -483, -483, -483, -483, -483, -483, -483, -483, + 433, -483, -483, 400, 431, 446, 439, 449, 772, 772, + 772, 772, 1215, 772, 2616, -483, 438, 458, -483, 63, + 2022, -483, 28, 452, 2022, 445, 457, 2022, -483, -483, + 484, -483, -483, -483, -483, 2725, 2756, 788, 788, 478, + 478, 144, 144, -483, 2544, 2771, 2786, 478, 478, 218, + 218, 65, 65, 65, -483, -483, 117, 2135, 454, -483, + 484, 63, 1310, 450, -483, 477, 967, -483, -483, -483, + 1674, 2565, 459, -483, -483, 484, 2565, 475, 1310, 3004, + 3004, 3004, 95, 95, 95, 95, 460, 119, 95, 772, + 772, 772, 772, 772, 772, 772, 772, 772, 772, 772, + 772, 772, 772, 772, 772, 772, 772, 1935, 2022, -483, + 63, -483, 2565, -483, 463, 462, -483, 465, 65, 466, + 2022, -483, -483, -483, 1310, -483, 467, 477, 484, -483, + 473, 477, -483, 479, 476, 480, 488, 772, -483, 2741, + 2801, 2080, 2080, 1492, 1492, 185, 185, -483, 2599, 2909, + 2924, 313, 313, 95, 95, 95, -483, -483, 128, 2154, + -483, 2022, -483, 2022, 26, 2565, 1310, 482, 477, 484, + -483, 484, 477, 485, -483, 487, 95, 772, -483, -483, + 129, 150, -483, 486, 491, 477, 484, 484, 2022, 2022, + 2616, -483, -483, -483, 477, 484, 151, 174, 484, -483, + -483 +}; + +/* YYPGOTO[NTERM-NUM]. */ +static const short int yypgoto[] = +{ + -483, -483, -163, -483, 145, -483, -483, 432, -483, -483, + -57, 207, -483, -483, -483, -120, -194, -483, -483, -483, + -146, -235, 441, -483, -483, -483, -483, -483, -483, -483, + -482, -483, -483, 219, -483, -483, -483, 224, 287, -326, + -483, -328, -483, 83, -401, -232, -464, -483, 51, -295, + -270, -131, -42, 447, 205, -28, -84, -483, -71, -483, + -483, -483, 234, -70, -483, -69, -483, 309, -483, 25, + 139, -483, -483, -483, -11, 265, -483, -483, 197, -483, + -58, -483, -426, -87, -27, -139, 58, -2, -483, -483, + -312, 424, -143, -1 +}; + +/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If + positive, shift that token. If negative, reduce the rule which + number is the opposite. If zero, do what YYDEFACT says. + If YYTABLE_NINF, syntax error. */ +#define YYTABLE_NINF -225 +static const short int yytable[] = +{ + 6, 155, 209, 725, 92, 128, 129, 219, 220, 221, + 222, 107, 224, 225, 226, 210, 211, 212, 276, 69, + 565, 231, 232, 187, 262, 235, 421, 580, 449, 448, + 237, 451, 614, 354, 163, 164, 93, 265, 266, 267, + 268, -224, 163, 164, -224, 163, 164, 105, 351, 238, + 609, 474, 286, 515, 516, 517, 173, 359, 360, 361, + 35, 527, 94, 452, 163, 164, 559, 454, 455, 456, + 223, 163, 164, 376, 95, 215, 396, 397, 398, 92, + 237, 560, 233, 234, 96, 537, 539, 113, 114, 115, + 116, 237, 131, 564, 140, 735, 399, 163, 164, 319, + 362, 237, 97, 209, 292, 98, 293, 518, 519, 331, + 737, 213, 237, 99, 377, 100, 210, 211, 212, 581, + 738, 605, 520, 521, 847, 260, 810, 367, 410, 411, + 412, 778, 615, 321, 766, 770, 548, 174, 378, 355, + 176, 310, 167, 555, 556, 557, 558, 728, 101, 932, + 560, 523, 285, 108, 173, 567, 109, 288, 612, 181, + 363, 106, 189, 767, 110, 364, 771, 173, 173, 173, + 173, 413, 582, 140, 379, 404, 215, 154, 92, 380, + 6, 784, 111, 168, 381, 151, 152, 153, 112, 566, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 445, 261, 213, 445, 847, 856, 857, 858, 178, 610, + 742, 237, 180, 237, 744, 214, 745, 183, 746, 747, + 748, 414, 237, 237, 163, 164, 415, 350, 543, 184, + 871, 416, 888, 169, 185, 358, 445, 140, 170, 163, + 164, 928, 941, 171, 237, 237, 228, 825, 146, 147, + 148, 149, 150, 173, 151, 152, 153, 348, 325, 329, + 236, 6, 335, 942, 949, 92, 42, 349, 237, 292, + 264, 293, 294, 295, 753, 813, 732, 366, 269, 6, + 163, 164, 271, 606, 316, 317, 277, 950, 772, 851, + 852, 853, 854, 855, 278, 856, 857, 858, 520, 521, + 607, 442, 52, 159, 442, 161, 162, 445, 531, 54, + 166, 283, 532, 1, 2, 3, 214, 324, 606, 329, + 92, 348, 768, 878, 148, 149, 150, 6, 151, 152, + 153, 284, 847, 520, 521, 731, 418, 442, 540, 541, + 542, 549, 446, 375, 10, 446, 880, 366, 525, 297, + 526, 366, 366, 366, 269, 322, 92, 457, 458, 463, + 301, 863, 237, 471, 464, 465, 388, 611, 458, 724, + 520, 521, 524, 560, 754, 568, 302, 303, 446, 159, + 161, 162, 166, 304, 306, 919, 305, 307, 348, 921, + 6, 308, 309, 92, 314, 418, 822, 92, 311, 576, + 577, 312, 418, 418, 418, 418, 562, 313, 442, 107, + 524, 315, 332, 159, 418, 159, 163, 164, 336, 853, + 854, 855, 470, 856, 857, 858, 936, 386, 445, 368, + 937, 418, 385, 421, 387, 390, 389, 392, 163, 164, + 524, 529, 366, 945, 391, 105, 606, 325, 393, 446, + 401, 447, 948, 402, 409, 209, 471, 408, 42, 453, + 445, 520, 521, 808, 473, 545, 461, 165, 210, 211, + 212, 547, 466, 79, 876, 451, 530, 175, 177, 554, + 42, 569, 573, 574, 575, 572, 578, 138, 139, 182, + 883, 571, 726, 458, 52, 190, 727, 140, 579, 608, + 531, 54, 729, 730, 536, 736, 324, 739, 774, 751, + 325, 740, 560, 769, 777, 470, 52, 227, 779, 229, + 230, 732, 531, 54, 564, 533, 533, 533, 215, 442, + 811, 773, 92, 775, 776, 815, 917, 562, 809, 814, + 817, 818, 828, 418, 819, 823, 827, 765, 829, 325, + 830, 831, 860, 524, 859, 864, 524, 418, 866, 106, + 867, 442, 869, 877, 213, 873, 806, 733, 781, 324, + 882, 524, 881, 887, 911, 912, 913, 914, 934, 923, + 918, 445, 146, 147, 148, 149, 150, 920, 151, 152, + 153, 925, 922, 924, 275, 935, 938, 781, 939, 943, + 723, 274, 446, 282, 944, 550, 824, 875, 324, 832, + 833, 834, 835, 861, 838, 910, 289, 552, 280, 406, + 291, 752, 783, 553, 281, 570, 544, 299, 300, 394, + 816, 785, 786, 787, 788, 789, 790, 791, 792, 793, + 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, + 804, 722, 807, 0, 0, 0, 0, 0, 0, 445, + 0, 533, 0, 0, 0, 533, 0, 533, 0, 533, + 533, 533, 0, 0, 0, 445, 0, 865, 214, 0, + 0, 0, 442, 0, 328, 0, 0, 463, 0, 0, + 889, 890, 891, 892, 893, 894, 895, 896, 897, 898, + 899, 900, 901, 902, 903, 904, 905, 906, 373, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 445, 0, 446, 836, 837, 0, 0, 781, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 926, 0, + 0, 0, 0, 0, 328, 0, 765, 765, 765, 765, + 403, 765, 0, 0, 0, 405, 0, 407, 0, 0, + 442, 524, 0, 445, 0, 7, 8, 9, 10, 0, + 11, 163, 164, 0, 0, 821, 442, 0, 940, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 826, 0, + 0, 884, 885, 886, 0, 136, 137, 138, 139, 0, + 0, 446, 0, 0, 781, 0, 528, 140, 0, 471, + 535, 535, 535, 42, 0, 0, 755, 446, 862, 0, + 908, 0, 442, 18, 0, 868, 0, 765, 765, 765, + 765, 765, 765, 765, 765, 765, 765, 765, 765, 765, + 765, 765, 765, 765, 765, 756, 0, 757, 0, 52, + 0, 27, 0, 0, 0, 531, 54, 0, 0, 538, + 0, 0, 0, 446, 442, 0, 781, 0, 470, 0, + 781, 0, 0, 758, 930, 765, 931, 759, 760, 373, + 0, 761, 0, 762, 0, 0, 39, 763, 40, 41, + 144, 145, 146, 147, 148, 149, 150, 0, 151, 152, + 153, 946, 947, 0, 0, 446, 909, 781, 47, 160, + 49, 781, 0, 0, 0, 765, 0, 0, 915, 0, + 0, 50, 51, 0, 781, 0, 0, 0, 0, 0, + 0, 0, 373, 781, 55, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 741, 535, 743, 0, 0, + 535, 0, 535, 0, 535, 535, 535, 0, 0, 750, + 616, 617, 618, 619, 620, 621, 622, 623, 0, 624, + 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, + 0, 0, 0, 0, 0, 0, 635, 636, 637, 638, + 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, + 649, 0, 0, 650, 651, 652, 653, 654, 655, 656, + 657, 658, 659, 0, 660, 661, 662, 663, 664, 665, + 666, 667, 668, 669, 670, 671, 672, 0, 0, 673, + 0, 674, 675, 676, 677, 678, 679, 680, 681, 682, + 683, 684, 685, 686, 0, 687, 688, 689, 690, 691, + 692, 693, 0, 694, 695, 696, 697, 0, 0, 0, + 698, 699, 700, 701, 702, 703, 704, 705, 706, 707, + 708, 709, 710, 711, 712, 713, 714, 715, 716, 717, + 718, 879, 719, 720, 616, 617, 618, 619, 620, 621, + 622, 623, 0, 624, 625, 626, 627, 628, 629, 630, + 631, 632, 633, 634, 0, 0, 0, 0, 0, 0, + 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, + 645, 646, 647, 648, 649, 0, 0, 650, 651, 652, + 653, 654, 655, 656, 657, 658, 659, 0, 660, 661, + 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, + 672, 0, 0, 673, 0, 674, 675, 676, 677, 678, + 679, 680, 681, 682, 683, 684, 685, 686, 0, 687, + 688, 689, 690, 691, 692, 693, 0, 694, 695, 696, + 697, 0, 0, 0, 698, 699, 700, 701, 702, 703, + 704, 705, 706, 707, 708, 709, 710, 711, 712, 713, + 714, 715, 716, 717, 718, 0, 719, 720, 7, 8, + 9, 10, 0, 11, 117, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 132, 133, 134, 135, + 136, 137, 138, 139, 0, 0, 0, 39, 0, 40, + 41, 118, 140, 119, 120, 42, 43, 0, 121, 17, + 0, 0, 45, 0, 0, 0, 18, 122, 0, 47, + 160, 49, 0, 123, 124, 49, 0, 0, 0, 22, + 0, 0, 50, 51, 0, 0, 125, 126, 25, 0, + 26, 52, 0, 0, 27, 55, 0, 53, 54, 127, + 0, 0, 56, 422, 423, 424, 10, 0, 425, 38, + 0, 0, 426, 0, 0, 0, 29, 0, 0, 0, + 30, 31, 108, 0, 32, 0, 33, 0, 933, 318, + 34, 141, 142, 0, 143, 144, 145, 146, 147, 148, + 149, 150, 0, 151, 152, 153, 39, 0, 40, 41, + 42, 427, 0, 44, 428, 0, 0, 45, 0, 0, + 0, 429, 46, 0, 0, 0, 0, 0, 47, 48, + 49, 0, 0, 0, 430, 0, 0, 0, 0, 0, + 0, 50, 51, 431, 0, 432, 52, 0, 0, 433, + 0, 0, 53, 54, 55, 0, 0, 56, 422, 423, + 424, 10, 0, 425, 38, 0, 0, 782, 0, 0, + 0, 434, 0, 0, 0, 435, 0, 0, 0, 436, + 0, 437, 0, 0, 0, 438, 132, 133, 134, 135, + 136, 137, 138, 139, 0, 0, 0, 39, 0, 40, + 41, 39, 140, 40, 41, 42, 427, 0, 44, 428, + 0, 0, 45, 0, 0, 0, 429, 46, 0, 47, + 160, 49, 0, 47, 48, 49, 0, 0, 0, 430, + 0, 0, 50, 51, 0, 0, 50, 51, 431, 0, + 432, 52, 0, 0, 433, 55, 0, 53, 54, 55, + 0, 0, 56, 7, 8, 9, 10, 0, 11, 12, + 0, 845, 846, 0, 0, 0, 434, 0, 0, 0, + 435, 847, 109, 0, 436, 0, 437, 0, 472, 0, + 438, 141, 142, 0, 143, 144, 145, 146, 147, 148, + 149, 150, 0, 151, 152, 153, 13, 0, 14, 15, + 0, 0, 0, 16, 17, 0, 0, 0, 0, 0, + 0, 18, 19, 0, 0, 0, 0, 0, 20, 21, + 0, 0, 0, 0, 22, 0, 0, 0, 0, 0, + 0, 23, 24, 25, 0, 26, 0, 0, 0, 27, + 7, 8, 9, 10, 28, 11, 12, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 851, 852, 853, 854, + 855, 29, 856, 857, 858, 30, 31, 0, 0, 32, + 0, 33, 0, 259, 0, 34, 0, 0, 0, 0, + 0, 0, 0, 13, 0, 14, 15, 0, 0, 0, + 16, 17, 0, 0, 0, 0, 0, 0, 18, 19, + 0, 39, 0, 40, 41, 20, 21, 0, 156, 0, + 0, 22, 0, 0, 0, 0, 0, 157, 23, 24, + 25, 0, 26, 47, 158, 49, 27, 7, 8, 9, + 10, 28, 11, 12, 0, 0, 50, 51, 0, 0, + 374, 0, 0, 0, 0, 0, 0, 0, 29, 55, + 0, 0, 30, 31, 0, 0, 32, 0, 33, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, + 13, 0, 14, 15, 0, 0, 101, 16, 17, 0, + 0, 0, 0, 0, 0, 18, 19, 0, 39, 0, + 40, 41, 20, 21, 0, 0, 0, 0, 22, 0, + 0, 0, 0, 0, 0, 23, 24, 25, 0, 26, + 47, 160, 49, 27, 7, 8, 9, 10, 28, 11, + 12, 0, 0, 50, 51, 0, 0, 467, 0, 0, + 0, 0, 0, 0, 0, 29, 55, 0, 0, 30, + 31, 0, 0, 32, 0, 33, 0, 0, 0, 34, + 0, 0, 0, 0, 0, 0, 0, 13, 0, 14, + 15, 0, 0, 112, 16, 17, 0, 0, 0, 0, + 0, 0, 18, 19, 0, 39, 0, 40, 41, 20, + 21, 0, 156, 0, 0, 22, 0, 0, 0, 0, + 0, 157, 23, 24, 25, 0, 26, 47, 158, 49, + 27, 7, 8, 9, 10, 28, 11, 12, 0, 0, + 50, 51, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 29, 55, 0, 0, 30, 31, 0, 0, + 32, 0, 33, 0, 805, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 13, 0, 14, 15, 0, 0, + 0, 16, 17, 0, 0, 0, 0, 0, 0, 18, + 19, 0, 39, 0, 40, 41, 20, 21, 0, 0, + 0, 0, 22, 0, 0, 0, 0, 0, 263, 23, + 24, 25, 0, 26, 47, 160, 49, 27, 7, 8, + 9, 10, 28, 11, 12, 0, 0, 50, 51, 0, + 0, 820, 0, 0, 0, 0, 0, 0, 0, 29, + 55, 0, 0, 30, 31, 0, 0, 32, 0, 33, + 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, + 0, 13, 0, 14, 15, 0, 0, 0, 16, 17, + 0, 0, 0, 0, 0, 0, 18, 19, 0, 0, + 0, 0, 0, 20, 21, 0, 0, 0, 0, 22, + 0, 0, 0, 0, 0, 0, 23, 24, 25, 0, + 26, 0, 0, 0, 27, 7, 8, 9, 10, 28, + 11, 12, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 29, 0, 0, 0, + 30, 31, 0, 0, 32, 0, 33, 0, 907, 0, + 34, 0, 0, 0, 0, 0, 0, 0, 13, 0, + 14, 15, 0, 0, 0, 16, 17, 0, 0, 0, + 0, 0, 0, 18, 19, 0, 0, 0, 0, 0, + 20, 21, 0, 0, 0, 0, 22, 843, 844, 845, + 846, 0, 0, 23, 24, 25, 0, 26, 0, 847, + 0, 27, 0, 0, 0, 0, 28, 0, 132, 133, + 134, 135, 136, 137, 138, 139, 0, 0, 0, 0, + 0, 0, 0, 29, 140, 0, 0, 30, 31, 0, + 0, 32, 0, 33, 0, 0, 0, 34, 132, 133, + 134, 135, 136, 137, 138, 139, 0, 0, 0, 0, + 0, 0, 0, 0, 140, 0, 0, 132, 133, 134, + 135, 136, 137, 138, 139, 0, 0, 0, 0, 0, + 0, 0, 0, 140, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 851, 852, 853, 854, 855, 0, + 856, 857, 858, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 141, 142, 0, 143, 144, 145, 146, + 147, 148, 149, 150, 0, 151, 152, 153, 0, 0, + 0, 320, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 141, 142, 0, 143, 144, 145, 146, + 147, 148, 149, 150, 0, 151, 152, 153, 0, 0, + 0, 872, 141, 142, 0, 143, 144, 145, 146, 147, + 148, 149, 150, 0, 151, 152, 153, 339, 340, 0, + 929, 475, 476, 477, 478, 479, 480, 481, 482, 0, + 0, 0, 0, 0, 0, 0, 0, 483, 0, 484, + 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, + 495, 0, 0, 0, 0, 39, 0, 40, 41, 0, + 496, 0, 44, 0, 0, 0, 0, 0, 0, 0, + 0, 46, 0, 0, 0, 0, 0, 47, 48, 49, + 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, + 50, 51, 0, 0, 191, 192, 0, 0, 0, 0, + 0, 343, 0, 55, 0, 0, 56, 0, 0, 0, + 0, 0, 498, 0, 0, 499, 0, 500, 501, 502, + 503, 504, 505, 506, 507, 508, 509, 510, 0, 511, + 512, 193, 39, 513, 40, 41, 42, 194, 0, 44, + 0, 0, 0, 45, 195, 196, 0, 0, 46, 0, + 191, 192, 0, 197, 47, 48, 49, 0, 198, 0, + 0, 199, 0, 0, 0, 200, 0, 50, 51, 0, + 201, 0, 52, 0, 0, 0, 0, 0, 202, 54, + 55, 0, 203, 56, 204, 0, 0, 193, 39, 205, + 40, 41, 42, 279, 0, 44, 0, 0, 0, 45, + 195, 196, 0, 0, 46, 206, 191, 192, 0, 197, + 47, 48, 49, 0, 198, 0, 0, 199, 0, 0, + 0, 200, 0, 50, 51, 0, 201, 0, 52, 0, + 0, 0, 0, 0, 202, 54, 55, 0, 203, 56, + 204, 0, 0, 193, 39, 0, 40, 41, 42, 194, + 0, 44, 0, 0, 0, 45, 195, 196, 0, 0, + 46, 206, 0, 0, 0, 197, 47, 48, 49, 0, + 198, 0, 0, 199, 0, 0, 0, 200, 0, 50, + 51, 0, 201, 0, 52, 0, 0, 0, 0, 0, + 202, 54, 55, 0, 203, 56, 204, 132, 133, 134, + 135, 136, 137, 138, 139, 0, 0, 0, 0, 0, + 0, 0, 0, 140, 0, 0, 0, 206, 132, 133, + 134, 135, 136, 137, 138, 139, 0, 0, 0, 0, + 0, 0, 0, 0, 140, 583, 584, 585, 586, 587, + 588, 589, 590, 0, 0, 0, 0, 0, 0, 0, + 0, 591, 839, 840, 841, 842, 843, 844, 845, 846, + 0, 0, 0, 0, 0, 0, 0, 0, 847, 839, + 840, 841, 842, 843, 844, 845, 846, 0, 0, 0, + 0, 0, 0, 0, 0, 847, 0, 0, 0, 0, + 870, 0, 141, 142, 0, 143, 144, 145, 146, 147, + 148, 149, 150, 0, 151, 152, 153, 0, 0, 0, + 0, 0, 0, 141, 142, 0, 143, 144, 145, 146, + 147, 148, 149, 150, 0, 151, 152, 153, 0, 0, + 592, 593, 0, 594, 595, 596, 597, 598, 599, 600, + 601, 0, 602, 603, 604, 927, 0, 848, 849, 0, + 850, 0, 0, 851, 852, 853, 854, 855, 0, 856, + 857, 858, 0, 0, 848, 849, 0, 850, 0, 0, + 851, 852, 853, 854, 855, 0, 856, 857, 858, 133, + 134, 135, 136, 137, 138, 139, 0, 0, 0, 0, + 0, 0, 0, 0, 140, 840, 841, 842, 843, 844, + 845, 846, 0, 0, 0, 0, 0, 0, 0, 0, + 847, 134, 135, 136, 137, 138, 139, 0, 0, 0, + 70, 0, 0, 0, 0, 140, 134, 135, 136, 137, + 138, 139, 71, 0, 0, 0, 72, 0, 0, 73, + 140, 134, 135, 136, 137, 138, 139, 74, 0, 75, + 0, 0, 76, 77, 78, 140, 841, 842, 843, 844, + 845, 846, 0, 79, 0, 0, 0, 80, 0, 0, + 847, 81, 0, 0, 142, 0, 143, 144, 145, 146, + 147, 148, 149, 150, 0, 151, 152, 153, 0, 0, + 849, 0, 850, 0, 0, 851, 852, 853, 854, 855, + 0, 856, 857, 858, 0, 142, 0, 143, 144, 145, + 146, 147, 148, 149, 150, 0, 151, 152, 153, 0, + 0, 0, 143, 144, 145, 146, 147, 148, 149, 150, + 0, 151, 152, 153, 0, 0, 0, 0, 144, 145, + 146, 147, 148, 149, 150, -2, 151, 152, 153, 0, + 849, 0, 850, 0, 0, 851, 852, 853, 854, 855, + 0, 856, 857, 858, 841, 842, 843, 844, 845, 846, + 0, 0, 0, 0, 0, 0, 0, 0, 847, 841, + 842, 843, 844, 845, 846, 0, 0, 0, 0, 70, + 0, 0, 0, 847, 0, 0, 0, 0, 0, 0, + 0, 71, 0, 0, 0, 72, 0, 0, 73, 0, + 0, 0, 0, 0, 339, 340, 74, 0, 75, 0, + 0, 76, 77, 78, 0, 0, 0, 0, 0, 0, + 0, 0, 79, 0, 0, 0, 80, 0, 0, 0, + 81, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 82, 0, 39, 38, 40, 41, 341, 342, 0, 44, + 850, 0, 0, 851, 852, 853, 854, 855, 46, 856, + 857, 858, 0, 0, 47, 48, 49, 0, 851, 852, + 853, 854, 855, 0, 856, 857, 858, 50, 51, 0, + 39, 0, 40, 41, 42, 43, 0, 44, 343, 0, + 55, 45, 0, 56, 0, 38, 46, 0, 0, 0, + 0, 0, 47, 48, 49, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 50, 51, 0, 0, 0, + 52, 0, 0, 0, 0, 0, 53, 54, 55, 0, + 0, 56, 39, 0, 40, 41, 42, 287, 0, 44, + 0, 0, 0, 45, 0, 102, 0, 0, 46, 0, + 0, 0, 0, 0, 47, 48, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 51, 0, + 0, 0, 52, 0, 0, 0, 0, 0, 53, 54, + 55, 0, 39, 56, 40, 41, 42, 0, 0, 44, + 0, 0, 0, 45, 0, 38, 0, 0, 46, 0, + 0, 0, 0, 0, 47, 48, 49, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 51, 0, + 0, 0, 52, 0, 0, 0, 0, 0, 103, 54, + 55, 0, 39, 56, 40, 41, 42, 0, 0, 44, + 0, 0, 0, 45, 0, 0, 0, 0, 46, 0, + 0, 0, 0, 0, 47, 48, 49, 70, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 50, 51, 71, + 0, 0, 52, 72, 0, 0, 73, 0, 53, 54, + 55, 0, 70, 56, 74, 0, 75, 0, 0, 76, + 77, 78, 0, 0, 71, 0, 0, 0, 72, 0, + 79, 73, 0, 0, 80, 0, 0, 70, 81, 74, + 0, 75, 0, 0, 76, 77, 78, 0, 82, 71, + 0, 0, 0, 72, 0, 79, 73, 0, 0, 80, + 0, 0, 70, 81, 74, 0, 75, 337, 0, 76, + 77, 78, 0, 82, 71, 0, 0, 0, 72, 0, + 79, 73, 0, 0, 80, 0, 0, 70, 81, 74, + 0, 75, 395, 0, 76, 77, 78, 0, 82, 71, + 0, 0, 0, 72, 0, 79, 73, 0, 0, 80, + 0, 0, 0, 81, 74, 0, 75, 459, 0, 76, + 77, 78, 0, 82, 0, 0, 0, 0, 0, 0, + 79, 0, 0, 0, 80, 0, 0, 0, 81, 0, + 0, 0, 546, 0, 0, 0, 0, 0, 82, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 749 +}; + +static const short int yycheck[] = +{ + 1, 43, 86, 467, 5, 33, 33, 94, 95, 96, + 97, 22, 99, 100, 101, 86, 86, 86, 181, 0, + 421, 108, 109, 80, 155, 112, 352, 12, 356, 355, + 104, 357, 458, 10, 8, 9, 121, 168, 169, 170, + 171, 103, 8, 9, 106, 8, 9, 22, 280, 123, + 451, 377, 195, 379, 380, 381, 57, 8, 9, 10, + 2, 389, 121, 358, 8, 9, 107, 362, 363, 364, + 98, 8, 9, 10, 121, 86, 76, 77, 78, 80, + 104, 122, 110, 111, 121, 397, 398, 29, 30, 31, + 32, 104, 34, 419, 29, 521, 96, 8, 9, 123, + 51, 104, 121, 187, 103, 112, 105, 106, 107, 272, + 123, 86, 104, 121, 51, 121, 187, 187, 187, 104, + 123, 447, 121, 122, 29, 152, 608, 290, 8, 9, + 10, 123, 460, 264, 560, 107, 406, 103, 75, 116, + 103, 228, 10, 413, 414, 415, 416, 473, 121, 123, + 122, 383, 194, 121, 155, 425, 121, 199, 453, 103, + 111, 22, 73, 564, 121, 116, 567, 168, 169, 170, + 171, 51, 442, 29, 111, 338, 187, 6, 179, 116, + 181, 582, 112, 51, 121, 120, 121, 122, 121, 421, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 353, 153, 187, 356, 29, 120, 121, 122, 106, 451, + 532, 104, 121, 104, 536, 86, 538, 106, 540, 541, + 542, 111, 104, 104, 8, 9, 116, 279, 401, 106, + 123, 121, 123, 111, 106, 287, 389, 29, 116, 8, + 9, 123, 123, 121, 104, 104, 121, 739, 114, 115, + 116, 117, 118, 264, 120, 121, 122, 278, 269, 270, + 123, 272, 273, 123, 123, 276, 50, 278, 104, 103, + 116, 105, 106, 107, 554, 613, 4, 288, 122, 290, + 8, 9, 103, 106, 236, 237, 103, 123, 568, 114, + 115, 116, 117, 118, 112, 120, 121, 122, 121, 122, + 123, 353, 86, 48, 356, 50, 51, 460, 92, 93, + 55, 121, 96, 100, 101, 102, 187, 269, 106, 330, + 331, 342, 564, 815, 116, 117, 118, 338, 120, 121, + 122, 121, 29, 121, 122, 123, 347, 389, 76, 77, + 78, 408, 353, 295, 6, 356, 820, 358, 385, 105, + 387, 362, 363, 364, 122, 123, 367, 121, 122, 370, + 123, 772, 104, 374, 103, 104, 318, 121, 122, 466, + 121, 122, 383, 122, 123, 427, 123, 123, 389, 124, + 125, 126, 127, 123, 113, 877, 123, 123, 409, 881, + 401, 123, 123, 404, 113, 406, 734, 408, 123, 437, + 437, 123, 413, 414, 415, 416, 417, 123, 460, 430, + 421, 123, 106, 158, 425, 160, 8, 9, 104, 116, + 117, 118, 374, 120, 121, 122, 918, 123, 581, 121, + 922, 442, 121, 769, 121, 126, 121, 104, 8, 9, + 451, 393, 453, 935, 124, 430, 106, 458, 107, 460, + 103, 116, 944, 104, 104, 549, 467, 113, 50, 116, + 613, 121, 122, 123, 116, 104, 124, 53, 549, 549, + 549, 107, 121, 87, 812, 811, 124, 63, 64, 116, + 50, 112, 434, 435, 436, 112, 438, 19, 20, 75, + 828, 121, 124, 122, 86, 81, 104, 29, 123, 123, + 92, 93, 123, 126, 96, 104, 458, 123, 121, 547, + 521, 107, 122, 104, 123, 467, 86, 103, 51, 105, + 106, 4, 92, 93, 860, 396, 397, 398, 549, 581, + 104, 569, 543, 571, 572, 123, 874, 548, 121, 126, + 124, 123, 121, 554, 124, 126, 123, 559, 112, 560, + 121, 112, 104, 564, 126, 113, 567, 568, 123, 430, + 113, 613, 88, 123, 549, 121, 603, 519, 579, 521, + 105, 582, 123, 123, 121, 123, 121, 121, 916, 113, + 123, 734, 114, 115, 116, 117, 118, 124, 120, 121, + 122, 113, 123, 123, 180, 123, 121, 608, 121, 123, + 465, 179, 613, 189, 123, 408, 736, 811, 560, 758, + 759, 760, 761, 769, 763, 860, 202, 408, 187, 342, + 206, 548, 581, 409, 187, 430, 402, 213, 214, 330, + 698, 583, 584, 585, 586, 587, 588, 589, 590, 591, + 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, + 602, 464, 604, -1, -1, -1, -1, -1, -1, 812, + -1, 532, -1, -1, -1, 536, -1, 538, -1, 540, + 541, 542, -1, -1, -1, 828, -1, 774, 549, -1, + -1, -1, 734, -1, 270, -1, -1, 698, -1, -1, + 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, + 849, 850, 851, 852, 853, 854, 855, 856, 294, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 874, -1, 734, 762, 762, -1, -1, 739, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 887, -1, + -1, -1, -1, -1, 330, -1, 758, 759, 760, 761, + 336, 763, -1, -1, -1, 341, -1, 343, -1, -1, + 812, 772, -1, 916, -1, 3, 4, 5, 6, -1, + 8, 8, 9, -1, -1, 727, 828, -1, 927, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 740, -1, + -1, 829, 830, 831, -1, 17, 18, 19, 20, -1, + -1, 812, -1, -1, 815, -1, 392, 29, -1, 820, + 396, 397, 398, 50, -1, -1, 54, 828, 770, -1, + 857, -1, 874, 61, -1, 777, -1, 839, 840, 841, + 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, + 852, 853, 854, 855, 856, 83, -1, 85, -1, 86, + -1, 89, -1, -1, -1, 92, 93, -1, -1, 96, + -1, -1, -1, 874, 916, -1, 877, -1, 820, -1, + 881, -1, -1, 111, 911, 887, 913, 115, 116, 465, + -1, 119, -1, 121, -1, -1, 46, 125, 48, 49, + 112, 113, 114, 115, 116, 117, 118, -1, 120, 121, + 122, 938, 939, -1, -1, 916, 858, 918, 68, 69, + 70, 922, -1, -1, -1, 927, -1, -1, 870, -1, + -1, 81, 82, -1, 935, -1, -1, -1, -1, -1, + -1, -1, 518, 944, 94, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 531, 532, 533, -1, -1, + 536, -1, 538, -1, 540, 541, 542, -1, -1, 545, + 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, + -1, -1, -1, -1, -1, -1, 29, 30, 31, 32, + 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, + 43, -1, -1, 46, 47, 48, 49, 50, 51, 52, + 53, 54, 55, -1, 57, 58, 59, 60, 61, 62, + 63, 64, 65, 66, 67, 68, 69, -1, -1, 72, + -1, 74, 75, 76, 77, 78, 79, 80, 81, 82, + 83, 84, 85, 86, -1, 88, 89, 90, 91, 92, + 93, 94, -1, 96, 97, 98, 99, -1, -1, -1, + 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 3, 4, 5, 6, 7, 8, + 9, 10, -1, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 21, 22, -1, -1, -1, -1, -1, -1, + 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, + 39, 40, 41, 42, 43, -1, -1, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, -1, 57, 58, + 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, + 69, -1, -1, 72, -1, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, -1, 88, + 89, 90, 91, 92, 93, 94, -1, 96, 97, 98, + 99, -1, -1, -1, 103, 104, 105, 106, 107, 108, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, -1, 125, 126, 3, 4, + 5, 6, -1, 8, 9, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 13, 14, 15, 16, + 17, 18, 19, 20, -1, -1, -1, 46, -1, 48, + 49, 46, 29, 48, 49, 50, 51, -1, 53, 54, + -1, -1, 57, -1, -1, -1, 61, 62, -1, 68, + 69, 70, -1, 68, 69, 70, -1, -1, -1, 74, + -1, -1, 81, 82, -1, -1, 81, 82, 83, -1, + 85, 86, -1, -1, 89, 94, -1, 92, 93, 94, + -1, -1, 97, 3, 4, 5, 6, -1, 8, 9, + -1, -1, 12, -1, -1, -1, 111, -1, -1, -1, + 115, 116, 121, -1, 119, -1, 121, -1, 914, 106, + 125, 108, 109, -1, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 46, -1, 48, 49, + 50, 51, -1, 53, 54, -1, -1, 57, -1, -1, + -1, 61, 62, -1, -1, -1, -1, -1, 68, 69, + 70, -1, -1, -1, 74, -1, -1, -1, -1, -1, + -1, 81, 82, 83, -1, 85, 86, -1, -1, 89, + -1, -1, 92, 93, 94, -1, -1, 97, 3, 4, + 5, 6, -1, 8, 9, -1, -1, 12, -1, -1, + -1, 111, -1, -1, -1, 115, -1, -1, -1, 119, + -1, 121, -1, -1, -1, 125, 13, 14, 15, 16, + 17, 18, 19, 20, -1, -1, -1, 46, -1, 48, + 49, 46, 29, 48, 49, 50, 51, -1, 53, 54, + -1, -1, 57, -1, -1, -1, 61, 62, -1, 68, + 69, 70, -1, 68, 69, 70, -1, -1, -1, 74, + -1, -1, 81, 82, -1, -1, 81, 82, 83, -1, + 85, 86, -1, -1, 89, 94, -1, 92, 93, 94, + -1, -1, 97, 3, 4, 5, 6, -1, 8, 9, + -1, 19, 20, -1, -1, -1, 111, -1, -1, -1, + 115, 29, 121, -1, 119, -1, 121, -1, 105, -1, + 125, 108, 109, -1, 111, 112, 113, 114, 115, 116, + 117, 118, -1, 120, 121, 122, 46, -1, 48, 49, + -1, -1, -1, 53, 54, -1, -1, -1, -1, -1, + -1, 61, 62, -1, -1, -1, -1, -1, 68, 69, + -1, -1, -1, -1, 74, -1, -1, -1, -1, -1, + -1, 81, 82, 83, -1, 85, -1, -1, -1, 89, + 3, 4, 5, 6, 94, 8, 9, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 114, 115, 116, 117, + 118, 111, 120, 121, 122, 115, 116, -1, -1, 119, + -1, 121, -1, 123, -1, 125, -1, -1, -1, -1, + -1, -1, -1, 46, -1, 48, 49, -1, -1, -1, + 53, 54, -1, -1, -1, -1, -1, -1, 61, 62, + -1, 46, -1, 48, 49, 68, 69, -1, 53, -1, + -1, 74, -1, -1, -1, -1, -1, 62, 81, 82, + 83, -1, 85, 68, 69, 70, 89, 3, 4, 5, + 6, 94, 8, 9, -1, -1, 81, 82, -1, -1, + 103, -1, -1, -1, -1, -1, -1, -1, 111, 94, + -1, -1, 115, 116, -1, -1, 119, -1, 121, -1, + -1, -1, 125, -1, -1, -1, -1, -1, -1, -1, + 46, -1, 48, 49, -1, -1, 121, 53, 54, -1, + -1, -1, -1, -1, -1, 61, 62, -1, 46, -1, + 48, 49, 68, 69, -1, -1, -1, -1, 74, -1, + -1, -1, -1, -1, -1, 81, 82, 83, -1, 85, + 68, 69, 70, 89, 3, 4, 5, 6, 94, 8, + 9, -1, -1, 81, 82, -1, -1, 103, -1, -1, + -1, -1, -1, -1, -1, 111, 94, -1, -1, 115, + 116, -1, -1, 119, -1, 121, -1, -1, -1, 125, + -1, -1, -1, -1, -1, -1, -1, 46, -1, 48, + 49, -1, -1, 121, 53, 54, -1, -1, -1, -1, + -1, -1, 61, 62, -1, 46, -1, 48, 49, 68, + 69, -1, 53, -1, -1, 74, -1, -1, -1, -1, + -1, 62, 81, 82, 83, -1, 85, 68, 69, 70, + 89, 3, 4, 5, 6, 94, 8, 9, -1, -1, + 81, 82, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 111, 94, -1, -1, 115, 116, -1, -1, + 119, -1, 121, -1, 123, -1, 125, -1, -1, -1, + -1, -1, -1, -1, 46, -1, 48, 49, -1, -1, + -1, 53, 54, -1, -1, -1, -1, -1, -1, 61, + 62, -1, 46, -1, 48, 49, 68, 69, -1, -1, + -1, -1, 74, -1, -1, -1, -1, -1, 62, 81, + 82, 83, -1, 85, 68, 69, 70, 89, 3, 4, + 5, 6, 94, 8, 9, -1, -1, 81, 82, -1, + -1, 103, -1, -1, -1, -1, -1, -1, -1, 111, + 94, -1, -1, 115, 116, -1, -1, 119, -1, 121, + -1, -1, -1, 125, -1, -1, -1, -1, -1, -1, + -1, 46, -1, 48, 49, -1, -1, -1, 53, 54, + -1, -1, -1, -1, -1, -1, 61, 62, -1, -1, + -1, -1, -1, 68, 69, -1, -1, -1, -1, 74, + -1, -1, -1, -1, -1, -1, 81, 82, 83, -1, + 85, -1, -1, -1, 89, 3, 4, 5, 6, 94, + 8, 9, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 111, -1, -1, -1, + 115, 116, -1, -1, 119, -1, 121, -1, 123, -1, + 125, -1, -1, -1, -1, -1, -1, -1, 46, -1, + 48, 49, -1, -1, -1, 53, 54, -1, -1, -1, + -1, -1, -1, 61, 62, -1, -1, -1, -1, -1, + 68, 69, -1, -1, -1, -1, 74, 17, 18, 19, + 20, -1, -1, 81, 82, 83, -1, 85, -1, 29, + -1, 89, -1, -1, -1, -1, 94, -1, 13, 14, + 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, + -1, -1, -1, 111, 29, -1, -1, 115, 116, -1, + -1, 119, -1, 121, -1, -1, -1, 125, 13, 14, + 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, + -1, -1, -1, -1, 29, -1, -1, 13, 14, 15, + 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, + -1, -1, -1, 29, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 114, 115, 116, 117, 118, -1, + 120, 121, 122, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 108, 109, -1, 111, 112, 113, 114, + 115, 116, 117, 118, -1, 120, 121, 122, -1, -1, + -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 108, 109, -1, 111, 112, 113, 114, + 115, 116, 117, 118, -1, 120, 121, 122, -1, -1, + -1, 126, 108, 109, -1, 111, 112, 113, 114, 115, + 116, 117, 118, -1, 120, 121, 122, 8, 9, -1, + 126, 13, 14, 15, 16, 17, 18, 19, 20, -1, + -1, -1, -1, -1, -1, -1, -1, 29, -1, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, -1, -1, -1, -1, 46, -1, 48, 49, -1, + 52, -1, 53, -1, -1, -1, -1, -1, -1, -1, + -1, 62, -1, -1, -1, -1, -1, 68, 69, 70, + -1, -1, 74, -1, -1, -1, -1, -1, -1, -1, + 81, 82, -1, -1, 8, 9, -1, -1, -1, -1, + -1, 92, -1, 94, -1, -1, 97, -1, -1, -1, + -1, -1, 104, -1, -1, 107, -1, 109, 110, 111, + 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, + 122, 45, 46, 125, 48, 49, 50, 51, -1, 53, + -1, -1, -1, 57, 58, 59, -1, -1, 62, -1, + 8, 9, -1, 67, 68, 69, 70, -1, 72, -1, + -1, 75, -1, -1, -1, 79, -1, 81, 82, -1, + 84, -1, 86, -1, -1, -1, -1, -1, 92, 93, + 94, -1, 96, 97, 98, -1, -1, 45, 46, 103, + 48, 49, 50, 51, -1, 53, -1, -1, -1, 57, + 58, 59, -1, -1, 62, 119, 8, 9, -1, 67, + 68, 69, 70, -1, 72, -1, -1, 75, -1, -1, + -1, 79, -1, 81, 82, -1, 84, -1, 86, -1, + -1, -1, -1, -1, 92, 93, 94, -1, 96, 97, + 98, -1, -1, 45, 46, -1, 48, 49, 50, 51, + -1, 53, -1, -1, -1, 57, 58, 59, -1, -1, + 62, 119, -1, -1, -1, 67, 68, 69, 70, -1, + 72, -1, -1, 75, -1, -1, -1, 79, -1, 81, + 82, -1, 84, -1, 86, -1, -1, -1, -1, -1, + 92, 93, 94, -1, 96, 97, 98, 13, 14, 15, + 16, 17, 18, 19, 20, -1, -1, -1, -1, -1, + -1, -1, -1, 29, -1, -1, -1, 119, 13, 14, + 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, + -1, -1, -1, -1, 29, 13, 14, 15, 16, 17, + 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, + -1, 29, 13, 14, 15, 16, 17, 18, 19, 20, + -1, -1, -1, -1, -1, -1, -1, -1, 29, 13, + 14, 15, 16, 17, 18, 19, 20, -1, -1, -1, + -1, -1, -1, -1, -1, 29, -1, -1, -1, -1, + 106, -1, 108, 109, -1, 111, 112, 113, 114, 115, + 116, 117, 118, -1, 120, 121, 122, -1, -1, -1, + -1, -1, -1, 108, 109, -1, 111, 112, 113, 114, + 115, 116, 117, 118, -1, 120, 121, 122, -1, -1, + 108, 109, -1, 111, 112, 113, 114, 115, 116, 117, + 118, -1, 120, 121, 122, 106, -1, 108, 109, -1, + 111, -1, -1, 114, 115, 116, 117, 118, -1, 120, + 121, 122, -1, -1, 108, 109, -1, 111, -1, -1, + 114, 115, 116, 117, 118, -1, 120, 121, 122, 14, + 15, 16, 17, 18, 19, 20, -1, -1, -1, -1, + -1, -1, -1, -1, 29, 14, 15, 16, 17, 18, + 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, + 29, 15, 16, 17, 18, 19, 20, -1, -1, -1, + 44, -1, -1, -1, -1, 29, 15, 16, 17, 18, + 19, 20, 56, -1, -1, -1, 60, -1, -1, 63, + 29, 15, 16, 17, 18, 19, 20, 71, -1, 73, + -1, -1, 76, 77, 78, 29, 15, 16, 17, 18, + 19, 20, -1, 87, -1, -1, -1, 91, -1, -1, + 29, 95, -1, -1, 109, -1, 111, 112, 113, 114, + 115, 116, 117, 118, -1, 120, 121, 122, -1, -1, + 109, -1, 111, -1, -1, 114, 115, 116, 117, 118, + -1, 120, 121, 122, -1, 109, -1, 111, 112, 113, + 114, 115, 116, 117, 118, -1, 120, 121, 122, -1, + -1, -1, 111, 112, 113, 114, 115, 116, 117, 118, + -1, 120, 121, 122, -1, -1, -1, -1, 112, 113, + 114, 115, 116, 117, 118, 0, 120, 121, 122, -1, + 109, -1, 111, -1, -1, 114, 115, 116, 117, 118, + -1, 120, 121, 122, 15, 16, 17, 18, 19, 20, + -1, -1, -1, -1, -1, -1, -1, -1, 29, 15, + 16, 17, 18, 19, 20, -1, -1, -1, -1, 44, + -1, -1, -1, 29, -1, -1, -1, -1, -1, -1, + -1, 56, -1, -1, -1, 60, -1, -1, 63, -1, + -1, -1, -1, -1, 8, 9, 71, -1, 73, -1, + -1, 76, 77, 78, -1, -1, -1, -1, -1, -1, + -1, -1, 87, -1, -1, -1, 91, -1, -1, -1, + 95, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 105, -1, 46, 9, 48, 49, 50, 51, -1, 53, + 111, -1, -1, 114, 115, 116, 117, 118, 62, 120, + 121, 122, -1, -1, 68, 69, 70, -1, 114, 115, + 116, 117, 118, -1, 120, 121, 122, 81, 82, -1, + 46, -1, 48, 49, 50, 51, -1, 53, 92, -1, + 94, 57, -1, 97, -1, 9, 62, -1, -1, -1, + -1, -1, 68, 69, 70, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 81, 82, -1, -1, -1, + 86, -1, -1, -1, -1, -1, 92, 93, 94, -1, + -1, 97, 46, -1, 48, 49, 50, 51, -1, 53, + -1, -1, -1, 57, -1, 9, -1, -1, 62, -1, + -1, -1, -1, -1, 68, 69, 70, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 81, 82, -1, + -1, -1, 86, -1, -1, -1, -1, -1, 92, 93, + 94, -1, 46, 97, 48, 49, 50, -1, -1, 53, + -1, -1, -1, 57, -1, 9, -1, -1, 62, -1, + -1, -1, -1, -1, 68, 69, 70, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 81, 82, -1, + -1, -1, 86, -1, -1, -1, -1, -1, 92, 93, + 94, -1, 46, 97, 48, 49, 50, -1, -1, 53, + -1, -1, -1, 57, -1, -1, -1, -1, 62, -1, + -1, -1, -1, -1, 68, 69, 70, 44, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 81, 82, 56, + -1, -1, 86, 60, -1, -1, 63, -1, 92, 93, + 94, -1, 44, 97, 71, -1, 73, -1, -1, 76, + 77, 78, -1, -1, 56, -1, -1, -1, 60, -1, + 87, 63, -1, -1, 91, -1, -1, 44, 95, 71, + -1, 73, -1, -1, 76, 77, 78, -1, 105, 56, + -1, -1, -1, 60, -1, 87, 63, -1, -1, 91, + -1, -1, 44, 95, 71, -1, 73, 124, -1, 76, + 77, 78, -1, 105, 56, -1, -1, -1, 60, -1, + 87, 63, -1, -1, 91, -1, -1, 44, 95, 71, + -1, 73, 124, -1, 76, 77, 78, -1, 105, 56, + -1, -1, -1, 60, -1, 87, 63, -1, -1, 91, + -1, -1, -1, 95, 71, -1, 73, 124, -1, 76, + 77, 78, -1, 105, -1, -1, -1, -1, -1, -1, + 87, -1, -1, -1, 91, -1, -1, -1, 95, -1, + -1, -1, 124, -1, -1, -1, -1, -1, 105, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 124 +}; + +/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing + symbol of state STATE-NUM. */ +static const unsigned char yystos[] = +{ + 0, 100, 101, 102, 128, 129, 220, 3, 4, 5, + 6, 8, 9, 46, 48, 49, 53, 54, 61, 62, + 68, 69, 74, 81, 82, 83, 85, 89, 94, 111, + 115, 116, 119, 121, 125, 213, 214, 219, 9, 46, + 48, 49, 50, 51, 53, 57, 62, 68, 69, 70, + 81, 82, 86, 92, 93, 94, 97, 179, 182, 183, + 185, 190, 192, 196, 197, 201, 202, 203, 204, 0, + 44, 56, 60, 63, 71, 73, 76, 77, 78, 87, + 91, 95, 105, 132, 134, 135, 137, 138, 139, 160, + 198, 200, 220, 121, 121, 121, 121, 121, 112, 121, + 121, 121, 9, 92, 181, 196, 197, 201, 121, 121, + 121, 112, 121, 213, 213, 213, 213, 9, 46, 48, + 49, 53, 62, 68, 69, 81, 82, 94, 182, 211, + 213, 213, 13, 14, 15, 16, 17, 18, 19, 20, + 29, 108, 109, 111, 112, 113, 114, 115, 116, 117, + 118, 120, 121, 122, 6, 179, 53, 62, 69, 202, + 69, 202, 202, 8, 9, 218, 202, 10, 51, 111, + 116, 121, 178, 220, 103, 218, 103, 218, 106, 136, + 121, 103, 218, 106, 106, 106, 161, 137, 144, 73, + 218, 8, 9, 45, 51, 58, 59, 67, 72, 75, + 79, 84, 92, 96, 98, 103, 119, 149, 180, 183, + 185, 190, 192, 196, 197, 201, 210, 211, 220, 210, + 210, 210, 210, 182, 210, 210, 210, 218, 121, 218, + 218, 210, 210, 182, 182, 210, 123, 104, 123, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 123, + 211, 213, 178, 62, 116, 178, 178, 178, 178, 122, + 191, 103, 184, 186, 134, 218, 129, 103, 112, 51, + 149, 180, 218, 121, 121, 179, 219, 51, 179, 218, + 133, 218, 103, 105, 106, 107, 172, 105, 140, 218, + 218, 123, 123, 123, 123, 123, 113, 123, 123, 123, + 210, 123, 123, 123, 113, 123, 213, 213, 106, 123, + 126, 178, 123, 209, 213, 220, 194, 195, 218, 220, + 193, 129, 106, 187, 188, 220, 104, 124, 199, 8, + 9, 50, 51, 92, 162, 163, 164, 165, 201, 220, + 179, 172, 145, 150, 10, 116, 151, 141, 179, 8, + 9, 10, 51, 111, 116, 176, 220, 129, 121, 205, + 206, 130, 131, 218, 103, 213, 10, 51, 75, 111, + 116, 121, 142, 166, 218, 121, 123, 121, 213, 121, + 126, 124, 104, 107, 194, 124, 76, 77, 78, 96, + 189, 103, 104, 218, 129, 218, 165, 218, 113, 104, + 8, 9, 10, 51, 111, 116, 121, 177, 220, 146, + 147, 166, 3, 4, 5, 8, 12, 51, 54, 61, + 74, 83, 85, 89, 111, 115, 119, 121, 125, 168, + 169, 175, 179, 215, 216, 219, 220, 116, 166, 168, + 143, 166, 176, 116, 176, 176, 176, 121, 122, 124, + 152, 124, 207, 220, 103, 104, 121, 103, 173, 174, + 213, 220, 105, 116, 166, 13, 14, 15, 16, 17, + 18, 19, 20, 29, 31, 32, 33, 34, 35, 36, + 37, 38, 39, 40, 41, 42, 52, 74, 104, 107, + 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 121, 122, 125, 158, 166, 166, 166, 106, 107, + 121, 122, 171, 172, 220, 211, 211, 168, 218, 213, + 124, 92, 96, 197, 217, 218, 96, 217, 96, 217, + 76, 77, 78, 129, 189, 104, 124, 107, 177, 137, + 138, 159, 160, 164, 116, 177, 177, 177, 177, 107, + 122, 170, 220, 148, 166, 171, 172, 177, 179, 112, + 181, 121, 112, 213, 213, 213, 182, 211, 213, 123, + 12, 104, 177, 13, 14, 15, 16, 17, 18, 19, + 20, 29, 108, 109, 111, 112, 113, 114, 115, 116, + 117, 118, 120, 121, 122, 166, 106, 123, 123, 171, + 172, 121, 176, 155, 209, 168, 3, 4, 5, 6, + 7, 8, 9, 10, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 21, 22, 29, 30, 31, 32, 33, + 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, + 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, + 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, + 67, 68, 69, 72, 74, 75, 76, 77, 78, 79, + 80, 81, 82, 83, 84, 85, 86, 88, 89, 90, + 91, 92, 93, 94, 96, 97, 98, 99, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 125, + 126, 208, 205, 131, 210, 173, 124, 104, 166, 123, + 126, 123, 4, 213, 167, 209, 104, 123, 123, 123, + 107, 218, 217, 218, 217, 217, 217, 217, 217, 124, + 218, 182, 170, 177, 123, 54, 83, 85, 111, 115, + 116, 119, 121, 125, 212, 214, 209, 171, 172, 104, + 107, 171, 177, 182, 121, 182, 182, 123, 123, 51, + 157, 220, 12, 175, 171, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 213, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 123, 211, 213, 123, 121, + 157, 104, 156, 168, 126, 123, 207, 124, 123, 124, + 103, 213, 168, 126, 142, 157, 213, 123, 121, 112, + 121, 112, 212, 212, 212, 212, 182, 211, 212, 13, + 14, 15, 16, 17, 18, 19, 20, 29, 108, 109, + 111, 114, 115, 116, 117, 118, 120, 121, 122, 126, + 104, 147, 213, 171, 113, 210, 123, 113, 213, 88, + 106, 123, 126, 121, 153, 143, 168, 123, 157, 124, + 173, 123, 105, 168, 182, 182, 182, 123, 123, 212, + 212, 212, 212, 212, 212, 212, 212, 212, 212, 212, + 212, 212, 212, 212, 212, 212, 212, 123, 211, 213, + 148, 121, 123, 121, 121, 213, 154, 168, 123, 157, + 124, 157, 123, 113, 123, 113, 212, 106, 123, 126, + 211, 211, 123, 218, 168, 123, 157, 157, 121, 121, + 212, 123, 123, 123, 123, 157, 211, 211, 157, 123, + 123 +}; + +#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) +# define YYSIZE_T __SIZE_TYPE__ +#endif +#if ! defined (YYSIZE_T) && defined (size_t) +# define YYSIZE_T size_t +#endif +#if ! defined (YYSIZE_T) +# if defined (__STDC__) || defined (__cplusplus) +# include /* INFRINGES ON USER NAME SPACE */ +# define YYSIZE_T size_t +# endif +#endif +#if ! defined (YYSIZE_T) +# define YYSIZE_T unsigned int +#endif #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) -#define YYEMPTY -2 +#define YYEMPTY (-2) #define YYEOF 0 + #define YYACCEPT goto yyacceptlab -#define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 -/* Like YYERROR except do call yyerror. - This remains here temporarily to ease the - transition to the new meaning of YYERROR, for GCC. +#define YYABORT goto yyabortlab +#define YYERROR goto yyerrorlab + + +/* Like YYERROR except do call yyerror. This remains here temporarily + to ease the transition to the new meaning of YYERROR, for GCC. Once GCC version 2 has supplanted version 1, this can go. */ + #define YYFAIL goto yyerrlab + #define YYRECOVERING() (!!yyerrstatus) -#define YYBACKUP(token, value) \ + +#define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY && yylen == 1) \ - { yychar = (token), yylval = (value); \ - yychar1 = YYTRANSLATE (yychar); \ + { \ + yychar = (Token); \ + yylval = (Value); \ + yytoken = YYTRANSLATE (yychar); \ YYPOPSTACK; \ goto yybackup; \ } \ else \ - { yyerror ("syntax error: cannot back up"); YYERROR; } \ + { \ + yyerror ("syntax error: cannot back up");\ + YYERROR; \ + } \ while (0) + #define YYTERROR 1 #define YYERRCODE 256 -#ifndef YYPURE -#define YYLEX yylex() + +/* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. + If N is 0, then set CURRENT to the empty location which ends + the previous symbol: RHS[0] (always defined). */ + +#define YYRHSLOC(Rhs, K) ((Rhs)[K]) +#ifndef YYLLOC_DEFAULT +# define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ + (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ + (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ + (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ + } \ + else \ + { \ + (Current).first_line = (Current).last_line = \ + YYRHSLOC (Rhs, 0).last_line; \ + (Current).first_column = (Current).last_column = \ + YYRHSLOC (Rhs, 0).last_column; \ + } \ + while (0) #endif -#ifdef YYPURE -#ifdef YYLSP_NEEDED + +/* YY_LOCATION_PRINT -- Print the location on the stream. + This macro was not mandated originally: define only if we know + we won't break user code: when these are the locations we know. */ + +#ifndef YY_LOCATION_PRINT +# if YYLTYPE_IS_TRIVIAL +# define YY_LOCATION_PRINT(File, Loc) \ + fprintf (File, "%d.%d-%d.%d", \ + (Loc).first_line, (Loc).first_column, \ + (Loc).last_line, (Loc).last_column) +# else +# define YY_LOCATION_PRINT(File, Loc) ((void) 0) +# endif +#endif + + +/* YYLEX -- calling `yylex' with the right arguments. */ + #ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM) +# define YYLEX yylex (&yylval, &yylloc, YYLEX_PARAM) #else -#define YYLEX yylex(&yylval, &yylloc) +# define YYLEX yylex (&yylval, &yylloc) #endif -#else /* not YYLSP_NEEDED */ -#ifdef YYLEX_PARAM -#define YYLEX yylex(&yylval, YYLEX_PARAM) + +/* Enable debugging if requested. */ +#if YYDEBUG + +# ifndef YYFPRINTF +# include /* INFRINGES ON USER NAME SPACE */ +# define YYFPRINTF fprintf +# endif + +# define YYDPRINTF(Args) \ +do { \ + if (yydebug) \ + YYFPRINTF Args; \ +} while (0) + +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ +do { \ + if (yydebug) \ + { \ + YYFPRINTF (stderr, "%s ", Title); \ + yysymprint (stderr, \ + Type, Value, Location); \ + YYFPRINTF (stderr, "\n"); \ + } \ +} while (0) + +/*------------------------------------------------------------------. +| yy_stack_print -- Print the state stack from its BOTTOM up to its | +| TOP (included). | +`------------------------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_stack_print (short int *bottom, short int *top) #else -#define YYLEX yylex(&yylval) +static void +yy_stack_print (bottom, top) + short int *bottom; + short int *top; #endif -#endif /* not YYLSP_NEEDED */ +{ + YYFPRINTF (stderr, "Stack now"); + for (/* Nothing. */; bottom <= top; ++bottom) + YYFPRINTF (stderr, " %d", *bottom); + YYFPRINTF (stderr, "\n"); +} + +# define YY_STACK_PRINT(Bottom, Top) \ +do { \ + if (yydebug) \ + yy_stack_print ((Bottom), (Top)); \ +} while (0) + + +/*------------------------------------------------. +| Report that the YYRULE is going to be reduced. | +`------------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yy_reduce_print (int yyrule) +#else +static void +yy_reduce_print (yyrule) + int yyrule; #endif +{ + int yyi; + unsigned int yylno = yyrline[yyrule]; + YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", + yyrule - 1, yylno); + /* Print the symbols being reduced, and their result. */ + for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) + YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); + YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); +} -/* If nonreentrant, generate the variables here */ +# define YY_REDUCE_PRINT(Rule) \ +do { \ + if (yydebug) \ + yy_reduce_print (Rule); \ +} while (0) -#ifndef YYPURE +/* Nonzero means print parse trace. It is left uninitialized so that + multiple parsers can coexist. */ +int yydebug; +#else /* !YYDEBUG */ +# define YYDPRINTF(Args) +# define YY_SYMBOL_PRINT(Title, Type, Value, Location) +# define YY_STACK_PRINT(Bottom, Top) +# define YY_REDUCE_PRINT(Rule) +#endif /* !YYDEBUG */ -int yychar; /* the lookahead symbol */ -YYSTYPE yylval; /* the semantic value of the */ - /* lookahead symbol */ - -#ifdef YYLSP_NEEDED -YYLTYPE yylloc; /* location data for the lookahead */ - /* symbol */ -#endif - -int yynerrs; /* number of parse errors so far */ -#endif /* not YYPURE */ - -#if YYDEBUG != 0 -int yydebug; /* nonzero means print parse trace */ -/* Since this is uninitialized, it does not stop multiple parsers - from coexisting. */ -#endif - -/* YYINITDEPTH indicates the initial size of the parser's stacks */ +/* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH -#define YYINITDEPTH 200 +# define YYINITDEPTH 200 #endif -/* YYMAXDEPTH is the maximum size the stacks can grow to - (effective only if the built-in stack extension method is used). */ +/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only + if the built-in stack extension method is used). -#if YYMAXDEPTH == 0 -#undef YYMAXDEPTH -#endif + Do not make this value too large; the results are undefined if + SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) + evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH -#define YYMAXDEPTH 10000 +# define YYMAXDEPTH 10000 #endif + -/* Define __yy_memcpy. Note that the size argument - should be passed with type unsigned int, because that is what the non-GCC - definitions require. With GCC, __builtin_memcpy takes an arg - of type size_t, but it can handle unsigned int. */ -#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */ -#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT) -#else /* not GNU C or C++ */ -#ifndef __cplusplus +#if YYERROR_VERBOSE -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ -static void -__yy_memcpy (to, from, count) - char *to; - char *from; - unsigned int count; +# ifndef yystrlen +# if defined (__GLIBC__) && defined (_STRING_H) +# define yystrlen strlen +# else +/* Return the length of YYSTR. */ +static YYSIZE_T +# if defined (__STDC__) || defined (__cplusplus) +yystrlen (const char *yystr) +# else +yystrlen (yystr) + const char *yystr; +# endif { - register char *f = from; - register char *t = to; - register int i = count; + register const char *yys = yystr; - while (i-- > 0) - *t++ = *f++; + while (*yys++ != '\0') + continue; + + return yys - yystr - 1; } +# endif +# endif -#else /* __cplusplus */ - -/* This is the most reliable way to avoid incompatibilities - in available built-in functions on various systems. */ -static void -__yy_memcpy (char *to, char *from, unsigned int count) +# ifndef yystpcpy +# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) +# define yystpcpy stpcpy +# else +/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in + YYDEST. */ +static char * +# if defined (__STDC__) || defined (__cplusplus) +yystpcpy (char *yydest, const char *yysrc) +# else +yystpcpy (yydest, yysrc) + char *yydest; + const char *yysrc; +# endif { - register char *t = to; - register char *f = from; - register int i = count; + register char *yyd = yydest; + register const char *yys = yysrc; - while (i-- > 0) - *t++ = *f++; + while ((*yyd++ = *yys++) != '\0') + continue; + + return yyd - 1; } +# endif +# endif + +#endif /* !YYERROR_VERBOSE */ -#endif -#endif -#line 217 "/usr/share/bison.simple" -/* The user can define YYPARSE_PARAM as the name of an argument to be passed - into yyparse. The argument should have type void *. - It should actually point to an object. - Grammar actions can access the variable by casting it - to the proper pointer type. */ +#if YYDEBUG +/*--------------------------------. +| Print this symbol on YYOUTPUT. | +`--------------------------------*/ -#ifdef YYPARSE_PARAM -#ifdef __cplusplus -#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM -#define YYPARSE_PARAM_DECL -#else /* not __cplusplus */ -#define YYPARSE_PARAM_ARG YYPARSE_PARAM -#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM; -#endif /* not __cplusplus */ -#else /* not YYPARSE_PARAM */ -#define YYPARSE_PARAM_ARG -#define YYPARSE_PARAM_DECL -#endif /* not YYPARSE_PARAM */ - -/* Prevent warning if -Wstrict-prototypes. */ -#ifdef __GNUC__ -#ifdef YYPARSE_PARAM -int yyparse (void *); +#if defined (__STDC__) || defined (__cplusplus) +static void +yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) #else -int yyparse (void); +static void +yysymprint (yyoutput, yytype, yyvaluep, yylocationp) + FILE *yyoutput; + int yytype; + YYSTYPE *yyvaluep; + YYLTYPE *yylocationp; #endif -#endif - -int -yyparse(YYPARSE_PARAM_ARG) - YYPARSE_PARAM_DECL { + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + (void) yylocationp; + + if (yytype < YYNTOKENS) + YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); + else + YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); + + YY_LOCATION_PRINT (yyoutput, *yylocationp); + fprintf (yyoutput, ": "); + +# ifdef YYPRINT + if (yytype < YYNTOKENS) + YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); +# endif + switch (yytype) + { + default: + break; + } + YYFPRINTF (yyoutput, ")"); +} + +#endif /* ! YYDEBUG */ +/*-----------------------------------------------. +| Release the memory associated to this symbol. | +`-----------------------------------------------*/ + +#if defined (__STDC__) || defined (__cplusplus) +static void +yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) +#else +static void +yydestruct (yymsg, yytype, yyvaluep, yylocationp) + const char *yymsg; + int yytype; + YYSTYPE *yyvaluep; + YYLTYPE *yylocationp; +#endif +{ + /* Pacify ``unused variable'' warnings. */ + (void) yyvaluep; + (void) yylocationp; + + if (!yymsg) + yymsg = "Deleting"; + YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); + + switch (yytype) + { + + default: + break; + } +} + + +/* Prevent warnings from -Wmissing-prototypes. */ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM); +# else +int yyparse (); +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) +int yyparse (void); +#else +int yyparse (); +#endif +#endif /* ! YYPARSE_PARAM */ + + + + + + +/*----------. +| yyparse. | +`----------*/ + +#ifdef YYPARSE_PARAM +# if defined (__STDC__) || defined (__cplusplus) +int yyparse (void *YYPARSE_PARAM) +# else +int yyparse (YYPARSE_PARAM) + void *YYPARSE_PARAM; +# endif +#else /* ! YYPARSE_PARAM */ +#if defined (__STDC__) || defined (__cplusplus) +int +yyparse (void) +#else +int +yyparse () + +#endif +#endif +{ + /* The look-ahead symbol. */ +int yychar; + +/* The semantic value of the look-ahead symbol. */ +YYSTYPE yylval; + +/* Number of syntax errors so far. */ +int yynerrs; +/* Location data for the look-ahead symbol. */ +YYLTYPE yylloc; + register int yystate; register int yyn; - register short *yyssp; + int yyresult; + /* Number of tokens to shift before error messages enabled. */ + int yyerrstatus; + /* Look-ahead token as an internal (translated) token number. */ + int yytoken = 0; + + /* Three stacks and their tools: + `yyss': related to states, + `yyvs': related to semantic values, + `yyls': related to locations. + + Refer to the stacks thru separate pointers, to allow yyoverflow + to reallocate them elsewhere. */ + + /* The state stack. */ + short int yyssa[YYINITDEPTH]; + short int *yyss = yyssa; + register short int *yyssp; + + /* The semantic value stack. */ + YYSTYPE yyvsa[YYINITDEPTH]; + YYSTYPE *yyvs = yyvsa; register YYSTYPE *yyvsp; - int yyerrstatus; /* number of tokens to shift before error messages enabled */ - int yychar1 = 0; /* lookahead token as an internal (translated) token number */ - short yyssa[YYINITDEPTH]; /* the state stack */ - YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */ - - short *yyss = yyssa; /* refer to the stacks thru separate pointers */ - YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */ - -#ifdef YYLSP_NEEDED - YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */ + /* The location stack. */ + YYLTYPE yylsa[YYINITDEPTH]; YYLTYPE *yyls = yylsa; YYLTYPE *yylsp; + /* The locations where the error started and ended. */ + YYLTYPE yyerror_range[2]; #define YYPOPSTACK (yyvsp--, yyssp--, yylsp--) -#else -#define YYPOPSTACK (yyvsp--, yyssp--) -#endif - int yystacksize = YYINITDEPTH; - int yyfree_stacks = 0; + YYSIZE_T yystacksize = YYINITDEPTH; -#ifdef YYPURE - int yychar; - YYSTYPE yylval; - int yynerrs; -#ifdef YYLSP_NEEDED - YYLTYPE yylloc; -#endif -#endif - - YYSTYPE yyval; /* the variable used to return */ - /* semantic values from the action */ - /* routines */ + /* The variables used to return semantic value and location from the + action routines. */ + YYSTYPE yyval; + YYLTYPE yyloc; + /* When reducing, the number of symbols on the RHS of the reduced + rule. */ int yylen; -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Starting parse\n"); -#endif + YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; @@ -2027,278 +2636,244 @@ yyparse(YYPARSE_PARAM_ARG) so that they stay on the same level as the state stack. The wasted elements are never initialized. */ - yyssp = yyss - 1; + yyssp = yyss; yyvsp = yyvs; -#ifdef YYLSP_NEEDED yylsp = yyls; +#if YYLTYPE_IS_TRIVIAL + /* Initialize the default location before parsing starts. */ + yylloc.first_line = yylloc.last_line = 1; + yylloc.first_column = yylloc.last_column = 0; #endif -/* Push a new state, which is found in yystate . */ -/* In all cases, when you get here, the value and location stacks - have just been pushed. so pushing a state here evens the stacks. */ -yynewstate: - *++yyssp = yystate; + yyvsp[0] = yylval; + yylsp[0] = yylloc; - if (yyssp >= yyss + yystacksize - 1) + goto yysetstate; + +/*------------------------------------------------------------. +| yynewstate -- Push a new state, which is found in yystate. | +`------------------------------------------------------------*/ + yynewstate: + /* In all cases, when you get here, the value and location stacks + have just been pushed. so pushing a state here evens the stacks. + */ + yyssp++; + + yysetstate: + *yyssp = yystate; + + if (yyss + yystacksize - 1 <= yyssp) { - /* Give user a chance to reallocate the stack */ - /* Use copies of these so that the &'s don't force the real ones into memory. */ - YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; -#ifdef YYLSP_NEEDED - YYLTYPE *yyls1 = yyls; -#endif - /* Get the current used size of the three stacks, in elements. */ - int size = yyssp - yyss + 1; + YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow - /* Each stack pointer address is followed by the size of - the data in use in that stack, in bytes. */ -#ifdef YYLSP_NEEDED - /* This used to be a conditional around just the two extra args, - but that might be undefined if yyoverflow is a macro. */ - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yyls1, size * sizeof (*yylsp), - &yystacksize); -#else - yyoverflow("parser stack overflow", - &yyss1, size * sizeof (*yyssp), - &yyvs1, size * sizeof (*yyvsp), - &yystacksize); -#endif + { + /* Give user a chance to reallocate the stack. Use copies of + these so that the &'s don't force the real ones into + memory. */ + YYSTYPE *yyvs1 = yyvs; + short int *yyss1 = yyss; + YYLTYPE *yyls1 = yyls; - yyss = yyss1; yyvs = yyvs1; -#ifdef YYLSP_NEEDED - yyls = yyls1; -#endif + /* Each stack pointer address is followed by the size of the + data in use in that stack, in bytes. This used to be a + conditional around just the two extra args, but that might + be undefined if yyoverflow is a macro. */ + yyoverflow ("parser stack overflow", + &yyss1, yysize * sizeof (*yyssp), + &yyvs1, yysize * sizeof (*yyvsp), + &yyls1, yysize * sizeof (*yylsp), + &yystacksize); + yyls = yyls1; + yyss = yyss1; + yyvs = yyvs1; + } #else /* no yyoverflow */ +# ifndef YYSTACK_RELOCATE + goto yyoverflowlab; +# else /* Extend the stack our own way. */ - if (yystacksize >= YYMAXDEPTH) - { - yyerror("parser stack overflow"); - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 2; - } + if (YYMAXDEPTH <= yystacksize) + goto yyoverflowlab; yystacksize *= 2; - if (yystacksize > YYMAXDEPTH) + if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; -#ifndef YYSTACK_USE_ALLOCA - yyfree_stacks = 1; -#endif - yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp)); - __yy_memcpy ((char *)yyss, (char *)yyss1, - size * (unsigned int) sizeof (*yyssp)); - yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp)); - __yy_memcpy ((char *)yyvs, (char *)yyvs1, - size * (unsigned int) sizeof (*yyvsp)); -#ifdef YYLSP_NEEDED - yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp)); - __yy_memcpy ((char *)yyls, (char *)yyls1, - size * (unsigned int) sizeof (*yylsp)); -#endif + + { + short int *yyss1 = yyss; + union yyalloc *yyptr = + (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); + if (! yyptr) + goto yyoverflowlab; + YYSTACK_RELOCATE (yyss); + YYSTACK_RELOCATE (yyvs); + YYSTACK_RELOCATE (yyls); +# undef YYSTACK_RELOCATE + if (yyss1 != yyssa) + YYSTACK_FREE (yyss1); + } +# endif #endif /* no yyoverflow */ - yyssp = yyss + size - 1; - yyvsp = yyvs + size - 1; -#ifdef YYLSP_NEEDED - yylsp = yyls + size - 1; -#endif + yyssp = yyss + yysize - 1; + yyvsp = yyvs + yysize - 1; + yylsp = yyls + yysize - 1; -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Stack size increased to %d\n", yystacksize); -#endif + YYDPRINTF ((stderr, "Stack size increased to %lu\n", + (unsigned long int) yystacksize)); - if (yyssp >= yyss + yystacksize - 1) + if (yyss + yystacksize - 1 <= yyssp) YYABORT; } -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Entering state %d\n", yystate); -#endif + YYDPRINTF ((stderr, "Entering state %d\n", yystate)); goto yybackup; - yybackup: + +/*-----------. +| yybackup. | +`-----------*/ +yybackup: /* Do appropriate processing given the current state. */ -/* Read a lookahead token if we need one and don't already have one. */ +/* Read a look-ahead token if we need one and don't already have one. */ /* yyresume: */ - /* First try to decide what to do without reference to lookahead token. */ + /* First try to decide what to do without reference to look-ahead token. */ yyn = yypact[yystate]; - if (yyn == YYFLAG) + if (yyn == YYPACT_NINF) goto yydefault; - /* Not known => get a lookahead token if don't already have one. */ - - /* yychar is either YYEMPTY or YYEOF - or a valid token in external form. */ + /* Not known => get a look-ahead token if don't already have one. */ + /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol. */ if (yychar == YYEMPTY) { -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Reading a token: "); -#endif + YYDPRINTF ((stderr, "Reading a token: ")); yychar = YYLEX; } - /* Convert token to internal form (in yychar1) for indexing tables with */ - - if (yychar <= 0) /* This means end of input. */ + if (yychar <= YYEOF) { - yychar1 = 0; - yychar = YYEOF; /* Don't call YYLEX any more */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Now at end of input.\n"); -#endif + yychar = yytoken = YYEOF; + YYDPRINTF ((stderr, "Now at end of input.\n")); } else { - yychar1 = YYTRANSLATE(yychar); - -#if YYDEBUG != 0 - if (yydebug) - { - fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]); - /* Give the individual parser a way to print the precise meaning - of a token, for further debugging info. */ -#ifdef YYPRINT - YYPRINT (stderr, yychar, yylval); -#endif - fprintf (stderr, ")\n"); - } -#endif + yytoken = YYTRANSLATE (yychar); + YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } - yyn += yychar1; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1) + /* If the proper action on seeing token YYTOKEN is to reduce or to + detect an error, take that action. */ + yyn += yytoken; + if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; - yyn = yytable[yyn]; - - /* yyn is what to do for this token type in this state. - Negative => reduce, -yyn is rule number. - Positive => shift, yyn is new state. - New state is final state => don't bother to shift, - just return success. - 0, or most negative number => error. */ - - if (yyn < 0) + if (yyn <= 0) { - if (yyn == YYFLAG) + if (yyn == 0 || yyn == YYTABLE_NINF) goto yyerrlab; yyn = -yyn; goto yyreduce; } - else if (yyn == 0) - goto yyerrlab; if (yyn == YYFINAL) YYACCEPT; - /* Shift the lookahead token. */ - -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]); -#endif + /* Shift the look-ahead token. */ + YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; -#ifdef YYLSP_NEEDED *++yylsp = yylloc; -#endif - /* count tokens shifted since error; after three, turn off error status. */ - if (yyerrstatus) yyerrstatus--; + /* Count tokens shifted since error; after three, turn off error + status. */ + if (yyerrstatus) + yyerrstatus--; yystate = yyn; goto yynewstate; -/* Do the default action for the current state. */ -yydefault: +/*-----------------------------------------------------------. +| yydefault -- do the default action for the current state. | +`-----------------------------------------------------------*/ +yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; + goto yyreduce; -/* Do a reduction. yyn is the number of a rule to reduce with. */ + +/*-----------------------------. +| yyreduce -- Do a reduction. | +`-----------------------------*/ yyreduce: + /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; - if (yylen > 0) - yyval = yyvsp[1-yylen]; /* implement default value of the action */ -#if YYDEBUG != 0 - if (yydebug) + /* If YYLEN is nonzero, implement the default value of the action: + `$$ = $1'. + + Otherwise, the following line sets YYVAL to garbage. + This behavior is undocumented and Bison + users should not rely upon it. Assigning to YYVAL + unconditionally makes the parser a bit smaller, and it avoids a + GCC warning that YYVAL may be used uninitialized. */ + yyval = yyvsp[1-yylen]; + + /* Default location. */ + YYLLOC_DEFAULT (yyloc, yylsp - yylen, yylen); + YY_REDUCE_PRINT (yyn); + switch (yyn) { - int i; - - fprintf (stderr, "Reducing via rule %d (line %d), ", - yyn, yyrline[yyn]); - - /* Print the symbols being reduced, and their result. */ - for (i = yyprhs[yyn]; yyrhs[i] > 0; i++) - fprintf (stderr, "%s ", yytname[yyrhs[i]]); - fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]); - } -#endif - - - switch (yyn) { - -case 2: + case 3: #line 383 "cppBison.yxx" -{ - current_expr = yyvsp[0].u.expr; -; - break;} -case 3: + { + current_expr = (yyvsp[0].u.expr); +} + break; + + case 4: #line 387 "cppBison.yxx" -{ - current_type = yyvsp[0].u.type; -; - break;} -case 9: + { + current_type = (yyvsp[0].u.type); +} + break; + + case 10: #line 405 "cppBison.yxx" -{ - delete yyvsp[-1].u.expr; -; - break;} -case 10: + { + delete (yyvsp[-1].u.expr); +} + break; + + case 11: #line 417 "cppBison.yxx" -{ + { push_storage_class((current_storage_class & ~CPPInstance::SC_c_binding) | - (yyvsp[-1].u.integer & CPPInstance::SC_c_binding)); -; - break;} -case 11: + ((yyvsp[-1].u.integer) & CPPInstance::SC_c_binding)); +} + break; + + case 12: #line 422 "cppBison.yxx" -{ + { pop_storage_class(); -; - break;} -case 19: +} + break; + + case 20: #line 436 "cppBison.yxx" -{ + { if (publish_nest_level != 0) { yyerror("Unclosed __begin_publish", publish_loc); publish_nest_level = 0; @@ -2306,349 +2881,390 @@ case 19: } publish_previous = current_scope->get_current_vis(); - publish_loc = yylsp[0]; + publish_loc = (yylsp[0]); publish_nest_level++; current_scope->set_current_vis(V_published); -; - break;} -case 20: +} + break; + + case 21: #line 449 "cppBison.yxx" -{ + { if (publish_nest_level != 1) { - yyerror("Unmatched __end_publish", yylsp[0]); + yyerror("Unmatched __end_publish", (yylsp[0])); } else { current_scope->set_current_vis(publish_previous); } publish_nest_level = 0; -; - break;} -case 21: +} + break; + + case 22: #line 458 "cppBison.yxx" -{ + { current_scope->set_current_vis(V_published); -; - break;} -case 22: +} + break; + + case 23: #line 462 "cppBison.yxx" -{ + { if (publish_nest_level > 0) { current_scope->set_current_vis(V_published); } else { current_scope->set_current_vis(V_public); } -; - break;} -case 23: +} + break; + + case 24: #line 470 "cppBison.yxx" -{ + { current_scope->set_current_vis(V_protected); -; - break;} -case 24: +} + break; + + case 25: #line 474 "cppBison.yxx" -{ + { current_scope->set_current_vis(V_private); -; - break;} -case 25: +} + break; + + case 26: #line 478 "cppBison.yxx" -{ - CPPMakeSeq *make_seq = new CPPMakeSeq(yyvsp[-6].u.identifier->get_simple_name(), yyvsp[-4].u.identifier->get_simple_name(), yyvsp[-2].u.identifier->get_simple_name(), yylsp[-8].file); - current_scope->add_declaration(make_seq, global_scope, current_lexer, yylsp[-8]); -; - break;} -case 26: + { + CPPMakeSeq *make_seq = new CPPMakeSeq((yyvsp[-6].u.identifier)->get_simple_name(), (yyvsp[-4].u.identifier)->get_simple_name(), (yyvsp[-2].u.identifier)->get_simple_name(), (yylsp[-8]).file); + current_scope->add_declaration(make_seq, global_scope, current_lexer, (yylsp[-8])); +} + break; + + case 27: #line 486 "cppBison.yxx" -{ + { CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("temp"), V_public); push_scope(new_scope); -; - break;} -case 27: +} + break; + + case 28: #line 492 "cppBison.yxx" -{ + { delete current_scope; pop_scope(); -; - break;} -case 28: +} + break; + + case 29: #line 501 "cppBison.yxx" -{ - yyval.u.integer = 0; -; - break;} -case 29: + { + (yyval.u.integer) = 0; +} + break; + + case 30: #line 505 "cppBison.yxx" -{ - yyval.u.integer = yyvsp[-1].u.integer | (int)CPPInstance::SC_extern; -; - break;} -case 30: + { + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_extern; +} + break; + + case 31: #line 509 "cppBison.yxx" -{ - yyval.u.integer = yyvsp[-2].u.integer | (int)CPPInstance::SC_extern; - if (yyvsp[0].str == "C") { - yyval.u.integer |= (int)CPPInstance::SC_c_binding; - } else if (yyvsp[0].str == "C++") { - yyval.u.integer &= ~(int)CPPInstance::SC_c_binding; + { + (yyval.u.integer) = (yyvsp[-2].u.integer) | (int)CPPInstance::SC_extern; + if ((yyvsp[0].str) == "C") { + (yyval.u.integer) |= (int)CPPInstance::SC_c_binding; + } else if ((yyvsp[0].str) == "C++") { + (yyval.u.integer) &= ~(int)CPPInstance::SC_c_binding; } else { - yywarning("Ignoring unknown linkage type \"" + yyvsp[0].str + "\"", yylsp[0]); + yywarning("Ignoring unknown linkage type \"" + (yyvsp[0].str) + "\"", (yylsp[0])); } -; - break;} -case 31: +} + break; + + case 32: #line 520 "cppBison.yxx" -{ - yyval.u.integer = yyvsp[-1].u.integer | (int)CPPInstance::SC_static; -; - break;} -case 32: + { + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_static; +} + break; + + case 33: #line 524 "cppBison.yxx" -{ - yyval.u.integer = yyvsp[-1].u.integer | (int)CPPInstance::SC_inline; -; - break;} -case 33: + { + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_inline; +} + break; + + case 34: #line 528 "cppBison.yxx" -{ - yyval.u.integer = yyvsp[-1].u.integer | (int)CPPInstance::SC_virtual; -; - break;} -case 34: + { + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_virtual; +} + break; + + case 35: #line 532 "cppBison.yxx" -{ - yyval.u.integer = yyvsp[-1].u.integer | (int)CPPInstance::SC_explicit; -; - break;} -case 35: + { + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_explicit; +} + break; + + case 36: #line 536 "cppBison.yxx" -{ - yyval.u.integer = yyvsp[-1].u.integer | (int)CPPInstance::SC_volatile; -; - break;} -case 36: + { + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_volatile; +} + break; + + case 37: #line 540 "cppBison.yxx" -{ - yyval.u.integer = yyvsp[-1].u.integer | (int)CPPInstance::SC_mutable; -; - break;} -case 37: + { + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_mutable; +} + break; + + case 38: #line 544 "cppBison.yxx" -{ - yyval.u.integer = yyvsp[-1].u.integer | (int)CPPInstance::SC_register; -; - break;} -case 38: + { + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_register; +} + break; + + case 39: #line 548 "cppBison.yxx" -{ - yyval.u.integer = yyvsp[-1].u.integer | (int)CPPInstance::SC_blocking; -; - break;} -case 39: + { + (yyval.u.integer) = (yyvsp[-1].u.integer) | (int)CPPInstance::SC_blocking; +} + break; + + case 40: #line 555 "cppBison.yxx" -{ + { /* multiple_var_declaration adds itself to the scope. */ -; - break;} -case 40: +} + break; + + case 41: #line 559 "cppBison.yxx" -{ + { // We don't really care about the storage class here. In fact, it's // not actually legal to define a class or struct using a particular // storage class, but we require it just to help yacc out in its // parsing. - current_scope->add_declaration(yyvsp[-1].u.decl, global_scope, current_lexer, yylsp[-1]); -; - break;} -case 41: + current_scope->add_declaration((yyvsp[-1].u.decl), global_scope, current_lexer, (yylsp[-1])); +} + break; + + case 42: #line 568 "cppBison.yxx" -{ - if (yyvsp[-1].u.instance != (CPPInstance *)NULL) { - yyvsp[-1].u.instance->_storage_class |= (current_storage_class | yyvsp[-2].u.integer); - current_scope->add_declaration(yyvsp[-1].u.instance, global_scope, current_lexer, yylsp[-1]); - yyvsp[-1].u.instance->set_initializer(yyvsp[0].u.expr); + { + if ((yyvsp[-1].u.instance) != (CPPInstance *)NULL) { + (yyvsp[-1].u.instance)->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer)); + current_scope->add_declaration((yyvsp[-1].u.instance), global_scope, current_lexer, (yylsp[-1])); + (yyvsp[-1].u.instance)->set_initializer((yyvsp[0].u.expr)); } -; - break;} -case 42: +} + break; + + case 43: #line 579 "cppBison.yxx" -{ + { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. - if (yyvsp[0].u.decl->as_type_declaration()) { - current_type = yyvsp[0].u.decl->as_type_declaration()->_type; + if ((yyvsp[0].u.decl)->as_type_declaration()) { + current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type; } else { - current_type = yyvsp[0].u.decl->as_type(); + current_type = (yyvsp[0].u.decl)->as_type(); } - push_storage_class(yyvsp[-1].u.integer); -; - break;} -case 43: + push_storage_class((yyvsp[-1].u.integer)); +} + break; + + case 44: #line 590 "cppBison.yxx" -{ + { pop_storage_class(); -; - break;} -case 44: +} + break; + + case 45: #line 594 "cppBison.yxx" -{ + { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. - current_type = yyvsp[0].u.type; - push_storage_class(yyvsp[-2].u.integer); -; - break;} -case 45: + current_type = (yyvsp[0].u.type); + push_storage_class((yyvsp[-2].u.integer)); +} + break; + + case 46: #line 601 "cppBison.yxx" -{ + { pop_storage_class(); -; - break;} -case 46: +} + break; + + case 47: #line 612 "cppBison.yxx" -{ - CPPInstance *inst = new CPPInstance(current_type, yyvsp[-1].u.inst_ident, + { + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident), current_storage_class, - yylsp[-1].file); - inst->set_initializer(yyvsp[0].u.expr); - current_scope->add_declaration(inst, global_scope, current_lexer, yylsp[-1]); -; - break;} -case 47: + (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); +} + break; + + case 48: #line 620 "cppBison.yxx" -{ - CPPInstance *inst = new CPPInstance(current_type, yyvsp[-3].u.inst_ident, + { + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident), current_storage_class, - yylsp[-3].file); - inst->set_initializer(yyvsp[-2].u.expr); - current_scope->add_declaration(inst, global_scope, current_lexer, yylsp[-3]); -; - break;} -case 48: + (yylsp[-3]).file); + inst->set_initializer((yyvsp[-2].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3])); +} + break; + + case 49: #line 631 "cppBison.yxx" -{ - yyvsp[-1].u.inst_ident->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(current_type, yyvsp[-1].u.inst_ident, + { + (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident), current_storage_class, - yylsp[-1].file); - inst->set_initializer(yyvsp[0].u.expr); - current_scope->add_declaration(inst, global_scope, current_lexer, yylsp[-1]); -; - break;} -case 49: + (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); +} + break; + + case 50: #line 640 "cppBison.yxx" -{ - yyvsp[-3].u.inst_ident->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(current_type, yyvsp[-3].u.inst_ident, + { + (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident), current_storage_class, - yylsp[-3].file); - inst->set_initializer(yyvsp[-2].u.expr); - current_scope->add_declaration(inst, global_scope, current_lexer, yylsp[-3]); -; - break;} -case 50: + (yylsp[-3]).file); + inst->set_initializer((yyvsp[-2].u.expr)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-3])); +} + break; + + case 51: #line 653 "cppBison.yxx" -{ + { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. - if (yyvsp[0].u.decl->as_type_declaration()) { - current_type = yyvsp[0].u.decl->as_type_declaration()->_type; + if ((yyvsp[0].u.decl)->as_type_declaration()) { + current_type = (yyvsp[0].u.decl)->as_type_declaration()->_type; } else { - current_type = yyvsp[0].u.decl->as_type(); + current_type = (yyvsp[0].u.decl)->as_type(); } - push_storage_class(yyvsp[-1].u.integer); -; - break;} -case 51: + push_storage_class((yyvsp[-1].u.integer)); +} + break; + + case 52: #line 664 "cppBison.yxx" -{ + { pop_storage_class(); -; - break;} -case 52: +} + break; + + case 53: #line 668 "cppBison.yxx" -{ + { // We don't need to push/pop type, because we can't nest // multiple_var_declarations. - current_type = yyvsp[0].u.type; - push_storage_class(yyvsp[-2].u.integer); -; - break;} -case 53: + current_type = (yyvsp[0].u.type); + push_storage_class((yyvsp[-2].u.integer)); +} + break; + + case 54: #line 675 "cppBison.yxx" -{ + { pop_storage_class(); -; - break;} -case 54: +} + break; + + case 55: #line 679 "cppBison.yxx" -{ - if (yyvsp[-1].u.instance != (CPPDeclaration *)NULL) { - CPPInstance *inst = yyvsp[-1].u.instance->as_instance(); + { + if ((yyvsp[-1].u.instance) != (CPPDeclaration *)NULL) { + CPPInstance *inst = (yyvsp[-1].u.instance)->as_instance(); if (inst != (CPPInstance *)NULL) { - inst->_storage_class |= (current_storage_class | yyvsp[-2].u.integer); - current_scope->add_declaration(inst, global_scope, current_lexer, yylsp[-1]); - current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, yylsp[-1]); + inst->_storage_class |= (current_storage_class | (yyvsp[-2].u.integer)); + current_scope->add_declaration(inst, global_scope, current_lexer, (yylsp[-1])); + current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, (yylsp[-1])); } } -; - break;} -case 55: +} + break; + + case 56: #line 693 "cppBison.yxx" -{ - CPPInstance *inst = new CPPInstance(current_type, yyvsp[-1].u.inst_ident, + { + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident), current_storage_class, - yylsp[-1].file); - inst->set_initializer(yyvsp[0].u.expr); - current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, yylsp[-1]); -; - break;} -case 56: + (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, (yylsp[-1])); +} + break; + + case 57: #line 701 "cppBison.yxx" -{ - CPPInstance *inst = new CPPInstance(current_type, yyvsp[-3].u.inst_ident, + { + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident), current_storage_class, - yylsp[-3].file); - inst->set_initializer(yyvsp[-2].u.expr); - current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, yylsp[-3]); -; - break;} -case 57: + (yylsp[-3]).file); + inst->set_initializer((yyvsp[-2].u.expr)); + current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, (yylsp[-3])); +} + break; + + case 58: #line 712 "cppBison.yxx" -{ - yyvsp[-1].u.inst_ident->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(current_type, yyvsp[-1].u.inst_ident, + { + (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-1].u.inst_ident), current_storage_class, - yylsp[-1].file); - inst->set_initializer(yyvsp[0].u.expr); - current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, yylsp[-1]); -; - break;} -case 58: + (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, (yylsp[-1])); +} + break; + + case 59: #line 721 "cppBison.yxx" -{ - yyvsp[-3].u.inst_ident->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(current_type, yyvsp[-3].u.inst_ident, + { + (yyvsp[-3].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance(current_type, (yyvsp[-3].u.inst_ident), current_storage_class, - yylsp[-3].file); - inst->set_initializer(yyvsp[-2].u.expr); - current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, yylsp[-3]); -; - break;} -case 59: + (yylsp[-3]).file); + inst->set_initializer((yyvsp[-2].u.expr)); + current_scope->add_declaration(new CPPTypedef(inst, current_scope == global_scope), global_scope, current_lexer, (yylsp[-3])); +} + break; + + case 60: #line 735 "cppBison.yxx" -{ - push_scope(yyvsp[-1].u.identifier->get_scope(current_scope, global_scope)); -; - break;} -case 60: + { + push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); +} + break; + + case 61: #line 739 "cppBison.yxx" -{ + { pop_scope(); CPPType *type; - if (yyvsp[-5].u.identifier->get_simple_name() == current_scope->get_simple_name()) { + if ((yyvsp[-5].u.identifier)->get_simple_name() == current_scope->get_simple_name()) { // This is a constructor, and has no return. type = new CPPSimpleType(CPPSimpleType::T_void); } else { @@ -2657,24 +3273,26 @@ case 60: type = new CPPSimpleType(CPPSimpleType::T_int); } - CPPInstanceIdentifier *ii = new CPPInstanceIdentifier(yyvsp[-5].u.identifier); - ii->add_func_modifier(yyvsp[-2].u.param_list, yyvsp[0].u.integer); + CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[-5].u.identifier)); + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); - yyval.u.instance = new CPPInstance(type, ii, 0, yylsp[-5].file); -; - break;} -case 61: + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); +} + break; + + case 62: #line 757 "cppBison.yxx" -{ - push_scope(yyvsp[-1].u.identifier->get_scope(current_scope, global_scope)); -; - break;} -case 62: + { + push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); +} + break; + + case 63: #line 761 "cppBison.yxx" -{ + { pop_scope(); CPPType *type; - if (yyvsp[-5].u.identifier->get_simple_name() == current_scope->get_simple_name()) { + if ((yyvsp[-5].u.identifier)->get_simple_name() == current_scope->get_simple_name()) { // This is a constructor, and has no return. type = new CPPSimpleType(CPPSimpleType::T_void); } else { @@ -2683,89 +3301,97 @@ case 62: type = new CPPSimpleType(CPPSimpleType::T_int); } - CPPInstanceIdentifier *ii = new CPPInstanceIdentifier(yyvsp[-5].u.identifier); - ii->add_func_modifier(yyvsp[-2].u.param_list, yyvsp[0].u.integer); + CPPInstanceIdentifier *ii = new CPPInstanceIdentifier((yyvsp[-5].u.identifier)); + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); - yyval.u.instance = new CPPInstance(type, ii, 0, yylsp[-5].file); -; - break;} -case 63: + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); +} + break; + + case 64: #line 781 "cppBison.yxx" -{ - push_scope(yyvsp[-1].u.identifier->get_scope(current_scope, global_scope)); -; - break;} -case 64: + { + push_scope((yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope)); +} + break; + + case 65: #line 785 "cppBison.yxx" -{ + { pop_scope(); - if (yyvsp[-5].u.identifier->is_scoped()) { - yyerror("Invalid destructor name: ~" + yyvsp[-5].u.identifier->get_fully_scoped_name(), yylsp[-5]); + if ((yyvsp[-5].u.identifier)->is_scoped()) { + yyerror("Invalid destructor name: ~" + (yyvsp[-5].u.identifier)->get_fully_scoped_name(), (yylsp[-5])); } else { CPPIdentifier *ident = - new CPPIdentifier("~" + yyvsp[-5].u.identifier->get_simple_name(), yylsp[-5].file); - delete yyvsp[-5].u.identifier; + new CPPIdentifier("~" + (yyvsp[-5].u.identifier)->get_simple_name(), (yylsp[-5]).file); + delete (yyvsp[-5].u.identifier); CPPType *type; type = new CPPSimpleType(CPPSimpleType::T_void); CPPInstanceIdentifier *ii = new CPPInstanceIdentifier(ident); - ii->add_func_modifier(yyvsp[-2].u.param_list, yyvsp[0].u.integer); + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); - yyval.u.instance = new CPPInstance(type, ii, 0, yylsp[-5].file); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-5]).file); } -; - break;} -case 65: +} + break; + + case 66: #line 811 "cppBison.yxx" -{ - push_scope(yyvsp[-2].u.inst_ident->get_scope(current_scope, global_scope)); -; - break;} -case 66: + { + push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); +} + break; + + case 67: #line 815 "cppBison.yxx" -{ + { pop_scope(); - CPPType *type = yyvsp[-9].u.identifier->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[-9].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); assert(type != NULL); - CPPInstanceIdentifier *ii = yyvsp[-6].u.inst_ident; + CPPInstanceIdentifier *ii = (yyvsp[-6].u.inst_ident); ii->add_modifier(IIT_pointer); - ii->add_func_modifier(yyvsp[-2].u.param_list, yyvsp[0].u.integer); - yyval.u.instance = new CPPInstance(type, ii, 0, yylsp[-9].file); -; - break;} -case 67: + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-9]).file); +} + break; + + case 68: #line 826 "cppBison.yxx" -{ - push_scope(yyvsp[-2].u.inst_ident->get_scope(current_scope, global_scope)); -; - break;} -case 68: + { + push_scope((yyvsp[-2].u.inst_ident)->get_scope(current_scope, global_scope)); +} + break; + + case 69: #line 830 "cppBison.yxx" -{ + { pop_scope(); - CPPType *type = yyvsp[-10].u.identifier->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[-10].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); assert(type != NULL); - CPPInstanceIdentifier *ii = yyvsp[-6].u.inst_ident; - ii->add_scoped_pointer_modifier(yyvsp[-8].u.identifier); - ii->add_func_modifier(yyvsp[-2].u.param_list, yyvsp[0].u.integer); - yyval.u.instance = new CPPInstance(type, ii, 0, yylsp[-10].file); -; - break;} -case 69: + CPPInstanceIdentifier *ii = (yyvsp[-6].u.inst_ident); + ii->add_scoped_pointer_modifier((yyvsp[-8].u.identifier)); + ii->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); + (yyval.u.instance) = new CPPInstance(type, ii, 0, (yylsp[-10]).file); +} + break; + + case 70: #line 843 "cppBison.yxx" -{ - if (yyvsp[-3].u.identifier != NULL) { - push_scope(yyvsp[-3].u.identifier->get_scope(current_scope, global_scope)); + { + if ((yyvsp[-3].u.identifier) != NULL) { + push_scope((yyvsp[-3].u.identifier)->get_scope(current_scope, global_scope)); } -; - break;} -case 70: +} + break; + + case 71: #line 849 "cppBison.yxx" -{ - if (yyvsp[-7].u.identifier != NULL) { + { + if ((yyvsp[-7].u.identifier) != NULL) { pop_scope(); } @@ -2775,2568 +3401,2925 @@ case 70: // As an added bonus, the type of the formal_parameter will be the // typecast type, i.e. the return type of the typecast function. - // We give all typecast operators the name "operator typecast". - // Only their return type will differentiate them. (Naturally, this - // violates actual C++ rules, but we're not an actual C++ compiler - // so we don't care. And this is the easiest way to do it.) - CPPIdentifier *ident = yyvsp[-7].u.identifier; + // We give typecast operators the name "operator typecast ", + // where is a simple name of the type to be typecast. Use + // the method's return type to determine the full type description. + string name = "operator typecast " + (yyvsp[-6].u.type)->get_simple_name(); + CPPIdentifier *ident = (yyvsp[-7].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier("operator typecast", yylsp[-7].file); + ident = new CPPIdentifier(name, (yylsp[-7]).file); } else { - ident->add_name("operator typecast"); + ident->add_name(name); } - yyval.u.instance = CPPInstance::make_typecast_function - (new CPPInstance(yyvsp[-6].u.type, yyvsp[-5].u.inst_ident, 0, yylsp[-5].file), ident, yyvsp[-2].u.param_list, yyvsp[0].u.integer); -; - break;} -case 71: + (yyval.u.instance) = CPPInstance::make_typecast_function + (new CPPInstance((yyvsp[-6].u.type), (yyvsp[-5].u.inst_ident), 0, (yylsp[-5]).file), ident, (yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); +} + break; + + case 72: #line 874 "cppBison.yxx" -{ - if (yyvsp[-4].u.identifier != NULL) { - push_scope(yyvsp[-4].u.identifier->get_scope(current_scope, global_scope)); + { + if ((yyvsp[-4].u.identifier) != NULL) { + push_scope((yyvsp[-4].u.identifier)->get_scope(current_scope, global_scope)); } -; - break;} -case 72: +} + break; + + case 73: #line 880 "cppBison.yxx" -{ - if (yyvsp[-8].u.identifier != NULL) { + { + if ((yyvsp[-8].u.identifier) != NULL) { pop_scope(); } - CPPIdentifier *ident = yyvsp[-8].u.identifier; + CPPIdentifier *ident = (yyvsp[-8].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier("operator typecast", yylsp[-8].file); + ident = new CPPIdentifier("operator typecast", (yylsp[-8]).file); } else { ident->add_name("operator typecast"); } - yyvsp[-5].u.inst_ident->add_modifier(IIT_const); - yyval.u.instance = CPPInstance::make_typecast_function - (new CPPInstance(yyvsp[-6].u.type, yyvsp[-5].u.inst_ident, 0, yylsp[-5].file), ident, yyvsp[-2].u.param_list, yyvsp[0].u.integer); -; - break;} -case 73: + (yyvsp[-5].u.inst_ident)->add_modifier(IIT_const); + (yyval.u.instance) = CPPInstance::make_typecast_function + (new CPPInstance((yyvsp[-6].u.type), (yyvsp[-5].u.inst_ident), 0, (yylsp[-5]).file), ident, (yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); +} + break; + + case 74: #line 900 "cppBison.yxx" -{ + { CPPDeclaration *decl = - yyvsp[0].u.identifier->find_symbol(current_scope, global_scope, current_lexer); + (yyvsp[0].u.identifier)->find_symbol(current_scope, global_scope, current_lexer); if (decl != (CPPDeclaration *)NULL) { - yyval.u.instance = decl->as_instance(); + (yyval.u.instance) = decl->as_instance(); } else { - yyval.u.instance = (CPPInstance *)NULL; + (yyval.u.instance) = (CPPInstance *)NULL; } -; - break;} -case 74: +} + break; + + case 75: #line 913 "cppBison.yxx" -{ - yyval.u.integer = 0; -; - break;} -case 75: + { + (yyval.u.integer) = 0; +} + break; + + case 76: #line 917 "cppBison.yxx" -{ - yyval.u.integer = (int)CPPFunctionType::F_const_method; -; - break;} -case 76: + { + (yyval.u.integer) = (int)CPPFunctionType::F_const_method; +} + break; + + case 77: #line 921 "cppBison.yxx" -{ - yyval.u.integer = yyvsp[-3].u.integer; -; - break;} -case 77: + { + (yyval.u.integer) = (yyvsp[-3].u.integer); +} + break; + + case 78: #line 925 "cppBison.yxx" -{ - yyval.u.integer = yyvsp[-4].u.integer; -; - break;} -case 78: + { + (yyval.u.integer) = (yyvsp[-4].u.integer); +} + break; + + case 79: #line 932 "cppBison.yxx" -{ - yyval.str = "!"; -; - break;} -case 79: + { + (yyval.str) = "!"; +} + break; + + case 80: #line 936 "cppBison.yxx" -{ - yyval.str = "~"; -; - break;} -case 80: + { + (yyval.str) = "~"; +} + break; + + case 81: #line 940 "cppBison.yxx" -{ - yyval.str = "*"; -; - break;} -case 81: + { + (yyval.str) = "*"; +} + break; + + case 82: #line 944 "cppBison.yxx" -{ - yyval.str = "/"; -; - break;} -case 82: + { + (yyval.str) = "/"; +} + break; + + case 83: #line 948 "cppBison.yxx" -{ - yyval.str = "%"; -; - break;} -case 83: + { + (yyval.str) = "%"; +} + break; + + case 84: #line 952 "cppBison.yxx" -{ - yyval.str = "+"; -; - break;} -case 84: + { + (yyval.str) = "+"; +} + break; + + case 85: #line 956 "cppBison.yxx" -{ - yyval.str = "-"; -; - break;} -case 85: + { + (yyval.str) = "-"; +} + break; + + case 86: #line 960 "cppBison.yxx" -{ - yyval.str = "|"; -; - break;} -case 86: + { + (yyval.str) = "|"; +} + break; + + case 87: #line 964 "cppBison.yxx" -{ - yyval.str = "&"; -; - break;} -case 87: + { + (yyval.str) = "&"; +} + break; + + case 88: #line 968 "cppBison.yxx" -{ - yyval.str = "^"; -; - break;} -case 88: + { + (yyval.str) = "^"; +} + break; + + case 89: #line 972 "cppBison.yxx" -{ - yyval.str = "||"; -; - break;} -case 89: + { + (yyval.str) = "||"; +} + break; + + case 90: #line 976 "cppBison.yxx" -{ - yyval.str = "&&"; -; - break;} -case 90: + { + (yyval.str) = "&&"; +} + break; + + case 91: #line 980 "cppBison.yxx" -{ - yyval.str = "=="; -; - break;} -case 91: + { + (yyval.str) = "=="; +} + break; + + case 92: #line 984 "cppBison.yxx" -{ - yyval.str = "!="; -; - break;} -case 92: + { + (yyval.str) = "!="; +} + break; + + case 93: #line 988 "cppBison.yxx" -{ - yyval.str = "<="; -; - break;} -case 93: + { + (yyval.str) = "<="; +} + break; + + case 94: #line 992 "cppBison.yxx" -{ - yyval.str = ">="; -; - break;} -case 94: + { + (yyval.str) = ">="; +} + break; + + case 95: #line 996 "cppBison.yxx" -{ - yyval.str = "<"; -; - break;} -case 95: + { + (yyval.str) = "<"; +} + break; + + case 96: #line 1000 "cppBison.yxx" -{ - yyval.str = ">"; -; - break;} -case 96: + { + (yyval.str) = ">"; +} + break; + + case 97: #line 1004 "cppBison.yxx" -{ - yyval.str = "<<"; -; - break;} -case 97: + { + (yyval.str) = "<<"; +} + break; + + case 98: #line 1008 "cppBison.yxx" -{ - yyval.str = ">>"; -; - break;} -case 98: + { + (yyval.str) = ">>"; +} + break; + + case 99: #line 1012 "cppBison.yxx" -{ - yyval.str = "="; -; - break;} -case 99: + { + (yyval.str) = "="; +} + break; + + case 100: #line 1016 "cppBison.yxx" -{ - yyval.str = ","; -; - break;} -case 100: + { + (yyval.str) = ","; +} + break; + + case 101: #line 1020 "cppBison.yxx" -{ - yyval.str = "++"; -; - break;} -case 101: + { + (yyval.str) = "++"; +} + break; + + case 102: #line 1024 "cppBison.yxx" -{ - yyval.str = "--"; -; - break;} -case 102: + { + (yyval.str) = "--"; +} + break; + + case 103: #line 1028 "cppBison.yxx" -{ - yyval.str = "*="; -; - break;} -case 103: + { + (yyval.str) = "*="; +} + break; + + case 104: #line 1032 "cppBison.yxx" -{ - yyval.str = "/="; -; - break;} -case 104: + { + (yyval.str) = "/="; +} + break; + + case 105: #line 1036 "cppBison.yxx" -{ - yyval.str = "%="; -; - break;} -case 105: + { + (yyval.str) = "%="; +} + break; + + case 106: #line 1040 "cppBison.yxx" -{ - yyval.str = "+="; -; - break;} -case 106: + { + (yyval.str) = "+="; +} + break; + + case 107: #line 1044 "cppBison.yxx" -{ - yyval.str = "-="; -; - break;} -case 107: + { + (yyval.str) = "-="; +} + break; + + case 108: #line 1048 "cppBison.yxx" -{ - yyval.str = "|="; -; - break;} -case 108: + { + (yyval.str) = "|="; +} + break; + + case 109: #line 1052 "cppBison.yxx" -{ - yyval.str = "&="; -; - break;} -case 109: + { + (yyval.str) = "&="; +} + break; + + case 110: #line 1056 "cppBison.yxx" -{ - yyval.str = "^="; -; - break;} -case 110: + { + (yyval.str) = "^="; +} + break; + + case 111: #line 1060 "cppBison.yxx" -{ - yyval.str = "<<="; -; - break;} -case 111: + { + (yyval.str) = "<<="; +} + break; + + case 112: #line 1064 "cppBison.yxx" -{ - yyval.str = ">>="; -; - break;} -case 112: + { + (yyval.str) = ">>="; +} + break; + + case 113: #line 1068 "cppBison.yxx" -{ - yyval.str = "->"; -; - break;} -case 113: + { + (yyval.str) = "->"; +} + break; + + case 114: #line 1072 "cppBison.yxx" -{ - yyval.str = "[]"; -; - break;} -case 114: + { + (yyval.str) = "[]"; +} + break; + + case 115: #line 1076 "cppBison.yxx" -{ - yyval.str = "()"; -; - break;} -case 115: + { + (yyval.str) = "()"; +} + break; + + case 116: #line 1080 "cppBison.yxx" -{ - yyval.str = "new"; -; - break;} -case 116: + { + (yyval.str) = "new"; +} + break; + + case 117: #line 1084 "cppBison.yxx" -{ - yyval.str = "delete"; -; - break;} -case 119: + { + (yyval.str) = "delete"; +} + break; + + case 120: #line 1096 "cppBison.yxx" -{ + { push_scope(new CPPTemplateScope(current_scope)); -; - break;} -case 120: +} + break; + + case 121: #line 1100 "cppBison.yxx" -{ + { pop_scope(); -; - break;} -case 123: +} + break; + + case 124: #line 1112 "cppBison.yxx" -{ + { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != NULL); - ts->add_template_parameter(yyvsp[0].u.decl); -; - break;} -case 124: + ts->add_template_parameter((yyvsp[0].u.decl)); +} + break; + + case 125: #line 1118 "cppBison.yxx" -{ + { CPPTemplateScope *ts = current_scope->as_template_scope(); assert(ts != NULL); - ts->add_template_parameter(yyvsp[0].u.decl); -; - break;} -case 125: + ts->add_template_parameter((yyvsp[0].u.decl)); +} + break; + + case 126: #line 1127 "cppBison.yxx" -{ - yyval.u.decl = CPPType::new_type(new CPPClassTemplateParameter(yyvsp[0].u.identifier)); -; - break;} -case 126: + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[0].u.identifier))); +} + break; + + case 127: #line 1131 "cppBison.yxx" -{ - yyval.u.decl = CPPType::new_type(new CPPClassTemplateParameter(yyvsp[-2].u.identifier, yyvsp[0].u.type)); -; - break;} -case 127: + { + (yyval.u.decl) = CPPType::new_type(new CPPClassTemplateParameter((yyvsp[-2].u.identifier), (yyvsp[0].u.type))); +} + break; + + case 128: #line 1135 "cppBison.yxx" -{ - CPPInstance *inst = new CPPInstance(yyvsp[-2].u.type, yyvsp[-1].u.inst_ident, 0, yylsp[-1].file); - inst->set_initializer(yyvsp[0].u.expr); - yyval.u.decl = inst; -; - break;} -case 128: + { + CPPInstance *inst = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + (yyval.u.decl) = inst; +} + break; + + case 129: #line 1141 "cppBison.yxx" -{ - yyvsp[-1].u.inst_ident->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(yyvsp[-2].u.type, yyvsp[-1].u.inst_ident, 0, yylsp[-1].file); - inst->set_initializer(yyvsp[0].u.expr); - yyval.u.decl = inst; -; - break;} -case 129: + { + (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + inst->set_initializer((yyvsp[0].u.expr)); + (yyval.u.decl) = inst; +} + break; + + case 130: #line 1151 "cppBison.yxx" -{ - yyval.u.type = CPPType::new_type(yyvsp[0].u.simple_type); -; - break;} -case 130: + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); +} + break; + + case 131: #line 1155 "cppBison.yxx" -{ - yywarning("Not a type: " + yyvsp[0].u.identifier->get_fully_scoped_name(), yylsp[0]); - yyval.u.type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown)); -; - break;} -case 131: + { + yywarning("Not a type: " + (yyvsp[0].u.identifier)->get_fully_scoped_name(), (yylsp[0])); + (yyval.u.type) = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown)); +} + break; + + case 132: #line 1160 "cppBison.yxx" -{ - yyval.u.type = yyvsp[0].u.identifier->find_type(current_scope, global_scope, false, current_lexer); - assert(yyval.u.type != NULL); -; - break;} -case 132: + { + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + assert((yyval.u.type) != NULL); +} + break; + + case 133: #line 1165 "cppBison.yxx" -{ - yyval.u.type = CPPType::new_type(new CPPTBDType(yyvsp[0].u.identifier)); -; - break;} -case 133: + { + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); +} + break; + + case 134: #line 1173 "cppBison.yxx" -{ - yyval.u.inst_ident = new CPPInstanceIdentifier(yyvsp[0].u.identifier); -; - break;} -case 134: + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); +} + break; + + case 135: #line 1177 "cppBison.yxx" -{ + { // For an operator function. We implement this simply by building a // ficticious name for the function; in other respects it's just // like a regular function. - CPPIdentifier *ident = yyvsp[-1].u.identifier; + CPPIdentifier *ident = (yyvsp[-1].u.identifier); if (ident == NULL) { - ident = new CPPIdentifier("operator "+yyvsp[0].str, yylsp[0].file); + ident = new CPPIdentifier("operator "+(yyvsp[0].str), (yylsp[0]).file); } else { - ident->_names.push_back("operator "+yyvsp[0].str); + ident->_names.push_back("operator "+(yyvsp[0].str)); } - yyval.u.inst_ident = new CPPInstanceIdentifier(ident); -; - break;} -case 135: + (yyval.u.inst_ident) = new CPPInstanceIdentifier(ident); +} + break; + + case 136: #line 1191 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_const); -; - break;} -case 136: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} + break; + + case 137: #line 1196 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_pointer); -; - break;} -case 137: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} + break; + + case 138: #line 1201 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_reference); -; - break;} -case 138: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} + break; + + case 139: #line 1206 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_scoped_pointer_modifier(yyvsp[-2].u.identifier); -; - break;} -case 139: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} + break; + + case 140: #line 1211 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[-3].u.inst_ident; - yyval.u.inst_ident->add_array_modifier(yyvsp[-1].u.expr); -; - break;} -case 140: + { + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} + break; + + case 141: #line 1216 "cppBison.yxx" -{ + { // bitfield definition. We ignore the bitfield for now. - yyval.u.inst_ident = yyvsp[-2].u.inst_ident; -; - break;} -case 141: + (yyval.u.inst_ident) = (yyvsp[-2].u.inst_ident); +} + break; + + case 142: #line 1221 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[-1].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_paren); -; - break;} -case 142: + { + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); +} + break; + + case 143: #line 1226 "cppBison.yxx" -{ - push_scope(yyvsp[-1].u.inst_ident->get_scope(current_scope, global_scope)); -; - break;} -case 143: + { + push_scope((yyvsp[-1].u.inst_ident)->get_scope(current_scope, global_scope)); +} + break; + + case 144: #line 1230 "cppBison.yxx" -{ + { pop_scope(); - yyval.u.inst_ident = yyvsp[-5].u.inst_ident; - if (yyvsp[-2].u.param_list->is_parameter_expr() && yyvsp[0].u.integer == 0) { + (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); + if ((yyvsp[-2].u.param_list)->is_parameter_expr() && (yyvsp[0].u.integer) == 0) { // Oops, this must have been an instance declaration with a // parameter list, not a function prototype. - yyval.u.inst_ident->add_initializer_modifier(yyvsp[-2].u.param_list); + (yyval.u.inst_ident)->add_initializer_modifier((yyvsp[-2].u.param_list)); } else { // This was (probably) a function prototype. - yyval.u.inst_ident->add_func_modifier(yyvsp[-2].u.param_list, yyvsp[0].u.integer); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); } -; - break;} -case 144: +} + break; + + case 145: #line 1248 "cppBison.yxx" -{ - yyval.u.param_list = new CPPParameterList; -; - break;} -case 145: + { + (yyval.u.param_list) = new CPPParameterList; +} + break; + + case 146: #line 1252 "cppBison.yxx" -{ - yyval.u.param_list = new CPPParameterList; - yyval.u.param_list->_includes_ellipsis = true; -; - break;} -case 146: + { + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_includes_ellipsis = true; +} + break; + + case 147: #line 1257 "cppBison.yxx" -{ - yyval.u.param_list = yyvsp[0].u.param_list; -; - break;} -case 147: + { + (yyval.u.param_list) = (yyvsp[0].u.param_list); +} + break; + + case 148: #line 1261 "cppBison.yxx" -{ - yyval.u.param_list = yyvsp[-2].u.param_list; - yyval.u.param_list->_includes_ellipsis = true; -; - break;} -case 148: + { + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} + break; + + case 149: #line 1266 "cppBison.yxx" -{ - yyval.u.param_list = yyvsp[-1].u.param_list; - yyval.u.param_list->_includes_ellipsis = true; -; - break;} -case 149: + { + (yyval.u.param_list) = (yyvsp[-1].u.param_list); + (yyval.u.param_list)->_includes_ellipsis = true; +} + break; + + case 150: #line 1274 "cppBison.yxx" -{ - yyval.u.param_list = new CPPParameterList; - yyval.u.param_list->_parameters.push_back(yyvsp[0].u.instance); -; - break;} -case 150: + { + (yyval.u.param_list) = new CPPParameterList; + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} + break; + + case 151: #line 1279 "cppBison.yxx" -{ - yyval.u.param_list = yyvsp[-2].u.param_list; - yyval.u.param_list->_parameters.push_back(yyvsp[0].u.instance); -; - break;} -case 151: + { + (yyval.u.param_list) = (yyvsp[-2].u.param_list); + (yyval.u.param_list)->_parameters.push_back((yyvsp[0].u.instance)); +} + break; + + case 152: #line 1287 "cppBison.yxx" -{ - yyval.u.expr = (CPPExpression *)NULL; -; - break;} -case 152: + { + (yyval.u.expr) = (CPPExpression *)NULL; +} + break; + + case 153: #line 1291 "cppBison.yxx" -{ - yyval.u.expr = yyvsp[0].u.expr; -; - break;} -case 153: + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} + break; + + case 154: #line 1298 "cppBison.yxx" -{ - yyval.u.expr = (CPPExpression *)NULL; -; - break;} -case 154: + { + (yyval.u.expr) = (CPPExpression *)NULL; +} + break; + + case 155: #line 1302 "cppBison.yxx" -{ - yyval.u.expr = yyvsp[0].u.expr; -; - break;} -case 155: + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} + break; + + case 156: #line 1309 "cppBison.yxx" -{ - yyval.u.expr = (CPPExpression *)NULL; -; - break;} -case 156: + { + (yyval.u.expr) = (CPPExpression *)NULL; +} + break; + + case 157: #line 1313 "cppBison.yxx" -{ - yyval.u.expr = (CPPExpression *)NULL; -; - break;} -case 157: + { + (yyval.u.expr) = (CPPExpression *)NULL; +} + break; + + case 158: #line 1317 "cppBison.yxx" -{ - yyval.u.expr = (CPPExpression *)NULL; -; - break;} -case 158: + { + (yyval.u.expr) = (CPPExpression *)NULL; +} + break; + + case 159: #line 1321 "cppBison.yxx" -{ - yyval.u.expr = yyvsp[-1].u.expr; -; - break;} -case 159: + { + (yyval.u.expr) = (yyvsp[-1].u.expr); +} + break; + + case 160: #line 1325 "cppBison.yxx" -{ - yyval.u.expr = (CPPExpression *)NULL; -; - break;} -case 163: + { + (yyval.u.expr) = (CPPExpression *)NULL; +} + break; + + case 164: #line 1338 "cppBison.yxx" -{ -; - break;} -case 167: + { +} + break; + + case 168: #line 1347 "cppBison.yxx" -{ - yyval.u.instance = new CPPInstance(yyvsp[-2].u.type, yyvsp[-1].u.inst_ident, 0, yylsp[-1].file); - yyval.u.instance->set_initializer(yyvsp[0].u.expr); -; - break;} -case 168: + { + (yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); +} + break; + + case 169: #line 1352 "cppBison.yxx" -{ - yywarning("Not a type: " + yyvsp[-2].u.identifier->get_fully_scoped_name(), yylsp[-2]); + { + yywarning("Not a type: " + (yyvsp[-2].u.identifier)->get_fully_scoped_name(), (yylsp[-2])); CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_unknown)); - yyval.u.instance = new CPPInstance(type, yyvsp[-1].u.inst_ident, 0, yylsp[-1].file); - yyval.u.instance->set_initializer(yyvsp[0].u.expr); -; - break;} -case 169: + (yyval.u.instance) = new CPPInstance(type, (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); +} + break; + + case 170: #line 1360 "cppBison.yxx" -{ - yyvsp[-1].u.inst_ident->add_modifier(IIT_const); - yyval.u.instance = new CPPInstance(yyvsp[-2].u.type, yyvsp[-1].u.inst_ident, 0, yylsp[-1].file); - yyval.u.instance->set_initializer(yyvsp[0].u.expr); -; - break;} -case 170: + { + (yyvsp[-1].u.inst_ident)->add_modifier(IIT_const); + (yyval.u.instance) = new CPPInstance((yyvsp[-2].u.type), (yyvsp[-1].u.inst_ident), 0, (yylsp[-1]).file); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); +} + break; + + case 171: #line 1366 "cppBison.yxx" -{ + { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_parameter)); - yyval.u.instance = new CPPInstance(type, "expr"); - yyval.u.instance->set_initializer(yyvsp[0].u.expr); -; - break;} -case 171: + (yyval.u.instance) = new CPPInstance(type, "expr"); + (yyval.u.instance)->set_initializer((yyvsp[0].u.expr)); +} + break; + + case 172: #line 1376 "cppBison.yxx" -{ - yyval.u.inst_ident = new CPPInstanceIdentifier((CPPIdentifier *)NULL); -; - break;} -case 172: + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); +} + break; + + case 173: #line 1380 "cppBison.yxx" -{ - yyval.u.inst_ident = new CPPInstanceIdentifier(yyvsp[0].u.identifier); -; - break;} -case 173: + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); +} + break; + + case 174: #line 1384 "cppBison.yxx" -{ - yyval.u.inst_ident = new CPPInstanceIdentifier(yyvsp[0].u.identifier); -; - break;} -case 174: + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); +} + break; + + case 175: #line 1388 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_const); -; - break;} -case 175: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} + break; + + case 176: #line 1393 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_pointer); -; - break;} -case 176: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} + break; + + case 177: #line 1398 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_reference); -; - break;} -case 177: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} + break; + + case 178: #line 1403 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_scoped_pointer_modifier(yyvsp[-2].u.identifier); -; - break;} -case 178: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} + break; + + case 179: #line 1408 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[-3].u.inst_ident; - yyval.u.inst_ident->add_array_modifier(yyvsp[-1].u.expr); -; - break;} -case 179: + { + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} + break; + + case 180: #line 1416 "cppBison.yxx" -{ - yyval.u.inst_ident = new CPPInstanceIdentifier((CPPIdentifier *)NULL); -; - break;} -case 180: + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); +} + break; + + case 181: #line 1420 "cppBison.yxx" -{ - yyval.u.inst_ident = new CPPInstanceIdentifier(yyvsp[0].u.identifier); -; - break;} -case 181: + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); +} + break; + + case 182: #line 1424 "cppBison.yxx" -{ - yyval.u.inst_ident = new CPPInstanceIdentifier(yyvsp[0].u.identifier); -; - break;} -case 182: + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((yyvsp[0].u.identifier)); +} + break; + + case 183: #line 1428 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_const); -; - break;} -case 183: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} + break; + + case 184: #line 1433 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_pointer); -; - break;} -case 184: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} + break; + + case 185: #line 1438 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_reference); -; - break;} -case 185: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} + break; + + case 186: #line 1443 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_scoped_pointer_modifier(yyvsp[-2].u.identifier); -; - break;} -case 186: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} + break; + + case 187: #line 1448 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[-3].u.inst_ident; - yyval.u.inst_ident->add_array_modifier(yyvsp[-1].u.expr); -; - break;} -case 187: + { + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} + break; + + case 188: #line 1453 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[-5].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_paren); - yyval.u.inst_ident->add_func_modifier(yyvsp[-2].u.param_list, yyvsp[0].u.integer); -; - break;} -case 188: + { + (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); +} + break; + + case 189: #line 1459 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[-1].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_paren); -; - break;} -case 189: + { + (yyval.u.inst_ident) = (yyvsp[-1].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); +} + break; + + case 190: #line 1467 "cppBison.yxx" -{ - yyval.u.inst_ident = new CPPInstanceIdentifier((CPPIdentifier *)NULL); -; - break;} -case 190: + { + (yyval.u.inst_ident) = new CPPInstanceIdentifier((CPPIdentifier *)NULL); +} + break; + + case 191: #line 1471 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_const); -; - break;} -case 191: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_const); +} + break; + + case 192: #line 1476 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_pointer); -; - break;} -case 192: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_pointer); +} + break; + + case 193: #line 1481 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_reference); -; - break;} -case 193: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_reference); +} + break; + + case 194: #line 1486 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[0].u.inst_ident; - yyval.u.inst_ident->add_scoped_pointer_modifier(yyvsp[-2].u.identifier); -; - break;} -case 194: + { + (yyval.u.inst_ident) = (yyvsp[0].u.inst_ident); + (yyval.u.inst_ident)->add_scoped_pointer_modifier((yyvsp[-2].u.identifier)); +} + break; + + case 195: #line 1491 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[-3].u.inst_ident; - yyval.u.inst_ident->add_array_modifier(yyvsp[-1].u.expr); -; - break;} -case 195: + { + (yyval.u.inst_ident) = (yyvsp[-3].u.inst_ident); + (yyval.u.inst_ident)->add_array_modifier((yyvsp[-1].u.expr)); +} + break; + + case 196: #line 1496 "cppBison.yxx" -{ - yyval.u.inst_ident = yyvsp[-5].u.inst_ident; - yyval.u.inst_ident->add_modifier(IIT_paren); - yyval.u.inst_ident->add_func_modifier(yyvsp[-2].u.param_list, yyvsp[0].u.integer); -; - break;} -case 196: + { + (yyval.u.inst_ident) = (yyvsp[-5].u.inst_ident); + (yyval.u.inst_ident)->add_modifier(IIT_paren); + (yyval.u.inst_ident)->add_func_modifier((yyvsp[-2].u.param_list), (yyvsp[0].u.integer)); +} + break; + + case 197: #line 1505 "cppBison.yxx" -{ - yyval.u.type = CPPType::new_type(yyvsp[0].u.simple_type); -; - break;} -case 197: + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); +} + break; + + case 198: #line 1509 "cppBison.yxx" -{ - yyval.u.type = yyvsp[0].u.identifier->find_type(current_scope, global_scope, false, current_lexer); - assert(yyval.u.type != NULL); -; - break;} -case 198: + { + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + assert((yyval.u.type) != NULL); +} + break; + + case 199: #line 1514 "cppBison.yxx" -{ - yyval.u.type = CPPType::new_type(new CPPTBDType(yyvsp[0].u.identifier)); -; - break;} -case 199: + { + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); +} + break; + + case 200: #line 1518 "cppBison.yxx" -{ - yyval.u.type = CPPType::new_type(yyvsp[0].u.struct_type); -; - break;} -case 200: + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); +} + break; + + case 201: #line 1522 "cppBison.yxx" -{ - yyval.u.type = CPPType::new_type(yyvsp[0].u.struct_type); -; - break;} -case 201: + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.struct_type)); +} + break; + + case 202: #line 1526 "cppBison.yxx" -{ - yyval.u.type = CPPType::new_type(yyvsp[0].u.enum_type); -; - break;} -case 202: + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type)); +} + break; + + case 203: #line 1530 "cppBison.yxx" -{ - yyval.u.type = CPPType::new_type(yyvsp[0].u.enum_type); -; - break;} -case 203: + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.enum_type)); +} + break; + + case 204: #line 1534 "cppBison.yxx" -{ - CPPType *type = yyvsp[0].u.identifier->find_type(current_scope, global_scope, false, current_lexer); + { + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { - yyval.u.type = type; + (yyval.u.type) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType(yyvsp[-1].u.extension_enum, yyvsp[0].u.identifier, current_scope, yylsp[-1].file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) ->as_extension_type(); - CPPScope *scope = yyvsp[0].u.identifier->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } - yyval.u.type = et; + (yyval.u.type) = et; } -; - break;} -case 204: +} + break; + + case 205: #line 1550 "cppBison.yxx" -{ - CPPType *type = yyvsp[0].u.identifier->find_type(current_scope, global_scope, false, current_lexer); + { + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { - yyval.u.type = type; + (yyval.u.type) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType(yyvsp[-1].u.extension_enum, yyvsp[0].u.identifier, current_scope, yylsp[-1].file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) ->as_extension_type(); - CPPScope *scope = yyvsp[0].u.identifier->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } - yyval.u.type = et; + (yyval.u.type) = et; } -; - break;} -case 205: +} + break; + + case 206: #line 1569 "cppBison.yxx" -{ - yyval.u.decl = CPPType::new_type(yyvsp[0].u.simple_type); -; - break;} -case 206: + { + (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.simple_type)); +} + break; + + case 207: #line 1573 "cppBison.yxx" -{ - yyval.u.decl = yyvsp[0].u.identifier->find_type(current_scope, global_scope, false, current_lexer); - assert(yyval.u.decl != NULL); -; - break;} -case 207: + { + (yyval.u.decl) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + assert((yyval.u.decl) != NULL); +} + break; + + case 208: #line 1578 "cppBison.yxx" -{ - yyval.u.decl = CPPType::new_type(new CPPTBDType(yyvsp[0].u.identifier)); -; - break;} -case 208: + { + (yyval.u.decl) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); +} + break; + + case 209: #line 1582 "cppBison.yxx" -{ - yyval.u.decl = CPPType::new_type(yyvsp[0].u.struct_type); -; - break;} -case 209: + { + (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.struct_type)); +} + break; + + case 210: #line 1586 "cppBison.yxx" -{ - yyval.u.decl = new CPPTypeDeclaration(CPPType::new_type(yyvsp[0].u.struct_type)); -; - break;} -case 210: + { + (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.struct_type))); +} + break; + + case 211: #line 1590 "cppBison.yxx" -{ - yyval.u.decl = CPPType::new_type(yyvsp[0].u.enum_type); -; - break;} -case 211: + { + (yyval.u.decl) = CPPType::new_type((yyvsp[0].u.enum_type)); +} + break; + + case 212: #line 1594 "cppBison.yxx" -{ - yyval.u.decl = new CPPTypeDeclaration(CPPType::new_type(yyvsp[0].u.enum_type)); -; - break;} -case 212: + { + (yyval.u.decl) = new CPPTypeDeclaration(CPPType::new_type((yyvsp[0].u.enum_type))); +} + break; + + case 213: #line 1598 "cppBison.yxx" -{ - CPPType *type = yyvsp[0].u.identifier->find_type(current_scope, global_scope, false, current_lexer); + { + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { - yyval.u.decl = type; + (yyval.u.decl) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType(yyvsp[-1].u.extension_enum, yyvsp[0].u.identifier, current_scope, yylsp[-1].file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) ->as_extension_type(); - CPPScope *scope = yyvsp[0].u.identifier->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } - yyval.u.decl = et; + (yyval.u.decl) = et; } -; - break;} -case 213: +} + break; + + case 214: #line 1614 "cppBison.yxx" -{ - CPPType *type = yyvsp[0].u.identifier->find_type(current_scope, global_scope, false, current_lexer); + { + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { - yyval.u.decl = type; + (yyval.u.decl) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType(yyvsp[-1].u.extension_enum, yyvsp[0].u.identifier, current_scope, yylsp[-1].file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) ->as_extension_type(); - CPPScope *scope = yyvsp[0].u.identifier->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } - yyval.u.decl = et; + (yyval.u.decl) = et; } -; - break;} -case 214: +} + break; + + case 215: #line 1633 "cppBison.yxx" -{ - yyval.u.type = CPPType::new_type(yyvsp[0].u.simple_type); -; - break;} -case 215: + { + (yyval.u.type) = CPPType::new_type((yyvsp[0].u.simple_type)); +} + break; + + case 216: #line 1637 "cppBison.yxx" -{ - yyval.u.type = yyvsp[0].u.identifier->find_type(current_scope, global_scope, false, current_lexer); - assert(yyval.u.type != NULL); -; - break;} -case 216: + { + (yyval.u.type) = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); + assert((yyval.u.type) != NULL); +} + break; + + case 217: #line 1642 "cppBison.yxx" -{ - yyval.u.type = CPPType::new_type(new CPPTBDType(yyvsp[0].u.identifier)); -; - break;} -case 217: + { + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); +} + break; + + case 218: #line 1646 "cppBison.yxx" -{ - CPPType *type = yyvsp[0].u.identifier->find_type(current_scope, global_scope, false, current_lexer); + { + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { - yyval.u.type = type; + (yyval.u.type) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType(yyvsp[-1].u.extension_enum, yyvsp[0].u.identifier, current_scope, yylsp[-1].file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) ->as_extension_type(); - CPPScope *scope = yyvsp[0].u.identifier->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } - yyval.u.type = et; + (yyval.u.type) = et; } -; - break;} -case 218: +} + break; + + case 219: #line 1662 "cppBison.yxx" -{ - CPPType *type = yyvsp[0].u.identifier->find_type(current_scope, global_scope, false, current_lexer); + { + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); if (type != NULL) { - yyval.u.type = type; + (yyval.u.type) = type; } else { CPPExtensionType *et = - CPPType::new_type(new CPPExtensionType(yyvsp[-1].u.extension_enum, yyvsp[0].u.identifier, current_scope, yylsp[-1].file)) + CPPType::new_type(new CPPExtensionType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, (yylsp[-1]).file)) ->as_extension_type(); - CPPScope *scope = yyvsp[0].u.identifier->get_scope(current_scope, global_scope); + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope); if (scope != NULL) { scope->define_extension_type(et); } - yyval.u.type = et; + (yyval.u.type) = et; } -; - break;} -case 219: +} + break; + + case 220: #line 1681 "cppBison.yxx" -{ - CPPInstance *inst = new CPPInstance(yyvsp[-1].u.type, yyvsp[0].u.inst_ident, 0, yylsp[-1].file); - yyval.u.type = inst->_type; + { + CPPInstance *inst = new CPPInstance((yyvsp[-1].u.type), (yyvsp[0].u.inst_ident), 0, (yylsp[-1]).file); + (yyval.u.type) = inst->_type; delete inst; -; - break;} -case 220: +} + break; + + case 221: #line 1687 "cppBison.yxx" -{ - yyvsp[0].u.inst_ident->add_modifier(IIT_const); - CPPInstance *inst = new CPPInstance(yyvsp[-1].u.type, yyvsp[0].u.inst_ident, 0, yylsp[-2].file); - yyval.u.type = inst->_type; + { + (yyvsp[0].u.inst_ident)->add_modifier(IIT_const); + CPPInstance *inst = new CPPInstance((yyvsp[-1].u.type), (yyvsp[0].u.inst_ident), 0, (yylsp[-2]).file); + (yyval.u.type) = inst->_type; delete inst; -; - break;} -case 221: +} + break; + + case 222: #line 1697 "cppBison.yxx" -{ + { CPPVisibility starting_vis = - (yyvsp[-1].u.extension_enum == CPPExtensionType::T_class) ? V_private : V_public; + ((yyvsp[-1].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; CPPScope *new_scope = new CPPScope(current_scope, CPPNameComponent("anon"), starting_vis); - CPPStructType *st = new CPPStructType(yyvsp[-1].u.extension_enum, NULL, current_scope, - new_scope, yylsp[-1].file); + CPPStructType *st = new CPPStructType((yyvsp[-1].u.extension_enum), NULL, current_scope, + new_scope, (yylsp[-1]).file); new_scope->set_struct_type(st); push_scope(new_scope); push_struct(st); -; - break;} -case 222: +} + break; + + case 223: #line 1711 "cppBison.yxx" -{ - yyval.u.struct_type = current_struct; + { + (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); -; - break;} -case 223: -#line 1721 "cppBison.yxx" -{ - CPPVisibility starting_vis = - (yyvsp[-1].u.extension_enum == CPPExtensionType::T_class) ? V_private : V_public; +} + break; - CPPScope *scope = yyvsp[0].u.identifier->get_scope(current_scope, global_scope, current_lexer); + case 224: +#line 1721 "cppBison.yxx" + { + CPPVisibility starting_vis = + ((yyvsp[-1].u.extension_enum) == CPPExtensionType::T_class) ? V_private : V_public; + + CPPScope *scope = (yyvsp[0].u.identifier)->get_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { scope = current_scope; } - CPPScope *new_scope = new CPPScope(scope, yyvsp[0].u.identifier->_names.back(), + CPPScope *new_scope = new CPPScope(scope, (yyvsp[0].u.identifier)->_names.back(), starting_vis); - CPPStructType *st = new CPPStructType(yyvsp[-1].u.extension_enum, yyvsp[0].u.identifier, current_scope, - new_scope, yylsp[-1].file); + CPPStructType *st = new CPPStructType((yyvsp[-1].u.extension_enum), (yyvsp[0].u.identifier), current_scope, + new_scope, (yylsp[-1]).file); new_scope->set_struct_type(st); current_scope->define_extension_type(st); push_scope(new_scope); push_struct(st); -; - break;} -case 224: +} + break; + + case 225: #line 1741 "cppBison.yxx" -{ - yyval.u.struct_type = current_struct; + { + (yyval.u.struct_type) = current_struct; current_struct->_incomplete = false; pop_struct(); pop_scope(); -; - break;} -case 229: +} + break; + + case 230: #line 1761 "cppBison.yxx" -{ - current_struct->append_derivation(yyvsp[0].u.type, V_public, false); -; - break;} -case 230: + { + current_struct->append_derivation((yyvsp[0].u.type), V_public, false); +} + break; + + case 231: #line 1765 "cppBison.yxx" -{ - current_struct->append_derivation(yyvsp[0].u.type, V_protected, false); -; - break;} -case 231: + { + current_struct->append_derivation((yyvsp[0].u.type), V_protected, false); +} + break; + + case 232: #line 1769 "cppBison.yxx" -{ - current_struct->append_derivation(yyvsp[0].u.type, V_private, false); -; - break;} -case 232: + { + current_struct->append_derivation((yyvsp[0].u.type), V_private, false); +} + break; + + case 233: #line 1773 "cppBison.yxx" -{ - current_struct->append_derivation(yyvsp[0].u.type, V_public, true); -; - break;} -case 233: + { + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); +} + break; + + case 234: #line 1777 "cppBison.yxx" -{ - current_struct->append_derivation(yyvsp[0].u.type, V_protected, true); -; - break;} -case 234: + { + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); +} + break; + + case 235: #line 1781 "cppBison.yxx" -{ - current_struct->append_derivation(yyvsp[0].u.type, V_private, true); -; - break;} -case 235: + { + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); +} + break; + + case 236: #line 1785 "cppBison.yxx" -{ - current_struct->append_derivation(yyvsp[0].u.type, V_public, true); -; - break;} -case 236: + { + current_struct->append_derivation((yyvsp[0].u.type), V_public, true); +} + break; + + case 237: #line 1789 "cppBison.yxx" -{ - current_struct->append_derivation(yyvsp[0].u.type, V_protected, true); -; - break;} -case 237: + { + current_struct->append_derivation((yyvsp[0].u.type), V_protected, true); +} + break; + + case 238: #line 1793 "cppBison.yxx" -{ - current_struct->append_derivation(yyvsp[0].u.type, V_private, true); -; - break;} -case 238: + { + current_struct->append_derivation((yyvsp[0].u.type), V_private, true); +} + break; + + case 239: #line 1800 "cppBison.yxx" -{ - current_enum = new CPPEnumType(NULL, current_scope, yylsp[-1].file); -; - break;} -case 239: + { + current_enum = new CPPEnumType(NULL, current_scope, (yylsp[-1]).file); +} + break; + + case 240: #line 1804 "cppBison.yxx" -{ - yyval.u.enum_type = current_enum; + { + (yyval.u.enum_type) = current_enum; current_enum = NULL; -; - break;} -case 240: +} + break; + + case 241: #line 1812 "cppBison.yxx" -{ - current_enum = new CPPEnumType(yyvsp[-1].u.identifier, current_scope, yylsp[-2].file); -; - break;} -case 241: + { + current_enum = new CPPEnumType((yyvsp[-1].u.identifier), current_scope, (yylsp[-2]).file); +} + break; + + case 242: #line 1816 "cppBison.yxx" -{ - yyval.u.enum_type = current_enum; + { + (yyval.u.enum_type) = current_enum; current_enum = NULL; -; - break;} -case 245: +} + break; + + case 246: #line 1830 "cppBison.yxx" -{ + { assert(current_enum != NULL); - current_enum->add_element(yyvsp[0].u.identifier->get_simple_name(), current_scope); -; - break;} -case 246: + current_enum->add_element((yyvsp[0].u.identifier)->get_simple_name(), current_scope); +} + break; + + case 247: #line 1835 "cppBison.yxx" -{ + { assert(current_enum != NULL); - current_enum->add_element(yyvsp[-2].u.identifier->get_simple_name(), current_scope, yyvsp[0].u.expr); -; - break;} -case 247: + current_enum->add_element((yyvsp[-2].u.identifier)->get_simple_name(), current_scope, (yyvsp[0].u.expr)); +} + break; + + case 248: #line 1840 "cppBison.yxx" -{ + { assert(current_enum != NULL); - current_enum->add_element(yyvsp[0].u.identifier->get_simple_name(), current_scope); -; - break;} -case 248: + current_enum->add_element((yyvsp[0].u.identifier)->get_simple_name(), current_scope); +} + break; + + case 249: #line 1845 "cppBison.yxx" -{ + { assert(current_enum != NULL); - current_enum->add_element(yyvsp[-2].u.identifier->get_simple_name(), current_scope, yyvsp[0].u.expr); -; - break;} -case 249: + current_enum->add_element((yyvsp[-2].u.identifier)->get_simple_name(), current_scope, (yyvsp[0].u.expr)); +} + break; + + case 250: #line 1853 "cppBison.yxx" -{ - yyval.u.extension_enum = CPPExtensionType::T_enum; -; - break;} -case 250: + { + (yyval.u.extension_enum) = CPPExtensionType::T_enum; +} + break; + + case 251: #line 1860 "cppBison.yxx" -{ - yyval.u.extension_enum = CPPExtensionType::T_class; -; - break;} -case 251: + { + (yyval.u.extension_enum) = CPPExtensionType::T_class; +} + break; + + case 252: #line 1864 "cppBison.yxx" -{ - yyval.u.extension_enum = CPPExtensionType::T_struct; -; - break;} -case 252: + { + (yyval.u.extension_enum) = CPPExtensionType::T_struct; +} + break; + + case 253: #line 1868 "cppBison.yxx" -{ - yyval.u.extension_enum = CPPExtensionType::T_union; -; - break;} -case 253: + { + (yyval.u.extension_enum) = CPPExtensionType::T_union; +} + break; + + case 254: #line 1875 "cppBison.yxx" -{ - CPPScope *scope = yyvsp[-1].u.identifier->find_scope(current_scope, global_scope, current_lexer); + { + CPPScope *scope = (yyvsp[-1].u.identifier)->find_scope(current_scope, global_scope, current_lexer); if (scope == NULL) { // This must be a new namespace declaration. CPPScope *parent_scope = - yyvsp[-1].u.identifier->get_scope(current_scope, global_scope, current_lexer); + (yyvsp[-1].u.identifier)->get_scope(current_scope, global_scope, current_lexer); if (parent_scope == NULL) { parent_scope = current_scope; } - scope = new CPPScope(parent_scope, yyvsp[-1].u.identifier->_names.back(), V_public); + scope = new CPPScope(parent_scope, (yyvsp[-1].u.identifier)->_names.back(), V_public); } - CPPNamespace *nspace = new CPPNamespace(yyvsp[-1].u.identifier, scope, yylsp[-2].file); - current_scope->add_declaration(nspace, global_scope, current_lexer, yylsp[-2]); + CPPNamespace *nspace = new CPPNamespace((yyvsp[-1].u.identifier), scope, (yylsp[-2]).file); + current_scope->add_declaration(nspace, global_scope, current_lexer, (yylsp[-2])); current_scope->define_namespace(nspace); push_scope(scope); -; - break;} -case 254: +} + break; + + case 255: #line 1893 "cppBison.yxx" -{ + { pop_scope(); -; - break;} -case 256: +} + break; + + case 257: #line 1901 "cppBison.yxx" -{ - CPPUsing *using_decl = new CPPUsing(yyvsp[0].u.identifier, false, yylsp[-1].file); - current_scope->add_declaration(using_decl, global_scope, current_lexer, yylsp[-1]); + { + CPPUsing *using_decl = new CPPUsing((yyvsp[0].u.identifier), false, (yylsp[-1]).file); + current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[-1])); current_scope->add_using(using_decl, global_scope, current_lexer); -; - break;} -case 257: +} + break; + + case 258: #line 1907 "cppBison.yxx" -{ - CPPUsing *using_decl = new CPPUsing(yyvsp[0].u.identifier, true, yylsp[-2].file); - current_scope->add_declaration(using_decl, global_scope, current_lexer, yylsp[-2]); + { + CPPUsing *using_decl = new CPPUsing((yyvsp[0].u.identifier), true, (yylsp[-2]).file); + current_scope->add_declaration(using_decl, global_scope, current_lexer, (yylsp[-2])); current_scope->add_using(using_decl, global_scope, current_lexer); -; - break;} -case 261: +} + break; + + case 262: #line 1922 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_bool); -; - break;} -case 262: + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_bool); +} + break; + + case 263: #line 1926 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_char); -; - break;} -case 263: + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_char); +} + break; + + case 264: #line 1930 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_wchar_t); -; - break;} -case 264: + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_wchar_t); +} + break; + + case 265: #line 1934 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_int, + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short); -; - break;} -case 265: +} + break; + + case 266: #line 1939 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_int, + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long); -; - break;} -case 266: +} + break; + + case 267: #line 1944 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_int, + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_longlong); -; - break;} -case 267: +} + break; + + case 268: #line 1949 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_int, + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned); -; - break;} -case 268: +} + break; + + case 269: #line 1954 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_int, + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed); -; - break;} -case 269: +} + break; + + case 270: #line 1959 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_int); -; - break;} -case 270: + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_int); +} + break; + + case 271: #line 1963 "cppBison.yxx" -{ - yyval.u.simple_type = yyvsp[0].u.simple_type; - yyval.u.simple_type->_flags |= CPPSimpleType::F_short; -; - break;} -case 271: + { + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); + (yyval.u.simple_type)->_flags |= CPPSimpleType::F_short; +} + break; + + case 272: #line 1968 "cppBison.yxx" -{ - yyval.u.simple_type = yyvsp[0].u.simple_type; - if (yyval.u.simple_type->_flags & CPPSimpleType::F_long) { - yyval.u.simple_type->_flags |= CPPSimpleType::F_longlong; + { + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); + if ((yyval.u.simple_type)->_flags & CPPSimpleType::F_long) { + (yyval.u.simple_type)->_flags |= CPPSimpleType::F_longlong; } else { - yyval.u.simple_type->_flags |= CPPSimpleType::F_long; + (yyval.u.simple_type)->_flags |= CPPSimpleType::F_long; } -; - break;} -case 272: +} + break; + + case 273: #line 1977 "cppBison.yxx" -{ - yyval.u.simple_type = yyvsp[0].u.simple_type; - yyval.u.simple_type->_flags |= CPPSimpleType::F_unsigned; -; - break;} -case 273: + { + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); + (yyval.u.simple_type)->_flags |= CPPSimpleType::F_unsigned; +} + break; + + case 274: #line 1982 "cppBison.yxx" -{ - yyval.u.simple_type = yyvsp[0].u.simple_type; - yyval.u.simple_type->_flags |= CPPSimpleType::F_signed; -; - break;} -case 274: + { + (yyval.u.simple_type) = (yyvsp[0].u.simple_type); + (yyval.u.simple_type)->_flags |= CPPSimpleType::F_signed; +} + break; + + case 275: #line 1990 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_float); -; - break;} -case 275: + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float); +} + break; + + case 276: #line 1994 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_float, + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float, CPPSimpleType::F_long); -; - break;} -case 276: +} + break; + + case 277: #line 1999 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_double); -; - break;} -case 277: + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double); +} + break; + + case 278: #line 2003 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_float, + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_float, CPPSimpleType::F_longlong); -; - break;} -case 278: +} + break; + + case 279: #line 2008 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_double, + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_double, CPPSimpleType::F_long); -; - break;} -case 279: +} + break; + + case 280: #line 2016 "cppBison.yxx" -{ - yyval.u.simple_type = new CPPSimpleType(CPPSimpleType::T_void); -; - break;} -case 280: + { + (yyval.u.simple_type) = new CPPSimpleType(CPPSimpleType::T_void); +} + break; + + case 281: #line 2025 "cppBison.yxx" -{ + { current_lexer->_resolve_identifiers = false; -; - break;} -case 281: +} + break; + + case 282: #line 2029 "cppBison.yxx" -{ + { current_lexer->_resolve_identifiers = true; -; - break;} -case 284: +} + break; + + case 285: #line 2041 "cppBison.yxx" -{ -; - break;} -case 285: + { +} + break; + + case 286: #line 2044 "cppBison.yxx" -{ -; - break;} -case 286: + { +} + break; + + case 287: #line 2047 "cppBison.yxx" -{ -; - break;} -case 287: + { +} + break; + + case 288: #line 2050 "cppBison.yxx" -{ -; - break;} -case 288: + { +} + break; + + case 289: #line 2053 "cppBison.yxx" -{ -; - break;} -case 289: + { +} + break; + + case 290: #line 2056 "cppBison.yxx" -{ -; - break;} -case 290: + { +} + break; + + case 291: #line 2059 "cppBison.yxx" -{ -; - break;} -case 291: + { +} + break; + + case 292: #line 2062 "cppBison.yxx" -{ -; - break;} -case 365: + { +} + break; + + case 366: #line 2082 "cppBison.yxx" -{ -; - break;} -case 389: + { +} + break; + + case 390: #line 2091 "cppBison.yxx" -{ - yyval.u.expr = (CPPExpression *)NULL; -; - break;} -case 390: + { + (yyval.u.expr) = (CPPExpression *)NULL; +} + break; + + case 391: #line 2095 "cppBison.yxx" -{ - yyval.u.expr = yyvsp[0].u.expr; -; - break;} -case 391: + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} + break; + + case 392: #line 2102 "cppBison.yxx" -{ - yyval.u.expr = (CPPExpression *)NULL; -; - break;} -case 392: + { + (yyval.u.expr) = (CPPExpression *)NULL; +} + break; + + case 393: #line 2106 "cppBison.yxx" -{ - yyval.u.expr = yyvsp[0].u.expr; -; - break;} -case 393: + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} + break; + + case 394: #line 2113 "cppBison.yxx" -{ - yyval.u.expr = yyvsp[0].u.expr; -; - break;} -case 394: + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} + break; + + case 395: #line 2117 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(',', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 395: + { + (yyval.u.expr) = new CPPExpression(',', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 396: #line 2124 "cppBison.yxx" -{ - yyval.u.expr = yyvsp[0].u.expr; -; - break;} -case 396: + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} + break; + + case 397: #line 2128 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::typecast_op(yyvsp[-2].u.type, yyvsp[0].u.expr)); -; - break;} -case 397: + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); +} + break; + + case 398: #line 2132 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::typecast_op(yyvsp[-4].u.type, yyvsp[-1].u.expr)); -; - break;} -case 398: + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr))); +} + break; + + case 399: #line 2136 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::typecast_op(yyvsp[-4].u.type, yyvsp[-1].u.expr)); -; - break;} -case 399: + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr))); +} + break; + + case 400: #line 2140 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::sizeof_func(yyvsp[-1].u.type)); -; - break;} -case 400: + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); +} + break; + + case 401: #line 2144 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(UNARY_NOT, yyvsp[0].u.expr); -; - break;} -case 401: + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); +} + break; + + case 402: #line 2148 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(UNARY_NEGATE, yyvsp[0].u.expr); -; - break;} -case 402: + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); +} + break; + + case 403: #line 2152 "cppBison.yxx" -{ - if (yyvsp[0].u.expr->_type == CPPExpression::T_integer) { - yyval.u.expr = yyvsp[0].u.expr; - yyval.u.expr->_u._integer = -yyval.u.expr->_u._integer; - } else if (yyvsp[0].u.expr->_type == CPPExpression::T_real) { - yyval.u.expr = yyvsp[0].u.expr; - yyval.u.expr->_u._real = -yyval.u.expr->_u._real; + { + if ((yyvsp[0].u.expr)->_type == CPPExpression::T_integer) { + (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer; + } else if ((yyvsp[0].u.expr)->_type == CPPExpression::T_real) { + (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real; } else { - yyval.u.expr = new CPPExpression(UNARY_MINUS, yyvsp[0].u.expr); + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); } -; - break;} -case 403: +} + break; + + case 404: #line 2164 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(UNARY_STAR, yyvsp[0].u.expr); -; - break;} -case 404: + { + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); +} + break; + + case 405: #line 2168 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(UNARY_REF, yyvsp[0].u.expr); -; - break;} -case 405: + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); +} + break; + + case 406: #line 2172 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('*', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 406: + { + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 407: #line 2176 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('/', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 407: + { + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 408: #line 2180 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('%', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 408: + { + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 409: #line 2184 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('+', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 409: + { + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 410: #line 2188 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('-', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 410: + { + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 411: #line 2192 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('|', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 411: + { + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 412: #line 2196 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('&', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 412: + { + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 413: #line 2200 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(OROR, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 413: + { + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 414: #line 2204 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(ANDAND, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 414: + { + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 415: #line 2208 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(EQCOMPARE, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 415: + { + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 416: #line 2212 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(NECOMPARE, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 416: + { + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 417: #line 2216 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(LECOMPARE, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 417: + { + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 418: #line 2220 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(GECOMPARE, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 418: + { + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 419: #line 2224 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(LSHIFT, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 419: + { + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 420: #line 2228 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(RSHIFT, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 420: + { + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 421: #line 2232 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('?', yyvsp[-4].u.expr, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 421: + { + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 422: #line 2236 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('[', yyvsp[-3].u.expr, yyvsp[-1].u.expr); -; - break;} -case 422: + { + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} + break; + + case 423: #line 2240 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('f', yyvsp[-3].u.expr, yyvsp[-1].u.expr); -; - break;} -case 423: + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} + break; + + case 424: #line 2244 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('f', yyvsp[-2].u.expr); -; - break;} -case 424: + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); +} + break; + + case 425: #line 2248 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('.', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 425: + { + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 426: #line 2252 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(POINTSAT, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 426: + { + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 427: #line 2256 "cppBison.yxx" -{ - yyval.u.expr = yyvsp[-1].u.expr; -; - break;} -case 427: + { + (yyval.u.expr) = (yyvsp[-1].u.expr); +} + break; + + case 428: #line 2264 "cppBison.yxx" -{ - yyval.u.expr = yyvsp[0].u.expr; -; - break;} -case 428: + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} + break; + + case 429: #line 2268 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::typecast_op(yyvsp[-2].u.type, yyvsp[0].u.expr)); -; - break;} -case 429: + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); +} + break; + + case 430: #line 2272 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::typecast_op(yyvsp[-4].u.type, yyvsp[-1].u.expr)); -; - break;} -case 430: + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr))); +} + break; + + case 431: #line 2276 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::typecast_op(yyvsp[-4].u.type, yyvsp[-1].u.expr)); -; - break;} -case 431: + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr))); +} + break; + + case 432: #line 2280 "cppBison.yxx" -{ + { // A constructor call. - CPPType *type = yyvsp[-3].u.identifier->find_type(current_scope, global_scope, false, current_lexer); + CPPType *type = (yyvsp[-3].u.identifier)->find_type(current_scope, global_scope, false, current_lexer); assert(type != NULL); - yyval.u.expr = new CPPExpression(CPPExpression::construct_op(type, yyvsp[-1].u.expr)); -; - break;} -case 432: + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); +} + break; + + case 433: #line 2287 "cppBison.yxx" -{ + { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int)); - yyval.u.expr = new CPPExpression(CPPExpression::construct_op(type, yyvsp[-1].u.expr)); -; - break;} -case 433: + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); +} + break; + + case 434: #line 2293 "cppBison.yxx" -{ + { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_char)); - yyval.u.expr = new CPPExpression(CPPExpression::construct_op(type, yyvsp[-1].u.expr)); -; - break;} -case 434: + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); +} + break; + + case 435: #line 2299 "cppBison.yxx" -{ + { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_wchar_t)); - yyval.u.expr = new CPPExpression(CPPExpression::construct_op(type, yyvsp[-1].u.expr)); -; - break;} -case 435: + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); +} + break; + + case 436: #line 2305 "cppBison.yxx" -{ + { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_bool)); - yyval.u.expr = new CPPExpression(CPPExpression::construct_op(type, yyvsp[-1].u.expr)); -; - break;} -case 436: + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); +} + break; + + case 437: #line 2311 "cppBison.yxx" -{ + { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_short)); - yyval.u.expr = new CPPExpression(CPPExpression::construct_op(type, yyvsp[-1].u.expr)); -; - break;} -case 437: + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); +} + break; + + case 438: #line 2318 "cppBison.yxx" -{ + { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_long)); - yyval.u.expr = new CPPExpression(CPPExpression::construct_op(type, yyvsp[-1].u.expr)); -; - break;} -case 438: + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); +} + break; + + case 439: #line 2325 "cppBison.yxx" -{ + { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_unsigned)); - yyval.u.expr = new CPPExpression(CPPExpression::construct_op(type, yyvsp[-1].u.expr)); -; - break;} -case 439: + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); +} + break; + + case 440: #line 2332 "cppBison.yxx" -{ + { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_int, CPPSimpleType::F_signed)); - yyval.u.expr = new CPPExpression(CPPExpression::construct_op(type, yyvsp[-1].u.expr)); -; - break;} -case 440: + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); +} + break; + + case 441: #line 2339 "cppBison.yxx" -{ + { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_float)); - yyval.u.expr = new CPPExpression(CPPExpression::construct_op(type, yyvsp[-1].u.expr)); -; - break;} -case 441: + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); +} + break; + + case 442: #line 2345 "cppBison.yxx" -{ + { CPPType *type = CPPType::new_type(new CPPSimpleType(CPPSimpleType::T_double)); - yyval.u.expr = new CPPExpression(CPPExpression::construct_op(type, yyvsp[-1].u.expr)); -; - break;} -case 442: -#line 2351 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::sizeof_func(yyvsp[-1].u.type)); -; - break;} -case 443: -#line 2355 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::new_op(yyvsp[0].u.type)); -; - break;} -case 444: -#line 2359 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::new_op(yyvsp[-3].u.type, yyvsp[-1].u.expr)); -; - break;} -case 445: -#line 2363 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(UNARY_NOT, yyvsp[0].u.expr); -; - break;} -case 446: -#line 2367 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(UNARY_NEGATE, yyvsp[0].u.expr); -; - break;} -case 447: -#line 2371 "cppBison.yxx" -{ - if (yyvsp[0].u.expr->_type == CPPExpression::T_integer) { - yyval.u.expr = yyvsp[0].u.expr; - yyval.u.expr->_u._integer = -yyval.u.expr->_u._integer; - } else if (yyvsp[0].u.expr->_type == CPPExpression::T_real) { - yyval.u.expr = yyvsp[0].u.expr; - yyval.u.expr->_u._real = -yyval.u.expr->_u._real; - } else { - yyval.u.expr = new CPPExpression(UNARY_MINUS, yyvsp[0].u.expr); - } -; - break;} -case 448: -#line 2383 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(UNARY_STAR, yyvsp[0].u.expr); -; - break;} -case 449: -#line 2387 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(UNARY_REF, yyvsp[0].u.expr); -; - break;} -case 450: -#line 2391 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('*', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 451: -#line 2395 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('/', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 452: -#line 2399 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('%', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 453: -#line 2403 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('+', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 454: -#line 2407 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('-', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 455: -#line 2411 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('|', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 456: -#line 2415 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('&', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 457: -#line 2419 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(OROR, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 458: -#line 2423 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(ANDAND, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 459: -#line 2427 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(EQCOMPARE, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 460: -#line 2431 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(NECOMPARE, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 461: -#line 2435 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(LECOMPARE, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 462: -#line 2439 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(GECOMPARE, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 463: -#line 2443 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('<', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 464: -#line 2447 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('>', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 465: -#line 2451 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(LSHIFT, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 466: -#line 2455 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(RSHIFT, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 467: -#line 2459 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('?', yyvsp[-4].u.expr, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 468: -#line 2463 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('[', yyvsp[-3].u.expr, yyvsp[-1].u.expr); -; - break;} -case 469: -#line 2467 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('f', yyvsp[-3].u.expr, yyvsp[-1].u.expr); -; - break;} -case 470: -#line 2471 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('f', yyvsp[-2].u.expr); -; - break;} -case 471: -#line 2475 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('.', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 472: -#line 2479 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(POINTSAT, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 473: -#line 2483 "cppBison.yxx" -{ - yyval.u.expr = yyvsp[-1].u.expr; -; - break;} -case 474: -#line 2490 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(yyvsp[0].u.integer); -; - break;} -case 475: -#line 2494 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(true); -; - break;} -case 476: -#line 2498 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(false); -; - break;} -case 477: -#line 2502 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(yyvsp[0].u.integer); -; - break;} -case 478: -#line 2506 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(yyvsp[0].u.real); -; - break;} -case 479: -#line 2510 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(yyvsp[0].str); -; - break;} -case 480: -#line 2514 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(yyvsp[0].u.identifier, current_scope, global_scope, current_lexer); -; - break;} -case 481: -#line 2528 "cppBison.yxx" -{ - yyval.u.expr = yyvsp[0].u.expr; -; - break;} -case 482: -#line 2532 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::typecast_op(yyvsp[-2].u.type, yyvsp[0].u.expr)); -; - break;} -case 483: -#line 2536 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::typecast_op(yyvsp[-4].u.type, yyvsp[-1].u.expr)); -; - break;} -case 484: -#line 2540 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::typecast_op(yyvsp[-4].u.type, yyvsp[-1].u.expr)); -; - break;} -case 485: -#line 2544 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::sizeof_func(yyvsp[-1].u.type)); -; - break;} -case 486: -#line 2548 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::new_op(yyvsp[0].u.type)); -; - break;} -case 487: -#line 2552 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(CPPExpression::new_op(yyvsp[-3].u.type, yyvsp[-1].u.expr)); -; - break;} -case 488: -#line 2556 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(UNARY_NOT, yyvsp[0].u.expr); -; - break;} -case 489: -#line 2560 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(UNARY_NEGATE, yyvsp[0].u.expr); -; - break;} -case 490: -#line 2564 "cppBison.yxx" -{ - if (yyvsp[0].u.expr->_type == CPPExpression::T_integer) { - yyval.u.expr = yyvsp[0].u.expr; - yyval.u.expr->_u._integer = -yyval.u.expr->_u._integer; - } else if (yyvsp[0].u.expr->_type == CPPExpression::T_real) { - yyval.u.expr = yyvsp[0].u.expr; - yyval.u.expr->_u._real = -yyval.u.expr->_u._real; - } else { - yyval.u.expr = new CPPExpression(UNARY_MINUS, yyvsp[0].u.expr); - } -; - break;} -case 491: -#line 2576 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(UNARY_REF, yyvsp[0].u.expr); -; - break;} -case 492: -#line 2580 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('*', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 493: -#line 2584 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('/', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 494: -#line 2588 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('%', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 495: -#line 2592 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('+', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 496: -#line 2596 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('-', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 497: -#line 2600 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('|', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 498: -#line 2604 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('&', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 499: -#line 2608 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(OROR, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 500: -#line 2612 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(ANDAND, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 501: -#line 2616 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(EQCOMPARE, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 502: -#line 2620 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(NECOMPARE, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 503: -#line 2624 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(LECOMPARE, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 504: -#line 2628 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(GECOMPARE, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 505: -#line 2632 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('<', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 506: -#line 2636 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('>', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 507: -#line 2640 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(LSHIFT, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 508: -#line 2644 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(RSHIFT, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 509: -#line 2648 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('?', yyvsp[-4].u.expr, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 510: -#line 2652 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('[', yyvsp[-3].u.expr, yyvsp[-1].u.expr); -; - break;} -case 511: -#line 2656 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('f', yyvsp[-3].u.expr, yyvsp[-1].u.expr); -; - break;} -case 512: -#line 2660 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('f', yyvsp[-2].u.expr); -; - break;} -case 513: -#line 2664 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression('.', yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 514: -#line 2668 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(POINTSAT, yyvsp[-2].u.expr, yyvsp[0].u.expr); -; - break;} -case 515: -#line 2672 "cppBison.yxx" -{ - yyval.u.expr = yyvsp[-1].u.expr; -; - break;} -case 516: -#line 2679 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(yyvsp[0].u.integer); -; - break;} -case 517: -#line 2683 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(true); -; - break;} -case 518: -#line 2687 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(false); -; - break;} -case 519: -#line 2691 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(yyvsp[0].u.integer); -; - break;} -case 520: -#line 2695 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(yyvsp[0].u.real); -; - break;} -case 521: -#line 2699 "cppBison.yxx" -{ - yyval.u.expr = new CPPExpression(yyvsp[0].str); -; - break;} -case 522: -#line 2706 "cppBison.yxx" -{ - CPPType *type = yyvsp[0].u.identifier->find_type(current_scope, global_scope, true); - if (type == NULL) { - type = CPPType::new_type(new CPPTBDType(yyvsp[0].u.identifier)); - } - yyval.u.type = type; -; - break;} -case 523: -#line 2714 "cppBison.yxx" -{ - CPPType *type = yyvsp[0].u.identifier->find_type(current_scope, global_scope, true, current_lexer); - if (type == NULL) { - type = CPPType::new_type(new CPPTBDType(yyvsp[0].u.identifier)); - } - yyval.u.type = type; -; - break;} -case 524: -#line 2722 "cppBison.yxx" -{ - yyval.u.type = CPPType::new_type(new CPPTBDType(yyvsp[0].u.identifier)); -; - break;} -case 525: -#line 2745 "cppBison.yxx" -{ - yyval.u.identifier = yyvsp[0].u.identifier; -; - break;} -case 526: -#line 2749 "cppBison.yxx" -{ - yyval.u.identifier = yyvsp[0].u.identifier; -; - break;} -case 527: -#line 2756 "cppBison.yxx" -{ - yyval.str = yyvsp[0].str; -; - break;} -case 528: -#line 2760 "cppBison.yxx" -{ - yyval.str = yyvsp[-1].str + yyvsp[0].str; -; - break;} + (yyval.u.expr) = new CPPExpression(CPPExpression::construct_op(type, (yyvsp[-1].u.expr))); } - /* the action file gets copied in in place of this dollarsign */ -#line 543 "/usr/share/bison.simple" + break; + + case 443: +#line 2351 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); +} + break; + + case 444: +#line 2355 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); +} + break; + + case 445: +#line 2359 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); +} + break; + + case 446: +#line 2363 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); +} + break; + + case 447: +#line 2367 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); +} + break; + + case 448: +#line 2371 "cppBison.yxx" + { + if ((yyvsp[0].u.expr)->_type == CPPExpression::T_integer) { + (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer; + } else if ((yyvsp[0].u.expr)->_type == CPPExpression::T_real) { + (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real; + } else { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); + } +} + break; + + case 449: +#line 2383 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_STAR, (yyvsp[0].u.expr)); +} + break; + + case 450: +#line 2387 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); +} + break; + + case 451: +#line 2391 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 452: +#line 2395 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 453: +#line 2399 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 454: +#line 2403 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 455: +#line 2407 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 456: +#line 2411 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 457: +#line 2415 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 458: +#line 2419 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 459: +#line 2423 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 460: +#line 2427 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 461: +#line 2431 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 462: +#line 2435 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 463: +#line 2439 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 464: +#line 2443 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 465: +#line 2447 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 466: +#line 2451 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 467: +#line 2455 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 468: +#line 2459 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 469: +#line 2463 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} + break; + + case 470: +#line 2467 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} + break; + + case 471: +#line 2471 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); +} + break; + + case 472: +#line 2475 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 473: +#line 2479 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 474: +#line 2483 "cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[-1].u.expr); +} + break; + + case 475: +#line 2490 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} + break; + + case 476: +#line 2494 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(true); +} + break; + + case 477: +#line 2498 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(false); +} + break; + + case 478: +#line 2502 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} + break; + + case 479: +#line 2506 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); +} + break; + + case 480: +#line 2510 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); +} + break; + + case 481: +#line 2514 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.identifier), current_scope, global_scope, current_lexer); +} + break; + + case 482: +#line 2528 "cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[0].u.expr); +} + break; + + case 483: +#line 2532 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-2].u.type), (yyvsp[0].u.expr))); +} + break; + + case 484: +#line 2536 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr))); +} + break; + + case 485: +#line 2540 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::typecast_op((yyvsp[-4].u.type), (yyvsp[-1].u.expr))); +} + break; + + case 486: +#line 2544 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::sizeof_func((yyvsp[-1].u.type))); +} + break; + + case 487: +#line 2548 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[0].u.type))); +} + break; + + case 488: +#line 2552 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(CPPExpression::new_op((yyvsp[-3].u.type), (yyvsp[-1].u.expr))); +} + break; + + case 489: +#line 2556 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NOT, (yyvsp[0].u.expr)); +} + break; + + case 490: +#line 2560 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_NEGATE, (yyvsp[0].u.expr)); +} + break; + + case 491: +#line 2564 "cppBison.yxx" + { + if ((yyvsp[0].u.expr)->_type == CPPExpression::T_integer) { + (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr)->_u._integer = -(yyval.u.expr)->_u._integer; + } else if ((yyvsp[0].u.expr)->_type == CPPExpression::T_real) { + (yyval.u.expr) = (yyvsp[0].u.expr); + (yyval.u.expr)->_u._real = -(yyval.u.expr)->_u._real; + } else { + (yyval.u.expr) = new CPPExpression(UNARY_MINUS, (yyvsp[0].u.expr)); + } +} + break; + + case 492: +#line 2576 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(UNARY_REF, (yyvsp[0].u.expr)); +} + break; + + case 493: +#line 2580 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('*', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 494: +#line 2584 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('/', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 495: +#line 2588 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('%', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 496: +#line 2592 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('+', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 497: +#line 2596 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('-', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 498: +#line 2600 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('|', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 499: +#line 2604 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('&', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 500: +#line 2608 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(OROR, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 501: +#line 2612 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(ANDAND, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 502: +#line 2616 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(EQCOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 503: +#line 2620 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(NECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 504: +#line 2624 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(LECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 505: +#line 2628 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(GECOMPARE, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 506: +#line 2632 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('<', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 507: +#line 2636 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('>', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 508: +#line 2640 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(LSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 509: +#line 2644 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(RSHIFT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 510: +#line 2648 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('?', (yyvsp[-4].u.expr), (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 511: +#line 2652 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('[', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} + break; + + case 512: +#line 2656 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-3].u.expr), (yyvsp[-1].u.expr)); +} + break; + + case 513: +#line 2660 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('f', (yyvsp[-2].u.expr)); +} + break; + + case 514: +#line 2664 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression('.', (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 515: +#line 2668 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(POINTSAT, (yyvsp[-2].u.expr), (yyvsp[0].u.expr)); +} + break; + + case 516: +#line 2672 "cppBison.yxx" + { + (yyval.u.expr) = (yyvsp[-1].u.expr); +} + break; + + case 517: +#line 2679 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} + break; + + case 518: +#line 2683 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(true); +} + break; + + case 519: +#line 2687 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression(false); +} + break; + + case 520: +#line 2691 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.integer)); +} + break; + + case 521: +#line 2695 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].u.real)); +} + break; + + case 522: +#line 2699 "cppBison.yxx" + { + (yyval.u.expr) = new CPPExpression((yyvsp[0].str)); +} + break; + + case 523: +#line 2706 "cppBison.yxx" + { + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true); + if (type == NULL) { + type = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); + } + (yyval.u.type) = type; +} + break; + + case 524: +#line 2714 "cppBison.yxx" + { + CPPType *type = (yyvsp[0].u.identifier)->find_type(current_scope, global_scope, true, current_lexer); + if (type == NULL) { + type = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); + } + (yyval.u.type) = type; +} + break; + + case 525: +#line 2722 "cppBison.yxx" + { + (yyval.u.type) = CPPType::new_type(new CPPTBDType((yyvsp[0].u.identifier))); +} + break; + + case 526: +#line 2745 "cppBison.yxx" + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} + break; + + case 527: +#line 2749 "cppBison.yxx" + { + (yyval.u.identifier) = (yyvsp[0].u.identifier); +} + break; + + case 528: +#line 2756 "cppBison.yxx" + { + (yyval.str) = (yyvsp[0].str); +} + break; + + case 529: +#line 2760 "cppBison.yxx" + { + (yyval.str) = (yyvsp[-1].str) + (yyvsp[0].str); +} + break; + + + } + +/* Line 1037 of yacc.c. */ +#line 6091 "y.tab.c" yyvsp -= yylen; yyssp -= yylen; -#ifdef YYLSP_NEEDED yylsp -= yylen; -#endif -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif + YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; + *++yylsp = yyloc; -#ifdef YYLSP_NEEDED - yylsp++; - if (yylen == 0) - { - yylsp->first_line = yylloc.first_line; - yylsp->first_column = yylloc.first_column; - yylsp->last_line = (yylsp-1)->last_line; - yylsp->last_column = (yylsp-1)->last_column; - yylsp->text = 0; - } - else - { - yylsp->last_line = (yylsp+yylen-1)->last_line; - yylsp->last_column = (yylsp+yylen-1)->last_column; - } -#endif - - /* Now "shift" the result of the reduction. - Determine what state that goes to, - based on the state we popped back to - and the rule number reduced by. */ + /* Now `shift' the result of the reduction. Determine what state + that goes to, based on the state we popped back to and the rule + number reduced by. */ yyn = yyr1[yyn]; - yystate = yypgoto[yyn - YYNTBASE] + *yyssp; - if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp) + yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; + if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else - yystate = yydefgoto[yyn - YYNTBASE]; + yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; -yyerrlab: /* here on detecting error */ - if (! yyerrstatus) - /* If not already recovering from an error, report this error. */ +/*------------------------------------. +| yyerrlab -- here on detecting error | +`------------------------------------*/ +yyerrlab: + /* If not already recovering from an error, report this error. */ + if (!yyerrstatus) { ++yynerrs; - -#ifdef YYERROR_VERBOSE +#if YYERROR_VERBOSE yyn = yypact[yystate]; - if (yyn > YYFLAG && yyn < YYLAST) + if (YYPACT_NINF < yyn && yyn < YYLAST) { - int size = 0; - char *msg; - int x, count; + YYSIZE_T yysize = 0; + int yytype = YYTRANSLATE (yychar); + const char* yyprefix; + char *yymsg; + int yyx; - count = 0; - /* Start X at -yyn if nec to avoid negative indexes in yycheck. */ - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) - size += strlen(yytname[x]) + 15, count++; - msg = (char *) malloc(size + 15); - if (msg != 0) + /* Start YYX at -YYN if negative to avoid negative indexes in + YYCHECK. */ + int yyxbegin = yyn < 0 ? -yyn : 0; + + /* Stay within bounds of both yycheck and yytname. */ + int yychecklim = YYLAST - yyn; + int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; + int yycount = 0; + + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) + { + yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); + yycount += 1; + if (yycount == 5) + { + yysize = 0; + break; + } + } + yysize += (sizeof ("syntax error, unexpected ") + + yystrlen (yytname[yytype])); + yymsg = (char *) YYSTACK_ALLOC (yysize); + if (yymsg != 0) { - strcpy(msg, "parse error"); + char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); + yyp = yystpcpy (yyp, yytname[yytype]); - if (count < 5) + if (yycount < 5) { - count = 0; - for (x = (yyn < 0 ? -yyn : 0); - x < (sizeof(yytname) / sizeof(char *)); x++) - if (yycheck[x + yyn] == x) + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) + if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { - strcat(msg, count == 0 ? ", expecting `" : " or `"); - strcat(msg, yytname[x]); - strcat(msg, "'"); - count++; + yyp = yystpcpy (yyp, yyprefix); + yyp = yystpcpy (yyp, yytname[yyx]); + yyprefix = " or "; } } - yyerror(msg); - free(msg); + yyerror (yymsg); + YYSTACK_FREE (yymsg); } else - yyerror ("parse error; also virtual memory exceeded"); + yyerror ("syntax error; also virtual memory exhausted"); } else #endif /* YYERROR_VERBOSE */ - yyerror("parse error"); + yyerror ("syntax error"); } - goto yyerrlab1; -yyerrlab1: /* here on error raised explicitly by an action */ + yyerror_range[0] = yylloc; if (yyerrstatus == 3) { - /* if just tried and failed to reuse lookahead token after an error, discard it. */ + /* If just tried and failed to reuse look-ahead token after an + error, discard it. */ - /* return failure if at end of input */ - if (yychar == YYEOF) + if (yychar <= YYEOF) + { + /* If at end of input, pop the error token, + then the rest of the stack, then return failure. */ + if (yychar == YYEOF) + for (;;) + { + yyerror_range[0] = *yylsp; + YYPOPSTACK; + if (yyssp == yyss) + YYABORT; + yydestruct ("Error: popping", + yystos[*yyssp], yyvsp, yylsp); + } + } + else + { + yydestruct ("Error: discarding", yytoken, &yylval, &yylloc); + yychar = YYEMPTY; + } + } + + /* Else will try to reuse look-ahead token after shifting the error + token. */ + goto yyerrlab1; + + +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + +#ifdef __GNUC__ + /* Pacify GCC when the user code never invokes YYERROR and the label + yyerrorlab therefore never appears in user code. */ + if (0) + goto yyerrorlab; +#endif + + yyerror_range[0] = yylsp[1-yylen]; + yylsp -= yylen; + yyvsp -= yylen; + yyssp -= yylen; + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +yyerrlab1: + yyerrstatus = 3; /* Each real token shifted decrements this. */ + + for (;;) + { + yyn = yypact[yystate]; + if (yyn != YYPACT_NINF) + { + yyn += YYTERROR; + if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) + { + yyn = yytable[yyn]; + if (0 < yyn) + break; + } + } + + /* Pop the current state because it cannot handle the error token. */ + if (yyssp == yyss) YYABORT; -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]); -#endif - - yychar = YYEMPTY; + yyerror_range[0] = *yylsp; + yydestruct ("Error: popping", yystos[yystate], yyvsp, yylsp); + YYPOPSTACK; + yystate = *yyssp; + YY_STACK_PRINT (yyss, yyssp); } - /* Else will try to reuse lookahead token - after shifting the error token. */ - - yyerrstatus = 3; /* Each real token shifted decrements this */ - - goto yyerrhandle; - -yyerrdefault: /* current state does not do anything special for the error token. */ - -#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ - if (yyn) goto yydefault; -#endif - -yyerrpop: /* pop the current state because it cannot handle the error token */ - - if (yyssp == yyss) YYABORT; - yyvsp--; - yystate = *--yyssp; -#ifdef YYLSP_NEEDED - yylsp--; -#endif - -#if YYDEBUG != 0 - if (yydebug) - { - short *ssp1 = yyss - 1; - fprintf (stderr, "Error: state stack now"); - while (ssp1 != yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif - -yyerrhandle: - - yyn = yypact[yystate]; - if (yyn == YYFLAG) - goto yyerrdefault; - - yyn += YYTERROR; - if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR) - goto yyerrdefault; - - yyn = yytable[yyn]; - if (yyn < 0) - { - if (yyn == YYFLAG) - goto yyerrpop; - yyn = -yyn; - goto yyreduce; - } - else if (yyn == 0) - goto yyerrpop; - if (yyn == YYFINAL) YYACCEPT; -#if YYDEBUG != 0 - if (yydebug) - fprintf(stderr, "Shifting error token, "); -#endif - *++yyvsp = yylval; -#ifdef YYLSP_NEEDED - *++yylsp = yylloc; -#endif + + yyerror_range[1] = yylloc; + /* Using YYLLOC is tempting, but would change the location of + the look-ahead. YYLOC is available though. */ + YYLLOC_DEFAULT (yyloc, yyerror_range - 1, 2); + *++yylsp = yyloc; + + /* Shift the error token. */ + YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; - yyacceptlab: - /* YYACCEPT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); -#endif - } - return 0; - yyabortlab: - /* YYABORT comes here. */ - if (yyfree_stacks) - { - free (yyss); - free (yyvs); -#ifdef YYLSP_NEEDED - free (yyls); +/*-------------------------------------. +| yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +yyacceptlab: + yyresult = 0; + goto yyreturn; + +/*-----------------------------------. +| yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +yyabortlab: + yydestruct ("Error: discarding lookahead", + yytoken, &yylval, &yylloc); + yychar = YYEMPTY; + yyresult = 1; + goto yyreturn; + +#ifndef yyoverflow +/*----------------------------------------------. +| yyoverflowlab -- parser overflow comes here. | +`----------------------------------------------*/ +yyoverflowlab: + yyerror ("parser stack overflow"); + yyresult = 2; + /* Fall through. */ #endif - } - return 1; + +yyreturn: +#ifndef yyoverflow + if (yyss != yyssa) + YYSTACK_FREE (yyss); +#endif + return yyresult; } -#line 2767 "cppBison.yxx" + + + diff --git a/dtool/src/cppparser/cppBison.h.prebuilt b/dtool/src/cppparser/cppBison.h.prebuilt index b14d651819..5d09e7a736 100644 --- a/dtool/src/cppparser/cppBison.h.prebuilt +++ b/dtool/src/cppparser/cppBison.h.prebuilt @@ -1,118 +1,262 @@ +/* A Bison parser, made by GNU Bison 2.0. */ -#ifndef YYLTYPE -typedef - struct yyltype - { - int timestamp; - int first_line; - int first_column; - int last_line; - int last_column; - char *text; - } - yyltype; +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. -#define YYLTYPE yyltype + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum yytokentype { + REAL = 258, + INTEGER = 259, + CHAR_TOK = 260, + STRING = 261, + SIMPLE_IDENTIFIER = 262, + IDENTIFIER = 263, + TYPENAME_IDENTIFIER = 264, + SCOPING = 265, + TYPEDEFNAME = 266, + ELLIPSIS = 267, + OROR = 268, + ANDAND = 269, + EQCOMPARE = 270, + NECOMPARE = 271, + LECOMPARE = 272, + GECOMPARE = 273, + LSHIFT = 274, + RSHIFT = 275, + POINTSAT_STAR = 276, + DOT_STAR = 277, + UNARY = 278, + UNARY_NOT = 279, + UNARY_NEGATE = 280, + UNARY_MINUS = 281, + UNARY_STAR = 282, + UNARY_REF = 283, + POINTSAT = 284, + SCOPE = 285, + PLUSPLUS = 286, + MINUSMINUS = 287, + TIMESEQUAL = 288, + DIVIDEEQUAL = 289, + MODEQUAL = 290, + PLUSEQUAL = 291, + MINUSEQUAL = 292, + OREQUAL = 293, + ANDEQUAL = 294, + XOREQUAL = 295, + LSHIFTEQUAL = 296, + RSHIFTEQUAL = 297, + TOKENPASTE = 298, + KW_BEGIN_PUBLISH = 299, + KW_BLOCKING = 300, + KW_BOOL = 301, + KW_CATCH = 302, + KW_CHAR = 303, + KW_WCHAR_T = 304, + KW_CLASS = 305, + KW_CONST = 306, + KW_DELETE = 307, + KW_DOUBLE = 308, + KW_DYNAMIC_CAST = 309, + KW_ELSE = 310, + KW_END_PUBLISH = 311, + KW_ENUM = 312, + KW_EXTERN = 313, + KW_EXPLICIT = 314, + KW_PUBLISHED = 315, + KW_FALSE = 316, + KW_FLOAT = 317, + KW_FRIEND = 318, + KW_FOR = 319, + KW_GOTO = 320, + KW_IF = 321, + KW_INLINE = 322, + KW_INT = 323, + KW_LONG = 324, + KW_LONGLONG = 325, + KW_MAKE_SEQ = 326, + KW_MUTABLE = 327, + KW_NAMESPACE = 328, + KW_NEW = 329, + KW_OPERATOR = 330, + KW_PRIVATE = 331, + KW_PROTECTED = 332, + KW_PUBLIC = 333, + KW_REGISTER = 334, + KW_RETURN = 335, + KW_SHORT = 336, + KW_SIGNED = 337, + KW_SIZEOF = 338, + KW_STATIC = 339, + KW_STATIC_CAST = 340, + KW_STRUCT = 341, + KW_TEMPLATE = 342, + KW_THROW = 343, + KW_TRUE = 344, + KW_TRY = 345, + KW_TYPEDEF = 346, + KW_TYPENAME = 347, + KW_UNION = 348, + KW_UNSIGNED = 349, + KW_USING = 350, + KW_VIRTUAL = 351, + KW_VOID = 352, + KW_VOLATILE = 353, + KW_WHILE = 354, + START_CPP = 355, + START_CONST_EXPR = 356, + START_TYPE = 357 + }; +#endif +#define REAL 258 +#define INTEGER 259 +#define CHAR_TOK 260 +#define STRING 261 +#define SIMPLE_IDENTIFIER 262 +#define IDENTIFIER 263 +#define TYPENAME_IDENTIFIER 264 +#define SCOPING 265 +#define TYPEDEFNAME 266 +#define ELLIPSIS 267 +#define OROR 268 +#define ANDAND 269 +#define EQCOMPARE 270 +#define NECOMPARE 271 +#define LECOMPARE 272 +#define GECOMPARE 273 +#define LSHIFT 274 +#define RSHIFT 275 +#define POINTSAT_STAR 276 +#define DOT_STAR 277 +#define UNARY 278 +#define UNARY_NOT 279 +#define UNARY_NEGATE 280 +#define UNARY_MINUS 281 +#define UNARY_STAR 282 +#define UNARY_REF 283 +#define POINTSAT 284 +#define SCOPE 285 +#define PLUSPLUS 286 +#define MINUSMINUS 287 +#define TIMESEQUAL 288 +#define DIVIDEEQUAL 289 +#define MODEQUAL 290 +#define PLUSEQUAL 291 +#define MINUSEQUAL 292 +#define OREQUAL 293 +#define ANDEQUAL 294 +#define XOREQUAL 295 +#define LSHIFTEQUAL 296 +#define RSHIFTEQUAL 297 +#define TOKENPASTE 298 +#define KW_BEGIN_PUBLISH 299 +#define KW_BLOCKING 300 +#define KW_BOOL 301 +#define KW_CATCH 302 +#define KW_CHAR 303 +#define KW_WCHAR_T 304 +#define KW_CLASS 305 +#define KW_CONST 306 +#define KW_DELETE 307 +#define KW_DOUBLE 308 +#define KW_DYNAMIC_CAST 309 +#define KW_ELSE 310 +#define KW_END_PUBLISH 311 +#define KW_ENUM 312 +#define KW_EXTERN 313 +#define KW_EXPLICIT 314 +#define KW_PUBLISHED 315 +#define KW_FALSE 316 +#define KW_FLOAT 317 +#define KW_FRIEND 318 +#define KW_FOR 319 +#define KW_GOTO 320 +#define KW_IF 321 +#define KW_INLINE 322 +#define KW_INT 323 +#define KW_LONG 324 +#define KW_LONGLONG 325 +#define KW_MAKE_SEQ 326 +#define KW_MUTABLE 327 +#define KW_NAMESPACE 328 +#define KW_NEW 329 +#define KW_OPERATOR 330 +#define KW_PRIVATE 331 +#define KW_PROTECTED 332 +#define KW_PUBLIC 333 +#define KW_REGISTER 334 +#define KW_RETURN 335 +#define KW_SHORT 336 +#define KW_SIGNED 337 +#define KW_SIZEOF 338 +#define KW_STATIC 339 +#define KW_STATIC_CAST 340 +#define KW_STRUCT 341 +#define KW_TEMPLATE 342 +#define KW_THROW 343 +#define KW_TRUE 344 +#define KW_TRY 345 +#define KW_TYPEDEF 346 +#define KW_TYPENAME 347 +#define KW_UNION 348 +#define KW_UNSIGNED 349 +#define KW_USING 350 +#define KW_VIRTUAL 351 +#define KW_VOID 352 +#define KW_VOLATILE 353 +#define KW_WHILE 354 +#define START_CPP 355 +#define START_CONST_EXPR 356 +#define START_TYPE 357 + + + + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +typedef int YYSTYPE; +# define yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif -#define REAL 257 -#define INTEGER 258 -#define CHAR_TOK 259 -#define STRING 260 -#define SIMPLE_IDENTIFIER 261 -#define IDENTIFIER 262 -#define TYPENAME_IDENTIFIER 263 -#define SCOPING 264 -#define TYPEDEFNAME 265 -#define ELLIPSIS 266 -#define OROR 267 -#define ANDAND 268 -#define EQCOMPARE 269 -#define NECOMPARE 270 -#define LECOMPARE 271 -#define GECOMPARE 272 -#define LSHIFT 273 -#define RSHIFT 274 -#define POINTSAT_STAR 275 -#define DOT_STAR 276 -#define UNARY 277 -#define UNARY_NOT 278 -#define UNARY_NEGATE 279 -#define UNARY_MINUS 280 -#define UNARY_STAR 281 -#define UNARY_REF 282 -#define POINTSAT 283 -#define SCOPE 284 -#define PLUSPLUS 285 -#define MINUSMINUS 286 -#define TIMESEQUAL 287 -#define DIVIDEEQUAL 288 -#define MODEQUAL 289 -#define PLUSEQUAL 290 -#define MINUSEQUAL 291 -#define OREQUAL 292 -#define ANDEQUAL 293 -#define XOREQUAL 294 -#define LSHIFTEQUAL 295 -#define RSHIFTEQUAL 296 -#define TOKENPASTE 297 -#define KW_BEGIN_PUBLISH 298 -#define KW_BLOCKING 299 -#define KW_BOOL 300 -#define KW_CATCH 301 -#define KW_CHAR 302 -#define KW_WCHAR_T 303 -#define KW_CLASS 304 -#define KW_CONST 305 -#define KW_DELETE 306 -#define KW_DOUBLE 307 -#define KW_DYNAMIC_CAST 308 -#define KW_ELSE 309 -#define KW_END_PUBLISH 310 -#define KW_ENUM 311 -#define KW_EXTERN 312 -#define KW_EXPLICIT 313 -#define KW_PUBLISHED 314 -#define KW_FALSE 315 -#define KW_FLOAT 316 -#define KW_FRIEND 317 -#define KW_FOR 318 -#define KW_GOTO 319 -#define KW_IF 320 -#define KW_INLINE 321 -#define KW_INT 322 -#define KW_LONG 323 -#define KW_LONGLONG 324 -#define KW_MAKE_SEQ 325 -#define KW_MUTABLE 326 -#define KW_NAMESPACE 327 -#define KW_NEW 328 -#define KW_OPERATOR 329 -#define KW_PRIVATE 330 -#define KW_PROTECTED 331 -#define KW_PUBLIC 332 -#define KW_REGISTER 333 -#define KW_RETURN 334 -#define KW_SHORT 335 -#define KW_SIGNED 336 -#define KW_SIZEOF 337 -#define KW_STATIC 338 -#define KW_STATIC_CAST 339 -#define KW_STRUCT 340 -#define KW_TEMPLATE 341 -#define KW_THROW 342 -#define KW_TRUE 343 -#define KW_TRY 344 -#define KW_TYPEDEF 345 -#define KW_TYPENAME 346 -#define KW_UNION 347 -#define KW_UNSIGNED 348 -#define KW_USING 349 -#define KW_VIRTUAL 350 -#define KW_VOID 351 -#define KW_VOLATILE 352 -#define KW_WHILE 353 -#define START_CPP 354 -#define START_CONST_EXPR 355 -#define START_TYPE 356 + + +#if ! defined (YYLTYPE) && ! defined (YYLTYPE_IS_DECLARED) +typedef struct YYLTYPE +{ + int first_line; + int first_column; + int last_line; + int last_column; +} YYLTYPE; +# define yyltype YYLTYPE /* obsolescent; will be withdrawn */ +# define YYLTYPE_IS_DECLARED 1 +# define YYLTYPE_IS_TRIVIAL 1 +#endif + + +