1 /* A Bison parser, made by GNU Bison 3.3.2. */
2
3 /* Bison implementation for Yacc-like parsers in C
4
5 Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2019 Free Software Foundation,
6 Inc.
7
8 This program is free software: you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation, either version 3 of the License, or
11 (at your option) any later version.
12
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
17
18 You should have received a copy of the GNU General Public License
19 along with this program. If not, see <http://www.gnu.org/licenses/>. */
20
21 /* As a special exception, you may create a larger work that contains
22 part or all of the Bison parser skeleton and distribute that work
23 under terms of your choice, so long as that work isn't itself a
24 parser generator using the skeleton or a modified version thereof
25 as a parser skeleton. Alternatively, if you modify or redistribute
26 the parser skeleton itself, you may (at your option) remove this
27 special exception, which will cause the skeleton and the resulting
28 Bison output files to be licensed under the GNU General Public
29 License without this special exception.
30
31 This special exception was added by the Free Software Foundation in
32 version 2.2 of Bison. */
33
34 /* C LALR(1) parser skeleton written by Richard Stallman, by
35 simplifying the original so-called "semantic" parser. */
36
37 /* All symbols defined below should begin with yy or YY, to avoid
38 infringing on user name space. This should be done even for local
39 variables, as they might otherwise be expanded by user macros.
40 There are some unavoidable exceptions within include files to
41 define necessary library symbols; they are noted "INFRINGES ON
42 USER NAME SPACE" below. */
43
44 /* Undocumented macros, especially those whose name start with YY_,
45 are private implementation details. Do not rely on them. */
46
47 /* Identify Bison output. */
48 #define YYBISON 1
49
50 /* Bison version. */
51 #define YYBISON_VERSION "3.3.2"
52
53 /* Skeleton name. */
54 #define YYSKELETON_NAME "yacc.c"
55
56 /* Pure parsers. */
57 #define YYPURE 1
58
59 /* Push parsers. */
60 #define YYPUSH 0
61
62 /* Pull parsers. */
63 #define YYPULL 1
64
65
66
67
68 /* First part of user prologue. */
69 #line 32 "lscp.y" /* yacc.c:337 */
70
71
72 #include "lscpparser.h"
73 #include "lscpserver.h"
74 #include "lscpevent.h"
75
76 #if AC_APPLE_UNIVERSAL_BUILD
77 # include "lscp.tab.h"
78 #else
79 # include "lscpsymbols.h"
80 #endif
81
82 #include <algorithm>
83 #include "lscp.h"
84
85 namespace LinuxSampler {
86
87 // to save us typing work in the rules action definitions
88 #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer
89 #define SESSION_PARAM ((yyparse_param_t*) yyparse_param)
90 #define INCREMENT_LINE { SESSION_PARAM->onNextLine(); sParsed.clear(); }
91
92 // clears input buffer
93 void restart(yyparse_param_t* pparam, int& yychar);
94 #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)
95
96 static char buf[1024]; // input buffer to feed the parser with new characters
97 static int bytes = 0; // current number of characters in the input buffer
98 static int ptr = 0; // current position in the input buffer
99 static String sLastError; // error message of the last error occured
100 static String sParsed; ///< Characters of current line which have already been shifted (consumed/parsed) by the parser.
101
102 // external reference to the function which actually reads from the socket
103 extern int GetLSCPCommand( void *buf, int max_size);
104
105 // external reference to the function in lscpserver.cpp which returns the
106 // current session (only works because the server runs as singleton)
107 extern yyparse_param_t* GetCurrentYaccSession();
108
109 // returns true if supplied characters has an ASCII code of 128 or higher
isExtendedAsciiChar(const char c)110 inline bool isExtendedAsciiChar(const char c) {
111 return (c < 0);
112 }
113
114 // returns true if the given character is between between a to z.
isLowerCaseAlphaChar(const char c)115 inline bool isLowerCaseAlphaChar(const char c) {
116 return c >= 'a' && c <= 'z';
117 }
118
119 // converts the given (expected) lower case character to upper case
alphaCharToUpperCase(const char c)120 inline char alphaCharToUpperCase(const char c) {
121 return (c - 'a') + 'A';
122 }
123
124 // custom scanner function which reads from the socket
125 // (bison expects it to return the numerical ID of the next
126 // "recognized token" from the input stream)
yylex(YYSTYPE * yylval)127 int yylex(YYSTYPE* yylval) {
128 // check if we have to read new characters
129 if (ptr >= bytes) {
130 bytes = GetLSCPCommand(buf, 1023);
131 ptr = 0;
132 if (bytes < 0) {
133 bytes = 0;
134 return 0;
135 }
136 }
137 // this is the next character in the input stream
138 const char c = buf[ptr++];
139 // increment current reading position (just for verbosity / messages)
140 GetCurrentYaccSession()->iColumn++;
141 sParsed += c;
142 // we have to handle "normal" and "extended" ASCII characters separately
143 if (isExtendedAsciiChar(c)) {
144 // workaround for characters with ASCII code higher than 127
145 yylval->Char = c;
146 return EXT_ASCII_CHAR;
147 } else {
148 // simply return the ASCII code as terminal symbol ID
149 return (int) c;
150 }
151 }
152
153 // parser helper functions
154
octalsToNumber(char oct_digit0,char oct_digit1='0',char oct_digit2='0')155 int octalsToNumber(char oct_digit0, char oct_digit1 = '0', char oct_digit2 = '0') {
156 const char d0[] = { oct_digit0, '\0' };
157 const char d1[] = { oct_digit1, '\0' };
158 const char d2[] = { oct_digit2, '\0' };
159 return atoi(d2)*8*8 + atoi(d1)*8 + atoi(d0);
160 }
161
162 }
163
164 using namespace LinuxSampler;
165
166 static std::set<String> yyExpectedSymbols();
167
168 /**
169 * Will be called when an error occured (usually syntax error).
170 *
171 * We provide our own version of yyerror() so we a) don't have to link against
172 * the yacc library and b) can render more helpful syntax error messages.
173 */
yyerror(void * x,const char * s)174 void yyerror(void* x, const char* s) {
175 yyparse_param_t* param = GetCurrentYaccSession();
176
177 // get the text part already parsed (of current line)
178 const bool bContainsLineFeed =
179 sParsed.find('\r') != std::string::npos ||
180 sParsed.find('\n') != std::string::npos;
181 // remove potential line feed characters
182 if (bContainsLineFeed) {
183 for (size_t p = sParsed.find('\r'); p != std::string::npos;
184 p = sParsed.find('\r')) sParsed.erase(p);
185 for (size_t p = sParsed.find('\n'); p != std::string::npos;
186 p = sParsed.find('\n')) sParsed.erase(p);
187 }
188
189 // start assembling the error message with Bison's own message
190 String txt = s;
191
192 // append exact position info of syntax error
193 txt += (" (line:" + ToString(param->iLine+1)) +
194 (",column:" + ToString(param->iColumn)) + ")";
195
196 // append the part of the lined that has already been parsed
197 txt += ". Context: \"" + sParsed;
198 if (txt.empty() || bContainsLineFeed)
199 txt += "^";
200 else
201 txt.insert(txt.size() - 1, "^");
202 txt += "...\"";
203
204 // append the non-terminal symbols expected now/next
205 std::set<String> expectedSymbols = yyExpectedSymbols();
206 for (std::set<String>::const_iterator it = expectedSymbols.begin();
207 it != expectedSymbols.end(); ++it)
208 {
209 if (it == expectedSymbols.begin())
210 txt += " -> Should be: " + *it;
211 else
212 txt += " | " + *it;
213 }
214
215 dmsg(2,("LSCPParser: %s\n", txt.c_str()));
216 sLastError = txt;
217 }
218
219
220 #line 221 "y.tab.c" /* yacc.c:337 */
221 # ifndef YY_NULLPTR
222 # if defined __cplusplus
223 # if 201103L <= __cplusplus
224 # define YY_NULLPTR nullptr
225 # else
226 # define YY_NULLPTR 0
227 # endif
228 # else
229 # define YY_NULLPTR ((void*)0)
230 # endif
231 # endif
232
233 /* Enabling verbose error messages. */
234 #ifdef YYERROR_VERBOSE
235 # undef YYERROR_VERBOSE
236 # define YYERROR_VERBOSE 1
237 #else
238 # define YYERROR_VERBOSE 1
239 #endif
240
241
242 /* Debug traces. */
243 #ifndef YYDEBUG
244 # define YYDEBUG 0
245 #endif
246 #if YYDEBUG
247 extern int yydebug;
248 #endif
249
250 /* Token type. */
251 #ifndef YYTOKENTYPE
252 # define YYTOKENTYPE
253 enum yytokentype
254 {
255 EXT_ASCII_CHAR = 258
256 };
257 #endif
258 /* Tokens. */
259 #define EXT_ASCII_CHAR 258
260
261 /* Value type. */
262
263
264
265 int yyparse (void* yyparse_param);
266
267
268
269
270
271 #ifdef short
272 # undef short
273 #endif
274
275 #ifdef YYTYPE_UINT8
276 typedef YYTYPE_UINT8 yytype_uint8;
277 #else
278 typedef unsigned char yytype_uint8;
279 #endif
280
281 #ifdef YYTYPE_INT8
282 typedef YYTYPE_INT8 yytype_int8;
283 #else
284 typedef signed char yytype_int8;
285 #endif
286
287 #ifdef YYTYPE_UINT16
288 typedef YYTYPE_UINT16 yytype_uint16;
289 #else
290 typedef unsigned short yytype_uint16;
291 #endif
292
293 #ifdef YYTYPE_INT16
294 typedef YYTYPE_INT16 yytype_int16;
295 #else
296 typedef short yytype_int16;
297 #endif
298
299 #ifndef YYSIZE_T
300 # ifdef __SIZE_TYPE__
301 # define YYSIZE_T __SIZE_TYPE__
302 # elif defined size_t
303 # define YYSIZE_T size_t
304 # elif ! defined YYSIZE_T
305 # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
306 # define YYSIZE_T size_t
307 # else
308 # define YYSIZE_T unsigned
309 # endif
310 #endif
311
312 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
313
314 #ifndef YY_
315 # if defined YYENABLE_NLS && YYENABLE_NLS
316 # if ENABLE_NLS
317 # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
318 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
319 # endif
320 # endif
321 # ifndef YY_
322 # define YY_(Msgid) Msgid
323 # endif
324 #endif
325
326 #ifndef YY_ATTRIBUTE
327 # if (defined __GNUC__ \
328 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
329 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
330 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
331 # else
332 # define YY_ATTRIBUTE(Spec) /* empty */
333 # endif
334 #endif
335
336 #ifndef YY_ATTRIBUTE_PURE
337 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
338 #endif
339
340 #ifndef YY_ATTRIBUTE_UNUSED
341 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
342 #endif
343
344 /* Suppress unused-variable warnings by "using" E. */
345 #if ! defined lint || defined __GNUC__
346 # define YYUSE(E) ((void) (E))
347 #else
348 # define YYUSE(E) /* empty */
349 #endif
350
351 #if defined __GNUC__ && ! defined __ICC && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
352 /* Suppress an incorrect diagnostic about yylval being uninitialized. */
353 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
354 _Pragma ("GCC diagnostic push") \
355 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
356 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
357 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
358 _Pragma ("GCC diagnostic pop")
359 #else
360 # define YY_INITIAL_VALUE(Value) Value
361 #endif
362 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
363 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
364 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
365 #endif
366 #ifndef YY_INITIAL_VALUE
367 # define YY_INITIAL_VALUE(Value) /* Nothing. */
368 #endif
369
370
371 #if ! defined yyoverflow || YYERROR_VERBOSE
372
373 /* The parser invokes alloca or malloc; define the necessary symbols. */
374
375 # ifdef YYSTACK_USE_ALLOCA
376 # if YYSTACK_USE_ALLOCA
377 # ifdef __GNUC__
378 # define YYSTACK_ALLOC __builtin_alloca
379 # elif defined __BUILTIN_VA_ARG_INCR
380 # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
381 # elif defined _AIX
382 # define YYSTACK_ALLOC __alloca
383 # elif defined _MSC_VER
384 # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
385 # define alloca _alloca
386 # else
387 # define YYSTACK_ALLOC alloca
388 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
389 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
390 /* Use EXIT_SUCCESS as a witness for stdlib.h. */
391 # ifndef EXIT_SUCCESS
392 # define EXIT_SUCCESS 0
393 # endif
394 # endif
395 # endif
396 # endif
397 # endif
398
399 # ifdef YYSTACK_ALLOC
400 /* Pacify GCC's 'empty if-body' warning. */
401 # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
402 # ifndef YYSTACK_ALLOC_MAXIMUM
403 /* The OS might guarantee only one guard page at the bottom of the stack,
404 and a page size can be as small as 4096 bytes. So we cannot safely
405 invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
406 to allow for a few compiler-allocated temporary stack slots. */
407 # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
408 # endif
409 # else
410 # define YYSTACK_ALLOC YYMALLOC
411 # define YYSTACK_FREE YYFREE
412 # ifndef YYSTACK_ALLOC_MAXIMUM
413 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
414 # endif
415 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
416 && ! ((defined YYMALLOC || defined malloc) \
417 && (defined YYFREE || defined free)))
418 # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
419 # ifndef EXIT_SUCCESS
420 # define EXIT_SUCCESS 0
421 # endif
422 # endif
423 # ifndef YYMALLOC
424 # define YYMALLOC malloc
425 # if ! defined malloc && ! defined EXIT_SUCCESS
426 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
427 # endif
428 # endif
429 # ifndef YYFREE
430 # define YYFREE free
431 # if ! defined free && ! defined EXIT_SUCCESS
432 void free (void *); /* INFRINGES ON USER NAME SPACE */
433 # endif
434 # endif
435 # endif
436 #endif /* ! defined yyoverflow || YYERROR_VERBOSE */
437
438
439 #if (! defined yyoverflow \
440 && (! defined __cplusplus \
441 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
442
443 /* A type that is properly aligned for any stack member. */
444 union yyalloc
445 {
446 yytype_int16 yyss_alloc;
447 YYSTYPE yyvs_alloc;
448 };
449
450 /* The size of the maximum gap between one aligned stack and the next. */
451 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
452
453 /* The size of an array large to enough to hold all stacks, each with
454 N elements. */
455 # define YYSTACK_BYTES(N) \
456 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
457 + YYSTACK_GAP_MAXIMUM)
458
459 # define YYCOPY_NEEDED 1
460
461 /* Relocate STACK from its old location to the new one. The
462 local variables YYSIZE and YYSTACKSIZE give the old and new number of
463 elements in the stack, and YYPTR gives the new location of the
464 stack. Advance YYPTR to a properly aligned location for the next
465 stack. */
466 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
467 do \
468 { \
469 YYSIZE_T yynewbytes; \
470 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
471 Stack = &yyptr->Stack_alloc; \
472 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
473 yyptr += yynewbytes / sizeof (*yyptr); \
474 } \
475 while (0)
476
477 #endif
478
479 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
480 /* Copy COUNT objects from SRC to DST. The source and destination do
481 not overlap. */
482 # ifndef YYCOPY
483 # if defined __GNUC__ && 1 < __GNUC__
484 # define YYCOPY(Dst, Src, Count) \
485 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
486 # else
487 # define YYCOPY(Dst, Src, Count) \
488 do \
489 { \
490 YYSIZE_T yyi; \
491 for (yyi = 0; yyi < (Count); yyi++) \
492 (Dst)[yyi] = (Src)[yyi]; \
493 } \
494 while (0)
495 # endif
496 # endif
497 #endif /* !YYCOPY_NEEDED */
498
499 /* YYFINAL -- State number of the termination state. */
500 #define YYFINAL 64
501 /* YYLAST -- Last index in YYTABLE. */
502 #define YYLAST 5021
503
504 /* YYNTOKENS -- Number of terminals. */
505 #define YYNTOKENS 100
506 /* YYNNTS -- Number of nonterminals. */
507 #define YYNNTS 233
508 /* YYNRULES -- Number of rules. */
509 #define YYNRULES 669
510 /* YYNSTATES -- Number of states. */
511 #define YYNSTATES 2662
512
513 #define YYUNDEFTOK 2
514 #define YYMAXUTOK 258
515
516 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
517 as returned by yylex, with out-of-bounds checking. */
518 #define YYTRANSLATE(YYX) \
519 ((unsigned) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
520
521 /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
522 as returned by yylex. */
523 static const yytype_uint8 yytranslate[] =
524 {
525 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
526 98, 2, 2, 99, 2, 2, 2, 2, 2, 2,
527 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
528 2, 2, 97, 77, 33, 4, 78, 79, 80, 32,
529 81, 82, 83, 8, 6, 9, 7, 34, 10, 11,
530 12, 13, 14, 15, 16, 17, 18, 19, 35, 84,
531 85, 5, 86, 87, 88, 26, 27, 28, 29, 30,
532 31, 37, 38, 39, 40, 41, 42, 43, 44, 45,
533 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
534 56, 89, 36, 90, 91, 92, 2, 20, 21, 22,
535 23, 24, 25, 57, 58, 59, 60, 61, 62, 63,
536 64, 65, 66, 67, 68, 69, 70, 71, 72, 73,
537 74, 75, 76, 93, 94, 95, 96, 2, 2, 2,
538 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
539 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
540 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
541 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
542 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
543 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
544 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
545 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
546 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
547 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
548 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
549 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
550 2, 2, 2, 2, 2, 2, 1, 2, 3
551 };
552
553 #if YYDEBUG
554 /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
555 static const yytype_uint16 yyrline[] =
556 {
557 0, 227, 227, 228, 231, 232, 235, 236, 237, 240,
558 241, 242, 243, 244, 247, 248, 249, 250, 251, 252,
559 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
560 263, 264, 265, 266, 267, 268, 269, 270, 273, 274,
561 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
562 285, 286, 287, 290, 291, 292, 293, 294, 295, 296,
563 297, 298, 299, 300, 301, 302, 303, 304, 305, 306,
564 307, 308, 309, 310, 311, 312, 313, 314, 315, 316,
565 317, 318, 319, 322, 323, 324, 325, 326, 327, 328,
566 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
567 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
568 349, 350, 351, 354, 355, 356, 357, 360, 363, 364,
569 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
570 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
571 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
572 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
573 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
574 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
575 427, 428, 429, 432, 433, 434, 435, 436, 437, 438,
576 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
577 449, 450, 451, 452, 453, 454, 455, 456, 459, 460,
578 461, 462, 463, 464, 465, 466, 469, 472, 473, 476,
579 477, 478, 479, 480, 483, 484, 487, 488, 491, 492,
580 493, 494, 497, 498, 501, 504, 507, 508, 509, 510,
581 511, 512, 513, 514, 515, 516, 517, 518, 519, 520,
582 523, 526, 529, 530, 533, 534, 537, 538, 541, 542,
583 543, 544, 545, 546, 547, 548, 549, 550, 551, 552,
584 553, 554, 555, 556, 557, 558, 559, 562, 565, 566,
585 569, 572, 573, 574, 577, 580, 583, 586, 589, 592,
586 593, 596, 599, 602, 605, 608, 611, 612, 615, 618,
587 621, 624, 627, 630, 640, 643, 646, 649, 652, 655,
588 658, 661, 664, 667, 668, 672, 673, 674, 675, 678,
589 679, 682, 683, 686, 687, 688, 691, 694, 702, 703,
590 706, 707, 708, 711, 712, 713, 714, 715, 716, 720,
591 721, 724, 725, 726, 727, 728, 729, 730, 731, 732,
592 733, 736, 737, 738, 739, 740, 741, 742, 743, 746,
593 747, 748, 749, 750, 751, 752, 753, 754, 755, 756,
594 757, 758, 759, 760, 761, 762, 763, 764, 765, 766,
595 767, 770, 771, 772, 773, 774, 775, 776, 777, 778,
596 779, 782, 783, 786, 789, 790, 793, 794, 795, 798,
597 799, 802, 803, 806, 807, 808, 809, 813, 814, 815,
598 816, 819, 820, 821, 822, 825, 826, 829, 830, 831,
599 832, 836, 837, 838, 842, 842, 842, 842, 842, 842,
600 842, 842, 842, 842, 842, 842, 842, 842, 842, 842,
601 842, 842, 842, 842, 842, 842, 842, 842, 842, 842,
602 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
603 843, 843, 843, 843, 843, 843, 843, 843, 843, 843,
604 843, 843, 843, 843, 843, 843, 847, 848, 848, 848,
605 848, 848, 848, 848, 848, 848, 848, 849, 849, 849,
606 849, 849, 849, 849, 849, 849, 849, 849, 849, 850,
607 850, 850, 850, 850, 850, 850, 851, 851, 851, 851,
608 852, 852, 852, 852, 853, 856, 857, 858, 859, 860,
609 861, 862, 863, 864, 865, 866, 869, 870, 871, 874,
610 875, 880, 883, 886, 889, 892, 895, 898, 901, 904,
611 907, 910, 913, 916, 919, 922, 925, 928, 931, 934,
612 937, 940, 943, 946, 949, 952, 955, 958, 961, 964,
613 967, 970, 973, 976, 979, 982, 985, 988, 991, 994,
614 997, 1000, 1003, 1006, 1009, 1012, 1015, 1018, 1021, 1024,
615 1027, 1030, 1033, 1036, 1039, 1042, 1045, 1048, 1051, 1054,
616 1057, 1060, 1063, 1066, 1069, 1072, 1075, 1078, 1081, 1084,
617 1087, 1090, 1093, 1096, 1099, 1102, 1105, 1108, 1111, 1114,
618 1117, 1120, 1123, 1126, 1129, 1132, 1135, 1138, 1141, 1144,
619 1147, 1150, 1153, 1156, 1159, 1162, 1165, 1168, 1171, 1174,
620 1177, 1180, 1183, 1186, 1189, 1192, 1195, 1198, 1201, 1204,
621 1207, 1210, 1213, 1216, 1219, 1222, 1225, 1228, 1231, 1234,
622 1237, 1240, 1243, 1246, 1249, 1252, 1255, 1258, 1261, 1264,
623 1267, 1270, 1273, 1276, 1279, 1282, 1285, 1288, 1291, 1294
624 };
625 #endif
626
627 #if YYDEBUG || YYERROR_VERBOSE || 1
628 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
629 First, the terminals, then, starting at YYNTOKENS, nonterminals. */
630 static const char *const yytname[] =
631 {
632 "$end", "error", "$undefined", "EXT_ASCII_CHAR", "'#'", "'='", "','",
633 "'.'", "'+'", "'-'", "'0'", "'1'", "'2'", "'3'", "'4'", "'5'", "'6'",
634 "'7'", "'8'", "'9'", "'a'", "'b'", "'c'", "'d'", "'e'", "'f'", "'A'",
635 "'B'", "'C'", "'D'", "'E'", "'F'", "'\\''", "'\"'", "'/'", "':'",
636 "'\\\\'", "'G'", "'H'", "'I'", "'J'", "'K'", "'L'", "'M'", "'N'", "'O'",
637 "'P'", "'Q'", "'R'", "'S'", "'T'", "'U'", "'V'", "'W'", "'X'", "'Y'",
638 "'Z'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", "'n'", "'o'",
639 "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", "'x'", "'y'",
640 "'z'", "'!'", "'$'", "'%'", "'&'", "'('", "')'", "'*'", "';'", "'<'",
641 "'>'", "'?'", "'@'", "'['", "']'", "'^'", "'_'", "'{'", "'|'", "'}'",
642 "'~'", "' '", "'\\n'", "'\\r'", "$accept", "input", "line", "statement",
643 "comment", "command", "add_instruction", "subscribe_event",
644 "unsubscribe_event", "map_instruction", "unmap_instruction",
645 "remove_instruction", "get_instruction", "set_instruction",
646 "create_instruction", "reset_instruction", "clear_instruction",
647 "find_instruction", "move_instruction", "copy_instruction",
648 "destroy_instruction", "load_instruction", "append_instruction",
649 "insert_instruction", "set_chan_instruction", "edit_instruction",
650 "format_instruction", "modal_arg", "key_val_list", "buffer_size_type",
651 "list_instruction", "send_instruction", "load_instr_args",
652 "load_engine_args", "instr_load_mode", "effect_instance", "device_index",
653 "audio_channel_index", "audio_output_type_name", "midi_input_port_index",
654 "midi_input_channel_index", "midi_input_type_name", "midi_map",
655 "midi_bank", "midi_prog", "midi_ctrl", "volume_value", "control_value",
656 "sampler_channel", "instrument_index", "fx_send_id", "engine_name",
657 "filename", "db_path", "map_name", "entry_name", "fx_send_name",
658 "effect_name", "effect_index", "effect_chain", "chain_pos",
659 "input_control", "param_val_list", "param_val", "query_val_list",
660 "query_val", "scan_mode", "effect_system", "module", "boolean", "dotnum",
661 "real", "digits", "digit", "digit_oct", "digit_hex", "number", "path",
662 "path_base", "path_prefix", "path_body", "stringval",
663 "stringval_escaped", "text", "text_escaped_base", "text_escaped",
664 "string", "string_escaped", "char", "alpha_char", "char_base",
665 "escape_seq", "escape_seq_octal", "escape_seq_hex", "SP", "LF", "CR",
666 "ADD", "GET", "MAP", "UNMAP", "CLEAR", "FIND", "FILE_AS_DIR", "MOVE",
667 "COPY", "CREATE", "DESTROY", "LIST", "LOAD", "ALL", "NONE", "DEFAULT",
668 "NON_MODAL", "REMOVE", "SET", "SHELL", "INTERACT", "AUTO_CORRECT",
669 "APPEND", "INSERT", "SUBSCRIBE", "UNSUBSCRIBE", "CHANNEL",
670 "AVAILABLE_ENGINES", "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS",
671 "INFO", "AUDIO_OUTPUT_DEVICE_COUNT", "AUDIO_OUTPUT_DEVICE_INFO",
672 "MIDI_INPUT_DEVICE_COUNT", "MIDI_INPUT_DEVICE_INFO",
673 "MIDI_INSTRUMENT_MAP_COUNT", "MIDI_INSTRUMENT_MAP_INFO",
674 "MIDI_INSTRUMENT_COUNT", "MIDI_INSTRUMENT_INFO",
675 "DB_INSTRUMENT_DIRECTORY_COUNT", "DB_INSTRUMENT_DIRECTORY_INFO",
676 "DB_INSTRUMENT_COUNT", "DB_INSTRUMENT_INFO", "DB_INSTRUMENT_FILES",
677 "DB_INSTRUMENTS_JOB_INFO", "CHANNEL_COUNT", "CHANNEL_MIDI",
678 "DEVICE_MIDI", "CHANNEL_INFO", "FX_SEND_COUNT", "FX_SEND_INFO",
679 "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT", "TOTAL_STREAM_COUNT",
680 "TOTAL_VOICE_COUNT", "TOTAL_VOICE_COUNT_MAX", "GLOBAL_INFO",
681 "EFFECT_INSTANCE_COUNT", "EFFECT_INSTANCE_INFO",
682 "SEND_EFFECT_CHAIN_COUNT", "SEND_EFFECT_CHAIN_INFO", "INSTRUMENT",
683 "INSTRUMENTS", "ENGINE", "ON_DEMAND", "ON_DEMAND_HOLD", "PERSISTENT",
684 "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DEVICES",
685 "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DRIVER_PARAMETER",
686 "AUDIO_OUTPUT_DRIVER", "AUDIO_OUTPUT_CHANNEL_PARAMETER",
687 "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_TYPE", "AVAILABLE_EFFECTS",
688 "EFFECT", "EFFECT_INSTANCE", "EFFECT_INSTANCES",
689 "EFFECT_INSTANCE_INPUT_CONTROL", "SEND_EFFECT_CHAIN",
690 "SEND_EFFECT_CHAINS", "AVAILABLE_MIDI_INPUT_DRIVERS",
691 "MIDI_INPUT_DEVICE_PARAMETER", "MIDI_INPUT_PORT_PARAMETER",
692 "MIDI_INPUT_DEVICES", "MIDI_INPUT_DEVICE", "MIDI_INPUT_DRIVER_PARAMETER",
693 "MIDI_INSTRUMENT", "MIDI_INSTRUMENTS", "MIDI_INSTRUMENT_MAP",
694 "MIDI_INSTRUMENT_MAPS", "MIDI_INPUT_DRIVER", "MIDI_INPUT_PORT",
695 "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "MIDI_INPUT", "MIDI_INPUTS",
696 "MIDI_CONTROLLER", "SEND", "FX_SEND", "FX_SENDS",
697 "DB_INSTRUMENT_DIRECTORY", "DB_INSTRUMENT_DIRECTORIES", "DB_INSTRUMENTS",
698 "DB_INSTRUMENT", "DB_INSTRUMENTS_JOB", "INSTRUMENTS_DB", "DESCRIPTION",
699 "FORCE", "FLAT", "RECURSIVE", "NON_RECURSIVE", "LOST", "FILE_PATH",
700 "SERVER", "VOLUME", "LEVEL", "VALUE", "MUTE", "SOLO", "VOICES",
701 "STREAMS", "BYTES", "PERCENTAGE", "FILE", "EDIT", "FORMAT", "MIDI_DATA",
702 "RESET", "MISCELLANEOUS", "NAME", "ECHO", "DOC", "QUIT", YY_NULLPTR
703 };
704 #endif
705
706 # ifdef YYPRINT
707 /* YYTOKNUM[NUM] -- (External) token number corresponding to the
708 (internal) symbol number NUM (which must be that of a token). */
709 static const yytype_uint16 yytoknum[] =
710 {
711 0, 256, 257, 258, 35, 61, 44, 46, 43, 45,
712 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
713 97, 98, 99, 100, 101, 102, 65, 66, 67, 68,
714 69, 70, 39, 34, 47, 58, 92, 71, 72, 73,
715 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
716 84, 85, 86, 87, 88, 89, 90, 103, 104, 105,
717 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
718 116, 117, 118, 119, 120, 121, 122, 33, 36, 37,
719 38, 40, 41, 42, 59, 60, 62, 63, 64, 91,
720 93, 94, 95, 123, 124, 125, 126, 32, 10, 13
721 };
722 # endif
723
724 #define YYPACT_NINF -1718
725
726 #define yypact_value_is_default(Yystate) \
727 (!!((Yystate) == (-1718)))
728
729 #define YYTABLE_NINF -382
730
731 #define yytable_value_is_error(Yytable_value) \
732 0
733
734 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
735 STATE-NUM. */
736 static const yytype_int16 yypact[] =
737 {
738 893, -1718, -1718, 116, 128, 47, 75, 95, 145, 246,
739 379, 148, 194, 268, 91, 381, 395, -1718, 358, 3095,
740 -1718, 411, 411, 411, 411, 411, 411, 411, 411, 411,
741 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
742 411, 411, 411, -1718, 492, 482, 510, 503, 592, 594,
743 587, 601, 605, 651, 670, 674, 702, 698, 716, 715,
744 548, 455, 742, 555, -1718, -1718, -1718, -1718, 673, -1718,
745 -1718, -1718, -1718, -1718, -1718, -1718, -1718, 892, 892, 892,
746 892, 892, 892, 892, 892, 892, -1718, -1718, -1718, -1718,
747 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
748 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
749 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
750 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
751 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
752 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
753 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
754 -1718, -1718, -1718, -1718, 3853, -1718, -1718, -1718, -1718, 201,
755 496, 729, 729, 730, 174, 745, 745, 422, 422, 301,
756 138, 415, 580, 726, 726, 466, 466, 749, 749, 740,
757 749, -1718, 751, 756, 736, 768, 747, 748, 766, 765,
758 -1718, 782, 763, 785, -1718, 801, 788, 770, 815, 819,
759 -1718, 803, 827, 804, -1718, -1718, -1718, -1718, -1718, -1718,
760 -1718, -1718, -1718, -1718, -1718, 892, -1718, 892, 892, 892,
761 892, 892, 892, 892, 892, -1718, -1718, -1718, -1718, -1718,
762 -1718, -1718, -1718, -1718, -1718, -1718, -1718, 818, 830, 820,
763 831, -1718, 411, 411, 411, 411, 411, 161, 822, 835,
764 355, 215, 824, 102, 821, 828, -1718, 411, -1718, -1718,
765 -1718, -1718, -1718, -1718, 411, -1718, 411, 411, 411, 411,
766 411, -1718, 411, 411, -1718, 411, 411, 411, -1718, 411,
767 -1718, 411, 411, 411, 411, 411, -1718, 411, 411, 411,
768 411, 411, 411, 411, 411, 411, 411, -1718, -1718, -1718,
769 411, 833, -1718, 411, -1718, 411, 836, -1718, 411, 840,
770 829, -1718, 411, 411, 411, 842, -1718, 411, 411, -1718,
771 411, 411, 825, 846, 839, 856, -1718, 411, 411, 411,
772 411, -1718, 411, 411, 411, 411, 544, 847, 295, 857,
773 868, -1718, 411, -1718, -1718, -1718, -1718, -1718, -1718, 411,
774 -1718, -1718, 411, -1718, 411, 411, 411, 411, 869, 871,
775 -1718, 411, 411, -1718, 411, 411, 411, 411, 411, 411,
776 849, 333, 877, 278, -1718, 411, 411, 411, 411, 411,
777 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
778 -1718, 411, -1718, 411, 866, 867, 887, 335, 895, 875,
779 885, 894, 107, 886, 889, -1718, -1718, -1718, -1718, -1718,
780 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
781 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
782 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
783 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
784 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
785 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, 411, -1718,
786 411, 899, -1718, -1718, -1718, 411, 901, 890, -1718, 896,
787 891, -1718, -1718, 911, 900, -1718, -1718, -1718, -1718, 897,
788 913, -1718, 923, 918, 938, -1718, 941, 876, 942, 931,
789 945, 1195, 598, 653, 269, 955, 960, 964, 902, 962,
790 959, 956, 905, 971, 167, 953, 952, 433, 114, 965,
791 965, 965, 965, 965, 965, 965, 965, 965, 965, 1195,
792 965, 965, 965, 965, 873, 965, 965, 965, 965, 1195,
793 965, 208, 208, 965, 965, 965, 966, 977, 963, 1195,
794 979, 873, 917, 961, 382, 382, 982, 929, 653, 653,
795 653, 653, 993, 992, 932, 999, 3853, 3947, 3853, 1195,
796 1195, 1195, 1195, 1195, 1000, 1001, 939, 1004, 986, 994,
797 1195, 873, 1195, 208, 208, 996, 987, 500, 3853, 394,
798 547, 873, 1008, 627, 653, 1011, 1003, 1012, 1013, 1016,
799 491, 81, 1195, 1195, 995, 1195, 1195, 1017, 359, 310,
800 416, 1507, 1195, 1195, 3947, 1008, 1008, 1027, 1029, 1036,
801 972, 1014, 1034, 975, 1023, 130, 1031, 1025, 1026, 1040,
802 1042, 1044, 1028, 1195, 1052, -1718, 1056, 1043, 1037, 1039,
803 1060, -1718, 1045, -1718, 1046, 1047, 1055, 1057, 1068, 1062,
804 411, 892, 892, 892, 892, 892, 892, 892, 892, 892,
805 -1718, -1718, 3190, 3190, -1718, -1718, 2355, 2355, -1718, -1718,
806 1063, 1054, 1077, 411, 411, 411, -1718, -1718, -1718, 1070,
807 1072, 1069, 1075, 1085, 1078, 1086, 1071, 1080, 1092, 1073,
808 1096, 1101, 1102, 1081, 1087, 1079, 411, 411, 411, 411,
809 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
810 -1718, 411, 411, 411, 411, 1091, -1718, -1718, -1718, 411,
811 411, 411, 411, -1718, -1718, 411, -1718, 411, -1718, 411,
812 411, 411, -1718, 1090, 411, 411, 1097, 1098, 1195, 411,
813 411, 1103, -1718, -1718, 1107, 1094, 1104, 411, 411, 411,
814 411, 1114, -1718, 1109, 411, 411, 411, 411, 1111, 1121,
815 1106, 1113, 3285, -1718, 411, -1718, 3853, 3285, 411, -1718,
816 -1718, -1718, 411, 1115, 1126, 1108, 1119, 1131, 1122, 411,
817 -1718, -1718, -1718, -1718, -1718, 411, -1718, 411, 1118, 411,
818 1117, -1718, 411, -1718, 411, -1718, 411, 3853, -1718, 411,
819 1133, 411, 411, -1718, -1718, 411, 1120, -1718, 411, -1718,
820 1132, 1125, 1142, 1137, 1138, 1128, 1136, 1140, 411, 411,
821 411, 1134, 349, 1141, 1143, -1718, 411, 411, 411, 411,
822 411, 411, 411, 411, 411, 411, 411, 411, 411, 411,
823 1161, 411, 411, 411, 1163, 411, 1145, 1162, 1152, 411,
824 411, 411, 411, 411, 1164, 411, 411, 1154, 411, 411,
825 411, 892, 892, -1718, -1718, 943, 57, -1718, -1718, -1718,
826 -1718, -1718, 3853, 411, 411, 1158, 1167, 1155, 1178, 1182,
827 1171, 1180, 1200, 1191, 1203, 1204, 1202, 1208, 1207, 1198,
828 411, 411, 1189, -1718, -1718, -1718, 1186, -1718, -1718, -1718,
829 1217, 1214, 1213, 1215, 1166, 1168, 1232, 1195, -1718, 1038,
830 3570, 2710, 4793, -1718, -1718, -1718, -1718, -1718, 2810, -1718,
831 1242, -1718, 1241, 1245, 1254, 1238, 1255, 653, 676, 456,
832 1239, 1248, 1249, 1253, 1270, 1268, -1718, 1283, 1222, 1223,
833 1286, 1293, 1276, 1290, 1278, 1291, 1195, 225, 1195, 1195,
834 3853, 1195, 3853, 3853, 1195, 1195, 1195, 1195, 1195, 1195,
835 1195, 1195, 3853, 1195, 1294, 1195, 3853, 1195, 1195, 653,
836 653, 653, 653, 1195, 1288, 965, 653, 1246, 1295, 411,
837 -1718, 1195, 1250, 1296, -1718, 1297, 3853, 653, 3853, 653,
838 1251, 1300, 653, 653, 653, 653, 1303, 1321, 1320, 1259,
839 3853, 653, 3853, 1195, 1195, 1307, 1326, 1325, 1264, 1265,
840 1330, 1195, 653, 653, 1312, 653, 1314, 1195, 653, 1195,
841 1195, 1332, 1195, 1195, 1195, 1318, 653, 1319, -1718, 1350,
842 1287, 1338, 1331, 1354, 1333, 3947, 3947, 3947, 1355, 1356,
843 1336, 1345, 1346, 1195, 1195, 1195, 1195, 1195, 1195, 1195,
844 1195, 1195, 1195, 1195, 1195, 3853, 1195, 1348, 1195, 3853,
845 1195, 1349, 1195, 1362, 1343, 1378, 1195, 1195, 1195, 1195,
846 1195, 1359, 653, 653, 1367, 653, 653, 653, 1236, 1292,
847 892, 1195, 1195, 1365, 1381, 1368, 1369, 1391, 1395, 1394,
848 1399, 1334, 1397, 1337, 1404, 1389, 1402, 1405, 3853, 1195,
849 1385, -1718, 1408, 1388, 1407, 1393, 1406, 1414, 1409, 411,
850 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
851 -1718, -1718, -1718, -1718, -1718, -1718, -1718, 1980, 790, 4793,
852 -1718, -1718, -1718, 3570, -1718, -1718, -1718, -1718, 3380, 1412,
853 -1718, 1400, 1357, 1396, 411, 1413, 411, 411, 411, 411,
854 1370, 1425, 1424, 1411, 1415, 1427, 1417, 1428, 1433, 1390,
855 1421, 1374, 1419, 1439, 1432, -1718, 1429, 1442, 411, -1718,
856 -1718, -1718, -1718, -1718, -1718, 3285, 3853, 411, 411, -1718,
857 -1718, -1718, 411, 411, 411, -1718, 3285, 411, -1718, -1718,
858 3853, 411, 411, -1718, -1718, -1718, -1718, -1718, 1437, 411,
859 -1718, 1444, 1398, 1195, 411, -1718, 1449, 1440, 1418, 411,
860 4041, 411, 411, 411, 1452, 1443, -1718, -1718, -1718, -1718,
861 1435, 1448, 1455, 1461, 411, 4135, -1718, 411, 411, 411,
862 -1718, -1718, -1718, 1436, 1451, 1459, 1465, 1475, 1467, -1718,
863 -1718, -1718, 1483, -1718, 1458, 411, -1718, 411, -1718, 411,
864 1504, -1718, -1718, 411, 411, 1510, -1718, 1447, 1490, 1505,
865 -1718, 1498, -1718, 1515, -1718, -1718, -1718, 1508, 1509, 1519,
866 1506, 411, 411, 411, 411, 411, 411, 411, 411, 411,
867 411, 411, 411, 4229, 411, 1499, 411, 4323, 411, 1524,
868 411, 1516, 1526, 1518, 411, 411, 411, 411, 411, 1530,
869 411, 411, 1529, 411, 411, 411, 892, 892, 892, 411,
870 411, 1468, 1513, 1532, 1520, 1535, 1517, 1527, 1528, 1533,
871 1531, 1538, 1534, 1484, 1486, 1536, 3285, -1718, 1539, 1549,
872 1541, 1540, 1542, 1547, 1552, 1494, 1195, -1718, -1718, -1718,
873 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
874 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, 1980,
875 790, -1718, 3570, -1718, -1718, 294, 1545, 1195, 1553, 653,
876 653, 653, 676, 1551, 1567, 1555, 1561, 1521, -1718, 1583,
877 1570, 1585, -1718, 1568, 501, -1718, -1718, -1718, 1569, 1572,
878 1195, 3853, 1195, 1195, 1195, 1195, 1195, 3853, 1195, 1195,
879 1195, 1573, 653, 1574, 1580, 411, 1195, 1581, 1576, 1579,
880 3853, 2615, 3853, 3853, 1584, 1586, 1589, 1543, 1595, 1593,
881 3853, 3665, 598, 598, 1599, 1546, 1611, 1601, 1615, 1556,
882 1602, 1604, 1195, 1195, 1195, 1621, 1195, 1195, 1622, 1606,
883 1562, 1609, 1563, 1608, 1614, 1571, -1718, -1718, 1195, 1195,
884 3853, 1195, 209, 1195, 873, 3853, 1195, 1507, 3947, 3947,
885 3665, 3853, 1630, 1195, 3665, 3853, -1718, 598, 1616, 1620,
886 1578, 1195, 1195, 1195, 1195, 1195, 1617, 598, 598, 1582,
887 598, 653, 598, 892, 892, 1195, 1195, 1619, 1587, 1624,
888 1623, 1588, 1594, 1642, 1597, 1628, 1633, 1645, 1598, 518,
889 1649, 1600, 1195, 1635, -1718, 1654, -1718, 1637, 1634, 1656,
890 1652, 411, -1718, -1718, 1648, 1664, 1650, -1718, 1668, -1718,
891 411, 411, 411, 411, 1655, 1658, 1660, 1653, 1671, 1662,
892 523, 1672, -1718, 1657, 1667, 1683, 1686, -1718, 3285, 411,
893 -1718, -1718, -1718, -1718, 411, 3285, 411, -1718, -1718, 1665,
894 411, 1666, 1195, -1718, -1718, 1669, 1673, 4417, -1718, -1718,
895 3475, 411, 411, 1670, 1675, 1674, 1678, -1718, 1680, 4511,
896 892, 892, 3285, 3285, 1714, -1718, -1718, -1718, -1718, 3853,
897 -1718, -1718, -1718, -1718, 1676, 1689, 1662, 632, 1699, 1694,
898 1685, 1704, -1718, 411, 411, 1687, 411, -1718, -1718, 1688,
899 1703, 633, 1710, 1717, 1659, 1705, -1718, 411, -1718, -1718,
900 3853, -1718, 1716, 1702, -1718, -1718, -1718, -1718, -1718, -1718,
901 -1718, -1718, -1718, 3853, 411, -1718, -1718, -1718, 1714, 4605,
902 -1718, 411, 1714, 4699, -1718, 1661, -1718, 1721, 411, 411,
903 411, 411, 411, 1715, -1718, -1718, 1709, -1718, -1718, -1718,
904 411, 411, 1706, 1725, 1681, 1711, 1719, 1729, 1682, 1736,
905 634, 1732, 1749, 1755, 1739, 1740, 1757, 411, 1758, 1759,
906 1741, 1737, 1761, 1751, 1195, 1767, 1769, 1760, 1708, 653,
907 1195, 653, 653, 1748, 1771, -1718, 1752, 1762, -1718, 1753,
908 1763, 1772, 1764, 1766, 1768, 1777, 3853, 3853, 3853, 3853,
909 1195, 1765, 1195, 1770, 411, 1773, 1775, 2615, 1774, 1776,
910 1778, 1785, 1779, 3665, 2905, 3853, -1718, 3000, 3665, 1781,
911 1788, 1782, 1786, 1780, 1793, 1796, 1797, 1195, 1195, -1718,
912 1195, 1790, 1798, 1792, 1801, 1783, 1804, 1806, 1195, 1791,
913 1807, 1195, 3665, 1591, 3759, 1808, 1809, 1195, 1195, 1195,
914 1507, 598, 1810, 1826, 1195, 1195, 1811, 1818, 353, 1812,
915 1819, 1815, 452, 1816, 1817, 1820, 1822, 1789, 1824, 1823,
916 1821, 1841, 1195, 1827, -1718, 1830, 1828, 1846, 1832, -1718,
917 1853, 1829, 1831, 1855, -1718, -1718, -1718, 411, 1836, 1794,
918 1842, 1835, 1837, 1840, 1861, 1860, 1863, -1718, 1848, 411,
919 3853, 3853, 411, -1718, 1865, -1718, 1845, 3853, 1849, 1856,
920 -1718, 1852, 1859, 1850, 1854, 1857, 1714, -1718, 3853, -1718,
921 -1718, -1718, 1858, 1862, 1864, 1867, 1877, 1866, 1876, 1868,
922 -1718, -1718, -1718, -1718, 1870, 1871, 1869, 1873, 1872, 1875,
923 683, -1718, 1882, 1879, 411, 1714, 892, 892, -1718, -1718,
924 1316, 1702, 1714, -1718, 1878, 1880, 411, 411, -1718, -1718,
925 -1718, 1883, 1884, -1718, 411, 1881, 1886, 1885, 1892, 1898,
926 1874, 1894, 1889, 1895, 1897, 1908, 1893, 1896, 1912, 1917,
927 1899, 1918, 1903, 1901, 411, 1902, 1919, 1904, 1906, 1907,
928 1915, 1900, 1929, 1913, 653, 1914, 476, 1933, 1920, 1888,
929 1916, 1921, 1942, 1939, 1922, 1930, 1924, 411, 1925, 1943,
930 1926, 1948, 1931, 1936, 1891, 1937, 1962, 1923, 1963, 1966,
931 1967, 1969, -1718, 1968, 1970, 1932, 1973, -1718, 1975, 1972,
932 1976, -1718, 873, 1358, 1387, 892, 1981, 1982, 1195, 1195,
933 1978, 1949, 1195, 1979, 1984, 1983, 1950, 2004, 2005, 1997,
934 1987, 1988, 2007, 1995, 1951, 1990, 1999, 1992, 2001, 2016,
935 1998, 2021, 1195, 2000, 2006, 2008, 1960, 2003, -1718, 2009,
936 -1718, 1964, -1718, 2010, 2011, 419, 2018, 2015, 2029, 132,
937 2022, 1974, 2024, 1977, 2042, 2020, 2030, 653, 2032, 2028,
938 2033, 2034, 2027, 2054, 2052, 2035, 2056, 2055, 2043, 1996,
939 2037, 2039, 2040, 2065, 260, 2062, 2047, 2044, 2053, -1718,
940 892, 892, 892, 2050, 2049, -1718, -1718, 2057, -1718, -1718,
941 2048, -1718, 2063, 2061, 2060, 2064, -1718, 2074, 2066, 2067,
942 -1718, 2072, 2070, 2058, 2023, 2068, 2025, -1718, -1718, -1718,
943 2031, 2069, 2084, 2088, -1718, 2081, 2092, 2036, 2093, 2094,
944 2087, 2098, 2079, 2086, 247, 2091, 2101, 2104, 2041, 2109,
945 2103, 2089, 2111, 411, 2112, 2095, 2113, 2096, 2059, 2100,
946 2117, 2080, 2105, 2118, 2122, 2125, 2106, 2089, 2083, 2110,
947 2141, 2128, 2149, 2127, 2102, 2130, 892, 892, 2135, 2142,
948 2144, 2108, 2140, -1718, -1718, 2143, 2151, 2146, -1718, 2167,
949 2168, 2152, 2174, -1718, 2175, 2176, 19, 2160, 2171, 2154,
950 2173, 686, 2177, 2180, 2178, 2179, 24, 2185, 2163, 2181,
951 2182, 2183, 2184, 2191, 2186, 2193, -1718, 2188, 1195, 2189,
952 27, 2192, 2129, 2195, 2197, 2187, 2199, 2198, 2190, 2201,
953 2203, -1718, 708, 2207, 2194, 2200, 2202, 2204, 264, -1718,
954 2205, 2208, -1718, 2214, -1718, 30, 2219, -1718, 2206, 2209,
955 -1718, 2211, 2212, 2224, -1718, 2227, 2210, 2233, 2231, 2215,
956 2226, 267, 2217, 2237, 2223, 2196, 2213, 2239, 2240, 2230,
957 2220, 2221, 2225, 2247, 2229, 2228, -1718, 2232, 411, 2234,
958 2248, 2235, 2246, 2250, 2242, 2253, 2256, 2252, 2243, 2261,
959 2251, 2262, 2267, 2259, 2249, -1718, 2216, 2263, 2255, 1754,
960 2218, 2236, 2272, 2222, 41, 2273, 2265, 2257, 2280, 2258,
961 -1718, 2274, 2238, 2276, -1718, -1718, 2285, 2260, 2277, 2241,
962 2268, 2287, 2281, 2279, 2282, 46, 2294, 2293, 2244, 66,
963 2286, 2275, 2283, -1718, 1507, 2288, 2289, 2254, 2290, -1718,
964 2296, 2291, 2292, 2301, 68, 2295, 2305, 2297, 2264, 2304,
965 2244, 189, 2309, 2299, 2298, 2310, 2315, 2302, 2300, 2303,
966 2311, 2313, 2266, 2325, 2269, 2316, 2318, 2312, 2320, 2321,
967 2322, 2328, 2307, 2319, 2338, 2341, 2324, 2329, 2343, -1718,
968 2330, 2340, 2384, 2387, -1718, 2391, 2392, 2393, 2385, 411,
969 2390, 2308, 2400, 2410, 2402, 2412, 2401, 2399, 2405, 2406,
970 2416, 2413, 2395, 2408, 2403, 2424, 2407, 2417, 2414, 2409,
971 2415, 2426, 462, 2428, 412, 2418, 2411, 2434, 2439, -1718,
972 2422, 2440, 2437, 2419, -1718, -1718, 2423, 2444, 2442, 2429,
973 2425, 2388, 2453, 2455, 2433, 2435, 2394, 542, 2454, 2448,
974 2460, -1718, 2461, 2425, 2457, 2433, 2446, 2463, 2420, 2466,
975 2449, 2450, -1718, -1718, -1718, 2469, 2471, 2456, 2472, 2458,
976 2459, 2462, 2421, 2464, 2467, 2473, 2427, -1718, 2479, 2468,
977 2478, 2480, 2470, 2451, 2465, -1718, 2487, 2474, -1718, 2475,
978 2476, 2477, -1718, -1718, 2482, 2483, 2492, 411, -1718, -1718,
979 -1718, -1718, -1718, 2489, 2484, 2498, 2499, 2485, 2500, 2502,
980 2488, 2491, 2503, 2506, 2507, 2447, 2490, 2510, -1718, 2493,
981 2511, 562, 2494, 2512, 2495, 577, 2496, -1718, 2508, 2504,
982 2481, 2505, 2509, 2513, 2497, 2523, 2526, 2515, 2528, 2486,
983 2514, 598, 2516, 2525, -1718, 2504, 2515, 2518, 2501, 2530,
984 2517, -1718, 2527, 2519, 2529, -1718, 2520, 2521, 2522, 2531,
985 2533, 2535, 2536, 2524, 2537, 2539, 2540, 2651, -1718, 2534,
986 2538, 2716, 2542, 2541, 2544, 2532, -1718, 2543, 2545, 2546,
987 -1718, 2549, 2547, 2651, 2552, 2551, 2554, -1718, 612, 2556,
988 2557, 2553, -1718, 2550, 2559, 2558, -1718, 624, 2555, 2573,
989 2561, 2564, 2562, 2563, 2578, 2566, 2717, 2586, 2585, -1718,
990 2780, 2772, 2764, -1718, 2912, 3006, 3085, 3083, 3178, 3192,
991 3269, -1718, 3274, 3367, -1718, 3368, 3463, 3464, 3557, 3548,
992 3578, 3837, 3794, 3931, 296, 3952, 4030, 4024, 4124, 4119,
993 4222, 4214, 4312, -1718, 4305, 4418, 4405, 4488, 4494, -1718,
994 4586, 4607, 4681, -1718, -1718, 4684, 4799, 4797, 4788, 4860,
995 4846, 4862, 4863, 4868, 4845, 4870, 4867, 4854, 4855, -1718,
996 4807, -1718, 4857, 4858, -1718, 4876, 4861, 4859, 4853, 4864,
997 4865, 4856, 4866, 4871, 4878, 4869, 4872, 4873, -1718, 678,
998 4874, -1718, 4875, 4880, 4877, 4881, -1718, 4879, 4887, -1718,
999 4890, 4882, 4891, 4895, -1718, 4883, 4886, -1718, 4897, 4884,
1000 4885, 4888, 4892, 4893, 4828, 4889, 4894, 4898, 4896, 4900,
1001 4899, 4902, 4903, 4901, 4906, -1718, 4904, -1718, 4905, -1718,
1002 4908, 4909, 4913, 4907, 4910, -1718, 4911, 4912, 4914, 4915,
1003 -1718, 4916, -1718, 4917, -1718, 4918, -1718, -1718, -1718, -1718,
1004 4919, -1718
1005 };
1006
1007 /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
1008 Performed when YYTABLE does not specify something else to do. Zero
1009 means the default is an error. */
1010 static const yytype_uint16 yydefact[] =
1011 {
1012 0, 3, 9, 0, 0, 0, 0, 0, 0, 0,
1013 0, 0, 0, 0, 0, 0, 0, 2, 0, 7,
1014 8, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1015 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1016 0, 0, 36, 37, 0, 0, 0, 0, 0, 0,
1017 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1018 0, 0, 0, 0, 1, 532, 533, 4, 0, 514,
1019 10, 502, 498, 497, 495, 496, 341, 342, 343, 344,
1020 345, 346, 347, 348, 349, 350, 450, 451, 452, 453,
1021 454, 455, 424, 425, 426, 427, 428, 429, 423, 499,
1022 422, 430, 431, 432, 433, 434, 435, 436, 437, 438,
1023 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
1024 449, 456, 457, 458, 459, 460, 461, 462, 463, 464,
1025 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
1026 475, 487, 489, 490, 491, 492, 493, 494, 500, 501,
1027 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
1028 513, 531, 381, 12, 13, 415, 476, 421, 11, 0,
1029 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1030 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1031 0, 534, 0, 0, 0, 0, 0, 0, 0, 0,
1032 535, 0, 0, 0, 536, 0, 0, 0, 0, 0,
1033 552, 0, 0, 0, 5, 341, 342, 343, 344, 345,
1034 346, 347, 348, 349, 350, 382, 339, 383, 384, 385,
1035 386, 387, 388, 389, 390, 488, 477, 478, 479, 480,
1036 481, 482, 483, 484, 485, 486, 416, 0, 0, 0,
1037 0, 14, 38, 0, 50, 0, 0, 0, 0, 0,
1038 0, 0, 0, 0, 0, 0, 17, 0, 130, 142,
1039 154, 161, 162, 163, 0, 146, 0, 0, 0, 0,
1040 0, 131, 0, 0, 132, 0, 0, 0, 138, 0,
1041 147, 0, 0, 0, 0, 0, 167, 0, 0, 0,
1042 0, 0, 0, 0, 0, 0, 0, 178, 179, 180,
1043 0, 0, 15, 0, 16, 0, 0, 27, 0, 0,
1044 0, 28, 0, 0, 0, 0, 29, 0, 0, 30,
1045 0, 0, 0, 0, 0, 0, 18, 0, 0, 0,
1046 0, 19, 0, 0, 0, 0, 0, 0, 0, 0,
1047 0, 20, 0, 262, 267, 260, 258, 263, 264, 0,
1048 266, 259, 0, 270, 0, 0, 0, 0, 0, 0,
1049 21, 0, 0, 22, 0, 0, 0, 0, 0, 0,
1050 0, 0, 0, 0, 23, 0, 0, 0, 0, 0,
1051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1052 34, 0, 35, 0, 0, 0, 0, 0, 0, 0,
1053 0, 0, 0, 0, 0, 24, 53, 54, 55, 56,
1054 66, 67, 68, 69, 70, 71, 72, 73, 74, 57,
1055 58, 59, 63, 64, 65, 62, 61, 60, 76, 77,
1056 78, 79, 80, 81, 82, 75, 25, 83, 84, 85,
1057 86, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1058 87, 88, 89, 93, 94, 95, 92, 91, 90, 106,
1059 107, 108, 109, 110, 111, 112, 105, 33, 0, 31,
1060 0, 0, 32, 251, 26, 0, 0, 0, 542, 0,
1061 0, 661, 539, 0, 0, 545, 546, 541, 669, 0,
1062 0, 634, 0, 0, 0, 340, 0, 0, 0, 0,
1063 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1064 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1065 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1067 0, 0, 0, 0, 0, 0, 0, 0, 252, 0,
1068 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1069 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1070 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1071 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1072 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1074 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1075 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1076 0, 0, 0, 0, 0, 538, 0, 0, 0, 0,
1077 0, 664, 0, 537, 0, 0, 0, 0, 0, 0,
1078 0, 342, 343, 344, 345, 346, 347, 348, 349, 350,
1079 52, 285, 0, 0, 51, 305, 0, 0, 41, 304,
1080 0, 0, 0, 0, 0, 0, 325, 323, 324, 0,
1081 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1083 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1084 136, 0, 0, 0, 0, 0, 164, 292, 165, 0,
1085 0, 0, 0, 169, 299, 0, 172, 0, 175, 0,
1086 0, 0, 160, 0, 0, 0, 0, 0, 0, 0,
1087 0, 0, 217, 218, 0, 0, 0, 0, 0, 0,
1088 0, 0, 223, 0, 0, 0, 0, 0, 0, 0,
1089 0, 0, 209, 214, 0, 309, 326, 211, 0, 228,
1090 231, 229, 0, 0, 0, 0, 0, 0, 0, 0,
1091 265, 268, 269, 271, 273, 0, 275, 0, 0, 0,
1092 0, 232, 0, 303, 0, 233, 0, 302, 118, 0,
1093 0, 0, 0, 122, 123, 0, 0, 128, 0, 129,
1094 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1095 0, 0, 0, 0, 0, 189, 0, 0, 0, 0,
1096 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1097 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1098 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1099 0, 0, 0, 205, 296, 0, 339, 297, 206, 207,
1100 201, 328, 329, 0, 0, 0, 0, 0, 0, 0,
1101 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1102 0, 0, 0, 216, 556, 543, 0, 662, 557, 551,
1103 0, 0, 0, 0, 0, 0, 0, 0, 411, 0,
1104 412, 0, 408, 417, 418, 524, 525, 407, 0, 394,
1105 0, 396, 0, 0, 0, 0, 0, 0, 0, 0,
1106 0, 0, 0, 0, 0, 0, 660, 0, 0, 0,
1107 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1108 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1109 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1110 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1111 253, 0, 0, 0, 648, 0, 0, 0, 0, 0,
1112 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1113 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1114 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1115 0, 0, 0, 0, 0, 0, 0, 0, 667, 0,
1116 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1117 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1118 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1119 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1121 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1122 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1123 0, 544, 0, 0, 0, 0, 0, 0, 0, 0,
1124 351, 352, 353, 354, 355, 356, 357, 358, 521, 515,
1125 516, 518, 517, 519, 520, 522, 523, 0, 526, 410,
1126 409, 401, 413, 414, 419, 420, 402, 391, 393, 0,
1127 392, 0, 0, 0, 48, 0, 0, 0, 0, 0,
1128 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1129 0, 0, 0, 0, 0, 155, 0, 0, 0, 256,
1130 257, 157, 158, 159, 148, 0, 143, 0, 0, 133,
1131 134, 284, 0, 0, 0, 149, 0, 0, 547, 168,
1132 139, 0, 0, 173, 171, 174, 176, 177, 0, 0,
1133 181, 0, 0, 0, 0, 293, 0, 0, 0, 222,
1134 0, 0, 220, 0, 0, 0, 224, 225, 226, 227,
1135 0, 0, 0, 0, 208, 0, 327, 0, 210, 212,
1136 295, 230, 301, 0, 0, 0, 0, 0, 0, 261,
1137 272, 274, 0, 276, 0, 0, 300, 0, 280, 119,
1138 0, 124, 310, 0, 0, 0, 127, 0, 0, 0,
1139 553, 0, 668, 0, 202, 203, 204, 0, 0, 0,
1140 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1141 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1142 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1143 0, 0, 0, 0, 0, 0, 0, 0, 330, 0,
1144 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1145 0, 0, 0, 0, 0, 0, 0, 250, 0, 0,
1146 0, 0, 0, 0, 0, 0, 0, 359, 360, 361,
1147 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
1148 372, 373, 374, 375, 376, 377, 378, 379, 380, 529,
1149 527, 397, 398, 395, 645, 0, 0, 0, 0, 0,
1150 0, 0, 0, 0, 0, 0, 0, 611, 598, 0,
1151 0, 0, 650, 0, 0, 656, 651, 564, 0, 0,
1152 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1153 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1154 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1155 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1156 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1157 0, 0, 0, 0, 0, 0, 654, 655, 0, 0,
1158 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1159 0, 0, 0, 0, 0, 0, 666, 0, 0, 0,
1160 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1161 0, 0, 0, 331, 332, 0, 0, 0, 0, 0,
1162 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1163 0, 0, 0, 0, 558, 0, 560, 0, 0, 0,
1164 0, 39, 530, 528, 0, 0, 0, 49, 0, 44,
1165 0, 46, 0, 0, 0, 0, 560, 0, 0, 635,
1166 0, 0, 657, 0, 0, 0, 0, 156, 144, 0,
1167 152, 135, 312, 137, 0, 140, 0, 150, 170, 0,
1168 0, 0, 0, 117, 294, 0, 0, 0, 319, 322,
1169 321, 221, 219, 0, 0, 0, 0, 635, 0, 0,
1170 495, 496, 0, 0, 254, 313, 318, 317, 316, 315,
1171 215, 308, 213, 307, 0, 0, 0, 0, 0, 0,
1172 0, 0, 278, 0, 120, 0, 0, 126, 644, 0,
1173 0, 0, 0, 0, 0, 0, 236, 0, 286, 238,
1174 287, 240, 0, 0, 247, 248, 249, 241, 288, 242,
1175 289, 290, 243, 291, 0, 244, 245, 246, 183, 0,
1176 653, 0, 185, 0, 190, 0, 652, 0, 0, 0,
1177 0, 0, 0, 0, 197, 196, 0, 199, 200, 198,
1178 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1180 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1181 0, 0, 0, 0, 0, 563, 0, 0, 636, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1184 0, 0, 0, 0, 0, 404, 403, 0, 0, 0,
1185 0, 0, 0, 0, 0, 0, 0, 0, 0, 611,
1186 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1188 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1190 0, 0, 0, 0, 559, 0, 0, 0, 0, 40,
1191 0, 0, 0, 0, 45, 47, 42, 0, 0, 0,
1192 0, 0, 0, 0, 0, 0, 0, 658, 0, 145,
1193 153, 151, 141, 166, 0, 182, 0, 0, 0, 0,
1194 320, 0, 0, 0, 0, 0, 255, 399, 406, 405,
1195 400, 314, 0, 0, 0, 0, 0, 0, 0, 0,
1196 279, 121, 125, 311, 0, 0, 0, 0, 0, 0,
1197 0, 237, 0, 0, 0, 184, 0, 0, 188, 298,
1198 336, 437, 187, 186, 0, 0, 0, 0, 193, 194,
1199 191, 0, 0, 234, 0, 0, 0, 0, 0, 0,
1200 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1201 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1202 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1203 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1205 0, 0, 596, 0, 0, 0, 0, 554, 0, 0,
1206 0, 548, 0, 337, 338, 0, 0, 0, 0, 0,
1207 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1208 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1209 0, 0, 0, 0, 0, 0, 0, 0, 550, 0,
1210 646, 0, 43, 0, 0, 0, 0, 0, 0, 0,
1211 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1212 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1213 0, 0, 0, 0, 0, 0, 0, 0, 0, 239,
1214 0, 0, 333, 0, 0, 192, 195, 0, 649, 235,
1215 0, 585, 0, 0, 0, 0, 581, 0, 0, 0,
1216 591, 0, 0, 0, 0, 0, 0, 587, 663, 277,
1217 0, 0, 0, 0, 631, 0, 0, 0, 0, 0,
1218 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1219 0, 596, 0, 0, 0, 0, 0, 0, 0, 0,
1220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1221 0, 0, 0, 0, 631, 0, 334, 335, 0, 0,
1222 0, 0, 0, 582, 580, 0, 0, 0, 584, 0,
1223 0, 0, 0, 586, 0, 0, 0, 0, 0, 0,
1224 0, 0, 0, 0, 0, 0, 640, 0, 0, 0,
1225 0, 0, 0, 0, 0, 0, 597, 0, 0, 0,
1226 0, 0, 640, 0, 0, 0, 0, 0, 0, 0,
1227 0, 632, 0, 0, 0, 0, 0, 0, 0, 549,
1228 0, 0, 643, 0, 579, 0, 0, 583, 0, 0,
1229 665, 0, 0, 0, 639, 0, 0, 0, 0, 0,
1230 0, 0, 0, 0, 0, 0, 639, 0, 0, 0,
1231 0, 0, 0, 0, 0, 0, 659, 0, 0, 0,
1232 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1233 0, 0, 0, 0, 0, 555, 0, 0, 0, 0,
1234 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1235 642, 0, 0, 0, 647, 540, 0, 0, 0, 0,
1236 0, 0, 0, 0, 0, 612, 0, 0, 628, 623,
1237 0, 0, 0, 623, 0, 0, 0, 0, 0, 612,
1238 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1239 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0, 0, 613,
1242 0, 0, 0, 0, 624, 0, 0, 0, 0, 113,
1243 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1245 0, 0, 0, 0, 0, 0, 0, 0, 0, 615,
1246 0, 0, 0, 0, 610, 561, 0, 0, 0, 0,
1247 621, 627, 0, 0, 615, 0, 589, 0, 0, 0,
1248 0, 621, 0, 0, 0, 0, 0, 0, 0, 0,
1249 0, 0, 628, 630, 633, 0, 0, 0, 0, 0,
1250 0, 0, 0, 0, 0, 0, 0, 589, 0, 0,
1251 0, 0, 0, 0, 0, 641, 0, 0, 620, 0,
1252 0, 0, 616, 588, 0, 0, 0, 114, 115, 306,
1253 281, 282, 283, 0, 0, 0, 0, 0, 0, 0,
1254 0, 0, 0, 0, 0, 0, 0, 0, 576, 0,
1255 0, 0, 0, 0, 0, 0, 0, 625, 0, 604,
1256 606, 0, 0, 0, 0, 0, 0, 625, 0, 0,
1257 0, 0, 0, 0, 604, 0, 0, 0, 0, 0,
1258 0, 609, 0, 0, 0, 575, 0, 0, 0, 0,
1259 0, 0, 0, 0, 0, 0, 0, 608, 603, 0,
1260 0, 0, 0, 0, 0, 0, 626, 0, 0, 0,
1261 116, 0, 0, 0, 0, 0, 0, 629, 0, 0,
1262 0, 0, 593, 0, 0, 0, 572, 0, 0, 0,
1263 0, 0, 0, 0, 0, 0, 0, 0, 0, 590,
1264 0, 0, 0, 577, 0, 0, 0, 0, 0, 0,
1265 0, 592, 0, 0, 571, 0, 0, 0, 0, 0,
1266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1267 0, 0, 0, 608, 0, 0, 0, 0, 0, 568,
1268 0, 0, 0, 595, 637, 0, 0, 0, 0, 0,
1269 0, 0, 0, 0, 0, 0, 0, 0, 0, 578,
1270 0, 567, 0, 0, 594, 0, 0, 0, 0, 0,
1271 0, 0, 0, 0, 0, 0, 0, 0, 566, 0,
1272 0, 570, 0, 0, 0, 0, 638, 0, 0, 619,
1273 0, 0, 0, 0, 565, 0, 0, 569, 0, 0,
1274 0, 0, 0, 0, 599, 0, 0, 0, 0, 0,
1275 0, 0, 0, 0, 0, 622, 0, 601, 0, 618,
1276 0, 0, 0, 0, 0, 617, 0, 0, 0, 0,
1277 574, 0, 605, 0, 614, 0, 602, 573, 607, 562,
1278 0, 600
1279 };
1280
1281 /* YYPGOTO[NTERM-NUM]. */
1282 static const yytype_int16 yypgoto[] =
1283 {
1284 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
1285 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718,
1286 -1718, -1718, -1718, -1718, -1718, -1718, -1718, -1718, -982, -1718,
1287 -1718, -1718, -1718, -1718, -1718, -925, -492, -1683, -1718, -1620,
1288 -32, -1718, -534, -1177, -1500, 798, -1438, -1718, 1105, -1349,
1289 -1335, -959, -905, -468, 1095, 120, 797, -1718, 3972, -1368,
1290 -1717, 3472, -1416, 3228, -954, 3242, 4022, -1718, -1718, -986,
1291 -597, -1718, 8, 351, -1082, 3594, 12, -544, 4290, -1718,
1292 -1718, -1718, -1323, 3385, -886, 70, 769, -894, 346, 73,
1293 -501, -888, -1718, -1718, -19, 4920, -1718, -1718, -1718, -1718,
1294 -1718, -1718, -1718, 3587, -1718, -1718, -1718, -1718, -1718, -1718,
1295 -462, 3216, -1718, -453, -1718, -1718, -1718, -1718, -1718, -1718,
1296 -1718, -1718, -1718, 467, 4792, 4794, 4795, -346, 4786, 4789,
1297 4790, 4791, 4796, 4798, 4800, 4801, 4803, 4804, 4805, 4806,
1298 -1718, 4808, 4809, 4810, 4811, 4812, 4813, 4814, -145, -141,
1299 -131, 566, 571, -1718, 4815, 4816, 4817, 4818, 4819, -490,
1300 4383, 4826, -1718, -1718, -1718, -1718, 4802, -138, -1718, -1718,
1301 4825, -220, -1718, 4829, -420, 584, 4830, 4831, 437, 4832,
1302 4833, -1718, 4834, 4835, -126, -1718, 593, 471, -132, 4836,
1303 -1718, 4368, -1718, -1718, -113, -1718, -1718, -1718, 65, 4838,
1304 486, 275, 373, 241, -1718, -1718, 4360, -1718, -1718, -480,
1305 202, -1718, -1718, -1718, -149, -1718, -1718, -1718, -1718, 4837,
1306 4839, -1718, -1718, 4841, -1718, -1718, -1718, -1718, 4824, 115,
1307 -1718, -1718, -1718
1308 };
1309
1310 /* YYDEFGOTO[NTERM-NUM]. */
1311 static const yytype_int16 yydefgoto[] =
1312 {
1313 -1, 16, 17, 18, 19, 20, 251, 415, 446, 312,
1314 314, 373, 266, 384, 336, 484, 317, 321, 326, 329,
1315 341, 370, 400, 402, 835, 479, 482, 748, 1234, 1178,
1316 351, 477, 801, 805, 2407, 1190, 670, 1617, 1619, 1627,
1317 1629, 1632, 726, 1214, 1563, 1239, 873, 1858, 733, 1255,
1318 1241, 806, 802, 678, 674, 2408, 1592, 1590, 773, 1261,
1319 1842, 1551, 1584, 1585, 1219, 1568, 684, 774, 1237, 880,
1320 1586, 1859, 875, 162, 1138, 1369, 734, 679, 930, 931,
1321 1148, 1588, 675, 1724, 920, 1570, 1589, 922, 165, 166,
1322 167, 924, 925, 926, 927, 67, 68, 21, 22, 23,
1323 24, 25, 26, 1157, 27, 28, 29, 30, 31, 32,
1324 1631, 1625, 1626, 685, 33, 34, 385, 828, 829, 35,
1325 36, 37, 38, 252, 268, 269, 270, 706, 416, 417,
1326 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
1327 762, 428, 429, 430, 431, 432, 433, 434, 435, 436,
1328 437, 271, 272, 273, 440, 441, 442, 443, 444, 371,
1329 745, 274, 2410, 2411, 2412, 387, 275, 276, 277, 278,
1330 279, 280, 838, 281, 282, 283, 284, 285, 253, 287,
1331 288, 390, 289, 290, 291, 292, 293, 294, 254, 296,
1332 297, 298, 842, 843, 660, 789, 861, 39, 299, 300,
1333 255, 302, 256, 304, 305, 483, 865, 818, 686, 687,
1334 688, 324, 869, 306, 307, 862, 851, 846, 847, 308,
1335 309, 1179, 1180, 310, 40, 41, 900, 42, 445, 855,
1336 399, 830, 43
1337 };
1338
1339 /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
1340 positive, shift that token. If negative, reduce the rule whose
1341 number is the opposite. If YYTABLE_NINF, syntax error. */
1342 static const yytype_int16 yytable[] =
1343 {
1344 168, 1183, 169, 170, 171, 172, 173, 174, 175, 176,
1345 177, 178, 179, 180, 181, 182, 183, 184, 185, 186,
1346 187, 188, 189, 190, 874, 750, 1139, 752, 1527, 1635,
1347 1238, 163, 1154, 396, 1145, 1143, 1415, 1553, 295, 337,
1348 342, 466, 1143, 1192, 1222, 467, 683, 720, 1874, 376,
1349 392, 339, 344, 803, 1638, 468, 1370, 791, 1642, 1274,
1350 1275, 1276, 1714, -381, 1789, 1851, 744, 813, 2174, 2279,
1351 2280, 737, 739, 2186, 1866, 1558, 2174, 49, 1606, 2223,
1352 2281, 1210, 728, 736, 738, 225, 227, 228, 229, 230,
1353 231, 232, 233, 234, 1603, 2299, 757, 759, 1569, 753,
1354 764, 765, 766, 767, 50, 749, 1236, 831, 811, 1591,
1355 1593, 2175, 1607, 795, 797, 2304, 2187, 2304, 1841, 2200,
1356 1253, 61, 2224, 1257, 832, 794, 796, 1660, 1661, 792,
1357 833, 1854, 524, 834, 51, 817, 819, 636, 2300, 814,
1358 52, 405, 62, 1296, 804, 44, 1648, 1649, 1650, 1651,
1359 1652, 901, 525, 704, -381, -381, -381, 637, 2305, 893,
1360 2316, 2064, 45, 705, 1654, 1655, 414, 1657, 368, 1659,
1361 46, 923, 923, 47, 57, 53, 48, 369, 2065, 894,
1362 812, 1314, 815, 710, 711, 712, 713, 714, 715, 716,
1363 717, 718, 719, 58, 721, 722, 723, 724, 860, 729,
1364 730, 731, 732, 319, 735, 883, 884, 740, 741, 742,
1365 1813, 698, 515, 516, 989, 699, 320, 2321, 2202, 215,
1366 661, 662, 663, 664, 665, 666, 667, 668, 669, 247,
1367 248, 1556, 2026, 510, 511, 512, 513, 514, 1622, 2322,
1368 676, 677, 340, 345, 249, 59, 377, 393, 528, 1139,
1369 250, 1145, 1176, 1623, 521, 529, 682, 530, 531, 532,
1370 533, 534, 1372, 535, 536, 2025, 537, 538, 539, 522,
1371 540, 1177, 541, 542, 543, 544, 545, 2128, 546, 547,
1372 548, 549, 550, 551, 552, 553, 554, 555, 1523, 2090,
1373 54, 556, 2217, 2080, 558, 2129, 559, 2237, 60, 561,
1374 680, 676, 677, 564, 565, 566, 2091, 1826, 568, 569,
1375 2218, 570, 571, 681, 2219, 2238, 609, 682, 576, 577,
1376 578, 579, 1869, 580, 581, 582, 583, 346, 525, 258,
1377 319, 347, 348, 589, 521, 2569, 1855, 1524, 1862, 864,
1378 590, 1795, 1525, 591, 349, 592, 593, 594, 595, 586,
1379 350, 2564, 597, 598, 854, 599, 600, 601, 602, 603,
1380 604, 606, 630, 1815, 607, 631, 610, 611, 612, 613,
1381 614, 615, 616, 617, 618, 619, 620, 621, 622, 623,
1382 624, 1877, 625, 707, 626, 856, 519, 708, 1049, 810,
1383 1867, 837, 1878, 803, 1569, 64, 1879, 709, 859, 520,
1384 1050, 857, 858, 854, 215, 661, 662, 663, 664, 665,
1385 666, 667, 668, 669, 676, 677, 328, 331, 55, 923,
1386 923, 1144, 379, 395, 56, 63, 756, 923, 226, 226,
1387 226, 226, 226, 226, 226, 226, 226, 659, 1593, 1197,
1388 2383, 1199, 803, 247, 325, 864, 334, 867, 332, 322,
1389 2059, 2384, 333, 334, 365, 2385, 65, 66, 249, 640,
1390 854, 641, 845, 2060, 250, 335, 643, 803, 1571, 1572,
1391 1156, 1158, 702, 836, 1529, 703, 1531, 1193, 1139, 840,
1392 1883, 803, 1636, 1637, 803, 839, 809, 680, 676, 677,
1393 2380, 1884, 404, 405, 406, 407, 408, 409, 844, 209,
1394 756, 2381, 1984, 410, 682, 210, 1985, 1560, 161, 411,
1395 246, 1203, 1204, 1205, 1206, 412, 413, 825, 414, 1986,
1396 826, 191, 257, 671, 258, 259, 260, 261, 192, 1221,
1397 827, 1223, 676, 677, 1226, 1227, 1228, 1229, 1300, 262,
1398 193, 1263, 803, 303, 747, 263, 264, 323, 265, 194,
1399 1543, 671, 366, 1544, 1250, 1251, 727, 215, 661, 662,
1400 663, 664, 665, 666, 667, 668, 669, 1543, 1266, 1699,
1401 1674, 727, 1700, 727, 672, 673, 505, 810, 505, 505,
1402 505, 505, 505, 505, 505, 505, 1658, 2405, 2406, 775,
1403 2469, 207, 779, 780, 781, 584, 516, 208, 212, 1319,
1404 1320, 2470, 790, 727, 213, 2474, 380, 286, 247, 325,
1405 381, 334, 671, 727, 1310, 1311, 2475, 1313, 375, 1315,
1406 401, 403, 195, 382, 848, 849, 197, 852, 853, 383,
1407 672, 673, 265, 877, 878, 879, 881, 267, 1144, 1209,
1408 2527, 917, 923, 196, 318, 198, 352, 923, 374, 386,
1409 362, 2528, 2535, 199, 478, 480, 301, 485, 816, 676,
1410 677, 327, 330, 2536, 937, 938, 939, 378, 394, 225,
1411 227, 228, 229, 230, 231, 232, 233, 234, 1731, 1743,
1412 1774, 1732, 1681, 1775, 1143, 676, 677, 956, 957, 958,
1413 959, 960, 961, 962, 963, 964, 965, 966, 967, 968,
1414 969, 200, 970, 971, 972, 973, 2615, 1155, 676, 677,
1415 975, 976, 977, 978, 2180, 2181, 979, 2616, 980, 201,
1416 981, 982, 983, 202, 1809, 985, 986, 1812, 203, 1939,
1417 990, 991, 1681, 863, 866, 870, 2210, 2211, 996, 997,
1418 998, 999, 921, 928, 204, 1002, 1003, 1004, 1005, 932,
1419 932, 438, 469, 1010, 206, 1011, 439, 470, 1012, 1013,
1420 727, 338, 343, 1014, 313, 315, 758, 760, 205, 211,
1421 1021, 65, 311, 316, 325, 250, 1022, 247, 1023, 481,
1422 1025, 486, 487, 1027, 1794, 1028, 1796, 1029, 164, 2198,
1423 1030, 488, 1032, 1033, 489, 492, 1034, 490, 491, 1036,
1424 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 493, 1045,
1425 1046, 1047, 494, 495, 496, 499, 2309, 1053, 1054, 1055,
1426 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065,
1427 1066, 497, 1068, 1069, 1070, 803, 1072, 803, 498, 1873,
1428 1076, 1077, 1078, 1079, 1080, 500, 1082, 1083, 501, 1085,
1429 1086, 1087, 502, 503, 1521, 504, 506, 507, 1917, 508,
1430 517, 509, 518, 523, 1091, 1092, 526, 562, 803, 567,
1431 874, 923, 557, 527, 563, 560, 572, 573, 585, 1088,
1432 1089, 1108, 1109, 215, 661, 662, 663, 664, 665, 666,
1433 667, 668, 669, 574, 1, 575, 587, 2, 588, 725,
1434 605, 1140, 215, 216, 217, 218, 219, 220, 221, 222,
1435 223, 224, 1530, 520, 1532, 596, 608, 627, 628, 3,
1436 923, 4, 5, 6, 7, 629, 632, 634, 1624, 633,
1437 8, 638, 9, 635, 639, 10, 11, 648, 645, 647,
1438 12, 13, 14, 642, 15, 644, 646, 803, 649, 650,
1439 1090, 652, 1604, 215, 216, 217, 218, 219, 220, 221,
1440 222, 223, 224, 651, 653, 654, 1616, 655, 656, 1621,
1441 1213, 657, 876, 1184, 1634, 658, 1187, 1188, 775, 1191,
1442 1191, 671, 1194, 1195, 689, 727, 690, 727, 659, 1201,
1443 691, -6, -6, 693, 692, 1207, 694, 696, 695, 1982,
1444 697, 700, 701, 1215, 704, 743, 746, 747, 751, 754,
1445 755, 761, 226, 226, 226, 226, 226, 226, 226, 226,
1446 226, 763, 768, 769, 770, 1240, 1242, 2029, 771, 783,
1447 787, 785, 784, 786, 2409, 798, 800, 788, 810, 1256,
1448 820, 821, 823, 822, 1262, 671, 824, 850, 1120, 1121,
1449 1122, 1123, 1124, 1125, 1126, 1127, 885, 881, 881, 881,
1450 886, 854, 887, 1128, 888, 890, 889, 891, 892, 923,
1451 1129, 1130, 1131, 896, 1132, 895, 897, 902, 1294, 898,
1452 1191, 904, 1298, 369, 727, 899, 905, 907, 906, 908,
1453 909, 912, 2073, 910, 913, 911, 914, 915, 1318, 935,
1454 1346, 916, 1133, 671, 671, 934, 1134, 936, 1135, 940,
1455 1136, 941, 1137, 942, 943, 944, 946, 945, 246, 948,
1456 947, 949, 246, 246, 1140, 950, 951, 952, 2409, 637,
1457 953, 955, 954, 974, 984, 1377, 987, 1379, 1380, 1381,
1458 1382, 1000, 992, 988, 994, 803, 993, 803, 1001, 995,
1459 1006, 1007, 1009, 246, 1015, 1008, 1016, 1017, 1018, 1400,
1460 1019, 1020, 1024, 874, 1031, 1035, 1401, 1026, 1402, 1403,
1461 1038, 1037, 1039, 1404, 1405, 1406, 1040, 1407, 1408, 1042,
1462 1041, 1043, 1409, 1410, 1044, 1048, 1051, 1067, 1052, 1071,
1463 1412, 1075, 1074, 1084, 1081, 1416, 1073, 1093, 1094, 1095,
1464 1420, 1098, 1422, 1420, 1423, 215, 661, 662, 663, 664,
1465 665, 666, 667, 668, 669, 1430, 923, 1096, 1432, 1430,
1466 1433, 1097, 226, 226, 1797, 1215, 505, 1100, 246, 1099,
1467 1101, 1102, 1104, 1103, 1105, 1106, 1442, 1107, 1443, 1110,
1468 1444, 1111, 1113, 1316, 1446, 1447, 215, 216, 217, 218,
1469 219, 220, 221, 222, 223, 224, 1112, 1114, 1116, 1115,
1470 1117, 1118, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465,
1471 1466, 1467, 1468, 1469, 1147, 1471, 1149, 1473, 1150, 1475,
1472 1151, 1477, 1152, 1153, 1160, 1481, 1482, 1483, 1484, 1485,
1473 1161, 1487, 1488, 1162, 1490, 1491, 1492, 1163, 1164, 1317,
1474 1495, 1496, 215, 216, 217, 218, 219, 220, 221, 222,
1475 223, 224, 1165, 1166, 1167, 1168, 1169, 1512, 1171, 1170,
1476 1172, 1173, 1174, 1945, 1493, 1494, 215, 216, 217, 218,
1477 219, 220, 221, 222, 223, 224, 1198, 1208, 1211, 1212,
1478 1217, 1218, 1216, 1224, 1225, 772, 776, 777, 1230, 1231,
1479 1232, 1233, 1243, 1140, 1244, 1245, 1246, 1247, 671, 1248,
1480 803, 1252, 1254, 1260, 1267, 2020, 1265, 807, 215, 216,
1481 217, 218, 219, 220, 221, 222, 223, 224, 1268, 1269,
1482 1270, 1271, 1272, 1273, 1277, 1278, 1279, 1280, 703, 1256,
1483 1295, 1301, 1299, 882, 2021, 1302, 1562, 215, 216, 217,
1484 218, 219, 220, 221, 222, 223, 224, 1303, 1309, 1312,
1485 1321, 1322, 1323, 1324, 1549, 1550, 1552, 1262, 1554, 1325,
1486 1215, 1557, 1242, 1326, 1327, 1328, 1329, 1330, 1564, 1331,
1487 1332, 1333, 1334, 1338, 1335, 1339, 1340, 1341, 1392, 505,
1488 505, 226, 1342, 1587, 1344, 1343, 1373, 1376, 1345, 1375,
1489 1374, 1384, 1378, 803, 1385, 1256, 671, 1388, 1262, 1242,
1490 1386, 1389, 1383, 1391, 1393, 1387, 1394, 1390, 1395, 1396,
1491 671, 1618, 1399, 671, 727, 1628, 1630, 1397, 671, 877,
1492 881, 881, 1587, 1413, 1398, 1552, 1587, 1411, 1417, 1418,
1493 1414, 1424, 1425, 1242, 1242, 1242, 1242, 1242, 1427, 1428,
1494 1429, 1435, 1684, 1436, 1437, 1438, 1439, 1262, 1262, 1441,
1495 1419, 1689, 1690, 1691, 1692, 871, 872, 215, 661, 662,
1496 663, 664, 665, 666, 667, 668, 669, 1426, 1434, 1706,
1497 1707, 246, 246, 1440, 1445, 1708, 1709, 1710, 1448, 1449,
1498 1450, 1712, 246, 1452, 1451, 1453, 246, 1454, 1455, 1456,
1499 1472, 1457, 1420, 1420, 1476, 1478, 1479, 1480, 1486, 1489,
1500 1497, 1498, 1499, 1726, 1726, 1501, 246, 1502, 1507, 1500,
1501 1504, 1503, 1505, 1506, 1564, 1511, 1509, 1508, 1510, 1514,
1502 1515, 246, 1516, 1519, 1737, 1738, 1520, 1740, 1088, 1089,
1503 1513, 1518, 1517, 1526, 1535, 1528, 1534, 1536, 1748, 1856,
1504 1857, 215, 216, 217, 218, 219, 220, 221, 222, 223,
1505 224, 1537, 1539, 1538, 1540, 1751, 1541, 1542, 1561, 1545,
1506 1546, 1559, 1753, 1524, 1577, 1565, 1566, 1525, 1573, 1757,
1507 1758, 1759, 1760, 1761, 1575, 1576, 1574, 1578, 1595, 246,
1508 1596, 1764, 1765, 246, 1594, 1597, 1598, 1601, 1599, 1605,
1509 1600, 1609, 1608, 1611, 1610, 1612, 1613, 874, 1782, 1614,
1510 1640, 1645, 1646, 1615, 1662, 1653, 1664, 226, 226, 505,
1511 1647, 1668, 1670, 1665, 1656, 1671, 1672, 1675, 1678, 1663,
1512 1666, 1679, 246, 1681, 778, 1680, 1667, 1682, 782, 1669,
1513 1673, 1683, 1676, 1685, 1686, 1817, 1628, 793, 1688, 1687,
1514 1694, 1696, 1256, 1701, 808, 1829, 1693, 1702, 1829, 1695,
1515 1697, 1698, 1703, 1704, 1705, 1713, 1711, 1721, 1715, 1718,
1516 1728, 1716, 1564, 1719, 1256, 1720, 1722, 1729, 1730, 807,
1517 1733, 1185, 1186, 1734, 1736, 1587, 1735, 1739, 1744, 1741,
1518 1587, 1196, 1742, 1745, 1747, 1200, 1749, 1750, 903, 1756,
1519 1628, 1746, 1843, 1755, 1762, 1763, 1767, 1766, 1776, 1769,
1520 1618, 1860, 1770, 1628, 1587, 1220, 1587, 1220, 1771, 1618,
1521 1262, 1240, 877, 1768, 1772, 1773, 1191, 1843, 1904, 1235,
1522 1777, 1235, 876, 1778, 1779, 1780, 1781, 1786, 1783, 1784,
1523 1430, 1787, 1785, 1430, 1894, 1788, 1790, 1791, 1798, 1792,
1524 1793, 1799, 1804, 1800, 1802, 1806, 1801, 1808, 1814, 2274,
1525 1836, 1848, 1805, 1803, 882, 882, 882, 1807, 876, 1889,
1526 1816, 876, 1852, 1818, 1821, 876, 1819, 1822, 1823, 1824,
1527 1825, 1832, 1833, 1834, 1293, 1942, 1835, 1837, 1297, 1838,
1528 1844, 1839, 1845, 1846, 505, 505, 1847, 1948, 1949, 1849,
1529 1850, 1853, 1872, 1864, 1865, 1952, 1871, 1876, 1881, 1882,
1530 1885, 1875, 1891, 1880, 1943, 1944, 1888, 1893, 1886, 1890,
1531 1887, 1895, 1892, 1896, 1898, 1972, 1897, 1336, 1899, 1900,
1532 1901, 1903, 1905, 1902, 1908, 1907, 1906, 1909, 1910, 1911,
1533 1912, 1913, 1914, 1916, 246, 1915, 1922, 1918, 1997, 1919,
1534 1920, 246, 1921, 1923, 1925, 1929, 1931, 1924, 1940, 1941,
1535 2019, 1926, 1930, 246, 1927, 1928, 1933, 1958, 1932, 1935,
1536 1934, 1936, 1937, 1959, 1947, 246, 1938, 1953, 1954, 1946,
1537 1955, 226, 226, 1950, 1951, 246, 1956, 1957, 1960, 1963,
1538 1961, 1962, 1966, 1964, 1965, 1967, 1969, 1970, 1979, 1974,
1539 1968, 1971, 1973, 2022, 1630, 1975, 1976, 1978, 1977, 1980,
1540 1618, 1843, 1981, 1987, 1191, 1983, 246, 1990, 1992, 1993,
1541 1988, 1991, 1994, 1999, 1995, 1996, 1998, 2000, 2001, 246,
1542 1989, 2033, 2002, 2004, 2049, 246, 2003, 2028, 2005, 246,
1543 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356,
1544 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366,
1545 1367, 1368, 2006, 2011, 2008, 2007, 2009, 2027, 2010, 2012,
1546 2013, 2015, 1119, 2017, 2014, 2016, 2031, 2018, 2096, 2097,
1547 2030, 2023, 2024, 2034, 2032, 2035, 2036, 2037, 2039, 2038,
1548 2040, 2042, 2044, 2041, 2043, 2045, 2046, 2048, 2047, 2050,
1549 2051, 2052, 2053, 2054, 2138, 2063, 2056, 2061, 2055, 2062,
1550 2057, 1175, 2058, 1181, 1182, 2066, 2067, 2068, 2070, 2069,
1551 2071, 246, 2075, 2072, 876, 2074, 2076, 2078, 2077, 876,
1552 2079, 2080, 2082, 1202, 2083, 2081, 2084, 2086, 2085, 2087,
1553 2088, 2089, 2092, 2093, 2094, 2095, 2098, 2099, 2101, 2104,
1554 2106, 2109, 2100, 876, 226, 876, 2103, 2102, 2105, 2111,
1555 2107, 876, 2108, 2110, 2117, 2112, 2118, 2114, 2113, 2116,
1556 2119, 2120, 2122, 2115, 2124, 2123, 1249, 2125, 2121, 2126,
1557 2127, 2131, 2132, 2133, 1258, 1259, 2130, 2134, 2136, 1264,
1558 2135, 2137, 2139, 2141, 2144, 2140, 2142, 2145, 2148, 2147,
1559 1256, 2143, 2149, 2150, 2153, 2151, 246, 246, 1281, 1282,
1560 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
1561 1548, 2154, 2146, 2155, 246, 2152, 1555, 2156, 2157, 2254,
1562 2159, 1304, 1305, 1306, 1307, 1308, 2160, 2161, 2162, 1567,
1563 2164, 1220, 1220, 2165, 2158, 2166, 2167, 2168, 2169, 1579,
1564 2163, 2170, 2171, 2172, 2176, 2173, 2178, 226, 226, 2177,
1565 2183, 505, 2179, 2188, 1337, 2189, 2182, 2184, 2185, 2194,
1566 2190, 2175, 2193, 2196, 2202, 2203, 2206, 2192, 2205, 1620,
1567 2191, 2195, 2197, 2199, 1633, 2212, 2201, 882, 882, 2204,
1568 1639, 2209, 2207, 2222, 1643, 2208, 2213, 2225, 2214, 2228,
1569 2221, 2230, 2215, 2227, 2216, 2220, 2231, 2229, 2226, 2233,
1570 2232, 2234, 2239, 2235, 2236, 2240, 877, 2241, 2244, 2246,
1571 2245, 2248, 2247, 2250, 2251, 2249, 2258, 2256, 2276, 2252,
1572 2259, 2260, 2253, 2261, 2255, 2257, 2262, 2265, 2242, 2266,
1573 2357, 2263, 2267, 2264, 505, 505, 226, 2268, 2269, 2270,
1574 2273, 2272, 2277, 2282, 2283, 2243, 2285, 2284, 2271, 2286,
1575 2275, 2290, 2291, 2287, 2278, 2289, 2292, 2295, 2294, 2297,
1576 2296, 2298, 2301, 2302, 2313, 2306, 2307, 2308, 2310, 2315,
1577 2288, 2318, 2320, 2293, 2317, 2323, 2303, 2304, 2321, 2359,
1578 2328, 2299, 2312, 2314, 2325, 2326, 2311, 2324, 2329, 2319,
1579 2330, 1725, 1725, 2333, 2327, 2335, 2300, 2331, 2332, 2342,
1580 2337, 2334, 2336, 2338, 2343, 2339, 2340, 2341, 2346, 2349,
1581 2350, 226, 226, 505, 2347, 86, 87, 88, 89, 90,
1582 91, 92, 93, 94, 95, 96, 97, 2344, 2451, 929,
1583 2345, 2348, 101, 102, 103, 104, 105, 106, 107, 108,
1584 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1585 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1586 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1587 139, 140, 2351, 2352, 2353, 2356, 2354, 2355, 2358, 2360,
1588 2361, 2362, 2363, 2365, 2364, 2367, 2368, 505, 505, 2366,
1589 2370, 2369, 2371, 2372, 2373, 2374, 2375, 2379, 2382, 2376,
1590 2377, 2387, 2386, 2378, 2388, 2389, 2390, 2392, 2391, 2394,
1591 2393, 2395, 2396, 2397, 2398, 1235, 1810, 1811, 1235, 2400,
1592 2399, 2401, 2402, 2417, 2413, 2403, 2404, 2414, 2415, 2416,
1593 2418, 2419, 2421, 1828, 2423, 2422, 1828, 2424, 2425, 2434,
1594 2426, 2441, 2427, 2428, 2429, 1547, 2430, 2436, 2438, 2432,
1595 2439, 2433, 2420, 2431, 2437, 2443, 2442, 2452, 2440, 2435,
1596 2444, 2445, 2450, 2447, 2446, 2448, 2453, 2449, 2454, 2455,
1597 2457, 2456, 2458, 2461, 2459, 2460, 2462, 2463, 2466, 2464,
1598 2465, 2473, 2468, 2472, 2467, 2471, 2476, 1602, 2483, 2484,
1599 2477, 2480, 2485, 2478, 2487, 2492, 2495, 1868, 1870, 2481,
1600 2493, 2496, 2489, 2482, 2486, 2501, 2491, 2502, 2499, 2497,
1601 2500, 2490, 1644, 2479, 2520, 2518, 2503, 2504, 2488, 2505,
1602 2512, 2506, 2508, 2509, 2526, 2510, 807, 2515, 2541, 2513,
1603 2533, 2516, 2517, 2494, 2522, 2521, 2523, 2519, 2524, 2525,
1604 2529, 2532, 2530, 2531, 2538, 876, 2537, 2543, 2534, 2539,
1605 2540, 2498, 2546, 2542, 2544, 2547, 2507, 1677, 69, 235,
1606 71, 72, 73, 74, 75, 236, 237, 238, 239, 240,
1607 241, 242, 243, 244, 245, 86, 87, 88, 89, 90,
1608 91, 92, 93, 94, 95, 96, 97, 672, 673, 918,
1609 99, 919, 101, 102, 103, 104, 105, 106, 107, 108,
1610 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1611 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1612 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1613 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1614 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1615 159, 160, 161, 69, 235, 71, 72, 73, 74, 75,
1616 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1617 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1618 96, 97, 1141, 2511, 1142, 99, 919, 101, 102, 103,
1619 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1620 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1621 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1622 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1623 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1624 154, 155, 156, 157, 158, 159, 160, 161, 2514, 2545,
1625 2548, 2549, 2550, 69, 235, 71, 72, 73, 74, 75,
1626 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1627 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1628 96, 97, 1840, 1146, 1142, 99, 919, 101, 102, 103,
1629 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1630 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1631 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1632 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1633 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1634 154, 155, 156, 157, 158, 159, 160, 161, 69, 235,
1635 71, 72, 73, 74, 75, 236, 237, 238, 239, 240,
1636 241, 242, 243, 244, 245, 86, 87, 88, 89, 90,
1637 91, 92, 93, 94, 95, 96, 97, 1827, 2551, 98,
1638 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1639 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1640 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1641 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1642 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1643 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1644 159, 160, 161, 69, 235, 71, 72, 73, 74, 75,
1645 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1646 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1647 96, 97, 2552, 1830, 98, 99, 100, 101, 102, 103,
1648 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1649 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1650 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1651 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1652 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1653 154, 155, 156, 157, 158, 159, 160, 161, 69, 70,
1654 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
1655 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1656 91, 92, 93, 94, 95, 96, 97, 2553, 2554, 98,
1657 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1658 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1659 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1660 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1661 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1662 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1663 159, 160, 161, 69, 235, 71, 72, 73, 74, 75,
1664 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1665 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1666 96, 97, 2555, 2556, 918, 99, 919, 101, 102, 103,
1667 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1668 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1669 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1670 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1671 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1672 154, 155, 156, 157, 158, 159, 160, 161, 69, 235,
1673 71, 72, 73, 74, 75, 236, 237, 238, 239, 240,
1674 241, 242, 243, 244, 245, 86, 87, 88, 89, 90,
1675 91, 92, 93, 94, 95, 96, 97, 2557, 2558, 98,
1676 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1677 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1678 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1679 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1680 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1681 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1682 159, 160, 161, 69, 235, 71, 72, 73, 74, 75,
1683 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1684 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1685 96, 97, 2559, 2560, 1371, 99, 919, 101, 102, 103,
1686 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1687 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1688 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1689 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1690 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1691 154, 155, 156, 157, 158, 159, 160, 161, 69, 235,
1692 71, 72, 73, 74, 75, 236, 237, 238, 239, 240,
1693 241, 242, 243, 244, 245, 86, 87, 88, 89, 90,
1694 91, 92, 93, 94, 95, 96, 97, 2561, 2562, 1142,
1695 99, 919, 101, 102, 103, 104, 105, 106, 107, 108,
1696 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1697 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1698 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1699 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1700 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1701 159, 160, 161, 69, 235, 71, 72, 73, 74, 75,
1702 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
1703 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1704 96, 97, 2563, 2564, 2565, 99, 919, 101, 102, 103,
1705 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1706 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1707 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
1708 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
1709 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
1710 154, 155, 156, 157, 158, 159, 160, 161, 69, 235,
1711 71, 72, 73, 1580, 1581, 76, 77, 78, 79, 80,
1712 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
1713 91, 92, 93, 94, 95, 96, 97, 1582, 1583, 98,
1714 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1715 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1716 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1717 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1718 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1719 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1720 159, 160, 69, 235, 71, 72, 73, 1580, 1581, 76,
1721 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
1722 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1723 97, 1582, 1583, 98, 99, 100, 101, 102, 103, 104,
1724 105, 106, 107, 1861, 109, 110, 111, 112, 113, 114,
1725 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1726 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1727 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1728 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1729 155, 156, 157, 158, 159, 160, 69, 235, 71, 72,
1730 73, 74, 75, 236, 237, 238, 239, 240, 241, 242,
1731 243, 244, 245, 86, 87, 88, 89, 90, 91, 92,
1732 93, 94, 95, 96, 97, 2566, 2567, 98, 99, 100,
1733 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1734 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1735 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1736 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1737 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
1738 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
1739 69, 235, 71, 72, 73, 74, 75, 76, 77, 78,
1740 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
1741 89, 90, 91, 92, 93, 94, 95, 96, 97, 2568,
1742 2570, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1743 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1744 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1745 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1746 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1747 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
1748 157, 158, 159, 160, 69, 235, 1421, 72, 73, 74,
1749 75, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1750 245, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1751 95, 96, 97, 2571, 2572, 98, 99, 100, 101, 102,
1752 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1753 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
1754 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1755 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
1756 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
1757 153, 154, 155, 156, 157, 158, 159, 160, 69, 235,
1758 1431, 72, 73, 74, 75, 236, 237, 238, 239, 240,
1759 241, 242, 243, 244, 245, 86, 87, 88, 89, 90,
1760 91, 92, 93, 94, 95, 96, 97, 2573, 2574, 98,
1761 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1762 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1763 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1764 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1765 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1766 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1767 159, 160, 69, 235, 1470, 72, 73, 74, 75, 236,
1768 237, 238, 239, 240, 241, 242, 243, 244, 245, 86,
1769 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1770 97, 2569, 2575, 98, 99, 100, 101, 102, 103, 104,
1771 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1772 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1773 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1774 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1775 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1776 155, 156, 157, 158, 159, 160, 69, 235, 1474, 72,
1777 73, 74, 75, 236, 237, 238, 239, 240, 241, 242,
1778 243, 244, 245, 86, 87, 88, 89, 90, 91, 92,
1779 93, 94, 95, 96, 97, 2576, 2577, 98, 99, 100,
1780 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1781 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1782 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1783 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1784 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
1785 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
1786 69, 235, 1717, 72, 73, 74, 75, 236, 237, 238,
1787 239, 240, 241, 242, 243, 244, 245, 86, 87, 88,
1788 89, 90, 91, 92, 93, 94, 95, 96, 97, 2578,
1789 2579, 98, 99, 100, 101, 102, 103, 104, 105, 106,
1790 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
1791 117, 118, 119, 120, 121, 122, 123, 124, 125, 126,
1792 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
1793 137, 138, 139, 140, 141, 142, 143, 144, 145, 146,
1794 147, 148, 149, 150, 151, 152, 153, 154, 155, 156,
1795 157, 158, 159, 160, 69, 235, 1723, 72, 73, 74,
1796 75, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1797 245, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1798 95, 96, 97, 2580, 2581, 98, 99, 100, 101, 102,
1799 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
1800 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
1801 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
1802 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
1803 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
1804 153, 154, 155, 156, 157, 158, 159, 160, 69, 235,
1805 1752, 72, 73, 74, 75, 236, 237, 238, 239, 240,
1806 241, 242, 243, 244, 245, 86, 87, 88, 89, 90,
1807 91, 92, 93, 94, 95, 96, 97, 2582, 2583, 98,
1808 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
1809 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
1810 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
1811 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
1812 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
1813 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
1814 159, 160, 69, 235, 1754, 72, 73, 74, 75, 236,
1815 237, 238, 239, 240, 241, 242, 243, 244, 245, 86,
1816 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
1817 97, 2584, 2585, 98, 99, 100, 101, 102, 103, 104,
1818 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1819 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1820 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1821 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1822 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1823 155, 156, 157, 158, 159, 160, 69, 235, 71, 72,
1824 73, 74, 75, 236, 237, 238, 239, 240, 241, 242,
1825 243, 244, 245, 86, 87, 88, 89, 90, 91, 92,
1826 93, 94, 95, 96, 97, 2586, 2587, 2588, 99, 919,
1827 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
1828 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
1829 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
1830 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
1831 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
1832 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
1833 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2599,
1834 2598, 2600, 2602, 2601, 2603, 2605, 2608, 2604, 2611, 2607,
1835 2619, 2621, 2612, 2606, 2609, 2610, 2620, 2623, 2618, 2624,
1836 2636, 2626, 2613, 2614, 2617, 2627, 2625, 2630, 2628, 2622,
1837 2629, 2641, 2643, 2644, 2631, 2648, 2633, 2632, 1189, 2637,
1838 2634, 2635, 2647, 2651, 2638, 1641, 2639, 2640, 2661, 2642,
1839 2645, 2646, 2649, 2654, 2650, 2652, 1831, 2655, 2653, 1820,
1840 2660, 1159, 2656, 1522, 2658, 2657, 2659, 933, 1727, 1533,
1841 1863, 353, 447, 354, 355, 448, 449, 450, 799, 841,
1842 868, 356, 451, 0, 452, 0, 453, 454, 214, 455,
1843 456, 457, 458, 0, 459, 460, 461, 462, 463, 464,
1844 465, 471, 472, 473, 474, 475, 372, 388, 357, 358,
1845 476, 359, 360, 389, 361, 363, 391, 364, 0, 397,
1846 367, 398
1847 };
1848
1849 static const yytype_int16 yycheck[] =
1850 {
1851 19, 960, 21, 22, 23, 24, 25, 26, 27, 28,
1852 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
1853 39, 40, 41, 42, 621, 559, 920, 561, 1377, 1467,
1854 1012, 19, 937, 182, 922, 921, 1213, 1405, 170, 177,
1855 178, 186, 928, 968, 998, 186, 514, 539, 1765, 181,
1856 182, 177, 178, 597, 1470, 186, 1138, 591, 1474, 1045,
1857 1046, 1047, 1562, 6, 1684, 1748, 556, 601, 49, 28,
1858 29, 551, 552, 49, 1757, 1410, 49, 30, 1446, 49,
1859 39, 986, 544, 551, 552, 77, 78, 79, 80, 81,
1860 82, 83, 84, 85, 1443, 49, 564, 565, 1421, 561,
1861 568, 569, 570, 571, 29, 558, 1011, 26, 600, 1432,
1862 1433, 92, 1447, 593, 594, 49, 92, 49, 1738, 92,
1863 1025, 30, 92, 1028, 43, 593, 594, 1495, 1496, 591,
1864 49, 1751, 30, 52, 39, 603, 604, 30, 92, 601,
1865 45, 27, 51, 1068, 597, 29, 1481, 1482, 1483, 1484,
1866 1485, 641, 50, 39, 97, 98, 99, 50, 92, 29,
1867 92, 29, 46, 49, 1487, 1488, 52, 1490, 30, 1492,
1868 42, 672, 673, 45, 26, 30, 48, 39, 46, 49,
1869 600, 1086, 602, 529, 530, 531, 532, 533, 534, 535,
1870 536, 537, 538, 45, 540, 541, 542, 543, 618, 545,
1871 546, 547, 548, 29, 550, 625, 626, 553, 554, 555,
1872 1710, 44, 51, 52, 748, 48, 42, 28, 29, 10,
1873 11, 12, 13, 14, 15, 16, 17, 18, 19, 28,
1874 29, 1408, 1949, 252, 253, 254, 255, 256, 29, 50,
1875 32, 33, 177, 178, 43, 51, 181, 182, 267, 1143,
1876 49, 1139, 27, 44, 39, 274, 48, 276, 277, 278,
1877 279, 280, 1148, 282, 283, 1948, 285, 286, 287, 54,
1878 289, 46, 291, 292, 293, 294, 295, 30, 297, 298,
1879 299, 300, 301, 302, 303, 304, 305, 306, 1370, 29,
1880 44, 310, 28, 29, 313, 48, 315, 30, 30, 318,
1881 31, 32, 33, 322, 323, 324, 46, 1723, 327, 328,
1882 46, 330, 331, 44, 50, 48, 38, 48, 337, 338,
1883 339, 340, 1760, 342, 343, 344, 345, 26, 50, 28,
1884 29, 30, 31, 352, 39, 39, 1752, 43, 1754, 29,
1885 359, 1690, 48, 362, 43, 364, 365, 366, 367, 54,
1886 49, 55, 371, 372, 44, 374, 375, 376, 377, 378,
1887 379, 28, 27, 1712, 31, 30, 385, 386, 387, 388,
1888 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
1889 399, 28, 401, 528, 403, 26, 31, 528, 39, 30,
1890 1758, 611, 39, 937, 1717, 0, 43, 528, 618, 44,
1891 51, 42, 43, 44, 10, 11, 12, 13, 14, 15,
1892 16, 17, 18, 19, 32, 33, 175, 176, 39, 920,
1893 921, 922, 181, 182, 45, 44, 44, 928, 77, 78,
1894 79, 80, 81, 82, 83, 84, 85, 43, 1761, 973,
1895 28, 975, 986, 28, 29, 29, 31, 31, 26, 174,
1896 31, 39, 30, 31, 179, 43, 98, 99, 43, 478,
1897 44, 480, 611, 44, 49, 43, 485, 1011, 1422, 1423,
1898 938, 939, 39, 611, 1379, 42, 1381, 969, 1372, 611,
1899 28, 1025, 1468, 1469, 1028, 611, 599, 31, 32, 33,
1900 28, 39, 26, 27, 28, 29, 30, 31, 611, 44,
1901 44, 39, 26, 37, 48, 50, 30, 1412, 97, 43,
1902 164, 979, 980, 981, 982, 49, 50, 26, 52, 43,
1903 29, 29, 26, 511, 28, 29, 30, 31, 46, 997,
1904 39, 999, 32, 33, 1002, 1003, 1004, 1005, 1072, 43,
1905 30, 1033, 1086, 170, 44, 49, 50, 174, 52, 46,
1906 49, 539, 179, 52, 1022, 1023, 544, 10, 11, 12,
1907 13, 14, 15, 16, 17, 18, 19, 49, 1036, 46,
1908 52, 559, 49, 561, 32, 33, 225, 30, 227, 228,
1909 229, 230, 231, 232, 233, 234, 1491, 45, 46, 577,
1910 28, 43, 580, 581, 582, 51, 52, 49, 43, 1091,
1911 1092, 39, 590, 591, 49, 28, 26, 170, 28, 29,
1912 30, 31, 600, 601, 1082, 1083, 39, 1085, 181, 1087,
1913 183, 184, 30, 43, 612, 613, 39, 615, 616, 49,
1914 32, 33, 52, 621, 622, 623, 624, 170, 1139, 985,
1915 28, 660, 1143, 49, 173, 44, 179, 1148, 181, 182,
1916 179, 39, 28, 48, 187, 188, 170, 190, 31, 32,
1917 33, 175, 176, 39, 683, 684, 685, 181, 182, 661,
1918 662, 663, 664, 665, 666, 667, 668, 669, 46, 46,
1919 46, 49, 49, 49, 1570, 32, 33, 706, 707, 708,
1920 709, 710, 711, 712, 713, 714, 715, 716, 717, 718,
1921 719, 50, 721, 722, 723, 724, 28, 31, 32, 33,
1922 729, 730, 731, 732, 28, 29, 735, 39, 737, 49,
1923 739, 740, 741, 49, 1706, 744, 745, 1709, 26, 46,
1924 749, 750, 49, 618, 619, 620, 28, 29, 757, 758,
1925 759, 760, 672, 673, 46, 764, 765, 766, 767, 676,
1926 677, 185, 186, 772, 39, 774, 185, 186, 777, 778,
1927 748, 177, 178, 782, 171, 172, 564, 565, 52, 27,
1928 789, 98, 43, 43, 29, 49, 795, 28, 797, 39,
1929 799, 30, 26, 802, 1689, 804, 1691, 806, 19, 2138,
1930 809, 55, 811, 812, 26, 29, 815, 50, 50, 818,
1931 10, 11, 12, 13, 14, 15, 16, 17, 43, 828,
1932 829, 830, 30, 50, 29, 45, 2254, 836, 837, 838,
1933 839, 840, 841, 842, 843, 844, 845, 846, 847, 848,
1934 849, 30, 851, 852, 853, 1379, 855, 1381, 50, 1764,
1935 859, 860, 861, 862, 863, 30, 865, 866, 29, 868,
1936 869, 870, 49, 26, 1346, 51, 38, 27, 1817, 39,
1937 38, 30, 27, 39, 883, 884, 45, 27, 1412, 27,
1938 1467, 1372, 39, 45, 45, 39, 51, 31, 31, 871,
1939 872, 900, 901, 10, 11, 12, 13, 14, 15, 16,
1940 17, 18, 19, 54, 1, 39, 39, 4, 30, 26,
1941 51, 920, 10, 11, 12, 13, 14, 15, 16, 17,
1942 18, 19, 1380, 44, 1382, 44, 39, 51, 51, 26,
1943 1421, 28, 29, 30, 31, 38, 31, 42, 1462, 54,
1944 37, 45, 39, 39, 45, 42, 43, 26, 48, 48,
1945 47, 48, 49, 44, 51, 44, 50, 1491, 48, 52,
1946 7, 28, 1444, 10, 11, 12, 13, 14, 15, 16,
1947 17, 18, 19, 50, 46, 27, 1458, 26, 92, 1461,
1948 989, 29, 621, 961, 1466, 44, 964, 965, 966, 967,
1949 968, 969, 970, 971, 29, 973, 26, 975, 43, 977,
1950 26, 98, 99, 31, 92, 983, 37, 92, 42, 1904,
1951 29, 48, 50, 991, 39, 39, 29, 44, 29, 92,
1952 49, 29, 661, 662, 663, 664, 665, 666, 667, 668,
1953 669, 92, 29, 31, 92, 1013, 1014, 1952, 29, 29,
1954 44, 92, 31, 29, 2357, 39, 49, 43, 30, 1027,
1955 29, 38, 29, 31, 1032, 1033, 30, 52, 10, 11,
1956 12, 13, 14, 15, 16, 17, 29, 1045, 1046, 1047,
1957 31, 44, 26, 25, 92, 31, 52, 92, 45, 1570,
1958 32, 33, 34, 48, 36, 44, 50, 49, 1066, 39,
1959 1068, 29, 1070, 39, 1072, 43, 30, 50, 45, 50,
1960 30, 44, 1997, 48, 39, 49, 39, 29, 1090, 45,
1961 1119, 39, 64, 1091, 1092, 42, 68, 30, 70, 39,
1962 72, 39, 74, 44, 39, 30, 30, 39, 772, 39,
1963 49, 29, 776, 777, 1143, 52, 30, 26, 2451, 50,
1964 28, 44, 51, 42, 44, 1154, 39, 1156, 1157, 1158,
1965 1159, 27, 39, 45, 50, 1689, 39, 1691, 39, 45,
1966 39, 30, 39, 807, 39, 49, 30, 49, 39, 1178,
1967 29, 39, 44, 1760, 31, 45, 1185, 50, 1187, 1188,
1968 45, 39, 30, 1192, 1193, 1194, 39, 1196, 1197, 51,
1969 42, 45, 1201, 1202, 44, 51, 45, 26, 45, 26,
1970 1209, 39, 30, 39, 30, 1214, 51, 39, 31, 44,
1971 1219, 30, 1221, 1222, 1223, 10, 11, 12, 13, 14,
1972 15, 16, 17, 18, 19, 1234, 1717, 39, 1237, 1238,
1973 1239, 39, 871, 872, 1692, 1213, 875, 27, 882, 49,
1974 39, 28, 30, 29, 26, 28, 1255, 39, 1257, 50,
1975 1259, 55, 28, 7, 1263, 1264, 10, 11, 12, 13,
1976 14, 15, 16, 17, 18, 19, 39, 44, 92, 44,
1977 92, 29, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288,
1978 1289, 1290, 1291, 1292, 32, 1294, 35, 1296, 33, 1298,
1979 26, 1300, 44, 28, 45, 1304, 1305, 1306, 1307, 1308,
1980 42, 1310, 1311, 44, 1313, 1314, 1315, 44, 28, 7,
1981 1319, 1320, 10, 11, 12, 13, 14, 15, 16, 17,
1982 18, 19, 44, 30, 92, 92, 30, 1336, 42, 26,
1983 30, 43, 31, 7, 1316, 1317, 10, 11, 12, 13,
1984 14, 15, 16, 17, 18, 19, 42, 49, 92, 44,
1985 44, 44, 92, 92, 44, 576, 577, 578, 45, 28,
1986 30, 92, 45, 1372, 28, 30, 92, 92, 1346, 29,
1987 1904, 49, 48, 31, 45, 7, 48, 598, 10, 11,
1988 12, 13, 14, 15, 16, 17, 18, 19, 28, 92,
1989 42, 50, 28, 50, 29, 29, 50, 42, 42, 1377,
1990 42, 29, 43, 624, 7, 52, 1415, 10, 11, 12,
1991 13, 14, 15, 16, 17, 18, 19, 29, 49, 42,
1992 45, 30, 44, 44, 1402, 1403, 1404, 1405, 1406, 28,
1993 1408, 1409, 1410, 28, 30, 26, 92, 30, 1416, 92,
1994 26, 42, 30, 48, 29, 27, 48, 30, 48, 1088,
1995 1089, 1090, 49, 1431, 30, 39, 34, 51, 39, 92,
1996 50, 26, 39, 1997, 30, 1443, 1444, 30, 1446, 1447,
1997 49, 44, 92, 30, 43, 50, 92, 39, 49, 30,
1998 1458, 1459, 30, 1461, 1462, 1463, 1464, 45, 1466, 1467,
1999 1468, 1469, 1470, 39, 55, 1473, 1474, 50, 39, 49,
2000 92, 39, 49, 1481, 1482, 1483, 1484, 1485, 50, 44,
2001 39, 50, 1521, 44, 39, 30, 39, 1495, 1496, 51,
2002 92, 1530, 1531, 1532, 1533, 8, 9, 10, 11, 12,
2003 13, 14, 15, 16, 17, 18, 19, 92, 92, 1548,
2004 1549, 1185, 1186, 50, 30, 1554, 1555, 1556, 28, 92,
2005 50, 1560, 1196, 45, 39, 30, 1200, 39, 39, 30,
2006 51, 45, 1571, 1572, 30, 39, 30, 39, 28, 30,
2007 92, 48, 30, 1582, 1583, 30, 1220, 50, 30, 49,
2008 42, 44, 39, 42, 1562, 39, 92, 43, 92, 30,
2009 39, 1235, 42, 31, 1603, 1604, 92, 1606, 1580, 1581,
2010 51, 44, 50, 48, 27, 42, 45, 42, 1617, 8,
2011 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2012 19, 50, 29, 92, 44, 1634, 31, 49, 44, 50,
2013 48, 48, 1641, 43, 29, 44, 50, 48, 44, 1648,
2014 1649, 1650, 1651, 1652, 45, 92, 50, 44, 92, 1293,
2015 29, 1660, 1661, 1297, 45, 44, 31, 43, 92, 28,
2016 48, 45, 30, 44, 92, 92, 48, 2254, 1677, 45,
2017 30, 45, 42, 92, 45, 48, 42, 1316, 1317, 1318,
2018 92, 29, 44, 50, 92, 42, 31, 28, 43, 92,
2019 92, 27, 1336, 49, 579, 48, 92, 31, 583, 92,
2020 92, 39, 92, 45, 30, 1714, 1684, 592, 30, 49,
2021 42, 48, 1690, 31, 599, 1724, 51, 50, 1727, 49,
2022 39, 49, 45, 30, 28, 49, 51, 39, 49, 49,
2023 6, 48, 1710, 48, 1712, 51, 46, 51, 39, 960,
2024 31, 962, 963, 39, 30, 1723, 51, 50, 28, 51,
2025 1728, 972, 39, 26, 39, 976, 30, 45, 643, 28,
2026 1738, 92, 1740, 92, 39, 46, 31, 51, 26, 48,
2027 1748, 1753, 43, 1751, 1752, 996, 1754, 998, 39, 1757,
2028 1758, 1759, 1760, 92, 92, 39, 1764, 1765, 1797, 1010,
2029 31, 1012, 1431, 28, 45, 45, 29, 50, 30, 30,
2030 1809, 30, 51, 1812, 1782, 44, 29, 28, 50, 39,
2031 92, 30, 30, 51, 51, 39, 44, 30, 43, 55,
2032 30, 28, 48, 50, 1045, 1046, 1047, 49, 1467, 30,
2033 50, 1470, 31, 50, 50, 1474, 51, 51, 50, 44,
2034 51, 50, 44, 51, 1065, 1854, 50, 44, 1069, 43,
2035 50, 44, 44, 51, 1493, 1494, 45, 1866, 1867, 45,
2036 44, 44, 26, 45, 45, 1874, 46, 39, 39, 44,
2037 44, 50, 39, 51, 1856, 1857, 44, 26, 51, 45,
2038 50, 44, 51, 43, 28, 1894, 48, 1108, 46, 26,
2039 51, 26, 46, 52, 49, 43, 92, 50, 48, 28,
2040 30, 28, 44, 48, 1548, 30, 46, 48, 1917, 43,
2041 48, 1555, 43, 49, 46, 28, 30, 50, 26, 30,
2042 1942, 49, 46, 1567, 50, 48, 46, 43, 50, 50,
2043 49, 48, 50, 29, 44, 1579, 51, 46, 42, 51,
2044 45, 1580, 1581, 50, 50, 1589, 44, 39, 49, 31,
2045 45, 44, 30, 50, 48, 28, 28, 44, 48, 30,
2046 51, 50, 50, 1945, 1942, 51, 50, 42, 51, 30,
2047 1948, 1949, 49, 30, 1952, 51, 1620, 51, 26, 30,
2048 50, 50, 50, 30, 44, 51, 51, 51, 30, 1633,
2049 92, 31, 51, 92, 1972, 1639, 50, 38, 51, 1643,
2050 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2051 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2052 30, 31, 50, 44, 51, 92, 50, 39, 51, 51,
2053 50, 48, 917, 51, 92, 50, 42, 51, 2020, 2021,
2054 51, 50, 50, 29, 51, 30, 39, 50, 31, 51,
2055 45, 51, 50, 92, 45, 44, 30, 26, 50, 49,
2056 44, 43, 92, 50, 2073, 26, 92, 39, 49, 44,
2057 50, 956, 51, 958, 959, 43, 92, 43, 26, 92,
2058 50, 1725, 44, 43, 1723, 43, 43, 50, 44, 1728,
2059 26, 29, 26, 978, 29, 50, 43, 50, 92, 50,
2060 50, 26, 30, 46, 50, 42, 46, 48, 50, 39,
2061 26, 29, 45, 1752, 1753, 1754, 45, 44, 44, 51,
2062 44, 1760, 45, 43, 30, 92, 28, 92, 50, 50,
2063 39, 29, 29, 92, 37, 31, 1021, 29, 92, 50,
2064 44, 30, 28, 92, 1029, 1030, 45, 28, 49, 1034,
2065 37, 30, 30, 30, 44, 50, 50, 30, 30, 44,
2066 2138, 92, 30, 28, 44, 49, 1810, 1811, 1053, 1054,
2067 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064,
2068 1401, 30, 92, 45, 1828, 92, 1407, 28, 51, 2198,
2069 50, 1076, 1077, 1078, 1079, 1080, 51, 45, 44, 1420,
2070 50, 1422, 1423, 50, 92, 44, 50, 30, 30, 1430,
2071 92, 49, 28, 28, 44, 29, 52, 1856, 1857, 38,
2072 30, 1860, 39, 28, 1109, 52, 39, 39, 39, 28,
2073 39, 92, 38, 30, 29, 28, 28, 44, 29, 1460,
2074 48, 45, 44, 44, 1465, 28, 44, 1468, 1469, 52,
2075 1471, 38, 52, 29, 1475, 44, 52, 28, 48, 38,
2076 42, 27, 50, 44, 50, 50, 29, 45, 52, 26,
2077 50, 30, 45, 48, 38, 28, 2254, 44, 29, 39,
2078 30, 50, 52, 26, 45, 50, 30, 29, 42, 51,
2079 30, 39, 50, 30, 50, 50, 30, 26, 92, 38,
2080 2309, 39, 30, 50, 1943, 1944, 1945, 30, 39, 50,
2081 45, 38, 30, 30, 39, 92, 26, 50, 92, 51,
2082 92, 26, 52, 39, 92, 39, 39, 30, 50, 40,
2083 39, 39, 28, 30, 28, 39, 51, 44, 39, 28,
2084 92, 26, 28, 92, 39, 26, 92, 49, 28, 31,
2085 40, 49, 52, 52, 46, 30, 92, 48, 45, 52,
2086 39, 1582, 1583, 28, 52, 39, 92, 44, 92, 52,
2087 48, 92, 44, 43, 45, 44, 44, 39, 44, 39,
2088 30, 2020, 2021, 2022, 45, 20, 21, 22, 23, 24,
2089 25, 26, 27, 28, 29, 30, 31, 49, 2407, 34,
2090 49, 48, 37, 38, 39, 40, 41, 42, 43, 44,
2091 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2092 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2093 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2094 75, 76, 48, 46, 43, 50, 44, 44, 48, 39,
2095 30, 39, 30, 44, 43, 39, 30, 2096, 2097, 44,
2096 55, 38, 44, 50, 30, 48, 39, 31, 30, 45,
2097 51, 50, 44, 48, 30, 26, 44, 30, 28, 46,
2098 51, 27, 30, 44, 49, 1706, 1707, 1708, 1709, 26,
2099 92, 26, 49, 26, 30, 50, 92, 39, 28, 28,
2100 44, 28, 26, 1724, 44, 46, 1727, 28, 27, 26,
2101 44, 50, 30, 45, 45, 1400, 44, 28, 30, 45,
2102 30, 44, 92, 92, 46, 28, 51, 28, 48, 92,
2103 46, 46, 30, 46, 48, 43, 42, 44, 30, 30,
2104 30, 46, 30, 30, 46, 44, 30, 30, 28, 92,
2105 50, 46, 31, 31, 51, 51, 50, 1442, 51, 26,
2106 42, 46, 26, 49, 26, 30, 26, 1759, 1761, 50,
2107 42, 44, 48, 50, 49, 44, 50, 45, 39, 42,
2108 50, 2451, 1477, 92, 29, 43, 45, 44, 92, 44,
2109 46, 45, 45, 44, 30, 45, 1817, 45, 26, 51,
2110 31, 50, 48, 92, 45, 49, 49, 54, 46, 48,
2111 44, 51, 45, 50, 31, 2254, 51, 29, 50, 48,
2112 46, 92, 26, 50, 48, 30, 92, 1512, 3, 4,
2113 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2114 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2115 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2116 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2117 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2118 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2119 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2120 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2121 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2122 95, 96, 97, 3, 4, 5, 6, 7, 8, 9,
2123 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2124 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2125 30, 31, 32, 92, 34, 35, 36, 37, 38, 39,
2126 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2127 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2128 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2129 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2130 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2131 90, 91, 92, 93, 94, 95, 96, 97, 92, 92,
2132 30, 39, 48, 3, 4, 5, 6, 7, 8, 9,
2133 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2134 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2135 30, 31, 1737, 33, 34, 35, 36, 37, 38, 39,
2136 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2137 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2138 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2139 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2140 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2141 90, 91, 92, 93, 94, 95, 96, 97, 3, 4,
2142 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2143 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2144 25, 26, 27, 28, 29, 30, 31, 32, 26, 34,
2145 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2146 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2147 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2148 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2149 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2150 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2151 95, 96, 97, 3, 4, 5, 6, 7, 8, 9,
2152 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2153 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2154 30, 31, 26, 33, 34, 35, 36, 37, 38, 39,
2155 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2156 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2157 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2158 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2159 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2160 90, 91, 92, 93, 94, 95, 96, 97, 3, 4,
2161 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2162 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2163 25, 26, 27, 28, 29, 30, 31, 42, 45, 34,
2164 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2165 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2166 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2167 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2168 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2169 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2170 95, 96, 97, 3, 4, 5, 6, 7, 8, 9,
2171 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2172 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2173 30, 31, 44, 31, 34, 35, 36, 37, 38, 39,
2174 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2175 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2176 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2177 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2178 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2179 90, 91, 92, 93, 94, 95, 96, 97, 3, 4,
2180 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2181 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2182 25, 26, 27, 28, 29, 30, 31, 48, 44, 34,
2183 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2184 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2185 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2186 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2187 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2188 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2189 95, 96, 97, 3, 4, 5, 6, 7, 8, 9,
2190 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2191 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2192 30, 31, 45, 45, 34, 35, 36, 37, 38, 39,
2193 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2194 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2195 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2196 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2197 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2198 90, 91, 92, 93, 94, 95, 96, 97, 3, 4,
2199 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2200 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2201 25, 26, 27, 28, 29, 30, 31, 44, 44, 34,
2202 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2203 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2204 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2205 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2206 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2207 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2208 95, 96, 97, 3, 4, 5, 6, 7, 8, 9,
2209 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2210 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
2211 30, 31, 45, 55, 26, 35, 36, 37, 38, 39,
2212 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
2213 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
2214 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
2215 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
2216 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
2217 90, 91, 92, 93, 94, 95, 96, 97, 3, 4,
2218 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2219 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2220 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
2221 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2222 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2223 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2224 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2225 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2226 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2227 95, 96, 3, 4, 5, 6, 7, 8, 9, 10,
2228 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2229 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2230 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2231 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2232 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2233 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2234 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2235 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2236 91, 92, 93, 94, 95, 96, 3, 4, 5, 6,
2237 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
2238 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2239 27, 28, 29, 30, 31, 48, 92, 34, 35, 36,
2240 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2241 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2242 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2243 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2244 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2245 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2246 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2247 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2248 23, 24, 25, 26, 27, 28, 29, 30, 31, 48,
2249 28, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2250 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2251 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2252 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2253 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2254 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
2255 93, 94, 95, 96, 3, 4, 5, 6, 7, 8,
2256 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2257 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2258 29, 30, 31, 43, 50, 34, 35, 36, 37, 38,
2259 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2260 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2261 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
2262 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2263 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
2264 89, 90, 91, 92, 93, 94, 95, 96, 3, 4,
2265 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2266 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2267 25, 26, 27, 28, 29, 30, 31, 43, 49, 34,
2268 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2269 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2270 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2271 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2272 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2273 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2274 95, 96, 3, 4, 5, 6, 7, 8, 9, 10,
2275 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2276 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2277 31, 39, 48, 34, 35, 36, 37, 38, 39, 40,
2278 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2279 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2280 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2281 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2282 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2283 91, 92, 93, 94, 95, 96, 3, 4, 5, 6,
2284 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
2285 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2286 27, 28, 29, 30, 31, 43, 51, 34, 35, 36,
2287 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2288 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2289 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2290 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2291 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2292 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2293 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
2294 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2295 23, 24, 25, 26, 27, 28, 29, 30, 31, 31,
2296 45, 34, 35, 36, 37, 38, 39, 40, 41, 42,
2297 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
2298 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
2299 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
2300 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
2301 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
2302 93, 94, 95, 96, 3, 4, 5, 6, 7, 8,
2303 9, 10, 11, 12, 13, 14, 15, 16, 17, 18,
2304 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
2305 29, 30, 31, 55, 50, 34, 35, 36, 37, 38,
2306 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
2307 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
2308 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
2309 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
2310 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
2311 89, 90, 91, 92, 93, 94, 95, 96, 3, 4,
2312 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
2313 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
2314 25, 26, 27, 28, 29, 30, 31, 51, 31, 34,
2315 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
2316 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
2317 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
2318 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
2319 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
2320 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
2321 95, 96, 3, 4, 5, 6, 7, 8, 9, 10,
2322 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
2323 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
2324 31, 50, 48, 34, 35, 36, 37, 38, 39, 40,
2325 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
2326 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
2327 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
2328 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
2329 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
2330 91, 92, 93, 94, 95, 96, 3, 4, 5, 6,
2331 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
2332 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
2333 27, 28, 29, 30, 31, 26, 29, 39, 35, 36,
2334 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
2335 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
2336 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2337 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
2338 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
2339 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
2340 30, 45, 30, 30, 26, 50, 26, 30, 44, 92,
2341 45, 44, 26, 45, 43, 52, 50, 48, 30, 44,
2342 30, 30, 43, 49, 48, 44, 39, 30, 43, 29,
2343 92, 30, 50, 50, 50, 30, 44, 30, 45, 50,
2344 44, 31, 30, 30, 50, 30, 48, 52, 966, 50,
2345 48, 48, 38, 30, 50, 1473, 48, 51, 29, 50,
2346 49, 45, 44, 42, 45, 48, 1728, 45, 48, 1717,
2347 42, 939, 48, 1369, 48, 50, 49, 677, 1583, 1382,
2348 1754, 179, 186, 179, 179, 186, 186, 186, 595, 611,
2349 620, 179, 186, -1, 186, -1, 186, 186, 68, 186,
2350 186, 186, 186, -1, 186, 186, 186, 186, 186, 186,
2351 186, 186, 186, 186, 186, 186, 180, 182, 179, 179,
2352 186, 179, 179, 182, 179, 179, 182, 179, -1, 182,
2353 179, 182
2354 };
2355
2356 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
2357 symbol of state STATE-NUM. */
2358 static const yytype_uint16 yystos[] =
2359 {
2360 0, 1, 4, 26, 28, 29, 30, 31, 37, 39,
2361 42, 43, 47, 48, 49, 51, 101, 102, 103, 104,
2362 105, 197, 198, 199, 200, 201, 202, 204, 205, 206,
2363 207, 208, 209, 214, 215, 219, 220, 221, 222, 297,
2364 324, 325, 327, 332, 29, 46, 42, 45, 48, 30,
2365 29, 39, 45, 30, 44, 39, 45, 26, 45, 51,
2366 30, 30, 51, 44, 0, 98, 99, 195, 196, 3,
2367 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
2368 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
2369 24, 25, 26, 27, 28, 29, 30, 31, 34, 35,
2370 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
2371 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
2372 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
2373 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
2374 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
2375 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
2376 96, 97, 173, 176, 186, 188, 189, 190, 194, 194,
2377 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
2378 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
2379 194, 29, 46, 30, 46, 30, 49, 39, 44, 48,
2380 50, 49, 49, 26, 46, 52, 39, 43, 49, 44,
2381 50, 27, 43, 49, 195, 10, 11, 12, 13, 14,
2382 15, 16, 17, 18, 19, 172, 173, 172, 172, 172,
2383 172, 172, 172, 172, 172, 4, 10, 11, 12, 13,
2384 14, 15, 16, 17, 18, 19, 188, 28, 29, 43,
2385 49, 106, 223, 278, 288, 300, 302, 26, 28, 29,
2386 30, 31, 43, 49, 50, 52, 112, 223, 224, 225,
2387 226, 251, 252, 253, 261, 266, 267, 268, 269, 270,
2388 271, 273, 274, 275, 276, 277, 278, 279, 280, 282,
2389 283, 284, 285, 286, 287, 288, 289, 290, 291, 298,
2390 299, 300, 301, 302, 303, 304, 313, 314, 319, 320,
2391 323, 43, 109, 286, 110, 286, 43, 116, 287, 29,
2392 42, 117, 301, 302, 311, 29, 118, 300, 303, 119,
2393 300, 303, 26, 30, 31, 43, 114, 267, 275, 284,
2394 298, 120, 267, 275, 284, 298, 26, 30, 31, 43,
2395 49, 130, 223, 224, 225, 226, 266, 273, 276, 279,
2396 280, 283, 287, 289, 299, 301, 302, 323, 30, 39,
2397 121, 259, 261, 111, 223, 278, 288, 298, 300, 303,
2398 26, 30, 43, 49, 113, 216, 223, 265, 270, 277,
2399 281, 282, 288, 298, 300, 303, 314, 319, 320, 330,
2400 122, 278, 123, 278, 26, 27, 28, 29, 30, 31,
2401 37, 43, 49, 50, 52, 107, 228, 229, 230, 231,
2402 232, 233, 234, 235, 236, 237, 238, 239, 241, 242,
2403 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
2404 254, 255, 256, 257, 258, 328, 108, 228, 229, 230,
2405 231, 232, 233, 234, 235, 236, 237, 238, 239, 241,
2406 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
2407 252, 254, 255, 256, 257, 258, 328, 131, 223, 125,
2408 223, 39, 126, 305, 115, 223, 30, 26, 55, 26,
2409 50, 50, 29, 43, 30, 50, 29, 30, 50, 45,
2410 30, 29, 49, 26, 51, 173, 38, 27, 39, 30,
2411 194, 194, 194, 194, 194, 51, 52, 38, 27, 31,
2412 44, 39, 54, 39, 30, 50, 45, 45, 194, 194,
2413 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
2414 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
2415 194, 194, 194, 194, 194, 194, 194, 39, 194, 194,
2416 39, 194, 27, 45, 194, 194, 194, 27, 194, 194,
2417 194, 194, 51, 31, 54, 39, 194, 194, 194, 194,
2418 194, 194, 194, 194, 51, 31, 54, 39, 30, 194,
2419 194, 194, 194, 194, 194, 194, 44, 194, 194, 194,
2420 194, 194, 194, 194, 194, 51, 28, 31, 39, 38,
2421 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
2422 194, 194, 194, 194, 194, 194, 194, 51, 51, 38,
2423 27, 30, 31, 54, 42, 39, 30, 50, 45, 45,
2424 194, 194, 44, 194, 44, 48, 50, 48, 26, 48,
2425 52, 50, 28, 46, 27, 26, 92, 29, 44, 43,
2426 294, 11, 12, 13, 14, 15, 16, 17, 18, 19,
2427 136, 176, 32, 33, 154, 182, 32, 33, 153, 177,
2428 31, 44, 48, 153, 166, 213, 308, 309, 310, 29,
2429 26, 26, 92, 31, 37, 42, 92, 29, 44, 48,
2430 48, 50, 39, 42, 39, 49, 227, 248, 249, 250,
2431 227, 227, 227, 227, 227, 227, 227, 227, 227, 227,
2432 136, 227, 227, 227, 227, 26, 142, 176, 210, 227,
2433 227, 227, 227, 148, 176, 227, 153, 309, 153, 309,
2434 227, 227, 227, 39, 259, 260, 29, 44, 127, 213,
2435 142, 29, 142, 210, 92, 49, 44, 153, 310, 153,
2436 310, 29, 240, 92, 153, 153, 153, 153, 29, 31,
2437 92, 29, 186, 158, 167, 176, 186, 186, 148, 176,
2438 176, 176, 148, 29, 31, 92, 29, 44, 43, 295,
2439 176, 142, 210, 148, 153, 309, 153, 309, 39, 260,
2440 49, 132, 152, 177, 213, 133, 151, 186, 148, 294,
2441 30, 136, 274, 142, 210, 274, 31, 153, 307, 153,
2442 29, 38, 31, 29, 30, 26, 29, 39, 217, 218,
2443 331, 26, 43, 49, 52, 124, 267, 271, 272, 284,
2444 288, 291, 292, 293, 294, 314, 317, 318, 176, 176,
2445 52, 316, 176, 176, 44, 329, 26, 42, 43, 271,
2446 274, 296, 315, 329, 29, 306, 329, 31, 306, 312,
2447 329, 8, 9, 146, 170, 172, 173, 176, 176, 176,
2448 169, 176, 186, 274, 274, 29, 31, 26, 92, 52,
2449 31, 92, 45, 29, 49, 44, 48, 50, 39, 43,
2450 326, 259, 49, 148, 29, 30, 45, 50, 50, 30,
2451 48, 49, 44, 39, 39, 29, 39, 194, 34, 36,
2452 184, 185, 187, 190, 191, 192, 193, 194, 185, 34,
2453 178, 179, 189, 178, 42, 45, 30, 194, 194, 194,
2454 39, 39, 44, 39, 30, 39, 30, 49, 39, 29,
2455 52, 30, 26, 28, 51, 44, 194, 194, 194, 194,
2456 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
2457 194, 194, 194, 194, 42, 194, 194, 194, 194, 194,
2458 194, 194, 194, 194, 44, 194, 194, 39, 45, 142,
2459 194, 194, 39, 39, 50, 45, 194, 194, 194, 194,
2460 27, 39, 194, 194, 194, 194, 39, 30, 49, 39,
2461 194, 194, 194, 194, 194, 39, 30, 49, 39, 29,
2462 39, 194, 194, 194, 44, 194, 50, 194, 194, 194,
2463 194, 31, 194, 194, 194, 45, 194, 39, 45, 30,
2464 39, 42, 51, 45, 44, 194, 194, 194, 51, 39,
2465 51, 45, 45, 194, 194, 194, 194, 194, 194, 194,
2466 194, 194, 194, 194, 194, 194, 194, 26, 194, 194,
2467 194, 26, 194, 51, 30, 39, 194, 194, 194, 194,
2468 194, 30, 194, 194, 39, 194, 194, 194, 172, 172,
2469 7, 194, 194, 39, 31, 44, 39, 39, 30, 49,
2470 27, 39, 28, 29, 30, 26, 28, 39, 194, 194,
2471 50, 55, 39, 28, 44, 44, 92, 92, 29, 148,
2472 10, 11, 12, 13, 14, 15, 16, 17, 25, 32,
2473 33, 34, 36, 64, 68, 70, 72, 74, 174, 187,
2474 194, 32, 34, 184, 190, 191, 33, 32, 180, 35,
2475 33, 26, 44, 28, 152, 31, 153, 203, 153, 166,
2476 45, 42, 44, 44, 28, 44, 30, 92, 92, 30,
2477 26, 42, 30, 43, 31, 148, 27, 46, 129, 321,
2478 322, 148, 148, 151, 176, 186, 186, 176, 176, 158,
2479 135, 176, 135, 136, 176, 176, 186, 142, 42, 142,
2480 186, 176, 148, 153, 153, 153, 153, 176, 49, 227,
2481 152, 92, 44, 194, 143, 176, 92, 44, 44, 164,
2482 186, 153, 164, 153, 92, 44, 153, 153, 153, 153,
2483 45, 28, 30, 92, 128, 186, 152, 168, 128, 145,
2484 176, 150, 176, 45, 28, 30, 92, 92, 29, 148,
2485 153, 153, 49, 152, 48, 149, 176, 152, 148, 148,
2486 31, 159, 176, 136, 148, 48, 153, 45, 28, 92,
2487 42, 50, 28, 50, 169, 169, 169, 29, 29, 50,
2488 42, 148, 148, 148, 148, 148, 148, 148, 148, 148,
2489 148, 148, 148, 186, 176, 42, 135, 186, 176, 43,
2490 142, 29, 52, 29, 148, 148, 148, 148, 148, 49,
2491 153, 153, 42, 153, 152, 153, 7, 7, 172, 136,
2492 136, 45, 30, 44, 44, 28, 28, 30, 26, 92,
2493 30, 92, 26, 42, 30, 29, 186, 148, 48, 27,
2494 48, 30, 49, 39, 30, 39, 194, 10, 11, 12,
2495 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
2496 23, 24, 25, 26, 27, 28, 29, 30, 31, 175,
2497 174, 34, 184, 34, 50, 92, 51, 194, 39, 194,
2498 194, 194, 194, 92, 26, 30, 49, 50, 30, 44,
2499 39, 30, 48, 43, 92, 49, 30, 45, 55, 30,
2500 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
2501 194, 50, 194, 39, 92, 143, 194, 39, 49, 92,
2502 194, 5, 194, 194, 39, 49, 92, 50, 44, 39,
2503 194, 5, 194, 194, 92, 50, 44, 39, 30, 39,
2504 50, 51, 194, 194, 194, 30, 194, 194, 28, 92,
2505 50, 39, 45, 30, 39, 39, 30, 45, 194, 194,
2506 194, 194, 194, 194, 194, 194, 194, 194, 194, 194,
2507 5, 194, 51, 194, 5, 194, 30, 194, 39, 30,
2508 39, 194, 194, 194, 194, 194, 28, 194, 194, 30,
2509 194, 194, 194, 172, 172, 194, 194, 92, 48, 30,
2510 49, 30, 50, 44, 42, 39, 42, 30, 43, 92,
2511 92, 39, 194, 51, 30, 39, 42, 50, 44, 31,
2512 92, 136, 175, 174, 43, 48, 48, 149, 42, 152,
2513 153, 152, 153, 203, 45, 27, 42, 50, 92, 29,
2514 44, 31, 49, 49, 52, 50, 48, 148, 186, 176,
2515 176, 161, 176, 159, 176, 186, 143, 176, 150, 48,
2516 152, 44, 194, 144, 176, 44, 50, 186, 165, 182,
2517 185, 164, 164, 44, 50, 45, 92, 29, 44, 186,
2518 8, 9, 32, 33, 162, 163, 170, 176, 181, 186,
2519 157, 182, 156, 182, 45, 92, 29, 44, 31, 92,
2520 48, 43, 148, 149, 136, 28, 159, 150, 30, 45,
2521 92, 44, 92, 48, 45, 92, 136, 137, 176, 138,
2522 186, 136, 29, 44, 142, 211, 212, 139, 176, 140,
2523 176, 210, 141, 186, 136, 146, 169, 169, 162, 186,
2524 30, 161, 162, 186, 154, 45, 42, 92, 150, 150,
2525 150, 150, 150, 48, 182, 182, 92, 182, 152, 182,
2526 159, 159, 45, 92, 42, 50, 92, 92, 29, 92,
2527 44, 42, 31, 92, 52, 28, 92, 148, 43, 27,
2528 48, 49, 31, 39, 194, 45, 30, 49, 30, 194,
2529 194, 194, 194, 51, 42, 49, 48, 39, 49, 46,
2530 49, 31, 50, 45, 30, 28, 194, 194, 194, 194,
2531 194, 51, 194, 49, 144, 49, 48, 5, 49, 48,
2532 51, 39, 46, 5, 183, 186, 194, 183, 6, 51,
2533 39, 46, 49, 31, 39, 51, 30, 194, 194, 50,
2534 194, 51, 39, 46, 28, 26, 92, 39, 194, 30,
2535 45, 194, 5, 194, 5, 92, 28, 194, 194, 194,
2536 194, 194, 39, 46, 194, 194, 51, 31, 92, 48,
2537 43, 39, 92, 39, 46, 49, 26, 31, 28, 45,
2538 45, 29, 194, 30, 30, 51, 50, 30, 44, 139,
2539 29, 28, 39, 92, 152, 149, 152, 153, 50, 30,
2540 51, 44, 51, 50, 30, 48, 39, 49, 30, 128,
2541 186, 186, 128, 144, 43, 149, 50, 194, 50, 51,
2542 165, 50, 51, 50, 44, 51, 162, 32, 186, 194,
2543 33, 163, 50, 44, 51, 50, 30, 44, 43, 44,
2544 148, 139, 160, 176, 50, 44, 51, 45, 28, 45,
2545 44, 137, 31, 44, 139, 162, 8, 9, 147, 171,
2546 172, 44, 162, 211, 45, 45, 137, 159, 145, 146,
2547 156, 46, 26, 135, 160, 50, 39, 28, 39, 43,
2548 51, 39, 44, 28, 39, 44, 51, 50, 44, 30,
2549 45, 39, 51, 26, 176, 44, 43, 48, 28, 46,
2550 26, 51, 52, 26, 194, 46, 92, 43, 49, 50,
2551 48, 28, 30, 28, 44, 30, 48, 151, 48, 43,
2552 48, 43, 46, 49, 50, 46, 49, 50, 48, 28,
2553 46, 30, 50, 46, 49, 50, 48, 50, 51, 46,
2554 26, 30, 194, 172, 172, 7, 51, 44, 194, 194,
2555 50, 50, 194, 46, 42, 45, 44, 39, 43, 29,
2556 49, 45, 44, 31, 50, 48, 30, 28, 51, 28,
2557 44, 50, 194, 50, 30, 51, 50, 51, 42, 48,
2558 30, 49, 152, 51, 26, 30, 43, 30, 50, 92,
2559 51, 50, 26, 30, 50, 44, 51, 194, 51, 30,
2560 51, 30, 51, 50, 92, 51, 50, 92, 51, 50,
2561 51, 44, 51, 50, 92, 48, 50, 51, 51, 140,
2562 7, 7, 172, 50, 50, 137, 160, 39, 38, 135,
2563 51, 42, 51, 31, 29, 30, 39, 50, 51, 31,
2564 45, 92, 51, 45, 50, 44, 30, 50, 26, 176,
2565 49, 44, 43, 92, 50, 49, 92, 50, 51, 31,
2566 44, 39, 44, 26, 29, 46, 43, 92, 43, 92,
2567 26, 50, 43, 152, 43, 44, 43, 44, 50, 26,
2568 29, 50, 26, 29, 43, 92, 50, 50, 50, 26,
2569 29, 46, 30, 46, 50, 42, 172, 172, 46, 48,
2570 45, 50, 44, 45, 39, 44, 26, 44, 45, 29,
2571 43, 51, 92, 50, 92, 92, 50, 30, 28, 39,
2572 29, 92, 29, 31, 37, 29, 50, 44, 30, 48,
2573 45, 30, 28, 92, 28, 37, 49, 30, 194, 30,
2574 50, 30, 50, 92, 44, 30, 92, 44, 30, 30,
2575 28, 49, 92, 44, 30, 45, 28, 51, 92, 50,
2576 51, 45, 44, 92, 50, 50, 44, 50, 30, 30,
2577 49, 28, 28, 29, 49, 92, 44, 38, 52, 39,
2578 28, 29, 39, 30, 39, 39, 49, 92, 28, 52,
2579 39, 48, 44, 38, 28, 45, 30, 44, 149, 44,
2580 92, 44, 29, 28, 52, 29, 28, 52, 44, 38,
2581 28, 29, 28, 52, 48, 50, 50, 28, 46, 50,
2582 50, 42, 29, 49, 92, 28, 52, 44, 38, 45,
2583 27, 29, 50, 26, 30, 48, 38, 30, 48, 45,
2584 28, 44, 92, 92, 29, 30, 39, 52, 50, 50,
2585 26, 45, 51, 50, 194, 50, 29, 50, 30, 30,
2586 39, 30, 30, 39, 50, 26, 38, 30, 30, 39,
2587 50, 92, 38, 45, 55, 92, 42, 30, 92, 28,
2588 29, 39, 30, 39, 50, 26, 51, 39, 92, 39,
2589 26, 52, 39, 92, 50, 30, 39, 40, 39, 49,
2590 92, 28, 30, 92, 49, 92, 39, 51, 44, 146,
2591 39, 92, 52, 28, 52, 28, 92, 39, 26, 52,
2592 28, 28, 50, 26, 48, 46, 30, 52, 40, 45,
2593 39, 44, 92, 28, 92, 39, 44, 48, 43, 44,
2594 44, 39, 52, 45, 49, 49, 44, 45, 48, 39,
2595 30, 48, 46, 43, 44, 44, 50, 194, 48, 31,
2596 39, 30, 39, 30, 43, 44, 44, 39, 30, 38,
2597 55, 44, 50, 30, 48, 39, 45, 51, 48, 31,
2598 28, 39, 30, 28, 39, 43, 44, 50, 30, 26,
2599 44, 28, 30, 51, 46, 27, 30, 44, 49, 92,
2600 26, 26, 49, 50, 92, 45, 46, 134, 155, 182,
2601 262, 263, 264, 30, 39, 28, 28, 26, 44, 28,
2602 92, 26, 46, 44, 28, 27, 44, 30, 45, 45,
2603 44, 92, 45, 44, 26, 92, 28, 46, 30, 30,
2604 48, 50, 51, 28, 46, 46, 48, 46, 43, 44,
2605 30, 194, 28, 42, 30, 30, 46, 30, 30, 46,
2606 44, 30, 30, 30, 92, 50, 28, 51, 31, 28,
2607 39, 51, 31, 46, 28, 39, 50, 42, 49, 92,
2608 46, 50, 50, 51, 26, 26, 49, 26, 92, 48,
2609 155, 50, 30, 42, 92, 26, 44, 42, 92, 39,
2610 50, 44, 45, 45, 44, 44, 45, 92, 45, 44,
2611 45, 92, 46, 51, 92, 45, 50, 48, 43, 54,
2612 29, 49, 45, 49, 46, 48, 30, 28, 39, 44,
2613 45, 50, 51, 31, 50, 28, 39, 51, 31, 48,
2614 46, 26, 50, 29, 48, 92, 26, 30, 30, 39,
2615 48, 26, 26, 42, 45, 44, 31, 48, 44, 45,
2616 45, 44, 44, 45, 55, 26, 48, 92, 48, 39,
2617 28, 43, 50, 43, 49, 48, 43, 51, 31, 45,
2618 55, 50, 51, 31, 50, 48, 26, 29, 39, 30,
2619 45, 30, 30, 26, 50, 26, 30, 44, 45, 92,
2620 44, 45, 26, 43, 48, 52, 49, 44, 50, 48,
2621 44, 30, 43, 50, 50, 28, 39, 50, 43, 30,
2622 39, 30, 50, 30, 29, 44, 30, 30, 45, 44,
2623 30, 50, 52, 48, 48, 48, 92, 50, 50, 48,
2624 51, 31, 50, 30, 30, 49, 45, 38, 30, 44,
2625 45, 30, 48, 48, 42, 45, 48, 50, 48, 49,
2626 42, 29
2627 };
2628
2629 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
2630 static const yytype_uint16 yyr1[] =
2631 {
2632 0, 100, 101, 101, 102, 102, 103, 103, 103, 104,
2633 104, 104, 104, 104, 105, 105, 105, 105, 105, 105,
2634 105, 105, 105, 105, 105, 105, 105, 105, 105, 105,
2635 105, 105, 105, 105, 105, 105, 105, 105, 106, 106,
2636 106, 106, 106, 106, 106, 106, 106, 106, 106, 106,
2637 106, 106, 106, 107, 107, 107, 107, 107, 107, 107,
2638 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
2639 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
2640 107, 107, 107, 108, 108, 108, 108, 108, 108, 108,
2641 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
2642 108, 108, 108, 108, 108, 108, 108, 108, 108, 108,
2643 108, 108, 108, 109, 109, 109, 109, 110, 111, 111,
2644 111, 111, 111, 111, 111, 111, 111, 111, 111, 111,
2645 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
2646 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
2647 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
2648 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
2649 112, 112, 112, 112, 112, 112, 112, 112, 112, 112,
2650 112, 112, 112, 113, 113, 113, 113, 113, 113, 113,
2651 113, 113, 113, 113, 113, 113, 113, 113, 113, 113,
2652 113, 113, 113, 113, 113, 113, 113, 113, 114, 114,
2653 114, 114, 114, 114, 114, 114, 115, 116, 116, 117,
2654 117, 117, 117, 117, 118, 118, 119, 119, 120, 120,
2655 120, 120, 121, 121, 122, 123, 124, 124, 124, 124,
2656 124, 124, 124, 124, 124, 124, 124, 124, 124, 124,
2657 125, 126, 127, 127, 128, 128, 129, 129, 130, 130,
2658 130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
2659 130, 130, 130, 130, 130, 130, 130, 131, 132, 132,
2660 133, 134, 134, 134, 135, 136, 137, 138, 139, 140,
2661 140, 141, 142, 143, 144, 145, 146, 146, 147, 148,
2662 149, 150, 151, 152, 153, 154, 155, 156, 157, 158,
2663 159, 160, 161, 162, 162, 163, 163, 163, 163, 164,
2664 164, 165, 165, 166, 166, 166, 167, 168, 169, 169,
2665 170, 170, 170, 171, 171, 171, 171, 171, 171, 172,
2666 172, 173, 173, 173, 173, 173, 173, 173, 173, 173,
2667 173, 174, 174, 174, 174, 174, 174, 174, 174, 175,
2668 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
2669 175, 175, 175, 175, 175, 175, 175, 175, 175, 175,
2670 175, 176, 176, 176, 176, 176, 176, 176, 176, 176,
2671 176, 177, 177, 178, 179, 179, 180, 180, 180, 181,
2672 181, 182, 182, 183, 183, 183, 183, 184, 184, 184,
2673 184, 185, 185, 185, 185, 186, 186, 187, 187, 187,
2674 187, 188, 188, 188, 189, 189, 189, 189, 189, 189,
2675 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
2676 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
2677 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
2678 189, 189, 189, 189, 189, 189, 189, 189, 189, 189,
2679 189, 189, 189, 189, 189, 189, 190, 190, 190, 190,
2680 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
2681 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
2682 190, 190, 190, 190, 190, 190, 190, 190, 190, 190,
2683 190, 190, 190, 190, 190, 191, 191, 191, 191, 191,
2684 191, 191, 191, 191, 191, 191, 192, 192, 192, 193,
2685 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
2686 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
2687 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
2688 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
2689 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
2690 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
2691 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
2692 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
2693 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
2694 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
2695 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
2696 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
2697 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
2698 323, 324, 325, 326, 327, 328, 329, 330, 331, 332
2699 };
2700
2701 /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
2702 static const yytype_uint8 yyr2[] =
2703 {
2704 0, 2, 1, 1, 2, 3, 0, 1, 1, 1,
2705 2, 2, 2, 2, 3, 3, 3, 3, 3, 3,
2706 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2707 3, 3, 3, 3, 3, 3, 1, 1, 1, 7,
2708 9, 3, 9, 11, 7, 9, 7, 9, 5, 7,
2709 1, 3, 3, 1, 1, 1, 1, 1, 1, 1,
2710 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2711 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2712 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2713 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2714 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2715 1, 1, 1, 16, 18, 18, 20, 7, 3, 5,
2716 7, 9, 3, 3, 5, 9, 7, 5, 3, 3,
2717 1, 1, 1, 5, 5, 7, 3, 7, 1, 5,
2718 7, 9, 1, 5, 7, 9, 1, 1, 5, 5,
2719 7, 9, 7, 9, 1, 5, 7, 5, 5, 5,
2720 3, 1, 1, 1, 3, 3, 9, 1, 5, 3,
2721 7, 5, 3, 5, 5, 3, 5, 5, 1, 1,
2722 1, 5, 9, 7, 9, 7, 9, 9, 9, 3,
2723 7, 9, 11, 9, 9, 11, 7, 7, 7, 7,
2724 7, 3, 5, 5, 5, 3, 3, 3, 5, 3,
2725 5, 3, 5, 7, 3, 7, 3, 3, 3, 7,
2726 5, 7, 5, 3, 5, 5, 5, 5, 3, 3,
2727 5, 3, 3, 3, 9, 11, 5, 7, 5, 9,
2728 5, 5, 5, 5, 5, 5, 5, 5, 5, 5,
2729 5, 1, 0, 2, 3, 5, 1, 1, 1, 1,
2730 1, 5, 1, 1, 1, 3, 1, 1, 3, 3,
2731 1, 3, 5, 3, 5, 3, 5, 11, 5, 7,
2732 3, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2733 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2734 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2735 1, 1, 1, 1, 3, 1, 1, 1, 1, 3,
2736 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2737 3, 4, 4, 3, 4, 4, 1, 2, 2, 1,
2738 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2739 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2740 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2741 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2742 1, 1, 2, 2, 2, 2, 2, 2, 2, 2,
2743 2, 3, 3, 2, 1, 3, 0, 2, 2, 3,
2744 3, 3, 3, 1, 1, 2, 2, 1, 1, 2,
2745 2, 1, 1, 2, 2, 1, 2, 1, 1, 2,
2746 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2747 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2748 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2749 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2750 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2751 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2752 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2753 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2754 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
2755 1, 1, 1, 1, 1, 2, 2, 2, 2, 2,
2756 2, 2, 2, 2, 1, 1, 2, 3, 4, 3,
2757 4, 1, 1, 1, 3, 3, 3, 5, 5, 4,
2758 11, 4, 4, 6, 7, 4, 4, 3, 4, 7,
2759 9, 6, 3, 5, 8, 12, 6, 6, 9, 11,
2760 7, 17, 30, 8, 4, 25, 24, 23, 22, 25,
2761 24, 21, 20, 29, 28, 19, 18, 19, 23, 13,
2762 12, 11, 12, 13, 12, 11, 12, 11, 18, 17,
2763 21, 11, 21, 20, 23, 22, 10, 11, 6, 9,
2764 14, 10, 29, 20, 19, 29, 19, 30, 20, 17,
2765 17, 6, 15, 16, 29, 17, 18, 28, 27, 25,
2766 18, 17, 27, 15, 16, 19, 20, 17, 15, 18,
2767 15, 10, 11, 15, 4, 7, 8, 23, 25, 14,
2768 13, 18, 14, 11, 5, 4, 9, 13, 4, 9,
2769 6, 6, 5, 5, 4, 4, 6, 7, 5, 10,
2770 4, 4, 6, 9, 5, 13, 4, 4, 3, 4
2771 };
2772
2773
2774 #define yyerrok (yyerrstatus = 0)
2775 #define yyclearin (yychar = YYEMPTY)
2776 #define YYEMPTY (-2)
2777 #define YYEOF 0
2778
2779 #define YYACCEPT goto yyacceptlab
2780 #define YYABORT goto yyabortlab
2781 #define YYERROR goto yyerrorlab
2782
2783
2784 #define YYRECOVERING() (!!yyerrstatus)
2785
2786 #define YYBACKUP(Token, Value) \
2787 do \
2788 if (yychar == YYEMPTY) \
2789 { \
2790 yychar = (Token); \
2791 yylval = (Value); \
2792 YYPOPSTACK (yylen); \
2793 yystate = *yyssp; \
2794 goto yybackup; \
2795 } \
2796 else \
2797 { \
2798 yyerror (yyparse_param, YY_("syntax error: cannot back up")); \
2799 YYERROR; \
2800 } \
2801 while (0)
2802
2803 /* Error token number */
2804 #define YYTERROR 1
2805 #define YYERRCODE 256
2806
2807
2808
2809 /* Enable debugging if requested. */
2810 #if YYDEBUG
2811
2812 # ifndef YYFPRINTF
2813 # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
2814 # define YYFPRINTF fprintf
2815 # endif
2816
2817 # define YYDPRINTF(Args) \
2818 do { \
2819 if (yydebug) \
2820 YYFPRINTF Args; \
2821 } while (0)
2822
2823 /* This macro is provided for backward compatibility. */
2824 #ifndef YY_LOCATION_PRINT
2825 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
2826 #endif
2827
2828
2829 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
2830 do { \
2831 if (yydebug) \
2832 { \
2833 YYFPRINTF (stderr, "%s ", Title); \
2834 yy_symbol_print (stderr, \
2835 Type, Value, yyparse_param); \
2836 YYFPRINTF (stderr, "\n"); \
2837 } \
2838 } while (0)
2839
2840
2841 /*-----------------------------------.
2842 | Print this symbol's value on YYO. |
2843 `-----------------------------------*/
2844
2845 static void
yy_symbol_value_print(FILE * yyo,int yytype,YYSTYPE const * const yyvaluep,void * yyparse_param)2846 yy_symbol_value_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, void* yyparse_param)
2847 {
2848 FILE *yyoutput = yyo;
2849 YYUSE (yyoutput);
2850 YYUSE (yyparse_param);
2851 if (!yyvaluep)
2852 return;
2853 # ifdef YYPRINT
2854 if (yytype < YYNTOKENS)
2855 YYPRINT (yyo, yytoknum[yytype], *yyvaluep);
2856 # endif
2857 YYUSE (yytype);
2858 }
2859
2860
2861 /*---------------------------.
2862 | Print this symbol on YYO. |
2863 `---------------------------*/
2864
2865 static void
yy_symbol_print(FILE * yyo,int yytype,YYSTYPE const * const yyvaluep,void * yyparse_param)2866 yy_symbol_print (FILE *yyo, int yytype, YYSTYPE const * const yyvaluep, void* yyparse_param)
2867 {
2868 YYFPRINTF (yyo, "%s %s (",
2869 yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]);
2870
2871 yy_symbol_value_print (yyo, yytype, yyvaluep, yyparse_param);
2872 YYFPRINTF (yyo, ")");
2873 }
2874
2875 /*------------------------------------------------------------------.
2876 | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2877 | TOP (included). |
2878 `------------------------------------------------------------------*/
2879
2880 static void
yy_stack_print(yytype_int16 * yybottom,yytype_int16 * yytop)2881 yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
2882 {
2883 YYFPRINTF (stderr, "Stack now");
2884 for (; yybottom <= yytop; yybottom++)
2885 {
2886 int yybot = *yybottom;
2887 YYFPRINTF (stderr, " %d", yybot);
2888 }
2889 YYFPRINTF (stderr, "\n");
2890 }
2891
2892 # define YY_STACK_PRINT(Bottom, Top) \
2893 do { \
2894 if (yydebug) \
2895 yy_stack_print ((Bottom), (Top)); \
2896 } while (0)
2897
2898
2899 /*------------------------------------------------.
2900 | Report that the YYRULE is going to be reduced. |
2901 `------------------------------------------------*/
2902
2903 static void
yy_reduce_print(yytype_int16 * yyssp,YYSTYPE * yyvsp,int yyrule,void * yyparse_param)2904 yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, void* yyparse_param)
2905 {
2906 unsigned long yylno = yyrline[yyrule];
2907 int yynrhs = yyr2[yyrule];
2908 int yyi;
2909 YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n",
2910 yyrule - 1, yylno);
2911 /* The symbols being reduced. */
2912 for (yyi = 0; yyi < yynrhs; yyi++)
2913 {
2914 YYFPRINTF (stderr, " $%d = ", yyi + 1);
2915 yy_symbol_print (stderr,
2916 yystos[yyssp[yyi + 1 - yynrhs]],
2917 &yyvsp[(yyi + 1) - (yynrhs)]
2918 , yyparse_param);
2919 YYFPRINTF (stderr, "\n");
2920 }
2921 }
2922
2923 # define YY_REDUCE_PRINT(Rule) \
2924 do { \
2925 if (yydebug) \
2926 yy_reduce_print (yyssp, yyvsp, Rule, yyparse_param); \
2927 } while (0)
2928
2929 /* Nonzero means print parse trace. It is left uninitialized so that
2930 multiple parsers can coexist. */
2931 int yydebug;
2932 #else /* !YYDEBUG */
2933 # define YYDPRINTF(Args)
2934 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
2935 # define YY_STACK_PRINT(Bottom, Top)
2936 # define YY_REDUCE_PRINT(Rule)
2937 #endif /* !YYDEBUG */
2938
2939
2940 /* YYINITDEPTH -- initial size of the parser's stacks. */
2941 #ifndef YYINITDEPTH
2942 # define YYINITDEPTH 200
2943 #endif
2944
2945 /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
2946 if the built-in stack extension method is used).
2947
2948 Do not make this value too large; the results are undefined if
2949 YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
2950 evaluated with infinite-precision integer arithmetic. */
2951
2952 #ifndef YYMAXDEPTH
2953 # define YYMAXDEPTH 10000
2954 #endif
2955
2956
2957 #if YYERROR_VERBOSE
2958
2959 # ifndef yystrlen
2960 # if defined __GLIBC__ && defined _STRING_H
2961 # define yystrlen strlen
2962 # else
2963 /* Return the length of YYSTR. */
2964 static YYSIZE_T
yystrlen(const char * yystr)2965 yystrlen (const char *yystr)
2966 {
2967 YYSIZE_T yylen;
2968 for (yylen = 0; yystr[yylen]; yylen++)
2969 continue;
2970 return yylen;
2971 }
2972 # endif
2973 # endif
2974
2975 # ifndef yystpcpy
2976 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
2977 # define yystpcpy stpcpy
2978 # else
2979 /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in
2980 YYDEST. */
2981 static char *
yystpcpy(char * yydest,const char * yysrc)2982 yystpcpy (char *yydest, const char *yysrc)
2983 {
2984 char *yyd = yydest;
2985 const char *yys = yysrc;
2986
2987 while ((*yyd++ = *yys++) != '\0')
2988 continue;
2989
2990 return yyd - 1;
2991 }
2992 # endif
2993 # endif
2994
2995 # ifndef yytnamerr
2996 /* Copy to YYRES the contents of YYSTR after stripping away unnecessary
2997 quotes and backslashes, so that it's suitable for yyerror. The
2998 heuristic is that double-quoting is unnecessary unless the string
2999 contains an apostrophe, a comma, or backslash (other than
3000 backslash-backslash). YYSTR is taken from yytname. If YYRES is
3001 null, do not copy; instead, return the length of what the result
3002 would have been. */
3003 static YYSIZE_T
yytnamerr(char * yyres,const char * yystr)3004 yytnamerr (char *yyres, const char *yystr)
3005 {
3006 if (*yystr == '"')
3007 {
3008 YYSIZE_T yyn = 0;
3009 char const *yyp = yystr;
3010
3011 for (;;)
3012 switch (*++yyp)
3013 {
3014 case '\'':
3015 case ',':
3016 goto do_not_strip_quotes;
3017
3018 case '\\':
3019 if (*++yyp != '\\')
3020 goto do_not_strip_quotes;
3021 else
3022 goto append;
3023
3024 append:
3025 default:
3026 if (yyres)
3027 yyres[yyn] = *yyp;
3028 yyn++;
3029 break;
3030
3031 case '"':
3032 if (yyres)
3033 yyres[yyn] = '\0';
3034 return yyn;
3035 }
3036 do_not_strip_quotes: ;
3037 }
3038
3039 if (! yyres)
3040 return yystrlen (yystr);
3041
3042 return (YYSIZE_T) (yystpcpy (yyres, yystr) - yyres);
3043 }
3044 # endif
3045
3046 /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
3047 about the unexpected token YYTOKEN for the state stack whose top is
3048 YYSSP.
3049
3050 Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is
3051 not large enough to hold the message. In that case, also set
3052 *YYMSG_ALLOC to the required number of bytes. Return 2 if the
3053 required number of bytes is too large to store. */
3054 static int
yysyntax_error(YYSIZE_T * yymsg_alloc,char ** yymsg,yytype_int16 * yyssp,int yytoken)3055 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
3056 yytype_int16 *yyssp, int yytoken)
3057 {
3058 YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]);
3059 YYSIZE_T yysize = yysize0;
3060 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
3061 /* Internationalized format string. */
3062 const char *yyformat = YY_NULLPTR;
3063 /* Arguments of yyformat. */
3064 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
3065 /* Number of reported tokens (one for the "unexpected", one per
3066 "expected"). */
3067 int yycount = 0;
3068
3069 /* There are many possibilities here to consider:
3070 - If this state is a consistent state with a default action, then
3071 the only way this function was invoked is if the default action
3072 is an error action. In that case, don't check for expected
3073 tokens because there are none.
3074 - The only way there can be no lookahead present (in yychar) is if
3075 this state is a consistent state with a default action. Thus,
3076 detecting the absence of a lookahead is sufficient to determine
3077 that there is no unexpected or expected token to report. In that
3078 case, just report a simple "syntax error".
3079 - Don't assume there isn't a lookahead just because this state is a
3080 consistent state with a default action. There might have been a
3081 previous inconsistent state, consistent state with a non-default
3082 action, or user semantic action that manipulated yychar.
3083 - Of course, the expected token list depends on states to have
3084 correct lookahead information, and it depends on the parser not
3085 to perform extra reductions after fetching a lookahead from the
3086 scanner and before detecting a syntax error. Thus, state merging
3087 (from LALR or IELR) and default reductions corrupt the expected
3088 token list. However, the list is correct for canonical LR with
3089 one exception: it will still contain any token that will not be
3090 accepted due to an error action in a later state.
3091 */
3092 if (yytoken != YYEMPTY)
3093 {
3094 int yyn = yypact[*yyssp];
3095 yyarg[yycount++] = yytname[yytoken];
3096 if (!yypact_value_is_default (yyn))
3097 {
3098 /* Start YYX at -YYN if negative to avoid negative indexes in
3099 YYCHECK. In other words, skip the first -YYN actions for
3100 this state because they are default actions. */
3101 int yyxbegin = yyn < 0 ? -yyn : 0;
3102 /* Stay within bounds of both yycheck and yytname. */
3103 int yychecklim = YYLAST - yyn + 1;
3104 int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
3105 int yyx;
3106
3107 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
3108 if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
3109 && !yytable_value_is_error (yytable[yyx + yyn]))
3110 {
3111 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
3112 {
3113 yycount = 1;
3114 yysize = yysize0;
3115 break;
3116 }
3117 yyarg[yycount++] = yytname[yyx];
3118 {
3119 YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]);
3120 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
3121 yysize = yysize1;
3122 else
3123 return 2;
3124 }
3125 }
3126 }
3127 }
3128
3129 switch (yycount)
3130 {
3131 # define YYCASE_(N, S) \
3132 case N: \
3133 yyformat = S; \
3134 break
3135 default: /* Avoid compiler warnings. */
3136 YYCASE_(0, YY_("syntax error"));
3137 YYCASE_(1, YY_("syntax error, unexpected %s"));
3138 YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
3139 YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
3140 YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
3141 YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
3142 # undef YYCASE_
3143 }
3144
3145 {
3146 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
3147 if (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)
3148 yysize = yysize1;
3149 else
3150 return 2;
3151 }
3152
3153 if (*yymsg_alloc < yysize)
3154 {
3155 *yymsg_alloc = 2 * yysize;
3156 if (! (yysize <= *yymsg_alloc
3157 && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
3158 *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
3159 return 1;
3160 }
3161
3162 /* Avoid sprintf, as that infringes on the user's name space.
3163 Don't have undefined behavior even if the translation
3164 produced a string with the wrong number of "%s"s. */
3165 {
3166 char *yyp = *yymsg;
3167 int yyi = 0;
3168 while ((*yyp = *yyformat) != '\0')
3169 if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
3170 {
3171 yyp += yytnamerr (yyp, yyarg[yyi++]);
3172 yyformat += 2;
3173 }
3174 else
3175 {
3176 yyp++;
3177 yyformat++;
3178 }
3179 }
3180 return 0;
3181 }
3182 #endif /* YYERROR_VERBOSE */
3183
3184 /*-----------------------------------------------.
3185 | Release the memory associated to this symbol. |
3186 `-----------------------------------------------*/
3187
3188 static void
yydestruct(const char * yymsg,int yytype,YYSTYPE * yyvaluep,void * yyparse_param)3189 yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, void* yyparse_param)
3190 {
3191 YYUSE (yyvaluep);
3192 YYUSE (yyparse_param);
3193 if (!yymsg)
3194 yymsg = "Deleting";
3195 YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp);
3196
3197 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3198 YYUSE (yytype);
3199 YY_IGNORE_MAYBE_UNINITIALIZED_END
3200 }
3201
3202
3203
3204
3205 /*----------.
3206 | yyparse. |
3207 `----------*/
3208
3209 int
yyparse(void * yyparse_param)3210 yyparse (void* yyparse_param)
3211 {
3212 /* The lookahead symbol. */
3213 int yychar;
3214
3215
3216 /* The semantic value of the lookahead symbol. */
3217 /* Default value used for initialization, for pacifying older GCCs
3218 or non-GCC compilers. */
3219 YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
3220 YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
3221
3222 /* Number of syntax errors so far. */
3223 int yynerrs;
3224
3225 int yystate;
3226 /* Number of tokens to shift before error messages enabled. */
3227 int yyerrstatus;
3228
3229 /* The stacks and their tools:
3230 'yyss': related to states.
3231 'yyvs': related to semantic values.
3232
3233 Refer to the stacks through separate pointers, to allow yyoverflow
3234 to reallocate them elsewhere. */
3235
3236 /* The state stack. */
3237 yytype_int16 yyssa[YYINITDEPTH];
3238 yytype_int16 *yyss;
3239 yytype_int16 *yyssp;
3240
3241 /* The semantic value stack. */
3242 YYSTYPE yyvsa[YYINITDEPTH];
3243 YYSTYPE *yyvs;
3244 YYSTYPE *yyvsp;
3245
3246 YYSIZE_T yystacksize;
3247
3248 int yyn;
3249 int yyresult;
3250 /* Lookahead token as an internal (translated) token number. */
3251 int yytoken = 0;
3252 /* The variables used to return semantic value and location from the
3253 action routines. */
3254 YYSTYPE yyval;
3255
3256 #if YYERROR_VERBOSE
3257 /* Buffer for error messages, and its allocated size. */
3258 char yymsgbuf[128];
3259 char *yymsg = yymsgbuf;
3260 YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
3261 #endif
3262
3263 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
3264
3265 /* The number of symbols on the RHS of the reduced rule.
3266 Keep to zero when no symbol should be popped. */
3267 int yylen = 0;
3268
3269 yyssp = yyss = yyssa;
3270 yyvsp = yyvs = yyvsa;
3271 yystacksize = YYINITDEPTH;
3272
3273 YYDPRINTF ((stderr, "Starting parse\n"));
3274
3275 yystate = 0;
3276 yyerrstatus = 0;
3277 yynerrs = 0;
3278 yychar = YYEMPTY; /* Cause a token to be read. */
3279
3280 /* User initialization code. */
3281 #line 191 "lscp.y" /* yacc.c:1431 */
3282 {
3283 yyparse_param_t* p = (yyparse_param_t*) yyparse_param;
3284 p->ppStackBottom = &yyss;
3285 p->ppStackTop = &yyssp;
3286 }
3287
3288 #line 3289 "y.tab.c" /* yacc.c:1431 */
3289 goto yysetstate;
3290
3291
3292 /*------------------------------------------------------------.
3293 | yynewstate -- push a new state, which is found in yystate. |
3294 `------------------------------------------------------------*/
3295 yynewstate:
3296 /* In all cases, when you get here, the value and location stacks
3297 have just been pushed. So pushing a state here evens the stacks. */
3298 yyssp++;
3299
3300
3301 /*--------------------------------------------------------------------.
3302 | yynewstate -- set current state (the top of the stack) to yystate. |
3303 `--------------------------------------------------------------------*/
3304 yysetstate:
3305 *yyssp = (yytype_int16) yystate;
3306
3307 if (yyss + yystacksize - 1 <= yyssp)
3308 #if !defined yyoverflow && !defined YYSTACK_RELOCATE
3309 goto yyexhaustedlab;
3310 #else
3311 {
3312 /* Get the current used size of the three stacks, in elements. */
3313 YYSIZE_T yysize = (YYSIZE_T) (yyssp - yyss + 1);
3314
3315 # if defined yyoverflow
3316 {
3317 /* Give user a chance to reallocate the stack. Use copies of
3318 these so that the &'s don't force the real ones into
3319 memory. */
3320 YYSTYPE *yyvs1 = yyvs;
3321 yytype_int16 *yyss1 = yyss;
3322
3323 /* Each stack pointer address is followed by the size of the
3324 data in use in that stack, in bytes. This used to be a
3325 conditional around just the two extra args, but that might
3326 be undefined if yyoverflow is a macro. */
3327 yyoverflow (YY_("memory exhausted"),
3328 &yyss1, yysize * sizeof (*yyssp),
3329 &yyvs1, yysize * sizeof (*yyvsp),
3330 &yystacksize);
3331 yyss = yyss1;
3332 yyvs = yyvs1;
3333 }
3334 # else /* defined YYSTACK_RELOCATE */
3335 /* Extend the stack our own way. */
3336 if (YYMAXDEPTH <= yystacksize)
3337 goto yyexhaustedlab;
3338 yystacksize *= 2;
3339 if (YYMAXDEPTH < yystacksize)
3340 yystacksize = YYMAXDEPTH;
3341
3342 {
3343 yytype_int16 *yyss1 = yyss;
3344 union yyalloc *yyptr =
3345 (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
3346 if (! yyptr)
3347 goto yyexhaustedlab;
3348 YYSTACK_RELOCATE (yyss_alloc, yyss);
3349 YYSTACK_RELOCATE (yyvs_alloc, yyvs);
3350 # undef YYSTACK_RELOCATE
3351 if (yyss1 != yyssa)
3352 YYSTACK_FREE (yyss1);
3353 }
3354 # endif
3355
3356 yyssp = yyss + yysize - 1;
3357 yyvsp = yyvs + yysize - 1;
3358
3359 YYDPRINTF ((stderr, "Stack size increased to %lu\n",
3360 (unsigned long) yystacksize));
3361
3362 if (yyss + yystacksize - 1 <= yyssp)
3363 YYABORT;
3364 }
3365 #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
3366
3367 YYDPRINTF ((stderr, "Entering state %d\n", yystate));
3368
3369 if (yystate == YYFINAL)
3370 YYACCEPT;
3371
3372 goto yybackup;
3373
3374
3375 /*-----------.
3376 | yybackup. |
3377 `-----------*/
3378 yybackup:
3379 /* Do appropriate processing given the current state. Read a
3380 lookahead token if we need one and don't already have one. */
3381
3382 /* First try to decide what to do without reference to lookahead token. */
3383 yyn = yypact[yystate];
3384 if (yypact_value_is_default (yyn))
3385 goto yydefault;
3386
3387 /* Not known => get a lookahead token if don't already have one. */
3388
3389 /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */
3390 if (yychar == YYEMPTY)
3391 {
3392 YYDPRINTF ((stderr, "Reading a token: "));
3393 yychar = yylex (&yylval);
3394 }
3395
3396 if (yychar <= YYEOF)
3397 {
3398 yychar = yytoken = YYEOF;
3399 YYDPRINTF ((stderr, "Now at end of input.\n"));
3400 }
3401 else
3402 {
3403 yytoken = YYTRANSLATE (yychar);
3404 YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
3405 }
3406
3407 /* If the proper action on seeing token YYTOKEN is to reduce or to
3408 detect an error, take that action. */
3409 yyn += yytoken;
3410 if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
3411 goto yydefault;
3412 yyn = yytable[yyn];
3413 if (yyn <= 0)
3414 {
3415 if (yytable_value_is_error (yyn))
3416 goto yyerrlab;
3417 yyn = -yyn;
3418 goto yyreduce;
3419 }
3420
3421 /* Count tokens shifted since error; after three, turn off error
3422 status. */
3423 if (yyerrstatus)
3424 yyerrstatus--;
3425
3426 /* Shift the lookahead token. */
3427 YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
3428
3429 /* Discard the shifted token. */
3430 yychar = YYEMPTY;
3431
3432 yystate = yyn;
3433 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
3434 *++yyvsp = yylval;
3435 YY_IGNORE_MAYBE_UNINITIALIZED_END
3436
3437 goto yynewstate;
3438
3439
3440 /*-----------------------------------------------------------.
3441 | yydefault -- do the default action for the current state. |
3442 `-----------------------------------------------------------*/
3443 yydefault:
3444 yyn = yydefact[yystate];
3445 if (yyn == 0)
3446 goto yyerrlab;
3447 goto yyreduce;
3448
3449
3450 /*-----------------------------.
3451 | yyreduce -- do a reduction. |
3452 `-----------------------------*/
3453 yyreduce:
3454 /* yyn is the number of a rule to reduce with. */
3455 yylen = yyr2[yyn];
3456
3457 /* If YYLEN is nonzero, implement the default value of the action:
3458 '$$ = $1'.
3459
3460 Otherwise, the following line sets YYVAL to garbage.
3461 This behavior is undocumented and Bison
3462 users should not rely upon it. Assigning to YYVAL
3463 unconditionally makes the parser a bit smaller, and it avoids a
3464 GCC warning that YYVAL may be used uninitialized. */
3465 yyval = yyvsp[1-yylen];
3466
3467
3468 YY_REDUCE_PRINT (yyn);
3469 switch (yyn)
3470 {
3471 case 2:
3472 #line 227 "lscp.y" /* yacc.c:1652 */
3473 { INCREMENT_LINE; if (!(yyvsp[0].String).empty()) LSCPSERVER->AnswerClient((yyvsp[0].String)); return LSCP_DONE; }
3474 #line 3475 "y.tab.c" /* yacc.c:1652 */
3475 break;
3476
3477 case 3:
3478 #line 228 "lscp.y" /* yacc.c:1652 */
3479 { INCREMENT_LINE; LSCPSERVER->AnswerClient("ERR:0:" + sLastError + "\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }
3480 #line 3481 "y.tab.c" /* yacc.c:1652 */
3481 break;
3482
3483 case 4:
3484 #line 231 "lscp.y" /* yacc.c:1652 */
3485 { (yyval.String) = (yyvsp[-1].String); }
3486 #line 3487 "y.tab.c" /* yacc.c:1652 */
3487 break;
3488
3489 case 5:
3490 #line 232 "lscp.y" /* yacc.c:1652 */
3491 { (yyval.String) = (yyvsp[-2].String); }
3492 #line 3493 "y.tab.c" /* yacc.c:1652 */
3493 break;
3494
3495 case 6:
3496 #line 235 "lscp.y" /* yacc.c:1652 */
3497 { (yyval.String) = ""; }
3498 #line 3499 "y.tab.c" /* yacc.c:1652 */
3499 break;
3500
3501 case 7:
3502 #line 236 "lscp.y" /* yacc.c:1652 */
3503 { (yyval.String) = ""; }
3504 #line 3505 "y.tab.c" /* yacc.c:1652 */
3505 break;
3506
3507 case 14:
3508 #line 247 "lscp.y" /* yacc.c:1652 */
3509 { (yyval.String) = (yyvsp[0].String); }
3510 #line 3511 "y.tab.c" /* yacc.c:1652 */
3511 break;
3512
3513 case 15:
3514 #line 248 "lscp.y" /* yacc.c:1652 */
3515 { (yyval.String) = (yyvsp[0].String); }
3516 #line 3517 "y.tab.c" /* yacc.c:1652 */
3517 break;
3518
3519 case 16:
3520 #line 249 "lscp.y" /* yacc.c:1652 */
3521 { (yyval.String) = (yyvsp[0].String); }
3522 #line 3523 "y.tab.c" /* yacc.c:1652 */
3523 break;
3524
3525 case 17:
3526 #line 250 "lscp.y" /* yacc.c:1652 */
3527 { (yyval.String) = (yyvsp[0].String); }
3528 #line 3529 "y.tab.c" /* yacc.c:1652 */
3529 break;
3530
3531 case 18:
3532 #line 251 "lscp.y" /* yacc.c:1652 */
3533 { (yyval.String) = (yyvsp[0].String); }
3534 #line 3535 "y.tab.c" /* yacc.c:1652 */
3535 break;
3536
3537 case 19:
3538 #line 252 "lscp.y" /* yacc.c:1652 */
3539 { (yyval.String) = (yyvsp[0].String); }
3540 #line 3541 "y.tab.c" /* yacc.c:1652 */
3541 break;
3542
3543 case 20:
3544 #line 253 "lscp.y" /* yacc.c:1652 */
3545 { (yyval.String) = (yyvsp[0].String); }
3546 #line 3547 "y.tab.c" /* yacc.c:1652 */
3547 break;
3548
3549 case 21:
3550 #line 254 "lscp.y" /* yacc.c:1652 */
3551 { (yyval.String) = (yyvsp[0].String); }
3552 #line 3553 "y.tab.c" /* yacc.c:1652 */
3553 break;
3554
3555 case 22:
3556 #line 255 "lscp.y" /* yacc.c:1652 */
3557 { (yyval.String) = (yyvsp[0].String); }
3558 #line 3559 "y.tab.c" /* yacc.c:1652 */
3559 break;
3560
3561 case 23:
3562 #line 256 "lscp.y" /* yacc.c:1652 */
3563 { (yyval.String) = (yyvsp[0].String); }
3564 #line 3565 "y.tab.c" /* yacc.c:1652 */
3565 break;
3566
3567 case 24:
3568 #line 257 "lscp.y" /* yacc.c:1652 */
3569 { (yyval.String) = (yyvsp[0].String); }
3570 #line 3571 "y.tab.c" /* yacc.c:1652 */
3571 break;
3572
3573 case 25:
3574 #line 258 "lscp.y" /* yacc.c:1652 */
3575 { (yyval.String) = (yyvsp[0].String); }
3576 #line 3577 "y.tab.c" /* yacc.c:1652 */
3577 break;
3578
3579 case 26:
3580 #line 259 "lscp.y" /* yacc.c:1652 */
3581 { (yyval.String) = (yyvsp[0].String); }
3582 #line 3583 "y.tab.c" /* yacc.c:1652 */
3583 break;
3584
3585 case 27:
3586 #line 260 "lscp.y" /* yacc.c:1652 */
3587 { (yyval.String) = (yyvsp[0].String); }
3588 #line 3589 "y.tab.c" /* yacc.c:1652 */
3589 break;
3590
3591 case 28:
3592 #line 261 "lscp.y" /* yacc.c:1652 */
3593 { (yyval.String) = (yyvsp[0].String); }
3594 #line 3595 "y.tab.c" /* yacc.c:1652 */
3595 break;
3596
3597 case 29:
3598 #line 262 "lscp.y" /* yacc.c:1652 */
3599 { (yyval.String) = (yyvsp[0].String); }
3600 #line 3601 "y.tab.c" /* yacc.c:1652 */
3601 break;
3602
3603 case 30:
3604 #line 263 "lscp.y" /* yacc.c:1652 */
3605 { (yyval.String) = (yyvsp[0].String); }
3606 #line 3607 "y.tab.c" /* yacc.c:1652 */
3607 break;
3608
3609 case 31:
3610 #line 264 "lscp.y" /* yacc.c:1652 */
3611 { (yyval.String) = (yyvsp[0].String); }
3612 #line 3613 "y.tab.c" /* yacc.c:1652 */
3613 break;
3614
3615 case 32:
3616 #line 265 "lscp.y" /* yacc.c:1652 */
3617 { (yyval.String) = (yyvsp[0].String); }
3618 #line 3619 "y.tab.c" /* yacc.c:1652 */
3619 break;
3620
3621 case 33:
3622 #line 266 "lscp.y" /* yacc.c:1652 */
3623 { (yyval.String) = (yyvsp[0].String); }
3624 #line 3625 "y.tab.c" /* yacc.c:1652 */
3625 break;
3626
3627 case 34:
3628 #line 267 "lscp.y" /* yacc.c:1652 */
3629 { (yyval.String) = (yyvsp[0].String); }
3630 #line 3631 "y.tab.c" /* yacc.c:1652 */
3631 break;
3632
3633 case 35:
3634 #line 268 "lscp.y" /* yacc.c:1652 */
3635 { (yyval.String) = (yyvsp[0].String); }
3636 #line 3637 "y.tab.c" /* yacc.c:1652 */
3637 break;
3638
3639 case 36:
3640 #line 269 "lscp.y" /* yacc.c:1652 */
3641 { (yyval.String) = LSCPSERVER->ResetSampler(); }
3642 #line 3643 "y.tab.c" /* yacc.c:1652 */
3643 break;
3644
3645 case 37:
3646 #line 270 "lscp.y" /* yacc.c:1652 */
3647 { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; }
3648 #line 3649 "y.tab.c" /* yacc.c:1652 */
3649 break;
3650
3651 case 38:
3652 #line 273 "lscp.y" /* yacc.c:1652 */
3653 { (yyval.String) = LSCPSERVER->AddChannel(); }
3654 #line 3655 "y.tab.c" /* yacc.c:1652 */
3655 break;
3656
3657 case 39:
3658 #line 274 "lscp.y" /* yacc.c:1652 */
3659 { (yyval.String) = LSCPSERVER->AddChannelMidiInput((yyvsp[-2].Number),(yyvsp[0].Number)); }
3660 #line 3661 "y.tab.c" /* yacc.c:1652 */
3661 break;
3662
3663 case 40:
3664 #line 275 "lscp.y" /* yacc.c:1652 */
3665 { (yyval.String) = LSCPSERVER->AddChannelMidiInput((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
3666 #line 3667 "y.tab.c" /* yacc.c:1652 */
3667 break;
3668
3669 case 41:
3670 #line 276 "lscp.y" /* yacc.c:1652 */
3671 { (yyval.String) = LSCPSERVER->AddDbInstrumentDirectory((yyvsp[0].String)); }
3672 #line 3673 "y.tab.c" /* yacc.c:1652 */
3673 break;
3674
3675 case 42:
3676 #line 277 "lscp.y" /* yacc.c:1652 */
3677 { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-4].String),(yyvsp[-2].String),(yyvsp[0].String), true); }
3678 #line 3679 "y.tab.c" /* yacc.c:1652 */
3679 break;
3680
3681 case 43:
3682 #line 278 "lscp.y" /* yacc.c:1652 */
3683 { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-6].String),(yyvsp[-2].String),(yyvsp[0].String), true, true); }
3684 #line 3685 "y.tab.c" /* yacc.c:1652 */
3685 break;
3686
3687 case 44:
3688 #line 279 "lscp.y" /* yacc.c:1652 */
3689 { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-4].String),(yyvsp[-2].String),(yyvsp[0].String)); }
3690 #line 3691 "y.tab.c" /* yacc.c:1652 */
3691 break;
3692
3693 case 45:
3694 #line 280 "lscp.y" /* yacc.c:1652 */
3695 { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-6].String),(yyvsp[-2].String),(yyvsp[0].String), false, true); }
3696 #line 3697 "y.tab.c" /* yacc.c:1652 */
3697 break;
3698
3699 case 46:
3700 #line 281 "lscp.y" /* yacc.c:1652 */
3701 { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-2].String),(yyvsp[0].String), -1, true); }
3702 #line 3703 "y.tab.c" /* yacc.c:1652 */
3703 break;
3704
3705 case 47:
3706 #line 282 "lscp.y" /* yacc.c:1652 */
3707 { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-4].String),(yyvsp[-2].String),(yyvsp[0].Number), true); }
3708 #line 3709 "y.tab.c" /* yacc.c:1652 */
3709 break;
3710
3711 case 48:
3712 #line 283 "lscp.y" /* yacc.c:1652 */
3713 { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-2].String),(yyvsp[0].String)); }
3714 #line 3715 "y.tab.c" /* yacc.c:1652 */
3715 break;
3716
3717 case 49:
3718 #line 284 "lscp.y" /* yacc.c:1652 */
3719 { (yyval.String) = LSCPSERVER->AddDbInstruments((yyvsp[-4].String),(yyvsp[-2].String),(yyvsp[0].Number)); }
3720 #line 3721 "y.tab.c" /* yacc.c:1652 */
3721 break;
3722
3723 case 50:
3724 #line 285 "lscp.y" /* yacc.c:1652 */
3725 { (yyval.String) = LSCPSERVER->AddMidiInstrumentMap(); }
3726 #line 3727 "y.tab.c" /* yacc.c:1652 */
3727 break;
3728
3729 case 51:
3730 #line 286 "lscp.y" /* yacc.c:1652 */
3731 { (yyval.String) = LSCPSERVER->AddMidiInstrumentMap((yyvsp[0].String)); }
3732 #line 3733 "y.tab.c" /* yacc.c:1652 */
3733 break;
3734
3735 case 52:
3736 #line 287 "lscp.y" /* yacc.c:1652 */
3737 { (yyval.String) = LSCPSERVER->AddSendEffectChain((yyvsp[0].Number)); }
3738 #line 3739 "y.tab.c" /* yacc.c:1652 */
3739 break;
3740
3741 case 53:
3742 #line 290 "lscp.y" /* yacc.c:1652 */
3743 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_audio_device_count); }
3744 #line 3745 "y.tab.c" /* yacc.c:1652 */
3745 break;
3746
3747 case 54:
3748 #line 291 "lscp.y" /* yacc.c:1652 */
3749 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_audio_device_info); }
3750 #line 3751 "y.tab.c" /* yacc.c:1652 */
3751 break;
3752
3753 case 55:
3754 #line 292 "lscp.y" /* yacc.c:1652 */
3755 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_device_count); }
3756 #line 3757 "y.tab.c" /* yacc.c:1652 */
3757 break;
3758
3759 case 56:
3760 #line 293 "lscp.y" /* yacc.c:1652 */
3761 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_device_info); }
3762 #line 3763 "y.tab.c" /* yacc.c:1652 */
3763 break;
3764
3765 case 57:
3766 #line 294 "lscp.y" /* yacc.c:1652 */
3767 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channel_count); }
3768 #line 3769 "y.tab.c" /* yacc.c:1652 */
3769 break;
3770
3771 case 58:
3772 #line 295 "lscp.y" /* yacc.c:1652 */
3773 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channel_midi); }
3774 #line 3775 "y.tab.c" /* yacc.c:1652 */
3775 break;
3776
3777 case 59:
3778 #line 296 "lscp.y" /* yacc.c:1652 */
3779 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_device_midi); }
3780 #line 3781 "y.tab.c" /* yacc.c:1652 */
3781 break;
3782
3783 case 60:
3784 #line 297 "lscp.y" /* yacc.c:1652 */
3785 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count); }
3786 #line 3787 "y.tab.c" /* yacc.c:1652 */
3787 break;
3788
3789 case 61:
3790 #line 298 "lscp.y" /* yacc.c:1652 */
3791 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count); }
3792 #line 3793 "y.tab.c" /* yacc.c:1652 */
3793 break;
3794
3795 case 62:
3796 #line 299 "lscp.y" /* yacc.c:1652 */
3797 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill); }
3798 #line 3799 "y.tab.c" /* yacc.c:1652 */
3799 break;
3800
3801 case 63:
3802 #line 300 "lscp.y" /* yacc.c:1652 */
3803 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channel_info); }
3804 #line 3805 "y.tab.c" /* yacc.c:1652 */
3805 break;
3806
3807 case 64:
3808 #line 301 "lscp.y" /* yacc.c:1652 */
3809 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_fx_send_count); }
3810 #line 3811 "y.tab.c" /* yacc.c:1652 */
3811 break;
3812
3813 case 65:
3814 #line 302 "lscp.y" /* yacc.c:1652 */
3815 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_fx_send_info); }
3816 #line 3817 "y.tab.c" /* yacc.c:1652 */
3817 break;
3818
3819 case 66:
3820 #line 303 "lscp.y" /* yacc.c:1652 */
3821 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_map_count); }
3822 #line 3823 "y.tab.c" /* yacc.c:1652 */
3823 break;
3824
3825 case 67:
3826 #line 304 "lscp.y" /* yacc.c:1652 */
3827 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_map_info); }
3828 #line 3829 "y.tab.c" /* yacc.c:1652 */
3829 break;
3830
3831 case 68:
3832 #line 305 "lscp.y" /* yacc.c:1652 */
3833 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_count); }
3834 #line 3835 "y.tab.c" /* yacc.c:1652 */
3835 break;
3836
3837 case 69:
3838 #line 306 "lscp.y" /* yacc.c:1652 */
3839 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_midi_instr_info); }
3840 #line 3841 "y.tab.c" /* yacc.c:1652 */
3841 break;
3842
3843 case 70:
3844 #line 307 "lscp.y" /* yacc.c:1652 */
3845 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instr_dir_count); }
3846 #line 3847 "y.tab.c" /* yacc.c:1652 */
3847 break;
3848
3849 case 71:
3850 #line 308 "lscp.y" /* yacc.c:1652 */
3851 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instr_dir_info); }
3852 #line 3853 "y.tab.c" /* yacc.c:1652 */
3853 break;
3854
3855 case 72:
3856 #line 309 "lscp.y" /* yacc.c:1652 */
3857 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instr_count); }
3858 #line 3859 "y.tab.c" /* yacc.c:1652 */
3859 break;
3860
3861 case 73:
3862 #line 310 "lscp.y" /* yacc.c:1652 */
3863 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instr_info); }
3864 #line 3865 "y.tab.c" /* yacc.c:1652 */
3865 break;
3866
3867 case 74:
3868 #line 311 "lscp.y" /* yacc.c:1652 */
3869 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_db_instrs_job_info); }
3870 #line 3871 "y.tab.c" /* yacc.c:1652 */
3871 break;
3872
3873 case 75:
3874 #line 312 "lscp.y" /* yacc.c:1652 */
3875 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc); }
3876 #line 3877 "y.tab.c" /* yacc.c:1652 */
3877 break;
3878
3879 case 76:
3880 #line 313 "lscp.y" /* yacc.c:1652 */
3881 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_total_stream_count); }
3882 #line 3883 "y.tab.c" /* yacc.c:1652 */
3883 break;
3884
3885 case 77:
3886 #line 314 "lscp.y" /* yacc.c:1652 */
3887 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_total_voice_count); }
3888 #line 3889 "y.tab.c" /* yacc.c:1652 */
3889 break;
3890
3891 case 78:
3892 #line 315 "lscp.y" /* yacc.c:1652 */
3893 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_global_info); }
3894 #line 3895 "y.tab.c" /* yacc.c:1652 */
3895 break;
3896
3897 case 79:
3898 #line 316 "lscp.y" /* yacc.c:1652 */
3899 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_fx_instance_count); }
3900 #line 3901 "y.tab.c" /* yacc.c:1652 */
3901 break;
3902
3903 case 80:
3904 #line 317 "lscp.y" /* yacc.c:1652 */
3905 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_fx_instance_info); }
3906 #line 3907 "y.tab.c" /* yacc.c:1652 */
3907 break;
3908
3909 case 81:
3910 #line 318 "lscp.y" /* yacc.c:1652 */
3911 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_send_fx_chain_count); }
3912 #line 3913 "y.tab.c" /* yacc.c:1652 */
3913 break;
3914
3915 case 82:
3916 #line 319 "lscp.y" /* yacc.c:1652 */
3917 { (yyval.String) = LSCPSERVER->SubscribeNotification(LSCPEvent::event_send_fx_chain_info); }
3918 #line 3919 "y.tab.c" /* yacc.c:1652 */
3919 break;
3920
3921 case 83:
3922 #line 322 "lscp.y" /* yacc.c:1652 */
3923 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_audio_device_count); }
3924 #line 3925 "y.tab.c" /* yacc.c:1652 */
3925 break;
3926
3927 case 84:
3928 #line 323 "lscp.y" /* yacc.c:1652 */
3929 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_audio_device_info); }
3930 #line 3931 "y.tab.c" /* yacc.c:1652 */
3931 break;
3932
3933 case 85:
3934 #line 324 "lscp.y" /* yacc.c:1652 */
3935 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_device_count); }
3936 #line 3937 "y.tab.c" /* yacc.c:1652 */
3937 break;
3938
3939 case 86:
3940 #line 325 "lscp.y" /* yacc.c:1652 */
3941 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_device_info); }
3942 #line 3943 "y.tab.c" /* yacc.c:1652 */
3943 break;
3944
3945 case 87:
3946 #line 326 "lscp.y" /* yacc.c:1652 */
3947 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channel_count); }
3948 #line 3949 "y.tab.c" /* yacc.c:1652 */
3949 break;
3950
3951 case 88:
3952 #line 327 "lscp.y" /* yacc.c:1652 */
3953 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channel_midi); }
3954 #line 3955 "y.tab.c" /* yacc.c:1652 */
3955 break;
3956
3957 case 89:
3958 #line 328 "lscp.y" /* yacc.c:1652 */
3959 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_device_midi); }
3960 #line 3961 "y.tab.c" /* yacc.c:1652 */
3961 break;
3962
3963 case 90:
3964 #line 329 "lscp.y" /* yacc.c:1652 */
3965 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count); }
3966 #line 3967 "y.tab.c" /* yacc.c:1652 */
3967 break;
3968
3969 case 91:
3970 #line 330 "lscp.y" /* yacc.c:1652 */
3971 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count); }
3972 #line 3973 "y.tab.c" /* yacc.c:1652 */
3973 break;
3974
3975 case 92:
3976 #line 331 "lscp.y" /* yacc.c:1652 */
3977 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill); }
3978 #line 3979 "y.tab.c" /* yacc.c:1652 */
3979 break;
3980
3981 case 93:
3982 #line 332 "lscp.y" /* yacc.c:1652 */
3983 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channel_info); }
3984 #line 3985 "y.tab.c" /* yacc.c:1652 */
3985 break;
3986
3987 case 94:
3988 #line 333 "lscp.y" /* yacc.c:1652 */
3989 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_fx_send_count); }
3990 #line 3991 "y.tab.c" /* yacc.c:1652 */
3991 break;
3992
3993 case 95:
3994 #line 334 "lscp.y" /* yacc.c:1652 */
3995 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_fx_send_info); }
3996 #line 3997 "y.tab.c" /* yacc.c:1652 */
3997 break;
3998
3999 case 96:
4000 #line 335 "lscp.y" /* yacc.c:1652 */
4001 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_map_count); }
4002 #line 4003 "y.tab.c" /* yacc.c:1652 */
4003 break;
4004
4005 case 97:
4006 #line 336 "lscp.y" /* yacc.c:1652 */
4007 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_map_info); }
4008 #line 4009 "y.tab.c" /* yacc.c:1652 */
4009 break;
4010
4011 case 98:
4012 #line 337 "lscp.y" /* yacc.c:1652 */
4013 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_count); }
4014 #line 4015 "y.tab.c" /* yacc.c:1652 */
4015 break;
4016
4017 case 99:
4018 #line 338 "lscp.y" /* yacc.c:1652 */
4019 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_midi_instr_info); }
4020 #line 4021 "y.tab.c" /* yacc.c:1652 */
4021 break;
4022
4023 case 100:
4024 #line 339 "lscp.y" /* yacc.c:1652 */
4025 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instr_dir_count); }
4026 #line 4027 "y.tab.c" /* yacc.c:1652 */
4027 break;
4028
4029 case 101:
4030 #line 340 "lscp.y" /* yacc.c:1652 */
4031 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instr_dir_info); }
4032 #line 4033 "y.tab.c" /* yacc.c:1652 */
4033 break;
4034
4035 case 102:
4036 #line 341 "lscp.y" /* yacc.c:1652 */
4037 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instr_count); }
4038 #line 4039 "y.tab.c" /* yacc.c:1652 */
4039 break;
4040
4041 case 103:
4042 #line 342 "lscp.y" /* yacc.c:1652 */
4043 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instr_info); }
4044 #line 4045 "y.tab.c" /* yacc.c:1652 */
4045 break;
4046
4047 case 104:
4048 #line 343 "lscp.y" /* yacc.c:1652 */
4049 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_db_instrs_job_info); }
4050 #line 4051 "y.tab.c" /* yacc.c:1652 */
4051 break;
4052
4053 case 105:
4054 #line 344 "lscp.y" /* yacc.c:1652 */
4055 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc); }
4056 #line 4057 "y.tab.c" /* yacc.c:1652 */
4057 break;
4058
4059 case 106:
4060 #line 345 "lscp.y" /* yacc.c:1652 */
4061 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_total_stream_count); }
4062 #line 4063 "y.tab.c" /* yacc.c:1652 */
4063 break;
4064
4065 case 107:
4066 #line 346 "lscp.y" /* yacc.c:1652 */
4067 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_total_voice_count); }
4068 #line 4069 "y.tab.c" /* yacc.c:1652 */
4069 break;
4070
4071 case 108:
4072 #line 347 "lscp.y" /* yacc.c:1652 */
4073 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_global_info); }
4074 #line 4075 "y.tab.c" /* yacc.c:1652 */
4075 break;
4076
4077 case 109:
4078 #line 348 "lscp.y" /* yacc.c:1652 */
4079 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_fx_instance_count); }
4080 #line 4081 "y.tab.c" /* yacc.c:1652 */
4081 break;
4082
4083 case 110:
4084 #line 349 "lscp.y" /* yacc.c:1652 */
4085 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_fx_instance_info); }
4086 #line 4087 "y.tab.c" /* yacc.c:1652 */
4087 break;
4088
4089 case 111:
4090 #line 350 "lscp.y" /* yacc.c:1652 */
4091 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_send_fx_chain_count); }
4092 #line 4093 "y.tab.c" /* yacc.c:1652 */
4093 break;
4094
4095 case 112:
4096 #line 351 "lscp.y" /* yacc.c:1652 */
4097 { (yyval.String) = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_send_fx_chain_info); }
4098 #line 4099 "y.tab.c" /* yacc.c:1652 */
4099 break;
4100
4101 case 113:
4102 #line 354 "lscp.y" /* yacc.c:1652 */
4103 { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[-12].Number),(yyvsp[-10].Number),(yyvsp[-8].Number),(yyvsp[-6].String),(yyvsp[-4].String),(yyvsp[-2].Number),(yyvsp[0].Dotnum),MidiInstrumentMapper::DONTCARE,"",(yyvsp[-13].Bool)); }
4104 #line 4105 "y.tab.c" /* yacc.c:1652 */
4105 break;
4106
4107 case 114:
4108 #line 355 "lscp.y" /* yacc.c:1652 */
4109 { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[-14].Number),(yyvsp[-12].Number),(yyvsp[-10].Number),(yyvsp[-8].String),(yyvsp[-6].String),(yyvsp[-4].Number),(yyvsp[-2].Dotnum),(yyvsp[0].LoadMode),"",(yyvsp[-15].Bool)); }
4110 #line 4111 "y.tab.c" /* yacc.c:1652 */
4111 break;
4112
4113 case 115:
4114 #line 356 "lscp.y" /* yacc.c:1652 */
4115 { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[-14].Number),(yyvsp[-12].Number),(yyvsp[-10].Number),(yyvsp[-8].String),(yyvsp[-6].String),(yyvsp[-4].Number),(yyvsp[-2].Dotnum),MidiInstrumentMapper::DONTCARE,(yyvsp[0].String),(yyvsp[-15].Bool)); }
4116 #line 4117 "y.tab.c" /* yacc.c:1652 */
4117 break;
4118
4119 case 116:
4120 #line 357 "lscp.y" /* yacc.c:1652 */
4121 { (yyval.String) = LSCPSERVER->AddOrReplaceMIDIInstrumentMapping((yyvsp[-16].Number),(yyvsp[-14].Number),(yyvsp[-12].Number),(yyvsp[-10].String),(yyvsp[-8].String),(yyvsp[-6].Number),(yyvsp[-4].Dotnum),(yyvsp[-2].LoadMode),(yyvsp[0].String),(yyvsp[-17].Bool)); }
4122 #line 4123 "y.tab.c" /* yacc.c:1652 */
4123 break;
4124
4125 case 117:
4126 #line 360 "lscp.y" /* yacc.c:1652 */
4127 { (yyval.String) = LSCPSERVER->RemoveMIDIInstrumentMapping((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4128 #line 4129 "y.tab.c" /* yacc.c:1652 */
4129 break;
4130
4131 case 118:
4132 #line 363 "lscp.y" /* yacc.c:1652 */
4133 { (yyval.String) = LSCPSERVER->RemoveChannel((yyvsp[0].Number)); }
4134 #line 4135 "y.tab.c" /* yacc.c:1652 */
4135 break;
4136
4137 case 119:
4138 #line 364 "lscp.y" /* yacc.c:1652 */
4139 { (yyval.String) = LSCPSERVER->RemoveChannelMidiInput((yyvsp[0].Number)); }
4140 #line 4141 "y.tab.c" /* yacc.c:1652 */
4141 break;
4142
4143 case 120:
4144 #line 365 "lscp.y" /* yacc.c:1652 */
4145 { (yyval.String) = LSCPSERVER->RemoveChannelMidiInput((yyvsp[-2].Number),(yyvsp[0].Number)); }
4146 #line 4147 "y.tab.c" /* yacc.c:1652 */
4147 break;
4148
4149 case 121:
4150 #line 366 "lscp.y" /* yacc.c:1652 */
4151 { (yyval.String) = LSCPSERVER->RemoveChannelMidiInput((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4152 #line 4153 "y.tab.c" /* yacc.c:1652 */
4153 break;
4154
4155 case 122:
4156 #line 367 "lscp.y" /* yacc.c:1652 */
4157 { (yyval.String) = LSCPSERVER->RemoveMidiInstrumentMap((yyvsp[0].Number)); }
4158 #line 4159 "y.tab.c" /* yacc.c:1652 */
4159 break;
4160
4161 case 123:
4162 #line 368 "lscp.y" /* yacc.c:1652 */
4163 { (yyval.String) = LSCPSERVER->RemoveAllMidiInstrumentMaps(); }
4164 #line 4165 "y.tab.c" /* yacc.c:1652 */
4165 break;
4166
4167 case 124:
4168 #line 369 "lscp.y" /* yacc.c:1652 */
4169 { (yyval.String) = LSCPSERVER->RemoveSendEffectChain((yyvsp[-2].Number),(yyvsp[0].Number)); }
4170 #line 4171 "y.tab.c" /* yacc.c:1652 */
4171 break;
4172
4173 case 125:
4174 #line 370 "lscp.y" /* yacc.c:1652 */
4175 { (yyval.String) = LSCPSERVER->RemoveSendEffectChainEffect((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4176 #line 4177 "y.tab.c" /* yacc.c:1652 */
4177 break;
4178
4179 case 126:
4180 #line 371 "lscp.y" /* yacc.c:1652 */
4181 { (yyval.String) = LSCPSERVER->SetFxSendEffect((yyvsp[-2].Number),(yyvsp[0].Number),-1,-1); }
4182 #line 4183 "y.tab.c" /* yacc.c:1652 */
4183 break;
4184
4185 case 127:
4186 #line 372 "lscp.y" /* yacc.c:1652 */
4187 { (yyval.String) = LSCPSERVER->RemoveDbInstrumentDirectory((yyvsp[0].String), true); }
4188 #line 4189 "y.tab.c" /* yacc.c:1652 */
4189 break;
4190
4191 case 128:
4192 #line 373 "lscp.y" /* yacc.c:1652 */
4193 { (yyval.String) = LSCPSERVER->RemoveDbInstrumentDirectory((yyvsp[0].String)); }
4194 #line 4195 "y.tab.c" /* yacc.c:1652 */
4195 break;
4196
4197 case 129:
4198 #line 374 "lscp.y" /* yacc.c:1652 */
4199 { (yyval.String) = LSCPSERVER->RemoveDbInstrument((yyvsp[0].String)); }
4200 #line 4201 "y.tab.c" /* yacc.c:1652 */
4201 break;
4202
4203 case 130:
4204 #line 377 "lscp.y" /* yacc.c:1652 */
4205 { (yyval.String) = LSCPSERVER->GetAvailableEngines(); }
4206 #line 4207 "y.tab.c" /* yacc.c:1652 */
4207 break;
4208
4209 case 131:
4210 #line 378 "lscp.y" /* yacc.c:1652 */
4211 { (yyval.String) = LSCPSERVER->GetAvailableEffects(); }
4212 #line 4213 "y.tab.c" /* yacc.c:1652 */
4213 break;
4214
4215 case 132:
4216 #line 379 "lscp.y" /* yacc.c:1652 */
4217 { (yyval.String) = LSCPSERVER->GetEffectInstances(); }
4218 #line 4219 "y.tab.c" /* yacc.c:1652 */
4219 break;
4220
4221 case 133:
4222 #line 380 "lscp.y" /* yacc.c:1652 */
4223 { (yyval.String) = LSCPSERVER->GetEffectInfo((yyvsp[0].Number)); }
4224 #line 4225 "y.tab.c" /* yacc.c:1652 */
4225 break;
4226
4227 case 134:
4228 #line 381 "lscp.y" /* yacc.c:1652 */
4229 { (yyval.String) = LSCPSERVER->GetEffectInstanceInfo((yyvsp[0].Number)); }
4230 #line 4231 "y.tab.c" /* yacc.c:1652 */
4231 break;
4232
4233 case 135:
4234 #line 382 "lscp.y" /* yacc.c:1652 */
4235 { (yyval.String) = LSCPSERVER->GetEffectInstanceInputControlInfo((yyvsp[-2].Number),(yyvsp[0].Number)); }
4236 #line 4237 "y.tab.c" /* yacc.c:1652 */
4237 break;
4238
4239 case 136:
4240 #line 383 "lscp.y" /* yacc.c:1652 */
4241 { (yyval.String) = LSCPSERVER->GetSendEffectChains((yyvsp[0].Number)); }
4242 #line 4243 "y.tab.c" /* yacc.c:1652 */
4243 break;
4244
4245 case 137:
4246 #line 384 "lscp.y" /* yacc.c:1652 */
4247 { (yyval.String) = LSCPSERVER->GetSendEffectChainInfo((yyvsp[-2].Number),(yyvsp[0].Number)); }
4248 #line 4249 "y.tab.c" /* yacc.c:1652 */
4249 break;
4250
4251 case 138:
4252 #line 385 "lscp.y" /* yacc.c:1652 */
4253 { (yyval.String) = LSCPSERVER->GetAvailableMidiInputDrivers(); }
4254 #line 4255 "y.tab.c" /* yacc.c:1652 */
4255 break;
4256
4257 case 139:
4258 #line 386 "lscp.y" /* yacc.c:1652 */
4259 { (yyval.String) = LSCPSERVER->GetMidiInputDriverInfo((yyvsp[0].String)); }
4260 #line 4261 "y.tab.c" /* yacc.c:1652 */
4261 break;
4262
4263 case 140:
4264 #line 387 "lscp.y" /* yacc.c:1652 */
4265 { (yyval.String) = LSCPSERVER->GetMidiInputDriverParameterInfo((yyvsp[-2].String), (yyvsp[0].String)); }
4266 #line 4267 "y.tab.c" /* yacc.c:1652 */
4267 break;
4268
4269 case 141:
4270 #line 388 "lscp.y" /* yacc.c:1652 */
4271 { (yyval.String) = LSCPSERVER->GetMidiInputDriverParameterInfo((yyvsp[-4].String), (yyvsp[-2].String), (yyvsp[0].KeyValList)); }
4272 #line 4273 "y.tab.c" /* yacc.c:1652 */
4273 break;
4274
4275 case 142:
4276 #line 389 "lscp.y" /* yacc.c:1652 */
4277 { (yyval.String) = LSCPSERVER->GetAvailableAudioOutputDrivers(); }
4278 #line 4279 "y.tab.c" /* yacc.c:1652 */
4279 break;
4280
4281 case 143:
4282 #line 390 "lscp.y" /* yacc.c:1652 */
4283 { (yyval.String) = LSCPSERVER->GetAudioOutputDriverInfo((yyvsp[0].String)); }
4284 #line 4285 "y.tab.c" /* yacc.c:1652 */
4285 break;
4286
4287 case 144:
4288 #line 391 "lscp.y" /* yacc.c:1652 */
4289 { (yyval.String) = LSCPSERVER->GetAudioOutputDriverParameterInfo((yyvsp[-2].String), (yyvsp[0].String)); }
4290 #line 4291 "y.tab.c" /* yacc.c:1652 */
4291 break;
4292
4293 case 145:
4294 #line 392 "lscp.y" /* yacc.c:1652 */
4295 { (yyval.String) = LSCPSERVER->GetAudioOutputDriverParameterInfo((yyvsp[-4].String), (yyvsp[-2].String), (yyvsp[0].KeyValList)); }
4296 #line 4297 "y.tab.c" /* yacc.c:1652 */
4297 break;
4298
4299 case 146:
4300 #line 393 "lscp.y" /* yacc.c:1652 */
4301 { (yyval.String) = LSCPSERVER->GetAudioOutputDeviceCount(); }
4302 #line 4303 "y.tab.c" /* yacc.c:1652 */
4303 break;
4304
4305 case 147:
4306 #line 394 "lscp.y" /* yacc.c:1652 */
4307 { (yyval.String) = LSCPSERVER->GetMidiInputDeviceCount(); }
4308 #line 4309 "y.tab.c" /* yacc.c:1652 */
4309 break;
4310
4311 case 148:
4312 #line 395 "lscp.y" /* yacc.c:1652 */
4313 { (yyval.String) = LSCPSERVER->GetAudioOutputDeviceInfo((yyvsp[0].Number)); }
4314 #line 4315 "y.tab.c" /* yacc.c:1652 */
4315 break;
4316
4317 case 149:
4318 #line 396 "lscp.y" /* yacc.c:1652 */
4319 { (yyval.String) = LSCPSERVER->GetMidiInputDeviceInfo((yyvsp[0].Number)); }
4320 #line 4321 "y.tab.c" /* yacc.c:1652 */
4321 break;
4322
4323 case 150:
4324 #line 397 "lscp.y" /* yacc.c:1652 */
4325 { (yyval.String) = LSCPSERVER->GetMidiInputPortInfo((yyvsp[-2].Number), (yyvsp[0].Number)); }
4326 #line 4327 "y.tab.c" /* yacc.c:1652 */
4327 break;
4328
4329 case 151:
4330 #line 398 "lscp.y" /* yacc.c:1652 */
4331 { (yyval.String) = LSCPSERVER->GetMidiInputPortParameterInfo((yyvsp[-4].Number), (yyvsp[-2].Number), (yyvsp[0].String)); }
4332 #line 4333 "y.tab.c" /* yacc.c:1652 */
4333 break;
4334
4335 case 152:
4336 #line 399 "lscp.y" /* yacc.c:1652 */
4337 { (yyval.String) = LSCPSERVER->GetAudioOutputChannelInfo((yyvsp[-2].Number), (yyvsp[0].Number)); }
4338 #line 4339 "y.tab.c" /* yacc.c:1652 */
4339 break;
4340
4341 case 153:
4342 #line 400 "lscp.y" /* yacc.c:1652 */
4343 { (yyval.String) = LSCPSERVER->GetAudioOutputChannelParameterInfo((yyvsp[-4].Number), (yyvsp[-2].Number), (yyvsp[0].String)); }
4344 #line 4345 "y.tab.c" /* yacc.c:1652 */
4345 break;
4346
4347 case 154:
4348 #line 401 "lscp.y" /* yacc.c:1652 */
4349 { (yyval.String) = LSCPSERVER->GetChannels(); }
4350 #line 4351 "y.tab.c" /* yacc.c:1652 */
4351 break;
4352
4353 case 155:
4354 #line 402 "lscp.y" /* yacc.c:1652 */
4355 { (yyval.String) = LSCPSERVER->GetChannelInfo((yyvsp[0].Number)); }
4356 #line 4357 "y.tab.c" /* yacc.c:1652 */
4357 break;
4358
4359 case 156:
4360 #line 403 "lscp.y" /* yacc.c:1652 */
4361 { (yyval.String) = LSCPSERVER->GetBufferFill((yyvsp[-2].FillResponse), (yyvsp[0].Number)); }
4362 #line 4363 "y.tab.c" /* yacc.c:1652 */
4363 break;
4364
4365 case 157:
4366 #line 404 "lscp.y" /* yacc.c:1652 */
4367 { (yyval.String) = LSCPSERVER->GetStreamCount((yyvsp[0].Number)); }
4368 #line 4369 "y.tab.c" /* yacc.c:1652 */
4369 break;
4370
4371 case 158:
4372 #line 405 "lscp.y" /* yacc.c:1652 */
4373 { (yyval.String) = LSCPSERVER->GetVoiceCount((yyvsp[0].Number)); }
4374 #line 4375 "y.tab.c" /* yacc.c:1652 */
4375 break;
4376
4377 case 159:
4378 #line 406 "lscp.y" /* yacc.c:1652 */
4379 { (yyval.String) = LSCPSERVER->GetEngineInfo((yyvsp[0].String)); }
4380 #line 4381 "y.tab.c" /* yacc.c:1652 */
4381 break;
4382
4383 case 160:
4384 #line 407 "lscp.y" /* yacc.c:1652 */
4385 { (yyval.String) = LSCPSERVER->GetServerInfo(); }
4386 #line 4387 "y.tab.c" /* yacc.c:1652 */
4387 break;
4388
4389 case 161:
4390 #line 408 "lscp.y" /* yacc.c:1652 */
4391 { (yyval.String) = LSCPSERVER->GetTotalStreamCount(); }
4392 #line 4393 "y.tab.c" /* yacc.c:1652 */
4393 break;
4394
4395 case 162:
4396 #line 409 "lscp.y" /* yacc.c:1652 */
4397 { (yyval.String) = LSCPSERVER->GetTotalVoiceCount(); }
4398 #line 4399 "y.tab.c" /* yacc.c:1652 */
4399 break;
4400
4401 case 163:
4402 #line 410 "lscp.y" /* yacc.c:1652 */
4403 { (yyval.String) = LSCPSERVER->GetTotalVoiceCountMax(); }
4404 #line 4405 "y.tab.c" /* yacc.c:1652 */
4405 break;
4406
4407 case 164:
4408 #line 411 "lscp.y" /* yacc.c:1652 */
4409 { (yyval.String) = LSCPSERVER->GetMidiInstrumentMappings((yyvsp[0].Number)); }
4410 #line 4411 "y.tab.c" /* yacc.c:1652 */
4411 break;
4412
4413 case 165:
4414 #line 412 "lscp.y" /* yacc.c:1652 */
4415 { (yyval.String) = LSCPSERVER->GetAllMidiInstrumentMappings(); }
4416 #line 4417 "y.tab.c" /* yacc.c:1652 */
4417 break;
4418
4419 case 166:
4420 #line 413 "lscp.y" /* yacc.c:1652 */
4421 { (yyval.String) = LSCPSERVER->GetMidiInstrumentMapping((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4422 #line 4423 "y.tab.c" /* yacc.c:1652 */
4423 break;
4424
4425 case 167:
4426 #line 414 "lscp.y" /* yacc.c:1652 */
4427 { (yyval.String) = LSCPSERVER->GetMidiInstrumentMaps(); }
4428 #line 4429 "y.tab.c" /* yacc.c:1652 */
4429 break;
4430
4431 case 168:
4432 #line 415 "lscp.y" /* yacc.c:1652 */
4433 { (yyval.String) = LSCPSERVER->GetMidiInstrumentMap((yyvsp[0].Number)); }
4434 #line 4435 "y.tab.c" /* yacc.c:1652 */
4435 break;
4436
4437 case 169:
4438 #line 416 "lscp.y" /* yacc.c:1652 */
4439 { (yyval.String) = LSCPSERVER->GetFxSends((yyvsp[0].Number)); }
4440 #line 4441 "y.tab.c" /* yacc.c:1652 */
4441 break;
4442
4443 case 170:
4444 #line 417 "lscp.y" /* yacc.c:1652 */
4445 { (yyval.String) = LSCPSERVER->GetFxSendInfo((yyvsp[-2].Number),(yyvsp[0].Number)); }
4446 #line 4447 "y.tab.c" /* yacc.c:1652 */
4447 break;
4448
4449 case 171:
4450 #line 418 "lscp.y" /* yacc.c:1652 */
4451 { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectoryCount((yyvsp[0].String), true); }
4452 #line 4453 "y.tab.c" /* yacc.c:1652 */
4453 break;
4454
4455 case 172:
4456 #line 419 "lscp.y" /* yacc.c:1652 */
4457 { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectoryCount((yyvsp[0].String), false); }
4458 #line 4459 "y.tab.c" /* yacc.c:1652 */
4459 break;
4460
4461 case 173:
4462 #line 420 "lscp.y" /* yacc.c:1652 */
4463 { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectoryInfo((yyvsp[0].String)); }
4464 #line 4465 "y.tab.c" /* yacc.c:1652 */
4465 break;
4466
4467 case 174:
4468 #line 421 "lscp.y" /* yacc.c:1652 */
4469 { (yyval.String) = LSCPSERVER->GetDbInstrumentCount((yyvsp[0].String), true); }
4470 #line 4471 "y.tab.c" /* yacc.c:1652 */
4471 break;
4472
4473 case 175:
4474 #line 422 "lscp.y" /* yacc.c:1652 */
4475 { (yyval.String) = LSCPSERVER->GetDbInstrumentCount((yyvsp[0].String), false); }
4476 #line 4477 "y.tab.c" /* yacc.c:1652 */
4477 break;
4478
4479 case 176:
4480 #line 423 "lscp.y" /* yacc.c:1652 */
4481 { (yyval.String) = LSCPSERVER->GetDbInstrumentInfo((yyvsp[0].String)); }
4482 #line 4483 "y.tab.c" /* yacc.c:1652 */
4483 break;
4484
4485 case 177:
4486 #line 424 "lscp.y" /* yacc.c:1652 */
4487 { (yyval.String) = LSCPSERVER->GetDbInstrumentsJobInfo((yyvsp[0].Number)); }
4488 #line 4489 "y.tab.c" /* yacc.c:1652 */
4489 break;
4490
4491 case 178:
4492 #line 425 "lscp.y" /* yacc.c:1652 */
4493 { (yyval.String) = LSCPSERVER->GetGlobalVolume(); }
4494 #line 4495 "y.tab.c" /* yacc.c:1652 */
4495 break;
4496
4497 case 179:
4498 #line 426 "lscp.y" /* yacc.c:1652 */
4499 { (yyval.String) = LSCPSERVER->GetGlobalMaxVoices(); }
4500 #line 4501 "y.tab.c" /* yacc.c:1652 */
4501 break;
4502
4503 case 180:
4504 #line 427 "lscp.y" /* yacc.c:1652 */
4505 { (yyval.String) = LSCPSERVER->GetGlobalMaxStreams(); }
4506 #line 4507 "y.tab.c" /* yacc.c:1652 */
4507 break;
4508
4509 case 181:
4510 #line 428 "lscp.y" /* yacc.c:1652 */
4511 { (yyval.String) = LSCPSERVER->GetFileInstruments((yyvsp[0].String)); }
4512 #line 4513 "y.tab.c" /* yacc.c:1652 */
4513 break;
4514
4515 case 182:
4516 #line 429 "lscp.y" /* yacc.c:1652 */
4517 { (yyval.String) = LSCPSERVER->GetFileInstrumentInfo((yyvsp[-2].String),(yyvsp[0].Number)); }
4518 #line 4519 "y.tab.c" /* yacc.c:1652 */
4519 break;
4520
4521 case 183:
4522 #line 432 "lscp.y" /* yacc.c:1652 */
4523 { (yyval.String) = LSCPSERVER->SetAudioOutputDeviceParameter((yyvsp[-4].Number), (yyvsp[-2].String), (yyvsp[0].String)); }
4524 #line 4525 "y.tab.c" /* yacc.c:1652 */
4525 break;
4526
4527 case 184:
4528 #line 433 "lscp.y" /* yacc.c:1652 */
4529 { (yyval.String) = LSCPSERVER->SetAudioOutputChannelParameter((yyvsp[-6].Number), (yyvsp[-4].Number), (yyvsp[-2].String), (yyvsp[0].String)); }
4530 #line 4531 "y.tab.c" /* yacc.c:1652 */
4531 break;
4532
4533 case 185:
4534 #line 434 "lscp.y" /* yacc.c:1652 */
4535 { (yyval.String) = LSCPSERVER->SetMidiInputDeviceParameter((yyvsp[-4].Number), (yyvsp[-2].String), (yyvsp[0].String)); }
4536 #line 4537 "y.tab.c" /* yacc.c:1652 */
4537 break;
4538
4539 case 186:
4540 #line 435 "lscp.y" /* yacc.c:1652 */
4541 { (yyval.String) = LSCPSERVER->SetMidiInputPortParameter((yyvsp[-6].Number), (yyvsp[-4].Number), (yyvsp[-2].String), ""); }
4542 #line 4543 "y.tab.c" /* yacc.c:1652 */
4543 break;
4544
4545 case 187:
4546 #line 436 "lscp.y" /* yacc.c:1652 */
4547 { (yyval.String) = LSCPSERVER->SetMidiInputPortParameter((yyvsp[-6].Number), (yyvsp[-4].Number), (yyvsp[-2].String), (yyvsp[0].String)); }
4548 #line 4549 "y.tab.c" /* yacc.c:1652 */
4549 break;
4550
4551 case 188:
4552 #line 437 "lscp.y" /* yacc.c:1652 */
4553 { (yyval.String) = LSCPSERVER->SetEffectInstanceInputControlValue((yyvsp[-4].Number), (yyvsp[-2].Number), (yyvsp[0].Dotnum)); }
4554 #line 4555 "y.tab.c" /* yacc.c:1652 */
4555 break;
4556
4557 case 189:
4558 #line 438 "lscp.y" /* yacc.c:1652 */
4559 { (yyval.String) = (yyvsp[0].String); }
4560 #line 4561 "y.tab.c" /* yacc.c:1652 */
4561 break;
4562
4563 case 190:
4564 #line 439 "lscp.y" /* yacc.c:1652 */
4565 { (yyval.String) = LSCPSERVER->SetMidiInstrumentMapName((yyvsp[-2].Number), (yyvsp[0].String)); }
4566 #line 4567 "y.tab.c" /* yacc.c:1652 */
4567 break;
4568
4569 case 191:
4570 #line 440 "lscp.y" /* yacc.c:1652 */
4571 { (yyval.String) = LSCPSERVER->SetFxSendName((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].String)); }
4572 #line 4573 "y.tab.c" /* yacc.c:1652 */
4573 break;
4574
4575 case 192:
4576 #line 441 "lscp.y" /* yacc.c:1652 */
4577 { (yyval.String) = LSCPSERVER->SetFxSendAudioOutputChannel((yyvsp[-6].Number),(yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4578 #line 4579 "y.tab.c" /* yacc.c:1652 */
4579 break;
4580
4581 case 193:
4582 #line 442 "lscp.y" /* yacc.c:1652 */
4583 { (yyval.String) = LSCPSERVER->SetFxSendMidiController((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4584 #line 4585 "y.tab.c" /* yacc.c:1652 */
4585 break;
4586
4587 case 194:
4588 #line 443 "lscp.y" /* yacc.c:1652 */
4589 { (yyval.String) = LSCPSERVER->SetFxSendLevel((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Dotnum)); }
4590 #line 4591 "y.tab.c" /* yacc.c:1652 */
4591 break;
4592
4593 case 195:
4594 #line 444 "lscp.y" /* yacc.c:1652 */
4595 { (yyval.String) = LSCPSERVER->SetFxSendEffect((yyvsp[-6].Number),(yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4596 #line 4597 "y.tab.c" /* yacc.c:1652 */
4597 break;
4598
4599 case 196:
4600 #line 445 "lscp.y" /* yacc.c:1652 */
4601 { (yyval.String) = LSCPSERVER->SetDbInstrumentDirectoryName((yyvsp[-2].String),(yyvsp[0].String)); }
4602 #line 4603 "y.tab.c" /* yacc.c:1652 */
4603 break;
4604
4605 case 197:
4606 #line 446 "lscp.y" /* yacc.c:1652 */
4607 { (yyval.String) = LSCPSERVER->SetDbInstrumentDirectoryDescription((yyvsp[-2].String),(yyvsp[0].String)); }
4608 #line 4609 "y.tab.c" /* yacc.c:1652 */
4609 break;
4610
4611 case 198:
4612 #line 447 "lscp.y" /* yacc.c:1652 */
4613 { (yyval.String) = LSCPSERVER->SetDbInstrumentName((yyvsp[-2].String),(yyvsp[0].String)); }
4614 #line 4615 "y.tab.c" /* yacc.c:1652 */
4615 break;
4616
4617 case 199:
4618 #line 448 "lscp.y" /* yacc.c:1652 */
4619 { (yyval.String) = LSCPSERVER->SetDbInstrumentDescription((yyvsp[-2].String),(yyvsp[0].String)); }
4620 #line 4621 "y.tab.c" /* yacc.c:1652 */
4621 break;
4622
4623 case 200:
4624 #line 449 "lscp.y" /* yacc.c:1652 */
4625 { (yyval.String) = LSCPSERVER->SetDbInstrumentFilePath((yyvsp[-2].String),(yyvsp[0].String)); }
4626 #line 4627 "y.tab.c" /* yacc.c:1652 */
4627 break;
4628
4629 case 201:
4630 #line 450 "lscp.y" /* yacc.c:1652 */
4631 { (yyval.String) = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, (yyvsp[0].Dotnum)); }
4632 #line 4633 "y.tab.c" /* yacc.c:1652 */
4633 break;
4634
4635 case 202:
4636 #line 451 "lscp.y" /* yacc.c:1652 */
4637 { (yyval.String) = LSCPSERVER->SetShellInteract((yyparse_param_t*) yyparse_param, (yyvsp[0].Dotnum)); }
4638 #line 4639 "y.tab.c" /* yacc.c:1652 */
4639 break;
4640
4641 case 203:
4642 #line 452 "lscp.y" /* yacc.c:1652 */
4643 { (yyval.String) = LSCPSERVER->SetShellAutoCorrect((yyparse_param_t*) yyparse_param, (yyvsp[0].Dotnum)); }
4644 #line 4645 "y.tab.c" /* yacc.c:1652 */
4645 break;
4646
4647 case 204:
4648 #line 453 "lscp.y" /* yacc.c:1652 */
4649 { (yyval.String) = LSCPSERVER->SetShellDoc((yyparse_param_t*) yyparse_param, (yyvsp[0].Dotnum)); }
4650 #line 4651 "y.tab.c" /* yacc.c:1652 */
4651 break;
4652
4653 case 205:
4654 #line 454 "lscp.y" /* yacc.c:1652 */
4655 { (yyval.String) = LSCPSERVER->SetGlobalVolume((yyvsp[0].Dotnum)); }
4656 #line 4657 "y.tab.c" /* yacc.c:1652 */
4657 break;
4658
4659 case 206:
4660 #line 455 "lscp.y" /* yacc.c:1652 */
4661 { (yyval.String) = LSCPSERVER->SetGlobalMaxVoices((yyvsp[0].Number)); }
4662 #line 4663 "y.tab.c" /* yacc.c:1652 */
4663 break;
4664
4665 case 207:
4666 #line 456 "lscp.y" /* yacc.c:1652 */
4667 { (yyval.String) = LSCPSERVER->SetGlobalMaxStreams((yyvsp[0].Number)); }
4668 #line 4669 "y.tab.c" /* yacc.c:1652 */
4669 break;
4670
4671 case 208:
4672 #line 459 "lscp.y" /* yacc.c:1652 */
4673 { (yyval.String) = LSCPSERVER->CreateAudioOutputDevice((yyvsp[-2].String),(yyvsp[0].KeyValList)); }
4674 #line 4675 "y.tab.c" /* yacc.c:1652 */
4675 break;
4676
4677 case 209:
4678 #line 460 "lscp.y" /* yacc.c:1652 */
4679 { (yyval.String) = LSCPSERVER->CreateAudioOutputDevice((yyvsp[0].String)); }
4680 #line 4681 "y.tab.c" /* yacc.c:1652 */
4681 break;
4682
4683 case 210:
4684 #line 461 "lscp.y" /* yacc.c:1652 */
4685 { (yyval.String) = LSCPSERVER->CreateMidiInputDevice((yyvsp[-2].String),(yyvsp[0].KeyValList)); }
4686 #line 4687 "y.tab.c" /* yacc.c:1652 */
4687 break;
4688
4689 case 211:
4690 #line 462 "lscp.y" /* yacc.c:1652 */
4691 { (yyval.String) = LSCPSERVER->CreateMidiInputDevice((yyvsp[0].String)); }
4692 #line 4693 "y.tab.c" /* yacc.c:1652 */
4693 break;
4694
4695 case 212:
4696 #line 463 "lscp.y" /* yacc.c:1652 */
4697 { (yyval.String) = LSCPSERVER->CreateFxSend((yyvsp[-2].Number),(yyvsp[0].Number)); }
4698 #line 4699 "y.tab.c" /* yacc.c:1652 */
4699 break;
4700
4701 case 213:
4702 #line 464 "lscp.y" /* yacc.c:1652 */
4703 { (yyval.String) = LSCPSERVER->CreateFxSend((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].String)); }
4704 #line 4705 "y.tab.c" /* yacc.c:1652 */
4705 break;
4706
4707 case 214:
4708 #line 465 "lscp.y" /* yacc.c:1652 */
4709 { (yyval.String) = LSCPSERVER->CreateEffectInstance((yyvsp[0].Number)); }
4710 #line 4711 "y.tab.c" /* yacc.c:1652 */
4711 break;
4712
4713 case 215:
4714 #line 466 "lscp.y" /* yacc.c:1652 */
4715 { (yyval.String) = LSCPSERVER->CreateEffectInstance((yyvsp[-4].String),(yyvsp[-2].String),(yyvsp[0].String)); }
4716 #line 4717 "y.tab.c" /* yacc.c:1652 */
4717 break;
4718
4719 case 216:
4720 #line 469 "lscp.y" /* yacc.c:1652 */
4721 { (yyval.String) = LSCPSERVER->ResetChannel((yyvsp[0].Number)); }
4722 #line 4723 "y.tab.c" /* yacc.c:1652 */
4723 break;
4724
4725 case 217:
4726 #line 472 "lscp.y" /* yacc.c:1652 */
4727 { (yyval.String) = LSCPSERVER->ClearMidiInstrumentMappings((yyvsp[0].Number)); }
4728 #line 4729 "y.tab.c" /* yacc.c:1652 */
4729 break;
4730
4731 case 218:
4732 #line 473 "lscp.y" /* yacc.c:1652 */
4733 { (yyval.String) = LSCPSERVER->ClearAllMidiInstrumentMappings(); }
4734 #line 4735 "y.tab.c" /* yacc.c:1652 */
4735 break;
4736
4737 case 219:
4738 #line 476 "lscp.y" /* yacc.c:1652 */
4739 { (yyval.String) = LSCPSERVER->FindDbInstruments((yyvsp[-2].String),(yyvsp[0].KeyValList), false); }
4740 #line 4741 "y.tab.c" /* yacc.c:1652 */
4741 break;
4742
4743 case 220:
4744 #line 477 "lscp.y" /* yacc.c:1652 */
4745 { (yyval.String) = LSCPSERVER->FindDbInstruments((yyvsp[-2].String),(yyvsp[0].KeyValList), true); }
4746 #line 4747 "y.tab.c" /* yacc.c:1652 */
4747 break;
4748
4749 case 221:
4750 #line 478 "lscp.y" /* yacc.c:1652 */
4751 { (yyval.String) = LSCPSERVER->FindDbInstrumentDirectories((yyvsp[-2].String),(yyvsp[0].KeyValList), false); }
4752 #line 4753 "y.tab.c" /* yacc.c:1652 */
4753 break;
4754
4755 case 222:
4756 #line 479 "lscp.y" /* yacc.c:1652 */
4757 { (yyval.String) = LSCPSERVER->FindDbInstrumentDirectories((yyvsp[-2].String),(yyvsp[0].KeyValList), true); }
4758 #line 4759 "y.tab.c" /* yacc.c:1652 */
4759 break;
4760
4761 case 223:
4762 #line 480 "lscp.y" /* yacc.c:1652 */
4763 { (yyval.String) = LSCPSERVER->FindLostDbInstrumentFiles(); }
4764 #line 4765 "y.tab.c" /* yacc.c:1652 */
4765 break;
4766
4767 case 224:
4768 #line 483 "lscp.y" /* yacc.c:1652 */
4769 { (yyval.String) = LSCPSERVER->MoveDbInstrumentDirectory((yyvsp[-2].String),(yyvsp[0].String)); }
4770 #line 4771 "y.tab.c" /* yacc.c:1652 */
4771 break;
4772
4773 case 225:
4774 #line 484 "lscp.y" /* yacc.c:1652 */
4775 { (yyval.String) = LSCPSERVER->MoveDbInstrument((yyvsp[-2].String),(yyvsp[0].String)); }
4776 #line 4777 "y.tab.c" /* yacc.c:1652 */
4777 break;
4778
4779 case 226:
4780 #line 487 "lscp.y" /* yacc.c:1652 */
4781 { (yyval.String) = LSCPSERVER->CopyDbInstrumentDirectory((yyvsp[-2].String),(yyvsp[0].String)); }
4782 #line 4783 "y.tab.c" /* yacc.c:1652 */
4783 break;
4784
4785 case 227:
4786 #line 488 "lscp.y" /* yacc.c:1652 */
4787 { (yyval.String) = LSCPSERVER->CopyDbInstrument((yyvsp[-2].String),(yyvsp[0].String)); }
4788 #line 4789 "y.tab.c" /* yacc.c:1652 */
4789 break;
4790
4791 case 228:
4792 #line 491 "lscp.y" /* yacc.c:1652 */
4793 { (yyval.String) = LSCPSERVER->DestroyAudioOutputDevice((yyvsp[0].Number)); }
4794 #line 4795 "y.tab.c" /* yacc.c:1652 */
4795 break;
4796
4797 case 229:
4798 #line 492 "lscp.y" /* yacc.c:1652 */
4799 { (yyval.String) = LSCPSERVER->DestroyMidiInputDevice((yyvsp[0].Number)); }
4800 #line 4801 "y.tab.c" /* yacc.c:1652 */
4801 break;
4802
4803 case 230:
4804 #line 493 "lscp.y" /* yacc.c:1652 */
4805 { (yyval.String) = LSCPSERVER->DestroyFxSend((yyvsp[-2].Number),(yyvsp[0].Number)); }
4806 #line 4807 "y.tab.c" /* yacc.c:1652 */
4807 break;
4808
4809 case 231:
4810 #line 494 "lscp.y" /* yacc.c:1652 */
4811 { (yyval.String) = LSCPSERVER->DestroyEffectInstance((yyvsp[0].Number)); }
4812 #line 4813 "y.tab.c" /* yacc.c:1652 */
4813 break;
4814
4815 case 232:
4816 #line 497 "lscp.y" /* yacc.c:1652 */
4817 { (yyval.String) = (yyvsp[0].String); }
4818 #line 4819 "y.tab.c" /* yacc.c:1652 */
4819 break;
4820
4821 case 233:
4822 #line 498 "lscp.y" /* yacc.c:1652 */
4823 { (yyval.String) = (yyvsp[0].String); }
4824 #line 4825 "y.tab.c" /* yacc.c:1652 */
4825 break;
4826
4827 case 234:
4828 #line 501 "lscp.y" /* yacc.c:1652 */
4829 { (yyval.String) = LSCPSERVER->AppendSendEffectChainEffect((yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4830 #line 4831 "y.tab.c" /* yacc.c:1652 */
4831 break;
4832
4833 case 235:
4834 #line 504 "lscp.y" /* yacc.c:1652 */
4835 { (yyval.String) = LSCPSERVER->InsertSendEffectChainEffect((yyvsp[-6].Number),(yyvsp[-4].Number),(yyvsp[-2].Number),(yyvsp[0].Number)); }
4836 #line 4837 "y.tab.c" /* yacc.c:1652 */
4837 break;
4838
4839 case 236:
4840 #line 507 "lscp.y" /* yacc.c:1652 */
4841 { (yyval.String) = LSCPSERVER->SetAudioOutputDevice((yyvsp[0].Number), (yyvsp[-2].Number)); }
4842 #line 4843 "y.tab.c" /* yacc.c:1652 */
4843 break;
4844
4845 case 237:
4846 #line 508 "lscp.y" /* yacc.c:1652 */
4847 { (yyval.String) = LSCPSERVER->SetAudioOutputChannel((yyvsp[-2].Number), (yyvsp[0].Number), (yyvsp[-4].Number)); }
4848 #line 4849 "y.tab.c" /* yacc.c:1652 */
4849 break;
4850
4851 case 238:
4852 #line 509 "lscp.y" /* yacc.c:1652 */
4853 { (yyval.String) = LSCPSERVER->SetAudioOutputType((yyvsp[0].String), (yyvsp[-2].Number)); }
4854 #line 4855 "y.tab.c" /* yacc.c:1652 */
4855 break;
4856
4857 case 239:
4858 #line 510 "lscp.y" /* yacc.c:1652 */
4859 { (yyval.String) = LSCPSERVER->SetMIDIInput((yyvsp[-4].Number), (yyvsp[-2].Number), (yyvsp[0].Number), (yyvsp[-6].Number)); }
4860 #line 4861 "y.tab.c" /* yacc.c:1652 */
4861 break;
4862
4863 case 240:
4864 #line 511 "lscp.y" /* yacc.c:1652 */
4865 { (yyval.String) = LSCPSERVER->SetMIDIInputDevice((yyvsp[0].Number), (yyvsp[-2].Number)); }
4866 #line 4867 "y.tab.c" /* yacc.c:1652 */
4867 break;
4868
4869 case 241:
4870 #line 512 "lscp.y" /* yacc.c:1652 */
4871 { (yyval.String) = LSCPSERVER->SetMIDIInputPort((yyvsp[0].Number), (yyvsp[-2].Number)); }
4872 #line 4873 "y.tab.c" /* yacc.c:1652 */
4873 break;
4874
4875 case 242:
4876 #line 513 "lscp.y" /* yacc.c:1652 */
4877 { (yyval.String) = LSCPSERVER->SetMIDIInputChannel((yyvsp[0].Number), (yyvsp[-2].Number)); }
4878 #line 4879 "y.tab.c" /* yacc.c:1652 */
4879 break;
4880
4881 case 243:
4882 #line 514 "lscp.y" /* yacc.c:1652 */
4883 { (yyval.String) = LSCPSERVER->SetMIDIInputType((yyvsp[0].String), (yyvsp[-2].Number)); }
4884 #line 4885 "y.tab.c" /* yacc.c:1652 */
4885 break;
4886
4887 case 244:
4888 #line 515 "lscp.y" /* yacc.c:1652 */
4889 { (yyval.String) = LSCPSERVER->SetVolume((yyvsp[0].Dotnum), (yyvsp[-2].Number)); }
4890 #line 4891 "y.tab.c" /* yacc.c:1652 */
4891 break;
4892
4893 case 245:
4894 #line 516 "lscp.y" /* yacc.c:1652 */
4895 { (yyval.String) = LSCPSERVER->SetChannelMute((yyvsp[0].Dotnum), (yyvsp[-2].Number)); }
4896 #line 4897 "y.tab.c" /* yacc.c:1652 */
4897 break;
4898
4899 case 246:
4900 #line 517 "lscp.y" /* yacc.c:1652 */
4901 { (yyval.String) = LSCPSERVER->SetChannelSolo((yyvsp[0].Dotnum), (yyvsp[-2].Number)); }
4902 #line 4903 "y.tab.c" /* yacc.c:1652 */
4903 break;
4904
4905 case 247:
4906 #line 518 "lscp.y" /* yacc.c:1652 */
4907 { (yyval.String) = LSCPSERVER->SetChannelMap((yyvsp[-2].Number), (yyvsp[0].Number)); }
4908 #line 4909 "y.tab.c" /* yacc.c:1652 */
4909 break;
4910
4911 case 248:
4912 #line 519 "lscp.y" /* yacc.c:1652 */
4913 { (yyval.String) = LSCPSERVER->SetChannelMap((yyvsp[-2].Number), -1); }
4914 #line 4915 "y.tab.c" /* yacc.c:1652 */
4915 break;
4916
4917 case 249:
4918 #line 520 "lscp.y" /* yacc.c:1652 */
4919 { (yyval.String) = LSCPSERVER->SetChannelMap((yyvsp[-2].Number), -2); }
4920 #line 4921 "y.tab.c" /* yacc.c:1652 */
4921 break;
4922
4923 case 250:
4924 #line 523 "lscp.y" /* yacc.c:1652 */
4925 { (yyval.String) = LSCPSERVER->EditSamplerChannelInstrument((yyvsp[0].Number)); }
4926 #line 4927 "y.tab.c" /* yacc.c:1652 */
4927 break;
4928
4929 case 251:
4930 #line 526 "lscp.y" /* yacc.c:1652 */
4931 { (yyval.String) = LSCPSERVER->FormatInstrumentsDb(); }
4932 #line 4933 "y.tab.c" /* yacc.c:1652 */
4933 break;
4934
4935 case 252:
4936 #line 529 "lscp.y" /* yacc.c:1652 */
4937 { (yyval.Bool) = true; }
4938 #line 4939 "y.tab.c" /* yacc.c:1652 */
4939 break;
4940
4941 case 253:
4942 #line 530 "lscp.y" /* yacc.c:1652 */
4943 { (yyval.Bool) = false; }
4944 #line 4945 "y.tab.c" /* yacc.c:1652 */
4945 break;
4946
4947 case 254:
4948 #line 533 "lscp.y" /* yacc.c:1652 */
4949 { (yyval.KeyValList)[(yyvsp[-2].String)] = (yyvsp[0].String); }
4950 #line 4951 "y.tab.c" /* yacc.c:1652 */
4951 break;
4952
4953 case 255:
4954 #line 534 "lscp.y" /* yacc.c:1652 */
4955 { (yyval.KeyValList) = (yyvsp[-4].KeyValList); (yyval.KeyValList)[(yyvsp[-2].String)] = (yyvsp[0].String); }
4956 #line 4957 "y.tab.c" /* yacc.c:1652 */
4957 break;
4958
4959 case 256:
4960 #line 537 "lscp.y" /* yacc.c:1652 */
4961 { (yyval.FillResponse) = fill_response_bytes; }
4962 #line 4963 "y.tab.c" /* yacc.c:1652 */
4963 break;
4964
4965 case 257:
4966 #line 538 "lscp.y" /* yacc.c:1652 */
4967 { (yyval.FillResponse) = fill_response_percentage; }
4968 #line 4969 "y.tab.c" /* yacc.c:1652 */
4969 break;
4970
4971 case 258:
4972 #line 541 "lscp.y" /* yacc.c:1652 */
4973 { (yyval.String) = LSCPSERVER->GetAudioOutputDevices(); }
4974 #line 4975 "y.tab.c" /* yacc.c:1652 */
4975 break;
4976
4977 case 259:
4978 #line 542 "lscp.y" /* yacc.c:1652 */
4979 { (yyval.String) = LSCPSERVER->GetMidiInputDevices(); }
4980 #line 4981 "y.tab.c" /* yacc.c:1652 */
4981 break;
4982
4983 case 260:
4984 #line 543 "lscp.y" /* yacc.c:1652 */
4985 { (yyval.String) = LSCPSERVER->ListChannels(); }
4986 #line 4987 "y.tab.c" /* yacc.c:1652 */
4987 break;
4988
4989 case 261:
4990 #line 544 "lscp.y" /* yacc.c:1652 */
4991 { (yyval.String) = LSCPSERVER->ListChannelMidiInputs((yyvsp[0].Number)); }
4992 #line 4993 "y.tab.c" /* yacc.c:1652 */
4993 break;
4994
4995 case 262:
4996 #line 545 "lscp.y" /* yacc.c:1652 */
4997 { (yyval.String) = LSCPSERVER->ListAvailableEngines(); }
4998 #line 4999 "y.tab.c" /* yacc.c:1652 */
4999 break;
5000
5001 case 263:
5002 #line 546 "lscp.y" /* yacc.c:1652 */
5003 { (yyval.String) = LSCPSERVER->ListAvailableEffects(); }
5004 #line 5005 "y.tab.c" /* yacc.c:1652 */
5005 break;
5006
5007 case 264:
5008 #line 547 "lscp.y" /* yacc.c:1652 */
5009 { (yyval.String) = LSCPSERVER->ListEffectInstances(); }
5010 #line 5011 "y.tab.c" /* yacc.c:1652 */
5011 break;
5012
5013 case 265:
5014 #line 548 "lscp.y" /* yacc.c:1652 */
5015 { (yyval.String) = LSCPSERVER->ListSendEffectChains((yyvsp[0].Number)); }
5016 #line 5017 "y.tab.c" /* yacc.c:1652 */
5017 break;
5018
5019 case 266:
5020 #line 549 "lscp.y" /* yacc.c:1652 */
5021 { (yyval.String) = LSCPSERVER->ListAvailableMidiInputDrivers(); }
5022 #line 5023 "y.tab.c" /* yacc.c:1652 */
5023 break;
5024
5025 case 267:
5026 #line 550 "lscp.y" /* yacc.c:1652 */
5027 { (yyval.String) = LSCPSERVER->ListAvailableAudioOutputDrivers(); }
5028 #line 5029 "y.tab.c" /* yacc.c:1652 */
5029 break;
5030
5031 case 268:
5032 #line 551 "lscp.y" /* yacc.c:1652 */
5033 { (yyval.String) = LSCPSERVER->ListMidiInstrumentMappings((yyvsp[0].Number)); }
5034 #line 5035 "y.tab.c" /* yacc.c:1652 */
5035 break;
5036
5037 case 269:
5038 #line 552 "lscp.y" /* yacc.c:1652 */
5039 { (yyval.String) = LSCPSERVER->ListAllMidiInstrumentMappings(); }
5040 #line 5041 "y.tab.c" /* yacc.c:1652 */
5041 break;
5042
5043 case 270:
5044 #line 553 "lscp.y" /* yacc.c:1652 */
5045 { (yyval.String) = LSCPSERVER->ListMidiInstrumentMaps(); }
5046 #line 5047 "y.tab.c" /* yacc.c:1652 */
5047 break;
5048
5049 case 271:
5050 #line 554 "lscp.y" /* yacc.c:1652 */
5051 { (yyval.String) = LSCPSERVER->ListFxSends((yyvsp[0].Number)); }
5052 #line 5053 "y.tab.c" /* yacc.c:1652 */
5053 break;
5054
5055 case 272:
5056 #line 555 "lscp.y" /* yacc.c:1652 */
5057 { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectories((yyvsp[0].String), true); }
5058 #line 5059 "y.tab.c" /* yacc.c:1652 */
5059 break;
5060
5061 case 273:
5062 #line 556 "lscp.y" /* yacc.c:1652 */
5063 { (yyval.String) = LSCPSERVER->GetDbInstrumentDirectories((yyvsp[0].String)); }
5064 #line 5065 "y.tab.c" /* yacc.c:1652 */
5065 break;
5066
5067 case 274:
5068 #line 557 "lscp.y" /* yacc.c:1652 */
5069 { (yyval.String) = LSCPSERVER->GetDbInstruments((yyvsp[0].String), true); }
5070 #line 5071 "y.tab.c" /* yacc.c:1652 */
5071 break;
5072
5073 case 275:
5074 #line 558 "lscp.y" /* yacc.c:1652 */
5075 { (yyval.String) = LSCPSERVER->GetDbInstruments((yyvsp[0].String)); }
5076 #line 5077 "y.tab.c" /* yacc.c:1652 */
5077 break;
5078
5079 case 276:
5080 #line 559 "lscp.y" /* yacc.c:1652 */
5081 { (yyval.String) = LSCPSERVER->ListFileInstruments((yyvsp[0].String)); }
5082 #line 5083 "y.tab.c" /* yacc.c:1652 */
5083 break;
5084
5085 case 277:
5086 #line 562 "lscp.y" /* yacc.c:1652 */
5087 { (yyval.String) = LSCPSERVER->SendChannelMidiData((yyvsp[-6].String), (yyvsp[-4].Number), (yyvsp[-2].Number), (yyvsp[0].Number)); }
5088 #line 5089 "y.tab.c" /* yacc.c:1652 */
5089 break;
5090
5091 case 278:
5092 #line 565 "lscp.y" /* yacc.c:1652 */
5093 { (yyval.String) = LSCPSERVER->LoadInstrument((yyvsp[-4].String), (yyvsp[-2].Number), (yyvsp[0].Number)); }
5094 #line 5095 "y.tab.c" /* yacc.c:1652 */
5095 break;
5096
5097 case 279:
5098 #line 566 "lscp.y" /* yacc.c:1652 */
5099 { (yyval.String) = LSCPSERVER->LoadInstrument((yyvsp[-4].String), (yyvsp[-2].Number), (yyvsp[0].Number), true); }
5100 #line 5101 "y.tab.c" /* yacc.c:1652 */
5101 break;
5102
5103 case 280:
5104 #line 569 "lscp.y" /* yacc.c:1652 */
5105 { (yyval.String) = LSCPSERVER->SetEngineType((yyvsp[-2].String), (yyvsp[0].Number)); }
5106 #line 5107 "y.tab.c" /* yacc.c:1652 */
5107 break;
5108
5109 case 281:
5110 #line 572 "lscp.y" /* yacc.c:1652 */
5111 { (yyval.LoadMode) = MidiInstrumentMapper::ON_DEMAND; }
5112 #line 5113 "y.tab.c" /* yacc.c:1652 */
5113 break;
5114
5115 case 282:
5116 #line 573 "lscp.y" /* yacc.c:1652 */
5117 { (yyval.LoadMode) = MidiInstrumentMapper::ON_DEMAND_HOLD; }
5118 #line 5119 "y.tab.c" /* yacc.c:1652 */
5119 break;
5120
5121 case 283:
5122 #line 574 "lscp.y" /* yacc.c:1652 */
5123 { (yyval.LoadMode) = MidiInstrumentMapper::PERSISTENT; }
5124 #line 5125 "y.tab.c" /* yacc.c:1652 */
5125 break;
5126
5127 case 290:
5128 #line 593 "lscp.y" /* yacc.c:1652 */
5129 { (yyval.Number) = 16; }
5130 #line 5131 "y.tab.c" /* yacc.c:1652 */
5131 break;
5132
5133 case 297:
5134 #line 612 "lscp.y" /* yacc.c:1652 */
5135 { (yyval.Dotnum) = (yyvsp[0].Number); }
5136 #line 5137 "y.tab.c" /* yacc.c:1652 */
5137 break;
5138
5139 case 303:
5140 #line 630 "lscp.y" /* yacc.c:1652 */
5141 {
5142 #if WIN32
5143 (yyval.String) = (yyvsp[0].UniversalPath).toWindows();
5144 #else
5145 // assuming POSIX
5146 (yyval.String) = (yyvsp[0].UniversalPath).toPosix();
5147 #endif
5148 }
5149 #line 5150 "y.tab.c" /* yacc.c:1652 */
5150 break;
5151
5152 case 304:
5153 #line 640 "lscp.y" /* yacc.c:1652 */
5154 { (yyval.String) = (yyvsp[0].UniversalPath).toDbPath(); }
5155 #line 5156 "y.tab.c" /* yacc.c:1652 */
5156 break;
5157
5158 case 314:
5159 #line 668 "lscp.y" /* yacc.c:1652 */
5160 { (yyval.String) = (yyvsp[-2].String) + "," + (yyvsp[0].String); }
5161 #line 5162 "y.tab.c" /* yacc.c:1652 */
5162 break;
5163
5164 case 315:
5165 #line 672 "lscp.y" /* yacc.c:1652 */
5166 { (yyval.String) = "\'" + (yyvsp[0].String) + "\'"; }
5167 #line 5168 "y.tab.c" /* yacc.c:1652 */
5168 break;
5169
5170 case 316:
5171 #line 673 "lscp.y" /* yacc.c:1652 */
5172 { (yyval.String) = "\'" + (yyvsp[0].String) + "\'"; }
5173 #line 5174 "y.tab.c" /* yacc.c:1652 */
5174 break;
5175
5176 case 317:
5177 #line 674 "lscp.y" /* yacc.c:1652 */
5178 { std::stringstream ss; ss << "\'" << (yyvsp[0].Number) << "\'"; (yyval.String) = ss.str(); }
5179 #line 5180 "y.tab.c" /* yacc.c:1652 */
5180 break;
5181
5182 case 318:
5183 #line 675 "lscp.y" /* yacc.c:1652 */
5184 { std::stringstream ss; ss << "\'" << (yyvsp[0].Dotnum) << "\'"; (yyval.String) = ss.str(); }
5185 #line 5186 "y.tab.c" /* yacc.c:1652 */
5186 break;
5187
5188 case 319:
5189 #line 678 "lscp.y" /* yacc.c:1652 */
5190 { (yyval.KeyValList)[(yyvsp[-2].String)] = (yyvsp[0].String); }
5191 #line 5192 "y.tab.c" /* yacc.c:1652 */
5192 break;
5193
5194 case 320:
5195 #line 679 "lscp.y" /* yacc.c:1652 */
5196 { (yyval.KeyValList) = (yyvsp[-4].KeyValList); (yyval.KeyValList)[(yyvsp[-2].String)] = (yyvsp[0].String); }
5197 #line 5198 "y.tab.c" /* yacc.c:1652 */
5198 break;
5199
5200 case 323:
5201 #line 686 "lscp.y" /* yacc.c:1652 */
5202 { (yyval.String) = "RECURSIVE"; }
5203 #line 5204 "y.tab.c" /* yacc.c:1652 */
5204 break;
5205
5206 case 324:
5207 #line 687 "lscp.y" /* yacc.c:1652 */
5208 { (yyval.String) = "NON_RECURSIVE"; }
5209 #line 5210 "y.tab.c" /* yacc.c:1652 */
5210 break;
5211
5212 case 325:
5213 #line 688 "lscp.y" /* yacc.c:1652 */
5214 { (yyval.String) = "FLAT"; }
5215 #line 5216 "y.tab.c" /* yacc.c:1652 */
5216 break;
5217
5218 case 328:
5219 #line 702 "lscp.y" /* yacc.c:1652 */
5220 { (yyval.Dotnum) = (yyvsp[0].Number); }
5221 #line 5222 "y.tab.c" /* yacc.c:1652 */
5222 break;
5223
5224 case 329:
5225 #line 703 "lscp.y" /* yacc.c:1652 */
5226 { (yyval.Dotnum) = -1; }
5227 #line 5228 "y.tab.c" /* yacc.c:1652 */
5228 break;
5229
5230 case 330:
5231 #line 706 "lscp.y" /* yacc.c:1652 */
5232 { std::stringstream ss((yyvsp[-2].String) + "." + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5233 #line 5234 "y.tab.c" /* yacc.c:1652 */
5234 break;
5235
5236 case 331:
5237 #line 707 "lscp.y" /* yacc.c:1652 */
5238 { std::stringstream ss((yyvsp[-2].String) + "." + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5239 #line 5240 "y.tab.c" /* yacc.c:1652 */
5240 break;
5241
5242 case 332:
5243 #line 708 "lscp.y" /* yacc.c:1652 */
5244 { std::stringstream ss("-" + (yyvsp[-2].String) + "." + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5245 #line 5246 "y.tab.c" /* yacc.c:1652 */
5246 break;
5247
5248 case 333:
5249 #line 711 "lscp.y" /* yacc.c:1652 */
5250 { std::stringstream ss((yyvsp[-2].String) + "." + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5251 #line 5252 "y.tab.c" /* yacc.c:1652 */
5252 break;
5253
5254 case 334:
5255 #line 712 "lscp.y" /* yacc.c:1652 */
5256 { std::stringstream ss((yyvsp[-2].String) + "." + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5257 #line 5258 "y.tab.c" /* yacc.c:1652 */
5258 break;
5259
5260 case 335:
5261 #line 713 "lscp.y" /* yacc.c:1652 */
5262 { std::stringstream ss("-" + (yyvsp[-2].String) + "." + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5263 #line 5264 "y.tab.c" /* yacc.c:1652 */
5264 break;
5265
5266 case 336:
5267 #line 714 "lscp.y" /* yacc.c:1652 */
5268 { std::stringstream ss((yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5269 #line 5270 "y.tab.c" /* yacc.c:1652 */
5270 break;
5271
5272 case 337:
5273 #line 715 "lscp.y" /* yacc.c:1652 */
5274 { std::stringstream ss((yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5275 #line 5276 "y.tab.c" /* yacc.c:1652 */
5276 break;
5277
5278 case 338:
5279 #line 716 "lscp.y" /* yacc.c:1652 */
5280 { std::stringstream ss("-" + (yyvsp[0].String)); ss.imbue(std::locale::classic()); ss >> (yyval.Dotnum); }
5281 #line 5282 "y.tab.c" /* yacc.c:1652 */
5282 break;
5283
5284 case 339:
5285 #line 720 "lscp.y" /* yacc.c:1652 */
5286 { (yyval.String) = (yyvsp[0].Char); }
5287 #line 5288 "y.tab.c" /* yacc.c:1652 */
5288 break;
5289
5290 case 340:
5291 #line 721 "lscp.y" /* yacc.c:1652 */
5292 { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].Char); }
5293 #line 5294 "y.tab.c" /* yacc.c:1652 */
5294 break;
5295
5296 case 341:
5297 #line 724 "lscp.y" /* yacc.c:1652 */
5298 { (yyval.Char) = '0'; }
5299 #line 5300 "y.tab.c" /* yacc.c:1652 */
5300 break;
5301
5302 case 342:
5303 #line 725 "lscp.y" /* yacc.c:1652 */
5304 { (yyval.Char) = '1'; }
5305 #line 5306 "y.tab.c" /* yacc.c:1652 */
5306 break;
5307
5308 case 343:
5309 #line 726 "lscp.y" /* yacc.c:1652 */
5310 { (yyval.Char) = '2'; }
5311 #line 5312 "y.tab.c" /* yacc.c:1652 */
5312 break;
5313
5314 case 344:
5315 #line 727 "lscp.y" /* yacc.c:1652 */
5316 { (yyval.Char) = '3'; }
5317 #line 5318 "y.tab.c" /* yacc.c:1652 */
5318 break;
5319
5320 case 345:
5321 #line 728 "lscp.y" /* yacc.c:1652 */
5322 { (yyval.Char) = '4'; }
5323 #line 5324 "y.tab.c" /* yacc.c:1652 */
5324 break;
5325
5326 case 346:
5327 #line 729 "lscp.y" /* yacc.c:1652 */
5328 { (yyval.Char) = '5'; }
5329 #line 5330 "y.tab.c" /* yacc.c:1652 */
5330 break;
5331
5332 case 347:
5333 #line 730 "lscp.y" /* yacc.c:1652 */
5334 { (yyval.Char) = '6'; }
5335 #line 5336 "y.tab.c" /* yacc.c:1652 */
5336 break;
5337
5338 case 348:
5339 #line 731 "lscp.y" /* yacc.c:1652 */
5340 { (yyval.Char) = '7'; }
5341 #line 5342 "y.tab.c" /* yacc.c:1652 */
5342 break;
5343
5344 case 349:
5345 #line 732 "lscp.y" /* yacc.c:1652 */
5346 { (yyval.Char) = '8'; }
5347 #line 5348 "y.tab.c" /* yacc.c:1652 */
5348 break;
5349
5350 case 350:
5351 #line 733 "lscp.y" /* yacc.c:1652 */
5352 { (yyval.Char) = '9'; }
5353 #line 5354 "y.tab.c" /* yacc.c:1652 */
5354 break;
5355
5356 case 351:
5357 #line 736 "lscp.y" /* yacc.c:1652 */
5358 { (yyval.Char) = '0'; }
5359 #line 5360 "y.tab.c" /* yacc.c:1652 */
5360 break;
5361
5362 case 352:
5363 #line 737 "lscp.y" /* yacc.c:1652 */
5364 { (yyval.Char) = '1'; }
5365 #line 5366 "y.tab.c" /* yacc.c:1652 */
5366 break;
5367
5368 case 353:
5369 #line 738 "lscp.y" /* yacc.c:1652 */
5370 { (yyval.Char) = '2'; }
5371 #line 5372 "y.tab.c" /* yacc.c:1652 */
5372 break;
5373
5374 case 354:
5375 #line 739 "lscp.y" /* yacc.c:1652 */
5376 { (yyval.Char) = '3'; }
5377 #line 5378 "y.tab.c" /* yacc.c:1652 */
5378 break;
5379
5380 case 355:
5381 #line 740 "lscp.y" /* yacc.c:1652 */
5382 { (yyval.Char) = '4'; }
5383 #line 5384 "y.tab.c" /* yacc.c:1652 */
5384 break;
5385
5386 case 356:
5387 #line 741 "lscp.y" /* yacc.c:1652 */
5388 { (yyval.Char) = '5'; }
5389 #line 5390 "y.tab.c" /* yacc.c:1652 */
5390 break;
5391
5392 case 357:
5393 #line 742 "lscp.y" /* yacc.c:1652 */
5394 { (yyval.Char) = '6'; }
5395 #line 5396 "y.tab.c" /* yacc.c:1652 */
5396 break;
5397
5398 case 358:
5399 #line 743 "lscp.y" /* yacc.c:1652 */
5400 { (yyval.Char) = '7'; }
5401 #line 5402 "y.tab.c" /* yacc.c:1652 */
5402 break;
5403
5404 case 359:
5405 #line 746 "lscp.y" /* yacc.c:1652 */
5406 { (yyval.Char) = '0'; }
5407 #line 5408 "y.tab.c" /* yacc.c:1652 */
5408 break;
5409
5410 case 360:
5411 #line 747 "lscp.y" /* yacc.c:1652 */
5412 { (yyval.Char) = '1'; }
5413 #line 5414 "y.tab.c" /* yacc.c:1652 */
5414 break;
5415
5416 case 361:
5417 #line 748 "lscp.y" /* yacc.c:1652 */
5418 { (yyval.Char) = '2'; }
5419 #line 5420 "y.tab.c" /* yacc.c:1652 */
5420 break;
5421
5422 case 362:
5423 #line 749 "lscp.y" /* yacc.c:1652 */
5424 { (yyval.Char) = '3'; }
5425 #line 5426 "y.tab.c" /* yacc.c:1652 */
5426 break;
5427
5428 case 363:
5429 #line 750 "lscp.y" /* yacc.c:1652 */
5430 { (yyval.Char) = '4'; }
5431 #line 5432 "y.tab.c" /* yacc.c:1652 */
5432 break;
5433
5434 case 364:
5435 #line 751 "lscp.y" /* yacc.c:1652 */
5436 { (yyval.Char) = '5'; }
5437 #line 5438 "y.tab.c" /* yacc.c:1652 */
5438 break;
5439
5440 case 365:
5441 #line 752 "lscp.y" /* yacc.c:1652 */
5442 { (yyval.Char) = '6'; }
5443 #line 5444 "y.tab.c" /* yacc.c:1652 */
5444 break;
5445
5446 case 366:
5447 #line 753 "lscp.y" /* yacc.c:1652 */
5448 { (yyval.Char) = '7'; }
5449 #line 5450 "y.tab.c" /* yacc.c:1652 */
5450 break;
5451
5452 case 367:
5453 #line 754 "lscp.y" /* yacc.c:1652 */
5454 { (yyval.Char) = '8'; }
5455 #line 5456 "y.tab.c" /* yacc.c:1652 */
5456 break;
5457
5458 case 368:
5459 #line 755 "lscp.y" /* yacc.c:1652 */
5460 { (yyval.Char) = '9'; }
5461 #line 5462 "y.tab.c" /* yacc.c:1652 */
5462 break;
5463
5464 case 369:
5465 #line 756 "lscp.y" /* yacc.c:1652 */
5466 { (yyval.Char) = 'a'; }
5467 #line 5468 "y.tab.c" /* yacc.c:1652 */
5468 break;
5469
5470 case 370:
5471 #line 757 "lscp.y" /* yacc.c:1652 */
5472 { (yyval.Char) = 'b'; }
5473 #line 5474 "y.tab.c" /* yacc.c:1652 */
5474 break;
5475
5476 case 371:
5477 #line 758 "lscp.y" /* yacc.c:1652 */
5478 { (yyval.Char) = 'c'; }
5479 #line 5480 "y.tab.c" /* yacc.c:1652 */
5480 break;
5481
5482 case 372:
5483 #line 759 "lscp.y" /* yacc.c:1652 */
5484 { (yyval.Char) = 'd'; }
5485 #line 5486 "y.tab.c" /* yacc.c:1652 */
5486 break;
5487
5488 case 373:
5489 #line 760 "lscp.y" /* yacc.c:1652 */
5490 { (yyval.Char) = 'e'; }
5491 #line 5492 "y.tab.c" /* yacc.c:1652 */
5492 break;
5493
5494 case 374:
5495 #line 761 "lscp.y" /* yacc.c:1652 */
5496 { (yyval.Char) = 'f'; }
5497 #line 5498 "y.tab.c" /* yacc.c:1652 */
5498 break;
5499
5500 case 375:
5501 #line 762 "lscp.y" /* yacc.c:1652 */
5502 { (yyval.Char) = 'a'; }
5503 #line 5504 "y.tab.c" /* yacc.c:1652 */
5504 break;
5505
5506 case 376:
5507 #line 763 "lscp.y" /* yacc.c:1652 */
5508 { (yyval.Char) = 'b'; }
5509 #line 5510 "y.tab.c" /* yacc.c:1652 */
5510 break;
5511
5512 case 377:
5513 #line 764 "lscp.y" /* yacc.c:1652 */
5514 { (yyval.Char) = 'c'; }
5515 #line 5516 "y.tab.c" /* yacc.c:1652 */
5516 break;
5517
5518 case 378:
5519 #line 765 "lscp.y" /* yacc.c:1652 */
5520 { (yyval.Char) = 'd'; }
5521 #line 5522 "y.tab.c" /* yacc.c:1652 */
5522 break;
5523
5524 case 379:
5525 #line 766 "lscp.y" /* yacc.c:1652 */
5526 { (yyval.Char) = 'e'; }
5527 #line 5528 "y.tab.c" /* yacc.c:1652 */
5528 break;
5529
5530 case 380:
5531 #line 767 "lscp.y" /* yacc.c:1652 */
5532 { (yyval.Char) = 'f'; }
5533 #line 5534 "y.tab.c" /* yacc.c:1652 */
5534 break;
5535
5536 case 381:
5537 #line 770 "lscp.y" /* yacc.c:1652 */
5538 { (yyval.Number) = atoi(String(1, (yyvsp[0].Char)).c_str()); }
5539 #line 5540 "y.tab.c" /* yacc.c:1652 */
5540 break;
5541
5542 case 382:
5543 #line 771 "lscp.y" /* yacc.c:1652 */
5544 { (yyval.Number) = atoi(String(String("1") + (yyvsp[0].String)).c_str()); }
5545 #line 5546 "y.tab.c" /* yacc.c:1652 */
5546 break;
5547
5548 case 383:
5549 #line 772 "lscp.y" /* yacc.c:1652 */
5550 { (yyval.Number) = atoi(String(String("2") + (yyvsp[0].String)).c_str()); }
5551 #line 5552 "y.tab.c" /* yacc.c:1652 */
5552 break;
5553
5554 case 384:
5555 #line 773 "lscp.y" /* yacc.c:1652 */
5556 { (yyval.Number) = atoi(String(String("3") + (yyvsp[0].String)).c_str()); }
5557 #line 5558 "y.tab.c" /* yacc.c:1652 */
5558 break;
5559
5560 case 385:
5561 #line 774 "lscp.y" /* yacc.c:1652 */
5562 { (yyval.Number) = atoi(String(String("4") + (yyvsp[0].String)).c_str()); }
5563 #line 5564 "y.tab.c" /* yacc.c:1652 */
5564 break;
5565
5566 case 386:
5567 #line 775 "lscp.y" /* yacc.c:1652 */
5568 { (yyval.Number) = atoi(String(String("5") + (yyvsp[0].String)).c_str()); }
5569 #line 5570 "y.tab.c" /* yacc.c:1652 */
5570 break;
5571
5572 case 387:
5573 #line 776 "lscp.y" /* yacc.c:1652 */
5574 { (yyval.Number) = atoi(String(String("6") + (yyvsp[0].String)).c_str()); }
5575 #line 5576 "y.tab.c" /* yacc.c:1652 */
5576 break;
5577
5578 case 388:
5579 #line 777 "lscp.y" /* yacc.c:1652 */
5580 { (yyval.Number) = atoi(String(String("7") + (yyvsp[0].String)).c_str()); }
5581 #line 5582 "y.tab.c" /* yacc.c:1652 */
5582 break;
5583
5584 case 389:
5585 #line 778 "lscp.y" /* yacc.c:1652 */
5586 { (yyval.Number) = atoi(String(String("8") + (yyvsp[0].String)).c_str()); }
5587 #line 5588 "y.tab.c" /* yacc.c:1652 */
5588 break;
5589
5590 case 390:
5591 #line 779 "lscp.y" /* yacc.c:1652 */
5592 { (yyval.Number) = atoi(String(String("9") + (yyvsp[0].String)).c_str()); }
5593 #line 5594 "y.tab.c" /* yacc.c:1652 */
5594 break;
5595
5596 case 391:
5597 #line 782 "lscp.y" /* yacc.c:1652 */
5598 { (yyval.UniversalPath) = (yyvsp[-1].UniversalPath); }
5599 #line 5600 "y.tab.c" /* yacc.c:1652 */
5600 break;
5601
5602 case 392:
5603 #line 783 "lscp.y" /* yacc.c:1652 */
5604 { (yyval.UniversalPath) = (yyvsp[-1].UniversalPath); }
5605 #line 5606 "y.tab.c" /* yacc.c:1652 */
5606 break;
5607
5608 case 393:
5609 #line 786 "lscp.y" /* yacc.c:1652 */
5610 { (yyval.UniversalPath) = (yyvsp[-1].UniversalPath) + (yyvsp[0].UniversalPath); }
5611 #line 5612 "y.tab.c" /* yacc.c:1652 */
5612 break;
5613
5614 case 394:
5615 #line 789 "lscp.y" /* yacc.c:1652 */
5616 { (yyval.UniversalPath) = Path(); }
5617 #line 5618 "y.tab.c" /* yacc.c:1652 */
5618 break;
5619
5620 case 395:
5621 #line 790 "lscp.y" /* yacc.c:1652 */
5622 { Path p; p.setDrive((yyvsp[-2].Char)); (yyval.UniversalPath) = p; }
5623 #line 5624 "y.tab.c" /* yacc.c:1652 */
5624 break;
5625
5626 case 396:
5627 #line 793 "lscp.y" /* yacc.c:1652 */
5628 { (yyval.UniversalPath) = Path(); }
5629 #line 5630 "y.tab.c" /* yacc.c:1652 */
5630 break;
5631
5632 case 397:
5633 #line 794 "lscp.y" /* yacc.c:1652 */
5634 { (yyval.UniversalPath) = (yyvsp[-1].UniversalPath); }
5635 #line 5636 "y.tab.c" /* yacc.c:1652 */
5636 break;
5637
5638 case 398:
5639 #line 795 "lscp.y" /* yacc.c:1652 */
5640 { Path p; p.appendNode((yyvsp[0].String)); (yyval.UniversalPath) = (yyvsp[-1].UniversalPath) + p; }
5641 #line 5642 "y.tab.c" /* yacc.c:1652 */
5642 break;
5643
5644 case 399:
5645 #line 798 "lscp.y" /* yacc.c:1652 */
5646 { (yyval.String) = (yyvsp[-1].String); }
5647 #line 5648 "y.tab.c" /* yacc.c:1652 */
5648 break;
5649
5650 case 400:
5651 #line 799 "lscp.y" /* yacc.c:1652 */
5652 { (yyval.String) = (yyvsp[-1].String); }
5653 #line 5654 "y.tab.c" /* yacc.c:1652 */
5654 break;
5655
5656 case 401:
5657 #line 802 "lscp.y" /* yacc.c:1652 */
5658 { (yyval.String) = (yyvsp[-1].String); }
5659 #line 5660 "y.tab.c" /* yacc.c:1652 */
5660 break;
5661
5662 case 402:
5663 #line 803 "lscp.y" /* yacc.c:1652 */
5664 { (yyval.String) = (yyvsp[-1].String); }
5665 #line 5666 "y.tab.c" /* yacc.c:1652 */
5666 break;
5667
5668 case 403:
5669 #line 806 "lscp.y" /* yacc.c:1652 */
5670 { (yyval.String) = " "; }
5671 #line 5672 "y.tab.c" /* yacc.c:1652 */
5672 break;
5673
5674 case 405:
5675 #line 808 "lscp.y" /* yacc.c:1652 */
5676 { (yyval.String) = (yyvsp[-1].String) + " "; }
5677 #line 5678 "y.tab.c" /* yacc.c:1652 */
5678 break;
5679
5680 case 406:
5681 #line 809 "lscp.y" /* yacc.c:1652 */
5682 { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].String); }
5683 #line 5684 "y.tab.c" /* yacc.c:1652 */
5684 break;
5685
5686 case 407:
5687 #line 813 "lscp.y" /* yacc.c:1652 */
5688 { (yyval.String) = " "; }
5689 #line 5690 "y.tab.c" /* yacc.c:1652 */
5690 break;
5691
5692 case 409:
5693 #line 815 "lscp.y" /* yacc.c:1652 */
5694 { (yyval.String) = (yyvsp[-1].String) + " "; }
5695 #line 5696 "y.tab.c" /* yacc.c:1652 */
5696 break;
5697
5698 case 410:
5699 #line 816 "lscp.y" /* yacc.c:1652 */
5700 { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].String); }
5701 #line 5702 "y.tab.c" /* yacc.c:1652 */
5702 break;
5703
5704 case 411:
5705 #line 819 "lscp.y" /* yacc.c:1652 */
5706 { (yyval.String) = "/"; }
5707 #line 5708 "y.tab.c" /* yacc.c:1652 */
5708 break;
5709
5710 case 413:
5711 #line 821 "lscp.y" /* yacc.c:1652 */
5712 { (yyval.String) = (yyvsp[-1].String) + "/"; }
5713 #line 5714 "y.tab.c" /* yacc.c:1652 */
5714 break;
5715
5716 case 414:
5717 #line 822 "lscp.y" /* yacc.c:1652 */
5718 { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].String); }
5719 #line 5720 "y.tab.c" /* yacc.c:1652 */
5720 break;
5721
5722 case 415:
5723 #line 825 "lscp.y" /* yacc.c:1652 */
5724 { std::string s; s = (yyvsp[0].Char); (yyval.String) = s; }
5725 #line 5726 "y.tab.c" /* yacc.c:1652 */
5726 break;
5727
5728 case 416:
5729 #line 826 "lscp.y" /* yacc.c:1652 */
5730 { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].Char); }
5731 #line 5732 "y.tab.c" /* yacc.c:1652 */
5732 break;
5733
5734 case 417:
5735 #line 829 "lscp.y" /* yacc.c:1652 */
5736 { std::string s; s = (yyvsp[0].Char); (yyval.String) = s; }
5737 #line 5738 "y.tab.c" /* yacc.c:1652 */
5738 break;
5739
5740 case 418:
5741 #line 830 "lscp.y" /* yacc.c:1652 */
5742 { std::string s; s = (yyvsp[0].Char); (yyval.String) = s; }
5743 #line 5744 "y.tab.c" /* yacc.c:1652 */
5744 break;
5745
5746 case 419:
5747 #line 831 "lscp.y" /* yacc.c:1652 */
5748 { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].Char); }
5749 #line 5750 "y.tab.c" /* yacc.c:1652 */
5750 break;
5751
5752 case 420:
5753 #line 832 "lscp.y" /* yacc.c:1652 */
5754 { (yyval.String) = (yyvsp[-1].String) + (yyvsp[0].Char); }
5755 #line 5756 "y.tab.c" /* yacc.c:1652 */
5756 break;
5757
5758 case 422:
5759 #line 837 "lscp.y" /* yacc.c:1652 */
5760 { (yyval.Char) = '\\'; }
5761 #line 5762 "y.tab.c" /* yacc.c:1652 */
5762 break;
5763
5764 case 423:
5765 #line 838 "lscp.y" /* yacc.c:1652 */
5766 { (yyval.Char) = '/'; }
5767 #line 5768 "y.tab.c" /* yacc.c:1652 */
5768 break;
5769
5770 case 424:
5771 #line 842 "lscp.y" /* yacc.c:1652 */
5772 { (yyval.Char) = 'A'; }
5773 #line 5774 "y.tab.c" /* yacc.c:1652 */
5774 break;
5775
5776 case 425:
5777 #line 842 "lscp.y" /* yacc.c:1652 */
5778 { (yyval.Char) = 'B'; }
5779 #line 5780 "y.tab.c" /* yacc.c:1652 */
5780 break;
5781
5782 case 426:
5783 #line 842 "lscp.y" /* yacc.c:1652 */
5784 { (yyval.Char) = 'C'; }
5785 #line 5786 "y.tab.c" /* yacc.c:1652 */
5786 break;
5787
5788 case 427:
5789 #line 842 "lscp.y" /* yacc.c:1652 */
5790 { (yyval.Char) = 'D'; }
5791 #line 5792 "y.tab.c" /* yacc.c:1652 */
5792 break;
5793
5794 case 428:
5795 #line 842 "lscp.y" /* yacc.c:1652 */
5796 { (yyval.Char) = 'E'; }
5797 #line 5798 "y.tab.c" /* yacc.c:1652 */
5798 break;
5799
5800 case 429:
5801 #line 842 "lscp.y" /* yacc.c:1652 */
5802 { (yyval.Char) = 'F'; }
5803 #line 5804 "y.tab.c" /* yacc.c:1652 */
5804 break;
5805
5806 case 430:
5807 #line 842 "lscp.y" /* yacc.c:1652 */
5808 { (yyval.Char) = 'G'; }
5809 #line 5810 "y.tab.c" /* yacc.c:1652 */
5810 break;
5811
5812 case 431:
5813 #line 842 "lscp.y" /* yacc.c:1652 */
5814 { (yyval.Char) = 'H'; }
5815 #line 5816 "y.tab.c" /* yacc.c:1652 */
5816 break;
5817
5818 case 432:
5819 #line 842 "lscp.y" /* yacc.c:1652 */
5820 { (yyval.Char) = 'I'; }
5821 #line 5822 "y.tab.c" /* yacc.c:1652 */
5822 break;
5823
5824 case 433:
5825 #line 842 "lscp.y" /* yacc.c:1652 */
5826 { (yyval.Char) = 'J'; }
5827 #line 5828 "y.tab.c" /* yacc.c:1652 */
5828 break;
5829
5830 case 434:
5831 #line 842 "lscp.y" /* yacc.c:1652 */
5832 { (yyval.Char) = 'K'; }
5833 #line 5834 "y.tab.c" /* yacc.c:1652 */
5834 break;
5835
5836 case 435:
5837 #line 842 "lscp.y" /* yacc.c:1652 */
5838 { (yyval.Char) = 'L'; }
5839 #line 5840 "y.tab.c" /* yacc.c:1652 */
5840 break;
5841
5842 case 436:
5843 #line 842 "lscp.y" /* yacc.c:1652 */
5844 { (yyval.Char) = 'M'; }
5845 #line 5846 "y.tab.c" /* yacc.c:1652 */
5846 break;
5847
5848 case 437:
5849 #line 842 "lscp.y" /* yacc.c:1652 */
5850 { (yyval.Char) = 'N'; }
5851 #line 5852 "y.tab.c" /* yacc.c:1652 */
5852 break;
5853
5854 case 438:
5855 #line 842 "lscp.y" /* yacc.c:1652 */
5856 { (yyval.Char) = 'O'; }
5857 #line 5858 "y.tab.c" /* yacc.c:1652 */
5858 break;
5859
5860 case 439:
5861 #line 842 "lscp.y" /* yacc.c:1652 */
5862 { (yyval.Char) = 'P'; }
5863 #line 5864 "y.tab.c" /* yacc.c:1652 */
5864 break;
5865
5866 case 440:
5867 #line 842 "lscp.y" /* yacc.c:1652 */
5868 { (yyval.Char) = 'Q'; }
5869 #line 5870 "y.tab.c" /* yacc.c:1652 */
5870 break;
5871
5872 case 441:
5873 #line 842 "lscp.y" /* yacc.c:1652 */
5874 { (yyval.Char) = 'R'; }
5875 #line 5876 "y.tab.c" /* yacc.c:1652 */
5876 break;
5877
5878 case 442:
5879 #line 842 "lscp.y" /* yacc.c:1652 */
5880 { (yyval.Char) = 'S'; }
5881 #line 5882 "y.tab.c" /* yacc.c:1652 */
5882 break;
5883
5884 case 443:
5885 #line 842 "lscp.y" /* yacc.c:1652 */
5886 { (yyval.Char) = 'T'; }
5887 #line 5888 "y.tab.c" /* yacc.c:1652 */
5888 break;
5889
5890 case 444:
5891 #line 842 "lscp.y" /* yacc.c:1652 */
5892 { (yyval.Char) = 'U'; }
5893 #line 5894 "y.tab.c" /* yacc.c:1652 */
5894 break;
5895
5896 case 445:
5897 #line 842 "lscp.y" /* yacc.c:1652 */
5898 { (yyval.Char) = 'V'; }
5899 #line 5900 "y.tab.c" /* yacc.c:1652 */
5900 break;
5901
5902 case 446:
5903 #line 842 "lscp.y" /* yacc.c:1652 */
5904 { (yyval.Char) = 'W'; }
5905 #line 5906 "y.tab.c" /* yacc.c:1652 */
5906 break;
5907
5908 case 447:
5909 #line 842 "lscp.y" /* yacc.c:1652 */
5910 { (yyval.Char) = 'X'; }
5911 #line 5912 "y.tab.c" /* yacc.c:1652 */
5912 break;
5913
5914 case 448:
5915 #line 842 "lscp.y" /* yacc.c:1652 */
5916 { (yyval.Char) = 'Y'; }
5917 #line 5918 "y.tab.c" /* yacc.c:1652 */
5918 break;
5919
5920 case 449:
5921 #line 842 "lscp.y" /* yacc.c:1652 */
5922 { (yyval.Char) = 'Z'; }
5923 #line 5924 "y.tab.c" /* yacc.c:1652 */
5924 break;
5925
5926 case 450:
5927 #line 843 "lscp.y" /* yacc.c:1652 */
5928 { (yyval.Char) = 'a'; }
5929 #line 5930 "y.tab.c" /* yacc.c:1652 */
5930 break;
5931
5932 case 451:
5933 #line 843 "lscp.y" /* yacc.c:1652 */
5934 { (yyval.Char) = 'b'; }
5935 #line 5936 "y.tab.c" /* yacc.c:1652 */
5936 break;
5937
5938 case 452:
5939 #line 843 "lscp.y" /* yacc.c:1652 */
5940 { (yyval.Char) = 'c'; }
5941 #line 5942 "y.tab.c" /* yacc.c:1652 */
5942 break;
5943
5944 case 453:
5945 #line 843 "lscp.y" /* yacc.c:1652 */
5946 { (yyval.Char) = 'd'; }
5947 #line 5948 "y.tab.c" /* yacc.c:1652 */
5948 break;
5949
5950 case 454:
5951 #line 843 "lscp.y" /* yacc.c:1652 */
5952 { (yyval.Char) = 'e'; }
5953 #line 5954 "y.tab.c" /* yacc.c:1652 */
5954 break;
5955
5956 case 455:
5957 #line 843 "lscp.y" /* yacc.c:1652 */
5958 { (yyval.Char) = 'f'; }
5959 #line 5960 "y.tab.c" /* yacc.c:1652 */
5960 break;
5961
5962 case 456:
5963 #line 843 "lscp.y" /* yacc.c:1652 */
5964 { (yyval.Char) = 'g'; }
5965 #line 5966 "y.tab.c" /* yacc.c:1652 */
5966 break;
5967
5968 case 457:
5969 #line 843 "lscp.y" /* yacc.c:1652 */
5970 { (yyval.Char) = 'h'; }
5971 #line 5972 "y.tab.c" /* yacc.c:1652 */
5972 break;
5973
5974 case 458:
5975 #line 843 "lscp.y" /* yacc.c:1652 */
5976 { (yyval.Char) = 'i'; }
5977 #line 5978 "y.tab.c" /* yacc.c:1652 */
5978 break;
5979
5980 case 459:
5981 #line 843 "lscp.y" /* yacc.c:1652 */
5982 { (yyval.Char) = 'j'; }
5983 #line 5984 "y.tab.c" /* yacc.c:1652 */
5984 break;
5985
5986 case 460:
5987 #line 843 "lscp.y" /* yacc.c:1652 */
5988 { (yyval.Char) = 'k'; }
5989 #line 5990 "y.tab.c" /* yacc.c:1652 */
5990 break;
5991
5992 case 461:
5993 #line 843 "lscp.y" /* yacc.c:1652 */
5994 { (yyval.Char) = 'l'; }
5995 #line 5996 "y.tab.c" /* yacc.c:1652 */
5996 break;
5997
5998 case 462:
5999 #line 843 "lscp.y" /* yacc.c:1652 */
6000 { (yyval.Char) = 'm'; }
6001 #line 6002 "y.tab.c" /* yacc.c:1652 */
6002 break;
6003
6004 case 463:
6005 #line 843 "lscp.y" /* yacc.c:1652 */
6006 { (yyval.Char) = 'n'; }
6007 #line 6008 "y.tab.c" /* yacc.c:1652 */
6008 break;
6009
6010 case 464:
6011 #line 843 "lscp.y" /* yacc.c:1652 */
6012 { (yyval.Char) = 'o'; }
6013 #line 6014 "y.tab.c" /* yacc.c:1652 */
6014 break;
6015
6016 case 465:
6017 #line 843 "lscp.y" /* yacc.c:1652 */
6018 { (yyval.Char) = 'p'; }
6019 #line 6020 "y.tab.c" /* yacc.c:1652 */
6020 break;
6021
6022 case 466:
6023 #line 843 "lscp.y" /* yacc.c:1652 */
6024 { (yyval.Char) = 'q'; }
6025 #line 6026 "y.tab.c" /* yacc.c:1652 */
6026 break;
6027
6028 case 467:
6029 #line 843 "lscp.y" /* yacc.c:1652 */
6030 { (yyval.Char) = 'r'; }
6031 #line 6032 "y.tab.c" /* yacc.c:1652 */
6032 break;
6033
6034 case 468:
6035 #line 843 "lscp.y" /* yacc.c:1652 */
6036 { (yyval.Char) = 's'; }
6037 #line 6038 "y.tab.c" /* yacc.c:1652 */
6038 break;
6039
6040 case 469:
6041 #line 843 "lscp.y" /* yacc.c:1652 */
6042 { (yyval.Char) = 't'; }
6043 #line 6044 "y.tab.c" /* yacc.c:1652 */
6044 break;
6045
6046 case 470:
6047 #line 843 "lscp.y" /* yacc.c:1652 */
6048 { (yyval.Char) = 'u'; }
6049 #line 6050 "y.tab.c" /* yacc.c:1652 */
6050 break;
6051
6052 case 471:
6053 #line 843 "lscp.y" /* yacc.c:1652 */
6054 { (yyval.Char) = 'v'; }
6055 #line 6056 "y.tab.c" /* yacc.c:1652 */
6056 break;
6057
6058 case 472:
6059 #line 843 "lscp.y" /* yacc.c:1652 */
6060 { (yyval.Char) = 'w'; }
6061 #line 6062 "y.tab.c" /* yacc.c:1652 */
6062 break;
6063
6064 case 473:
6065 #line 843 "lscp.y" /* yacc.c:1652 */
6066 { (yyval.Char) = 'x'; }
6067 #line 6068 "y.tab.c" /* yacc.c:1652 */
6068 break;
6069
6070 case 474:
6071 #line 843 "lscp.y" /* yacc.c:1652 */
6072 { (yyval.Char) = 'y'; }
6073 #line 6074 "y.tab.c" /* yacc.c:1652 */
6074 break;
6075
6076 case 475:
6077 #line 843 "lscp.y" /* yacc.c:1652 */
6078 { (yyval.Char) = 'z'; }
6079 #line 6080 "y.tab.c" /* yacc.c:1652 */
6080 break;
6081
6082 case 477:
6083 #line 848 "lscp.y" /* yacc.c:1652 */
6084 { (yyval.Char) = '0'; }
6085 #line 6086 "y.tab.c" /* yacc.c:1652 */
6086 break;
6087
6088 case 478:
6089 #line 848 "lscp.y" /* yacc.c:1652 */
6090 { (yyval.Char) = '1'; }
6091 #line 6092 "y.tab.c" /* yacc.c:1652 */
6092 break;
6093
6094 case 479:
6095 #line 848 "lscp.y" /* yacc.c:1652 */
6096 { (yyval.Char) = '2'; }
6097 #line 6098 "y.tab.c" /* yacc.c:1652 */
6098 break;
6099
6100 case 480:
6101 #line 848 "lscp.y" /* yacc.c:1652 */
6102 { (yyval.Char) = '3'; }
6103 #line 6104 "y.tab.c" /* yacc.c:1652 */
6104 break;
6105
6106 case 481:
6107 #line 848 "lscp.y" /* yacc.c:1652 */
6108 { (yyval.Char) = '4'; }
6109 #line 6110 "y.tab.c" /* yacc.c:1652 */
6110 break;
6111
6112 case 482:
6113 #line 848 "lscp.y" /* yacc.c:1652 */
6114 { (yyval.Char) = '5'; }
6115 #line 6116 "y.tab.c" /* yacc.c:1652 */
6116 break;
6117
6118 case 483:
6119 #line 848 "lscp.y" /* yacc.c:1652 */
6120 { (yyval.Char) = '6'; }
6121 #line 6122 "y.tab.c" /* yacc.c:1652 */
6122 break;
6123
6124 case 484:
6125 #line 848 "lscp.y" /* yacc.c:1652 */
6126 { (yyval.Char) = '7'; }
6127 #line 6128 "y.tab.c" /* yacc.c:1652 */
6128 break;
6129
6130 case 485:
6131 #line 848 "lscp.y" /* yacc.c:1652 */
6132 { (yyval.Char) = '8'; }
6133 #line 6134 "y.tab.c" /* yacc.c:1652 */
6134 break;
6135
6136 case 486:
6137 #line 848 "lscp.y" /* yacc.c:1652 */
6138 { (yyval.Char) = '9'; }
6139 #line 6140 "y.tab.c" /* yacc.c:1652 */
6140 break;
6141
6142 case 487:
6143 #line 849 "lscp.y" /* yacc.c:1652 */
6144 { (yyval.Char) = '!'; }
6145 #line 6146 "y.tab.c" /* yacc.c:1652 */
6146 break;
6147
6148 case 488:
6149 #line 849 "lscp.y" /* yacc.c:1652 */
6150 { (yyval.Char) = '#'; }
6151 #line 6152 "y.tab.c" /* yacc.c:1652 */
6152 break;
6153
6154 case 489:
6155 #line 849 "lscp.y" /* yacc.c:1652 */
6156 { (yyval.Char) = '$'; }
6157 #line 6158 "y.tab.c" /* yacc.c:1652 */
6158 break;
6159
6160 case 490:
6161 #line 849 "lscp.y" /* yacc.c:1652 */
6162 { (yyval.Char) = '%'; }
6163 #line 6164 "y.tab.c" /* yacc.c:1652 */
6164 break;
6165
6166 case 491:
6167 #line 849 "lscp.y" /* yacc.c:1652 */
6168 { (yyval.Char) = '&'; }
6169 #line 6170 "y.tab.c" /* yacc.c:1652 */
6170 break;
6171
6172 case 492:
6173 #line 849 "lscp.y" /* yacc.c:1652 */
6174 { (yyval.Char) = '('; }
6175 #line 6176 "y.tab.c" /* yacc.c:1652 */
6176 break;
6177
6178 case 493:
6179 #line 849 "lscp.y" /* yacc.c:1652 */
6180 { (yyval.Char) = ')'; }
6181 #line 6182 "y.tab.c" /* yacc.c:1652 */
6182 break;
6183
6184 case 494:
6185 #line 849 "lscp.y" /* yacc.c:1652 */
6186 { (yyval.Char) = '*'; }
6187 #line 6188 "y.tab.c" /* yacc.c:1652 */
6188 break;
6189
6190 case 495:
6191 #line 849 "lscp.y" /* yacc.c:1652 */
6192 { (yyval.Char) = '+'; }
6193 #line 6194 "y.tab.c" /* yacc.c:1652 */
6194 break;
6195
6196 case 496:
6197 #line 849 "lscp.y" /* yacc.c:1652 */
6198 { (yyval.Char) = '-'; }
6199 #line 6200 "y.tab.c" /* yacc.c:1652 */
6200 break;
6201
6202 case 497:
6203 #line 849 "lscp.y" /* yacc.c:1652 */
6204 { (yyval.Char) = '.'; }
6205 #line 6206 "y.tab.c" /* yacc.c:1652 */
6206 break;
6207
6208 case 498:
6209 #line 849 "lscp.y" /* yacc.c:1652 */
6210 { (yyval.Char) = ','; }
6211 #line 6212 "y.tab.c" /* yacc.c:1652 */
6212 break;
6213
6214 case 499:
6215 #line 850 "lscp.y" /* yacc.c:1652 */
6216 { (yyval.Char) = ':'; }
6217 #line 6218 "y.tab.c" /* yacc.c:1652 */
6218 break;
6219
6220 case 500:
6221 #line 850 "lscp.y" /* yacc.c:1652 */
6222 { (yyval.Char) = ';'; }
6223 #line 6224 "y.tab.c" /* yacc.c:1652 */
6224 break;
6225
6226 case 501:
6227 #line 850 "lscp.y" /* yacc.c:1652 */
6228 { (yyval.Char) = '<'; }
6229 #line 6230 "y.tab.c" /* yacc.c:1652 */
6230 break;
6231
6232 case 502:
6233 #line 850 "lscp.y" /* yacc.c:1652 */
6234 { (yyval.Char) = '='; }
6235 #line 6236 "y.tab.c" /* yacc.c:1652 */
6236 break;
6237
6238 case 503:
6239 #line 850 "lscp.y" /* yacc.c:1652 */
6240 { (yyval.Char) = '>'; }
6241 #line 6242 "y.tab.c" /* yacc.c:1652 */
6242 break;
6243
6244 case 504:
6245 #line 850 "lscp.y" /* yacc.c:1652 */
6246 { (yyval.Char) = '?'; }
6247 #line 6248 "y.tab.c" /* yacc.c:1652 */
6248 break;
6249
6250 case 505:
6251 #line 850 "lscp.y" /* yacc.c:1652 */
6252 { (yyval.Char) = '@'; }
6253 #line 6254 "y.tab.c" /* yacc.c:1652 */
6254 break;
6255
6256 case 506:
6257 #line 851 "lscp.y" /* yacc.c:1652 */
6258 { (yyval.Char) = '['; }
6259 #line 6260 "y.tab.c" /* yacc.c:1652 */
6260 break;
6261
6262 case 507:
6263 #line 851 "lscp.y" /* yacc.c:1652 */
6264 { (yyval.Char) = ']'; }
6265 #line 6266 "y.tab.c" /* yacc.c:1652 */
6266 break;
6267
6268 case 508:
6269 #line 851 "lscp.y" /* yacc.c:1652 */
6270 { (yyval.Char) = '^'; }
6271 #line 6272 "y.tab.c" /* yacc.c:1652 */
6272 break;
6273
6274 case 509:
6275 #line 851 "lscp.y" /* yacc.c:1652 */
6276 { (yyval.Char) = '_'; }
6277 #line 6278 "y.tab.c" /* yacc.c:1652 */
6278 break;
6279
6280 case 510:
6281 #line 852 "lscp.y" /* yacc.c:1652 */
6282 { (yyval.Char) = '{'; }
6283 #line 6284 "y.tab.c" /* yacc.c:1652 */
6284 break;
6285
6286 case 511:
6287 #line 852 "lscp.y" /* yacc.c:1652 */
6288 { (yyval.Char) = '|'; }
6289 #line 6290 "y.tab.c" /* yacc.c:1652 */
6290 break;
6291
6292 case 512:
6293 #line 852 "lscp.y" /* yacc.c:1652 */
6294 { (yyval.Char) = '}'; }
6295 #line 6296 "y.tab.c" /* yacc.c:1652 */
6296 break;
6297
6298 case 513:
6299 #line 852 "lscp.y" /* yacc.c:1652 */
6300 { (yyval.Char) = '~'; }
6301 #line 6302 "y.tab.c" /* yacc.c:1652 */
6302 break;
6303
6304 case 515:
6305 #line 856 "lscp.y" /* yacc.c:1652 */
6306 { (yyval.Char) = '\''; }
6307 #line 6308 "y.tab.c" /* yacc.c:1652 */
6308 break;
6309
6310 case 516:
6311 #line 857 "lscp.y" /* yacc.c:1652 */
6312 { (yyval.Char) = '\"'; }
6313 #line 6314 "y.tab.c" /* yacc.c:1652 */
6314 break;
6315
6316 case 517:
6317 #line 858 "lscp.y" /* yacc.c:1652 */
6318 { (yyval.Char) = '\\'; }
6319 #line 6320 "y.tab.c" /* yacc.c:1652 */
6320 break;
6321
6322 case 518:
6323 #line 859 "lscp.y" /* yacc.c:1652 */
6324 { (yyval.Char) = '/'; }
6325 #line 6326 "y.tab.c" /* yacc.c:1652 */
6326 break;
6327
6328 case 519:
6329 #line 860 "lscp.y" /* yacc.c:1652 */
6330 { (yyval.Char) = '\n'; }
6331 #line 6332 "y.tab.c" /* yacc.c:1652 */
6332 break;
6333
6334 case 520:
6335 #line 861 "lscp.y" /* yacc.c:1652 */
6336 { (yyval.Char) = '\r'; }
6337 #line 6338 "y.tab.c" /* yacc.c:1652 */
6338 break;
6339
6340 case 521:
6341 #line 862 "lscp.y" /* yacc.c:1652 */
6342 { (yyval.Char) = '\f'; }
6343 #line 6344 "y.tab.c" /* yacc.c:1652 */
6344 break;
6345
6346 case 522:
6347 #line 863 "lscp.y" /* yacc.c:1652 */
6348 { (yyval.Char) = '\t'; }
6349 #line 6350 "y.tab.c" /* yacc.c:1652 */
6350 break;
6351
6352 case 523:
6353 #line 864 "lscp.y" /* yacc.c:1652 */
6354 { (yyval.Char) = '\v'; }
6355 #line 6356 "y.tab.c" /* yacc.c:1652 */
6356 break;
6357
6358 case 526:
6359 #line 869 "lscp.y" /* yacc.c:1652 */
6360 { (yyval.Char) = (char) octalsToNumber((yyvsp[0].Char)); }
6361 #line 6362 "y.tab.c" /* yacc.c:1652 */
6362 break;
6363
6364 case 527:
6365 #line 870 "lscp.y" /* yacc.c:1652 */
6366 { (yyval.Char) = (char) octalsToNumber((yyvsp[0].Char),(yyvsp[-1].Char)); }
6367 #line 6368 "y.tab.c" /* yacc.c:1652 */
6368 break;
6369
6370 case 528:
6371 #line 871 "lscp.y" /* yacc.c:1652 */
6372 { (yyval.Char) = (char) octalsToNumber((yyvsp[0].Char),(yyvsp[-1].Char),(yyvsp[-2].Char)); }
6373 #line 6374 "y.tab.c" /* yacc.c:1652 */
6374 break;
6375
6376 case 529:
6377 #line 874 "lscp.y" /* yacc.c:1652 */
6378 { (yyval.Char) = (char) hexsToNumber((yyvsp[0].Char)); }
6379 #line 6380 "y.tab.c" /* yacc.c:1652 */
6380 break;
6381
6382 case 530:
6383 #line 875 "lscp.y" /* yacc.c:1652 */
6384 { (yyval.Char) = (char) hexsToNumber((yyvsp[0].Char),(yyvsp[-1].Char)); }
6385 #line 6386 "y.tab.c" /* yacc.c:1652 */
6386 break;
6387
6388
6389 #line 6390 "y.tab.c" /* yacc.c:1652 */
6390 default: break;
6391 }
6392 /* User semantic actions sometimes alter yychar, and that requires
6393 that yytoken be updated with the new translation. We take the
6394 approach of translating immediately before every use of yytoken.
6395 One alternative is translating here after every semantic action,
6396 but that translation would be missed if the semantic action invokes
6397 YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
6398 if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
6399 incorrect destructor might then be invoked immediately. In the
6400 case of YYERROR or YYBACKUP, subsequent parser actions might lead
6401 to an incorrect destructor call or verbose syntax error message
6402 before the lookahead is translated. */
6403 YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
6404
6405 YYPOPSTACK (yylen);
6406 yylen = 0;
6407 YY_STACK_PRINT (yyss, yyssp);
6408
6409 *++yyvsp = yyval;
6410
6411 /* Now 'shift' the result of the reduction. Determine what state
6412 that goes to, based on the state we popped back to and the rule
6413 number reduced by. */
6414 {
6415 const int yylhs = yyr1[yyn] - YYNTOKENS;
6416 const int yyi = yypgoto[yylhs] + *yyssp;
6417 yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
6418 ? yytable[yyi]
6419 : yydefgoto[yylhs]);
6420 }
6421
6422 goto yynewstate;
6423
6424
6425 /*--------------------------------------.
6426 | yyerrlab -- here on detecting error. |
6427 `--------------------------------------*/
6428 yyerrlab:
6429 /* Make sure we have latest lookahead translation. See comments at
6430 user semantic actions for why this is necessary. */
6431 yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
6432
6433 /* If not already recovering from an error, report this error. */
6434 if (!yyerrstatus)
6435 {
6436 ++yynerrs;
6437 #if ! YYERROR_VERBOSE
6438 yyerror (yyparse_param, YY_("syntax error"));
6439 #else
6440 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
6441 yyssp, yytoken)
6442 {
6443 char const *yymsgp = YY_("syntax error");
6444 int yysyntax_error_status;
6445 yysyntax_error_status = YYSYNTAX_ERROR;
6446 if (yysyntax_error_status == 0)
6447 yymsgp = yymsg;
6448 else if (yysyntax_error_status == 1)
6449 {
6450 if (yymsg != yymsgbuf)
6451 YYSTACK_FREE (yymsg);
6452 yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
6453 if (!yymsg)
6454 {
6455 yymsg = yymsgbuf;
6456 yymsg_alloc = sizeof yymsgbuf;
6457 yysyntax_error_status = 2;
6458 }
6459 else
6460 {
6461 yysyntax_error_status = YYSYNTAX_ERROR;
6462 yymsgp = yymsg;
6463 }
6464 }
6465 yyerror (yyparse_param, yymsgp);
6466 if (yysyntax_error_status == 2)
6467 goto yyexhaustedlab;
6468 }
6469 # undef YYSYNTAX_ERROR
6470 #endif
6471 }
6472
6473
6474
6475 if (yyerrstatus == 3)
6476 {
6477 /* If just tried and failed to reuse lookahead token after an
6478 error, discard it. */
6479
6480 if (yychar <= YYEOF)
6481 {
6482 /* Return failure if at end of input. */
6483 if (yychar == YYEOF)
6484 YYABORT;
6485 }
6486 else
6487 {
6488 yydestruct ("Error: discarding",
6489 yytoken, &yylval, yyparse_param);
6490 yychar = YYEMPTY;
6491 }
6492 }
6493
6494 /* Else will try to reuse lookahead token after shifting the error
6495 token. */
6496 goto yyerrlab1;
6497
6498
6499 /*---------------------------------------------------.
6500 | yyerrorlab -- error raised explicitly by YYERROR. |
6501 `---------------------------------------------------*/
6502 yyerrorlab:
6503 /* Pacify compilers when the user code never invokes YYERROR and the
6504 label yyerrorlab therefore never appears in user code. */
6505 if (0)
6506 YYERROR;
6507
6508 /* Do not reclaim the symbols of the rule whose action triggered
6509 this YYERROR. */
6510 YYPOPSTACK (yylen);
6511 yylen = 0;
6512 YY_STACK_PRINT (yyss, yyssp);
6513 yystate = *yyssp;
6514 goto yyerrlab1;
6515
6516
6517 /*-------------------------------------------------------------.
6518 | yyerrlab1 -- common code for both syntax error and YYERROR. |
6519 `-------------------------------------------------------------*/
6520 yyerrlab1:
6521 yyerrstatus = 3; /* Each real token shifted decrements this. */
6522
6523 for (;;)
6524 {
6525 yyn = yypact[yystate];
6526 if (!yypact_value_is_default (yyn))
6527 {
6528 yyn += YYTERROR;
6529 if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
6530 {
6531 yyn = yytable[yyn];
6532 if (0 < yyn)
6533 break;
6534 }
6535 }
6536
6537 /* Pop the current state because it cannot handle the error token. */
6538 if (yyssp == yyss)
6539 YYABORT;
6540
6541
6542 yydestruct ("Error: popping",
6543 yystos[yystate], yyvsp, yyparse_param);
6544 YYPOPSTACK (1);
6545 yystate = *yyssp;
6546 YY_STACK_PRINT (yyss, yyssp);
6547 }
6548
6549 YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
6550 *++yyvsp = yylval;
6551 YY_IGNORE_MAYBE_UNINITIALIZED_END
6552
6553
6554 /* Shift the error token. */
6555 YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp);
6556
6557 yystate = yyn;
6558 goto yynewstate;
6559
6560
6561 /*-------------------------------------.
6562 | yyacceptlab -- YYACCEPT comes here. |
6563 `-------------------------------------*/
6564 yyacceptlab:
6565 yyresult = 0;
6566 goto yyreturn;
6567
6568
6569 /*-----------------------------------.
6570 | yyabortlab -- YYABORT comes here. |
6571 `-----------------------------------*/
6572 yyabortlab:
6573 yyresult = 1;
6574 goto yyreturn;
6575
6576
6577 #if !defined yyoverflow || YYERROR_VERBOSE
6578 /*-------------------------------------------------.
6579 | yyexhaustedlab -- memory exhaustion comes here. |
6580 `-------------------------------------------------*/
6581 yyexhaustedlab:
6582 yyerror (yyparse_param, YY_("memory exhausted"));
6583 yyresult = 2;
6584 /* Fall through. */
6585 #endif
6586
6587
6588 /*-----------------------------------------------------.
6589 | yyreturn -- parsing is finished, return the result. |
6590 `-----------------------------------------------------*/
6591 yyreturn:
6592 if (yychar != YYEMPTY)
6593 {
6594 /* Make sure we have latest lookahead translation. See comments at
6595 user semantic actions for why this is necessary. */
6596 yytoken = YYTRANSLATE (yychar);
6597 yydestruct ("Cleanup: discarding lookahead",
6598 yytoken, &yylval, yyparse_param);
6599 }
6600 /* Do not reclaim the symbols of the rule whose action triggered
6601 this YYABORT or YYACCEPT. */
6602 YYPOPSTACK (yylen);
6603 YY_STACK_PRINT (yyss, yyssp);
6604 while (yyssp != yyss)
6605 {
6606 yydestruct ("Cleanup: popping",
6607 yystos[*yyssp], yyvsp, yyparse_param);
6608 YYPOPSTACK (1);
6609 }
6610 #ifndef yyoverflow
6611 if (yyss != yyssa)
6612 YYSTACK_FREE (yyss);
6613 #endif
6614 #if YYERROR_VERBOSE
6615 if (yymsg != yymsgbuf)
6616 YYSTACK_FREE (yymsg);
6617 #endif
6618 return yyresult;
6619 }
6620 #line 1297 "lscp.y" /* yacc.c:1918 */
6621
6622
6623 // TODO: actually would be fine to have the following bunch of source code in a separate file, however those functions are a) accessing private Bison tables like yytable and b) including the functions from another file here would make the line numbers incorrect on compile errors in auto generated lscpparser.cpp
6624
6625 /**
6626 * Additional informations of a grammar symbol.
6627 */
6628 struct BisonSymbolInfo {
6629 bool isTerminalSymbol; ///< Whether the symbol is a terminal or non-termianl symbol. NOTE: Read comment regarding this in _isRuleTerminalSymbol() !!
6630 String nextExpectedChars; ///< According to current parser position: sequence of characters expected next for satisfying this grammar symbol.
6631 };
6632
6633 #if HAVE_BISON_MAJ >= 3 // Bison 3.x or younger ...
6634
6635 /**
6636 * Must ONLY be called just before a so called "reduce" parser action:
6637 * Returns true if the grammar rule, which is just about to be "reduced", is a
6638 * terminal symbol (in *our* terms).
6639 *
6640 * Please note that the term "terminal symbol" is a bit confusingly used in
6641 * this source code here around. In Bison's terms, "terminal symbols" are (more
6642 * or less) just the numbers returned by the YYLEX function. Since we decided
6643 * though to use a convenient solution without a separate lexer, and all its
6644 * caveats, all numbers by the yylex() function here are just the ASCII
6645 * numbers of the individual characters received. Based on that however, one
6646 * single character is not what one would intuitively expect of being a
6647 * "terminal symbol", because it is simply too primitive.
6648 *
6649 * So in this LSCP parser source code a "terminal symbol" rather means a
6650 * keyword like "CREATE" or "GET". In the grammal definition above, those are
6651 * however defined as grammar rules (non-terminals in Bison's terms). So this
6652 * function decides like this: if the given grammar rule just contains
6653 * individual characters on the right side of its grammar rule, then it is a
6654 * "terminal symbol" in *our* terms.
6655 *
6656 * @param rule - Bison grammar rule number
6657 * @param stack - reflecting current Bison parser state
6658 */
_isRuleTerminalSymbol(int rule,const std::vector<YYTYPE_INT16> & stack)6659 inline static bool _isRuleTerminalSymbol(int rule, const std::vector<YYTYPE_INT16>& stack) {
6660 int nrhs = yyr2[rule];
6661 for (int i = 0; i < nrhs; ++i)
6662 if (yystos[*(stack.end() - nrhs + i)] >= YYNTOKENS) return false;
6663 return true;
6664 }
6665
6666 /**
6667 * Must ONLY be called just before a so called "reduce" parser action: Returns
6668 * additional informations to the given grammar rule that is about to be
6669 * "reduced".
6670 *
6671 * @param rule - Bison grammar rule number
6672 * @param stack - reflecting current Bison parser state
6673 * @param nextExpectedChars - must already be filled with the characters
6674 * expected to be coming next
6675 */
_symbolInfoForRule(int rule,const std::vector<YYTYPE_INT16> & stack,const String & nextExpectedChars)6676 inline static BisonSymbolInfo _symbolInfoForRule(int rule, const std::vector<YYTYPE_INT16>& stack, const String& nextExpectedChars) {
6677 BisonSymbolInfo info;
6678 info.isTerminalSymbol = _isRuleTerminalSymbol(rule, stack);
6679 if (info.isTerminalSymbol) info.nextExpectedChars = nextExpectedChars;
6680 return info;
6681 }
6682
6683 #else // Bison 2.x or older ...
6684
6685 //TODO: The Bison 2.x code below can probably soon just be deleted. Most Bisonx 2.x versions should be able to compile successfully with the Bison 3.x code above as well (just requires the existence of table yystos[] in the auto generated lscpparser.cpp).
6686
6687 /**
6688 * Returns true if the given grammar @a rule is a terminal symbol (in *our*
6689 * terms).
6690 *
6691 * Please note that the term "terminal symbol" is a bit confusingly used in
6692 * this source code here around. In Bison's terms, "terminal symbols" are (more
6693 * or less) just the numbers returned by the YYLEX function. Since we decided
6694 * though to use a convenient solution without a separate lexer, and all its
6695 * caveats, all numbers by the yylex() function here are just the ASCII
6696 * numbers of the individual characters received. Based on that however, one
6697 * single character is not what one would intuitively expect of being a
6698 * "terminal symbol", because it is simply too primitive.
6699 *
6700 * So in this LSCP parser source code a "terminal symbol" rather means a
6701 * keyword like "CREATE" or "GET". In the grammal definition above, those are
6702 * however defined as grammar rules (non-terminals in Bison's terms). So this
6703 * function decides like this: if the given grammar rule just contains
6704 * individual characters on the right side of its grammar rule, then it is a
6705 * "terminal symbol" in *our* terms.
6706 *
6707 * @param rule - Bison grammar rule number
6708 */
_isRuleTerminalSymbol(int rule)6709 inline static bool _isRuleTerminalSymbol(int rule) {
6710 for (int i = yyprhs[rule]; yyrhs[i] != -1; ++i)
6711 if (yyrhs[i] >= YYNTOKENS) return false;
6712 return true;
6713 }
6714
6715 /**
6716 * Returns additional informations to the given grammar @a rule.
6717 *
6718 * @param rule - grammar rule index to retrieve informations about
6719 * @param nextExpectedChars - must already be filled with the characters
6720 * expected to be coming next
6721 */
_symbolInfoForRule(int rule,const String & nextExpectedChars)6722 inline static BisonSymbolInfo _symbolInfoForRule(int rule, const String& nextExpectedChars) {
6723 BisonSymbolInfo info;
6724 info.isTerminalSymbol = _isRuleTerminalSymbol(rule);
6725 if (info.isTerminalSymbol) info.nextExpectedChars = nextExpectedChars;
6726 return info;
6727 }
6728
6729 #endif // HAVE_BISON_MAJ >= 3
6730
6731 /**
6732 * Returns the human readable name of the given @a token.
6733 */
_tokenName(int token)6734 inline static String _tokenName(int token) {
6735 String s = yytname[token];
6736 // remove leading and trailing apostrophes that Bison usually adds to
6737 // ASCII characters used directly in grammar rules
6738 if (s.empty()) return s;
6739 if (s[0] == '\'') s.erase(0, 1);
6740 if (s.empty()) return s;
6741 if (s[s.size() - 1] == '\'') s.erase(s.size() - 1);
6742 return s;
6743 }
6744
6745 /**
6746 * Assumes the given @a token is exactly one character and returns that
6747 * character. This must be changed in future, i.e. in case Unicode characters
6748 * will be introduced in the LSCP grammar one day.
6749 */
_tokenChar(int token)6750 inline static char _tokenChar(int token) {
6751 String s = _tokenName(token);
6752 if (s == "\\n") return '\n';
6753 if (s == "\\r") return '\r';
6754 return _tokenName(token)[0];
6755 }
6756
6757 /**
6758 * Implements Bison's so called "reduce" action, according to Bison's LALR(1)
6759 * parser algorithm.
6760 */
_yyReduce(std::vector<YYTYPE_INT16> & stack,const int & rule)6761 inline static int _yyReduce(std::vector<YYTYPE_INT16>& stack, const int& rule) {
6762 if (stack.empty()) throw 1; // severe error
6763 const int len = yyr2[rule];
6764 stack.resize(stack.size() - len);
6765 YYTYPE_INT16 newState = yypgoto[yyr1[rule] - YYNTOKENS] + stack.back();
6766 if (0 <= newState && newState <= YYLAST && yycheck[newState] == stack.back())
6767 newState = yytable[newState];
6768 else
6769 newState = yydefgoto[yyr1[rule] - YYNTOKENS];
6770 stack.push_back(newState);
6771 return newState;
6772 }
6773
6774 /**
6775 * Implements Bison's so called "default reduce" action, according to Bison's
6776 * LALR(1) parser algorithm.
6777 */
_yyDefaultReduce(std::vector<YYTYPE_INT16> & stack)6778 inline static int _yyDefaultReduce(std::vector<YYTYPE_INT16>& stack) {
6779 if (stack.empty()) throw 2; // severe error
6780 int rule = yydefact[stack.back()];
6781 if (rule <= 0 || rule >= YYNRULES) throw 3; // no rule, something is wrong
6782 return _yyReduce(stack, rule);
6783 }
6784
6785 static bool yyValid(std::vector<YYTYPE_INT16>& stack, char ch);
6786
6787 /**
6788 * A set of parser symbol stacks. This type is used for the recursive algorithms
6789 * in a) yyAutoComplete() and b) walkAndFillExpectedSymbols() for detecting
6790 * endless recursions.
6791 *
6792 * This unique container is used to keep track of all previous parser states
6793 * (stacks), for detecting a parser symbol stack that has already been
6794 * encountered before. Because if yyAutoComplete() or
6795 * walkAndFillExpectedSymbols() reach the exactly same parser symbol stack
6796 * again, that means there is an endless recursion in that part of the grammar
6797 * tree branch and shall not be evaluated any further, since it would end up in
6798 * an endless loop of the algorithm otherwise.
6799 *
6800 * This solution consumes a lot of memory, but unfortunately there is no other
6801 * easy way to solve it. With our grammar and today's usual memory heap size &
6802 * memory stack size in modern devices, it should be fine though.
6803 */
6804 typedef std::set< std::vector<YYTYPE_INT16> > YYStackHistory;
6805
6806 /*
6807 * YYTERROR macro was removed in Bison 3.6.0, we need it in function below.
6808 */
6809 #ifndef YYTERROR
6810 # define YYTERROR YYSYMBOL_YYerror
6811 #endif
6812
6813 #define DEBUG_BISON_SYNTAX_ERROR_WALKER 0
6814
6815 /**
6816 * Tries to find the next expected grammar symbols according to the given
6817 * precise parse position & state represented by @a stack, according to Bison's
6818 * LALR(1) parser algorithm.
6819 *
6820 * This function is given a Bison parser symbol stack, reflecting the parser's
6821 * entire state at a certain point, i.e. when a syntax error occured. This
6822 * function will then walk ahead the potential parse tree starting from the
6823 * current head of the given symbol stack. This function will call itself
6824 * recursively to scan the individual parse tree branches. As soon as it hits
6825 * on the next non-terminal grammar symbol in one parse tree branch, it adds the
6826 * found non-terminal symbol to @a expectedSymbols and aborts scanning the
6827 * respective tree branch further. If any local parser state is reached a second
6828 * time, the respective parse tree is aborted to avoid any endless recursion.
6829 *
6830 * @param stack - current Bison (yacc) symbol stack to be examined
6831 * @param expectedSymbols - will be filled with next expected grammar symbols
6832 * @param nextExpectedChars - just for internal purpose, due to the recursive
6833 * implementation of this function, do supply an
6834 * empty string for this argument
6835 * @param history - only for internal purpose, keeps a history of all previous
6836 * parser symbol stacks (just for avoiding endless recursion in
6837 * this recursive algorithm), do supply an empty history
6838 * @param depth - just for internal debugging purposes, do not supply it
6839 */
walkAndFillExpectedSymbols(std::vector<YYTYPE_INT16> & stack,std::map<String,BisonSymbolInfo> & expectedSymbols,String & nextExpectedChars,YYStackHistory & history,int depth=0)6840 static void walkAndFillExpectedSymbols(
6841 std::vector<YYTYPE_INT16>& stack,
6842 std::map<String,BisonSymbolInfo>& expectedSymbols,
6843 String& nextExpectedChars, YYStackHistory& history, int depth = 0)
6844 {
6845 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6846 printf("\n");
6847 for (int i = 0; i < depth; ++i) printf("\t");
6848 printf("Symbol stack:");
6849 for (int i = 0; i < stack.size(); ++i) {
6850 printf(" %d", stack[i]);
6851 }
6852 printf("\n");
6853 #endif
6854 startLabel:
6855
6856 // detect endless recursion
6857 if (history.count(stack)) return;
6858 history.insert(stack);
6859
6860 if (stack.empty()) {
6861 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6862 for (int i = 0; i < depth; ++i) printf("\t");
6863 printf("(EMPTY STACK)\n");
6864 #endif
6865 return;
6866 }
6867
6868 int state = stack[stack.size() - 1];
6869 int n = yypact[state];
6870 if (n == YYPACT_NINF) { // default reduction required ...
6871 // get default reduction rule for this state
6872 n = yydefact[state];
6873 if (n <= 0 || n >= YYNRULES) {
6874 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6875 for (int i = 0; i < depth; ++i) printf("\t");
6876 printf("(EMPTY RULE)\n");
6877 #endif
6878 return; // no rule, something is wrong
6879 }
6880 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6881 for (int i = 0; i < depth; ++i) printf("\t");
6882 printf("(default reduction)\n");
6883 #endif
6884 #if HAVE_BISON_MAJ >= 3
6885 if (!nextExpectedChars.empty() || !_isRuleTerminalSymbol(n, stack)) {
6886 #else
6887 if (!nextExpectedChars.empty() || !_isRuleTerminalSymbol(n)) {
6888 #endif
6889 // Return the new resolved expected symbol (left-hand symbol of grammar
6890 // rule), then we're done in this state. (If the same symbol can be
6891 // matched on different ways, then it is non-terminal symbol.)
6892 bool ambigious =
6893 expectedSymbols.count(yytname[yyr1[n]]) &&
6894 expectedSymbols[yytname[yyr1[n]]].nextExpectedChars != nextExpectedChars;
6895 #if HAVE_BISON_MAJ >= 3
6896 expectedSymbols[yytname[yyr1[n]]] = _symbolInfoForRule(n, stack, nextExpectedChars);
6897 #else
6898 expectedSymbols[yytname[yyr1[n]]] = _symbolInfoForRule(n, nextExpectedChars);
6899 #endif
6900 if (ambigious)
6901 expectedSymbols[yytname[yyr1[n]]].isTerminalSymbol = false;
6902 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6903 for (int i = 0; i < depth; ++i) printf("\t");
6904 printf("(empty expectedChars. sym = %s)\n", yytname[yyr1[n]]);
6905 #endif
6906 return;
6907 }
6908 _yyReduce(stack, n);
6909 goto startLabel;
6910 }
6911 if (!(YYPACT_NINF < n && n <= YYLAST)) {
6912 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6913 for (int i = 0; i < depth; ++i) printf("\t");
6914 printf("(invalid action B)\n");
6915 #endif
6916 return;
6917 }
6918
6919 // Check for duplicate states, if duplicates exist return
6920 // (this check is necessary since the introduction of the yyValid() call
6921 // below, which does not care about duplicates).
6922 for (int i = 0; i < stack.size(); ++i)
6923 for (int k = i + 1; k < stack.size(); ++k)
6924 if (stack[i] == stack[k])
6925 return;
6926
6927 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6928 for (int i = 0; i < depth; ++i) printf("\t");
6929 printf("Expected tokens:");
6930 #endif
6931 int begin = n < 0 ? -n : 0;
6932 //int checklim = YYLAST - n + 1;
6933 int end = YYNTOKENS;//checklim < YYNTOKENS ? checklim : YYNTOKENS;
6934 int rule, action, stackSize, nextExpectedCharsLen;
6935 for (int token = begin; token < end; ++token) {
6936 if (token <= YYTERROR) continue;
6937 if (yytname[token] == String("$undefined")) continue;
6938 if (yytname[token] == String("EXT_ASCII_CHAR")) continue;
6939 //if (yycheck[n + token] != token) goto default_reduction;
6940 if (yycheck[n + token] != token) { // default reduction suggested ...
6941 // If we are here, it means the current token in the loop would not
6942 // cause a "shift", however we don't already know whether this token
6943 // is valid or not. Because there might be several reductions
6944 // involved until one can determine whether the token causes an
6945 // error or is valid. So we use this heavy check instead:
6946 std::vector<YYTYPE_INT16> stackCopy = stack; // copy required, since reduction will take place
6947 if (!yyValid(stackCopy, _tokenChar(token))) continue; // invalid token
6948 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6949 printf(" ETdr(%s)", yytname[token]);
6950 #endif
6951 // the token is valid, "stackCopy" has been reduced accordingly
6952 // and now do recurse ...
6953 nextExpectedChars += _tokenName(token);
6954 nextExpectedCharsLen = (int)nextExpectedChars.size();
6955 walkAndFillExpectedSymbols( //FIXME: could cause stack overflow (should be a loop instead), is probably fine with our current grammar though
6956 stackCopy, expectedSymbols, nextExpectedChars, history, depth + 1
6957 );
6958 nextExpectedChars.resize(nextExpectedCharsLen); // restore 'nextExpectedChars'
6959 continue;
6960 }
6961 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6962 printf(" ET(%s)", yytname[token]);
6963 #endif
6964
6965 action = yytable[n + token];
6966 if (action == 0 || action == YYTABLE_NINF) {
6967 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6968 printf(" (invalid action A) "); fflush(stdout);
6969 #endif
6970 continue; // error, ignore
6971 }
6972 if (action < 0) { // reduction with rule -action required ...
6973 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6974 printf(" (reduction) "); fflush(stdout);
6975 #endif
6976 rule = -action;
6977 goto reduce;
6978 }
6979 if (action == YYFINAL) {
6980 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6981 printf(" (ACCEPT) "); fflush(stdout);
6982 #endif
6983 continue; // "accept" state, we don't care about it here
6984 }
6985
6986 // "shift" required ...
6987
6988 if (std::find(stack.begin(), stack.end(), action) != stack.end()) {
6989 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
6990 printf(" (duplicate state %d) ", action); fflush(stdout);
6991 #endif
6992 continue; // duplicate state, ignore it to avoid endless recursions
6993 }
6994
6995 // "shift" / push the new state on the symbol stack and call this
6996 // function recursively, and restore the stack after the recurse return
6997 stackSize = (int)stack.size();
6998 nextExpectedCharsLen = (int)nextExpectedChars.size();
6999 stack.push_back(action);
7000 nextExpectedChars += _tokenName(token);
7001 walkAndFillExpectedSymbols( //FIXME: could cause stack overflow (should be a loop instead), is probably fine with our current grammar though
7002 stack, expectedSymbols, nextExpectedChars, history, depth + 1
7003 );
7004 stack.resize(stackSize); // restore stack
7005 nextExpectedChars.resize(nextExpectedCharsLen); // restore 'nextExpectedChars'
7006 continue;
7007
7008 //default_reduction: // resolve default reduction for this state
7009 // printf(" (default red.) "); fflush(stdout);
7010 // rule = yydefact[state];
7011
7012 reduce: // "reduce" required
7013 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
7014 printf(" (reduce by %d) ", rule); fflush(stdout);
7015 #endif
7016 if (rule == 0 || rule >= YYNRULES) {
7017 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
7018 printf(" (invalid rule) "); fflush(stdout);
7019 #endif
7020 continue; // invalid rule, something is wrong
7021 }
7022 // Store the left-hand symbol of the grammar rule. (If the same symbol
7023 // can be matched on different ways, then it is non-terminal symbol.)
7024 bool ambigious =
7025 expectedSymbols.count(yytname[yyr1[rule]]) &&
7026 expectedSymbols[yytname[yyr1[rule]]].nextExpectedChars != nextExpectedChars;
7027 #if HAVE_BISON_MAJ >= 3
7028 expectedSymbols[yytname[yyr1[rule]]] = _symbolInfoForRule(rule, stack, nextExpectedChars);
7029 #else
7030 expectedSymbols[yytname[yyr1[rule]]] = _symbolInfoForRule(rule, nextExpectedChars);
7031 #endif
7032 if (ambigious)
7033 expectedSymbols[yytname[yyr1[n]]].isTerminalSymbol = false;
7034 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
7035 printf(" (SYM %s) ", yytname[yyr1[rule]]); fflush(stdout);
7036 #endif
7037 }
7038 #if DEBUG_BISON_SYNTAX_ERROR_WALKER
7039 printf("\n");
7040 #endif
7041 }
7042
7043 /**
7044 * Just a convenience wrapper on top of the actual walkAndFillExpectedSymbols()
7045 * implementation above, which can be called with less parameters than the
7046 * implementing function above actually requires.
7047 */
7048 static void walkAndFillExpectedSymbols(
7049 std::vector<YYTYPE_INT16>& stack,
7050 std::map<String,BisonSymbolInfo>& expectedSymbols)
7051 {
7052 String nextExpectedChars;
7053 YYStackHistory history;
7054
7055 walkAndFillExpectedSymbols(
7056 stack, expectedSymbols, nextExpectedChars, history
7057 );
7058 }
7059
7060 #define DEBUG_PUSH_PARSE 0
7061
7062 /**
7063 * Implements parsing exactly one character (given by @a ch), continueing at the
7064 * parser position reflected by @a stack. The @a stack will hold the new parser
7065 * state after this call.
7066 *
7067 * This function is implemented according to Bison's LALR(1) parser algorithm.
7068 */
7069 static bool yyPushParse(std::vector<YYTYPE_INT16>& stack, char ch) {
7070 startLabel:
7071
7072 #if DEBUG_PUSH_PARSE
7073 //printf("\n");
7074 //for (int i = 0; i < depth; ++i) printf("\t");
7075 printf("Symbol stack:");
7076 for (int i = 0; i < stack.size(); ++i) {
7077 printf(" %d", stack[i]);
7078 }
7079 printf(" char='%c'(%d)\n", ch, (int)ch);
7080 #endif
7081
7082 if (stack.empty()) return false;
7083
7084 int state = stack.back();
7085 int n = yypact[state];
7086 if (n == YYPACT_NINF) { // default reduction required ...
7087 #if DEBUG_PUSH_PARSE
7088 printf("(def reduce 1)\n");
7089 #endif
7090 state = _yyDefaultReduce(stack);
7091 goto startLabel;
7092 }
7093 if (!(YYPACT_NINF < n && n <= YYLAST)) return false;
7094
7095 YYTYPE_INT16 token = (ch == YYEOF) ? YYEOF : yytranslate[ch];
7096 n += token;
7097 if (n < 0 || YYLAST < n || yycheck[n] != token) {
7098 #if DEBUG_PUSH_PARSE
7099 printf("(def reduce 2) n=%d token=%d\n", n, token);
7100 #endif
7101 state = _yyDefaultReduce(stack);
7102 goto startLabel;
7103 }
7104 int action = yytable[n]; // yytable[yypact[state] + token]
7105 if (action == 0 || action == YYTABLE_NINF) throw 4;
7106 if (action < 0) {
7107 #if DEBUG_PUSH_PARSE
7108 printf("(reduce)\n");
7109 #endif
7110 int rule = -action;
7111 state = _yyReduce(stack, rule);
7112 goto startLabel;
7113 }
7114 if (action == YYFINAL) return true; // final state reached
7115
7116 #if DEBUG_PUSH_PARSE
7117 printf("(push)\n");
7118 #endif
7119 // push new state
7120 state = action;
7121 stack.push_back(state);
7122 return true;
7123 }
7124
7125 /**
7126 * Returns true if parsing ahead with given character @a ch is syntactically
7127 * valid according to the LSCP grammar, it returns false if it would create a
7128 * parse error.
7129 *
7130 * The @a stack will reflect the new parser state after this call.
7131 *
7132 * This is just a wrapper ontop of yyPushParse() which converts parser
7133 * exceptions thrown by yyPushParse() into @c false return value.
7134 */
7135 static bool yyValid(std::vector<YYTYPE_INT16>& stack, char ch) {
7136 try {
7137 return yyPushParse(stack, ch);
7138 } catch (int i) {
7139 #if DEBUG_PUSH_PARSE
7140 printf("exception %d\n", i);
7141 #endif
7142 return false;
7143 } catch (...) {
7144 return false;
7145 }
7146 }
7147
7148 /**
7149 * Returns the amount of correct characters of given @a line from the left,
7150 * according to the LSCP grammar.
7151 *
7152 * @param stack - a Bison symbol stack to work with
7153 * @param line - the input line to check
7154 * @param bAutoCorrect - if true: try to correct obvious, trivial syntax errors
7155 */
7156 static int yyValidCharacters(std::vector<YYTYPE_INT16>& stack, String& line, bool bAutoCorrect) {
7157 int i;
7158 for (i = 0; i < line.size(); ++i) {
7159 // since we might check the same parser state twice against the current
7160 // char here below, and since the symbol stack might be altered
7161 // (i.e. shifted or reduced) on syntax errors, we have to backup the
7162 // current symbol stack and restore it on syntax errors below
7163 std::vector<YYTYPE_INT16> stackCopy = stack;
7164 if (yyValid(stackCopy, line[i])) {
7165 stack = stackCopy;
7166 continue;
7167 }
7168 if (bAutoCorrect) {
7169 // try trivial corrections, i.e. upper case character instead of
7170 // lower case, subline instead of space and vice versa
7171 char c;
7172 if (line[i] == ' ') c = '_';
7173 else if (line[i] == '_') c = ' ';
7174 else if (isLowerCaseAlphaChar(line[i]))
7175 c = alphaCharToUpperCase(line[i]);
7176 else return i;
7177 if (yyValid(stack, c)) {
7178 line[i] = c;
7179 continue;
7180 }
7181 }
7182 return i;
7183 }
7184 return i;
7185 }
7186
7187 /**
7188 * Should only be called on syntax errors: returns a set of non-terminal
7189 * symbols expected to appear now/next, just at the point where the syntax
7190 * error appeared.
7191 *
7192 * @returns names of the non-terminal symbols expected at this parse position
7193 */
7194 static std::set<String> yyExpectedSymbols() {
7195 std::map<String,BisonSymbolInfo> expectedSymbols;
7196 yyparse_param_t* param = GetCurrentYaccSession();
7197 YYTYPE_INT16* ss = (*param->ppStackBottom);
7198 YYTYPE_INT16* sp = (*param->ppStackTop);
7199 int iStackSize = int(sp - ss + 1);
7200 // copy and wrap parser's symbol stack into a convenient STL container
7201 std::vector<YYTYPE_INT16> stack;
7202 for (int i = 0; i < iStackSize; ++i) {
7203 stack.push_back(ss[i]);
7204 }
7205 // do the actual parser work
7206 walkAndFillExpectedSymbols(stack, expectedSymbols);
7207
7208 // convert expectedSymbols to the result set
7209 std::set<String> result;
7210 for (std::map<String,BisonSymbolInfo>::const_iterator it = expectedSymbols.begin();
7211 it != expectedSymbols.end(); ++it) result.insert(it->first);
7212 return result;
7213 }
7214
7215 #define DEBUG_YY_AUTO_COMPLETE 0
7216
7217 /**
7218 * Generates and returns an auto completion string for the current parser
7219 * state given by @a stack. That means, this function will return the longest
7220 * sequence of characters that is uniqueley expected to be sent next by the LSCP
7221 * client. Or in other words, if the LSCP client would send any other
7222 * character(s) than returned here, it would result in a syntax error.
7223 *
7224 * This function takes a Bison symbol @a stack as argument, reflecting the
7225 * current Bison parser state, and evaluates the individual grammar tree
7226 * branches starting from that particular position. It walks along the grammar
7227 * tree as long as there is only one possible tree branch and assembles a string
7228 * of input characters that would lead to that walk through the grammar tree. As
7229 * soon as a position in the grammar tree is reached where there are multiple
7230 * possible tree branches, this algorithm will stop, since the user could have
7231 * multiple possible valid characters he could type at that point, thus auto
7232 * completion would no longer be unique at that point.
7233 *
7234 * Regarding @a history argument: read the description on YYStackHistory for the
7235 * purpose behind this argument.
7236 *
7237 * @param stack - current Bison (yacc) symbol stack to create auto completion for
7238 * @param history - only for internal purpose, keeps a history of all previous
7239 * parser symbol stacks (just for avoiding endless recursion in
7240 * this auto completion algorithm), do supply an empty history
7241 * @param depth - just for internal debugging purposes, do not supply anything
7242 * @returns auto completion for current, given parser state
7243 */
7244 static String yyAutoComplete(std::vector<YYTYPE_INT16>& stack, YYStackHistory& history, int depth = 0) {
7245 std::map<String,BisonSymbolInfo> expectedSymbols;
7246 walkAndFillExpectedSymbols(stack, expectedSymbols);
7247 if (expectedSymbols.size() == 1) {
7248 String name = expectedSymbols.begin()->first;
7249 BisonSymbolInfo info = expectedSymbols.begin()->second;
7250 #if DEBUG_YY_AUTO_COMPLETE
7251 for (int q = 0; q < depth; ++q) printf(" ");
7252 printf("(%d) Suggested Sub Completion (sz=%d): type=%s %s -> '%s'\n", depth, expectedSymbols.size(), (info.isTerminalSymbol) ? "T" : "NT", name.c_str(), info.nextExpectedChars.c_str());
7253 #endif
7254 if (info.nextExpectedChars.empty() || !info.isTerminalSymbol) return "";
7255 // parse forward with the suggested auto completion
7256 std::vector<YYTYPE_INT16> stackCopy = stack;
7257 yyValidCharacters(stackCopy, info.nextExpectedChars, false);
7258 // detect endless recursion
7259 if (history.count(stackCopy)) return "";
7260 history.insert(stackCopy);
7261 // recurse and return the expanded auto completion with maximum length
7262 return info.nextExpectedChars + yyAutoComplete(stackCopy, history, depth + 1);
7263 } else if (expectedSymbols.size() == 0) {
7264 #if DEBUG_YY_AUTO_COMPLETE
7265 for (int q = 0; q < depth; ++q) printf(" ");
7266 printf("(%d) No sub suggestion.\n", depth);
7267 #endif
7268 return "";
7269 } else if (expectedSymbols.size() > 1) {
7270 #if DEBUG_YY_AUTO_COMPLETE
7271 for (int q = 0; q < depth; ++q) printf(" ");
7272 printf("(%d) Multiple sub possibilities (before expansion):", depth);
7273 for (std::map<String,BisonSymbolInfo>::const_iterator it = expectedSymbols.begin();
7274 it != expectedSymbols.end(); ++it)
7275 {
7276 printf(" %s (..%s)", it->first.c_str(), it->second.nextExpectedChars.c_str());
7277 }
7278 printf("\n");
7279 #endif
7280 // check if any of the possibilites is a non-terminal symbol, if so, we
7281 // have no way for auto completion at this point
7282 for (std::map<String,BisonSymbolInfo>::const_iterator it = expectedSymbols.begin();
7283 it != expectedSymbols.end(); ++it)
7284 {
7285 if (!it->second.isTerminalSymbol) {
7286 #if DEBUG_YY_AUTO_COMPLETE
7287 for (int q = 0; q < depth; ++q) printf(" ");
7288 printf("(%d) Non-terminal exists. Stop.", depth);
7289 #endif
7290 return "";
7291 }
7292 }
7293 #if 0 // commented out for now, since practically irrelevant and VERY slow ...
7294 // all possibilities are terminal symbols, so expand all possiblities to
7295 // maximum length with a recursive call for each possibility
7296 for (std::map<String,BisonSymbolInfo>::iterator it = expectedSymbols.begin();
7297 it != expectedSymbols.end(); ++it)
7298 {
7299 if (it->second.nextExpectedChars.empty() || !it->second.isTerminalSymbol) continue;
7300 // parse forward with this particular suggested auto completion
7301 std::vector<YYTYPE_INT16> stackCopy = stack;
7302 yyValidCharacters(stackCopy, it->second.nextExpectedChars, false);
7303 // detect endless recursion
7304 if (history.count(stackCopy)) continue;
7305 history.insert(stackCopy);
7306 // recurse and return the total possible auto completion for this
7307 // grammar tree branch
7308 it->second.nextExpectedChars += yyAutoComplete(stackCopy, history, depth + 1);
7309 }
7310 #endif
7311 // try to find the longest common string all possibilities start with
7312 // (from the left)
7313 String sCommon;
7314 for (int i = 0; true; ++i) {
7315 char c = '\0';
7316 for (std::map<String,BisonSymbolInfo>::const_iterator it = expectedSymbols.begin();
7317 it != expectedSymbols.end(); ++it)
7318 {
7319 if (i >= it->second.nextExpectedChars.size())
7320 goto commonSearchEndLabel;
7321 if (it == expectedSymbols.begin())
7322 c = it->second.nextExpectedChars[i];
7323 if (c != it->second.nextExpectedChars[i])
7324 goto commonSearchEndLabel;
7325 if (it == --expectedSymbols.end())
7326 sCommon += c;
7327 }
7328 }
7329 commonSearchEndLabel:
7330 #if DEBUG_YY_AUTO_COMPLETE
7331 for (int q = 0; q < depth; ++q) printf(" ");
7332 printf("(%d) Multiple sub possibilities (after expansion):", depth);
7333 for (std::map<String,BisonSymbolInfo>::const_iterator it = expectedSymbols.begin();
7334 it != expectedSymbols.end(); ++it)
7335 {
7336 printf(" %s (..%s)", it->first.c_str(), it->second.nextExpectedChars.c_str());
7337 }
7338 printf("\n");
7339 for (int q = 0; q < depth; ++q) printf(" ");
7340 printf("(%d) Common sub possibility: '%s'\n", depth, sCommon.c_str());
7341 #endif
7342 return sCommon;
7343 }
7344 return ""; // just pro forma, should never happen though
7345 }
7346
7347 /**
7348 * Just a convenience wrapper on top of the actual yyAutoComplete()
7349 * implementation. See its description above for details.
7350 */
7351 static String yyAutoComplete(std::vector<YYTYPE_INT16>& stack) {
7352 YYStackHistory history;
7353 return yyAutoComplete(stack, history);
7354 }
7355
7356 namespace LinuxSampler {
7357
7358 #define DEBUG_SHELL_INTERACTION 0
7359
7360 /**
7361 * If LSCP shell mode is enabled for the respective LSCP client connection, then
7362 * this function is called on every new byte received from that client. It will
7363 * check the current total input line and reply to the LSCP shell with a
7364 * specially crafted string, which allows the shell to provide colored syntax
7365 * highlighting and potential auto completion in the shell.
7366 *
7367 * It also performs auto correction of obvious & trivial syntax mistakes if
7368 * requested.
7369 *
7370 * The return value of this function will be sent to the client. It contains one
7371 * line specially formatted for the LSCP shell application, which can easily be
7372 * processed by the client/shell for extracting its necessary informations like
7373 * which part of the current command line is syntactically correct, which part
7374 * is incorrect, what could be auto completed right now, etc. So all the heavy
7375 * grammar evaluation tasks are peformed by the LSCP server for the LSCP shell
7376 * application (which is desgined as a thin client), so the LSCP shell
7377 * application will only have to show the results of the LSCP server's
7378 * evaluation to the user on the screen.
7379 *
7380 * @param line - the current command line to be evaluated by LSCP parser
7381 * @param param = reentrant parser session parameters
7382 * @param possibilities - whether all possibilities shall be shown
7383 * @returns LSCP shell response line to be returned to the client
7384 */
7385 String lscpParserProcessShellInteraction(String& line, yyparse_param_t* param, bool possibilities) {
7386 // first, determine how many characters (starting from the left) of the
7387 // given input line are already syntactically correct
7388 std::vector<YYTYPE_INT16> stack;
7389 stack.push_back(0); // every Bison symbol stack starts with state zero
7390 String l = line + '\n'; // '\n' to pretend ENTER as if the line was now complete
7391 int n = yyValidCharacters(stack, l, param->bShellAutoCorrect);
7392
7393 // if auto correction is enabled, apply the auto corrected string to
7394 // intput/output string 'line'
7395 if (param->bShellAutoCorrect) {
7396 int nMin = int( (n < line.length()) ? n : line.length() );
7397 line.replace(0, nMin, l.substr(0, nMin));
7398 }
7399
7400 ssize_t cursorPos = line.size() + param->iCursorOffset;
7401 if (cursorPos < 0) cursorPos = 0;
7402
7403 // generate an info string that will be sent to the LSCP shell for letting
7404 // it know which part is correct, which one is wrong, where is the cursor, etc.
7405 String result = line;
7406 result.insert(n <= result.length() ? n : result.length(), LSCP_SHK_GOOD_FRONT);
7407 result.insert(cursorPos <= n ? cursorPos : cursorPos + String(LSCP_SHK_GOOD_FRONT).length(), LSCP_SHK_CURSOR);
7408 int code = (n > line.length()) ? LSCP_SHU_COMPLETE : (n < line.length()) ?
7409 LSCP_SHU_SYNTAX_ERR : LSCP_SHU_INCOMPLETE;
7410 result = "SHU:" + ToString(code) + ":" + result;
7411 //if (n > line.length()) result += " [OK]";
7412
7413 // get a clean parser stack to the last valid parse position
7414 // (due to the appended '\n' character above, and on syntax errors, the
7415 // symbol stack might be in undesired, i.e. reduced state)
7416 stack.clear();
7417 stack.push_back(0); // every Bison symbol stack starts with state zero
7418 l = line.substr(0, n);
7419 if (!l.empty()) yyValidCharacters(stack, l, param->bShellAutoCorrect);
7420
7421 // generate auto completion suggestion (based on the current parser stack)
7422 std::vector<YYTYPE_INT16> stackCopy = stack; // make a copy, since yyAutoComplete() might alter the stack
7423 String sSuggestion = yyAutoComplete(stackCopy);
7424 if (!sSuggestion.empty()) result += LSCP_SHK_SUGGEST_BACK + sSuggestion;
7425
7426 if (possibilities) {
7427 // append all possible terminals and non-terminals according to
7428 // current parser state
7429 std::map<String,BisonSymbolInfo> expectedSymbols;
7430 walkAndFillExpectedSymbols(stack, expectedSymbols);
7431
7432 // pretend to LSCP shell that the following terminal symbols were
7433 // non-terminal symbols (since they are not human visible for auto
7434 // completion on the shell's screen)
7435 std::set<String> specialNonTerminals;
7436 specialNonTerminals.insert("SP");
7437 specialNonTerminals.insert("CR");
7438 specialNonTerminals.insert("LF");
7439
7440 String sPossibilities;
7441 int iNonTerminals = 0;
7442 int iTerminals = 0;
7443 for (std::map<String,BisonSymbolInfo>::const_iterator it = expectedSymbols.begin();
7444 it != expectedSymbols.end(); ++it)
7445 {
7446 if (!sPossibilities.empty()) sPossibilities += " | ";
7447 if (it->second.isTerminalSymbol && !specialNonTerminals.count(it->first)) {
7448 sPossibilities += it->first;
7449 iTerminals++;
7450 } else {
7451 sPossibilities += "<" + it->first + ">";
7452 iNonTerminals++;
7453 }
7454 }
7455 if (!sPossibilities.empty() && (iNonTerminals || iTerminals > 1)) {
7456 result += LSCP_SHK_POSSIBILITIES_BACK + sPossibilities;
7457 }
7458 }
7459
7460 #if DEBUG_SHELL_INTERACTION
7461 printf("%s\n", result.c_str());
7462 #endif
7463
7464 return result;
7465 }
7466
7467 /**
7468 * Clears input buffer.
7469 */
7470 void restart(yyparse_param_t* pparam, int& yychar) {
7471 bytes = 0;
7472 ptr = 0;
7473 sLastError = "";
7474 sParsed = "";
7475 }
7476
7477 }
7478