--- linuxsampler/trunk/src/network/lscpparser.cpp 2004/05/06 20:06:20 64 +++ linuxsampler/trunk/src/network/lscpparser.cpp 2005/05/21 01:10:12 556 @@ -1,7 +1,7 @@ -/* A Bison parser, made by GNU Bison 1.875a. */ +/* A Bison parser, made by GNU Bison 1.875d. */ /* Skeleton parser for Yacc-like parsing with Bison, - Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 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 @@ -47,114 +47,48 @@ -/* Tokens. */ -#ifndef YYTOKENTYPE -# define YYTOKENTYPE - /* Put the tokens into the symbol table, so that GDB and other debuggers - know about them. */ - enum yytokentype { - CHAR = 258, - DOTNUM = 259, - NUMBER = 260, - SP = 261, - LF = 262, - CR = 263, - ADD = 264, - GET = 265, - LOAD = 266, - REMOVE = 267, - SET = 268, - SUBSCRIBE = 269, - UNSUBSCRIBE = 270, - RESET = 271, - QUIT = 272, - CHANNEL = 273, - NOTIFICATION = 274, - AVAILABLE_ENGINES = 275, - CHANNELS = 276, - INFO = 277, - BUFFER_FILL = 278, - STREAM_COUNT = 279, - VOICE_COUNT = 280, - INSTRUMENT = 281, - ENGINE = 282, - AUDIO_OUTPUT_CHANNEL = 283, - AUDIO_OUTPUT_TYPE = 284, - MIDI_INPUT_PORT = 285, - MIDI_INPUT_CHANNEL = 286, - MIDI_INPUT_TYPE = 287, - VOLUME = 288, - BYTES = 289, - PERCENTAGE = 290, - ALSA = 291, - JACK = 292 - }; -#endif -#define CHAR 258 -#define DOTNUM 259 -#define NUMBER 260 -#define SP 261 -#define LF 262 -#define CR 263 -#define ADD 264 -#define GET 265 -#define LOAD 266 -#define REMOVE 267 -#define SET 268 -#define SUBSCRIBE 269 -#define UNSUBSCRIBE 270 -#define RESET 271 -#define QUIT 272 -#define CHANNEL 273 -#define NOTIFICATION 274 -#define AVAILABLE_ENGINES 275 -#define CHANNELS 276 -#define INFO 277 -#define BUFFER_FILL 278 -#define STREAM_COUNT 279 -#define VOICE_COUNT 280 -#define INSTRUMENT 281 -#define ENGINE 282 -#define AUDIO_OUTPUT_CHANNEL 283 -#define AUDIO_OUTPUT_TYPE 284 -#define MIDI_INPUT_PORT 285 -#define MIDI_INPUT_CHANNEL 286 -#define MIDI_INPUT_TYPE 287 -#define VOLUME 288 -#define BYTES 289 -#define PERCENTAGE 290 -#define ALSA 291 -#define JACK 292 - /* Copy the first part of user declarations. */ -#line 23 "lscp.y" +#line 27 "lscp.y" #include "lscpparser.h" #include "lscpserver.h" - -// as we need an reentrant scanner, we have to pass the pointer to the scanner with each yylex() call -#define YYLEX_PARAM ((yyparse_param_t*) yyparse_param)->pScanner +#include "lscpevent.h" // to save us typing work in the rules action definitions #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer -// clears input buffer and restarts scanner. +// clears input buffer void restart(yyparse_param_t* pparam, int& yychar); #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar) -// external reference to the main scanner function yylex() -extern YY_DECL; - -// external reference to restart the lex scanner -extern void yyrestart(FILE* input_file, yyscan_t yyscanner); - // we provide our own version of yyerror() so we don't have to link against the yacc library void yyerror(const char* s); +static char buf[1024]; // input buffer to feed the parser with new characters +static int bytes = 0; // current number of characters in the input buffer +static int ptr = 0; // current position in the input buffer + +// external reference to the function which actually reads from the socket +extern int GetLSCPCommand( void *buf, int max_size); + +// custom scanner function which reads from the socket +int yylex(YYSTYPE* yylval) { + // check if we have to read new characters + if (ptr >= bytes) { + bytes = GetLSCPCommand(buf, 1023); + ptr = 0; + if (bytes < 0) { + bytes = 0; + return 0; + } + } + return (int) buf[ptr++]; +} + /* Enabling traces. */ @@ -183,22 +117,29 @@ /* Line 214 of yacc.c. */ -#line 187 "y.tab.c" +#line 121 "y.tab.c" #if ! defined (yyoverflow) || YYERROR_VERBOSE +# ifndef YYFREE +# define YYFREE free +# endif +# ifndef YYMALLOC +# define YYMALLOC malloc +# endif + /* The parser invokes alloca or malloc; define the necessary symbols. */ -# if YYSTACK_USE_ALLOCA -# define YYSTACK_ALLOC alloca +# ifdef YYSTACK_USE_ALLOCA +# if YYSTACK_USE_ALLOCA +# define YYSTACK_ALLOC alloca +# endif # else -# ifndef YYSTACK_USE_ALLOCA -# if defined (alloca) || defined (_ALLOCA_H) -# define YYSTACK_ALLOC alloca -# else -# ifdef __GNUC__ -# define YYSTACK_ALLOC __builtin_alloca -# endif +# if defined (alloca) || defined (_ALLOCA_H) +# define YYSTACK_ALLOC alloca +# else +# ifdef __GNUC__ +# define YYSTACK_ALLOC __builtin_alloca # endif # endif # endif @@ -211,20 +152,20 @@ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # endif -# define YYSTACK_ALLOC malloc -# define YYSTACK_FREE free +# define YYSTACK_ALLOC YYMALLOC +# define YYSTACK_FREE YYFREE # endif #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ #if (! defined (yyoverflow) \ && (! defined (__cplusplus) \ - || (YYSTYPE_IS_TRIVIAL))) + || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { - short yyss; + short int yyss; YYSTYPE yyvs; }; @@ -234,13 +175,13 @@ /* 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)) \ + ((N) * (sizeof (short int) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) /* Copy COUNT objects from FROM to TO. The source and destination do not overlap. */ # ifndef YYCOPY -# if 1 < __GNUC__ +# if defined (__GNUC__) && 1 < __GNUC__ # define YYCOPY(To, From, Count) \ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) # else @@ -276,26 +217,26 @@ #if defined (__STDC__) || defined (__cplusplus) typedef signed char yysigned_char; #else - typedef short yysigned_char; + typedef short int yysigned_char; #endif /* YYFINAL -- State number of the termination state. */ -#define YYFINAL 22 +#define YYFINAL 40 /* YYLAST -- Last index in YYTABLE. */ -#define YYLAST 123 +#define YYLAST 4475 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 38 +#define YYNTOKENS 227 /* YYNNTS -- Number of nonterminals. */ -#define YYNNTS 24 +#define YYNNTS 94 /* YYNRULES -- Number of rules. */ -#define YYNRULES 56 +#define YYNRULES 425 /* YYNRULES -- Number of states. */ -#define YYNSTATES 136 +#define YYNSTATES 1172 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 292 +#define YYMAXUTOK 257 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -304,85 +245,308 @@ static const unsigned char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 225, 2, 2, 226, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 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 + 2, 2, 224, 73, 7, 3, 74, 75, 76, 6, + 77, 78, 79, 9, 5, 10, 8, 80, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 81, 82, + 83, 4, 84, 85, 86, 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, 87, 88, 89, 90, 91, 2, 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, 92, 93, 94, 95, 2, 96, 97, + 98, 99, 100, 101, 102, 103, 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, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 1, 2 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ -static const unsigned char yyprhs[] = +static const unsigned short int yyprhs[] = { - 0, 0, 3, 5, 9, 14, 15, 17, 19, 23, - 27, 31, 37, 43, 49, 55, 61, 63, 65, 67, - 73, 81, 87, 93, 99, 103, 107, 113, 119, 125, - 131, 137, 143, 145, 147, 153, 157, 159, 161, 163, - 165, 167, 169, 171, 173, 175, 177, 179, 181, 183, - 185, 189, 191, 193, 196, 199, 201 + 0, 0, 3, 6, 10, 11, 13, 15, 17, 19, + 22, 25, 28, 31, 35, 39, 43, 47, 51, 55, + 61, 65, 69, 73, 77, 83, 85, 87, 89, 91, + 93, 95, 97, 99, 101, 103, 105, 107, 109, 111, + 113, 115, 121, 129, 139, 141, 147, 155, 165, 167, + 169, 175, 181, 189, 199, 207, 217, 219, 225, 233, + 239, 245, 251, 259, 269, 277, 287, 291, 295, 301, + 305, 311, 315, 319, 323, 327, 331, 337, 345, 351, + 361, 367, 373, 379, 385, 391, 395, 401, 403, 405, + 407, 409, 411, 413, 415, 417, 423, 431, 435, 437, + 439, 441, 443, 445, 447, 449, 451, 453, 455, 457, + 459, 461, 463, 467, 469, 473, 477, 479, 481, 483, + 485, 487, 490, 494, 499, 504, 506, 509, 511, 513, + 515, 517, 519, 521, 523, 525, 527, 529, 531, 534, + 537, 540, 543, 546, 549, 552, 555, 558, 560, 562, + 564, 566, 568, 570, 572, 574, 576, 578, 580, 582, + 584, 586, 588, 590, 592, 594, 596, 598, 600, 602, + 604, 606, 608, 610, 612, 614, 616, 618, 620, 622, + 624, 626, 628, 630, 632, 634, 636, 638, 640, 642, + 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, + 664, 666, 668, 670, 672, 674, 676, 678, 680, 682, + 684, 686, 688, 690, 692, 694, 696, 698, 700, 702, + 704, 706, 708, 710, 712, 714, 716, 718, 720, 722, + 724, 726, 728, 730, 732, 734, 736, 738, 740, 742, + 744, 746, 748, 750, 752, 754, 756, 758, 760, 762, + 764, 766, 768, 770, 772, 774, 776, 778, 780, 782, + 784, 786, 788, 790, 792, 794, 796, 798, 800, 802, + 804, 806, 808, 810, 812, 814, 816, 818, 820, 822, + 824, 826, 828, 830, 832, 834, 836, 838, 840, 842, + 844, 846, 848, 850, 852, 854, 856, 858, 860, 862, + 864, 866, 868, 870, 872, 874, 876, 878, 880, 882, + 884, 886, 888, 890, 892, 894, 896, 898, 900, 902, + 904, 906, 908, 910, 912, 914, 916, 918, 920, 922, + 924, 926, 928, 930, 932, 934, 936, 938, 940, 942, + 944, 946, 948, 950, 952, 954, 956, 958, 960, 962, + 964, 966, 968, 970, 972, 974, 976, 978, 980, 982, + 984, 986, 988, 990, 992, 994, 996, 998, 1000, 1003, + 1006, 1010, 1014, 1016, 1018, 1020, 1024, 1028, 1035, 1043, + 1048, 1053, 1057, 1067, 1074, 1078, 1088, 1100, 1107, 1115, + 1133, 1164, 1173, 1178, 1192, 1205, 1217, 1230, 1242, 1253, + 1260, 1290, 1311, 1331, 1361, 1381, 1412, 1433, 1451, 1480, + 1508, 1534, 1553, 1571, 1599, 1617, 1633, 1652, 1668, 1679, + 1686, 1692, 1703, 1709, 1723, 1728 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ -static const yysigned_char yyrhs[] = +static const short int yyrhs[] = { - 39, 0, -1, 40, -1, 39, 7, 40, -1, 39, - 8, 7, 40, -1, -1, 41, -1, 1, -1, 9, - 6, 18, -1, 10, 6, 42, -1, 11, 6, 43, - -1, 12, 6, 18, 6, 51, -1, 13, 6, 18, - 6, 44, -1, 14, 6, 19, 6, 53, -1, 15, - 6, 19, 6, 56, -1, 16, 6, 18, 6, 51, - -1, 17, -1, 20, -1, 21, -1, 18, 6, 22, - 6, 51, -1, 18, 6, 23, 6, 45, 6, 51, - -1, 18, 6, 24, 6, 51, -1, 18, 6, 25, - 6, 51, -1, 27, 6, 22, 6, 57, -1, 26, - 6, 46, -1, 27, 6, 47, -1, 28, 6, 51, - 6, 54, -1, 29, 6, 51, 6, 48, -1, 30, - 6, 51, 6, 58, -1, 31, 6, 51, 6, 55, - -1, 32, 6, 51, 6, 49, -1, 33, 6, 51, - 6, 50, -1, 34, -1, 35, -1, 59, 6, 52, - 6, 51, -1, 57, 6, 51, -1, 36, -1, 37, - -1, 36, -1, 4, -1, 5, -1, 5, -1, 5, - -1, 5, -1, 5, -1, 5, -1, 60, -1, 61, - -1, 60, -1, 60, -1, 59, 6, 60, -1, 61, - -1, 5, -1, 60, 61, -1, 60, 5, -1, 3, - -1, 61, 3, -1 + 228, 0, -1, 229, 268, -1, 229, 269, 268, -1, + -1, 230, -1, 231, -1, 1, -1, 3, -1, 230, + 3, -1, 230, 267, -1, 230, 263, -1, 230, 259, + -1, 270, 267, 283, -1, 271, 267, 234, -1, 272, + 267, 236, -1, 273, 267, 237, -1, 274, 267, 242, + -1, 275, 267, 238, -1, 278, 267, 283, 267, 252, + -1, 279, 267, 235, -1, 280, 267, 232, -1, 281, + 267, 233, -1, 282, 267, 265, -1, 317, 267, 283, + 267, 252, -1, 317, -1, 320, -1, 288, -1, 292, + -1, 291, -1, 290, -1, 289, -1, 318, -1, 288, + -1, 292, -1, 291, -1, 290, -1, 289, -1, 318, + -1, 284, -1, 303, -1, 309, 267, 287, 267, 259, + -1, 308, 267, 287, 267, 259, 267, 259, -1, 308, + 267, 287, 267, 259, 267, 259, 267, 240, -1, 285, + -1, 299, 267, 287, 267, 259, -1, 298, 267, 287, + 267, 259, 267, 259, -1, 298, 267, 287, 267, 259, + 267, 259, 267, 240, -1, 296, -1, 306, -1, 297, + 267, 287, 267, 263, -1, 307, 267, 287, 267, 263, + -1, 310, 267, 287, 267, 263, 267, 263, -1, 305, + 267, 287, 267, 263, 267, 263, 267, 259, -1, 301, + 267, 287, 267, 263, 267, 263, -1, 300, 267, 287, + 267, 263, 267, 263, 267, 259, -1, 286, -1, 283, + 267, 287, 267, 252, -1, 283, 267, 290, 267, 241, + 267, 252, -1, 283, 267, 291, 267, 252, -1, 283, + 267, 292, 267, 252, -1, 294, 267, 287, 267, 254, + -1, 295, 267, 263, 267, 259, 4, 256, -1, 300, + 267, 263, 267, 263, 267, 259, 4, 256, -1, 304, + 267, 263, 267, 259, 4, 256, -1, 305, 267, 263, + 267, 263, 267, 259, 4, 256, -1, 283, 267, 239, + -1, 319, 267, 258, -1, 297, 267, 259, 267, 240, + -1, 297, 267, 259, -1, 307, 267, 259, 267, 240, + -1, 307, 267, 259, -1, 297, 267, 263, -1, 307, + 267, 263, -1, 293, 267, 243, -1, 294, 267, 244, + -1, 297, 267, 252, 267, 245, -1, 301, 267, 252, + 267, 246, 267, 246, -1, 302, 267, 252, 267, 247, + -1, 313, 267, 252, 267, 245, 267, 248, 267, 249, + -1, 307, 267, 252, 267, 245, -1, 310, 267, 252, + 267, 248, -1, 311, 267, 252, 267, 249, -1, 312, + 267, 252, 267, 250, -1, 314, 267, 252, 267, 251, + -1, 259, 4, 256, -1, 240, 267, 259, 4, 256, + -1, 315, -1, 316, -1, 296, -1, 306, -1, 286, + -1, 284, -1, 303, -1, 285, -1, 255, 267, 253, + 267, 252, -1, 277, 267, 255, 267, 253, 267, 252, + -1, 254, 267, 252, -1, 263, -1, 263, -1, 259, + -1, 263, -1, 263, -1, 276, -1, 259, -1, 260, + -1, 263, -1, 263, -1, 263, -1, 259, -1, 266, + -1, 257, -1, 256, 5, 257, -1, 259, -1, 6, + 259, 6, -1, 7, 259, 7, -1, 263, -1, 260, + -1, 263, -1, 259, -1, 264, -1, 259, 264, -1, + 261, 8, 261, -1, 9, 261, 8, 261, -1, 10, + 261, 8, 261, -1, 262, -1, 261, 262, -1, 11, + -1, 12, -1, 13, -1, 14, -1, 15, -1, 16, + -1, 17, -1, 18, -1, 19, -1, 20, -1, 262, + -1, 12, 261, -1, 13, 261, -1, 14, 261, -1, + 15, 261, -1, 16, 261, -1, 17, 261, -1, 18, + 261, -1, 19, 261, -1, 20, 261, -1, 21, -1, + 22, -1, 23, -1, 24, -1, 25, -1, 26, -1, + 27, -1, 28, -1, 29, -1, 30, -1, 31, -1, + 32, -1, 33, -1, 34, -1, 35, -1, 36, -1, + 37, -1, 38, -1, 39, -1, 40, -1, 41, -1, + 42, -1, 43, -1, 44, -1, 45, -1, 46, -1, + 47, -1, 48, -1, 49, -1, 50, -1, 51, -1, + 52, -1, 53, -1, 54, -1, 55, -1, 56, -1, + 57, -1, 58, -1, 59, -1, 60, -1, 61, -1, + 62, -1, 63, -1, 64, -1, 65, -1, 66, -1, + 67, -1, 68, -1, 69, -1, 70, -1, 71, -1, + 72, -1, 11, -1, 12, -1, 13, -1, 14, -1, + 15, -1, 16, -1, 17, -1, 18, -1, 19, -1, + 20, -1, 73, -1, 3, -1, 74, -1, 75, -1, + 76, -1, 77, -1, 78, -1, 79, -1, 9, -1, + 10, -1, 8, -1, 5, -1, 80, -1, 81, -1, + 82, -1, 83, -1, 4, -1, 84, -1, 85, -1, + 86, -1, 87, -1, 88, -1, 89, -1, 90, -1, + 91, -1, 92, -1, 93, -1, 94, -1, 95, -1, + 96, -1, 97, -1, 98, -1, 99, -1, 100, -1, + 101, -1, 102, -1, 103, -1, 104, -1, 105, -1, + 106, -1, 107, -1, 108, -1, 109, -1, 110, -1, + 111, -1, 112, -1, 113, -1, 114, -1, 115, -1, + 116, -1, 117, -1, 118, -1, 119, -1, 120, -1, + 121, -1, 122, -1, 123, -1, 124, -1, 125, -1, + 126, -1, 127, -1, 128, -1, 129, -1, 130, -1, + 131, -1, 132, -1, 133, -1, 134, -1, 135, -1, + 136, -1, 137, -1, 138, -1, 139, -1, 140, -1, + 141, -1, 142, -1, 143, -1, 144, -1, 145, -1, + 146, -1, 147, -1, 148, -1, 149, -1, 150, -1, + 151, -1, 152, -1, 153, -1, 154, -1, 155, -1, + 156, -1, 157, -1, 158, -1, 159, -1, 160, -1, + 161, -1, 162, -1, 163, -1, 164, -1, 165, -1, + 166, -1, 167, -1, 168, -1, 169, -1, 170, -1, + 171, -1, 172, -1, 173, -1, 174, -1, 175, -1, + 176, -1, 177, -1, 178, -1, 179, -1, 180, -1, + 181, -1, 182, -1, 183, -1, 184, -1, 185, -1, + 186, -1, 187, -1, 188, -1, 189, -1, 190, -1, + 191, -1, 192, -1, 193, -1, 194, -1, 195, -1, + 196, -1, 197, -1, 198, -1, 199, -1, 200, -1, + 201, -1, 202, -1, 203, -1, 204, -1, 205, -1, + 206, -1, 207, -1, 208, -1, 209, -1, 210, -1, + 211, -1, 212, -1, 213, -1, 214, -1, 215, -1, + 216, -1, 217, -1, 218, -1, 219, -1, 220, -1, + 221, -1, 222, -1, 223, -1, 267, -1, 259, -1, + 265, 267, -1, 265, 259, -1, 6, 265, 6, -1, + 7, 265, 7, -1, 224, -1, 225, -1, 226, -1, + 21, 24, 24, -1, 27, 25, 40, -1, 23, 38, + 25, 21, 40, 25, -1, 24, 25, 39, 40, 38, + 35, 45, -1, 32, 29, 39, 40, -1, 32, 35, + 21, 24, -1, 21, 32, 32, -1, 34, 35, 34, + 91, 33, 35, 24, 21, 32, -1, 38, 25, 33, + 35, 42, 25, -1, 39, 25, 40, -1, 39, 41, + 22, 39, 23, 38, 29, 22, 25, -1, 41, 34, + 39, 41, 22, 39, 23, 38, 29, 22, 25, -1, + 39, 25, 32, 25, 23, 40, -1, 23, 28, 21, + 34, 34, 25, 32, -1, 21, 42, 21, 29, 32, + 21, 22, 32, 25, 91, 25, 34, 27, 29, 34, + 25, 39, -1, 21, 42, 21, 29, 32, 21, 22, + 32, 25, 91, 21, 41, 24, 29, 35, 91, 35, + 41, 40, 36, 41, 40, 91, 24, 38, 29, 42, + 25, 38, 39, -1, 23, 28, 21, 34, 34, 25, + 32, 39, -1, 29, 34, 26, 35, -1, 23, 28, + 21, 34, 34, 25, 32, 91, 23, 35, 41, 34, + 40, -1, 23, 28, 21, 34, 34, 25, 32, 91, + 29, 34, 26, 35, -1, 22, 41, 26, 26, 25, + 38, 91, 26, 29, 32, 32, -1, 39, 40, 38, + 25, 21, 33, 91, 23, 35, 41, 34, 40, -1, + 42, 35, 29, 23, 25, 91, 23, 35, 41, 34, + 40, -1, 29, 34, 39, 40, 38, 41, 33, 25, + 34, 40, -1, 25, 34, 27, 29, 34, 25, -1, + 21, 41, 24, 29, 35, 91, 35, 41, 40, 36, + 41, 40, 91, 24, 25, 42, 29, 23, 25, 91, + 36, 21, 38, 21, 33, 25, 40, 25, 38, -1, + 21, 41, 24, 29, 35, 91, 35, 41, 40, 36, + 41, 40, 91, 24, 25, 42, 29, 23, 25, 39, + -1, 21, 41, 24, 29, 35, 91, 35, 41, 40, + 36, 41, 40, 91, 24, 25, 42, 29, 23, 25, + -1, 21, 41, 24, 29, 35, 91, 35, 41, 40, + 36, 41, 40, 91, 24, 38, 29, 42, 25, 38, + 91, 36, 21, 38, 21, 33, 25, 40, 25, 38, + -1, 21, 41, 24, 29, 35, 91, 35, 41, 40, + 36, 41, 40, 91, 24, 38, 29, 42, 25, 38, + -1, 21, 41, 24, 29, 35, 91, 35, 41, 40, + 36, 41, 40, 91, 23, 28, 21, 34, 34, 25, + 32, 91, 36, 21, 38, 21, 33, 25, 40, 25, + 38, -1, 21, 41, 24, 29, 35, 91, 35, 41, + 40, 36, 41, 40, 91, 23, 28, 21, 34, 34, + 25, 32, -1, 21, 41, 24, 29, 35, 91, 35, + 41, 40, 36, 41, 40, 91, 40, 45, 36, 25, + -1, 21, 42, 21, 29, 32, 21, 22, 32, 25, + 91, 33, 29, 24, 29, 91, 29, 34, 36, 41, + 40, 91, 24, 38, 29, 42, 25, 38, 39, -1, + 33, 29, 24, 29, 91, 29, 34, 36, 41, 40, + 91, 24, 25, 42, 29, 23, 25, 91, 36, 21, + 38, 21, 33, 25, 40, 25, 38, -1, 33, 29, + 24, 29, 91, 29, 34, 36, 41, 40, 91, 36, + 35, 38, 40, 91, 36, 21, 38, 21, 33, 25, + 40, 25, 38, -1, 33, 29, 24, 29, 91, 29, + 34, 36, 41, 40, 91, 24, 25, 42, 29, 23, + 25, 39, -1, 33, 29, 24, 29, 91, 29, 34, + 36, 41, 40, 91, 24, 25, 42, 29, 23, 25, + -1, 33, 29, 24, 29, 91, 29, 34, 36, 41, + 40, 91, 24, 38, 29, 42, 25, 38, 91, 36, + 21, 38, 21, 33, 25, 40, 25, 38, -1, 33, + 29, 24, 29, 91, 29, 34, 36, 41, 40, 91, + 24, 38, 29, 42, 25, 38, -1, 33, 29, 24, + 29, 91, 29, 34, 36, 41, 40, 91, 36, 35, + 38, 40, -1, 33, 29, 24, 29, 91, 29, 34, + 36, 41, 40, 91, 23, 28, 21, 34, 34, 25, + 32, -1, 33, 29, 24, 29, 91, 29, 34, 36, + 41, 40, 91, 40, 45, 36, 25, -1, 33, 29, + 24, 29, 91, 29, 34, 36, 41, 40, -1, 42, + 35, 32, 41, 33, 25, -1, 22, 45, 40, 25, + 39, -1, 36, 25, 38, 23, 25, 34, 40, 21, + 27, 25, -1, 38, 25, 39, 25, 40, -1, 33, + 29, 39, 23, 25, 32, 32, 21, 34, 25, 35, + 41, 39, -1, 25, 23, 28, 35, -1, 37, 41, + 29, 40, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ -static const unsigned char yyrline[] = +static const unsigned short int yyrline[] = { - 0, 77, 77, 78, 79, 82, 83, 84, 87, 88, - 89, 90, 91, 92, 93, 94, 95, 98, 99, 100, - 101, 102, 103, 104, 107, 108, 111, 112, 113, 114, - 115, 116, 119, 120, 123, 126, 129, 130, 133, 136, - 137, 140, 143, 146, 149, 152, 155, 158, 161, 164, - 165, 168, 169, 170, 171, 174, 175 + 0, 82, 82, 83, 86, 87, 88, 89, 92, 93, + 94, 95, 96, 99, 100, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 111, 112, 115, 116, 117, + 118, 119, 120, 123, 124, 125, 126, 127, 128, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 156, 157, 158, 159, 160, 161, 164, 165, + 166, 167, 170, 171, 174, 175, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 189, 190, 193, 194, 197, + 198, 199, 200, 201, 202, 205, 206, 209, 212, 215, + 218, 221, 224, 225, 228, 231, 232, 235, 238, 241, + 244, 247, 248, 251, 252, 253, 254, 255, 261, 262, + 265, 266, 269, 270, 271, 275, 276, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 291, 292, 293, + 294, 295, 296, 297, 298, 299, 300, 302, 302, 302, + 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, + 302, 302, 302, 302, 302, 302, 302, 302, 302, 302, + 302, 302, 302, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, 303, 303, + 303, 303, 303, 303, 303, 303, 303, 303, 303, 304, + 304, 304, 304, 304, 304, 304, 304, 304, 304, 305, + 305, 305, 305, 305, 305, 305, 305, 305, 305, 305, + 305, 305, 306, 306, 306, 306, 306, 306, 306, 307, + 307, 307, 307, 307, 308, 308, 308, 308, 309, 309, + 309, 310, 310, 310, 311, 311, 311, 312, 312, 312, + 313, 313, 313, 314, 314, 314, 315, 315, 315, 316, + 316, 316, 317, 317, 317, 318, 318, 318, 319, 319, + 319, 320, 320, 320, 321, 321, 321, 322, 322, 322, + 323, 323, 323, 324, 324, 324, 325, 325, 325, 326, + 326, 326, 327, 327, 327, 328, 328, 328, 329, 329, + 329, 330, 330, 330, 331, 331, 331, 332, 332, 332, + 333, 333, 333, 334, 334, 334, 335, 335, 335, 336, + 336, 336, 337, 337, 337, 338, 338, 338, 339, 339, + 339, 340, 340, 340, 341, 341, 341, 342, 342, 342, + 343, 343, 343, 344, 344, 344, 345, 345, 345, 346, + 346, 346, 347, 347, 347, 348, 348, 348, 349, 349, + 349, 350, 350, 350, 351, 351, 354, 355, 356, 357, + 360, 361, 367, 370, 373, 376, 379, 382, 385, 388, + 391, 394, 397, 400, 403, 406, 409, 412, 415, 418, + 421, 424, 427, 430, 433, 436, 439, 442, 445, 448, + 451, 454, 457, 460, 463, 466, 469, 472, 475, 478, + 481, 484, 487, 490, 493, 496, 499, 502, 505, 508, + 511, 514, 517, 520, 523, 526 }; #endif @@ -391,172 +555,1497 @@ First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { - "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "SP", "LF", - "CR", "ADD", "GET", "LOAD", "REMOVE", "SET", "SUBSCRIBE", "UNSUBSCRIBE", - "RESET", "QUIT", "CHANNEL", "NOTIFICATION", "AVAILABLE_ENGINES", - "CHANNELS", "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT", - "INSTRUMENT", "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_TYPE", - "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "VOLUME", - "BYTES", "PERCENTAGE", "ALSA", "JACK", "$accept", "input", "line", - "command", "get_instruction", "load_instruction", - "set_chan_instruction", "buffer_size_type", "load_instr_args", - "load_engine_args", "audio_output_type", "midi_input_type", "volume", - "sampler_channel", "instrument_index", "udp_port", - "audio_output_channel", "midi_input_channel", "session_id", - "engine_name", "midi_input_port", "filename", "alpha_num_string", - "string", 0 + "$end", "error", "$undefined", "'#'", "'='", "','", "'''", "'\"'", + "'.'", "'+'", "'-'", "'0'", "'1'", "'2'", "'3'", "'4'", "'5'", "'6'", + "'7'", "'8'", "'9'", "'A'", "'B'", "'C'", "'D'", "'E'", "'F'", "'G'", + "'H'", "'I'", "'J'", "'K'", "'L'", "'M'", "'N'", "'O'", "'P'", "'Q'", + "'R'", "'S'", "'T'", "'U'", "'V'", "'W'", "'X'", "'Y'", "'Z'", "'a'", + "'b'", "'c'", "'d'", "'e'", "'f'", "'g'", "'h'", "'i'", "'j'", "'k'", + "'l'", "'m'", "'n'", "'o'", "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", + "'v'", "'w'", "'x'", "'y'", "'z'", "'!'", "'$'", "'%'", "'&'", "'('", + "')'", "'*'", "'/'", "':'", "';'", "'<'", "'>'", "'?'", "'@'", "'['", + "'\\\\'", "']'", "'^'", "'_'", "'{'", "'|'", "'}'", "'~'", "'\\200'", + "'\\201'", "'\\202'", "'\\203'", "'\\204'", "'\\205'", "'\\206'", + "'\\207'", "'\\210'", "'\\211'", "'\\212'", "'\\213'", "'\\214'", + "'\\215'", "'\\216'", "'\\217'", "'\\220'", "'\\221'", "'\\222'", + "'\\223'", "'\\224'", "'\\225'", "'\\226'", "'\\227'", "'\\230'", + "'\\231'", "'\\232'", "'\\233'", "'\\234'", "'\\235'", "'\\236'", + "'\\237'", "' '", "'¡'", "'¢'", "'£'", "'¤'", "'¥'", "'¦'", "'§'", "'¨'", + "'©'", "'ª'", "'«'", "'¬'", "'­'", "'®'", "'¯'", "'°'", "'±'", "'²'", + "'³'", "'´'", "'µ'", "'¶'", "'·'", "'¸'", "'¹'", "'º'", "'»'", "'¼'", + "'½'", "'¾'", "'¿'", "'À'", "'Á'", "'Â'", "'Ã'", "'Ä'", "'Å'", "'Æ'", + "'Ç'", "'È'", "'É'", "'Ê'", "'Ë'", "'Ì'", "'Í'", "'Î'", "'Ï'", "'Ð'", + "'Ñ'", "'Ò'", "'Ó'", "'Ô'", "'Õ'", "'Ö'", "'×'", "'Ø'", "'Ù'", "'Ú'", + "'Û'", "'Ü'", "'Ý'", "'Þ'", "'ß'", "'à'", "'á'", "'â'", "'ã'", "'ä'", + "'å'", "'æ'", "'ç'", "'è'", "'é'", "'ê'", "'ë'", "'ì'", "'í'", "'î'", + "'ï'", "'ð'", "'ñ'", "'ò'", "'ó'", "'ô'", "'õ'", "'ö'", "'÷'", "'ø'", + "'ù'", "'ú'", "'û'", "'ü'", "'ý'", "'þ'", "'ÿ'", "' '", "'\\n'", "'\\r'", + "$accept", "input", "line", "comment", "command", "subscribe_event", + "unsubscribe_event", "get_instruction", "set_instruction", + "create_instruction", "destroy_instruction", "load_instruction", + "set_chan_instruction", "key_val_list", "buffer_size_type", + "list_instruction", "load_instr_args", "load_engine_args", + "device_index", "audio_channel_index", "audio_output_type_name", + "midi_input_port_index", "midi_input_channel_index", + "midi_input_type_name", "volume_value", "sampler_channel", + "instrument_index", "engine_name", "filename", "param_val_list", + "param_val", "boolean", "string", "dotnum", "digits", "digit", "number", + "char", "text", "stringval", "SP", "LF", "CR", "ADD", "GET", "CREATE", + "DESTROY", "LIST", "LOAD", "ALL", "NON_MODAL", "REMOVE", "SET", + "SUBSCRIBE", "UNSUBSCRIBE", "SELECT", "CHANNEL", "AVAILABLE_ENGINES", + "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS", "INFO", "CHANNEL_COUNT", + "CHANNEL_INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT", + "INSTRUMENT", "ENGINE", "AUDIO_OUTPUT_DEVICE_PARAMETER", + "AUDIO_OUTPUT_DEVICES", "AUDIO_OUTPUT_DEVICE", + "AUDIO_OUTPUT_DRIVER_PARAMETER", "AUDIO_OUTPUT_DRIVER", + "AUDIO_OUTPUT_CHANNEL_PARAMETER", "AUDIO_OUTPUT_CHANNEL", + "AUDIO_OUTPUT_TYPE", "AVAILABLE_MIDI_INPUT_DRIVERS", + "MIDI_INPUT_DEVICE_PARAMETER", "MIDI_INPUT_PORT_PARAMETER", + "MIDI_INPUT_DEVICES", "MIDI_INPUT_DEVICE", "MIDI_INPUT_DRIVER_PARAMETER", + "MIDI_INPUT_DRIVER", "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", + "MIDI_INPUT_TYPE", "MIDI_INPUT", "VOLUME", "BYTES", "PERCENTAGE", + "RESET", "MISCELLANEOUS", "ECHO", "QUIT", 0 }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ -static const unsigned short yytoknum[] = +static const unsigned short int yytoknum[] = { - 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, - 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, - 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, - 285, 286, 287, 288, 289, 290, 291, 292 + 0, 256, 257, 35, 61, 44, 39, 34, 46, 43, + 45, 48, 49, 50, 51, 52, 53, 54, 55, 56, + 57, 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, 97, 98, 99, + 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, + 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 33, 36, 37, 38, 40, 41, 42, + 47, 58, 59, 60, 62, 63, 64, 91, 92, 93, + 94, 95, 123, 124, 125, 126, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 32, 10, 13 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ -static const unsigned char yyr1[] = +static const unsigned short int yyr1[] = { - 0, 38, 39, 39, 39, 40, 40, 40, 41, 41, - 41, 41, 41, 41, 41, 41, 41, 42, 42, 42, - 42, 42, 42, 42, 43, 43, 44, 44, 44, 44, - 44, 44, 45, 45, 46, 47, 48, 48, 49, 50, - 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 59, 60, 60, 60, 60, 61, 61 + 0, 227, 228, 228, 229, 229, 229, 229, 230, 230, + 230, 230, 230, 231, 231, 231, 231, 231, 231, 231, + 231, 231, 231, 231, 231, 231, 231, 232, 232, 232, + 232, 232, 232, 233, 233, 233, 233, 233, 233, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 234, 234, 234, 234, 234, 234, 234, 234, + 234, 234, 235, 235, 235, 235, 235, 235, 236, 236, + 236, 236, 237, 237, 238, 238, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 240, 240, 241, 241, 242, + 242, 242, 242, 242, 242, 243, 243, 244, 245, 246, + 247, 248, 249, 249, 250, 251, 251, 252, 253, 254, + 255, 256, 256, 257, 257, 257, 257, 257, 258, 258, + 259, 259, 260, 260, 260, 261, 261, 262, 262, 262, + 262, 262, 262, 262, 262, 262, 262, 263, 263, 263, + 263, 263, 263, 263, 263, 263, 263, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 264, 264, 264, 264, + 264, 264, 264, 264, 264, 264, 265, 265, 265, 265, + 266, 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 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const unsigned char yyr2[] = { - 0, 2, 1, 3, 4, 0, 1, 1, 3, 3, - 3, 5, 5, 5, 5, 5, 1, 1, 1, 5, - 7, 5, 5, 5, 3, 3, 5, 5, 5, 5, - 5, 5, 1, 1, 5, 3, 1, 1, 1, 1, + 0, 2, 2, 3, 0, 1, 1, 1, 1, 2, + 2, 2, 2, 3, 3, 3, 3, 3, 3, 5, + 3, 3, 3, 3, 5, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 5, 7, 9, 1, 5, 7, 9, 1, 1, + 5, 5, 7, 9, 7, 9, 1, 5, 7, 5, + 5, 5, 7, 9, 7, 9, 3, 3, 5, 3, + 5, 3, 3, 3, 3, 3, 5, 7, 5, 9, + 5, 5, 5, 5, 5, 3, 5, 1, 1, 1, + 1, 1, 1, 1, 1, 5, 7, 3, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 3, 1, 3, 3, 1, 1, 1, 1, + 1, 2, 3, 4, 4, 1, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 3, 1, 1, 2, 2, 1, 2 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 3, 3, 1, 1, 1, 3, 3, 6, 7, 4, + 4, 3, 9, 6, 3, 9, 11, 6, 7, 17, + 30, 8, 4, 13, 12, 11, 12, 11, 10, 6, + 29, 20, 19, 29, 19, 30, 20, 17, 28, 27, + 25, 18, 17, 27, 17, 15, 18, 15, 10, 6, + 5, 10, 5, 13, 4, 4 }; /* 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[] = +static const unsigned short int yydefact[] = { - 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 16, 0, 2, 6, 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 8, 0, 17, 18, 0, - 9, 0, 0, 10, 0, 0, 0, 0, 0, 3, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 0, 0, 0, 0, 0, 55, 52, 24, 0, - 49, 51, 25, 0, 47, 41, 11, 0, 0, 0, - 0, 0, 0, 12, 43, 13, 14, 46, 15, 0, - 0, 0, 0, 0, 0, 54, 53, 56, 0, 0, - 0, 0, 0, 0, 0, 19, 32, 33, 0, 21, - 22, 23, 52, 0, 50, 35, 0, 0, 0, 0, + 0, 7, 8, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 5, 6, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 25, 26, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1, 373, 374, 2, 0, 9, 225, 220, 219, 217, + 218, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 209, 211, 212, 213, 214, 215, 216, + 221, 222, 223, 224, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, + 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, + 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, + 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, + 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, + 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, + 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, + 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, + 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, + 362, 363, 364, 365, 372, 12, 137, 11, 120, 10, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 375, 0, 0, 376, 0, 0, 0, 0, + 0, 0, 384, 0, 0, 3, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 138, 125, 139, 140, + 141, 142, 143, 144, 145, 146, 210, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 121, 0, 13, + 0, 0, 0, 0, 14, 0, 39, 44, 56, 0, + 48, 0, 0, 0, 0, 0, 40, 0, 49, 0, + 0, 0, 0, 0, 0, 15, 0, 0, 16, 0, + 0, 0, 0, 0, 17, 92, 94, 91, 89, 93, + 90, 0, 18, 0, 0, 0, 0, 0, 0, 20, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 21, 27, 31, 30, 29, 28, 32, 22, 33, + 37, 36, 35, 34, 38, 367, 23, 366, 0, 0, + 0, 379, 380, 425, 0, 0, 0, 0, 0, 126, + 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, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 369, 368, 0, 0, 0, + 0, 422, 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, 69, + 71, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 72, 73, 0, 0, 0, 0, 0, 0, 0, 74, + 0, 110, 0, 75, 0, 109, 19, 107, 0, 0, + 0, 0, 0, 0, 66, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 67, 119, + 118, 0, 0, 0, 0, 0, 24, 377, 0, 383, + 387, 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, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 424, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 378, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 57, 0, 0, 0, 87, 88, 59, + 60, 61, 50, 0, 45, 0, 0, 0, 51, 0, + 41, 0, 0, 0, 68, 0, 70, 0, 0, 0, + 0, 370, 371, 0, 0, 108, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 20, 34, 44, 26, 36, 37, 27, 28, 48, 45, - 29, 38, 30, 39, 40, 31 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 399, 0, 392, + 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, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 385, 0, 388, 0, 0, 388, 0, + 0, 0, 58, 46, 0, 54, 0, 42, 52, 0, + 0, 0, 0, 0, 217, 218, 85, 111, 113, 117, + 0, 125, 116, 0, 0, 0, 0, 0, 95, 0, + 0, 0, 0, 0, 0, 76, 98, 0, 99, 78, + 100, 80, 81, 101, 0, 82, 102, 103, 83, 104, + 0, 0, 0, 84, 105, 106, 62, 0, 64, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 391, 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, 419, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 386, 0, 0, 0, 420, + 0, 47, 55, 53, 43, 0, 0, 86, 114, 115, + 0, 0, 112, 122, 0, 0, 0, 0, 96, 0, + 0, 0, 0, 77, 381, 0, 63, 65, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 123, 124, 0, 0, 398, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 382, 0, 0, + 0, 0, 79, 395, 0, 0, 0, 0, 397, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 418, 0, 394, 0, 396, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 393, 423, 0, 0, + 0, 0, 0, 0, 0, 0, 421, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 415, 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, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 389, 0, 412, 414, 0, + 0, 412, 0, 0, 0, 0, 0, 0, 0, 0, + 415, 417, 0, 0, 0, 0, 0, 411, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 402, + 404, 0, 0, 0, 0, 402, 0, 0, 0, 0, + 0, 407, 0, 406, 401, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 416, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 406, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 410, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 413, 0, + 409, 0, 0, 0, 408, 0, 0, 403, 0, 400, + 405, 390 }; /* YYDEFGOTO[NTERM-NUM]. */ -static const short yydefgoto[] = +static const short int yydefgoto[] = { - -1, 11, 12, 13, 30, 33, 73, 98, 58, 62, - 126, 132, 135, 66, 103, 75, 123, 130, 76, 63, - 127, 59, 60, 61 + -1, 12, 13, 14, 15, 391, 398, 334, 379, 355, + 358, 372, 534, 654, 636, 364, 519, 523, 785, 787, + 789, 792, 795, 798, 803, 526, 664, 524, 520, 766, + 767, 548, 768, 769, 770, 266, 527, 268, 406, 521, + 711, 43, 44, 16, 17, 18, 19, 20, 21, 797, + 522, 22, 23, 24, 25, 26, 329, 336, 337, 338, + 482, 392, 393, 394, 395, 396, 373, 339, 381, 340, + 341, 342, 343, 344, 345, 537, 346, 383, 347, 348, + 349, 350, 351, 352, 540, 541, 542, 543, 637, 638, + 27, 397, 385, 28 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -48 -static const yysigned_char yypact[] = +#define YYPACT_NINF -712 +static const short int yypact[] = { - 10, -48, -4, 3, 25, 40, 56, 60, 64, 70, - -48, 28, -48, -48, 16, -14, -12, 57, 59, 61, - 62, 65, -48, 10, 71, -48, 73, -48, -48, 76, - -48, 79, 80, -48, 81, 82, 83, 84, 85, -48, - 10, 20, 72, 0, 89, 88, 26, 90, 0, 88, - -48, 91, 92, 93, 94, 95, -48, -48, -48, 96, - 27, 100, -48, 98, 100, -48, -48, 99, 101, 102, - 103, 104, 105, -48, -48, -48, -48, 27, -48, 88, - 30, 88, 88, 89, 58, -48, 100, -48, 88, 88, - 88, 88, 88, 88, 88, -48, -48, -48, 106, -48, - -48, -48, 107, 108, 27, -48, 109, 110, 111, 112, - 113, 114, 88, 88, 116, 31, 0, 117, 87, 69, - -48, -48, -48, -48, -48, -48, -48, -48, 27, -48, - -48, -48, -48, -48, -48, -48 + 51, -712, -712, 34, 23, 75, 109, 27, 38, 111, + 61, 48, 95, -192, 1598, -712, -92, -92, -92, -92, + -92, -92, -92, -92, -92, -92, -92, -92, -712, 126, + 158, 127, 150, 153, 180, 212, 70, -3, 220, 204, + -712, -712, -712, -712, 19, -712, -712, -712, -712, -712, + -712, -712, 216, 216, 216, 216, 216, 216, 216, 216, + 216, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, 2705, -712, -712, -712, -712, + 222, 163, 73, 73, 170, 6, 222, 164, 54, 54, + 1820, 222, -712, 225, 207, -712, 208, 226, 211, 230, + 241, 243, -712, 231, 228, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, 216, -712, 216, 216, + 216, 216, 216, 216, 216, 216, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -712, -712, 244, -712, + 69, 245, 237, 246, -712, -92, -712, -712, -712, -92, + -712, -92, -92, -92, -92, -92, -712, -92, -712, -92, + -92, -92, -92, 233, 259, -712, -92, -92, -712, -92, + -92, 72, 261, 262, -712, -712, -712, -712, -712, -712, + -712, 256, -712, -92, -92, -92, 251, 270, 265, -712, + -92, -92, -92, -92, -92, -92, 254, 269, 277, 268, + 272, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, 2705, 1820, -712, -92, 271, + 274, -712, -712, -712, 273, 276, 286, 287, 291, -712, + 293, 294, 296, 298, 297, 299, 62, 292, 292, 292, + 292, 292, 292, 292, 292, 292, 292, 292, 301, 303, + 2705, 2705, 267, 267, 309, 314, 316, 281, 21, 2705, + 267, 317, 320, 318, 18, 267, 267, 267, 267, 2926, + 323, 329, 312, 315, 325, 2705, -712, 267, 327, 321, + 330, -712, 319, 326, 324, 332, 328, 336, 339, 346, + 347, 343, -92, -92, -92, -92, -92, -92, -92, -92, + -92, -92, -92, -92, -92, -92, -92, 349, 350, 1820, + 1820, 216, 216, 216, 216, 216, 216, 216, 216, 216, + -712, -712, 351, 348, 352, 344, 1820, 1820, 353, -712, + -92, -712, -92, -712, -92, 2705, -712, -712, 354, 355, + 356, 345, 358, 357, -712, -92, -92, -92, -92, -92, + -92, -92, -92, -92, -92, -92, -92, -92, -712, 2705, + -712, 363, 360, 335, 366, 373, -712, -712, 359, -712, + -712, 368, 375, 365, 367, 369, 371, 372, 322, 374, + 267, 37, 267, 267, 2705, 267, 2705, 2705, 267, 267, + 267, 267, 2705, 2705, 267, 376, 333, 2705, 2705, 377, + 380, 334, 370, 1154, 1376, 381, 267, 124, 267, 382, + -712, 340, 379, 383, 378, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 2705, 267, 2705, 267, 384, 385, + 391, 397, 395, -712, 399, 388, 398, 341, 401, 402, + 405, 404, 400, -712, 389, 411, -92, -712, -712, -712, + -712, -712, -712, 1820, 2705, -92, -92, -92, -712, 1820, + 2705, -92, 361, 408, -92, 3147, -92, 362, 413, 410, + 406, -712, -712, 364, -92, -712, -92, -712, 393, 417, + 419, 420, 409, -92, -92, -92, -92, -92, -92, -92, + -92, -92, 3368, -92, 3589, -92, 416, 415, 424, 418, + 394, 432, 429, 427, 425, 439, 430, -712, 431, -712, + 423, 426, 267, 2705, 267, 267, 267, 2705, 267, 433, + 454, 2705, 2042, 455, 434, 466, 456, 468, 267, 267, + 467, 471, 473, 444, 477, 267, 267, 2705, 267, 267, + 205, 2705, 267, 195, 2042, 2705, 2042, 2705, 445, 435, + 474, 446, 498, -712, 516, -712, 499, 507, 502, 506, + 518, 521, -712, 1820, -92, -712, -92, 1820, -712, 504, + 510, 3810, 2705, 2705, 216, 216, 542, -712, 2705, -712, + 107, 14, -712, 508, 502, 514, 526, 517, -712, -92, + 512, 519, 463, 527, 532, -712, -712, -92, -712, -712, + 2705, -712, -712, -712, 528, -712, -712, -712, -712, 2705, + -92, 216, 216, -712, -712, -712, 542, 4031, 542, 4252, + 533, 472, 537, 539, 534, 543, 531, 547, -712, 535, + 536, 548, 2705, 2705, 2705, 2705, 538, 544, 2042, 2263, + 2484, 141, 162, 2042, 216, 546, 549, 540, 553, 267, + 551, 552, 554, 545, -712, 267, 555, 267, 2042, 2042, + 559, 106, 550, 557, 556, -712, 558, 492, 560, -712, + 561, -92, 2705, 2705, -92, 562, 564, 542, -712, -712, + 216, 216, -712, 216, 563, 565, 566, 575, -712, 571, + 568, 569, 573, -712, -712, -92, 542, 542, 570, 577, + 579, 589, 574, 582, 576, 5, 529, 578, 580, 567, + 216, 216, 581, 583, -712, 587, 584, 585, 586, 588, + 205, 592, 590, 601, 593, 603, 595, 599, 600, 606, + 613, 92, 622, 604, 621, 607, 624, -712, 609, 115, + 610, 612, -712, -712, 616, 619, 614, 617, -712, 591, + 632, 642, 635, 60, 636, 646, 594, 650, 596, 652, + 598, 653, 644, 639, 602, 641, -712, 645, -712, 140, + 654, 657, 666, 655, 667, 661, 675, 677, 662, 679, + 664, 171, 665, 670, 669, 17, -712, -712, 682, 74, + 678, 683, 630, 696, 685, 688, -712, 704, 701, 706, + 703, 705, 709, 707, 695, 647, 711, 710, 697, 725, + 708, 718, 658, 726, 723, 730, 731, 668, 715, 735, + 719, 739, 742, 722, 744, 668, 57, 747, 727, 733, + 736, 748, 737, 738, 745, 751, 753, 743, 750, 759, + 764, 765, 768, 761, 767, 772, 770, 754, 766, 762, + 776, 769, 781, 780, 774, -712, 771, 777, 720, 785, + 786, -712, 787, 777, 783, 797, 734, 805, 791, 794, + -712, -712, 804, 811, 792, 800, 796, -712, 806, 803, + 818, 819, 821, 824, 814, 817, 827, 828, 822, 816, + 773, 820, 825, 836, 837, -712, 816, 830, 775, 838, + 833, -712, 839, 778, -712, 832, 829, 782, 840, 841, + 778, 843, 842, 850, -712, 847, 855, 844, 853, 864, + 861, 866, 867, 857, 871, 856, 802, 859, 862, 858, + 863, 869, -712, 865, 878, 876, 875, 881, 884, 889, + 886, 891, 882, 879, 874, 880, 883, 890, 888, 896, + 897, 901, 906, 909, -712, 910, 911, 912, 899, 898, + 903, 904, 908, 905, 913, 919, 921, 915, -712, 924, + -712, 925, 914, 917, -712, 918, 920, -712, 922, -712, + -712, -712 }; /* YYPGOTO[NTERM-NUM]. */ -static const yysigned_char yypgoto[] = +static const short int yypgoto[] = { - -48, -48, -11, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -41, -48, -48, -48, -48, -48, 13, - -48, -48, -47, -44 + -712, -712, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -573, -712, -712, -712, -712, -696, 112, + -712, 104, 49, -712, -712, -465, 247, 386, 387, -711, + 129, -712, 331, 235, 11, -10, -14, 283, -317, -712, + -13, 926, -712, -712, -712, -712, -712, -712, -712, -712, + -712, -712, -712, -712, -712, -712, -109, 689, 690, 698, + -173, 692, 694, -261, -257, -255, -712, 699, -712, 702, + -256, -712, -712, 700, 515, -712, 712, -712, 713, 714, + -252, -712, -712, 524, -712, -712, -712, -712, -712, -712, + -712, 716, -712, -712 }; /* 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 -43 -static const short yytable[] = +#define YYTABLE_NINF -138 +static const short int yytable[] = { - 64, 77, 14, 56, 26, 57, 27, 28, 78, 15, - -5, 1, 39, 29, 31, 32, 86, -5, -5, 2, - 3, 4, 5, 6, 7, 8, 9, 10, 22, 50, - 56, 16, 85, 86, 25, 23, 24, 104, 95, 64, - 99, 100, 51, 52, 53, 54, 17, 105, 106, 107, - 108, 109, 110, 111, 67, 68, 69, 70, 71, 72, - 86, 56, 18, 102, 96, 97, 19, 124, 125, 128, - 20, 120, 121, 133, 134, 34, 21, 35, 40, 41, - 36, 37, 42, 38, 86, 43, 44, 45, 46, 47, - 48, 49, 56, 65, 55, 74, 101, 79, 80, 81, - 82, 83, 84, 87, 88, 89, 0, 90, 91, 92, - 93, 94, 112, -42, 113, 114, 115, 116, 117, 118, - 119, 122, 129, 131 + 267, 269, 556, 270, 271, 272, 273, 274, 275, 276, + 277, 278, 279, 280, 281, 656, 356, 359, 401, -137, + 357, 360, 402, 806, 403, 808, 918, 516, 517, 291, + 919, 332, 791, 41, 42, 371, 800, 292, 920, 531, + 996, 947, 307, 307, 307, 307, 307, 307, 307, 307, + 307, 532, 1, 997, 2, 518, 33, 998, 29, 634, + 533, 30, 34, 306, 308, 309, 310, 311, 312, 313, + 314, 315, 3, 635, 4, 5, 386, 387, 6, 35, + 1036, 987, 39, 7, 386, 963, 37, 388, 8, 9, + 10, 481, 11, 389, 353, 40, 390, 1037, 964, 1000, + 31, 389, 38, 289, 390, 633, 354, 639, 640, 290, + 421, 422, 1001, 444, 422, 834, 943, 867, 296, 297, + 298, 299, 300, 301, 302, 303, 304, 305, 944, 889, + 516, 517, 264, 667, 32, 890, 36, 886, 887, 951, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 870, + 282, 952, 296, 297, 298, 299, 300, 301, 302, 303, + 304, 305, 335, 978, 979, 483, 284, 375, 380, 484, + 871, 485, 408, 296, 297, 298, 299, 300, 301, 302, + 303, 304, 305, 283, 330, 376, 331, 328, 332, 377, + 285, 361, 286, 362, 991, 992, 333, 378, 535, 593, + 594, 287, 538, 363, 801, 802, 296, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 296, 501, 502, 503, + 504, 505, 506, 507, 508, 509, 794, 296, 297, 298, + 299, 300, 301, 302, 303, 304, 305, 752, -137, -137, + -137, 288, 293, 294, 41, 328, 409, 410, 411, 861, + 412, 413, 864, 778, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 495, 496, 414, 415, 407, 416, 418, + 417, 424, 420, 423, 438, 425, -4, -4, 296, 501, + 502, 503, 504, 505, 506, 507, 508, 509, 439, 445, + 447, 446, 451, 452, 453, 460, 419, 461, 419, 419, + 419, 419, 419, 419, 419, 419, 462, 464, 463, 472, + 473, 468, 469, 474, 475, 470, 471, 477, 476, 478, + 515, 481, 426, 480, 479, 497, 427, 498, 428, 429, + 430, 431, 432, 512, 433, 513, 434, 435, 436, 437, + 514, 528, 530, 440, 441, 265, 442, 443, 529, 551, + 552, 553, 557, 554, 555, 559, 558, 564, 620, 560, + 448, 449, 450, 562, 561, 565, 563, 454, 455, 456, + 457, 458, 459, 566, 878, 567, 568, 569, 585, 586, + 589, 591, 590, 599, 592, 601, 602, 603, 595, 618, + 600, 621, 604, 466, 619, 467, 622, 624, 625, 626, + 632, 628, 627, 670, 623, 629, 630, 671, 660, 686, + 672, 652, 657, 631, 658, 663, 688, 668, 689, 687, + 690, 691, 695, 693, 653, 659, 692, 696, 510, 511, + 697, 669, 694, 698, 700, 699, 701, 710, 714, 715, + 739, 544, 545, 546, 547, 550, 721, 716, 722, 723, + 724, 741, 709, 713, 738, 717, 740, 743, 744, 745, + 746, 747, 748, 750, 751, 749, 774, 811, 759, 570, + 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, + 581, 582, 583, 584, 720, 742, 587, 588, 760, 776, + 773, 307, 307, 307, 307, 307, 307, 307, 307, 307, + 775, 777, 780, 407, 407, 781, 812, 596, 782, 597, + 784, 598, 306, 308, 309, 310, 311, 312, 313, 314, + 315, 814, 605, 606, 607, 608, 609, 610, 611, 612, + 613, 614, 615, 616, 617, 783, 810, 813, 815, 817, + 816, 818, 819, 820, 821, 826, 827, 833, 327, 835, + 836, 837, 838, 840, 842, 841, 843, 844, 852, 850, + 846, 642, 853, 851, 645, 646, 647, 648, 855, 854, + 651, 856, 857, 860, 876, 859, 858, 877, 865, 882, + 466, 466, 665, 895, 891, 866, 874, 884, 888, 881, + 875, 879, 892, 880, 894, 897, 905, 893, 898, 902, + 896, 683, 911, 685, 899, 903, 904, 906, 907, 909, + 908, 405, 912, 913, 914, 915, 916, 917, 922, 927, + 921, 923, 925, 702, 933, 928, 930, 935, 936, 931, + 703, 934, 704, 705, 706, 938, 707, 937, 708, 939, + 941, 940, 942, 945, 946, 947, 953, 948, 949, 950, + 955, 718, 954, 719, 956, 957, 960, 958, 924, 962, + 725, 726, 727, 728, 729, 730, 731, 732, 733, 961, + 735, 965, 737, 966, 926, 968, 929, 970, 972, 973, + 974, 976, 959, 980, 977, 967, 981, 969, 327, 971, + 754, 755, 756, 975, 758, 982, 984, 983, 772, 985, + 986, 987, 771, 989, 988, 665, 990, 993, 994, 995, + 999, 786, 788, 1002, 786, 793, 796, 1003, 786, 805, + 772, 1004, 772, 771, 771, 1005, 771, 1006, 1007, 1008, + 1009, 1010, 1011, 1012, 1013, 1015, 1014, 465, 1016, 1017, + 822, 823, 1019, 824, 825, 1018, 1020, 1022, 327, 1023, + 1021, 1024, 1025, 1026, 307, 307, 1027, 1029, 1030, 1028, + 419, 1031, 1032, 1033, 1034, 1039, 839, 1035, 1038, 1040, + 1041, 499, 500, 1044, 845, 831, 832, 1042, 1047, 1043, + 525, 1048, 327, 327, 1045, 1046, 1049, 847, 1050, 1051, + 549, 307, 307, 1053, 1052, 1054, 1055, 1056, 1057, 1058, + 1059, 1061, 1060, 1062, 1063, 1064, 1069, 1066, 327, 1070, + 1071, 1068, 831, 832, 772, 1065, 1067, 1072, 771, 772, + 1073, 419, 419, 771, 307, 1074, 1075, 1076, 1077, 1078, + 1080, 788, 327, 793, 772, 772, 1079, 1082, 771, 771, + 1081, 1084, 1083, 1085, 1086, 873, 1087, 405, 405, 1088, + 1089, 1090, 1091, 1092, 1093, 1094, 1096, 1098, 1099, 1102, + 307, 307, 1100, 419, 1095, 1097, 1101, 1103, 1106, 1105, + 1107, 1104, 910, 1108, 1110, 1113, 1115, 1117, 1109, 1111, + 1112, 900, 901, 1114, 1116, 1118, 1119, 1120, 1121, 1122, + 419, 419, 1123, 1125, 1124, 1127, 796, 1126, 1128, 1132, + 1133, 1129, 1130, 1131, 1134, 525, 1135, 643, 644, 1136, + 1137, 1138, 1139, 649, 650, 1140, 1142, 1141, 655, 655, + 1143, 1144, 1148, 1145, 465, 465, 327, 327, 1146, 1147, + 1149, 1150, 327, 327, 1151, 1152, 1153, 1154, 327, 1155, + 1156, 1157, 1158, 1160, 1162, 682, 1163, 684, 1159, 1165, + 1166, 885, 1167, 1161, 1164, 1168, 1169, 883, 1170, 932, + 641, 1171, 872, 365, 366, 327, 779, 327, 804, 536, + 295, 399, 367, 400, 374, 0, 368, 382, 539, 0, + 0, 0, 0, 0, 666, 0, 369, 0, 370, 0, + 384, 0, 0, 0, 0, 404, 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, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 753, 0, 327, 0, 757, 0, + 327, 0, 761, 0, 327, 0, 0, 0, 0, 0, + 0, 327, 0, 0, 0, 0, 0, 0, 790, 0, + 0, 0, 799, 0, 0, 0, 807, 0, 809, 0, + 0, 0, 0, 327, 0, 0, 0, 0, 0, 0, + 0, 0, 327, 0, 0, 0, 0, 0, 0, 0, + 327, 0, 327, 829, 830, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 327, 327, 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, 0, 0, 0, 327, 327, 0, 0, 0, + 0, 0, 0, 655, 862, 863, 655, 316, 46, 47, + 661, 0, 48, 49, 50, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 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, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 264, 316, + 46, 47, 0, 662, 48, 49, 50, 317, 318, 319, + 320, 321, 322, 323, 324, 325, 326, 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, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 264, 45, 46, 47, 0, 0, 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, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 264, 316, 46, 47, 0, 0, 48, 49, + 50, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 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, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 264, 316, 46, 47, 762, 763, + 48, 764, 765, 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, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263, 316, 46, 47, 868, + 0, 48, 49, 50, 317, 318, 319, 320, 321, 322, + 323, 324, 325, 326, 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, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, + 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, + 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, + 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, + 257, 258, 259, 260, 261, 262, 263, 316, 46, 47, + 0, 869, 48, 49, 50, 317, 318, 319, 320, 321, + 322, 323, 324, 325, 326, 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, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, + 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, + 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, + 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, + 256, 257, 258, 259, 260, 261, 262, 263, 316, 46, + 47, 0, 0, 48, 49, 50, 317, 318, 319, 320, + 321, 322, 323, 324, 325, 326, 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, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, + 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, + 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, + 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 255, 256, 257, 258, 259, 260, 261, 262, 263, 316, + 46, 47, 0, 0, 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, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, + 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, + 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, + 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, + 316, 712, 47, 0, 0, 48, 49, 50, 317, 318, + 319, 320, 321, 322, 323, 324, 325, 326, 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, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, + 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, + 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, + 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, + 263, 316, 734, 47, 0, 0, 48, 49, 50, 317, + 318, 319, 320, 321, 322, 323, 324, 325, 326, 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, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, + 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, + 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, + 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, + 262, 263, 316, 736, 47, 0, 0, 48, 49, 50, + 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, + 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, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, + 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, + 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, + 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, + 261, 262, 263, 316, 828, 47, 0, 0, 48, 49, + 50, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 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, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, + 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, + 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, + 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, + 260, 261, 262, 263, 316, 848, 47, 0, 0, 48, + 49, 50, 317, 318, 319, 320, 321, 322, 323, 324, + 325, 326, 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, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 316, 849, 47, 0, 0, + 48, 49, 50, 317, 318, 319, 320, 321, 322, 323, + 324, 325, 326, 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, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, + 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, + 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, + 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, + 258, 259, 260, 261, 262, 263 }; -static const short yycheck[] = +static const short int yycheck[] = { - 44, 48, 6, 3, 18, 5, 20, 21, 49, 6, - 0, 1, 23, 27, 26, 27, 60, 7, 8, 9, - 10, 11, 12, 13, 14, 15, 16, 17, 0, 40, - 3, 6, 5, 77, 18, 7, 8, 84, 79, 83, - 81, 82, 22, 23, 24, 25, 6, 88, 89, 90, - 91, 92, 93, 94, 28, 29, 30, 31, 32, 33, - 104, 3, 6, 5, 34, 35, 6, 36, 37, 116, - 6, 112, 113, 4, 5, 18, 6, 18, 7, 6, - 19, 19, 6, 18, 128, 6, 6, 6, 6, 6, - 6, 6, 3, 5, 22, 5, 83, 6, 6, 6, - 6, 6, 6, 3, 6, 6, -1, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 5, 5, 36 + 14, 14, 467, 16, 17, 18, 19, 20, 21, 22, + 23, 24, 25, 26, 27, 588, 272, 273, 279, 5, + 272, 273, 279, 734, 279, 736, 21, 6, 7, 32, + 25, 25, 728, 225, 226, 29, 732, 40, 33, 21, + 23, 24, 52, 53, 54, 55, 56, 57, 58, 59, + 60, 33, 1, 36, 3, 34, 29, 40, 24, 22, + 42, 38, 35, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 21, 36, 23, 24, 22, 23, 27, 41, + 23, 24, 34, 32, 22, 25, 25, 33, 37, 38, + 39, 29, 41, 39, 21, 0, 42, 40, 38, 25, + 25, 39, 41, 33, 42, 570, 33, 572, 573, 39, + 41, 42, 38, 41, 42, 8, 24, 828, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 36, 23, + 6, 7, 224, 598, 25, 29, 25, 848, 849, 24, + 605, 606, 607, 608, 609, 610, 611, 612, 613, 8, + 24, 36, 11, 12, 13, 14, 15, 16, 17, 18, + 19, 20, 271, 23, 24, 426, 39, 276, 277, 426, + 8, 426, 281, 11, 12, 13, 14, 15, 16, 17, + 18, 19, 20, 25, 21, 21, 23, 23, 25, 25, + 40, 21, 39, 23, 23, 24, 33, 33, 454, 516, + 517, 21, 454, 33, 9, 10, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 21, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 702, 224, 225, + 226, 29, 22, 39, 225, 23, 21, 40, 40, 822, + 24, 40, 825, 718, 427, 428, 429, 430, 431, 432, + 433, 434, 435, 436, 437, 35, 25, 280, 25, 41, + 39, 34, 28, 28, 41, 29, 225, 226, 11, 12, + 13, 14, 15, 16, 17, 18, 19, 20, 29, 28, + 34, 29, 41, 23, 29, 41, 306, 28, 308, 309, + 310, 311, 312, 313, 314, 315, 29, 35, 40, 23, + 23, 40, 38, 22, 21, 42, 40, 21, 24, 21, + 39, 29, 335, 24, 27, 24, 339, 24, 341, 342, + 343, 344, 345, 24, 347, 21, 349, 350, 351, 352, + 24, 24, 24, 356, 357, 14, 359, 360, 28, 26, + 21, 39, 25, 38, 29, 25, 35, 29, 23, 40, + 373, 374, 375, 39, 38, 29, 34, 380, 381, 382, + 383, 384, 385, 34, 839, 29, 29, 34, 29, 29, + 29, 29, 34, 29, 40, 29, 41, 29, 35, 26, + 35, 25, 35, 406, 34, 408, 23, 29, 23, 34, + 26, 32, 35, 24, 45, 34, 34, 24, 38, 25, + 32, 35, 35, 91, 34, 34, 25, 35, 21, 34, + 25, 22, 21, 25, 91, 91, 38, 25, 442, 443, + 25, 91, 91, 29, 45, 35, 25, 29, 25, 29, + 25, 455, 456, 457, 458, 459, 29, 41, 29, 29, + 41, 33, 91, 91, 38, 91, 32, 25, 29, 32, + 35, 22, 32, 40, 38, 34, 32, 32, 35, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, + 493, 494, 495, 496, 91, 91, 499, 500, 34, 33, + 35, 501, 502, 503, 504, 505, 506, 507, 508, 509, + 34, 33, 35, 516, 517, 34, 32, 520, 35, 522, + 33, 524, 501, 502, 503, 504, 505, 506, 507, 508, + 509, 23, 535, 536, 537, 538, 539, 540, 541, 542, + 543, 544, 545, 546, 547, 91, 91, 91, 22, 32, + 41, 39, 36, 25, 23, 41, 36, 5, 265, 41, + 36, 25, 35, 41, 91, 36, 29, 25, 21, 26, + 32, 575, 23, 91, 578, 579, 580, 581, 25, 35, + 584, 40, 25, 25, 34, 39, 41, 24, 40, 34, + 593, 594, 596, 91, 34, 41, 40, 32, 29, 35, + 41, 40, 35, 41, 36, 34, 21, 41, 36, 36, + 40, 615, 32, 617, 40, 40, 40, 36, 40, 36, + 41, 280, 35, 34, 25, 41, 34, 41, 40, 32, + 91, 41, 41, 636, 32, 41, 40, 26, 35, 41, + 643, 41, 645, 646, 647, 40, 649, 34, 651, 40, + 34, 41, 29, 21, 40, 24, 36, 40, 24, 40, + 34, 664, 40, 666, 35, 41, 24, 40, 91, 24, + 673, 674, 675, 676, 677, 678, 679, 680, 681, 27, + 683, 35, 685, 27, 91, 25, 91, 25, 25, 35, + 41, 40, 91, 29, 39, 91, 29, 91, 405, 91, + 704, 705, 706, 91, 708, 29, 29, 42, 712, 38, + 25, 24, 712, 24, 42, 719, 42, 42, 38, 40, + 28, 725, 726, 35, 728, 729, 730, 34, 732, 733, + 734, 91, 736, 733, 734, 29, 736, 42, 40, 25, + 29, 25, 29, 28, 25, 40, 29, 406, 91, 28, + 753, 754, 45, 756, 757, 35, 21, 29, 465, 91, + 42, 25, 29, 23, 764, 765, 25, 42, 23, 91, + 770, 42, 23, 21, 42, 38, 779, 23, 21, 36, + 34, 440, 441, 35, 787, 764, 765, 29, 25, 42, + 449, 38, 499, 500, 39, 34, 36, 800, 29, 25, + 459, 801, 802, 25, 29, 34, 29, 25, 28, 45, + 34, 25, 40, 34, 23, 25, 21, 36, 525, 23, + 23, 91, 801, 802, 828, 41, 39, 34, 828, 833, + 23, 831, 832, 833, 834, 91, 21, 36, 34, 25, + 38, 845, 549, 847, 848, 849, 25, 41, 848, 849, + 40, 38, 36, 25, 25, 834, 25, 516, 517, 25, + 36, 34, 25, 25, 32, 39, 36, 21, 21, 21, + 870, 871, 32, 873, 91, 40, 91, 34, 36, 91, + 41, 32, 885, 91, 33, 25, 21, 24, 38, 36, + 38, 870, 871, 36, 40, 21, 25, 21, 21, 32, + 900, 901, 21, 91, 38, 33, 910, 38, 40, 21, + 24, 38, 33, 38, 29, 574, 25, 576, 577, 25, + 21, 25, 21, 582, 583, 33, 42, 38, 587, 588, + 40, 38, 25, 33, 593, 594, 643, 644, 40, 33, + 29, 25, 649, 650, 25, 25, 25, 25, 655, 40, + 42, 38, 38, 38, 25, 614, 25, 616, 40, 25, + 25, 847, 38, 40, 39, 38, 38, 845, 38, 910, + 574, 39, 833, 274, 274, 682, 719, 684, 733, 454, + 44, 279, 274, 279, 275, -1, 274, 277, 454, -1, + -1, -1, -1, -1, 597, -1, 274, -1, 274, -1, + 277, -1, -1, -1, -1, 279, -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, 703, -1, 753, -1, 707, -1, + 757, -1, 711, -1, 761, -1, -1, -1, -1, -1, + -1, 768, -1, -1, -1, -1, -1, -1, 727, -1, + -1, -1, 731, -1, -1, -1, 735, -1, 737, -1, + -1, -1, -1, 790, -1, -1, -1, -1, -1, -1, + -1, -1, 799, -1, -1, -1, -1, -1, -1, -1, + 807, -1, 809, 762, 763, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 829, 830, -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, 862, 863, -1, -1, -1, + -1, -1, -1, 822, 823, 824, 825, 3, 4, 5, + 6, -1, 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, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 224, 3, + 4, 5, -1, 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, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 224, 3, 4, 5, -1, -1, 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, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 224, 3, 4, 5, -1, -1, 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, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 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, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223, 3, 4, 5, 6, + -1, 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, 111, 112, 113, 114, 115, 116, + 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, + 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, + 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, + 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, + 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, + 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, + 217, 218, 219, 220, 221, 222, 223, 3, 4, 5, + -1, 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, 111, 112, 113, 114, 115, + 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, + 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, + 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, + 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, + 216, 217, 218, 219, 220, 221, 222, 223, 3, 4, + 5, -1, -1, 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, 111, 112, 113, 114, + 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, + 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, + 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, + 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, + 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, + 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, + 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, + 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, + 215, 216, 217, 218, 219, 220, 221, 222, 223, 3, + 4, 5, -1, -1, 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, 111, 112, 113, + 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, + 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, + 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, + 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, + 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, + 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, + 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, + 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, + 3, 4, 5, -1, -1, 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, 111, 112, + 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, + 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, + 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, + 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, + 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, + 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, + 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, + 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, + 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, + 223, 3, 4, 5, -1, -1, 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, 111, + 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, + 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, + 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, + 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, + 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, + 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, + 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, + 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, + 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, + 222, 223, 3, 4, 5, -1, -1, 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, + 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, + 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, + 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, + 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, + 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, + 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, + 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, + 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, + 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, + 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, + 221, 222, 223, 3, 4, 5, -1, -1, 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, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 3, 4, 5, -1, -1, 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, 111, 112, 113, 114, 115, 116, 117, 118, + 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, + 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, + 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 3, 4, 5, -1, -1, + 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, 111, 112, 113, 114, 115, 116, 117, + 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, + 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, + 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, + 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, + 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, + 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, + 218, 219, 220, 221, 222, 223 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ -static const unsigned char yystos[] = +static const unsigned short int yystos[] = { - 0, 1, 9, 10, 11, 12, 13, 14, 15, 16, - 17, 39, 40, 41, 6, 6, 6, 6, 6, 6, - 6, 6, 0, 7, 8, 18, 18, 20, 21, 27, - 42, 26, 27, 43, 18, 18, 19, 19, 18, 40, - 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 40, 22, 23, 24, 25, 22, 3, 5, 46, 59, - 60, 61, 47, 57, 61, 5, 51, 28, 29, 30, - 31, 32, 33, 44, 5, 53, 56, 60, 51, 6, - 6, 6, 6, 6, 6, 5, 61, 3, 6, 6, - 6, 6, 6, 6, 6, 51, 34, 35, 45, 51, - 51, 57, 5, 52, 60, 51, 51, 51, 51, 51, - 51, 51, 6, 6, 6, 6, 6, 6, 6, 6, - 51, 51, 5, 54, 36, 37, 48, 58, 60, 5, - 55, 36, 49, 4, 5, 50 + 0, 1, 3, 21, 23, 24, 27, 32, 37, 38, + 39, 41, 228, 229, 230, 231, 270, 271, 272, 273, + 274, 275, 278, 279, 280, 281, 282, 317, 320, 24, + 38, 25, 25, 29, 35, 41, 25, 25, 41, 34, + 0, 225, 226, 268, 269, 3, 4, 5, 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, 111, 112, 113, 114, 115, 116, 117, 118, 119, + 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, + 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, + 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, + 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, + 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, + 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, + 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, + 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, + 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, + 220, 221, 222, 223, 224, 259, 262, 263, 264, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 24, 25, 39, 40, 39, 21, 29, 33, + 39, 32, 40, 22, 39, 268, 11, 12, 13, 14, + 15, 16, 17, 18, 19, 20, 261, 262, 261, 261, + 261, 261, 261, 261, 261, 261, 3, 11, 12, 13, + 14, 15, 16, 17, 18, 19, 20, 264, 23, 283, + 21, 23, 25, 33, 234, 283, 284, 285, 286, 294, + 296, 297, 298, 299, 300, 301, 303, 305, 306, 307, + 308, 309, 310, 21, 33, 236, 297, 307, 237, 297, + 307, 21, 23, 33, 242, 284, 285, 286, 296, 303, + 306, 29, 238, 293, 294, 283, 21, 25, 33, 235, + 283, 295, 300, 304, 305, 319, 22, 23, 33, 39, + 42, 232, 288, 289, 290, 291, 292, 318, 233, 288, + 289, 290, 291, 292, 318, 259, 265, 267, 283, 21, + 40, 40, 24, 40, 35, 25, 25, 39, 41, 262, + 28, 41, 42, 28, 34, 29, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 41, 29, + 267, 267, 267, 267, 41, 28, 29, 34, 267, 267, + 267, 41, 23, 29, 267, 267, 267, 267, 267, 267, + 41, 28, 29, 40, 35, 259, 267, 267, 40, 38, + 42, 40, 23, 23, 22, 21, 24, 21, 21, 27, + 24, 29, 287, 290, 291, 292, 287, 287, 287, 287, + 287, 287, 287, 287, 287, 287, 287, 24, 24, 259, + 259, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 263, 263, 24, 21, 24, 39, 6, 7, 34, 243, + 255, 266, 277, 244, 254, 259, 252, 263, 24, 28, + 24, 21, 33, 42, 239, 297, 301, 302, 307, 310, + 311, 312, 313, 314, 263, 263, 263, 263, 258, 259, + 263, 26, 21, 39, 38, 29, 252, 25, 35, 25, + 40, 38, 39, 34, 29, 29, 34, 29, 29, 34, + 267, 267, 267, 267, 267, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 29, 29, 267, 267, 29, + 34, 29, 40, 265, 265, 35, 267, 267, 267, 29, + 35, 29, 41, 29, 35, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 267, 267, 267, 267, 26, 34, + 23, 25, 23, 45, 29, 23, 34, 35, 32, 34, + 34, 91, 26, 252, 22, 36, 241, 315, 316, 252, + 252, 254, 263, 259, 259, 263, 263, 263, 263, 259, + 259, 263, 35, 91, 240, 259, 240, 35, 34, 91, + 38, 6, 7, 34, 253, 263, 255, 252, 35, 91, + 24, 24, 32, 252, 252, 252, 252, 252, 252, 252, + 252, 252, 259, 263, 259, 263, 25, 34, 25, 21, + 25, 22, 38, 25, 91, 21, 25, 25, 29, 35, + 45, 25, 267, 267, 267, 267, 267, 267, 267, 91, + 29, 267, 4, 91, 25, 29, 41, 91, 267, 267, + 91, 29, 29, 29, 41, 267, 267, 267, 267, 267, + 267, 267, 267, 267, 4, 267, 4, 267, 38, 25, + 32, 33, 91, 25, 29, 32, 35, 22, 32, 34, + 40, 38, 252, 259, 263, 263, 263, 259, 263, 35, + 34, 259, 6, 7, 9, 10, 256, 257, 259, 260, + 261, 262, 263, 35, 32, 34, 33, 33, 252, 253, + 35, 34, 35, 91, 33, 245, 263, 246, 263, 247, + 259, 245, 248, 263, 21, 249, 263, 276, 250, 259, + 245, 9, 10, 251, 260, 263, 256, 259, 256, 259, + 91, 32, 32, 91, 23, 22, 41, 32, 39, 36, + 25, 23, 267, 267, 267, 267, 41, 36, 4, 259, + 259, 261, 261, 5, 8, 41, 36, 25, 35, 267, + 41, 36, 91, 29, 25, 267, 32, 267, 4, 4, + 26, 91, 21, 23, 35, 25, 40, 25, 41, 39, + 25, 240, 259, 259, 240, 40, 41, 256, 6, 7, + 8, 8, 257, 261, 40, 41, 34, 24, 252, 40, + 41, 35, 34, 246, 32, 248, 256, 256, 29, 23, + 29, 34, 35, 41, 36, 91, 40, 34, 36, 40, + 261, 261, 36, 40, 40, 21, 36, 40, 41, 36, + 267, 32, 35, 34, 25, 41, 34, 41, 21, 25, + 33, 91, 40, 41, 91, 41, 91, 32, 41, 91, + 40, 41, 249, 32, 41, 26, 35, 34, 40, 40, + 41, 34, 29, 24, 36, 21, 40, 24, 40, 24, + 40, 24, 36, 36, 40, 34, 35, 41, 40, 91, + 24, 27, 24, 25, 38, 35, 27, 91, 25, 91, + 25, 91, 25, 35, 41, 91, 40, 39, 23, 24, + 29, 29, 29, 42, 29, 38, 25, 24, 42, 24, + 42, 23, 24, 42, 38, 40, 23, 36, 40, 28, + 25, 38, 35, 34, 91, 29, 42, 40, 25, 29, + 25, 29, 28, 25, 29, 40, 91, 28, 35, 45, + 21, 42, 29, 91, 25, 29, 23, 25, 91, 42, + 23, 42, 23, 21, 42, 23, 23, 40, 21, 38, + 36, 34, 29, 42, 35, 39, 34, 25, 38, 36, + 29, 25, 29, 25, 34, 29, 25, 28, 45, 34, + 40, 25, 34, 23, 25, 41, 36, 39, 91, 21, + 23, 23, 34, 23, 91, 21, 36, 34, 25, 25, + 38, 40, 41, 36, 38, 25, 25, 25, 25, 36, + 34, 25, 25, 32, 39, 91, 36, 40, 21, 21, + 32, 91, 21, 34, 32, 91, 36, 41, 91, 38, + 33, 36, 38, 25, 36, 21, 40, 24, 21, 25, + 21, 21, 32, 21, 38, 91, 38, 33, 40, 38, + 33, 38, 21, 24, 29, 25, 25, 21, 25, 21, + 33, 38, 42, 40, 38, 33, 40, 33, 25, 29, + 25, 25, 25, 25, 25, 40, 42, 38, 38, 40, + 38, 40, 25, 25, 39, 25, 25, 38, 38, 38, + 38, 39 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) @@ -582,7 +2071,7 @@ #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab -#define YYERROR goto yyerrlab1 +#define YYERROR goto yyerrorlab /* Like YYERROR except do call yyerror. This remains here temporarily @@ -617,11 +2106,11 @@ 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; +# 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) #endif /* YYLEX -- calling `yylex' with the right arguments. */ @@ -665,17 +2154,17 @@ /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | -| TOP (cinluded). | +| TOP (included). | `------------------------------------------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) static void -yy_stack_print (short *bottom, short *top) +yy_stack_print (short int *bottom, short int *top) #else static void yy_stack_print (bottom, top) - short *bottom; - short *top; + short int *bottom; + short int *top; #endif { YYFPRINTF (stderr, "Stack now"); @@ -705,9 +2194,9 @@ #endif { int yyi; - unsigned int yylineno = yyrline[yyrule]; + unsigned int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", - yyrule - 1, yylineno); + 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]]); @@ -744,7 +2233,7 @@ SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ -#if YYMAXDEPTH == 0 +#if defined (YYMAXDEPTH) && YYMAXDEPTH == 0 # undef YYMAXDEPTH #endif @@ -942,9 +2431,9 @@ to reallocate them elsewhere. */ /* The state stack. */ - short yyssa[YYINITDEPTH]; - short *yyss = yyssa; - register short *yyssp; + short int yyssa[YYINITDEPTH]; + short int *yyss = yyssa; + register short int *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; @@ -981,6 +2470,7 @@ yyssp = yyss; yyvsp = yyvs; + goto yysetstate; /*------------------------------------------------------------. @@ -1006,7 +2496,7 @@ these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; - short *yyss1 = yyss; + short int *yyss1 = yyss; /* Each stack pointer address is followed by the size of the @@ -1034,7 +2524,7 @@ yystacksize = YYMAXDEPTH; { - short *yyss1 = yyss; + short int *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) @@ -1166,216 +2656,1756 @@ YY_REDUCE_PRINT (yyn); switch (yyn) { - case 6: -#line 83 "lscp.y" - { LSCPSERVER->AnswerClient(yyvsp[0].String); } - break; - - case 7: -#line 84 "lscp.y" - { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; } + case 4: +#line 86 "lscp.y" + { return LSCP_DONE; } break; - case 8: + case 5: #line 87 "lscp.y" - { yyval.String = LSCPSERVER->AddChannel(); } + { return LSCP_DONE; } break; - case 9: + case 6: #line 88 "lscp.y" - { yyval.String = yyvsp[0].String; } + { LSCPSERVER->AnswerClient(yyvsp[0].String); return LSCP_DONE; } break; - case 10: + case 7: #line 89 "lscp.y" - { yyval.String = yyvsp[0].String; } - break; - - case 11: -#line 90 "lscp.y" - { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number); } - break; - - case 12: -#line 91 "lscp.y" - { yyval.String = yyvsp[0].String; } + { LSCPSERVER->AnswerClient("ERR:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; } break; case 13: -#line 92 "lscp.y" - { yyval.String = LSCPSERVER->SubscribeNotification(yyvsp[0].Number); } +#line 99 "lscp.y" + { yyval.String = LSCPSERVER->AddChannel(); } break; case 14: -#line 93 "lscp.y" - { yyval.String = LSCPSERVER->UnsubscribeNotification(yyvsp[0].String); } +#line 100 "lscp.y" + { yyval.String = yyvsp[0].String; } break; case 15: -#line 94 "lscp.y" - { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number); } +#line 101 "lscp.y" + { yyval.String = yyvsp[0].String; } break; case 16: -#line 95 "lscp.y" - { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; } +#line 102 "lscp.y" + { yyval.String = yyvsp[0].String; } break; case 17: -#line 98 "lscp.y" - { yyval.String = LSCPSERVER->GetAvailableEngines(); } +#line 103 "lscp.y" + { yyval.String = yyvsp[0].String; } break; case 18: -#line 99 "lscp.y" - { yyval.String = LSCPSERVER->GetChannels(); } +#line 104 "lscp.y" + { yyval.String = yyvsp[0].String; } break; case 19: -#line 100 "lscp.y" - { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number); } +#line 105 "lscp.y" + { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number); } break; case 20: -#line 101 "lscp.y" - { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number); } +#line 106 "lscp.y" + { yyval.String = yyvsp[0].String; } break; case 21: -#line 102 "lscp.y" - { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number); } +#line 107 "lscp.y" + { yyval.String = yyvsp[0].String; } break; case 22: -#line 103 "lscp.y" - { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number); } +#line 108 "lscp.y" + { yyval.String = yyvsp[0].String; } break; case 23: -#line 104 "lscp.y" - { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String); } +#line 109 "lscp.y" + { yyval.String = LSCPSERVER->QueryDatabase(yyvsp[0].String); } break; case 24: -#line 107 "lscp.y" - { yyval.String = yyvsp[0].String; } +#line 110 "lscp.y" + { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number); } break; case 25: -#line 108 "lscp.y" - { yyval.String = yyvsp[0].String; } +#line 111 "lscp.y" + { yyval.String = LSCPSERVER->ResetSampler(); } break; case 26: -#line 111 "lscp.y" - { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[0].Number, yyvsp[-2].Number); } +#line 112 "lscp.y" + { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; } break; case 27: -#line 112 "lscp.y" - { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].AudioOutput, yyvsp[-2].Number); } +#line 115 "lscp.y" + { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channel_count); } break; case 28: -#line 113 "lscp.y" - { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].String, yyvsp[-2].Number); } +#line 116 "lscp.y" + { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count); } break; case 29: -#line 114 "lscp.y" - { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number); } +#line 117 "lscp.y" + { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count); } break; case 30: -#line 115 "lscp.y" - { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].MidiInput, yyvsp[-2].Number); } +#line 118 "lscp.y" + { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill); } break; case 31: -#line 116 "lscp.y" - { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number); } +#line 119 "lscp.y" + { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channel_info); } break; case 32: -#line 119 "lscp.y" - { yyval.FillResponse = fill_response_bytes; } +#line 120 "lscp.y" + { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc); } break; case 33: -#line 120 "lscp.y" - { yyval.FillResponse = fill_response_percentage; } +#line 123 "lscp.y" + { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channel_count); } break; case 34: -#line 123 "lscp.y" - { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); } +#line 124 "lscp.y" + { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count); } break; case 35: -#line 126 "lscp.y" - { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); } +#line 125 "lscp.y" + { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count); } break; case 36: -#line 129 "lscp.y" - { yyval.AudioOutput = AudioOutputDevice::type_alsa; } +#line 126 "lscp.y" + { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill); } break; case 37: -#line 130 "lscp.y" - { yyval.AudioOutput = AudioOutputDevice::type_jack; } +#line 127 "lscp.y" + { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channel_info); } break; case 38: -#line 133 "lscp.y" - { yyval.MidiInput = MidiInputDevice::type_alsa; } +#line 128 "lscp.y" + { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc); } + break; + + case 39: +#line 131 "lscp.y" + { yyval.String = LSCPSERVER->GetAvailableEngines(); } break; case 40: +#line 132 "lscp.y" + { yyval.String = LSCPSERVER->GetAvailableMidiInputDrivers(); } + break; + + case 41: +#line 133 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDriverInfo(yyvsp[0].String); } + break; + + case 42: +#line 134 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String); } + break; + + case 43: +#line 135 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList); } + break; + + case 44: +#line 136 "lscp.y" + { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers(); } + break; + + case 45: #line 137 "lscp.y" - { yyval.Dotnum = yyvsp[0].Number; } + { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String); } + break; + + case 46: +#line 138 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String); } + break; + + case 47: +#line 139 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList); } + break; + + case 48: +#line 140 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount(); } + break; + + case 49: +#line 141 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDeviceCount(); } break; case 50: -#line 165 "lscp.y" - { yyval.String = yyvsp[-2].String + ' ' + yyvsp[0].String; } +#line 142 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number); } break; case 51: -#line 168 "lscp.y" - { yyval.String = yyvsp[0].String; } +#line 143 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDeviceInfo(yyvsp[0].Number); } break; case 52: -#line 169 "lscp.y" - { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str(); } +#line 144 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputPortInfo(yyvsp[-2].Number, yyvsp[0].Number); } break; case 53: -#line 170 "lscp.y" - { yyval.String = yyvsp[-1].String + yyvsp[0].String; } +#line 145 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputPortParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); } break; case 54: -#line 171 "lscp.y" - { std::stringstream ss; ss << yyvsp[-1].String << yyvsp[0].Number; yyval.String = ss.str(); } +#line 146 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number); } break; case 55: -#line 174 "lscp.y" - { std::string s; s = yyvsp[0].Char; yyval.String = s; } +#line 147 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); } break; case 56: +#line 148 "lscp.y" + { yyval.String = LSCPSERVER->GetChannels(); } + break; + + case 57: +#line 149 "lscp.y" + { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number); } + break; + + case 58: +#line 150 "lscp.y" + { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number); } + break; + + case 59: +#line 151 "lscp.y" + { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number); } + break; + + case 60: +#line 152 "lscp.y" + { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number); } + break; + + case 61: +#line 153 "lscp.y" + { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String); } + break; + + case 62: +#line 156 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } + break; + + case 63: +#line 157 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } + break; + + case 64: +#line 158 "lscp.y" + { yyval.String = LSCPSERVER->SetMidiInputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } + break; + + case 65: +#line 159 "lscp.y" + { yyval.String = LSCPSERVER->SetMidiInputPortParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); } + break; + + case 66: +#line 160 "lscp.y" + { yyval.String = yyvsp[0].String; } + break; + + case 67: +#line 161 "lscp.y" + { yyval.String = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, yyvsp[0].Dotnum); } + break; + + case 68: +#line 164 "lscp.y" + { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); } + break; + + case 69: +#line 165 "lscp.y" + { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String); } + break; + + case 70: +#line 166 "lscp.y" + { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); } + break; + + case 71: +#line 167 "lscp.y" + { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[0].String); } + break; + + case 72: +#line 170 "lscp.y" + { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); } + break; + + case 73: +#line 171 "lscp.y" + { yyval.String = LSCPSERVER->DestroyMidiInputDevice(yyvsp[0].Number); } + break; + + case 74: +#line 174 "lscp.y" + { yyval.String = yyvsp[0].String; } + break; + + case 75: #line 175 "lscp.y" + { yyval.String = yyvsp[0].String; } + break; + + case 76: +#line 178 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number); } + break; + + case 77: +#line 179 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); } + break; + + case 78: +#line 180 "lscp.y" + { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number); } + break; + + case 79: +#line 181 "lscp.y" + { yyval.String = LSCPSERVER->SetMIDIInput(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-6].Number); } + break; + + case 80: +#line 182 "lscp.y" + { yyval.String = LSCPSERVER->SetMIDIInputDevice(yyvsp[0].Number, yyvsp[-2].Number); } + break; + + case 81: +#line 183 "lscp.y" + { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].Number, yyvsp[-2].Number); } + break; + + case 82: +#line 184 "lscp.y" + { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number); } + break; + + case 83: +#line 185 "lscp.y" + { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number); } + break; + + case 84: +#line 186 "lscp.y" + { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number); } + break; + + case 85: +#line 189 "lscp.y" + { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; } + break; + + case 86: +#line 190 "lscp.y" + { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; } + break; + + case 87: +#line 193 "lscp.y" + { yyval.FillResponse = fill_response_bytes; } + break; + + case 88: +#line 194 "lscp.y" + { yyval.FillResponse = fill_response_percentage; } + break; + + case 89: +#line 197 "lscp.y" + { yyval.String = LSCPSERVER->GetAudioOutputDevices(); } + break; + + case 90: +#line 198 "lscp.y" + { yyval.String = LSCPSERVER->GetMidiInputDevices(); } + break; + + case 91: +#line 199 "lscp.y" + { yyval.String = LSCPSERVER->ListChannels(); } + break; + + case 92: +#line 200 "lscp.y" + { yyval.String = LSCPSERVER->ListAvailableEngines(); } + break; + + case 93: +#line 201 "lscp.y" + { yyval.String = LSCPSERVER->ListAvailableMidiInputDrivers(); } + break; + + case 94: +#line 202 "lscp.y" + { yyval.String = LSCPSERVER->ListAvailableAudioOutputDrivers(); } + break; + + case 95: +#line 205 "lscp.y" + { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); } + break; + + case 96: +#line 206 "lscp.y" + { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true); } + break; + + case 97: +#line 209 "lscp.y" + { yyval.String = LSCPSERVER->SetEngineType(yyvsp[-2].String, yyvsp[0].Number); } + break; + + case 103: +#line 225 "lscp.y" + { yyval.Number = 16; } + break; + + case 106: +#line 232 "lscp.y" + { yyval.Dotnum = yyvsp[0].Number; } + break; + + case 112: +#line 248 "lscp.y" + { yyval.String = yyvsp[-2].String + "," + yyvsp[0].String; } + break; + + case 114: +#line 252 "lscp.y" + { yyval.String = "\'" + yyvsp[-1].String + "\'"; } + break; + + case 115: +#line 253 "lscp.y" + { yyval.String = "\"" + yyvsp[-1].String + "\""; } + break; + + case 116: +#line 254 "lscp.y" + { std::stringstream ss; ss << "\'" << yyvsp[0].Number << "\'"; yyval.String = ss.str(); } + break; + + case 117: +#line 255 "lscp.y" + { std::stringstream ss; ss << "\'" << yyvsp[0].Dotnum << "\'"; yyval.String = ss.str(); } + break; + + case 118: +#line 261 "lscp.y" + { yyval.Dotnum = yyvsp[0].Number; } + break; + + case 119: +#line 262 "lscp.y" + { yyval.Dotnum = -1; } + break; + + case 120: +#line 265 "lscp.y" + { std::string s; s = yyvsp[0].Char; yyval.String = s; } + break; + + case 121: +#line 266 "lscp.y" { yyval.String = yyvsp[-1].String + yyvsp[0].Char; } break; + case 122: +#line 269 "lscp.y" + { yyval.Dotnum = atof(String(yyvsp[-2].String + "." + yyvsp[0].String).c_str()); } + break; + + case 123: +#line 270 "lscp.y" + { String s = "+"; s += yyvsp[-2].String; s += "."; s += yyvsp[0].String; yyval.Dotnum = atof(s.c_str()); } + break; + + case 124: +#line 271 "lscp.y" + { yyval.Dotnum = atof(String("-" + yyvsp[-2].String + "." + yyvsp[0].String).c_str()); } + break; + + case 125: +#line 275 "lscp.y" + { yyval.String = yyvsp[0].Char; } + break; + + case 126: +#line 276 "lscp.y" + { yyval.String = yyvsp[-1].String + yyvsp[0].Char; } + break; + + case 127: +#line 279 "lscp.y" + { yyval.Char = '0'; } + break; + + case 128: +#line 280 "lscp.y" + { yyval.Char = '1'; } + break; + + case 129: +#line 281 "lscp.y" + { yyval.Char = '2'; } + break; + + case 130: +#line 282 "lscp.y" + { yyval.Char = '3'; } + break; + + case 131: +#line 283 "lscp.y" + { yyval.Char = '4'; } + break; + + case 132: +#line 284 "lscp.y" + { yyval.Char = '5'; } + break; + + case 133: +#line 285 "lscp.y" + { yyval.Char = '6'; } + break; + + case 134: +#line 286 "lscp.y" + { yyval.Char = '7'; } + break; + + case 135: +#line 287 "lscp.y" + { yyval.Char = '8'; } + break; + + case 136: +#line 288 "lscp.y" + { yyval.Char = '9'; } + break; + + case 137: +#line 291 "lscp.y" + { yyval.Number = atoi(String(1, yyvsp[0].Char).c_str()); } + break; + + case 138: +#line 292 "lscp.y" + { yyval.Number = atoi(String(String("1") + yyvsp[0].String).c_str()); } + break; + + case 139: +#line 293 "lscp.y" + { yyval.Number = atoi(String(String("2") + yyvsp[0].String).c_str()); } + break; + + case 140: +#line 294 "lscp.y" + { yyval.Number = atoi(String(String("3") + yyvsp[0].String).c_str()); } + break; + + case 141: +#line 295 "lscp.y" + { yyval.Number = atoi(String(String("4") + yyvsp[0].String).c_str()); } + break; + + case 142: +#line 296 "lscp.y" + { yyval.Number = atoi(String(String("5") + yyvsp[0].String).c_str()); } + break; + + case 143: +#line 297 "lscp.y" + { yyval.Number = atoi(String(String("6") + yyvsp[0].String).c_str()); } + break; + + case 144: +#line 298 "lscp.y" + { yyval.Number = atoi(String(String("7") + yyvsp[0].String).c_str()); } + break; + + case 145: +#line 299 "lscp.y" + { yyval.Number = atoi(String(String("8") + yyvsp[0].String).c_str()); } + break; + + case 146: +#line 300 "lscp.y" + { yyval.Number = atoi(String(String("9") + yyvsp[0].String).c_str()); } + break; + + case 147: +#line 302 "lscp.y" + { yyval.Char = 'A'; } + break; + + case 148: +#line 302 "lscp.y" + { yyval.Char = 'B'; } + break; + + case 149: +#line 302 "lscp.y" + { yyval.Char = 'C'; } + break; + + case 150: +#line 302 "lscp.y" + { yyval.Char = 'D'; } + break; + + case 151: +#line 302 "lscp.y" + { yyval.Char = 'E'; } + break; + + case 152: +#line 302 "lscp.y" + { yyval.Char = 'F'; } + break; + + case 153: +#line 302 "lscp.y" + { yyval.Char = 'G'; } + break; + + case 154: +#line 302 "lscp.y" + { yyval.Char = 'H'; } + break; + + case 155: +#line 302 "lscp.y" + { yyval.Char = 'I'; } + break; + + case 156: +#line 302 "lscp.y" + { yyval.Char = 'J'; } + break; + + case 157: +#line 302 "lscp.y" + { yyval.Char = 'K'; } + break; + + case 158: +#line 302 "lscp.y" + { yyval.Char = 'L'; } + break; + + case 159: +#line 302 "lscp.y" + { yyval.Char = 'M'; } + break; + + case 160: +#line 302 "lscp.y" + { yyval.Char = 'N'; } + break; + + case 161: +#line 302 "lscp.y" + { yyval.Char = 'O'; } + break; + + case 162: +#line 302 "lscp.y" + { yyval.Char = 'P'; } + break; + + case 163: +#line 302 "lscp.y" + { yyval.Char = 'Q'; } + break; + + case 164: +#line 302 "lscp.y" + { yyval.Char = 'R'; } + break; + + case 165: +#line 302 "lscp.y" + { yyval.Char = 'S'; } + break; + + case 166: +#line 302 "lscp.y" + { yyval.Char = 'T'; } + break; + + case 167: +#line 302 "lscp.y" + { yyval.Char = 'U'; } + break; + + case 168: +#line 302 "lscp.y" + { yyval.Char = 'V'; } + break; + + case 169: +#line 302 "lscp.y" + { yyval.Char = 'W'; } + break; + + case 170: +#line 302 "lscp.y" + { yyval.Char = 'X'; } + break; + + case 171: +#line 302 "lscp.y" + { yyval.Char = 'Y'; } + break; + + case 172: +#line 302 "lscp.y" + { yyval.Char = 'Z'; } + break; + + case 173: +#line 303 "lscp.y" + { yyval.Char = 'a'; } + break; + + case 174: +#line 303 "lscp.y" + { yyval.Char = 'b'; } + break; + + case 175: +#line 303 "lscp.y" + { yyval.Char = 'c'; } + break; + + case 176: +#line 303 "lscp.y" + { yyval.Char = 'd'; } + break; + + case 177: +#line 303 "lscp.y" + { yyval.Char = 'e'; } + break; + + case 178: +#line 303 "lscp.y" + { yyval.Char = 'f'; } + break; + + case 179: +#line 303 "lscp.y" + { yyval.Char = 'g'; } + break; + + case 180: +#line 303 "lscp.y" + { yyval.Char = 'h'; } + break; + + case 181: +#line 303 "lscp.y" + { yyval.Char = 'i'; } + break; + + case 182: +#line 303 "lscp.y" + { yyval.Char = 'j'; } + break; + + case 183: +#line 303 "lscp.y" + { yyval.Char = 'k'; } + break; + + case 184: +#line 303 "lscp.y" + { yyval.Char = 'l'; } + break; + + case 185: +#line 303 "lscp.y" + { yyval.Char = 'm'; } + break; + + case 186: +#line 303 "lscp.y" + { yyval.Char = 'n'; } + break; + + case 187: +#line 303 "lscp.y" + { yyval.Char = 'o'; } + break; + + case 188: +#line 303 "lscp.y" + { yyval.Char = 'p'; } + break; + + case 189: +#line 303 "lscp.y" + { yyval.Char = 'q'; } + break; + + case 190: +#line 303 "lscp.y" + { yyval.Char = 'r'; } + break; + + case 191: +#line 303 "lscp.y" + { yyval.Char = 's'; } + break; + + case 192: +#line 303 "lscp.y" + { yyval.Char = 't'; } + break; + + case 193: +#line 303 "lscp.y" + { yyval.Char = 'u'; } + break; + + case 194: +#line 303 "lscp.y" + { yyval.Char = 'v'; } + break; + + case 195: +#line 303 "lscp.y" + { yyval.Char = 'w'; } + break; + + case 196: +#line 303 "lscp.y" + { yyval.Char = 'x'; } + break; + + case 197: +#line 303 "lscp.y" + { yyval.Char = 'y'; } + break; + + case 198: +#line 303 "lscp.y" + { yyval.Char = 'z'; } + break; + + case 199: +#line 304 "lscp.y" + { yyval.Char = '0'; } + break; + + case 200: +#line 304 "lscp.y" + { yyval.Char = '1'; } + break; + + case 201: +#line 304 "lscp.y" + { yyval.Char = '2'; } + break; + + case 202: +#line 304 "lscp.y" + { yyval.Char = '3'; } + break; + + case 203: +#line 304 "lscp.y" + { yyval.Char = '4'; } + break; + + case 204: +#line 304 "lscp.y" + { yyval.Char = '5'; } + break; + + case 205: +#line 304 "lscp.y" + { yyval.Char = '6'; } + break; + + case 206: +#line 304 "lscp.y" + { yyval.Char = '7'; } + break; + + case 207: +#line 304 "lscp.y" + { yyval.Char = '8'; } + break; + + case 208: +#line 304 "lscp.y" + { yyval.Char = '9'; } + break; + + case 209: +#line 305 "lscp.y" + { yyval.Char = '!'; } + break; + + case 210: +#line 305 "lscp.y" + { yyval.Char = '#'; } + break; + + case 211: +#line 305 "lscp.y" + { yyval.Char = '$'; } + break; + + case 212: +#line 305 "lscp.y" + { yyval.Char = '%'; } + break; + + case 213: +#line 305 "lscp.y" + { yyval.Char = '&'; } + break; + + case 214: +#line 305 "lscp.y" + { yyval.Char = '('; } + break; + + case 215: +#line 305 "lscp.y" + { yyval.Char = ')'; } + break; + + case 216: +#line 305 "lscp.y" + { yyval.Char = '*'; } + break; + + case 217: +#line 305 "lscp.y" + { yyval.Char = '+'; } + break; + + case 218: +#line 305 "lscp.y" + { yyval.Char = '-'; } + break; + + case 219: +#line 305 "lscp.y" + { yyval.Char = '.'; } + break; + + case 220: +#line 305 "lscp.y" + { yyval.Char = ','; } + break; + + case 221: +#line 305 "lscp.y" + { yyval.Char = '/'; } + break; + + case 222: +#line 306 "lscp.y" + { yyval.Char = ':'; } + break; + + case 223: +#line 306 "lscp.y" + { yyval.Char = ';'; } + break; + + case 224: +#line 306 "lscp.y" + { yyval.Char = '<'; } + break; + + case 225: +#line 306 "lscp.y" + { yyval.Char = '='; } + break; + + case 226: +#line 306 "lscp.y" + { yyval.Char = '>'; } + break; + + case 227: +#line 306 "lscp.y" + { yyval.Char = '?'; } + break; + + case 228: +#line 306 "lscp.y" + { yyval.Char = '@'; } + break; + + case 229: +#line 307 "lscp.y" + { yyval.Char = '['; } + break; + + case 230: +#line 307 "lscp.y" + { yyval.Char = '\\'; } + break; + + case 231: +#line 307 "lscp.y" + { yyval.Char = ']'; } + break; + + case 232: +#line 307 "lscp.y" + { yyval.Char = '^'; } + break; + + case 233: +#line 307 "lscp.y" + { yyval.Char = '_'; } + break; + + case 234: +#line 308 "lscp.y" + { yyval.Char = '{'; } + break; + + case 235: +#line 308 "lscp.y" + { yyval.Char = '|'; } + break; + + case 236: +#line 308 "lscp.y" + { yyval.Char = '}'; } + break; + + case 237: +#line 308 "lscp.y" + { yyval.Char = '~'; } + break; + + case 238: +#line 309 "lscp.y" + { yyval.Char = '\200'; } + break; + + case 239: +#line 309 "lscp.y" + { yyval.Char = '\201'; } + break; + + case 240: +#line 309 "lscp.y" + { yyval.Char = '\202'; } + break; + + case 241: +#line 310 "lscp.y" + { yyval.Char = '\203'; } + break; + + case 242: +#line 310 "lscp.y" + { yyval.Char = '\204'; } + break; + + case 243: +#line 310 "lscp.y" + { yyval.Char = '\205'; } + break; + + case 244: +#line 311 "lscp.y" + { yyval.Char = '\206'; } + break; + + case 245: +#line 311 "lscp.y" + { yyval.Char = '\207'; } + break; + + case 246: +#line 311 "lscp.y" + { yyval.Char = '\210'; } + break; + + case 247: +#line 312 "lscp.y" + { yyval.Char = '\211'; } + break; + + case 248: +#line 312 "lscp.y" + { yyval.Char = '\212'; } + break; + + case 249: +#line 312 "lscp.y" + { yyval.Char = '\213'; } + break; + + case 250: +#line 313 "lscp.y" + { yyval.Char = '\214'; } + break; + + case 251: +#line 313 "lscp.y" + { yyval.Char = '\215'; } + break; + + case 252: +#line 313 "lscp.y" + { yyval.Char = '\216'; } + break; + + case 253: +#line 314 "lscp.y" + { yyval.Char = '\217'; } + break; + + case 254: +#line 314 "lscp.y" + { yyval.Char = '\220'; } + break; + + case 255: +#line 314 "lscp.y" + { yyval.Char = '\221'; } + break; + + case 256: +#line 315 "lscp.y" + { yyval.Char = '\222'; } + break; + + case 257: +#line 315 "lscp.y" + { yyval.Char = '\223'; } + break; + + case 258: +#line 315 "lscp.y" + { yyval.Char = '\224'; } + break; + + case 259: +#line 316 "lscp.y" + { yyval.Char = '\225'; } + break; + + case 260: +#line 316 "lscp.y" + { yyval.Char = '\226'; } + break; + + case 261: +#line 316 "lscp.y" + { yyval.Char = '\227'; } + break; + + case 262: +#line 317 "lscp.y" + { yyval.Char = '\230'; } + break; + + case 263: +#line 317 "lscp.y" + { yyval.Char = '\231'; } + break; + + case 264: +#line 317 "lscp.y" + { yyval.Char = '\232'; } + break; + + case 265: +#line 318 "lscp.y" + { yyval.Char = '\233'; } + break; + + case 266: +#line 318 "lscp.y" + { yyval.Char = '\234'; } + break; + + case 267: +#line 318 "lscp.y" + { yyval.Char = '\235'; } + break; + + case 268: +#line 319 "lscp.y" + { yyval.Char = '\236'; } + break; + + case 269: +#line 319 "lscp.y" + { yyval.Char = '\237'; } + break; + + case 270: +#line 319 "lscp.y" + { yyval.Char = '\240'; } + break; + + case 271: +#line 320 "lscp.y" + { yyval.Char = '\241'; } + break; + + case 272: +#line 320 "lscp.y" + { yyval.Char = '\242'; } + break; + + case 273: +#line 320 "lscp.y" + { yyval.Char = '\243'; } + break; + + case 274: +#line 321 "lscp.y" + { yyval.Char = '\244'; } + break; + + case 275: +#line 321 "lscp.y" + { yyval.Char = '\245'; } + break; + + case 276: +#line 321 "lscp.y" + { yyval.Char = '\246'; } + break; + + case 277: +#line 322 "lscp.y" + { yyval.Char = '\247'; } + break; + + case 278: +#line 322 "lscp.y" + { yyval.Char = '\250'; } + break; + + case 279: +#line 322 "lscp.y" + { yyval.Char = '\251'; } + break; + + case 280: +#line 323 "lscp.y" + { yyval.Char = '\252'; } + break; + + case 281: +#line 323 "lscp.y" + { yyval.Char = '\253'; } + break; + + case 282: +#line 323 "lscp.y" + { yyval.Char = '\254'; } + break; + + case 283: +#line 324 "lscp.y" + { yyval.Char = '\255'; } + break; + + case 284: +#line 324 "lscp.y" + { yyval.Char = '\256'; } + break; + + case 285: +#line 324 "lscp.y" + { yyval.Char = '\257'; } + break; + + case 286: +#line 325 "lscp.y" + { yyval.Char = '\260'; } + break; + + case 287: +#line 325 "lscp.y" + { yyval.Char = '\261'; } + break; + + case 288: +#line 325 "lscp.y" + { yyval.Char = '\262'; } + break; + + case 289: +#line 326 "lscp.y" + { yyval.Char = '\263'; } + break; + + case 290: +#line 326 "lscp.y" + { yyval.Char = '\264'; } + break; + + case 291: +#line 326 "lscp.y" + { yyval.Char = '\265'; } + break; + + case 292: +#line 327 "lscp.y" + { yyval.Char = '\266'; } + break; + + case 293: +#line 327 "lscp.y" + { yyval.Char = '\267'; } + break; + + case 294: +#line 327 "lscp.y" + { yyval.Char = '\270'; } + break; + + case 295: +#line 328 "lscp.y" + { yyval.Char = '\271'; } + break; + + case 296: +#line 328 "lscp.y" + { yyval.Char = '\272'; } + break; + + case 297: +#line 328 "lscp.y" + { yyval.Char = '\273'; } + break; + + case 298: +#line 329 "lscp.y" + { yyval.Char = '\274'; } + break; + + case 299: +#line 329 "lscp.y" + { yyval.Char = '\275'; } + break; + + case 300: +#line 329 "lscp.y" + { yyval.Char = '\276'; } + break; + + case 301: +#line 330 "lscp.y" + { yyval.Char = '\277'; } + break; + + case 302: +#line 330 "lscp.y" + { yyval.Char = '\300'; } + break; + + case 303: +#line 330 "lscp.y" + { yyval.Char = '\301'; } + break; + + case 304: +#line 331 "lscp.y" + { yyval.Char = '\302'; } + break; + + case 305: +#line 331 "lscp.y" + { yyval.Char = '\303'; } + break; + + case 306: +#line 331 "lscp.y" + { yyval.Char = '\304'; } + break; + + case 307: +#line 332 "lscp.y" + { yyval.Char = '\305'; } + break; + + case 308: +#line 332 "lscp.y" + { yyval.Char = '\306'; } + break; + + case 309: +#line 332 "lscp.y" + { yyval.Char = '\307'; } + break; + + case 310: +#line 333 "lscp.y" + { yyval.Char = '\310'; } + break; + + case 311: +#line 333 "lscp.y" + { yyval.Char = '\311'; } + break; + + case 312: +#line 333 "lscp.y" + { yyval.Char = '\312'; } + break; + + case 313: +#line 334 "lscp.y" + { yyval.Char = '\313'; } + break; + + case 314: +#line 334 "lscp.y" + { yyval.Char = '\314'; } + break; + + case 315: +#line 334 "lscp.y" + { yyval.Char = '\315'; } + break; + + case 316: +#line 335 "lscp.y" + { yyval.Char = '\316'; } + break; + + case 317: +#line 335 "lscp.y" + { yyval.Char = '\317'; } + break; + + case 318: +#line 335 "lscp.y" + { yyval.Char = '\320'; } + break; + + case 319: +#line 336 "lscp.y" + { yyval.Char = '\321'; } + break; + + case 320: +#line 336 "lscp.y" + { yyval.Char = '\322'; } + break; + + case 321: +#line 336 "lscp.y" + { yyval.Char = '\323'; } + break; + + case 322: +#line 337 "lscp.y" + { yyval.Char = '\324'; } + break; + + case 323: +#line 337 "lscp.y" + { yyval.Char = '\325'; } + break; + + case 324: +#line 337 "lscp.y" + { yyval.Char = '\326'; } + break; + + case 325: +#line 338 "lscp.y" + { yyval.Char = '\327'; } + break; + + case 326: +#line 338 "lscp.y" + { yyval.Char = '\330'; } + break; + + case 327: +#line 338 "lscp.y" + { yyval.Char = '\331'; } + break; + + case 328: +#line 339 "lscp.y" + { yyval.Char = '\332'; } + break; + + case 329: +#line 339 "lscp.y" + { yyval.Char = '\333'; } + break; + + case 330: +#line 339 "lscp.y" + { yyval.Char = '\334'; } + break; + + case 331: +#line 340 "lscp.y" + { yyval.Char = '\335'; } + break; + + case 332: +#line 340 "lscp.y" + { yyval.Char = '\336'; } + break; + + case 333: +#line 340 "lscp.y" + { yyval.Char = '\337'; } + break; + + case 334: +#line 341 "lscp.y" + { yyval.Char = '\340'; } + break; + + case 335: +#line 341 "lscp.y" + { yyval.Char = '\341'; } + break; + + case 336: +#line 341 "lscp.y" + { yyval.Char = '\342'; } + break; + + case 337: +#line 342 "lscp.y" + { yyval.Char = '\343'; } + break; + + case 338: +#line 342 "lscp.y" + { yyval.Char = '\344'; } + break; + + case 339: +#line 342 "lscp.y" + { yyval.Char = '\345'; } + break; + + case 340: +#line 343 "lscp.y" + { yyval.Char = '\346'; } + break; + + case 341: +#line 343 "lscp.y" + { yyval.Char = '\347'; } + break; + + case 342: +#line 343 "lscp.y" + { yyval.Char = '\350'; } + break; + + case 343: +#line 344 "lscp.y" + { yyval.Char = '\351'; } + break; + + case 344: +#line 344 "lscp.y" + { yyval.Char = '\352'; } + break; + + case 345: +#line 344 "lscp.y" + { yyval.Char = '\353'; } + break; + + case 346: +#line 345 "lscp.y" + { yyval.Char = '\354'; } + break; + + case 347: +#line 345 "lscp.y" + { yyval.Char = '\355'; } + break; + + case 348: +#line 345 "lscp.y" + { yyval.Char = '\356'; } + break; + + case 349: +#line 346 "lscp.y" + { yyval.Char = '\357'; } + break; + + case 350: +#line 346 "lscp.y" + { yyval.Char = '\360'; } + break; + + case 351: +#line 346 "lscp.y" + { yyval.Char = '\361'; } + break; + + case 352: +#line 347 "lscp.y" + { yyval.Char = '\362'; } + break; + + case 353: +#line 347 "lscp.y" + { yyval.Char = '\363'; } + break; + + case 354: +#line 347 "lscp.y" + { yyval.Char = '\364'; } + break; + + case 355: +#line 348 "lscp.y" + { yyval.Char = '\365'; } + break; + + case 356: +#line 348 "lscp.y" + { yyval.Char = '\366'; } + break; + + case 357: +#line 348 "lscp.y" + { yyval.Char = '\367'; } + break; + + case 358: +#line 349 "lscp.y" + { yyval.Char = '\370'; } + break; + + case 359: +#line 349 "lscp.y" + { yyval.Char = '\371'; } + break; + + case 360: +#line 349 "lscp.y" + { yyval.Char = '\372'; } + break; + + case 361: +#line 350 "lscp.y" + { yyval.Char = '\373'; } + break; + + case 362: +#line 350 "lscp.y" + { yyval.Char = '\374'; } + break; + + case 363: +#line 350 "lscp.y" + { yyval.Char = '\375'; } + break; + + case 364: +#line 351 "lscp.y" + { yyval.Char = '\376'; } + break; + + case 365: +#line 351 "lscp.y" + { yyval.Char = '\377'; } + break; + + case 366: +#line 354 "lscp.y" + { yyval.String = " "; } + break; + + case 368: +#line 356 "lscp.y" + { yyval.String = yyvsp[-1].String + " "; } + break; + + case 369: +#line 357 "lscp.y" + { yyval.String = yyvsp[-1].String + yyvsp[0].String; } + break; + + case 370: +#line 360 "lscp.y" + { yyval.String = yyvsp[-1].String; } + break; + + case 371: +#line 361 "lscp.y" + { yyval.String = yyvsp[-1].String; } + break; + } -/* Line 999 of yacc.c. */ -#line 1379 "y.tab.c" +/* Line 1010 of yacc.c. */ +#line 4409 "y.tab.c" yyvsp -= yylen; yyssp -= yylen; @@ -1416,18 +4446,33 @@ { YYSIZE_T yysize = 0; int yytype = YYTRANSLATE (yychar); + const char* yyprefix; char *yymsg; - int yyx, yycount; + int yyx; - yycount = 0; /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. */ - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) + 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 (yytname[yyx]) + 15, yycount++; - yysize += yystrlen ("syntax error, unexpected ") + 1; - yysize += yystrlen (yytname[yytype]); + { + 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) { @@ -1436,16 +4481,13 @@ if (yycount < 5) { - yycount = 0; - for (yyx = yyn < 0 ? -yyn : 0; - yyx < (int) (sizeof (yytname) / sizeof (char *)); - yyx++) + yyprefix = ", expecting "; + for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { - const char *yyq = ! yycount ? ", expecting " : " or "; - yyp = yystpcpy (yyp, yyq); + yyp = yystpcpy (yyp, yyprefix); yyp = yystpcpy (yyp, yytname[yyx]); - yycount++; + yyprefix = " or "; } } yyerror (yymsg); @@ -1466,25 +4508,27 @@ /* If just tried and failed to reuse lookahead token after an error, discard it. */ - /* Return failure if at end of input. */ - if (yychar == YYEOF) + if (yychar <= YYEOF) { - /* Pop the error token. */ - YYPOPSTACK; - /* Pop the rest of the stack. */ - while (yyss < yyssp) - { - YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); - yydestruct (yystos[*yyssp], yyvsp); - YYPOPSTACK; - } - YYABORT; + /* 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; - YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); - yydestruct (yytoken, &yylval); - yychar = YYEMPTY; - + } } /* Else will try to reuse lookahead token after shifting the error @@ -1492,9 +4536,27 @@ goto yyerrlab1; -/*----------------------------------------------------. -| yyerrlab1 -- error raised explicitly by an action. | -`----------------------------------------------------*/ +/*---------------------------------------------------. +| yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +yyerrorlab: + +#ifdef __GNUC__ + /* Pacify GCC when the user code never invokes YYERROR and the label + yyerrorlab therefore never appears in user code. */ + if (0) + goto yyerrorlab; +#endif + + yyvsp -= yylen; + yyssp -= yylen; + yystate = *yyssp; + goto yyerrlab1; + + +/*-------------------------------------------------------------. +| yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ @@ -1518,9 +4580,8 @@ YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); yydestruct (yystos[yystate], yyvsp); - yyvsp--; - yystate = *--yyssp; - + YYPOPSTACK; + yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } @@ -1569,7 +4630,7 @@ } -#line 178 "lscp.y" +#line 529 "lscp.y" /** @@ -1580,16 +4641,11 @@ } /** - * Clears input buffer and restarts scanner. + * Clears input buffer. */ void restart(yyparse_param_t* pparam, int& yychar) { - // restart scanner - yyrestart(stdin, pparam->pScanner); - // flush input buffer - static char buf[1024]; - while(recv(hSession, buf, 1024, MSG_DONTWAIT) > 0); - // reset lookahead symbol - yyclearin; + bytes = 0; + ptr = 0; }