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

Legend:
Removed from v.53  
changed lines
  Added in v.221

  ViewVC Help
Powered by ViewVC