summaryrefslogtreecommitdiff
path: root/cpp/src/Slice/Grammar.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/Slice/Grammar.cpp')
-rw-r--r--cpp/src/Slice/Grammar.cpp2182
1 files changed, 1251 insertions, 931 deletions
diff --git a/cpp/src/Slice/Grammar.cpp b/cpp/src/Slice/Grammar.cpp
index cf01a1c4b44..842a30745e7 100644
--- a/cpp/src/Slice/Grammar.cpp
+++ b/cpp/src/Slice/Grammar.cpp
@@ -1,10 +1,9 @@
-
-/* A Bison parser, made by GNU Bison 2.4.1. */
+/* A Bison parser, made by GNU Bison 2.4.3. */
/* Skeleton implementation for Bison's Yacc-like parsers in C
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
- Free Software Foundation, Inc.
+ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
+ 2009, 2010 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
@@ -46,7 +45,7 @@
#define YYBISON 1
/* Bison version. */
-#define YYBISON_VERSION "2.4.1"
+#define YYBISON_VERSION "2.4.3"
/* Skeleton name. */
#define YYSKELETON_NAME "yacc.c"
@@ -89,6 +88,7 @@
// **********************************************************************
#include <Slice/GrammarUtil.h>
+#include <IceUtil/InputUtil.h>
#include <IceUtil/UUID.h>
#include <cstring>
@@ -177,18 +177,20 @@ slice_error(const char* s)
ICE_FALSE = 283,
ICE_TRUE = 284,
ICE_IDEMPOTENT = 285,
- ICE_SCOPE_DELIMITER = 286,
- ICE_IDENTIFIER = 287,
- ICE_STRING_LITERAL = 288,
- ICE_INTEGER_LITERAL = 289,
- ICE_FLOATING_POINT_LITERAL = 290,
- ICE_IDENT_OP = 291,
- ICE_KEYWORD_OP = 292,
- ICE_METADATA_OPEN = 293,
- ICE_METADATA_CLOSE = 294,
- ICE_GLOBAL_METADATA_OPEN = 295,
- ICE_GLOBAL_METADATA_CLOSE = 296,
- BAD_CHAR = 297
+ ICE_OPTIONAL = 286,
+ ICE_SCOPE_DELIMITER = 287,
+ ICE_IDENTIFIER = 288,
+ ICE_STRING_LITERAL = 289,
+ ICE_INTEGER_LITERAL = 290,
+ ICE_FLOATING_POINT_LITERAL = 291,
+ ICE_IDENT_OP = 292,
+ ICE_KEYWORD_OP = 293,
+ ICE_OPTIONAL_OP = 294,
+ ICE_METADATA_OPEN = 295,
+ ICE_METADATA_CLOSE = 296,
+ ICE_GLOBAL_METADATA_OPEN = 297,
+ ICE_GLOBAL_METADATA_CLOSE = 298,
+ BAD_CHAR = 299
};
#endif
@@ -206,7 +208,7 @@ typedef int YYSTYPE;
/* Line 264 of yacc.c */
-#line 210 "Grammar.tab.c"
+#line 212 "Grammar.tab.c"
#ifdef short
# undef short
@@ -256,7 +258,7 @@ typedef short int yytype_int16;
#define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
#ifndef YY_
-# if YYENABLE_NLS
+# if defined YYENABLE_NLS && YYENABLE_NLS
# if ENABLE_NLS
# include <libintl.h> /* INFRINGES ON USER NAME SPACE */
# define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -421,20 +423,20 @@ union yyalloc
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 13
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 797
+#define YYLAST 878
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 52
+#define YYNTOKENS 54
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 67
+#define YYNNTS 70
/* YYNRULES -- Number of rules. */
-#define YYNRULES 182
+#define YYNRULES 196
/* YYNRULES -- Number of states. */
-#define YYNSTATES 266
+#define YYNSTATES 291
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 297
+#define YYMAXUTOK 299
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -446,15 +448,15 @@ static const yytype_uint8 yytranslate[] =
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 47, 51, 2, 48, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 43,
- 49, 46, 50, 2, 2, 2, 2, 2, 2, 2,
+ 2, 48, 53, 2, 50, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 45,
+ 51, 49, 52, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 44, 2, 45, 2, 2, 2, 2,
+ 2, 2, 2, 46, 2, 47, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -471,7 +473,7 @@ static const yytype_uint8 yytranslate[] =
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
+ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44
};
#if YYDEBUG
@@ -483,103 +485,109 @@ static const yytype_uint16 yyprhs[] =
26, 27, 32, 35, 36, 38, 40, 42, 44, 46,
48, 50, 52, 54, 56, 58, 60, 62, 63, 70,
73, 76, 79, 80, 88, 91, 92, 97, 101, 104,
- 105, 108, 110, 113, 116, 119, 120, 127, 132, 136,
- 139, 140, 142, 145, 148, 151, 152, 161, 164, 165,
- 168, 169, 174, 178, 181, 182, 184, 188, 191, 193,
- 195, 197, 200, 204, 207, 211, 212, 218, 219, 225,
- 227, 229, 232, 235, 238, 239, 247, 251, 253, 255,
- 258, 259, 264, 268, 271, 272, 274, 278, 280, 282,
- 284, 292, 300, 311, 322, 325, 328, 329, 336, 342,
- 346, 348, 350, 352, 353, 355, 356, 357, 361, 367,
- 372, 379, 383, 389, 392, 393, 395, 398, 402, 404,
- 406, 408, 410, 412, 414, 416, 418, 420, 423, 425,
- 427, 430, 433, 435, 439, 441, 443, 444, 446, 448,
- 450, 452, 454, 456, 463, 469, 471, 473, 475, 477,
- 479, 481, 483, 485, 487, 489, 491, 493, 495, 497,
- 499, 501, 503, 505, 507, 509, 511, 513, 515, 517,
- 519, 521, 523
+ 105, 108, 112, 116, 119, 121, 124, 126, 128, 131,
+ 134, 137, 138, 145, 150, 154, 157, 158, 160, 163,
+ 166, 169, 170, 179, 182, 183, 186, 187, 192, 196,
+ 199, 200, 202, 206, 209, 211, 213, 217, 220, 225,
+ 228, 230, 233, 235, 237, 240, 244, 247, 251, 252,
+ 258, 259, 265, 267, 269, 272, 275, 278, 279, 287,
+ 291, 293, 295, 298, 299, 304, 308, 311, 312, 314,
+ 318, 320, 322, 324, 332, 340, 351, 362, 365, 368,
+ 369, 376, 382, 386, 388, 390, 392, 393, 395, 396,
+ 397, 401, 407, 412, 419, 423, 429, 432, 433, 435,
+ 438, 442, 444, 446, 448, 450, 452, 454, 456, 458,
+ 460, 463, 465, 467, 470, 473, 475, 479, 481, 483,
+ 484, 486, 488, 490, 492, 494, 496, 503, 509, 511,
+ 513, 515, 517, 519, 521, 523, 525, 527, 529, 531,
+ 533, 535, 537, 539, 541, 543, 545, 547, 549, 551,
+ 553, 555, 557, 559, 561, 563, 565
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int8 yyrhs[] =
{
- 53, 0, -1, 56, -1, 40, 114, 41, -1, 38,
- 114, 39, -1, -1, -1, 54, 57, 56, -1, -1,
- 55, 60, 58, 43, 56, -1, -1, 1, 43, 59,
- 56, -1, 55, 60, -1, -1, 61, -1, 78, -1,
- 79, -1, 92, -1, 93, -1, 64, -1, 65, -1,
- 72, -1, 73, -1, 101, -1, 102, -1, 104, -1,
- 117, -1, -1, 3, 32, 62, 44, 56, 45, -1,
- 6, 32, -1, 6, 118, -1, 115, 63, -1, -1,
- 115, 63, 67, 66, 44, 68, 45, -1, 12, 111,
- -1, -1, 55, 70, 43, 68, -1, 1, 43, 68,
- -1, 55, 70, -1, -1, 112, 32, -1, 84, -1,
- 7, 32, -1, 7, 118, -1, 115, 71, -1, -1,
- 115, 71, 74, 44, 75, 45, -1, 55, 76, 43,
- 75, -1, 1, 43, 75, -1, 55, 76, -1, -1,
- 84, -1, 4, 32, -1, 4, 118, -1, 115, 77,
- -1, -1, 115, 77, 81, 82, 80, 44, 83, 45,
- -1, 12, 111, -1, -1, 13, 95, -1, -1, 55,
- 90, 43, 83, -1, 1, 43, 83, -1, 55, 90,
- -1, -1, 69, -1, 69, 46, 116, -1, 112, 118,
- -1, 112, -1, 112, -1, 15, -1, 85, 36, -1,
- 30, 85, 36, -1, 85, 37, -1, 30, 85, 37,
- -1, -1, 86, 109, 47, 88, 110, -1, -1, 86,
- 1, 47, 89, 110, -1, 84, -1, 87, -1, 5,
- 32, -1, 5, 118, -1, 115, 91, -1, -1, 115,
- 91, 96, 94, 44, 97, 45, -1, 111, 48, 95,
- -1, 111, -1, 24, -1, 12, 95, -1, -1, 55,
- 98, 43, 97, -1, 1, 43, 97, -1, 55, 98,
- -1, -1, 87, -1, 100, 48, 99, -1, 100, -1,
- 111, -1, 118, -1, 115, 8, 49, 55, 112, 50,
- 32, -1, 115, 8, 49, 55, 112, 50, 118, -1,
- 115, 9, 49, 55, 112, 48, 55, 112, 50, 32,
- -1, 115, 9, 49, 55, 112, 48, 55, 112, 50,
- 118, -1, 10, 32, -1, 10, 118, -1, -1, 115,
- 103, 105, 44, 106, 45, -1, 115, 10, 44, 106,
- 45, -1, 107, 48, 106, -1, 107, -1, 32, -1,
- 118, -1, -1, 11, -1, -1, -1, 108, 55, 69,
- -1, 109, 48, 108, 55, 69, -1, 108, 55, 112,
- 118, -1, 109, 48, 108, 55, 112, 118, -1, 108,
- 55, 112, -1, 109, 48, 108, 55, 112, -1, 14,
- 99, -1, -1, 32, -1, 31, 32, -1, 111, 31,
- 32, -1, 16, -1, 17, -1, 18, -1, 19, -1,
+ 55, 0, -1, 58, -1, 42, 119, 43, -1, 40,
+ 119, 41, -1, -1, -1, 56, 59, 58, -1, -1,
+ 57, 62, 60, 45, 58, -1, -1, 1, 45, 61,
+ 58, -1, 57, 62, -1, -1, 63, -1, 82, -1,
+ 83, -1, 97, -1, 98, -1, 66, -1, 67, -1,
+ 76, -1, 77, -1, 106, -1, 107, -1, 109, -1,
+ 122, -1, -1, 3, 33, 64, 46, 58, 47, -1,
+ 6, 33, -1, 6, 123, -1, 120, 65, -1, -1,
+ 120, 65, 69, 68, 46, 70, 47, -1, 12, 116,
+ -1, -1, 57, 74, 45, 70, -1, 1, 45, 70,
+ -1, 57, 74, -1, -1, 117, 33, -1, 39, 35,
+ 48, -1, 39, 116, 48, -1, 39, 48, -1, 31,
+ -1, 72, 71, -1, 71, -1, 88, -1, 7, 33,
+ -1, 7, 123, -1, 120, 75, -1, -1, 120, 75,
+ 78, 46, 79, 47, -1, 57, 80, 45, 79, -1,
+ 1, 45, 79, -1, 57, 80, -1, -1, 89, -1,
+ 4, 33, -1, 4, 123, -1, 120, 81, -1, -1,
+ 120, 81, 85, 86, 84, 46, 87, 47, -1, 12,
+ 116, -1, -1, 13, 100, -1, -1, 57, 95, 45,
+ 87, -1, 1, 45, 87, -1, 57, 95, -1, -1,
+ 73, -1, 73, 49, 121, -1, 117, 123, -1, 117,
+ -1, 71, -1, 71, 49, 121, -1, 72, 71, -1,
+ 72, 71, 49, 121, -1, 117, 123, -1, 117, -1,
+ 72, 117, -1, 117, -1, 15, -1, 90, 37, -1,
+ 30, 90, 37, -1, 90, 38, -1, 30, 90, 38,
+ -1, -1, 91, 114, 48, 93, 115, -1, -1, 91,
+ 1, 48, 94, 115, -1, 88, -1, 92, -1, 5,
+ 33, -1, 5, 123, -1, 120, 96, -1, -1, 120,
+ 96, 101, 99, 46, 102, 47, -1, 116, 50, 100,
+ -1, 116, -1, 24, -1, 12, 100, -1, -1, 57,
+ 103, 45, 102, -1, 1, 45, 102, -1, 57, 103,
+ -1, -1, 92, -1, 105, 50, 104, -1, 105, -1,
+ 116, -1, 123, -1, 120, 8, 51, 57, 117, 52,
+ 33, -1, 120, 8, 51, 57, 117, 52, 123, -1,
+ 120, 9, 51, 57, 117, 50, 57, 117, 52, 33,
+ -1, 120, 9, 51, 57, 117, 50, 57, 117, 52,
+ 123, -1, 10, 33, -1, 10, 123, -1, -1, 120,
+ 108, 110, 46, 111, 47, -1, 120, 10, 46, 111,
+ 47, -1, 112, 50, 111, -1, 112, -1, 33, -1,
+ 123, -1, -1, 11, -1, -1, -1, 113, 57, 73,
+ -1, 114, 50, 113, 57, 73, -1, 113, 57, 117,
+ 123, -1, 114, 50, 113, 57, 117, 123, -1, 113,
+ 57, 117, -1, 114, 50, 113, 57, 117, -1, 14,
+ 104, -1, -1, 33, -1, 32, 33, -1, 116, 32,
+ 33, -1, 16, -1, 17, -1, 18, -1, 19, -1,
20, -1, 21, -1, 22, -1, 23, -1, 24, -1,
- 24, 51, -1, 25, -1, 111, -1, 111, 51, -1,
- 33, 113, -1, 33, -1, 114, 48, 113, -1, 113,
- -1, 26, -1, -1, 34, -1, 35, -1, 111, -1,
- 33, -1, 28, -1, 29, -1, 27, 55, 112, 32,
- 46, 116, -1, 27, 55, 112, 46, 116, -1, 3,
+ 24, 53, -1, 25, -1, 116, -1, 116, 53, -1,
+ 34, 118, -1, 34, -1, 119, 50, 118, -1, 118,
+ -1, 26, -1, -1, 35, -1, 36, -1, 116, -1,
+ 34, -1, 28, -1, 29, -1, 27, 57, 117, 33,
+ 49, 121, -1, 27, 57, 117, 49, 121, -1, 3,
-1, 4, -1, 5, -1, 6, -1, 7, -1, 8,
-1, 9, -1, 10, -1, 11, -1, 12, -1, 13,
-1, 14, -1, 15, -1, 16, -1, 17, -1, 18,
-1, 19, -1, 20, -1, 21, -1, 22, -1, 23,
-1, 24, -1, 25, -1, 26, -1, 27, -1, 28,
- -1, 29, -1, 30, -1
+ -1, 29, -1, 30, -1, 31, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 104, 104, 112, 121, 126, 135, 134, 144, 143,
- 154, 153, 158, 163, 170, 174, 178, 182, 186, 190,
- 194, 198, 202, 206, 210, 214, 218, 228, 227, 261,
- 265, 276, 287, 286, 313, 322, 330, 339, 342, 347,
- 354, 367, 373, 377, 388, 399, 398, 434, 443, 446,
- 451, 458, 464, 468, 479, 493, 492, 532, 567, 575,
- 580, 588, 597, 600, 605, 612, 635, 660, 682, 708,
- 709, 718, 742, 766, 790, 820, 819, 842, 841, 864,
- 865, 871, 875, 886, 901, 900, 935, 970, 1005, 1015,
- 1020, 1028, 1037, 1040, 1045, 1052, 1058, 1065, 1077, 1089,
- 1100, 1109, 1124, 1135, 1152, 1156, 1168, 1167, 1191, 1206,
- 1212, 1220, 1232, 1240, 1249, 1256, 1267, 1269, 1287, 1305,
- 1317, 1329, 1340, 1356, 1361, 1369, 1372, 1378, 1391, 1395,
- 1399, 1403, 1407, 1411, 1415, 1419, 1423, 1427, 1431, 1435,
- 1454, 1495, 1501, 1509, 1516, 1528, 1535, 1545, 1558, 1571,
- 1617, 1628, 1639, 1655, 1664, 1678, 1681, 1684, 1687, 1690,
- 1693, 1696, 1699, 1702, 1705, 1708, 1711, 1714, 1717, 1720,
- 1723, 1726, 1729, 1732, 1735, 1738, 1741, 1744, 1747, 1750,
- 1753, 1756, 1759
+ 0, 107, 107, 115, 124, 129, 138, 137, 147, 146,
+ 157, 156, 161, 166, 173, 177, 181, 185, 189, 193,
+ 197, 201, 205, 209, 213, 217, 221, 231, 230, 264,
+ 268, 279, 290, 289, 316, 325, 333, 342, 345, 350,
+ 357, 370, 390, 460, 468, 481, 489, 504, 510, 514,
+ 525, 536, 535, 571, 580, 583, 588, 595, 601, 605,
+ 616, 630, 629, 669, 704, 712, 717, 725, 734, 737,
+ 742, 749, 771, 798, 820, 846, 855, 866, 875, 884,
+ 894, 908, 914, 922, 934, 958, 983, 1007, 1038, 1037,
+ 1060, 1059, 1082, 1083, 1089, 1093, 1104, 1119, 1118, 1153,
+ 1188, 1223, 1233, 1238, 1246, 1255, 1258, 1263, 1270, 1276,
+ 1283, 1295, 1307, 1318, 1327, 1342, 1353, 1370, 1374, 1386,
+ 1385, 1409, 1424, 1430, 1438, 1450, 1458, 1467, 1474, 1485,
+ 1487, 1503, 1519, 1531, 1543, 1554, 1570, 1575, 1583, 1586,
+ 1592, 1605, 1609, 1613, 1617, 1621, 1625, 1629, 1633, 1637,
+ 1641, 1645, 1649, 1668, 1709, 1715, 1723, 1730, 1742, 1749,
+ 1759, 1772, 1785, 1831, 1842, 1853, 1869, 1878, 1892, 1895,
+ 1898, 1901, 1904, 1907, 1910, 1913, 1916, 1919, 1922, 1925,
+ 1928, 1931, 1934, 1937, 1940, 1943, 1946, 1949, 1952, 1955,
+ 1958, 1961, 1964, 1967, 1970, 1973, 1976
};
#endif
@@ -594,26 +602,27 @@ static const char *const yytname[] =
"ICE_THROWS", "ICE_VOID", "ICE_BYTE", "ICE_BOOL", "ICE_SHORT", "ICE_INT",
"ICE_LONG", "ICE_FLOAT", "ICE_DOUBLE", "ICE_STRING", "ICE_OBJECT",
"ICE_LOCAL_OBJECT", "ICE_LOCAL", "ICE_CONST", "ICE_FALSE", "ICE_TRUE",
- "ICE_IDEMPOTENT", "ICE_SCOPE_DELIMITER", "ICE_IDENTIFIER",
- "ICE_STRING_LITERAL", "ICE_INTEGER_LITERAL",
+ "ICE_IDEMPOTENT", "ICE_OPTIONAL", "ICE_SCOPE_DELIMITER",
+ "ICE_IDENTIFIER", "ICE_STRING_LITERAL", "ICE_INTEGER_LITERAL",
"ICE_FLOATING_POINT_LITERAL", "ICE_IDENT_OP", "ICE_KEYWORD_OP",
- "ICE_METADATA_OPEN", "ICE_METADATA_CLOSE", "ICE_GLOBAL_METADATA_OPEN",
- "ICE_GLOBAL_METADATA_CLOSE", "BAD_CHAR", "';'", "'{'", "'}'", "'='",
- "')'", "','", "'<'", "'>'", "'*'", "$accept", "start",
- "global_meta_data", "meta_data", "definitions", "$@1", "$@2", "$@3",
- "definition", "module_def", "@4", "exception_id", "exception_decl",
- "exception_def", "@5", "exception_extends", "exception_exports",
- "type_id", "exception_export", "struct_id", "struct_decl", "struct_def",
- "@6", "struct_exports", "struct_export", "class_id", "class_decl",
- "class_def", "@7", "class_extends", "implements", "class_exports",
- "data_member", "return_type", "operation_preamble", "operation", "@8",
- "@9", "class_export", "interface_id", "interface_decl", "interface_def",
- "@10", "interface_list", "interface_extends", "interface_exports",
- "interface_export", "exception_list", "exception", "sequence_def",
- "dictionary_def", "enum_id", "enum_def", "@11", "enumerator_list",
- "enumerator", "out_qualifier", "parameters", "throws", "scoped_name",
- "type", "string_literal", "string_list", "local_qualifier",
- "const_initializer", "const_def", "keyword", 0
+ "ICE_OPTIONAL_OP", "ICE_METADATA_OPEN", "ICE_METADATA_CLOSE",
+ "ICE_GLOBAL_METADATA_OPEN", "ICE_GLOBAL_METADATA_CLOSE", "BAD_CHAR",
+ "';'", "'{'", "'}'", "')'", "'='", "','", "'<'", "'>'", "'*'", "$accept",
+ "start", "global_meta_data", "meta_data", "definitions", "$@1", "$@2",
+ "$@3", "definition", "module_def", "@4", "exception_id",
+ "exception_decl", "exception_def", "@5", "exception_extends",
+ "exception_exports", "type_id", "optional", "optional_type_id",
+ "exception_export", "struct_id", "struct_decl", "struct_def", "@6",
+ "struct_exports", "struct_export", "class_id", "class_decl", "class_def",
+ "@7", "class_extends", "implements", "class_exports", "data_member",
+ "struct_data_member", "return_type", "operation_preamble", "operation",
+ "@8", "@9", "class_export", "interface_id", "interface_decl",
+ "interface_def", "@10", "interface_list", "interface_extends",
+ "interface_exports", "interface_export", "exception_list", "exception",
+ "sequence_def", "dictionary_def", "enum_id", "enum_def", "@11",
+ "enumerator_list", "enumerator", "out_qualifier", "parameters", "throws",
+ "scoped_name", "type", "string_literal", "string_list",
+ "local_qualifier", "const_initializer", "const_def", "keyword", 0
};
#endif
@@ -626,33 +635,34 @@ static const yytype_uint16 yytoknum[] =
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, 59, 123, 125, 61, 41, 44, 60,
- 62, 42
+ 295, 296, 297, 298, 299, 59, 123, 125, 41, 61,
+ 44, 60, 62, 42
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 52, 53, 54, 55, 55, 57, 56, 58, 56,
- 59, 56, 56, 56, 60, 60, 60, 60, 60, 60,
- 60, 60, 60, 60, 60, 60, 60, 62, 61, 63,
- 63, 64, 66, 65, 67, 67, 68, 68, 68, 68,
- 69, 70, 71, 71, 72, 74, 73, 75, 75, 75,
- 75, 76, 77, 77, 78, 80, 79, 81, 81, 82,
- 82, 83, 83, 83, 83, 84, 84, 84, 84, 85,
- 85, 86, 86, 86, 86, 88, 87, 89, 87, 90,
- 90, 91, 91, 92, 94, 93, 95, 95, 95, 96,
- 96, 97, 97, 97, 97, 98, 99, 99, 100, 100,
- 101, 101, 102, 102, 103, 103, 105, 104, 104, 106,
- 106, 107, 107, 107, 108, 108, 109, 109, 109, 109,
- 109, 109, 109, 110, 110, 111, 111, 111, 112, 112,
- 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
- 112, 113, 113, 114, 114, 115, 115, 116, 116, 116,
- 116, 116, 116, 117, 117, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118, 118, 118, 118, 118, 118, 118, 118,
- 118, 118, 118
+ 0, 54, 55, 56, 57, 57, 59, 58, 60, 58,
+ 61, 58, 58, 58, 62, 62, 62, 62, 62, 62,
+ 62, 62, 62, 62, 62, 62, 62, 64, 63, 65,
+ 65, 66, 68, 67, 69, 69, 70, 70, 70, 70,
+ 71, 72, 72, 72, 72, 73, 73, 74, 75, 75,
+ 76, 78, 77, 79, 79, 79, 79, 80, 81, 81,
+ 82, 84, 83, 85, 85, 86, 86, 87, 87, 87,
+ 87, 88, 88, 88, 88, 89, 89, 89, 89, 89,
+ 89, 90, 90, 90, 91, 91, 91, 91, 93, 92,
+ 94, 92, 95, 95, 96, 96, 97, 99, 98, 100,
+ 100, 100, 101, 101, 102, 102, 102, 102, 103, 104,
+ 104, 105, 105, 106, 106, 107, 107, 108, 108, 110,
+ 109, 109, 111, 111, 112, 112, 112, 113, 113, 114,
+ 114, 114, 114, 114, 114, 114, 115, 115, 116, 116,
+ 116, 117, 117, 117, 117, 117, 117, 117, 117, 117,
+ 117, 117, 117, 117, 118, 118, 119, 119, 120, 120,
+ 121, 121, 121, 121, 121, 121, 122, 122, 123, 123,
+ 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 123, 123, 123, 123, 123, 123, 123, 123,
+ 123, 123, 123, 123, 123, 123, 123
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -662,21 +672,22 @@ static const yytype_uint8 yyr2[] =
0, 4, 2, 0, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 0, 6, 2,
2, 2, 0, 7, 2, 0, 4, 3, 2, 0,
- 2, 1, 2, 2, 2, 0, 6, 4, 3, 2,
- 0, 1, 2, 2, 2, 0, 8, 2, 0, 2,
- 0, 4, 3, 2, 0, 1, 3, 2, 1, 1,
- 1, 2, 3, 2, 3, 0, 5, 0, 5, 1,
- 1, 2, 2, 2, 0, 7, 3, 1, 1, 2,
- 0, 4, 3, 2, 0, 1, 3, 1, 1, 1,
- 7, 7, 10, 10, 2, 2, 0, 6, 5, 3,
- 1, 1, 1, 0, 1, 0, 0, 3, 5, 4,
- 6, 3, 5, 2, 0, 1, 2, 3, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 1, 1,
- 2, 2, 1, 3, 1, 1, 0, 1, 1, 1,
- 1, 1, 1, 6, 5, 1, 1, 1, 1, 1,
+ 2, 3, 3, 2, 1, 2, 1, 1, 2, 2,
+ 2, 0, 6, 4, 3, 2, 0, 1, 2, 2,
+ 2, 0, 8, 2, 0, 2, 0, 4, 3, 2,
+ 0, 1, 3, 2, 1, 1, 3, 2, 4, 2,
+ 1, 2, 1, 1, 2, 3, 2, 3, 0, 5,
+ 0, 5, 1, 1, 2, 2, 2, 0, 7, 3,
+ 1, 1, 2, 0, 4, 3, 2, 0, 1, 3,
+ 1, 1, 1, 7, 7, 10, 10, 2, 2, 0,
+ 6, 5, 3, 1, 1, 1, 0, 1, 0, 0,
+ 3, 5, 4, 6, 3, 5, 2, 0, 1, 2,
+ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 2, 1, 1, 2, 2, 1, 3, 1, 1, 0,
+ 1, 1, 1, 1, 1, 1, 6, 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
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -684,297 +695,322 @@ static const yytype_uint8 yyr2[] =
means the default is an error. */
static const yytype_uint8 yydefact[] =
{
- 0, 0, 0, 0, 0, 6, 146, 2, 10, 142,
- 144, 0, 0, 1, 0, 0, 145, 5, 12, 14,
+ 0, 0, 0, 0, 0, 6, 159, 2, 10, 155,
+ 157, 0, 0, 1, 0, 0, 158, 5, 12, 14,
19, 20, 21, 22, 15, 16, 17, 18, 23, 24,
- 25, 0, 26, 0, 141, 4, 0, 3, 7, 27,
+ 25, 0, 26, 0, 154, 4, 0, 3, 7, 27,
0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
- 44, 54, 83, 106, 11, 143, 0, 128, 129, 130,
- 131, 132, 133, 134, 135, 136, 138, 0, 125, 139,
- 0, 0, 155, 156, 157, 158, 159, 160, 161, 162,
- 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 52, 53, 81, 82, 29, 30, 42, 43, 5, 5,
- 104, 113, 105, 0, 32, 0, 0, 60, 0, 84,
- 0, 0, 137, 126, 0, 140, 0, 0, 9, 0,
- 0, 111, 0, 110, 112, 34, 0, 0, 57, 0,
- 55, 88, 89, 87, 0, 113, 0, 127, 0, 151,
- 152, 150, 147, 148, 149, 154, 0, 0, 108, 113,
- 0, 0, 0, 0, 59, 0, 0, 0, 0, 28,
- 153, 0, 5, 109, 0, 0, 0, 0, 65, 49,
- 51, 68, 46, 0, 86, 0, 0, 0, 107, 100,
- 101, 0, 0, 38, 41, 33, 48, 0, 0, 40,
- 67, 0, 0, 0, 0, 70, 0, 0, 0, 95,
- 93, 69, 85, 0, 37, 0, 66, 47, 0, 79,
- 80, 63, 68, 56, 92, 0, 71, 73, 0, 114,
- 5, 0, 0, 0, 36, 62, 0, 72, 74, 77,
- 0, 75, 115, 91, 102, 103, 61, 124, 117, 121,
- 124, 5, 0, 78, 119, 76, 0, 123, 97, 98,
- 99, 118, 122, 0, 120, 96
+ 50, 60, 96, 119, 11, 156, 0, 141, 142, 143,
+ 144, 145, 146, 147, 148, 149, 151, 0, 138, 152,
+ 0, 0, 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
+ 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
+ 196, 58, 59, 94, 95, 29, 30, 48, 49, 5,
+ 5, 117, 126, 118, 0, 32, 0, 0, 66, 0,
+ 97, 0, 0, 150, 139, 0, 153, 0, 0, 9,
+ 0, 0, 124, 0, 123, 125, 34, 0, 0, 63,
+ 0, 61, 101, 102, 100, 0, 126, 0, 140, 0,
+ 164, 165, 163, 160, 161, 162, 167, 0, 0, 121,
+ 126, 0, 0, 0, 0, 65, 0, 0, 0, 0,
+ 28, 166, 0, 5, 122, 0, 0, 0, 0, 44,
+ 0, 75, 0, 55, 57, 80, 52, 0, 99, 0,
+ 0, 0, 120, 113, 114, 0, 0, 46, 0, 71,
+ 38, 47, 74, 33, 54, 0, 43, 0, 0, 77,
+ 0, 0, 40, 79, 0, 0, 0, 0, 83, 0,
+ 0, 0, 0, 108, 106, 82, 98, 0, 37, 45,
+ 0, 0, 73, 41, 42, 76, 0, 53, 0, 0,
+ 92, 93, 69, 74, 62, 105, 0, 81, 84, 86,
+ 0, 127, 5, 0, 0, 0, 72, 36, 78, 68,
+ 81, 0, 85, 87, 90, 0, 88, 128, 104, 115,
+ 116, 67, 137, 130, 134, 137, 5, 0, 91, 132,
+ 89, 0, 136, 110, 111, 112, 131, 135, 0, 133,
+ 109
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 4, 5, 6, 7, 14, 41, 33, 18, 19,
- 56, 49, 20, 21, 136, 114, 176, 178, 193, 50,
- 22, 23, 115, 163, 179, 51, 24, 25, 165, 117,
- 140, 203, 180, 207, 208, 209, 250, 247, 221, 52,
- 26, 27, 144, 142, 119, 187, 210, 257, 258, 28,
- 29, 53, 30, 120, 132, 133, 230, 231, 253, 69,
- 181, 10, 11, 31, 155, 32, 134
+ 56, 49, 20, 21, 137, 115, 177, 197, 198, 199,
+ 200, 50, 22, 23, 116, 164, 183, 51, 24, 25,
+ 166, 118, 141, 216, 201, 184, 221, 222, 223, 275,
+ 272, 242, 52, 26, 27, 145, 143, 120, 191, 224,
+ 282, 283, 28, 29, 53, 30, 121, 133, 134, 252,
+ 253, 278, 69, 210, 10, 11, 31, 156, 32, 135
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -224
+#define YYPACT_NINF -210
static const yytype_int16 yypact[] =
{
- 435, -12, -11, -11, 70, -224, 63, -224, -224, -11,
- -224, -21, -22, -224, 78, 33, -224, 35, 54, -224,
- -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
- -224, 128, -224, 78, -224, -224, -11, -224, -224, -224,
- 765, 60, 538, 568, 598, 628, 26, 62, 402, -5,
- 68, 12, -1, -224, -224, -224, 69, -224, -224, -224,
- -224, -224, -224, -224, -224, 66, -224, 82, -224, 43,
- 64, 78, -224, -224, -224, -224, -224, -224, -224, -224,
- -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
- -224, -224, -224, -224, -224, -224, -224, -224, -224, -224,
- -224, -224, -224, -224, -224, -224, -224, -224, 35, 35,
- -224, 658, -224, -3, -224, 71, -3, 106, 40, -224,
- 85, 359, -224, -224, 98, -224, 94, 93, -224, 765,
- 765, -224, 97, 91, -224, 113, 101, 284, 113, 40,
- -224, -224, -224, -10, 102, 658, 104, -224, 93, -224,
- -224, -224, -224, -224, 113, -224, 103, 99, -224, 658,
- 316, 108, 765, 107, -224, 110, 40, 220, 112, -224,
- -224, 688, 35, -224, 115, 765, 117, 284, 118, 120,
- -224, 718, -224, 252, -224, 122, 357, 123, -224, -224,
- -224, 765, 316, 124, -224, -224, -224, 93, 284, -224,
- -224, 126, 357, 125, 220, -224, 432, 32, 29, -224,
- 130, -224, -224, 121, -224, 316, -224, -224, 252, -224,
- -224, 131, 473, -224, -224, 65, -224, -224, 132, -224,
- 35, 59, 220, 748, -224, -224, 252, -224, -224, -224,
- 765, -224, 166, -224, -224, -224, -224, 164, -224, 718,
- 164, 35, 508, -224, -224, -224, 765, -224, 135, 113,
- -224, -224, 718, 508, -224, -224
+ 503, 35, 18, 18, 86, -210, 33, -210, -210, 18,
+ -210, 40, 63, -210, 23, 55, -210, 67, 79, -210,
+ -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+ -210, 110, -210, 23, -210, -210, 18, -210, -210, -210,
+ 845, 80, 610, 641, 672, 703, 75, 77, 469, 7,
+ 83, 5, 9, -210, -210, -210, 84, -210, -210, -210,
+ -210, -210, -210, -210, -210, 78, -210, 99, -210, 16,
+ 29, 23, -210, -210, -210, -210, -210, -210, -210, -210,
+ -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+ -210, -210, -210, -210, -210, -210, -210, -210, -210, -210,
+ -210, -210, -210, -210, -210, -210, -210, -210, -210, 67,
+ 67, -210, 734, -210, 64, -210, 89, 64, 124, 52,
+ -210, 92, 424, -210, -210, 106, -210, 91, 66, -210,
+ 845, 845, -210, 94, 93, -210, 113, 96, 346, 113,
+ 52, -210, -210, -210, 22, 100, 734, 101, -210, 66,
+ -210, -210, -210, -210, -210, 113, -210, 98, 102, -210,
+ 734, 379, 108, 500, 107, -210, 109, 52, 280, 111,
+ -210, -210, 765, 67, -210, 112, 500, 115, 346, -210,
+ 8, 116, 845, 114, -210, 796, -210, 313, -210, 121,
+ 422, 120, -210, -210, -210, 845, 379, -210, 845, 122,
+ 127, -210, 796, -210, -210, 125, -210, 34, 66, 126,
+ 136, 346, -210, -210, 131, 422, 130, 280, -210, 209,
+ 845, 74, 244, -210, 133, -210, -210, 128, -210, -210,
+ 66, 379, -210, -210, -210, -210, 66, -210, 313, 845,
+ -210, -210, 137, 543, -210, -210, 85, -210, -210, -210,
+ 135, -210, 67, 60, 280, 827, -210, -210, -210, -210,
+ 136, 313, -210, -210, -210, 500, -210, 149, -210, -210,
+ -210, -210, 167, -210, 796, 167, 67, 579, -210, -210,
+ -210, 500, -210, 134, 113, -210, -210, 796, 579, -210,
+ -210
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -224, -224, -224, -17, -13, -224, -224, -224, -224, -224,
- -224, -224, -224, -224, -224, -224, -158, -223, -224, -224,
- -224, -224, -224, -161, -224, -224, -224, -224, -224, -224,
- -224, -138, -160, -26, -224, -18, -224, -224, -224, -224,
- -224, -224, -224, -107, -224, -191, -224, -78, -224, -224,
- -224, -224, -224, -224, -50, -224, -56, -224, -62, -104,
- -30, 27, 186, -224, -142, -224, -40
+ -210, -210, -210, -17, -13, -210, -210, -210, -210, -210,
+ -210, -210, -210, -210, -210, -210, -187, -160, -148, -190,
+ -210, -210, -210, -210, -210, -143, -210, -210, -210, -210,
+ -210, -210, -210, -204, -29, -210, -32, -210, -26, -210,
+ -210, -210, -210, -210, -210, -210, -128, -210, -209, -210,
+ -98, -210, -210, -210, -210, -210, -210, -73, -210, -76,
+ -210, -80, -103, -27, 38, 193, -210, -147, -210, -38
};
/* 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 -117
+#define YYTABLE_NINF -130
static const yytype_int16 yytable[] =
{
- 40, 38, 101, 103, 105, 107, 170, 113, 112, 135,
- 70, 118, 138, 224, 143, 194, 196, 248, 35, 37,
- 54, 124, 9, 154, 116, -58, 36, 36, 67, 68,
- 228, 8, 164, 261, 214, 143, 34, 217, 166, -35,
- 229, 243, 219, -90, 154, -115, -115, -115, -115, -115,
- -115, -115, -115, -115, -115, 216, -58, 234, 128, 184,
- -115, -115, 143, 55, 141, 39, 15, -115, 226, 227,
- 13, 67, 68, 2, 124, 108, -116, -116, -13, 1,
- 235, -5, -5, -5, -5, -5, -5, -5, -5, 16,
- 17, 129, 130, 154, 125, 168, 126, -8, 246, 156,
- 157, 237, 238, 71, -5, -5, 241, 242, 146, 173,
- 127, 109, -45, 121, 123, 137, 2, 122, 3, 139,
- 162, 149, 150, -13, 67, 68, 151, 152, 153, 145,
- 147, 190, 42, 43, 44, 45, 46, 47, 48, 159,
- 148, 200, 158, 175, 124, 160, 167, 172, 259, 169,
- 186, 177, 182, 171, 183, 191, 211, 188, 192, 259,
- 162, 213, 195, 198, 197, 204, 202, 215, 212, 218,
- 223, 233, 222, 232, 236, 175, 211, 229, 252, 239,
- 225, 162, 200, 263, 220, 265, 251, 186, 255, 12,
- 0, 0, 0, 245, 0, 0, 0, 0, 175, 0,
- 0, 202, 0, 0, 0, 0, 0, 0, 0, 254,
- 249, 0, 260, 240, 0, 186, 0, 0, 0, 202,
- 0, 185, 264, 260, 0, 0, 262, 0, 0, 0,
- 0, 0, 0, 0, 256, -5, -5, -5, -5, -5,
+ 40, 38, 171, 181, 102, 104, 106, 108, 245, 228,
+ 113, 136, 165, 70, 139, 182, 144, 117, -64, 114,
+ 54, 119, 209, -13, 1, 155, -5, -5, -5, -5,
+ -5, -5, -5, -5, 259, 204, 15, 144, 229, 188,
+ 67, 68, 220, 205, 257, 268, 155, 34, 125, -5,
+ -5, -64, 9, -35, 125, -103, 206, 271, 129, 16,
+ 17, 235, 127, 2, 144, 3, 125, 239, 237, 126,
+ -13, 220, 167, 169, 55, 273, 142, 207, 128, 229,
+ 8, 35, 234, 256, 67, 68, 13, 174, 39, 258,
+ 36, 286, 130, 131, 150, 151, 67, 68, 67, 68,
+ 152, 153, 154, 157, 158, 155, 37, 2, 266, 147,
+ 267, 248, 249, 36, 42, 43, 44, 45, 46, 47,
+ 48, 163, 262, 263, -8, 71, 109, 155, 110, -51,
+ 122, 123, 124, 155, 194, 138, 185, 140, 146, 148,
+ 149, 159, 161, 160, 176, 125, 168, 213, 170, 202,
+ 172, 190, 173, 178, 186, 187, 195, 196, 192, 211,
+ 251, 163, 203, 225, 232, 208, 217, 226, 227, 212,
+ 215, 230, 231, 233, 284, 236, 238, 244, 254, 176,
+ 255, 277, 261, 264, 288, 284, 240, 246, 243, 241,
+ 290, 276, 225, 247, 163, 280, 12, 0, 0, 0,
+ 190, 0, 0, 0, 0, 232, 0, 0, 0, 0,
+ 0, 0, 260, 0, 176, 0, 0, 270, 0, 0,
+ 0, 215, 0, 0, 218, 57, 58, 59, 60, 61,
+ 62, 63, 64, 65, 66, 265, 279, 190, 274, 285,
+ 179, 67, 68, 0, 215, 250, 0, 0, 180, 289,
+ 285, 0, 0, 0, 287, 251, 0, 0, 0, 281,
+ -128, -128, -128, -128, -128, -128, -128, -128, -128, -128,
+ 0, 0, 0, 0, 0, -128, -128, -128, 0, 0,
+ 0, 189, 0, -128, -128, 0, 0, 0, 0, 0,
+ 0, 0, -129, 0, -129, -5, -5, -5, -5, -5,
-5, -5, -5, -5, -5, -5, 0, 0, 0, 0,
- -5, -5, -5, 201, 0, 0, 0, 0, 2, 0,
- 0, 0, 0, 0, 0, -94, 0, -5, -5, -5,
- -5, -5, -5, -5, -5, -5, -5, -5, 0, 0,
- 0, 0, -5, -5, -5, 161, 0, 0, 0, 0,
- 2, 0, 0, 0, 0, 0, 0, -64, 0, 0,
- -5, -5, -5, -5, -5, -5, -5, -5, -5, -5,
- 0, 0, 0, 0, 0, -5, -5, 174, 0, 0,
- 0, 0, 2, 0, 0, 0, 0, 0, 0, -50,
- 0, 0, -5, -5, -5, -5, -5, -5, -5, -5,
- -5, -5, 0, 0, 0, 0, 0, -5, -5, 0,
- 0, 0, 0, 0, 2, 0, 0, 0, 0, 0,
- 1, -39, -5, -5, -5, -5, -5, -5, -5, -5,
- 0, 0, 205, 57, 58, 59, 60, 61, 62, 63,
- 64, 65, 66, 0, 0, -5, -5, 206, 67, 68,
- 0, 0, 0, 0, 0, 0, 0, 2, 0, 3,
- 0, 0, 0, 0, -13, 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, 0, 110, -13, 1, 0, -5, -5,
- -5, -5, -5, -5, -5, -5, 111, 205, 57, 58,
+ -5, -5, -5, -5, 214, 0, 0, 0, 0, -5,
+ 2, 0, 0, 0, 0, 0, 0, -107, -5, -5,
+ -5, -5, -5, -5, -5, -5, -5, -5, -5, 0,
+ 0, 0, 0, -5, -5, -5, -5, 162, 0, 0,
+ 0, 0, -5, 2, 0, 0, 0, 0, 0, 0,
+ -70, 0, -5, -5, -5, -5, -5, -5, -5, -5,
+ -5, -5, 0, 0, 0, 0, 0, -5, -5, -5,
+ 175, 0, 0, 0, 0, -5, 2, 0, 0, 0,
+ 0, 0, 0, -56, 0, -5, -5, -5, -5, -5,
+ -5, -5, -5, -5, -5, 0, 0, 0, 0, 0,
+ -5, -5, -5, 0, 0, 0, 0, 0, -5, 2,
+ 0, 0, 0, 0, 0, 1, -39, -5, -5, -5,
+ -5, -5, -5, -5, -5, 0, 0, 218, 57, 58,
59, 60, 61, 62, 63, 64, 65, 66, 0, 0,
- 0, -5, -5, 67, 68, 0, 0, 0, 0, 0,
+ -5, -5, 219, 179, 67, 68, 0, 0, 0, 0,
+ 0, 180, 0, 0, 2, 0, 3, 0, 0, 0,
+ 0, -13, 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, 0, 111, -13, 1, 0, -5, -5, -5, -5,
+ -5, -5, -5, -5, 0, 112, 57, 58, 59, 60,
+ 61, 62, 63, 64, 65, 66, 0, 0, 0, -5,
+ -5, 179, 67, 68, 0, 0, 0, 0, 0, 180,
0, 0, 0, 2, 0, 3, 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, 0, 199, 0, 0, 0, -69,
- -69, 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, 67,
- 68, 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, 0,
- 100, 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, 0,
- 102, 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, 0,
- 104, 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, 0,
- 106, 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, 0,
- 131, 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, 0,
- 189, 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, 0,
- 199, 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, 0,
- 244, 57, 58, 59, 60, 61, 62, 63, 64, 65,
- 66, 0, 0, 0, 0, 0, 67, 68
+ 96, 97, 98, 99, 100, 0, 212, 0, 0, 0,
+ -82, -82, 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, 67, 68, 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, 0, 101, 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, 0, 103, 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, 0, 105, 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, 0, 107, 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, 0, 132, 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, 0, 193, 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, 0, 212,
+ 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, 0,
+ 269, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 0, 0, 0, 0, 0, 0, 67, 68
};
static const yytype_int16 yycheck[] =
{
- 17, 14, 42, 43, 44, 45, 148, 12, 48, 113,
- 40, 12, 116, 204, 118, 175, 177, 240, 39, 41,
- 33, 31, 33, 127, 12, 13, 48, 48, 31, 32,
- 1, 43, 139, 256, 192, 139, 9, 198, 48, 44,
- 11, 232, 202, 44, 148, 16, 17, 18, 19, 20,
- 21, 22, 23, 24, 25, 197, 44, 215, 71, 166,
- 31, 32, 166, 36, 24, 32, 3, 38, 36, 37,
- 0, 31, 32, 38, 31, 49, 47, 48, 0, 1,
- 218, 3, 4, 5, 6, 7, 8, 9, 10, 26,
- 27, 108, 109, 197, 51, 145, 32, 43, 236, 129,
- 130, 36, 37, 43, 26, 27, 47, 48, 121, 159,
- 46, 49, 44, 44, 32, 44, 38, 51, 40, 13,
- 137, 28, 29, 45, 31, 32, 33, 34, 35, 44,
- 32, 171, 4, 5, 6, 7, 8, 9, 10, 48,
- 46, 181, 45, 160, 31, 44, 44, 48, 252, 45,
- 167, 43, 45, 50, 44, 172, 186, 45, 43, 263,
- 177, 191, 45, 43, 46, 43, 183, 43, 45, 43,
- 45, 50, 202, 43, 43, 192, 206, 11, 14, 47,
- 206, 198, 222, 48, 202, 263, 242, 204, 250, 3,
- -1, -1, -1, 233, -1, -1, -1, -1, 215, -1,
- -1, 218, -1, -1, -1, -1, -1, -1, -1, 249,
- 240, -1, 252, 230, -1, 232, -1, -1, -1, 236,
- -1, 1, 262, 263, -1, -1, 256, -1, -1, -1,
- -1, -1, -1, -1, 251, 15, 16, 17, 18, 19,
+ 17, 14, 149, 163, 42, 43, 44, 45, 217, 196,
+ 48, 114, 140, 40, 117, 163, 119, 12, 13, 12,
+ 33, 12, 182, 0, 1, 128, 3, 4, 5, 6,
+ 7, 8, 9, 10, 238, 178, 3, 140, 198, 167,
+ 32, 33, 190, 35, 231, 254, 149, 9, 32, 26,
+ 27, 46, 34, 46, 32, 46, 48, 261, 71, 26,
+ 27, 208, 33, 40, 167, 42, 32, 215, 211, 53,
+ 47, 219, 50, 146, 36, 265, 24, 180, 49, 239,
+ 45, 41, 48, 230, 32, 33, 0, 160, 33, 236,
+ 50, 281, 109, 110, 28, 29, 32, 33, 32, 33,
+ 34, 35, 36, 130, 131, 208, 43, 40, 48, 122,
+ 50, 37, 38, 50, 4, 5, 6, 7, 8, 9,
+ 10, 138, 37, 38, 45, 45, 51, 230, 51, 46,
+ 46, 53, 33, 236, 172, 46, 163, 13, 46, 33,
+ 49, 47, 46, 50, 161, 32, 46, 185, 47, 176,
+ 52, 168, 50, 45, 47, 46, 173, 45, 47, 45,
+ 11, 178, 47, 190, 202, 49, 45, 47, 195, 33,
+ 187, 49, 45, 48, 277, 49, 45, 47, 45, 196,
+ 52, 14, 45, 48, 50, 288, 215, 219, 215, 215,
+ 288, 267, 219, 220, 211, 275, 3, -1, -1, -1,
+ 217, -1, -1, -1, -1, 243, -1, -1, -1, -1,
+ -1, -1, 239, -1, 231, -1, -1, 255, -1, -1,
+ -1, 238, -1, -1, 15, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, 252, 274, 254, 265, 277,
+ 31, 32, 33, -1, 261, 1, -1, -1, 39, 287,
+ 288, -1, -1, -1, 281, 11, -1, -1, -1, 276,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ -1, -1, -1, -1, -1, 31, 32, 33, -1, -1,
+ -1, 1, -1, 39, 40, -1, -1, -1, -1, -1,
+ -1, -1, 48, -1, 50, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, -1, -1, -1, -1,
- 30, 31, 32, 1, -1, -1, -1, -1, 38, -1,
- -1, -1, -1, -1, -1, 45, -1, 15, 16, 17,
+ 30, 31, 32, 33, 1, -1, -1, -1, -1, 39,
+ 40, -1, -1, -1, -1, -1, -1, 47, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, -1,
+ -1, -1, -1, 30, 31, 32, 33, 1, -1, -1,
+ -1, -1, 39, 40, -1, -1, -1, -1, -1, -1,
+ 47, -1, 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, -1, -1, -1, -1, -1, 31, 32, 33,
+ 1, -1, -1, -1, -1, 39, 40, -1, -1, -1,
+ -1, -1, -1, 47, -1, 16, 17, 18, 19, 20,
+ 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
+ 31, 32, 33, -1, -1, -1, -1, -1, 39, 40,
+ -1, -1, -1, -1, -1, 1, 47, 3, 4, 5,
+ 6, 7, 8, 9, 10, -1, -1, 15, 16, 17,
18, 19, 20, 21, 22, 23, 24, 25, -1, -1,
- -1, -1, 30, 31, 32, 1, -1, -1, -1, -1,
- 38, -1, -1, -1, -1, -1, -1, 45, -1, -1,
- 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- -1, -1, -1, -1, -1, 31, 32, 1, -1, -1,
- -1, -1, 38, -1, -1, -1, -1, -1, -1, 45,
- -1, -1, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, -1, -1, -1, -1, -1, 31, 32, -1,
- -1, -1, -1, -1, 38, -1, -1, -1, -1, -1,
- 1, 45, 3, 4, 5, 6, 7, 8, 9, 10,
- -1, -1, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, -1, -1, 26, 27, 30, 31, 32,
- -1, -1, -1, -1, -1, -1, -1, 38, -1, 40,
- -1, -1, -1, -1, 45, 3, 4, 5, 6, 7,
+ 26, 27, 30, 31, 32, 33, -1, -1, -1, -1,
+ -1, 39, -1, -1, 40, -1, 42, -1, -1, -1,
+ -1, 47, 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, -1, 33, 0, 1, -1, 3, 4, 5, 6,
+ 7, 8, 9, 10, -1, 46, 16, 17, 18, 19,
+ 20, 21, 22, 23, 24, 25, -1, -1, -1, 26,
+ 27, 31, 32, 33, -1, -1, -1, -1, -1, 39,
+ -1, -1, -1, 40, -1, 42, 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, -1, 33, -1, -1, -1,
+ 37, 38, 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, 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, -1, 33, 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, -1, 33, 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, -1, 32, 0, 1, -1, 3, 4,
- 5, 6, 7, 8, 9, 10, 44, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, -1, -1,
- -1, 26, 27, 31, 32, -1, -1, -1, -1, -1,
- -1, -1, -1, 38, -1, 40, 3, 4, 5, 6,
+ 28, 29, 30, 31, -1, 33, 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, -1, 32, -1, -1, -1, 36,
- 37, 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, 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, -1,
- 32, 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, -1,
- 32, 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, -1,
- 32, 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, -1,
- 32, 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, -1,
- 32, 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, -1,
- 32, 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, -1,
- 32, 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, -1,
- 32, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, -1, -1, -1, -1, -1, 31, 32
+ 27, 28, 29, 30, 31, -1, 33, 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, -1, 33, 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, -1, 33, 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, -1, 33,
+ 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, -1,
+ 33, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+ 25, -1, -1, -1, -1, -1, -1, 32, 33
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 1, 38, 40, 53, 54, 55, 56, 43, 33,
- 113, 114, 114, 0, 57, 3, 26, 27, 60, 61,
- 64, 65, 72, 73, 78, 79, 92, 93, 101, 102,
- 104, 115, 117, 59, 113, 39, 48, 41, 56, 32,
- 55, 58, 4, 5, 6, 7, 8, 9, 10, 63,
- 71, 77, 91, 103, 56, 113, 62, 16, 17, 18,
- 19, 20, 21, 22, 23, 24, 25, 31, 32, 111,
- 112, 43, 3, 4, 5, 6, 7, 8, 9, 10,
+ 0, 1, 40, 42, 55, 56, 57, 58, 45, 34,
+ 118, 119, 119, 0, 59, 3, 26, 27, 62, 63,
+ 66, 67, 76, 77, 82, 83, 97, 98, 106, 107,
+ 109, 120, 122, 61, 118, 41, 50, 43, 58, 33,
+ 57, 60, 4, 5, 6, 7, 8, 9, 10, 65,
+ 75, 81, 96, 108, 58, 118, 64, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 32, 33, 116,
+ 117, 45, 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,
- 32, 118, 32, 118, 32, 118, 32, 118, 49, 49,
- 32, 44, 118, 12, 67, 74, 12, 81, 12, 96,
- 105, 44, 51, 32, 31, 51, 32, 46, 56, 55,
- 55, 32, 106, 107, 118, 111, 66, 44, 111, 13,
- 82, 24, 95, 111, 94, 44, 56, 32, 46, 28,
- 29, 33, 34, 35, 111, 116, 112, 112, 45, 48,
- 44, 1, 55, 75, 95, 80, 48, 44, 106, 45,
- 116, 50, 48, 106, 1, 55, 68, 43, 69, 76,
- 84, 112, 45, 44, 95, 1, 55, 97, 45, 32,
- 118, 55, 43, 70, 84, 45, 75, 46, 43, 32,
- 118, 1, 55, 83, 43, 15, 30, 85, 86, 87,
- 98, 112, 45, 112, 68, 43, 116, 75, 43, 84,
- 87, 90, 112, 45, 97, 85, 36, 37, 1, 11,
- 108, 109, 43, 50, 68, 83, 43, 36, 37, 47,
- 55, 47, 48, 97, 32, 118, 83, 89, 69, 112,
- 88, 108, 14, 110, 118, 110, 55, 99, 100, 111,
- 118, 69, 112, 48, 118, 99
+ 31, 33, 123, 33, 123, 33, 123, 33, 123, 51,
+ 51, 33, 46, 123, 12, 69, 78, 12, 85, 12,
+ 101, 110, 46, 53, 33, 32, 53, 33, 49, 58,
+ 57, 57, 33, 111, 112, 123, 116, 68, 46, 116,
+ 13, 86, 24, 100, 116, 99, 46, 58, 33, 49,
+ 28, 29, 34, 35, 36, 116, 121, 117, 117, 47,
+ 50, 46, 1, 57, 79, 100, 84, 50, 46, 111,
+ 47, 121, 52, 50, 111, 1, 57, 70, 45, 31,
+ 39, 71, 72, 80, 89, 117, 47, 46, 100, 1,
+ 57, 102, 47, 33, 123, 57, 45, 71, 72, 73,
+ 74, 88, 117, 47, 79, 35, 48, 116, 49, 71,
+ 117, 45, 33, 123, 1, 57, 87, 45, 15, 30,
+ 72, 90, 91, 92, 103, 117, 47, 117, 70, 71,
+ 49, 45, 123, 48, 48, 121, 49, 79, 45, 72,
+ 88, 92, 95, 117, 47, 102, 90, 117, 37, 38,
+ 1, 11, 113, 114, 45, 52, 121, 70, 121, 87,
+ 117, 45, 37, 38, 48, 57, 48, 50, 102, 33,
+ 123, 87, 94, 73, 117, 93, 113, 14, 115, 123,
+ 115, 57, 104, 105, 116, 123, 73, 117, 50, 123,
+ 104
};
#define yyerrok (yyerrstatus = 0)
@@ -989,9 +1025,18 @@ static const yytype_uint8 yystos[] =
/* 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. */
+ Once GCC version 2 has supplanted version 1, this can go. However,
+ YYFAIL appears to be in use. Nevertheless, it is formally deprecated
+ in Bison 2.4.2's NEWS entry, where a plan to phase it out is
+ discussed. */
#define YYFAIL goto yyerrlab
+#if defined YYFAIL
+ /* This is here to suppress warnings from the GCC cpp's
+ -Wunused-macros. Normally we don't worry about that warning, but
+ some users do, and we want to make it easy for users to remove
+ YYFAIL uses, which will produce warnings from Bison 2.5. */
+#endif
#define YYRECOVERING() (!!yyerrstatus)
@@ -1048,7 +1093,7 @@ while (YYID (0))
we won't break user code: when these are the locations we know. */
#ifndef YY_LOCATION_PRINT
-# if YYLTYPE_IS_TRIVIAL
+# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
# define YY_LOCATION_PRINT(File, Loc) \
fprintf (File, "%d.%d-%d.%d", \
(Loc).first_line, (Loc).first_column, \
@@ -1786,16 +1831,16 @@ yyreduce:
{
case 2:
-/* Line 1455 of yacc.c */
-#line 105 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 108 "../Slice/Grammar.y"
{
;}
break;
case 3:
-/* Line 1455 of yacc.c */
-#line 113 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 116 "../Slice/Grammar.y"
{
(yyval) = (yyvsp[(2) - (3)]);
;}
@@ -1803,8 +1848,8 @@ yyreduce:
case 4:
-/* Line 1455 of yacc.c */
-#line 122 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 125 "../Slice/Grammar.y"
{
(yyval) = (yyvsp[(2) - (3)]);
;}
@@ -1812,8 +1857,8 @@ yyreduce:
case 5:
-/* Line 1455 of yacc.c */
-#line 126 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 129 "../Slice/Grammar.y"
{
(yyval) = new StringListTok;
;}
@@ -1821,8 +1866,8 @@ yyreduce:
case 6:
-/* Line 1455 of yacc.c */
-#line 135 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 138 "../Slice/Grammar.y"
{
StringListTokPtr metaData = StringListTokPtr::dynamicCast((yyvsp[(1) - (1)]));
if(!metaData->v.empty())
@@ -1834,8 +1879,8 @@ yyreduce:
case 8:
-/* Line 1455 of yacc.c */
-#line 144 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 147 "../Slice/Grammar.y"
{
StringListTokPtr metaData = StringListTokPtr::dynamicCast((yyvsp[(1) - (2)]));
ContainedPtr contained = ContainedPtr::dynamicCast((yyvsp[(2) - (2)]));
@@ -1848,8 +1893,8 @@ yyreduce:
case 10:
-/* Line 1455 of yacc.c */
-#line 154 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 157 "../Slice/Grammar.y"
{
yyerrok;
;}
@@ -1857,8 +1902,8 @@ yyreduce:
case 12:
-/* Line 1455 of yacc.c */
-#line 159 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 162 "../Slice/Grammar.y"
{
unit->error("`;' missing after definition");
;}
@@ -1866,16 +1911,16 @@ yyreduce:
case 13:
-/* Line 1455 of yacc.c */
-#line 163 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 166 "../Slice/Grammar.y"
{
;}
break;
case 14:
-/* Line 1455 of yacc.c */
-#line 171 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 174 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0 || ModulePtr::dynamicCast((yyvsp[(1) - (1)])));
;}
@@ -1883,8 +1928,8 @@ yyreduce:
case 15:
-/* Line 1455 of yacc.c */
-#line 175 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 178 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0 || ClassDeclPtr::dynamicCast((yyvsp[(1) - (1)])));
;}
@@ -1892,8 +1937,8 @@ yyreduce:
case 16:
-/* Line 1455 of yacc.c */
-#line 179 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 182 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0 || ClassDefPtr::dynamicCast((yyvsp[(1) - (1)])));
;}
@@ -1901,8 +1946,8 @@ yyreduce:
case 17:
-/* Line 1455 of yacc.c */
-#line 183 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 186 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0 || ClassDeclPtr::dynamicCast((yyvsp[(1) - (1)])));
;}
@@ -1910,8 +1955,8 @@ yyreduce:
case 18:
-/* Line 1455 of yacc.c */
-#line 187 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 190 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0 || ClassDefPtr::dynamicCast((yyvsp[(1) - (1)])));
;}
@@ -1919,8 +1964,8 @@ yyreduce:
case 19:
-/* Line 1455 of yacc.c */
-#line 191 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 194 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0);
;}
@@ -1928,8 +1973,8 @@ yyreduce:
case 20:
-/* Line 1455 of yacc.c */
-#line 195 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 198 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0 || ExceptionPtr::dynamicCast((yyvsp[(1) - (1)])));
;}
@@ -1937,8 +1982,8 @@ yyreduce:
case 21:
-/* Line 1455 of yacc.c */
-#line 199 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 202 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0);
;}
@@ -1946,8 +1991,8 @@ yyreduce:
case 22:
-/* Line 1455 of yacc.c */
-#line 203 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 206 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0 || StructPtr::dynamicCast((yyvsp[(1) - (1)])));
;}
@@ -1955,8 +2000,8 @@ yyreduce:
case 23:
-/* Line 1455 of yacc.c */
-#line 207 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 210 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0 || SequencePtr::dynamicCast((yyvsp[(1) - (1)])));
;}
@@ -1964,8 +2009,8 @@ yyreduce:
case 24:
-/* Line 1455 of yacc.c */
-#line 211 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 214 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0 || DictionaryPtr::dynamicCast((yyvsp[(1) - (1)])));
;}
@@ -1973,8 +2018,8 @@ yyreduce:
case 25:
-/* Line 1455 of yacc.c */
-#line 215 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 218 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0 || EnumPtr::dynamicCast((yyvsp[(1) - (1)])));
;}
@@ -1982,8 +2027,8 @@ yyreduce:
case 26:
-/* Line 1455 of yacc.c */
-#line 219 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 222 "../Slice/Grammar.y"
{
assert((yyvsp[(1) - (1)]) == 0 || ConstPtr::dynamicCast((yyvsp[(1) - (1)])));
;}
@@ -1991,8 +2036,8 @@ yyreduce:
case 27:
-/* Line 1455 of yacc.c */
-#line 228 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 231 "../Slice/Grammar.y"
{
unit->setSeenDefinition();
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
@@ -2013,8 +2058,8 @@ yyreduce:
case 28:
-/* Line 1455 of yacc.c */
-#line 245 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 248 "../Slice/Grammar.y"
{
if((yyvsp[(3) - (6)]))
{
@@ -2030,8 +2075,8 @@ yyreduce:
case 29:
-/* Line 1455 of yacc.c */
-#line 262 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 265 "../Slice/Grammar.y"
{
(yyval) = (yyvsp[(2) - (2)]);
;}
@@ -2039,8 +2084,8 @@ yyreduce:
case 30:
-/* Line 1455 of yacc.c */
-#line 266 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 269 "../Slice/Grammar.y"
{
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
unit->error("keyword `" + ident->v + "' cannot be used as exception name");
@@ -2050,8 +2095,8 @@ yyreduce:
case 31:
-/* Line 1455 of yacc.c */
-#line 277 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 280 "../Slice/Grammar.y"
{
unit->error("exceptions cannot be forward declared");
(yyval) = 0;
@@ -2060,8 +2105,8 @@ yyreduce:
case 32:
-/* Line 1455 of yacc.c */
-#line 287 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 290 "../Slice/Grammar.y"
{
BoolTokPtr local = BoolTokPtr::dynamicCast((yyvsp[(1) - (3)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (3)]));
@@ -2079,8 +2124,8 @@ yyreduce:
case 33:
-/* Line 1455 of yacc.c */
-#line 301 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 304 "../Slice/Grammar.y"
{
if((yyvsp[(4) - (7)]))
{
@@ -2092,8 +2137,8 @@ yyreduce:
case 34:
-/* Line 1455 of yacc.c */
-#line 314 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 317 "../Slice/Grammar.y"
{
StringTokPtr scoped = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
ContainerPtr cont = unit->currentContainer();
@@ -2105,8 +2150,8 @@ yyreduce:
case 35:
-/* Line 1455 of yacc.c */
-#line 322 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 325 "../Slice/Grammar.y"
{
(yyval) = 0;
;}
@@ -2114,8 +2159,8 @@ yyreduce:
case 36:
-/* Line 1455 of yacc.c */
-#line 331 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 334 "../Slice/Grammar.y"
{
StringListTokPtr metaData = StringListTokPtr::dynamicCast((yyvsp[(1) - (4)]));
ContainedPtr contained = ContainedPtr::dynamicCast((yyvsp[(2) - (4)]));
@@ -2128,16 +2173,16 @@ yyreduce:
case 37:
-/* Line 1455 of yacc.c */
-#line 340 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 343 "../Slice/Grammar.y"
{
;}
break;
case 38:
-/* Line 1455 of yacc.c */
-#line 343 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 346 "../Slice/Grammar.y"
{
unit->error("`;' missing after definition");
;}
@@ -2145,16 +2190,16 @@ yyreduce:
case 39:
-/* Line 1455 of yacc.c */
-#line 347 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 350 "../Slice/Grammar.y"
{
;}
break;
case 40:
-/* Line 1455 of yacc.c */
-#line 355 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 358 "../Slice/Grammar.y"
{
TypePtr type = TypePtr::dynamicCast((yyvsp[(1) - (2)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
@@ -2164,19 +2209,173 @@ yyreduce:
;}
break;
+ case 41:
+
+/* Line 1464 of yacc.c */
+#line 371 "../Slice/Grammar.y"
+ {
+ IntegerTokPtr i = IntegerTokPtr::dynamicCast((yyvsp[(2) - (3)]));
+
+ int tag;
+ if(i->v < 0 || i->v > Int32Max)
+ {
+ unit->error("tag for optional is out of range");
+ tag = -1;
+ }
+ else
+ {
+ tag = static_cast<int>(i->v);
+ }
+
+ OptionalDefTokPtr m = new OptionalDefTok;
+ m->v.optional = tag >= 0;
+ m->v.tag = tag;
+ (yyval) = m;
+;}
+ break;
+
case 42:
-/* Line 1455 of yacc.c */
-#line 374 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 391 "../Slice/Grammar.y"
{
- (yyval) = (yyvsp[(2) - (2)]);
+ StringTokPtr scoped = StringTokPtr::dynamicCast((yyvsp[(2) - (3)]));
+
+ ContainerPtr cont = unit->currentContainer();
+ assert(cont);
+ ContainedList cl = cont->lookupContained(scoped->v);
+ if(cl.empty())
+ {
+ YYERROR; // Can't continue, jump to next yyerrok
+ }
+ cont->checkIntroduced(scoped->v);
+
+ int tag = -1;
+ EnumeratorPtr enumerator = EnumeratorPtr::dynamicCast(cl.front());
+ ConstPtr constant = ConstPtr::dynamicCast(cl.front());
+ if(constant)
+ {
+ BuiltinPtr b = BuiltinPtr::dynamicCast(constant->type());
+ if(b)
+ {
+ switch(b->kind())
+ {
+ case Builtin::KindByte:
+ case Builtin::KindShort:
+ case Builtin::KindInt:
+ case Builtin::KindLong:
+ {
+ IceUtil::Int64 l = IceUtilInternal::strToInt64(constant->value().c_str(), 0, 0);
+ if(l < 0 || l > Int32Max)
+ {
+ unit->error("tag for optional is out of range");
+ }
+ tag = static_cast<int>(l);
+ break;
+ }
+ default:
+ break;
+ }
+ }
+ }
+ else if(enumerator)
+ {
+ //
+ // TODO: When this code is merged with ICE-4619, we need to fix the
+ // loop below to consider the enumerator's value instead of its ordinal
+ // position.
+ //
+ EnumeratorList el = enumerator->type()->getEnumerators();
+ int i = 0;
+ for(EnumeratorList::iterator p = el.begin(); p != el.end(); ++p, ++i)
+ {
+ if(enumerator == *p)
+ {
+ break;
+ }
+ }
+ tag = i;
+ }
+
+ if(tag < 0)
+ {
+ unit->error("invalid tag `" + scoped->v + "' for optional");
+ }
+
+ OptionalDefTokPtr m = new OptionalDefTok;
+ m->v.optional = tag >= 0;
+ m->v.tag = tag;
+ (yyval) = m;
;}
break;
case 43:
-/* Line 1455 of yacc.c */
-#line 378 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 461 "../Slice/Grammar.y"
+ {
+ unit->error("missing tag for optional");
+ OptionalDefTokPtr m = new OptionalDefTok; // Dummy
+ m->v.optional = false;
+ m->v.tag = -1;
+ (yyval) = m;
+;}
+ break;
+
+ case 44:
+
+/* Line 1464 of yacc.c */
+#line 469 "../Slice/Grammar.y"
+ {
+ unit->error("missing tag for optional");
+ OptionalDefTokPtr m = new OptionalDefTok; // Dummy
+ m->v.optional = false;
+ m->v.tag = -1;
+ (yyval) = m;
+;}
+ break;
+
+ case 45:
+
+/* Line 1464 of yacc.c */
+#line 482 "../Slice/Grammar.y"
+ {
+ OptionalDefTokPtr m = OptionalDefTokPtr::dynamicCast((yyvsp[(1) - (2)]));
+ TypeStringTokPtr ts = TypeStringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
+ m->v.type = ts->v.first;
+ m->v.name = ts->v.second;
+ (yyval) = m;
+;}
+ break;
+
+ case 46:
+
+/* Line 1464 of yacc.c */
+#line 490 "../Slice/Grammar.y"
+ {
+ TypeStringTokPtr ts = TypeStringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
+ OptionalDefTokPtr m = new OptionalDefTok;
+ m->v.type = ts->v.first;
+ m->v.name = ts->v.second;
+ m->v.optional = false;
+ m->v.tag = -1;
+ (yyval) = m;
+;}
+ break;
+
+ case 48:
+
+/* Line 1464 of yacc.c */
+#line 511 "../Slice/Grammar.y"
+ {
+ (yyval) = (yyvsp[(2) - (2)]);
+;}
+ break;
+
+ case 49:
+
+/* Line 1464 of yacc.c */
+#line 515 "../Slice/Grammar.y"
{
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
unit->error("keyword `" + ident->v + "' cannot be used as struct name");
@@ -2184,20 +2383,20 @@ yyreduce:
;}
break;
- case 44:
+ case 50:
-/* Line 1455 of yacc.c */
-#line 389 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 526 "../Slice/Grammar.y"
{
unit->error("structs cannot be forward declared");
(yyval) = 0; // Dummy
;}
break;
- case 45:
+ case 51:
-/* Line 1455 of yacc.c */
-#line 399 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 536 "../Slice/Grammar.y"
{
BoolTokPtr local = BoolTokPtr::dynamicCast((yyvsp[(1) - (2)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
@@ -2212,10 +2411,10 @@ yyreduce:
;}
break;
- case 46:
+ case 52:
-/* Line 1455 of yacc.c */
-#line 412 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 549 "../Slice/Grammar.y"
{
if((yyvsp[(3) - (6)]))
{
@@ -2235,10 +2434,10 @@ yyreduce:
;}
break;
- case 47:
+ case 53:
-/* Line 1455 of yacc.c */
-#line 435 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 572 "../Slice/Grammar.y"
{
StringListTokPtr metaData = StringListTokPtr::dynamicCast((yyvsp[(1) - (4)]));
ContainedPtr contained = ContainedPtr::dynamicCast((yyvsp[(2) - (4)]));
@@ -2249,44 +2448,44 @@ yyreduce:
;}
break;
- case 48:
+ case 54:
-/* Line 1455 of yacc.c */
-#line 444 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 581 "../Slice/Grammar.y"
{
;}
break;
- case 49:
+ case 55:
-/* Line 1455 of yacc.c */
-#line 447 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 584 "../Slice/Grammar.y"
{
unit->error("`;' missing after definition");
;}
break;
- case 50:
+ case 56:
-/* Line 1455 of yacc.c */
-#line 451 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 588 "../Slice/Grammar.y"
{
;}
break;
- case 52:
+ case 58:
-/* Line 1455 of yacc.c */
-#line 465 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 602 "../Slice/Grammar.y"
{
(yyval) = (yyvsp[(2) - (2)]);
;}
break;
- case 53:
+ case 59:
-/* Line 1455 of yacc.c */
-#line 469 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 606 "../Slice/Grammar.y"
{
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
unit->error("keyword `" + ident->v + "' cannot be used as class name");
@@ -2294,10 +2493,10 @@ yyreduce:
;}
break;
- case 54:
+ case 60:
-/* Line 1455 of yacc.c */
-#line 480 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 617 "../Slice/Grammar.y"
{
BoolTokPtr local = BoolTokPtr::dynamicCast((yyvsp[(1) - (2)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
@@ -2307,10 +2506,10 @@ yyreduce:
;}
break;
- case 55:
+ case 61:
-/* Line 1455 of yacc.c */
-#line 493 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 630 "../Slice/Grammar.y"
{
BoolTokPtr local = BoolTokPtr::dynamicCast((yyvsp[(1) - (4)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (4)]));
@@ -2335,10 +2534,10 @@ yyreduce:
;}
break;
- case 56:
+ case 62:
-/* Line 1455 of yacc.c */
-#line 516 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 653 "../Slice/Grammar.y"
{
if((yyvsp[(5) - (8)]))
{
@@ -2352,10 +2551,10 @@ yyreduce:
;}
break;
- case 57:
+ case 63:
-/* Line 1455 of yacc.c */
-#line 533 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 670 "../Slice/Grammar.y"
{
StringTokPtr scoped = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
ContainerPtr cont = unit->currentContainer();
@@ -2391,37 +2590,37 @@ yyreduce:
;}
break;
- case 58:
+ case 64:
-/* Line 1455 of yacc.c */
-#line 567 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 704 "../Slice/Grammar.y"
{
(yyval) = 0;
;}
break;
- case 59:
+ case 65:
-/* Line 1455 of yacc.c */
-#line 576 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 713 "../Slice/Grammar.y"
{
(yyval) = (yyvsp[(2) - (2)]);
;}
break;
- case 60:
+ case 66:
-/* Line 1455 of yacc.c */
-#line 580 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 717 "../Slice/Grammar.y"
{
(yyval) = new ClassListTok;
;}
break;
- case 61:
+ case 67:
-/* Line 1455 of yacc.c */
-#line 589 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 726 "../Slice/Grammar.y"
{
StringListTokPtr metaData = StringListTokPtr::dynamicCast((yyvsp[(1) - (4)]));
ContainedPtr contained = ContainedPtr::dynamicCast((yyvsp[(2) - (4)]));
@@ -2432,162 +2631,277 @@ yyreduce:
;}
break;
- case 62:
+ case 68:
-/* Line 1455 of yacc.c */
-#line 598 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 735 "../Slice/Grammar.y"
{
;}
break;
- case 63:
+ case 69:
-/* Line 1455 of yacc.c */
-#line 601 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 738 "../Slice/Grammar.y"
{
unit->error("`;' missing after definition");
;}
break;
- case 64:
+ case 70:
-/* Line 1455 of yacc.c */
-#line 605 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 742 "../Slice/Grammar.y"
{
;}
break;
- case 65:
+ case 71:
-/* Line 1455 of yacc.c */
-#line 613 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 750 "../Slice/Grammar.y"
{
- TypePtr type = TypeStringTokPtr::dynamicCast((yyvsp[(1) - (1)]))->v.first;
- string name = TypeStringTokPtr::dynamicCast((yyvsp[(1) - (1)]))->v.second;
+ OptionalDefTokPtr def = OptionalDefTokPtr::dynamicCast((yyvsp[(1) - (1)]));
ClassDefPtr cl = ClassDefPtr::dynamicCast(unit->currentContainer());
DataMemberPtr dm;
if(cl)
{
- dm = cl->createDataMember(name, type, 0, "", "");
+ dm = cl->createDataMember(def->v.name, def->v.type, def->v.optional, def->v.tag, 0, "", "");
}
StructPtr st = StructPtr::dynamicCast(unit->currentContainer());
if(st)
{
- dm = st->createDataMember(name, type, 0, "", "");
+ dm = st->createDataMember(def->v.name, def->v.type, def->v.optional, def->v.tag, 0, "", "");
}
ExceptionPtr ex = ExceptionPtr::dynamicCast(unit->currentContainer());
if(ex)
{
- dm = ex->createDataMember(name, type, 0, "", "");
+ dm = ex->createDataMember(def->v.name, def->v.type, def->v.optional, def->v.tag, 0, "", "");
}
- unit->currentContainer()->checkIntroduced(name, dm);
+ unit->currentContainer()->checkIntroduced(def->v.name, dm);
(yyval) = dm;
;}
break;
- case 66:
+ case 72:
-/* Line 1455 of yacc.c */
-#line 636 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 772 "../Slice/Grammar.y"
{
- TypePtr type = TypeStringTokPtr::dynamicCast((yyvsp[(1) - (3)]))->v.first;
- string name = TypeStringTokPtr::dynamicCast((yyvsp[(1) - (3)]))->v.second;
+ OptionalDefTokPtr def = OptionalDefTokPtr::dynamicCast((yyvsp[(1) - (3)]));
ConstDefTokPtr value = ConstDefTokPtr::dynamicCast((yyvsp[(3) - (3)]));
ClassDefPtr cl = ClassDefPtr::dynamicCast(unit->currentContainer());
DataMemberPtr dm;
if(cl)
{
- dm = cl->createDataMember(name, type, value->v.value, value->v.valueAsString, value->v.valueAsLiteral);
+ dm = cl->createDataMember(def->v.name, def->v.type, def->v.optional, def->v.tag, value->v.value,
+ value->v.valueAsString, value->v.valueAsLiteral);
}
StructPtr st = StructPtr::dynamicCast(unit->currentContainer());
if(st)
{
- dm = st->createDataMember(name, type, value->v.value, value->v.valueAsString, value->v.valueAsLiteral);
+ dm = st->createDataMember(def->v.name, def->v.type, def->v.optional, def->v.tag, value->v.value,
+ value->v.valueAsString, value->v.valueAsLiteral);
}
ExceptionPtr ex = ExceptionPtr::dynamicCast(unit->currentContainer());
if(ex)
{
- dm = ex->createDataMember(name, type, value->v.value, value->v.valueAsString, value->v.valueAsLiteral);
+ dm = ex->createDataMember(def->v.name, def->v.type, def->v.optional, def->v.tag, value->v.value,
+ value->v.valueAsString, value->v.valueAsLiteral);
}
- unit->currentContainer()->checkIntroduced(name, dm);
+ unit->currentContainer()->checkIntroduced(def->v.name, dm);
(yyval) = dm;
;}
break;
- case 67:
+ case 73:
-/* Line 1455 of yacc.c */
-#line 661 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 799 "../Slice/Grammar.y"
{
TypePtr type = TypePtr::dynamicCast((yyvsp[(1) - (2)]));
string name = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]))->v;
ClassDefPtr cl = ClassDefPtr::dynamicCast(unit->currentContainer());
if(cl)
{
- (yyval) = cl->createDataMember(name, type, 0, "", ""); // Dummy
+ (yyval) = cl->createDataMember(name, type, false, 0, 0, "", ""); // Dummy
}
StructPtr st = StructPtr::dynamicCast(unit->currentContainer());
if(st)
{
- (yyval) = st->createDataMember(name, type, 0, "", ""); // Dummy
+ (yyval) = st->createDataMember(name, type, false, 0, 0, "", ""); // Dummy
}
ExceptionPtr ex = ExceptionPtr::dynamicCast(unit->currentContainer());
if(ex)
{
- (yyval) = ex->createDataMember(name, type, 0, "", ""); // Dummy
+ (yyval) = ex->createDataMember(name, type, false, 0, 0, "", ""); // Dummy
}
assert((yyval));
unit->error("keyword `" + name + "' cannot be used as data member name");
;}
break;
- case 68:
+ case 74:
-/* Line 1455 of yacc.c */
-#line 683 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 821 "../Slice/Grammar.y"
{
TypePtr type = TypePtr::dynamicCast((yyvsp[(1) - (1)]));
ClassDefPtr cl = ClassDefPtr::dynamicCast(unit->currentContainer());
if(cl)
{
- (yyval) = cl->createDataMember(IceUtil::generateUUID(), type, 0, "", ""); // Dummy
+ (yyval) = cl->createDataMember(IceUtil::generateUUID(), type, false, 0, 0, "", ""); // Dummy
}
StructPtr st = StructPtr::dynamicCast(unit->currentContainer());
if(st)
{
- (yyval) = st->createDataMember(IceUtil::generateUUID(), type, 0, "", ""); // Dummy
+ (yyval) = st->createDataMember(IceUtil::generateUUID(), type, false, 0, 0, "", ""); // Dummy
}
ExceptionPtr ex = ExceptionPtr::dynamicCast(unit->currentContainer());
if(ex)
{
- (yyval) = ex->createDataMember(IceUtil::generateUUID(), type, 0, "", ""); // Dummy
+ (yyval) = ex->createDataMember(IceUtil::generateUUID(), type, false, 0, 0, "", ""); // Dummy
}
assert((yyval));
unit->error("missing data member name");
;}
break;
- case 70:
+ case 75:
-/* Line 1455 of yacc.c */
-#line 710 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 847 "../Slice/Grammar.y"
{
- (yyval) = 0;
+ TypeStringTokPtr ts = TypeStringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
+ StructPtr st = StructPtr::dynamicCast(unit->currentContainer());
+ assert(st);
+ DataMemberPtr dm = st->createDataMember(ts->v.second, ts->v.first, false, -1, 0, "", "");
+ unit->currentContainer()->checkIntroduced(ts->v.second, dm);
+ (yyval) = dm;
;}
break;
- case 71:
+ case 76:
+
+/* Line 1464 of yacc.c */
+#line 856 "../Slice/Grammar.y"
+ {
+ TypeStringTokPtr ts = TypeStringTokPtr::dynamicCast((yyvsp[(1) - (3)]));
+ ConstDefTokPtr value = ConstDefTokPtr::dynamicCast((yyvsp[(3) - (3)]));
+ StructPtr st = StructPtr::dynamicCast(unit->currentContainer());
+ assert(st);
+ DataMemberPtr dm = st->createDataMember(ts->v.second, ts->v.first, false, -1, value->v.value,
+ value->v.valueAsString, value->v.valueAsLiteral);
+ unit->currentContainer()->checkIntroduced(ts->v.second, dm);
+ (yyval) = dm;
+;}
+ break;
+
+ case 77:
+
+/* Line 1464 of yacc.c */
+#line 867 "../Slice/Grammar.y"
+ {
+ TypeStringTokPtr ts = TypeStringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
+ StructPtr st = StructPtr::dynamicCast(unit->currentContainer());
+ assert(st);
+ (yyval) = st->createDataMember(ts->v.second, ts->v.first, false, 0, 0, "", ""); // Dummy
+ assert((yyval));
+ unit->error("optional data members not supported in struct");
+;}
+ break;
+
+ case 78:
+
+/* Line 1464 of yacc.c */
+#line 876 "../Slice/Grammar.y"
+ {
+ TypeStringTokPtr ts = TypeStringTokPtr::dynamicCast((yyvsp[(2) - (4)]));
+ StructPtr st = StructPtr::dynamicCast(unit->currentContainer());
+ assert(st);
+ (yyval) = st->createDataMember(ts->v.second, ts->v.first, false, 0, 0, "", ""); // Dummy
+ assert((yyval));
+ unit->error("optional data members not supported in struct");
+;}
+ break;
+
+ case 79:
-/* Line 1455 of yacc.c */
-#line 719 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 885 "../Slice/Grammar.y"
{
- TypePtr returnType = TypePtr::dynamicCast((yyvsp[(1) - (2)]));
+ TypePtr type = TypePtr::dynamicCast((yyvsp[(1) - (2)]));
+ string name = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]))->v;
+ StructPtr st = StructPtr::dynamicCast(unit->currentContainer());
+ assert(st);
+ (yyval) = st->createDataMember(name, type, false, 0, 0, "", ""); // Dummy
+ assert((yyval));
+ unit->error("keyword `" + name + "' cannot be used as data member name");
+;}
+ break;
+
+ case 80:
+
+/* Line 1464 of yacc.c */
+#line 895 "../Slice/Grammar.y"
+ {
+ TypePtr type = TypePtr::dynamicCast((yyvsp[(1) - (1)]));
+ StructPtr st = StructPtr::dynamicCast(unit->currentContainer());
+ assert(st);
+ (yyval) = st->createDataMember(IceUtil::generateUUID(), type, false, 0, 0, "", ""); // Dummy
+ assert((yyval));
+ unit->error("missing data member name");
+;}
+ break;
+
+ case 81:
+
+/* Line 1464 of yacc.c */
+#line 909 "../Slice/Grammar.y"
+ {
+ OptionalDefTokPtr m = OptionalDefTokPtr::dynamicCast((yyvsp[(1) - (2)]));
+ m->v.type = TypePtr::dynamicCast((yyvsp[(2) - (2)]));
+ (yyval) = m;
+;}
+ break;
+
+ case 82:
+
+/* Line 1464 of yacc.c */
+#line 915 "../Slice/Grammar.y"
+ {
+ OptionalDefTokPtr m = new OptionalDefTok();
+ m->v.type = TypePtr::dynamicCast((yyvsp[(1) - (1)]));
+ m->v.optional = false;
+ m->v.tag = -1;
+ (yyval) = m;
+;}
+ break;
+
+ case 83:
+
+/* Line 1464 of yacc.c */
+#line 923 "../Slice/Grammar.y"
+ {
+ OptionalDefTokPtr m = new OptionalDefTok;
+ m->v.optional = false;
+ m->v.tag = -1;
+ (yyval) = m;
+;}
+ break;
+
+ case 84:
+
+/* Line 1464 of yacc.c */
+#line 935 "../Slice/Grammar.y"
+ {
+ OptionalDefTokPtr returnType = OptionalDefTokPtr::dynamicCast((yyvsp[(1) - (2)]));
string name = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]))->v;
ClassDefPtr cl = ClassDefPtr::dynamicCast(unit->currentContainer());
if(cl)
{
- OperationPtr op = cl->createOperation(name, returnType);
+ OperationPtr op = cl->createOperation(name, returnType->v.type, returnType->v.optional, returnType->v.tag);
if(op)
{
cl->checkIntroduced(name, op);
@@ -2606,17 +2920,18 @@ yyreduce:
;}
break;
- case 72:
+ case 85:
-/* Line 1455 of yacc.c */
-#line 743 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 959 "../Slice/Grammar.y"
{
- TypePtr returnType = TypePtr::dynamicCast((yyvsp[(2) - (3)]));
+ OptionalDefTokPtr returnType = OptionalDefTokPtr::dynamicCast((yyvsp[(2) - (3)]));
string name = StringTokPtr::dynamicCast((yyvsp[(3) - (3)]))->v;
ClassDefPtr cl = ClassDefPtr::dynamicCast(unit->currentContainer());
if(cl)
{
- OperationPtr op = cl->createOperation(name, returnType, Operation::Idempotent);
+ OperationPtr op = cl->createOperation(name, returnType->v.type, returnType->v.optional, returnType->v.tag,
+ Operation::Idempotent);
if(op)
{
cl->checkIntroduced(name, op);
@@ -2635,17 +2950,17 @@ yyreduce:
;}
break;
- case 73:
+ case 86:
-/* Line 1455 of yacc.c */
-#line 767 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 984 "../Slice/Grammar.y"
{
- TypePtr returnType = TypePtr::dynamicCast((yyvsp[(1) - (2)]));
+ OptionalDefTokPtr returnType = OptionalDefTokPtr::dynamicCast((yyvsp[(1) - (2)]));
string name = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]))->v;
ClassDefPtr cl = ClassDefPtr::dynamicCast(unit->currentContainer());
if(cl)
{
- OperationPtr op = cl->createOperation(name, returnType);
+ OperationPtr op = cl->createOperation(name, returnType->v.type, returnType->v.optional, returnType->v.tag);
if(op)
{
unit->pushContainer(op);
@@ -2664,17 +2979,18 @@ yyreduce:
;}
break;
- case 74:
+ case 87:
-/* Line 1455 of yacc.c */
-#line 791 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1008 "../Slice/Grammar.y"
{
- TypePtr returnType = TypePtr::dynamicCast((yyvsp[(2) - (3)]));
+ OptionalDefTokPtr returnType = OptionalDefTokPtr::dynamicCast((yyvsp[(2) - (3)]));
string name = StringTokPtr::dynamicCast((yyvsp[(3) - (3)]))->v;
ClassDefPtr cl = ClassDefPtr::dynamicCast(unit->currentContainer());
if(cl)
{
- OperationPtr op = cl->createOperation(name, returnType, Operation::Idempotent);
+ OperationPtr op = cl->createOperation(name, returnType->v.type, returnType->v.optional, returnType->v.tag,
+ Operation::Idempotent);
if(op)
{
unit->pushContainer(op);
@@ -2693,10 +3009,10 @@ yyreduce:
;}
break;
- case 75:
+ case 88:
-/* Line 1455 of yacc.c */
-#line 820 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1038 "../Slice/Grammar.y"
{
if((yyvsp[(1) - (3)]))
{
@@ -2710,10 +3026,10 @@ yyreduce:
;}
break;
- case 76:
+ case 89:
-/* Line 1455 of yacc.c */
-#line 832 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1050 "../Slice/Grammar.y"
{
OperationPtr op = OperationPtr::dynamicCast((yyvsp[(4) - (5)]));
ExceptionListTokPtr el = ExceptionListTokPtr::dynamicCast((yyvsp[(5) - (5)]));
@@ -2725,10 +3041,10 @@ yyreduce:
;}
break;
- case 77:
+ case 90:
-/* Line 1455 of yacc.c */
-#line 842 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1060 "../Slice/Grammar.y"
{
if((yyvsp[(1) - (3)]))
{
@@ -2738,10 +3054,10 @@ yyreduce:
;}
break;
- case 78:
+ case 91:
-/* Line 1455 of yacc.c */
-#line 850 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1068 "../Slice/Grammar.y"
{
OperationPtr op = OperationPtr::dynamicCast((yyvsp[(4) - (5)]));
ExceptionListTokPtr el = ExceptionListTokPtr::dynamicCast((yyvsp[(5) - (5)]));
@@ -2753,19 +3069,19 @@ yyreduce:
;}
break;
- case 81:
+ case 94:
-/* Line 1455 of yacc.c */
-#line 872 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1090 "../Slice/Grammar.y"
{
(yyval) = (yyvsp[(2) - (2)]);
;}
break;
- case 82:
+ case 95:
-/* Line 1455 of yacc.c */
-#line 876 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1094 "../Slice/Grammar.y"
{
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
unit->error("keyword `" + ident->v + "' cannot be used as interface name");
@@ -2773,10 +3089,10 @@ yyreduce:
;}
break;
- case 83:
+ case 96:
-/* Line 1455 of yacc.c */
-#line 887 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1105 "../Slice/Grammar.y"
{
BoolTokPtr local = BoolTokPtr::dynamicCast((yyvsp[(1) - (2)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
@@ -2787,10 +3103,10 @@ yyreduce:
;}
break;
- case 84:
+ case 97:
-/* Line 1455 of yacc.c */
-#line 901 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1119 "../Slice/Grammar.y"
{
BoolTokPtr local = BoolTokPtr::dynamicCast((yyvsp[(1) - (3)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (3)]));
@@ -2810,10 +3126,10 @@ yyreduce:
;}
break;
- case 85:
+ case 98:
-/* Line 1455 of yacc.c */
-#line 919 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1137 "../Slice/Grammar.y"
{
if((yyvsp[(4) - (7)]))
{
@@ -2827,10 +3143,10 @@ yyreduce:
;}
break;
- case 86:
+ case 99:
-/* Line 1455 of yacc.c */
-#line 936 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1154 "../Slice/Grammar.y"
{
ClassListTokPtr intfs = ClassListTokPtr::dynamicCast((yyvsp[(3) - (3)]));
StringTokPtr scoped = StringTokPtr::dynamicCast((yyvsp[(1) - (3)]));
@@ -2867,10 +3183,10 @@ yyreduce:
;}
break;
- case 87:
+ case 100:
-/* Line 1455 of yacc.c */
-#line 971 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1189 "../Slice/Grammar.y"
{
ClassListTokPtr intfs = new ClassListTok;
StringTokPtr scoped = StringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
@@ -2907,38 +3223,38 @@ yyreduce:
;}
break;
- case 88:
+ case 101:
-/* Line 1455 of yacc.c */
-#line 1006 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1224 "../Slice/Grammar.y"
{
unit->error("illegal inheritance from type Object");
(yyval) = new ClassListTok; // Dummy
;}
break;
- case 89:
+ case 102:
-/* Line 1455 of yacc.c */
-#line 1016 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1234 "../Slice/Grammar.y"
{
(yyval) = (yyvsp[(2) - (2)]);
;}
break;
- case 90:
+ case 103:
-/* Line 1455 of yacc.c */
-#line 1020 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1238 "../Slice/Grammar.y"
{
(yyval) = new ClassListTok;
;}
break;
- case 91:
+ case 104:
-/* Line 1455 of yacc.c */
-#line 1029 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1247 "../Slice/Grammar.y"
{
StringListTokPtr metaData = StringListTokPtr::dynamicCast((yyvsp[(1) - (4)]));
ContainedPtr contained = ContainedPtr::dynamicCast((yyvsp[(2) - (4)]));
@@ -2949,35 +3265,35 @@ yyreduce:
;}
break;
- case 92:
+ case 105:
-/* Line 1455 of yacc.c */
-#line 1038 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1256 "../Slice/Grammar.y"
{
;}
break;
- case 93:
+ case 106:
-/* Line 1455 of yacc.c */
-#line 1041 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1259 "../Slice/Grammar.y"
{
unit->error("`;' missing after definition");
;}
break;
- case 94:
+ case 107:
-/* Line 1455 of yacc.c */
-#line 1045 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1263 "../Slice/Grammar.y"
{
;}
break;
- case 96:
+ case 109:
-/* Line 1455 of yacc.c */
-#line 1059 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1277 "../Slice/Grammar.y"
{
ExceptionPtr exception = ExceptionPtr::dynamicCast((yyvsp[(1) - (3)]));
ExceptionListTokPtr exceptionList = ExceptionListTokPtr::dynamicCast((yyvsp[(3) - (3)]));
@@ -2986,10 +3302,10 @@ yyreduce:
;}
break;
- case 97:
+ case 110:
-/* Line 1455 of yacc.c */
-#line 1066 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1284 "../Slice/Grammar.y"
{
ExceptionPtr exception = ExceptionPtr::dynamicCast((yyvsp[(1) - (1)]));
ExceptionListTokPtr exceptionList = new ExceptionListTok;
@@ -2998,10 +3314,10 @@ yyreduce:
;}
break;
- case 98:
+ case 111:
-/* Line 1455 of yacc.c */
-#line 1078 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1296 "../Slice/Grammar.y"
{
StringTokPtr scoped = StringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
ContainerPtr cont = unit->currentContainer();
@@ -3015,10 +3331,10 @@ yyreduce:
;}
break;
- case 99:
+ case 112:
-/* Line 1455 of yacc.c */
-#line 1090 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1308 "../Slice/Grammar.y"
{
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
unit->error("keyword `" + ident->v + "' cannot be used as exception name");
@@ -3026,10 +3342,10 @@ yyreduce:
;}
break;
- case 100:
+ case 113:
-/* Line 1455 of yacc.c */
-#line 1101 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1319 "../Slice/Grammar.y"
{
BoolTokPtr local = BoolTokPtr::dynamicCast((yyvsp[(1) - (7)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(7) - (7)]));
@@ -3040,10 +3356,10 @@ yyreduce:
;}
break;
- case 101:
+ case 114:
-/* Line 1455 of yacc.c */
-#line 1110 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1328 "../Slice/Grammar.y"
{
BoolTokPtr local = BoolTokPtr::dynamicCast((yyvsp[(1) - (7)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(7) - (7)]));
@@ -3055,10 +3371,10 @@ yyreduce:
;}
break;
- case 102:
+ case 115:
-/* Line 1455 of yacc.c */
-#line 1125 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1343 "../Slice/Grammar.y"
{
BoolTokPtr local = BoolTokPtr::dynamicCast((yyvsp[(1) - (10)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(10) - (10)]));
@@ -3071,10 +3387,10 @@ yyreduce:
;}
break;
- case 103:
+ case 116:
-/* Line 1455 of yacc.c */
-#line 1136 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1354 "../Slice/Grammar.y"
{
BoolTokPtr local = BoolTokPtr::dynamicCast((yyvsp[(1) - (10)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(10) - (10)]));
@@ -3088,19 +3404,19 @@ yyreduce:
;}
break;
- case 104:
+ case 117:
-/* Line 1455 of yacc.c */
-#line 1153 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1371 "../Slice/Grammar.y"
{
(yyval) = (yyvsp[(2) - (2)]);
;}
break;
- case 105:
+ case 118:
-/* Line 1455 of yacc.c */
-#line 1157 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1375 "../Slice/Grammar.y"
{
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
unit->error("keyword `" + ident->v + "' cannot be used as enumeration name");
@@ -3108,10 +3424,10 @@ yyreduce:
;}
break;
- case 106:
+ case 119:
-/* Line 1455 of yacc.c */
-#line 1168 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1386 "../Slice/Grammar.y"
{
BoolTokPtr local = BoolTokPtr::dynamicCast((yyvsp[(1) - (2)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
@@ -3122,10 +3438,10 @@ yyreduce:
;}
break;
- case 107:
+ case 120:
-/* Line 1455 of yacc.c */
-#line 1177 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1395 "../Slice/Grammar.y"
{
EnumPtr en = EnumPtr::dynamicCast((yyvsp[(3) - (6)]));
if(en)
@@ -3141,10 +3457,10 @@ yyreduce:
;}
break;
- case 108:
+ case 121:
-/* Line 1455 of yacc.c */
-#line 1192 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1410 "../Slice/Grammar.y"
{
unit->error("missing enumeration name");
BoolTokPtr local = BoolTokPtr::dynamicCast((yyvsp[(1) - (5)]));
@@ -3156,10 +3472,10 @@ yyreduce:
;}
break;
- case 109:
+ case 122:
-/* Line 1455 of yacc.c */
-#line 1207 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1425 "../Slice/Grammar.y"
{
EnumeratorListTokPtr ens = EnumeratorListTokPtr::dynamicCast((yyvsp[(1) - (3)]));
ens->v.splice(ens->v.end(), EnumeratorListTokPtr::dynamicCast((yyvsp[(3) - (3)]))->v);
@@ -3167,18 +3483,18 @@ yyreduce:
;}
break;
- case 110:
+ case 123:
-/* Line 1455 of yacc.c */
-#line 1213 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1431 "../Slice/Grammar.y"
{
;}
break;
- case 111:
+ case 124:
-/* Line 1455 of yacc.c */
-#line 1221 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1439 "../Slice/Grammar.y"
{
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
EnumeratorListTokPtr ens = new EnumeratorListTok;
@@ -3192,10 +3508,10 @@ yyreduce:
;}
break;
- case 112:
+ case 125:
-/* Line 1455 of yacc.c */
-#line 1233 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1451 "../Slice/Grammar.y"
{
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
unit->error("keyword `" + ident->v + "' cannot be used as enumerator");
@@ -3204,20 +3520,20 @@ yyreduce:
;}
break;
- case 113:
+ case 126:
-/* Line 1455 of yacc.c */
-#line 1240 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1458 "../Slice/Grammar.y"
{
EnumeratorListTokPtr ens = new EnumeratorListTok;
(yyval) = ens; // Dummy
;}
break;
- case 114:
+ case 127:
-/* Line 1455 of yacc.c */
-#line 1250 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1468 "../Slice/Grammar.y"
{
BoolTokPtr out = new BoolTok;
out->v = true;
@@ -3225,10 +3541,10 @@ yyreduce:
;}
break;
- case 115:
+ case 128:
-/* Line 1455 of yacc.c */
-#line 1256 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1474 "../Slice/Grammar.y"
{
BoolTokPtr out = new BoolTok;
out->v = false;
@@ -3236,28 +3552,26 @@ yyreduce:
;}
break;
- case 116:
+ case 129:
-/* Line 1455 of yacc.c */
-#line 1267 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1485 "../Slice/Grammar.y"
{
;}
break;
- case 117:
+ case 130:
-/* Line 1455 of yacc.c */
-#line 1270 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1488 "../Slice/Grammar.y"
{
BoolTokPtr isOutParam = BoolTokPtr::dynamicCast((yyvsp[(1) - (3)]));
- TypeStringTokPtr tsp = TypeStringTokPtr::dynamicCast((yyvsp[(3) - (3)]));
- TypePtr type = tsp->v.first;
- string ident = tsp->v.second;
+ OptionalDefTokPtr tsp = OptionalDefTokPtr::dynamicCast((yyvsp[(3) - (3)]));
OperationPtr op = OperationPtr::dynamicCast(unit->currentContainer());
if(op)
{
- ParamDeclPtr pd = op->createParamDecl(ident, type, isOutParam->v);
- unit->currentContainer()->checkIntroduced(ident, pd);
+ ParamDeclPtr pd = op->createParamDecl(tsp->v.name, tsp->v.type, isOutParam->v, tsp->v.optional, tsp->v.tag);
+ unit->currentContainer()->checkIntroduced(tsp->v.name, pd);
StringListTokPtr metaData = StringListTokPtr::dynamicCast((yyvsp[(2) - (3)]));
if(!metaData->v.empty())
{
@@ -3267,20 +3581,18 @@ yyreduce:
;}
break;
- case 118:
+ case 131:
-/* Line 1455 of yacc.c */
-#line 1288 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1504 "../Slice/Grammar.y"
{
BoolTokPtr isOutParam = BoolTokPtr::dynamicCast((yyvsp[(3) - (5)]));
- TypeStringTokPtr tsp = TypeStringTokPtr::dynamicCast((yyvsp[(5) - (5)]));
- TypePtr type = tsp->v.first;
- string ident = tsp->v.second;
+ OptionalDefTokPtr tsp = OptionalDefTokPtr::dynamicCast((yyvsp[(5) - (5)]));
OperationPtr op = OperationPtr::dynamicCast(unit->currentContainer());
if(op)
{
- ParamDeclPtr pd = op->createParamDecl(ident, type, isOutParam->v);
- unit->currentContainer()->checkIntroduced(ident, pd);
+ ParamDeclPtr pd = op->createParamDecl(tsp->v.name, tsp->v.type, isOutParam->v, tsp->v.optional, tsp->v.tag);
+ unit->currentContainer()->checkIntroduced(tsp->v.name, pd);
StringListTokPtr metaData = StringListTokPtr::dynamicCast((yyvsp[(4) - (5)]));
if(!metaData->v.empty())
{
@@ -3290,10 +3602,10 @@ yyreduce:
;}
break;
- case 119:
+ case 132:
-/* Line 1455 of yacc.c */
-#line 1306 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1520 "../Slice/Grammar.y"
{
BoolTokPtr isOutParam = BoolTokPtr::dynamicCast((yyvsp[(1) - (4)]));
TypePtr type = TypePtr::dynamicCast((yyvsp[(3) - (4)]));
@@ -3301,16 +3613,16 @@ yyreduce:
OperationPtr op = OperationPtr::dynamicCast(unit->currentContainer());
if(op)
{
- op->createParamDecl(ident->v, type, isOutParam->v); // Dummy
+ op->createParamDecl(ident->v, type, isOutParam->v, false, 0); // Dummy
unit->error("keyword `" + ident->v + "' cannot be used as parameter name");
}
;}
break;
- case 120:
+ case 133:
-/* Line 1455 of yacc.c */
-#line 1318 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1532 "../Slice/Grammar.y"
{
BoolTokPtr isOutParam = BoolTokPtr::dynamicCast((yyvsp[(3) - (6)]));
TypePtr type = TypePtr::dynamicCast((yyvsp[(5) - (6)]));
@@ -3318,74 +3630,74 @@ yyreduce:
OperationPtr op = OperationPtr::dynamicCast(unit->currentContainer());
if(op)
{
- op->createParamDecl(ident->v, type, isOutParam->v); // Dummy
+ op->createParamDecl(ident->v, type, isOutParam->v, false, 0); // Dummy
unit->error("keyword `" + ident->v + "' cannot be used as parameter name");
}
;}
break;
- case 121:
+ case 134:
-/* Line 1455 of yacc.c */
-#line 1330 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1544 "../Slice/Grammar.y"
{
BoolTokPtr isOutParam = BoolTokPtr::dynamicCast((yyvsp[(1) - (3)]));
TypePtr type = TypePtr::dynamicCast((yyvsp[(3) - (3)]));
OperationPtr op = OperationPtr::dynamicCast(unit->currentContainer());
if(op)
{
- op->createParamDecl(IceUtil::generateUUID(), type, isOutParam->v); // Dummy
+ op->createParamDecl(IceUtil::generateUUID(), type, isOutParam->v, false, 0); // Dummy
unit->error("missing parameter name");
}
;}
break;
- case 122:
+ case 135:
-/* Line 1455 of yacc.c */
-#line 1341 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1555 "../Slice/Grammar.y"
{
BoolTokPtr isOutParam = BoolTokPtr::dynamicCast((yyvsp[(3) - (5)]));
TypePtr type = TypePtr::dynamicCast((yyvsp[(5) - (5)]));
OperationPtr op = OperationPtr::dynamicCast(unit->currentContainer());
if(op)
{
- op->createParamDecl(IceUtil::generateUUID(), type, isOutParam->v); // Dummy
+ op->createParamDecl(IceUtil::generateUUID(), type, isOutParam->v, false, 0); // Dummy
unit->error("missing parameter name");
}
;}
break;
- case 123:
+ case 136:
-/* Line 1455 of yacc.c */
-#line 1357 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1571 "../Slice/Grammar.y"
{
(yyval) = (yyvsp[(2) - (2)]);
;}
break;
- case 124:
+ case 137:
-/* Line 1455 of yacc.c */
-#line 1361 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1575 "../Slice/Grammar.y"
{
(yyval) = new ExceptionListTok;
;}
break;
- case 125:
+ case 138:
-/* Line 1455 of yacc.c */
-#line 1370 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1584 "../Slice/Grammar.y"
{
;}
break;
- case 126:
+ case 139:
-/* Line 1455 of yacc.c */
-#line 1373 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1587 "../Slice/Grammar.y"
{
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
ident->v = "::" + ident->v;
@@ -3393,10 +3705,10 @@ yyreduce:
;}
break;
- case 127:
+ case 140:
-/* Line 1455 of yacc.c */
-#line 1379 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1593 "../Slice/Grammar.y"
{
StringTokPtr scoped = StringTokPtr::dynamicCast((yyvsp[(1) - (3)]));
StringTokPtr ident = StringTokPtr::dynamicCast((yyvsp[(3) - (3)]));
@@ -3406,109 +3718,109 @@ yyreduce:
;}
break;
- case 128:
+ case 141:
-/* Line 1455 of yacc.c */
-#line 1392 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1606 "../Slice/Grammar.y"
{
(yyval) = unit->builtin(Builtin::KindByte);
;}
break;
- case 129:
+ case 142:
-/* Line 1455 of yacc.c */
-#line 1396 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1610 "../Slice/Grammar.y"
{
(yyval) = unit->builtin(Builtin::KindBool);
;}
break;
- case 130:
+ case 143:
-/* Line 1455 of yacc.c */
-#line 1400 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1614 "../Slice/Grammar.y"
{
(yyval) = unit->builtin(Builtin::KindShort);
;}
break;
- case 131:
+ case 144:
-/* Line 1455 of yacc.c */
-#line 1404 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1618 "../Slice/Grammar.y"
{
(yyval) = unit->builtin(Builtin::KindInt);
;}
break;
- case 132:
+ case 145:
-/* Line 1455 of yacc.c */
-#line 1408 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1622 "../Slice/Grammar.y"
{
(yyval) = unit->builtin(Builtin::KindLong);
;}
break;
- case 133:
+ case 146:
-/* Line 1455 of yacc.c */
-#line 1412 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1626 "../Slice/Grammar.y"
{
(yyval) = unit->builtin(Builtin::KindFloat);
;}
break;
- case 134:
+ case 147:
-/* Line 1455 of yacc.c */
-#line 1416 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1630 "../Slice/Grammar.y"
{
(yyval) = unit->builtin(Builtin::KindDouble);
;}
break;
- case 135:
+ case 148:
-/* Line 1455 of yacc.c */
-#line 1420 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1634 "../Slice/Grammar.y"
{
(yyval) = unit->builtin(Builtin::KindString);
;}
break;
- case 136:
+ case 149:
-/* Line 1455 of yacc.c */
-#line 1424 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1638 "../Slice/Grammar.y"
{
(yyval) = unit->builtin(Builtin::KindObject);
;}
break;
- case 137:
+ case 150:
-/* Line 1455 of yacc.c */
-#line 1428 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1642 "../Slice/Grammar.y"
{
(yyval) = unit->builtin(Builtin::KindObjectProxy);
;}
break;
- case 138:
+ case 151:
-/* Line 1455 of yacc.c */
-#line 1432 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1646 "../Slice/Grammar.y"
{
(yyval) = unit->builtin(Builtin::KindLocalObject);
;}
break;
- case 139:
+ case 152:
-/* Line 1455 of yacc.c */
-#line 1436 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1650 "../Slice/Grammar.y"
{
StringTokPtr scoped = StringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
ContainerPtr cont = unit->currentContainer();
@@ -3529,10 +3841,10 @@ yyreduce:
;}
break;
- case 140:
+ case 153:
-/* Line 1455 of yacc.c */
-#line 1455 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1669 "../Slice/Grammar.y"
{
StringTokPtr scoped = StringTokPtr::dynamicCast((yyvsp[(1) - (2)]));
ContainerPtr cont = unit->currentContainer();
@@ -3570,10 +3882,10 @@ yyreduce:
;}
break;
- case 141:
+ case 154:
-/* Line 1455 of yacc.c */
-#line 1496 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1710 "../Slice/Grammar.y"
{
StringTokPtr str1 = StringTokPtr::dynamicCast((yyvsp[(1) - (2)]));
StringTokPtr str2 = StringTokPtr::dynamicCast((yyvsp[(2) - (2)]));
@@ -3581,18 +3893,18 @@ yyreduce:
;}
break;
- case 142:
+ case 155:
-/* Line 1455 of yacc.c */
-#line 1502 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1716 "../Slice/Grammar.y"
{
;}
break;
- case 143:
+ case 156:
-/* Line 1455 of yacc.c */
-#line 1510 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1724 "../Slice/Grammar.y"
{
StringTokPtr str = StringTokPtr::dynamicCast((yyvsp[(3) - (3)]));
StringListTokPtr stringList = StringListTokPtr::dynamicCast((yyvsp[(1) - (3)]));
@@ -3601,10 +3913,10 @@ yyreduce:
;}
break;
- case 144:
+ case 157:
-/* Line 1455 of yacc.c */
-#line 1517 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1731 "../Slice/Grammar.y"
{
StringTokPtr str = StringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
StringListTokPtr stringList = new StringListTok;
@@ -3613,10 +3925,10 @@ yyreduce:
;}
break;
- case 145:
+ case 158:
-/* Line 1455 of yacc.c */
-#line 1529 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1743 "../Slice/Grammar.y"
{
BoolTokPtr local = new BoolTok;
local->v = true;
@@ -3624,10 +3936,10 @@ yyreduce:
;}
break;
- case 146:
+ case 159:
-/* Line 1455 of yacc.c */
-#line 1535 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1749 "../Slice/Grammar.y"
{
BoolTokPtr local = new BoolTok;
local->v = false;
@@ -3635,10 +3947,10 @@ yyreduce:
;}
break;
- case 147:
+ case 160:
-/* Line 1455 of yacc.c */
-#line 1546 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1760 "../Slice/Grammar.y"
{
BuiltinPtr type = unit->builtin(Builtin::KindLong);
IntegerTokPtr intVal = IntegerTokPtr::dynamicCast((yyvsp[(1) - (1)]));
@@ -3653,10 +3965,10 @@ yyreduce:
;}
break;
- case 148:
+ case 161:
-/* Line 1455 of yacc.c */
-#line 1559 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1773 "../Slice/Grammar.y"
{
BuiltinPtr type = unit->builtin(Builtin::KindDouble);
FloatingTokPtr floatVal = FloatingTokPtr::dynamicCast((yyvsp[(1) - (1)]));
@@ -3671,10 +3983,10 @@ yyreduce:
;}
break;
- case 149:
+ case 162:
-/* Line 1455 of yacc.c */
-#line 1572 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1786 "../Slice/Grammar.y"
{
StringTokPtr scoped = StringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
ConstDefTokPtr def = new ConstDefTok;
@@ -3722,10 +4034,10 @@ yyreduce:
;}
break;
- case 150:
+ case 163:
-/* Line 1455 of yacc.c */
-#line 1618 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1832 "../Slice/Grammar.y"
{
BuiltinPtr type = unit->builtin(Builtin::KindString);
StringTokPtr literal = StringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
@@ -3738,10 +4050,10 @@ yyreduce:
;}
break;
- case 151:
+ case 164:
-/* Line 1455 of yacc.c */
-#line 1629 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1843 "../Slice/Grammar.y"
{
BuiltinPtr type = unit->builtin(Builtin::KindBool);
StringTokPtr literal = StringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
@@ -3754,10 +4066,10 @@ yyreduce:
;}
break;
- case 152:
+ case 165:
-/* Line 1455 of yacc.c */
-#line 1640 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1854 "../Slice/Grammar.y"
{
BuiltinPtr type = unit->builtin(Builtin::KindBool);
StringTokPtr literal = StringTokPtr::dynamicCast((yyvsp[(1) - (1)]));
@@ -3770,10 +4082,10 @@ yyreduce:
;}
break;
- case 153:
+ case 166:
-/* Line 1455 of yacc.c */
-#line 1656 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1870 "../Slice/Grammar.y"
{
StringListTokPtr metaData = StringListTokPtr::dynamicCast((yyvsp[(2) - (6)]));
TypePtr const_type = TypePtr::dynamicCast((yyvsp[(3) - (6)]));
@@ -3784,10 +4096,10 @@ yyreduce:
;}
break;
- case 154:
+ case 167:
-/* Line 1455 of yacc.c */
-#line 1665 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1879 "../Slice/Grammar.y"
{
StringListTokPtr metaData = StringListTokPtr::dynamicCast((yyvsp[(2) - (5)]));
TypePtr const_type = TypePtr::dynamicCast((yyvsp[(3) - (5)]));
@@ -3798,234 +4110,242 @@ yyreduce:
;}
break;
- case 155:
+ case 168:
-/* Line 1455 of yacc.c */
-#line 1679 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1893 "../Slice/Grammar.y"
{
;}
break;
- case 156:
+ case 169:
-/* Line 1455 of yacc.c */
-#line 1682 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1896 "../Slice/Grammar.y"
{
;}
break;
- case 157:
+ case 170:
-/* Line 1455 of yacc.c */
-#line 1685 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1899 "../Slice/Grammar.y"
{
;}
break;
- case 158:
+ case 171:
-/* Line 1455 of yacc.c */
-#line 1688 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1902 "../Slice/Grammar.y"
{
;}
break;
- case 159:
+ case 172:
-/* Line 1455 of yacc.c */
-#line 1691 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1905 "../Slice/Grammar.y"
{
;}
break;
- case 160:
+ case 173:
-/* Line 1455 of yacc.c */
-#line 1694 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1908 "../Slice/Grammar.y"
{
;}
break;
- case 161:
+ case 174:
-/* Line 1455 of yacc.c */
-#line 1697 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1911 "../Slice/Grammar.y"
{
;}
break;
- case 162:
+ case 175:
-/* Line 1455 of yacc.c */
-#line 1700 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1914 "../Slice/Grammar.y"
{
;}
break;
- case 163:
+ case 176:
-/* Line 1455 of yacc.c */
-#line 1703 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1917 "../Slice/Grammar.y"
{
;}
break;
- case 164:
+ case 177:
-/* Line 1455 of yacc.c */
-#line 1706 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1920 "../Slice/Grammar.y"
{
;}
break;
- case 165:
+ case 178:
-/* Line 1455 of yacc.c */
-#line 1709 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1923 "../Slice/Grammar.y"
{
;}
break;
- case 166:
+ case 179:
-/* Line 1455 of yacc.c */
-#line 1712 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1926 "../Slice/Grammar.y"
{
;}
break;
- case 167:
+ case 180:
-/* Line 1455 of yacc.c */
-#line 1715 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1929 "../Slice/Grammar.y"
{
;}
break;
- case 168:
+ case 181:
-/* Line 1455 of yacc.c */
-#line 1718 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1932 "../Slice/Grammar.y"
{
;}
break;
- case 169:
+ case 182:
-/* Line 1455 of yacc.c */
-#line 1721 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1935 "../Slice/Grammar.y"
{
;}
break;
- case 170:
+ case 183:
-/* Line 1455 of yacc.c */
-#line 1724 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1938 "../Slice/Grammar.y"
{
;}
break;
- case 171:
+ case 184:
-/* Line 1455 of yacc.c */
-#line 1727 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1941 "../Slice/Grammar.y"
{
;}
break;
- case 172:
+ case 185:
-/* Line 1455 of yacc.c */
-#line 1730 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1944 "../Slice/Grammar.y"
{
;}
break;
- case 173:
+ case 186:
-/* Line 1455 of yacc.c */
-#line 1733 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1947 "../Slice/Grammar.y"
{
;}
break;
- case 174:
+ case 187:
-/* Line 1455 of yacc.c */
-#line 1736 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1950 "../Slice/Grammar.y"
{
;}
break;
- case 175:
+ case 188:
-/* Line 1455 of yacc.c */
-#line 1739 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1953 "../Slice/Grammar.y"
{
;}
break;
- case 176:
+ case 189:
-/* Line 1455 of yacc.c */
-#line 1742 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1956 "../Slice/Grammar.y"
{
;}
break;
- case 177:
+ case 190:
-/* Line 1455 of yacc.c */
-#line 1745 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1959 "../Slice/Grammar.y"
{
;}
break;
- case 178:
+ case 191:
-/* Line 1455 of yacc.c */
-#line 1748 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1962 "../Slice/Grammar.y"
{
;}
break;
- case 179:
+ case 192:
-/* Line 1455 of yacc.c */
-#line 1751 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1965 "../Slice/Grammar.y"
{
;}
break;
- case 180:
+ case 193:
-/* Line 1455 of yacc.c */
-#line 1754 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1968 "../Slice/Grammar.y"
{
;}
break;
- case 181:
+ case 194:
-/* Line 1455 of yacc.c */
-#line 1757 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1971 "../Slice/Grammar.y"
{
;}
break;
- case 182:
+ case 195:
-/* Line 1455 of yacc.c */
-#line 1760 "../Slice/Grammar.y"
+/* Line 1464 of yacc.c */
+#line 1974 "../Slice/Grammar.y"
+ {
+;}
+ break;
+
+ case 196:
+
+/* Line 1464 of yacc.c */
+#line 1977 "../Slice/Grammar.y"
{
;}
break;
-/* Line 1455 of yacc.c */
-#line 4029 "Grammar.tab.c"
+/* Line 1464 of yacc.c */
+#line 4349 "Grammar.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -4236,7 +4556,7 @@ yyreturn:
-/* Line 1675 of yacc.c */
-#line 1764 "../Slice/Grammar.y"
+/* Line 1684 of yacc.c */
+#line 1981 "../Slice/Grammar.y"