/[svn]/linuxsampler/trunk/src/network/lscpparser.cpp
ViewVC logotype

Diff of /linuxsampler/trunk/src/network/lscpparser.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 35 by schoenebeck, Fri Mar 5 13:46:15 2004 UTC revision 411 by schoenebeck, Sat Feb 26 02:01:14 2005 UTC
# Line 1  Line 1 
1  /* A Bison parser, made by GNU Bison 1.875a.  */  /* A Bison parser, made by GNU Bison 1.875d.  */
2    
3  /* Skeleton parser for Yacc-like parsing with Bison,  /* Skeleton parser for Yacc-like parsing with Bison,
4     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.     Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
5    
6     This program is free software; you can redistribute it and/or modify     This program is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by     it under the terms of the GNU General Public License as published by
# Line 47  Line 47 
47    
48    
49    
 /* Tokens.  */  
 #ifndef YYTOKENTYPE  
 # define YYTOKENTYPE  
    /* Put the tokens into the symbol table, so that GDB and other debuggers  
       know about them.  */  
    enum yytokentype {  
      CHAR = 258,  
      DOTNUM = 259,  
      NUMBER = 260,  
      SP = 261,  
      LF = 262,  
      CR = 263,  
      ADD = 264,  
      GET = 265,  
      LOAD = 266,  
      REMOVE = 267,  
      SET = 268,  
      SUBSCRIBE = 269,  
      UNSUBSCRIBE = 270,  
      RESET = 271,  
      QUIT = 272,  
      CHANNEL = 273,  
      NOTIFICATION = 274,  
      AVAILABLE_ENGINES = 275,  
      CHANNELS = 276,  
      INFO = 277,  
      BUFFER_FILL = 278,  
      STREAM_COUNT = 279,  
      VOICE_COUNT = 280,  
      INSTRUMENT = 281,  
      ENGINE = 282,  
      AUDIO_OUTPUT_CHANNEL = 283,  
      AUDIO_OUTPUT_TYPE = 284,  
      MIDI_INPUT_PORT = 285,  
      MIDI_INPUT_CHANNEL = 286,  
      MIDI_INPUT_TYPE = 287,  
      VOLUME = 288,  
      BYTES = 289,  
      PERCENTAGE = 290,  
      ALSA = 291,  
      JACK = 292  
    };  
 #endif  
 #define CHAR 258  
 #define DOTNUM 259  
 #define NUMBER 260  
 #define SP 261  
 #define LF 262  
 #define CR 263  
 #define ADD 264  
 #define GET 265  
 #define LOAD 266  
 #define REMOVE 267  
 #define SET 268  
 #define SUBSCRIBE 269  
 #define UNSUBSCRIBE 270  
 #define RESET 271  
 #define QUIT 272  
 #define CHANNEL 273  
 #define NOTIFICATION 274  
 #define AVAILABLE_ENGINES 275  
 #define CHANNELS 276  
 #define INFO 277  
 #define BUFFER_FILL 278  
 #define STREAM_COUNT 279  
 #define VOICE_COUNT 280  
 #define INSTRUMENT 281  
 #define ENGINE 282  
 #define AUDIO_OUTPUT_CHANNEL 283  
 #define AUDIO_OUTPUT_TYPE 284  
 #define MIDI_INPUT_PORT 285  
 #define MIDI_INPUT_CHANNEL 286  
 #define MIDI_INPUT_TYPE 287  
 #define VOLUME 288  
 #define BYTES 289  
 #define PERCENTAGE 290  
 #define ALSA 291  
 #define JACK 292  
   
50    
51    
52    
53  /* Copy the first part of user declarations.  */  /* Copy the first part of user declarations.  */
54  #line 23 "lscp.y"  #line 26 "lscp.y"
55    
56    
57  #include "lscpparser.h"  #include "lscpparser.h"
58  #include "lscpserver.h"  #include "lscpserver.h"
59    #include "lscpevent.h"
 // as we need an reentrant scanner, we have to pass the pointer to the scanner with each yylex() call  
 #define YYLEX_PARAM ((yyparse_param_t*) yyparse_param)->pScanner  
60    
61  // to save us typing work in the rules action definitions  // to save us typing work in the rules action definitions
62  #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer  #define LSCPSERVER ((yyparse_param_t*) yyparse_param)->pServer
63    
64  // clears input buffer and restarts scanner.  // clears input buffer
65  void restart(yyparse_param_t* pparam, int& yychar);  void restart(yyparse_param_t* pparam, int& yychar);
66  #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)  #define RESTART restart((yyparse_param_t*) YYPARSE_PARAM, yychar)
67    
 // external reference to the main scanner function yylex()  
 extern YY_DECL;  
   
 // external reference to restart the lex scanner  
 extern void yyrestart(FILE* input_file, yyscan_t yyscanner);  
   
68  // we provide our own version of yyerror() so we don't have to link against the yacc library  // we provide our own version of yyerror() so we don't have to link against the yacc library
69  void yyerror(const char* s);  void yyerror(const char* s);
70    
71    static char buf[1024]; // input buffer to feed the parser with new characters
72    static int bytes = 0;  // current number of characters in the input buffer
73    static int ptr   = 0;  // current position in the input buffer
74    
75    // external reference to the function which actually reads from the socket
76    extern int GetLSCPCommand( void *buf, int max_size);
77    
78    // custom scanner function which reads from the socket
79    int yylex(YYSTYPE* yylval) {
80        // check if we have to read new characters
81        if (ptr >= bytes) {
82            bytes = GetLSCPCommand(buf, 1023);
83            ptr   = 0;
84            if (bytes < 0) {
85                bytes = 0;
86                return 0;
87            }
88        }
89        return (int) buf[ptr++];
90    }
91    
92    
93    
94  /* Enabling traces.  */  /* Enabling traces.  */
# Line 183  typedef int YYSTYPE; Line 117  typedef int YYSTYPE;
117    
118    
119  /* Line 214 of yacc.c.  */  /* Line 214 of yacc.c.  */
120  #line 187 "y.tab.c"  #line 121 "y.tab.c"
121    
122  #if ! defined (yyoverflow) || YYERROR_VERBOSE  #if ! defined (yyoverflow) || YYERROR_VERBOSE
123    
124    # ifndef YYFREE
125    #  define YYFREE free
126    # endif
127    # ifndef YYMALLOC
128    #  define YYMALLOC malloc
129    # endif
130    
131  /* The parser invokes alloca or malloc; define the necessary symbols.  */  /* The parser invokes alloca or malloc; define the necessary symbols.  */
132    
133  # if YYSTACK_USE_ALLOCA  # ifdef YYSTACK_USE_ALLOCA
134  #  define YYSTACK_ALLOC alloca  #  if YYSTACK_USE_ALLOCA
135    #   define YYSTACK_ALLOC alloca
136    #  endif
137  # else  # else
138  #  ifndef YYSTACK_USE_ALLOCA  #  if defined (alloca) || defined (_ALLOCA_H)
139  #   if defined (alloca) || defined (_ALLOCA_H)  #   define YYSTACK_ALLOC alloca
140  #    define YYSTACK_ALLOC alloca  #  else
141  #   else  #   ifdef __GNUC__
142  #    ifdef __GNUC__  #    define YYSTACK_ALLOC __builtin_alloca
 #     define YYSTACK_ALLOC __builtin_alloca  
 #    endif  
