*yy_cp = '\0'; \
yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 61
-#define YY_END_OF_BUFFER 62
-static yyconst short int yy_acclist[117] =
+#define YY_NUM_RULES 59
+#define YY_END_OF_BUFFER 60
+static yyconst short int yy_acclist[115] =
{ 0,
- 62, 60, 61, 59, 60, 61, 59, 61, 60, 61,
- 60, 61, 60, 61, 8, 60, 61, 54, 60, 61,
- 1, 60, 61, 60, 61, 60, 61, 60, 61, 60,
- 61, 60, 61, 60, 61, 60, 61, 60, 61, 60,
- 61, 60, 61, 60, 61, 60, 61, 60, 61, 60,
- 61, 60, 61, 60, 61, 60, 61, 52, 51, 56,
- 55, 58, 54, 1, 9, 43, 36, 53, 51, 57,
- 58, 25, 28, 3, 16, 27, 24, 37, 29, 42,
- 40, 41, 26, 11, 38, 39, 47, 48, 18, 4,
- 22, 17, 10, 2, 5, 20, 23, 12, 31, 35,
-
- 33, 34, 32, 30, 14, 49, 13, 19, 46, 21,
- 45, 44, 15, 6, 50, 7
+ 60, 58, 59, 57, 58, 59, 57, 59, 58, 59,
+ 58, 59, 58, 59, 58, 59, 52, 58, 59, 1,
+ 58, 59, 58, 59, 58, 59, 58, 59, 58, 59,
+ 58, 59, 58, 59, 58, 59, 58, 59, 58, 59,
+ 58, 59, 58, 59, 58, 59, 58, 59, 58, 59,
+ 58, 59, 58, 59, 58, 59, 50, 49, 54, 53,
+ 56, 52, 1, 41, 34, 51, 49, 55, 56, 23,
+ 26, 3, 14, 25, 22, 35, 27, 40, 38, 39,
+ 24, 9, 36, 37, 45, 46, 16, 4, 20, 15,
+ 8, 2, 5, 18, 21, 10, 29, 33, 31, 32,
+
+ 30, 28, 12, 47, 11, 17, 44, 19, 43, 42,
+ 13, 6, 48, 7
} ;
-static yyconst short int yy_accept[202] =
+static yyconst short int yy_accept[201] =
{ 0,
1, 1, 1, 2, 4, 7, 9, 11, 13, 15,
- 18, 21, 24, 26, 28, 30, 32, 34, 36, 38,
- 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
- 58, 58, 59, 60, 60, 61, 62, 63, 64, 65,
- 65, 65, 66, 66, 66, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 67, 67, 67, 67, 67, 67, 67, 67, 67, 67,
- 68, 68, 68, 68, 68, 68, 68, 68, 69, 70,
- 71, 72, 73, 73, 73, 73, 73, 73, 73, 74,
- 74, 75, 75, 75, 75, 75, 75, 76, 76, 76,
-
- 76, 76, 77, 78, 79, 80, 81, 81, 81, 82,
- 82, 83, 83, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 85, 86, 87, 87, 87, 87,
- 87, 88, 88, 88, 88, 89, 90, 90, 90, 90,
- 90, 90, 90, 90, 90, 90, 91, 92, 92, 93,
- 93, 93, 94, 94, 95, 95, 95, 96, 97, 97,
- 97, 98, 98, 99, 100, 101, 102, 103, 104, 105,
- 106, 107, 107, 108, 109, 109, 110, 110, 111, 111,
- 111, 112, 113, 114, 115, 115, 115, 115, 115, 115,
- 115, 115, 115, 115, 115, 115, 115, 116, 116, 117,
-
- 117
+ 17, 20, 23, 25, 27, 29, 31, 33, 35, 37,
+ 39, 41, 43, 45, 47, 49, 51, 53, 55, 57,
+ 57, 57, 58, 59, 59, 60, 61, 62, 63, 64,
+ 64, 64, 64, 64, 65, 65, 65, 65, 65, 65,
+ 65, 65, 65, 65, 65, 65, 65, 65, 65, 65,
+ 65, 65, 65, 65, 65, 65, 65, 65, 65, 66,
+ 66, 66, 66, 66, 66, 66, 66, 67, 68, 69,
+ 70, 71, 71, 71, 71, 71, 71, 71, 72, 72,
+ 73, 73, 73, 73, 73, 73, 74, 74, 74, 74,
+
+ 74, 75, 76, 77, 78, 79, 79, 79, 80, 80,
+ 81, 81, 82, 82, 82, 82, 82, 82, 82, 82,
+ 82, 82, 82, 83, 84, 85, 85, 85, 85, 85,
+ 86, 86, 86, 86, 87, 88, 88, 88, 88, 88,
+ 88, 88, 88, 88, 88, 89, 90, 90, 91, 91,
+ 91, 92, 92, 93, 93, 93, 94, 95, 95, 95,
+ 96, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 105, 106, 107, 107, 108, 108, 109, 109, 109,
+ 110, 111, 112, 113, 113, 113, 113, 113, 113, 113,
+ 113, 113, 113, 113, 113, 113, 114, 114, 115, 115
+
} ;
static yyconst int yy_ec[256] =
4, 4, 4
} ;
-static yyconst short int yy_base[206] =
+static yyconst short int yy_base[205] =
{ 0,
- 0, 0, 398, 399, 399, 399, 0, 387, 27, 387,
- 29, 0, 25, 37, 31, 32, 34, 39, 49, 45,
- 59, 60, 52, 35, 63, 81, 53, 104, 64, 391,
- 384, 399, 0, 384, 383, 382, 72, 93, 0, 74,
- 75, 380, 77, 68, 379, 88, 94, 89, 96, 97,
- 108, 95, 105, 112, 113, 117, 118, 124, 123, 127,
- 120, 125, 129, 130, 132, 133, 140, 142, 146, 378,
- 143, 149, 152, 155, 157, 158, 159, 399, 0, 378,
- 161, 376, 162, 170, 166, 172, 165, 174, 375, 178,
- 374, 65, 186, 173, 187, 189, 373, 190, 192, 191,
-
- 194, 372, 371, 370, 369, 368, 182, 206, 367, 198,
- 366, 203, 365, 202, 204, 207, 208, 209, 211, 216,
- 218, 222, 225, 364, 363, 362, 229, 232, 233, 234,
- 361, 235, 236, 237, 360, 359, 240, 241, 244, 245,
- 249, 250, 252, 257, 258, 358, 357, 259, 356, 261,
- 266, 355, 270, 354, 267, 273, 353, 352, 274, 275,
- 351, 277, 350, 349, 348, 347, 346, 345, 340, 335,
- 330, 276, 326, 325, 278, 320, 282, 319, 286, 289,
- 318, 317, 311, 310, 290, 291, 292, 293, 294, 299,
- 300, 302, 303, 306, 307, 309, 308, 314, 195, 399,
-
- 337, 340, 343, 348, 54
+ 0, 0, 396, 397, 397, 397, 0, 385, 27, 385,
+ 29, 0, 25, 31, 32, 33, 38, 42, 35, 49,
+ 50, 54, 46, 57, 63, 75, 65, 98, 58, 389,
+ 382, 397, 0, 382, 381, 380, 68, 87, 0, 71,
+ 80, 92, 89, 378, 93, 73, 96, 70, 102, 99,
+ 105, 106, 113, 40, 114, 115, 121, 120, 124, 122,
+ 126, 125, 127, 128, 129, 138, 139, 145, 377, 148,
+ 149, 130, 154, 151, 157, 159, 397, 0, 377, 161,
+ 375, 156, 162, 163, 171, 158, 173, 374, 175, 373,
+ 176, 179, 180, 183, 185, 372, 187, 190, 191, 192,
+
+ 371, 370, 369, 368, 367, 188, 208, 366, 198, 365,
+ 200, 364, 201, 204, 205, 206, 209, 213, 218, 197,
+ 223, 222, 363, 362, 361, 229, 230, 233, 224, 360,
+ 234, 236, 237, 359, 358, 238, 240, 244, 247, 249,
+ 250, 251, 257, 254, 357, 356, 259, 355, 261, 262,
+ 354, 271, 353, 264, 272, 352, 351, 274, 275, 350,
+ 282, 349, 348, 347, 346, 345, 344, 343, 342, 341,
+ 267, 336, 331, 277, 326, 283, 319, 285, 284, 317,
+ 315, 311, 310, 288, 291, 292, 293, 295, 298, 301,
+ 299, 302, 303, 306, 308, 309, 307, 212, 397, 333,
+
+ 336, 339, 344, 89
} ;
-static yyconst short int yy_def[206] =
+static yyconst short int yy_def[205] =
{ 0,
- 200, 1, 200, 200, 200, 200, 201, 202, 203, 200,
- 202, 204, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 201,
- 202, 200, 205, 200, 200, 200, 202, 202, 204, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 200, 205, 200,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
-
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 202,
- 202, 202, 202, 202, 202, 202, 202, 202, 202, 0,
-
- 200, 200, 200, 200, 200
+ 199, 1, 199, 199, 199, 199, 200, 201, 202, 199,
+ 201, 203, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 200,
+ 201, 199, 204, 199, 199, 199, 201, 201, 203, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 199, 204, 199, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 201, 201,
+ 201, 201, 201, 201, 201, 201, 201, 201, 0, 199,
+
+ 199, 199, 199, 199
} ;
-static yyconst short int yy_nxt[433] =
+static yyconst short int yy_nxt[431] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 8, 11, 4,
12, 13, 14, 15, 16, 17, 18, 19, 8, 20,
21, 22, 23, 8, 24, 8, 25, 26, 27, 28,
29, 8, 8, 34, 32, 35, 37, 38, 32, 40,
- 32, 32, 46, 32, 32, 41, 32, 47, 32, 42,
- 51, 48, 43, 62, 32, 49, 50, 79, 32, 52,
- 44, 32, 32, 45, 54, 53, 55, 56, 32, 32,
- 57, 59, 32, 32, 32, 61, 70, 32, 63, 71,
- 81, 32, 58, 32, 32, 72, 32, 77, 82, 60,
- 32, 85, 129, 64, 84, 83, 65, 32, 32, 66,
-
- 37, 38, 32, 32, 32, 32, 32, 88, 86, 67,
- 68, 91, 69, 32, 32, 87, 73, 32, 93, 89,
- 94, 32, 32, 74, 75, 90, 32, 32, 92, 32,
- 98, 76, 32, 32, 32, 99, 32, 96, 32, 32,
- 95, 32, 32, 101, 104, 97, 100, 102, 103, 32,
- 105, 32, 32, 109, 113, 32, 110, 106, 32, 111,
- 108, 32, 107, 112, 32, 114, 32, 32, 32, 81,
- 32, 32, 115, 116, 32, 32, 120, 118, 121, 32,
- 119, 32, 32, 32, 117, 122, 124, 32, 131, 123,
- 128, 32, 125, 126, 127, 32, 32, 130, 32, 32,
-
- 32, 32, 132, 32, 32, 134, 135, 32, 136, 133,
- 138, 32, 32, 32, 137, 32, 32, 32, 32, 146,
- 32, 139, 147, 140, 143, 32, 141, 32, 142, 144,
- 145, 32, 152, 150, 32, 153, 148, 149, 32, 151,
- 155, 32, 32, 32, 32, 32, 32, 154, 157, 32,
- 32, 160, 156, 32, 32, 159, 163, 161, 32, 32,
- 165, 32, 158, 162, 167, 169, 32, 32, 32, 164,
- 32, 172, 171, 166, 173, 32, 32, 168, 174, 32,
- 170, 176, 32, 32, 32, 32, 32, 32, 178, 179,
- 181, 32, 175, 177, 182, 32, 180, 184, 32, 32,
-
- 32, 32, 32, 32, 186, 187, 183, 185, 32, 32,
- 192, 32, 32, 188, 189, 32, 32, 32, 32, 32,
- 32, 190, 191, 32, 193, 196, 32, 32, 32, 32,
- 194, 195, 198, 197, 32, 32, 199, 30, 30, 32,
- 30, 30, 30, 31, 32, 31, 33, 33, 39, 32,
- 39, 39, 39, 39, 32, 32, 32, 32, 32, 32,
+ 32, 32, 32, 45, 32, 41, 42, 32, 46, 32,
+ 53, 32, 47, 50, 43, 32, 48, 44, 32, 32,
+ 49, 56, 51, 32, 95, 58, 32, 32, 52, 60,
+ 54, 55, 32, 57, 32, 61, 80, 32, 62, 32,
+ 32, 76, 32, 59, 32, 81, 87, 63, 69, 32,
+ 64, 70, 78, 65, 37, 38, 32, 71, 32, 89,
+
+ 82, 32, 32, 66, 67, 32, 68, 32, 32, 83,
+ 72, 32, 84, 85, 32, 32, 90, 73, 74, 91,
+ 86, 93, 32, 32, 32, 75, 88, 97, 92, 32,
+ 32, 32, 98, 32, 32, 32, 32, 32, 32, 32,
+ 100, 94, 96, 99, 101, 103, 104, 32, 32, 108,
+ 102, 112, 109, 105, 32, 110, 107, 32, 32, 106,
+ 32, 111, 116, 32, 113, 32, 32, 32, 32, 80,
+ 32, 32, 32, 115, 118, 119, 117, 114, 120, 121,
+ 32, 122, 32, 123, 32, 32, 125, 127, 32, 32,
+ 129, 124, 32, 126, 32, 130, 32, 32, 131, 32,
+
+ 32, 32, 133, 128, 134, 132, 32, 32, 135, 32,
+ 32, 151, 136, 32, 32, 32, 137, 32, 32, 145,
+ 146, 32, 32, 138, 142, 139, 143, 32, 140, 144,
+ 141, 32, 32, 32, 147, 149, 152, 148, 32, 32,
+ 154, 150, 32, 32, 153, 32, 32, 32, 156, 32,
+ 155, 159, 157, 32, 158, 162, 32, 160, 32, 32,
+ 32, 161, 164, 32, 166, 168, 32, 171, 32, 163,
+ 32, 32, 170, 32, 172, 165, 32, 167, 173, 169,
+ 32, 32, 175, 32, 32, 181, 32, 177, 174, 178,
+ 176, 32, 32, 32, 32, 180, 179, 32, 183, 185,
+
+ 32, 32, 32, 186, 32, 182, 184, 32, 32, 191,
+ 32, 32, 32, 187, 188, 32, 32, 32, 32, 32,
+ 32, 189, 195, 190, 32, 192, 32, 193, 32, 198,
+ 194, 197, 196, 30, 30, 32, 30, 30, 30, 31,
+ 32, 31, 33, 33, 39, 32, 39, 39, 39, 39,
+ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
- 32, 32, 32, 32, 32, 32, 80, 32, 32, 32,
- 36, 35, 80, 32, 78, 36, 32, 200, 3, 200,
+ 32, 32, 32, 32, 32, 79, 32, 32, 36, 35,
+ 79, 32, 77, 36, 32, 199, 3, 199, 199, 199,
- 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
- 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
- 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
- 200, 200
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199
} ;
-static yyconst short int yy_chk[433] =
+static yyconst short int yy_chk[431] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 9, 13, 9, 11, 11, 11, 13,
- 15, 16, 15, 17, 24, 13, 14, 16, 18, 14,
- 18, 16, 14, 24, 20, 16, 17, 205, 19, 18,
- 14, 23, 27, 14, 19, 18, 20, 20, 21, 22,
- 21, 22, 25, 29, 92, 23, 27, 44, 25, 27,
- 37, 37, 21, 40, 41, 27, 43, 29, 40, 22,
- 26, 44, 92, 26, 43, 41, 26, 46, 48, 26,
-
- 38, 38, 38, 47, 52, 49, 50, 47, 46, 26,
- 26, 50, 26, 28, 53, 46, 28, 51, 52, 48,
- 53, 54, 55, 28, 28, 49, 56, 57, 51, 61,
- 57, 28, 59, 58, 62, 58, 60, 55, 63, 64,
- 54, 65, 66, 59, 62, 56, 58, 60, 61, 67,
- 63, 68, 71, 66, 68, 69, 66, 63, 72, 66,
- 65, 73, 64, 67, 74, 69, 75, 76, 77, 81,
- 81, 83, 71, 72, 87, 85, 76, 74, 77, 84,
- 75, 86, 94, 88, 73, 83, 85, 90, 94, 84,
- 90, 107, 86, 87, 88, 93, 95, 93, 96, 98,
-
- 100, 99, 95, 101, 199, 98, 99, 110, 100, 96,
- 107, 114, 112, 115, 101, 108, 116, 117, 118, 115,
- 119, 108, 116, 108, 110, 120, 108, 121, 108, 112,
- 114, 122, 121, 119, 123, 122, 117, 118, 127, 120,
- 127, 128, 129, 130, 132, 133, 134, 123, 129, 137,
- 138, 133, 128, 139, 140, 132, 138, 134, 141, 142,
- 140, 143, 130, 137, 141, 142, 144, 145, 148, 139,
- 150, 145, 144, 140, 148, 151, 155, 141, 150, 153,
- 143, 153, 156, 159, 160, 172, 162, 175, 156, 159,
- 162, 177, 151, 155, 172, 179, 160, 177, 180, 185,
-
- 186, 187, 188, 189, 180, 185, 175, 179, 190, 191,
- 190, 192, 193, 186, 187, 194, 195, 197, 196, 184,
- 183, 188, 189, 198, 191, 194, 182, 181, 178, 176,
- 192, 193, 196, 195, 174, 173, 198, 201, 201, 171,
- 201, 201, 201, 202, 170, 202, 203, 203, 204, 169,
- 204, 204, 204, 204, 168, 167, 166, 165, 164, 163,
- 161, 158, 157, 154, 152, 149, 147, 146, 136, 135,
- 131, 126, 125, 124, 113, 111, 109, 106, 105, 104,
- 103, 102, 97, 91, 89, 82, 80, 70, 45, 42,
- 36, 35, 34, 31, 30, 10, 8, 3, 200, 200,
-
- 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
- 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
- 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
- 200, 200
+ 14, 15, 16, 15, 19, 13, 14, 17, 16, 54,
+ 19, 18, 16, 18, 14, 23, 16, 14, 20, 21,
+ 17, 21, 18, 22, 54, 22, 24, 29, 18, 23,
+ 20, 20, 25, 21, 27, 24, 37, 37, 25, 48,
+ 40, 29, 46, 22, 26, 40, 46, 26, 27, 41,
+ 26, 27, 204, 26, 38, 38, 38, 27, 43, 48,
+
+ 41, 42, 45, 26, 26, 47, 26, 28, 50, 42,
+ 28, 49, 43, 45, 51, 52, 49, 28, 28, 50,
+ 45, 52, 53, 55, 56, 28, 47, 56, 51, 58,
+ 57, 60, 57, 59, 62, 61, 63, 64, 65, 72,
+ 58, 53, 55, 57, 59, 61, 62, 66, 67, 65,
+ 60, 67, 65, 62, 68, 65, 64, 70, 71, 63,
+ 74, 66, 72, 73, 68, 82, 75, 86, 76, 80,
+ 80, 83, 84, 71, 74, 75, 73, 70, 76, 82,
+ 85, 83, 87, 84, 89, 91, 86, 89, 92, 93,
+ 92, 85, 94, 87, 95, 93, 97, 106, 94, 98,
+
+ 99, 100, 97, 91, 98, 95, 120, 109, 99, 111,
+ 113, 120, 100, 114, 115, 116, 106, 107, 117, 114,
+ 115, 198, 118, 107, 109, 107, 111, 119, 107, 113,
+ 107, 122, 121, 129, 116, 118, 121, 117, 126, 127,
+ 126, 119, 128, 131, 122, 132, 133, 136, 128, 137,
+ 127, 132, 129, 138, 131, 137, 139, 133, 140, 141,
+ 142, 136, 139, 144, 140, 141, 143, 144, 147, 138,
+ 149, 150, 143, 154, 147, 139, 171, 140, 149, 142,
+ 152, 155, 152, 158, 159, 171, 174, 155, 150, 158,
+ 154, 161, 176, 179, 178, 161, 159, 184, 176, 179,
+
+ 185, 186, 187, 184, 188, 174, 178, 189, 191, 189,
+ 190, 192, 193, 185, 186, 194, 197, 195, 196, 183,
+ 182, 187, 193, 188, 181, 190, 180, 191, 177, 197,
+ 192, 195, 194, 200, 200, 175, 200, 200, 200, 201,
+ 173, 201, 202, 202, 203, 172, 203, 203, 203, 203,
+ 170, 169, 168, 167, 166, 165, 164, 163, 162, 160,
+ 157, 156, 153, 151, 148, 146, 145, 135, 134, 130,
+ 125, 124, 123, 112, 110, 108, 105, 104, 103, 102,
+ 101, 96, 90, 88, 81, 79, 69, 44, 36, 35,
+ 34, 31, 30, 10, 8, 3, 199, 199, 199, 199,
+
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
+ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199
} ;
static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
#define YY_NEVER_INTERACTIVE 1
/* Comments start with a ; and go till end of line */
-/* Variable(Def) identifiers start with a % sign */
+/* Variable(Value) identifiers start with a % sign */
/* Label identifiers end with a colon */
/* Quoted names can contain any character except " and \ */
/* [PN]Integer: match positive and negative literal integer values that
/* E[PN]Integer: match positive and negative literal integer values */
/* FPConstant - A Floating point constant.
TODO: Expand lexer to support 10e50 FP constant notation */
-#line 623 "Lexer.cpp"
+#line 620 "Lexer.cpp"
/* Macros after this point can all be overridden by user definitions in
* section 1.
#line 87 "Lexer.l"
-#line 777 "Lexer.cpp"
+#line 774 "Lexer.cpp"
if ( yy_init )
{
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 201 )
+ if ( yy_current_state >= 200 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
*yy_state_ptr++ = yy_current_state;
++yy_cp;
}
- while ( yy_current_state != 200 );
+ while ( yy_current_state != 199 );
yy_find_action:
yy_current_state = *--yy_state_ptr;
case 8:
YY_RULE_SETUP
#line 98 "Lexer.l"
-{ cerr << "deprecated argument '-' used!\n"; return '-'; }
+{ llvmAsmlval.TypeVal = Type::VoidTy ; return VOID; }
YY_BREAK
case 9:
YY_RULE_SETUP
#line 99 "Lexer.l"
-{ cerr << "deprecated type 'bb' used!\n"; llvmAsmlval.TypeVal = Type::LabelTy; return LABEL;}
+{ llvmAsmlval.TypeVal = Type::BoolTy ; return BOOL; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 101 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::VoidTy ; return VOID; }
+#line 100 "Lexer.l"
+{ llvmAsmlval.TypeVal = Type::SByteTy ; return SBYTE; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 102 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::BoolTy ; return BOOL; }
+#line 101 "Lexer.l"
+{ llvmAsmlval.TypeVal = Type::UByteTy ; return UBYTE; }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 103 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::SByteTy ; return SBYTE; }
+#line 102 "Lexer.l"
+{ llvmAsmlval.TypeVal = Type::ShortTy ; return SHORT; }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 104 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::UByteTy ; return UBYTE; }
+#line 103 "Lexer.l"
+{ llvmAsmlval.TypeVal = Type::UShortTy; return USHORT; }
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 105 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::ShortTy ; return SHORT; }
+#line 104 "Lexer.l"
+{ llvmAsmlval.TypeVal = Type::IntTy ; return INT; }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 106 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::UShortTy; return USHORT; }
+#line 105 "Lexer.l"
+{ llvmAsmlval.TypeVal = Type::UIntTy ; return UINT; }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 107 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::IntTy ; return INT; }
+#line 106 "Lexer.l"
+{ llvmAsmlval.TypeVal = Type::LongTy ; return LONG; }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 108 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::UIntTy ; return UINT; }
+#line 107 "Lexer.l"
+{ llvmAsmlval.TypeVal = Type::ULongTy ; return ULONG; }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 109 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::LongTy ; return LONG; }
+#line 108 "Lexer.l"
+{ llvmAsmlval.TypeVal = Type::FloatTy ; return FLOAT; }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 110 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::ULongTy ; return ULONG; }
+#line 109 "Lexer.l"
+{ llvmAsmlval.TypeVal = Type::DoubleTy; return DOUBLE; }
YY_BREAK
case 20:
YY_RULE_SETUP
#line 111 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::FloatTy ; return FLOAT; }
+{ llvmAsmlval.TypeVal = Type::TypeTy ; return TYPE; }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 112 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::DoubleTy; return DOUBLE; }
+#line 113 "Lexer.l"
+{ llvmAsmlval.TypeVal = Type::LabelTy ; return LABEL; }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 114 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::TypeTy ; return TYPE; }
+#line 116 "Lexer.l"
+{ RET_TOK(UnaryOpVal, Not, NOT); }
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 116 "Lexer.l"
-{ llvmAsmlval.TypeVal = Type::LabelTy ; return LABEL; }
+#line 118 "Lexer.l"
+{ RET_TOK(BinaryOpVal, Add, ADD); }
YY_BREAK
case 24:
YY_RULE_SETUP
#line 119 "Lexer.l"
-{ RET_TOK(UnaryOpVal, Not, NOT); }
+{ RET_TOK(BinaryOpVal, Sub, SUB); }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 121 "Lexer.l"
-{ RET_TOK(BinaryOpVal, Add, ADD); }
+#line 120 "Lexer.l"
+{ RET_TOK(BinaryOpVal, Mul, MUL); }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 122 "Lexer.l"
-{ RET_TOK(BinaryOpVal, Sub, SUB); }
+#line 121 "Lexer.l"
+{ RET_TOK(BinaryOpVal, Div, DIV); }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 123 "Lexer.l"
-{ RET_TOK(BinaryOpVal, Mul, MUL); }
+#line 122 "Lexer.l"
+{ RET_TOK(BinaryOpVal, Rem, REM); }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 124 "Lexer.l"
-{ RET_TOK(BinaryOpVal, Div, DIV); }
+#line 123 "Lexer.l"
+{ RET_TOK(BinaryOpVal, SetNE, SETNE); }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 125 "Lexer.l"
-{ RET_TOK(BinaryOpVal, Rem, REM); }
+#line 124 "Lexer.l"
+{ RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 126 "Lexer.l"
-{ RET_TOK(BinaryOpVal, SetNE, SETNE); }
+#line 125 "Lexer.l"
+{ RET_TOK(BinaryOpVal, SetLT, SETLT); }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 127 "Lexer.l"
-{ RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
+#line 126 "Lexer.l"
+{ RET_TOK(BinaryOpVal, SetGT, SETGT); }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 128 "Lexer.l"
-{ RET_TOK(BinaryOpVal, SetLT, SETLT); }
+#line 127 "Lexer.l"
+{ RET_TOK(BinaryOpVal, SetLE, SETLE); }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 129 "Lexer.l"
-{ RET_TOK(BinaryOpVal, SetGT, SETGT); }
+#line 128 "Lexer.l"
+{ RET_TOK(BinaryOpVal, SetGE, SETGE); }
YY_BREAK
case 34:
YY_RULE_SETUP
#line 130 "Lexer.l"
-{ RET_TOK(BinaryOpVal, SetLE, SETLE); }
+{ return TO; }
YY_BREAK
case 35:
YY_RULE_SETUP
#line 131 "Lexer.l"
-{ RET_TOK(BinaryOpVal, SetGE, SETGE); }
+{ RET_TOK(OtherOpVal, PHINode, PHI); }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 133 "Lexer.l"
-{ return TO; }
+#line 132 "Lexer.l"
+{ RET_TOK(OtherOpVal, Call, CALL); }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 134 "Lexer.l"
-{ RET_TOK(OtherOpVal, PHINode, PHI); }
+#line 133 "Lexer.l"
+{ RET_TOK(OtherOpVal, Cast, CAST); }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 135 "Lexer.l"
-{ RET_TOK(OtherOpVal, Call, CALL); }
+#line 134 "Lexer.l"
+{ RET_TOK(OtherOpVal, Shl, SHL); }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 136 "Lexer.l"
-{ RET_TOK(OtherOpVal, Cast, CAST); }
+#line 135 "Lexer.l"
+{ RET_TOK(OtherOpVal, Shr, SHR); }
YY_BREAK
case 40:
YY_RULE_SETUP
#line 137 "Lexer.l"
-{ RET_TOK(OtherOpVal, Shl, SHL); }
+{ RET_TOK(TermOpVal, Ret, RET); }
YY_BREAK
case 41:
YY_RULE_SETUP
#line 138 "Lexer.l"
-{ RET_TOK(OtherOpVal, Shr, SHR); }
+{ RET_TOK(TermOpVal, Br, BR); }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 140 "Lexer.l"
-{ RET_TOK(TermOpVal, Ret, RET); }
+#line 139 "Lexer.l"
+{ RET_TOK(TermOpVal, Switch, SWITCH); }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 141 "Lexer.l"
-{ RET_TOK(TermOpVal, Br, BR); }
- YY_BREAK
-case 44:
-YY_RULE_SETUP
#line 142 "Lexer.l"
-{ RET_TOK(TermOpVal, Switch, SWITCH); }
- YY_BREAK
-case 45:
-YY_RULE_SETUP
-#line 145 "Lexer.l"
{ RET_TOK(MemOpVal, Malloc, MALLOC); }
YY_BREAK
-case 46:
+case 44:
YY_RULE_SETUP
-#line 146 "Lexer.l"
+#line 143 "Lexer.l"
{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
YY_BREAK
-case 47:
+case 45:
YY_RULE_SETUP
-#line 147 "Lexer.l"
+#line 144 "Lexer.l"
{ RET_TOK(MemOpVal, Free, FREE); }
YY_BREAK
-case 48:
+case 46:
YY_RULE_SETUP
-#line 148 "Lexer.l"
+#line 145 "Lexer.l"
{ RET_TOK(MemOpVal, Load, LOAD); }
YY_BREAK
-case 49:
+case 47:
YY_RULE_SETUP
-#line 149 "Lexer.l"
+#line 146 "Lexer.l"
{ RET_TOK(MemOpVal, Store, STORE); }
YY_BREAK
-case 50:
+case 48:
YY_RULE_SETUP
-#line 150 "Lexer.l"
+#line 147 "Lexer.l"
{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
YY_BREAK
-case 51:
+case 49:
YY_RULE_SETUP
-#line 153 "Lexer.l"
+#line 150 "Lexer.l"
{ llvmAsmlval.StrVal = strdup(yytext+1); return VAR_ID; }
YY_BREAK
-case 52:
+case 50:
YY_RULE_SETUP
-#line 154 "Lexer.l"
+#line 151 "Lexer.l"
{
yytext[strlen(yytext)-1] = 0; // nuke colon
llvmAsmlval.StrVal = strdup(yytext);
return LABELSTR;
}
YY_BREAK
-case 53:
+case 51:
YY_RULE_SETUP
-#line 160 "Lexer.l"
+#line 157 "Lexer.l"
{
yytext[strlen(yytext)-1] = 0; // nuke end quote
llvmAsmlval.StrVal = strdup(yytext+1); // Nuke start quote
return STRINGCONSTANT;
}
YY_BREAK
-case 54:
+case 52:
YY_RULE_SETUP
-#line 167 "Lexer.l"
+#line 164 "Lexer.l"
{ llvmAsmlval.UInt64Val = atoull(yytext); return EUINT64VAL; }
YY_BREAK
-case 55:
+case 53:
YY_RULE_SETUP
-#line 168 "Lexer.l"
+#line 165 "Lexer.l"
{
uint64_t Val = atoull(yytext+1);
// +1: we have bigger negative range
return ESINT64VAL;
}
YY_BREAK
-case 56:
+case 54:
YY_RULE_SETUP
-#line 178 "Lexer.l"
+#line 175 "Lexer.l"
{ llvmAsmlval.UIntVal = atoull(yytext+1); return UINTVAL; }
YY_BREAK
-case 57:
+case 55:
YY_RULE_SETUP
-#line 179 "Lexer.l"
+#line 176 "Lexer.l"
{
uint64_t Val = atoull(yytext+2);
// +1: we have bigger negative range
return SINTVAL;
}
YY_BREAK
-case 58:
+case 56:
YY_RULE_SETUP
-#line 188 "Lexer.l"
+#line 185 "Lexer.l"
{ llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
YY_BREAK
-case 59:
+case 57:
YY_RULE_SETUP
-#line 190 "Lexer.l"
+#line 187 "Lexer.l"
{ /* Ignore whitespace */ }
YY_BREAK
-case 60:
+case 58:
YY_RULE_SETUP
-#line 191 "Lexer.l"
+#line 188 "Lexer.l"
{ /*printf("'%s'", yytext);*/ return yytext[0]; }
YY_BREAK
-case 61:
+case 59:
YY_RULE_SETUP
-#line 193 "Lexer.l"
+#line 190 "Lexer.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 1195 "Lexer.cpp"
+#line 1182 "Lexer.cpp"
case YY_STATE_EOF(INITIAL):
yyterminate();
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 201 )
+ if ( yy_current_state >= 200 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
{
yy_current_state = (int) yy_def[yy_current_state];
- if ( yy_current_state >= 201 )
+ if ( yy_current_state >= 200 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
- yy_is_jam = (yy_current_state == 200);
+ yy_is_jam = (yy_current_state == 199);
if ( ! yy_is_jam )
*yy_state_ptr++ = yy_current_state;
return 0;
}
#endif
-#line 193 "Lexer.l"
+#line 190 "Lexer.l"
static struct PerMethodInfo {
Method *CurrentMethod; // Pointer to current method being created
- vector<ValueList> Values; // Keep track of numbered definitions
+ vector<ValueList> Values; // Keep track of numbered definitions
vector<ValueList> LateResolveValues;
+ bool isDeclare; // Is this method a forward declararation?
inline PerMethodInfo() {
CurrentMethod = 0;
+ isDeclare = false;
}
inline ~PerMethodInfo() {}
Values.clear(); // Clear out method local definitions
CurrentMethod = 0;
+ isDeclare = false;
}
} CurMeth; // Info for the current method...
}
-#line 382 "llvmAsmParser.y"
+#line 385 "llvmAsmParser.y"
typedef union {
Module *ModuleVal;
Method *MethodVal;
-#define YYFINAL 265
+#define YYFINAL 269
#define YYFLAG -32768
#define YYNTBASE 69
-#define YYTRANSLATE(x) ((unsigned)(x) <= 312 ? yytranslate[x] : 108)
+#define YYTRANSLATE(x) ((unsigned)(x) <= 312 ? yytranslate[x] : 110)
static const char yytranslate[] = { 0,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
60, 62, 64, 66, 68, 70, 72, 74, 76, 78,
80, 82, 84, 86, 88, 90, 92, 95, 96, 99,
102, 105, 108, 111, 114, 117, 124, 130, 139, 147,
- 154, 159, 163, 165, 169, 170, 172, 175, 178, 180,
- 181, 184, 188, 190, 192, 193, 199, 203, 206, 208,
- 210, 212, 214, 216, 218, 220, 222, 224, 226, 231,
- 235, 239, 245, 249, 252, 255, 257, 261, 264, 267,
- 270, 274, 277, 278, 282, 285, 289, 299, 309, 316,
- 322, 325, 332, 340, 343, 348, 350, 351, 357, 361,
- 368, 374, 377, 384, 386, 389, 390, 393, 399, 402,
- 408, 412, 417, 425
+ 154, 159, 163, 165, 169, 170, 172, 175, 178, 181,
+ 183, 184, 187, 191, 193, 195, 196, 202, 206, 209,
+ 210, 214, 216, 218, 220, 222, 224, 226, 228, 230,
+ 232, 234, 239, 243, 247, 253, 257, 260, 263, 265,
+ 269, 272, 275, 278, 282, 285, 286, 290, 293, 297,
+ 307, 317, 324, 330, 333, 340, 348, 351, 356, 358,
+ 359, 365, 369, 376, 382, 385, 392, 394, 397, 398,
+ 401, 407, 410, 416, 420, 425, 433
};
static const short yyrhs[] = { 5,
20, 25, 0, 21, 71, 0, 60, 71, 61, 60,
82, 61, 0, 60, 71, 61, 60, 61, 0, 60,
4, 62, 71, 61, 60, 82, 61, 0, 60, 4,
- 62, 71, 61, 60, 61, 0, 63, 95, 64, 63,
+ 62, 71, 61, 60, 61, 0, 63, 97, 64, 63,
82, 64, 0, 63, 64, 63, 64, 0, 82, 65,
81, 0, 81, 0, 83, 80, 81, 0, 0, 85,
- 0, 85, 92, 0, 83, 26, 0, 23, 0, 0,
- 71, 86, 0, 87, 65, 88, 0, 87, 0, 88,
- 0, 0, 72, 25, 66, 89, 67, 0, 90, 83,
- 29, 0, 96, 30, 0, 3, 0, 4, 0, 7,
- 0, 27, 0, 28, 0, 25, 0, 69, 0, 23,
- 0, 93, 0, 94, 0, 72, 66, 95, 67, 0,
- 72, 66, 67, 0, 60, 71, 61, 0, 60, 4,
- 62, 71, 61, 0, 63, 95, 64, 0, 63, 64,
- 0, 71, 68, 0, 71, 0, 95, 65, 71, 0,
- 96, 97, 0, 91, 97, 0, 98, 99, 0, 24,
- 98, 99, 0, 98, 101, 0, 0, 33, 71, 94,
- 0, 33, 8, 0, 34, 22, 94, 0, 34, 9,
- 94, 65, 22, 94, 65, 22, 94, 0, 35, 78,
- 94, 65, 22, 94, 60, 100, 61, 0, 100, 78,
- 93, 65, 22, 94, 0, 78, 93, 65, 22, 94,
- 0, 80, 105, 0, 71, 60, 94, 65, 94, 61,
- 0, 102, 65, 60, 94, 65, 94, 61, 0, 71,
- 94, 0, 103, 65, 71, 94, 0, 103, 0, 0,
- 74, 71, 94, 65, 94, 0, 73, 71, 94, 0,
- 75, 71, 94, 65, 71, 94, 0, 56, 71, 94,
- 32, 71, 0, 54, 102, 0, 55, 71, 94, 66,
- 104, 67, 0, 107, 0, 65, 82, 0, 0, 48,
- 71, 0, 48, 71, 65, 15, 94, 0, 49, 71,
- 0, 49, 71, 65, 15, 94, 0, 50, 71, 94,
- 0, 51, 71, 94, 106, 0, 52, 71, 94, 65,
- 71, 94, 106, 0, 53, 71, 94, 106, 0
+ 0, 85, 92, 0, 85, 93, 0, 83, 26, 0,
+ 23, 0, 0, 71, 86, 0, 87, 65, 88, 0,
+ 87, 0, 88, 0, 0, 72, 25, 66, 89, 67,
+ 0, 90, 83, 29, 0, 98, 30, 0, 0, 31,
+ 94, 90, 0, 3, 0, 4, 0, 7, 0, 27,
+ 0, 28, 0, 25, 0, 69, 0, 23, 0, 95,
+ 0, 96, 0, 72, 66, 97, 67, 0, 72, 66,
+ 67, 0, 60, 71, 61, 0, 60, 4, 62, 71,
+ 61, 0, 63, 97, 64, 0, 63, 64, 0, 71,
+ 68, 0, 71, 0, 97, 65, 71, 0, 98, 99,
+ 0, 91, 99, 0, 100, 101, 0, 24, 100, 101,
+ 0, 100, 103, 0, 0, 33, 71, 96, 0, 33,
+ 8, 0, 34, 22, 96, 0, 34, 9, 96, 65,
+ 22, 96, 65, 22, 96, 0, 35, 78, 96, 65,
+ 22, 96, 60, 102, 61, 0, 102, 78, 95, 65,
+ 22, 96, 0, 78, 95, 65, 22, 96, 0, 80,
+ 107, 0, 71, 60, 96, 65, 96, 61, 0, 104,
+ 65, 60, 96, 65, 96, 61, 0, 71, 96, 0,
+ 105, 65, 71, 96, 0, 105, 0, 0, 74, 71,
+ 96, 65, 96, 0, 73, 71, 96, 0, 75, 71,
+ 96, 65, 71, 96, 0, 56, 71, 96, 32, 71,
+ 0, 54, 104, 0, 55, 71, 96, 66, 106, 67,
+ 0, 109, 0, 65, 82, 0, 0, 48, 71, 0,
+ 48, 71, 65, 15, 96, 0, 49, 71, 0, 49,
+ 71, 65, 15, 96, 0, 50, 71, 96, 0, 51,
+ 71, 96, 108, 0, 52, 71, 96, 65, 71, 96,
+ 108, 0, 53, 71, 96, 108, 0
};
#endif
#if YYDEBUG != 0
static const short yyrline[] = { 0,
- 481, 482, 489, 490, 501, 501, 501, 501, 501, 501,
- 501, 502, 502, 502, 502, 502, 502, 502, 505, 505,
- 510, 511, 511, 511, 511, 511, 512, 512, 512, 512,
- 512, 512, 513, 513, 517, 517, 517, 517, 518, 518,
- 518, 518, 519, 519, 520, 520, 523, 526, 533, 538,
- 543, 546, 549, 552, 558, 561, 574, 578, 596, 603,
- 611, 625, 628, 638, 655, 666, 673, 678, 687, 687,
- 689, 697, 701, 706, 709, 713, 740, 744, 753, 756,
- 759, 762, 765, 768, 773, 776, 779, 786, 794, 799,
- 803, 806, 809, 814, 817, 822, 826, 831, 835, 844,
- 849, 858, 862, 866, 869, 872, 875, 880, 891, 899,
- 909, 917, 922, 929, 933, 939, 939, 941, 946, 951,
- 955, 958, 969, 1006, 1011, 1013, 1017, 1020, 1027, 1030,
- 1038, 1044, 1053, 1065
+ 484, 485, 492, 493, 504, 504, 504, 504, 504, 504,
+ 504, 505, 505, 505, 505, 505, 505, 505, 508, 508,
+ 513, 514, 514, 514, 514, 514, 515, 515, 515, 515,
+ 515, 515, 516, 516, 520, 520, 520, 520, 521, 521,
+ 521, 521, 522, 522, 523, 523, 526, 529, 536, 541,
+ 546, 549, 552, 555, 561, 564, 577, 581, 599, 606,
+ 614, 628, 631, 641, 658, 669, 676, 682, 688, 697,
+ 697, 699, 707, 711, 716, 719, 723, 764, 768, 772,
+ 772, 780, 783, 786, 789, 792, 795, 800, 803, 806,
+ 813, 821, 826, 830, 833, 836, 841, 844, 849, 853,
+ 858, 862, 871, 876, 885, 889, 893, 896, 899, 902,
+ 907, 918, 926, 936, 944, 949, 956, 960, 966, 966,
+ 968, 973, 978, 982, 985, 996, 1033, 1038, 1040, 1044,
+ 1047, 1054, 1057, 1065, 1071, 1080, 1092
};
#endif
"'{'","'}'","','","'('","')'","'*'","INTVAL","EINT64VAL","Types","TypesV","UnaryOps",
"BinaryOps","ShiftOps","SIntType","UIntType","IntType","FPType","OptAssign",
"ConstVal","ConstVector","ConstPool","Module","MethodList","OptVAR_ID","ArgVal",
-"ArgListH","ArgList","MethodHeaderH","MethodHeader","Method","ConstValueRef",
-"ValueRef","TypeList","BasicBlockList","BasicBlock","InstructionList","BBTerminatorInst",
-"JumpTable","Inst","PHIList","ValueRefList","ValueRefListE","InstVal","UByteList",
-"MemoryInst", NULL
+"ArgListH","ArgList","MethodHeaderH","MethodHeader","Method","MethodProto","@1",
+"ConstValueRef","ValueRef","TypeList","BasicBlockList","BasicBlock","InstructionList",
+"BBTerminatorInst","JumpTable","Inst","PHIList","ValueRefList","ValueRefListE",
+"InstVal","UByteList","MemoryInst", NULL
};
#endif
74, 74, 75, 75, 76, 76, 76, 76, 77, 77,
77, 77, 78, 78, 79, 79, 80, 80, 81, 81,
81, 81, 81, 81, 81, 81, 81, 81, 81, 81,
- 81, 82, 82, 83, 83, 84, 85, 85, 86, 86,
- 87, 88, 88, 89, 89, 90, 91, 92, 93, 93,
- 93, 93, 93, 93, 94, 94, 94, 71, 71, 71,
- 71, 71, 71, 71, 71, 95, 95, 96, 96, 97,
- 97, 98, 98, 99, 99, 99, 99, 99, 100, 100,
- 101, 102, 102, 103, 103, 104, 104, 105, 105, 105,
- 105, 105, 105, 105, 106, 106, 107, 107, 107, 107,
- 107, 107, 107, 107
+ 81, 82, 82, 83, 83, 84, 85, 85, 85, 86,
+ 86, 87, 88, 88, 89, 89, 90, 91, 92, 94,
+ 93, 95, 95, 95, 95, 95, 95, 96, 96, 96,
+ 71, 71, 71, 71, 71, 71, 71, 71, 97, 97,
+ 98, 98, 99, 99, 100, 100, 101, 101, 101, 101,
+ 101, 102, 102, 103, 104, 104, 105, 105, 106, 106,
+ 107, 107, 107, 107, 107, 107, 107, 108, 108, 109,
+ 109, 109, 109, 109, 109, 109, 109
};
static const short yyr2[] = { 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 2, 0, 2, 2,
2, 2, 2, 2, 2, 6, 5, 8, 7, 6,
- 4, 3, 1, 3, 0, 1, 2, 2, 1, 0,
- 2, 3, 1, 1, 0, 5, 3, 2, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 4, 3,
- 3, 5, 3, 2, 2, 1, 3, 2, 2, 2,
- 3, 2, 0, 3, 2, 3, 9, 9, 6, 5,
- 2, 6, 7, 2, 4, 1, 0, 5, 3, 6,
- 5, 2, 6, 1, 2, 0, 2, 5, 2, 5,
- 3, 4, 7, 4
+ 4, 3, 1, 3, 0, 1, 2, 2, 2, 1,
+ 0, 2, 3, 1, 1, 0, 5, 3, 2, 0,
+ 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 4, 3, 3, 5, 3, 2, 2, 1, 3,
+ 2, 2, 2, 3, 2, 0, 3, 2, 3, 9,
+ 9, 6, 5, 2, 6, 7, 2, 4, 1, 0,
+ 5, 3, 6, 5, 2, 6, 1, 2, 0, 2,
+ 5, 2, 5, 3, 4, 7, 4
};
static const short yydefact[] = { 65,
- 48, 66, 0, 68, 0, 79, 80, 1, 2, 81,
+ 48, 66, 0, 69, 0, 82, 83, 1, 2, 84,
20, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 86, 84, 82, 83, 0,
- 0, 85, 19, 0, 65, 103, 67, 87, 88, 103,
- 47, 0, 38, 42, 37, 41, 36, 40, 35, 39,
- 45, 46, 0, 0, 0, 0, 0, 0, 0, 64,
- 80, 19, 0, 94, 96, 0, 95, 0, 0, 48,
- 103, 99, 48, 78, 98, 51, 52, 54, 55, 80,
- 19, 0, 0, 3, 4, 49, 50, 53, 0, 91,
- 93, 0, 75, 90, 0, 77, 48, 0, 0, 0,
- 0, 100, 102, 0, 0, 0, 0, 19, 97, 70,
- 73, 74, 0, 89, 101, 105, 19, 0, 0, 43,
- 44, 0, 21, 22, 23, 24, 25, 26, 27, 28,
- 29, 30, 31, 32, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 33, 34, 0, 0, 0, 111, 124,
- 19, 0, 61, 0, 92, 69, 71, 0, 76, 104,
- 0, 106, 0, 127, 129, 19, 19, 19, 19, 19,
- 122, 19, 19, 19, 19, 19, 0, 57, 63, 0,
- 0, 72, 0, 0, 0, 0, 131, 126, 0, 126,
- 0, 0, 0, 0, 119, 0, 0, 0, 56, 0,
- 60, 0, 0, 0, 0, 0, 132, 0, 134, 0,
- 0, 117, 0, 0, 0, 59, 0, 62, 0, 0,
- 128, 130, 125, 19, 0, 0, 19, 116, 0, 121,
- 118, 19, 58, 0, 0, 126, 0, 0, 114, 0,
- 123, 120, 0, 0, 0, 133, 112, 0, 19, 107,
- 0, 108, 0, 113, 115, 0, 0, 0, 0, 110,
- 0, 109, 0, 0, 0
+ 14, 15, 16, 17, 18, 89, 87, 85, 86, 80,
+ 0, 0, 88, 19, 0, 65, 106, 67, 68, 90,
+ 91, 106, 47, 0, 38, 42, 37, 41, 36, 40,
+ 35, 39, 45, 46, 0, 0, 0, 0, 0, 0,
+ 0, 64, 0, 83, 19, 0, 97, 99, 0, 98,
+ 0, 0, 48, 106, 102, 48, 79, 101, 51, 52,
+ 54, 55, 83, 19, 0, 0, 3, 4, 49, 50,
+ 53, 81, 0, 94, 96, 0, 76, 93, 0, 78,
+ 48, 0, 0, 0, 0, 103, 105, 0, 0, 0,
+ 0, 19, 100, 71, 74, 75, 0, 92, 104, 108,
+ 19, 0, 0, 43, 44, 0, 21, 22, 23, 24,
+ 25, 26, 27, 28, 29, 30, 31, 32, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 33, 34, 0,
+ 0, 0, 114, 127, 19, 0, 61, 0, 95, 70,
+ 72, 0, 77, 107, 0, 109, 0, 130, 132, 19,
+ 19, 19, 19, 19, 125, 19, 19, 19, 19, 19,
+ 0, 57, 63, 0, 0, 73, 0, 0, 0, 0,
+ 134, 129, 0, 129, 0, 0, 0, 0, 122, 0,
+ 0, 0, 56, 0, 60, 0, 0, 0, 0, 0,
+ 135, 0, 137, 0, 0, 120, 0, 0, 0, 59,
+ 0, 62, 0, 0, 131, 133, 128, 19, 0, 0,
+ 19, 119, 0, 124, 121, 19, 58, 0, 0, 129,
+ 0, 0, 117, 0, 126, 123, 0, 0, 0, 136,
+ 115, 0, 19, 110, 0, 111, 0, 116, 118, 0,
+ 0, 0, 0, 113, 0, 112, 0, 0, 0
};
-static const short yydefgoto[] = { 32,
- 86, 65, 63, 146, 147, 148, 57, 58, 122, 59,
- 5, 179, 180, 1, 263, 2, 157, 111, 112, 113,
- 35, 36, 37, 38, 39, 66, 40, 72, 73, 102,
- 245, 103, 171, 228, 229, 149, 207, 150
+static const short yydefgoto[] = { 33,
+ 89, 68, 66, 150, 151, 152, 59, 60, 126, 61,
+ 5, 183, 184, 1, 267, 2, 161, 115, 116, 117,
+ 36, 37, 38, 39, 63, 40, 41, 69, 42, 75,
+ 76, 106, 249, 107, 175, 232, 233, 153, 211, 154
};
static const short yypact[] = {-32768,
- 181, 350, -36,-32768, 94,-32768,-32768,-32768,-32768,-32768,
+ 2, 354, -36,-32768, 557,-32768,-32768,-32768,-32768,-32768,
-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 411,
- 262,-32768, 14, 29,-32768, 42,-32768,-32768,-32768, 70,
--32768, 141,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768, 73, 350, 437, 324, 205, 146, 178,-32768,
- 133, 24, 136,-32768, 50, 155,-32768, 162, 236, 169,
--32768,-32768, 156,-32768,-32768,-32768,-32768,-32768, 50, 164,
- 58, 149, 157,-32768,-32768,-32768,-32768,-32768, 350,-32768,
--32768, 350, 350,-32768, 84,-32768, 156, 498, 48, 161,
- 491,-32768,-32768, 350, 163, 165, 167, 59, 50, 33,
- 166,-32768, 168,-32768,-32768, 170, -1, 159, 159,-32768,
--32768, 159,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
--32768,-32768,-32768,-32768, 350, 350, 350, 350, 350, 350,
- 350, 350, 350,-32768,-32768, 350, 350, 350,-32768,-32768,
- 87, 0,-32768, 94,-32768,-32768,-32768, 350,-32768,-32768,
- 172,-32768, 195, 135, 150, -1, -1, -1, -1, 16,
- 197, -1, -1, -1, -1, -1, 173,-32768,-32768, 56,
- 160,-32768, 210, 212, 271, 273,-32768, 226, 227, 226,
- 159, 233, 228, 263,-32768, 232, 235, 20,-32768, 94,
--32768, 159, 159, 159, 159, 94,-32768, 350,-32768, 237,
- 159, 350, 350, 159, 350,-32768, 132,-32768, 239, 238,
--32768,-32768, 240, -1, 159, 241, -1, 242, 234, 50,
--32768, -1,-32768, 286, 161, 226, 248, 159,-32768, 350,
--32768,-32768, 159, 61, 32,-32768,-32768, 249, -1,-32768,
- 246,-32768, 61,-32768,-32768, 290, 250, 159, 291,-32768,
- 159,-32768, 314, 316,-32768
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+ 415, 266,-32768, -9, -16,-32768, 66,-32768,-32768,-32768,
+-32768, 46,-32768, 145,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768, 68, 441, 502, 328, 191, 119,
+ 124,-32768, 441, 92, -3, 117,-32768, 37, 132,-32768,
+ 133, 240, 101,-32768,-32768, 64,-32768,-32768,-32768,-32768,
+-32768, 37, 144, 13, 148, 137,-32768,-32768,-32768,-32768,
+-32768,-32768, 441,-32768,-32768, 441, 441,-32768, 55,-32768,
+ 64, 528, 40, 165, 556,-32768,-32768, 441, 147, 149,
+ 153, 24, 37, 7, 143,-32768, 152,-32768,-32768, 146,
+ -1, 163, 163,-32768,-32768, 163,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 441, 441,
+ 441, 441, 441, 441, 441, 441, 441,-32768,-32768, 441,
+ 441, 441,-32768,-32768, 28, 23,-32768, 557,-32768,-32768,
+-32768, 441,-32768,-32768, 155,-32768, 157, 36, 87, -1,
+ -1, -1, -1, 20, 158, -1, -1, -1, -1, -1,
+ 164,-32768,-32768, 60, 140,-32768, 203, 204, 212, 213,
+-32768, 166, 167, 166, 163, 169, 168, 198,-32768, 170,
+ 171, 98,-32768, 557,-32768, 163, 163, 163, 163, 557,
+-32768, 441,-32768, 172, 163, 441, 441, 163, 441,-32768,
+ 128,-32768, 173, 179,-32768,-32768, 175, -1, 163, 176,
+ -1, 199, 223, 37,-32768, -1,-32768, 211, 165, 166,
+ 205, 163,-32768, 441,-32768,-32768, 163, 44, 3,-32768,
+-32768, 231, -1,-32768, 230,-32768, 44,-32768,-32768, 274,
+ 232, 163, 276,-32768, 163,-32768, 299, 301,-32768
};
static const short yypgoto[] = {-32768,
--32768, -2, 225,-32768,-32768,-32768, -93, -92, -173,-32768,
- -18, -4, -129, 282,-32768,-32768,-32768,-32768, 190,-32768,
--32768,-32768,-32768, -194, -44, 2,-32768, 278, 252, 222,
--32768,-32768,-32768,-32768,-32768,-32768, -139,-32768
+-32768, -2, 5,-32768,-32768,-32768, -93, -92, -186,-32768,
+ -55, -4, -150, 268,-32768,-32768,-32768,-32768, 150,-32768,
+ 239,-32768,-32768,-32768,-32768, -191, -44, -27,-32768, 263,
+ 234, 208,-32768,-32768,-32768,-32768,-32768,-32768, -184,-32768
};
-#define YYLAST 561
-
-
-static const short yytable[] = { 33,
- 60, 6, 7, 8, 9, 10, 120, 121, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 26, 41, 27, 181, 28, 29, 62, 42, 43,
- 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
- 54, 43, 44, 45, 46, 47, 48, 49, 50, 251,
- 209, 79, 81, 68, 101, 156, 118, 83, 257, 55,
- 178, 244, 56, 6, 7, 71, 67, 10, 217, 119,
- 95, 253, 160, 161, 162, 191, 223, 163, 101, 55,
- 216, 67, 56, 67, 90, 27, 108, 28, 29, 109,
- 110, 67, 252, 71, 69, 117, 246, 78, -19, 74,
- 67, 151, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 51, 52, 53, 54, -19, 199, 67, 105, 155,
- 200, 187, 188, 189, 190, 67, 67, 193, 194, 195,
- 196, 197, 164, 165, 166, 167, 168, 169, 170, 172,
- 173, 120, 121, 174, 175, 176, 210, 177, 92, 87,
- 114, 120, 121, 55, 67, 110, 56, 219, 220, 221,
- 222, 6, 7, 8, 9, 10, 226, 76, 77, 231,
- 43, 44, 45, 46, 47, 48, 49, 50, 3, 236,
- 237, 26, 239, 27, 88, 28, 29, 242, 98, 99,
- 100, 3, 233, 248, 89, 218, 200, 96, 250, 185,
- -19, 69, 67, 3, 255, 224, 4, 84, 85, 227,
- 230, 106, 232, 260, 186, -19, 262, 67, 91, 92,
- 107, 92, 152, 201, 200, 104, 34, 93, 153, 154,
- 158, 202, 198, 203, 159, -20, 183, 249, 6, 7,
+#define YYLAST 620
+
+
+static const short yytable[] = { 34,
+ 62, 6, 7, 8, 9, 10, 35, 185, 71, 213,
+ 124, 125, 45, 46, 47, 48, 49, 50, 51, 52,
+ 105, 26, 43, 27, 3, 28, 29, 4, 65, 160,
+ 86, 44, 45, 46, 47, 48, 49, 50, 51, 52,
+ 53, 54, 55, 56, 99, 105, 6, 7, 122, 72,
+ 10, 221, 248, 82, 84, 250, 255, 94, 70, 227,
+ 34, 123, 257, 256, 70, 261, 70, 35, 27, 74,
+ 28, 29, -19, 109, 70, 77, 164, 165, 166, 195,
+ 70, 167, 57, 182, 159, 58, 3, 70, 181, 74,
+ 112, 70, 81, 113, 114, 70, 102, 103, 104, 121,
+ 189, -19, -19, 70, 70, 155, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 54, 55, 56, 96,
+ 203, 118, 90, 3, 204, 191, 192, 193, 194, 100,
+ 91, 197, 198, 199, 200, 201, 168, 169, 170, 171,
+ 172, 173, 174, 176, 177, 124, 125, 178, 179, 180,
+ 214, 190, -19, 93, 70, 124, 125, 57, 220, 114,
+ 58, 223, 224, 225, 226, 6, 7, 8, 9, 10,
+ 230, 79, 80, 235, 45, 46, 47, 48, 49, 50,
+ 51, 52, 72, 240, 241, 26, 243, 27, 237, 28,
+ 29, 246, 204, 87, 88, 95, 96, 252, 97, 222,
+ 111, 96, 254, 205, 204, 108, 156, 162, 259, 228,
+ 110, -20, 157, 231, 234, 158, 236, 264, 163, 187,
+ 266, 188, 196, 202, 206, 207, 208, 209, 215, 217,
+ 210, 212, 247, 216, 218, 219, 229, 238, 239, 204,
+ 242, 253, 6, 7, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
+ 24, 25, 26, 244, 27, 251, 28, 29, 6, 7,
8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, 23, 24, 25, 26, 184,
- 27, 192, 28, 29, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
- 22, 23, 24, 25, 26, 204, 27, 205, 28, 29,
- 206, 208, 211, 212, 213, 30, 214, 235, 31, 215,
- 241, 225, 94, 234, 200, 238, 240, 243, 247, 254,
- 256, 258, 261, 264, 259, 265, 70, 75, 115, 0,
- 0, 30, 97, 0, 31, 64, 6, 7, 8, 9,
+ 18, 19, 20, 21, 22, 23, 24, 25, 26, 245,
+ 27, 258, 28, 29, 260, 262, 263, 265, 268, 31,
+ 269, 92, 32, 73, 78, 0, 98, 101, 119, 0,
+ 0, 186, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 31, 0, 0, 32, 67,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
+ 26, 0, 27, 0, 28, 29, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, 24, 25, 26, 182, 27, 0,
- 28, 29, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 0, 27, 0, 28, 29, 0, 0,
- 0, 0, 0, 30, 0, 0, 31, 82, 0, 0,
+ 20, 21, 22, 23, 24, 25, 26, 0, 27, 0,
+ 28, 29, 0, 0, 30, 0, 0, 31, 0, 0,
+ 32, 85, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 30,
- 0, 0, 31, 6, 61, 8, 9, 10, 11, 12,
+ 0, 0, 0, 31, 0, 0, 32, 6, 64, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, 24, 25, 26, 0, 27,
+ 0, 28, 29, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, 24, 25, 26, 0, 27, 0, 28, 29, 6,
- 80, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
- 0, 27, 0, 28, 29, 0, 0, 0, 0, 0,
- 30, 0, 0, 31, 0, 0, 0, 0, 0, 0,
+ 23, 24, 25, 26, 0, 27, 0, 28, 29, 0,
+ 0, 0, 0, 0, 31, 0, 0, 32, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 30, 0, 0, 31,
- 6, 7, 8, 9, 10, 116, 12, 13, 14, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 31, 0, 0, 32, 6, 83, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, 23, 24, 25, 26, 0, 27, 0, 28, 29,
+ 6, 7, 8, 9, 10, 120, 12, 13, 14, 15,
16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
- 26, 0, 27, 0, 28, 29, 123, 124, 125, 126,
- 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 0,
- 0, 0, 0, 0, 0, 0, 0, 30, 0, 0,
- 31
+ 26, 0, 27, 0, 28, 29, 0, 0, 0, 0,
+ 0, 31, 0, 0, 32, 44, 45, 46, 47, 48,
+ 49, 50, 51, 52, 53, 54, 55, 56, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 31, 0, 0,
+ 32, 127, 128, 129, 130, 131, 132, 133, 134, 135,
+ 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
+ 146, 147, 148, 149, 0, 0, 57, 0, 0, 58
};
static const short yycheck[] = { 2,
- 5, 3, 4, 5, 6, 7, 100, 100, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 23, 59, 25, 154, 27, 28, 30, 9, 10,
+ 5, 3, 4, 5, 6, 7, 2, 158, 25, 194,
+ 104, 104, 10, 11, 12, 13, 14, 15, 16, 17,
+ 76, 23, 59, 25, 23, 27, 28, 26, 31, 23,
+ 58, 9, 10, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 72, 101, 3, 4, 9, 66,
+ 7, 202, 239, 56, 57, 240, 248, 61, 68, 210,
+ 63, 22, 249, 61, 68, 257, 68, 63, 25, 24,
+ 27, 28, 66, 61, 68, 30, 121, 122, 123, 60,
+ 68, 126, 60, 61, 61, 63, 23, 68, 61, 24,
+ 93, 68, 25, 96, 97, 68, 33, 34, 35, 102,
+ 65, 66, 66, 68, 68, 108, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 65,
+ 61, 67, 4, 23, 65, 170, 171, 172, 173, 29,
+ 7, 176, 177, 178, 179, 180, 139, 140, 141, 142,
+ 143, 144, 145, 146, 147, 239, 239, 150, 151, 152,
+ 195, 65, 66, 62, 68, 249, 249, 60, 61, 162,
+ 63, 206, 207, 208, 209, 3, 4, 5, 6, 7,
+ 215, 27, 28, 218, 10, 11, 12, 13, 14, 15,
+ 16, 17, 66, 228, 229, 23, 231, 25, 61, 27,
+ 28, 236, 65, 3, 4, 64, 65, 242, 66, 204,
+ 64, 65, 247, 64, 65, 62, 60, 65, 253, 212,
+ 63, 66, 64, 216, 217, 63, 219, 262, 67, 65,
+ 265, 65, 65, 60, 22, 22, 15, 15, 60, 32,
+ 65, 65, 22, 66, 65, 65, 65, 65, 60, 65,
+ 65, 244, 3, 4, 5, 6, 7, 8, 9, 10,
11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 10, 11, 12, 13, 14, 15, 16, 17, 244,
- 190, 54, 55, 25, 73, 23, 9, 56, 253, 60,
- 61, 235, 63, 3, 4, 24, 68, 7, 198, 22,
- 69, 245, 117, 118, 119, 60, 206, 122, 97, 60,
- 61, 68, 63, 68, 61, 25, 89, 27, 28, 92,
- 93, 68, 61, 24, 66, 98, 236, 25, 66, 30,
- 68, 104, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 66, 61, 68, 61, 61,
- 65, 166, 167, 168, 169, 68, 68, 172, 173, 174,
- 175, 176, 135, 136, 137, 138, 139, 140, 141, 142,
- 143, 235, 235, 146, 147, 148, 191, 61, 65, 4,
- 67, 245, 245, 60, 68, 158, 63, 202, 203, 204,
- 205, 3, 4, 5, 6, 7, 211, 27, 28, 214,
- 10, 11, 12, 13, 14, 15, 16, 17, 23, 224,
- 225, 23, 227, 25, 7, 27, 28, 232, 33, 34,
- 35, 23, 61, 238, 62, 200, 65, 29, 243, 65,
- 66, 66, 68, 23, 249, 208, 26, 3, 4, 212,
- 213, 63, 215, 258, 65, 66, 261, 68, 64, 65,
- 64, 65, 60, 64, 65, 62, 2, 66, 64, 63,
- 65, 22, 60, 22, 67, 66, 65, 240, 3, 4,
+ 21, 22, 23, 65, 25, 61, 27, 28, 3, 4,
5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 65,
- 25, 65, 27, 28, 3, 4, 5, 6, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 23, 15, 25, 15, 27, 28,
- 65, 65, 60, 66, 32, 60, 65, 60, 63, 65,
- 67, 65, 67, 65, 65, 65, 65, 22, 61, 61,
- 65, 22, 22, 0, 65, 0, 35, 40, 97, -1,
- -1, 60, 71, -1, 63, 64, 3, 4, 5, 6,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 67,
+ 25, 61, 27, 28, 65, 22, 65, 22, 0, 60,
+ 0, 63, 63, 36, 42, -1, 67, 74, 101, -1,
+ -1, 162, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 60, -1, -1, 63, 64,
+ 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
+ 23, -1, 25, -1, 27, 28, 3, 4, 5, 6,
7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, 23, 158, 25, -1,
- 27, 28, 3, 4, 5, 6, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, 23, -1, 25, -1, 27, 28, -1, -1,
- -1, -1, -1, 60, -1, -1, 63, 64, -1, -1,
+ 17, 18, 19, 20, 21, 22, 23, -1, 25, -1,
+ 27, 28, -1, -1, 31, -1, -1, 60, -1, -1,
+ 63, 64, -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, 60,
- -1, -1, 63, 3, 4, 5, 6, 7, 8, 9,
+ -1, -1, -1, 60, -1, -1, 63, 3, 4, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, -1, 25,
+ -1, 27, 28, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 23, -1, 25, -1, 27, 28, 3,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- -1, 25, -1, 27, 28, -1, -1, -1, -1, -1,
- 60, -1, -1, 63, -1, -1, -1, -1, -1, -1,
+ 20, 21, 22, 23, -1, 25, -1, 27, 28, -1,
+ -1, -1, -1, -1, 60, -1, -1, 63, -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, 60, -1, -1, 63,
+ 60, -1, -1, 63, 3, 4, 5, 6, 7, 8,
+ 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
+ 19, 20, 21, 22, 23, -1, 25, -1, 27, 28,
3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
- 23, -1, 25, -1, 27, 28, 36, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 51, 52, 53, 54, 55, 56, 57, 58, -1,
+ 23, -1, 25, -1, 27, 28, -1, -1, -1, -1,
+ -1, 60, -1, -1, 63, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 60, -1, -1,
- 63
+ 63, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, -1, -1, 60, -1, -1, 63
};
/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
#line 3 "/usr/dcs/software/supported/encap/bison-1.28/share/bison.simple"
switch (yyn) {
case 2:
-#line 482 "llvmAsmParser.y"
+#line 485 "llvmAsmParser.y"
{
if (yyvsp[0].UIntVal > (uint32_t)INT32_MAX) // Outside of my range!
ThrowException("Value too large for type!");
;
break;}
case 4:
-#line 490 "llvmAsmParser.y"
+#line 493 "llvmAsmParser.y"
{
if (yyvsp[0].UInt64Val > (uint64_t)INT64_MAX) // Outside of my range!
ThrowException("Value too large for type!");
;
break;}
case 47:
-#line 523 "llvmAsmParser.y"
+#line 526 "llvmAsmParser.y"
{
yyval.StrVal = yyvsp[-1].StrVal;
;
break;}
case 48:
-#line 526 "llvmAsmParser.y"
+#line 529 "llvmAsmParser.y"
{
yyval.StrVal = 0;
;
break;}
case 49:
-#line 533 "llvmAsmParser.y"
+#line 536 "llvmAsmParser.y"
{ // integral constants
if (!ConstPoolSInt::isValueValidForType(yyvsp[-1].TypeVal, yyvsp[0].SInt64Val))
ThrowException("Constant value doesn't fit in type!");
;
break;}
case 50:
-#line 538 "llvmAsmParser.y"
+#line 541 "llvmAsmParser.y"
{ // integral constants
if (!ConstPoolUInt::isValueValidForType(yyvsp[-1].TypeVal, yyvsp[0].UInt64Val))
ThrowException("Constant value doesn't fit in type!");
;
break;}
case 51:
-#line 543 "llvmAsmParser.y"
+#line 546 "llvmAsmParser.y"
{ // Boolean constants
yyval.ConstVal = new ConstPoolBool(true);
;
break;}
case 52:
-#line 546 "llvmAsmParser.y"
+#line 549 "llvmAsmParser.y"
{ // Boolean constants
yyval.ConstVal = new ConstPoolBool(false);
;
break;}
case 53:
-#line 549 "llvmAsmParser.y"
+#line 552 "llvmAsmParser.y"
{ // Float & Double constants
yyval.ConstVal = new ConstPoolFP(yyvsp[-1].TypeVal, yyvsp[0].FPVal);
;
break;}
case 54:
-#line 552 "llvmAsmParser.y"
+#line 555 "llvmAsmParser.y"
{ // String constants
cerr << "FIXME: TODO: String constants [sbyte] not implemented yet!\n";
abort();
;
break;}
case 55:
-#line 558 "llvmAsmParser.y"
+#line 561 "llvmAsmParser.y"
{ // Type constants
yyval.ConstVal = new ConstPoolType(yyvsp[0].TypeVal);
;
break;}
case 56:
-#line 561 "llvmAsmParser.y"
+#line 564 "llvmAsmParser.y"
{ // Nonempty array constant
// Verify all elements are correct type!
const ArrayType *AT = ArrayType::getArrayType(yyvsp[-4].TypeVal);
;
break;}
case 57:
-#line 574 "llvmAsmParser.y"
+#line 577 "llvmAsmParser.y"
{ // Empty array constant
vector<ConstPoolVal*> Empty;
yyval.ConstVal = new ConstPoolArray(ArrayType::getArrayType(yyvsp[-3].TypeVal), Empty);
;
break;}
case 58:
-#line 578 "llvmAsmParser.y"
+#line 581 "llvmAsmParser.y"
{
// Verify all elements are correct type!
const ArrayType *AT = ArrayType::getArrayType(yyvsp[-4].TypeVal, (int)yyvsp[-6].UInt64Val);
;
break;}
case 59:
-#line 596 "llvmAsmParser.y"
+#line 599 "llvmAsmParser.y"
{
if (yyvsp[-5].UInt64Val != 0)
ThrowException("Type mismatch: constant sized array initialized with 0"
;
break;}
case 60:
-#line 603 "llvmAsmParser.y"
+#line 606 "llvmAsmParser.y"
{
StructType::ElementTypes Types(yyvsp[-4].TypeList->begin(), yyvsp[-4].TypeList->end());
delete yyvsp[-4].TypeList;
;
break;}
case 61:
-#line 611 "llvmAsmParser.y"
+#line 614 "llvmAsmParser.y"
{
const StructType *St =
StructType::getStructType(StructType::ElementTypes());
;
break;}
case 62:
-#line 625 "llvmAsmParser.y"
+#line 628 "llvmAsmParser.y"
{
(yyval.ConstVector = yyvsp[-2].ConstVector)->push_back(addConstValToConstantPool(yyvsp[0].ConstVal));
;
break;}
case 63:
-#line 628 "llvmAsmParser.y"
+#line 631 "llvmAsmParser.y"
{
yyval.ConstVector = new vector<ConstPoolVal*>();
yyval.ConstVector->push_back(addConstValToConstantPool(yyvsp[0].ConstVal));
;
break;}
case 64:
-#line 638 "llvmAsmParser.y"
+#line 641 "llvmAsmParser.y"
{
if (yyvsp[-1].StrVal) {
yyvsp[0].ConstVal->setName(yyvsp[-1].StrVal);
;
break;}
case 65:
-#line 655 "llvmAsmParser.y"
+#line 658 "llvmAsmParser.y"
{
;
break;}
case 66:
-#line 666 "llvmAsmParser.y"
+#line 669 "llvmAsmParser.y"
{
yyval.ModuleVal = ParserResult = yyvsp[0].ModuleVal;
CurModule.ModuleDone();
;
break;}
case 67:
-#line 673 "llvmAsmParser.y"
+#line 676 "llvmAsmParser.y"
{
- yyvsp[-1].ModuleVal->getMethodList().push_back(yyvsp[0].MethodVal);
- CurMeth.MethodDone();
yyval.ModuleVal = yyvsp[-1].ModuleVal;
+ if (!yyvsp[0].MethodVal->getParent())
+ yyvsp[-1].ModuleVal->getMethodList().push_back(yyvsp[0].MethodVal);
+ CurMeth.MethodDone();
;
break;}
case 68:
-#line 678 "llvmAsmParser.y"
+#line 682 "llvmAsmParser.y"
+{
+ yyval.ModuleVal = yyvsp[-1].ModuleVal;
+ if (!yyvsp[0].MethodVal->getParent())
+ yyvsp[-1].ModuleVal->getMethodList().push_back(yyvsp[0].MethodVal);
+ CurMeth.MethodDone();
+ ;
+ break;}
+case 69:
+#line 688 "llvmAsmParser.y"
{
yyval.ModuleVal = CurModule.CurrentModule;
;
break;}
-case 70:
-#line 687 "llvmAsmParser.y"
+case 71:
+#line 697 "llvmAsmParser.y"
{ yyval.StrVal = 0; ;
break;}
-case 71:
-#line 689 "llvmAsmParser.y"
+case 72:
+#line 699 "llvmAsmParser.y"
{
yyval.MethArgVal = new MethodArgument(yyvsp[-1].TypeVal);
if (yyvsp[0].StrVal) { // Was the argument named?
}
;
break;}
-case 72:
-#line 697 "llvmAsmParser.y"
+case 73:
+#line 707 "llvmAsmParser.y"
{
yyval.MethodArgList = yyvsp[0].MethodArgList;
yyvsp[0].MethodArgList->push_front(yyvsp[-2].MethArgVal);
;
break;}
-case 73:
-#line 701 "llvmAsmParser.y"
+case 74:
+#line 711 "llvmAsmParser.y"
{
yyval.MethodArgList = new list<MethodArgument*>();
yyval.MethodArgList->push_front(yyvsp[0].MethArgVal);
;
break;}
-case 74:
-#line 706 "llvmAsmParser.y"
+case 75:
+#line 716 "llvmAsmParser.y"
{
yyval.MethodArgList = yyvsp[0].MethodArgList;
;
break;}
-case 75:
-#line 709 "llvmAsmParser.y"
+case 76:
+#line 719 "llvmAsmParser.y"
{
yyval.MethodArgList = 0;
;
break;}
-case 76:
-#line 713 "llvmAsmParser.y"
+case 77:
+#line 723 "llvmAsmParser.y"
{
MethodType::ParamTypes ParamTypeList;
if (yyvsp[-1].MethodArgList)
const MethodType *MT = MethodType::getMethodType(yyvsp[-4].TypeVal, ParamTypeList);
- Method *M = new Method(MT, yyvsp[-3].StrVal);
- free(yyvsp[-3].StrVal); // Free strdup'd memory!
+ Method *M = 0;
+ if (SymbolTable *ST = CurModule.CurrentModule->getSymbolTable()) {
+ if (Value *V = ST->lookup(MT, yyvsp[-3].StrVal)) { // Method already in symtab?
+ M = V->castMethodAsserting();
- InsertValue(M, CurModule.Values);
+ // Yes it is. If this is the case, either we need to be a forward decl,
+ // or it needs to be.
+ if (!CurMeth.isDeclare && !M->isExternal())
+ ThrowException("Redefinition of method '" + string(yyvsp[-3].StrVal) + "'!");
+ }
+ }
+
+ if (M == 0) { // Not already defined?
+ M = new Method(MT, yyvsp[-3].StrVal);
+ InsertValue(M, CurModule.Values);
+ }
+
+ free(yyvsp[-3].StrVal); // Free strdup'd memory!
CurMeth.MethodStart(M);
// Add all of the arguments we parsed to the method...
- if (yyvsp[-1].MethodArgList) { // Is null if empty...
+ if (yyvsp[-1].MethodArgList && !CurMeth.isDeclare) { // Is null if empty...
Method::ArgumentListType &ArgList = M->getArgumentList();
for (list<MethodArgument*>::iterator I = yyvsp[-1].MethodArgList->begin(); I != yyvsp[-1].MethodArgList->end(); ++I) {
}
;
break;}
-case 77:
-#line 740 "llvmAsmParser.y"
+case 78:
+#line 764 "llvmAsmParser.y"
{
yyval.MethodVal = CurMeth.CurrentMethod;
;
break;}
-case 78:
-#line 744 "llvmAsmParser.y"
+case 79:
+#line 768 "llvmAsmParser.y"
{
yyval.MethodVal = yyvsp[-1].MethodVal;
;
break;}
-case 79:
-#line 753 "llvmAsmParser.y"
+case 80:
+#line 772 "llvmAsmParser.y"
+{ CurMeth.isDeclare = true; ;
+ break;}
+case 81:
+#line 772 "llvmAsmParser.y"
+{
+ yyval.MethodVal = CurMeth.CurrentMethod;
+;
+ break;}
+case 82:
+#line 780 "llvmAsmParser.y"
{ // A reference to a direct constant
yyval.ValIDVal = ValID::create(yyvsp[0].SInt64Val);
;
break;}
-case 80:
-#line 756 "llvmAsmParser.y"
+case 83:
+#line 783 "llvmAsmParser.y"
{
yyval.ValIDVal = ValID::create(yyvsp[0].UInt64Val);
;
break;}
-case 81:
-#line 759 "llvmAsmParser.y"
+case 84:
+#line 786 "llvmAsmParser.y"
{ // Perhaps it's an FP constant?
yyval.ValIDVal = ValID::create(yyvsp[0].FPVal);
;
break;}
-case 82:
-#line 762 "llvmAsmParser.y"
+case 85:
+#line 789 "llvmAsmParser.y"
{
yyval.ValIDVal = ValID::create((int64_t)1);
;
break;}
-case 83:
-#line 765 "llvmAsmParser.y"
+case 86:
+#line 792 "llvmAsmParser.y"
{
yyval.ValIDVal = ValID::create((int64_t)0);
;
break;}
-case 84:
-#line 768 "llvmAsmParser.y"
+case 87:
+#line 795 "llvmAsmParser.y"
{ // Quoted strings work too... especially for methods
yyval.ValIDVal = ValID::create_conststr(yyvsp[0].StrVal);
;
break;}
-case 85:
-#line 773 "llvmAsmParser.y"
+case 88:
+#line 800 "llvmAsmParser.y"
{ // Is it an integer reference...?
yyval.ValIDVal = ValID::create(yyvsp[0].SIntVal);
;
break;}
-case 86:
-#line 776 "llvmAsmParser.y"
+case 89:
+#line 803 "llvmAsmParser.y"
{ // Is it a named reference...?
yyval.ValIDVal = ValID::create(yyvsp[0].StrVal);
;
break;}
-case 87:
-#line 779 "llvmAsmParser.y"
+case 90:
+#line 806 "llvmAsmParser.y"
{
yyval.ValIDVal = yyvsp[0].ValIDVal;
;
break;}
-case 88:
-#line 786 "llvmAsmParser.y"
+case 91:
+#line 813 "llvmAsmParser.y"
{
Value *D = getVal(Type::TypeTy, yyvsp[0].ValIDVal, true);
if (D == 0) ThrowException("Invalid user defined type: " + yyvsp[0].ValIDVal.getName());
yyval.TypeVal = CPT->getValue();
;
break;}
-case 89:
-#line 794 "llvmAsmParser.y"
+case 92:
+#line 821 "llvmAsmParser.y"
{ // Method derived type?
MethodType::ParamTypes Params(yyvsp[-1].TypeList->begin(), yyvsp[-1].TypeList->end());
delete yyvsp[-1].TypeList;
yyval.TypeVal = checkNewType(MethodType::getMethodType(yyvsp[-3].TypeVal, Params));
;
break;}
-case 90:
-#line 799 "llvmAsmParser.y"
+case 93:
+#line 826 "llvmAsmParser.y"
{ // Method derived type?
MethodType::ParamTypes Params; // Empty list
yyval.TypeVal = checkNewType(MethodType::getMethodType(yyvsp[-2].TypeVal, Params));
;
break;}
-case 91:
-#line 803 "llvmAsmParser.y"
+case 94:
+#line 830 "llvmAsmParser.y"
{
yyval.TypeVal = checkNewType(ArrayType::getArrayType(yyvsp[-1].TypeVal));
;
break;}
-case 92:
-#line 806 "llvmAsmParser.y"
+case 95:
+#line 833 "llvmAsmParser.y"
{
yyval.TypeVal = checkNewType(ArrayType::getArrayType(yyvsp[-1].TypeVal, (int)yyvsp[-3].UInt64Val));
;
break;}
-case 93:
-#line 809 "llvmAsmParser.y"
+case 96:
+#line 836 "llvmAsmParser.y"
{
StructType::ElementTypes Elements(yyvsp[-1].TypeList->begin(), yyvsp[-1].TypeList->end());
delete yyvsp[-1].TypeList;
yyval.TypeVal = checkNewType(StructType::getStructType(Elements));
;
break;}
-case 94:
-#line 814 "llvmAsmParser.y"
+case 97:
+#line 841 "llvmAsmParser.y"
{
yyval.TypeVal = checkNewType(StructType::getStructType(StructType::ElementTypes()));
;
break;}
-case 95:
-#line 817 "llvmAsmParser.y"
+case 98:
+#line 844 "llvmAsmParser.y"
{
yyval.TypeVal = checkNewType(PointerType::getPointerType(yyvsp[-1].TypeVal));
;
break;}
-case 96:
-#line 822 "llvmAsmParser.y"
+case 99:
+#line 849 "llvmAsmParser.y"
{
yyval.TypeList = new list<const Type*>();
yyval.TypeList->push_back(yyvsp[0].TypeVal);
;
break;}
-case 97:
-#line 826 "llvmAsmParser.y"
+case 100:
+#line 853 "llvmAsmParser.y"
{
(yyval.TypeList=yyvsp[-2].TypeList)->push_back(yyvsp[0].TypeVal);
;
break;}
-case 98:
-#line 831 "llvmAsmParser.y"
+case 101:
+#line 858 "llvmAsmParser.y"
{
yyvsp[-1].MethodVal->getBasicBlocks().push_back(yyvsp[0].BasicBlockVal);
yyval.MethodVal = yyvsp[-1].MethodVal;
;
break;}
-case 99:
-#line 835 "llvmAsmParser.y"
+case 102:
+#line 862 "llvmAsmParser.y"
{ // Do not allow methods with 0 basic blocks
yyval.MethodVal = yyvsp[-1].MethodVal; // in them...
yyvsp[-1].MethodVal->getBasicBlocks().push_back(yyvsp[0].BasicBlockVal);
;
break;}
-case 100:
-#line 844 "llvmAsmParser.y"
+case 103:
+#line 871 "llvmAsmParser.y"
{
yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].TermInstVal);
InsertValue(yyvsp[-1].BasicBlockVal);
yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal;
;
break;}
-case 101:
-#line 849 "llvmAsmParser.y"
+case 104:
+#line 876 "llvmAsmParser.y"
{
yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].TermInstVal);
yyvsp[-1].BasicBlockVal->setName(yyvsp[-2].StrVal);
yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal;
;
break;}
-case 102:
-#line 858 "llvmAsmParser.y"
+case 105:
+#line 885 "llvmAsmParser.y"
{
yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].InstVal);
yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal;
;
break;}
-case 103:
-#line 862 "llvmAsmParser.y"
+case 106:
+#line 889 "llvmAsmParser.y"
{
yyval.BasicBlockVal = new BasicBlock();
;
break;}
-case 104:
-#line 866 "llvmAsmParser.y"
+case 107:
+#line 893 "llvmAsmParser.y"
{ // Return with a result...
yyval.TermInstVal = new ReturnInst(getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
;
break;}
-case 105:
-#line 869 "llvmAsmParser.y"
+case 108:
+#line 896 "llvmAsmParser.y"
{ // Return with no result...
yyval.TermInstVal = new ReturnInst();
;
break;}
-case 106:
-#line 872 "llvmAsmParser.y"
+case 109:
+#line 899 "llvmAsmParser.y"
{ // Unconditional Branch...
yyval.TermInstVal = new BranchInst((BasicBlock*)getVal(Type::LabelTy, yyvsp[0].ValIDVal));
;
break;}
-case 107:
-#line 875 "llvmAsmParser.y"
+case 110:
+#line 902 "llvmAsmParser.y"
{
yyval.TermInstVal = new BranchInst((BasicBlock*)getVal(Type::LabelTy, yyvsp[-3].ValIDVal),
(BasicBlock*)getVal(Type::LabelTy, yyvsp[0].ValIDVal),
getVal(Type::BoolTy, yyvsp[-6].ValIDVal));
;
break;}
-case 108:
-#line 880 "llvmAsmParser.y"
+case 111:
+#line 907 "llvmAsmParser.y"
{
SwitchInst *S = new SwitchInst(getVal(yyvsp[-7].TypeVal, yyvsp[-6].ValIDVal),
(BasicBlock*)getVal(Type::LabelTy, yyvsp[-3].ValIDVal));
S->dest_push_back(I->first, I->second);
;
break;}
-case 109:
-#line 891 "llvmAsmParser.y"
+case 112:
+#line 918 "llvmAsmParser.y"
{
yyval.JumpTable = yyvsp[-5].JumpTable;
ConstPoolVal *V = (ConstPoolVal*)getVal(yyvsp[-4].TypeVal, yyvsp[-3].ValIDVal, true);
yyval.JumpTable->push_back(make_pair(V, (BasicBlock*)getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal)));
;
break;}
-case 110:
-#line 899 "llvmAsmParser.y"
+case 113:
+#line 926 "llvmAsmParser.y"
{
yyval.JumpTable = new list<pair<ConstPoolVal*, BasicBlock*> >();
ConstPoolVal *V = (ConstPoolVal*)getVal(yyvsp[-4].TypeVal, yyvsp[-3].ValIDVal, true);
yyval.JumpTable->push_back(make_pair(V, (BasicBlock*)getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal)));
;
break;}
-case 111:
-#line 909 "llvmAsmParser.y"
+case 114:
+#line 936 "llvmAsmParser.y"
{
if (yyvsp[-1].StrVal) // Is this definition named??
yyvsp[0].InstVal->setName(yyvsp[-1].StrVal); // if so, assign the name...
yyval.InstVal = yyvsp[0].InstVal;
;
break;}
-case 112:
-#line 917 "llvmAsmParser.y"
+case 115:
+#line 944 "llvmAsmParser.y"
{ // Used for PHI nodes
yyval.PHIList = new list<pair<Value*, BasicBlock*> >();
yyval.PHIList->push_back(make_pair(getVal(yyvsp[-5].TypeVal, yyvsp[-3].ValIDVal),
(BasicBlock*)getVal(Type::LabelTy, yyvsp[-1].ValIDVal)));
;
break;}
-case 113:
-#line 922 "llvmAsmParser.y"
+case 116:
+#line 949 "llvmAsmParser.y"
{
yyval.PHIList = yyvsp[-6].PHIList;
yyvsp[-6].PHIList->push_back(make_pair(getVal(yyvsp[-6].PHIList->front().first->getType(), yyvsp[-3].ValIDVal),
(BasicBlock*)getVal(Type::LabelTy, yyvsp[-1].ValIDVal)));
;
break;}
-case 114:
-#line 929 "llvmAsmParser.y"
+case 117:
+#line 956 "llvmAsmParser.y"
{ // Used for call statements...
yyval.ValueList = new list<Value*>();
yyval.ValueList->push_back(getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
;
break;}
-case 115:
-#line 933 "llvmAsmParser.y"
+case 118:
+#line 960 "llvmAsmParser.y"
{
yyval.ValueList = yyvsp[-3].ValueList;
yyvsp[-3].ValueList->push_back(getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
;
break;}
-case 117:
-#line 939 "llvmAsmParser.y"
+case 120:
+#line 966 "llvmAsmParser.y"
{ yyval.ValueList = 0; ;
break;}
-case 118:
-#line 941 "llvmAsmParser.y"
+case 121:
+#line 968 "llvmAsmParser.y"
{
yyval.InstVal = BinaryOperator::create(yyvsp[-4].BinaryOpVal, getVal(yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal), getVal(yyvsp[-3].TypeVal, yyvsp[0].ValIDVal));
if (yyval.InstVal == 0)
ThrowException("binary operator returned null!");
;
break;}
-case 119:
-#line 946 "llvmAsmParser.y"
+case 122:
+#line 973 "llvmAsmParser.y"
{
yyval.InstVal = UnaryOperator::create(yyvsp[-2].UnaryOpVal, getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
if (yyval.InstVal == 0)
ThrowException("unary operator returned null!");
;
break;}
-case 120:
-#line 951 "llvmAsmParser.y"
+case 123:
+#line 978 "llvmAsmParser.y"
{
if (yyvsp[-1].TypeVal != Type::UByteTy) ThrowException("Shift amount must be ubyte!");
yyval.InstVal = new ShiftInst(yyvsp[-5].OtherOpVal, getVal(yyvsp[-4].TypeVal, yyvsp[-3].ValIDVal), getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
;
break;}
-case 121:
-#line 955 "llvmAsmParser.y"
+case 124:
+#line 982 "llvmAsmParser.y"
{
yyval.InstVal = new CastInst(getVal(yyvsp[-3].TypeVal, yyvsp[-2].ValIDVal), yyvsp[0].TypeVal);
;
break;}
-case 122:
-#line 958 "llvmAsmParser.y"
+case 125:
+#line 985 "llvmAsmParser.y"
{
const Type *Ty = yyvsp[0].PHIList->front().first->getType();
yyval.InstVal = new PHINode(Ty);
delete yyvsp[0].PHIList; // Free the list...
;
break;}
-case 123:
-#line 969 "llvmAsmParser.y"
+case 126:
+#line 996 "llvmAsmParser.y"
{
if (!yyvsp[-4].TypeVal->isMethodType())
ThrowException("Can only call methods: invalid type '" +
yyval.InstVal = new CallInst((Method*)V, Params);
;
break;}
-case 124:
-#line 1006 "llvmAsmParser.y"
+case 127:
+#line 1033 "llvmAsmParser.y"
{
yyval.InstVal = yyvsp[0].InstVal;
;
break;}
-case 125:
-#line 1011 "llvmAsmParser.y"
+case 128:
+#line 1038 "llvmAsmParser.y"
{
yyval.ConstVector = yyvsp[0].ConstVector;
;
break;}
-case 126:
-#line 1013 "llvmAsmParser.y"
+case 129:
+#line 1040 "llvmAsmParser.y"
{
yyval.ConstVector = new vector<ConstPoolVal*>();
;
break;}
-case 127:
-#line 1017 "llvmAsmParser.y"
+case 130:
+#line 1044 "llvmAsmParser.y"
{
yyval.InstVal = new MallocInst(checkNewType(PointerType::getPointerType(yyvsp[0].TypeVal)));
;
break;}
-case 128:
-#line 1020 "llvmAsmParser.y"
+case 131:
+#line 1047 "llvmAsmParser.y"
{
if (!yyvsp[-3].TypeVal->isArrayType() || ((const ArrayType*)yyvsp[-3].TypeVal)->isSized())
ThrowException("Trying to allocate " + yyvsp[-3].TypeVal->getName() +
yyval.InstVal = new MallocInst(Ty, getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
;
break;}
-case 129:
-#line 1027 "llvmAsmParser.y"
+case 132:
+#line 1054 "llvmAsmParser.y"
{
yyval.InstVal = new AllocaInst(checkNewType(PointerType::getPointerType(yyvsp[0].TypeVal)));
;
break;}
-case 130:
-#line 1030 "llvmAsmParser.y"
+case 133:
+#line 1057 "llvmAsmParser.y"
{
if (!yyvsp[-3].TypeVal->isArrayType() || ((const ArrayType*)yyvsp[-3].TypeVal)->isSized())
ThrowException("Trying to allocate " + yyvsp[-3].TypeVal->getName() +
yyval.InstVal = new AllocaInst(Ty, ArrSize);
;
break;}
-case 131:
-#line 1038 "llvmAsmParser.y"
+case 134:
+#line 1065 "llvmAsmParser.y"
{
if (!yyvsp[-1].TypeVal->isPointerType())
ThrowException("Trying to free nonpointer type " + yyvsp[-1].TypeVal->getName() + "!");
yyval.InstVal = new FreeInst(getVal(yyvsp[-1].TypeVal, yyvsp[0].ValIDVal));
;
break;}
-case 132:
-#line 1044 "llvmAsmParser.y"
+case 135:
+#line 1071 "llvmAsmParser.y"
{
if (!yyvsp[-2].TypeVal->isPointerType())
ThrowException("Can't load from nonpointer type: " + yyvsp[-2].TypeVal->getName());
delete yyvsp[0].ConstVector; // Free the vector...
;
break;}
-case 133:
-#line 1053 "llvmAsmParser.y"
+case 136:
+#line 1080 "llvmAsmParser.y"
{
if (!yyvsp[-2].TypeVal->isPointerType())
ThrowException("Can't store to a nonpointer type: " + yyvsp[-2].TypeVal->getName());
delete yyvsp[0].ConstVector;
;
break;}
-case 134:
-#line 1065 "llvmAsmParser.y"
+case 137:
+#line 1092 "llvmAsmParser.y"
{
if (!yyvsp[-2].TypeVal->isPointerType())
ThrowException("getelementptr insn requires pointer operand!");
}
return 1;
}
-#line 1075 "llvmAsmParser.y"
+#line 1102 "llvmAsmParser.y"
int yyerror(const char *ErrorMsg) {
ThrowException(string("Parse error: ") + ErrorMsg);