diff options
author | Anton Korobeynikov <asl@math.spbu.ru> | 2006-09-17 20:25:45 +0000 |
---|---|---|
committer | Anton Korobeynikov <asl@math.spbu.ru> | 2006-09-17 20:25:45 +0000 |
commit | bcb9770efe409f3291ce21269904744e7bf3397b (patch) | |
tree | 88414cb50a458549c4b76bc1f5c7b33cad02f991 | |
parent | 2f463865c2f03b8835e35d3499fcd95eed922bc6 (diff) |
Added some eye-candy for Subtarget type checking
Added X86 StdCall & FastCall calling conventions. Codegen will follow.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30446 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | docs/CodeGenerator.html | 20 | ||||
-rw-r--r-- | include/llvm/CallingConv.h | 25 | ||||
-rw-r--r-- | lib/AsmParser/Lexer.cpp.cvs | 1015 | ||||
-rw-r--r-- | lib/AsmParser/Lexer.l | 2 | ||||
-rw-r--r-- | lib/AsmParser/Lexer.l.cvs | 2 | ||||
-rw-r--r-- | lib/AsmParser/llvmAsmParser.cpp.cvs | 2088 | ||||
-rw-r--r-- | lib/AsmParser/llvmAsmParser.h.cvs | 154 | ||||
-rw-r--r-- | lib/AsmParser/llvmAsmParser.y | 15 | ||||
-rw-r--r-- | lib/AsmParser/llvmAsmParser.y.cvs | 15 | ||||
-rw-r--r-- | lib/Target/CBackend/CBackend.cpp | 10 | ||||
-rw-r--r-- | lib/Target/CBackend/Writer.cpp | 10 | ||||
-rw-r--r-- | lib/Target/X86/README.txt | 26 | ||||
-rwxr-xr-x | lib/Target/X86/X86ATTAsmPrinter.cpp | 2 | ||||
-rw-r--r-- | lib/Target/X86/X86AsmPrinter.cpp | 4 | ||||
-rw-r--r-- | lib/Target/X86/X86ISelDAGToDAG.cpp | 2 | ||||
-rw-r--r-- | lib/Target/X86/X86ISelLowering.cpp | 2 | ||||
-rw-r--r-- | lib/Target/X86/X86RegisterInfo.cpp | 4 | ||||
-rw-r--r-- | lib/VMCore/Verifier.cpp | 1 |
18 files changed, 1774 insertions, 1623 deletions
diff --git a/docs/CodeGenerator.html b/docs/CodeGenerator.html index f095e36312..405c57b345 100644 --- a/docs/CodeGenerator.html +++ b/docs/CodeGenerator.html @@ -1636,6 +1636,7 @@ that people test.</p> <li><b>i386-unknown-freebsd5.3</b> - FreeBSD 5.3</li> <li><b>i686-pc-cygwin</b> - Cygwin on Win32</li> <li><b>i686-pc-mingw32</b> - MingW on Win32</li> +<li><b>i386-pc-mingw32msvc</b> - MingW crosscompiler on Linux</li> <li><b>i686-apple-darwin*</b> - Apple Darwin on X86</li> </ul> @@ -1643,6 +1644,25 @@ that people test.</p> <!-- _______________________________________________________________________ --> <div class="doc_subsubsection"> + <a name="x86_cc">X86 Calling Conventions supported</a> +</div> + + +<div class="doc_text"> + +<p>The folowing target-specific calling conventions are known to backend:</p> + +<ul> +<li><b>x86_StdCall</b> - stdcall calling convention seen on Microsoft Windows +platform (CC ID = 64).</li> +<li><b>x86_FastCall</b> - fastcall calling convention seen on Microsoft Windows +platform (CC ID = 65).</li> +</ul> + +</div> + +<!-- _______________________________________________________________________ --> +<div class="doc_subsubsection"> <a name="x86_memory">Representing X86 addressing modes in MachineInstrs</a> </div> diff --git a/include/llvm/CallingConv.h b/include/llvm/CallingConv.h index 2e3cceeb46..e6ffd281e6 100644 --- a/include/llvm/CallingConv.h +++ b/include/llvm/CallingConv.h @@ -24,10 +24,10 @@ namespace CallingConv { /// calling conventions. /// @brief LLVM Calling Convention Representation enum ID { - // C - The default llvm calling convention, compatible with C. This - // convention is the only calling convention that supports varargs calls. - // As with typical C calling conventions, the callee/caller have to tolerate - // certain amounts of prototype mismatch. + /// C - The default llvm calling convention, compatible with C. This + /// convention is the only calling convention that supports varargs calls. + /// As with typical C calling conventions, the callee/caller have to tolerate + /// certain amounts of prototype mismatch. C = 0, /// CSRet - C Struct Return calling convention. This convention requires @@ -42,8 +42,8 @@ namespace CallingConv { // support varargs calls, and all assume that the caller and callee // prototype exactly match. - // Fast - This calling convention attempts to make calls as fast as possible - // (e.g. by passing things in registers). + /// Fast - This calling convention attempts to make calls as fast as possible + /// (e.g. by passing things in registers). Fast = 8, // Cold - This calling convention attempts to make code in the caller as @@ -54,7 +54,18 @@ namespace CallingConv { // Target - This is the start of the target-specific calling conventions, // e.g. fastcall and thiscall on X86. - FirstTargetCC = 64 + FirstTargetCC = 64, + + /// X86_StdCall - stdcall is the calling conventions mostly used by the + /// Win32 API. It is basically the same as the C convention with the + /// difference in that the callee is responsible for popping the arguments + /// from the stack. + X86_StdCall = 64, + + /// X86_FastCall - 'fast' analog of X86_StdCall. Passes first two arguments + /// in ECX:EDX registers, others - via stack. Callee is responsible for + /// stack cleaning. + X86_FastCall = 65 }; } // End CallingConv namespace diff --git a/lib/AsmParser/Lexer.cpp.cvs b/lib/AsmParser/Lexer.cpp.cvs index 93748f9cf1..43b8d1098e 100644 --- a/lib/AsmParser/Lexer.cpp.cvs +++ b/lib/AsmParser/Lexer.cpp.cvs @@ -380,8 +380,8 @@ static void yy_fatal_error (yyconst char msg[] ); *yy_cp = '\0'; \ (yy_c_buf_p) = yy_cp; -#define YY_NUM_RULES 111 -#define YY_END_OF_BUFFER 112 +#define YY_NUM_RULES 113 +#define YY_END_OF_BUFFER 114 /* This struct is not used in this scanner, but its presence is necessary. */ struct yy_trans_info @@ -389,60 +389,63 @@ struct yy_trans_info flex_int32_t yy_verify; flex_int32_t yy_nxt; }; -static yyconst flex_int16_t yy_accept[479] = +static yyconst flex_int16_t yy_accept[501] = { 0, - 0, 0, 112, 110, 109, 109, 110, 110, 110, 110, - 110, 110, 102, 102, 1, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 110, 110, 110, 110, 110, 0, 101, 0, 99, - 98, 98, 105, 0, 103, 0, 107, 102, 0, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 84, 0, + 0, 0, 114, 112, 111, 111, 112, 112, 112, 112, + 112, 112, 104, 104, 1, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, + 112, 112, 112, 112, 112, 112, 0, 103, 0, 101, + 100, 100, 107, 0, 105, 0, 109, 104, 0, 1, + 0, 0, 0, 0, 0, 0, 0, 0, 86, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 66, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 101, 98, 98, 107, 20, 107, 0, 108, 60, - 0, 0, 65, 0, 38, 0, 33, 0, 0, 0, - 41, 0, 0, 0, 0, 0, 63, 0, 0, 3, + 0, 0, 103, 100, 100, 109, 20, 109, 0, 110, + 62, 0, 0, 67, 0, 38, 0, 33, 0, 0, + 0, 41, 0, 0, 0, 0, 0, 65, 0, 0, + 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, + 64, 25, 0, 0, 76, 0, 66, 85, 0, 0, + 0, 0, 0, 80, 0, 81, 0, 0, 0, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 51, 0, 0, 0, 0, 0, 0, 0, 0, 62, - 25, 0, 0, 74, 0, 64, 83, 0, 0, 0, - 0, 0, 78, 0, 79, 0, 0, 0, 61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 67, - - 0, 100, 107, 0, 0, 0, 107, 0, 0, 0, - 0, 46, 75, 76, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 92, - 53, 0, 0, 22, 0, 0, 104, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, - 0, 0, 4, 58, 0, 52, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 45, 0, 11, 0, 107, - 35, 0, 0, 2, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 0, 55, 0, - - 0, 0, 0, 0, 0, 57, 0, 0, 0, 0, - 0, 0, 47, 0, 0, 69, 73, 71, 72, 70, - 68, 49, 0, 0, 93, 0, 0, 0, 48, 54, - 21, 0, 0, 0, 0, 0, 81, 0, 0, 0, - 90, 0, 44, 0, 0, 0, 0, 0, 0, 56, - 30, 24, 0, 0, 43, 0, 7, 0, 0, 0, - 86, 0, 32, 89, 37, 59, 0, 0, 77, 0, - 0, 85, 27, 28, 0, 0, 87, 50, 82, 80, - 0, 0, 0, 0, 42, 6, 29, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, - - 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, - 17, 0, 0, 0, 0, 9, 10, 0, 0, 0, - 0, 0, 34, 0, 12, 14, 13, 0, 0, 0, + + 0, 69, 0, 102, 109, 0, 0, 0, 109, 0, + 0, 0, 0, 48, 77, 78, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 93, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 94, 55, 0, 0, 22, 0, 0, 106, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 26, 0, 0, 4, 60, 0, 54, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 47, 0, 11, + 0, 0, 109, 35, 0, 0, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, + + 0, 57, 0, 0, 0, 0, 0, 0, 59, 0, + 0, 0, 0, 0, 0, 49, 0, 0, 71, 75, + 73, 74, 72, 70, 51, 0, 0, 95, 0, 0, + 0, 50, 56, 21, 0, 0, 0, 0, 0, 83, + 0, 0, 0, 0, 0, 92, 0, 44, 0, 0, + 0, 0, 0, 0, 58, 30, 24, 0, 0, 43, + 0, 7, 0, 0, 0, 88, 0, 32, 91, 37, + 61, 0, 0, 79, 0, 0, 87, 27, 28, 0, + 0, 89, 52, 84, 82, 0, 0, 0, 0, 0, + 0, 42, 6, 29, 0, 0, 0, 0, 0, 0, + + 0, 0, 0, 0, 0, 36, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 8, 0, 0, 0, 17, + 0, 0, 0, 0, 9, 10, 0, 0, 0, 0, + 0, 34, 0, 0, 0, 12, 14, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 39, 0, 0, 0, 15, - 0, 0, 0, 0, 31, 0, 0, 88, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 94, 0, 96, - 97, 16, 0, 95, 18, 0, 19, 0 + 0, 0, 0, 0, 0, 0, 0, 0, 39, 0, + 0, 0, 0, 0, 15, 0, 0, 0, 0, 31, + 0, 0, 90, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 96, 0, 98, 99, + 16, 0, 45, 0, 97, 18, 46, 0, 19, 0 + } ; static yyconst flex_int32_t yy_ec[256] = @@ -452,15 +455,15 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 1, 5, 6, 1, 1, 1, 1, 1, 7, 1, 8, 9, 1, 10, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 12, 13, 1, - 1, 1, 1, 1, 14, 14, 14, 14, 15, 14, + 11, 11, 11, 12, 11, 13, 11, 14, 15, 1, + 1, 1, 1, 1, 16, 16, 16, 16, 17, 16, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 1, 1, 1, 1, 16, 1, 17, 18, 19, 20, + 1, 1, 1, 1, 18, 1, 19, 20, 21, 22, - 21, 22, 23, 24, 25, 5, 26, 27, 28, 29, - 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, - 40, 41, 1, 1, 1, 1, 1, 1, 1, 1, + 23, 24, 25, 26, 27, 5, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 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, @@ -477,374 +480,402 @@ static yyconst flex_int32_t yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst flex_int32_t yy_meta[42] = +static yyconst flex_int32_t yy_meta[44] = { 0, 1, 1, 2, 1, 3, 1, 1, 3, 3, 3, - 3, 4, 1, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 4, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3 + 3, 3, 3 } ; -static yyconst flex_int16_t yy_base[484] = +static yyconst flex_int16_t yy_base[506] = { 0, - 0, 0, 998, 999, 999, 999, 993, 984, 34, 36, - 38, 42, 46, 50, 0, 52, 57, 54, 68, 62, - 80, 82, 87, 93, 94, 40, 88, 84, 56, 121, - 108, 150, 105, 115, 114, 116, 991, 999, 982, 999, - 0, 139, 141, 144, 154, 120, 159, 176, 179, 0, - 55, 180, 92, 164, 155, 135, 149, 190, 981, 191, - 192, 194, 196, 197, 198, 200, 201, 161, 203, 205, - 212, 122, 214, 218, 202, 219, 222, 229, 233, 224, - 232, 234, 231, 243, 248, 980, 247, 251, 245, 235, - 255, 256, 257, 259, 266, 270, 269, 273, 979, 274, - - 277, 265, 280, 285, 291, 41, 301, 295, 302, 288, - 290, 978, 0, 315, 317, 977, 324, 336, 0, 976, - 289, 319, 975, 321, 974, 325, 973, 328, 329, 339, - 972, 340, 341, 342, 345, 346, 971, 355, 347, 352, - 349, 350, 354, 356, 367, 357, 369, 374, 370, 373, - 375, 377, 381, 383, 386, 388, 387, 389, 391, 970, - 969, 392, 31, 968, 393, 967, 966, 418, 399, 406, - 394, 430, 965, 411, 964, 402, 405, 413, 963, 408, - 418, 435, 400, 440, 442, 436, 437, 438, 443, 444, - 448, 450, 453, 462, 454, 456, 458, 464, 468, 962, - - 470, 999, 474, 491, 480, 493, 496, 480, 474, 484, - 485, 961, 960, 959, 498, 476, 500, 503, 504, 506, - 509, 507, 510, 511, 513, 514, 512, 520, 516, 958, - 526, 524, 528, 531, 532, 535, 536, 538, 540, 957, - 956, 542, 543, 955, 544, 546, 0, 545, 548, 550, - 547, 562, 563, 564, 559, 565, 570, 574, 577, 954, - 578, 566, 953, 952, 580, 951, 588, 590, 591, 592, - 576, 594, 595, 596, 598, 950, 601, 949, 605, 604, - 948, 606, 609, 947, 612, 608, 614, 610, 620, 622, - 623, 627, 628, 629, 630, 632, 946, 633, 945, 634, - - 635, 637, 638, 646, 648, 944, 649, 651, 655, 656, - 658, 659, 943, 654, 664, 942, 941, 940, 939, 938, - 937, 936, 669, 670, 935, 671, 673, 676, 934, 933, - 932, 674, 675, 678, 677, 679, 931, 681, 688, 689, - 930, 692, 929, 691, 695, 694, 693, 698, 699, 928, - 927, 926, 707, 709, 925, 710, 924, 713, 714, 719, - 923, 718, 922, 921, 920, 919, 720, 721, 918, 727, - 729, 917, 916, 915, 730, 728, 914, 913, 912, 911, - 731, 734, 733, 735, 910, 907, 898, 742, 744, 745, - 737, 748, 751, 749, 753, 754, 755, 756, 896, 759, - - 761, 762, 772, 773, 774, 775, 895, 776, 779, 780, - 894, 781, 783, 785, 792, 893, 891, 790, 795, 787, - 791, 805, 890, 807, 888, 887, 884, 788, 809, 798, - 810, 812, 813, 816, 814, 817, 819, 822, 824, 825, - 826, 829, 831, 835, 832, 882, 833, 839, 836, 881, - 847, 843, 846, 850, 880, 853, 849, 876, 857, 860, - 854, 861, 863, 864, 865, 868, 869, 644, 872, 518, - 401, 292, 874, 207, 170, 878, 166, 999, 911, 913, - 137, 917, 99 + 0, 0, 1090, 1091, 1091, 1091, 1085, 1074, 36, 40, + 44, 50, 56, 62, 0, 63, 66, 81, 89, 47, + 90, 91, 76, 96, 108, 49, 97, 110, 68, 137, + 120, 168, 112, 115, 135, 127, 1083, 1091, 1072, 1091, + 0, 158, 173, 180, 196, 70, 201, 216, 221, 0, + 121, 152, 123, 139, 166, 140, 162, 184, 1071, 222, + 180, 31, 186, 232, 69, 144, 209, 234, 236, 225, + 188, 241, 119, 235, 189, 238, 246, 245, 249, 255, + 248, 257, 258, 264, 269, 1070, 265, 267, 271, 273, + 275, 276, 277, 282, 284, 304, 293, 296, 1069, 305, + + 288, 285, 297, 308, 311, 315, 316, 323, 325, 147, + 322, 328, 1068, 0, 343, 348, 1067, 362, 379, 0, + 1066, 352, 335, 1065, 355, 1064, 354, 1063, 366, 368, + 289, 1062, 348, 369, 380, 370, 382, 1061, 386, 384, + 374, 392, 393, 388, 394, 398, 396, 400, 406, 404, + 407, 411, 408, 413, 415, 418, 423, 421, 424, 425, + 1060, 1059, 427, 428, 1058, 430, 1057, 1056, 454, 435, + 443, 436, 465, 1055, 433, 1054, 434, 437, 467, 1053, + 455, 468, 470, 331, 475, 477, 469, 471, 472, 487, + 473, 491, 485, 479, 499, 493, 501, 495, 502, 505, + + 508, 1052, 506, 1091, 519, 533, 537, 541, 546, 547, + 513, 548, 549, 1051, 1050, 1049, 550, 551, 552, 553, + 554, 555, 509, 556, 563, 559, 560, 572, 561, 562, + 573, 1048, 576, 579, 580, 583, 585, 586, 587, 590, + 588, 1047, 1046, 592, 594, 1045, 593, 595, 0, 598, + 599, 613, 601, 605, 615, 616, 611, 511, 622, 623, + 619, 1044, 627, 629, 1043, 1042, 630, 1041, 635, 633, + 637, 640, 641, 642, 647, 648, 649, 1040, 651, 1039, + 655, 653, 673, 1038, 652, 654, 1037, 660, 656, 673, + 664, 675, 678, 679, 682, 683, 684, 686, 687, 1036, + + 688, 1035, 690, 689, 692, 693, 696, 701, 1034, 702, + 705, 711, 706, 712, 717, 1033, 709, 720, 1032, 1031, + 1030, 1029, 1028, 1027, 1026, 722, 723, 1025, 724, 725, + 729, 1024, 1023, 1022, 728, 732, 734, 730, 735, 1021, + 731, 744, 740, 741, 749, 1020, 747, 1019, 750, 752, + 756, 755, 758, 761, 1018, 1017, 1016, 768, 762, 1015, + 770, 1014, 769, 771, 782, 1013, 774, 1012, 1011, 1010, + 1009, 763, 775, 1008, 788, 783, 1007, 1006, 1005, 789, + 791, 1004, 1003, 1002, 1001, 790, 794, 796, 795, 798, + 799, 1000, 999, 998, 800, 806, 807, 809, 801, 811, + + 812, 813, 817, 814, 818, 995, 819, 825, 826, 830, + 836, 837, 839, 838, 841, 986, 842, 843, 847, 984, + 848, 850, 849, 853, 983, 982, 851, 859, 869, 855, + 871, 981, 873, 874, 875, 979, 978, 977, 878, 881, + 882, 884, 885, 857, 887, 891, 893, 892, 895, 896, + 897, 898, 899, 903, 904, 908, 909, 910, 975, 913, + 916, 919, 920, 921, 971, 923, 924, 926, 928, 969, + 930, 929, 968, 931, 937, 940, 941, 943, 949, 950, + 951, 952, 954, 955, 956, 957, 858, 959, 854, 597, + 523, 963, 440, 965, 438, 334, 286, 966, 205, 1091, + + 1001, 1003, 214, 1007, 83 } ; -static yyconst flex_int16_t yy_def[484] = +static yyconst flex_int16_t yy_def[506] = { 0, - 478, 1, 478, 478, 478, 478, 479, 480, 481, 478, - 480, 480, 480, 480, 482, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 479, 478, 480, 478, - 483, 483, 478, 478, 480, 480, 480, 480, 480, 482, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 478, 483, 483, 478, 480, 480, 480, 49, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 49, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - - 480, 478, 478, 478, 478, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 168, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 478, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, - 480, 480, 480, 480, 480, 480, 480, 0, 478, 478, - 478, 478, 478 + 500, 1, 500, 500, 500, 500, 501, 502, 503, 500, + 502, 502, 502, 502, 504, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 501, 500, 502, 500, + 505, 505, 500, 500, 502, 502, 502, 502, 502, 504, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 500, 505, 505, 500, 502, 502, 502, 49, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 49, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + + 502, 502, 502, 500, 500, 500, 500, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 169, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 500, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 502, + 502, 502, 502, 502, 502, 502, 502, 502, 502, 0, + + 500, 500, 500, 500, 500 } ; -static yyconst flex_int16_t yy_nxt[1041] = +static yyconst flex_int16_t yy_nxt[1135] = { 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, 40, 40, 40, 47, 48, 48, 40, 47, 48, - 48, 40, 245, 40, 193, 40, 40, 40, 40, 83, - 60, 51, 61, 40, 120, 84, 89, 56, 52, 40, - 53, 57, 54, 62, 49, 55, 58, 63, 64, 59, - 68, 40, 65, 40, 66, 40, 70, 67, 40, 40, - - 69, 113, 73, 40, 40, 40, 71, 87, 74, 77, - 80, 123, 72, 88, 75, 76, 40, 78, 85, 40, - 86, 107, 79, 81, 98, 40, 40, 40, 116, 82, - 90, 40, 40, 40, 108, 109, 111, 99, 91, 41, - 100, 92, 146, 110, 93, 94, 40, 101, 114, 114, - 43, 43, 115, 44, 44, 95, 96, 126, 97, 90, - 40, 40, 47, 45, 45, 40, 40, 102, 117, 117, - 40, 127, 40, 118, 103, 40, 104, 40, 105, 118, - 140, 40, 125, 106, 47, 48, 48, 40, 119, 119, - 40, 40, 119, 119, 124, 119, 119, 119, 119, 119, - - 119, 40, 40, 40, 121, 40, 122, 40, 40, 40, - 131, 40, 40, 40, 40, 135, 40, 129, 40, 128, - 132, 141, 133, 40, 130, 40, 138, 136, 134, 40, - 40, 143, 149, 40, 137, 40, 139, 142, 144, 153, - 40, 145, 40, 40, 40, 40, 40, 148, 147, 156, - 158, 159, 150, 151, 40, 152, 40, 154, 40, 40, - 160, 157, 40, 155, 163, 161, 40, 40, 40, 162, - 40, 164, 166, 168, 170, 165, 40, 40, 177, 167, - 40, 40, 171, 173, 40, 40, 174, 179, 40, 175, - 172, 40, 176, 180, 169, 178, 40, 181, 183, 40, - - 40, 40, 40, 40, 186, 182, 40, 185, 187, 184, - 189, 208, 40, 40, 188, 190, 194, 195, 199, 197, - 200, 198, 201, 191, 114, 114, 203, 203, 192, 196, - 40, 204, 40, 117, 117, 40, 40, 204, 118, 40, - 40, 210, 205, 206, 118, 207, 207, 40, 209, 211, - 40, 40, 40, 40, 212, 213, 40, 40, 40, 215, - 40, 40, 217, 40, 222, 40, 40, 40, 40, 224, - 225, 218, 219, 214, 216, 220, 223, 230, 40, 221, - 40, 40, 226, 229, 40, 40, 40, 227, 40, 231, - 228, 232, 40, 234, 40, 235, 233, 40, 40, 40, - - 40, 237, 40, 40, 40, 40, 236, 240, 238, 241, - 40, 40, 40, 40, 250, 242, 40, 40, 244, 40, - 239, 246, 40, 256, 40, 257, 243, 247, 247, 40, - 262, 247, 247, 248, 247, 247, 247, 247, 247, 247, - 249, 40, 259, 255, 260, 258, 40, 40, 40, 40, - 251, 40, 252, 40, 40, 40, 253, 261, 254, 40, - 263, 40, 264, 268, 40, 40, 267, 40, 270, 40, - 265, 266, 269, 40, 271, 40, 275, 276, 273, 40, - 277, 40, 272, 203, 203, 40, 274, 40, 204, 280, - 280, 40, 282, 278, 204, 40, 40, 205, 205, 279, - - 280, 280, 207, 207, 40, 207, 207, 40, 281, 40, - 286, 40, 283, 284, 40, 40, 285, 40, 40, 288, - 40, 40, 40, 40, 40, 40, 293, 40, 289, 40, - 296, 40, 297, 292, 287, 40, 291, 40, 298, 40, - 301, 294, 40, 40, 290, 295, 40, 40, 302, 40, - 299, 40, 300, 40, 40, 40, 40, 40, 40, 40, - 305, 40, 306, 303, 304, 313, 308, 307, 315, 310, - 40, 309, 314, 40, 40, 40, 40, 40, 316, 311, - 312, 40, 317, 319, 321, 40, 323, 40, 40, 40, - 324, 40, 328, 322, 325, 326, 318, 320, 327, 40, - - 329, 40, 40, 40, 334, 40, 40, 40, 333, 40, - 330, 331, 40, 280, 280, 332, 40, 40, 337, 40, - 40, 40, 341, 40, 344, 40, 335, 336, 342, 340, - 343, 40, 345, 40, 40, 339, 338, 347, 40, 40, - 40, 40, 346, 40, 40, 40, 40, 350, 40, 40, - 354, 355, 348, 349, 356, 40, 351, 40, 353, 40, - 40, 357, 40, 352, 358, 40, 40, 40, 361, 40, - 40, 363, 359, 364, 360, 40, 365, 362, 366, 367, - 40, 40, 40, 368, 40, 40, 40, 40, 40, 40, - 40, 371, 40, 376, 372, 370, 374, 377, 369, 40, - - 40, 379, 40, 40, 40, 40, 40, 373, 375, 40, - 40, 378, 381, 385, 386, 380, 383, 382, 40, 384, - 40, 40, 390, 391, 40, 40, 387, 388, 389, 40, - 40, 40, 40, 394, 395, 396, 397, 393, 40, 40, - 40, 40, 40, 392, 40, 40, 40, 400, 40, 399, - 401, 403, 398, 40, 402, 40, 40, 404, 405, 40, - 40, 406, 40, 411, 40, 40, 40, 40, 412, 407, - 40, 413, 40, 40, 408, 417, 409, 414, 421, 415, - 416, 420, 410, 40, 40, 40, 40, 40, 422, 418, - 40, 40, 40, 423, 40, 419, 40, 425, 40, 40, - - 428, 40, 40, 40, 439, 435, 40, 429, 424, 40, - 426, 430, 432, 427, 433, 434, 40, 436, 40, 431, - 40, 40, 437, 40, 40, 40, 442, 40, 40, 440, - 40, 438, 441, 40, 445, 40, 40, 40, 449, 443, - 40, 447, 40, 40, 40, 448, 40, 40, 446, 450, - 40, 454, 451, 444, 40, 455, 452, 40, 40, 458, - 40, 40, 459, 453, 40, 40, 456, 460, 40, 465, - 462, 40, 40, 457, 40, 40, 40, 461, 463, 40, - 40, 466, 464, 40, 472, 40, 468, 40, 467, 40, - 469, 40, 40, 40, 476, 40, 471, 470, 40, 40, - - 475, 40, 40, 474, 40, 40, 40, 40, 473, 40, - 477, 37, 37, 37, 37, 39, 39, 50, 40, 50, + 14, 14, 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, 43, 43, 44, + 44, 44, 44, 45, 45, 45, 45, 40, 46, 133, + 40, 134, 40, 40, 47, 48, 48, 48, 48, 40, + 47, 48, 48, 48, 48, 40, 40, 68, 117, 40, + 83, 40, 40, 40, 51, 114, 84, 69, 56, 40, + 89, 52, 57, 53, 40, 54, 49, 58, 55, 60, + + 59, 61, 40, 40, 40, 75, 76, 138, 70, 40, + 40, 64, 62, 73, 77, 65, 63, 66, 71, 74, + 67, 40, 78, 40, 72, 40, 80, 79, 40, 85, + 107, 86, 40, 40, 40, 87, 40, 109, 98, 81, + 40, 88, 121, 108, 124, 82, 90, 110, 40, 112, + 40, 99, 40, 40, 100, 148, 91, 40, 201, 92, + 40, 101, 93, 94, 127, 40, 111, 115, 115, 115, + 115, 125, 139, 95, 96, 40, 97, 90, 122, 40, + 123, 40, 43, 43, 43, 43, 128, 102, 116, 44, + 44, 44, 44, 40, 103, 126, 104, 40, 105, 40, + + 132, 40, 40, 106, 47, 45, 45, 45, 45, 40, + 118, 118, 118, 118, 40, 129, 41, 119, 40, 146, + 135, 150, 40, 119, 47, 48, 48, 48, 48, 40, + 120, 120, 120, 120, 40, 40, 120, 120, 40, 120, + 120, 120, 120, 120, 120, 40, 140, 40, 40, 40, + 130, 40, 136, 144, 40, 141, 142, 131, 40, 40, + 145, 40, 40, 147, 137, 154, 149, 157, 40, 160, + 40, 40, 143, 151, 152, 155, 153, 40, 40, 158, + 40, 156, 40, 159, 40, 161, 40, 164, 40, 40, + 40, 165, 163, 166, 162, 40, 171, 40, 40, 40, + + 167, 40, 40, 178, 172, 174, 40, 168, 175, 40, + 40, 176, 173, 169, 177, 179, 170, 40, 40, 181, + 186, 40, 182, 180, 40, 216, 187, 188, 40, 40, + 183, 184, 190, 195, 196, 40, 40, 191, 40, 189, + 194, 40, 185, 200, 40, 192, 197, 40, 40, 198, + 193, 199, 115, 115, 115, 115, 202, 205, 205, 205, + 205, 40, 203, 264, 206, 40, 211, 40, 40, 217, + 206, 118, 118, 118, 118, 40, 210, 212, 119, 40, + 213, 40, 40, 40, 119, 207, 208, 40, 209, 209, + 209, 209, 40, 40, 214, 40, 215, 40, 220, 40, + + 225, 40, 219, 224, 218, 40, 40, 40, 222, 40, + 221, 40, 223, 40, 226, 227, 231, 40, 232, 40, + 40, 40, 233, 229, 40, 234, 40, 228, 40, 236, + 230, 40, 235, 237, 40, 239, 40, 40, 40, 238, + 40, 40, 240, 40, 242, 243, 40, 40, 40, 40, + 40, 40, 244, 40, 241, 246, 40, 258, 252, 259, + 248, 247, 245, 249, 249, 249, 249, 257, 40, 249, + 249, 250, 249, 249, 249, 249, 249, 249, 40, 251, + 40, 40, 40, 40, 40, 40, 40, 253, 40, 254, + 40, 261, 40, 255, 263, 256, 262, 265, 40, 266, + + 40, 260, 269, 271, 40, 267, 40, 268, 40, 270, + 274, 273, 40, 272, 40, 40, 278, 275, 40, 40, + 279, 40, 40, 277, 40, 281, 40, 276, 205, 205, + 205, 205, 280, 285, 326, 206, 40, 282, 294, 207, + 207, 206, 283, 283, 283, 283, 283, 283, 283, 283, + 209, 209, 209, 209, 40, 209, 209, 209, 209, 40, + 40, 40, 40, 40, 40, 40, 40, 40, 40, 40, + 288, 291, 40, 40, 40, 40, 40, 284, 286, 287, + 292, 296, 301, 300, 295, 40, 40, 289, 290, 40, + 299, 297, 40, 40, 298, 293, 40, 304, 40, 40, + + 40, 40, 305, 40, 303, 40, 40, 40, 40, 302, + 40, 40, 40, 308, 40, 309, 311, 306, 40, 307, + 316, 310, 313, 312, 40, 317, 40, 320, 40, 40, + 314, 315, 40, 318, 319, 40, 40, 322, 324, 329, + 40, 321, 40, 40, 327, 328, 40, 325, 40, 330, + 40, 323, 332, 40, 40, 40, 334, 331, 336, 333, + 40, 40, 40, 335, 40, 40, 40, 40, 40, 40, < |