143  #   endif  #   endif
144  #  endif  #  endif
145  # endif  # endif
# Line 211  typedef int YYSTYPE; Line 152  typedef int YYSTYPE;
152  #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */  #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
153  #   define YYSIZE_T size_t  #   define YYSIZE_T size_t
154  #  endif  #  endif
155  #  define YYSTACK_ALLOC malloc  #  define YYSTACK_ALLOC YYMALLOC
156  #  define YYSTACK_FREE free  #  define YYSTACK_FREE YYFREE
157  # endif  # endif
158  #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */  #endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */
159    
160    
161  #if (! defined (yyoverflow) \  #if (! defined (yyoverflow) \
162       && (! defined (__cplusplus) \       && (! defined (__cplusplus) \
163           || (YYSTYPE_IS_TRIVIAL)))           || (defined (YYSTYPE_IS_TRIVIAL) && YYSTYPE_IS_TRIVIAL)))
164    
165  /* A type that is properly aligned for any stack member.  */  /* A type that is properly aligned for any stack member.  */
166  union yyalloc  union yyalloc
167  {  {
168    short yyss;    short int yyss;
169    YYSTYPE yyvs;    YYSTYPE yyvs;
170    };    };
171    
# Line 234  union yyalloc Line 175  union yyalloc
175  /* The size of an array large to enough to hold all stacks, each with  /* The size of an array large to enough to hold all stacks, each with
176     N elements.  */     N elements.  */
177  # define YYSTACK_BYTES(N) \  # define YYSTACK_BYTES(N) \
178       ((N) * (sizeof (short) + sizeof (YYSTYPE))                         \       ((N) * (sizeof (short int) + sizeof (YYSTYPE))                     \
179        + YYSTACK_GAP_MAXIMUM)        + YYSTACK_GAP_MAXIMUM)
180    
181  /* Copy COUNT objects from FROM to TO.  The source and destination do  /* Copy COUNT objects from FROM to TO.  The source and destination do
182     not overlap.  */     not overlap.  */
183  # ifndef YYCOPY  # ifndef YYCOPY
184  #  if 1 < __GNUC__  #  if defined (__GNUC__) && 1 < __GNUC__
185  #   define YYCOPY(To, From, Count) \  #   define YYCOPY(To, From, Count) \
186        __builtin_memcpy (To, From, (Count) * sizeof (*(From)))        __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
187  #  else  #  else
# Line 276  union yyalloc Line 217  union yyalloc
217  #if defined (__STDC__) || defined (__cplusplus)  #if defined (__STDC__) || defined (__cplusplus)
218     typedef signed char yysigned_char;     typedef signed char yysigned_char;
219  #else  #else
220     typedef short yysigned_char;     typedef short int yysigned_char;
221  #endif  #endif
222    
223  /* YYFINAL -- State number of the termination state. */  /* YYFINAL -- State number of the termination state. */
224  #define YYFINAL  22  #define YYFINAL  40
225  /* YYLAST -- Last index in YYTABLE.  */  /* YYLAST -- Last index in YYTABLE.  */
226  #define YYLAST   123  #define YYLAST   3997
227    
228  /* YYNTOKENS -- Number of terminals. */  /* YYNTOKENS -- Number of terminals. */
229  #define YYNTOKENS  38  #define YYNTOKENS  227
230  /* YYNNTS -- Number of nonterminals. */  /* YYNNTS -- Number of nonterminals. */
231  #define YYNNTS  24  #define YYNNTS  91
232  /* YYNRULES -- Number of rules. */  /* YYNRULES -- Number of rules. */
233  #define YYNRULES  56  #define YYNRULES  417
234  /* YYNRULES -- Number of states. */  /* YYNRULES -- Number of states. */
235  #define YYNSTATES  136  #define YYNSTATES  1144
236    
237  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
238  #define YYUNDEFTOK  2  #define YYUNDEFTOK  2
239  #define YYMAXUTOK   292  #define YYMAXUTOK   257
240    
241  #define YYTRANSLATE(YYX)                                                \  #define YYTRANSLATE(YYX)                                                \
242    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)    ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
# Line 304  union yyalloc Line 245  union yyalloc
245  static const unsigned char yytranslate[] =  static const unsigned char yytranslate[] =
246  {  {
247         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,         0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
248         225,     2,     2,   226,     2,     2,     2,     2,     2,     2,
249         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
250         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,         2,     2,   224,    70,   223,     3,    71,    72,    73,   222,
251         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        74,    75,    76,     6,    77,     7,     5,    78,     8,     9,
252         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        10,    11,    12,    13,    14,    15,    16,    17,    79,    80,
253         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        81,     4,    82,    83,    84,    18,    19,    20,    21,    22,
254         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
255         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
256         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        43,    85,    86,    87,    88,    89,     2,    44,    45,    46,
257         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
258         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
259         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        67,    68,    69,    90,    91,    92,    93,     2,    94,    95,
260         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,        96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
261         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
262         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
263         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
264         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
265         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
266         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
267         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
268         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
269         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
270         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
271         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
272         2,     2,     2,     2,     2,     2,     2,     2,     2,     2,       216,   217,   218,   219,   220,   221,     1,     2
        2,     2,     2,     2,     2,     2,     1,     2,     3,     4,  
        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,  
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,  
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,  
       35,    36,    37  
273  };  };
274    
275  #if YYDEBUG  #if YYDEBUG
276  /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in  /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in
277     YYRHS.  */     YYRHS.  */
278  static const unsigned char yyprhs[] =  static const unsigned short int yyprhs[] =
279  {  {
280         0,     0,     3,     5,     9,    14,    15,    17,    19,    23,         0,     0,     3,     6,    10,    11,    13,    15,    17,    19,
281        27,    31,    37,    43,    49,    55,    61,    63,    65,    67,        22,    25,    28,    31,    35,    39,    43,    47,    51,    55,
282        73,    81,    87,    93,    99,   103,   107,   113,   119,   125,        61,    65,    69,    73,    77,    83,    85,    87,    89,    91,
283       131,   137,   143,   145,   147,   153,   157,   159,   161,   163,        93,    95,    97,    99,   101,   103,   105,   107,   109,   111,
284       165,   167,   169,   171,   173,   175,   177,   179,   181,   183,       113,   115,   121,   129,   139,   141,   147,   155,   165,   167,
285       185,   189,   191,   193,   196,   199,   201       169,   175,   181,   189,   199,   207,   217,   219,   225,   233,
286         239,   245,   251,   259,   269,   277,   287,   291,   295,   301,
287         305,   311,   315,   319,   323,   327,   331,   337,   345,   351,
288         361,   367,   373,   379,   385,   391,   395,   401,   403,   405,
289         407,   409,   411,   417,   425,   429,   431,   433,   435,   437,
290         439,   441,   443,   445,   447,   449,   451,   453,   455,   457,
291         459,   461,   463,   465,   467,   469,   472,   476,   481,   486,
292         488,   491,   493,   495,   497,   499,   501,   503,   505,   507,
293         509,   511,   513,   516,   519,   522,   525,   528,   531,   534,
294         537,   540,   542,   544,   546,   548,   550,   552,   554,   556,
295         558,   560,   562,   564,   566,   568,   570,   572,   574,   576,
296         578,   580,   582,   584,   586,   588,   590,   592,   594,   596,
297         598,   600,   602,   604,   606,   608,   610,   612,   614,   616,
298         618,   620,   622,   624,   626,   628,   630,   632,   634,   636,
299         638,   640,   642,   644,   646,   648,   650,   652,   654,   656,
300         658,   660,   662,   664,   666,   668,   670,   672,   674,   676,
301         678,   680,   682,   684,   686,   688,   690,   692,   694,   696,
302         698,   700,   702,   704,   706,   708,   710,   712,   714,   716,
303         718,   720,   722,   724,   726,   728,   730,   732,   734,   736,
304         738,   740,   742,   744,   746,   748,   750,   752,   754,   756,
305         758,   760,   762,   764,   766,   768,   770,   772,   774,   776,
306         778,   780,   782,   784,   786,   788,   790,   792,   794,   796,
307         798,   800,   802,   804,   806,   808,   810,   812,   814,   816,
308         818,   820,   822,   824,   826,   828,   830,   832,   834,   836,
309         838,   840,   842,   844,   846,   848,   850,   852,   854,   856,
310         858,   860,   862,   864,   866,   868,   870,   872,   874,   876,
311         878,   880,   882,   884,   886,   888,   890,   892,   894,   896,
312         898,   900,   902,   904,   906,   908,   910,   912,   914,   916,
313         918,   920,   922,   924,   926,   928,   930,   932,   934,   936,
314         938,   940,   942,   944,   946,   948,   950,   952,   954,   956,
315         958,   960,   962,   964,   966,   968,   970,   972,   974,   976,
316         978,   980,   982,   985,   988,   992,   996,   998,  1000,  1002,
317        1006,  1010,  1017,  1025,  1030,  1035,  1039,  1049,  1056,  1060,
318        1070,  1082,  1089,  1097,  1115,  1146,  1155,  1160,  1172,  1185,
319        1197,  1208,  1215,  1245,  1266,  1286,  1316,  1336,  1367,  1388,
320        1406,  1435,  1463,  1489,  1508,  1526,  1554,  1572,  1588,  1607,
321        1623,  1634,  1641,  1647,  1658,  1664,  1678,  1683
322  };  };
323    
324  /* YYRHS -- A `-1'-separated list of the rules' RHS. */  /* YYRHS -- A `-1'-separated list of the rules' RHS. */
325  static const yysigned_char yyrhs[] =  static const short int yyrhs[] =
326  {  {
327        39,     0,    -1,    40,    -1,    39,     7,    40,    -1,    39,       228,     0,    -1,   229,   267,    -1,   229,   268,   267,    -1,
328         8,     7,    40,    -1,    -1,    41,    -1,     1,    -1,     9,        -1,   230,    -1,   231,    -1,     1,    -1,     3,    -1,   230,
329         6,    18,    -1,    10,     6,    42,    -1,    11,     6,    43,         3,    -1,   230,   266,    -1,   230,   262,    -1,   230,   258,
330        -1,    12,     6,    18,     6,    51,    -1,    13,     6,    18,        -1,   269,   266,   282,    -1,   270,   266,   234,    -1,   271,
331         6,    44,    -1,    14,     6,    19,     6,    53,    -1,    15,       266,   236,    -1,   272,   266,   237,    -1,   273,   266,   242,
332         6,    19,     6,    56,    -1,    16,     6,    18,     6,    51,        -1,   274,   266,   238,    -1,   277,   266,   282,   266,   252,
333        -1,    17,    -1,    20,    -1,    21,    -1,    18,     6,    22,        -1,   278,   266,   235,    -1,   279,   266,   232,    -1,   280,
334         6,    51,    -1,    18,     6,    23,     6,    45,     6,    51,       266,   233,    -1,   281,   266,   264,    -1,   314,   266,   282,
335        -1,    18,     6,    24,     6,    51,    -1,    18,     6,    25,       266,   252,    -1,   314,    -1,   317,    -1,   285,    -1,   289,
336         6,    51,    -1,    27,     6,    22,     6,    57,    -1,    26,        -1,   288,    -1,   287,    -1,   286,    -1,   315,    -1,   285,
337         6,    46,    -1,    27,     6,    47,    -1,    28,     6,    51,        -1,   289,    -1,   288,    -1,   287,    -1,   286,    -1,   315,
338         6,    54,    -1,    29,     6,    51,     6,    48,    -1,    30,        -1,   283,    -1,   300,    -1,   306,   266,   286,   266,   258,
339         6,    51,     6,    58,    -1,    31,     6,    51,     6,    55,        -1,   305,   266,   286,   266,   258,   266,   258,    -1,   305,
340        -1,    32,     6,    51,     6,    49,    -1,    33,     6,    51,       266,   286,   266,   258,   266,   258,   266,   240,    -1,   284,
341         6,    50,    -1,    34,    -1,    35,    -1,    59,     6,    52,        -1,   296,   266,   286,   266,   258,    -1,   295,   266,   286,
342         6,    51,    -1,    57,     6,    51,    -1,    36,    -1,    37,       266,   258,   266,   258,    -1,   295,   266,   286,   266,   258,
343        -1,    36,    -1,     4,    -1,     5,    -1,     5,    -1,     5,       266,   258,   266,   240,    -1,   293,    -1,   303,    -1,   294,
344        -1,     5,    -1,     5,    -1,     5,    -1,    60,    -1,    61,       266,   286,   266,   262,    -1,   304,   266,   286,   266,   262,
345        -1,    60,    -1,    60,    -1,    59,     6,    60,    -1,    61,        -1,   307,   266,   286,   266,   262,   266,   262,    -1,   302,
346        -1,     5,    -1,    60,    61,    -1,    60,     5,    -1,     3,       266,   286,   266,   262,   266,   262,   266,   258,    -1,   298,
347        -1,    61,     3,    -1       266,   286,   266,   262,   266,   262,    -1,   297,   266,   286,
348         266,   262,   266,   262,   266,   258,    -1,   285,    -1,   282,
349         266,   286,   266,   252,    -1,   282,   266,   287,   266,   241,
350         266,   252,    -1,   282,   266,   288,   266,   252,    -1,   282,
351         266,   289,   266,   252,    -1,   291,   266,   286,   266,   254,
352          -1,   292,   266,   262,   266,   258,     4,   256,    -1,   297,
353         266,   262,   266,   262,   266,   258,     4,   256,    -1,   301,
354         266,   262,   266,   258,     4,   256,    -1,   302,   266,   262,
355         266,   262,   266,   258,     4,   256,    -1,   282,   266,   239,
356          -1,   316,   266,   257,    -1,   294,   266,   258,   266,   240,
357          -1,   294,   266,   258,    -1,   304,   266,   258,   266,   240,
358          -1,   304,   266,   258,    -1,   294,   266,   262,    -1,   304,
359         266,   262,    -1,   290,   266,   243,    -1,   291,   266,   244,
360          -1,   294,   266,   252,   266,   245,    -1,   298,   266,   252,
361         266,   246,   266,   246,    -1,   299,   266,   252,   266,   247,
362          -1,   310,   266,   252,   266,   245,   266,   248,   266,   249,
363          -1,   304,   266,   252,   266,   245,    -1,   307,   266,   252,
364         266,   248,    -1,   308,   266,   252,   266,   249,    -1,   309,
365         266,   252,   266,   250,    -1,   311,   266,   252,   266,   251,
366          -1,   258,     4,   256,    -1,   240,   266,   258,     4,   256,
367          -1,   312,    -1,   313,    -1,   293,    -1,   303,    -1,   285,
368          -1,   255,   266,   253,   266,   252,    -1,   276,   266,   255,
369         266,   253,   266,   252,    -1,   254,   266,   252,    -1,   262,
370          -1,   262,    -1,   258,    -1,   262,    -1,   262,    -1,   275,
371          -1,   258,    -1,   259,    -1,   262,    -1,   262,    -1,   262,
372          -1,   258,    -1,   265,    -1,   258,    -1,   265,    -1,   262,
373          -1,   259,    -1,   262,    -1,   258,    -1,   263,    -1,   258,
374         263,    -1,   260,     5,   260,    -1,     6,   260,     5,   260,
375          -1,     7,   260,     5,   260,    -1,   261,    -1,   260,   261,
376          -1,     8,    -1,     9,    -1,    10,    -1,    11,    -1,    12,
377          -1,    13,    -1,    14,    -1,    15,    -1,    16,    -1,    17,
378          -1,   261,    -1,     9,   260,    -1,    10,   260,    -1,    11,
379         260,    -1,    12,   260,    -1,    13,   260,    -1,    14,   260,
380          -1,    15,   260,    -1,    16,   260,    -1,    17,   260,    -1,
381          18,    -1,    19,    -1,    20,    -1,    21,    -1,    22,    -1,
382          23,    -1,    24,    -1,    25,    -1,    26,    -1,    27,    -1,
383          28,    -1,    29,    -1,    30,    -1,    31,    -1,    32,    -1,
384          33,    -1,    34,    -1,    35,    -1,    36,    -1,    37,    -1,
385          38,    -1,    39,    -1,    40,    -1,    41,    -1,    42,    -1,
386          43,    -1,    44,    -1,    45,    -1,    46,    -1,    47,    -1,
387          48,    -1,    49,    -1,    50,    -1,    51,    -1,    52,    -1,
388          53,    -1,    54,    -1,    55,    -1,    56,    -1,    57,    -1,
389          58,    -1,    59,    -1,    60,    -1,    61,    -1,    62,    -1,
390          63,    -1,    64,    -1,    65,    -1,    66,    -1,    67,    -1,
391          68,    -1,    69,    -1,     8,    -1,     9,    -1,    10,    -1,
392          11,    -1,    12,    -1,    13,    -1,    14,    -1,    15,    -1,
393          16,    -1,    17,    -1,    70,    -1,     3,    -1,    71,    -1,
394          72,    -1,    73,    -1,    74,    -1,    75,    -1,    76,    -1,
395           6,    -1,     7,    -1,     5,    -1,    77,    -1,    78,    -1,
396          79,    -1,    80,    -1,    81,    -1,     4,    -1,    82,    -1,
397          83,    -1,    84,    -1,    85,    -1,    86,    -1,    87,    -1,
398          88,    -1,    89,    -1,    90,    -1,    91,    -1,    92,    -1,
399          93,    -1,    94,    -1,    95,    -1,    96,    -1,    97,    -1,
400          98,    -1,    99,    -1,   100,    -1,   101,    -1,   102,    -1,
401         103,    -1,   104,    -1,   105,    -1,   106,    -1,   107,    -1,
402         108,    -1,   109,    -1,   110,    -1,   111,    -1,   112,    -1,
403         113,    -1,   114,    -1,   115,    -1,   116,    -1,   117,    -1,
404         118,    -1,   119,    -1,   120,    -1,   121,    -1,   122,    -1,
405         123,    -1,   124,    -1,   125,    -1,   126,    -1,   127,    -1,
406         128,    -1,   129,    -1,   130,    -1,   131,    -1,   132,    -1,
407         133,    -1,   134,    -1,   135,    -1,   136,    -1,   137,    -1,
408         138,    -1,   139,    -1,   140,    -1,   141,    -1,   142,    -1,
409         143,    -1,   144,    -1,   145,    -1,   146,    -1,   147,    -1,
410         148,    -1,   149,    -1,   150,    -1,   151,    -1,   152,    -1,
411         153,    -1,   154,    -1,   155,    -1,   156,    -1,   157,    -1,
412         158,    -1,   159,    -1,   160,    -1,   161,    -1,   162,    -1,
413         163,    -1,   164,    -1,   165,    -1,   166,    -1,   167,    -1,
414         168,    -1,   169,    -1,   170,    -1,   171,    -1,   172,    -1,
415         173,    -1,   174,    -1,   175,    -1,   176,    -1,   177,    -1,
416         178,    -1,   179,    -1,   180,    -1,   181,    -1,   182,    -1,
417         183,    -1,   184,    -1,   185,    -1,   186,    -1,   187,    -1,
418         188,    -1,   189,    -1,   190,    -1,   191,    -1,   192,    -1,
419         193,    -1,   194,    -1,   195,    -1,   196,    -1,   197,    -1,
420         198,    -1,   199,    -1,   200,    -1,   201,    -1,   202,    -1,
421         203,    -1,   204,    -1,   205,    -1,   206,    -1,   207,    -1,
422         208,    -1,   209,    -1,   210,    -1,   211,    -1,   212,    -1,
423         213,    -1,   214,    -1,   215,    -1,   216,    -1,   217,    -1,
424         218,    -1,   219,    -1,   220,    -1,   221,    -1,   266,    -1,
425         258,    -1,   264,   266,    -1,   264,   258,    -1,   222,   264,
426         222,    -1,   223,   264,   223,    -1,   224,    -1,   225,    -1,
427         226,    -1,    18,    21,    21,    -1,    24,    22,    37,    -1,
428          20,    35,    22,    18,    37,    22,    -1,    21,    22,    36,
429          37,    35,    32,    42,    -1,    29,    26,    36,    37,    -1,
430          29,    32,    18,    21,    -1,    18,    29,    29,    -1,    31,
431          32,    31,    89,    30,    32,    21,    18,    29,    -1,    35,
432          22,    30,    32,    39,    22,    -1,    36,    22,    37,    -1,
433          36,    38,    19,    36,    20,    35,    26,    19,    22,    -1,
434          38,    31,    36,    38,    19,    36,    20,    35,    26,    19,
435          22,    -1,    36,    22,    29,    22,    20,    37,    -1,    20,
436          25,    18,    31,    31,    22,    29,    -1,    18,    39,    18,
437          26,    29,    18,    19,    29,    22,    89,    22,    31,    24,
438          26,    31,    22,    36,    -1,    18,    39,    18,    26,    29,
439          18,    19,    29,    22,    89,    18,    38,    21,    26,    32,
440          89,    32,    38,    37,    33,    38,    37,    89,    21,    35,
441          26,    39,    22,    35,    36,    -1,    20,    25,    18,    31,
442          31,    22,    29,    36,    -1,    26,    31,    23,    32,    -1,
443          19,    38,    23,    23,    22,    35,    89,    23,    26,    29,
444          29,    -1,    36,    37,    35,    22,    18,    30,    89,    20,
445          32,    38,    31,    37,    -1,    39,    32,    26,    20,    22,
446          89,    20,    32,    38,    31,    37,    -1,    26,    31,    36,
447          37,    35,    38,    30,    22,    31,    37,    -1,    22,    31,
448          24,    26,    31,    22,    -1,    18,    38,    21,    26,    32,
449          89,    32,    38,    37,    33,    38,    37,    89,    21,    22,
450          39,    26,    20,    22,    89,    33,    18,    35,    18,    30,
451          22,    37,    22,    35,    -1,    18,    38,    21,    26,    32,
452          89,    32,    38,    37,    33,    38,    37,    89,    21,    22,
453          39,    26,    20,    22,    36,    -1,    18,    38,    21,    26,
454          32,    89,    32,    38,    37,    33,    38,    37,    89,    21,
455          22,    39,    26,    20,    22,    -1,    18,    38,    21,    26,
456          32,    89,    32,    38,    37,    33,    38,    37,    89,    21,
457          35,    26,    39,    22,    35,    89,    33,    18,    35,    18,
458          30,    22,    37,    22,    35,    -1,    18,    38,    21,    26,
459          32,    89,    32,    38,    37,    33,    38,    37,    89,    21,
460          35,    26,    39,    22,    35,    -1,    18,    38,    21,    26,
461          32,    89,    32,    38,    37,    33,    38,    37,    89,    20,
462          25,    18,    31,    31,    22,    29,    89,    33,    18,    35,
463          18,    30,    22,    37,    22,    35,    -1,    18,    38,    21,
464          26,    32,    89,    32,    38,    37,    33,    38,    37,    89,
465          20,    25,    18,    31,    31,    22,    29,    -1,    18,    38,
466          21,    26,    32,    89,    32,    38,    37,    33,    38,    37,
467          89,    37,    42,    33,    22,    -1,    18,    39,    18,    26,
468          29,    18,    19,    29,    22,    89,    30,    26,    21,    26,
469          89,    26,    31,    33,    38,    37,    89,    21,    35,    26,
470          39,    22,    35,    36,    -1,    30,    26,    21,    26,    89,
471          26,    31,    33,    38,    37,    89,    21,    22,    39,    26,
472          20,    22,    89,    33,    18,    35,    18,    30,    22,    37,
473          22,    35,    -1,    30,    26,    21,    26,    89,    26,    31,
474          33,    38,    37,    89,    33,    32,    35,    37,    89,    33,
475          18,    35,    18,    30,    22,    37,    22,    35,    -1,    30,
476          26,    21,    26,    89,    26,    31,    33,    38,    37,    89,
477          21,    22,    39,    26,    20,    22,    36,    -1,    30,    26,
478          21,    26,    89,    26,    31,    33,    38,    37,    89,    21,
479          22,    39,    26,    20,    22,    -1,    30,    26,    21,    26,
480          89,    26,    31,    33,    38,    37,    89,    21,    35,    26,
481          39,    22,    35,    89,    33,    18,    35,    18,    30,    22,
482          37,    22,    35,    -1,    30,    26,    21,    26,    89,    26,
483          31,    33,    38,    37,    89,    21,    35,    26,    39,    22,
484          35,    -1,    30,    26,    21,    26,    89,    26,    31,    33,
485          38,    37,    89,    33,    32,    35,    37,    -1,    30,    26,
486          21,    26,    89,    26,    31,    33,    38,    37,    89,    20,
487          25,    18,    31,    31,    22,    29,    -1,    30,    26,    21,
488          26,    89,    26,    31,    33,    38,    37,    89,    37,    42,
489          33,    22,    -1,    30,    26,    21,    26,    89,    26,    31,
490          33,    38,    37,    -1,    39,    32,    29,    38,    30,    22,
491          -1,    19,    42,    37,    22,    36,    -1,    33,    22,    35,
492          20,    22,    31,    37,    18,    24,    22,    -1,    35,    22,
493          36,    22,    37,    -1,    30,    26,    36,    20,    22,    29,
494          29,    18,    31,    22,    32,    38,    36,    -1,    22,    20,
495          25,    32,    -1,    34,    38,    26,    37,    -1
496  };  };
497    
498  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
499  static const unsigned char yyrline[] =  static const unsigned short int yyrline[] =
500  {  {
501         0,    76,    76,    77,    78,    81,    82,    83,    86,    87,         0,    81,    81,    82,    85,    86,    87,    88,    91,    92,
502        88,    89,    90,    91,    92,    93,    94,    97,    98,    99,        93,    94,    95,    98,    99,   100,   101,   102,   103,   104,
503       100,   101,   102,   103,   106,   107,   110,   111,   112,   113,       105,   106,   107,   108,   109,   110,   111,   114,   115,   116,
504       114,   115,   118,   119,   122,   125,   128,   129,   132,   135,       117,   118,   119,   122,   123,   124,   125,   126,   127,   130,
505       136,   139,   142,   145,   148,   151,   154,   157,   160,   163,       131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
506       164,   167,   168,   169,   170,   173,   174       141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
507         151,   152,   155,   156,   157,   158,   159,   160,   163,   164,
508         165,   166,   169,   170,   173,   174,   177,   178,   179,   180,
509         181,   182,   183,   184,   185,   188,   189,   192,   193,   196,
510         197,   198,   201,   202,   205,   208,   211,   214,   217,   220,
511         221,   224,   227,   228,   231,   234,   237,   240,   243,   244,
512         245,   246,   252,   253,   256,   257,   260,   261,   262,   266,
513         267,   270,   271,   272,   273,   274,   275,   276,   277,   278,
514         279,   282,   283,   284,   285,   286,   287,   288,   289,   290,
515         291,   293,   293,   293,   293,   293,   293,   293,   293,   293,
516         293,   293,   293,   293,   293,   293,   293,   293,   293,   293,
517         293,   293,   293,   293,   293,   293,   293,   294,   294,   294,
518         294,   294,   294,   294,   294,   294,   294,   294,   294,   294,
519         294,   294,   294,   294,   294,   294,   294,   294,   294,   294,
520         294,   294,   294,   295,   295,   295,   295,   295,   295,   295,
521         295,   295,   295,   296,   296,   296,   296,   296,   296,   296,
522         296,   296,   296,   296,   296,   296,   297,   297,   297,   297,
523         297,   297,   297,   298,   298,   298,   298,   298,   299,   299,
524         299,   299,   300,   300,   300,   301,   301,   301,   302,   302,
525         302,   303,   303,   303,   304,   304,   304,   305,   305,   305,
526         306,   306,   306,   307,   307,   307,   308,   308,   308,   309,
527         309,   309,   310,   310,   310,   311,   311,   311,   312,   312,
528         312,   313,   313,   313,   314,   314,   314,   315,   315,   315,
529         316,   316,   316,   317,   317,   317,   318,   318,   318,   319,
530         319,   319,   320,   320,   320,   321,   321,   321,   322,   322,
531         322,   323,   323,   323,   324,   324,   324,   325,   325,   325,
532         326,   326,   326,   327,   327,   327,   328,   328,   328,   329,
533         329,   329,   330,   330,   330,   331,   331,   331,   332,   332,
534         332,   333,   333,   333,   334,   334,   334,   335,   335,   335,
535         336,   336,   336,   337,   337,   337,   338,   338,   338,   339,
536         339,   339,   340,   340,   340,   341,   341,   341,   342,   342,
537         345,   346,   347,   348,   351,   352,   358,   361,   364,   367,
538         370,   373,   376,   379,   382,   385,   388,   391,   394,   397,
539         400,   403,   406,   409,   412,   415,   418,   421,   424,   427,
540         430,   433,   436,   439,   442,   445,   448,   451,   454,   457,
541         460,   463,   466,   469,   472,   475,   478,   481,   484,   487,
542         490,   493,   496,   499,   502,   505,   508,   511
543  };  };
544  #endif  #endif
545    
# Line 391  static const unsigned char yyrline[] = Line 548  static const unsigned char yyrline[] =
548     First, the terminals, then, starting at YYNTOKENS, nonterminals. */     First, the terminals, then, starting at YYNTOKENS, nonterminals. */
549  static const char *const yytname[] =  static const char *const yytname[] =
550  {  {
551    "$end", "error", "$undefined", "CHAR", "DOTNUM", "NUMBER", "SP", "LF",    "$end", "error", "$undefined", "'#'", "'='", "'.'", "'+'", "'-'", "'0'",
552    "CR", "ADD", "GET", "LOAD", "REMOVE", "SET", "SUBSCRIBE", "UNSUBSCRIBE",    "'1'", "'2'", "'3'", "'4'", "'5'", "'6'", "'7'", "'8'", "'9'", "'A'",
553    "RESET", "QUIT", "CHANNEL", "NOTIFICATION", "AVAILABLE_ENGINES",    "'B'", "'C'", "'D'", "'E'", "'F'", "'G'", "'H'", "'I'", "'J'", "'K'",
554    "CHANNELS", "INFO", "BUFFER_FILL", "STREAM_COUNT", "VOICE_COUNT",    "'L'", "'M'", "'N'", "'O'", "'P'", "'Q'", "'R'", "'S'", "'T'", "'U'",
555    "INSTRUMENT", "ENGINE", "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_TYPE",    "'V'", "'W'", "'X'", "'Y'", "'Z'", "'a'", "'b'", "'c'", "'d'", "'e'",
556    "MIDI_INPUT_PORT", "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "VOLUME",    "'f'", "'g'", "'h'", "'i'", "'j'", "'k'", "'l'", "'m'", "'n'", "'o'",
557    "BYTES", "PERCENTAGE", "ALSA", "JACK", "$accept", "input", "line",    "'p'", "'q'", "'r'", "'s'", "'t'", "'u'", "'v'", "'w'", "'x'", "'y'",
558    "command", "get_instruction", "load_instruction",    "'z'", "'!'", "'$'", "'%'", "'&'", "'('", "')'", "'*'", "','", "'/'",
559    "set_chan_instruction", "buffer_size_type", "load_instr_args",    "':'", "';'", "'<'", "'>'", "'?'", "'@'", "'['", "'\\\\'", "']'", "'^'",
560    "load_engine_args", "audio_output_type", "midi_input_type", "volume",    "'_'", "'{'", "'|'", "'}'", "'~'", "'\\200'", "'\\201'", "'\\202'",
561    "sampler_channel", "instrument_index", "udp_port",    "'\\203'", "'\\204'", "'\\205'", "'\\206'", "'\\207'", "'\\210'",
562    "audio_output_channel", "midi_input_channel", "session_id",    "'\\211'", "'\\212'", "'\\213'", "'\\214'", "'\\215'", "'\\216'",
563    "engine_name", "midi_input_port", "filename", "alpha_num_string",    "'\\217'", "'\\220'", "'\\221'", "'\\222'", "'\\223'", "'\\224'",
564    "string", 0    "'\\225'", "'\\226'", "'\\227'", "'\\230'", "'\\231'", "'\\232'",
565      "'\\233'", "'\\234'", "'\\235'", "'\\236'", "'\\237'", "' '", "'¡'",
566      "'¢'", "'£'", "'¤'", "'¥'", "'¦'", "'§'", "'¨'", "'©'", "'ª'", "'«'",
567      "'¬'", "'­'", "'®'", "'¯'", "'°'", "'±'", "'²'", "'³'", "'´'", "'µ'",
568      "'¶'", "'·'", "'¸'", "'¹'", "'º'", "'»'", "'¼'", "'½'", "'¾'", "'¿'",
569      "'À'", "'Á'", "'Â'", "'Ã'", "'Ä'", "'Å'", "'Æ'", "'Ç'", "'È'", "'É'",
570      "'Ê'", "'Ë'", "'Ì'", "'Í'", "'Î'", "'Ï'", "'Ð'", "'Ñ'", "'Ò'", "'Ó'",
571      "'Ô'", "'Õ'", "'Ö'", "'×'", "'Ø'", "'Ù'", "'Ú'", "'Û'", "'Ü'", "'Ý'",
572      "'Þ'", "'ß'", "'à'", "'á'", "'â'", "'ã'", "'ä'", "'å'", "'æ'", "'ç'",
573      "'è'", "'é'", "'ê'", "'ë'", "'ì'", "'í'", "'î'", "'ï'", "'ð'", "'ñ'",
574      "'ò'", "'ó'", "'ô'", "'õ'", "'ö'", "'÷'", "'ø'", "'ù'", "'ú'", "'û'",
575      "'ü'", "'ý'", "'þ'", "'ÿ'", "'''", "'\"'", "' '", "'\\n'", "'\\r'",
576      "$accept", "input", "line", "comment", "command", "subscribe_event",
577      "unsubscribe_event", "get_instruction", "set_instruction",
578      "create_instruction", "destroy_instruction", "load_instruction",
579      "set_chan_instruction", "key_val_list", "buffer_size_type",
580      "list_instruction", "load_instr_args", "load_engine_args",
581      "device_index", "audio_channel_index", "audio_output_type_name",
582      "midi_input_port_index", "midi_input_channel_index",
583      "midi_input_type_name", "volume_value", "sampler_channel",
584      "instrument_index", "engine_name", "filename", "param_val", "boolean",
585      "string", "dotnum", "digits", "digit", "number", "char", "text",
586      "stringval", "SP", "LF", "CR", "ADD", "GET", "CREATE", "DESTROY", "LIST",
587      "LOAD", "ALL", "NON_MODAL", "REMOVE", "SET", "SUBSCRIBE", "UNSUBSCRIBE",
588      "SELECT", "CHANNEL", "AVAILABLE_ENGINES",
589      "AVAILABLE_AUDIO_OUTPUT_DRIVERS", "CHANNELS", "INFO", "BUFFER_FILL",
590      "STREAM_COUNT", "VOICE_COUNT", "INSTRUMENT", "ENGINE",
591      "AUDIO_OUTPUT_DEVICE_PARAMETER", "AUDIO_OUTPUT_DEVICES",
592      "AUDIO_OUTPUT_DEVICE", "AUDIO_OUTPUT_DRIVER_PARAMETER",
593      "AUDIO_OUTPUT_DRIVER", "AUDIO_OUTPUT_CHANNEL_PARAMETER",
594      "AUDIO_OUTPUT_CHANNEL", "AUDIO_OUTPUT_TYPE",
595      "AVAILABLE_MIDI_INPUT_DRIVERS", "MIDI_INPUT_DEVICE_PARAMETER",
596      "MIDI_INPUT_PORT_PARAMETER", "MIDI_INPUT_DEVICES", "MIDI_INPUT_DEVICE",
597      "MIDI_INPUT_DRIVER_PARAMETER", "MIDI_INPUT_DRIVER", "MIDI_INPUT_PORT",
598      "MIDI_INPUT_CHANNEL", "MIDI_INPUT_TYPE", "MIDI_INPUT", "VOLUME", "BYTES",
599      "PERCENTAGE", "RESET", "MISCELLANEOUS", "ECHO", "QUIT", 0
600  };  };
601  #endif  #endif
602    
603  # ifdef YYPRINT  # ifdef YYPRINT
604  /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to  /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to
605     token YYLEX-NUM.  */     token YYLEX-NUM.  */
606  static const unsigned short yytoknum[] =  static const unsigned short int yytoknum[] =
607  {  {
608         0,   256,   257,   258,   259,   260,   261,   262,   263,   264,         0,   256,   257,    35,    61,    46,    43,    45,    48,    49,
609       265,   266,   267,   268,   269,   270,   271,   272,   273,   274,        50,    51,    52,    53,    54,    55,    56,    57,    65,    66,
610       275,   276,   277,   278,   279,   280,   281,   282,   283,   284,        67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
611       285,   286,   287,   288,   289,   290,   291,   292        77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
612          87,    88,    89,    90,    97,    98,    99,   100,   101,   102,
613         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
614         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
615          33,    36,    37,    38,    40,    41,    42,    44,    47,    58,
616          59,    60,    62,    63,    64,    91,    92,    93,    94,    95,
617         123,   124,   125,   126,   128,   129,   130,   131,   132,   133,
618         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
619         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
620         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
621         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
622         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
623         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
624         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
625         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
626         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
627         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
628         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
629         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
630         254,   255,    39,    34,    32,    10,    13
631  };  };
632  # endif  # endif
633    
634  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
635  static const unsigned char yyr1[] =  static const unsigned short int yyr1[] =
636  {  {
637         0,    38,    39,    39,    39,    40,    40,    40,    41,    41,         0,   227,   228,   228,   229,   229,   229,   229,   230,   230,
638        41,    41,    41,    41,    41,    41,    41,    42,    42,    42,       230,   230,   230,   231,   231,   231,   231,   231,   231,   231,
639        42,    42,    42,    42,    43,    43,    44,    44,    44,    44,       231,   231,   231,   231,   231,   231,   231,   232,   232,   232,
640        44,    44,    45,    45,    46,    47,    48,    48,    49,    50,       232,   232,   232,   233,   233,   233,   233,   233,   233,   234,
641        50,    51,    52,    53,    54,    55,    56,    57,    58,    59,       234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
642        59,    60,    60,    60,    60,    61,    61       234,   234,   234,   234,   234,   234,   234,   234,   234,   234,
643         234,   234,   235,   235,   235,   235,   235,   235,   236,   236,
644         236,   236,   237,   237,   238,   238,   239,   239,   239,   239,
645         239,   239,   239,   239,   239,   240,   240,   241,   241,   242,
646         242,   242,   243,   243,   244,   245,   246,   247,   248,   249,
647         249,   250,   251,   251,   252,   253,   254,   255,   256,   256,
648         256,   256,   257,   257,   258,   258,   259,   259,   259,   260,
649         260,   261,   261,   261,   261,   261,   261,   261,   261,   261,
650         261,   262,   262,   262,   262,   262,   262,   262,   262,   262,
651         262,   263,   263,   263,   263,   263,   263,   263,   263,   263,
652         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
653         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
654         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
655         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
656         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
657         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
658         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
659         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
660         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
661         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
662         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
663         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
664         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
665         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
666         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
667         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
668         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
669         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
670         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
671         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
672         263,   263,   263,   263,   263,   263,   263,   263,   263,   263,
673         264,   264,   264,   264,   265,   265,   266,   267,   268,   269,
674         270,   271,   272,   273,   274,   275,   276,   277,   278,   279,
675         280,   281,   282,   283,   284,   285,   286,   287,   288,   289,
676         290,   291,   292,   293,   294,   295,   296,   297,   298,   299,
677         300,   301,   302,   303,   304,   305,   306,   307,   308,   309,
678         310,   311,   312,   313,   314,   315,   316,   317
679  };  };
680    
681  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
682  static const unsigned char yyr2[] =  static const unsigned char yyr2[] =
683  {  {
684         0,     2,     1,     3,     4,     0,     1,     1,     3,     3,         0,     2,     2,     3,     0,     1,     1,     1,     1,     2,
685         3,     5,     5,     5,     5,     5,     1,     1,     1,     5,         2,     2,     2,     3,     3,     3,     3,     3,     3,     5,
686         7,     5,     5,     5,     3,     3,     5,     5,     5,     5,         3,     3,     3,     3,     5,     1,     1,     1,     1,     1,
687         5,     5,     1,     1,     5,     3,     1,     1,     1,     1,         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
688           1,     5,     7,     9,     1,     5,     7,     9,     1,     1,
689           5,     5,     7,     9,     7,     9,     1,     5,     7,     5,
690           5,     5,     7,     9,     7,     9,     3,     3,     5,     3,
691           5,     3,     3,     3,     3,     3,     5,     7,     5,     9,
692           5,     5,     5,     5,     5,     3,     5,     1,     1,     1,
693           1,     1,     5,     7,     3,     1,     1,     1,     1,     1,
694           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
695           1,     1,     1,     1,     1,     2,     3,     4,     4,     1,
696           2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
697           1,     1,     2,     2,     2,     2,     2,     2,     2,     2,
698           2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
699           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
700           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
701           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
702           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
703           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
704           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
705           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
706           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
707           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
708           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
709         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
710         3,     1,     1,     2,     2,     1,     2         1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
711           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
712           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
713           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
714           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
715           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
716           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
717           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
718           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
719           1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
720           1,     1,     2,     2,     3,     3,     1,     1,     1,     3,
721           3,     6,     7,     4,     4,     3,     9,     6,     3,     9,
722          11,     6,     7,    17,    30,     8,     4,    11,    12,    11,
723          10,     6,    29,    20,    19,    29,    19,    30,    20,    17,
724          28,    27,    25,    18,    17,    27,    17,    15,    18,    15,
725          10,     6,     5,    10,     5,    13,     4,     4
726  };  };
727    
728  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state  /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
729     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero     STATE-NUM when YYTABLE doesn't specify something else to do.  Zero
730     means the default is an error.  */     means the default is an error.  */
731  static const unsigned char yydefact[] =  static const unsigned short int yydefact[] =
732  {  {
733         0,     7,     0,     0,     0,     0,     0,     0,     0,     0,         0,     7,     8,     0,     0,     0,     0,     0,     0,     0,
734        16,     0,     2,     6,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     5,     6,     0,     0,     0,     0,
735         0,     0,     1,     0,     0,     8,     0,    17,    18,     0,         0,     0,     0,     0,     0,     0,     0,    25,    26,     0,
736         9,     0,     0,    10,     0,     0,     0,     0,     0,     3,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
737         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         1,   367,   368,     2,     0,     9,   219,   213,   211,   212,
738         4,     0,     0,     0,     0,     0,    55,    52,    24,     0,       121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
739        49,    51,    25,     0,    47,    41,    11,     0,     0,     0,       141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
740         0,     0,     0,    12,    43,    13,    14,    46,    15,     0,       151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
741         0,     0,     0,     0,     0,    54,    53,    56,     0,     0,       161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
742         0,     0,     0,     0,     0,    19,    32,    33,     0,    21,       171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
743        22,    23,    52,     0,    50,    35,     0,     0,     0,     0,       181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
744         191,   192,   203,   205,   206,   207,   208,   209,   210,   214,
745         215,   216,   217,   218,   220,   221,   222,   223,   224,   225,
746         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
747         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
748         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
749         256,   257,   258,   259,   260,   261,   262,   263,   264,   265,
750         266,   267,   268,   269,   270,   271,   272,   273,   274,   275,
751         276,   277,   278,   279,   280,   281,   282,   283,   284,   285,
752         286,   287,   288,   289,   290,   291,   292,   293,   294,   295,
753         296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
754         306,   307,   308,   309,   310,   311,   312,   313,   314,   315,
755         316,   317,   318,   319,   320,   321,   322,   323,   324,   325,
756         326,   327,   328,   329,   330,   331,   332,   333,   334,   335,
757         336,   337,   338,   339,   340,   341,   342,   343,   344,   345,
758         346,   347,   348,   349,   350,   351,   352,   353,   354,   355,
759         356,   357,   358,   359,   366,    12,   131,    11,   114,    10,
760           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
761           0,     0,   369,     0,     0,   370,     0,     0,     0,     0,
762           0,     0,   378,     0,     0,     3,   121,   122,   123,   124,
763         125,   126,   127,   128,   129,   130,   132,   119,   133,   134,
764         135,   136,   137,   138,   139,   140,   204,   193,   194,   195,
765         196,   197,   198,   199,   200,   201,   202,   115,     0,    13,
766           0,     0,     0,     0,    14,     0,    39,    44,    56,     0,
767          48,     0,     0,     0,     0,     0,    40,     0,    49,     0,
768           0,     0,     0,     0,     0,    15,     0,     0,    16,     0,
769           0,     0,     0,     0,    17,    91,    89,    90,     0,    18,
770           0,     0,     0,     0,     0,     0,    20,     0,     0,     0,
771           0,     0,     0,     0,     0,     0,     0,     0,    21,    27,
772          31,    30,    29,    28,    32,    22,    33,    37,    36,    35,
773          34,    38,   361,    23,   360,     0,     0,     0,   373,   374,
774         417,     0,     0,     0,     0,     0,   120,     0,     0,     0,
775           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
776           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
777           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
778           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
779           0,     0,   363,   362,     0,     0,     0,     0,   414,     0,
780           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
781           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
782           0,     0,     0,     0,     0,    69,    71,   122,   123,   124,
783         125,   126,   127,   128,   129,   130,    72,    73,     0,     0,
784           0,     0,     0,     0,     0,    74,     0,   107,     0,    75,
785           0,   106,    19,   104,     0,     0,     0,     0,     0,     0,
786          66,     0,     0,     0,     0,     0,     0,     0,     0,     0,
787           0,     0,     0,     0,    67,   113,   112,     0,     0,     0,
788           0,     0,    24,   371,     0,   377,   381,     0,     0,     0,
789           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
790           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
791           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
792           0,     0,     0,     0,     0,   416,     0,     0,     0,     0,
793           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
794           0,     0,     0,     0,   386,     0,     0,     0,   372,     0,
795           0,     0,     0,     0,     0,     0,     0,    57,     0,     0,
796           0,    87,    88,    59,    60,    61,    50,     0,    45,     0,
797           0,     0,    51,     0,    41,     0,     0,     0,    68,     0,
798          70,     0,     0,     0,     0,     0,   364,   365,     0,   105,
799           0,    94,     0,     0,     0,     0,     0,     0,     0,     0,
800           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
801           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
802         391,     0,     0,     0,     0,     0,     0,     0,     0,     0,
803           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
804         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
805        20,    34,    44,    26,    36,    37,    27,    28,    48,    45,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
806        29,    38,    30,    39,    40,    31         0,     0,     0,     0,   379,     0,   382,     0,     0,   382,
807           0,     0,     0,    58,    46,     0,    54,     0,    42,    52,
808           0,     0,     0,   211,   212,    85,   108,   111,     0,   119,
809         110,   109,     0,     0,     0,     0,     0,    92,     0,     0,
810           0,     0,     0,     0,    76,    95,     0,    96,    78,    97,
811          80,    81,    98,     0,    82,    99,   100,    83,   101,     0,
812           0,     0,    84,   102,   103,    62,     0,    64,     0,     0,
813           0,     0,     0,     0,     0,     0,   385,     0,     0,     0,
814           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
815           0,     0,     0,     0,     0,     0,     0,     0,     0,   411,
816           0,     0,     0,     0,     0,     0,     0,     0,     0,   380,
817           0,     0,     0,   412,     0,    47,    55,    53,    43,     0,
818           0,    86,     0,     0,   116,     0,     0,     0,     0,    93,
819           0,     0,     0,     0,    77,   375,     0,    63,    65,     0,
820           0,     0,     0,     0,     0,     0,     0,     0,     0,   117,
821         118,     0,     0,   390,     0,     0,     0,     0,     0,     0,
822           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
823           0,     0,     0,     0,   376,     0,     0,     0,     0,    79,
824         387,     0,     0,   389,     0,     0,     0,     0,     0,     0,
825           0,     0,     0,     0,     0,     0,     0,     0,     0,   410,
826           0,   388,     0,     0,     0,     0,     0,     0,     0,     0,
827           0,     0,     0,     0,     0,     0,     0,     0,     0,   415,
828           0,     0,     0,     0,     0,     0,     0,     0,   413,     0,
829           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
830           0,     0,     0,     0,     0,     0,     0,     0,     0,   407,
831           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
832           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
833           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
834           0,     0,     0,     0,     0,     0,     0,   383,     0,   404,
835         406,     0,     0,   404,     0,     0,     0,     0,     0,     0,
836           0,     0,   407,   409,     0,     0,     0,     0,     0,   403,
837           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
838           0,   394,   396,     0,     0,     0,     0,   394,     0,     0,
839           0,     0,     0,   399,     0,   398,   393,     0,     0,     0,
840           0,     0,     0,     0,     0,     0,   408,     0,     0,     0,
841           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
842           0,     0,     0,     0,   398,     0,     0,     0,     0,     0,
843           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
844           0,     0,     0,     0,     0,     0,   402,     0,     0,     0,
845           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
846         405,     0,   401,     0,     0,     0,   400,     0,     0,   395,
847           0,   392,   397,   384
848  };  };
849    
850  /* YYDEFGOTO[NTERM-NUM]. */  /* YYDEFGOTO[NTERM-NUM]. */
851  static const short yydefgoto[] =  static const short int yydefgoto[] =
852  {  {
853        -1,    11,    12,    13,    30,    33,    73,    98,    58,    62,        -1,    12,    13,    14,    15,   388,   395,   334,   376,   355,
854       126,   132,   135,    66,   103,    75,   123,   130,    76,    63,       358,   369,   530,   648,   630,   364,   515,   519,   774,   776,
855       127,    59,    60,    61       778,   781,   784,   787,   792,   522,   658,   520,   516,   755,
856         544,   756,   757,   758,   266,   523,   268,   403,   761,   703,
857          43,    44,    16,    17,    18,    19,    20,    21,   786,   518,
858          22,    23,    24,    25,    26,   329,   336,   337,   338,   390,
859         391,   392,   393,   370,   339,   378,   340,   341,   342,   343,
860         344,   345,   533,   346,   380,   347,   348,   349,   350,   351,
861         352,   536,   537,   538,   539,   631,   632,    27,   394,   382,
862          28
863  };  };
864    
865  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
866     STATE-NUM.  */     STATE-NUM.  */
867  #define YYPACT_NINF -48  #define YYPACT_NINF -705
868  static const yysigned_char yypact[] =  static const short int yypact[] =
869  {  {
870        10,   -48,    -4,     3,    25,    40,    56,    60,    64,    70,        55,  -705,  -705,    12,    25,    33,    80,    31,    39,    82,
871       -48,    28,   -48,   -48,    16,   -14,   -12,    57,    59,    61,         1,   101,   109,  -173,  1578,  -705,   -64,   -64,   -64,   -64,
872        62,    65,   -48,    10,    71,   -48,    73,   -48,   -48,    76,       -64,   -64,   -64,   -64,   -64,   -64,   -64,   -64,  -705,   182,
873       -48,    79,    80,   -48,    81,    82,    83,    84,    85,   -48,       171,   194,   207,   209,   228,   221,    97,    -1,   252,   234,
874        10,    20,    72,     0,    89,    88,    26,    90,     0,    88,      -705,  -705,  -705,  -705,    47,  -705,  -705,  -705,  -705,  -705,
875       -48,    91,    92,    93,    94,    95,   -48,   -48,   -48,    96,      -705,   241,   241,   241,   241,   241,   241,   241,   241,   241,
876        27,   100,   -48,    98,   100,   -48,   -48,    99,   101,   102,      -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
877       103,   104,   105,   -48,   -48,   -48,   -48,    27,   -48,    88,      -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
878        30,    88,    88,    89,    58,   -48,   100,   -48,    88,    88,      -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
879        88,    88,    88,    88,    88,   -48,   -48,   -48,   106,   -48,      -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
880       -48,   -48,   107,   108,    27,   -48,   109,   110,   111,   112,      -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
881       113,   114,    88,    88,   116,    31,     0,   117,    87,    69,      -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
882       -48,   -48,   -48,   -48,   -48,   -48,   -48,   -48,    27,   -48,      -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
883       -48,   -48,   -48,   -48,   -48,   -48      -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
884        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
885        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
886        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
887        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
888        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
889        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
890        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
891        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
892        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
893        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
894        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
895        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
896        -705,  -705,  -705,  -705,  -705,  2243,  -705,  -705,  -705,  -705,
897         253,     7,    78,    78,    65,   200,   253,   106,    62,    62,
898        1800,   253,  -705,   256,   238,  -705,   239,   257,   240,   247,
899         260,   261,  -705,   248,   249,  -705,  -705,  -705,  -705,  -705,
900        -705,  -705,  -705,  -705,  -705,  -705,   241,  -705,   241,   241,
901         241,   241,   241,   241,   241,   241,  -705,  -705,  -705,  -705,
902        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,   263,  -705,
903          96,   264,   254,   265,  -705,   -64,  -705,  -705,  -705,   -64,
904        -705,   -64,   -64,   -64,   -64,   -64,  -705,   -64,  -705,   -64,
905         -64,   -64,   -64,   255,   266,  -705,   -64,   -64,  -705,   -64,
906         -64,   259,   269,   280,  -705,  -705,  -705,  -705,   276,  -705,
907         -64,   -64,   -64,   270,   275,   283,  -705,   -64,   -64,   -64,
908         -64,   -64,   -64,   272,   281,   285,   278,   258,  -705,  -705,
909        -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
910        -705,  -705,  2243,  1800,  -705,   -64,   279,   282,  -705,  -705,
911        -705,   274,   284,   294,   298,   267,  -705,   301,   299,   304,
912         305,   302,   306,    61,   303,   303,   303,   303,   303,   303,
913         303,   303,   303,   303,   303,   314,   321,  2243,  2243,   251,
914         251,   322,   307,   326,   308,   -27,  2243,   251,   329,   327,
915         330,    20,   251,   251,   251,   251,  2462,   331,   332,   317,
916         328,   338,  2243,  -705,   251,   334,   325,   336,  -705,   335,
917         339,   337,   344,   350,   351,   347,   353,   354,   -64,   -64,
918         -64,   -64,   -64,   -64,   -64,   -64,   -64,   -64,   -64,   -64,
919         -64,   -64,   -64,   355,   356,  1800,  1800,   241,   241,   241,
920         241,   241,   241,   241,   241,   241,  -705,  -705,   357,   358,
921         359,   349,   333,  1800,  1800,  -705,   -64,  -705,   -64,  -705,
922         -64,  2243,  -705,  -705,   361,   352,   362,   360,   364,   363,
923        -705,   -64,   -64,   -64,   -64,   -64,   -64,   -64,   -64,   -64,
924         -64,   -64,   -64,   -64,  -705,  2243,  -705,   368,   365,   373,
925         374,   379,  -705,  -705,   366,  -705,  -705,   375,   380,   371,
926         372,   376,   378,   381,   318,   251,    21,   251,   251,  2243,
927         251,  2243,  2243,   251,   251,   251,   251,  2243,  2243,   251,
928         382,   324,  2243,  2243,   383,   385,   340,   384,   386,  1134,
929        1356,   251,   -44,   251,   388,  -705,   341,   389,   390,   377,
930         251,   251,   251,   251,   251,   251,   251,   251,   251,  2243,
931         251,  2243,   251,   396,  -705,   399,   404,   401,  -705,   405,
932         392,   406,   342,   414,   411,   412,   409,  -705,   394,   415,
933         -64,  -705,  -705,  -705,  -705,  -705,  -705,  1800,  2243,   -64,
934         -64,   -64,  -705,  1800,  2243,   -64,   367,   417,   -64,  2681,
935         -64,   369,   422,   419,   408,   370,  -705,  -705,   -64,  -705,
936         -64,  -705,   393,   421,   423,   424,   410,   -64,   -64,   -64,
937         -64,   -64,   -64,   -64,   -64,   -64,  2900,   -64,  3119,   -64,
938         416,   425,   427,   397,   430,   429,   431,   432,   434,   433,
939        -705,   435,   426,   448,   251,  2243,   251,   251,   251,  2243,
940         251,   464,   466,  2243,  2022,   467,   436,   469,   468,   471,
941         251,   251,   472,   475,   476,   444,   489,   251,   251,  2243,
942         251,   251,   225,  2243,   251,   201,  2022,  2243,  2022,  2243,
943         445,   506,   447,   441,  -705,   518,  -705,   500,   510,   504,
944         508,   521,   524,  -705,  1800,   -64,  -705,   -64,  1800,  -705,
945         507,   513,  3338,   241,   241,  -705,  2243,  -705,   105,   -34,
946        -705,  -705,   509,   504,   515,   527,   519,  -705,   -64,   512,
947         520,   463,   528,   533,  -705,  -705,   -64,  -705,  -705,  2243,
948        -705,  -705,  -705,   529,  -705,  -705,  -705,  -705,  2243,   -64,
949         241,   241,  -705,  -705,  -705,  -705,  3557,  -705,  3776,   534,
950         545,   544,   535,   546,   532,   548,  -705,   536,   530,   549,
951        2243,  2243,  2243,  2243,   538,   542,  2022,   142,   172,   241,
952         539,   543,   541,   552,   251,   547,   550,   551,   554,  -705,
953         251,   553,   251,  2022,  2022,   560,   556,   557,   555,  -705,
954         558,   501,   562,  -705,   561,   -64,  2243,  2243,   -64,   564,
955         563,  -705,   241,   241,   241,   568,   565,   567,   576,  -705,
956         572,   569,   570,   574,  -705,  -705,   -64,  -705,  -705,   566,
957         587,   573,   579,   575,   176,   523,   577,   578,   526,   241,
958         241,   580,   531,  -705,   588,   583,   559,   585,   586,   225,
959         594,   593,   596,   598,   599,   595,   600,   611,    90,   620,
960         602,   619,   604,   621,  -705,   606,   104,   612,   607,  -705,
961        -705,   608,   613,  -705,   581,   630,   628,   632,    64,   622,
962         631,   582,   643,   584,   645,   589,   647,   640,   636,   591,
963         639,  -705,   128,   650,   651,   655,   646,   661,   653,   667,
964         670,   654,   671,   656,   181,   657,   663,   662,    41,  -705,
965         675,    72,   669,   674,   624,   676,   678,   672,  -705,   697,
966         694,   699,   696,   698,   702,   701,   688,   641,   703,   700,
967         687,   713,   706,   709,   649,   718,   715,   722,   724,   658,
968         710,   730,   712,   732,   735,   716,   734,   658,    14,   738,
969         723,   726,   731,   737,   725,   736,   739,   740,   748,   741,
970         744,   756,   752,   757,   762,   754,   760,   765,   763,   747,
971         759,   755,   769,   764,   773,   772,   758,  -705,   766,   761,
972         711,   783,   785,  -705,   790,   761,   780,   792,   728,   795,
973         781,   784,  -705,  -705,   799,   803,   791,   793,   789,  -705,
974         796,   798,   806,   809,   812,   813,   805,   808,   818,   819,
975         816,   810,   767,   814,   811,   831,   832,  -705,   810,   822,
976         768,   834,   823,  -705,   824,   770,  -705,   825,   826,   771,
977         827,   833,   770,   828,   836,   845,  -705,   835,   854,   837,
978         852,   858,   855,   860,   861,   851,   863,   847,   794,   849,
979         856,   848,   853,   857,  -705,   862,   871,   869,   865,   874,
980         876,   875,   877,   884,   873,   872,   870,   867,   881,   878,
981         880,   888,   889,   893,   900,   901,  -705,   902,   903,   905,
982         891,   890,   895,   896,   898,   904,   899,   911,   915,   906,
983        -705,   916,  -705,   918,   908,   909,  -705,   910,   912,  -705,
984         913,  -705,  -705,  -705
985  };  };
986    
987  /* YYPGOTO[NTERM-NUM].  */  /* YYPGOTO[NTERM-NUM].  */
988  static const yysigned_char yypgoto[] =  static const short int yypgoto[] =
989  {  {
990       -48,   -48,   -11,   -48,   -48,   -48,   -48,   -48,   -48,   -48,      -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
991       -48,   -48,   -48,   -41,   -48,   -48,   -48,   -48,   -48,    13,      -705,  -705,  -705,  -582,  -705,  -705,  -705,  -705,  -497,  -427,
992       -48,   -48,   -47,   -44      -705,   114,    52,  -705,  -705,  -462,   199,   387,   391,  -704,
993        -705,   323,   223,    13,   -10,   -14,   277,  -293,  -419,   -11,
994         907,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,  -705,
995        -705,  -705,  -705,  -705,  -705,   -52,  -705,  -705,   -74,  -262,
996        -249,  -248,  -247,  -705,   677,  -705,   680,  -254,  -705,  -705,
997         673,   511,  -705,  -705,  -705,   681,   683,  -252,  -705,  -705,
998         514,  -705,  -705,  -705,  -705,  -705,  -705,  -705,   682,  -705,
999        -705
1000  };  };
1001    
1002  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
1003     positive, shift that token.  If negative, reduce the rule which     positive, shift that token.  If negative, reduce the rule which
1004     number is the opposite.  If zero, do what YYDEFACT says.     number is the opposite.  If zero, do what YYDEFACT says.
1005     If YYTABLE_NINF, syntax error.  */     If YYTABLE_NINF, syntax error.  */
1006  #define YYTABLE_NINF -43  #define YYTABLE_NINF -132
1007  static const short yytable[] =  static const short int yytable[] =
1008  {  {
1009        64,    77,    14,    56,    26,    57,    27,    28,    78,    15,       267,   650,   552,   269,   512,   270,   271,   272,   273,   274,
1010        -5,     1,    39,    29,    31,    32,    86,    -5,    -5,     2,       275,   276,   277,   278,   279,   280,   281,   397,   356,   359,
1011         3,     4,     5,     6,     7,     8,     9,    10,    22,    50,       357,   360,   795,    37,   797,   330,   517,   331,   291,   332,
1012        56,    16,    85,    86,    25,    23,    24,   104,    95,    64,       398,   399,   400,    29,  1008,   959,   292,   333,   527,    38,
1013        99,   100,    51,    52,    53,    54,    17,   105,   106,   107,       628,   307,   307,   307,   307,   307,   307,   307,   307,   307,
1014       108,   109,   110,   111,    67,    68,    69,    70,    71,    72,       528,  1009,    41,    42,   629,    31,     1,    33,     2,   529,
1015        86,    56,    18,   102,    96,    97,    19,   124,   125,   128,        30,   968,   922,    34,   306,   308,   309,   310,   311,   312,
1016        20,   120,   121,   133,   134,    34,    21,    35,    40,    41,       313,   314,   315,     3,   969,     4,     5,    35,   970,     6,
1017        36,    37,    42,    38,    86,    43,    44,    45,    46,    47,       383,   383,   362,   361,     7,   362,   936,   384,   384,     8,
1018        48,    49,    56,    65,    55,    74,   101,    79,    80,    81,         9,    10,   385,    11,   972,   363,   353,   386,   386,   937,
1019        82,    83,    84,    87,    88,    89,     0,    90,    91,    92,       387,   387,    32,   627,    36,   633,   634,   973,   354,    40,
1020        93,    94,   112,   -42,   113,   114,   115,   116,   117,   118,       819,   918,   851,   296,   297,   298,   299,   300,   301,   302,
1021       119,   122,   129,   131       303,   304,   305,   919,   373,   926,   328,   289,   374,   867,
1022         868,   661,    39,   290,   418,   419,   375,   927,   667,   668,
1023         669,   670,   671,   672,   673,   674,   675,   852,   950,   951,
1024         296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1025         264,   478,   482,   483,   484,   485,   486,   487,   488,   489,
1026         490,   491,   492,   517,   479,   480,   481,   853,   513,   514,
1027         296,   297,   298,   299,   300,   301,   302,   303,   304,   305,
1028        -131,  -131,  -131,   283,   895,   513,   514,   531,   896,   534,
1029         365,   963,   964,   282,   389,   396,   897,   790,   791,   296,
1030         497,   498,   499,   500,   501,   502,   503,   504,   505,   335,
1031         589,   590,   332,   780,   372,   377,   368,   789,   845,   405,
1032         284,   848,   743,   296,   497,   498,   499,   500,   501,   502,
1033         503,   504,   505,   783,   285,   286,   287,   288,   767,   296,
1034         297,   298,   299,   300,   301,   302,   303,   304,   305,   296,
1035         497,   498,   499,   500,   501,   502,   503,   504,   505,   404,
1036         294,   293,    41,   328,   406,   407,   408,   410,   409,   411,
1037          -4,    -4,   412,   413,   414,   421,   471,   415,   417,   420,
1038         461,   422,   436,   435,   442,   449,   416,   441,   416,   416,
1039         416,   416,   416,   416,   416,   416,   443,   444,   448,   450,
1040         457,   459,   458,   467,   469,   460,   465,   466,   470,   472,
1041         473,   468,   474,   475,   423,   509,   476,   477,   424,   384,
1042         425,   426,   427,   428,   429,   493,   430,   265,   431,   432,
1043         433,   434,   494,   508,   511,   437,   438,   510,   439,   440,
1044         524,   526,   525,   549,   547,   548,   553,   554,   555,   445,
1045         446,   447,   859,   550,   551,   588,   451,   452,   453,   454,
1046         455,   456,   556,   558,   557,   559,   560,   561,   562,   563,
1047         564,   580,   581,   584,   595,   586,   587,   594,   596,   585,
1048         598,   613,   463,   615,   464,   599,   616,   614,   597,   617,
1049         620,   619,   621,   864,   622,   623,   666,   626,   618,   624,
1050         664,   665,   625,   647,   646,   651,   652,   655,   680,   654,
1051         662,   681,   682,   683,   684,   506,   507,   685,   686,   653,
1052         663,   687,   688,   689,   690,   691,   692,   693,   540,   541,
1053         542,   543,   546,   702,   706,   707,   708,   713,   716,   714,
1054         715,   730,   734,   738,   731,   735,   701,   732,   705,   709,
1055         736,   802,   739,   741,   737,   763,   740,   565,   566,   567,
1056         568,   569,   570,   571,   572,   573,   574,   575,   576,   577,
1057         578,   579,   712,   742,   582,   583,   733,   307,   307,   307,
1058         307,   307,   307,   307,   307,   307,   750,   751,   765,   762,
1059         764,   766,   404,   404,   769,   591,   770,   592,   771,   593,
1060         306,   308,   309,   310,   311,   312,   313,   314,   315,   773,
1061         600,   601,   602,   603,   604,   605,   606,   607,   608,   609,
1062         610,   611,   612,   772,   799,   800,   801,   803,   804,   805,
1063         806,   807,   327,   808,   809,   814,   815,   820,   821,   822,
1064         825,   823,   827,   826,   828,   829,   636,   835,   831,   639,
1065         640,   641,   642,   836,   837,   645,   843,   838,   839,   840,
1066         841,   844,   857,   858,   842,   849,   855,   659,   463,   463,
1067         850,   856,   865,   862,   860,   863,   869,   870,   861,   871,
1068         874,   873,   876,   872,   884,   890,   677,   877,   679,   875,
1069         878,   881,   882,   402,   883,   885,   886,   888,   887,   891,
1070         893,   892,   898,   894,   899,   901,   900,   904,   902,   694,
1071         903,   905,   907,   910,   908,   911,   695,   912,   696,   697,
1072         698,   916,   699,   915,   700,   913,   914,   917,   920,   921,
1073         922,   923,   924,   925,   929,   928,   930,   710,   906,   711,
1074         931,   933,   934,   935,   938,   939,   717,   718,   719,   720,
1075         721,   722,   723,   724,   725,   941,   727,   943,   729,   945,
1076         932,   940,   946,   942,   947,   949,   952,   953,   944,   327,
1077         948,   954,   745,   746,   747,   955,   749,   956,   957,   958,
1078         760,   959,   961,   960,   759,   962,   965,   659,   966,   967,
1079         971,   974,   977,   775,   777,   975,   775,   782,   785,   979,
1080         775,   794,   760,   976,   760,   759,   759,   978,   759,   980,
1081         981,   982,   983,   984,   985,   987,   462,   986,   989,   991,
1082         988,   992,   990,   810,   811,   994,   812,   813,   995,   327,
1083         996,   997,   998,   307,   307,   993,   999,  1000,   416,  1001,
1084        1002,  1003,  1004,  1005,  1007,  1006,  1010,   824,  1011,  1012,
1085         495,   496,  1013,  1014,  1015,   830,   817,   818,  1016,   521,
1086        1019,  1018,   327,   327,  1023,  1017,  1020,  1021,   832,   545,
1087         307,   307,  1022,  1024,  1025,  1026,  1027,  1028,  1029,  1030,
1088        1031,  1033,  1032,  1035,  1036,  1034,  1037,  1039,   327,  1038,
1089        1040,  1041,   760,   817,   818,  1042,   759,   416,   416,   307,
1090        1043,  1044,  1045,  1047,  1048,  1049,   777,  1046,   782,   760,
1091         760,  1050,   327,   759,   759,  1051,  1052,  1054,  1057,  1055,
1092        1053,  1058,   854,  1056,  1059,  1060,   402,   402,  1061,  1062,
1093        1063,  1064,   307,   307,   416,  1065,  1066,  1068,  1069,  1070,
1094        1071,  1072,  1074,  1076,  1075,   889,  1067,  1073,  1078,  1077,
1095        1080,  1083,  1081,  1082,  1079,   879,   880,  1085,  1086,   416,
1096         416,  1084,  1087,  1089,  1088,   785,  1090,  1091,  1092,  1093,
1097        1094,  1095,  1096,  1097,  1098,  1100,  1099,  1102,  1101,  1104,
1098        1105,  1106,   521,  1109,   637,   638,  1107,  1103,  1108,  1110,
1099         643,   644,  1111,  1112,  1115,   649,   649,  1113,  1117,  1114,
1100         768,  1120,   462,   462,   327,   327,  1116,  1118,  1119,  1121,
1101         327,   327,  1122,  1123,  1124,  1125,   327,  1126,  1127,  1128,
1102        1129,  1130,   676,  1134,   678,  1131,  1133,  1135,  1137,  1132,
1103        1138,   909,  1136,  1139,  1140,  1141,   866,  1142,   793,  1143,
1104         379,   295,   371,   327,   366,   327,   635,   367,   381,     0,
1105           0,   401,   532,     0,     0,   535,     0,     0,     0,     0,
1106           0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
1107           0,     0,     0,   660,     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,   744,     0,
1111           0,   327,   748,     0,     0,   327,   752,     0,     0,   327,
1112           0,     0,     0,   327,     0,     0,     0,     0,     0,     0,
1113           0,     0,   779,     0,     0,     0,   788,     0,     0,     0,
1114         796,     0,   798,     0,     0,     0,   327,     0,     0,     0,
1115           0,     0,     0,     0,     0,   327,     0,     0,     0,     0,
1116           0,     0,     0,   327,     0,   327,     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,   327,   327,     0,     0,     0,     0,     0,
1122           0,     0,     0,   649,   846,   847,   649,   316,    46,    47,
1123          48,    49,   317,   318,   319,   320,   321,   322,   323,   324,
1124         325,   326,    60,    61,    62,    63,    64,    65,    66,    67,
1125          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1126          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1127          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1128          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1129         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1130         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1131         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1132         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1133         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1134         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1135         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1136         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1137         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1138         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1139         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1140         218,   219,   220,   221,   222,   223,   224,   225,   226,   227,
1141         228,   229,   230,   231,   232,   233,   234,   235,   236,   237,
1142         238,   239,   240,   241,   242,   243,   244,   245,   246,   247,
1143         248,   249,   250,   251,   252,   253,   254,   255,   256,   257,
1144         258,   259,   260,   261,   262,   263,   656,     0,   264,   316,
1145          46,    47,    48,    49,   317,   318,   319,   320,   321,   322,
1146         323,   324,   325,   326,    60,    61,    62,    63,    64,    65,
1147          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1148          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1149          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1150          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1151         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1152         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1153         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1154         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1155         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1156         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1157         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1158         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1159         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1160         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1161         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1162         216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1163         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1164         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1165         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1166         256,   257,   258,   259,   260,   261,   262,   263,     0,   657,
1167         264,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1168          54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1169          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1170          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1171          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1172          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1173         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1174         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1175         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1176         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1177         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1178         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1179         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1180         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1181         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1182         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1183         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1184         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1185         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1186         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1187         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1188         254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1189           0,     0,   264,   316,    46,    47,    48,    49,   317,   318,
1190         319,   320,   321,   322,   323,   324,   325,   326,    60,    61,
1191          62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1192          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1193          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1194          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1195         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1196         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1197         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1198         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1199         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1200         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1201         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1202         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1203         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1204         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1205         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1206         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1207         222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1208         232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1209         242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1210         252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1211         262,   263,     0,     0,   264,   316,    46,    47,   753,   754,
1212          50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1213          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1214          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1215          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1216          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1217         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1218         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1219         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1220         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1221         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1222         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1223         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1224         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1225         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1226         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1227         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1228         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1229         220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1230         230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1231         240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1232         250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1233         260,   261,   262,   263,   513,   514,   316,    46,    47,    48,
1234          49,   317,   318,   319,   320,   321,   322,   323,   324,   325,
1235         326,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1236          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1237          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1238          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1239          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1240         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1241         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1242         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1243         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1244         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1245         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1246         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1247         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1248         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1249         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1250         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1251         219,   220,   221,   222,   223,   224,   225,   226,   227,   228,
1252         229,   230,   231,   232,   233,   234,   235,   236,   237,   238,
1253         239,   240,   241,   242,   243,   244,   245,   246,   247,   248,
1254         249,   250,   251,   252,   253,   254,   255,   256,   257,   258,
1255         259,   260,   261,   262,   263,   316,    46,    47,    48,    49,
1256          50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1257          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1258          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1259          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1260          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1261         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1262         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1263         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1264         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1265         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1266         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1267         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1268         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1269         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1270         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1271         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1272         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1273         220,   221,   222,   223,   224,   225,   226,   227,   228,   229,
1274         230,   231,   232,   233,   234,   235,   236,   237,   238,   239,
1275         240,   241,   242,   243,   244,   245,   246,   247,   248,   249,
1276         250,   251,   252,   253,   254,   255,   256,   257,   258,   259,
1277         260,   261,   262,   263,   316,   704,    47,    48,    49,   317,
1278         318,   319,   320,   321,   322,   323,   324,   325,   326,    60,
1279          61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1280          71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1281          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1282          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1283         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1284         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1285         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1286         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1287         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1288         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1289         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1290         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1291         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1292         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1293         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1294         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1295         221,   222,   223,   224,   225,   226,   227,   228,   229,   230,
1296         231,   232,   233,   234,   235,   236,   237,   238,   239,   240,
1297         241,   242,   243,   244,   245,   246,   247,   248,   249,   250,
1298         251,   252,   253,   254,   255,   256,   257,   258,   259,   260,
1299         261,   262,   263,   316,   726,    47,    48,    49,   317,   318,
1300         319,   320,   321,   322,   323,   324,   325,   326,    60,    61,
1301          62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1302          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1303          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1304          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1305         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1306         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1307         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1308         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1309         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1310         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1311         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1312         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1313         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1314         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1315         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1316         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1317         222,   223,   224,   225,   226,   227,   228,   229,   230,   231,
1318         232,   233,   234,   235,   236,   237,   238,   239,   240,   241,
1319         242,   243,   244,   245,   246,   247,   248,   249,   250,   251,
1320         252,   253,   254,   255,   256,   257,   258,   259,   260,   261,
1321         262,   263,   316,   728,    47,    48,    49,   317,   318,   319,
1322         320,   321,   322,   323,   324,   325,   326,    60,    61,    62,
1323          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1324          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1325          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1326          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1327         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1328         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1329         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1330         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1331         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1332         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1333         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1334         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1335         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1336         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1337         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1338         213,   214,   215,   216,   217,   218,   219,   220,   221,   222,
1339         223,   224,   225,   226,   227,   228,   229,   230,   231,   232,
1340         233,   234,   235,   236,   237,   238,   239,   240,   241,   242,
1341         243,   244,   245,   246,   247,   248,   249,   250,   251,   252,
1342         253,   254,   255,   256,   257,   258,   259,   260,   261,   262,
1343         263,   316,   816,    47,    48,    49,   317,   318,   319,   320,
1344         321,   322,   323,   324,   325,   326,    60,    61,    62,    63,
1345          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1346          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1347          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1348          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1349         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1350         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1351         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1352         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1353         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1354         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1355         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1356         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1357         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1358         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1359         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1360         214,   215,   216,   217,   218,   219,   220,   221,   222,   223,
1361         224,   225,   226,   227,   228,   229,   230,   231,   232,   233,
1362         234,   235,   236,   237,   238,   239,   240,   241,   242,   243,
1363         244,   245,   246,   247,   248,   249,   250,   251,   252,   253,
1364         254,   255,   256,   257,   258,   259,   260,   261,   262,   263,
1365         316,   833,    47,    48,    49,   317,   318,   319,   320,   321,
1366         322,   323,   324,   325,   326,    60,    61,    62,    63,    64,
1367          65,    66,    67,    68,    69,    70,    71,    72,    73,    74,
1368          75,    76,    77,    78,    79,    80,    81,    82,    83,    84,
1369          85,    86,    87,    88,    89,    90,    91,    92,    93,    94,
1370          95,    96,    97,    98,    99,   100,   101,   102,   103,   104,
1371         105,   106,   107,   108,   109,   110,   111,   112,   113,   114,
1372         115,   116,   117,   118,   119,   120,   121,   122,   123,   124,
1373         125,   126,   127,   128,   129,   130,   131,   132,   133,   134,
1374         135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
1375         145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
1376         155,   156,   157,   158,   159,   160,   161,   162,   163,   164,
1377         165,   166,   167,   168,   169,   170,   171,   172,   173,   174,
1378         175,   176,   177,   178,   179,   180,   181,   182,   183,   184,
1379         185,   186,   187,   188,   189,   190,   191,   192,   193,   194,
1380         195,   196,   197,   198,   199,   200,   201,   202,   203,   204,
1381         205,   206,   207,   208,   209,   210,   211,   212,   213,   214,
1382         215,   216,   217,   218,   219,   220,   221,   222,   223,   224,
1383         225,   226,   227,   228,   229,   230,   231,   232,   233,   234,
1384         235,   236,   237,   238,   239,   240,   241,   242,   243,   244,
1385         245,   246,   247,   248,   249,   250,   251,   252,   253,   254,
1386         255,   256,   257,   258,   259,   260,   261,   262,   263,   316,
1387         834,    47,    48,    49,   317,   318,   319,   320,   321,   322,
1388         323,   324,   325,   326,    60,    61,    62,    63,    64,    65,
1389          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1390          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1391          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1392          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1393         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1394         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1395         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1396         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1397         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1398         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1399         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1400         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1401         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1402         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1403         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1404         216,   217,   218,   219,   220,   221,   222,   223,   224,   225,
1405         226,   227,   228,   229,   230,   231,   232,   233,   234,   235,
1406         236,   237,   238,   239,   240,   241,   242,   243,   244,   245,
1407         246,   247,   248,   249,   250,   251,   252,   253,   254,   255,
1408         256,   257,   258,   259,   260,   261,   262,   263
1409  };  };
1410    
1411  static const short yycheck[] =  static const short int yycheck[] =
1412  {  {
1413        44,    48,     6,     3,    18,     5,    20,    21,    49,     6,        14,   583,   464,    14,    31,    16,    17,    18,    19,    20,
1414         0,     1,    23,    27,    26,    27,    60,     7,     8,     9,        21,    22,    23,    24,    25,    26,    27,   279,   272,   273,
1415        10,    11,    12,    13,    14,    15,    16,    17,     0,    40,       272,   273,   726,    22,   728,    18,   445,    20,    29,    22,
1416         3,     6,     5,    77,    18,     7,     8,    84,    79,    83,       279,   279,   279,    21,    20,    21,    37,    30,    18,    38,
1417        81,    82,    22,    23,    24,    25,     6,    88,    89,    90,        19,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1418        91,    92,    93,    94,    28,    29,    30,    31,    32,    33,        30,    37,   225,   226,    33,    22,     1,    26,     3,    39,
1419       104,     3,     6,     5,    34,    35,     6,    36,    37,   116,        35,    20,    21,    32,    51,    52,    53,    54,    55,    56,
1420         6,   112,   113,     4,     5,    18,     6,    18,     7,     6,        57,    58,    59,    18,    33,    20,    21,    38,    37,    24,
1421        19,    19,     6,    18,   128,     6,     6,     6,     6,     6,        19,    19,    20,    18,    29,    20,    22,    26,    26,    34,
1422         6,     6,     3,     5,    22,     5,    83,     6,     6,     6,        35,    36,    30,    38,    22,    30,    18,    36,    36,    35,
1423         6,     6,     6,     3,     6,     6,    -1,     6,     6,     6,        39,    39,    22,   565,    22,   567,   568,    35,    30,     0,
1424         6,     6,     6,     6,     6,     6,     6,     6,     6,     6,         5,    21,   816,     8,     9,    10,    11,    12,    13,    14,
1425         6,     5,     5,    36        15,    16,    17,    33,    18,    21,    20,    30,    22,   833,
1426         834,   593,    31,    36,    38,    39,    30,    33,   600,   601,
1427         602,   603,   604,   605,   606,   607,   608,     5,    20,    21,
1428           8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1429         224,   423,   424,   425,   426,   427,   428,   429,   430,   431,
1430         432,   433,   434,   592,   423,   423,   423,     5,   222,   223,
1431           8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1432         224,   225,   226,    22,    18,   222,   223,   451,    22,   451,
1433         274,    20,    21,    21,   278,   279,    30,     6,     7,     8,
1434           9,    10,    11,    12,    13,    14,    15,    16,    17,   271,
1435         513,   514,    22,   720,   276,   277,    26,   724,   810,   281,
1436          36,   813,   694,     8,     9,    10,    11,    12,    13,    14,
1437          15,    16,    17,    18,    37,    36,    18,    26,   710,     8,
1438           9,    10,    11,    12,    13,    14,    15,    16,    17,     8,
1439           9,    10,    11,    12,    13,    14,    15,    16,    17,   280,
1440          36,    19,   225,    20,    18,    37,    37,    37,    21,    32,
1441         225,   226,    22,    22,    36,    31,    19,    38,    25,    25,
1442          32,    26,    26,    38,    25,    20,   306,    38,   308,   309,
1443         310,   311,   312,   313,   314,   315,    26,    31,    38,    26,
1444          38,    26,    31,    39,    20,    37,    37,    35,    20,    18,
1445          21,    37,    18,    18,   335,    18,    24,    21,   339,    26,
1446         341,   342,   343,   344,   345,    21,   347,    14,   349,   350,
1447         351,   352,    21,    21,    36,   356,   357,    21,   359,   360,
1448          21,    21,    25,    36,    23,    23,    22,    32,    22,   370,
1449         371,   372,   824,    35,    26,    32,   377,   378,   379,   380,
1450         381,   382,    37,    36,    35,    31,    26,    26,    31,    26,
1451          26,    26,    26,    26,    32,    26,    37,    26,    26,    31,
1452          26,    23,   403,    20,   405,    32,    22,    32,    38,    20,
1453          20,    26,    31,   830,    32,    29,    29,    89,    42,    31,
1454          21,    21,    31,    89,    32,    32,    31,    31,    22,    35,
1455          32,    22,    18,    22,    19,   439,   440,    35,    22,    89,
1456          89,    89,    18,    22,    22,    26,    42,    22,   452,   453,
1457         454,   455,   456,    26,    22,    26,    38,    26,    38,    26,
1458          26,    35,    22,    19,    29,    26,    89,    30,    89,    89,
1459          29,    20,    29,    37,    32,    29,    31,   478,   479,   480,
1460         481,   482,   483,   484,   485,   486,   487,   488,   489,   490,
1461         491,   492,    89,    35,   495,   496,    89,   497,   498,   499,
1462         500,   501,   502,   503,   504,   505,    32,    31,    30,    32,
1463          31,    30,   513,   514,    32,   516,    31,   518,    32,   520,
1464         497,   498,   499,   500,   501,   502,   503,   504,   505,    30,
1465         531,   532,   533,   534,   535,   536,   537,   538,   539,   540,
1466         541,   542,   543,    89,    89,    29,    89,    19,    38,    29,
1467          36,    33,   265,    22,    20,    38,    33,    38,    33,    22,
1468          38,    32,    89,    33,    26,    22,   570,    23,    29,   573,
1469         574,   575,   576,    18,    20,   579,    36,    32,    22,    37,
1470          22,    22,    31,    21,    38,    37,    37,   591,   589,   590,
1471          38,    38,    29,    32,    37,    31,    26,    31,    38,    32,
1472          89,    33,    31,    38,    18,    29,   610,    33,   612,    37,
1473          37,    33,    37,   280,    37,    33,    37,    33,    38,    22,
1474          31,    38,    89,    38,    37,    89,    38,    29,    38,   630,
1475          89,    38,    37,    29,    38,    32,   637,    31,   639,   640,
1476         641,    31,   643,    38,   645,    37,    37,    26,    18,    37,
1477          21,    37,    21,    37,    37,    33,    38,   658,    89,   660,
1478          37,    21,    24,    21,    32,    24,   667,   668,   669,   670,
1479         671,   672,   673,   674,   675,    22,   677,    22,   679,    22,
1480          89,    89,    32,    89,    38,    36,    26,    26,    89,   402,
1481          89,    26,   696,   697,   698,    39,   700,    26,    35,    22,
1482         704,    21,    21,    39,   704,    39,    39,   711,    35,    37,
1483          25,    32,    26,   717,   718,    31,   720,   721,   722,    37,
1484         724,   725,   726,    89,   728,   725,   726,    39,   728,    22,
1485          26,    22,    26,    25,    22,    37,   403,    26,    25,    42,
1486          89,    18,    32,   744,   745,    26,   747,   748,    89,   462,
1487          22,    26,    20,   753,   754,    39,    22,    89,   758,    39,
1488          20,    39,    20,    18,    20,    39,    18,   768,    35,    33,
1489         437,   438,    31,    26,    39,   776,   753,   754,    32,   446,
1490          22,    31,   495,   496,    22,    36,    35,    33,   789,   456,
1491         790,   791,    26,    26,    22,    31,    26,    22,    25,    42,
1492          31,    22,    37,    20,    22,    31,    38,    36,   521,    33,
1493          89,    18,   816,   790,   791,    20,   816,   817,   818,   819,
1494          20,    31,    20,    18,    33,    31,   830,    89,   832,   833,
1495         834,    22,   545,   833,   834,    22,    35,    38,    22,    33,
1496          37,    22,   819,    35,    22,    22,   513,   514,    33,    31,
1497          22,    22,   852,   853,   854,    29,    36,    33,    37,    18,
1498          18,    29,    18,    29,    31,   866,    89,    89,    33,    89,
1499          89,    33,    35,    30,    38,   852,   853,    22,    33,   879,
1500         880,    35,    18,    21,    37,   889,    18,    22,    18,    18,
1501          29,    18,    35,    89,    35,    37,    30,    30,    35,    18,
1502          21,    26,   569,    18,   571,   572,    22,    35,    22,    22,
1503         577,   578,    18,    30,    37,   582,   583,    35,    30,    39,
1504         711,    22,   589,   590,   637,   638,    35,    37,    30,    26,
1505         643,   644,    22,    22,    22,    22,   649,    22,    37,    39,
1506          35,    35,   609,    22,   611,    37,    37,    22,    22,    35,
1507          22,   889,    36,    35,    35,    35,   832,    35,   725,    36,
1508         277,    44,   275,   676,   274,   678,   569,   274,   277,    -1,
1509          -1,   279,   451,    -1,    -1,   451,    -1,    -1,    -1,    -1,
1510          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1511          -1,    -1,    -1,   592,    -1,    -1,    -1,    -1,    -1,    -1,
1512          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1513          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1514          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   695,    -1,
1515          -1,   744,   699,    -1,    -1,   748,   703,    -1,    -1,   752,
1516          -1,    -1,    -1,   756,    -1,    -1,    -1,    -1,    -1,    -1,
1517          -1,    -1,   719,    -1,    -1,    -1,   723,    -1,    -1,    -1,
1518         727,    -1,   729,    -1,    -1,    -1,   779,    -1,    -1,    -1,
1519          -1,    -1,    -1,    -1,    -1,   788,    -1,    -1,    -1,    -1,
1520          -1,    -1,    -1,   796,    -1,   798,    -1,    -1,    -1,    -1,
1521          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1522          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1523          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1524          -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
1525          -1,    -1,    -1,   846,   847,    -1,    -1,    -1,    -1,    -1,
1526          -1,    -1,    -1,   810,   811,   812,   813,     3,     4,     5,
1527           6,     7,     8,     9,    10,    11,    12,    13,    14,    15,
1528          16,    17,    18,    19,    20,    21,    22,    23,    24,    25,
1529          26,    27,    28,    29,    30,    31,    32,    33,    34,    35,
1530          36,    37,    38,    39,    40,    41,    42,    43,    44,    45,
1531          46,    47,    48,    49,    50,    51,    52,    53,    54,    55,
1532          56,    57,    58,    59,    60,    61,    62,    63,    64,    65,
1533          66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
1534          76,    77,    78,    79,    80,    81,    82,    83,    84,    85,
1535          86,    87,    88,    89,    90,    91,    92,    93,    94,    95,
1536          96,    97,    98,    99,   100,   101,   102,   103,   104,   105,
1537         106,   107,   108,   109,   110,   111,   112,   113,   114,   115,
1538         116,   117,   118,   119,   120,   121,   122,   123,   124,   125,
1539         126,   127,   128,   129,   130,   131,   132,   133,   134,   135,
1540         136,   137,   138,   139,   140,   141,   142,   143,   144,   145,
1541         146,   147,   148,   149,   150,   151,   152,   153,   154,   155,
1542         156,   157,   158,   159,   160,   161,   162,   163,   164,   165,
1543         166,   167,   168,   169,   170,   171,   172,   173,   174,   175,
1544         176,   177,   178,   179,   180,   181,   182,   183,   184,   185,
1545         186,   187,   188,   189,   190,   191,   192,   193,   194,   195,
1546         196,   197,   198,   199,   200,   201,   202,   203,   204,   205,
1547         206,   207,   208,   209,   210,   211,   212,   213,   214,   215,
1548         216,   217,   218,   219,   220,   221,   222,    -1,   224,     3,
1549           4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1550          14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1551          24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1552          34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1553          44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1554          54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1555          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1556          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1557          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1558          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1559         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1560         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1561         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1562         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1563         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1564         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1565         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1566         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1567         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1568         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1569         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1570         214,   215,   216,   217,   218,   219,   220,   221,    -1,   223,
1571         224,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1572          12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1573          22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1574          32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1575          42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1576          52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1577          62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1578          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1579          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1580          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1581         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1582         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1583         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1584         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1585         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1586         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1587         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1588         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1589         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1590         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1591         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1592         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1593          -1,    -1,   224,     3,     4,     5,     6,     7,     8,     9,
1594          10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1595          20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1596          30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1597          40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1598          50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1599          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1600          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1601          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1602          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1603         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1604         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1605         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1606         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1607         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1608         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1609         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1610         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1611         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1612         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1613         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1614         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1615         220,   221,    -1,    -1,   224,     3,     4,     5,     6,     7,
1616           8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1617          18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1618          28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1619          38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1620          48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1621          58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1622          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1623          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1624          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1625          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1626         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1627         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1628         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1629         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1630         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1631         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1632         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1633         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1634         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1635         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1636         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1637         218,   219,   220,   221,   222,   223,     3,     4,     5,     6,
1638           7,     8,     9,    10,    11,    12,    13,    14,    15,    16,
1639          17,    18,    19,    20,    21,    22,    23,    24,    25,    26,
1640          27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
1641          37,    38,    39,    40,    41,    42,    43,    44,    45,    46,
1642          47,    48,    49,    50,    51,    52,    53,    54,    55,    56,
1643          57,    58,    59,    60,    61,    62,    63,    64,    65,    66,
1644          67,    68,    69,    70,    71,    72,    73,    74,    75,    76,
1645          77,    78,    79,    80,    81,    82,    83,    84,    85,    86,
1646          87,    88,    89,    90,    91,    92,    93,    94,    95,    96,
1647          97,    98,    99,   100,   101,   102,   103,   104,   105,   106,
1648         107,   108,   109,   110,   111,   112,   113,   114,   115,   116,
1649         117,   118,   119,   120,   121,   122,   123,   124,   125,   126,
1650         127,   128,   129,   130,   131,   132,   133,   134,   135,   136,
1651         137,   138,   139,   140,   141,   142,   143,   144,   145,   146,
1652         147,   148,   149,   150,   151,   152,   153,   154,   155,   156,
1653         157,   158,   159,   160,   161,   162,   163,   164,   165,   166,
1654         167,   168,   169,   170,   171,   172,   173,   174,   175,   176,
1655         177,   178,   179,   180,   181,   182,   183,   184,   185,   186,
1656         187,   188,   189,   190,   191,   192,   193,   194,   195,   196,
1657         197,   198,   199,   200,   201,   202,   203,   204,   205,   206,
1658         207,   208,   209,   210,   211,   212,   213,   214,   215,   216,
1659         217,   218,   219,   220,   221,     3,     4,     5,     6,     7,
1660           8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1661          18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1662          28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1663          38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1664          48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1665          58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1666          68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1667          78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1668          88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1669          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1670         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1671         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1672         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1673         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1674         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1675         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1676         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1677         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1678         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1679         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1680         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1681         218,   219,   220,   221,     3,     4,     5,     6,     7,     8,
1682           9,    10,    11,    12,    13,    14,    15,    16,    17,    18,
1683          19,    20,    21,    22,    23,    24,    25,    26,    27,    28,
1684          29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
1685          39,    40,    41,    42,    43,    44,    45,    46,    47,    48,
1686          49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
1687          59,    60,    61,    62,    63,    64,    65,    66,    67,    68,
1688          69,    70,    71,    72,    73,    74,    75,    76,    77,    78,
1689          79,    80,    81,    82,    83,    84,    85,    86,    87,    88,
1690          89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
1691          99,   100,   101,   102,   103,   104,   105,   106,   107,   108,
1692         109,   110,   111,   112,   113,   114,   115,   116,   117,   118,
1693         119,   120,   121,   122,   123,   124,   125,   126,   127,   128,
1694         129,   130,   131,   132,   133,   134,   135,   136,   137,   138,
1695         139,   140,   141,   142,   143,   144,   145,   146,   147,   148,
1696         149,   150,   151,   152,   153,   154,   155,   156,   157,   158,
1697         159,   160,   161,   162,   163,   164,   165,   166,   167,   168,
1698         169,   170,   171,   172,   173,   174,   175,   176,   177,   178,
1699         179,   180,   181,   182,   183,   184,   185,   186,   187,   188,
1700         189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
1701         199,   200,   201,   202,   203,   204,   205,   206,   207,   208,
1702         209,   210,   211,   212,   213,   214,   215,   216,   217,   218,
1703         219,   220,   221,     3,     4,     5,     6,     7,     8,     9,
1704          10,    11,    12,    13,    14,    15,    16,    17,    18,    19,
1705          20,    21,    22,    23,    24,    25,    26,    27,    28,    29,
1706          30,    31,    32,    33,    34,    35,    36,    37,    38,    39,
1707          40,    41,    42,    43,    44,    45,    46,    47,    48,    49,
1708          50,    51,    52,    53,    54,    55,    56,    57,    58,    59,
1709          60,    61,    62,    63,    64,    65,    66,    67,    68,    69,
1710          70,    71,    72,    73,    74,    75,    76,    77,    78,    79,
1711          80,    81,    82,    83,    84,    85,    86,    87,    88,    89,
1712          90,    91,    92,    93,    94,    95,    96,    97,    98,    99,
1713         100,   101,   102,   103,   104,   105,   106,   107,   108,   109,
1714         110,   111,   112,   113,   114,   115,   116,   117,   118,   119,
1715         120,   121,   122,   123,   124,   125,   126,   127,   128,   129,
1716         130,   131,   132,   133,   134,   135,   136,   137,   138,   139,
1717         140,   141,   142,   143,   144,   145,   146,   147,   148,   149,
1718         150,   151,   152,   153,   154,   155,   156,   157,   158,   159,
1719         160,   161,   162,   163,   164,   165,   166,   167,   168,   169,
1720         170,   171,   172,   173,   174,   175,   176,   177,   178,   179,
1721         180,   181,   182,   183,   184,   185,   186,   187,   188,   189,
1722         190,   191,   192,   193,   194,   195,   196,   197,   198,   199,
1723         200,   201,   202,   203,   204,   205,   206,   207,   208,   209,
1724         210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
1725         220,   221,     3,     4,     5,     6,     7,     8,     9,    10,
1726          11,    12,    13,    14,    15,    16,    17,    18,    19,    20,
1727          21,    22,    23,    24,    25,    26,    27,    28,    29,    30,
1728          31,    32,    33,    34,    35,    36,    37,    38,    39,    40,
1729          41,    42,    43,    44,    45,    46,    47,    48,    49,    50,
1730          51,    52,    53,    54,    55,    56,    57,    58,    59,    60,
1731          61,    62,    63,    64,    65,    66,    67,    68,    69,    70,
1732          71,    72,    73,    74,    75,    76,    77,    78,    79,    80,
1733          81,    82,    83,    84,    85,    86,    87,    88,    89,    90,
1734          91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
1735         101,   102,   103,   104,   105,   106,   107,   108,   109,   110,
1736         111,   112,   113,   114,   115,   116,   117,   118,   119,   120,
1737         121,   122,   123,   124,   125,   126,   127,   128,   129,   130,
1738         131,   132,   133,   134,   135,   136,   137,   138,   139,   140,
1739         141,   142,   143,   144,   145,   146,   147,   148,   149,   150,
1740         151,   152,   153,   154,   155,   156,   157,   158,   159,   160,
1741         161,   162,   163,   164,   165,   166,   167,   168,   169,   170,
1742         171,   172,   173,   174,   175,   176,   177,   178,   179,   180,
1743         181,   182,   183,   184,   185,   186,   187,   188,   189,   190,
1744         191,   192,   193,   194,   195,   196,   197,   198,   199,   200,
1745         201,   202,   203,   204,   205,   206,   207,   208,   209,   210,
1746         211,   212,   213,   214,   215,   216,   217,   218,   219,   220,
1747         221,     3,     4,     5,     6,     7,     8,     9,    10,    11,
1748          12,    13,    14,    15,    16,    17,    18,    19,    20,    21,
1749          22,    23,    24,    25,    26,    27,    28,    29,    30,    31,
1750          32,    33,    34,    35,    36,    37,    38,    39,    40,    41,
1751          42,    43,    44,    45,    46,    47,    48,    49,    50,    51,
1752          52,    53,    54,    55,    56,    57,    58,    59,    60,    61,
1753          62,    63,    64,    65,    66,    67,    68,    69,    70,    71,
1754          72,    73,    74,    75,    76,    77,    78,    79,    80,    81,
1755          82,    83,    84,    85,    86,    87,    88,    89,    90,    91,
1756          92,    93,    94,    95,    96,    97,    98,    99,   100,   101,
1757         102,   103,   104,   105,   106,   107,   108,   109,   110,   111,
1758         112,   113,   114,   115,   116,   117,   118,   119,   120,   121,
1759         122,   123,   124,   125,   126,   127,   128,   129,   130,   131,
1760         132,   133,   134,   135,   136,   137,   138,   139,   140,   141,
1761         142,   143,   144,   145,   146,   147,   148,   149,   150,   151,
1762         152,   153,   154,   155,   156,   157,   158,   159,   160,   161,
1763         162,   163,   164,   165,   166,   167,   168,   169,   170,   171,
1764         172,   173,   174,   175,   176,   177,   178,   179,   180,   181,
1765         182,   183,   184,   185,   186,   187,   188,   189,   190,   191,
1766         192,   193,   194,   195,   196,   197,   198,   199,   200,   201,
1767         202,   203,   204,   205,   206,   207,   208,   209,   210,   211,
1768         212,   213,   214,   215,   216,   217,   218,   219,   220,   221,
1769           3,     4,     5,     6,     7,     8,     9,    10,    11,    12,
1770          13,    14,    15,    16,    17,    18,    19,    20,    21,    22,
1771          23,    24,    25,    26,    27,    28,    29,    30,    31,    32,
1772          33,    34,    35,    36,    37,    38,    39,    40,    41,    42,
1773          43,    44,    45,    46,    47,    48,    49,    50,    51,    52,
1774          53,    54,    55,    56,    57,    58,    59,    60,    61,    62,
1775          63,    64,    65,    66,    67,    68,    69,    70,    71,    72,
1776          73,    74,    75,    76,    77,    78,    79,    80,    81,    82,
1777          83,    84,    85,    86,    87,    88,    89,    90,    91,    92,
1778          93,    94,    95,    96,    97,    98,    99,   100,   101,   102,
1779         103,   104,   105,   106,   107,   108,   109,   110,   111,   112,
1780         113,   114,   115,   116,   117,   118,   119,   120,   121,   122,
1781         123,   124,   125,   126,   127,   128,   129,   130,   131,   132,
1782         133,   134,   135,   136,   137,   138,   139,   140,   141,   142,
1783         143,   144,   145,   146,   147,   148,   149,   150,   151,   152,
1784         153,   154,   155,   156,   157,   158,   159,   160,   161,   162,
1785         163,   164,   165,   166,   167,   168,   169,   170,   171,   172,
1786         173,   174,   175,   176,   177,   178,   179,   180,   181,   182,
1787         183,   184,   185,   186,   187,   188,   189,   190,   191,   192,
1788         193,   194,   195,   196,   197,   198,   199,   200,   201,   202,
1789         203,   204,   205,   206,   207,   208,   209,   210,   211,   212,
1790         213,   214,   215,   216,   217,   218,   219,   220,   221,     3,
1791           4,     5,     6,     7,     8,     9,    10,    11,    12,    13,
1792          14,    15,    16,    17,    18,    19,    20,    21,    22,    23,
1793          24,    25,    26,    27,    28,    29,    30,    31,    32,    33,
1794          34,    35,    36,    37,    38,    39,    40,    41,    42,    43,
1795          44,    45,    46,    47,    48,    49,    50,    51,    52,    53,
1796          54,    55,    56,    57,    58,    59,    60,    61,    62,    63,
1797          64,    65,    66,    67,    68,    69,    70,    71,    72,    73,
1798          74,    75,    76,    77,    78,    79,    80,    81,    82,    83,
1799          84,    85,    86,    87,    88,    89,    90,    91,    92,    93,
1800          94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
1801         104,   105,   106,   107,   108,   109,   110,   111,   112,   113,
1802         114,   115,   116,   117,   118,   119,   120,   121,   122,   123,
1803         124,   125,   126,   127,   128,   129,   130,   131,   132,   133,
1804         134,   135,   136,   137,   138,   139,   140,   141,   142,   143,
1805         144,   145,   146,   147,   148,   149,   150,   151,   152,   153,
1806         154,   155,   156,   157,   158,   159,   160,   161,   162,   163,
1807         164,   165,   166,   167,   168,   169,   170,   171,   172,   173,
1808         174,   175,   176,   177,   178,   179,   180,   181,   182,   183,
1809         184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
1810         194,   195,   196,   197,   198,   199,   200,   201,   202,   203,
1811         204,   205,   206,   207,   208,   209,   210,   211,   212,   213,
1812         214,   215,   216,   217,   218,   219,   220,   221
1813  };  };
1814    
1815  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
1816     symbol of state STATE-NUM.  */     symbol of state STATE-NUM.  */
1817  static const unsigned char yystos[] =  static const unsigned short int yystos[] =
1818  {  {
1819         0,     1,     9,    10,    11,    12,    13,    14,    15,    16,         0,     1,     3,    18,    20,    21,    24,    29,    34,    35,
1820        17,    39,    40,    41,     6,     6,     6,     6,     6,     6,        36,    38,   228,   229,   230,   231,   269,   270,   271,   272,
1821         6,     6,     0,     7,     8,    18,    18,    20,    21,    27,       273,   274,   277,   278,   279,   280,   281,   314,   317,    21,
1822        42,    26,    27,    43,    18,    18,    19,    19,    18,    40,        35,    22,    22,    26,    32,    38,    22,    22,    38,    31,
1823         7,     6,     6,     6,     6,     6,     6,     6,     6,     6,         0,   225,   226,   267,   268,     3,     4,     5,     6,     7,
1824        40,    22,    23,    24,    25,    22,     3,     5,    46,    59,         8,     9,    10,    11,    12,    13,    14,    15,    16,    17,
1825        60,    61,    47,    57,    61,     5,    51,    28,    29,    30,        18,    19,    20,    21,    22,    23,    24,    25,    26,    27,
1826        31,    32,    33,    44,     5,    53,    56,    60,    51,     6,        28,    29,    30,    31,    32,    33,    34,    35,    36,    37,
1827         6,     6,     6,     6,     6,     5,    61,     3,     6,     6,        38,    39,    40,    41,    42,    43,    44,    45,    46,    47,
1828         6,     6,     6,     6,     6,    51,    34,    35,    45,    51,        48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
1829        51,    57,     5,    52,    60,    51,    51,    51,    51,    51,        58,    59,    60,    61,    62,    63,    64,    65,    66,    67,
1830        51,    51,     6,     6,     6,     6,     6,     6,     6,     6,        68,    69,    70,    71,    72,    73,    74,    75,    76,    77,
1831        51,    51,     5,    54,    36,    37,    48,    58,    60,     5,        78,    79,    80,    81,    82,    83,    84,    85,    86,    87,
1832        55,    36,    49,     4,     5,    50        88,    89,    90,    91,    92,    93,    94,    95,    96,    97,
1833          98,    99,   100,   101,   102,   103,   104,   105,   106,   107,
1834         108,   109,   110,   111,   112,   113,   114,   115,   116,   117,
1835         118,   119,   120,   121,   122,   123,   124,   125,   126,   127,
1836         128,   129,   130,   131,   132,   133,   134,   135,   136,   137,
1837         138,   139,   140,   141,   142,   143,   144,   145,   146,   147,
1838         148,   149,   150,   151,   152,   153,   154,   155,   156,   157,
1839         158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
1840         168,   169,   170,   171,   172,   173,   174,   175,   176,   177,
1841         178,   179,   180,   181,   182,   183,   184,   185,   186,   187,
1842         188,   189,   190,   191,   192,   193,   194,   195,   196,   197,
1843         198,   199,   200,   201,   202,   203,   204,   205,   206,   207,
1844         208,   209,   210,   211,   212,   213,   214,   215,   216,   217,
1845         218,   219,   220,   221,   224,   258,   261,   262,   263,   266,
1846         266,   266,   266,   266,   266,   266,   266,   266,   266,   266,
1847         266,   266,    21,    22,    36,    37,    36,    18,    26,    30,
1848          36,    29,    37,    19,    36,   267,     8,     9,    10,    11,
1849          12,    13,    14,    15,    16,    17,   260,   261,   260,   260,
1850         260,   260,   260,   260,   260,   260,     3,     8,     9,    10,
1851          11,    12,    13,    14,    15,    16,    17,   263,    20,   282,
1852          18,    20,    22,    30,   234,   282,   283,   284,   285,   291,
1853         293,   294,   295,   296,   297,   298,   300,   302,   303,   304,
1854         305,   306,   307,    18,    30,   236,   294,   304,   237,   294,
1855         304,    18,    20,    30,   242,   285,   293,   303,    26,   238,
1856         290,   291,   282,    18,    22,    30,   235,   282,   292,   297,
1857         301,   302,   316,    19,    26,    30,    36,    39,   232,   285,
1858         286,   287,   288,   289,   315,   233,   285,   286,   287,   288,
1859         289,   315,   258,   264,   266,   282,    18,    37,    37,    21,
1860          37,    32,    22,    22,    36,    38,   261,    25,    38,    39,
1861          25,    31,    26,   266,   266,   266,   266,   266,   266,   266,
1862         266,   266,   266,   266,   266,    38,    26,   266,   266,   266,
1863         266,    38,    25,    26,    31,   266,   266,   266,    38,    20,
1864          26,   266,   266,   266,   266,   266,   266,    38,    31,    26,
1865          37,    32,   258,   266,   266,    37,    35,    39,    37,    20,
1866          20,    19,    18,    21,    18,    18,    24,    21,   286,   287,
1867         288,   289,   286,   286,   286,   286,   286,   286,   286,   286,
1868         286,   286,   286,    21,    21,   258,   258,     9,    10,    11,
1869          12,    13,    14,    15,    16,    17,   262,   262,    21,    18,
1870          21,    36,    31,   222,   223,   243,   255,   265,   276,   244,
1871         254,   258,   252,   262,    21,    25,    21,    18,    30,    39,
1872         239,   294,   298,   299,   304,   307,   308,   309,   310,   311,
1873         262,   262,   262,   262,   257,   258,   262,    23,    23,    36,
1874          35,    26,   252,    22,    32,    22,    37,    35,    36,    31,
1875          26,    26,    31,    26,    26,   266,   266,   266,   266,   266,
1876         266,   266,   266,   266,   266,   266,   266,   266,   266,   266,
1877          26,    26,   266,   266,    26,    31,    26,    37,    32,   264,
1878         264,   266,   266,   266,    26,    32,    26,    38,    26,    32,
1879         266,   266,   266,   266,   266,   266,   266,   266,   266,   266,
1880         266,   266,   266,    23,    32,    20,    22,    20,    42,    26,
1881          20,    31,    32,    29,    31,    31,    89,   252,    19,    33,
1882         241,   312,   313,   252,   252,   254,   262,   258,   258,   262,
1883         262,   262,   262,   258,   258,   262,    32,    89,   240,   258,
1884         240,    32,    31,    89,    35,    31,   222,   223,   253,   262,
1885         255,   252,    32,    89,    21,    21,    29,   252,   252,   252,
1886         252,   252,   252,   252,   252,   252,   258,   262,   258,   262,
1887          22,    22,    18,    22,    19,    35,    22,    89,    18,    22,
1888          22,    26,    42,    22,   266,   266,   266,   266,   266,   266,
1889         266,    89,    26,   266,     4,    89,    22,    26,    38,    89,
1890         266,   266,    89,    26,    26,    26,    38,   266,   266,   266,
1891         266,   266,   266,   266,   266,   266,     4,   266,     4,   266,
1892          35,    29,    30,    89,    22,    26,    29,    32,    19,    29,
1893          31,    37,    35,   252,   258,   262,   262,   262,   258,   262,
1894          32,    31,   258,     6,     7,   256,   258,   259,   260,   261,
1895         262,   265,    32,    29,    31,    30,    30,   252,   253,    32,
1896          31,    32,    89,    30,   245,   262,   246,   262,   247,   258,
1897         245,   248,   262,    18,   249,   262,   275,   250,   258,   245,
1898           6,     7,   251,   259,   262,   256,   258,   256,   258,    89,
1899          29,    89,    20,    19,    38,    29,    36,    33,    22,    20,
1900         266,   266,   266,   266,    38,    33,     4,   260,   260,     5,
1901          38,    33,    22,    32,   266,    38,    33,    89,    26,    22,
1902         266,    29,   266,     4,     4,    23,    18,    20,    32,    22,
1903          37,    22,    38,    36,    22,   240,   258,   258,   240,    37,
1904          38,   256,     5,     5,   260,    37,    38,    31,    21,   252,
1905          37,    38,    32,    31,   246,    29,   248,   256,   256,    26,
1906          31,    32,    38,    33,    89,    37,    31,    33,    37,   260,
1907         260,    33,    37,    37,    18,    33,    37,    38,    33,   266,
1908          29,    22,    38,    31,    38,    18,    22,    30,    89,    37,
1909          38,    89,    38,    89,    29,    38,    89,    37,    38,   249,
1910          29,    32,    31,    37,    37,    38,    31,    26,    21,    33,
1911          18,    37,    21,    37,    21,    37,    21,    33,    33,    37,
1912          38,    37,    89,    21,    24,    21,    22,    35,    32,    24,
1913          89,    22,    89,    22,    89,    22,    32,    38,    89,    36,
1914          20,    21,    26,    26,    26,    39,    26,    35,    22,    21,
1915          39,    21,    39,    20,    21,    39,    35,    37,    20,    33,
1916          37,    25,    22,    35,    32,    31,    89,    26,    39,    37,
1917          22,    26,    22,    26,    25,    22,    26,    37,    89,    25,
1918          32,    42,    18,    39,    26,    89,    22,    26,    20,    22,
1919          89,    39,    20,    39,    20,    18,    39,    20,    20,    37,
1920          18,    35,    33,    31,    26,    39,    32,    36,    31,    22,
1921          35,    33,    26,    22,    26,    22,    31,    26,    22,    25,
1922          42,    31,    37,    22,    31,    20,    22,    38,    33,    36,
1923          89,    18,    20,    20,    31,    20,    89,    18,    33,    31,
1924          22,    22,    35,    37,    38,    33,    35,    22,    22,    22,
1925          22,    33,    31,    22,    22,    29,    36,    89,    33,    37,
1926          18,    18,    29,    89,    18,    31,    29,    89,    33,    38,
1927          89,    35,    30,    33,    35,    22,    33,    18,    37,    21,
1928          18,    22,    18,    18,    29,    18,    35,    89,    35,    30,
1929          37,    35,    30,    35,    18,    21,    26,    22,    22,    18,
1930          22,    18,    30,    35,    39,    37,    35,    30,    37,    30,
1931          22,    26,    22,    22,    22,    22,    22,    37,    39,    35,
1932          35,    37,    35,    37,    22,    22,    36,    22,    22,    35,
1933          35,    35,    35,    36
1934  };  };
1935    
1936  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)  #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__)
# Line 582  static const unsigned char yystos[] = Line 1956  static const unsigned char yystos[] =
1956    
1957  #define YYACCEPT        goto yyacceptlab  #define YYACCEPT        goto yyacceptlab
1958  #define YYABORT         goto yyabortlab  #define YYABORT         goto yyabortlab
1959  #define YYERROR         goto yyerrlab1  #define YYERROR         goto yyerrorlab
1960    
1961    
1962  /* Like YYERROR except do call yyerror.  This remains here temporarily  /* Like YYERROR except do call yyerror.  This remains here temporarily
# Line 617  while (0) Line 1991  while (0)
1991     are run).  */     are run).  */
1992    
1993  #ifndef YYLLOC_DEFAULT  #ifndef YYLLOC_DEFAULT
1994  # define YYLLOC_DEFAULT(Current, Rhs, N)         \  # define YYLLOC_DEFAULT(Current, Rhs, N)                \
1995    Current.first_line   = Rhs[1].first_line;      \     ((Current).first_line   = (Rhs)[1].first_line,       \
1996    Current.first_column = Rhs[1].first_column;    \      (Current).first_column = (Rhs)[1].first_column,     \
1997    Current.last_line    = Rhs[N].last_line;       \      (Current).last_line    = (Rhs)[N].last_line,        \
1998    Current.last_column  = Rhs[N].last_column;      (Current).last_column  = (Rhs)[N].last_column)
1999  #endif  #endif
2000    
2001  /* YYLEX -- calling `yylex' with the right arguments.  */  /* YYLEX -- calling `yylex' with the right arguments.  */
# Line 665  do {                                                           \ Line 2039  do {                                                           \
2039    
2040  /*------------------------------------------------------------------.  /*------------------------------------------------------------------.
2041  | yy_stack_print -- Print the state stack from its BOTTOM up to its |  | yy_stack_print -- Print the state stack from its BOTTOM up to its |
2042  | TOP (cinluded).                                                   |  | TOP (included).                                                   |
2043  `------------------------------------------------------------------*/  `------------------------------------------------------------------*/
2044    
2045  #if defined (__STDC__) || defined (__cplusplus)  #if defined (__STDC__) || defined (__cplusplus)
2046  static void  static void
2047  yy_stack_print (short *bottom, short *top)  yy_stack_print (short int *bottom, short int *top)
2048  #else  #else
2049  static void  static void
2050  yy_stack_print (bottom, top)  yy_stack_print (bottom, top)
2051      short *bottom;      short int *bottom;
2052      short *top;      short int *top;
2053  #endif  #endif
2054  {  {
2055    YYFPRINTF (stderr, "Stack now");    YYFPRINTF (stderr, "Stack now");
# Line 705  yy_reduce_print (yyrule) Line 2079  yy_reduce_print (yyrule)
2079  #endif  #endif
2080  {  {
2081    int yyi;    int yyi;
2082    unsigned int yylineno = yyrline[yyrule];    unsigned int yylno = yyrline[yyrule];
2083    YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",    YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ",
2084               yyrule - 1, yylineno);               yyrule - 1, yylno);
2085    /* Print the symbols being reduced, and their result.  */    /* Print the symbols being reduced, and their result.  */
2086    for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)    for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++)
2087      YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);      YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]);
# Line 744  int yydebug; Line 2118  int yydebug;
2118     SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)     SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH)
2119     evaluated with infinite-precision integer arithmetic.  */     evaluated with infinite-precision integer arithmetic.  */
2120    
2121  #if YYMAXDEPTH == 0  #if defined (YYMAXDEPTH) && YYMAXDEPTH == 0
2122  # undef YYMAXDEPTH  # undef YYMAXDEPTH
2123  #endif  #endif
2124    
# Line 942  int yynerrs; Line 2316  int yynerrs;
2316       to reallocate them elsewhere.  */       to reallocate them elsewhere.  */
2317    
2318    /* The state stack.  */    /* The state stack.  */
2319    short yyssa[YYINITDEPTH];    short int yyssa[YYINITDEPTH];
2320    short *yyss = yyssa;    short int *yyss = yyssa;
2321    register short *yyssp;    register short int *yyssp;
2322    
2323    /* The semantic value stack.  */    /* The semantic value stack.  */
2324    YYSTYPE yyvsa[YYINITDEPTH];    YYSTYPE yyvsa[YYINITDEPTH];
# Line 981  int yynerrs; Line 2355  int yynerrs;
2355    yyssp = yyss;    yyssp = yyss;
2356    yyvsp = yyvs;    yyvsp = yyvs;
2357    
2358    
2359    goto yysetstate;    goto yysetstate;
2360    
2361  /*------------------------------------------------------------.  /*------------------------------------------------------------.
# Line 1006  int yynerrs; Line 2381  int yynerrs;
2381             these so that the &'s don't force the real ones into             these so that the &'s don't force the real ones into
2382             memory.  */             memory.  */
2383          YYSTYPE *yyvs1 = yyvs;          YYSTYPE *yyvs1 = yyvs;
2384          short *yyss1 = yyss;          short int *yyss1 = yyss;
2385    
2386    
2387          /* Each stack pointer address is followed by the size of the          /* Each stack pointer address is followed by the size of the
# Line 1034  int yynerrs; Line 2409  int yynerrs;
2409          yystacksize = YYMAXDEPTH;          yystacksize = YYMAXDEPTH;
2410    
2411        {        {
2412          short *yyss1 = yyss;          short int *yyss1 = yyss;
2413          union yyalloc *yyptr =          union yyalloc *yyptr =
2414            (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));            (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
2415          if (! yyptr)          if (! yyptr)
# Line 1166  yyreduce: Line 2541  yyreduce:
2541    YY_REDUCE_PRINT (yyn);    YY_REDUCE_PRINT (yyn);
2542    switch (yyn)    switch (yyn)
2543      {      {
2544          case 6:          case 4:
2545  #line 82 "lscp.y"  #line 85 "lscp.y"
2546      { LSCPSERVER->AnswerClient(yyvsp[0].String); }      { return LSCP_DONE; }
     break;  
   
   case 7:  
 #line 83 "lscp.y"  
     { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }  
2547      break;      break;
2548    
2549    case 8:    case 5:
2550  #line 86 "lscp.y"  #line 86 "lscp.y"
2551      { yyval.String = LSCPSERVER->AddChannel();                  }      { return LSCP_DONE; }
2552      break;      break;
2553    
2554    case 9:    case 6:
2555  #line 87 "lscp.y"  #line 87 "lscp.y"
2556      { yyval.String = yyvsp[0].String;                                        }      { LSCPSERVER->AnswerClient(yyvsp[0].String); return LSCP_DONE; }
2557      break;      break;
2558    
2559    case 10:    case 7:
2560  #line 88 "lscp.y"  #line 88 "lscp.y"
2561      { yyval.String = yyvsp[0].String;                                        }      { LSCPSERVER->AnswerClient("Err:0:Unknown command.\r\n"); RESTART; return LSCP_SYNTAX_ERROR; }
     break;  
   
   case 11:  
 #line 89 "lscp.y"  
     { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);             }  
     break;  
   
   case 12:  
 #line 90 "lscp.y"  
     { yyval.String = yyvsp[0].String;                                        }  
2562      break;      break;
2563    
2564    case 13:    case 13:
2565  #line 91 "lscp.y"  #line 98 "lscp.y"
2566      { yyval.String = LSCPSERVER->SubscribeNotification(yyvsp[0].Number);     }      { yyval.String = LSCPSERVER->AddChannel();                          }
2567      break;      break;
2568    
2569    case 14:    case 14:
2570  #line 92 "lscp.y"  #line 99 "lscp.y"
2571      { yyval.String = LSCPSERVER->UnsubscribeNotification(yyvsp[0].String);   }      { yyval.String = yyvsp[0].String;                                                }
2572      break;      break;
2573    
2574    case 15:    case 15:
2575  #line 93 "lscp.y"  #line 100 "lscp.y"
2576      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);              }      { yyval.String = yyvsp[0].String;                                                }
2577      break;      break;
2578    
2579    case 16:    case 16:
2580  #line 94 "lscp.y"  #line 101 "lscp.y"
2581      { LSCPSERVER->AnswerClient("Bye!\r\n"); return 0; }      { yyval.String = yyvsp[0].String;                                                }
2582      break;      break;
2583    
2584    case 17:    case 17:
2585  #line 97 "lscp.y"  #line 102 "lscp.y"
2586      { yyval.String = LSCPSERVER->GetAvailableEngines(); }      { yyval.String = yyvsp[0].String;                                                }
2587      break;      break;
2588    
2589    case 18:    case 18:
2590  #line 98 "lscp.y"  #line 103 "lscp.y"
2591      { yyval.String = LSCPSERVER->GetChannels();         }      { yyval.String = yyvsp[0].String;                                                }
2592      break;      break;
2593    
2594    case 19:    case 19:
2595  #line 99 "lscp.y"  #line 104 "lscp.y"
2596      { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);    }      { yyval.String = LSCPSERVER->RemoveChannel(yyvsp[0].Number);                     }
2597      break;      break;
2598    
2599    case 20:    case 20:
2600  #line 100 "lscp.y"  #line 105 "lscp.y"
2601      { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number); }      { yyval.String = yyvsp[0].String;                                                }
2602      break;      break;
2603    
2604    case 21:    case 21:
2605  #line 101 "lscp.y"  #line 106 "lscp.y"
2606      { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);    }      { yyval.String = yyvsp[0].String;                                                }
2607      break;      break;
2608    
2609    case 22:    case 22:
2610  #line 102 "lscp.y"  #line 107 "lscp.y"
2611      { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);     }      { yyval.String = yyvsp[0].String;                                                }
2612      break;      break;
2613    
2614    case 23:    case 23:
2615  #line 103 "lscp.y"  #line 108 "lscp.y"
2616      { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);     }      { yyval.String = LSCPSERVER->QueryDatabase(yyvsp[0].String);                     }
2617      break;      break;
2618    
2619    case 24:    case 24:
2620  #line 106 "lscp.y"  #line 109 "lscp.y"
2621      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->ResetChannel(yyvsp[0].Number);                      }
2622      break;      break;
2623    
2624    case 25:    case 25:
2625  #line 107 "lscp.y"  #line 110 "lscp.y"
2626      { yyval.String = yyvsp[0].String; }      { yyval.String = LSCPSERVER->ResetSampler();                        }
2627      break;      break;
2628    
2629    case 26:    case 26:
2630  #line 110 "lscp.y"  #line 111 "lscp.y"
2631      { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[0].Number, yyvsp[-2].Number); }      { LSCPSERVER->AnswerClient("Bye!\r\n"); return LSCP_QUIT; }
2632      break;      break;
2633    
2634    case 27:    case 27:
2635  #line 111 "lscp.y"  #line 114 "lscp.y"
2636      { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].AudioOutput, yyvsp[-2].Number);    }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_channels);     }
2637      break;      break;
2638    
2639    case 28:    case 28:
2640  #line 112 "lscp.y"  #line 115 "lscp.y"
2641      { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].String, yyvsp[-2].Number);      }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_voice_count);  }
2642      break;      break;
2643    
2644    case 29:    case 29:
2645  #line 113 "lscp.y"  #line 116 "lscp.y"
2646      { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);   }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_stream_count); }
2647      break;      break;
2648    
2649    case 30:    case 30:
2650  #line 114 "lscp.y"  #line 117 "lscp.y"
2651      { yyval.String = "Err:0:Not implemented yet\r\n";           }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_buffer_fill);  }
2652      break;      break;
2653    
2654    case 31:    case 31:
2655  #line 115 "lscp.y"  #line 118 "lscp.y"
2656      { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);             }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_info);         }
2657      break;      break;
2658    
2659    case 32:    case 32:
2660  #line 118 "lscp.y"  #line 119 "lscp.y"
2661      { yyval.FillResponse = fill_response_bytes;      }      { yyval.String = LSCPSERVER->SubscribeNotification(LSCPEvent::event_misc);         }
2662      break;      break;
2663    
2664    case 33:    case 33:
2665  #line 119 "lscp.y"  #line 122 "lscp.y"
2666      { yyval.FillResponse = fill_response_percentage; }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_channels);     }
2667      break;      break;
2668    
2669    case 34:    case 34:
2670  #line 122 "lscp.y"  #line 123 "lscp.y"
2671      { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_voice_count);  }
2672      break;      break;
2673    
2674    case 35:    case 35:
2675  #line 125 "lscp.y"  #line 124 "lscp.y"
2676      { yyval.String = LSCPSERVER->LoadEngine(yyvsp[-2].String, yyvsp[0].Number); }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_stream_count); }
2677      break;      break;
2678    
2679    case 36:    case 36:
2680  #line 128 "lscp.y"  #line 125 "lscp.y"
2681      { yyval.AudioOutput = audio_output_type_alsa; }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_buffer_fill);  }
2682      break;      break;
2683    
2684    case 37:    case 37:
2685  #line 129 "lscp.y"  #line 126 "lscp.y"
2686      { yyval.AudioOutput = audio_output_type_jack; }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_info);         }
2687      break;      break;
2688    
2689    case 38:    case 38:
2690  #line 132 "lscp.y"  #line 127 "lscp.y"
2691      { yyval.Number = ALSA; }      { yyval.String = LSCPSERVER->UnsubscribeNotification(LSCPEvent::event_misc);         }
2692        break;
2693    
2694      case 39:
2695    #line 130 "lscp.y"
2696        { yyval.String = LSCPSERVER->GetAvailableEngines();                          }
2697      break;      break;
2698    
2699    case 40:    case 40:
2700    #line 131 "lscp.y"
2701        { yyval.String = LSCPSERVER->GetAvailableMidiInputDrivers();                 }
2702        break;
2703    
2704      case 41:
2705    #line 132 "lscp.y"
2706        { yyval.String = LSCPSERVER->GetMidiInputDriverInfo(yyvsp[0].String);                     }
2707        break;
2708    
2709      case 42:
2710    #line 133 "lscp.y"
2711        { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);        }
2712        break;
2713    
2714      case 43:
2715    #line 134 "lscp.y"
2716        { yyval.String = LSCPSERVER->GetMidiInputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);    }
2717        break;
2718    
2719      case 44:
2720    #line 135 "lscp.y"
2721        { yyval.String = LSCPSERVER->GetAvailableAudioOutputDrivers();               }
2722        break;
2723    
2724      case 45:
2725  #line 136 "lscp.y"  #line 136 "lscp.y"
2726      { yyval.Dotnum = yyvsp[0].Number; }      { yyval.String = LSCPSERVER->GetAudioOutputDriverInfo(yyvsp[0].String);                   }
2727        break;
2728    
2729      case 46:
2730    #line 137 "lscp.y"
2731        { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-2].String, yyvsp[0].String);      }
2732        break;
2733    
2734      case 47:
2735    #line 138 "lscp.y"
2736        { yyval.String = LSCPSERVER->GetAudioOutputDriverParameterInfo(yyvsp[-4].String, yyvsp[-2].String, yyvsp[0].KeyValList);  }
2737        break;
2738    
2739      case 48:
2740    #line 139 "lscp.y"
2741        { yyval.String = LSCPSERVER->GetAudioOutputDeviceCount();                    }
2742        break;
2743    
2744      case 49:
2745    #line 140 "lscp.y"
2746        { yyval.String = LSCPSERVER->GetMidiInputDeviceCount();                      }
2747      break;      break;
2748    
2749    case 50:    case 50:
2750  #line 164 "lscp.y"  #line 141 "lscp.y"
2751      { yyval.String = yyvsp[-2].String + ' ' + yyvsp[0].String; }      { yyval.String = LSCPSERVER->GetAudioOutputDeviceInfo(yyvsp[0].Number);                   }
2752      break;      break;
2753    
2754    case 51:    case 51:
2755  #line 167 "lscp.y"  #line 142 "lscp.y"
2756      { yyval.String = yyvsp[0].String;                                             }      { yyval.String = LSCPSERVER->GetMidiInputDeviceInfo(yyvsp[0].Number);                     }
2757      break;      break;
2758    
2759    case 52:    case 52:
2760  #line 168 "lscp.y"  #line 143 "lscp.y"
2761      { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str();       }      { yyval.String = LSCPSERVER->GetMidiInputPortInfo(yyvsp[-2].Number, yyvsp[0].Number);                   }
2762      break;      break;
2763    
2764    case 53:    case 53:
2765  #line 169 "lscp.y"  #line 144 "lscp.y"
2766      { yyval.String = yyvsp[-1].String + yyvsp[0].String;                                        }      { yyval.String = LSCPSERVER->GetMidiInputPortParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String);      }
2767      break;      break;
2768    
2769    case 54:    case 54:
2770  #line 170 "lscp.y"  #line 145 "lscp.y"
2771      { std::stringstream ss; ss << yyvsp[-1].String << yyvsp[0].Number; yyval.String = ss.str(); }      { yyval.String = LSCPSERVER->GetAudioOutputChannelInfo(yyvsp[-2].Number, yyvsp[0].Number);              }
2772      break;      break;
2773    
2774    case 55:    case 55:
2775  #line 173 "lscp.y"  #line 146 "lscp.y"
2776      { std::string s; s = yyvsp[0].Char; yyval.String = s; }      { yyval.String = LSCPSERVER->GetAudioOutputChannelParameterInfo(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].String); }
2777      break;      break;
2778    
2779    case 56:    case 56:
2780    #line 147 "lscp.y"
2781        { yyval.String = LSCPSERVER->GetChannels();                                  }
2782        break;
2783    
2784      case 57:
2785    #line 148 "lscp.y"
2786        { yyval.String = LSCPSERVER->GetChannelInfo(yyvsp[0].Number);                             }
2787        break;
2788    
2789      case 58:
2790    #line 149 "lscp.y"
2791        { yyval.String = LSCPSERVER->GetBufferFill(yyvsp[-2].FillResponse, yyvsp[0].Number);                          }
2792        break;
2793    
2794      case 59:
2795    #line 150 "lscp.y"
2796        { yyval.String = LSCPSERVER->GetStreamCount(yyvsp[0].Number);                             }
2797        break;
2798    
2799      case 60:
2800    #line 151 "lscp.y"
2801        { yyval.String = LSCPSERVER->GetVoiceCount(yyvsp[0].Number);                              }
2802        break;
2803    
2804      case 61:
2805    #line 152 "lscp.y"
2806        { yyval.String = LSCPSERVER->GetEngineInfo(yyvsp[0].String);                              }
2807        break;
2808    
2809      case 62:
2810    #line 155 "lscp.y"
2811        { yyval.String = LSCPSERVER->SetAudioOutputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }
2812        break;
2813    
2814      case 63:
2815    #line 156 "lscp.y"
2816        { yyval.String = LSCPSERVER->SetAudioOutputChannelParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String); }
2817        break;
2818    
2819      case 64:
2820    #line 157 "lscp.y"
2821        { yyval.String = LSCPSERVER->SetMidiInputDeviceParameter(yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);        }
2822        break;
2823    
2824      case 65:
2825    #line 158 "lscp.y"
2826        { yyval.String = LSCPSERVER->SetMidiInputPortParameter(yyvsp[-6].Number, yyvsp[-4].Number, yyvsp[-2].String, yyvsp[0].String);      }
2827        break;
2828    
2829      case 66:
2830    #line 159 "lscp.y"
2831        { yyval.String = yyvsp[0].String;                                                         }
2832        break;
2833    
2834      case 67:
2835    #line 160 "lscp.y"
2836        { yyval.String = LSCPSERVER->SetEcho((yyparse_param_t*) yyparse_param, yyvsp[0].Dotnum);  }
2837        break;
2838    
2839      case 68:
2840    #line 163 "lscp.y"
2841        { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[-2].String,yyvsp[0].KeyValList); }
2842        break;
2843    
2844      case 69:
2845    #line 164 "lscp.y"
2846        { yyval.String = LSCPSERVER->CreateAudioOutputDevice(yyvsp[0].String);    }
2847        break;
2848    
2849      case 70:
2850    #line 165 "lscp.y"
2851        { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[-2].String,yyvsp[0].KeyValList);   }
2852        break;
2853    
2854      case 71:
2855    #line 166 "lscp.y"
2856        { yyval.String = LSCPSERVER->CreateMidiInputDevice(yyvsp[0].String);      }
2857        break;
2858    
2859      case 72:
2860    #line 169 "lscp.y"
2861        { yyval.String = LSCPSERVER->DestroyAudioOutputDevice(yyvsp[0].Number); }
2862        break;
2863    
2864      case 73:
2865    #line 170 "lscp.y"
2866        { yyval.String = LSCPSERVER->DestroyMidiInputDevice(yyvsp[0].Number);   }
2867        break;
2868    
2869      case 74:
2870    #line 173 "lscp.y"
2871        { yyval.String = yyvsp[0].String; }
2872        break;
2873    
2874      case 75:
2875  #line 174 "lscp.y"  #line 174 "lscp.y"
2876        { yyval.String = yyvsp[0].String; }
2877        break;
2878    
2879      case 76:
2880    #line 177 "lscp.y"
2881        { yyval.String = LSCPSERVER->SetAudioOutputDevice(yyvsp[0].Number, yyvsp[-2].Number);      }
2882        break;
2883    
2884      case 77:
2885    #line 178 "lscp.y"
2886        { yyval.String = LSCPSERVER->SetAudioOutputChannel(yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-4].Number); }
2887        break;
2888    
2889      case 78:
2890    #line 179 "lscp.y"
2891        { yyval.String = LSCPSERVER->SetAudioOutputType(yyvsp[0].String, yyvsp[-2].Number);        }
2892        break;
2893    
2894      case 79:
2895    #line 180 "lscp.y"
2896        { yyval.String = LSCPSERVER->SetMIDIInput(yyvsp[-4].Number, yyvsp[-2].Number, yyvsp[0].Number, yyvsp[-6].Number);      }
2897        break;
2898    
2899      case 80:
2900    #line 181 "lscp.y"
2901        { yyval.String = LSCPSERVER->SetMIDIInputDevice(yyvsp[0].Number, yyvsp[-2].Number);        }
2902        break;
2903    
2904      case 81:
2905    #line 182 "lscp.y"
2906        { yyval.String = LSCPSERVER->SetMIDIInputPort(yyvsp[0].Number, yyvsp[-2].Number);          }
2907        break;
2908    
2909      case 82:
2910    #line 183 "lscp.y"
2911        { yyval.String = LSCPSERVER->SetMIDIInputChannel(yyvsp[0].Number, yyvsp[-2].Number);       }
2912        break;
2913    
2914      case 83:
2915    #line 184 "lscp.y"
2916        { yyval.String = LSCPSERVER->SetMIDIInputType(yyvsp[0].String, yyvsp[-2].Number);          }
2917        break;
2918    
2919      case 84:
2920    #line 185 "lscp.y"
2921        { yyval.String = LSCPSERVER->SetVolume(yyvsp[0].Dotnum, yyvsp[-2].Number);                 }
2922        break;
2923    
2924      case 85:
2925    #line 188 "lscp.y"
2926        { yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String;          }
2927        break;
2928    
2929      case 86:
2930    #line 189 "lscp.y"
2931        { yyval.KeyValList = yyvsp[-4].KeyValList; yyval.KeyValList[yyvsp[-2].String] = yyvsp[0].String; }
2932        break;
2933    
2934      case 87:
2935    #line 192 "lscp.y"
2936        { yyval.FillResponse = fill_response_bytes;      }
2937        break;
2938    
2939      case 88:
2940    #line 193 "lscp.y"
2941        { yyval.FillResponse = fill_response_percentage; }
2942        break;
2943    
2944      case 89:
2945    #line 196 "lscp.y"
2946        { yyval.String = LSCPSERVER->GetAudioOutputDevices(); }
2947        break;
2948    
2949      case 90:
2950    #line 197 "lscp.y"
2951        { yyval.String = LSCPSERVER->GetMidiInputDevices();   }
2952        break;
2953    
2954      case 91:
2955    #line 198 "lscp.y"
2956        { yyval.String = LSCPSERVER->ListChannels();          }
2957        break;
2958    
2959      case 92:
2960    #line 201 "lscp.y"
2961        { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number);       }
2962        break;
2963    
2964      case 93:
2965    #line 202 "lscp.y"
2966        { yyval.String = LSCPSERVER->LoadInstrument(yyvsp[-4].String, yyvsp[-2].Number, yyvsp[0].Number, true); }
2967        break;
2968    
2969      case 94:
2970    #line 205 "lscp.y"
2971        { yyval.String = LSCPSERVER->SetEngineType(yyvsp[-2].String, yyvsp[0].Number); }
2972        break;
2973    
2974      case 100:
2975    #line 221 "lscp.y"
2976        { yyval.Number = 16; }
2977        break;
2978    
2979      case 103:
2980    #line 228 "lscp.y"
2981        { yyval.Dotnum = yyvsp[0].Number; }
2982        break;
2983    
2984      case 110:
2985    #line 245 "lscp.y"
2986        { std::stringstream ss; ss << yyvsp[0].Number; yyval.String = ss.str(); }
2987        break;
2988    
2989      case 111:
2990    #line 246 "lscp.y"
2991        { std::stringstream ss; ss << yyvsp[0].Dotnum; yyval.String = ss.str(); }
2992        break;
2993    
2994      case 112:
2995    #line 252 "lscp.y"
2996        { yyval.Dotnum = yyvsp[0].Number; }
2997        break;
2998    
2999      case 113:
3000    #line 253 "lscp.y"
3001        { yyval.Dotnum = -1; }
3002        break;
3003    
3004      case 114:
3005    #line 256 "lscp.y"
3006        { std::string s; s = yyvsp[0].Char; yyval.String = s; }
3007        break;
3008    
3009      case 115:
3010    #line 257 "lscp.y"
3011      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }      { yyval.String = yyvsp[-1].String + yyvsp[0].Char;                  }
3012      break;      break;
3013    
3014      case 116:
3015    #line 260 "lscp.y"
3016        { yyval.Dotnum = atof(String(yyvsp[-2].String + "." + yyvsp[0].String).c_str());                         }
3017        break;
3018    
3019      case 117:
3020    #line 261 "lscp.y"
3021        { String s = "+"; s += yyvsp[-2].String; s += "."; s += yyvsp[0].String; yyval.Dotnum = atof(s.c_str()); }
3022        break;
3023    
3024      case 118:
3025    #line 262 "lscp.y"
3026        { yyval.Dotnum = atof(String("-" + yyvsp[-2].String + "." + yyvsp[0].String).c_str());                   }
3027        break;
3028    
3029      case 119:
3030    #line 266 "lscp.y"
3031        { yyval.String = yyvsp[0].Char;      }
3032        break;
3033    
3034      case 120:
3035    #line 267 "lscp.y"
3036        { yyval.String = yyvsp[-1].String + yyvsp[0].Char; }
3037        break;
3038    
3039      case 121:
3040    #line 270 "lscp.y"
3041        { yyval.Char = '0'; }
3042        break;
3043    
3044      case 122:
3045    #line 271 "lscp.y"
3046        { yyval.Char = '1'; }
3047        break;
3048    
3049      case 123:
3050    #line 272 "lscp.y"
3051        { yyval.Char = '2'; }
3052        break;
3053    
3054      case 124:
3055    #line 273 "lscp.y"
3056        { yyval.Char = '3'; }
3057        break;
3058    
3059      case 125:
3060    #line 274 "lscp.y"
3061        { yyval.Char = '4'; }
3062        break;
3063    
3064      case 126:
3065    #line 275 "lscp.y"
3066        { yyval.Char = '5'; }
3067        break;
3068    
3069      case 127:
3070    #line 276 "lscp.y"
3071        { yyval.Char = '6'; }
3072        break;
3073    
3074      case 128:
3075    #line 277 "lscp.y"
3076        { yyval.Char = '7'; }
3077        break;
3078    
3079      case 129:
3080    #line 278 "lscp.y"
3081        { yyval.Char = '8'; }
3082        break;
3083    
3084      case 130:
3085    #line 279 "lscp.y"
3086        { yyval.Char = '9'; }
3087        break;
3088    
3089      case 131:
3090    #line 282 "lscp.y"
3091        { yyval.Number = atoi(String(1, yyvsp[0].Char).c_str());      }
3092        break;
3093    
3094      case 132:
3095    #line 283 "lscp.y"
3096        { yyval.Number = atoi(String(String("1") + yyvsp[0].String).c_str()); }
3097        break;
3098    
3099      case 133:
3100    #line 284 "lscp.y"
3101        { yyval.Number = atoi(String(String("2") + yyvsp[0].String).c_str()); }
3102        break;
3103    
3104      case 134:
3105    #line 285 "lscp.y"
3106        { yyval.Number = atoi(String(String("3") + yyvsp[0].String).c_str()); }
3107        break;
3108    
3109      case 135:
3110    #line 286 "lscp.y"
3111        { yyval.Number = atoi(String(String("4") + yyvsp[0].String).c_str()); }
3112        break;
3113    
3114      case 136:
3115    #line 287 "lscp.y"
3116        { yyval.Number = atoi(String(String("5") + yyvsp[0].String).c_str()); }
3117        break;
3118    
3119      case 137:
3120    #line 288 "lscp.y"
3121        { yyval.Number = atoi(String(String("6") + yyvsp[0].String).c_str()); }
3122        break;
3123    
3124      case 138:
3125    #line 289 "lscp.y"
3126        { yyval.Number = atoi(String(String("7") + yyvsp[0].String).c_str()); }
3127        break;
3128    
3129      case 139:
3130    #line 290 "lscp.y"
3131        { yyval.Number = atoi(String(String("8") + yyvsp[0].String).c_str()); }
3132        break;
3133    
3134      case 140:
3135    #line 291 "lscp.y"
3136        { yyval.Number = atoi(String(String("9") + yyvsp[0].String).c_str()); }
3137        break;
3138    
3139      case 141:
3140    #line 293 "lscp.y"
3141        { yyval.Char = 'A'; }
3142        break;
3143    
3144      case 142:
3145    #line 293 "lscp.y"
3146        { yyval.Char = 'B'; }
3147        break;
3148    
3149      case 143:
3150    #line 293 "lscp.y"
3151        { yyval.Char = 'C'; }
3152        break;
3153    
3154      case 144:
3155    #line 293 "lscp.y"
3156        { yyval.Char = 'D'; }
3157        break;
3158    
3159      case 145:
3160    #line 293 "lscp.y"
3161        { yyval.Char = 'E'; }
3162        break;
3163    
3164      case 146:
3165    #line 293 "lscp.y"
3166        { yyval.Char = 'F'; }
3167        break;
3168    
3169      case 147:
3170    #line 293 "lscp.y"
3171        { yyval.Char = 'G'; }
3172        break;
3173    
3174      case 148:
3175    #line 293 "lscp.y"
3176        { yyval.Char = 'H'; }
3177        break;
3178    
3179      case 149:
3180    #line 293 "lscp.y"
3181        { yyval.Char = 'I'; }
3182        break;
3183    
3184      case 150:
3185    #line 293 "lscp.y"
3186        { yyval.Char = 'J'; }
3187        break;
3188    
3189      case 151:
3190    #line 293 "lscp.y"
3191        { yyval.Char = 'K'; }
3192        break;
3193    
3194      case 152:
3195    #line 293 "lscp.y"
3196        { yyval.Char = 'L'; }
3197        break;
3198    
3199      case 153:
3200    #line 293 "lscp.y"
3201        { yyval.Char = 'M'; }
3202        break;
3203    
3204      case 154:
3205    #line 293 "lscp.y"
3206        { yyval.Char = 'N'; }
3207        break;
3208    
3209      case 155:
3210    #line 293 "lscp.y"
3211        { yyval.Char = 'O'; }
3212        break;
3213    
3214      case 156:
3215    #line 293 "lscp.y"
3216        { yyval.Char = 'P'; }
3217        break;
3218    
3219      case 157:
3220    #line 293 "lscp.y"
3221        { yyval.Char = 'Q'; }
3222        break;
3223    
3224      case 158:
3225    #line 293 "lscp.y"
3226        { yyval.Char = 'R'; }
3227        break;
3228    
3229      case 159:
3230    #line 293 "lscp.y"
3231        { yyval.Char = 'S'; }
3232        break;
3233    
3234      case 160:
3235    #line 293 "lscp.y"
3236        { yyval.Char = 'T'; }
3237        break;
3238    
3239      case 161:
3240    #line 293 "lscp.y"
3241        { yyval.Char = 'U'; }
3242        break;
3243    
3244      case 162:
3245    #line 293 "lscp.y"
3246        { yyval.Char = 'V'; }
3247        break;
3248    
3249      case 163:
3250    #line 293 "lscp.y"
3251        { yyval.Char = 'W'; }
3252        break;
3253    
3254      case 164:
3255    #line 293 "lscp.y"
3256        { yyval.Char = 'X'; }
3257        break;
3258    
3259      case 165:
3260    #line 293 "lscp.y"
3261        { yyval.Char = 'Y'; }
3262        break;
3263    
3264      case 166:
3265    #line 293 "lscp.y"
3266        { yyval.Char = 'Z'; }
3267        break;
3268    
3269      case 167:
3270    #line 294 "lscp.y"
3271        { yyval.Char = 'a'; }
3272        break;
3273    
3274      case 168:
3275    #line 294 "lscp.y"
3276        { yyval.Char = 'b'; }
3277        break;
3278    
3279      case 169:
3280    #line 294 "lscp.y"
3281        { yyval.Char = 'c'; }
3282        break;
3283    
3284      case 170:
3285    #line 294 "lscp.y"
3286        { yyval.Char = 'd'; }
3287        break;
3288    
3289      case 171:
3290    #line 294 "lscp.y"
3291        { yyval.Char = 'e'; }
3292        break;
3293    
3294      case 172:
3295    #line 294 "lscp.y"
3296        { yyval.Char = 'f'; }
3297        break;
3298    
3299      case 173:
3300    #line 294 "lscp.y"
3301        { yyval.Char = 'g'; }
3302        break;
3303    
3304      case 174:
3305    #line 294 "lscp.y"
3306        { yyval.Char = 'h'; }
3307        break;
3308    
3309      case 175:
3310    #line 294 "lscp.y"
3311        { yyval.Char = 'i'; }
3312        break;
3313    
3314      case 176:
3315    #line 294 "lscp.y"
3316        { yyval.Char = 'j'; }
3317        break;
3318    
3319      case 177:
3320    #line 294 "lscp.y"
3321        { yyval.Char = 'k'; }
3322        break;
3323    
3324      case 178:
3325    #line 294 "lscp.y"
3326        { yyval.Char = 'l'; }
3327        break;
3328    
3329      case 179:
3330    #line 294 "lscp.y"
3331        { yyval.Char = 'm'; }
3332        break;
3333    
3334      case 180:
3335    #line 294 "lscp.y"
3336        { yyval.Char = 'n'; }
3337        break;
3338    
3339      case 181:
3340    #line 294 "lscp.y"
3341        { yyval.Char = 'o'; }
3342        break;
3343    
3344      case 182:
3345    #line 294 "lscp.y"
3346        { yyval.Char = 'p'; }
3347        break;
3348    
3349      case 183:
3350    #line 294 "lscp.y"
3351        { yyval.Char = 'q'; }
3352        break;
3353    
3354      case 184:
3355    #line 294 "lscp.y"
3356        { yyval.Char = 'r'; }
3357        break;
3358    
3359      case 185:
3360    #line 294 "lscp.y"
3361        { yyval.Char = 's'; }
3362        break;
3363    
3364      case 186:
3365    #line 294 "lscp.y"
3366        { yyval.Char = 't'; }
3367        break;
3368    
3369      case 187:
3370    #line 294 "lscp.y"
3371        { yyval.Char = 'u'; }
3372        break;
3373    
3374      case 188:
3375    #line 294 "lscp.y"
3376        { yyval.Char = 'v'; }
3377        break;
3378    
3379      case 189:
3380    #line 294 "lscp.y"
3381        { yyval.Char = 'w'; }
3382        break;
3383    
3384      case 190:
3385    #line 294 "lscp.y"
3386        { yyval.Char = 'x'; }
3387        break;
3388    
3389      case 191:
3390    #line 294 "lscp.y"
3391        { yyval.Char = 'y'; }
3392        break;
3393    
3394      case 192:
3395    #line 294 "lscp.y"
3396        { yyval.Char = 'z'; }
3397        break;
3398    
3399      case 193:
3400    #line 295 "lscp.y"
3401        { yyval.Char = '0'; }
3402        break;
3403    
3404      case 194:
3405    #line 295 "lscp.y"
3406        { yyval.Char = '1'; }
3407        break;
3408    
3409      case 195:
3410    #line 295 "lscp.y"
3411        { yyval.Char = '2'; }
3412        break;
3413    
3414      case 196:
3415    #line 295 "lscp.y"
3416        { yyval.Char = '3'; }
3417        break;
3418    
3419      case 197:
3420    #line 295 "lscp.y"
3421        { yyval.Char = '4'; }
3422        break;
3423    
3424      case 198:
3425    #line 295 "lscp.y"
3426        { yyval.Char = '5'; }
3427        break;
3428    
3429      case 199:
3430    #line 295 "lscp.y"
3431        { yyval.Char = '6'; }
3432        break;
3433    
3434      case 200:
3435    #line 295 "lscp.y"
3436        { yyval.Char = '7'; }
3437        break;
3438    
3439      case 201:
3440    #line 295 "lscp.y"
3441        { yyval.Char = '8'; }
3442        break;
3443    
3444      case 202:
3445    #line 295 "lscp.y"
3446        { yyval.Char = '9'; }
3447        break;
3448    
3449      case 203:
3450    #line 296 "lscp.y"
3451        { yyval.Char = '!'; }
3452        break;
3453    
3454      case 204:
3455    #line 296 "lscp.y"
3456        { yyval.Char = '#'; }
3457        break;
3458    
3459      case 205:
3460    #line 296 "lscp.y"
3461        { yyval.Char = '$'; }
3462        break;
3463    
3464      case 206:
3465    #line 296 "lscp.y"
3466        { yyval.Char = '%'; }
3467        break;
3468    
3469      case 207:
3470    #line 296 "lscp.y"
3471        { yyval.Char = '&'; }
3472        break;
3473    
3474      case 208:
3475    #line 296 "lscp.y"
3476        { yyval.Char = '('; }
3477        break;
3478    
3479      case 209:
3480    #line 296 "lscp.y"
3481        { yyval.Char = ')'; }
3482        break;
3483    
3484      case 210:
3485    #line 296 "lscp.y"
3486        { yyval.Char = '*'; }
3487        break;
3488    
3489      case 211:
3490    #line 296 "lscp.y"
3491        { yyval.Char = '+'; }
3492        break;
3493    
3494      case 212:
3495    #line 296 "lscp.y"
3496        { yyval.Char = '-'; }
3497        break;
3498    
3499      case 213:
3500    #line 296 "lscp.y"
3501        { yyval.Char = '.'; }
3502        break;
3503    
3504      case 214:
3505    #line 296 "lscp.y"
3506        { yyval.Char = ','; }
3507        break;
3508    
3509      case 215:
3510    #line 296 "lscp.y"
3511        { yyval.Char = '/'; }
3512        break;
3513    
3514      case 216:
3515    #line 297 "lscp.y"
3516        { yyval.Char = ':'; }
3517        break;
3518    
3519      case 217:
3520    #line 297 "lscp.y"
3521        { yyval.Char = ';'; }
3522        break;
3523    
3524      case 218:
3525    #line 297 "lscp.y"
3526        { yyval.Char = '<'; }
3527        break;
3528    
3529      case 219:
3530    #line 297 "lscp.y"
3531        { yyval.Char = '='; }
3532        break;
3533    
3534      case 220:
3535    #line 297 "lscp.y"
3536        { yyval.Char = '>'; }
3537        break;
3538    
3539      case 221:
3540    #line 297 "lscp.y"
3541        { yyval.Char = '?'; }
3542        break;
3543    
3544      case 222:
3545    #line 297 "lscp.y"
3546        { yyval.Char = '@'; }
3547        break;
3548    
3549      case 223:
3550    #line 298 "lscp.y"
3551        { yyval.Char = '['; }
3552        break;
3553    
3554      case 224:
3555    #line 298 "lscp.y"
3556        { yyval.Char = '\\'; }
3557        break;
3558    
3559      case 225:
3560    #line 298 "lscp.y"
3561        { yyval.Char = ']'; }
3562        break;
3563    
3564      case 226:
3565    #line 298 "lscp.y"
3566        { yyval.Char = '^'; }
3567        break;
3568    
3569      case 227:
3570    #line 298 "lscp.y"
3571        { yyval.Char = '_'; }
3572        break;
3573    
3574      case 228:
3575    #line 299 "lscp.y"
3576        { yyval.Char = '{'; }
3577        break;
3578    
3579      case 229:
3580    #line 299 "lscp.y"
3581        { yyval.Char = '|'; }
3582        break;
3583    
3584      case 230:
3585    #line 299 "lscp.y"
3586        { yyval.Char = '}'; }
3587        break;
3588    
3589      case 231:
3590    #line 299 "lscp.y"
3591        { yyval.Char = '~'; }
3592        break;
3593    
3594      case 232:
3595    #line 300 "lscp.y"
3596        { yyval.Char = '\200'; }
3597        break;
3598    
3599      case 233:
3600    #line 300 "lscp.y"
3601        { yyval.Char = '\201'; }
3602        break;
3603    
3604      case 234:
3605    #line 300 "lscp.y"
3606        { yyval.Char = '\202'; }
3607        break;
3608    
3609      case 235:
3610    #line 301 "lscp.y"
3611        { yyval.Char = '\203'; }
3612        break;
3613    
3614      case 236:
3615    #line 301 "lscp.y"
3616        { yyval.Char = '\204'; }
3617        break;
3618    
3619      case 237:
3620    #line 301 "lscp.y"
3621        { yyval.Char = '\205'; }
3622        break;
3623    
3624      case 238:
3625    #line 302 "lscp.y"
3626        { yyval.Char = '\206'; }
3627        break;
3628    
3629      case 239:
3630    #line 302 "lscp.y"
3631        { yyval.Char = '\207'; }
3632        break;
3633    
3634      case 240:
3635    #line 302 "lscp.y"
3636        { yyval.Char = '\210'; }
3637        break;
3638    
3639      case 241:
3640    #line 303 "lscp.y"
3641        { yyval.Char = '\211'; }
3642        break;
3643    
3644      case 242:
3645    #line 303 "lscp.y"
3646        { yyval.Char = '\212'; }
3647        break;
3648    
3649      case 243:
3650    #line 303 "lscp.y"
3651        { yyval.Char = '\213'; }
3652        break;
3653    
3654      case 244:
3655    #line 304 "lscp.y"
3656        { yyval.Char = '\214'; }
3657        break;
3658    
3659      case 245:
3660    #line 304 "lscp.y"
3661        { yyval.Char = '\215'; }
3662        break;
3663    
3664      case 246:
3665    #line 304 "lscp.y"
3666        { yyval.Char = '\216'; }
3667        break;
3668    
3669      case 247:
3670    #line 305 "lscp.y"
3671        { yyval.Char = '\217'; }
3672        break;
3673    
3674      case 248:
3675    #line 305 "lscp.y"
3676        { yyval.Char = '\220'; }
3677        break;
3678    
3679      case 249:
3680    #line 305 "lscp.y"
3681        { yyval.Char = '\221'; }
3682        break;
3683    
3684      case 250:
3685    #line 306 "lscp.y"
3686        { yyval.Char = '\222'; }
3687        break;
3688    
3689      case 251:
3690    #line 306 "lscp.y"
3691        { yyval.Char = '\223'; }
3692        break;
3693    
3694      case 252:
3695    #line 306 "lscp.y"
3696        { yyval.Char = '\224'; }
3697        break;
3698    
3699      case 253:
3700    #line 307 "lscp.y"
3701        { yyval.Char = '\225'; }
3702        break;
3703    
3704      case 254:
3705    #line 307 "lscp.y"
3706        { yyval.Char = '\226'; }
3707        break;
3708    
3709      case 255:
3710    #line 307 "lscp.y"
3711        { yyval.Char = '\227'; }
3712        break;
3713    
3714      case 256:
3715    #line 308 "lscp.y"
3716        { yyval.Char = '\230'; }
3717        break;
3718    
3719      case 257:
3720    #line 308 "lscp.y"
3721        { yyval.Char = '\231'; }
3722        break;
3723    
3724      case 258:
3725    #line 308 "lscp.y"
3726        { yyval.Char = '\232'; }
3727        break;
3728    
3729      case 259:
3730    #line 309 "lscp.y"
3731        { yyval.Char = '\233'; }
3732        break;
3733    
3734      case 260:
3735    #line 309 "lscp.y"
3736        { yyval.Char = '\234'; }
3737        break;
3738    
3739      case 261:
3740    #line 309 "lscp.y"
3741        { yyval.Char = '\235'; }
3742        break;
3743    
3744      case 262:
3745    #line 310 "lscp.y"
3746        { yyval.Char = '\236'; }
3747        break;
3748    
3749      case 263:
3750    #line 310 "lscp.y"
3751        { yyval.Char = '\237'; }
3752        break;
3753    
3754      case 264:
3755    #line 310 "lscp.y"
3756        { yyval.Char = '\240'; }
3757        break;
3758    
3759      case 265:
3760    #line 311 "lscp.y"
3761        { yyval.Char = '\241'; }
3762        break;
3763    
3764      case 266:
3765    #line 311 "lscp.y"
3766        { yyval.Char = '\242'; }
3767        break;
3768    
3769      case 267:
3770    #line 311 "lscp.y"
3771        { yyval.Char = '\243'; }
3772        break;
3773    
3774      case 268:
3775    #line 312 "lscp.y"
3776        { yyval.Char = '\244'; }
3777        break;
3778    
3779      case 269:
3780    #line 312 "lscp.y"
3781        { yyval.Char = '\245'; }
3782        break;
3783    
3784      case 270:
3785    #line 312 "lscp.y"
3786        { yyval.Char = '\246'; }
3787        break;
3788    
3789      case 271:
3790    #line 313 "lscp.y"
3791        { yyval.Char = '\247'; }
3792        break;
3793    
3794      case 272:
3795    #line 313 "lscp.y"
3796        { yyval.Char = '\250'; }
3797        break;
3798    
3799      case 273:
3800    #line 313 "lscp.y"
3801        { yyval.Char = '\251'; }
3802        break;
3803    
3804      case 274:
3805    #line 314 "lscp.y"
3806        { yyval.Char = '\252'; }
3807        break;
3808    
3809      case 275:
3810    #line 314 "lscp.y"
3811        { yyval.Char = '\253'; }
3812        break;
3813    
3814      case 276:
3815    #line 314 "lscp.y"
3816        { yyval.Char = '\254'; }
3817        break;
3818    
3819      case 277:
3820    #line 315 "lscp.y"
3821        { yyval.Char = '\255'; }
3822        break;
3823    
3824      case 278:
3825    #line 315 "lscp.y"
3826        { yyval.Char = '\256'; }
3827        break;
3828    
3829      case 279:
3830    #line 315 "lscp.y"
3831        { yyval.Char = '\257'; }
3832        break;
3833    
3834      case 280:
3835    #line 316 "lscp.y"
3836        { yyval.Char = '\260'; }
3837        break;
3838    
3839      case 281:
3840    #line 316 "lscp.y"
3841        { yyval.Char = '\261'; }
3842        break;
3843    
3844      case 282:
3845    #line 316 "lscp.y"
3846        { yyval.Char = '\262'; }
3847        break;
3848    
3849      case 283:
3850    #line 317 "lscp.y"
3851        { yyval.Char = '\263'; }
3852        break;
3853    
3854      case 284:
3855    #line 317 "lscp.y"
3856        { yyval.Char = '\264'; }
3857        break;
3858    
3859      case 285:
3860    #line 317 "lscp.y"
3861        { yyval.Char = '\265'; }
3862        break;
3863    
3864      case 286:
3865    #line 318 "lscp.y"
3866        { yyval.Char = '\266'; }
3867        break;
3868    
3869      case 287:
3870    #line 318 "lscp.y"
3871        { yyval.Char = '\267'; }
3872        break;
3873    
3874      case 288:
3875    #line 318 "lscp.y"
3876        { yyval.Char = '\270'; }
3877        break;
3878    
3879      case 289:
3880    #line 319 "lscp.y"
3881        { yyval.Char = '\271'; }
3882        break;
3883    
3884      case 290:
3885    #line 319 "lscp.y"
3886        { yyval.Char = '\272'; }
3887        break;
3888    
3889      case 291:
3890    #line 319 "lscp.y"
3891        { yyval.Char = '\273'; }
3892        break;
3893    
3894      case 292:
3895    #line 320 "lscp.y"
3896        { yyval.Char = '\274'; }
3897        break;
3898    
3899      case 293:
3900    #line 320 "lscp.y"
3901        { yyval.Char = '\275'; }
3902        break;
3903    
3904      case 294:
3905    #line 320 "lscp.y"
3906        { yyval.Char = '\276'; }
3907        break;
3908    
3909      case 295:
3910    #line 321 "lscp.y"
3911        { yyval.Char = '\277'; }
3912        break;
3913    
3914      case 296:
3915    #line 321 "lscp.y"
3916        { yyval.Char = '\300'; }
3917        break;
3918    
3919      case 297:
3920    #line 321 "lscp.y"
3921        { yyval.Char = '\301'; }
3922        break;
3923    
3924      case 298:
3925    #line 322 "lscp.y"
3926        { yyval.Char = '\302'; }
3927        break;
3928    
3929      case 299:
3930    #line 322 "lscp.y"
3931        { yyval.Char = '\303'; }
3932        break;
3933    
3934      case 300:
3935    #line 322 "lscp.y"
3936        { yyval.Char = '\304'; }
3937        break;
3938    
3939      case 301:
3940    #line 323 "lscp.y"
3941        { yyval.Char = '\305'; }
3942        break;
3943    
3944      case 302:
3945    #line 323 "lscp.y"
3946        { yyval.Char = '\306'; }
3947        break;
3948    
3949      case 303:
3950    #line 323 "lscp.y"
3951        { yyval.Char = '\307'; }
3952        break;
3953    
3954      case 304:
3955    #line 324 "lscp.y"
3956        { yyval.Char = '\310'; }
3957        break;
3958    
3959      case 305:
3960    #line 324 "lscp.y"
3961        { yyval.Char = '\311'; }
3962        break;
3963    
3964      case 306:
3965    #line 324 "lscp.y"
3966        { yyval.Char = '\312'; }
3967        break;
3968    
3969      case 307:
3970    #line 325 "lscp.y"
3971        { yyval.Char = '\313'; }
3972        break;
3973    
3974      case 308:
3975    #line 325 "lscp.y"
3976        { yyval.Char = '\314'; }
3977        break;
3978    
3979      case 309:
3980    #line 325 "lscp.y"
3981        { yyval.Char = '\315'; }
3982        break;
3983    
3984      case 310:
3985    #line 326 "lscp.y"
3986        { yyval.Char = '\316'; }
3987        break;
3988    
3989      case 311:
3990    #line 326 "lscp.y"
3991        { yyval.Char = '\317'; }
3992        break;
3993    
3994      case 312:
3995    #line 326 "lscp.y"
3996        { yyval.Char = '\320'; }
3997        break;
3998    
3999      case 313:
4000    #line 327 "lscp.y"
4001        { yyval.Char = '\321'; }
4002        break;
4003    
4004      case 314:
4005    #line 327 "lscp.y"
4006        { yyval.Char = '\322'; }
4007        break;
4008    
4009      case 315:
4010    #line 327 "lscp.y"
4011        { yyval.Char = '\323'; }
4012        break;
4013    
4014      case 316:
4015    #line 328 "lscp.y"
4016        { yyval.Char = '\324'; }
4017        break;
4018    
4019      case 317:
4020    #line 328 "lscp.y"
4021        { yyval.Char = '\325'; }
4022        break;
4023    
4024      case 318:
4025    #line 328 "lscp.y"
4026        { yyval.Char = '\326'; }
4027        break;
4028    
4029      case 319:
4030    #line 329 "lscp.y"
4031        { yyval.Char = '\327'; }
4032        break;
4033    
4034      case 320:
4035    #line 329 "lscp.y"
4036        { yyval.Char = '\330'; }
4037        break;
4038    
4039      case 321:
4040    #line 329 "lscp.y"
4041        { yyval.Char = '\331'; }
4042        break;
4043    
4044      case 322:
4045    #line 330 "lscp.y"
4046        { yyval.Char = '\332'; }
4047        break;
4048    
4049      case 323:
4050    #line 330 "lscp.y"
4051        { yyval.Char = '\333'; }
4052        break;
4053    
4054      case 324:
4055    #line 330 "lscp.y"
4056        { yyval.Char = '\334'; }
4057        break;
4058    
4059      case 325:
4060    #line 331 "lscp.y"
4061        { yyval.Char = '\335'; }
4062        break;
4063    
4064      case 326:
4065    #line 331 "lscp.y"
4066        { yyval.Char = '\336'; }
4067        break;
4068    
4069      case 327:
4070    #line 331 "lscp.y"
4071        { yyval.Char = '\337'; }
4072        break;
4073    
4074      case 328:
4075    #line 332 "lscp.y"
4076        { yyval.Char = '\340'; }
4077        break;
4078    
4079      case 329:
4080    #line 332 "lscp.y"
4081        { yyval.Char = '\341'; }
4082        break;
4083    
4084      case 330:
4085    #line 332 "lscp.y"
4086        { yyval.Char = '\342'; }
4087        break;
4088    
4089      case 331:
4090    #line 333 "lscp.y"
4091        { yyval.Char = '\343'; }
4092        break;
4093    
4094      case 332:
4095    #line 333 "lscp.y"
4096        { yyval.Char = '\344'; }
4097        break;
4098    
4099      case 333:
4100    #line 333 "lscp.y"
4101        { yyval.Char = '\345'; }
4102        break;
4103    
4104      case 334:
4105    #line 334 "lscp.y"
4106        { yyval.Char = '\346'; }
4107        break;
4108    
4109      case 335:
4110    #line 334 "lscp.y"
4111        { yyval.Char = '\347'; }
4112        break;
4113    
4114      case 336:
4115    #line 334 "lscp.y"
4116        { yyval.Char = '\350'; }
4117        break;
4118    
4119      case 337:
4120    #line 335 "lscp.y"
4121        { yyval.Char = '\351'; }
4122        break;
4123    
4124      case 338:
4125    #line 335 "lscp.y"
4126        { yyval.Char = '\352'; }
4127        break;
4128    
4129      case 339:
4130    #line 335 "lscp.y"
4131        { yyval.Char = '\353'; }
4132        break;
4133    
4134      case 340:
4135    #line 336 "lscp.y"
4136        { yyval.Char = '\354'; }
4137        break;
4138    
4139      case 341:
4140    #line 336 "lscp.y"
4141        { yyval.Char = '\355'; }
4142        break;
4143    
4144      case 342:
4145    #line 336 "lscp.y"
4146        { yyval.Char = '\356'; }
4147        break;
4148    
4149      case 343:
4150    #line 337 "lscp.y"
4151        { yyval.Char = '\357'; }
4152        break;
4153    
4154      case 344:
4155    #line 337 "lscp.y"
4156        { yyval.Char = '\360'; }
4157        break;
4158    
4159      case 345:
4160    #line 337 "lscp.y"
4161        { yyval.Char = '\361'; }
4162        break;
4163    
4164      case 346:
4165    #line 338 "lscp.y"
4166        { yyval.Char = '\362'; }
4167        break;
4168    
4169      case 347:
4170    #line 338 "lscp.y"
4171        { yyval.Char = '\363'; }
4172        break;
4173    
4174      case 348:
4175    #line 338 "lscp.y"
4176        { yyval.Char = '\364'; }
4177        break;
4178    
4179      case 349:
4180    #line 339 "lscp.y"
4181        { yyval.Char = '\365'; }
4182        break;
4183    
4184      case 350:
4185    #line 339 "lscp.y"
4186        { yyval.Char = '\366'; }
4187        break;
4188    
4189      case 351:
4190    #line 339 "lscp.y"
4191        { yyval.Char = '\367'; }
4192        break;
4193    
4194      case 352:
4195    #line 340 "lscp.y"
4196        { yyval.Char = '\370'; }
4197        break;
4198    
4199      case 353:
4200    #line 340 "lscp.y"
4201        { yyval.Char = '\371'; }
4202        break;
4203    
4204      case 354:
4205    #line 340 "lscp.y"
4206        { yyval.Char = '\372'; }
4207        break;
4208    
4209      case 355:
4210    #line 341 "lscp.y"
4211        { yyval.Char = '\373'; }
4212        break;
4213    
4214      case 356:
4215    #line 341 "lscp.y"
4216        { yyval.Char = '\374'; }
4217        break;
4218    
4219      case 357:
4220    #line 341 "lscp.y"
4221        { yyval.Char = '\375'; }
4222        break;
4223    
4224      case 358:
4225    #line 342 "lscp.y"
4226        { yyval.Char = '\376'; }
4227        break;
4228    
4229      case 359:
4230    #line 342 "lscp.y"
4231        { yyval.Char = '\377'; }
4232        break;
4233    
4234      case 360:
4235    #line 345 "lscp.y"
4236        { yyval.String = " ";      }
4237        break;
4238    
4239      case 362:
4240    #line 347 "lscp.y"
4241        { yyval.String = yyvsp[-1].String + " "; }
4242        break;
4243    
4244      case 363:
4245    #line 348 "lscp.y"
4246        { yyval.String = yyvsp[-1].String + yyvsp[0].String;  }
4247        break;
4248    
4249      case 364:
4250    #line 351 "lscp.y"
4251        { yyval.String = yyvsp[-1].String; }
4252        break;
4253    
4254      case 365:
4255    #line 352 "lscp.y"
4256        { yyval.String = yyvsp[-1].String; }
4257        break;
4258    
4259    
4260      }      }
4261    
4262  /* Line 999 of yacc.c.  */  /* Line 1010 of yacc.c.  */
4263  #line 1379 "y.tab.c"  #line 4264 "y.tab.c"
4264    
4265    yyvsp -= yylen;    yyvsp -= yylen;
4266    yyssp -= yylen;    yyssp -= yylen;
# Line 1416  yyerrlab: Line 4301  yyerrlab:
4301          {          {
4302            YYSIZE_T yysize = 0;            YYSIZE_T yysize = 0;
4303            int yytype = YYTRANSLATE (yychar);            int yytype = YYTRANSLATE (yychar);
4304              const char* yyprefix;
4305            char *yymsg;            char *yymsg;
4306            int yyx, yycount;            int yyx;
4307    
           yycount = 0;  
4308            /* Start YYX at -YYN if negative to avoid negative indexes in            /* Start YYX at -YYN if negative to avoid negative indexes in
4309               YYCHECK.  */               YYCHECK.  */
4310            for (yyx = yyn < 0 ? -yyn : 0;            int yyxbegin = yyn < 0 ? -yyn : 0;
4311                 yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++)  
4312              /* Stay within bounds of both yycheck and yytname.  */
4313              int yychecklim = YYLAST - yyn;
4314              int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
4315              int yycount = 0;
4316    
4317              yyprefix = ", expecting ";
4318              for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4319              if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)              if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
4320                yysize += yystrlen (yytname[yyx]) + 15, yycount++;                {
4321            yysize += yystrlen ("syntax error, unexpected ") + 1;                  yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]);
4322            yysize += yystrlen (yytname[yytype]);                  yycount += 1;
4323                    if (yycount == 5)
4324                      {
4325                        yysize = 0;
4326                        break;
4327                      }
4328                  }
4329              yysize += (sizeof ("syntax error, unexpected ")
4330                         + yystrlen (yytname[yytype]));
4331            yymsg = (char *) YYSTACK_ALLOC (yysize);            yymsg = (char *) YYSTACK_ALLOC (yysize);
4332            if (yymsg != 0)            if (yymsg != 0)
4333              {              {
# Line 1436  yyerrlab: Line 4336  yyerrlab:
4336    
4337                if (yycount < 5)                if (yycount < 5)
4338                  {                  {
4339                    yycount = 0;                    yyprefix = ", expecting ";
4340                    for (yyx = yyn < 0 ? -yyn : 0;                    for (yyx = yyxbegin; yyx < yyxend; ++yyx)
                        yyx < (int) (sizeof (yytname) / sizeof (char *));  
                        yyx++)  
4341                      if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)                      if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)
4342                        {                        {
4343                          const char *yyq = ! yycount ? ", expecting " : " or ";                          yyp = yystpcpy (yyp, yyprefix);
                         yyp = yystpcpy (yyp, yyq);  
4344                          yyp = yystpcpy (yyp, yytname[yyx]);                          yyp = yystpcpy (yyp, yytname[yyx]);
4345                          yycount++;                          yyprefix = " or ";
4346                        }                        }
4347                  }                  }
4348                yyerror (yymsg);                yyerror (yymsg);
# Line 1466  yyerrlab: Line 4363  yyerrlab:
4363        /* If just tried and failed to reuse lookahead token after an        /* If just tried and failed to reuse lookahead token after an
4364           error, discard it.  */           error, discard it.  */
4365    
4366        /* Return failure if at end of input.  */        if (yychar <= YYEOF)
       if (yychar == YYEOF)  
4367          {          {
4368            /* Pop the error token.  */            /* If at end of input, pop the error token,
4369            YYPOPSTACK;               then the rest of the stack, then return failure.  */
4370            /* Pop the rest of the stack.  */            if (yychar == YYEOF)
4371            while (yyss < yyssp)               for (;;)
4372              {                 {
4373                YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);                   YYPOPSTACK;
4374                yydestruct (yystos[*yyssp], yyvsp);                   if (yyssp == yyss)
4375                YYPOPSTACK;                     YYABORT;
4376              }                   YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
4377            YYABORT;                   yydestruct (yystos[*yyssp], yyvsp);
4378                   }
4379          }          }
4380          else
4381            {
4382              YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);
4383              yydestruct (yytoken, &yylval);
4384              yychar = YYEMPTY;
4385    
4386        YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc);          }
       yydestruct (yytoken, &yylval);  
       yychar = YYEMPTY;  
   
4387      }      }
4388    
4389    /* Else will try to reuse lookahead token after shifting the error    /* Else will try to reuse lookahead token after shifting the error
# Line 1492  yyerrlab: Line 4391  yyerrlab:
4391    goto yyerrlab1;    goto yyerrlab1;
4392    
4393    
4394  /*----------------------------------------------------.  /*---------------------------------------------------.
4395  | yyerrlab1 -- error raised explicitly by an action.  |  | yyerrorlab -- error raised explicitly by YYERROR.  |
4396  `----------------------------------------------------*/  `---------------------------------------------------*/
4397    yyerrorlab:
4398    
4399    #ifdef __GNUC__
4400      /* Pacify GCC when the user code never invokes YYERROR and the label
4401         yyerrorlab therefore never appears in user code.  */
4402      if (0)
4403         goto yyerrorlab;
4404    #endif
4405    
4406      yyvsp -= yylen;
4407      yyssp -= yylen;
4408      yystate = *yyssp;
4409      goto yyerrlab1;
4410    
4411    
4412    /*-------------------------------------------------------------.
4413    | yyerrlab1 -- common code for both syntax error and YYERROR.  |
4414    `-------------------------------------------------------------*/
4415  yyerrlab1:  yyerrlab1:
4416    yyerrstatus = 3;      /* Each real token shifted decrements this.  */    yyerrstatus = 3;      /* Each real token shifted decrements this.  */
4417    
# Line 1518  yyerrlab1: Line 4435  yyerrlab1:
4435    
4436        YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);        YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp);
4437        yydestruct (yystos[yystate], yyvsp);        yydestruct (yystos[yystate], yyvsp);
4438        yyvsp--;        YYPOPSTACK;
4439        yystate = *--yyssp;        yystate = *yyssp;
   
4440        YY_STACK_PRINT (yyss, yyssp);        YY_STACK_PRINT (yyss, yyssp);
4441      }      }
4442    
# Line 1569  yyreturn: Line 4485  yyreturn:
4485  }  }
4486    
4487    
4488  #line 177 "lscp.y"  #line 514 "lscp.y"
4489    
4490    
4491  /**  /**
# Line 1580  void yyerror(const char* s) { Line 4496  void yyerror(const char* s) {
4496  }  }
4497    
4498  /**  /**
4499   * Clears input buffer and restarts scanner.   * Clears input buffer.
4500   */   */
4501  void restart(yyparse_param_t* pparam, int& yychar) {  void restart(yyparse_param_t* pparam, int& yychar) {
4502      // restart scanner      bytes = 0;
4503      yyrestart(stdin, pparam->pScanner);      ptr   = 0;
     // flush input buffer  
     static char buf[1024];  
     while(recv(hSession, buf, 1024, MSG_DONTWAIT) > 0);  
     // reset lookahead symbol  
     yyclearin;  
4504  }  }
4505    
4506    

Legend:
Removed from v.35  
changed lines
  Added in v.411

  ViewVC Help
Powered by ViewVC