[llvm-commits] [vector_llvm] CVS: llvm/lib/AsmParser/Lexer.cpp Lexer.l llvmAsmParser.cpp llvmAsmParser.h llvmAsmParser.y
Robert Bocchino
bocchino at cs.uiuc.edu
Tue Oct 18 12:22:23 PDT 2005
Changes in directory llvm/lib/AsmParser:
Lexer.cpp updated: 1.10 -> 1.10.2.1
Lexer.l updated: 1.64 -> 1.64.2.1
llvmAsmParser.cpp updated: 1.17 -> 1.17.2.1
llvmAsmParser.h updated: 1.9 -> 1.9.2.1
llvmAsmParser.y updated: 1.231 -> 1.231.2.1
---
Log message:
Initial commit of Vector LLVM.
---
Diffs of the changes: (+3157 -3350)
Lexer.cpp | 1151 +++++++-----
Lexer.l | 19
llvmAsmParser.cpp | 4799 ++++++++++++++++++++++++------------------------------
llvmAsmParser.h | 341 +--
llvmAsmParser.y | 197 +-
5 files changed, 3157 insertions(+), 3350 deletions(-)
Index: llvm/lib/AsmParser/Lexer.cpp
diff -u llvm/lib/AsmParser/Lexer.cpp:1.10 llvm/lib/AsmParser/Lexer.cpp:1.10.2.1
--- llvm/lib/AsmParser/Lexer.cpp:1.10 Sat Aug 27 13:50:38 2005
+++ llvm/lib/AsmParser/Lexer.cpp Tue Oct 18 14:21:56 2005
@@ -20,7 +20,7 @@
/* A lexical scanner generated by flex */
/* Scanner skeleton version:
- * $Header: /home/vadve/shared/PublicCVS/llvm/lib/AsmParser/Lexer.cpp,v 1.10 2005/08/27 18:50:38 reid Exp $
+ * $Header: /home/vadve/shared/PublicCVS/llvm/lib/AsmParser/Lexer.cpp,v 1.10.2.1 2005/10/18 19:21:56 bocchino Exp $
*/
#define FLEX_SCANNER
@@ -28,7 +28,6 @@
#define YY_FLEX_MINOR_VERSION 5
#include <stdio.h>
-#include <unistd.h>
/* cfront 1.2 defines "c_plusplus" instead of "__cplusplus" */
@@ -42,6 +41,7 @@
#ifdef __cplusplus
#include <stdlib.h>
+#include <unistd.h>
/* Use prototypes in function declarations. */
#define YY_USE_PROTOS
@@ -308,32 +308,35 @@
*yy_cp = '\0'; \
yy_c_buf_p = yy_cp;
-#define YY_NUM_RULES 99
-#define YY_END_OF_BUFFER 100
-static yyconst short int yy_acclist[177] =
+#define YY_NUM_RULES 116
+#define YY_END_OF_BUFFER 117
+static yyconst short int yy_acclist[194] =
{ 0,
- 100, 98, 99, 97, 98, 99, 97, 99, 98, 99,
- 98, 99, 98, 99, 98, 99, 98, 99, 98, 99,
- 90, 98, 99, 90, 98, 99, 1, 98, 99, 98,
- 99, 98, 99, 98, 99, 98, 99, 98, 99, 98,
- 99, 98, 99, 98, 99, 98, 99, 98, 99, 98,
- 99, 98, 99, 98, 99, 98, 99, 98, 99, 98,
- 99, 98, 99, 98, 99, 98, 99, 98, 99, 98,
- 99, 89, 87, 86, 86, 93, 91, 95, 90, 1,
- 75, 32, 57, 20, 89, 86, 86, 94, 95, 17,
- 95, 96, 51, 56, 30, 33, 54, 3, 42, 53,
-
- 22, 65, 55, 74, 69, 70, 52, 58, 88, 95,
- 95, 37, 66, 67, 82, 83, 44, 19, 92, 23,
- 4, 49, 43, 36, 11, 95, 2, 5, 46, 48,
- 38, 60, 64, 62, 63, 61, 59, 40, 84, 39,
- 45, 18, 72, 81, 35, 47, 27, 21, 34, 7,
- 77, 29, 80, 50, 68, 76, 24, 25, 78, 41,
- 73, 71, 6, 26, 8, 14, 9, 10, 31, 12,
- 28, 79, 85, 13, 15, 16
+ 117, 115, 116, 114, 115, 116, 114, 116, 115, 116,
+ 115, 116, 115, 116, 115, 116, 115, 116, 115, 116,
+ 107, 115, 116, 107, 115, 116, 1, 115, 116, 115,
+ 116, 115, 116, 115, 116, 115, 116, 115, 116, 115,
+ 116, 115, 116, 115, 116, 115, 116, 115, 116, 115,
+ 116, 115, 116, 115, 116, 115, 116, 115, 116, 115,
+ 116, 115, 116, 115, 116, 115, 116, 115, 116, 115,
+ 116, 106, 104, 103, 103, 110, 108, 112, 107, 1,
+ 83, 33, 102, 58, 20, 106, 103, 103, 111, 112,
+ 17, 112, 113, 52, 57, 30, 34, 55, 3, 43,
+
+ 54, 22, 72, 56, 82, 77, 78, 53, 59, 105,
+ 112, 112, 38, 73, 74, 90, 91, 45, 19, 109,
+ 23, 4, 50, 44, 95, 37, 11, 112, 2, 5,
+ 32, 47, 49, 39, 61, 65, 63, 64, 62, 60,
+ 41, 92, 40, 46, 18, 80, 89, 36, 48, 27,
+ 21, 35, 7, 85, 29, 88, 51, 75, 84, 24,
+ 25, 86, 42, 81, 79, 101, 67, 71, 69, 70,
+ 68, 66, 99, 6, 26, 97, 94, 76, 8, 14,
+ 9, 10, 31, 96, 12, 28, 87, 93, 13, 100,
+ 98, 15, 16
+
} ;
-static yyconst short int yy_accept[398] =
+static yyconst short int yy_accept[463] =
{ 0,
1, 1, 1, 2, 4, 7, 9, 11, 13, 15,
17, 19, 21, 24, 27, 30, 32, 34, 36, 38,
@@ -343,42 +346,49 @@
81, 81, 81, 81, 81, 81, 81, 81, 82, 82,
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
83, 83, 83, 83, 83, 83, 83, 83, 83, 83,
- 83, 83, 84, 84, 84, 84, 84, 84, 84, 84,
- 84, 84, 84, 84, 85, 85, 85, 85, 85, 85,
-
- 85, 85, 85, 85, 85, 85, 85, 86, 87, 89,
- 90, 91, 92, 92, 93, 94, 94, 95, 95, 95,
- 96, 96, 96, 96, 97, 97, 97, 97, 97, 98,
- 98, 99, 99, 99, 99, 99, 99, 99, 99, 99,
- 99, 100, 100, 100, 100, 100, 100, 100, 100, 101,
- 102, 102, 102, 103, 103, 104, 105, 105, 105, 105,
- 105, 106, 106, 107, 107, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
- 108, 108, 108, 108, 108, 108, 109, 109, 110, 111,
- 111, 111, 111, 112, 112, 112, 112, 113, 114, 115,
-
- 115, 115, 115, 115, 115, 115, 115, 115, 115, 115,
- 115, 116, 116, 116, 116, 116, 116, 116, 116, 116,
- 117, 118, 118, 119, 119, 119, 120, 120, 120, 120,
- 120, 120, 120, 120, 120, 120, 121, 121, 121, 122,
- 123, 123, 124, 124, 124, 124, 124, 124, 124, 124,
- 124, 124, 125, 125, 126, 126, 127, 127, 127, 128,
- 128, 128, 128, 128, 128, 128, 128, 128, 129, 129,
- 130, 130, 130, 130, 130, 130, 131, 131, 131, 131,
- 131, 131, 132, 132, 133, 134, 135, 136, 137, 138,
- 139, 140, 140, 140, 140, 141, 142, 143, 143, 143,
-
- 143, 143, 143, 144, 144, 144, 144, 145, 145, 146,
- 146, 146, 146, 147, 148, 149, 149, 150, 150, 151,
- 151, 151, 152, 152, 153, 154, 155, 155, 156, 157,
- 158, 159, 159, 159, 160, 161, 162, 163, 163, 163,
- 163, 163, 164, 165, 165, 165, 165, 165, 165, 165,
- 165, 165, 165, 165, 165, 166, 167, 167, 167, 168,
- 169, 169, 169, 169, 170, 170, 171, 171, 171, 171,
- 171, 171, 171, 171, 171, 171, 171, 171, 171, 171,
- 171, 172, 172, 173, 173, 173, 173, 173, 173, 174,
- 174, 175, 175, 176, 176, 177, 177
+ 83, 83, 84, 84, 85, 85, 85, 85, 85, 85,
+ 85, 85, 85, 85, 85, 85, 86, 86, 86, 86,
+ 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
+ 86, 86, 86, 87, 88, 90, 91, 92, 93, 93,
+ 94, 95, 95, 96, 96, 96, 97, 97, 97, 97,
+ 98, 98, 98, 98, 98, 98, 99, 99, 100, 100,
+ 100, 100, 100, 100, 100, 100, 100, 100, 100, 101,
+ 101, 101, 101, 101, 101, 101, 101, 102, 103, 103,
+ 103, 104, 104, 105, 106, 106, 106, 106, 106, 107,
+ 107, 108, 108, 109, 109, 109, 109, 109, 109, 109,
+ 109, 109, 109, 109, 109, 109, 109, 109, 109, 109,
+ 109, 109, 109, 109, 109, 109, 109, 109, 109, 110,
+
+ 110, 111, 112, 112, 112, 112, 113, 113, 113, 113,
+ 114, 115, 116, 116, 116, 116, 116, 116, 116, 116,
+ 116, 116, 116, 116, 116, 116, 116, 117, 117, 117,
+ 117, 117, 117, 117, 117, 117, 118, 119, 119, 120,
+ 120, 120, 121, 121, 121, 121, 121, 121, 121, 121,
+ 121, 121, 122, 122, 122, 123, 124, 124, 125, 125,
+ 125, 125, 125, 125, 125, 125, 125, 125, 125, 125,
+ 126, 127, 127, 127, 127, 127, 128, 128, 129, 129,
+ 129, 130, 130, 130, 130, 130, 130, 130, 130, 130,
+ 130, 130, 131, 131, 132, 133, 133, 133, 133, 133,
+
+ 133, 134, 134, 134, 134, 134, 134, 135, 135, 136,
+ 137, 138, 139, 140, 141, 142, 143, 143, 143, 143,
+ 144, 145, 146, 146, 146, 146, 146, 146, 147, 147,
+ 147, 147, 147, 147, 147, 147, 147, 147, 147, 147,
+ 148, 148, 149, 149, 149, 149, 149, 150, 151, 152,
+ 152, 152, 153, 153, 154, 154, 154, 155, 155, 156,
+ 157, 158, 158, 159, 160, 161, 162, 162, 162, 163,
+ 164, 165, 166, 167, 167, 167, 167, 167, 168, 169,
+ 170, 171, 172, 173, 173, 173, 174, 174, 175, 176,
+ 176, 177, 177, 177, 177, 177, 177, 177, 177, 178,
+
+ 178, 178, 179, 179, 179, 179, 180, 181, 181, 181,
+ 181, 182, 183, 183, 183, 183, 184, 185, 185, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 186, 186, 186, 186, 186, 186, 186, 186, 186, 186,
+ 187, 187, 188, 188, 188, 188, 188, 188, 188, 188,
+ 188, 188, 189, 189, 190, 190, 191, 192, 193, 193,
+ 194, 194
} ;
static yyconst int yy_ec[256] =
@@ -422,205 +432,232 @@
3
} ;
-static yyconst short int yy_base[402] =
+static yyconst short int yy_base[467] =
{ 0,
- 0, 0, 834, 835, 835, 835, 829, 820, 34, 36,
+ 0, 0, 964, 965, 965, 965, 959, 950, 34, 36,
38, 42, 46, 50, 0, 51, 54, 53, 56, 61,
76, 77, 79, 80, 82, 83, 84, 90, 31, 111,
- 94, 140, 113, 55, 110, 116, 827, 835, 818, 835,
- 0, 128, 131, 144, 150, 124, 160, 167, 172, 0,
- 136, 89, 168, 100, 41, 145, 114, 817, 139, 183,
- 184, 185, 173, 186, 187, 189, 191, 133, 188, 193,
- 200, 202, 194, 203, 205, 215, 208, 211, 207, 214,
- 57, 816, 224, 225, 227, 231, 233, 234, 241, 235,
- 236, 239, 247, 815, 251, 244, 245, 248, 254, 266,
-
- 255, 276, 269, 278, 270, 277, 814, 0, 287, 291,
- 813, 303, 309, 0, 812, 295, 811, 288, 310, 810,
- 296, 299, 315, 809, 316, 317, 318, 319, 808, 240,
- 322, 320, 321, 325, 326, 327, 328, 331, 336, 341,
- 343, 344, 345, 346, 348, 350, 353, 351, 807, 806,
- 355, 357, 805, 359, 804, 803, 380, 361, 363, 391,
- 802, 373, 801, 374, 800, 369, 365, 393, 396, 398,
- 401, 397, 399, 409, 403, 411, 405, 368, 413, 416,
- 417, 418, 367, 419, 423, 799, 425, 835, 431, 437,
- 443, 446, 449, 450, 439, 451, 798, 797, 796, 452,
-
- 453, 455, 454, 458, 461, 462, 463, 465, 464, 469,
- 795, 470, 472, 478, 475, 479, 480, 482, 483, 794,
- 793, 486, 792, 488, 490, 0, 494, 499, 489, 501,
- 502, 505, 497, 507, 508, 791, 517, 518, 790, 789,
- 519, 788, 521, 527, 522, 529, 523, 530, 531, 536,
- 538, 787, 539, 786, 541, 544, 544, 545, 785, 548,
- 556, 546, 557, 550, 558, 560, 564, 784, 566, 783,
- 568, 569, 570, 571, 576, 782, 572, 578, 590, 582,
- 592, 781, 579, 780, 779, 778, 777, 776, 775, 774,
- 773, 593, 580, 595, 772, 771, 770, 594, 599, 600,
-
- 596, 598, 769, 607, 610, 611, 768, 612, 767, 614,
- 613, 615, 766, 765, 764, 616, 763, 618, 762, 620,
- 627, 761, 626, 760, 759, 758, 624, 757, 756, 755,
- 754, 635, 638, 753, 752, 749, 739, 636, 639, 640,
- 641, 738, 737, 643, 644, 642, 646, 647, 649, 655,
- 662, 654, 665, 666, 736, 735, 668, 669, 734, 733,
- 670, 672, 673, 732, 676, 731, 674, 675, 678, 681,
- 684, 686, 682, 690, 693, 695, 696, 700, 698, 703,
- 730, 708, 728, 706, 704, 709, 710, 711, 726, 712,
- 722, 714, 574, 720, 491, 835, 753, 755, 280, 759,
-
- 161
+ 110, 141, 164, 55, 100, 104, 957, 965, 948, 965,
+ 0, 123, 126, 145, 151, 119, 162, 181, 189, 0,
+ 132, 99, 145, 127, 41, 155, 112, 947, 152, 126,
+ 168, 193, 176, 190, 202, 204, 203, 205, 206, 207,
+ 136, 208, 209, 213, 215, 217, 230, 157, 222, 219,
+ 229, 946, 57, 945, 220, 239, 241, 223, 231, 243,
+ 253, 245, 248, 249, 256, 944, 260, 246, 251, 255,
+
+ 267, 270, 275, 276, 282, 290, 286, 288, 297, 294,
+ 292, 298, 943, 0, 309, 311, 942, 318, 330, 0,
+ 941, 305, 940, 315, 322, 939, 331, 332, 311, 938,
+ 333, 336, 337, 338, 339, 937, 343, 344, 351, 352,
+ 340, 345, 355, 358, 356, 366, 370, 367, 369, 371,
+ 372, 374, 377, 379, 380, 383, 936, 935, 384, 385,
+ 934, 386, 933, 932, 408, 396, 392, 412, 931, 404,
+ 930, 409, 929, 397, 393, 422, 424, 426, 428, 431,
+ 432, 434, 436, 439, 438, 440, 441, 390, 442, 448,
+ 444, 446, 449, 394, 461, 468, 460, 450, 928, 452,
+
+ 965, 473, 482, 486, 488, 491, 492, 462, 493, 927,
+ 926, 925, 494, 495, 474, 498, 496, 500, 502, 504,
+ 505, 506, 512, 513, 514, 516, 924, 517, 519, 518,
+ 525, 528, 529, 530, 534, 923, 922, 533, 921, 531,
+ 535, 0, 536, 540, 537, 541, 543, 553, 538, 554,
+ 560, 920, 556, 559, 919, 918, 568, 917, 569, 571,
+ 570, 573, 572, 575, 576, 579, 582, 584, 300, 916,
+ 915, 585, 587, 586, 603, 914, 588, 593, 593, 599,
+ 913, 604, 600, 616, 594, 613, 622, 606, 605, 624,
+ 625, 912, 626, 911, 910, 627, 629, 630, 634, 638,
+
+ 909, 635, 639, 642, 645, 650, 908, 637, 907, 906,
+ 905, 904, 903, 902, 901, 900, 643, 640, 653, 899,
+ 898, 897, 656, 657, 658, 661, 665, 896, 667, 668,
+ 669, 670, 671, 673, 672, 677, 682, 687, 681, 895,
+ 675, 894, 693, 695, 697, 685, 893, 892, 891, 699,
+ 701, 890, 703, 889, 708, 709, 888, 711, 887, 886,
+ 885, 710, 884, 883, 882, 881, 713, 715, 880, 879,
+ 878, 877, 876, 716, 720, 721, 722, 875, 874, 873,
+ 872, 871, 870, 723, 725, 729, 728, 867, 858, 732,
+ 734, 739, 733, 740, 744, 741, 749, 752, 857, 756,
+
+ 746, 853, 758, 759, 760, 852, 851, 761, 762, 764,
+ 849, 848, 769, 768, 766, 845, 843, 771, 842, 777,
+ 780, 773, 785, 774, 778, 792, 788, 794, 795, 797,
+ 798, 799, 800, 804, 802, 805, 806, 801, 809, 841,
+ 818, 840, 812, 819, 820, 823, 828, 826, 830, 831,
+ 832, 839, 833, 674, 838, 458, 350, 348, 835, 261,
+ 965, 871, 873, 179, 877, 138
} ;
-static yyconst short int yy_def[402] =
+static yyconst short int yy_def[467] =
{ 0,
- 396, 1, 396, 396, 396, 396, 397, 398, 399, 396,
- 398, 398, 398, 398, 400, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 397, 396, 398, 396,
- 401, 401, 396, 396, 398, 398, 398, 398, 398, 400,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
-
- 398, 398, 398, 398, 398, 398, 396, 401, 401, 396,
- 398, 398, 398, 49, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 49, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 396, 396, 396,
- 396, 398, 398, 398, 398, 398, 398, 398, 398, 398,
-
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 157, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 396, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
-
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 398, 398, 398, 398, 398,
- 398, 398, 398, 398, 398, 0, 396, 396, 396, 396,
-
- 396
+ 461, 1, 461, 461, 461, 461, 462, 463, 464, 461,
+ 463, 463, 463, 463, 465, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 462, 461, 463, 461,
+ 466, 466, 461, 461, 463, 463, 463, 463, 463, 465,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 461, 466, 466, 461, 463, 463, 463, 49,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 49, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+
+ 461, 461, 461, 461, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 165, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 461, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 463, 463, 463, 463, 463, 463, 463, 463, 463, 463,
+ 0, 461, 461, 461, 461, 461
} ;
-static yyconst short int yy_nxt[877] =
+static yyconst short int yy_nxt[1007] =
{ 0,
4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
14, 4, 15, 8, 8, 8, 16, 17, 18, 19,
20, 21, 22, 8, 23, 8, 24, 25, 26, 27,
28, 8, 29, 30, 31, 32, 33, 34, 35, 8,
36, 42, 40, 43, 43, 44, 44, 45, 45, 40,
- 46, 85, 40, 40, 47, 48, 48, 40, 47, 48,
- 48, 40, 40, 119, 40, 40, 40, 40, 40, 59,
- 51, 60, 40, 152, 55, 104, 62, 52, 56, 53,
+ 46, 87, 40, 40, 47, 48, 48, 40, 47, 48,
+ 48, 40, 40, 125, 40, 40, 40, 40, 40, 59,
+ 51, 60, 40, 160, 55, 110, 62, 52, 56, 53,
63, 54, 61, 57, 49, 64, 58, 40, 40, 65,
- 40, 40, 67, 40, 40, 40, 74, 70, 77, 66,
+ 40, 40, 67, 40, 40, 40, 75, 71, 78, 66,
+
+ 68, 40, 69, 72, 76, 82, 73, 74, 70, 77,
+ 40, 40, 80, 85, 83, 40, 84, 79, 81, 86,
+ 88, 40, 40, 40, 112, 122, 95, 117, 89, 111,
+ 40, 90, 115, 115, 91, 43, 43, 40, 40, 96,
+ 114, 127, 97, 40, 130, 92, 93, 40, 94, 98,
+ 88, 121, 40, 116, 44, 44, 40, 124, 99, 47,
+ 45, 45, 40, 40, 123, 100, 40, 101, 40, 102,
+ 146, 118, 118, 40, 103, 40, 119, 126, 128, 40,
+ 104, 41, 119, 156, 105, 129, 106, 40, 107, 47,
+ 48, 48, 40, 108, 131, 132, 133, 109, 120, 120,
+
+ 40, 40, 120, 120, 40, 120, 120, 120, 120, 120,
+ 120, 134, 136, 40, 40, 40, 40, 40, 40, 40,
+ 40, 138, 139, 135, 40, 137, 40, 145, 40, 141,
+ 40, 40, 151, 40, 40, 144, 142, 147, 140, 148,
+ 40, 40, 40, 143, 161, 152, 154, 149, 157, 150,
+ 40, 153, 40, 158, 40, 159, 40, 40, 155, 40,
+ 40, 165, 40, 162, 40, 173, 40, 40, 163, 167,
+ 166, 40, 40, 174, 172, 164, 179, 168, 40, 169,
+ 175, 40, 170, 181, 177, 171, 40, 40, 176, 183,
+ 180, 188, 189, 40, 184, 178, 182, 40, 187, 40,
+
+ 191, 40, 185, 40, 190, 40, 192, 186, 40, 40,
+ 198, 40, 194, 193, 195, 196, 40, 197, 115, 115,
+ 202, 202, 40, 331, 199, 203, 40, 118, 118, 40,
+ 200, 203, 119, 40, 207, 208, 204, 205, 119, 206,
+ 206, 40, 40, 40, 40, 212, 209, 40, 40, 40,
+ 40, 40, 213, 214, 40, 40, 40, 210, 211, 40,
+ 218, 40, 40, 40, 216, 217, 40, 40, 219, 40,
+ 215, 220, 221, 223, 226, 225, 227, 40, 40, 224,
+ 40, 40, 40, 40, 222, 40, 228, 229, 40, 231,
+ 40, 40, 233, 230, 40, 40, 40, 40, 236, 234,
+
+ 232, 40, 237, 40, 40, 40, 265, 40, 40, 238,
+ 239, 235, 244, 271, 241, 40, 240, 242, 242, 252,
+ 40, 242, 242, 40, 242, 242, 242, 242, 242, 242,
+ 243, 251, 245, 40, 246, 40, 249, 40, 247, 40,
+ 248, 250, 40, 40, 253, 40, 255, 40, 256, 40,
+ 40, 40, 40, 40, 254, 40, 260, 40, 262, 40,
+ 40, 40, 259, 40, 263, 257, 258, 261, 267, 40,
+ 264, 40, 40, 40, 266, 276, 270, 272, 268, 40,
+ 269, 277, 202, 202, 273, 40, 274, 203, 204, 204,
+ 280, 278, 278, 203, 275, 278, 278, 206, 206, 40,
+
+ 206, 206, 40, 40, 40, 40, 40, 40, 284, 40,
+ 279, 40, 282, 40, 285, 40, 40, 40, 288, 283,
+ 286, 281, 291, 40, 40, 40, 287, 40, 40, 40,
+ 40, 293, 292, 294, 289, 297, 40, 290, 298, 40,
+ 40, 40, 40, 296, 40, 40, 40, 40, 40, 40,
+ 295, 40, 40, 300, 40, 301, 307, 299, 308, 302,
+ 303, 310, 304, 312, 40, 40, 305, 40, 309, 306,
+ 40, 40, 315, 314, 316, 311, 318, 313, 317, 40,
+ 40, 40, 40, 40, 40, 319, 40, 40, 320, 324,
+ 40, 321, 322, 40, 323, 40, 40, 40, 40, 40,
+
+ 325, 328, 278, 278, 40, 40, 334, 326, 327, 340,
+ 40, 40, 339, 330, 40, 40, 40, 40, 341, 332,
+ 329, 333, 342, 335, 40, 336, 345, 40, 343, 337,
+ 346, 338, 344, 40, 348, 40, 40, 40, 40, 349,
+ 40, 40, 347, 351, 352, 40, 40, 353, 40, 40,
+ 40, 40, 350, 40, 40, 354, 40, 355, 357, 359,
+ 360, 40, 356, 358, 40, 361, 364, 40, 40, 40,
+ 362, 363, 40, 366, 365, 368, 40, 369, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 371, 40, 374,
+ 367, 377, 40, 40, 375, 370, 40, 379, 40, 385,
+
+ 373, 372, 381, 378, 40, 376, 40, 383, 40, 384,
+ 40, 380, 40, 386, 40, 390, 382, 388, 389, 40,
+ 40, 40, 40, 387, 40, 394, 40, 40, 393, 395,
+ 392, 40, 40, 40, 40, 391, 40, 397, 398, 40,
+ 40, 401, 396, 40, 40, 40, 400, 403, 399, 405,
+ 40, 40, 40, 404, 408, 40, 402, 40, 407, 409,
+ 40, 410, 406, 40, 412, 414, 411, 40, 415, 40,
+ 40, 40, 40, 40, 413, 40, 416, 40, 417, 40,
+ 40, 419, 40, 426, 40, 40, 420, 421, 40, 40,
+ 422, 40, 418, 424, 425, 427, 40, 428, 423, 40,
+
+ 429, 431, 433, 40, 435, 40, 40, 430, 40, 40,
+ 40, 40, 40, 40, 432, 40, 40, 40, 434, 440,
+ 40, 436, 437, 40, 442, 444, 445, 438, 443, 40,
+ 40, 40, 439, 447, 40, 446, 449, 40, 448, 40,
+ 441, 40, 40, 40, 40, 454, 40, 450, 451, 40,
+ 40, 40, 40, 40, 40, 452, 40, 453, 459, 40,
+ 40, 458, 40, 40, 40, 456, 457, 460, 40, 40,
+ 455, 37, 37, 37, 37, 39, 39, 50, 40, 50,
+ 50, 40, 40, 40, 40, 40, 40, 40, 40, 40,
+ 40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 68, 71, 75, 40, 72, 73, 69, 76,
- 93, 40, 79, 83, 81, 116, 82, 78, 80, 84,
- 86, 40, 40, 94, 40, 40, 95, 40, 87, 102,
- 118, 88, 111, 96, 89, 40, 106, 109, 109, 105,
- 43, 43, 103, 121, 40, 90, 91, 40, 92, 86,
- 40, 40, 110, 44, 44, 115, 40, 97, 47, 45,
- 45, 40, 136, 108, 98, 122, 99, 120, 100, 112,
- 112, 40, 123, 101, 113, 47, 48, 48, 40, 40,
- 113, 114, 114, 40, 40, 114, 114, 117, 114, 114,
- 114, 114, 114, 114, 40, 40, 40, 40, 40, 40,
-
- 40, 124, 40, 127, 40, 40, 131, 132, 137, 129,
- 125, 40, 126, 40, 40, 128, 40, 134, 40, 40,
- 143, 130, 40, 133, 135, 40, 40, 138, 141, 139,
- 142, 146, 140, 144, 148, 40, 40, 149, 40, 145,
- 151, 150, 40, 147, 40, 40, 40, 40, 153, 154,
- 40, 40, 40, 165, 155, 40, 40, 204, 40, 40,
- 159, 156, 40, 166, 164, 40, 40, 161, 160, 157,
- 162, 167, 158, 163, 171, 169, 173, 40, 179, 168,
- 40, 40, 41, 174, 172, 175, 170, 40, 40, 40,
- 176, 180, 181, 183, 185, 184, 109, 109, 177, 40,
-
- 189, 189, 186, 178, 182, 190, 40, 40, 195, 187,
- 40, 190, 112, 112, 40, 191, 192, 113, 193, 193,
- 40, 40, 197, 113, 194, 198, 40, 40, 40, 40,
- 40, 40, 40, 40, 196, 200, 40, 40, 40, 40,
- 206, 207, 40, 210, 202, 203, 205, 40, 211, 199,
- 201, 212, 40, 213, 40, 40, 40, 40, 208, 40,
- 209, 40, 40, 215, 40, 217, 40, 214, 40, 220,
- 40, 218, 40, 216, 40, 221, 40, 222, 40, 40,
- 40, 223, 219, 228, 40, 40, 252, 225, 224, 226,
- 226, 236, 247, 226, 226, 227, 226, 226, 226, 226,
-
- 226, 226, 40, 235, 40, 233, 234, 40, 40, 40,
- 40, 229, 40, 230, 40, 237, 40, 231, 239, 232,
- 40, 240, 40, 244, 40, 246, 238, 40, 40, 40,
- 40, 241, 249, 242, 40, 253, 40, 243, 251, 245,
- 189, 189, 248, 191, 191, 190, 256, 256, 254, 250,
- 40, 190, 256, 256, 255, 193, 193, 40, 193, 193,
- 40, 40, 40, 40, 40, 40, 40, 258, 257, 40,
- 260, 262, 40, 40, 40, 40, 40, 265, 263, 259,
- 40, 40, 269, 40, 264, 268, 40, 261, 272, 40,
- 40, 40, 266, 40, 40, 267, 271, 40, 273, 40,
-
- 40, 40, 40, 270, 275, 40, 276, 274, 40, 278,
- 40, 277, 40, 40, 282, 279, 40, 283, 40, 40,
- 284, 285, 287, 280, 281, 289, 292, 291, 40, 40,
- 40, 290, 40, 40, 40, 286, 288, 293, 40, 295,
- 40, 40, 40, 296, 294, 299, 298, 40, 297, 40,
- 40, 300, 40, 256, 256, 40, 40, 40, 303, 40,
- 307, 40, 301, 302, 308, 306, 309, 40, 40, 40,
- 313, 40, 310, 305, 312, 40, 304, 40, 311, 40,
- 40, 40, 40, 40, 317, 40, 314, 40, 318, 40,
- 40, 40, 316, 40, 315, 319, 322, 320, 324, 321,
-
- 323, 40, 326, 40, 40, 40, 40, 40, 325, 40,
- 40, 40, 327, 328, 330, 331, 329, 333, 40, 334,
- 336, 40, 40, 40, 40, 40, 40, 40, 332, 40,
- 335, 40, 344, 342, 338, 40, 340, 40, 40, 339,
- 346, 337, 341, 347, 348, 345, 40, 40, 343, 40,
- 40, 40, 40, 40, 40, 40, 349, 40, 40, 350,
- 40, 351, 352, 353, 357, 40, 40, 360, 354, 356,
- 358, 362, 359, 40, 364, 355, 40, 40, 363, 40,
- 40, 40, 361, 40, 40, 40, 40, 40, 366, 40,
- 371, 374, 40, 40, 369, 40, 367, 40, 370, 365,
-
- 372, 40, 378, 368, 40, 376, 40, 40, 373, 40,
- 377, 40, 379, 381, 40, 40, 383, 40, 375, 40,
- 40, 40, 40, 40, 380, 40, 384, 386, 387, 391,
- 388, 40, 385, 40, 394, 382, 389, 40, 390, 40,
- 393, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 392, 395, 37, 37, 37, 37, 39, 39, 50,
- 40, 50, 50, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
-
40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 40, 40, 40, 40, 40, 40, 40,
- 40, 40, 40, 40, 40, 188, 40, 40, 40, 40,
- 107, 40, 38, 396, 3, 396, 396, 396, 396, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 396, 396, 396, 396, 396, 396
+ 40, 40, 40, 40, 201, 40, 40, 40, 40, 40,
+ 113, 40, 38, 461, 3, 461, 461, 461, 461, 461,
+ 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
+ 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
+ 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
+
+ 461, 461, 461, 461, 461, 461
} ;
-static yyconst short int yy_chk[877] =
+static yyconst short int yy_chk[1007] =
{ 0,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
@@ -628,96 +665,111 @@
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 9, 29, 9, 9, 10, 10, 11, 11, 11,
12, 29, 55, 12, 13, 13, 13, 13, 14, 14,
- 14, 14, 16, 55, 18, 17, 34, 19, 81, 18,
- 16, 18, 20, 81, 17, 34, 19, 16, 17, 16,
+ 14, 14, 16, 55, 18, 17, 34, 19, 83, 18,
+ 16, 18, 20, 83, 17, 34, 19, 16, 17, 16,
19, 16, 18, 17, 13, 19, 17, 21, 22, 20,
23, 24, 21, 25, 26, 27, 24, 22, 25, 20,
- 52, 28, 21, 22, 24, 31, 23, 23, 21, 24,
- 31, 54, 26, 28, 27, 52, 27, 25, 26, 28,
- 30, 35, 30, 31, 33, 57, 31, 36, 30, 33,
- 54, 30, 46, 31, 30, 46, 36, 42, 42, 35,
- 43, 43, 33, 57, 68, 30, 30, 51, 30, 32,
- 59, 32, 44, 44, 44, 51, 56, 32, 45, 45,
- 45, 45, 68, 401, 32, 59, 32, 56, 32, 47,
- 47, 47, 59, 32, 47, 48, 48, 48, 48, 53,
- 47, 49, 49, 49, 63, 49, 49, 53, 49, 49,
- 49, 49, 49, 49, 60, 61, 62, 64, 65, 69,
-
- 66, 60, 67, 62, 70, 73, 65, 66, 69, 63,
- 61, 71, 61, 72, 74, 62, 75, 67, 79, 77,
- 74, 64, 78, 66, 67, 80, 76, 70, 73, 71,
- 73, 76, 72, 75, 77, 83, 84, 78, 85, 75,
- 80, 79, 86, 76, 87, 88, 90, 91, 83, 84,
- 92, 130, 89, 91, 85, 96, 97, 130, 93, 98,
- 88, 85, 95, 92, 90, 99, 101, 89, 88, 86,
- 89, 93, 87, 89, 96, 95, 98, 100, 101, 93,
- 103, 105, 399, 99, 97, 100, 95, 102, 106, 104,
- 100, 102, 102, 103, 104, 103, 109, 109, 100, 118,
-
- 110, 110, 105, 100, 102, 110, 116, 121, 118, 106,
- 122, 110, 112, 112, 112, 113, 113, 112, 113, 113,
- 113, 119, 121, 112, 116, 122, 123, 125, 126, 127,
- 128, 132, 133, 131, 119, 125, 134, 135, 136, 137,
- 132, 133, 138, 136, 127, 128, 131, 139, 137, 123,
- 126, 138, 140, 139, 141, 142, 143, 144, 134, 145,
- 135, 146, 148, 141, 147, 143, 151, 140, 152, 146,
- 154, 144, 158, 142, 159, 147, 167, 148, 183, 178,
- 166, 151, 145, 159, 162, 164, 183, 154, 152, 157,
- 157, 167, 178, 157, 157, 158, 157, 157, 157, 157,
-
- 157, 157, 160, 166, 168, 162, 164, 169, 172, 170,
- 173, 160, 171, 160, 175, 168, 177, 160, 170, 160,
- 174, 171, 176, 175, 179, 177, 169, 180, 181, 182,
- 184, 172, 180, 173, 185, 184, 187, 174, 182, 176,
- 189, 189, 179, 190, 190, 189, 190, 190, 185, 181,
- 195, 189, 191, 191, 187, 192, 192, 192, 193, 193,
- 193, 194, 196, 200, 201, 203, 202, 195, 194, 204,
- 200, 202, 205, 206, 207, 209, 208, 205, 203, 196,
- 210, 212, 209, 213, 204, 208, 215, 201, 213, 214,
- 216, 217, 206, 218, 219, 207, 212, 222, 214, 224,
-
- 229, 225, 395, 210, 216, 227, 217, 215, 233, 219,
- 228, 218, 230, 231, 227, 222, 232, 228, 234, 235,
- 229, 230, 231, 224, 225, 232, 235, 234, 237, 238,
- 241, 233, 243, 245, 247, 230, 231, 237, 244, 241,
- 246, 248, 249, 243, 238, 246, 245, 250, 244, 251,
- 253, 247, 255, 256, 256, 257, 258, 262, 250, 260,
- 257, 264, 248, 249, 258, 255, 260, 261, 263, 265,
- 264, 266, 261, 253, 263, 267, 251, 269, 262, 271,
- 272, 273, 274, 277, 269, 393, 265, 275, 271, 278,
- 283, 293, 267, 280, 266, 272, 275, 273, 278, 274,
-
- 277, 279, 280, 281, 292, 298, 294, 301, 279, 302,
- 299, 300, 281, 283, 293, 294, 292, 299, 304, 300,
- 302, 305, 306, 308, 311, 310, 312, 316, 298, 318,
- 301, 320, 316, 311, 305, 327, 308, 323, 321, 306,
- 320, 304, 310, 321, 323, 318, 332, 338, 312, 333,
- 339, 340, 341, 346, 344, 345, 327, 347, 348, 332,
- 349, 333, 338, 339, 345, 352, 350, 348, 340, 344,
- 346, 350, 347, 351, 352, 341, 353, 354, 351, 357,
- 358, 361, 349, 362, 363, 367, 368, 365, 354, 369,
- 363, 368, 370, 373, 361, 371, 357, 372, 362, 353,
-
- 365, 374, 372, 358, 375, 370, 376, 377, 367, 379,
- 371, 378, 373, 375, 380, 385, 377, 384, 369, 382,
- 386, 387, 388, 390, 374, 392, 378, 380, 382, 387,
- 384, 394, 379, 391, 392, 376, 385, 389, 386, 383,
- 390, 381, 366, 364, 360, 359, 356, 355, 343, 342,
- 337, 388, 394, 397, 397, 397, 397, 398, 398, 400,
- 336, 400, 400, 335, 334, 331, 330, 329, 328, 326,
- 325, 324, 322, 319, 317, 315, 314, 313, 309, 307,
- 303, 297, 296, 295, 291, 290, 289, 288, 287, 286,
- 285, 284, 282, 276, 270, 268, 259, 254, 252, 242,
-
- 240, 239, 236, 223, 221, 220, 211, 199, 198, 197,
- 186, 165, 163, 161, 156, 155, 153, 150, 149, 129,
- 124, 120, 117, 115, 111, 107, 94, 82, 58, 39,
- 37, 8, 7, 3, 396, 396, 396, 396, 396, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 396, 396, 396, 396, 396, 396, 396, 396, 396, 396,
- 396, 396, 396, 396, 396, 396
+ 21, 28, 21, 22, 24, 27, 23, 23, 21, 24,
+ 52, 35, 26, 28, 27, 36, 27, 25, 26, 28,
+ 30, 31, 30, 57, 36, 52, 31, 46, 30, 35,
+ 46, 30, 42, 42, 30, 43, 43, 60, 54, 31,
+ 466, 57, 31, 51, 60, 30, 30, 71, 30, 31,
+ 32, 51, 32, 44, 44, 44, 53, 54, 32, 45,
+ 45, 45, 45, 59, 53, 32, 56, 32, 78, 32,
+ 71, 47, 47, 47, 32, 33, 47, 56, 59, 61,
+ 33, 464, 47, 78, 33, 59, 33, 63, 33, 48,
+ 48, 48, 48, 33, 61, 61, 61, 33, 49, 49,
+
+ 49, 64, 49, 49, 62, 49, 49, 49, 49, 49,
+ 49, 62, 63, 65, 67, 66, 68, 69, 70, 72,
+ 73, 65, 66, 62, 74, 64, 75, 70, 76, 67,
+ 80, 85, 75, 79, 88, 69, 67, 72, 66, 73,
+ 81, 77, 89, 68, 85, 76, 77, 74, 79, 74,
+ 86, 76, 87, 80, 90, 81, 92, 98, 77, 93,
+ 94, 88, 99, 86, 91, 93, 100, 95, 87, 90,
+ 89, 97, 460, 94, 92, 87, 98, 90, 101, 91,
+ 95, 102, 91, 100, 97, 91, 103, 104, 95, 102,
+ 99, 104, 104, 105, 102, 97, 101, 107, 103, 108,
+
+ 105, 106, 102, 111, 104, 110, 106, 102, 109, 112,
+ 110, 269, 108, 107, 108, 109, 122, 109, 115, 115,
+ 116, 116, 129, 269, 111, 116, 124, 118, 118, 118,
+ 112, 116, 118, 125, 122, 124, 119, 119, 118, 119,
+ 119, 119, 127, 128, 131, 129, 125, 132, 133, 134,
+ 135, 141, 131, 132, 137, 138, 142, 127, 128, 458,
+ 137, 457, 139, 140, 134, 135, 143, 145, 138, 144,
+ 133, 139, 140, 141, 144, 143, 145, 146, 148, 142,
+ 149, 147, 150, 151, 140, 152, 146, 147, 153, 149,
+ 154, 155, 151, 148, 156, 159, 160, 162, 154, 152,
+
+ 150, 188, 155, 167, 175, 194, 188, 166, 174, 156,
+ 159, 153, 167, 194, 162, 170, 160, 165, 165, 175,
+ 172, 165, 165, 168, 165, 165, 165, 165, 165, 165,
+ 166, 174, 168, 176, 168, 177, 170, 178, 168, 179,
+ 168, 172, 180, 181, 176, 182, 178, 183, 179, 185,
+ 184, 186, 187, 189, 177, 191, 183, 192, 185, 190,
+ 193, 198, 182, 200, 186, 180, 181, 184, 190, 456,
+ 187, 197, 195, 208, 189, 198, 193, 195, 191, 196,
+ 192, 200, 202, 202, 196, 215, 197, 202, 203, 203,
+ 208, 203, 203, 202, 197, 204, 204, 205, 205, 205,
+
+ 206, 206, 206, 207, 209, 213, 214, 217, 215, 216,
+ 207, 218, 213, 219, 216, 220, 221, 222, 219, 214,
+ 217, 209, 222, 223, 224, 225, 218, 226, 228, 230,
+ 229, 224, 223, 225, 220, 229, 231, 221, 230, 232,
+ 233, 234, 240, 228, 238, 235, 241, 243, 245, 249,
+ 226, 244, 246, 232, 247, 233, 243, 231, 244, 234,
+ 235, 246, 238, 247, 248, 250, 240, 253, 245, 241,
+ 254, 251, 249, 248, 250, 246, 253, 247, 251, 257,
+ 259, 261, 260, 263, 262, 254, 264, 265, 257, 262,
+ 266, 259, 260, 267, 261, 268, 272, 274, 273, 277,
+
+ 263, 266, 278, 278, 279, 285, 274, 264, 265, 279,
+ 280, 283, 277, 268, 275, 282, 289, 288, 280, 272,
+ 267, 273, 282, 275, 286, 275, 285, 284, 283, 275,
+ 286, 275, 284, 287, 288, 290, 291, 293, 296, 289,
+ 297, 298, 287, 291, 293, 299, 302, 296, 308, 300,
+ 303, 318, 290, 304, 317, 297, 305, 298, 300, 303,
+ 304, 306, 299, 302, 319, 305, 317, 323, 324, 325,
+ 306, 308, 326, 319, 318, 324, 327, 325, 329, 330,
+ 331, 332, 333, 335, 334, 454, 341, 327, 336, 331,
+ 323, 334, 339, 337, 332, 326, 346, 336, 338, 341,
+
+ 330, 329, 337, 335, 343, 333, 344, 338, 345, 339,
+ 350, 336, 351, 343, 353, 350, 337, 345, 346, 355,
+ 356, 362, 358, 344, 367, 356, 368, 374, 355, 358,
+ 353, 375, 376, 377, 384, 351, 385, 367, 368, 387,
+ 386, 376, 362, 390, 393, 391, 375, 384, 374, 386,
+ 392, 394, 396, 385, 391, 395, 377, 401, 390, 392,
+ 397, 393, 387, 398, 395, 397, 394, 400, 398, 403,
+ 404, 405, 408, 409, 396, 410, 400, 415, 401, 414,
+ 413, 404, 418, 415, 422, 424, 405, 408, 420, 425,
+ 409, 421, 403, 413, 414, 418, 423, 420, 410, 427,
+
+ 421, 423, 425, 426, 427, 428, 429, 422, 430, 431,
+ 432, 433, 438, 435, 424, 434, 436, 437, 426, 432,
+ 439, 428, 429, 443, 434, 436, 437, 430, 435, 441,
+ 444, 445, 431, 439, 446, 438, 443, 448, 441, 447,
+ 433, 449, 450, 451, 453, 448, 459, 444, 445, 455,
+ 452, 442, 440, 419, 417, 446, 416, 447, 455, 412,
+ 411, 453, 407, 406, 402, 450, 451, 459, 399, 389,
+ 449, 462, 462, 462, 462, 463, 463, 465, 388, 465,
+ 465, 383, 382, 381, 380, 379, 378, 373, 372, 371,
+ 370, 369, 366, 365, 364, 363, 361, 360, 359, 357,
+
+ 354, 352, 349, 348, 347, 342, 340, 328, 322, 321,
+ 320, 316, 315, 314, 313, 312, 311, 310, 309, 307,
+ 301, 295, 294, 292, 281, 276, 271, 270, 258, 256,
+ 255, 252, 239, 237, 236, 227, 212, 211, 210, 199,
+ 173, 171, 169, 164, 163, 161, 158, 157, 136, 130,
+ 126, 123, 121, 117, 113, 96, 84, 82, 58, 39,
+ 37, 8, 7, 3, 461, 461, 461, 461, 461, 461,
+ 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
+ 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
+ 461, 461, 461, 461, 461, 461, 461, 461, 461, 461,
+
+ 461, 461, 461, 461, 461, 461
} ;
static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr;
@@ -734,7 +786,7 @@
#define YY_MORE_ADJ 0
#define YY_RESTORE_YY_MORE_OFFSET
char *yytext;
-#line 1 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 1 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
#define INITIAL 0
/*===-- Lexer.l - Scanner for llvm assembly files --------------*- C++ -*--===//
//
@@ -749,7 +801,7 @@
//
//===----------------------------------------------------------------------===*/
#define YY_NEVER_INTERACTIVE 1
-#line 28 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 28 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
#include "ParserInternals.h"
#include "llvm/Module.h"
#include <list>
@@ -875,7 +927,7 @@
/* HexIntConstant - Hexadecimal constant generated by the CFE to avoid forcing
* it to deal with 64 bit numbers.
*/
-#line 879 "Lexer.cpp"
+#line 931 "Lexer.cpp"
/* Macros after this point can all be overridden by user definitions in
* section 1.
@@ -1023,13 +1075,13 @@
YY_DECL
{
register yy_state_type yy_current_state;
- register char *yy_cp = NULL, *yy_bp = NULL;
+ register char *yy_cp, *yy_bp;
register int yy_act;
-#line 179 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 179 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
-#line 1033 "Lexer.cpp"
+#line 1085 "Lexer.cpp"
if ( yy_init )
{
@@ -1077,14 +1129,14 @@
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 >= 397 )
+ if ( yy_current_state >= 462 )
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 != 396 );
+ while ( yy_current_state != 461 );
yy_find_action:
yy_current_state = *--yy_state_ptr;
@@ -1122,441 +1174,526 @@
{ /* beginning of action switch */
case 1:
YY_RULE_SETUP
-#line 181 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 181 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ /* Ignore comments for now */ }
YY_BREAK
case 2:
YY_RULE_SETUP
-#line 183 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 183 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return BEGINTOK; }
YY_BREAK
case 3:
YY_RULE_SETUP
-#line 184 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 184 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return ENDTOK; }
YY_BREAK
case 4:
YY_RULE_SETUP
-#line 185 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 185 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return TRUETOK; }
YY_BREAK
case 5:
YY_RULE_SETUP
-#line 186 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 186 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return FALSETOK; }
YY_BREAK
case 6:
YY_RULE_SETUP
-#line 187 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 187 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return DECLARE; }
YY_BREAK
case 7:
YY_RULE_SETUP
-#line 188 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 188 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return GLOBAL; }
YY_BREAK
case 8:
YY_RULE_SETUP
-#line 189 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 189 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return CONSTANT; }
YY_BREAK
case 9:
YY_RULE_SETUP
-#line 190 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 190 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return INTERNAL; }
YY_BREAK
case 10:
YY_RULE_SETUP
-#line 191 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 191 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return LINKONCE; }
YY_BREAK
case 11:
YY_RULE_SETUP
-#line 192 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 192 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return WEAK; }
YY_BREAK
case 12:
YY_RULE_SETUP
-#line 193 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 193 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return APPENDING; }
YY_BREAK
case 13:
YY_RULE_SETUP
-#line 194 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 194 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return EXTERNAL; } /* Deprecated, turn into external */
YY_BREAK
case 14:
YY_RULE_SETUP
-#line 195 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 195 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return EXTERNAL; }
YY_BREAK
case 15:
YY_RULE_SETUP
-#line 196 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 196 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return IMPLEMENTATION; }
YY_BREAK
case 16:
YY_RULE_SETUP
-#line 197 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 197 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return ZEROINITIALIZER; }
YY_BREAK
case 17:
YY_RULE_SETUP
-#line 198 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 198 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return DOTDOTDOT; }
YY_BREAK
case 18:
YY_RULE_SETUP
-#line 199 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 199 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return UNDEF; }
YY_BREAK
case 19:
YY_RULE_SETUP
-#line 200 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 200 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return NULL_TOK; }
YY_BREAK
case 20:
YY_RULE_SETUP
-#line 201 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 201 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return TO; }
YY_BREAK
case 21:
YY_RULE_SETUP
-#line 202 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 202 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ RET_TOK(TermOpVal, Unwind, UNWIND); }
YY_BREAK
case 22:
YY_RULE_SETUP
-#line 203 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 203 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return NOT; } /* Deprecated, turned into XOR */
YY_BREAK
case 23:
YY_RULE_SETUP
-#line 204 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 204 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return TAIL; }
YY_BREAK
case 24:
YY_RULE_SETUP
-#line 205 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 205 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return TARGET; }
YY_BREAK
case 25:
YY_RULE_SETUP
-#line 206 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 206 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return TRIPLE; }
YY_BREAK
case 26:
YY_RULE_SETUP
-#line 207 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 207 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return DEPLIBS; }
YY_BREAK
case 27:
YY_RULE_SETUP
-#line 208 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 208 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return ENDIAN; }
YY_BREAK
case 28:
YY_RULE_SETUP
-#line 209 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 209 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return POINTERSIZE; }
YY_BREAK
case 29:
YY_RULE_SETUP
-#line 210 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 210 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return LITTLE; }
YY_BREAK
case 30:
YY_RULE_SETUP
-#line 211 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 211 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return BIG; }
YY_BREAK
case 31:
YY_RULE_SETUP
-#line 212 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 212 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return VOLATILE; }
YY_BREAK
case 32:
YY_RULE_SETUP
-#line 214 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ return CC_TOK; }
+#line 213 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ return FIXED; }
YY_BREAK
case 33:
YY_RULE_SETUP
-#line 215 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ return CCC_TOK; }
+#line 215 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ return CC_TOK; }
YY_BREAK
case 34:
YY_RULE_SETUP
-#line 216 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ return FASTCC_TOK; }
+#line 216 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ return CCC_TOK; }
YY_BREAK
case 35:
YY_RULE_SETUP
-#line 217 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ return COLDCC_TOK; }
+#line 217 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ return FASTCC_TOK; }
YY_BREAK
case 36:
YY_RULE_SETUP
-#line 219 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::VoidTy ; return VOID; }
+#line 218 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ return COLDCC_TOK; }
YY_BREAK
case 37:
YY_RULE_SETUP
-#line 220 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::BoolTy ; return BOOL; }
+#line 220 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::VoidTy ; return VOID; }
YY_BREAK
case 38:
YY_RULE_SETUP
-#line 221 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::SByteTy ; return SBYTE; }
+#line 221 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::BoolTy ; return BOOL; }
YY_BREAK
case 39:
YY_RULE_SETUP
-#line 222 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::UByteTy ; return UBYTE; }
+#line 222 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::SByteTy ; return SBYTE; }
YY_BREAK
case 40:
YY_RULE_SETUP
-#line 223 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::ShortTy ; return SHORT; }
+#line 223 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::UByteTy ; return UBYTE; }
YY_BREAK
case 41:
YY_RULE_SETUP
-#line 224 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::UShortTy; return USHORT; }
+#line 224 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::ShortTy ; return SHORT; }
YY_BREAK
case 42:
YY_RULE_SETUP
-#line 225 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::IntTy ; return INT; }
+#line 225 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::UShortTy; return USHORT; }
YY_BREAK
case 43:
YY_RULE_SETUP
-#line 226 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::UIntTy ; return UINT; }
+#line 226 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::IntTy ; return INT; }
YY_BREAK
case 44:
YY_RULE_SETUP
-#line 227 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::LongTy ; return LONG; }
+#line 227 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::UIntTy ; return UINT; }
YY_BREAK
case 45:
YY_RULE_SETUP
-#line 228 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::ULongTy ; return ULONG; }
+#line 228 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::LongTy ; return LONG; }
YY_BREAK
case 46:
YY_RULE_SETUP
-#line 229 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::FloatTy ; return FLOAT; }
+#line 229 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::ULongTy ; return ULONG; }
YY_BREAK
case 47:
YY_RULE_SETUP
-#line 230 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::DoubleTy; return DOUBLE; }
+#line 230 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::FloatTy ; return FLOAT; }
YY_BREAK
case 48:
YY_RULE_SETUP
-#line 231 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ llvmAsmlval.PrimType = Type::LabelTy ; return LABEL; }
+#line 231 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::DoubleTy; return DOUBLE; }
YY_BREAK
case 49:
YY_RULE_SETUP
-#line 232 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ return TYPE; }
+#line 232 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ llvmAsmlval.PrimType = Type::LabelTy ; return LABEL; }
YY_BREAK
case 50:
YY_RULE_SETUP
-#line 233 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ return OPAQUE; }
+#line 233 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ return TYPE; }
YY_BREAK
case 51:
YY_RULE_SETUP
-#line 235 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Add, ADD); }
+#line 234 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ return OPAQUE; }
YY_BREAK
case 52:
YY_RULE_SETUP
-#line 236 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Sub, SUB); }
+#line 236 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Add, ADD); }
YY_BREAK
case 53:
YY_RULE_SETUP
-#line 237 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Mul, MUL); }
+#line 237 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Sub, SUB); }
YY_BREAK
case 54:
YY_RULE_SETUP
-#line 238 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Div, DIV); }
+#line 238 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Mul, MUL); }
YY_BREAK
case 55:
YY_RULE_SETUP
-#line 239 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Rem, REM); }
+#line 239 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Div, DIV); }
YY_BREAK
case 56:
YY_RULE_SETUP
-#line 240 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, And, AND); }
+#line 240 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Rem, REM); }
YY_BREAK
case 57:
YY_RULE_SETUP
-#line 241 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Or , OR ); }
+#line 241 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, And, AND); }
YY_BREAK
case 58:
YY_RULE_SETUP
-#line 242 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, Xor, XOR); }
+#line 242 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Or , OR ); }
YY_BREAK
case 59:
YY_RULE_SETUP
-#line 243 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetNE, SETNE); }
+#line 243 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, Xor, XOR); }
YY_BREAK
case 60:
YY_RULE_SETUP
-#line 244 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
+#line 244 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SetNE, SETNE); }
YY_BREAK
case 61:
YY_RULE_SETUP
-#line 245 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetLT, SETLT); }
+#line 245 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SetEQ, SETEQ); }
YY_BREAK
case 62:
YY_RULE_SETUP
-#line 246 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetGT, SETGT); }
+#line 246 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SetLT, SETLT); }
YY_BREAK
case 63:
YY_RULE_SETUP
-#line 247 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetLE, SETLE); }
+#line 247 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SetGT, SETGT); }
YY_BREAK
case 64:
YY_RULE_SETUP
-#line 248 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(BinaryOpVal, SetGE, SETGE); }
+#line 248 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SetLE, SETLE); }
YY_BREAK
case 65:
YY_RULE_SETUP
-#line 250 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
+#line 249 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, SetGE, SETGE); }
YY_BREAK
case 66:
YY_RULE_SETUP
-#line 251 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Call, CALL); }
+#line 250 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, VSetNE, VSETNE); }
YY_BREAK
case 67:
YY_RULE_SETUP
-#line 252 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Cast, CAST); }
+#line 251 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, VSetEQ, VSETEQ); }
YY_BREAK
case 68:
YY_RULE_SETUP
-#line 253 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Select, SELECT); }
+#line 252 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, VSetLT, VSETLT); }
YY_BREAK
case 69:
YY_RULE_SETUP
-#line 254 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Shl, SHL); }
+#line 253 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, VSetGT, VSETGT); }
YY_BREAK
case 70:
YY_RULE_SETUP
-#line 255 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, Shr, SHR); }
+#line 254 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, VSetLE, VSETLE); }
YY_BREAK
case 71:
YY_RULE_SETUP
-#line 256 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ return VANEXT_old; }
+#line 255 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(BinaryOpVal, VSetGE, VSETGE); }
YY_BREAK
case 72:
YY_RULE_SETUP
-#line 257 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ return VAARG_old; }
+#line 257 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, PHI, PHI_TOK); }
YY_BREAK
case 73:
YY_RULE_SETUP
-#line 258 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(OtherOpVal, VAArg , VAARG); }
+#line 258 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Call, CALL); }
YY_BREAK
case 74:
YY_RULE_SETUP
-#line 259 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Ret, RET); }
+#line 259 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Cast, CAST); }
YY_BREAK
case 75:
YY_RULE_SETUP
-#line 260 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Br, BR); }
+#line 260 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Select, SELECT); }
YY_BREAK
case 76:
YY_RULE_SETUP
-#line 261 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Switch, SWITCH); }
+#line 261 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, VSelect, VSELECT); }
YY_BREAK
case 77:
YY_RULE_SETUP
-#line 262 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Invoke, INVOKE); }
+#line 262 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Shl, SHL); }
YY_BREAK
case 78:
YY_RULE_SETUP
-#line 263 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Unwind, UNWIND); }
+#line 263 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Shr, SHR); }
YY_BREAK
case 79:
YY_RULE_SETUP
-#line 264 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
+#line 264 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ return VANEXT_old; }
YY_BREAK
case 80:
YY_RULE_SETUP
-#line 266 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Malloc, MALLOC); }
+#line 265 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ return VAARG_old; }
YY_BREAK
case 81:
YY_RULE_SETUP
-#line 267 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
+#line 266 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, VAArg , VAARG); }
YY_BREAK
case 82:
YY_RULE_SETUP
-#line 268 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Free, FREE); }
+#line 267 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Ret, RET); }
YY_BREAK
case 83:
YY_RULE_SETUP
-#line 269 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Load, LOAD); }
+#line 268 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Br, BR); }
YY_BREAK
case 84:
YY_RULE_SETUP
-#line 270 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, Store, STORE); }
+#line 269 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Switch, SWITCH); }
YY_BREAK
case 85:
YY_RULE_SETUP
-#line 271 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
-{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
+#line 270 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Invoke, INVOKE); }
YY_BREAK
case 86:
YY_RULE_SETUP
-#line 274 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 271 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Unwind, UNWIND); }
+ YY_BREAK
+case 87:
+YY_RULE_SETUP
+#line 272 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(TermOpVal, Unreachable, UNREACHABLE); }
+ YY_BREAK
+case 88:
+YY_RULE_SETUP
+#line 274 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Malloc, MALLOC); }
+ YY_BREAK
+case 89:
+YY_RULE_SETUP
+#line 275 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Alloca, ALLOCA); }
+ YY_BREAK
+case 90:
+YY_RULE_SETUP
+#line 276 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Free, FREE); }
+ YY_BREAK
+case 91:
+YY_RULE_SETUP
+#line 277 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Load, LOAD); }
+ YY_BREAK
+case 92:
+YY_RULE_SETUP
+#line 278 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, Store, STORE); }
+ YY_BREAK
+case 93:
+YY_RULE_SETUP
+#line 279 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
+ YY_BREAK
+case 94:
+YY_RULE_SETUP
+#line 280 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, VGather, VGATHER); }
+ YY_BREAK
+case 95:
+YY_RULE_SETUP
+#line 281 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, VImm, VIMM); }
+ YY_BREAK
+case 96:
+YY_RULE_SETUP
+#line 282 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(MemOpVal, VScatter, VSCATTER); }
+ YY_BREAK
+case 97:
+YY_RULE_SETUP
+#line 284 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Extract, EXTRACT); }
+ YY_BREAK
+case 98:
+YY_RULE_SETUP
+#line 285 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
+ YY_BREAK
+case 99:
+YY_RULE_SETUP
+#line 286 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, Combine, COMBINE); }
+ YY_BREAK
+case 100:
+YY_RULE_SETUP
+#line 287 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ RET_TOK(OtherOpVal, CombineElement, COMBINEELEMENT); }
+ YY_BREAK
+case 101:
+YY_RULE_SETUP
+#line 288 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ return VECTOR; }
+ YY_BREAK
+case 102:
+YY_RULE_SETUP
+#line 289 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
+{ return OF; }
+ YY_BREAK
+case 103:
+YY_RULE_SETUP
+#line 291 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{
UnEscapeLexed(yytext+1);
llvmAsmlval.StrVal = strdup(yytext+1); // Skip %
return VAR_ID;
}
YY_BREAK
-case 87:
+case 104:
YY_RULE_SETUP
-#line 279 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 296 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{
yytext[strlen(yytext)-1] = 0; // nuke colon
UnEscapeLexed(yytext);
@@ -1564,9 +1701,9 @@
return LABELSTR;
}
YY_BREAK
-case 88:
+case 105:
YY_RULE_SETUP
-#line 285 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 302 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{
yytext[strlen(yytext)-2] = 0; // nuke colon, end quote
UnEscapeLexed(yytext+1);
@@ -1574,9 +1711,9 @@
return LABELSTR;
}
YY_BREAK
-case 89:
+case 106:
YY_RULE_SETUP
-#line 292 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 309 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ // Note that we cannot unescape a string constant here! The
// string constant might contain a \00 which would not be
// understood by the string stuff. It is valid to make a
@@ -1587,14 +1724,14 @@
return STRINGCONSTANT;
}
YY_BREAK
-case 90:
+case 107:
YY_RULE_SETUP
-#line 303 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 320 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ llvmAsmlval.UInt64Val = atoull(yytext); return EUINT64VAL; }
YY_BREAK
-case 91:
+case 108:
YY_RULE_SETUP
-#line 304 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 321 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{
uint64_t Val = atoull(yytext+1);
// +1: we have bigger negative range
@@ -1604,17 +1741,17 @@
return ESINT64VAL;
}
YY_BREAK
-case 92:
+case 109:
YY_RULE_SETUP
-#line 312 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 329 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{
llvmAsmlval.UInt64Val = HexIntToVal(yytext+3);
return yytext[0] == 's' ? ESINT64VAL : EUINT64VAL;
}
YY_BREAK
-case 93:
+case 110:
YY_RULE_SETUP
-#line 317 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 334 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{
uint64_t Val = atoull(yytext+1);
if ((unsigned)Val != Val)
@@ -1623,9 +1760,9 @@
return UINTVAL;
}
YY_BREAK
-case 94:
+case 111:
YY_RULE_SETUP
-#line 324 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 341 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{
uint64_t Val = atoull(yytext+2);
// +1: we have bigger negative range
@@ -1635,18 +1772,18 @@
return SINTVAL;
}
YY_BREAK
-case 95:
+case 112:
YY_RULE_SETUP
-#line 333 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 350 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ llvmAsmlval.FPVal = atof(yytext); return FPVAL; }
YY_BREAK
-case 96:
+case 113:
YY_RULE_SETUP
-#line 334 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 351 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ llvmAsmlval.FPVal = HexToFP(yytext); return FPVAL; }
YY_BREAK
case YY_STATE_EOF(INITIAL):
-#line 336 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 353 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{
/* Make sure to free the internal buffers for flex when we are
* done reading our input!
@@ -1655,22 +1792,22 @@
return EOF;
}
YY_BREAK
-case 97:
+case 114:
YY_RULE_SETUP
-#line 344 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 361 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ /* Ignore whitespace */ }
YY_BREAK
-case 98:
+case 115:
YY_RULE_SETUP
-#line 345 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 362 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
{ return yytext[0]; }
YY_BREAK
-case 99:
+case 116:
YY_RULE_SETUP
-#line 347 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 364 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
YY_FATAL_ERROR( "flex scanner jammed" );
YY_BREAK
-#line 1674 "Lexer.cpp"
+#line 1811 "Lexer.cpp"
case YY_END_OF_BUFFER:
{
@@ -1957,7 +2094,7 @@
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 >= 397 )
+ if ( yy_current_state >= 462 )
yy_c = yy_meta[(unsigned int) yy_c];
}
yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1987,11 +2124,11 @@
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 >= 397 )
+ if ( yy_current_state >= 462 )
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 == 396);
+ yy_is_jam = (yy_current_state == 461);
if ( ! yy_is_jam )
*yy_state_ptr++ = yy_current_state;
@@ -2046,7 +2183,6 @@
#endif /* ifndef YY_NO_UNPUT */
-#ifndef YY_NO_INPUT
#ifdef __cplusplus
static int yyinput()
#else
@@ -2120,7 +2256,7 @@
return c;
}
-#endif /* YY_NO_INPUT */
+
#ifdef YY_USE_PROTOS
void yyrestart( FILE *input_file )
@@ -2231,6 +2367,11 @@
}
+#ifndef YY_ALWAYS_INTERACTIVE
+#ifndef YY_NEVER_INTERACTIVE
+extern int isatty YY_PROTO(( int ));
+#endif
+#endif
#ifdef YY_USE_PROTOS
void yy_init_buffer( YY_BUFFER_STATE b, FILE *file )
@@ -2548,5 +2689,5 @@
return 0;
}
#endif
-#line 347 "/proj/llvm/build/../llvm/lib/AsmParser/Lexer.l"
+#line 364 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/Lexer.l"
Index: llvm/lib/AsmParser/Lexer.l
diff -u llvm/lib/AsmParser/Lexer.l:1.64 llvm/lib/AsmParser/Lexer.l:1.64.2.1
--- llvm/lib/AsmParser/Lexer.l:1.64 Sat Jun 18 13:34:51 2005
+++ llvm/lib/AsmParser/Lexer.l Tue Oct 18 14:21:56 2005
@@ -210,6 +210,7 @@
little { return LITTLE; }
big { return BIG; }
volatile { return VOLATILE; }
+fixed { return FIXED; }
cc { return CC_TOK; }
ccc { return CCC_TOK; }
@@ -246,11 +247,18 @@
setgt { RET_TOK(BinaryOpVal, SetGT, SETGT); }
setle { RET_TOK(BinaryOpVal, SetLE, SETLE); }
setge { RET_TOK(BinaryOpVal, SetGE, SETGE); }
+vsetne { RET_TOK(BinaryOpVal, VSetNE, VSETNE); }
+vseteq { RET_TOK(BinaryOpVal, VSetEQ, VSETEQ); }
+vsetlt { RET_TOK(BinaryOpVal, VSetLT, VSETLT); }
+vsetgt { RET_TOK(BinaryOpVal, VSetGT, VSETGT); }
+vsetle { RET_TOK(BinaryOpVal, VSetLE, VSETLE); }
+vsetge { RET_TOK(BinaryOpVal, VSetGE, VSETGE); }
phi { RET_TOK(OtherOpVal, PHI, PHI_TOK); }
call { RET_TOK(OtherOpVal, Call, CALL); }
cast { RET_TOK(OtherOpVal, Cast, CAST); }
select { RET_TOK(OtherOpVal, Select, SELECT); }
+vselect { RET_TOK(OtherOpVal, VSelect, VSELECT); }
shl { RET_TOK(OtherOpVal, Shl, SHL); }
shr { RET_TOK(OtherOpVal, Shr, SHR); }
vanext { return VANEXT_old; }
@@ -269,7 +277,16 @@
load { RET_TOK(MemOpVal, Load, LOAD); }
store { RET_TOK(MemOpVal, Store, STORE); }
getelementptr { RET_TOK(MemOpVal, GetElementPtr, GETELEMENTPTR); }
-
+vgather { RET_TOK(MemOpVal, VGather, VGATHER); }
+vimm { RET_TOK(MemOpVal, VImm, VIMM); }
+vscatter { RET_TOK(MemOpVal, VScatter, VSCATTER); }
+
+extract { RET_TOK(OtherOpVal, Extract, EXTRACT); }
+extractelement { RET_TOK(OtherOpVal, ExtractElement, EXTRACTELEMENT); }
+combine { RET_TOK(OtherOpVal, Combine, COMBINE); }
+combineelement { RET_TOK(OtherOpVal, CombineElement, COMBINEELEMENT); }
+vector { return VECTOR; }
+of { return OF; }
{VarID} {
UnEscapeLexed(yytext+1);
Index: llvm/lib/AsmParser/llvmAsmParser.cpp
diff -u llvm/lib/AsmParser/llvmAsmParser.cpp:1.17 llvm/lib/AsmParser/llvmAsmParser.cpp:1.17.2.1
--- llvm/lib/AsmParser/llvmAsmParser.cpp:1.17 Sat Aug 27 13:50:38 2005
+++ llvm/lib/AsmParser/llvmAsmParser.cpp Tue Oct 18 14:21:56 2005
@@ -1,257 +1,126 @@
-/* A Bison parser, made by GNU Bison 1.875c. */
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
+/* A Bison parser, made from /Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y
+ by GNU Bison version 1.28 */
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
-
-/* Written by Richard Stallman by simplifying the original so called
- ``semantic'' parser. */
+#define YYBISON 1 /* Identify Bison output. */
-/* All symbols defined below should begin with yy or YY, to avoid
- infringing on user name space. This should be done even for local
- variables, as they might otherwise be expanded by user macros.
- There are some unavoidable exceptions within include files to
- define necessary library symbols; they are noted "INFRINGES ON
- USER NAME SPACE" below. */
-
-/* Identify Bison output. */
-#define YYBISON 1
-
-/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
-
-/* Pure parsers. */
-#define YYPURE 0
-
-/* Using locations. */
-#define YYLSP_NEEDED 0
-
-/* If NAME_PREFIX is specified substitute the variables and functions
- names. */
#define yyparse llvmAsmparse
-#define yylex llvmAsmlex
+#define yylex llvmAsmlex
#define yyerror llvmAsmerror
-#define yylval llvmAsmlval
-#define yychar llvmAsmchar
+#define yylval llvmAsmlval
+#define yychar llvmAsmchar
#define yydebug llvmAsmdebug
#define yynerrs llvmAsmnerrs
+#define ESINT64VAL 257
+#define EUINT64VAL 258
+#define SINTVAL 259
+#define UINTVAL 260
+#define FPVAL 261
+#define VOID 262
+#define BOOL 263
+#define SBYTE 264
+#define UBYTE 265
+#define SHORT 266
+#define USHORT 267
+#define INT 268
+#define UINT 269
+#define LONG 270
+#define ULONG 271
+#define FLOAT 272
+#define DOUBLE 273
+#define TYPE 274
+#define LABEL 275
+#define VAR_ID 276
+#define LABELSTR 277
+#define STRINGCONSTANT 278
+#define IMPLEMENTATION 279
+#define ZEROINITIALIZER 280
+#define TRUETOK 281
+#define FALSETOK 282
+#define BEGINTOK 283
+#define ENDTOK 284
+#define DECLARE 285
+#define GLOBAL 286
+#define CONSTANT 287
+#define VOLATILE 288
+#define FIXED 289
+#define TO 290
+#define DOTDOTDOT 291
+#define NULL_TOK 292
+#define UNDEF 293
+#define CONST 294
+#define INTERNAL 295
+#define LINKONCE 296
+#define WEAK 297
+#define APPENDING 298
+#define OPAQUE 299
+#define NOT 300
+#define EXTERNAL 301
+#define TARGET 302
+#define TRIPLE 303
+#define ENDIAN 304
+#define POINTERSIZE 305
+#define LITTLE 306
+#define BIG 307
+#define DEPLIBS 308
+#define CALL 309
+#define TAIL 310
+#define CC_TOK 311
+#define CCC_TOK 312
+#define FASTCC_TOK 313
+#define COLDCC_TOK 314
+#define VECTOR 315
+#define OF 316
+#define RET 317
+#define BR 318
+#define SWITCH 319
+#define INVOKE 320
+#define UNWIND 321
+#define UNREACHABLE 322
+#define ADD 323
+#define SUB 324
+#define MUL 325
+#define DIV 326
+#define REM 327
+#define AND 328
+#define OR 329
+#define XOR 330
+#define SETLE 331
+#define SETGE 332
+#define SETLT 333
+#define SETGT 334
+#define SETEQ 335
+#define SETNE 336
+#define VSETLE 337
+#define VSETGE 338
+#define VSETLT 339
+#define VSETGT 340
+#define VSETEQ 341
+#define VSETNE 342
+#define MALLOC 343
+#define ALLOCA 344
+#define FREE 345
+#define LOAD 346
+#define STORE 347
+#define GETELEMENTPTR 348
+#define PHI_TOK 349
+#define CAST 350
+#define SELECT 351
+#define VSELECT 352
+#define SHL 353
+#define SHR 354
+#define VAARG 355
+#define VGATHER 356
+#define VIMM 357
+#define VSCATTER 358
+#define EXTRACT 359
+#define EXTRACTELEMENT 360
+#define COMBINE 361
+#define COMBINEELEMENT 362
+#define VAARG_old 363
+#define VANEXT_old 364
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- ESINT64VAL = 258,
- EUINT64VAL = 259,
- SINTVAL = 260,
- UINTVAL = 261,
- FPVAL = 262,
- VOID = 263,
- BOOL = 264,
- SBYTE = 265,
- UBYTE = 266,
- SHORT = 267,
- USHORT = 268,
- INT = 269,
- UINT = 270,
- LONG = 271,
- ULONG = 272,
- FLOAT = 273,
- DOUBLE = 274,
- TYPE = 275,
- LABEL = 276,
- VAR_ID = 277,
- LABELSTR = 278,
- STRINGCONSTANT = 279,
- IMPLEMENTATION = 280,
- ZEROINITIALIZER = 281,
- TRUETOK = 282,
- FALSETOK = 283,
- BEGINTOK = 284,
- ENDTOK = 285,
- DECLARE = 286,
- GLOBAL = 287,
- CONSTANT = 288,
- VOLATILE = 289,
- TO = 290,
- DOTDOTDOT = 291,
- NULL_TOK = 292,
- UNDEF = 293,
- CONST = 294,
- INTERNAL = 295,
- LINKONCE = 296,
- WEAK = 297,
- APPENDING = 298,
- OPAQUE = 299,
- NOT = 300,
- EXTERNAL = 301,
- TARGET = 302,
- TRIPLE = 303,
- ENDIAN = 304,
- POINTERSIZE = 305,
- LITTLE = 306,
- BIG = 307,
- DEPLIBS = 308,
- CALL = 309,
- TAIL = 310,
- CC_TOK = 311,
- CCC_TOK = 312,
- FASTCC_TOK = 313,
- COLDCC_TOK = 314,
- RET = 315,
- BR = 316,
- SWITCH = 317,
- INVOKE = 318,
- UNWIND = 319,
- UNREACHABLE = 320,
- ADD = 321,
- SUB = 322,
- MUL = 323,
- DIV = 324,
- REM = 325,
- AND = 326,
- OR = 327,
- XOR = 328,
- SETLE = 329,
- SETGE = 330,
- SETLT = 331,
- SETGT = 332,
- SETEQ = 333,
- SETNE = 334,
- MALLOC = 335,
- ALLOCA = 336,
- FREE = 337,
- LOAD = 338,
- STORE = 339,
- GETELEMENTPTR = 340,
- PHI_TOK = 341,
- CAST = 342,
- SELECT = 343,
- SHL = 344,
- SHR = 345,
- VAARG = 346,
- VAARG_old = 347,
- VANEXT_old = 348
- };
-#endif
-#define ESINT64VAL 258
-#define EUINT64VAL 259
-#define SINTVAL 260
-#define UINTVAL 261
-#define FPVAL 262
-#define VOID 263
-#define BOOL 264
-#define SBYTE 265
-#define UBYTE 266
-#define SHORT 267
-#define USHORT 268
-#define INT 269
-#define UINT 270
-#define LONG 271
-#define ULONG 272
-#define FLOAT 273
-#define DOUBLE 274
-#define TYPE 275
-#define LABEL 276
-#define VAR_ID 277
-#define LABELSTR 278
-#define STRINGCONSTANT 279
-#define IMPLEMENTATION 280
-#define ZEROINITIALIZER 281
-#define TRUETOK 282
-#define FALSETOK 283
-#define BEGINTOK 284
-#define ENDTOK 285
-#define DECLARE 286
-#define GLOBAL 287
-#define CONSTANT 288
-#define VOLATILE 289
-#define TO 290
-#define DOTDOTDOT 291
-#define NULL_TOK 292
-#define UNDEF 293
-#define CONST 294
-#define INTERNAL 295
-#define LINKONCE 296
-#define WEAK 297
-#define APPENDING 298
-#define OPAQUE 299
-#define NOT 300
-#define EXTERNAL 301
-#define TARGET 302
-#define TRIPLE 303
-#define ENDIAN 304
-#define POINTERSIZE 305
-#define LITTLE 306
-#define BIG 307
-#define DEPLIBS 308
-#define CALL 309
-#define TAIL 310
-#define CC_TOK 311
-#define CCC_TOK 312
-#define FASTCC_TOK 313
-#define COLDCC_TOK 314
-#define RET 315
-#define BR 316
-#define SWITCH 317
-#define INVOKE 318
-#define UNWIND 319
-#define UNREACHABLE 320
-#define ADD 321
-#define SUB 322
-#define MUL 323
-#define DIV 324
-#define REM 325
-#define AND 326
-#define OR 327
-#define XOR 328
-#define SETLE 329
-#define SETGE 330
-#define SETLT 331
-#define SETGT 332
-#define SETEQ 333
-#define SETNE 334
-#define MALLOC 335
-#define ALLOCA 336
-#define FREE 337
-#define LOAD 338
-#define STORE 339
-#define GETELEMENTPTR 340
-#define PHI_TOK 341
-#define CAST 342
-#define SELECT 343
-#define SHL 344
-#define SHR 345
-#define VAARG 346
-#define VAARG_old 347
-#define VANEXT_old 348
-
-
-
-
-/* Copy the first part of user declarations. */
-#line 14 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
+#line 14 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
#include "ParserInternals.h"
#include "llvm/CallingConv.h"
@@ -1102,23 +971,8 @@
}
-
-/* Enabling traces. */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages. */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 865 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
-typedef union YYSTYPE {
+#line 865 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+typedef union {
llvm::Module *ModuleVal;
llvm::Function *FunctionVal;
std::pair<llvm::PATypeHolder*, char*> *ArgVal;
@@ -1157,1235 +1011,981 @@
llvm::Instruction::OtherOps OtherOpVal;
llvm::Module::Endianness Endianness;
} YYSTYPE;
-/* Line 191 of yacc.c. */
-#line 1162 "llvmAsmParser.tab.c"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
+#include <stdio.h>
+#ifndef __cplusplus
+#ifndef __STDC__
+#define const
+#endif
+#endif
-/* Copy the second part of user declarations. */
-
-
-/* Line 214 of yacc.c. */
-#line 1174 "llvmAsmParser.tab.c"
-
-#if ! defined (yyoverflow) || YYERROR_VERBOSE
-
-# ifndef YYFREE
-# define YYFREE free
-# endif
-# ifndef YYMALLOC
-# define YYMALLOC malloc
-# endif
-
-/* The parser invokes alloca or malloc; define the necessary symbols. */
-
-# ifdef YYSTACK_USE_ALLOCA
-# if YYSTACK_USE_ALLOCA
-# define YYSTACK_ALLOC alloca
-# endif
-# else
-# if defined (alloca) || defined (_ALLOCA_H)
-# define YYSTACK_ALLOC alloca
-# else
-# ifdef __GNUC__
-# define YYSTACK_ALLOC __builtin_alloca
-# endif
-# endif
-# endif
-
-# ifdef YYSTACK_ALLOC
- /* Pacify GCC's `empty if-body' warning. */
-# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
-# else
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# endif
-# define YYSTACK_ALLOC YYMALLOC
-# define YYSTACK_FREE YYFREE
-# endif
-#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
-
-
-#if (! defined (yyoverflow) \
- && (! defined (__cplusplus) \
- || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
-/* A type that is properly aligned for any stack member. */
-union yyalloc
-{
- short yyss;
- YYSTYPE yyvs;
- };
-/* The size of the maximum gap between one aligned stack and the next. */
-# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
+#define YYFINAL 480
+#define YYFLAG -32768
+#define YYNTBASE 125
+
+#define YYTRANSLATE(x) ((unsigned)(x) <= 364 ? yytranslate[x] : 188)
+
+static const char yytranslate[] = { 0,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 113,
+ 114, 120, 2, 121, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 123,
+ 111, 124, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 115, 112, 117, 2, 2, 2, 2, 2, 122, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 116,
+ 2, 2, 118, 2, 119, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 2, 2, 1, 3, 4, 5, 6,
+ 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
+ 27, 28, 29, 30, 31, 32, 33, 34, 35, 36,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
+ 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
+ 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
+ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106,
+ 107, 108, 109, 110
+};
-/* The size of an array large to enough to hold all stacks, each with
- N elements. */
-# define YYSTACK_BYTES(N) \
- ((N) * (sizeof (short) + sizeof (YYSTYPE)) \
- + YYSTACK_GAP_MAXIMUM)
-
-/* Copy COUNT objects from FROM to TO. The source and destination do
- not overlap. */
-# ifndef YYCOPY
-# if defined (__GNUC__) && 1 < __GNUC__
-# define YYCOPY(To, From, Count) \
- __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
-# else
-# define YYCOPY(To, From, Count) \
- do \
- { \
- register YYSIZE_T yyi; \
- for (yyi = 0; yyi < (Count); yyi++) \
- (To)[yyi] = (From)[yyi]; \
- } \
- while (0)
-# endif
-# endif
-
-/* Relocate STACK from its old location to the new one. The
- local variables YYSIZE and YYSTACKSIZE give the old and new number of
- elements in the stack, and YYPTR gives the new location of the
- stack. Advance YYPTR to a properly aligned location for the next
- stack. */
-# define YYSTACK_RELOCATE(Stack) \
- do \
- { \
- YYSIZE_T yynewbytes; \
- YYCOPY (&yyptr->Stack, Stack, yysize); \
- Stack = &yyptr->Stack; \
- yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
- yyptr += yynewbytes / sizeof (*yyptr); \
- } \
- while (0)
+#if YYDEBUG != 0
+static const short yyprhs[] = { 0,
+ 0, 2, 4, 6, 8, 10, 12, 14, 16, 18,
+ 20, 22, 24, 26, 28, 30, 32, 34, 36, 38,
+ 40, 42, 44, 46, 48, 50, 52, 54, 56, 58,
+ 60, 62, 64, 66, 68, 70, 72, 74, 76, 79,
+ 80, 82, 84, 86, 88, 89, 90, 92, 94, 96,
+ 99, 101, 103, 105, 107, 109, 111, 113, 115, 117,
+ 119, 121, 123, 125, 127, 129, 131, 133, 135, 137,
+ 139, 141, 144, 149, 155, 161, 168, 172, 175, 178,
+ 180, 184, 186, 190, 192, 193, 198, 202, 206, 211,
+ 216, 220, 223, 226, 229, 232, 235, 238, 241, 244,
+ 247, 250, 257, 263, 272, 279, 286, 293, 300, 304,
+ 306, 308, 310, 312, 315, 318, 321, 323, 328, 331,
+ 337, 343, 347, 352, 353, 355, 357, 361, 365, 369,
+ 373, 377, 379, 380, 382, 384, 386, 387, 390, 394,
+ 396, 398, 402, 404, 405, 412, 414, 416, 420, 422,
+ 424, 427, 428, 432, 434, 436, 438, 440, 442, 444,
+ 446, 450, 452, 454, 456, 458, 460, 463, 466, 469,
+ 473, 476, 477, 479, 482, 485, 489, 499, 509, 518,
+ 532, 534, 536, 543, 549, 552, 559, 567, 569, 573,
+ 575, 576, 579, 581, 587, 593, 599, 605, 608, 613,
+ 618, 625, 632, 637, 642, 647, 650, 658, 660, 663,
+ 664, 666, 667, 669, 670, 673, 679, 682, 688, 691,
+ 696, 703, 708, 713, 719, 728, 733, 742, 749
+};
-#endif
+static const short yyrhs[] = { 5,
+ 0, 6, 0, 3, 0, 4, 0, 69, 0, 70,
+ 0, 71, 0, 72, 0, 73, 0, 74, 0, 75,
+ 0, 76, 0, 77, 0, 78, 0, 79, 0, 80,
+ 0, 81, 0, 82, 0, 83, 0, 84, 0, 85,
+ 0, 86, 0, 87, 0, 88, 0, 99, 0, 100,
+ 0, 16, 0, 14, 0, 12, 0, 10, 0, 17,
+ 0, 15, 0, 13, 0, 11, 0, 132, 0, 133,
+ 0, 18, 0, 19, 0, 157, 111, 0, 0, 41,
+ 0, 42, 0, 43, 0, 44, 0, 0, 0, 58,
+ 0, 59, 0, 60, 0, 57, 4, 0, 141, 0,
+ 8, 0, 143, 0, 8, 0, 143, 0, 9, 0,
+ 10, 0, 11, 0, 12, 0, 13, 0, 14, 0,
+ 15, 0, 16, 0, 17, 0, 18, 0, 19, 0,
+ 20, 0, 21, 0, 45, 0, 142, 0, 170, 0,
+ 112, 4, 0, 140, 113, 145, 114, 0, 115, 4,
+ 116, 143, 117, 0, 115, 61, 62, 143, 117, 0,
+ 115, 61, 62, 4, 143, 117, 0, 118, 144, 119,
+ 0, 118, 119, 0, 143, 120, 0, 143, 0, 144,
+ 121, 143, 0, 144, 0, 144, 121, 37, 0, 37,
+ 0, 0, 141, 115, 148, 117, 0, 141, 115, 117,
+ 0, 141, 122, 24, 0, 141, 123, 148, 124, 0,
+ 141, 118, 148, 119, 0, 141, 118, 119, 0, 141,
+ 38, 0, 141, 39, 0, 141, 170, 0, 141, 147,
+ 0, 141, 26, 0, 132, 126, 0, 133, 4, 0,
+ 9, 27, 0, 9, 28, 0, 135, 7, 0, 96,
+ 113, 146, 36, 141, 114, 0, 94, 113, 146, 184,
+ 114, 0, 97, 113, 146, 121, 146, 121, 146, 114,
+ 0, 127, 113, 146, 121, 146, 114, 0, 128, 113,
+ 146, 121, 146, 114, 0, 129, 113, 146, 121, 146,
+ 114, 0, 131, 113, 146, 121, 146, 114, 0, 148,
+ 121, 146, 0, 146, 0, 32, 0, 33, 0, 151,
+ 0, 151, 166, 0, 151, 167, 0, 151, 25, 0,
+ 152, 0, 152, 136, 20, 139, 0, 152, 167, 0,
+ 152, 136, 137, 149, 146, 0, 152, 136, 47, 149,
+ 141, 0, 152, 48, 154, 0, 152, 54, 111, 155,
+ 0, 0, 53, 0, 52, 0, 50, 111, 153, 0,
+ 51, 111, 4, 0, 49, 111, 24, 0, 115, 156,
+ 117, 0, 156, 121, 24, 0, 24, 0, 0, 22,
+ 0, 24, 0, 157, 0, 0, 141, 158, 0, 160,
+ 121, 159, 0, 159, 0, 160, 0, 160, 121, 37,
+ 0, 37, 0, 0, 138, 139, 157, 113, 161, 114,
+ 0, 29, 0, 118, 0, 137, 162, 163, 0, 30,
+ 0, 119, 0, 173, 165, 0, 0, 31, 168, 162,
+ 0, 3, 0, 4, 0, 7, 0, 27, 0, 28,
+ 0, 38, 0, 39, 0, 123, 148, 124, 0, 147,
+ 0, 125, 0, 157, 0, 170, 0, 169, 0, 141,
+ 171, 0, 173, 174, 0, 164, 174, 0, 175, 136,
+ 176, 0, 175, 178, 0, 0, 23, 0, 63, 172,
+ 0, 63, 8, 0, 64, 21, 171, 0, 64, 9,
+ 171, 121, 21, 171, 121, 21, 171, 0, 65, 134,
+ 171, 121, 21, 171, 115, 177, 117, 0, 65, 134,
+ 171, 121, 21, 171, 115, 117, 0, 66, 138, 139,
+ 171, 113, 181, 114, 36, 21, 171, 67, 21, 171,
+ 0, 67, 0, 68, 0, 177, 134, 169, 121, 21,
+ 171, 0, 134, 169, 121, 21, 171, 0, 136, 183,
+ 0, 141, 115, 171, 121, 171, 117, 0, 179, 121,
+ 115, 171, 121, 171, 117, 0, 172, 0, 180, 121,
+ 172, 0, 180, 0, 0, 56, 55, 0, 55, 0,
+ 127, 141, 171, 121, 171, 0, 128, 141, 171, 121,
+ 171, 0, 129, 141, 171, 121, 171, 0, 130, 141,
+ 171, 121, 171, 0, 46, 172, 0, 131, 172, 121,
+ 172, 0, 96, 172, 36, 141, 0, 97, 172, 121,
+ 172, 121, 172, 0, 98, 172, 121, 172, 121, 172,
+ 0, 101, 172, 121, 141, 0, 109, 172, 121, 141,
+ 0, 110, 172, 121, 141, 0, 95, 179, 0, 182,
+ 138, 139, 171, 113, 181, 114, 0, 187, 0, 121,
+ 180, 0, 0, 34, 0, 0, 35, 0, 0, 89,
+ 141, 0, 89, 141, 121, 15, 171, 0, 90, 141,
+ 0, 90, 141, 121, 15, 171, 0, 91, 172, 0,
+ 185, 92, 141, 171, 0, 185, 93, 172, 121, 141,
+ 171, 0, 94, 141, 171, 184, 0, 102, 141, 171,
+ 184, 0, 186, 103, 172, 121, 172, 0, 105, 172,
+ 121, 172, 121, 172, 121, 172, 0, 106, 172, 121,
+ 172, 0, 107, 172, 121, 172, 121, 172, 121, 172,
+ 0, 108, 172, 121, 172, 121, 172, 0, 104, 172,
+ 121, 141, 171, 184, 0
+};
-#if defined (__STDC__) || defined (__cplusplus)
- typedef signed char yysigned_char;
-#else
- typedef short yysigned_char;
#endif
-/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 4
-/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1102
-
-/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 108
-/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 62
-/* YYNRULES -- Number of rules. */
-#define YYNRULES 212
-/* YYNRULES -- Number of states. */
-#define YYNSTATES 419
-
-/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
-#define YYUNDEFTOK 2
-#define YYMAXUTOK 348
-
-#define YYTRANSLATE(YYX) \
- ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
-
-/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */
-static const unsigned char yytranslate[] =
-{
- 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 96, 97, 105, 2, 106, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 101, 94, 102, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 98, 95, 100, 2, 2, 2, 2, 2, 107,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 99, 2, 2, 103, 2, 104, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
- 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
- 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
- 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
- 85, 86, 87, 88, 89, 90, 91, 92, 93
+#if YYDEBUG != 0
+static const short yyrline[] = { 0,
+ 986, 987, 994, 995, 1004, 1004, 1004, 1004, 1004, 1005,
+ 1005, 1005, 1006, 1006, 1006, 1006, 1006, 1006, 1007, 1007,
+ 1007, 1007, 1007, 1007, 1009, 1009, 1013, 1013, 1013, 1013,
+ 1014, 1014, 1014, 1014, 1015, 1015, 1016, 1016, 1019, 1022,
+ 1026, 1026, 1027, 1028, 1029, 1032, 1032, 1033, 1034, 1035,
+ 1049, 1049, 1050, 1050, 1052, 1061, 1061, 1061, 1061, 1061,
+ 1061, 1061, 1062, 1062, 1062, 1062, 1062, 1062, 1063, 1066,
+ 1069, 1075, 1082, 1094, 1099, 1104, 1116, 1125, 1128, 1136,
+ 1140, 1145, 1146, 1149, 1152, 1162, 1187, 1200, 1228, 1253,
+ 1273, 1285, 1294, 1298, 1357, 1363, 1371, 1376, 1381, 1384,
+ 1387, 1394, 1404, 1435, 1442, 1463, 1471, 1476, 1488, 1491,
+ 1498, 1498, 1508, 1515, 1519, 1522, 1525, 1538, 1558, 1560,
+ 1564, 1568, 1570, 1572, 1577, 1578, 1580, 1583, 1591, 1596,
+ 1598, 1602, 1606, 1614, 1614, 1615, 1615, 1617, 1623, 1628,
+ 1634, 1637, 1642, 1646, 1650, 1730, 1730, 1732, 1740, 1740,
+ 1742, 1746, 1746, 1755, 1758, 1761, 1764, 1767, 1770, 1773,
+ 1776, 1800, 1807, 1810, 1815, 1815, 1821, 1825, 1828, 1836,
+ 1845, 1849, 1859, 1870, 1873, 1876, 1879, 1882, 1896, 1900,
+ 1953, 1956, 1962, 1970, 1980, 1987, 1992, 1998, 2002, 2008,
+ 2008, 2010, 2013, 2019, 2032, 2041, 2047, 2053, 2065, 2073,
+ 2080, 2087, 2096, 2101, 2120, 2142, 2156, 2213, 2219, 2221,
+ 2225, 2228, 2232, 2235, 2240, 2244, 2248, 2252, 2256, 2263,
+ 2274, 2288, 2310, 2325, 2331, 2343, 2351, 2363, 2373
};
+#endif
-#if YYDEBUG
-/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
- YYRHS. */
-static const unsigned short yyprhs[] =
-{
- 0, 0, 3, 5, 7, 9, 11, 13, 15, 17,
- 19, 21, 23, 25, 27, 29, 31, 33, 35, 37,
- 39, 41, 43, 45, 47, 49, 51, 53, 55, 57,
- 59, 61, 63, 65, 67, 70, 71, 73, 75, 77,
- 79, 80, 81, 83, 85, 87, 90, 92, 94, 96,
- 98, 100, 102, 104, 106, 108, 110, 112, 114, 116,
- 118, 120, 122, 124, 126, 128, 130, 132, 135, 140,
- 146, 152, 156, 159, 162, 164, 168, 170, 174, 176,
- 177, 182, 186, 190, 195, 200, 204, 207, 210, 213,
- 216, 219, 222, 225, 228, 231, 234, 241, 247, 256,
- 263, 270, 277, 284, 288, 290, 292, 294, 296, 299,
- 302, 305, 307, 312, 315, 321, 327, 331, 336, 337,
- 339, 341, 345, 349, 353, 357, 361, 363, 364, 366,
- 368, 370, 371, 374, 378, 380, 382, 386, 388, 389,
- 396, 398, 400, 404, 406, 408, 411, 412, 416, 418,
- 420, 422, 424, 426, 428, 430, 434, 436, 438, 440,
- 442, 444, 447, 450, 453, 457, 460, 461, 463, 466,
- 469, 473, 483, 493, 502, 516, 518, 520, 527, 533,
- 536, 543, 551, 553, 557, 559, 560, 563, 565, 571,
- 577, 583, 586, 591, 596, 603, 608, 613, 618, 621,
- 629, 631, 634, 635, 637, 638, 641, 647, 650, 656,
- 659, 664, 671
-};
-/* YYRHS -- A `-1'-separated list of the rules' RHS. */
-static const short yyrhs[] =
-{
- 133, 0, -1, 5, -1, 6, -1, 3, -1, 4,
- -1, 66, -1, 67, -1, 68, -1, 69, -1, 70,
- -1, 71, -1, 72, -1, 73, -1, 74, -1, 75,
- -1, 76, -1, 77, -1, 78, -1, 79, -1, 89,
- -1, 90, -1, 16, -1, 14, -1, 12, -1, 10,
- -1, 17, -1, 15, -1, 13, -1, 11, -1, 115,
- -1, 116, -1, 18, -1, 19, -1, 140, 94, -1,
- -1, 40, -1, 41, -1, 42, -1, 43, -1, -1,
- -1, 57, -1, 58, -1, 59, -1, 56, 4, -1,
- 124, -1, 8, -1, 126, -1, 8, -1, 126, -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, 44, -1, 125, -1,
- 153, -1, 95, 4, -1, 123, 96, 128, 97, -1,
- 98, 4, 99, 126, 100, -1, 101, 4, 99, 126,
- 102, -1, 103, 127, 104, -1, 103, 104, -1, 126,
- 105, -1, 126, -1, 127, 106, 126, -1, 127, -1,
- 127, 106, 36, -1, 36, -1, -1, 124, 98, 131,
- 100, -1, 124, 98, 100, -1, 124, 107, 24, -1,
- 124, 101, 131, 102, -1, 124, 103, 131, 104, -1,
- 124, 103, 104, -1, 124, 37, -1, 124, 38, -1,
- 124, 153, -1, 124, 130, -1, 124, 26, -1, 115,
- 110, -1, 116, 4, -1, 9, 27, -1, 9, 28,
- -1, 118, 7, -1, 87, 96, 129, 35, 124, 97,
- -1, 85, 96, 129, 167, 97, -1, 88, 96, 129,
- 106, 129, 106, 129, 97, -1, 111, 96, 129, 106,
- 129, 97, -1, 112, 96, 129, 106, 129, 97, -1,
- 113, 96, 129, 106, 129, 97, -1, 114, 96, 129,
- 106, 129, 97, -1, 131, 106, 129, -1, 129, -1,
- 32, -1, 33, -1, 134, -1, 134, 149, -1, 134,
- 150, -1, 134, 25, -1, 135, -1, 135, 119, 20,
- 122, -1, 135, 150, -1, 135, 119, 120, 132, 129,
- -1, 135, 119, 46, 132, 124, -1, 135, 47, 137,
- -1, 135, 53, 94, 138, -1, -1, 52, -1, 51,
- -1, 49, 94, 136, -1, 50, 94, 4, -1, 48,
- 94, 24, -1, 98, 139, 100, -1, 139, 106, 24,
- -1, 24, -1, -1, 22, -1, 24, -1, 140, -1,
- -1, 124, 141, -1, 143, 106, 142, -1, 142, -1,
- 143, -1, 143, 106, 36, -1, 36, -1, -1, 121,
- 122, 140, 96, 144, 97, -1, 29, -1, 103, -1,
- 120, 145, 146, -1, 30, -1, 104, -1, 156, 148,
- -1, -1, 31, 151, 145, -1, 3, -1, 4, -1,
- 7, -1, 27, -1, 28, -1, 37, -1, 38, -1,
- 101, 131, 102, -1, 130, -1, 109, -1, 140, -1,
- 153, -1, 152, -1, 124, 154, -1, 156, 157, -1,
- 147, 157, -1, 158, 119, 159, -1, 158, 161, -1,
- -1, 23, -1, 60, 155, -1, 60, 8, -1, 61,
- 21, 154, -1, 61, 9, 154, 106, 21, 154, 106,
- 21, 154, -1, 62, 117, 154, 106, 21, 154, 98,
- 160, 100, -1, 62, 117, 154, 106, 21, 154, 98,
- 100, -1, 63, 121, 122, 154, 96, 164, 97, 35,
- 21, 154, 64, 21, 154, -1, 64, -1, 65, -1,
- 160, 117, 152, 106, 21, 154, -1, 117, 152, 106,
- 21, 154, -1, 119, 166, -1, 124, 98, 154, 106,
- 154, 100, -1, 162, 106, 98, 154, 106, 154, 100,
- -1, 155, -1, 163, 106, 155, -1, 163, -1, -1,
- 55, 54, -1, 54, -1, 111, 124, 154, 106, 154,
- -1, 112, 124, 154, 106, 154, -1, 113, 124, 154,
- 106, 154, -1, 45, 155, -1, 114, 155, 106, 155,
- -1, 87, 155, 35, 124, -1, 88, 155, 106, 155,
- 106, 155, -1, 91, 155, 106, 124, -1, 92, 155,
- 106, 124, -1, 93, 155, 106, 124, -1, 86, 162,
- -1, 165, 121, 122, 154, 96, 164, 97, -1, 169,
- -1, 106, 163, -1, -1, 34, -1, -1, 80, 124,
- -1, 80, 124, 106, 15, 154, -1, 81, 124, -1,
- 81, 124, 106, 15, 154, -1, 82, 155, -1, 168,
- 83, 124, 154, -1, 168, 84, 155, 106, 124, 154,
- -1, 85, 124, 154, 167, -1
-};
+#if YYDEBUG != 0 || defined (YYERROR_VERBOSE)
-/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
-static const unsigned short yyrline[] =
-{
- 0, 982, 982, 983, 990, 991, 1000, 1000, 1000, 1000,
- 1000, 1001, 1001, 1001, 1002, 1002, 1002, 1002, 1002, 1002,
- 1004, 1004, 1008, 1008, 1008, 1008, 1009, 1009, 1009, 1009,
- 1010, 1010, 1011, 1011, 1014, 1017, 1021, 1022, 1023, 1024,
- 1025, 1027, 1028, 1029, 1030, 1031, 1044, 1044, 1045, 1045,
- 1047, 1056, 1056, 1056, 1056, 1056, 1056, 1056, 1057, 1057,
- 1057, 1057, 1057, 1057, 1058, 1061, 1064, 1070, 1077, 1089,
- 1093, 1104, 1113, 1116, 1124, 1128, 1133, 1134, 1137, 1140,
- 1150, 1175, 1188, 1216, 1241, 1261, 1273, 1282, 1286, 1345,
- 1351, 1359, 1364, 1369, 1372, 1375, 1382, 1392, 1423, 1430,
- 1451, 1458, 1463, 1473, 1476, 1483, 1483, 1493, 1500, 1504,
- 1507, 1510, 1523, 1543, 1545, 1549, 1553, 1555, 1557, 1562,
- 1563, 1565, 1568, 1576, 1581, 1583, 1587, 1591, 1599, 1599,
- 1600, 1600, 1602, 1608, 1613, 1619, 1622, 1627, 1631, 1635,
- 1715, 1715, 1717, 1725, 1725, 1727, 1731, 1731, 1740, 1743,
- 1746, 1749, 1752, 1755, 1758, 1761, 1785, 1792, 1795, 1800,
- 1800, 1806, 1810, 1813, 1821, 1830, 1834, 1844, 1855, 1858,
- 1861, 1864, 1867, 1881, 1885, 1938, 1941, 1947, 1955, 1965,
- 1972, 1977, 1984, 1988, 1994, 1994, 1996, 1999, 2005, 2017,
- 2025, 2035, 2047, 2054, 2061, 2068, 2073, 2092, 2114, 2128,
- 2185, 2191, 2193, 2197, 2200, 2206, 2210, 2214, 2218, 2222,
- 2229, 2239, 2252
+static const char * const yytname[] = { "$","error","$undefined.","ESINT64VAL",
+"EUINT64VAL","SINTVAL","UINTVAL","FPVAL","VOID","BOOL","SBYTE","UBYTE","SHORT",
+"USHORT","INT","UINT","LONG","ULONG","FLOAT","DOUBLE","TYPE","LABEL","VAR_ID",
+"LABELSTR","STRINGCONSTANT","IMPLEMENTATION","ZEROINITIALIZER","TRUETOK","FALSETOK",
+"BEGINTOK","ENDTOK","DECLARE","GLOBAL","CONSTANT","VOLATILE","FIXED","TO","DOTDOTDOT",
+"NULL_TOK","UNDEF","CONST","INTERNAL","LINKONCE","WEAK","APPENDING","OPAQUE",
+"NOT","EXTERNAL","TARGET","TRIPLE","ENDIAN","POINTERSIZE","LITTLE","BIG","DEPLIBS",
+"CALL","TAIL","CC_TOK","CCC_TOK","FASTCC_TOK","COLDCC_TOK","VECTOR","OF","RET",
+"BR","SWITCH","INVOKE","UNWIND","UNREACHABLE","ADD","SUB","MUL","DIV","REM",
+"AND","OR","XOR","SETLE","SETGE","SETLT","SETGT","SETEQ","SETNE","VSETLE","VSETGE",
+"VSETLT","VSETGT","VSETEQ","VSETNE","MALLOC","ALLOCA","FREE","LOAD","STORE",
+"GETELEMENTPTR","PHI_TOK","CAST","SELECT","VSELECT","SHL","SHR","VAARG","VGATHER",
+"VIMM","VSCATTER","EXTRACT","EXTRACTELEMENT","COMBINE","COMBINEELEMENT","VAARG_old",
+"VANEXT_old","'='","'\\\\'","'('","')'","'['","'x'","']'","'{'","'}'","'*'",
+"','","'c'","'<'","'>'","INTVAL","EINT64VAL","ArithmeticOps","LogicalOps","SetCondOps",
+"VSetCondOps","ShiftOps","SIntType","UIntType","IntType","FPType","OptAssign",
+"OptLinkage","OptCallingConv","TypesV","UpRTypesV","Types","PrimType","UpRTypes",
+"TypeListI","ArgTypeListI","ConstVal","ConstExpr","ConstVector","GlobalType",
+"Module","FunctionList","ConstPool","BigOrLittle","TargetDefinition","LibrariesDefinition",
+"LibList","Name","OptName","ArgVal","ArgListH","ArgList","FunctionHeaderH","BEGIN",
+"FunctionHeader","END","Function","FunctionProto","@1","ConstValueRef","SymbolicValueRef",
+"ValueRef","ResolvedVal","BasicBlockList","BasicBlock","InstructionList","BBTerminatorInst",
+"JumpTable","Inst","PHIList","ValueRefList","ValueRefListE","OptTailCall","InstVal",
+"IndexList","OptVolatile","OptFixed","MemoryInst", NULL
};
#endif
-#if YYDEBUG || YYERROR_VERBOSE
-/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
- First, the terminals, then, starting at YYNTOKENS, nonterminals. */
-static const char *const yytname[] =
-{
- "$end", "error", "$undefined", "ESINT64VAL", "EUINT64VAL", "SINTVAL",
- "UINTVAL", "FPVAL", "VOID", "BOOL", "SBYTE", "UBYTE", "SHORT", "USHORT",
- "INT", "UINT", "LONG", "ULONG", "FLOAT", "DOUBLE", "TYPE", "LABEL",
- "VAR_ID", "LABELSTR", "STRINGCONSTANT", "IMPLEMENTATION",
- "ZEROINITIALIZER", "TRUETOK", "FALSETOK", "BEGINTOK", "ENDTOK",
- "DECLARE", "GLOBAL", "CONSTANT", "VOLATILE", "TO", "DOTDOTDOT",
- "NULL_TOK", "UNDEF", "CONST", "INTERNAL", "LINKONCE", "WEAK",
- "APPENDING", "OPAQUE", "NOT", "EXTERNAL", "TARGET", "TRIPLE", "ENDIAN",
- "POINTERSIZE", "LITTLE", "BIG", "DEPLIBS", "CALL", "TAIL", "CC_TOK",
- "CCC_TOK", "FASTCC_TOK", "COLDCC_TOK", "RET", "BR", "SWITCH", "INVOKE",
- "UNWIND", "UNREACHABLE", "ADD", "SUB", "MUL", "DIV", "REM", "AND", "OR",
- "XOR", "SETLE", "SETGE", "SETLT", "SETGT", "SETEQ", "SETNE", "MALLOC",
- "ALLOCA", "FREE", "LOAD", "STORE", "GETELEMENTPTR", "PHI_TOK", "CAST",
- "SELECT", "SHL", "SHR", "VAARG", "VAARG_old", "VANEXT_old", "'='",
- "'\\\\'", "'('", "')'", "'['", "'x'", "']'", "'<'", "'>'", "'{'", "'}'",
- "'*'", "','", "'c'", "$accept", "INTVAL", "EINT64VAL", "ArithmeticOps",
- "LogicalOps", "SetCondOps", "ShiftOps", "SIntType", "UIntType",
- "IntType", "FPType", "OptAssign", "OptLinkage", "OptCallingConv",
- "TypesV", "UpRTypesV", "Types", "PrimType", "UpRTypes", "TypeListI",
- "ArgTypeListI", "ConstVal", "ConstExpr", "ConstVector", "GlobalType",
- "Module", "FunctionList", "ConstPool", "BigOrLittle", "TargetDefinition",
- "LibrariesDefinition", "LibList", "Name", "OptName", "ArgVal",
- "ArgListH", "ArgList", "FunctionHeaderH", "BEGIN", "FunctionHeader",
- "END", "Function", "FunctionProto", "@1", "ConstValueRef",
- "SymbolicValueRef", "ValueRef", "ResolvedVal", "BasicBlockList",
- "BasicBlock", "InstructionList", "BBTerminatorInst", "JumpTable", "Inst",
- "PHIList", "ValueRefList", "ValueRefListE", "OptTailCall", "InstVal",
- "IndexList", "OptVolatile", "MemoryInst", 0
+static const short yyr1[] = { 0,
+ 125, 125, 126, 126, 127, 127, 127, 127, 127, 128,
+ 128, 128, 129, 129, 129, 129, 129, 129, 130, 130,
+ 130, 130, 130, 130, 131, 131, 132, 132, 132, 132,
+ 133, 133, 133, 133, 134, 134, 135, 135, 136, 136,
+ 137, 137, 137, 137, 137, 138, 138, 138, 138, 138,
+ 139, 139, 140, 140, 141, 142, 142, 142, 142, 142,
+ 142, 142, 142, 142, 142, 142, 142, 142, 143, 143,
+ 143, 143, 143, 143, 143, 143, 143, 143, 143, 144,
+ 144, 145, 145, 145, 145, 146, 146, 146, 146, 146,
+ 146, 146, 146, 146, 146, 146, 146, 146, 146, 146,
+ 146, 147, 147, 147, 147, 147, 147, 147, 148, 148,
+ 149, 149, 150, 151, 151, 151, 151, 152, 152, 152,
+ 152, 152, 152, 152, 153, 153, 154, 154, 154, 155,
+ 156, 156, 156, 157, 157, 158, 158, 159, 160, 160,
+ 161, 161, 161, 161, 162, 163, 163, 164, 165, 165,
+ 166, 168, 167, 169, 169, 169, 169, 169, 169, 169,
+ 169, 169, 170, 170, 171, 171, 172, 173, 173, 174,
+ 175, 175, 175, 176, 176, 176, 176, 176, 176, 176,
+ 176, 176, 177, 177, 178, 179, 179, 180, 180, 181,
+ 181, 182, 182, 183, 183, 183, 183, 183, 183, 183,
+ 183, 183, 183, 183, 183, 183, 183, 183, 184, 184,
+ 185, 185, 186, 186, 187, 187, 187, 187, 187, 187,
+ 187, 187, 187, 187, 187, 187, 187, 187, 187
};
-#endif
-# ifdef YYPRINT
-/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
- token YYLEX-NUM. */
-static const unsigned short yytoknum[] =
-{
- 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
- 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
- 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
- 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
- 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
- 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
- 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
- 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
- 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348, 61, 92, 40, 41, 91, 120,
- 93, 60, 62, 123, 125, 42, 44, 99
+static const short yyr2[] = { 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, 1, 1, 1, 1, 1, 2, 0,
+ 1, 1, 1, 1, 0, 0, 1, 1, 1, 2,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 2, 4, 5, 5, 6, 3, 2, 2, 1,
+ 3, 1, 3, 1, 0, 4, 3, 3, 4, 4,
+ 3, 2, 2, 2, 2, 2, 2, 2, 2, 2,
+ 2, 6, 5, 8, 6, 6, 6, 6, 3, 1,
+ 1, 1, 1, 2, 2, 2, 1, 4, 2, 5,
+ 5, 3, 4, 0, 1, 1, 3, 3, 3, 3,
+ 3, 1, 0, 1, 1, 1, 0, 2, 3, 1,
+ 1, 3, 1, 0, 6, 1, 1, 3, 1, 1,
+ 2, 0, 3, 1, 1, 1, 1, 1, 1, 1,
+ 3, 1, 1, 1, 1, 1, 2, 2, 2, 3,
+ 2, 0, 1, 2, 2, 3, 9, 9, 8, 13,
+ 1, 1, 6, 5, 2, 6, 7, 1, 3, 1,
+ 0, 2, 1, 5, 5, 5, 5, 2, 4, 4,
+ 6, 6, 4, 4, 4, 2, 7, 1, 2, 0,
+ 1, 0, 1, 0, 2, 5, 2, 5, 2, 4,
+ 6, 4, 4, 5, 8, 4, 8, 6, 6
};
-# endif
-/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
-static const unsigned char yyr1[] =
-{
- 0, 108, 109, 109, 110, 110, 111, 111, 111, 111,
- 111, 112, 112, 112, 113, 113, 113, 113, 113, 113,
- 114, 114, 115, 115, 115, 115, 116, 116, 116, 116,
- 117, 117, 118, 118, 119, 119, 120, 120, 120, 120,
- 120, 121, 121, 121, 121, 121, 122, 122, 123, 123,
- 124, 125, 125, 125, 125, 125, 125, 125, 125, 125,
- 125, 125, 125, 125, 126, 126, 126, 126, 126, 126,
- 126, 126, 126, 126, 127, 127, 128, 128, 128, 128,
- 129, 129, 129, 129, 129, 129, 129, 129, 129, 129,
- 129, 129, 129, 129, 129, 129, 130, 130, 130, 130,
- 130, 130, 130, 131, 131, 132, 132, 133, 134, 134,
- 134, 134, 135, 135, 135, 135, 135, 135, 135, 136,
- 136, 137, 137, 137, 138, 139, 139, 139, 140, 140,
- 141, 141, 142, 143, 143, 144, 144, 144, 144, 145,
- 146, 146, 147, 148, 148, 149, 151, 150, 152, 152,
- 152, 152, 152, 152, 152, 152, 152, 153, 153, 154,
- 154, 155, 156, 156, 157, 158, 158, 158, 159, 159,
- 159, 159, 159, 159, 159, 159, 159, 160, 160, 161,
- 162, 162, 163, 163, 164, 164, 165, 165, 166, 166,
- 166, 166, 166, 166, 166, 166, 166, 166, 166, 166,
- 166, 167, 167, 168, 168, 169, 169, 169, 169, 169,
- 169, 169, 169
+static const short yydefact[] = { 124,
+ 45, 117, 116, 152, 41, 42, 43, 44, 46, 172,
+ 114, 115, 172, 134, 135, 0, 0, 45, 0, 119,
+ 46, 0, 47, 48, 49, 0, 0, 173, 169, 40,
+ 149, 150, 151, 168, 0, 0, 0, 122, 0, 0,
+ 0, 0, 39, 153, 50, 1, 2, 52, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 69, 0, 0, 0, 163, 0, 0, 51, 70,
+ 55, 164, 71, 146, 147, 148, 212, 171, 0, 0,
+ 0, 133, 123, 118, 111, 112, 0, 0, 72, 0,
+ 0, 54, 78, 80, 0, 0, 85, 79, 211, 213,
+ 0, 193, 0, 0, 0, 0, 46, 181, 182, 5,
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 0,
+ 0, 0, 0, 0, 0, 0, 0, 25, 26, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 170, 46, 185, 0, 0, 208, 129,
+ 126, 125, 127, 128, 132, 0, 121, 56, 57, 58,
+ 59, 60, 61, 62, 63, 64, 65, 66, 0, 0,
+ 0, 0, 120, 0, 0, 77, 0, 144, 84, 82,
+ 0, 0, 198, 192, 175, 174, 0, 0, 30, 34,
+ 29, 33, 28, 32, 27, 31, 35, 36, 0, 0,
+ 215, 217, 219, 0, 0, 206, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 130, 0, 99,
+ 100, 3, 4, 97, 98, 101, 96, 92, 93, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 95, 94, 53, 0, 53, 81, 143, 137, 140, 141,
+ 0, 0, 73, 154, 155, 156, 157, 158, 159, 160,
+ 0, 162, 166, 165, 167, 0, 176, 0, 0, 0,
+ 0, 210, 0, 0, 0, 0, 0, 0, 210, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 131, 0, 0, 0, 87,
+ 110, 0, 91, 0, 88, 0, 0, 0, 0, 0,
+ 74, 53, 75, 136, 138, 0, 145, 83, 0, 0,
+ 0, 0, 0, 0, 0, 222, 0, 0, 200, 0,
+ 0, 203, 223, 0, 0, 226, 0, 0, 204, 205,
+ 0, 0, 0, 0, 199, 0, 220, 0, 0, 210,
+ 0, 0, 86, 0, 90, 89, 0, 0, 0, 0,
+ 76, 142, 139, 161, 0, 0, 191, 216, 218, 188,
+ 209, 0, 0, 0, 0, 210, 0, 0, 0, 194,
+ 195, 196, 197, 191, 0, 224, 0, 0, 0, 109,
+ 0, 0, 0, 0, 0, 0, 190, 0, 0, 0,
+ 0, 201, 202, 229, 0, 0, 228, 0, 221, 103,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 189,
+ 186, 0, 0, 0, 207, 102, 0, 105, 106, 107,
+ 108, 0, 179, 0, 0, 0, 187, 225, 227, 0,
+ 177, 0, 178, 0, 0, 104, 0, 0, 0, 0,
+ 0, 0, 184, 0, 0, 183, 180, 0, 0, 0
};
-/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
-static const unsigned char yyr2[] =
-{
- 0, 2, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 2, 0, 1, 1, 1, 1,
- 0, 0, 1, 1, 1, 2, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 2, 4, 5,
- 5, 3, 2, 2, 1, 3, 1, 3, 1, 0,
- 4, 3, 3, 4, 4, 3, 2, 2, 2, 2,
- 2, 2, 2, 2, 2, 2, 6, 5, 8, 6,
- 6, 6, 6, 3, 1, 1, 1, 1, 2, 2,
- 2, 1, 4, 2, 5, 5, 3, 4, 0, 1,
- 1, 3, 3, 3, 3, 3, 1, 0, 1, 1,
- 1, 0, 2, 3, 1, 1, 3, 1, 0, 6,
- 1, 1, 3, 1, 1, 2, 0, 3, 1, 1,
- 1, 1, 1, 1, 1, 3, 1, 1, 1, 1,
- 1, 2, 2, 2, 3, 2, 0, 1, 2, 2,
- 3, 9, 9, 8, 13, 1, 1, 6, 5, 2,
- 6, 7, 1, 3, 1, 0, 2, 1, 5, 5,
- 5, 2, 4, 4, 6, 4, 4, 4, 2, 7,
- 1, 2, 0, 1, 0, 2, 5, 2, 5, 2,
- 4, 6, 4
+static const short yydefgoto[] = { 66,
+ 244, 257, 258, 259, 152, 260, 179, 180, 209, 181,
+ 18, 9, 26, 67, 68, 192, 70, 71, 95, 191,
+ 321, 282, 322, 87, 478, 1, 2, 163, 38, 83,
+ 166, 72, 335, 269, 270, 271, 27, 76, 10, 33,
+ 11, 12, 21, 283, 73, 285, 390, 13, 29, 30,
+ 154, 455, 78, 216, 417, 418, 155, 156, 346, 157,
+ 158, 159
};
-/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
- STATE-NUM when YYTABLE doesn't specify something else to do. Zero
- means the default is an error. */
-static const unsigned char yydefact[] =
-{
- 118, 0, 40, 111, 1, 110, 146, 36, 37, 38,
- 39, 41, 166, 108, 109, 166, 128, 129, 0, 0,
- 40, 0, 113, 41, 0, 42, 43, 44, 0, 0,
- 167, 163, 35, 143, 144, 145, 162, 0, 0, 0,
- 116, 0, 0, 0, 0, 34, 147, 45, 2, 3,
- 47, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 0, 0, 0, 0, 157,
- 0, 0, 46, 65, 50, 158, 66, 140, 141, 142,
- 204, 165, 0, 0, 0, 127, 117, 112, 105, 106,
- 0, 0, 67, 0, 0, 49, 72, 74, 0, 0,
- 79, 73, 203, 0, 187, 0, 0, 0, 0, 41,
- 175, 176, 6, 7, 8, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
- 0, 0, 0, 20, 21, 0, 0, 0, 0, 0,
- 0, 0, 164, 41, 179, 0, 200, 123, 120, 119,
- 121, 122, 126, 0, 115, 51, 52, 53, 54, 55,
- 56, 57, 58, 59, 60, 61, 0, 0, 0, 0,
- 114, 0, 0, 71, 0, 138, 78, 76, 0, 0,
- 191, 186, 169, 168, 0, 0, 25, 29, 24, 28,
- 23, 27, 22, 26, 30, 31, 0, 0, 205, 207,
- 209, 0, 0, 198, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 124, 0, 93, 94,
- 4, 5, 91, 92, 95, 90, 86, 87, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 89,
- 88, 48, 48, 75, 137, 131, 134, 135, 0, 0,
- 68, 148, 149, 150, 151, 152, 153, 154, 0, 156,
- 160, 159, 161, 0, 170, 0, 0, 0, 0, 202,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 125, 0, 0, 0, 81, 104,
- 0, 0, 85, 0, 82, 0, 0, 0, 0, 69,
- 70, 130, 132, 0, 139, 77, 0, 0, 0, 0,
- 0, 0, 0, 212, 0, 0, 193, 0, 195, 196,
- 197, 0, 0, 0, 192, 0, 210, 0, 202, 0,
- 0, 80, 0, 83, 84, 0, 0, 0, 0, 136,
- 133, 155, 0, 0, 185, 206, 208, 182, 201, 0,
- 0, 0, 188, 189, 190, 185, 0, 0, 0, 0,
- 103, 0, 0, 0, 0, 0, 0, 184, 0, 0,
- 0, 0, 194, 0, 211, 97, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 183, 180, 0, 199, 96,
- 0, 99, 100, 101, 102, 0, 173, 0, 0, 0,
- 181, 0, 171, 0, 172, 0, 0, 98, 0, 0,
- 0, 0, 0, 0, 178, 0, 0, 177, 174
+static const short yypact[] = {-32768,
+ 11, 169,-32768,-32768,-32768,-32768,-32768,-32768, 40, -11,
+-32768,-32768, -17,-32768,-32768, 68, -68, 93, -61,-32768,
+ 40, 66,-32768,-32768,-32768, 1089, -22,-32768,-32768, 34,
+-32768,-32768,-32768,-32768, -5, 18, 30,-32768, 1, 1089,
+ 77, 77,-32768,-32768,-32768,-32768,-32768, 8,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768, 147, 6, 67,-32768, 34, 48,-32768,-32768,
+ -74,-32768,-32768,-32768,-32768,-32768, 1261,-32768, 148, 80,
+ 174, 159,-32768,-32768,-32768,-32768, 1127, 1165,-32768, 71,
+ 126,-32768,-32768, -74, -55, 79, 899,-32768,-32768,-32768,
+ 1127,-32768, 135, 1203, 28, 154, 40,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 1127,
+ 1127, 1127, 1127, 1127, 1127, 1127, 1127,-32768,-32768, 1127,
+ 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127, 1127,
+ 1127, 1127, 1127,-32768, 40,-32768, 46, 91,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768, -76,-32768, 116, 145, 191,
+ 156, 192, 170, 193, 173, 194, 196, 197, 177, 201,
+ 199, 780,-32768, 1127, 456,-32768, 1127, 937,-32768, 97,
+ 100, 621,-32768,-32768, 8,-32768, 621, 621,-32768,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 621, 1089,
+ 98, 99,-32768, 621, 106, 101, 188, 104, 105, 108,
+ 621, 113, 114, 115, 117, 118, 119, 124, 621, 621,
+ 621, 621, 127, 1089, 1127, 1127, 1127,-32768, 213,-32768,
+-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 136,
+ 137, 138, 975, 820, 228, 1165, 140, 141, 143, 144,
+-32768,-32768, -73, 1127, -52, -74,-32768, 34,-32768, 139,
+ 149, 1013,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,
+ 1165,-32768,-32768,-32768,-32768, 150,-32768, 152, 621, 243,
+ 244, 155, 621, 151, 1127, 1127, 1127, 1127, 155, 1127,
+ 1127, 1127, 1127, 1127, 1127, 1127, 157, 160, 161, 162,
+ 1127, 621, 621, 163, 164,-32768, 1165, 1165, 1165,-32768,
+-32768, -58,-32768, -18,-32768, -50, 1165, 1165, 1165, 1165,
+-32768, -27,-32768,-32768,-32768, 1051,-32768,-32768, -29, 240,
+ 241, 176, 621, 621, 1127,-32768, 165, 621,-32768, 166,
+ 175,-32768,-32768, 621, 178,-32768, 179, 184,-32768,-32768,
+ 621, 621, 621, 621,-32768, 181,-32768, 1127, 1127, 155,
+ 229, 187,-32768, 1165,-32768,-32768, 195, 198, 203, 208,
+-32768,-32768,-32768,-32768, 621, 621, 1127,-32768,-32768,-32768,
+ 209, 621, 210, 1127, 1127, 155, 1127, 1127, 1127,-32768,
+-32768,-32768,-32768, 1127, 621,-32768, 153, 1127, 1165,-32768,
+ 1165, 1165, 1165, 1165, 211, 180, 209, 183, 1127, 158,
+ 621,-32768,-32768,-32768, 215, 216,-32768, 204,-32768,-32768,
+ 206, 217, 220, 225, 226, 227, 247, 5, 254,-32768,
+-32768, 200, 1127, 1127,-32768,-32768, 1165,-32768,-32768,-32768,
+-32768, 621,-32768, 701, 14, 256,-32768,-32768,-32768, 231,
+-32768, 230,-32768, 701, 621,-32768, 277, 232, 242, 621,
+ 294, 301,-32768, 621, 621,-32768,-32768, 264, 346,-32768
};
-/* YYDEFGOTO[NTERM-NUM]. */
-static const short yydefgoto[] =
-{
- -1, 69, 222, 235, 236, 237, 238, 166, 167, 196,
- 168, 20, 11, 28, 70, 71, 169, 73, 74, 98,
- 178, 289, 259, 290, 90, 1, 2, 3, 150, 40,
- 86, 153, 75, 302, 246, 247, 248, 29, 79, 12,
- 35, 13, 14, 23, 260, 76, 262, 347, 15, 31,
- 32, 142, 398, 81, 203, 367, 368, 143, 144, 313,
- 145, 146
+static const short yypgoto[] = {-32768,
+-32768, 270, 272, 279,-32768, 280, -105, -103, -404,-32768,
+ 324, 340, -98, -35,-32768, -26,-32768, -57, 262,-32768,
+ -86, 182, -221, 320,-32768,-32768,-32768,-32768,-32768,-32768,
+-32768, 2,-32768, 27,-32768,-32768, 344,-32768,-32768,-32768,
+-32768, 364,-32768, -416, 202, 146, 10,-32768, 355,-32768,
+-32768,-32768,-32768,-32768, 24, -34,-32768,-32768, -276,-32768,
+-32768,-32768
};
-/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
- STATE-NUM. */
-#define YYPACT_NINF -383
-static const short yypact[] =
-{
- -383, 48, 136, 517, -383, -383, -383, -383, -383, -383,
- -383, 27, 36, -383, -383, -17, -383, -383, 46, -21,
- -3, 3, -383, 27, 73, -383, -383, -383, 879, -24,
- -383, -383, 113, -383, -383, -383, -383, 20, 51, 60,
- -383, 21, 879, -13, -13, -383, -383, -383, -383, -383,
- 62, -383, -383, -383, -383, -383, -383, -383, -383, -383,
- -383, -383, -383, -383, -383, 156, 162, 164, 480, -383,
- 113, 76, -383, -383, -25, -383, -383, -383, -383, -383,
- 992, -383, 149, 37, 170, 157, -383, -383, -383, -383,
- 900, 941, -383, 81, 83, -383, -383, -25, 34, 87,
- 643, -383, -383, 900, -383, 130, 999, 32, 243, 27,
- -383, -383, -383, -383, -383, -383, -383, -383, -383, -383,
- -383, -383, -383, -383, -383, -383, 900, 900, 900, 900,
- 900, 900, 900, -383, -383, 900, 900, 900, 900, 900,
- 900, 900, -383, 27, -383, 22, -383, -383, -383, -383,
- -383, -383, -383, -82, -383, 122, 148, 184, 153, 185,
- 159, 186, 161, 187, 191, 193, 167, 197, 195, 380,
- -383, 900, 900, -383, 900, 680, -383, 97, 114, 549,
- -383, -383, 62, -383, 549, 549, -383, -383, -383, -383,
- -383, -383, -383, -383, -383, -383, 549, 879, 108, 109,
- -383, 549, 118, 111, 183, 116, 117, 119, 121, 549,
- 549, 549, 124, 879, 900, 900, -383, 196, -383, -383,
- -383, -383, -383, -383, -383, -383, -383, -383, 123, 132,
- 135, 742, 941, 501, 208, 137, 144, 145, 147, -383,
- -383, -84, -12, -25, -383, 113, -383, 155, 154, 779,
- -383, -383, -383, -383, -383, -383, -383, -383, 941, -383,
- -383, -383, -383, 158, -383, 160, 549, 235, 247, 173,
- 549, 165, 900, 900, 900, 900, 900, 174, 175, 176,
- 900, 549, 549, 177, -383, 941, 941, 941, -383, -383,
- -54, -57, -383, 42, -383, 941, 941, 941, 941, -383,
- -383, -383, -383, 842, -383, -383, -30, 244, 246, 172,
- 549, 549, 900, -383, 179, 549, -383, 180, -383, -383,
- -383, 549, 549, 549, -383, 194, -383, 900, 173, 241,
- 181, -383, 941, -383, -383, 190, 198, 199, 202, -383,
- -383, -383, 549, 549, 900, -383, -383, -383, 205, 549,
- 206, 900, -383, -383, -383, 900, 549, 192, 900, 941,
- -383, 941, 941, 941, 941, 207, 203, 205, 200, 900,
- 214, 549, -383, 218, -383, -383, 220, 212, 222, 223,
- 224, 225, 281, 17, 268, -383, -383, 226, -383, -383,
- 941, -383, -383, -383, -383, 549, -383, 54, 53, 303,
- -383, 228, -383, 227, -383, 54, 549, -383, 307, 231,
- 265, 549, 310, 311, -383, 549, 549, -383, -383
-};
-/* YYPGOTO[NTERM-NUM]. */
-static const short yypgoto[] =
-{
- -383, -383, -383, 254, 262, 264, 272, -106, -105, -372,
- -383, 313, 333, -101, -38, -383, -28, -383, -56, 255,
- -383, -90, 188, -223, 312, -383, -383, -383, -383, -383,
- -383, -383, 4, -383, 55, -383, -383, 331, -383, -383,
- -383, -383, 356, -383, -382, 25, 28, -81, -383, 345,
- -383, -383, -383, -383, -383, 49, 7, -383, -383, 35,
- -383, -383
-};
+#define YYLAST 1371
-/* 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 -108
-static const short yytable[] =
-{
- 72, 170, 194, 195, 87, 77, 30, 21, 197, 291,
- 293, 397, 97, 33, 72, 403, 299, 42, 216, 88,
- 89, 101, 180, 409, 217, 183, 405, 186, 187, 188,
- 189, 190, 191, 192, 193, 306, 21, 7, 8, 9,
- 10, 184, 213, 43, 97, 333, 331, 200, 4, 332,
- 204, 205, 332, 185, 206, 207, 208, 251, 252, 30,
- 212, 253, 154, 186, 187, 188, 189, 190, 191, 192,
- 193, -48, 341, 41, 99, 179, 332, 47, 179, 78,
- 101, 254, 255, 24, 25, 26, 27, 34, 148, 149,
- 300, 256, 257, 101, 37, 38, 39, 45, 198, 199,
- 179, 201, 202, 179, 179, 214, 215, 179, 179, 179,
- 209, 210, 211, 179, 82, 241, 242, 396, 243, 85,
- 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
- 122, 123, 124, 125, 283, 16, -107, 17, 173, 228,
- 174, 229, 230, 133, 134, 83, 334, 245, 332, 218,
- 219, -25, -25, 404, 84, 258, -24, -24, -49, 266,
- 92, 5, -23, -23, -22, -22, 93, 6, 94, 72,
- 220, 221, 100, 147, 151, 281, 7, 8, 9, 10,
- 171, 152, 172, 175, 181, 72, 282, 179, -29, -28,
- -27, -26, 317, 243, 240, 328, 329, 330, -32, 324,
- -33, 223, 224, 249, 261, 335, 336, 337, 338, 261,
- 261, 250, 263, 264, 267, 268, 270, 271, 272, 285,
- 284, 261, 273, 274, 265, 275, 261, 276, 286, 269,
- 280, 287, 294, 295, 261, 261, 261, 277, 278, 279,
- 296, 297, 360, 298, 316, 179, 318, 319, 320, 301,
- 310, 304, 179, 186, 187, 188, 189, 190, 191, 192,
- 193, 303, 311, 315, 307, 342, 308, 343, 344, 377,
- 372, 378, 379, 380, 381, 245, 358, 194, 195, 312,
- 321, 322, 323, 327, 179, 349, 351, 359, 385, 375,
- 355, 261, 194, 195, 309, 261, 361, 384, 314, 356,
- 401, 383, 395, 399, 362, 363, 261, 261, 364, 325,
- 326, 369, 371, 382, 386, 388, 179, 389, 390, 391,
- 392, 393, 394, 179, 406, 407, 400, 179, 411, 413,
- 376, 415, 416, 408, 138, 261, 261, 412, 345, 346,
- 261, 179, 139, 350, 140, 80, 261, 261, 261, 352,
- 353, 354, 141, 44, 46, 177, 91, 239, 340, 22,
- 36, 348, 373, 357, 0, 0, 0, 261, 261, 0,
- 365, 366, 0, 0, 261, 0, 0, 370, 0, 0,
- 0, 261, 0, 0, 374, 48, 49, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 261, 0, 0, 387,
- 0, 0, 16, 0, 17, 0, 225, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 226, 227, 0,
- 261, 0, 0, 402, 0, 0, 0, 0, 0, 0,
- 0, 261, 0, 0, 410, 0, 261, 0, 0, 414,
- 261, 261, 0, 417, 418, 0, 112, 113, 114, 115,
- 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
- 0, 0, 0, 0, 0, 228, 0, 229, 230, 133,
- 134, 0, 0, 0, 0, 0, 0, 0, 231, 0,
- 0, 232, 0, 233, 0, 48, 49, 234, 95, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 16, 0, 17, 0, 48, 49, 0, 95,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 62, 63, 16, 64, 17, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, -35, 0, 16,
- 0, 17, 0, 0, 0, 64, 0, 0, 6, -35,
- -35, 0, 251, 252, 48, 49, 253, -35, -35, -35,
- -35, 0, 0, -35, 18, 0, 0, 0, 0, 0,
- 19, 16, 0, 17, 0, 65, 254, 255, 66, 0,
- 0, 67, 0, 68, 96, 0, 256, 257, 0, 0,
- 0, 0, 0, 0, 0, 0, 65, 0, 0, 66,
- 0, 0, 67, 0, 68, 292, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 112, 113, 114, 115, 116,
- 117, 118, 119, 120, 121, 122, 123, 124, 125, 0,
- 0, 0, 0, 0, 228, 0, 229, 230, 133, 134,
- 0, 0, 0, 0, 0, 0, 0, 0, 48, 49,
- 258, 95, 51, 52, 53, 54, 55, 56, 57, 58,
- 59, 60, 61, 62, 63, 16, 0, 17, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 176,
- 0, 0, 0, 0, 0, 48, 49, 64, 95, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 16, 0, 17, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 244, 0, 0, 0,
- 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 65, 0,
- 0, 66, 0, 0, 67, 0, 68, 48, 49, 0,
- 95, 155, 156, 157, 158, 159, 160, 161, 162, 163,
- 164, 165, 62, 63, 16, 0, 17, 0, 0, 0,
- 0, 0, 0, 0, 0, 65, 0, 0, 66, 0,
- 0, 67, 0, 68, 48, 49, 64, 95, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 16, 0, 17, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 305, 0, 0, 0, 0,
- 0, 0, 0, 64, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 65, 0, 0,
- 66, 0, 288, 67, 0, 68, 0, 48, 49, 0,
- 95, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 16, 0, 17, 0, 0, 0,
- 0, 0, 0, 0, 65, 0, 0, 66, 339, 0,
- 67, 0, 68, 0, 48, 49, 64, 50, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 16, 0, 17, 0, 48, 49, 0, 95, 51,
- 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
- 62, 63, 16, 64, 17, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 65, 0, 0,
- 66, 0, 0, 67, 64, 68, 48, 49, 0, 95,
- 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
- 165, 62, 63, 16, 0, 17, 0, 0, 0, 0,
- 0, 0, 0, 0, 65, 0, 0, 66, 0, 0,
- 67, 0, 68, 0, 0, 64, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 65, 0, 0, 66, 0,
- 0, 67, 0, 68, 48, 49, 0, 182, 51, 52,
- 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
- 63, 16, 0, 17, 0, 0, 102, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 65, 103, 0, 66,
- 0, 0, 67, 64, 68, 0, 104, 105, 0, 0,
- 0, 0, 106, 107, 108, 109, 110, 111, 112, 113,
- 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
- 124, 125, 126, 127, 128, 0, 0, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 0, 0, 0, 0,
- 0, 0, 0, 0, 65, 0, 0, 66, 0, 0,
- 67, 0, 68
-};
-static const short yycheck[] =
-{
- 28, 91, 108, 108, 42, 29, 23, 3, 109, 232,
- 233, 383, 68, 30, 42, 397, 100, 20, 100, 32,
- 33, 105, 103, 405, 106, 106, 398, 10, 11, 12,
- 13, 14, 15, 16, 17, 258, 32, 40, 41, 42,
- 43, 9, 143, 46, 100, 102, 100, 128, 0, 106,
- 131, 132, 106, 21, 135, 136, 137, 3, 4, 23,
- 141, 7, 90, 10, 11, 12, 13, 14, 15, 16,
- 17, 96, 102, 94, 70, 103, 106, 4, 106, 103,
- 105, 27, 28, 56, 57, 58, 59, 104, 51, 52,
- 102, 37, 38, 105, 48, 49, 50, 94, 126, 127,
- 128, 129, 130, 131, 132, 83, 84, 135, 136, 137,
- 138, 139, 140, 141, 94, 171, 172, 100, 174, 98,
- 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
- 76, 77, 78, 79, 215, 22, 0, 24, 104, 85,
- 106, 87, 88, 89, 90, 94, 104, 175, 106, 27,
- 28, 3, 4, 100, 94, 101, 3, 4, 96, 197,
- 4, 25, 3, 4, 3, 4, 4, 31, 4, 197,
- 3, 4, 96, 24, 4, 213, 40, 41, 42, 43,
- 99, 24, 99, 96, 54, 213, 214, 215, 4, 4,
- 4, 4, 273, 249, 169, 285, 286, 287, 7, 280,
- 7, 4, 7, 106, 179, 295, 296, 297, 298, 184,
- 185, 97, 184, 185, 106, 106, 98, 106, 35, 96,
- 24, 196, 106, 106, 196, 106, 201, 106, 96, 201,
- 106, 96, 24, 96, 209, 210, 211, 209, 210, 211,
- 96, 96, 332, 96, 272, 273, 274, 275, 276, 245,
- 15, 97, 280, 10, 11, 12, 13, 14, 15, 16,
- 17, 106, 15, 98, 106, 21, 106, 21, 96, 359,
- 351, 361, 362, 363, 364, 303, 35, 383, 383, 106,
- 106, 106, 106, 106, 312, 106, 106, 106, 369, 97,
- 96, 266, 398, 398, 266, 270, 106, 97, 270, 327,
- 390, 98, 21, 35, 106, 106, 281, 282, 106, 281,
- 282, 106, 106, 106, 100, 97, 344, 97, 106, 97,
- 97, 97, 97, 351, 21, 97, 100, 355, 21, 64,
- 358, 21, 21, 106, 80, 310, 311, 106, 310, 311,
- 315, 369, 80, 315, 80, 32, 321, 322, 323, 321,
- 322, 323, 80, 20, 23, 100, 44, 169, 303, 3,
- 15, 312, 355, 328, -1, -1, -1, 342, 343, -1,
- 342, 343, -1, -1, 349, -1, -1, 349, -1, -1,
- -1, 356, -1, -1, 356, 5, 6, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 371, -1, -1, 371,
- -1, -1, 22, -1, 24, -1, 26, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
- 395, -1, -1, 395, -1, -1, -1, -1, -1, -1,
- -1, 406, -1, -1, 406, -1, 411, -1, -1, 411,
- 415, 416, -1, 415, 416, -1, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- -1, -1, -1, -1, -1, 85, -1, 87, 88, 89,
- 90, -1, -1, -1, -1, -1, -1, -1, 98, -1,
- -1, 101, -1, 103, -1, 5, 6, 107, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, -1, 24, -1, 5, 6, -1, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, 44, 24, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 20, -1, 22,
- -1, 24, -1, -1, -1, 44, -1, -1, 31, 32,
- 33, -1, 3, 4, 5, 6, 7, 40, 41, 42,
- 43, -1, -1, 46, 47, -1, -1, -1, -1, -1,
- 53, 22, -1, 24, -1, 95, 27, 28, 98, -1,
- -1, 101, -1, 103, 104, -1, 37, 38, -1, -1,
- -1, -1, -1, -1, -1, -1, 95, -1, -1, 98,
- -1, -1, 101, -1, 103, 104, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, -1,
- -1, -1, -1, -1, 85, -1, 87, 88, 89, 90,
- -1, -1, -1, -1, -1, -1, -1, -1, 5, 6,
- 101, 8, 9, 10, 11, 12, 13, 14, 15, 16,
- 17, 18, 19, 20, 21, 22, -1, 24, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 36,
- -1, -1, -1, -1, -1, 5, 6, 44, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, -1, 24, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 36, -1, -1, -1,
- -1, -1, -1, -1, 44, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 95, -1,
- -1, 98, -1, -1, 101, -1, 103, 5, 6, -1,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, -1, 24, -1, -1, -1,
- -1, -1, -1, -1, -1, 95, -1, -1, 98, -1,
- -1, 101, -1, 103, 5, 6, 44, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, -1, 24, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 36, -1, -1, -1, -1,
- -1, -1, -1, 44, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
- 98, -1, 100, 101, -1, 103, -1, 5, 6, -1,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 22, -1, 24, -1, -1, -1,
- -1, -1, -1, -1, 95, -1, -1, 98, 36, -1,
- 101, -1, 103, -1, 5, 6, 44, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, -1, 24, -1, 5, 6, -1, 8, 9,
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
- 20, 21, 22, 44, 24, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
- 98, -1, -1, 101, 44, 103, 5, 6, -1, 8,
- 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
- 19, 20, 21, 22, -1, 24, -1, -1, -1, -1,
- -1, -1, -1, -1, 95, -1, -1, 98, -1, -1,
- 101, -1, 103, -1, -1, 44, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 95, -1, -1, 98, -1,
- -1, 101, -1, 103, 5, 6, -1, 8, 9, 10,
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
- 21, 22, -1, 24, -1, -1, 34, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 95, 45, -1, 98,
- -1, -1, 101, 44, 103, -1, 54, 55, -1, -1,
- -1, -1, 60, 61, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
- 78, 79, 80, 81, 82, -1, -1, 85, 86, 87,
- 88, 89, 90, 91, 92, 93, -1, -1, -1, -1,
- -1, -1, -1, -1, 95, -1, -1, 98, -1, -1,
- 101, -1, 103
+static const short yytable[] = { 69,
+ 207, 183, 208, 19, 84, 28, 74, 94, 210, 90,
+ -113, 28, 31, 69, 199, 200, 201, 202, 203, 204,
+ 205, 206, 353, 199, 200, 201, 202, 203, 204, 205,
+ 206, 19, 324, 454, 326, 3, 197, 462, -53, 94,
+ 238, 4, 39, 331, 239, 98, 98, 468, 198, 43,
+ 464, 5, 6, 7, 8, 14, 234, 15, 373, 339,
+ 167, 182, 374, 186, 333, 187, 91, 98, 96, 45,
+ 374, 46, 47, 376, 92, 49, 50, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 14, 381,
+ 15, 374, 98, 407, 384, 75, 22, 23, 24, 25,
+ 375, 32, 374, 211, 212, 79, 214, 215, 85, 86,
+ 193, 62, 40, 196, 221, 82, 35, 36, 37, 424,
+ -54, 453, 229, 230, 231, 232, 263, 265, 80, 266,
+ 463, 161, 162, 5, 6, 7, 8, 235, 236, 41,
+ 81, 213, 240, 241, 217, 218, 219, -30, -30, 220,
+ 89, 222, 223, 224, 225, 226, 227, 228, -29, -29,
+ 97, 268, 233, 199, 200, 201, 202, 203, 204, 205,
+ 206, 160, -28, -28, 289, -27, -27, 164, 63, 242,
+ 243, 64, 165, 69, 65, 93, 184, 185, -40, 194,
+ 14, 188, 15, 237, -34, -33, -32, -31, 312, 4,
+ -40, -40, -37, -38, 245, 246, 332, 69, 313, -40,
+ -40, -40, -40, 273, 266, -40, 16, 272, 290, 291,
+ 293, 294, 17, 295, 296, 297, 182, 182, 298, 182,
+ 370, 371, 372, 300, 301, 302, 316, 303, 304, 305,
+ 377, 378, 379, 380, 306, 314, 315, 311, 317, 318,
+ 319, 325, 327, 328, 182, 329, 330, 343, 344, 336,
+ 385, 386, 337, 479, 408, 348, 430, 452, 349, 334,
+ 340, 352, 341, 354, 441, 345, 465, 361, 359, 360,
+ 362, 363, 364, 368, 369, 392, 394, 410, 387, 456,
+ 182, 182, 182, 404, 438, 395, 439, 470, 397, 398,
+ 182, 182, 182, 182, 399, 350, 351, 409, 472, 268,
+ 355, 356, 357, 358, 474, 411, 457, 445, 412, 446,
+ 365, 475, 432, 413, 433, 434, 435, 436, 414, 419,
+ 421, 437, 207, 448, 208, 443, 444, 447, 449, 450,
+ 451, 405, 286, 287, 466, 480, 149, 182, 150, 207,
+ 467, 208, 471, 77, 288, 151, 153, 42, 190, 292,
+ 460, 88, 383, 261, 44, 20, 299, 34, 391, 428,
+ 0, 0, 0, 0, 307, 308, 309, 310, 406, 0,
+ 0, 431, 182, 262, 182, 182, 182, 182, 0, 0,
+ 0, 0, 0, 284, 0, 0, 0, 0, 284, 284,
+ 0, 0, 0, 422, 423, 0, 425, 426, 427, 0,
+ 284, 0, 0, 0, 0, 284, 0, 0, 0, 0,
+ 182, 0, 284, 0, 0, 0, 0, 0, 440, 0,
+ 284, 284, 284, 284, 342, 0, 0, 0, 347, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 458, 459, 0, 0, 0, 366, 367, 264,
+ 46, 47, 0, 92, 49, 50, 51, 52, 53, 54,
+ 55, 56, 57, 58, 59, 60, 61, 14, 0, 15,
+ 0, 0, 0, 0, 0, 0, 0, 0, 388, 389,
+ 284, 0, 0, 393, 284, 0, 0, 0, 0, 396,
+ 62, 0, 0, 0, 0, 0, 400, 401, 402, 403,
+ 0, 0, 0, 284, 284, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 415, 416, 0, 0, 0, 0, 0, 420, 0, 0,
+ 0, 0, 0, 0, 284, 284, 0, 0, 0, 284,
+ 429, 0, 0, 0, 0, 284, 0, 0, 0, 0,
+ 0, 0, 284, 284, 284, 284, 442, 63, 0, 0,
+ 64, 0, 0, 65, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 284, 284, 0, 0,
+ 0, 0, 0, 284, 0, 0, 0, 461, 0, 0,
+ 0, 0, 0, 0, 0, 0, 284, 0, 0, 0,
+ 469, 0, 0, 0, 0, 473, 0, 0, 0, 476,
+ 477, 0, 284, 274, 275, 46, 47, 276, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 14, 0, 15, 0, 0, 277, 278, 0,
+ 0, 0, 0, 284, 0, 0, 0, 0, 279, 280,
+ 0, 0, 0, 0, 0, 0, 284, 0, 0, 0,
+ 0, 284, 0, 0, 0, 284, 284, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+ 121, 122, 123, 274, 275, 0, 0, 276, 0, 0,
+ 0, 0, 0, 0, 250, 0, 251, 252, 0, 138,
+ 139, 0, 0, 0, 0, 0, 0, 277, 278, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 279, 280,
+ 0, 0, 0, 281, 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, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+ 121, 122, 123, 0, 46, 47, 0, 0, 0, 0,
+ 0, 0, 0, 0, 250, 0, 251, 252, 0, 138,
+ 139, 14, 0, 15, 0, 247, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 248, 249, 0,
+ 0, 0, 0, 281, 46, 47, 0, 92, 168, 169,
+ 170, 171, 172, 173, 174, 175, 176, 177, 178, 60,
+ 61, 14, 0, 15, 0, 0, 0, 0, 110, 111,
+ 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
+ 122, 123, 0, 0, 62, 0, 0, 0, 0, 0,
+ 0, 0, 0, 250, 0, 251, 252, 0, 138, 139,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 253, 0, 0, 254, 0, 0,
+ 0, 255, 256, 46, 47, 0, 92, 49, 50, 51,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 14, 0, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 63, 0, 0, 64, 189, 0, 65, 323, 0,
+ 0, 46, 47, 62, 92, 49, 50, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 14, 0,
+ 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 267, 0, 0, 0, 0, 0, 46,
+ 47, 62, 92, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 60, 61, 14, 0, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 63, 0, 0, 64, 0, 0, 65, 46, 47, 62,
+ 92, 49, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 14, 0, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 63, 338,
+ 0, 64, 0, 0, 65, 46, 47, 62, 92, 49,
+ 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 14, 0, 15, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 63, 382, 0, 64,
+ 0, 320, 65, 46, 47, 62, 48, 49, 50, 51,
+ 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
+ 14, 0, 15, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 63, 0, 0, 64, 0, 0,
+ 65, 46, 47, 62, 92, 49, 50, 51, 52, 53,
+ 54, 55, 56, 57, 58, 59, 60, 61, 14, 0,
+ 15, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 63, 0, 0, 64, 0, 0, 65, 46,
+ 47, 62, 92, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 60, 61, 14, 0, 15, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 63, 0, 0, 64, 0, 0, 65, 46, 47, 62,
+ 195, 49, 50, 51, 52, 53, 54, 55, 56, 57,
+ 58, 59, 60, 61, 14, 0, 15, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 63, 0,
+ 0, 64, 0, 0, 65, 0, 0, 62, 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, 0, 63, 0, 0, 64,
+ 0, 0, 65, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 99, 100, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 101, 0, 0, 0,
+ 0, 0, 0, 0, 63, 102, 103, 64, 0, 0,
+ 65, 0, 0, 104, 105, 106, 107, 108, 109, 110,
+ 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
+ 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
+ 131, 132, 0, 0, 133, 134, 135, 136, 137, 138,
+ 139, 140, 141, -214, 142, 143, 144, 145, 146, 147,
+ 148
};
-/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
- symbol of state STATE-NUM. */
-static const unsigned char yystos[] =
-{
- 0, 133, 134, 135, 0, 25, 31, 40, 41, 42,
- 43, 120, 147, 149, 150, 156, 22, 24, 47, 53,
- 119, 140, 150, 151, 56, 57, 58, 59, 121, 145,
- 23, 157, 158, 30, 104, 148, 157, 48, 49, 50,
- 137, 94, 20, 46, 120, 94, 145, 4, 5, 6,
- 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
- 18, 19, 20, 21, 44, 95, 98, 101, 103, 109,
- 122, 123, 124, 125, 126, 140, 153, 29, 103, 146,
- 119, 161, 94, 94, 94, 98, 138, 122, 32, 33,
- 132, 132, 4, 4, 4, 8, 104, 126, 127, 140,
- 96, 105, 34, 45, 54, 55, 60, 61, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, 75, 76, 77, 78, 79, 80, 81, 82, 85,
- 86, 87, 88, 89, 90, 91, 92, 93, 111, 112,
- 113, 114, 159, 165, 166, 168, 169, 24, 51, 52,
- 136, 4, 24, 139, 124, 9, 10, 11, 12, 13,
- 14, 15, 16, 17, 18, 19, 115, 116, 118, 124,
- 129, 99, 99, 104, 106, 96, 36, 127, 128, 124,
- 155, 54, 8, 155, 9, 21, 10, 11, 12, 13,
- 14, 15, 16, 17, 115, 116, 117, 121, 124, 124,
- 155, 124, 124, 162, 155, 155, 155, 155, 155, 124,
- 124, 124, 155, 121, 83, 84, 100, 106, 27, 28,
- 3, 4, 110, 4, 7, 26, 37, 38, 85, 87,
- 88, 98, 101, 103, 107, 111, 112, 113, 114, 130,
- 153, 126, 126, 126, 36, 124, 142, 143, 144, 106,
- 97, 3, 4, 7, 27, 28, 37, 38, 101, 130,
- 152, 153, 154, 154, 154, 154, 122, 106, 106, 154,
- 98, 106, 35, 106, 106, 106, 106, 154, 154, 154,
- 106, 122, 124, 155, 24, 96, 96, 96, 100, 129,
- 131, 131, 104, 131, 24, 96, 96, 96, 96, 100,
- 102, 140, 141, 106, 97, 36, 131, 106, 106, 154,
- 15, 15, 106, 167, 154, 98, 124, 155, 124, 124,
- 124, 106, 106, 106, 155, 154, 154, 106, 129, 129,
- 129, 100, 106, 102, 104, 129, 129, 129, 129, 36,
- 142, 102, 21, 21, 96, 154, 154, 155, 163, 106,
- 154, 106, 154, 154, 154, 96, 124, 167, 35, 106,
- 129, 106, 106, 106, 106, 154, 154, 163, 164, 106,
- 154, 106, 155, 164, 154, 97, 124, 129, 129, 129,
- 129, 129, 106, 98, 97, 155, 100, 154, 97, 97,
- 106, 97, 97, 97, 97, 21, 100, 117, 160, 35,
- 100, 129, 154, 152, 100, 117, 21, 97, 106, 152,
- 154, 21, 106, 64, 154, 21, 21, 154, 154
+static const short yycheck[] = { 26,
+ 106, 88, 106, 2, 40, 23, 29, 65, 107, 4,
+ 0, 23, 30, 40, 10, 11, 12, 13, 14, 15,
+ 16, 17, 299, 10, 11, 12, 13, 14, 15, 16,
+ 17, 30, 254, 438, 256, 25, 9, 454, 113, 97,
+ 117, 31, 111, 117, 121, 120, 120, 464, 21, 111,
+ 455, 41, 42, 43, 44, 22, 155, 24, 117, 281,
+ 87, 88, 121, 119, 117, 121, 61, 120, 67, 4,
+ 121, 5, 6, 124, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, 117,
+ 24, 121, 120, 370, 124, 118, 57, 58, 59, 60,
+ 119, 119, 121, 130, 131, 111, 133, 134, 32, 33,
+ 101, 45, 20, 104, 141, 115, 49, 50, 51, 396,
+ 113, 117, 149, 150, 151, 152, 184, 185, 111, 187,
+ 117, 52, 53, 41, 42, 43, 44, 92, 93, 47,
+ 111, 132, 27, 28, 135, 136, 137, 3, 4, 140,
+ 4, 142, 143, 144, 145, 146, 147, 148, 3, 4,
+ 113, 188, 153, 10, 11, 12, 13, 14, 15, 16,
+ 17, 24, 3, 4, 210, 3, 4, 4, 112, 3,
+ 4, 115, 24, 210, 118, 119, 116, 62, 20, 55,
+ 22, 113, 24, 103, 4, 4, 4, 4, 234, 31,
+ 32, 33, 7, 7, 4, 7, 264, 234, 235, 41,
+ 42, 43, 44, 114, 272, 47, 48, 121, 121, 121,
+ 115, 121, 54, 36, 121, 121, 253, 254, 121, 256,
+ 317, 318, 319, 121, 121, 121, 24, 121, 121, 121,
+ 327, 328, 329, 330, 121, 236, 237, 121, 113, 113,
+ 113, 24, 113, 113, 281, 113, 113, 15, 15, 121,
+ 21, 21, 114, 0, 36, 115, 114, 21, 295, 268,
+ 121, 298, 121, 300, 117, 121, 21, 121, 305, 306,
+ 121, 121, 121, 121, 121, 121, 121, 374, 113, 36,
+ 317, 318, 319, 113, 115, 121, 114, 21, 121, 121,
+ 327, 328, 329, 330, 121, 296, 297, 121, 67, 336,
+ 301, 302, 303, 304, 21, 121, 117, 114, 121, 114,
+ 311, 21, 409, 121, 411, 412, 413, 414, 121, 121,
+ 121, 121, 438, 114, 438, 121, 121, 121, 114, 114,
+ 114, 368, 197, 198, 114, 0, 77, 374, 77, 455,
+ 121, 455, 121, 30, 209, 77, 77, 18, 97, 214,
+ 447, 42, 336, 182, 21, 2, 221, 13, 345, 404,
+ -1, -1, -1, -1, 229, 230, 231, 232, 369, -1,
+ -1, 408, 409, 182, 411, 412, 413, 414, -1, -1,
+ -1, -1, -1, 192, -1, -1, -1, -1, 197, 198,
+ -1, -1, -1, 394, 395, -1, 397, 398, 399, -1,
+ 209, -1, -1, -1, -1, 214, -1, -1, -1, -1,
+ 447, -1, 221, -1, -1, -1, -1, -1, 419, -1,
+ 229, 230, 231, 232, 289, -1, -1, -1, 293, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 443, 444, -1, -1, -1, 312, 313, 4,
+ 5, 6, -1, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, -1, 24,
+ -1, -1, -1, -1, -1, -1, -1, -1, 343, 344,
+ 289, -1, -1, 348, 293, -1, -1, -1, -1, 354,
+ 45, -1, -1, -1, -1, -1, 361, 362, 363, 364,
+ -1, -1, -1, 312, 313, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 385, 386, -1, -1, -1, -1, -1, 392, -1, -1,
+ -1, -1, -1, -1, 343, 344, -1, -1, -1, 348,
+ 405, -1, -1, -1, -1, 354, -1, -1, -1, -1,
+ -1, -1, 361, 362, 363, 364, 421, 112, -1, -1,
+ 115, -1, -1, 118, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 385, 386, -1, -1,
+ -1, -1, -1, 392, -1, -1, -1, 452, -1, -1,
+ -1, -1, -1, -1, -1, -1, 405, -1, -1, -1,
+ 465, -1, -1, -1, -1, 470, -1, -1, -1, 474,
+ 475, -1, 421, 3, 4, 5, 6, 7, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 22, -1, 24, -1, -1, 27, 28, -1,
+ -1, -1, -1, 452, -1, -1, -1, -1, 38, 39,
+ -1, -1, -1, -1, -1, -1, 465, -1, -1, -1,
+ -1, 470, -1, -1, -1, 474, 475, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 3, 4, -1, -1, 7, -1, -1,
+ -1, -1, -1, -1, 94, -1, 96, 97, -1, 99,
+ 100, -1, -1, -1, -1, -1, -1, 27, 28, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 38, 39,
+ -1, -1, -1, 123, -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, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, -1, 5, 6, -1, -1, -1, -1,
+ -1, -1, -1, -1, 94, -1, 96, 97, -1, 99,
+ 100, 22, -1, 24, -1, 26, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 38, 39, -1,
+ -1, -1, -1, 123, 5, 6, -1, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
+ 21, 22, -1, 24, -1, -1, -1, -1, 69, 70,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, -1, -1, 45, -1, -1, -1, -1, -1,
+ -1, -1, -1, 94, -1, 96, 97, -1, 99, 100,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 115, -1, -1, 118, -1, -1,
+ -1, 122, 123, 5, 6, -1, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, -1, 24, -1, -1, -1, -1, -1, -1, -1,
+ -1, 112, -1, -1, 115, 37, -1, 118, 119, -1,
+ -1, 5, 6, 45, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, -1,
+ 24, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 37, -1, -1, -1, -1, -1, 5,
+ 6, 45, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, -1, 24, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 112, -1, -1, 115, -1, -1, 118, 5, 6, 45,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, -1, 24, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 112, 37,
+ -1, 115, -1, -1, 118, 5, 6, 45, 8, 9,
+ 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
+ 20, 21, 22, -1, 24, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 112, 37, -1, 115,
+ -1, 117, 118, 5, 6, 45, 8, 9, 10, 11,
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
+ 22, -1, 24, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 112, -1, -1, 115, -1, -1,
+ 118, 5, 6, 45, 8, 9, 10, 11, 12, 13,
+ 14, 15, 16, 17, 18, 19, 20, 21, 22, -1,
+ 24, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 112, -1, -1, 115, -1, -1, 118, 5,
+ 6, 45, 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 22, -1, 24, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 112, -1, -1, 115, -1, -1, 118, 5, 6, 45,
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
+ 18, 19, 20, 21, 22, -1, 24, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, 112, -1,
+ -1, 115, -1, -1, 118, -1, -1, 45, -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, 112, -1, -1, 115,
+ -1, -1, 118, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 34, 35, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 46, -1, -1, -1,
+ -1, -1, -1, -1, 112, 55, 56, 115, -1, -1,
+ 118, -1, -1, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, -1, -1, 94, 95, 96, 97, 98, 99,
+ 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
+ 110
};
+/* -*-C-*- Note some compilers choke on comments on `#line' lines. */
+#line 3 "/usr/share/bison.simple"
+/* This file comes from bison-1.28. */
-#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
-# define YYSIZE_T __SIZE_TYPE__
-#endif
-#if ! defined (YYSIZE_T) && defined (size_t)
-# define YYSIZE_T size_t
+/* Skeleton output parser for bison,
+ Copyright (C) 1984, 1989, 1990 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA. */
+
+/* As a special exception, when this file is copied by Bison into a
+ Bison output file, you may use that output file without restriction.
+ This special exception was added by the Free Software Foundation
+ in version 1.24 of Bison. */
+
+/* This is the parser code that is written into each bison parser
+ when the %semantic_parser declaration is not specified in the grammar.
+ It was written by Richard Stallman by simplifying the hairy parser
+ used when %semantic_parser is specified. */
+
+#ifndef YYSTACK_USE_ALLOCA
+#ifdef alloca
+#define YYSTACK_USE_ALLOCA
+#else /* alloca not defined */
+#ifdef __GNUC__
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#else /* not GNU C. */
+#if (!defined (__STDC__) && defined (sparc)) || defined (__sparc__) || defined (__sparc) || defined (__sgi) || (defined (__sun) && defined (__i386))
+#define YYSTACK_USE_ALLOCA
+#include <alloca.h>
+#else /* not sparc */
+/* We think this test detects Watcom and Microsoft C. */
+/* This used to test MSDOS, but that is a bad idea
+ since that symbol is in the user namespace. */
+#if (defined (_MSDOS) || defined (_MSDOS_)) && !defined (__TURBOC__)
+#if 0 /* No need for malloc.h, which pollutes the namespace;
+ instead, just don't use alloca. */
+#include <malloc.h>
#endif
-#if ! defined (YYSIZE_T)
-# if defined (__STDC__) || defined (__cplusplus)
-# include <stddef.h> /* INFRINGES ON USER NAME SPACE */
-# define YYSIZE_T size_t
-# endif
+#else /* not MSDOS, or __TURBOC__ */
+#if defined(_AIX)
+/* I don't know what this was needed for, but it pollutes the namespace.
+ So I turned it off. rms, 2 May 1997. */
+/* #include <malloc.h> */
+ #pragma alloca
+#define YYSTACK_USE_ALLOCA
+#else /* not MSDOS, or __TURBOC__, or _AIX */
+#if 0
+#ifdef __hpux /* haible at ilog.fr says this works for HPUX 9.05 and up,
+ and on HPUX 10. Eventually we can turn this on. */
+#define YYSTACK_USE_ALLOCA
+#define alloca __builtin_alloca
+#endif /* __hpux */
#endif
-#if ! defined (YYSIZE_T)
-# define YYSIZE_T unsigned int
+#endif /* not _AIX */
+#endif /* not MSDOS, or __TURBOC__ */
+#endif /* not sparc */
+#endif /* not GNU C */
+#endif /* alloca not defined */
+#endif /* YYSTACK_USE_ALLOCA not defined */
+
+#ifdef YYSTACK_USE_ALLOCA
+#define YYSTACK_ALLOC alloca
+#else
+#define YYSTACK_ALLOC malloc
#endif
+/* Note: there must be only one dollar sign in this file.
+ It is replaced by the list of actions, each action
+ as one case of the switch. */
+
#define yyerrok (yyerrstatus = 0)
#define yyclearin (yychar = YYEMPTY)
-#define YYEMPTY (-2)
+#define YYEMPTY -2
#define YYEOF 0
-
#define YYACCEPT goto yyacceptlab
-#define YYABORT goto yyabortlab
-#define YYERROR goto yyerrorlab
-
-
-/* Like YYERROR except do call yyerror. This remains here temporarily
- to ease the transition to the new meaning of YYERROR, for GCC.
+#define YYABORT goto yyabortlab
+#define YYERROR goto yyerrlab1
+/* Like YYERROR except do call yyerror.
+ This remains here temporarily to ease the
+ transition to the new meaning of YYERROR, for GCC.
Once GCC version 2 has supplanted version 1, this can go. */
-
#define YYFAIL goto yyerrlab
-
#define YYRECOVERING() (!!yyerrstatus)
-
-#define YYBACKUP(Token, Value) \
+#define YYBACKUP(token, value) \
do \
if (yychar == YYEMPTY && yylen == 1) \
- { \
- yychar = (Token); \
- yylval = (Value); \
- yytoken = YYTRANSLATE (yychar); \
+ { yychar = (token), yylval = (value); \
+ yychar1 = YYTRANSLATE (yychar); \
YYPOPSTACK; \
goto yybackup; \
} \
else \
- { \
- yyerror ("syntax error: cannot back up");\
- YYERROR; \
- } \
+ { yyerror ("syntax error: cannot back up"); YYERROR; } \
while (0)
#define YYTERROR 1
#define YYERRCODE 256
-/* YYLLOC_DEFAULT -- Compute the default location (before the actions
- are run). */
-
-#ifndef YYLLOC_DEFAULT
-# define YYLLOC_DEFAULT(Current, Rhs, N) \
- ((Current).first_line = (Rhs)[1].first_line, \
- (Current).first_column = (Rhs)[1].first_column, \
- (Current).last_line = (Rhs)[N].last_line, \
- (Current).last_column = (Rhs)[N].last_column)
+#ifndef YYPURE
+#define YYLEX yylex()
#endif
-/* YYLEX -- calling `yylex' with the right arguments. */
-
+#ifdef YYPURE
+#ifdef YYLSP_NEEDED
#ifdef YYLEX_PARAM
-# define YYLEX yylex (YYLEX_PARAM)
+#define YYLEX yylex(&yylval, &yylloc, YYLEX_PARAM)
#else
-# define YYLEX yylex ()
+#define YYLEX yylex(&yylval, &yylloc)
#endif
-
-/* Enable debugging if requested. */
-#if YYDEBUG
-
-# ifndef YYFPRINTF
-# include <stdio.h> /* INFRINGES ON USER NAME SPACE */
-# define YYFPRINTF fprintf
-# endif
-
-# define YYDPRINTF(Args) \
-do { \
- if (yydebug) \
- YYFPRINTF Args; \
-} while (0)
-
-# define YYDSYMPRINT(Args) \
-do { \
- if (yydebug) \
- yysymprint Args; \
-} while (0)
-
-# define YYDSYMPRINTF(Title, Token, Value, Location) \
-do { \
- if (yydebug) \
- { \
- YYFPRINTF (stderr, "%s ", Title); \
- yysymprint (stderr, \
- Token, Value); \
- YYFPRINTF (stderr, "\n"); \
- } \
-} while (0)
-
-/*------------------------------------------------------------------.
-| yy_stack_print -- Print the state stack from its BOTTOM up to its |
-| TOP (included). |
-`------------------------------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yy_stack_print (short *bottom, short *top)
+#else /* not YYLSP_NEEDED */
+#ifdef YYLEX_PARAM
+#define YYLEX yylex(&yylval, YYLEX_PARAM)
#else
-static void
-yy_stack_print (bottom, top)
- short *bottom;
- short *top;
+#define YYLEX yylex(&yylval)
+#endif
+#endif /* not YYLSP_NEEDED */
#endif
-{
- YYFPRINTF (stderr, "Stack now");
- for (/* Nothing. */; bottom <= top; ++bottom)
- YYFPRINTF (stderr, " %d", *bottom);
- YYFPRINTF (stderr, "\n");
-}
-# define YY_STACK_PRINT(Bottom, Top) \
-do { \
- if (yydebug) \
- yy_stack_print ((Bottom), (Top)); \
-} while (0)
+/* If nonreentrant, generate the variables here */
+#ifndef YYPURE
-/*------------------------------------------------.
-| Report that the YYRULE is going to be reduced. |
-`------------------------------------------------*/
+int yychar; /* the lookahead symbol */
+YYSTYPE yylval; /* the semantic value of the */
+ /* lookahead symbol */
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yy_reduce_print (int yyrule)
-#else
-static void
-yy_reduce_print (yyrule)
- int yyrule;
+#ifdef YYLSP_NEEDED
+YYLTYPE yylloc; /* location data for the lookahead */
+ /* symbol */
#endif
-{
- int yyi;
- unsigned int yylno = yyrline[yyrule];
- YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
- yyrule - 1, yylno);
- /* Print the symbols being reduced, and their result. */
- for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
- YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
- YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]);
-}
-# define YY_REDUCE_PRINT(Rule) \
-do { \
- if (yydebug) \
- yy_reduce_print (Rule); \
-} while (0)
-
-/* Nonzero means print parse trace. It is left uninitialized so that
- multiple parsers can coexist. */
-int yydebug;
-#else /* !YYDEBUG */
-# define YYDPRINTF(Args)
-# define YYDSYMPRINT(Args)
-# define YYDSYMPRINTF(Title, Token, Value, Location)
-# define YY_STACK_PRINT(Bottom, Top)
-# define YY_REDUCE_PRINT(Rule)
-#endif /* !YYDEBUG */
+int yynerrs; /* number of parse errors so far */
+#endif /* not YYPURE */
+
+#if YYDEBUG != 0
+int yydebug; /* nonzero means print parse trace */
+/* Since this is uninitialized, it does not stop multiple parsers
+ from coexisting. */
+#endif
+/* YYINITDEPTH indicates the initial size of the parser's stacks */
-/* YYINITDEPTH -- initial size of the parser's stacks. */
#ifndef YYINITDEPTH
-# define YYINITDEPTH 200
+#define YYINITDEPTH 200
#endif
-/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
- if the built-in stack extension method is used).
-
- Do not make this value too large; the results are undefined if
- SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
- evaluated with infinite-precision integer arithmetic. */
+/* YYMAXDEPTH is the maximum size the stacks can grow to
+ (effective only if the built-in stack extension method is used). */
-#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
-# undef YYMAXDEPTH
+#if YYMAXDEPTH == 0
+#undef YYMAXDEPTH
#endif
#ifndef YYMAXDEPTH
-# define YYMAXDEPTH 10000
+#define YYMAXDEPTH 10000
#endif
-
+/* Define __yy_memcpy. Note that the size argument
+ should be passed with type unsigned int, because that is what the non-GCC
+ definitions require. With GCC, __builtin_memcpy takes an arg
+ of type size_t, but it can handle unsigned int. */
+
+#if __GNUC__ > 1 /* GNU C and GNU C++ define this. */
+#define __yy_memcpy(TO,FROM,COUNT) __builtin_memcpy(TO,FROM,COUNT)
+#else /* not GNU C or C++ */
+#ifndef __cplusplus
-#if YYERROR_VERBOSE
-
-# ifndef yystrlen
-# if defined (__GLIBC__) && defined (_STRING_H)
-# define yystrlen strlen
-# else
-/* Return the length of YYSTR. */
-static YYSIZE_T
-# if defined (__STDC__) || defined (__cplusplus)
-yystrlen (const char *yystr)
-# else
-yystrlen (yystr)
- const char *yystr;
-# endif
-{
- register const char *yys = yystr;
-
- while (*yys++ != '\0')
- continue;
-
- return yys - yystr - 1;
-}
-# endif
-# endif
-
-# ifndef yystpcpy
-# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE)
-# define yystpcpy stpcpy
-# else
-/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
- YYDEST. */
-static char *
-# if defined (__STDC__) || defined (__cplusplus)
-yystpcpy (char *yydest, const char *yysrc)
-# else
-yystpcpy (yydest, yysrc)
- char *yydest;
- const char *yysrc;
-# endif
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
+static void
+__yy_memcpy (to, from, count)
+ char *to;
+ char *from;
+ unsigned int count;
{
- register char *yyd = yydest;
- register const char *yys = yysrc;
+ register char *f = from;
+ register char *t = to;
+ register int i = count;
- while ((*yyd++ = *yys++) != '\0')
- continue;
-
- return yyd - 1;
+ while (i-- > 0)
+ *t++ = *f++;
}
-# endif
-# endif
-
-#endif /* !YYERROR_VERBOSE */
-
-
-#if YYDEBUG
-/*--------------------------------.
-| Print this symbol on YYOUTPUT. |
-`--------------------------------*/
+#else /* __cplusplus */
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep)
-#else
+/* This is the most reliable way to avoid incompatibilities
+ in available built-in functions on various systems. */
static void
-yysymprint (yyoutput, yytype, yyvaluep)
- FILE *yyoutput;
- int yytype;
- YYSTYPE *yyvaluep;
-#endif
+__yy_memcpy (char *to, char *from, unsigned int count)
{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
-
- if (yytype < YYNTOKENS)
- {
- YYFPRINTF (yyoutput, "token %s (", yytname[yytype]);
-# ifdef YYPRINT
- YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
-# endif
- }
- else
- YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]);
+ register char *t = to;
+ register char *f = from;
+ register int i = count;
- switch (yytype)
- {
- default:
- break;
- }
- YYFPRINTF (yyoutput, ")");
+ while (i-- > 0)
+ *t++ = *f++;
}
-#endif /* ! YYDEBUG */
-/*-----------------------------------------------.
-| Release the memory associated to this symbol. |
-`-----------------------------------------------*/
-
-#if defined (__STDC__) || defined (__cplusplus)
-static void
-yydestruct (int yytype, YYSTYPE *yyvaluep)
-#else
-static void
-yydestruct (yytype, yyvaluep)
- int yytype;
- YYSTYPE *yyvaluep;
#endif
-{
- /* Pacify ``unused variable'' warnings. */
- (void) yyvaluep;
-
- switch (yytype)
- {
-
- default:
- break;
- }
-}
+#endif
+#line 217 "/usr/share/bison.simple"
-/* Prevent warnings from -Wmissing-prototypes. */
+/* The user can define YYPARSE_PARAM as the name of an argument to be passed
+ into yyparse. The argument should have type void *.
+ It should actually point to an object.
+ Grammar actions can access the variable by casting it
+ to the proper pointer type. */
#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM);
-# else
-int yyparse ();
-# endif
-#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void);
-#else
-int yyparse ();
-#endif
-#endif /* ! YYPARSE_PARAM */
-
-
-
-/* The lookahead symbol. */
-int yychar;
-
-/* The semantic value of the lookahead symbol. */
-YYSTYPE yylval;
-
-/* Number of syntax errors so far. */
-int yynerrs;
-
-
-
-/*----------.
-| yyparse. |
-`----------*/
+#ifdef __cplusplus
+#define YYPARSE_PARAM_ARG void *YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL
+#else /* not __cplusplus */
+#define YYPARSE_PARAM_ARG YYPARSE_PARAM
+#define YYPARSE_PARAM_DECL void *YYPARSE_PARAM;
+#endif /* not __cplusplus */
+#else /* not YYPARSE_PARAM */
+#define YYPARSE_PARAM_ARG
+#define YYPARSE_PARAM_DECL
+#endif /* not YYPARSE_PARAM */
+/* Prevent warning if -Wstrict-prototypes. */
+#ifdef __GNUC__
#ifdef YYPARSE_PARAM
-# if defined (__STDC__) || defined (__cplusplus)
-int yyparse (void *YYPARSE_PARAM)
-# else
-int yyparse (YYPARSE_PARAM)
- void *YYPARSE_PARAM;
-# endif
-#else /* ! YYPARSE_PARAM */
-#if defined (__STDC__) || defined (__cplusplus)
-int
-yyparse (void)
+int yyparse (void *);
#else
-int
-yyparse ()
-
+int yyparse (void);
#endif
#endif
+
+int
+yyparse(YYPARSE_PARAM_ARG)
+ YYPARSE_PARAM_DECL
{
-
register int yystate;
register int yyn;
- int yyresult;
- /* Number of tokens to shift before error messages enabled. */
- int yyerrstatus;
- /* Lookahead token as an internal (translated) token number. */
- int yytoken = 0;
-
- /* Three stacks and their tools:
- `yyss': related to states,
- `yyvs': related to semantic values,
- `yyls': related to locations.
-
- Refer to the stacks thru separate pointers, to allow yyoverflow
- to reallocate them elsewhere. */
-
- /* The state stack. */
- short yyssa[YYINITDEPTH];
- short *yyss = yyssa;
register short *yyssp;
-
- /* The semantic value stack. */
- YYSTYPE yyvsa[YYINITDEPTH];
- YYSTYPE *yyvs = yyvsa;
register YYSTYPE *yyvsp;
+ int yyerrstatus; /* number of tokens to shift before error messages enabled */
+ int yychar1 = 0; /* lookahead token as an internal (translated) token number */
+ short yyssa[YYINITDEPTH]; /* the state stack */
+ YYSTYPE yyvsa[YYINITDEPTH]; /* the semantic value stack */
+ short *yyss = yyssa; /* refer to the stacks thru separate pointers */
+ YYSTYPE *yyvs = yyvsa; /* to allow yyoverflow to reallocate them elsewhere */
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylsa[YYINITDEPTH]; /* the location stack */
+ YYLTYPE *yyls = yylsa;
+ YYLTYPE *yylsp;
+
+#define YYPOPSTACK (yyvsp--, yyssp--, yylsp--)
+#else
#define YYPOPSTACK (yyvsp--, yyssp--)
+#endif
- YYSIZE_T yystacksize = YYINITDEPTH;
+ int yystacksize = YYINITDEPTH;
+ int yyfree_stacks = 0;
- /* The variables used to return semantic value and location from the
- action routines. */
- YYSTYPE yyval;
+#ifdef YYPURE
+ int yychar;
+ YYSTYPE yylval;
+ int yynerrs;
+#ifdef YYLSP_NEEDED
+ YYLTYPE yylloc;
+#endif
+#endif
+ YYSTYPE yyval; /* the variable used to return */
+ /* semantic values from the action */
+ /* routines */
- /* When reducing, the number of symbols on the RHS of the reduced
- rule. */
int yylen;
- YYDPRINTF ((stderr, "Starting parse\n"));
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Starting parse\n");
+#endif
yystate = 0;
yyerrstatus = 0;
@@ -2397,96 +1997,110 @@
so that they stay on the same level as the state stack.
The wasted elements are never initialized. */
- yyssp = yyss;
+ yyssp = yyss - 1;
yyvsp = yyvs;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls;
+#endif
- goto yysetstate;
-
-/*------------------------------------------------------------.
-| yynewstate -- Push a new state, which is found in yystate. |
-`------------------------------------------------------------*/
- yynewstate:
- /* In all cases, when you get here, the value and location stacks
- have just been pushed. so pushing a state here evens the stacks.
- */
- yyssp++;
-
- yysetstate:
- *yyssp = yystate;
+/* Push a new state, which is found in yystate . */
+/* In all cases, when you get here, the value and location stacks
+ have just been pushed. so pushing a state here evens the stacks. */
+yynewstate:
+
+ *++yyssp = yystate;
+
+ if (yyssp >= yyss + yystacksize - 1)
+ {
+ /* Give user a chance to reallocate the stack */
+ /* Use copies of these so that the &'s don't force the real ones into memory. */
+ YYSTYPE *yyvs1 = yyvs;
+ short *yyss1 = yyss;
+#ifdef YYLSP_NEEDED
+ YYLTYPE *yyls1 = yyls;
+#endif
- if (yyss + yystacksize - 1 <= yyssp)
- {
/* Get the current used size of the three stacks, in elements. */
- YYSIZE_T yysize = yyssp - yyss + 1;
+ int size = yyssp - yyss + 1;
#ifdef yyoverflow
- {
- /* Give user a chance to reallocate the stack. Use copies of
- these so that the &'s don't force the real ones into
- memory. */
- YYSTYPE *yyvs1 = yyvs;
- short *yyss1 = yyss;
-
-
- /* Each stack pointer address is followed by the size of the
- data in use in that stack, in bytes. This used to be a
- conditional around just the two extra args, but that might
- be undefined if yyoverflow is a macro. */
- yyoverflow ("parser stack overflow",
- &yyss1, yysize * sizeof (*yyssp),
- &yyvs1, yysize * sizeof (*yyvsp),
-
- &yystacksize);
+ /* Each stack pointer address is followed by the size of
+ the data in use in that stack, in bytes. */
+#ifdef YYLSP_NEEDED
+ /* This used to be a conditional around just the two extra args,
+ but that might be undefined if yyoverflow is a macro. */
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yyls1, size * sizeof (*yylsp),
+ &yystacksize);
+#else
+ yyoverflow("parser stack overflow",
+ &yyss1, size * sizeof (*yyssp),
+ &yyvs1, size * sizeof (*yyvsp),
+ &yystacksize);
+#endif
- yyss = yyss1;
- yyvs = yyvs1;
- }
+ yyss = yyss1; yyvs = yyvs1;
+#ifdef YYLSP_NEEDED
+ yyls = yyls1;
+#endif
#else /* no yyoverflow */
-# ifndef YYSTACK_RELOCATE
- goto yyoverflowlab;
-# else
/* Extend the stack our own way. */
- if (YYMAXDEPTH <= yystacksize)
- goto yyoverflowlab;
+ if (yystacksize >= YYMAXDEPTH)
+ {
+ yyerror("parser stack overflow");
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 2;
+ }
yystacksize *= 2;
- if (YYMAXDEPTH < yystacksize)
+ if (yystacksize > YYMAXDEPTH)
yystacksize = YYMAXDEPTH;
-
- {
- short *yyss1 = yyss;
- union yyalloc *yyptr =
- (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
- if (! yyptr)
- goto yyoverflowlab;
- YYSTACK_RELOCATE (yyss);
- YYSTACK_RELOCATE (yyvs);
-
-# undef YYSTACK_RELOCATE
- if (yyss1 != yyssa)
- YYSTACK_FREE (yyss1);
- }
-# endif
+#ifndef YYSTACK_USE_ALLOCA
+ yyfree_stacks = 1;
+#endif
+ yyss = (short *) YYSTACK_ALLOC (yystacksize * sizeof (*yyssp));
+ __yy_memcpy ((char *)yyss, (char *)yyss1,
+ size * (unsigned int) sizeof (*yyssp));
+ yyvs = (YYSTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yyvsp));
+ __yy_memcpy ((char *)yyvs, (char *)yyvs1,
+ size * (unsigned int) sizeof (*yyvsp));
+#ifdef YYLSP_NEEDED
+ yyls = (YYLTYPE *) YYSTACK_ALLOC (yystacksize * sizeof (*yylsp));
+ __yy_memcpy ((char *)yyls, (char *)yyls1,
+ size * (unsigned int) sizeof (*yylsp));
+#endif
#endif /* no yyoverflow */
- yyssp = yyss + yysize - 1;
- yyvsp = yyvs + yysize - 1;
-
+ yyssp = yyss + size - 1;
+ yyvsp = yyvs + size - 1;
+#ifdef YYLSP_NEEDED
+ yylsp = yyls + size - 1;
+#endif
- YYDPRINTF ((stderr, "Stack size increased to %lu\n",
- (unsigned long int) yystacksize));
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Stack size increased to %d\n", yystacksize);
+#endif
- if (yyss + yystacksize - 1 <= yyssp)
+ if (yyssp >= yyss + yystacksize - 1)
YYABORT;
}
- YYDPRINTF ((stderr, "Entering state %d\n", yystate));
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Entering state %d\n", yystate);
+#endif
goto yybackup;
-
-/*-----------.
-| yybackup. |
-`-----------*/
-yybackup:
+ yybackup:
/* Do appropriate processing given the current state. */
/* Read a lookahead token if we need one and don't already have one. */
@@ -2495,236 +2109,251 @@
/* First try to decide what to do without reference to lookahead token. */
yyn = yypact[yystate];
- if (yyn == YYPACT_NINF)
+ if (yyn == YYFLAG)
goto yydefault;
/* Not known => get a lookahead token if don't already have one. */
- /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
+ /* yychar is either YYEMPTY or YYEOF
+ or a valid token in external form. */
+
if (yychar == YYEMPTY)
{
- YYDPRINTF ((stderr, "Reading a token: "));
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Reading a token: ");
+#endif
yychar = YYLEX;
}
- if (yychar <= YYEOF)
+ /* Convert token to internal form (in yychar1) for indexing tables with */
+
+ if (yychar <= 0) /* This means end of input. */
{
- yychar = yytoken = YYEOF;
- YYDPRINTF ((stderr, "Now at end of input.\n"));
+ yychar1 = 0;
+ yychar = YYEOF; /* Don't call YYLEX any more */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Now at end of input.\n");
+#endif
}
else
{
- yytoken = YYTRANSLATE (yychar);
- YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc);
+ yychar1 = YYTRANSLATE(yychar);
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ fprintf (stderr, "Next token is %d (%s", yychar, yytname[yychar1]);
+ /* Give the individual parser a way to print the precise meaning
+ of a token, for further debugging info. */
+#ifdef YYPRINT
+ YYPRINT (stderr, yychar, yylval);
+#endif
+ fprintf (stderr, ")\n");
+ }
+#endif
}
- /* If the proper action on seeing token YYTOKEN is to reduce or to
- detect an error, take that action. */
- yyn += yytoken;
- if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
+ yyn += yychar1;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != yychar1)
goto yydefault;
+
yyn = yytable[yyn];
- if (yyn <= 0)
+
+ /* yyn is what to do for this token type in this state.
+ Negative => reduce, -yyn is rule number.
+ Positive => shift, yyn is new state.
+ New state is final state => don't bother to shift,
+ just return success.
+ 0, or most negative number => error. */
+
+ if (yyn < 0)
{
- if (yyn == 0 || yyn == YYTABLE_NINF)
+ if (yyn == YYFLAG)
goto yyerrlab;
yyn = -yyn;
goto yyreduce;
}
+ else if (yyn == 0)
+ goto yyerrlab;
if (yyn == YYFINAL)
YYACCEPT;
/* Shift the lookahead token. */
- YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken]));
+
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting token %d (%s), ", yychar, yytname[yychar1]);
+#endif
/* Discard the token being shifted unless it is eof. */
if (yychar != YYEOF)
yychar = YYEMPTY;
*++yyvsp = yylval;
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
-
- /* Count tokens shifted since error; after three, turn off error
- status. */
- if (yyerrstatus)
- yyerrstatus--;
+ /* count tokens shifted since error; after three, turn off error status. */
+ if (yyerrstatus) yyerrstatus--;
yystate = yyn;
goto yynewstate;
-
-/*-----------------------------------------------------------.
-| yydefault -- do the default action for the current state. |
-`-----------------------------------------------------------*/
+/* Do the default action for the current state. */
yydefault:
+
yyn = yydefact[yystate];
if (yyn == 0)
goto yyerrlab;
- goto yyreduce;
-
-/*-----------------------------.
-| yyreduce -- Do a reduction. |
-`-----------------------------*/
+/* Do a reduction. yyn is the number of a rule to reduce with. */
yyreduce:
- /* yyn is the number of a rule to reduce with. */
yylen = yyr2[yyn];
+ if (yylen > 0)
+ yyval = yyvsp[1-yylen]; /* implement default value of the action */
+
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ int i;
+
+ fprintf (stderr, "Reducing via rule %d (line %d), ",
+ yyn, yyrline[yyn]);
- /* If YYLEN is nonzero, implement the default value of the action:
- `$$ = $1'.
+ /* Print the symbols being reduced, and their result. */
+ for (i = yyprhs[yyn]; yyrhs[i] > 0; i++)
+ fprintf (stderr, "%s ", yytname[yyrhs[i]]);
+ fprintf (stderr, " -> %s\n", yytname[yyr1[yyn]]);
+ }
+#endif
- Otherwise, the following line sets YYVAL to garbage.
- This behavior is undocumented and Bison
- users should not rely upon it. Assigning to YYVAL
- unconditionally makes the parser a bit smaller, and it avoids a
- GCC warning that YYVAL may be used uninitialized. */
- yyval = yyvsp[1-yylen];
+ switch (yyn) {
- YY_REDUCE_PRINT (yyn);
- switch (yyn)
- {
- case 3:
-#line 983 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+case 2:
+#line 987 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (yyvsp[0].UIntVal > (uint32_t)INT32_MAX) // Outside of my range!
ThrowException("Value too large for type!");
yyval.SIntVal = (int32_t)yyvsp[0].UIntVal;
-;}
- break;
-
- case 5:
-#line 991 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+;
+ break;}
+case 4:
+#line 995 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (yyvsp[0].UInt64Val > (uint64_t)INT64_MAX) // Outside of my range!
ThrowException("Value too large for type!");
yyval.SInt64Val = (int64_t)yyvsp[0].UInt64Val;
-;}
- break;
-
- case 34:
-#line 1014 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+;
+ break;}
+case 39:
+#line 1019 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.StrVal = yyvsp[-1].StrVal;
- ;}
- break;
-
- case 35:
-#line 1017 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 40:
+#line 1022 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.StrVal = 0;
- ;}
- break;
-
- case 36:
-#line 1021 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.Linkage = GlobalValue::InternalLinkage; ;}
- break;
-
- case 37:
-#line 1022 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.Linkage = GlobalValue::LinkOnceLinkage; ;}
- break;
-
- case 38:
-#line 1023 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.Linkage = GlobalValue::WeakLinkage; ;}
- break;
-
- case 39:
-#line 1024 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.Linkage = GlobalValue::AppendingLinkage; ;}
- break;
-
- case 40:
-#line 1025 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.Linkage = GlobalValue::ExternalLinkage; ;}
- break;
-
- case 41:
-#line 1027 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.UIntVal = CallingConv::C; ;}
- break;
-
- case 42:
-#line 1028 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.UIntVal = CallingConv::C; ;}
- break;
-
- case 43:
-#line 1029 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.UIntVal = CallingConv::Fast; ;}
- break;
-
- case 44:
-#line 1030 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.UIntVal = CallingConv::Cold; ;}
- break;
-
- case 45:
-#line 1031 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 41:
+#line 1026 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.Linkage = GlobalValue::InternalLinkage; ;
+ break;}
+case 42:
+#line 1027 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.Linkage = GlobalValue::LinkOnceLinkage; ;
+ break;}
+case 43:
+#line 1028 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.Linkage = GlobalValue::WeakLinkage; ;
+ break;}
+case 44:
+#line 1029 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.Linkage = GlobalValue::AppendingLinkage; ;
+ break;}
+case 45:
+#line 1030 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.Linkage = GlobalValue::ExternalLinkage; ;
+ break;}
+case 46:
+#line 1032 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.UIntVal = CallingConv::C; ;
+ break;}
+case 47:
+#line 1033 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.UIntVal = CallingConv::C; ;
+ break;}
+case 48:
+#line 1034 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.UIntVal = CallingConv::Fast; ;
+ break;}
+case 49:
+#line 1035 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.UIntVal = CallingConv::Cold; ;
+ break;}
+case 50:
+#line 1036 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if ((unsigned)yyvsp[0].UInt64Val != yyvsp[0].UInt64Val)
ThrowException("Calling conv too large!");
yyval.UIntVal = yyvsp[0].UInt64Val;
- ;}
- break;
-
- case 47:
-#line 1044 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;}
- break;
-
- case 49:
-#line 1045 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;}
- break;
-
- case 50:
-#line 1047 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 52:
+#line 1049 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;
+ break;}
+case 54:
+#line 1050 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType); ;
+ break;}
+case 55:
+#line 1052 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (!UpRefs.empty())
ThrowException("Invalid upreference in type: " + (*yyvsp[0].TypeVal)->getDescription());
yyval.TypeVal = yyvsp[0].TypeVal;
- ;}
- break;
-
- case 64:
-#line 1058 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 69:
+#line 1063 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.TypeVal = new PATypeHolder(OpaqueType::get());
- ;}
- break;
-
- case 65:
-#line 1061 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 70:
+#line 1066 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.TypeVal = new PATypeHolder(yyvsp[0].PrimType);
- ;}
- break;
-
- case 66:
-#line 1064 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Named types are also simple types...
+ ;
+ break;}
+case 71:
+#line 1069 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Named types are also simple types...
yyval.TypeVal = new PATypeHolder(getTypeVal(yyvsp[0].ValIDVal));
-;}
- break;
-
- case 67:
-#line 1070 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Type UpReference
+;
+ break;}
+case 72:
+#line 1075 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Type UpReference
if (yyvsp[0].UInt64Val > (uint64_t)~0U) ThrowException("Value out of range!");
OpaqueType *OT = OpaqueType::get(); // Use temporary placeholder
UpRefs.push_back(UpRefRecord((unsigned)yyvsp[0].UInt64Val, OT)); // Add to vector...
yyval.TypeVal = new PATypeHolder(OT);
UR_OUT("New Upreference!\n");
- ;}
- break;
-
- case 68:
-#line 1077 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Function derived type?
+ ;
+ break;}
+case 73:
+#line 1082 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Function derived type?
std::vector<const Type*> Params;
for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-1].TypeList->begin(),
E = yyvsp[-1].TypeList->end(); I != E; ++I)
@@ -2735,35 +2364,39 @@
yyval.TypeVal = new PATypeHolder(HandleUpRefs(FunctionType::get(*yyvsp[-3].TypeVal,Params,isVarArg)));
delete yyvsp[-1].TypeList; // Delete the argument list
delete yyvsp[-3].TypeVal; // Delete the return type handle
- ;}
- break;
-
- case 69:
-#line 1089 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Sized array type?
+ ;
+ break;}
+case 74:
+#line 1094 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Sized array type?
yyval.TypeVal = new PATypeHolder(HandleUpRefs(ArrayType::get(*yyvsp[-1].TypeVal, (unsigned)yyvsp[-3].UInt64Val)));
delete yyvsp[-1].TypeVal;
- ;}
- break;
-
- case 70:
-#line 1093 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Packed array type?
+ ;
+ break;}
+case 75:
+#line 1099 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Vector type?
+ yyval.TypeVal = new PATypeHolder(HandleUpRefs(VectorType::get(*yyvsp[-1].TypeVal)));
+ delete yyvsp[-1].TypeVal;
+ ;
+ break;}
+case 76:
+#line 1104 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // FixedVector type?
const llvm::Type* ElemTy = yyvsp[-1].TypeVal->get();
- if ((unsigned)yyvsp[-3].UInt64Val != yyvsp[-3].UInt64Val) {
+ if ((unsigned)yyvsp[-2].UInt64Val != yyvsp[-2].UInt64Val) {
ThrowException("Unsigned result not equal to signed result");
}
if(!ElemTy->isPrimitiveType()) {
- ThrowException("Elemental type of a PackedType must be primitive");
+ ThrowException("Element type of a FixedVectorType must be primitive");
}
- yyval.TypeVal = new PATypeHolder(HandleUpRefs(PackedType::get(*yyvsp[-1].TypeVal, (unsigned)yyvsp[-3].UInt64Val)));
+ yyval.TypeVal = new PATypeHolder(HandleUpRefs(FixedVectorType::get(*yyvsp[-1].TypeVal, (unsigned)yyvsp[-2].UInt64Val)));
delete yyvsp[-1].TypeVal;
- ;}
- break;
-
- case 71:
-#line 1104 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Structure type?
+ ;
+ break;}
+case 77:
+#line 1116 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Structure type?
std::vector<const Type*> Elements;
for (std::list<llvm::PATypeHolder>::iterator I = yyvsp[-1].TypeList->begin(),
E = yyvsp[-1].TypeList->end(); I != E; ++I)
@@ -2771,63 +2404,55 @@
yyval.TypeVal = new PATypeHolder(HandleUpRefs(StructType::get(Elements)));
delete yyvsp[-1].TypeList;
- ;}
- break;
-
- case 72:
-#line 1113 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Empty structure type?
+ ;
+ break;}
+case 78:
+#line 1125 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Empty structure type?
yyval.TypeVal = new PATypeHolder(StructType::get(std::vector<const Type*>()));
- ;}
- break;
-
- case 73:
-#line 1116 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Pointer type?
+ ;
+ break;}
+case 79:
+#line 1128 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Pointer type?
yyval.TypeVal = new PATypeHolder(HandleUpRefs(PointerType::get(*yyvsp[-1].TypeVal)));
delete yyvsp[-1].TypeVal;
- ;}
- break;
-
- case 74:
-#line 1124 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 80:
+#line 1136 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.TypeList = new std::list<PATypeHolder>();
yyval.TypeList->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal;
- ;}
- break;
-
- case 75:
-#line 1128 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 81:
+#line 1140 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
(yyval.TypeList=yyvsp[-2].TypeList)->push_back(*yyvsp[0].TypeVal); delete yyvsp[0].TypeVal;
- ;}
- break;
-
- case 77:
-#line 1134 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 83:
+#line 1146 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
(yyval.TypeList=yyvsp[-2].TypeList)->push_back(Type::VoidTy);
- ;}
- break;
-
- case 78:
-#line 1137 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 84:
+#line 1149 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
(yyval.TypeList = new std::list<PATypeHolder>())->push_back(Type::VoidTy);
- ;}
- break;
-
- case 79:
-#line 1140 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 85:
+#line 1152 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.TypeList = new std::list<PATypeHolder>();
- ;}
- break;
-
- case 80:
-#line 1150 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Nonempty unsized arr
+ ;
+ break;}
+case 86:
+#line 1162 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Nonempty unsized arr
const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-3].TypeVal->get());
if (ATy == 0)
ThrowException("Cannot make array constant with type: '" +
@@ -2851,12 +2476,11 @@
yyval.ConstVal = ConstantArray::get(ATy, *yyvsp[-1].ConstVector);
delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector;
- ;}
- break;
-
- case 81:
-#line 1175 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 87:
+#line 1187 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-2].TypeVal->get());
if (ATy == 0)
ThrowException("Cannot make array constant with type: '" +
@@ -2868,12 +2492,11 @@
" arguments, but has size of " + itostr(NumElements) +"!");
yyval.ConstVal = ConstantArray::get(ATy, std::vector<Constant*>());
delete yyvsp[-2].TypeVal;
- ;}
- break;
-
- case 82:
-#line 1188 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 88:
+#line 1200 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
const ArrayType *ATy = dyn_cast<ArrayType>(yyvsp[-2].TypeVal->get());
if (ATy == 0)
ThrowException("Cannot make array constant with type: '" +
@@ -2900,22 +2523,21 @@
free(yyvsp[0].StrVal);
yyval.ConstVal = ConstantArray::get(ATy, Vals);
delete yyvsp[-2].TypeVal;
- ;}
- break;
-
- case 83:
-#line 1216 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Nonempty unsized arr
- const PackedType *PTy = dyn_cast<PackedType>(yyvsp[-3].TypeVal->get());
+ ;
+ break;}
+case 89:
+#line 1228 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Nonempty unsized arr
+ const FixedVectorType *PTy = dyn_cast<FixedVectorType>(yyvsp[-3].TypeVal->get());
if (PTy == 0)
- ThrowException("Cannot make packed constant with type: '" +
+ ThrowException("Cannot make vector constant with type: '" +
(*yyvsp[-3].TypeVal)->getDescription() + "'!");
const Type *ETy = PTy->getElementType();
int NumElements = PTy->getNumElements();
// Verify that we have the correct size...
if (NumElements != -1 && NumElements != (int)yyvsp[-1].ConstVector->size())
- ThrowException("Type mismatch: constant sized packed initialized with " +
+ ThrowException("Type mismatch: constant sized vector initialized with " +
utostr(yyvsp[-1].ConstVector->size()) + " arguments, but has size of " +
itostr(NumElements) + "!");
@@ -2927,14 +2549,13 @@
(*yyvsp[-1].ConstVector)[i]->getType()->getDescription() + "'.");
}
- yyval.ConstVal = ConstantPacked::get(PTy, *yyvsp[-1].ConstVector);
+ yyval.ConstVal = ConstantVector::get(PTy, *yyvsp[-1].ConstVector);
delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector;
- ;}
- break;
-
- case 84:
-#line 1241 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 90:
+#line 1253 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
const StructType *STy = dyn_cast<StructType>(yyvsp[-3].TypeVal->get());
if (STy == 0)
ThrowException("Cannot make struct constant with type: '" +
@@ -2953,12 +2574,11 @@
yyval.ConstVal = ConstantStruct::get(STy, *yyvsp[-1].ConstVector);
delete yyvsp[-3].TypeVal; delete yyvsp[-1].ConstVector;
- ;}
- break;
-
- case 85:
-#line 1261 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 91:
+#line 1273 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
const StructType *STy = dyn_cast<StructType>(yyvsp[-2].TypeVal->get());
if (STy == 0)
ThrowException("Cannot make struct constant with type: '" +
@@ -2969,12 +2589,11 @@
yyval.ConstVal = ConstantStruct::get(STy, std::vector<Constant*>());
delete yyvsp[-2].TypeVal;
- ;}
- break;
-
- case 86:
-#line 1273 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 92:
+#line 1285 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
const PointerType *PTy = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
if (PTy == 0)
ThrowException("Cannot make null pointer constant with type: '" +
@@ -2982,20 +2601,18 @@
yyval.ConstVal = ConstantPointerNull::get(PTy);
delete yyvsp[-1].TypeVal;
- ;}
- break;
-
- case 87:
-#line 1282 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 93:
+#line 1294 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ConstVal = UndefValue::get(yyvsp[-1].TypeVal->get());
delete yyvsp[-1].TypeVal;
- ;}
- break;
-
- case 88:
-#line 1286 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 94:
+#line 1298 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
const PointerType *Ty = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
if (Ty == 0)
ThrowException("Global const reference must be a pointer type!");
@@ -3053,74 +2670,66 @@
yyval.ConstVal = cast<GlobalValue>(V);
delete yyvsp[-1].TypeVal; // Free the type handle
- ;}
- break;
-
- case 89:
-#line 1345 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 95:
+#line 1357 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (yyvsp[-1].TypeVal->get() != yyvsp[0].ConstVal->getType())
ThrowException("Mismatched types for constant expression!");
yyval.ConstVal = yyvsp[0].ConstVal;
delete yyvsp[-1].TypeVal;
- ;}
- break;
-
- case 90:
-#line 1351 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 96:
+#line 1363 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
const Type *Ty = yyvsp[-1].TypeVal->get();
if (isa<FunctionType>(Ty) || Ty == Type::LabelTy || isa<OpaqueType>(Ty))
ThrowException("Cannot create a null initialized value of this type!");
yyval.ConstVal = Constant::getNullValue(Ty);
delete yyvsp[-1].TypeVal;
- ;}
- break;
-
- case 91:
-#line 1359 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // integral constants
+ ;
+ break;}
+case 97:
+#line 1371 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // integral constants
if (!ConstantSInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].SInt64Val))
ThrowException("Constant value doesn't fit in type!");
yyval.ConstVal = ConstantSInt::get(yyvsp[-1].PrimType, yyvsp[0].SInt64Val);
- ;}
- break;
-
- case 92:
-#line 1364 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // integral constants
+ ;
+ break;}
+case 98:
+#line 1376 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // integral constants
if (!ConstantUInt::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].UInt64Val))
ThrowException("Constant value doesn't fit in type!");
yyval.ConstVal = ConstantUInt::get(yyvsp[-1].PrimType, yyvsp[0].UInt64Val);
- ;}
- break;
-
- case 93:
-#line 1369 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Boolean constants
+ ;
+ break;}
+case 99:
+#line 1381 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Boolean constants
yyval.ConstVal = ConstantBool::True;
- ;}
- break;
-
- case 94:
-#line 1372 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Boolean constants
+ ;
+ break;}
+case 100:
+#line 1384 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Boolean constants
yyval.ConstVal = ConstantBool::False;
- ;}
- break;
-
- case 95:
-#line 1375 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Float & Double constants
+ ;
+ break;}
+case 101:
+#line 1387 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Float & Double constants
if (!ConstantFP::isValueValidForType(yyvsp[-1].PrimType, yyvsp[0].FPVal))
ThrowException("Floating point constant invalid for type!!");
yyval.ConstVal = ConstantFP::get(yyvsp[-1].PrimType, yyvsp[0].FPVal);
- ;}
- break;
-
- case 96:
-#line 1382 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 102:
+#line 1394 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (!yyvsp[-3].ConstVal->getType()->isFirstClassType())
ThrowException("cast constant expression from a non-primitive type: '" +
yyvsp[-3].ConstVal->getType()->getDescription() + "'!");
@@ -3129,12 +2738,11 @@
yyvsp[-1].TypeVal->get()->getDescription() + "'!");
yyval.ConstVal = ConstantExpr::getCast(yyvsp[-3].ConstVal, yyvsp[-1].TypeVal->get());
delete yyvsp[-1].TypeVal;
- ;}
- break;
-
- case 97:
-#line 1392 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 103:
+#line 1404 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (!isa<PointerType>(yyvsp[-2].ConstVal->getType()))
ThrowException("GetElementPtr requires a pointer operand!");
@@ -3164,23 +2772,21 @@
delete yyvsp[-1].ValueList;
yyval.ConstVal = ConstantExpr::getGetElementPtr(yyvsp[-2].ConstVal, IdxVec);
- ;}
- break;
-
- case 98:
-#line 1423 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 104:
+#line 1435 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (yyvsp[-5].ConstVal->getType() != Type::BoolTy)
ThrowException("Select condition must be of boolean type!");
if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
ThrowException("Select operand types must match!");
yyval.ConstVal = ConstantExpr::getSelect(yyvsp[-5].ConstVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
- ;}
- break;
-
- case 99:
-#line 1430 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 105:
+#line 1442 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
ThrowException("Binary operator types must match!");
// HACK: llvm 1.3 and earlier used to emit invalid pointer constant exprs.
@@ -3200,98 +2806,89 @@
ConstantExpr::getCast(yyvsp[-1].ConstVal, IntPtrTy));
yyval.ConstVal = ConstantExpr::getCast(yyval.ConstVal, yyvsp[-3].ConstVal->getType());
}
- ;}
- break;
-
- case 100:
-#line 1451 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 106:
+#line 1463 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
ThrowException("Logical operator types must match!");
- if (!yyvsp[-3].ConstVal->getType()->isIntegral())
+ if (!yyvsp[-3].ConstVal->getType()->isIntegral() &&
+ !yyvsp[-3].ConstVal->getType()->isIntegralVector())
ThrowException("Logical operands must have integral types!");
yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
- ;}
- break;
-
- case 101:
-#line 1458 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 107:
+#line 1471 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (yyvsp[-3].ConstVal->getType() != yyvsp[-1].ConstVal->getType())
ThrowException("setcc operand types must match!");
yyval.ConstVal = ConstantExpr::get(yyvsp[-5].BinaryOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
- ;}
- break;
-
- case 102:
-#line 1463 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 108:
+#line 1476 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (yyvsp[-1].ConstVal->getType() != Type::UByteTy)
ThrowException("Shift count for shift constant must be unsigned byte!");
- if (!yyvsp[-3].ConstVal->getType()->isInteger())
+ if (!yyvsp[-3].ConstVal->getType()->isInteger() &&
+ !yyvsp[-3].ConstVal->getType()->isIntegerVector()) {
ThrowException("Shift constant expression requires integer operand!");
+ }
yyval.ConstVal = ConstantExpr::get(yyvsp[-5].OtherOpVal, yyvsp[-3].ConstVal, yyvsp[-1].ConstVal);
- ;}
- break;
-
- case 103:
-#line 1473 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 109:
+#line 1488 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
(yyval.ConstVector = yyvsp[-2].ConstVector)->push_back(yyvsp[0].ConstVal);
- ;}
- break;
-
- case 104:
-#line 1476 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 110:
+#line 1491 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ConstVector = new std::vector<Constant*>();
yyval.ConstVector->push_back(yyvsp[0].ConstVal);
- ;}
- break;
-
- case 105:
-#line 1483 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.BoolVal = false; ;}
- break;
-
- case 106:
-#line 1483 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.BoolVal = true; ;}
- break;
-
- case 107:
-#line 1493 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 111:
+#line 1498 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.BoolVal = false; ;
+ break;}
+case 112:
+#line 1498 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.BoolVal = true; ;
+ break;}
+case 113:
+#line 1508 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ModuleVal = ParserResult = yyvsp[0].ModuleVal;
CurModule.ModuleDone();
-;}
- break;
-
- case 108:
-#line 1500 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+;
+ break;}
+case 114:
+#line 1515 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ModuleVal = yyvsp[-1].ModuleVal;
CurFun.FunctionDone();
- ;}
- break;
-
- case 109:
-#line 1504 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 115:
+#line 1519 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ModuleVal = yyvsp[-1].ModuleVal;
- ;}
- break;
-
- case 110:
-#line 1507 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 116:
+#line 1522 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ModuleVal = yyvsp[-1].ModuleVal;
- ;}
- break;
-
- case 111:
-#line 1510 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 117:
+#line 1525 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ModuleVal = CurModule.CurrentModule;
// Emit an error if there are any unresolved types left.
if (!CurModule.LateResolveTypes.empty()) {
@@ -3301,12 +2898,11 @@
else
ThrowException("Reference to an undefined type: #" + itostr(DID.Num));
}
- ;}
- break;
-
- case 112:
-#line 1523 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 118:
+#line 1538 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
// Eagerly resolve types. This is not an optimization, this is a
// requirement that is due to the fact that we could have this:
//
@@ -3325,174 +2921,151 @@
}
delete yyvsp[0].TypeVal;
- ;}
- break;
-
- case 113:
-#line 1543 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Function prototypes can be in const pool
- ;}
- break;
-
- case 114:
-#line 1545 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 119:
+#line 1558 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Function prototypes can be in const pool
+ ;
+ break;}
+case 120:
+#line 1560 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (yyvsp[0].ConstVal == 0) ThrowException("Global value initializer is not a constant!");
ParseGlobalVariable(yyvsp[-3].StrVal, yyvsp[-2].Linkage, yyvsp[-1].BoolVal, yyvsp[0].ConstVal->getType(), yyvsp[0].ConstVal);
- ;}
- break;
-
- case 115:
-#line 1549 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 121:
+#line 1564 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
ParseGlobalVariable(yyvsp[-3].StrVal, GlobalValue::ExternalLinkage, yyvsp[-1].BoolVal, *yyvsp[0].TypeVal, 0);
delete yyvsp[0].TypeVal;
- ;}
- break;
-
- case 116:
-#line 1553 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
- ;}
- break;
-
- case 117:
-#line 1555 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
- ;}
- break;
-
- case 118:
-#line 1557 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
- ;}
- break;
-
- case 119:
-#line 1562 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.Endianness = Module::BigEndian; ;}
- break;
-
- case 120:
-#line 1563 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.Endianness = Module::LittleEndian; ;}
- break;
-
- case 121:
-#line 1565 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 122:
+#line 1568 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ ;
+ break;}
+case 123:
+#line 1570 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ ;
+ break;}
+case 124:
+#line 1572 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ ;
+ break;}
+case 125:
+#line 1577 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.Endianness = Module::BigEndian; ;
+ break;}
+case 126:
+#line 1578 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.Endianness = Module::LittleEndian; ;
+ break;}
+case 127:
+#line 1580 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
CurModule.CurrentModule->setEndianness(yyvsp[0].Endianness);
- ;}
- break;
-
- case 122:
-#line 1568 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 128:
+#line 1583 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (yyvsp[0].UInt64Val == 32)
CurModule.CurrentModule->setPointerSize(Module::Pointer32);
else if (yyvsp[0].UInt64Val == 64)
CurModule.CurrentModule->setPointerSize(Module::Pointer64);
else
ThrowException("Invalid pointer size: '" + utostr(yyvsp[0].UInt64Val) + "'!");
- ;}
- break;
-
- case 123:
-#line 1576 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 129:
+#line 1591 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
CurModule.CurrentModule->setTargetTriple(yyvsp[0].StrVal);
free(yyvsp[0].StrVal);
- ;}
- break;
-
- case 125:
-#line 1583 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 131:
+#line 1598 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal);
free(yyvsp[0].StrVal);
- ;}
- break;
-
- case 126:
-#line 1587 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 132:
+#line 1602 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
CurModule.CurrentModule->addLibrary(yyvsp[0].StrVal);
free(yyvsp[0].StrVal);
- ;}
- break;
-
- case 127:
-#line 1591 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
- ;}
- break;
-
- case 131:
-#line 1600 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.StrVal = 0; ;}
- break;
-
- case 132:
-#line 1602 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 133:
+#line 1606 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ ;
+ break;}
+case 137:
+#line 1615 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.StrVal = 0; ;
+ break;}
+case 138:
+#line 1617 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (*yyvsp[-1].TypeVal == Type::VoidTy)
ThrowException("void typed arguments are invalid!");
yyval.ArgVal = new std::pair<PATypeHolder*, char*>(yyvsp[-1].TypeVal, yyvsp[0].StrVal);
-;}
- break;
-
- case 133:
-#line 1608 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+;
+ break;}
+case 139:
+#line 1623 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ArgList = yyvsp[-2].ArgList;
yyvsp[-2].ArgList->push_back(*yyvsp[0].ArgVal);
delete yyvsp[0].ArgVal;
- ;}
- break;
-
- case 134:
-#line 1613 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 140:
+#line 1628 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ArgList = new std::vector<std::pair<PATypeHolder*,char*> >();
yyval.ArgList->push_back(*yyvsp[0].ArgVal);
delete yyvsp[0].ArgVal;
- ;}
- break;
-
- case 135:
-#line 1619 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 141:
+#line 1634 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ArgList = yyvsp[0].ArgList;
- ;}
- break;
-
- case 136:
-#line 1622 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 142:
+#line 1637 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ArgList = yyvsp[-2].ArgList;
yyval.ArgList->push_back(std::pair<PATypeHolder*,
char*>(new PATypeHolder(Type::VoidTy), 0));
- ;}
- break;
-
- case 137:
-#line 1627 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 143:
+#line 1642 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ArgList = new std::vector<std::pair<PATypeHolder*,char*> >();
yyval.ArgList->push_back(std::make_pair(new PATypeHolder(Type::VoidTy), (char*)0));
- ;}
- break;
-
- case 138:
-#line 1631 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 144:
+#line 1646 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ArgList = 0;
- ;}
- break;
-
- case 139:
-#line 1635 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 145:
+#line 1650 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
UnEscapeLexed(yyvsp[-3].StrVal);
std::string FunctionName(yyvsp[-3].StrVal);
free(yyvsp[-3].StrVal); // Free strdup'd memory!
@@ -3570,99 +3143,87 @@
delete yyvsp[-1].ArgList; // We're now done with the argument list
}
-;}
- break;
-
- case 142:
-#line 1717 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+;
+ break;}
+case 148:
+#line 1732 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.FunctionVal = CurFun.CurrentFunction;
// Make sure that we keep track of the linkage type even if there was a
// previous "declare".
yyval.FunctionVal->setLinkage(yyvsp[-2].Linkage);
-;}
- break;
-
- case 145:
-#line 1727 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+;
+ break;}
+case 151:
+#line 1742 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.FunctionVal = yyvsp[-1].FunctionVal;
-;}
- break;
-
- case 146:
-#line 1731 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { CurFun.isDeclare = true; ;}
- break;
-
- case 147:
-#line 1731 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+;
+ break;}
+case 152:
+#line 1746 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ CurFun.isDeclare = true; ;
+ break;}
+case 153:
+#line 1746 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.FunctionVal = CurFun.CurrentFunction;
CurFun.FunctionDone();
-;}
- break;
-
- case 148:
-#line 1740 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // A reference to a direct constant
+;
+ break;}
+case 154:
+#line 1755 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // A reference to a direct constant
yyval.ValIDVal = ValID::create(yyvsp[0].SInt64Val);
- ;}
- break;
-
- case 149:
-#line 1743 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 155:
+#line 1758 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ValIDVal = ValID::create(yyvsp[0].UInt64Val);
- ;}
- break;
-
- case 150:
-#line 1746 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Perhaps it's an FP constant?
+ ;
+ break;}
+case 156:
+#line 1761 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Perhaps it's an FP constant?
yyval.ValIDVal = ValID::create(yyvsp[0].FPVal);
- ;}
- break;
-
- case 151:
-#line 1749 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 157:
+#line 1764 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ValIDVal = ValID::create(ConstantBool::True);
- ;}
- break;
-
- case 152:
-#line 1752 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 158:
+#line 1767 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ValIDVal = ValID::create(ConstantBool::False);
- ;}
- break;
-
- case 153:
-#line 1755 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 159:
+#line 1770 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ValIDVal = ValID::createNull();
- ;}
- break;
-
- case 154:
-#line 1758 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 160:
+#line 1773 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ValIDVal = ValID::createUndef();
- ;}
- break;
-
- case 155:
-#line 1761 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Nonempty unsized packed vector
+ ;
+ break;}
+case 161:
+#line 1776 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Nonempty unsized vector
const Type *ETy = (*yyvsp[-1].ConstVector)[0]->getType();
int NumElements = yyvsp[-1].ConstVector->size();
- PackedType* pt = PackedType::get(ETy, NumElements);
+ FixedVectorType* pt = FixedVectorType::get(ETy, NumElements);
PATypeHolder* PTy = new PATypeHolder(
HandleUpRefs(
- PackedType::get(
+ FixedVectorType::get(
ETy,
NumElements)
)
@@ -3676,76 +3237,67 @@
(*yyvsp[-1].ConstVector)[i]->getType()->getDescription() + "'.");
}
- yyval.ValIDVal = ValID::create(ConstantPacked::get(pt, *yyvsp[-1].ConstVector));
+ yyval.ValIDVal = ValID::create(ConstantVector::get(pt, *yyvsp[-1].ConstVector));
delete PTy; delete yyvsp[-1].ConstVector;
- ;}
- break;
-
- case 156:
-#line 1785 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 162:
+#line 1800 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ValIDVal = ValID::create(yyvsp[0].ConstVal);
- ;}
- break;
-
- case 157:
-#line 1792 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Is it an integer reference...?
+ ;
+ break;}
+case 163:
+#line 1807 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Is it an integer reference...?
yyval.ValIDVal = ValID::create(yyvsp[0].SIntVal);
- ;}
- break;
-
- case 158:
-#line 1795 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Is it a named reference...?
+ ;
+ break;}
+case 164:
+#line 1810 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Is it a named reference...?
yyval.ValIDVal = ValID::create(yyvsp[0].StrVal);
- ;}
- break;
-
- case 161:
-#line 1806 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 167:
+#line 1821 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ValueVal = getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal); delete yyvsp[-1].TypeVal;
- ;}
- break;
-
- case 162:
-#line 1810 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 168:
+#line 1825 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.FunctionVal = yyvsp[-1].FunctionVal;
- ;}
- break;
-
- case 163:
-#line 1813 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Do not allow functions with 0 basic blocks
+ ;
+ break;}
+case 169:
+#line 1828 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Do not allow functions with 0 basic blocks
yyval.FunctionVal = yyvsp[-1].FunctionVal;
- ;}
- break;
-
- case 164:
-#line 1821 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 170:
+#line 1836 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
setValueName(yyvsp[0].TermInstVal, yyvsp[-1].StrVal);
InsertValue(yyvsp[0].TermInstVal);
yyvsp[-2].BasicBlockVal->getInstList().push_back(yyvsp[0].TermInstVal);
InsertValue(yyvsp[-2].BasicBlockVal);
yyval.BasicBlockVal = yyvsp[-2].BasicBlockVal;
- ;}
- break;
-
- case 165:
-#line 1830 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 171:
+#line 1845 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyvsp[-1].BasicBlockVal->getInstList().push_back(yyvsp[0].InstVal);
yyval.BasicBlockVal = yyvsp[-1].BasicBlockVal;
- ;}
- break;
-
- case 166:
-#line 1834 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 172:
+#line 1849 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.BasicBlockVal = CurBB = getBBVal(ValID::create((int)CurFun.NextBBNum++), true);
// Make sure to move the basic block to the correct location in the
@@ -3754,12 +3306,11 @@
Function::BasicBlockListType &BBL =
CurFun.CurrentFunction->getBasicBlockList();
BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal);
- ;}
- break;
-
- case 167:
-#line 1844 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 173:
+#line 1859 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.BasicBlockVal = CurBB = getBBVal(ValID::create(yyvsp[0].StrVal), true);
// Make sure to move the basic block to the correct location in the
@@ -3768,40 +3319,35 @@
Function::BasicBlockListType &BBL =
CurFun.CurrentFunction->getBasicBlockList();
BBL.splice(BBL.end(), BBL, yyval.BasicBlockVal);
- ;}
- break;
-
- case 168:
-#line 1855 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Return with a result...
+ ;
+ break;}
+case 174:
+#line 1870 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Return with a result...
yyval.TermInstVal = new ReturnInst(yyvsp[0].ValueVal);
- ;}
- break;
-
- case 169:
-#line 1858 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Return with no result...
+ ;
+ break;}
+case 175:
+#line 1873 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Return with no result...
yyval.TermInstVal = new ReturnInst();
- ;}
- break;
-
- case 170:
-#line 1861 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Unconditional Branch...
+ ;
+ break;}
+case 176:
+#line 1876 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Unconditional Branch...
yyval.TermInstVal = new BranchInst(getBBVal(yyvsp[0].ValIDVal));
- ;}
- break;
-
- case 171:
-#line 1864 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 177:
+#line 1879 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.TermInstVal = new BranchInst(getBBVal(yyvsp[-3].ValIDVal), getBBVal(yyvsp[0].ValIDVal), getVal(Type::BoolTy, yyvsp[-6].ValIDVal));
- ;}
- break;
-
- case 172:
-#line 1867 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 178:
+#line 1882 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
SwitchInst *S = new SwitchInst(getVal(yyvsp[-7].PrimType, yyvsp[-6].ValIDVal), getBBVal(yyvsp[-3].ValIDVal), yyvsp[-1].JumpTable->size());
yyval.TermInstVal = S;
@@ -3814,20 +3360,18 @@
ThrowException("Switch case is constant, but not a simple integer!");
}
delete yyvsp[-1].JumpTable;
- ;}
- break;
-
- case 173:
-#line 1881 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 179:
+#line 1896 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
SwitchInst *S = new SwitchInst(getVal(yyvsp[-6].PrimType, yyvsp[-5].ValIDVal), getBBVal(yyvsp[-2].ValIDVal), 0);
yyval.TermInstVal = S;
- ;}
- break;
-
- case 174:
-#line 1886 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 180:
+#line 1901 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
const PointerType *PFTy;
const FunctionType *Ty;
@@ -3878,38 +3422,34 @@
delete yyvsp[-10].TypeVal;
delete yyvsp[-7].ValueList;
- ;}
- break;
-
- case 175:
-#line 1938 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 181:
+#line 1953 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.TermInstVal = new UnwindInst();
- ;}
- break;
-
- case 176:
-#line 1941 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 182:
+#line 1956 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.TermInstVal = new UnreachableInst();
- ;}
- break;
-
- case 177:
-#line 1947 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 183:
+#line 1962 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.JumpTable = yyvsp[-5].JumpTable;
Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal));
if (V == 0)
ThrowException("May only switch on a constant pool value!");
yyval.JumpTable->push_back(std::make_pair(V, getBBVal(yyvsp[0].ValIDVal)));
- ;}
- break;
-
- case 178:
-#line 1955 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 184:
+#line 1970 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.JumpTable = new std::vector<std::pair<Constant*, BasicBlock*> >();
Constant *V = cast<Constant>(getValNonImprovising(yyvsp[-4].PrimType, yyvsp[-3].ValIDVal));
@@ -3917,117 +3457,112 @@
ThrowException("May only switch on a constant pool value!");
yyval.JumpTable->push_back(std::make_pair(V, getBBVal(yyvsp[0].ValIDVal)));
- ;}
- break;
-
- case 179:
-#line 1965 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 185:
+#line 1980 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
// Is this definition named?? if so, assign the name...
setValueName(yyvsp[0].InstVal, yyvsp[-1].StrVal);
InsertValue(yyvsp[0].InstVal);
yyval.InstVal = yyvsp[0].InstVal;
-;}
- break;
-
- case 180:
-#line 1972 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Used for PHI nodes
+;
+ break;}
+case 186:
+#line 1987 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Used for PHI nodes
yyval.PHIList = new std::list<std::pair<Value*, BasicBlock*> >();
yyval.PHIList->push_back(std::make_pair(getVal(*yyvsp[-5].TypeVal, yyvsp[-3].ValIDVal), getBBVal(yyvsp[-1].ValIDVal)));
delete yyvsp[-5].TypeVal;
- ;}
- break;
-
- case 181:
-#line 1977 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 187:
+#line 1992 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.PHIList = yyvsp[-6].PHIList;
yyvsp[-6].PHIList->push_back(std::make_pair(getVal(yyvsp[-6].PHIList->front().first->getType(), yyvsp[-3].ValIDVal),
getBBVal(yyvsp[-1].ValIDVal)));
- ;}
- break;
-
- case 182:
-#line 1984 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { // Used for call statements, and memory insts...
+ ;
+ break;}
+case 188:
+#line 1998 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ // Used for call statements, and memory insts...
yyval.ValueList = new std::vector<Value*>();
yyval.ValueList->push_back(yyvsp[0].ValueVal);
- ;}
- break;
-
- case 183:
-#line 1988 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 189:
+#line 2002 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ValueList = yyvsp[-2].ValueList;
yyvsp[-2].ValueList->push_back(yyvsp[0].ValueVal);
- ;}
- break;
-
- case 185:
-#line 1994 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- { yyval.ValueList = 0; ;}
- break;
-
- case 186:
-#line 1996 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 191:
+#line 2008 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{ yyval.ValueList = 0; ;
+ break;}
+case 192:
+#line 2010 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.BoolVal = true;
- ;}
- break;
-
- case 187:
-#line 1999 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 193:
+#line 2013 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.BoolVal = false;
- ;}
- break;
-
- case 188:
-#line 2005 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 194:
+#line 2019 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (!(*yyvsp[-3].TypeVal)->isInteger() && !(*yyvsp[-3].TypeVal)->isFloatingPoint() &&
- !isa<PackedType>((*yyvsp[-3].TypeVal).get()))
+ !isa<VectorType>((*yyvsp[-3].TypeVal).get()))
+ ThrowException("Arithmetic operator requires integer, FP, or vector operands!");
+ if(isa<FixedVectorType>((*yyvsp[-3].TypeVal).get()) && yyvsp[-4].BinaryOpVal == Instruction::Rem) {
ThrowException(
- "Arithmetic operator requires integer, FP, or packed operands!");
- if (isa<PackedType>((*yyvsp[-3].TypeVal).get()) && yyvsp[-4].BinaryOpVal == Instruction::Rem)
- ThrowException("Rem not supported on packed types!");
+ "Rem not supported on fixed vector types!"); // FIXME: Why not?!
+ }
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!");
delete yyvsp[-3].TypeVal;
- ;}
- break;
-
- case 189:
-#line 2017 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
- if (!(*yyvsp[-3].TypeVal)->isIntegral())
+ ;
+ break;}
+case 195:
+#line 2032 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ if (!(*yyvsp[-3].TypeVal)->isIntegral() &&
+ !(*yyvsp[-3].TypeVal)->isIntegralVector())
ThrowException("Logical operator requires integral operands!");
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!");
delete yyvsp[-3].TypeVal;
- ;}
- break;
-
- case 190:
-#line 2025 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
- if(isa<PackedType>((*yyvsp[-3].TypeVal).get())) {
- ThrowException(
- "PackedTypes currently not supported in setcc instructions!");
- }
+ ;
+ break;}
+case 196:
+#line 2041 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.InstVal = new SetCondInst(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!");
delete yyvsp[-3].TypeVal;
- ;}
- break;
-
- case 191:
-#line 2035 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 197:
+#line 2047 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ yyval.InstVal = new SetCondInst(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!");
+ delete yyvsp[-3].TypeVal;
+ ;
+ break;}
+case 198:
+#line 2053 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
std::cerr << "WARNING: Use of eliminated 'not' instruction:"
<< " Replacing with 'xor'.\n";
@@ -4038,54 +3573,62 @@
yyval.InstVal = BinaryOperator::create(Instruction::Xor, yyvsp[0].ValueVal, Ones);
if (yyval.InstVal == 0)
ThrowException("Could not create a xor instruction!");
- ;}
- break;
-
- case 192:
-#line 2047 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 199:
+#line 2065 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (yyvsp[0].ValueVal->getType() != Type::UByteTy)
ThrowException("Shift amount must be ubyte!");
- if (!yyvsp[-2].ValueVal->getType()->isInteger())
- ThrowException("Shift constant expression requires integer operand!");
+ if (!yyvsp[-2].ValueVal->getType()->isInteger() &&
+ !yyvsp[-2].ValueVal->getType()->isIntegerVector())
+ ThrowException("Shift requires integer operand!");
yyval.InstVal = new ShiftInst(yyvsp[-3].OtherOpVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
- ;}
- break;
-
- case 193:
-#line 2054 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 200:
+#line 2073 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (!yyvsp[0].TypeVal->get()->isFirstClassType())
ThrowException("cast instruction to a non-primitive type: '" +
yyvsp[0].TypeVal->get()->getDescription() + "'!");
yyval.InstVal = new CastInst(yyvsp[-2].ValueVal, *yyvsp[0].TypeVal);
delete yyvsp[0].TypeVal;
- ;}
- break;
-
- case 194:
-#line 2061 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 201:
+#line 2080 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (yyvsp[-4].ValueVal->getType() != Type::BoolTy)
ThrowException("select condition must be boolean!");
if (yyvsp[-2].ValueVal->getType() != yyvsp[0].ValueVal->getType())
ThrowException("select value types should match!");
yyval.InstVal = new SelectInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
- ;}
- break;
-
- case 195:
-#line 2068 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 202:
+#line 2087 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ if (!yyvsp[-4].ValueVal->getType()->isBooleanVector())
+ ThrowException("vselect condition must be boolean vector!");
+ if (yyvsp[-2].ValueVal->getType() != yyvsp[0].ValueVal->getType())
+ ThrowException("vselect value types should match!");
+ if (!isa<VectorType>(yyvsp[-2].ValueVal->getType()))
+ ThrowException("vselect value must be a vector!");
+ yyval.InstVal = new VSelectInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+ ;
+ break;}
+case 203:
+#line 2096 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
NewVarArgs = true;
yyval.InstVal = new VAArgInst(yyvsp[-2].ValueVal, *yyvsp[0].TypeVal);
delete yyvsp[0].TypeVal;
- ;}
- break;
-
- case 196:
-#line 2073 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 204:
+#line 2101 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
ObsoleteVarArgs = true;
const Type* ArgTy = yyvsp[-2].ValueVal->getType();
Function* NF = CurModule.CurrentModule->
@@ -4103,12 +3646,11 @@
CurBB->getInstList().push_back(new StoreInst(bar, foo));
yyval.InstVal = new VAArgInst(foo, *yyvsp[0].TypeVal);
delete yyvsp[0].TypeVal;
- ;}
- break;
-
- case 197:
-#line 2092 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 205:
+#line 2120 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
ObsoleteVarArgs = true;
const Type* ArgTy = yyvsp[-2].ValueVal->getType();
Function* NF = CurModule.CurrentModule->
@@ -4129,12 +3671,11 @@
CurBB->getInstList().push_back(tmp);
yyval.InstVal = new LoadInst(foo);
delete yyvsp[0].TypeVal;
- ;}
- break;
-
- case 198:
-#line 2114 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 206:
+#line 2142 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
const Type *Ty = yyvsp[0].PHIList->front().first->getType();
if (!Ty->isFirstClassType())
ThrowException("PHI node operands must be of first class type!");
@@ -4147,12 +3688,11 @@
yyvsp[0].PHIList->pop_front();
}
delete yyvsp[0].PHIList; // Free the list...
- ;}
- break;
-
- case 199:
-#line 2128 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 207:
+#line 2156 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
const PointerType *PFTy;
const FunctionType *Ty;
@@ -4208,89 +3748,90 @@
cast<CallInst>(yyval.InstVal)->setCallingConv(yyvsp[-5].UIntVal);
delete yyvsp[-4].TypeVal;
delete yyvsp[-1].ValueList;
- ;}
- break;
-
- case 200:
-#line 2185 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 208:
+#line 2213 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.InstVal = yyvsp[0].InstVal;
- ;}
- break;
-
- case 201:
-#line 2191 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 209:
+#line 2219 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ValueList = yyvsp[0].ValueList;
- ;}
- break;
-
- case 202:
-#line 2193 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 210:
+#line 2221 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.ValueList = new std::vector<Value*>();
- ;}
- break;
-
- case 203:
-#line 2197 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 211:
+#line 2225 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.BoolVal = true;
- ;}
- break;
-
- case 204:
-#line 2200 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 212:
+#line 2228 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.BoolVal = false;
- ;}
- break;
-
- case 205:
-#line 2206 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 213:
+#line 2232 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ yyval.BoolVal = true;
+ ;
+ break;}
+case 214:
+#line 2235 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ yyval.BoolVal = false;
+ ;
+ break;}
+case 215:
+#line 2240 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.InstVal = new MallocInst(*yyvsp[0].TypeVal);
delete yyvsp[0].TypeVal;
- ;}
- break;
-
- case 206:
-#line 2210 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 216:
+#line 2244 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.InstVal = new MallocInst(*yyvsp[-3].TypeVal, getVal(yyvsp[-1].PrimType, yyvsp[0].ValIDVal));
delete yyvsp[-3].TypeVal;
- ;}
- break;
-
- case 207:
-#line 2214 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 217:
+#line 2248 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.InstVal = new AllocaInst(*yyvsp[0].TypeVal);
delete yyvsp[0].TypeVal;
- ;}
- break;
-
- case 208:
-#line 2218 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 218:
+#line 2252 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
yyval.InstVal = new AllocaInst(*yyvsp[-3].TypeVal, getVal(yyvsp[-1].PrimType, yyvsp[0].ValIDVal));
delete yyvsp[-3].TypeVal;
- ;}
- break;
-
- case 209:
-#line 2222 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 219:
+#line 2256 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (!isa<PointerType>(yyvsp[0].ValueVal->getType()))
ThrowException("Trying to free nonpointer type " +
yyvsp[0].ValueVal->getType()->getDescription() + "!");
yyval.InstVal = new FreeInst(yyvsp[0].ValueVal);
- ;}
- break;
-
- case 210:
-#line 2229 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 220:
+#line 2263 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (!isa<PointerType>(yyvsp[-1].TypeVal->get()))
ThrowException("Can't load from nonpointer type: " +
(*yyvsp[-1].TypeVal)->getDescription());
@@ -4299,12 +3840,11 @@
(*yyvsp[-1].TypeVal)->getDescription());
yyval.InstVal = new LoadInst(getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal), "", yyvsp[-3].BoolVal);
delete yyvsp[-1].TypeVal;
- ;}
- break;
-
- case 211:
-#line 2239 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 221:
+#line 2274 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
const PointerType *PT = dyn_cast<PointerType>(yyvsp[-1].TypeVal->get());
if (!PT)
ThrowException("Can't store to a nonpointer type: " +
@@ -4316,12 +3856,11 @@
yyval.InstVal = new StoreInst(yyvsp[-3].ValueVal, getVal(*yyvsp[-1].TypeVal, yyvsp[0].ValIDVal), yyvsp[-5].BoolVal);
delete yyvsp[-1].TypeVal;
- ;}
- break;
-
- case 212:
-#line 2252 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
- {
+ ;
+ break;}
+case 222:
+#line 2288 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
if (!isa<PointerType>(yyvsp[-2].TypeVal->get()))
ThrowException("getelementptr insn requires pointer operand!");
@@ -4341,239 +3880,340 @@
(*yyvsp[-2].TypeVal)->getDescription()+ "'!");
yyval.InstVal = new GetElementPtrInst(getVal(*yyvsp[-2].TypeVal, yyvsp[-1].ValIDVal), *yyvsp[0].ValueList);
delete yyvsp[-2].TypeVal; delete yyvsp[0].ValueList;
- ;}
- break;
-
-
- }
-
-/* Line 1000 of yacc.c. */
-#line 4352 "llvmAsmParser.tab.c"
+ ;
+ break;}
+case 223:
+#line 2310 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ if (!isa<PointerType>(yyvsp[-2].TypeVal->get()))
+ ThrowException("Can't load vector from nonpointer type: " +
+ (*yyvsp[-2].TypeVal)->getDescription());
+ if (!cast<PointerType>(yyvsp[-2].TypeVal->get())->getElementType()->isPrimitiveType())
+ ThrowException("Can't create vector of non-primitive type: " +
+ (*yyvsp[-2].TypeVal)->getDescription());
+ if (!VMemoryInst::checkNumIndices(*yyvsp[0].ValueList))
+ ThrowException("vgather must have four indices for each array dimension!");
+ if (!VMemoryInst::checkIndexType(*yyvsp[0].ValueList))
+ ThrowException("vgather indices must be of type long!");
+ yyval.InstVal = new VGatherInst(getVal(*yyvsp[-2].TypeVal, yyvsp[-1].ValIDVal), *yyvsp[0].ValueList);
+ delete yyvsp[-2].TypeVal; delete yyvsp[0].ValueList;
+ ;
+ break;}
+case 224:
+#line 2325 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ if (yyvsp[0].ValueVal->getType() != Type::UIntTy)
+ ThrowException("Length of vimm must be unsigned int!");
+ yyval.InstVal = new VImmInst(yyvsp[-2].ValueVal, yyvsp[0].ValueVal, yyvsp[-4].BoolVal);
+ ;
+ break;}
+case 225:
+#line 2331 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ if (!isa<VectorType>(yyvsp[-6].ValueVal->getType()))
+ ThrowException("First operand of extract must be a vector!");
+ if (yyvsp[-4].ValueVal->getType() != Type::UIntTy)
+ ThrowException("Second operand of extract must be a uint!");
+ if (yyvsp[-2].ValueVal->getType() != Type::UIntTy)
+ ThrowException("Third operand of extract must be a uint!");
+ if (yyvsp[0].ValueVal->getType() != Type::UIntTy)
+ ThrowException("Fourth operand of extract must be a uint!");
+ yyval.InstVal = new ExtractInst(yyvsp[-6].ValueVal, yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+ ;
+ break;}
+case 226:
+#line 2343 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ if (!isa<VectorType>(yyvsp[-2].ValueVal->getType()))
+ ThrowException("First operand of extractelement must be a vector!");
+ if (yyvsp[0].ValueVal->getType() != Type::UIntTy)
+ ThrowException("Second operand of extractelement must be a uint!");
+ yyval.InstVal = new ExtractElementInst(yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+ ;
+ break;}
+case 227:
+#line 2351 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ if (!isa<VectorType>(yyvsp[-6].ValueVal->getType()))
+ ThrowException("First operand of combine must be a vector!");
+ if (!isa<VectorType>(yyvsp[-4].ValueVal->getType()))
+ ThrowException("Second operand of combine must be a vector!");
+ if (yyvsp[-2].ValueVal->getType() != Type::UIntTy)
+ ThrowException("Third operand of combine must be a uint!");
+ if (yyvsp[0].ValueVal->getType() != Type::UIntTy)
+ ThrowException("Fourth operand of combine must be a uint!");
+ yyval.InstVal = new CombineInst(yyvsp[-6].ValueVal, yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+ ;
+ break;}
+case 228:
+#line 2363 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ if (!isa<VectorType>(yyvsp[-4].ValueVal->getType()))
+ ThrowException("First operand of combineelement must be a vector!");
+ if (yyvsp[-2].ValueVal->getType() != cast<VectorType>(yyvsp[-4].ValueVal->getType())->getElementType())
+ ThrowException("Second operand of combineelement must be vector element type!");
+ if (yyvsp[0].ValueVal->getType() != Type::UIntTy)
+ ThrowException("Third operand of combineelement must be a uint!");
+ yyval.InstVal = new CombineElementInst(yyvsp[-4].ValueVal, yyvsp[-2].ValueVal, yyvsp[0].ValueVal);
+ ;
+ break;}
+case 229:
+#line 2373 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
+{
+ if (!isa<PointerType>(yyvsp[-2].TypeVal->get()))
+ ThrowException("Can't store to a nonpointer type: " +
+ (*yyvsp[-2].TypeVal)->getDescription());
+ if (!isa<VectorType>(yyvsp[-4].ValueVal->getType()))
+ ThrowException("Can't store nonvector type: " +
+ yyvsp[-4].ValueVal->getType()->getDescription());
+ // FIXME: We may change this, but for now it makes things simpler
+ // to require variable vectors in vscatters. If you need to vscatter
+ // a fixed vector, you can always cast it to a variable vector
+ // first.
+ //
+ if (isa<FixedVectorType>(yyvsp[-4].ValueVal->getType()))
+ ThrowException("Can't store fixed vector type: " +
+ yyvsp[-4].ValueVal->getType()->getDescription() +
+ " cast to variable vector first");
+ const Type *ElTy = cast<PointerType>(yyvsp[-2].TypeVal->get())->getElementType();
+ if (!ElTy->isPrimitiveType())
+ ThrowException("Can't create vector of non-primitive type: " +
+ ElTy->getDescription());
+ if (!VMemoryInst::checkNumIndices(*yyvsp[0].ValueList))
+ ThrowException("vscatter must have four indices for each array dimension!");
+ if (!VMemoryInst::checkIndexType(*yyvsp[0].ValueList))
+ ThrowException("vscatter indices must be of type long!");
+ const VectorType *VT = cast<VectorType>(yyvsp[-4].ValueVal->getType());
+ if (VT->getElementType() != ElTy)
+ ThrowException("Can't store '" + yyvsp[-4].ValueVal->getType()->getDescription() +
+ "' into space of type '" + VT->getDescription() + "'!");
+ yyval.InstVal = new VScatterInst(yyvsp[-4].ValueVal, getVal(*yyvsp[-2].TypeVal, yyvsp[-1].ValIDVal), *yyvsp[0].ValueList);
+ delete yyvsp[-2].TypeVal; delete yyvsp[0].ValueList;
+ ;
+ break;}
+}
+ /* the action file gets copied in in place of this dollarsign */
+#line 543 "/usr/share/bison.simple"
yyvsp -= yylen;
yyssp -= yylen;
+#ifdef YYLSP_NEEDED
+ yylsp -= yylen;
+#endif
-
- YY_STACK_PRINT (yyss, yyssp);
+#if YYDEBUG != 0
+ if (yydebug)
+ {
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
*++yyvsp = yyval;
+#ifdef YYLSP_NEEDED
+ yylsp++;
+ if (yylen == 0)
+ {
+ yylsp->first_line = yylloc.first_line;
+ yylsp->first_column = yylloc.first_column;
+ yylsp->last_line = (yylsp-1)->last_line;
+ yylsp->last_column = (yylsp-1)->last_column;
+ yylsp->text = 0;
+ }
+ else
+ {
+ yylsp->last_line = (yylsp+yylen-1)->last_line;
+ yylsp->last_column = (yylsp+yylen-1)->last_column;
+ }
+#endif
- /* Now `shift' the result of the reduction. Determine what state
- that goes to, based on the state we popped back to and the rule
- number reduced by. */
+ /* Now "shift" the result of the reduction.
+ Determine what state that goes to,
+ based on the state we popped back to
+ and the rule number reduced by. */
yyn = yyr1[yyn];
- yystate = yypgoto[yyn - YYNTOKENS] + *yyssp;
- if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp)
+ yystate = yypgoto[yyn - YYNTBASE] + *yyssp;
+ if (yystate >= 0 && yystate <= YYLAST && yycheck[yystate] == *yyssp)
yystate = yytable[yystate];
else
- yystate = yydefgoto[yyn - YYNTOKENS];
+ yystate = yydefgoto[yyn - YYNTBASE];
goto yynewstate;
+yyerrlab: /* here on detecting error */
-/*------------------------------------.
-| yyerrlab -- here on detecting error |
-`------------------------------------*/
-yyerrlab:
- /* If not already recovering from an error, report this error. */
- if (!yyerrstatus)
+ if (! yyerrstatus)
+ /* If not already recovering from an error, report this error. */
{
++yynerrs;
-#if YYERROR_VERBOSE
+
+#ifdef YYERROR_VERBOSE
yyn = yypact[yystate];
- if (YYPACT_NINF < yyn && yyn < YYLAST)
+ if (yyn > YYFLAG && yyn < YYLAST)
{
- YYSIZE_T yysize = 0;
- int yytype = YYTRANSLATE (yychar);
- const char* yyprefix;
- char *yymsg;
- int yyx;
-
- /* Start YYX at -YYN if negative to avoid negative indexes in
- YYCHECK. */
- int yyxbegin = yyn < 0 ? -yyn : 0;
-
- /* Stay within bounds of both yycheck and yytname. */
- int yychecklim = YYLAST - yyn;
- int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
- int yycount = 0;
-
- yyprefix = ", expecting ";
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
- {
- yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
- yycount += 1;
- if (yycount == 5)
- {
- yysize = 0;
- break;
- }
- }
- yysize += (sizeof ("syntax error, unexpected ")
- + yystrlen (yytname[yytype]));
- yymsg = (char *) YYSTACK_ALLOC (yysize);
- if (yymsg != 0)
+ int size = 0;
+ char *msg;
+ int x, count;
+
+ count = 0;
+ /* Start X at -yyn if nec to avoid negative indexes in yycheck. */
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
+ size += strlen(yytname[x]) + 15, count++;
+ msg = (char *) malloc(size + 15);
+ if (msg != 0)
{
- char *yyp = yystpcpy (yymsg, "syntax error, unexpected ");
- yyp = yystpcpy (yyp, yytname[yytype]);
+ strcpy(msg, "parse error");
- if (yycount < 5)
+ if (count < 5)
{
- yyprefix = ", expecting ";
- for (yyx = yyxbegin; yyx < yyxend; ++yyx)
- if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
+ count = 0;
+ for (x = (yyn < 0 ? -yyn : 0);
+ x < (sizeof(yytname) / sizeof(char *)); x++)
+ if (yycheck[x + yyn] == x)
{
- yyp = yystpcpy (yyp, yyprefix);
- yyp = yystpcpy (yyp, yytname[yyx]);
- yyprefix = " or ";
+ strcat(msg, count == 0 ? ", expecting `" : " or `");
+ strcat(msg, yytname[x]);
+ strcat(msg, "'");
+ count++;
}
}
- yyerror (yymsg);
- YYSTACK_FREE (yymsg);
+ yyerror(msg);
+ free(msg);
}
else
- yyerror ("syntax error; also virtual memory exhausted");
+ yyerror ("parse error; also virtual memory exceeded");
}
else
#endif /* YYERROR_VERBOSE */
- yyerror ("syntax error");
+ yyerror("parse error");
}
-
+ goto yyerrlab1;
+yyerrlab1: /* here on error raised explicitly by an action */
if (yyerrstatus == 3)
{
- /* If just tried and failed to reuse lookahead token after an
- error, discard it. */
+ /* if just tried and failed to reuse lookahead token after an error, discard it. */
- if (yychar <= YYEOF)
- {
- /* If at end of input, pop the error token,
- then the rest of the stack, then return failure. */
- if (yychar == YYEOF)
- for (;;)
- {
- YYPOPSTACK;
- if (yyssp == yyss)
- YYABORT;
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
- yydestruct (yystos[*yyssp], yyvsp);
- }
- }
- else
- {
- YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
- yydestruct (yytoken, &yylval);
- yychar = YYEMPTY;
+ /* return failure if at end of input */
+ if (yychar == YYEOF)
+ YYABORT;
- }
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Discarding token %d (%s).\n", yychar, yytname[yychar1]);
+#endif
+
+ yychar = YYEMPTY;
}
- /* Else will try to reuse lookahead token after shifting the error
- token. */
- goto yyerrlab1;
+ /* Else will try to reuse lookahead token
+ after shifting the error token. */
+ yyerrstatus = 3; /* Each real token shifted decrements this */
-/*---------------------------------------------------.
-| yyerrorlab -- error raised explicitly by YYERROR. |
-`---------------------------------------------------*/
-yyerrorlab:
+ goto yyerrhandle;
-#ifdef __GNUC__
- /* Pacify GCC when the user code never invokes YYERROR and the label
- yyerrorlab therefore never appears in user code. */
- if (0)
- goto yyerrorlab;
-#endif
+yyerrdefault: /* current state does not do anything special for the error token. */
- yyvsp -= yylen;
- yyssp -= yylen;
- yystate = *yyssp;
- goto yyerrlab1;
+#if 0
+ /* This is wrong; only states that explicitly want error tokens
+ should shift them. */
+ yyn = yydefact[yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/
+ if (yyn) goto yydefault;
+#endif
+yyerrpop: /* pop the current state because it cannot handle the error token */
-/*-------------------------------------------------------------.
-| yyerrlab1 -- common code for both syntax error and YYERROR. |
-`-------------------------------------------------------------*/
-yyerrlab1:
- yyerrstatus = 3; /* Each real token shifted decrements this. */
+ if (yyssp == yyss) YYABORT;
+ yyvsp--;
+ yystate = *--yyssp;
+#ifdef YYLSP_NEEDED
+ yylsp--;
+#endif
- for (;;)
+#if YYDEBUG != 0
+ if (yydebug)
{
- yyn = yypact[yystate];
- if (yyn != YYPACT_NINF)
- {
- yyn += YYTERROR;
- if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
- {
- yyn = yytable[yyn];
- if (0 < yyn)
- break;
- }
- }
+ short *ssp1 = yyss - 1;
+ fprintf (stderr, "Error: state stack now");
+ while (ssp1 != yyssp)
+ fprintf (stderr, " %d", *++ssp1);
+ fprintf (stderr, "\n");
+ }
+#endif
- /* Pop the current state because it cannot handle the error token. */
- if (yyssp == yyss)
- YYABORT;
+yyerrhandle:
+
+ yyn = yypact[yystate];
+ if (yyn == YYFLAG)
+ goto yyerrdefault;
+
+ yyn += YYTERROR;
+ if (yyn < 0 || yyn > YYLAST || yycheck[yyn] != YYTERROR)
+ goto yyerrdefault;
- YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
- yydestruct (yystos[yystate], yyvsp);
- YYPOPSTACK;
- yystate = *yyssp;
- YY_STACK_PRINT (yyss, yyssp);
+ yyn = yytable[yyn];
+ if (yyn < 0)
+ {
+ if (yyn == YYFLAG)
+ goto yyerrpop;
+ yyn = -yyn;
+ goto yyreduce;
}
+ else if (yyn == 0)
+ goto yyerrpop;
if (yyn == YYFINAL)
YYACCEPT;
- YYDPRINTF ((stderr, "Shifting error token, "));
+#if YYDEBUG != 0
+ if (yydebug)
+ fprintf(stderr, "Shifting error token, ");
+#endif
*++yyvsp = yylval;
-
+#ifdef YYLSP_NEEDED
+ *++yylsp = yylloc;
+#endif
yystate = yyn;
goto yynewstate;
+ yyacceptlab:
+ /* YYACCEPT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
+#endif
+ }
+ return 0;
-/*-------------------------------------.
-| yyacceptlab -- YYACCEPT comes here. |
-`-------------------------------------*/
-yyacceptlab:
- yyresult = 0;
- goto yyreturn;
-
-/*-----------------------------------.
-| yyabortlab -- YYABORT comes here. |
-`-----------------------------------*/
-yyabortlab:
- yyresult = 1;
- goto yyreturn;
-
-#ifndef yyoverflow
-/*----------------------------------------------.
-| yyoverflowlab -- parser overflow comes here. |
-`----------------------------------------------*/
-yyoverflowlab:
- yyerror ("parser stack overflow");
- yyresult = 2;
- /* Fall through. */
-#endif
-
-yyreturn:
-#ifndef yyoverflow
- if (yyss != yyssa)
- YYSTACK_FREE (yyss);
+ yyabortlab:
+ /* YYABORT comes here. */
+ if (yyfree_stacks)
+ {
+ free (yyss);
+ free (yyvs);
+#ifdef YYLSP_NEEDED
+ free (yyls);
#endif
- return yyresult;
+ }
+ return 1;
}
-
-
-#line 2275 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
+#line 2406 "/Users/bocchino/llvm/obj/../src/lib/AsmParser/llvmAsmParser.y"
int yyerror(const char *ErrorMsg) {
std::string where
@@ -4587,4 +4227,3 @@
ThrowException(errMsg);
return 0;
}
-
Index: llvm/lib/AsmParser/llvmAsmParser.h
diff -u llvm/lib/AsmParser/llvmAsmParser.h:1.9 llvm/lib/AsmParser/llvmAsmParser.h:1.9.2.1
--- llvm/lib/AsmParser/llvmAsmParser.h:1.9 Sat Aug 27 13:50:38 2005
+++ llvm/lib/AsmParser/llvmAsmParser.h Tue Oct 18 14:21:56 2005
@@ -1,225 +1,4 @@
-/* A Bison parser, made by GNU Bison 1.875c. */
-
-/* Skeleton parser for Yacc-like parsing with Bison,
- Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330,
- Boston, MA 02111-1307, USA. */
-
-/* As a special exception, when this file is copied by Bison into a
- Bison output file, you may use that output file without restriction.
- This special exception was added by the Free Software Foundation
- in version 1.24 of Bison. */
-
-/* Tokens. */
-#ifndef YYTOKENTYPE
-# define YYTOKENTYPE
- /* Put the tokens into the symbol table, so that GDB and other debuggers
- know about them. */
- enum yytokentype {
- ESINT64VAL = 258,
- EUINT64VAL = 259,
- SINTVAL = 260,
- UINTVAL = 261,
- FPVAL = 262,
- VOID = 263,
- BOOL = 264,
- SBYTE = 265,
- UBYTE = 266,
- SHORT = 267,
- USHORT = 268,
- INT = 269,
- UINT = 270,
- LONG = 271,
- ULONG = 272,
- FLOAT = 273,
- DOUBLE = 274,
- TYPE = 275,
- LABEL = 276,
- VAR_ID = 277,
- LABELSTR = 278,
- STRINGCONSTANT = 279,
- IMPLEMENTATION = 280,
- ZEROINITIALIZER = 281,
- TRUETOK = 282,
- FALSETOK = 283,
- BEGINTOK = 284,
- ENDTOK = 285,
- DECLARE = 286,
- GLOBAL = 287,
- CONSTANT = 288,
- VOLATILE = 289,
- TO = 290,
- DOTDOTDOT = 291,
- NULL_TOK = 292,
- UNDEF = 293,
- CONST = 294,
- INTERNAL = 295,
- LINKONCE = 296,
- WEAK = 297,
- APPENDING = 298,
- OPAQUE = 299,
- NOT = 300,
- EXTERNAL = 301,
- TARGET = 302,
- TRIPLE = 303,
- ENDIAN = 304,
- POINTERSIZE = 305,
- LITTLE = 306,
- BIG = 307,
- DEPLIBS = 308,
- CALL = 309,
- TAIL = 310,
- CC_TOK = 311,
- CCC_TOK = 312,
- FASTCC_TOK = 313,
- COLDCC_TOK = 314,
- RET = 315,
- BR = 316,
- SWITCH = 317,
- INVOKE = 318,
- UNWIND = 319,
- UNREACHABLE = 320,
- ADD = 321,
- SUB = 322,
- MUL = 323,
- DIV = 324,
- REM = 325,
- AND = 326,
- OR = 327,
- XOR = 328,
- SETLE = 329,
- SETGE = 330,
- SETLT = 331,
- SETGT = 332,
- SETEQ = 333,
- SETNE = 334,
- MALLOC = 335,
- ALLOCA = 336,
- FREE = 337,
- LOAD = 338,
- STORE = 339,
- GETELEMENTPTR = 340,
- PHI_TOK = 341,
- CAST = 342,
- SELECT = 343,
- SHL = 344,
- SHR = 345,
- VAARG = 346,
- VAARG_old = 347,
- VANEXT_old = 348
- };
-#endif
-#define ESINT64VAL 258
-#define EUINT64VAL 259
-#define SINTVAL 260
-#define UINTVAL 261
-#define FPVAL 262
-#define VOID 263
-#define BOOL 264
-#define SBYTE 265
-#define UBYTE 266
-#define SHORT 267
-#define USHORT 268
-#define INT 269
-#define UINT 270
-#define LONG 271
-#define ULONG 272
-#define FLOAT 273
-#define DOUBLE 274
-#define TYPE 275
-#define LABEL 276
-#define VAR_ID 277
-#define LABELSTR 278
-#define STRINGCONSTANT 279
-#define IMPLEMENTATION 280
-#define ZEROINITIALIZER 281
-#define TRUETOK 282
-#define FALSETOK 283
-#define BEGINTOK 284
-#define ENDTOK 285
-#define DECLARE 286
-#define GLOBAL 287
-#define CONSTANT 288
-#define VOLATILE 289
-#define TO 290
-#define DOTDOTDOT 291
-#define NULL_TOK 292
-#define UNDEF 293
-#define CONST 294
-#define INTERNAL 295
-#define LINKONCE 296
-#define WEAK 297
-#define APPENDING 298
-#define OPAQUE 299
-#define NOT 300
-#define EXTERNAL 301
-#define TARGET 302
-#define TRIPLE 303
-#define ENDIAN 304
-#define POINTERSIZE 305
-#define LITTLE 306
-#define BIG 307
-#define DEPLIBS 308
-#define CALL 309
-#define TAIL 310
-#define CC_TOK 311
-#define CCC_TOK 312
-#define FASTCC_TOK 313
-#define COLDCC_TOK 314
-#define RET 315
-#define BR 316
-#define SWITCH 317
-#define INVOKE 318
-#define UNWIND 319
-#define UNREACHABLE 320
-#define ADD 321
-#define SUB 322
-#define MUL 323
-#define DIV 324
-#define REM 325
-#define AND 326
-#define OR 327
-#define XOR 328
-#define SETLE 329
-#define SETGE 330
-#define SETLT 331
-#define SETGT 332
-#define SETEQ 333
-#define SETNE 334
-#define MALLOC 335
-#define ALLOCA 336
-#define FREE 337
-#define LOAD 338
-#define STORE 339
-#define GETELEMENTPTR 340
-#define PHI_TOK 341
-#define CAST 342
-#define SELECT 343
-#define SHL 344
-#define SHR 345
-#define VAARG 346
-#define VAARG_old 347
-#define VANEXT_old 348
-
-
-
-
-#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED)
-#line 865 "/proj/llvm/build/../llvm/lib/AsmParser/llvmAsmParser.y"
-typedef union YYSTYPE {
+typedef union {
llvm::Module *ModuleVal;
llvm::Function *FunctionVal;
std::pair<llvm::PATypeHolder*, char*> *ArgVal;
@@ -258,14 +37,114 @@
llvm::Instruction::OtherOps OtherOpVal;
llvm::Module::Endianness Endianness;
} YYSTYPE;
-/* Line 1275 of yacc.c. */
-#line 263 "llvmAsmParser.tab.h"
-# define yystype YYSTYPE /* obsolescent; will be withdrawn */
-# define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
-#endif
-
-extern YYSTYPE llvmAsmlval;
-
+#define ESINT64VAL 257
+#define EUINT64VAL 258
+#define SINTVAL 259
+#define UINTVAL 260
+#define FPVAL 261
+#define VOID 262
+#define BOOL 263
+#define SBYTE 264
+#define UBYTE 265
+#define SHORT 266
+#define USHORT 267
+#define INT 268
+#define UINT 269
+#define LONG 270
+#define ULONG 271
+#define FLOAT 272
+#define DOUBLE 273
+#define TYPE 274
+#define LABEL 275
+#define VAR_ID 276
+#define LABELSTR 277
+#define STRINGCONSTANT 278
+#define IMPLEMENTATION 279
+#define ZEROINITIALIZER 280
+#define TRUETOK 281
+#define FALSETOK 282
+#define BEGINTOK 283
+#define ENDTOK 284
+#define DECLARE 285
+#define GLOBAL 286
+#define CONSTANT 287
+#define VOLATILE 288
+#define FIXED 289
+#define TO 290
+#define DOTDOTDOT 291
+#define NULL_TOK 292
+#define UNDEF 293
+#define CONST 294
+#define INTERNAL 295
+#define LINKONCE 296
+#define WEAK 297
+#define APPENDING 298
+#define OPAQUE 299
+#define NOT 300
+#define EXTERNAL 301
+#define TARGET 302
+#define TRIPLE 303
+#define ENDIAN 304
+#define POINTERSIZE 305
+#define LITTLE 306
+#define BIG 307
+#define DEPLIBS 308
+#define CALL 309
+#define TAIL 310
+#define CC_TOK 311
+#define CCC_TOK 312
+#define FASTCC_TOK 313
+#define COLDCC_TOK 314
+#define VECTOR 315
+#define OF 316
+#define RET 317
+#define BR 318
+#define SWITCH 319
+#define INVOKE 320
+#define UNWIND 321
+#define UNREACHABLE 322
+#define ADD 323
+#define SUB 324
+#define MUL 325
+#define DIV 326
+#define REM 327
+#define AND 328
+#define OR 329
+#define XOR 330
+#define SETLE 331
+#define SETGE 332
+#define SETLT 333
+#define SETGT 334
+#define SETEQ 335
+#define SETNE 336
+#define VSETLE 337
+#define VSETGE 338
+#define VSETLT 339
+#define VSETGT 340
+#define VSETEQ 341
+#define VSETNE 342
+#define MALLOC 343
+#define ALLOCA 344
+#define FREE 345
+#define LOAD 346
+#define STORE 347
+#define GETELEMENTPTR 348
+#define PHI_TOK 349
+#define CAST 350
+#define SELECT 351
+#define VSELECT 352
+#define SHL 353
+#define SHR 354
+#define VAARG 355
+#define VGATHER 356
+#define VIMM 357
+#define VSCATTER 358
+#define EXTRACT 359
+#define EXTRACTELEMENT 360
+#define COMBINE 361
+#define COMBINEELEMENT 362
+#define VAARG_old 363
+#define VANEXT_old 364
+extern YYSTYPE llvmAsmlval;
Index: llvm/lib/AsmParser/llvmAsmParser.y
diff -u llvm/lib/AsmParser/llvmAsmParser.y:1.231 llvm/lib/AsmParser/llvmAsmParser.y:1.231.2.1
--- llvm/lib/AsmParser/llvmAsmParser.y:1.231 Fri Jun 24 13:00:40 2005
+++ llvm/lib/AsmParser/llvmAsmParser.y Tue Oct 18 14:21:56 2005
@@ -919,6 +919,7 @@
%type <BoolVal> GlobalType // GLOBAL or CONSTANT?
%type <BoolVal> OptVolatile // 'volatile' or not
%type <BoolVal> OptTailCall // TAIL CALL or plain CALL.
+%type <BoolVal> OptFixed // fixed or not
%type <Linkage> OptLinkage
%type <Endianness> BigOrLittle
@@ -950,30 +951,33 @@
%token IMPLEMENTATION ZEROINITIALIZER TRUETOK FALSETOK BEGINTOK ENDTOK
-%token DECLARE GLOBAL CONSTANT VOLATILE
+%token DECLARE GLOBAL CONSTANT VOLATILE FIXED
%token TO DOTDOTDOT NULL_TOK UNDEF CONST INTERNAL LINKONCE WEAK APPENDING
%token OPAQUE NOT EXTERNAL TARGET TRIPLE ENDIAN POINTERSIZE LITTLE BIG
%token DEPLIBS CALL TAIL
%token CC_TOK CCC_TOK FASTCC_TOK COLDCC_TOK
+%token VECTOR OF
%type <UIntVal> OptCallingConv
// Basic Block Terminating Operators
%token <TermOpVal> RET BR SWITCH INVOKE UNWIND UNREACHABLE
-// Binary Operators
-%type <BinaryOpVal> ArithmeticOps LogicalOps SetCondOps // Binops Subcatagories
+// Binary Operators
+%type <BinaryOpVal> ArithmeticOps LogicalOps SetCondOps VSetCondOps // Binops Subcategories
+
%token <BinaryOpVal> ADD SUB MUL DIV REM AND OR XOR
%token <BinaryOpVal> SETLE SETGE SETLT SETGT SETEQ SETNE // Binary Comarators
+%token <BinaryOpVal> VSETLE VSETGE VSETLT VSETGT VSETEQ VSETNE
// Memory Instructions
%token <MemOpVal> MALLOC ALLOCA FREE LOAD STORE GETELEMENTPTR
// Other Operators
%type <OtherOpVal> ShiftOps
-%token <OtherOpVal> PHI_TOK CAST SELECT SHL SHR VAARG
+%token <OtherOpVal> PHI_TOK CAST SELECT VSELECT SHL SHR VAARG
+%token <OtherOpVal> VGATHER VIMM VSCATTER EXTRACT EXTRACTELEMENT COMBINE COMBINEELEMENT
%token VAARG_old VANEXT_old //OBSOLETE
-
%start Module
%%
@@ -1000,6 +1004,7 @@
ArithmeticOps: ADD | SUB | MUL | DIV | REM;
LogicalOps : AND | OR | XOR;
SetCondOps : SETLE | SETGE | SETLT | SETGT | SETEQ | SETNE;
+VSetCondOps : VSETLE | VSETGE | VSETLT | VSETGT | VSETEQ | VSETNE;
ShiftOps : SHL | SHR;
@@ -1090,17 +1095,24 @@
$$ = new PATypeHolder(HandleUpRefs(ArrayType::get(*$4, (unsigned)$2)));
delete $4;
}
- | '<' EUINT64VAL 'x' UpRTypes '>' { // Packed array type?
- const llvm::Type* ElemTy = $4->get();
- if ((unsigned)$2 != $2) {
+
+ | '[' VECTOR OF UpRTypes ']' { // Vector type?
+ $$ = new PATypeHolder(HandleUpRefs(VectorType::get(*$4)));
+ delete $4;
+ }
+
+ | '[' VECTOR OF EUINT64VAL UpRTypes ']' { // FixedVector type?
+ const llvm::Type* ElemTy = $5->get();
+ if ((unsigned)$4 != $4) {
ThrowException("Unsigned result not equal to signed result");
}
if(!ElemTy->isPrimitiveType()) {
- ThrowException("Elemental type of a PackedType must be primitive");
+ ThrowException("Element type of a FixedVectorType must be primitive");
}
- $$ = new PATypeHolder(HandleUpRefs(PackedType::get(*$4, (unsigned)$2)));
- delete $4;
+ $$ = new PATypeHolder(HandleUpRefs(FixedVectorType::get(*$5, (unsigned)$4)));
+ delete $5;
}
+
| '{' TypeListI '}' { // Structure type?
std::vector<const Type*> Elements;
for (std::list<llvm::PATypeHolder>::iterator I = $2->begin(),
@@ -1214,16 +1226,16 @@
delete $1;
}
| Types '<' ConstVector '>' { // Nonempty unsized arr
- const PackedType *PTy = dyn_cast<PackedType>($1->get());
+ const FixedVectorType *PTy = dyn_cast<FixedVectorType>($1->get());
if (PTy == 0)
- ThrowException("Cannot make packed constant with type: '" +
+ ThrowException("Cannot make vector constant with type: '" +
(*$1)->getDescription() + "'!");
const Type *ETy = PTy->getElementType();
int NumElements = PTy->getNumElements();
// Verify that we have the correct size...
if (NumElements != -1 && NumElements != (int)$3->size())
- ThrowException("Type mismatch: constant sized packed initialized with " +
+ ThrowException("Type mismatch: constant sized vector initialized with " +
utostr($3->size()) + " arguments, but has size of " +
itostr(NumElements) + "!");
@@ -1235,7 +1247,7 @@
(*$3)[i]->getType()->getDescription() + "'.");
}
- $$ = ConstantPacked::get(PTy, *$3);
+ $$ = ConstantVector::get(PTy, *$3);
delete $1; delete $3;
}
| Types '{' ConstVector '}' {
@@ -1451,7 +1463,8 @@
| LogicalOps '(' ConstVal ',' ConstVal ')' {
if ($3->getType() != $5->getType())
ThrowException("Logical operator types must match!");
- if (!$3->getType()->isIntegral())
+ if (!$3->getType()->isIntegral() &&
+ !$3->getType()->isIntegralVector())
ThrowException("Logical operands must have integral types!");
$$ = ConstantExpr::get($1, $3, $5);
}
@@ -1463,8 +1476,10 @@
| ShiftOps '(' ConstVal ',' ConstVal ')' {
if ($5->getType() != Type::UByteTy)
ThrowException("Shift count for shift constant must be unsigned byte!");
- if (!$3->getType()->isInteger())
+ if (!$3->getType()->isInteger() &&
+ !$3->getType()->isIntegerVector()) {
ThrowException("Shift constant expression requires integer operand!");
+ }
$$ = ConstantExpr::get($1, $3, $5);
};
@@ -1758,14 +1773,14 @@
| UNDEF {
$$ = ValID::createUndef();
}
- | '<' ConstVector '>' { // Nonempty unsized packed vector
+ | '<' ConstVector '>' { // Nonempty unsized vector
const Type *ETy = (*$2)[0]->getType();
int NumElements = $2->size();
- PackedType* pt = PackedType::get(ETy, NumElements);
+ FixedVectorType* pt = FixedVectorType::get(ETy, NumElements);
PATypeHolder* PTy = new PATypeHolder(
HandleUpRefs(
- PackedType::get(
+ FixedVectorType::get(
ETy,
NumElements)
)
@@ -1779,7 +1794,7 @@
(*$2)[i]->getType()->getDescription() + "'.");
}
- $$ = ValID::create(ConstantPacked::get(pt, *$2));
+ $$ = ValID::create(ConstantVector::get(pt, *$2));
delete PTy; delete $2;
}
| ConstExpr {
@@ -1980,7 +1995,6 @@
getBBVal($6)));
};
-
ValueRefList : ResolvedVal { // Used for call statements, and memory insts...
$$ = new std::vector<Value*>();
$$->push_back($1);
@@ -2004,18 +2018,20 @@
InstVal : ArithmeticOps Types ValueRef ',' ValueRef {
if (!(*$2)->isInteger() && !(*$2)->isFloatingPoint() &&
- !isa<PackedType>((*$2).get()))
+ !isa<VectorType>((*$2).get()))
+ ThrowException("Arithmetic operator requires integer, FP, or vector operands!");
+ if(isa<FixedVectorType>((*$2).get()) && $1 == Instruction::Rem) {
ThrowException(
- "Arithmetic operator requires integer, FP, or packed operands!");
- if (isa<PackedType>((*$2).get()) && $1 == Instruction::Rem)
- ThrowException("Rem not supported on packed types!");
+ "Rem not supported on fixed vector types!"); // FIXME: Why not?!
+ }
$$ = BinaryOperator::create($1, getVal(*$2, $3), getVal(*$2, $5));
if ($$ == 0)
ThrowException("binary operator returned null!");
delete $2;
}
| LogicalOps Types ValueRef ',' ValueRef {
- if (!(*$2)->isIntegral())
+ if (!(*$2)->isIntegral() &&
+ !(*$2)->isIntegralVector())
ThrowException("Logical operator requires integral operands!");
$$ = BinaryOperator::create($1, getVal(*$2, $3), getVal(*$2, $5));
if ($$ == 0)
@@ -2023,10 +2039,12 @@
delete $2;
}
| SetCondOps Types ValueRef ',' ValueRef {
- if(isa<PackedType>((*$2).get())) {
- ThrowException(
- "PackedTypes currently not supported in setcc instructions!");
- }
+ $$ = new SetCondInst($1, getVal(*$2, $3), getVal(*$2, $5));
+ if ($$ == 0)
+ ThrowException("binary operator returned null!");
+ delete $2;
+ }
+ | VSetCondOps Types ValueRef ',' ValueRef {
$$ = new SetCondInst($1, getVal(*$2, $3), getVal(*$2, $5));
if ($$ == 0)
ThrowException("binary operator returned null!");
@@ -2047,8 +2065,9 @@
| ShiftOps ResolvedVal ',' ResolvedVal {
if ($4->getType() != Type::UByteTy)
ThrowException("Shift amount must be ubyte!");
- if (!$2->getType()->isInteger())
- ThrowException("Shift constant expression requires integer operand!");
+ if (!$2->getType()->isInteger() &&
+ !$2->getType()->isIntegerVector())
+ ThrowException("Shift requires integer operand!");
$$ = new ShiftInst($1, $2, $4);
}
| CAST ResolvedVal TO Types {
@@ -2065,6 +2084,15 @@
ThrowException("select value types should match!");
$$ = new SelectInst($2, $4, $6);
}
+ | VSELECT ResolvedVal ',' ResolvedVal ',' ResolvedVal {
+ if (!$2->getType()->isBooleanVector())
+ ThrowException("vselect condition must be boolean vector!");
+ if ($4->getType() != $6->getType())
+ ThrowException("vselect value types should match!");
+ if (!isa<VectorType>($4->getType()))
+ ThrowException("vselect value must be a vector!");
+ $$ = new VSelectInst($2, $4, $6);
+ }
| VAARG ResolvedVal ',' Types {
NewVarArgs = true;
$$ = new VAArgInst($2, *$4);
@@ -2201,6 +2229,12 @@
$$ = false;
};
+OptFixed : FIXED {
+ $$ = true;
+ }
+ | /* empty */ {
+ $$ = false;
+ };
MemoryInst : MALLOC Types {
@@ -2236,6 +2270,7 @@
$$ = new LoadInst(getVal(*$3, $4), "", $1);
delete $3;
}
+
| OptVolatile STORE ResolvedVal ',' Types ValueRef {
const PointerType *PT = dyn_cast<PointerType>($5->get());
if (!PT)
@@ -2249,6 +2284,7 @@
$$ = new StoreInst($3, getVal(*$5, $6), $1);
delete $5;
}
+
| GETELEMENTPTR Types ValueRef IndexList {
if (!isa<PointerType>($2->get()))
ThrowException("getelementptr insn requires pointer operand!");
@@ -2269,6 +2305,101 @@
(*$2)->getDescription()+ "'!");
$$ = new GetElementPtrInst(getVal(*$2, $3), *$4);
delete $2; delete $4;
+ }
+
+ | VGATHER Types ValueRef IndexList {
+ if (!isa<PointerType>($2->get()))
+ ThrowException("Can't load vector from nonpointer type: " +
+ (*$2)->getDescription());
+ if (!cast<PointerType>($2->get())->getElementType()->isPrimitiveType())
+ ThrowException("Can't create vector of non-primitive type: " +
+ (*$2)->getDescription());
+ if (!VMemoryInst::checkNumIndices(*$4))
+ ThrowException("vgather must have four indices for each array dimension!");
+ if (!VMemoryInst::checkIndexType(*$4))
+ ThrowException("vgather indices must be of type long!");
+ $$ = new VGatherInst(getVal(*$2, $3), *$4);
+ delete $2; delete $4;
+ }
+
+ | OptFixed VIMM ResolvedVal ',' ResolvedVal {
+ if ($5->getType() != Type::UIntTy)
+ ThrowException("Length of vimm must be unsigned int!");
+ $$ = new VImmInst($3, $5, $1);
+ }
+
+ | EXTRACT ResolvedVal ',' ResolvedVal ',' ResolvedVal ',' ResolvedVal {
+ if (!isa<VectorType>($2->getType()))
+ ThrowException("First operand of extract must be a vector!");
+ if ($4->getType() != Type::UIntTy)
+ ThrowException("Second operand of extract must be a uint!");
+ if ($6->getType() != Type::UIntTy)
+ ThrowException("Third operand of extract must be a uint!");
+ if ($8->getType() != Type::UIntTy)
+ ThrowException("Fourth operand of extract must be a uint!");
+ $$ = new ExtractInst($2, $4, $6, $8);
+ }
+
+ | EXTRACTELEMENT ResolvedVal ',' ResolvedVal {
+ if (!isa<VectorType>($2->getType()))
+ ThrowException("First operand of extractelement must be a vector!");
+ if ($4->getType() != Type::UIntTy)
+ ThrowException("Second operand of extractelement must be a uint!");
+ $$ = new ExtractElementInst($2, $4);
+ }
+
+ | COMBINE ResolvedVal ',' ResolvedVal ',' ResolvedVal ',' ResolvedVal {
+ if (!isa<VectorType>($2->getType()))
+ ThrowException("First operand of combine must be a vector!");
+ if (!isa<VectorType>($4->getType()))
+ ThrowException("Second operand of combine must be a vector!");
+ if ($6->getType() != Type::UIntTy)
+ ThrowException("Third operand of combine must be a uint!");
+ if ($8->getType() != Type::UIntTy)
+ ThrowException("Fourth operand of combine must be a uint!");
+ $$ = new CombineInst($2, $4, $6, $8);
+ }
+
+ | COMBINEELEMENT ResolvedVal ',' ResolvedVal ',' ResolvedVal {
+ if (!isa<VectorType>($2->getType()))
+ ThrowException("First operand of combineelement must be a vector!");
+ if ($4->getType() != cast<VectorType>($2->getType())->getElementType())
+ ThrowException("Second operand of combineelement must be vector element type!");
+ if ($6->getType() != Type::UIntTy)
+ ThrowException("Third operand of combineelement must be a uint!");
+ $$ = new CombineElementInst($2, $4, $6);
+ }
+
+ | VSCATTER ResolvedVal ',' Types ValueRef IndexList {
+ if (!isa<PointerType>($4->get()))
+ ThrowException("Can't store to a nonpointer type: " +
+ (*$4)->getDescription());
+ if (!isa<VectorType>($2->getType()))
+ ThrowException("Can't store nonvector type: " +
+ $2->getType()->getDescription());
+ // FIXME: We may change this, but for now it makes things simpler
+ // to require variable vectors in vscatters. If you need to vscatter
+ // a fixed vector, you can always cast it to a variable vector
+ // first.
+ //
+ if (isa<FixedVectorType>($2->getType()))
+ ThrowException("Can't store fixed vector type: " +
+ $2->getType()->getDescription() +
+ " cast to variable vector first");
+ const Type *ElTy = cast<PointerType>($4->get())->getElementType();
+ if (!ElTy->isPrimitiveType())
+ ThrowException("Can't create vector of non-primitive type: " +
+ ElTy->getDescription());
+ if (!VMemoryInst::checkNumIndices(*$6))
+ ThrowException("vscatter must have four indices for each array dimension!");
+ if (!VMemoryInst::checkIndexType(*$6))
+ ThrowException("vscatter indices must be of type long!");
+ const VectorType *VT = cast<VectorType>($2->getType());
+ if (VT->getElementType() != ElTy)
+ ThrowException("Can't store '" + $2->getType()->getDescription() +
+ "' into space of type '" + VT->getDescription() + "'!");
+ $$ = new VScatterInst($2, getVal(*$4, $5), *$6);
+ delete $4; delete $6;
};
More information about the llvm-commits
mailing list